搭配食用 计算机组成原理一轮-CSDN博客
目录
IEEE 754
一、计算机系统概述
选择
计算机系统组成
完整的计算机系统应包括( )。
A. 运算器、存储器、控制器 B. 外部设备和主机 C. 主机和应用程序 D. 配套的硬件设备和软件系统
D
冯诺依曼机
冯.诺依曼机的基本工作方式是( )。
A. 控制流驱动方式 B. 多指令多数据流方式 C.微程序控制方式 D. 数据流驱动方式
A
下列( )是冯.诺依曼机工作方式的基本特点。
A. 多指令流单数据流 B. 按地址访问并顺序执行指令 C. 堆栈操作 D. 存储器按内容选择地址
B
下列( )是冯.诺依曼机工作方式的基本特点。
A. 多指令流单数据流 B. 按地址访问并顺序执行指令 C. 堆栈操作 D. 存储器按内容选择地址
B
下列关于冯·诺依曼结构计算机基本思想的叙述中,错误的是( )。
A. 程序的功能都通过中央处理器执行指令实现 B. 指令和数据都用二进制数表示,形式上无差别 C. 指令按地址访问,数据都在指令中直接给出 D. 程序执行前,指令和数据需预先存放在存储器中
C
软件和硬件的功能
以下说法错误的是( )。
A. 硬盘是外部设备 B. 硬件实现的功能一般比软件实现具有更高的执行速度 C. 软件的功能与硬件的功能在逻辑上是等效的 D. 软件的功能不能用硬件取代
D
CPU等概念
关于 CPU 主频、CPI、MIPS、MFLOPS,说法正确的是( )。
A. CPU 主频是指 CPU 系统执行指令的频率,CPI 是执行一条指令平均使用的频率
B. CPI 是执行一条指令平均使用 CPU 时钟的个数,MIPS 描述一条 CPU 指令平均使用 CPU 时 钟数
C. MIPS 是描述 CPU 执行指令的频率,MFLOPS 是计算机系统的浮点数指令
D. CPU 主频指 CPU 使用的时钟脉冲频率,CPI 是执行一条指令平均使用 CPU 时钟数
D
计算机系统的工作原理
CPU可以判断在取指阶段访问存储器取出的二进制代码是指令;
在执行阶段取出的二进制代码是数据。
机器字长
运行速度
90 = 1.5t
t = 60s
假设计算机 M1 和 M2 具有相同的指令集体系结构(ISA),主频分 别为 1.5GHz 和 1.2GHz。在 M1 和 M2 上运行某基准程序 P,平均 CPI 分别为 2 和 1,则程序 P 在 M1 和 M2 上运行时间的比值是( )。 A. 0.4 B. 0.625 C. 1.6 D.2.5
C
执行时间 = (指令数 × CPI) / 时钟频率.
由于 M1 和 M2 具有相同的指令系结构, 则程序 P 在 M1 和 M2 的指令数相同.
于是比值为 CPI1 / 时钟频率1 : CPI2 / 时钟频率2
即 2/1.5 : 1/1.2 = 1.6
求MIPS
K为10的3次方、M为10的6次方、G为10的9次方
编译程序
将高级语言源程序转换为机器级目标代码文件的程序是( )。
A. 汇编语言 B. 链接程序 C. 编译程序 D. 解释程序
C
机器语言程序
计算机硬件能够直接执行的是( )。 I. 机器语言程序 II.汇编语言程序 III.硬件描述语言程序
A. 仅 I B. 仅 I、II C. 仅 I、III D.I、II、III
A
平均CPI和CPU执行时间
某计算机主频为 1GHz,程序 P 运行过程中,共执行了 10000 条指令, 其中,80%的指令执行平均需 1 个时钟周期,20%的指令执行平均需 10 个时钟周期。程序 P 的平均 CPI 和 CPU 执行时间分别是( )。
A.2.8,28µs B.28,28µs C.2.8,28ms D.28,28ms
C
CPI=0.8*1+0.2*10=2.8
CPU执行时间=指令数*CPI/主频=10000*2.8/=2.8*=28ms
综合应用
存储程序原理
什么是存储程序原理?按此原理,计算机应具有哪几大功能?
存储程序是指将指令以代码的形式事先输入计算机主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
五大功能:数据传送,数据存储,数据处理,操作控制,操作判断。
计算机 A 和 B 采用不同主频的 CPU 芯片,片内逻辑完全相同。A 的主频为 8MHz,B 的主频 为 12MHz,回答下列问题。
(1)A 计算机的 CPU 时钟周期为多少?
(2)若 A 计算机的平均指令执行速度为 0.4MIPS,那么 A 计算机的平均指令周期为多少?A 计算机的 CPI 为多少?
(3)B 计算机的平均指令执行速度为多少?
(1)A机CPU的主频周期 =1/主频= 1/8MHz=0.125us
(2) A机的平均指令周期 = 1/0.4MIPS=2.5us
A机的一个指令周期包含2.5/0.125=20个主频周期
(3)
B 机的平均指令执行速度 = 3/5=0.6MIPS
二、数据的表示和运算
选择
符号数和无符号数
先将有符号数写成二进制;
再把二进制写成无符号数。
考虑以下 C 语言代码: unsigned short usi=65535; short si=usi; 执行上述程序段后,si 的值是( )。 A.-1 B.-32767 C.-32768 D.-65535
unsigned short 65535的源码为:1111 1111 1111 1111 ,在C语言中正数的源码即是补码;
short 65535表示上述补码中第一个1为符号位(负数),剩下的15个1按位取反+1得源码:
1000 0000 0000 0001 即表示为:-1
故综上所述,答案为A
无符号数范围: --
有符号数范围:0 --
无符号数的补码是有符号数
逻辑、算术右移
逻辑右移:直接右移,补0。
算术右移:如果最高位为1则补1;如果最高位为0则补0。
机器数
乘2相当于左移;除2相当于右移。
2*x进行逻辑左移:1110 1000
y/2进行逻辑右移:1101 1000
相加得1 1100 0000;舍弃掉最高位得答案A
浮点数加减
1、对阶操作是将两个进行运算的 浮点数 的阶码对齐的操作。你能进行对阶操作说明存的两个浮点数是合理的并且两个浮点数的阶码一般相差不大。(应该吧)
2、右规和尾数舍入会使得阶码变大,因此会上溢。
3、左规会下溢。
4、也许两个尾数溢出的数相加进位并舍入后就不溢出(也许)。
IEEE 754
short型在与int型进行算术运算
一个 C 语言程序在一台 32 位机器上运行.程序中定义了三个变量 x、y、z,其 中 x 和 z 为 int 型,y 为 short 型,当 x=127、y=-9 时,执行赋值语句 z=x+y 后,x、y、z 的值分别 是( )
. A.x=0000007FH, y=FFF9H, z=00000076H B.x=0000007FH, y=FFF9H, z=FFFF0076H C.x=0000007FH, y=FFF7H, z=CTFF0076H D.x=0000007FH, y=FFF7H, z=00000076H
D
32位机器:int 32位,short 16位。
x = 127,正数,原码:0111 1111,补码:0111 1111,扩展到32位高位补0,结果为0000007FH;
Y = -9,负数,原码:1000 1001,补码:1111 0111,扩展到16位高位补1,结果为FFF7H;
z = x + y = 118,原码:0111 0110,补码:0111 0110,扩展到32位高位补0,结果为00000076H。(补码相加)
补码的范围
去掉一位符号位
补码乘法
假定有 4 个整数用 8 位补码分别表示 rl=FEH、r2=F2H、r3=90H、r4=F8H,若将 运算结果存放在一个 8 位寄存器中,则下列运算会发生溢出的是( )。
A.rl × r2 B.r2 × r3 C.rl × r4 D.r2 × r4
补码最高位为符号位。
R1: -2
R2: -14
R3:-112
R4:-8
整数用8位补码表示-128 ~ 127
R1*R2 = 28 < 127
R2*R3 > 127 溢出
R1*R4 =16 < 127
R2*R4 = 112 < 127
选B
补码特点
6.计算机内部的定点数大多用补码表示,以下是一些关于补码特点的叙述: Ⅰ. 零的表示是唯一的 Ⅱ. 符号位可以和数值部分一起参加运算 Ⅲ. 和其真值的对应关系简单、直观 IV. 减法可用加法来实现 在以上叙述中,( )是补码表示的特点。 A.Ⅰ和Ⅱ B.Ⅰ和Ⅲ C.Ⅰ和Ⅱ和Ⅲ D.Ⅰ和Ⅱ和 IV
D
补码拓展
16 位补码 0x8FA0 扩展为 32 位应该是( )。
A.0x0000 8FA0 B.OxFFFF 8FA0 C.OxFFFF FFA0 D.0x8000 8FA0
16进制数8FA0,补码展开
16位补码:1000 1111 1010 0000
16位原码:1111 0000 0110 0000
首位1为符号位,原码数值位111 0000 0110 0000
根据负数补码规则,其原码(真值)取反加一可得补码、而扩展不能改变其真值所以应该前面(高位)补1,即
32位补码:1111 1111 1111 1111 1000 1111 1010 0000
32位原码:1000 0000 0000 0000 0111 0000 0110 0000
D
真值0表示形式唯一
对真值 0 表示形式唯一的机器数是( )。 A.原码 B.补码和移码 C.反码 D.以上都不对
B
综合应用
三、总线系统
选择
系统总线的数据线
在系统总线的数据线上,不可能传输的是( )。
A.指令 B. 操作数 C.握手(应答)信号 D. 中断类型信号
题目说的数据线不是指数据总线而是指数据地址控制三根线。
总线分为片内总线,系统总线,通信总线。
系统总线内有数据总线,地址总线,控制总线。
握手信号在通信总线上传输。中断类型信号在控制总线上传输。操作数在数据总线。指令在数据线上传输。
C
总线带宽
假设某系统总线在一个总线周期中并行传输 4 字节信息,一个 总线周期占用 2 个时钟周期,总线时钟频率为 10MHz,则总线带宽是( )。
A. 10MB/s B. 20MB/s C. 40MB/s D. 80MB/s
B
在一个 16 位的总线系统中,若时钟频率为 100MHz,总线周期为 5 个时钟周期传输一个 字,则总线带宽是( )。 A. 4MB/s B. 40MB/S C. 16MB/s D. 64MB/s
B
某同步总线采用数据线和地址线复用方式,其中地址/数据线有 32 根, 总线时钟频率为 66MHz,每个时钟周期传送两次数据(上升沿和下降沿各传送一次数据), 该总线的最大数据传输率(总线带宽)是()
A.132MB/s B.264MB/s C.528MB/s D.1056MB/s
C
假定一台计算机采用 3 通道存储器总线, 配套的内存条型号为 DDR3-1333, 即内存条所接插的存储器总线的工作频率为 1333MHz, 总线宽度为 64 位,则存 储器总线的总带宽大约是( ) A. 10.66GB/s B. 32GB/s C. 64GB/s D. 96GB/s
B
数据传输率
某同步总线的时钟频率为 100MHz,宽度为 32 位,地址/数据线复 用,每传输一个地址或数据 占用一个时钟周期。若该总线支持突发(猝发)传输方式,则 一次“主存写”总线事务传输 128 位数据所需要的时间至少是( )。
A. 20ns B. 40ns C. 50ns D. 80ns
频率为100MHz,则周期为1/10^8s,1ns=1/10^9s,则周期为10ns。已知传输数据或地址都占周期,则128位数据需要分4次传输,则传输数据占4周期。执行写任务需要知道写入地址,则传输地址占1周期。综上,总共占5周期。5*10ns=50ns C
在 32 位总线系统中,若时钟频率为 500MHz,传送一个 32 位字需要 5 个时钟周期,则 该总线的数据传输率是( )。 A. 200MB/S B. 400MB/S C. 600MB/s D. 800MB/S
数据传输率=时钟频率*位数/8/时钟周期数
B
传输一张分辨率为 640×480 像素、65536 色的照片(采用无压缩方式),设有效数据传 输率为 56kbit/s,大约需要的时间是( )。 A. 34.82s B. 43.86s C. 85.71s D. 87.77s
640*480*16/(56*1000) = 87.77s;D
总线上挂载的部件
挂接在总线上的多个部件( )。
A. 只能分时向总线发送数据,并只能分时从总线接收数据
B. 只能分时向总线发送数据,但可同时从总线接收数据
C. 可同时向总线发送数据,并同时从总线接收数据
D. 可同时向总线发送数据,但只能分时从总钱接收数据
B
主从设备
在总线上,同一时刻( )。 A. 只能有一个主设备控制总线传输操作 B. 只能有一个从设备控制总线传输操作 C. 只能有一个主设备和一个从设备控制总线传输操作 D. 可以有多个主设备控制总线传输操作
A
系统总线的作用
系统总线是用来连接( )。
A. 寄存器和运算器部件 B. 运算器和控制器部件 C. CPU、主存和外设部件 D. 接口和外部设备
C
间址寻址
间址寻址第一次访问内存所得到信息经系统总线的( )传送到 CPU。
A.数据总线 B.地址总线 C. 控制总线 D. 控制器
由于是访问存储器得到的内容.所以是存储单元存放的数据,应该由数据总线传送给CPU。CPU经寻址方式判断后,再通过地址总线送给存储器,为读取操作数做准备。
相当于去存储器的是地址总线回来的是数据总线。
A
地址总线的功能
系统总线中地址线的功能是( )。 A. 用于选择主存单元地址 B. 用于选择进行信息传输的设备 C. 用于选择外存地址 D. 用于指定主存和 I/O 设备接口电路的地址
D
总线复用
不同信号在同一条信号线上分时传输的方式称为( )。
A.总线复用方式 B.并串行传输方式 C.并行传输方式 D.串行传输方式
A
计数器定时查询
在计数器定时查询方式下,若每次计数从上一次计数的终止点开始,则( )。
A.设备号小的优先级高 B. 每个设备使用总线的机会相等 C. 设备号大的优先级高 D. 无法确定设备的优先级
A
请求方式
为了对 n 个设备使用总线的请求进行仲裁,在独立请求方式中需要使用的控制线数量约 为( )。
A. n B. 3 C. [log2n]+2 D. 2n+1
D
对于n个设备,链式查询需要3条控制线,计数器定时查询需要C,而独立请求需要D条控制线(n条总线请求,n条总线允许)。
总线事务方式
一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址 开始的若干连续单元读出或写入多个数据。这种总线事务方式称为()。
A.并行传输 B.串行传输 C.突发传输 D.同步传输
C
猝发(突发)传输是在一个总线周期中,可以传输多个存储地址连续的数据,即一次传输一个地址和一批地址连续的数据。
并行传输是在传输中有多个数据位同时在设备之间进行的传输。
串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式。
同步传输是指传输过程由统一的时钟控制。
总线定时(通信方式)
下列有关总线定时的叙述中,错误的是()。
A.异步通信方式中,全互锁协议最慢。
B.异步通信方式中,非互锁协议的可靠性最差。
C.同步通信方式中,同步时钟信号可由各设备提供
D.半同步通信方式中,握手信号的采样由同步时钟控制。
C
同步通信方式中,同步时钟信号由系统统一提供。
总线设计
下列关于总线设计的叙述中,错误的是()。
A.并行总线传输比串行总线传输速度快。 B.采用信号线复用技术可减少信号线数量 C.采用突发传输方式可提高总线数据传输率 D.采用分离事务通信方式可提高总线利用率。
并行总线传输通常比串行总线传输速度快,但这不是绝对的。在实际时钟频率比较低的情况下,并行总线因为可以同时传输若干比特,速率确实比串行总线快。但是,随着技术的发展,时钟频率越来越高,并行导线之间的相互干扰越来越严重,当时钟频率提高到一定程度时,传输的数据已经无法恢复。而串行总线因为导线少,线间干扰容易控制,反而可以通过不断提高时钟频率来提高传输速率,A错误。
下列关于总线的叙述中,错误的是( )。
A.总线是在两个或多个部件之间进行数据交换的传输介质
B.同步总线由时钟信号定时,时钟频率不一定等于工作频率
C.异步总线由握手信号定时,一次握手过程完成一位数据交换
D.突发(Barst)传送总线事务可以在总线上连续传送多个数据
异步总线由数据传输信号的状态来控制数据传输的开始和结束,数据传输信号的状态变化不需要和时钟信号相同步。C
多总线结构
下列关于多总线结构的叙述中,错误的是()。
A.靠近 CPU 的总线速度较快 B.存储器总线可支持突发传送方式 C.总线之间须通过桥接器相连 D.PC I-Express*16 采用并行传输方式。
PCI-Express 采用串行数据传输,PCI采用并行数据传输;D
同步总线数据传输率
下列选项中,可提高同步总线数据传输率的是( ) 。 Ⅰ 增加总线带宽 II 提高总线工作频率 III 支持突发传输 Ⅳ 采用地址/数据线复用
A. 仅 I、 II B. 仅 I、 II、III C. 仅 III、 Ⅳ D. I、 II 、 III、 Ⅳ
B
地址数据线复用并非提高而是降低,毕竟同一时间你还得传地址过去,等价的数据传输效率就低了。
四、存储器
选择
磁盘
磁盘属于( )类型的存储器
A.随机存取存储器(RAM) B.只读存储器(ROM)C.顺序存取存储器(SAM) D.直接存取存储器
D
存取周期
存储器的存取周期等于( )。 A.存储器的读出时间 B.存储器的写入时间 C.存储器进行连续读或写操作所允许的最短时间间隔 D.存储器进行一次读或写操作所需的平均时间
C
半字寻址
设机器字长为 32 位,一个容量为 16MB 的存储器,CPU 按半字寻址,其可寻址的单元数是( )。 A.2 24 B.2 23 C.2 22 D.2 21
16MB=,按半字寻址则为;B
RAM和ROM
ROM不可用作Cache。
RAM需要刷新。
某计算机系统,其操作系统保存在硬盘上,其内存储器应该采用( )。
A.RAM B.ROM C.RAM 和 ROM D.都不对
C
若 RAM 中每个存储单元为 16 位,则下面所述正确的是( )。
A.地址线也是 16 位 B.地址线与 16 无关 C.地址线与 16 有关 D.地址线不得少于 16 位
B
DRAM和SRAM
下面是有关 DRAM 和 SRAM 存储器芯片的叙述: I. DRAM 芯片的集成高 II. DRAM 芯片的成本比 SRAM 高 III.DRAM 芯片的速度比 SRAM 快 IV.DRAM 芯片工作时需要刷新,SRAM 芯片工作时不需要刷新
通常情况下,错误的是( )。 A.I 和 II B.II 和 III C.III 和 IV D.I 和 IV
B
MAR
某计算机存储器按字节编址,主存地址空间大小为 64MB,现用 4Mx8 位的 RAM 芯片 组成 32MB 的主存储器,则存储器地址寄存器 MAR 的位数至少是()。
A.22 位 B.23 位 C.25 位 D.26 位
D;MAR是主存地址寄存器,应能表示整个主存的地址空间,64mb=2∧26,因此是26位
辅存
在下列几种存储器中,CPU 不能直接访问的是( )。 A.硬盘 B.内存 C. Cache D.寄存器
A,CPU不能直接访问辅存
随机存取方式
ROM和RAM属于随机存取。
CDROM属于光盘,属于顺序存取。
数据传输率
若某存储器存储周期为 250ns,每次读出 16 位,则该存储器的数据传输率是( )。
A.4×l0 6B/s B.4MB/s C.8×10 6B/s D.8×2 20B/s
分级方式
计算机的存储器采用分级方式是为了( )。
A.方便编程 B.解决容量、速度、价格三者之间的矛盾 C.保存大量数据方便 D.操作方便
B
4体交叉编址寄存器
某计算机使用 4 体交叉编址存储器,假定在存储器总线上出现的主存地址(十进 制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是( )。 A. 8004 和 8008 B. 8002 和 8007 C. 8001 和 8008 D. 8000 和 8004
D;两次的访问出现在同一模块内且在相邻的访问请求中,满足发生冲突的条件。
某计算机主存按字节编址,由 4 个 64M*8 位的 DRAM 芯片采用交叉编制方式构成, 并与宽度为 32 位的存储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH,则读取 x 的存储周期数是( )。 A. 1 B. 2 C. 3 D. 4
C
易失性存储器
下列几种存储器中,( )是易失性存储器。
A.Cache B.EPROM C. Flash Memory D.CD-ROM
A
周期性刷新
闪存
芯片最小地址
假定用若干个 2K×4 位的芯片组成一个 8K×8 位的存储器,则地址 0B1FH 所在芯片 的最小地址是( )。
A.0000H B.0600H C.0700H D.0800H
首先2Kx4位组成一个8Kx8位,很显然首先先满足位扩展,4位组成8位需要2片,故两片一组,再进行字扩展,2K组成8K需要4组,故一共需要8片。8K=2^13很显然需要13根地址线,而单个芯片2k很显然需要11根地址线,这时13-11=2根地址线作为2-4译码器的扩展地址线,故一组芯片中,选片的地址为00,01,10,11,代表4组选片的地址,而后面的11位(000 0000 000~111 1111 1111)作为片内地址。
题目中0B1FH=0000 1011 0001 1111,很显然取低11位作为片内地址,低12~13位作为片选地址,很显然 0B1FH低十三位为=000(0 1)(011 0001 1111) 很显然选片地址为01 代表第二组芯片。
第二组芯片的地址范围为(0000 1000 0000 0000~0000 1111 1111 1111)=2^11个地址 所以所在芯片的最小地址为0000 1000 0000 0000 =0800H。D
地址引脚和数据引脚
4M=2的22次方。由于DRAM的地址复用,所以地址引脚为11。
8位,所以数据引脚为8。
答案为11+8=19。
芯片设计
当地址引脚数最少:行数与列数相近。
减少刷新:行数少于列数。
某计算机主存容量为 64KB,其中 ROM 区为 4KB,其余为 RAM 区,按字节编址。先要 用 2K×8 位的 ROM 芯片和 4K×4 位的 RAM 芯片来设计该存储器,则需要上述规格的 ROM 芯片数和 RAM 芯片 数分别是( )。
A.1、15 B.2、15 C.1、30 D.2、30
D
按我的理解就是将2K*8位转换为单位为KB
将4K*4位转换为单位为KB
按字节编址;
现要用 2K × 8 位的: ROM2*2=4K 需要两个
芯片和 4K × 4 位的 RAM 芯片:4*15=60K但按字节4*2=8,所以:15*2=30
4 个 16K×8 位的存储芯片,可设计为( )容量的存储器。
A.32K×16 位 B.16K×16 位 C.32K×8 位 D.8K×16 位
A
设 CPU 地址总线有 24 根,数据总线有 32 根,用 512K×8 位的 RAM 芯片构成该机的主存储器,则该机 主存最多需要( )片这样的存储芯片。 A.256 B.512 C.64 D.128
D;
地址总线 A0(高位)--A15(低位),用 4K×4 位的存储芯片组成 16KB 存储器,则产生片选信号的译码器 的输入地址线应该是( )。 A.A2A3 B.A0A1 C.A12A13 D.A14A15
A;字扩展:16KB/4K=4,因此需要4行,需要两位;4K为12位,去掉12位,则12位的前两位为地址线。
若内存地址区间为 4000H--43FFH,每个存储单元可存储 16 位二进制数,该内存区域用 4 片存储器芯片 构成,则构成该内存所用的存储器芯片的容量是( )。
A.512×16bit B.256×8bit C.256×16bit D.1024×8bit
C
内存按字节编址,地址从 90000H 到 CFFFFH,若用存储容量为 16K×8 位芯片构成该内存,至少需要的芯 片数是( )。 A.2 B.4 C.8 D.16
地址空间共有CFFFFH-90000H +1 = 40000H,又因为是按字节编址,所以容量为40000H = 2^18。
每个存储芯片的容量为16KB = 2^14B,所以需要2^18 / 2^14 = 16片
若片选地址为 111 时,选定某一 32K×16 的存储芯片工作,则该芯片在存储器中的首地址和末地址分别 为( )。
A.00000H,01000H B.38000H,3FFFFH C.3800H,3FFFH D.0OOOH,0100H
B;32K需要15位表示;把32K当作行,16当作列。
某存储器容量为 64KB,按字节编址,地址 4000~5FFFH 为 ROM 区,其余为 RAM 区, 若采用 8K* 4 位的 SRAM 芯片进行设计,则需要该芯片的数量为( )。 A.7 B. 8 C. 14 D. 16
C;5FFF-4000+1=2000H,即ROM区容量为:213B=8KB(2000H=2*163=213),RAM区容量为56KB(64KB-8KB=56KB)。则需要8K*4位的SRAM芯片的数量为14(56KB/8K*4位=14)。
存储周期
高速缓存存储器
Cache的命中率
假设某计算机的存储系统由 Cache 和主存组成,某程序执行过程中访存 1000 次, 其中访问 Cache 缺失(未命中)50 次,则 Cache 的命中率是( )。
A.5% B.9.5% C.50% D.95%
D
二路组相联映射方式
某计算机的 Cache 共有 16 块,采用二路组相联映射方式(即每组 2 块)。每个主存 块大小为 32 字节,按字节编址,主存 129 号单元所在主存块应装入到的 Cache 组号是( )。
A.0 B.2 C.4 D.6
C;
8路组相联
有效容量为 128KB 的 Cache,每块 16 字节,采用 8 路组相联。字节地址为 1234567H 的单元调入该 Cache, 则其 Tag 应为( )。 A.1234H B.2468H C.048DH D.12345H
因为Cache容量为128KB,八路组相联,所以可以分为1024组,128KB÷(16×8)=1024,对应的组号字段10位;因为块的大小16字节,所以块内地址字段为4位;1234567H=0001001000110100010101100111,标记字段为其中高14位,00010010001101=048DH ;C
Cache
当访问 Cache 系统失效时,通常不仅主存向 CPU 传送信息,同时还需要将信息写入 Cache,在此过程中 传送和写入信息的数据宽度各为( ).
A.块、页 B.字、字 C.字、块, D.块、块
C
写操作
在写操作时,对 Cache 与主存单元同时修改的方法称做( ),若每次只暂时写入 Cache、直到替换 时才写入主存的方法称做( )。 A.全写法 B.写回法 C.写一次法 D.都不对
写直达法(全写法);写回法
直接映像方式
某 32 位计算机的 Cache 容量为 16KB,Cache 行的大小为 16B,若主存与 Cache 地址映像采用直接映像方 式,则主存地址为 0xl234E8F8 的单元装入 Cache 的地址是( )。 A.00010001001101 B.01000100011010 C.10100011111000 D.11010011101000
C
某存储系统中,主存容量是 Cache 容量的 4096 倍,Cache 被分为 64 个块,当主存地址和 Cache 地址采 用直接映像方式时,地址映射表的大小应为( )。(假设不考虑一致维护和替换算法位) A.6×4097bit B.64×12bit C.6×4096bit D.64×13bit
B
Cache被分为64个块,故地址变换表为64行,每行存储主存字块标记为12位(2^12=4096)。
有一主存一 Cache 层次的存储器,其主存容量为 1MB,Cache 容量为 16KB,每字块有 8 个字,每字 32 位, 采用直接地址映像方式,若主存地址为 35301H,且 CPU 访问 Cache 命中,则在 Cache 的第( )(十进 制表示)字块中(Cache 起始字块为第 0 字块)。
A.152 B.153 C.154 D.151
35301H,即0011 0101 0011 0000 0001;每字块有8个字,每字为32位,所以每字块的大小为32B,故块内地址需要低5位;另外,要求主存字块标记位,只需求主存包含了多少个Cache即可,1MB/16KB=64,所以需要6位来表示主存字块标记位;01 0011 000=152;A
假定主存地址为 32 位,按字节编址,主存和 Cache 之间采用直接映射方式,主存 块大小为 4 个字,每字 32 位,采用回写(Write Black)方式,则能存放 4K 字数据的 Cache 的总容量的 位数至少是( )。 A.146K B. 147K C. 148K D. 158K
一块四个字,一个字32位(4B,所以块内是4*32/8=16B,按字节编地址,块内地址需要4位。4k容量cache,所以cache有1k个快,所以块号占10位。所以标识位就是32-4-10=18位,还有有效位,以及脏位(采用写回法)。所以总容量为4k*32+1k*(18+1+1)=148k
为什么是加起来
替换策略
在 Cache 中,常用的替换策略有:随机法(RAND)、先进先出法(FIFO)、近期最少使用法(LRU),其 中与局部性原理有关的是( )。
A.随机法(RAND) B.先进先出法(FIFO) C.近期最少使用法(LRU) D.都不是
C
三级存储器体系
若由高速缓存、主存、硬盘构成的三级存储体系,则 CPU 访问该存储系统时发送的地址为( )。 A.高速缓存地址 B.虚拟地址 C.主存物理地址 D.磁盘地址
C
Cache缺失率
a[k]的访问步骤是:先访问cache,cache缺失,之后从主存中取出一个块调入cache,这个块中的后几个数据都是命中的,本题中一个数据占4B,一个块大小是16B,这说明一个块中有4个数据,关键是后面还有一次写,这说明一次循环要八次访问cache,其中只有第一次是缺失的,后面七次都是命中的,所以缺失率是12.5%;
时间空间局部性
时间局部性是一旦一条指令执行了,则在不久的将来它可能再被执行。
空间局部性是一旦一个存储单元被访问,那么它附近的存储单元也很快被访问。
显然,这里的循环指令本身具有时间局部性,它对数组a的访问具有空间局部性,选A。
综合应用
MAR和MDR
主存储器的地址寄存器(MAR)和数据寄存器(MDR)各自的作用是什么?设一个 1MB 容量的存储器, 字长为 32 位,问:
(1)按字节编址,地址寄存器和数据寄存器各几位?编址范围为多大?.
(2)按字编址,地址寄存器和数据寄存器各几位?编址范围为多大?
(1)按字节编址,1MB=*8;所以地址寄存器有20位;数据寄存器有8位;编址范围为00000H~FFFFFH。
(2) 按字编址,1MB=*8=*32;所以地址寄存器为18位;数据寄存器为32位;编址范围为00000H~3FFFFH.
芯片扩展成存储器
用一个 512K×8 位的 Flash 存储芯片组成一个 4M×32 位的半导体只读存储器,存储器按字编址, 试回答以下问题:
(1)该存储器的数据线数和地址线数分别为多少?
(2)共需要几片这样的存储芯片?
(3)说明每根地址线的作用。
(1)因为4M=且4M*32位且按字编址,则该存储器的数据线为32根,地址线为22根。
(2)用4M*32除于512K*8得8*4,则需要4*8=32片。
(3)首先,此时不需要指定A0、A1来标识每一组中的4片存储器,因为此时是按字寻址,所以4片每次都是一起取的,而不是按字节编址时,需要取4片中的某一片。A0~A18;每一片都是512K,所以需要19位来表示。A19、A20、A21;因为在扩展中4片一组,一共有8组,所以需要用3位地址线来决定取哪一组。
某计算机的主存地址位数为 32 位,按字节编址。假定数据 Cache 中最多存放 128 个主存块,采用 四路组相联方式,块大小为 64B,每块设置了 1 位有效位。采用一次性写回策略,为此每块设置了 1 位“脏” 位。要求:
(1)分别指出主存地址中标记(Tag)、组号(Index)和块内地址(Offset)三部分的位置和位数。
(2)计算该数据 Cache 的总位数.
(1)
主存地址位数为32位,一共32位,
Cache中有128个主存块,四路组相联映射,即每个Cache组内有4个Cache块,
故分为128 ÷ 4 = 32组 = 2^5 组,组号占5位
按字节编址,块大小为64B = 2^6B,块内地址字段占6位
标记字段占剩余的 32 - 5 - 6 = 21 位
(2)
Cache总位数或总容量 = 标记项的总位数 + 数据块的总位数
标记项 = 其他位 + 标记位
其他位:一定包含 1 位有效位 ,可能包含脏位 (修改位)、替换控制位
全写法没有脏位,写回法有 1 位脏位
替换算法有替换控制位
标记项的总位数 = 128 块 * (21 + 1 + 1)位/块 = 128 * 23 = 2944 位
数据块位数 = 128 块 * 2^6 * 8 位/块 = 65536 位
块大小 64B
所以数据Cache的总位数 = 2944 位 + 65526 位 = 68480 位
某 32 位计算机,CPU 主频为 800MHz,Cache 命中时的 CPI 为 4,Cache 块大小 为 32 字节;主存采用 8 体交叉存储方式,每个体的存储字长为 32 位、存储周期为 40ns;存储器总线宽度 为 32 位,总线时钟频率为 200MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首 地址和命令、存储器准备数据、传送数据。每次突发传送 32 字节,传送地址或 32 位数据均需要一个总线 时钟周期。请回答下列问题,要求给出理由或计算过程。
(1)CPU 和总线的时钟周期各为多少?总线的带宽(即最大数据传输率)为多少?
(2)Cache 缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
(3)存储器总线完成一次读突发传送总线事务所需的时间是多少?
(4)若程序 BP 执行过程中,共执行了 100 条指令,平均每条指令需进行 1.2 次访存,Cache 缺失率 为 5%,不考虑替换等开销,则 BP 的 CPU 执行时间是多少?
五、指令系统
选择
扩展操作码
指令字长 32 位,地址码为 12 位,如果定义了 250 条二地址指令,那么还可以有( )条单地址指令。
A.4K B.8K C.16K D.24K
256-250=6种状态
=24K
基址寄存器偏移量
某计算机有 16 个通用寄存器,采用 32 位定长指令字,操作码字段(含寻址方式位) 位 8 位,Store 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使 用任一通用寄存器,且偏移量用补码表示,则 Store 指令中偏移量的取值范围是
A. -32768~+32767 B. -32767~+32768 C. -65536~+65535 D. -65535~+65536
偏移量为去掉操作码的位数。
总共32位二进制码,操作码占高位8位
即地址码为32-8=24位
16个通用寄存器即2^4(用4位二进制码表示)
源操作数和目的操作数都与通用寄存器有关
各自占4,4位
剩余24-4-4=16位为偏移量
16位用补码表示范围为-32768~32767(- 2 n-1 ~+ 2 n-1 –1)
倒推指令字长
某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令 29 条、 二地址指令 107 条,每个地址字段为 6 位,则指令字长至少应该是()。
A.24 位 B.26 位 C.28 位 D.32 位
三地址指令29条,说明操作码至少5位,所以剩下2^5-29=3种操作码给二地址指令调配。此种情况下,二地址能实现的指令数为:3*2^6=192>107,显然是够用的,所以操作码5位完全够用,指令字长即5+6*3=23,取8的倍数则为24.
操作码表示指令条数;
三地址的地址码比二地址多,但操作码少。
转移指令
某机器字长为 16 位,主存按字节编址,转移指令采用相对寻址,由 2 字节组成,第 一字节为操作码字段,第二字节为相对位移量字段。 假定取指令时,每取一字节 PC 自动加 1。 若某转移 指令所在主存地址为 2000H, 相对位移量字段的内容为 06H, 则该转移指令成功转移后的目标地址是( )。
A.2006H B.2007H C.2008H D.2009H
相对寻址EA= (PC)+ A, 先计算取指后的PC 值。转移指令由2 字节组成,每取一字节PC加1, 在取指后PC 值为2002H, 因此EA= (PC) + A = 2002H + 06H = 2008H
主存地址+偏移量+增加量=2000H+06H+02H=2008H
有无符号比较(标志CF)
某机器有一个标志寄存器,其中有进位/借位标志 CF、 零标志 ZF、 符号标志 SF 和 溢出标志 OF, 条件转移指令 bgt (无符号整数比较大于时转移)的转移条件是( )。
A. CF + OF = 1 B.SF ZF 1 C.CF ZF 1 D. CF+SF =1
无符号整数比较,如A>B,则A-B无进位/借位,也不为0。故而CF和ZF均为0。
有符号的运算:
无符号运算:
变址寄存器
按字节编址的计算机中,某 double 型数组 A 的首地址为 2000H,使用变址寻址和循环 结构访问数组 A,保存数组下标的变址寄存器的初值为 0,每次循环取一个数组元素,其偏移地址为变址值 乘以 sizeof(double),取完后变址寄存器的内容自动加 1。若某次循环所取元素的地址为 2100H,则进入 该次循环时变址寄存器的内容是( )。
A.25 B.32 C.64 D.100
地址2100H,H代表地址是十六进制数地址,所以2100H-2000H=16^2=256B,每个double是8个字节,所以256/8=32。
基址寄存器
某计算机采用大端方式,按字节编址。某指令中操作数的机器数为 1234FF00H, 该操 作数采用基址寻址方式,形式地址(用补码表示)为 FF12H, 基址寄存器的内容为 F000 0000H, 则该操作 数的 LSB (最低有效字节)所在的地址是( )。
A. F000 FF12H B. F000 FF15H C. EFFF FF12H D. EFFF FF15H
基址寻址:将 CPU 中基址寄存器的内容(BR) + 指令格式中的形式地址A → 操作数的有效地址EA,即 EA=(BR)+A
大端方式:指令中给出的地址是操作数最高有效字节(MSB)所在的地址
小端方式:指令中给出的地址是操作数最低有效字节(LSB)所在的地址
以本题给出的操作数 1234 FF00H 为例:
操作数的MSB为12H,LSB为00H
指令给出的地址 | ||||
大端方式 | 12H(MSB) | 34H | FFH | 00H(LSB) |
小端方式 | 00H(LSB) | FFH | 34H | 12H(MSB) |
基址寄存器的内容为F000 0000H:即 (BR) = F000 0000H (注:内存地址是无符号数)
形式地址(补码表示)为FF12H:即 A = (-00EEH)
故 有效地址EA = (BR) + A = F000 0000H + (-00EEH) = EFFF FF12H
该操作数的LSB(最低有效字节)所在地址为 EA+3 = EFFF FF15H,选【D】
综合应用
扩展操作码
假设指令字长为 16 位,操作数的地址码为 6 位,指令有零地址、一地址、二地址 3 种格式。
(1)采用扩展操作码技术,二地址指令最多有几种?
(2)采用扩展操作码技术,若二地址指令有 P 条,零地址指令有 Q 条,则一地址指令最多有几种?
转移指令
(1)因为操作码占4位且未采用拓展操作码技术;所以最多可有种。
因为寻址方式占3位,于是寄存器最多可有种。
因为主存地址空间大小为128KB,计算机字长为16位=2B,
因此存储单元个数为,故MAR和MDR至少各需16位。
(2)转移目标地址=(PC)+(Rn)
PC和Rn可表示的地址范围均为0~,而主存地址为,故范围为0~。
(3)
累加寄存器ACC,寄存器R5、地址为1234H的存储单元的内容会改变。
(ACC)=((R4))+((R5))=5678H+1234H=68AC;
(R5)=(R5)+1=5678H+1H=5679H;
(5678H)=(ACC)=68AC;
(1)因为指令长度为 16 位,且下条指令地址为( PC) +2, 故编址单位是字节。
偏移OFFSET 为 8 位补码,范围为-128~127,故相对于当前条件转移指令,向后最多可跳转127 条指令。
(2)因为CF=0,ZF=0,NF=1,所以采用转移执行。
已知指令中偏移量为 1110 0011B=E3H,符号扩展后为 FFE3 H,左移一位(乘 2)后为 FFC6 H。
故 PC 的值(即转移目标地址)为 200CH+2+FFC6H=1FD4H。
当 CF = 1, ZF = 0, NF = 0 时不转移。 PC 的值为: 200CH+2=200EH。
(3) C=Z=1, N=0。
(4) 部件①:指令寄存器(用于存放当前指令);部件②:移位寄存器(用于左移一位);
部件③:加法器(地址相加)。
机器级代码
(1)计算 f(10)需要调用函数 f1 共 10 次。执行第 16 行的 call 指令会递归调用 f1。
(2)第 12 行的 jle 指令是条件转移指令,其含义为小于等于时转移,本行代码的意义为:当 n≤1 时,跳转至地址 0040 1035H。
第 16 行的 call 指令为函数调用指令,第 20 行的 jmp 指令为 无条件转移指令,第 30 行的 ret 指令为子程序的返回指令,这三条指令一定会使程序跳转执行。
(3)其长度计算机 M 上按字节编址,第 16 行的 call 指令的虚拟地址为 0040 1025H,长度 为 5 字节,故第 17 行的指令的虚拟地址为 0040 1025H + 5 = 0040 102AH。
第 16 行的 call 指令 采用相对寻址方式,即目标地址 = (PC) + 偏移量,call 指令的目标地址为 0040 1000H,所以偏 移量=目标地址 - (PC) = 0040 1000H - 0040 102AH = FFFF FFD6H。
根据第 16 行的 call 指令的 偏移量字段为 D6 FF FF FF,可以确定 M 采用小端方式。
(4)因为 f(13) = 6227020800,其结果超出了 32 位 int 型数据可表示的最大范围,因此 f(13) 的返回值是一个发生了溢出的错误结果。为使 f1(13)能返回正确结果,可将函数 f1 的返回值类 型改为 double(或 long long,或 long double,或 float)类型。
(1)16位。(ALU位数通常和字长相同)
(2)1MB。(地址线为20位,按字节编址)
(3)指令寄存器有16位,MAR有20位,MDR有8位。(地址线有20位,数据线有8位)
(4)最多可定义16种。(不采用扩展操作码,操作码有4位)
(5)总共最多可定义63()种。(操作码有6位,I型和J型操作码有重叠并且R型占了一种全0的编码)
(6)最多有4个。(从R型和I型格式的寄存器编号部分可知,只用2位对寄存器编码,因此通用寄存器最多有4个。)
(7)进行带符号整数减法,其功能为R[3]<-R[1]-R[2]。(将01B2H写成二进制)
(8)执行指令01B2H后,R[3]=B052H-0008H=B04AH,结果未溢出。指令01B3H=000000 01 10 0011B,操作码0011表示带符号整数乘法指令,执行指令01B3H后,R[3]=R[1]*R[2]=B052H*0008H=8290H(因为 8 =,所以需算数左移三位),结果溢出。
(9)符号扩展(在进行指令跳转时,可能向前跳转,也可能向后跳转,偏移量是一个带符号整数,因此在地址计算时,应对imm进行符号扩展。)
(10)J型。
六、CPU的结构和功能
选择
无条件跳转指令
在一条无条件跳转指令的指令周期内,PC 的值被修改( )次。
A.1 B.2 C.3 D.4
在取指操作完成后,PC加1,被修改一次。
因为是无条件的跳转指令,因此一定会跳转,在跳转到目标指令时,PC被修改一次,修改为要跳转到的目标地址。 B
条件转移指令执行时所依据的条件来自( )。
A.指令寄存器 B.标志寄存器 C.程序计数器 D.地址寄存器
标志寄存器:存放条件转移的条件。在条件转移时,需要对标志寄存器中的内容进行测试,如果满足条件,才可以转移。B
存储器的位数
程序计数器的位数取决于( )。
A.存储器的容量 B.机器字长 C.指令字长 D.都不对
A
指令寄存器的位数取决于( )。
A.存储器的容量 B.机器字长 C.指令字长 D.存储字长
C
CPU 中通用寄存器的位数取决于( )。
A.存储器的容量 B.指令的长度 C.机器字长 D.都不对
C
某计算机的主存空间为 4GB,字长为 32 位,按字节编址,采用 32 位字长指令字格式 若指令按字边界对齐存放,则程序计数器(PC)和指令寄存器(IR)的位数至少分别是()。
A.30、30 B.30、32 C.32、30 D.32、32
因为题目要求指令按字边界对齐存放,PC 这里只需要定位到有多少条指令即可
,因此只需要30位 ;
因为采用32位字长指令字格式,因此指令寄存器 32 位。B
程序状态字寄存器
在计算机系统中表征程序和机器运行状态的部件是( )。
A.程序计数器 B.累加寄存器 C.中断寄存器 D.程序状态字寄存器
D
指令周期
间址周期结束时,CPU 内寄存器 MDR 中的内容为( )。
A.指令 B.操作数地址 C.操作数 D.无法确定
执行阶段取回操作数,B
在取指操作后,程序计数器中存放的是( )。
A.当前指令的地址 B.程序中指令的数量 C.已执行的指令数量 D.下一条指令的地址
取指周期结束,程序计数器会加1;D
CPU组成
在 CPU 的组成中,不包括( )。
A.运算器 B.存储器 C.控制器 D.寄存器
B
在运算器中,不包含( )。
A.状态寄存器 B.数据总线 C.ALU D.地址寄存器
D
指令标志
减法指令"sub R1, R2, R3"的功能为"(R1)-(R2)→R3", 该指令执行后将生成进位/ 借位标志 CF 和溢出标志 OF。若(R1)=FFFF FFFFH, (R2)=FFFF FFF0H, 则该减法指令执行后,CF 与 OF 分 别为()。
A.CF=0,OF=0 B.CF=1,OF=0 C.CF=0,OF=1 D.CF=1,OF=1
A
流水线方式执行指令
若某计算机最复杂指令的执行需要完成 5 个子功能,分别由功能部件 A-E 实现, 各 功能部件所需时间分别为 80ps、50ps、50ps、70ps 和 50ps, 采用流水线方式执行指令, 流水段寄存器延 时为 20ps, 则 CPU 时钟周期至少为( )。
A.60ps B.70ps C.80ps D.100ps
这五个功能可以重叠,同时完成。
D,取最长的一段80ps+寄存器延时20
处理器市长脉冲信号
下列有关处理器时钟脉冲信号的叙述中, 错误的是( )。
A.时钟脉冲信号由机器脉冲源发出的脉冲信号经整形和分频后形成
B.时钟脉冲信号的宽度称为时钟周期, 时钟周期的倒数为机器主频
C 时钟周期以相邻状态单元间组合逻辑电路的最大延迟为基准确定
D.处理器总是在每来一个时钟脉冲信号时就开始执行一条新的指令
指令流水线中,理想情况下每个机器周期完成一条指令并启动一条新指令,而非一个节拍启动一条指令,D
指令功能的实现
某指令功能为 R[r2]←R[r1] + M[R[r0]], 其两个源操作数分别采用寄存器、寄存 器间接寻址方式 对于下列给定部件, 该指令在取数及执行过程中需要用到的是()
I.通用寄存器组(GPRs) II.算术逻辑单元(ALU) III.存储器(Memory) IV.指令译码器(ID)
A.仅 I、II B.仅 I、II、III C.仅 II、III、IV D. 仅 I、III、IV
B
吞吐率
某 CPU 主频为 1.03GHz, 采用 4 级指令流水线,每个流水段的执行需要 1 个时钟周 期。 假定 CPU 执行了 100 条指令,在其执行过程中,没有发生任何流水线阻塞,此时流水线的吞吐率为()。
A.0.25×109 条指令/秒 B.0.97×l09 条指令/秒 C.1.0×109 条指令/秒 D.1.03×l09 条指令/秒
采用 4 级流水执行 100 条指令,在执行过程用4 +(100-1) =103 个时钟周期(k+(n-1))。
CPU 主频是1.03 GHz(10^9),即每秒1.03 G个时钟周期。
那么流水时间为103/1.03Ghz=s
流水线的吞吐率=指令条数n/流水时间=100/1*10-7=1.0×109条指令/秒
C
数据冒险
即一条指令的执行需要等待另一条指令执行完成后所产生的数据。
I2写R5,I3读R5,存在数据冒险,B
综合应用
流水线方式执行指令
(1)因为该计算机为16位,先不管符号位写出原码,再根据符号位写出补码。
x=-513=0000 0010 0000 0001B; [x] 补 =1111 1101 1111 1111B
即指令执行前 (R1)=FDFFH ,右移 1 位后位 1111 1110 1111 1111B ,即指令执行后 (R1)=FEFFH 。
(2)
至少需要 4+(5 - 1)=8 个时钟周期。
(3)I3 的 ID 段被阻塞的原因:因为 I3 与 I1 和 I2 都存在数据相关,需等到 I1 和 I2 将结果写回寄存器后, I3 才能读寄存器内容,所以 I3 的 ID 段被阻塞( 1 分)。
I4 的 IF 段被阻塞的原因:因为 I4 的前一条指令 I3 在 ID 段被阻塞,所以 I4 的 IF 段被阻塞( 1 分)。
(4)
因 2*x 操作有左移和加法两种实现方法,故 x=x*2+a 对应的指令序列为
I1 LOAD R1 , [x]
I2 LOAD R2 , [a]
I3 SHL R1 // 或者 ADD R1 , R1
I4 ADD R1 , R2
I5 STORE R2 , [x]
这 5 条指令在流水线中执行过程如下图所示。
故 执行 x=x*2+a 语句最少需要 17 个时钟周期。
机器级代码
(1)M为CISC。M的指令长短不一,不符合RISC指令系统特点。
(2)因为f1的第一条指令“push ebp”所在的虚拟地址为0040 1020H,最后一条指令“ret”所在的虚拟地址为0040 107FH,所以,f1的机器指令代码长度为0040 107FH - 0040 1020H + 1 = 60H = 96个字节。
(3)CF=1。
cmp指令实现i与n-1的比较功能,进行的是减法运算。在执行f1(0)过程中,n=0,当i=0时,i=0000 0000H,并且n-1=FFFF FFFFH。因此,当执行第20条指令时,在补码加/减运算器中执行“0减FFFF FFFFH”的操作,即0000 0000H + 0000 0000H+1 = 0000 0001H,此时,进位输出C = 0,减法运算时的借位标志CF = C ㊉ 1 = 1。
(4)f2中不能用shl指令实现power*2。
因为shl指令用来将一个整数的所有有效数位作为一个整体左移;而f2中的变量power是float型,其机器数中不包含最高有效数位,但包含了阶码部分,将其作为一个整体左移时并不能实现“乘2”的功能,因而f2中不能用shl指令实现power*2。
(1)字节;
解析:由题可知每条指令的长度为32 位,占 4 个字节,而从表中我们得知相邻的两条指令的地址相差 4 个单位,所以存储器编址单位是字节。
通过相邻的两条指令的地址相差多少个单位可知存储器按什么编址。
(2)32 位;
解析:R2 里面存放的是数组元素的下标 i,将 R2 中的内容左移两位,相当于乘以 4,然后加上 R3 当中存放的数组的首地址,得到元素所在的地址,然后每循环一次, R2 中内容自增 1。因为计算机按字节编址,每计算一次移动 4 个位置,故每个数组元素占 4 个字节,即32 位。
(3)-6;指令 bne 所在地址为 0804 8114H,转移目标地址为 0804 8100H,因为08048100H=08048100H+4+( -6)×4;所以,指令 bne 的转移目标地址计算公式为( PC)+4+OFFSET×4。
解析:由指令bne 的机器代码 1446FFFAH 加上 OFFSET 的字段位数很容易知道OFFSET=FFFAH,值为-6(这里的偏移量 6 是以 4 个字节为单位); 指令 bne 所在地址为 0804 8114H,执行完 bne 指令之后, PC 的内容加 1(这里的 1 是 4 个字节的单位), goto loop 转移目标地址为 0804 8100H,于是 0804 8100H=0804 8114H+4+(-6)*4;所以,指令 bne 的转移目标地址计算公式为:( PC) +4+OFFSET×4。
七、控制单元
选择
取指操作
取指令操作( )。
A. 受到上一条指令的操作码控制 B. 受到当前指令的操作码控制 C. 受到下一条指令的操作码控制 D. 是控制器固有的功能,不需要在操作码控制下进行
A只有完成上一条指令,PC才能自加,指向下一条指令。
微程序
相对于微程序控制器,硬布线控制器的特点是( )。
A. 指令执行速度慢,指令功能的修改和扩展容易 B. 指令执行速度幔,指令功能的修改和扩展难 C. 指令执行速度快,指令功能的修改和扩展容易 D. 指令执行速度快,指令功能的修改和扩展难
D
在微程序控制器中,形成微程序入口地址的是( )。
A. 机器指令的地址码字段 B. 微指令的微地址码字段 C. 机器指令的操作码字段 D. 微指令的微操作码字段
C由 机器指令的操作码字段 即OP字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址并送入 微地址寄存器 。
在微程序控制器中,控制部件向执行部件发出的某个控制信号称为( )。
A.微程序 B. 微指令 C. 微操作 D. 微命令
D
某带中断的计算机指令系统共有 101 种操作,采用微程序控制方式时,控制存储器中相 应最少有( )个微程序。
A. 101 B. 102 C. 103 D. 104
C采用微程序控制方式时必须要有公用的取指微程序,因为是带中断的计算机指令系统,所以还需要有一个中断微指令,因此控制存储器中相应的微程序个数为:101+1+1=103个
通常情况下,一个微程序的周期对应一个( )。
A. 指令周期 B. 主頻周期 C. 机器周期 D. 工作周期
C
微周期一般相当于我们所指的()
A.指令周期 B.CPU周期 C节拍周期 D时钟周期 E机器周期
A
通常,微指令的周期对应一个______。
A. 指令周期 B. 主頻周期 C. 机器周期 D. 工作周期
C
某带中断的计算机指令系统共有 101 种操作,采用微程序控制方式时,控制存储器中相 应最少有( )个微程序。
A. 101 B. 102 C. 103 D. 104
取指一定有,所以+1;间址和中断不一定有;因为题目是带中断的计算机指令系统所以+1。
答案至少为101+1+1=103;C
水平/垂直微指令
水平型微指令与垂直型微指令相比( )。
A. 前者一次只能完成一个基本操作 B. 后者一次只能完成一个基本操作 C. 两者都是一次只能完成一个基本操作 D. 两者都能一次完成多个基本操作
B水平型微指令一次能定义并执行多个微操作,而垂直型微指令一次只能完成一个微操作。
操作控制字段
某计算机的控制器采用微程序控制方式,微指令中的操作控制字段 采用字段直接编码法,共 有 33 个微命令,构成 5 个互斥类,分别包含 7、3、12、5 和 6 个微命令,則操作控制字段至少有 ( )。
A. 5 位 B. 6 位 C. 15 位 D. 33 位
C7个互斥的微命令采用直接编码法至少需要log27+1位,即3位。
3个互斥的微命令采用直接编码法至少需要log23+1位,即2位。
12个互斥的微命令采用直接编码法至少需要log212+1位,即4位。
5个互斥的微命令采用直接编码法至少需要log25+1位,即3位。
6个互斥的微命令采用直接编码法至少需要log26+1位,即3位。
至少需要3+2+4+3+3=15位。
兼容性微命令
兼容性微命令指几个微命令是( )。
A. 可以同时出现的 B. 可以相继出现的 C. 可以相互代替的 D. 可以相处容错的
A
断定法(下地址字段法)
某计算机采用微程序控制器,共有 32 条指令,公共的取指令微程 序包含 2 条微指令,各指令对应的微程序平均由 4 条微指令组成,采用断定法(下地址字段 法)确定下条微指令地址,则微指令中下地址字段的位数至少是()。
A.5 B.6 C.8 D.9
根据这张图
要计算微指令中下址字段的位数,首先需要知道微程序存储器的大小,即微指令的总数。
已知有32条指令,公共的取指令微程序包含2条微程序,各指令对应的微程序平均由4条微指令组成。那么,微指令的总数为:
2(公共取指令微程序) + 32 * 4(各指令对应的微程序)= 2 + 128 = 130
要表示130个微指令地址,需要用到的位数至少为:
2^7 = 128 < 130 < 256 = 2^8
所以需要8位来表示微指令地址。因此,微指令中下址字段的位数至少是8。
答案是(C)8。
主存储器(MM)和控制存储器(CS)
关于主存储器(MM)和控制存储器(CS)的叙述中,错误的是()。
A.MM 在 CPU 外,CS 在 CPU 内
B.MM 按地址访问,CS 按内容访问
C.MM 存储指令和数据,CS 存储微指令
D.MM 用 RAM 和 ROM 实现,CS 用 ROM 实现
B
综合应用
某计算机字长 16 位,采用 16 位定长指令字结构,部分数据通路结 构如图所示。图中所有控制信号为 1 时表示有效,为 0 时表示无效。例如,控制信号 MDRinE 为 1 表示允许数据从 DB 打入 MDR,MDRin 为 1 表示允许数据从内总线打入 MDR。假设 MAR 的 输出一直处于使能状态,加法指令“ADD(Rl),R0”的功能为(R0)+((Rl))→(R1),即将 R0 中的数据与 R1 的内容所指主存单元的数据相加,并将结果送入 R1 的内容所指主存单元中保 存。
某 16 位计算机的主存按字节编址,存取单位为 16 位;采用 16 位定 长指令字格式;CPU 采用单总线结构,主要部分如下图所示。图中 R0~R3 为通用寄存器;T 为暂存器;SR 为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3 种操 作,控制信号为 SRop,SR 的输出由信号 SRout 控制;ALU 可实现直送 A(mova)、A 加 B(add)、 A 减 B(sub)、A 与 B(and)、A 或 B(or)、非 A(not)、A 加 l(ine)7 种操作,控制信号为 ALUop。
请回答下列问题。
1) 图中哪些寄存器是程序员可见的?为何要设置暂存器 T?
通用寄存器(R0~R3)是程序员可见;PC也是程序员可见;
因为CPU采用单总线结构,ALU的A、B端口的输入来自于同一个总线,若无暂存器T,A、B端口总是同时从总线上获得两个相同的数据,使ALU难以完成对两个不同数据的运算操作。
2) 控制信号 ALUop 和 SRop 的位数至少各是多少?
因为ALU共有7种操作,故其操作控制信号ALUop至少需要3位;移位寄存器有3种操作,故其操作控制信号SRop至少需要两位。
3) 控制信号 SRout 所控制部件的名称或作用是什么?
信号SRout所控制的部件在移位寄存器与总线之间,该部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。
4) 端点①~⑨中,哪些端点须连接到控制部件的输出端?
图中端口1、2、3、5、8对应的信号是控制信号,须连接到控制部件输出端。
5) 为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。 写出连线的起点和终点,以正确表示数据的流动方向。
从图中可以看出4、9表示输入信号,6、7表示输出信号,所以6->9;7->4;
ALU的B输入端可以接受来自于总线的数据,也可以接收多路选择器MUX输入端的数据2。
6) 为什么二路选择器 MUX 的一个输入端是 2?
因为每条指令的长度为16位,按字节编址,所以每条指令占用两个内存单元,顺序执行时,下条指令地址为(PC)+2。MUX的一个输入端为2,可便于执行(PC)+2操作。
八、输入输出系统
选择
中断隐指令
响应外部中断的过程中,中断隐指令完成的操作,除保护断点外,还包括( )。
I.关中断 II.保存通用寄存器的内容 III.形成中断服务程序入口地址并送 PC
A.仅 I、II B.仅 I、III C.仅 II、III D.I、II、III
B
程序控制指令
下列不属于程序控制指令的是( )。
A.无条件转移指令 B.有条件转移指令 C.中断隐指令 D.循环指令
程序控制指令主要包括:转移指令、跳跃指令和子程序调用与返回指令。
C
中断响应周期中,CPU的工作
在中断响应周期中,CPU 主要完成的工作是()。
A.关中断,保护断点,发中断响应信号并形成向量地址 B.关中断,执行中断服务程序 C.开中断,保护断点,发中断响应信号并形成向量地址 D.开中断,执行中断服务程序
A,即执行中断隐指令
中断屏蔽标志
设置中断屏蔽标志可以改变( )。 A.多个中断源的中断请求优先级 B.CPU 对多个中断请求响应的优先次序 C.多个中断服务程序开始执行的顺序 D.多个中断服务程序执行完的次序
D
CPU如何响应中断
在 CPU 响应中断时,保护两个关键的硬件状态是( )。
A.PC 和 IR B.PC 和 PSW C.AR 和 IR D.AR 和 PSW
B
中断和DMA方式
在各种 I/O 方式中,中断方式的特点是( ),DMA 方式的特点是( )。 A.CPU 与外设串行工作,传送与主程序串行工作 B.CPU 与外设并行工作,传送与主程序串行工作 C.CPU 与外设串行工作,传送与主程序并行工作 D.CPU 与外设并行工作,传送与主程序并行工作
B;D
D;
对于高速外设若采用中断方式,效率低,所以中断I/O方式不适用于高速外设
在白中英的计算机组成原理(第六版)P265上有介绍:“选择型DMA控制器不适用于慢速设备。但是多路型DMA控制器却适合于同时为多个慢速外围设备服务。”
在 DMA 方式传送救据的过程中,由于没有破坏( )的内容,所有 CPU 可以正常工作(访存除外)。
A.程序计数器 B.程序计数器和寄存器 C.指令寄存器 D.堆栈寄存器
B
在 DMA 传送方式中,由( )发出 DMA 请求,在传送期间总钱控制权由( )掌握
A.外部设备、CPU B.DMA 控制器、DMA 控制器 C.外部设备、DMA 控制器 D.DMA 控制器、内存
C;在DMA传送方式中,由外部设备向DMA控制器发出DMA请求信号,然后由DMA控制器向CPU发出总线请求信号。DMA在传送期间有总线控制权,这时CPU不能响应I/O中断。
下列关于 DMA 方式的叙述中, 正确的是( ) I. DMA 传送前由设备驱动程序设置传送参数 II. 数据传送前由 DMA 控制器请求总线使用权 III 数据传送由 DMA 控制器直接控制总线完成 IV DMA 传送结束后的处理由中断服务程序完成
A.仅 I、II B.仅 l、III、IV C.仅 II、III、IV D.I、II、III、IV
D
CPU用于I/O时间
若某设备中断请求的响应和处理时间为 100ns,每 400ns 发出一次中断请求,中断响应所允许的最长 延迟时间为 50ns,则在该设备持续工作过程中,CPU 用于该设备的 I/O 时间占整个 CPU 时间的百分比至少是( )。
A.12.5% B.25% C.37.5% D.50%
B;至少是100/400=0.25
某设备以中断方式与 CPU 进行数据交换, CPU 主频为 1GHz, 设备接口中的数据缓 冲寄存器为 32 位,设备的数据传输率为 50kB/s 若每次中断开销(包括中断响应和中断处理)为 1000 个 时钟周期,则 CPU 用于该设备输入/输出的时间占整个 CPU 时间的百分比最多是( )
A.1.25% B.2.5% C.5% D.12.5%
A
首先设备以中断方式与cpu进行数据交互的时候是并行运行的,那么我们可以用一秒钟的时间来比较两者的数据交换的次数,设备充满寄存器一秒内就需50kB/s / 4B=12.5k次,而1000时钟周期,cpu运行1G / 1000 次,所以12.5k / 1M =1.25%
多重中断
下列关于多重中断系统的叙述中,错误的是( )。
A.在一条指令执行结束时响应中断 B.中断处理期间 CPU 处于关中断状态 C.中断请求的产生与当前指令的执行无关 D.CPU 通过采样中断请求信号检测中断请求
B。多重中断系统中为响应更高优先级的中断,会开中断
综合应用
采用中断方式进行输入输出
假定 CPU 主频为 50MHZ,CPI 为 4,设备 D 采用异步串行通信方式向主机传送 7 位ASCII字符,通信规程中有1位奇校验位和1位停止位,从D接收启动命令到字符送入I/O端口需要0.5ms, 请回答下列问题,要求说明理由。
(1)每传送一个字符,在异步串行通信线上共需传输多少位?在设备 D 持续工作过程中,每秒钟最 多可向 I/O 端口送入多少个字符?
(2)设备 D 采用中断方式进行输入/输出,示意图如下:
I/O 端口每收到一个字符申请一次中断,中断响应需 10 个时钟周期,中断服务程序共有 20 条指令, 其中第 15 条指令启动 D 工作。若 CPU 需从 D 读取 1000 个字符,则完成这一任务所需时间大约是多少个时 钟周期?CPU 用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段 CPU 进行了哪些操作?
(1)每传送一个ASCII字符,需要传输的位数有1位起始位、7位数据位(ASCII字符占7位)、1位奇校验位和1位停止位,故总位数为1+7+1+1=10。
I/O端口每秒钟最多可接收1000/0.5=2000个字符。
(2) 一个字符传送时间包括:设备D将字符送I/O端口的时间、中断响应时间和中断服务程序前15条指令的执行时间。
时钟周期为1/(50MHz)=20ns,设备D将字符送I/O端口的时间为0.5ms/20ns=2.5×104个时钟周期。
一个字符的传送时间大约为2.5×104+10+15×4=25070个时钟周期。完成1000个字符传送所需时间大约为1000×25070=25070000个时钟周期。
CPU用于该任务的时间大约为1000×(10+20×4)= 9×104个时钟周期。
在中断响应阶段,CPU主要进行以下操作:关中断、保护断点和程序状态、识别中断源。
某计算机的 CPU 主频为 500MHz,CPI 为 5(即执行每条指令平均需 5 个时钟周期)。 假定某外设的数据传输率为 0.5MB/S,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中 断服务程序包含 18 条指令,中断服务的其他开销相当于 2 条指令的执行时间。请回答下列问题,要求给 出计算过程。
(1)在中断方式下,CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比是多少?
(2)当该外设的数据传输率达到 5MB/s 时,改用 DMA 方式传送数据。假定每次 DMA 传送块大小为 5000B, 且 DMA 预处理和后处理的总开销为 500 个时钟周期,则 CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分 比是多少?(假设 DMA 与 CPU 之间没有访存冲突)
(1) 中断每次传送32位=4B,为达到外设0.5MB/s的数据传输率,外设每秒申请中断次数为0.5MB/4B=125000。
CPU每次用于中断方式数据传送的时钟周期数为5*(18+2)=100。
每秒内用于中断的开销为100*125000=12.5M个时钟周期。
所以CPU用于外设I/O的时间占整个CPU时间的百分比为12.5M/500M=2.5%。
(2)每秒内需要产生的DMA次数为5MB/5000B=1000。
每秒内用于DMA的开销为1000*500=0.5M个时钟周期。
所以CPU用于外设I/O的时间占整个CPU时间的百分比为0.5M/500M=0.1%。
假定某计算机的 CPU 主频为 80MHz,CPI 为 4,平均每条指令访存 1.5 次,主存与 Cache 之间交换的块大小为 16B,Cache 的命中率为 99%,存储器总线宽带为 32 位。请回答下列问题。
(1)该计算机的 MIPS 数是多少?平均每秒 Cache 缺失的次数是多少?在不考虑 DMA 传送的情况下, 主存带宽至少达到多少才能满足 CPU 的访存要求?
(2)假定在 Cache 缺失的情况下访问主存时,存在 0.0005%的缺页率,则 CPU 平均每秒产生多少次缺 页异常?若页面大小为 4KB,每次缺页都需要访问磁盘,访问磁盘时 DMA 传送采用周期挪用方式,磁盘 I/O 接口的数据缓冲寄存器为 32 位,则磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少是多少?
(3)CPU 和 DMA 控制器同时要求使用存储器总线时,哪个优先级更高?为什么?
(4)为了提高性能,主存采用 4 体低位交叉存储模式,工作时每 1/4 个存储周期启动一个体。若每 个体的存储周期为 50ns,则该主存能提供的最大带宽是多少?
(1) MIPS=80M/4M=20。
因为平均每条指令访存1.5次;故平均每秒Cache缺失的次数=20M*1.5*1%=300K。
当Cache缺失时,CPU访问主存,主存与Cache之间以块为传送单位,此时,主存带宽为16B*300k/s=4.8MB/s。
(2)CPU平均每秒产生300K*0.0005%=1.5次缺页异常。
因为存储器总线宽度为32位,,所以每传送32位数据,磁盘控制器发出一次DMA请求,故平均每秒磁盘DMA请求的次数至少为1.5*4KB/4B=1.5K。
(3) DMA请求优先级更高;因为DMA请求得不到及时响应,I/O传输数据可能会丢失。
(4) 最大带宽为4*4B/50ns=320MB/s。
处理机执行过程图
4.机器有五级中断,中断响应次序为 1-2-3-4-5,现要求中断处理次序为 3-5-2-4-1。
(1)设计各级中断处理程序的中断级屏蔽位,令“1”表示开放,“0”表示屏蔽;
(2)若在运行用户程序时,同时发生 4、5 级中断请求,而在 5 级中断服务尚未完成时,又发生 1、2、 3 级中断,请画出处理机执行程序的全过程示意图。
I/O中断和DMA
假定计算机的主频为 500MHz,CPI 为 4。现有设备 A 和 B,其数据传输率分别为 2MB/s 和 40MB/s,对应 I/0 接口中各有一个 32 位数据缓冲寄存器。回答下列问题,要求给出计算过程。
1) 若设备 A 采用定时查询 I/0 方式,每次输入/输出都至少执行 10 条指令。设备 A 最多间隔多长时 间查询一次才能不丢失数据?CPU 用于设备 A 输入/输出的时间占 CPU 总时间的百分比至少是多少?
2)在中断 I/0 方式下,若每次中断响应和中断处理的总时钟周期数至少为 400,则设备 B 能否采用中断 I/0 方式?为什么?
3)若设备 B 采用 DMA 方式,每次 DMA 传送的数据块大小为 1000B,CPU 用于 DMA 预处理和后处理的总时 钟周期数为 500,则 CPU 用于设备 B 输入/输出的时间占 CPU 总时间的百分比最多是多少?
(1)
程序定时向缓存端口查询数据,由于缓存端口有限,必须在传输完端口大小的数据时访问端口,以防止部分数据未被及时读取而丢失。
设备A准备32位数据所用的时间为4B/2MB=2µs,所以最多每隔2µs必须查询一次,每秒的查询次数至少是1s/2µs=5*。
每秒CPU用于设备A输入/输出的时间至少为5**10*4=2*个时钟周期,占整个CPU时间的百分比至少是2*/500M=4%。
(2)如果准备数据的时间小于中断响应和中断处理的时间,那么数据就会被刷新,造成丢失。
中断响应和中断处理的时间为400/500M=0.8µs,设备B准备32位数据所用的时间为4B/40MB=0.1µs,因此设备B不适合采用中断I/O方式。
(3) 在DMA方式中,只有预处理和后处理需要CPU处理,数据的传送过程是由DMA控制的。设备B每秒的DMA次数最多为40MB/1000B=40000,CPU用于设备B输入/输出的时间最多为40000*500=2*个时钟周期,占CPU总时间的百分比最大为2*=4%。