中文字幕无码日韩视频无码三区

多維數組滑動生成數據的方法、裝置及處理器的制造方法

文檔序號:10488721閱讀:173來源:國知局
多維數組滑動生成數據的方法、裝置及處理器的制造方法
【專利摘要】本發明實施例提供一種多維數組滑動生成數據的方法、裝置及處理器。本發明多維數組滑動生成數據的方法,包括:通過執行多維數組滑動操作指令獲取長度相同的第一元素和第二元素;根據相同的預設規則分別將第一元素和第二元素組成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