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: Bộ phát sinh chương trình kiểm tra ngẫu nhiên cho thiết kế RISC-V

66 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

Tiêu đề Bộ phát sinh chương trình kiểm tra ngẫu nhiên cho thiết kế RISC-V
Tác giả Trần Thị Lan Trinh
Người hướng dẫn THS. Hồ Ngọc Diễm
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 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 66
Dung lượng 20,69 MB

Nội dung

Tép thử nghiệm là những chương trình hợp ngữ với những chuỗi lệnh có nghĩa dùng để kiểm tra tính đúng đắn của bộ vi xử lý cho thiết RISC-V và là chương trình hợp ngữ có những chuỗi lệnh

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

TRAN THI LAN TRINH

KHOA LUAN TOT NGHIEP

BO PHAT SINH CHUONG TRINH KIEM TRA NGAU

NHIEN CHO THIET KE RISC-V

RISC-V RANDOM TEST GENERATOR

KY SƯ NGANH KY THUAT MAY TÍNH

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

TRAN THI LAN TRINH - 17521165

KHOA LUAN TOT NGHIEP

BO PHAT SINH CHUONG TRINH KIEM TRA NGAU

NHIEN CHO THIET KE RISC-V

RISC-V RANDOM TEST GENERATOR

KY SƯ KỸ THUAT MAY TÍNH

GIANG VIEN HUONG DAN

THS HO NGOC DIEM

TP HO CHi MINH, 2021

Trang 3

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ố 466/QD-DHCNTT

ngày 23 tháng Ø7 năm 2021 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LOI CAM ON

Để hoàn thành được khóa luận tốt nghiệp này, lời đầu tiên em xin chânthành gửi lời cảm ơn đến 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 nói chung và quý thầy cô Khoa Kỹ thuật

Máy tính nói riêng đã truyền đạt kiến thức và những kinh nghiệm quý báu cho emtrong suốt thời gian học tập vừa qua

Đặc biệt, em xin chân thành cảm ơn ThS Hồ Ngọc Diễm và KS Trần ĐạiDương đã luôn quan tâm giúp đỡ, động viên và tận tình hướng dẫn, cung cấp cho

em nhiều kiến thức chuyên môn quý báu để em có thé hoàn thành khóa luận mộtcách tốt nhất

Bên cạnh đó, em muốn gửi lời cảm ơn đến sự giúp đỡ của anh chị, bạn bè

cùng với gia đình đã luôn động viên, khích lệ tỉnh thần và tạo điều kiện cho emtrong suốt quá trình học tập cũng như thực hiện đề tài

Với điều kiện và vốn kiến thức cùng kinh nghiệp vẫn còn hạn chế vì vậy

khóa luận không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đónggóp ý kiến, những nhận xét và phê bình của quý thầy cô để nâng cao kỹ năng,kiến thức của bản thân nhằm phát trién trong tương lai

Một lần nữa em xin chân thành cảm ơn!

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

Sinh viên thực hiện

Trần Thị Lan Trinh

Trang 5

MỤC LỤC

Chương 1 GIGI THIỆU DE TÀI

1.1 Giới thiệu để tài -2222cccc222222Ev crrEEEEEEEErrrrrrrrrrrtrrrrrrrrrrrrrrrrrrree1.2 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 - +«+++c+ce++x+xz++ 4

1.2.2 _ Tình hình nghiên cứu trong nước.

1.3 Mute co na ẽ 61.4 Bố cục Khĩa luận 2¿-22222+++22E2++222E111222231112221112 222211221221 ce 7

Chương2 CƠ SỞ LÝ THUYẾT +2¿+22E+++tS22EEE+rtEEESzrrtrrrrcree §

2.1 Sơ lược về kiến trúc tập lệnh RISC-V 2¿¿+222+2ct222Exerrtrrkerrrrrrvee §2.1.1 Tổng qútết £ me VỆ , Ả coi 8

2.1.2 Kiến trúc tập lệnh cơ bản ccc+222cvvvcccerrrrrrex 9

2.1.3 Kiến trúc tập lệnh mở rộng ¿-¿- ¿5 +52 +z£+£sx+x+zzesecexsee 12

2.1.4 RISC-V321 222 E22 2E cEtrrrrve 13

2.2 Hệ thống xác minh chức năng bộ xử lý -:¿¿:vvccczz+rr+x 19

2.2.1 Random Test CenI€TAfOT + + Sky 20

2.2.2 Testbench COntrỌÏ€T - + SEkk##EvEEEkekrkrkrkrrrrkrkrvek 22

2.2.3 COmp-runner -7- 5+5 2

2.2.4 Coverage MONIIOI - ¿5S Street 23

Chương 3 THIẾT KE DE XUẤT :¿22++++22vvvvzrsrrsscee 243.1 Thiết kế hệ thống -22¿222+2+2222+22222111222211112221122222111 221 re 243.2 Thiết kế chỉ tiết -. -¿ 222222 2222222111121 re 25

3.2.1 Random Test Cen€TAfOT + +5 xxx it 25

Trang 6

3.2.2 _ Tệp tin cấu hình :-2+++2222+++ttErkxrrrtrrktrrrrrrkrrrrrrrrvee 28

Trang 7

Hình 3.4: Minh họa một phan nội dung của I tescases.

Hình 3.5: Sơ đồ thuật toán cua Assembler

Hinh 3.6: Quy trinh cua giai doan Pre-Endcoding

Hình 3.7: Minh họa cho tệp chương trình mã máy 34

Hình 4.1: Quy trình thực thi chương trÌnh c5 Secererekeketererrkekeree 35

Hình 4.2: Ví dụ minh hoa cho một tệp tin cầu hình cccccccccreesrreesrreeerrxee 37Hình 4.3: Một phan nội dung chương trình có ý nghĩa phụ thuộc vào trọng số .40

Hình 4.4: Ví dụ cho nội dung của một tệp chương trình mã máy -. 4I

Hình 4.5: Quy trình xác minh ÍÑT( - ccxtststSeEexskestsrerrvrererekeerkrree 42

Hình 4.6: Ví dụ về nội dung tiêu chi tính độ bao phủ của RISC-V RTG 43

Hình 4.7: Biểu đồ thống kê phạm vi số lượng lệnh được tạo ra theo nhóm lénh 45Hình 4.8: Biểu đồ thống kê chỉ tiết về số lượng lệnh thuộc nhóm ALU được tạo 45Š

Hình 4.9: Biểu đô thong kê số lan sử dụng thanh ghỉ của hai festcases 46

Hình 4.10: Tinh độ bao phú INstNum wcccccecscsessecesvesseveevesseesseseesesseseesssneseeneaseneeneaees 48

Hình 4.11: Nội dung của một testcase được tạo ra ngẫu nhhiÊN: <<+<<++ 49

Hình 4.12: Biểu đô độ bao phủ của RISC-V RTG ©5cccccscccxsecrrrrseee 50Hình 5.1: Sơ đô hệ thong hướng phát triển eccccccccssssssssssssssssssssssssssesssssssesssessecsesssses 56

Trang 8

DANH MỤC BANG

Bang 1.1: Những CPU RISC-V tiêu biểu [1] csscccsssssscsssssssesssssssessssssssssssssesssssssesesssvees 3

Bang 2.1: Bang các tập lệnh cơ sở và mở rộng của RISC-V -.-c~s=+<+<«+ ổ Bang 2.2: Phân loại các nhóm lệnh của tập lệnh RV32Ì]L «55x55 s+<<x 9

Bang 2.3: Dinh dang lệnh của các lệnh RV321 ÏSA 5+ cc5+c+csxsxeexcee 11

Bảng 2.4: Cấu trúc của định dạng lệnh

Bang 2.5: Chức năng của nhóm lệnh rẽ nhánh

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

Bang 2.7: Chức năng của nhóm lệnh lưu WAS

Bang 2.8: Chức năng cua nhóm lệnh số học và luận n1 16

Bang 2.9: Chức năng của nhóm lệnh số học và luận lý 2oeccsssssssssssseessssssesssssseesesssees 17

Bảng 2.10: Chức năng của nhóm lệnh số học và luận Ìý Ÿ «-x<«=«+ 18

Bảng 2.11: Chức năng của nhóm lệnh nhảy

Bang 3.1: Cầu trúc dữ liệu, hàm và thư viện được sử dụng

Bang 4.1: So sánh kết qua đạt được với hai công trình nghiên cứu đã có 51

Trang 9

DANH MỤC TU VIET TAT

Từ viết tắt Mô tả

CPU Central Processing Unit

ISA Instruction Set Architecture

ISS Instruction Set Simulator

RISC Reduced Instruction Set Computer

RTG Random Test Generator

SoC System on Chips

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-source ISA) dựa trên các nguyên

tắc máy tính tập lệnh rút gọn RISC (Reduced Instruction Set Computer) đã và đang

được phát triển cực nhanh trên thế giới Tập lệnh ở mức người dùng đã được phát

hành vào tháng 03/2019 cho phép các nhà thiết kế có thể tiền hành thực hiện

RISC-V ISA cho riêng mình RISC-RISC-V mang lai cơ hội cho các nước đang phát triển, các

công ty muốn thiết kế chip và phát triển riêng bộ vi điều khiển (Microcontroler) cho

riêng minh mà không phải tốn thêm bat kỳ chi phí nào cho van dé bản quyền

Trong đề tài này, kết quả nhóm muốn đạt được là tạo ra những tệp thử nghiệm

Tép thử nghiệm là những chương trình hợp ngữ với những chuỗi lệnh có nghĩa dùng

để kiểm tra tính đúng đắn của bộ vi xử lý cho thiết RISC-V và là chương trình hợp

ngữ có những chuỗi lệnh phụ thuộc vào những trọng số của nhóm lệnh với mục đích

để kiểm tra các trường hợp mà người dùng mong muốn Ngoài ra nhóm đặt mục tiêu

sẽ đạt được 100% độ bao phủ với những tiêu chí riêng ví dụ như lệnh, thanh ghi,

Để kiểm tra bộ phát sinh chương trình kiểm tra ngẫu nhiên cho thiết kế RISC-V

(RISC-V RTG) thì nhóm sẽ mô phỏng qua bộ ISS (Instruction Set Simualator) Đồngthời qua khối mô phỏng ISS này, nhóm sẽ nắm được độ bao phủ mà chương trình

RISC-V RTG đạt được bao nhiêu phần trăm Sau đó so sánh với mục tiêu ban đầu đã

đặt ra.

Ngoài ra ở khóa luận này, nhóm sẽ so sánh kết quả tạo được với ba công trình

nghiên cứu liên quan là những bài báo khoa học quốc tế được đăng tải trên các hội

nghị uy tín và khóa luận trước.

Trang 11

Chương 1 GIỚI THIỆU DE TÀI

1.1 Giới thiệu đề tài

Tên đề tai: Bộ phat sinh chương trình kiểm tra ngẫu nhiên cho thiết kế RISC-V

Động lực thực hiện đề tài:

Ngày nay nền công nghiệp máy tính nói chung và lĩnh vực thiết kế vi mạch

và phần cứng nói riêng đang trên đà phát trién mạnh mẽ Tuy nhiên việc đề xuất

và hiện thực một kiến trúc tập lệnh mới để có thể sử dụng được là rất tốn kém

Bởi vì những người thiết kế máy tính thường không đủ khả năng tài chính đề làmviệc miễn phí và việc phát triển vi xử lý dựa trên kiến trúc tập lệnh mới còn đòi

hỏi chuyên môn, kinh nghiệm thiết kế rất cao cần nhiều chuyên ngành như điện

tử kỹ thuật số, trình biên dịch, hệ điều hành, kỹ thuật phần mềm, Ngoài ra cần

có các công cụ dé mô phỏng, kiểm tra chất lượng, kiểm thử chức năng, tổng hợp

ra các mạch điện tử và đo lường các thông só về tiêu tốn năng lượng của thiết kế

Các công nghệ này cần phải mua bản quyển và cũng rất tốn kém Vì vậy một kiến

trúc tập lệnh RISC-V được hình thành (RISC viết tắt từ Reduced Instruction SetComputer), là một kiến trúc tập lệnh, đượ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 Trái ngược với hầu hết các kiến trúc tập lệnh khác,

RISC-V hoàn toàn miễn phí cho bat kỳ mục đích sử dụng nào Nó cho phép bat

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 trọng 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 mạch 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

Dựa vào rất nhiều lợi ích quan trọng mà RISC-V đem đến, nhưng lại rất mới

tại Việt Nam Theo tìm hiểu của nhóm, hiện nay mới ghi nhận được một công trìnhnghiên cứu liên quan đến Bộ phát sinh chương trình kiểm tra ngẫu nhiên Đây cũng

Trang 12

là lý do mà nhóm muốn thực hiện đề tài: “Bộ phát sinh chương trình kiểm tra ngẫunhiên cho thiết kế RISC-V” Thực hiện dé tài này nhóm mong muốn công trình nghiêncứu có thé góp một phan giúp Việt Nam bat kịp với thế giới xu thé phát triển của thégiới trong lĩnh vực thiết kế bộ vi xử lý RISC-V Ngoài ra đối với việc xây dựng mộtkiến trúc tập lệnh mới như RISC-V rất khó tìm được một đội thiết kế độc lập nào bên

ngoài các công ty thiết kế vi xử lý chuyên nghiệp (như ARM, Intel, IBM, MIPS, )

Do đó việc đóng góp của rất nhiều thành viên đến từ cộng đồng sử dụng RISC-V

mang ý nghĩa quyết định đến sự thành công của kiến trúc tập lệnh mới này Đó cũng

là một trong những động lực đề thực hiện Khóa luận này, đó là tham gia vào tìm hiểu,

sử dụng, thiết kế, kiểm định và đánh giá sản phẩm liên quan đến kiến trúc tập lệnh

RISC-V Vậy nên, khóa luận này muốn thiết kế ra bộ phat sinh chương trình kiểm trangẫu nhiên cho thiết kế RISC-V (viết tắt là RISC-V RTG) với mục đích tạo ra các

testcases là các chương trình hợp ngữ nhằm kiểm tra tính đúng đắn kiến trúc tập lệnh

của bộ vi xử lý.

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 đích ứng dụng và phân khúc khác nhau Bảng 1.1 trình

bày một số sản phẩm CPU RISC-V tiêu biểu

Bảng 1.1: Những CPU RISC-V tiêu biểu [1]

RISC-V CPU | Nhà phát triển | Kiến trúc tập lệnh | Sản phẩm mục tiêu

Rocket/BOOM | Đại hoc California | RV64G Máy tính, thiet bị cá

nhân

ORCA Vector Blox RV32IM FGPA

Sodor Đại học California | RV32I Education

SCRI Syntacore RV32UE[MC] Vi điều khién/IoT

PICORV32 Clifford Wolf RV32IMC Vi điều khién/IoT

Trang 13

Z-Scale Đại học Berkeley | RV32IM Vi điều khién/IoT

RISCY

ETH Zurich & Dai x 2

RV32IMC[F]X Vi điêu khién/IoT hoc Bologna

1.2 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 Chupilko và các cộng sự công bố nghiên cứu về bộ tạo chương trình

kiểm tra cho tập lệnh RISC-V dựa trên nền tảng MicroTESK [2] Bộ tạo chương

trình kiểm tra của Chupilko giúp xác minh chức năng của bộ vi xử lý RISC-V với

các tính năng sau:

Tao ra các testcases dé kiểm tra các lệnh riêng biệt bằng cách sử dụng các

giá trị toán hạng ngẫu nhiên.

Tao ra các testcases để kiểm tra các lệnh riêng biệt bằng cách sử dụng các

giá trị toán hạng biên.

Tao ra các testcases để kiểm tra các lệnh riêng biệt bao gồm tất cả các

đường dẫn thực thi được mô tả trong thông số kỹ thuật

Tạo ra các testcases có nội dung là các chuỗi lệnh ngắn với kết quả đạt

được bao gồm tất cả các định dạng lệnh

- Năm 2020, Herdt và các cộng sự đã giới thiệu nghiên cứu về đặc tả và kiểm tra

tập lệnh RISC-V sử dụng công cụ GRIFT [3] Nghiên cứu đã tạo ra bộ thử nghiệm

ngẫu nhiên với 8900 trường hợp thử nghiệm trong 392 giây dựa trên đặc điểm kỹ

thuật của bộ thử nghiệm RV32I Công trình nghiên cứu của Herdt đã tạo ra các

tệp kiểm tra thỏa mãn các ràng buộc sau:

Lệnh load/store không tạo ra các truy cập bộ nhớ không hợp lệ.

Lệnh branch/jump chỉ thực hiện các bước nhảy tương đối cục bộ để nằmtrong phạm vi địa chỉ lệnh hợp lệ Đảm bảo rằng không tự tạo ra vòng lặp

bằng cách hạn chế các bước nhảy khác 0

Trang 14

"_ Độ lệch bước nhảy cho lệnh JAL bị hạn chế chỉ thực hiện bước nhảy ngắn

(không rời khỏi phạm vi địa chỉ của lệnh).

