Chương 1. Giới thiệu đề tài. - 2-2-5 SE SxEE9EE2 E19 Tổng quan đề tài.- - 5c St St9EE9EEEEEEEEEE1211221221211211211211 111111. Mục tiêu đề tài.
GiGi han 6 năäaaủOOOD. Kiến trúc tập lệnh về RISC-V. Tổng quát về RISC-V. Kiến trúc tập lệnh cơ SỞ.
Sơ lược về khối tính toán về số dâu chấm động. Số dấu chấm động.--- + k+Ek+Ek+EESEEEEEEEEEEEEEEEkrrrrrrrei 26 2. Thuật toán VediC.------©-<+cE+EE2EEEEECEEEEEEerkerrkrrkrree 28 2. Các trường hợp đặc biệt của số dấu chấm động.
Các phép toán trên số dau chấm. Khối dự đoán lệnh rẽ nhánh (BPU). Thiết kế của vi xử lý RISC-V. Kiến trúc tổng quan của thiết kẾ.
Thiết kế của vi xử lý RISC-V 32IF.-:-5Ec St k2 SE 2221211211111, 46 3.-----¿-<+c++EE+EE+EECEEEEEerkrrrkrrkrree 41 3. St ST TT T TS EEEEEErrkrrerrrerrex 49 3. St St HE 1 E111 21111111111111111EEEEe re51 3. KNOL BPU coeeeescsccccsessessesseessessessesssessecsuessessesssessessesssessessessseesesseeeseess 55 3.
Thiết kế block diagram trên Vivado với AXI4. Kiến trúc khối thiết kế tổng quan giao tiếp qua AX14. Các IP của Xilinx trong thiết kế Block Design. Kết quả đánh giá và kiểm định.
Kết quả độ chính xác của khối FPU. Kết quả mô phỏng của khối RISC-V trên phần mềm ModelSim. Trường hợp kiểm định l. Trường hợp kiểm định 2.
Kết quả sau khi Synthesis và Implement trên phan mềm Vivado. So sánh kết quả với các đề tài nghiên cứu về bộ nhân Vedic. Kết luận và hướng phát triÊn. 67 DANH MỤC HÌNH Hình 2.1 Dinh dạng các lệnh của RISC-V .-- SH HH HH ng nền 19 Hình 2.2 Thanh phan của số dau cham động .3 Phương pháp nhân Urdhva Tiryak Hyam .4 Sơ đồ thuật toán tính toán cộng trừ trên số thực .5 So đồ thuật toán tính phép toán nhân trên số thực.6 Sơ đồ thuật toán tính phép toán chia trên số thực .7 FSM branch prediction theo phương pháp Hybrid Prediction.8 Các kênh giao tiếp giữa Slave và Master.-----¿- 5¿©cxc2cxcscxcrrcee 42 Hình 2.9 Hoạt động của các kênh đọc AT .10 Hoạt động của kênh ghi và phản hồi AXI.1 Kiến trúc tổng quan của vi Xử lý.--- 2 2 s+++++E++EzE+Ezrezrerrerreee 45 Hình 3.---++-++22+++t2EE++ttEEkxtttEkkrtrtrkkrrrtrkrrrrrrerrrieg 48 Hình 3.--+¿-+22++c222v2t 2E tr HH ggiệu 49 Hình 3.6 Khối tính toán phép cộng trừ trong FPU.-- 2-2 2 2+z+sz+£z+z£zs++‡ 53 Hình 3.7 Khối tính toán phép nhân trong FPU .8 Khối tinh toán phép chia trong FPU .9 Khối tính toán cho phép căn bậc hai.2-©22-55255222x2zx>zxeczsez 54 Hình 3.10 Khối chuyên đổi từ số dau cham động sang số nguyên.--- 2: 5£ ©5£+SE+EE2EE£EEEEEEEEEEEE21171711271711211 1121.12 Block Design trên phan mềm Vivado.13 IP Microblaze giap tiếp với IP local memOrY.14 Khối IP UART Lite.---- - + SE SESESE+E+ESEEEEEEEEEEEESEtEeEeEEEkrkrkrrsrrrrsre 58 Hình 4.1 Kết quả kiểm thử độ chính xác của phép cộng/trừ.2 Kết quả kiểm thử độ chính xác của phép nhân .3 Kết quả kiểm thử độ chính xác của phép chia .4 Tập lệnh của trường hợp kiểm định l.5 Kết quả mô phỏng của lệnh nạp của trường hop L.6 Kết quả mô phỏng phép toán cộng số nguyên .7 Kết quả mô phỏng lệnh di chuyền thanh ghi .8 Kết quả mô phỏng phép toán chia trên số dấu chấm động .9 Tập lệnh của trường hợp kiểm định 2.10 Kết quả mô phỏng các lệnh so sánh trên số dau cham động.11 Kết quả mô phỏng phép toán nhân và cộng trên số dấu chấm động.12 Kết quả mô phỏng phép toán trừ s6 dấu cham động.- - - --- << Sc 331133311 £92EE+*EEEEEEESeeeeeerseeeeerereekre 63 Hình 4.- ---- 2011111011111 1111111 1165555555 1111k kg 55 1k 64 DANH MỤC BANG Bang 2.1 Các tập lệnh cơ sở và mở rỘng.-------s«+c+ccxt+xverrresrrkrrrrsrrrrrrkrrrrree 18 Bảng 2.2 Các thanh ghi số nguyên.----ccss+iccvS2treevvtrrervvrrrrrvrrrrrrrrrrrrrrrre 20 Bang 2.3 Các thanh ghi số dấu chấm động.4 Lệnh vi xử lý hỗ trợ.ccccc-iccccceerrreeeerrrrtiererrtrrrrrrrtrrrirrrrrrrrrrrrie 26 Bang 2.5 Các loại số dấu chấm động.6 Các trường hợp đặc biệt của số dấu chấm động .7 Những cờ dé báo hiệu trường hợp đặc biệt.----ss----ccssee 34 Bảng 3.1 Tín hiệu ngõ vào và ngõ ra của khối Datapath.2 Tín hiệu ngõ vào và ngõ ra của khối Controller.3 Tín hiệu ngõ vào và ngõ ra của khối ALU .ccceer:--es 50 Bảng 3.4 Tín hiệu ngõ vào và ngõ ra của khối FPU.5 Tín hiệu ngõ vào và ngõ ra của khối BPU.6 Tín hiệu ngõ vào và ngõ ra của khối RAS.2 So sánh kết qua của khối nhân số chấm động eeesssssssssesssessssseesssseeessssneenasesee 66 DANH MỤC TU VIET TAT Viết tắt Viết đầy đủ Ý nghĩa RISC Reduced Intruction Set Máy tính với tập lệnh đơn Computer gian FPGA Field Programmable Gate | Vi mạch cỡ lớn dùng cau Array trúc mang phan tir logic mà người dùng có thé lập trình ISA Instruction Set Kiến trúc tập lệnh Architecture AUU Arthemic Logic Unit Khối tính toán logic CPU Central Processing Unit | Bộ xử lý trung tâm FPU Floating-Point Unit Khôi tính toán số dau chấm động FP Floating point Số dau châm động BPU Branch Prediction Unit Khối dự đoán lệnh rẽ nhánh MIPS Microprocessor without Kién tric tập lệnh RISC Interlocked Pipeline được thiết kế bơi MIPS Stages Technologies SOC System On Chip Hệ thông được tích hợp điều khiển bởi vi xử lý ARM Advanced RISC Machine | Một kiến trúc RISC VO Input and Output Đầu ra va đầu vào PC Program Counter Thanh ghi PC RAS Return Address Stack Stack chứa các address dùng dé ồn định việc thực thi hàm trong bộ xử lý TÓM TẮT KHÓA LUẬN Nội dung chính của luận văn xoay quanh việc tìm hiểu nghiên cứu và thiết kế bộ xử lý RISC-V cũng như khối Floating point, các số dấu cham động được chuyển đổi dựa vào chuân được đặt ra của IEEE-754 giúp bộ xử lý có thé sử dụng trong đa dạng các trường hợp.
dé giúp việc thực hiện tính toán số dấu cham động nhanh hơn. Đề tài nghiên cứu bao gồm việc tìm hiểu đồng thời về kiến trúc của bộ xử lý RISC-V cũng như các thuật toán được ứng dụng dé thực hiện phép tính trên số dấu cham động. Tiếp đó thiết kế bộ xử lý tích hợp khối Floating-point sẽ được xây dựng, kiểm định bằng ngôn ngữ Verilog và sử dụng phần mềm ModelSim để mô phỏng kiểm thử các chức năng. Cuối cùng thiết kế được kiểm tra, hiện thực trên FPGA sử dụng bộ Kit Virtex 7 với phần mềm hỗ trợ của kit Xilinx thông qua phần mềm Vivado.
Kết quả mong muốn đạt được của luận văn này là thiết kế hệ thống của bộ xử lý RISC-V tích hợp khối Floating-point unit đề thực hiện phép tính trên số dau cham động cũng như hiện thực được trên FPGA. Về mặt tần số hoạt động thì có thé chay én định với tan số tối thiểu là 100MHz. Giới thiệu đề tài 1. Tổng quan đề tài Nguồn gốc của RISC-V (Reduced Instruction Set Computer V) là một kiến trúc tập lệnh (Instruction Set Architecture - ISA) được phát triển bởi Đại học California, Berkeley.
Được bắt đầu nghiên cứu trong một dự án của Phòng thí nghiệm Parlab của Đại học California. Nhóm phát triển bao gồm các thành viên là giáo sư David A. Patterson, Krste Asanovic cùng với nhóm những sinh viên tham gia phát triển và nghiên cứu. Mục tiêu ra đời của RISC-V chính là tạo nên một kiến trúc hệ thống đơn giản, linh hoạt và có thé tự do mở rộng dé thích nghi với thiết bị công nghệ ngày càng phải cải tiến trong thời dai vi mạch phát triển hiện nay.
Khi RISC-V được ra mắt, rất nhiều tổ chức cũng như các công ty hang đầu về công nghệ tham gia vào việc nghiên cứu, phát triển các ứng dụng liên quan như NVIDIA, Western Digital và Google. Hiện nay, RISC-V International ( xưa là RISC-V Foundation ) được quản lý cũng như thúc đây sự phát triển của RISC-V trên toàn cau. Đề phục vụ được cho sự phát triển của các ngành khoa học kỹ thuật hiện nay, các thiết bi công nghệ như máy tinh và điện thoại ngày càng cần phát triển hơn dé phục vụ nhu cầu của người tiêu dùng, dẫn đến sự tăng trưởng trong việc phát triển càng ngày càng nhanh về các bộ xử lý cũng tốt hơn theo đó. Việc nghiên cứu về các chip xử lý đóng vai trò cần thiết dé phục vụ cho xã hội hiện đại ngày nay.
Việc lựa cho RISC-V cho đề tài là tính phô biến và dé dàng phát triển thêm vì là một kiến trúc mang mã nguồn mở. Những điểm mạnh trên giúp kiến trúc của bộ xử lý được cộng đồng hưởng ứng và phát triển mạnh mẽ. Điều đó giúp ta dé dàng nghiên cứu, tối ưu cho đề tài hơn. Với việc mở rộng hướng tiếp cận với cho việc học tập của sinh viên cũng như ứng dụng thực tế trong các sản phẩm cộng nghệ làm cho RISC-V trở nên vô cùng mạnh mẽ ở những năm gần đây, sẽ trở thành xu hướng công nghệ trong những năm sắp tới.
Sự ra đời của kiến trúc RISC-V thì việc phải so sánh với các kiến trúc đã ra đời là điêu chăc chăn phải đê cập đên, các ưu điêm của RISC-V với các kiên trúc 13 khác như x86, ARM, va MIPS trong nhiều khía cạnh. Điều đặc biệt của RISC-V mang mở nguồn khi được đặt mục tiêu phát triển từ đầu duy nhất, với x86 là mã nguồn thuộc sở hữu Intel, ARM là ISA sở hữu của tổ chức ARM Holdings, MIPS là ISA thuộc MIPS Technologies nhưng đã có một số phiên bản mở rộng MIPS OPEN, nhưng không được phép sử dụng cho việc thương mại. Việc hạn chế trong nghiên cứu cũng như phát triển, điều này ảnh hưởng mạnh mẽ đến việc khả năng tùy chỉnh và mở rộng của một kiến trúc với việc không yêu cầu nhiều bản quyền về mã nguồn giúp RISC-V dễ dàng tiếp cận đến bất cứ ai muốn tìm hiểu mà không bị giới hạn bởi bất kì các tiêu chuẩn nào, việc đặt ra các bản quyền về mã nguồn là dé đặt bảo mật lên hàng đầu nhưng điều này cũng dẫn đến sự hạn chế của kiến trúc khi khó có thể tiếp cận đến các đa dạng các nhà thiết kế, chỉ gói gọn với các nhà thiết kế trong tổ chức cũng như có nhu cầu chủ động xin các giấy phép thiết kế của các công ty sở hữu. Điều khác biệt thứ hai được nhắc đến ở đây là kiến trúc thiết kế của hệ thống.
RISC- V được thiết kế với mục tiêu đơn giản hóa. Có tập lệnh cơ bản nhỏ gon, dễ hiểu, và dễ triển khai. Kiến trúc x86 có một tập lệnh rất phức tạp và phức tạp do sự phát triển liên tục và việc giữ lại tính tương thích ngược. Điều này làm tăng độ phức tạp của thiết kế và thực hiện.
thiết kế cũng khá đơn giản so với x86, nhưng không đơn giản bằng RISC-V. ARM có tập lệnh RISC và nhiều mở rộng đề hỗ trợ các ứng dụng hiện đại. Còn với MIP thì mang thiết kế RISC đơn giản và gọn gàng, được ứng dụng rất nhiều trong các trường đại học cho một số môn học liên quan đến kiến trúc đối với thương mại nhưng ít phổ biến và được sử dụng rộng rãi so với ARM và x86.