Giao Diện Giữa Bộ Xử Lý Với Các Bộ Phận Vào/ Ra

Dùng chung tín hiệu như truy nhập bộ nhớ. Dùng chung lệnh trao đổi dữ liệu với bộ nhớ.

Hình 5 4 Vào ra bằng bảng nhớ đối với CPU 8088 Các phương pháp điều 1

Hình 5. 4. Vào/ ra bằng bảng nhớ đối với CPU 8088

- Các phương pháp điều khiển vào/ ra:

+ Vào/ra bằng chương trình (Programmed I/O).

+ Vào/ra bằng ngắt (Interrupt Driven I/O).

+ Vào/ra bằng DMA (Direct Memory Access).

Sau đây chúng ta sẽ xem xét kỹ hơn các phương pháp điều khiển vào/ ra này.

a. Vào/ra bằng chương trình (Programmed I/O):

- Nguyên tắc chung:

Có thể bạn quan tâm!

Xem toàn bộ 233 trang tài liệu này.

Sử dụng lệnh vào/ra trong chương trình để trao đổi dữ liệu với cổng vào/ ra.

Khi CPU thực hiện chương trình, gặp lệnh vào/ ra thì CPU điều khiển trao đổi dữ liệu với thiết bị ngoại vi.

- Hoạt động:

Hình 5 5 Lưu đồ hoạt động của điều khiển vào ra bằng chương trình CPU 2

Hình 5. 5. Lưu đồ hoạt động của điều khiển vào/ ra bằng chương trình

+ CPU yêu cầu thao tác vào/ra;

+ Mô-đun vào/ ra thực hiện thao tác;

+ Mô-đun vào/ ra thiết lập các bit trạng thái;

+ CPU kiểm tra các bit trạng thái: Nếu chưa sẵn sàng thì quay lại kiểm tra; Nếu đã sẵn sàng thì tiến hành trao đổi dữ liệu với mô-đun vào/ ra.

b. Vào/ra bằng ngắt (Interrupt Driven I/ O) Phân loại:

- Ngắt cứng (Hard Interrupt): yêu cầu ngắt do mạch phần cứng bên ngoài gửi đến.

Có hai loại ngắt cứng là ngắt cứng không che được và ngắt cứng có thể che được.

- Ngắt cứng không che được NMI (None Maskable Interrupt): có yêu cầu ngắt thì bắt buộc phải ngắt.

Ví dụ: Có sự cố nguồn; lỗi bộ nhớ…

- Ngắt cứng có thể che được MI (Maskable Interrupt): có yêu cầu ngắt thì có hai khả năng xẩy ra:

+ Được ngắt nếu ngắt đó ở trạng thái cho phép

+ Không được ngắt nếu ngắt đó ở trạng thái bị cấm

+ Ngắt cứng MI dùng để trao đổi dữ liệu với TBNV

- Ngắt mềm (Soft Interrupt): Yêu cầu ngắt do lệnh gọi ngắt nằm trong chương trình sinh ra

-Ngắt ngoại lệ (Exception Interrupt): là các ngắt sinh ra do lỗi xuất hiện trong quá trình thực hiện chương trình

Ví dụ: Gặp lệnh chia cho 0; lệnh sai cú pháp; tràn số; nhảy đến các điều kiện không tồn tại..

Nguyên tắc hoạt động:

- CPU không mất thời gian chờ đợi;

- CPU không phải kiểm tra trạng thái sẵn sàng của TBNV;

- Mô-đun vào/ ra ngắt BXL khi nó ở trạng thái sẵn sàng.

Hình 5 6 Hoạt động của điều khiển vào ra bằng ngắt c Vào ra bằng DMA 3

Hình 5. 6. Hoạt động của điều khiển vào/ ra bằng ngắt

c. Vào/ ra bằng DMA (Direct Memory Access)

