CN115237829A - 处理数据的装置、方法及存储介质 - Google Patents
处理数据的装置、方法及存储介质 Download PDFInfo
- Publication number
- CN115237829A CN115237829A CN202210759203.3A CN202210759203A CN115237829A CN 115237829 A CN115237829 A CN 115237829A CN 202210759203 A CN202210759203 A CN 202210759203A CN 115237829 A CN115237829 A CN 115237829A
- Authority
- CN
- China
- Prior art keywords
- data
- bit width
- width conversion
- processed
- bus
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
提供了一种处理数据的装置、方法及存储介质。该装置包括:多个存储器,与总线相连,所述多个存储器的位宽均与所述总线的位宽不同,所述总线向所述多个存储器中的目标存储器传输数据包,所述数据包至少包含位宽转换信息和待处理数据;位宽转换模块,与所述多个存储器相连,用于基于所述位宽转换信息对所述待处理数据进行位宽转换处理,从而所述待处理数据按所述目标存储器的位宽写入所述目标存储器,其中,所述位宽转换信息至少包含所述目标存储器的位宽。上述位宽转换模块基于数据包中的位宽转换信息,对该数据包中的待处理数据进行位宽转换处理。各种位宽特殊的存储器可共用该位宽转换模块,有助于节省硬件空间、降低硬件开发成本。
Description
技术领域
本申请实施例涉及数据处理技术领域,更为具体地,涉及一种处理数据的装置、方法及存储介质。
背景技术
为满足芯片中不同模块的需求,会适配多种位宽特殊的存储器,这些存储器的位宽与总线位宽不同。当总线向存储器传输数据时,需要对数据进行位宽转换。
相关技术在存储器内部固化位宽转换模块,该位宽转换模块基于设定的逻辑将数据的位宽由总线位宽转换为该存储器的位宽。因此,每个位宽特殊的存储器都需要进行位宽转换模块的硬件设计,硬件开发成本高。
发明内容
本申请实施例提供一种处理数据的装置、方法及存储介质。下面对本申请实施例涉及的各个方面进行介绍。
第一方面,提供一种处理数据的装置,所述装置包括:多个存储器,与总线相连,所述多个存储器的位宽均与所述总线的位宽不同,所述总线向所述多个存储器中的目标存储器传输数据包,所述数据包至少包含位宽转换信息和待处理数据;位宽转换模块,与所述多个存储器相连,用于基于所述位宽转换信息对所述待处理数据进行位宽转换处理,从而所述待处理数据按所述目标存储器的位宽写入所述目标存储器,其中,所述位宽转换信息至少包含所述目标存储器的位宽。
第二方面,提供一种处理数据的方法,所述方法应用于处理数据的装置,所述装置包括:多个存储器,与总线相连,所述多个存储器的位宽均与所述总线的位宽不同;位宽转换模块,与所述多个存储器相连;所述方法包括:接收所述总线传输给所述多个存储器中的目标存储器的数据包,所述数据包至少包含位宽转换信息和待处理数据;基于所述位宽转换信息对所述待处理数据进行位宽转换处理,所述位宽转换信息至少包含所述目标存储器的位宽;将所述待处理数据按所述目标存储器的位宽写入所述目标存储器。
第三方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
第四方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
本申请实施例中待处理数据及其位宽转换信息以数据包形式由总线传输给目标存储器。位宽转换模块基于数据包中的位宽转换信息,将待处理数据转换为目标存储器的位宽后写入目标存储器。由此可见,该位宽转换模块适用于各种位宽特殊的存储器,有助于节省存储器的硬件空间、降低硬件开发成本。
附图说明
图1所示为基于写计数器计数的位宽转换的流程示意图。
图2所示为本申请一个实施例提供的处理数据的装置的结构示意图。
图3所示为本申请另一实施例提供的处理数据的装置的结构示意图。
图4所示为本申请实施例提供的数据包的格式示意图。
图5所示为本申请又一实施例提供的处理数据的装置的结构示意图。
图6所示为本申请实施例提供的处理数据的方法的流程示意图。
图7所示为图6所示步骤S610的一种可能的实现方式的流程示意图。
图8所示为图6所示步骤S620和步骤S630的一种可能的实现方式的流程示意图。
具体实施方式
为了便于理解本申请,在下文中基于示例性实施例并结合附图来更详细地描述本申请。在附图中使用相同或相似的附图标记来表示相同或相似的模块。应该理解的是,附图仅是示意性的,本申请的保护范围并不局限于此。
随着技术的发展,在芯片系统的设计中出现了多种特殊的功能模块(IP)。这些IP因运算的多样性,数据的位宽(bit width)与常规位宽不同。为了适配这些特殊IP的需求,需要设置不同位宽的存储器。以静态随机存取存储器(static random-access memory,SRAM)为例,为适配神经网络运算IP,SRAM的位宽有40bit、64bit、80bit或4160bit等。
在芯片系统中,总线(bus)的位宽一般是固定值,例如32bit、64bit、128bit等。这些适配特殊IP的存储器的位宽与总线位宽(bus width)不同。因此,这些IP通过总线对存储器进行读写操作时,需要对数据进行位宽转换。例如,总线位宽为32bit,通过总线将数据写入位宽为40bit的存储器时,需要实现32bit转40bit的转换处理。又如,通过32bit总线将数据写入位宽为64bit的存储器时,需要实现32bit转64bit的转换处理。
为了实现数据的位宽转换,需要在总线和存储器之间增加位宽转换的模块。相关技术在存储器的控制模块(sram ctrl)增加位宽转换的功能。具体而言,将位宽转换的模块固化到硬件IP内部,例如控制模块内部。位宽转换的模块按照固化的硬件逻辑对数据进行位宽转换处理。
位宽转换模块的逻辑基于总线位宽和存储器的位宽(存储位宽)确定。例如,总线位宽为32bit,存储位宽为80bit时,需要拼接三笔总线位宽的数据才能进行一次存储器写入的操作。
为便于理解,以IP通过32bit总线对80bit存储器进行的写入操作为例,结合图1对位宽转换流程进行详细地说明。在转换过程中,IP可以通过其内部的写计数器(wr_cnt)对写入操作进行计数。图1为基于写计数器计数的位宽转换的流程。
参见图1,在步骤S110,软件按总线位宽依次写入三笔数据,以通过总线将数据传输给存储器。按照写计数器的计数进行说明。
计数为0时,写入第一笔32bit的写数据0(wdata0)。
计数为1时,写入第二笔32bit的写数据1(wdata1)。
计数为2时,写入第三笔16bit的写数据2(wdata2)。对于不足总线位宽的数据,还需要进行填充。写数据2为16bit,需要填充16bit的无效(dummy)数据。
在步骤S120,位宽转换模块将三笔数据转换为存储位宽的数据。如图1所示,写计数器计数为3时,指定数据在存储器中的存储地址(ram_addr),并将三笔数据拼成80bit的存储数据(ram_wdata)。图1所示的存储地址是{2’h0,reg_addr[31:2]},而拼接成的数据为{wdata2[15:0],wdata1[31:0],wdata1[31:0]}。
在步骤S130(图1未示出),按存储地址将80bit的数据写到相应的存储器中。
由图1可知,在进行数据传输时,软件先按照总线位宽将数据进行分块,并填充不足的部分。位宽转换模块根据分块的数量设置相应数量的硬件寄存器。多个硬件寄存器接收多笔来自总线的数据。当多个寄存器中的数据满足一次写入操作时,位宽转换模块将数据拼接并写入存储器。例如图1所示的32bit转80bit流程,位宽转换模块会设置三个寄存器。三个寄存器分别接收图1中的三笔数据。当三个寄存器都写满数据后,将数据进行拼接并写入存储位宽为80bit的存储器中。
因此,位宽转换模块中的硬件逻辑是针对特定总线位宽和存储位宽设定的。该硬件逻辑无法复用到其它的位宽转换场景中。在芯片系统中,每次做新的位宽转换时,都需要重新做一次硬件设计。也就是说,每一个需要位宽转换的模块都需要实现一套相应的硬件,硬件上存在冗余。
另外,该硬件逻辑只能处理单笔以存储位宽为单位的数据。每次基于总线位宽拆分数据时,都可能需要填充无效数据。因此,总线传输的数据并不都是有效数据,导致带宽利用率不高。
为了解决上述的问题,本申请实施例提供了一种处理数据的装置,可以实现在不同场景下的位宽转换(bits convert)。该装置通过设置通用的位宽转换模块,降低了硬件开发成本,并提高了传输带宽的利用率。下面结合图2,对该处理数据的装置进行详细地描述。
参见图2,处理数据的装置210包括多个存储器212和位宽转换模块214。
多个存储器212中的每个存储器可以包括控制模块和存储模块。存储器例如是SRAM。
存储模块可以进行实际的数据存储。每个存储模块可以存储一种位宽的数据。为了特定的IP需求,存储模块存储的数据位宽可以不是2的整数次幂。例如,存储模块40×80的位宽为40bit、深度为80bit。又如存储模块64×80的位宽为64bit,深度为80bit。又如存储模块80×48的位宽为80bit,深度为48bit。
多个存储器212可以通过多个存储模块具有多个不同的位宽。多个存储器212的位宽均与总线的位宽不同。
控制模块可以控制存储器进行的操作。在一些实施例中,控制模块可以控制存储器的读取和写入操作。例如,SRAM控制模块可以将数据按存储位宽写入SRAM存储模块中。
多个存储器212中的每个存储器可以分别通过控制模块与总线220相连。总线220可以进行模块之间的数据传输。总线220可以向多个存储器212中的目标存储器传输数据包。
多个存储器212中的目标存储器与通过总线传输数据包的IP适配。目标存储器的控制模块可以从总线获取IP传输的数据包。目标存储器的位宽也可以称为目标位宽。
数据包至少包含位宽转换信息和待处理数据。待处理数据是需要基于位宽转换信息进行处理的传输数据。待处理数据进行位宽转换后,将以目标位宽写入目标存储器。
待处理数据可以有多种数据类型。在一些实施例中,待处理数据可以是控制命令。在另一些实施例中,待处理数据可以是实时数据。在又一些实施例中,待处理数据可以是非实时数据或存储数据。
待处理数据可以以目标位宽为单位封装在数据包中。在一些实施例中,数据包中可以包含一笔目标位宽的数据,也可以包含多笔目标位宽的数据。例如,待处理数据可以包含N笔以目标存储器的位宽为单位的传输数据。
数据包可以通过对传输内容的封装来添加位宽转换信息。在一些实施例中,软件通过在待处理数据之前添加一个头信息(head info)来进行封装。该头信息可以包含位宽转换信息,也可以就是位宽转换信息。头信息位于待处理数据之前,便于对位宽转换信息进行解析。在另一些实施例中,位宽转换信息可以位于数据包的中间或尾部。数据接收端先接收待处理数据,再进行信息的解析。
位宽转换信息可以包含待处理数据的多种转换信息。在一些实施例中,位宽转换信息可以包含待处理数据要写入的目标存储器的位宽,例如SRAM位宽(sram bit width)。在一些实施例中,位宽转换信息还可以包含待处理数据的传输量(trans size)。传输量可以表示该次传输的传输大小。传输量可以用固定位数表示,也可以根据待处理数据的数据量调整位数。例如,位宽转换信息可以包含前文所述的N的信息。
位宽转换信息还可以包含连续传输的标志位。在一些实施例中,传输量为固定位数时,数据包中待处理数据的笔数会受到限制。为了传输大于该限制的笔数,可以在位宽转换信息中增加连续传输的标志位。该标志位可以标识是否会连续传输新的数据包。
数据包的头信息中还可以包含其它信息。在一些实施例中,头信息还可以包含起始码(start code),例如标识该数据为头信息的同步(sync)头。在一些实施例中,数据包还可以包含用于防呆的特定的字符串,例如同步码(sync code)。后文将结合附图对数据包的格式进行举例说明。
数据包还可以包含校验位。校验位可以对数据提供安全性的功能。发送端在数据包中填入检验位,接收端可以校验整笔数据的完整性。
多个存储器212中的每个存储器还可以通过控制模块与位宽转换模块214相连。位宽转换模块214可以是对总线220和目标存储器传输的数据进行位宽转换的处理器。位宽转换模块214可以满足多个存储器212中所有存储器的位宽转换需求。
控制模块可以与位宽转换模块214进行数据传输。在一些实施例中,控制模块可以将从总线220获取的数据写入位宽转换模块214。在一些实施例中,控制模块还可以从位宽转换模块214中获取数据,并将该数据写入存储模块。
位宽转换模块214可以基于位宽转换信息对待处理数据进行位宽转换处理。位宽转换模块214可以对数据包中的位宽转换信息进行解析,得到目标位宽、传输量等信息。在一些实施例中,位宽转换模块214可以根据目标位宽对待处理数据进行切分或拼接处理,从而待处理数据按目标位宽写入目标存储器。
在一些实施例中,位宽转换模块214可以根据传输量的大小对待处理数据进行连续的位宽转换处理。例如,传输笔数为N时,位宽转换模块可以通过内部计数来计算剩余的传输笔数,从而将待处理数据转换为N笔以目标位宽为单位的数据。
在一些实施例中,位宽转换模块214可以基于连续传输的标志位,将待处理数据与其它数据包中的待处理数据进行拼接处理。例如,通过标志位确定连续传输时,本次传输后可以直接拼接下一次的传输数据,并进行位宽转换处理。因此,在本次数据传输完后,不需要再重新开始新的传输。
位宽转换模块214可以通过缓冲器实现对数据包中所有数据的处理。缓冲器可以与位宽转换模块214相连。缓冲器例如是FIFO存储器。
缓冲器可以缓冲数据包中的位宽转换信息和待处理数据。位宽转换模块214可以通过观察缓冲器内待处理数据的数据量判断是否满足一次目标存储器的写操作。例如,可以通过获取FIFO水位检查是否满足一次SRAM写操作。
满足一次目标存储器的写操作可以是缓冲器内待处理数据的数据量达到该存储器的位宽。如果不满足则继续传输数据,直至达到要求。如果满足则将该数据以目标位宽写入目标存储器。
上文结合图2,介绍了可在不同场景下实现位宽转换的处理数据的装置。该装置中总线220传输的数据包可以是软件通过写寄存器(write_reg)实现写入的。下面结合图3将该装置与写寄存器的关系进行更为清楚地说明。
如图3所示,写寄存器330与总线320相连,总线320与处理数据的装置310相连。图3中总线和处理数据的装置与图2的装置相互对应,因此,为了简洁,图3不再对图2已经出现的结构进行详细解释。
写寄存器300可以是软件写数据的接口。软件将数据包按总线位宽写入写寄存器300。数据包通过总线320传输给多个存储器312中的目标存储器。
数据包可以包含待处理数据的优先级(priority)。优先级策略可以实现实时数据或控制命令的优先传输,提高整体运行效率。在一些实施例中,写寄存器300可以根据数据包中的优先级,调整待处理数据通过总线进行传输的顺序。
待处理数据的优先级可以分为高、中、低三种。优先级可以根据待处理数据的类型确定。在一些实施例中,待处理数据的类型包括以下一种或多种:控制命令,实时数据,非实时数据以及存储数据。
作为一种可能的实现方式,控制命令的优先级可以高于实时数据的优先级,实时数据的优先级可以高于非实时数据和存储数据的优先级。
作为另一种可能的实现方式,控制命令的优先级可以高于非实时数据和存储数据的优先级,实时数据的优先级可以与控制命令的优先级相同。
本申请实施例通过在头信息中添加优先级信息,可以对每一笔数据都做优先级控制。因此数据传输的控制更细致。进一步地,软件可以根据传输数据内容设置不同的优先级。例如对控制命令和实时数据配置较高的优先级,可以使数据快速写入,避免累积过多数据导致丢数据。又如对非实时数据或存储数据设置较低的优先级,可以保证存储器的读写最大满足需求。因此软件可以根据场景设置不同的优先级,提高运行效率。
上文结合图2和图3,对本申请实施例提供的处理数据的装置进行了详细地说明。该装置可以基于数据包中的位宽转换信息对待处理数据进行位宽转换。为了更清楚地描述数据包的格式,下面以包含两笔有效数据(valid data)的数据包为例,结合图4进行具体地说明。
参见图4,数据包400包含头信息410、第一笔有效数据420、第二笔有效数据430、无效数据440。数据包400按总线位宽进行分块和传输。
头信息410位于数据包的头部。头信息410包括依次拼接的起始码411、优先级412、同步码413、SRAM位宽414以及传输量415。
第一笔有效数据420拼接在头信息后面。第一笔有效数据420的三部分分别位于数据包的不同分块中。第二笔有效数据430拼接在第一笔有效数据420后面。第二笔有效数据430的三部分同样分别位于不同分块中。
无效数据440填充在第二笔有效数据430之后,以使数据包最后一个分块的位宽达到总线位宽。在一些实施例中,头信息410和N笔有效数据按总线位宽进行分块后,最后一个分块不需要填充无效数据。
由图4可知,本申请实施例可以做到多笔数据的连续写入。当传输多笔存储位宽的数据时,可以直接将多笔数据在数据包内进行连接。与传输单笔数据相比,可以减少为达到总线位宽填充的无效数据量,有效提高了数据的传输效率。
下面结合具体例子图5,对本申请实施例进行更加完整地举例说明。应注意,图2至图4的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图2至图4的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
图5为本申请实施例提供的处理数据的装置以及总线、写寄存器的结构示意图。参见图5,写寄存器510、总线520和处理数据的装置530相互连接。处理数据的装置530包括SRAM531、SRAM532、SRAM533、位宽转换模块534和FIFO535。SRAM531包括控制模块5311和存储模块5312。SRAM532包括控制模块5321和存储模块5322。SRAM533包括控制模块5331和存储模块5332。三个存储模块的位宽和深度如图5所示。
写寄存器510与总线520相连。软件通过写寄存器510将数据包写入总线。写寄存器510作为发送端,可以通过封装的信息调整数据传输的优先级。
总线520负责各个模块之间的数据传输。总线520的位宽为32bit。寄存器510可以通过总线520将数据发送到接收端。接收端可以是目标SRAM的控制模块。
控制模块5311、控制模块5321、控制模块5331分别与位宽转换模块534相连。
假设SRAM531为目标SRAM,控制模块5311可以将多笔32bit的数据传输给位宽转换模块534。位宽转换模块534对多笔数据进行位宽转换。控制模块5311可以从位宽转换模块534获取多笔40bit的数据,并将该数据写入存储模块5312。
位宽转换模块534通过FIFO535缓冲数据。位宽转换模块534可以解析数据包中的目标位宽。仍以存储模块5312的40bit位宽为例,位宽转换模块534可以通过观察FIFO535的水位,来判断是否满足40bit的位宽。如果达到40bit,位宽转换模块534可以传输一笔数据给控制模块5311,然后再重新观察水位。当最后一笔数据传输完,可以清空FIFO535中缓冲的无效数据,并复位硬件的状态。
由图5可知,本申请实施例引入了软硬件结合的方案。通过软件对多笔传输数据进行封装,并在数据包中增加位宽转换信息。该数据包被发送给硬件(位宽转换模块534)。硬件通过解析相关信息,拆分多笔传输数据,然后将拆分后的每笔数据写入存储器。
由上文可知,本申请实施例传输的数据额外带有位宽转换信息。位宽转换模块通过位宽转换信息获取存储器的目标位宽,位宽转换模块对传输的数据进行切分以符合目标位宽,然后将数据写入存储器。
与相关技术相比,本申请实施例中的硬件根据转换信息来适配任意存储器位宽的读写。芯片系统上多个存储器的控制模块可以共用一个位宽转换模块,不需要做额外的任何配置,节省了硬件空间。进一步地,多个位宽转换硬件都可以复用一套硬件,节约了硬件成本。
上文结合图2至图5,详细地描述了本申请的装置实施例。下面结合图6至图8,详细描述本申请的方法实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面装置实施例。
图6为本申请实施例提供的处理数据的方法的流程示意图。这个方法应用于处理数据的装置,该装置包括:多个存储器,与总线相连,多个存储器的位宽均与总线的位宽不同;位宽转换模块,与多个存储器相连。该方法的流程如图6所示。
参见图6,在步骤S610,接收总线传输给多个存储器中的目标存储器的数据包,数据包至少包含位宽转换信息和待处理数据。
在步骤S620,基于位宽转换信息对待处理数据进行位宽转换处理,位宽转换信息至少包含目标存储器的位宽。
在步骤S630,将待处理数据按目标存储器的位宽写入目标存储器。
可选地,待处理数据包含N笔以目标存储器的位宽为单位的数据,位宽转换信息包含N的信息,位宽转换模块基于N的信息对待处理数据进行连续的位宽转换处理。
可选地,位宽转换信息包含连续传输的标志位,位宽转换模块基于标志位将待处理数据与其它数据包中的待处理数据进行拼接处理。
可选地,数据包通过总线进行传输的顺序基于数据包中的待处理数据的优先级确定,待处理数据的优先级根据待处理数据的类型确定。
可选地,待处理数据的类型包括以下一种或多种:控制命令,实时数据,非实时数据以及存储数据,其中,控制命令的优先级高于实时数据的优先级,实时数据的优先级高于非实时数据和存储数据的优先级。
可选地,位宽转换模块通过缓冲器缓冲数据包中的位宽转换信息和待处理数据。
为了便于理解,下面结合图7和图8对本申请实施例提供的处理数据的方法进行更详细地描述。该方法在写寄存器、SRAM控制模块、位宽转换模块和FIFO之间进行数据传输。图7为图6所示步骤S610的一种可能的实现方式的流程示意图。图8为图6所示步骤S620和步骤S630的一种可能的实现方式的流程示意图。
参见图7,在步骤S710,将数据写入写寄存器。软件将传输的内容通过写寄存器发给硬件。传输内容以数据包的形式,按总线位宽分块写入写寄存器。
在步骤S720,写寄存器根据头信息中的优先级信息,调整传输数据的优先级。
在步骤S730,将写寄存器内的数据通过总线传输到SRAM控制模块。
在步骤S740,SRAM控制模块获取数据,并将该数据传输到位宽转换模块。
在步骤S750,位宽转换模块将获取到的数据写入FIFO。
在步骤S760,位宽转换模块读取FIFO中该数据的头信息。
在步骤S770,位宽转换模块解析该头信息,获取SRAM存储位宽、数据传输大小、优先级信息。数据传输大小标识该数据包含几笔SRAM存储位宽的数据。
参见图8,步骤S801和步骤S807与步骤S710相同,继续将数据写入写寄存器。
步骤S802和步骤S808与步骤S730相同,持续将写寄存器内的数据通过总线传输到SRAM控制模块。
步骤S803和步骤S809与步骤S740相同,SRAM控制模块将获取的数据传输到位宽转换模块。
步骤S804和步骤S810与步骤S750相同,位宽转换模块将获取到的数据写入FIFO。
步骤S805和步骤S811相同,位宽转换模块获取FIFO的水位。
步骤S806和步骤S812相同,位宽转换模块根据目标位宽检查FIFO的水位是否满足一次SRAM写操作。如果不满足,则执行步骤S807。如果满足,则FIFO中数据达到一次SRAM写操作的数据量,执行步骤S813。
在步骤S813,SRAM控制模块通知位宽转换模块获取一次SRAM写操作数据。
在步骤S814,位宽转换模块取FIFO中的数据。位宽转换模块将该笔数据传输给SRAM控制模块。
在步骤S815,SRAM控制模块接收到位宽转换模块传输的数据后,将该笔数据写入SRAM存储单元。
在步骤S816,SRAM控制模块通知位宽转换模块检查写入状态。
在步骤S817,位宽转换模块根据数据传输大小检查写入是否完成。位宽转换模块根据内部计数来计算此次传输的剩余传输笔数。若本次传输未完成,则继续进行数据传输。若本次传输完成,则执行步骤S818。
在步骤S818,位宽转换模块完成最后一笔数据的传输后,清空FIFO中的无效数据。
在步骤S819,位宽转换模块复位硬件的状态。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,当计算机程序代码被执行时,实现前述方法的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行前述方法的步骤。
应理解,本申请实施例中,处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种处理数据的装置,其特征在于,包括:
多个存储器,与总线相连,所述多个存储器的位宽均与所述总线的位宽不同,所述总线向所述多个存储器中的目标存储器传输数据包,所述数据包至少包含位宽转换信息和待处理数据;
位宽转换模块,与所述多个存储器相连,用于基于所述位宽转换信息对所述待处理数据进行位宽转换处理,从而所述待处理数据按所述目标存储器的位宽写入所述目标存储器,其中,所述位宽转换信息至少包含所述目标存储器的位宽。
2.根据权利要求1所述的装置,其特征在于,所述待处理数据包含N笔以所述目标存储器的位宽为单位的数据,所述位宽转换信息包含所述N的信息,所述位宽转换模块基于所述N的信息对所述待处理数据进行连续的位宽转换处理。
3.根据权利要求1所述的装置,其特征在于,所述位宽转换信息包含连续传输的标志位,所述位宽转换模块基于所述标志位将所述待处理数据与其它数据包中的待处理数据进行拼接处理。
4.根据权利要求1-3所述的装置,其特征在于,所述数据包通过所述总线进行传输的顺序基于所述数据包中的所述待处理数据的优先级确定,所述待处理数据的优先级根据所述待处理数据的类型确定。
5.根据权利要求4所述的装置,其特征在于,所述待处理数据的类型包括以下一种或多种:控制命令,实时数据,非实时数据以及存储数据,其中,所述控制命令的优先级高于所述实时数据的优先级,所述实时数据的优先级高于所述非实时数据和所述存储数据的优先级。
6.根据权利要求1所述的装置,其特征在于,还包括:
缓冲器,与所述位宽转换模块相连,用于缓冲所述数据包中的所述位宽转换信息和所述待处理数据。
7.一种处理数据的方法,其特征在于,所述方法应用于处理数据的装置,所述装置包括:
多个存储器,与总线相连,所述多个存储器的位宽均与所述总线的位宽不同;
位宽转换模块,与所述多个存储器相连;
所述方法包括:
接收所述总线传输给所述多个存储器中的目标存储器的数据包,所述数据包至少包含位宽转换信息和待处理数据;
基于所述位宽转换信息对所述待处理数据进行位宽转换处理,所述位宽转换信息至少包含所述目标存储器的位宽;
将所述待处理数据按所述目标存储器的位宽写入所述目标存储器。
8.根据权利要求7所述的方法,其特征在于,所述待处理数据包含N笔以所述目标存储器的位宽为单位的数据,所述位宽转换信息包含所述N的信息,所述位宽转换模块基于所述N的信息对所述待处理数据进行连续的位宽转换处理。
9.根据权利要求7-8所述的方法,其特征在于,所述数据包通过所述总线进行传输的顺序基于所述数据包中的所述待处理数据的优先级确定,所述待处理数据的优先级根据所述待处理数据的类型确定。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求7-9中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210759203.3A CN115237829A (zh) | 2022-06-30 | 2022-06-30 | 处理数据的装置、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210759203.3A CN115237829A (zh) | 2022-06-30 | 2022-06-30 | 处理数据的装置、方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237829A true CN115237829A (zh) | 2022-10-25 |
Family
ID=83671320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210759203.3A Pending CN115237829A (zh) | 2022-06-30 | 2022-06-30 | 处理数据的装置、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543882A (zh) * | 2022-11-30 | 2022-12-30 | 无锡沐创集成电路设计有限公司 | 不同位宽总线间的数据转发装置及数据传输方法 |
-
2022
- 2022-06-30 CN CN202210759203.3A patent/CN115237829A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543882A (zh) * | 2022-11-30 | 2022-12-30 | 无锡沐创集成电路设计有限公司 | 不同位宽总线间的数据转发装置及数据传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240004419A1 (en) | Computer Architecture Having Selectable Parallel and Serial Communication Channels Between Processors and Memory | |
CN111930676A (zh) | 多处理器间的通信方法、装置、系统及存储介质 | |
US9342629B2 (en) | Content searching chip based protocol conversion | |
WO2015184706A1 (zh) | 统计计数设备及其实现方法、具有统计计数设备的系统 | |
KR20160018987A (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
US20220358075A1 (en) | Pcie-based data transmission method and apparatus | |
CN113179216B (zh) | 一种寄存器的远程配置方法、计算机设备及存储介质 | |
CN108462620B (zh) | 一种吉比特级SpaceWire总线系统 | |
CN115237829A (zh) | 处理数据的装置、方法及存储介质 | |
WO2021147045A1 (zh) | 一种基于PCIe的数据传输方法及装置 | |
CN114422617B (zh) | 一种报文处理方法、系统及计算机可读存储介质 | |
WO2021147051A1 (zh) | 一种基于PCIe的数据传输方法及装置 | |
CN116795763A (zh) | 基于axi协议的数据分组传输的方法、片上系统和芯片 | |
CN110069429B (zh) | 基于zynq的实时高性能srio控制器及控制方法 | |
CN115587059A (zh) | 一种数据转换系统 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
CN113051212B (zh) | 图形处理器、数据传输方法、装置、电子设备和存储介质 | |
CN115794701A (zh) | 一种dma功能虚拟串口的bmc芯片及方法 | |
CN112187669B (zh) | 一种数据交互方法、装置、设备及可读存储介质 | |
US8473665B2 (en) | Universal serial bus (USB) transaction translator and a universal serial bus (USB) isochronous-in transaction method | |
CN111538688B (zh) | 数据处理方法、装置、模组及芯片 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及系统 | |
CN112637027B (zh) | 基于uart的帧边界界定装置及发送方法和接收方法 | |
CN115982090B (zh) | 软硬件协同实现远端内存访问的方法和装置 | |
CN111200594B (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 |