1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kiến trúc máy tính: Chương 6 (Giao diện bộ xử lý với I/O)

9 77 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 1,16 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung chương 6 trình bày đến người học những vấn đề liên quan đến Giao diện bộ xử lý với I/O, cụ thể như: Bộ xử lí dùng 2 cách để liên lạc với các bộ phận vào ra, phân biệt bộ xử lý vào ra với CPU,...

Trang 1

Bộ xử lí dùng 2 cách để liên lạc với các bộ phận vào ra:

+ cách thứ nhất : cách này thường được sử dụng, là cách dùng một vùng

địa chỉ của bộ nhớ làm vùng địa chỉ của các ngoại vi Khi đọc hay viết vào vùng địa

chỉ này của bộ nhớ là liên hệ đến các ngoại vi

Trang 2

Mô-đun vào ra:

Chức năng:

Điều khiển và định thời.

Trao đổi thông tin với CPU.

Trao đổi thông tin với các thiết bị ngoại vi.

Đệm giữa bên trong máy tính với các thiết

bị ngoại vi.

Phát hiện lỗi của các thiết bị ngoại vi.

Cấu trúc chung của mô-đun vào ra

Trang 3

Các thành phần của mô-đun vào ra:

Thanh ghi đệm dữ kiệu: đệm dữ liệu trong quá trình

trao đổi.

Các cổng vào ra (I/O port): kết nối các thiết bị ngoại

vi, mỗi cổng có một địa chỉ xác định.

Thanh ghi trạng thái/điều khiển: lưu giữ thông tin

trạng thái/điều khiển cho các cổng vào ra.

Khối logic điều khiển: điều khiển các mô-đun vào ra.

CPU phát địa chỉ đến bộ nhớ hay mô-đun vào ra.

Đọc lệnh và dữ kiệu.

Đưa dữ liệu ra sau khi xử lí.

Kết nối CPU

Trang 4

có các lệnh vào/ra riêng, không trùng với lệnh đọc hay viết

vào ô nhớ).

Trong đó có 2 phương pháp chính để liên

lạc:

Dùng phương pháp thăm dò (polling)

Dùng yêu cầu ngắt IRQ (Interrupt

ReQuest)

Dùng bộ xử lí DMA (Direct Memory

Access)

Bộ xử lý phát sinh một lệnh I/O đến các đơn vị I/O, sau đó,

nó chờ trong trạng thái "busy" cho đến khi thao tác này

hoàn tất trước khi tiếp tục xử lý.

Bộ xử lý phát sinh một lệnh I/O đến các đơn vị I/O, sau

đó, nó tiếp tục việc xử lí cho tới khi nhận được một ngắt

từ đơn vị I/O báo là đã hoàn tất, nó tạm ngưng việc xử lý

hiện tại để chuyển qua xử lí ngắt.

Trang 5

DMA là một kỹ thuật chuyển dữ liệu nhanh từ một card thiết bị

tới bộ nhớ, từ bộ nhớ ra card thiết bị, hoặc trong một vài

trường hợp từ một vị trí trong bộ nhớ tới một vị trí khác Việc

chuyển theo DMA rất quan trọng vì nó không yêu cầu đến sự

thực thi của CPU Chuyển theo DMA được thực hiện bằng cách

lập trình một chip có tên là bộ điều khiển DMA (gọi ngắn gọn là

DMAC), chip đó nằm trên bo mạch hệ thống của mọi máy PC

Mỗi lần bộ điều khiển được khởi động và quá trình chuyển dữ

liệu bắt đầu, CPU được tự do và làm việc khác trong khi DMAC

Trang 6

Khi không dùng DMA Khi dùng DMA

Khi không có DMA, dữ liệu từ disk phải đưa lên bus, chuyển tới CPU,

sau đó CPU phải đưa lên bus một lần nữa mới chuyển tới memory

Khi DMA hoạt động, DMA sẽ đạt dữ liệu từ Disk lên bus và chuyển

thằng tới Memory mà không qua CPU

