iT邦幫忙

risc-v相關文章
共有 132 則文章
鐵人賽 Software Development DAY 16

技術 Hello, OS!

資料傳輸 常見的資料傳輸方式有兩種: Serial將一串資料拆成多個資料,一次傳一個資料。 pros: 成本低 Parallel有多條傳輸線,因此可以...

鐵人賽 Software Development DAY 4

技術 Day-03 Process System call

前言 在昨天我們已經順利的啟動 xv6 了,而在 xv6 中實現了 21 種 System call,今天我們將看到一些與 process 有關的 Syste...

技術 |1-3|ADP-Corvette-T1物聯網開發板介紹

ADP-Corvette-T1物聯網開發板使用RISC-V MCU核心TLSR9518A。它是物聯網解決方案系列的最新一代SoC,並內含高性能32-bit的RI...

技術 |1-1|晶心科技的RISC-V核心

晶心科技(Andes Technology)的RISC-V核心包括: 初階32-bit的N22系列 中階32-bit的N25F/D25F/A25/A27/A2...

鐵人賽 Software Development DAY 19

技術 Day-18 Page Fault Overview

前言 我們在前面花了 5 個篇章對於 trap 進行了完整的介紹,並且瞭解了 trap 處理得具體流程,今天我們將看到 page fault 所造成的 tra...

鐵人賽 Software Development DAY 4

技術 組譯器與連結器 (下)

本文目標 了解連結器與常見的連結方式 Lazy-binding 建立對 elf file format 的基本認知 連結器的用途 連結器讓我們能夠對各個獨立...

鐵人賽 Software Development DAY 25

技術 予焦啦!RISC-V 外部中斷機制

予焦啦!上一章,我們完成了基本的排程;至少,程式的流程不會再因為單一的執行緒需要睡眠或是為了取得某些鎖而卡住。雖然也和本系列文的其他機制一樣粗暴而粗糙,但我們可...

鐵人賽 Software Development DAY 7

技術 DAY7: RISC-V: 阿鬼你還是說中文吧之 AIA 介紹

tags: 鐵人賽 0. 前言 建議先觀看昨日 PLIC 介紹,會較恰當喔。今日來介紹 AIA(Advanced Interrupt Architecture)...

鐵人賽 Software Development DAY 6

技術 Day-05 I/O 重導向, pipe 概念

前言 在今天我們將運用前面所學的關於檔案操作的 System call,以及 Process 相關的 System call,來實現 I/O 重導向的概念,並...

鐵人賽 Software Development DAY 18

技術 予焦啦!RISC-V 的計時器中斷機制

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!在前兩天的斷章當中,...

鐵人賽 Software Development DAY 19

技術 予焦啦!scratch 控制暫存器

本節是以 Golang 上游 8854368cb076ea9a2b71c8b3c8f675a8e19b751c 為基準做的實驗 予焦啦!上下文(contex...

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

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

鐵人賽 Software Development DAY 23

技術 Day-22 Race Condition, Spin Lock

前言 如果一個應用程式想要使用多個 CPU 的核心 (thread),並且使用了 System call,將會觸發 trap,而多個核心使用 System c...

鐵人賽 Software Development DAY 10

技術 Day-09 xv6 Paging, Page Table

前言 在最一開始的時候,我們知道作業系統有一個很重要的目標,便是做到隔離性的部分,而隔離性這一部分的實作和虛擬記憶體管理有著很大的關係,以下將會介紹記憶體地址...

鐵人賽 Software Development DAY 5

技術 DAY5: RISC-V sbi_ecall 流程與用法

tags: 鐵人賽 0. 前言 今天天氣有點涼爽,那就來說明 sbi_ecall 吧!建議還沒觀看前些日子文章的朋友,觀看完才能更好理解今日文章唷~~特權模式C...

技術 |2-1|Corvette-T1的Arduino IDE開發環境

必須執行Arduino IDE的1.8.1以後版本,才可以使用Arduino IDE在Corvette-T1上開發應用程式。 打開Arduino IDE...

鐵人賽 Software Development DAY 3

技術 Day-02 xv6 RISC-V 概要

前言 昨天我們快速地看過作業系統需要達成的主要目標,包含抽象,多工等等。而在這一篇章,我們將了解作業系統的主要服務以及 xv6 作業系統的相關背景,以及 xv...

鐵人賽 Software Development DAY 15

技術 Day-14 xv6 Trap (user mode): overview, ecall

Interrupt 中斷 (Interrupt) 可以用來改變 CPU 執行程式的流程,當 CPU 在執行一個程式時,可以通過 Interrupt 讓 CPU...

鐵人賽 Software Development DAY 29

技術 予焦啦!附錄:詭異的時間中斷(timer interrupt)擱置位元(pending bit)

在 3.0 那一篇,筆者介紹時間中斷與簡單的實作。也許也有讀者注意到了不太順暢的部分,那就是直接跳躍到作業系統模式去控制,卻沒有說明機器模式的中斷相關控制暫存器...

鐵人賽 Software Development DAY 29

技術 DAY29: RISC-V: perf(三) sscofpmf

tags: 鐵人賽 前言 今日天氣不錯,就讓我們正式開始介紹 Sscofpmf 這個 extension 吧。 介紹 現有的 Privilege SPEC 已經...

鐵人賽 Software Development DAY 11

技術 Day-10 xv6 memory layout kernel virtual address space

前言 在昨天我們看到了 xv6 中記憶體分頁與虛擬記憶體的概念與實作的部分,有了這一些功能,我們就能夠實現作業系統中的隔離性,也就是 process 之間使用...

鐵人賽 Software Development DAY 8

技術 Day-07 Linker Script File: kernel.ld

前言 今日的文章,將簡單的看過電腦的啟動流程,以及在 xv6 中的 bootloader 和 kernel.ld 這個檔案。 啟動概要 當電腦開機或是重新啟動...

鐵人賽 Software Development DAY 7

技術 Day-06 RISC-V 簡介, Microkernel vs Monolithic kernel

前言 由於下面在追蹤 xv6 的相關議題,如架構與啟動,會涉及到一些暫存器的操作,以及一些暫存器操作的指令,或是在進行 System call 時,涉及的特權...

鐵人賽 Software Development DAY 2

技術 Day-01 作業系統概要

前言 首先在最一開始,將藉由 Hello World 範例程式,引入一些作業系統的基本部件。以及作業系統的概念與目標,抽象性的實現,最後引入 System c...

鐵人賽 Software Development DAY 16

技術 Day-15 xv6 Trap (user mode): Trace Trap

前言 前面看完了 ecall 的前後變化,接下來我們將繼續深入追蹤 trap 的流程,查看是如何進行整個 user mode 到 supervisor mod...

鐵人賽 Software Development DAY 12

技術 Day-11 xv6 process virtual address space

前言 我們昨天看到了 kernel space 中的 kernel virtual address space,今天我們會看到 user virtual ad...

鐵人賽 Software Development DAY 15

技術 予焦啦!Golang 記憶體初始化

本節是以 Golang 4b654c0eeca65ffc6588ffd9c99387a7e48002c1 為基準做的實驗 予焦啦!在昨日基本地完成 sysA...

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

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

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

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