Thiết Kế Bộ Điều Khiển Truy Cập Bộ Nhớ Trực Tiếp (DMA)

Khóa luận tốt nghiệp kỹ thuật máy tính trình bày thiết kế bộ điều khiển truy cập bộ nhớ trực tiếp, ứng dụng trong hệ thống máy tính hiện đại.

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2021

79
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1. Tổng quan tình hình nghiên cứu

1.2. Mục tiêu đề tài

1.2.1. Mục tiêu tổng quát

1.2.2. Mục tiêu chi tiết

1.3. Phương pháp nghiên cứu

1.4. Định nghĩa về bộ truy cập bộ nhớ trực tiếp

1.4.1. Truyền dữ liệu với CPU

1.4.2. Truyền dữ liệu với cơ chế DMA

1.4.3. Cơ cấu hoạt động của DMAC

1.4.4. DMAC kết hợp bộ xử lý CPU

1.4.5. Đề xuất lệnh dma

3. CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

3.1. Thiết kế hệ thống tổng quát

3.2. Thiết kế DMAC

3.2.1. Khối Address decoder

3.2.2. Khối Yêu cầu generator

3.2.3. Khối DMA Channel

3.2.3.1. Khối Channel controller
3.2.3.2. Khối Channel setup register
3.2.3.3. Khối Yêu cầu checker
3.2.3.4. Khối Channel execution

3.2.4. Thiết kế khối Datapath

4. CHƯƠNG 4: MÔ PHỎNG VÀ ĐÁNH GIÁ KẾT QUẢ

4.1. Kết quả mô phỏng

4.2. Kiểm tra chức năng điều khiển việc truyền dữ liệu của DMAC

4.3. Kiểm tra hoạt động xử lý interrupt của hệ thống

4.4. Kết quả Post-Implementation

4.5. So sánh với các nghiên cứu đã thực hiện

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

5.1. Kết quả đạt được của đề tài

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

Tóm tắt

I. Tổng quan về Thiết Kế Bộ Điều Khiển Truy Cập Bộ Nhớ Trực Tiếp DMA

Thiết kế bộ điều khiển truy cập bộ nhớ trực tiếp (DMA) là một trong những yếu tố quan trọng trong kiến trúc máy tính hiện đại. DMAC cho phép truyền dữ liệu giữa các thiết bị mà không cần thông qua CPU, giúp tăng tốc độ xử lý và giảm tải cho bộ xử lý. Việc hiểu rõ về DMAC và cách thức hoạt động của nó là cần thiết để phát triển các hệ thống máy tính hiệu quả hơn.

1.1. Định nghĩa và vai trò của Bộ Điều Khiển DMA

Bộ điều khiển DMA (Direct Memory Access Controller) là một thiết bị cho phép truyền dữ liệu trực tiếp giữa bộ nhớ và các thiết bị ngoại vi mà không cần sự can thiệp của CPU. Điều này giúp giảm thiểu thời gian chờ đợi và tăng hiệu suất hệ thống.

1.2. Lịch sử phát triển của công nghệ DMA

Công nghệ DMA đã có từ những năm 1970 và đã trải qua nhiều giai đoạn phát triển. Các phiên bản mới của DMA ngày nay hỗ trợ nhiều kênh truyền và tốc độ cao hơn, đáp ứng nhu cầu ngày càng tăng của các ứng dụng hiện đại.

II. Vấn đề và Thách thức trong Thiết Kế DMAC

Mặc dù DMAC mang lại nhiều lợi ích, nhưng việc thiết kế và triển khai nó cũng gặp phải nhiều thách thức. Các vấn đề như độ trễ trong việc truy cập bus, khả năng tương thích với các thiết bị khác và tối ưu hóa hiệu suất là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Độ trễ trong việc truy cập bus hệ thống

Một trong những thách thức lớn nhất trong thiết kế DMAC là độ trễ khi yêu cầu quyền truy cập bus từ CPU. Điều này có thể làm giảm hiệu suất của hệ thống nếu không được tối ưu hóa đúng cách.

2.2. Khả năng tương thích với các thiết bị ngoại vi

DMAC cần phải tương thích với nhiều loại thiết bị ngoại vi khác nhau. Việc đảm bảo tính tương thích này là rất quan trọng để tránh các lỗi trong quá trình truyền dữ liệu.

III. Phương pháp Thiết Kế Bộ Điều Khiển DMA Hiệu Quả

