体系复习

体系复习

硬布线控制器的优缺点

优点:指令执行速度很快

缺点:控制逻辑的电路复杂,设计和验证难度大;扩充 和修改也很困难

微指令寄存器μIR

用来存放从CM中读 出的微指令

包括“微操作控制字 段”和“顺序控制字段”两个部分(如下址字段)

微地址形成电路

形成依据包括:

  1. 微地址给定部分
  2. 现行微指令中的顺序控制方式(如是否发生转移)
  3. 机器指令的有关代码(如操作码)
  4. 机器运行状态等

微程序实例

0 0001 表示不发生分支

1 xx10,最高位的1表 示要发生分支,xx为该指令的操作码

微程序控制器的优缺点

缺点:速度较慢

优点1:规整性 用程序的方法来产生和组织微命令信号

优点2:灵活性 可以较方便地增加和修改指令,只要增加或修改一部分微程序 即可

I/O接口的产生原因

  1. CPU和外设之间的速度差距
  2. 外设处理的信息格式和接口信号形式多样 ◦ 串行、并行 ◦ 数字、模拟 ◦ 标准逻辑电平、非标准逻辑电平

I/O接口的基本功能

  1. 数据缓冲 ◦ 解决CPU和外设之间的速度差距
  2. 提供联络信息 ◦ 协调与同步数据交换过程
  3. 信号与信息格式的转换 ◦ 模/数、数/模转换,串/并、并/串转换,电平转换
  4. 设备选择
  5. 中断管理
  6. 可编程功能

统一编址的特点

优点

  1. 可以用访向存储器的指令来访问I/O端口,访问存储器的指令功能比较齐全,可以实现直接对I/O端口内的数据进行处理 ◦
  2. 可以将CPU中的I/O操作与访问存储器操作统一设计为一套控制逻辑,简化内部结构,同时减少CPU的引脚数目

缺点

  1. 由于I/O端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对减小
  2. 由于利用访问存储器的指令来进行I/O操作,指令的长度通常比单独I/O 指令要长,因而指令的执行时间也较长

串/并行通信的比较

串行通信:

  1. 传输线数量少,数据传输率较低
  2. 需要经过复杂的串/并转换
  3. 避免了信号线之间的串扰

RS-232(亦称COM接口)

并行:

传输线数量多 同频率下,数据传输率较高 无需串/并转换 存在信号线之间的串扰

IEEE-1284(亦称LPT接口)

差分信号传输技术

发送端在两根线上发送振幅相等、相位相反的信号(即差分信号) ◦ 信号接收端比较两个电压的差值,判断发送端发送的是逻辑0还是逻辑1

优点:◦ 抗干扰能力强 ◦ 时序定位准确

缺点:布线难度高

8255A

端口A:PA7~PA0;

端口B:PB7~PB0 ◦

均为8位的端口,但端口A的功能更为丰富 ◦ 可分别设定为输入端口或输出端口

端口C:PC7~PC0 ◦ 分成两个4位的端口,可分别设定为输入端口或输出端口

通常不用于普通的数据传送,而是作为端口A和端口B的“握手”信号

地址:A1、A0 (又称端口选择信号)

00:A

01:B

10:C

11 控制端口

XLAT指令

AL←(BX+AL)

AL= AL[BX]

方式选择控制字

写控制端口来设置方式选择控制字,

最高位为0,设置端口C按位置1/置0控制字

最高位为1,设置方式选择控制字

总线的分类

① 片总线,又称器件级总线 → “片上总线” ◦ 中央处理器芯片内部的总线

② 内总线,又称系统总线或板级总线 ◦ 计算机系统中各插件板之间信息传输的通路 ◦ 通常称为微型计算机总线的即指内总线

③ 外总线,又称通信总线 ◦ 计算机系统之间、或是计算机系统与其他系统(仪器、仪表、控制装置 等)之间信息传输的通路

总线模块

总线主模块(Bus Master) ◦ 具有总线控制能力 ◦ 示例:CPU、DMA控制器

总线从模块(Bus Slave) ◦ 能够对总线传输作出响应,但本身不具备总线控制能力 ◦ 示例:存储器

总线逻辑电路示意图

主模块给仲裁器申请,仲裁器授权

仲裁器控制 地址和控制、写数据

地址和控制、写数据连到各个从模块

各个从模块->读数据和响应->主模块

译码器控制读数据和响应,选中各个从模块

PCI Express

串行方式传输数据,依靠高频率获得高性能

全双工运作模式,同时进行数据发送和接收

点对点连接结构,而非传统的共享结构

采用差分信号传输

峰值带宽的计算公式:总线频率×2

PCIe链路可以由多个通道(Lane)组成 ◦ 目前PCIe链路可以支持1、2、4、8、12、16和32个Lane ◦ 即×1、×2、×4、×8、×12、×16和×32宽度的PCIe链路

总线标准的两种产生途径

事实标准 ◦ 计算机系统厂家所采用的一种总线,由于其性能优越,逐渐形 成一种被业界广泛支持和承认的事实总线标准

国际标准 ◦ 在国际标准组织或机构主持下开发和制定的总线标准,公布后 由厂家和用户使用

总线标准的内容

1、机械特性 • 规定模块插件的机械尺寸,总线插头、插座的规格及位置等

2、电气特性 • 规定总线信号的逻辑电平、噪声容限及负载能力等

3、功能特性 • 给出各总线信号的名称及功能定义

4、规程特性 对各总线信号的动作过程及时序关系进行说明

AHB Advanced High-performance Bus

先发控制和地址,再发数据

在第二个时钟上升沿,从模块采样HADDR和Control信号

在第二个时钟上升沿之后 ◦ 写传输:主模块驱动HWDATA信号 ◦ 读传输:从模块驱动HRDATA信号

在第三个时钟上升沿 ◦ 写传输:从模块采样HWDATA信号,完成传输 ◦ 读传输:主模块采样HRDATA信号,完成传输

未准备好,主模块所有信息扩展

时间重叠(overlap) ◦ 不同传输的地址和数据在时间上存在重叠 ◦ 充分利用地址总线和数据总线

HTRANS和HBURST

HTRANS:第一个NONSEQ,后面SEQ,空闲IDLE,BUSY主模块忙 不提供写数据,地址保持

HBURST:INCR4 +4

地址回卷的边界(假设数据宽度为4字节) ◦

WRAP4:在16的整数倍的地址处回卷(4×4) ◦

WRAP8:在32的整数倍的地址处回卷(4×8) ◦

WRAP16:在64的整数倍的地址处回卷(4×16)

ARM体系结构 中定义的“字” 为32位(4个字节),与x86体 系结构的定义不同

Halfword: 地址递增2

MIPS CPU的异常处理

在EPC中保存出现异常的指令的地址 ◦ 清空流水线中之后的指令 记录产生异常的原因 ◦ 转移到特定地址执行下一条指令

软件查询确定中断优先级

在中断服务程序的开始部分,需安排一段查询程序

查询的先后顺序体现不同设备的中断优先级 ◦ 先查的设备具有较高优先级 ◦ 后查的设备具有较低优先级

一般来说,总是先查询速度较快或是实时性较高的设备

硬件中断优先级编码电路

菊花链

当前PC机中的中断控制器

IO连南桥,IOAPIC连CPU APIC

定时器 8253

WR 输入CW控制信号后OUT端进入已知初始状态

N=4的后第一个CLK 下降沿开始计数,第二个CLK下降沿 -1,变0后OUT恢复

当GATE变低时,暂停计数

当GATE变高时,继续计数

计数方式

方式0:计数过程中的暂停和继续

方式2:分频器 每输入N个CLK脉冲,输出宽度为1个CLK周期的负脉冲,用于DRAM的定时刷新

  • 计算计数初值 1.19318MHz/(500*128) =18

方式3:方波发生器 对称方波或基本对称的矩形波,产生定时中断

  • 计算输出方波频率 1.19318MHz÷65536=18.2Hz

中断控制器和定时器在IBM PC/AT中的连接结构

Timer-OUT0(方式3)产生定时中断-连PIC

OUT1(方式2)-存储控制器-DRAM主存 定时刷新

OUT2(方式3)-连扬声器

南北桥架构的演变

主存控制器、PCIe先后移到CPU

Pentium Pro的超标量流水线

将复杂的x86指令 拆分成简单的微指 令(微操作,μop)

转移开销

  1. 排空流水线
  2. 从转移目标地址重新取指令

转移开销的构成

  1. “要不要转移?”:转移条件判定引起的开销
  2. “转移到哪里?”:生成目标地址引起的开销

延迟转移(Delayed Branching)技术

在编译过程中,通过编译器调度,在转移指令之后插入一条或几条适当 的指令

当被调度的指令执行完成后,转移指令的目标地址和判断条件都已计算 完成

转移预测(Branch Prediction)技术

  1. 转移条件判定的预测:预测“要不要转移”
  2. 转移目标地址的预测:预测“转移到哪里”

转移条件判定的预测

  1. 硬件固定预测不转移

    ◦ 在转移条件判定之前总是顺序地取下一条指令

    优点:实现简单;

    缺点:预测效果不佳

  2. 编译制导的预测 ◦

    在转移指令的编码中增加1位,来通知硬件是预测跳转还是预测不跳转

    优点:软件可根据指令类型和历史信息,对不同指令进行不同的预测

    缺点:需要软件支持;需要修改ISA;不适应多变的执行环境

  3. 基于偏移的预测

    相对偏移为负值则预测转移;否则,预测不转移

  4. 基于历史信息的预测(当前普遍采用)

    使用1位/两位

    对于循环程序,两种情况下可能需要重新计算转移地址 ① 首次进入循环时,预测错误:预测不发生转移,而实际发生转移 ② 退出循环时,预测错误:预测发生转移,而实际不发生转移

    假设有一段循环10次的代码被反复调用

    若使用1位历史信息,每轮调用时,2次预测错误 8次正确

    若使用2位历史信息,每轮调用时,1次预测错误 9次正确(开头仍预测转移)

    N位历史信息的转移预测器 继续提升,但很微弱

转移目标地址的预测

转移目标缓冲器 ◦ BTB: Branch Target Buffer

保存了此前若干次转移指令执行时的目标地址

进行BTB表项比较的时机

取指的同时(Xscale)

  1. 优点:在流水线较早阶段获得转移目标地址
  2. 缺点:每条指令均需访问BTB,功耗开销较大

译码完成后(Pentium)

  1. 优点:转移指令才需访问BTB,功耗开销较小
  2. 缺点:在流水线较晚阶段获得转移目标地址

预译码完成后,取指的同时(UltraSPARC III)

将上述两种方法的优点进行结合

Pentium BTB

11-01都预测发生转移,00预测不转移

若此指令实际发生转移,则按“预测错误”处理,在BTB中建立一个新 表项,设定“历史位”为11

“过程返回”指令的特点

优点

① 无需判定转移条件(均为无条件转移)

② 执行“过程返回”指令时,转移目标地址已经生成(早在执行“过程 调用”指令的时候生成)

③ “过程返回”指令的出现是可预期的(“过程调用”指令和“过程返 回”指令必须成对出现)

缺点

① 每次执行同一条“过程返回”指令时,转移目标地址往往不同

② 转移目标地址在存储器中,访问时间较长

③ 在流水线晚期才访问存储器获得转移目标地址

返回地址栈RAS

存放过程调用指令的下一条指令地址

片上总线的缺点

当主模块1长时间等待从模块2返回读数据时,造成了大量与此无关的传输无法发起

DDR4 bank grouping技术

  • 将传统Bank(如16个)划分为多个独立组(如4组,每组4 Bank)。
  • 组内Bank共享数据线,但组间可并行操作(类似多车道分流)

MSI

但是当处理器收到中断信号时,并不意味着PCI设备已经将数据写入存储器中,因为PCI设备只知道发送完毕的时间,不知道到达时间

  1. PCI设备在提交中断请求之前,向DMA写的数据区域发出一个读请求,当PCI设备完成这个总线传输后,再向处理器提交中断请求 ◦

    该方法硬件开销大,不容易实现,还将增加中断请求的延时

  2. 中断服务程序使用“读刷新”方法:中断服务程序在使用“PCI设备写入存储器”的这些数据之前,对该设备进行读操作

现实情况一般 不会出现问题

原因:从提交中断到CPU开始中断服务程序,所需时间较长,基本上可以保证此时数据已经写入存储器

但是这个驱动程序依然有Bug存在,一旦出错则难以定位

MSI中断:一种特殊中断

  • 设备需要中断时,向MSI目标地址写入特定数据(包含中断向量号)。
  • 内存控制器检测到该写入,将其转换为中断信号发送给CPU。

优点:

  1. 解决了多个设备共享中断信号的问题 • INTx引脚通常是几个设备共享
  2. 解决了每个功能设备只支持一个中断的问题
  3. “异步”中断的数据完整性问题 (MSI和数据写都是对内存的写,可以保证所有数据已经到达内存)

缺点:

  1. 要占用总线带宽

ARM指令格式

  1. 寄存器编号位域只有 4-bit,只能寻址16个 通用寄存器
  2. 功能位域的位置不 统一,给指令译码带来不便
  3. 所有的ARM指令都带有4-bit的条件码,都可以条件执行(如条件码为0000,EQ时才执行)

x86的理念

  1. 兼容性 ◦ 每款处理器包含该系列早期处理器的全部指令 ◦ 每款处理器包含该系列早期处理器的寄存器和操作方式
  2. 指令系统的增强和扩充 ◦ 对已有指令进行功能上的扩展和改进 ◦ 增加新指令

SIMD

S/M I:单个/多个指令

S/M D:单个/多个数据

MMX registers

MMX(MultiMedia eXtensions)是Intel在1996年(Pentium时代)引入的SIMD(单指令多数据)指令集扩展,主要用于加速多媒体处理(如音视频编解码、图像处理)。

与FPU共享寄存器,导致MMX和浮点运算不能混

饱和运算(Saturation Arithmetic)

1. 什么是饱和运算?

  • 一种处理数值溢出的方式:当计算结果超出数据类型范围时,结果会被截断到该类型的最大值/最小值,而非像普通运算那样回绕(wrap around)。

2. MMX中的饱和运算

  • 应用场景:图像/音频处理中,避免溢出导致的失真(如像素值超过255时直接保持255)。
  • MMX指令示例
    • PADDSB(饱和加法,8-bit有符号):127 + 1 = 127(而非-128
    • PSUBUSB(饱和减法,8-bit无符号):0 - 1 = 0(而非255

CPU vs GPU

CPU

  1. 强大的低延迟的ALU
  2. 大cache
  3. 复杂的control

GPU

  1. 高延迟的ALU,需要线程数更多,流水线节数更多
  2. 小cache
  3. 简单的control
posted @ 2025-06-15 22:59  lcyfrog  阅读(28)  评论(0)    收藏  举报