JP6088655B2 - 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 - Google Patents
単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 Download PDFInfo
- Publication number
- JP6088655B2 JP6088655B2 JP2015533050A JP2015533050A JP6088655B2 JP 6088655 B2 JP6088655 B2 JP 6088655B2 JP 2015533050 A JP2015533050 A JP 2015533050A JP 2015533050 A JP2015533050 A JP 2015533050A JP 6088655 B2 JP6088655 B2 JP 6088655B2
- Authority
- JP
- Japan
- Prior art keywords
- xor
- instruction
- value
- bits
- rotation
- 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 21
- 230000015654 memory Effects 0.000 description 67
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 15
- 238000007667 floating Methods 0.000 description 14
- 238000007792 addition Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 6
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 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/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
|v4 v5 v6 v7|
|v8 v9 v10 v11|
|v12 v13 v14 v15|
d=(dΛa)>>>16
c=c+d
b=(bΛc)>>>12
a=a+b+(m_r(2i+1)Λc_r(2i))
d=(dΛa)>>>8
c=c+d
b=(bΛc)>>>7
ここで、m_r(2i及びm_r(2i+1)は、各ラウンドで入力された16のメッセージワードの中の2つであり、c_r(2i)及びc_r(2i+1)は、16の定数の中の2つである。
この命令の例示的なフォーマットは、「ROTATEandXOR DEST、SRC1、SRC2、IMM」であり、ここで、オペランドDESTは(8ビット、16ビット、32ビット、64ビット等のレジスタのような)デスティネーションレジスタまたはメモリ位置であり、SRC1及びSRC2は、複数のレジスタ、複数のメモリ位置またはデスティネーションと同じサイズの両方の組み合わせのいずれかであり得る複数のソースである。IMMは、命令の即値であり、任意の数のビットであってもよいが、しかしながら一実施形態では、IMMは、8ビットの値である。ROTATEandXORは、命令のオペコードである。
図7A−Cは、プロセッサにおけるROTATEandXOR命令の実行のいくつかの異なる実施形態を示す。
図10は、本発明の一実施形態に係るレジスタアーキテクチャ1000のブロック図である。例示された実施形態では、512ビット幅のベクトルレジスタ1010が32個存在し、これらの複数のレジスタは、zmm0−zmm31と称される。下位16の複数のzmmレジスタの下位256ビットは、複数のレジスタymm0−16上にオーバーレイされる。下位16の複数のzmmレジスタの下位128ビット(複数のymmレジスタの下位128ビット)は、複数のレジスタxmm0−15にオーバーレイされる。
例示された実施形態では、複数のメモリオペランドにアドレスするための既存の複数のx86アドレス指定モードと共に用いられる64ビットの汎用レジスタが、16個存在する。これらの複数のレジスタは、RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP及びR8−R15という名で称される。
例示された実施形態では、x87スタックは、x87命令セット拡張を用いて32/64/80ビットの浮動小数点データに対する複数のスカラ浮動小数点演算を実行するために用いられる、8個の要素のスタックであり、複数のMMXレジスタは、64ビットパック型整数データに対する複数の演算を実行し、MMX及びXMMレジスタ間で実行されるいくつかの演算のための複数のオペランドを保持するために用いられる。
複数のプロセッサコアは、異なる態様で、異なる目的のために、かつ異なるプロセッサに実装されてもよい。例えば、そのような複数のコアの実装は、1)汎用演算用の汎用インオーダコア、2)汎用演算用の高性能汎用アウトオブオーダコア、3)主にグラフィック及び/または科学的(スループット)演算用の特殊用途向けコアを含んでもよい。複数の異なるプロセッサの実装は、1)汎用演算用の1または複数の汎用インオーダコア及び/または汎用演算用の1または複数の汎用アウトオブオーダコアを含むCPU、ならびに2)主にグラフィック及び/または科学的(スループット)用の1または複数の特殊用途コアを含むコプロセッサを含んでもよい。そのような複数の異なるプロセッサにより、異なる複数のコンピュータシステムアーキテクチャが構成され、コンピュータシステムアーキテクチャは、1)CPUからの個別のチップ上のコプロセッサ、2)CPUと同じパッケージ内の個別のダイ上のコプロセッサ、3)CPUと同じダイ上のコプロセッサ(この場合、そのようなコプロセッサは、場合により、集中画像表示及び/または科学的(スループット)ロジックのような特殊用途ロジック、または特殊用途コアと称される)、及び4)説明されたCPU(場合によりアプリケーションコアまたはアプリケーションプロセッサと称される)、上述のコプロセッサ及び追加機能を同じダイ上に含み得るチップ上のシステムを含んでもよい。
[インオーダ及びアウトオブオーダコアのブロック図]
図11Aは、本発明の複数の実施形態に係る例示的なインオーダパイプライン及び例示的なレジスタリネーミング、アウトオブオーダ発行/実行パイプラインの両方を示すブロック図である。図11Bは、本発明の複数の実施形態に係るプロセッサに含まれるべきインオーダアーキテクチャコアの例示的な実施形態及び例示的なレジスタリネーミング、アウトオブオーダ発行/実行アーキテクチャコアの両方を示すブロック図である。図11A−Bの複数の実線のボックスは、インオーダパイプライン及びインオーダコアを示し、選択的に追加された複数の破線のボックスは、レジスタリネーミング、アウトオブオーダ発行/実行パイプライン及びコアを示す。インオーダ態様がアウトオブオーダ態様のサブセットであるとして、アウトオブオーダ態様について説明する。
図12A−Bは、より具体的な、例示的なインオーダコアアーキテクチャのブロック図を示し、ここで、コアは、チップ内のいくつかの論理ブロック(同じ型及び/または異なる型の他の複数のコアを含む)の中の1つであってもよい。複数のロジックブロックは、用途に応じて、高帯域幅相互接続ネットワーク(例えば、リングネットワーク)を介して、いくつかの固定機能ロジック、メモリI/Oインターフェース及び他の必要なI/Oロジックと通信を行う。
図13は、本発明の複数の実施形態に係るプロセッサ1300のブロック図であり、プロセッサ1300は、1より多くのコアを有してもよく、集積メモリコントローラを有してもよく、集中画像表示を有してもよい。図13の複数の実線のボックスは、単一のコア1302A、システムエージェント1310、1または複数のバスコントローラユニット1316のセットを有するプロセッサ1300を示し、選択的に追加された複数の破線のボックスは、複数のコア1302A−Nを有する代替的なプロセッサ1300、システムエージェントユニット1310内の1または複数の集積メモリコントローラユニット1314のセット及び特殊用途ロジック1308を示す。
図14−17は、例示的な複数のコンピュータアーキテクチャのブロック図である。ラップトップ、デスクトップ、ハンドヘルド型PC、携帯情報端末、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、組込みプロセッサ、デジタルシグナルプロセッサ(DSP)、グラフィックデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレイヤ、ハンドヘルドデバイス及び様々な他の電子デバイス用の当技術分野で公知の他の複数のシステム設計及び複数の構成も、適している。概して、本明細書で開示されるように、プロセッサ及び/または他の実行ロジックを組み込み可能な多様なシステムまたは電子デバイスが、概して適している。
場合によっては、命令変換部は、ソース命令セットからターゲット命令セットへと命令を変換するために用いられてもよい。例えば、命令変換部は、命令をコアによって処理されるべき1または複数の他の命令に、(例えば、静的バイナリ変換、動的コンパイルを含む動的バイナリ変換を用いて)変換、モーフィング、エミュレートまたは他の方法で変換してもよい。命令変換部は、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組み合わせで実装されてもよい。命令変換部は、プロセッサ上にあってもよく、プロセッサ外にあってもよく、または一部がプロセッサ上かつ一部がプロセッサ外にあってもよい。
Claims (21)
- 単一のXOR及び回転命令または単一のXOR及びシフト命令に応じてXORと回転またはシフトとを実行するコンピュータプロセッサで実行する方法であって、前記XOR及び回転命令または前記XOR及びシフト命令は、第1及び第2のソースオペランド、デスティネーションオペランド、オペコード及び即値を示し、前記方法は、
第1及び第2のモードの中の1つを実行するべく、単一の前記XOR及び回転命令または単一の前記XOR及びシフト命令を実行する段階と、
前記第1または第2のモードのいずれかからの結果を、前記デスティネーションオペランドに関連付けられたデスティネーション位置に記憶する段階とを備え、
前記第1のモードが実行されると、XORされた値を生成するべく、前記第1及び第2のソースオペランドの複数の値をXORし、次に、前記XORされた値をビット位置の数Xだけ回転またはシフトさせ、前記第2のモードが実行されると、前記第1のソースオペランドの値をビット位置の数Xだけ回転またはシフトさせ、前記第2のソースオペランドからの値で前記回転またはシフトされた値をXORする、方法。 - 前記ビット位置の数Xは、前記即値のうちの1または複数のビットにより示されるものである、請求項1に記載の方法。
- 前記即値のうちの1または複数のビットは、前記即値のうちの最下位6ビットである、請求項2に記載の方法。
- 前記回転またはシフトは、左回転または左シフトである、請求項1から3のいずれか1項に記載の方法。
- 前記XOR及び回転命令または前記XOR及びシフト命令は、Skeinハッシュアルゴリズムの一部である、請求項1から4のいずれか1項に記載の方法。
- 前記XOR及び回転命令または前記XOR及びシフト命令は、Blakeハッシュアルゴリズムの一部である、請求項1から4のいずれか1項に記載の方法。
- 前記第1及び第2のソースオペランドの各々は、レジスタと関連付けられ、複数の前記レジスタのサイズは、8ビット、16ビット、32ビットまたは64ビットの中の1つである、請求項1から6のいずれか1項に記載の方法。
- 前記第1及び第2のモードのいずれが前記即値のビット値に基づいて実行されるべきかを決定する段階をさらに備える、請求項1から7のいずれか1項に記載の方法。
- 命令のフォーマットが第1及び第2のソースオペランド、デスティネーションオペランド、即値及びオペコードを規定し、
コンピュータに、
XORと回転またはシフトとの単一の前記命令に応答して、第1及び第2のモードのうちの1つを実行させて、前記第1及び第2のモードのいずれかからの結果を、前記デスティネーションオペランドに関連付けられたデスティネーション位置に記憶させ、
前記第1のモードでは、実行により、前記第1及び第2のソースオペランドの複数の値をXORすることにより、XORされた値を生成し、次に、前記XORされた値をビット位置の数Xだけ回転またはシフトさせ、
前記第2のモードでは、実行により、前記第1のソースオペランドの値をビット位置の数Xだけ回転またはシフトさせ、前記回転またはシフトされた値を前記第2のソースオペランドからの値でXORする、プログラム。 - 前記ビット位置の数Xは、前記即値のうちの1または複数のビットにより示されるものである、請求項9に記載のプログラム。
- 前記即値のうちの1または複数のビットは、前記即値のうちの最下位6ビットである、請求項10に記載のプログラム。
- 前記回転またはシフトは、左回転または左シフトである、請求項9から11のいずれか1項に記載のプログラム。
- 前記命令は、Skeinハッシュアルゴリズムの一部である、請求項9から12のいずれか1項に記載のプログラム。
- 前記命令は、Blakeハッシュアルゴリズムの一部である、請求項9から12のいずれか1項に記載のプログラム。
- 前記第1及び第2のソースオペランドの各々は、レジスタと関連付けられ、複数の前記レジスタのサイズは、8ビット、16ビット、32ビットまたは64ビットの中の1つである、請求項9から14のいずれか1項に記載のプログラム。
- 前記コンピュータに、前記即値のビット値に基づいて、前記第1及び第2のモードのいずれが実行されるべきかを決定させる、請求項9から15のいずれか1項に記載のプログラム。
- 第1及び第2のソースオペランド、デスティネーションオペランド、オペコード及び即値を示す単一のXOR及び回転命令または単一のXOR及びシフト命令を復号化するハードウェアデコーダと、
第1及び第2のモードのうちの1つを実行し、前記第1または第2のモードのいずれかからの結果を、前記デスティネーションオペランドに関連付けられたデスティネーション位置に記憶する実行ロジックであって、前記第1のモードでは、実行により、XORされた値を生成するべく、前記第1及び第2のソースオペランドの複数の値をXORし、次に、前記XORされた値をビット位置の数Xだけ回転またはシフトさせ、前記第2のモードでは、実行により、前記第1のソースオペランドの値をビット位置の数Xによって回転またはシフトさせ、前記回転またはシフトされた値を前記第2のソースオペランドからの値でXORする実行ロジックとを備える、装置。 - 前記ビット位置の数Xは、前記即値のうちの1または複数のビットにより示されるものである、請求項17に記載の装置。
- 前記即値のうちの1または複数のビットは、前記即値のうちの最下位6ビットである、請求項18に記載の装置。
- 前記回転またはシフトは、左回転または左シフトである、請求項17から19のいずれか1項に記載の装置。
- 請求項9から16のいずれか1項に記載のプログラムを記憶したコンピュータ可読記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/631,242 | 2012-09-28 | ||
US13/631,242 US9128698B2 (en) | 2012-09-28 | 2012-09-28 | Systems, apparatuses, and methods for performing rotate and XOR in response to a single instruction |
PCT/US2013/047185 WO2014051763A1 (en) | 2012-09-28 | 2013-06-21 | Systems, apparatuses, and methods for performing rotate and xor in response to a single instruction |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017019125A Division JP2017134840A (ja) | 2012-09-28 | 2017-02-03 | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015535982A JP2015535982A (ja) | 2015-12-17 |
JP6088655B2 true JP6088655B2 (ja) | 2017-03-01 |
Family
ID=50386390
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015533050A Active JP6088655B2 (ja) | 2012-09-28 | 2013-06-21 | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 |
JP2017019125A Pending JP2017134840A (ja) | 2012-09-28 | 2017-02-03 | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017019125A Pending JP2017134840A (ja) | 2012-09-28 | 2017-02-03 | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9128698B2 (ja) |
JP (2) | JP6088655B2 (ja) |
KR (2) | KR101934760B1 (ja) |
CN (2) | CN108563465B (ja) |
DE (1) | DE112013003735B4 (ja) |
GB (2) | GB2520855B (ja) |
WO (1) | WO2014051763A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9100184B2 (en) | 2011-12-22 | 2015-08-04 | Intel Corporation | Instructions processors, methods, and systems to process BLAKE secure hashing algorithm |
US9122475B2 (en) * | 2012-09-28 | 2015-09-01 | Intel Corporation | Instruction for shifting bits left with pulling ones into less significant bits |
US8953785B2 (en) * | 2012-09-28 | 2015-02-10 | Intel Corporation | Instruction set for SKEIN256 SHA3 algorithm on a 128-bit processor |
US20160179523A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Apparatus and method for vector broadcast and xorand logical instruction |
CN108897522A (zh) * | 2018-06-14 | 2018-11-27 | 北京比特大陆科技有限公司 | 数据处理方法、数据处理装置以及电子设备 |
GB2582900A (en) | 2019-03-18 | 2020-10-14 | Pqshield Ltd | Cryptography using a cryptographic state |
CN110515591B (zh) * | 2019-08-05 | 2023-04-11 | 湖南天河国云科技有限公司 | 基于区块链的随机数生成方法及装置 |
US12026516B1 (en) * | 2022-12-22 | 2024-07-02 | Intel Corporation | Accelerating four-way parallel KECCAK execution on 256-bit vector processor |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04148372A (ja) * | 1990-10-11 | 1992-05-21 | Fujitsu Ltd | ハッシュ値算出処理方式 |
US5386531A (en) * | 1991-05-15 | 1995-01-31 | International Business Machines Corporation | Computer system accelerator for multi-word cross-boundary storage access |
US6167419A (en) * | 1997-04-01 | 2000-12-26 | Matsushita Electric Industrial Co., Ltd. | Multiplication method and multiplication circuit |
JP3252954B2 (ja) * | 1997-04-01 | 2002-02-04 | 松下電器産業株式会社 | 乗算方法および乗算回路 |
US5881274A (en) * | 1997-07-25 | 1999-03-09 | International Business Machines Corporation | Method and apparatus for performing add and rotate as a single instruction within a processor |
US7689641B2 (en) * | 2003-06-30 | 2010-03-30 | Intel Corporation | SIMD integer multiply high with round and shift |
US7370180B2 (en) * | 2004-03-08 | 2008-05-06 | Arm Limited | Bit field extraction with sign or zero extend |
WO2006040682A2 (en) * | 2004-10-13 | 2006-04-20 | Synaptic Laboratories Limited | Process of and apparatus for encoding a digital input |
US7945729B2 (en) * | 2004-11-24 | 2011-05-17 | International Business Machines Corporation | System and method for tolerating multiple storage device failures in a storage system using horizontal and vertical parity layouts |
JP2007178966A (ja) * | 2005-12-27 | 2007-07-12 | Shuichi Kamizono | 擬似乱数を生成するアルゴリズム |
CN100470571C (zh) * | 2006-08-23 | 2009-03-18 | 北京同方微电子有限公司 | 一种用于密码学运算的微处理器内核装置 |
US7895419B2 (en) * | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions therefore |
US8693681B2 (en) * | 2008-12-10 | 2014-04-08 | Texas Instruments Incorporated | Kasumi cipher executable instructions and circuitry |
EP2207090B1 (en) * | 2009-01-09 | 2018-12-19 | STMicroelectronics (Research & Development) Limited | Apparatus comprising a plurality of arithmetic logic units |
US9747105B2 (en) * | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US8504807B2 (en) * | 2009-12-26 | 2013-08-06 | Intel Corporation | Rotate instructions that complete execution without reading carry flag |
US20120030451A1 (en) * | 2010-07-28 | 2012-02-02 | Broadcom Corporation | Parallel and long adaptive instruction set architecture |
US8539206B2 (en) * | 2010-09-24 | 2013-09-17 | Intel Corporation | Method and apparatus for universal logical operations utilizing value indexing |
CN102221991B (zh) * | 2011-05-24 | 2014-04-09 | 华润半导体(深圳)有限公司 | 一种4位risc微控制器 |
GB2497070B (en) * | 2011-11-17 | 2015-11-25 | Advanced Risc Mach Ltd | Cryptographic support instructions |
-
2012
- 2012-09-28 US US13/631,242 patent/US9128698B2/en active Active
-
2013
- 2013-06-21 KR KR1020177029334A patent/KR101934760B1/ko active IP Right Grant
- 2013-06-21 CN CN201810362434.4A patent/CN108563465B/zh active Active
- 2013-06-21 GB GB1500864.2A patent/GB2520855B/en active Active
- 2013-06-21 GB GB2007017.3A patent/GB2581103A/en not_active Withdrawn
- 2013-06-21 WO PCT/US2013/047185 patent/WO2014051763A1/en active Application Filing
- 2013-06-21 KR KR1020157005035A patent/KR101787615B1/ko active IP Right Grant
- 2013-06-21 CN CN201380045424.3A patent/CN104583980B/zh active Active
- 2013-06-21 JP JP2015533050A patent/JP6088655B2/ja active Active
- 2013-06-21 DE DE112013003735.1T patent/DE112013003735B4/de active Active
-
2017
- 2017-02-03 JP JP2017019125A patent/JP2017134840A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2015535982A (ja) | 2015-12-17 |
DE112013003735B4 (de) | 2022-09-15 |
KR20150038407A (ko) | 2015-04-08 |
GB2581103A (en) | 2020-08-05 |
GB2520855B (en) | 2020-07-01 |
DE112013003735T5 (de) | 2015-08-27 |
WO2014051763A1 (en) | 2014-04-03 |
GB2520855A (en) | 2015-06-03 |
KR101787615B1 (ko) | 2017-10-19 |
CN108563465B (zh) | 2022-09-20 |
US20140095844A1 (en) | 2014-04-03 |
JP2017134840A (ja) | 2017-08-03 |
KR20170118250A (ko) | 2017-10-24 |
CN108563465A (zh) | 2018-09-21 |
KR101934760B1 (ko) | 2019-01-04 |
US9128698B2 (en) | 2015-09-08 |
CN104583980B (zh) | 2018-05-29 |
CN104583980A (zh) | 2015-04-29 |
GB201500864D0 (en) | 2015-03-04 |
GB202007017D0 (en) | 2020-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6088655B2 (ja) | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 | |
US9934032B2 (en) | Processors, methods, and systems to implement partial register accesses with masked full register accesses | |
JP6466388B2 (ja) | 方法及び装置 | |
US20200183688A1 (en) | Packed data operation mask shift processors, methods, systems, and instructions | |
US10387149B2 (en) | Apparatus and method to reverse and permute bits in a mask register | |
US9760371B2 (en) | Packed data operation mask register arithmetic combination processors, methods, systems, and instructions | |
US20130326192A1 (en) | Broadcast operation on mask register | |
US9489196B2 (en) | Multi-element instruction with different read and write masks | |
EP2889755A2 (en) | Systems, apparatuses, and methods for expand and compress | |
US9207941B2 (en) | Systems, apparatuses, and methods for reducing the number of short integer multiplications | |
EP2889756A1 (en) | Systems, apparatuses, and methods for vector bit test | |
US9207942B2 (en) | Systems, apparatuses,and methods for zeroing of bits in a data element | |
US20140068227A1 (en) | Systems, apparatuses, and methods for extracting a writemask from a register |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160726 |
|
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: 20161206 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20170104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6088655 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |