1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu phát triển bộ kiểm tra đánh giá hệ thống RISC-V Core

67 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 68,67 MB

Nội dung

Tập lệnh RV32I, một phan quan trọng của RISC-V, cung cấp nền tảng cơ bản cho các bộ xử lý 32-bit, mang lại hiệu năng cao và thiết kế đơn giản.. Khóa luận này trình bày việc phát triển mộ

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN BA VĂN - 17521248

KHOA LUAN TOT NGHIEP

NGHIEN CUU PHAT TRIEN BO KIEM TRA DANH GIA

HE THONG RISC-V CORE

RESEARCH AND DEVELOPMENT A TEST AND EVALUATION SUITE FOR RISC-V CORE SYSTEM

KY SU NGANH KY THUAT MAY TINH

GIANG VIEN HUONG DAN

Ts NGUYEN MINH SON

TP HO CHI MINH, 2024

Trang 2

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số 662/QD-DHCNTT

ngày 05 thang 07 năm 2024 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.

Trang 3

LỜI CẢM ƠN

Trước hết, lời đầu tiên em xin được cảm ơn chân thành nhất Tiến sĩ Nguyễn

Minh Sơn người đã chỉ dẫn, động viên và hỗ trợ em suốt quá trình nghiên cứu và

hoàn thành khóa luận này Với sự tận tâm, kiên nhẫn và những góp ý quý báu của

Thay đã giúp đỡ và hỗ trợ em rất nhiều trong quá trình thực hiện khóa luận

Em cũng xin gửi lời cảm ơn của mình đến toàn thé thầy cô thân yêu 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, những người đã dạy dỗ và truyền đạt đượccho em những kiến thức, kỹ năng và tạo điều kiện thuận lợi cho em trong thời gian

học tập vừa qua.

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êntrong 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 lân nữa em xin chân thành cảm ơn!

TP Hồ Chí Minh, ngày 20 tháng 06 năm 2024

Sinh viên thực hiện

Nguyễn Bá Văn

Trang 4

MỤC LỤC

CHƯƠNG1._ GIỚI THIỆU ĐỀ TÀI csssitceSSSEEEEEEEEEEEEevkvrrrrrrevvrrrrrree 2

1.1 Tổng quan đề tài es-iccccssreecevrirerertrirrrrrrrrrrtrrrrrrrrrrrrrrrrre 2

1.2 _ Các dự án phát triển ở nước ngồi .-cccccrrrceecvvrrrreererrrrrrerrerrrre 5

1.2.1 So lược các dự án nghiên cứu ngồi hƯỚC -«cccceererreerrerseee 5 1.3 Mục tiêu khĩa luận c-csccsccs+tsrtererrterttrrrrtkrrkrrkrrkersrrrkrrkrrsrrsrkrrerrk 6

I5 Mure ti@u noo 0o sẽ 6

1.3.2 Chỉ tiết về mục tiêu của khĩa luận ::c::iceeceevvvrrrtrrreecse 6

1.4 Phuong pháp thực hiện khĩa luận . -« «c©c«e+xereererrerxrerererkree 7

CHƯƠNG2 TONG HỢP LÝ THUYẾT :-ec2++eevEEeSEEE.evrrrrreee 9

2.1 GiGi thiệu về kiến trúc RISC-V -:-cccesvcvverttiiteeeevkktrrtrrriressekerrrrrrid 9

2.11 Tổng ae Šađ% eo 9

2.1.2 Tap lệnh cơ bản RV32I -ceccererrkirtriirirriirrrirrree 10 2.1.3 Tap lệnh mở rộng của RISC-V -ccccceereekreeireirerierierrree 13

2.1.4 RISC-V RV22IL He, 14

2.2 Hệ thống xác minh chức năng bộ xử lý .c-ee+reeccccrrrrecccerrrree 20

2.2.1 Random Test Ge€neTafOT -«-cxetrrterktetekirtrrirtrirririrrrrrrierrree 21

2.2.2 Testbench ControÏÏ€T e ss«cs+xrEktrEkrEkirkkitkrirtietrirrkirerree 21

2.2.3 COImp-TUTN€T -e set HH 21

