CN114265625A - 数据循环移位装置、方法、芯片、计算机设备及存储介质 - Google Patents
数据循环移位装置、方法、芯片、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114265625A CN114265625A CN202111673017.XA CN202111673017A CN114265625A CN 114265625 A CN114265625 A CN 114265625A CN 202111673017 A CN202111673017 A CN 202111673017A CN 114265625 A CN114265625 A CN 114265625A
- Authority
- CN
- China
- Prior art keywords
- cyclic shift
- data
- target
- cyclic
- level
- 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
- 125000004122 cyclic group Chemical group 0.000 title claims abstract description 552
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000013598 vector Substances 0.000 claims abstract description 53
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 240000003537 Ficus benghalensis Species 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 230000008707 rearrangement Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Radio Transmission System (AREA)
Abstract
本公开提供了一种数据循环移位装置、方法、芯片、计算机设备及存储介质,包括:处理器、存储器和多层级循环移位网络,多层级循环移位网络包含多个循环移位器;存储器,用于存储预先确定的各循环移位参数与控制向量之间的映射关系;控制向量基于各循环移位器分别在多层级循环移位网络的目标层级、目标位置以及循环移位参数确定;处理器,用于确定目标输入数据,并从存储器中提取与循环移位参数匹配的控制向量;将目标输入数据和提取的控制向量输入至多层级循环移位网络,基于多层级循环移位网络输出的目标输出数据和循环移位参数,确定数据循环移位结果;多层级循环移位网络,用于针对目标输入数据,基于各循环移位器进行循环移位操作。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据循环移位装置、方法、芯片、计算机设备及存储介质。
背景技术
随着集成电路的不断发展,循环移位网络被广泛的应用于各式芯片中,用以进行数据的循环移位运算。
实际应用中,除了需要对各种不同长度的数据进行循环移位操作,往往还需要根据不同的使用场景对待循环移位数据进行相应的处理,以使得到的循环移位结果满足不同场景的需求,因此如何设置可配置且兼容不同应用场景的循环移位网络成为了亟待解决的问题之一。
发明内容
本公开实施例至少提供一种数据循环移位装置、方法、芯片、计算机设备及存储介质。
第一方面,本公开实施例提供了一种数据循环移位装置,包括:处理器、存储器和多层级循环移位网络,所述多层级循环移位网络包含多个循环移位器;其中:
所述存储器,用于存储预先确定的各循环移位参数与控制向量之间的映射关系;所述控制向量为基于各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
所述处理器,用于在获取到待循环移位数据和循环移位参数后,基于所述循环移位参数和待循环移位数据,确定目标输入数据,并从所述存储器中提取与所述循环移位参数匹配的控制向量;将所述目标输入数据和提取的控制向量输入至所述多层级循环移位网络,基于所述多层级循环移位网络输出的目标输出数据和所述循环移位参数,确定数据循环移位结果;
所述多层级循环移位网络,用于针对所述目标输入数据,基于各循环移位器进行循环移位操作。
一种可能的实施方式中,所述循环移位参数包括移位值,以及如下至少一种:移位方向、移位延迟、最小移位单元以及所述多层级循环移位网络的输入端数量,其中,所述最小移位单元表示多层级循环移位网络进行移位操作时的单位处理位数。
这样,通过设置最小移位单元,可以使得多层级循环移位网络能够对不同长度的待循环移位数据进行循环移位操作。
一种可能的实施方式中,所述处理器,具体用于基于所述最小移位单元和所述多层循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据的总位数;在检测到所述目标循环移位数据的总位数与所述待循环移位数据的位数不同的情况下,基于所述待循环移位数据、最小移位单元以及所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
一种可能的实施方式中,所述处理器,具体用于在检测到所述待循环移位数据的位数小于所述总位数的情况下,使用填充数据对所述待循环移位数据进行填充,以得到数据位数等于所述总位数的目标循环移位数据;基于所述目标循环数据和所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
这样,通过使用填充数据对待循环移位数据进行填充,可以解决数据长度为任意值的待循环移位数据的循环移位问题。
一种可能的实施方式中,所述处理器,具体用于将所述目标循环移位数据分别输入至对应的输入端;并将与所述循环移位参数对应的控制向量分别输入至对应的循环移位器;
所述多层级循环移位网络中的每个所述循环移位器,用于按照所述控制向量对目标循环移位数据进行循环移位处理,得到所述目标输出数据。
一种可能的实施方式中,所述处理器,还用于在检测到所述目标输出数据中包含填充数据的情况下,将所述填充数据删除,得到删除填充数据的数据循环移位结果。
这样,通过将填充数据删除,可以确保最终得到的数据循环移位结果的准确性。
一种可能的实施方式中,所述处理器,具体用于在检测到所述最小移位单元不为预设值的情况下,基于所述移位值和所述最小移位单元,对所述目标输出数据进行重排,得到所述数据循环移位结果。
这样,通过对目标输出数据进行重排操作,可以确保最终得到的数据循环移位结果的准确性,从而有效解决在使用最小移位单元进行数据循环移位时的循环移位问题。
一种可能的实施方式中,所述处理器,还用于根据所述移位延迟,为所述数据循环移位结果中的数据添加延迟,以调节所述数据循环移位结果中数据的时序。
这样,通过添加延迟,可以调节所述待循环移位数据的时序,从而可以适应不同时序要求的应用场景,有效避免在例如芯片等应用场景中由于时序违规(即时序不符合预设要求)造成的亚稳态问题。
一种可能的实施方式中,所述循环移位器由至少一个循环移位开关组成;
根据以下方法确定控制各循环移位器进行循环移位操作的控制向量:
针对各循环移位器中的任一所述循环移位开关,在检测到满足mod[mod(k-1,2n-1)-V,2n)]≥2n-1的情况下,将该循环移位开关的开关状态设置为第一状态;以及,
在检测到满足mod[mod(k-1,2n-1)-V,2n)]<2n-1的情况下,将该循环移位开关的开关状态设置为第二状态;
其中,V为所述移位值,n和k分别表示该循环移位开关在所述多层级循环移位网络中的目标层级,以及在所述目标层级中的目标位置,mod表示取余操作。
第二方面,本公开实施例提供了一种数据循环移位方法,包括:
获取待循环移位数据和循环移位参数;
基于所述循环移位参数和待循环移位数据,确定目标输入数据;
将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
第三方面,本公开实施例还提供一种芯片,所述芯片部署有如第一方面中任一种可能的实施方式中的数据循环移位装置。
第四方面,对应于第二方面的数据循环移位方法,本公开实施例还提供一种数据循环移位装置,包括:
获取单元,用于获取待循环移位数据和循环移位参数;
第一确定单元,用于基于所述循环移位参数和待循环移位数据,确定目标输入数据;
移位单元,用于将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
第二确定单元,用于基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
第五方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第二方面;或者,包括:第三方面中的芯片。
第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第二方面中的步骤。
关于上述数据循环移位方法、芯片、计算机设备及存储介质的效果描述参见上述数据循环移位装置的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据循环移位方法的流程图;
图2示出了本公开实施例所提供的数据循环移位方法中,多层级循环移位网络的示意图;
图3示出了本公开实施例所提供的数据循环移位方法中,确定循环移位器在多层级循环移位网络的目标层级和目标位置的示意图;
图4示出了本公开实施例所提供的数据循环移位方法中,对所述目标输出数据进行重排操作的示意图;
图5示出了本公开实施例所提供的一种数据循环移位装置的架构示意图;
图6示出了本公开实施例所提供的一种数据循环移位装置的架构示意图;
图7示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,随着集成电路的不断发展,循环移位网络被广泛的应用于各式芯片中,用以进行数据的循环移位运算。实际应用中,除了需要对各种不同长度的数据进行循环移位操作,往往还需要根据不同的使用场景对待循环移位数据进行相应的处理,以使得到的循环移位结果满足不同场景的需求,因此如何设置可配置且兼容不同应用场景的循环移位网络成为了亟待解决的问题之一。
基于上述研究,本公开提供了一种数据循环移位装置、方法、芯片、计算机设备及存储介质,通过基于所述循环移位参数和待循环移位数据,确定目标输入数据,并在基于多层级循环移位网络得到目标输出结果之后,根据循环移位参数对目标输出数据进行处理,得到数据循环移位结果。这样,可以提高使用多层级循环移位网络进行数据循环移位操作时的适用性,使得多层级循环移位网络能够适应不同应用场景下的数据循环移位需求。
实际应用中,循环移位网络可以是多层级循环移位网络,多层级循环移位网络中的每一层循环移位网络可以由多个运算单元(Processing Element,PE)并行组成,每个运算单元可以由多输入多输出的开关构成,运算单元的输入端和输出端的数量与各层循环移位网络在所述多层级置换网络中的排布顺序相关,不同层置换网络分别对应的运算单元的具体结构不同,多层级循环移位网络通过各层循环移位网络的串行计算完成整个多层级循环移位网络的循环移位运算,循环移位网络在部署时可以作为芯片中的硬件单元进行部署,以为芯片中的循环移位需求提供片内的硬件支持,或者也可以封装成相应的硬件与需要进行循环移位运算的目标芯片连接,以在接收到循环移位请求时根据待循环移位数据和循环移位参数进行循环移位操作,循环移位操作的目的例如可以是提高运算效率等,循环移位操作作为一种数据处理方式,可以根据不同的任务需求,设置不同的循环移位参数,从而满足不同的任务需求。
示例性的,循环移位运算可以用于有循环移位需求的目标算法中,比如低密度奇偶校验码(Low Density Parity Check Code,LDPC)译码算法、图像分类函数bitset函数的相关算法等,在目标算法中,待处理数据在经过循环移位网络的循环移位处理后再进行相应的运算,相较于直接进行运算能够降低运算时的复杂度,从而可以提高使用目标算法时的运算效率,节约运算资源。
本公开实施例中的“循环移位器”可以作为上述运算单元,本公开实施例中的“循环移位开关”可以作为上述运算单元中的开关。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据循环移位方法进行详细介绍,本公开实施例所提供的数据循环移位方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、计算设备等。在一些可能的实现方式中,该数据循环移位方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的数据循环移位方法的流程图,所述方法包括步骤S101~S104,其中:
S101:获取待循环移位数据和循环移位参数。
S102:基于所述循环移位参数和待循环移位数据,确定目标输入数据。
S103:将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的。
S104:基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
以下是对上述步骤的详细介绍。
针对S101,可以从循环移位请求中解析出所述待循环移位数据和循环移位参数,发起循环移位请求的请求方可以是与数据循环移位装置建立通讯连接的硬件设备,所述待循环移位数据表示需要进行循环移位操作的初始数据,所述循环移位参数包括移位值,以及如下至少一种:移位方向、移位延迟、最小移位单元以及所述多层级循环移位网络的输入端数量,其中,所述最小移位单元表示通过多层级循环移位网络完成一次循环移位操作时所移动的最小位数(也即单位处理位数)。
具体的,所述移位方向表示在进行数据循环移位操作时的方向,包括向左和向右,分别对应向左进行循环移位操作和向右进行循环移位操作;所述移位值表示在进行循环移位操作时在移位方向上移动的位数,比如移位值为1即表示在移位方向上循环移动1位;所述移位延迟表示为待循环移位数据在进行数据循环移位操作时添加的延迟值,以调节所述待循环移位数据的时序,比如延迟值为1,即为在一个时钟周期后继续进行循环移位操作,最终得到的循环移位结果中相较于未进行延迟的循环移位结果在时序方面发生了改变,从而可以适应不同时序要求的应用场景,有效避免在例如芯片等应用场景中由于时序违规(即时序不符合预设要求)造成的亚稳态问题;在一些场景中,需要进行移位的粒度不是1个数,而是几个数,这就需要将零散的数据(data)划分成数据块(block),比如输入数据个数是16,可以将2个数设置为一个数据块,以数据块为单位在多层级循环移位网络中进行输入,此时输入数据数量即为输入数据块数量(此例中为8),每个数据块构成循环移位的最小单元。
S102:基于所述循环移位参数和待循环移位数据,确定目标输入数据。
这里,所述目标输入数据即为输入多层级循环移位网络的数据,在确定目标输入数据时,可以基于所述最小移位单元和所述多层循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据的总位数,并基于所述目标循环移位数据的总位数与所述待循环移位数据的位数之间的关系,确定所述目标输入数据。
具体的,所述最小移位单元以及所述多层级循环移位网络的输入端数量的乘积即为所述目标循环移位数据的总位数。
示例性的,以所述最小移位单元为5,所述多层级循环移位网络的输入端数量为16为例,则所述目标循环移位数据的总位数即为80。
具体的,在确定所述目标输入数据时,根据所述目标循环移位数据的总位数与所述待循环移位数据的位数之间的关系的不同,可以分为以下几种情况:
情况1、所述目标循环移位数据的总位数与所述待循环移位数据的位数相同。
在这种情况下,可以基于所述最小移位单元对所述待循环移位数据进行切分,得到输入至所述多层级循环移位网络各输入端的目标循环移位数据。
示例性的,以所述待循环移位数据为a0~a15、最小移位单元为4、多层级循环移位网络的输入端数量为4为例,可以根据最小移位单元4对所述待循环移位数据a0~a15进行切分,得到输入至所述多层级循环移位网络第1~4个输入端的目标循环移位数据分别为a0~a3、a4~a7、a8~a11、a12~a15。
情况2、所述目标循环移位数据的总位数大于所述待循环移位数据的位数。
此时,可以基于所述循环移位数据的位数和所述多层级循环移位网络的输入端数量,确定最小目标移位单元,以使用所述最小目标移位单元对所述最小移位单元进行更新,并在对最小移位单元进行更新后,根据更新后的所述最小移位单元重新确定目标循环移位数据的总位数,并重新执行确定所述目标输入数据的步骤。
示例性的,以所述待循环移位数据为a0~a71为例,所述多层级循环移位网络的输入端为A0~A15为例,所述待循环移位数据的位数为72个,所述多层级循环移位网络的输入端为16个,可以使用所述待循环移位数据的位数72除以所述多层级循环移位网络的输入端个数16,并对得到的商进行向上取余,得到最终结果为5,即可确定对应的所述最小目标移位单元为5,其表征的物理含义为需要将最少5个待循环移位数据输入至所述多层级循环移位网络的1个输入端,才能使用所述多层级循环移位网络完成所述待循环移位数据的循环移位操作。
需要说明的是,在对所述最小移位单元进行更新时,使用所述最小目标移位单元对所述最小移位单元进行更新仅为一种可能的实施方式,实际应用中可以根据需求选择任一大于所述最小目标移位单元的数值对所述最小移位单元进行更新,本公开实施例对此不做限定。
情况3、所述目标循环移位数据的总位数小于所述待循环移位数据的位数。
此时,可以使用填充数据对所述待循环移位数据进行填充,以得到数据位数等于所述总位数的目标循环移位数据。
具体的,在使用所述填充数据对所述待循环移位数据进行填充时,可以在所述待循环移位数据的左侧进行填充(即填充在所述待循环移位数据的前面),或者在所述待循环移位数据的右侧进行填充(即填充在所述待循环移位数据的后面)。
示例性的,以所述待循环移位数据为a0~a11为例,所述多层级循环移位网络的输入端为A0~A15为例,所述待循环移位数据的位数为12个,所述多层级循环移位网络的输入端为16个,可以使用填充数据0对所述待循环移位数据进行填充,填充后的目标循环移位数据可以是0、0、0、0、a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11,或者a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11、0、0、0、0。
进一步的,在得到填充后的目标循环移位数据后,即可基于所述目标循环数据和所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
承接上例,可以确定填充后的0、0、0、0、a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11、a12,或者a0、a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11、a12、0、0、0、0为依次输入至A0、A1、A2、A3、A4、A5、A6、A7、A8、A9、A10、A11、A12、A13、A14、A15中的目标循环移位数据。
S103:将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的。
这里,所述多层级循环移位网络可以是banyan网络、butterfly网络等,可以基于所述多层级循环移位网络的输入端数量,确定所述多层级循环移位网络的层数,以及各层循环移位网络中循环移位器的类型和连接方式。
具体的,假设所述多层级循环移位网络的层数为N,则所述多层级循环移位网络的输入端数量为2N,从第1层至第N层,第M层(N≥M≥1,其N和M均为正整数)的循环移位器均由2M-1个循环移位开关构成,所述循环移位开关为构成所述循环移位器的最小硬件单元,控制所述循环移位器即为控制所述循环移位器中的循环移位开关,各所述循环移位开关均具有两个输入端和两个输出端,每层循环移位网络中循环移位器的输入端均连接上一层对应位置处的循环移位器的输出端(第一层的输入端即为所述多层级循环移位网络的输入端),每层循环移位网络中循环移位器的输出端均连接下一层对应位置处的循环移位器的输入端(最后一层的输出端即为所述多层级循环移位网络的输出端),第M层的循环移位器的数量为2N-M。
示例性的,以所述多层级循环移位网络为banyan网络为例,在所述banyan网络中,为了使得输入数据能够完成各种循环移位的需求,且同时占用最少硬件资源,banyan网络的输入端数量、banyan网络的层数、各层级所包含的循环移位器的数量以及循环移位开关的数量通常存在唯一对应关系,也即为了完成特定数量的输入数据的各种循环移位运算,所需要使用的banyan网络的最少层数是固定的,而在banyan网络的层数为最少层数的情况下各层级所包含的循环移位器的数量,以及循环移位开关的数量也是固定的,也即在满足各种循环移位运算需求的前提下,占用最少硬件资源时的各种硬件设置参数(banyan网络的层数、各层级所包含的循环移位器的数量以及循环移位开关的数量)都是唯一的。
示例性的,所述多层级循环移位网络的示意图可以如图2所示,图2中,所述多层级循环移位网络的输入端数量为16个,则所述多层级循环移位网络的层数为4层,第1~4层分别由8、4、2、1个循环移位器组成,第1~4层中每层循环移位器中包含的循环移位开关(即图2中的SW)分别为1、2、4、8个。在进行数据循环移位时,第1层输入的目标输入数据依次为a0~a15,经过第1层的循环移位网络的处理后,得到b0~b15;b0~b15输入至第2层的循环移位网络,经过第2层的循环移位网络的处理后,得到c0~c15;c0~c15输入至第3层的循环移位网络,经过第3层的循环移位网络的处理后,得到d0~d15;d0~d15输入至第4层的循环移位网络,经过第4层的循环移位网络的处理后,得到e0~e15(即所述多层级循环移位网络的目标输出数据)。
这里,在将所述目标输入数据输入至多层级循环移位网络时,可以将输入至所述多层级循环移位网络各输入端的目标循环移位数据分别输入至对应的输入端;以及,将所述控制向量分别输入至对应的循环移位器,以指示所述循环移位器按照所述控制向量对目标循环移位数据进行循环移位处理,从而得到所述目标输出数据。
具体的,可以基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数确定所述控制向量。
这里需要说明的是,所述多层级循环移位网络可以是banyan网络、butterfly网络中的任意一种,banyan网络和butterfly网络均是通过循环移位器相互连接构成的,banyan网络和butterfly网络对应的控制向量的计算方法不同,因此即使banyan网络和butterfly网络的网络结构不同,但是通过计算banyan网络和butterfly网络分别对应的控制向量,均能实现循环移位效果。
示例性的,在图2介绍了多层级循环移位网络的示意图的基础上,为了突出展示图2中各循环移位开关在具体进行循环移位运算时的作用,确定循环移位器在所述多层级循环移位网络的目标层级和目标位置的示意图可以如图3所示,图3中,待循环移位数据为a1~aL,经过填充数据填充后,输入至所述多层级循环移位网络的数据为a1~a2k,为所述多层级循环移位网络中的循环移位开关的编号为SWk,n,其中,K≥k≥1,K为每层循环移位网络具有的循环移位开关的个数;N≥n≥1,N为所述多层循环移位网络的层数,K与N的关系为K=2N-1,则通过编号即可快速定位出任一所述循环移位开关在所述多层级循环移位网络中的目标层级,以及在所述目标层级中的目标位置。
进一步的,以多层级循环移位网络为banyan网络为例,根据banyan网络的网络结构特征,以及多层级的banyan网络中不同层级之间的级联关系,针对任一所述循环移位开关,可以基于该循环移位开关对应的所述目标层级、所述目标位置以及所述移位值确定该循环移位开关的开关状态,在确定所述开关状态时可以使用预设的判断公式对所述目标层级、所述目标位置以及所述移位值进行判断,并根据判断结果确定该循环移位开关的开关状态。这样,通过为组成所述多层级循环移位网络的每个循环移位开关进行判断,并根据判断结果设置对应的开关状态,即可通过各循环移位开关分别对应的开关状态,完成所述移位值对应的循环移位操作。
基于此,在预先确定循环移位参数与控制向量之间的映射关系时,需要首先根据循环移位数据对应的循环移位参数确定对应的控制向量,实施时,可以在检测到满足mod[mod(k-1,2n-1)-V,2n)]≥2n-1时,将该循环移位开关的开关状态设置为第一状态(进行数据交换,将两个输入端分别输入的数据进行交换后,从两个输出端分别输出),其中V为所述移位值,n和k分别表示该循环移位开关在所述多层级循环移位网络中的目标层级,以及在所述目标层级中的目标位置,mod表示取余操作,mod(a,b)表示取a÷b后得到的余数;否则,将该循环移位开关的开关状态设置为第二状态(不进行数据交换,将两个输入端分别输入的数据,从两个输出端直接输出)。
进一步的,这里的V通常指的是左移值,如果移位方向是右移,可以将右移位数换算成左移位数再赋给V,在一种实施方式中,数据长度减去右移值等于左移值。
需要说明的是,在所述最小移位单元不为1的情况下,在上述判断公式中使用的移位值并不是初始的所述循环移位参数中的移位值,而是基于所述循环移位参数和所述最小移位单元重新确定的目标移位值,也即所述目标移位值为所述最小移位单元不为1的情况下,根据判断公式判断循环移位开关的开关状态时所使用的移位值。
示例性的,以所述移位值为9,最小移位单元为2为例,则在判断公式中使用的移位值(也即目标移位值)为9除2的商,也即是4,为了区分其与初始的移位值,因此将重新确定的移位值称为目标移位值。
示例性的,以图2中输入端的数据为a0和a1,输出端的数据为b0和b1的循环移位开关为例,若该开关的开关状态为第一状态,则在输出端输出的b0即为a1,输出的b1即为a0,该循环移位开关的作用即为将输入的a0和b0的顺序进行了调换;而若该开关的开关状态为第二状态,则在输出端输出的b0即为a0,输出的b1即为a1,该循环移位开关的作用即为将输入的a0和b0的顺序不进行调换,直接输出。
示例性的,以所述待循环移位数据的位数和所述多层级循环移位网络的输入端数量均为8为例,则N为3,K为4,在所述移位值V为0的情况下,针对SW1,1,将k=1、n=1、V=0带入mod[mod(k-1,2n-1)-V,2n)可得计算结果为0,0小于1,则所述SW1,1的开关状态为第二状态,根据相同计算过程可得其他的循环移位开关的开关状态,由于计算过程是相似的,因此计算过程在此不再赘述,根据上述判断公式可得各循环移位开关的开关状态均为第二状态,也即均不进行数据交换,最终的输入与输出相同,不进行循环移位操作;在所述移位值V为1的情况下,根据上述判断公式可得编号为SW1,1、SW2,1、SW3,1、SW4,1、SW1,2、SW3,2、SW1,3的循环移位开关的开关状态为第一状态,其余编号的循环移位开关的开关状态为第二状态。
进一步的,在确定出各位数的待循环移位数据和对应的移位值对应的各循环移位开关的开关状态后,可以根据各循环移位开关分别对应的循环移位器,确定各循环移位器分别对应的控制向量,并将待循环移位数据的位数、移位值以及确定的各循环移位器分别对应的控制向量之间的映射关系存储在存储器中(例如存储在只读存储器中),以便后续在循环移位操作时根据所述映射关系、待循环移位数据的位数以及移位值,直接确定各循环移位器分别对应的控制向量,从而避免在进行循环移位运算时,实时确定各循环移位器分别对应的控制向量所导致实时运算量较大和运算时间较长的问题;其中,在所述控制向量中,可以用1表示该循环移位开关的开关状态为第一状态,可以用0表示该循环移位开关的开关状态为第二状态。
具体的,针对任一所述循环移位器,可以将构成该循环移位器的各循环移位开关的开关状态分别按照预设的排列方式进行排列,得到该循环移位器对应的控制向量。
示例性的,以循环移位器A由4个循环移位开关组成,各循环移位开关的开关状态分别为1、1、0、0为例,则在按照预设的排列方式进行排列后可以得到所述循环移位器A对应的控制向量为(1、1、0、0)。
这里,需要说明的是,所述控制向量可以是预先确定的,在获取所述循环移位参数之后即可确定。
S104:基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
这里,可以先检测所述目标输出数据中是否包含填充数据,并在检测到所述目标输出数据中包含填充数据的情况下,将所述填充数据删除,然后在确定数据循环移位结果时,可以分为以下两种情况:
情况1、最小移位单元为预设值
这里,所述预设值可以为1,也即所述多层级循环移位网络进行移位操作时的位数为1,得到的删除所述填充数据后的目标输出数据即可作为所述数据循环移位结果。
情况2、最小移位单元不为预设值
在这种情况下,由于仅基于最小移位单元进行移位无法实现所述循环移位参数中的移位值(例如移位值为9,最小移位单元为4,则基于最小移位单元无论如何移动都无法达到移位值9),因此可以基于所述移位值和所述最小移位单元,对所述目标输出数据进行重排,得到所述数据循环移位结果。
具体的,可以根据所述移位值与所述最小移位单元的余数,对所述目标输出数据进行重排操作,所述重排操作中的移位方向与所述循环移位参数中的移位方向相同,所述重排操作的过程可以看成将最小移位单元设置为1,并以所述余数为移位数重新进行循环移位的过程,在此不再展开说明。
示例性的,对所述目标输出数据进行重排操作的示意图可以如图4所示,图4中,输入的待循环移位数据的个数为64,输入数据为a0~a63,移位值为9,移位方向为向左移位,由于多层级循环移位网络的输入端的数量为16,所述多层级循环移位网络的网络层数为4层,最小移位单元为4,则对应的所述目标移位值为2,根据所述目标移位值进行数据移位操作,得到的循环移位结果用A表示为A2、A3、A4、A5、A6、A7、A8、A9、A10、A11、A12、A13、A14、A15、A0、A1,用a表示则为a8、a9、a10、a11、a12、a13、a14、a15、a16、a17、a18、a19、a20、a21、a22、a23、a24、a25、a26、a27、a28、a29、a30、a31、a32、a33、a34、a35、a36、a37、a38、a39、a40、a41、a42、a43、a44、a45、a46、a47、a48、a49、a50、a51、a52、a53、a54、a55、a56、a57、a58、a59、a60、a61、a62、a63、a0、a1、a2、a3、a4、a5、a6、a7,在得到循环移位后的结果之后,可以根据移位值9与所述最小移位单元4的余数1进行Reorder操作(也即重排操作),所述重排操作也即根据所述余数1,对上述循环移位的结果再次进行循环移位,所述重排操作的移位方向与上述移位方向相同,均为向左移位,得到重排后的结果a9、a10、a11、a12、a13、a14、a15、a16、a17、a18、a19、a20、a21、a22、a23、a24、a25、a26、a27、a28、a29、a30、a31、a32、a33、a34、a35、a36、a37、a38、a39、a40、a41、a42、a43、a44、a45、a46、a47、a48、a49、a50、a51、a52、a53、a54、a55、a56、a57、a58、a59、a60、a61、a62、a63、a0、a1、a2、a3、a4、a5、a6、a7、a8。
一种可能的实施方式中,还可以根据所述移位延迟,为所述数据循环移位结果中的数据添加延迟,以调节所述数据循环移位结果中数据的时序。
这里,可以根据实际应用场景中的需求,在任一层循环移位网络输出后添加延迟,并将添加延迟后的数据输入至下一层循环移位网络中,比如可以给图2中第1层循环移位网络的输出b0添加延迟,并将延迟后的b0输入至第2层循环移位网络中继续进行循环移位操作,关于如何添加延迟以及延迟的作用参见上文相关内容,在此不再赘述。
需要说明的是,在添加延迟时,可以根据实际应用场景中的需求,在任一层循环移位网络输出后添加分支延迟,不同层循环移位网络输出后的分支延迟可以不同,只要使各层循环移位网络输出后添加的分支延迟之和,等于所述循环移位参数中的移位延迟即可。
示例性的,以所述移位延迟为3为例,可以在第1层循环移位网络、第2层循环移位网络、第3层循环移位网络输出后分别添加延迟值为1的分支延迟,从而满足多层级循环移位网络整体的移位延迟要求。
本公开实施例提供的数据循环移位方法,通过基于所述循环移位参数和待循环移位数据,确定目标输入数据,并在基于多层级循环移位网络得到目标输出结果之后,根据循环移位参数对目标输出数据进行处理,得到数据循环移位结果。这样,可以提高使用多层级循环移位网络进行数据循环移位操作时的适用性,使得多层级循环移位网络能够适应不同应用场景下的数据循环移位需求。
基于同一发明构思,本公开实施例中还提供了与数据循环移位方法对应的数据循环移位装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据循环移位方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参见图5所示,为本公开实施例提供的数据循环移位装置的架构示意图,所述数据循环移位装置包括:处理器51、存储器52和多层级循环移位网络53,所述多层级循环移位网络包含多个循环移位器;其中:
所述存储器52,用于存储预先确定的各循环移位参数与控制向量之间的映射关系;所述控制向量为基于各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
所述处理器51,用于在获取到待循环移位数据和循环移位参数后,基于所述循环移位参数和待循环移位数据,确定目标输入数据,并从所述存储器中提取与所述循环移位参数匹配的控制向量;将所述目标输入数据和提取的控制向量输入至所述多层级循环移位网络,基于所述多层级循环移位网络输出的目标输出数据和所述循环移位参数,确定数据循环移位结果;
所述多层级循环移位网络53,用于针对所述目标输入数据,基于各循环移位器进行循环移位操作。
一种可能的实施方式中,所述循环移位参数包括移位值,以及如下至少一种:移位方向、移位延迟、最小移位单元以及所述多层级循环移位网络的输入端数量,其中,所述最小移位单元表示多层级循环移位网络进行移位操作时的单位处理位数。
一种可能的实施方式中,所述处理器51,具体用于基于所述最小移位单元和所述多层循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据的总位数;在检测到所述目标循环移位数据的总位数与所述待循环移位数据的位数不同的情况下,基于所述待循环移位数据、最小移位单元以及所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
一种可能的实施方式中,所述处理器51,具体用于在检测到所述待循环移位数据的位数小于所述总位数的情况下,使用填充数据对所述待循环移位数据进行填充,以得到数据位数等于所述总位数的目标循环移位数据;基于所述目标循环数据和所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
一种可能的实施方式中,所述处理器51,具体用于将所述目标循环移位数据分别输入至对应的输入端;并将与所述循环移位参数对应的控制向量分别输入至对应的循环移位器;
所述多层级循环移位网络中的每个所述循环移位器,用于按照所述控制向量对目标循环移位数据进行循环移位处理,得到所述目标输出数据。
一种可能的实施方式中,所述处理器51,还用于在检测到所述目标输出数据中包含填充数据的情况下,将所述填充数据删除,得到删除填充数据的数据循环移位结果。
一种可能的实施方式中,所述处理器51,具体用于在检测到所述最小移位单元不为预设值的情况下,基于所述移位值和所述最小移位单元,对所述目标输出数据进行重排,得到所述数据循环移位结果。
一种可能的实施方式中,所述处理器51,还用于根据所述移位延迟,为所述数据循环移位结果中的数据添加延迟,以调节所述数据循环移位结果中数据的时序。
关于上述装置的具体实施过程,可以参照方法实施例的描述,在此将不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
对应于上述实施例中所述的数据循环移位方法,本公开还提供给一种数据循环移位装置,区别于图5所示的装置,对应于数据循环移位方法的数据循环移位装置为虚拟装置,参见图6所示,为本公开实施例提供的一种数据循环移位装置的架构示意图,包括:
获取单元601,用于获取待循环移位数据和循环移位参数;
第一确定单元602,用于基于所述循环移位参数和待循环移位数据,确定目标输入数据;
移位单元603,用于将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
第二确定单元604,用于基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图7所示,为本公开实施例提供的计算机设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换,当计算机设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701在执行以下指令:
获取待循环移位数据和循环移位参数;
基于所述循环移位参数和待循环移位数据,确定目标输入数据;
将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
本公开实施例还提供了一种芯片,所述芯片部署有如本公开任一实施例所述的数据循环移位装置。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据循环移位方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据循环移位方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种数据循环移位装置,其特征在于,包括:处理器、存储器和多层级循环移位网络,所述多层级循环移位网络包含多个循环移位器;其中:
所述存储器,用于存储预先确定的各循环移位参数与控制向量之间的映射关系;所述控制向量为基于各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数确定的;
所述处理器,用于在获取到待循环移位数据和循环移位参数后,基于所述循环移位参数和待循环移位数据,确定目标输入数据,并从所述存储器中提取与所述循环移位参数匹配的控制向量;将所述目标输入数据和提取的控制向量输入至所述多层级循环移位网络,基于所述多层级循环移位网络输出的目标输出数据和所述循环移位参数,确定数据循环移位结果;
所述多层级循环移位网络,用于针对所述目标输入数据,基于各循环移位器进行循环移位操作。
2.根据权利要求1所述的装置,其特征在于,所述循环移位参数包括移位值,以及如下至少一种:移位方向、移位延迟、最小移位单元以及所述多层级循环移位网络的输入端数量,其中,所述最小移位单元表示多层级循环移位网络进行移位操作时的单位处理位数。
3.根据权利要求2所述的装置,其特征在于,所述处理器,具体用于基于所述最小移位单元和所述多层循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据的总位数;在检测到所述目标循环移位数据的总位数与所述待循环移位数据的位数不同的情况下,基于所述待循环移位数据、最小移位单元以及所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
4.根据权利要求3所述的装置,其特征在于,所述处理器,具体用于在检测到所述待循环移位数据的位数小于所述总位数的情况下,使用填充数据对所述待循环移位数据进行填充,以得到数据位数等于所述总位数的目标循环移位数据;基于所述目标循环数据和所述多层级循环移位网络的输入端数量,确定输入至所述多层级循环移位网络各输入端的目标循环移位数据。
5.根据权利要求3所述的装置,其特征在于,所述处理器,具体用于将所述目标循环移位数据分别输入至对应的输入端;并将与所述循环移位参数对应的控制向量分别输入至对应的循环移位器;
所述多层级循环移位网络中的每个所述循环移位器,用于按照所述控制向量对目标循环移位数据进行循环移位处理,得到所述目标输出数据。
6.根据权利要求1所述的装置,其特征在于,所述处理器,还用于在检测到所述目标输出数据中包含填充数据的情况下,将所述填充数据删除,得到删除填充数据的数据循环移位结果。
7.根据权利要求2~4任一所述的装置,其特征在于,所述处理器,具体用于在检测到所述最小移位单元不为预设值的情况下,基于所述移位值和所述最小移位单元,对所述目标输出数据进行重排,得到所述数据循环移位结果。
8.根据权利要求2所述的装置,其特征在于,所述处理器,还用于根据所述移位延迟,为所述数据循环移位结果中的数据添加延迟,以调节所述数据循环移位结果中数据的时序。
9.根据权利要求2所述的装置,其特征在于,所述循环移位器由至少一个循环移位开关组成;
根据以下方法确定控制各循环移位器进行循环移位操作的控制向量:
针对各循环移位器中的任一所述循环移位开关,在检测到满足mod[mod(k-1,2n-1)-V,2n)]≥2n-1的情况下,将该循环移位开关的开关状态设置为第一状态;以及,
在检测到满足mod[mod(k-1,2n-1)-V,2n)]<2n-1的情况下,将该循环移位开关的开关状态设置为第二状态;
其中,V为所述移位值,n和k分别表示该循环移位开关在所述多层级循环移位网络中的目标层级,以及在所述目标层级中的目标位置,mod表示取余操作。
10.一种数据循环移位方法,其特征在于,包括:
获取待循环移位数据和循环移位参数;
基于所述循环移位参数和待循环移位数据,确定目标输入数据;
将所述目标输入数据和获取的对应控制向量输入至多层级循环移位网络,得到所述多层级循环移位网络输出的目标输出数据;其中,所述多层级循环移位网络包含多个循环移位器,控制各循环移位器进行循环移位操作的控制向量为基于所述各循环移位器分别在所述多层级循环移位网络的目标层级、在所述目标层级中的目标位置以及所述循环移位参数预先确定的;
基于所述目标输出数据和循环移位参数,确定数据循环移位结果。
11.一种芯片,其特征在于,所述芯片部署有如权利要求1~9任一所述的数据循环移位装置。
12.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求10所述的数据循环移位方法的步骤;或者,包括:如权利要求11所述的芯片。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求10所述的数据循环移位方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111673017.XA CN114265625A (zh) | 2021-12-31 | 2021-12-31 | 数据循环移位装置、方法、芯片、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111673017.XA CN114265625A (zh) | 2021-12-31 | 2021-12-31 | 数据循环移位装置、方法、芯片、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114265625A true CN114265625A (zh) | 2022-04-01 |
Family
ID=80832193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111673017.XA Pending CN114265625A (zh) | 2021-12-31 | 2021-12-31 | 数据循环移位装置、方法、芯片、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265625A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145639A (zh) * | 2022-09-01 | 2022-10-04 | 苏州浪潮智能科技有限公司 | 一种数据移位方法、系统、计算机设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205647537U (zh) * | 2016-01-22 | 2016-10-12 | 成都三零嘉微电子有限公司 | 一种高速多模式循环移位的电路 |
US20190156201A1 (en) * | 2016-04-27 | 2019-05-23 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Device and method for distributing convolutional data of a convolutional neural network |
US20200281009A1 (en) * | 2018-05-02 | 2020-09-03 | Lg Electronics Inc. | Method for transmitting/receiving data in wireless communication system, and device for supporting same |
-
2021
- 2021-12-31 CN CN202111673017.XA patent/CN114265625A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205647537U (zh) * | 2016-01-22 | 2016-10-12 | 成都三零嘉微电子有限公司 | 一种高速多模式循环移位的电路 |
US20190156201A1 (en) * | 2016-04-27 | 2019-05-23 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Device and method for distributing convolutional data of a convolutional neural network |
US20200281009A1 (en) * | 2018-05-02 | 2020-09-03 | Lg Electronics Inc. | Method for transmitting/receiving data in wireless communication system, and device for supporting same |
Non-Patent Citations (2)
Title |
---|
苑津莎等: "适用于准循环LDPC码译码器的新型循环移位置换结构设计", 《电子与信息学报》, vol. 31, no. 9, 15 September 2009 (2009-09-15), pages 2148 - 2151 * |
袁建国等: "光通信系统中QC-LDPC码的新颖构造方法", 《北京邮电大学学报》, vol. 36, no. 3, 15 June 2013 (2013-06-15), pages 20 - 24 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145639A (zh) * | 2022-09-01 | 2022-10-04 | 苏州浪潮智能科技有限公司 | 一种数据移位方法、系统、计算机设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010883B (zh) | 矩阵的处理方法、装置及逻辑电路 | |
Leroux et al. | Hardware implementation of successive-cancellation decoders for polar codes | |
Yoo et al. | Partially parallel encoder architecture for long polar codes | |
CN108959179B (zh) | 向量处理器的序列对齐方法 | |
CN111262592B (zh) | 序列的循环移位装置及方法、存储介质 | |
CN112507284B (zh) | 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置 | |
CN113868992A (zh) | 集成电路的时序约束方法、装置、电子设备及芯片 | |
KR20170008149A (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
CN114265625A (zh) | 数据循环移位装置、方法、芯片、计算机设备及存储介质 | |
CN110515584A (zh) | 浮点计算方法及系统 | |
CN117971163B (zh) | 基于蝶形单元的计算架构、计算方法以及装置 | |
JP6511284B2 (ja) | 最小値選択回路、復号器及び最小値選択方法 | |
Alioto et al. | A simple strategy for optimized design of one-level carry-skip adders | |
JP4310500B2 (ja) | 重要成分優先計算方式ならびに装置 | |
CN114296682A (zh) | 浮点数处理装置、方法、电子设备、存储介质及芯片 | |
CN113032723A (zh) | 一种矩阵乘法器的实现方法及矩阵乘法器装置 | |
US20090037508A1 (en) | Method for implementing montgomery modular multiplication and device therefore | |
CN117134917A (zh) | 一种用于椭圆曲线加密的快速模运算方法和装置 | |
CN111313912A (zh) | 一种ldpc码编码器及编码方法 | |
CN113254072B (zh) | 数据处理器、数据处理方法、芯片、计算机设备及介质 | |
KR100913467B1 (ko) | 병렬 순환 중복 검사 코드 발생 시스템 및 방법 | |
JP2024530974A (ja) | 多入力の浮動小数点数の処理方法、装置、プロセッサ、コンピュータ機器及びコンピュータプログラム | |
CN114428641A (zh) | 数据处理方法和电子设备 | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
CN111124358B (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 |