diff --git a/doc/计算机结构设计实验/lab09/main.typ b/doc/计算机结构设计实验/lab09/main.typ index d809e84..d7019ce 100644 --- a/doc/计算机结构设计实验/lab09/main.typ +++ b/doc/计算机结构设计实验/lab09/main.typ @@ -163,7 +163,9 @@ pc的输出将送到指令SRAM中用于获取指令,由于指令SRAM的地址 )<指令队列> #fakepar -如@指令队列 所示,指令队列的实现是一个深度为depth的寄存器组,每个寄存器中保存一个叫做data的数据包(目前需要保存指令的内容以及指令的PC这两个数据),宽度应该和data的宽度一致。出队指针和入队指针都是一个宽度为$log_2 lr(("depth"), size: #50%)$的寄存器。使用出队指针指示队列的头部,入队指针指示队列的尾部。由取指单元发送的数据存入入队指针指示的寄存器;出队指针指示的寄存器保存的数据发送到译码单元中。目前实现的是理想流水线,因此每一个clock的上跳沿来临时入队指针和出队指针都应该加1,发生reset时,两个指针都应该置为0。 +如@指令队列 所示,指令队列的实现是一个深度为depth的寄存器组,每个寄存器中保存一个叫做data的数据包 +#footnote[这里的数据包指chisel中由Bundle实现的一个数据结构] +(目前需要保存指令的内容以及指令的PC这两个数据),宽度应该和data的宽度一致。出队指针和入队指针都是一个宽度为$log_2 lr(("depth"), size: #50%)$的寄存器。使用出队指针指示队列的头部,入队指针指示队列的尾部。由取指单元发送的数据存入入队指针指示的寄存器;出队指针指示的寄存器保存的数据发送到译码单元中。目前实现的是理想流水线,因此每一个clock的上跳沿来临时入队指针和出队指针都应该加1,发生reset时,两个指针都应该置为0。 #noindent #strong(text(12pt, fill: red)[后端])