一、计算机系统概述
1、冯诺依曼机器的主要特点
- 由运算器、存储器、控制器、输入设备和输出设备五大部分组成。
- 指令和数据均用二进制代码表示,并以同等地位存储在存储器中。
- 指令由操作码和地址码组成,操作码表示操作的性质,地址码表示操作数在存储器的位置。
- 指令在存储器中以顺序方式存储,通常是顺序执行的。
2、在计算机系统结构中,什么是翻译?什么是解释?
- 翻译:将编写的程序全部翻译成另一种语言,然后再执行。
- 解释:将编写的程序的一条语句翻译执行后,再翻译下一条语句,翻译一句执行一句。
- C语言编译过程:
- 预处理
- 编译:将高级语言翻译成汇编语言。
- 汇编:将汇编语言翻译成机器语言。
- 链接
3、指令执行过程
- 取指令:PC -> MAR -> M-> MDR -> IR
- 分析指令:OP(IR) -> CU
- 执行指令:Ad(IR) -> MAR -> M -> MDR -> ACC
- PC + 1 -> PC(程序计数器加一)
二、数据的表示和运算
1、计算机中,为什么要用二进制来表示数据?
- 二进制只有0、1两种状态,表示这两种状态的方式简单。如开关接通和断开,磁元件正负、电平高低等。
- 二进制数运算法则少,运算简单,简化了计算机硬件结构。
2、奇偶检验和海明码可以纠错吗?
- 奇偶校验只能检测出错误,不能纠正错误;海明码可以纠正错误。
3、定点数和浮点数
- 定点数:小数点的位置是固定的。
- 浮点数
- 小数点的位置不固定,可以根据需要进行浮动。
- 由符号位、阶码和尾数组成。
4、浮点数加减运算基本步骤
- 对阶:小数点对齐,小阶对大阶。
- 尾数求和:对阶后的两个尾数按照加减规则求和。
- 规格化:对尾数求和的结果进行规格化处理。
- 舍入:右规时丢失数值位。
- 溢出判断:判断结果是否溢出。
5、溢出判断
- 负数+负数、正数+正数、正数-负数、负数-正数时可能发生溢出。
- 溢出判断
- 采用一位符号位:参加操作的两个数符号相同,计算结果与源操作数符号不同,则溢出。
- 采用双符号位:计算结果的两个符号位不同,则溢出,此时最高位符号位代表真正的符号。
- 采用一位符号位根据数据位的进位判断:最高位进位和次高位进位不同,则溢出。
三、存储系统
1、多级存储器
- Cache-主存:解决CPU和主存速度不匹配的问题。
- 主存-辅存:解决存储系统的容量问题。
2、主存储器中,什么是MAR和MDR?
- MAR:存储器地址寄存器,保存需要访问的存储单元地址,反应存储单元的个数。
- MDR:存储器数据寄存器,缓存读出或写入存储单元的数据,反应存储字长。
- 存储器的最大容量由MAR和MDR的位数共同决定。
- 虚拟存储器的容量由地址总线位数决定。
3、Cache
- 高速缓冲存储器,位于CPU和主存之间,由SRAM组成。
- 功能:提高CPU数据输入输出的速率。
- 使用Cache改善系统性能的依据是程序的局部性原理。
- Cache写策略
- 写命中
- 全写法:写命中时既写入cache又写入主存。
- 回写法:写命中时写入cache但不写入主存,当cache中的数据被替换出去之后才写入主存。减少了访存次数。
- 写不命中
- 写分配法:加载主存的块到Cache中,然后更新这个Cache块。
- 非写分配法:只写入主存,不进行调块。
- 写命中
- Cache替换算法
- 随机算法:随机选择Cache行替换。
- 先进先出算法:选择最早调入的Cache行进行替换。
- 近期最少使用算法:选择近期未访问过的Cache行进行替换。
- Cache和主存的映射方式
- 直接映射
- 主存中的块只能装入Cache中的唯一位置。
- 地址变换速度快,但Cache利用率不高,块冲突率高。
- 全相联映射
- 主存中的每一个块可以装入Cache中的任何位置,每行的标记指出该行取自主存的哪一块,所以CPU访存时需要与所有Cache行的标记进行比较。
- Cache块冲突率低,空间利用率高,但速度较慢。
- 组相联映射
- 将Cache分成若干大小相同的组,组间采用直接映射,组内采用全相联映射。
- 直接映射
4、虚拟存储器
- 具有请求调入和置换功能,从逻辑上对内存容量加以扩充。
- 页式虚拟存储器
- 虚拟空间和主存空间被划分为同样大小的页,主存的页称为实页,虚存的页称为虚页。
- 各虚页可装入主存中不同实页的位置,由页表完成映射。
- 段式虚拟存储器
- 程序按逻辑结构划分为段,各段长度因程序而异。
- 通过段表指明各段在主存中的位置。
- 段页式虚拟存储器
- 程序按逻辑结构划分为段,各段又分为若干同等大小的页。
- 快表
- 页表的副本,加速地址转换。
5、存储时间和存储周期
- 存储时间:存储器完成一次读或写的时间。
- 存储周期:存储器完成两次读或写操作的时间间隔。
- 存储周期包括存储时间。
6、存储器扩展方式
- 字扩展:增加存储器的字数。例如,两个1k*8位的存储器扩展为一个2k*8位的存储器。
- 位扩展:增加存储器的字长。例如,两个1k*4位的存储器扩展为一个1k*8位的存储器。
四、指令系统
1、大端方式和小端方式
- 大端方式:把字的高位存储在存储单元的低地址中,把字的低位存储在存储单元的高地址中,符合人类逻辑思维。
- 小端方式:把字的高位存储在存储单元的高地址中,把字的低位存储在存储单元的低地址中,符合机器逻辑思维。
2、CISC和RISC的特点
- CISC(复杂指令集)
- 大多数采用微程序控制
- 大多数指令需要多个时钟周期才能完成
- 访存不受限制
- 指令长度不固定
- 指令数目多
- RISC(精简指令集)
- 以硬布线控制为主
- 大部分指令在一个时钟周期内完成
- CPU中通用寄存器多
- 只有Load/Store指令访存
- 指令长度固定
3、机器指令和指令系统
- 机器指令:每一条机器语言的语句。
- 指令系统:所有机器指令的集合。
4、使用寄存器寻址的优点
- 扩大指令字的寻址范围。
- 缩短指令字长度。
- 减少访存次数。
5、形式地址和有效地址
- 形式地址:指令中的地址码不代表操作数的真实地址。
- 有效地址:操作数的真实地址,由寻址特征和形式地址共同决定。
6、寻址方式
- 立即寻址:地址字段即为操作数。
- 直接寻址:地址字段为操作数的真实地址。
- 间接寻址:地址字段为操作数有效地址所在存储单元的地址,即为操作数地址的地址。
- 寄存器寻址:操作数在所指的寄存器中。
- 寄存器间接寻址:所指的寄存器存储的是操作数所在存储单元的地址。
- 相对寻址:PC(程序计数器)加上形式地址形成操作数的有效地址。
- 基址寻址:基址寄存器的内容加上形式地址形成操作数的有效地址。程序执行过程中,基址寄存器的内容不变,形式地址可变。
- 变址寻址:变址寄存器的内容加上形式地址形成操作数的有效地址。程序执行过程中,变址寄存器的内容可由用户改变,形式地址不变。
五、中央处理器
1、CPU
- 由运算器、控制器和寄存器组成。
- 功能:负责协调并控制计算机各功能部件执行程序的顺序。
2、指令流水线
- 概念:将一个任务分解为几个不同的子阶段,每个阶段在不同的功能部件上并行执行,以便同一时刻能够同时执行多个任务,进而提高系统性能。
- 执行过程:取指、译码、访存、执行和写回。
- 影响流水线性能的因素
- 结构相关:多条指令同一时刻争用同一资源形成冲突。
- 数据相关:后续指令需要用到前面指令的执行结果。
- 控制相关:遇到分支指令和其他改变PC值的指令发生跳转。
- 超标量流水线:通过配置多个相同的功能部件,以满足每个时钟周期发送的多条独立指令并行执行。
3、流水线越多,并行度越高,是不是流水段越多,指令执行越快?
- 不是
- 流水段缓冲之间的额外开销增大。
- 流水段间控制逻辑变多、变复杂。
六、总线
1、引入总线的好处
- 简化了系统结构。
- 减少了连线数目。
- 便于系统扩充、更新与灵活配置。
- 便于设备的软件设计。
2、总线的两大特征
- 分时和共享。
- 分时:在同一时刻只能有一个部件使用总线传输信息。
- 共享:多个部件连接在一组总线上,都通过该总线进行数据传输。
3、总线的分类
- 按传输信息的不同分为:数据总线、地址总线和控制总线。
- 数据总线:用于各部件之间传输数据信息,是双向传输。
- 地址总线:用于指明数据总线上传输信息的源地址和目的地址,由CPU发出,是单向传输。
- 控制总线:发出各种控制信号,以协调各功能部件按序执行,是双向传输。
4、单总线结构
- 概念:所有设备都连接在一组总线上。
- 缺点:同一时刻只能有一个设备占用总线,限制了系统信息吞吐率。
5、总线仲裁
- 总线仲裁机构决定将下一个传输周期的总线给谁使用。
- 分类:链式查询方式、计时器定时查询方式、独立请求方式。
6、突发(猝发)传送方式
- 正常情况下,发送一个地址只传送一个单元的数据。而突发传送方式只需要发送一个首地址,即可传送多个连续单元的数据,提高数据传输率。
9、同步定时方式
- 发送方和接收方需要建立统一的时钟信号,在一个总线周期中,发送方和接收方可以进行一次数据传送。
8、异步定时方式
- 完全依靠传送双方相互制约的“握手”信号来实现定时控制。
- 把交换信息的设备分为主设备和从设备。主设备提出交换信息的“请求”信号;从设备向主设备发送“回答”信号。
- 类型:
- 不互锁方式:主设备和从设备可自行撤销“请求”信号和“回答”信号。
- 半互锁方式:主设备必须收到从设备的“回答”信号才能撤销“请求”信号;从设备可自行撤销“回答”信号。
- 全互锁方式:主设备必须收到从设备的“回答”信号才能撤销“请求”信号;从设备必须知道主设备的“请求”信号已撤销才能撤销“回答”信号。
七、输入输出系统
1、IO设备编址方式
- 统一编址:IO设备和存储器统一进行编址,IO地址是存储器地址的一部分,占用存储器的空间,无需专门的IO指令。
- 独立编址:IO设备和存储器分开进行编址,需要专门的IO指令。
2、中断响应优先级和中断处理优先级
- 中断响应优先级:由硬件排队线路或中断查询程序的查询顺序决定,不可动态改变。
- 中断处理优先级:可以由中断屏蔽字来改变。
3、向量中断、中断向量和向量地址
- 向量中断:一种识别中断源的技术,目的是获得向量地址。
- 中断向量:每个中断源对应的中断服务程序的入口地址。所有中断的中断服务程序入口地址构成一个表,称为中断向量表。
- 向量地址:存储中断向量的存储单元地址,即中断服务程序入口地址的地址。
4、中断和调用子程序的区别
- 调用子程序过程发生的时间是已知的;中断过程发生的时间是随机的。
- 子程序为主程序服务,两者属于主从关系;中断服务程序与主程序无关,两者属于平行关系。
- 调用子程序属于纯软件的处理过程,不需要专门的硬件电路;中断属于软硬件结合的处理过程,需要专门的硬件电路协助完成。