PC_Bus_总线性能指标/频率单位

总线构成和性能指标

  • 总线复用:

    • 一条信号线分时传输两种信号
    • 比如总线多路复用,用同一组物理线路传输地址码和数据信息
  • 信号线数:

    • 地址总线,数据总线,控制总线三种信号线的总和
  • 总线传输周期

    • 一次总线操作所需要的时间(有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×100Ms1=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×33Ms1=132MBs1=132MBps

🎈频率和周期

  • 某 个 频 率 为 n H z , 表 示 1 s 时 间 内 可 以 执 行 有 n 个 周 期 某个频率为nHz,表示1s时间内可以执行有n个周期 nHz,1sn的任务

  • 单 个 周 期 时 间 为 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=s1=psHz×s=1Hz1=Hz1=Hz1=s11=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×106s11=108s=10×109s=10ns

总线事务🎈

  • 从请求总线到完成总线使用的操作序列称为总线事务
  • 一次总线操作所需要的时间(有4个阶段)
    • 申请
    • 仲裁(优先级)
      • 决定下一个传输周期的总线使用权
    • 寻址
    • 传输
    • 释放(让出总线使用权)

总线仲裁方式

  • 链式查询

    • 控制总线中有3根线(属于控制总线)用于总线控制(传递三类信号)
      • 从IO接口指向总线控制部件
        • BS总线忙
          • IO设备向总线控制反馈是否正在使用总线
        • BR总线请求
      • 从总线控制部件指向IO接口
        • BG总线同意(允许)
      • 解释:
        • 总线请求(BR, BREQ 或 BRQ)**。**表明发出该请求信号的设备要使用(数据)总线。
        • 总线允许(BG 或 BGRT)**。**表明CPU允许接收到信号的设备使用总线。(G:grant授权允许)
        • 中断请求(IRQ)。低优先级设备请求CPU中断。
    • 如果BG到达的接口A恰有总线请求BR,那么BG信号就不再往下传递
      • 该接口A就获得了总线的控制权
    • 这种方式最为简单,仅需要3根(有的教材也称2根)控制线(就可以确定总线使用权分配个哪个设备)
    • 但是容易发现,优先级低的设备可能很难获得请求
    • 对电路故障很敏感,如果BG在某处故障,后面的设备将得不到BG信号
  • 计数器定时查询方式

    • 相对于链式查询,该计数器定时查询比链式查询

      • 少了一根总线同意线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总线是一种半同步总线
        • 所有事件都在时钟下降沿同步
        • 总线设备在时钟开始的上升沿采样总线信号

分离式通信

  • 客服了前三种方式的消极等待

突发传送

  • 突发(猝发)传送总线事务是指,发送方在传输完地址后,连续进行若干次数据的发送

    • 即一次传输一个地址和一批地址连续的数据
    • 将多个数据单元作合作一个独立传输处理,最大化设备的吞吐量
      • 一般使用支持突发传送方式的总线来提高存储器的读写效率
  • 可以连续传送地址连续的数据

    • 由于一般的传送方式(非猝发)方式,需要走遍4个总线事务的几个阶段
      • 申请>仲裁>寻址>传输>释放
      • 而使用猝发方式,可以在传输阶段不释放总线地连续读取数据(地址连续的数据),提高传输效率
  • 对比

    • 并行传输:传输过程中有多个数据位同时在设备之间进行传输
    • 串行传输:数据的二进制代码在一条物理通道上以位为单位,按时间逐位传输的方式
    • 同步传输:传输过程中由统一的时钟控制,同步时钟信号来自于总线控制器

  • 某个同步总线的时钟频率(机器频率)为100MHz,换算为时钟周期为 1 100 × 1 0 6 M s − 1 = 10 n s \frac{1}{100\times{10^6}Ms^{-1}}=10ns 100×106Ms11=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/s32GB/s

posted @   xuchaoxin1375  阅读(42)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享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
点击右上角即可分享
微信分享提示