计组面试--h自用
● 冯诺依曼体系结构核心思想、计算机五大核心部件
● CPU核心组成、指令执行周期、CISC vs RISC 核心区别
● 存储器层次结构、Cache工作原理、局部性原理、Cache映射与写策略
● CPU流水线技术、流水线冒险与解决方案
● IO控制方式:程序查询、中断驱动、DMA、通道控制
计算机硬件的基本组成
- 存储器:分为主存和辅存(辅存中的信息必须调入主存后才能被CPU访问)
- 控制器:程序计数器PC、指令寄存器IR、控制单元CU组成
- 运算器:进行算数运算和逻辑运算,核心部件:算术逻辑单元(ALU)
- 输入设备
- 输出设备
冯诺依曼思想
- 计算级硬件系统由存储器、控制器、运算器、输入设备、输出设备五大部件组成
- 指令和数据以同等地位存放在存储器中且可以按地址访问
- 指令和数据均用二进制码标识
- 指令由操作码和地址码组成,操作码表示操作的性质,地址吗表示操作数在存储器中的位置
- 指令在存储器内按顺序存放。
- 以运算器为中心
编译,解释型语言
- 编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成为可执行程序,如果源程序不变以后要运行的话就不用重新翻译。
- 解释型语言的程序不需要编译,在运行程序的时候才翻译,翻译一句执行一句,不生成目标程序,这样解释型语言每执行一次就要翻译一次,效率比较低。
原码、反码、补码、移码
- 原码:表示方法简单;不可直接参与运算;
- 反码:符号位可参与运算;循环进位
- 补码:可以将减法换成加法
- 移码:主要用于浮点数的阶码
计算机性能指标
吞吐量:单位时间内处理请求的数量
主频:机器内部主时钟的频率,衡量机器速度
时钟周期:主频的倒数,是CPU中最小的时间单位
机器周期(CPU周期):一个指令周期由若干个CPU周期构成,CPU操作的最基本单位
指令周期:指令周期含有若干个机器周期
CPI:执行一条指令所用的时钟周期数
MIPS:每秒执行多少百万条指令
MFLOPS:每秒执行多少百万次浮点运算
存储器分层
寄存器-》cache-》主存-》辅存
Cache-》主存:环节主存与CPU速度不一致的问题
主存-》辅存:实现了虚拟存储,解决主存空间容量不够的问题
存储器分类
RAM随机存储器,在程序执行过程中可读可写,是易失性存储器,一旦写入信息就不可轻易改变。
ROM只读存储器,在程序执行过程中只可读,是非易失性存储器,掉电信息也不会丢失。
串行访问存储器:对存储单元进行读写时,按其物理位置的先后顺序寻址。
静态随机存储器(SRAM)vs动态随机存储器(DRAM)
- SRAM:不需要刷新,运行速度块,集成度低,非破坏性读出,读出后不用重写,易失,用于cache
- DRAM:需要刷新,采用地址复用运行速度慢,集成度高,破坏性读出,读出后重写,易失,用于主存
内存的扩展
字拓展增加存储器中字的数量,片选线不一样,地址线,数据线都用一根线
位拓展增加同一个地址下的存储单元的位数,地址线和片选线一样,不一样的数据线,低8位数据线和高8位数据线 2根数据线
字位同时拓展同时扩充字和位
提高主存速度的方法
双端口存储器:利用两个端口、有两组相互独立的数据线、控制线、地址线
单体多字存储器
多体并行存储器(高位和低位)
cache和主存映射
- 直接映射:直接映射就是将主存地址映射到Cache中的一个指定地址,任何时候,主存中存储单元的数据只能调入到Cache中的一个或几个位置,这是固定的,若这个位置已有数据,则产生冲突,原来的块将无条件地被替换出去。
- 全相连映射:在这种方式下,主存中存放的数据可以调入到Cache中的任意位置,只有在Cache中的块全部装满后才会出现块冲突。
- 组相连映射:组相连映射是指将存储空间的页面分成若干组,各组之间采用直接映射,而组内各块之间采用全相连映射。
Cache(高速缓冲存储器)工作原理
处理机判断cache中是否有被访问的数据,如果在,则Cache命中,按地址访问Cache。否则,Cache不命中,则需要访问主存,并从主存中调入相应数据块到Cache中,若Cache中已写满,则要按某种算法 将Cache中的某一块替换出去。
替换算法
- 随机算法
- 先入先出算法
- 近期最少使用算法
cache写策略
cpu修改了cache副本,如何保证主存中母本的一致性
写命中时
(1)写回法:只修改cache而不修改主存,等换出时才写回。要设计一个脏位检验是否修改过
(2)全写法:同时修改主存和cache
写不命中时
(1)写分配法:将所写的先调入cache,然后配合写回法
(2)非写分配:直接写入主存
寻址方式
寻址方式 指令地址字段
立即寻址:操作数
直接寻址:操作数的地址
间接寻址:操作数地址所在存储单元的地址
寄存器直接寻址:指令字直接给出操作数所在的寄存器编号
寄存器间接寻址:寄存器给出操作数所在主存单元的地址
相对寻址:操作数的有效地址等于pc+地址A(共享代码)
基址寻址:有效地址等于基址寄存器中的内容+A(BX)
变址寻址:变址寄存器+A数组元素访问
复杂指令集计算机CISCvs简单指令集计算机RISC
| 复杂指令集计算机CISC | 简单指令集计算机RISC | |
| 复杂,庞大 | 简单,精简 | |
| 指令字长 | 不固定 | 固定 |
| 可访存指令 | 无限制 | LOAD/STORE指令 |
| 指令执行时间 | 差别大 | 基本都在一个周期完成 |
| 通用寄存器数量 | 较少 | 多 |
| 控制方式 | 微程序控制器 | 组合逻辑控制 |
| 指令流水线 | 必须实现 |
CPU的核心组成
- 运算器
- 控制器(控制单元CU、指令寄存器IR、程序计数器PC)
- 主存
指令执行周期
取址周期:将程序计数器PC中的地址给主存的地址寄存器MAR,通过MAR找到指令后放入数据寄存器MDR中,指令寄存器IR从MDR将指令取走。
间址周期:根据指令中的地址码从主存中获取操作数的有效地址
执行周期
终端周期:保存断点,将中断服务程序入口送入PC
数据通路
数据在各个功能部件之间传送路径叫做数据通路
实现CPU内部的运算器和寄存器以及寄存器之间的数据交换
异常与处理中断过程
(1)响应处理
关中断:临时禁止中断请求
保存断点:保存现场和屏蔽字
中断识别
(2)中断服务程序
保护现场
(开中断,允许中断嵌套)
中断服务
(关中断,保证恢复现场的时候不被打断)
恢复现场
中断返回
CPU流水线技术、流水线冒险与解决方案
将指令过程划分为:取指-》译码-》执行-》访存-》写回
冲突与解决办法:
(1)结构相关:多条指令在同一时刻竞争同一资源
- 采用独立的指令存储器和数据存储器避免访问冲突
- 暂停一时钟周期
(2)数据相关:下一条指令用到当前指令的计算结果
- 采用数据旁路技术,即把前一条指令的ALU计算结果直接输入到下一条指令
(2)控制冲突:遇到执行转移、调用、返回导致PC中断
- 采用分支预测
