浮点存储:1.若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。
解:将16进制数展开后,可得二制数格式为0 100 00010011 0110 0000 0000 0000 0000S 阶码(8位) 尾数(23位)指数e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011于是有x=(-1)S×1.M×2e=+(1.011011)×23=+1011.011=(11.375)102. 将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。
解:首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间10100.10011=1.010010011×24e=4于是得到:S=0, E=4+127=131, M=010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)163.假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为(非IEEE754标准):x=(-1)s×(1.M)×2E-128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?(1)最大正数0 1111 1111 111 1111 1111 1111 1111 1111x=[1+(1-2-23)]×2127(2)最小正数000 000 000000 000 000 000 000 000 000 00x=1.0×2-128(3)最小负数111 111 111111 111 111 111 111 111 111 11x=-[1+(1-2-23)]×2127(4)最大负数100 000 000000 000 000 000 000 000 000 00x=-1.0×2-1284.用源码阵列乘法器、补码阵列乘法器分别计算xXy。
(1)x=11000 y=11111 (2) x=-01011 y=11001(1)原码阵列x = 0.11011, y = -0.11111符号位: x 0⊕y 0 = 0⊕1 = 1[x]原原[x*y]原 = 1, 11 0100 0101带求补器的补码阵列[x]补 = 0 11011, [y]补 = 1 00001乘积符号位单独运算0⊕1=1,│y │=11111X ×Y =-0.1101000101(2) 原码阵列x = -0.11111, y = -0.11011符号位: x 0⊕y 0 = 1⊕1 = 0[x*y]补 = 0,11010,00101带求补器的补码阵列[x]补 = 1 00001, [y]补 = 1 00101乘积符号位单独运算1⊕1=0尾数部分算前求补输出│X│=11111,│y│=11011X×Y=0.11010001015. 计算浮点数x+y、x-yx = 2-101*(-0.010110), y = 2-100*0.010110[x]浮= 11011,-0.010110[y]浮= 11100,0.010110Ex-Ey = 11011+00100 = 11111[x]浮= 11100,1.110101(0)阶码 11010-6规格化处理: 1.011111 阶码 11100x-y=-0.100001*2-46. 设过程段 S i所需的时间为τi,缓冲寄存器的延时为τl,线性流水线的时钟周期定义为τ=max{τi}+τl=τm+τl流水线处理的频率为 f=1/τ。
一个具有k 级过程段的流水线处理 n 个任务需要的时钟周期数为T k=k+(n-1),所需要的时间为: T=T k×τ而同时,顺序完成的时间为:T=n×k×τk级线性流水线的加速比:*C k = TL =n·kTk k+(n-1)内部存储器*闪存:高性能、低功耗、高可靠性以及移动性编程操作:实际上是写操作。
所有存储元的原始状态均处“1”状态,这是因为擦除操作时控制栅不加正电压。
编程操作的目的是为存储元的浮空栅补充电子,从而使存储元改写成“0”状态。
如果某存储元仍保持“1”状态,则控制栅就不加正电压。
如图(a)表示编程操作时存储元写0、写1的情况。
实际上编程时只写0,不写1,因为存储元擦除后原始状态全为1。
要写0,就是要在控制栅C上加正电压。
一旦存储元被编程,存储的数据可保持100年之久而无需外电源。
读取操作:控制栅加上正电压。
浮空栅上的负电荷量将决定是否可以开启MOS晶体管。
如果存储元原存1,可认为浮空栅不带负电,控制栅上的正电压足以开启晶体管。
如果存储元原存0,可认为浮空栅带负电,控制栅上的正电压不足以克服浮动栅上的负电量,晶体管不能开启导通。
当MOS晶体管开启导通时,电源VD提供从漏极D到源极S的电流。
读出电路检测到有电流,表示存储元中存1,若读出电路检测到无电流,表示存储元中存0,如图(b)所示。
擦除操作:所有的存储元中浮空栅上的负电荷要全部洩放出去。
为此晶体管源极S加上正电压,这与编程操作正好相反,见图(c)所示。
源极S上的正电压吸收浮空栅中的电子,从而使全部存储元变成1状态。
*cache:设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。
存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。
若连续读出4个字,问顺序存储器和交叉存储器的带宽各是多少?解:顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:q=64b×4=256b顺序存储器和交叉存储器连续读出4个字所需的时间分别是:t2=mT=4×200ns=800ns=8×10-7st1=T+(m-1)=200ns+350ns=350ns=35×10-7s顺序存储器和交叉存储器的带宽分别是:W2=q/t2=256b÷(8×10-7)s=320Mb/sW1=q/t1=256b÷(35×10-7)s=730Mb/s*CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。
解:h=Nc/(Nc+Nm)=1900/(1900+100)=0.95r=tm/tc=250ns/50ns=5e=1/(r+(1-r)h)=1/(5+(1-5)×0.95=83.3%ta=tc/e=50ns/0.833=60ns*存储器:已知某64位机主存采用半导体存储器,其地址码为26位,若使用256K×16位的DRAM 芯片组成该机所允许的最大主存空间,并选用模块板结构形式,问:(1) 每个模块板为1024K×64位,共需几个模块板?(2) 个模块板内共有多少DRAM 芯片?(3)主存共需多少DRAM 芯片? CPU 如何选择各模块板? (1)个模块64264*264*262026== (2)1616*2*264*281020=每个模块要16个DRAM 芯片(3)64*16 = 1024块由高位地址选模块*用16K×8位的DRAM 芯片组成64K×32位存储器,要求:(1) 画出该存储器的组成逻辑框图。
(2) 设存储器读/写周期为0.5μS, CPU 在1μS 内至少要访问一次。
试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?解:(1)根据题意,存储总容量为64KB ,故地址总线需16位。
现使用16K*8位DRAM 芯片,共需16片。
芯片本身地址线占14位,所以采用位并联与地址串联相结合的方法来组成整个存储器,其组成逻辑图如图所示,其中使用一片2:4译码器。
(2)根据已知条件,CPU 在1us 内至少访存一次,而整个存储器的平均读/写周期为0.5us ,如果采用集中刷新,有64us 的死时间,肯定不行如果采用分散刷新,则每1us 只能访存一次,也不行所以采用异步式刷新方式。
假定16K*1位的DRAM 芯片用128*128矩阵存储元构成,刷新时只对128行进行异步方式刷新,则刷新间隔为2ms/128 = 15.6us ,可取刷新信号周期15us 。
刷新一遍所用时间=15us ×128=1.92ms指令系统*某计算机字长16位,主存容量为64K字,采用单字长单地址指令,共有40条指令,试采用直接、立即、变址、相对四种寻址方式设计指令格式。
解:40条指令需占用操作码字段(OP)6位,这样指令余下长度为10位。
为了覆盖主存640K字的地址空间,设寻址模式(X)2位,形式地址(D)8位,其指令格式如下:寻址模式定义如下:X= 0 0 直接寻址有效地址 E=D(直接寻址为256个存储单元)X= 0 1 立即寻址 D字段为操作数X= 1 0 变址寻址有效地址 E= (RX)+D (可寻址64K个存储单元)X= 1 1 相对寻址有效地址 E=(PC)+D (可寻址64K个存储单元)其中RX为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,位移量D可正可负。
四、CPU*微指令:直接表示法特点:这种方法结构简单,并行性强,操作速度快,但是微指令字太长,若微命令的总数为N个,则微指令字的操作控制字段就要有N位。
另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。
*编码表示法特点:可以避免互斥,使指令字大大缩短,但增加了译码电路,使微程序的执行速度减慢* 编码注意几点:字段编码法中操作控制字段并非是任意的,必须要遵循如下的原则:①把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。
这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。
②应与数据通路结构相适应。
③每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
④一般每个小段还要留出一个状态,表示本字段不发出任何微命令。
因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。
*水平型微指令和垂直型微指令的比较(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。