Nghiên cứu sử dụng GRIFT (Galois RISC-V ISA Formal Tools) để đo độ baophủ của chương trình Độ bao phủ của chương trình kiểm tra kiến trúc tập lệnh RV321IISA là khoảng từ 67% đến 86% (Hạn chế còn lại chủ yếu là do các lệnh nhảy, rẽ

nhánh và bộ nhớ (load/store).

1.2.2 Tình hình nghiên cứu trong nước

Trong quá trình tìm hiểu của nhóm, hiện nay mới ghi nhận được một công trìnhnghiên cứu liên quan đến bộ phát sinh chương trình kiểm tra thiết kế Chương trình

nghiên cứu về Random Test Generator for RISC-V 32I do sinh viên Trương Thị

Giang, Khoa Kỹ thuật Máy tính, trường Đại học Công nghệ Thông tin thực hiện [4].

Nghiên cứu đã sử dụng phương pháp random “Table Based Generators” và

“Weighted Randomness” tạo ra các tệp kiểm tra thỏa mãn các ràng buộc sau:

Kiểm tra được hoạt động bao gồm 36/37 lệnh của RV32I ISA va kiểm tra đượctất cả định dạng lệnh

Đảm bảo các lệnh nhảy có thể nhảy tới và lùi, có nhảy và không nhảy

“Tạo ra các số tức thời bao gồm: số 0, số âm, số dương, số lớn nhất và số nhỏ nhất

Đối với việc truy xuất bộ nhớ:

¢ Truy xuất địa chỉ bộ nhớ liên tiếp (cho truy xuất mảng)

e Đọc và ghi một địa chỉ bộ nhớ nhiều lần

Đối với thanh ghi đa dụng:

e _ Ghi giá trị tới 32 thanh ghi.

e Doc dữ liệu từ 32 thanh ghi.

e _ Thanh ghi vừa là toán hạng nguồn vừa là toán hạng đích

e Đối với các lệnh ALU, hai toán hạng nguồn và toán hạng đích đều là một

thanh ghi.

e Hai thanh ghi toán hạng nguồn đều là thanh ghi 0.

Trang 15

1.3 Mục tiêu đề tài

Nghiên cứu kế thừa kết quả của đề tài khóa luận tốt nghiệp của anh chị khóa

trước để phát triển thiết kế bộ phát sinh chương trình kiểm tra ngẫu nhiên cho thiết

kế RISC-V Mục đích cụ thể như sau:

- Tìm hiểu về kiến trúc tập lệnh mới RISC-V Từ đó thiết kế bộ phát sinh chương

trình kiểm tra ngẫu nhiên cho thiết RISC-V

- Độ bao phủ (coverage) đạt 100% theo những tiêu chí sau:

“_ Đối với lệnh: Kiểm tra được hoạt động bao gồm 37 lệnh của RV32I ISA:

BEQ, BNE, BLT, BGE, BLTU, BGEU, LB, LH, LW, LBU, LHU , LUI,

SB, SH, SW, ADDI, SLTI, SLTIU, XORI, ORI, ANDI, SLLI, SRLI,

SRAI, ADD, SUB, SLL, SLT, SLTU, XOR, SRL, SRA, OR, AND,

AUIPC, JAL, JALR và 6 định dạng lệnh: R-TYPE, I-TYPE, S-TYPE,

SB-TYPE, U-SB-TYPE, UJ-TYPE.

=_ Đối với lệnh nhảy: Dam bảo được các lệnh nhảy có thể nhảy tới và nhảy

lùi.

= Đối với số tức thời: Tao ra được các số tức thời bao gồm: số 0, số âm, số

dương, số lớn nhất và số nhỏ nhất

“_ Đối với thanh ghi đa dụng:

e Ghi giá trị tới 32 thanh ghi.

e Doc dữ liệu từ 32 thanh ghi.

¢ Thanh ghi vừa là toán hạng nguồn vừa là toán hạng dich

e Đối với các lệnh ALU, hai toán hạng nguồn và toán hạng đích đều

là một thanh ghi.

¢ Hai thanh ghi toán hạng nguồn đều là thanh ghi 0

= Đối với việc truy xuất bộ nhớ:

e Truy xuất địa chỉ bộ nhớ liên tiếp (cho truy xuất mảng).

© Đọc và ghi một địa chỉ bộ nhớ nhiều lần.

Trang 16

1.4 Bố cục Khóa luận

Báo cáo này được chia thành 5 chương chính.

- Chương 1: Giới thiệu đề tài - Chương đầu tiên giới thiệu về dé tài khóa luận và

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

- Chương 2: Cơ sở lý thuyết - Chương này trình bày những cơ sở lý thuyết được

sử dụng có liên quan đến nội dung nghiên cứu của đề tài như tìm hiểu sơ lược về

kiến trúc tập lệnh mở RISC-V bao gồm: nội dung tổng quan về kiến trúc tập lệnh

cơ sở, kiến trúc tập lệnh mở rộng và trình bày về kiến trúc tập lệnh được chọn để

hiện thực đề tài Hơn nữa ở chương này nhóm cũng sẽ nói sơ lược về sơ đồ hệ

thống xác minh chức năng của bộ xử lý, tìm hiểu lý thuyết của các khối chức năngtrong sơ đồ hệ thống đó bao gồm các khối: Random Test Generator, Testbench

Controller, Comp-runner và Coverage Monitor.

- Chwong 3: Thiết kế đề xuất - Dựa vào những kiến thức về cơ sở lý thuyết đã tim

hiểu được ở chương 2 thì chương 3 này sẽ thê hiện thiết kế hệ thống một cách chỉ

tiết của khóa luận Ngoài ra nhóm sẽ giải thích và minh họa cách thức hoạt động

của từng khối trong hệ thống Ở chương này nhóm cũng sẽ giới thiệu sơ lược về

ngôn ngữ lập trình và phần mềm sử dụng để hiện thực khóa luận

- _ Chương 4: Mô phỏng và Đánh giá kết quả - Ở chương này, nhóm thực hiện sẽ

trình bày những kết quả mà khóa luận đã đạt được thông qua một số biêu đồ thông

kê số liệu Ngoài ra nhóm sẽ trình bày độ bao phủ đạt được của RISC-V RTG.Hơn nữa là kết quả của bộ phát sinh chương trình kiểm tra ngẫu nhiên cho thiết

kế RISC-V sẽ được so sánh với các nghiên cứu liên quan

- Chương 5: Kết luận và Hướng phát triển - Chương cuối sẽ đúc kết lại khóa

luận, tóm tắt toàn bộ công việc của nhóm thực hiện và những kết quả, thành tích

đã đạt được Đồng thời ở chương này nhóm thực hiện sẽ đưa ra đề xuất cho hướngphát triển tiếp theo của đề tài trong tương lai

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

Kiế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ọ RISC-V định nghĩa kiến trúc tập lệnh số nguyên 32-bit 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ó tat cả những lệnh cơ bản, những lệnh điều khiển luồng, bộ thanh ghi, bộ nhớ,cách đánh địa chỉ bộ nhớ, đủ dé 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ể linh

hoạ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ặctậ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ẩm

mục tiêu nhất định

Bảng 2.1: Bảng 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 đủ Chú thích

RV32I Base Integer Instruction Set, 32-bit

RV32E Base Integer Instruction Set (embedded)

4 tập lệnh cơ bản RV641 Base Integer Instruction Set, 64-bit

RVI28I Base Integer Instruction Set, 128-bit

M Integer Multiplication and Division

Các mở rộng tiêu

A Atomic Instruction l

chuân

F Single-Precision Floating-Point

Trang 18

D Double-Precision Floating-Point

Q Quad-Precision Floating-Point

Decimal Floating-Point

Dé hỗ trợ tốt hơn cho việc phát triển hệ sinh thái phần mềm của vi xử lý

RISC-V, RISC-V đã cung cấp sẵn một tập các tập lệnh mở rộng tiêu chuẩn, 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 dau phẩy

động độ chính xác đơn (F), phép toán với số thực dấu châm động độ chính xác kép(D) Một kiến trúc tập lệnh hỗ trợ tập lệnh cơ bản RV32I 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 dé giảm kích thước của mã máy (C)

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

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.

Bang 2.2: Phân loại các nl ó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_1 BEQ, BNE, BLT, BGE, BLTU, BGEU

Trang 19

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,

SCALL, SBREAK, RDCYCLE,

RDCYCLEH, EDTIME, RDTIMEH,

Nhóm lệnh hệ thống 11 100 11 RDINSTRET, RDINSTRETH, FRCSR,

FRRM, FRFLAGS, FSCSR, FSRM,

FSFLAGS, FSRMI, FSFLSGSI

Nhóm lệnh đồng bộ 00 011 11 FENCE, FENCE.I

Nhóm lệnh nhảy 11 011 11 JAL, JALR

Nếu xét về định dang của lệnh thực thi RV32I được chia thành 6 nhóm:

R-TYPE, I-R-TYPE, S-R-TYPE, SB-TPYE, U-R-TYPE, UJ-TYPE Trong đó các định dạng

R, I, S, U là bốn nhóm chính, hai nhóm SB-TPYE 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.

10

Trang 20

Bảng 2.3 trình bày chỉ tiết về các lệnh thuộc 6 định dạng lệnh và Bảng 2.4trình bày cấu trúc của định dạng lệnh.

Bang 2.3: Định dạng lệnh của các lệnh RV321 ISA

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

R-TYPE ADD, AND, OR, XOR, SLL, SRL, SLT, SLTU,

SUB, SRA.

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

ray SRLI, SRAI, LB, LH, LW, LBU, LHU, JALR.

funct7 rs2 ml funct3 rd opcode | R-type

imm[11] | imm(10:5] | imml4:1] | imm[0] rsl funet3 rd opcode | Ixype