Dù dùng cách nào để định vị vào/ ra thì mỗi bộ phận vào/ ra đều có các thanh ghi để cung cấp thông tin về trạng thái và về điều khiển. Bộ phận vào/ ra dùng bit trạng thái “sẵn sàng” để báo cho bộ xử lý nó sẵn sàng nhận số liệu. Định kỳ bộ xử lý xem xét bít này để biết bộ phận vào ra có sẵn sàng hay không. Phương pháp này là phương pháp thăm dò (polling). Và nhược điểm của phương pháp này là làm mất thời gian của bộ xử lý vì định kỳ phải thăm dò tính sẵn sàng của các thiết bị ngoại vi. Điều này đã được nhận thấy từ lâu và đã dẫn đến phát minh ra ngắt quãng (interrupt) để báo cho bộ xử lý biết lúc có một bộ phận vào/ ra cần được phục vụ.

Việc dùng ngắt quãng làm cho bộ xử lý không mất thời gian thăm dò xem các ngoại vi có yêu cầu phục vụ hay không, nhưng bộ xử lý phải mất thời gian chuyển dữ liệu. Thông thường việc trao đổi số liệu giữa ngoại vi và CPU là theo khối số liệu, nên vi mạch thâm nhập trực tiếp bộ nhớ trong (DMA: Direct Memory Access) được dùng trong nhiều máy tính để chuyển một khối nhiều từ mà không có sự can thiệp của CPU.

Hình 5. 7. Sơ đồ hoạt động của hệ thống Bus có vi mạch DMA Chúng ta sẽ nghiên cứu kỹ phương pháp này ở phần tiếp sau.

5.2. Hệ thống BUS

Trong máy tính, bộ xử lý trung tâm và bộ nhớ trong liên lạc với các ngoại vi bằng Bus. Bus là một hệ thống các dây cáp nối (khoảng 50 đến 100 sợi cáp riêng biệt) trong đó một nhóm các cáp được định nghĩa chức năng khác nhau bao gồm: các đường dữ liệu, các đường địa chỉ, các dây điều khiển, cung cấp nguồn. Dùng Bus có 2 ưu điểm là giá tiền thấp và dễ thay đổi ngoại vi. Người ta có thể gỡ bỏ một ngoại vi hoặc thêm vào ngoại vi mới cho các máy tính dùng cùng một hệ thống Bus.

Các Bus thường có hai loại: Bus hệ thống nối bộ xử lý với bộ nhớ (system Bus, Front Side Bus -FSB) và Bus nối ngoại vi (Bus vào/ ra – I/O Bus). Bus vào/ ra có thể có chiều dài lớn và có khả năng nối kết với nhiều loại ngoại vi, các ngoại vi này có thể có lưu lượng thông tin khác nhau, định dạng dữ liệu khác nhau. Bus kết nối bộ xử lý với bộ nhớ thì ngắn và thường thì rất nhanh. Trong giai đoạn thiết kế Bus kết nối bộ xử lý với bộ nhớ, nhà thiết kế biết trước các linh kiện và bộ phận cần kết nối

lại, còn nhà thiết kế Bus vào/ ra phải thiết kế Bus thoả mãn nhiều ngoại vi có mức trì hoãn và lưu lượng rất khác nhau.

Hình 5. 8. Hệ thống BUS trong bo mạch chủ của một máy tính

Người ta cũng có thể phân loại Bus dựa vào loại dữ liệu truyền trên nó. Dựa vào tiêu chí này, chúng ta có các loại Bus sau:

- Bus địa chỉ: truyền các tín hiệu địa chỉ

- Bus dữ liệu: truyền các tín hiệu dữ liệu

- Bus điều khiển: truyền các tín hiệu điều khiển

Ngoài ra, còn phân chia Bus thành Bus đồng bộ, Bus bất đồng bộ, trọng tài Bus:

- BUS đồng bộ có một đường điều khiển bởi một bộ dao động thạch anh, tín hiệu trên đường dây này có dạng sóng vuông, với tần số thường nằm trong khoảng 5MHz ÷ 50MHz. Mọi hoạt động Bus xảy ra trong một số nguyên lần chu kỳ này và được gọi là chu kỳ BUS.

