【计算机组成原理2013年真题43题-9分】
某32位计算机,CPU主频为800MHz,Cache命中时的CPI为4,Cache 块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40 ns;存储器总线宽度为32位,总线时钟频率为200 MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。请回答下列问题,要求给出理由或计算过程。
(1)CPU和总线的时钟周期各为多少?总线的带宽(即最大数据传输率)为多少?
(2)Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
(3)存储器总线完成一次读突发传送总线事务所需的时间是多少?
(4)若程序BP执行过程中,共执行了100 条指令,平均每条指令需进行1.2次访存,Cache缺失率为5%,不考虑替换等开销,则BP的CPU执行时间是多少?
【第一步:信息提取】
32位计算机:运算是32位。
CPU主频为800MHz:1.25ns 时钟周期(1/800M)
Cache命中时的CPI为4:完成一条指令需要4个时钟周期
Cache 块大小为32字节:占5位
主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40 ns:
存储器总线宽度为32位,总线时钟频率为200 MHz:4ns时钟周期
每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期
【第二步:具体解答】
第一小题:
(1)CPU和总线的时钟周期各为多少?
CPU的时钟周期是主频的倒数,即1/800MHz= 1.25ns
(2)总线的带宽(即最大数据传输率)为多少?
总线的时钟周期是总线频率的倒数,即1/200MHz= 5ns。
总线宽度为32位,故总线带宽为4B×200MHz= 800MBps 或4B/5ns = 800MBps。
第二小题:
(1)Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
Cache块大小是32B,因此Cache缺失时需要一个读突发传送总线事务读取一个主存块。
第三小题:
(1)存储器总线完成一次读突发传送总线事务所需的时间是多少?
一次读突发传送总线事务包括一次地址传送和32B数据传送:用1个总线时钟周期传输地址
每隔40ns/8 = 5ns 启动一个体工作(各进行1次存取),第一个体读数据花费40ns,之后数据存取与数据传输重叠:用8个总线时钟周期传输数据。读突发传送总线事务时间: 5ns +40ns +8×5ns = 85ns.
第四小题:
(1)若程序BP执行过程中,共执行了100 条指令,平均每条指令需进行1.2次访存,Cache缺失率为5%,不考虑替换等开销,则BP的CPU执行时间是多少?
BP的CPU执行时间包括Cache命中时的指令执行时间和Cache缺失时带来的额外开销。
命中时的指令执行时间:100×4×1.25ns =500ns。
指令执行过程中Cache缺失时的额外开销:1.2x100×5%×85ns =510ns。
BP的CPU执行时间:500ns + 510ns = 1010ns。
【计算机组成原理2013年真题44题-14分】
某计算机采用16位定长指令字格式,其CPU中有一个标志寄存器,其中包含进位/借位标志CF、零标志ZF和符号标志NF。假定为该机设计了条件转移指令,其格式如下:
其中,00000为操作码OP;C、Z和N分别为CF、ZF 和NF的对应检测位,某检测位为1时表示需检测对应标志,需检测的标志位中只要有一个为Ⅰ就转移,否则不转移,例如,若C=1,Z=0,N=1,则需检测CF和 NF 的值,当CF=1或NF=1时发生转移;OFFSET是相对偏移量,用补码表示。转移执行时,转移目标地址为(PC)+2+2×OFFSET;顺序执行时,下条指令地址为(PC)+2。请回答下列问题。
(1)该计算机存储器按字节编址还是按字编址?该条件转移指令向后(反向)最多可跳转多少条指令?
(2)某条件转移指令的地址为200CH,指令内容如下图所示,若该指令执行时CF=0,ZF=0,NF=1,则该指令执行后PC的值是多少?若该指令执行时CF=1,ZF=0,NF=0,则该指令执行后PC的值又是多少?请给出计算过程。
(3)实现“无符号数比较小于等于时转移”功能的指令中,c、Z和N应各是什么?
(4)以下是该指令对应的数据通路示意图,要求给出图中部件①-③的名称或功能说明。
【第一步:信息提取】
转移目标地址:(PC)+2+2×OFFSET:为什么乘2?因为16位定长指令字格式
【第二步:具体解答】
第一小题:
(1)该计算机存储器按字节编址还是按字编址?
因为指令长度为16位,且下条指令地址为(PC)+2,故编址单位是字节。
(2)该条件转移指令向后(反向)最多可跳转多少条指令?
偏移量OFFSET为8位补码,范围为-128~127,故相对于当前条件转移指令,向后最多可跳转127条指令。
第二小题:
(1)某条件转移指令的地址为200CH,指令内容如下图所示,若该指令执行时CF=0,ZF=0,NF=1,则该指令执行后PC的值是多少?
指令中C=0,Z=1,N=1,故应根据ZF和NF的值来判断是否转移。
当CF=0,ZF=0,NF=1时,需转移。已知指令中偏移量为1110 0011B=E3H,符号扩展后为FFE3 H,左移一位(乘2)后为FFC6H,故PC的值(即转移目标地址)为200CH+2+FFC6H =1FD4H。
(2)若该指令执行时CF=1,ZF=0,NF=0,则该指令执行后PC的值又是多少?请给出计算过程。
当CF = 1,ZF=0,NF=0时不转移。PC的值为200CH +2=200EH。
第三小题:
(1)实现“无符号数比较小于等于时转移”功能的指令中,c、Z和N应各是什么?
指令中的C、Z和N应分别设置为C=z=1,N=0,进行数之间的大小比较通常是对两个数进行减法,而因为是无符号数比较小于等于时转移,即两个数相减结果为0或者负数都应该转移,若是0,则ZF标志应当为1,所以是负数,则借位标志应该为1,而无符号数并不涉及符号标志NF。
第四小题:
(1)以下是该指令对应的数据通路示意图,要求给出图中部件①-③的名称或功能说明。
部件①用于存放当前指令,不难得出为指令寄存器;多路选择器根据符号标志C/Z/N来决定下一条指令的地址是PC+2还是PC+2+2xOFFSET,故多路选择器左边线上的结果应该是PC+2+ 2×OFFSET。根据运算的先后顺序以及与PC+2的连接
部件②:移位寄存器(用于左移一位),用于左移一位实现乘2,为移位寄存器。
部件③:加法器(地址相加)。用于PC+2和2×OFFSET相加,为加法器。