计算机系统设计作业解析:指令执行与Cache设计

需积分: 0 0 下载量 112 浏览量 更新于2024-08-05 收藏 366KB PDF 举报
"计算机系统设计相关的作业,涵盖了指令执行过程的控制信号,指令格式,以及主存和Cache的直接映射方式。作业还讨论了不同指令的机器代码表示,存储器控制信号,以及指令执行所需的时钟周期。此外,还涉及了Cache的容量计算,考虑了字节编址、块大小、回写策略等因素。" 在计算机系统设计中,指令集是CPU的核心组成部分。根据提供的描述,这个计算机系统支持128条不同的指令,这是因为指令格式中有8位的操作码字段,可以表示从00000000到11111111,即2^8 = 128种不同的指令。其中,inc、shl和sub指令分别对应于01H、02H和03H的操作码。 指令的执行过程涉及到多个控制信号,如图a所示。在给出的例子中,当执行如"incR1"这样的指令时,控制信号Xout(寄存器X的输出)在适当的时间被设置为1,以将PC(程序计数器)的内容送至总线,接着执行读取指令操作。在指令"shlR2,R1"中,控制信号可能涉及移位操作,如左移一位(left),以及从R1读取并写入R2。对于"subR3,(R1),R2",控制信号可能涉及到读取(R1)和(R2),执行减法操作,然后将结果存储在R3中。 在Cache和主存的交互中,采用直接映射方式,这意味着主存的每一个块都可以直接映射到Cache的一行。如果主存地址为32位,并且按字节编址,那么一个主存块大小为4个字,每个字32位,即16字节(16B)。"字块内地址"占用4位,因为每个块有4个字,所以需要4位来定位每个字。对于能存放4K字数据的Cache,也就是4KB(4 * 1024字节),其行数是1K(2^10),因此"Cache行地址"需要10位。主存字块标记需要32位地址减去10位Cache行地址和4位字块内地址,即18位。 Cache的总容量不仅包括存储数据的位数,还包含了标记位、有效性位、一致性维护位(如脏位,用于记录数据是否已被修改)等。在这个例子中,因为采用了回写策略,所以必须有脏位来跟踪哪些数据需要在写回主存时更新。然而,关于替换算法的控制位,由于题目没有明确说明,这里假设不包含。 本作业探讨了计算机指令系统、指令执行的控制信号、Cache的管理和容量计算等多个关键概念,这些都是计算机系统设计中的基础内容。理解和掌握这些知识点有助于深入理解计算机内部工作原理。