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: Mô phỏng và hiện thực 32-bit Risc-V CPU trên FPGA

80 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

Định dạng
Số trang 80
Dung lượng 20,16 MB

Nội dung

[1] ISA xác định các kiểu đữ liệu được hỗ trợ, các thanh ghi, cách phần cứngquản lý bộ nhớ chính, các tính năng chính chẳng hạn như bộ nhớ ảo, các lệnh mà bộ xử lý có thé thực thi và mô

Trang 1

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

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

PHAM QUANG HAI

VŨ DUY DI DAN

KHOA LUAN TOT NGHIEP

MO PHONG VA HIEN THUC 32-BIT RISC-V CPU TREN

Trang 2

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

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

PHAM QUANG HAI - 18520703

VU DUY DI DAN - 18520554

KHOA LUAN TOT NGHIEP

MO PHONG VA HIEN THUC 32-BIT RISC-V CPU TREN

FPGA

SIMULATION AND IMPLEMENTATION OF THE 32-BIT

RISC-V CPU ON FPGA

KY SƯ NGÀNH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

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ố

528/QD-ĐHCNTT ngày 19 tháng Ø7 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

Bên cạnh đó, nhóm thực hiện cũng xin gửi lời cảm ơn đến Thầy/Cô và bạn

bè khoa Kỹ thuật máy tính nói riêng và 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 đã tận tình giảng dạy, truyền đạt

các kiến thức vô cùng bé ích, đồng hành và hỗ trợ chúng em trong suốt quá trìnhhọc tập tại trường Đại học Công nghệ Thông tin Những kiến thức và kinh nghiệm

quý báu đó sẽ là hành trang giúp chúng em có thể tự tin tiếp xúc với công việc

chuyên ngành một cách thuận lợi hơn.

Cuối cùng, chúng em cũng xin dành lời cảm ơn sâu sắc đến ba mẹ và gia

đình vì đã luôn sát cánh, động viên, tạo điều kiện và là chỗ dựa tỉnh thần vững chắc

trên con đường học tập và làm việc.

Trong suốt quá trình thực hiện đề tài khóa luận, chúng em không thể tránh

khỏi những khó khăn và sai sót do một số giới hạn liên quan đến chuyên ngànhchuyên sâu Vì thế, chúng em mong các quý Thay/C6 và các bạn sẽ thông cảm, và

có thé đóng góp ý kiến dé đề tài khóa luận này được phát triển và hoàn thiện hơn

trong tương lai.

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

TP Hồ Chi Minh, ngày 27 tháng 06 năm 2022

Sinh viên thực hiện

Trang 5

MỤC LỤC

Chương 1 TONG QUAN -222222cc2 222v vrvrrrtrrrtrrrrrrrrrrrrrres l5

1.1 Giới thiệu về kiến trúc tập lệnh - -¿¿+22++++222v+z+ztrrxserrrrks l5

1.1.1 Tổng quan về kiến trúc tập lệnh RISC-V - - 151.12 Các kiến trúc tập lệnh c-cccccccccccrrrrrrrrrr 17

1.2 Chỉ tiết kiến trúc tập lệnh RISC-V

1.3 Thiết kế hệ thống của CPU -22¿¿¿22222vEvevrtttEErkrtrrrrrrrrrrree 26

Chương 2 THIET KE VI XỬ LÝ RISC-V 32-BIT

QA Tổng quan thiết kế vi xử lý 2¿-©2-+2+222EE+rtEEEEErrtrrkrrrrrrrkrcee 27

2.2 Lý thuyết về xung đột (Pipeline hazard)

2.2.1 Xung đột cấu trúc (Structure hazard) - s55 sxssscsssssesexs 29

2.2.2 Xung đột dữ liệu (Data hazard).

2.2.3 Xung đột điều khiển (Control/Branch hazard) . -s:+ 30

2.3 Các khối chức năng cĩ trong vi xử lý thơng qua từng giai đoạn 32

2.3.1 COPITỌÏCT 5c 121 32115121 1 1 1 E1 1217111111 g0 g0 ty, 32

2.3.2 Instruction Fetch (TE) - - - +5, 34

2.3.3 Instruction Decode (ID) ¿+ xxx ssstxrvrererserrrrrrrrrserrr 38

2.3.4 G0907 44

2.3.5 Memory Access (MEM) - 555cc tttrrrerrerrre 49

2.3.6 MS; 000411 52

Chương 3 THIET KE VI XỬ LÝ RISC-V 32-BIT VỚI GIAO THỨC AXI453

3.1 Đĩng gĩi vi xử lý RISC-V với giao thức AXI4 - 53

3.1.1 Kiến trúc vi xử lý trước khi đĩng gĩi - -cccce2 53

3.1.2 Kiến trúc vi xử lý khi đĩng gĩi thành IP - 53

Trang 6

3.2 Giao thức AXI4 - chen 54

3.2.1 Tổng quan giao thức

3.2.2 Các tín hiệu cụ thể của giao thức AXI4 trong khĩa luận 57

Chương 4 THIẾT KÉ BLOCK DESIGN TRÊN VIVADO

4.1 Tổng quan thiết kế Block Design 22cc++222cvvvvvrrrrrrrrrrer 59

4.1.1 Thiết kế trên Vivado

4.2 Các IP của Xilinx dự kiến dùng trong thiết kế Block Design 59

4.2.1 IP Memory Interface Generator (MIG 7 Series)

4.2.2 IP Central Direct Memory Access (IP CDMA) - 60

4.243 IP AXI Bram ContrỌÏ€T ¿5+ 5+ SSx+k+t‡v£eEexeeeketseerrvre 60

Chương 5 MƠ PHONG VÀ ĐÁNH GIÁ THIET KÉ - 62

5.1 Kịch bản kiêm thử trên FPGA 2-¿2+++++22++++t2vx+rrrtrrvecree 62

5.2 Mơ phỏng chức năng 1tr re 64

5.3 Kết quả mơ phỏng 2c+2£2222V2222+++t2EEEEESEEvrtrttrrrrrvrrrrrrrrrrrex 655.4 Đánh giá thiết kế -222c++222222221222EEEEEEEEEErrrtrrrrkrrrrrrrrrrrrrer 68

SAL Kết quả tổng hợp cc:22cs+csccvvrrrerrkvrrrrrrvrrrrrres 68

5.4.2 Đánh giá thiết kế và so sánh với các đề tài khác -.- 70

