.
浮点存储:
1.若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。 解:将16进制数展开后,可得二制数格式为
0 100 00010011 0110 0000 0000 0000 0000 S 阶码(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)10
2. 将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。 解:首先分别将整数和分数部分转换成二进制数:
20.59375=10100.10011
然后移动小数点,使其在第1,2位之间
4
10100.10011=1.010010011×2 e=4于是得到:
S=0, E=4+127=131, M=010010011
最后得到32位浮点数的二进制存储格式为: 01000001101001001100000000000000=(41A4C000)16
sE-128
3. 假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为(非IEEE754标准):x=(-1)×(1.M)×2 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?
(1)最大正数
0 1111 1111 111 1111 1111 1111 1111 1111 x=[1+(1-2-23)]×2127 (2)最小正数
000 000 000000 000 000 000 000 000 000 00 x=1.0×2-128 (3)最小负数
111 111 111111 111 111 111 111 111 111 11 x=-[1+(1-2-23)]×2127
Word 资料
.
(4)最大负数
100 000 000000 000 000 000 000 000 000 00
x=-1.0×2-128
4.用源码阵列乘法器、补码阵列乘法器分别计算xXy。
(1)x=11000 y=11111 (2) x=-01011 y=11001 (1)原码阵列
x = 0.11011, y = -0.11111 符号位: x0⊕y0 = 0⊕1 = 1 [x]原 = 11011, [y]原 = 11111 1 1 0 1 1 * 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1
[x*y]原 = 1, 11 0100 0101 带求补器的补码阵列
[x]补 = 0 11011, [y]补 = 1 00001 乘积符号位单独运算0⊕1=1 尾数部分算前求补输出│1 1 0 1 1 X│=11011, * 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1
X×Y=-0.1101000101 (2) 原码阵列
x = -0.11111, y = -0.11011 符号位: x0⊕y0 = 1⊕1 = 0 [x]补 = 11111, [y]补 = 11011
Word 资料
y│=11111 │ . 1 1 1 1 1 *1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 [x*y]补 = 0,11010,00101 带求补器的补码阵列
[x]补 = 1 00001, [y]补 = 1 00101 乘积符号位单独运算1⊕1=0
尾数部分算前求补输出│X│=11111,│y│=11011
1 1 1 1 1
*1 1 0 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
1 1 1 1 1
1 1 1 1 1 1 1 0 1 0 0 0 1 0 1
X×Y=0.1101000101
5. 计算浮点数x+y、x-y
-101-100
x = 2*(-0.010110), y = 2*0.010110 [x]浮= 11011,-0.010110 [y]浮= 11100,0.010110
Ex-Ey = 11011+00100 = 11111 [x]浮= 11100,1.110101(0) x+y 1 1. 1 1 0 1 0 1 + 0 0. 0 1 0 1 1 0 0 0. 0 0 1 0 1 1
Word 资料
.
规格化处理: 0.101100 阶码 11010
-6
x+y= 0.101100*2 x-y 1 1.1 1 0 1 0 1 + 1 1.1 0 1 0 1 0 1 1.0 1 1 1 1 1
规格化处理: 1.011111 阶码 11100
-4
x-y=-0.100001*2
6. 设过程段 Si所需的时间为τi,缓冲寄存器的延时为τl,线性流水线的时钟周期定义为 τ=max{τi}+τl=τm+τl 流水线处理的频率为 f=1/τ。
一个具有k 级过程段的流水线处理 n 个任务需要的时钟周期数为Tk=k+(n-1), 所需要的时间为: T=Tk × τ
而同时,顺序完成的时间为:T=n×k×τ k级线性流水线的加速比: *Ck = TL = n·k Tk 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)所示。
Word 资料
.
擦除操作:所有的存储元中浮空栅上的负电荷要全部洩放出去。为此晶体管源极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-7s
t1=T+(m-1)=200ns+350ns=350ns=35×10-7s 顺序存储器和交叉存储器的带宽分别是: W2=q/t2=256b÷(8×10-7)s=320Mb/s W1=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.95 r=tm/tc=250ns/50ns=5
e=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如何选择各模块板?
Word 资料