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

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.

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

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

pdf 9 trang xuanhieu 2640
Bạn đang xem tài liệu "Bài giảng Kiến trúc máy tính & Hợp ngữ - Chương 8: Giao diện bộ xử lý với I/O", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính & Hợp ngữ - Chương 8: Giao diện bộ xử lý với I/O

Bài giảng Kiến trúc máy tính & Hợp ngữ - Chương 8: Giao diện bộ xử lý với I/O
 10/12/2017
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
 1
 10/12/2017
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
 2
 10/12/2017
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.
 Kết nối CPU
  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.
 3
 10/12/2017
+ 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:
 V Dùng phương pháp thăm dò (polling)
 V Dùng yêu cầu ngắt IRQ (Interrupt 
 ReQuest)
 V 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.
 4
 10/12/2017
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
 5
 10/12/2017
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.
 6
 10/12/2017
 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.
 7
 10/12/2017
 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. 
 8
 10/12/2017
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ớ.
 9

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_hop_ngu_chuong_8_giao_dien_bo_x.pdf