- Bus bất đồng bộ không sử dụng xung clock đồng bộ, chu kỳ của nó có thể kéo dài tuỳ ý và có thể khác nhau đối với các cặp thiết bị khác nhau. Làm việc với các Bus đồng bộ dễ dàng hơn do nó được định thời một cách gián đoạn. Tuy vậy chính đặc điểm này cũng dẫn đến nhược điểm. Mọi công việc được tiến hành trong khoảng thời gian là bội số của xung clock. Nếu 1 thao tác nào đó của CPU hay bộ nhớ hoàn thành trong 3.1 chu kỳ thì nó cũng sẽ phải kéo dài trong 4 chu kỳ. Khi đã chọn chu kỳ Bus và đã xây dựng bộ nhớ, I/O card cho BUS này thì khó có thể tận dụng những tiến bộ của công nghệ.

- Trong hệ thống máy tính không phải chỉ có CPU làm Bus master, các chip I/O cũng có lúc làm Bus master để có thể đọc hay ghi bộ nhớ và gọi ngắt. Các bộ đồng xử lý cũng có thể làm Bus master. Như vậy nảy sinh ra vấn đề khi 2 thiết bị trở lên đồng thời cần làm Bus master. Từ đó cần có một cơ chế phân xử để tránh sự hỗn loạn của hệ thống. Cơ chế đó gọi là trọng tài Bus.

5.3. Mô-đun vào/ ra.

- Các mô-đun vào/ ra thuộc khối hệ thống vào/ ra trong máy tính.

- Chức năng:

+ Nối ghép các thiết bị ngoại vi với máy tính.

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

+ Bộ đệm dữ liệu

+ Phát hiện lỗi

Hình 5 9 Sơ đồ khối của mô đun vào ra Thành phần cơ bản của mô đun vào 4

Hình 5. 9. Sơ đồ khối của mô-đun vào/ ra

- Thành phần cơ bản của mô-đun vào/ ra:

+ Thanh ghi dữ liệu: đệm dữ liệu trong quá trình trao đổi.

+ Các cổng vào/ra: kết nối với TBNV, mỗi cổng có một địa chỉ xác định.

+ Thanh ghi điều khiển/trạng thái: lữu giữ thông tin điều khiển, trạng thái cho các cổng vào/ra.

+ Logic điều khiển: điều khiển mô-đun vào/ ra.

Hình 5 10 Mô đun âm thanh Hình 5 11 Mô đun Ethernet 5 4 Truy cập bộ nhớ trực 5

Hình 5. 10. Mô-đun âm thanh

Hình 5 11 Mô đun Ethernet 5 4 Truy cập bộ nhớ trực tiếp Truy cập bộ nhớ 6

Hình 5. 11. Mô-đun Ethernet

5.4. Truy cập bộ nhớ trực tiếp

Truy cập bộ nhớ trực tiếp (Direct Memory Access hay được viết tắt là DMA) là một thành phần quan trọng trong bất cứ kiến trúc máy tính hiện đại nào. DMA cho phép CPU chia tải (offload) các ngăn xếp bộ nhớ ngày càng chật trội sang các thành phần khác. Cách thức này giúp giải phóng CPU khỏi các công việc lặt vặt và cung cấp nhiều chu trình (cycle) hơn để giải quyết các nhiệm vụ phức tạp hơn.

Mặc dù ý tưởng chính của kỹ thuật truy cập bộ nhớ trực tiếp khá đơn giản nhưng các hoạt động truy cập bộ nhớ một cách trực tiếp lại rất phức tạp. Có thể hình dung, khi có nhiều thiết bị (hoặc ngoại vi) đều muốn truy cập đến các vị trí của bộ nhớ thì vấn đề sẽ xảy ra. Đây là lý do hoặc yêu cầu cần có một DMA controller. DMA controller thực chất là một thiết bị giúp điều khiển tất cả các hoạt động DMA.

