数据交互方法、装置、芯片及电子设备与流程
未命名
08-03
阅读:71
评论:0

1.本技术涉及芯片技术领域,特别是涉及一种数据交互方法、装置、芯片及电子设备。
背景技术:
2.在芯片中,时常有软硬件之间数据交互的场景。当软件向硬件发送数据时,软件将数据写入寄存器或存储器,硬件再从中读取;目前在软件和硬件之间用多个缓冲器来做缓冲,用于存储数据在存储器中的地址,然而该方案存在空间占用较大的问题。
技术实现要素:
3.基于此,有必要针对上述技术问题,提供一种能够减少空间占用的数据交互方法、装置、芯片及电子设备。
4.第一方面,本技术提供了一种交互方法,应用于第一处理模块,第一处理模块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率,方法包括:
5.将本次申请的数据地址移出缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据;
6.响应于完成对本次交互数据的处理,将对应的数据地址释放回缓冲器,以在缓冲器中形成用于存放本次经第一处理模块释放的数据地址的第二缓冲区域,并指示第二处理模块将第二缓冲区域中的数据地址搬运至第一缓冲区域。
7.在其中一个实施例中,第一缓冲区域和第二缓冲区域无交叉;
8.第一缓冲区域的全部存储空间用于存放当前可供第一处理模块申请的数据地址;第二缓冲区域的全部存储空间用于存放当前可供第二处理模块搬运的数据地址。
9.在其中一个实施例中,在将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤之后,还包括:
10.将第一缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
11.在其中一个实施例中,将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤,包括:
12.响应于数据读取条件的触发,通过第一处理模块的读指针从第一缓冲区域读取出本次申请的数据地址;其中,数据读取条件包括第一处理模块的读指针与第二处理模块的写指针的当前指向位置不同。
13.在其中一个实施例中,数据读取条件还包括确定当前存在数据申请需求。
14.在其中一个实施例中,将对应的数据地址释放回缓冲器的步骤,包括:
15.通过第一处理模块的写指针将各数据地址写入缓冲器,直至第一处理模块的写指针与第一处理模块的读指针指向同一个位置。
16.在其中一个实施例中,方法还包括:
17.输出中断通知;中断通知用于指示第二处理模块通过第二处理模块的读指针及写指针,将第二缓冲区域中的数据地址搬运至第一缓冲区域。
18.在其中一个实施例中,本次申请的数据地址用于表征本次交互数据在存储器中的地址;
19.将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤,包括:
20.取走缓冲器的第一缓冲区域中的各数据地址;
21.将各数据地址存放至本地存储空间中;
22.依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据的步骤,包括:
23.响应于数据申请条件的触发,从本地存储空间中获取本次申请的数据地址;数据申请条件包括确定当前存在数据申请需求;
24.基于本次申请的数据地址,从存储器获得本次交互数据。
25.第二方面,本技术还提供了一种交互方法,应用于第二处理模块,第二处理模块通过缓冲器与第一处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率,方法包括:
26.响应于缓冲器中、形成用于存放本次经第一处理模块释放回缓冲器的数据地址的第二缓冲区域,将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域;
27.其中,本次经第一处理模块释放回缓冲器的数据地址为经第一处理模块处理完成的本次交互数据所对应的数据地址;本次交互数据为从第一缓冲区域中移出的本次申请的数据地址指示第一处理模块得到。
28.在其中一个实施例中,第一缓冲区域和第二缓冲区域无交叉;
29.第一缓冲区域的全部存储空间用于存放当前可供第一处理模块申请的数据地址;第二缓冲区域的全部存储空间用于存放当前可供第二处理模块搬运的数据地址。
30.在其中一个实施例中,在将缓冲器的第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域中的步骤之后,方法还包括:
31.将第二缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
32.在其中一个实施例中,将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域的步骤,包括:
33.响应于数据搬运条件的触发,通过第二处理模块的读指针及写指针,将第二缓冲区域中的数据地址搬运至第一缓冲区域;数据搬运条件包括第二处理模块的写指针和第一处理模块的读指针的当前指向位置不同。
34.在其中一个实施例中,数据搬运条件还包括接收到第一处理模块传输的中断通知。
35.在其中一个实施例中,本次申请的数据地址用于表征本次交互数据在存储器中的地址;
36.方法还包括:
37.将第一处理模块所需的各交互数据写入存储器;
38.通过初始化缓冲器,将分别对应各交互数据的数据地址写入缓冲器。
39.第三方面,本技术还提供了一种数据交互装置,应用于第一处理模块,第一处理模
块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率,装置包括:
40.地址获取模块,用于将本次申请的数据地址移出缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据;
41.地址释放模块,用于响应于完成对本次交互数据的处理,将对应的数据地址释放回缓冲器,以在缓冲器中形成用于存放本次经第一处理模块释放的数据地址的第二缓冲区域,并指示第二处理模块将第二缓冲区域中的数据地址搬运至第一缓冲区域。
42.第四方面,本技术还提供了一种数据交互装置,应用于第二处理模块,第二处理模块通过缓冲器与第一处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率,装置包括:
43.地址搬运模块,用于响应于缓冲器中、形成用于存放本次经第一处理模块释放回缓冲器的数据地址的第二缓冲区域,将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域;
44.其中,本次经第一处理模块释放回缓冲器的数据地址为经第一处理模块处理完成的本次交互数据所对应的数据地址;本次交互数据为从第一缓冲区域中移出的本次申请的数据地址指示第一处理模块得到。
45.第五方面,本技术还提供了一种数据交互系统,包括第一处理模块和第二处理模块,第一处理模块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率;
46.其中,第一处理模块用于执行上述从第一处理模块角度实施的交互方法;第二处理模块用于执行上述从第二处理模块角度实施的交互方法。
47.第六方面,本技术还提供了一种芯片,包括第一处理模块和第二处理模块,第一处理模块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率;
48.其中,第一处理模块用于执行上述从第一处理模块角度实施的交互方法;第二处理模块用于执行上述从第二处理模块角度实施的交互方法。
49.在其中一个实施例中,还包括连接在第一处理模块和第二处理模块之间的存储器。
50.在其中一个实施例中,第一处理模块为硬件模块,第二处理模块为软件模块。
51.第七方面,本技术还提供了一种电子设备,包括如上述的芯片。
52.第八方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
53.第九方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
54.上述数据交互方法、装置、芯片及电子设备,在第一处理模块和读写速率低于第一处理模块的第二处理模块之间,通过一个缓冲器做缓冲;其中,第一处理模块将本次申请的数据地址移出所述缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据,且在处理完本次交互数据后,将对应的数据地址释放回所述缓冲器,以在所述缓冲器中形成第二缓冲区域,并由第二处理模块将第二缓冲区
域中的数据地址搬运至第一缓冲区域;本技术通过在缓冲器动态地划分出两片互不干涉的第一缓冲区域和第二缓冲区域,能够完成第一处理模块与第二处理模块之间数据地址的申请、使用、释放及搬运的循环,大大降低了空间占用。
附图说明
55.图1为传统技术中缓冲器结构示意图;
56.图2为一个实施例中交互方法的应用环境图;
57.图3为一个实施例中从第一处理模块角度实施的交互方法的流程示意图;
58.图4为一个实施例中获取交互数据步骤的流程示意图;
59.图5为一个实施例中从第二处理模块角度实施的交互方法的流程示意图;
60.图6为一个实施例中初始化缓冲器的流程示意图;
61.图7为一个实施例中缓冲器的结构示意图;
62.图8为一个实施例中交互方法的具体流程示意图;
63.图9为一个实施例中从第一处理模块角度实施的数据交互装置的结构框图;
64.图10为一个实施例中电子设备的内部结构图。
具体实施方式
65.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
66.可以理解的是,本技术中诸如“第一”、“第二”等术语仅用于区分类似的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
67.需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
68.当软件(sw,software)向硬件(hw,hardware)发送数据时,传统技术包括以下两类方案:
①
软件将数据写入寄存器或存储器(例如ddr,double data rate synchronous dynamic random access memory,双倍数据率同步动态随机存取存储器),硬件再从中读取。
②
在软件和硬件之间用两个缓冲器(buffer)来做缓冲,分别用于存放待申请的数据和已释放的数据在存储器中的地址,如图1所示,释放缓冲器(release buffer)用于存放已释放的数据在存储器中的地址,提取缓冲器(fetch buffer)用于存放待申请的数据。此外,图1中,sw_rd_ptr表示软件读指针,hw_wr_ptr表示硬件写指针;hw_rd_ptr表示硬件读指针,sw_wr_ptr表示软件写指针。
69.然而,由于软件的读写速率远慢于硬件,采用上述第一种方案进行软件到硬件的多笔数据传输时,会出现软件跟不上硬件的情况,导致硬件花较多时间等待软件将数据写
入,从而影响硬件的工作效率。进一步地,由于软件的读写速率远慢于硬件,需要保证两个缓冲器(buffer)均能存放所有地址,而上述第二种方案中两个缓冲器(buffer)的深度都要大于或等于需存放的地址的个数,占用的空间较大。
70.本技术实施例提供的交互方法,可以应用于如图2所示的应用环境中。其中,第一处理模块102通过缓冲器106与第二处理模块104连接,第二处理模块104的读写速率低于第一处理模块102的读写速率。进一步地,缓冲器106的数量为一个;基于本技术实施例,在第一处理模块102和第二处理模块104之间,用一个缓冲器106来做缓冲,不仅占用空间小,且可以解决第一处理模块102和第二处理模块104读写速率不一致的问题。
71.示例性地,本技术实施例可以应用于芯片中的软硬件之间数据交互的场景,例如软件向硬件发送数据的情况,该数据可以指交互数据。可选地,第一处理模块102可以为硬件模块,第二处理模块104可以为软件模块,该软件模块的读写速率远慢于该硬件模块。需要说明的是,本技术实施例中的软件模块可以指软件(sw),硬件模块可以指硬件(hw);可选地,软件模块、硬件模块可以指芯片划分出的各功能模块。
72.进一步地,上述软件模块及硬件模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
73.示例性地,在第一处理模块102和第二处理模块104之间还可以连接有存储器;本技术实施例中的缓冲器106可以指缓冲器(buffer),用于存放第一处理模块102和第二处理模块104之间交互数据所对应的数据地址,该数据地址用于表征交互数据在存储器中的地址;其中,第二处理模块104可以预先将第一处理模块102所需的多笔交互数据写入存储器,并将其对应的地址存入缓冲器106中,第一处理模块102根据需要按序从缓冲器106中申请地址读出,第一处理模块102根据地址读出数据进行使用或修改。
74.进一步地,基于本技术实施例,可以通过在缓冲器106中动态地划分出两片区域,以分别存放第一处理模块102待申请的数据和已释放的数据在存储器中的地址,并用两对读写指针来管理。如图2所示,两对读写指针可以分别指:第一处理模块102的读指针、第一处理模块102的写指针、第二处理模块104的读指针以及第二处理模块104的写指针。其中,两对指针独立完成读写操作,互不干扰。
75.可选地,第一处理模块102的读指针、第一处理模块102的写指针、第二处理模块104的读指针以及第二处理模块104的写指针被配置为指向同一个缓冲器(缓冲器)。
76.在一些示例中,以第一处理模块102为硬件模块,第二处理模块104为软件模块为例,第一处理模块102的读指针可以指硬件读指针(hw_rd_ptr),第一处理模块102的写指针可以指硬件写指针(hw_wr_ptr)、第二处理模块104的读指针可以指软件读指针(sw_rd_ptr),第二处理模块104的写指针可以指软件写指针(sw_wr_ptr)。本技术实施例可分别用硬件读指针和软件写指针、软件读指针和硬件写指针来控制软硬件对缓冲器(buffer)的访问。
77.在一个实施例中,如图3所示,提供了一种交互方法,以该方法应用于图1中的第一处理模块为例进行说明,包括以下步骤:
78.步骤202,将本次申请的数据地址移出缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据。
79.其中,本次申请的数据地址可以指响应于数据申请需求,第一处理模块(例如硬件模块)当前需要申请的地址。本技术实施例中,第一处理模块所需要的交互数据可以由第二处理模块存储至存储器中,数据地址可以指缓冲器所存放的第一处理模块待申请的数据在存储器中的地址。
80.进一步地,第一缓冲区域可以指缓冲器(buffer)中用于存放当前可供第一处理模块申请的数据地址的区域。示例性地,第一缓冲区域可以是缓冲器经动态地划分所得到的区域。
81.本技术实施例中,允许提前将第一处理模块所需的多笔数据准备好,并在缓冲器(buffer)中用地址来代替数据本身,将第一处理模块不访问数据的时间有效地利用起来,以弥补第二处理模块读写速率慢于第一处理模块的不足。此外,本技术仅使用一个缓冲器实现第一处理模块与读写速率较慢的第二处理模块之间交互数据传输及使用,能够减少大量的空间占用。
82.在其中一个实施例中,第一缓冲区域的全部存储空间用于存放当前可供第一处理模块申请的数据地址。
83.具体而言,第一缓冲区域的存储空间的大小与当前可供第一处理模块申请的数据地址的数量相关。可以理解的是,本技术实施例中,将缓冲器中当前存放着当前所有可供第一处理模块申请的数据地址的区域,作为第一缓冲区域,即第一缓冲区域是通过缓冲器进行动态划分得到的。
84.第一处理模块可以根据需要从第一缓冲区域中获取到本次申请的数据地址,具体地,第一处理模块将本次申请的数据地址移出缓冲器的第一缓冲区域;以第一处理模块为硬件模块为例,硬件模块可以从缓冲器(buffer)的第一缓冲区域依次取走第0-6个地址。
85.在其中一个实施例中,在将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤之后,还可以包括:
86.将第一缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
87.具体而言,在将本次申请的数据地址移出缓冲器的第一缓冲区域后,第一缓冲区域存在空闲的部分或全部存储空间,本技术实施例可以将第一缓冲区域中空闲的部分或全部存储空间释放回缓冲器,进而缓冲器的存储空间可以动态地划分,从而使本技术实施例可以使用一个缓冲器作为第一处理模块与读写速率较慢的第二处理模块间(例如软硬件间)的缓冲,以降低空间占用。同时,能够为完成数据地址的申请、使用、释放及搬运的循环提供支持。
88.在其中一个实施例中,将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤,可以包括:
89.响应于数据读取条件的触发,通过第一处理模块的读指针从第一缓冲区域读取出本次申请的数据地址;其中,数据读取条件包括第一处理模块的读指针与第二处理模块的写指针的当前指向位置不同。
90.具体地,第一处理模块在数据读取条件触发的情况下,可以通过读指针从第一缓冲区域读取出本次申请的数据地址,进而将本次申请的数据地址移出第一缓冲区域。以第一处理模块为硬件模块为例,硬件模块可以根据需要按序从缓冲器(buffer)中申请地址读出。
91.其中,本技术实施例中,第一处理模块可以根据第一处理模块的读指针与第二处理模块的写指针的相对位置关系,确定出目前缓冲器(buffer)有数据地址可供读取,例如在第一处理模块的读指针与第二处理模块的写指针的当前指向位置不同的情况下,确认可以从缓冲器(buffer)中读取到数据地址。示例性地,以第一处理模块为硬件模块、第二处理模块为软件模块为例,硬件模块可以根据硬件读指针和软件写指针的相对位置关系,确认缓冲器(buffer)中目前是否有数据地址可供读取。
92.本技术实施例在缓冲器(buffer)中动态地划分出第一缓冲区域,分别用相应的读指针和写指针来控制第一处理模块和第二处理模块(例如软硬件)对其的访问,完成第一处理模块对数据地址的申请和使用,减少了空间占用。
93.在其中一个实施例中,数据读取条件还包括确定当前存在数据申请需求。
94.具体而言,在确定目前缓冲器(buffer)有数据可供读取的情况下,第一处理模块可以在出现需求时进行数据地址的申请,以第一处理模块为硬件模块、第二处理模块为软件模块为例,若确定当前存在数据申请需求,硬件模块可以开始取走第一缓存区域中的数据地址。
95.可选地,以第一处理模块为芯片中的硬件模块、第二处理模块为芯片中的软件模块为例,在软件模块与硬件模块间的软硬件数据交互场景下,当软件模块向硬件模块发送数据时,软件模块将该数据写入寄存器或存储器(例如ddr),基于本技术实施例,可以使用一个缓冲器(buffer)来做缓冲,缓冲器的第一缓冲区域用于存放第一处理模块待申请的数据在存储器中的地址,其中,本次申请的数据地址既可以是第一处理模块(例如,硬件模块)本次需求的各数据地址,也可以是第一缓冲区域所存放的所有数据地址。
96.进一步地,在其中一个实施例中,本次申请的数据地址用于表征本次交互数据在存储器中的地址;如图4所示,将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤,可以包括:
97.步骤302,从缓冲器的第一缓冲区域中取走各数据地址;
98.步骤304,将各数据地址存放至本地存储空间中;
99.依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据的步骤,包括:
100.步骤306,响应于数据申请条件的触发,从本地存储空间中获取本次申请的数据地址;数据申请条件包括确定当前存在数据申请需求;
101.步骤308,基于本次申请的数据地址,从存储器获得本次交互数据。
102.具体而言,本技术实施例可以针对缓冲器(buffer)中待申请的地址增加预读取机制,进而减少从缓冲器(buffer)读取地址的时间,进一步加快第一处理模块和第二处理模块间(例如软硬件间)的数据访问。
103.其中,第一处理模块(例如,硬件模块)可以提前将多个数据地址从缓冲器(buffer)的第一缓冲区域中全部读取出来,并暂存在第一处理模块的本地的空间中,需要时直接使用,不仅能够减少地址的读取时间,还可进一步加快数据访问速度。
104.步骤204,响应于完成对本次交互数据的处理,将对应的数据地址释放回缓冲器,以在缓冲器中形成用于存放本次经第一处理模块释放的数据地址的第二缓冲区域,并指示第二处理模块将第二缓冲区域中的数据地址搬运至第一缓冲区域。
105.具体而言,第一处理模块在根据本次申请的数据地址,从存储器中获取到本次交互数据后,可以对本次交互数据进行使用或修改,结束后将本次交互数据对应的数据地址重新释放回缓冲器(buffer)中;进而,由第二处理模块进行数据地址的搬运的操作,将第一处理模块释放的数据地址搬至第一缓冲区域(待申请的区域),此时,第二处理模块也可以修改存储器中对应的数据。以上,本技术实施例可以完成数据地址的申请、使用、释放及搬运的循环。
106.其中,第一处理模块可以通过写指针将对应的数据地址释放回缓冲器,而本次经第一处理模块释放回缓冲器的数据地址、当前在缓冲器所占用的区域,可以称之为第二缓冲区域,进一步地,指示第二处理模块将该缓冲区域中的数据地址搬运至第一缓冲区域。
107.本技术实施例中,第二缓冲区域可以指缓冲器(buffer)中用于存放当前可供第二处理模块搬运的数据地址的区域。示例性地,第二缓冲区域可以是缓冲器经动态地划分所得到的区域。
108.在其中一个实施例中,第一缓冲区域和第二缓冲区域无交叉;
109.第二缓冲区域的全部存储空间用于存放当前可供第二处理模块搬运的数据地址。
110.具体而言,第一缓冲区域和第二缓冲区域可以理解为是在缓冲器(buffer)中动态地划分出的两片区域,分别存放第一处理模块待申请的数据和已释放的数据在存储器中的地址,并可以使用相应的读写指针(例如,两对读写指针)来管理。
111.进一步地,第二缓冲区域的存储空间的大小与本次经第一处理模块释放回缓冲器的数据地址的数量相关,即与当前可供第二处理模块搬运的数据地址的数量相关。可以理解的是,本技术实施例中,将缓冲器中当前存放着当前所有可供第二处理模块搬运的数据地址的区域,作为第二缓冲区域。
112.在其中一个实施例中,将对应的数据地址释放回缓冲器的步骤,包括:
113.通过第一处理模块的写指针将各数据地址写入缓冲器,直至第一处理模块的写指针与第一处理模块的读指针指向同一个位置。
114.具体而言,第一处理模块可以通过第一处理模块的写指针将各数据地址写入缓冲器,直至该写指针与第一处理模块的读指针指向同一个位置,则可以确认本次待释放的数据地址已被第一处理模块释放,即所有申请的数据地址均已被第一处理模块释放。进一步地,本技术实施例中,数据地址的释放顺序和申请顺序无需一致。
115.需要说明的是,本技术实施例中,在数据地址的申请、使用、释放及搬运的循环中,缓冲器(buffer)中数据地址的顺序可以依据释放顺序的先后而改变,数据地址本身的内容则自第二处理模块(例如软件模块)对缓冲器(buffer)初始化(用于写入第一处理模块所需的全部数据地址)以后就保持固定不变,即在初始化缓冲器(buffer)过程中写入的数据地址,在后续的读写中只有顺序会发生改变,其内容不会改变。
116.在其中一个实施例中,方法还包括:
117.输出中断通知;中断通知用于指示第二处理模块通过第二处理模块的读指针及写指针,将第二缓冲区域中的数据地址搬运至第一缓冲区域。
118.具体而言,第一处理模块在通过第一处理模块的写指针将各数据地址写入缓冲器,直至该写指针与第一处理模块的读指针指向同一个位置之后,可以输出中断通知,以指示第二处理模块对第二缓冲区域中的数据地址进行搬运。
119.示例性地,中断通知可以是中断信号;例如,第一处理模块(例如硬件模块)在释放数据地址后,可以输出中断信号,进而指示第二处理模块(例如软件模块)根据读写指针搬运数据地址。
120.以上,本技术实施例利用一个缓冲器(buffer),通过用地址来代替交互数据本身,在将第一处理模块(例如硬件模块)不访问数据的时间有效地利用起来,以弥补第二处理模块(例如软件模块)读写速率慢于第一处理模块(例如硬件模块)的不足的同时,减少了至少一半的空间占用。
121.在其中一个实施例中,在将缓冲器的第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域中的步骤之后,方法还包括:
122.将第二缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
123.具体而言,在将缓冲器的第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域过程中,若第二缓冲区域存在空闲的部分或全部存储空间,本技术实施例可以将第二缓冲区域中该空闲的部分或全部存储空间释放回缓冲器,进而缓冲器的存储空间可以动态地划分,从而使本技术实施例可以使用一个缓冲器作为第一处理模块与读写速率较慢的第二处理模块间(例如软硬件间)的缓冲,以降低空间占用。同时,能够为完成数据地址的申请、使用、释放及搬运的循环提供支持。
124.以上,本技术实施例在第一处理模块和读写速率低于第一处理模块的第二处理模块之间,通过一个缓冲器做缓冲;其中,第一处理模块将本次申请的数据地址移出所述缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据,且在处理完本次交互数据后,将对应的数据地址释放回所述缓冲器,以在所述缓冲器中形成第二缓冲区域,并由第二处理模块将第二缓冲区域中的数据地址搬运至第一缓冲区域;本技术通过在缓冲器动态地划分出两片互不干涉的第一缓冲区域和第二缓冲区域,能够完成第一处理模块与第二处理模块之间数据地址的申请、使用、释放及搬运的循环,大大降低了空间占用。
125.在一个实施例中,如图5所示,提供了一种交互方法,以该方法应用于图1中的第二处理模块为例进行说明,包括以下步骤:
126.步骤402,响应于缓冲器中、形成用于存放本次经第一处理模块释放回缓冲器的数据地址的第二缓冲区域,将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域;
127.其中,本次经第一处理模块释放回缓冲器的数据地址为经第一处理模块处理完成的本次交互数据所对应的数据地址;本次交互数据为从第一缓冲区域中移出的本次申请的数据地址指示第一处理模块得到。
128.具体而言,第一处理模块可以将本次申请的数据地址移出缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据,进而响应于完成对本次交互数据的处理,将对应的数据地址释放回缓冲器,以在缓冲器中形成用于存放本次经第一处理模块释放的数据地址的第二缓冲区域。
129.进一步地,第二处理模块可以将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域,进而使得本技术实施例能够通过一个缓冲器,完成第一处理模块与第二处理模块之间数据地址的申请、使用、释放及搬运的循环,大大降低了空间占用;需要说明的是,关于第一处理模块所执行的相关步骤及具体实现过程,可以参阅上述从第一处理模块角度
实施的交互方法的描述说明,此处不再赘述。
130.在其中一个实施例中,第一缓冲区域和第二缓冲区域无交叉;
131.第一缓冲区域的全部存储空间用于存放当前可供第一处理模块申请的数据地址;第二缓冲区域的全部存储空间用于存放当前可供第二处理模块搬运的数据地址。
132.具体而言,第一缓冲区域和第二缓冲区域可以理解为是在缓冲器(buffer)中动态地划分出的两片区域,分别存放第一处理模块待申请的数据和已释放的数据在存储器中的地址,并可以使用相应的读写指针(例如,两对读写指针)来管理。
133.在其中一个实施例中,在将缓冲器的第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域中的步骤之后,方法还包括:
134.将第二缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
135.具体而言,在将缓冲器的第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域过程中,若第二缓冲区域存在空闲的部分或全部存储空间,本技术实施例可以将第二缓冲区域中该空闲的部分或全部存储空间释放回缓冲器,进而缓冲器的存储空间可以动态地划分,从而使本技术实施例可以使用一个缓冲器作为第一处理模块与读写速率较慢的第二处理模块间(例如软硬件间)的缓冲,以降低空间占用。同时,能够为完成数据地址的申请、使用、释放及搬运的循环提供支持。
136.在其中一个实施例中,将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域的步骤,包括:
137.响应于数据搬运条件的触发,通过第二处理模块的读指针及写指针,将第二缓冲区域中的数据地址搬运至第一缓冲区域;数据搬运条件包括第二处理模块的写指针和第一处理模块的读指针的当前指向位置不同。
138.具体地,第一处理模块释放的数据地址,依次被第二处理模块搬运至第一缓冲区域。其中,第二处理模块在数据搬运条件触发的情况下,可以通过第二处理模块的读指针读取出第二缓冲区域中本次搬运的数据地址(例如,将本次搬运的数据地址从第二缓冲区域中移出),然后通过第二处理模块的写指针将本次搬运的数据地址写入第一缓冲区域中,进而完成本次搬运的数据地址的搬运。
139.以第二处理模块为软件模块、第一处理模块为硬件模块为例,软件模块可以根据第二处理模块的写指针(软件写指针)和第一处理模块的读指针(硬件读指针)的相对位置,得知目前缓冲器(buffer)中有已释放的数据需要搬运,当搬运通道空闲可用时,软件模块可以进行数据地址的搬运,例如,依次取走第3、0、1、6个地址;又如,硬件模块释放的第5、2、4个地址依次被软件模块搬运至第一缓冲区域(待申请的区域)。
140.在其中一个实施例中,数据搬运条件还包括接收到第一处理模块传输的中断通知。
141.具体而言,第二处理模块在接收到第一处理模块输出的中断通知后,则可以对第二缓冲区域中的数据地址进行搬运;其中,中断通知可以是第一处理模块在通过第一处理模块的写指针将各数据地址写入缓冲器,直至该写指针与第一处理模块的读指针指向同一个位置之后输出的。
142.示例性地,中断通知可以是中断信号;例如,第一处理模块(例如硬件模块)在释放数据地址后,可以输出中断信号,进而指示第二处理模块(例如软件模块)根据读写指针搬
运数据地址。
143.在其中一个实施例中,本次申请的数据地址用于表征本次交互数据在存储器中的地址;如图6所示,方法还包括:
144.步骤502,将第一处理模块所需的各交互数据写入存储器;
145.步骤504,通过初始化缓冲器,将分别对应各交互数据的数据地址写入缓冲器。
146.具体而言,第二处理模块(例如软件模块)可以预先将第一处理模块(例如硬件模块)所需的多笔数据(交互数据)写入存储器,并将其对应的地址存入缓冲器(buffer)中,第一处理模块(例如硬件模块)根据需要按序从缓冲器(buffer)中申请地址读出,缓冲器(buffer)根据地址读出数据进行使用或修改,结束后将地址重新释放回缓冲器(buffer)中。第二处理模块(例如软件模块)进行地址搬运的操作,将释放的地址搬至待申请的区域,此时第二处理模块(例如软件模块)也可修改存储器中对应的数据。
147.在进行初始化之前,缓冲器(buffer)为空,所有指针指向首地址。然后,第二处理模块(例如软件模块)对缓冲器(buffer)进行了初始化,写入所需的各数据地址,这些数据地址在后续的读写中只有顺序会发生改变,其内容不会改变。
148.本技术实施例允许第二处理模块(例如软件模块)提前将第一处理模块(例如硬件模块)所需的多笔数据准备好,并在缓冲器(buffer)中用地址来代替数据本身,进而将第一处理模块(例如硬件模块)不访问数据的时间有效地利用起来,以弥补第二处理模块(例如软件模块)读写速率慢于第一处理模块(例如硬件模块)的不足,同时,减少了至少一半的空间占用。
149.为了详尽阐释本技术实施例的方案,以包括第一处理模块和第二处理模块的数据交互系统为例,第一处理模块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率;
150.其中,第一处理模块可以用于执行上述从第一处理模块角度实施的交互方法;第二处理模块可以用于执行上述从第二处理模块角度实施的交互方法。
151.需要说明的是,关于第一处理模块可以用于执行上述从第一处理模块角度实施的交互方法中,第一处理模块所执行的相关步骤及具体实现过程,可以参阅上述从第一处理模块角度实施的交互方法的描述说明,此处不再赘述。而关于第二处理模块可以用于执行上述从第二处理模块角度实施的交互方法中,第二处理模块所执行的相关步骤及具体实现过程,可以参阅上述从第二处理模块角度实施的交互方法的描述说明,此处不再赘述。
152.为了进一步阐释本技术实施例的方案,如图7所示,以第一处理模块为硬件模块(图7中以硬件示意),第二处理模块为软件模块(图7中以软件示意)为例,本技术实施例在软件和硬件之间用一个缓冲器(buffer)来做缓冲以解决软硬件读写速率不一致的问题;
153.如图7所示,可以在缓冲器(buffer)中动态地划分出两片区域,分别存放待申请的数据和已释放的数据在存储器中的地址,并用两对读写指针来管理:硬件读指针(hw_rd_ptr)和软件写指针(sw_wr_ptr)、软件读指针(sw_rd_ptr)和硬件写指针(hw_wr_ptr)。两对指针独立完成读写操作,互不干扰。其中,软件可以预先将硬件所需的多笔数据写入存储器,并将其对应的地址存入缓冲器(buffer)中,硬件根据需要按序从缓冲器(buffer)中申请地址读出,硬件根据地址读出数据进行使用或修改,结束后将地址重新释放回缓冲器(buffer)中。软件进行地址搬运的操作,将释放的地址搬至待申请的区域,此时软件也可修
改存储器中对应的数据。
154.参阅图7并结合图8,下面对本技术实施例中缓冲器(buffer)申请释放管理机制进行说明:
155.步骤0中buffer为空,所有指针指向首地址。
156.步骤1中软件对buffer进行初始化,以写入13个数据地址(以图8的buffer中的编号0~12示意)为例,这13个数据地址在后续的读写中只有顺序会发生改变,其内容不会改变。
157.步骤2中硬件根据硬件读指针和软件写指针的相对位置关系,确认目前buffer有数据地址可供读取,当出现需求时硬件可以进行数据地址的申请,依次取走了第0-6个地址。
158.步骤3中硬件将使用完的第3、0、1、6、5个地址释放回buffer中,其释放顺序和申请顺序无需一致。
159.步骤4中所有申请的数据地址均已被硬件释放,此时,硬件读指针和硬件写指针指向同一位置。
160.步骤5中软件根据软件写指针和硬件读指针的相对位置,确定目前buffer中有已释放的地址需要搬运,当搬运通道空闲可用时,软件可以进行数据地址的搬运,依次取走第3、0、1、6个地址。同时,硬件申请了第7、8个地址。
161.步骤6中硬件释放的第5、2、4个地址依次被软件搬运至待申请的区域。同时,硬件将使用完的第7、8个地址释放,此时硬件读指针和硬件写指针指向同一位置,表明所有申请的数据地址均已被硬件释放。
162.步骤7中硬件释放的第7、8个地址依次被软件搬运至待申请的区域,由软件读写指针和硬件读写指针的相对位置关系可知,此时所有数据地址均处于待申请的状态。
163.在进行上述数据地址的申请、使用、释放及搬运的循环中,数据地址的顺序会随着释放的先后而改变,而数据地址本身的内容自初始化以后就固定不变。
164.以上,本技术实施例减少了一半的空间占用,并允许软件提前将硬件所需的多笔数据准备好,并在缓冲器(buffer)中用地址来代替数据本身,将硬件不访问数据的时间有效地利用起来,以弥补软件读写速率慢于硬件的不足。
165.本技术实施例通过在软件和硬件之间用一个缓冲器(buffer)做缓冲,以解决软硬件读写速率不一致的问题。进一步地,本技术实施例在缓冲器(buffer)中动态地划分出两片互不干涉的区域,分别用硬件读指针和软件写指针、软件读指针和硬件写指针来控制软硬件对其的访问,以完成地址的申请、使用、释放及搬运的循环。
166.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
167.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的从第一
处理模块角度实施的交互方法的数据交互装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据交互装置实施例中的具体限定可以参见上文中对于从第一处理模块角度实施的交互方法的限定,在此不再赘述。
168.在一个实施例中,如图9所示,提供了一种数据交互装置,应用于第一处理模块,第一处理模块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率,装置包括:
169.地址获取模块901,用于将本次申请的数据地址移出缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据;
170.地址释放模块902,用于响应于完成对本次交互数据的处理,将对应的数据地址释放回缓冲器,以在缓冲器中形成用于存放本次经第一处理模块释放的数据地址的第二缓冲区域,并指示第二处理模块将第二缓冲区域中的数据地址搬运至第一缓冲区域。
171.在其中一个实施例中,第一缓冲区域和第二缓冲区域无交叉;
172.第一缓冲区域的全部存储空间用于存放当前可供第一处理模块申请的数据地址;第二缓冲区域的全部存储空间用于存放当前可供第二处理模块搬运的数据地址。
173.在其中一个实施例中,装置还包括:
174.空间释放模块,用于将第一缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
175.在其中一个实施例中,地址获取模块901,用于响应于数据读取条件的触发,通过第一处理模块的读指针从第一缓冲区域读取出本次申请的数据地址;其中,数据读取条件包括第一处理模块的读指针与第二处理模块的写指针的当前指向位置不同。
176.在其中一个实施例中,数据读取条件还包括确定当前存在数据申请需求。
177.在其中一个实施例中,地址释放模块902,用于通过第一处理模块的写指针将各数据地址写入缓冲器,直至第一处理模块的写指针与第一处理模块的读指针指向同一个位置。
178.在其中一个实施例中,地址释放模块902,用于输出中断通知;中断通知用于指示第二处理模块通过第二处理模块的读指针及写指针,将第二缓冲区域中的数据地址搬运至第一缓冲区域。
179.在其中一个实施例中,本次申请的数据地址用于表征本次交互数据在存储器中的地址;地址获取模块901,用于取走缓冲器的第一缓冲区域中的各数据地址;将各数据地址存放至本地存储空间中;以及用于响应于数据申请条件的触发,从本地存储空间中获取本次申请的数据地址;数据申请条件包括确定当前存在数据申请需求;基于本次申请的数据地址,从存储器获得本次交互数据。
180.上述数据交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
181.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的从第二处理模块角度实施的交互方法的数据交互装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据交互装置实施例中的具体限定可以参见上文中对于从第二处理模块角度实施的交互方法的限定,在此不再赘述。
182.在一个实施例中,提供了一种数据交互装置,应用于第二处理模块,第二处理模块通过缓冲器与第一处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率,装置包括:
183.地址搬运模块,用于响应于缓冲器中、形成用于存放本次经第一处理模块释放回缓冲器的数据地址的第二缓冲区域,将第二缓冲区域中的数据地址,搬运至缓冲器的第一缓冲区域;
184.其中,本次经第一处理模块释放回缓冲器的数据地址为经第一处理模块处理完成的本次交互数据所对应的数据地址;本次交互数据为从第一缓冲区域中移出的本次申请的数据地址指示第一处理模块得到。
185.在其中一个实施例中,第一缓冲区域和第二缓冲区域无交叉;
186.第一缓冲区域的全部存储空间用于存放当前可供第一处理模块申请的数据地址;第二缓冲区域的全部存储空间用于存放当前可供第二处理模块搬运的数据地址。
187.在其中一个实施例中,装置还包括:
188.空间释放模块,用于将第二缓冲区域中空闲的部分或全部存储空间释放回缓冲器。
189.在其中一个实施例中,地址搬运模块,用于响应于数据搬运条件的触发,通过第二处理模块的读指针及写指针,将第二缓冲区域中的数据地址搬运至第一缓冲区域;数据搬运条件包括第二处理模块的写指针和第一处理模块的读指针的当前指向位置不同。
190.在其中一个实施例中,数据搬运条件还包括接收到第一处理模块传输的中断通知。
191.在其中一个实施例中,本次申请的数据地址用于表征本次交互数据在存储器中的地址;装置还包括:
192.数据预处理模块,用于将第一处理模块所需的各交互数据写入存储器;
193.初始化模块,用于通过初始化缓冲器,将分别对应各交互数据的数据地址写入缓冲器。
194.上述数据交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
195.在一个实施例中,提供了一种芯片,包括第一处理模块和第二处理模块,第一处理模块通过缓冲器与第二处理模块连接,第二处理模块的读写速率低于第一处理模块的读写速率;
196.其中,第一处理模块用于执行上述从第一处理模块角度实施的交互方法;第二处理模块用于执行上述从第二处理模块角度实施的交互方法。
197.在其中一个实施例中,还包括连接在第一处理模块和第二处理模块之间的存储器。
198.在其中一个实施例中,第一处理模块为硬件模块,第二处理模块为软件模块。
199.在一个实施例中,提供了一种电子设备,包括如上述的芯片。
200.进一步地,该电子设备可以是终端,其内部结构图可以如图10所示。该电子设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器
和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的输入/输出接口用于处理器与外部设备之间交换信息。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种交互方法。该电子设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
201.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
202.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
203.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
204.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
205.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
206.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保
护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种数据交互方法,其特征在于,应用于第一处理模块,所述第一处理模块通过缓冲器与第二处理模块连接,所述第二处理模块的读写速率低于所述第一处理模块的读写速率,所述方法包括:将本次申请的数据地址移出所述缓冲器的第一缓冲区域,并依据所述本次申请的数据地址获取所述第二处理模块与所述第一处理模块之间的本次交互数据;响应于完成对所述本次交互数据的处理,将对应的数据地址释放回所述缓冲器,以在所述缓冲器中形成用于存放本次经所述第一处理模块释放的数据地址的第二缓冲区域,并指示所述第二处理模块将所述第二缓冲区域中的数据地址搬运至所述第一缓冲区域。2.根据权利要求1所述的方法,其特征在于,所述第一缓冲区域和所述第二缓冲区域无交叉;所述第一缓冲区域的全部存储空间用于存放当前可供所述第一处理模块申请的数据地址;所述第二缓冲区域的全部存储空间用于存放当前可供所述第二处理模块搬运的数据地址。3.根据权利要求2所述的方法,其特征在于,在所述将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤之后,还包括:将所述第一缓冲区域中空闲的部分或全部存储空间释放回所述缓冲器。4.根据权利要求1至3任一项所述的方法,其特征在于,所述将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤,包括:响应于数据读取条件的触发,通过所述第一处理模块的读指针从所述第一缓冲区域读取出本次申请的数据地址;其中,所述数据读取条件包括所述第一处理模块的读指针与所述第二处理模块的写指针的当前指向位置不同。5.根据权利要求4所述的方法,其特征在于,所述数据读取条件还包括确定当前存在数据申请需求。6.根据权利要求4所述的方法,其特征在于,所述将对应的数据地址释放回所述缓冲器的步骤,包括:通过所述第一处理模块的写指针将各所述数据地址写入所述缓冲器,直至所述第一处理模块的写指针与所述第一处理模块的读指针指向同一个位置。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:输出中断通知;所述中断通知用于指示所述第二处理模块通过第二处理模块的读指针及写指针,将所述第二缓冲区域中的数据地址搬运至所述第一缓冲区域。8.根据权利要求4所述的方法,其特征在于,所述本次申请的数据地址用于表征所述本次交互数据在存储器中的地址;所述将本次申请的数据地址移出缓冲器的第一缓冲区域的步骤,包括:取走缓冲器的第一缓冲区域中的各所述数据地址;将各所述数据地址存放至本地存储空间中;所述依据所述本次申请的数据地址获取所述第二处理模块与所述第一处理模块之间的本次交互数据的步骤,包括:响应于数据申请条件的触发,从所述本地存储空间中获取所述本次申请的数据地址;所述数据申请条件包括确定当前存在数据申请需求;
基于所述本次申请的数据地址,从所述存储器获得所述本次交互数据。9.一种交互方法,其特征在于,应用于第二处理模块,所述第二处理模块通过缓冲器与第一处理模块连接,所述第二处理模块的读写速率低于所述第一处理模块的读写速率,所述方法包括:响应于所述缓冲器中、形成用于存放本次经所述第一处理模块释放回所述缓冲器的数据地址的第二缓冲区域,将所述第二缓冲区域中的数据地址,搬运至所述缓冲器的第一缓冲区域;其中,所述本次经所述第一处理模块释放回所述缓冲器的数据地址为经所述第一处理模块处理完成的本次交互数据所对应的数据地址;所述本次交互数据为从所述第一缓冲区域中移出的本次申请的数据地址指示所述第一处理模块得到。10.根据权利要求9所述的方法,其特征在于,所述第一缓冲区域和所述第二缓冲区域无交叉;所述第一缓冲区域的全部存储空间用于存放当前可供所述第一处理模块申请的数据地址;所述第二缓冲区域的全部存储空间用于存放当前可供所述第二处理模块搬运的数据地址。11.根据权利要求10所述的方法,其特征在于,在所述将缓冲器的第二缓冲区域中的数据地址,搬运至所述缓冲器的第一缓冲区域中的步骤之后,所述方法还包括:将所述第二缓冲区域中空闲的部分或全部存储空间释放回所述缓冲器。12.根据权利要求9至11任一项所述的方法,其特征在于,所述将所述第二缓冲区域中的数据地址,搬运至所述缓冲器的第一缓冲区域的步骤,包括:响应于数据搬运条件的触发,通过第二处理模块的读指针及写指针,将所述第二缓冲区域中的数据地址搬运至所述第一缓冲区域;所述数据搬运条件包括所述第二处理模块的写指针和所述第一处理模块的读指针的当前指向位置不同。13.根据权利要求12所述的方法,其特征在于,所述数据搬运条件还包括接收到所述第一处理模块传输的中断通知。14.根据权利要求9至11任一项所述的方法,其特征在于,所述本次申请的数据地址用于表征所述本次交互数据在存储器中的地址;所述方法还包括:将所述第一处理模块所需的各交互数据写入所述存储器;通过初始化所述缓冲器,将分别对应各所述交互数据的数据地址写入所述缓冲器。15.一种数据交互装置,其特征在于,应用于第一处理模块,所述第一处理模块通过缓冲器与第二处理模块连接,所述第二处理模块的读写速率低于所述第一处理模块的读写速率,所述装置包括:地址获取模块,用于将本次申请的数据地址移出所述缓冲器的第一缓冲区域,并依据所述本次申请的数据地址获取所述第二处理模块与所述第一处理模块之间的本次交互数据;地址释放模块,用于响应于完成对所述本次交互数据的处理,将对应的数据地址释放回所述缓冲器,以在所述缓冲器中形成用于存放本次经所述第一处理模块释放的数据地址的第二缓冲区域,并指示所述第二处理模块将所述第二缓冲区域中的数据地址搬运至所述
第一缓冲区域。16.一种数据交互装置,其特征在于,应用于第二处理模块,所述第二处理模块通过缓冲器与第一处理模块连接,所述第二处理模块的读写速率低于所述第一处理模块的读写速率,所述装置包括:地址搬运模块,用于响应于所述缓冲器中、形成用于存放本次经所述第一处理模块释放回所述缓冲器的数据地址的第二缓冲区域,将所述第二缓冲区域中的数据地址,搬运至所述缓冲器的第一缓冲区域;其中,所述本次经所述第一处理模块释放回所述缓冲器的数据地址为经所述第一处理模块处理完成的本次交互数据所对应的数据地址;所述本次交互数据为从所述第一缓冲区域中移出的本次申请的数据地址指示所述第一处理模块得到。17.一种数据交互系统,其特征在于,包括第一处理模块和第二处理模块,所述第一处理模块通过缓冲器与所述第二处理模块连接,所述第二处理模块的读写速率低于所述第一处理模块的读写速率;其中,所述第一处理模块用于执行权利要求1至8任一项所述的交互方法;所述第二处理模块用于执行权利要求9至14任一项所述的交互方法。18.一种芯片,其特征在于,包括第一处理模块和第二处理模块,所述第一处理模块通过缓冲器与所述第二处理模块连接,所述第二处理模块的读写速率低于所述第一处理模块的读写速率;其中,所述第一处理模块用于执行权利要求1至8任一项所述的交互方法;所述第二处理模块用于执行权利要求9至14任一项所述的交互方法。19.根据权利要求18所述的芯片,其特征在于,还包括连接在所述第一处理模块和所述第二处理模块之间的存储器。20.根据权利要求18或19所述的芯片,其特征在于,所述第一处理模块为硬件模块,所述第二处理模块为软件模块。21.一种电子设备,其特征在于,包括如权利要求18至20任一项所述的芯片。22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。23.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
技术总结
本申请涉及一种数据交互方法、装置、芯片及电子设备。所述方法包括:将本次申请的数据地址移出缓冲器的第一缓冲区域,并依据本次申请的数据地址获取第二处理模块与第一处理模块之间的本次交互数据;响应于完成对本次交互数据的处理,将对应的数据地址释放回缓冲器,以在缓冲器中形成用于存放本次经第一处理模块释放的数据地址的第二缓冲区域,并指示第二处理模块将第二缓冲区域中的数据地址搬运至第一缓冲区域。本申请能够完成第一处理模块与第二处理模块之间数据地址的申请、使用、释放及搬运的循环,大大降低了空间占用。大大降低了空间占用。大大降低了空间占用。
技术研发人员:程智杰 史俊达 任海波
受保护的技术使用者:哲库科技(上海)有限公司
技术研发日:2023.03.21
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/