I. Thiết kế vi xử lý RISC V RV64IM
Thiết kế vi xử lý RISC-V RV64IM là trọng tâm của khóa luận, tập trung vào việc xây dựng một bộ xử lý 64-bit dựa trên kiến trúc RISC-V. Bộ xử lý này hỗ trợ các lệnh cơ bản của RV64I và các lệnh nhân chia từ RV64M. Kiến trúc Superscalar được áp dụng để tăng hiệu suất bằng cách thực hiện nhiều lệnh đồng thời. Bộ xử lý được thiết kế với pipeline 5 tầng, 32 thanh ghi 64-bit, và tích hợp các khối xử lý số học (ALU) để xử lý các phép toán số nguyên.
1.1. Kiến trúc Superscalar
Kiến trúc Superscalar cho phép bộ xử lý thực hiện nhiều lệnh trong một chu kỳ đồng hồ bằng cách sử dụng nhiều đơn vị xử lý độc lập. Điều này giúp tăng hiệu suất tổng thể của hệ thống. Bộ xử lý được thiết kế với hai khối ALU để xử lý các lệnh số học và một khối nhân/chia để thực hiện các phép toán phức tạp hơn.
1.2. Tối ưu hóa bộ nhớ
4-Way Set Associative Cache được tích hợp để giảm thời gian truy xuất dữ liệu từ bộ nhớ chính. Cache này sử dụng giải thuật FIFO để quản lý bộ nhớ, giúp cải thiện hiệu suất truy cập dữ liệu. Bộ nhớ đệm có dung lượng 512 bytes, đủ để hỗ trợ các ứng dụng nhúng và hệ thống nhỏ gọn.
II. Branch Prediction và hiệu suất
Branch Prediction là kỹ thuật quan trọng được áp dụng để dự đoán các lệnh nhánh, giúp giảm thời gian chờ đợi và tăng hiệu suất xử lý. Khóa luận sử dụng Two-level adaptive predictor để dự đoán các lệnh nhánh với độ chính xác cao. Kết quả thử nghiệm cho thấy độ chính xác trung bình của dự đoán đạt trên 90%, giúp cải thiện đáng kể hiệu suất của bộ xử lý.
2.1. Two level Adaptive Predictor
Two-level adaptive predictor sử dụng Branch History Shift Register (BHSR) và Pattern History Table (PHT) để dự đoán các lệnh nhánh. BHSR lưu trữ lịch sử các lệnh nhánh, trong khi PHT dự đoán kết quả dựa trên mẫu lịch sử. Kỹ thuật này giúp giảm thiểu số lần dự đoán sai, từ đó tăng hiệu suất xử lý.
2.2. Đánh giá hiệu suất
Kết quả mô phỏng cho thấy bộ xử lý đạt tần số hoạt động 100MHz trên FPGA. Các lệnh được thực thi chính xác, và thời gian truy xuất dữ liệu được cải thiện đáng kể nhờ 4-Way Set Associative Cache. Điều này khẳng định tính khả thi và hiệu quả của thiết kế.
III. Hiện thực trên FPGA
Khóa luận đã hiện thực thành công bộ xử lý RISC-V RV64IM trên FPGA sử dụng công cụ Vivado. Thiết kế được tích hợp với giao thức AXI4 để giao tiếp với các thành phần khác trong hệ thống. Kết quả tổng hợp và thực thi cho thấy thiết kế đạt được các mục tiêu đề ra, bao gồm tần số hoạt động 100MHz và khả năng xử lý các lệnh phức tạp.
3.1. Thiết kế Block Design
Thiết kế Block Design trên Vivado sử dụng các IP của Xilinx, bao gồm Microblaze và AXI Uart Lite, để tạo ra một hệ thống hoàn chỉnh. Các thành phần này được kết nối thông qua giao thức AXI4, đảm bảo tính tương thích và hiệu suất cao.
3.2. Kết quả thực thi
Thiết kế được nạp lên FPGA Virtex-7 VC707 và thực thi thành công. Các lệnh được kiểm tra và xác nhận hoạt động chính xác. Kết quả này khẳng định tính ứng dụng thực tế của bộ xử lý RISC-V RV64IM trong các hệ thống nhúng và IoT.