【2024计算机组成原理】垃圾堆里翻出来的复习提纲和问答题
复习大纲
计算题(4个)
- 浮点数的规格化
- 进制转换(十、二、八、十六)
- 真值原反补移码转换
- 加减法(补码),判断溢出
- 原码一位乘、加减交替法
- 相对寻址,小端法,二三字节存的编码是啥(主要是PC+1)
- 给四个左右十六进制数,指出寻址方式和有效地址
- 中断周期DMA方式和完全中断方式占用CPU处理时间计算(类似于课本208页例题3)
分析题(2个)
- 卡诺图化简并画出逻辑电路图
- Cache地址映射(小问题:cache是怎么读取数据的)四路组相联,求位数和给出内存地址,求映射到的Cache地址……(细节挺多,建议多看些例题)(往年题考四路组相联居多)
- 微操作流程(单总线)(往年考ADD/SUB居多)
- 多重中断画图(即屏蔽字相关题目)
设计题(2个)
- 字位扩展地址分配、设计电路
- 微程序设计,分析微操作流程,+时序
- 设计一个时序系统(实验)
- 加法器
简答题(6个)
- 怎样区分指令和数据(空间和时间两个层面)
- 讨论DMA,分析并比较DMA和程序中断方式,DMA能能否替代程序中断
- 寻址方式,各个寻址方式的示意图(解释寄存器间接寻址)
- 多重中断流程和屏蔽字
- 卡诺图和最简逻辑表达式
- 画图并说明微程序控制器中如何根据操作码形成相应微程序入口地址
- 举例说明扩展操作码技术
- 寻找中断服务程序入口地址的两种方法
复习内容
名词概念
存储体:由许多存储单元组成,存储单元包含若干个存储元,每个存储元能寄存一位二进制代码“0”或“1”
存储单元:可存储一串二进制代码
存储字:这串二进制代码
存储字长:二进制代码的位数
访存:按地址访问存储器
MAR:存储器地址寄存器(Memory Address Register),存放欲访问的存储单元的地址,位数对应存储单元的个数
MDR:存储器数据寄存器(Memory Data Register),存放从存储体某单元取出的代码或准备存入的代码
字节:1个字节被定义为由8位二进制代码组成
物理地址/实地址:主存的实际地址
逻辑地址/虚地址:虚拟存储器的地址空间中的指令地址码(虚拟存储器中的存储单元个数远比实际存储单元的个数大得多)
第一章 计算机系统概论
- 冯诺依曼计算机的特点
- 计算机由运算器,存储器,控制器,输入设备和输出设备五部分组成
- 指令和数据以同等地位存放于存储器中,并可按地址寻访(区分方式见下面问题)
- 指令和数据均由二进制数表示
- 指令由操作码和地址码构成,操作码用来表示操作的性质,地址码用来表示操作数在存储器的位置
- 指令在存储器内按顺序存放,通常是按顺序执行,特定条件下可根据运算结果或特定条件改变执行顺序(使用跳转类指令)
- 机器以运算器为中心。
计算机是如何区分指令和数据的?
- 时间层面:在取指周期(或运行取指微程序)内,由 PC 提供访存地址,取来的即为指令;在执行周期(或运行执行周期相对应的微程序段)内,由指令的地址码部分提供访存地址,取来的即为操作数,也就是数据
- 空间层面:取来的机器指令应存放在指令寄存器IR,而取来的数据(或操作数)则应该存放在以累加器为代表的通用寄存器内。
计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标
框图
现代计算机可以认为由三大部分组成:CPU 、I/O 设备及主存储器。其中,CPU 与主存储器合 起来,称为主机,I/O 设备又可称为外部设备。
各部件的作用
CPU包括运算器和控制器两个部分:其中,ALU是运算器的核心器件,用来完成算数和逻辑运算;CU是控制器的核心器件,用来解释存储器中的指令,并发出各种操作命令来执行指令
主存储器用来存放程序和数据,可以直接与CPU交换信息
I/O设备受CPU控制,用来完成相应的输入输出操作
主要技术指标
机器字长:CPU一次能处理数据的位数,通常与CPU寄存器位数有关
存储容量:包括主存容量(主存中存放二进制代码的总位数)和辅存容量、
存储容量 = 存储单元个数 × 存储字长
MAR的位数反映了存储单元的个数,MDR的位数反映了存储字长运算速度:与许多因素有有关,如机器的主频、操作类型、主存速度等
第四章 存储器
存储器分类
按存储介质分类
半导体存储器、磁表面存储器、磁芯存储器、光盘存储器
按存取方式分类
存取时间与物理地址顺序无关(随机访问)
随机存储器(RAM,Random Access Memory)
可读/写存储器,存储器的任何一个存储单元的内容都可以随机存取,存取时间与存储单元的物理位置无关
只读存储器(ROM,Read Only Memory)
能对其存储的内容读出,而不能对其重新写入的存储器。用于工业控制的固化程序
派生出:可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、用电可擦除可编程只读存储器(EEPROM)、闪速存储器(Flash Memory)
存取时间与物理地址顺序有关(串行访问)
- 顺序存取存储器:不论信息处在哪个位置,读写时必须从其介质的始端开始按顺序寻找,如磁带存储器
- 直接存取存储器(部分串行访问):读写时,首先直接指出该存储器中的某个小区域,然后再顺序寻访。前段是直接访问,后段是串行访问。如磁盘。
按照作用分类
主要分为:主存储器、辅助存储器、缓冲存储器。
$$
存储器 =\begin{cases} 主存 \quad \begin{cases} 随机存储器(RAM)\begin{cases} 静态RAM \ 动态RAM \end{cases} \ 只读存储器(ROM)\begin{cases} MROM \ PROM \ EPROM \ EEPROM \end{cases} \end{cases} \ 闪速存储器(Flash Memory) \ 辅存 \quad \begin{cases} 磁盘 \ 磁带 \ 光盘\end{cases} \ 缓存(Cache) \end{cases}
$$
存储器的层次结构
三个性能指标:速度、容量和每位价格(位价)
寄存器中的数直接在CPU内部参与运算,它们的速度最快,位价最高,容量最小。主存中存放将要参与运行的程序和数据,其速度与CPU速度差距较大,为了他们之间能更好地匹配,在中间插入了一种比主存速度更快、容量更小的高速缓冲存储器Cache
存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?(P71)
- 存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。
- Cache-主存层次主要解决CPU和主存速度不匹配的问题,在存储系统中主要对CPU访存起加速作用。从CPU的角度看,该层次的速度接近于Cache,而容量和每位价格却接近于主存。解决了存储器的高速度和低成本之间的矛盾;
主存-辅存层次主要解决存储系统的容量问题,在存储系统重主要起扩容作用。从程序员的角度看,其所使用的存储器的容量和每位价格接近于辅存,而速度接近于主存,该层次解决了大容量与低成本之间的矛盾。 - 主存和Cache之间的数据调度是由硬件自动完成的,对程序员是透明的。而主存-辅存之间的数据调度,是由硬件和操作系统(采用虚拟存储技术)共同完成的。
大端和小端
大端:高位字节地址作为字地址,高位字节排放在内存的低地址端
小端:低位字节地址作为字地址,低位字节排放在内存的低地址端
字地址不变!但是它对应的字节地址会随着方法不同发生变化
四类线
地址线:单向输入,位数与芯片容量有关(1B = 8位)
数据线:双向(有的芯片用成对的数据线分别作为输入和输出),位数与芯片可读出或写入的数据位数有关
地址线和数据线共同反映存储芯片的容量
地址线10根,数据线4根 ⇒ 芯片容量 $2^{10}×4=4K$位控制线
- 读/写控制线:决定芯片进行读写操作
- 片选线:选择存储芯片,在半导体存储器中需要用片选信号来确定哪个芯片被选中。(CS\CE)
译码方式(线选法/重合法)
SRAM和DRAM
- SRAM:依靠双稳态触发器保存二进制代码,只要不断电,信息就不会丢失(非破坏性读出);功耗较大,集成度较低,速度快,每位价格高,适合于作Cache或存取速度要求较高的小容量主存。
- DRAM:依靠电容存储电荷来保存二进制代码,需刷新电路进行动态刷新,存取速度较慢;功耗小,集成度高,每位价格低,适合于作大容量主存。
DRAM的刷新
原因:
- 主要原因:由于电容极板漏抗的存在,存储于电容中的电荷存在泄漏的情况,这会导致DRAM存储单元中的原存信息丢失。
- 最常用的单管动态RAM的读出为破坏性读出
因此需要按照一定周期进行刷新,通常这个时间为2ms,称为刷新周期或再生周期。刷新是一行行进行的。刷新方式有三种:
- 集中刷新:规定的刷新周期内集中一段时间对所有存储单元逐行刷新,此刻必须停止读写操作,死时间连续易发生冲突
- 分散刷新:对每行存储单元的刷新分散到每个存取周期内完成(机器的存取周期分为两段,前半段用来读写或维持信息,后半段用来刷新),存取周期长了,拖慢了系统速度
- 异步刷新:用最大刷新间隔除以单元行数算出每个存储单元行的最大刷新时间间隔,以这个间隔为刷新周期,降低了冲突的概率和死时间
问答题
存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?
1)存储器的层次结构主要体现在Cache—主存和主存—辅存这两个存储层次上。
2)Cache—主存层次主要解决CPU和主存速度不匹配的问题,在存储系统中主要对CPU访存起加速作用。从CPU的角度看,该层次的速度接近于Cache,而容量和每位价格却接近于主存。这就解决了存储器的高速度和低成本之间的矛盾;
主存—辅存层次主要解决存储系统的容量问题,在存储系统中主要起扩容作用。从程序员的角度看,其所使用的存储器的容量和每位价格接近于辅存,而速度接近于主存。该层次解决了大容量和低成本之间的矛盾。
3)主存与Cache之间的数据调度是由硬件自动完成的,对程序员是透明的。而主存—辅存之间的数据调度,是由硬件和操作系统(采用虚拟存储技术)共同完成的。试比较静态RAM和动态RAM各自的特点。
1)静态RAM:依靠双稳态触发器保存二进制代码,只要不断电,信息就不会丢失;功耗较大,集成度较低,速度快,每位价格高,适合于作Cache或存取速度要求较高的小容量主存。
2)动态RAM:依靠电容存储电荷来保存二进制代码,需刷新电路进行动态刷新,存取速度较慢;功耗小,集成度高,每位价格低,适合于作大容量主存。为什么要刷新?简要说明动态RAM刷新的几种方式及其特点。
1)原因有两点:
① 主要原因:由于电容极板漏抗的存在,存储于电容中的电荷存在泄漏的情况,这会导致动态RAM存储单元中的原存信息丢失。
② 此外,最常用的单管动态RAM的读出为破坏性读出。
综合上述两点,动态RAM必须要进行刷新。
2)动态RAM的刷新方式有集中式刷新、分散式刷新、异步式刷新和透明式刷新等四种方式。(只答前三种也可)
****各种刷新方式的特点如下:
集中式刷新:在最大刷新间隔时间内,集中安排一段时间进行刷新。其缺点是进行刷新时必须停止读、写操作。这对主机而言是个“死区”
分散式刷新:刷新工作安排在系统的存取周期内进行,对主机而言不再有“死区”。但该方式加长了系统的存取周期,存在无谓刷新,降低了整机运行效率。因此,分散方式刷新不适用于高速存储器。
异步式刷新:结合了上述两种方式的优点,充分利用了最大刷新间隔。相对于分散式刷新而言,它减少了刷新次数;相对于集中方式来说,主机的“死区”又缩短很多。因此,这种方式使用得比较多。
透明式刷新:该方式不占用CPU时间,对CPU而言是透明的操作;但控制线路复杂。
以直接映像方式为例,说明在带有Cache的存储系统中,“读”操作是怎样完成的。
当CPU发出主存地址后,Cache地址映射机构按照直接映射方式将主存地址标记与Cache特定字块的标记进行比较,以判断出所访主存字(主存地址的内容)是否已在Cache中。若命中,直接访问Cache,将该字送至CPU;若未命中,一方面要访问主存,将该字传送给CPU,与此同时,要按照直接映射方式转换的Cache地址将该字所在的主存块装入Cache,如果此时Cache已装满,就要执行替换算法,腾出空位才能将新的主存块调入。
计算机是如何区分存储器中的指令和数据的?
CPU可通过两种手段来区分访存取来的是指令还是数据。
1)通过不同的时间段区分:在指令的取指阶段访存取出的是指令;在指令的执行阶段访存取来的即为操作数,也就是数据。
2)通过不同的地址来源和目的地址区分:由PC提供访存地址,取来的即为指令,送往指令寄存器IR;由指令的地址码部分提供访存地址取来的是操作数(数据),送往数据寄存器。简述微程序控制器的基本工作原理。
- 将控制器所需要的微操作命令(控制信号),以微代码的形式编成微指令,若干条微指令构成微程序,存在CPU的控制存储器中;
- CPU执行机器指令时,找到微程序入口,从控制存储器中逐条取出构成微程序的微指令;
- 对微指令中的操作控制字段进行解释,即产生执行机器指令所需的微操作命令序列。
微指令后继微地址的形成方式有哪几种?对于其中的根据机器指令的操作码形成微程序入口地址的方法,请画图做出说明。
1)断定方式。2)微地址形成部件生成。3)增量计数器法(增量方式)。4)分支转移方式。5)通过测试网络形成。6)由硬件产生微程序入口地址。
如上图所示,机器指令取至指令寄存器后,指令的操作码作为微地址形成部件的输入,来形成微指令的地址。因此,可以把微地址形成部件理解为一个编码器。微地址形成部件可采用PROM实现,即以指令的操作码作为PROM的地址,而相应的存储单元中就存放着对应该指令微程序的首地址。
分析比较组合逻辑控制方式和微程序控制方式。
1)产生微命令的方法及核心器件:组合逻辑控制器由组合逻辑电路提供微命令,其核心器件是由各种门电路构成的复杂树形网络;微程序控制器由存储逻辑(微指令)提供微命令,其核心器件是控制存储器。
2)规整性:组合逻辑控制器设计不规整,微程序控制器设计规整;
3)可扩展性:组合逻辑控制器不易修改和扩充,后者则易于修改和扩充;
4)组合逻辑控制器执行指令快,微程序控制器执行指令速度慢;
5)前者多用于RISC架构机器,后者多用于CISC架构的系列机。CPU 响应的中断的条件是什么?响应中断后CPU将进入什么工作周期?该工作周期前后各是什么阶段?
CPU响应中断的条件可以归纳为三条:
1)有中断请求;
2)CPU允许中断,即中断允许状态IF=1(或EINT=1);
3)一条指令执行结束。
CPU响应中断的时间:每条指令执行阶段的结束时刻。程序中断方式中“保护现场”的含义是什么?“保护现场”是如何实现的?
1)保护现场的含义有两重,一是保存程序的断点,二是保存通用寄存器和状态寄存器的内容;
2)保存程序断点由中断隐指令通过压栈指令完成;而保存通用寄存器和状态寄存器的内容则由中断服务程序完成,通常也是由压栈指令(PUSH)压入堆栈保存。
高速外设与主机进行数据交换,为何不选用程序中断方式?应该以何种方式完成?为什么?
一些高速外设,如硬盘、光盘等I/O设备,经常需要和主存进行大批量的数据交换;若采用程序查询方式或程序中断方式来完成,即通过CPU执行程序来完成数据交换,数据交换都是以字或字节为单位,速度较慢,极可能造成数据的丢失,因而不能满足批量数据的高速传递需求。
因此,需要借助于硬件,比如DMA控制器来实现主存和高速外设之间的直接数据传送。简述DMA方式和中断方式的异同点?请说明DMA方式不能取代程序中断方式的理由。
相同点:1)两种方式均为目前在微型机中主机与外设广泛采用的信息交换方式。2)两种方式下主机和外设之间均可实现一定程度的并行工作。
不同点体现为如下几个方面:1)数据传送:程序中断方式通过软件(中断服务程序)来完成信息交换;而DMA方式则是通过硬件(DMA控制器)来实现的。2)响应时间:前者在一条指令执行结束时响应,后者在一个存取周期结束时响应;3)随机事件处理能力:中断传送方式不仅适合于一般的信息交换,还适合对随机事件的处理;DMA方式仅适合简单数据的高速传输;4)工作过程:前者是程序切换,需保存现场;后者是总线占有权的 切换,无需保存现场。5)优先级:通常情况下,DMA请求的优先级高于中断请求的优先级。
DMA方式不能取代程序中断方式,理由如下:
1) DMA方式只能用于高速外设与内存之间的简单数据传递,却不能像中断方式那样能够处理复杂的随机事件;2) 在DMA方式的数据传送全过程中,本身需要利用中断方式来完成DMA传送的后处理。
简述寻找中断服务程序入口地址的两种方法,各有何特点?
这两种方法分别是硬件向量法和软件查询法。
- 硬件向量法:利用分散设置在各个接口电路或设置在CPU芯片内的专门硬件(向量地址形成部件)产生向量地址,再根据向量地址访问相应内存单元,其内容即为中断服务程序入口地址。该方法速度快,被现代计算机普遍采用。
- 软件查询法:利用中断识别程序,按中断源的优先级从高到低,依次查询是哪个中断源发出的中断请求。当查询到某一中断源有中断请求时,通过无条件转移指令,直接跳转到该中断源的中断服务程序入口,机器便能自动进入中断处理。该方法可灵活改变中断源的优先级,控制方便,但查询时间较长。
冯诺依曼计算机的特点
1)计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;
2)指令和数据以同等地位存于存储器,可按地址寻访;
3)指令和数据均用二进制数表示;
4)指令由操作码和地址码组成;
5)采用存储程序思想。指令在存储器内顺序存放,通常自动顺序取出执行;
6)机器以运算器为中心。试比较基址寻址和变址寻址
1)相同点:二者都可有效地扩大指令寻址范围。
2)不同点:
①二者的使用方式不同。变址寻址方式:指令提供基准量不变, R提供修改量可变;适于处理一维数组。基址寻址方式:基址指令提供位移量(不变), R提供基准量(可变);适用于扩大有限字长指令的访存空间。
② 二者的应用目的不同。变址寻址方式面向用户,用于对成批数据的连续的便捷访问;基址寻址方式面向系统,用来解决程序在实际主存中重定位问题(为程序分配存储空间)及扩大访存空间。
什么是指令周期?指令周期是否有一个固定值?为什么
1)指令周期是指CPU每取出并执行一条指令所需的全部时间。
2)指令周期不是一个固定值。
3)由于计算机指令集中各种指令的操作功能不同,执行该指令时所需完成的微操作复杂程度亦不同。比如,有的指令的执行需安排间址周期,有的指令其执行阶段的操作步骤复杂,如浮点运算指令,因此,指令执行阶段所花的时间有较大差异。
若硬性要求所有指令执行时间一致,那么那些执行频率很高的简单指令,其指令周期中很多时间就浪费掉了,这反而会影响到程序的总体执行效率。什么是指令周期、机器周期和时钟周期?三者有何关系
指令周期:CPU每取出并执行一条指令所需的全部时间叫指令周期;
机器周期(也叫CPU工作周期):是在同步控制的机器中,所有指令执行过程中的一个基准时间,通常以访问一次存储器所需的时间作为一个机器周期;
时钟周期(又叫节拍):是CPU工作时钟的周期时间(主频的倒数),它是控制计算机操作的最小时间单位。
三者之间的关系:一个指令周期包含若干个机器周期,而一个机器周期又包含若干个时钟周期。
微指令的操作控制主要有几种编码方式?各有何特点?哪一种控制速度更快?
一)主要有三种编码方式:1)直接编码方式;2)字段直接编码方式;3)字段间接编码方式。
二)特点: 1)直接编码:操作控制字段中,每一位代表一个微命令,简单直观,执行速度快,但微指令字长太长,控存成本高;2)字段直接编码:将互斥的微命令编入一个字段,通过译码产生所需微命令。微指令字长较短,增加了译码时间,减慢了执行速度;3)字段间接编码:一个字段的微命令兼由其它字段来解释。进一步缩短字长,但削弱了并行控制能力。中断隐指令在什么周期执行?其完成的操作有哪些?
中断隐指令在中断周期完成,即中断周期的操作由硬件完成。主要包括如下的三项操作:
1)关中断;2)保存程序断点;3)寻找中断服务程序入口地址。
试比较静态RAM和动态RAM的特点
在主机和外设之间进行数据传送,为什么需要采用DMA方式?简述DMA方式和中断方式的异同点?
计算机是如何区分存储器中的指令和数据的?
画图并说明微程序控制器中是如何根据操作码形成相应微程序入口地址的。
简述寻找中断服务程序入口地址的两种方法,各有何特点?
举例说明扩展操作码的原理。
- 数据和指令的区别方式
- 指令周期机器周期时钟周期是什么,他们之间的联系
- 微指令和微操作的关系,微指令和机器指令的关系,微程序和程序的关系
- 中断隐指令在什么时期执行,主要执行什么工作
- 屏蔽字然后画出cpu的处理过程。就是多重中断的那部分
- 根据单管动态RAM芯片,画出图示,说明刷新方式
- 组合逻辑控制器和微程序控制器的优缺点对比
- 说明原码一位乘的方法
- 说明内存和磁盘存储器之间数据交换为何不能用程序中断方式
- 举例说明如何扩展操作码
- 多重中断响应顺序画图
Notion的Toggle list转md没了 看着真难受呜呜,但是又懒得调了
将就看吧