1、字长为16位,按字节编址: 规定了寻址单位字节
2、地址线为20位: 寻址范围 0~ 2 20 2^{20} 220,地址长度为20位
3、数据线为8位: 数据长度为8位
4、指令寄存器定长16位: 指令字长16位
5、对于图的解读:
第一小题:
(1)ALU的宽度是多少位?
(本小题考察对ALU概念的理解)
ALU的宽度:ALU的宽度也就是ALU运算对象的宽度,由信息提取①可知,我们在上面看到了字长为16位,字长就是一次运算的长度
注:ALU,即算术逻辑单元,它与字长有关。它能够完成加、减、乘、除等基本运算,以及与、或、非、异或等逻辑运算。
(2)可寻址主存空间大小为多少字节?
(本小题考察对寻址空间概念的理解)
可寻址主存空间大小为多少字节:根据提取的信息②,地址线为20位,寻址范围 0~ 2 20 2^{20} 220 ,所以为 0~ 2 20 2^{20} 220 字节
注:可寻址主存空间与地址线有关
(3)指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)分别应有多少位?
(本小题考察对各类寄存器的概念理解)
指令寄存器:由信息提取④可知,指令寄存器定长16位,所以指令字长16位;
主存地址寄存器(MAR):地址寄存器与地址线数有关,由信息提取②可知地址线为20位,所以MAR为20位
主存数据寄存器(MDR):数据寄存器与数据线数有关,由信息提取③可知地址线为8位,所以MDR为8位
注:
指令寄存器,存储指令的寄存器,与指令字长有关。
主存地址寄存器(MAR),存储地址的寄存器,与地址线有关。
主存数据寄存器(MDR),存储数据的寄存器,与数据线有关。
第二小题:
(1)R型格式最多可定义多少种操作?
(本小题考察指令格式)
由信息提取⑤可知,op1占4位,可以有16种指令;头000000被写死,所以共有16种指令
(2)Ⅰ型和J型格式总共最多可定义多少种操作?
(本小题同样考察指令格式)
由信息提取⑤可知,op2,op3占6位,可以有64种指令,但是这里有个问题,也就是000000被R型占据(注:在做大题的时候要首尾相顾),所以一共只可以有63种指令
(3)通用寄存器最多有多少个?
(本小题考察指令格式各分段的意义)
由信息提取⑤可知,rs, rt和rd为通用寄存器编号,各占两位,可以看出这种类型的寄存器不会超过4个
第三小题:
(1)假定op1为 0010和0011时,分别表示带符号整数减法和带符号整数乘法指令,则指令01B2H的功能是什么(参考上述指令功能说明的格式进行描述)?
(本小题考察指令格式和指令二进制分段意义)
指令01B2H是16进制,把它修改位二进位为:0000 0001 1011 0010,参考op1的位置是右边4位,所以是0010,所以代表是带符号整数减法,然后是三个寄存器分别是01,10,11,按三地址指令,表示R[1]-R[2]—>R[3],表示编号为1的寄存器中的值减去编号为2的寄存器的值,得到的结果存到编号为3的寄存器中去
(2)若1,2,3号通用寄存器当前内容分别为B052H,0008H,0020H,则分别执行指令01B2H和01B3H后,3号通用寄存器内容各是什么?各自结果是否溢出?
(本小题考察数据的表示和运算)
已知01B2H表示编号为1的寄存器中的值减去编号为2的寄存器的值,得到的结果存到编号为3的寄存器中去
R[3]=B052H-0008H=B04AH,结果并未溢出
指令01B3H也是16进制,把它修改位二进位为:0000 0001 1011 0011,参考op1的位置是右边4位,所以是0011,所以代表是带符号整数乘法,B052H修改为二进制:1011 0000 0101 0010,乘8左移三位,1000 0010 1001 0000, R [ 3 ] = B 052 H ∗ 0008 H = 8290 H R[3] = B052H * 0008H = 8290H R[3]=B052H∗0008H=8290H,结果溢出
第四小题:
若采用Ⅰ型格式的访存指令中 imm(偏移量)为带符号整数,则地址计算时应对imm进行零扩展还是符号扩展?
(本小题考察指令的寻址方式)
在执行指令的时候,可能会向前跳转,也可能会向后跳转,所以偏移量是一个带符号位的整数,所以地址计算时应对imm进行符号扩展
第五小题:
无条件转移指令可以采用上述哪种指令格式?
(本小题考察对题目的理解和把握)
(笔者注:其实这里有个小技巧,计算机组成原理大题给的每一个信息都是用得上的,所以可以猜一下,题目给的信息那个没用上)可以采用J型格式,因为将target部分写入PC的低10位,完成跳转。
从以上五个小题可以看出来以下信息
假设计算机M的主存地址为24位,按字节编址;采用分页存储管理方式,虚拟地址为30位,页大小为4KB;TLB采用2路组相联方式和LRU替换策略,共8组。请回答下列问题。
(1)虚拟地址中哪几位表示虚页号?哪几位表示页内地址?
(2)己知访问TLB时虚页号高位部分用作TLB标记,低位部分用作TLB组号,M 的虚拟地址中哪几位是 TLB标记?哪几位是TLB组号?
(3)假设TLB初始时为空,访问的虚页号依次为10,12,16,7,26,4,12和20,在此过程中,哪一个虚页号对应的TLB表项被替换?说明理由。
(4)若将M中的虚拟地址位数增加到32位,则 TLB表项的位数增加几位?
1、主存地址为24位,按字节编址: 即主存大小为16MB
2、虚拟地址为30位,页大小为4KB,TLB采用2路组相联方式和LRU替换策略,共8组: 页内地址12位,组内地址3位,虚拟标记地址15位
第一小题:
(1)虚拟地址中哪几位表示虚页号?
(本小题考察虚拟存储器的相关概念)
虚拟地址=TLB标记+标记组号+页内地址,前两者组成虚页号。
由信息提取②中可知,页内地址12位,虚拟地址共30位,故虚拟地址=20-12=18位,即高18位为虚页号
(2)哪几位表示页内地址?
(本小题考察虚拟存储器的相关概念)
由信息提取②中可知,页内地址12位,即低12位为业内地址
第二小题:
(1)己知访问TLB时虚页号高位部分用作TLB标记,低位部分用作TLB组号,M 的虚拟地址中哪几位是 TLB标记?
(本小题考察虚拟存储器的存储分类)
由信息提取②中可知,TLB采用2路组相联方式,共8组,所以标记组号占三位。
因为虚拟页号由TLB标记和TLB组号组成,所以,高18位中的高15位为TLB标记
(2)哪几位是TLB组号?
(本小题考察虚拟存储器的存储分类)
由信息提取②中可知,虚拟页号由TLB标记和TLB组号组成,所以,高18位中的低3位为TLB组号
第三小题:
(1)假设TLB初始时为空,访问的虚页号依次为10,12,16,7,26,4,12和20,在此过程中,哪一个虚页号对应的TLB表项被替换?说明理由。
TLB组号=虚页号 mod TLB组数。
本题中,为二路组相联,同时组数为8,故TLB组号=虚页号 % 8;
1 | 10%8=2 |
---|---|
2 | 12%8=4 |
3 | 16%8=0 |
4 | 7%8=7 |
5 | 26%8=2 |
6 | 4%8=4 |
7 | 12%8=4 |
8 | 20%20=4 |
故,得出如下结论
编号 | 数字1 | 数字2 |
---|---|---|
0 | 16 | |
1 | ||
2 | 10 | 26 |
3 | ||
4 | ||
5 | ||
6 | ||
7 | 7 |
第四小题:
(1)若将M中的虚拟地址位数增加到32位,则 TLB表项的位数增加几位?
由信息提取②中可知,虚拟地址共30位,故虚拟地址=20-12=18位,即高18位为虚页号
现在地址位数增加到32位,故增加了2位, TLB表项的位数也增加2位,到20位