imm{11] | imm[10:5] n2 ml imm[4:1] | imm[0] | opcode | S-type

imm[12] | imm[10:5] n2 sl imm[4:1] | imm[11] | opcode | SB-type

imm(31] imm[30:20] imm[19:15] | imm[14:12] sả opeode | U-type

imm{20] | imm{10:5] | imm{4:1} | imm[0] | imm[19:15] | imm[14:12] sả opeode | U-type

11

Trang 21

Về thanh ghi, RV32I có một thanh ghi PC và 32 thanh ghi trong đó một thanhghi x0 luôn mang giá trị là 0, cộng với 31 thanh ghi đa 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 có kiến trúcLOAD-STORE Điều đó có nghĩa là chỉ có các lệnh Load và Store truy cập vào bộnhớ, còn lại các phép toán số học đều chi sử dung các thanh ghi Ngoài ra RV32I có

nghĩa là không gian địa chỉ là 32-bit và sử dung little endian Tương ứng, RV64I có

nghĩa là không gian địa chỉ là 64-bit và RV128I có không gian địa chỉ là 128-bit.

RV64I và RV128I cũng được xem là những kiến trúc tập lệnh cơ sở Bên cạnh đó,còn một kiến trúc tập lệnh cơ sở nữa là RV32E định nghĩa cho những hệ thống nhúng.RV32E chỉ có 16 thanh ghi 32-bit và những bộ đếm của RV32I được tùy chọn có hay

không.

2.1.3 Kiến trúc tập lệnh mớ rộng

Như 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

ở trên, 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 Dưới đây là những

mở rộng hiện có:

M: tập những lệnh nhân chia số nguyên

A: tập những lệnh đơn nguyên Atomic.

F: Single-precision floating point (IEEE 754-2008).

D: Double-precision floating point (IEEE 754-2008).

Q: Quad-precision floating point (IEEE 754-2008).

C: tập những lệnh nén (16-bit) để giảm kích thước của mã lệnh

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

12

Trang 22

2.1.4 RISC-V 321

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

RV32I) dựa trên ISA Chức năng, ý nghĩa của nhóm lệnh rẽ nhánh được trình bay

trong Bảng 2.5 Bảng 2.6 và Bảng 2.7 lần lượt trình bày chức năng, ý nghĩa của nhóm

lệnh nạp, nhóm lệnh lưu Chức năng, ý nghĩa của nhóm lệnh số học và luận lý, nhómlệnh nhảy được trình bày lần lượt tại Bang 2.8, Bảng 2.9, Bảng 2.10, Bảng 2.11

Nếu thanh ghi | có giá trị nhỏ hơn

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

+ Immediate.

BGEU BGEU x5, x6, 100

Nếu thanh ghi | có gia tri lớn hơn

hoặc bằng thanh ghi 2, thì sẽ nhảy đến

PC = PC + Immediate.

Trang 23

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

lưu vào thanh ghi.

LH LH 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 halfword 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 dia chi memory với base lưu

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 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 halfword kếtiếp lưu vào thanh ghi và sẽ mở rộng

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

bit 0 vào ở phía bên trai.

LUI LUI x5, 0x12345

Load 20-bit [31:20] của số tức thời,

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

14

Trang 24

Bảng 2.7: 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 dia 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 SHx5, 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 giá trị trong

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

SW SW x5, 40(x6)

Tính dia 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 word tiếp theo

15

Trang 25

Bang 2.8: Chức năng của nhóm lệnh số học và luận ly 1

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

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

quả lưu vào thanh ghi.

XOR thanh ghi với giá trị tức thời, kết

quả lưu vào thanh ghi.

ORI ORI x5, x6, 20

OR thanh ghi với giá tri tức thời, kết

quả lưu vào thanh ghi.

ANDI ANDI x5, x6, 20

AND thanh ghi với giá tri tức thời, kết

quả lưu vào thanh ghi.

SLLI SLLI x5, x6, 20

Shift giá tri của thanh ghi sáng trái n

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

quả lưu trong thanh ghi.

16

Trang 26

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

Shift gia tri cua thanh ghi sang phai n

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

quả lưu trong thanh ghi.

Shift giá trị của thanh ghi sang phải n

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

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

bit dựa vào MSB của số đã shift

ADD ADD x5, x6, x7

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 x5, x6, x7

Trừ giá trị thanh ghi thứ nhất và giá

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

than! ghi.

SLT SLT x5, x6, x7

Nếu giá trị thanh ghi thứ nhất lớn hơn

giá trị thanh ghi thứ hai thì kết quả lưuvào thanh ghi là 1 Nếu giá trị thanh

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

là0.

17

Trang 27

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

vào thanh ghi là 1 Nếu giá trị thanh

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