Chương 6 KÉT LUẬN VÀ HƯỚNG PHÁT TRIẺN - 73

Trang 7

PHU LỤC I KIT FPGA XILINX VIRTEX-7 VC707 -5-5-©5+55+ 76

PHỤ LỤC II CÁC BƯỚC GENERATE BITSTREAM

Trang 8

DANH MỤC HÌNH

Hình 1.1: Dinh dạng tập lệnh R`V32[ + - 5c tk Ekskrkekekrrrerree 21

Hình 1.2: Kiến trúc hệ thống CPU scccccsssssssssssesssssssescsssssscssssusessssesessssscessseeeeess 26

Hình 2.1: Hình mô ta CPU RISC-V đơn chu kỳ ¿- 5-5-5252 5<5<+++c+c++ 27

Hình 2.2: Hình mô tả chỉ tiết các khối chức năng trong vi xử ly 32-bit RISC-V

5-Stage pipeline sử dụng trong khoá luận ¿-¿ ¿5-5 5+ 5+ 52£+£+£+xzxzzsrerse+ 28

Hình 2.3: Hình mô tả các tín hiệu control qua các tầng - : -: + 32

Hình 2.4: Module Controller trong thiết kế -¿ 2¿+2++z++222vzzezrrxx 32

Hình 2.5: Thanh ghi Program Counter (PC) ‹- 5+ xxx sv£vxeeevexeeerrrrre 35 Hình 2.6: Module Program Counter add 4 (PC_ add4) - -: -+‹s<+ 36

Hình 2.7: Module IMEM - - ¿c5 S25 S**E£E#k#EEEEkkEY g1 1 1x, 36

Hình 2.8: Thanh ghi IF to ID (IE_ tO_ TH) 5c 5c sv‡v£vxeeekexeerrrrrre 37 Hình 2.9: Register fiÏe -¿- 1S: nh k9 12 1H HH1 Hy 38

Hình 2.10: Module imm_ øen - ¿-+- 5° +55 **2E‡E‡EvEEk+EEEeEEkrkrkerrrerkrkrke 39 Hình 2.11: Module Branch CoimparatOr- - ¿+52 ++s25s£+++z++£+se+szsz++ 40

Hình 2.12: Module Branch Detection - 5252 5+2c+c+x++ererxrterrrerrsree 41 Hình 2.13: Module Hazard Detection -¿-¿- ¿+ 5552 + ‡‡‡‡£‡£vxsEekekexerrersre 42

Hình 2.14: Thanh ghi ID to EX (ID_to_EX) 5- 5-5525 ‡++x++£veerzxrxe 4

Hình 2.15: Module MuXA - 52-6 S22 E212 E221 211 re 45

Hình 2.16: Module Mux - ¿c5 S111 ST He 45

Hình 2.17: Module ALŨ - - - ¿5< + +‡k+E‡E SE T111 1101012 H1 11 re, 46

Hình 2.18: Module Forwarding Unit - 5-52 5++s+se£e£zxzxerererereree 47

Hình 2.19: Module Addition Branch - 55+ 5+55+s+ss£ezezxserxersrsree 48 Hình 2.20: Thanh ghi EX to MEM (EX_to_MEM)) - 555 5<+c+c+c+e 48

Hình 2.21:Module DMEM es ¿ST HH1” 00121 trà 50 Hình 2.22: Thanh ghi MEM to WB (MEM_to_WB) àcccccccccerce 51

Hình 2.23: Module Mux_ẲW., - cv HH HH HT Hàng Hàn net 52

Trang 9

Hình 3.2: Kiến trúc vi xử lý sau khi đóng gói và được kết nói với IP System

Hình 4.1: Thiết kế Block Design trên phần mềm Vivado -: + 59

Hình 5.3: Kịch bản kiểm thử sử dụng SD Hình 5.4: Đoạn chương trình assembly và mã máy sau khi biên dịch để kiểm tra chức năng CPU ¿+ 11k 111 T HH HH HH rà 64 Hình 5.5: Kết quả mô phỏng ba câu lệnh đầu tiên trên phần mềm Vivado 65

Hình 5.6: Kết quả mô phỏng ba câu lệnh đầu tiên trên Venus - 66

Hình 5.7: Memory sau khi thực hiện lệnh SW trên CPU -. -¿ -+ 66

Hình 5.8: Memory sau khi thực hiện lệnh SW trên phần mềm 67

Hình 5.9: Kết quả thanh ghi của CPU sau khi chạy xong đoạn chương trình 67

Hình 5.10: Kết quả thanh ghi của phần mềm Venus sau khi chạy xong đoạn chương trình 68

Hình 5.11: Tài nguyên sử dụng của CPU RISC-V 69 Hình 5.12: Tài nguyên sử dụng theo từng module của CPU RISC-V 69 Hình 5.13: Xung clock của CPU RISC-V 70

Hình 5.14: Phân tích timing cho CPU RISC-V 70

Hình 5.15: Tốc độ tối đa dự kiến của CPU RISC-V -c¿cccvccc+cccseez 70

Trang 10

DANH MỤC BANG

Bang 1.1: Trang thái phiên bản của ISA cơ sở và các phần mở rộng 16Bảng 1.2: Thuận lợi và bất lợi của mỗi ISA - ¿5c kckecEckcExerkerkerrrek 17

Bang 1.3: Quy ước các thanh ghi của RISC-V - -¿25ccccsczxsesree 20

Bảng 1.4: Lệnh RV32I thông qua ngôn ngữ assembly - ¿5 ++55<+ 21

Bang 2.1: Bảng mô tả các công đoạn khi xử ly câu lệnh - 27

Bảng 2.2: Bang mô tả tín hiệu điều khiển khối ALU - -.-: -5552 33

Bảng 2.3: Bảng mô tả tín hiệu điều khiển thanh ghi PC -. -cc¿ 33

Bảng 2.4: Bảng mô tả tín hiệu điều khiển halt - 22 ©222z++2222+ccseczseee 33Bảng 2.5: Bảng mô tả tín hiệu điều khiển khối Imm_Gen - 33

Bang 2.6: Bảng mô tả tín hiệu BrE(Q cscs 56522 ‡E‡+SEkrekekererrrkrkekrree 34

Bang 2.7: Bảng mô tả tín hiệu BTL7T - <5 St S*£v+kekevrerererereerkekree 34 Bang 2.8: Bảng mô tả tín hiệu BrUn - 22525252 £‡E+‡‡v£veererexekrtrree 34

Bảng 2.9: Bảng các tín hiệu trong module Controller - - «5-2 =+ 34 Bảng 2.10: Bảng các tín hiệu trong thanh ghi PC - - 5+ +5555+++c++ 35

Bảng 2.11: Bảng các tín hiệu trong thanh ghi PC_ add4 ‹ cence 36 Bảng 2.12: Bảng các tín hiệu trong module IMEM -+- 37

Bang 2.13: Bảng các tín hiệu trong thanh ghi IF_ to_TD - 5-5 << 38

Bang 2.14: Bảng các tín hiệu trong RegFile - 5 5++++c+c+cs+e+xzxscee 39

Bang 2.15: Bảng các tín hiệu trong khối imm_gen -::¿222cvccc+2 40Bảng 2.16: Bảng các tín hiệu trong khối br_comp .: c:zc5ss2 40

Bang 2.17: Bảng các tín hiệu trong khối branch_ detect -c-z 41

Bang 2.18: Bang các tín hiệu trong khối Hazard Detection - -: 42

Bang 2.19: Bảng các tin hiệu trong thanh ghi ID_to_EX 4

Bang 2.20: Bang các tín hiệu trong khối MuxA 22:2255czcccssc2 45

Bang 2.21: Bảng các tín hiệu trong khối MuxB -ccc¿-©2c2sssccc2 46

Bang 2.22: Bang các tín hiệu trong khối ALU -ccccc¿+¿222vcvccce2 46

Trang 11

Bang 2.25: Bảng các tín hiệu trong thanh ghi EX_to_MEM 49

Bang 2.26: Bảng các tín hiệu trong khối DMEM -¿©+cc+2czssc+ 50

Bang 2.27: Bảng các tín hiệu trong thanh ghi MEM_to_WB 51

Bang 2.28: Bang các tín hiệu trong khối Mux_W -c:c5ccscccccccsvee 52

Bang 3.1: Các tín hiệu trong AXT4 bus 65+ SEvsserrtrrrrrererererke 57

Bảng 5.1: Bảng so sánh các thiết kế RISC-V pipeline [5] - -¿ 7I

Trang 12

DANH MỤC TU VIET TAT

Viết tắt Viết đầy đủ Ý nghĩa

IP Intellectual Property Lõi sỡ hữu trí tuệ

AXL | Advanced eXtensible Interface Giao diện bus mở rộng nâng cao

CISC | Complex Instruction Set Computer | Máy tính với tập lệnh phức tạp

Máy tính với tập lệnh đơn giản

RISC | Reduced Instruction Set Computer

hóa

Bộ xử lý dựa trên kiến trúc tập

ARM | Advanced RISC Machines

lệnh RISC

MIPS Microprocessor without Kiến trúc tập lệnh RISC phát

Interlocked Pipeline Stages trién bởi MIPS Technologies

RAM | Random Access Memory Bộ nhớ truy cập ngẫu nhiên

CPU_ | Central Processing Unit Bộ xử lý trung tâm

Vi mạch tích hợp cỡ lớn dùng

FPGA | Field Programmable Gate Array cấu trúc mảng phan tử logic ma

người dùng có thê lập trình

ALU | Arithmetic Logic Unit Khối số học logic

Hệ thống kiểm soát tan số khép

PLL | Phase Locked Loop

kín

RTL | Register Transfer Level Mức chuyền thanh ghi

Trung tâm truy cập bộ nhớ trực

CDMA | Central Direct Memory Access "

tiép

Trinh quan lý xung clock chế độ

MMCM | Mixed-Mode Clock Manager

Trang 13

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

Đề tài khóa luận bao gồm hai nội dung chính xoay quanh nghiên cứu thiết

kế bộ vi xử ly RISC-V và đóng gói vi xử lý thành IP theo chuẩn giao tiếp AXI4

Nội dung thứ nhất là hướng đến nghiên cứu thiết kế vi xử lý RISC-V ápdụng kỹ thuật pipeline để xử lý câu lệnh Vi xử lý gồm các khối chức năng xử lýlệnh trong tập lệnh RV32I và xử lý các xung đột Tiếp đến là nhóm thực hiện thaythé hai khối Instruction Memory (IMEM) va Data Memory (DMEM) bằng IP

System Cache v5.0 của Xilinx.

Nội dung thứ hai của dé tài khóa luận là đóng gói bộ vi xử lý Hau hết các

IP trên phần mềm Vivado giao tiếp với nhau thông qua bus AXI4 hoặc AXI3 Trong

khóa luận này, RISC-V sẽ được đóng gói theo chuẩn giao tiếp AXI4 Sau đó kết nốivới các IP khác trên Block Design của phần mềm Vivado đề tạo sự liên kết giữa hai

nội dung Trong Block Design, RISC-V đóng vai trò là một Master, yêu cầu đọc dữ

liệu từ các Slaver thông qua bus AX14, tính toán và lưu các giá trị đó vào trong

System Cache, đồng thời trả các giá trị đó cho Slaver hoặc xuất ra Uart

Qua hai nội dung của khóa luận này, nhóm thực hiện hy vọng sẽ tích lũy

được thêm kinh nghiệm về việc thiết kế kiến trúc vi xử lý RISC-V, cải thiện tốc độ

xử lý của vi xử lý theo các kiến trúc đã được học, về thiết kế hệ thống có tích hợpcác khối IP có sẵn Ngoài ra hiểu về cách sử dụng BUS AMBA AXI4 dé truyềnnhận dữ liệu trong hệ thống Đóng góp cho sự phát triển của kiến trúc RISC-V

13

Trang 14

MỞ DAU

Ngày nay, nhu cầu về chip bán dẫn của ngành sản xuất các thiết bị thôngminh ngày càng tăng cao, tình trạng dịch Covid-19 trở nên phức tạp, mọi người dần

chuyền đổi sang hình thức học tập, làm việc trực tuyến và giải trí tại nhà Chính vì

vậy, việc phát triển các thiết bị thông minh, hiện đại, đòi hỏi các thiết bị phải có vi

xử lý mạnh mẽ, đáp ứng các nhu cầu của người dùng càng trở nên cấp thiết hơn

Tuy nhiên, giá thành cấu tạo các vi xử lý còn cao do qui trình chế tạo phức tạp, thêm

với đó là những khó khăn đến từ van dé thiếu hụt nguyên liệu và nhân công do bốicảnh dịch Covid-19 kéo dài hiện nay Các vấn đề trên càng làm tăng thêm sự quantrọng của các vi xử lý trong các thiết bị thông minh

Từ thực trạng được nêu trên, chúng ta thay được sự cần thiết trong việc tối

ưu hóa các bộ vi xử lý Một trong những giải pháp được đề xuất là thiết kế các vi

xử lý phù hợp với thiết bị thông minh Một vi xử lý với câu trúc lệnh don giản dé

có thê giảm số lượng các công logic trên thiết kế, làm giảm năng lượng hoạt độngcho vi xử lý, khi ấy nhà sản xuất sẽ điều chỉnh giá thành hợp lý hơn, từ đó làm giảm

giá thành khi đến tay người ding

Tai mức độ là sinh viên nghiên cứu, nhóm chúng em đề xuất dé tài khóa

luận mang tên “NGHIÊN CỨU THIÉT KÉ BỘ VI XỬ LÝ RISC-V 32-BIT THEOKIEN TRÚC PIPELINE”, đề tài khóa luận có hai nội dung Nội dung thứ nhất

hướng đến việc thiết kế vi xử lý RISC-V theo kiến trúc Pipeline 5-stage, tăng số

lượng lệnh có thé xử lý trong đường ống của vi xử lý Nội dung thứ hai đó là tinh

chỉnh vi xử lý RISC-V thành một Master, có thể giao tiếp với các Slaver (SystemCache) khác thông qua bus AXI4 Mục đích của nội dung này hướng đến việc tiếpcận thiết kế theo kiến trúc của các vi xử lý ngày nay, nhằm đóng góp cho sự phát

triên của ngành vi mạch.

Trang 15

Chương 1 TONG QUAN

1.1 Gi6i thiệu về kiến trúc tập lệnh

Kiến trúc tập lệnh (ISA) là một phan trừu tượng của máy tính xác định cáchCPU được điều khiển bởi phần mềm ISA hoạt động như một giao diện giữa phần

cứng và phần mềm, chỉ định cả những gì bộ xử lý có khả năng thực hiện cũng như

cách nó được thực hién.[1]

ISA cung cấp cách duy nhất dé người dung có thể tương tác với phần cứng

Nó có thể được xem như số tay hướng dẫn của lập trình viên vì nó là phần của máyhiển thị với người lập trình hợp ngữ, người viết trình biên dịch và người lập trình

ứng dung [1]

ISA xác định các kiểu đữ liệu được hỗ trợ, các thanh ghi, cách phần cứngquản lý bộ nhớ chính, các tính năng chính (chẳng hạn như bộ nhớ ảo), các lệnh mà

bộ xử lý có thé thực thi và mô hình đâu vào/đầu ra của nhiều triển khai ISA ISA có

thể được mở rộng bằng cách thêm hướng dẫn hoặc các khả năng khác hoặc bằngcách thêm hỗ trợ cho các địa chỉ và giá trị dữ liệu lớn hơn

1.1.1 Tống quan về kiến trúc tập lệnh RISC-V

RISC-V là một kiến trúc tập lệnh (Instruction Set Architecture - ISA) mãnguồn mở dựa trên nguyên tắc RISC giống như MIPS, ngoại trừ RISC-V ISA được

cung cấp giấy phép nguồn mở không yêu cầu bat kỳ khoản phi nào dé sử dụng.Nhiều công ty đang sản xuất hoặc đã giới thiệu phần cứng RISC-V, Hệ điều hành

mã nguồn mở hỗ trợ RISC-V như Nvidia, Western Digital,

RISC-V được cấu trúc như một ISA cơ sở nhỏ với nhiều phần mở rộng tùy

chọn khác nhau ISA cơ sở của RISC-V rất đơn giản, làm cho RISC-V phù hợp chonghiên cứu và giáo dục, nhưng đủ hoàn chỉnh dé trở thành ISA phù hợp cho các

thiết bị nhúng công suất thấp, giá rẻ Các phần mở rộng tùy chọn tạo thành ISA

mạnh mẽ hơn cho mục đích chung và tính toán hiệu suất cao

Trang 16

cấp một

RISC-V cũng xác định một tập hợp các phần mở rộng tiêu chuẩn đề cung

số tính năng cụ thể: [2]

Số nguyên cơ sở ISA, được đặt là “I” (tiền tố là RV32 hoặc RV64 tùy

thuộc vào độ rộng thanh ghi số nguyên) và chứa các lệnh tính toán số

nguyên, nạp số nguyên, lưu số nguyên và điều khién luồng câu lệnh

Phần mở rộng phép nhân và phép chia, được đặt là “M” và them các lệnh

để nhân và chia các giá trị được giữ trong thanh ghi số nguyên

Phan mở rộng lệnh nguyên tử tiêu chuẩn, được ký hiệu là “A”, thêm cáclệnh có thé đọc, sửa đổi và ghi nguyên tử vào bộ nhớ dé đồng bộ hóa giữa

các bộ xử lý.

Phần mở rộng dấu chấm động chính xác đơn tiêu chuẩn, được ký hiệu là

“F”, thêm các thanh ghi dấu chấm động, lệnh tính toán chính xác đơn,

nạp và lưu trữ chính xác đơn.

Phần mở rộng dấu chấm động chính xác kép tiêu chuẩn, được ký hiệu là

“D”, mở rộng các thanh ghi dấu phây động và thêm các lệnh tính toán

chính xác kép, nạp và lưu trữ.

Phần mở Tộng nén tiêu chuẩn, được ký hiệu là “C”, cung cấp các dạng

lệnh phổ biến hon 16-bit

Các tiêu chuẩn khác (L, B, J, T, ) được giới thiệu nhưng đây chi làphiên bản nháp và cần thời gian dé phát triển (Xem chỉ tiết các phần mở

rộng khác trong bang 1.1).

Bang 1.1: Trạng thái phiên bản cua ISA co sở và các phan mở rộng

Base Version | Status

RVWMO | 2.0 Ratified RV321 21 Ratified

RV64I 21 Ratified

RV32E 1.9 Draft RV1281 | 1.7 Draft

Trang 17

Zifencei |2.0

Zam 0.1

Ztso 0.1

Ratified Ratified Ratified

Ratified

Draft Draft

Draft

Draft Draft Draft Draft

Ratified

Ratified

Draft Frozen

1.1.2 Các kiến trúc tập lệnh

x86 là một kiến trúc CISC khác biệt hoàn toàn so với ARM, MIPS,

RISC-V; chúng đều là các thiết kế RISC khác nhau Chi tiết hơn, kiến trúc ARM, MIPS,RISC-V dựa trên một loại kiến trúc phổ biến “load-store” hoặc “register-register”,

có nghĩa là các hoạt động xử lý dữ liệu hoạt động trên nội dung thanh ghi và chi nạp

và lưu trữ các lệnh có thể truy cập bộ nhớ.[3]

Mỗi kiến trúc vẫn có thuận lợi và bắt lợi riêng Bảng 1.2 minh họa ưu điểm

và nhược điểm ISA của chúng; các bộ xử lý được xây dựng từ các ISA này.[3]

Bảng 1.2: Thuận lợi và bắt lợi của mỗi ISA

x86 e Tất cả các phần mềm phổ biến

đã được chuyển sang hoặc được

phát triển cho x86

e Là kiến trúc phổ biến nhất trên

thị trường máy tính xách tay,

máy tính để bàn và máy chủ

¢ Có bộ thanh ghi “anemic”.

e x86 không thể áo hóa theo

cách cổ điền

e _ Yêu cầu cấp phép sử dụng

17

Trang 18

ARMv7 ARMvV7 định nghĩa 3 lớp (A, R,

ARMv8 ARMv8 đã được mở rộng lên

64-bit, tập lệnh được thiết kế từđầu, khắc phục nhiều sự cé cũ

Khả năng tương thích ngược.

ISA được tối ưu hóa quá mức

cho một mẫu vi kiến trúc cụ

thể, five-stage, single-issue,

in-order pipeline.

Yêu cầu cấp phép sử dung

RISC-V Lệnh mã hóa tốt (imm field), có

thể sử dụng một bộ giải mã cho

Nhiều tiện ích mở rộng khôngphải là bản tiêu chuẩn, cần

Trang 19

e _ Cộng đồng đa dạng và có công thời gian đề tối ưu hóa và phát

cụ hỗ trợ triển.

e RISC-V là mã nguồn mở

e Khả năng mở rộng cao.

Kiến trúc X86, ARM, MIPS thiếu một số tính năng kỹ thuật và yêu cầu phi

giấy phép đề hoạt động trên ISA của chúng Đó là lý do tại sao chúng emq chọnRISC-V cho khóa luận của mình, một ISA miễn phí và mở, tránh được những nhược

điểm kỹ thuật của ISA cũ và dé dàng triển khai theo nhiều phong cách vi kiến trúc

Phan tiếp theo giới thiệu thêm về kiến trúc RISC-V

1.2 Chỉ tiết kiến trúc tập lệnh RISC-V

RISC-V được định nghĩa để hỗ trợ nghiên cứu trong các kiến trúc song

song dữ liệu, chữ số la mã “V” được sử dụng như một cách chơi chữ, đó là chữ viếttắt của “Vector” RISC-V tạo ra ISA phù hợp với hầu hết mọi thiết bị máy tính và

chúng đáp ứng tất cả các mục tiêu kỹ thuật cụ thể khi bắt đầu phát triển ISA này:(3]

¢ Tách ISA thành một ISA cơ sở nhỏ va các phần mở rộng tùy chon

e H6 trợ cả không gian đại chi 32-bit và 64-bit.

e Tao điều kiện thuận lợi cho các phần mở rộng ISA tùy chỉnh

e - Hỗ trợ phần mở rộng tập lệnh có độ dài thay đồi

© _ Cung cấp hỗ trợ hóa phan cứng hiệu quả cho các tiêu chuẩn hiện dai

¢ Truc quan hóa ISA cia người dùng và kiến trúc đặc quyền

Trong khóa luận này, nhóm thực hiện nhóm lệnh RV32I, đây là ISA sốnguyên 32-bit cơ sở RV32I là một tập lệnh đơn giản, số lượng lệnh phần cứng ởmức độ người dùng lên đến 40 lệnh, đủ hoàn chỉnh dé tạo thành mục tiêu trình biên

dịch và đáp ứng các yêu cầu cơ bản Giống như các bộ lệnh RISC khác, các lệnhnày được chia thành ba loại (tính toán, luồng điều khiển và truy cập bộ nhớ) Bởi vì

RISC-V là kiến trúc lưu trữ nạp, trong đó các lệnh số học chỉ hoạt động trên cácthanh ghi, chỉ tải và lưu trữ cho phép truyền dữ liệu đến và đi từ bộ nhớ

19

Trang 20

Các chế độ định địa chỉ của hướng dẫn RISC-V như sau:

© Định địa chi tức thời, trong đó toán hạng là một hằng số trong chính

lệnh đó.

e Dinh địa chỉ thanh ghi, trong đó toán hạng là một thanh ghi.

¢ Định địa chỉ cơ sở hoặc chuyền vị, trong đó toán hạng ở vị trí bộ nhớ

có địa chỉ là tong thanh ghi và một hang số trong lệnh

e Định địa chỉ tương đối PC, trong đó địa chỉ nhánh là tổng PC và một

hằng số trong lệnh

Bảng 1.3 sau cho thấy 32 thanh ghi có chiều rộng 32-bit và được gan chomột mục đích sử dụng cụ thé Thanh ghi x0 được nối với tất cả các bit bằng 0 Thanh

ghi đích x1 - x31 giữ các giá trị mà các lệnh khác nhau diễn giải dưới dang tập hợp

các giá trị Boolean hoặc dưới dạng bồ sung của hai số nguyên nhị phân có dấu hoặc

số nguyên nhị phân không dau Thanh ghi bổ sung duy nhấy là bộ đếm (pc) cụ thé

là chứa địa chỉ của lệnh hiện tại [2]

Bang 1.3: Quy ước các thanh ghi cua RISC-V

Name (ABI) Repair Usage

number x0(zero) 0 The constant value

x10-x17 (a0-a7) 10-17 | Arguments/results

Trang 21

x18-x27 (s0- 18-27 | Saved

sll)

X28-x3 1 (t3-t6) 28-31 | Temporaries

Bến mươi lệnh được mã hóa thành các định dạng lệnh: R, I, S, B, U, J (được

mô tả ở hình 1.1) Trong các định dạng ngày, các lệnh tạo nguồn tối đa hai toánhạng thanh ghi, được xác định bởi rsl và rs2 và tạo ra tối đa một kết quả, ghi vào

thanh ghi rd Một tính năng quan trọng của mã hóa này là các thanh ghi “specifiers”,

luôn chiếm một vị trí trong lệnh Thuộc tinh này cho phép tìm nạp thanh ghi tiếnhành song song với giải mã lệnh, cải thiện một đường dẫn quan trọng trong nhiều

triển khai

3i 30 25 24 2L 20 19 15 14 1211 8 # 6 0

funct7 rs2 rsl funct3 rd opcode

imm{11:0] rs] funct3 rd opcode

imm/[11:5] 1S2 rsl fñunet3 imm|4:0] opcode

imm[T5] | imm[10:5] 152 xsl ñmet3 | imm[41]] imm[TT] | opcode

imm[31:12] rd opcode

imm[20] imm({10:1] imm[II] imm[19:12] rd opcode

Hình 1.1: Dinh dang tập lệnh RV32I

Chức năng của từng lệnh mà nhóm thực hiện sử dụng trong khóa luận này

được thé hiện trong bảng 1.4 (dé giữ nguyên được ý nghĩa của lệnh nhóm xin phépđược sử dụng tiếng anh đề trình bày)

Bang 1.4: Lệnh RV32I thông qua ngôn ngữ assembly

Lệnh Ví dụ Ý nghĩa Ghi chú

Three register Add add x5, x6, x7 x5 =x6+x7

Trang 22

Add immediate addi x5, x6, 20 x5 = x6 +20

Trang 23

Store halfword sh x5, 40(x6) Memory[x6 + 40] = x5

Halfword from register to

memory

Byte from Load byte Ib x5, 40(x6) | x5 = Memory[x6 + 40] | memory to

Byte from register

Store byte sb x5, 40(x6) | Memory[x6 + 40] = x5

to memory

Load; Ist half of

Load reserved Ir.w x5, (x6) x5 = Memory[x6] an atomic swap

Trang 24

And immediate | andi x5, x6, 20 x5 = x6 & 20

reg with constant

Inclusive or Bit-by-bit OR reg.

ori x5, x6, 20 x5 = x6 | 20

immediate with constant

Exclusive or Bit-by-bit XOR

xori x5, x6, 20 x5 =x6% 20

immediate reg with constant

Shift left Shift left by

sll x5, x6, x7 x5 = x6 << x7 logical register

Shift right Shift right by

Trang 25

Shift right Arithmetic shift

arithmetic srai x5, x6, 3 x5 =x6>>3 right by

immediate immediate

PC-relative beq x5, x6, if (x5 == x6) go to

Branch if equal branch if registers

branch if registers greater or equal 100 PC+100

greater or equal

PC-relative Branch if less, bltu x5, x6, if (x5 < x6) go to

Jump and link jalr x1, x1 = PC+4; go to Procedure return;

register 100(x5) x5+100 indirect call

Trang 26

1.43 Thiết kế hệ thống của CPU

Thiết kế FPGA bao gồm các thành phan trong hệ thống máy tính (mô tả

Trang 27

Chương 2 THIET KE VI XỬ LÝ RISC-V 32-BIT

2.1 Tổng quan thiết kế vi xử lý

Cấu trúc CPU RISC-V pipeline được phát triển từ CPU RISC-V đơn chu

kỳ có sơ đồ khối như hình 2.1

Prm h

inst[24:201 Ja

lg immSel RegWEn BrUnBrEqBrLT BSel ASel ALUSel MemRW 'WBSel

câu lệnh cần nhiều nhất là 5 công đoạn Các trang thái được mô tả chỉ tiết như bảng

2.1.

Bảng 2.1: Bảng mô tả các công đoạn khi xử lý câu lệnh

IF ID EX MEM WB Instruction | Instruction Execute/addressl Memory access | Write back

Fetch decode/register | calculation

file read

Nap lénh Giải mã lệnh Tính toán Truy cập MEM Ghi ket quả

(nêu có) vào bộ nhó

(nêu có)

Cấu trúc pipeline tăng hiệu suất của CPU bằng cách cho các câu lệnh thực

hiện song song, giúp cho việc thực thi một chương trình gồm nhiều câu lệnh trở nên

27

Trang 28

nhanh hơn Tuy nhiên, cần chú ý là pipeline sẽ không làm giảm thời gian thực thicủa một câu lệnh Khi thiết kế CPU có áp dụng pipeline, các giá trị của các tầngpipeline phải được lưu trữ để được xử lý ở các tầng tiếp theo Do đó thiết kế củaCPU đơn chu kỳ sẽ được chia làm 5 tầng tương ứng với 5 công đoạn, ngoài ra giữacác công đoạn sẽ được chèn thêm các thanh ghi đề lưu trữ các tín hiệu từ tầng trước

như hình 2.2.

HH

Hình 2.2: Hình mô tả chỉ tiết các khối chức năng trong vi xử lý 32-bit RISC-V

5-Stage pipeline sử dụng trong khoá luận Các thanh ghi thêm vào được mô tả sau đây:

e Thanh ghi IF to ID: Là thanh ghi pipeline phân chia giữa tầng tìm

e Thanh ghi MEM to WB: Là thanh ghi pipeline phân chia giữa tang

truy cập bộ nhớ và tầng ghi kết quả

2.2 Lý thuyết về xung đột (Pipeline hazard)

Trang 29

2.2.1 Xung đột cấu trúc (Structure hazard)

Xung đột cấu trúc: Xảy ra khi có hai câu lệnh cần truy cập vào cùng mộtphần cứng trong cùng một chu kỳ nhưng phần cứng chỉ có thể thực thi một câu lệnhtrong một chu kỳ Nói cách khác, xung đột cấu trúc xảy ra khi có hai lệnh cùng truyxuất vào một tài nguyên phần cứng nào đó củng một lúc

Xung đột cấu trúc trong pipeline xảy ra với lệnh Load, khi câu lệnh cần ghi

dữ liệu vào bộ nhớ trong lúc một lệnh khác đang truy cập bộ nhớ.

Dé giải quyết Structual hazard trong trường hợp này, dữ liệu của câu lệnh

R-format sẽ được lưu vào các thanh ghi để được xử lý sau khi xử lý lệnh Load

Xung đột dữ liệu xảy ra khi một câu lệnh không thể được xử lý trong chu

kỳ đã định trước vì dữ liệu cần được xử lý chưa xuất hiện Data hazard có thé được

chia làm 2 loại:

e R-format instruction

Xung đột dữ liệu có thé được khắc phục bằng cách sử dung “stall” — không

làm gì cả cho đến khi dữ liệu dé tính toán xuất hiện

Xét ví dụ sau:

29

Trang 30

add x1, x2,x3

sub x4, x1,x5

Nếu sử dung stall ta mat 3 chu ki trống Tuy nhiên dữ liệu cho x đã có sau

khi ALU tính toán tại Excecute stage mà không cần đợi đến Write back dé lấy dữ

»

liệu Việc gửi dữ liệu trực tiếp ngay từ ALU gọi là “forwarding”

Program

xecuion 200 400 600 800 1000order Time T

order Time 200 400 600~

(in instructions) a :

Id x1, 0(x2) [r]z l i

© QO © © Oo.

sub x4, x1, x5 L8 © if MEM [ite

Hình 2.5: Giải quyết xung đột dữ liệu lệnh Load

2.2.3 Xung đột điều khiển (Control/Branch hazard)

800 1000 1200 1400

Trang 31

Xung đột điều khiển xảy ra khi một câu lệnh không được xử lý trong chu

kỳ đã được định vì câu lệnh được giải mã ở chu kì trước không phải câu lệnh cần

được thực thi.

Có thé xử lý xung đột điều khiển theo hai cách:

e Stall: khi có lệnh nhảy có điều kiện, chương trình sẽ được stall cho

đến khi thực thi xong lệnh nhảy

Program execution order

Hình 2.6: Xử lý xung đột điều khiển theo cách Stall

e Predict: khi có lệnh nhảy có điều kiện, chương trình thực hiện dự

đoán địa chỉ câu lệnh kế tiếp và thực thi Tuy nhiên nếu kết quả dựđoán sai sẽ phải thực hiện lại từ đầu

Program

exgcuton Time 200 400 600 800 1000 1200 1400

{in instructions)

ade x4, x5, x6 [2°] [reg] xu | 282, [reo

bon, x0.40 fe] [reo] xu | 5, [Pa

Id x3, 400(x0) “poops | aan’ Reg] alu | „238, | Reg

Program

execution Time 200 400 600 800 1000 1200 1400

th instctons

add x4, x5, x6 [clon] | eg) Atu | „25, | Reg

beq xi x0, 40 eet] Au | 288, Treo

CESSES Es

or x7, x8, x9 ae ee reo] Au | 22 Troe

Hình 2.7: Xử lý xung đột điều khiển theo cách Predi

31

Trang 32

2.3 Các khối chức năng có trong vi xử lý thông qua từng giai đoạn

2.3.1 Controller

Tín hiệu điều khiển trong CPU pipeline được giữ nguyên so với CPU đơnchu kỳ Tuy nhiên, không phải tat cả tín hiệu đều được sử dụng trong cùng một chu

kỳ, cho nên các tín hiệu điều khiển phải được lưu trữ thông qua các thanh ghi

pipeline cho đến khi được sử dụng

we

Ji

EXL M wB

IFAD ID/EX EX/MEM MEM/WB.

Hình 2.8: Hình mô tả các tín hiệu control qua các tang

Trong thiết kế, khối Controller có chức năng điều khiển các khối khác đểthực hiện một câu lệnh nhất định nào đó, ngoài ra, các tín hiệu điều khiển cũng được

truyền qua khối chức nang Mux Hazard dé xử lý các xung đột

32

Controller

Asel (c) Bsel (c)

imm sel&) BrUn (e)|

Hinh 2.9: Module Controller trong thiét ké

e Hoạt động:

Trang 33

Bảng 2.2: Bảng mô tả tín hiệu điều khiển khối ALU

01 haltA (F rewrite, IF_to_ID work

10 haltB (F rewrite, IF_to_ID block)

11 haltC (F flow, IF_to_ID block)

Bang 2.5: Bảng mô tả tín hiệu điều khiển khối Imm_Gen

Trang 34

Các tin hiệu ngõ vào và ngõ ra:

Bang 2.9: Bảng các tín hiệu trong module Controller

Width Tên tín hiệu | /O (bit) Y nghia

BrEq I Tin hiệu điều khién cho lệnh so sánh bằng

BrLt I Tin hiệu điều khién cho lệnh so sánh nhỏ hơn

inst I 32 Câu lệnh hiện tại

Lpc_sel io) 2 Tin hiéu diéu khién thanh ghi PC

RegEn O Tín hiệu điều khiên tập thanh ghi Regfiles

BrUn o Tín hiệu điều khiến cho lệnh nhảy

Asel O Tín hiệu điều khién cho mux A

Bsel Oo Tin hiéu điều khiển cho mux B

MemRW O Tín hiệu điều khién cho Memory

imm_sel O 3 Tín hiệu điều khién cho khối Imm_gen

Alu_sel (a) 4 Tin hiệu điều khiến (opcode) của ALU

WBsel (a) 2 Tin hiệu điều khién cho Mux WB

2.3.2 Instruction Fetch (IF)

Trang 35

o PC reset về địa chi ban đầu khi có tín hiệu rst_n tích cực thấp.

o PC cập nhật địa chỉ câu lệnh tiếp theo khi có tín hiệu clk tích cực

cao.

o Khi có tín hiệu pc_rewrire, halt, PC giữ nguyên giá trị hiện có.

o_ Khi giá trị của pc_sel là 2'b01, ngõ ra pc_out sẽ lay giá trị

pc_branch từ khối add_br để nhảy đến địa chỉ tương ứng Khipc_sel là 2’b10 (dùng cho lệnh JAL, JALR), ngõ ra pc_out lay

giá trị của pc_alu sau khi khối ALU tính toán xong

Các tín hiệu ngõ vào và ngõ ra:

Bảng 2.10: Bảng các tín hiệu trong thanh ghỉ PC

Tên tín hiệu | /O “ep Y nghia

clk I 1 Tín hiệu xung clock tích cực cạnh lên

tst_n I 1 Tin hiệu reset tích cực mức thấp

pe_rewrite I 1 Tin higu thông báo dé PC giữ nguyên giá trị

hiện tại

pc_in I 32 Dia chi PC dau vao

pc_branch 1 32 Địa chỉ PC mà lệnh Branch sử dụng đề nhảy tới

pc_alu I 32 Dia chi PC sau khi ALU tinh toan xong dia chi

pe_sel I 2 Tin hiéu dé chon giữa pe_branch hoặc pc_selhalt I 2 Tin hiệu dé hold địa chi PC hiện tai

pc_out O 32 Địa chỉ PC đầu ra

Trang 36

b) Program Counter add 4 (PC_add4)

e _ Khối chức năng tính toán địa chỉ của câu lệnh kế tiếp

Fe pe PC,

—-Hình 2.11: Module Program Coumter add 4(PC_add4)

e Các tín hiệu ngõ vào và ngõ ra:

Bang 2.11: Bang các tín hiệu trong thanh ghi PC_add4

An ge pen Width ý 5

Tên tín hiệu | ƯO (bit) Y nghia

pe_in I 32 Dia chi PC dau vao

pc_out I 32 Dia chi PC dau ra

c) Instruction Memory (IMEM)

e _ Khối chức năng đóng vai trò là bộ nhớ của chương trình, chứa câu lệnh

có địa chỉ lưu trong PC Khối này được dùng tạm thời dé test chức năng

của CPU trước khi được tháo ra đề tiến hành thiết kế Block Design

Trang 37

Bảng 2.12: Bảng các tín hiệu trong module IMEM

¬ Width ý 5

Tên tín hiệu | /O (bit) Y nghia

PC I 32 —_ | Dia chi cần đọc câu lệnh

inst 1 32 Câu lệnh tương ứng với địa chỉ PC

d) Thanh ghi IF to ID (IF_to_ID)

¢ _ Khối chức năng lưu các giá trị từ tang Instruction Fetch

o Các giá trị từ tang Instruction Fetch như: pc_add4, pc_in, inst_in

được cập nhật sau mỗi chu kì clock clk và bị xoá khi có rst_n.

o Khi có tín hiệu stage/_rewrite, các gia trị trong thanh ghi nay

được giữ nguyên.

o Khi có tín hiệu halt, các giá trị trong thanh ghi là unknown

(32°hxxxxxxxX).

37

Trang 38

e Các tín hiệu ngõ vào và ngõ ra:

Bang 2.13: Bảng các tín hiệu trong thanh ghi IF_to_ID

Tên tín hiệu | 1/0 — Ý nghĩa

clk I 1 Tín hiệu xung clock tích cực cạnh lên

Tst_n I 1 Tin hiệu reset tích cực mức thấp

pc_add4 I 32 Địa chi PC từ khối PC_add4

pc_in 1 32 Địa chỉ PC từ khối PC

inst_in I 32 Cau lệnh tương ứng với dia chi PC được nap

vào CPU

halt I 2 Tin hiệu hoãn

stagel_rewrite | I 1 Tin hiệu hoãn

inst_out O 32 | Câu lệnh cần thực thi

pc_out oO 32 Dia chi PC dau ra

pe_add4_out O 32 Địa chỉ PC_add4 đầu ra

2.3.3 Instruction Decode (ID)

Giai đoạn Intruction Decode bao gồm 5 khối chức năng chính: Register File,

Immediate Gen, Branch Detection, Branch Comparator, ID to EX Register.

a) Register File

¢ Tập các thanh ghi cho phép truy xuất dữ liệu, bao gồm 32 thanh ghi,

mỗi thanh ghi có độ dài 32 bits.

lek stn

Hinh 2.14: Register file

o Khi có tín hiệu c/k, module sử dung giá tri inst1[19:15] để xác

Trang 39

rs2 và xuất giá trị lưu trong rs2 đến ngõ ra dataB; sử dụng giá trịrd_out2 dé xác định miền rd.

o Khi có tín hiệu cho phép ghi RegWen_out3, giá tri của wb sẽ

được lưu vào tập thanh ghi.

o Để dam bảo trong mỗi chu kỳ chỉ có một câu lệnh được xử lý,

các tín hiệu điều khiển được lấy từ tang Write Back

e Cac tín hiệu ngõ vào và ngõ ra:

Bảng 2.14: Bảng các tín hiệu trong RegFile

Tên tín hiệu | /O “bio Y nghia

clk I 1 Tin hiệu xung clock tích cực cạnh lên

rst_n I 1 Tín hiệu reset tích cực mức thấp

TsỈ I 5 Trường giá trị rs] của inst]

rs2 I 5 Trường giá trị rs2 của inst]

rd I S Trường giá tri rd

wb I 32 Dữ liệu cần ghi sau khi tính toán

RegWen I 1 Tín hiệu cho phép ghi (1: write, 0: read)

dataA O 32 —_ | Dữliệu đầuraA

dataB fe) 32 | Dir liệu dau ra B

b) Immediate Generator (imm_gen)

© Khéi chức năng thực hiện mở rộng dấu tuỳ thuộc vào câu lệnh đang

Hinh 2.15: Module imm_gen

¢ Hoat động: Tin hiệu điều khiển imm_sel từ khối Controller quyết định

cách mở rộng dấu tuỳ thuộc vào dạng lệnh (I, S, B, U, J, R)

e Các tín hiệu ngõ vào và ngõ ra:

39

Trang 40

Bang 2.15: Bang các tín hiệu trong khối imm_ gen

Tên tín hiệu | /O “bio Y nghia

imm_in I 25 Tin hiệu ngõ vào từ trường giá trị inst]/31:7]

imm_sel I 3 Tín hiệu điều khién thao tác mở rộng dấu

imm_out O 32 Tín hiệu ngõ ra sau khi được mở rộng dâu

c) Branch Comparator (br_comp)

e Khối chức năng thực hiện so sánh dùng cho các lệnh Branch

BrEq Brit BrUn (c) br_comp

sl 12

Hinh 2.16: Module Branch Comparator

e Hoat động:

o So sánh giá trị giữa dataA va dataB, nếu kết quả nhỏ hon thì xuất

giá tri BrLt là 1, nếu lớn hơn là 0, nếu bằng thì xuất giá trị BrEq

về Controller

o Ngõ vào BrUn quyết định phép so sánh là có dau hay không dau

e Các tín hiệu ngõ vào và ngõ ra:

Bang 2.16: Bang các tín hiệu trong khối br_comp

Tên tín hiệu | /O “ep Ý nghĩa

rsl 1 32 Ngõ vào A

rs2 I 32 Ngõ vào B

BrUn I 1 Tin hiệu điều khién phép so sánh có dấu hoặc

không dâu

BrEq O 1 Tín hiệu ngõ ra cho lệnh so sánh bằng

BrLt oO 1 Tin hiệu ngõ ra cho lệnh so sánh nhỏ hon

Ngày đăng: 03/11/2024, 18:43

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

TÀI LIỆU LIÊN QUAN