iT邦幫忙

riscv相關文章
共有 11 則文章
鐵人賽 Software Development DAY 19

技術 Day-19 RISC-V CTRL Instruction implement

RISC-V CTRL INSN 好低,今天來實作CTRL指令。 CTRL指令指的是在程式運行過程中控制程式流程的指令,例如說像分支(branch),就是在你寫...

鐵人賽 Software Development DAY 5

技術 RISC V::RV32I 指令介紹

本文目標 學習 RV32I 進入正題 RV32I 是 32-bit 的基本整數指令集,該指令集會使用到 32 個暫存器 (x0-x31),且一共有 47 道...

技術 RISC-V on Rust 從零開始(10) - 實作ELF loader

在實際的硬體上,開機後執行的第一道指令已經燒錄在ROM上面,對於CPU來說程式在開機時就已經位於位址空間的某處,但對於我們的模擬器來說,開機後的記憶體是一片空白...

技術 RISC-V on Rust 從零開始(9) - 實作memory model

CPU指令可以分成兩大類,一是操作CPU內部暫存器的算術邏輯指令,一是存取記憶體,也就是所謂的load/store指令。要模擬算術邏輯指令,用先前所定義的Cor...

技術 RISC-V on Rust 從零開始(8) - 實作instruction decoder

這次要來實作指令decoder,負責pipeline中的decode stage。計組教科書上常見的pipeline架構依序為:fetch、decode、exe...

技術 RISC-V on Rust 從零開始(6) - 使用Spike模擬器

其實RISC-V官方也有開發了一個instruction accurate等級的模擬器Spike,只是主要以C++撰寫。從提交紀錄看起來,這個模擬器已經開發超過...

技術 RISC-V on Rust 從零開始(7) - 實作指令基本框架

使用Spike執行RISC-V gnu toolchain編譯出來的ELF檔,就可以得到完整執行此EFL檔需要用到哪些指令。利用script統計後可以得到如下結...

技術 RISC-V on Rust 從零開始(5) - RISC-V 指令集分析

有了基本檔案架構後,開始動工指令的部分。RISC-V將指令分成數個子集,其中包括RV32I、RV32E、RV64I、RV128I四套整數指令集,以及約14套擴充...

技術 RISC-V on Rust 從零開始(4) - Rust 測試工具

這次要來談的是Rust的測試框架,並且重新調整目錄架構。 撰寫測試 Rust本身就自帶測試框架,無須安裝額外library,這邊直接把上次所寫的main改寫成t...

技術 RISC-V on Rust 從零開始(3) - RISC-V 核心基本資料結構

這次要實作的是 RISC-V 的核心基本架構。RISC-V提供了32個integer register用作基本的算術邏輯運算,如下圖: 以 Rust 的stru...

技術 RISC-V on Rust 從零開始(2) - 建立檔案架構

基本的安裝以及相關資源已經整理在上篇文章: RISC-V on Rust 從零開始(1) - 安裝 Rust 環境 材料已經備齊,該是動工的時候,Rust許多語...