Để thiết kế một bộ điều khiển DMA hiệu quả, cần áp dụng các phương pháp nghiên cứu và thiết kế hiện đại. Việc sử dụng kiến trúc mở như RISC-V có thể giúp tối ưu hóa quy trình thiết kế và cải thiện hiệu suất.

3.1. Sử dụng kiến trúc RISC V trong thiết kế DMAC

Kiến trúc RISC-V cho phép tùy chỉnh và mở rộng các chức năng của DMAC, giúp tăng cường khả năng xử lý và giảm thiểu độ trễ trong việc truyền dữ liệu.

3.2. Tối ưu hóa quy trình thiết kế với Xilinx Vivado

Sử dụng Xilinx Vivado giúp mô phỏng và kiểm tra chức năng của DMAC một cách hiệu quả, từ đó tối ưu hóa thiết kế và đảm bảo tính chính xác trong quá trình thực hiện.

IV. Ứng dụng Thực Tiễn của Bộ Điều Khiển DMA

Bộ điều khiển DMA có nhiều ứng dụng trong các hệ thống máy tính hiện đại, từ việc truyền dữ liệu giữa các thiết bị ngoại vi đến việc xử lý tín hiệu trong các ứng dụng nhúng. Việc hiểu rõ các ứng dụng này giúp nâng cao khả năng thiết kế và phát triển DMAC.

4.1. Ứng dụng trong hệ thống nhúng

Trong các hệ thống nhúng, DMAC giúp tối ưu hóa việc truyền dữ liệu giữa các cảm biến và bộ nhớ, từ đó cải thiện hiệu suất và giảm thiểu độ trễ.

4.2. Ứng dụng trong truyền thông không dây

DMAC cũng được sử dụng trong các hệ thống truyền thông không dây, nơi cần truyền tải dữ liệu nhanh chóng và hiệu quả giữa các thiết bị mà không làm giảm hiệu suất của CPU.

V. Kết luận và Hướng Phát Triển Tương Lai của DMAC

Bộ điều khiển DMA đóng vai trò quan trọng trong việc tối ưu hóa hiệu suất của các hệ thống máy tính hiện đại. Hướng phát triển tương lai của DMAC sẽ tập trung vào việc cải thiện khả năng tương thích và hiệu suất, đồng thời mở rộng các chức năng để đáp ứng nhu cầu ngày càng cao của công nghệ.

5.1. Xu hướng phát triển công nghệ DMA

Công nghệ DMA sẽ tiếp tục phát triển với các tính năng mới, bao gồm khả năng hỗ trợ nhiều kênh truyền và tốc độ cao hơn, đáp ứng nhu cầu của các ứng dụng hiện đại.

5.2. Tương lai của thiết kế DMAC trong các hệ thống máy tính

Thiết kế DMAC sẽ ngày càng trở nên quan trọng trong các hệ thống máy tính, đặc biệt là trong bối cảnh công nghệ ngày càng phát triển và yêu cầu về hiệu suất ngày càng cao.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế bộ điều khiển truy cập bộ nhớ trực tiếp

Trích đoạn nội dung tài liệu

Chương 1. Tổng quan đề tài. Téng quan tình hình nghiên cứu. _ Tinh hình nghiên cứu ngoài nue.

