. Tớnh tổng (hiệu) hai số cú kết quả nhỏ hơn 10 nhập vào từ bàn phớm file congasm
1. Khối đó được ọn cú màu
HLDA HACK DACK DACK
− CPU phát tín hiệu HLDA trả lời cho DMAC và tự tách ra khỏi hệ thống bus. Quy
− DM u cầu, phát
địa chỉ ô nhớ lên bus địa chỉ, phát các tín hiệu điều khiển ghi/đọc thiết bị
vào/ ển toàn
− −
Tro + Treo
+ Treo CPU để trao đổi từng byte. + T
• Trao đổi cả mảng dữ liệu: Trong chế độ này CPU bị treo trong suốt thời gian trao đổi
với ổ đĩa h một mảng
dữ liệu 1.
ịa chỉ đầu của mảng nhớ, độ dài của mảng 2. o đổi dữ liệu, nó đ−a DRQ=1 đến 3.
treo CP 4. Nhận đ−ợ
n dữ liệu từ bộ nhớ ra thiết bị ngoại vi bằng ền điều khiển hệ thống bus thuộc về DMAC
AC làm chủ bus hệ thống, tạo tín hiệu DACK trả lời thiết bị yê ra và các tín hiệu điều khiển ghi/đọc bộ nhớ và thực hiện điều khi bộ quá trình chuyển dữ liệu giữa thiết bị vào/ra và bộ nhớ.
Kết thúc quá trình DMA, DMAC gửi tín hiệu HRQ = 0 đến chân HOLD trả lại quyền điều khiển bus cho CPU
CPU tiếp tục làm việc bình th−ờng.
ng trao đổi dữ liệu DMAC có 3 kiểu trao đổi nh− sau: CPU một khoảng thời gian để trao đổi cả mảng dữ liệu. ận dụng thời gian không dùng bus của CPU để trao đổi dữ liệu.
mảng dữ liệu. Chế độ này đ−ợc dùng khi ta có nhu cầu trao đổi dữ liệu oặc đ−a dữ liệu ra để hiển thị. Các b−ớc thủ tục để chuyển
từ bộ nhớ ra thiết bị ngoại vi:
CPU phải ghi từ điều khiển và từ chế độ làm việc vào DMAC để quy định cách thức làm việc, đ
nhớ…
Khi thiết bị ngoại vi có yêu cầu tra DMAC.
DMAC đ−a ra tín hiệu HRQ đến chân HOLD của CPU để yêu cầu U. HOLD=1 trong suốt quá trình trao đổi dữ liệu.
c yêu cầu treo, CPU kết thúc chu kỳ bus hiện tại, sau đó treo các bus của mình và đ−a tín hiệu HLDA báo cho DMAC đ−ợc toàn quyền sử dụng bus.
5. DMAC đ−a ra xung DACK để báo cho thiết bị ngoại vi biết là có thể bắt đầu quá trình trao đổi dữ liệu.
6. DMAC bắt đầu chuyể
cách đ−a địa chỉ của byte đầu ra bus địa chỉ và đ−a tín hiệu
MEMR=0 để đọc từ bộ nhớ ra bus dữ liệu. Tiếp đó DMAC đ−a tín hiệu IOW=0 để ghi dữ liệu ra thiết bị ngoại vi. DMAC sau đó giảm bộ đếm số byte cần phải chuyển, cập nhật byte cần đọc tiếp và lặp lại các động tác trên cho đến khi hết số đếm.
7. Khi quá trình DMA kết thúc, DMAC cho ra tín hiệu HRQ=0 để báo cho CPU biết và dành lại quyền điều khiển hệ thống.
• Treo CPU để trao đổi từng byte
CPU không bị treo lâu dài trong một lần nh−ng thỉnh thoảng lại bị treo trong một khoảng thời gian rất ngắn đủ để trao đổi một byte dữ liệu. Do bị mất một số chu kỳ đồng hồ nh− vậy nên tốc độ thực hiện một công việc nào đó của
CPU − tr−ớc (chỉ
trao đổi một byte).
• Tận dụng thời gian CPU không dùng bus để trao đổi dữ liệu
ng cách tra u này ta phải có các logic phụ bên ngoài cần thiết để phát hiện ra các chu kỳ xử lý nội bộ của CPU (không dùng đến bus ngoài) và tận dụng các chu kỳ đó vào việc trao đổi hiết bị ng i bộ nhớ. Trong cách làm này thì DMAC và CPU luân phiên nhau sử dụng bus và việc thâm trực tiếp b này không gì tới hoạt động bình th−ờng của CPU.
điều khiển truy nhập bộ nhớ trực tiếp DMAC (8237)
H của DMAC 8237
Các đặc tr−ng của IC:
- Cho phép hoặc cấm riêng từng kênh DMA
chỉ bị suy giảm chứ không bị dừng hẳn. Cách trao đổi t−ơng tự nh
Tro
nhập
o đổi dữ liệ
dữ liệu giữa t oại vi vớ ộ nhớ kiểu ảnh h−ởng 4.2.2 Bộ ỡnh 4.12. Sơđồ khối Khối tạo nhịp và điều khiển Bộ giảm Thanh ghi tạm bộ đếm số từ Đệm ra Đệ Địa chỉ Số từ hiện tại hiện tại
m ghi/đọc Đệm đọc cơ sở Địa chỉ Số từ cơ sở TG mặt nạ TG yêu cầu TG tạm TG trạng thái TG chế độ Bộ mã hoá ứ −u t log tạ −u n luân m c iên và ic o tiê phiên TG lệnh Đệm I/O Đệm ghi Đệm đọc Đệm I/O Bộ tăng Thanh ghi tạm bộ đếm số từ
- D
độc lập và có 4 đ−ờng trả lời DACK MA giữ vùng nhớ
- Tự khởi động giữa từng kênh riêng biệt
- Cho phép nối từng kênh để tăng số kênh DMA
Khi dùng DMAC hệ dùng một số lệnh điều khiển hơi khác với CPU Có 4 kênh DRQ
Có IOR Và IOW 2 chiều dùng DMAC đọc ghi từ ngoại vi.
MEMR và MEMW dùng cho bộ nhớ.
EOP là tín hiệu hai chiều. Khi đ−a vào 8237 làm nhiệm vụ DMAC kết thúc quá trình DMA. Nếu ra nó báo cho 1 kênh nào đó đẫ chuyển số byte yêu cầu lúc này nó dùng yêu cầu ngắt với CPU xử lý quá trình ngắt DMA.
cấm
ây là xung từ 8237 để chốt địa chỉ cao từ A8-A15 tren DB
hanh ghi DMAC khi lập trình ra chứa 4
DB0-7: 2 chiều nối với bus địa chỉ và bus dữ liệu.
Ready: Là tín hiệu sẵn sàng nối từ 8237 tới Ready của hệ thống để tạo chu kỳ đợi kh Các trạng t Phụ Nhóm ỉ và hoạt động. clock. Có
1. thái nghỉ SI: Đây là trạng thái không hoạt động (
AEN cho phép mạch chốt nối DB0-7 chốt đến vùng bộ nhớ dùng DMA và các đệm từ CPU.
ADSTB: Đ
A0-A3: Là hai chiều. Dùng để chọn các t bit thấp địa chỉ.
A4-A7: Là 4 bit địa chỉ cao.
i tín hiệu chậm. hái
thuộc vào ta đặt tr−ớc vào thanh ghi.
thanh ghi điều khiển và trạng thái:… làm việc theo 2 chu kỳ ngh Mỗi chu kỳ bao gồm một số trạng thái. Mỗi trạng thái chiếm một xung 7 trạng thái:
Trạng CS = 1) lúc
2.
CPU nh−ng ch−a đ−ợc xác nhận bằng tín hiệu HLDA. liệu S1. DMAC phát địa chỉ nguồn n dữ liệu S2.DMAC phát ra lệnh đọc nguồn dữ
thanh ghi đệm 8237A.
này CPU điều khiển 8237A.
Trạng thái chờ: Đây là trạng thái bắt đầu DMA. Khi DMAC gửi tín hiệu treo
3. Trạng thái phát địa chỉ nguồn dữ dữ liệu (ngoại vi, bộ nhớ).
4. Phát lệnh đọc nguồ liệu.
5. Trạng thái chờ SW (xảy ra nếu tốc độ hai bên khác nhau). DMAC chờ trong khoảng SW để dữ liệu đọc đ−ợc ghi hết vào
6. Phát địa chỉ đích của dữ liệu S3.
7. Trạng thái phát lệnh ghi dữ liệu vào đích S4.
C việc:
+ Chuyển một từ đơn
+ Chế độ chuyển bản, chuyển cả mảng dữ liệu cho đến khi TC (bộ đếm địa chỉ) hoặc EOP. ở đây DMAC không cho phép tự khởi động.
+ Chuyển theo nhu cầu: Cũng chuyển cả mảng dữ liệu nh− chế độ thứ 2 nh−ng nó đ−ợc nạp lại mỗi lần DRQ mới.
+ Chế độ ghép tầng.
MAC 8237
Chế độ −
+ R0 cao nhất -IR3)
+ Ưu tiên vòng (luân phiên): Đảm bảo 4 yêu cầu nh− nhau.
Các than Các thanh gh khối xử lý DMA u khiển Than + + o từng kênh
Thanh ghi điều khiển
+ Thanh ghi chế độ: Điều khiển việc chuyển mảng đến để tăng hay giảm nối tầng hay không.
ác chế độ DMAC làm
Hỡnh 4.13. Ghộp nhiều D
u tiên các yêu cầu DMA Ưu tiên cố định.(I
h ghi nội
i nội của DMAC chia làm 2 loại:
+ Thanh ghi của
+ Các thanh ghi điề h ghi DMA:
Thanh ghi yêu cầu
+ Thanh ghi lập xoá mặt nạ Thanh ghi mặt nạ ch + Thanh ghi lệnh: CPU hol Drq1a Dack1 Dack0 Drq0 8237 d 8237 HLDA 8237
+ Thanh ghi trạng thái: Trạng thái của từng kênh còn yêu cầu DMA hay kết thúc DMA.