2022年PCIE基础知识 .pdf

上传人:Che****ry 文档编号:23787949 上传时间:2022-07-02 格式:PDF 页数:10 大小:348.90KB
返回 下载 相关 举报
2022年PCIE基础知识 .pdf_第1页
第1页 / 共10页
2022年PCIE基础知识 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年PCIE基础知识 .pdf》由会员分享,可在线阅读,更多相关《2022年PCIE基础知识 .pdf(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、读书之法 ,在循序而渐进 ,熟读而精思PCIe 总线概述随着现代处理器技术的发展,在互连领域中, 使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。PCI 总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe 链路中只能连接两个设备。 这使得 PCIe 与 PCI 总线采用的拓扑结构有所不同。PCIe 总线除了在连接方式上与 PCI 总线不同之外,还使用了一些在网络通信中使用的技术,如支

2、持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量 QoS (Quality of Service) 问题。PCIe总线的基础知识与 PCI总线不同, PCIe 总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备, 这两个设备互为是数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。PCIe总线使用的层次结构与网络协议栈较为类似。1.1 端到端的数据传递PCIe链路使用 “端到端的数据传送方式”,发送端和接收端中都含有TX( 发送逻辑 )

3、和 RX( 接收逻辑 ),其结构如图4-1 所示。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思由上图所示,在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4 根信号线组成。其中发送端的TX 部件与接收端的RX 部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX 部件与接收端的TX部件使用另一组差分信号

4、连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个 PCIe链路可以由多个Lane 组成。高速差分信号电气规范要求其发送端串接一个电容,以进行AC 耦合。该电容也被称为AC耦合电容。 PCIe链路使用差分信号进行数据传送,一个差分信号由D+和 D-两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“1”还是逻辑“0” 。与单端信号相比, 差分信号抗干扰的能力更强,因为差分信号在布线时要求“等长”、“等宽”、“贴近”,而且在同层。因此外部干扰噪声将被“同值”而且“同时”加载到D+和 D-两根信号上,其差值在理想情况下为0,对信号的逻辑值产生的影响较小。因此差分

5、信号可以使用更高的总线频率。此外使用差分信号能有效抑制电磁干扰EMI(Electro Magnetic Interference) 。 由于差分信号D+与 D-距离很近而且信号幅值相等、极性相反。这两根线与地线间耦合电磁场的幅值相等,将相互抵消,因此差分信号对外界的电磁干扰较小。当然差分信号的缺点也是显而易见的,一是差分信号使用两根信号传送一位数据;二是差分信号的布线相对严格一些。PCIe链路可以由多条Lane组成, 目前 PCIe链路可以支持1、2、4、8、12、16 和 32 个 Lane,即1 、2 、4 、8、12 、16 和32宽度的 PCIe链路。每一个 Lane上使用的总线频率与

6、PCIe总线使用的版本相关。第 1 个 PCIe总线规范为V1.0,之后依次为V1.0a,V1.1,V2.0 和 V2.1。目前 PCIe总线的最新规范为V2.1,而 V3.0 正在开发过程中,预计在20XX年发布。不同的PCIe总线规范所定义的总线频率和链路编码方式并不相同,如表4-1 所示。表 4-1 PCIe总线规范与总线频率和编码的关系PCIe总线规范总线频率 11 单 Lane的峰值带宽编码方式1.x 1.25GHz 2.5GT/s 8/10b 编码2.x 2.5GHz 5GT/s 8/10b 编码3.0 4GHz 8GT/s 128/130b 编码如上表所示,不同的PCIe 总线规

7、范使用的总线频率并不相同,其使用的数据编码方式也不名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思相同。 PCIe总线 V1.x和 V2.0 规范在物理层中使用8/10b 编码,即在PCIe链路上的 10 bit 中含有 8 bit 的有效数据;而V3.0 规范使用128/130b 编码方式,即在PCIe链路上的130 bit 中含有 128 bit 的有效数据。由上表所

8、示, V3.0 规范使用的总线频率虽然只有4GHz,但是其有效带宽是V2.x 的两倍。下文将以 V2.x 规范为例,说明不同宽度PCIe链路所能提供的峰值带宽,如表4-2 所示。表 4-2 PCIe总线的峰值带宽PCIe总线的数据位宽 1 2 4 8 12 16 32 峰值带宽 (GT/s) 5 10 20 40 60 80 160 由上表所示, 32的 PCIe链路可以提供160GT/s 的链路带宽,远高于PCI/PCI-X总线所能提供的峰值带宽。而即将推出的PCIe V3.0 规范使用4GHz的总线频率,将进一步提高PCIe链路的峰值带宽。在 PCIe总线中,使用GT(Gigatransf

9、er)计算 PCIe链路的峰值带宽。GT 是在 PCIe链路上传递的峰值带宽,其计算公式为总线频率 数据位宽 2 。在 PCIe 总线中,影响有效带宽的因素有很多,因而其有效带宽较难计算。尽管如此,PCIe总线提供的有效带宽还是远高于PCI总线。 PCIe总线也有其弱点,其中最突出的问题是传送延时。PCIe链路使用串行方式进行数据传送,然而在芯片内部,数据总线仍然是并行的,因此 PCIe链路接口需要进行串并转换,这种串并转换将产生较大的延时。除此之外PCIe 总线的数据报文需要经过事务层、数据链路层和物理层,这些数据报文在穿越这些层次时,也将带来延时。在基于 PCIe总线的设备中, 1的 PC

10、Ie链路最为常见, 而12 的 PCIe链路极少出现, 4和 8的 PCIe设备也不多见。 Intel 通常在 ICH中集成了多个 1的 PCIe链路用来连接低速外设,而在 MCH 中集成了一个16 的 PCIe链路用于连接显卡控制器。而 PowerPC处理器通常能够支持8 、4 、2 和 1的 PCIe链路。PCIe总线物理链路间的数据传送使用基于时钟的同步传送机制,但是在物理链路上并没有时钟线, PCIe总线的接收端含有时钟恢复模块CDR(Clock Data Recovery) ,CDR将从接收报文中提取接收时钟,从而进行同步数据传递。值得注意的是,在一个PCIe 设备中除了需要从报文中

11、提取时钟外,还使用了REFCLK+ 和REFCLK- 信号对作为本地参考时钟,这个信号对的描述见下文。1.2 PCIe总线使用的信号PCIe设备使用两种电源信号供电,分别是Vcc 与 Vaux,其额定电压为3.3V。其中 Vcc 为主电源, PCIe 设备使用的主要逻辑模块均使用Vcc 供电,而一些与电源管理相关的逻辑使用Vaux供电。 在 PCIe设备中, 一些特殊的寄存器通常使用Vaux供电, 如 Sticky Register,此时即使 PCIe设备的Vcc 被移除,这些与电源管理相关的逻辑状态和这些特殊寄存器的内容也不会发生改变。在 PCIe总线中,使用Vaux 的主要原因是为了降低功

12、耗和缩短系统恢复时间。因为Vaux 在多数情况下并不会被移除,因此当PCIe设备的 Vcc恢复后,该设备不用重新恢复使用Vaux供电的逻辑,从而设备可以很快地恢复到正常工作状状态。PCIe 链路的最大宽度为 32 ,但是在实际应用中, 32的链路宽度极少使用。在一个处理器系 统 中 , 一 般 提 供 16 的PCIe 插 槽 , 并 使 用 PETp015、 PETn015 和PERp015、PER-n015共 64 根信号线组成32 对差分信号,其名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - -

13、 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思中 16 对 PETxx信号用于发送链路,另外16 对 PERxx信号用于接收链路。除此之外PCIe总线还使用了下列辅助信号。1 PERST# 信号该信号为全局复位信号,由处理器系统提供,处理器系统需要为PCIe插槽和 PCIe设备提供该复位信号。 PCIe 设备使用该信号复位内部逻辑。当该信号有效时,PCIe 设备将进行复位操作。 PCIe总线定义了多种复位方式,其中Cold Reset和 Warm Reset这两种复位方式的实现与该信号有关,详见第1.5 节。2

14、 REFCLK+和 REFCLK- 信号在一个处理器系统中,可能含有许多PCIe设备, 这些设备可以作为Add-In 卡与 PCIe插槽连接,也可以作为内置模块,与处理器系统提供的PCIe链路直接相连,而不需要经过PCIe插槽。PCIe设备与 PCIe插槽都具有REFCLK+ 和 REFCLK- 信号, 其中 PCIe插槽使用这组信号与处理器系统同步。在一个处理器系统中,通常采用专用逻辑向PCIe插槽提供REFCLK+ 和 REFCLK- 信号, 如图 4-2所示。其中100Mhz 的时钟源由晶振提供,并经过一个“一推多”的差分时钟驱动器生成多个同相位的时钟源,与PCIe插槽一一对应连接。PC

15、Ie插槽需要使用参考时钟,其频率范围为100MHz 300ppm 。 处理器系统需要为每一个PCIe插槽、 MCH、ICH和 Switch 提供参考时钟。而且要求在一个处理器系统中,时钟驱动器产生的参考时钟信号到每一个PCIe插槽 (MCH、 ICH和 Swith)的距离差在15 英寸之内。通常信号的传播速度接近光速,约为6 英寸 /ns,由此可见,不同PCIe插槽间 REFCLK+ 和 REFCLK- 信号的传送延时差约为2.5ns。当 PCIe设备作为Add-In 卡连接在PCIe插槽时,可以直接使用PCIe插槽提供的REFCLK+ 和REFCLK- 信号,也可以使用独立的参考时钟,只要这

16、个参考时钟在100MHz 300ppm范围内即可。 内置的 PCIe设备与 Add-In 卡在处理REFCLK+ 和 REFCLK- 信号时使用的方法类似,但是 PCIe设备可以使用独立的参考时钟,而不使用REFCLK+ 和 REFCLK- 信号。在 PCIe设备配置空间的Link Control Register 中,含有一个“ Common Clock Configuration ” 位。当该位为 1 时,表示该设备与PCIe链路的对端设备使用“同相位”的参考时钟;如果为0,表示该设备与PCIe链路的对端设备使用的参考时钟是异步的。在 PCIe设备中,“Common Clock Confi

17、guration ”位的缺省值为0,此时 PCIe设备使用的参考时钟与对端设备没有任何联系,PCIe链路两端设备使用的参考时钟可以异步设置。这个异步时钟设置方法对于使用PCIe链路进行远程连接时尤为重要。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思在一个处理器系统中,如果使用PCIe链路进行机箱到机箱间的互连,因为参考时钟可以异步设置, 机箱到机箱之间进行数据传送时仅

18、需要差分信号线即可,而不需要参考时钟,从而极大降低了连接难度。3 WAKE# 信号当 PCIe设备进入休眠状态,主电源已经停止供电时,PCIe设备使用该信号向处理器系统提交唤醒请求,使处理器系统重新为该PCIe 设备提供主电源Vcc 。在 PCIe 总线中, WAKE#信号是可选的,因此使用WAKE# 信号唤醒PCIe设备的机制也是可选的。值得注意的是产生该信号的硬件逻辑必须使用辅助电源Vaux供电。WAKE#是一个 Open Drain 信号,一个处理器的所有PCIe设备可以将WAKE#信号进行线与后,统一发送给处理器系统的电源控制器。当某个 PCIe设备需要被唤醒时, 该设备首先置WAKE

19、#信号有效,然后在经过一段延时之后,处理器系统开始为该设备提供主电源Vcc,并使用PERST# 信号对该设备进行复位操作。此时 WAKE# 信号需要始终保持为低,当主电源Vcc上电完成之后, PERST# 信号也将置为无效并结束复位,WAKE#信号也将随之置为无效,结束整个唤醒过程。PCIe设备除了可以使用WAKE# 信号实现唤醒功能外, 还可以使用Beacon 信号实现唤醒功能。与 WAKE# 信号实现唤醒功能不同,Beacon 使用 In-band 信号,即差分信号D+和 D-实现唤醒功能。 Beacon 信号 DC 平衡,由一组通过D+和 D-信号生成的脉冲信号组成。这些脉冲信号宽度的最

20、小值为2ns,最大值为16us。当 PCIe设备准备退出L2 状态 (该状态为PCIe设备使用的一种低功耗状态)时,可以使用Beacon 信号,提交唤醒请求。4 SMCLK和 SMDAT信号SMCLK和 SMDAT信号与 x86 处理器的 SMBus(System Mangement Bus)相关。 SMBus 于 1995年由 Intel 提出, SMBus由 SMCLK和 SMDAT信号组成。 SMBus源于 I2C 总线,但是与I2C总线存在一些差异。SMBus的最高总线频率为100KHz,而 I2C总线可以支持400KHz和 2MHz 的总线频率。此外SMBus 上的从设备具有超时功能

21、,当从设备发现主设备发出的时钟信号保持低电平超过35ms 时,将引发从设备的超时复位。在正常情况下,SMBus 的主设备使用的总线频率最低为 10KHz,以避免从设备在正常使用过程中出现超时。在 SMbus 中,如果主设备需要复位从设备时,可以使用这种超时机制。而 I2C总线只能使用硬件信号才能实现这种复位操作,在I2C 总线中,如果从设备出现错误时,单纯通过主设备是无法复位从设备的。SMBus还支持 Alert Response 机制。当从设备产生一个中断时,并不会立即清除该中断,直到主设备向0b0001100 地址发出命令。上文所述的SMBus 和 I2C 总线的区别还是局限于物理层和链路

22、层上,实际上SMBus 还含有网络层。 SMBus还在网络层上定义了11 种总线协议,用来实现报文传递。SMBus在 x86 处理器系统中得到了大规模普及,其主要作用是管理处理器系统的外部设备,并收集外设的运行信息,特别是一些与智能电源管理相关的信息。PCI和 PCIe插槽也为 SMBus预留了接口,以便于PCI/PCIe设备与处理器系统进行交互。在 Linux 系统中, SMBus 得到了广泛的应用,ACPI也为 SMBus 定义了一系列命令,用于智能电池、电池充电器与处理器系统之间的通信。在Windows 操作系统中,有关外部设备的描述信息,也是通过SMBus获得的。5 JTAG 信号JT

23、AG(Joint Test Action Group)是一种国际标准测试协议,与IEEE 1149.1兼容,主要用于芯片内部测试。目前绝大多数器件都支持JTAG测试标准。 JTAG信号由TRST# 、TCK 、TDI、 TDO和 TMS 信号组成。其中TRST# 为复位信号; TCK为时钟信号; TDI和 TDO 分别与数据输入和名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读

24、而精思数据输出对应;而TMS信号为模式选择。JTAG允许多个器件通过JTAG接口串联在一起,并形成一个JTAG链。目前FPGA和 EPLD可以借用 JTAG接口实现在线编程ISP(In-System Programming)功能。处理器也可以使用JTAG接口进行系统级调试工作,如设置断点、读取内部寄存器和存储器等一系列操作。除此之外JTAG接口也可用作“逆向工程”,分析一个产品的实现细节,因此在正式产品中,一般不保留 JTAG接口。6 PRSNT1# 和 PRSNT2# 信号PRSNT1# 和 PRSNT2# 信号与 PCIe设备的热插拔相关。 在基于 PCIe总线的 Add-in 卡中, P

25、RSNT1#和 PRSNT2# 信号直接相连,而在处理器主板中,PRSNT1# 信号接地,而PRSNT2# 信号通过上拉电阻接为高。PCIe设备的热插拔结构如图4-3 所示。如上图所示,当Add-In 卡没有插入时,处理器主板的PRSNT2# 信号由上拉电阻接为高,而当 Add-In 卡插入时主板的PRSNT2# 信号将与 PRSNT1# 信号通过 Add-In 卡连通,此时 PRSNT2#信号为低。处理器主板的热插拔控制逻辑将捕获这个“低电平”,得知 Add-In 卡已经插入,从而触发系统软件进行相应地处理。Add-In 卡拔出的工作机制与插入类似。当Add-in 卡连接在处理器主板时,处理

26、器主板的PRSNT2# 信号为低,当Add-In 卡拔出后,处理器主板的PRSNT2# 信号为高。处理器主板的热插拔控制逻辑将捕获这个“高电平”,得知 Add-In 卡已经被拔出,从而触发系统软件进行相应地处理。不同的处理器系统处理PCIe 设备热拔插的过程并不相同,在一个实际的处理器系统中,热拔插设备的实现也远比图4-3 中的示例复杂得多。值得注意的是,在实现热拔插功能时,Add-in Card 需要使用“长短针”结构。如图 4-3 所示, PRSNT1# 和 PRSNT2# 信号使用的金手指长度是其他信号的一半。因此当PCIe设备插入插槽时,PRSNT1# 和 PRSNT2# 信号在其他金

27、手指与PCIe插槽完全接触, 并经过一段延时后,才能与插槽完全接触;当PCIe设备从 PCIe插槽中拔出时,这两个信号首先与PCIe插槽断连, 再经过一段延时后,其他信号才能与插槽断连。系统软件可以使用这段延时,进行一些热拔插处理。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思1.3 PCIe总线的层次结构PCIe 总线采用了串行连接方式,并使用数据包(Packet)进

28、行数据传输,采用这种结构有效去除了在 PCI总线中存在的一些边带信号,如 INTx和 PME#等信号。 在 PCIe总线中, 数据报文在接收和发送过程中,需要通过多个层次,包括事务层、 数据链路层和物理层。PCIe总线的层次结构如图4-4 所示。PCIe总线的层次组成结构与网络中的层次结构有类似之处,但是PCIe总线的各个层次都是使用硬件逻辑实现的。在PCIe体系结构中,数据报文首先在设备的核心层(Device Core)中产生,然后再经过该设备的事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer),最终发送出去。而

29、接收端的数据也需要通过物理层、数据链路和事务层,并最终到达Device Core。1 事务层事务层定义了PCIe总线使用总线事务,其中多数总线事务与PCI总线兼容。这些总线事务可以通过 Switch 等设备传送到其他PCIe设备或者RC 。 RC也可以使用这些总线事务访问PCIe设备。事务层接收来自PCIe设备核心层的数据,并将其封装为TLP(Transaction Layer Packet) 后,发向数据链路层。此外事务层还可以从数据链路层中接收数据报文,然后转发至PCIe 设备的核心层。事务层的一个重要工作是处理PCIe总线的“序”。在 PCIe总线中,“序”的概念非常重要,也较难理解。在

30、PCIe总线中,事务层传递报文时可以乱序,这为PCIe设备的设计制造了不小的麻烦。事务层还使用流量控制机制保证PCIe链路的使用效率。有关事务层的详细说明见第 6 章。2 数据链路层名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思数据链路层保证来自发送端事务层的报文可以可靠、完整地发送到接收端的数据链路层。来自事务层的报文在通过数据链路层时,将被添加Sequence Nu

31、mber 前缀和 CRC后缀。数据链路层使用ACK/NAK协议保证报文的可靠传递。PCIe总线的数据链路层还定义了多种DLLP(Data Link Layer Packet) ,DLLP产生于数据链路层,终止于数据链路层。值得注意的是, TLP与 DLLP并不相同, DLLP并不是由TLP加上 Sequence Number 前缀和 CRC后缀组成的。3 物理层物理层是 PCIe总线的最底层, 将 PCIe设备连接在一起。 PCIe总线的物理电气特性决定了PCIe链路只能使用端到端的连接方式。PCIe总线的物理层为PCIe设备间的数据通信提供传送介质,为数据传送提供可靠的物理环境。物理层是PC

32、Ie 体系结构最重要,也是最难以实现的组成部分。PCIe 总线的物理层定义了LTSSM(Link Training and Status State Machine) 状态机, PCIe链路使用该状态机管理链路状态,并进行链路训练、链路恢复和电源管理。PCIe 总线的物理层还定义了一些专门的“序列”,有的书籍将物理层这些“序列”称为PLP(Phsical Layer Packer) , 这些序列用于同步PCIe链路,并进行链路管理。 值得注意的是PCIe设备发送PLP与发送 TLP的过程有所不同。对于系统软件而言,物理层几乎不可见,但是系统程序员仍有必要较为深入地理解物理层的工作原理。1.4

33、PCIe链路的扩展PCIe链路使用端到端的数据传送方式。在一条PCIe链路中,这两个端口是完全对等的,分别连接发送与接收设备,而且一个PCIe链路的一端只能连接一个发送设备或者接收设备。因此 PCIe链路必须使用Switch 扩展 PCIe链路后, 才能连接多个设备。使用 Switch 进行链路扩展的实例如图4-5 所示。在 PCIe总线中, Switch22 是一个特殊的设备,该设备由1 个上游端口和2n 个下游端口组成。 PCIe总线规定,在一个Switch 中可以与RC直接或者间接相连33的端口为上游端口,在 PCIe总线中, RC的位置一般在上方,这也是上游端口这个称呼的由来。在Swi

34、tch 中除了上游端口外,其他所有端口都被称为下游端口。下游端口一般与EP相连,或者连接下一级名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思Switch 继续扩展PCIe链路。其中与上游端口相连的PCIe链路被称为上游链路,与下游端口相连的 PCIe链路被称为下游链路。上游链路和下游链路是一个相对的概念。如上图所示,Switch 与 EP2连接的PCIe链路,对于 EP

35、2而言是上游链路,而对Switch 而言是下游链路。在上图所示的Switch 中含有 3 个端口,其中一个是上游端口(Upstream Port) ,而其他两个为下游端口 (Downstream Port) 。其中上游端口与RC或者其他Switch 的下游端口相连,而下游端口与 EP或者其他Switch 的上游端口相连。在 Switch 中,还有两个与端口相关的概念,分别是Egress端口和 Ingress 端口。这两个端口与通过 Switch 的数据流向有关。其中Egress端口指发送端口,即数据离开Switch 使用的端口; Ingress端口指接收端口即数据进入Switch 使用的端口。

36、Egress端口和 Ingress 端口与上下游端口没有对应关系。在Switch 中,上下游端口可以作为Egress端口,也可以作为Ingress 端口。如图4-5 所示, RC对 EP3的内部寄存器进行写操作时, Switch 的上游端口为Ingress 端口,而下游端口为Egress端口;当EP3对主存储器进行DMA 写操作时,该Switch 的上游端口为Egress端口,而下游端口为Ingress端口。PCIe 总线还规定了一种特殊的Switch 连接方式,即Crosslink 连接模式。支持这种模式的Switch,其上游端口可以与其他Switch 的上游端口连接,其下游端口可以与其他S

37、witch 的下游端口连接。PCIe总线提供CrossLink连接模式的主要目的是为了解决不同处理器系统之间的互连,如图4-6 所示。使用CrossLink连接模式时,虽然从物理结构上看,一个Switch 的上 /下游端口与另一个 Switch 的上 /下游端口直接相连,但是这个PCIe链路经过训练后,仍然是一个端口作为上游端口,而另一个作为下游端口。处理器系统1 与处理器系统2 间的数据交换可以通过Crosslink 进行。当处理器系统1(2)访问的 PCI总线域的地址空间或者Requester ID不在处理器系统1(2)内时, 这些数据将被Crosslink端口接收, 并传递到对端处理器系

38、统中。Crosslink 对端接口的P2P桥将接收来自另一个处理器域的数据请求,并将其转换为本处理器域的数据请求。使用Crosslink 方式连接两个拓扑结构完全相同的处理器系统时,仍然有不足之处。假设图4-6 中的处理器系统1 和 2 的 RC使用的 ID 号都为 0,而主存储器都是从0 x0000-0000 开始编址时。 当处理器1读取 EP2的某段 PCI总线空间时, EP2将使用 ID 路由方式, 将完成报文传送给 ID 号为 0 的 PCI设备,此时是处理器2 的 RC而不是处理器1 的 RC收到 EP2的数据。因为处理器1 和 2 的 RC使用的 ID 号都为 0,EP2不能区分这

39、两个RC 。由上所述,使用Crosslink 方式并不能完全解决两个处理器系统的互连问题,因此在有些Switch 中支持非透明桥结构。这种结构与PCI总线非透明桥的实现机制类似,本章对此不做进一步说明。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思使用非透明桥仅解决了两个处理器间数据通路问题,但是不便于NUMA 结构对外部设备的统一管理。 PCIe总线对此问题的最终解决

40、方法是使用MR-IOV 技术, 该技术要求Switch 具有多个上游端口分别与不同的RC 互连。目前PLX 公司已经可以提供具有多个上游端口的Switch,但是尚未实现MR-IOV 技术涉及的一些与虚拟化相关的技术。即便 MR-IOV 技术可以合理解决多个处理器间的数据访问和对PCIe设备的配置管理,使用PCIe总线进行两个或者多个处理器系统间的数据传递仍然是一个不小问题。因为PCIe总线的传送延时仍然是制约其在大规模处理器系统互连中应用的重要因素。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com