Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế và hiện thực lõi vi xử lý risc v rv64if hỗ trợ 4 way set associative cache và branch prediction trên fpga

Luận văn tốt nghiệp kỹ thuật nghiên cứu tốt nghiệp kỹ thuật máy tính thiết kế và hiện thực lõi vi xử lý risc v rv64if hỗ trợ 4 way set, điều tra thực trạng, phân tích số liệu, đề

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2023

70
4
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1. Mục tiêu đề tài

1.2. Kiến trúc tập lệnh RISC-V

1.3. Giới thiệu về số floating point

1.4. Phép chia và phép tính căn bậc 2 của số floating point

1.5. Các lệnh được sử dụng trong hệ thống

2. CHƯƠNG 2: KIẾN TRÚC TẬP LỆNH RISC-V

2.1. Tổng quát

2.2. Kiến trúc tập lệnh cơ sở

2.3. Xử lí hazards

2.3.1. Forwarding

2.3.2. Stall

2.3.3. Flush

3. CHƯƠNG 3: THIẾT KẾ VI XỬ LÝ RISC-V 64IF

3.1. Mô tả tổng quan hệ thống

3.2. Thiết kế Cache

3.2.1. Tổng quan khối Cache

3.2.2. Khối Cache memory

3.3. Tổng quan khối BPU

4. CHƯƠNG 4: MÔ PHỎNG VÀ ĐÁNH GIÁ THIẾT KẾ

4.1. Kết quả mô phỏng

4.2. Kết quả Synthsis trên phần mềm Vivado suite

4.3. Kết quả Implement trên phần mềm Vivado suite

4.4. Thiết kế Block Design trên Vivado với giao thức AXI4

4.4.1. Tổng quan giao thức AXI4

4.4.2. Thiết kế Block Design trên Vivado

4.4.3. Các IP của Xilinx dùng trong thiết kế Block Design

4.4.4. IP Microblaze giao tiếp với local memory

4.5. Kết quả thực thi trên FPGA

6. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Ưu điểm và hạn chế của thiết kế

6.2. Hướng phát triển

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

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

Tóm tắt

I. Tổng quan về Thiết Kế Vi Xử Lý RISC V 64IF Hỗ Trợ Cache 4 Way Set Associative

Thiết kế vi xử lý RISC-V 64IF đang trở thành xu hướng trong lĩnh vực công nghệ thông tin. Với khả năng hỗ trợ bộ nhớ đệm 4-way set associative, vi xử lý này hứa hẹn mang lại hiệu suất cao hơn cho các ứng dụng nhúng và IoT. Việc tích hợp bộ dự đoán nhánh cũng giúp cải thiện tốc độ thực thi của các chương trình phức tạp. Nghiên cứu này sẽ đi sâu vào các khía cạnh kỹ thuật và ứng dụng thực tiễn của thiết kế này.

1.1. Giới thiệu về Kiến Trúc RISC V và Ứng Dụng

Kiến trúc RISC-V là một trong những kiến trúc vi xử lý mở, cho phép tùy chỉnh và tối ưu hóa cho từng ứng dụng cụ thể. Sự linh hoạt này đã thu hút sự quan tâm từ nhiều nhà sản xuất và nhà phát triển phần mềm.

1.2. Tầm Quan Trọng của Cache 4 Way Set Associative

Bộ nhớ đệm 4-way set associative giúp cải thiện tốc độ truy xuất dữ liệu, giảm thiểu độ trễ trong quá trình xử lý. Điều này đặc biệt quan trọng trong các ứng dụng yêu cầu hiệu suất cao.

II. Vấn Đề và Thách Thức Trong Thiết Kế Vi Xử Lý RISC V

Mặc dù thiết kế vi xử lý RISC-V mang lại nhiều lợi ích, nhưng cũng đối mặt với nhiều thách thức. Việc tối ưu hóa hiệu suất trong khi giảm thiểu chi phí là một trong những vấn đề lớn nhất. Ngoài ra, việc tích hợp các thành phần như cache và bộ dự đoán nhánh cũng đòi hỏi sự cân nhắc kỹ lưỡng.

2.1. Thách Thức Về Tối Ưu Hóa Hiệu Suất

Tối ưu hóa hiệu suất trong thiết kế vi xử lý RISC-V là một thách thức lớn. Cần phải cân nhắc giữa tốc độ xử lý và tiêu thụ năng lượng để đạt được hiệu quả tối ưu.

2.2. Vấn Đề Tích Hợp Cache và Dự Đoán Nhánh

