Chương 1. Giới thiệu về kiến trúc tập lệnh. Tổng quan về kiến trúc tập lệnh RISC-V. Các kiến trúc tập lệnh.
Chỉ tiết kiến trúc tập lệnh RISC-V. Thiết kế hệ thống của CPU.-----22¿¿¿22222vEvevrtttEErkrtrrrrrrrrrrree 26 Chương 2. THIET KE VI XỬ LÝ RISC-V 32-BIT. Tổng quan thiết kế vi xử lý.
Lý thuyết về xung đột (Pipeline hazard). Xung đột cấu trúc (Structure hazard). Xung đột dữ liệu (Data hazard). Xung đột điều khiển (Control/Branch hazard).
Các khối chức năng có trong vi xử lý thông qua từng giai đoạn. THIET KE VI XỬ LÝ RISC-V 32-BIT VỚI GIAO THỨC AXI453 3. Đóng gói vi xử lý RISC-V với giao thức AXI4. Kiến trúc vi xử lý trước khi đóng gói.
Kiến trúc vi xử lý khi đóng gói thành IP. Giao thức AXI4. Tổng quan giao thức. Các tín hiệu cụ thể của giao thức AXI4 trong khóa luận.
THIẾT KÉ BLOCK DESIGN TRÊN VIVADO. Tổng quan thiết kế Block Design. Thiết kế trên Vivado. Các IP của Xilinx dự kiến dùng trong thiết kế Block Design.
IP Memory Interface Generator (MIG 7 Series). IP Central Direct Memory Access (IP CDMA). IP AXI Bram ContrOÏÏ€T. ¿5+ 5+ SSx+k+t‡v£eEexeeeketseerrvre 60 Chương 5.
MÔ PHONG VÀ ĐÁNH GIÁ THIET KÉ. Kịch bản kiêm thử trên FPGA. Mô phỏng chức năng. Kết quả mô phỏng.
Đánh giá thiết kế. Kết quả tổng hợp.----cc:22cs+csccvvrrrerrkvrrrrrrvrrrrrres 68 5. Đánh giá thiết kế và so sánh với các đề tài khác. KÉT LUẬN VÀ HƯỚNG PHÁT TRIẺN.
Những kinh nghiệm tích lũy. Các vấn đề hạn chế. Kết quả dat ẨƯỢC. Hướng phát triỂn.----¿:©222++++22E+++ttEEEEvtEEEEvrrtrrkrrrrrrrrrrrrrres 74 TÀI LIEU THAM KHẢO.
2222:2222 2222222222E2222EEEE22E3222EExerrrrrrree 75 PHU LỤC I. KIT FPGA XILINX VIRTEX-7 VC707.-------5-5-©5+55+ 76 PHỤ LỤC II. CÁC BƯỚC GENERATE BITSTREAM. DANH MỤC HÌNH Hình 1.1: Dinh dạng tập lệnh R`V32[.
+ - 5c tk Ekskrkekekrrrerree 21 Hình 1.2: Kiến trúc hệ thống CPU .1: Hình mô ta CPU RISC-V đơn chu kỳ.2: Hình mô tả chỉ tiết các khối chức năng trong vi xử ly 32-bit RISC-V 5- Stage pipeline sử dụng trong khoá luận .3: Hình mô tả các tín hiệu control qua các tầng.4: Module Controller trong thiết kế .5: Thanh ghi Program Counter (PC) .--‹- 5+ xxx sv£vxeeevexeeerrrrre 35 Hình 2.6: Module Program Counter add 4 (PC_ add4) .8: Thanh ghi IF to ID (IE_ tO_ TH). 5c 5c sv‡v£vxeeekexeerrrrrre 37 Hình 2. -¿- 1S: nh k9 12 1H HH1 Hy 38 Hình 2.10: Module imm_ øen.- --¿-+- 5° +55 **2E‡E‡EvEEk+EEEeEEkrkrkerrrerkrkrke 39 Hình 2.11: Module Branch CoimparatOr-.------ ¿+52 ++s25s£+++z++£+se+szsz++ 40 Hình 2.12: Module Branch Detection.13: Module Hazard Detection.14: Thanh ghi ID to EX (ID_to_EX) .--- ¿c5 S111 ST He 45 Hình 2.-- - - - ¿5< + +‡k+E‡E SE T111 1101012 H1 11 re, 46 Hình 2.18: Module Forwarding Unit .------ 5-52 5++s+se£e£zxzxerererereree 47 Hình 2.19: Module Addition Branch .------ 55+ 5+55+s+ss£ezezxserxersrsree 48 Hình 2.20: Thanh ghi EX to MEM (EX_to_MEM)). es ¿ST HH1” 00121 trà 50 Hình 2.22: Thanh ghi MEM to WB (MEM_to_WB).23: Module Mux_ẲW.- cv HH HH HT Hàng Hàn net 52 Hình 3.1: Kiến trúc vi xử lý RISC-V trước khi đóng gói.2: Kiến trúc vi xử lý sau khi đóng gói và được kết nói với IP System Hình 4.1: Thiết kế Block Design trên phần mềm Vivado.3: Kịch bản kiểm thử sử dụng SD Hình 5.4: Đoạn chương trình assembly và mã máy sau khi biên dịch để kiểm tra chức năng CPU.
¿+ 11k 111 T HH HH HH rà 64 Hình 5.5: Kết quả mô phỏng ba câu lệnh đầu tiên trên phần mềm Vivado.6: Kết quả mô phỏng ba câu lệnh đầu tiên trên Venus .7: Memory sau khi thực hiện lệnh SW trên CPU.8: Memory sau khi thực hiện lệnh SW trên phần mềm .9: Kết quả thanh ghi của CPU sau khi chạy xong đoạn chương trình.10: Kết quả thanh ghi của phần mềm Venus sau khi chạy xong đoạn chương trình .11: Tài nguyên sử dụng của CPU RISC-V.12: Tài nguyên sử dụng theo từng module của CPU RISC-V 69 Hình 5.13: Xung clock của CPU RISC-V.14: Phân tích timing cho CPU RISC-V .15: Tốc độ tối đa dự kiến của CPU RISC-V.---c¿cccvccc+cccseez 70 DANH MỤC BANG Bang 1.1: Trang thái phiên bản của ISA cơ sở và các phần mở rộng.2: Thuận lợi và bất lợi của mỗi ISA.3: Quy ước các thanh ghi của RISC-V.4: Lệnh RV32I thông qua ngôn ngữ assembly.1: Bảng mô tả các công đoạn khi xử ly câu lệnh.2: Bang mô tả tín hiệu điều khiển khối ALU .3: Bảng mô tả tín hiệu điều khiển thanh ghi PC.4: Bảng mô tả tín hiệu điều khiển halt.5: Bảng mô tả tín hiệu điều khiển khối Imm_Gen.6: Bảng mô tả tín hiệu BrE(Q.-- cscs 56522 ‡E‡+SEkrekekererrrkrkekrree 34 Bang 2.7: Bảng mô tả tín hiệu BTL7T. - <5 St S*£v+kekevrerererereerkekree 34 Bang 2.8: Bảng mô tả tín hiệu BrUn.9: Bảng các tín hiệu trong module Controller .10: Bảng các tín hiệu trong thanh ghi PC.11: Bảng các tín hiệu trong thanh ghi PC_ add4.12: Bảng các tín hiệu trong module IMEM.13: Bảng các tín hiệu trong thanh ghi IF_ to_TD.14: Bảng các tín hiệu trong RegFile. ----- 5 5++++c+c+cs+e+xzxscee 39 Bang 2.15: Bảng các tín hiệu trong khối imm_gen.16: Bảng các tín hiệu trong khối br_comp.:--c:zc5ss2 40 Bang 2.17: Bảng các tín hiệu trong khối branch_ detect.18: Bang các tín hiệu trong khối Hazard Detection.19: Bảng các tin hiệu trong thanh ghi ID_to_EX.20: Bang các tín hiệu trong khối MuxA.21: Bảng các tín hiệu trong khối MuxB.-----ccc¿-©2c2sssccc2 46 Bang 2.22: Bang các tín hiệu trong khối ALU .-----ccccc¿+¿222vcvccce2 46 Bang 2.23: Bảng các tín hiệu trong khối forwarding_unit.24: Bảng các tín hiệu trong khối add_br.25: Bảng các tín hiệu trong thanh ghi EX_to_MEM.26: Bảng các tín hiệu trong khối DMEM.---¿©+cc+2czssc+ 50 Bang 2.27: Bảng các tín hiệu trong thanh ghi MEM_to_WB.28: Bang các tín hiệu trong khối Mux_W.1: Các tín hiệu trong AXT4 bus.1: Bảng so sánh các thiết kế RISC-V pipeline [5].-------¿ 7I DANH MỤC TU VIET TAT Viết tắt Viết đầy đủ Ý nghĩa IP Intellectual Property Lõi sỡ hữu trí tuệ AXL | Advanced eXtensible Interface Giao diện bus mở rộng nâng cao CISC | Complex Instruction Set Computer | Máy tính với tập lệnh phức tạp. Máy tính với tập lệnh đơn giản RISC | Reduced Instruction Set Computer hóa Bộ xử lý dựa trên kiến trúc tập ARM.
| Advanced RISC Machines lệnh RISC MIPS Microprocessor without Kiến trúc tập lệnh RISC phát Interlocked Pipeline Stages trién bởi MIPS Technologies RAM | Random Access Memory Bộ nhớ truy cập ngẫu nhiên CPU_ | Central Processing Unit Bộ xử lý trung tâm Vi mạch tích hợp cỡ lớn dùng FPGA | Field Programmable Gate Array cấu trúc mảng phan tử logic ma người dùng có thê lập trình ALU | Arithmetic Logic Unit Khối số học logic Hệ thống kiểm soát tan số khép PLL | Phase Locked Loop kín RTL | Register Transfer Level Mức chuyền thanh ghi Trung tâm truy cập bộ nhớ trực CDMA | Central Direct Memory Access " tiép Trinh quan lý xung clock chế độ MMCM | Mixed-Mode Clock Manager hỗn hợp 12 TÓM TÁT KHÓA LUẬN Đề tài khóa luận bao gồm hai nội dung chính xoay quanh nghiên cứu thiết kế bộ vi xử ly RISC-V và đóng gói vi xử lý thành IP theo chuẩn giao tiếp AXI4. Nội dung thứ nhất là hướng đến nghiên cứu thiết kế vi xử lý RISC-V áp dụng kỹ thuật pipeline để xử lý câu lệnh. Vi xử lý gồm các khối chức năng xử lý lệnh trong tập lệnh RV32I và xử lý các xung đột. Tiếp đến là nhóm thực hiện thay thé hai khối Instruction Memory (IMEM) va Data Memory (DMEM) bằng IP System Cache v5.
Nội dung thứ hai của dé tài khóa luận là đóng gói bộ vi xử lý. Hau hết các IP trên phần mềm Vivado giao tiếp với nhau thông qua bus AXI4 hoặc AXI3. Trong khóa luận này, RISC-V sẽ được đóng gói theo chuẩn giao tiếp AXI4. Sau đó kết nối với các IP khác trên Block Design của phần mềm Vivado đề tạo sự liên kết giữa hai nội dung.
Trong Block Design, RISC-V đóng vai trò là một Master, yêu cầu đọc dữ liệu từ các Slaver thông qua bus AX14, tính toán và lưu các giá trị đó vào trong System Cache, đồng thời trả các giá trị đó cho Slaver hoặc xuất ra Uart. Qua hai nội dung của khóa luận này, nhóm thực hiện hy vọng sẽ tích lũy được thêm kinh nghiệm về việc thiết kế kiến trúc vi xử lý RISC-V, cải thiện tốc độ xử lý của vi xử lý theo các kiến trúc đã được học, về thiết kế hệ thống có tích hợp các khối IP có sẵn. Ngoài ra hiểu về cách sử dụng BUS AMBA AXI4 dé truyền nhận dữ liệu trong hệ thống. Đóng góp cho sự phát triển của kiến trúc RISC-V.
13 MỞ DAU Ngày nay, nhu cầu về chip bán dẫn của ngành sản xuất các thiết bị thông minh ngày càng tăng cao, tình trạng dịch Covid-19 trở nên phức tạp, mọi người dần chuyền đổi sang hình thức học tập, làm việc trực tuyến và giải trí tại nhà. Chính vì vậy, việc phát triển các thiết bị thông minh, hiện đại, đòi hỏi các thiết bị phải có vi xử lý mạnh mẽ, đáp ứng các nhu cầu của người dùng càng trở nên cấp thiết hơn. Tuy nhiên, giá thành cấu tạo các vi xử lý còn cao do qui trình chế tạo phức tạp, thêm với đó là những khó khăn đến từ van dé thiếu hụt nguyên liệu và nhân công do bối cảnh dịch Covid-19 kéo dài hiện nay. Các vấn đề trên càng làm tăng thêm sự quan trọng của các vi xử lý trong các thiết bị thông minh.
Từ thực trạng được nêu trên, chúng ta thay được sự cần thiết trong việc tối ưu hóa các bộ vi xử lý. Một trong những giải pháp được đề xuất là thiết kế các vi xử lý phù hợp với thiết bị thông minh. Một vi xử lý với câu trúc lệnh don giản dé có thê giảm số lượng các công logic trên thiết kế, làm giảm năng lượng hoạt động cho vi xử lý, khi ấy nhà sản xuất sẽ điều chỉnh giá thành hợp lý hơn, từ đó làm giảm giá thành khi đến tay người ding. Tai mức độ là sinh viên nghiên cứu, nhóm chúng em đề xuất dé tài khóa luận mang tên “NGHIÊN CỨU THIÉT KÉ BỘ VI XỬ LÝ RISC-V 32-BIT THEO KIEN TRÚC PIPELINE”, đề tài khóa luận có hai nội dung.
Nội dung thứ nhất hướng đến việc thiết kế vi xử lý RISC-V theo kiến trúc Pipeline 5-stage, tăng số lượng lệnh có thé xử lý trong đường ống của vi xử lý. Nội dung thứ hai đó là tinh chỉnh vi xử lý RISC-V thành một Master, có thể giao tiếp với các Slaver (System Cache) khác thông qua bus AXI4. Mục đích của nội dung này hướng đến việc tiếp cận thiết kế theo kiến trúc của các vi xử lý ngày nay, nhằm đóng góp cho sự phát triên của ngành vi mạch. Gi6i thiệu về kiến trúc tập lệnh Kiến trúc tập lệnh (ISA) là một phan trừu tượng của máy tính xác định cách CPU được điều khiển bởi phần mềm.
ISA hoạt động như một giao diện giữa phần cứng và phần mềm, chỉ định cả những gì bộ xử lý có khả năng thực hiện cũng như cách nó được thực hién.[1] ISA cung cấp cách duy nhất dé người dung có thể tương tác với phần cứng.