CN112214444A - 一种核间通信方法、arm、dsp及终端 - Google Patents
一种核间通信方法、arm、dsp及终端 Download PDFInfo
- Publication number
- CN112214444A CN112214444A CN202011017483.8A CN202011017483A CN112214444A CN 112214444 A CN112214444 A CN 112214444A CN 202011017483 A CN202011017483 A CN 202011017483A CN 112214444 A CN112214444 A CN 112214444A
- Authority
- CN
- China
- Prior art keywords
- storage space
- task
- address pointer
- cache storage
- processed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000006854 communication Effects 0.000 title claims abstract description 55
- 238000004891 communication Methods 0.000 title claims abstract description 47
- 238000013507 mapping Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Abstract
本申请适用于通信技术领域,提供一种核间通信方法、ARM、DSP及终端,其中方法包括:获取指向存储有待处理任务的第一缓存存储空间的第一虚拟地址指针;根据所述物理地址与虚拟地址之间的映射关系,将所述第一虚拟地址指针转译为第一物理地址指针;将所述第一物理地址指针写入至共享存储区域;所述共享存储区域用于将所述第一物理地址指针传递至数字信号处理器DSP。该方案通过传递任务数据的存储地址指针,实现对任务数据的获取,降低核间通信过程中的数据负载量,提升核间通讯效率。
Description
技术领域
本申请属于通信技术领域,尤其涉及一种核间通信方法、ARM、DSP及终端。
背景技术
机器视觉芯片是现代安防领域系统中必不可少的一个部分。机器视觉芯片中通常需要嵌入强大的数字信号处理器(Digital Signal Processing,DSP)对输入图像进行处理和分析,同时它也需要采用高级精简指令集处理器(Advanced RISC Machines,ARM)对DSP进行协同管理和控制工作,目前最大的一个设计挑战是:如何最高效率地实现ARM和DSP之间的通信和协同工作。
传统设计中,ARM和DSP之间划分一块专用的SharedRAM(公用随存)存储区,采用异构处理器核间通信设备MailBox中断触发通信。ARM上如果有线程发起DSP任务请求,则ARM需要把任务携带的参数复制到SharedRAM中,DSP从SharedRAM处收到任务后在内部申请任务执行所需要的DSP存储空间,处理完毕后,释放DSP存储空间,再把结果写到SharedRAM存储区中,通知ARM任务完成。
该过程中,往往伴随着任务数据、任务处理结果数据等数据内容在ARM、SharedRAM及DSP之间的多次拷贝传递,导致核间通讯效率降低。
发明内容
本申请实施例提供了一种核间通信方法、ARM、DSP及终端,以解决现有技术中ARM和DSP的核间通信往伴随着数据的多次拷贝传递,导致核间通讯效率降低的问题。
本申请实施例的第一方面提供了一种核间通信方法,应用于高级精简指令集处理器ARM,包括:
获取指向第一缓存存储空间的第一虚拟地址指针;所述第一缓存存储空间中存储有待处理任务;所述第一缓存存储空间的物理地址连续;
根据所述物理地址与虚拟地址之间的映射关系,将所述第一虚拟地址指针转译为第一物理地址指针;
将所述第一物理地址指针写入至共享存储区域;所述共享存储区域用于将所述第一物理地址指针传递至数字信号处理器DSP。
本申请实施例的第二方面提供了一种核间通信方法,应用于DSP,包括:
获取待处理任务;
执行所述待处理任务,得到所述待处理任务的执行结果,并将所述执行结果存储至第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针;所述第二缓存存储空间的物理地址连续;
根据所述物理地址与虚拟地址之间的映射关系,将所述第二物理地址指针转译为第二虚拟地址指针;
将所述第二虚拟地址指针写入至共享存储区域;所述共享存储区域用于将所述第二虚拟地址指针传递至ARM。
本申请实施例的第三方面提供了一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本申请的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得所述终端执行上述第一方面所述方法的步骤。
由上可见,本申请实施例中,通过获取指向存储有待处理任务的第一缓存存储空间的第一虚拟地址指针,根据物理地址与虚拟地址之间的映射关系,将第一虚拟地址指针转译为第一物理地址指针;将第一物理地址指针写入至共享存储区域,以使共享存储区域将该第一物理地址指针传递至数字信号处理器DSP,使DSP能够在获取到第一物理地址指针后,通过指针的方式找到第一缓存存储空间,进而能够获取待处理任务,避免任务数据本身的拷贝传递,通过传递任务数据的存储地址指针,实现对任务数据的获取,降低核间通信过程中的数据负载量,提升核间通讯效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种核间通信方法的流程图;
图2是本申请实施例提供的另一种核间通信方法的流程图;
图3是本申请实施例提供的核间通信交互图;
图4是本申请实施例提供的一种ARM的结构图;
图5是本申请实施例提供的一种DSP的结构图;
图6是本申请实施例提供的一种终端的结构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本申请实施例提供的一种核间通信方法的流程图。如图1所示,一种核间通信方法,应用于高级精简指令集处理器ARM,该方法包括以下步骤:
步骤101,获取指向第一缓存存储空间的第一虚拟地址指针。
该第一缓存存储空间中存储有待处理任务;该第一缓存存储空间的物理地址连续。
该第一缓存存储空间中存储有ARM写入的待处理任务,该待处理任务为需要被DSP执行的处理任务。在具体实施过程中,可以是由ARM获取待处理任务,并将待处理任务存储至第一缓存存储空间。
这里,由于本实施方式中,核间通信方法的执行主体为ARM,ARM的用户态存储分配的地址空间为虚拟地址,因此在ARM中对于缓存存储空间的获取,具体表现为获取指向缓存存储空间的虚拟地址指针。
其中,该待处理任务包括图像缩放任务、图像翻转任务、图像压缩任务及图像裁剪任务中的至少一项。
步骤102,根据该物理地址与虚拟地址之间的映射关系,将第一虚拟地址指针转译为第一物理地址指针。
其中,物理地址与虚拟地址之间的映射关系,可以是在ARM初始化时建立生成。该映射关系具体为线性映射关系。
该第一物理地址指针同样指向存储有待处理任务的第一缓存存储空间。该第一物理地址指针为供DSP从第一缓存存储空间中对待处理任务进行获取。
步骤103,将第一物理地址指针写入至共享存储区域。
该共享存储区域用于将第一物理地址指针传递至数字信号处理器DSP。
结合图3所示,该共享存储区域即为图中的Shared Memory。其中,共享存储区域连接ARM及DSP,用于实现ARM及DSP之间的核间通信,具体为实现两者之间的指针信息的传递。
具体实现时,ARM可以是通过设置的DSP驱动发送模块将第一物理地址指针写入至共享存储区域。
该过程中,将第一物理地址指针写入至共享存储区域,借助共享存储区域将地址指针进行传递,实现地址指针所指向的任务数据在ARM与DSP之间的传递,改变现有的借助共享存储区域对数据本身进行多次拷贝实现数据传递的处理方式,降低核间通信过程中的数据负载量,提升核间通讯效率。
其中,进一步地,该将第一物理地址指针写入至共享存储区域之后,还包括:
从共享存储区域中读取指向第二缓存存储空间的第二虚拟地址指针;该第二缓存存储空间中存储有DSP执行待处理任务的执行结果,该第二虚拟地址指针由DSP写入至共享存储区域;根据第二虚拟地址指针,从第二缓存存储空间中读取待处理任务的执行结果。
结合图3所示,ARM通过DSP驱动接收模块从图中的Shared Memory中读取第二虚拟地址指针。通过对共享存储区域中地址指针的获取,实现对指针指向的第二缓存存储空间中待处理任务的执行结果的获取,实现地址指针所指向的任务数据的处理结果在DSP与ARM之间的传递。
该处理过程改变现有的借助共享存储区域对数据本身进行多次拷贝实现数据传递的处理方式,降低核间通信过程中的数据负载量,提升核间通讯效率。
更进一步地,现有技术中,DSP收到任务后在内部申请任务执行所需要的DSP存储空间,处理完毕后,释放DSP存储空间。该过程中,DSP在进行任务执行及返回处理结果的同时,还需要管理所占用内存空间的申请及释放,造成DSP计算效率降低。
为解决现有的核间通信过程中存在的上述问题,本申请实施例中还提供一可选的具体实施方式。
具体地,在执行前述步骤101时,该步骤获取指向第一缓存存储空间的第一虚拟地址指针,包括:
获取输入的任务配置数据;基于该任务配置数据,构建待处理任务并申请缓存存储空间;该缓存存储空间中包括第一缓存存储空间、第二缓存存储空间及用于DSP执行待处理任务的第三缓存存储空间,该第二缓存存储空间及第三缓存存储空间的物理地址均连续;将待处理任务及缓存存储空间的空间信息存储至第一缓存存储空间,生成指向第一缓存存储空间的第一虚拟地址指针。
其中,第二缓存存储空间用于供DSP存储待处理任务的执行结果。
该过程的实施,由ARM实现对缓存存储空间的统一管理,这里为对缓存存储空间的统一申请,申请得到供ARM自身使用的第一缓存存储空间,供DSP使用的第二缓存存储空间及第三缓存存储空间,并将第二缓存存储空间及第三缓存存储空间的空间信息同待处理任务的存储地址的地址指针一同传递给DSP。
具体地,结合图3所示,可以事先在系统双倍速率同步动态随机存储器(DoubleData Rate,DDR)进行内存规划,预留足够的物理地址连续存储池Phy_Pool,用于ARM和DSP的消息通信和DSP使用。
每产生一个待处理任务,ARM需要基于该待处理任务进行缓存存储空间申请,具体为ARM通过存储管理模块从DDR中请求物理地址连续的第一缓存存储空间、第二缓存存储空间及第三缓存存储空间。
该实施方式中,将DSP的存储空间管理改变为在ARM端进行,将DSP从存储空间管理操作中解放出来,减去DSP进行任务处理及反馈过程中的额外消耗,提升DSP的计算效率及计算结果反馈速度。
更进一步地,该根据所述第二虚拟地址指针,从所述第二缓存存储空间中读取所述待处理任务的执行结果之后,还包括:
对缓存存储空间进行释放。
该过程进一步扩展了ARM端的存储空间管理操作,在实现缓存存储空间申请的同时,在获取到待处理任务的执行结果之后实现对申请的缓存存储空间的释放。将DSP从存储空间管理操作中解放出来,减去DSP进行任务处理及反馈过程中的额外消耗,提升DSP的计算效率及计算结果反馈速度。
本申请实施例中,通过获取指向存储有待处理任务的第一缓存存储空间的第一虚拟地址指针,根据物理地址与虚拟地址之间的映射关系,将第一虚拟地址指针转译为第一物理地址指针;将第一物理地址指针写入至共享存储区域,以使共享存储区域将该第一物理地址指针传递至数字信号处理器DSP,使DSP能够在获取到第一物理地址指针后,通过指针的方式找到第一缓存存储空间,进而能够获取待处理任务,避免任务数据本身的拷贝传递,通过传递任务数据的存储地址指针,实现对任务数据的获取,降低核间通信过程中的数据负载量,提升核间通讯效率。
本申请实施例中还提供了一种核间通信方法的不同实施方式。
参见图2,图2是本申请实施例提供的一种核间通信方法的流程图二。如图2所示,一种核间通信方法,应用于数字信号处理器DSP,该方法包括以下步骤:
步骤201,获取待处理任务。
该待处理任务具体为由ARM传递而来的待处理任务。
作为一可选的实施方式,该获取待处理任务,包括:
从共享存储区域中读取指向第一缓存存储空间的第一物理地址指针。该第一缓存存储空间中存储有待处理任务,该第一缓存存储空间的物理地址连续,该第一物理地址指针为由ARM写入至共享存储区域;根据该第一物理地址指针,从第一缓存存储空间中读取待处理任务。
其中,共享存储区域连接ARM及DSP,用于实现ARM及DSP之间的核间通信,具体为实现两者之间的指针信息的传递。
其中,该待处理任务包括图像缩放任务、图像翻转任务、图像压缩任务及图像裁剪任务中的至少一项。
该过程中,借助共享存储区域将地址指针进行传递,通过传递的指针实现任务数据在ARM与DSP之间的传递,改变现有的借助共享存储区域对数据本身进行多次拷贝实现数据传递的处理方式,降低核间通信过程中的数据负载量,提升核间通讯效率。
步骤202,执行待处理任务,得到待处理任务的执行结果,并将执行结果存储至第二缓存存储空间,生成指向第二缓存存储空间的第二物理地址指针。
该第二缓存存储空间的物理地址连续。
待处理任务的执行结果具体可以是图像处理后得到的目标图像。
这里,该第二缓存存储空间可以是由DSP申请得到或者是由ARM申请得到。
该过程中,将待处理任务处理后得到的执行结果直接存储至与共享存储区域不同的存储空间中,即第二缓存存储空间,且对该第二缓存存储空间的地址指针进行获取,以便于后续进行指针的传递,改变现有的对数据本身直接进行拷贝传递的操作过程。
作为一可选的实施方式,第一物理地址指针中还存储有由ARM申请的缓存存储空间的空间信息;该执行待处理任务,得到待处理任务的执行结果,并将执行结果存储至第二缓存存储空间,生成指向第二缓存存储空间的第二物理地址指针,包括:
根据第一物理地址指针,从第一缓存存储空间中读取缓存存储空间的空间信息;该缓存存储空间中包括第二缓存存储空间及用于执行待处理任务的第三缓存存储空间,第三缓存存储空间的物理地址连续;通过该空间信息中指示的第三缓存存储空间执行待处理任务,并将待处理任务的执行结果存储至空间信息中指示的第二缓存存储空间,生成指向第二缓存存储空间的第二物理地址指针。
该缓存存储空间的空间信息为对缓存存储空间中包括的第二缓存存储空间及第三缓存存储空间进行描述的描述信息,例如不同缓存存储空间的起始地址、结束地址、空间大小等等。
该包括第二缓存存储空间及第三缓存存储空间在内的缓存存储空间为由ARM申请得到。该缓存存储空间的空间信息为及待处理任务为由ARM写入至第一缓存存储空间。
该过程中,由ARM实现对缓存存储空间的统一管理,申请得到供DSP使用的第二缓存存储空间及第三缓存存储空间,并将第二缓存存储空间及第三缓存存储空间的空间信息同待处理任务的存储地址的地址指针一同传递给DSP。
该实施方式,将DSP的存储空间管理改变为在ARM端进行,将DSP从存储空间管理操作中解放出来,减去DSP进行任务处理及反馈过程中的额外消耗,提升DSP的计算效率及计算结果反馈速度。
步骤203,根据物理地址与虚拟地址之间的映射关系,将第二物理地址指针转译为第二虚拟地址指针。
其中,物理地址与虚拟地址之间的映射关系,可以是在ARM初始化时建立生成。该映射关系具体为线性映射关系。
该映射关系可以是在DSP初始化时由ARM共享得到。该共享过程可以是ARM将该映射关系存储至共享存储区域,DSP从共享存储区域中对该映射关系进行读取得到。
步骤204,将第二虚拟地址指针写入至共享存储区域。
该共享存储区域用于将第二虚拟地址指针传递至ARM。
该过程结合图3所示,DSP通过DSP消息接收模块从共享存储区域中获取第一物理地址指针,DSP任务处理模块对通过第一物理地址指针获取到的待处理任务进行处理并将处理结果存储至第二缓存存储空间,将第二缓存存储空间的物理地址通过地址转译模块转译为虚拟地址指针,并通过DSP消息发送模块将该虚拟地址指针写入共享存储区域,以使ARM中的DSP驱动接收模块基于该虚拟地址指针获取任务处理结果,完成从ARM将待处理任务传递至DSP并由DSP处理任务后将结果反馈至ARM的整个处理过程。
本申请实施例中,获取待处理任务并执行,将执行结果存储至第二缓存存储空间,并获取指向第二缓存存储空间的第二物理地址指针,根据物理地址与虚拟地址之间的映射关系,将第二物理地址指针转译为第二虚拟地址指针,将第二虚拟地址指针写入至共享存储区域,使DSP能够通过指针的方式获取待处理任务,并通过指针方式将任务处理结果反馈给ARM,避免任务数据本身的拷贝传递,通过传递任务数据的存储地址指针,实现对任务数据的获取,降低核间通信过程中的数据负载量,提升核间通讯效率。
参见图4,图4是本申请实施例提供的一种ARM的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
该ARM400包括:
第一获取模块401,用于获取指向第一缓存存储空间的第一虚拟地址指针;所述第一缓存存储空间中存储有待处理任务;所述第一缓存存储空间的物理地址连续;
第一地址转译模块402,用于根据所述物理地址与虚拟地址之间的映射关系,将所述第一虚拟地址指针转译为第一物理地址指针;
第一输出模块403,用于将所述第一物理地址指针写入至共享存储区域;所述共享存储区域用于将所述第一物理地址指针传递至数字信号处理器DSP。
该ARM400还包括:
第一读取模块,用于从所述共享存储区域中读取指向第二缓存存储空间的第二虚拟地址指针;所述第二缓存存储空间中存储有所述DSP执行所述待处理任务的执行结果;所述第二虚拟地址指针由所述DSP写入至所述共享存储区域;
第二读取模块,用于根据所述第二虚拟地址指针,从所述第二缓存存储空间中读取所述待处理任务的执行结果。
其中,第一获取模块401,具体用于:
获取输入的任务配置数据;
基于所述任务配置数据,构建所述待处理任务并申请缓存存储空间;所述缓存存储空间中包括第一缓存存储空间、所述第二缓存存储空间及用于所述DSP执行所述待处理任务的第三缓存存储空间,所述第二缓存存储空间及所述第三缓存存储空间的物理地址均连续;
将所述待处理任务及所述缓存存储空间的空间信息存储至所述第一缓存存储空间,生成指向所述第一缓存存储空间的第一虚拟地址指针。
其中,该ARM400还包括:
存储释放模块,用于对所述缓存存储空间进行释放。
其中,待处理任务包括图像缩放任务、图像翻转任务、图像压缩任务及图像裁剪任务中的至少一项。
本申请实施例提供的ARM能够实现前述第一种核间通信方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
参见图5,图5是本申请实施例提供的一种DSP的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
该DSP500包括:
第二获取模块501,用于获取待处理任务;
生成模块502,用于执行所述待处理任务,得到所述待处理任务的执行结果,并将所述执行结果存储至第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针;所述第二缓存存储空间的物理地址连续;
第二地址转译模块503,用于根据所述物理地址与虚拟地址之间的映射关系,将所述第二物理地址指针转译为第二虚拟地址指针;
第二输出模块504,用于将所述第二虚拟地址指针写入至共享存储区域;所述共享存储区域用于将所述第二虚拟地址指针传递至ARM。
其中,所述第二获取模块501,具体用于:
从所述共享存储区域中读取指向第一缓存存储空间的第一物理地址指针;所述第一缓存存储空间中存储有待处理任务,所述第一缓存存储空间的物理地址连续,所述第一物理地址指针为由ARM写入至所述共享存储区域;
根据所述第一物理地址指针,从所述第一缓存存储空间中读取所述待处理任务。
其中,所述第一物理地址指针中还存储有由所述ARM申请的缓存存储空间的空间信息;所述生成模块502,具体用于:
根据所述第一物理地址指针,从所述第一缓存存储空间中读取缓存存储空间的空间信息;所述缓存存储空间中包括第二缓存存储空间及用于执行所述待处理任务的第三缓存存储空间,所述第三缓存存储空间的物理地址连续;
通过所述空间信息中指示的所述第三缓存存储空间执行所述待处理任务,并将所述待处理任务的执行结果存储至所述空间信息中指示的所述第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针。
其中,该待处理任务包括图像缩放任务、图像翻转任务、图像压缩任务及图像裁剪任务中的至少一项。
本申请实施例提供的DSP能够实现前述第二种核间通信方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图6是本申请实施例提供的一种终端的结构图。如该图6所示,该实施例的终端6包括:至少一个处理器60(图6中仅示出一个)、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意各个方法实施例中的步骤。
所述终端6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端6的示例,并不构成对终端6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
所述处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述终端6的内部存储单元,例如终端6的硬盘或内存。所述存储器61也可以是所述终端6的外部存储设备,例如所述终端6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在终端上运行时,使得所述终端执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (15)
1.一种核间通信方法,应用于高级精简指令集处理器ARM,其特征在于,包括:
获取指向第一缓存存储空间的第一虚拟地址指针;所述第一缓存存储空间中存储有待处理任务;所述第一缓存存储空间的物理地址连续;
根据所述物理地址与虚拟地址之间的映射关系,将所述第一虚拟地址指针转译为第一物理地址指针;
将所述第一物理地址指针写入至共享存储区域;所述共享存储区域用于将所述第一物理地址指针传递至数字信号处理器DSP。
2.根据权利要求1所述的核间通信方法,其特征在于,所述将所述第一物理地址指针写入至共享存储区域之后,还包括:
从所述共享存储区域中读取指向第二缓存存储空间的第二虚拟地址指针;所述第二缓存存储空间中存储有所述DSP执行所述待处理任务的执行结果;所述第二虚拟地址指针由所述DSP写入至所述共享存储区域;
根据所述第二虚拟地址指针,从所述第二缓存存储空间中读取所述待处理任务的执行结果。
3.根据权利要求2所述的核间通信方法,其特征在于,所述获取指向第一缓存存储空间的第一虚拟地址指针,包括:
获取输入的任务配置数据;
基于所述任务配置数据,构建所述待处理任务并申请缓存存储空间;所述缓存存储空间中包括所述第一缓存存储空间、所述第二缓存存储空间及用于所述DSP执行所述待处理任务的第三缓存存储空间,所述第二缓存存储空间及所述第三缓存存储空间的物理地址均连续;
将所述待处理任务及所述缓存存储空间的空间信息存储至所述第一缓存存储空间,生成指向所述第一缓存存储空间的第一虚拟地址指针。
4.根据权利要求3所述的核间通信方法,其特征在于,所述根据所述第二虚拟地址指针,从所述第二缓存存储空间中读取所述待处理任务的执行结果之后,还包括:
对所述缓存存储空间进行释放。
5.根据权利要求1所述的核间通信方法,其特征在于,所述待处理任务包括图像缩放任务、图像翻转任务、图像压缩任务及图像裁剪任务中的至少一项。
6.一种核间通信方法,应用于DSP,其特征在于,包括:
获取待处理任务;
执行所述待处理任务,得到所述待处理任务的执行结果,并将所述执行结果存储至第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针;所述第二缓存存储空间的物理地址连续;
根据所述物理地址与虚拟地址之间的映射关系,将所述第二物理地址指针转译为第二虚拟地址指针;
将所述第二虚拟地址指针写入至共享存储区域;所述共享存储区域用于将所述第二虚拟地址指针传递至ARM。
7.根据权利要求6所述的核间通信方法,其特征在于,所述获取待处理任务,包括:
从所述共享存储区域中读取指向第一缓存存储空间的第一物理地址指针;所述第一缓存存储空间中存储有待处理任务,所述第一缓存存储空间的物理地址连续,所述第一物理地址指针为由ARM写入至所述共享存储区域;
根据所述第一物理地址指针,从所述第一缓存存储空间中读取所述待处理任务。
8.根据权利要求7所述的核间通信方法,其特征在于,所述第一物理地址指针中还存储有由所述ARM申请的缓存存储空间的空间信息;所述执行所述待处理任务,得到所述待处理任务的执行结果,并将所述执行结果存储至第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针,包括:
根据所述第一物理地址指针,从所述第一缓存存储空间中读取缓存存储空间的空间信息;所述缓存存储空间中包括第二缓存存储空间及用于执行所述待处理任务的第三缓存存储空间,所述第三缓存存储空间的物理地址连续;
通过所述空间信息中指示的所述第三缓存存储空间执行所述待处理任务,并将所述待处理任务的执行结果存储至所述空间信息中指示的所述第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针。
9.根据权利要求6所述的核间通信方法,其特征在于,所述待处理任务包括图像缩放任务、图像翻转任务、图像压缩任务及图像裁剪任务中的至少一项。
10.一种ARM,其特征在于,包括:
第一获取模块,用于获取指向第一缓存存储空间的第一虚拟地址指针;所述第一缓存存储空间中存储有待处理任务;所述第一缓存存储空间的物理地址连续;
第一地址转译模块,用于根据所述物理地址与虚拟地址之间的映射关系,将所述第一虚拟地址指针转译为第一物理地址指针;
第一输出模块,用于将所述第一物理地址指针写入至共享存储区域;所述共享存储区域用于将所述第一物理地址指针传递至DSP。
11.根据权利要求10所述的ARM,其特征在于,还包括:
第一读取模块,用于从所述共享存储区域中读取指向第二缓存存储空间的第二虚拟地址指针;所述第二缓存存储空间中存储有所述DSP执行所述待处理任务的执行结果;所述第二虚拟地址指针由所述DSP写入至所述共享存储区域;
第二读取模块,用于根据所述第二虚拟地址指针,从所述第二缓存存储空间中读取所述待处理任务的执行结果。
12.一种DSP,其特征在于,包括:
第二获取模块,用于获取待处理任务;
生成模块,用于执行所述待处理任务,得到所述待处理任务的执行结果,并将所述执行结果存储至第二缓存存储空间,生成指向所述第二缓存存储空间的第二物理地址指针;所述第二缓存存储空间的物理地址连续;
第二地址转译模块,用于根据所述物理地址与虚拟地址之间的映射关系,将所述第二物理地址指针转译为第二虚拟地址指针;
第二输出模块,用于将所述第二虚拟地址指针写入至共享存储区域;所述共享存储区域用于将所述第二虚拟地址指针传递至ARM。
13.根据权利要求12所述的DSP,其特征在于,所述第二获取模块,具体用于:
从所述共享存储区域中读取指向第一缓存存储空间的第一物理地址指针;所述第一缓存存储空间中存储有待处理任务,所述第一缓存存储空间的物理地址连续,所述第一物理地址指针为由ARM写入至所述共享存储区域;
根据所述第一物理地址指针,从所述第一缓存存储空间中读取所述待处理任务。
14.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述方法的步骤。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011017483.8A CN112214444A (zh) | 2020-09-24 | 2020-09-24 | 一种核间通信方法、arm、dsp及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011017483.8A CN112214444A (zh) | 2020-09-24 | 2020-09-24 | 一种核间通信方法、arm、dsp及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214444A true CN112214444A (zh) | 2021-01-12 |
Family
ID=74051847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011017483.8A Pending CN112214444A (zh) | 2020-09-24 | 2020-09-24 | 一种核间通信方法、arm、dsp及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214444A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023134735A1 (zh) * | 2022-01-14 | 2023-07-20 | 华为云计算技术有限公司 | 计算设备、数据处理方法、系统及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144422A1 (en) * | 2003-12-30 | 2005-06-30 | Mcalpine Gary L. | Virtual to physical address translation |
US20090240967A1 (en) * | 2008-03-18 | 2009-09-24 | Qualcomm Incorporation | Efficient low power retrieval techniques of media data from non-volatile memory |
CN103166873A (zh) * | 2011-12-12 | 2013-06-19 | 中兴通讯股份有限公司 | 核间通信的方法及核处理器 |
US20130219130A1 (en) * | 2012-02-17 | 2013-08-22 | Nokia Corporation | Method, apparatus, and computer program product for inter-core communication in multi-core processors |
US8635412B1 (en) * | 2010-09-09 | 2014-01-21 | Western Digital Technologies, Inc. | Inter-processor communication |
CN105431827A (zh) * | 2013-08-07 | 2016-03-23 | 高通股份有限公司 | 针对异构多处理器系统中的共享存储区域的动态地址协商 |
CN109460373A (zh) * | 2017-09-06 | 2019-03-12 | 阿里巴巴集团控股有限公司 | 一种数据共享方法、终端设备和存储介质 |
US20190114266A1 (en) * | 2004-12-22 | 2019-04-18 | Intel Corporation | System and methods exchanging data between processors through concurrent shared memory |
US10761741B1 (en) * | 2016-04-07 | 2020-09-01 | Beijing Baidu Netcome Science and Technology Co., Ltd. | Method and system for managing and sharing data using smart pointers |
-
2020
- 2020-09-24 CN CN202011017483.8A patent/CN112214444A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144422A1 (en) * | 2003-12-30 | 2005-06-30 | Mcalpine Gary L. | Virtual to physical address translation |
US20190114266A1 (en) * | 2004-12-22 | 2019-04-18 | Intel Corporation | System and methods exchanging data between processors through concurrent shared memory |
US20090240967A1 (en) * | 2008-03-18 | 2009-09-24 | Qualcomm Incorporation | Efficient low power retrieval techniques of media data from non-volatile memory |
US8635412B1 (en) * | 2010-09-09 | 2014-01-21 | Western Digital Technologies, Inc. | Inter-processor communication |
CN103166873A (zh) * | 2011-12-12 | 2013-06-19 | 中兴通讯股份有限公司 | 核间通信的方法及核处理器 |
US20130219130A1 (en) * | 2012-02-17 | 2013-08-22 | Nokia Corporation | Method, apparatus, and computer program product for inter-core communication in multi-core processors |
CN105431827A (zh) * | 2013-08-07 | 2016-03-23 | 高通股份有限公司 | 针对异构多处理器系统中的共享存储区域的动态地址协商 |
US10761741B1 (en) * | 2016-04-07 | 2020-09-01 | Beijing Baidu Netcome Science and Technology Co., Ltd. | Method and system for managing and sharing data using smart pointers |
CN109460373A (zh) * | 2017-09-06 | 2019-03-12 | 阿里巴巴集团控股有限公司 | 一种数据共享方法、终端设备和存储介质 |
Non-Patent Citations (5)
Title |
---|
YU-HSIEN LIN ET AL.: "Zero-Buffer Inter-core Process Communication Protocol for Heterogeneous Multi-core Platforms", 2009 15TH IEEE INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS, vol. 1, pages 69 - 78, XP031542406 * |
潘燕萍: "异构多核处理器的微内核操作系统通信机制的研究与设计", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 5, pages 137 - 7 * |
王宏宇;: "ARM MMU中虚拟地址到物理地址转换的研究", 中国电力教育, no. 3, pages 343 - 344 * |
陈小文;陈书明;鲁中海;AXEL JANTSCH;: "多核处理器中混合分布式共享存储空间的实时划分技术", 计算机工程与科学, no. 07, pages 54 - 59 * |
黄景: "基于核间寄存器的多核虚拟机通信机制研究与实现", 万方数据 学位论文, pages 1 - 75 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023134735A1 (zh) * | 2022-01-14 | 2023-07-20 | 华为云计算技术有限公司 | 计算设备、数据处理方法、系统及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062833B (zh) | 计算系统操作方法、计算系统、车辆及计算机可读媒体 | |
CN100555257C (zh) | 处理页面复制期间的dma操作的存储控制器和方法 | |
CN101751285B (zh) | 用于不同种类处理单元的集中式设备虚拟化层 | |
JP3687990B2 (ja) | メモリアクセス機構 | |
US20090077320A1 (en) | Direct access of cache lock set data without backing memory | |
WO2017143718A1 (zh) | 一种云渲染系统、服务器及方法 | |
US8738890B2 (en) | Coupled symbiotic operating system | |
CN111813713B (zh) | 数据加速运算处理方法、装置及计算机可读存储介质 | |
CN107278292B (zh) | 一种虚拟机内存的映射方法、装置及数据传输设备 | |
US11899612B2 (en) | Online upgrading method and system for multi-core embedded system | |
CN112906075A (zh) | 一种内存共享的方法及装置 | |
EP3964949A1 (en) | Graphics processing method and apparatus | |
JP2695017B2 (ja) | データ転送方式 | |
US6598097B1 (en) | Method and system for performing DMA transfers using operating system allocated I/O buffers | |
TW200945033A (en) | Memory allocation and access method and device using the same | |
CN114356598A (zh) | Linux内核态与用户态的数据交互方法及装置 | |
CN112214444A (zh) | 一种核间通信方法、arm、dsp及终端 | |
CN111881104A (zh) | 一种nfs服务器及其数据写入方法、装置和存储介质 | |
US8593472B1 (en) | System and method for accessing a frame buffer via a storage driver | |
CN112801856A (zh) | 数据处理方法和装置 | |
CN108255769B (zh) | 一种axi-plb桥 | |
CN111625281A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111209248A (zh) | 边缘计算服务器及边缘计算方法 | |
CN115454358B (zh) | 数据的存储控制方法及其装置、图像处理系统 | |
US20220197840A1 (en) | System direct memory access engine offload |
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 |