Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập trực tiếp bộ nhớ DMAC 8237 và các chế độ hoạt động của DMAC 8237CHI TIẾT BÁO CÁOI. Mở đầu 1. Nhiệm vụ của bàiNghiên cứu tìm hiểu về vi mạch điều khiển truy nhập bộ nhớ DMAC8237 và các chế độ hoạt động cuả DMAC 2. Bố cục Giới thiệu phương pháp truy nhập bộ nhớ DMAC Các hoạt động của chíp điều khiển DMAC Cấu tạo nguyên lý hoạt động của chíp DMACII. Nội dung1.Phương pháp DMA và hoạt động của chíp điều khiển DMAC 1.1. Phương pháp DMA Phương pháp đảm bảo thời gian phục vụ yêu cầu vào ra số liệu của ngoại vi là ngắn nhưng vẫn phải thực hiện bằng phần mềm. Mỗi lệnh đều phải được thực hiện qua các công đoạn có sự tham gia của vi xử lý. Trong một số trường hợp ví dụ khi cần chuyển 1 mảng dữ liệu có đặc điểm giống nhau giữa bộ nhớ và các ngoại vi nhanh như màn hình thì phương pháp bằng phần mềm không đủ nhanh để đáp ứng yêu cầu chuyển số liệu rất cao. Lúc này phải dùng phương pháp bằng phần cứng, thay chưong trình con thực hiện chuyển số liệu giữa ngoại vi và bộ nhớ bằng các mạch điện tử thực hiện chuyển số liệu giữa bộ nhớ và thiết bị ngoại vi mà không thông qua vi xử lý. Cách thức này gọi là truy nhập bộ nhớ trực tiếp DMA (direct memory access) . Làm nhiệm vụ điều khiển quá trình này là là chíp bổ trợ DMAC8237 , hay còn được gọi là DMAC (Direct memory access controller). Với Phương pháp DMA, tộc độ truyển dữ liệu chỉ bị hạn chế bởi thời gian truy nhập của bộ nhớ . Vi xử lý không cần phải đọc , giải mã và thực hiện các lệnh chuyển số liệu , các lệnh điều chỉnh địa chỉ và các lệnh kiểm tra độ dài mảng đã chuyển để biết thời điểm kết thúc. Nó hoàn toàn chuyển quyền điều khiển Bus cho chip DMAC và số liệu được truyền trực tiếp giữa ngoại vi và bộ nhớ dưới sự điều khiển của chíp này.======================================== Trường Đại Học Công Nghiệp Hà Nội Lớp Kĩ Thuật Phần Mềm 3 Khoa CNTT BÀI BÁO CÁO MÔN KIẾN TRÚC MÁY TÍNH ĐÈ TÀI Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập trực tiếp bộ nhớ DMAC 8237 Phụ Trách Bộ Môn Thầy Nguyễn Thanh Hải Thực Hiện Nhóm 13 Danh Sách Nhóm Họ Và Tên Mã SV Nguyễn Văn Việt 0941360204 Phan Văn Huy 0941360231 Lưu Văn Huy 0941360233 Mai Văn Tâ.
Trang 1Bài Báo Cáo Kiến Trúc Máy Tính DMAC 8237
========================================
Trường Đại Học Công Nghiệp Hà Nội Lớp Kĩ Thuật Phần Mềm 3
Khoa CNTT
***
BÀI BÁO CÁO MÔN KIẾN TRÚC MÁY TÍNH
ĐÈ TÀI Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập trực tiếp bộ nhớ DMAC
8237
Phụ Trách Bộ Môn : Thầy Nguyễn Thanh Hải
Thực Hiện: Nhóm 13 Danh Sách Nhóm
Nguyễn Văn Việt 0941360204
Phan Văn Huy 0941360231
Lưu Văn Huy 0941360233
Mai Văn Tân 0941360191
Nguyễn Mạnh Cường 0941360199
Trang 2I Mở đầu 3
1 Nhiệm vụ của bài 3
2 Bố cục 3
II Nội dung 3
1.Phương pháp DMA và hoạt động của chíp điều khiển DMAC 3
1.1 Phương pháp DMA 3
1.2 Hoạt động của chíp điều khiển DMAC 4
2 Chip bổ trợ DMA-8237A 5
2.1 Sơ đồ nguyên lý 5
2.2 Các trạng thái làm việc 7
2.3 Các thanh ghi bên trong 8237 8
2.4 Chu kỳ nghỉ 8
2.5 Chu kì hoạt động 8
2.6 Các chế độ ưu tiên 8
2.7 Làm việc với vi xử lý 9
III.Kết luận 16
Trang 3Đề Tài : Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập trực tiếp bộ nhớ DMAC
8237 và các chế độ hoạt động của DMAC 8237
CHI TIẾT BÁO CÁO
I Mở đầu
1 Nhiệm vụ của bài
Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập bộ nhớ DMAC-8237 và các chế độ hoạt động cuả DMAC
2 Bố cục
- Giới thiệu phương pháp truy nhập bộ nhớ DMAC
- Các hoạt động của chíp điều khiển DMAC
- Cấu tạo nguyên lý hoạt động của chíp DMAC
II Nội dung
1.Phương pháp DMA và hoạt động của chíp điều khiển DMAC
1.1 Phương pháp DMA
Phương pháp đảm bảo thời gian phục vụ yêu cầu vào ra số liệu của ngoại vi là ngắn nhưng vẫn phải thực hiện bằng phần mềm Mỗi lệnh đều phải được thực hiện qua các công đoạn có sự tham gia của vi xử lý Trong một số trường hợp ví dụ khi cần chuyển 1 mảng dữ liệu có đặc điểm giống nhau giữa bộ nhớ và các ngoại vi nhanh như màn hình thì phương pháp bằng phần mềm không đủ nhanh để đáp ứng yêu cầu chuyển số liệu rất cao Lúc này phải dùng phương pháp bằng phần cứng, thay chưong trình con thực hiện chuyển số liệu giữa ngoại vi và bộ nhớ bằng các mạch điện tử thực hiện chuyển số liệu giữa bộ nhớ và thiết bị ngoại vi mà không thông qua vi xử lý Cách thức này gọi là truy nhập bộ nhớ trực tiếp DMA (direct memory access) Làm nhiệm vụ điều khiển quá trình này là là chíp bổ trợ DMAC-8237 , hay còn được gọi là DMAC (Direct memory access controller) Với Phương pháp DMA, tộc độ truyển dữ liệu chỉ bị hạn chế bởi thời gian truy nhập của bộ nhớ Vi xử lý không cần phải đọc , giải mã và thực hiện các lệnh chuyển số liệu , các lệnh điều chỉnh địa chỉ và các lệnh kiểm tra độ dài mảng đã chuyển để biết thời điểm kết thúc Nó hoàn toàn chuyển quyền điều khiển Bus cho chip DMAC và số liệu được truyền trực tiếp giữa ngoại vi
và bộ nhớ dưới sự điều khiển của chíp này
Trang 41.2 Hoạt động của chíp điều khiển DMAC
Chíp DMAC sẽ tạo ra địa chỉ , các tín hiệu điều khiển đọc đọc/viết ngoại vi , tính số từ đã chuyển và thông báo khi chuyển xong mảng số liệu cho vi xử lý Ta có thể hình dung như sơ đồ sau :
Hình 1:Các đường liên hệ trực tiếp trong quá trình DMA
Hình 2: Sơ đồ nối DMAC với bộ nhớ, thiết bị ngoại vi và vi xử lý
Khi hoạt động DMA, một ngoại vi ( ví dụ, bộ điều khiển ổ đĩa) muốn gửi byte số liệu bằng phương pháp này thì trước hết nó phải gửi tín hiệu theo yêu cầu DMA là DREQ tới một lối vào (gọi là một kênh) của chíp DMAC.Nếu kênh này không bị che, chíp DMAC sẽ đáp lại bằng tín hiệu ghi nhận yêu cầu HRQ.Vi xử lý sẽ đáp ứng bằng cách thả nổi bus và gửi ra tín hiệu ghi nhận HLDA tới DMAC Khi DMAC nhận được tín hiệu này, nó sẽ gửi được một tín hiệu điều khiển các chuyển mạch kể trên tới vị trí DMA của chúng.Việc này làm ngắt xử lý khỏi bus và nối DMAC với bus Lúc này DMAC nhận quyền điều khiển bus và gửi ra địa chỉ nhớ mà số liệu từ ngoại vi cần viết vào Tiếp theo nó gửi tín hiệu nhận DMA là DACK0 tới ngoại vi để báo cáo cho ngoại
Vi xử Lý
Không gian
Bộ nhớ
Không gian vào ra
DMAC
CPU
HOLD
HLDA
DMAC
HRQ HACK
DRQ DACK DACK
DRQ
Thiết bị I/O
BỘ NHỚ BUS số liệu
BUS địa chỉ
BUS điều khiển ,các tín hiệu IOR, IOW, MEMR, MEMW
Trang 5vi hãy sẵn sàng gửi tiếp số liệu Cuối cùng, chíp DMAC hạ cả hai đường IOR và MEMW trên bus điều khiển tới mức lôgic thấp để cho phép ngoại vi xuất byte số liệu
ra và viết vào bộ nhớ Khi việc truyền số liệu hoàn tất, chip DMAC lấy đi tín hiệu khi yêu cầu HRQ thả nổi bus Các chuyển mạch quay về vị trí ban đầu cho phép xử lý nắm lại quyền điều khiển bus cho đến khi DMA yêu cầu tiếp theo Việc truyền số liệu bằng DMA từ bộ nhớ tới ngoại vi cũng được thực hiện theo cách tương tự chỉ có điều chíp
DMAC lúc này sẽ làm tích cực đường điều khiển đọc bộ nhớ MEMR và đường điều khiển số liệu ra IOW.
Thông thường chip DMAC chuyển lên tục cả mảng số liệu, nên trong nó có thanh
đếm số từ (word count register) cho mỗi kênh Sau mỗi chuyển được một từ, nội dung thanh đếm giảm đi 1, địa chỉ DMA được hiệu chỉnh lại (hoặc tăng hoặc giảm l) Khi nội dung thanh đếm số từ bằng 0, chip DMA thông báo kết thúc hoạt động DMA bằng tín hiệu TC (terminal count) được tạo ra từ thanh đếm số từ Kết thúc quá trình DMA, chip DMAC sẽ đưa theo tín hiệu yêu cầu treo HRQ trở về mức tích cực (HRQ = 0)
Có hai phương pháp thực hiện DMA: cách thứ nhất là xử lý chuyển nhượng bus cho DMAC rồi tự treo; cách thứ hai là DMAC lấy nén chu kì, trong đó DMAC tận dụng những khoảng thời gian trong một chu kì bus mà CPU không truy cập bộ nhớ (khi CPU bật phát tín hiệu địa chỉ cho các chu kì đọc hoặc viết bộ nhớ) để thực hiện phép DMA Phương pháp thứ hai đòi hỏi việc đồng bộ thời gian rất nghiêm ngặt Ta
có giản đồ thời gian của phép DMA bằng phương pháp lấy nén chu kì
Hình 3: Các chu kì nén
2 Chip bổ trợ DMA-8237A
2.1 Sơ đồ nguyên lý : Vi mạch 8237A của hãng Intel là một ví dụ điển hình
của một chip điều khiển truy nhập bộ nhớ trực tiếp
DMAC trong máy vi tính IBM PC Đó là một vi
mạch gồm có 40 chân và được chia làm hai hàng
mỗi bên 20 chân Ta có thể thấy như trong hình 4
Hình 4: Sơ đồ chân DMAC-8237
Trang 6Hình 5: Sơ đồ khối chíp DMAC-8237 DMA-8237A gồm 3 khối chính :
- Khối điều khiển và phân chia thời gian cho các hoạt động bên trong và tạo tín
hiệu điều khiển cho bên ngoài
- Khối điều khiển mã lệnh do CPU đưa tới trước khi phục vụ DMA và giải mã từ
điều khiển chế độ để chọn điều kiểu DMA
- Khối mã hoá đàu tiên làm trọng tải ưu tiên giải quyết ưu tiên cho những kênh
DMA yêu cầu phục vụ trong cùng một thời điểm
Các chân tín hiệu là như sau:
• IOR: chỉ thị rằng chip DMA đang đọc số liệu từ ngoại vi địa chỉ cảng
• IOW: DMA đang viết số liệu tới ngoại vi qua cảng.
•MEMR: số liệu được đọc từ bộ nhớ chính.
•MEMW:số liệu đang được viết ở bộ nhớ chính
•READY: tín hiệu vào từ bộ nhớ hoặc ngoại vi.
•HLDA: CPU hoặc bus master báo cho biết nó đã rời khỏi bus cho DMA.
•ADSTB: nhận byte cao vào chốt địa chỉ ngoài của DMA.
•AEN: kích hoạt chốt địa chỉ của DMA.
•HQR: tín hiệu yêu cầu DMA từ chip 8237.
• CS: tín hiệu chọn chip.
• CLK: lối vào xung nhịp đồng hồ(4,77 MHz hoặc 7,16 MHz trong PC).
• RESET: khởi động lại chip.
• DACK0-DACK3: chấp nhận DMA
• DREQ0-DREQ3: đòi hỏi DMA tử ngoại vi
• DB0-DB7: bus số liệu 2 hướng
• A0-A3: ở trạng thái standby,CPU dùng nibble này để định địa chỉ các thanh ghi.
Khi 8237 được kích hoạt,đây là 4 bit địa chỉ thấp
• A4-A7: khi 8237 được kích hoạt, đay là 4 bit địa chỉ.
•EOP: Kết thúc xử lý DMA
•Vcc: nguồn nuôi +5V
• GND: nối đất.
Trang 72.2 Các trạng thái làm việc
8237 làm việc trong 2 chu kỳ máy cơ bản: chu kỳ nghỉ và chu kỳ hoạt động Mỗi chu kỳ máy DMA bao gồm một số trạng thái,
co 7 trạng thái, mỗi trạng thái chiếm một chu
kỳ đồng hồ:
- SI: Trạng thái không hoạt động, 8237 ở
trạng thái này khi không có yêu cầu DMA
hợp lệ ,8237 chỉ nhận lệnh từ CPU khi ở trạng
thái này
- S0: là trạng thái đầu của quá trình phục
vụ DMA,khi chip DMA chuyển sang trạng
thái SI
- S1,S2,S3,S4: các trạng thái làm việc của DMA Lúc này chip DMA trực tiếp điều
khiển chuyển số liệu bằng các địa chỉ, tín hiệu điều khiển đọc/ viết do chính mình tạo ra
- SW: là trạng thái đợi đựoc xen vào giữa
S3 và S4 do tác động của đầu vào READY của chip DMA SW cần thiết khi thời gian thâm nhập của bộ nhớ quá lớn 2.3 Các thanh ghi bên trong 8237 Các thanh ghi trong chip được chia thành hai nhóm: nhóm các thanh ghi điều khiển, trạng thái và nhóm các thanh ghi làm việc Bảng 4.2 liệt kê các thanh ghi đó 2.4 Chu kỳ nghỉ Khi không có yêu cầu DMA, 8237 ở chu kỳ nghỉ bằng cách liên tục thực hiện trạng thái SI Nó kiểm tra các đường yêu cầu số liệu DQR vào tất cả các chu kỳ đồng hồ, đồng thời kiểm tra chân chọn mạch CS để xem CPU có ý định gửi lệnh đến hoặc đọc/ghi thông số, trạng thái, chế độ DMA từ (hoặc vào) chip DMA hay không Nếu CS=0 và HRQ = 0, 8237 tuân theo sự điều khiển bằng chương trình của CPU A0-A3 là những đầu vào địa chỉ để chọn các thanh ghi trong của 8237 Những thanh ghi này được ghi vào hoặc đọc ra tuỳ thuộc vào tín hiệu điều khiển đọc/ viết IORD và IOWD của CPU 2.5 Chu kì hoạt động Lúc này chip DMA phát yêu cầu treo HRQ cho CPU Số liệu được chuyển bằng DMA trong những chu kỳ này theo một trong những chế độ sau: - Chế độ chuyển từng từ (Single Transfer Mode) Tên thanh ghi Độ dài( bit) số lượng Địa chỉ gốc 16 4
Số từ gốc 16 4
Địa chỉ tức thời 16 4
Số từ tức thời 16 4
Trạng thái 8 1
Lệnh 8 1
Tạm thời 8 1
Chế độ 6 4
Mặt nạ 4 1
Yêu cầu DMA 4 1
Trang 8- Chế độ chuyển mảng (Bolock Transfer)
- Chế độ chuyển theo nhu cầu (Đeman Transfer)
- Chế độ ghép tầng (Cascade mode)
2.6 Các chế độ ưu tiên
8237 có thể làm việc ở 2 chế độ ưu tiên khác nhau theo quy định từ phần mèm:
- Chế độ ưu tiên cố định: kênh 0 có mức ưu tiên cao nhất, kênh 3 có mức thấp nhất
- Chế độ ưu tiên vòng: kênh vừa phục vụ sẽ có mức ưu tiên thấp nhất, lúc mới lập chế độ kênh 0 ở mức cao nhất
2.7 Làm việc với vi xử lý
8237 có thể làm việc một trong hai chế độ ưu tiên khác nhau theo quy định phần mềm từ CPU là: chế độ ưu tiên cố định: kênh 0 có mức ưu tiên cao nhất, kênh 3 có mức thấp nhất; và chế độ ưu tiên vòng: kênh vừa phục vụ sẽ có mức ưu tiên thấp nhất, lúc mới lập chế độ kênh 0 ở mức cao nhất Trước khi để DMAC làm việc, chương trình cần phải lập cho nó cho chế độ ưu tiên, mặt nạ (che) cho từng kênh, v.v và quy định cho từng kênh địa chỉ DMA, đọ dài mảng (số đếm từ) bằng cách ghi vào các thanh ghi trong của 8237 theo quy định
Trong quá trình hoạt động, 8237 luôn cập nhật trạng thái của mình vào thanh ghi trạng thái để vi xử lý có thể độc ở thời điểm nào Thông tin trạng thái cho biết kênh DMA nào đã đạt đến số đếm kết thúc TC (terminal count) tức đã chuyển xong mảng
số liệu có độ dài quy định ở thanh ghi số đếm từ gốc, hoặc bị bắt buộc kết thúc chuyển
do tác động của tín hiệu EOP đang vhờ phục vụ bất cứ ở kênh nào nếu có
8237 còn có thể nhận và thực hiện hai lệnh phần mềm vi xử lý:
Lệnh xoá mạch lật bên trong nhằm để đưa về trạng thái ban đầu trước khi đọc học
được viết địa chỉ hoặc số đếm từ mới vào 8237,
Lệnh xoá toàn bộ có chức năng như RESET lạnh: tất cả các thanh ghi lệnh, trạng
thái, yêu cầu mạch lật trong đều bị xoá, thanh ghi mặt nạ được lập và 8237 chuyển
sang chu kì nghỉ
Thanh ghi yêu cầu DMA:
Trang 9Hình 6: Thanh ghi yêu cầu DMA
Thanh ghi lệnh:
Hình 7: Thanh ghi lệnh
Thanh ghi chế độ :
Hình 8 :Thanh ghi chế độ
Thanh ghi mặt nạ :
Trang 10Hình 9: thanh ghi mặt nạ
Định dạng cho các thanh ghi
Kênh Thanh ghi Đọc
/viết
CS TOR IOW A3 A2 A1 A0
Mạch lật trong
Bus số liệu
DB0-DB7
0
Địa chỉ gốc và tức
thời
Địa chỉ tức thời
Viết Đọc
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 1
A0-A7 A8-A15 A0-A7 A8-A15
Trang 11Số từ gốc và tức thời
Số từ tức thời
Viết Đọc
0 0 1 0 0 0 0
0 0 1 0 0 0
0
0 1 0 0 0 0 1
0 1 0 0 0 0
1
0 0 1 0 0 0 1
0 0 1 0 0 0
1
0 1 0 1
W0-W7 W8-W15 W0-W7 W8-W15
1
Địa chỉ gốc và tức
thời
Địa chỉ tức thời
Số từ gốc và tức thời
Số từ tức thời
Viết Đọc Viết Đọc
0 1 0 0 0 1 0
0 1 0 0 0 1 0
0 0 1 0 0 1 0
0 0 1 0 0 1
0
0 1 0 0 0 1 1
0 1 0 0 0 1
1
0 0 1 0 0 1 1
0 0 1 0 0 1 1
0 1 0 1 0 1 0 1
A0-A7 A8-A15 A0-A7 A8-A15 W0-W7 W8-W15 W0-W7 W8-W15
2
Địa chỉ gốc và tức
thời
Địa chỉ tức thời
Số từ gốc và tức thời
Viết Đọc Viết
0 1 0 0 1 0 0
0 1 0 0 1 0 0
0 0 1 0 1 0 0
0 1 0 1 0
A0-A7 A8-A15 A0-A7 A8-A15 W0-W7
Trang 12Số từ tức thời Đọc
0 0 1 0 1 0
0
0 1 0 0 1 0 1
0 1 0 0 1 0
1
0 0 1 0 1 0 1
0 0 1 0 1 0 1
1 0 1
W8-W15 W0-W7 W8-W15
3
Địa chỉ gốc và tức
thời
Địa chỉ tức thời
Số từ gốc và tức thời
Số từ tức thời
Viết Đọc Viết Đọc
0 1 0 0 1 1 0
0 1 0 0 1 1 0
0 0 1 0 1 1 0
0 0 1 0 1 1
0
0 1 0 0 1 1 1
0 1 0 0 1 1
1
0 0 1 0 1 1 1
0 0 1 0 1 1 1
0 1 0 1 0 1 0 1
A0-A7 A8-A15 A0-A7 A8-A15 W0-W7 W8-W15 W0-W7 W8-W15
Các lệnh của chip DMA-8237A
Tín hiệu
A3 A2 A1 A0 IO R
IO W
Lệnh
1 0 0 0 0
1
Đọc thanh ghi trang thái
1 0 0 0 1 Nạp thanh ghi lệnh
Trang 131
1 0 0 1 0
1
| không hợp lệ
1 0 0 1 1
0
Nạp thanh ghi yêu cầu DMA
1 0 1 0 0
1
| không hợp lệ
1 0 1 0 1
0
Ghi từng bit cho thanh ghi mặt na
1 0 1 1 0
1
| không hợp lệ
1 0 1 1 1
0
Nạp thanh ghi chế độ
1 1 0 0 0
1
| không hợp lệ
1 1 0 0 1
0
Xoá mạch lật xong
1 1 0 1 0
1
Đọc thanh ghi tạm thời
1 1 0 1 1
0
RESET DMA
1 1 1 0 0
1
| không hợp lệ
1 1 1 0 1
1
| không hợp lệ
1 1 1 1 0
1
| không hợp lệ
1 1 1 1 1
1
Ghi toàn bộ thanh ghi mặt na
Trong CPXC một chip DMAC chỉ có khả năng phục vụ các ngoại vi 8 bit((các thiết bị chỉ có các thanh ghi 8 bit) Trong máy PC AT (16 bit) có thêm một chip DMAC nữa gọi là chủ (master) được nối với vi xử lý Các chân HRQ và HLDA của chip DMAC tớ được nối với kênh 0 của chip chủ để để nhằm cho các kênh từ 0-3 có mức ưu tiên hơn 3 kênh của chip chủ Các kênh 0-3 của chủ được quy ức là kênh