总线通信协议-PCI

article/2025/10/4 5:33:03

文章目录

  • 1. 简介
    • 1.1 总线特点
    • 1.2 总线接口
    • 1.3 拓扑模式
  • 2. 传输协议
    • 2.1 传输模式
    • 2.2 时序图
    • 2.3 PCI-X总线基本概念
    • 2.4 PCI传输速率
  • 3. 小结

1. 简介

PCI(Peripheral Component Interconnect)总线协议由Intel在1992年提出,是一种局部并行总线,PCI常见的时钟频率为33MHz,32bit位宽,速率为133MB/s,作为扩展接口,主要用于外围设备的连接和扩展,是以前将声音,视频和网卡连接到主板的通用功能方法,但由于这些外设的速度越来越快,CPI总线的传输速度已经不能满足需求了,所以目前都是PCIe接口

1.1 总线特点

  1. 并行总线,地址和数据共用一个总线。
  2. 由于PCI总线是共享总线,所以需要特定的仲裁器(Arbiter)来决定当前时刻的总线的控制权。一般该仲裁器位于北桥中,而仲裁器(主机)则通过一对引脚,REQ#(request) 和GNT# (grant)来与各个从机连接。如下图所示:
    Screenshot from 2019-07-10 11-25-24.png
  3. 最初的PCI总线的时钟频率为33MHz,但是随着版本的更新,时钟频率也逐渐的提高。但是由于PCI采用的是一种Reflected-Wave Signaling信号模型(后面会详细的介绍),导致了时钟频率越高,总线的最大负载越少

1.2 总线接口

image.png

1.3 拓扑模式

PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥,PCI总线上只允许有一个PCI主设备(同一时刻),其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。
注:这并不意味着所有的读写操作都需要通过北桥中转,因为PCI总线上的主设备和从设备属性是可以变化的。
Screenshot from 2019-07-10 11-22-22.png
image.png

处理器通过FSB与北桥相连接
北桥上挂载着图形加速器(显卡)、SDRAM(内存)和PCI总线
PCI总线上挂载着南桥、北桥、以太网、SCSI总线(一种老式的小型机总线)和若干个PCI插槽
CD和硬盘则通过IDE连接至南桥,音频设备以及打印机、鼠标和键盘等也连接至南桥,此外南桥还提供若干的USB接口

2. 传输协议

2.1 传输模式

PCI Spec规定的三种数据传输模型:Programmed I/O(PIO),Peer-to-Peer和DMA
Screenshot from 2019-07-10 11-40-45.png

  1. Programmed I/O(PIO)
    PIO在早期的PC中被广泛使用,因外当时的处理器的速度要远远大于任何其他外设的速度,所以PIO足以胜任所有的任务。比如说某一个PCI设备需要向内存(SDRAM)中写入一些数据,该PCI设备会向CPU请求一个中断,然后CPU首先先通过PCI总线把该PCI设备的数据读取到CPU内部的寄存器中,然后再把数据从内部寄存器写入到内存(SDRAM)中。
  2. DMA,即Direct Memory Access
    DMA是一种在传输过程中,几乎不需要CPU进行干预的数据传输方式。如上面的图片所示,以太网可以直接向内存(SDRAM)中写入数据,而几乎不需要CPU的干预。
  3. Peer-to-Peer
    我们介绍过PCI总线系统中的主机身份并不是固定不变的,而是可以切换的(借助仲裁器),但是同一时刻只能存在一个主机。完成Peer-to-Peer这一传输方式的前提是,PCI总线系统中至少存在一个有能力成为主机的设备。在仲裁器的控制下,完成主机身份的切换,进而获得PCI总线的控制权,然后与总线上的其他PCI设备进行通信。

2.2 时序图

  1. PCI总线是一种地址和数据复用的总线,即地址和数据占用同一组信号线AD。PCI总线的所有信号都与时钟信号同步,及所有的信号的变化都发生在时钟的上升沿,或者在时钟上升沿进行采样。
  2. 除了时钟信号CLK和数据地址复用信号AD之外,PCI总线至少还应包括FRAME#(用于表示一次数据传输的起始)、C/BE#(Command/Byte Enable)、IRDY#(Initiator Ready for data)、TRDY#(Target ready)、DESEL#(Device Selec,片选信号,用于选择PCI设备)和GNT#(Grant)信号等。

注:完整的信号时序图,请参考PCI Spec。信号名后面的#表示该信号低电平有效。
Screenshot from 2019-07-10 11-31-30.png
1、在第一个时钟上升沿,FRAME#和IRDY#都为inactive,表明总线当前处于空闲状态。与此同时,某个设备的GNT#信号处于active,表明总线总裁器已经选定当前设备为下一个initiator(可以理解为主机)。

