Skip to content

Commit 3b408ad

Browse files
committed
docs: add exu intro section
1 parent 0e70039 commit 3b408ad

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

report/tc_l2.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ TreeCoreL2的微架构设计采用经典的5级流水线结构,取指和访存
3030
2. Pattern History Table(PHT): size = 32
3131
3. Branch Target Buffer(BTB): bit width = 64 size = 32
3232

33-
GHR每次从EXU得到分支是否taken的信息用于更新GHR移位寄存器的值,之后输出更新后值到PHT中并与当前pc求异或(gshare)。其结果作为PHT检索对应entry的地址,PHT每次从EXU得到分支执行后信息用于更新自己。BTB的每个Line记录一个1位的jump,64位的pc和64位的tgt值。1位的jump表示当前记录的指令是否是一个无条件跳转指令。
33+
GHR每次从EXU得到分支是否taken的信息用于更新GHR移位寄存器的值,之后输出更新后值到PHT中并与当前pc求异或(**_gshare_**)。其结果作为PHT检索对应entry的地址,PHT每次从EXU得到分支执行后信息用于更新自己。BTB的每个Line记录一个1位的jump,64位的pc和64位的tgt值。1位的jump表示当前记录的指令是否是一个无条件跳转指令。
3434

3535
<p align="center">
3636
<img src="https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-ifu.drawio.svg"/>
@@ -39,7 +39,7 @@ GHR每次从EXU得到分支是否taken的信息用于更新GHR移位寄存器的
3939
</p>
4040
</p>
4141

42-
由于目前TreeCore2的取指和访存没有使用cache,处理器核需要大量时钟周期来等待axi的响应,所以采用动态分支预测技术后对ipc的提高幅度比较小
42+
由于目前TreeCore2的取指和访存没有使用cache,处理器核需要大量时钟周期来等待axi的响应,所以采用动态分支预测技术后对ipc的提升较小
4343
<p align="center">
4444
<img src="https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-ipc.png"/>
4545
<p align="center">
@@ -48,14 +48,15 @@ GHR每次从EXU得到分支是否taken的信息用于更新GHR移位寄存器的
4848
</p>
4949

5050
### 执行单元
51+
执行单元主要用于执行算术逻辑计算、计算分支指令的跳转地址。另外还设计了一个乘除法单元(MDU)和加速计算单元(ACU)用于加速执行矩阵乘除法,但是由于个人进度的影响,没能按期调通cache,故没有将MDU,ACU到集成到提交的版本中。
5152

5253
### 访存单元
5354

5455
### axi4转换桥
5556

5657

5758
## 项目结构和参考
58-
TreeCore的代码仓库结构借鉴了[riscv-sodor](https://github.com/ucb-bar/riscv-sodor)[oscpu-framework](https://github.com/OSCPU/oscpu-framework)组织代码的方式并使用make作为项目构建工具,同时Makefile里面添加了模板参数,可以支持多个不同处理器的同时开发,能够直接使用`make [target]`下载、配置相关依赖软件、生成、修改面向不同平台(difftest和soc)的verilog文件,执行回归测试等。
59+
TreeCore的代码仓库结构借鉴了[riscv-sodor](https://github.com/ucb-bar/riscv-sodor)[oscpu-framework](https://github.com/OSCPU/oscpu-framework)组织代码的方式并使用make作为项目构建工具,同时Makefile里面添加了模板参数,可以支持多个不同处理器的独立开发,能够直接使用`make [target]`下载、配置相关依赖软件、生成、修改面向不同平台(difftest和soc)的verilog文件,执行回归测试等。
5960

6061
<p align="center">
6162
<img src="https://raw.githubusercontent.com/microdynamics-cpu/tree-core-cpu-res/main/treecore-l2-make.png"/>

0 commit comments

Comments
 (0)