Skip to content

Commit e9f0825

Browse files
committed
docs: add ifu arch intro section
1 parent 4712e58 commit e9f0825

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

report/tc_l2.md

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)