2.2.4 Coverage MONI(OT ce<ScssteErkeerirtrrttrrtkrrrirrrirrririrrrrree 22 2.2.5 Instruction Set Simulator oc ssesssessssessseessessssesseessseessessseesssersnsessseesssessseesane 22

2.2.6 RTL Simulation ecccceessessecseessessecsecseesesstesseeseeseessesseseeseessessesseeseesseanesseeneenss 22

CHUONG 3 Tổng quan thiết kế hệ thống -cceccesccccvvvessrrre 24

3.1 Tổng quan về hệ thống -ccc2+eecettreevertrreretrrrrrvrtrrrrrrrrrrrrrrre 24

Trang 5

3.2 Các khối chức năng có trong hệ thống -ecceireecvevrrrreceverrrre 26

3.2.1 AsseImbIer -ccsccecsrresrrrkersrtetsrrrtsrsrkrtrrkrtsrkrkrrrsrrsrkrksrersrrsre 26

3.2.2 Configuration fiÏ€ -c-«-ccxecktrkirthHh te riet 28 3.2.3 Instruction Set SimulafOr s scs+c+svceesttsrtsrserersrkersersersrssrssrk 29

3.2.4 RTL Simulation .-ssccscs+cse+teeskketsrsrtersrtrtsrtetsrkrkrrrsrrsrsrrsrsrerrsre 30

3.2.5 COMP-RUNDMEL oon eeeeeseessessesseessesseeseeseeseeseeneeneeatesseeneeseeatesseeneeneeateatesseeneeateatenesseeass 32

CHƯƠNG 4 QUY TRINH MO PHONG VA DANH GIÁ KET QUẢ 33

4.1 Quy trình mô phỏng cho hệ thống đánh giá kiểm tra RISC-V 33

4.2 So sánh và đánh giá kết quả s2-+ceetreeeerreeerrrrvrrrrrrrrrerrrree 41

CHƯƠNG 5 KET LUẬN VÀ HƯỚNG PHÁT TRIỂN -c.:- 55

eC 55

5.2 Hướng phát triGtr ccesssssssssessssssessssosessssssssssssssssssssssasssesssssssssssessassssssnsnsessasseeen 56

Trang 6

DANH MỤC HÌNH

Hình 1.1 Hệ thống xác minh chức năng bộ xử lý 2-2 2 2+ 2+£z+szz£+xze: 4

Hình 2.1 Cấu trúc tap lénh RISC V 13

Hình 3.1 Thiết kế kiến trúc hệ thống . :- ¿2£ ©2+2©++£+++£x++Ex+zrxrzrxrrreee 25 Hình 3.2 Sơ đồ hoạt [0i 500i 0a Soi 27

Hình 3.3 Minh họa cho chương trình tệp mã MAY - ¿+ 5+5 +++s>+*s+ss++x 28 Hình 3.4 So đồ hoạt động của khối ISS - 2 2 2 + £+E++E£EE+EzEezrzrezreee 30 Hình 3.5 Sơ đồ tong quát RTL Simulation - 2-2 2 2+2 ++++£++£++xzzzzzxeez 31 Hình 3.6 Sơ đồ tổng quát của Comp-Runner -2- 2 2 s++2x++£x++zxzzxezzsez 32 Hình 4.1 Quá trình mô phỏng và kiểm tra, đánh giá -2 2-¿©csz+cxz+5s+2 33 Hình 4.2 Tép chương trình thực tH1 - 5 G6 5111331 911331 9119 1 11 1 2x ngư 35 Hình 4.3 Thực thi từng dòng lệnh mã máy bằng bộ mô phỏng ISS - 36

Hình 4.4 Giá trị thanh ghi sau khi chạy ISS s1 xSxSsiirsirsreree 36 Hình 4.5 Giá trị bộ nhớ sau khi chạy ISS ¿- 5 22t +kEseeseserseesek 37 Hình 4.6 Giá trị độ bao phủ sau khi chạy ISS - 55555 *++++skseeereeereeees 37 Hình 4.7 Kết quả thực thi của bộ mô phỏng RTL -2- 2-2 2 s2 2+££2££+££2+£š 38 Hình 4.8 Giá trị thanh ghi sau khi thực hiện mô phỏng RTL Simulation 38

Hình 4.9 Giá trị bộ nhớ sau khi thực hiện mô phỏng RTL Simulation 39

Hình 4.10 Độ bao phủ sau khi thực hiện mô phỏng RTL - «<< «<2 39 Hình 4.11 Tệp nhật ký đưa ra so sánh giữa ISS,RTL cùng với đánh giá thiết ké 40

Hình 4.12 Cửa số Coverage Monitor đưa ra kết quả đánh giá thiết kế 1 40

Hình 4.13 Cửa số Coverage Monitor đưa ra kết quả đánh giá thiết kế 2 41

Hình 4.14 Tép tập hợp các lệnh dé thực hiện kiểm tra - 2-5: 44 Hình 4.15 Giá tri của tệp thanh ghi sau khi chạy mô phỏng ISS - 45

Hình 4.16 Giá tri của bộ nhớ sau khi mô phỏng ISS - 5 52c 46 Hình 4.17 Các lệnh được thực hiện sau quá trình mô phỏng ISS - 47

Hình 4.18 Giá tri của tệp thanh ghi sau khi chạy RTL simulation - 48

Hình 4.19 Giá trị của bộ nhớ sau khi chạy mô phỏng RTÌL - - - «+ 49

Hình 4.20 Các lệnh được thực hiện sau quá trình mô phỏng R'TL - 50

Trang 7

Hình 4.21 Kiểm tra chéo kết quả với trình mô phỏng phan cứng Vivado 51

Hình 4.22 Giá trị của tệp thanh ghi sau khi chạy mô phỏng bằng Vivado 51

Hình 4.23 Mô phỏng các lệnh thông qua phần mềm RISC V Interpreter 1 52

Hình 4.24 Mô phỏng các lệnh thông qua phần mềm RISC V Interpreter 2 53

Hình 4.25 Giá trị của bộ nhớ thông qua phần mềm mô phỏng RISC V Interpreter 53 Hình 4.26 Giá trị thanh ghi thông qua mô phỏng RISC V Interpreter 54

Trang 8

Bang 2.4 Các lệnh lấy dit liệu từ bộ nhớ vào thanh ghi -2- 2 2 225225: 15

Bang 2.5 Các lệnh có chức năng lưu dữ liệu vào bộ nhớ + «<+s+ 16 Bảng 2.6 Các lệnh có chức năng tính toán Ì «¿+ + EskEseEseeserserseree 17 Bang 2.7Các lệnh có chức năng tính toán 2 - + 1xx hư 18 Bang 2.8 Các lệnh có chức năng nhay eee eecesseeseceeceeeeseeeseeececeeeeeseeeeeseeseees 20

Bảng 3.1 Nội dung của tệp cấu hình đánh giá hệ thống 2-5 2 52522 29Bảng 4.1 So sánh hệ thống với bộ mô phỏng khác -2- ¿52222252 41

Bang 4.2 So sánh bộ mô phỏng ISS với bộ mô phỏng khác - « s«<+ 43

Trang 9

DANH MỤC TU VIET TAT

Tir viét tat Mô tả

RISC Reduced Instruction Set Computer

ISS Instruction Set Simulator

RTG Random Test Generation

RV32I RISC-V 32 Integer

ISA Instruction Set Architecture

RVCoTS RISC-V Co-Simulation Test Suite

RTL Register Transfer Level

Trang 10

TÓM TẮT KHÓA LUẬN

RISC-V (Reduced Instruction Set Computer V) [10] là một kiến trúc tập lệnh

mở và miễn phí, dựa trên thiết kế RISC Ra đời từ 2010, RISC V nhanh chóng thuhút được nhiều sự chú ý từ cộng đồng Với sự linh hoạt và hiệu quả trong thiết kếphan cứng và phần mềm, RISC-V đã trở thành một nền tảng phổ biến cho các ứngdụng đa dạng Tập lệnh RV32I, một phan quan trọng của RISC-V, cung cấp nền tảng

cơ bản cho các bộ xử lý 32-bit, mang lại hiệu năng cao và thiết kế đơn giản

Khóa luận này trình bày việc phát triển một hệ thống đánh giá thiết kế cho

kiến trúc RISC-V với tập lệnh RV32I "RISC-V Co-Simulator Test Suite" (RVCoTS)tập trung vào việc phát triển một hệ thống tự động hóa thử nghiệm và đánh giá cácthiết kế hệ thống dựa trên kiến trúc RISC-V RVCoTS được thiết kế để tạo ra các

mẫu thử thực hiện các tiêu chí đầu vào từ người dùng và tự động mô phỏng chúng

thông qua sự kết hợp giữa phần mềm mô phỏng ISS (Instruction Set Simulator) và

mô phỏng phần cứng RTL (Register-Transfer Level) Sau đó, RVCoTS cung cấpmột quy trình đánh giá tự động để đánh giá hiệu suất và độ tin cậy của thiết kế hệthống RISC-V

Ngoài ra, để đánh giá hiệu quả và tính đúng đắn của hệ thống, nhóm đã tiếnhành so sánh kết quả của nó với bộ mô phỏng RISC-V Interpreter và kết quả môphỏng phần cứng từ Vivado Kết quả cho thấy hệ thống của chúng tôi không chỉ đơngiản hóa quá trình kiểm tra và phát triển các bộ xử lý RISC-V RV32I mà còn đạtđược độ chính xác cao và hiệu quả trong việc xác minh thiết kế, phù hợp với các tiêu

chuân kiêm tra và mô phỏng hiện tại.

Trang 11

CHUONG1 GIỚI THIỆU DE TÀI

sử dụng tập lệnh RV32I Các công cụ và phương pháp hiện tại thường yêu cầu sự kết

hợp giữa nhiều hệ thống và môi trường khác nhau, dẫn đến việc phức tạp hóa quy trình phát triển và kiểm tra.

Nhận thay đây là một trong những nhu cầu cấp quan trọng về một hệ thongđánh giá thiết kế đơn giản, hiệu quả va đáng tin cậy cho RISC-V RV32I, chúng tôixác định phát triển một giải pháp tích hợp, sử dụng mô phỏng phần mềm và phầncứng thông qua Python và thư viện cocotb[12] Động lực chính của đề khóa luậnnàylà tạo ra một công cụ có thé tự động hóa quá trình kiểm tra, giảm thiểu sai sót và

mô phỏng trong quá trình thiết kế bộ xử lý

Bằng cách kết hợp mô phỏng phần mềm độc lập phần cứng và mô phỏng phầncứng Verilog Nhờ có hệ thống này, việc phát triển và kiểm tra các thiết kế RISC-Vtrở nên đơn giản và hiệu quả hơn, đồng thời đảm bảo độ chính xác và tin cậy trongquá trình xác minh Việc này không chỉ khuyến khích cộng đồng phát triển kiến trúcRISC-V mà còn góp phần đáng ké nâng cao hiệu quả và tốc độ của các bộ xử lý sử

dụng tập lệnh RV32I.

Trang 12

Bang 1.1 Những dự án dựa trên kiến trúc CPU RISC-V

Tên CPU Nhà phát triển Kiến trúc Sản phẩm

ESP32-C3 Wi-Fi &

ESP32-C3 Espressif Systems | RV32IM

sự phát triển của kiến trúc RISC-V trong nước và cộng đồng RISC-V Trong dự án

này, nhóm tiếp tục phát triển hệ thống xác minh thiết kế RISC-V dựa trên mô hình đã

được thiết kế, bao gồm các thành phần chính như RISC-V RTG, Testbench

Controller, RTL Simulation, Comp-runner và Coverage Monitor.

Trang 13

e Random Testcase Generator (RTG): Đây là phần mềm chủ yếu dùng dé

kiểm tra tính năng của bộ xử lý RTG tạo ra các testcase bằng cách ngẫunhiên lựa chọn các lệnh, thanh ghi, địa chỉ va hợp ngữ dé kiểm tra kiến

trúc tập.

e Testbench Controller: Là khối quản lý việc thực thi các testcase trong cả

mô phỏng Instruction Set Simulator (SS) và RTL Simulation Nó khởi

dau bang việc chạy các testcase được sinh ra bởi RTG trên ISS

e Instruction Set Simulator (ISS): Là một chương trình mô phỏng phần mềm

với kết quả được xem như một mô hình tham chiếu kết quả mong muốn(golden model) dé so sánh kết quả dự kiến với kết quả thực tế từ RTLSimulation ISS mô phỏng hành vi của vi xử lý bằng cách thực hiện các

lệnh và giữ giá trị của các thanh ghi và bộ nhớ Chương trình này được

viết bằng ngôn ngữ python, không phụ thuộc vào thiết kế phần cứng của

người dùng.

e RTL Simulation: Mô phỏng RTL là quá trình kiểm tra chức năng của mô

hình phan cứng bằng các phương pháp như OVM và UVM dé xác minhtính chính xác của thiết kế Kết quả của mô phỏng RTL là sóng mô phỏng,

Trang 14

giá trị của thanh ghi và bộ nhớ trong thiết kế của người dùng, ngoài ra,trong khóa luận này, nhóm trích xuất được các dòng lệnh được thực thi racửa số để người dùng có thé biết được thứ tự các lệnh được thực thi nhưthế nào.

e Comp-runner: Được sử dụng dé so sánh trạng thái của ISS với kết quả từ

RTL để đánh giá tính tương đồng giữa hai mô hình bộ vi xử lý Công cụnày cũng bao gồm module giám sát phạm vi bao phủ dé đo lường và báo

cáo vê mức độ bao phủ các thành phân của mô hình kiêm chứng.

1.2 Các dự án phát trién ở nước ngoài

1.2.1 Sơ lược các dự án nghiên cứu ngoài nước

Rocket Chip Generator [16] là dự án mã nguồn mở dé thiết kế cho CPU V,du án cung cấp các công cụ dé mô phỏng và kiểm tra tính chính xác của thiết kế

RISC-Dự án bắt đầu từ năm 2016 và vẫn đang được phát triển tích cực

e Uudiém:

o Cung cấp hệ thông đánh giá và kiểm tra CPU RISC-V

o_ Hỗ trợ nhiều tính năng nâng cao như bộ nhớ đệm đa cấp, dự đoán nhánh

và thực thi ngoài lệnh.

o Hỗ trợ nhiều kiến trúc RISC-V khác nhau

o Có cộng đồng người dùng và nhà phát triển lớn

e Nhược điểm:

o Quá phức tạp cho dé cho người mới sử dụng.

o Yêu cau trình độ chuyên môn cao trong việc thiết lập môi trường dé có

thê cài đặt môi trường

o_ Chưa hỗ trợ giao diện.

RISC-V Verification Suite [1] là một bộ công cụ mã nguồn mở miễn phí dé

xác minh tính chính xác của các trình biên dich RISC-V va mô phỏng RISC-V Dự

án hiện vẫn đang được phát triển tích cực

Trang 15

o_ Quá phức tạp cho dé cho người mới sử dụng.

o Yêu cầu trình độ chuyên môn cao đề có thé cài đặt môi trường

o Không có giao diện người dùng

1.3 Mục tiêu khóa luận

1.3.1 Mục tiêu khóa luận

Mục tiêu của nhóm là thiết kế hệ thống kiểm tra đánh giá hệ thống RISC-Vdựa trên tập lệnh RV-32I Hệ thống có thé mô phỏng đánh giá thiết kế phần cứngbằng RTL simulation và ISS, sau đó so sánh kết quả giữa RTL Simulation và ISS(golden model) và đưa ra kết quả

1.3.2 Chỉ tiết về mục tiêu của khóa luận

Mục tiêu đề tài nghiên cứu chỉ tiết như sau:

e = Tìm hiểu kiến và nghiên cứu kiến trúc tập lệnh RISC-V Cụ thé hơn là có

thé thực thi 37 lệnh cơ bản của kiến trúc tập lệnh RV32I Qua đó nhóm cóthê phác thảo được thiết kế được hệ thống đánh giá, ngoài ra nhóm cònthiết kế cho bộ mô phỏng RTL Simulation thông qua thư viện Cocotb cótrong Hình 1.1 và phát triển hệ thống đánh giá RISC-V Core Cụ thể hơn

là các loại định dạng: R, I, S, U, J-type, SB được trìnnh bày ở Bảng 1-2

Bảng 1.2 Các lệnh cơ bản của kiến trúc RV321

Định dạng lệnh Lệnh

Trang 16

R ADD, AND, OR, XOR, SLL,

SRL, SLTU, SUB, SRA, SLT,

I SLTI, LBU, SLTIU, LB, XORI,

JAL, ORI, ANDI, ADDI, SLLI, SRLI, SRAI, LW, LH, LHU

e Hỗ trợ đánh giá thiết kế phan cứng cũng như kiểm tra các tệp lệnh

assembly của người dùng.

e _ Có khả năng tính toán độ bao phủ dựa trên cấu hình của người dùng nhằm

hỗ trợ cho việc xác minh chức năng của các tệp đầu vào assembly hoặc bộ

RTG.

e Hệ thống trong khóa luận này có thé thực thi độc lập giữa ISS, RTL

Simulation hoặc chạy toàn bộ đề đánh giá thiết kế phần cứng

1.4 Phương pháp thực hiện khóa luận.

Dé hiện thực hóa mục tiêu mà nhóm đã đặt ra, nhóm đã xây dựng phương pháp

thực hiện bài bản, gôm các bước sau:

Trang 17

“ Khối điều khién chính có chức năng điều khiến, điều phối luồng

dữ liệu ra vào giữa các khối và cung cấp cho các khối khác thực

hiện chức năng của khối đó.

x Khối kiểm tra kết quả có chức năng như tính toán kết quả, so sánh

các lệnh được thực thi giữa ISS và RTL Simulation, đồng thờiđánh giá được thiết kế

Thiết kế chi tiết các thần phan trên với các chức năng cụ thé, đảm bao

được độ chính xác, tôi ưu hóa hiệu quả hoạt động và yêu câu đánh giá.

> _ Triển khai hiện thực khóa luận theo quy trình phát triển theo 5 bước:

Kiểm tra: Thử nghiệm độc lập các khối chương trình để phát hiện và

sửa lỗi, xác nhận chương trình hoạt động chính xác và hiệu quả.

Trién khai: Việt mã, và kiêm tra các khôi chức năng trong thực tê.

> Đánh giá hệ thống:

v Từ kết quả của 2 bộ mô phỏng ISS và RTL, kiểm tra chéo với kết qua

của các bộ mô phỏng tập lệnh khác được công bố trên website của Tổ

chức RISC-V (riscv.org) và RISC-V Interpreter.

Lay kết qua từ phần mềm Vivado dé kiểm tra chéo kết quả mô phỏng

của hai chương trình mô phỏng ISS và RTL Simulation, từ đó xác nhận

kết quả có tính đúng đắn và chính xác trong quá trình mô phòng nhằmđánh giá độ tin cậy của hệ thống

Trang 18

CHUONG 2 TONG HỢP LÝ THUYET

2.1 Giới thiệu về kiến trúc RISC-V

2.1.1 Tổng quan

Kiến trúc RISC-V có thiết kế linh hoạt dạng mô-đun linh hoạt với khả năngthích ứng cao cho các nhà phát triển vi xử lý, cho phép họ tùy chỉnh và thiết kế kiến

trúc phù hợp với nhu câu cụ thê của người dùng.

RV32I: Nền tang cơ bản cho vi xử lý RISC-V RV32I, tập lệnh số nguyên32-bit, RV32I đóng vai trò nền tang cơ bản cho kiến trúc Tập lệnh này bao gồm

đầy đủ các lệnh cần thiết cho một vi xử lý mục đích chung và tương thích với nhiều

phân mêm và trình biên dịch.

Cu thé, RV32I cung cap:

> Lệnh cơ bản: Các phép toán số học va logic đơn giản

> Lệnh điều khiển luồng: Điều hướng chương trình thông qua các nhánh,

vòng lặp và hàm.

> Lệnh truy xuất bộ nhớ: Đọc và ghi dữ liệu từ bộ nhớ

> Lệnh đánh địa chỉ bộ nhớ: Xác định vi trí dữ liệu trong bộ nhớ.

Mở rộng linh hoạt với các tập lệnh bô sung Từ nền tảng RV32I, các nhàphát triển và cộng đồng có thể phát triển và duy trì tập lệnh mở rộng dựa trên

RV32I Từ đó các tập lệnh này tạo nên một sự linh hoạt va nhiều khả năng phát

triển cho các nhà phát triển Các tập lệnh mở rộng nay bao gồm:

Bang 2.1 Bảng các tập lệnh cơ bản và mở rộng của RISC-V

Trang 19

Integer Multiplication

and Division

A Cung cap các toán tử sô nguyên nâng

Atomic Instruction cao.

F Cung cấp các phép toán sé thực và | Cac mo rộng tiêu

Sigle-Precision dấu phay động với độ chính xác đơn chuẩn

Floating-Point cao.

D Cung cấp các phép toán số thực và Double-Precision | đấu phẩy động với độ chính xác kép

Floating-Point trong phép tính

2.1.2 Tập lệnh cơ bản RV32I

Tập lệnh cơ bản RISC-V RV32I đóng vai trò nền tảng cho kiến trúc RISC-V,cung cấp bộ lệnh đầy đủ cho các thiết kế lõi RISC-V đơn giản Hiện nay tập lệnh

RV32I đã được hỗ trợ hầu hết với các phần mềm và trình biên dịch, RV32I có 47

lệnh và được phân chia dựa trên chức năng của từng lệnh Thông qua opcode của

kiến trúc, ta có thé chia nó thành 9 nhóm như trong Bảng 2.2

Bang 2.2 Bảng miêu tả các lệnh của tập lệnh RV32I

Phân loại Opcode Lệnh Chức năng

BEQ, BNE, BLT, BGE, | Thực hiện rẽ nhánh

Rẽ nhánh 110 0011 `

BLTU, BGEU có điêu kiện

0000011 LB, LH, LW, LBU, LHU Truy xuất dữ liệu

Trang 20

Chuyén dữ liệu từ

010 0011 SB,SH,SW

Lưu trữ bộ nhớ tạm thời

010 0111 FSW, FSD vào bộ nhớ chính

ADDI, SLTI, SRLI, SRAI, | Các lệnh thực hiện

001_0011 SLTIU, XORL SLLI, ORI, |các tính toán số

ANDI, học.

, ADD, SUB, XOR, SRL,

Sô học va luận

: SRA, OR, AND, SLL, SLT,

/ 011_0011 SLTU, DIVU, REM,

REMU, MUL, MULH,

MULHSU, MULHU, DIV, 001_0111 AUIPC

AMOOR.W, AMOMIN.W,

SCALL, FRFLAGS, | Truy cập vào các

SBREAK, RDCYCLE, | tính năng của hệ

Nhóm lệnh hệ Iii00¡ii |RDCYCLEH, , FSCSR, thống lõi và thực

Trang 21

nhảy vô điêu kiện

và nhảy liên tiếp

Theo như Bảng 1.2, các lệnh thực thi RV321 được phân thành 6 nhóm chính:

> Nhóm R-Type: Thao tác thực thi các phép tính số học và logic 32bit

giữa ba thanh ghi.

Nhóm I-Type: Thao tác thực thi các phép toán số học và logic 32bit với

một thanh ghi và giá tri tức thoi.

Nhóm S-Type: Luu dir liệu từ thanh ghi vào bộ nhớ.

Nhóm SB-Type: So sánh giá trị của 2 thanh ghi và xác định vi trí của

lệnh tiếp theo.

Nhóm U-Type: Thực hiện thao tác với thanh ghi.

Nhóm UJ-Type: Lưu dit liệu vào thanh ghi và cung cấp địa chỉ được

tính toán từ thanh ghi base và giá tri tức thời.

12

Trang 22

31 30 25 24 21 20 19 15 14 12 11 8 ic 6 0

funct7 rs2 rsl funct3 rd opcode

imm/{11:0] rsl funct3 rd opcode

imm[11:5] rs2 rsl funet3 imm|4:0] opcode imm{12] | imm[10:5] rs2 rsl funct3 | imm[4:1] | imm[11] | opcode

imm[31:12] rd opcode

imm|20] imm[10:1] imm{11] imm/[19:12] rd opcode

RISC-V RV32I sử dung mô hình thanh ghi đơn giản và hiệu quả, bao gồm:

> Thanh ghi PC (Program Counter): La thanh ghi co chức năng lưu giữ dữ liệu địa chỉ

của lệnh đang thực hiện.

> RISC-V có 31 thanh ghi: Mỗi thanh ghi có độ rộng 32bit, có thé dùng dé giữ giá trị

các phép toán hoặc địa chỉ

> Ngoài ra còn có thanh ghi x0: là thanh ghi zero, dù ban có thao tác gì với thanh ghi

này thì nó vẫn luôn giữ giá trị zero, thường được sử dụng làm thanh ghi khởi tạo

nguôn cho trong các phép toán sô học

o_ D(debug): Hỗ trợ gỡ lỗi chương trình.

o_ F(floating point): Hỗ trợ các phép toán số thực

o_ M (privileged): Cung cấp các lệnh đặc quyên cho hệ điều hành

13

Trang 23

©_ S (standard): Tập lệnh cơ bản RV32I.

> Các tập lệnh đang phát triển:

o B (bit manipulation): Cung cấp các lệnh thao tác bit nâng cao.

o J (dynamically translated languages): Hỗ trợ thực thi các ngôn

ngữ được dịch động.

o L (decimal float): Hỗ trợ các phép toán số thực thập phân

o N (user-level interrupts): Hỗ trợ ngắt ở cấp độ người dùng

o P (packed SIMD): Hỗ trợ các phép toán SIMD đóng gói.

o_T (transactional memory): Hỗ trợ bộ nhớ giao dich.

o_ V (vector operations): Hỗ trợ các phép toán vector.

Những tập lệnh mở rộng mang lại nhiều lợi ích và hỗ trợ cho cộng đồng VI

mạch, nhà thiết ké, giúp họ có thể cá nhân hóa kiến trúc RISC-V cho các nhu cầu cụthể, từ đó khiến cho các thiết kế có được hiệu suất và tính linh hoạt

Phân loại | Lệnh Vi dụ Ý nghĩa

BEQ | BEQ x5, x6, 100 | Nếu hai thanh ghi có giá trị bằng nhau,Nhóm thì sẽ nhảy đến PC = PC + Immediate

lệnh rẽ BNE | BNEx5, x6, 100 | Nếu hai thanh ghi có giá trị không bằng

nhánh nhau, thì sẽ nhảy đến PC = PC +

Immediate.

14

Trang 24

BLT BLT x5, x6, 100 Nếu thanh ghi 1 có giá trị nhỏ hơn

thanh ghi 2, thì sẽ nhảy đến PC = PC +

Immediate.

BGE BGE xS, x6, 100 Nếu thanh ghi 1 có giá trị lớn hơn hoặc

bằng thanh ghi 2, thì sẽ nhảy đến PC =

PC + Immediate.

BLTU BLTU x5, x6, 100 Nếu thanh ghi 1 có giá trị nhỏ hon

thanh ghi 2, thì sẽ nhảy đến PC = PC +

Immediate.

BGEU BGEU x5, x6, 100 Nếu thanh ghi 1 có giá trị lớn hơn hoặc

bằng thanh ghi 2, thì sẽ nhảy đến PC =

PC + Immediate.

Bảng 2.4 Các lệnh lay dt liệu từ bộ nhớ vào thanh ghi

Nhom

lệnh nạp

trong thanh ghi va offset lưu ở lệnh,

sau đó đến địa chỉ đó lấy byte kế tiếp

lưu vào thanh ghi.

LH LH x5, 40(x6) Tính địa chi memory với base lưu

trong thanh ghi và offset lưu ở lệnh,

sau đó đến địa chỉ đó lấy half word kếtiếp lưu vào thanh ghi

trong thanh ghi và offset lưu ở lệnh,

15

Trang 25

sau đó đến dia chỉ đó lây word kế tiếp

lưu vào thanh ghi.

LBU LBU x5, 40(x6) Tính địa chi memory với base lưu

trong thanh ghi và offset lưu ở lệnh,

sau đó đến địa chỉ đó lấy byte kế tiếp

lưu vào thanh ghi và sẽ mở rộng bit

dựa vào MSB của số đã nạp, chèn bit

0 vào ở phía bên trái.

LHU LHU x5, 40(x6) Tính địa chỉ memory với base lưu

trong thanh ghi và offset lưu ở lệnh,

sau đó đến địa chỉ đó lẫy half word kếtiếp lưu vào thanh ghi và sẽ mở rộngbit dựa vào MSB của số đã nạp, chèn

bit 0 vào ở phía bên trái.

LUI LUI x5, 40(x6) Load 20-bit [31:20] của số tức thời,

lấy giá trị lưu vào thanh ghi

Bảng 2.5 Các lệnh có chức năng lưu dữ liệu vào bộ nhớ

Phân loại | Lệnh Ví dụ Ý nghĩa

SB SB x5, 40(x6) Tinh dia chi memory với base lưu

trong thanh ghi va offset lưu ở lệnh,

Nhóm sau đó đến địa chỉ đó lấy giá trị trong

lệnh lưu thanh ghi lưu vào byte tiếp theo

SH SH x5, 40(x6) Tinh địa chi memory với base lưu

trong thanh ghi va offset lưu ở lệnh,

16

Trang 26

sau đó đến địa chỉ đó lấy giá trị trong

thanh ghi lưu vào half word tiếp theo.

trong thanh ghi và offset lưu ở lệnh,

sau đó đến địa chỉ đó lấy giá trị trongthanh ghi lưu vào word tiếp theo.

ADDI ADDI x5, x6, 20 Cộng giá thanh ghi với một số tức

thời, kết quả lưu vào thanh ghi đích

SLTI SLTI x5, x6, 20 Nếu giá tri của thanh ghi rs2 lớn hon

giá trị của số tức thời thì thiết lập chothanh ghi đích bằng 1 Hoặc ngượclại Lệnh này quan tâm tới bit dấu củathanh ghi nguồn

SLTIU SLTIU x5, x6, 20 Nếu giá tri của thanh ghi rs2 lớn hơn

giá trị của số tức thời thì thiết lập chothanh ghi đích bang 1 Hoặc ngược

lại Lệnh này không quan tâm tới bit

XORI XORI x5, x6, 20 Thực hiện phép tính logic XOR giữa

thanh ghi nguồn và số tức thời, sau đóghi kết quả vào thanh ghi đích

ORI ORI x5, xó, 20 Lay từng bit tương ứng của thanh ghi

nguồn và số tức thời, thực hiện phép

OR logic trên từng cặp bit và ghi kết

17

Trang 27

quả vào từng bit tương ứng của thanh

ghi đích.

ANDI ANDI x5, x6, 20 Phép toán logic AND giữa thanh ghi

nguồn và số tức thời, sau đó ghi kết

quả vào thanh ghi đích

SLHI SLLI x5, x6, 20 Dịch trái giá trị của thanh ghi nguồn

bằng n bit, với bit ở đây là giá trị của

số tức thời, sau đó ghi kết quả vào

thanh ghi đích

SRLI SRLI x7, x8, 20 Shift gia tri của thanh ghi sang phải n

bit, với n là một giá tri tức thời, kết

quả lưu trong thanh ghi.

AUIPC AUIPC x5,

0x12345

Load 20-bit [31:20] của số tức thờicông với giá trị của PC, kết quả lưu

vào thanh ghi.

SRAI SRAI x7, x8, 20 Dich phải giá trị của thanh ghi nguồn

băng n bit, với bit ở đây là giá trị của

số tức thời, sau đó ghi kết quả vào

ADD ADD x7, x8, x9 Thực hiện phép cộng số học giữa nội

dung của hai thanh ghi và lưu kết quả

vào thanh ghi đích.

18

Trang 28

học và

luận lý

dung của hai thanh ghi và lưu kết quả

vào thanh ghi đích.

SLT SLT x7, x8, x9 Nếu giá trị thanh ghi thứ nhất lớn

hơn giá trị thanh ghi thứ hai thì kếtquả lưu vào thanh ghi là 1 Nếu giá

trị thanh ghi thứ nhất nhỏ hơn giá trị thanh ghi thứ hai thì kết quả lưu vào

thanh ghi là 0.

SLTU SLTU x9, x10, x11 Nếu giá trị thanh ghi thứ nhất lớn

hơn giá trị thanh ghi thứ hai thì kếtquả lưu vào thanh ghi là 1 Nếu giátrị thanh ghi thứ nhất nhỏ hơn giá trịthanh ghi thứ hai thì lưu kết quả vào

thanh ghi là 0.

XOR XOR x9, x10, x11 XOR giá trị thanh ghi thứ nhất va giá

trị thanh ghi thứ hai, kết quả lưu vào

thanh ghi.

SRL SRL x9, x10, x11 Shift giá trị của thanh ghi thứ nhất

sang phải n bit, với n là một giá tri

thanh ghi thứ hai, kết quả lưu trong

thanh ghi.

SRA SRA x9, x10, x11 Shift giá trị của thanh ghi thứ nhất

sang phải n bit, với n là một giá tri

thanh ghi thứ hai, kết quả lưu trong

thanh ghi và sẽ mở rộng bit dựa vào

MSB của số đã shift

19

Trang 29

OR OR x9, x10, x11 OR giá trị thanh ghi thứ nhất và giá

trị thanh ghi thứ hai, kết quả lưu vào

thanh ghi.

AND | AND x9, xI0,xI1 | AND giá trị thanh ghi thứ nhất và giá

trị thanh ghi thứ hai, kết quả lưu vào

thanh ghi.

Bảng 2.8 Các lệnh có chức năng nhảy.

Phân loại | Lệnh Ví dụ Ý nghĩa

Lưu giá trị địa chỉ hiện tại vào thanh

ghi đích, sau đó nhảy đến địa chỉ có

JAL JAL x1, 100 NX, ¬¬ ;

gia tri bang gia tri dia chi hién tai

cộng với giá tri của sô tức thời.

Nhóm

lệnh nhảy Lưu giá trị địa chỉ hiện tại vào thanh

ghi đích, sau đó nhảy đến địa chỉ có

JALR | JALR x1, 100(x5) : Ct, ¬¬ ;

gia tri bang gia tri cua thanh ghi

nguồn cộng với giá trị của số tức thời

2.2 Hệ thống xác minh chức năng bộ xử lý

Theo như Hình 1.1 đã trình bày trước đó ở trang 3, hệ thống xác minh chức

năng bao gồm 5 thành phần chính: Random Test Generator, Testbench Controller,

Comp-runner, Coverage Monitor và Instruction Set Simulator.Chi tiết của các thànhphần này sẽ được trình bày trong các phần tiếp theo tại mục 2.2.1, 2.2.2, 2.2.3,

2.2.4,2.2.5 và 2.2.6.

Qua đó, hệ thống xác minh chức năng với 5 khối thành phần được kết nối chặtchẽ đóng vai trò quan trọng trong việc đảm bảo tính chính xác và hiệu quả cho thiết

20

Trang 30

bị Việc hiểu rõ chức năng và hoạt động của từng khối thành phan là nền tang dé đánhgiá hiệu quả của hệ thống và nâng cao chất lượng sản phẩm.

2.2.1 Random Test Generator

Random Test Generator (RTG), hay còn gọi là Instruction Stream Generator

(ISG), dong vai tro then chét trong việc xác minh chức năng của bộ vi xử lý Nóhoạt động như một "bộ não" thông minh, tạo ra các trường hợp kiểm tra ngẫu nhiên(testcases) để đánh giá hiệu quả hoạt động của bộ xử lý

Vai trò chính của RTG là tạo testcase ngẫu nhiên: RTG sử dụng thuật toán

ngẫu nhiên dé lựa chọn các nhóm lệnh cùng với các thanh ghi, bộ nhớ, địa chỉ và

dữ liệu, tạo ra các chương trình hợp ngữ đa dạng và phong phú.

2.2.2 Testbench Controller.

Testbench Controller: Trung tâm điều phối hệ thống Đóng vai trò trung tâm

điều phối trong hệ thống xác minh chức năng, gitr chức năng quan trọng sau:

> Nạp testcase: nhận testcase được tạo ra bởi RTG hoặc đầu vào từ người

dùng.

> Đưa testcase đến hai bộ mô phỏng

> Điều khiển luồng thực thi của hệ thống

> Thu thập kết quả

2.2.3 Comp-runner.

Comp-runner đóng vai trò quan trọng trong việc so sánh trạng thái của

Instruction Set Simulator (ISS) và mô hình RTL (Register Transfer Level) để xác

định sự đồng nhất trong hoạt động của hai mô hình bộ vi xử lý này.

Một số ví dụ về chức năng của khối như sau:

e Tính toán số lượng lần xuất hiện của mỗi lệnh, định dạng lệnh

e _ Tính toán số lượng lần xuất hiện của mỗi thanh ghi

e D6 bao phủ của nhánh dé đo các nhánh có điều kiện được thực hiện

e 6 bao phủ trong việc truy xuất bộ nhớ

21

Trang 31

Tuy nhiên, do hai mô hình hoạt động ở các mức độ trừu tượng khác nhau, kếtquả thu được có thé có tạo ra các kết quả khác nhau do hiệu ứng pipeline Thôngthường, các hệ thống mô phỏng ISS sẽ chỉ có thé mô phỏng tuần tự, do đó chỉ có môhình RTL thực hiện được các tình huống xử lý pipeline.

2.2.4 Coverage Monitor

Coverage Monitor Có chức nang nhận kêt qua từ Comp Runner va đưa ra các

đánh giá về thiệt kê, ngoài ra, khôi còn có chức nang tạo cửa sô và đưa thông tin cho

người dung thay vì người dùng phải đọc trên các cửa số làm việc của hệ thống

2.2.5 Instruction Set Simulator

ISS (Instruction Set Simulation) tao ra kết quả từ quá trình mô phỏng dé runner so sánh với mô hình RTL ISS — Chương trình mô phỏng tập lệnh độc lập phancứng là một chương trình mô phỏng Chương trình được viết bằng python, một ngôn

comp-ngữ lập trình thân thiện với người dùng.

Chức năng của khối ISS như sau:

e M6 phỏng mã máy của một thiết bi phan cứng khác hoặc toàn bộ máy tính

để có khả năng tương thích cao Một trình mô phỏng hệ thống đầy đủthường bao gồm một trình mô phỏng tập lệnh

e Theo dõi và thực thi lệnh mã máy nhằm kiểm tra

e (C6 khả năng tính toán độ bao phủ dựa trên cấu hình của người dùng

2.2.6 RTL Simulation

RTL Simulation tạo ra kết quả từ quá trình mô phỏng dé comp-runner so sánh

với mô hình ISS RTL Simulation — Chương trình mô phỏng phan cứng bằng cách sử

dụng thiết kế phần cứng và mô phỏng trên môi trường python thông qua thư viện

cocotb.

RTL Simulation dùng để như sau:

e Mô phỏng thiết kế phần cứng của người dùng bằng ngôn ngữ python

với tôc độ nhanh, đơn giản.

22

Trang 32

Theo dõi và kiểm soát được các lệnh được thực thi thông qua tệp nhật

ký.

Có khả năng tự động tính toán độ bao phủ dựa trên câu hình của người dùng.

23

Trang 33

CHƯƠNG 3 Tổng quan thiết kế hệ thống

Hệ thống đánh giá sẽ được nhóm trình bày chỉ tiết trong chương này, cụ thểnhóm sẽ trình bày tổng quan về thiết kế, sau đó là chỉ tiết cho từng khối có trong hệthống này Nhóm sử dụng phần mềm Visual Studio, thư viện Cocotb và môi trườngUbuntu dé thực hiện khóa luận Mục 3.1, Mục 3.2 lần lượt trình bày thiết kế hệ thống

và thiết kế chỉ tiết của RTL Simulation

3.1 Tổng quan về hệ thống

Khóa luận này sẽ tái sử dụng lại đề tài Nghiên cứu thiết kế bộ mô phỏng tậplệnh RISC-V và thiết kế thành hệ thống đánh giá kiểm tra bộ xử lý RISC-V Core.Hình 3.1 trình bày kiến trúc hệ thống đề xuất của nhóm

24

Ngày đăng: 08/12/2024, 15:47