CN103559152A - 基于pcie协议的cpu访问本地总线的装置及方法 - Google Patents

基于pcie协议的cpu访问本地总线的装置及方法 Download PDF

Info

Publication number
CN103559152A
CN103559152A CN201310528347.9A CN201310528347A CN103559152A CN 103559152 A CN103559152 A CN 103559152A CN 201310528347 A CN201310528347 A CN 201310528347A CN 103559152 A CN103559152 A CN 103559152A
Authority
CN
China
Prior art keywords
pcie
local bus
data
read
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.)
Granted
Application number
CN201310528347.9A
Other languages
English (en)
Other versions
CN103559152B (zh
Inventor
韩震
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Changjiang Computing Technology Co., Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201310528347.9A priority Critical patent/CN103559152B/zh
Publication of CN103559152A publication Critical patent/CN103559152A/zh
Application granted granted Critical
Publication of CN103559152B publication Critical patent/CN103559152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

本发明公开了一种基于PCIE协议的CPU访问本地总线的装置及方法,涉及IPRAN领域,该装置包括PCIE接口模块、数据转换模块和本地总线接口模块,PCIE接口模块用于:实现PCIE底层协议,使本装置在PCIE体系下作为一个PCIE从端设备工作;数据转换模块用于:实现PCIE读写报文所携带的数据格式与本地总线数据格式的转换;本地总线接口模块用于:模拟传统本地总线时序,实现对FPGA本地寄存器或者经由FPGA桥接的外部芯片的读写访问。本发明能在消耗最少逻辑资源的前提下获得最高的可靠性和性能,有效简化PCIE接口传输层设计的复杂程度,显著提高***的读写效率,实时提供不同的本地总线时序。

Description

基于PCIE协议的CPU访问本地总线的装置及方法
技术领域
本发明涉及IPRAN领域,特别是涉及一种基于PCIE协议的CPU访问本地总线的装置及方法。
背景技术
随着基于IP(Internet Protocol,网际协议)的传送网络不断发展,在IPRAN(IP Radio Access Network Carrier,IP化无线回传承载网)设备中主卡CPU(Central Processing Unit,中央处理器)需要与众多核心芯片以及子卡进行数据交换,从设备树的维护、接口简化以及数据传输效率等方面考虑,传统的localbus(本地总线)已经难以胜任此项工作。PCIE(Pedpherd Component Interconnect Express,快速组件互连标准)作为一种成熟且应用广泛的局部总线技术,由于其设备树易于维护、接口简单、数据传输速率高等优点,特别适用于CPU与外设的数据交换。
在光网络的各种设备中,CPU对于本地总线的读写访问是不可缺少的功能。CPU需要向本地部件(FPGA设计单元或本地芯片)的配置寄存器写值,从而使本地部件在预定的工作模式下工作,CPU还需要读取本地部件的状态寄存器、数据缓存实现监控功能以及提取协议算法所需的数据。
以往的FPGA(Field Programmable Gate Array,现场可编程门阵列)设计为CPU提供的读写接口一般为本地总线接口,本地总线接口由片选信号(cs)、读写信号(rw)、32位地址信号(addr)、8/16/32位双向数据信号(data)组成,该接口的优点是时序简单,使用方便,但是本地总线的缺点也十分明显:
(1)读写效率低:CPU的每次读写操作只能传输一个寄存器数据。
(2)设备树维护困难且扩展性差:对于不同的外设,CPU通过不同的片选信号进行区分,即CPU需要访问多少个外设,就应该提供多少根片选信号。
(3)传输速率低,硬件实现代价大:本地总线为并行总线,并行总线的串扰问题使其可靠工作频率仅为几十兆赫兹,同时并行总线的PCB走线也十分复杂。
PCIE是一种由intel提出的高速串行接口协议,其特点是高速串行点对点传输,拥有很高的带宽。PCIE总线所连接的两端设备独享通道带宽,是目前局部总线的主流趋势。相比于传统本地总线,将CPU的读写接口升级为PCIE接口的优势十分明显:
(1)读写效率高:每个PCIE读写报文传输的数据上限最少为128字节,同时可以通过DMA(Direct Memory Access,直接内存存取)方式提升CPU的工作效率。
(2)设备维护简单:PCIE器件的基地址由***软件动态分配,PCIE总线域通过PCIE基地址区分不同的PCIE器件,并且支持PCIE器件的热插拔。
(3)传输速率高,硬件连线简单:硬件连线只需要双向数据和参考时钟几对差分线即可,PCIE接口是高速串行接口,单个通路的最低速率为2.5Gbps。
但是,要实现IPRAN设备中FPGA设计的CPU接口由本地总线接口升级为PCIE接口,即实现PCIE接口的存储器读写报文与本地总线操作的转换,目前还存在以下技术问题亟待解决:
(1)对外需要提供标准的PCIE接口,要求能够处理PCIE报文,作为一个EP(Endpoint,PCIE从端设备)与CPU通信。
(2)对内需要提供灵活可配的本地总线接口,如支持从端回复模式、操作周期可调等特性,实现与以往针对本地总线接口开发的FPGA设计的兼容。
(3)需要定义PCIE接口和本地总线接口的数据结构对应关系。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于PCIE协议的CPU访问本地总线的装置及方法,能够在消耗最少逻辑资源的前提下获得最高的可靠性和性能,有效简化PCIE接口传输层设计的复杂程度,显著提高***的读写效率,实时提供不同的本地总线时序。
本发明提供一种基于PCIE协议的CPU访问本地总线的装置,包括PCIE接口模块、数据转换模块和本地总线接口模块,其中:
所述PCIE接口模块,用于:实现PCIE底层协议,使本装置在PCIE体系下作为一个PCIE从端设备工作;
所述数据转换模块,用于:实现PCIE读写报文所携带的数据格式与本地总线数据格式的转换;
所述本地总线接口模块,用于:模拟传统本地总线时序,实现对FPGA本地寄存器或者经由FPGA桥接的外部芯片的读写访问。
在上述技术方案的基础上,所述PCIE接口模块按照PCIE协议定义的三层结构进行设计,PCIE接口的物理层和数据链路层功能由FPGA器件自带的PCIE硬核完成,PCIE硬核实现PCIE接口的配置空间、PCIE数据链路层和物理层报文的处理、PCIE链路的链路训练功能,即实现PCIE链路的底层通道,PCIE接口模块的传输层逻辑与PCIE硬核的用户侧接口通信,实现PCIE读写报文的处理。
在上述技术方案的基础上,所述PCIE接口模块设计流量控制机制:利用PCIE硬核的用户侧接口处提供的PCIE读写报文接收使能信号设计有控制子模块,控制子模块初始状态为闲,当用户层接收一个PCIE读写报文时,控制子模块转为忙状态,控制子模块为忙状态时,将关闭PCIE硬核的用户侧接口,此时新接收的PCIE读写报文缓存在PCIE硬核中;完成对一个PCIE读写报文的处理后,控制子模块返回闲状态,重新打开PCIE硬核的用户侧接口;在CPU连续发送PCIE读写报文的情况下,以上流程循环进行,直至PCIE硬核缓存中所有PCIE读写报文处理完毕。
在上述技术方案的基础上,所述数据转换模块在CPU写和CPU读两个数据传输方向设置合适容量的数据缓存,数据转换模块的缓存容量均设计为PCIE读写报文最大数据容量32双字的两倍,即256字节,数据转换对应关系为PCIE读写报文数据的一个双字对应一个本地总线操作的32位数据;PCIE读写报文中一个双字的四个字节为大端排列。
在上述技术方案的基础上,所述本地总线接口模块由计数器组合完成本地总线时序的定时,计数器工作时钟为125Mhz,计数器组合包括双字计数器和周期计数器,其中双字计数器是周期计数器的高位计数器,双字计数器表明在传输PCIE报文的第几个双字数据,即第几个本地总线操作周期,周期计数器则表明每个双字数据的传输需要多少个125Mhz时钟周期;PCIE报文的长度字段决定了双字计数器的最大计数值,双字计数器在复位、PCIE接口模接收到PCIE读写报文的时刻或PCIE读写报文处理完成的时刻清零,周期计数器除以上条件,在满足进位条件时也清零;周期计数器在每个双字数据传输期间的每个125Mhz时钟上升沿即加一,在达到进位条件后,周期计数器清零同时双字计数器加一。
在上述技术方案的基础上,所述本地总线接口模块通过操作模式和操作宽度两个参数实现灵活可配的本地总线时序,操作模式有普通模式和从端回复模式,本模块配置为普通模式时,周期计数器的进位条件是等于操作宽度参数,即本地总线操作周期的长度对应于操作宽度参数的赋值,本模块支持普通模式下本地总线操作周期由6-240个125Mhz时钟周期可调;本模块配置为从端回复模式时,此时操作宽度参数无效,本模块周期计数器的进位条件为收到从端的回复或者等待时间超过240个125Mhz时钟周期。
在上述装置的基础上,本发明还提供一种基于PCIE协议的CPU访问本地总线的方法,包括以下步骤:
CPU对本地总线的访问方法包括写和读两个相互独立的过程,分别描述如下:
(1)写过程的实现:
首先,PCIE接口模块在写过程中处理PCIE写报文,即CPU发送的存储器写报文,对于CPU发送的存储器写报文,PCIE接口模块提取CPU写的数据、CPU写的起始地址、CPU写的长度三个字段,PCIE接口模块将CPU写的数据、起始地址、数据长度提交给数据转换模块,同时将CPU写的起始地址、长度提交给本地总线接口模块;
然后,数据转换模块在写过程中缓存来自PCIE接口模块的CPU写数据、起始地址、数据长度,数据转换模块根据数据长度获知本地总线接口模块需要连续产生多少个本地总线写操作,每一个本地总线写操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,接着由数据转换模块向其提供本次本地总线写操作的数据和地址;
最后,本地总线接口模块在写过程中负责本地总线写时序的产生,每个本地总线操作周期开始时本模块向数据转换模块发送开始信号,在获取了来自数据转换模块的写操作地址和数据后,本地总线接口模块完成此次本地总线写操作,即进入下一个本地总线操作周期,直至当前存储器写报文的所有数据处理完毕;
(2)读过程的实现:
首先,PCIE接口模块在读过程中处理PCIE读报文,即CPU发送的存储器读报文,对于CPU发送的存储器读报文,PCIE接口模块提取CPU读的起始地址、CPU读的数据长度、请求者ID、请求标签,PCIE接口模块将CPU读的起始地址、CPU读的数据长度提交给数据转换模块和本地总线接口模块;
然后,数据转换模块在读过程中缓存来自PCIE接口模块的CPU读起始地址、数据长度,数据转换模块根据数据长度获知本地总线接口模块需要连续产生多少个本地总线读操作,每一个本地总线读操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,接着由数据转换模块向其提供本次本地总线读操作的地址;
接下来,本地总线接口模块在读过程中负责本地总线读时序的产生,本地总线读时序的实现由计数器组合完成,实现原理同写过程;每个本地总线读操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,在获取了来自数据转换模块的本地总线读操作地址后,本地总线接口模块发起此次本地总线读操作;每次本地总线读操作中本地总线接口模块获取本地总线数据并发送给数据转换模块,本地总线数据获取完毕即进入下一个本地总线操作周期,直至当前PCIE读报文请求的所有数据获取完毕;
最后,在每一个本地总线读操作完成后,数据转换模块提取本地总线数据并缓存;所有本地总线读操作完成后,数据转换模块将数据按照PCIE硬核用户侧接口数据格式提供给PCIE接口模块;对于CPU发送的存储器读报文,PCIE接口模块根据PCIE协议回送数据回复报文,PCIE接口模块提取的请求者ID、请求标签则用于数据回复报文的帧头生成,从本地总线获取的读请求数据用于数据回复报文的净荷生成。
与现有技术相比,本发明的优点如下:
(1)本发明调用FPGA器件厂商提供的PCIE硬核实现PCIE接口的物理层和数据链路层,只需专注于PCIE接口传输层的设计,PCIE接口的物理层和数据链路层用PCIE硬核实现,能够在消耗最少逻辑资源的前提下获得最高的可靠性和性能。
(2)本发明的本地总线接口数据宽度定义为32位,不仅能够灵活兼容8位、16位、32位读写,同时与PCIE协议的最小数据传输单元一致而无须考虑字节掩码字段,能够有效简化PCIE接口传输层设计的复杂程度。
(3)本发明的本地总线接口支持对携带多个双字数据的PCIE读写报文转换为多次连续的本地总线操作,最大支持一个PCIE读写报文转换为32次连续的本地总线操作,能够减少本地总线操作周期之间的空闲时间,显著提高***的读写效率。
(4)本发明能够配置操作模式、操作宽度两个参数,实现灵活可配的本地总线时序。操作模式、操作宽度作为本发明的模块管脚提供给FPGA顶层逻辑,FPGA顶层逻辑可以根据不同本地总线操作地址实时调整这两个模块管脚,能够实现CPU访问不同的本地总线地址时实时提供不同的本地总线时序,由于此功能是FPGA自动实现的,其灵活度是传统本地总线不具备的。
(5)本发明提供PCIE接口与本地总线接口的转接,在享受PCIE接口优点的同时,能兼容以往针对本地总线接口开发的FPGA设计。
附图说明
图1是本发明实施例中写过程的流程图。
图2是本发明实施例中读过程的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种基于PCIE协议的CPU访问本地总线的装置,包括PCIE接口模块、数据转换模块和本地总线接口模块,其中:
PCIE接口模块,用于:实现PCIE底层协议,使本装置在PCIE体系下作为一个PCIE从端设备(EP)工作;
数据转换模块,用于:实现PCIE读写报文所携带的数据格式与本地总线数据格式的转换;
本地总线接口模块,用于:模拟传统本地总线时序,实现对FPGA本地寄存器或者经由FPGA桥接的外部芯片的读写访问。
PCIE接口模块按照PCIE协议定义的三层结构进行设计,PCIE接口的物理层和数据链路层功能由FPGA器件自带的PCIE硬核完成,PCIE硬核实现PCIE接口的配置空间、PCIE数据链路层和物理层报文的处理、PCIE链路的链路训练等功能,即实现PCIE链路的底层通道,PCIE接口模块的传输层逻辑需要与PCIE硬核的用户侧接口通信,实现PCIE读写报文的处理。
PCIE接口模块需要设计流量控制机制。由于一个PCIE读写报文可携带多个双字的数据(本发明实施例中最大为32双字),即需要多次本地总线操作才能够完成,当一个CPU发送的PCIE读写报文的处理过程中如果又接收到一个新的PCIE读写报文,本发明实施例将无法对其处理,为了解决这个问题,本发明实施例利用PCIE硬核的用户侧接口处提供的PCIE读写报文接收使能信号设计了控制子模块,控制子模块初始状态为闲,当用户层接收一个PCIE读写报文时,控制子模块转为忙状态,控制子模块为忙状态时,将关闭PCIE硬核的用户侧接口,此时新接收的PCIE读写报文缓存在PCIE硬核中;完成对一个PCIE读写报文的处理后,控制子模块返回闲状态,重新打开PCIE硬核的用户侧接口;在CPU连续发送PCIE读写报文的情况下,以上流程循环进行,直至PCIE硬核缓存中所有PCIE读写报文处理完毕。由于PCIE协议通过信用机制保证了在从端没来得及响应主端的请求时,主端会根据从端缓存的水位进行流量控制(从端缓存到达一定水位主端即停止发送,直至水位下降到安全的数值),所以PCIE硬核缓存不存在溢出的可能。
数据转换模块在CPU写和CPU读两个数据传输方向需要设置合适容量的数据缓存,原因是一个PCIE读写报文可携带多个双字的数据(本发明实施例最大为32双字),并且PCIE接口速率远高于本地总线速率。数据缓存的容量需要同时满足功能性、可靠性和资源利用率的要求。由于PCIE接口模块中设计有控制子模块,数据转换模块的缓存容量均设计为PCIE读写报文最大数据容量(32双字)的两倍,即256字节。本发明实施例的数据转换对应关系为PCIE读写报文数据的一个双字对应一个本地总线操作的32位数据。PCIE读写报文中一个双字的四个字节为大端排列(big-endian),而本地总线的一个双字的四个字节为小端排列(little-endian),出于兼容以往的逻辑设计和应用层软件人员操作习惯等方面考虑,此映射关系在此发明的驱动软件中实现。这样设计的好处是无论在本发明的下游逻辑还是在CPU应用层看到的数据规则都是大端排列(big-endian)。
本地总线接口模块由计数器组合完成本地总线时序的定时,计数器工作时钟为125Mhz。计数器组合包括双字计数器和周期计数器,其中双字计数器是周期计数器的高位计数器。双字计数器表明在传输PCIE报文的第几个双字数据(第几个本地总线操作周期),周期计数器则表明每个双字数据的传输需要多少个125Mhz时钟周期。PCIE报文的长度字段决定了双字计数器的最大计数值。双字计数器在复位、PCIE接口模接收到PCIE读写报文的时刻或PCIE读写报文处理完成的时刻清零,周期计数器除以上条件,在满足进位条件时也会清零。周期计数器在每个双字数据传输期间的每个125Mhz时钟上升沿即加一,在达到进位条件后,周期计数器清零同时双字计数器加一。
本地总线接口模块通过操作模式和操作宽度两个参数实现灵活可配的本地总线时序。操作模式有普通模式和从端回复模式。本模块配置为普通模式时,周期计数器的进位条件是等于操作宽度参数,即本地总线操作周期的长度对应于操作宽度参数的赋值,本模块支持普通模式下本地总线操作周期由6-240个125Mhz时钟周期可调。本模块配置为从端回复模式时,此时操作宽度参数无效,本模块周期计数器的进位条件为收到从端的回复或者等待时间超过240个125Mhz时钟周期。操作模式和操作宽度两个参数设计为模块管脚而不是固定参数,这就允许每个本地总线操作周期可以实时给这两个参数管脚赋值。这样做的意义在于可以使CPU无需关心所访问从器件的具体时序,地址与特定时序关系的映射由FPGA自动完成。通过以上的灵活设计,本发明的本地总线接口不仅可以正常访问以往所有针对传统本地总线开发的FPGA设计,同时本发明的本地总线信号都是FPGA片内的同步信号,比传统本地总线接口使用更加方便,可靠性更高。
在上述装置的基础上,本发明实施例还提供一种基于PCIE协议的CPU访问本地总线的方法,包括以下步骤:
CPU对本地总线的访问方法包括写和读两个相互独立的过程,分别描述如下:
(1)写过程的实现:
参见图1所示,首先,PCIE接口模块在写过程中处理PCIE写报文,即CPU发送的存储器写报文。对于CPU发送的存储器写报文,PCIE接口模块需提取CPU写的数据、CPU写的起始地址、CPU写的长度三个字段,PCIE接口模块将CPU写的数据、起始地址、数据长度提交给数据转换模块,同时将CPU写的起始地址、长度提交给本地总线接口模块。
然后,数据转换模块在写过程中缓存来自PCIE接口模块的CPU写数据、起始地址、数据长度。数据转换模块根据数据长度获知本地总线接口模块需要连续产生多少个本地总线写操作,每一个本地总线写操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,接着由数据转换模块向其提供本次本地总线写操作的数据和地址。
最后,本地总线接口模块在写过程中负责本地总线写时序的产生,每个本地总线操作周期开始时本模块向数据转换模块发送开始信号,在获取了来自数据转换模块的写操作地址和数据后,本地总线接口模块完成此次本地总线写操作即进入下一个本地总线操作周期,直至当前存储器写报文的所有数据处理完毕。
(2)读过程的实现:
参见图2所示,首先,PCIE接口模块在读过程中处理PCIE读报文,即CPU发送的存储器读报文。对于CPU发送的存储器读报文,PCIE接口模块提取CPU读的起始地址、CPU读的数据长度、请求者ID、请求标签。PCIE接口模块将CPU读的起始地址、CPU读的数据长度提交给数据转换模块和本地总线接口模块。
然后,数据转换模块在读过程中缓存来自PCIE接口模块的CPU读起始地址、数据长度,数据转换模块根据数据长度获知本地总线接口模块需要连续产生多少个本地总线读操作,每一个本地总线读操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,接着由数据转换模块向其提供本次本地总线读操作的地址。
接下来,本地总线接口模块在读过程中负责本地总线读时序的产生,本地总线读时序的实现由计数器组合完成,实现原理同写过程;每个本地总线读操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,在获取了来自数据转换模块的本地总线读操作地址后,本地总线接口模块发起此次本地总线读操作;每次本地总线读操作中本地总线接口模块获取本地总线数据并发送给数据转换模块,本地总线数据获取完毕即进入下一个本地总线操作周期,直至当前PCIE读报文请求的所有数据获取完毕。
最后,在每一个本地总线读操作完成后,数据转换模块提取本地总线数据并缓存;所有本地总线读操作完成后,数据转换模块将数据按照PCIE硬核用户侧接口数据格式提供给PCIE接口模块;对于CPU发送的存储器读报文,PCIE接口模块需要根据PCIE协议回送数据回复报文。PCIE接口模块提取的请求者ID、请求标签则用于数据回复报文的帧头生成,从本地总线获取的读请求数据用于数据回复报文的净荷生成。
本发明实施例在烽火通信的IPRAN设备上得到应用,在无需修改以往成熟FPGA设计的本地总线接口的前提下,成功实现了CPU访问FPGA的方式由传统本地总线接口升级为PCIE接口。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。

Claims (7)

1.一种基于PCIE协议的CPU访问本地总线的装置,其特征在于:包括PCIE接口模块、数据转换模块和本地总线接口模块,其中:
所述PCIE接口模块,用于:实现PCIE底层协议,使本装置在PCIE体系下作为一个PCIE从端设备工作;
所述数据转换模块,用于:实现PCIE读写报文所携带的数据格式与本地总线数据格式的转换;
所述本地总线接口模块,用于:模拟传统本地总线时序,实现对FPGA本地寄存器或者经由FPGA桥接的外部芯片的读写访问。
2.如权利要求1所述的基于PCIE协议的CPU访问本地总线的装置,其特征在于:所述PCIE接口模块按照PCIE协议定义的三层结构进行设计,PCIE接口的物理层和数据链路层功能由FPGA器件自带的PCIE硬核完成,PCIE硬核实现PCIE接口的配置空间、PCIE数据链路层和物理层报文的处理、PCIE链路的链路训练功能,即实现PCIE链路的底层通道,PCIE接口模块的传输层逻辑与PCIE硬核的用户侧接口通信,实现PCIE读写报文的处理。
3.如权利要求2所述的基于PCIE协议的CPU访问本地总线的装置,其特征在于:所述PCIE接口模块设计流量控制机制:利用PCIE硬核的用户侧接口处提供的PCIE读写报文接收使能信号设计有控制子模块,控制子模块初始状态为闲,当用户层接收一个PCIE读写报文时,控制子模块转为忙状态,控制子模块为忙状态时,将关闭PCIE硬核的用户侧接口,此时新接收的PCIE读写报文缓存在PCIE硬核中;完成对一个PCIE读写报文的处理后,控制子模块返回闲状态,重新打开PCIE硬核的用户侧接口;在CPU连续发送PCIE读写报文的情况下,以上流程循环进行,直至PCIE硬核缓存中所有PCIE读写报文处理完毕。
4.如权利要求3所述的基于PCIE协议的CPU访问本地总线的装置,其特征在于:所述数据转换模块在CPU写和CPU读两个数据传输方向设置合适容量的数据缓存,数据转换模块的缓存容量均设计为PCIE读写报文最大数据容量32双字的两倍,即256字节,数据转换对应关系为PCIE读写报文数据的一个双字对应一个本地总线操作的32位数据;PCIE读写报文中一个双字的四个字节为大端排列。
5.如权利要求4所述的基于PCIE协议的CPU访问本地总线的装置,其特征在于:所述本地总线接口模块由计数器组合完成本地总线时序的定时,计数器工作时钟为125Mhz,计数器组合包括双字计数器和周期计数器,其中双字计数器是周期计数器的高位计数器,双字计数器表明在传输PCIE报文的第几个双字数据,即第几个本地总线操作周期,周期计数器则表明每个双字数据的传输需要多少个125Mhz时钟周期;PCIE报文的长度字段决定了双字计数器的最大计数值,双字计数器在复位、PCIE接口模接收到PCIE读写报文的时刻或PCIE读写报文处理完成的时刻清零,周期计数器除以上条件,在满足进位条件时也清零;周期计数器在每个双字数据传输期间的每个125Mhz时钟上升沿即加一,在达到进位条件后,周期计数器清零同时双字计数器加一。
6.如权利要求5所述的基于PCIE协议的CPU访问本地总线的装置,其特征在于:所述本地总线接口模块通过操作模式和操作宽度两个参数实现灵活可配的本地总线时序,操作模式有普通模式和从端回复模式,本模块配置为普通模式时,周期计数器的进位条件是等于操作宽度参数,即本地总线操作周期的长度对应于操作宽度参数的赋值,本模块支持普通模式下本地总线操作周期由6-240个125Mhz时钟周期可调;本模块配置为从端回复模式时,此时操作宽度参数无效,本模块周期计数器的进位条件为收到从端的回复或者等待时间超过240个125Mhz时钟周期。
7.基于权利要求1至6中任一项所述装置的基于PCIE协议的CPU访问本地总线的方法,其特征在于,包括以下步骤:
CPU对本地总线的访问方法包括写和读两个相互独立的过程,分别描述如下:
(1)写过程的实现:
首先,PCIE接口模块在写过程中处理PCIE写报文,即CPU发送的存储器写报文,对于CPU发送的存储器写报文,PCIE接口模块提取CPU写的数据、CPU写的起始地址、CPU写的长度三个字段,PCIE接口模块将CPU写的数据、起始地址、数据长度提交给数据转换模块,同时将CPU写的起始地址、长度提交给本地总线接口模块;
然后,数据转换模块在写过程中缓存来自PCIE接口模块的CPU写数据、起始地址、数据长度,数据转换模块根据数据长度获知本地总线接口模块需要连续产生多少个本地总线写操作,每一个本地总线写操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,接着由数据转换模块向其提供本次本地总线写操作的数据和地址;
最后,本地总线接口模块在写过程中负责本地总线写时序的产生,每个本地总线操作周期开始时本模块向数据转换模块发送开始信号,在获取了来自数据转换模块的写操作地址和数据后,本地总线接口模块完成此次本地总线写操作,即进入下一个本地总线操作周期,直至当前存储器写报文的所有数据处理完毕;
(2)读过程的实现:
首先,PCIE接口模块在读过程中处理PCIE读报文,即CPU发送的存储器读报文,对于CPU发送的存储器读报文,PCIE接口模块提取CPU读的起始地址、CPU读的数据长度、请求者ID、请求标签,PCIE接口模块将CPU读的起始地址、CPU读的数据长度提交给数据转换模块和本地总线接口模块;
然后,数据转换模块在读过程中缓存来自PCIE接口模块的CPU读起始地址、数据长度,数据转换模块根据数据长度获知本地总线接口模块需要连续产生多少个本地总线读操作,每一个本地总线读操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,接着由数据转换模块向其提供本次本地总线读操作的地址;
接下来,本地总线接口模块在读过程中负责本地总线读时序的产生,本地总线读时序的实现由计数器组合完成,实现原理同写过程;每个本地总线读操作周期开始时,本地总线接口模块向数据转换模块发送开始信号,在获取了来自数据转换模块的本地总线读操作地址后,本地总线接口模块发起此次本地总线读操作;每次本地总线读操作中本地总线接口模块获取本地总线数据并发送给数据转换模块,本地总线数据获取完毕即进入下一个本地总线操作周期,直至当前PCIE读报文请求的所有数据获取完毕;
最后,在每一个本地总线读操作完成后,数据转换模块提取本地总线数据并缓存;所有本地总线读操作完成后,数据转换模块将数据按照PCIE硬核用户侧接口数据格式提供给PCIE接口模块;对于CPU发送的存储器读报文,PCIE接口模块根据PCIE协议回送数据回复报文,PCIE接口模块提取的请求者ID、请求标签则用于数据回复报文的帧头生成,从本地总线获取的读请求数据用于数据回复报文的净荷生成。
CN201310528347.9A 2013-10-31 2013-10-31 基于pcie协议的cpu访问本地总线的装置及方法 Active CN103559152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310528347.9A CN103559152B (zh) 2013-10-31 2013-10-31 基于pcie协议的cpu访问本地总线的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310528347.9A CN103559152B (zh) 2013-10-31 2013-10-31 基于pcie协议的cpu访问本地总线的装置及方法

Publications (2)

Publication Number Publication Date
CN103559152A true CN103559152A (zh) 2014-02-05
CN103559152B CN103559152B (zh) 2016-06-08

Family

ID=50013403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310528347.9A Active CN103559152B (zh) 2013-10-31 2013-10-31 基于pcie协议的cpu访问本地总线的装置及方法

Country Status (1)

Country Link
CN (1) CN103559152B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102605A (zh) * 2014-06-25 2014-10-15 华为技术有限公司 一种数据传输方法、装置和***
CN104270341A (zh) * 2014-09-03 2015-01-07 烽火通信科技股份有限公司 在ipran中的数据协议转发***及方法
CN105183680A (zh) * 2015-09-18 2015-12-23 烽火通信科技股份有限公司 实现PCIe接口转CF卡接口的FPGA芯片及方法
CN106569974A (zh) * 2016-11-02 2017-04-19 深圳市博巨兴实业发展有限公司 一种软硬件接口协议
CN109144916A (zh) * 2017-06-16 2019-01-04 深圳市中兴微电子技术有限公司 一种处理数据包的方法及装置、芯片
CN109274747A (zh) * 2018-09-29 2019-01-25 上海中畅信息科技有限公司 行情网关***及其处理方法
CN109271108A (zh) * 2018-09-03 2019-01-25 青岛镕铭半导体有限公司 一种存储器控制装置及数据存储设备
CN109597785A (zh) * 2018-12-04 2019-04-09 中国航空工业集团公司西安航空计算技术研究所 一种基于AXI4接口的PCI Express总线适配多接口的设计方法
CN110663029A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 分布式处理过程数据
CN111078609A (zh) * 2019-11-13 2020-04-28 南京航空航天大学 一种基于FPGA的PCIe转三总线接口及方法
CN111078619A (zh) * 2019-03-29 2020-04-28 新华三技术有限公司 一种转换装置、网络设备及数据传输方法
CN111092830A (zh) * 2019-12-11 2020-05-01 成都九芯微科技有限公司 一种pcie交换芯片端口配置***和方法
CN111143250A (zh) * 2019-12-20 2020-05-12 苏州浪潮智能科技有限公司 一种基于axi-st接口访问fpga存储单元的方法、设备及介质
CN111770074A (zh) * 2020-06-23 2020-10-13 天津芯海创科技有限公司 数据通路测试报文生成装置与方法
CN114741348A (zh) * 2020-12-24 2022-07-12 华为技术有限公司 一种转换装置、方法以及集成电路
CN116521607A (zh) * 2023-06-29 2023-08-01 湖南源科创新科技有限公司 基于cpu和fpga的异构平台及文件***标准化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005539A1 (en) * 2010-07-01 2012-01-05 Dell Products, Lp Peripheral Component Interconnect Express Root Port Mirroring
CN103024359A (zh) * 2012-12-25 2013-04-03 四川赛狄信息技术有限公司 嵌入式图像记录仪
CN103324596A (zh) * 2013-03-19 2013-09-25 中国科学院声学研究所 一种基于x86体系结构处理器的VME单板计算机装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005539A1 (en) * 2010-07-01 2012-01-05 Dell Products, Lp Peripheral Component Interconnect Express Root Port Mirroring
CN103024359A (zh) * 2012-12-25 2013-04-03 四川赛狄信息技术有限公司 嵌入式图像记录仪
CN103324596A (zh) * 2013-03-19 2013-09-25 中国科学院声学研究所 一种基于x86体系结构处理器的VME单板计算机装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
张君鹏: "基于FPGA的PCIE总线SD卡控制器", 《中国优秀硕士学位论文全文数据库 信息科技辑 》, no. 8, 15 August 2013 (2013-08-15) *
张君鹏等: "基于PCIE总线的SD卡控制器实现研究", 《现代商贸工业》, no. 9, 1 May 2012 (2012-05-01), pages 165 - 166 *
李木国等: "基于FPGA的PCIe总线接口的DMA传输设计", 《计算机测量与控制》, vol. 21, no. 1, 25 January 2013 (2013-01-25), pages 233 - 235 *
杨子元等: "基于PCIE /104总线的高速数据接口设计", 《现代电子技术》, vol. 34, no. 14, 15 July 2011 (2011-07-15) *
梁国龙等: "PCIE 数据采集***的驱动程序开发", 《计算机工程与应用》, vol. 45, no. 31, 1 November 2009 (2009-11-01), pages 63 - 65 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102605B (zh) * 2014-06-25 2018-03-09 华为技术有限公司 一种数据传输方法、装置和***
CN104102605A (zh) * 2014-06-25 2014-10-15 华为技术有限公司 一种数据传输方法、装置和***
CN104270341A (zh) * 2014-09-03 2015-01-07 烽火通信科技股份有限公司 在ipran中的数据协议转发***及方法
CN104270341B (zh) * 2014-09-03 2017-10-10 烽火通信科技股份有限公司 在ipran中的数据协议转发***及方法
CN105183680A (zh) * 2015-09-18 2015-12-23 烽火通信科技股份有限公司 实现PCIe接口转CF卡接口的FPGA芯片及方法
CN105183680B (zh) * 2015-09-18 2018-03-20 烽火通信科技股份有限公司 实现PCIe接口转CF卡接口的FPGA芯片及方法
CN106569974A (zh) * 2016-11-02 2017-04-19 深圳市博巨兴实业发展有限公司 一种软硬件接口协议
CN110663029A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 分布式处理过程数据
CN110663029B (zh) * 2017-05-24 2023-11-10 Wago管理有限责任公司 分布式处理过程数据
CN109144916A (zh) * 2017-06-16 2019-01-04 深圳市中兴微电子技术有限公司 一种处理数据包的方法及装置、芯片
CN109271108B (zh) * 2018-09-03 2021-11-30 青岛镕铭半导体有限公司 一种存储器控制装置及数据存储设备
CN109271108A (zh) * 2018-09-03 2019-01-25 青岛镕铭半导体有限公司 一种存储器控制装置及数据存储设备
CN109274747A (zh) * 2018-09-29 2019-01-25 上海中畅信息科技有限公司 行情网关***及其处理方法
CN109597785A (zh) * 2018-12-04 2019-04-09 中国航空工业集团公司西安航空计算技术研究所 一种基于AXI4接口的PCI Express总线适配多接口的设计方法
CN111078619A (zh) * 2019-03-29 2020-04-28 新华三技术有限公司 一种转换装置、网络设备及数据传输方法
WO2020200111A1 (zh) * 2019-03-29 2020-10-08 新华三技术有限公司 网络设备
CN111078609A (zh) * 2019-11-13 2020-04-28 南京航空航天大学 一种基于FPGA的PCIe转三总线接口及方法
CN111078609B (zh) * 2019-11-13 2023-04-25 南京航空航天大学 一种基于FPGA的PCIe转三总线接口及方法
CN111092830B (zh) * 2019-12-11 2022-01-11 成都华大九天科技有限公司 一种pcie交换芯片端口配置***和方法
CN111092830A (zh) * 2019-12-11 2020-05-01 成都九芯微科技有限公司 一种pcie交换芯片端口配置***和方法
CN111143250B (zh) * 2019-12-20 2022-03-22 苏州浪潮智能科技有限公司 一种基于axi-st接口访问fpga存储单元的方法、设备及介质
CN111143250A (zh) * 2019-12-20 2020-05-12 苏州浪潮智能科技有限公司 一种基于axi-st接口访问fpga存储单元的方法、设备及介质
CN111770074A (zh) * 2020-06-23 2020-10-13 天津芯海创科技有限公司 数据通路测试报文生成装置与方法
CN111770074B (zh) * 2020-06-23 2022-03-18 天津芯海创科技有限公司 数据通路测试报文生成装置与方法
CN114741348A (zh) * 2020-12-24 2022-07-12 华为技术有限公司 一种转换装置、方法以及集成电路
CN116521607A (zh) * 2023-06-29 2023-08-01 湖南源科创新科技有限公司 基于cpu和fpga的异构平台及文件***标准化方法
CN116521607B (zh) * 2023-06-29 2023-08-29 湖南源科创新科技有限公司 基于cpu和fpga的异构平台及文件***标准化方法

Also Published As

Publication number Publication date
CN103559152B (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
CN103559152A (zh) 基于pcie协议的cpu访问本地总线的装置及方法
US8812758B2 (en) Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
CN102495920B (zh) 一种FPGA用基于PCIe的集成化逻辑分析模块
CN101866328B (zh) 一种自动访问的串行总线读写控制方法
CN101599004B (zh) 基于fpga的sata控制器
CN105051706A (zh) 用于具有pcie协议栈的低功率phy的操作的设备、方法和***
CN101140556A (zh) 用可编程器件实现访问多个i2c从器件的方法及装置
CN110968352B (zh) 一种pcie设备的复位***及服务器***
CN105335548B (zh) 一种用于ice的mcu仿真方法
CN104320317B (zh) 一种以太网物理层芯片状态的传送方法和装置
CN101436171B (zh) 模块化通信控制***
CN104636301B (zh) 一种基于pci‑e接口的大规模plc高速背板总线***
CN103853642A (zh) 基于usb3.0的红外数字图像注入式仿真***及方法
CN103827841A (zh) 可配置带宽的io连接器
CN105373511A (zh) 一种与多个光模块可同时通信的装置和方法
CN105607940A (zh) 一种arm平台中bdk向uefi bios传递信息的方法
CN105718396B (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
CN103914427A (zh) 基于三根物理互连线的集成电路片上通讯方法及装置
CN102291337A (zh) EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法
CN104460857A (zh) 一种高速外设部件互连标准卡及其使用方法和装置
CN116401065A (zh) 一种服务器、异构设备及其数据处理装置
CN209560543U (zh) 大数据运算芯片
CN204390237U (zh) 一种基于pci-e总线技术的加解密卡
CN106292544A (zh) 基于pcie接口硬件板卡及其总线控制方法及***
CN210402342U (zh) 一种基于zynq的数据加解密结构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200813

Address after: 430000 part of the third floor of cable building, Guandong science and Technology Park, Donghu New Technology Development Zone, Wuhan, Hubei Province

Patentee after: Wuhan Changjiang Computing Technology Co., Ltd

Address before: China Science and Technology Park Dongxin road East Lake Development Zone 430074 Hubei Province, Wuhan City, No. 5

Patentee before: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right