ĐẠI HỌC QUOC GIA TP. HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA KY THUAT MAY TÍNH NGUYEN VAN HANH KHOA LUAN TOT NGHIEP NGHIEN CUU THIET KE BO MO PHONG TAP LENH RISC-V RESEARCH DESIGN A RISC-V INSTRUCTION SET SIMULATOR KY SƯNGANH KY THUAT MAY TÍNH TP. HO CHi MINH, 2022 ĐẠI HỌC QUOC GIA TP. HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA KY THUAT MAY TÍNH NGUYEN VAN HANH - 17520442 KHOA LUAN TOT NGHIEP NGHIEN CUU THIET KE BO MO PHONG TAP LENH RISC-V RESEARCH DESIGN RISC-V INSTRUCTION SET SIMULATOR KY SU NGANH KY THUAT MAY TÍNH GIANG VIEN HUONG DAN ThS.
PHAM MINH QUAN KS. TRAN DAI DUONG TP. HO CHÍ MINH, 2022 THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 62/QD-DHCNTT ngày 14 tháng 02 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin. LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến toàn thể quý thầy cô trường Đại học Công nghệ Thông tin — Đại học Quốc gia Thành phố Hồ Chí Minh, đặc biệt là quý thầy cô khoa Kỹ thuật Máy tính đã tạo điều kiện cho em học hỏi được nhiều kiến thức và kinh nghiệm trong suốt thời gian học tập.
Đặc biệt, em xin chân thành cảm ơn thầy Phạm Minh Quân và thầy Trần Đại Dương. Hai thầy đã hướng dẫn em rất tận tình trong suốt quá trình thực hiện khóa luận tốt nghiệp, hỗ trợ và cung cấp cho em nhiều kiến thức chuyên môn thật sự quý báu dé em có thé hoàn thành đề tài. Đồng thời, em cũng xin chân thành gửi lời cảm ơn đến các anh chị, bạn bè và những người đã giúp em tìm kiếm thông tin và động viên tỉnh thần cùng nhau trao đổi, giải quyết các vấn đề cho em trong suốt quá trình thực hiện khóa luận. Ngoài ra, con xin gửi đến bé mẹ, gia đình lời cảm ơn vì đã tạo mọi điều kiện cho con được học tap, luôn bên cạnh tin tưởng và ủng hộ tinh thần cho con trong suốt quá trình học tập.
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của sinh viên nên trong báo cáo này chúng em không thê tránh khỏi những thiếu sót. Em rất mong nhận được nhiều sự góp ý, nhận xét của quý thầy cô. Một lan nữa em xin chân thành cảm ơn! TP. Hồ Chí Minh, ngày 14 tháng 2 năm 2022 Sinh viên thực hiện Nguyễn Văn Hạnh MỤC LỤC CHUONG I.
GIỚI THIỆU DE TÀI. Thông tin tổng quan của đề tài. Một số nghiên cứu liên quan. Tình hình nghiên cứu ngoài nước.
Mục tiêu để tài. Mục tiêu tổng quan. Mục tiêu chỉ tiết. Phương pháp nghiên CỨU.--¿- ee + ©+++E2££E£EE£k£keEEEErkrkrkekerkrkrkekrke 6 CHƯƠNG 2.
Sơ lược về kiến trúc tập lệnh RISC-V. Tổng qốấ ME. Kiến trúc tập lệnh cơ bản. Kiến trúc tập lệnh mở rộng.------ccz2sccccz+ce+ 1 2.
Hệ thống xác minh chức năng bộ xử lý. Bộ phát sinh chương trình kiểm tra ngẫu nhiên. Bộ thống kê độ bao phủ. Bộ mô phỏng ISS.--¿--2222222222ttEEEEEEEErrrrrtrrrrrrrrrrrrrrer 9 CHƯƠNG 3.
THIET KE DE XUẤT. Thiết kế hệ thống. Thiết kế chỉ tiẾt.-c th HH re. Instruction Set SimuÏafOT.-- ees S*S*£‡+sEkekeerrsrrrrkekek 23 CHƯƠNG 4.
MO PHONG VÀ ĐÁNH GIA KET QUA. Quy trình mô phỏng. So sánh kết quả. KET LUẬN VÀ HƯỚNG PHAT TRIÊN.
Hướng phát triền.---+++22+++++2E++++tEEEE+rtrtEEEvrtttrrkrrrrrrkrrrrrrkev 41 DANH MỤC HÌNH Hình 1.1: Hệ thống xác minh chức năng bộ xử lý.1: Thiết kế kiến trúc hệ thống.2: So đồ thuật toán của Assembler.3: Ví dụ về một chương trình hợp ngữ.4: Minh hoa cho tệp chương trình mã máy,.---------------c-ccccccccceccex DD Hình 3.5: Thiết kế sơ đồ tổng quát.1: Quy trình thực hiện của ISS.2: Tệp chương trình thực thi wissen2 Hình 4.3: Thực thi từng dòng lệnh mã máy .4: Kết quả của tính toán độ bao phủ coverage.5: Thể hiện ví dụ giá trị lưu trong bộ nhớ wee3 Hình 4.6: Thể hiện ví dụ về giá trị của thanh ghi.7: Ví dụ về chạy Debug với thiết lập breakpoint .8: Ví dụ chạy chế độ Debug với step-by-step.9: Tệp đầu vào đề cho bộ mô phỏng ISS và các nhóm phần cứng.10: Kết quả giá trị thanh ghi trong tệp tin sau khi chạy ISS.11: Kết quả giá trị thanh ghi của nhóm phần cứng multi-thread sau khi mô phỏng.12: Kết quả giá trị thanh ghi của nhóm phan cứng multi-core sau khi mô phỏng.13: Kết quả giá trị thanh ghi của nhóm phan cứng thiết kế bộ xử lý kiến trúc RISC-V hỗ trợ chế độ giám sát sau khi mô phỏng.-e 3Ø DANH MUC BANG Bang 1.1: Những CPU RISC-V tiêu biểu.2: Các lệnh cơ bản của bản thuộc kiến trúc tập lệnh RV321.1: Bảng các tập lệnh cơ sở và mở rộng của RISC-V .2: Phân loại các nhóm lệnh của tập lệnh RV321 .3: Cấu trúc các định dạng lệnh RV321.4: Chức năng của nhóm lệnh rẽ nhánh.‹esese«ecccrvevvvseversrrrrr Bang 2.5: Chức năng của nhóm lệnh nạp.---c-c-ccc-cccceececeeeeeceeecceeccceeeee Bang 2.6: Chức năng của nhóm lệnh lưu.7: Chức năng của nhóm lệnh số học và luận lý .8: Chức năng của nhóm lệnh số học và luận lý 2.9: Chức năng của nhóm lệnh số học và luận l//5À,.10: Chức năng của nhóm lệnh nhảy.cesc-cc-c5vvseseteecccrvevvvsesersrrrer Bảng 3.1: Nội dung của configuration file Bang 4.1: So sánh với 2 bộ mô phỏng khác DANH MỤC TU VIET TAT Từ viết tắt Mô tả RISC Reduced Instruction Set Computer ISS Instruction Set Simulator RTG Random Test Generation ALU Arithmetic Logic Unit RV32I RISC-V 32 Integer PC Program Counter OVM Open Verification Methodology UVM Universal Verification Methodology ISG Instruction Stream Generator ISA Instruction Set Architecture RTL Register Tranfer Level TÓM TÁT KHÓA LUẬN RISC-V là một kiến trúc tập lệnh mở (Open-sourse ISA) được xây dựng dựa trên những nguyên tắc của kiến trúc tập lệnh RISC (được viết tắt từ Reduced Instruction Set Computer). Hiện RISC-V là bộ kién tric tập lệnh mới (chi vừa được phát hành chính thức vào tháng 03/2019) cho phép mở ra một kỷ nguyên mới về sự đổi mới của bộ vi xử lý thông qua việc cộng tác tiêu chuẩn mở (open standard collaboration). Kiến trúc tập lệnh RISC-V có khả năng mở rộng cả về phần cứng lẫn phần mềm mà không có bat kỳ ràng buộc gì về kiến trúc. Do đó, mục tiêu của để tài là tạo ra một bộ mô phỏng tập lệnh RISC-V, được đặt tên là ISS.
ISS là một chương trình phần mềm có chức năng mô phỏng hành vi của một bộ xử lý mà không phụ thuộc vào phần cứng. Cho phép người dùng xác minh được độ chính xác của câu lệnh từ đó phát hiện lỗi sai. Ngoài việc phát hiện lỗi, ISS còn thống kê độ bao phủ dựa trên cấu hình của người dùng mong muốn như lệnh, thanh ghi,. Từ đó cho phép người dùng có thé so sánh và đánh giá với mục tiêu đề Ta.
Ngoài ra khóa luận này, kết quả của thiết kế được so sánh với kết quả mô phỏng tạo được với bộ mô phỏng Mars dành cho tập lệnh MIPS [1] và RISC-V Interpreter [2]. GIỚI THIỆU DE TÀI 1. Thông tin tổng quan của đề tài Động lực thực hiện đề tài: Hiện nay đề sử dụng các kiến trúc khác như Arm hay Intel thì phải trả những chỉ phí khá đắt đỏ nên rất khó để các nhà phát triển có thể sở hữu bản quyền và thực hiện nghiên cứu. Đối với RISC-V, mọi thứ hầu như là miễn phí cho bat kỳ mục đích sử dụng nào.
Nó cho phép bất kỳ ai có thể thiết kế, sản xuất và bán các sản phẩm phần cứng và phần mềm sử dụng RISC-V. Điều đó sẽ đem đến rất nhiều lợi ích quan trong cho nền công nghiệp máy tính nói chung và sự phát triển của thiết kế vi mach và phần cứng nói riêng, cũng như lôi kéo được nhiều ý tưởng sáng tạo thiết kế hơn, các thiết kế bộ vi xử lý có thể được trao đồi, tái sử dụng, dễ tối ưu hơn làm cho chỉ phí của bộ vi xử lý trở nên rẻ hơn và phù hợp với nhiều ứng dụng khác nhau. RISC-V được phát triển lần đầu tiên bởi Đại học California, Berkeley vào năm 2010. Cho đến nay đã có hàng chục bộ xử lý được phát triển dựa trên kiến trúc tập lệnh này nhắm vào nhiều mục dich ứng dụng và phân khúc khác nhau.1 trình bày một số sản phẩm CPU RISC-V tiêu biéu.1: Những CPU RISC-V tiêu biểu RISC-V CPU | Nhà pháttriển | Kiến trúc tập lệnh | Sản phẩm mục tiêu Máy tính, thiết bị cá Rocket/BOOM| Dai học California | RV64G nhan ORCA Vector Blox RV32IM FGPA Sodor Dai hoc California | RV32I Education SCRI Syntacore RV32I/E[MC] Vi điều khiển/IoT PICORV32 Clifford Wolf RV32IMC Vi điều khién/IoT Z-Scale Đại học Berkeley | RV32IM Vi điều khiển/IoT ETH Zurich & Đại `.
RISCY RV32IMC[F]X Vi điều khiển/IoT học Bologna Bộ mô phỏng tập lệnh RISC-V còn mới ở Việt Nam cho nên nhóm cũng lấy đó làm động lực dé làm khóa luận này nhằm góp phần vào nghiên cứu bộ tập lệnh RISC-V ở nước ta cũng như cộng đồng RISC-V. Nghiên cứu thiết kế RISC-V ISS trong khóa luận này nhóm cũng tiếp bước dé hoàn thành hệ thống xác minh bộ xử lý RISC-V theo Hình 1.1 mà nhóm nghiên cứu thực hiện. Hệ thống bao gồm: RISC-V RTG, Testbench Controller, RTL Simulation, Comp-runner và Coverage Monitor. ö=ðom<ZOCzG RISC-V Testbench RTG Controller Hình 1.1: Hệ thông xác minh chức năng bộ xử lý.
Khái quát về hệ thống gồm: RTG là một phần mềm máy tính được sử dụng dé xác minh chức năng của bộ xử lý. Chức năng chính của RTG là tạo ra các testcases. Các testcases được tạo ra là những chương trình hợp ngữ dùng đề kiểm tra kiến trúc tập lệnh của bộ vi xử lý bằng cách sử dụng ngẫu nhiên hóa dé chọn ra các lệnh, thanh ghi, địa chỉ và dữ liệu. Testbench Controller: là khói điều khiển ISS và RTL simulation, bat đầu bằng cách nạp các testcases được tạo ra bởi RTG vào ISS.
ISS (Instruction Set Simulation) là nội dung dé tài khóa luận mà nhóm thực hiện. Bộ mô phỏng ISS được sử dụng như là mô hình tham chiếu vàng và được giả định là sẽ tạo ra các kết quả mong đợi. ISS — Chương trình mô phỏng tập lệnh độc lập phần cứng là một mô hình mô phỏng, thường được viết bằng ngôn ngữ lập trình cấp cao. ISS dùng để mô phỏng hành vi của máy tính hoặc bộ vi xử lý bằng cách đọc các lệnh và duy trì các biến bên trong đại diện cho các thanh ghi bộ xử lý và bộ nhớ.
RTL Simulation là bước mô phỏng chức năng của thiết kế. Có nhiều phương pháp khác nhau để tiến hành như OVM, UVM bằng xác minh truyền thống,. Đầu ra của RTL Simulation thông thường là dạng sóng, dữ liệu, hoặc các ràng buộc theo yêu cầu của người dùng. Quá trình của mô phỏng kết thúc khi tất cả các mẫu thử nghiệm đều được thực thi và cho kết quả giống như kết quả mong đợi.