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).