PC_Bus_总线性能指标/频率单位
总线构成和性能指标
-
总线复用:
- 一条信号线分时传输两种信号
- 比如总线多路复用,用同一组物理线路传输地址码和数据信息
-
信号线数:
- 地址总线,数据总线,控制总线三种信号线的总和
-
总线传输周期
- 一次总线操作所需要的时间(有4个阶段)
- 申请
- 寻址
- 传输
- 结束
- 通常由若干总线时钟周期构成
- 一次总线操作所需要的时间(有4个阶段)
-
总线时钟周期
- 计算机有统一的时钟,控制整个计算机的各个部件,总线也受到此时钟的控制
- 时钟同步/异步
- 总线上的数据与时钟同步工作的总线称为同步总线
- 与时钟异步的称为异步总线
-
总线时钟频率 F M F_M FM
- 即机器的时钟频率,时钟周期的倒数
-
总线频率(总线工作频率)F
-
类似于机器主频,总线上各种操作的频率是总线周期的倒数
-
总线频率不一定等于机器时钟频率(总线时钟频率)
-
总线工作频率不总是等于总线时钟频率
- 比如,每个时钟周期可以传送两次数据(上升沿/下降沿各一次)
- 那么如果工作频率是时钟频率的2倍
-
例:
-
机器时钟频率为$F_M=$500MHz,字长为32bit(4B)的计算机,传输一个字需要5个时钟周期
-
那么总线周期
- T B = 5 T M f B = 1 5 f M = 1 5 × 500 M H z = 100 M H z v B = w × f B = 4 B × 100 M s − 1 = 400 B p s T_B=5T_M \\ f_B=\frac{1}{5}f_M=\frac{1}{5}\times{500MHz}=100MHz \\v_B=w\times f_B=4B\times{100Ms^{-1}}=400Bps TB=5TMfB=51fM=51×500MHz=100MHzvB=w×fB=4B×100Ms−1=400Bps
-
-
-
总线宽度W
- 数据总线的根数(用bit来表示),比如8位
-
总线带宽V
- 总线的数据传输速率(上限)
- 单位时间内,总线上传输数据的位数
- 通常用每秒传输信息的字节数(Byte/s或者兆字节美秒MByte/s简写为MBps)来衡量
最重要指标(3个)
-
总线宽度W(数据位宽度 W D W_D WD)
- 如果给出的说明包含数据位和校验位,校验位的传输不计入宽度,只有数据位宽度才是有效的
- 以极端的方式考虑和理解:假设传输数据的宽度为1,校验位宽度为100,那么也只能够按照数据位宽度1来计算
- 校验位的增多不会加快传输任务的完成
- 如果给出的说明包含数据位和校验位,校验位的传输不计入宽度,只有数据位宽度才是有效的
-
总线频率 f B f_B fB
- 更准确的说,应该是数据的传输频率
-
总线带宽V
-
如果总线是单向传输的
-
V 1 = W D f B = W D ( k f M ) 其 中 : f B = k f M V_1=W_Df_B=W_D(kf_M) \\其中:f_B=kf_M V1=WDfB=WD(kfM)其中:fB=kfM
-
公式 f B = k f M f_B=kf_M fB=kfM中的
- k k k表示一个时钟时钟周期总线可以完成从信息传送次数为k
-
W
D
W_D
WD数据总线中数据位宽度
- 在给出数据位和校验位的时候需要关心
- 否则一般默认就是数据总线宽度
- Note:
- W D W_D WD还有一层意思就是每个总线工作周期可完成的传输数据量
- 因此 W D × f B W_D\times{f_B} WD×fB就是每秒钟可以传输的数据总量,也就是带宽
- f M f_M fM表示时钟频率(总线时钟频率=机器时钟频率)
-
f
B
f_B
fB是总线工作频率
- f B = k f M f_B=kf_M fB=kfM
- V 1 V_1 V1下标表示单向传输
-
-
如果总线支持全双工双向传输
- V = 2 V 1 = 2 W D f B = 2 W D k f M V=2V_1=2W_Df_B=2W_Dkf_M V=2V1=2WDfB=2WDkfM
-
-
例如:
-
总线频率为33MHz
-
总线宽度为32bit
-
总线带宽
- v = S T = S f = 32 b i t × 33 M H z v = 4 B × 33 M H z = 4 B × 33 M s − 1 = 132 M B s − 1 = 132 M B p s v =\frac{S}{T}=Sf =32bit\times{33MHz} \\ v=4B\times33MHz=4B\times33Ms^{-1}=132MBs^{-1}=132MBps v=TS=Sf=32bit×33MHzv=4B×33MHz=4B×33Ms−1=132MBs−1=132MBps
-
🎈频率和周期
-
某 个 频 率 为 n H z , 表 示 1 s 时 间 内 可 以 执 行 有 n 个 周 期 某个频率为nHz,表示1s时间内可以执行有n个周期 某个频率为nHz,表示1s时间内可以执行有n个周期的任务
-
单 个 周 期 时 间 为 T = 1 f = 1 n 单个周期时间为T=\frac{1}{f}=\frac{1}{n} 单个周期时间为T=f1=n1
单位
-
1 M = 1 × 1 0 6 H z = 1 s = s − 1 = p s H z × s = 1 1 H z = H z − 1 = 1 H z = 1 s − 1 = 1 s 1M=1\times10^6 \\ \\Hz=\frac{1}{s}=s^{-1}=ps \\ \\Hz\times{s}=1 \\ \frac{1}{Hz}=Hz^{-1}=\frac{1}{Hz}=\frac{1}{s^{-1}}=1s 1M=1×106Hz=s1=s−1=psHz×s=1Hz1=Hz−1=Hz1=s−11=1s
- 设 频 率 为 100 M H z ; 周 期 为 1 100 M H z = 1 1 0 2 × 1 0 6 s − 1 = 1 0 − 8 s = 10 × 1 0 − 9 s = 10 n s 设频率为100MHz;周期为 \\ \frac{1}{100MHz}=\frac{1}{10^2\times10^6s^{-1}}=10^{-8}s =10\times{10^{-9}}s=10ns 设频率为100MHz;周期为100MHz1=102×106s−11=10−8s=10×10−9s=10ns
总线事务🎈
- 从请求总线到完成总线使用的操作序列称为总线事务
- 一次总线操作所需要的时间(有4个阶段)
- 申请
- 仲裁(优先级)
- 决定下一个传输周期的总线使用权
- 寻址
- 传输
- 释放(让出总线使用权)
总线仲裁方式
-
链式查询
- 控制总线中有3根线(属于控制总线)用于总线控制(传递三类信号)
- 从IO接口指向总线控制部件
- BS总线忙
- IO设备向总线控制反馈是否正在使用总线
- BR总线请求
- BS总线忙
- 从总线控制部件指向IO接口
- BG总线同意(允许)
- 解释:
- 总线请求(BR, BREQ 或 BRQ)**。**表明发出该请求信号的设备要使用(数据)总线。
- 总线允许(BG 或 BGRT)**。**表明CPU允许接收到信号的设备使用总线。(G:grant授权允许)
- 中断请求(IRQ)。低优先级设备请求CPU中断。
- 从IO接口指向总线控制部件
- 如果BG到达的接口A恰有总线请求BR,那么BG信号就不再往下传递
- 该接口A就获得了总线的控制权
- 这种方式最为简单,仅需要3根(有的教材也称2根)控制线(就可以确定总线使用权分配个哪个设备)
- 但是容易发现,优先级低的设备可能很难获得请求
- 对电路故障很敏感,如果BG在某处故障,后面的设备将得不到BG信号
- 控制总线中有3根线(属于控制总线)用于总线控制(传递三类信号)
-
计数器定时查询方式
-
相对于链式查询,该计数器定时查询比链式查询
- 少了一根总线同意线BG
- 多了一组设备线BD
- 设备地址线充当了总线允许(统一)的角色
- 需要的设备地址线根式为
⌈
log
2
n
⌉
\lceil{\log_2{n}}\rceil
⌈log2n⌉
- 满足 2 x = n 2^x=n 2x=n,(应该要通过一个译码器来指定具体设备,有待考证)
- 从总线控制部件指向各个IO接口
-
一根总线请求BR
-
一根总线忙BS
-
当总线控制部件接收到BR送来的总线请求信号(BR)后,
- 在总线未被使用(BS=0)的情况下,总线控制部件中的计算器开始计数
- 并通过设备地址线向各个设备发送一组地址信号
- 🎈当某个请求占用总线的设备X的设备地址和计数器值一致的时候,X就获得了总线的使用权
- 此时终止计数查询(计数器值记为E)
-
特点:
-
计数可以从0开始
- 那么一旦设备的优先级次序被固定,设备的优先级就是按照 0 , 1 , ⋯ , n 0,1,\cdots,n 0,1,⋯,n的顺序降序排列(固定不变)
- 每次新的处理都从E=0开始
- 这种情况下,退化为链式查询,但是对于控制线的数量较多,对于线路故障的敏感性好于链式查询
-
计数也可以从上一次计数的终点开始
- 那么就是一种循环方法
- 此时,设备使用总线的优先级相等
-
计数器初值还可以有程序设置,从而实现优先级次序的改变!
-
-
这种方式对于电路故障不如赖链式查询方式敏感,但是增加了控制线数量
-
n个IO接口需要 ⌈ log 2 n ⌉ \lceil{\log_2{n}}\rceil ⌈log2n⌉根设备地址线
-
总的控制线 ⌈ log 2 n ⌉ + 2 \lceil{\log_2{n}}\rceil+2 ⌈log2n⌉+2
- 2表示BR,BS
-
-
独立请求方式
- 每个IO接口都具有各自的总线请求(BR)和总线同意
- 响应最快
- 通过增加控制线数为代价(n个设备需要的控制线数达到2n+1)
- +1表示BS线
定时方式
同步定时方式
- 采用统一的时钟信号(统一时标)控制数据的传送
- 总线通信的双方采用同一个时钟信号
- 但是一次总线事务不一定在一个周期内完成
- 时钟频率不一定大亨与工作频率
时标
- 通常由cpu的总线控制部件发出
- 虽然可以有各个部件的时序发生器发出
- 但是用于同步的时钟信必须来自总线控制部件
- 即,同步时钟信号不能够由各自设备各自提供
异步定时方式
- 同步通信方式也叫应答方式
- 没有公用的时钟信号
- 完全靠双方相互制约的握手信号来实现定时控制
半同步通信
- 兼具同步通信和异步通信的特点
- 例如,在某个采用半同步方式的总线总是从某个时钟开始
- 在每个信号到来之前,采样Wait信号
- 如果无效,则说明数据未准备好
- 那么下个时钟到来之时,再采样Wait信号,知道信号有效时,去数据线上取数据
- PCI总线是一种半同步总线
- 所有事件都在时钟下降沿同步
- 总线设备在时钟开始的上升沿采样总线信号
- 在每个信号到来之前,采样Wait信号
分离式通信
- 客服了前三种方式的消极等待
突发传送
-
突发(猝发)传送总线事务是指,发送方在传输完地址后,连续进行若干次数据的发送
- 即一次传输一个地址和一批地址连续的数据
- 将多个数据单元作合作一个独立传输处理,最大化设备的吞吐量
- 一般使用支持突发传送方式的总线来提高存储器的读写效率
-
可以连续传送地址连续的数据
- 由于一般的传送方式(非猝发)方式,需要走遍4个总线事务的几个阶段
- 申请>仲裁>寻址>传输>释放
- 而使用猝发方式,可以在传输阶段不释放总线地连续读取数据(地址连续的数据),提高传输效率
- 由于一般的传送方式(非猝发)方式,需要走遍4个总线事务的几个阶段
-
对比
- 并行传输:传输过程中有多个数据位同时在设备之间进行传输
- 串行传输:数据的二进制代码在一条物理通道上以位为单位,按时间逐位传输的方式
- 同步传输:传输过程中由统一的时钟控制,同步时钟信号来自于总线控制器
例
- 某个同步总线的时钟频率(机器频率)为100MHz,换算为时钟周期为
1
100
×
1
0
6
M
s
−
1
=
10
n
s
\frac{1}{100\times{10^6}Ms^{-1}}=10ns
100×106Ms−11=10ns
- 总线宽度为32bit=4B
- 采用地址/数据线复用方案(传输地址和数据是串行执行的,只有将地址传输完毕后,才开始传输数据)
- 传输一个地址或者数据都是占用一个时钟周期
- 如果不采用猝发方式传送,那么传送一个数据,就包含一个总线周期,即至少包含两个时钟周期
- 如果采用猝发方式,在存取地址连续的数据时,可以在传输数据的环节有提高效率
- 问,在最好的情况下(处理的数据地址连续),将128bit写入主存需要多少时间
- 分为两部分:
- 传输一次地址:占用一个时钟周期10ns
- 传 输 连 续 的 4 次 ( 128 / 32 ) 数 据 , 耗 时 4 × 10 = 40 n s 传输连续的4次(128/32)数据,耗时4\times{10}=40ns 传输连续的4次(128/32)数据,耗时4×10=40ns
- Note:即使采用猝发方式传送,向量两次数据传送的间隔不能够比传送周期还要短,会造成冲突
- 低位交叉存储器的流水读取中,知道这一点限制是重要的交叉存取的度m就是存取周期/传送
- 总耗时50ns
- 分为两部分:
多通道存储器总线
- 存储器通道数
k
k
k相当于总线条数,如果单通道(单条总线)的带宽为
v
0
v_0
v0,那么
k
k
k通道的总线带宽为
k
v
0
kv_0
kv0
- 如果单条总线
例
-
某3通道存储器总线,各通道的工作频率为$f_B=$1333MHz
-
总线宽度 W = W D = 64 b i t = 64 8 = 8 B y t e W=W_D=64bit=\frac{64}{8}=8Byte W=WD=64bit=864=8Byte
-
那么单条通道的带宽 v 0 = W D f B = 8 × 1333 M B / s v_0=W_Df_B=8\times{1333MB/s} v0=WDfB=8×1333MB/s
-
3通道总带宽为: v = 3 v 0 = 24 × 1333 M B / s ≈ 32 G B / s v=3v_0=24\times{1333MB/s}\approx32GB/s v=3v0=24×1333MB/s≈32GB/s
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2023-09-13 java_从键盘输入一个任意的字符串(如:aaabbababaaaababababa),统计该字符串中长度为i的子串出现次数(i从1开始到上述字符串长度结束)
2023-09-13 matlab_利用在线搜索学习matlab(在线中文文档的使用方法)
2021-09-13 apple icon:view only?duplicate to your drafts to do edit