CN117854553A - 一种数据整形电路、方法和芯片 - Google Patents
一种数据整形电路、方法和芯片 Download PDFInfo
- Publication number
- CN117854553A CN117854553A CN202410253836.6A CN202410253836A CN117854553A CN 117854553 A CN117854553 A CN 117854553A CN 202410253836 A CN202410253836 A CN 202410253836A CN 117854553 A CN117854553 A CN 117854553A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- channel
- register
- writing
- 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.)
- Granted
Links
- 238000007493 shaping process Methods 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
Landscapes
- Communication Control (AREA)
Abstract
本申请实施例公开了一种数据整形电路、方法和芯片。本申请提供的方案在数据整形过程中,通道数据寄存器用于存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据,整形模块用于接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。本申请中的数据整形电路不需要对数据整形电路的上级模块进行反压,可以接收上级模块输出的每一拍写入数据,即可将对一包数据进行数据整形后需要额外一拍输出的残留数据进行输出。
Description
技术领域
本申请涉及芯片领域,特别涉及一种数据整形电路、方法和芯片。
背景技术
在逻辑电路利用DMA(Direct Memory Access)模块读取主机数据的场景中,主机返回的一包数据(以SOP开始,EOP结束)中每一拍数据可能不是整数据位宽有效的,比如整数据位宽是64B,读返回的每一拍数据其有效字节数可能小于64B。但是逻辑电路中接收读返回数据的后级模块往往会要求接收到的每一拍数据必须是整数据位宽有效的(即上例中除最后一拍的每一拍数据中的有效字节数为64B),因此需要对读返回的每一拍数据进行数据整形,然后再输入后级模块。
以整数据位宽是64B为例,目前数据整形采用的方法是:收到一拍数据,如果满64B有效,直接输出,如果不满64B有效,将其寄存,暂不输出,等后续再来一拍数据,将残留数据和刚来的这一拍数据合并输出,同时将这一拍剩下的数据继续寄存,这样一直重复前面步骤,直到最后一拍数据到来,如果最后一拍的数据合并之前寄存的数据小于等于64B,则最后一拍数据可以直接输出,但是如果最后一拍的数据合并之前寄存的数据大于64B,则大于64B的数据将会被寄存,需要在下一拍反压住上级模块,输出最后寄存的数据。但是在不少场景中,上级模块不接受反压。
发明内容
本申请公开了一种数据整形电路、方法和芯片,以在上级模块不接受反压的情况下,实现将数据整形时需要额外一拍输出的残留数据进行输出。
根据本申请实施例的第一方面,提供一种数据整形电路,包括整形模块和至少一个通道数据寄存器;
所述通道数据寄存器,用于存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据;
所述整形模块用于接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
优选地,所述写入数据信息包括所述写入数据及所述写入数据对应的通道信息,所述根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息包括:
从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息。
优选地,所述写入数据信息还包括用于指示当前拍写入数据是否为包首的第一指示信息,所述剩余数据信息还包括用于指示当前通道数据寄存器中是否有剩余数据的第二指示信息,所述整形模块具体用于:
当所述第一指示信息确定所述写入数据为包首数据时,若所述第二指示信息确定对应的通道数据寄存器中有剩余数据,则将通道数据寄存器中的剩余数据输出给所述下一级电路,并将所述写入数据写入所述通道数据寄存器中进行保存;若所述第二指示信息指示所述通道数据寄存器中没有剩余数据,则确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据输出,若不满足,则将所述写入数据写入所述通道数据寄存器中。
优选地,所述整形模块还用于:
当所述第一指示信息确定所述写入数据不为包首数据时,若所述剩余数据的长度与所述写入数据的长度之和大于所述预设长度,从所述写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出,将所述写入数据余下的数据输入给所述对应的通道数据寄存器中,当所述剩余数据的长度与所述写入数据的长度之和小于所述预设长度时,则根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器,其中,所述写入数据信息还包括所述写入数据是否是包尾数据的所述第四指示信息。
优选地,所述整形模块还用于:
若根据所述第四指示信息确定所述写入数据为包尾数据时,则将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据,若根据所述第四指示信息确定所述写入数据不为包尾数据时,则将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据发送给所述通道数据寄存器进行保存。
优选地,所述剩余数据信息还包括用于指示通道数据寄存器中的数据是否处于可输出状态的第五指示信息,所述数据整形电路还包括调度模块;
所述调度模块还用于在输入数据信息中的写入数据为空数据时,获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个,输出所选择的通道数据寄存器中的剩余数据。
本发明第二方面提供一种数据整形方法,所述方法应用于数据整形电路,所述电路包括整形模块和至少一个通道数据寄存器;
所述通道数据寄存器存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据;
所述整形模块接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
优选地,所述写入数据信息包括所述写入数据及所述写入数据对应的通道信息,所述根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息包括:
从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息。
优选地,所述写入数据信息还包括用于指示当前拍写入数据是否为包首的第一指示信息,所述剩余数据信息还包括用于指示当前通道数据寄存器中是否有剩余数据的第二指示信息,所述对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
当所述第一指示信息确定所述写入数据为包首数据时,若所述第二指示信息确定对应的通道数据寄存器中有剩余数据,则将通道数据寄存器中的剩余数据输出给所述下一级电路,并将所述写入数据写入所述通道数据寄存器中进行保存;若所述第二指示信息指示所述通道数据寄存器中没有剩余数据,则确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据输出,若不满足,则将所述写入数据写入所述通道数据寄存器中。
优选地,所述方法还包括:
当所述第一指示信息确定所述写入数据不为包首数据时,若所述剩余数据的长度与所述写入数据的长度之和大于所述预设长度,从所述写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出,将所述写入数据余下的数据输入给所述对应的通道数据寄存器中,当所述剩余数据的长度与所述写入数据的长度之和小于所述预设长度时,则根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器,其中,所述写入数据信息还包括所述写入数据是否是包尾数据的所述第四指示信息。
优选地,所述根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
若根据所述第四指示信息确定所述写入数据为包尾数据时,则将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据,若根据所述第四指示信息确定所述写入数据不为包尾数据时,则将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据发送给所述通道数据寄存器进行保存。
优选地,所述剩余数据信息还包括用于指示通道数据寄存器中的数据是否处于可输出状态的第五指示信息,所述数据整形电路还包括调度模块;
所述调度模块在输入数据信息中的写入数据为空数据时,获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个,输出所选择的通道数据寄存器中的剩余数据。
根据本申请实施例的第三方面,提供一种芯片,所述芯片包括如上任一项所述的数据整形电路。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供的数据整形电路,将每一通道中上一拍未输出的剩余数据存储至对应的通道数据寄存器中,整形模块接收到当前拍的写入数据信息时,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。本申请中的数据整形电路不需要对数据整形电路的上级模块进行反压,可以接收上级模块输出的每一拍写入数据。
此外,每个通道对应一个通道数据寄存器,而不是增加整形模块的数量,大大节省了逻辑资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1为本申请实施例提供的数据整形电路的结构图;
图2为本申请实施例提供的另一种数据整形电路的结构图;
图3为本申请实施例提供的一种数据包传输的示意例图;
图4为本申请实施例提供的一种整形模块的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例提供的方法实施例进行描述。
本申请实施例提供了一种数据整形电路的结构图。如图1所示,所述电路包括整形模块102和至少一个通道数据寄存器。所述通道数据寄存器,用于存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据。
所述整形模块102用于接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
在本申请实施例中,每个通道数据寄存器存储的对应通道的剩余数据信息,剩余数据信息包括以下信息:上一拍未输出的剩余数据 REMAIN_DATA、剩余数据是否携带包头标记 REMAIN_SOP、剩余数据是否携带包尾标记 REMAIN_EOP、剩余数据的字节数 REMAIN_BYTE,以及上一拍是否有效指示 REMAIN_VALID。其中上一拍是否有效指示用于指示上一拍的写入数据是否有未输出的剩余数据。
在本申请实施例中,所述数据整形电路与所述数据整形电路的上级模块连接,上级模块可以是主机。上级模块通过至少一次打拍输出每个读数据包,一个读数据包通常包括多拍数据,每一拍数据中的有效数据的字节数小于或等于预设长度。其中,预设长度是一拍数据的最大字节长度,也称为整数据位宽,例如预设长度是64B,上级模块101所输出的某一拍数据其有效字节数可能小于64B,比如有效字节数为40B,无效字节数为24B。
在本申请实施例中,在所述数据整形电路中存在一个通道的情况下,只有一条物理传输路径,由所述整形模块102接收上级模块输出的当前拍的写入数据信息。在所述数据整形电路中存在多个通道的情况下,由于多通道传输数据的场景中实际只有一条物理传输路径,每一通道对应的每一拍数据的传输是乱序交织在一起的,因此,在所述数据整形电路中包括多个通道的情况下,也是由所述整形模块102接收上级模块输出的当前拍的写入数据信息。
作为一个实施例,所述写入数据信息包括所述写入数据及所述写入数据对应的通道信息,所述根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息包括:
从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息。
在本申请实施例中,每个通道数据寄存器中还存储有对应通道的通道信息,所述整形模块102接收所述上级模块输出的当前拍的写入数据信息,写入数据信息中包括写入数据及所述写入数据对应的通道信息,然后从多个通道数据寄存器中确定与所述写入数据对应的通道信息对应的通道数据寄存器,并从对应的通道数据寄存器中读取所述对应的剩余数据信息。
作为一个实施例,所述写入数据信息还包括用于指示当前拍写入数据是否为包首的第一指示信息,所述剩余数据信息还包括用于指示当前通道数据寄存器中是否有剩余数据的第二指示信息,所述对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
当所述第一指示信息确定所述写入数据为包首数据时,若所述第二指示信息确定对应的通道数据寄存器中有剩余数据,则将通道数据寄存器中的剩余数据输出给所述下一级电路,并将所述写入数据写入所述通道数据寄存器中进行保存;若所述第二指示信息指示所述通道数据寄存器中没有剩余数据,则确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据输出,若不满足,则将所述写入数据写入所述通道数据寄存器中。
在本申请实施例中,一个完整的读数据包中的第一拍数据携带第一指示信息,第一指示信息也可以称为包头标记或包首标记,例如SOP标记。整形模块102首先根据写入数据信息中的第一指示信息确定所述写入数据是否为包首数据。当写入数据为包首数据时,整形模块102根据剩余数据信息中的第二指示信息确定对应的通道数据寄存器中是否有剩余数据。若对应的通道数据寄存器中有剩余数据,则整形模块102将通道数据寄存器中的剩余数据直接输出给所述下一级电路,将写入数据写入所述对应的通道数据寄存器中进行保存,以更新对应的通道数据寄存器中存储的剩余数据信息。
在另一个实施例中,若对应的通道数据寄存器中没有剩余数据,则整形模块102确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据直接输出给所述下一级电路;若不满足,则将所述写入数据写入所述通道数据寄存器中。
作为一个实施例,当所述第一指示信息确定所述写入数据不为包首数据时,若所述剩余数据的长度与所述写入数据的长度之和大于所述预设长度,从所述写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出,将所述写入数据余下的数据输入给所述对应的通道数据寄存器中,当所述剩余数据的长度与所述写入数据的长度之和小于所述预设长度时,则根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器,其中,所述写入数据信息还包括所述写入数据是否是包尾数据的所述第四指示信息。
在本申请实施例中,一个完整的读数据包中的最后一拍数据携带第四指示信息,第四指示信息也可以称为包尾标记,例如EOP标记。当写入数据不为包首数据时,整形模块102确定剩余数据的长度与写入数据的长度之和是否大于预设长度。若长度之和大于预设长度,则整形模块102从写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出至所述下一级电路,将所述写入数据中余下的数据写入所述对应的通道数据寄存器中。当长度之和小于所述预设长度时,则整形模块102从所述写入数据信息中确定写入数据的第四指示信息,并根据第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
作为一个实施例,所述根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
若根据所述第四指示信息确定所述写入数据为包尾数据时,则将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据,若根据所述第四指示信息确定所述写入数据不为包尾数据时,则将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据发送给所述通道数据寄存器进行保存。
在本申请实施例中,整形模块102根据第四指示信息确定所述写入数据是否为包尾数据。若所述写入数据为包尾数据时,整形模块102将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据;若所述写入数据不为包尾数据时,则整形模块102将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据写入所述对应的通道数据寄存器进行保存,以更新对应的通道数据寄存器中的剩余数据信息。
以上完成了图1所示电路的描述。
通过对图1所示电路的描述,可以看出,本申请提供的方案在数据整形过程中,将通道中上一拍未输出的剩余数据存储至对应的通道数据寄存器中,从而利用整形模块接收到当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。本申请中的数据整形电路不需要对数据整形电路的上级模块进行反压,可以接收上级模块输出的每一拍写入数据,即可将对一包数据进行数据整形后需要额外一拍输出的残留数据进行输出。此外,每个通道对应一个通道数据寄存器,而不是增加整形模块的数量,大大节省了逻辑资源。
以图3所示的数据包传输为例,图3中第一个数据包一共为三拍数据,假设每拍数据为8字节,输入的3拍数据分别为:XXXXBBAA_87654321, 11223344_55667788, 以及XXXXXX99_88776655(其中XX表示无效数据)。下面结合图4,图4为整形模块102的结构示意图,对第一数据包的传输流程进行描述:
第一步:整形模块102接收第一个数据包的第一拍数据的信息作为当前拍的写入数据信息。写入数据信息包括:i_data、i_sop、i_eop、i_byte、i_chnl、i_valid;i_data用于表示第一拍数据、i_sop用于指示第一拍数据是否携带包头标记、i_eop用于指示第一拍数据是否携带包尾标记、i_byte用于表示第一拍数据的大小、i_chnl用于表示第一拍数据对应的通道号(即写入数据的通道信息)、i_valid用于表示第一拍数据是否为有效数据。其中,i_sop即上述实施例中的第一指示信息,i_eop即上述实施例中的第四指示信息。
首先可以通过如图4中的data_pack模块根据当前拍的写入数据信息中写入数据对应的通道信息确定第一拍数据即写入数据对应的通道数据寄存器,比如i_chnl=0,则将第一拍数据写入图4中的CH0寄存器中,然后根据当前拍的写入数据信息中的第一指示信息i_sop确定写入数据为包首数据。此时,对应的通道数据寄存器中不存在剩余数据,且写入数据的字节长度不满足预设长度8字节,所以data_pack模块通过RR调度器和MUX多路选择器将写入数据写入对应的通道数据寄存器。对应的通道数据寄存器将写入数据作为当前拍的剩余数据进行存储,比如在CH0寄存器中通过数据结构remain_data、remain_sop、remain_eop、remain_byte、remain_chnl(即剩余数据的通道信息)、remain_valid依次对当前拍的剩余数据、剩余数据是否包含包首标记、剩余数据是否包含包尾标记、剩余数据大小、剩余数据所在当前寄存器对应的通道号、剩余数据是否有效等作为剩余数据信息进行保存。本实施例中remain_data、remain_sop、remain_eop、remain_byte、remain_chnl、remain_valid也即上述指示所述通道数据寄存器中有没有剩余数据的第二指示信息。如果通道数据寄存器中存在remain_data、remain_sop、remain_eop、remain_byte、remain_chnl、remain_valid保存的数据,则表明通道数据寄存器中存在剩余数据,都在表明通道数据寄存器中没有剩余数据。
其中,从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息,示例性的,就是从通道号与当前拍的i_chnl相同的通道数据寄存器中读取所述对应的剩余数据信息。
第二步:整形模块102接收第一个数据包的第二拍数据的信息作为当前拍拍的写入数据信息,data_pack模块根据当前拍的写入数据信息中的第一指示信息i_sop确定写入数据不为包首数据,并且根据当前拍的写入数据信息中的第四指示信息i_eop确定写入数据不为包尾数据。此时,data_pack模块通过第二指示信息获知到通道号与第二拍数据的i_chnl相同的通道数据寄存器中寄存有上一拍(即第一拍)的剩余数据,通过RR调度器和MUX多路选择器将对应的通道数据寄存器中剩余数据提取出来,且剩余数据的长度与写入数据的长度之和大于预设长度8字节,则从写入数据数据中提取8-6=2字节长度的数据和上一拍的剩余数据进行拼接,将拼接后的数据(即7788BBAA_87654321,其中7788来自于第一数据包中第二拍数据低2字节,BBAA_87654321来自于寄存的剩余数据)输出给下一级电路,并将余下的数据(11223344_5566,即当前拍的剩余数据)保存至对应的通道数据寄存器。其中,输出给下一级电路的数据的数据格式包括:o_data、o_sop、o_eop、o_byte、o_chnl、o_valid;o_data用于表示拼接后的数据、o_sop用于指示拼接后的数据是否携带包头标记、o_eop用于指示拼接后的数据是否携带包尾标记、o_byte用于表示拼接后的数据的大小、o_chnl用于表示拼接后的数据对应的通道号、o_valid用于表示拼接后的数据是否为有效数据。
第三步:整形模块102接收第一个数据包的第三拍数据的信息作为当前拍拍的写入数据信息。第三拍数据的写入数据信息同样包括:i_data、i_sop、i_eop、i_byte、i_chnl、i_valid。
此时,data_pack模块通过第三拍数据的第一指示信息i_sop检测到写入数据即第三拍数据不为包首数据,并通过第三拍数据的第四指示信息i_eop检测到写入数据即第三拍数据为包尾数据,且通过第二指示信息确定对应的通道数据寄存器中寄存有上一拍(即第二拍)的剩余数据,且上一拍的剩余数据的长度与写入数据的长度之和大于预设长度8字节,则从写入数据中提取8-6=2字节长度的数据和从寄存器中调度出的上一拍的剩余数据进行拼接,将拼接后的数据(即66551122_33445566,其中6655来自于写入数据低2字节,1122_33445566来自于寄存的上一拍的剩余数据)输出给下一级电路,并将余下的数据(998877,即当前拍的剩余数据)保存至对应的通道数据寄存器。
下面对图3所示的第二个数据包的传输过程进行简述。第二个数据包一共为二拍数据,假设每拍数据为8字节,输入的2拍数据分别为:XXFFEEDD_CCBBAA99、8876655_44332211。
第一步:整形模块102接收第二个数据包的第一拍数据的信息作为当前拍的写入数据信息,第二个数据包的第一拍数据的写入数据信息同样包括:i_data、i_sop、i_eop、i_byte、i_chnl、i_valid。data_pack模块检测到根据当前拍的写入数据信息中的第一指示信息i_sop确定写入数据为包首数据。此时,data_pack模块通过与第二指示信息检测到第二个数据包的第一拍数据的i_chnl相同的通道号对应的通道数据寄存器中寄存有上一数据包(即第一个数据包)的剩余数据,所以通过RR调度器和MUX多路选择器将通道数据寄存器中的剩余数据提取出来,并输出给下一级电路,进而将第二个数据包的第一拍数据作为写入数据写入对应的通道数据寄存器中。对应的通道数据寄存器将写入数据作为当前拍的剩余数据进行存储,存储的数据结构包括remain_data、remain_sop、remain_eop、remain_byte、remain_chnl、remain_valid。
至此,第一个数据包的所有数据借助第二个数据包的传输完成全部输出。
第二步,整形模块102接收第二个数据包的第二拍数据的信息作为当前拍的写入数据信息,第二个数据包的第二拍数据的写入数据信息同样包括:i_data、i_sop、i_eop、i_byte、i_chnl、i_valid。data_pack模块通过第一指示信息i_sop检测到第二个数据包的第二拍的写入数据不为包首数据,并根据第二个数据包的第二拍数据的第四指示信息i_eop确定第二个数据包的第二拍数据为包尾数据,且与第二个数据包的第二拍数据的i_chnl相同的通道号对应的通道数据寄存器中寄存有上一拍(即第二个数据包的第一拍数据)的剩余数据,且剩余数据的长度与写入数据的长度之和大于预设长度8字节,则从写入数据数据中提取8-7=1字节长度的数据和上一拍的剩余数据进行拼接,将拼接后的数据(即11FFEEDD_CCBBAA99,其中11来自于第二数据包中第二拍数据低1字节,FFEEDD_CCBBAA99来自于寄存的剩余数据)输出给下一级电路,并将余下的数据(887766_55443322,即当前拍的剩余数据)保存至对应的通道数据寄存器。
由于图3中第二个数据包之后没有新的数据包输入,因此,在超过预设时间之后,则确定在输入数据信息中的写入数据为空数据,整形模块102将获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个通道数据寄存器,通知选择出的通道数据寄存器将以前存储的空闲拍对应的空数据及剩余数据输出至所述整形模块103,利用所述空闲拍输出剩余数据至下一级电路。
以上通过图3完成了对图1所示电路的应用示例。
下面对图2所示的另一数据整形电路进行描述。图2所示的数据整形电路中包括至少一个通道数据寄存器201、整形模块202和调度模块203。通道数据寄存器包括多个通道分别对应的通道数据寄存器201_1……通道数据寄存器201_n,n为正整数。
作为一个实施例,所述剩余数据信息还包括用于指示通道数据寄存器中的数据是否处于可输出状态的第五指示信息,所述数据整形电路还包括调度模块;
所述调度模块还用于在输入数据信息中的写入数据为空数据时,获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个,输出所选择的通道数据寄存器中的剩余数据。
本实施例中的调度模块主要用于在某个通道对应的数据包中的包尾数据仍以剩余数据的形式寄存在对应的通道数据寄存器中,而且后续这个通道不再来新的数据时,通过调度模块203利用空闲拍输出剩余数据,以使下一级电路得到这个通道的完整数据包。
以上完成了对图2所示电路的描述。通过在数据整形电路中设置调度模块,在输入数据中存在空数据及空拍的情况下,利用调度模块实现了通道数据寄存器中的剩余数据的输出,不仅可以加快数据输出的效率,还可以降低电路中出现逻辑错误的概率。
以上完成了对图2所示电路的描述。该实施例所提供的数据整形电路,面对多通道的场景,不需要针对每一通道都设置一个复杂的整形模块,仅仅根据通道数增加了几组寄存器来寄存残留数据,大大节省了逻辑资源。
以上完成了对数据整形电路的实施例的描述。下面对本申请提供的一种数据整形方法的实施例进行描述:
所述方法应用于数据整形电路,所述电路包括至少一个通道数据寄存器和整形模块;
所述通道数据寄存器,用于存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据;
所述整形模块用于接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
可选地,所述写入数据信息包括所述写入数据及所述写入数据对应的通道信息,所述根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息包括:
从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息。
可选地,所述写入数据信息还包括用于指示当前拍写入数据是否为包首的第一指示信息,所述剩余数据信息还包括用于指示当前通道数据寄存器中是否有剩余数据的第二指示信息,所述对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
当所述第一指示信息确定所述写入数据为包首数据时,若所述第二指示信息确定对应的通道数据寄存器中有剩余数据,则将通道数据寄存器中的剩余数据输出给所述下一级电路,并将所述写入数据写入所述通道数据寄存器中进行保存;若所述第二指示信息指示所述通道数据寄存器中没有剩余数据,则确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据输出,若不满足,则将所述写入数据写入所述通道数据寄存器中。
可选地,所述方法还包括:
当所述第一指示信息确定所述写入数据不为包首数据时,若所述剩余数据的长度与所述写入数据的长度之和大于所述预设长度,从所述写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出,将所述写入数据余下的数据输入给所述对应的通道数据寄存器中,当所述剩余数据的长度与所述写入数据的长度之和小于所述预设长度时,则根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器,其中,所述写入数据信息还包括所述写入数据是否是包尾数据的所述第四指示信息。
可选地,所述根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
若根据所述第四指示信息确定所述写入数据为包尾数据时,则将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据,若根据所述第四指示信息确定所述写入数据不为包尾数据时,则将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据发送给所述通道数据寄存器进行保存。
可选地,所述剩余数据信息还包括用于指示通道数据寄存器中的数据是否处于可输出状态的第五指示信息,所述数据整形电路还包括调度模块;
所述调度模块还用于在输入数据信息中的写入数据为空数据时,获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个,输出所选择的通道数据寄存器中的剩余数据。
以上完成了对方法实施例的描述。方法实施例的具体细节可以参照上述对数据整形电路的描述,这里不再赘述。
对应地,本申请实施例还提供了一种芯片,所述芯片包括如上任一项所述的数据整形电路。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (13)
1.一种数据整形电路,其特征在于,包括整形模块和至少一个通道数据寄存器;
所述通道数据寄存器,用于存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据;
所述整形模块用于接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
2.根据权利要求1所述的数据整形电路,其特征在于,所述写入数据信息包括所述写入数据及所述写入数据对应的通道信息,所述根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息包括:
从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息。
3.根据权利要求2所述的数据整形电路,其特征在于,所述写入数据信息还包括用于指示当前拍写入数据是否为包首的第一指示信息,所述剩余数据信息还包括用于指示当前通道数据寄存器中是否有剩余数据的第二指示信息,所述整形模块具体用于:
当所述第一指示信息确定所述写入数据为包首数据时,若所述第二指示信息确定对应的通道数据寄存器中有剩余数据,则将通道数据寄存器中的剩余数据输出给所述下一级电路,并将所述写入数据写入所述通道数据寄存器中进行保存;若所述第二指示信息指示所述通道数据寄存器中没有剩余数据,则确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据输出,若不满足,则将所述写入数据写入所述通道数据寄存器中。
4.根据权利要求3所述的数据整形电路,其特征在于,所述整形模块还用于:
当所述第一指示信息确定所述写入数据不为包首数据时,若所述剩余数据的长度与所述写入数据的长度之和大于所述预设长度,从所述写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出,将所述写入数据余下的数据输入给所述对应的通道数据寄存器中,当所述剩余数据的长度与所述写入数据的长度之和小于所述预设长度时,则根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器,其中,所述写入数据信息还包括所述写入数据是否是包尾数据的所述第四指示信息。
5.根据权利要求4所述的数据整形电路,其特征在于,所述整形模块还用于:
若根据所述第四指示信息确定所述写入数据为包尾数据时,则将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据,若根据所述第四指示信息确定所述写入数据不为包尾数据时,则将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据发送给所述通道数据寄存器进行保存。
6.根据权利要求1-5任一项所述的数据整形电路,其特征在于,所述剩余数据信息还包括用于指示通道数据寄存器中的数据是否处于可输出状态的第五指示信息,所述数据整形电路还包括调度模块;
所述调度模块还用于在输入数据信息中的写入数据为空数据时,获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个,输出所选择的通道数据寄存器中的剩余数据。
7.一种数据整形方法,其特征在于,所述方法应用于数据整形电路,所述电路包括整形模块和至少一个通道数据寄存器;
所述通道数据寄存器存储对应通道的剩余数据信息,所述剩余数据信息包括对应通道在上一拍未输出的剩余数据;
所述整形模块接收当前拍的写入数据信息,根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息,对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器。
8.根据权利要求7所述的方法,其特征在于,所述写入数据信息包括所述写入数据及所述写入数据对应的通道信息,所述根据所述写入数据信息从对应的通道数据寄存器中读取对应的剩余数据信息包括:
从与所述写入数据对应的通道信息相同的通道数据寄存器中读取所述对应的剩余数据信息。
9.根据权利要求8所述的方法,其特征在于,所述写入数据信息还包括用于指示当前拍写入数据是否为包首的第一指示信息,所述剩余数据信息还包括用于指示当前通道数据寄存器中是否有剩余数据的第二指示信息,所述对所述写入数据信息和所述剩余数据进行处理,输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
当所述第一指示信息确定所述写入数据为包首数据时,若所述第二指示信息确定对应的通道数据寄存器中有剩余数据,则将通道数据寄存器中的剩余数据输出给所述下一级电路,并将所述写入数据写入所述通道数据寄存器中进行保存;若所述第二指示信息指示所述通道数据寄存器中没有剩余数据,则确定所述写入数据的字节长度是否满足预设长度,如果满足,则将所述写入数据输出,若不满足,则将所述写入数据写入所述通道数据寄存器中。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述第一指示信息确定所述写入数据不为包首数据时,若所述剩余数据的长度与所述写入数据的长度之和大于所述预设长度,从所述写入数据中提取(预设长度-剩余数据长度)的写入数据和所述剩余数据进行拼接,并将拼接后的数据输出,将所述写入数据余下的数据输入给所述对应的通道数据寄存器中,当所述剩余数据的长度与所述写入数据的长度之和小于所述预设长度时,则根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器,其中,所述写入数据信息还包括所述写入数据是否是包尾数据的所述第四指示信息。
11.根据权利要求10所述的方法,其特征在于,所述根据写入数据的第四指示信息确定输出处理数据给所述数据整形电路的下一级电路和/或输出处理后的剩余数据信息给对应的所述通道数据寄存器具体包括:
若根据所述第四指示信息确定所述写入数据为包尾数据时,则将剩余数据和所述写入数据进行拼接,并向所述下一级电路输出拼接后的数据,若根据所述第四指示信息确定所述写入数据不为包尾数据时,则将所述剩余数据和所述写入数据进行拼接,并将拼接后的数据发送给所述通道数据寄存器进行保存。
12.根据权利要求11所述的方法,其特征在于,所述剩余数据信息还包括用于指示通道数据寄存器中的数据是否处于可输出状态的第五指示信息,所述数据整形电路还包括调度模块;
所述调度模块在输入数据信息中的写入数据为空数据时,获取所述至少一个通道寄存器中的第五指示信息,确定所述第五指示信息为剩余数据可输出状态的通道寄存器,从所述第五指示信息为可输出状态的通道寄存器中选择一个,输出所选择的通道数据寄存器中的剩余数据。
13.一种芯片,其特征在于,所述芯片包括如权利要求1-6任一项所述的数据整形电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410253836.6A CN117854553B (zh) | 2024-03-06 | 2024-03-06 | 一种数据整形电路、方法和芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410253836.6A CN117854553B (zh) | 2024-03-06 | 2024-03-06 | 一种数据整形电路、方法和芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117854553A true CN117854553A (zh) | 2024-04-09 |
CN117854553B CN117854553B (zh) | 2024-06-25 |
Family
ID=90538673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410253836.6A Active CN117854553B (zh) | 2024-03-06 | 2024-03-06 | 一种数据整形电路、方法和芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117854553B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684976A (zh) * | 2011-03-10 | 2012-09-19 | 中兴通讯股份有限公司 | 一种基于ddr sdram进行数据读写的方法、装置及系统 |
JP2013061814A (ja) * | 2011-09-13 | 2013-04-04 | Toshiba Corp | データ記憶装置、メモリ制御装置及び方法 |
CN108399047A (zh) * | 2017-02-06 | 2018-08-14 | 中兴通讯股份有限公司 | 一种闪存文件系统及其数据管理方法 |
CN110727398A (zh) * | 2018-07-16 | 2020-01-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111913659A (zh) * | 2020-07-14 | 2020-11-10 | 长沙景嘉微电子股份有限公司 | 块数据处理方法、装置、系统及存储介质 |
CN114527953A (zh) * | 2022-04-24 | 2022-05-24 | 深圳云豹智能有限公司 | 存储器数据处理系统、方法、装置、计算机设备和介质 |
CN115145481A (zh) * | 2022-05-11 | 2022-10-04 | 北京微纳星空科技有限公司 | 一种数据写入方法、装置、设备及存储介质 |
CN116225314A (zh) * | 2022-12-15 | 2023-06-06 | 天津中科曙光存储科技有限公司 | 数据写入方法、装置、计算机设备和存储介质 |
CN117407324A (zh) * | 2023-12-12 | 2024-01-16 | 深圳市银闪科技有限公司 | 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 |
-
2024
- 2024-03-06 CN CN202410253836.6A patent/CN117854553B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684976A (zh) * | 2011-03-10 | 2012-09-19 | 中兴通讯股份有限公司 | 一种基于ddr sdram进行数据读写的方法、装置及系统 |
JP2013061814A (ja) * | 2011-09-13 | 2013-04-04 | Toshiba Corp | データ記憶装置、メモリ制御装置及び方法 |
CN108399047A (zh) * | 2017-02-06 | 2018-08-14 | 中兴通讯股份有限公司 | 一种闪存文件系统及其数据管理方法 |
US20200034340A1 (en) * | 2017-02-06 | 2020-01-30 | Zte Corporation | Flash file system and data management method therof |
CN110727398A (zh) * | 2018-07-16 | 2020-01-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111913659A (zh) * | 2020-07-14 | 2020-11-10 | 长沙景嘉微电子股份有限公司 | 块数据处理方法、装置、系统及存储介质 |
CN114527953A (zh) * | 2022-04-24 | 2022-05-24 | 深圳云豹智能有限公司 | 存储器数据处理系统、方法、装置、计算机设备和介质 |
CN115145481A (zh) * | 2022-05-11 | 2022-10-04 | 北京微纳星空科技有限公司 | 一种数据写入方法、装置、设备及存储介质 |
CN116225314A (zh) * | 2022-12-15 | 2023-06-06 | 天津中科曙光存储科技有限公司 | 数据写入方法、装置、计算机设备和存储介质 |
CN117407324A (zh) * | 2023-12-12 | 2024-01-16 | 深圳市银闪科技有限公司 | 基于固态硬盘的数据存储方法、装置、固态硬盘控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN117854553B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4227818A1 (en) | Multi-core processing system and inter-core communication method therefor, and storage medium | |
CA1281434C (en) | Serial communications controller | |
US7325168B2 (en) | Trace data source identification within a trace data stream | |
CN110134365B (zh) | 一种多通道并行读出fifo的方法及装置 | |
CN1983424B (zh) | 错误校正装置及校正方法 | |
US9766820B2 (en) | Arithmetic processing device, information processing device, and control method of arithmetic processing device | |
CN111930676A (zh) | 多处理器间的通信方法、装置、系统及存储介质 | |
CN115905061B (zh) | 数据搬运装置、dma装置、电子设备及数据搬运方法 | |
CN113179216B (zh) | 一种寄存器的远程配置方法、计算机设备及存储介质 | |
CN115729879A (zh) | 数据帧格式、芯片通信方法及芯片 | |
CN117854553B (zh) | 一种数据整形电路、方法和芯片 | |
CN114830103B (zh) | 跟踪处理程序模块系统和使用所述系统的方法 | |
US9055019B1 (en) | Method and apparatus for message multicasting | |
CN110955383B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN115878351B (zh) | 消息的传输方法及装置、存储介质及电子装置 | |
US20050105556A1 (en) | Packet processor and buffer memory controller for extracting and aligning packet header fields to improve efficiency of packet header processing of main processor and method and medium therefor | |
US6990100B2 (en) | Packet conversion | |
CN112532531B (zh) | 一种报文调度方法及装置 | |
CN102571535B (zh) | 一种数据延迟装置、方法及通信系统 | |
KR20240046830A (ko) | 칩-대-칩 인터페이스를 위한 온-디맨드 패킷화 | |
US8661162B2 (en) | Address handling | |
CN115658566B (zh) | 一种实现多通道数据流均衡的方法和系统 | |
CN111865741B (zh) | 数据传输方法及数据传输系统 | |
JP4685368B2 (ja) | データを処理する装置、トレースデータを発生する方法、及びトレースデータを分析する装置 | |
CN116665836B (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 |