六、计算机的高速缓存
1、高速缓存的工作原理
- 字:指存放在一个存储单元中的二进制代码的组合;
- 字块:存储在连续的存储单元中而被看作是一个单元的一组字;



例题:假设主存用户空间容量为 4G,字块大小为 4M,字长为 32 位,则对于地址中块地址 m 和 块内地址 b 的位数,至少应该为多少?4G = 4096M字块数: 4096 ÷ 4 = 1024 个字块地址m:log₂1024 = 10块内字数:4M ÷ 32bit = 1048576块内地址:log₂1048576 = 20所以: m ≧ 10,b ≧ 20

- 命中率是衡量缓存的重要性能指标,访问效率也是一个性能指标;
- 理论上CPU每次都能从高速缓存存取数据的时候,命中率为1;


2、高速缓存的替换策略

缓存的替换策略
- 随机算法
- 先进先出算法(FIFO)
- 最不经常使用算法(LFU)
- 最近最少使用算法(LRU)
Ⅰ 先进先出算法(FIFO)
算法的基本思想是,总是先淘汰那些驻留在内存时间最长的页面,即先进入内存的页面先被淘汰。这种算法实现起来比较简单,性能最差。
Ⅱ 最不经常使用算法(LFU)
- 优先淘汰掉最不经常使用的字块;
- 为了找出最不经常使用的字块,所以需要一个额外的空间来记录字块的使用频率;
Ⅲ 最近最少使用算法(LRU)
该算法是选择最近最久未使用的页面予以淘汰,系统在每个页面设置一个“计时”标记,用以记录这个页面自上次被访问以来所经历的时间T,当要淘汰一个页面时,选择T最大的页面。
七、计算机的指令系统
1、机器指令的形式
- 主要由两个部分组成:操作码(指明指令需要完成的操作,操作码的位数反应了机器的操作种类)、地址码(给出操作数或者操作数地址,分三地址指令、二地址指令、一地址指令,就是说地址码字段有几个地址);
2、机器指令的操作类型
- 数据左移(乘2)、数据右移(除2),完成数据在算术逻辑单元的必要操作;
- 等待指令、停机指令、中断指令、空操作指令等;
控制指令、移位操作、算术逻辑操作指令、数据传输指令;
3、机器指令的寻址方式
- 指令寻址(顺序寻址、跳跃寻址);
- 数据寻址(立即寻址、直接寻址、间接寻址);
Ⅰ 立即寻址:
- 指令直接获得操作数
- 无需访问存储器
Ⅱ 直接寻址:
- 直接给出操作数在主存的地址
- 寻找操作数简单,无需计算操作数的地址
Ⅲ 间接寻址:
- 指令地址码给出的是操作数地址的地址;
- 需要一次或多次主存来获取数据;

八、计算机的控制器

- 程序计数器:程序计数器用来存储下一条指令的地址,循环从程序计数器中拿出指令,当指令被拿出时,指向下一条指令;
- 时序发生器:用于发送时序脉冲,CPU根据不同的时序脉冲有节奏的进行工作;
- 指令译码器:计算机指令由操作码和地址码组成,指令译码器翻译操作码对应的操作及控制传输地址码对应的数据;
- 指令寄存器:从主存或高速缓存取计算机指令;
- 主存地址寄存器:保存当前CPU正要访问的内存单元的地址;
- 主存数据寄存器:保存当前CPU正要读或写的主存数据;
- 通用寄存器:拥有暂时存放或传送数据或指令,可保存ALU的运算中间结果,容量比一般的专用寄存器大
九、计算机的运算器

- 数据缓冲器:分为输入缓冲和输出缓冲,输入缓冲暂时存放外设送过来的数据,输出缓冲暂时存放送往外设的数据;
- ALU:算术逻辑单元,运算器的主要组成部分,常见的位运算(左右移、与或非等),算术运算(加减乘除等);
- 通用寄存器:拥有暂时存放或传送数据或指令,可保存ALU的运算中间结果,容量比一般的专用寄存器大
- 状态字寄存器:存放运算状态(条件码、进位、溢出、结果正负等),存放运算控制信息(调试跟踪标记位、允许中断等);
十、计算机指令的执行过程
1、指令的执行过程


注意:这样的指令执行过程,控制器和运算器不能同时工作,导致CPU的综合利用率并不高(所以引入了CPU的流水线设计);
2、CPU的流水线设计



浙公网安备 33010602011771号