[发明专利]基于PCIE协议的CPU访问本地总线的装置及方法有效

专利信息
申请号: 201310528347.9 申请日: 2013-10-31
公开(公告)号: CN103559152A 公开(公告)日: 2014-02-05
发明(设计)人: 韩震 申请(专利权)人: 烽火通信科技股份有限公司
主分类号: G06F13/14 分类号: G06F13/14;H04L29/08;H04L29/06
代理公司: 北京捷诚信通专利事务所(普通合伙) 11221 代理人: 魏殿绅;庞炳良
地址: 430074 湖北省武*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 pcie 协议 cpu 访问 本地 总线 装置 方法
【权利要求书】:

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、请求标签则用于数据回复报文的帧头生成,从本地总线获取的读请求数据用于数据回复报文的净荷生成。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310528347.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top