CN109446147A - 一种网络存储设备与pcie设备的数据交互方法 - Google Patents
一种网络存储设备与pcie设备的数据交互方法 Download PDFInfo
- Publication number
- CN109446147A CN109446147A CN201811332468.5A CN201811332468A CN109446147A CN 109446147 A CN109446147 A CN 109446147A CN 201811332468 A CN201811332468 A CN 201811332468A CN 109446147 A CN109446147 A CN 109446147A
- Authority
- CN
- China
- Prior art keywords
- data
- network storage
- descriptor
- storage equipment
- request
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络存储设备与pcie设备的数据交互方法,能预先将网络存储设备的请求数据描述符池注册到pcie设备,在进行数据交互时,网络存储设备只需向该设备发送中断信息,后续该设备即可从请求数据描述符池找到目标请求数据描述符,并确定数据的写入地址,在写入完成后发送中断信息以提示数据交互完成。可见,在该方法中pcie设备可以直接访问网络存储设备的内存空间,无需网络存储设备cpu进行过多运算,且数据描述符的形式简洁高效,因此显著提高了数据交互效率,使得pcie传输性能发挥更加充分。此外,本发明还提供了一种网络存储设备与pcie设备的数据交互装置及一种pcie设备,其作用与上述方法相对应。
Description
技术领域
本发明涉及计算机领域,特别涉及一种网络存储设备与pcie设备的数据交互方法、装置及一种pcie设备。
背景技术
网络存储设备是一个计算机系统,包括CPU、主板、内存等,网络存储设备的pcie硬件接口可以外接各种pcie接口的高速设备,比如硬盘转接卡、显卡、网卡等。pcie总线传输速率高达上Gb/s,传输速率非常高,硬件接口速率虽然很高,但更需要一种高效配合的消息交互技术,才能保证网络存储设备与pcie设备的数据交互达到极致,充分利用pcie总线高速特性,发挥pcie设备的数据传输性能。
可见,传统的数据交互方法无法充分发挥pcie设备的数据传输性能,造成pcie总线传输性能的浪费。
发明内容
本发明的目的是提供一种网络存储设备与pcie设备的数据交互方法、装置及一种pcie设备,用以解决传统的数据交互方法无法充分发挥pcie设备的数据传输性能的问题。具体实施方案如下:
第一方面,本发明提供了一种网络存储设备与pcie设备的数据交互方法,应用于pcie设备,包括:
响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;
确定所述目标请求数据描述符指向的数据块链表;
通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;
从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;
向所述网络存储设备发送中断信息,以提示数据交互完成。
可选的,所述确定所述目标请求数据描述符指向的数据块链表,包括:
根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
若本次请求为读请求,则确定所述目标请求数据描述符指向的数据块链表。
可选的,所述从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,包括:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,其中,所述回复数据帧池预先注册到所述pcie设备;
从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据目标回复数据帧。
可选的,所述从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,包括:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧;
将所述本次请求的通讯状态写入所述目标回复数据帧,其中,所述通讯状态包括以下任意一项或多项:成功、失败、数据溢出;
将所述目标回复数据帧指向所述数据块链表。
可选的,所述响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,包括:
响应于网络存储设备发送的中断信息,遍历所述网络存储设备的请求数据描述符池中的各个请求数据描述符,判断所述请求数据描述符的标识信息是否为初始化标识信息;
若所述请求数据标识符的标识信息不为初始化标识信息,则确定所述请求数据标识符为目标请求数据描述符。
可选的,在所述从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表之后,还包括:
将所述目标回复数据描述符的标识信息设置为所述请求数据标识符的标识信息。
可选的,所述通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表,包括:
通过pcie总线以直接内存读取传输方式将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
第二方面,本发明提供了一种网络存储设备与pcie设备的数据交互装置,应用于pcie设备,包括:
目标请求数据描述符获取模块:用于响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;
数据块链表确定模块:用于确定所述目标请求数据描述符指向的数据块链表;
数据块链表填充模块:用于通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;
目标回复数据描述符获取模块:用于从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;
中断信息发送模块:用于向所述网络存储设备发送中断信息,以提示数据交互完成。
可选的,所述数据块链表确定模块包括:
请求类型判断单元:用于根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
数据块链表确定单元:用于在本次请求为读请求时,确定所述目标请求数据描述符指向的数据块链表。
可选的,所述目标回复数据描述符获取模块包括:
数据帧获取单元:用于从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,其中,所述回复数据帧池预先注册到所述pcie设备;
数据描述符获取单元:用于从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据目标回复数据帧。
可选的,所述数据帧获取单元包括:
数据帧获取子单元:用于从所述网络存储设备的回复数据帧池中获取目标回复数据帧;
通讯状态写入子单元:用于将所述本次请求的通讯状态写入所述目标回复数据帧,其中,所述通讯状态包括以下任意一项或多项:成功、失败、数据溢出;
数据帧指向子单元:用于将所述目标回复数据帧指向所述数据块链表。
可选的,所述目标请求数据描述符获取模块包括:
遍历单元:用于响应于网络存储设备发送的中断信息,遍历所述网络存储设备的请求数据描述符池中的各个请求数据描述符,判断所述请求数据描述符的标识信息是否为初始化标识信息;
确定单元:用于若所述请求数据标识符的标识信息不为初始化标识信息,则确定所述请求数据标识符为目标请求数据描述符。
可选的,所述装置还包括:
标识信息设置模块:用于将所述目标回复数据描述符的标识信息设置为所述请求数据标识符的标识信息。
可选的,所述数据块链表填充模块具体用于:
通过pcie总线以直接内存读取传输方式将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
第三方面,本发明还提供了一种pcie设备,用于与网络存储设备进行数据交互,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现以下步骤:
响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;确定所述目标请求数据描述符指向的数据块链表;通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;向所述网络存储设备发送中断信息,以提示数据交互完成。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
若本次请求为读请求,则确定所述目标请求数据描述符指向的数据块链表。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,其中,所述回复数据帧池预先注册到所述pcie设备;
从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据目标回复数据帧。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧;
将所述本次请求的通讯状态写入所述目标回复数据帧,其中,所述通讯状态包括以下任意一项或多项:成功、失败、数据溢出;
将所述目标回复数据帧指向所述数据块链表。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
响应于网络存储设备发送的中断信息,遍历所述网络存储设备的请求数据描述符池中的各个请求数据描述符,判断所述请求数据描述符的标识信息是否为初始化标识信息;
若所述请求数据标识符的标识信息不为初始化标识信息,则确定所述请求数据标识符为目标请求数据描述符。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
将所述目标回复数据描述符的标识信息设置为所述请求数据标识符的标识信息。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
通过pcie总线以直接内存读取传输方式将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
本发明所提供的一种网络存储设备与pcie设备的数据交互方法,应用于pcie设备,能够预先将网络存储设备的请求数据描述符池和回复数据描述符池注册到pcie设备,在进行数据交互时,网络存储设备只需要向pcie设备发送中断信息,后续pcie设备即可直接从请求数据描述符池找到目标请求数据描述符,并根据该目标请求数据描述符确定数据的写入地址,在写入完成后还能够从回复数据描述符池获取用于指向写入数据的目标描述符,并发送中断信息给网络存储设备提示数据交互完成。可见,在该数据交互过程中pcie设备可以直接访问网络存储设备的内存空间,无需网络存储设备cpu进行过多运算,且数据描述符的形式简洁高效,因此,显著提高了数据交互效率,使得pcie设备的传输性能发挥更加充分。
此外,本发明还提供了一种网络存储设备与pcie设备的数据交互装置及一种pcie设备,其作用与上述方法相对应,这里不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种网络存储设备与pcie设备的数据交互方法实施例一的实现流程图;
图2为本发明所提供的一种网络存储设备与pcie设备的数据交互方法实施例二中网络存储设备的空间分配示意图;
图3为本发明所提供的一种网络存储设备与pcie设备的数据交互方法实施例二中网络存储设备的读数据过程示意图;
图4为本发明所提供的一种网络存储设备与pcie设备的数据交互方法实施例二中pcie设备的读数据过程示意图;
图5为本发明所提供的一种网络存储设备与pcie设备的数据交互装置实施例的功能框图。
具体实施方式
本发明的核心是提供一种网络存储设备与pcie设备的数据交互方法、装置及pcie设备,显著提高了数据交互效率,使得pcie设备的传输性能发挥更加充分。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明提供的一种网络存储设备与pcie设备的数据交互方法实施例一进行介绍,参见图1,实施例一包括:
步骤S101:响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备。
步骤S102:确定所述目标请求数据描述符指向的数据块链表。
步骤S103:通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
步骤S104:从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备。
步骤S105:向所述网络存储设备发送中断信息,以提示数据交互完成。
可见,本实施例所提供一种网络存储设备与pcie设备的数据交互方法,应用于pcie设备,能够预先将网络存储设备的请求数据描述符池和回复数据描述符池注册到pcie设备,在进行数据交互时,网络存储设备只需要向pcie设备发送中断信息,后续pcie设备即可直接从请求数据描述符池找到目标请求数据描述符,并根据该目标请求数据描述符确定数据的写入地址,在写入完成后还能够从回复数据描述符池获取用于指向写入数据的目标描述符,并发送中断信息给网络存储设备提示数据交互完成。可见,在该数据交互过程中pcie设备可以直接访问网络存储设备的内存空间,无需网络存储设备cpu进行过多运算,且数据描述符的形式简洁高效,因此,显著提高了数据交互效率,使得pcie设备的传输性能发挥更加充分。
下面开始详细介绍本发明提供的一种网络存储设备与pcie设备的数据交互方法实施例二,实施例二基于实施例一实现,并在实施例一的基础上进行了一定程度的拓展。
首先,对实施例二中网络存储设备的内存空间的分配方式进行描述,需要说明的是,下文描述的分配方式仅仅作为本实施例提供的一种可选的实施方式,对于具体分配出几块数据池,各个数据池的大小,本发明不做具体限定。如图2所示,实施例二中的网络存储设备的内存空间分配方式主要包括以下五项内容:
第一项,请求数据帧池
网络存储设备分配一块固定内存,组成8字节*128块的“请求数据帧池”,即每块请求数据帧大小为8字节,一共128块。请求数据帧池主要用于存储请求数据帧,请求数据帧的组成如表1所示。
表1
第二项,请求数据描述符池
网络存储设备分配一块固定内存,组成12字节*128块的“请求数据描述符池”,即每块请求数据描述符大小为12字节,一共128块。请求数据描述符池主要用于存储请求数据描述符,其组成如表2所示,所有请求数据描述符的ID都会被初始化为0xFFFFFFFF。
表2
第三项,回复数据帧池
网络存储设备分配一块固定内存,组成8字节*192块的“回复数据帧池”,即每块回复数据帧大小为8字节,一共192块。回复数据帧池主要用于存储回复数据帧,其组成如表3所示。值得一提的是,回复数据帧池的块数一定多于请求数据帧池的块数,因为除了网络存储设备主动请求,pcie设备回复的数据帧外,还有部分pcie设备主动发起的事件数据帧。
表3
第四项,回复数据描述符池
网络存储设备分配一块固定内存,组成12字节*192块的“回复数据描述符池”,即每块回复数据描述符大小为12字节,一共192块。回复数据描述符池主要用于存储回复数据描述符,其组成如表4所示,所有回复数据描述符的ID都会被初始化为0xFFFFFFFF。
表4
第五项,附加数据池
网络存储设备分配一块固定内存,组成520字节*2048块的“附加数据池”,即每块附加数据大小为520字节,一共2048块。附加数据池主要用于存储网络存储设备的读写数据块,数据块的组成如表5所示。
表5
在上述空间分配完成后,网络存储设备分别把(“请求数据描述符池”的首地址、请求数据描述符大小、个数)、(“请求数据帧池”的首地址、请求数据帧大小、个数)、(“回复数据描述符池”的首地址、回复数据描述符大小、个数)、(“回复数据帧池”的首地址、回复数据帧大小、个数)、(“附件数据池”的首地址、数据块大小、个数),通过pcie总线注册到pcie设备。注册到pcie设备后,pcie设备即可得知网络存储设备中用于通讯的内存分布情况,以便于实现后续数据交互过程。
上述空间分配和注册过程完成之后,即可实现网络存储设备与pcie设备之间的数据交互,具体包括两个情形:一个是网络存储设备向pcie设备发送读请求,pice设备响应于所述读请求将数据写入网络存储设备;另一个是写请求,pcie设备响应于所述写请求将网络存储设备中的数据写入pcie设备。
本实施例主要对上述第一个情形进行描述,关于第二个情形的实现过程可以参照下面对第一个情形的实现过程的描述,下面分别从网络存储设备和pcie设备两端对第一个情形即读数据的实现过程进行介绍。
首先,如图3所示,网络存储设备的读数据实现过程主要包括:
步骤S201:网络存储设备从附加数据池中获取N个附加数据块,实际数量根据需求而定,使用单向链表数据结构将N个附加数据块,即每个附加数据块中NextChainIndex字段保存下一个附加数据块的索引,最后一个附加数据块中NextChainIndex设置为0xFFFFFFFF。因为本次是读数据过程,因此RequestType置为读请求,且不需要写入附件数据块链表,只需要按照链表顺序挨个清空数据块,pcie设备后面会装入数据。
这里提一句,当执行写数据过程的时候,需要将RequestType设置为写请求,并把需要写入pcie设备的数据,使用直接内存读取的传输方式按照链表顺序存入附加数据块链表中,并根据实际情况设置DataLength。
步骤S202:从请求数据帧池中获取1个请求数据帧,指向步骤S201中的附加数据链,即请求数据帧中ChainIndex字段保存首个附加数据块的索引。
步骤S203:从请求数据描述符池中获取1个请求数据描述符,指向步骤S202中的请求数据帧,即请求数据描述符中RequestFrameIndex字段保存请求数据帧的索引。然后,分配全局唯一描述符ID指向请求数据描述符,即ID字段保存全局唯一描述符。
步骤S204:发送中断告知pcie设备,以便于pcie设备进行后续处理。
需要说明的实际,一般网络存储设备对pcie设备进行读或者写数据请求都按照上面流程进行。如果对pcie设备进行控制,如停止某次读写过程、控制pcie设备重启时,只需要请求描述符和请求数据帧,不需要附加数据块。
然后,如图4所示,pcie设备的读数据实现过程主要包括:
步骤S301:pcie设备收到中断通知后,pcie设备清楚网络存储设备中内存分布情况,在请求数据描述符池中找到有效的请求数据描述符(即ID不为0xFFFFFFFF的请求数据描述符),得到目标请求数据描述符。根据目标请求数据描述符中的RequestType字段,可以判断本次请求是否为读请求,若本次请求为读请求,则进入后续步骤。
步骤S302:确定目标请求数据描述读指向的请求数据帧,并确定该请求数据帧指向的附加数据块链表,然后,将pcie设备中的目标数据通过直接内存读取的传输方式写入所述附加数据块链表。
步骤S303:从回复数据帧池中获取1个回复数据帧,指向附加数据链,即回复数据帧的ChainIndex字段保存步骤S302中找到的附加数据链首索引。判断pcie设备是否成功处理完读请求,如果pcie设备成功处理完请求,则IOStatus字段设置为成功。
值得一提的是,如果pcie设备处理请求失败,则IOStatus设置为失败,并且不需要上述将目标数据写入附加数据块链。另外,如果pcie设备回复数据多于网络存储设备申请的附加数据块总长度,则IOStatus设置为数据溢出。
步骤S304:从回复数据描述符池中获取1块回复数据描述符,并将其指向回复数据帧,然后,将回复数据描述符中ID字段设置为请求数据描述符的ID。
步骤S305:发送中断到网络存储设备,通知网络存储设备数据已处理完成。
然后,网络存储设备即可在回复数据描述符池中得到有效的回复数据描述符(即ID不为0xFFFFFFFF的回复数据描述符),进而获得回复数据。
需要说明的是,数据交互完成之后,需要把请求数据描述符和回复数据描述符中ID都置为0xFFFFFFFF,表示此描述未被使用,还需要把请求数据帧Function置为0xFFFFFFFF,表示未被使用,最后把回复数据帧中IOStatus置为0xFFFFFFFF,表示未被使用,把附加数据NextChainIndex置为0xFFFFFFFF,表示未被使用。
综上所述,本实施例提供的一种网络存储设备与pcie设备的数据交互方法,主要包括空间分配、注册、消息请求、消息回复四个过程,在数据交互过程中,pcie设备可以直接访问网络存储设备的内存空间,无需网络存储设备cpu进行过多运算,且数据描述符的形式简洁高效,因此,显著提高了数据交互效率,使得pcie设备的传输性能发挥更加充分。
下面对本发明提供的一种网络存储设备与pcie设备的数据交互装置实施例进行介绍,下文描述的一种网络存储设备与pcie设备的数据交互装置与上文描述的一种网络存储设备与pcie设备的数据交互方法可相互对应参照。
如图5所述,该装置具体包括:
目标请求数据描述符获取模块501:用于响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;
数据块链表确定模块502:用于确定所述目标请求数据描述符指向的数据块链表;
数据块链表填充模块503:用于通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;
目标回复数据描述符获取模块504:用于从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;
中断信息发送模块505:用于向所述网络存储设备发送中断信息,以提示数据交互完成。
在一些具体的实施例中,所述数据块链表确定模块502可以包括:
请求类型判断单元5021:用于根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
数据块链表确定单元5022:用于在本次请求为读请求时,确定所述目标请求数据描述符指向的数据块链表。
在一些具体的实施例中,所述目标回复数据描述符获取模块504包括:
数据帧获取单元5041:用于从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,其中,所述回复数据帧池预先注册到所述pcie设备;
数据描述符获取单元5042:用于从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据目标回复数据帧。
在一些具体的实施例中,所述数据帧获取单元5041包括:
数据帧获取子单元:用于从所述网络存储设备的回复数据帧池中获取目标回复数据帧;
通讯状态写入子单元:用于将所述本次请求的通讯状态写入所述目标回复数据帧,其中,所述通讯状态包括以下任意一项或多项:成功、失败、数据溢出;
数据帧指向子单元:用于将所述目标回复数据帧指向所述数据块链表。
在一些具体的实施例中,所述目标请求数据描述符获取模块501包括:
遍历单元5011:用于响应于网络存储设备发送的中断信息,遍历所述网络存储设备的请求数据描述符池中的各个请求数据描述符,判断所述请求数据描述符的标识信息是否为初始化标识信息;
确定单元5012:用于若所述请求数据标识符的标识信息不为初始化标识信息,则确定所述请求数据标识符为目标请求数据描述符。
在一些具体的实施例中,所述装置还包括:
标识信息设置模块506:用于将所述目标回复数据描述符的标识信息设置为所述请求数据标识符的标识信息。
在一些具体的实施例中,所述数据块链表填充模块503具体用于:
通过pcie总线以直接内存读取传输方式将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
本实施例的一种网络存储设备与pcie设备的数据交互装置用于实现前述的一种网络存储设备与pcie设备的数据交互方法,因此该装置中的具体实施方式可见前文中的一种网络存储设备与pcie设备的数据交互方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的一种网络存储设备与pcie设备的数据交互装置用于实现前述的一种网络存储设备与pcie设备的数据交互方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本发明还提供了一种pcie设备实施例,该pcie设备实施例用于与网络存储设备进行数据交互。具体的,该pcie设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现以下步骤:
响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;确定所述目标请求数据描述符指向的数据块链表;通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;向所述网络存储设备发送中断信息,以提示数据交互完成。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
若本次请求为读请求,则确定所述目标请求数据描述符指向的数据块链表。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,其中,所述回复数据帧池预先注册到所述pcie设备;
从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据目标回复数据帧。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧;
将所述本次请求的通讯状态写入所述目标回复数据帧,其中,所述通讯状态包括以下任意一项或多项:成功、失败、数据溢出;
将所述目标回复数据帧指向所述数据块链表。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
响应于网络存储设备发送的中断信息,遍历所述网络存储设备的请求数据描述符池中的各个请求数据描述符,判断所述请求数据描述符的标识信息是否为初始化标识信息;
若所述请求数据标识符的标识信息不为初始化标识信息,则确定所述请求数据标识符为目标请求数据描述符。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
将所述目标回复数据描述符的标识信息设置为所述请求数据标识符的标识信息。
作为一种可选的实施方式,所述处理器在执行所述存储器中的计算机程序时,具体可以实现以下步骤:
通过pcie总线以直接内存读取传输方式将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
本实施例的一种pcie设备用于实现前述的一种网络存储设备与pcie设备的数据交互方法,因此该设备的具体实施方式可见前文中的一种网络存储设备与pcie设备的数据交互方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的一种pcie设备用于实现前述的一种网络存储设备与pcie设备的数据交互方法,因此其作用与上述方法的作用相对应,这里不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种网络存储设备与pcie设备的数据交互方法、装置及pcie设备进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种网络存储设备与pcie设备的数据交互方法,应用于pcie设备,其特征在于,包括:
响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;
确定所述目标请求数据描述符指向的数据块链表;
通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;
从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;
向所述网络存储设备发送中断信息,以提示数据交互完成。
2.如权利要求1所述的方法,其特征在于,所述确定所述目标请求数据描述符指向的数据块链表,包括:
根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
若本次请求为读请求,则确定所述目标请求数据描述符指向的数据块链表。
3.如权利要求2所述的方法,其特征在于,所述从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,包括:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,其中,所述回复数据帧池预先注册到所述pcie设备;
从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据目标回复数据帧。
4.如权利要求3所述的方法,其特征在于,所述从所述网络存储设备的回复数据帧池中获取目标回复数据帧,将所述目标回复数据帧指向所述数据块链表,包括:
从所述网络存储设备的回复数据帧池中获取目标回复数据帧;
将所述本次请求的通讯状态写入所述目标回复数据帧,其中,所述通讯状态包括以下任意一项或多项:成功、失败、数据溢出;
将所述目标回复数据帧指向所述数据块链表。
5.如权利要求1所述的方法,其特征在于,所述响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,包括:
响应于网络存储设备发送的中断信息,遍历所述网络存储设备的请求数据描述符池中的各个请求数据描述符,判断所述请求数据描述符的标识信息是否为初始化标识信息;
若所述请求数据标识符的标识信息不为初始化标识信息,则确定所述请求数据标识符为目标请求数据描述符。
6.如权利要求5所述的方法,其特征在于,在所述从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表之后,还包括:
将所述目标回复数据描述符的标识信息设置为所述请求数据标识符的标识信息。
7.如权利要求1-6任意一项所述的方法,其特征在于,所述通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表,包括:
通过pcie总线以直接内存读取传输方式将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表。
8.一种网络存储设备与pcie设备的数据交互装置,应用于pcie设备,其特征在于,包括:
目标请求数据描述符获取模块:用于响应于网络存储设备发送的中断信息,获取所述网络存储设备的请求数据描述符池中的目标请求数据描述符,其中,所述请求数据描述符池预先注册到所述pcie设备;
数据块链表确定模块:用于确定所述目标请求数据描述符指向的数据块链表;
数据块链表填充模块:用于通过pcie总线将目标数据传输到所述网络存储设备,并利用所述目标数据填充所述数据块链表;
目标回复数据描述符获取模块:用于从所述网络存储设备的回复数据描述符池中获取目标回复数据描述符,将所述目标回复数据描述符指向所述数据块链表,其中,所述回复数据描述符池预先注册到所述pcie设备;
中断信息发送模块:用于向所述网络存储设备发送中断信息,以提示数据交互完成。
9.如权利要求8所述的装置,其特征在于,所述数据块链表确定模块包括:
请求类型判断单元:用于根据所述目标请求数据描述符中的请求类型字段,判断本次请求是否为读请求;
数据块链表确定单元:用于在本次请求为读请求时,确定所述目标请求数据描述符指向的数据块链表。
10.一种pcie设备,用于与网络存储设备进行数据交互,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如权利要求1-7任意一项所述的一种网络存储设备与pcie设备的数据交互方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811332468.5A CN109446147B (zh) | 2018-11-09 | 2018-11-09 | 一种网络存储设备与pcie设备的数据交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811332468.5A CN109446147B (zh) | 2018-11-09 | 2018-11-09 | 一种网络存储设备与pcie设备的数据交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446147A true CN109446147A (zh) | 2019-03-08 |
CN109446147B CN109446147B (zh) | 2022-02-18 |
Family
ID=65552439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811332468.5A Active CN109446147B (zh) | 2018-11-09 | 2018-11-09 | 一种网络存储设备与pcie设备的数据交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446147B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831337A (zh) * | 2019-04-19 | 2020-10-27 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN114185705A (zh) * | 2022-02-17 | 2022-03-15 | 南京芯驰半导体科技有限公司 | 一种基于PCIe的多核异构同步系统及方法 |
US11385895B2 (en) | 2019-04-04 | 2022-07-12 | Cambricon Technologies Corporation Limited | Data processing apparatus and related products |
US11836491B2 (en) | 2019-04-04 | 2023-12-05 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product for increased efficiency of tensor processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149717A (zh) * | 2007-11-16 | 2008-03-26 | 威盛电子股份有限公司 | 计算机系统及直接内存访问传输方法 |
CN103150278A (zh) * | 2013-03-05 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于pio和dma混合的网络接口卡描述符提交方法 |
CN103853676A (zh) * | 2014-03-28 | 2014-06-11 | 苏州科达科技股份有限公司 | 基于PCIe总线的信道分配、释放、数据传输方法和系统 |
US20140281106A1 (en) * | 2013-03-12 | 2014-09-18 | Lsi Corporation | Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge |
CN107066407A (zh) * | 2016-11-28 | 2017-08-18 | 天津光电通信技术有限公司 | 一种基于PCIe总线的主从交互式通信平台及方法 |
-
2018
- 2018-11-09 CN CN201811332468.5A patent/CN109446147B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149717A (zh) * | 2007-11-16 | 2008-03-26 | 威盛电子股份有限公司 | 计算机系统及直接内存访问传输方法 |
CN103150278A (zh) * | 2013-03-05 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于pio和dma混合的网络接口卡描述符提交方法 |
US20140281106A1 (en) * | 2013-03-12 | 2014-09-18 | Lsi Corporation | Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge |
CN103853676A (zh) * | 2014-03-28 | 2014-06-11 | 苏州科达科技股份有限公司 | 基于PCIe总线的信道分配、释放、数据传输方法和系统 |
CN107066407A (zh) * | 2016-11-28 | 2017-08-18 | 天津光电通信技术有限公司 | 一种基于PCIe总线的主从交互式通信平台及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11385895B2 (en) | 2019-04-04 | 2022-07-12 | Cambricon Technologies Corporation Limited | Data processing apparatus and related products |
US11836491B2 (en) | 2019-04-04 | 2023-12-05 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product for increased efficiency of tensor processing |
US11886880B2 (en) | 2019-04-04 | 2024-01-30 | Cambricon Technologies Corporation Limited | Data processing apparatus and related products with descriptor management |
CN111831337A (zh) * | 2019-04-19 | 2020-10-27 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
US11687339B2 (en) | 2019-04-19 | 2023-06-27 | Cambricon Technologies Corporation Limited | Data processing method and apparatus, and related product |
CN114185705A (zh) * | 2022-02-17 | 2022-03-15 | 南京芯驰半导体科技有限公司 | 一种基于PCIe的多核异构同步系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109446147B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446147A (zh) | 一种网络存储设备与pcie设备的数据交互方法 | |
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
CN100445975C (zh) | 数据传输控制装置、图像处理装置和数据传输控制方法 | |
CN106779855A (zh) | 广告填充方法及装置 | |
CN112887437A (zh) | 区块链交易处理方法、区块链节点和区块链 | |
CN106325758B (zh) | 一种队列存储空间管理方法及装置 | |
EP3077914B1 (en) | System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface | |
CN108647176A (zh) | 一种车联网设备数据传输方法及车联网设备 | |
CN108416843A (zh) | 三维场景构建方法、装置、设备及计算机可读存储介质 | |
CN109471843A (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN107562669A (zh) | 一种NVMe协议命令处理方法、装置及系统 | |
CN107885580A (zh) | 一种云迁移方法、装置、设备及存储介质 | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
CN107391672A (zh) | 数据的读写方法及消息化的分布式文件系统 | |
CN107451271A (zh) | 一种哈希表处理方法、装置、设备及存储介质 | |
CN105354153B (zh) | 一种紧耦合异构多处理器数据交换缓存的实现方法 | |
CN109558250A (zh) | 一种基于fpga的通信方法、设备、主机及异构加速系统 | |
CN109857553A (zh) | 内存管理方法及装置 | |
CN107172222A (zh) | 一种基于分布式存储系统的数据存储方法及装置 | |
CN103348653A (zh) | 扩容的方法和设备、以及访问数据的方法和设备 | |
CN105988871B (zh) | 一种远端内存分配方法、装置和系统 | |
KR20070089029A (ko) | 기억 제어 장치, 기억 제어 방법, 기억 제어 프로그램 기록매체 및 정보 처리 장치 | |
CN102520879B (zh) | 基于优先级的文件信息存储方法、装置及系统 | |
CN107491342A (zh) | 一种基于fpga的多虚拟卡使用方法及系统 | |
CN109597577A (zh) | 一种处理nvme协议读写命令的方法、系统及相关装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |