CN115061959B - 数据交互方法、装置、***、电子设备和存储介质 - Google Patents
数据交互方法、装置、***、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115061959B CN115061959B CN202210985974.4A CN202210985974A CN115061959B CN 115061959 B CN115061959 B CN 115061959B CN 202210985974 A CN202210985974 A CN 202210985974A CN 115061959 B CN115061959 B CN 115061959B
- Authority
- CN
- China
- Prior art keywords
- circuit unit
- parameters
- buffer
- data processing
- downlink
- 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
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 122
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 390
- 239000000872 buffer Substances 0.000 claims abstract description 389
- 230000015654 memory Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000011144 upstream manufacturing Methods 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 21
- 230000003139 buffering effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 238000007906 compression Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008054 signal transmission 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种数据交互方法、装置、***、电子设备和存储介质,该数据交互方法包括:响应于参数写入操作信号,获得参数并存储于下行缓冲;从下行缓冲中获取参数并发送给数据处理电路单元,以使数据处理电路单元基于参数执行数据处理以获得输出数据;将输出数据存储于上行缓冲;记录上行缓冲中存储的输出数据的数量,并在上行缓冲中存储的输出数据的数量达到输出数量阈值时,发送上行缓冲的存储状态信息;响应于数据读取操作指令,输出上行缓冲中存储的全部输出数据。本公开可减少外部与数据处理电路单元之间数据交互过程中的交互频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。
Description
技术领域
本公开涉及数据处理技术领域,特别涉及一种数据交互方法、装置、***、电子设备和存储介质。
背景技术
通常来说,一套完整的嵌入式芯片***包括中央处理器、存储单元、总线互联结构和IP(Intellectual Property,知识产权)模块等,其中IP模块也可以称为IP核。IP模块的正常工作会依赖于中央处理器的参数配置,并且中央处理器也需要获取当前IP模块的运行状态,在合适的时间点将参数(或操作码)配置给IP模块。
目前,嵌入式芯片***中通常采用寄存器的方式实现中央处理器与IP模块之间的交互,中央处理器通过总线互联结构将参数(或操作码)配置给IP模块,IP模块按照所配置的参数(或操作码)完成处理后将处理得到的相关信息写进状态寄存器,中央处理器在状态寄存器查询到相关信息后,对IP模块进行下一轮参数(或操作码)的配置。采用这种交互方式,对于参数多、实时性要求高的IP模块来说,受制于寄存器存储容量的限制,会严重限制IP模块的性能。
因此,如何解决IP模块与外部的交互对IP模块所带来的性能影响,便成为亟待解决的问题。
发明内容
有鉴于此,本公开提供一种数据交互方法、装置、***、电子设备和存储介质,以减少作为数据处理电路单元的IP模块与外部的交互频次,避免频繁交互给IP模块带来的性能影响,进而提升IP模块的性能。
本公开的技术方案是这样实现的:
一种数据交互方法,包括:
响应于参数写入操作信号,将所获得的参数存储于下行缓冲;
从所述下行缓冲中获取所述参数并发送给数据处理电路单元,以使所述数据处理电路单元基于所述参数执行数据处理以获得输出数据;
将所述输出数据存储于上行缓冲;
记录所述上行缓冲中存储的输出数据的数量,并在所述上行缓冲中存储的输出数据的数量达到输出数量阈值时,发送所述上行缓冲的存储状态信息,其中,所述上行缓冲的存储状态信息用于表征所述上行缓冲不可继续存储所述输出数据;
响应于数据读取操作指令,输出所述上行缓冲中存储的所述输出数据。
进一步,所述数据交互方法还包括:
记录所述下行缓冲中存储的参数的数量;
在所述下行缓冲中存储的参数的数量从小于输入数量上限阈值达到大于或等于所述输入数量上限阈值时,发送第一下行存储状态信息,所述第一下行存储状态信息用于表征所述下行缓冲不可继续存储所述参数;
在所述下行缓冲中存储的参数的数量从大于输入数量下限阈值达到小于或等于所述输入数量下限阈值时,发送第二下行存储状态信息,所述第二下行存储状态信息用于表征所述下行缓冲可以继续存储所述参数。
进一步,所述响应于参数写入操作信号,获得参数并存储于下行缓冲,包括:
响应于所述参数写入操作信号,获得所述参数;
将所述参数写入操作信号转换为写入所述下行缓冲操作的电写入信号,其中,所述参数写入操作信号基于总线协议;
基于所述电写入信号,将所述参数存储于所述下行缓冲。
进一步,所述下行缓冲在先进先出队列FIFO或者SRAM中。
进一步,所述从所述下行缓冲中获取所述参数并发送给数据处理电路单元,包括:
从所述下行缓冲中获取所述参数并存入乒乓缓冲中,从所述乒乓缓冲中获取所述参数并发送给所述数据处理电路单元。
进一步,所述乒乓缓冲包括两个缓存区域,其中,所述两个缓存区域中的任意一个缓存区域为第一缓存区域,所述两个缓存区域中的除所述第一缓存区域以外的另外一个缓存区域为第二缓存区域,所述两个缓存区域用于分别存储不同的所述参数;
其中,所述从所述下行缓冲中获取所述参数并存入乒乓缓冲中,从所述乒乓缓冲中获取所述参数并发送给所述数据处理电路单元,包括:
在所述第一缓存区域未存储参数并且所述下行缓冲中存储有所述参数的情况下,从所述下行缓冲中获取参数并存入所述第一缓存区域;
在所述第二缓存区域未存储参数并且所述下行缓冲中存储有所述参数的情况下,从所述下行缓冲中获取参数并存入所述第二缓存区域,其中,存入所述第一缓存区域的参数与存入所述第二缓存区域的参数不同;
获取所述第一缓存区域中的参数或者所述第二缓存区域中的参数,并发送给所述数据处理电路单元。
进一步,所述数据交互方法还包括:
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第一缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理成功的情况下,将所述第一缓存区域中的参数从所述第一缓存区域中删除,并获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;或者,
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理成功的情况下,将所述第二缓存区域中的参数从所述第二缓存区域中删除,并获取所述第一缓存区域中的参数并发送给所述数据处理电路单元。
进一步,所述响应于数据读取操作指令,输出所述上行缓冲中存储的全部所述输出数据,包括:
响应于所述数据读取操作指令,从所述上行缓冲中读取所述输出数据;
将读取的所述输出数据转换为总线协议的信号通过总线发送。
一种数据交互装置,所述数据交互装置包括下行写入电路单元、下行缓冲电路单元、下行读取电路单元、上行写入电路单元、上行缓冲电路单元、上行状态监控电路单元和上行读出电路单元;其中,
所述下行写入电路单元,用于响应于参数写入操作信号,获得参数并存储于所述下行缓冲电路单元;
所述下行缓冲电路单元电连接于所述下行写入电路单元,用于存储所述参数;
所述下行读取电路单元电连接于所述下行缓冲电路单元和数据处理电路单元,用于从所述下行缓冲电路单元中获取所述参数并发送给所述数据处理电路单元;
所述上行写入电路单元电连接于所述数据处理电路单元,用于将由所述数据处理电路单元获得的输出数据存储于所述上行缓冲电路单元;
所述上行缓冲电路单元电连接于所述上行写入电路单元,用于存储所述输出数据;
所述上行状态监控电路单元电连接于所述上行缓冲电路单元,用于记录所述上行缓冲电路单元中存储的输出数据的数量,并在所述上行缓冲电路单元中存储的输出数据的数量达到输出数量阈值时,发送所述上行缓冲电路单元的存储状态信息,其中,所述上行缓冲电路单元的存储状态信息用于表征所述上行缓冲电路单元不可继续存储所述输出数据;
所述上行读出电路单元电连接于所述上行缓冲电路单元,用于响应于数据读取操作指令,输出所述上行缓冲电路单元中存储的所述输出数据。
进一步,所述数据交互装置还包括:所述数据处理电路单元,用于基于所述参数执行数据处理以获得所述输出数据,并将所述输出数据发送给所述上行写入电路单元。
进一步,所述数据交互装置还包括:
下行状态监控电路单元,所述下行状态监控电路单元电连接于所述下行缓冲电路单元,用于:
记录所述下行缓冲电路单元中存储的参数的数量;在所述下行缓冲电路单元中存储的参数的数量从小于输入数量上限阈值达到大于或等于所述输入数量上限阈值时,发送第一下行存储状态信息;在所述下行缓冲电路单元中存储的参数的数量从大于输入数量下限阈值达到小于或等于所述输入数量下限阈值时,发送第二下行存储状态信息;
其中,所述第一下行存储状态信息用于表征所述下行缓冲电路单元不可继续存储所述参数,所述第二下行存储状态信息用于表征所述下行缓冲电路单元可以继续存储所述参数。
进一步,所述下行读取电路单元包括下行读取控制子电路单元和乒乓缓冲子电路单元;
所述下行读取控制子电路单元用于:从所述下行缓冲电路单元中获取所述参数并存入所述乒乓缓冲子电路单元中,从所述乒乓缓冲子电路单元中获取所述参数并发送给所述数据处理电路单元。
进一步,所述乒乓缓冲子电路单元包括两个缓存区域,其中,所述两个缓存区域中的任意一个缓存区域为第一缓存区域,所述两个缓存区域中的除所述第一缓存区域以外的另外一个缓存区域为第二缓存区域,所述两个缓存区域用于分别存储不同的所述参数;
所述下行读取控制子电路单元进一步用于:
在所述第一缓存区域未存储参数并且所述下行缓冲电路单元中存储有所述参数的情况下,从所述下行缓冲电路单元中获取参数并存入所述第一缓存区域;
在所述第二缓存区域未存储参数并且所述下行缓冲电路单元中存储有所述参数的情况下,从所述下行缓冲电路单元中获取参数并存入所述第二缓存区域,其中,存入所述第一缓存区域的参数与存入所述第二缓存区域的参数不同;
获取所述第一缓存区域中的参数或者所述第二缓存区域中的参数,并发送给所述数据处理电路单元。
进一步,所述下行读取电路单元进一步用于:
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第一缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理成功的情况下,将所述第一缓存区域中的参数从所述第一缓存区域中删除,并获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;或者,
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理成功的情况下,将所述第二缓存区域中的参数从所述第二缓存区域中删除,并获取所述第一缓存区域中的参数并发送给所述数据处理电路单元。
一种数据交互***,包括:
通过总线进行通讯连接的中央处理单元和如上任一项所述的数据交互装置;其中,
所述中央处理单元用于通过所述总线向所述数据交互装置发出所述参数写入操作信号,响应于接收到的所述上行缓冲电路单元的存储状态信息,向所述数据交互装置发出所述数据读取操作指令并接收所述输出数据。
一种电子设备,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如上任一项所述的数据交互方法。
一种计算机可读存储介质,当所述计算机可读存储介质中的至少一条指令被电子设备的处理器执行时,使得所述电子设备能够实现如上任一项所述的数据交互方法。
从上述方案可以看出,本公开实施例的数据交互方法、装置、***、电子设备和存储介质,可减少从外部到数据处理电路单元的下行方向和从数据处理电路单元到外部的上行方向的数据交互过程中数据处理电路单元与外部的交互频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。具体地,在从外部到数据处理电路单元的下行方向采用下行缓冲的硬件方式,将数据处理电路单元将要进行数据处理所需要的参数进行存储,数据处理电路单元从下行缓冲中直接获取参数进行数据处理而无需通过与外部的交互而获得参数,从而可减少数据处理单元与外部进行交互的频次,并且,在从数据处理电路单元到外部到上行方向采用上行缓冲的硬件方式,将数据处理电路单元输出的输出数据进行存储,并且在上行缓冲的中数据的数量达到输出数量阈值的情况下批量向外部发送输出数据,从而数据处理单元无需每次的输出数据均与外部进行一次交互而向外部输出,从而可减少数据处理单元为获取参数和输出输出数据而与外部进行交互的频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。其中,在优选实施例中,下行缓冲采用先进先出队列的方式,使得数据处理电路单元能够按照参数提供的顺序顺次执行数据处理,避免了数据处理过程的混乱,并且采用乒乓缓冲的方式从下行缓冲向数据处理电路单元提供参数,使得数据处理电路单元在数据处理未正确执行的情况下能够重新获得数据处理未正确执行的参数并再次执行数据处理,确保了输出数据的正确。
附图说明
图1是根据一示意性实施例示出的数据交互方法流程图;
图2是根据一示意性实施例示出的对下行缓冲进行管理的实施例流程图;
图3是根据一示意性实施例示出的存储参数过程的流程图;
图4是根据一示意性实施例示出的输出输出数据过程的流程图;
图5是根据一示意性实施例示出的采用乒乓缓冲的方式进行参数发送的流程图;
图6是根据一示意性实施例示出的采用乒乓缓冲的方式在数据处理失败情况下的处理过程流程图;
图7是根据一示意性实施例示出的乒乓缓冲的方式进行参数发送的缓存变化示意图;
图8是根据一示意性实施例示出的一种数据交互装置示意图;
图9是根据一示意性实施例示出的数据交互方法、装置的应用场景示意图;
图10是根据一示意性实施例示出的一种数据交互***示意图;
图11是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本公开作进一步详细说明。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图1是根据一示意性实施例示出的数据交互方法流程图,如图1所示,该数据交互方法主要包括以下步骤101至步骤105。
步骤101、响应于参数写入操作信号,获得参数并存储于下行缓冲。
在一些实施例中,参数写入操作信号来源于总线,参数写入操作信号可以是中央处理单元通过总线发出的。
步骤102、从下行缓冲中获取参数并发送给数据处理电路单元,以使数据处理电路单元基于参数执行数据处理以获得输出数据。
在一些实施例中,数据处理电路单元可以是IP模块。本公开实施例中,将参数存储于下行缓冲,数据处理电路单元从下行缓冲获取参数。
本公开实施例利用下行缓冲,中央处理单元只向下行缓冲存储参数,并且数据处理电路单元只从下行缓冲获取参数,使得参数传递过程中减少了中央处理单元和数据处理电路单元之间的交互,从而减少了数据处理电路单元为了响应外部数据交互而执行响应操作的频次,使得数据处理电路单元有更多的时间执行数据处理,从而避免了频繁交互给数据处理电路单元带来的性能影响,提升了数据处理电路单元的性能。
步骤103、将输出数据存储于上行缓冲。
在一些实施例中,输出数据包括基于参数执行数据处理所得到的结果数据和在执行数据处理过程中所得到的状态信息。
步骤104、记录上行缓冲中存储的输出数据的数量,并在上行缓冲中存储的输出数据的数量达到输出数量阈值时,发送上行缓冲的存储状态信息,其中,上行缓冲的存储状态信息用于表征上行缓冲不可继续存储所述输出数据。
在一些实施例中,上行缓冲的存储状态信息可以用于触发接收该上行缓冲的存储状态信息的主体(如中央处理单元)发出数据读取操作指令以获取上行缓冲存储的所有输出数据。其中,中央处理单元可以配置为在接收到上行缓冲的存储状态信息后发出数据读取操作指令。
在一些实施例中,上行缓冲的存储状态信息通过总线发送,并由中央处理单元获取。基于这种情况,中央处理单元可以一次性的获取上行缓冲中的所有输出数据,并且,数据处理电路单元只向上行缓冲存储输出数据,使得输出数据在从数据处理电路单元进行上传的过程中减少了中央处理单元和数据处理电路单元之间的交互,从而减少了数据处理电路单元为了输出数据而与中央处理单元进行交互的频次,使得数据处理电路单元有更多的时间执行数据处理,从而避免了频繁交互给数据处理电路单元带来的性能影响,提升了数据处理电路单元的性能。
步骤105、响应于数据读取操作指令,输出上行缓冲中存储的全部输出数据。
在一些实施例中,数据读取操作指令来源于总线,数据读取操作指令可以是中央处理单元通过总线发出的。在一些实施例中,输出数据通过总线输出。在一些实施例中,输出数据是输出至中央处理单元,在一些实施例中,输出数据也可以是输出至连接于总线的存储单元。在一些实施例中,步骤105还可以进一步包括将输出的输出数据从上行缓冲中删除。采用上述方式,响应于数据读取操作指令而输出上行缓冲中存储的全部输出数据,实现了输出数据的批次传输,减少了数据处理电路单元为了输出数据而与中央处理单元进行交互的频次,使得数据处理电路单元有更多的时间执行数据处理,从而避免了频繁交互给数据处理电路单元带来的性能影响,提升了数据处理电路单元的性能。
需要说明的是,作为***调度核心的中央处理单元有大量工作需要处理,通常来说,为确保***整体运行的通畅和稳定,中央处理单元与数据处理电路单元之间的交互需要中央处理单元一侧进行调度安排,在***中同时存在多个数据处理电路单元时,在不采用本公开实施例的数据交互方法的情况下,中央处理单元为了确保各个数据处理电路单元的数据处理,需要不断地向各个数据处理电路单元发送参数,并从各个数据处理电路单元获取各自的输出数据,在这个过程中,中央处理单元需要不断地在各个数据处理电路单元之间进行交互,极大地增加了中央处理单元和数据处理电路的交互耗时,使得数据处理电路单元无法充分释放数据处理的性能,与各个数据处理电路单元之间的频繁交互也增加了中央处理单元的负担。在采用本公开实施例的数据交互方法的情况下,数据处理电路单元只需要从下行缓冲获取执行数据处理所需要的参数并将输出数据存储于上行缓冲,对于参数的获取和输出数据的发送不需要与中央处理单元进行交互,可减少数据处理电路单元和中央处理单元的交互频次,使得数据处理电路单元能够充分释放数据处理的性能,在输出数据的输出过程中,中央处理单元是在上行缓冲中存储的输出数据的数量达到输出数量阈值的情况下发出数据读取操作指令,并且输出上行缓冲中存储的全部输出数据,实现了输出数据的批量输出形式,可减少中央处理单元在执行输出数据从数据处理电路单元一侧输出过程中的交互频次,有助于减轻中央处理单元的负担。
除了对上行缓冲的输出数据数量的管理外,在一些实施例中,本公开的数据交互方法还可以进一步包括对下行缓冲存储的参数数量的管理方案。图2是根据一示意性实施例示出的对下行缓冲进行管理的实施例流程图,如图2所示,该过程包括以下步骤201至步骤203。
步骤201、记录下行缓冲中存储的参数的数量。
步骤202、在下行缓冲中存储的参数的数量从小于输入数量上限阈值达到大于或等于输入数量上限阈值时,发送第一下行存储状态信息,第一下行存储状态信息用于表征下行缓冲不可继续存储参数。
步骤203、在下行缓冲中存储的参数的数量从大于输入数量下限阈值达到小于或等于输入数量下限阈值时,发送第二下行存储状态信息,第二下行存储状态信息用于表征下行缓冲可以继续存储所述参数。
在一些实施例中,第一下行存储状态信息和第二下行存储状态信息通过总线发送。第一下行存储状态信息表征下行缓冲中存储的参数的数量达到输入数量上限阈值。第二下行存储状态信息表征下行缓冲中存储的参数的数量未超过输入数量下限阈值。
采用上述对下行缓冲进行管理的方式,配合于接收第一下行存储状态信息和第二下行存储状态信息并通过总线下发参数的中央处理单元的工作,能够使得中央处理单元在接收到第一下行存储状态信息之后中止下发参数,在接收到第二下行存储状态信息之后继续下发参数,使得中央处理单元只需要基于第一下行存储状态信息和第二下行存储状态信息执行参数的下发,而避免了与数据处理电路单元之间的频繁交互来确定数据处理电路单元是否需要接收参数情况,可减轻中央处理单元的负担。
在基于参数写入操作信号来源于总线,参数写入操作信号可以是中央处理单元通过总线发出的实施例中,总线中的信号传输依据预设的总线协议执行,而对下行缓冲的参数写入操作和从上行缓冲的输出数据的读取操作与总线协议之间可能存在不兼容的问题,基于这种情况,需要在总线协议与下行缓冲的参数写入操作之间,以及上行缓冲的输出数据读取操作与总线协议之间,进行协议转换。因此,在步骤101和步骤105中还可以进一步包括关于协议转换的过程。
图3是根据一示意性实施例示出的存储参数过程的流程图,如图3所示,步骤101的响应于参数写入操作信号,获得参数并存储于下行缓冲,包括:
步骤1011、响应于参数写入操作信号,获得参数;
步骤1012、将参数写入操作信号转换为写入下行缓冲操作的电写入信号,其中,参数写入操作信号基于总线协议;
步骤1013、基于电写入信号,将参数存储于下行缓冲。
在一些实施例中,下行缓冲在FIFO(先进先出队列,First Input First Output)或者SRAM(Static Random-Access Memory,静态随机存取存储器)中。其中,FIFO具有先进先出的写入读出策略,能够确保写入FIFO和从FIFO读出的参数的顺序的一致性,保证数据处理电路单元对数据处理的先后顺序不被打乱。其中,采用SRAM可以按照地址索引的方式写入和读出参数,同样能够保证写入SRAM和从SRAM读出的参数的顺序的一致性,保证数据处理电路单元对数据处理的先后顺序不被打乱。
图4是根据一示意性实施例示出的输出输出数据过程的流程图,如图4所示,步骤105的响应于数据读取操作指令,输出上行缓冲中存储的全部输出数据,包括:
步骤1051、响应于数据读取操作指令,从上行缓冲中读取输出数据;
步骤1052、将读取的输出数据转换为总线协议的信号通过总线发送。
在一些实施例中,上行缓冲也可以采用FIFO或者SRAM的形式。
在一些实施例中,可以采用多种方式实现从下行缓冲中获取参数并发送给数据处理电路单元,包括顺序读取、乒乓缓冲等方式。其中,顺序读取是指按照指定顺序,如按照先进先出队列的顺序,获取下行缓冲中的一个(或一组)参数并发送给数据处理电路单元,数据处理电路单元根据得到的参数进行数据处理,数据处理完毕后,获取下行缓冲中的下一个(或下一组)参数并发送给数据处理电路单元,数据处理电路单元根据得到的下一个(或下一组)参数进行数据处理,依次类推。然而,顺序读取的方式,可能存在由于数据处理电路单元的数据处理失败并且该数据处理所需要的参数已从下行缓冲中读取而无法再次获得,使得数据处理电路单元无法重新执行该数据处理以进行纠正的问题。因此,在优选实施例中,采用乒乓缓冲的方式实现从下行缓冲中获取参数并发送给数据处理电路单元。
在一些实施例中,步骤102的从下行缓冲中获取参数并发送给数据处理电路单元,进一步包括:
从下行缓冲中获取参数并存入乒乓缓冲中,从乒乓缓冲中获取参数并发送给数据处理电路单元。
在一些实施例中,乒乓缓冲包括两个缓存区域,其中,两个缓存区域中的任意一个缓存区域为第一缓存区域,两个缓存区域中的除第一缓存区域以外的另外一个缓存区域为第二缓存区域,两个缓存区域用于分别存储不同的参数。
图5是根据一示意性实施例示出的采用乒乓缓冲的方式进行参数发送的流程图,如图5所示,基于乒乓缓冲包括两个缓存区域的实施例,从下行缓冲中获取参数并存入乒乓缓冲中,从乒乓缓冲中获取参数并发送给数据处理电路单元,进一步包括:
步骤501、在第一缓存区域未存储参数并且下行缓冲中存储有参数的情况下,从下行缓冲中获取参数并存入第一缓存区域;
步骤502、在第二缓存区域未存储参数并且下行缓冲中存储有参数的情况下,从下行缓冲中获取参数并存入第二缓存区域,其中,存入第一缓存区域的参数与存入第二缓存区域的参数不同;
步骤503、获取第一缓存区域中的参数或者第二缓存区域中的参数,并发送给数据处理电路单元。
采用上述方式,第一缓存区域和第二缓存区域分别存储不同的参数,能够避免数据处理电路单元出现异常而导致当前参数未正确执行且参数丢失的问题。
具体地,继续参见图5所示,本公开实施例的数据交互方法进一步包括以下步骤504至步骤507。
步骤504、在数据处理电路单元基于从第一缓存区域中获取的参数执行数据处理失败的情况下,再次获取第一缓存区域中的参数并发送给数据处理电路单元;
步骤505、在数据处理电路单元基于从第一缓存区域中获取的参数执行数据处理成功的情况下,将第一缓存区域中的参数从第一缓存区域中删除,并获取第二缓存区域中的参数并发送给数据处理电路单元;
步骤506、在数据处理电路单元基于从第二缓存区域中获取的参数执行数据处理失败的情况下,再次获取第二缓存区域中的参数并发送给数据处理电路单元;
步骤507、在数据处理电路单元基于从第二缓存区域中获取的参数执行数据处理成功的情况下,将第二缓存区域中的参数从第二缓存区域中删除,并获取第一缓存区域中的参数并发送给数据处理电路单元;
以此类推。
图6是根据一示意性实施例示出的采用乒乓缓冲的方式处理过程流程图,如图6所示,基于乒乓缓冲,本公开实施例的数据交互方法还可以进一步包括如下步骤601至步骤603的过程。
步骤601、在数据处理电路单元基于参数执行数据处理失败的情况下,从乒乓缓冲中再次获取参数并再次执行数据处理;或者,
步骤602、在数据处理电路单元基于参数执行数据处理成功的情况下,从乒乓缓冲中删除参数;或者,
步骤603、在乒乓缓冲未存满参数的情况下,从下行缓冲中读取新的参数并存储于乒乓缓冲中。
在一些实施例中,数据处理电路单元执行数据处理是否失败可由数据处理电路单元自身判断,例如,数据处理电路单元可以通过其状态标志位的信息来获其执行状态,从而确定数据处理是否失败。
图7是根据一示意性实施例示出的乒乓缓冲的方式进行参数发送的缓存变化示意图,如图7所示,该变化过程如下。
在步骤701的变化状态中,先进先出队列中依次存储参数A、参数B、参数C等参数。
在步骤702的变化状态中,先进先出队列中的参数A进入乒乓缓冲中的一个缓存位置,并且,先进先出队列中下一个将被送入乒乓缓冲的参数为参数B,此时参数A因为已经进入乒乓缓冲所以从先进先出队列中删除。
在步骤703的变化状态中,先进先出队列中的参数B进入乒乓缓冲中的另一个缓存位置,并且,先进先出队列中下一个将被送入乒乓缓冲的参数为参数C,此时参数B因为已经进入乒乓缓冲所以从先进先出队列中删除。
在步骤704的变化状态中,从乒乓缓冲中获取参数A并发送给数据处理电路单元,数据处理电路单元基于参数A执行数据处理,此时乒乓缓冲中并不删除参数A。在数据处理电路单元基于参数A执行数据处理出现失败的情况下,因为乒乓缓冲中仍然存储参数A,所以数据处理电路单元仍然可以得到参数A并再次基于参数A执行数据处理。在数据处理电路单元基于参数A执行数据处理没有出现失败而正常执行完毕的情况下,可以进入步骤705。
在步骤705的变化状态中,在数据处理电路单元基于参数A执行数据处理没有出现失败而正常执行完毕的情况下,从乒乓缓冲中获取参数B并发送给数据处理电路单元,数据处理电路单元基于参数B执行数据处理,此时乒乓缓冲中并不删除参数B,先进先出队列中的参数C进入乒乓缓冲中的原参数A所在的缓存位置,并且,先进先出队列中下一个将被送入乒乓缓冲的参数为参数D,此时参数C因为已经进入乒乓缓冲所以从先进先出队列中删除。在数据处理电路单元基于参数B执行数据处理出现失败的情况下,因为乒乓缓冲中仍然存储参数B,所以数据处理电路单元仍然可以得到参数B并再次基于参数B执行数据处理。在数据处理电路单元基于参数B执行数据处理没有出现失败而正常执行完毕的情况下,可以进入步骤706。
在步骤706的变化状态中,在数据处理电路单元基于参数B执行数据处理没有出现失败而正常执行完毕的情况下,从乒乓缓冲中获取参数C并发送给数据处理电路单元,数据处理电路单元基于参数C执行数据处理,此时乒乓缓冲中并不删除参数C,先进先出队列中的参数D进入乒乓缓冲中的原参数B所在的缓存位置,并且,先进先出队列中下一个将被送入乒乓缓冲的参数为参数E,此时参数D因为已经进入乒乓缓冲所以从先进先出队列中删除。在数据处理电路单元基于参数C执行数据处理出现失败的情况下,因为乒乓缓冲中仍然存储参数C,所以数据处理电路单元仍然可以得到参数C并再次基于参数C执行数据处理。在数据处理电路单元基于参数C执行数据处理没有出现失败而正常执行完毕的情况下,数据处理电路单元可以按照上述说明而获取参数D、参数E、参数F、参数G等参数。
其中,数据处理的失败可以是指数据处理结果出现错误,在数据处理过程中因为各种原因导致的未完成数据处理而终止的情况。
其中,参数A、参数B、参数C、参数D、参数E、参数F、参数G仅为不同参数之间的区分命名,以参数A为例,参数A可以代表一个参数或者一组参数,参数A代表数据处理电路单元进行一次数据处理所需要的全部参数的组合,该全部参数依据具体的数据处理电路单元的功能和应用环境而设定,可以是一个参数也可以是多于一个参数。
本公开实施例的数据交互方法,可减少从外部到数据处理电路单元的下行方向和从数据处理电路单元到外部的上行方向的数据交互过程中数据处理电路单元与外部的交互频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。具体地,在从外部到数据处理电路单元的下行方向采用下行缓冲的硬件方式,将数据处理电路单元将要进行数据处理所需要的参数进行存储,数据处理电路单元从下行缓冲中直接获取参数进行数据处理而无需通过与外部的交互而获得参数,从而可减少数据处理单元与外部进行交互的频次,并且,在从数据处理电路单元到外部到上行方向采用上行缓冲的硬件方式,将数据处理电路单元输出的输出数据进行存储,并且在上行缓冲中的数据的数量达到输出数量阈值的情况下批量向外部发送输出数据,从而数据处理单元无需每次的输出数据均与外部进行一次交互而向外部输出,从而可减少数据处理单元为获取参数和输出输出数据而与外部进行交互的频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。其中,在优选实施例中,下行缓冲采用先进先出队列的方式,使得数据处理电路单元能够按照参数提供的顺序顺次执行数据处理,避免了数据处理过程的混乱,并且采用乒乓缓冲的方式从下行缓冲向数据处理电路单元提供参数,使得数据处理电路单元在数据处理未正确执行的情况下能够重新获得数据处理未正确执行的参数并再次执行数据处理,确保了输出数据的正确。
图8是根据一示意性实施例示出的一种数据交互装置示意图,如图8所示,该数据交互装置包括下行写入电路单元801、下行缓冲电路单元802、下行读取电路单元803、上行写入电路单元804、上行缓冲电路单元805、上行状态监控电路单元806和上行读出电路单元807。进一步,根据另一示意性实施例示出的一种数据交互装置,还包括:数据处理电路单元809。下面为清楚的描述数据交互装置与数据处理电路单元809之间的交互过程,将结合各个模块进行详细说明。
其中,下行写入电路单元801,用于响应于参数写入操作信号,获得参数并存储于下行缓冲电路单元802。在一些实施例中,下行写入电路单元801通讯连接于总线,参数写入操作信号和参数来源于总线,在一些实施例中,参数写入操作信号和参数可以是中央处理单元通过总线发出。
下行缓冲电路单元802电连接于下行写入电路单元801,用于存储参数。在一些实施例中,下行缓冲电路单元802为SRAM,在优选实施例中,下行缓冲电路单元802采用先进先出队列缓冲的方式存储参数。
下行读取电路单元803电连接于下行缓冲电路单元802和数据处理电路单元809,下行读取电路单元803用于从下行缓冲电路单元802中获取参数并发送给数据处理电路单元809。
上行写入电路单元804电连接于数据处理电路单元809,上行写入电路单元804用于将由数据处理电路单元809获得的输出数据存储于上行缓冲电路单元805。
上行缓冲电路单元805电连接于上行写入电路单元804,上行缓冲电路单元805用于存储输出数据。
上行状态监控电路单元806电连接于上行缓冲电路单元805,用于记录上行缓冲电路单元805中存储的输出数据的数量,并在上行缓冲电路单元805中存储的输出数据的数量达到输出数量阈值时,发送上行缓冲电路单元805的存储状态信息,其中,上行缓冲的存储状态信息用于表征上行缓冲电路单元805不可继续存储输出数据。在一些实施例中,上行状态监控电路单元806通讯连接于总线,并通过总线发送上行缓冲电路单元805的存储状态信息,在一些实施例中,上行缓冲电路单元805的存储状态信息由中央处理单元获取,上行缓冲电路单元805的存储状态信息用于表征上行缓冲电路单元805不可继续存储输出数据。
上行读出电路单元807电连接于上行缓冲电路单元805,上行读出电路单元807用于响应于数据读取操作指令,输出上行缓冲电路单元805中存储的输出数据。在一些实施例中,上行读出电路单元807通讯连接于总线,数据读取操作指令来源于总线,在一些实施例中,数据读取操作指令可以是中央处理单元通过总线发出,输出数据可以是通过总线输出,输出数据可以被中央处理单元接收也可以被连接于总线的存储单元接收。
在一些实施例中,数据处理电路单元809用于基于参数执行数据处理以获得输出数据,并将输出数据发送给上行写入电路单元804。
继续参见图8所示,在一些实施例中,数据交互装置还包括下行状态监控电路单元808。其中,下行状态监控电路单元808电连接于下行缓冲电路单元802。在一些实施例中,下行状态监控电路单元808通讯连接于总线。
下行状态监控电路单元808用于:记录下行缓冲电路单元802中存储的参数的数量;在下行缓冲电路单元802中存储的参数的数量从小于输入数量上限阈值达到大于或等于输入数量上限阈值时,发送第一下行存储状态信息;在下行缓冲电路单元802中存储的参数的数量从大于输入数量下限阈值达到小于或等于输入数量下限阈值时,发送第二下行存储状态信息;其中,第一下行存储状态信息用于表征下行缓冲电路单元802不可继续存储参数,第二下行存储状态信息用于表征下行缓冲电路单元802可以继续存储参数。
在一些实施例中,下行状态监控电路单元808通过总线发送第一下行存储状态信息和第二下行存储状态信息。
下行状态监控电路单元808采用上述对下行缓冲电路单元802进行管理的方式,配合于接收第一下行存储状态信息和第二下行存储状态信息并通过总线下发参数的中央处理单元的工作,能够使得中央处理单元在接收到第一下行存储状态信息之后中止下发参数,在接收到第二下行存储状态信息之后开始下发参数,使得中央处理单元只需要基于第一下行存储状态信息和第二下行存储状态信息执行参数的下发,而避免了中央处理单元与数据处理电路单元809之间的频繁交互来确定数据处理电路单元809是否需要接收参数的情况,可减轻中央处理单元的负担。
在一些实施例中,下行读取电路单元803包括下行读取控制子电路单元和乒乓缓冲子电路单元。其中,下行读取控制子电路单元用于:从下行缓冲电路单元802中获取参数并存入乒乓缓冲子电路单元中,从乒乓缓冲子电路单元中获取参数并发送给数据处理电路单元809。
在一些实施例中,乒乓缓冲子电路单元包括两个缓存区域,其中,两个缓存区域中的任意一个缓存区域为第一缓存区域,两个缓存区域中的除第一缓存区域以外的另外一个缓存区域为第二缓存区域,两个缓存区域用于分别存储不同的参数;下行读取控制子电路单元进一步用于:
在第一缓存区域未存储参数并且下行缓冲电路单元802中存储有参数的情况下,从下行缓冲电路单元802中获取参数并存入第一缓存区域;
在第二缓存区域未存储参数并且下行缓冲电路单元802中存储有参数的情况下,从下行缓冲电路单元802中获取参数并存入第二缓存区域,其中,存入第一缓存区域的参数与存入第二缓存区域的参数不同;
获取第一缓存区域中的参数或者第二缓存区域中的参数,并发送给数据处理电路单元809。
在一些实施例中,下行读取电路单元进一步还用于:
在数据处理电路单元809基于从第一缓存区域中获取的参数执行数据处理失败的情况下,再次获取第一缓存区域中的参数并发送给数据处理电路单元809;
在数据处理电路单元809基于从第一缓存区域中获取的参数执行数据处理成功的情况下,将第一缓存区域中的参数从第一缓存区域中删除,并获取第二缓存区域中的参数并发送给数据处理电路单元809;或者,
在数据处理电路单元809基于从第二缓存区域中获取的参数执行数据处理失败的情况下,再次获取第二缓存区域中的参数并发送给数据处理电路单元809;
在数据处理电路单元809基于从第二缓存区域中获取的参数执行数据处理成功的情况下,将第二缓存区域中的参数从第二缓存区域中删除,并获取第一缓存区域中的参数并发送给数据处理电路单元809。
在一些实施例中,下行读取电路单元803还用于:在数据处理电路单元809基于参数执行数据处理失败的情况下,从乒乓缓冲子电路单元中再次获取参数并发送给数据处理电路单元809;或者,在数据处理电路单元809基于参数执行数据处理成功的情况下,从乒乓缓冲子电路单元中删除参数;或者,在乒乓缓冲子电路单元未存满参数的情况下,从下行缓冲电路单元802中读取新的参数并存储于乒乓缓冲子电路单元中。
本公开实施例的数据交互装置中,下行写入电路单元801、下行缓冲电路单元802、下行读取电路单元803、上行写入电路单元804、上行缓冲电路单元805、上行状态监控电路单元806、上行读出电路单元807和下行状态监控电路单元808均采用硬件电路模块的形式。数据处理电路单元809也采用硬件电路模块的形式,其中,数据处理电路单元809可以单独为一个IP模块,也可以与其它各个模块共同组成一个IP模块,下行写入电路单元801、下行缓冲电路单元802、下行读取电路单元803、上行写入电路单元804、上行缓冲电路单元805、上行状态监控电路单元806、上行读出电路单元807和下行状态监控电路单元808也可以各自作为独立的IP模块存在。
关于上述实施例中的数据交互装置,其中各个单元执行操作的具体方式已经在有关该数据交互方法的实施例中进行了详细描述,此处将不作详细阐述说明。
本公开实施例的数据交互装置,可减少从外部到数据处理电路单元的下行方向和从数据处理电路单元到外部的上行方向的数据交互过程中数据处理电路单元与外部的交互频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。具体地,在从外部到数据处理电路单元的下行方向采用下行缓冲的硬件方式,将数据处理电路单元将要进行数据处理所需要的参数进行存储,数据处理电路单元从下行缓冲中直接获取参数进行数据处理而无需通过与外部的交互而获得参数,从而可减少数据处理单元与外部进行交互的频次,并且,在从数据处理电路单元到外部到上行方向采用上行缓冲的硬件方式,将数据处理电路单元输出的输出数据进行存储,并且在上行缓冲的中数据的数量达到输出数量阈值的情况下批量向外部发送输出数据,从而数据处理单元无需每次的输出数据均与外部进行一次交互而向外部输出,从而可减少数据处理单元为获取参数和输出输出数据而与外部进行交互的频次,有助于避免频繁交互给数据处理电路单元带来的性能影响,有助于提升数据处理电路单元的性能。其中,在优选实施例中,下行缓冲采用先进先出队列的方式,使得数据处理电路单元能够按照参数提供的顺序顺次执行数据处理,避免了数据处理过程的混乱,并且采用乒乓缓冲的方式从下行缓冲向数据处理电路单元提供参数,使得数据处理电路单元在数据处理未正确执行的情况下能够重新获得数据处理未正确执行的参数并再次执行数据处理,确保了输出数据的正确。
图9是根据一示意性实施例示出的数据交互方法、装置的应用场景示意图,如图9所示,该应用场景是片上(SOC,System on Chip)***中对图像传感器的图像数据进行图像压缩的应用场景,其中结合于图8所示的数据交互装置,数据处理电路单元809用于对图像传感器的图像数据进行图像压缩。该应用场景中,下行缓冲电路单元802采用先进先出队列缓冲的方式存储参数,并且,下行读取电路单元803采用乒乓缓冲策略。
在图像采集***中,图像传感器采集的图像数据送入片上***后首先会被解析,经过压缩处理之后通过DMA(Direct Memory Access,直接存储器访问)通道写入***内存中。其中,结合图8所示,图像数据的压缩处理以及写入***内存地址的参数由中央处理单元通过下行写入电路单元801写入下行缓冲电路单元802,当图像数据的vsync(帧头)到来时下行读取电路单元803从下行缓冲电路单元802的先进先出队列读取该参数,并送入数据处理电路单元809,数据处理电路单元809启动当前帧数据的压缩处理,压缩处理执行完成后,数据处理电路单元809将执行完成的消息反馈至下行读取电路单元803,并将压缩处理后得到的输出数据(图像压缩数据和状态信息)通过上行写入电路单元804存储于上行缓冲电路单元805,供上行读出电路单元807进行上传。
若数据处理电路单元809在执行压缩处理过程中,因为图像传感器受外部环境干扰,导致输出的图像数据不完整,进而数据处理电路单元809压缩数据错误或者DMA通道不能正确的将数据写入***内存,进而可能导致不完整帧对应的参数被浪费或丢失的情况。为了避免这种情况,下行读取电路单元803采用乒乓缓冲策略,下行读取电路单元803首先从下行缓冲电路单元802中读取第一个(组)参数放入乒乓缓冲中的第一子缓冲位置,并将第一个(组)参数送入数据处理电路单元804,随后下行读取电路单元803从下行缓冲电路单元802中读取第二个(组)参数放入乒乓缓冲中的第二子缓冲位置,若数据处理电路单元809返回第一个(组)参数执行正确,则下行读取电路单元803将第二子缓冲位置的第二个(组)参数送入数据处理电路单元809,然后从下行缓冲电路单元802中读取第三个(组)参数放入乒乓缓冲中的第一子缓冲位置,若数据处理电路单元809返回第一个(组)参数执行错误,则下行读取电路单元803继续将第一子缓冲位置的第一个(组)参数送入数据处理电路单元809,不再继续从下行缓冲电路单元802中读取新的参数,从而确保了输出数据的正确,避免了下行缓冲电路单元802中的参数的漏执行。
图10是根据一示意性实施例示出的数据交互***示意图,如图10所示,该数据交互***,包括通过总线进行通讯连接的中央处理单元1001和数据交互装置1002,其中,数据交互装置1002为上述任一实施例的数据交互装置。其中,中央处理单元1001用于通过总线向数据交互装置1002发出参数写入操作信号,响应于接收到的上行缓冲电路单元805的存储状态信息,向数据交互装置1002发出数据读取操作指令并接收输出数据。
在一些实施例中,中央处理单元1001还用于在接收到第一下行存储状态信息时中止向数据交互装置1002发出参数写入操作信号,在接收到第二下行存储状态信息时继续向数据交互装置1002发出参数写入操作信号。
图11是本公开实施例提供的一种电子设备的结构示意图。在一些实施例中,该电子设备为服务器。该电子设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1101和一个或一个以上的存储器1102,其中,该存储器1102中存储有至少一条程序代码,该至少一条程序代码由该处理器1101加载并执行以实现上述各个实施例提供的数据交互方法。当然,该电子设备1100还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备1100还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括至少一条指令的计算机可读存储介质,例如包括至少一条指令的存储器,上述至少一条指令可由计算机设备中的处理器执行以完成上述实施例中的数据交互方法。
可选地,上述计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以包括ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (17)
1.一种数据交互方法,其特征在于,包括:
响应于参数写入操作信号,获得参数并存储于下行缓冲;
从所述下行缓冲中获取所述参数并发送给数据处理电路单元,以使所述数据处理电路单元基于所述参数执行数据处理以获得输出数据;
将所述输出数据存储于上行缓冲;
记录所述上行缓冲中存储的输出数据的数量,并在所述上行缓冲中存储的输出数据的数量达到输出数量阈值时,发送所述上行缓冲的存储状态信息,其中,所述上行缓冲的存储状态信息用于表征所述上行缓冲不可继续存储所述输出数据;
响应于数据读取操作指令,输出所述上行缓冲中存储的所述输出数据。
2.根据权利要求1所述的数据交互方法,其特征在于,所述数据交互方法还包括:
记录所述下行缓冲中存储的参数的数量;
在所述下行缓冲中存储的参数的数量从小于输入数量上限阈值达到大于或等于所述输入数量上限阈值时,发送第一下行存储状态信息,所述第一下行存储状态信息用于表征所述下行缓冲不可继续存储所述参数;
在所述下行缓冲中存储的参数的数量从大于输入数量下限阈值达到小于或等于所述输入数量下限阈值时,发送第二下行存储状态信息,所述第二下行存储状态信息用于表征所述下行缓冲可以继续存储所述参数。
3.根据权利要求1所述的数据交互方法,其特征在于,所述响应于参数写入操作信号,获得参数并存储于下行缓冲,包括:
响应于所述参数写入操作信号,获得所述参数;
将所述参数写入操作信号转换为写入所述下行缓冲操作的电写入信号,其中,所述参数写入操作信号基于总线协议;
基于所述电写入信号,将所述参数存储于所述下行缓冲。
4.根据权利要求1所述的数据交互方法,其特征在于:
所述下行缓冲在先进先出队列FIFO或者SRAM中。
5.根据权利要求1所述的数据交互方法,其特征在于,所述从所述下行缓冲中获取所述参数并发送给数据处理电路单元,包括:
从所述下行缓冲中获取所述参数并存入乒乓缓冲中,从所述乒乓缓冲中获取所述参数并发送给所述数据处理电路单元。
6.根据权利要求5所述的数据交互方法,其特征在于:
所述乒乓缓冲包括两个缓存区域,其中,所述两个缓存区域中的任意一个缓存区域为第一缓存区域,所述两个缓存区域中的除所述第一缓存区域以外的另外一个缓存区域为第二缓存区域,所述两个缓存区域用于分别存储不同的所述参数;
其中,所述从所述下行缓冲中获取所述参数并存入乒乓缓冲中,从所述乒乓缓冲中获取所述参数并发送给所述数据处理电路单元,包括:
在所述第一缓存区域未存储参数并且所述下行缓冲中存储有所述参数的情况下,从所述下行缓冲中获取参数并存入所述第一缓存区域;
在所述第二缓存区域未存储参数并且所述下行缓冲中存储有所述参数的情况下,从所述下行缓冲中获取参数并存入所述第二缓存区域,其中,存入所述第一缓存区域的参数与存入所述第二缓存区域的参数不同;
获取所述第一缓存区域中的参数或者所述第二缓存区域中的参数,并发送给所述数据处理电路单元。
7.根据权利要求6所述的数据交互方法,其特征在于,所述数据交互方法还包括:
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第一缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理成功的情况下,将所述第一缓存区域中的参数从所述第一缓存区域中删除,并获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;或者,
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理成功的情况下,将所述第二缓存区域中的参数从所述第二缓存区域中删除,并获取所述第一缓存区域中的参数并发送给所述数据处理电路单元。
8.根据权利要求1所述的数据交互方法,其特征在于,所述响应于数据读取操作指令,输出所述上行缓冲中存储的全部所述输出数据,包括:
响应于所述数据读取操作指令,从所述上行缓冲中读取所述输出数据;
将读取的所述输出数据转换为总线协议的信号通过总线发送。
9.一种数据交互装置,其特征在于:
所述数据交互装置包括下行写入电路单元、下行缓冲电路单元、下行读取电路单元、上行写入电路单元、上行缓冲电路单元、上行状态监控电路单元和上行读出电路单元;其中,
所述下行写入电路单元,用于响应于参数写入操作信号,获得参数并存储于所述下行缓冲电路单元;
所述下行缓冲电路单元电连接于所述下行写入电路单元,用于存储所述参数;
所述下行读取电路单元电连接于所述下行缓冲电路单元和数据处理电路单元,用于从所述下行缓冲电路单元中获取所述参数并发送给所述数据处理电路单元;
所述上行写入电路单元电连接于所述数据处理电路单元,用于将由所述数据处理电路单元获得的输出数据存储于所述上行缓冲电路单元;
所述上行缓冲电路单元电连接于所述上行写入电路单元,用于存储所述输出数据;
所述上行状态监控电路单元电连接于所述上行缓冲电路单元,用于记录所述上行缓冲电路单元中存储的输出数据的数量,并在所述上行缓冲电路单元中存储的输出数据的数量达到输出数量阈值时,发送所述上行缓冲电路单元的存储状态信息,其中,所述上行缓冲电路单元的存储状态信息用于表征所述上行缓冲电路单元不可继续存储所述输出数据;
所述上行读出电路单元电连接于所述上行缓冲电路单元,用于响应于数据读取操作指令,输出所述上行缓冲电路单元中存储的所述输出数据。
10.根据权利要求9所述的数据交互装置,其特征在于,所述数据交互装置还包括:所述数据处理电路单元,用于基于所述参数执行数据处理以获得所述输出数据,并将所述输出数据发送给所述上行写入电路单元。
11.根据权利要求9所述的数据交互装置,其特征在于,所述数据交互装置还包括:
下行状态监控电路单元,所述下行状态监控电路单元电连接于所述下行缓冲电路单元,用于:
记录所述下行缓冲电路单元中存储的参数的数量;在所述下行缓冲电路单元中存储的参数的数量从小于输入数量上限阈值达到大于或等于所述输入数量上限阈值时,发送第一下行存储状态信息;在所述下行缓冲电路单元中存储的参数的数量从大于输入数量下限阈值达到小于或等于所述输入数量下限阈值时,发送第二下行存储状态信息;
其中,所述第一下行存储状态信息用于表征所述下行缓冲电路单元不可继续存储所述参数,所述第二下行存储状态信息用于表征所述下行缓冲电路单元可以继续存储所述参数。
12.根据权利要求9所述的数据交互装置,其特征在于:
所述下行读取电路单元包括下行读取控制子电路单元和乒乓缓冲子电路单元;
所述下行读取控制子电路单元用于:从所述下行缓冲电路单元中获取所述参数并存入所述乒乓缓冲子电路单元中,从所述乒乓缓冲子电路单元中获取所述参数并发送给所述数据处理电路单元。
13.根据权利要求12所述的数据交互装置,其特征在于:
所述乒乓缓冲子电路单元包括两个缓存区域,其中,所述两个缓存区域中的任意一个缓存区域为第一缓存区域,所述两个缓存区域中的除所述第一缓存区域以外的另外一个缓存区域为第二缓存区域,所述两个缓存区域用于分别存储不同的所述参数;
所述下行读取控制子电路单元进一步用于:
在所述第一缓存区域未存储参数并且所述下行缓冲电路单元中存储有所述参数的情况下,从所述下行缓冲电路单元中获取参数并存入所述第一缓存区域;
在所述第二缓存区域未存储参数并且所述下行缓冲电路单元中存储有所述参数的情况下,从所述下行缓冲电路单元中获取参数并存入所述第二缓存区域,其中,存入所述第一缓存区域的参数与存入所述第二缓存区域的参数不同;
获取所述第一缓存区域中的参数或者所述第二缓存区域中的参数,并发送给所述数据处理电路单元。
14.根据权利要求13所述的数据交互装置,其特征在于,所述下行读取电路单元进一步用于:
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第一缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第一缓存区域中获取的参数执行数据处理成功的情况下,将所述第一缓存区域中的参数从所述第一缓存区域中删除,并获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;或者,
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理失败的情况下,再次获取所述第二缓存区域中的参数并发送给所述数据处理电路单元;
在所述数据处理电路单元基于从所述第二缓存区域中获取的参数执行数据处理成功的情况下,将所述第二缓存区域中的参数从所述第二缓存区域中删除,并获取所述第一缓存区域中的参数并发送给所述数据处理电路单元。
15.一种数据交互***,其特征在于,包括:
通过总线进行通讯连接的中央处理单元和如权利要求9至14任一项所述的数据交互装置;其中,
所述中央处理单元用于通过所述总线向所述数据交互装置发出所述参数写入操作信号,响应于接收到的所述上行缓冲电路单元的存储状态信息,向所述数据交互装置发出所述数据读取操作指令并接收所述输出数据。
16.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1至8任一项所述的数据交互方法。
17.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的至少一条指令被电子设备的处理器执行时,使得所述电子设备能够实现如权利要求1至8任一项所述的数据交互方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210985974.4A CN115061959B (zh) | 2022-08-17 | 2022-08-17 | 数据交互方法、装置、***、电子设备和存储介质 |
PCT/CN2023/094736 WO2024037076A1 (zh) | 2022-08-17 | 2023-05-17 | 数据交互方法、装置、***、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210985974.4A CN115061959B (zh) | 2022-08-17 | 2022-08-17 | 数据交互方法、装置、***、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115061959A CN115061959A (zh) | 2022-09-16 |
CN115061959B true CN115061959B (zh) | 2022-10-25 |
Family
ID=83208328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210985974.4A Active CN115061959B (zh) | 2022-08-17 | 2022-08-17 | 数据交互方法、装置、***、电子设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115061959B (zh) |
WO (1) | WO2024037076A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061959B (zh) * | 2022-08-17 | 2022-10-25 | 深圳比特微电子科技有限公司 | 数据交互方法、装置、***、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571280A (zh) * | 2012-01-09 | 2012-07-11 | 华为终端有限公司 | 数据传输的方法及装置 |
CN103714038A (zh) * | 2012-10-09 | 2014-04-09 | 中兴通讯股份有限公司 | 一种数据处理方法和装置 |
WO2018099014A1 (zh) * | 2016-12-01 | 2018-06-07 | 深圳市中兴微电子技术有限公司 | 一种基带中频交互方法、***及存储介质 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输***及方法 |
CN113518044A (zh) * | 2021-09-15 | 2021-10-19 | 浙江国利信安科技有限公司 | Epa设备 |
CN114205183A (zh) * | 2020-08-26 | 2022-03-18 | 希姆通信息技术(上海)有限公司 | 基于实时操作***的at指令协议栈的通信方法及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020716A (ja) * | 1998-07-01 | 2000-01-21 | Seiko Epson Corp | データ処理装置およびデータ処理方法 |
US7436765B2 (en) * | 2003-09-03 | 2008-10-14 | Teknovus, Inc. | Method and apparatus for dynamically allocating upstream bandwidth in passive optical networks |
KR102521298B1 (ko) * | 2018-02-14 | 2023-04-14 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10924223B2 (en) * | 2018-02-14 | 2021-02-16 | Google Llc | Method of managing HARQ buffer for NR |
CN112131164B (zh) * | 2020-09-23 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
CN115061959B (zh) * | 2022-08-17 | 2022-10-25 | 深圳比特微电子科技有限公司 | 数据交互方法、装置、***、电子设备和存储介质 |
-
2022
- 2022-08-17 CN CN202210985974.4A patent/CN115061959B/zh active Active
-
2023
- 2023-05-17 WO PCT/CN2023/094736 patent/WO2024037076A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571280A (zh) * | 2012-01-09 | 2012-07-11 | 华为终端有限公司 | 数据传输的方法及装置 |
CN103714038A (zh) * | 2012-10-09 | 2014-04-09 | 中兴通讯股份有限公司 | 一种数据处理方法和装置 |
WO2018099014A1 (zh) * | 2016-12-01 | 2018-06-07 | 深圳市中兴微电子技术有限公司 | 一种基带中频交互方法、***及存储介质 |
CN114205183A (zh) * | 2020-08-26 | 2022-03-18 | 希姆通信息技术(上海)有限公司 | 基于实时操作***的at指令协议栈的通信方法及*** |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输***及方法 |
CN113518044A (zh) * | 2021-09-15 | 2021-10-19 | 浙江国利信安科技有限公司 | Epa设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2024037076A1 (zh) | 2024-02-22 |
CN115061959A (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111683252B (zh) | 一种服务器以及一种视频压缩图像的输出***和方法 | |
KR950006565B1 (ko) | 통신제어장치 | |
CN107341062B (zh) | 一种数据推送方法、装置、设备以及存储介质 | |
CN115061959B (zh) | 数据交互方法、装置、***、电子设备和存储介质 | |
WO2021082969A1 (zh) | 核间数据处理方法、***、片上***以及电子设备 | |
CN113885945B (zh) | 一种计算加速方法、设备以及介质 | |
CN114286035B (zh) | 图像采集卡、图像采集方法及图像采集*** | |
CN116996647A (zh) | Bmc的视频传输方法、bmc和***级芯片 | |
EP2846470A1 (en) | A method of mobile terminal internal communications | |
CN116684659A (zh) | Bmc芯片的视频输出控制模块、方法、设备和服务器 | |
CN112995505B (zh) | 一种图像处理方法、装置及存储介质 | |
CN117032598B (zh) | Yuv视频传输***、基板管理控制器、方法、设备和介质 | |
CN116893991B (zh) | 一种axi协议下的存储模块转换接口及其转换方法 | |
CN116303173B (zh) | 减少rdma引擎片上缓存的方法、装置、***及芯片 | |
CN115469804B (zh) | NVMe多队列仲裁方法及装置 | |
CN116340217A (zh) | 数据处理方法及相关装置 | |
CN115687012A (zh) | 一种总线监测模块、监测方法和相关设备 | |
CN112764673B (zh) | 高光谱线阵数据存储速率优化方法、装置和存储介质 | |
CN115237349A (zh) | 数据读写控制方法、控制装置、计算机存储介质和电子设备 | |
CN104102619B (zh) | 第一操作***对第二操作***的dsp进行操作的方法及*** | |
CN109284243B (zh) | 基于usb的fpga通信控制装置及方法 | |
CN116912079B (zh) | 数据处理***、电子组件、电子设备及数据处理方法 | |
JP2018077679A (ja) | 制御装置、伝送装置、及び制御方法 | |
US20230267084A1 (en) | Tracing for High Bandwidth Masters in SoC | |
CN118069570B (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 |