PCI总线协议基础
- 格式:doc
- 大小:998.00 KB
- 文档页数:5
pcie总线简述pcie总线是第三代i/o互连总线,pcie应用用在桌面电脑、通信平台、服务器、工作站、移动通信、嵌入式器件中。
是低价而大量的传输的解决方案。
pcie兼容pci总线,由于pcie的低潜伏期通信使得它拥有很高的带宽和总数较少的管脚数量。
pcie的主要特征:●可以传送多种数据信息格式。
●串行发送接收双通道,高带宽,速度快。
可灵活扩展。
●支持热插拔和热交换。
●低电源消耗,并有电源管理功能。
●支持QoS链路配置和公正策略。
●具有包和层协议架构。
●每个物理链接含有多种虚拟通道。
●兼容pci。
●多种保证数据完整性的机制。
●错误处理机制和调试简便性。
pcie的基本结构包括根组件(Root Complex)、交换器(Switch)和各种终端设备。
pcie总线一个拓扑结构例子如下:Root Complex(根组件):root Complex为下层io设备连接到cpu提供路径。
endpoint(终端设备):就是接收请求(request)或者发送应答(completer)的总线终端设备。
Swith(路由器):为上游器件和下游器件通信选择路径,如下图。
一个基本的数据链路(Link)如下图:一个基本的pcie数据链路至少两对差分驱动信号如图:一对是接收,一对是发送。
如图是一条lane,每个数据链路(link)至少包含一个lane,为了线性增加link的带宽,link支持*N条lanes(N=1、2、4、8、12、16、32)。
例如单条lane支持的单向带宽是 2.5gb/s,那么一个数据链路单方向支持的最高带宽就80gb/s。
pcie总线规范包括以下各子层协议:pcie总线包括Transaction Layer(处理层)、Data Link Layer (数据链路层)、Physical Layer(物理层)。
pcie总线使用包来完成器件之间的通信。
这些数据包信息在Transaction Layer 和Data Link Layer中形成,即除了数据信息外,在不同的层中加入不同的开销,以方便管理,如下图。
总线协议有哪些1. 引言总线协议在计算机领域中扮演着重要的角色,它定义了不同设备之间进行通信和数据传输的规则和格式。
本文将介绍一些常见的总线协议,以及它们在计算机系统中的应用。
2. 常见的总线协议2.1 PCI(Peripheral Component Interconnect)PCI是一种常见的总线协议,它用于连接计算机的外部设备和主板。
PCI总线协议定义了设备之间的通信方式和信号传输规范,支持高速数据传输和多设备连接。
PCI总线广泛应用于计算机的扩展插槽、显卡、网卡等外部设备的连接。
2.2 USB(Universal Serial Bus)USB是一种通用的串行总线协议,用于连接计算机和外部设备。
USB总线协议可以实现设备的热插拔和即插即用功能,并支持多种外围设备的连接,如打印机、键盘、鼠标、手机等。
USB总线协议分为不同版本,如USB 1.0、USB 2.0、USB3.0等,每个版本都有不同的传输速率和特性。
2.3 SATA(Serial Advanced Technology Attachment)SATA是一种串行ATA总线协议,用于连接计算机的硬盘、光驱等存储设备。
SATA总线协议通过串行方式传输数据,相比于并行ATA总线,具有更高的传输速率和更小的线缆数量。
SATA总线协议在现代计算机系统中广泛应用,提供了高速和可靠的数据传输。
2.4 I2C(Inter-Integrated Circuit)I2C是一种串行总线协议,用于连接集成电路之间的通信。
I2C总线协议通过两根线(时钟线和数据线)实现设备之间的通信,支持多主机和多从机的连接。
I2C总线协议在电子设备中被广泛应用,如传感器、存储器、显示屏等。
2.5 SPI(Serial Peripheral Interface)SPI是一种串行外围设备接口,用于连接微控制器和外围设备。
SPI总线协议通过一条时钟线和多个数据线实现数据的传输。
SPI总线协议具有简单、高效的特点,常用于存储器、传感器、显示屏等设备的连接。
PCIe协议相关资料要点PCIe(Peripheral Component Interconnect Express)是一种计算机总线标准,用于连接计算机系统的外部设备。
它在现代计算机中广泛应用于图形卡、存储卡和扩展卡等设备的连接。
下面是PCIe协议的相关资料要点。
一、PCIe协议概述PCIe协议是一种高速串行通信协议,用于在计算机系统中传输数据。
它取代了传统的PCI总线,提供更高的带宽和更可靠的性能。
PCIe协议具有以下特点:1. 高速性能:PCIe协议支持多个通道和多个数据传输通路,并且每个通道都可以达到多Gbps的传输速度。
2. 点对点连接:PCIe协议采用点对点连接方式,每个设备都直接连接到主机,并且不会与其他设备共享带宽。
3. 热插拔支持:PCIe协议支持热插拔功能,可以在计算机运行时插入或拔出设备,而无需重新启动系统。
4. 多功率状态支持:PCIe协议支持多功率状态,可以有效地管理设备的能耗。
二、PCIe协议架构PCIe协议的架构包括物理层、数据链路层和传输层。
每个层级都有不同的功能和责任。
1. 物理层(Physical Layer):物理层负责在发送和接收设备之间传输数据。
它定义了数据传输的电气特性、传输速度和功耗等参数。
2. 数据链路层(Data Link Layer):数据链路层负责在发送和接收设备之间建立可靠的数据传输连接。
它通过发送和接收数据包来确保数据的完整性和可靠性。
3. 传输层(Transport Layer):传输层负责数据的路由和传输。
它根据设备的地址和标识符来确定数据的发送和接收。
三、PCIe协议数据传输PCIe协议的数据传输分为读取和写入两种方式。
1. 读取(Read):读取是指从PCIe设备读取数据到主机内存。
读取传输由主机启动,并且主机提供要读取的目标地址。
读取过程中,设备将数据传输到主机内存中的指定地址。
2. 写入(Write):写入是指将数据从主机内存写入到PCIe设备。
pcie通信协议步骤PCI Express(Peripheral Component Interconnect Express)是一种用于计算机总线的高速通信协议,它用于连接主板和各种外设。
PCI Express协议通过利用高速串行通信传输数据,适用于多种应用场景,包括图形卡、网络卡、存储卡等。
PCI Express通信协议的工作步骤如下:1. 发送端发送请求:通信首先由发送端发起。
发送端将数据分成一个个的数据包,并且给每个数据包添加头部信息,其中包括目标设备的地址等。
发送端将这些数据包通过PCI Express总线发送给接收端。
2. 数据包在总线上传输:数据包沿着PCI Express总线传输,通过差分信号进行高速串行通信。
PCI Express总线支持多通道传输,可以同时传输多个数据包,从而提高传输效率。
3. 接收端接收数据包:接收端对传输的数据包进行接收和解析。
接收端根据头部信息确定数据包的目标设备,并将数据包传递给目标设备。
4. 目标设备处理数据:目标设备接收到数据包后,对数据包进行处理,并根据需要执行相应的操作。
例如,图形卡接收到数据包后,会将数据包中的图像数据解码并显示在屏幕上。
5. 响应数据包:目标设备根据请求执行相应的操作后,将结果生成一个响应数据包,并通过PCI Express总线返回给发送端。
6. 发送端接收响应:发送端接收到响应数据包后,进行解析并进行后续处理。
例如,如果发送端请求一个读操作,那么接收到的响应数据包将包含所请求的数据。
7. 完成通信:通信完成后,发送端和接收端完成数据交换,并恢复到空闲状态,准备接收下一轮通信。
PCI Express通信协议具有以下特点:1. 高速传输:PCI Express总线采用高速差分信号传输数据,支持传输速度高达数GB/s,能够满足高带宽要求的应用场景。
2. 可扩展性:PCI Express总线支持多通道传输,可以同时传输多个数据包,从而提高总线的带宽和扩展性。
PCIe总线概述随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。
与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。
PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe 总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备.这使得PCIe与PCI总线采用的拓扑结构有所不同。
PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS (Quality of Service)问题。
PCIe总线的基础知识与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。
PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次.PCIe总线使用的层次结构与网络协议栈较为类似.1。
1 端到端的数据传递PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图4-1所示。
由上图所示,在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4根信号线组成.其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。
一个PCIe链路可以由多个Lane组成.高速差分信号电气规范要求其发送端串接一个电容,以进行AC耦合.该电容也被称为AC耦合电容。
PCIe总线概述随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。
与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。
PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe 总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。
这使得PCIe与PCI总线采用的拓扑结构有所不同。
PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS (Quality of Service)问题。
PCIe总线的基础知识与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。
PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。
PCIe 总线使用的层次结构与网络协议栈较为类似。
1.1 端到端的数据传递PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图4-1所示。
由上图所示,在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4根信号线组成。
其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。
一个PCIe链路可以由多个Lane组成。
高速差分信号电气规范要求其发送端串接一个电容,以进行AC耦合。
该电容也被称为AC 耦合电容。
IO总线的三个阶段:第一代并行ISA 、EISA、MC、VESA.共同特点:信号的功能与时序与处理器引脚密切相关,几乎是微处理器信号的延伸和扩展,有些信号还与主板上的硬件资源有关系.第二代并行PCI、AGP、PCI-XPCI总线是一个标准的、与处理器无关的局部外围总线,不受限于系统所使用的处理器的种类,通用性更强. 图形端口,将PCI总线从图形数据传输中解放出来,改善带宽.第三代PCI Express高性能IO串行总线在总线结构上采取了根本性的变革,主要体现在两个方面:一是有并行总线变位串行总线;二是采用点到点的互连独享带宽.将原并行总线结构中桥下面挂连设备的一条总线变成了一条链路,一条链路可包含一条或多条通路.没有专用的数据、地址、控制和时钟线,总线上各种事务组织成信息包来传送.地址空间、配置机制及软件上均保持与传统PCI总线兼容.第一代和第二代都是并行总线,有多条地址线、数据线和控制线,挂接多个设备,称为下挂式总线(Multi-Drop),总线带宽由多个设备共享.通过提高数据宽度和频率来改善带宽的代价是挂接的电器负载减少(由于功耗增加和静态定时减少).PCIx与PCI相比:由于采用了PLL,频率更高性能更好;在地址和数据的基础上增加属性,从而可以高效管理缓冲区;分离事务协议相对延迟事务协议来说,提高了总线利用效率;可不需要中断引脚,改用消息信号中断(带内)体系结构,中断效率更高.基于PCI总线的结构最基本的PCI总线平台包含三级总线:FSB(Front-Side Bus)、PCI和ISA,FSB是处理器子系统的总线(Host总线),总线定义完全取决于系统所用的处理器;PCI局部总线是一个完全与处理器无关的总线,不受限微处理器的种类;ISA总线(IO扩展总线),也有采用EISA或MC总线的.不同的总线之间通过相应的桥芯片来连接.平台中两极桥是必须的,一是Host到PCI的(常称为主桥——Host桥),即北桥;另一个是PCI总线的桥(常称为扩展总线桥),即南桥.最基本的基于PCI总线的平台PCI地址空间映射x86 CPU的内存与I/O独立编址,I/O对应寄存器,内存对应RAM.因此,访问IO空间用IO读写指令,访问内存空间用内存读写指令.IO读写一般用于低速传输一些状态、控制寄存器的读写等。
PCIe接口介绍PCIe接口简介PCIe(Peripheral Component Interconnect Express)总线的诞生与PC(Personal Computer)的蓬勃发展密切相关,是由PCISIG (PCI Special Interest Group,主要是intel)推出的一种局部并行总线标准,主要应用于电脑和服务器的主板上(目前几乎所有的主板都有PCIe 的插槽),功能是连接外部设备(如显卡、存储、网卡、声卡、数据采集卡等)。
PCI总线规范最早在上世纪九十年代提出,属于单端并行信号的总线,目前已淘汰,被PCIe总线(在2001年发布,采用点对点串行连接)替代。
目前PCIe的主流应用是3.0,4.0还没正式推出,但标准已经制定的差不多了。
PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。
这使得PCIe与PCI总线采用的拓扑结构有所不同。
PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS (Quality of Service)问题。
每一个Lane上使用的总线频率与PCIe总线使用的版本相关。
不相同。
PCIe总线V1.x和V2.0规范在物理层中使用8/10b编码,即在PCIe链路上的10 bit中含有8 bit的有效数据;而V3.0规范使用128/130b编码方式,即在PCIe链路上的130 bit中含有128 bit的有效数据。
实际使用中,PCIe无法一直维持在峰值传输状态,因为编码方式、链路管理消耗、存储时间延迟等原因,一般只有50%~60%的效率。
PCIe接口原理连接方式PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图一。
PCI总线随着Windows图形用户界面的迅速发展,以及多媒体技术的广泛应用,要求系统具有高速图形处理和I/O吞吐能力。
为了适应计算机的这种发展要求,Intel公司首先提出了PCI( Peripheral ComponentInterconnect )总线概念。
之后Intel联合IBM、Compaq、AST、HP、 Apple、NCR、DEC 等100多家公司共同开发总线,并于1993年推出了PCI总线标准。
目前PCI已称为一种新的总线标准,广泛用于微机、工作站以及便携式计算机中。
1. PCI总线的特点PCI 总线主要有以下一些特点:(1)数据传输率高PCI的数据总线宽度为32位,并可扩充到64位。
它以33.3MHz或66.6MHz的时钟频率工作,若采用32位数据总线,数据传送速率可达133 MB/s;而采用64位宽度,则最高传输速率可达266 MB/s。
(2)支持猝发传输(Burst Transmission)通常的数据传输是先输出地址后进行数据操作,即使所要传输数据的地址是连续的,每次也要有输出和建立地址的阶段。
而PCI支持猝发数据传输周期,该周期在一个地址相位(phase)后可跟若干个数据相位。
这意味着传输从某一个地址开始后,可以连续对数据进行操作,而每次的操作数地址是自动加l形成的。
显然,这减少了无谓的地址操作,加快了传输速度。
这种传输方式对使用高性能图形设备尤为重要。
(3)支持多主设备在同一条PCI总线上可以有多个主设备,各个主设备通过总线仲裁竞争总线控制权。
相比之下,在ISA总线系统中,DMA控制器和CPU对总线的争用是不平等的,DMA控制器采用“周期窃取”法向 CPU申请总线,得到CPU允许后才能使用总线。
而PCI总线专门设有总线占用请求和总线占用允许信号,各个主设备平等竞争总线。
(4)独立于处理器传统的系统总线(如ISA总线 ) 实际上是CPU引脚信号的延伸或再驱动,而PCI总线以一种独特的中间缓冲器方式独立于处理器,并将CPU子系统与外围设备分开。
pcie接口定义及知识解析PCIe总线概述随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。
与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。
PCI Express是新一代的总线接口。
早在2001年的春季,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。
随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成,对其正式命名为PCI Express。
它采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。
这使得PCIe与PCI总线采用的拓扑结构有所不同。
PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS (Quality of Service)问题。
PCIe总线的基础知识与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。
PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。
PCIe总线使用的层次结构与网络协议栈较为类似。
1.1 端到端的数据传递PCIe链路使用端到端的数据传送方式,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图41所示。
1.PCIe简介PCI—Express是最新的总线和接口标准,它原来的名称为“3GIO",是由英特尔提出的,很明显英特尔的意思是它代表着下一代I/O接口标准。
交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。
这个新标准将全面取代现行的PCI和AGP,最终实现总线标准的统一。
它的主要优势就是数据传输速率高,目前最高可达到10GB/s以上,而且还有相当大的发展潜力。
PCI Express也有多种规格,从PCI Express 1X到PCI Express 16X,能满足现在和将来一定时间内出现的低速设备和高速设备的需求.能支持PCI Express的主要是英特尔的i915和i925系列芯片组.PCI Express(以下简称PCI—E)采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI—E的双单工连接能提供更高的传输速率和质量,它们之间的差异跟半双工和全双工类似。
PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式.PCI-E规格从1条通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽不同的需求。
此外,较短的PCI-E卡可以插入较长的PCI—E插槽中使用,PCI—E接口还能够支持热拔插,这也是个不小的飞跃.PCI—E X1的250MB/秒传输速度已经可以满足主流声效芯片、网卡芯片和存储设备对数据传输带宽的需求,但是远远无法满足图形芯片对数据传输带宽的需求.因此,用于取代AGP接口的PCI—E接口位宽为X16,能够提供5GB/s的带宽,即便有编码上的损耗但仍能够提供约为4GB/s左右的实际带宽,远远超过AGP 8X的2。
PCIe基础篇(⼀)、基础知识扫盲1、PCIe:Peripheral Component interconnect Expess,外围组件接⼝互联,属于第三代IO总线,PCIe的传输速率指的是实际的有效传输速率,为RAW data(原始数据)的80%,因为其采⽤了8b/10b编解码技术,有效数据是原始数据的0.8,PCIe的iyidai和第⼆代采⽤8b/10b编解码技术,第三代、第四代、第五代采⽤128b/130b编解码技术。
2、PCI总线是⼀种共享总线,所以需要有特定的仲裁器(Arbiter)来决定当前时刻总线的控制权。
⼀般该仲裁器位于北桥中,⽽仲裁器(主机)通过⼀对引脚REQ#和GNT#(grant)来与各个从机连接。
PCI总线是⼀种地址和数据复⽤的总线,地址和数据占⽤同⼀组信号线。
PCIe采⽤了差分、全双⼯的传输设计,允许在同⼀时刻,同时进⾏发送进⽽接收数据,设备之间通过双向的Link连接,每个Link⽀持1~32个通道(lane),由于是串⾏总线,因此所有的数据(包括配置信息等)都是以数据包为单位进⾏发送。
PCIe中还引⼊了嵌⼊式时钟计数,发送端不再向接收端发送时钟,但是接收端可以通过8b/10b的编码从数据通道中恢复出时钟.PCIe是⼀种点对点连接的总线,不是共享总线。
但是PCIe可以通过SWITCH连接多个PCIe设备,Switch包含了多个类似于PCI总线中桥的该概念。
上图中,Root Component作为Root,是CPU和PCIe总线系统通信的媒介。
endpoint位于PCIe总线系统拓扑结构中的最末段,⼀般作为总线操作的发起作者(initiator,类似于主机)与终结者(Completers,类似于从机),endpoint只能接收上级拓扑的数据包或者向上级发送数据包。
此外,Leagcy PCIe Endpoint指的是元贝准备设计为PCI-X总线接⼝的设备,却被改为PCIe接⼝的设备,native PCIe ENDpoint指的是标准的PCIe设备。
总线协议概述总线是计算机系统中重要的组成部分,它承担着信息传输的任务。
为了实现不同设备之间的通信和数据交换,人们设计了各种总线协议。
总线协议定义了在总线上进行数据传输的规则和约定,确保各个设备能够正确地进行通信。
本文将介绍总线协议的基本概念、主要类型以及常见的总线协议。
基本概念1.总线:总线是一种将多个设备连接起来的通信线路。
它可以传输控制信号、数据信号和地址信号等,并提供适应各种设备通信需求的端口。
2.总线协议:总线协议是用于在总线上进行数据传输的规则和约定。
它定义了数据传输的时序、格式、信号的含义以及错误处理等。
总线协议为设备间的通信提供了标准化的接口。
3.总线主控:总线主控是指控制总线操作的设备,它负责发起读写请求、控制总线的时序和信号,以及处理总线上的冲突和错误。
4.总线代理:总线代理是指在总线上执行特定任务的设备,它通过遵循总线协议来与总线主控进行通信。
主要类型根据总线的传输方式和数据传输的时序,总线协议可以分为以下几种主要类型:并行总线协议并行总线协议在传输数据时同步传输多个比特位。
每个比特位通过总线的一个物理线路传输,因此需要多条线路。
并行总线通常具有高带宽,但受到线路长度限制,传输速度会受到影响。
常见的并行总线协议有: - ISA(Industry Standard Architecture):一种早期的计算机总线标准,用于连接CPU、内存和外部设备。
- PCI(Peripheral Component Interconnect):一种现代的高速总线协议,用于连接计算机主板上的各种设备,如显卡、网卡等。
串行总线协议串行总线协议在传输数据时逐位进行,只需要一条线路。
串行总线通常具有较低的带宽,但允许更长的线路长度和更高的传输速度。
常见的串行总线协议有: - USB(Universal Serial Bus):一种用于连接计算机和外部设备的通用串行总线协议,支持热插拔和多种设备类型。
pcie基本原理
PCIe(Peripheral Component Interconnect Express)是一种高速串行总线技术,用于连接计算机内部的各种设备,如显卡、网卡、声卡等。
它是一种点对点连接方式,每个设备都有自己的通信通道,可以同时进行数据传输,从而提高了系统的性能和效率。
PCIe的基本原理是通过差分信号传输来实现高速数据传输。
差分信号是指将信号分成两个相反的信号,一个为正极信号,一个为负极信号,两个信号之间的差值就是差分信号。
这种传输方式可以有效地减少信号干扰和噪声,提高信号的稳定性和可靠性。
PCIe总线的工作原理是将数据分成小块,每个小块都有自己的地址和控制信息,然后通过差分信号传输到目标设备。
每个设备都有自己的地址和标识符,可以识别和响应来自其他设备的请求。
当一个设备需要发送数据时,它会向总线发送请求,然后等待总线的响应。
如果总线空闲,它就可以发送数据,否则就需要等待其他设备的数据传输完成。
PCIe总线的速度通常以每秒传输的数据位数来衡量,例如PCIe 3.0的速度为8Gbps,即每秒可以传输8亿个二进制位。
这种高速传输速度可以满足现代计算机对数据传输的高要求,从而提高了系统的性能和效率。
PCIe是一种高速、可靠的串行总线技术,它通过差分信号传输来
实现高速数据传输,每个设备都有自己的通信通道,可以同时进行数据传输,从而提高了系统的性能和效率。
在PCIE总线中信息是以封包的形式传输的,下面为大家介绍一下数据在PCIE设备中是如何封包以及怎样传输的,这里我们将省去路由寻址、流量控制等一些细节,只介绍数据在设备中的传输过程。
PCIE总线采用了串行连接方式,并使用数据包(Packet)进行数据传输,采用这种结构有效去除了在PCI 总线中存在的一些边带信号,如INTx和PME#等信号。
在PCIE总线中,数据报文在接收和发送过程中,需要通过多个层次,包括事务层、数据链路层和物理层,才能完成数据的传输。
PCIE总线的层次结构如图1所示。
图1 PCIE总线的层次结构在PCIE体系结构中,数据报文首先在设备的核心层(Device Core)中产生,然后再经过该设备的事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer),最终发送出去。
而接收端的数据也需要通过物理层、数据链路和事务层,并最终到达Device Core。
下面将介绍各个层次的功能以及该层数据的封包形态,每个层次从发送端和接收端两个方面来讲:1、事务层(Transaction Layer)事务层是三层协议结构的最高层,数据在这一层组成最基本的数据包,即事务层数据包(Transaction Layer Packet,TLP)。
在发送端,当处理器或者其他PCIE设备访问PCIE设备时,事务层接收来自PCIE设备核心层的数据,并将其封装为TLP后,发向数据链路层。
在接收端,事务层可以从数据链路层中接收数据报文,然后转发至PCIE设备的核心层。
接收部分将入站的TLP保存在虚拟通道缓冲区中,根据TLP中的ECRC字段检查CRC错误。
若无误,则删去ECRC字段,将在TLP Header中得到的信息及数据有效载荷(Data Payload)发送给用户接口。
事务层数据包(TLP)主要由一个或多个可选的TLP Prefixes、一个TLP Header、一个Data Payload 和一个可选的TLP Digest组成。
PCI总线协议基础 PCI总线协议基础 PCI基本总线协议传输机制是猝发成组数据传输。一个分组由一个地址相位和一个或多个数据相位组成。 1.PCI总线的传输控制 PCI总线上所有的数据传输基本上都是由以下三条信号线控制的: FRAME#:由主设备驱动,说明一次数据传输周期的开始和结束。 IRDY#:由主设备驱动,表示主设备已经作好传送数据的准备。 TRDY#:由从设备驱动,表示从设备已经作好传送数据的准备。 当数据有效时,数据源设备需要无条件设置xRDY#,接收方可以在适当的时间发出xRDY#信号。FRAME#信号有效后的第一个时钟前沿是地址相位的开始,此时,开始传送地址信息和总线命令,下一个时钟前沿进入一个或多个数据相位。每当IRDY#和TRDY#同时有效时,所对应的时钟前沿就使数据在主从设备之间传送。在此期间,可由主设备或从设备分别利用IRDY#和TRDY#的无效而插入等待周期。 一旦主设备设置了IRDY#,将不能再改变IRDY#和FRAME#,直到当前的数据相位完成为止,而此期间不管TRDY#的状态是否发生变化。一旦从设备设置了TRDY#,就不能改变DEVSEL#、TRDY#或STOP#,直到当前的数据相位完成为止。也就是说,只要数据传输已经开始,那么在当前数据相位结束之前,不管是主设备还是从设备都不能撤消命令,必须完成数据传输。 最后一次数据传输时(可能紧接地址相位之后),主设备应撤消FRAME#信号而建立IRDY#,表明主设备已作好了最后一次数据传输的准备。当从设备发出TRDY#信号,表明最后一次数据传输已经完成,接口转入空闲状态,此时FRAME#和IRDY#均被撤消。 对于PCI总线的传输,可总结出以下几条规则: ①FRAME#和IRDY#决定总线的忙/闲状态。当其中一个有效时,表示总线忙;两个都无效时,总线进入空闲状态。 ②一旦FRAME#被置为无效,在同一传输期间不能重新置为有效。 ③除非设置IRDY#,一般情况下不能设置FRAME#无效(在FRAME#无效后的第一个时钟沿IRDY#必须保持有效)。 ④一旦主设备已使IRDY#有效,在当前数据相位完成前,不能改变IRDY#或FRAME#的状态。 ⑤在完成最后一个数据相位之后的时钟周期主设备必须使IRDY#无效。 2.PCI总线的寻址 PcI总线定义了三种物理地址空间:内存地址空间、I/O地址空间及配置地址空间,前两种为通常意义的地址空间,第三种配置地址空间用以支持PCI的硬件配置。 PCI总线的地址译码是分散的,每个设备都有自己的地址译码逻辑,从而省去了中央译码逻辑。PCl支持对地址的正向译码和负向译码,所谓正向译码,是指总线上每个设备都监视地址总线上的访问地址,判断是否落在自己的地址范围内,译码速度较快。所谓负向译码,是指要接受未被其他设备在正向译码中接受的所有访问,因此,此种译码方式只能由总线上的一个设备来实现(一般是连接标准扩展总线的桥)。由于它要等到总线上其他所有设备都拒绝之后才能动作,所以速度较慢。负向译码对于标准扩展总线上地址空间零散的设备是很有用的。 在I/O地址空间,所有韵32位地址都用来表示一个完整的字节地址。启动I/O传输的主设备应确保AD[1~0]正确指示本次传输的最低有效字节(即起始字节)。字节允许信号和AD[1~0]一起指明传输的数据宽度和双字中被选中的字节,表9.5表示了AD[1~0]和初始数据相位中字节允许的有效组合。
在存储器地址空间,AD[31~2]提供一个双字边界地址,而AD[1—0]不参与地址译码,用来指明主设备要求的数据传输顺序,见表9.6。
在线性增加模式下,每个数据相位后,地址增加一个双字(即加4,对32位传输)或增加两个双字(即加8,对64位传输),直到传输结束。对于Cache行回卷(wayp)模式,传输可从Cache中任意地址偏移处开始,Cache块的长度是由配置空间中的Cache块大小寄存器定义的。访问过程中每次地址增加一个双字(64位传输中地址增加两个双字),一直到Cache块的末尾,然后回卷到同一Cache块的开始处,再进行到Cache块的剩余部分被传送完为止。 在配置地址空间,由AD[7—2]寻址64个双字寄存器。当一条配置命令的地址被译码,IDSEL有效且AD[1—0]=00时,设备判断是否寻址自己的配置寄存器,如果不是则不理会当前操作。 3.PCI总线驱动的过渡 为了避免多个设备同时驱动一个信号到PCI总线上而产生竞争,在一个设备驱动到另一个设备驱动之间要设置一个过渡期,又称为交换周期,如图9—6所示中用互相指向对方尾部的双箭头符号表示。不同信号的交换周期出现的时刻可能不同。对于IRDY#、TRDY\STOP#、DEVSEL#等信号,都利用地址相位作为它们的交换周期;而对于FRAME#、C/BE[3~0]#、AD[3l~00]等信号,则是利用数据传输之间的空闲期作为交换周期。
4.PCI总线数据传输过程 PCI采用地址/数据复用技术,每一个PCI总线传送由一个地址相位和一个或多个数据相位组成。地址相位由FRAME#变为有效的时钟周期开始。在地址相位,总线主设备通过C/BE[3~0]#发送总线命令。如果是总线读命令,在地址相位后需要一个交换周期,该周期过后,AD[3l~0]改由从设备驱动,以接纳从设备的数据。对于写操作没有过渡期,直接从地址相位进入数据相位。数据相位的个数取决于要传送的数据个数,一个数据相位至少需要一个PCI时钟周期,在任何一个数据相位都可以插入等待周期。FRAME#从有效变成无效表示当前正处于最后一个数据相位。 总线操作结束有多种方式。在大多数情况下,由从设备和主设备共同撤消准备就绪信号TRDY#和IRDY#。如果从设备不能继续传送,可以设置STOP#信号,表示从设备撤消与总线的连接。所寻址的从设备不存在或者DEVSEL#信号一直为无效状态都可能导致主设备结束当前总线操作,使FRAME#和IRDY#变为无效,回到总线空闲状态。 1)PCI总线上的读操作 图9.6是PCI总线读操作时序的一个例子,从中可以看出,一旦FRAME#信号有效,地址相位便开始,并在时钟2的上升沿处稳定有效。在地址相位内,AD[31~00]上包含有效地址,C/BE#[3~0]上包含一个有效的总线命令。数据相位是从时钟3的上升沿处开始的。在此期间,AD[31一00]上传送的是数据,C/BE#线上的信息用于指定数据线上哪些字节有效(即哪几个字节是当前要传输的)。需要强调的是,无论是读操作还是后面要讲的写操作,从数据相位的开始一直到传输完成,C/BE#的输出缓冲器(或锁存器)必须始终保持有效状态。 图9.6中的DEVSEL#信号和TRDY#信号由被地址相位内所发地址选中的从设备提供,但要保证TRDY#在DEVSEL#之后出现,IRDY#信号是发起读操作的主设备根据总线的占用情况发出的。数据的真正传输是在IRDY#和TRDY#同时有效的时钟前沿进行的。当这两个信号之一无效时,就表示需要插入等待周期,此时,不进行数据传输。这说明一个数据相位可以包含一次数据传输和若干个等待周期。图中所示的时钟4、6、8处各进行了一次数据传输,而在时钟3、5、7处插入了等待周期。 在读操作中的地址相位和数据相位之间,AD线上要有一个总线交换周期,这通过从设备强制TRDY#实现,即让TRDY#的发出比地址晚一拍。在交换周期过后且DEVSEL#信号变为有效时,从设备必须驱动AD线。 尽管主设备在时钟7处已知道下一个数据相位是本次传送的最后一个,但由于某种原因它暂时不能完成该次传输(此时IRDY#无效),所以主设备还不能撤消FRAME#,只有在时钟8处,IRDY#变为有效后,FRAME#信号才能撤消,从而通知从设备这是最后一个数据相位。 2)PCI总线上的写操作 图9.7所示是PCI总线写操作时序的一个例子。从中可以看出,总线上的写操作与读操作相类似,也是FRAME#的有效表示写操作周期中地址相位的开始,但地址相位后不需要交换周期,因为数据和地址都是由同一主设备提供的。 在图9.7中,第一个和第二个数据相位中没有等待周期,而在第三个数据相位中连续插入了3个等待周期,注意,第一个等待周期是由传输双方共同引起的。告诉从设备最后一个数据相位的方法与读操作时相同,即当FRAME#撤消后,还需要IRDY#处于有效状态。这里,主设备在时钟6处使IRDY#恢复有效,通知从设备这是最后一个数据相位,但由于从设备未准备好,最后一次数据传输到时钟8才完成。 从图中AD和C/BE#的波形可看出,主设备发送数据可以延迟,但字节允许信号不受等待周期的影响,不得延迟发送。 上述的读/写操作均是以多个数据相位为例来说明的。如果是一个数据相位, FRAME#信号在没有等待周期的情况下,应在地址相位(读操作应在交换周期)过后即撤消。对于一个数据相位,中间亦可插入等待周期。 3)PCI总线传输的终止过程 无论是主设备还是从设备,都可以提出终止传输的要求,但不一定得到响应。也就是说,双方均无权单方面终止传输,而需要相互配合,但传输的最终停止控制要由主设备完成。 (1)由主设备引发的终止 主设备是通过撤消FRAME#并建立IRDY#来提出终止请求的,这样做是为了通知从设备,现在己进入了传输周期中最后一个数据相位。此后,IRDY#一直保持有效直到TRDY#信号有效,完成最后一个数据的传输。接着便撤消IRDY#,从而达到完全终止的条件(FRAME#和IRDY#同时无效),结束传输,进入总线空闲状态。 主设备一般在下列情况下会提出终止传输: ①一次数据传输即将结束(剩下一个数据未传输)。 ②总线上有更高优先级的总线占用请求,而总线仲裁器取消当前主设备的总线控制权(移去了GNT#信号)。 ③主设备发出了FRAME#后在规定的时间内没有检测到目标设备的DEVSEL#响应信号。 (2)由从设备引发的终止 从设备可以通过STOP#信号请求终止传输。一旦STOP#有效,就必须保持有效到主设备置FRAME#无效。IRDY#和TRDY#之间的关系与STOP#和FRAME#之间的关系无关。所以,在从设备请求终止期间数据仍可以传送,这仅取决于当时IRDY#和TRDY#的状态。 从设备可由下面两种原因请求终止传输: ①从设备正处于不能传送数据的状态。例如,设备的数据缓冲器满,暂时不能接收数据,或者因数据缓冲器空而不能发送数据等。待传送条件满足后,重新启动传输。这种情况称为“重入(Retry)”。 ②由于从设备的响应速度太慢,在PCI引导时间长度(8个时钟周期)不能作出响应以及在猝发传输中,从设备检测到下一个数据的地址已经超出规定的范围等原因而提出终止传输请求。此种情况称为“解除连接(Disconnect)”。