CN107645457A - 一种PCIe交换机***和方法 - Google Patents
一种PCIe交换机***和方法 Download PDFInfo
- Publication number
- CN107645457A CN107645457A CN201710976713.5A CN201710976713A CN107645457A CN 107645457 A CN107645457 A CN 107645457A CN 201710976713 A CN201710976713 A CN 201710976713A CN 107645457 A CN107645457 A CN 107645457A
- Authority
- CN
- China
- Prior art keywords
- pcie
- data
- sent
- host
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开一种PCIe交换机***和方法,涉及电子技术领域,由FPGA实现,应用功能可编程,根据实际需要能够挂接多个PCIe设备;中央处理单元从异步FIFO读取上位机发来的PCIe数据,根据不同应用场景对数据进行各种处理;若需转发,则向目的地址对应的PCIe Host发送数据,由PCIe Host将数据发出;若需过滤,则将数据丢弃;若需广播,则向所有地址对应的PCIe Host发送数据,由PCIe Host将数据发出。本发明采用异步FIFO方便读写不同时钟域的数据,实现PCIe数据转发、过滤、广播等功能;增大了处理数据流的能力;电路简单,转发节点数可宽展有巨大优势。
Description
技术领域
本发明涉及电子技术领域,具体的说是一种PCIe交换机***和方法。
背景技术
随着PCIe(Peripheral Component Interconnect Express,外设部件互连标准扩展)技术的发展,通过PCIe协议将多个设备进行板间互联从而进行数据转发已是大势所趋,而这项技术需要用到PCIe交换机。
目前,PCIe交换机的硬件主要包括处理器、内存、PCIe交换(switch)芯片、时钟、电源等。PCIe交换机的软件主要包括操作***以及必要的驱动和管理软件。一般的,PCIe交换芯片与多个转发设备相连形成PCIe树,在P2P (点到点)的工作模式下为连接在其上的多个设备进行数据转发。处理器能够与PCIe交换芯片进行数据和控制信号的传输,从而成为整个PCIe交换树的根结点。在PCIe交换机进行数据转发的过程中,当处理器因故障而复位时,会在整个PCIe树广播热复位(hot reset)命令,从而使PCIe交换芯片复位,PCIe交换机的数据转发因此被中断。
本发明使用FPGA技术,应用功能可编程,设计一种PCIe交换机***,能够根据实际需要可以挂接多个PCIe设备。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种PCIe交换机******和方法。
本发明所述一种PCIe交换机***,解决上述技术问题采用的技术方案如下:所述PCIe交换机***,由FPGA实现,应用功能可编程,根据实际需要能够挂接多个PCIe设备;***架构包括:
PCIe Slave:由FPGA内部IP实现,PCIe数据在IP中已经解析;连接异步FIFO,上位机数据通过PCIe Slave输入异步FIFO;
异步FIFO:连接中央处理单元交互;从PCIe Slave读取PCIe数据并发送给中央处理单元;
中央处理单元:根据PCIe Slave过来的数据根据不同的应用场景进行各类处理,比如转发、过滤、广播等,增大了该***处理数据流的能力。
若干PCIe Host:由FPGA内部IP实现,相应的PCIe Host接收中央处理单元发送的数据,并将数据打包后发出。
进一步,对应每个PCIe Host设置前置FIFO,所述中央处理单元通过前置FIFO连接至对应的PCIe Host。中央处理单元将PCIe数据处理后发送到前置FIFO,对应的PCIe Host从前置FIFO读取数据后发出。
进一步,所述PCIe交换机***还包括DDR内存,DDR内存连接至中央处理单元。
进一步,所述PCIe交换机***设置有两个PCIe Host。
本发明还提出一种PCIe交换机方法,由FPGA实现,应用功能可编程,根据实际需要能够挂接多个PCIe设备;实现流程包括:
步骤1、中央处理单元从异步FIFO读取上位机发来的PCIe数据,根据不同的应用场景对PCIe数据进行各种处理;
步骤2、根据具体的命令做出相应的操作:若需转发,则向目的地址对应的PCIe Host发送数据,由PCIe Host将数据发出;
若需过滤,则将数据丢弃;
若需广播,则向所有地址对应的PCIe Host发送数据,由PCIe Host将数据发出。
进一步,所述步骤2:
中央处理单元从异步FIFO读取上位机发来的PCIe数据,然后根据具体的命令作出相应的操作,若需转发,则向目的地址发送数据到对应的PCIe Host的前置FIFO,然后PCIe Host读取数据后发出;
若需广播,则同时向所有PCIe Host的前置FIFO发送数据,再由PCIe Host读取数据后发出。
进一步,中央处理单元接收PCIe Slave过来的数据后,根据不同的应用场景进行各类处理,同时数据可以暂存在DDR内存中。
本发明所述一种PCIe交换机***和方法,与现有技术相比具有的有益效果是:本发明根据实际需要可以挂接多个PCIe设备;采用异步FIFO可以方便的读写不同时钟域的数据,起到同步的作用;中央处理单元在处理数据时,新来数据可以暂存在DDR内存中,实现PCIe数据的转发、过滤、广播等功能;增大了该***处理数据流的能力;本发明电路简单,在转发节点数可宽展等方面具有巨大优势,具有广阔的应用前景。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术内容,下面对本发明实施例或现有技术中所需要的附图做简单介绍。显而易见的,下面所描述附图仅仅是本发明的一部分实施例,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,但均在本发明的保护范围之内。
附图1为实施例3所述PCIe交换机***的示意图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清查、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。
实施例1:
本实施例提出一种PCIe交换机***,由FPGA实现,应用功能可编程,根据实际需要能够挂接多个PCIe设备。FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
本实施例PCIe交换机***,***结构包括:
PCIe Slave:由FPGA内部IP实现,PCIe数据在IP中已经解析;连接异步FIFO,上位机数据通过PCIe Slave输入异步FIFO;
异步FIFO:连接中央处理单元交互;从PCIe Slave读取PCIe数据并发送给中央处理单元。FIFO(First Input First Output),即先进先出队列,先进入的指令先完成并引退,跟着才执行第二条指令。采用异步FIFO可以方便的读写不同时钟域的数据,起到同步的作用。
中央处理单元:根据PCIe Slave过来的数据根据不同的应用场景进行各类处理,比如转发、过滤、广播等,增大了该***处理数据流的能力。
若干PCIe Host:由FPGA内部IP实现,经中央处理单元输入相应的PCIe Host,进行PCIe数据打包进而发出。
本实施例PCIe交换机***,通过PCIe Slave、中央处理单元、异步FIFO和多个PCIeHost组成,可以实现PCIe数据的转发、过滤、广播等功能;电路简单、转发节点数可宽展等方面具有巨大优势。
本实施例还提出了一种PCIe交换机方法,其技术内容可以参照上述实施例1PCIe交换机***,具体实现流程如下:
步骤1、中央处理单元从异步FIFO读取上位机发来的PCIe数据,根据不同的应用场景对PCIe数据进行各种处理;
步骤2、根据具体的命令做出相应的操作:若需转发,则向目的地址对应的PCIe Host发送数据,由PCIe Host将数据发出;
若需过滤,则将数据丢弃;
若需广播,则向所有地址对应的PCIe Host发送数据,由PCIe Host将数据发出。
实施例2:
本实施例提出的一种PCIe交换机***,在实施例1的基础上,***结构中对应PCIeHost还设置了前置FIFO,通过前置FIFO进一步增加了该***处理数据流的能力。
前置FIFO:中央处理单元经前置FIFO连接至PCIe Host,中央处理单元将PCIe数据处理后发送到前置FIFO,对应的PCIe Host从前置FIFO读取数据后发出。
该***PCIe交换机还包括DDR内存,DDR内存连接至中央处理单元;中央处理单元根据PCIe Slave过来的数据根据不同的应用场景进行各类处理,同时数据能够暂存在DDR内存中,进一步增大了该***处理数据流的能力。
本实施例还提出了一种PCIe交换机方法,其技术内容可以参照上述实施例2PCIe交换机***,中央处理单元接收PCIe Slave过来的数据后,根据不同的应用场景进行各类处理,同时数据可以暂存在DDR内存中,增大了该***处理数据流的能力。
中央处理单元从异步FIFO读取上位机发来的PCIe数据,然后根据具体的命令作出相应的操作,若需转发,则向目的地址发送数据到对应的PCIe Host的前置FIFO,然后PCIeHost读取数据后发出;
若需屏蔽,则将该数据丢弃;
若需广播,则同时向所有PCIe Host的前置FIFO发送数据,再由PCIe Host读取数据后发出。
实施例3:
本实施例提出的一种PCIe交换机***,在实施例1、实施例2的基础上,在***中设置两个PCIe Host。通过对实施例3的详细说明,来介绍本发明的具体技术内容以及技术效果。
附图1为实施例3PCIe交换机***的示意图,如附图1所示,PCIe交换机***包括:PCIe Slave、中央处理单元、DDR内存、三个异步FIFO和两个PCIe Host,其中一个异步FIFO用于PCIe Slave、中央处理单元通信,另两个异步FIFO分别为两个PCIe Host的前置FIFO;DDR内存与中央处理单元交换,实现新数据、待处理数据的暂存。
本实施例还提出了一种PCIe交换机方法,其技术内容可以参照上述实施例3PCIe交换机***,中央处理单元从异步FIFO读取上位机发来的PCIe数据,而且数据可以暂存在DDR内存中;
然后,中央处理单元根据具体的命令作出相应的操作,若是转发,则向目的地址发送数据到对应的PCIe Host(PCIe Host1或PCIe Host2)的前置FIFO,然后PCIe Host读取数据后发出;若是需要屏蔽,则将该数据丢弃;若是需要广播,则同时向所有PCIe Host(PCIeHost1和PCIe Host2)的前置FIFO发送数据,再由PCIe Host读取数据后发出。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (7)
1.一种PCIe交换机***,其特征在于, 由FPGA实现,应用功能可编程,根据实际需要能够挂接多个PCIe设备;***架构包括:
PCIe Slave:由FPGA内部IP实现,PCIe数据在IP中已经解析;连接异步FIFO,上位机数据通过PCIe Slave输入异步FIFO;
异步FIFO:连接中央处理单元交互;从PCIe Slave读取PCIe数据并发送给中央处理单元;
中央处理单元:根据PCIe Slave过来的数据根据不同的应用场景进行各类处理,比如转发、过滤、广播等,增大了该***处理数据流的能力;
若干PCIe Host:由FPGA内部IP实现,相应PCIe Host接收中央处理单元发送的数据,将数据打包后发出。
2.根据权利要求1所述一种PCIe交换机***,其特征在于,对应每个PCIe Host设置前置FIFO,所述中央处理单元通过前置FIFO连接至对应的PCIe Host。
3.根据权利要求2所述一种PCIe交换机***,其特征在于,所述PCIe交换机***还包括DDR内存,DDR内存连接至中央处理单元。
4.根据权利要求3所述一种PCIe交换机***,其特征在于,所述PCIe交换机***设置有两个PCIe Host。
5.一种PCIe交换机方法,其特征在于,一种PCIe交换机方法,由FPGA实现,应用功能可编程,根据实际需要能够挂接多个PCIe设备;实现流程包括:
步骤1、中央处理单元从异步FIFO读取上位机发来的PCIe数据,根据不同的应用场景对PCIe数据进行各种处理;
步骤2、根据具体的命令做出相应的操作:若需转发,则向目的地址对应的PCIe Host发送数据,由PCIe Host将数据发出;
若需过滤,则将数据丢弃;
若需广播,则向所有地址对应的PCIe Host发送数据,由PCIe Host将数据发出。
6.根据权利要求5所述一种PCIe交换机方法,其特征在于,所述步骤2:
所述中央处理单元从异步FIFO读取上位机发来的PCIe数据,然后根据具体的命令作出相应的操作,若需转发,则向目的地址发送数据到对应的PCIe Host的前置FIFO,然后PCIeHost读取数据后发出;
若需广播,则同时向所有PCIe Host的前置FIFO发送数据,再由PCIe Host读取数据后发出。
7.根据权利要求6所述一种PCIe交换机方法,其特征在于,所述中央处理单元接收PCIeSlave过来的数据后,根据不同的应用场景进行各类处理,同时数据可以暂存在DDR内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710976713.5A CN107645457A (zh) | 2017-10-19 | 2017-10-19 | 一种PCIe交换机***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710976713.5A CN107645457A (zh) | 2017-10-19 | 2017-10-19 | 一种PCIe交换机***和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107645457A true CN107645457A (zh) | 2018-01-30 |
Family
ID=61123883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710976713.5A Pending CN107645457A (zh) | 2017-10-19 | 2017-10-19 | 一种PCIe交换机***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107645457A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509362A (zh) * | 2018-04-11 | 2018-09-07 | 济南浪潮高新科技投资发展有限公司 | 一种串口转接器 |
CN109150765A (zh) * | 2018-09-12 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于fpga实现的交换机 |
CN112073213A (zh) * | 2020-07-30 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种灵活安全配置PCIe交换机的方法 |
CN114866497A (zh) * | 2022-06-15 | 2022-08-05 | 西安微电子技术研究所 | 一种全局异步站内同步的PCIe交换电路和方法 |
CN115211094A (zh) * | 2020-02-14 | 2022-10-18 | 索尼互动娱乐股份有限公司 | 通过计算节点与存储服务器之间的PCI Express织构提供高速存储访问的网络架构 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157973A1 (en) * | 2007-12-16 | 2009-06-18 | Yi-Chun Li | Storage controller for handling data stream and method thereof |
CN202535384U (zh) * | 2012-03-12 | 2012-11-14 | 杭州海莱电子科技有限公司 | 基于PCIe总线的网络设备扩展连接和虚拟机互连优化*** |
CN103078747A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | PCIe交换机及其工作方法 |
CN203434983U (zh) * | 2013-09-12 | 2014-02-12 | 成都成电光信科技有限责任公司 | 可配置fpga的光纤通道数据接口卡 |
CN105549916A (zh) * | 2015-12-31 | 2016-05-04 | 湖南国科微电子股份有限公司 | PCIe固态硬盘控制器、基于PCIe的存储***及其数据读写方法 |
CN206195819U (zh) * | 2016-10-25 | 2017-05-24 | 大连大学 | 一种空间信息网络链路控制设备 |
-
2017
- 2017-10-19 CN CN201710976713.5A patent/CN107645457A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157973A1 (en) * | 2007-12-16 | 2009-06-18 | Yi-Chun Li | Storage controller for handling data stream and method thereof |
CN202535384U (zh) * | 2012-03-12 | 2012-11-14 | 杭州海莱电子科技有限公司 | 基于PCIe总线的网络设备扩展连接和虚拟机互连优化*** |
CN103078747A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | PCIe交换机及其工作方法 |
CN203434983U (zh) * | 2013-09-12 | 2014-02-12 | 成都成电光信科技有限责任公司 | 可配置fpga的光纤通道数据接口卡 |
CN105549916A (zh) * | 2015-12-31 | 2016-05-04 | 湖南国科微电子股份有限公司 | PCIe固态硬盘控制器、基于PCIe的存储***及其数据读写方法 |
CN206195819U (zh) * | 2016-10-25 | 2017-05-24 | 大连大学 | 一种空间信息网络链路控制设备 |
Non-Patent Citations (2)
Title |
---|
何春茂: "基于FPGA硬核的PCI Express实现", 《机电工程技术》 * |
李经章: "基于FPGA的PCI Express传输设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509362A (zh) * | 2018-04-11 | 2018-09-07 | 济南浪潮高新科技投资发展有限公司 | 一种串口转接器 |
CN109150765A (zh) * | 2018-09-12 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于fpga实现的交换机 |
CN115211094A (zh) * | 2020-02-14 | 2022-10-18 | 索尼互动娱乐股份有限公司 | 通过计算节点与存储服务器之间的PCI Express织构提供高速存储访问的网络架构 |
CN115211094B (zh) * | 2020-02-14 | 2024-06-14 | 索尼互动娱乐股份有限公司 | 通过计算节点与存储服务器之间的PCI Express织构提供高速存储访问的网络架构*** |
CN112073213A (zh) * | 2020-07-30 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种灵活安全配置PCIe交换机的方法 |
CN112073213B (zh) * | 2020-07-30 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种灵活安全配置PCIe交换机的方法 |
CN114866497A (zh) * | 2022-06-15 | 2022-08-05 | 西安微电子技术研究所 | 一种全局异步站内同步的PCIe交换电路和方法 |
CN114866497B (zh) * | 2022-06-15 | 2023-05-02 | 西安微电子技术研究所 | 一种全局异步站内同步的PCIe交换电路装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645457A (zh) | 一种PCIe交换机***和方法 | |
US8234483B2 (en) | Memory units with packet processor for decapsulating read write access from and encapsulating response to external devices via serial packet switched protocol interface | |
KR101035832B1 (ko) | 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템 | |
US20140188996A1 (en) | Raw fabric interface for server system with virtualized interfaces | |
CN103559156B (zh) | 一种fpga与计算机之间的通信*** | |
CN104395895A (zh) | 用于输入/输出虚拟化的***和方法 | |
CN105512084A (zh) | 一种Zynq平台数据交互装置 | |
US9934175B2 (en) | Direct memory access for programmable logic device configuration | |
CN104598405A (zh) | 扩展芯片及可扩展的芯片***及控制方法 | |
JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
US20200218215A1 (en) | Circuit for coupling a field bus and a local bus | |
CN109586956B (zh) | 一种可灵活配置端口的FCoE交换机及方法 | |
US20090150563A1 (en) | Control path I/O virtualisation | |
CN116150075B (zh) | 一种PCIe交换控制器芯片、验证***和验证方法 | |
CN106657115B (zh) | 一种变频器控制***及其协议转换卡 | |
Lin et al. | Programmable connections in neuromorphic grids | |
US9053092B2 (en) | System authorizing direct data transfers between memories of several components of that system | |
CN105528319B (zh) | 基于fpga的加速卡及其加速方法 | |
US10614026B2 (en) | Switch with data and control path systolic array | |
CN103036815B (zh) | 一种信息技术和通信技术ict融合*** | |
CN103116560B (zh) | 可编程刀片服务器结构 | |
US8316169B2 (en) | Physical to hierarchical bus translation | |
CN210270884U (zh) | 一种基于sw-ich2芯片的级联扩展*** | |
CN105260335A (zh) | 扩展光接口的数据处理***及方法 | |
CN210402342U (zh) | 一种基于zynq的数据加解密结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180130 |
|
RJ01 | Rejection of invention patent application after publication |