数据访问处理方法、PCIe设备和用户设备的制作方法

文档序号:6493320阅读:179来源:国知局
数据访问处理方法、PCIe设备和用户设备的制作方法
【专利摘要】本发明提供一种数据访问处理方法、PCIe设备和用户设备,其中数据访问处理方法包括:向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理的状态;向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。本发明实施例还提供了相应的PCIe设备和用户设备。本发明的技术方案,仅需要在PCIe设备和CPU之间执行一次交互即可,能够有效避免二者多次交互之间的等待时间,提高数据的传输效率。
【专利说明】数据访问处理方法、PCI e设备和用户设备
【技术领域】
[0001]本发明涉及数据传输技术,尤其涉及一种数据访问处理方法、PCIe设备和用户设备,属于通信【技术领域】。
【背景技术】
[0002]快捷外设部件标准(PeripheralComponent Interconnect Express,以下简称:PCIe)是新一代的高速总线接口,采用了点对点串行连接,比PCI总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,同时支持双向传输模式,能提供更高的传输速率和质量。
[0003]随着网络及通信技术的迅速发展,网络设备对带宽的需求越来越高,PCIe技术在网络接口设备中得到广泛的应用,例如网卡。现有的高速网卡不仅负责接收网络上传过来的数据包,解包后,通过网卡将数据采用直接内存存取(Direct Memory Access,以下简称:DMA)的方式传输给本地计算机等用户设备;而且将本地计算机等用户设备发送的数据打包后,通过网卡以相同的方式送入网络。
[0004]现有的利用网卡进行数据访问的技术,以网络向用户设备侧传送数据为例,其首先由网卡将数据写入到用户的内存储器,然后向用户设备的中央处理器(CentralProcessing Unit,以下简称:CPU)发送上报中断;再由CPU向网卡发起状态读取请求,读取状态寄存器的值;随后,网卡向CPU返回状态寄存器的值;CPU在获得上述状态寄存器的值之后,根据上述数据执行响应操作,例如读取内存储器中的数据。
[0005]上述利用PCIe技术进行数据访问的方案,通常需要在网卡和用户设备的CPU之间进行三次交互,且每次交互过程中都需要在网卡或CPU上执行等待,导致用户设备和网络间的数据传输效率低。

【发明内容】

[0006]本发明实施例提供一种数据访问处理方法、PCIe设备和用户设备,用于提高利用PCIe技术进行数据访问的数据传效率。
[0007]本发明的第一个方面是提供一种数据访问处理方法,其特征在于,包括:
[0008]向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;
[0009]将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理的状态;
[0010]向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。
[0011]上述状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。[0012]上述向用户设备的内存储器发起数据操作处理包括:
[0013]向所述用户设备的内存储器发起直接内存存取操作。
[0014]上述将状态寄存器的值写入到内存储器中包括:
[0015]获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
[0016]本发明实施例另一个方面提供了一种PCIe设备,包括:
[0017]第一处理模块,用于向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;
[0018]第二处理模块,用于将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理状态;
[0019]第三处理模块,用于向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。
[0020]其中,上述状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。
[0021]上述第一处理模块具体用于向所述用户设备的内存储器发起直接内存存取操作。
[0022]上述第二处理模块具体用于获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
[0023]本发明的又一个方面是提供一种用户设备,包括PCIe设备、内存储器和中央处理器;
[0024]所述PCIe设备用于向内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理状态;向中央处理器上报中断,以通知所述中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理;
[0025]所述内存储器用于缓存所述数据,以及所述状态寄存器的值;
[0026]所述中央处理器,用于在接收到所述PCIe设备上报的中断后,从所述内存储器中读取所述状态寄存器的值,并执行相应的数据操作处理。
[0027]上述PCIe设备向用户设备的内存储器发起数据操作处理具体为向所述用户设备的内存储器发起直接内存存取操作;
[0028]所述PCIe设备将状态寄存器的值写入到内存储器中具体为所述PCIe设备获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
[0029]本发明实施例提供的数据访问处理方法、PCIe设备和用户设备,通过内存储器中增加状态寄存器的值的存储空间,在执行数据操作处理时,即从网络中向用户设备的CPU发送数据时,将上述数据写入到内存储器中,该内存储器可以是挂载在CPU上的存储设备;或者是在将用户设备的产生的CPU的数据发送给网络时,将状态寄存器的值写入到内存储器中,使得在向用户设备的CPU上报中断后,CPU可以首先读取内存储器中状态寄存器的值,然后根据状态寄存器的值执行相应的数据操作处理。本发明上述实施例提供的技术方案,仅需要在PCIe设备和CPU之间执行一次交互即可,能够有效避免二者多次交互之间的等待时间,提高数据的传输效率。
【专利附图】

【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本发明实施例中基于PCIe的数据访问处理方法的流程示意图一;
[0032]图2为本发明实施例中基于PCIe的数据访问处理方法的流程示意图二 ;
[0033]图3为本发明实施例中PCIe设备的结构示意图;
[0034]图4为本发明实施例中用户设备的结构示意图一;
[0035]图5为本发明实施例中用户设备的结构示意图二。
【具体实施方式】
[0036]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]本发明实施例提供了一种基于PCIe的数据访问处理方法,图1为本发明实施例中基于PCIe的数据访问处理方法的流程示意图一,如图1所示,包括如下步骤:
[0038]步骤101、向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;
[0039]步骤102、将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理的状态;
[0040]步骤103、向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。
[0041]本发明实施例提供的基于PCIe的数据访问处理方法,通过内存储器中增加状态寄存器的值的存储空间,在执行数据操作处理时,即从网络中向用户设备的CPU发送数据时,将上述数据写入到内存储器中,该内存储器可以是挂载在CPU上的存储设备;或者是在将用户设备的产生的CPU的数据发送给网络时,将状态寄存器的值写入到内存储器中,使得在向用户设备的CPU上报中断后,CPU可以首先读取内存储器中状态寄存器的值,然后根据状态寄存器的值执行相应的数据操作处理。本发明上述实施例提供的技术方案,仅需要在PCIe设备和CPU之间执行一次交互即可,能够有效避免二者多次交互之间的等待时间,提高数据的传输效率。
[0042]本发明上述实施例中,其中状态寄存器的值可以包括中断状态寄存器的值和传输状态寄存器的值两类,但不并限于上述两类寄存器,还可以是其他类型的寄存器。其中,所述中断状态寄存器的值用于表征是将数据写入到内存储器内,还是从内存储器中读取数据,而上述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止,若与网络间的传输状态中止,则可能还有数据需要传输,CPU不释放该数据占用的内存缓冲区。[0043]另外,本发明上述实施例中的向用户设备的内存储器发起数据操作处理可以具体为:向所述用户设备的内存储器发起直接内存存取操作。
[0044]上述将状态寄存器的值写入到内存储器中可以具体为:获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
[0045]图2为本发明实施例中基于PCIe的数据访问处理方法的流程示意图二,如图2所示,本实施例是以网卡接收到来自网络的数据向CPU转发为例进行说明,包括如下的步骤:
[0046]步骤201、网卡在接收到网络下发的数据后,发出DMA写操作,将数据写入到内存储器中;
[0047]步骤202、网卡进一步的发出Write寄存器操作,将状态寄存器的值写入到内存储器中,具体的可以是写入到一个预先设置的寄存器映射表中,而且在网卡内存储有该寄存器映射表的初始地址;
[0048]步骤203、网卡向CPU上报中断;
[0049]步骤204、CPU从内存储器中读取状态寄存器的值,具体的,CPU中也可以提前存储上述寄存器映射表的初始地址,而其中的状态寄存器的值可以包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止;
[0050]步骤205、CPU在判断网卡向内存储器写入数据且终止后,读取内存储器中的数据。
[0051]本实施例中,网卡在上报数据的过程中,只需要和CPU交互一次,仅需要在步骤203中执行一次CPU等待,比现有的网卡上报数据流程节省了两次等待时间,尤其在小块数据传输时优化更为明显,不但能够保证CPU读取数据的实时性,而且提高了网卡设备吞吐率。本发明的实施例中,PCIe设备除为网卡外,还可以是硬盘控制器等利用PCIe技术的传输设备。
[0052]本发明实施例还提供了一种PCIe设备,图3为本发明实施例中PCIe设备的结构示意图,如图3所示,该设备包括第一处理模块11、第二处理模块12和第三处理模块13,其中第一处理模块11用于向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;第二处理模块12用于将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理状态;第三处理模块13用于向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。
[0053]本发明实施例提供的PCIe设备,通过内存储器中增加状态寄存器的值的存储空间,在执行数据操作处理时,即从网络中向用户设备的CPU发送数据时,将上述数据写入到内存储器中,该内存储器可以是挂载在CPU上的存储设备;或者是在将用户设备的产生的CPU的数据发送给网络时,将状态寄存器的值写入到内存储器中,使得在向用户设备的CPU上报中断后,CPU可以首先读取内存储器中状态寄存器的值,然后根据状态寄存器的值执行相应的数据操作处理。本发明上述实施例提供的技术方案,仅需要在PCIe设备和CPU之间执行一次交互即可,能够有效避免二者多次交互之间的等待时间,提高数据的传输效率。
[0054]本发明上述实施例中,其中的状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。另外,上述的第一处理模块具体用于向所述用户设备的内存储器发起直接内存存取操作。而上述的第二处理模块具体用于获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
[0055]图4为本发明实施例中用户设备的结构示意图一,如图4所示,其包括PCIe设备
21、内存储器22和中央处理器23,其中的PCIe设备21用于向内存储器22发起数据操作处理,将数据写入到内存储器22或从内存储器22中读取数据;将状态寄存器的值写入到内存储器22中,所述状态寄存器的值用于表征数据操作处理状态;向中央处理器23上报中断,以通知所述中央处理器23从所述内存储器22中读取所述状态寄存器的值并执行相应的数据操作处理;所述内存储器22用于缓存所述数据,以及所述状态寄存器的值;所述中央处理器23用于在接收到所述网卡上报的中断后,从所述内存储器中读取所述状态寄存器的值,并执行相应的数据操作处理。
[0056]具体的,上述的PCIe设备可以是用于实现用户设备和网络间数据发送和接收的网卡,该网卡利用上述的技术方案向CPU上报数据,或者是将CPU下发的数据传送给网络。所述状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。
[0057]上述PCIe设备向用户设备的内存储器发起数据操作处理具体为向所述用户设备的内存储器发起直接内存存取操作;
[0058]上述PCIe设备将状态寄存器的值写入到内存储器中具体为所述PCIe设备获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
[0059]图5为本发明实施例中用户设备的结构示意图二,如图5所示,该用户设备包括PCIe设备31、CPU32和MEM33,该实施例中,其中的PCIe设备最常见的是网卡,且在PCIe设备中通常都设置有状态寄存器,例如中断寄存器和设备寄存器,分别存储相应的状态寄存器的值;MEM33可以为是挂载在CPU32下的内存储器,在该内存储器中设置有寄存器映射表,用于存储与PCIe设备的状态寄存器中相同的数值,此时在PCIe设备中还可以存储有上述寄存器列表的起始地址。在PCIe设备31向MEM33写入或读取数据时,可以是采用DMA方式,例如通过DMA写操作(DMA rd)向MEM33写入数据,通过DMA读操作(DMA wr)从MEM33读取数据,该DMA方式一次读写128个字节,另外也可以是PCI读写方式,一次读写4个字节。
[0060]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0061]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱罔本发明各实施例技术方案的范围。
【权利要求】
1.一种数据访问处理方法,其特征在于,包括: 向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据; 将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理的状态; 向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。
2.根据权利要求1所述的数据访问处理方法,其特征在于,所述状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。
3.根据权利要求1所述的数据访问处理方法,其特征在于,所述向用户设备的内存储器发起数据操作处理包括: 向所述用户设备的内存储器发起直接内存存取操作。
4.根据权利要求1所述的数据访问处理方法,其特征在于,所述将状态寄存器的值写入到内存储器中包括: 获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
5.—种PCIe设备,其特征在于,包括: 第一处理模块,用于向用户设备的内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据; 第二处理模块,用于将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理状态; 第三处理模块,用于向用户设备的中央处理器上报中断,以通知所述用户设备的中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理。
6.根据权利要求5所述的PCIe设备,其特征在于,所述状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。
7.根据权利要求5所述的PCIe设备,其特征在于,所述第一处理模块具体用于向所述用户设备的内存储器发起直接内存存取操作。
8.根据权利要求5所述的PCIe设备,其特征在于,所述第二处理模块具体用于获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映射表中。
9.一种用户设备,其特征在于,包括PCIe设备、内存储器和中央处理器; 所述PCIe设备用于向内存储器发起数据操作处理,将数据写入到内存储器或从内存储器中读取数据;将状态寄存器的值写入到内存储器中,所述状态寄存器的值用于表征数据操作处理状态;向中央处理器上报中断,以通知所述中央处理器从所述内存储器中读取所述状态寄存器的值并执行相应的数据操作处理;所述内存储器用于缓存所述数据,以及所述状态寄存器的值; 所述中央处理器,用于在接收到所述PCIe设备上报的中断后,从所述内存储器中读取所述状态寄存器的值,并执行相应的数据操作处理。
10.根据权利要求9所述的用户设备,其特征在于,所述状态寄存器的值包括中断状态寄存器的值和传输状态寄存器的值,所述中断状态寄存器的值用于表征将数据写入到内存储器或从内存储器中读取数据,所述传输状态寄存器的值用于表征PCIe设备与网络间的传输是否中止。
11.根据权利要求9所述的用户设备,其特征在于,所述PCIe设备向用户设备的内存储器发起数据操作处理具体为向所述用户设备的内存储器发起直接内存存取操作; 所述PCIe设备将状态寄存器的值写入到内存储器中具体为所述PCIe设备获取存储的内存储器中寄存器映射表的初始地址,并根据所述初始地址将所述状态寄存器的值写入到所述寄存器映 射表中。
【文档编号】G06F13/16GK103885900SQ201210560116
【公开日】2014年6月25日 申请日期:2012年12月20日 优先权日:2012年12月20日
【发明者】谢于明, 范多亮, 胡新宇, 史炜, 罗海 申请人:北京华为数字技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1