多维数组滑动生成数据的方法、装置及处理器的制造方法

文档序号:10488721阅读:152来源:国知局
多维数组滑动生成数据的方法、装置及处理器的制造方法
【专利摘要】本发明实施例提供一种多维数组滑动生成数据的方法、装置及处理器。本发明多维数组滑动生成数据的方法,包括:通过执行多维数组滑动操作指令获取长度相同的第一元素和第二元素;根据相同的预设规则分别将第一元素和第二元素组成N维第一数组和N维第二数组;在第一维度的方向上将第一数组和第二数组进行拼接;从第一维度的原点开始将N维滑动窗口在拼接后的N维数组上沿第一维度滑动移动量个字节;获取滑动后的N维滑动窗口中的所有数组元素组成目标元素。本发明实施例实现高效、便捷地从两个源元素中提取出满足需求数据模式的目标元素,提高处理器的效率,使处理器在相关的科学计算领域或者数字信号处理领域中处理具体的问题时更有效率。
【专利说明】
多维数组滑动生成数据的方法、装置及处理器
技术领域
[0001] 本发明实施例涉及计算机技术,尤其涉及一种多维数组滑动生成数据的方法、装 置及处理器。
【背景技术】
[0002] 现如今需要实现数据的高效运算的应用越来越多,所以需要更有效的单指令流多 数据流(Single Instruction stream Multiple Data streams,简称:SIMD)处理器,执行 更有效的SMD指令,因此如何根据具体的应用产生相应的SMD指令所需要的数据格式,成 为了有效实现SHffi处理的很关键的一个环节。
[0003] 但是,现有的通过非对称访存、滑动操作等方式形成数据格式,需要多个访存操作 或滑动操作,这样会导致很长的处理时间的问题,降低处理器的效率。

【发明内容】

