【计算机组成原理】基础知识汇总(必背) - gonghr - 博客园
整理了一下超星上的题目以及教材《计算机组成原理 第3版》——唐朔飞 的课后题。
第 1 章 计算机系统概论
超星题目
- 说明计算机系统的层次结构。
- 说明冯诺依曼体系结构的特点。
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
- 指令和数据以同等地位存储在存储器中,并可按地址寻访。
- 指令和数据均用二进制代码表示。
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
- 早期的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
🔔 知识点:
- 冯·诺依曼机的基本工作方式是:控制流驱动方式
- 冯·诺依曼机工作方式的基本特点:按地址访问并顺序执行指令
- 什么是机器字长、指令字长、存储字长?
- 机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
- 指令字长是一个指令字中包含二进制代码的总位数。指令字长取决于从操作码的长度、操作码地址的长度和操作码地址的个数。
- 存储字长是一个存储单元存储二进制代码的位数。
- 存储字是存放在一个存储单元中的二进制代码组合
- 存储单元是存放一个存储字的所有存储元集合。
其他
什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
- 计算机系统:由计算机硬件系统和软件系统组成的综合体。
- 计算机硬件:指计算机中的电子线路和物理装置。
- 计算机软件:计算机运行所需的程序及相关资料。
- 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。
- 解释下列概念:主机、 CPU 、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
- 主机:是计算机硬件的主体部分,由 CPU 和主存储器 MM 合成为主机。
- CPU :中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的 CPU 内除含有运算器和控制器外还集成了 CACHE )。
- 主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
- 存储单元:可存放一个机器字并具有特定存储地址的存储单位。
- 存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
- 存储字:一个存储单元所存二进制代码的逻辑单位。
- 存储字长:一个存储单元所存二进制代码的位数。
- 存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。
- 机器字长:指 CPU 一次能处理的二进制数据的位数,通常与 CPU 的寄存器位数有关。
- 指令字长 : 一条指令的二进制代码位数。
指令和数据都存于存储器中,计算机如何区分它们?
系统总线包括哪三类?起到什么作用?
- 数据总线:用来传输各功能部件之间的数据信息。
- 地址总线:用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址
- 控制总线:用来发出各种控制信号,监视各部件状态
- 总线判优控制是解决什么问题的?总的来说可以分为哪两种方式?
- 总线判优控制解决多个部件同时申请总线时的总线使用权分配问题
- 可以分为 集中式 和 分布式
- 集中式总线控制优先权仲裁方式有哪三种?各有什么特点?
- 链式查询:只需要少数几根线就能按一定优先次序实现总线控制,易于扩充设备,对电路故障最敏感,且优先级别低的设备可能很难获得请求。
- 计数器定时查询:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线。优先级设置较灵活,对故障不敏感,连线及控制过程较复杂
- 独立请求:响应速度快,总线允许信号 BG 直接从控制器发送到有关设备,不必在设备间传递或者查询。优先次序控制灵活,但控制线数量多,总线控制更复杂。
- 简述总线周期的 4 个阶段。
- 申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授予某一申请者。
- 寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。
- 传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。
- 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
- 总线通信控制是解决什么问题的?总的来说有哪几种控制方式?各自的特点是什么?
- 总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。
- 通常有 同步通信、半同步通信、异步通信、分离通信 四种方式
- 同步通信:统一时标控制(时标由CPU总线控制部件发出)。优点:模块间配合简单一致。缺点:主从模块强制性“同步”,按最慢部件设计公共时钟,严重影响这总线工作效率,设计局限性,缺乏灵活性。
- 异步通信:允许各模块速度的不一致性。设计灵活。主从模块之间采用应答方式(握手方式)。分为不互锁、半互锁、全互锁。
- 半同步通信:保留同步通信和异步通信特点。所有的地址、命令、数据信号发出时间,按照时钟前沿;接收方采用时钟后沿。允许不同速度的模块和谐工作。。增设“等待”(WAIT)响应信号线,通过插入时钟协调。
- 分离式:
- 通信各模块欲占用总线使用权都必须提出申请。
- 在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
- 各模块在准备数据的过程中都不占用总线,是总线可接受其他模块的请求。
- 总线被占用时都在做有效占用,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分利用总线的有效占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行式传送。对大型计算机很重要。
- 串行传输和并行传输有何区别?各适用于什么场合?
- 串行传输:数据在单条 1 位宽的传输线上,一位一位地按顺序分时传送。成本低,速度慢,适合远距离数据传输。
- 并行传输:数组在多条并行 1 位宽的传输线上,同时由源传送到目的地。成本高,速度快,适合近距离数据传输。
其它
- 主存通过(总线的类型)来识别信息是地址还是数据。
- 总线的异步通信方式 (不采用时钟信号,只采用握手信号)
- 某总线有104根信号线,其中数据线(DB)为32根,若总线工作频率为33MHz,则其理论最大传输率为(132MB/s)。
- 微型计算机中控制总线提供的完整信息是(来自I/O设备和存储器的响应信号、所有存储器和I/O设备的时序信号和控制信号)
- 假设某系统总线在一个总线周期中并行传输 4 字节信息,一个总线周期占用 2 个时钟周期,总线时钟频率为 10MHz,则总线带宽是 (20MB/S)
- 传输一张分辨率为640*480像素、65536色的照片(采用无压缩方式),设有效数据传输率为56kbit/s,大约需要的时间是
- 640 480 16 / 56k = 87.77s
- 计算机使用总线结构的主要优点是便于实现积木化,同时(减少了信息传输线的条数)。
- 总线复用方式可以(减少总线中信号线的数量)
- 三种集中式总线控制中,(独立请求)方式响应时间最快,(链式查询)方式对电路最敏感。
课后题
什么是总线?总线传输有何特点?为了减轻总线负载,总线上的部件应具备什么特点?
- 总线是多个部件共享的传输部件。
- 总线传输特点:在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
- 为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。
- 解释下列概念:总线宽度、总线带宽、总线复用、总线的主设备(或主模块)、总线的从设备(或从模块)、总线的传输周期和总线的通信控制。
- 总线宽度 : 通常指数据总线的根数;
- 总线带宽 : 总线的数据传输率,指单位时间内总线上传输数据的位数;
- 总线复用 : 指同一条信号线可以分时传输不同的信号(地址总线和数据总线)。
- 总线的主设备(主模块) : 指一次总线传输期间,拥有总线控制权的设备(模块);
- 总线的从设备(从模块) : 指一次总线传输期间,配合主设备完成数据传输的设备(模块),它只能被动接受主设备发来的命令;
- 总线的传输周期 : 指总线完成一次完整而可靠的传输所需时间;
- 总线的通信控制 : 指总线传送过程中双方的时间配合方式。
- 画图说明异步通信中请求与回答有哪几种互锁关系?
- 为什么说半同步通信同时保留了同步通信和异步通信的特点?
- 半同步通信既能像同步通信那样由统一时钟控制,又能像异步通信那样允许传输时间不一致,因此工作效率介于两者之间。
- 什么是总线的数据传输率,它与哪些因素有关?
- 总线数据传输率即总线带宽,指单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量。
- 它与总线宽度和总线频率有关,总线宽度越宽,频率越快,数据传输率越高。
- 例如:总线工作频率为33MHz,总线宽度为32位(4 Byte),则总线的宽度为33 x 4 = 132MBps。
- 设总线的时钟频率为8MHZ,一个总线周期等于一个时钟周期。如果一个总线周期中并行传送16位数据,试问总线的带宽是多少?
- 由于:f=8MHz,T=1/f=1/8M 秒,一个总线周期等于一个时钟周期
所以:总线带宽=16/(1/8M) = 128 Mbps = 16 MBps (注意单位)
- 由于:f=8MHz,T=1/f=1/8M 秒,一个总线周期等于一个时钟周期
- 在一个 32 位的总线系统中,总线的时钟频率为 66 MHz,假设总线最短传输周期为 4 个时钟周期,试计算总线的最大数据传输率。若想提高数据传输率,可采取什么措施?
- 总线传输周期=4*1/66M秒
总线的最大数据传输率=32/(4/66M)=528 Mbps = 66 MBps
若想提高数据传输率,可以提高总线时钟频率、增大总线宽度或者减少总线传输周期包含的时钟周期个数。
- 总线传输周期=4*1/66M秒
在异步串行传送系统中,字符格式为:1个起始位、8个数据位、1个校验位、2个终止位。若要求每秒传送120个字符,试求传送的波特率和比特率。
试比较RAM和ROM。
- RAM:随机存储器。可读可写。常用于主存。分为静态RAM和动态RAM
- ROM:只读存储器。在程序执行过程中只能将内部信息读出,不能随意写入。
- 从实现技术的角度,试比较SRAM和DRAM。
- SRAM 工作原理是触发器。DRAM 工作原理是电容。
- 在同样大小的芯片中,DRAM(动态RAM)的集成度远高于SRAM(静态RAMI)
- DRAM 行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减少
- DRAM 的功耗比 SRAM 小
- DRAM 的价格比 SRAM 便宜,容量大,存取周期长
- DRAM 的速度比 SRAM 低
- DRAM 需要再生,故需配置再生电路,也需要消耗一部分功率
- 存储芯片内的地址译码方式有几种?各自特点及应用场合?
- 线选法:适用于地址线较少的芯片。其特点是地址信号只须经过一个方向的译码就可以选中某一存储单元的所有位
- 重合法:适用于地址线较多的芯片。其特点是地址线分成两组,分别经行、列两个方向译码,只有行、列两个方向均选中的存储元才能进行读/写
- 什么是动态 RAM 的刷新?刷新有几种方式?简要说明之。
- 对 DRAM 定期进行的全部重写过程,一次刷新一行。
- 集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。这段时间称为“死时间
- 分散刷新︰对每行存储单元的刷新分散到每个存取周期内完成
- 异步刷新:是前两种方式的结合,既可缩短“死时间,又充分利用最大刷新间隔
- 存储容量扩展有哪几种方法?
- 位拓展:增加存储字长
- 字拓展:增加存储器字的数量
- 字、位拓展:既增加存储字的数量,又增加存储字长。
- 使用汉明码进行校验时,需要增加 k 位检测位,且 k 位的检测位和 n 位的待检测二进制代码位之间要满足什么关系?为什么?
- 设欲检测的二进制代码为 n 位,为使其具有纠错能力,需增添 k 位检测位,组成 n+k 位的代码。为了能准确对错误定位以及指出代码没错,新增添的检测位数 k 应满足:2^k ≥ n+k+1。
- 已知收到的海明码为0100111(按配偶原则配置),试问欲传送的信息是什么?
- P1 = 1⊕3⊕5⊕7 = 0 P2 = 2⊕3⊕6⊕7 = 1 P4 = 4⊕5⊕6⊕7 = 1 P4P2P1 = 110
- 第六位出错,纠正为 0100101,故要求传送的信息为 0101
- 什么是多体并行存储器?有哪两种存储体编址方式,各自有什么特点?
- 多体并行系统就是采用多体模块组成的存储器。每个模块有相同的容量和存取速度,各模块各自都有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码、驱动电路和读/写电路,他们能并行工作,又能交叉工作。
- 高位交叉:高位地址可表示体号,低位地址为体内地址
- 低位交叉:低位地址用来表示体号,高位地址为体内地址
- Cache、主存和辅存构成的三级存储系统分别的目的是什么?设计依据是?
- 缓存-主存层次:解决 CPU 和主存速度不匹配的问题。依据:缓存的速度比主存的速度高,只要讲 CPU 近期要用的信息调入缓存,CPU 便可以直接从缓存中获取信息。主存和缓存之间的数据调用由硬件自动完成,对程序员透明。
- 主存-辅存:解决存储系统的容量问题。依据:辅存的速度比主存的速度低,而且不能和 CPU 直接交换信息,但它的容量比主存大得多,可以存放大量暂时未使用得信息。当 CPU 需要用到这些信息时,再将辅存的内容调入主存,供 CPU 直接访问。主存和辅存之间的数据调用是由硬件和操作系统共同完成的。
- 请简述Cache的基本工作原理。
- 任何时刻都有一些主存块处在缓存块中。CPU 欲读取主存某字的时候,有两种可能:一种是需要的字已经在缓存中,即可直接访问 Cache;另一种是所需的字不在 Cache 内,此时需将该字所在的主存整个字块一次调入 Cache 中。如果主存块已经调入缓存块,则称该主存块与缓存块建立了对应关系。
- 试比较主存-Cache管理中三种地址映射的方法,并分别给出在三种地址映射下,主存地址划分。
- 直接映射:每个主存块只与一个缓存块相对应
- 全相联映射:允许主存中每一字块映射到 Cache 中的任何一块位置上。
- 组相联映射:直接映射和全相联映射的一种折中。把 Cache 分成 Q 组,每组 R 块。
- 直接映射:每个主存块只与一个缓存块相对应
- Cache-主存间的替换策略有哪些,请简述。
- 发生主存写请求时,如何保证Cache和主存的一致性?
- 写直达法:写操作时数据既写入Cache又写入主存。写操作时间就是访问主存的时间,读操作时不涉及对主存的写操作,更新策略比较容易实现
- 写回法:写操作时只把数据写入 Cache 而不写入主存,当 Cache 数据被替换出去时才写回主存。写操作时间就是访问 Cache 的时间,读操作 Cache 失效发生数据替换时,被替换的块需写回主存,增加了 Cache 的复杂性
其他
- 设CPU共有16根地址线,8根数据线,存储器与CPU的连线如下图所示:
请推测系统程序区和用户程序区的地址空间。8000H—87FFH 和 8800H—8BFFH - 若使用汉明纠错码(Hamming Code)来确定512位数据字中单个错误,需要(10)位校验码。
- 主存贮器和CPU之间增加cache的目的是(解决CPU和主存之间的速度匹配问题)。
- 设有一个四体低位交叉存储器中,每个体的容量为256K×64位,总线传送周期为100ns,存取周期为400ns,四个存储体流水线工作,CPU连续读4个字所需的最多时间是(700ns)。
- 某计算机的cache共有16块,采用二路组相联映射方式(即每组2块)、每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应该装入到cache的组号是(4)。解:cache 一共 8 组,每组 2 块。主存按字节编址,129 号单元位于第 5 块上,该块编号为4(从 0 开始)(129 / 32 = 4)。主存块号 i 与 Cache 组号 j 映射关系为:j=i mod 8,所以 j=4 mod 8 = 4,即 129 号单元装入到第 5 组,组号为 4 。
- 存取周期是指(存储器进行连续读或写操作允许的最短间隔时间)
- 在程序的执行过程中,Cache与主存的地址映射是由(由硬件自动完成的)。
- 若主存每个存储单元为16位,则(其数据线是16根)。
- 下列有关RAM和ROM得叙述中正确的是(仅I和II)。
I RAM是易失性存储器,ROM是非易失性存储器
II RAM和ROM都是采用随机存取方式进行信息访问
III RAM和ROM都可用做Cache
IV RAM和ROM都需要进行刷新III:Cache 一般是 SRAM
IV :动态RAM需要进行刷新 - 某SRAM芯片,存储容量为64K×16位,该芯片的地址线和数据线数目为(16,16)。存储容量 = 2^地址线数 * 数据线位数
课后题
- 设CPU共有16根地址线,8根数据线,存储器与CPU的连线如下图所示:
解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。
- 主存:主存储器,用于存放正在执行的程序和数据。CPU可以直接进行随机读写,访问速度较高。
- 辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。
- Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。
- RAM:半导体随机存取存储器,主要用作计算机中的主存。
- SRAM:静态半导体随机存取存储器。
- DRAM:动态半导体随机存取存储器。
- ROM:掩膜式半导体只读存储器。由芯片制造商在制造时写入内容,以后只能读出而不能写入。
- PROM:可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。
- EPROM:紫外线擦写可编程只读存储器。需要修改内容时,现将其全部内容擦除,然后再编程。擦除依靠紫外线使浮动栅极上的电荷泄露而实现。
- EEPROM:电擦写可编程只读存储器。
- CDROM:只读型光盘。
- 计算机中哪些部件可以用于存储信息?按速度、容量和价格/位排序说明。
- 计算机中寄存器、Cache、主存、硬盘可以用于存储信息。
- 按速度由高至低排序为:寄存器、Cache、主存、硬盘;
- 按容量由小至大排序为:寄存器、Cache、主存、硬盘
- 按价格/位由高至低排序为:寄存器、Cache、主存、硬盘。
- 说明存取周期和存取时间的区别。
- 存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。即:存取周期 = 存取时间 + 恢复时间
- 什么是存储器的带宽?若存储器的数据总线宽度为 32 位,存取周期为 200ns ,则存储器的带宽是多少?
- 存储器的带宽指单位时间内从存储器进出信息的最大数量。
- 存储器带宽 = 1/200ns × 32 位 = 160M 位 / 秒 = 20MB/ 秒 = 5M 字 / 秒(字长 32 位)
- 某机字长为 32 位,其存储容量是 64KB ,按字编址它的寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。
- 存储容量是 64KB 时,按字节编址的寻址范围就是 64K , 如按字编址,其寻址范围为: 64K /( 32 /8 )= 16K (字长 32 位)
- 存储容量是 64KB 时,按字节编址的寻址范围就是 64K , 如按字编址,其寻址范围为: 64K /( 32 /8 )= 16K (字长 32 位)
- 一个容量为 16K × 32 位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?
1K × 4 位, 2K × 8 位, 4K × 4 位, 16K × 1 位, 4K × 8 位, 8K × 8 位- 地址线和数据线的总和 = 14 + 32 = 46 根;
- 选择不同的芯片时, 各需要的片数为:1K × 4 : ( 16K × 32 ) / ( 1K × 4 ) = 16 × 8 = 128 片2K × 8 : ( 16K × 32 ) / ( 2K × 8 ) = 8 × 4 = 32 片4K × 4 : ( 16K × 32 ) / ( 4K × 4 ) = 4 × 8 = 32 片16K × 1 : ( 16K × 32 ) / ( 16K × 1 ) = 1 × 32 = 32 片4K × 8 : ( 16K × 32 ) / ( 4K × 8 ) = 4 × 4 = 16 片8K × 8 : ( 16K × 32 ) / ( 8K × 8 ) = 2 × 4 = 8 片
- 一个 8K × 8 位的动态 RAM 芯片,其内部结构排列成 256 × 256 形式,存取周期为 0.1 μ s 。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?
- 采用集中刷新方式刷新间隔为:2ms ,其中刷新死时间为: 256 × 0.1 μ s=25.6 μ s
- 采用分散刷新方式刷新间隔为:256 ×( 0.1 μ s+ × 0.1 μ s ) =51.2 μ s
- 采用异步刷新方式刷新间隔为:2ms
- 设有一个 64K × 8 位的 RAM 芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。
- 存储基元总数 = 64K × 8 位 = 512K 位 = 2^19 位;
- 设地址线根数为 a ,数据线根数为 b ,则片容量为: 2^a × b = 2^19 ; b = 2^(19-a);
a = 19 , b = 1 ,总和 = 19+1 = 20 ;
a = 18 , b = 2 ,总和 = 18+2 = 20 ;
a = 17 , b = 4 ,总和 = 17+4 = 21 ;
a = 16 , b = 8 ,总和 = 16+8 = 24 ;
地址线 = 19 根,数据线 = 1 根;或地址线 = 18 根,数据线 = 2 根。
- 某 8 位微型机地址码为 18 位,若使用 4K × 4 位的 RAM 芯片组成模块板结构的存储器,试问:
( 1 )该机所允许的最大主存空间是多少?
( 2 )若每个模块板为 32K × 8 位,共需几个模块板?
( 3 )每个模块板内共有几片 RAM 芯片?
( 4 )共有多少片 RAM ?
( 5 ) CPU 如何选择各模块板?- 该机所允许的最大主存空间是 : 2^18 × 8 位 = 256K × 8 位 = 256KB
- 模块板总数 = 256K × 8 / 32K × 8 = 8 块
- 板内片数 = 32K × 8 位 / 4K × 4 位 = 8 × 2 = 16 片
- 总片数 = 16 片 × 8 = 128 片
- CPU 通过最高 3 位地址译码 输出 选 择模板 ,次高 3 位地址译码 输出选择芯片 。地址格式分配如下:
- 写出 1100 、 1101 、 1110 、 1111 对应的汉明码。
- 已经接收到下列汉明码,分别写出它们所对应的欲传送代码
(1)1100000(偶配置)
(2)0011001(奇配置) - 某机字长 16 位,常规的存储空间为 64K 字,若想不改用其他高速的存储芯片,而使访存速度提高到 8 倍,可采取什么措施?画图说明。
- 若想不改用高速存储芯片,而使访存速度提高到 8 倍,可采取 八 体交叉存取技术, 8 体交叉访问时序 如下图 :
- 若想不改用高速存储芯片,而使访存速度提高到 8 倍,可采取 八 体交叉存取技术, 8 体交叉访问时序 如下图 :
- 一个 4 体低位交叉的存储器,假设存储周期为 T,CPU 每隔 1/4 存取周期启动一个存储体,试问依次访问 64 个字需多少个存取周期?
- 4 体低位交叉的存储器的总线传输周期为 t,t=T/4,依次访问64个字所需时间为: Time = T + (64-1)t = T+ 63T/4 = 16.75T
- 什么是 “ 程序访问的局部性 ” ?存储系统中哪一级采用了程序访问的局部性原理?
- 时间局部性:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;
- 空间局部性:这些被访问的程序和数据往往集中在一小片存储区;
- 在访问顺序上,指令顺序执行比转移执行的可能性大 ( 大约 5:1 ) 。
- 存储系统中 Cache———主存层次采用了程序访问的局部性原理。
- 计算机中设置Cache的作用是什么?能否将Cache的容量扩大,最后取代主存,为什么?
- 计算机中设置Cache的作用是解决CPU 和主存速度不匹配问题。
- 不能将Cache的容量扩大取代主存,原因是:(1) Cache容量越大成本越高,难以满足人们追求低价格的要求;(2)如果取消主存,当CPU访问Cache失败时,需要将辅存的内容调入 Cache 再由 CPU 访问,造成 CPU 等待时间太长,损失更大。
- 设主存容量为256K字,Cache容量为2K字,块长为4。
(1) 设计Cache地址格式,Cache中可装入多少块数据?
(2)在直接映射方式下,设计主存地址格式。
(3)在四路组相联映射方式下,设计主存地址格式。
(4)在全相联映射方式下,设计主存地址格式。
(5)若存储字长为32位,存储器按字节寻址,写出上述三种映 - 假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知Cache的存取周期为30ns,主存的存取周期为150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试
问该系统的性能提高了多少倍?- Cache 被访问命中率为:4800/(4800+200)=24/25=96%,则 Cache-主存系统的平均访问时间为:ta=0.96 30ns+(1-0.96) 150ns=34.8ns
- Cache-主存系统的访问效率为:e = tc/ta 100% = 30/34.8 100% = 86.2%
- 性能为原来的 150ns/34.8ns = 4.31 倍,即提高了 3.31 倍。
- 一个组相连映射的CACHE由64块组成,每组内包含4块。主存包含4096块,每块由128字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。
- 主存共分4096/16=256区,每区16块
- 主存容量为:4096*128=21字,主存地址19位,地址格式如下:
- 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试问主存地址为ABCDEH的存储单元在 Cache 中的什么位置?
- 设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即 Cache每组内共有4个字块)的Cache组织。
(1)画出主存地址字段中各段的位数。
(2)设Cache的初态为空,CPU依次从主存第0,1,2,…,89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?
(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍? 提高访存速度可采取三种措施:
I/O地址码的编址方式有哪两种?
- 统一编址:将 I/O 地址看作存储器地址的一部分
- 不统一编址:I/O 地址和存储器地址分开,所有对 I/O 设备的访问必须有专用的 I/O 指令。
- I/O与主机交换信息有哪几种控制方式?各有何特点?
- 程序查询方式:其特点是主机与 IO 串行工作。CPU启动I/O后,,若设备准备就绪,CPU便转入处理 I/O 与主机间传送信息的程序;若设备未做好准备,则 CPU 反复查询,“踏步”等待直到 I/O 准备就绪为止。可见这种方式CPU效率很低。
- 程序中断方式:其特点是主机与 IO 并行工作。CPU 启动 I/O 后,不必时刻查询 I/O 是否准备好,而是继续执行程序。当 I/O 准备就绪时,向 CPU 发中断请求信号,CPU 在适当的时候响应 I/O 的中断请求,暂停现行程序为 I/O 服务。这种方式消除了“踏步”现象,提高了CPU的效率。
- DMA方式:其特点是主机与 I/O 并行工作,主存与 I/O 之间有一条直接数据通路。CPU 启动 I/O 后,不必查询 I/O 是否准备好,当 I/O 准备就绪后,发出 DMA 请求,此时 CPU 不直接参与 I/O 和主存间的信息交换,只是把外部总线((地址线、数据线和有关的控制线)的使用权暂时交赋予 DMA,仍然可以完成自身内部的操作(如加法、移位等),故不必中断现行程序,只需暂停一个存取周期访存(即周期挪用),CPU的效率更高
- 什么是I/O接口,它与端口有何区别?为什么要设置I/O接口,I/O接口如何分类。
- I/O 接口通常是指主机与 I/O 设备之间设置的一个硬件电路及其相应的软件控制。
- 端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分布称为数据、控制、状态端口。若干个端口加上相应的控制逻辑才能组成接口。
- 为什么要设置 I/O 接口
- 实现设备选择
- 实现数据缓冲,达到 I/O 设备与 CPU 之间的速度匹配
- 实现数据串-并格式转换
- 实现电平转换
- 传送控制命令
- 监视设备工作状态,保存状态信息
- 分类
- 按数据传送方式:并行接口、串行接口
- 按功能选择的灵活性:可编程接口、不可编程接口
- 按通用性:通用接口、专用接口
- 按数据传送的控制方式:中断接口、DMA 接口
- 程序查询方式和程序中断方式都由程序实现外围设备的输入输出,它们有何不同?
- 程序查询方式是用户在程序中安排一段输入输出程序,它由 I/O 指令、测试指令和转移指令等组成。CPU 一旦启动 I/O 后,就进入这段程序,时刻查询 I/O 准备的情况,若未准备就绪就踏步等待;若准备就绪就实现传送。在输入输出的全部过程中,CPU 停止自身的操作。
- 程序中断方式虽也要用程序实现外部设备的输入、输出,但它只是以中断服务程序的形式插入到用户现行程序中。即 CPU 启动 I/O 后,继续自身的工作,不必查询 I/O 的状态。而 I/O 被启动后,便进入自身的准备阶段,当其准备就绪时,向 CPU 提出中断请求,此时若满足条件,CPU 暂停现行程序,转入该设备的中断服务程序,在服务程序中实现数据的传送。
- 以I/O设备的中断处理过程为例,说明一次程序中断的全过程。
- 由CPU发启动 I/O 设备指令,将接口中的 B 置“1”,D 置“0”
- 接口启动输入设备开始工作
- 输入设备将数据送入数据缓冲寄存器
- 输入设备向接口发出“设备工作结束”信号,将 D 置为“1”,B 置为“0”,标志设备准备就绪
- 当设备准备就绪(D=1),且本设备未被屏蔽(MASK=O)时,在指令执行阶段的结束时刻,由 CPU 发出中断查询信号
- 设备中断请求触发器 INTR 被置为“1”’,标志设备向 CPU 提出中断请求。与此同时,INTR 送至排队器,进行中断判优
- 若 CPU 允许中断(EINT=1),设备又被排队选中,即进入中断相应阶段,由中断响应信号 INTA 将排队器输出送至编码器形成向量地址
- 向量地址送至 PC,作为下一条指令的地址
- 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至 CPU 的通用寄存器,再存入主存相关单元
- 中断服务程序的最后一条指令是中断返回指令,当其执行结束后,即中断返回至原程序的断点处。至此,一个完整的程序中断处理过程即告结束
- 在DMA方式中有没有中断请求,为什么?DMA接口电路中应设置哪些硬件。
- 有中断请求,只是数据不通过CPU。DMA控制器在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。
- 硬件:主存地址寄存器(AR)、字计数器(WC)、数据缓冲寄存器(BR) 、DMA控制逻辑、中断机构、设备地址寄存器(DAR)
- DMA方式中的中断请求和程序中断中的中断请求有何区别?
- 从数据传送看,程序中断方式靠程序传送,DMA 方式靠硬件传送
- 从 CPU 响应时间看,程序中断方式是在一条指令执行结束时响应,而 DMA 方式可在指令周期内的任一存取周期结束时响应。
- 程序中断方式有处理异常事件的能力,而 DMA 方式没有这种能力,主要用于大批数据的传送,如硬盘存取、图像处理、高速数据采集系统等,可提高数据吞吐量
- 程序中断方式需要中断现行程序,故需保护现场;DMA 方式不中断现行程序,无须保护现场
- DMA 的优先级比程序中断的优先级高
- DMA和主存交换数据时有哪三种方法?分别简述。
- 停止CPU访问主存:当外设要求传送一批数据时,由 DMA 接口向 CPU 发一个停止信号,要求 CPU 放弃地址线、数据线和有关控制线的使用权。DMA接口获得总线控制权后,开始进行数据传送,在数据传送结束后,DMA 接口通知 CPU 可以使用主存,并把总线控制权交回给 CPU。
- 周期挪用:每当 I/O 设备发出 DMA 请求时,I/O 设备便挪用或窃取总线占用权一个或几个主存周期,而 DMA 不请求时,CPU仍继续访问主存。
- DMA 与 CPU 交替访问:不需要总线使用权的申请、建立和归还过程。CPU 和 DMA 接口各自有独立的访存地址寄存器、数据寄存器和读/写信号。CPU 既不停止主程序的运行也不进入等待状态,即完成了 DMA 的数据传送。
- 简述 DMA 的工作过程
- 预处理:主存起始地址 -> DMA;设备地址 -> DMA;传送数据个数 -> DMA;启动设备
- 数据传送:继续执行主程序;同时完成—批数据的传送(数据块)
- 后处理:中断服务程序;做 DMA 结束处理
- 继续执行主程序
- DMA接口的类型有哪几种?
- 选择型 DMA 接口
- 链式多路型 DMA 接口
- 独立请求多路型 DMA 接口
其它
- DMA方式中,周期窃取是窃取一个(存取周期)。
- 以下叙述,(一个更高级的中断请求一定可以中断比其级别低的另一个中断处理程序的执行。)是错误的。
- 采用 DMA 方式传送数据时,每传送一个数据要占用(一个存储周期)的时间。
- DMA数据的传送是以(数据块)为单位进行。
- DMA方式是指数据在(内存)与(I/O设备)之间直接数据传送。
- 主机与设备交换信息的控制方式中,程序查询方式主机与设备是(串行工作)。
- 主机与设备交换信息的控制方式中,(DMA)方式主机与设备是并行工作的,且主程序与信息传送是并行进行的。
- 某计算机的I/O设备采用异步串行的方式传送字符信息,字符信息的格式为:一位起始位、七位数据位、一位校验位、一位停止位。若要求每秒传送480个字符,那么该I/O设备的数据传送速率应该为(4800)bps。
- DMA方式的接口电路中有程序中断部件,其作用是(向CPU提出传输结束)。
课后题
简要说明 CPU 与 I/0 之间传递信息可采用哪几种联络方式?它们分别用于什么场合?
- 立即响应方式:CPU 的 I/O 指令一到,I/O 设备立即响应,无需特殊联络信号。用于工作速度十分缓慢的 I/O 设备。
- 应答信号联络:在交换信息前,I/O设备与 CPU 各自完成自身的任务,一旦出现联络信号,彼此才准备交换信息。用于 I/O 设备与主机速度不匹配时。
- 同步时标联络:专用电路产生同步时标控制同步工作。用于 I/O 设备与 CPU 工作速度完全同步。
- 说明中断向量地址和入口地址的区别和联系。
- 区别:向量地址是硬件电路(向量编码器)产生的中断源的内存地址编号,中断入口地址是中断服务程序首址。
- 联系:中断向量地址可理解为中断服务程序入口地址指示器(入口地址的地址),通过它访存可获得中断服务程序入口地址。(两种方法:在向量地址所指单元内放一条 JMP 指令;主存中设向量地址表。)
- 在什么条件下,I/0 设备可以向 CPU 提出中断请求?
- I/0 设备向 CPU 提出中断请求的条件是:I/0 接口中的设备工作完成状态为 1(D=1),中断屏蔽码为 0 (MASK=0),且 CPU 查询中断时,中断请求触发器状态为 1(INTR=1)。
- 什么是中断允许触发器?它有何作用?
- 中断允许触发器是 CPU 中断系统中的一个部件,他起着开关中断的作用(即中断总开关,则中断屏蔽触发器可视为中断的分开关)。
- 在什么条件和什么时间,CPU 可以响应 I/0 的中断请求?
- CPU 响应 I/0 中断请求的条件和时间是:当中断允许状态为 1(EINT=1),且至少有一个中断请求被查到,则在一条指令执行完时,响应中断。
- 某系统对输入数据进行取样处理,每抽取一个输入数据,CPU 就要中断处理一次,将取样的数据存至存储器的缓冲区中,该中断处理需 P 秒。此外,缓冲区内每存储 N 个数据,主程序就要将其取出进行处理,这个处理需 Q 秒。试问该系统可以跟踪到每秒多少次中断请求?
- 这是一道求中断饱和度的题,要注意主程序对数据的处理不是中断处理,因此Q秒不能算在中断次数内。
- N个数据所需的处理时间 = P×N+Q 秒
- 平均每个数据所需处理时间 = (P×N+Q)/N 秒
- 求倒数得:该系统跟踪到的每秒中断请求数 = N / (PXN+Q)次。
- 在程序中断方式中,磁盘申请中断的优先权高于打印机。当打印机正在进行打印时,磁盘申请中断请求。试问是否要将打印机输出停下来,等磁盘操作结束后,打印机输出才能继续进行?为什么?
- 这是一道多重中断的题,由于磁盘中断的优先权高于打印机,因此应将打印机输出停下来,等磁盘操作结束后,打印机输出才能继续进行。因为打印机的速度比磁盘输入输出的速度慢,并且暂停打印不会造成数据丢失。
- 什么是多重中断?实现多重中断的必要条件是什么?
- 多重中断是指:当 CPU 执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU 暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。
- 实现多重中断的必要条件是:在现行中断服务期间,中断允许触发器为 1,即开中断。
- CPU 对 DMA 请求和中断请求的响应时间是否一样?为什么?
- 响应中断请求是在每条指令执行周期结束的时刻,而响应 DMA 请求是在存取周期结束的时刻。
- DMA 的工作方式中,CPU 暂停方式和周期挪用方式的数据传送流程有何不同?画图说明。
- CPU 暂停方式
- 周期挪用方式
- DMA 与 CPU 交替访问
- CPU 暂停方式
试从下面七个方面比较程序查询、程序中断和 DMA三种方式的综合性能。
(1)数据传送依赖软件还是硬件。
(2)传送数据的基本单位。
(3)并行性。
(4)主动性。
(5)传输速度。
(6)经济性。
(7) 应用对象- 程序查询、程序中断方式的数据传送主要依赖软件,DMA 主要依赖硬件。(注意:这里指主要的趋势)
- 程序查询、程序中断传送数据的基本单位为字或字节,DMA为数据块。
- 程序查询方式传送时,CPU 与I/0设备串行工作;程序中断方式时,CPU 与I/0设备并行工作,现行程序与I/0传送串行进行;DMA方式时,CPU与I/0设备并行工作,现行程序与I/0传送并行进行。
- 程序查询方式时,CPU主动查询Ⅰ/0设备状态;程序中断及DMA方式时,CPU被动接受I/0中断请求或DMA 请求。
- 程序中断方式由于软件额外开销时间比较大,因此传输速度最慢;程序查询方式软件额外开销时间基本没有,因此传输速度比中断快;DMA方式基本由硬件实现传送,因此速度最快;注意:程序中断方式虽然CPU运行效率比程序查询高,但传输速度却比程序查询慢。
- 程序查询接口硬件结构最简单,因此最经济;程序中断接口硬件结构稍微复杂一些,因此较经济;DMA控制器硬件结构最复杂,因此成本最高;
- 程序中断方式适用于中、低速设备的 I/0 交换;程序查询方式适用于中、低速实时处理过程;DMA方式适用于高速设备的 I/0 交换
第 6 章 计算机的运算方法
超星题目
说明浮点加/减法运算步骤。
- 对阶:使两操作数的小数点位置对齐,小阶向大阶看齐
- 尾数求和:将对阶之后的两尾数按照定点加减运算规则求和(差)
- 规格化:求和之后的尾数规格化
- 左规:00.0xx…… 或者 11.1xx…… ,尾数左移一位,阶码减 1
- 右规:01.xx…… 或者 10.xx…… ,尾数右移一位,阶码加 1
- 舍入:考虑尾数右移时丢失的数值位
- “0 舍 1 入”法:尾数右移时,被移去的最高数值位为 0 则舍去;被移去的最高数值位为 1 则在尾数的末位加 1。注意可能使尾数再次溢出,此时需要再右规。
- “恒置 1 ”法:尾数右移时,右移后的尾数末位恒置 1
- 溢出判断
- 阶码 [j]补 = 01,xxx…… 上溢
- 阶码 [j]补 = 10,xxx…… 下溢
- 说明浮点乘/除法运算的基本步骤。
- 阶码运算
- 用移码运算 [jx + jy]移 = [jx]移 + [jy]补 [jx - jy]移 = [jx]移 + [-jy]补
- 溢出判断:运算结果移码的最高符号位为 1
- 低位符号位为 0 :上溢
- 低位符号位为 1 :下溢
- 尾数运算
- 舍入:负数补码:
- 丢失的各位均为 0 时,不必舍入
- 丢失的各位数中的最高位为 0 时,且以下各位不全为 0 ,或丢弃的各位数中的最高位为 1 ,且以下各位均为 0 时,丢去被丢失的各位
- 丢失的各位数中的最高位为 1 ,且以下各位又不全为 0 时,在保留尾数的最末位加 1 修正。
- 舍入:负数补码:
- 阶码运算
- IEEE 754 表示
- 数符 + 阶码(包含符号位,移码表示) + 尾数(隐藏表示最高位 1 )
- 补码乘法
- 补码一位乘运算规则
- Booth 算法(被乘数、乘数符号任意)注意答案最后一位清零
- 补码除法
- 余数补码与除数补码同号:上商“1”;不同号:上商“0”
- 末位商恒置“1”
其它
- 在补码加减交替除法中,参加操作的数是(补码),商符(在形成商值的过程中自动形成)。
- 在浮点数中,当数的绝对值太大,以至于超过所能表示的数据时,称为浮点数的(上溢)。
- 若浮点数用补码表示,则判断运算结果是否为规格化数的方法是(数符与尾数小数点后第一位数字相异为规格化数)。
- 设寄存器内容为10000000,若它等于-0,则为(原码)(请选择更准确的选项)。
- 浮点数的表示范围和精度取决于(阶码的位数和尾数的位数)。
- 在整数定点机中,下面说法正确的是(原码、反码和补码都能表示-1, 且这三种码表示数的范围不相同。)。
- 在定点机中执行算数运算时会产生溢出,其原因是(运算结果无法表示)。
- 计算机中,表示地址时采用(无符号数)。
- 在浮点数加减法对阶的过程中,(将较小的阶向较大的阶看齐)。
- 在补码除法中,根据(余数的符号与除数的符号相同)上商“1”。
课后题
第 7 章 指令系统
超星题目
试比较基址寻址和变址寻址,并举例说明其适用的场合。
- 都可用来扩大操作数的寻址范围
- 基址寻址只要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的 A 是可变的。在多道程序中极为有用。
- 在变址寻址中,变址寄存器的内容是由用户设定的,在程序的执行过程中其值可变,而指令字中的 A 是不可变的。主要用于处理数组问题,适合编址循环程序。
- 任意写出五种寻址方式,令EA为有效地址,A为形式地址,写出这五种寻址方式计算有效地址的表达式。
- 立即寻址
- 直接寻址:EA = A
- 隐含寻址
- 间接寻址:EA = (A)
- 寄存器寻址:EA = R
- 寄存器间接寻址:EA = (R)
- 基址寻址:EA = A + (BR)
- 变址寻址:EA = A + (IX)
- 相对寻址:EA = (PC) + A
- 堆栈寻址
- 指令中有哪些字段?各有何作用?如何确定各字段的位数?
- 指令中有三种字段:操作码字段、寻址特征字段和地址码字段。
- 操作码字段指出机器完成某种操作,其位数取决于指令系统的操作种类。
- 寻址特征字段指出该指令以任何方式寻找操作数的有效地址,其位数取决于寻址方式的种类。
- 地址码字段和寻址特征字段共同指出操作数或指令的有效地址,其位数与寻址范围有关。
- RISC和CISC指令系统各自的特点。
- RISC
- 组合逻辑控制
- 指令数、寻址方式和指令格式种类较少
- 通用寄存器多
- 寄存器窗口重叠技术
- 大多数指令在一个时钟周期内完成
- 逻辑简单,设计出错可能性小,可靠性高
- CISC
- 微程序控制
- 指令丰富、功能强大
- 寻址方式灵活
- RISC
其它
- 堆栈寻址方式中,设A为累加器,SP为堆栈指示器,MSP为SP指示的栈顶单元,如果进栈操作的动作顺序是(SP)-1→SP,(A)→MSP ,那么出栈操作的动作顺序应为((SP)+1→SP ,MSP→(A))
- 单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用(隐含寻址方式)。
- 指令系统采用不同寻址方式的目的是(缩短指令长度,扩大寻址空间,提高编程灵活性)。
- 下列关于 RISC 的叙述中,错误的是 (RISC 普遍采用微程序控制器)。
- 设相对寻址的转移指令占3个字节,第一字节为操作码,第二字节为相对位移量(补码表示)的低8位,第三字节是相对位移量(补码表示)的高8位。每当CPU从存储器取一个字节时,即自动完成(PC)+1→PC。若PC当前值为128(十进制),要求转移到110(十进制),则转移指令的第二、三字节的机器代码又是多少?
(EBH,FFH) - 某计算机的指令字长为16位,采用扩展操作码,操作数地址取4位。假设该指令系统已有X条三地址指令,Y条二地址指令,没有零地址指令,问最多还可以有几条一地址指令?
( [ (2 ^ 4 - X ) 2 ^ 4 - Y ] 2 ^ 4) - 设变址寄存器为X,形式地址为D,某机器具有先变址再间址的寻址方式,则这种寻址方式的有效地址是(EA =((X) + D))。
- 程序控制类指令的功能是(改变程序执行的顺序)。
- 若数据在存储器中采用以低字节地址为字地址的存放方式,则十六进制数12345678H,按照字节地址由小到大的顺序依次存为(78563412)。
- 设机器字长为16位,存储器按字节编址,CPU读取一条单字长指令后,PC自动加(2)。
课后题
第 8 章 CPU 的结构和功能
超星题目
CPU有哪些功能?画出其内部的组成框图,并说明每个部件的作用。
- 指令控制、操作控制、时间控制、数据加工、处理中断
- 寄存器:专用于存放当前指令的地址
- CU:能发出各种操作命令序列的控制部件(产生全部指令的微操作命令序列)
- ALU:完成算术运算和逻辑运算
- 中断系统:处理异常情况和特殊请求
- 影响流水线性能的因素有哪些?分别由什么原因导致的?分别采用什么方法解决?
- 结构相关:当指令在重叠执行的过程中,不同指令争用同一功能部件产生资源冲突时发生的,又有资源相关之称。
- 解决办法Ⅰ:插入暂停周期(“流水线气泡”或“气泡”)
- 解决方法Ⅱ:设置相互独立的指令存储器和数据存储器或设置相互独立的指令 Cache 和数据 Cache。
- 解决方法III:指令预取技术:在 CPU 中设置指令队列,将指令预先读取到指令队列中排队。在执行阶段,存储器空闲时,将指令预先取出。
- 数据相关:当相关的指令靠得足够近时,它们在流水线中的重叠执行或者重新排序会改变指令读/写操作数的顺序,使之不同于它们非流水实现时的顺序,则发生了数据相关冲突。
- 可分为写后读相关(RAW)、读后写相关(WAR)、写后写相关(WAW)
- 解决办法Ⅰ:后推法(插入停顿):遇到数据相关时,停顿后继指令的运行,直到前面指令的结果已经生成。
- 解决方法Ⅱ:定向技术(旁路技术、相关专用通路技术):不必等待某条指令执行结果送回寄存器之后,再从寄存器中取出该结果,作为下一条指令的源操作数,而是直接将执行结果送到其他指令所需要的地方。
- 解决方法III:指令调度:(可以静态调度,也可以动态调度): 让编译器重新组织指令顺序来消除冲突,这种技术称为指令调度或流水线调度。
- 控制相关:主要由转移指令引起。
- 尽早判断转移是否发生,尽早生成转移目标地址
- 预取转移成功或不成功两个控制流方向上的目标指令
- 加快和提前形成条件码
- 提高转移方向的猜测率
- 结构相关:当指令在重叠执行的过程中,不同指令争用同一功能部件产生资源冲突时发生的,又有资源相关之称。
- 流水线性能评价指标有吞吐率、加速比、效率。各自的定义是什么?
- 吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。
- 加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。
- 效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线设备的利用率。
- 吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。
- 某机有五个中断源 L0、L1、L2、L3、L4,按中断响应的次序由高向低排序为L0→L1→L2→L3→L4,现要求中断处理次序为L1→L3→L4→L0→L2,写出各中断源的屏蔽字。
- 按照中断处理次序讨论 L1→L3→L4→L0→L2
- L1:优先级最高:全 1
- L3:L1 更高,L1 = 0
- L4:L1,L3 更高,L1 = L3 = 0
- L0:L1,L3,L4 更高,L1 = L3 = L4 = 0
- L2:L1,L3,L4,L0 更高,L1 = L3 = L4 = L0 = 0
- 其他位为 1
- 什么是中断?中断系统需要解决哪些问题?
- 计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊情况的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,这就是“中断”。
- 设计中断系统需解决的问题:
- 各中断源如何向 CPU 提出中断请求
- 当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源的请求
- CPU 在什么条件、什么时候、以什么方式来响应中断
- CPU 响应中断后如何保护现场
- CPU 响应中断后,如何停止原程序的执行而转入中断服务程序的入口地址
- 中断处理结束后,CPU 如何恢复现场,如何返回到原程序的间断处
- 在中断处理过程中又出现了新的中断请求,CPU 该如何处理
- CPU响应中断的条件和时间是什么?
- 条件:允许中断触发器 EINT = 1,且有中断请求(中断请求标记触发器 INTR = 1)
- 时间:指令执行周期结束后。
- CPU进入中断周期后,完成哪些操作?
- 保护程序断点
- 寻找中断服务程序的入口地址
- 关中断
- 什么是中断隐指令?它有哪些功能。
- 中断隐指令指 CPU 响应中断之后,经过某些操作,转去执行中断服务程序的一种操作。中断隐指令是指令系统中没有的指令,它由 CPU 在中断响应周期自动完成。
- 功能
- 保护程序断点
- 寻找中断服务程序的入口地址
- 关中断
- 什么是中断屏蔽字,它的作用是什么?
- 对应每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成了一个屏蔽寄存器,屏蔽寄存器的内容称为屏蔽字。屏蔽字与中断源的优先级别时一一对应的。
- 功能:在中断服务程序中设置适当的屏蔽字,能起到对优先级别不同的中断源的屏蔽作用。
其他
- 在中断周期中,由(硬件自动完成)将允许中断触发器置“0”。
- 根据存控内排队器设置的优先原则,下列对主存的请求源优先级别排序正确的是(外设请求>写数请求>读数请求>读指令请求)。
- 关于中断向量地址,描述最准确的是(中断服务例行程序入口地址的指示器)。
- 某中断系统中,每抽取一个输入数据就要中断CPU一次,中断处理程序接收取样的数据,并将其保存到主存缓冲区内。该中断处理需要X秒。另一方面,缓冲区内每存储N个数据,主程序就将其取出进行处理,这种处理需要Y秒,因此该系统可以跟踪到每秒(N / (NX + Y))次中断请求。
- 流水CPU 是由一系列叫做“段”的处理线路所组成,理想情况下,和具有m个并行部件的CPU相比,一个m段流水CPU(具备同等水平的吞吐能力)。
- 某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓存时间)分别是 90ns、80ns、70ns 和 60ns,则该计算机的 CPU 时钟周期至少是(90ns)。
- 下列不会引起指令流水阻塞的是(数据旁路)。
- CPU响应中断时,进入“中断周期”,采用硬件方法保护并更新程序计数器PC内容,而不是由软件完成,主要是为了(能进入中断处理程序,并能正确返回源程序)。
- 中断标志触发器是用于(指示CPU是否进入中断周期)。
- CPU中的译码器主要用于(指令译码)。
课后题
什么是指令周期?指令周期是否有一个固定值?为什么?
- 指令周期是指取出并执行完一条指令所需的时间。
- 由于计算机中各种指令执行所需的时间差异很大,因此为了提高 CPU 运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。
- 画出指令周期的流程图,分别说明图中每个子周期的作用。
- 取指周期: 取指令
- 间址周期: 取有效地址
- 执行周期: 取操作数(当指令为访存指令时)
- 中断周期: 保存程序断点
- 存储器中有若干数据类型:指令代码、运算数据、堆栈数据、字符代码和BCD码,计算机如何识别这些代码?
- 指令代码是CPU在取指阶段从存储器中取出的信息。CPU在执行阶段从存储器中取出的可以是运算数据、字符代码或BCD码,具体是哪一个信息取决于指令的操作码。堆栈数据是根据堆栈指示器SP所指示的地址访存时所获得的的数据。
- 什么叫系统的并行性?粗粒度并行和细粒度并行有什么区别?
- 所谓并行性包含同时性和并发性。同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或多个事件在同一时间段发生。即在同一时刻或同一时间段内完成两个或两个以上性质相同或性质不同的功能,只要在时间上存在相互重叠,就存在并行性。
- 并行性又分为粗粒度并行和细粒度并行两类。粗粒度并行是指在多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般用算法实现。细粒度并行是指在处理机的指令级和操作级的并行性。
- 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪个更能提高处理机速度,为什么?
四级流水更能提高处理机的速度。分析如下:- 假设 IF 、 ID 、 EX 、 WR 每个阶段耗时为 t ,则连续执行 n 条指令
- 采用二级流水线时,耗时为: 4t+(n-1)2t=(2n+2)t
- 采用四级流水线时,耗时为: 4t+(n-1)t=(n+3)t
- 在 n>1 时, n+3<2n+2 ,可见四级流水线耗时比二级流水线耗时短,因此 更能提高处理机速度。
- 在五个功能段的流水线中,假设每段执行时间为 10ns,8ns,10ns,10ns,和7ns。对于完成 12 条指令的流水线而言,其加速比为多少?该流水线的实际吞吐率为多少?
- 流水线的时钟周期应按各部操作的最大时间来考虑,即应取10ns。更具流水线时空图,第一条指令出结果需要5个时钟周期,当流水线满载时,每一个时钟周期可以出一个结果,即执行完一条指令。完成
12 条指令需要16个时钟周期,故实际吞吐率为:
12 /(10ns 16)= 0.75 10 ^ 8 条指令/秒,对于本题五级流水线而言,处理 12 条指令所需的时钟周期数为 T = 5 +(12-1)= 16 个,而非流水线处理12 条指令需要 5 * 12=60 个,故该流水线处理器的加速比为 60 / 16 = 3.75.
- 流水线的时钟周期应按各部操作的最大时间来考虑,即应取10ns。更具流水线时空图,第一条指令出结果需要5个时钟周期,当流水线满载时,每一个时钟周期可以出一个结果,即执行完一条指令。完成
- 在中断系统中,INTR、INT、EINT这3个触发器各有何作用?
- INTR—— 中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为 CPU 查询中断及中断排队判优线路提供稳定的中断请求信号 。
- EINT—— 中断允许触发器, CPU 中的中断总开关。当 EINT=1 时,表示允许中断(开中断),当 EINT=0 时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置 。
- INT—— 中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当 INT=1 时,进入中断周期,执行中断隐指令的操作。
- 实现多重中断的条件
- 提前设置“开中断”指令
- 优先级别高的中断源有权中断优先级别低的中断源
- CPU在处理中断过程中,有几种方法找到中断服务程序的入口地址?举例说明。
- 硬件向量法
- 软件查询法
- 中断处理过程中为什么要中断判优?有几种实现方法?若想改变原定的优先顺序,可采取什么措施?
- 中断源的请求是随机的,在某一时刻可能有多个中断源提出请求,而 CPU 只能响应一个,故必须中断判优,以解决响应的优先次序。
- 中断判优有两种方法实现:硬件排队和软件排队。前者用组合逻辑电路实现,后者用程序优先级别(从高到低)顺序查询各中断源,以实现排队。
- 欲想改变优先顺序,可采用屏蔽技术,重新设置屏蔽字,封锁级别高的请求源,开放级别低的请求源。
- 中断处理过程中“保护现场”需完成哪些任务?如何实现?
- 保存程序的断点和通用寄存器及状态寄存器的内容
- 可在中断服务程序的起始部分安排若干条指令,将寄存器的内容存到存储器中保存或用进栈指令将各存储器的内容推入堆栈保存,即进程序中断时间的“现场”保护起来。
- 现有 A、B、C、D 4 个中断源,其优先级由高到低按 A→B→C→D 顺序排列。若中断服务程序的执行时间为 20μs,根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。
- 设某机有5个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高到低排序为L0→L1→L2→L4,现要求中断处理次序改为L1→L4→L2→L0→L3,根据下面的格式,写出各中断源的屏蔽字。
- 设某机配有A、B、C3台设备,其优先级按A→B→C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下。按下图所示时间轴给出的设备请求中断时刻,画出CPU执行程序的轨迹、设A、B、C中断服务程序的执行时间均为20μs
- 设某机3个中断源,其优先级按1-2-3降序排列。假设中断处理时间均为r,在下图所示的时间内共发生5次中断请求,图中1代表一级中断源发出中断请求信号,其余类推,画出Cpu执行程序轨迹。
设某机有4个中断源1、2、3、4,其响应优先级按1-2-3-4降序排列,现要求中断处理次序改为4-1-3-2.根据下图给出的4个中断源的请求时刻,画出Cpu执行程序的轨迹。设每个中断源的中断服务程序时间均为20us。
第 9 章 控制单元的功能
超星题目
什么是多级时序?
- 机器周期、节拍(状态)组成了多级时序系统。
- 机器周期:机器周期可以看做是所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度
- 节拍:用时钟信号控制节拍发生器所产生,每个节拍的宽度对应一个时钟周期,是控制计算机操作的最小时间单位
其他
简述微程序设计的思想。
- 将一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的方法来寻找每个微程序中的微指令。由于这些微指令是以二进制代码形式表示的,每位代表一个控制信号,因此,逐条执行每一条微指令,也就相应地完成了一条机器指令的全部操作。
- 什么是水平型微指令,什么是垂直型微指令,说明其各自的特点。
- 水平型微指令:一次能定义并执行多个并行操作的微命令。
- 垂直型微指令:采用类似机器指令操作码的方式,在指令字中,设置微操作码字段,由微操作码规定微指令的功能。
其他
已知带返转指令的含义如下图所示,写出机器在完成带返转指令时,取指阶段和执行阶段所需的全部微操作命令及节拍安排。如果采用微程序控制,需增加哪些 微操作命令?
- 取指阶段 所需的全部微操作命令及节拍安排:
T0 PC→MAR,1 → R (1分)
T1 M(MAR) → MDR,(PC) + 1 → PC(1分)
T2 MDR→IR,OP(IR) → ID (1分) - 由图可见,带返转指令执行阶段需完成将返回地址M+1,存入指令的地址码字段K所指示的存储单元中,从K+1号单元开始才是子程序的真正内容,故执行阶段的微操作命令及节拍安排为:
T0 Ad(IR) → MAR,1 → W (1分)
T1 PC → MDR (1分)
T2 MDR→M(MAR),Ad(IR) + 1 → PC (1分) - 如果采用微程序控制,需增加给出下条微指令地址的命令,即
Ad(CMDR) → CMAR (1分)
OP(IR) → 微地址形成部件 → CMAR (1分)
- 取指阶段 所需的全部微操作命令及节拍安排:
- 假设CPU在中断周期用堆栈保存程序断点,而且进栈时指针减 1,出栈时指针加 1,分别写出组合逻辑控制和微程序控制在完成中断返回指令时,取指阶段和执行阶段所需的全部微操作命令及节拍安排。
- 取址阶段
T0 PC → MAR, 1 → R
T1 M(MAR) → MDR, (PC) + 1 → PC
T2 MDR → IR, OP(IR) → ID - 执行阶段
T0 SP → MAR, 1 → R
T1 M(MAR) → MDR
T2 MDR → PC, (SP) + 1 → SP
- 取址阶段