JP5988222B2 - シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 - Google Patents
シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 Download PDFInfo
- Publication number
- JP5988222B2 JP5988222B2 JP2013511424A JP2013511424A JP5988222B2 JP 5988222 B2 JP5988222 B2 JP 5988222B2 JP 2013511424 A JP2013511424 A JP 2013511424A JP 2013511424 A JP2013511424 A JP 2013511424A JP 5988222 B2 JP5988222 B2 JP 5988222B2
- Authority
- JP
- Japan
- Prior art keywords
- index
- shuffle pattern
- bit
- shuffle
- signal
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 15
- 230000010076 replication Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000013589 supplement Substances 0.000 description 2
- 230000008602 contraction Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000047 product Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/766—Generation of all possible permutations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Mobile Radio Communication Systems (AREA)
Description
上述したPSHUFB命令は、それぞれビット幅が8ビットの8個のデータ要素に対するシャッフル命令であるところ、入力パックデータのデータ要素の各ビット幅や個数がPSHUFB命令の仕様と異なる場合には、上記PSHUFB命令をそのまま実行しにくいことがある。
実施の形態2は、より簡易な手法でシャッフルパターンを生成する。
図9は、4×8シャッフルパターン702から8×8シャッフルパターン703を生成する流れを示す。
図10は、2×16シャッフルパターン702から4×16シャッフルパターン703を生成する流れを示す。
図9の例では、4個のインデックスから8個のインデックスを持つシャッフルパターンの生成を示したが、例えば2個の有効インデックスから8個のインデックスを持つシャッフルパターンの生成することもできる。この例をビット単位信号2の場合として説明する。
実施の形態3は、実施の形態2のシャッフルパターン生成回路に対して、ビット幅の縮小または拡張を行うビット変更器をさらに備えることで、ビット幅の縮小や拡張にも対応したシャッフルパターンの生成を図るものである。
ビット単位信号1504が0の場合の動作を説明する。
ビット単位信号1504が1の場合の動作を説明する。
図16、図17のような例に限らず、2×32シャッフルパターンから8×8シャッフルパターンの生成も可能である。この例をビット単位信号2の場合として説明する。
図19は、実施の形態4におけるシャッフルパターン生成回路の図である。
ビット単位信号1904が0の場合の動作を説明する。
2×8インデックステーブル1905は、
「0」の入力インデックスから「1、0」、
「1」の入力インデックスから「3、2」、
「2」の入力インデックスから「5、4」、
「3」の入力インデックスから「7、6」、
の出力インデックスを出力する。
続いて、ビット単位信号1904が1の場合の動作を説明する。入力シャッフルパターン1902は2個の16ビットのインデックスからなり、出力シャッフルパターン1903は8個の8ビットのインデックスからなる。インテックステーブル参照器1907は、シャッフルパターン1902の各インデックスを4×8インデックステーブル1906に渡す。
4×8インデックステーブル1906は、
「0」の入力インデックスから「3、2、1、0」、
「1」の入力インデックスから「7、6、5、4」、
の出力インデックスを出力する。
図22は、実施の形態5のシャッフルパターン生成回路を含むプロセッサの図である。
本実施の形態では、実施の形態5の図23などで説明したシャッフルパターン生成に係る命令についてさらに詳しく説明する。
(別名:gensflptnl.8、gensflptnl)
この命令は、Raの8x8シャッフルパターンから16x8シャッフルパターンを生成し、RbおよびRb+1に格納する。
Rb[63:56] = ( Ra[63:56] << 1 ) + 1 ;
Rb[55:48] = ( Ra[63:56] << 1 ) + 0 ;
Rb[47:40] = ( Ra[55:48] << 1 ) + 1 ;
Rb[39:32] = ( Ra[55:48] << 1 ) + 0 ;
Rb[31:24] = ( Ra[47:40] << 1 ) + 1 ;
Rb[23:16] = ( Ra[47:40] << 1 ) + 0 ;
Rb[15: 8] = ( Ra[39:32] << 1 ) + 1 ;
Rb[ 7: 0] = ( Ra[39:32] << 1 ) + 0 ;
Rb+1[63:56] = ( Ra[31:24] << 1 ) + 1 ;
Rb+1[55:48] = ( Ra[31:24] << 1 ) + 0 ;
Rb+1[47:40] = ( Ra[23:16] << 1 ) + 1 ;
Rb+1[39:32] = ( Ra[23:16] << 1 ) + 0 ;
Rb+1[31:24] = ( Ra[15: 8] << 1 ) + 1 ;
Rb+1[23:16] = ( Ra[15: 8] << 1 ) + 0 ;
Rb+1[15: 8] = ( Ra[ 7: 0] << 1 ) + 1 ;
Rb+1[ 7: 0] = ( Ra[ 7: 0] << 1 ) + 0 ;
---------------------------------------------
(命令2)gensflptnl.16.16 Rb:Rb+1,Ra
(別名:gensflptnl.16)
この命令は、Raの4x16シャッフルパターンから8x16シャッフルパターンを生成し、RbおよびRb+1に格納する。
Rb[63:48] = ( Ra[63:48] << 1 ) + 1 ;
Rb[47:32] = ( Ra[63:48] << 1 ) + 0 ;
Rb[31:16] = ( Ra[47:32] << 1 ) + 1 ;
Rb[15: 0] = ( Ra[47:32] << 1 ) + 0 ;
Rb+1[63:48] = ( Ra[31:16] << 1 ) + 1 ;
Rb+1[47:32] = ( Ra[31:16] << 1 ) + 0 ;
Rb+1[31:16] = ( Ra[15: 0] << 1 ) + 1 ;
Rb+1[15: 0] = ( Ra[15: 0] << 1 ) + 0 ;
---------------------------------------------
(命令3)gensflptnl.16.8 Rb:Rb+1,Ra
(別名:gensflptn.16,gensflptn)
この命令は、Raの4x16シャッフルパターンから16x8シャッフルパターンを生成し、RbおよびRb+1に格納する。
Rb[63:56] = ( Ra[63:48] << 1 ) + 3 ;
Rb[55:48] = ( Ra[63:48] << 1 ) + 2 ;
Rb[47:40] = ( Ra[63:48] << 1 ) + 1 ;
Rb[39:32] = ( Ra[63:48] << 1 ) + 0 ;
Rb[31:24] = ( Ra[47:32] << 1 ) + 3 ;
Rb[23:16] = ( Ra[47:32] << 1 ) + 2 ;
Rb[15: 8] = ( Ra[47:32] << 1 ) + 1 ;
Rb[ 7: 0] = ( Ra[47:32] << 1 ) + 0 ;
Rb+1[63:56] = ( Ra[31:16] << 1 ) + 3 ;
Rb+1[55:48] = ( Ra[31:16] << 1 ) + 2 ;
Rb+1[47:40] = ( Ra[31:16] << 1 ) + 1 ;
Rb+1[39:32] = ( Ra[31:16] << 1 ) + 0 ;
Rb+1[31:24] = ( Ra[15: 0] << 1 ) + 3 ;
Rb+1[23:16] = ( Ra[15: 0] << 1 ) + 2 ;
Rb+1[15: 8] = ( Ra[15: 0] << 1 ) + 1 ;
Rb+1[ 7: 0] = ( Ra[15: 0] << 1 ) + 0 ;
---------------------------------------------
(命令4)gensflptn.16.8 Rb,Ra
この命令は、Raの4x16シャッフルパターンから8x8シャッフルパターンを生成し、Rbに格納する。
Rb[63:56] = ( Ra[63:48] << 1 ) + 1 ;
Rb[55:48] = ( Ra[63:48] << 1 ) + 0 ;
Rb[47:40] = ( Ra[47:32] << 1 ) + 1 ;
Rb[39:32] = ( Ra[47:32] << 1 ) + 0 ;
Rb[31:24] = ( Ra[31:16] << 1 ) + 1 ;
Rb[23:16] = ( Ra[31:16] << 1 ) + 0 ;
Rb[15: 8] = ( Ra[15: 0] << 1 ) + 1 ;
Rb[ 7: 0] = ( Ra[15: 0] << 1 ) + 0 ;
---------------------------------------------
(命令5)gensflptn.32.16 Rb,Ra
(別名:gensflptn.32)
この命令は、Raの2x32シャッフルパターンから4x16シャッフルパターンを生成し、Rbに格納する。
Rb[63:48] = ( Ra[63:32] << 1 ) + 1 ;
Rb[47:32] = ( Ra[63:32] << 1 ) + 0 ;
Rb[31:16] = ( Ra[31: 0] << 1 ) + 1 ;
Rb[15: 0] = ( Ra[31: 0] << 1 ) + 0 ;
---------------------------------------------
(命令6)gensflptn.32.8 Rb,Ra
この命令は、Raの2x32シャッフルパターンから8x8シャッフルパターンを生成し、Rbに格納する。
Rb[63:56] = ( Ra[63:32] << 1 ) + 3 ;
Rb[55:48] = ( Ra[63:32] << 1 ) + 2 ;
Rb[47:40] = ( Ra[63:32] << 1 ) + 1 ;
Rb[39:32] = ( Ra[63:32] << 1 ) + 0 ;
Rb[31:24] = ( Ra[31: 0] << 1 ) + 3 ;
Rb[23:16] = ( Ra[31: 0] << 1 ) + 2 ;
Rb[15: 8] = ( Ra[31: 0] << 1 ) + 1 ;
Rb[ 7: 0] = ( Ra[31: 0] << 1 ) + 0 ;
---------------------------------------------
(命令7)gensflptnl Rc:Rc+1,Ra,Rb
この命令は、Rbの値に応じて、Raからシャッフルパターンを生成し、RcおよびRc+1に格納する。Rb[1:0]の値により条件が分岐するIF ELSE文となっている。なお、Rb[1:0]が0、1、2以外の場合の処理は不定である。
if ( Rb[1:0]=0 ) [
Rc[63:56] = ( Ra[63:56] << 1 ) + 1 ;
Rc[55:48] = ( Ra[63:56] << 1 ) + 0 ;
Rc[47:40] = ( Ra[55:48] << 1 ) + 1 ;
Rc[39:32] = ( Ra[55:48] << 1 ) + 0 ;
Rc[31:24] = ( Ra[47:40] << 1 ) + 1 ;
Rc[23:16] = ( Ra[47:40] << 1 ) + 0 ;
Rc[15: 8] = ( Ra[39:32] << 1 ) + 1 ;
Rc[ 7: 0] = ( Ra[39:32] << 1 ) + 0 ;
Rc+1[63:56] = ( Ra[31:24] << 1 ) + 1 ;
Rc+1[55:48] = ( Ra[31:24] << 1 ) + 0 ;
Rc+1[47:40] = ( Ra[23:16] << 1 ) + 1 ;
Rc+1[39:32] = ( Ra[23:16] << 1 ) + 0 ;
Rc+1[31:24] = ( Ra[15: 8] << 1 ) + 1 ;
Rc+1[23:16] = ( Ra[15: 8] << 1 ) + 0 ;
Rc+1[15: 8] = ( Ra[ 7: 0] << 1 ) + 1 ;
Rc+1[ 7: 0] = ( Ra[ 7: 0] << 1 ) + 0 ;
] else if ( Rb[1:0]=1 ) [
Rc[63:48] = ( Ra[63:48] << 1 ) + 1 ;
Rc[47:32] = ( Ra[63:48] << 1 ) + 0 ;
Rc[31:16] = ( Ra[47:32] << 1 ) + 1 ;
Rc[15: 0] = ( Ra[47:32] << 1 ) + 0 ;
Rc+1[63:48] = ( Ra[31:16] << 1 ) + 1 ;
Rc+1[47:32] = ( Ra[31:16] << 1 ) + 0 ;
Rc+1[31:16] = ( Ra[15: 0] << 1 ) + 1 ;
Rc+1[15: 0] = ( Ra[15: 0] << 1 ) + 0 ;
] else if ( Rb[1:0]=2 ) [
Rc[63:56] = ( Ra[63:48] << 1 ) + 3 ;
Rc[55:48] = ( Ra[63:48] << 1 ) + 2 ;
Rc[47:40] = ( Ra[63:48] << 1 ) + 1 ;
Rc[39:32] = ( Ra[63:48] << 1 ) + 0 ;
Rc[31:24] = ( Ra[47:32] << 1 ) + 3 ;
Rc[23:16] = ( Ra[47:32] << 1 ) + 2 ;
Rc[15: 8] = ( Ra[47:32] << 1 ) + 1 ;
Rc[ 7: 0] = ( Ra[47:32] << 1 ) + 0 ;
Rc+1[63:56] = ( Ra[31:16] << 1 ) + 3 ;
Rc+1[55:48] = ( Ra[31:16] << 1 ) + 2 ;
Rc+1[47:40] = ( Ra[31:16] << 1 ) + 1 ;
Rc+1[39:32] = ( Ra[31:16] << 1 ) + 0 ;
Rc+1[31:24] = ( Ra[15: 0] << 1 ) + 3 ;
Rc+1[23:16] = ( Ra[15: 0] << 1 ) + 2 ;
Rc+1[15: 8] = ( Ra[15: 0] << 1 ) + 1 ;
Rc+1[ 7: 0] = ( Ra[15: 0] << 1 ) + 0 ;
]
---------------------------------------------
なお、上で示した、Rbの値やRbの参照するビットの位置はあくまでも一例であり、これに限られるものではない。また、Rb[1:0]が0、1、2の場合のみ記載しているが、それ以外の値が定義されていてもよいし、Rb[1:0]が0、1、2以外の場合の処理が不定ではなく、固定(例えば0と同じ、など)でもよい。これらは次の命令8についても同様である。
(命令8)gensflptn Rc,Ra,Rb
この命令は、Rbの値に応じて、Raからシャッフルパターンを生成し、Rcに格納する。Rb[1:0]が0、1、2以外の場合の処理は不定である。
if ( Rb[1:0]=0 ) [
Rc[63:56] = ( Ra[63:48] << 1 ) + 1 ;
Rc[55:48] = ( Ra[63:48] << 1 ) + 0 ;
Rc[47:40] = ( Ra[47:32] << 1 ) + 1 ;
Rc[39:32] = ( Ra[47:32] << 1 ) + 0 ;
Rc[31:24] = ( Ra[31:16] << 1 ) + 1 ;
Rc[23:16] = ( Ra[31:16] << 1 ) + 0 ;
Rc[15: 8] = ( Ra[15: 0] << 1 ) + 1 ;
Rc[ 7: 0] = ( Ra[15: 0] << 1 ) + 0 ;
] else if ( Rb[1:0]=1 ) [
Rc[63:48] = ( Ra[63:32] << 1 ) + 1 ;
Rc[47:32] = ( Ra[63:32] << 1 ) + 0 ;
Rc[31:16] = ( Ra[31: 0] << 1 ) + 1 ;
Rc[15: 0] = ( Ra[31: 0] << 1 ) + 0 ;
] else if ( Rb[1:0]=2 ) [
Rc[63:56] = ( Ra[63:32] << 1 ) + 3 ;
Rc[55:48] = ( Ra[63:32] << 1 ) + 2 ;
Rc[47:40] = ( Ra[63:32] << 1 ) + 1 ;
Rc[39:32] = ( Ra[63:32] << 1 ) + 0 ;
Rc[31:24] = ( Ra[31: 0] << 1 ) + 3 ;
Rc[23:16] = ( Ra[31: 0] << 1 ) + 2 ;
Rc[15: 8] = ( Ra[31: 0] << 1 ) + 1 ;
Rc[ 7: 0] = ( Ra[31: 0] << 1 ) + 0 ;
]
---------------------------------------------
<補足1>
(1)各実施の形態に係るシャッフルパターン生成回路は、シャッフルパターンを生成する方法として実施することもできる。図25に実施の形態2に対応する方法の流れを示す。この方法では、複数個のインデックスからなるインデックス列を取得(S2501)し、各インデックスをビット単位信号に示されるビット数だけ左ビットシフトし、かつ、各インデックスをビット単位信号に示される複製の個数ずつに複製し(S2502)、各インデックスに対してビット単位信号に示される加算値を加算する(S2503)という手順になっている。
本実施の形態は、次の態様を含むものである。
当該制御データに示されるビット幅へと各インデックスのビット幅を変更し、前記結果として出力するとしても構わない。
202、702、1502、1902 入力シャッフルパターン(インデックス列)
203、703、1503、1903 出力シャッフルパターン
301、701、701a、1411、1501、1901、2205、2206 シャッフルパターン生成回路
304、704、802、1504、1904、2211、2212 ビット単位信号
305、706、1506 シフタ
306、1509 ビット変更器
307、708、1408、1508 加算器
401、402、403、404、601、602、901、902、1001、1002、1101、1102、1301、1302、1601、1602、1603、1701、1702、1703、1801、1802、1803 インデックス列
705、705a、1405、1505 シフト複製部
707、1507 複製器
1404a ビット単位信号A
1404b ビット単位信号B
1905 2×8インデックステーブル
1906 4×8インデックステーブル
1907 インデックステーブル参照器
2201 プロセッサ
2203 命令デコーダ
2204 SIMDレジスタファイル
Claims (13)
- 複数個のインデックスからなるインデックス列を入力とし、ビット数および複製の個数を示す信号を受け付けて、各インデックスを前記信号に示されるビット数だけ左ビットシフトし、かつ、各インデックスを前記信号に示される複製の個数ずつに複製した、インデックス列を出力するシフト複製部と、
前記シフト複製部から出力されたインデックス列を入力とし、各インデックスへの加算値を示す信号を受け付けて、前記各インデックスに前記信号に示される加算値を加算する加算部と
を備えることを特徴とするシャッフルパターン生成回路。 - 前記信号に示される加算値は、複製元が同一の各インデックス間では相異なる値である
ことを特徴とする請求項1に記載のシャッフルパターン生成回路。 - 前記複製の個数はN個(Nは2以上の整数)であって、
前記複製元が同一の各インデックスでは、1個のインデックスの加算値は0であり、残りのN−1個のインデックスの加算値は、それぞれ、1、2、・・・、N−1である
ことを特徴とする請求項2に記載のシャッフルパターン生成回路。 - 各インデックスに対するビット幅を示す信号を受け付けて、前記信号に示されるビット幅へと各インデックスのビット幅を変更するビット幅変更部を備える
ことを特徴とする請求項1に記載のシャッフルパターン生成回路。 - 前記シフト複製部は、
前記各インデックスの左ビットシフト後に各インデックスの複製を行う、または、前記各インデックスの複製後に各インデックスの左ビットシフトを行う
ことを特徴とする請求項1に記載のシャッフルパターン生成回路。 - s個のインデックスのそれぞれに対して、m個(ただし、mは2以上の整数)のkビットのインデックスを対応づけたm×kインデックステーブルと、
t個のインデックスのそれぞれに対して、n個(ただし、nはmと異なる2以上の整数であり、かつs×mとt×nとは等しい)のkビットのインデックスを対応づけたn×kインデックステーブルと、
s個又はt個のインデックスからなるシャッフルパターンと、いずれのインデックステーブルを参照するかを示す信号を受け付けて、前記信号に示されるインデックステーブルを参照して、s×m個またはt×n個(ただしs×mとt×nとは等しい)のインデックスからなるシャッフルパターンを出力する参照部と
を備えることを特徴とするシャッフルパターン生成回路。 - 請求項1または6に記載のシャッフルパターン生成回路を含むプロセッサであって、
入力された命令をデコードし、前記命令に合わせて制御信号を生成する命令デコード部と、
前記制御信号に基づいて、前記シャッフルパターン生成回路へのデータ供給および前記シャッフルパターン生成回路からのデータの格納を行うレジスタファイルとを備え、
前記シャッフルパターン生成回路が受け付ける信号とは、前記制御信号である
ことを特徴とするプロセッサ。 - 複数個のインデックスからなるインデックス列を入力とし、ビット数および複製の個数を示す信号を受け付けて、各インデックスを前記信号に示されるビット数だけ左ビットシフトし、かつ、各インデックスを前記信号に示される複製の個数ずつに複製した、インデックス列を出力するシフト複製ステップと、
前記シフト複製ステップにて出力されたインデックス列を入力とし、各インデックスへの加算値を示す信号を受け付けて、前記インデックスに前記信号に示される加算値を加算する加算ステップと
を含むことを特徴とするシャッフルパターン生成方法。 - 前記シフト複製ステップは、
前記各インデックスの左ビットシフト後に各インデックスの複製を行う、または、前記各インデックスの複製後に各インデックスの左ビットシフトを行う
ことを特徴とする請求項8に記載のシャッフルパターン生成方法。 - 複数個のインデックスからなるインデックス列、かつ、ビット数および複製の個数および各インデックスへの加算値を示す制御データを入力とし、
各インデックスを前記制御データに示されるビット数だけ左ビットシフトし、かつ、
各インデックスを前記制御データに示される複製の個数ずつに複製し、かつ、
各インデックスに前記制御データに示される加算値を加算した結果を出力する制御をコンピュータに実行させるためのプログラム。 - 前記制御データにより示される加算値は、複製元が同一の各インデックス間では相異なる値である
ことを特徴とする請求項10に記載のプログラム。 - 前記複製の個数はN個(Nは2以上の整数)であって、
前記複製元が同一の各インデックスでは、1個のインデックスの加算値は0であり、残りのN−1個のインデックスの加算値は、それぞれ、1、2、・・・、N−1である
ことを特徴とする請求項11に記載のプログラム。 - 前記制御データは各インデックスに対するビット幅を示し、
当該制御データに示されるビット幅へと各インデックスのビット幅を変更し、前記結果として出力する
ことを特徴とする請求項10に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013511424A JP5988222B2 (ja) | 2011-10-18 | 2012-09-13 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011228892 | 2011-10-18 | ||
JP2011228892 | 2011-10-18 | ||
JP2013511424A JP5988222B2 (ja) | 2011-10-18 | 2012-09-13 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
PCT/JP2012/005819 WO2013057872A1 (ja) | 2011-10-18 | 2012-09-13 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013057872A1 JPWO2013057872A1 (ja) | 2015-04-02 |
JP5988222B2 true JP5988222B2 (ja) | 2016-09-07 |
Family
ID=48140543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013511424A Active JP5988222B2 (ja) | 2011-10-18 | 2012-09-13 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9292286B2 (ja) |
JP (1) | JP5988222B2 (ja) |
CN (1) | CN103189837B (ja) |
WO (1) | WO2013057872A1 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10866807B2 (en) | 2011-12-22 | 2020-12-15 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
CN104011646B (zh) | 2011-12-22 | 2018-03-27 | 英特尔公司 | 用于产生按照数值顺序的连续整数的序列的处理器、方法、系统和指令 |
US10223112B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US9251377B2 (en) * | 2012-12-28 | 2016-02-02 | Intel Corporation | Instructions processors, methods, and systems to process secure hash algorithms |
US9514169B2 (en) * | 2013-09-23 | 2016-12-06 | Protegrity Corporation | Columnar table data protection |
EP3001307B1 (en) * | 2014-09-25 | 2019-11-13 | Intel Corporation | Bit shuffle processors, methods, systems, and instructions |
US20160139919A1 (en) * | 2014-11-14 | 2016-05-19 | Intel Corporation | Machine Level Instructions to Compute a 3D Z-Curve Index from 3D Coordinates |
US9772849B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9772848B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US20160139924A1 (en) * | 2014-11-14 | 2016-05-19 | Intel Corporation | Machine Level Instructions to Compute a 4D Z-Curve Index from 4D Coordinates |
US10194829B2 (en) | 2015-07-07 | 2019-02-05 | Q Bio, Inc. | Fast scanning based on magnetic resonance history |
US9958521B2 (en) | 2015-07-07 | 2018-05-01 | Q Bio, Inc. | Field-invariant quantitative magnetic-resonance signatures |
CN105022609A (zh) * | 2015-08-05 | 2015-11-04 | 浪潮(北京)电子信息产业有限公司 | 一种数据混洗方法和数据混洗单元 |
US9665734B2 (en) * | 2015-09-12 | 2017-05-30 | Q Bio, Inc. | Uniform-frequency records with obscured context |
US10964412B2 (en) | 2015-10-20 | 2021-03-30 | Q Bio, Inc. | Population-based medical rules via anonymous sharing |
US10359486B2 (en) | 2016-04-03 | 2019-07-23 | Q Bio, Inc. | Rapid determination of a relaxation time |
US10222441B2 (en) | 2016-04-03 | 2019-03-05 | Q Bio, Inc. | Tensor field mapping |
KR102659495B1 (ko) * | 2016-12-02 | 2024-04-22 | 삼성전자주식회사 | 벡터 프로세서 및 그 제어 방법 |
US11650195B2 (en) | 2017-02-03 | 2023-05-16 | Q Bio, Inc. | Iterative medical testing of biological samples |
US10936180B2 (en) | 2017-03-16 | 2021-03-02 | Q Bio, Inc. | User interface for medical information |
US11206815B2 (en) | 2018-09-30 | 2021-12-28 | Rollo Pet Company Llc | Retractable leash locking assemblies, and systems and methods thereof |
US11360166B2 (en) | 2019-02-15 | 2022-06-14 | Q Bio, Inc | Tensor field mapping with magnetostatic constraint |
US11354586B2 (en) | 2019-02-15 | 2022-06-07 | Q Bio, Inc. | Model parameter determination using a predictive model |
CA3153503C (en) | 2019-09-27 | 2024-05-14 | Q Bio, Inc. | Maxwell parallel imaging |
US11614509B2 (en) | 2019-09-27 | 2023-03-28 | Q Bio, Inc. | Maxwell parallel imaging |
US11614508B1 (en) | 2021-10-25 | 2023-03-28 | Q Bio, Inc. | Sparse representation of measurements |
CN115061731B (zh) * | 2022-06-23 | 2023-05-23 | 摩尔线程智能科技(北京)有限责任公司 | 混洗电路和方法、以及芯片和集成电路装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445177A (en) * | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
US6304991B1 (en) * | 1998-12-04 | 2001-10-16 | Qualcomm Incorporated | Turbo code interleaver using linear congruential sequence |
EP1261912A2 (en) * | 2000-03-08 | 2002-12-04 | Sun Microsystems, Inc. | Processing architecture having sub-word shuffling and opcode modification |
US7272622B2 (en) * | 2001-10-29 | 2007-09-18 | Intel Corporation | Method and apparatus for parallel shift right merge of data |
US20040054877A1 (en) | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7424597B2 (en) | 2003-03-31 | 2008-09-09 | Hewlett-Packard Development Company, L.P. | Variable reordering (Mux) instructions for parallel table lookups from registers |
GB2411976B (en) | 2003-12-09 | 2006-07-19 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2409062C (en) * | 2003-12-09 | 2007-12-11 | Advanced Risc Mach Ltd | Aliasing data processing registers |
CN101061460B (zh) * | 2004-09-21 | 2011-03-30 | Nxp股份有限公司 | 用于混移运算的微处理器设备和方法 |
CN101986262B (zh) * | 2010-11-25 | 2013-01-16 | 中国人民解放军国防科学技术大学 | 基于模式偏移的混洗开关矩阵压缩方法 |
-
2012
- 2012-09-13 JP JP2013511424A patent/JP5988222B2/ja active Active
- 2012-09-13 WO PCT/JP2012/005819 patent/WO2013057872A1/ja active Application Filing
- 2012-09-13 CN CN201280003072.0A patent/CN103189837B/zh active Active
- 2012-09-13 US US13/822,213 patent/US9292286B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN103189837A (zh) | 2013-07-03 |
US9292286B2 (en) | 2016-03-22 |
US20130275718A1 (en) | 2013-10-17 |
JPWO2013057872A1 (ja) | 2015-04-02 |
CN103189837B (zh) | 2016-12-28 |
WO2013057872A1 (ja) | 2013-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5988222B2 (ja) | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 | |
US10521232B2 (en) | Data processing apparatus and method for processing a SIMD instruction specifying a control value having a first portion identifying a selected data size and a second portion identifying at least one control parameter having a number of bits that varies in dependence on a number of bits comprised by the first portion | |
US5859790A (en) | Replication of data | |
EP0743592B1 (en) | Reorganising of data objects within a data string | |
KR101099467B1 (ko) | 레지스터와 메모리 사이에 데이터를 이동시키는 데이터처리장치 및 방법 | |
US7761694B2 (en) | Execution unit for performing shuffle and other operations | |
TWI489382B (zh) | 改良的萃取指令背景之設備及方法 | |
US20120278591A1 (en) | Crossbar switch module having data movement instruction processor module and methods for implementing the same | |
JP2009026106A (ja) | 命令コード圧縮方法と命令フェッチ回路 | |
WO1999054812A1 (en) | Method and apparatus for performing shift operations on packed data | |
GB2444744A (en) | Apparatus and method for performing re-arrangement operations on data | |
CN107851016B (zh) | 向量算术指令 | |
US20180307486A1 (en) | Shift instruction | |
JP4686435B2 (ja) | 演算装置 | |
KR102591988B1 (ko) | 데이터 처리장치에서의 벡터 인터리빙 | |
JP5853177B2 (ja) | データ処理装置、及びデータ処理方法 | |
CN109947391B (zh) | 一种数据处理方法和装置 | |
JP2013517576A5 (ja) | ||
JP2002132497A (ja) | 単一命令多重データ処理 | |
US20090249032A1 (en) | Information apparatus | |
JPH06103035A (ja) | 擬似乱数を生成する方法および装置 | |
JPWO2020084694A1 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2004139156A (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160526 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160729 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5988222 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |