diff --git a/doc/计算机结构设计实验/RV64.vsdx b/doc/计算机结构设计实验/RV64.vsdx index 38747b0..f1acede 100644 Binary files a/doc/计算机结构设计实验/RV64.vsdx and b/doc/计算机结构设计实验/RV64.vsdx differ diff --git a/doc/计算机结构设计实验/lab09/image/image-20240111133429499.png b/doc/计算机结构设计实验/lab09/image/image-20240111133429499.png deleted file mode 100644 index a652fff..0000000 Binary files a/doc/计算机结构设计实验/lab09/image/image-20240111133429499.png and /dev/null differ diff --git a/doc/计算机结构设计实验/lab09/image/image-20240111135449651.png b/doc/计算机结构设计实验/lab09/image/image-20240111135449651.png deleted file mode 100644 index 8f06ddc..0000000 Binary files a/doc/计算机结构设计实验/lab09/image/image-20240111135449651.png and /dev/null differ diff --git a/doc/计算机结构设计实验/lab09/image/image-20240125134200367.png b/doc/计算机结构设计实验/lab09/image/image-20240125134200367.png new file mode 100644 index 0000000..633063c Binary files /dev/null and b/doc/计算机结构设计实验/lab09/image/image-20240125134200367.png differ diff --git a/doc/计算机结构设计实验/lab09/image/image-20240125134816118.png b/doc/计算机结构设计实验/lab09/image/image-20240125134816118.png new file mode 100644 index 0000000..0ecd656 Binary files /dev/null and b/doc/计算机结构设计实验/lab09/image/image-20240125134816118.png differ diff --git a/doc/计算机结构设计实验/lab09/main.typ b/doc/计算机结构设计实验/lab09/main.typ index 279fec4..d809e84 100644 --- a/doc/计算机结构设计实验/lab09/main.typ +++ b/doc/计算机结构设计实验/lab09/main.typ @@ -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 diff --git a/doc/计算机结构设计实验/lab09/实现 R 型运算类指令的理想流水线设计实验.md b/doc/计算机结构设计实验/lab09/实现 R 型运算类指令的理想流水线设计实验.md index 6d9f711..08da427 100644 --- a/doc/计算机结构设计实验/lab09/实现 R 型运算类指令的理想流水线设计实验.md +++ b/doc/计算机结构设计实验/lab09/实现 R 型运算类指令的理想流水线设计实验.md @@ -144,13 +144,13 @@ ADD 指令需要写回通用寄存器堆,因此 reg_wen 为 1,reg_waddr 对 完成了控制信号的生成,接下来我们需要准备源操作数,也就是访问通用寄存器堆,相比 SRAM 这种存储类型,通用寄存器堆的访问都是当拍完成。 -![image-20240111133429499](image/image-20240111133429499.png) +![image-20240125134200367](image/image-20240125134200367.png) 图 9.11 展示了译码单元的结构,译码器将从指令队列获得的指令进行译码,产生了相关的控制信号,与寄存器堆读回的源操作数以及指令队列获得的 pc 一起打包成一个 data 数据包发送至下一级流水线缓存。 ![image-20240111132343570](image/image-20240111132343570.png) -![image-20240111135449651](image/image-20240111135449651.png) +![image-20240125134816118](image/image-20240125134816118.png) ![image-20240111135906222](image/image-20240111135906222.png)