CN114610660A - 控制接口数据的方法、装置及系统 - Google Patents
控制接口数据的方法、装置及系统 Download PDFInfo
- Publication number
- CN114610660A CN114610660A CN202210197669.9A CN202210197669A CN114610660A CN 114610660 A CN114610660 A CN 114610660A CN 202210197669 A CN202210197669 A CN 202210197669A CN 114610660 A CN114610660 A CN 114610660A
- Authority
- CN
- China
- Prior art keywords
- interface
- hardware
- data
- shared
- hardware interface
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000012546 transfer Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请披露了一种控制接口数据的方法、装置及系统,其特征在于,所述方法包括:控制第一硬件接口将第一接口数据存储至共享缓存区;将所述第一接口数据从所述共享缓存区传输至第二硬件接口;其中,所述共享缓存区位于内核空间中,且所述共享缓存区由所述第一硬件接口及所述第二硬件接口共享。本申请能够通过内核空间中的硬件接口的共享缓存区,实现内核空间中接口数据的零拷贝,降低内存中数据读取次数,有效降低内存带宽占用率及系统功耗,提升系统的性能。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种控制接口数据的方法、装置及系统。
背景技术
现有技术在内核空间进行接口数据传输时,需要处理器在内核空间对接口数据进行拷贝,处理器反复读取内存,导致内存带宽占用率高,系统功耗大。
发明内容
有鉴于此,本申请提供一种控制接口数据的方法、装置及系统,以解决接口数据传输过程中内存带宽占用率高,系统功耗大的问题。
第一方面,提供一种控制接口数据的方法,其特征在于,所述方法包括:控制第一硬件接口将第一接口数据存储至共享缓存区;将所述第一接口数据从所述共享缓存区传输至第二硬件接口;其中,所述共享缓存区位于内核空间中,且所述共享缓存区由所述第一硬件接口及所述第二硬件接口共享。
可选地,所述控制第一硬件接口将第一接口数据存储至共享缓存区之前,所述方法还包括:在操作系统的物理地址内预留共享地址空间;将所述第一硬件接口的地址空间和所述第二硬件接口的地址空间映射至所述共享地址空间,形成所述共享缓存区。
可选地,所述方法由位于CPU外部的硬件控制器执行。
可选地,所述硬件控制器用于执行以下操作中的一种或多种:所述共享缓存区的申请、所述共享缓存区的管理以及所述第一硬件接口的接口数据与所述第二硬件接口的接口数据的格式转换。
可选地,所述控制第一硬件接口将第一接口数据存储至共享缓存区,包括:与所述第一硬件接口的DMA控制器通信,以将所述第一接口数据存储至共享缓存区;所述将所述第一接口数据从所述共享缓存区传输至第二硬件接口,包括:与所述第二接口的DMA控制器通信,以将所述第一接口数据从所述共享缓存区传输至所述第二硬件接口。
第二方面,提供一种控制接口数据的装置,其特征在于,所述装置包括:存储部件,用于存储代码;控制部件,用于调用所述代码,以执行如下操作:控制第一硬件接口将第一接口数据存储至共享缓存区;将所述第一接口数据从所述共享缓存区传输至所述第二硬件接口;其中,所述共享缓存区位于内核空间中,且所述共享缓存区由所述第一硬件接口及第二硬件接口共享。
可选地,所述控制第一硬件接口将第一接口数据存储至共享缓存区之前,所述方法还包括:在操作系统的物理地址内预留共享地址空间;将所述第一硬件接口的地址空间和所述第二硬件接口的地址空间映射至所述共享地址空间,形成所述共享缓存区。
可选地,所述装置为位于CPU外部的硬件控制器。
可选地,所述硬件控制器用于执行以下操作中的一种或多种:所述共享缓存区的申请、所述共享缓存区的管理以及所述第一硬件接口的接口数据与所述第二硬件接口的接口数据的格式转换。
可选地,所述控制第一硬件接口将第一接口数据存储至共享缓存区,包括:与所述第一硬件接口的DMA控制器通信,以将所述第一接口数据存储至共享缓存区;所述将所述第一接口数据从所述共享缓存区传输至第二硬件接口,包括:与所述第二接口的DMA控制器通信,以将所述第一接口数据从所述共享缓存区传输至所述第二硬件接口。
第三方面,提供一种控制接口数据的系统,其特征在于,所述系统包括:第一硬件接口;第二硬件接口;操作系统,所述操作系统的内核空间包含所述第一硬件接口和所述第二硬件接口共享的共享缓存区;控制装置,与所述第一硬件接口、所述第二硬件接口控制连接,以执行如第一方面所述的任一方法。
本申请实施例提供的控制接口数据的方法,通过内核空间中硬件接口可共享的共享缓存区,实现内核空间中接口数据的零拷贝,降低内存中数据读取次数,有效降低了内存带宽占用率及系统功耗,提升系统的性能。
附图说明
图1为本申请实施例提供的一种硬件接口间数据传输方法示意图。
图2为本申请实施例提供的另一种硬件接口间数据传输方法示意图。
图3为本申请实施例提供的又一种硬件接口间数据传输方法示意图。
图4为本申请实施例提供的一种控制接口数据的方法的流程性示意图。
图5为本申请实施例提供的一种分配共享缓存区的方法的流程性示意图。
图6为本申请实施例提供的一种共享缓存区的映射方法示意图。
图7为本申请实施例提供的一种控制接口数据的方法示意图。
图8为本申请实施例提供的一种不同的控制接口数据的方法对内存的访问示意图。
图9本申请实施例提供的一种控制接口数据的装置的结构示意图。
图10本申请实施例提供的一种控制接口数据的系统的结构示意图。
具体实施方式
下面对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
虚拟内存是操作系统的内存管理技术,该技术可以将一部分磁盘来充当内存使用,已释放应用程序对内存的占用。操作系统可以是管理硬件资源及软件资源的计算机程序,例如可以是Windows操作系统,例如还可以是Linux操作系统,等。物理内存可以是通过物理内存条而获得的内存空间,该内存空间的大小例如可以是真实的插在主板内存槽上的内存条的容量的大小。内存条例如可以是随机存取存储器(random access memory,RAM),随机存取存储器可以是静态随机存储器(static random-access memory,SRAM),例如还可以是同步动态随机存储器(synchronous dynamic random access memory,SDRAM),例如还可以是双倍速率同步动态随机存储器(double data rate SDRAM,DDR SDRAM)。
操作系统可以为程序分配虚拟地址(virtual address,VA),处理器在读取数据时,可以通过内存管理单元将虚拟内存中的虚拟地址转化为物理内存中的物理地址(physical address,PA),在物理地址空间中进行数据的实际读写,该内存管理单元例如可与是内存管理单元(memory management unit,MMU),例如还可以是系统内存管理单元(system memory management unit,SMMU)。为了避免用户程序读写内存中系统的数据及进程,可以将虚拟内存分为用户空间及内核空间,其中,应用程序运行在用户空间,操作系统运行在内核空间。操作系统还可以将每个程序单独的虚拟内存划分为用户空间及内核空间,例如,可以为进程分配4G的虚拟空间,其中0~3G为该进程的用户空间,3~4G为内核空间。运行在用户空间的进程可以称为用户态进程,运行在内核空间的进程可以称为内核态进程,用户态进程不能直接调用系统的资源,例如读写磁盘操作,需要通过系统调用的方式完成。作为一个示例,当应用程序要读取磁盘上的文件,应用程序可以向内核发起调用请求,将进程从用户态进入内核态,在内核态,处理器例如CPU可以执行该数据读取指令,处理器可以从磁盘将数据读取至内核空间,并将该数据从内核空间拷贝至用户空间,之后将进程由内核态切换至用户态,这样,应用程序可以完成数据的读取。
硬件接口也可以称为IO接口,硬件接口例如可以是处理器的硬件接口,外部设备可以通过硬件接口与处理器进行数据传输,经过硬件接口传输的数据可以称为接口数据。硬件接口的类型例如可以是UFS硬件接口、USB硬件接口、PCIE硬件接口等。外部设备设备例如可以是磁盘、网卡、调制解调器、显卡等外部设备。应当理解,本申请不限制硬件接口的类型及外部设备的类型。
处理器与硬件接口进行接口数据传输时,可以通过直接内存存取(direct memoryaccess,DMA)技术,通过DMA可以直降将硬件接口上的接口数据搬运至内存中,这样,可以节省处理器的资源并提高整个系统的IO吞吐量。在进行DMA数据拷贝时,处理器可以将内存中的某块区域作为DMA缓存区,并告知DMA控制器该缓存器在内存中的地址空间,DMA控制器可以将数据从硬件接口处传输至已定的DMA缓存区内。同样,在将内存数据传输至硬件接口时,DMA控制器可以将已知地址空间的DMA缓存区内的数据传输至硬件接口中。
硬件接口之间可以进行接口数据的转发,也就是说,可以将一个硬件接口的接口数据通过操作系统转发至另一个硬件接口,该接口数据例如可以是硬件接口的外部设备的数据。
下面结合图1-图3对硬件接口间数据转发过程进行详细的介绍。图1为本申请实施例提供的一种硬件接口间数据传输方法示例图。图1所示的数据传输方法数据的读取和写入是从用户空间到内核空间来回的复制,可以看出这个过程发生了4次数据拷贝。第一次拷贝,通过Read()指令将用户态进程切换至内核态,将接口1上的数据拷贝至内核空间中接口1的缓存区内,具体的,可以通过操作系统层面将接口1的数据搬运至内核空间,该过程可以是DMA拷贝。第二次拷贝,处理器将接口1的缓存区内的数据拷贝至用户空间,并将进程由内核态切换为用户态,这样,应用程序可以拿到数接口1中的数据,这个拷贝的过程由处理器执行,例如由CPU完成。第三次拷贝,通过Write()指令将用户态切换至内核态,CPU将该数据由用户空间拷贝至内核空间中接口2的缓存区内。第四次拷贝,通过DMA将内核空间中接口2中的缓存区中的数据拷贝至接口2中,并将进程由内核态切换为用户态,完成一份数据在接口1和接口2之间的传输。可以看出,在两个接口间传输一份数据,进行了4次数据拷贝,其中2次是在内存中进行,由处理器在内核空间及用户空间进行数据拷贝,还有2次是硬件接口与内存之间的DMA拷贝。过多的数据拷贝无疑会消耗处理器的资源,反复读写内存,降低了系统的性能,增加了系统功耗。例如,反复读写DDR或SRAM进行数据的拷贝,占用了较多的内存带宽,增加了内存的功耗。
图2为本申请实施例提供的另一种硬件接口间数据传输方法示意图,如图2所示,可以通过调用Sendfile()函数,代替图1中的Read()函数和Write()函数对系统调用,这样就可以减少一次系统调用,也就减少了2次上下文切换的开销。Sendfile()函数中可以包括多个参数,其中,前两个参数分别是目的端和源端的文件描述符,后面两个参数可以是源端的偏移量和数据复制的长度,该函数的返回值可以是实际复制的数据的长度。从图2可以看出,该硬件接口间数据传输过程发生了3次数据拷贝。第一次拷贝,通过调用Sendfile()函数,将进程由用户态切换为内核态,通过DMA将接口1的数据拷贝至内核空间中接口1的缓存区内;第二次拷贝,处理器将内核空间中接口1的缓存区内的数据拷贝至接口2的缓存区内;第三次拷贝,内核空间中接口2的缓存区内的数据通过DMA拷贝至接口2中,并将内核态切换为用户态。该方法只有2次上下文切换和3次数据拷贝,其中2次为DMA拷贝,1次为CPU拷贝,比图1所述的方法少了一次数据拷贝。然而,该数据传输方法只针对操作系统能够本地收发的数据,因为该方法依赖于用户程序使用文件描述符操作数据才能实现,不适用于被操作系统转发的数据。
图2所示的硬件接接口间数据传输方法,虽然降低了数据拷贝的次数,但是在内核空间是需要处理器进行一次数据拷贝,同样存在占用CPU资源的问题,为了降低硬件接口之间数据转发时处理器的功耗,可以使用硬件控制器替代CPU进行数据的转发,如图3所示,硬件控制器可以代替CPU将内核空间中接口1的缓存区的数据拷贝至接口2的缓存区内。
由以上3种硬件接口间数据传输方法可以看出,现有技术中,因为内核空间中接口之间的缓存区是相互隔离的,在进行硬件接口间数据转发时,都需要在内核空间进行一次数据传输,既,硬件接口在内存缓存区的接口数据需要进行一次由一个接口缓存区拷贝至另一个接口缓存区的过程,虽然该过程可以由处理器执行,也可以由硬件控制器执行,但是数据拷贝的过程,占用了内存的带宽,降低了系统的性能。同时,在进行DMA拷贝时,处理器需要在内存中为接口分配内存缓存区,并与DMA控制器通信,以及处理器需要进行接口数据的管理,例如数据缓描述流转,数据搬移、数据队列的管理和分发等,这些动作也占用了部分处理器的资源,增加了处理器的功耗。
有基于此,本申请实施例提供一种控制接口数据的方法、装置及系统,已解决现有技术中,接口数据在传输时,存在的占用内存的带宽,反复读取内存,降低了系统的性能,增加系统的功耗的问题。
图4为本申请实施例提供的一种控制接口数据的方法的流程性示意图。
在步骤S410,控制第一硬件接口将第一接口数据存储至共享缓存区。
第一硬件接口例如可以是前文提到的UFS硬件接口、USB硬件接口、PCIE硬件接口等,第一接口数据可以是连接第一硬件接口的外部设备的数据,该外部设备例如可以是前文提到的磁盘、网卡、调制解调器、显卡等外部设备。应当理解,本申请中“第一”及“第二”仅是对硬件接口进行编号,并不限制硬件接口的数量,本申请实施例提供的方法也适用于多个硬件接口之间数据的传输。
共享缓存区可以位于内核空间,该共享缓存区例如可以是内核空间中的一段共享地址空间,该共享地址空间可以是操作系统物理地址空间,例如可以在操作系统的物理地址空间中分配一段的地址空间,用作硬件接口的共享缓存区,例如还可以在物理内存中分配多段的地址空间,用作硬件接口的共享缓存区。该共享缓存区可以由多个硬件接口共享,例如可以由第一硬件接口及第二硬件接口共享。
在一些实施例中,可以通过与第一硬件接口的DMA的控制器通信,以将第一硬件的第一接口数据存储至共享缓存区。作为一个示例,处理器可以向第一硬件接口发送数据传输请求,响应与该数据传输请求,第一硬件接口的DMA控制器可以将第一接口数据传输至共享缓存区。
在步骤S420,将第一接口数据从共享缓存区传输至第二硬件接口。
在一些实施例中,可以通过与第二硬件接口的DMA的控制器通信,以将第一接口数据从共享缓存区传输至第二硬件接口。作为一个示例,处理器可以向第二硬件接口发送数据传输请求,响应与该数据传输请求,第二硬件接口的DMA控制器将第一接口数据从共享缓存区传输至第二硬件接口。
由此可见,本申请实施例提供的一种数据传输方法,通过内核空间中硬件接口可共享的共享缓存区,实现了内核空间中接口数据的零拷贝,降低内存中数据读取次数,有效降低内存带宽占用率及系统功耗,提升系统的性能。进一步的,在将接口数据从硬件接口传输至内核空间及将接口数据从内核空间传输至硬件接口时,采用DMA直接内存存取技术,实现了硬件接口间数据传输时CPU零拷贝,有效降低了CPU的功耗。
在执行步骤S410之前,本申请实施例提供的控制接口数据的方法还包括在内核空间分配共享缓存区,图5为本公开实施例提供一种分配共享缓存区的方法的流程性示意图。
在步骤S510,在操作系统的物理地址空间内预留共享地址空间。
可以在操作系统的物理地址空间预留一段地址空间或多段地址空间作为硬件接口的共享缓存区。
在步骤S520,将第一硬件接口的地址空间和第二硬件接口的地址空间映射至该共享地址空间,形成共享缓存区。
可以将第一硬件接口在内核空间中的一段地址空间作为第一共享地址空间,将第二硬件接口在内核空间中的一段地址空间作为第二共享地址空间,可以通过内存管理单元,将第一共享地址空间及第二共享地址空间按照一定的规则,映射至预留的共享地址空间,形成第一硬件接口及第二硬件接口的共享缓存区。在一些实施例中,可以将硬件接口在内核空间中的虚拟地址空间进行映射得到共享缓存区,例如,可以将第一硬件接口及第二硬件在内核空间中的一段虚拟地址空间与预留的共享地址空间进行映射,得到共享缓存区。
本申请实施例提供的控制接口数据的方法可以由处理器执行,该处理器可以是CPU处理器,该CPU处理器可以集成在片上系统SOC芯片上。本申请实施例提供的控制接口数据的方法也可以由位于CPU外部的硬件控制器执行,该硬件控制器可以集成在片上系统SOC芯片上。这样,硬件控制器可以代替处理器控制接口数据的传输,具体的,在硬件控制器可以代替处理器在内核空间中申请建立硬件接口的共享缓存区,例如,可以在硬件控制器初始化时,可以由硬件加速器代替处理器完成共享缓存区的建立。
图6为本申请实施例提供的一种共享缓存区的映射方法示意图,如图6所述,在进行接口1与接口2数据传输之前,可以分别为接口1及接口2的外部设备在内核空间分配地址空间,在一些实施例中,该过程可以是是外部设备初始化的过程。如图6所示,接口1在内核空间的虚拟地址空间为VA1,接口2在内核空间的虚拟地址空间为VA2,硬件控制器可以在接口1虚拟地址空间VA1预留一段共享空间,硬件控制器可以在接口2的虚拟地址空间VA2预留一段共享空间。硬件控制器可以对接口1的共享空间及接口2的共享空间做管理识别,硬件控制器还可以在系统物理地址分配一段或多段内存作为共享地址空间PA,例如,硬件控制器在系统物理地址空间分配共享地址段1及共享地址段2作为共享地址空间。硬件控制器可以在硬件驱动初始化时,完成系统物理地址的分配。硬件控制器可以通过内存管理单元,将接口1的虚拟地址空间VA1中的共享地址空间和接口2的虚拟地址空间VA2中的共享地址空间按照一定的规则映射至共享地址段1及共享地址段2。
在进行硬件接口数据传输时,硬件控制器还可以代替处理器进行共享缓存区的管理,例如,硬件控制器可以代替CPU为第一硬件接口的第一数据在内核空间申请地址空间进行数据缓存,硬件控制器还可以管理该地址空间,例如,当数据传输完成后释放该数据缓存地址空间,硬件控制器还可以配合第一硬件接口的外部设备完成第一接口数据从外部设备到内核空间的数据拷贝,例如硬件控制器可以配合外部设备完成硬件接口的接口数据从外部设备到芯片内缓存区的数据拷贝。作为一个示例,硬件控制器可以代替CPU向第一硬件接口的DMA控制器发送数据请求,并配合DMA控制器完成数据的传输。
同时,硬件控制器还可以代替处理器进行接口数据的管理,例如,硬件控制器可以对第一硬件接口的接口数据及第二硬件接口的接口数据的格式进行转换。作为一个示例,硬件加速器可以对第一硬件接口传输的第一接口数据进行描述符的管理,例如硬件加速器可以对第一接口数据的缓存描述符进行流转,使描述符符合第二硬件接口的格式要求,为第一接口数据流出到第二硬件接口做准备。作为另一个示例,硬件控制器可以生成与第二硬件接口相互的缓存描述格式。
硬件控制器在控制接口数据传输时,硬件控制器还可以进行接口数据的搬移、列队管理、数据分发,以及可能涉及的字段检测分类等,可以看出,硬件加速器可以独立完成接口数据的传输,不需要处理器的参与,有效降低了处理器的功耗,提升了系统的性能。
图7为本申请实施例提供的一种控制接口数据的方法示意图,下面结合图7对本申请实施例提供的控制接口数据的方法进行详细的介绍。
如图7所示,可以在内核空间建立接口1及接口2的共享缓存区,可以向接口1发送数据传输请求,响应于该数据传输请求,接口1的DMA控制器通过DMA拷贝将第一接口数据存储在共享缓存区,可以向接口2发送数据传输请求,响应于该数据传输请求,接口2的DMA控制器通过DMA拷贝将第一接口数据从共享缓存区拷贝至接口2,进而完成接口数据的零拷贝传输。如图7所示,该方法可以由硬件控制器执行。当接口1有接口数据通过系统转到接口2时,硬件控制器可以先为接口1在内核空间分配缓存区,并建立接口1的缓存区及与接口2的缓存区与共享缓存区的映射关系。硬件控制器协助接口1的DMA控制器完成接口1的接口数据到内核空间的共享缓存区的拷贝,之后,硬件控制器可以流转或生成与接口2交互的缓存描述格式,使得接口数据的描述符格式满足接口2的要求。硬件控制器可以协助接口2的DMA控制器完成接口数据从内核空间到接口2的拷贝。
图8为本申请实施例提供的一种不同的控制接口数据的方法对内存的访问示意图,其中case3为本申请实施例提供的控制接口数据的方法。从图8可以看出,case1在进行硬件接口间数据传输时,对系统内存的读写访问次数为4次。该系统内存例如可以是DDR等系统缓存。case2在进行硬件接口间数据传输时,对系统内存的读写访问次数为3次,case3也就是本申请实施提供的控制接口数据的方法在进行接口间数据传输时,对系统内存的读写访问次数为2次。可以看出,本申请实施例提供的控制接口数据的方法,在接口间数据传输时,实现了零拷贝,减小了对内存及内存通路的带宽要求,降低了在外部设备数据转发场景下系统的功耗。
由此可见,本申请实施例通过内核空间中的共享缓存区,在接口数据传输过程中,实现了内核空间中接口数据的零拷贝,显著减少了硬件接口之间接口数据流转时内存带宽及通路带宽,减少了DDR的功耗。同时,通过硬件控制器,摆脱了接口数据转发过程中对处理器的依赖,处理器可以进行间歇性的睡眠,不需要消耗一定的底电流,降低了CPU的功耗。进一步的,可以使用相对较少的SRAM替代DDR进行数据的转发,进一步降低DDR读写的带宽和功耗。
上文结合图1至图8,详细描述了本申请的方法实施例,下面结合图9和图10,详细描述本申请的装置实施例及系统实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图9为本申请实施例提供的一种控制接口数据的装置的结构示意图,图9所示的控制接口数据的装置900例如可以是处理器,该处理器可以是CPU,该控制数据的装置900可以包括存储部件910及控制部件920。
存储部件910,用于存储代码;
控制部件920,用于调用代码,以执行如下操作:控制第一硬件接口将第一接口数据存储至共享缓存区;将所述第一接口数据从所述共享缓存区传输至第二硬件接口;其中,所述共享缓存区位于内核空间中,且所述共享缓存区由所述第一硬件接口及所述第二硬件接口共享。
可选地,所述控制第一硬件接口将第一接口数据存储至共享缓存区之前,所述方法还包括:在操作系统的物理地址内预留共享地址空间;将所述第一硬件接口的地址空间和所述第二硬件接口的地址空间映射至所述共享地址空间,形成所述共享缓存区。
可选地,所述装置900为位于CPU外部的硬件控制器。
可选地,所述硬件控制器用于执行以下操作中的一种或多种:所述共享缓存区的申请、所述共享缓存区的管理以及所述第一硬件接口的接口数据与所述第二硬件接口的接口数据的格式转换。
可选地,所述控制第一硬件接口将第一接口数据存储至共享缓存区,包括:与所述第一硬件接口的DMA控制器通信,以将所述第一接口数据存储至共享缓存区;所述将所述第一接口数据从所述共享缓存区传输至第二硬件接口,包括:与所述第二接口的DMA控制器通信,以将所述第一接口数据从所述共享缓存区传输至所述第二硬件接口。
图10为本申请实施例提供的一种控制接口数据的系统的结构示意图。图10所示的控制接口数据的系统1000,可以包括第一硬件接口1010,第二硬件接口1020、操作系统1030、控制装置1040。操作系统1030的内核空间包含第一硬件接口1010和第二硬件接口1020共享的共享缓存区。控制装置1040与第一硬件接口1010及第二硬件接口1020连接,以执行前文描述的各个方法中的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本申请实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种控制接口数据的方法,其特征在于,所述方法包括:
控制第一硬件接口将第一接口数据存储至共享缓存区;
将所述第一接口数据从所述共享缓存区传输至第二硬件接口;
其中,所述共享缓存区位于内核空间中,且所述共享缓存区由所述第一硬件接口及所述第二硬件接口共享。
2.根据权利要求1所述的方法,其特征在于,所述控制第一硬件接口将第一接口数据存储至共享缓存区之前,所述方法还包括:
在操作系统的物理地址内预留共享地址空间;
将所述第一硬件接口的地址空间和所述第二硬件接口的地址空间映射至所述共享地址空间,形成所述共享缓存区。
3.根据权利要求1所述的方法,其特征在于,所述方法由位于CPU外部的硬件控制器执行。
4.根据权利要求3所述的方法,其特征在于,所述硬件控制器用于执行以下操作中的一种或多种:所述共享缓存区的申请、所述共享缓存区的管理以及所述第一硬件接口的接口数据与所述第二硬件接口的接口数据的格式转换。
5.根据权利要求1所述的方法,其特征在于,所述控制第一硬件接口将第一接口数据存储至共享缓存区,包括:
与所述第一硬件接口的DMA控制器通信,以将所述第一接口数据存储至共享缓存区;
所述将所述第一接口数据从所述共享缓存区传输至第二硬件接口,包括:
与所述第二硬件接口的DMA控制器通信,以将所述第一接口数据从所述共享缓存区传输至所述第二硬件接口。
6.一种控制接口数据的装置,其特征在于,所述装置包括:
存储部件,用于存储代码;
控制部件,用于调用所述代码,以执行如下操作:
控制第一硬件接口将第一接口数据存储至共享缓存区;
将所述第一接口数据从所述共享缓存区传输至第二硬件接口;
其中,所述共享缓存区位于内核空间中,且所述共享缓存区由所述第一硬件接口及所述第二硬件接口共享。
7.根据权利要求6所述的装置,其特征在于,所述控制第一硬件接口将第一接口数据存储至共享缓存区之前,还包括:
在操作系统的物理地址内预留共享地址空间;
将所述第一硬件接口的地址空间和所述第二硬件接口的地址空间映射至所述共享地址空间,形成所述共享缓存区。
8.根据权利要求6所述的装置,其特征在于,所述装置为位于CPU外部的硬件控制器。
9.根据权利要求8所述的装置,其特征在于,所述硬件控制器用于执行以下操作中的一种或多种:所述共享缓存区的申请、所述共享缓存区的管理以及所述第一硬件接口的接口数据与所述第二硬件接口的接口数据的格式转换。
10.根据权利要求6所述的装置,其特征在于,所述控制第一硬件接口将第一接口数据存储至共享缓存区,包括:
与所述第一硬件接口的DMA控制器通信,以将所述第一接口数据存储至共享缓存区;
所述将所述第一接口数据从所述共享缓存区传输至第二硬件接口,包括:
与所述第二接口的DMA控制器通信,以将所述第一接口数据从所述共享缓存区传输至所述第二硬件接口。
11.一种控制接口数据的系统,其特征在于,所述系统包括:
第一硬件接口;
第二硬件接口;
操作系统,所述操作系统的内核空间包含所述第一硬件接口和所述第二硬件接口共享的共享缓存区;
控制装置,与所述第一硬件接口、所述第二硬件接口控制连接,以执行权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210197669.9A CN114610660A (zh) | 2022-03-01 | 2022-03-01 | 控制接口数据的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210197669.9A CN114610660A (zh) | 2022-03-01 | 2022-03-01 | 控制接口数据的方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610660A true CN114610660A (zh) | 2022-06-10 |
Family
ID=81860549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210197669.9A Withdrawn CN114610660A (zh) | 2022-03-01 | 2022-03-01 | 控制接口数据的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610660A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115167786A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置、系统、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101063963A (zh) * | 2006-04-26 | 2007-10-31 | 韩国电子通信研究院 | 数据零拷贝文件的移动方法 |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN104506379A (zh) * | 2014-12-12 | 2015-04-08 | 北京锐安科技有限公司 | 网络数据捕获方法和系统 |
CN107729159A (zh) * | 2017-09-29 | 2018-02-23 | 华为技术有限公司 | 一种共享内存的地址映射方法及装置 |
CN112995753A (zh) * | 2019-12-16 | 2021-06-18 | 中兴通讯股份有限公司 | 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质 |
-
2022
- 2022-03-01 CN CN202210197669.9A patent/CN114610660A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101063963A (zh) * | 2006-04-26 | 2007-10-31 | 韩国电子通信研究院 | 数据零拷贝文件的移动方法 |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN104506379A (zh) * | 2014-12-12 | 2015-04-08 | 北京锐安科技有限公司 | 网络数据捕获方法和系统 |
CN107729159A (zh) * | 2017-09-29 | 2018-02-23 | 华为技术有限公司 | 一种共享内存的地址映射方法及装置 |
CN112995753A (zh) * | 2019-12-16 | 2021-06-18 | 中兴通讯股份有限公司 | 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115167786A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置、系统、设备和介质 |
CN115167786B (zh) * | 2022-09-06 | 2023-01-24 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置、系统、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3748510A1 (en) | Network interface for data transport in heterogeneous computing environments | |
US11748256B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN107690622B (zh) | 实现硬件加速处理的方法、设备和系统 | |
US8370533B2 (en) | Executing flash storage access requests | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN109582223B (zh) | 一种内存数据迁移的方法及装置 | |
US9769081B2 (en) | Buffer manager and methods for managing memory | |
US9015380B2 (en) | Exchanging message data in a distributed computer system | |
US20200382590A1 (en) | Inter Operating System Memory Services over Communication Network Connections | |
CN114610660A (zh) | 控制接口数据的方法、装置及系统 | |
US11550504B2 (en) | System including an application processor and a data storage device providing data | |
US11972110B2 (en) | Storage device and storage system | |
US20230305749A1 (en) | Nonvolatile storage device, host, and method of controlling nonvolatile storage device | |
WO2023000696A1 (zh) | 一种资源分配方法及装置 | |
WO2024088150A1 (zh) | 基于开放通道固态盘的数据存储方法、装置、设备、介质及产品 | |
CN117917649A (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
CN118233530A (zh) | 数据传输方法、装置、电子设备、存储介质和程序产品 | |
KR20230013828A (ko) | 시스템 온 칩 및 시스템 온 칩의 동작 방법 | |
CN118113638A (zh) | Rdma数据传输方法及设备 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220610 |