2、在第二个时钟上升沿,FRAME#被initiator拉低,表明新的事务(Transaction)已经开始。与此同时,地址和命令被依次发送到AD上,总线上面的所有其他设备(从机)都会锁存这些信息,并检查地址和命令是否与自己匹配。

3、在第三个时钟上升沿,IRDY#处于active状态,表明主机准备就绪,可以接收数据了。AD信号上的旋转的箭头表示AD信号目前处于三态状态(处于输出和输入的转换状态),即Turn‐around cycle。需要注意的是,此时的TRDY#应当处于inactive状态,以保证Turn‐around cycle顺利进行。

4、在第四个时钟上升沿,PCI总线上的某个从机确认身份,并依次将DEVSEL#信号和TRDY#拉低,并将相应的数据输出到AD上。此时,FRAME#信号为active状态,表明这并不是最后一个数据。

5、在第五个时钟上升沿,TRDY#处于inactive状态,表明从机尚未就绪,因此所有的操作暂缓一个时钟周期(或者说插入了一个Wait State)。PCI总线最多允许8个这样的Wait State。

6、在第六个时钟上升沿,从机向主机发送第二个数据。此时,FRAME#信号依旧为active状态,表明这并不是最后一个数据。

7、在第七个时钟上升沿,IRDY#处于inactive状态,表明主机尚未就绪,再次插入一个Wait State。但是此时从机依旧可以向AD上发送数据。

8、在第八个时钟上升沿,AD上的第三个数据被发送至主机,由于此时FRAME#信号被拉高,即inactive,表明这是本次事务(Transaction)的最后一个数据。此后,所有的控制信号均被拉高,处于inactive状态,AD、FRAME#和C/BE#处于三态状态。

2.3 PCI-X总线基本概念

从硬件层面上来说,PCI-X继承了PCI总线中的Reflected-Wave Signaling,但是在信号的输入端加入了输入寄存器以增强时序性能,提高了总线的时钟频率。
然而,有意思的是,PCI-X2.0似乎生不逢时,虽然它显著地提高了PCI总线的带宽,但依旧无法掩盖并行总线在高速总线数据传输中劣势。PCI-X2.0总线虽然性能优异,但是却几乎很少得到应用,由于其高功耗高成本,且并行总线的引脚过多,需要极其复杂的PCB设计,导致PCI-X2.0只在极少数高端的市场中得到了应用(如服务器市场等)。导致PCI-X2.0未能达到大规模应用的另一个因素就是PCI Express(PCIe)总线时代的到来,其标志着高速串行总线取代传统的并行总线的时代的开端。

2.4 PCI传输速率

image.png

3. 小结

PCI总线是一种并行总线,独立于系统总线,PCI空间与处理器空间隔离,处理器需要通过Host bridge才能访问PCI设备,而PCI设备需要通过Host bridge才能主存储器。并且在Host bridge中含有许多缓冲,这些缓冲使得处理器总线与PCI总线工作在各自的时钟频率中。

参考链接:
https://zhuanlan.zhihu.com/p/26172972


http://chatgpt.dhexx.cn/article/Qj6vQiSQ.shtml

相关文章

什么是I3C总线?它和I2C和SMBus是什么关系?

计算机技术发展十分迅速,三十年前,一间房子大小的小型机的算力,到现在还比不上大家手机CPU的算力。令人吃惊的是,有这么一种38年前的技术,现在还在大家的电脑中运用十分广泛,甚至它的控制器在计算机中的个数…

关于I²C和SPI总线协议

《关于IC和SPI总线协议》 来自:刘建文 | 学术半IT歌文作者:刘建文关键字:8051 数字电子 数据通信永久链接地址:http://arttech.us/y-2011/introduction-to-i%c2%b2c-and-spi-protocols.html postmeta postmeta Tags: 8051, 数字电…

PCI总线及发展历程(详细)总结

目录 一、PCI总线简介二、总线的传输速度表:三、PCI-E简介四、其他相关链接1、PCIe物理层总结-PCIE专题知识(一)2、PCIe数据链路层图文总结-PCIe专题知识(二)3、PCIe物理层链路训练和初始化总结-PCIe专题知识&#xff…

PCIe总线协议概述

正所谓,时势造英雄、英雄造时势。是时,PCI总线在PC界已然一统江湖多年,应用已然广泛,PCI的总线已蔚然成风。然,科技日益发展,需求不断膨胀,经过计算机技术10年的发展,包括摩尔定律的…

PCIE总线协议

1、pcie硬件 pci是并行总线,在高速率下信号稳定性不能得到保证pcie是串行总线,差分信号传输,Tx,Tx1,Rx,Rx-为一条lanepcie总线是端对端的传输,之间为link 2、pcie总线的层次 pcie是串行总线,类似以太网总线&#xf…

PCI总线原理

PCI即 Peripheral Component Interconnect,中文意思是“ 外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有…

CPCI总线结构

一、CPCI简介Compact PCI(Compact Peripheral Component Interconnect)简称CPCI,中文又称“紧凑型PCI”,是国际工业计算机制造者联合会(PCI Industrial Computer Manufacturers Group,简称PICMG&#xff09…

完整的连接器设计手册_CPCI高速背板设计与仿真

引言 随着高性能计算机的发展,在许多领域对系统的带宽有着越来越高的要求。因此,为了实现高速数据传输,采用新的总线技术已经成为必然的发展趋势。2005年PICMG 提出了CPCI-E 协议,开辟了新型高速总线。CPCI-E 实质上是高速PCI-E 总线基于欧卡规格的实现,在解决高带宽问题的…

Pareto集

一个MOP,对于一组给定的最优解集,如果这个集合中的解是相互非支配的,也即两两不是支配关系,那么则称这个解集为Pareto Set 。 多目标问题:

Patrol

设计要求 游戏设计要求 创建一个地图和若干巡逻兵(使用动画)每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算巡逻兵碰撞到障碍物,则会自动选下一个点为目…

Pareto(帕雷托)理论—凸优化、最优化理论学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Pareto(帕雷托)理论二、Pareto(帕雷托)解三、Pareto(帕雷托)改进四、Pareto Front五…

p-中位模型与pareto解集

p-中位模型(p-median model)是一种用于解决设施选址问题的数学模型。在设施选址问题中,需要选择若干个设施点来满足需求区域内的服务需求,使得服务覆盖范围内的总成本或距离最小。p-中位模型是其中一种常用的优化模型。 在p-中位…

Matlab论文插图绘制模板第46期—帕累托图(Pareto)

在之前的文章中,分享过Matlab双轴柱线图的绘制模板: 这一次,再来分享一种特殊的柱线图:帕累托图。 ‘帕累托图(Pareto chart)是将出现的质量问题和质量改进项目按照重要程度依次排列而采用的一种图表。以意…

帕累托最优(Pareto Optimality)

帕累托最优(Pareto Optimality),也称为帕累托效率(Pareto efficiency),是指资源分配的一种理想状态,假定固有的一群人和可分配的资源,从一种分配状态到另一种状态的变化中&#xff0…

Pareto(帕雷托)相关知识

原文地址:Pareto(帕雷托)相关知识 作者: XIAO_QingJun 1879年,经济学家意大利人维弗雷多帕雷托 (Villefredo Pareto) 提出:社会财富的80%是掌握在20%的人手中,而余下的80%的人只占有20%的财富。…

【python科研绘图】绘制帕累托图(Pareto)步骤解析,并封装后直接调用

python绘制帕累托图 1 帕累托图2 python实现2.1 数据准备2.2 特征因素数值排序2.3 计算累计频率百分比2.4 标记累计百分比80%特征因素的位置2.5 输出核心的特征因素信息2.6 绘制帕累托图 3 封装3.1 全部代码3.2 应用示例 手动反爬虫: 原博地址 https://blog.csdn.n…

多目标优化——帕累托最优Pareto

多目标优化——帕累托最优Pareto 0.前言 本文是本人在学习过程中为便于记忆利用博客进行总结,期待与各位大佬共同学习交流 什么是多目标优化 在了解帕累托最优之前,我们先来讨论一下,什么是多目标优化(Multiobjective Optimiz…

【多目标进化优化】Pareto 定义及基于 Pareto 的多目标进化算法的算法流程

声明 本文内容来源于 《多目标进化优化》 郑金华 邹娟著,非常感谢两位老师的知识分享,如有侵权,本人立即删除,同时在此表示,本文内容仅学习使用,禁止侵权,谢谢! 0 前言 多目标优化…

【数字孪生百科】可视化图表知识科普——Pareto图(Pareto Chart)

简介 Pareto图(Pareto Chart)又称帕累托图、排列图,是一种特殊类型的条形图。图中标绘的值是按照事件发生的频率排序而成,显示由于各种原因引起的缺陷数量或不一致的排列顺序。Pareto图是根据 Vilfredo Pareto 命名的,…

帕累托图 (Pareto Chart)

帕累托图用于识别最有可能考虑影响过程或结果的变量行为的因子类别。流程改进团队使用Pareto图表来确定其工作的优先级。 在帕累托图中,垂直条通常代表每个类别,条形图上方的累积折线图确定了最有可能成为研究重要目标的因素。 优点 使用和理解的简单…