提升lab9图片质量
This commit is contained in:
parent
511db78ac9
commit
6d2c760ef7
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 21 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
|
@ -430,7 +430,7 @@ ADD指令的源操作数都来自通用寄存器堆,因此src1_ren和src2_ren
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111133429499.png", width: 80%),
|
||||
image("image/image-20240125134200367.png"),
|
||||
caption: "译码单元"
|
||||
)<译码单元>
|
||||
#fakepar
|
||||
|
@ -441,7 +441,7 @@ ADD指令的源操作数都来自通用寄存器堆,因此src1_ren和src2_ren
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111132343570.png", width: 80%),
|
||||
image("image/image-20240111132343570.png"),
|
||||
caption: "执行级缓存"
|
||||
)<执行级缓存>
|
||||
#fakepar
|
||||
|
@ -454,18 +454,18 @@ ADD指令的源操作数都来自通用寄存器堆,因此src1_ren和src2_ren
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111135449651.png", width: 85%),
|
||||
image("image/image-20240125134816118.png"),
|
||||
caption: "执行单元"
|
||||
)<执行单元>
|
||||
#fakepar
|
||||
|
||||
@执行单元 展示了执行单元的结构,R型运算指令只需要使用ALU这一个部件即可(ALU部件已经在数字电路实验中学习过)。将执行级缓存传来的data数据包(包内包括info数据包和src_info数据包)发送至ALU中。ALU可以通过info数据包内op的区别进行不同的计算操作,而源操作数在src_info数据包中。ALU将运算结果reg_wdata打包到rd_info数据包中和info数据包内的reg_wen、reg_waddr一块打包成新的data数据包发送至访存级缓存。
|
||||
@执行单元 展示了执行单元的结构,R型运算指令只需要使用ALU这一个部件即可(ALU部件已经在数字电路实验中学习过)。将执行级缓存传来的data数据包(包内包括info数据包和src_info数据包)发送至ALU中。ALU可以通过info数据包内op的区别进行不同的计算操作,而源操作数在src_info数据包中。ALU将运算结果reg_wdata打包到rd_info数据包中和pc以及info数据包内的reg_wen、reg_waddr一块打包成新的data数据包发送至访存级缓存。
|
||||
|
||||
#noindent #text(fill: blue)[(#unitcnt_inc)访存级缓存]
|
||||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111135906222.png", width: 85%),
|
||||
image("image/image-20240111135906222.png"),
|
||||
caption: "访存级缓存"
|
||||
)<访存级缓存>
|
||||
#fakepar
|
||||
|
@ -476,7 +476,7 @@ ADD指令的源操作数都来自通用寄存器堆,因此src1_ren和src2_ren
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111150330436.png", width: 75%),
|
||||
image("image/image-20240111150330436.png"),
|
||||
caption: "访存单元"
|
||||
)<访存单元>
|
||||
#fakepar
|
||||
|
@ -487,7 +487,7 @@ ADD指令并不需要访问内存,因此在该流水级什么也不做,只
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111140744667.png", width: 80%),
|
||||
image("image/image-20240111140744667.png", width: 88%),
|
||||
caption: "写回级缓存"
|
||||
)<写回级缓存>
|
||||
#fakepar
|
||||
|
@ -524,7 +524,7 @@ TODO:增加目录结构图
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111160016125.png", width: 80%),
|
||||
image("image/image-20240111160016125.png"),
|
||||
caption: "基于myCPU的简单Soc结构"
|
||||
)<基于myCPU的简单Soc结构>
|
||||
#fakepar
|
||||
|
@ -610,7 +610,7 @@ TODO:仿真结构
|
|||
|
||||
#fakepar
|
||||
#figure(
|
||||
image("image/image-20240111151739011.png", width: 70%),
|
||||
image("image/image-20240111151739011.png", width: 60%),
|
||||
caption: "功能验证框架"
|
||||
)<功能验证框架>
|
||||
#fakepar
|
||||
|
|
|
@ -144,13 +144,13 @@ ADD 指令需要写回通用寄存器堆,因此 reg_wen 为 1,reg_waddr 对
|
|||
|
||||
完成了控制信号的生成,接下来我们需要准备源操作数,也就是访问通用寄存器堆,相比 SRAM 这种存储类型,通用寄存器堆的访问都是当拍完成。
|
||||
|
||||

|
||||

|
||||
|
||||
图 9.11 展示了译码单元的结构,译码器将从指令队列获得的指令进行译码,产生了相关的控制信号,与寄存器堆读回的源操作数以及指令队列获得的 pc 一起打包成一个 data 数据包发送至下一级流水线缓存。
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||
|
|
Loading…
Reference in New Issue