Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trực tiếp vào bộ nhớ (DMA) Trong các cách điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và hệ vi xử lý bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi hay bằng cách ngắt bộ vi xử lý đã đ-ợc nói đến ở các ch-ơng tr-ớc, dữ liệu th-ờng đ-ợc chuyển từ bộ nhớ qua bộ vi xử lý để rồi từ đó ghi vào thiết bị ngoại vi hoặc ng-ợc lại, từ thiết. | CHƯƠNG 8 VÀO RA Dữ LIỆU BẰNG DMA 1. Nguyên tắc của việc trao đoi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trực tiếp vào bộ nhớ DMA Trong các cách điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và hệ vi xử lý bằng cách thám dò trạng thái sẵn sàng của thiết bị ngoại vi hay bằng cách ngắt bộ vi xử lý đã được nói đến ở các chương trước dữ liệu thường được chuyển từ bộ nhớ qua bộ vi xử lý để rồi từ đó ghi vào thiết bị ngoại vi hoặc ngược lại từ thiết bị ngoại vi nó được đọc vào bộ vi xử lý để rồi từ đó được chuyển đến bộ nhớ. Vì thế tốc độ trao đổi dữ liệu phụ thuộc rất nhiều vào tốc độ thực hiện của các lệnh MOV IN và OUT của bộ vi xử lý và do đó việc trao đổi dữ liệu không thể tiến hành nhanh được. Trong thực tế có những khi ta cần trao đổi dữ liệu thật nhanh với thiết bị ngoại vi như khi cần đưa dữ liệu hiện thị ra màn hình hoặc trao đổi dữ liệu với bộ điều khiển đĩa. Trong các trường hợp đó ta cần có được khả náng ghi đọc dữ liệu trực tiếp với bộ nhớ direct memory access DMA - thâm nhập vào bộ nhớ trực tiếp không thông qua CPU thì mới đáp ứng được yêu cầu về tốc độ trao đổi dữ liệu. Để làm được điều này các hệ vi xử lý nói chung đều phải dùng thêm mạch chuyên dụng để điều khiển việc thâm nhập trực tiếp vào bộ nhớ direct memory access controller DMAC . Có thể lấy 1 thí dụ cụ thể để minh hoạ điều này. Trong khi một mạch DMAC như 8237A-5 của Intel có thể điều khiển việc chuyển 1 byte trong 1 mảng dữ liệu từ 232 bộ nhố ra thiết bị ngoại vi chỉ hết 4 chu kỳ đồng hồ thì bộ vi xử lý 8088 phải làm hết cỡ 40 chu kỳ LAP MOV AL SI OUT PORT AL INC SI Looop LAP Số chu kỳ đồng hồ 10 10 2 17 Cộng 39 chu kỳ Để hỗ trợ cho việc trao đổi dữ liệu vối thiết bị ngoại vi bằng cách thâm nhập trực tiếp vào bộ nhố tại mỗi vi mạch CPU thường tồn tại chân yêu cầu treo HOLD để thiết bị ngoại vi mỗi khi có yêu cầu dùng bus cho việc trao đổi dữ liệu vối bộ nhố thì thông qua chân này mà báo cho CPU biết. Đến lượt CPU khi nhận được yêu cầu treo thì nó tự treo lên tự tách ra khỏi .