[发明专利]一种基于PCIE的主机通讯方法和主机有效
申请号: | 201310001525.2 | 申请日: | 2013-01-04 |
公开(公告)号: | CN103077148A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 王少锋;吴庆民 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F13/38 | 分类号: | G06F13/38;G06F13/24 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pcie 主机 通讯 方法 | ||
1.一种基于PCIE的主机通讯方法,其特征在于,本端主机的PCIE设备包括中断寄存器、暂存寄存器和基址寄存器,该方法包括如下步骤:
步骤A、通过读取本端主机的PCIE设备的配置空间,在本端主机的内存虚拟地址空间为所述PCIE设备映射出一段与所述配置空间对应的虚拟内存;在本端主机的内存虚拟地址空间为所述中断寄存器和所述暂存寄存器映射出一段相应的虚拟内存;在本端主机的内存虚拟地址空间为所述基址寄存器映射出一段与所述基址寄存器相应的虚拟内存,映射出的所有虚拟内存形成内存映射窗口,所述基址寄存器中存储有与所述基址寄存器相应的虚拟内存对应的空间地址;对对端主机进行同样的配置,将本端主机与对端主机通过PCIE总线进行互连;
步骤B、本端主机根据与所述配置空间对应的虚拟内存和与所述暂存寄存器相应的虚拟内存将要发送的数据缓存在所述暂存寄存器中;
步骤C、本端主机将所述基址寄存器中存储的空间地址翻译成对端主机的对应空间地址,将缓存在所述暂存寄存器中的数据发送到对端主机的相应地址、对端主机的暂存寄存器通过与对端主机的PCIE设备的配置空间对应的虚拟内存和与该暂存寄存器对应的虚拟内存将接收到的数据进行缓存;本端主机发送的数据达到预定量或者发送完所有的数据时,由本端主机的中断寄存器通过相应的虚拟内存向对端主机发送中断;
步骤D、对端主机接收到所述中断后,开始将缓存的数据写入自身的内存映射窗口对应的区域中。
2.如权利要求1所述的主机通讯方法,其特征在于:
所述步骤B之前,该方法还包括:将本端主机的内存映射窗口对应的区域以固定大小为单位顺序分成K个包,所述K为将要分成的包的个数;
所述步骤B包括:本端主机将根据与所述配置空间对应的虚拟内存和与所述暂存寄存器映相应的虚拟内存缓存在所述暂存寄存器中的缓存数据以所述固定大小为单位顺序分成K个包;
所述步骤C包括:本端主机以包为单位进行数据发送,将所述基址寄存器中存储的空间地址翻译成对端主机的对应空间地址,将包发送到对端主机的相应地址,对端主机的暂存寄存器通过与所述配置空间对应的虚拟内存和与所述暂存寄存器对应的虚拟内存将接收到的包进行缓存;本端主机发送的包的个数达到预定个数或者发完最后一个包时,由本端主机的中断寄存器通过相应的虚拟内存向对端主机发送中断。
3.如权利要求2所述的主机通讯方法,其特征在于:
本端主机和对端主机的内存映射窗口对应的区域均包括两个逻辑上的队列,一个为发送队列,另外一个为接收队列,发送队列用于存储要发送的数据,接收队列用于存储接收到的数据,发送队列和接收队列均为循环队列。
4.如权利要求3所述的主机通讯方法,其特征在于:
该方法还包括:将本端主机的内存映射窗口对应的区域以固定大小为单位顺序分成K个包之前,在本端主机的内存映射窗口对应的区域中设置以下变量:发送端最大传输序号TxPktSn;
本端主机将缓存在所述暂存寄存器中的缓存数据以所述固定大为单位顺序分成K个包的步骤还包括:本端主机在顺序分成的K个包的头部顺序加上包序号PktSn;
本端主机发送的包的个数达到预定个数或者发完最后一个包时,该方法还包括:将TxPktSn设置为相应的值。
5.如权利要求4所述的主机通讯方法,其特征在于,本端主机以包为单位进行数据发送,将所述基址寄存器中存储的空间地址翻译成对端主机的对应空间地址,将包发送到对端主机的相应地址,对端主机的暂存寄存器通过与所述配置空间对应的虚拟内存和与所述暂存寄存器对应的虚拟内存将接收到的包进行缓存;本端主机发送的包的个数达到预定个数或者发完最后一个包时,由本端主机的中断寄存器通过相应的虚拟内存向对端主机发送中断的步骤包括:
本端主机初始化所述PktSn和与自身内存映射窗口对应的区域的偏移offset为0;
本端主机从自身内存映射窗口对应区域的发送队列的PktSn处开始发送包,将包写入到所述offset处,每执行一次写操作所述PktSn加一,所述offset加包大小,当offset大于等于本端主机的内存映射窗口大小时,置offset=0;
当发送的包的个数达到预定个数或者发完最后一个包时,本端主机写TxPktSn,并由本端主机的中断寄存器向对端主机发送中断,该中断中包含该TxPktSn。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310001525.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:EGR冷却器芯体
- 下一篇:一种中间嵌件和包括该中间嵌件的玻璃窗