Việc tích hợp cache 4-way set associative và bộ dự đoán nhánh vào vi xử lý RISC-V đòi hỏi sự đồng bộ hóa và thiết kế chính xác để đảm bảo hiệu suất cao nhất.

III. Phương Pháp Thiết Kế Vi Xử Lý RISC V 64IF Trên FPGA

Phương pháp thiết kế vi xử lý RISC-V 64IF trên FPGA bao gồm việc sử dụng ngôn ngữ thiết kế phần cứng Verilog để xây dựng các thành phần chính như cache và bộ dự đoán nhánh. Việc mô phỏng và đánh giá thiết kế cũng rất quan trọng để đảm bảo tính khả thi và hiệu suất.

3.1. Thiết Kế Phần Cứng Bằng Verilog

Sử dụng Verilog để thiết kế phần cứng cho vi xử lý RISC-V 64IF cho phép tạo ra các mô hình chính xác và dễ dàng điều chỉnh. Điều này giúp tối ưu hóa hiệu suất và giảm thiểu lỗi trong quá trình phát triển.

3.2. Mô Phỏng và Đánh Giá Thiết Kế

Mô phỏng thiết kế trên phần mềm Vivado giúp đánh giá hiệu suất của vi xử lý trước khi hiện thực hóa trên FPGA. Kết quả mô phỏng cung cấp thông tin quý giá để điều chỉnh thiết kế.

IV. Ứng Dụng Thực Tiễn Của Vi Xử Lý RISC V 64IF

Vi xử lý RISC-V 64IF với cache 4-way set associative và bộ dự đoán nhánh có thể được ứng dụng trong nhiều lĩnh vực khác nhau, từ thiết bị IoT đến các hệ thống nhúng phức tạp. Những ứng dụng này không chỉ cải thiện hiệu suất mà còn giảm thiểu chi phí sản xuất.

4.1. Ứng Dụng Trong Thiết Bị IoT

Vi xử lý RISC-V 64IF có thể được sử dụng trong các thiết bị IoT, nơi yêu cầu hiệu suất cao và tiêu thụ năng lượng thấp. Điều này giúp cải thiện trải nghiệm người dùng và tăng cường khả năng kết nối.

4.2. Ứng Dụng Trong Hệ Thống Nhúng

Các hệ thống nhúng phức tạp có thể tận dụng vi xử lý RISC-V 64IF để xử lý dữ liệu nhanh chóng và hiệu quả. Điều này giúp nâng cao khả năng cạnh tranh của sản phẩm trên thị trường.

V. Kết Luận và Tương Lai Của Thiết Kế Vi Xử Lý RISC V

Thiết kế vi xử lý RISC-V 64IF hỗ trợ cache 4-way set associative và dự đoán nhánh trên FPGA không chỉ mang lại hiệu suất cao mà còn mở ra nhiều cơ hội mới cho các ứng dụng trong tương lai. Sự phát triển của RISC-V hứa hẹn sẽ tiếp tục thu hút sự quan tâm từ cộng đồng nghiên cứu và phát triển.

5.1. Kết Luận Về Hiệu Suất

Kết quả nghiên cứu cho thấy vi xử lý RISC-V 64IF với các tính năng mới đã cải thiện đáng kể hiệu suất so với các thiết kế trước đó. Điều này chứng tỏ rằng RISC-V là một lựa chọn khả thi cho các ứng dụng hiện đại.

5.2. Hướng Phát Triển Trong Tương Lai

Trong tương lai, việc phát triển thêm các tính năng mới cho vi xử lý RISC-V sẽ tiếp tục được nghiên cứu. Điều này bao gồm việc tối ưu hóa hơn nữa hiệu suất và khả năng tương thích với các công nghệ mới.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính thiết kế và hiện thực lõi vi xử lý risc v rv64if hỗ trợ 4 way set associative cache và branch prediction trên fpga

Trích đoạn nội dung tài liệu

Chương 1. Giới thiệu dé tài. Mục tiêu đề tài. GiGi ham an cố.

Kiến trúc tập lệnh RISC-V. Kiến trúc tập lệnh CƠ SỞ.- Làn HH HH re 17 2. Giới thiệu về số floating point. Phép chia và phép tinh căn bậc 2 của số floating point.

Các lệnh được sử dụng trong hệ thống “. Bộ nhớ đệm — Cache. Phương pháp ánh xạ Cache. Chính sách thay thé Cache — LRU.

