CN117648264A - 一种网卡设备及数据传输系统 - Google Patents
一种网卡设备及数据传输系统 Download PDFInfo
- Publication number
- CN117648264A CN117648264A CN202311616379.4A CN202311616379A CN117648264A CN 117648264 A CN117648264 A CN 117648264A CN 202311616379 A CN202311616379 A CN 202311616379A CN 117648264 A CN117648264 A CN 117648264A
- Authority
- CN
- China
- Prior art keywords
- descriptor
- target
- storage area
- data
- data storage
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 20
- 238000013500 data storage Methods 0.000 claims abstract description 193
- 238000012545 processing Methods 0.000 claims abstract description 75
- 230000006870 function Effects 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种网卡设备及数据传输系统,涉及数据处理领域,为解决数据传输占用主机内存的访问带宽的问题,该网卡设备包括存储模块;描述符队列地址寄存器;计算高速链路硬核模块,用于将主机发送的数据传输至第一数据存储区域,将主机发送的描述符传输至第一描述符存储区域,将主机发送的触发指令传输至网络数据处理模块;网络数据处理模块,用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据,将目标数据输出至网络。本发明能够把主机内存的访问带宽留给主机上运行的其他功能使用,提高了主机的整体运行效率。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种网卡设备及数据传输系统。
背景技术
网卡作为需要高速处理数据的设备,一般是通过PCIe(Peripheral ComponentInterconnect Express,高速串行计算机扩展总线标准)总线和主机CPU(CentralProcessing Unit,中央处理器)相连,在通过网卡进行数据传输的过程中,数据会被主机CPU先写到主机内存,然后再被网卡通过PCIe链路从主机内存读到网卡内部,再由网卡发送至网络。这样就导致每次数据传输都会涉及到两次对主机内存的访问,占用主机内存的访问带宽,此外,主机内存对CPU来说是多核共享的,某个处理器核或设备对内存访问带宽的过多占用会影响其它核的性能。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种网卡设备及数据传输系统,能够把主机内存的访问带宽留给主机上运行的其他功能使用,提高了主机的整体运行效率。
为解决上述技术问题,本发明提供了一种网卡设备,包括:
存储模块,所述存储模块包括第一描述符存储区域及第一数据存储区域;
描述符队列地址寄存器,用于存储所述第一描述符存储区域的基地址;
计算高速链路硬核模块,用于通过计算高速链路内存协议接收主机发送的数据和描述符,通过计算高速链路枚举配置协议接收所述主机发送的触发指令,并将所述主机发送的数据传输至所述第一数据存储区域,将所述主机发送的描述符传输至所述第一描述符存储区域,将所述主机发送的触发指令传输至网络数据处理模块;
网络数据处理模块,用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据,将所述目标数据输出至网络。
在一示例性实施例中,所述网卡设备还包括:
直接内存访问模块,用于根据接收到的读取地址在所述第一描述符存储区域中读取目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据,并将所述目标数据发送至所述网络数据处理模块;
所述网络数据处理模块,具体用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,并基于所述基地址和所述触发指令计算所述目标描述符的所述读取地址,将所述读取地址发送至所述直接内存访问模块,获取所述直接内存访问模块发送的所述目标数据输出至网络。
在一示例性实施例中,获取所述直接内存访问模块发送的所述目标数据输出至网络的过程包括:
获取所述直接内存访问模块发送的所述目标数据;
当所述目标数据满足输出条件,将所述目标数据输出至网络。
在一示例性实施例中,所述输出条件为所述目标数据的实际长度与所述目标描述符中的目标长度一致。
在一示例性实施例中,所述触发指令包括描述符编号;
当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符的过程包括:
当接收到所述触发指令,解析所述触发指令中的所述描述符编号,基于所述描述符编号及所述基地址计算目标地址,按所述目标地址读取所述第一描述符存储区域中的目标描述符。
在一示例性实施例中,所述基地址中包括第一标志位,所述主机的主机内存中包括第二描述符存储区域和第二数据存储区域;
所述网络数据处理模块,还用于根据所述第一标志位确定目标描述符存储区域和目标数据存储区域;所述目标描述符存储区域为所述第一描述符存储区域或所述第二描述符存储区域,所述目标数据存储区域为所述第一数据存储区域或所述第二数据存储区域;
所述当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据的过程包括:
当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域和所述目标数据存储区域为所述第一描述符存储区域和所述第一数据存储区域,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据。
在一示例性实施例中,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域和所述目标数据存储区域为所述第二描述符存储区域和所述第二数据存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,在所述第二数据存储区域中读取所述目标描述符对应的目标数据。
在一示例性实施例中,根据所述第一标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当所述第一标志位为第一预设值,确定目标描述符存储区域为所述第一描述符存储区域,确定目标数据存储区域为所述第一数据存储区域;
当所述第一标志位为第二预设值,确定所述目标描述符存储区域为所述第二描述符存储区域,确定所述目标数据存储区域为所述第二数据存储区域。
在一示例性实施例中,所述基地址中包括第一标志位,所述描述符包括第二标志位,所述主机的主机内存中包括第二描述符存储区域和第二数据存储区域;
所述网络数据处理模块,还用于根据所述第一标志位和所述第二标志位确定目标描述符存储区域和目标数据存储区域;所述目标描述符存储区域为所述第一描述符存储区域或所述第二描述符存储区域,所述目标数据存储区域为所述第一数据存储区域或所述第二数据存储区域;
所述当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据的过程包括:
当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第一描述符存储区域,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第一数据存储区域,在所述第一数据存储区域中读取所述目标描述符对应的目标数据。
在一示例性实施例中,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第一数据存储区域,在所述第一数据存储区域中读取所述目标描述符对应的目标数据。
在一示例性实施例中,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第二数据存储区域,在所述第二数据存储区域中读取所述目标描述符对应的目标数据。
在一示例性实施例中,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第一描述符存储区域,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第二数据存储区域,在所述第二数据存储区域中读取所述目标描述符对应的目标数据。
在一示例性实施例中,根据所述第一标志位和所述第二标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当所述第一标志位为第一预设值,确定目标描述符存储区域为所述第一描述符存储区域;
当所述第一标志位为第二预设值,确定所述目标描述符存储区域为所述第二描述符存储区域;
当所述第二标志位为第三预设值,确定目标数据存储区域为所述第一数据存储区域;
当所述第二标志位为第四预设值,确定所述目标数据存储区域为所述第二数据存储区域。
在一示例性实施例中,所述第一预设值和所述第三预设值相同,所述第二预设值和所述第四预设值相同。
在一示例性实施例中,所述描述符包括数据地址和数据长度,所述第一描述符存储区域中的所述描述符的所述数据地址为基于全局物理地址计算得到的存储模块内部的物理地址。
在一示例性实施例中,所述存储模块为双倍速率同步动态随机存储器。
在一示例性实施例中,所述网卡设备还包括:
内存映射配置模块,用于存储所述网络数据处理模块支持的收发队列的个数及支持的中断的个数;
所述计算高速链路硬核模块,用于将所述收发队列的个数和所述中断的个数传输至所述主机,以便所述主机根据所述收到队列的个数和所述中断的个数在所述存储模块中划分所述第一数据存储区域和所述第一描述符存储区域。
在一示例性实施例中,所述网卡设备还包括:
模式使能寄存器,用于存储功能触发值;
所述计算高速链路硬核模块还用于将主机发送的所述功能触发值传输至所述模式使能寄存器;
当所述功能触发值为第五预设值时,所述网络数据处理模块不使能,当所述功能触发值为第六预设值时,所述网络数据处理模块使能。
为解决上述技术问题,本发明还提供了一种数据传输系统,包括:
主机,用于发送数据,发送描述符,发送触发指令;
至少一个如上文任意一项所述网卡设备。
在一示例性实施例中,所述主机还用于当所述网卡设备与自身连接,对所述网卡设备进行初始化操作。
本发明还提供了一种网卡设备,包括:存储模块,存储模块包括第一描述符存储区域及第一数据存储区域;描述符队列地址寄存器,用于存储第一描述符存储区域的基地址;计算高速链路硬核模块,用于通过计算高速链路内存协议接收主机发送的数据和描述符,通过计算高速链路枚举配置协议接收所述主机发送的触发指令,并将主机发送的数据传输至第一数据存储区域,将主机发送的描述符传输至第一描述符存储区域,将主机发送的触发指令传输至网络数据处理模块;网络数据处理模块,用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据,将目标数据输出至网络。
在实际应用中,采用本发明的网卡设备,主机可以通过计算高速链路硬核模块将数据及数据对应的描述符直接写入网卡设备的本地存储模块中,网络数据处理模块直接访问本地存储模块,读取描述符和数据并发送到网络中,无需访问主机内存,从而把主机内存的访问带宽留给主机上运行的其他功能使用,提高了主机的整体运行效率。
本发明还提供了一种数据传输系统,具有和上述网卡设备相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种网卡设备的结构示意图;
图2为本发明所提供的另一种网卡设备的结构示意图;
图3为本发明所提供的另一种网卡设备的结构示意图;
图4为本发明所提供的另一种网卡设备的结构示意图;
图5为本发明所提供的一种数据传输系统的结构示意图。
具体实施方式
本发明的核心是提供一种网卡设备及数据传输系统,能够把主机内存的访问带宽留给主机上运行的其他功能使用,提高了主机的整体运行效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中,各模块以及各单元均为由至少一个芯片或电路或元器件或其组合形成的、具有特定功能的设备组件。
第一方面,请参照图1和图2,该网卡设备包括:
存储模块1,存储模块1包括第一描述符存储区域及第一数据存储区域;
描述符队列地址寄存器2,用于存储第一描述符存储区域的基地址;
计算高速链路硬核模块3,用于通过计算高速链路内存协议接收主机发送的数据和描述符,通过计算高速链路枚举配置协议接收所述主机发送的触发指令,并将主机发送的数据传输至第一数据存储区域,将主机发送的描述符传输至第一描述符存储区域,将主机发送的触发指令传输至网络数据处理模块4;
网络数据处理模块4,用于当接收到触发指令,从描述符队列地址寄存器2中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据,将目标数据输出至网络。
可以理解,网卡设备中的支持CXL(Compute Express Link,一种开放工业标准,用于高带宽低延迟的设备互联)协议计算高速链路硬核模块通过PCIe总线与主机连接,主机可通过CXL.io和CXL.mem与网卡设备的计算高速链路硬核模块通信,其中,CXL.io协议是一种枚举配置协议,主要用于设备的发现和枚举、报告错误等。CXL.mem协议能够实现让主机可以像访问自身本地内存一样访问设备内存,CXL.mem协议中,主机CPU作为主设备,负责发送请求,而设备作为从设备回复响应,请求分为有数据请求和无数据请求,响应也分为有数据相应和无数据响应。
在通过网卡设备进行数据传输之前,本实施例还包括通过主机上的网卡驱动在网卡设备的存储模块1中分配一段物理地址连续的内存作为第一描述符存储区域,用于存储描述符队列,并将此段内存的基地址通过计算高速链路硬核模块3写入网卡设备的描述符队列地址寄存器2中,描述符队列中包括至少一个描述符,对于同一种网卡设备,各描述符的数据格式相同,对于不同的网卡设备,描述符的数据格式可以相同也可以不同,描述符包括至少两个信息,即待发送的数据所在的数据存储区域的地址和数据的长度。
在通过网卡传输数据时,主机的网卡驱动会先在网卡设备的存储模块1内申请一段物理地址连续的第一数据存储区域,将待发送的数据通过计算高速链路硬核模块3写入第一数据存储区域,接着主机的网卡驱动会选择一个描述符,一般是从第一个描述符开始依次选择,基于选择的描述符生成触发指令,通过计算高速链路硬核模块3发送给网络设备中的网络数据处理模块4,网络数据处理模块4在接收到触发指令后,根据触发指令和描述符队列地址寄存器2中存储的基地址,计算出主机选择的描述符在第一描述符存储区域中的地址,然后基于该地址从第一描述符存储区域中读取到目标描述符,根据目标描述符对应的数据地址和数据长度,从第一数据存储区域中读取对应的目标数据,将目标数据传输至网络。本实施例中,通过计算高速链路硬核模块3预先将描述符队列和待输出的数据写入网卡设备的本地内存,从而使网络数据处理模块4可以直接访问本地存储内存,而无需访问主机内存,一方面提高数据传输效率,另一方面能够把主机内存的访问带宽留给主机上运行的其他功能使用,提高了主机的整体运行效率。
参照图3所示,图3为本发明所提供的另一种网卡设备的结构示意图,该网卡设备在上述实施例的基础上,还包括:
对外接口模块;
内存映射配置模块,用于存储支持CXL的DVSEC(Designated Vendor-SpecificExtended Capability,指定供应商特定扩展功能,是一组寄存器表,含CXL设备的容量、状态等信息)、CDAT(Coherent Device Attribute Table,标准化的设备寄存器表,用于报告延时和带宽信息,以及网络功能配置)表格。
内存映射输入/输出模块,Memory mapping I/O,它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间;
内存映射输入/输出模块连接命令接口与HDM(Host-managed Device Memory,主机管理的设备内存)解码器,其中,命令接口用于配置和管理设备、向软件呈现分区信息和事件日志等,HDM解码器用来确定主机物理地址(HPA)和设备物理地址(DPA)之间的映射关系,将主机发送的对应的数据写入对应的存储模块1中的地址中;
MAC(Media Access Control,媒体接入控制器),一端与网络数据处理模块4连接,一端接网线,以便将网络数据处理模块4输出的目标数据通过网线输出至网络。
可以理解,本实施例中采用支持PCIe的计算高速链路硬核模块3,能够被网卡设备的网络数据传输功能以及扩展内存功能共享,从而节省用于搭建该网卡设备的FPGA(FieldProgrammable Gate Array,现场可编程门阵列)的逻辑资源。
可见,本实施例中,主机可以通过计算高速链路硬核模块3将数据及数据对应的描述符直接写入网卡设备的本地存储模块1中,网络数据处理模块4直接访问本地存储模块1,读取描述符和数据并发送到网络中,无需访问主机内存,从而把主机内存的访问带宽留给主机上运行的其他功能使用,提高了主机的整体运行效率。
作为一种可选的实施例,请参照图3,该网卡设备还包括:
直接内存访问模块5,用于根据接收到的读取地址在第一描述符存储区域中读取目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据,并将目标数据发送至网络数据处理模块4;
网络数据处理模块4,具体用于当接收到触发指令,从描述符队列地址寄存器2中获取基地址,并基于基地址和触发指令计算目标描述符的读取地址,将读取地址发送至直接内存访问模块5,获取直接内存访问模块5发送的目标数据输出至网络。
作为一种可选的实施例,获取直接内存访问模块5发送的目标数据输出至网络的过程包括:
获取直接内存访问模块5发送的目标数据;
当目标数据满足输出条件,将目标数据输出至网络。
作为一种可选的实施例,输出条件为目标数据的实际长度与目标描述符中的目标长度一致。
本实施例中,网卡设备还包括直接内存访问模块5,当网络数据处理模块4确定目标描述符的读取地址后,可以将读取地址发送给直接内存访问模块5,通过直接内存访问模块5在本地内存中进行数据搬移,将目标描述符对应的目标数据搬移给网络数据处理模块4,网络数据处理模块4判定直接内存访问模块5发送的目标数据的长度和目标描述符的数据长度一致时,将目标数据发送至网络。通过直接内存访问模块5执行数据搬移任务,能够使网络数据处理模块4处理其他任务,提高网卡设备的运行效率。
作为一种可选的实施例,触发指令包括描述符编号;
当接收到触发指令,从描述符队列地址寄存器2中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符的过程包括:
当接收到触发指令,解析触发指令中的描述符编号,基于描述符编号及基地址计算目标地址,按目标地址读取第一描述符存储区域中的目标描述符。
本实施例中,描述符编号用于确定主机当前选择的待处理的描述符,假设选择了描述符队列的第N个描述符,则描述符编号为N,网络数据处理模块4接收到描述符编号后,根据描述符队列的基地址,加上N乘以每个描述符的长度计算出第N个描述符所在的地址,即目标地址。
参照图4所示,作为一种可选的实施例,基地址中包括第一标志位,主机的主机内存中包括第二描述符存储区域和第二数据存储区域;
网络数据处理模块4,还用于根据第一标志位确定目标描述符存储区域和目标数据存储区域,以便从所述目标描述符存储区域中读取目标描述符,从所述目标数据存储区域中读取所述目标描述符对应的目标数据;目标描述符存储区域为第一描述符存储区域或第二描述符存储区域,目标数据存储区域为第一数据存储区域或第二数据存储区域。
作为一种可选的实施例,当接收到触发指令,从描述符队列地址寄存器2中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据的过程包括:
当接收到触发指令,从描述符队列地址寄存器2中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域和目标数据存储区域为第一描述符存储区域和第一数据存储区域,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块4还用于当接收到触发指令,从描述符队列地址寄存器2中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域和目标数据存储区域为第二描述符存储区域和第二数据存储区域,基于基地址和触发指令读取第二描述符存储区域中的目标描述符,在第二数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,根据第一标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当第一标志位为第一预设值,确定目标描述符存储区域为第一描述符存储区域,确定目标数据存储区域为第一数据存储区域;
当第一标志位为第二预设值,确定目标描述符存储区域为第二描述符存储区域,确定目标数据存储区域为第二数据存储区域。
为避免网卡设备通过PCIe总线在主机内存读取描述符和待传输的数据,本实施例中在基地址中设置了第一标志位,根据第一标志位的值,可以确定描述符队列存储在主机内存还是网卡设备的本地内存,如果第一标志位的值为第一预设值,则描述符队列和待传输的数据均存在网卡设备的本地内存中,如果第一标志位的值为第二预设值,则描述符队列和待传输的数据均存在网卡设备的主机内存中。
可以理解,描述符队列和待传输的数据均存在网卡设备的主机内存中,则网络数据处理模块4通过直接内存访问模块5从主机内存中搬移数据,搬移过程参照上文所述,此处不再赘述。
参照图4所示,作为一种可选的实施例,基地址中包括第一标志位,描述符包括第二标志位,主机的主机内存中包括第二描述符存储区域和第二数据存储区域;
网络数据处理模块4,还用于根据第一标志位和第二标志位确定目标描述符存储区域和目标数据存储区域,以便从所述目标描述符存储区域中读取目标描述符,从所述目标数据存储区域中读取所述目标描述符对应的目标数据;目标描述符存储区域为第一描述符存储区域或第二描述符存储区域,目标数据存储区域为第一数据存储区域或第二数据存储区域;
作为一种可选的实施例,当接收到触发指令,从描述符队列地址寄存器2中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据的过程包括:
当接收到触发指令,从描述符队列地址寄存器2中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第一描述符存储区域,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,当基于目标描述符中的第二标志位确定目标数据存储区域为第一数据存储区域,在第一数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块4还用于当接收到触发指令,从描述符队列地址寄存器2中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第一数据存储区域,在第一数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块4还用于当接收到触发指令,从描述符队列地址寄存器2中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第二数据存储区域,在第二数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块4还用于当接收到触发指令,从描述符队列地址寄存器2中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第一描述符存储区域,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,基于目标描述符中的第二标志位确定目标数据存储区域为第二数据存储区域,在第二数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,根据第一标志位和第二标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当第一标志位为第一预设值,确定目标描述符存储区域为第一描述符存储区域;
当第一标志位为第二预设值,确定目标描述符存储区域为第二描述符存储区域;
当第二标志位为第三预设值,确定目标数据存储区域为第一数据存储区域;
当第二标志位为第四预设值,确定目标数据存储区域为第二数据存储区域。
作为一种可选的实施例,第一预设值和第三预设值相同,第二预设值和第四预设值相同。
本实施例中,除了在基地址中设置了第一标志位,还在描述符中设置了第二标志位,根据第一标志位和第二标志位的值,可以确定描述符队列和待传输的数据存储在本地内存和/或主机内存。假设基地址中的第一标志位为第一预设值,描述符中的第二标志位为第三预设值,则从本地内存中读取目标描述符和待传输的数据,假设基地址中的第一标志位为第二预设值,描述符中的第二标志位为第四预设值,则通过直接内存访问模块5从主机内存中读取目标描述符和待传输的数据,假设基地址中的第一标志位为第一预设值,描述符中的第二标志位为第三预设值,则在本地内存中读取目标描述符,通过直接内存访问模块5从主机内存中读取待传输的数据,假设基地址中的第一标志位为第二预设值,描述符中的第二标志位为第三预设值,则通过直接内存访问模块5从主机内存中读取目标描述符,在本地内存中读取待传输的数据。
作为一种可选的实施例,描述符包括数据地址和数据长度,第一描述符存储区域中的描述符的数据地址为基于全局物理地址计算得到的存储模块1内部的物理地址。
网卡驱动在向描述符队列中填写数据缓存的地址时,需要填写由全局物理地址计算得到的设备内部的物理地址,以便设备中的网络数据处理模块4访问本地内存设备。
作为一种可选的实施例,存储模块1为双倍速率同步动态随机存储器。
作为一种可选的实施例,网卡设备还包括:
内存映射配置模块,用于存储网络数据处理模块4支持的收发队列的个数及支持的中断的个数;
计算高速链路硬核模块3,用于将收发队列的个数和中断的个数传输至主机,以便主机根据收到队列的个数和中断的个数在存储模块1中划分第一数据存储区域和第一描述符存储区域。
作为一种可选的实施例,网卡设备还包括:
模式使能寄存器,用于存储功能触发值;
计算高速链路硬核模块3还用于将主机发送的存储功能触发值传输至模式使能寄存器;
当功能触发值为第五预设值时,网络数据处理模块4不使能,当功能触发值为第六预设值时,网络数据处理模块4使能。
可以理解,本实施例中的网卡设备可以同时实现扩展内存功能和网络数据传输功能,也可以单独实现扩展内存功能,或单独实现网络数据传输功能。通过在网卡设备中设置模式使能寄存器,主机通过往模式使能寄存器中写入不同的值,实现网卡设备不同功能的使能或者不使能。对于主机的操作系统来说,网卡设备如果作为CXL扩展内存使用,只加载现有CXL驱动模块,不加载任何网卡驱动即可,如果作为普通网卡使用,需要不加载相关CXL驱动(或在加载驱动后将设备置为无效),只加载网卡驱动。
综上所述,本发明同时支持CXL扩展内存和网卡功能的设备,即可以由软件配置单独使用其中一项功能,也可以同时使用,提高了设备的利用率,降低了设备购买成本。本发明的网卡设备使用网卡功能在收发网络数据时,分配的描述符列表和数据缓存都位于设备自身的DDR(Double Data Rate,双倍速率)芯片(作为CXL扩展内存添加到了操作系统)中,避免了对主机内存的频繁访问,让出主机内存带宽给其它处理器核使用,提高了系统整体的运行效率。
第二方面,请参照图5,图5为本发明所提供的一种数据传输系统的结构示意图,包括:
主机31,用于发送数据,发送描述符,发送触发指令;
至少一个如上文任意一项网卡设备32。
作为一种可选的实施例,主机31还用于当网卡设备32与自身连接,对网卡设备32进行初始化操作。
其中,主机31包括计算高速链路端口、内存控制器以及处理器核,当网卡设备32的计算高速链路硬核模块通过支持CXL协议的PCIe总线与主机31的计算高速链路端口正常连接后,在主机31的Linux操作系统上执行初始化操作,包括新建一个NUMA(Non UniformMemory Access,非一致性内存访问)节点,并将CXL扩展内存和网卡(作为一个PCIe设备)都设置到此NUMA节点上。在数据发送流程中,操作系统网络协议栈在为网卡申请内存(存放数据)时,会自动为其分配属于同一NUMA节点的物理内存,根据本发明的设计,即为CXL扩展内存(和网卡位于同一设备上)。编写网卡驱动时,无论是为描述符申请内存,还是为接收到的数据申请缓存,都要保证申请到的物理内存和网卡属于同一NUMA节点。为避免网卡仍然像普通方案一样通过PCIe总线来主机31内存读取描述符和数据缓存,需要在每个描述符中设置一个软硬件提前协商好的标志位,由软件设置硬件读取,确保网卡硬件直接访问设备内部的内存芯片(DDR)。网卡驱动在获取网卡配置(比如队列数量)时,不再从普通PCIe配置空间读取配置,改为从CXL.io配置空间读取。网卡驱动在向描述符中填写数据缓存的地址时,需要填写由全局物理地址计算得到的设备内部的物理地址,以便设备中的网络处理逻辑访问设备内存。
对于不采用Linux网络驱动,而是采用DPDK网络实现方案的场景,进行初始化操作包括在系统中预留大页,保证其和设备属于同一NUMA node。即将来应用程序在申请大页时,使用的是CXL设备扩展出的内存,在DPDK启动时,在参数中对其进行设置,让其在申请内存和描述符时都使用大页,编写DPDK驱动程序时,对第2项进行支持,编写DPDK驱动并填写描述符中的数据缓存地址时,需要填写由全局物理地址计算得到的设备内部的物理地址,以便设备中的网络处理逻辑访问设备内存。
其中,该网卡设备32包括:
存储模块,存储模块包括第一描述符存储区域及第一数据存储区域;
描述符队列地址寄存器,用于存储第一描述符存储区域的基地址;
计算高速链路硬核模块,用于将主机31发送的数据传输至第一数据存储区域,将主机31发送的描述符传输至第一描述符存储区域,将主机31发送的触发指令传输至网络数据处理模块;
网络数据处理模块,用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据,将目标数据输出至网络。
作为一种可选的实施例,网卡设备32还包括:
直接内存访问模块,用于根据接收到的读取地址在第一描述符存储区域中读取目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据,并将目标数据发送至网络数据处理模块;
网络数据处理模块,具体用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,并基于基地址和触发指令计算目标描述符的读取地址,将读取地址发送至直接内存访问模块,获取直接内存访问模块发送的目标数据输出至网络。
作为一种可选的实施例,获取直接内存访问模块发送的目标数据输出至网络的过程包括:
获取直接内存访问模块发送的目标数据;
当目标数据满足输出条件,将目标数据输出至网络。
作为一种可选的实施例,输出条件为目标数据的实际长度与目标描述符中的目标长度一致。
作为一种可选的实施例,触发指令包括描述符编号;
当接收到触发指令,从描述符队列地址寄存器中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符的过程包括:
当接收到触发指令,解析触发指令中的描述符编号,基于描述符编号及基地址计算目标地址,按目标地址读取第一描述符存储区域中的目标描述符。
作为一种可选的实施例,基地址中包括第一标志位,主机31的主机31内存中包括第二描述符存储区域和第二数据存储区域;
网络数据处理模块,还用于根据第一标志位确定目标描述符存储区域和目标数据存储区域;目标描述符存储区域为第一描述符存储区域或第二描述符存储区域,目标数据存储区域为第一数据存储区域或第二数据存储区域;
当接收到触发指令,从描述符队列地址寄存器中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据的过程包括:
当接收到触发指令,从描述符队列地址寄存器中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域和目标数据存储区域为第一描述符存储区域和第一数据存储区域,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块还用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域和目标数据存储区域为第二描述符存储区域和第二数据存储区域,基于基地址和触发指令读取第二描述符存储区域中的目标描述符,在第二数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,根据第一标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当第一标志位为第一预设值,确定目标描述符存储区域为第一描述符存储区域,确定目标数据存储区域为第一数据存储区域;
当第一标志位为第二预设值,确定目标描述符存储区域为第二描述符存储区域,确定目标数据存储区域为第二数据存储区域。
作为一种可选的实施例,基地址中包括第一标志位,触发指令中包括描述符编号,描述符编号包括第二标志位,主机31的主机31内存中包括第二描述符存储区域和第二数据存储区域;
网络数据处理模块,还用于根据第一标志位和第二标志位确定目标描述符存储区域和目标数据存储区域;目标描述符存储区域为第一描述符存储区域或第二描述符存储区域,目标数据存储区域为第一数据存储区域或第二数据存储区域;
当接收到触发指令,从描述符队列地址寄存器中获取基地址,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,在第一数据存储区域中读取目标描述符对应的目标数据的过程包括:
当接收到触发指令,从描述符队列地址寄存器中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第一描述符存储区域,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,当基于目标描述符中的第二标志位确定目标数据存储区域为第一数据存储区域,在第一数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块还用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第一数据存储区域,在第一数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块还用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第二数据存储区域,在第二数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,网络数据处理模块还用于当接收到触发指令,从描述符队列地址寄存器中获取基地址,当基于基地址中的第一标志位确定目标描述符存储区域为第一描述符存储区域,基于基地址和触发指令读取第一描述符存储区域中的目标描述符,基于目标描述符中的第二标志位确定目标数据存储区域为第二数据存储区域,在第二数据存储区域中读取目标描述符对应的目标数据。
作为一种可选的实施例,根据第一标志位和第二标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当第一标志位为第一预设值,确定目标描述符存储区域为第一描述符存储区域;
当第一标志位为第二预设值,确定目标描述符存储区域为第二描述符存储区域;
当第二标志位为第三预设值,确定目标数据存储区域为第一数据存储区域;
当第二标志位为第四预设值,确定目标数据存储区域为第二数据存储区域。
作为一种可选的实施例,第一预设值和第三预设值相同,第二预设值和第四预设值相同。
作为一种可选的实施例,描述符包括数据地址和数据长度,第一描述符存储区域中的描述符的数据地址为基于全局物理地址计算得到的存储模块内部的物理地址。
作为一种可选的实施例,存储模块为双倍速率同步动态随机存储器。
作为一种可选的实施例,网卡设备32还包括:
内存映射配置模块,用于存储网络数据处理模块支持的收发队列的个数及支持的中断的个数;
计算高速链路硬核模块,用于将收发队列的个数和中断的个数传输至主机31,以便主机31根据收到队列的个数和中断的个数在存储模块中划分第一数据存储区域和第一描述符存储区域。
作为一种可选的实施例,网卡设备32还包括:
模式使能寄存器,用于存储功能触发值;
计算高速链路硬核模块还用于将主机31发送的存储功能触发值传输至模式使能寄存器;
当功能触发值为第五预设值时,网络数据处理模块不使能,当功能触发值为第六预设值时,网络数据处理模块使能。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种网卡设备,其特征在于,包括:
存储模块,所述存储模块包括第一描述符存储区域及第一数据存储区域;
描述符队列地址寄存器,用于存储所述第一描述符存储区域的基地址;
计算高速链路硬核模块,用于通过计算高速链路内存协议接收主机发送的数据和描述符,通过计算高速链路枚举配置协议接收所述主机发送的触发指令,并将所述主机发送的数据传输至所述第一数据存储区域,将所述主机发送的描述符传输至所述第一描述符存储区域,将所述主机发送的触发指令传输至网络数据处理模块;
网络数据处理模块,用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据,将所述目标数据输出至网络。
2.根据权利要求1所述的网卡设备,其特征在于,所述网卡设备还包括:
直接内存访问模块,用于根据接收到的读取地址在所述第一描述符存储区域中读取目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据,并将所述目标数据发送至所述网络数据处理模块;
所述网络数据处理模块,具体用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,并基于所述基地址和所述触发指令计算所述目标描述符的所述读取地址,将所述读取地址发送至所述直接内存访问模块,获取所述直接内存访问模块发送的所述目标数据输出至网络。
3.根据权利要求2所述的网卡设备,其特征在于,获取所述直接内存访问模块发送的所述目标数据输出至网络的过程包括:
获取所述直接内存访问模块发送的所述目标数据;
当所述目标数据满足输出条件,将所述目标数据输出至网络。
4.根据权利要求3所述的网卡设备,其特征在于,所述输出条件为所述目标数据的实际长度与所述目标描述符中的目标长度一致。
5.根据权利要求1所述的网卡设备,其特征在于,所述触发指令包括描述符编号;
当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符的过程包括:
当接收到所述触发指令,解析所述触发指令中的所述描述符编号,基于所述描述符编号及所述基地址计算目标地址,按所述目标地址读取所述第一描述符存储区域中的目标描述符。
6.根据权利要求1所述的网卡设备,其特征在于,所述基地址中包括第一标志位,所述主机的主机内存中包括第二描述符存储区域和第二数据存储区域;
所述网络数据处理模块,还用于根据所述第一标志位确定目标描述符存储区域和目标数据存储区域,以便从所述目标描述符存储区域中读取目标描述符,从所述目标数据存储区域中读取所述目标描述符对应的目标数据;所述目标描述符存储区域为所述第一描述符存储区域或所述第二描述符存储区域,所述目标数据存储区域为所述第一数据存储区域或所述第二数据存储区域。
7.根据权利要求6所述的网卡设备,其特征在于,所述当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据的过程包括:
当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域和所述目标数据存储区域为所述第一描述符存储区域和所述第一数据存储区域,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据。
8.根据权利要求6所述的网卡设备,其特征在于,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域和所述目标数据存储区域为所述第二描述符存储区域和所述第二数据存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,在所述第二数据存储区域中读取所述目标描述符对应的目标数据。
9.根据权利要求6所述的网卡设备,其特征在于,根据所述第一标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当所述第一标志位为第一预设值,确定目标描述符存储区域为所述第一描述符存储区域,确定目标数据存储区域为所述第一数据存储区域;
当所述第一标志位为第二预设值,确定所述目标描述符存储区域为所述第二描述符存储区域,确定所述目标数据存储区域为所述第二数据存储区域。
10.根据权利要求1所述的网卡设备,其特征在于,所述基地址中包括第一标志位,描述符包括第二标志位,所述主机的主机内存中包括第二描述符存储区域和第二数据存储区域;
所述网络数据处理模块,还用于根据所述第一标志位和所述第二标志位确定目标描述符存储区域和目标数据存储区域,以便从所述目标描述符存储区域中读取目标描述符,从所述目标数据存储区域中读取所述目标描述符对应的目标数据;所述目标描述符存储区域为所述第一描述符存储区域或所述第二描述符存储区域,所述目标数据存储区域为所述第一数据存储区域或所述第二数据存储区域。
11.根据权利要求10所述的网卡设备,其特征在于,所述当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,在所述第一数据存储区域中读取所述目标描述符对应的目标数据的过程包括:
当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第一描述符存储区域,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第一数据存储区域,在所述第一数据存储区域中读取所述目标描述符对应的目标数据。
12.根据权利要求10所述的网卡设备,其特征在于,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第一数据存储区域,在所述第一数据存储区域中读取所述目标描述符对应的目标数据。
13.根据权利要求10所述的网卡设备,其特征在于,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第二描述符存储区域,基于所述基地址和所述触发指令读取所述第二描述符存储区域中的目标描述符,当基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第二数据存储区域,在所述第二数据存储区域中读取所述目标描述符对应的目标数据。
14.根据权利要求10所述的网卡设备,其特征在于,所述网络数据处理模块还用于当接收到所述触发指令,从所述描述符队列地址寄存器中获取所述基地址,当基于所述基地址中的所述第一标志位确定所述目标描述符存储区域为所述第一描述符存储区域,基于所述基地址和所述触发指令读取所述第一描述符存储区域中的目标描述符,基于所述目标描述符中的第二标志位确定所述目标数据存储区域为所述第二数据存储区域,在所述第二数据存储区域中读取所述目标描述符对应的目标数据。
15.根据权利要求10所述的网卡设备,其特征在于,根据所述第一标志位和所述第二标志位确定目标描述符存储区域和目标数据存储区域的过程包括:
当所述第一标志位为第一预设值,确定目标描述符存储区域为所述第一描述符存储区域;
当所述第一标志位为第二预设值,确定所述目标描述符存储区域为所述第二描述符存储区域;
当所述第二标志位为第三预设值,确定目标数据存储区域为所述第一数据存储区域;
当所述第二标志位为第四预设值,确定所述目标数据存储区域为所述第二数据存储区域。
16.根据权利要求1所述的网卡设备,其特征在于,所述描述符包括数据地址和数据长度,所述第一描述符存储区域中的所述描述符的所述数据地址为基于全局物理地址计算得到的存储模块内部的物理地址。
17.根据权利要求1所述的网卡设备,其特征在于,所述网卡设备还包括:
内存映射配置模块,用于存储所述网络数据处理模块支持的收发队列的个数及支持的中断的个数;
所述计算高速链路硬核模块,用于将所述收发队列的个数和所述中断的个数传输至所述主机,以便所述主机根据所述收到队列的个数和所述中断的个数在所述存储模块中划分所述第一数据存储区域和所述第一描述符存储区域。
18.根据权利要求1-17任意一项所述的网卡设备,其特征在于,所述网卡设备还包括:
模式使能寄存器,用于存储功能触发值;
所述计算高速链路硬核模块还用于将主机发送的所述功能触发值传输至所述模式使能寄存器;
当所述功能触发值为第五预设值时,所述网络数据处理模块不使能,当所述功能触发值为第六预设值时,所述网络数据处理模块使能。
19.一种数据传输系统,其特征在于,包括:
主机,用于发送数据,发送描述符,发送触发指令;
至少一个如权利要求1-18任意一项所述网卡设备。
20.根据权利要求19所述的数据传输系统,其特征在于,所述主机还用于当所述网卡设备与自身连接,对所述网卡设备进行初始化操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311616379.4A CN117648264A (zh) | 2023-11-29 | 2023-11-29 | 一种网卡设备及数据传输系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311616379.4A CN117648264A (zh) | 2023-11-29 | 2023-11-29 | 一种网卡设备及数据传输系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117648264A true CN117648264A (zh) | 2024-03-05 |
Family
ID=90048983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311616379.4A Pending CN117648264A (zh) | 2023-11-29 | 2023-11-29 | 一种网卡设备及数据传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648264A (zh) |
-
2023
- 2023-11-29 CN CN202311616379.4A patent/CN117648264A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018137529A1 (zh) | 一种数据传输的方法、装置、设备和系统 | |
US9734085B2 (en) | DMA transmission method and system thereof | |
CN114020655A (zh) | 一种内存扩展方法、装置、设备及存储介质 | |
US20050033874A1 (en) | Direct memory access using memory descriptor list | |
US11829309B2 (en) | Data forwarding chip and server | |
AU2015402888B2 (en) | Computer device and method for reading/writing data by computer device | |
CN109977037B (zh) | 一种dma数据传输方法及系统 | |
KR102428563B1 (ko) | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 | |
CN113760560A (zh) | 一种进程间通信方法以及进程间通信装置 | |
WO2024093517A1 (zh) | 内存管理方法及计算设备 | |
TW202240413A (zh) | PCIe裝置及其操作方法 | |
US10719333B2 (en) | BIOS startup method and apparatus | |
EP4123649A1 (en) | Memory module, system including the same, and operation method of memory module | |
EP3353664B1 (en) | Method and apparatus for pinning memory pages in a multi-level system memory | |
US9146693B2 (en) | Storage control device, storage system, and storage control method | |
KR102144185B1 (ko) | 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 | |
EP3321809B1 (en) | Memory access method, apparatus and system | |
CN116909484A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN116483259A (zh) | 一种数据处理方法以及相关装置 | |
CN117648264A (zh) | 一种网卡设备及数据传输系统 | |
US20220317925A1 (en) | Methods and apparatus for offloading tiered memories management | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN113742115A (zh) | 用于通过处理器处理页面错误的方法 | |
JP3110024B2 (ja) | メモリ制御システム | |
CN117389483B (zh) | 一种内存管理方法、装置、电子设备及可读存储介质 |
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 |