第三章
【扩展指令码技术、寻址方式】
某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段内容为06H,则该转移指令成功转移后的目标地址是( C )字编址B
2006H
2007H
2008H
2009H
与本条指令的地址有关的寻址方式是( C )
立即寻址
寄存器寻址
相对寻址
直接寻址
零地址的运算类指令在指令格式中不给出操作数地址,参加的两个操作数来自( B )
累加器和寄存器
堆栈的栈顶和次栈顶单元
累加器和暂存器
暂存器和次栈顶单元
设相对寻址的转移指令占两个字节,第一个字节是操作码,第二字节是相对位移量(用补码表示)。每当CPU从内存取出第一个字节时,即自动完成(PC)+1—>PC。若当前PC的内容为3008,H,要求转移到3000H,则该转移指令第二个字节的内容为( )
08H
09H
F7H
F6H
下列寻址方式中,为程序浮动提供支持的是( )
变址寻址
相对寻址
间接寻址
寄存器间接寻址
一个计算机系统采用32位单字长指令,地址码为12位,如果定义了250条二地址指令,那么还可以定义( D )条单地址指令【扩展操作码技术考】
4K 8 12 12
8K 250
16K
24K 6*2^12
在字节编址的计算机中,一条指令长16位,当前指令地址为3000,在读取这条指令后,PC的值为( )
3000
3001
3002
3016
偏移寻址通过将某个寄存器内容与一个形式地址相加而生成有效地址。下列寻址方式中,不属于偏移寻址方式的是( )
间接寻址
基址寻址
相对寻址
变址寻址
某计算机存储器及CPU的字长均为16位,CPU有16个16位的通用寄存器。请为该计算机设计能满足下列条件的指令格式,并加以说明
允许有不超过210种的操作指令。
至少有210种指令,操作码字段的位数为8
主存储器空间不少于16MB。
主存字节地址至少24位
至少有五种寻址方式。
2<log25<3,每个寻址方式占三位,可有8种寻址方式
只有单字长指令和双字长指令可供选择。
单字节指令:长度为16位,操作码占8位,3位用于寻址,剩余5位用于操作数
双字长指令:长度为32位,操作码8位,剩余24位
某机指令格式如下:【考】
OP(6位) MOD(2位) A(8位)
OP表示操作码,MOD表示寻址方式,A表示形式地址,且MOD=0为直接寻址,MOD=1为间接寻址,MOD=2为相对寻址,MOD=3为变址寻址。设(PC)=1234H,(Rx)=113CH,请确定下列指令的有效地址(均用十六进制表示),要求写出中间过程
4C20H,2244H,3547H,6F23H
4C20
0100 1100 0010 0000
EA=0020H
2244
0010 0010 0100 0100
此时 PC+1=1235
0001 0010 0011 0101
0100 0100
0001 0010 0111 1001
EA=1279H
3547
0011 0101 0100 0111
EA=(0047H)
6F23
0110 1111 0010 0011
113C
0001 0001 0011 1100
0010 0011
0001 0001 0101 1111
EA=(115FH)
指令字长为12位,每个地址码为3位,采用扩展操作码的方式,设计4条三地址指令、16条二地址指令、64条一地址指令和16条零地址指令。【考】
给出一种操作码的扩展方案
三地址指令:从000到011
二地址指令:100+从000到111 101+从000到110 110+000
一地址指令:100111+000到111 110 +从001到111 + 从000到111
零地址指令:111 111 111 +从000到111 111111000+从000到111
画出指令译码逻辑
计算操作码的平均长度
在16位长的指令系统中,设计一个扩展操作码,能对下列指令进行译码。
(1)7条三地址指令
(2)225条单地址指令
(3)16条零地址指令
令每个地址码为4位,分别画出3种类型指令的格式,并说明译码过程。
三地址指令:0001 0000 0000 0000~0111 0000 0000 0000
单地址指令:0000 0000 0001~0000 1111 1111
零地址指令:0000 0000 0000 0000~0000 0000 0000 1111
某计算机的字长为16位,存储器按字编址,访存指令格式如图所示。
OP(15~11) MOD(10~8) A(7~0)
其中,OP是操作码,MOD定义寻址方式,A表示形式地址,且MOD=0为立即寻址,MOD=1为直接寻址,MOD=2为间接寻址,MOD=3为变址寻址,MOD=4为相对寻址。设PC和Rx分别为程序计数器和变址寄存器,字长为16位,问:
该格式能定义多少种指令
此指令格式中操作码占5位,总共可以定义的指令种类为25=32种
各种寻址方式的寻址范围为多少字
该指令格式中操作数地址占8位
0 指令本身
1、256个字 2、64K个字 3、64K个字 4、256个字
写出各种寻址方式的有效地址EA的计算式
立即寻址 EA=(PC) 直接寻址 EA=A 间接寻址 EA=(A)
变址寻址 EA=(RX)+A 相对寻址 EA=(PC)+A
某机器主存容量为4M×16,且存储字长等于指令字长。若该机指令系统可完成108种操作,操作码位数固定,有直接寻址、间接寻址、变址寻址、相对寻址、立即寻址六种寻址方式,试回答
画出一地址指令格式,并指出各字段的作用
OP(7位) M(3位) A(6位)
OP为操作码字段 可以有108种操作
M为寻址方式字段 有6种寻址方方式
A为地址码字段
该指令直接寻址的寻址范围
直接寻址的最大范围 64
一次间接寻址和多次间接寻址的范围
一次间接寻址的范围216
多次间接寻址需要最高位判断所以范围是 215
立即数的范围(十进制表示)
有符号 -32~31
无符号0~63
相对寻址的位移量(十进制表示)
相对寻址的位移量 -32---31
上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?
直接寻址、相对寻址、相对寻址、变址寻址
第四章
已知X=+13,Y=-11,N=5,求X+Y,X-Y,Y-X。
已知X=+13,Y=-11,N=5,用原码/补码一位乘法求X·Y。
已知X=+13,Y=-11,N=5,用原码一位不恢复余数算法求X/Y。
某浮点数阶码6位(含1位符号位:阶符),补码表示,尾数10位,(含1位符号位:数符),补码表示,X=2010B*0.11011011B,Y=2100B*(-0.10101100B),求X+Y。
【乘法,只考原码一位乘、浮点数加减运算】
串行进位链和并行进位链不考
第五章
下列有关RAM和ROM的叙述中,正确的是( A )
RAM是易失性存储器,ROM是非易失性存储器
RAM和ROM都采用随机存取方式进行信息访问
RAM和ROM都可用作Cache
RAM和ROM都需要进行刷新
A.仅I和II B.仅II和III C.仅I、II、III D. 仅II、III、IV
主存储器和CPU之间增加Cache的目的是( A )
解决CPU和主存之间的速度匹配问题
扩大主存储器容量
扩大CPU中通用寄存器的数量
既扩大主存储器容量,又扩大CPU中通用寄存器的数量
某SRAM芯片,其容量为1M×8位,除电源和接地端外,控制端有E和R/W,该芯片的管脚引出线数目是( B )
A.20 B.28 C.30 D.32
在下列因素中,与Cache的命中率无关的是( C )
A.Cache块的大小 B.Cache的容量 C.主存的存取时间 D.替换算法
Cache的地址映像中,若主存中的任一块均可映射到Cache内的任一块的位置上,称为( B )
A.直接映像 B.全相连映像 C.组相连映像 D.段组相连映像
动态半导体存储器的特点是( C )
在工作中存储器内容会产生变化
每次读出后,需要根据原存内容重新写入一遍
每隔一段时间,需要根据原存内容重新写入一遍
在工作中需要动态地改变访存地址
某机器字长32位,其存储容量为8MB,若按字编址,它的寻址范围是( D )
A.0~256K B. 0~512K C. 0~1M D. 0~2M
假定用若干个2K×4位芯片组成一个8K×8位存储器,则地址0B1FH所在芯片的最小地址是( D )
A.0000H B. 0600H C. 0700H D. 0800H
某半导体存储器容量为14KB,其中0000H~1FFFH为ROM区,2000H~37FFH为RAM区,地址总线A15~A0(低),双向数据总线D7~D0(低),读/写控制线R/W(—)。可选用的存储芯片有EPROM 4KB/片,RAM2K×4/片。
说明加到各芯片的地址值
画出该存储器芯片级逻辑图,包括地址总线、数据线、片选信号线(低电平有效)及读/写信号线的连接。
写出各片选信号的逻辑式
已知某16位机的主存采用半导体存储器,地址码为18位,若使用8K×4位SRAM芯片组成该机所允许的最大主存空间,并选用模块板结构形式,问:
若每个模板为32K×8位,共需几个模快板?
每个模快内共有多少片RAM芯片?如何连接?主存共需多少RAM芯片?
CPU如何选择模快板?
解:(1)地址码18位,8位机,所以最大主存空间为(256×8)KB所以需用模块数为(256×8)/(32×8)= 8
(2)4K×4位的SRAM芯片,构成32K×8位的模块条,需(32K×8位)/4K×4位=16,即需8组SRAM,每组2条,才能构成一个模块条共需8×16=128个RAM芯片
(3)8个模块条,所以3条(2^3)地址线来片选模块译码器选用74138
若存储芯片容量为128K×8位,求:
访问该芯片需要多少位地址?
假定该芯片在存储器中首地址为A0000H,末地址应为多少?
解:(1)128k=0~1FFFFH 所以需要十七位地址线;
(2)首地址为 A0000H,末地址为CFFFFH;
假设有一个16K×16位存储器,由1K×4位的动态RAM芯片构成(芯片内是64×64矩阵结构),问:
总共需要多少RAM芯片?
各芯片如何连接?画出存储体的组成框图。
异步方式刷新,如单元刷新间隔不超过2ms,则刷新信号周期是多少?
如果采用集中刷新方式,对全部存储单元刷新一遍,最少需要多少个存储器读/写周期
解:(1)所需RAM芯片数=(16K×16)/(1K×4)=64片
(3)若采用异步刷新方式,则需要在2ms时间内分散地把芯片的64行刷新一遍,所以刷新的时间间隔=2ms/64=31.25微秒,即刷新周期约31微秒。
(4)若采用集中刷新方式,设T为刷新周期,DRAM芯片中所有行同时进行刷新,则所需刷新时间=64T。因为存储器的刷新周期为0.5微秒,所以刷新周期也为0.5微秒
若存储芯片容量为128K×8位,求:
访问该芯片需要多少位地址。
假定该芯片在存储器中搜地址为A0000H,末地址应为多少?
如下图:是某存储芯片的引脚图,请回答:
这个存储芯片为何种类型(是RAM还是ROM)?这个存储芯片的容量多大?
若地址线增加1根, 存储芯片的容量将变为多少?
这个按是否需要刷新?为什么?刷新和重写有什么区别?
如果需要刷新,请指出芯片刷新一遍需要多长时间(设存取时间为0.5μs)及你准备选择哪些刷新方式,需说明理由。
解:(1)芯片类型是RAM,且为动态RAM,容量为64K*1
(2)由于地址线是复用的,如果地址线增加一根,容量增加4倍,芯片容量变为256K*1
(3)需要刷新,因为DRAM是用电容存储信息的。重写是随机的,刷新是定时的。重写按存储单元进行,刷新按存储体一行行的进行。
(4)64K*1芯片的内部为256*256的矩阵,芯片刷新一遍需要的时间=256*0.5微秒。采用异步刷新方式最好,死区小,刷新次数少
某计算机的Cache共16块,采用2路组相连映像方式(即每组2块),每个主存块大小为32B,按字节编址。主存129号单元所在的主存块应装入到Cache的组号是( C )
A.0 B. 2 C.4 D. 6
某计算机主存容量为1MB,Cache大小为64KB,块大小为16B,若采用2路组相连映像,请回答:
主存地址有几位?Cache地址有几位?
请写出主存地址和Cache地址格式,说明各字段的位数。
请问Cahce的标记字段是几位?
若Cache的存取时间是50ns,主存的存取时间是2504ns,Cache的命中率是90%,请问存储器的平均存取时间是多少?