JP2017134840A - 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 - Google Patents
単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 Download PDFInfo
- Publication number
- JP2017134840A JP2017134840A JP2017019125A JP2017019125A JP2017134840A JP 2017134840 A JP2017134840 A JP 2017134840A JP 2017019125 A JP2017019125 A JP 2017019125A JP 2017019125 A JP2017019125 A JP 2017019125A JP 2017134840 A JP2017134840 A JP 2017134840A
- Authority
- JP
- Japan
- Prior art keywords
- value
- instruction
- xor
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 20
- 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
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)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
【解決手段】ROTATEandXOR命令の例示的な演算では、2つのソース501、503は、XORロジック505を用いて、共に排他的論理和が演算される。XORの結果は、次に回転ロジック507により、位置設定数だけ回転される。
【効果】この命令の実行は、特にBlakeセキュアハッシュアルゴリズムで有用である。ROTATEandXOR命令の他の例示的な演算では、回転があらゆるXOR演算の前に行われる点で、前述の例と異なる。この命令の実行は、Skeinハッシュアルゴリズムの一部として特に有用である。
【選択図】図5
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 (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
US13/631,242 | 2012-09-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015533050A Division JP6088655B2 (ja) | 2012-09-28 | 2013-06-21 | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017134840A true JP2017134840A (ja) | 2017-08-03 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015533050A Active JP6088655B2 (ja) | 2012-09-28 | 2013-06-21 | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9128698B2 (ja) |
JP (2) | JP6088655B2 (ja) |
KR (2) | KR101787615B1 (ja) |
CN (2) | CN108563465B (ja) |
DE (1) | DE112013003735B4 (ja) |
GB (2) | GB2581103A (ja) |
WO (1) | WO2014051763A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025502B (zh) | 2011-12-22 | 2017-07-11 | 英特尔公司 | 用于处理blake安全散列算法的指令处理器、方法以及系统 |
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 | 湖南天河国云科技有限公司 | 基于区块链的随机数生成方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04148372A (ja) * | 1990-10-11 | 1992-05-21 | Fujitsu Ltd | ハッシュ値算出処理方式 |
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 |
US20090182981A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Rotate Then Operate on Selected Bits Facility and Instructions Therefore |
US20100142702A1 (en) * | 2008-12-10 | 2010-06-10 | Texas Instruments Incorporated | Kasumi Cipher Executable Instructions and Circuitry |
US20100180129A1 (en) * | 2009-01-09 | 2010-07-15 | Stmicroelectronics R&D Ltd. | Apparatus comprising a plurality of arithmetic logic units |
US20110153700A1 (en) * | 2009-12-17 | 2011-06-23 | Vinodh Gopal | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US20120030451A1 (en) * | 2010-07-28 | 2012-02-02 | Broadcom Corporation | Parallel and long adaptive instruction set architecture |
US20120079244A1 (en) * | 2010-09-24 | 2012-03-29 | Forsyth Andrew T | Method and apparatus for universal logical operations |
JP2015501946A (ja) * | 2011-11-17 | 2015-01-19 | エイアールエム リミテッド | 暗号化アルゴリズム内のハッシュ値の生成をサポートするためのsimd命令 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386531A (en) * | 1991-05-15 | 1995-01-31 | International Business Machines Corporation | Computer system accelerator for multi-word cross-boundary storage access |
JP3252954B2 (ja) * | 1997-04-01 | 2002-02-04 | 松下電器産業株式会社 | 乗算方法および乗算回路 |
DE69808362T2 (de) * | 1997-04-01 | 2003-03-06 | Matsushita Electric Ind Co Ltd | Multiplizierverfahren und Multiplizierschaltung |
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 | 北京同方微电子有限公司 | 一种用于密码学运算的微处理器内核装置 |
US8504807B2 (en) * | 2009-12-26 | 2013-08-06 | Intel Corporation | Rotate instructions that complete execution without reading carry flag |
CN102221991B (zh) * | 2011-05-24 | 2014-04-09 | 华润半导体(深圳)有限公司 | 一种4位risc微控制器 |
-
2012
- 2012-09-28 US US13/631,242 patent/US9128698B2/en active Active
-
2013
- 2013-06-21 CN CN201810362434.4A patent/CN108563465B/zh active Active
- 2013-06-21 GB GB2007017.3A patent/GB2581103A/en not_active Withdrawn
- 2013-06-21 CN CN201380045424.3A patent/CN104583980B/zh active Active
- 2013-06-21 DE DE112013003735.1T patent/DE112013003735B4/de active Active
- 2013-06-21 JP JP2015533050A patent/JP6088655B2/ja active Active
- 2013-06-21 KR KR1020157005035A patent/KR101787615B1/ko active IP Right Grant
- 2013-06-21 WO PCT/US2013/047185 patent/WO2014051763A1/en active Application Filing
- 2013-06-21 GB GB1500864.2A patent/GB2520855B/en active Active
- 2013-06-21 KR KR1020177029334A patent/KR101934760B1/ko active IP Right Grant
-
2017
- 2017-02-03 JP JP2017019125A patent/JP2017134840A/ja active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04148372A (ja) * | 1990-10-11 | 1992-05-21 | Fujitsu Ltd | ハッシュ値算出処理方式 |
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 |
US20090182981A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Rotate Then Operate on Selected Bits Facility and Instructions Therefore |
US20100142702A1 (en) * | 2008-12-10 | 2010-06-10 | Texas Instruments Incorporated | Kasumi Cipher Executable Instructions and Circuitry |
US20100180129A1 (en) * | 2009-01-09 | 2010-07-15 | Stmicroelectronics R&D Ltd. | Apparatus comprising a plurality of arithmetic logic units |
US20110153700A1 (en) * | 2009-12-17 | 2011-06-23 | Vinodh Gopal | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US20120030451A1 (en) * | 2010-07-28 | 2012-02-02 | Broadcom Corporation | Parallel and long adaptive instruction set architecture |
US20120079244A1 (en) * | 2010-09-24 | 2012-03-29 | Forsyth Andrew T | Method and apparatus for universal logical operations |
JP2015501946A (ja) * | 2011-11-17 | 2015-01-19 | エイアールエム リミテッド | 暗号化アルゴリズム内のハッシュ値の生成をサポートするためのsimd命令 |
Non-Patent Citations (2)
Title |
---|
大貫広幸: "x86CPUだけでもマスタしたい 開発技術者のためのアセンブラ入門 第17回 論理,シフト,ローテート命令", INTERFACE, vol. 第29巻,第4号, JPN6016014665, 1 April 2003 (2003-04-01), JP, pages 167 - 174, ISSN: 0003793422 * |
山崎哲平,ブシャ ジャン ルク,岡本栄司: "BLAKE-256,BLAKE-512のコンパクトな統合実装", 電子情報通信学会論文誌, vol. 第J95-A巻,第5号, JPN6016014664, 1 May 2012 (2012-05-01), JP, pages 416 - 424, ISSN: 0003793421 * |
Also Published As
Publication number | Publication date |
---|---|
DE112013003735T5 (de) | 2015-08-27 |
KR101787615B1 (ko) | 2017-10-19 |
CN104583980A (zh) | 2015-04-29 |
US20140095844A1 (en) | 2014-04-03 |
WO2014051763A1 (en) | 2014-04-03 |
CN108563465B (zh) | 2022-09-20 |
GB201500864D0 (en) | 2015-03-04 |
GB2520855B (en) | 2020-07-01 |
KR101934760B1 (ko) | 2019-01-04 |
JP2015535982A (ja) | 2015-12-17 |
KR20150038407A (ko) | 2015-04-08 |
CN104583980B (zh) | 2018-05-29 |
US9128698B2 (en) | 2015-09-08 |
CN108563465A (zh) | 2018-09-21 |
DE112013003735B4 (de) | 2022-09-15 |
GB2581103A (en) | 2020-08-05 |
GB2520855A (en) | 2015-06-03 |
KR20170118250A (ko) | 2017-10-24 |
GB202007017D0 (en) | 2020-06-24 |
JP6088655B2 (ja) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6466388B2 (ja) | 方法及び装置 | |
US9900770B2 (en) | Instruction for accelerating SNOW 3G wireless security algorithm | |
JP6088655B2 (ja) | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 | |
US20170109164A1 (en) | Processors, methods, and systems to implement partial register accesses with masked full register accesses | |
US10387149B2 (en) | Apparatus and method to reverse and permute bits in a mask register | |
JP2019207393A (ja) | 高性能認証付き暗号に関するハードウェアアクセラレータ及び方法 | |
US10564966B2 (en) | Packed data operation mask shift processors, methods, systems, and instructions | |
US9760371B2 (en) | Packed data operation mask register arithmetic combination processors, methods, systems, and instructions | |
US20130326192A1 (en) | Broadcast operation on mask register | |
US9898300B2 (en) | Instruction for fast ZUC algorithm processing | |
US9489196B2 (en) | Multi-element instruction with different read and write masks | |
JP6074511B2 (ja) | プロセッサ、方法、データプロセッシングシステム、および装置 | |
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 |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170607 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180515 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180814 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20181012 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181115 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190409 |