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 thiết kế bộ mô phỏng tập lệnh RISC-V

51 0 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

Tiêu đề Nghiên cứu thiết kế bộ mô phỏng tập lệnh RISC-V
Tác giả Nguyễn Văn Hạnh
Người hướng dẫn ThS. Phạm Minh Quân, KS. Trần Đại Dương
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 51
Dung lượng 12,29 MB

Nội dung

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áclệnh, thanh ghi, địa chỉ và dữ

Trang 1

ĐẠ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

Trang 2

ĐẠ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

Trang 3

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.

Trang 4

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ìnhthự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ê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 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

Trang 5

MỤC LỤC

CHUONG I GIỚI THIỆU DE TÀI

1.1 Thơng tin tổng quan của đề tài -22¿-22222+c2222vvceEEEEvvrtrrkkrrrsrrkrcree 21.2 Một số nghiên cứu liên quan

1.2.1 Tình hình nghiên cứu ngồi nước -.-. ¿ «+ =+=+++++ 4

1.3 Mục tiêu để tài - 22222222212 222111 2222111222111 222012 2.2 c1 re 5

1.3.1 Mục tiêu tổng quan c-¿+222++ccsccrxererrkserrrrrreccrrrveeÕ13.2 Mục tiêu chỉ tiết 222cc 6

1.4 Phương pháp nghiên CỨU ¿- ee + ©+++E2££E£EE£k£keEEEErkrkrkekerkrkrkekrke 6

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT -2222¿£2222V2222++t2EEEEEEvrrrrtrrrrrrrrree §2.1 Sơ lược về kiến trúc tập lệnh RISC-V -.¿¿522++z+222vvvretcvvvrrrrrrvee §

2.2.2 Testbench ContrỌÏT- - ¿6 2 +22 33218333331 3£E£#£eEEexeeeeeeseeeseex 7

Trang 6

3.2.1 Assembler -c th HH re 21 3.2.2 Configuration file.

3.2.3 Instruction Set SimuÏafOT ees S*S*£‡+sEkekeerrsrrrrkekek 23

CHƯƠNG 4 MO PHONG VÀ ĐÁNH GIA KET QUA

4.1 Quy trình mô phỏng eeneeeseseseeeeeneseseseeseeeseseseeeesessseseeeeneee 26

4.2 So sánh kết quả

CHƯƠNG 5 KET LUẬN VÀ HƯỚNG PHAT TRIÊN - 415.1 Kết luận

5.2 Hướng phát triền -+++22+++++2E++++tEEEE+rtrtEEEvrtttrrkrrrrrrkrrrrrrkev 41

Trang 7

DANH MỤC HÌNH

Hình 1.1: Hệ thống xác minh chức năng bộ xử lý - s-.seeersereeeeÖ

Hình 3.1: Thiết kế kiến trúc hệ thống s eerreeeerrsrrereereesee.ee 20Hình 3.2: So đồ thuật toán của Assembler we 22

Hình 3.3: Ví dụ về một chương trình hợp ngữ s-eeeeeeeeeeeee 22

Hình 3.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 -. .st.eteereeeerreeeereereereeeeee 24Hình 4.1: Quy trình thực hiện của ISS -ccsecseseeerieereriiirrrrrirrririeisee 20)

Hình 4.2: Tệp chương trình thực thi wissen 2 Hình 4.3: Thực thi từng dòng lệnh mã máy - e-c -c5cvscvvsevsreerrvevvveeaerer 29

Hình 4.4: Kết quả của tính toán độ bao phủ coverage - . ee 30Hình 4.5: Thể hiện ví dụ giá trị lưu trong bộ nhớ wee 3

Hình 4.6: Thể hiện ví dụ về giá trị của thanh ghi .-. -.se.eeee.eeee 3 2

.33

.33

Hình 4.7: Ví dụ về chạy Debug với thiết lập breakpoint

Hình 4.8: Ví dụ chạy chế độ Debug với step-by-step

Hình 4.9: Tệp đầu vào đề cho bộ mô phỏng ISS và các nhóm phần cứng 36

Hình 4.10: Kết quả giá trị thanh ghi trong tệp tin sau khi chạy ISS 37Hình 4.11: Kết quả giá trị thanh ghi của nhóm phần cứng multi-thread sau khi mô

Trang 8

DANH MUC BANG

Những CPU RISC-V tiêu biểu

Các lệnh cơ bản của bản thuộc kiến trúc tập lệnh RV321

