1945 年 6 月 30 日,Von Neumann 與他的工作夥伴因為曼哈頓工程中使用到了大量的運算,所以採用了當時最先進的電腦 Mark I 和 ENIA...
CPU指令可以分成兩大類,一是操作CPU內部暫存器的算術邏輯指令,一是存取記憶體,也就是所謂的load/store指令。要模擬算術邏輯指令,用先前所定義的Cor...
本文目標 學習 RV32I 進入正題 RV32I 是 32-bit 的基本整數指令集,該指令集會使用到 32 個暫存器 (x0-x31),且一共有 47 道...
前言 在研讀 xv6 專案程式碼的過程,我們可能會看到各種 C 語言的修飾字以及相關用法,諸如 static, extern, violiate 等等,我們將...
一般在修讀 Operating System 時,都會學習到 Interrupt 的概念,此外,電腦在運作時也會碰到大大小小的問題。你可曾好奇電腦是如何排除這些...
你可曾想過現今的電腦是如何同時運行多個應用程式?又或是單核心電腦如何做到多工?為銜接之後的議題,我們需要先認識 RISC-V CPU 中的中斷機制。 複習: C...
大家好,我是 Ian,因為一些原因,我在年初的時候接觸到嵌入式系統開發與系統軟體實作。在這一年來也寫了許多文章記錄學習歷程,希望這篇系列文可以激起讀者對 CS...
在先前的文章中,我們已經探討過: 中斷與異常的處理 UNIX-Like Shell 的實作方式 在本篇文章中,作者會嘗試實作基本的系統呼叫以及 Shell...
本文目標 認識暫存器 建立 Callee save 與 Caller save 的觀念 了解呼叫慣例 進入正題 下圖列舉了 RISC-V 處理器中的通用暫存...
本文我寫的很豐富,每個段落是給不同背景的讀者閱讀,讀者可以依照背景不同跳著閱讀。 前言: (其實可以跳過去)我之前是個傳統的台灣人,如果我發現一個特別的技術、商...
本文目標 認識 PLIC, IRQ 與 ISR 綜合先前所學,應用在實際案例上 進入正題 PIC PIC (Programmable Interrupt C...
tags: 鐵人賽 0. 前言 昨日我們已經介紹 RISC-V 的特權架構了,建議先觀看第一天對後續的觀看體驗會更有幫助唷,相信大家對特權架構都有些許概念了,由...
前言 今天將複習 C 語言中對於檔案的基本操作,以及檔案中一些重要的概念,如重新導向,資料流等等,最後看到 xv6 中檔案的一些操作,System call,...
前言: (其實可以跳過去)本篇是 RISC-V 晶心科6533 大陸唯一的希望 (上)的延伸文章,即然我們都知道 RISC-V 是正在高速成長的題材,那如何運用...
先備知識: Linker Script 的撰寫技巧 撰寫 Linker Script 可以讓編譯器在連結的階段按照我們的想法將每個 Section 放到指令的記...
其實RISC-V官方也有開發了一個instruction accurate等級的模擬器Spike,只是主要以C++撰寫。從提交紀錄看起來,這個模擬器已經開發超過...
本文目標 理解 RISC-V 基礎指令集 假指令 (pseudo instruction)、擴展指令集 組譯器與組合語言 組譯器 組譯器 (Assemble...
本文目標 理解處理器在各個 stage 會有何種行為 Pinpline 的概念 現代處理器面臨的挑戰 追蹤原始碼 進入正題 本篇文章藉由閱讀 rv32emu...
tags: 鐵人賽 0. 前言 今天我們來聊聊該如何使用這些 CSR 指令呢,前些日子裡我們已經有介紹許多 CSR 了,可以先觀看 DAY2 以及 DAY3...
本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!昨日最後觀察到的錯誤...
今年的 DevFest Hsinchu & Taichung 已經在上週六順利結束了!感謝 Ryan 的邀請讓我有機會在學生時期站上 DevFest 的...
本節是以 Golang 上游 1a708bcf1d17171056a42ec1597ca8848c854d2a 為基準做的實驗。 予焦啦!回顧昨日,當我們期...
有了基本檔案架構後,開始動工指令的部分。RISC-V將指令分成數個子集,其中包括RV32I、RV32E、RV64I、RV128I四套整數指令集,以及約14套擴充...
恐龍書上的 User Mode 與 Kernel Mode 在恐龍書中有提到,作業系統一般會在 User Mode 與 Kernel Mode 之間切換,Ker...
DAY1: RISC-V: 大綱與特權模式 0. 前言 第一次參與這個比賽,既期待又怕沒有足夠實力體力完成,看著前人所寫的文章洋洋灑灑,為後人鋪路,不論是技術性...
本節是以 Golang 上游 7ee4c1665477c6cf574cb9128deaf9d00906c69f 為基準做的實驗 予焦啦!針對外部中斷的機制,...
tags: 鐵人賽 0. 前言 昨日已經先介紹了一部分的 CSR 還沒看過的人,可以先去複習昨日文章之後,再觀看本篇會較恰當喔,今日就讓我們一同繼續認識 CSR...
tags: 鐵人賽 0. 前言 前幾日已經介紹完,基本 risc-v 的知識了,還沒觀賞的朋友請先行觀看前幾日的文章,會較恰當喔特權模式CSR 介紹(一)CSR...
本文目標 了解連結器與常見的連結方式 Lazy-binding 建立對 elf file format 的基本認知 連結器的用途 連結器讓我們能夠對各個獨立...
資料傳輸 常見的資料傳輸方式有兩種: Serial將一串資料拆成多個資料,一次傳一個資料。 pros: 成本低 Parallel有多條傳輸線,因此可以...