1. Trang chủ
  2. » Tất cả

Nhom12-DeTai2

40 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 1,65 MB

Nội dung

Trường Đại Học Công Nghiệp Hà Nội Khoa Công Nghệ Thông Tin Bài tập lớn mơn Kiến trúc máy tính -Lớp: khoa học máy tính -Nhóm thực hiện: Nhóm Bài tập lớn mơn Kiến trúc máy tính "Đề Tài Nghiên cứu tìm hiểu vi mạch điều khiển truy nhập trực tiếp nhớ DMAC 8237 (Direct Memory Access Controller)." -Lớp: khoa học máy tính -Nhóm thực hiện: Nhóm -Th ành vi ên nh óm: + Nguyễn Trọng Duy + Trần Xuân Điền + Đỗ Mạnh Hiển "Đề Tài Nghiên cứu tìm hiểu vi mạch điều khiển truy nhập trực tiếp nhớ DMAC 8237 (Direct Memory Access Controller)." DMAC 8237 chương trình quản lý nhớ Giống IRQ, DMA (Direct Memory Access) thành phần bí ẩn mà dường tất gặp có số người giải thích cách xác Trong máy PC nay, ngắt IRQ (Interrupt ReQuest) quan tâm đến nhiều, có khía cạnh khác quan trọng hoạt động máy lại khơng ý đến, DMA hay Direct Memory Access (truy nhập nhớ trực tiếp) Giống IRQ, DMA thành phần bí ẩn mà dường tất gặp có số người giải thích cáchchính xác Khơng hồn tồn lý thuyết bạn tìm kiếm hiểu biết DMA Để lắp thêm card âm thiết bị tiếp hợp (gọi tắt thiết bị) vào máy tính, bạn u cầu chọn mơtkênh DMA Làm bạn biết cần phải chọn kênh hậu bạn chọn sai kênh? Để trả lời câu hỏi đó, tìm hiểu DMA gì, làm việc ngày sử dụng máy PC Chúng ta thảo luận tác động qua lại phận điều khiển DMA chương trình quản lý nhớ 386 khám phá ý nghĩa thực tham số D = cungcấp trình quản lý EMM386.EXE DOS DMA ? DMA kỹ thuật chuyển liệu nhanh từ card thiết bị tới nhớ, từ nhớ card thiết bị, vài trường hợp từ vị trí nhớ tới vị trí khác Việc chuyển theo DMA quan trọng khơng u cầu đến thực thi CPU Chuyển theo DMA thực cách lập trình chip có tên điều khiển DMA (gọi ngắn gọn DMAC), chip nằm trênbo mạch hệ thống máy PC Việc lập trình thường hồn thành chương trình chạy máy tính bạn (ví dụ chương trình lưu đĩa cứng) thủ tục lưu ROM, card thiết bị tiếp hợp (ví dụ ROM card điều khiển đĩa mềm) Mỗi lần điều khiển khởi động trình chuyển liệu bắt đầu, CPU tự làm việc khác khiDMAC tiếp tục thực chuyển liệu, có hai vi xử lý đồng thời làm việc phục vụ bạn: thực mã (code), chuyển liệu Việc chuyển theo DMAC quan trọng cịn lý khác, chuyển liệu trực tiếp từ nguồn liệu đến nơi nhận mà không cần thông qua phận lưu trữ trung gian Quá trình đưamột byte liệu từ thiết bị tới vị trí nhớ thơng qua CPU q trình hai bước Đầu tiên CPU đọc byte từ thiết bị lưu trong số ghi Tiếp theo đọc byte từ ghi tới địa cần chuyển đến nhớ DMAC giảm q trình xuống cịn bước, vận dụng tín hiệu điều khiển đường truyền, byte đọc ghi trongmột hành động Một cách tốt để hiểu khác minh họa trình chơi bóng ném CPU người chơi ném bóng với hai người khác gọi A B Để chuyển bóng từ A tớiB, CPU phải bắt bóng A ném tung cho B DMA, theo cách khác, nói A tung trực tiếp bóng cho B Trong lúc ấy, CPU làm cơng việc khác khởi động cầu thủ Chuyển liệu từ nhớ đến nhớ theo DMA không sử dụng tốc độ CPU vượt DMAC nhiều, chuyển liệu từ nhớ đến thiết bị từ thiết bị đến bộnhớ kỳ tích đáng kể Để đưa liệu từ thiết bị vào nhớ, DMAC kích hoạt đường truyền gây nên lệnh đọc từ thiết bị (một hoạt động đọc cổng I/O) đồng thời tạo lệnh ghi vào nhớ Việc kích hoạt đọc từ cổng I/O làm cho thiết bị đặt đơn vị - thông thường byte Word - lên đường truyền liệu máy PC Và tuyến đọc nhớ hoạt động đồng thời dữliệu đường truyền vào nhớ Với lần ghi, DMAC dùng đường địa để định địa nhớ nơi liệu tới Tương tự trình chuyển theo DMA từ nhớ đến thiết bị Với đơn vị liệu chuyển, DMAC lệnh đọc nhớ ghi cổng I/O Địa nhớ đặttrên đường địa Giống trình trên, liệu chuyển trực tiếp từ nơi phát đến nơi nhận cách sử dụng đường liệu DMAC sử dụng phần lớn máy PC chip có ký hiệu 8237A tương đương Các dòng máy Micro Channel EISA sửa đổi kỹ thuật DMA tạo chip riêng có chứcnăng hẳn 8237A, có chương trình điều khiển thiết bị tận dụng ưu điểm mở rộng Dịng máy IBM-XT sử dụng chip 8237A lập trình cung cấp kênh DMA riêng rẽ, đánh số từ đến Dòng máy IBM-AT (chiếm phần lớn thị trường máy PC nay) sử dụng chip 8237A cung cấp kênh DMA độc lập đánh số từ đến Chỉ có số kênh DMA sử dụngđược kênh (kênh 4) sử dụng để liên kết hai điều khiển với cho chúng làm việc đơn vị thống Kênh đến chuyển bit liệu lúc lưu 64KB lần hoạt động, kênh đến chuyển 16 bit chuyển 128KB lần hoạt động Giống điều khiển ngắt, nơi nhận yêu cầu ngắt từ thiết bị thông qua đường IRQ, DMAC nhận yêu cầu DMA thông qua đường DMA request (DREQ) Chip 8237A cung cấp vài phương thức phương pháp hành động khác nhau, nhiên trình chuyển điển hình từ thiết bị tới nhớ diễn sau: DMAC lập trình với địa nhớ ghi liệu số byte chuyển Khi thiết bị sẵn sàng bắt đầu q trình chuyển, kích hoạt đường DREQ để kết nối với DMA Sau CPU cho phép điều khiển đường truyền, DMAC đưa địa nhớ tạo tín hiệu để byte (hoặc từ) liệu đọc từ thiết bị ghi vào vùng định nhớ Sau đónó cập nhật địa nhớ cho byte lặp lại trình toàn liệu chuyển hoàn tất Dựa cách điều khiển lập trình, byte chuyển u cầu tín hiệu DREQ riêng rẽ (phương thức chuyển đơn) tín hiệu khởi động tất trình truyền (phương thức chuyển khối theo yêu cầu) Có thiết bị DMA có tất máy PC điều khiển đĩa mềm Dữ liệu đĩa mềm đọc theo đơn vị 512 byte (1 sector) chuyển DMA sử dụng kênh DMA số Để đọc sector liệu, ngắt BIOS 13H lập trình DMA theo phương thức chuyển đơn cung cấp lệnh đọc cho điều khiển đĩa mềm Khi thực hiện, điều khiển đĩa đọc byte liệu từ đĩa khởiđộng trình truyền cách kích hoạt DREQ Sau đọc byte khác theo cách để chuyển byte vào địa vật lý nhớ Tới DMAC chuyển xong 512 byte, điều khiển đĩa tạo ngắt cứng để báo cho CPU biết sử dụng sector Các kênh DMA Khi bạn gắn card thiết bị có sử dụng DMA máy PC, bạn thường yêu cầu chọn kênh DMA Đặt DIP-switch định lại jumper với kênh DMA thiết lập giao tiếp vậtlý thiết bị DMAC thông qua DREQ Thông thường, phần mềm sử dụng thiết bị phải cung cấp số hiệu kênh DMA ấn định để lập trình DMAC cho việc chuyển theo DMA Mặc dù theo lý thuyết nhiều thiết bị chia sẻ đường DREQ chúng không đồng thời sử dụng, - luật - tốt giới hạn thiết bị sử dụng kênh Như bạn chắn khônggặp xung đột DMA Như biết, không sử dụng kênh DMA chúng dành cho điều khiển đĩa mềm làm đường nối chip DMA Kênh khơng sử dụng máy PCtrước sử dụng để phục hồi nhớ Vào lúc khởi động, BIOS máy PC nguyên thủy lập trình cho đồng hồ để vài mili giây lại đưa yêu cầu đọc DMA giả - nhằm tạo việc đọc nhớ khơng thiết có thiết bị nhận liệu - tránh thông tin DRAM Tất máy PC phục hồi DRAM mà không cần giúp đỡ hệ thống DMA Tuy bạn vẫnkhông thể sử dụng kênh DMA số có số máy khơng thiết lập kênh Vậy bạn xử trí yêu cầu chọn kênh DMA? Câu trả lời chọn kênh DMA lại Bảng liệt kê danh sách kênh DMA phân bổ Trên hầu hết máy PC, kênh 1, 3, 5, để dành cho việc ghép nối với thiết bị Dòng máy PS/2 sử dụng kênh để chuyểndữ liệu cho đĩa cứng, cịn dịng XT dùng kênh Vì lý này, sử dụng dịng máy trên, bạn cần tránh sử dụng kênh Khi bạn chưa ấn định kênh DMA cho thiết bị bạn sử dụng bạn muốn Nhưng bạn nên theo dõi bảng phân bổ kênh DMA để không xảy tượng hai thiết bị chia sẻ kênh DMA Tôi viết sổ để bàn danhsách IRQ DMA sử dụng Khi cắm thêm card thiết bị tìm kiếm DMA chưa sử dụng, tháo card thiết bị cắm máy xem jumper chúng Có vài trình tiện ích phát kênh DMA sử dụng chúng không thực đáng tin cậy Nếu bạn khơng có thơng tin kênh DMA phân bổ bạn cũngkhơng muốn lục tìm đống tài liệu có loạt chương trình chẩn đốn phân tích máy thơng báo cho bạn biết danh sách kênh DMA sử dụng Các chương trình chưa thực hồn hảo nên kết đưa khơng xác Các vấn đề quản lý nhớ Các trình quản lý nhớ theo 86 ảo EMM 386.EXE., QEMM-386 386MAX gây vấn đề đặc biệt DMAC Địa nhớ lập trình vào DMAC phục vụ cho việcchuyển theo DMA địa vật lý Nhưng trình quản lý thường xuyên định lại đồ nhớ làm cho địa nhớ có trước tương ứng với địa nhớ vật lý khác (thông thường nơi không dùng đến nhớ mở rộng) Khi chương trình truy nhập đến phần địa định lại, CPU chuyển yêu cầu đến địa vật lý phù hợp Tuy nhiên, DMAC cố gắng truynhập đến địa trên, việc truy nhập thất bại khơng có cách để DMAC biết đồ nhớ định lại Điều kết luận chương trình làm việc theo DMA có liệu nạp vùng nhớ cao (UMB) không làm việc không chịu kiểm sốt chương trình quản lý nhớ MộtDMAC lập trình đưa liệu cổng I/O chế độ 86 ảo trình quản lý nhớ chặn tát liệu đưa cổng I/O Như dự đoán yêu cầu DMA tới chí biết địa nhớ Nếu địa sửa đổi, trình quản lý nhớ lập trình lại DMAC theo địa nhớ vật lý phù hợp Sau cho phép q trình chuyểnDMA thực thường lệ Một tình tai hại tiềm tàng xảy địa nhớ vật lý sửa đổi gửi cho trình chuyển theo DMA lại nằm vùng quản lý DMAC Phần lớn DMAC bị giới hạn trong16MB nhớ, số khác đánh địa lớn 8MB Khi địa nguồn đích nằm ngồi vùng DMAC có khả đánh địa chỉ, trình điều khiển nhớ đưa mẹo sau: Nó định lại q trình chuyển DMA vùng đệm - vùng nằm vùng truy nhập bới DMA - cho phép trình chuyển thực Nếu vùng đệm đủ lớn để chứa liệu sau trìnhchuyển kết thúc, trình quản lý nhớ chuyển liệu vùng đêm tới địa nhớ thích hợp Sự việc làm giảm hiệu q trình DMA bù lại làm cho hệ thống thực Một vấn đề thực xảy liệu trình chuyển DMA lớn vùng đệm Bạn nhận thơng báo lỗi nhắc nhở tăng kích thước vùng đệm DMA trình quản lý nhớ, việc máy bị treo cứng Đó sản phẩm trình quản lý nhớ cố gắng ngăn chặn việc thất liệu Theo ngầm định, EMM386.EXE sử dụng vùng đệm DMA có kíchthước 32KB Kích thước vùng đệm đặt khoảng từ 16KB tới 256KB cách sử dụng tham số D=; kích thước ngầm định thường phù hợp hàng loạt trường hợp có khả chứa hết liệu DMAC Thậm chí trường hợp phức tạp khác nảy sinh DMAC không nằm bo mạch hệ thống mà nằm thiết bị, nơi mà trình quản lý nhớ khơng thể điều khiển trình DMAC đưa liệu cổng I/O Điều xảy với điều khiển đĩa cứng huy đường truyền (BMC) Bộ điều khiển gây nhiều điều phiền tối người sử dụng khởi động SmartDrive DOS 5.0 vànạp lên vùng nhớ cao Giải pháp Microsoft đưa năm 1990 mẫu chi tiết kỹ thuật thiết bị phục vụ ảo (VDS) VDS tập phục vụ cho phép trình quản lý nhớ cung cấp địa nhớ hệ thống cho BMC trước đọc ghi Tất nhiên, điều khiển chứa DMAC phải nhận biết VDS, dường hầu hết điều khiển có khả Đó tất nhớ hệ thống cho BMC trước đọc ghi Tất nhiên, điều khiển chứa DMAC phải nhận biết VDS, dường hầu hết điều khiển có khả Đó tất cảnhững điều phức tạp thú vị Điều kết luận ngày việc sử dụng thiết bị DMA với trình quản lý nhớ mode 86 ảo thực an toàn Đọc thêm DMA Nếu bạn muốn học thêm DMA đặc biệt tìm hiểu cách lập trình chip DMA, cho phép giới thiệu với bạn sách sau : Cuốn thứ Hans-Peter Messmer với nhan đề The Indispensable PC Hardware Book (1994, Addition - Wesley) Đây thực kiệt tác vô hình chung thay nửa tá sáchhướng dẫn sử dụng phần cứng tơi thường dùng Nó khơng sâu vào chi tiết mô tả thành phần máy PC làm việc sao, bao gồm chip nằm bo mạch hệ thống Và sách dịch từ tiếng Đức, nội dung giữ nguyên Cuốn sách thứ hai Frank Van Gilluwe có nhan đề The Undocumented PC (1994, Addition - Wesley) Mặc dù không sách Messmer, sách kho tàng thơng tin khó kiếm máy PC DMA vấn đề liên quanđến ổ CD-R CD R/W Báo e-CHÍPNhiều ổ đĩa CD-ROM CD R/W sản xuất năm gần có hổ trợ chế độ DMA (Direct Memory Access truy xuất ký ức trực tiếp) Ưu điểm việc sử dụng DMA với CD-ROM ổ đĩa cứng IDE giảm bớt tải cho CPU xuất/nhập liệu từ thiết bị này, nhờ CPU “rảnh tay” xử lý tác vụ khác nên hệ thống nói chung chạy nhanh so vớikhi không hổ trợ DMA Thiết lập chế độ hổ trợ DMA cho ổ đĩa CD-ROM hay CD R/WChọn Start/Settings/Control Panel/System/Device Manager, bấm ký hiệu dấu "+" cạnh mục CDROM, bấm kép ổ CD mà Bạn muốn kiểm tra hay muốn thiết lập chế độ DMA chọn thẻ chọn Settings (xem hình) Trên thẻ chọn có ô đánh dấu (check box) DMA, hộp chưa đánh dấu, bạn đặt dấu vào Nếu khơng có đánh dấu DMA (hoặc bị làm mờxám đi), nghĩa bạn chưa có chưa cài đặt trình điều khiển thiết bị (device driver) hổ trợ giao diện Bus Master chipset bo mạch chủ (mainboard) bạn nên hệ thống bạn hổ trợ DMA cho thiết bị IDE, ổ CD Bạn không hổ trợ chế độ DMA.Sau đánh dấu vào ô DMA, bấm OK, khởi động lại máy tính Khi Windows khởi động xong, quay trở lại khung đối thoại Properties (xem hình) kiểm tra xem thiết lập trước có cịn lưu lại hay khơng Nếu có, ổ CD hổ trợ DMA Nếu sau thiết lập, bạn thấy xuất số rắc rối bạn nên vơ hiệu hóa (bằng cách tắt đánh dấu DMA) đặc tính Trong trường hợp thay đổi làm bạnkhông khởi động Windows thường lệ (ở chế độ Normal) Bạn chạy Safe Mode để vơ hiệu hóa DMA Lưu ý:- Nếu ổ CD Bạn không hổ trợ DMA mà Bạn cố “chịu đấm ăn xôi” thiết lập chế độ DMA ổ CD Bạn gặp nhiều vấn đề rắc rối sau Đối với người sử dụng “nghiệp dư” tốt hết đừng cố thiết lập chế độ ổ CD trừ Bạn đảm bảo chắn 100% ổ CD Bạn có hổ trợ DMA- Theo khuyến cáo Microsoft, bạn không cần cài đặt trình điều khiển thiết bị (driver) Bus Master bạn có bo mạch chủ sử dụng chipset Intel, chúng cài sẳn hệ thống Windows 98 (Tuy nhiên, thực tế có nhiều Chipset Intel mà Microsoft chưa kịp hổ trợ - Chipset 850, 845 bo mạch chủ chạy CPU Pentium IV Intel - bạn phải cài đặt trìnhđiều khiển

Ngày đăng: 21/07/2016, 11:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w