PCI Express非透明桥在多处理器系统中的应用

您所在的位置:网站首页 非可视网桥 PCI Express非透明桥在多处理器系统中的应用

PCI Express非透明桥在多处理器系统中的应用

2024-07-13 00:47| 来源: 网络整理| 查看: 265

摘要:随着现代处理器技术的发展,多处理器系统在并行计算、云存储等领域的应用愈加广泛。本文分析了PCI Express非透明桥的基本结构和原理,阐述了PCI Express非透明桥在多处理器系统中的应用方式。

关键词:PCI Express;非透明桥;多处理器;地址翻译 一、PCI Express简介

PCI Express(或称PCIe)由互连外围设备专业组(PCI-SIG)制订,是一项用于替代PCI、PCI Extended (PCI-X)等基于总线的高性能、高带宽的通讯体系架构。 与PCI体系结构相比,PCIe 采用高速差分总线和端到端的连接方式,可以提供更大的总线带宽,PCIe V3.0支持的最高总线频率为 4GHz,远高于 PCI-X 总线提供的最高总线频率。其次,PCIe 总线支持虚通路 VC(Virtual Channel)技术,优先级不同的数据报文可以使用不同的虚通路,而每一路虚通路可以独立设置缓冲,从而相对合理地解决了数据传送过程中存在的服务质量问题[1]。 PCIe 总线由若干层次组成,包括事务层、数据链路层和物理层。PCIe 总线使用数据报文进行数据传递,数据报文需要依次通过 PCIe 总线的这些层次,这种数据传递方式与互联网使用 TCP/IP 协议进行数据传递比较类似。 PCIe总线在系统软件级与PCI 总线兼容,基于PCI总线的系统软件几乎可以不经修改直接移植到 PCIe 总线中。绝大多数 PCI/PCI-X 总线使用的总线事务都被 PCIe 总线保留,而 PCI 设备使用的配置空间也被 PCIe 总线继承。 不同的PCIe 总线规范使用的总线频率和数据编码方式也不相同。PCIe 总线V1.x和V2.x 规范在物理层中使用8/10b 编码,即在PCIe链路上的10bit中含有8bit的有效数据;而V3.0规范使用128/130b编码方式,即在PCIe链路上的130bit中含有128bit的有效数据。

二、非透明桥技术

PCIe链路使用端到端的数据传送方式,一个PCIe链路的一端只能连接一个发送设备或者接收设备。因此PCIe链路必须使用Switch扩展PCIe链路后,才能连接多个设备。 和PCI总线桥类似,根据PCIeSwitch工作原理的不同, 可以分为透明桥和非透明桥两种。 透明桥( transparent )通常用于总线扩展。桥的从端口侧的所有设备对主端口系统是透明的。从端口侧的所有设备只能由主端口侧的主系统对其进行配置和控制。主从两侧的设备地址完全透明。 透明桥( non-transparent) : 通常用于嵌入式智能 I/ O板卡。它连接两个独立的处理器域, 从设备侧的资源和地址对主设备侧的主系统是不可见的。允许从设备侧的本地处理器独立地配置和控制其子系统。从设备侧和主设备侧的地址完全独立。

非透明桥解决了多处理系统中的地址域冲突问题。如图1所示,处理器x和处理器y通过非透明互相隔离,处理器间的I/O数据通信通过非透明桥的地址翻译功能进行地址的相互转换。处理器间的状态信息通过非透明桥特殊寄存器实现[2]。

1、地址翻译

在非透明桥的环境中,PCIExpress系统需要从一个内存地址空间穿越到另一个地址空间时进行地址翻译。每一个非透明桥端口都有两套基地址寄存器(BAR),一套给主设备端使用,另一套给从设备端使用。基地址寄存器可以用来定义在非透明桥另一端的内存地址空间的地址翻译窗口,并允许翻译后的地址映射到本地内存或者IO空间。每个BAR定义了一个设置寄存器和一个地址翻译寄存器,设置寄存器用来定义窗口的大小、类型,翻译寄存器定义了具体的翻译规则[3]。 非透明桥的地址翻译技术可以分为直接地址翻译和查表地址翻译两种。

直接地址翻译的过程如图2所示,32位的寄存器值被分成两部分,低14为表示窗口大小,高18位表示数据信息的初始地址,翻译模式是BAR基地址加上一个偏移量。

 

图3为查表翻译的过程示意图,在32位的寄存器中有6位用来作为查找表的索引,查找到的基地址加上偏移量得到翻译后的地址。因为地址中的索引域可以通过编程来调节窗口的大小,因此这种方法在本地地址到主机地址的映射中具有更高的灵活性。

2、处理器间通信

非透明桥允许桥两侧的主机通过便笺寄存器和门铃寄存器交换一些状态信息。 便笺寄存器在非透明桥的两端都是可以读写的,在具体实现中,便笺寄存器的个数可以不同。便笺寄存器可以被桥两边的设备用来传递一些状态信息,也可以作为通用的可读写寄存器使用。 门铃寄存器可以从非透明桥的一端向另一端发送中断信息。非透明桥的两端都有中断请求寄存器和相应的中断屏蔽寄存器,这些寄存器能够被两端处理器同时访问。 通过门铃寄存器还可以传送心跳消息,心跳消息一般由主设备发送到从设备,用来探测从设备是否正常,如果主设备在发送若干信条消息之后未收到从设备的回应信息,就可以认为从设备出现故障。 三、非透明桥的应用

1、智能适配卡系统

图4为利用非透明桥实现智能适配卡系统的示意图。通过非透明桥,实现了智能适配卡上的CPU处理器和Host CPU的隔离,同时,二者之间又可以通过一些特定的寄存器进行相互之间的数据通信。

2、双主机互备系统

非透明桥在双主机系统中有非常重要的作用。在图5中,两个主机系统通过两个非透明桥实现背靠背的连接,两个主机系统能够并行工作,同时在两个系统中间有PCIe通路连接,能够实现故障转移和负荷分担功能。

 

3、多主机系统

在多主机系统中,每一个主机都是通过非透明桥连接到系统之中的,并且可以访问所有的端点。依赖于非透明桥的数据通信能力,所有的CPU都可以与其他CPU进行数据和状态的交互,图6所示是采用非透明桥实现多主机系统的结构图[4]。

四、结语

在PCI规范中非透明桥技术就已经被应用,随着主流总线规范由PCI过渡到PCI Express,非透明桥技术更加成熟。从简单的智能适配卡,到复杂的多处理系统,非透明桥技术在多处理器系统中将会有更为广泛的应用。 参考文献:

[1] PCI Experss 体系结构导读[M].北京:机械工业出版社,2010. [2]胡永宁,窦文华. 基于PCI桥的双CPU通信技术[J].计算机应用,2006(04). [3]刘海华,陈心浩. 异步非透明PCI-PCI的应用研究[J].微计算机应用,2006,(04).  [4] Using Non-transparent Bridging in PCI Express System[M],http://www.plxtech.com.  

 

该文章转载自:http://www.zgznh.com/fangan/show-731696.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3