形式地址A 6
立即数寻址:指令字长16位,立即数A为6位,没有有效地址,A的范围为-32---+31 OP 7
寻址特征3
立即数A 6
相对寻址:指令字长16位,形式地址A为6位,EA=(PC)+A,PC为17为,寻址空间为217=128KB OP 7
寻址特征3
形式地址A 6
基址寻址:指令长度为32位,寄存器号5位,形式地址A为17位,EA=(R)+EA,寄存器为16位,则EA为17位,寻址空间为217=128KB OP 7
寻址特征3
寄存器号R 5
形式地址A 17
间接寻址:指令字长16位,形式地址A为6位,EA=(A),存储字长等于机器字长,则(A)为16位,寻址空间为216=64KB OP 7
寻址特征3
形式地址A 6
变址寻址:指令长度为32位,寄存器号5位,形式地址A为17位,EA=(R)+EA,寄存器为16位,则EA为17位,寻址空间为217=128KB OP 7
寻址特征3
寄存器号R 5
形式地址A 17
3.某计算机字长32位,有16个通用寄存器,主存容量为1M字,采用单字长二地址指令,共有64条指令,设计四种(寄存器,直接,变址,相对)寻址方式的指令格式,指出每种寻址方式的有效地址计算方法和寻址空间。
3.解:字长为32位,采用单字长指令,则指令长度为32位,16个通用寄存器,需要寄存器号为4位,主存容量为1M字,若要访问到主存的任意空间,则有效地址位数为20位。4种寻址方式,寻址特征需要2位,64条指令,操作码需要6位。
寄存器寻址:指令字长为16位,不需要计算有效地址,不需要访存取操作数 OP 6
寻址特征2
寄存器号R1 4
寄存器R2 4
直接寻址:指令字长为32位,有效地址EA=A,A为20位,访存空间为220=1M OP 6
寻址特征2
寄存器号R1 4
形式地址A 20
变址寻址寻址:指令字长为32位,字长为32位,寄存器值也为32位,有效地址EA=(变址寄存器)+A,共为32位,可访存空间232=4G OP 6
寻址特征2
寄存器号R1 4
变址寄存器4
形式地址A 16
相对寻址 OP 6
寻址特征2
形式地址A 8
寄存器寻址:指令字长为16位,EA=(PC)+A,主存需地址线为20位,则PC为20位,所以EA也为20为,可访存空间为:220=1M
4.用16k*1位的DRAM芯片构成64k*8位的存储器,地址范围是0000H--FFFFH,问: (1)需要多少片,怎么构成,地址怎么分配,画出片选信号; (2)设存储器读写周期均为0.5us,CPU在1us内至少要访存一次。可以采取什么刷新方式?两次刷新的时间间隔是多少?对全部存储单元刷新一遍,所需实际刷新时间是多少? 4.解:(1)需要32片。先用16k*1位的用位扩展成16k*8位的,8片组成一组,这一组除了数据线不同之外,其余线的接法完全相同。
再用16k*8位的4组用扩展成64K*8位,这四组,用高位地址线形成片选线,其余线的接法完全相同。16K需要14根,组内地址为A13--A0,每组的地址分配如下: A15 A14 A13----A0
0 0 0----0 DRAM1组:0000H--3FFFH 0 0 1----1
0 1 0----0 DRAM2组:4000H--7FFFH 0 1 1----1
1 0 0----0 DRAM3组:8000H--BFFFH 1 0 1----1
1 1 0----0 DRAM4组:C000H--FFFFH 1 1 1----1
用访存控制信号,M=1,A15,A14作为74ls138译码器的CBA输入端,/Y4选择DARM1组,/Y5选择DRAM2组,/Y6选择DRAM3组,/Y7选择DRAM4组,片选产生电路图如下:
(2)64k*8位,216*23位=219位,可写成210*29行列形式,刷新是以行为单位的,即要刷新所有存储单元即要刷新1024行。CPU在1us内至少要访存一次,不能采用集中刷新方式,可以采取分散刷新和异步刷新方式. 分散刷新:刷一行,读写一次,1us时间内正好0.5us刷新,0.5us读写,两次刷新间隔为1us,1024行都刷新完需要1024us,即1.024ms。2ms的其余时间为正常读写。
异步刷新:2ms内要刷新1024行,则平均1.95us要刷新一行,两次刷新间隔为1.95us,所有行都刷新完需要2ms。
5.某机存储器容量为64K*16位,该机访存指令格如下
其中M为寻址模式:0为直接寻址,1为基址寻址,2为相对寻址,3为立即寻址;I为 间址特征(I=1间址);X为变址特征(X=1变址),设PC为程序计数器,RX为变址寄存器,RB为基址寄存器,问(1)该指令能定义多少种操作?(2)立即寻址操作数的范围? (3)写出每种寻址方式计算有效地址的表达式
(4)设基址寄存器为14位,在非变址直接基址寻址时,指令的寻址范围是多少? (5)间接寻址时,寻址范围是多少?若允许多重寻址,寻址范围又是多少? 5.解:(1)该指令能定义16种操作
(2)立即寻址操作数的范围是-128—+127 (3)直接寻址EA=A基址寻址EA=(RB)+A 变址寻址EA=(RX)+A相对寻址EA=(PC)+A 间接寻址EA=((A))
(4)非变址直接基址寻址时EA=(RB)+A,RB为14位,故可寻址范围为214.
(5)间接寻址时,如不考虑多次间址,寻址范围为64K。如果考虑多次间址,则需要最高1位作为多次间址标志,此时寻址范围为32K。
6.设cache的容量为8KB,主存的容量为512KB,每块有16B,请回答: (1)采用直接映射方式,画出主存和cache的地址分配?
(2)cache采用4路组相联映射,画出主存和cache的地址分配? (3)直接映射方式下,将主存的第513块调入cache,则cache的块号为什么?组号是什么?若送出的主存地址为04011H时是否命中?
6.(1)cache为8KB/16B=512,则cache地址分配为
主存为512KB/16B=32K,则主存的地址分配为 cache采用4路组相联,则地址分配为
(3)513mod 512=1,即第1号块,组号为512/512=1.