1、- 1 -46 某机字长为 32 位,其存储容量是 64KB,按字编址的寻址范围是多少?若主存按字节编址,试画出主存字地址和字节地址的分配情况。解:主存容量 64KB,如果按字编址,有 64KB / 4B = 16K 个可寻址单元寻址范围是 2 14或 0 16K-1如果按字节编址,有 64K 个可寻址单元。每个字包含 4 个字节。用二进制表示的地址,字地址的最低 2 位是 00。4、7. 一个容量为 16K32 位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1K4 位,2K8 位,4K4 位,16K1 位,4K8 位,8K8 位解:地址线和数据线的总
2、和 = 14 + 32 = 46 根;选择不同的芯片时,各需要的片数为:1K4:(16K32) / (1K4) = 168 = 128 片2K8:(16K32) / (2K8) = 84 = 32 片4K4:(16K32) / (4K4) = 48 = 32 片16K1:(16K32)/ (16K1) = 132 = 32 片4K8:(16K32)/ (4K8) = 44 = 16 片8K8:(16K32) / (8K8) = 24 = 8 片4.15 设 CPU 共有 16 根地址线,8 根数据线,并用 MREQ(低电平有效)作访存控制信号, 作读写命令信号(高电平为读,低电平为写) 。现有
3、下W/R列存储芯片:ROM(2K8 位,4K4 位,8K8 位) ,RAM(1K4 位,2K8 位,4K8 位) ,及 74138 译码器和其他门电路(门电路自定) 。试从上述规格中选用合适芯片,画出 CPU 和存储芯片的连接图。要求:(1)最小 4K 地址为系统程序区,409616383 地址范围为用户程序区;(2)指出选用的存储芯片类型及数量;(3)详细画出片选逻辑。4K 的系统程序区可以用 4K4 的 ROM 芯片,2 片4096-16383 的用户程序区应该用 4K8 的 RAM 芯片,3 片解地址xx0000存储器字节 0字节 1字节 2字节 3字节 4字节 5字节 6字节 7字节
4、8字节 9xx0001xx0010xx0011xx0100xx0101xx0110xx0111xx1000xx1001字地址 存储器字节 0 字节 1 字节 2 字节 3xxx0000字节 0 字节 1 字节 2 字节 3字节 0 字节 1 字节 2 字节 3xxx0100xxx1000字节地址xx00 xx01 xx10 xx11- 2 - 4-28 设主存容量为 256K 字,Cache 容量为 2K 字,块长为 4。(1)设计 Cache 地址格式,Cache 中可装入多少块数据?(2)在直接映射方式下,设计主存地址格式。(3)在四路组相联映射方式下,设计主存地址格式。(4)在全相联映射
5、方式下,设计主存地址格式。(5)若存储字长为 32 位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式(1)Cache 的块数 = 2K / 4 = 512Cache 的块地址为 9 位,块内地址为(2)直接映射主存地址为 18 位,其中块地址为 16 位,块内地址为 2 位主存地址的最高 7 位作为 Tag格式:(3) 四路组相联Cache 的组数 = 512 / 4 = 128Cache 的组地址为 7 位。主存地址的最高 7 位和中间 2 位共同作为 Tag主存地址格式:(4) 全相联主存地址格式:A15A14A13 A12 A11 A0CPUD0D7A0 A11 4k4 ROM
6、D0 D3 CSOES1 3-8 译 码C 器BA20Y17Y3WR/ A0A11 4k8 RAMI/O0I/O7 CSWR/1 A0A11 4k8 RAMI/O0I/O7 S/A0A11 4k8 RAMI/O0I/O7 CSWR/A0 A11 4k4 ROMD0 D3 SMREQTag 块地址 字地址2 位9 位7 位Tag 块地址 字地址2 位7 位7 位Tag2 位Tag 字地址2 位16 位- 3 -(5)32 位字 = 4 字节直接映射四路组相联全相联4-29 假设 CPU 执行某段程序时共访问 Cache 命中 4800 次,访问主存 200 次,已知 Cache 的存取周期是 3
7、0ns,主存的存取周期是 150ns,求 Cache 的命中率以及 Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少?Cache 的命中率 H= 4800 /(4800+200)= 4800 / 5000 = 0.96TC =30 nS TM = 150 nS TA = HTC +(1H)T M = 0.9630+(10.96)150 = 34.8 nS或者TA = HTC +(1H)(T M + TC)= 0.9630+0.04(150+30) = 36 nSCache-主存层次的效率 e =(访问 Cache 的时间 TC /平均访问时间 TA)100%=(30 / 3
8、6)100% = 83.33%或者 e =(30 / 34.8)100% = 86.2%采用 Cache 速度提高倍数 = T M / TA = 150 / 36 = 4.167或者 = T M / TA = 150 / 34.8 = 4.314-30一个组相连映射的 CACHE 由 64 块组成,每组内包含 4 块。主存包含 4096 块,每块由 128 字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。Cache 的组数 = 64 / 4 = 16主存地址的位数 = 12 位块地址+ 7 位字地址 = 19 位Cache 地址的位数 = 4 位组地址+ 7 位
9、字地址 = 11 位4-32设某计算机的主存容量为 4MB,Cache 容量为 16KB,每个字块有 8 个字,每个字有 32 位。设计一个四路组相联映象的 Cache 组织。(1)画出主存地址字段中各段的位数。(2)设 Cache 起始为空,CPU 依次从主存单元 0,1,89 单元读出 90个字(主存一次读出 1 个字) ,并重复按此次序读 8 次,问命中率为多少?(3)若 Cache 速度是主存的 6 倍,问采用 Cache 与无 Cache 比较速度提高多少倍?解:Tag 块地址 字地址2 位9 位7 位字节地址2 位Tag 块地址 字地址2 位7 位7 位Tag2 位字节地址2 位T
10、ag 字地址2 位16 位字节地址2 位- 4 -(1)题目没有说明主存是按字节编址还是按字编址。如果主存按字编址,容量 4MB,有 1M 字,每个可寻址单元的容量为 1 个 32位字。1M=2 20, 主存地址为 20 位。如果主存按字节编址,容量 4MB,每个可寻址单元的容量为 1 个字节。4M=2 22, 主存地址为 22 位。 (下面假设主存按字节编址)Cache 容量 16KB,每个字是 32bit = 4B, 需 2 位字节地址。Cache 的总字数 =16KB/4B = 4K 字 每行 8 个字, 行内的字地址 3 位Cache 的行数 = 41024/8 = 512 行 (四路
11、组相联) Cache 的组数= 512/4 = 128 组 组地址 7 位地址结构:(2) 分析 Cache-主存映象关系:主存的第 i 块映象到 Cache 的第 i 组(每组 4 行) 。主存的 089 单元在 011 块中。程序运行时,读 0 单元不命中,将第 0 块(8 个字)装入 Cache 的 0 组。接下去读 17 单元都命中。读 8 单元不命中,将第 1 块(8 个字)装入 Cache的 1 组。接下去读 915 单元都命中。读每行的第一个字都不命中。这样,一直到读 89 单元,总共有 12 次不命中。由于 Cache 有 128 组,所以,Cache 不满,在这个过程中不发生
12、替换。装入 Cache 的 90 个字在以后的重复访问中全部命中。命中率 H = 命中次数 / 访存的总次数H =(890-12) /(890)= 708 / 720 = 0.9833TA=HTC +(1H)T M TA / TM = HTC / TM +( 1H)=0.9833 (1/6)+0.0167 = 0.180583采用 Cache 速度提高倍数 = T M / TA = 1 / 0. 180583 = 5.5376 倍4-38 磁盘组有 6 片磁盘,最外两侧盘面可以记录,存储区域内径 22cm,外径33cm,道密度为 40 道/cm,内层密度为 400 位/cm,转速 3600 转
13、/分。(1)共有多少存储面可用?(2)共有多少柱面?(3)盘组总存储容量是多少?(4)数据传输率是多少?解: 每片有 2 个记录面,且最外两侧盘面可以记录可用存储面数 = 26 = 12 柱面数=(3322)2)40=220 每道存储容量= 22400 = 27646 bit = 3455 B 盘组总存储容量=每道存储容量柱面数存储面数= 220123455 B =9121200 B= 8907.422 KB = 8.7 MBTag 组号 字 字节7 位9 位 3 位 2 位- 5 - 数据传输率= 276463600 / 60 = 1658760 bps = 1.65910 6 B/S4-3
14、9 某磁盘存储器转速为 3000 转/分,共有 4 个记录盘面,每毫米 5 道,每道记录信息 12 288 字节,最小磁道直径为 230mm,共有 275 道,求:(1)磁盘存储器的存储容量;(2)最高位密度(最小磁道的位密度)和最低位密度;(3)磁盘数据传输率;(4)平均等待时间设磁盘存储器转速为 3000 转/分,共有 4 个记录面,每毫米 5 道,每道记录信息 12288 字节,最小磁道直径为 230mm,共有 275 道, 磁盘存储器的存储容量 最高位密度和最低位密度 磁盘数据传输率 平均等待时间解: 如果该磁盘存储器的 4 个盘面都是用户可用的,则磁盘存储器的存储容量 = 存储面数柱
15、面数每道存储容量= 427512288 B = 13516800 B = 13200 KB = 12.89 MB如果该磁盘存储器的 4 个盘面中有 1 个是用户不可用(伺服)的,则磁盘存储器的存储容量 = 327512288 B = 10137600 B = 9900 KB 最高位密度是最内层磁道的位密度最高位密度 = 磁道容量 / 最内层磁道的周长 = 12288 B/(230mm)= 12288 B /(2303.1416)= 12288 B / 722.568= 17 B/ mm =136 bpm最低位密度是最外层磁道的位密度记录区的外直径=最小磁道直径+ 2磁道数/道密度= 230 +
16、2275 / 5 = 340 mm最低位密度 = 磁道容量 / 最外层磁道的周长 = 12288 B /(340mm)= 12288 / (3403.1416)= 12288 B / 1068.144= 11.5 B/ mm = 92 bpm 磁盘的数据传输率 = 12288 B3000 / 60 = 614400 B/S = 4915200 bps 平均等待时间是磁盘旋转半圈的时间平均等待时间 =(60 / 每分钟转速)1/2 =(60 / 3000)1/2 = 0.001 S = 1 ms5.1 I/O 有哪些编址方式?各有何特点?解:常用的 I/O 编址方式有两种: I/O 与内存统一编
17、址和 I/O 独立编址;特点: I/O 与内存统一编址方式的 I/O 地址采用与主存单元地址完全一样的格式,I/O 设备和主存占用同一个地址空间,CPU 可像访问主存一样访问I/O 设备,不需要安排专门的 I/O 指令。I/O 独立编址方式时机器为 I/O 设备专门安排一套完全不同于主存地址格式的地址编码,此时 I/O 地址与主存地址是两个独立的空间,CPU 需要通过专门的 I/O 指令来访问 I/O 地址空间。5.13 说明中断向量地址和入口地址的区别和联系。解: 中断向量地址和入口地址的区别:向量地址是硬件电路(向量编码器)产生的中断源的内存中断向量表- 6 -表项地址编号,中断入口地址是
18、中断服务程序首址。中断向量地址和入口地址的联系:中断向量地址可理解为中断服务程序入口地址指示器(入口地址的地址) ,通过它访存可获得中断服务程序入口地址。5.15 什么是中断允许触发器?它有何作用?解:中断允许触发器是 CPU 中断系统中的一个部件,他起着开关中断的作用(即中断总开关,则中断屏蔽触发器可视为中断的分开关) 。5.16 在什么条件和什么时间,CPU 可以响应 I/O 的中断请求?解:CPU 响应 I/O 中断请求的条件和时间是:当中断允许状态为1(EINT=1) ,且至少有一个中断请求被查到,则在一条指令执行完时,响应中断。6.1. 最少用几位二进制数即可表示任一五位长的十进制正
19、整数?解:五位长的十进制正整数中,最大的数 99999 满足条件:216(=65536)0,应 Ey 向 Ex 对齐,则:Ey补+1=00,100+00,001=00,101=Ex补y补=0,101;1.111 000(1)2)尾数运算:Mx补+My补= 11.011011+ 11.111000(1)= 11.010011(1)Mx补+-My补= 11.011011+ 00.000111(1)= 11.100010(1)2) 结果规格化:x+y补=00,101;11.010 011(1) ,已是规格化数x-y补=00,101;11.100 010(1)=00,100 ;11.000 101 (
20、尾数左规 1 次,阶码减 1)4)舍入:x+y补=00,101;11.010 011(舍)x-y补 不变5)溢出:无 则:x+y=2 101(-0.101 101)x-y =2100(-0.111 011)7-6 某指令系统字长为 16 位,地址码取 4 位,试提出一种方案,使该指令系统- 11 -有 8 条三地址指令、16 条二地址指令、100 条一地址指令。解:8 条三地址指令 操作码 0000011116 条二地址指令 操作码 1000 00001000 1111100 条一地址指令 操作码 1100000000001100 0110 00117-7 设指令字长为 16 位,采用扩展操作
21、码技术,每个操作数的地址为 6 位。如果定义了 13 条二地址指令,试问还可安排多少条一地址指令?解 二地址指令的操作码位数=1626 = 4 位1613 = 3 还可以有 3 个码字作为扩展标志一地址指令最多可以有 32 6 = 192 条7-8 某机指令字长 16 位,每个操作数的地址码为 6 位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有 M 种,一地址指令有 N 种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?解:(1)如果操作码长度固定设操作码长度= K 位则二地址指令最多可以有 2KMN 条(2)如果操作码长度可变采用操作码扩
22、展技术基本操作码位数=1626 = 4 位当留下一个码字作为扩展标志时,二地址指令数为最多二地址指令最多可以有 241 = 15 条7.10. 试比较基址寻址和变址寻址。解:比较如下:1)都可有效地扩大指令寻址范围。2)基址寻址时,基准地址由基址寄存器给出,地址的改变反映在位移量 A的取值上;变址寻址时,基准地址由 A 给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器给出。3)基址寄存器内容通常由系统程序设定,变址寄存器内容通常由用户设定。4)基址寻址适用于程序的动态重定位,变址寻址适用于数组或字符串处理,适用场合不同。7-18 某计算机能完成 78 种操作,指令字长为 16 位。
23、一地址格式的指令地址码可取几位?要想使指令的寻址范围扩大到 216,可采用哪些方法?解:78 种操作就需要有 78 条指令。固定长度操作码,操作码位数= 7 位 (2 7 = 128 78)一地址格式指令的地址码的位数= 167 = 9 位 (寻址范围为 29)要想使指令的寻址范围扩大到 216,可采用:寄存器间接寻址,基址寻址,相对寻址,变址寻址,等方法。如果存储字长=16 位,则用间接寻址方式也可以使指令的寻址范围扩大到216。9.3. 什么是指令周期、机器周期和时钟周期?三者有何关系?答:CPU 每取出并执行一条指令所需的全部时间叫指令周期;机器周期是在同步控制的机器中,执行指令周期中一
24、步相对完整的操作(指令步)所需时间,通常安排机器周期长度等于主存周期;时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序- 12 -单位,对应完成一个微操作所需时间,通常时钟周期等于计算机主频的倒数。9-5 设机器 A 的 CPU 主频为 8MHz,机器周期含 4 个时钟周期,且该机的平均指令执行速度是 0.4 MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含几个机器周期?如果机器 B 的 CPU 主频为 12MHz,且机器周期也含 4 个时钟周期,试问 B 机的平均指令执行速度是多少 MIPS?解:(1) 机器 A 的主频= 8MHz,时钟周期 TCA =1/8MH
25、z =0.125106 S = 0.125s机器周期 TMA = 40.125s= 0.5s平均指令周期 TIA = 1/0.4 MIPS = 2.5s平均每个指令周期中含 5 个机器周期。(2) 机器 B 的主频= 12MHz,时钟周期 TCA =1/12MHz =0.083106 S = 0.083s机器周期 TMB = 40.083s= 0.333s指令周期 TIB =50.333s = 1.666s平均指令执行速度 = 1/ 1.666s= 0.6 MIPS其实,如果其它条件都一样,机器 B 的主频是机器 A 的主频的 1.5 倍,其平均指令执行速度也应该是机器 A 的 1.5 倍,即
26、 0.6 MIPS。9-6 设某计算机的 CPU 主频为 8MHz,每个机器周期平均含 2 个时钟周期,每条指令平均有 4 个机器周期,试问该计算机的平均指令执行速度是多少 MIPS?若CPU 的主频不变,但每个机器周期平均含 4 个时钟周期,每条指令平均有 4 个机器周期,则该机的平均指令执行速度又是多少 MIPS?解:(1) 机器的主频 = 8MHz,时钟周期 TC =1/8MHz =0.125106 S = 0.125s机器周期 TM1 = 20.125s= 0.25s指令周期 TI = 40.25s = 1.0 s平均指令执行速度=1 MIPS(2) 机器周期 TM2 = 40.125
27、s= 0.5s指令周期 TI = 40.5s = 2.0 s平均指令执行速度=0.5 MIPS9-7 某 CPU 的主频为 10MHz,若已知每个机器周期平均含 4 个时钟周期,该机的平均指令执行速度为 1 MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为 0.4s 的 CPU 芯片,则计算机的平均指令执行速度是多少 MIPS?若要得到平均每秒 80 万次的指令执行速度,则应采用主频为多少的 CPU 芯片?解:(1) 主频= 10MHz,时钟周期 TC =1/10MHz =0.1106 S = 0.1s机器周期 TM = 40.1s= 0.4s平均指令周期 TI
28、= 1/1 MIPS = 1s每个指令周期含 2.5 个机器周期。(2) 若改用时钟周期为 0.4s 的 CPU 芯片,则机器周期 TM = 40.4s= 1.6s平均指令周期 TI =2.51.6s = 4s平均指令执行速度= 1/4s =0.25 MIPS(3) 要得到平均每秒 80 万次的指令执行速度,则平均指令周期 TI = 1/ 80 万 秒= 0.12510 -5秒- 13 -时钟周期= 平均指令周期1/10 = 0.12510 -6秒=0.125s主频= 8MHz9-11 设 CPU 内部结构如图 9.4 所示,此外还设有 B、C、D、E、H、L 六个寄存器,它们各自的输入和输出
29、端都与内部总线相通,并分别受控制信号控制(如Bi 为寄存器 B 的输入控制;Bo 为 B 的输出控制) 。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。(1)ADD B,C (B)+(C) B)(2)SUB A,H (AC)-(H) AC)(1) 加法指令 ADD B, C两个操作数都是寄存器寻址。 该指令实现如下操作: (B)+(C) B微操作和控制信号如下: 取指周期(PC)MARAB; (PC out,MAR in有效)1R;M(MAR)MDR;(MDR)IR; (MDR out,IR in有效)(PC)+1PC。 执行周期(C)Y; (C out,Y in有效)(B)+
30、YZ; (B out,ALU in,+,Z in有效)ZB。 (Z out,B in有效)(2) 减法指令 SUB A,H两个操作数都是寄存器寻址。 该指令实现如下操作: (AC) - (H) AC微操作和控制信号如下: 取指周期同前 执行周期(H)Y; (H out,Y in有效)(AC)- YZ; (AC out,ALU in,-,Z in有效)ZAC。 (Z out,AC in有效)9-12 cpu 结构同上题,写出完成下列指令所需的全部微操作和控制信号(包括取指令) 。 (1) 寄存器间接寻址的无条件转移指令 JMP B该指令实现如下操作: (B) PC微操作和控制信号如下: 取指周期
31、同前 执行周期(B)MARAB; (B out,MAR in有效)1R;M(MAR)MDR;(MDR)PC。 (MDR out,PC in有效)(2) 间接寻址的存数指令 STA X该指令实现如下操作: (A)(X) 微操作和控制信号如下: 取指周期 同前 - 14 - 间址周期Ad(IR)MARAB; (IR out,MAR in有效)1R;M(MAR)MDR;(MDR)Ad(IR) 。 (MDR out,MAR in有效) 执行周期 Ad(IR)MAR; (IR out,MAR in有效)(AC) MDRDB; (AC out,MDR in有效)1W;9-13 设 CPU 内部结构如图 9
32、.4 所示,此外还设有 R1R4 四个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如 R2i 为寄存器R2 的输入控制;R2o 为 R2 的输出控制) 。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。(1)ADD R2,R4 ; (R2)+(R4) R2,寄存器间接寻址 )(2)SUB R1,mem ; (R1)-(mem) R1,存储器间接寻址 )(1) 寄存器间接寻址的加法指令 ADD R2,R4一个操作数是寄存器寻址,另一个操作数是寄存器间接寻址。该指令实现如下操作: (R2)+(R4) )R2微操作和控制信号如下: 取指周期 同前 取数周期(R
33、4)MARAB; (R4 out,MAR in有效)1R;M(MAR)MDR;(MDR)Y。 (MDR out,Y in有效) 执行周期(R2)+YZ; (R2 out,ALU in,+,Z in有效)ZR2。 (Z out,R2 in有效)(2) 减法指令 SUB R1,mem一个操作数是寄存器寻址,另一个操作数是存储器间接寻址。该指令实现如下操作: (R1)-(mem) )R1微操作和控制信号如下: 取指周期 同前 间址周期Ad(IR)MARAB; (IR out,MAR in有效)1R;M(MAR)MDR;(MDR)Ad(IR) 。 (MDR out,MAR in有效) 取数周期Ad(I
34、R)MARAB; (IR out,MAR in有效)1R;M(MAR)MDR;(MDR)Y。 (MDR out,Y in有效) 执行周期(R1)-YZ; (R1 out,ALU in,-,Z in有效)- 15 -ZR1。 (Z out,R1 in有效)10.15. 设控制存储器的容量为 51248 位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有 4 个(采用直接控制) ,微指令格式如下:解:因为控制存储器共有 512*48=29*48所以,下址字段应有 9 位,微指令字长 48 位又因为控制微程序转移的条件有 4 个,4+1=2 3所以判断测试字段占 3 位因此控制字段位数为:48-9-3=36微指令格式为: 48 13 12 10 9 1控制字段 测试字段 下址字段