Tình hình nghiên cứu trong ƯỚC. Mục tiêu đề tài. Mục tiêu tổng quát. Mục tiêu chỉ tiẾt.---c-522222cc2EEEEErEEEEkErErrkrrrrrrrrrrrrrree 4 IS N08) 20 (i00 1.

Co sở lý thuyẾt. Định nghĩa về bộ truy cập bộ nhớ trực tiếp "— —. Cơ cầu hoạt s0i-0ài 88) 001. DMAC kết hợp bộ xử lý CPU.

Dé xuất lệnh dma.-2--2¿-©EV+2+22EE+++EEEEEE+EEEE11E222112122112127112. Thiết kế hệ thống. Thiết kế hệ thống tổng quát. Thiết kế DMAC.

Khối Address decoder. Khối Yêu cầu generatOr. Khối DMA Channel. Khối Channel contrOÏÏer.

s-- se ++Ex++EE++EE++EEvSEktrkerrkerrerrs 28 3. Khối Channel SCtUP TO 11:20 11117. Khối Yêu cầu checker.----¿-s+s+2E+EE+EE+EE+EE+EESEESEEtEEererrezrerree 32 3. Khối Channel exeCutiOn.-¿- s-5cc2t+EE+EEEEESEEtEEEEEEEEEerrerreererrex 33 3.

Thiết kế khối Datapath. Xử lý interrupt của DMAC. Mô phỏng và đánh giá kết QUa. Kết quả mô phỏng.

_ Kiểm tra chức năng điều khiển việc truyền dữ liệu của DMAC. Kiểm tra hoạt động xử lý interrupt của hệ thống. Kết quả Post-Implementation. So sánh với các nghiên cứu đã thực hiỆn.---- ¿5+ 5s+<+x+exve+ssreeses 64 Chương 5.

Kết luận và hướng phát triển đề tài.-------cez+:+e+zc:szer 65 5. _ Kết quả đạt được của dé tài. 65 DANH MỤC HÌNH Hình 2.1: Truyền dữ liệu với CPU .- 22 22+2++£+2EEE£2EEEESEEEEEEEEECEEEEerrrrkerrrrrcee 6 Hình 2.2: Truyền dữ liệu với cơ chế DMA.3: Sơ đồ trang thái hoạt động của khối đọc và khối ghi.4: So đồ tổng quát về việc kết hợp DMAC vào CPU.5: Cấu trúc lệnh dma.----2£©2£©++£+EE++££EE+EEEEEEtEEEEteEEEerrrrkrrrrreerre 11 Hình 3.1: Cau trúc tong quát của hệ thống.----¿-¿©++£+2E++e+EE+z+Erxerrrreesrr 12 Hình 3.2: Cấu trúc tong quát của khối DMAC.3: Cấu trúc chi tiết của khối DMAC.4: Cấu trúc của khối Address đecO(er.5: Cấu trúc của khối Yêu cầu øeneration.------z¿+sz+++++erxeszrrseerr 20 Hình 3.6: Cấu trúc của khối ATbifer.7: Sơ đồ nguyên lý của khối Arbiter.---¿-- 2£ ©++£+2++e+tExee+erxerrrseere 25 Hình 3.8: Cấu trúc của khối DMA Channel.9: Cấu trúc chỉ tiết của khối DMA Channel.10: Cấu trúc của khối Channel eontrolÏer.---- sc- sc s+:x++tx++£x++zx+zzx+zrxs 28 Hình 3.11: Cấu trúc của khối Channel setup register.12: Cấu trúc của khối Yêu cầu checker.--------¿2+z++2+zz++c+sc++e 32 Hình 3.13: Cấu trúc của khối Channel Execution.---s--¿s+cs+zx+zz++zx+zxszresrezss 34 Hình 3.14: Cấu trúc chi tiết của khối Channel exXecutiOn.---s- se sezs++rv+ 36 Hình 3.15: Cấu trúc của khối Interrupt interface.16: Cấu trúc chi tiết khối Datapath.17: Cấu trúc của khối queue.18: Cấu trúc của khối stack.19: Cau trúc của khối ControÏÏer.----¿z2++£+++++2xz+crxzrzrreeerr 47 Hình 4.1: Mô phỏng hoạt động của DMAC (1). vee eeeeeeeseseseneseecsenessaeeseneseneeeeeees 57 Hình 4.2: Mô phỏng hoạt động của DMAC (2).3: Mô phỏng hoạt động của DMAC (3).4: Mô phỏng hoạt động của hệ thống 11.5: Mô phỏng hoạt động của hệ thống 22.

62 DANH MỤC BANG Bảng 3.1: Các tín hiệu input và output của DMACC.2: Các thành phần của DMAC.3: Các tín hiệu input và output của khối Address đecoder.4: Chức năng truyền dữ liệu của từng kênh DMA.5: Vùng địa chỉ nguồn — đích ứng với từng kênh DMA.6: Các tín hiệu input và output của khối Yêu cầu øenerator.7: Cách hoạt động của khối Yêu cầu generatOr.8: Các tín hiệu input va output của khối Arbifer.9: Các tín hiệu input và output của khối DMA Channel.10: Các tín hiệu input va output của khối Channel controller.11: Các tín hiệu input và output của khối Channel setup register.12: Các tín hiệu input và output của khối Yêu cầu checker.13: Cách hoạt động của khối Yêu cầu checker.14: Các tín hiệu input va output của khối Channel execution.15: Các tín hiệu input và output của khối Interrupt interface.16: Giá trị các thanh ghi được minh họa về một chương trình assembly.17: Các tín hiệu input và output của khối queue.18: Các tín hiệu input và output của khối stack.19: Các tín hiệu input và output của khối Controller.1: Thông tin về dir liệu mô phỏng trong Data Memory.2: Mục tiêu kiểm tra mô phỏng DMAÁCC.3: Khởi tạo giá trị cho thanh gh1.4: Các lệnh dma phục vụ kiểm tra hoạt động của DMAC.5: Dữ liệu trong Data Memory sau khi chạy mô phỏng DMAC.6: Mục tiêu kiểm tra mô phỏng hệ thống.----2¿--+2scz2ccssccee 59 Bảng 4.7: Các lệnh dma phục vu kiểm tra hoạt động của hệ thống ¬ 59 Bảng 4.8: Dữ liệu trong Data Memory sau khi chạy mô phỏng hệ thống.9: Kết qua kiểm tra thời gian và tan số hoạt động của thiết ké.10: Kết quả so sánh với các nghiên cứu đã thực hiện.--- 64 DANH MỤC TU VIET TAT Dang viết tắt Dạng đầy đủ AUU Arithmetic Logic Unit CPU Central Processing Unit DMA Direct Memory Access DMAC Direct Memory Access Controller FIFO First In First Out FPGA Field-programmable gate array VO IN/OUT ISE Instruction Set Extension RISC-V Reduced Instructions Set Computer V TOM TAT KHÓA LUẬN Trong thời đại số hiện nay, các thiết kế vi mach không ngừng phát triển nhăm tăng tối đa các ứng dụng cũng như tốc độ của hầu hết các thiết bị điện tử. Các nhà nghiên cứu và doanh nghiệp đã và đang nỗ lực trong vấn đề phát triển các vi kiến trúc. Là sinh viên của trường Dai hoc Công nghệ Thông tin — Đại hoc Quốc gia Thành phố Hỗ Chí Minh, nhóm cũng mong muốn góp phan vào công cuộc phát triển đó. Vì vậy, nhóm mong muốn thực hiện đề tài Thiết kế bộ điều khiển truy cập bộ nhớ trực tiếp với mong muốn ý tưởng có thé được hiện thực hóa và phát triển trong tương lai.

Trong khóa luận tốt nghiệp này, nhóm sẽ trình bày van đề về việc thiết kế một Bộ điều khiến truy cập bộ nhớ trực tiếp DMAC theo kiến trúc tập lệnh RISC-V 32- bit. Nhóm sẽ thực hiện việc kết nối DMAC với bộ xử lý dé thực hiện việc truyền dữ liệu trực tiếp đến Data Memory. Bên cạnh đó, thiết kế DMAC sẽ hoạt động với bốn kênh truyền phục vụ mục đích truyền khác nhau và hoạt động xử lý interrupt. Tổng quan dé tai 1.

Tổng quan tình hình nghiên cứu RISC-V là một kiến trúc tập lệnh mở cho phép sửa đổi và can thiệp đến thiết kế bên trong. Vì vậy, RISC-V rất phổ biến trong thời gian gần đây, được áp dụng trong học tập nghiên cứu và phát triển các sản phẩm máy tính. Đại học Berkeley đã góp phan phát triển kiến trúc này dé giảm các chi phí về phần mềm thông qua việc cho phép sử dụng nhiều hơn các tập lệnh mở được triển khai ở phần cứng. Việc triển khai RISC-V có thé dé dàng mở rộng bằng cách thiết kế thêm hoặc tùy chỉnh các chức năng mong muốn [1].

Với đặc điểm là kiến trúc tập lệnh mở, RISC-V nhanh chóng được các nhà khoa học, các nghiên cứu sinh cũng như các doanh nghiệp mô xẻ với nhiều mục dich khác nhau. Ngoài các tập lệnh sỐ nguyên co bản như RV32I, RV64I và RV128L, RISC-V còn được cải tiến với các tập lệnh mở rộng ISE như RV32M, RV32F, RV32D,. Bên cạnh đó một số nhà nghiên cứu còn tận dụng các đặc điểm của RISC-V dé mở rộng các chức năng không thuần CPU như thuật toán mã hóa dữ liệu AES [3] hay xử lý tín hiệu không dây với năng lượng tiêu thụ cực thấp [4]. Bộ điều khiển truy cập bộ nhớ trực tiếp DMAC là một yêu cầu thiết yếu đối với đa số các nền tảng máy tính hiện đại, phục vụ cho mục đích truyền nhận đữ liệu.

Nhóm đề tài mong muốn tận dụng kiến trúc mở của RISC-V để tạo ra một tập lệnh có thé điều khiển các hoạt động của DMAC, nhăm tăng tốc độ truyền thông tin cấu hình tới DMAC và giảm tài nguyên khi kết nối CPU với DMAC thông qua bus hệ thống. Nhóm đã khảo sát và tìm hiều về tình hình nghiên cứu DMAC trong và ngoài nước nhằm phục vụ cho mục đích đề tài: 1. Tinh hình nghiên cứu ngoài nước Xilinx đã công bố sản phẩm DS579 của họ vào năm 2010 [5]. Đây là một DMAC trung tâm phục vụ cho các thiết bị ngoại vi và các thiết bị nhớ memory trên bus PLB.

Đây là một sản phẩm hoàn chỉnh với khả năng kết nối 32-bit master/slave với độ rộng bus là 32, 64 và 128 bits. Nhưng thiết bị chỉ hoạt động ở một kênh và sử dụng kỹ thuật polling đề kiêm tra trang thái interrupt register, việc này sẽ làm trễ việc bắt tín hiệu hoàn thành từ DMAC, đồng thời CPU phải kiểm tra các thanh ghi này liên tục, điêu này làm giảm hiệu năng của hệ thông. Năm 2018, Yingying Chi và Zhe Zheng đã công bé đề tài A Design of Direct Memory Access Controller for Wireless Communication SoC in Power Grid, phuc vụ cho hệ thống không day với khả nang hỗ trợ bốn kênh DMA theo thứ tự ưu tiên, nhưng chi dùng lại ở mô phỏng chức năng ở dạng séng[6]. Năm 2019, Xilinx công bố LogiCORE IP AXI DMA v7.1, hỗ trợ 16 kênh truyền với tốc độ tối đa là 399.04MB/s, tần số 100MHz [7].

Tình hình nghiên cứu trong nước Năm 2014, hai sinh viên Nguyễn Tan Tai và Lê Ngọc Hải, trường Đại học Công nghệ Thông tin ĐHQG Thành phó Hồ Chí Minh, đã nghiên cứu về IPs core DSP 32-bit Direct Memory Access Controller cho bài báo cáo khóa luận tốt nghiệp theo chuẩn Avalon Bus của Altera [8]. Kết quả nghiên cứu thiết kế thành công hai bộ DMAC một và hai chiều, nhưng chưa kết hợp được hai bộ này thành một. Thiết kế vẫn dựa trên kỹ thuật polling dé kiểm tra interrupt và tan số tối đa đạt được: 100MHz tốc độ truyền 44Mbytes/s dùng cho một kênh DMA duy nhất. Năm 2018, các nhà nghiên cứu Nguyễn Kiêm Hùng, Đồng Phạm Khôi và Trần Xuân Tú đã công bố đề tai A Reconfigurable Multi-function DMA Controller for High-Performance Computing Systems, tại hội nghị hội nghị NICS 2018.

Dé tài có khả năng cấu hình với nhiều chức năng truyền dữ liệu khác nhau, đặc biệt là truyền dữ liệu đưới dạng ma trận. Tần số hoạt động tối đa của hệ thống là 1428. Mục tiêu đề tài 1. Mục tiêu tong quát Mục tiêu tổng quát của nhóm thực hiện đề tài là thiết kế một bộ điều khiến truy cập bộ nhớ trực tiếp DMAC đa kênh dựa trên kiến trúc tập lệnh RISC-V 32-bit.

Mục tiêu chỉ tiết e_ Mục tiêu thứ nhất, bộ DMAC có khả năng điều khiến việc thực thi truyền dữ liệu thông qua tập lệnh của RISC-V 32-bit. Điều này có nghĩa là nhóm sẽ thiết kế tập lệnh mở rộng RISC-V 32-bit cho DMAC. © Muc tiêu thứ hai, bộ DMAC có khả năng điều khiến việc truyền dữ liệu trên 4 kênh DMA (DMA channel). © Mục tiêu thứ ba, bộ DMAC phải có khả năng điều khiến việc thực thi truyền dữ liệu giữa memory-memory, memory-IJ/O, I/O-memory.

e Mục tiêu thứ tư, kênh DMA đạt tốc độ truyền dit liệu là 45Mbytes/s. e_ Mục tiêu thứ năm, đánh giá kết quả hoạt động của thiết kế theo luồng thiết kế Xilinx Vivado FPGA Design Flow: o Mô phỏng kết quả thực thi của bộ xử lý trên Vivado. o Post-Implementation: kiêm tra thời gian va kết quả thực thi của thiết kế trên Vivado. o Giai đoạn thực hiện hóa: kiểm tra quá trình thực thi và kết qua hoạt động của thiết kế trên FPGA (Virtex 7).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