第五章 微机总线

总线技术

· 微型计算机系统的总线结构:以总线作为信息传输的公共通道
· 总线结构的特点:通过总线相互连接、实现数据传输;组态灵活、易于扩展等
· 广泛应用的总线都实现了标准化
· 便于在互连各个部件时遵循共同的总线规范

总线类型

· 芯片总线(Chip Bus)
芯片级互连,大规模集成电路芯片内部,或系统中各种不同器件连接在一起的总线
局部总线(Local Bus),微处理器的引脚信号
片内总线,大规模集成电路芯片内部连接
· 内总线(Internal Bus)
模板级互连,主机内部功能单元(模板)间连接的总线
板级总线、母板总线,或系统总线
系统总线(System Bus)是微机系统的主要总线
内部总线从一条变为多条,形成多总线结构
· 外总线(External Bus)
设备级互连,微机与其外设或微机之间连接的总线
过去,指通信总线;现在,常延伸为外设总线

微机总线层次结构
在这里插入图片描述

总线的数据传输

主设备(Master):控制总线完成数据传输
从设备(Slave):被动实现数据交换
某一时刻,只能有一个主设备控制总线,其他设备此时可以作为从设备
某一时刻,只能有一个设备向总线发送数据,但可以有多个设备从总线接收数据

  1. 总线操作
    · 总线请求和仲裁(Bus request & Arbitration)
    使用总线的主模块提出申请,总线仲裁机制确定把总线分配给请求模块
    · 寻址(Addressing)
    主模块发出将要访问的从模块地址信息以及有关命令,启动从模块
    · 数据传送(Data Transfer)
    源模块发出数据,经数据总线传送到目标模块
    · 结束(Ending)
    数据、地址、状态、命令信息均从总线上撤除,让出总线
  2. 总线仲裁
    · 总线仲裁:决定当前控制总线的主设备
    · 集中仲裁:系统具有中央仲裁器(控制器),负责主模块的总线请求和分配总线的使用
    · 分布仲裁:各个主模块都有自己的仲裁器和唯一的仲裁号,主模块请求总线时,发送其仲裁号,比较各个主设备仲裁号决定
  3. 同步方式
    · 同步时序
    总线操作过程由共用的总线时钟信号控制
    适合速度相当的器件互连总线,否则需要准备好信号让快速器件等待慢速器件(半同步)
    处理器控制的总线时序采用同步时序
    · 异步时序
    总线操作需要握手联络(应答)信号控制
    传输的开始伴随有启动(选通或读写)信号
    传输的结束有一个确认信号,进行应答
    操作周期可变、可以混合慢速和快速器件
  4. 传输类型
    · 读数据传送:数据由从设备到主设备
    · 写数据传送:数据由主设备到从设备
    · 猝发传送(数据块传送):给出起始地址,将固定块长的数据一个接一个地从相邻地址读出或写入
    · 写后读(Read-After-Write):先写后读同一个地址单元,适用于校验
    · 读修改写(Read-Modify-Write):先读后写同一个地址单元,适用共享数据保护
    · 广播(Broadcast):一个主设备对多个从设备的写入操作
  5. 性能指标
    · 总线宽度
    总线能够同时传送的数据位数
    位数越多,一次能够传送的数据量越大
    · 总线频率
    总线信号的时钟频率
    时钟频率越高,工作速度越快
    · 总线带宽(Bandwidth)
    单位时间传输的数据量
    总线带宽越大,总线性能越高
    总线带宽=总线传输速率=吞吐率
    总线带宽=传输的数据量÷需要的时间
    常用单位 1M=106
    每秒兆字节(MB/s) 每秒兆位(Mb/s)或每秒位(bps)

举例
5MHz的8086微处理器
16÷(4×0.2×10-6)bps=20×106 bps=2.5 MB/S
66MHz的Pentium,基本非流水线总线周期
64÷2×66×106 bps=264 MB/S
66MHz的Pentium,2-1-1-1猝发读周期
32÷5×66×106 B/S=422.4 MB/S

总线带宽 = 传输的数据量/需要的时间 = 字宽(长)*主频/ 时钟数

8086处理器的数据总线是16位,典型的时钟频率是5MHz,即每个时钟周期是0.210^-6s。8086需要4个时钟周期构成一个总线周期,实现一次16位数据的传送,带宽为
16 / (4
0.2*10^-6)b/s = 20 * 10 ^6b/s=20Mb/s = 2.5MB/s
1M = 10^6

总线信号和总线时序

· 地址总线
主控模块(如处理器)的地址总线输出
从模块(如存储器或I/O端口)的地址总线输入
· 数据总线
双向传输,在主从模块间传送、交换数据信息
· 控制总线
有输出也有输入信号
基本功能是控制存储器及I/O读写操作
还包括中断与DMA控制、总线仲裁、数据传输握手联络等

  1. 引脚信号
    信号的功能:用英文单词或英文缩写表示引脚名称
    信号的流向:处理器输出到外部,从外部输入到处理器内部
    有效方式:低电平、高电平有效,上升沿、下降沿有效、高电平和低电平都有效
    三态能力:高阻状态放弃对引脚的控制;其他设备控制该引脚
    在这里插入图片描述
  2. 总线时序
    · 总线时序(Timing)
    描述总线信号随时间变化的规律以及总线信号间的相互关系
    采用时序图形象化地表现时序
    · 指令周期:一条指令从取指、译码到最终执行完成的过程
    · 总线周期或机器周期:伴随有数据交换的总线操作
    · T状态:处理器的基本工作节拍,对应时钟周期

8086的引脚信号

处理器的外部特性表现在它的引脚信号上
40个引脚
在这里插入图片描述

地址/数据信号

· AD15~AD0(Address/Data)
地址/数据分时复用引脚,共16个引脚
单向输出地址总线,双向数据总线,三态输出
· A19/S6~A16/S3(Address/Status)
地址/状态分时复用引脚,4个三态输出信号
输出高4位地址、状态信号
· BHE*/S7(Byte High Enable/Status)
高字节允许/状态分时复用引脚,三态输出信号
输出低有效表示传送高字节数据,状态信号

总线复用:同一引脚在不同时刻具有不同功能

读写控制信号

· 8086处理器的引脚信号具有两种工作模式
面向小系统的最小组态模式:8086本身提供了系统所需要的全部控制信号
组成较大系统的最大组态模式:8086需要配合其他芯片形成控制信号,但可以连接数值协处理器、I/O协处理器等构成多处理器系统
· 两种组态的不同只是反映在外部引脚上
· 由一个引脚接高电平或低电平区别
· 内部工作方式一样

  1. 基本读写引脚
    · ALE(Address Latch Enable)
    地址锁存允许,三态、输出、高电平有效
    有效时,表示复用引脚正在传送地址信号
    · M/IO*(Memory/Input and Output)
    访问存储器或者I/O,三态、输出、高低电平均有效
    高电平(M),表示处理器访问存储器
    低电平时(IO*),表示处理器访问I/O端口
    · WR*(Write)
    写控制,三态、输出、低电平有效
    有效时,表示处理器正将数据写到存储单元或I/O端口
    · RD*(Read)
    读控制,三态、输出、低电平有效
    有效时,表示处理器正从存储单元或I/O端口读取数据
  2. 基本总线操作
    · 存储器读(Memory Read)
    处理器从存储器读取代码或读取操作数
    每条指令执行前都需从主存取指,以存储单元为源操作数的指令在执行时
    · 存储器写(Memory Write)
    处理器向存储器写入操作数,以存储单元为目的操作数的指令在执行时
    · I/O读(Input/Output Read)
    处理器从外设读取操作数
    只有执行输入指令IN时才有
    · I/O写(Input/Output Write)
    处理器向外设写出操作数
    只有执行输出指令OUT时才有

读写控制信号的组合
在这里插入图片描述

  1. 同步操作引脚
    · 同步操作
    读写操作要保证存储器或外设与处理器速度一致
    否则,慢速的I/O或存储器发出一个信号
    让快速的处理器等待
    · READY 就绪(准备好)
    输入信号,高电平有效表示可以进行数据读写
    利用该信号无效请求处理器等待数据
    处理器在进行读写前检测READY引脚

其他控制信号

· 处理器必定具有
地址总线、数据总线、基本读写控制信号
· 还有
中断请求和响应信号、总线请求和响应信号、时钟信号、复位信号、电源Vcc、地线GND

  1. 中断请求和响应引脚
    · INTR(Interrupt Request)
    可屏蔽中断请求,高电平有效的输入信号
    有效时,表示中断请求设备向处理器申请可屏蔽中断
    中断IF标志对该中断请求进行屏蔽
    主要用于实现外设数据交换的中断服务
    · INTA*(Interrupt Acknowledge)
    可屏蔽中断响应,低电平有效的输出信号
    有效时,表示来自INTR引脚的中断请求已被处理器响应
    · NMI(Non-Maskable Interrupt)
    不可屏蔽中断请求,上升沿有效的输入信号
    有效时,表示外界向CPU申请不可屏蔽中断
    中断级别高于可屏蔽中断请求INTR
    常用于处理系统发生故障等紧急情况下的中断服务
  2. 总线请求和响应引脚
    · HOLD
    总线请求,高电平有效的输入信号
    有效时,表示其他总线主控设备申请使用总线
    · HLDA(HOLD Acknowledge)
    总线响应,高电平有效的输出信号
    有效时,表示处理器已响应总线请求
    总线释放:地址总线、数据总线及具有三态输出能力的控制总线呈现高阻状态
  3. 其他引脚
    · RESET
    复位,高电平有效的输入信号
    有效时,将迫使处理器回到其初始状态
    8086复位后,寄存器CS=FFFFH,IP=0000H
    · CLK(Clock)
    时钟输入,频率稳定的数字信号
    处理器的基本操作节拍
    频率的倒数是时钟周期的时间长度

8086的总线时序

· 处理器以统一的时钟信号为基准,控制其他信号跟随时钟相应改变,实现总线操作
· 每个时钟周期,进行不同的操作、处于不同的操作状态(State)
T1 T2 T3 T4
· 8086处理器的基本总线周期:4个时钟周期
· 4个基本总线周期
读总线周期:存储器读和I/O读
写总线周期:存储器写和I/O写

写总线周期

· 完成对存储器或I/O端口的一次写操作
· T1状态
输出20位存储器地址A19~A0
M/IO输出高电平,表示存储器操作
或者M/IO
输出低电平,表示I/O操作
ALE输出正脉冲,表示复用总线输出地址
· T2状态
输出控制信号WR*和数据D15~D0
· T3状态
检测数据传送是否能够完成
· T4状态
完成数据传送

写总线周期时序
在这里插入图片描述
等待状态
处理器运行速度远远快于存储器和I/O端口
控制READY信号为低无效,不进入T4状态,插入等待状态Tw
Tw状态:引脚信号延续T3时的状态
一个Tw状态的长度是一个时钟周期
在Tw的前沿,继续对READY进行测试
无效继续插入Tw;有效时转入T4状态

具有一个Tw的存储器写总线周期时序
在这里插入图片描述

读总线周期

· 完成对存储器或I/O端口的一次读操作
· T1状态
输出20位存储器地址A19~A0
M/IO输出高电平,表示存储器操作
或者M/IO
输出低电平,表示I/O操作
ALE输出正脉冲,表示复用总线输出地址
· T2状态
输出控制信号RD*,存储器或I/O端口发送数据
· T3状态和Tw状态
检测数据传送是否能够完成
· T4状态
获取数据,完成传送

读总线周期时序
在这里插入图片描述

微机系统总线

PC总线的发展

· 16位PC机:单总线结构
IBM PC机和IBM PC/XT机的IBM PC总线
IBM PC/XT机的IBM AT总线,即ISA总线
· 早期32位PC机
与MCA总线竞争的EISA总线(扩展 ISA总线)
32位局部总线VESA
· 当前32位PC机:多总线结构
存储总线
系统总线:外设部件互连PCI、PCI-X
显示总线:图形加速接口AGP、PCI-E
外设接口:键盘接口、鼠标接口、并行打印机接口、串行通信接口,通用串行接口USB,IEEE 1394接口

ISA总线

· 16位系统总线,用于IBM PC/AT及其兼容机
· 由前62引脚(A和B面)和后36引脚(C和D接面)两个插槽组成:
1.IBM PC机和IBM PC/XT机的IBM PC总线
前62个信号,其中8位数据总线、20位地址总线
时钟频率4.77MHz,4个时钟周期传送8位数据
2.IBM AT机增加部分
后36个信号,16位数据引脚和24位地址引脚
8MHz总线频率,2个时钟周期传送16位数据

  1. 数据和地址线
    SD15~SD0:16位双向数据信号线
    SBHE:高字节允许信号
    SA19~SA0:低20位经过锁存输出的地址线
    LA23~LA17:高7位可锁存地址信号线

16位数据总线支持16位和8位设备,24位地址总线寻址16MB主存空间

  1. 读写控制线
    BALE:缓冲地址锁存允许,指示CPU总线周期
    IOR*,IOW*:I/O读和I/O写信号
    MEMR*,SMEMR*:存储器读
    MEMW*,SMEMW*:存储器写
    MEMCS16*:16位存储器总线周期
    IOCS16*:16位I/O总线周期
    I/O CH RDY:I/O通道准备好输入信号
    0WS*:零等待状态(Zero Wait State)
  2. 中断请求线
    IRQ3~IRQ7,IRQ9~IRQ12,IRQ14,IRQ15
    可屏蔽中断请求信号,优先权顺序
    IRQ9~IRQ12,IRQ14,IRQ15,IRQ3~IRQ7
    16位PC机共有16个请求引脚
    IRQ0和IRQ1用于系统主机板的时钟和键盘中断
    IRQ2用于两个中断控制器连接
    IRQ8用于实时时钟
    IRQ13连接数值协处理器
    其余引向系统总线,有些已分配给系统外设
  3. DMA传送控制线
    AEN:地址允许,指示DMA总线周期
    DRQ0~DRQ3,DRQ5~DRQ7:DMA请求
    DACK0~DACK3,DACK5~DACK7:DMA响应
    T/C:计数结束信号,表示DMA传送结束
    MASTER*:主设备
    16位PC机的共有8个DMA通道
    DRQ0~DRQ3用于8位DMA传送
    DRQ5~DRQ7用于16位DMA传送
    DRQ4已经用于连接两个DMA控制器

PCI总线

  1. PCI总线信号
    地址和数据引脚
    AD[31::0],AD[63::32]:64位地址和数据复用信号
    C/BE[3::0]#,C/BE[7::4]#:命令和字节有效复用信号
    PAR,PAR64:奇偶校验信号
    接口控制引脚
    FRAME#:帧信号,表示总线周期开始
    IRDY#:初始方就绪信号
    TRDY#:目标方就绪信号
    STOP#:停止信号
    DEVSEL#:设备选择信号
    IDSEL#:初始化设备选择信号
    LOCK#:封锁信号
    在这里插入图片描述
  2. PCI总线周期
    · I/O读写周期
    主设备与I/O设备交换数据,不支持猝发传送
    · 存储器读、存储器行读、存储器多重读周期
    猝发读取不同的数据量
    · 存储器写周期:猝发写入数据
    · 存储器写和无效周期
    保证写入,同时广播“无效”信息
    · 中断响应周期:响应I/O设备中断
    · 特殊周期:主设备广播信息到多个目标设备
    · 双地址总线周期:传输64位地址
    · 配置读和写周期
    对PCI总线设备的配置信息进行读写,实现自动配置
  3. PCI总线时序
    · 同步时序协议,数据传输需要两个阶段
    第一个阶段(一个时钟):提供地址
    第二个阶段(最少一个时钟):交换数据
    · 非猝发传送需要2个时钟周期
    · 支持无限猝发传送,第一个时钟提供地址,后续时钟交换数据,也就是2-1-1-1……
    · 最大总线带宽
    每个时钟传送64位数据,时钟频率66MHz
    8×66 MB/S=528 MB/S
    在这里插入图片描述
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值