Bảng các tập lệnh cơ sở và mở rộng của RISC-V Phân loại các nhóm lệnh của tập lệnh RV321 -c :-e-ccce+

Cấu trúc các định dạng lệnh RV321 s.scrrestrrrerrrre

Chức năng của nhóm lệnh rẽ nhánh -.‹esese«ecccrvevvvseversrrrrr

Chức năng của nhóm lệnh nạp -c-c-ccc-cccceececeeeeeceeecceeccceeeee

Chức năng của nhóm lệnh lưu

Chức năng của nhóm lệnh số học và luận lý -e

Chức năng của nhóm lệnh số học và luận lý 2 - -.-.-eChức năng của nhóm lệnh số học và luận l//5À, Hee

Nội dung của configuration file

So sánh với 2 bộ mô phỏng khác

Trang 9

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

Trang 10

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ựatrên những nguyên tắc của kiến trúc tập lệnh RISC (được viết tắt từ ReducedInstruction Set Computer) Hiện RISC-V là bộ kién tric tập lệnh mới (chi vừa đượcphá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 standardcollaboration) 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 vicủ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, ISScò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].

Trang 11

CHƯƠNG1 GIỚI THIỆU DE TÀI

1.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ựchiệ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 quantrong 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 Bảng 1.1 trìnhbày một số sản phẩm CPU RISC-V tiêu biéu

Bang 1.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

Trang 12

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ệnhRISC-V ở nước ta cũng như cộng đồng RISC-V Nghiên cứu thiết kế RISC-V ISStrong 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-VRTG, Testbench Controller, RTL Simulation, Comp-runner và Coverage Monitor.

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áclệnh, thanh ghi, địa chỉ và dữ liệu.

Testbench Controller: là khói điều khiển ISS và RTL simulation, bat đầubằ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ếuvà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

Trang 13

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ềuphươ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à chokết quả giống như kết quả mong đợi

Comp-runner: mục tiêu dùng để so sánh trạng thái của ISS với mô hình

RTL nhằm xác định xem hai mô hình của bộ vi xử lý có hoạt động giống

nhau hay không Ngoài ra, do hai mô hình chạy với cách thức hoạt động

khác nhau về thời gian nên chúng không được đồng bộ hóa hoàn hảo với

nhau Việc triển khai bộ điều khiển mô phỏng Comp-runner cũng bao gồmmột module giám sát độ bao phủ dé đo lường phạm vi xác minh và tạo

thống kê về độ bao phủ (coverage)

Một số nghiên cứu liên quan

1.2.1 Tình hình nghiên cứu ngoài nước

Năm 2018, S.Karandikar công bố FireSim là một bộ mô phỏng tập lệnh cho

phép mô tả chính xác phần cứng theo chu kỳ bằng việc kết hợp việc tăng tốc dựa trênFPGA và nền tảng điện toán đám mây [3] với các ưu nhược điểm sau:

Trang 14

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

Victor Miguel de Morais Costa đã phát triển một bộ mô phỏng tập lệnh

RISC-V là RISC-Vulcan dành cho giáo dục trên nền web RISC-Vulcan hỗ trợ các tập lệnh mở rộng A,

F, M vaI [4] Sau đây là các ưu nhược điểm của Vulcan:

phỏng kiến trúc [5] Qua quá trình tìm hiểu HybridVerifier có những ưu nhược điểm

sau:

se Uudiém:

o Phát hiện lỗi tiềm an cũng như những lỗi trước đó từ đầu ra của bộ mô

phỏng bao gồm: vị trí lỗi và các nguyên nhân có thê xảy ra

o Chạy trên các kiến trúc khác nhau

Mục tiêu của đề tài nghiên cứu là bộ mô phỏng có thé thực thi các chương

trình hợp ngữ theo tập lệnh kiến trúc RISC-V Bộ mô phỏng (được gọi là ISS) cho

phép tính toán độ bao phủ dựa trên tiêu chí của người dùng đề ra

Trang 15

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

e _ Tìm hiểu kiến trúc tập lệnh RISC-V Cu thé, thiết kế bộ mô phỏng có thé

thực thi 39 lệnh (gồm: 37 lệnh cơ bản của kiến trúc tập lệnh RISC-V và 2

lệnh LR.W và SC.W) Từ đó nghiên cứu thiết kế bộ mô phỏng tập lệnh

RISC-V Cụ thể hơn là các loại định dạng: R-type, I-type, S-type, UJ-type,

U-type, SB-type được trìnnh bày ở Bảng 1.2

Bảng 1.2: Các lệnh cơ bản của bản thuộc kiến trúc tập lệnh RV32I

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

R-type ADD, AND, OR, XOR, SLL,

SRL, SLTU, SUB, SRA, SLT,

LR.W, SW.C

I-type ADDI, SLTI, SLTIU, XORI,

ORI, ANDI, SLLI, SRLI, SRAI,

LB, LH, LW, LBU, LHU

S-type SB, SH, SW SB-type BEQ, BNE, BLT, BGE, BLTU,

BGEU

UJ-type JAL, JALR

U-type AUIPC, LUI

e H6 trợ thực thi từng lệnh có thé phát hiện được lỗi sai

© C6 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 RISC-V RTG

© Bộ mô phỏng độc lập phần cứng

1.4 Phương pháp nghiên cứu

Từ những mục tiêu tổng quát cũng như chỉ tiết nhóm đã thảo luận và đưa ra

phương pháp nghiên cứu như sau:

Trang 16

e Phuong pháp nghiên cứu tài liệu:

o Tìm hiểu lý thuyết về kiến trúc tập lệnh RISC-V

o Quá trình thực thi các lệnh của bộ xử lý.

e Phuong pháp thực thiện: sử dụng quy trình phát triển phần mềm 5 bước:

o Phân tích yêu cầu

o So sánh kết quả với 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 [6] và RISC-V Interpreter [2]

o So sánh với kết quả mô phỏng của các nhóm phan cứng khác đã được

chứng minh tinh đúng đắn nhằm đánh giá khả năng độc lập phần cứng

của ISS Các đề tài khóa luận trước đó dùng dé so sánh là: Nghiên cứuthiết kế bộ vi xử lý RISC-V theo vi kiến trúc multithread [7] Nghiên cứuthiết kế bộ vi xử lý da lõi dựa trên kiến trúc tập lệnh RISC-V [8] Thiết

kế bộ xử lý kiến trúc RISC-V ho trợ chế độ giám sát [9]

Trang 17

CHƯƠNG 2 CƠ SỞ LÝ THUYET

2.1 Sơ lược về kiến trúc tập lệnh RISC-V

2.1.1 Tổng quátKiến trúc tập lệnh RISC-V được thiết kế theo kiểu module nhằm cho phép cácnhà phát triển vi xử lý RISC-V có thể linh hoạt lựa chọn được kiến trúc phù hợp nhấtcho ứng dụng của họ RV32I là kiến trúc tập lệnh cơ bản nhất Với kiến trúc tập lệnh

cơ sở này, vi xử lý RISC-V đã có tất cả những lệnh cơ bản, những lệnh điều khiển

ludng bộ thanh ghi, bộ nhớ, cách đánh địa chỉ bộ nhớ, đủ đề thực hiện một vi xử lýđơn giản dạng tổng quát hỗ trợ đầy đủ cho phần mềm và trình biên dịch

Từ kiến trúc tập lệnh cơ bản này, nhà phát triển vi xử lý RISC-V có thể linhhoạt chọn kết hợp với một hay nhiều tập lệnh mở rộng tùy chọn khác cho các ứng

dụng mục tiêu Tập lệnh mở rộng có thể là tập lệnh mở rộng chuẩn của RISC-V hoặc

tập lệnh mở rộng phi tiêu chuẩn của nhà phát triển vi xử lý RISC-V cho một sản phẩmmục tiêu nhất định Nhằm dé hỗ trợ phát trién phần mềm tổng quát hơn, một tập hợp

các tập lệnh mở rộng được trình bày trong Bảng 2.1 bao gồm: phép nhân chia sốnguyên (M), các toán tử đơn nguyên (A), phép toán với số thực dấu phay động độ

chính xác đơn (F), phép toán với số thực dau chấm động độ chính xác kép (D) Mộtkiến trúc tập lệnh hỗ trợ tập lệnh co ban I cùng với tat cả các tập lệnh vừa nêu (M, A,

F, D) gọi là kiến trúc tập lệnh đa dụng, viết tắt là tập G, ví dụ như RV32G Ngoài ra,RISC-V còn cung cấp một tập lệnh mở rộng tiêu chuẩn hữu ích nữa là tập lệnh nén

để giảm kích thước của mã máy (C) Cùng các lệnh mở rộng là những tập lệnh cơ bản