Để điều khiển các hoạt động DMA, DMA controller cần phải có các thông tin liên quan với hoạt động sắp tới. Các thông tin này gồm có những thứ giống như các địa chỉ nguồn và đích, chế độ, kích thước dữ liệu được truyền tải. DMA controller cũng cần được trang bị kiến thức về những gì nó sẽ truyền tải, nơi truyền tải đến và cách truyền tải như thế nào, bao lâu để thực hiện công việc đó. Với kiến thức này, DMA controller có thể yêu cầu sự điều khiển Bus nhớ từ CPU. Khi CPU sẵn sàng nhường sự điều khiển của Bus nhớ, nó sẽ gửi đi một tín hiệu phúc đáp ACK để đáp trả lại tín hiệu yêu cầu của DMA controller.

Hình 5 12 Sự tương tác Direct Memory Access Thành phần và quá trình hoạt động 7

Hình 5. 12. Sự tương tác Direct Memory Access

* Thành phần và quá trình hoạt động của phương pháp truy cập bộ nhớ trực tiếp

- Sử dụng mô-đun phần cứng trên Bus: DMAC (DMA Controller)

- Vị trí DMAC trong máy tính như sau:

Hình 5 13 Vị trí DMAC trong máy tính DMAC điều khiển vào ra không qua bộ xử 8

Hình 5. 13. Vị trí DMAC trong máy tính

- DMAC điều khiển vào/ra không qua bộ xử lý

- Các thành phần của DMAC:

+ Thanh ghi dữ liệu: chứa dữ liệu cần trao đổi.

+ Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu.

+ Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi.

+ Logic điều khiển: điều khiển hoạt động của DMAC. Quá trình hoạt động:

Bước 1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC.

Bước 2: DMAC gửi tín hiệu HRQ (Hold ReQuest) để xin dùng các đường Bus.

Bước 3: CPU sẽ thực hiện xong chu kỳ BUS hiện tại và trả lời đồng ý bằng việc gửi tín hiệu HLDA (HoLD Acknowledge) tới DMAC.

Hình 5 14 Sơ đồ cấu trúc của DMAC Bước 4 DMAC gửi tín hiệu DACK DMA 9

Hình 5. 14. Sơ đồ cấu trúc của DMAC

Bước 4: DMAC gửi tín hiệu DACK (DMA ACKnowledge) tới TBNV báo chuẩn bị truyền dữ liệu.

Bước 5: DMAC thực hiện điều khiển quá trình truyền dữ liệu giữa bộ nhớ và TBNV.

Bước 6: DMAC thực hiện xong công việc, nó bỏ kích hoạt tín hiệu HRQ. Hệ thống trở lại bình thường.

5.5. Giao diện giữa bộ xử lý với các bộ phận vào/ ra

- Giao tiếp thông qua khe cắm (Slot Card)

Các khối bên trong máy tính, ngoài những khe cắm dùng cho card vào/ ra còn có khe cắm cho card màn hình.

- Giao tiếp qua Serial Port (Port COM):

IBM PC cung cấp 2 cổng nối tiếp: COM 1 và COM 2. Các cổng này giao tiếp theo tiêu chuẩn RS232. Chúng có thể được nối với một Modem để dùng cho mạng điện thoại, hay nối trực tiếp với một máy tính khác. Dữ liệu được truyền qua cổng này theo cách nối tiếp, nghĩa là dữ liệu được gởi đi nối tiếp nhau trên 1 đường dây.

- Giao tiếp qua cổng PRINT (Cổng máy in):

IBM PC cho phép sử dụng đến 3 cổng song song có tên là LP1, LP2 và LP3.

Kiểu giao tiếp song song được dùng để truyền dữ liệu giữa máy tính và máy in

- Giao tiếp qua hệ thống vào/ ra với các mô-đun vào/ ra như đã xét ở trên.

Xem tất cả 233 trang.

Ngày đăng: 29/06/2022
Trang chủ Tài liệu miễn phí