Ưu điểm của Cache associative 4-way và chính sách thay thế LRU 29 2. Bộ dự đoán rẽ nhánh (BPU). c 1211 v11 11 1 H1 ng ng ng ng cư 31 2. Du đoán thích nghi hai lớp.

-¿ ¿<5 se S‡£+xsevrerersrekree 32 Chương 3. Thiết kế vi xử lý RISC-V 64IF. Mô tả tổng quan hệ thống .---2--©2+2222+2EE22E2E22EE221E2EEeEExcrrrree 33 3. Thiết kế vi xử lý RISC-V 64IF.

Thiết kế Cache. Tổng quan khối Cache. Khối Cache memory. _ Tổng quan khối BPU.

Khối Sâf_ COUIẨ€T_ ATTAY. 22652 1 1231 SH HH re49 Chương 4. Mô phỏng và đánh giá thiết kế. Kết quả mô phong.

Kết qua Synthsis trên phần mềm Vivado suite. Kết quả Implement trên phần mềm Vivado suite. Thiết kế Block Design trên Vivado với giao thức AXI4. Tổng quan giao thức AXXI4.

Thiết kế Block Design trên Vivado. Các IP của Xilinx dùng trong thiết kế Block Design. IP Microblaze giao tiếp với local memOry. Kết quả thực thi trên FPGA.----2:-222+cs22EEttEEErttErrrrtrrrrrrree 64 Chương 6.

Kết luận và hướng phát triển.-------2-¿++2++++2£+z+zz+z+zzse+rx 70 6. Ưu điểm và hạn chế của thiết kế. Hướng phát trién. DANH MỤC HÌNH Hình 2-1.

Định dạng lệnh của RISC-V. Định dạng sé floating point theo IEEE 754. Đồ thị của log2(1 + x) © # +1. Máy trạng thái dự đoán 2 bit.

Sơ đồ khối của BPU two-level adaptive. Sơ đồ khỏi tổng quát của RV64IF. Interface khối Datapath. Interface khối Controller.

Interface khối HazardDetection. Interface khối BranchCompare. Interface khối Forwarding. Interface khối ALU Hình 3-8.

Interface khối FPU Hình 3-9. Sơ đồ khối bộ nhớ đệm. Khối Sat_COUMUCT_ALTAY .sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss OO) Hinh 4-1. Các lệnh thực thi và kết quả.-es-cesrsereeeereerresreerereeeoere 5 2 Hinh 4-2.

Kết quả mô phỏng lệnh Addi. Kết quả mô phỏng lệnh Add. Kết quả mô phỏng lệnh LB.-essxessereeereereereeeeeeere DD Hình 4-5. Kết quả mô phỏng lệnh BEQ.-25sstesresrrerseeerreee DB Hình 4-6.

Kết quả mô phỏng lệnh FMV. Kết quả mô phỏng lệnh FADD. Kết quả mô phỏng Cache.-- HH hrhnhertrniirriiriererrrirtsrsiiriee D7 Hình 5-1. Kiến trúc chung giao thức AXIA.

Một transaction đọc của giao thức AXI4 Hình 5-3. Một transaction ghi của giao thức AXI4. Block Design trên phần mềm Vivado.----eeeeeeeerere OZ Hình 5-5. IP Microblaze giao tiếp với local memory.

Khối IP Uart Lite.-ee-ssseeeeeeeeerreeerrrrreerrerre Ổ 3 Hình 5-7. Cấu hình kết nối với KitsuneOS Hình 5-9. Kết quả nạp Kit.seeeeeeeereererrerrrrrrrrrrrrreereeresoesoee OO Hình 5-10. Kết quả so sánh.eeeeerereerrerrrrrrrrrrrrrererrroe OF DANH MỤC BANG Bảng 2.

Các lệnh thực hiện trong khoá luận. Mô tả tín hiệu khối Datapath.2--©222¿222+cc22vxvrtrrrrrsrrrrrerrrr 35 Bảng 3. Mô tả tín hiệu khối Controller.----2-22+222E+222E£+2£+£+£z+e+zzze+rx 37 Bảng 3. Mô tả tín hiệu khối Hazard Detection.-----2¿2222xz+2zxecczsesrx 39 Bang 3.

Mô tả tín hiệu khối BranchCompare. Mô tả tín hiệu khối Forwarding. Mô tả tín hiệu khôi ALU. Mô tả tín hiệu khối FPU.

Mô tả tín hiệu khối Cache. Mô tả tín hiệu khối Cache Memory. Mô tả tín hiệu khối LRU vies eccsssssesseesssseeeccenssssesecessssseeceessnnseeseessnneeeeeees 48 Bang 3. Mô ta tín hiệu khối BPU.