của RISC-V.

Bang 2.1: Bang các tập lệnh cơ sở và mở rộng của RISC-V

Tên viết tắt Tên đầy du Chú thích

RV32I Base Integer Instruction Set, 32-bit RV32E Base Integer Instruction Set (embedded) | 4 tập lệnh cơ bản RV64I Base Integer Instruction Set, 64-bit

Trang 18

RVI28I Base Integer Instruction Set, 128-bit

M Integer Multiplication and Division

A Atomic Instruction

F Sigle-Precision Floating-Point Cac mo rong tiéu

D Double-Precision Floating-Point chuan

Q Quad-Precision Floating-Point

L Decimal Floating-Point

2.1.2 Kiến trúc tập lệnh cơ bản

Kiến trúc tập cơ sở đầu tiên và cơ bản nhất được RISC-V định nghĩa là kiến

trúc tập lệnh RV32I, bao gồm 47 lệnh có thể được phân chia dựa trên chức năng và

opcode thành 9 nhóm như trong Bảng 2.2.

Bảng 2.2: Phân loại các nhóm lệnh của tập lệnh RV32I Phân loại Opcode Lệnh

Nhóm lệnh rẽ nhánh | 11_000_11 BEQ, BNE, BLT, BGE, BLTU, BGEU

00_000_11 LB, LH, LW, LBU, LHU

Nhóm lệnh nạp 00_001_11 FLW, FLD

01_101_11 LUI

01_000_11 SB, SH, SW Nhóm lệnh lưu

01_001_11 FSW, FSD

ADDI, SLTI, SLTIU, XORI, ORI, ANDI,

00_100_11

SLLI, SRLI, SRAI

ADD, SUB, SLL, SLT, SLTU, XOR, Nhóm lệnh sô học va

SRL, SRA, OR, AND, MUL, MULH,

luận lý 01_100_11

MULHSU, MULHU, DIV, DIVU, REM, REMU

00_101_11 AUIPC

Trang 19

Nhóm lệnh nhảy 1101111 JAL, JALR

Như trình bày tại Bang 1.2, các lệnh thực thi RV32I được chia thành 6 nhóm: R-TYPE, I-TYPE, S-TYPE, SB-TYPE, U-TYPE, UJ-TYPE Trong đó các định dang

R, L, S, U là bốn nhóm chính, hai nhóm SB-TYPE va UJ-TYPE giống hoàn toàn

S-TYPE và U-S-TYPE ngoài trừ khác nhau về phần toán hạng số tức thời

Bảng 2.3 trình bày chỉ tiết cấu trúc của định dạng lệnh

imm imm | imm

imm[10:5] rs2, tsl funct3 opcode Ss

(1) [4:1] | [0]

10

Trang 20

imm imm | imm

imm|{ 10:5] TS2 ts funct3 opcode SB

Về thanh ghi, RV32I có một thanh ghi PC và 32 thanh ghi trong đó một thanh

ghi x0 luôn mang giá trị là 0, cộng với 31 thanh ghi da dụng x1-x31 Tat cả đều có

độ rộng 32-bit Tương tự như kiến trúc tập lệnh RISC, RV32I cũng là kiến trúcLOAD-STORE Điều đó có nghĩa là chỉ có các lệnh nạp và lưu truy cập vào bộ nhớ,

còn lại các phép toán sé học đều chỉ sử dụng các thanh ghi

2.1.3 Kiến trúc tập lệnh mở rộngNhư danh sách các kiến trúc tập lệnh cơ bản và mở rộng của RISC-V đề cập

tai Bảng 2.1, RISC-V định nghĩa rất nhiều tùy chọn tập lệnh mở rộng Trong số đó,một số đã hoàn thiện và đặc tả kỹ thuật, còn lại vẫn còn đang phát triển

Những tập lệnh mở rộng đang được phát triển và sẽ có sẵn trong tương lai gần

là tập L (decimal float), B (bit manipulation), J (dynamically translated languages),

T (transactional memory), P (packed SIMD), V (vector operations), N (user-level

interrupts).

2.1.4 RISC-V 321

Trong khóa luận này, nhóm sẽ sử dung kiến trúc tập lệnh RISC-V 321 (viết tắt

là RV32I) là một tập lệnh con của RISC-V ISA Chức năng, ý nghĩa va ví dụ của

