@@ -21,8 +21,22 @@ TreeCoreL2是一个支持RV64I的单发射5级流水线的开源处理器核。
2121</p >
2222
2323
24-
2524### IFU
25+ 使用Gshare
26+ <p align =" center " >
27+ <img src =" https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-ifu.drawio.svg " />
28+ <p align =" center " >
29+ 取指单元主体部分
30+ </p >
31+ </p >
32+
33+ 由于目前TreeCore2的取指和访存没有使用cache,处理器核 所以使用
34+ <p align =" center " >
35+ <img src =" https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-ipc.png " />
36+ <p align =" center " >
37+ 使用分支预测对性能的一点改进
38+ </p >
39+ </p >
2640
2741### IDU
2842
@@ -32,19 +46,34 @@ TreeCoreL2是一个支持RV64I的单发射5级流水线的开源处理器核。
3246
3347### WBU
3448
35- ### debug
49+ ### AxiBridge
50+
51+
52+ ## 项目结构和参考
53+ TreeCore的代码仓库结构借鉴了[ riscv-sodor] ( https://github.com/ucb-bar/riscv-sodor ) 和[ oscpu-framework] ( https://github.com/OSCPU/oscpu-framework ) ,并使用make作为项目构建工具,能够直接使用` make [target] ` 实现依赖软件的下载和配置,不同平台(difftest和soc)verilog文件生成和修改,回归测试等。
54+
3655<p align =" center " >
37- <img src =" https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-ipc .png " />
56+ <img src =" https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-make .png " />
3857 <p align =" center " >
39- 使用分支预测对性能的一点改进
58+ 使用make自定义函数扩展
4059 </p >
4160</p >
4261
62+ 另外TreeCore的实现和测试依赖于众多项目,其中包括:
63+ - [ chisel3] ( https://github.com/chipsalliance/chisel3 )
64+ - [ verilator] ( https://github.com/verilator/verilator )
65+ - [ NEMU] ( https://gitee.com/oscpu/NEMU )
66+ - [ DRAMsim3] ( https://github.com/OpenXiangShan/DRAMsim3 )
67+ - [ difftest] ( https://gitee.com/oscpu/difftest )
68+ - [ Abstract Machine] ( https://github.com/NJU-ProjectN/abstract-machine )
69+ - [ ysyxSoC] ( https://github.com/OSCPU/ysyxSoC )
70+ - [ riscv-tests] ( https://github.com/NJU-ProjectN/riscv-tests )
4371
44- ## 依赖和参考
4572
46- ## 心得感想
73+ 立即数扩展模块部分参考了[ 果壳处理器] ( https://github.com/OSCPU/NutShell ) 的实现方式
74+
4775
76+ ## 心得感想
4877调试的bug,和以往做过的不同,遇到的困难和迷茫,相比过去自己的成长,对一生一芯的期望和改进。开发日志。作为。
4978
5079<p align =" center " >
@@ -66,7 +95,10 @@ TreeCoreL2是一个支持RV64I的单发射5级流水线的开源处理器核。
6695一点开发过程的思考,工具的设计
6796
6897## 计划
98+ 目前开发的** TreeCoreL2** 是TreeCore系列处理器核的第二个版本,目前基本达到设计目标,后续将会继续优化代码。而第三个版本(** TreeCoreL3** )和第四个版本(** TreeCoreL4** )将会追求更高的性能,也是规划中的参加一生一芯第四期和第五期的处理器。其中** TreeCoreL3** 将在前代核的基础上,支持RV64IMAC指令,cache和mmu,并提高流水线级数,使其能够启动rt-thread,xv6和linux。** TreeCoreL4** 则会在前代的基础上实现浮点运算和多发射技术,进一步提高处理器性能。
99+
100+ 对于TreeCoreL2来说:
101+ - 继续改进当前TreeCoreL2的微架构设计,能够使用更多chisel的特性来简化代码实现
102+ - 将处理器核移植到安路科技的fpga上
69103
70- road map,
71104
72- ## 致谢
0 commit comments