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

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. Cấu trúc hệ thống vào ra Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM. Vì vậy cần có các mô-đun vào ra nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính. 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.

pdf9 trang | Chia sẻ: thanhle95 | Lượt xem: 497 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Kiến trúc máy tính - Chương 6.4: Giao diện bộ xử lý với I/O, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
10/12/2017 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. Cấu trúc hệ thống vào ra 10/12/2017 2 Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM. Vì vậy cần có các mô-đun vào ra nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính. 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 10/12/2017 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í.  Phát tín hiệu điều khiển đến mô-đun nhớ hay mô-đun vào ra.  Nhận tín hiệu ngắt. Kết nối CPU 10/12/2017 4 + Cách thứ hai, dùng mã lệnh riêng biệt cho vào/ra (tức là 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. 10/12/2017 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 tiếp tục thực hiện chuyển dữ liệu 10/12/2017 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. 10/12/2017 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. 10/12/2017 8 Giống như bộ điều khiển ngắt, nơi nhận yêu cầu ngắt từ các thiết bị thông qua đường IRQ, một DMAC nhận yêu cầu DMA thông qua đường DMA request (DREQ). Chip 8237A cung cấp 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. 10/12/2017 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ớ.
Tài liệu liên quan