nhóm lệnh rẽ nhánh được trình bày tại Bảng 2.4 Tiếp theo là nhóm lệnh nạp tại Bảng2.5 Nhóm lệnh lưu tại Bảng 2.6 Nhóm lệnh số học và luận lý được trình bày tại Bảng

2.8 và Bảng 2.9 Cuối cùng là nhóm lệnh nhảy được trình bày tại Bảng 2.10

ll

Trang 21

Bảng 2.4: Chức năng của nhóm lệnh rẽ nhánh

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

BEQ | BEQ x5, x6, 100 | Nếu hai thanh ghi có giá trị bằng nhau,

thì sẽ nhảy đến PC = PC + Immediate

BNE BNE x5, x6, I00_ | Nếu hai thanh ghi có giá trị không bằng

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

Immediate.

Nhom BLT BLT x5, x6, 100 Nếu thanh ghi 1 có gid tri nhỏ hơn

lệnh rẽ thanh ghi 2, thì sẽ nhảy đên PC = PC +

nhánh Immediate.

BGE | BGEx5, x6, I00 | Nêu thanh ghi 1 có giá tri 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á tri 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 hon hoặc

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

PC + Immediate.

Bảng 2.5: Chức năng của nhóm lệnh nạp

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

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

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

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

lệnh nạp lưu vào thanh ghi.

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

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

12

Trang 22

sau đó đến địa chỉ đó lấy half word kế

tiếp lưu vào thanh ghi

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

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

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

lưu vào thanh ghi.

LBU LBU 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 byte kế tiếplư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,

kết quả lưu vào thanh ghi

Bảng 2.6: Chức năng c ủa nhóm lệnh lưu

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

Nhóm

lệnh lưu

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

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

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

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

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

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

13

Trang 23

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

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

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

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

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

Bảng 2.7: Chức năng của nhóm lệnh số học và luận lý 1

Phân loại Lệnh Ví dụ Y nghia

Nhom

lệnh số

học và

luận lý

ADDI ADDI x5, x6, 20 Cộng thanh ghi với giá trị tức thời, kết

quả lưu vào thanh ghi.

SLTI SLTI x5, x6, 20 Nếu giá trị thanh ghi lớn hơn giá trị

tức thời thì kết quả lưu vào thanh ghi

là 1 Nếu giá trị thanh ghi nhỏ hơn giá

trị tức thời thì kết quả lưu vào thanh

ghỉ là 0.

SLTIU SLTIU x5, x6, 20 Nếu giá trị thanh ghi lớn hơn giá trị

tức thời thì kết quả lưu vào thanh ghi

là 1 Nếu giá trị thanh ghi nhỏ hơn giatrị tức thời thì kết quả lưu vào thanh

ghỉ 0.

XORI XORI x5, x6, 20 XOR thanh ghi với giá trị tire thời, kết

quả lưu vào thanh ghi.

ORI ORI x5, x6, 20 OR thanh ghi với giá trị tức thời, kết

quả lưu vào thanh ghi.

ANDI ANDI x5, x6, 20 AND thanh ghi với giá trị tức thời, kết

quả lưu vào thanh ghi.

14

Trang 24

SLLI SLLI x5, x6, 20 Shift giá tri của thanh ghi sang trái n

bít, với n là một giá trị tức thời, kết

quả lưu trong thanh ghi.

Bảng 2.8: Chức năng của nhóm lệnh số học và luận lý 2

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

Nhóm

lệnh số

học và

luận lý

SRLI SRLI x7, x8, 20 Shift gia tri cua thanh ghi sang phai

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ời

công với giá trị của PC, kết quả lưuvào thanh ghi.

SRAI SRAI x7, x8, 20 Shift giá trị của thanh ghi sang phải

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

quả lưu trong thanh ghi và sẽ mở

rộng bít dựa vào MSB của số đã

shift.

ADD ADD x7, x8, x9 Cộng giá trị thanh ghi thứ nhất và giá

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

thanh ghi.

SUB SUB x7, x8, x9 Trừ giá trị thanh ghi thứ nhất va giá

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

thanh ghi.

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

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

15

Trang 25

Bảng 2.9: Chức năng của nhóm lệnh số học và luận lý 3

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

Nhóm

lệnh số

học và

luận lý

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ết

quả 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àothanh ghi là 0.

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

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

thanh ghi.

SRL SRL x9, x10, x11 Shift gid tri cua thanh ghi thir nhat

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

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

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

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

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

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

thanh ghi.

16

Ngày đăng: 23/10/2024, 01:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN