CHƯƠNG 1: TONG QUAN DE TÀI e CHƯƠNG 2: CƠ SỞ LY THUYET e CHƯƠNG 3: PHƯƠNG PHAP THIET KE e CHƯƠNG 4: KET QUA VA ĐÁNH GIÁ e CHƯƠING 5: KET LUẬN VÀ HƯỚNG PHAT TRIEN CHUONG 1. TONG QUAN ĐÈ TÀI 1.1 Tong quan dé tai Trong thời điểm hiện tại, sự phat triển của kiến trúc vi xử lý mã nguồn mở RISC-V đã trở thành một chủ đề nóng trong ngành công nghệ thông tin toàn cầu. Khởi nguồn từ một dự án học thuật tại Đại học California, Berkeley vào năm 2010, RISC-V không chỉ là một lựa chọn kinh tế mà còn mở ra khả năng tùy biến và phát trién mạnh mẽ cho các nhà nghiên cứu và phát triển sản phẩm. Đặc biệt, so với các kiến trúc thương mại như x86 của Intel và ARM, RISC-V cung cấp một nền tang phát triển miễn phí, giảm rào can chi phí và pháp lý, thúc day sự đổi mới và đa dang hóa.
Một trong những lợi thé nồi bật của RISC-V là kiến trúc tập lệnh rút gọn, giảm thiểu số lượng lệnh và tài nguyên can thiết dé chế tao chip, từ đó giảm chi phí sản xuất và tăng hiệu suất cũng như tiết kiệm năng lượng. Điều này không chỉ cải thiện khả năng hoạt động của các thiết bị mà còn mang lại lợi ích kinh tế, làm cho RISC-V trở thành một giải pháp hap dẫn trong thị trường vi xử lý hiện nay. Hơn nữa, sự phát triển của RISC-V được thúc day mạnh mẽ bởi cộng đồng toàn cầu gồm các chuyên gia, nhà khoa học, và nhà nghiên cứu, đảm bảo cập nhật kỹ thuật liên tục và nhanh chóng. Sự hỗ trợ này không chỉ giúp RISC-V duy trì vị thế cạnh tranh mà còn tạo điều kiện cho các doanh nghiệp triển khai nhanh chóng các giải pháp công nghệ mới, đáp ứng nhu cầu tăng trưởng của thị trường điện tử và IoT.
Tình hình thế giới, các công ty, tập đoàn công nghệ lớn như Intel, SiFive, SemiFive, China RISC-V Industry Alliance,. đã sử dụng RISC-V vào các sản phẩm của họ.100 thành viên trên toàn thế giới, bao gồm các công ty và tổ chức học thuật, hiện đang hợp tác thông qua tổ chức phi lợi nhuận RISC-V International dé thiết lập và phát triển các dự án liên quan đến RISC-V. Vào tháng 2/2022, Intel công bồ dau tu 1 tỷ USD dé hỗ trợ các công ty sản xuất chip RISC-V [1]. Trong khi các nghiên cứu chỉ tập trung chủ yếu vào mô phỏng và thử nghiệm các mô hình lý thuyết của vi xử lý RISC-V trên FPGA, khoá luận này đi một bước xa hơn bằng cách thực thi thiết kế vật lý, mang các ý tưởng từ bảng vẽ đến thực tế.
Sự chuyền giao này từ mô hình mô phỏng sang thiết kế vật lý không chỉ là một bước tiến quan trọng trong quá trình phát triển sản phẩm, mà còn là yếu tổ cần thiết để đánh giá chính xác các khả năng thực tế và các thách thức trong sản xuất. Chính vì thế, nhóm quyết định thực hiện đề tài “Thiết kế vật lý bộ vi xử lý RISC-V hỗ trợ Branch Prediction” “Trong khoá luận này, việc tích hop branch prediction vào vi xử lý RISC- V không chỉ nhằm mục đích cải thiện tốc độ xử lý và giảm độ trễ cho RISC-V, mà còn nhằm đảm bảo rằng thiết kế cuối cùng có thể được áp dụng một cách hiệu quả trong các môi trường sản xuất thực tế, đặc biệt là trong các ứng dụng yêu cầu hiệu suất cao như trong các hệ thống nhúng và IoT.2 Mục tiêu đề tài Đề tài “Thiết kế vật lý bộ vi xử lý RISC-V hỗ trợ Branch Prediction” của nhóm hướng tới xây dựng một vi xử lý RISC-V từ thiết kế RTL cho đến thiết kế vật lý. Hiện thực thiết kế vật lý mới có thé chứng minh độ tin cậy của các thiết kế mô phỏng. Đề tài đặt ra một số mục tiêu cụ thể như sau: % Đối với thiết kế RTL e _ Hiện thức thiết kế RISC-V RV32I với kiến trúc pipeline 5 tầng e Nghiên cứu thực hiện giải thuật Branch Prediction để tích hợp vào RISC-V e Kết quả mô phỏng chính xác 37 lệnh của RV32I s* Đối với thiết kế vật lý: e Đưa thành công thiết kế vi xử ly RISC-V xuống thiết kế vật lý.
e Tần số hoạt động của thiết kế vật lý đạt tối thiểu 50 MHz © Thiết kế vật lý phải tương đồng với thiết kế RTL, hoạt động đúng chức năng 1.3 Giới hạn đề tài % Đối với thiết kế RTL: e Vi xử lý không hỗ trợ các lệnh liên quán đến Control and Status Register Instruction va Environment Call and Breakpoints e Vi xử lý đạt tần số hoạt động là 100 MHz s* Đối với thiết kế vật ly: e Không thiết kế pin, pad e Khong thiết kế DFT và SignOff © Thiết kế vật lý hoạt động ở tan sé tối thiểu 50 MHz CHƯƠNG 2.1 Kiến trúc tập lệnh RISC-V 2.1 Giới thiệu về kiến trúc RISC-V RISC-V là một bộ lệnh máy tính (ISA) nguồn mở, dựa trên kiến trúc RISC (Reduced Instruction Set Computing) được phát triển ban đầu tại Đại học California, Berkeley. Kiến trúc này được thiết kế để đơn giản hóa các lệnh máy tính, giảm điện năng tiêu thụ và tối ưu hóa hiệu suất. RISC-V hỗ trợ các kiến trúc 32, 64, và 128-bit và được thiết kế mở, cho phép các nhà phát triển tự do tùy chỉnh và mở rộng bộ lệnh theo nhu cầu cụ thể. Điều này làm cho RISC-V trở thành lựa chọn phổ biến cho cả ứng dụng thương mại và nghiên cứu, từ các hệ thống nhúng đến máy chủ cỡ lớn.
RV32I là bộ lệnh bản cơ bản nhất của bộ lệnh RISC-V, thiết kế cho các hệ thống 32-bit. Bộ lệnh này bao gồm một tập hợp các lệnh tính toán đơn giản và cần thiết dé triển khai các chức năng co bản của máy tính. RV32I bao gồm các lệnh tính toán số nguyên, điều khiển luồng chương trình, và truy cập bộ nhớ, đủ cho việc xây dựng một bộ xử lý hoàn chỉnh. Nó được thiết kế dé dé dàng mở rộng với các mô-đun lệnh b6 sung, hỗ trợ việc tùy biến và mở rộng khả năng xử lý.2 Các tập lệnh và thanh ghỉ cơ bản của RISC-V RV32I Kiến trúc tập lệnh (ISA) của bộ lệnh RV32I bao gồm 47 lệnh, tuy nhiên một số lệnh hệ thống đã được tích hợp thành phần cứng, làm giảm số lượng lệnh xuống còn 37 lệnh (Hình 2.
Khoá luận này chỉ giới hạn thêm việc vi xử lý sẽ không hỗ trợ các lệnh gọi hệ thống và các lệnh kiểm soát trạng thái thanh ghi. RVä2I Base Instruction Set Hmmm[31:12] a (110111 LUI Hmmm|31:12) AUIPC imum 2| 10:1)11)19:12 1101111 JAL a | m— TOIT] JALR EiEI ames [ae toe TOT] BEG L_ mmỊI2H05— [2s DU | im] [1100011] BNE ato) a nt ttt] BLT [Timm 21103] [sto im TTT [T0007] BGE L—Tmi2105—|[——R2—| st] 110 _| amm[ 10] [1100011] BLTU L—anll2105]—|—R2—| TL TT _[ inlet] [100011 | BGEU | 0U | rd | UUUUUI |LBE Hị _ LH 010 LW = c LBU LHU 1mmm|11:0 SB imum| 11:5) SH imum| 11:5) imm|4:0] (II00011 sw imm rd OOLOO11 ADDI SLTI SLTIU XORI ORL ANDI _—WMWMNG— | Sim -Ƒ m [TH | Mm-ora] snii | OO1001T | SLLI =2 AT E—Mmm—|—S— | CMH—Ƒm | 01111101) AbD [D1001 | SUB ADD § gi] su SLT SLTU XOR SRL SRA OR AND FENCE ECALL EBREAK Hình 2.1 Tập lệnh RV32I 37 lệnh này được chia thành 6 định dạng (R, I, S, U, B, J) như Hình 2. Trong đó, R, I, S, U là bốn nhóm chính, chúng có chiều dài cố định là 32bit và phải được viết dudi dang 4 byte với mỗi lệnh trong bộ nhớ. Chúng có chức năng thực thi các lệnh tính toán toán học, truy cập bộ nhớ và thiết lập giá trị cho thanh ghi.
Riêng B(branch) và J(jump) là 2 nhóm có chức năng đặc biệt dé kiểm soát luồng chương trình, chúng không phải xử lý dữ liệu trực tiếp như 4 nhóm lệnh chính. Điều này giúp cho phân biệt rõ ràng giữa các lệnh xử lý dữ liệu và lệnh kiểm soát luồng chương trình thực thi, giúp cho kiến trúc RISC-V trở nên rõ ràng và hoạt động hiệu quả hơn. 31 30 25 24 21 20 19 15 14 12 11 8 7 6 0 | funct7 rs2 rsl funct3 rd opcode | R-type [ Imm[11:0] rsl funct3 rd opcode | I-type | imm[11:5] rs2 rsl funct3 imm[4:0] opcode | S-type imm|10:5 rs2 rsl funct3 | imm|4:1] | imm|11} | opcode | B-type [ imm[31:12] rd opcode | U-type [imm[20] | imm/[10:1] | mmm[11] imm{19:12] rd opcode | J-type Hinh 2.2 Dinh dang cau trúc các trường lệnh cua RV32I Dưới đây là bảng mô tả chỉ tiết các lệnh trong RV32I hoạt động và chức năng của chúng (Hình 2.1 RV32I: RISC-V integer instructions OF funct 3 | funct7 Type | Instructior Descrip: tion Operation (0000011G) |000 f= YE [IB ras tmírs [load byte r= SHQNERUCCAGCrESS IVa) fooooon (3) Joos — [=r [TC rd. Di load half] ro-= Sint taaresstis) | foooooa (3) —Jor0—[=-———t fw ra.
—tmrs1) loud word ]ra= tasers ine | fooooos 3) —|100—|-———t | ba — ra. Tn rs1) load byte unsigned | rd = —Terobitttaaaressty 3) | ae i on Tế rd, imm(rsl) pea hall wnsgned _fr ZeroExt(({Address]j<. uinm |shift left logical immediate [rd = rsi << uimm |0010011(19 [oro [= — |] Jsitỉ rd, rst. imn |setlessthan immediate [rd = (rsi « $ignExt(imm, | foorooa (19) Jou —|- 1 [teva ra.—rat 1m Joe ess than imm.
unsigned [rd = (ral_<StantxtCimmn) | 0010011(19) [100 |——_[L [PT rổ, rst. inn |xor immediate — — |ri= rst> StanExtCinm 0010011 (19) [101 — [0000000"[I_|srT1_rd. rst vi [shift right logical immediate [rd= re! 33 vi 0010011 (19) 010 SỈš srai rd, rs1, uimm |shift right arithmetic imm. rd = rsi >>> uimm 0010011 (19) 0010111423) It —[andr rã, T1.ạ= rs2yc-9 0100011 (35) 0110011(51) |000 |0000( add rd, rsl, rs2 add rd = rsl + rs2 0110011(51) |000 |010( BE rd, d rsl, rs2 sub fd= rsi— s2 0110011 (51) 0 : [ST Tổ, TT, rs2_|shift lee gical s2: 0110011 (51) [010 — |0000000 : | 0110011 (51) situ rd, rsi, rs2 |set less than unsigned rd=(rsl< rs2) 0110011 (51) xor rd.
ng tra xor rd = rsl ^ rs2 0110011 (51) iJ Sss sr] rd, rsì, rs? |shift right logical rd= rsl >> rs2e:o 0110011 (51) sra rd¿ ofsl, rs2 |shift ripht arithmetic rd = rs1 >>> rs2¿, 0110011 (51) or 0110011 (51) ý S1, rs2 land 0110111(55) |- + upimm load upper immediate pra = lupimm, 12°b0} 1100011 (99) |000 rs2, label!