-Chân đặc biệt: Chân Vcc là chân cấp nguồn bổ sung.- RESET: Xóa các thanh ghi tạm, thanh ghi trạng thái, thanh ghi lệnh, thanh ghi yêu cầu - : Tín hiệu chọn mạch, thông thường nối với đầ
Trang 1
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
Báo cáo thực nghiệm môn học: KTMT&HĐH
Đề tài : Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 (Direct Memory Access Controller)
Giáo viên hướng dẫn: Th.s Nguyễn Tuấn Tú Nhóm thực hiện: Nhóm 4
Lớp: IT6067.8 K17
Trang 2ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-BÀI TẬP LỚN
Báo cáo thực nghiệm môn học: KTMT&HĐH
ĐỀ TÀI: Nghiên cứu tìm hiểu về vi mạch điều khiển truy
nhập bô nhớ trực tiếp DMAC 8237
Giảng viên: Ths Nguyễn Tuấn Tú
Sinh Viên thực hiện:
Nguyễn Văn Phương-2022602307 Đinh Văn Minh Quân -2022601048
Nguyễn Sỹ Hoàng Minh -2022606444
Vũ Minh Thảo - 2022601891
Lớp: IT6067.8 K17
Hà Nội, 2023
Trang 3MỤC LỤC
Mở đầu 5
Chương I : Bộ điều khiển DMA 8237 6
1.Sơ đồ chân và chức năng của các chân 6
2.Sơ đồ khối và chức năng của các khối 7
3.Các thanh ghi 9
3.1.Khái niệm thanh ghi 9
3.2.Các loại thanh ghi 10
Chương II: Ghép nối với 8237A-5 trong hệ vi xử ý 8088 14
1.Các trạng thái hoạt động 15
2.Các chế độ 16
3 Các chế độ ưu tiên của yêu cầu DMAC 16
4.Khởi phát và đảm bảo chương trình phục vụ 16
5.Kết thúc trao đổi DMA 17
6.Kiểm tra sự kết thúc ở kênh mong muốn 17
7.Đặc điểm về hoạt động của 8237 17
Chương III : Chuyển nhượng BUS giũa CPU và DMAC 8237 18
Trang 4Danh mục Hình Ảnh
Lời nói đầu
Chương 1 : Cấu trúc vi mạch DMAC 8237
1.1 Sơ đồ chân và chức năng các chân tín hiệu
Hình 1.1: vi mạch 8237
2 Sơ đồ khối và chức năng các khối
Hình 1.2 : Sơ đồ khối
3 Các thanh ghi
Hình 1.3.1 : Thanh ghi trạng thái (Status Register)
Hình 1.3.2 : Thanh ghi lệnh (Command register)
Hình 1.3.4 : Thanh ghi mặt nạ (Mask Register)
Hình 1.3.3 : Thanh ghi yêu cầu ngắt (Request Register) Chương 2: Nguyên lý hoạt động của vi mạch DMAC 8237 2.1 Sơ đồ ghếp nối của DMAC 8237 trong máy tính
Hình 2.1:Sơ đồ ghép nối của DMAC 8237
2.2 Các chế độ hoạt động của DMAC 8237
2.3 Nguyên lý chuyển nhượng BUS giữa CPU và DMAC 8237 Kết luận
Tài liệu tham khảo
Trang 5Lời nói đầu
Truy nhập bộ nhớ trực tiếp (DMA) là một kỹ thuật cho phép các thiết bị ngoại vi trao đổi dữ liệu với bộ nhớ mà không cần sự can thiệp của bộ xử lý Điều này giúp tăng hiệu năng của hệ thống máy tính, giảm tải cho bộ xử lý và giảm thời gian chờ đợi của các thiết bị ngoại vi Để thực hiện DMA, cần có một vi mạch điều khiển truy nhập bộ nhớ trực tiếp (DMAC), có nhiệm vụ điều phối quá trình truyền dữ liệu giữa các thiết bị ngoại vi và bộ nhớ Trong bài báo cáo này, chúng em sẽ nghiên cứu về một trong những vi mạch DMAC tiêu biểu, đó là vi mạch 8237
Vi mạch DMAC 8237 là một vi mạch điều khiển truy nhập trực tiếp bộ nhớ (DMA), cho phép các thiết bị ngoại vi trao đổi dữ liệu với bộ nhớ máy tính mà không cần sự can thiệp của CPU1 Vi mạch này có các chức năng chính sau: -Đ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
-Đ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 khiển DMA
-Điều khiển các thanh ghi địa chỉ và đếm cho từng kênh DMA
-Điều khiển các tín hiệu yêu cầu DMA và ưu tiên cho các kênh DMA Chúng em
sẽ giới thiệu về sơ đồ chân, chức năng các chân tín hiệu, sơ đồ khối, chức năng các khối, các thanh ghi, sơ đồ ghép nối trong máy tính để thấy được các chế độ hoạt động của DMAC 8237 và nguyên lý chuyển nhượng BUS giữa CPU và DMAC 8237
Nhóm sinh viên thực hiện!
Trang 6Chương I : Bộ điều khiển DMA -8237 1.Sơ đồ chân và các chức năng của các chân
Hình 1.1: vi mạch 8237
Các chân tín hiệu của DMAC 8237:
Chân nguồn: Chân Vcc cấp nguồn (+5V) cho vi mạch, chân GND (VSS) nối đất -Chân địa chỉ: Chân A0-A3 là các chân địa chỉ thấp, được sử dụng để lựa chọn các thanh ghi bên trong vi mạch Chân A4-A7 là các chân địa chỉ cao, được sử dụng để truyền địa chỉ bộ nhớ ra ngoài
-Chân dữ liệu: Chân DB0-DB7 là các chân dữ liệu, chúng được sử dụng để truyền
dữ liệu giữa vi mạch và CPU hoặc các thiết bị ngoại vi
-Chân điều khiển: Chân IOR là chân yêu cầu đọc vào/ra, chân IOW là chân yêu cầu ghi vào/ra, chân CS là chân chọn chip, chân MEMR là chân yêu cầu đọc bộ nhớ, chân MEMW là chân yêu cầu ghi bộ nhớ, chân HRQ là chân yêu cầu BUS, chân HLDA là chân chấp nhận BUS, chân AEN là chân cho phép địa chỉ, chân ADSTB là chân xung địa chỉ, chân RESET là chân khởi động lại, chân CLK là chân xung đồng hồ, chân READY là chân sẵn sàng, chân EOP là chân kết thúc xử lý
-Chân yêu cầu: Chân DRQ0-DRQ3 là các chân yêu cầu DMA, được sử dụng để nhận các tín hiệu yêu cầu DMA từ các thiết bị ngoại vi
-Chân trạng thái: Chân DACK0-DACK3 là chân xác nhận DMA, chân DREQ là chân yêu cầu DMA bổ sung, chân HRQ là chân yêu cầu BUS cao cấp
Trang 7-Chân đặc biệt: Chân Vcc là chân cấp nguồn bổ sung.
- RESET: Xóa các thanh ghi tạm, thanh ghi trạng thái, thanh ghi lệnh, thanh ghi yêu cầu
- : Tín hiệu chọn mạch, thông thường nối với đầu ra của một bộ giải mã
- READY: tạo trạng thái chờ cho 8237A – 5 đối với bộ nhớ hoặc I/O có tốc
độ thấp
- CLK: Được nối với tín hiệu đồng hồ hệ thống
- AEN: Cho phép chốt địa chỉ nới với DB0 – DB7 đồng thời không cho phép các bộ đệm trong hệ thống được nối với VXL
- ADSTB (address strobe): hoạt động như ALE nhưng chỉ sử dụng bởi bộ điều khiển DMA chốt địa chỉ A8 – A15 trong suốt quá trình truyền DMA
- : Đầu ra điều khiển bộ nhớ đọc, ghi dữ liệu trong chu kỳ DMA tương ứng
- : điều khiển đọc và ghi I/O
- DREQ0 – DREQ3 (DMA request): Đầu vào yêu cầu DMA cho mỗi kênh của 8237, cực tính của các tín hiệu vào này là có thể lập trình được
- HLDA (hold Acknowledge): tín hiệu thông báo CPU đã thả nổi BUS đia chỉ, dữ liệu, điều khiển của nó
- HRQ (hold request): nối với HOLD của VXL tạo yêu cầu DMA
- DACK0 – DACK3: (DMA chanel acknowledge ) Ðầu ra chấp nhận DMA ( có thể lập trình được ) Thường dùng để chọn thiết bị cần điều khiển DMA
- DB0 – DB7 (data bus ): Chân nối với bus dữ liệu của bộ VXL 8088 được
sử dụng trong quá trình lập trình cho 8237
- A0 – A3: Chọn thanh ghi nội cần lập trình và một phần địa chỉ truyền DMA trong quá trình DMA
- A4 – A7: Cung cấp 1 phần địa chỉ còn lại của DMA
Trang 82: Sơ đồ khối và chức năng các khối
Hình 1.2 : Sơ đồ khối
Vi mạch điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 gồm có 3 khối chính :
-Khối điều khiển và phân chia thời gian: có nhiệm vụ điều khiển các hoạt động bên trong và bên ngoài của vi mạch, tạo ra các tín hiệu điều khiển cho CPU và các thiết
bị ngoại vi, phân chia thời gian cho các kênh DMA, và xử lý các yêu cầu DMA -Khối điều khiển mã lệnh: có nhiệm vụ giải mã các mã lệnh do CPU đưa tới trước khi phục vụ DMA, và lập trình các thanh ghi bên trong vi mạch theo các chế độ hoạt động mong muốn
-Khối thanh ghi: bao gồm các thanh ghi dùng để lưu trữ các thông tin cần thiết cho quá trình DMA, như địa chỉ bộ nhớ, số lượng dữ liệu, chế độ hoạt động, trạng thái, v.v
Trang 93 Các thanh ghi
3.1 Thanh ghi là gì?
Trong kiến trúc máy tính, một thanh ghi (registers) là một bộ nhớ dung
lượng nhỏ và rất nhanh được sử dụng để tăng tốc độ xử lý của các chương trình máy tính bằng cách cung cấp các truy cập trực tiếp đến các giá trị
cần dùng Hầu hết, nhưng không phải tất cả, các máy tính hiện đại hoạt
động theo nguyên lý chuyển dữ liệu từ bộ nhớ chính vào các thanh ghi,
tính toán trên chúng, sau đó chuyển kết quả vào bộ nhớ chính
Các thanh ghi xử lý là phần đầu tiên của phân cấp bộ nhớ, và cung cấp
nhanh nhất vào hệ thống để xử lý dữ liệu Thuật ngữ này thường được
dùng để nói đến một tập các thanh ghi có thể được chỉ trực tiếp cho việc
nhập hay xuất các câu lệnh, xem thêm ở tập lệnh Chúng được gọi là ”
kiến trúc thanh ghi”
Ví dụ: Đưa các biến số thường dùng vào thanh ghi là một hoạt động then chốt làm
tăng hiệu ứng của chương trình Việc này có tên là register allocation và thường được thực hiện bởi một trình biên dịch trong giai đoạn phát sinh mã hoá
3.2 Các loại thanh ghi:
Thanh ghi địa chỉ hiện thời (CAR ): Lưu 16 bít địa chỉ bộ nhớ trong suốt quá trình truyền DMA Mỗi kênh đều có một thanh ghi này và CAR tăng hoặc giảm tuỳ thuộc vào cách lập trình
Thanh ghi đếm từ hiện thời (CWCR ): điều khiển số byte được truyền trong quá trình DMA Số ghi trong thanh ghi này nhỏ hơn số byte đã được truyền 1 đơn vị
Trang 10Thanh ghi địa chỉ cơ sở và từ cơ sở (BWCR): sử dụng khi chọn chế độ tự động kích hoạt cho một kênh, trong quá trình này thanh ghi BWCR được dùng để gọi lại các thanh ghi CAR và CWCR sau khi DMA kết thúc
- Thanh ghi lệnh: lập trình cho hoạt động của 8237
Hình 1.3.1 : Thanh ghi lệnh (Command register)
-Thanh ghi chế độ : thiết lập chế độ họa động cho mỗi kênh
Hình 1.3.2 :Thanh ghi chế độ (Mode register)
-Thanh ghi yêu cầu : cùng yêu cần truyền DMA bằng phần mềm
Trang 11
Hình 1.3.3 : Thanh ghi yêu cầu DMA(request register)
-Thanh ghi che set/ reset : xóa , thiết lập việc cấm các kênh
Hình 1.3.4: Mask register set / reset mode
-Thanh ghi cấm : xóa hoặc thiết lập việc cấm của tất cả các kênh
Hình 1.3.5: Thanh ghi cấm (Mask register)
Trang 12-Thanh ghi trạng thái SR :Xác định trạng thái của các kênh DMA
Hình 1.3.6 : Thanh ghi trạng thái (Status register)
Định dạng cho các thanh ghi
Trang 13
Các lệnh của chip DMA-8237A
Tín hiệu
A3 A2 A1 A0 IOR
IOW
Lệnh
1 0 0 0 0 1 Đọc thanh ghi trạng thái
1 0 0 0 1 1 Nạp thanh ghi lệnh
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
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 0 1 0 Không hợp lệ
1 0 1 1 0 1 Nạp thanh ghi chế độ
1 0 1 1 1 0 Không hợp lệ
1 1 0 0 0 1 Xóa mạch lật xong
1 1 0 1 0 1 Đọc thanh ghi tạm thời
Trang 141 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 8bit (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 DMA từ 4 – 7 của máy AT Bốn kênh của chip tớ phục vụ cho ngoại vi 8 bit, trong khi đó 3 kênh tùe 5 đến 7 không sử dụng được cấu hình cho các thiết bị
16 bit
Chương II : Ghép nối tiếp với 8237A -5 trong hệ vi sử lý 8088
Vi mạch 8237 được sử dụng trong máy tính IBM PC để thực hiện các quá trình DMA trao đảo dữ liệu trực tiếp giữa thiết bị ngoài và máy tính
Tín hiệu AEN và ADSTB ra của 8237A – 5 điều khiển đầu ra của chốt 82C82 Trong suốt quá trình hoạt động bình thường của 8088 (AEN = 0) các vi mạch chốt địa chỉ cung cấp các bit địa chỉ truyền DMA Tín hiệu điều khiển MEMR,
Trang 15MEMW, IOR, IOW cũng được tạo bởi bộ điều khiển DMA Gải thiết địa chỉ đầu cho DMAC là 0070h
Hình 2 : Sơ đồ ghép nối 8237 với 8088
1 : Các trạng thái hoạt động
Vi mạch 8237A có các trạng thái sau :
- Trạng thái nghỉ SI: trạng thái trở kháng cao, không được chọn mạch ( = 1)
- Trạng thái chờ SO: trạng thái đầu của quá trình trao đổi DMA 8257 nhận tín hiệu DREQ, xử lý và gởi yêu cầu Hold cho VXL nhưng chưa nhận được tín hiệu xác nhận theo HLDA Khi nhận được xác nhận, DMAC bắt đầu quá trình trao đổi dữ liệu
- Trạng thái phát địa chỉ nguồn số liệu S1:
DMAC phát địa chỉ nguồn số liệu (cửa I/O hoặc Memory)
- Trạng thái phát lệnh đọc cho nguồn số liệu của nguồn số liệu S2:
DMAC phát lệnh đọc số liệu của nguồn số liệu
Trang 16- Trạng thái chờ SW:
DMAC chờ trong thời gian SW để số liệu được đoc xong ở nguồn phát số liệu, ghi xong vào thanh ghi đệm, chờ Ready của DMAC
- Trạng thái phát địa chỉ của đích sô liệu S3:
DMAC phát địa chỉ phát lệnh ghi số liệu (Memory hoặc I/O)
- Trạng thái phát kệnh ghi số liệu vào S4:
DMAC phát lệnh ghi số liệu từ thanh ghi đệm vào cửa vào – ra
2 Các chế độ
Tùy nội dung thanh ghi chế độ lúc khởi phát, DMAC có các chế độ sau:
- Chế độ chuyển từng từ đơn (Single Transfer Mode)
- Chế độ chuyển nhiều từ (Block Transfer Mode)
- Chế độ chuyển theo nhu cầu (Demand Transfer Mode) với số lượng từ tùy theo người sử dụng điều khiển
- Chế độ ghép tầng (Cascade Mode) là chế độ chuyển liên tiếp các từ, điều khiển bởi các DMAC mắc nối tầng
3 :Các chế độ ưu tiên của yêu cầu DMAC
Cũng giống như xử lý ngắt, DMAC có hai chế độ ưu tiên:
- Chế độ ưu tiên cố định: kênh 0 có mức ưu tiên cao nhất, kênh 3 có mức ưu tiên thấp nhất
- Chế độ ưu tien vòng: kênh vừa được phục vụ sẽ có mức ưu tiên thấp nhất Khi mới lập chế độ, kênh 0 có mức ưu tiên cao nhất
4: Khởi phất và đẩm bảo chương trình được phục vụ :
Trước khi đưa DMAC vào hoạt động, chương trình phải khởi phát nó Quá trình khởi phát gồm 2 giai đoạn:
- Xóa cứng bằng tìn hiệu Reset, làm các thanh ghi về 0
Trang 17- Ghi các lệnh của chương trình khởi phát VXL ghi vào các thanh ghi chức năng như địa chỉ ban đầu, số từ trao đổi, số kênh, che chắn yêu cầu của kênh không cần hoạt động, chế độ trao đổi, chiều tăng hay giảm địa chỉ …Khi ghi dữ liệu vào thanh ghi 16bit, phải ghi lần lượt 2byte theo thứ tự byte thấp trước, byte cao sau
- Sau khi được khởi phát, DMAC sẽ hoàn toàn tự động làm việc Kết thúc chương trình khởi phát này, luôn phải có lệnh ghi bit D4 = 1 vào thanh ghi
chế độ để cho phép tự khởi động
5 Kết thúc trao đổi DMA
Có hai cách kết thúc trao đổi dữ liệu:
- Kết thúc tự động: Kết thúc khi bộ đếm số tin trao đổi đếm về 0, hay số đếm kết thức TC (Terminal Count) Với DMAC 8237, việc kết thúc thể hiện ở tín hiệu Hold kết thúc, tức trở về mức mogic 0
- Kết thúc cưỡng bức: đây là tín hiệu từ ngoài vào (do mạch TBNV hoặc do người điều hành can thiệp bằng cách ấn nút lệnh) để kết thúc quá trình trao đổi DMA
6 Kiểm tra sự kết thúc ở kênh mong muốn
Trong khi DMAC hoạt động, thanh ghi trạng thái luôn được cập nhật, tức luôn ghi trạng thái hiện thời của DMAC Khi kết thứ, VXL có thể đọc nội dung này của thanh ghi trạng thái để biết rằng kênh nào của DMA đã đạt đến số đếm kết thúc TC, số lời đã trao đổi là bao nhiêu (trường hợp kết thúc cương bức so từ ngoài vào) và kênh vào đang chờ phục vụ
7 Đặc điểm về hoạt động của 8237
8237 có những đặc điểm chính sau:
- Cho phép hoặc cấm riêng biệt từng kênh DMA trong số 4 kênh
Trang 18- Trao đổi dữ liệu DMA trực tiếp giữa hai vùng bộ nhớ
- Cho phép nối tầng các DMAC để tăng số kênh DMA
- Có thể tạo yêu cầu DMA bằng chương trình
- Với 8237 – 2, tốc độ trao đổi DMA có thể đạt tới 1,6Mbps Do đó ngoài phục vụ trao đổi dữ liệu giữa MVT và màn hình, đĩa, DMA còn được dung trong mạng MVT
Chương III : Chuyển nhượng BUS giữa CPU và DMAC 8237
DMAC được xác lập chế độ làm việc: các thanh ghi lệnh, thanh ghi kiểu làm việc, thanh ghi địa chỉ nền và thanh đếm kích thước khối dữ liệu được nạp, cho phép kênh làm việc
- Thiết bị vào-ra phát tín hiệu DRQ cho DMAC.
- DMAC phát tín hiệu HOLD = 1 cho CPU, đòi CPU đi vào chế độ DMA.
- CPU thực hiện nốt chu kỳ máy.
- CPU phát tín hiệu HLDA cho DMAC và tách ra khỏi hệ thống BUS.Quyền điều
khiển BUS thuộc về DMAC
- DMAC làm chủ các BUS địa chỉ, BUS số liệu và BUS điều khiển DMAC tạo ra
tín hiệu DACK, phát ra địa chỉ bộ nhớ (16 bit), tạo tín hiệu
điều khiển ghi/đọc thiết bị vào/ra, tín hiệu điều khiển ghi/đọc bộ nhớ và một byte
dữ liệu được truyền trực tiếp giữa bộ nhớ và tiết bị vào-ra Địa chỉ ô nhớ tiếp theo được phát ra và quá trình trên lặp lại cho đến khi thực hiện xong quá tình DMA theo kiểu đã được lập trình (TC = 0)