JP5047944B2 - データアクセス及び置換ユニット - Google Patents
データアクセス及び置換ユニット Download PDFInfo
- Publication number
- JP5047944B2 JP5047944B2 JP2008504843A JP2008504843A JP5047944B2 JP 5047944 B2 JP5047944 B2 JP 5047944B2 JP 2008504843 A JP2008504843 A JP 2008504843A JP 2008504843 A JP2008504843 A JP 2008504843A JP 5047944 B2 JP5047944 B2 JP 5047944B2
- Authority
- JP
- Japan
- Prior art keywords
- replacement
- data processing
- data
- register
- processing unit
- 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
- 239000013598 vector Substances 0.000 claims description 93
- 238000012545 processing Methods 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 41
- 238000006467 substitution reaction Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 2
- 241000287462 Phalacrocorax carbo Species 0.000 claims 2
- 230000007246 mechanism Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009897 systematic effect Effects 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
- 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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
ネーブル信号を提供する。図17及び18の出力1788及び1889は、それぞれ64ビットベクトルSRC0及びSRC1の4つのレーンである。これらの出力は、一般的に、置換された出力1639及び1640として図16に表されるが、これは、各4要素ベクトルの1つの要素が如何にしてSIMD回路にレーン毎に供給されるか示す。
202 置換ユニット
203 実行ユニット
Claims (42)
- コンピュータ用のデータ処理ユニットであって、
レジスタファイルと、
単一のデータアクセス命令に基づき、前記レジスタファイルにおける少なくとも1つのデータオペランドにアクセス可能なレジスタアクセス・置換ユニットであって、前記単一のデータアクセス命令の置換演算コード部に基づき、前記アクセスされたデータオペランドを選択的に置換するように動作可能な置換回路を含む前記レジスタアクセス・置換ユニットと、
前記レジスタアクセス・置換ユニットと直列に配置されたデータ実行ユニットであって、前記単一のデータアクセス命令の実行演算コード部に基づき、前記選択的に置換されたデータオペランドに対して演算を行うように動作可能な前記データ実行ユニットと、
が含まれるデータ処理ユニット。 - 請求項1に記載のデータ処理ユニットであって、前記レジスタアクセス・置換ユニットには、前記レジスタファイルと前記実行ユニットとの間に接続されたデコーダレジスタファイル読み出し段が含まれるデータ処理ユニット。
- 請求項2に記載のデータ処理ユニットであって、前記レジスタアクセス・置換ユニットには、前記デコーダレジスタファイル読み出し段と前記実行ユニットとの間に接続された少なくとも1つの多重化装置段が含まれるデータ処理ユニット。
- 請求項3に記載のデータ処理ユニットであって、置換制御入力が、前記多重化装置段に供給されるデータ処理ユニット。
- 請求項2に記載のデータ処理ユニットであって、前記レジスタアクセス・置換ユニットには、更に、前記デコーダレジスタファイル読み出し段と前記実行ユニットとの間に接続された列多重化装置段が含まれるデータ処理ユニット。
- 請求項5に記載のデータ処理ユニットであって、置換制御入力が、前記列多重化装置段に供給されるデータ処理ユニット。
- 請求項2に記載のデータ処理ユニットであって、前記レジスタアクセス・置換ユニットには、前記デコーダレジスタファイル読み出し段と前記実行ユニットとの間に接続されたクロスバー多重化装置段が含まれるデータ処理ユニット。
- 請求項7に記載のデータ処理ユニットであって、置換制御入力が、前記クロスバー多重化装置段に供給されるデータ処理ユニット。
- 請求項2に記載のデータ処理ユニットであって、置換制御入力が、前記デコーダレジスタファイル読み出し段に供給されるデータ処理ユニット。
- 請求項1に記載のデータ処理ユニットであって、前記実行ユニットの出力と前記レジスタアクセス・置換ユニットの入力との間に接続されたバイパス回路が含まれるデータ処理ユニット。
- 請求項1に記載のデータ処理ユニットであって、第1及び第2レジスタアクセス・置換回路が含まれるデータ処理ユニット。
- 請求項11に記載のデータ処理ユニットであって、前記第1レジスタアクセス・置換回路は、第1及び第2オペランドにアクセスするように、また、ロール、ソート、シャフルの1つ又は複数から選択された置換を行うように構成されるデータ処理ユニット。
- 請求項11に記載のデータ処理ユニットであって、前記第2レジスタアクセス・置換回路は、少なくとも1つのオペランドにアクセスするように、また、ブロードキャスト置換を行うように構成されるデータ処理ユニット。
- 請求項11に記載のデータ処理ユニットであって、前記第1及び第2レジスタアクセス・置換回路には、各々、
(i)前記レジスタファイルと前記実行ユニットとの間に接続されたデコーダレジスタファイル読み出し段と、
(ii)前記デコーダレジスタファイル読み出し段と前記実行ユニットとの間に接続された少なくとも1つの多重化装置段と、の内の1つ又は複数が含まれるデータ処理ユニット。 - 請求項14に記載のデータ処理ユニットであって、前記少なくとも1つの多重化装置段には、
(i)前記デコーダレジスタファイル読み出し段と実行ユニットとの間に接続された列多重化装置段と、
(ii)前記列多重化装置段と前記実行ユニットとの間に接続されたクロスバー多重化装置段と、の内の1つ又は複数が含まれるデータ処理ユニット。 - 請求項1に記載のデータ処理ユニットであって、前記実行ユニットには、単一命令複数データ回路が含まれるデータ処理ユニット。
- コンピュータプロセッサ用のデータ処理ユニットであって、直列接続で、レジスタアクセスユニットと、ベクトル置換回路と、少なくとも1つの実行ユニットと、が含まれ、本データ処理ユニットには、更に、単一の命令に応答して、少なくとも1つのベクトルオペランドへのアクセスを制御するように、少なくとも1つのベクトルオペランドを選択的に置換するように、また、少なくとも1つの更なる演算を実行するように動作可能な復号化ユニットが含まれるデータ処理ユニット。
- コンピュータプロセッサ用のデータ処理ユニットを動作させる方法であって、
コンピュータプロセッサのレジスタファイルからアクセスされる少なくとも1つのデータオペランドに対して、単一のデータアクセス命令に応答して、前記コンピュータプロセッサのデータ処理ユニットにより、置換演算を行う段階であって、前記置換演算が、(i)前記少なくとも1つのデータオペランドを得るためにレジスタにアクセスするステップと、(ii)前記少なくとも1つのデータオペランドに対してデータ処理動作を実行するステップと、直列に行われる前記段階と、
単一のデータアクセス命令に基づき、レジスタにアクセスするステップと直列に、前記コンピュータプロセッサのデータ処理ユニットにより、置換演算を行う段階と、が含まれる方法。 - 請求項18に記載の方法であって、少なくとも1つのデータオペランドは単一のベクトル・レジスタ・オペランドを含み、前記置換演算が、該単一のベクトル・レジスタ・オペランドに対して行われる方法。
- 請求項18に記載の方法であって、置換演算が、複数のベクトル・レジスタ・オペランドに対して行われる方法。
- 請求項18に記載の方法であって、更に、
単一命令のデータオペランドに対して多数の連続データ処理動作を行う段階が含まれる方法。 - 請求項18に記載の方法であって、前記置換演算を行う段階は、データ処理動作を実行するステップに先行する方法。
- 請求項18に記載の方法であって、前記置換演算を行う段階は、データ処理動作を実行するステップに続く方法。
- 請求項18に記載の方法であって、第1置換演算は、データ処理動作の実行に先行し、第2置換演算は、データ処理動作の実行に続く方法。
- 請求項18に記載の方法であって、更に、
前記命令の演算コード部に基づき、複数の置換演算タイプから置換演算のタイプを選択する段階が含まれる方法。 - 請求項18に記載の方法であって、更に、算術演算、論理演算、後続の置換演算、及びプロセッサメモリ読み出し又は書き込み動作から、実行されるデータ処理動作を選択する段階が含まれる方法。
- 請求項18に記載の方法であって、更に、
複数の置換演算タイプから選択された置換演算のタイプを少なくとも部分的に決定するために一組の置換制御入力を用いる段階が含まれる方法。 - 請求項27に記載の方法であって、利用可能な複数の置換演算タイプには、ロール置換、ソート置換、シャフル置換、ブロードキャスト置換、選択置換、及び他のタイプの置換演算から選択された1つ又は複数が含まれる方法。
- 請求項18に記載の方法であって、更に、
データ処理命令の演算コード部に基づき、一組の置換制御入力の値を決定する段階が含まれる方法。 - 請求項18に記載の方法であって、前記データ処理ユニットは、単一命令複数データ実行を行う方法。
- 請求項18に記載の方法であって、前記置換及びデータ処理動作を行う段階には、高速フーリエ変換、ビタビ符号化、ターボ符号化、有限インパルス応答フィルタアルゴリズム、他の通信アルゴリズムからなるグループからのアルゴリズムの少なくとも一部を行う段階が含まれる方法。
- 請求項18に記載の方法であって、置換演算を行う段階は、第1タイプの置換演算を、第1ソースオペランド対に対して行う段階と、第2タイプの置換演算を、第2ソースオペランドに対して行う段階とを含む方法。
- 請求項32に記載の方法であって、第1タイプの置換演算を行う段階には、ロール置換及びソート置換からなるグループからの置換を行う段階が含まれる方法。
- 請求項32に記載の方法であって、第2タイプの置換演算を行う段階には、ブロードキャスト置換を行う段階が含まれる方法。
- 請求項32に記載の方法であって、第1及び第2タイプの置換演算の1つ又は複数を行う段階には、64ビットデータレジスタソース引数を用いる段階が含まれる方法。
- 請求項35に記載の方法であって、第1タイプの置換演算を行う段階によって、2つの64ビットソース値から単一の64ビット結果を形成するためのロール演算を行うことが可能であり、64ビット結果は、整数の16ビット要素によってロールされたソース値に対応する方法。
- 請求項35に記載の方法であって、第1タイプの置換演算を行う段階によって、2つの64ビット値から単一の64ビット結果を形成するためのソート演算を行うことが可能であり、64ビット結果は、最上位又は最下位64ビットソート結果として選択可能である方法。
- 請求項35に記載の方法であって、第1タイプの置換演算を行う段階には、各々整数の16ビット要素からなる2つのベクトルをインターリーブするためのシャフル演算を行う段階が含まれる方法。
- 請求項35に記載の方法であって、前記整数の16ビット要素は、2の整数乗である方法。
- 請求項35に記載の方法であって、第2タイプの置換演算を行う段階によって、64ビット結果において複数の16ビットレーンに渡って16ビット半ワードを繰り返すことが可能なブロードキャスト演算を行い得る方法。
- コンピュータ用のデータ処理ユニットであって、
レジスタファイルと、
単一のデータアクセス命令に基づき、前記レジスタファイルにおける少なくとも1つのデータオペランドにアクセス可能なレジスタアクセス・置換ユニットであって、前記単一のデータアクセス命令の置換演算コード部に基づき、前記アクセスされた少なくとも1つのデータオペランドを選択的に置換するように動作可能な第1及び第2レジスタアクセス・置換回路を含み、前記第1レジスタアクセス・置換回路は、第1及び第2オペランドにアクセスするように、また、ロール、ソート、シャフルの1つ又は複数から選択された置換を行うように構成され、前記第2レジスタアクセス・置換回路は、少なくとも1つのオペランドにアクセスするように、また、ブロードキャスト置換を行うように構成される、前記レジスタアクセス・置換ユニットと、
前記レジスタアクセス・置換ユニットと直列に配置されたデータ実行ユニットであって、前記単一のデータアクセス命令の実行演算コード部に基づき、前記選択的に置換されたデータオペランドまたは複数のオペランドに対して演算を行うように動作可能な前記データ実行ユニットと、
が含まれるデータ処理ユニット。 - コンピュータプロセッサ用のデータ処理ユニットを動作させる方法であって、
コンピュータプロセッサのレジスタファイルからアクセスされる少なくとも1つのデータオペランドに対して、単一のデータアクセス命令に応答して、前記コンピュータプロセッサのデータ処理ユニットにより、置換演算を行う段階であって、前記置換演算が、(i)前記少なくとも1つのデータオペランドを得るためにレジスタにアクセスするステップと、(ii)前記少なくとも1つのデータオペランドに対してデータ処理動作を実行するステップと、直列に行われる前記段階と、
単一のデータアクセス命令に基づき、レジスタにアクセスするステップと直列に、前記コンピュータプロセッサのデータ処理ユニットにより、置換演算を行う段階と、が含まれ、
第1タイプの置換演算は、第1ソースオペランド対に対して行われ、第2タイプの置換演算は、第2ソースオペランドに対して行われる方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/102,266 US7933405B2 (en) | 2005-04-08 | 2005-04-08 | Data access and permute unit |
US11/102,266 | 2005-04-08 | ||
PCT/GB2006/001265 WO2006106342A2 (en) | 2005-04-08 | 2006-04-06 | Data access and permute unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008535115A JP2008535115A (ja) | 2008-08-28 |
JP5047944B2 true JP5047944B2 (ja) | 2012-10-10 |
Family
ID=36577535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008504843A Active JP5047944B2 (ja) | 2005-04-08 | 2006-04-06 | データアクセス及び置換ユニット |
Country Status (9)
Country | Link |
---|---|
US (1) | US7933405B2 (ja) |
EP (1) | EP1866744A2 (ja) |
JP (1) | JP5047944B2 (ja) |
KR (1) | KR20070118623A (ja) |
CN (2) | CN103744639A (ja) |
BR (1) | BRPI0609742A2 (ja) |
CA (1) | CA2600744A1 (ja) |
TW (1) | TWI476681B (ja) |
WO (1) | WO2006106342A2 (ja) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783862B2 (en) * | 2006-08-07 | 2010-08-24 | International Characters, Inc. | Method and apparatus for an inductive doubling architecture |
US20080079712A1 (en) * | 2006-09-28 | 2008-04-03 | Eric Oliver Mejdrich | Dual Independent and Shared Resource Vector Execution Units With Shared Register File |
JP2009048532A (ja) * | 2007-08-22 | 2009-03-05 | Nec Electronics Corp | マイクロプロセッサ |
US20090106526A1 (en) * | 2007-10-22 | 2009-04-23 | David Arnold Luick | Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing |
US8169439B2 (en) * | 2007-10-23 | 2012-05-01 | International Business Machines Corporation | Scalar precision float implementation on the “W” lane of vector unit |
US20090150648A1 (en) * | 2007-12-06 | 2009-06-11 | Eric Oliver Mejdrich | Vector Permute and Vector Register File Write Mask Instruction Variant State Extension for RISC Length Vector Instructions |
US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
US8356160B2 (en) * | 2008-01-15 | 2013-01-15 | International Business Machines Corporation | Pipelined multiple operand minimum and maximum function |
GB2456775B (en) * | 2008-01-22 | 2012-10-31 | Advanced Risc Mach Ltd | Apparatus and method for performing permutation operations on data |
US7904700B2 (en) * | 2008-03-10 | 2011-03-08 | International Business Machines Corporation | Processing unit incorporating special purpose register for use with instruction-based persistent vector multiplexer control |
US7904699B2 (en) * | 2008-03-10 | 2011-03-08 | International Business Machines Corporation | Processing unit incorporating instruction-based persistent vector multiplexer control |
US7814303B2 (en) * | 2008-10-23 | 2010-10-12 | International Business Machines Corporation | Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively |
US20110072236A1 (en) * | 2009-09-20 | 2011-03-24 | Mimar Tibet | Method for efficient and parallel color space conversion in a programmable processor |
US8868885B2 (en) * | 2010-11-18 | 2014-10-21 | Ceva D.S.P. Ltd. | On-the-fly permutation of vector elements for executing successive elemental instructions |
US20120278591A1 (en) * | 2011-04-27 | 2012-11-01 | Advanced Micro Devices, Inc. | Crossbar switch module having data movement instruction processor module and methods for implementing the same |
KR20120134549A (ko) | 2011-06-02 | 2012-12-12 | 삼성전자주식회사 | Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법 |
KR101918464B1 (ko) * | 2011-09-14 | 2018-11-15 | 삼성전자 주식회사 | 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치 |
GB2497070B (en) * | 2011-11-17 | 2015-11-25 | Advanced Risc Mach Ltd | Cryptographic support instructions |
US10223111B2 (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 |
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 |
CN104126168B (zh) * | 2011-12-22 | 2019-01-08 | 英特尔公司 | 打包数据重新安排控制索引前体生成处理器、方法、系统及指令 |
US9489196B2 (en) | 2011-12-23 | 2016-11-08 | Intel Corporation | Multi-element instruction with different read and write masks |
WO2013095657A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
WO2013095601A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction for element offset calculation in a multi-dimensional array |
EP2798504A4 (en) * | 2011-12-29 | 2016-07-27 | Intel Corp | PROCESSORS HAVING FULLY CONNECTED INTERCONNECTIONS SHARED BY VECTORIAL CONFLICT INSTRUCTIONS AND PERMUTATION INSTRUCTIONS |
US8959275B2 (en) | 2012-10-08 | 2015-02-17 | International Business Machines Corporation | Byte selection and steering logic for combined byte shift and byte permute vector unit |
US9419792B2 (en) * | 2012-12-28 | 2016-08-16 | Intel Corporation | Instruction for accelerating SNOW 3G wireless security algorithm |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US9977676B2 (en) * | 2013-11-15 | 2018-05-22 | Qualcomm Incorporated | Vector processing engines (VPEs) employing reordering circuitry in data flow paths between execution units and vector data memory to provide in-flight reordering of output vector data stored to vector data memory, and related vector processor systems and methods |
US9792118B2 (en) * | 2013-11-15 | 2017-10-17 | Qualcomm Incorporated | Vector processing engines (VPEs) employing a tapped-delay line(s) for providing precision filter vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods |
US9684509B2 (en) * | 2013-11-15 | 2017-06-20 | Qualcomm Incorporated | Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods |
US9619227B2 (en) * | 2013-11-15 | 2017-04-11 | Qualcomm Incorporated | Vector processing engines (VPEs) employing tapped-delay line(s) for providing precision correlation / covariance vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods |
US9880845B2 (en) | 2013-11-15 | 2018-01-30 | Qualcomm Incorporated | Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods |
US10061581B2 (en) | 2014-01-31 | 2018-08-28 | Qualcomm Incorporated | On-the-fly conversion during load/store operations in a vector processor |
US9766888B2 (en) * | 2014-03-28 | 2017-09-19 | Intel Corporation | Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements |
US9348595B1 (en) | 2014-12-22 | 2016-05-24 | Centipede Semi Ltd. | Run-time code parallelization with continuous monitoring of repetitive instruction sequences |
US9785437B2 (en) | 2014-12-23 | 2017-10-10 | Intel Corporation | Method and apparatus for performing a vector bit reversal and crossing |
US9135015B1 (en) | 2014-12-25 | 2015-09-15 | Centipede Semi Ltd. | Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction |
US9996350B2 (en) | 2014-12-27 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array |
US9208066B1 (en) * | 2015-03-04 | 2015-12-08 | Centipede Semi Ltd. | Run-time code parallelization with approximate monitoring of instruction sequences |
US10296350B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences |
US10296346B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences based on pre-monitoring |
US9715390B2 (en) | 2015-04-19 | 2017-07-25 | Centipede Semi Ltd. | Run-time parallelization of code execution based on an approximate register-access specification |
US10459731B2 (en) * | 2015-07-20 | 2019-10-29 | Qualcomm Incorporated | Sliding window operation |
GB2540939B (en) * | 2015-07-31 | 2019-01-23 | Advanced Risc Mach Ltd | An apparatus and method for performing a splice operation |
US20170177355A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instruction and Logic for Permute Sequence |
US10338920B2 (en) | 2015-12-18 | 2019-07-02 | Intel Corporation | Instructions and logic for get-multiple-vector-elements operations |
US20170177352A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Lane-Based Strided Store Operations |
KR102659495B1 (ko) * | 2016-12-02 | 2024-04-22 | 삼성전자주식회사 | 벡터 프로세서 및 그 제어 방법 |
US9959247B1 (en) | 2017-02-17 | 2018-05-01 | Google Llc | Permuting in a matrix-vector processor |
GB2564853B (en) * | 2017-07-20 | 2021-09-08 | Advanced Risc Mach Ltd | Vector interleaving in a data processing apparatus |
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
US10831502B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Migration of partially completed instructions |
US10831503B2 (en) * | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Saving and restoring machine state between multiple executions of an instruction |
US10831478B2 (en) * | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Sort and merge instruction for a general-purpose processor |
US10970072B2 (en) * | 2018-12-21 | 2021-04-06 | Intel Corporation | Systems and methods to transpose vectors on-the-fly while loading from memory |
KR102035792B1 (ko) * | 2019-06-10 | 2019-10-23 | 한화시스템(주) | Fpga를 이용한 2차원 슬라이딩 테스트 윈도를 생성하기 위한 장치 및 그 방법 |
US11385897B2 (en) * | 2019-10-01 | 2022-07-12 | Marvell Asia Pte, Ltd. | Merge execution unit for microinstructions |
CN111782148B (zh) * | 2020-06-30 | 2023-09-05 | 中国工商银行股份有限公司 | 数据存储控制方法和装置、以及电子设备和存储介质 |
US20210216318A1 (en) * | 2020-08-28 | 2021-07-15 | Martin Langhammer | Vector Processor Architectures |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175862A (en) * | 1989-12-29 | 1992-12-29 | Supercomputer Systems Limited Partnership | Method and apparatus for a special purpose arithmetic boolean unit |
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5471628A (en) * | 1992-06-30 | 1995-11-28 | International Business Machines Corporation | Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode |
WO1994003860A1 (en) * | 1992-08-07 | 1994-02-17 | Thinking Machines Corporation | Massively parallel computer including auxiliary vector processor |
US5848286A (en) * | 1994-03-29 | 1998-12-08 | Cray Research, Inc. | Vector word shift by vo shift count in vector supercomputer processor |
FR2723223B1 (fr) * | 1994-07-29 | 1996-08-30 | Sgs Thomson Microelectronics | Procede de brouillage numerique et application a un circuit programmable |
US5513366A (en) * | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
US5887183A (en) * | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
US5815572A (en) * | 1995-08-31 | 1998-09-29 | Lucent Technologies Inc. | Video scrambling |
US5838984A (en) * | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
KR100291383B1 (ko) * | 1996-11-18 | 2001-09-17 | 윤종용 | 디지털신호처리를위한명령을지원하는모듈계산장치및방법 |
US5991865A (en) * | 1996-12-31 | 1999-11-23 | Compaq Computer Corporation | MPEG motion compensation using operand routing and performing add and divide in a single instruction |
US5922066A (en) * | 1997-02-24 | 1999-07-13 | Samsung Electronics Co., Ltd. | Multifunction data aligner in wide data width processor |
US5881307A (en) * | 1997-02-24 | 1999-03-09 | Samsung Electronics Co., Ltd. | Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor |
CA2302784A1 (en) * | 1997-09-17 | 1999-03-25 | Frank C. Luyster | Improved block cipher method |
TW364269B (en) * | 1998-01-02 | 1999-07-11 | Winbond Electronic Corp | Discreet cosine transform/inverse discreet cosine transform circuit |
US6223320B1 (en) * | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US6446190B1 (en) * | 1998-03-12 | 2002-09-03 | Bops, Inc. | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor |
US5996057A (en) * | 1998-04-17 | 1999-11-30 | Apple | Data processing system and method of permutation with replication within a vector register file |
US6334176B1 (en) * | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6178500B1 (en) * | 1998-06-25 | 2001-01-23 | International Business Machines Corporation | Vector packing and saturation detection in the vector permute unit |
US6327651B1 (en) * | 1998-09-08 | 2001-12-04 | International Business Machines Corporation | Wide shifting in the vector permute unit |
US6411652B1 (en) * | 1998-10-23 | 2002-06-25 | International Business Machines Corp. | Motion estimation |
FR2785406B1 (fr) * | 1998-10-30 | 2004-09-10 | Thomson Marconi Sonar Sas | Memoire a acces vectoriel |
FR2785741B1 (fr) * | 1998-11-09 | 2001-01-26 | Canon Kk | Dispositif et procede de codage et d'entrelacement pour des turbocodes series ou hybrides |
US6578061B1 (en) * | 1999-01-19 | 2003-06-10 | Nippon Telegraph And Telephone Corporation | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon |
US6311280B1 (en) * | 1999-02-22 | 2001-10-30 | Nband Communications | Low-power memory system with incorporated vector processing |
US6557096B1 (en) * | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
US6446195B1 (en) * | 2000-01-31 | 2002-09-03 | Intel Corporation | Dyadic operations instruction processor with configurable functional blocks |
JP3515720B2 (ja) * | 1999-11-22 | 2004-04-05 | 松下電器産業株式会社 | ビタビ復号器 |
US20010034754A1 (en) * | 2000-03-17 | 2001-10-25 | Elwahab Amgad Mazen | Device, system and method for providing web browser access and control of devices on customer premise gateways |
US6718456B1 (en) * | 2000-06-02 | 2004-04-06 | Sun Microsystems, Inc. | Parallel pack instruction method and apparatus |
WO2002010914A1 (en) * | 2000-07-28 | 2002-02-07 | Delvalley Limited | A method of processing data |
JP3779540B2 (ja) * | 2000-11-08 | 2006-05-31 | 株式会社ルネサステクノロジ | 複数レジスタ指定が可能なsimd演算方式 |
US7237097B2 (en) * | 2001-02-21 | 2007-06-26 | Mips Technologies, Inc. | Partial bitwise permutations |
US6922716B2 (en) * | 2001-07-13 | 2005-07-26 | Motorola, Inc. | Method and apparatus for vector processing |
DE10138650A1 (de) * | 2001-08-07 | 2003-02-27 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Verschlüsseln eines diskreten Signals sowie Verfahren und Vorrichtung zur Entschlüsselung |
US7142670B2 (en) * | 2001-08-14 | 2006-11-28 | International Business Machines Corporation | Space-efficient, side-channel attack resistant table lookups |
US6839828B2 (en) * | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US6931511B1 (en) * | 2001-12-31 | 2005-08-16 | Apple Computer, Inc. | Parallel vector table look-up with replicated index element vector |
US7055018B1 (en) * | 2001-12-31 | 2006-05-30 | Apple Computer, Inc. | Apparatus for parallel vector table look-up |
US7376812B1 (en) * | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US6944744B2 (en) * | 2002-08-27 | 2005-09-13 | Advanced Micro Devices, Inc. | Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor |
GB2394571B (en) * | 2002-10-23 | 2005-08-10 | Motorola Inc | Arrangement system and method for vector permutation in single-instruction multiple-data microprocessors |
US20040128485A1 (en) * | 2002-12-27 | 2004-07-01 | Nelson Scott R. | Method for fusing instructions in a vector processor |
JP3896087B2 (ja) * | 2003-01-28 | 2007-03-22 | 松下電器産業株式会社 | コンパイラ装置およびコンパイル方法 |
US7126991B1 (en) * | 2003-02-03 | 2006-10-24 | Tibet MIMAR | Method for programmable motion estimation in a SIMD processor |
US7321910B2 (en) * | 2003-04-18 | 2008-01-22 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7532722B2 (en) * | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7844053B2 (en) * | 2003-04-18 | 2010-11-30 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7542566B2 (en) * | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US7529367B2 (en) * | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent cipher feedback mode cryptographic functions |
US7392400B2 (en) * | 2003-04-18 | 2008-06-24 | Via Technologies, Inc. | Microprocessor apparatus and method for optimizing block cipher cryptographic functions |
US7539876B2 (en) * | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
US7900055B2 (en) * | 2003-04-18 | 2011-03-01 | Via Technologies, Inc. | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms |
US7925891B2 (en) * | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7529368B2 (en) * | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent output feedback mode cryptographic functions |
US7502943B2 (en) * | 2003-04-18 | 2009-03-10 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results |
US7310724B2 (en) * | 2003-06-30 | 2007-12-18 | Intel Corporation | Parallel execution of enhanced EFI based BIOS drivers on a multi-processor or hyper-threading enabled platform |
US7577824B2 (en) * | 2003-09-08 | 2009-08-18 | Altera Corporation | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution |
US7124318B2 (en) * | 2003-09-18 | 2006-10-17 | International Business Machines Corporation | Multiple parallel pipeline processor having self-repairing capability |
US7313788B2 (en) * | 2003-10-29 | 2007-12-25 | International Business Machines Corporation | Vectorization in a SIMdD DSP architecture |
US7014122B2 (en) * | 2003-12-24 | 2006-03-21 | International Business Machines Corporation | Method and apparatus for performing bit-aligned permute |
US7240236B2 (en) * | 2004-03-23 | 2007-07-03 | Archivas, Inc. | Fixed content distributed data storage using permutation ring encoding |
US20050226337A1 (en) * | 2004-03-31 | 2005-10-13 | Mikhail Dorojevets | 2D block processing architecture |
US7302627B1 (en) * | 2004-04-05 | 2007-11-27 | Mimar Tibet | Apparatus for efficient LFSR calculation in a SIMD processor |
US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
US7284092B2 (en) * | 2004-06-24 | 2007-10-16 | International Business Machines Corporation | Digital data processing apparatus having multi-level register file |
US7398347B1 (en) * | 2004-07-14 | 2008-07-08 | Altera Corporation | Methods and apparatus for dynamic instruction controlled reconfigurable register file |
US7725678B2 (en) * | 2005-02-17 | 2010-05-25 | Texas Instruments Incorporated | Method and apparatus for producing an index vector for use in performing a vector permute operation |
US20060190700A1 (en) * | 2005-02-22 | 2006-08-24 | International Business Machines Corporation | Handling permanent and transient errors using a SIMD unit |
US7681187B2 (en) * | 2005-03-31 | 2010-03-16 | Nvidia Corporation | Method and apparatus for register allocation in presence of hardware constraints |
-
2005
- 2005-04-08 US US11/102,266 patent/US7933405B2/en active Active
-
2006
- 2006-04-06 CN CN201310617531.0A patent/CN103744639A/zh active Pending
- 2006-04-06 JP JP2008504843A patent/JP5047944B2/ja active Active
- 2006-04-06 KR KR1020077022857A patent/KR20070118623A/ko not_active Application Discontinuation
- 2006-04-06 EP EP06726668A patent/EP1866744A2/en not_active Withdrawn
- 2006-04-06 BR BRPI0609742-1A patent/BRPI0609742A2/pt not_active IP Right Cessation
- 2006-04-06 WO PCT/GB2006/001265 patent/WO2006106342A2/en not_active Application Discontinuation
- 2006-04-06 CA CA002600744A patent/CA2600744A1/en not_active Abandoned
- 2006-04-06 CN CNA2006800112405A patent/CN101208658A/zh active Pending
- 2006-04-07 TW TW095112369A patent/TWI476681B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2006106342A2 (en) | 2006-10-12 |
TWI476681B (zh) | 2015-03-11 |
US7933405B2 (en) | 2011-04-26 |
TW200701059A (en) | 2007-01-01 |
JP2008535115A (ja) | 2008-08-28 |
CN103744639A (zh) | 2014-04-23 |
WO2006106342A3 (en) | 2007-03-15 |
EP1866744A2 (en) | 2007-12-19 |
BRPI0609742A2 (pt) | 2011-10-18 |
CN101208658A (zh) | 2008-06-25 |
KR20070118623A (ko) | 2007-12-17 |
US20060227966A1 (en) | 2006-10-12 |
WO2006106342A8 (en) | 2007-11-29 |
CA2600744A1 (en) | 2006-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5047944B2 (ja) | データアクセス及び置換ユニット | |
EP1735697B1 (en) | Apparatus and method for asymmetric dual path processing | |
US8484442B2 (en) | Apparatus and method for control processing in dual path processor | |
US7761694B2 (en) | Execution unit for performing shuffle and other operations | |
US11397583B2 (en) | Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor | |
US20230325189A1 (en) | Forming Constant Extensions in the Same Execute Packet in a VLIW Processor | |
CA2327606A1 (en) | Count/address generation circuitry | |
US9104426B2 (en) | Processor architecture for processing variable length instruction words | |
EP1735699B1 (en) | Apparatus and method for dual data path processing | |
KR20070022239A (ko) | 비대칭 듀얼 경로 프로세싱용 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120424 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120518 |
|
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: 20120619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120718 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5047944 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |