iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1

參賽目的

工作中實作 Client/Server 的過程中經常會遇到需要根據 URI 分派各種指令的情境。
於是想起可能 Jserv 前輩分享過的 computed goto
但在實體機器使用 perf 分析的結果跟預期的很不一樣。
於是研究 MARSS-RISCV,試圖找出問題所在。

中途參加了 Skymizer ISSCC 的分享會,開始研究 NVDLA 與 SystemC。
過程中意外找到實作簡潔的 RISC-V-TLM,在 code stream 分析上有很大的幫助,
讓我能統計機率分布的結果,並用視覺化的散佈圖呈現。
最後也開始對 SystemC based emulator 產生了興趣。

沒錯,我是隻興趣廣泛的程序猿,
但不能把發散的興趣當飯吃。
所以這次系列文會從簡介 systemC 功能開始,並把篇幅集中在實作最簡單的 RV32I 的 CPU Emulator。

系列文規劃

SyetemC 會著重在 LT model,至少會介紹安裝流程、wait、Blocking transport,
Sensitive、DMI、Quantum keeper、Phasis、Non-Blocking transport 等等功能有用到會再提。

RISC-V 的部分會實作 RV32I Base Instruction,可能會再加入其他 extension,
Version 20191213 為準,相關文件可以在這邊找到 RISC-V Specifications

ONNC、Unit Test 視進度加入。

期許

興趣廣泛是優點也是缺點。
鐵人賽目標明確,而且時間有限,超時就中斷。
換句話說就是強迫遵守 Time-boxing 原則,
以最小需求為準,計劃、重新計劃、並小步前進,
練習從功能與時間中做出妥協是最主要的目標。

像美式足球員一樣,朝目標盡全力衝刺吧!


下一篇
SystemC: 哈囉,暖個身吧
系列文
猴子都寫得出來的 RISC-V CPU Emulator31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言