cpu结构
指令周期
指令流水
中断系统

CPU由运算器,控制器和寄存器组成,
运算器是对数据进行加工处理的部件。它不仅可以实现基本的算术运算,还可以进行基本的逻辑运算,实现逻辑判断的比较及数据传递,移位等操作。
控制器是负责从存储器中取出指令,确定指令类型及译码,按时间的先后顺序向其他部件发出控制信号,统一指挥和协调计算机各器件进行工作的部件。
寄存器是CPU内部高速独立的暂时存储单元。
CPU的性能指标: (1)主频,外频和倍频。主频是CPU的时钟频率,即CPU的工作频率。一般来说,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快。外频及CPU和周边传输数据的频率,具体是指CPU到芯片组之间的总线速度。CPU的外频决定着整块主板的运行速度。倍频和外频相乘就是主频。 (2)地址总线宽度地址总线宽度决定了CPU可以访问的物理地址空间,例如32位的地址总线,最多可以直接访问4GB的物理空间。 (3)数据总线宽度:数据总线宽度决定了CPU与内存以及输入/输出设备之间一次数据传输的信息量。 (4)工作电压:指的是CPU正常工作所需的电压。低电压能够解决耗电多和发热过高的问题,使CPU工作时的温度降低,工作状态稳定。 (5)高速缓冲存储器:它是一种速度比内存更快的存储设备,用于缓解CPU和主存储器之间速度不匹配的矛盾,进而改善整个计算机系统的性能。很多大型、中型、小型以及微型计算机中都采用高速缓存器。 (6)除上述性能指标外,CPU还有其他如制造工艺、接口类型、多媒体指令集、装封形式、整数单元和浮点单元强弱等性能指标

控制器
取、分析、执行指令
总线管理

运算器
算数逻辑运算

CPU寄存器

  1. 用户可见寄存器[通用寄存器、数据寄存器、地址寄存器、条件码寄存器]
  2. 控制和状态寄存器[控制寄存器{MAR、MDR、IR、PC}、状态寄存器{状态寄存器、PSW寄存器}]

控制单元CU
产生全部指令微操作命令序列
中断系统

ALU

指令周期
CPU从主存取出一条指令加上执行这条指令的时间
取指阶段+执行阶段

每条指令指令周期不同
取指周期+间指周期+执行周期+中断周期

指令周期流程


工作周期标志


指令周期数据流

取指周期数据流


从存储器读区指令

间址周期数据流
一旦取指周期结束,CU便检查IR中的内容,以确定其是否有间址操作。

中断周期数据流

并行包含同时性和并发性两个方面,前者是指两个或多个事件在同一时刻发生,后者是指两个或多个事件在同一时间段发生。

指令流水原理

  1. 指令的串行执行
  2. 指令的二级流水

影响指令流效率因素

  1. 执行时间大于取指时间
  2. 条件转移指令
    条件转移指令是影响指令流水效率加倍的一个因素,当遇到条件转移指令时,下一条指令是不可知的,因为必须等到执行阶段结束后,才能获知条件是否成立,从而决定下条指令的地址,造成时间损失。

指令六级流水

影响指令流水性能因素

  1. 结构相关
    解决访存冲突的一种办法是设置两个独立的存储器分别存放操作数和指令,以免取指令和取操作数同时进行时互相冲突,使取某条指令和取另一条指令的操作数实现时间上的重叠。
  2. 数据相关[先读后写、先写后读、写后写]
  3. 控制相关
    控制相关主要是由转移指令引起的。

流水线性能

  1. 吞吐率
  2. 加速比
    流水线的加速比是指m段流水线的速度与等功能的非流水线的速度之比。
  3. 效率

流水线多条

  1. 超标量技术
  2. 超流水技术
  3. 超长指令字技术
    超长指令技术利用在程序编译时指令间潜在的并发性,把多条能并行操作的指令结合成一条具有多个操作码字段的超长指令,需要多个功能部件同时工作。

流水线结构

  1. 指令流水线结构
  2. 运算流水线

中断系统

引起因素:

  1. 人为设置
  2. 程序异常(溢出、非法操作)
  3. 硬件故障
  4. IO设备
  5. 外部事件 键盘

本节重点讲述以下内容:


问题1:

中断请求标记:

INTR中断请求标记触发器

问题2:
中断判优:
中断系统任意瞬间只能响应一个中断源的请求,优先级最高响应哪个

  1. 硬件实现:排队器
  2. 软件实现:程序查询(按照优先级先后顺序ABC)

问题3:
入口地址的寻找

  1. 硬件向量法
  2. 软件查询法(灵活)

问题4:
中断响应
响应条件:
允许中断触发器EINT=1

响应时间:
指令执行周期结束以后,由cpu发查询信号

问题3:
中断响应:

CPU一旦进入了中断周期,即执行一条中断隐指令
保护程序断点
寻找中断服务程序入口地址
硬件关中断

保护程序断点
断点存储特定地址,断点进栈

寻找入口地址
向量地址-PC
软件查询

硬件关中断
中断触发器置为0

问题4:
保护现场
断点、寄存器内容

恢复现场
中断服务程序完成

中断服务程序

  1. 保护现场 push
  2. 恢复现场 pop
  3. 中断返回 irest

问题5:
多重中断
新中断的优先级高于现在执行的中断源,会去执行新中断。

实现条件:

  1. 提前设置开中断指令
  2. 优先级高的有权利中断优先级低的中断源

中断屏蔽

  1. 中断屏蔽触发器,可以屏蔽优先级低的中断源。
    MASK=0(未屏蔽)1(屏蔽)
    使某一个中断源无法被响应
  2. 屏蔽技术可改表处理优先等级
    处理优先级可改变通过重新设置屏蔽字

多重中断的断点保护

如何保证多重中断的断点不会覆盖丢失?