CN115220936B - 一种多类传感器数据在控制器中零拷贝的方法和装置 - Google Patents

一种多类传感器数据在控制器中零拷贝的方法和装置 Download PDF

Info

Publication number
CN115220936B
CN115220936B CN202211146672.4A CN202211146672A CN115220936B CN 115220936 B CN115220936 B CN 115220936B CN 202211146672 A CN202211146672 A CN 202211146672A CN 115220936 B CN115220936 B CN 115220936B
Authority
CN
China
Prior art keywords
data
memory
address
shared
sensor data
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.)
Active
Application number
CN202211146672.4A
Other languages
English (en)
Other versions
CN115220936A (zh
Inventor
冯权
韩正勇
华炜
马也驰
张顺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202211146672.4A priority Critical patent/CN115220936B/zh
Publication of CN115220936A publication Critical patent/CN115220936A/zh
Application granted granted Critical
Publication of CN115220936B publication Critical patent/CN115220936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种多类传感器数据在控制器中零拷贝的方法和装置,该方法为:模块A创建并初始化两块共享内存;初始化为异构平台框架的API接口和软件包接口;创建模块B,打开共享文件并映射到虚拟地址空间,同时获取到传感器的最新数据,得到传感器数据地址;创建模块C,根据传感器数据地址,生成系统内存数据类型对象,保存该地址与生成的对象的映射关系;将系统内存数据类型对象转化为软件包接口支持的类型对象,再创建新的类型对象,保存图片地址与新的类型对象的映射关系;创建并获取框架支持的内存对象,保存传感器数据地址与该内存对象的映射关系;根据上述两个映射关系,数据使用程序直接获取到新的类型对象和内存对象,实现数据零拷贝。

Description

一种多类传感器数据在控制器中零拷贝的方法和装置
技术领域
本发明涉及人工智能领域算法模块的优化应用,尤其涉及一种多类传感器数据在控制器中零拷贝的方法和装置。
背景技术
人工智能领域的快速发展,让大量的应用算法能够在控制器中部署实现,随着各类算法的复杂度不断增加,消耗了越来越多的控制器资源,如何更好地优化各类基础模块,让算法模块在控制器中能更好地应用越来越重要。
现阶段的各类算法模块在控制器中的应用部署,大部分都是首先获取各类传感器的数据,
在CPU端对数据进行预处理操作,处理完的数据拷贝到GPU,在GPU端对各类算法进行推理执行,也有将获取的数据直接拷贝到GPU端做预处理和后续的推理执行操作。这两种实现方式都会带来一些问题。首先拷贝这个操作带来了很大的资源浪费,特别是对于自动驾驶领域,每个控制器通常连接着多个摄像头,每个摄像头的帧率通常为20~40帧,大量的拷贝操作使得CPU资源被占用,影响了其他模块的效率。另外,不管是通过CPU实现的拷贝还是通过DMA实现的拷贝,都会带来延时,而对于监控、无人驾驶、车路协同等领域,这些延时会带来更大的预测不准确性。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提出了一种多类传感器数据在控制器中零拷贝的方法和装置,其具体技术方案如下:
一种多类传感器数据在控制器中零拷贝的方法,包括以下步骤:
步骤一,在控制器内存RAM中,模块A通过共享内存文件名创建并初始化两块共享内存来保存并管理不同传感器的数据;
步骤二,将为异构平台编写程序的框架的API接口和对共享内存进行参数设置的软件包接口初始化;
步骤三,创建模块B,打开共享文件并映射到虚拟地址空间,同时获取到传感器的最新数据,得到传感器数据地址;
步骤四,创建模块C并初始化,根据传感器数据地址,生成作为缓冲帧的系统内存数据类型对象,保存该地址与生成的对象的映射关系;
步骤五,将系统内存数据类型对象转化为软件包接口支持的类型对象,通过软件包接口,创建新的类型对象,保存图片地址与新的类型对象的映射关系;
步骤六,根据新的类型对象和框架的API参数,创建并获取框架支持的内存对象,保存传感器数据地址与该内存对象的映射关系;
步骤七,根据传感器数据地址与新的类型对象的映射关系和不同传感器数据与内存对象的映射关系,数据使用程序直接获取到新的类型对象和内存对象,实现数据零拷贝。
进一步的,所述两块共享内存包括第一块共享内存和第二块共享内存,所述第一块共享内存用来保存传感器的数据,设置成多个环形的缓冲区,每个缓冲区域保存一路传感器的数据,保存满后,新的传感器数据依次覆盖旧的数据;所述第二块共享内存,存放传感器数据帧相关的信息,用来管理第一块共享内存。
进一步的,初始化第一块共享内存的方式具体为:对每一块数据区域,首先获取一块物理内存的描述符和返回值,然后将返回值与相机图片的大小作为变量传入mmap函数,返回虚拟地址,将该虚拟地址转为物理地址;接着获取共享文件描述符,通过共享内存管理函数将共享文件映射到物理内存地址上,将物理内存地址赋值给第二块共享内存中的数据地址。
进一步的,初始化第二块共享内存的方式具体为:首先存入一个结构体,然后预删除共享内存文件名对应的共享文件,接着重新打开共享内存文件名对应的共享文件,将其返回值与结构体的内存大小作为变量传入mmap函数,获得共享文件映射到第二块共享内存的指针,对第二块共享内存的数据全部赋值为0,并将包括互斥锁、条件变量的变量写入第二块共享内存。
进一步的,所述步骤三具体包括以下步骤:
步骤3.1,创建模块B,打开共享文件,并将其映射到虚拟地址空间,从而建立映射关系;
步骤3.2,当传感器有新数据存入,则获取传感器的最新帧的数据地址以及对应的数据时间戳,并更新模块A中的信息。
进一步的,所述步骤四具体包括以下步骤:
步骤4.1,创建模块C并初始化,判断是否获取传感器数据,获取则进入下一步,不获取则结束拷贝流程;
步骤4.2,模块C根据最新帧的数据地址,查找是否有对应数据记录Record,没有则创建新的数据记录;
步骤4.3,在创建新的数据记录后,依据传入的最新帧数据地址,以及相机图片的尺寸和格式,创建作为缓冲帧的系统内存数据类型对象即像素图pixmap,并缓存其与最新帧数据地址的映射,从而建立映射关系。
进一步的,所述步骤五具体为:
将像素图pixmap转化为软件包接口EGL支持的类型,并结合软件包接口EGL的参数,生成新的类型对象,并将其赋值给Record,保存新的类型对象与图片地址的映射关系。
进一步的,所述步骤六具体包括以下步骤:
步骤6.1,结合框架的参数和软件包接口的参数,创建框架支持的内存对象;
步骤6.2,通过框架的命令,获取从软件包接口创建的内存对象,使得内存对象可以被框架的所有API操作,保存传感器数据地址与内存对象的映射关系。
一种多类传感器数据在控制器中零拷贝的装置,包括一个或多个处理器,用于实现所述的一种多类传感器数据在控制器中零拷贝的方法。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现所述的一种多类传感器数据在控制器中零拷贝的方法。
本发明的有益效果:
本发明方法可将多个传感器数据,基于宏内核操作系统,在控制器中的CPU与GPU之间,实现内存的高效零拷贝共享,使得在GPU中,能够时时处理来自共享内存中的传感器数据,当传感器数据被多个进程使用时,可以省去多次拷贝过程,缩短应用运行时间,亦可大大降低CPU或者其他部件的负载。
附图说明
图1是本发明方法流程示意图;
图2为本发明实施例的一种多类传感器数据在控制器中零拷贝的方法的详细流程示意图;
图3为本发明实施例的一种多类传感器数据在控制器中零拷贝的装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
如图1和图2所示,本实施例提供了一种多类传感器数据在控制器中零拷贝的方法,具体包括以下步骤:
步骤一,在控制器内存RAM中,模块A通过创建并初始化两块共享内存来保存不同传感器的数据,其中两块共享内存包括:第一块共享内存a1和第二块共享内存a2
具体的:
模块A通过共享内存文件名在控制器内存RAM中创建两块共享内存,第一块共享内存a1用来保存多个传感器的数据,该共享内存可设置成多个环形的缓冲区,每块缓冲区域保存一路传感器的数据,比如有八路摄像头传感器,保留每路传感器过往十二帧的数据,则有96块数据区域,每块数据区域都有自己独立的共享内存文件名,则共有96个共享内存文件名,共享内存文件名在/dev/shmem目录下,一旦填充完毕,新的传感器数据就依次覆盖旧的数据。
第二块共享内存a2是一个结构体,存放传感器数据帧相关的信息,信息主要包含互斥锁、条件变量、最新帧的索引、相机图片大小、图片的时间戳、数据地址等参数,用来管理第一块共享内存a1,第二块共享内存a2内存的共享内存文件名也在/dev/shmem目录下。
第一块共享内存a1和第二块共享内存a2的初始化过程具体采用如下方式:
针对第一块共享内存a1,可分为96块不同文件名的数据区域,对每一块数据区域,首先通过posix_typed_mem_open函数获取一块物理内存的描述符,返回值为pt_fd,然后将返回值与相机图片的大小作为变量传入mmap函数,返回虚拟地址pointer,将该虚拟地址转为物理地址pt_offset;接着通过shm_unlink、shm_open函数得到共享文件描述符shm_fd,通过共享内存管理函数将共享内存中的文件映射到物理内存地址pt_offset上,将物理内存地址赋值给第二块共享内存a2中的数据地址framePysicalAddr,这样即可保证相机驱动过来经过解码后的图片是放入控制器的物理内存中。
针对第二块共享内存a2,将结构体ShmBuff保存在a2中,求得ShmBuff的内存大小为ShmSize,首先通过shm_unlink函数预删除共享内存文件名SHM_KEYS对应的共享文件,接着通过shm_open函数重新打开SHM_KEYS对应的共享文件,将打开共享内存文件名SHM_KEYS对应的共享文件的返回值与内存大小ShmSize作为变量传入mmap函数,获得共享内存文件名SHM_KEYS对应的共享文件映射到第二块共享内存a2的指针mAddr,对第二块共享内存a2的数据全部赋值为0,并将ShmBuff的互斥锁、条件变量的变量写入第二块共享内存a2
步骤二,将为异构平台编写程序的框架的API接口和对共享内存进行参数设置的软件包接口初始化。
具体的:
将为异构平台编写程序的框架的API接口初始化,所述框架例如为openCL框架,所述API接口的参数包括platform,device,context,queue等。
将对共享内存进行参数设置的软件包接口初始化,所述软件包接口例如为EGL软件包接口,所述参数主要包括egl_disp,eglCreateImage等。
创建模板缓存cl_egl_buffer,类型为vector<cl_mem>,容量为传感器的路数num。
步骤三,创建模块B,打开共享文件并映射到本进程的虚拟地址空间,同时获取到传感器的最新数据,得到传感器数据地址。
具体的:
步骤3.1,创建模块B,模块B为一个相机服务端的类,用于对第一块共享内存a1和第二块共享内存a2的数据进行初始化,以及获取数据最新帧的地址。
所述数据最新帧的地址的获取,具体采用以下方式:利用最新帧的索引mLastestIndex和指向第二块共享内存a2中的ShmBuff的数据指针mCamShmData来得到目前最新帧的图片数据在数据区域mFramesAddr上的位置;
模块B根据所述的共享内存文件名SHM_KEYS打开既有的对应的共享文件,并将共享文件映射到本进程的虚拟地址空间,对于第一块共享内存a1,mCamShmData数据指针接收mmap函数返回的地址,而对于第二块共享内存a2,mFramesAddr地址指针接收mmap函数返回的地址;
步骤3.2,进入while循环,结构体FrameInfo实例化对象lstFrmInfo,具体的,通过最新帧的索引frameIndex,当前帧的时间戳timeStamp和8路传感器最新帧数据地址framesAddr得到结构体FrameInfo。
将结构体lstFrmInfo作为参数传入模块B的成员函数getLatestFrame,锁管理器std::lock_guard<std::mutex> 管理ShmBuff的互斥锁,然后将ShmBuff的其余变量赋值给lstFrmInfo,获取八路传感器的最新帧的数据地址以及对应的数据时间戳,并更新模块A中的第二块共享内存a2的信息,以及设其中一路数据某一时刻的数据地址为vaddr。
步骤四,创建模块C并初始化,根据传感器数据地址,生成作为缓冲帧的系统内存数据类型对象,保存该地址与生成的对象的映射关系。
步骤4.1,创建模块C并初始化,模块C是实现传感器数据零拷贝的主要工具类,判断是否获取相机的数据,如果不获取则终止拷贝,如果要获取相机的数据,则进入下一步;
步骤4.2,根据模块B提供的8路传感器最新帧数据地址,模块C首先在最新帧数据地址mMapByAddress中查找是否有对应的数据记录Record,若不存在,则针对每一个对应的地址vaddr,都创建一个新的Record对象,并初始化;若存在,则返回对应的Record中对象cl_buf。get_cl_buffer函数可对8路传感器12帧缓存区共96个数据地址进行操作获得对应的cl_mem对象;Record包含cl_mem类对象cl_buf 和 EGLImageKHR类对象 eglimage。
步骤4.3,在创建新的Record对象后,依据传入的最新帧数据地址,以及相机图片的尺寸和格式,创建作为缓冲帧的系统内存数据类型对象即像素图pixmap,并缓存其与地址的映射,从而建立映射关系。
步骤五,将系统内存数据类型对象转化为软件包接口支持的类型对象,通过软件包接口,创建新的类型对象,保存图片地址与新的类型对象的映射关系。
调用get_cl_buffer函数中,将像素图pixmap转化为软件包接口EGL能够支持的类型,结合参数egl_disp, EGL_NATIVE_PIXMAP_KHR等,通过结构体mEglFunc中的函数peglCreateImage,生成EGLImageKHR类对象,并将其赋值给record中的变量eglimage。
通过clGetExtensionFunctionAddressForPlatform函数,实例化结构体mEglFunc中的成员函数clCreateFromEGLImageKHR_p。
步骤六,根据新的类型对象和框架的API参数,创建并获取框架支持的内存对象,保存传感器数据地址与该内存对象的映射关系;
步骤6.1,将OpenCL框架的上下文、mEglFunc的变量egl_disp、record结构体中的变量eglimage等作为输入参数,调用clCreateFromEGLImageKHR_p函数,生成cl_mem类对象,并将其赋值给结构体record中的cl_mem类对象cl_buf。
步骤6.2,调用OpenCL中的函数clEnqueueAcquireEGLObjectsKHR,将初始化OpenCL的参数queue、cl_buf作为输入,从而获取到从 EGL 资源创建的 OpenCL 内存对象,至此cl_buf就可以被OpenCL中的API使用了,get_cl_buffer返回cl_buf,被模板缓存cl_egl_buffer[i]中的第i路数据地址接收。
步骤七、根据传感器数据地址与新的类型对象的映射关系和不同传感器数据与内存对象的映射关系,数据使用程序直接获取到新的类型对象和内存对象,实现数据零拷贝。
当新一帧相机数据地址更新后,若该地址之前未出现过,则经过步骤五和步骤六的映射关系建立过程处理,当更新后的帧数据地址之前出现过时,就可根据步骤四中的mMapByAddress直接找到与这个地址对应的cl_buf,在GPU中就可直接调用框架openCL相关的命令使用这块数据,省去了数据拷贝所需要的时间,也节约了CPU的资源。
与前述一种多类传感器数据在控制器中零拷贝的方法的实施例相对应,本发明还提供了一种多类传感器数据在控制器中零拷贝的装置的实施例。
参见图3,本发明实施例提供的一种多类传感器数据在控制器中零拷贝的装置,包括一个或多个处理器,用于实现上述实施例中的一种多类传感器数据在控制器中零拷贝的方法。
本发明一种多类传感器数据在控制器中零拷贝的装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明一种多类传感器数据在控制器中零拷贝的装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种多类传感器数据在控制器中零拷贝的方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种多类传感器数据在控制器中零拷贝的方法,其特征在于,包括以下步骤:
步骤一,在控制器内存RAM中,模块A通过共享内存文件名创建并初始化两块共享内存来保存并管理不同传感器的数据;
所述两块共享内存包括第一块共享内存和第二块共享内存,所述第一块共享内存用来保存传感器的数据,设置成多个环形的缓冲区,每个缓冲区域保存一路传感器的数据,保存满后,新的传感器数据依次覆盖旧的数据;所述第二块共享内存,存放传感器数据帧相关的信息,用来管理第一块共享内存;
初始化第一块共享内存的方式具体为:对每一块数据区域,首先获取一块物理内存的描述符和返回值,然后将返回值与相机图片的大小作为变量传入mmap函数,返回虚拟地址,将该虚拟地址转为物理地址;接着获取共享文件描述符,通过共享内存管理函数将共享文件映射到物理内存地址上,将物理内存地址赋值给第二块共享内存中的数据地址;
初始化第二块共享内存的方式具体为:首先存入一个结构体,然后预删除共享内存文件名对应的共享文件,接着重新打开共享内存文件名对应的共享文件,将其返回值与结构体的内存大小作为变量传入mmap函数,获得共享文件映射到第二块共享内存的指针,对第二块共享内存的数据全部赋值为0,并将包括互斥锁、条件变量的变量写入第二块共享内存;
步骤二,将为异构平台编写程序的框架的API接口和对共享内存进行参数设置的软件包接口初始化,具体的:将为异构平台编写程序的框架的API接口初始化,所述框架为openCL框架,所述API接口的参数包括platform,device,context,queue;将对共享内存进行参数设置的软件包接口初始化,所述软件包接口为EGL软件包接口,所述参数包括egl_disp,eglCreateImage;创建模板缓存,定义类型,容量为传感器的路数;
步骤三,创建模块B,打开共享文件并映射到虚拟地址空间,同时获取到传感器的最新数据,得到传感器数据地址,具体包括以下步骤:
步骤3.1,创建模块B,打开共享文件,并将其映射到虚拟地址空间,从而建立映射关系;
步骤3.2,当传感器有新数据存入,则获取传感器的最新帧的数据地址以及对应的数据时间戳,并更新模块A中的信息;
步骤四,创建模块C并初始化,根据传感器数据地址,生成作为缓冲帧的系统内存数据类型对象,保存该地址与生成的对象的映射关系,具体包括以下步骤:
步骤4.1,创建模块C并初始化,判断是否获取传感器数据,获取则进入下一步,不获取则结束拷贝流程;
步骤4.2,模块C根据最新帧的数据地址,查找是否有对应数据记录Record,没有则创建新的数据记录;
步骤4.3,在创建新的数据记录后,依据传入的最新帧数据地址,以及相机图片的尺寸和格式,创建作为缓冲帧的系统内存数据类型对象即像素图pixmap,并缓存其与最新帧数据地址的映射,从而建立映射关系;
步骤五,将系统内存数据类型对象转化为软件包接口支持的类型对象,通过软件包接口,创建新的类型对象,保存图片地址与新的类型对象的映射关系,具体为:
将像素图pixmap转化为软件包接口EGL支持的类型,并结合软件包接口EGL的参数,生成新的类型对象,并将其赋值给Record,保存新的类型对象与图片地址的映射关系;
步骤六,根据新的类型对象和框架的API参数,创建并获取框架支持的内存对象,保存传感器数据地址与该内存对象的映射关系,具体包括以下步骤:
步骤6.1,结合框架的参数和软件包接口的参数,创建框架支持的内存对象;
步骤6.2,通过框架的命令,获取从软件包接口创建的内存对象,使得内存对象可以被框架的所有API操作,保存传感器数据地址与内存对象的映射关系;
步骤七,根据传感器数据地址与新的类型对象的映射关系和不同传感器数据与内存对象的映射关系,数据使用程序直接获取到新的类型对象和内存对象,实现数据零拷贝。
2.一种多类传感器数据在控制器中零拷贝的装置,其特征在于,包括一个或多个处理器,用于实现权利要求1所述的一种多类传感器数据在控制器中零拷贝的方法。
3.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1所述的一种多类传感器数据在控制器中零拷贝的方法。
CN202211146672.4A 2022-09-20 2022-09-20 一种多类传感器数据在控制器中零拷贝的方法和装置 Active CN115220936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211146672.4A CN115220936B (zh) 2022-09-20 2022-09-20 一种多类传感器数据在控制器中零拷贝的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211146672.4A CN115220936B (zh) 2022-09-20 2022-09-20 一种多类传感器数据在控制器中零拷贝的方法和装置

Publications (2)

Publication Number Publication Date
CN115220936A CN115220936A (zh) 2022-10-21
CN115220936B true CN115220936B (zh) 2023-01-10

Family

ID=83617586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211146672.4A Active CN115220936B (zh) 2022-09-20 2022-09-20 一种多类传感器数据在控制器中零拷贝的方法和装置

Country Status (1)

Country Link
CN (1) CN115220936B (zh)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963244A (en) * 1996-11-21 1999-10-05 Xerox Corporation Optimal reconstruction of tone reproduction curve
US5956754A (en) * 1997-03-03 1999-09-21 Data General Corporation Dynamic shared user-mode mapping of shared memory
US7454477B2 (en) * 2005-05-16 2008-11-18 Microsoft Corporation Zero-copy transfer of memory between address spaces
CN104333533B (zh) * 2014-09-12 2017-09-08 北京华电天益信息科技有限公司 一种用于工业控制系统网络的数据包零拷贝获取方法
CN107145399B (zh) * 2017-04-22 2021-03-02 华为技术有限公司 一种共享内存管理方法及共享内存管理设备
US11514355B2 (en) * 2017-06-28 2022-11-29 General Electric Company Flat representation of machine learning model
CN108197038A (zh) * 2018-02-01 2018-06-22 深圳市风云实业有限公司 一种Linux数据传输方法、装置和用户终端
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
CN110519497B (zh) * 2019-08-28 2020-11-17 中国大恒(集团)有限公司北京图像视觉技术分公司 一种基于vdma的零拷贝触发采集装置及方法
US20220283880A1 (en) * 2021-03-04 2022-09-08 The Mitre Corporation Systems and methods for enabling concurrent applications to perform extreme wideband digital signal processing with multichannel coherency
US20210326270A1 (en) * 2021-06-26 2021-10-21 Intel Corporation Address translation at a target network interface device
CN114968616A (zh) * 2022-04-21 2022-08-30 中国人民解放军军事科学院国防科技创新研究院 一种用于传感器数据的多进程间零拷贝通信方法及装置

Also Published As

Publication number Publication date
CN115220936A (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
CN110764901B (zh) 基于gpu资源的数据处理方法、电子设备及系统
EP3667496B1 (en) Distributed computing system, data transmission method and device in distributed computing system
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
CA2137488C (en) Coexecuting method and means for performing parallel processing in conventional types of data processing systems
US10248415B2 (en) Dynamic code generation and memory management for component object model data constructs
US8788787B2 (en) Systems, methods and architecture for facilitating software access to acceleration technology
EP0737916B1 (en) Methods, apparatus and data structures for managing objects
CN101150488B (zh) 一种零拷贝网络报文接收方法
US8316220B2 (en) Operating processors over a network
CN111309649B (zh) 一种数据传输和任务处理方法、装置及设备
KR102225768B1 (ko) 명령 실행 방법 및 장치
CN112035272A (zh) 进程间通信的方法、装置以及计算机设备
CN111880866B (zh) 跨进程回调执行方法、装置、设备及存储介质
CN107368379B (zh) 面向EVP的跨Guest OS进程间通信方法及系统
CN114327137A (zh) 基于车机多操作系统的触控方法、装置和计算机设备
Campbell et al. Choices: A parallel object-oriented operating system
CN113312182B (zh) 一种云计算节点、文件处理方法及装置
CN116820764A (zh) 一种计算资源的提供方法、系统、电子设备及存储介质
JP2005063449A (ja) オブジェクトからオブジェクトへのJavaネイティブインタフェースマッピングの方法及び装置
CN116795647A (zh) 一种数据库异构资源管理与调度方法、装置、设备及介质
CN113992854A (zh) 图像预览方法、装置、电子设备和计算机可读存储介质
CN115220936B (zh) 一种多类传感器数据在控制器中零拷贝的方法和装置
CN117667451A (zh) 一种面向数据对象的远程过程调用方法及相关设备
CN116680209A (zh) 基于wasm的多智能合约实例管理方法
CN117056123A (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
GR01 Patent grant
GR01 Patent grant