là 0.

XOR XOR x5, x6, x7

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 x5, x6, x7

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 x5, x6, x7

Shift giá tri 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 bít dựa vào

AND giá trị thanh ghi thứ nhất và giá

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

thanh ghi.

18

Trang 28

Bảng 2.11: Chức năng của nhóm lệnh nhảy

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

Nhảy đến PC = PC + Immediate, đã

JAL JAL x1, 100 lưu giá trị của lệnh kế tiếp trước đó

vào thanh ghi.

Hinh 2.1: Hé thống xác minh chức năng bộ xử lý

Trong ISS (Instruction Set Simulation) được sử dụng như làm mô hình tham

chiếu vàng (golden model) 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

19

Trang 29

được viết bằng ngôn ngữ lập trình cấp cao ISS dùng dé mô phỏng hành vi của máytí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 thiết kế được kiểm chứng về mặt chức năng Có nhiều

phương pháp khác nhau dé tiến hành như OVM, UVM hoặc traditional verification, Đầu ra của RTL Simulation thông thường là waveform, data, hoặc các ràng buộctheo yêu cầu của người dùng Quá trình của simulation kết thúc khi tắt cả các testcases

đều được thực thi và cho kết quả giống như kết quả mong đợi

Bộ chương trình phát sinh kiểm tra ngau nhiên được thực hiện để tao các bộ

chương trình thử nghiệm (testcases) Mỗi chương trình thử nghiệm được thực thi

đồng thời bởi cả hai mô hình bộ xử lý và trang thái của chúng được so sánh sau khi

thực hiện từng lệnh Khối Comp-runner cũng được triển khai như một phần của bộ

điều khiển mô phỏng để ghi lại sự khác biệt trong trạng thái của hai mô hình Việc

triển khai bộ điều khiển mô phỏng cũng bao gồm một module giám sát phạm vi baophủ để đo lường phạm vi xác minh và tạo thống kê về phạm vi bao phủ (coverage)

2.2.1 Random Test Generator

Random Test Generator - Bộ phát sinh chương trình kiểm tra ngẫu nhiên

(thường được viết tắt là RTG hoặc ISG cho Instruction Stream Generator) là một loạiphần mềm máy tính được sử dụng dé xác minh chức năng của bộ vi 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ữ và sẽ được chuyền đổi sang mã nhị phân thông qua trình biên dich hợp

ngữ (hay còn gọi là Assembler) dùng dé 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

Bộ phát sinh chương trình kiểm tra ngẫu nhiên có phạm vi từ các tập lệnh đơn

giản và macro được tham số hóa có thể được tạo ra trong vài tuần đến các hệ thốngđầy đủ tính năng yêu cầu phát triển phần mềm rỗng rãi và thường được tạo ra bởi các

tô chức thiết kế Để tạo ra bộ phát sinh chương trình kiểm tra ngẫu nhiên thì có thể

sử dụng một hay nhiều các phương pháp sau:

20

Trang 30

- Table Based Generators: Bộ phát sinh chương trình kiểm tra ngẫu nhiên dựa

vào bảng Những mẫu thử này là những RTG đơn giản nhất hiện có Ưu điểm của Table Based Generators là có thé tao ra các testcases tương đối nhanh chóng Ngoài ra các yêu cầu về bảo trì thường thấp nên chỉ phí thực hiện cũng thấp Phương pháp này hoạt động bằng cách phụ thuộc vào kiến trúc tập lệnh

của thiết kế và lưu trữ nó trong cơ sở dit liệu quan hệ dé có thé tái sử dụng sau

này Tuy nhiên, có một nhược điểm đối với phương pháp này là việc tạo ra các testcases thường bị hạn chế trong các kiến trúc đơn giản bởi việc sử dụng trên các ISA phức tạp hơn có thê dẫn đến việc không thé kiểm tra hết được các tinh huống phức tạp Đôi khi trình tạo thử nghiệm ngẫu nhiên dựa vào bảng cũng

có thể tạo ra các testcases không hợp lệ.

- Static Generators: Bộ phát sinh chương trình kiểm tra ngẫu nhiên tĩnh Cũng

tương tự như bộ phát sinh chương trình kiểm tra ngẫu nhiên dựa vào bảng với ngoại trừ phần lớn lệnh, toán hạng và lựa chọn dữ liệu năm trong mã thủ tục

phức tạp Ưu điểm về bộ phát sinh chương trình kiểm tra ngẫu nhiên tĩnh thì

có khả năng tạo ra được nhiều testcases hơn so với Bộ phát sinh chương trình

kiêm tra ngẫu nhiên dựa vào bảng Tuy nhiên dé khắc phục nhược điểm không thé kiểm tra hết được các tình huống phức tap thì phương pháp này vẫn chưa thê đáp ứng được.

- Dynamic Generators: Bộ phát sinh chương trình kiểm tra ngẫu nhiên động.

Phương pháp này phải được kết hợp chặt chẽ với những kiến thức quan trọng

về kiến trúc đang được thử nghiệm Ưu điểm của bộ phát sinh chương trình kiểm tra ngẫu nhiên động là nâng cao khả năng tao ra các testcases phức tap,

có thể tạo ra được các testcases trong các trường hợp khó tiếp cận Bộ phát sinh chương trình kiểm tra ngẫu nhiên động này có tính linh hoạt và dễ dàng trong việc sử dung Do đó nhược điểm của phương pháp này là chi phí tạo và bao trì thường lớn hơn nhiều so với phương pháp Table Based Generators hoặc

so với phương pháp Static Generators.

21

Trang 31

2.2.2 Testbench Controller

Testbench Controller bắt dau bằng cách nap các testcases được tạo ra bởi

RTG vào Instruction Set Simulator (hay còn được viết tắt là ISS) Trình mô phỏng tập lệnh là một phương pháp được sử dụng nhiều vì một trong những lý do sau:

- Mô phỏng mã máy của một thiết bị phần cứng khác hoặc toàn bộ máy tinh dé

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.

- Theo dõi và thực thi các lệnh mã máy (nhưng được coi như là một luồng đầu

vào) trên cùng một phần cứng nhằm kiểm tra và gỡ lỗi.

- Cai thiện hiệu suất tốc độ.

ISS sẽ thực thi từng lệnh trong mỗi một testcase Trong các tình huống bình thường, mô phỏng được hoàn thành sau khi thực hiện lệnh cuối cùng trong bộ phát

sinh chương trình kiểm tra ngẫu nhiên Nếu các bộ phát sinh chương trình ngẫu nhiên

được chạy hàng loạt, quá trình mô phỏng được lặp lại bằng cách tải chương trình tiếp theo Testbench Controller kết thúc sau khi thực hiện chương trình thử nghiệm cuối cùng Trong trường hợp đặc biệt, Testbench Controller sẽ kết thúc khi có báo hiệu từ

khối Comp-runner rằng sỐ lượng chênh lệch vượt quá một số giới hạn tối đa đã định

trong tệp tin cau hình Thiết kế cũng bao gồm một Coverage Monitor được chạy ngoại

tuyến dé đo độ bao phủ của chương trình.

2.2.3 Comp-runner

Comp-runner chịu trách nhiệm so sánh các trạng thái của ISS với mô hình RTL

dé xác định xem hai mô hình của bộ vi xử lý có cùng hoạt động hay không Vì hai

mô hình bộ xử lý chạy ở các mức độ trừu tượng khác nhau nên chúng có thể tạo ra các kết quả khác nhau do hiệu ứng pipeline Thông thường, chỉ có mô hình RTL thực

hiện xử ly pipeline trong khi ISS thì 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 Những khác biệt này gây ra các van dé, cụ thé là lệch và va chạm, phải được xử lý bởi khối Comp-runner.

22

Trang 32

Mặc dù ISS và RTL chạy song song cùng một chương trình, kết quả của cùng

một lệnh có thé được tạo ra tại các thời điểm khác nhau Cũng trong những khoảng thời gian nhất định của mô phỏng, một mô hình có thé đi trước một chút so với mô hình kia, và do đó tạo ra ít kết quả hon so với mô hình kia Điều này thường xảy ra sau lệnh rẽ nhánh, vì độ trễ nạp day pipeline xảy ra trong mô hình RTL nhưng không xảy ra trong ISS Vì vậy, kết quả từ hai mô hình bị sai lệch trong thời gian mô phỏng.

2.2.4 Coverage Monitor

Coverage Monitor theo dõi độ bao phủ vê phạm vi và chịu trách nhiệm đo lường, xác minh, xây dựng sô liệu thông kê vê phạm vi đó Vê cơ bản, Coverage Monitor chứa một sô bộ đêm phát hiện và đêm sự xuât hiện của các sự kiện nhat định Một sô ví dụ về phạm vi xác minh có thê là:

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

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

- Độ bao phủ của nhánh để đo các nhánh có điều kiện được thực hiện.

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

Số lần một lệnh xuất hiện trong mã chương trình có thể khác với số lần lệnh đã được thực thi Luồng chương trình là không xác định vì có thê lặp lại, phân nhánh có điều kiện, interrupt và các yếu tố phụ thuộc dữ liệu khác Do đó, Coverage Monitor không thé sử dụng mã tĩnh dé tạo thống kê vùng phủ.

23

Trang 33

Chương 3 THIẾT KE DE XUẤT

Chương này trình bày chỉ tiết các vấn đề triển khai cho bộ phát sinh chương trình kiểm tra ngẫu nhiên cho thiết kế RISC-V Ngôn ngữ lập trình được sử dụng là

C, một ngôn ngữ bậc trung, cốt lõi và đơn giản Sử dụng những tính chất của ngôn ngữ như tính kế thừa, tính đa hình dé hiện thực khóa luận Nhóm sử dụng phần mềm

Visual Studio đề hiện thực 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 RISC-V RTG.

Binary test program on

disk (.elf files)

Hinh 3.1: Thiét ké hé théng

Bước đầu tiên RISC-V RTG sẽ doc tệp tin cấu hình để nắm được số lượng

testcases muốn tạo ra Sau đó sẽ phát sinh ra số lượng testcases mong muốn Những

testcases này là những chương trình hợp ngữ (.S files) dùng để xác minh chức năng

bộ vi xử lý và dùng dé kiểm tra tính đúng đắn của kiến trúc tập lệnh trong bộ vi xử lý

đó Tép testcases này sau khi được tạo ra sẽ đưa qua ISS dé tính độ bao phủ và thử

24

Ngày đăng: 02/10/2024, 05:07

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

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

TÀI LIỆU LIÊN QUAN