计算机组成原理课程习题选解
4.5 有一个512K×16的存储器,由64K×1的2164RAM芯片构成(芯片内是4个128×128结构)问:
(1)总共需要多少个RAM芯片?
(2)如 采用分散刷新方式,如单元刷新间隔不超过2ms,则刷新信号的周期是多少?
解:(1)所需的芯片数=(512K×16)÷(64K×1)=128
(2) 刷新时,按照芯片结构内的行数来进行刷新,与外围扩展的芯片数无关,所以采用分散刷新,刷新信号的周期为:2ms÷128=15.6μs
4.12 设某主存储器访问一次存储器的时间如下:传送地址1个时钟周期,读写4个时钟周期,数据传送1个时钟周期,采用下述3种主存结构读写16个字的数据块,各需要多少时钟周期? (1)单字宽主存,一次只能读写一个字;
(2)4字宽主存,一次可读写4个字,但CPU与主存的数据传送宽度为1个字;
(3)4体交叉存储器,每个存储体为单字宽。 解:
(1) 单字宽主存,只能采用串行方式进行读写,16个字所需时间为:
(1+4+1)×16=96个。
(2)4字宽主存,16个字的读写过程:
:传送地址
:读写时间
:数据传送
所需时间=4*6+3=27
(3) 4体交叉存储器,每个存储体为单字宽:
所以,所需要的时间为6×4+3=27
4.6 某机器中,已知道有一个地址空间为0000H—1FFFH的ROM区域,现在再用RAM芯片(8K×4)形成一个16K×8的RAM区域,起始地址为2000H。RAM芯片有片选端CS和读写控制端WE,CPU的地址总线为A15---A0,数据总线为D7---D0,控制信号为R/W,MREQ。要求画出逻辑图。 解:
(1) 进行CPU地址线的分配
根据题意,ROM地址为0000,0000,0000,0000
至0001,1111,1111,1111
RAM地址起始为:0010,0000,0000,0000 现在RAM的容量为16K×8,字数为16K,即214
由此可推断出RAM地址空间的变化为:
0010,0000,0000,0000 4K,212 ……
0010,1111,1111,1111 0011,0000,0000,0000 4K,212 ……
0011,1111,1111,1111 0100,0000,0000,0000 4K,212 ……
0100,1111,1111,1111 0101,0000,0000,0000 4K,212 ……
0101,1111,1111,1111 ROM地址: 0000,0000,0000,0000 ……
0001,1111,1111,1111
由可见,对于
ROM 和RAM来说,可用地址线 A15,A14,A13进行
译码选择。
所以将CPU地址线的A15,A14,A13输入到3-8译码器中,将译码器的Y0输出接至ROM,译码器的Y1,Y2接至RAM。
(2) 画图,所得图形见书本答案。
5.1 某指令系统指令长16位,每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数有K条,无操作数有L条,问单操作数最多可有多少条? 解:
操作码 4位 第一操作数6位 第二操作数 6位
双操作数最多可有24 = 16条
现双操作数有K 条,则剩余可用于扩展的状态数为(16-K); 则可以扩展的单操作数最多有(16-K)×26; 现设单操作数最多有X条,
则剩余可用于扩展成无操作数的状态数为:(16-K)×26-X; 现在无操作数为L条,即存在关系: [(16-K)×26-X] ×26=L 解得:X= (16-K)×26- L/26