Bộ vi xử lý - Bộ điều khiển DMA 8257
DMA là viết tắt của Direct Memory Access. Nó được Intel thiết kế để truyền dữ liệu với tốc độ nhanh nhất. Nó cho phép thiết bị truyền dữ liệu trực tiếp đến / từ bộ nhớ mà không có bất kỳ sự can thiệp nào của CPU.
Sử dụng bộ điều khiển DMA, thiết bị yêu cầu CPU giữ dữ liệu, địa chỉ và bus điều khiển, vì vậy thiết bị có thể tự do truyền dữ liệu trực tiếp đến / từ bộ nhớ. Quá trình truyền dữ liệu DMA chỉ được bắt đầu sau khi nhận được tín hiệu HLDA từ CPU.
Hoạt động DMA được thực hiện như thế nào?
Sau đây là trình tự các hoạt động được thực hiện bởi một DMA:
Ban đầu, khi bất kỳ thiết bị nào phải gửi dữ liệu giữa thiết bị và bộ nhớ, thiết bị đó phải gửi yêu cầu DMA (DRQ) đến bộ điều khiển DMA.
Bộ điều khiển DMA gửi yêu cầu Giữ (HRQ) đến CPU và đợi CPU xác nhận HLDA.
Sau đó, bộ vi xử lý ba trạng thái của tất cả các bus dữ liệu, bus địa chỉ và bus điều khiển. CPU rời khỏi quyền điều khiển trên bus và ghi nhận yêu cầu HOLD thông qua tín hiệu HLDA.
Bây giờ CPU ở trạng thái HOLD và bộ điều khiển DMA phải quản lý các hoạt động qua các bus giữa CPU, bộ nhớ và các thiết bị I / O.
Đặc điểm của 8257
Dưới đây là danh sách một số tính năng nổi bật của 8257 -
Nó có bốn kênh có thể được sử dụng trên bốn thiết bị I / O.
Mỗi kênh có địa chỉ 16 bit và bộ đếm 14 bit.
Mỗi kênh có thể truyền dữ liệu lên đến 64kb.
Mỗi kênh có thể được lập trình độc lập.
Mỗi kênh có thể thực hiện các thao tác chuyển đọc, chuyển ghi và xác minh các hoạt động truyền.
Nó tạo ra tín hiệu MARK tới thiết bị ngoại vi mà 128 byte đã được chuyển.
Nó yêu cầu đồng hồ một pha.
Tần số của nó nằm trong khoảng từ 250Hz đến 3MHz.
Nó hoạt động ở 2 chế độ, tức là Master mode và Slave mode.
8257 kiến trúc
Hình ảnh sau đây cho thấy kiến trúc của 8257 -
Mô tả 8257 Pin
Hình ảnh sau đây cho thấy sơ đồ chân của bộ điều khiển DMA 8257 -
DRQ 0 −DRQ3
Đây là bốn đầu vào yêu cầu DMA kênh riêng lẻ, được sử dụng bởi các thiết bị ngoại vi để sử dụng các dịch vụ DMA. Khi chế độ ưu tiên cố định được chọn, thì DRQ 0 có mức ưu tiên cao nhất và DRQ 3 có mức ưu tiên thấp nhất trong số đó.
QUAY LẠI o - QUAY LẠI 3
Đây là các đường xác nhận DMA hoạt động ở mức thấp, cập nhật thiết bị ngoại vi yêu cầu về trạng thái yêu cầu của họ bởi CPU. Các đường này cũng có thể hoạt động như các đường nhấp nháy cho các thiết bị yêu cầu.
D o - D 7
Đây là những đường dữ liệu hai chiều, được sử dụng để giao tiếp giữa bus hệ thống với bus dữ liệu bên trong của bộ điều khiển DMA. Trong chế độ Slave, nó mang các từ lệnh đến 8257 và từ trạng thái từ 8257. Trong chế độ chủ, các dòng này được sử dụng để gửi byte cao hơn của địa chỉ được tạo đến chốt. Địa chỉ này được chốt thêm bằng cách sử dụng tín hiệu ADSTB.
IOR
Đây là dòng đầu vào ba trạng thái hai chiều hoạt động ở mức thấp, được CPU sử dụng để đọc các thanh ghi bên trong của 8257 trong chế độ Slave. Trong chế độ chính, nó được sử dụng để đọc dữ liệu từ các thiết bị ngoại vi trong một chu kỳ ghi bộ nhớ.
IOW
Nó là một dòng ba trạng thái hai hướng thấp hoạt động, được sử dụng để tải nội dung của bus dữ liệu vào thanh ghi chế độ 8 bit hoặc byte trên / dưới của thanh ghi địa chỉ DMA 16 bit hoặc thanh ghi đếm đầu cuối. Trong chế độ chính, nó được sử dụng để tải dữ liệu đến các thiết bị ngoại vi trong chu kỳ đọc bộ nhớ DMA.
CLK
Đây là tín hiệu tần số xung nhịp cần cho hoạt động bên trong của 8257.
CÀI LẠI
Tín hiệu này được sử dụng để ĐẶT LẠI bộ điều khiển DMA bằng cách tắt tất cả các kênh DMA.
A o - A 3
Đây là bốn dòng địa chỉ ít quan trọng nhất. Trong chế độ nô lệ, chúng hoạt động như một đầu vào, chọn một trong các thanh ghi để đọc hoặc ghi. Trong chế độ chính, chúng là bốn dòng đầu ra địa chỉ bộ nhớ ít quan trọng nhất do 8257 tạo ra.
CS
Đây là dòng chọn chip hoạt động thấp. Trong chế độ Slave, nó cho phép các hoạt động đọc / ghi đến / từ 8257. Ở chế độ chính, nó sẽ tắt các hoạt động đọc / ghi đến / từ 8257.
A 4 - A 7
Đây là nibble cao hơn của địa chỉ byte thấp hơn do DMA tạo ra trong chế độ chủ.
SẴN SÀNG
Đó là tín hiệu đầu vào không đồng bộ hoạt động ở mức cao, giúp DMA sẵn sàng bằng cách chèn các trạng thái chờ.
HRQ
Tín hiệu này được sử dụng để nhận tín hiệu yêu cầu giữ từ thiết bị đầu ra. Ở chế độ phụ, nó được kết nối với dòng đầu vào DRQ 8257. Ở chế độ Master, nó được kết nối với đầu vào HOLD của CPU.
HLDA
Đây là tín hiệu báo nhận giữ cho biết bộ điều khiển DMA rằng bus đã được CPU cấp cho thiết bị ngoại vi yêu cầu khi nó được đặt thành 1.
MEMR
Đây là tín hiệu đọc bộ nhớ thấp, được sử dụng để đọc dữ liệu từ các vị trí bộ nhớ được định địa chỉ trong chu kỳ đọc DMA.
MEMW
Đây là tín hiệu ba trạng thái hoạt động ở mức thấp được sử dụng để ghi dữ liệu vào vị trí bộ nhớ được định địa chỉ trong quá trình ghi DMA.
QUẢNG CÁO
Tín hiệu này được sử dụng để chuyển đổi byte cao hơn của địa chỉ bộ nhớ do bộ điều khiển DMA tạo ra thành các chốt.
AEN
Tín hiệu này được sử dụng để vô hiệu hóa bus địa chỉ / bus dữ liệu.
TC
Nó là viết tắt của 'Terminal Count', cho biết chu kỳ DMA hiện tại đến các thiết bị ngoại vi hiện tại.
DẤU
Dấu sẽ được kích hoạt sau mỗi 128 chu kỳ hoặc bội số tích phân của nó từ đầu. Nó cho biết chu kỳ DMA hiện tại là chu kỳ thứ 128 kể từ đầu ra MARK trước đó đến thiết bị ngoại vi đã chọn.
V cc
Đây là tín hiệu nguồn cần thiết cho hoạt động của mạch.