面试常见问题——计算机组成原理(一)
目录:
- Cache和寄存器、虚拟存储器的区别
- 计算机组成有哪些
- CISC和RISC
- 数据寻址方式
- 指令流水线
- 中断处理流程
- DMA和中断的区别
1、Cache和寄存器、虚拟存储器的区别
- 定义:
- Cache定义:
- 利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的临时存储器中,可用SRAM实现,使CPU的访存操作大多针对Cache进行,从而大大提高程序的执行速度。
- 引入目的:解决CPU和主存之间运算速度的差异。
- 寄存器定义:
- 寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。在控制器中,包含的寄存器有指令寄存器(IR)、程序计数器(PC)、指令译码器(ID)等。在运算器中,包含的寄存器主要有累加寄存器(ACC)、暂存寄存器、程序状态字寄存器(PSW)。
- 虚拟存储器定义:
- 将主存或辅存的地址空间统一编址,从逻辑上对内存容量加以扩存。
- 引入目的:解决主存不足的问题。
- 依据:程序访问的局部性原理
- 通常采用相联存储器,可按内容、按地址访问。
- 实现技术:
- 请求分页存储管理
- 请求分段存储管理
- 请求段页式存储管理
- Cache定义:
- 存储器分层体系结构中,存储器速度由快到慢依次为寄存器、Cache、主存、辅存。
- 虚拟存储器和Cache的对比:
- 相同点:
- 都把数据划分为块,并作为基本的传输单位。
- 都有地址的映射、替换算法、更新策略等问题。
- Cache替换算法:
- RAND(随机算法):随机地确定替换的Cache块
- FIFO(先进先出):选择最早调入的存储行进行替换
- LRU(最近最少使用):选择最近最久未被访问的存储行进行替换
- LFU(最不经常使用):将一段时间内被访问次数最少的存储行进行替换
- 虚拟存储器替换算法:
- OPT(最佳页面替换算法,OPTimal replacement):选择以后不再使用的页面进行替换(目前无法实现)
- FIFO(先进先出):选择最早进入内存的页面进行替换。可能出现Belady异常,即所分配的物理块数增大而缺页数也增大
- LRU(最近最少使用):选择最近最久未使用的页面进行替换
- CLOCK(时钟置换算法,也称为最近未用算法Not Recently Used,NRU):选择最近未使用的页面进行替换
- 改进型CLOCK:除了使用位,增加修改位,置换顺序如下:
- 未访问,未修改
- 未访问,已修改
- 已访问,未修改
- 已访问,已修改
- Cache替换算法:
- 相同点: