使用Spike執行RISC-V gnu toolchain編譯出來的ELF檔,就可以得到完整執行此EFL檔需要用到哪些指令。利用script統計後可以得到如下結...
tags: 鐵人賽 0. 前言 今天開始聊聊perf,不免俗當然要介紹一下perf是甚麼?perf可以用在哪?perf要怎麼使用?都會在接下來的幾天慢慢介紹,另...
Synchronize Exception (同步異常) Exception 意思為處理器在執行指令時,遇到了非預期的情況,就稱之為 Exception。 S...
tags: 鐵人賽 0. 前言 建議先觀看昨日 PLIC 介紹,會較恰當喔。今日來介紹 AIA(Advanced Interrupt Architecture)...
在 3.0 那一篇,筆者介紹時間中斷與簡單的實作。也許也有讀者注意到了不太順暢的部分,那就是直接跳躍到作業系統模式去控制,卻沒有說明機器模式的中斷相關控制暫存器...
予焦啦!上一章,我們完成了基本的排程;至少,程式的流程不會再因為單一的執行緒需要睡眠或是為了取得某些鎖而卡住。雖然也和本系列文的其他機制一樣粗暴而粗糙,但我們可...
本節是以 Golang 上游 1a708bcf1d17171056a42ec1597ca8848c854d2a 為基準做的實驗。 予焦啦!回顧昨日,最終我們...
基本的安裝以及相關資源已經整理在上篇文章: RISC-V on Rust 從零開始(1) - 安裝 Rust 環境 材料已經備齊,該是動工的時候,Rust許多語...
tags: 鐵人賽 0. 前言 今天天氣有點涼爽,那就來說明 sbi_ecall 吧!建議還沒觀看前些日子文章的朋友,觀看完才能更好理解今日文章唷~~特權模式C...
目錄 第零章:基本開發工具 0.0 目錄、快速上手與前言 0.1 準備工具鏈 0.2 產出可執行檔 0.3 檢驗核心映像檔:開機流程、OpenSBI...
這次要實作的是 RISC-V 的核心基本架構。RISC-V提供了32個integer register用作基本的算術邏輯運算,如下圖: 以 Rust 的stru...
前言 在昨天我們已經順利的啟動 xv6 了,而在 xv6 中實現了 21 種 System call,今天我們將看到一些與 process 有關的 Syste...
前言 在今天我們將運用前面所學的關於檔案操作的 System call,以及 Process 相關的 System call,來實現 I/O 重導向的概念,並...
本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!在前兩天的斷章當中,...
前言 在昨天我們看到了 xv6 中記憶體分頁與虛擬記憶體的概念與實作的部分,有了這一些功能,我們就能夠實現作業系統中的隔離性,也就是 process 之間使用...
本節是以 Golang 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!在昨日基本地完成 sysA...
前言 首先在最一開始,將藉由 Hello World 範例程式,引入一些作業系統的基本部件。以及作業系統的概念與目標,抽象性的實現,最後引入 System c...
前言 昨天我們快速地看過作業系統需要達成的主要目標,包含抽象,多工等等。而在這一篇章,我們將了解作業系統的主要服務以及 xv6 作業系統的相關背景,以及 xv...
晶心科技(Andes Technology)的RISC-V核心包括: 初階32-bit的N22系列 中階32-bit的N25F/D25F/A25/A27/A2...
前言 今日的文章,將簡單的看過電腦的啟動流程,以及在 xv6 中的 bootloader 和 kernel.ld 這個檔案。 啟動概要 當電腦開機或是重新啟動...
本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!上下文(contex...
本節是以 Golang 上游 1a708bcf1d17171056a42ec1597ca8848c854d2a 為基準做的實驗。 予焦啦!不管是什麼樣的系統...
本節是以 Golang 上游 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!昨日啟用了虛擬位址的...
ADP-Corvette-T1物聯網開發板使用RISC-V MCU核心TLSR9518A。它是物聯網解決方案系列的最新一代SoC,並內含高性能32-bit的RI...
本節是以 Golang 上游 ee91bb83198f61aa8f26c3100ca7558d302c0a98 為基準做的實驗。 予焦啦!回顧昨日,我們從...
Interrupt 中斷 (Interrupt) 可以用來改變 CPU 執行程式的流程,當 CPU 在執行一個程式時,可以通過 Interrupt 讓 CPU...
前言 由於下面在追蹤 xv6 的相關議題,如架構與啟動,會涉及到一些暫存器的操作,以及一些暫存器操作的指令,或是在進行 System call 時,涉及的特權...
沒有人是一座孤島,而技術與軟體亦然。早在 Hoddarla 抵達系列文本篇最後的基本命令列功能之前、甚至在任何筆者的瘋狂構想之前,就早已有無數的資訊科技如堅固的...
這次要來實作指令decoder,負責pipeline中的decode stage。計組教科書上常見的pipeline架構依序為:fetch、decode、exe...
tags: 鐵人賽 前言 今日天氣不錯,就讓我們正式開始介紹 Sscofpmf 這個 extension 吧。 介紹 現有的 Privilege SPEC 已經...