0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PCI Express非透明桥实现多主机系统的设计方案研究

电子设计 来源:电子元器件应用 作者:李才华 2020-05-12 07:53 次阅读

引言

在系统设计中,设计师们面临的重要挑战是既要支持高可靠性(HA,High Availability),又要使系统尽可能简单、有效。而PCI Express、基于PCI Express的高级交换架构(Advanced SwitchingArchitecture)、基于PCI Express的QOS(Quality-Of-Service)特性以及PCI-Express非透明桥的出现,共同为这样的系统设计提供了一个非常有发展潜力的解决方案。

1、PCI Express技术简介

PCI Express技术是一个比较新的互连标准。该技术适用于高性能的芯片到芯片、板子到板子、背板和机箱之间的互连。它是PCI标准的一个演进版本,因此,在软件结构上仍保持着对PCI的兼容性。

PCI Express是基于层次化的、高速的串行通信技术。其协议栈可分为物理层、数据链路层和传输层。

其中,物理层包括低电压差分信号的高速串行接口、8B/10B编码以及AC耦合差分信号。通常把一组LVDS双绞线称为一个通道(lane),而且PCI Express允许将多个通道合并成一个更大更宽的端口,如x1,x2…直到x32。物理层接口可支持热插拔(hot-plugging)。

数据链路层可支持与临近PCI Express实体交换数据包,同时支持数据完整性(data integrity)和顺序性检查,以及数据包的确认和流量控制的能力。

PCI Express技术系统中的传输层可在主机和终端设备间传送读/写请求,并可选择性的提供传输层的端到端(end-to-end)数据包的完整性检查(CRC-32)。

一直以来,PCI Express传输系统中的物理层的速度一直在不断的提高,但是,分层结构使物理层的变化不会影响到它的上层。如PCI Express1.x标准的时钟频率是1.25 GHz,2.0标准的则为2.5 GHz,3.0标准的是4 GHz。图l所示是PCI Ex-press协议栈结构。

基于PCI Express非透明桥实现多主机系统的设计方案研究

PCI Express的QOS可通过定义8个运输等级(TC-Traffic Classes)、八个虚拟通道(VC-VirtualChannel)、TC到VC的映射以及VC的仲裁机制来实现。

PCI-SIG组织则定义了从PCI Express串行接口到PCI/PCI-X的桥接规范。该规范可以使得当前使用PCI/PCI-X的应用系统能够平滑的转移到PCI Express。图2所示是一个典型的PCI Express系统,其中包含有根复合体(root complex)、PCIExpress交换开关(switch)、桥(bridge,PCI Expressto PCI-X,PCI Express to PCI)以及端点(end-point)等设备。

基于PCI Express非透明桥实现多主机系统的设计方案研究

2、PCI Express非透明桥

与PCI/PCI-X一样,PCI Express本身也是开发维护一个以单一主机为中心的系统架构,但是人们一直使用非透明桥把他们用在多主机的环境中。

非透明桥的功能和透明桥很相似,其主要差别只有一点,即在非透明桥的两边都有智能设备或处理器,并且他们拥有独立的地址空间。而且,非透明桥一边的主机不能看到桥另一边的完整地址或I/O空间。每个处理器把非透明桥的另一边看做一个端点(endpoint),并把它映射到自己的地址空间。

2.1 地址翻译

在非透明桥环境中,PCI Express系统需要在从一个内存地址空间穿越到另一个地址空间时进行地址翻译。每一个非透明桥(NTB)端口都有两套基地址寄存器(BAR),一套是给主设备端用的,另一套是给从设备端用的。基地址寄存器可用来定义在非透明桥另一端的内存地址空间的地址翻译窗口,并允许这个翻译被映射到本地的内存或I/O空间。每个BAR定义了一个设置寄存器(setup register),可用来定义窗口的大小、类型以及一个地址翻译寄存器。与透明桥基于总线号转发所有CSRs不同,非透明桥设备只接受针对本设备的CSR事务。其地址翻译技术有直接地址翻译和查表地址翻译两种。

在直接地址翻译模式下,地址翻译的过程是基于事务终结的BAR基址加上一个偏移量。BARs中的基址翻译寄存器可被用来设置这样的翻译。图3所示给出了从主设备端地址映射到从设备端地址的偏移过程。

基于PCI Express非透明桥实现多主机系统的设计方案研究

BARs则用一种特别的查找表来为落在它窗口中的事务进行地址翻译。因为地址中的索引域可通过编程来调节窗口大小,因此,这种方法在本地地址到主机地址的映射中具有更高的灵活性。通常索引被用来提供新内存地址的高位比特(bits)。

2.2 处理器间的通信

非透明桥允许桥两边的主机通过便笺寄存器、门铃寄存器和心跳消息来交换一些状态信息

便笺寄存器在非透明桥的两端都是可读写的,但是,便笺寄存器的数量在具体的实现中是可以不同的。他们可以被桥两边的设备用来传送一些状态信息,也可作为通用的可读可写寄存器使用。

门铃寄存器被用来从非透明桥的一边向另一边发送中断。非透明桥的两边一般都有软件可以控制的中断请求寄存器和相应的中断屏蔽寄存器。这些寄存器在非透明桥的两边都是可以被访问的。