Mô tả tín hiệu khối Sâ{_ COUẨ€T_ ATTAY. Sàn vn rey 50 DANH MỤC TU VIET TAT RISC-V: Reduced Intruction Set Computer Five ALU: Arithmetic Logic Unit FPU: Floating Point Unit BPU: Branch Prediction Unit CPU: Central Processing Unit LRU: Least Recently Used AXI4: Advanced eXtensible Interface 4 IoT: Internet of Thing FPGA: Field Programmable Gate Array IEEE: Institute of Electrical and Electronics Engineers IF: Intruction Fetch ID: Intruction Decode EX: Excute MEM: Memory WB: Write Back TÓM TÁT KHÓA LUẬN Nội dung chính của khóa luận xoay quanh công việc nghiên cứu và thiết kế bộ vi xử lý RISC-V theo kiến trúc đơn chu kỳ, có thể xử lý số thực, sau đó là tích hợp bộ nhớ đệm (Cache Associative 4-way) hỗ trợ cải thiện tốc độ truy xuất dữ liệu và bộ dự đoán rẽ nhánh(BPU) đề tăng hiệu suất hoạt động của vi xử lý. Bộ nhớ đóng vai trò cung cấp các lệnh và dữ liệu cho các chương trình đang thực thi trong Bộ xử lý (CPU). Do đó, tốc độ truy xuất bộ nhớ có ảnh hưởng quan trọng đến hiệu suất của hệ thống máy tính.

Tuy nhiên, các bộ nhớ có tốc độ truy xuất càng nhanh thì giá thành càng cao. Vì vậy, tổ chức một hệ thống bộ nhớ hợp lý sao cho có thể truy xuất các thành phan cần cho các chương trình một cách nhanh chóng nhất là một yêu cầu cấp thiết. Các máy tính ngày nay sử dụng kiến trúc bộ nhớ phân cấp — một kiến trúc bộ nhớ nhiều lớp bộ nhớ khác nhau các về mặt dung lượng và tốc độ truy xuất dữ liệu. Bộ nhớ có tốc độ truy xuất nhanh hơn sẽ có giá thành trên một đơn vị bộ nhớ cao hơn, do đó các lớp bộ nhớ có tốc độ truy xuất nhanh sẽ có dung lượng nhỏ trong hệ thống bộ nhớ phân cấp.

Các hệ thống máy tính ngày nay thường có nhiều lớp bộ nhớ khác nhau nhưng chúng có thể được chia thành hai lớp chính là bộ nhớ đệm (Cache), Bộ nhớ chính (Main Memory). Cache đóng vai trò rất quan trọng trong việc nâng cao hiệu suất của Bộ xử lý bởi vì tốc độ của các Vi xử lý ngày nay nhanh hơn Bộ nhớ chính rất nhiều tạo nên nhu cầu có một lớp bộ nhớ trung gian có tốc độ truy xuất dữ liệu cao nhằm giảm thời gian truy xuất dữ liệu giữa Vi xử lý và Bộ nhớ chính. Bên cạnh đó đề tăng hiệu suất của vi xử lý, một bộ dự đoán rẽ nhánh sẽ được thêm vào đề các lệnh nhảy được quyết định một cách sớm nhất, nếu dự đoán đúng sẽ làm tăng hiệu suất của vi xử lý, nếu sai cũng không ảnh hưởng đến vi xử lý. Việc tích hợp bộ nhớ đệm và bộ dự đoán rẽ nhánh vào vi xử lý RISC-V và vai trò của chúng trong hệ thống là hướng nghiên cứu chính trong khóa luận này.

Giới thiệu đề tài 1. Tổng quan đề tài Trong những năm gan đây, việc sử dụng vi điều khiển và các hệ thông nhúng đã trở nên phô biến hơn bao giờ hết. Với sự gia tăng của IoT, các thiết bị thông minh và các ứng dụng tiên tiến khác, có nhu cầu cần các hệ thống tính toán hiệu quả và mạnh mẽ. Và RISC-V là một kiến trúc vi xử lý đang thu hút được sự quan tâm đáng kể của các nhà sản xuất và các nhà phát triển phần mềm.

Với thiết kế mạnh mẽ, linh hoạt và độc lập với bản quyền, RISC-V cho phép các nhà sản xuất vi điều khiển và các nhà phát triển phần mềm tùy chỉnh và điều chỉnh hệ thống của họ để đáp ứng các yêu cau cụ thé của từng ứng dụng. Có nhiều dẫn chứng dé chứng minh rằng RISC-V đang được sử dụng và thu hút sự quan tâm của nhiều nha sản xuất và nhà phát trién phần mềm. Sau đây là một số ví dụ: Các công ty lớn như Google, Nvidia và Western Digital đã gia nhập Hiệp hội RISC-V, một tổ chức phi lợi nhuận được thành lập dé giám sát việc phát triển và tiêu chuân hóa RISC-V. Nhiều nhà sản xuất vi điều khiển lớn, chang hạn như SiFive, Andes Technology và Microchip đã tung ra các sản phẩm sử dụng kiến trúc RISC-V.

RISC-V cũng đang được sử dụng trong các ứng dụng thực tiễn, bao gồm các thiết bị IoT, máy tính nhúng, máy tính thông minh và các thiết bị lưu trữ. RISC- V cũng đang được sử dung trong các trường đại học và các tổ chức nghiên cứu dé phát triển các công cụ phần mềm và phần cứng mới, giúp nâng cao hiệu suất và khả năng tùy chỉnh của hệ thống tính toán. Từ các dẫn chứng trên, có thé thay rằng RISC-V đang trở thành một lựa chọn quan trọng và được ưa chuộng cho các hệ thống tính toán hiện đại. Bên cạnh đó, sử dụng dự đoán rẽ nhánh (branch prediction) trong vi xử lý giúp tăng tốc độ thực thi các chương trình, đặc biệt là trong các chương trình có nhiều câu lệnh rẽ nhánh.

Các câu lệnh rẽ nhánh (conditional branch) thường xuất hiện trong chương trình khi mà một điều kiện nào đó xảy ra, ví dụ như if-else statement hoặc vòng lặp. Khi một câu lệnh rẽ nhánh được thực thi, vi xử lý phải 13 dừng thực hiện các câu lệnh hiện tại và chuyên sang thực hiện các câu lệnh tương ứng với nhánh điều kiện đó. Tuy nhiên, việc thực hiện câu lệnh rẽ nhánh làm gián đoạn (stall) quá trình thực thi của vi xử lý. Khi đó, branch prediction sẽ được sử dụng để dự đoán kết quả điều kiện để vi xử lý có thể tiếp tục thực hiện các câu lệnh tiếp theo mà không phải đợi đến khi câu lệnh rẽ nhánh được giải quyết.

Nếu dự đoán đúng, vi xử lý sẽ tiếp tục thực hiện các câu lệnh tiếp theo của nhánh đó mà không phải gián đoạn. Nếu dự đoán sai, vi xử lý sẽ phải hủy bỏ các câu lệnh đã thực hiện và quay trở lại vi trí ban dau dé thực hiện nhánh khác. Nhờ sử dung branch prediction, vi xử lý có thé giảm thiểu thời gian gián đoạn, tăng tốc độ thực thi chương trình và cải thiện hiệu suất của hệ thống. Do thời gian truy xuất dữ liệu từ bộ nhớ chính là một hoạt động rất tốn kém thời gian va năng lượng, dé giảm thiểu điều này sử dụng một hoặc nhiều bộ nhớ đệm là cần thiết cho một hệ thông vi xử lý.

Khi vi xử lý cần truy xuất một phần dữ liệu nào đó, nó sẽ truy vấn trực tiếp bộ nhớ đệm đầu tiên để xem dữ liệu cần thiết đã được lưu trữ trong đó hay chưa. Nếu dữ liệu đã tồn tại trong bộ nhớ đệm, vi xử lý có thể truy xuất nhanh chóng đữ liệu đó mà không cần phải đọc lại từ bộ nhớ chính. Nếu dữ liệu không có sẵn trong bộ nhớ đệm, vi xử lý sẽ phải truy xuất dữ liệu từ bộ nhớ chính và lưu trữ vào bộ nhớ đệm dé sử dung sau này. Sử dụng bộ nhớ đệm giúp giảm thiểu thời gian truy xuất dữ liệu từ bộ nhớ chính và tăng tốc độ thực thi của vi xử lý.

Nó cũng giúp giảm tải cho bộ nhớ chính, vì việc truy xuất dữ liệu từ bộ nhớ chính là một hoạt động rất tốn kém thời gian và năng lượng. Bằng cách lưu trữ dữ liệu cần thiết trong bộ nhớ đệm, vi xử lý có thể truy xuất nhanh chóng các đữ liệu đó mà không cần phải truy xuất lại từ bộ nhớ chính, giúp tiết kiệm năng lượng và tăng tốc độ thực thi của hệ thống.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