[0004] 本发明实施例提供一种多维数组滑动生成数据的方法、装置及处理器,以提高处 理器的效率,使处理器在相关的科学计算领域或者数字信号处理领域中处理具体的问题时 更有效率。
[0005] 本发明实施例提供一种多维数组滑动生成数据的方法,包括:
[0006] 通过执行多维数组滑动操作指令获取长度相同的第一元素和第二元素;
[0007] 根据相同的预设规则分别将所述第一元素和所述第二元素组成N维第一数组和N 维第二数组,N为自然数;
[0008] 在第一维度的方向上将所述第一数组和所述第二数组进行拼接,所述第一维度为 所述N维中的一个维度;
[0009] 从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上沿所述第一维 度滑动移动量个字节,所述N维滑动窗口与所述第一数组或所述第二数组在N个维度的长度 分别相同;
[0010] 获取滑动后的所述N维滑动窗口中的所有数组元素组成目标元素。
[0011] 进一步的,所述多维数组滑动操作指令包括:第一字段、第二字段、第三字段和第 四字段;
[0012] 所述第一字段作为指令操作码,用来指示该条指令的控制信息,所述控制信息中 包括第一元素的长度、第二元素的长度、多维数组的维度、每个维度的长度、将元素映射为 多维数组的规则、以及用于两个多维数组拼接的所述第一维度的方向;
[0013] 所述第二字段用来表示所述多维数组滑动操作指令的源操作数或者源寄存器;
[0014] 所述第三字段用来表示所述多维数组滑动操作指令的目的操作数或者目的寄存 器;
[0015] 所述第四字段用来表示所述移动量大小。
[0016] 进一步的,所述根据所述预设规则分别将所述第一元素和所述第二元素组成N维 第一数组和N维第二数组,包括:
[0017] 根据所述每个维度的长度采用所述预设规则将所述第一元素的L个字节分别放置 在所述N维数组的对应元素位置上组成所述第一数组,其中,L = Nl XN2 X……XNn,L为大 于1的自然数,NI、N2、……、Nn分别为所述N维数组的N个维度的长度;
[0018] 根据所述每个维度的长度采用所述预设规则将所述第二元素的L个字节分别放置 在所述N维数组的对应元素位置上组成所述第二数组。
[0019] 进一步的,所述根据所述每个维度的长度采用所述预设规则将所述第一元素的L 个字节分别放置在所述N维数组的对应元素位置上组成所述第一数组,包括:
[0020] 根据以下公式确定所述第一元素的L个字节与所述N维数组的元素位置的对应关 系:
[0021]
[0022] 其中,Mj为N维数组的第j维的长度,I < j SN; il,i2,…,iN表示N维数组中的某一 元素的位置,I < ij 表示元素位于N维数组的第1维的il位置,i2表示元素位于N维数 组的第2维的i 2位置,i3表示元素位于N维数组的第3维的i 3位置,…,iN表示元素位于N维数 组的第N维的iN位置;
[0023] 根据所述对应关系将所述第一元素的L个字节分别放置在所述N维数组的对应元 素位置上组成所述第一数组。
[0024] 进一步的,所述从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上 沿所述第一维度滑动所述移动量个字节之前,还包括:
[0025] 获取所述移动量,所述移动量小于所述第一维度的长度。
[0026] 进一步的,所述获取所述移动量,包括:
[0027] 根据存储器中的指示数据获取所述移动量;和/或者,
[0028]获取预设的所述移动量。
[0029] 本发明实施例提供一种多维数组滑动生成数据的装置,包括:
[0030] 元素获取模块,用于通过执行多维数组滑动操作指令获取长度相同的第一元素和 第二元素;
[0031] 组成模块,用于根据相同的预设规则分别将所述第一元素和所述第二元素组成N 维第一数组和N维第二数组,N为自然数;
[0032] 拼接模块,用于在第一维度的方向上将所述第一数组和所述第二数组进行拼接, 所述第一维度为所述N维中的一个维度;
[0033] 滑动模块,用于从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上 沿所述第一维度滑动移动量个字节,所述N维滑动窗口与所述第一数组或所述第二数组在N 个维度的长度分别相同;
[0034] 数据生成模块,用于获取滑动后的所述N维滑动窗口中的所有数组元素组成目标 元素。
[0035]进一步的,所述多维数组滑动操作指令包括:第一字段、第二字段、第三字段和第 四字段;
[0036]所述第一字段作为指令操作码,用来指示该条指令的控制信息,所述控制信息中 包括第一元素的长度、第二元素的长度、多维数组的维度、每个维度的长度、将元素映射为 多维数组的规则、以及用于两个多维数组拼接的所述第一维度的方向;
[0037] 所述第二字段用来表示所述多维数组滑动操作指令的源操作数或者源寄存器;
[0038] 所述第三字段用来表示所述多维数组滑动操作指令的目的操作数或者目的寄存 器;
[0039] 所述第四字段用来表示所述移动量大小。
[0040] 进一步的,所述组成模块,具体用于根据所述每个维度的长度采用所述预设规则 将所述第一元素的L个字节分别放置在所述N维数组的对应元素位置上组成所述第一数组, 其中,L = Nl XN2 X……XNn,L为大于1的自然数,NI、N2、……、Nn分别为所述N维数组的N个 维度的长度;根据所述每个维度的长度采用所述预设规则将所述第二元素的L个字节分别 放置在所述N维数组的对应元素位置上组成所述第二数组。
[0041] 进一步的,所述组成模块,具体用于根据以下公式确定所述第一元素的L个字节与 所述N维数组的元素位置的对应关系:
[0042]
[0043] 其中,Mj为N维数组的第j维的长度,I < j SN; il,i2,…,iN表示N维数组中的某一 元素的位置,I < ij 表示元素位于N维数组的第1维的il位置,i2表示元素位于N维数 组的第2维的i 2位置,i3表示元素位于N维数组的第3维的i 3位置,…,iN表示元素位于N维数 组的第N维的iN位置;根据所述对应关系将所述第一元素的L个字节分别放置在所述N维数 组的对应元素位置上组成所述第一数组。
[0044] 进一步的,还包括:
[0045] 移动量获取模块,用于获取所述移动量,所述移动量小于所述第一维度的长度。
[0046] 进一步的,所述移动量获取模块,具体用于根据存储器中的指示数据获取所述移 动量;和/或者,获取预设的所述移动量。
[0047]本发明实施例提供一种处理器,所述处理器用于执行多维数组滑动操作指令,以 执行上述多维数组滑动生成数据的方法。
[0048]本发明实施例多维数组滑动生成数据的方法、装置及处理器,通过多维数组滑动 操作生成目的数据,实现高效、便捷地从两个源元素中提取出满足需求数据模式的目标元 素,将需要多个访存操作、滑动操作、与或操作等一系列长的指令流操作才能实现的功能使 用一个多维数组滑动操作就可以实现,提高处理器的效率,使处理器在相关的科学计算领 域或者数字信号处理领域中处理具体的问题时更有效率。
【附图说明】
[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
[0050] 图1为本发明多维数组滑动生成数据的方法的一个实施例的流程图;
[0051 ]图2为原始元素的字节部署示意图;
[0052]图3a为4X2 X 2的三维数组的示意图;
[0053]图3b为4 X 2 X 2的三维数组的下层元素分布示意图;
[0054]图3c为4 X 2 X 2的三维数组的上层元素分布示意图;
[0055]图4a为本发明滑动初始状态不意图;
[0056]图4b为滑动结束状态示意图;
[0057]图5为目标元素的字节部署示意图;
[0058]图6为本发明多维数组滑动生成数据的装置的一个实施例的结构示意图;
[0059] 图7为本发明多维数组滑动生成数据的装置的另一个实施例的结构示意图;
[0060] 图8为本发明处理器的一个实施例的结构示意图。
【具体实施方式】
[0061] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062] 图1为本发明多维数组滑动生成数据的方法的一个实施例的流程图,如图1所示, 本实施例的方法可以包括:
[0063] 步骤101、通过执行多维数组滑动操作指令获取长度相同的第一元素和第二元素; [0064]处理器在实现本发明多维数组滑动生成数据的方法时,先从源操作数或源寄存器 获取两个元素,该源寄存器可以是两个,第一元素和第二元素分别来自这两个源寄存器。处 理器获取的这两个元素长度相同,例如均为L个字节,这样第一元素和第二元素均相当于是 I X L的一维向量。
[0065]上述多维数组滑动操作指令包括:第一字段、第二字段、第三字段和第四字段;所 述第一字段作为指令操作码,用来指示该条指令的控制信息,所述控制信息中包括第一元 素的长度和第二元素的长度,例如上述L个字节;多维数组的维度,例如N维数组;每个维度 的长度;将元素映射为多维数组的规则,例如将L个字节映射为N维数组的规则;以及用于两 个多维数组拼接的的方向,例如N维数组的一个维度的方向;所述第二字段用来表示所述多 维数组滑动操作指令的源操作数或者源寄存器,即第一元素和第二元素的存储位置;所述 第三字段用来表示所述多维数组滑动操作指令的目的操作数或者目的寄存器,即目标元素 的存储位置;所述第四字段用来表示所述移动量大小。
[0066] 步骤102、根据相同的预设规则分别将所述第一元素和所述第二元素组成N维第一 数组和N维第二数组,N为自然数;
[0067] 分别将第一元素和第二元素以字节为单位根据相同的预设规则组成两个N维数 组,这里组成的数组具体是几维、每个维度的长度均可以从上述多维数组滑动操作指令中 获取到,例如,多维数组滑动操作指令的第一个字段中的控制信息指示多维数组的维度为 3,各维度的长度分别是4、2、2,即多维数组为三维数组4X2X2。根据预设规则将第一元素 中的L个字节分别放置在N维数组的对应元素位置上组成第一数组,将第二元素中的L个字 节分别放置在N维数组的对应元素位置上组成第二数组。
[0068] 步骤103、在第一维度的方向上将所述第一数组和所述第二数组进行拼接,所述第 一维度为所述N维中的一个维度;
[0069] 将第一数组和第二数组在第一维度的方向上进行拼接,得到一个在该第一维度上 长度扩展了一倍的N维数组。这里第一维度可以是N维中的任一维度,对此不做具体限定。例 如,多维数组滑动操作指令中的第一个字段中的控制信息指示两个多维数组拼接的的方向 是长度为4的这个维度方向,那么将第二数组长度为4的维度沿着该维度方向拼接在第一数 组的任一侧均可,这样在该维度方向上拼接成的数组的长度变成8。
[0070] 步骤104、从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上沿所 述第一维度滑动移动量个字节,所述N维滑动窗口与所述第一数组或所述第二数组在N个维 度的长度分别相同;
[0071] 沿着第一维度,可以将第一维度的原点作为起点,沿着该第一维度滑动N维滑动窗 口,该N维滑动窗口同样具备N个维度,其各维度的长度与第一数组和第二数组的相同,因此 N维滑动窗口中包括的所有数组元素的个数与第一元素和第二元素的字节数一致,例如三 维滑动窗口 4 X 2 X 2A维滑动窗口滑动的距离可以由多维数组滑动操作指令的第四个字段 指示,其可以是预设值,也可以由处理器从存储器中读取到的指示数据中获取,例如该指示 数据的后两位、该指示数据相对于第一维度的长度取模等,也可以是预先设置的一个固定 值。需要说明的是,本发明中移动量小于上述第一维度的长度。
[0072] 步骤105、获取滑动后的所述N维滑动窗口中的所有数组元素组成目标元素。
[0073] 滑动后的N维滑动窗口包含了第一数组和第二数组的各自一部分的数组元素,将 滑动后的N维滑动窗口中的所有数组元素按照与组成数组的预设规则反向组成目标元素, 该目标元素即为IXL的一维向量。
[0074] 本实施例,通过多维数组滑动操作生成目的数据,实现高效、便捷地从两个源元素 中提取出满足需求数据模式的目标元素,将需要多个访存操作、滑动操作、与或操作等一系 列长的指令流操作才能实现的功能使用一个多维数组滑动操作就可以实现,提高处理器的 效率,使处理器在相关的科学计算领域或者数字信号处理领域中处理具体的问题时更有效 率。
[0075] 下面采用一个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。 [0076]处理器分别从两个源寄存器中读取第一元素和第二元素,其长度L为16个字节,图 2为原始元素的字节部署示意图,如图2所示,从左至右第一元素和第二元素中的字节编号 从[15]到[0]依次排列。
[0077] 本实施例中,多维数组滑动操作指令指示了多维数组的维度为3和各维度的长度 分别为4、2、2,即三维数组4 X 2 X 2,这样就需要分别将16个字节的第一元素和第二元素根 据预设规则组成两个4 X 2 X 2的数组,16 = 4 X 2 X 2。
[0078] 预设规则规定了 16个字节具体如何在4 X 2 X 2的数组的各元素位置上放置,根据 下述公式:
[0079]
其中,Mj为N维数组的第j维的长度,I < j < N; il, ?2,···,?Ν表示N维数组中的某一元素的位置,I < ij <Mj,il表示元素位于N维数组的第1维 的il位置,i2表示元素位于N维数组的第2维的i2位置,i3表示元素位于N维数组的第3维的 i 3位置,…,iN表示元素位于N维数组的第N维的iN位置。
[0080] 可以将N维数组表示为Array [ I:Ml ][ I:M2 ]…[I:丽],数组中的每个元素对应一个 序号,而该序号[Number]对应于一维向量第一元素或第二元素的各字节编号,基于此对应 关系再加上具体环境中的大小尾端和处理数据的粒度大小,如字节、半字、字、双字等,就建 立起了 N维数组中的元素与一维向量的各字节之间的对应关系。根据这样的预设规则就可 以分别将第一元素和第二元素组成N维第一数组和N维第二数组。图3a为4 X 2 X 2的三维数 组的示意图,图3b为4 X 2 X 2的三维数组的下层元素分布示意图,图3c为4 X 2 X 2的三维数 组的上层元素分布示意图,如图3a所示,4X2X2的三维数组中的所有元素分别对应于第一 元素或第二元素的16个字节中的一个字节,该数组在Z轴上包括上下两层,下层的元素对应 于图3b,其包含了 [0]到[7]字节,上层的元素对应于图3c,其包含了 [8]到[15]字节。需要说 明的是,根据上述示例可以得到图3a到图3c所示的字节分布结果,本发明还可以采用其他 的预设规则得到数组的元素位置与一维向量的各字节之间的映射关系,例如z轴方向的上 下层可以分别分为单双号两排字节编号,对于该映射关系本发明不做具体限定。
[0081] 在第一维度(即X轴方向)上将第二数组放置在第一数组的右边,从而将这两个数 组进行拼接,形成一个8 X 2 X 2的三维数组,图4a为本发明滑动初始状态示意图,图4b为滑 动结束状态示意图,如图4a所示,从X轴的原点开始,将一个4 X 2 X 2的三维滑动窗口在拼接 后的8 X 2 X 2的三维数组上沿X轴向左滑动移动量个字节,本实施例中移动量为2,滑动后4 X 2 X 2的三维滑动窗口所处的位置如图4b所示,此时4 X 2 X 2的三维滑动窗口中包括的数 组元素对应的字节编号包含了第一元素的部分字节编号和第二元素的部分字节编号,此时 按照上述映射关系再将4 X 2 X 2的三维滑动窗口中的各数组元素反向组成16个字节的一维 向量,即目标元素,图5为目标元素的字节部署示意图。
[0082] 图6为本发明多维数组滑动生成数据的装置的一个实施例的结构示意图,如图6所 示,本实施例的装置可以包括:元素获取模块11、组成模块12、拼接模块13、滑动模块14以及 数据生成模块15,其中,元素获取模块11,用于通过执行多维数组滑动操作指令获取长度相 同的第一元素和第二元素;组成模块12,用于根据相同的预设规则分别将所述第一元素和 所述第二元素组成N维第一数组和N维第二数组,N为自然数;拼接模块13,用于在第一维度 的方向上将所述第一数组和所述第二数组进行拼接,所述第一维度为所述N维中的一个维 度;滑动模块14,用于从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上沿 所述第一维度滑动移动量个字节,所述N维滑动窗口与所述第一数组或所述第二数组在N个 维度的长度分别相同;数据生成模块15,用于获取滑动后的所述N维滑动窗口中的所有数组 元素组成目标元素。
[0083] 本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技 术效果类似,此处不再赘述。
[0084]进一步的,所述多维数组滑动操作指令包括:第一字段、第二字段、第三字段和第 四字段;所述第一字段作为指令操作码,用来指示该条指令的控制信息,所述控制信息中包 括第一元素的长度、第二元素的长度、多维数组的维度、每个维度的长度、将元素映射为多 维数组的规则、以及用于两个多维数组拼接的所述第一维度的方向;所述第二字段用来表 示所述多维数组滑动操作指令的源操作数或者源寄存器;所述第三字段用来表示所述多维 数组滑动操作指令的目的操作数或者目的寄存器;所述第四字段用来表示所述移动量大 小。
[0085] 进一步的,所述组成模块12,具体用于根据所述每个维度的长度采用所述预设规 则将所述第一元素的L个字节分别放置在所述N维数组的对应元素位置上组成所述第一数 组,其中,L = NI X N2 X……X Nn,L为大于1的自然数,NI、N2、……、Nn分别为所述N维数组的 N个维度的长度,其中,n〈 = N;根据所述每个维度的长度采用所述预设规则将所述第二元素 的L个字节分别放置在所述N维数组的对应元素位置上组成所述第二数组。
[0086] 进一步的,所述组成模块12,具体用于根据以下公式确定所述第一元素的L个字节 与所述N维数组的元素位置的对应关系:
[0087]
[0088]其中,Mj为N维数组的第j维的长度,I < j SN; i I,i2,…,iN表示N维数组中的某一 元素的位置,I < ij 表示元素位于N维数组的第1维的il位置,i2表示元素位于N维数 组的第2维的i 2位置,i3表示元素位于N维数组的第3维的i 3位置,…,iN表示元素位于N维数 组的第N维的iN位置;根据所述对应关系将所述第一元素的L个字节分别放置在所述N维数 组的对应元素位置上组成所述第一数组。
[0089] 图7为本发明多维数组滑动生成数据的装置的另一个实施例的结构示意图,如图7 所示,本实施例的装置在图6所示结构基础上,还包括:移动量获取模块16,用于获取所述移 动量,所述移动量小于所述第一维度的长度。
[0090] 本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技 术效果类似,此处不再赘述。
[0091] 进一步的,所述移动量获取模块16,具体用于根据存储器中的指示数据获取所述 移动量;和/或者,获取预设的所述移动量。
[0092]图8为本发明处理器的一个实施例的结构示意图,如图8所示,本实施例的处理器 20用于执行多维数组滑动操作指令,可以执行图1~图5所示方法实施例的技术方案,其实 现原理和技术效果类似,此处不再赘述。
[0093]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程 序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R〇M、RAM、磁碟或 者光盘等各种可以存储程序代码的介质。
[0094]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依 然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进 行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术 方案的范围。
【主权项】
1. 一种多维数组滑动生成数据的方法,其特征在于,包括: 通过执行多维数组滑动操作指令获取长度相同的第一元素和第二元素; 根据相同的预设规则分别将所述第一元素和所述第二元素组成N维第一数组和N维第 二数组,N为自然数; 在第一维度的方向上将所述第一数组和所述第二数组进行拼接,所述第一维度为所述 腺隹中的一个维度; 从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上沿所述第一维度滑 动移动量个字节,所述N维滑动窗口与所述第一数组或所述第二数组在N个维度的长度分别 相同; 获取滑动后的所述N维滑动窗口中的所有数组元素组成目标元素。2. 根据权利要求1所述的方法,其特征在于,所述多维数组滑动操作指令包括:第一字 段、第二字段、第Ξ字段和第四字段; 所述第一字段作为指令操作码,用来指示该条指令的控制信息,所述控制信息中包括 第一元素的长度、第二元素的长度、多维数组的维度、每个维度的长度、将元素映射为多维 数组的规则、W及用于两个多维数组拼接的所述第一维度的方向; 所述第二字段用来表示所述多维数组滑动操作指令的源操作数或者源寄存器; 所述第Ξ字段用来表示所述多维数组滑动操作指令的目的操作数或者目的寄存器; 所述第四字段用来表示所述移动量大小。3. 根据权利要求1或2所述的方法,其特征在于,所述根据所述预设规则分别将所述第 一元素和所述第二元素组成腺隹第一数组和腺隹第二数组,包括: 根据所述每个维度的长度采用所述预设规则将所述第一元素的L个字节分别放置在所 述N维数组的对应元素位置上组成所述第一数组,其中,L = N1XN2X……XNn,L为大于1的 自然数,N1、N2、……、化分别为所述腺隹数组的N个维度的长度; 根据所述每个维度的长度采用所述预设规则将所述第二元素的L个字节分别放置在所 述腺隹数组的对应元素位置上组成所述第二数组。4. 根据权利要求3所述的方法,其特征在于,所述根据所述每个维度的长度采用所述预 设规则将所述第一元素的L个字节分别放置在所述N维数组的对应元素位置上组成所述第 一数组,包括: 根据W下公式确定所述第一元素的L个字节与所述N维数组的元素位置的对应关系:其中,Mj为N维数组的第j维的长度,1含j含N; il,i2,…,iN表示N维数组中的某一元素 的位置,1含ij含Mj,il表示元素位于N维数组的第1维的il位置,i2表示元素位于N维数组的 第2维的i2位置,i3表示元素位于N维数组的第3维的i3位置,…,iN表示元素位于N维数组的 第腺隹的iN位置; 根据所述对应关系将所述第一元素的L个字节分别放置在所述N维数组的对应元素位 置上组成所述第一数组。5. 根据权利要求1所述的方法,其特征在于,所述从所述第一维度的原点开始将N维滑 动窗口在拼接后的腺隹数组上沿所述第一维度滑动所述移动量个字节之前,还包括: 获取所述移动量,所述移动量小于所述第一维度的长度。6. 根据权利要求5所述的方法,其特征在于,所述获取所述移动量,包括: 根据存储器中的指示数据获取所述移动量;和/或者, 获取预设的所述移动量。7. -种多维数组滑动生成数据的装置,其特征在于,包括: 元素获取模块,用于通过执行多维数组滑动操作指令获取长度相同的第一元素和第二 兀素; 组成模块,用于根据相同的预设规则分别将所述第一元素和所述第二元素组成N维第 一数组和腺隹第二数组,N为自然数; 拼接模块,用于在第一维度的方向上将所述第一数组和所述第二数组进行拼接,所述 第一维度为所述腺隹中的一个维度; 滑动模块,用于从所述第一维度的原点开始将N维滑动窗口在拼接后的N维数组上沿所 述第一维度滑动移动量个字节,所述N维滑动窗口与所述第一数组或所述第二数组在N个维 度的长度分别相同; 数据生成模块,用于获取滑动后的所述N维滑动窗口中的所有数组元素组成目标元素。8. 根据权利要求7所述的装置,其特征在于,所述多维数组滑动操作指令包括:第一字 段、第二字段、第Ξ字段和第四字段; 所述第一字段作为指令操作码,用来指示该条指令的控制信息,所述控制信息中包括 第一元素的长度、第二元素的长度、多维数组的维度、每个维度的长度、将元素映射为多维 数组的规则、W及用于两个多维数组拼接的所述第一维度的方向; 所述第二字段用来表示所述多维数组滑动操作指令的源操作数或者源寄存器; 所述第Ξ字段用来表示所述多维数组滑动操作指令的目的操作数或者目的寄存器; 所述第四字段用来表示所述移动量大小。9. 根据权利要求7或8所述的装置,其特征在于,所述组成模块,具体用于根据所述每个 维度的长度采用所述预设规则将所述第一元素的L个字节分别放置在所述N维数组的对应 元素位置上组成所述第一数组,其中,L = N1XN2X……XNn,L为大于1的自然数,N1、 N2、……、Nn分别为所述N维数组的N个维度的长度;根据所述每个维度的长度采用所述预设 规则将所述第二元素的L个字节分别放置在所述N维数组的对应元素位置上组成所述第二 数组。10. 根据权利要求9所述的装置,其特征在于,所述组成模块,具体用于根据W下公式确 定所述第一元素的L个字节与所述腺隹数组的元素位置的对应关系:其中,Μ j为N维数组的第j维的长度,1含j含N; i 1,i2,…,iN表示N维数组中的某一元素 的位置,1含i j含Mj,il表示元素位于N维数组的第1维的η位置,i2表示元素位于N维数组的 第2维的i2位置,i3表示元素位于N维数组的第3维的i3位置,…,iN表示元素位于N维数组的 第N维的iN位置;根据所述对应关系将所述第一元素的L个字节分别放置在所述N维数组的 对应元素位置上组成所述第一数组。11. 根据权利要求7所述的装置,其特征在于,还包括: 移动量获取模块,用于获取所述移动量,所述移动量小于所述第一维度的长度。12. 根据权利要求11所述的装置,其特征在于,所述移动量获取模块,具体用于根据存 储器中的指示数据获取所述移动量;和/或者,获取预设的所述移动量。13. -种处理器,其特征在于,所述处理器用于执行多维数组滑动操作指令,W执行权 利要求1~6中任一项所述的方法。
【文档编号】G06F9/38GK105843591SQ201610217578
【公开日】2016年8月10日
【申请日】2016年4月8日
【发明人】汪文祥, 杨灿
【申请人】龙芯中科技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1