心跳消息一般来自主设备端往从设备端的主机,可用来指示它还活着。从设备主机可监控主设备主机的状态,如果发现出错,它就可以采取一些必要的措施。通过门铃寄存器可以传送心跳消息。当从设备主机没有收到一定数量预先规定好的心跳消息时,就可以认为主设备的主机出错了。

3、基于PCI Express非透明桥的多主机系统

3.1 智能插卡

在智能卡模式下,智能插卡上的PCI Express非透明桥可以将IOP和Host CPU隔离开来,但仍允许这两个CPU通过一些特殊的寄存器进行通信。图4所示是智能插卡模式下的非透明桥的通信结构。

3.2 双主机模式

非透明桥也可用在双主机(Dual Host)、主机故障转移(Host Failover)和负载分担(Load-shar-ing)等应用中。图5所示是将两个Host CPU被非透明桥隔离开的结构示意图。

基于PCI Express非透明桥实现多主机系统的设计方案研究

3.3 多主机模式

在多主机系统中,每一个主机都可以通过非透明桥接入到系统之中,并且可以访问所有的端点。在PCI的枚举过程中,每个端点都要和某个特定的CPU关联,但在正常的操作过程中,依赖于非透明桥的地址翻译能力。所有的CPU都可以访问所有的端点。图6所示是主机系统的非透明桥结构。

4、结束语

非透明桥技术在PCI时代就已被应用。现在,在PCI Express系统中也有类似的实现。相信在不远的将来,从简单的智能插卡到复杂的、带虚拟输入输出技术的多主机系统,人们都将看到PCIExpress非透明桥的广泛应用。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148512
  • PCI
    PCI
    +关注

    关注

    4

    文章

    608

    浏览量

    129591
  • 主机
    +关注

    关注

    0

    文章

    897

    浏览量

    34609
收藏 人收藏

    评论

    相关推荐

    PCI Express Endpoint Master DMA设计实现

    4. 支持Master DMA Write和Master DMA Read全双工数据传输5. PCI Express驱动支持Windows 32/64位、Linux等操作系统,如Windriver6.
    发表于 06-21 13:38

    一种基于PCI Express接口的数据采集存储系统设计

    磁盘阵列相连后,便可通过主机软件界面实现对硬件设备的控制。1 系统结构方案总体上分为三个部分:高速信号采集卡、主机、Raid磁盘阵列,他们之
    发表于 06-11 05:00

    PCI Express电源和迷你卡解决方案

    DN346-PCI Express电源和迷你卡解决方案
    发表于 09-03 08:54

    zc706板和主机PC之间的PCI Express如何进行通信

    你好,我正在研究zc706板和主机PC之间的PCI Express通信。我有referug963-zc706-pcie-trd-ug,xtp246-zc706-pcie-c-2015-
    发表于 05-20 07:02

    CPU如何通过PCI Express访问板上的系统

    你好,我目前正在研究Kintex 7 KC705开发板上的项目。我需要做的是通过使用电路板的PCI Express功能从Linux操作系统访问电路板上的
    发表于 07-20 14:44

    PCI Express在嵌入式系统中有哪些应用?

    PCI Express有哪几个版本?它们分别有什么特点?PCI Express在嵌入式系统中有哪些应用?
    发表于 04-26 06:39

    FPGA的PCI Express接口有哪些优势?

    PCI Express的高级特性包括哪些?实现PCI Express接口的难点有哪些?FPGA的PCI
    发表于 05-26 06:52

    针对可编程PCI Express解决方案的评估方法

    针对可编程PCI Express解决方案的评估方法:外设部件互连( PCI )及其衍生的PCI - X和
    发表于 03-03 10:36 14次下载

    PCI ExpressPCI 桥设计原理及应用

    PCI ExpressPCI 桥设计原理及应用 功能一般功能• PCI Express
    发表于 03-06 11:16 35次下载

    基于PCI Express总线高速数据采集卡的设计与实现

    本文介绍一种基于PCI Express 总线的高速数据采集卡的设计方案及功能实现。给出系统的基本结构及单元组成,重点阐述
    发表于 09-22 08:15 62次下载

    PCI Express插槽,什么是PCI Express插槽

    PCI Express插槽,什么是PCI Express插槽,PCI Express插槽外形图
    发表于 04-26 18:19 4942次阅读

    PCI Express总线

    PCI Express总线 其实,PCI Express是一个计算机系统总线的名称,不过大家听得最多的还是“接口”这个词,也没错,
    发表于 01-22 11:21 631次阅读

    PCI Express解决方案的介绍

    本视频介绍了在使用AXI Bridge for PCI Express Gen3子系统时创建使用Tandem with Field Updates流程的PCI
    的头像 发表于 11-29 06:12 2781次阅读

    如何创建和使用Xilinx的UltraScale PCI Express解决方案

    了解如何创建和使用Xilinx的UltraScale PCI Express解决方案。 使用Vivado IP目录GUI创建和使用PCI Expr
    的头像 发表于 11-28 06:36 3475次阅读
    如何创建和使用Xilinx的UltraScale <b class='flag-5'>PCI</b> <b class='flag-5'>Express</b>解决<b class='flag-5'>方案</b>

    PCI Express系统中DMA的基本功能介绍

    本视频介绍了创建PCI Express解决方案的过程,该解决方案使用新的2016.1 DMA用于PCI
    的头像 发表于 11-22 06:42 4836次阅读