C1 = G1 + P1 C0
C2 = G2 + P2 G1 + P2 P1 C0
C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C0
C4 = G4 + P4 G3 + P4 P3 G2 + P4 P3 P2 G1 + P4 P3 P2 P1 C0 其中 G1-G4 ,P1-P4 表达式与串行进位方式相同。
14. 某机字长16位,使用四片74181组成ALU,设最低位序标注为0位,要求:
(1)写出第5位的进位信号C6的逻辑表达式; (2)估算产生C6所需的最长时间; (3)估算最长的求和时间。
解:(1) 组成最低四位的74181进位输出为:C4=G+P C0 ,C0为向第0位的进位
其中:G=y3+x3y2+x2x3y1+x1x2x3y0, P=x0x1x2x3 所以 :C5=y4+x4C4
C6=y5+x5C5=y5+x5y4+x5x4C4
(2)设标准门延迟时间为T,\与或非\门延迟时间为1.5T,则进位信号C0由最低位传送至C6需经一个反相器,两级\与或非\门,故产生C6的最长延迟时间为:
T+2×1.5T=4T
(3)最长求和时间应从施加操作数到ALU算起:第一片74181有3级\与或非\门(产生控制参数x0,y0Cn+4),第二、第三片74181共2级反相器和2级\与或非\门(进位链),第四片74181求和逻辑(1级\与或非\门和1级半加器,其延迟时间为3T),故总的加法时间为:
T=3×1.5T+2T+2×1.5T+1.5T+1.5T+3T=14T
17.设A,B,C是三个16位的通用寄存器,请设计一个16位定点补码运算器,能实现下述功能:
(1) A±B→A
(2) B×C→A, C(高位积在寄存器A中) (3) A÷B→C(商在寄存器C中)
解:设计能完成加、减、乘、除运算的16位定点补码运算器框图。 分析各寄存器作用:
加 减 乘 除
A 被加数→和 同左 初始为0 被除数→余数 部分积→乘积(H) 除数 B 加数 同左 被乘数
C -- -- 乘数→乘积(L) 商
∴ A:累加器(16位),具有输入、输出、累加功能及双向移位功能; B:数据寄存器(16位),具有输入、输出功能; C:乘商寄存器(16位),具有输入、输出功能及双向移位 画出框图:
第三章答案
1.有一个具有20位地址和32位字长的存储器,问: (1) 该存储器能存储多少个字节的信息?
(2) 如果存储器由512K×8位SRAM芯片组成,需要多少芯片? (3) 需要多少位地址作芯片选择?
解:(1)∵ 220= 1M, ∴ 该存储器能存储的信息为:1M×32/8=4MB (2)(1000/512)×(32/8)= 8(片) (3) 需要1位地址作为芯片选择。
2. 已知某64位机主存采用半导体存储器,其地址码为26位,若使用
256K×16位的DRAM芯片组成该机所允许的最大主存空间,并选用模块板结构形式,问:
(1) 每个模块板为1024K×64位,共需几个模块板? (2) 个模块板内共有多少DRAM芯片?
(3)主存共需多少DRAM芯片? CPU如何选择各模块板? 解:(1). 共需模块板数为m: m= ÷ =64 (块)
(2). 每个模块板内有DRAM芯片数为n: n=( / ) ×(64/16)=16 (片)
(3) 主存共需DRAM芯片为:16×64=1024 (片)
每个模块板有16片DRAM芯片,容量为1024K×64位,需20根地址线(A19~A0)完成模块
板内存储单元寻址。一共有64块模块板,采用6根高位地址线(A25~A20),通过
6:64译码器译码产生片选信号对各模块板进行选择。 3. 用16K×8位的DRAM芯片组成64K×32位存储器,要求: (1) 画出该存储器的组成逻辑框图。
(2) 设存储器读/写周期为0.5μS, CPU在1μS内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?
解:(1)组成64K×32位存储器需存储芯片数为 N=(64K/16K)×(32位/8位)=16(片)
每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15 A14经2:4译码器产生片选信号 ,逻辑框图如下所示:
(2)依题意,采用异步刷新方式较合理,可满足CPU在1μS内至少访问内存一次的要求。
设16K×8位存储芯片的阵列结构为128行×128列,按行刷新,刷新周期T=2ms,则异步
刷新的间隔时间为:
则两次刷新的最大时间间隔发生的示意图如下 可见,两次刷新的最大时间间隔为tmax tmax=15.5-0.5=15 (μS) 对全部存储单元刷新一遍所需时间为t R t R =0.5×128=64 (μS)
7.某机器中,已知配有一个地址空间为0000H-3FFFH的ROM区域。现在再用一个RAM芯片(8K×8)形成40K×16位的RAM区域,起始地址为6000H,假定RAM芯片有和 信号控制端。CPU的地址总线为A15-A0,数据总线为D15-D0,控制信号为R/ (读/写), (访存),要求:
(1) 画出地址译码方案。 (2) 将ROM与RAM同CPU连接。
解:(1)依题意,主存地址空间分布如右图所示,可选用2片27128(16K×8位)的EPROM作为
ROM区;10片的8K×8位RAM片组成40K×16位的RAM区。27128需14位片内地址,而RAM需13位
片内地址,故可用A15-A13三位高地址经译码产生片选信号,方案如下: (2)
8. 存储器容量为64M,字长64位,模块数m = 8,分别用顺序方式和交叉方式进行组织。存储周期T = 100ns,数据总线宽度为64位,总线周期τ = 10ns .问顺序存储器和交叉存储器的带宽各是多少?
解:信息总量: q = 64位 ×8 =512位
顺序存储器和交叉存储器读出8个字的时间分别是: t2 = m T = 8×100ns =8×10 (s)
t1 = T + (m - 1) = 100 + 7×10 = 1.7 ×10 (s) 顺序存储器带宽是:
W2 = q / t2 = 512÷(8×10 )= 64 ×10 (位/ S) 交叉存储器带宽是:
W1 = q / t1 = 512÷(1.7 ×10 )= 301 ×10 (位/ S) 9. CPU执行一段程序时, cache完成存取的次数为2420次,主存完成存取的次数为80
次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。
解:先求命中率h
h=nc/(nc +nm )=2420÷(2420+80)=0.968 则平均访问时间为ta
ta=0.968×40+(1-0.968) ×240=46.4(ns) r =240÷40=6 cache/主存系统的效率为e
e=1/[r+(1-r)×0.968]=86.2%
10.已知Cache存储周期40ns,主存存储周期200ns,Cache/主存系统平均访问时间为50ns,求Cache的命中率是多少?
解: ∵ ta = tc× h +tr×(1-h)
∴ h =(ta-tr)/(tc-tr)=(50-200)/(40-200)=15/16=0.94
11.主存容量为4MB,虚存容量为1GB,则虚存地址和物理地址各为多少位?如页面大小为4KB,则页表长度是多少?
解:已知主存容量为4MB,虚存容量为1GB ∵ =4M ∴物理地址为22位 又 ∵ =1G ∴虚拟地址为30位
页表长度为 1GB÷4KB=230÷212=218=256K