Trang 7

Chip DMA (DMAC) được sử dụng trong phần lớn các máy PC là chip

có ký hiệu 8237A hoặc tương đương Các dòng máy Micro Channel và

EISA đã sửa đổi kỹ thuật DMA tạo ra một chip riêng có các chức năng

hơn hẳn 8237A, nhưng có rất ít chương trình điều khiển thiết bị tận

dụng được những ưu điểm mở rộng đó Dòng máy IBM-XT chỉ sử dụng

một chip 8237A lập trình được cung cấp 4 kênh DMA riêng rẽ, đánh số

từ 0 đến 3 Dòng máy IBM-AT (chiếm phần lớn thị trường máy PC hiện

nay) sử dụng 2 chip 8237A cung cấp 8 kênh DMA độc lập đánh số từ 0

đến 7 Chỉ có 7 trong số 8 kênh DMA sử dụng được vì một kênh (kênh

4) được sử dụng để liên kết hai bộ điều khiển với nhau sao cho chúng

có thể làm việc như một đơn vị thống nhất Kênh 0 đến 3 chuyển 8 bit

dữ liệu cùng một lúc và có thể lưu 64KB chỉ trong một lần hoạt động,

trong khi kênh 5 đến 7 chuyển 16 bit và có thể chuyển được 128KB

trong một lần hoạt động

Trang 8

một vài phương thức và phương pháp hành động khác nhau, tuy

nhiên một quá trình chuyển điển hình từ thiết bị tới bộ nhớ diễn ra

như sau:

DMAC được lập trình đầu tiên với địa chỉ của bộ nhớ sẽ ghi

dữ liệu và số byte được chuyển Khi thiết bị đã sẵn sàng bắt đầu

quá trình chuyển, nó kích hoạt đường DREQ để kết nối với DMA

Sau khi được CPU cho phép điều khiển đường truyền, DMAC

đưa ra địa chỉ bộ nhớ và tạo ra tín hiệu để một byte (hoặc một từ)

dữ liệu được đọc từ thiết bị và ghi vào vùng được chỉ định trong

bộ nhớ Sau đó nó cập nhật địa chỉ bộ nhớ cho byte tiếp theo và

lặp lại quá trình trên cho tới khi toàn bộ dữ liệu được chuyển

hoàn tất Dựa trên cách bộ điều khiển được lập trình, mỗi byte

được chuyển có thể yêu cầu một tín hiệu DREQ riêng rẽ (phương

thức chuyển đơn) hoặc chỉ một tín hiệu có thể khởi động tất cả

quá trình truyền (phương thức chuyển khối hoặc theo yêu cầu)

Điểm khác nhau cơ bản là:

CPU dùng để thực hiện mã (code)

DMAC dùng để chuyển dữ liệu

Một cách tốt để hiểu sự khác nhau trên là minh họa các quá trình trên như

là một cuộc chơi bóng ném CPU là người chơi ném bóng với hai người

khác được gọi là A và B Để chuyển bóng từ A tới B, CPU phải bắt quả bóng

do A ném và tung nó cho B DMA, theo một cách khác, sẽ nói A tung trực

tiếp quả bóng cho B Trong lúc ấy, CPU có thể làm các công việc khác như

khởi động cầu thủ tiếp theo

Trang 9

Sau khi bộ điều khiển đã đọc toàn bộ dữ liệu từ thiết bị vào buffer của nó

và kiểm tra checksum Bộ điều khiển chuyển byte đầu tiên vào bộ nhớ

chính tại địa chỉ được mô tả bởi địa chỉ bộ nhớ DMA Sau đó nó tăng địa

chỉ DMA và giảm số bytes phải chuyển Quá trình này lập cho tới khi số

bytes phải chuyển bằng 0, và bộ điều khiển tạo một ngắt Như vậy không

cần phải copy khối vào trong bộ nhớ, nó đã hiện hữu trong bộ nhớ

Ngày đăng: 30/01/2020, 15:10

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm