本文共 4663 字,大约阅读时间需要 15 分钟。
本次笔记内容:
P51 计算机组成原理(51)
P52 计算机组成原理(52)
我的计组笔记汇总:
视频地址:
幻灯片见我的 GitHub 仓库:
本节课幻灯片:
主要教学内容
- 总线概念
- 总线分类
- 总线组成
- 设计总线的关键问题
- 总线举例
处理器和其他组成部分的接口
- 输入/输出系统设计
受到多方面因素的影响
(可扩展性,可恢复性等) - 性能
- 访问延迟
- 吞吐量
- 设备和系统的连接关系
- 层次存储系统
- 操作系统
- 用户和应用也各不相同
什么是 bus?
- 公共汽车:一种大众交通工具
- 一组导线
共同点: 多个使用者共享通道
计算机总线
- 共享的信息通道
- 用于连接计算机多个子系统(部件)
- 总线也是
连接复杂巨系统的一种基本工具
使用总线的好处
- 解决外部设备“杂”的问题:
- 容易增添新的设备(遵守总线传输协议即可)
- 使用相同总线标准的外设容易在不同计算机间兼容(有了统一标准,可以生产细分了)
- 降低成本:
- 简化设计
总线的不足
- 容易成为信息通道的瓶颈
- 总线的
最高速度
(性能瓶颈)主要由下列因素决定:
单总线计算机:主板总线
- 使用一条总线:
- 处理器和主存储器之间通信
- 主存储器和输入/输出设备之间通信
- 优点:简单、成本低
- 缺点:速度慢,总线将成为系统瓶颈
- 应用: IBM PC – ISA EISA、PDP-1
在过去,CPU性能不是很高(与外设相比),因此使用这种总线问题不明显。
双总线系统
- 输入/输出总线通过适配器和处理器-主存总线相连:
- 处理器-主存总线:主要用于处理器和主存储器之间的通信
- 输入/输出总线:为输入/输出设备提供信息
- 应用举例:
- Apple Macintosh II
- NuBus: 处理器、主存和选定的少量I/O设备
- SCSI总线:其余I/O设备
三总线系统
- 主板总线连接到处理器-主存总线:
- 处理器-主存总线主要用于处理器和主存之间数据交换
- I/O总线连接到主板总线
- 优点:
- 例:现代PC基本采用的结构
传统的x86计算机的总线
如上,低俗设备,连接到 PCI ,称之为南桥。
满足不同外部设备被挂到总线的差异。
新的i7处理器
新x86系统的总线连接
总线类型
- 处理器-主存总线 (专用)
- 传输距离短、速度高
- 主存储器专用
- 直接和处理器连接
- 优化处理使之适应Cache块传送
- 输入/输出总线(行业标准)
- 通常距离较长,速度较慢
- 需要适应多种输入/输出设备
- 和处理器-主存总线通过桥连接(或通过主板总线)
- 主板总线(行业标准或专门设计)
- 主板:连接各部件器件的底盘
- 应允许处理器、主存储器和输入/输出设备互连
- 应有价格优势:所有组件连接在一条总线上
总线的一般组成
控制线: - 总线请求信号及数据接收信号
- 指明数据线上传输信息的类型
数据线
(在源设备和目标设备间传送信息):
总线标准
- 设备用于人机交互
- 总线定义了交互的通信协议/标准:
- PCI
- EISA
- SCSI
- USB
- Bluetooth
- …
标准十分重要:
- 不同公司设计的外部设备,应该能在同一计算机上安装使用
- 不同公司的计算机也应该可以使用某一外部设备
- 外部设备的通讯速度差异很大
- 标准是抽象的设计
- 标准可以影响性价比,可靠性等
总线结构(标准的体现)
一次传输,叫做“事务”。
总线相关概念
- 总线
主设备
:有能力控制总线,发起总线事务 - 总线
从设备
:响应主设备请求 - 总线通信协议:定义总线传输中的事件顺序和时序要求
- 异步总线传输: 控制信号(请求,应答)作为总控信号
- 同步总线传输:使用共同的时钟信号
主设备和从设备
总线事务
包括两个部分:
主设备
是总线事务
的发起者:
从设备
是总线事务
的响应者:
- 若主设备发出的是读命令,则将数据发送到主设备
- 否则,接收主设备发来的写入数据
仲裁:获得总线使用权
总线设计中重要问题之一:
可通过主—从设备的安排来避免冲突:
- 只允许总线主设备发起总线事务,控制所有总线请求
- 从设备响应主设备的读写请求
最简单的设计:
- 处理器作为唯一的总线主设备
- 所有总线请求均由处理器控制
- 主要缺点:
处理器被卷入到每一个总线事务中
多个总线主设备
- 总线仲裁的基本要求:
- 某总线主设备使用总线前应发出总线请求
- 只有得到授权后,主设备才能使用总线
- 使用完毕后,主设备应通知仲裁器
- 总线仲裁器在以下两方面取得平衡:
- 优先权:优先级高的设备应该得到优先服务
- 公平性:最低优先级的设备也不能永远被排除在总线服务之外
- 总线仲裁方式:
- 集中仲裁和分布仲裁
- 集中仲裁: 例如,交通警察在路口指挥交通
- 分布仲裁: 路口没有交通警察,所有车辆先停下,确认其他方向没有来车后通行
- 按优先级仲裁或轮循仲裁
总线仲裁方式
集中仲裁:
分布仲裁:
菊链仲裁
- 优点:简单
- 缺点:
- 无法保证公平性:低优先级设备可能得不到总线使用权
- 总线授权信号的逐级传递限制了总线的速度
集中平行仲裁
用于几乎所有处理器:主存总线和一些高速输入/输出总线
传输:同步和异步总线
同步总线:
- 控制线中包含有一根时钟信号线
- 传输协议根据时钟信号制定:
- 例如:主设备提出总线请求后5个时钟周期,可以获得能否使用总线的信号。
- 优点:逻辑简单、高速
- 缺点:
- 总线上所有设备必须按时钟频率工作
- 为防止时钟信号扭曲,高速工作时,总线距离必须足够短
异步总线:
不使用统一的时钟
- 可适应设备的不同速度
不用担心时钟信号扭曲,距离可较长
(如打印机) - 使用握手协议
最简单的总线模式(同步)
- 所有设备同步工作
- 所有设备以同样的速度工作
- => 简单的协议
简单的同步协议
就是处理器-主存储器总线也比它复杂:
典型的同步协议
- 从设备指示何时开始传送数据
- 实际传送开始后,按总线时钟传送数据
同步定时
典型的异步协议(握手)
- 主存储器收到外部设备发出的 ReadReq 信号,从数据总线读到地址,并发出 Ack 信号。
- 外部设备发现 Ack 信号为高 =>释放 ReadReq 和数据
- 主存发现 ReadReq 信号为低,将 Ack 信号置低
- 主存读出数据后,将数据送总线,并将 DataRdy 置高
- 外部设备发现 DataRdy 为高,读数据,并发出 Ack 信号
- 主存发现 Ack 为高,将 DataRdy 拉低,并释放数据线
- 外部设备发现 DataRdy 为低,拉低 Ack 信号,指示传送结束
异步定时
增加总线带宽
增加总线的宽度
分别设置数据总线和地址总线
采用成组传送方式
- 一个总线事务传送多个数据
- 每次只需要在开始的时候传送一个地址
- 直到数据传送完毕才释放总线
- 代价
多主设备总线提高事务数量
- 仲裁重叠
- 总线占用
- 在没有其他主设备请求总线的情况下,某主设备一直占用总线,完成多个总线事务
- 地址、数据传送重叠
- 在现代内存总线上,应用了上述全部技术
PCI总线
- 外部组件互连总线
- 时钟频率:33MHz或66MHz(CLK)
- 集中仲裁方式(REQ#、GNT#)
- 32位地址和数据线互用(AD)
- 总线协议
- 总线周期:内存读、内存写、内存成组读等(C/BE#)
- 地址握手和保持(FRAME#、IRDY#)
- 数据宽度(C/BE# )
- 通过IRDY#和TRDY#握手信号传输变长的数据块
- 最大带宽达133MB(33MHz)或528MB(66MHz)
32位PCI总线的信号
PCI 总线的读/写事务
- 所有信号在时钟正边沿采样
- 集中平行仲裁
- 所有事务可无限制成组传送
- 地址段起始于FRAME#信号有效
- 第一时钟周期主设备发出cmd和address
- 数据传送
- 当主设备准备好传输数据,主设备发出IRDY# 信号
- 从设备准备好传输数据,发出TRDY#信号
- 上述两个信号均有效时的时钟上升沿开始传送数据
- 主设备准备结束数据传送时,将FRAME#信号失效
PCI 总线读事务
- 总线主设备得到授权后,将FRAME#置为有效,开始读事务。并通过AD发送要读的地址,C/BE#发送读命令
- 从设备从AD上识别是否被选中
- 主设备释放对AD的控制,同时,在C/BE#上给出AD上哪些位是有用的(1~4Byetes)。并置IRDY#为有效,表示已准备好,可以接收数据。
- 被选中的从设备置DEVSEL信号,表示已收到命令并可响应。将读出的数据送AD,并置TRDY#通知主设备接收
- 主设备可在周期4读到第一个数据。并根据需要决定是否要改变C/BE#的值
- 如果从设备的速度不高,则需要插入等待周期。 主设备通过FRAME信号通知从设备结束数据传输,并将IRDY置高 从设备相应地将TRDY和DEVSEL信号置高,总线返回到空闲状态
PCI写事务
PCI优化
- 尽量使总线有效传输
- 总线占用
- 为上一主设备保留总线授权,直到有其他主设备申请使用总线
- 得到授权的主设备可在不仲裁的情况下直接开始下一传送过程
- 仲裁时长
- 主设备和从设备尽力延长传输流(使用xRDY)
- 从设备使用STOP (abort or retry)信号终止连接
- 主设备通过FRAME信号终止连接
- 仲裁器通过GNT信号终止连接
- 延迟(挂起, 时段分离)事务
PCI的其它问题
中断:
Cache一致性:
加锁:
可配置地址空间
总线发展趋势
- 逻辑总线,物理交换
- 许多总线已采用新的点到点标准
- 3GIO
- PCI Express
- Serial ADA
总线参数选择
选择 | 提高性能 | 降低成本 |
总线宽度 | 将地址和数据线分开 | 互用地址和数据线 |
数据宽度 | 越宽越快(32位) | 越窄越廉价(8位) |
大小 | 多字可减少总线开销 | 传送单字传送简单 |
主设备 | 多主设备(仲裁) | 单主设备 |
时钟 | 同步 | 异步 |
协议 | 并行 | 串行 |
DMA使用内存总线的方式
独占使用:当外设要求传送一批数据时,由DMA控制器发一个信号给CPU。DMA控制器获得总线控制权后,开始进行数据传送。一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。
周期挪用(周期窃取):当I/O设备没有 DMA请求时,CPU按程序要求访问内存:一旦 I/O设备有DMA请求,则I/O设备挪用一个或几个周期。(随时,一旦冲突,DMA优先)
DMA与CPU交替访内:一个CPU周期可分为2个周期,一个专供DMA控制器访内,另一个专供CPU访内。不需要总线使用权的申请、建立和归还过程。
转载地址:http://ptlxf.baihongyu.com/