微处理器体系机构以及功能模块简介 链接到标题

基本功能 链接到标题

  • 指令控制
  • 操作控制
  • 时间控制
  • 数据加工:就是数据运算
  • 中断处理:也就是在异常中断之后重新启动可以接着执行。

主要性能指标 链接到标题

  • 主频
  • 外频
  • 倍频=主频×外频
  • 地址总线宽度
  • 数据总线宽度

基本结构 链接到标题

从结构上可以分成下面四种

  • 运算器(ALU)
  • 寄存器组
  • 控制器
  • 内总线 进一步的分类将在下面介绍。

数据通路 链接到标题

运算器(ALU)、寄存器组、内总线这三部分称为数据通路。

控制器 链接到标题

其指令译码部件可以分为两种,分别使用两种指令体系

  • 微程序(CISC)
  • 硬连逻辑(RISC)

两种控制器的比较 链接到标题

硬联逻辑处理器 微程序处理器
需求背景 需求量大,但性能要求不高 需要高性能,而存储器访问速度太慢
目标 减少制造成本 设计新CPU时能减少重复设计费用
方法 减少使用的门电路总数 把指令集与硬件的设计分开
用途 支持RISC 支持CISC

指令系统 链接到标题

指令要素 链接到标题

  • 操作码
  • 源操作数(这就牵涉到数据的储存位置)
  • 结果/目标操作数
  • 下一条指令

指令类型 链接到标题

数据传输 链接到标题

  • 数据传送范围:
    • 寄存器
    • 存储器
    • I/O接口
  • 数据传送宽度:一般为固定值(如8、16、32bit)

数据运算 链接到标题

即加减乘除和逻辑运算。 该类指令需要明确操作数的类型和长度

控制类 链接到标题

用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令。 ·

指令格式 链接到标题

分类 链接到标题

操作码字段 链接到标题

  • 说明CPU应进行的操作,
  • 按操作类型分组:同类操作要求同样或类似的控制信号,因此编码也类似(有尽可能多的公共位)

操作数字段/地址字段 链接到标题

  • 说明源操作数和目的操作数存放的位置信息(R、M或I/O);
  • 说明源操作数和目的操作数的数据类型;

下一条指令地址字段 链接到标题

  • 如紧跟当前指令,在主存或虚存中,则不需显示引用;(连续储存)
  • 如可能产生跳转,则需要显示给出指令存储地址(类似于指针)

指令集设计 链接到标题

寻址方式 链接到标题

即通过地址来寻找指令操作数的方式,先分一个类,下面再来详细讲:

  • 立即数寻址:在指令码中指定操作数
  • 寄存器寻址:在寄存器中指定操作数
  • 直接寻址、间接寻址:在存储器中指定操作数
  • PC相对寻址:在汇编程序中指定操作数
  • 存储器寻址(存储器映像编址)或端口寻址(独立编址):擦作数在I/O接口中

立即数寻址 链接到标题

直接在指令中给出了指令数,比如汇编语言

MOV R0,#1

中1就是立即数。 当然,这种方法的缺点也很明显:数字段长度收指令长度的限制。

寄存器(直接)寻址方式 链接到标题

类似于一重指针,操作数在寄存器组中,指令中含的是指向操作数的地址

存储器寻址 链接到标题

直接寻址方式 链接到标题

就是寄存器寻址方式。

寄存器简介寻址方式 链接到标题

  • 指令存了一个指令指向寄存器;
  • 指向的寄存器中的也是一个地址,这个地址指向存储器
  • 被指向的存储器中的位置就是操作数了 相当于是二级指针

存储器间接寻址 链接到标题

相当于再多了一层指针

  • ……
  • 被指向的存储器中的位置也是指针,指向存储器中的另外一个位置
  • 这个位置就是操作数了

位移量寻址方式 链接到标题

指令流水线技术 链接到标题

流水线技术特点 链接到标题

  • 延迟:从头到尾执行一条指令所需要的时间(ps=$10^{-12}$s)
  • 吞吐量:单位时间完成的指令数(GIPS,每秒十亿条指令)

通过拆分组合逻辑,加入了寄存器,延迟会增大,但是可以增大吞吐量(见课件p38)。

流水线的局限性 链接到标题

流水线各段的延迟 链接到标题

也就是说产生了硬件空闲,从而使得性能下降

流水线段数过多 链接到标题

也就是中间插入的寄存器多了,延迟也就增加了,产生两个后果

  • 寄存器贵,并且也会增加硬件控制复杂
  • 性能没有成比例增加,即效率变低了。

流水线指令相关的局限性 链接到标题

即出现了冒险

数据冒险 链接到标题

  • 违背写后读规则(RAW)
  • 违背写后写规则(WAW)
  • 违背读后写规则(WAR) 一句话,就是冲突冒险,即当前指令的源操作数与前一条指令的目标操作数相同。 不过有一些解决方法
  • 在相关指令之间增加等待周期:(当然,这不是最优解)
  • 定向技术:将结果数据从其产生的地方直接传送到所有需要它的功能部件
  • 乱序执行:用流水线调度(scheduling)技术来重新组织指令顺序 (见课件p44的例子)

结构冒险 链接到标题

……

控制冒险 链接到标题

……

指令流水线的性能指标 链接到标题

吞吐量 链接到标题

  • 吞吐量$T_p$:单位时间内完成的指令数
  • 最大吞吐量$T_{pmax}$:流水线达到稳定状态后的吞吐量(即在大量代码满负荷情况下的理想流水线状态)。

若一个m级线性流水线各级时长(即拍长)均为$\Delta t$,则连续处理n条指令时的实际吞吐量$T_p$为 $$ T_p=\frac{n}{m\Delta t+(n-1)\Delta t}=\frac{1}{\left[1+\frac{m-1}{n}\right]\Delta t} $$ 其中$m\Delta t$可以理解为建立流水线的过程,$(n-1)\Delta t$就是完成剩下的指令所用的时间。 当$n\to \infty$,就可以得到 $$ T_{pmax}=\frac{1}{\Delta t} $$ s

加速比 链接到标题

定义:非流水线执行时间与流水线执行时间之比。

反应的是流水线对不使用流水线的优化程度。

若一个m级线性流水线各级时长(即拍长)均为$\Delta t$,则连续处 理n条指令时的加速比$S_p$为: $$ S_p=\frac{T_{\text{串行}}}{T_{\text{流水}}}=\frac{nm\Delta t}{m\Delta t+(n-1)\Delta t}=\frac{m}{\frac{m-1}{n}} $$ 同样取极限($n\to\infty,S_p\to m$)可以知道理想流水线的加速比与流水线的段数m相同。

效率 链接到标题

即各段硬件的利用率

定义:若一个m级线性流水线各级时长(即拍长)均为$\Delta t$,则连续处理n条指令时的效率E为 $$ E_p=\frac{nm\Delta t}{[m^2+(n-1)m]\Delta t}=\frac{1}{1+\frac{m-1}{n}} $$ 当$n\to\infty$,$E\to 1$,即流过流水线的指令越多,流水线效率越高。

典型微处理体系结构 链接到标题

ARM体系结构 链接到标题

结构 链接到标题

  1. RISC指令集,内核小, 功耗低、成本低
  2. 哈佛结构
  3. 运算器操作数只能从 寄存器输入/输出
  4. 采用桶式移位器处理 ALU输入,灵活高速

系统结构特点 链接到标题

  1. RISC指令规则,适合流水设计
  2. 寻址方式灵活简单,执行效率高,仅Load和Store指令可以 访问存储器
  3. 所有指令的条件执行实现最快速的代码执行
  4. 支持Thumb(16 位)/ARM(32 位)双指令集,能很好的兼 容8 位/16 位器件 53

Intel 8086体系结构 链接到标题

结构 链接到标题

  1. 冯式结构
  2. 运算器操作数可以从寄存器、存储器或I/O端口获得
  3. 分成两大功能部件EU、BIU 54

特点 链接到标题

  1. 为保持兼容性采用变长的、高度不规则的 CISC指令集。
  2. 是基于专用寄存器组的二地址存储器-寄存 器(M-R)机:对于二元操作,一个操作数总 是指定在寄存器中,另一个操作数可以从 存储器或寄存器中读取