JP2008524721A - Data部および関連するカウンタを備えるエントリを有するハードウェア・スタック - Google Patents
Data部および関連するカウンタを備えるエントリを有するハードウェア・スタック Download PDFInfo
- Publication number
- JP2008524721A JP2008524721A JP2007546994A JP2007546994A JP2008524721A JP 2008524721 A JP2008524721 A JP 2008524721A JP 2007546994 A JP2007546994 A JP 2007546994A JP 2007546994 A JP2007546994 A JP 2007546994A JP 2008524721 A JP2008524721 A JP 2008524721A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- value
- counter
- data
- stack pointer
- 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.)
- Granted
Links
Images
Classifications
-
- 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/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
- G06F7/785—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Communication Control (AREA)
Abstract
Description
0100,1000,1000,1000,0010
の後において、
0000または0010だけがスタック1100にプッシュすることが許可されるであろう(つまり、0100と1000は既にスタックに格納されるので)。0010は、スタック1100にプッシュされた最後の値と等しいので、許されることに注意すること。このような状況で、TOSポインタ1150は、n−1より大きい値に達しないであろう。すなわち、スタック1100は、新しい値が格納することができるエントリを使い果たさないであろう。
DO{
命令のシーケンス
}WHILE<条件>
ここで、命令のシーケンスは、「条件が真」である限り実行されるであろう。しかしながら、このような命令がSIMD風に実行される場合、異なるチャネルは、異なる結果の<条件>テストを導くかもしれない。例えば、Varlが0でない限り、命令のシーケンスを実行すべきであるように命令のシーケンスを定義してもよい(また、命令のシーケンスがVarlを適切に操作してもよい)。この場合、Varlは1つのチャネルに対しては0であり、他のチャネルに対しては非0となってもよい。
第1の一組の命令
DO{
第2の一組の命令
}WHILE<第2の条件>
第3の一組の命令
}WHILE<第1の条件>
この場合、第1の条件が真である間、第1および第3の一組の命令は適切なチャネルのために実行される一方、第1および第2の条件の両方が真である間、第2の一組の命令のみが実行される。
第1の一組の命令
ELSE
第2の一組の命令
END IF
ここで、「条件」が真であるとき、第1の一組の命令が実行され、「条件」が偽であるとき、第2の一組の命令が実行される。しかしながら、このような命令がデータの多重チャネルに対して同時に実行される場合、異なるチャネルは、異なる結果を導出するかもしれない。すなわち、第1の一組の命令は、いくつかのチャネルに対して実行する必要がある一方、第2の一組の命令は、他のチャネルに対して実行する必要がある。
第1の一組の命令
IF<第2の条件>
第2の一組の命令
END IF
第3の一組の命令
END IF
この場合、「第1の条件」が真であるとき、第1および第3の一組の命令が実行され、「第1の条件」および「第2の条件」の両方が真であるとき、第3の一組の命令のみが実行される。
if(data==TOS->data_bit_field){
if(count+TOS->count<=MAX_COUNT){
TOS->count+=count;
}else{
count=MAX_COUNT-TOS->count;
TOS->count=MAX_COUNT;
TOS++;
TOS->data=data;
TOS->count=count;
}
}else{
TOS++;
TOS->data=data;
TOS->count=count;
}
}
この場合、プッシュされるデータ値は、TOSポインタによって示されるエントリのデータ部の中に保持されたものと比較される。TOSデータおよびプッシュされるデータがビットごとに同一の場合、TOSであると指定されたエントリのカウント値は、プッシュされるデータのコピー数だけ増やされる。2つのデータ値がビットごとに異なる場合、新しいTOSスタック・エントリがTOSポインタを増やすことによりまず選択される。その後、プッシュされるデータは、新しいTOSエントリに格納され、関連するカウンタはプッシュされるデータのコピー数に設定される。
int retValue=TOS->data_bit_field;
int residual=count;
while(residual>0){
if(resudual>=TOS->count){
residual-=TOS->count;
TOS->count=0;
TOS--;
}else{
TOS->count-=residual;
}
}
return retValue;
}
この場合、呼出し人は、1つの動作で行ないたいポップ数を指定する。TOSポインタによって示されるエントリのデータ値が呼出し人に戻される。TOSエントリの関連するカウント・フィールドは、呼出し人によって指定されたポップ数だけ減じられる。いくつかのケースでは、ポップ・カウントは、現在のTOSカウント・フィールドに保持されたカウントを超過することがある。この場合、そのカウントは、消費されるまで、連続するスタック・エントリに亘って適用される。
Claims (24)
- n個のエントリを有するハードウェア・スタックにプッシュされる新しい値を決定する段階であって、nは1より大きい整数であり、各エントリはデータ部および関連するカウンタを含む、段階と、
前記新しい値がスタック・ポインタの現在のトップに関連する前記エントリの前記データ部と等しい場合、そのエントリに関連する前記カウンタを増分する段階と、
前記新しい値がスタック・ポインタの前記現在のトップに関連する前記データ部に等しくない場合、前記新しい値を次のエントリのデータ部に格納し、スタック・ポインタの前記現在のトップを増分する段階と、
を含むことを特徴とする方法。 - 前記新しい値がスタック・ポインタの前記現在のトップに関連する前記データ部と等しい場合、前記カウンタは、1だけ増分されることを特徴とする請求項1記載の方法。
- 前記新しい値がスタック・ポインタの前記現在のトップに関連する前記データ部に等しくない場合、スタック・ポインタの前記現在のトップは、1だけ増分されることを特徴とする請求項1記載の方法。
- 前記新しい値は、1組のn個の可能値から選択されることを特徴とする請求項1記載の方法。
- 前記データ部は、nビット幅であることを特徴とする請求項4記載の方法。
- 前記新しい値は、スタック・ポインタの前記現在のトップに関連する前記データ部に格納された前記値以外の前記ハードウェアにプッシュされた先の値と等しくすることができないことを特徴とする請求項5記載の方法。
- 前記ハードウェア・スタックにプッシュされた値中のビットは、(i)前記ハードウェア・スタックにプッシュされた直近の値と比較すると0から1へ変化できるが、1から0へ変化できない、あるいは、(ii)前記ハードウェア・スタックにプッシュされた直近の値と比較すると1から0へ変化できるが、0から1へ変化できないことを特徴とする請求項6記載の方法。
- 前記ハードウェア・スタックにプッシュされる第2の値を決定する段階と、
第2の値は、スタック・ポインタの前記現在のトップに関連する前記エントリの前記データ部と等しいことを決定する段階と、
スタック・ポインタの前記現在のトップに関連するその前記カウンタは、最大値に等しいことを決定する段階と、
前記第2の値を次のエントリのデータ部に格納し、前記次のエントリに関連するカウンタを増分するかあるいは初期化し、スタック・ポインタの前記現在のトップを増分する段階と、
をさらに含むことを特徴とする請求項1記載の方法。 - 前記ハードウェア・スタックから値を取り出すことを決定する段階と、
スタック・ポインタの前記現在のトップに関連する前記データ部に格納された前記値を引き出す段階と、
スタック・ポインタの前記現在のトップに関連する前記カウンタを減分する段階と、
をさらに含むことを特徴とする請求項1記載の方法。 - スタック・ポインタの前記現在のトップに関連する前記カウンタが最小値と等しいことを決定する段階と、
スタック・ポインタの前記現在のトップを減分する段階と、
をさらに含むことを特徴とする請求項9記載の方法。 - 前記ハードウェア・スタックは、nチャネル単一命令の多重データ実行エンジンのループ・スタックと関連していることを特徴とする請求項1記載の方法。
- 前記新しい値は、多重データ・オペランドに基づくループ命令の評価に関連していることを特徴とする請求項11記載の方法。
- 前記ハードウェア・スタックは、nチャネル単一命令の多重データ実行エンジンの条件付きスタックに関連していることを特徴とする請求項1記載の方法。
- 前記新しい値は、多重データ・オペランドに基づく条件付き命令の評価に関連していることを特徴とする請求項13記載の方法。
- n個のデータ・レジスタを有する後入れ先出しハードウェア・スタックであって、nは1より大きい整数である、後入れ先出しハードウェア・スタックと、
n個のカウンタ・レジスタであって、各カウンタ・レジスタは、前記データ・レジスタの1つに関連する、n個のカウンタ・レジスタと、
スタック・ポインタ・レジスタのトップと、
を含むことを特徴とする装置。 - 前記ハードウェア・スタックは、nチャネル単一命令の多重データ実行エンジンと関連していることを特徴とする請求項15記載の装置。
- nビットのループ・マスク・ベクトルをさらに含み、前記ループ・マスク・ベクトルは、前記実行エンジンの多重チャネルのためにループ命令に関連するループ情報を格納する、
ことを特徴とする請求項16記載の装置。 - nビットの条件付きマスク・ベクトルをさらに含み、前記条件付きマスク・ベクトルは、(i)IF命令条件、および、(ii)前記実行エンジンの多重チャネルに関連するデータ、の評価の結果を格納する、
ことを特徴とする請求項16記載の装置。 - 命令をその上に格納した格納媒体を含む物品であって、マシンによって前記命令は、
n個のエントリを有するハードウェア・スタックにプッシュされる値を決定する段階であって、nは1より大きい整数であり、各エントリは、nビットのデータ部、および、関連するカウンタを含む、段階と、
前記値がスタック・ポインタに関連する前記エントリの前記データ部と同じである場合、前記エントリに関連する前記カウンタを1だけ増分する段階と、
前記値が前記スタック・ポインタに関連する前記データ部と同じでない場合、次のエントリのデータ部に前記値を格納し、前記スタック・ポインタを1だけ増分する段階と、
を実行することを特徴とする物品。 - 前記命令は、
前記ハードウェア・スタックから値を取り出すことを決定する段階と、
前記スタック・ポインタに関連する前記データ部に格納された前記値を取り出す段階と、
前記スタック・ポインタに関連する前記カウンタを1だけ減分する段階と、
をさらに実行することを特徴とする請求項19記載の物品。 - 前記命令は、
前記スタック・ポインタに関連する前記カウンタが0であることを決定する段階と、
前記スタック・ポインタを1だけ減分する段階と、
をさらに実行することを特徴とする請求項19記載の物品。 - nチャネル単一命令の多重データ実行エンジンであって、nは1より大きい整数である、多重データ実行エンジンと、
後入れ先出しハードウェア・スタックであって、
n個のデータ・レジスタ、
n個のカウンタ・レジスタであって、各カウンタ・レジスタは、前記データ・レジスタの1つに関連する、n個のカウンタ・レジスタ、および、
スタック・ポインタ・レジスタのトップ、からなる後入れ先出しハードウェア・スタックと、
グラフィック・メモリ・ユニットと、
を含むことを特徴とするシステム。 - nビットのループ・マスク・ベクトルをさらに含み、前記ループ・マスク・ベクトルは、前記実行エンジンの多重チャネルのためにループ命令に関連するループ情報を格納することである、
ことを特徴とする請求項22記載のシステム。 - nビットの条件付きマスク・ベクトルをさらに含み、前記条件付きマスク・ベクトルは、(i)IF命令条件、および(、ii)前記実行エンジンの多重チャネルに関連するデータ、の評価の結果を格納する、
ことを特徴とする請求項22記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/012,688 | 2004-12-15 | ||
US11/012,688 US7434028B2 (en) | 2004-12-15 | 2004-12-15 | Hardware stack having entries with a data portion and associated counter |
PCT/US2005/045887 WO2006066188A2 (en) | 2004-12-15 | 2005-12-13 | Hardware stack having entries with a data portion and associated counter |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008524721A true JP2008524721A (ja) | 2008-07-10 |
JP4917045B2 JP4917045B2 (ja) | 2012-04-18 |
Family
ID=36390163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007546994A Expired - Fee Related JP4917045B2 (ja) | 2004-12-15 | 2005-12-13 | Data部および関連するカウンタを備えるエントリを有するハードウェア・スタック |
Country Status (7)
Country | Link |
---|---|
US (1) | US7434028B2 (ja) |
EP (1) | EP1839126B1 (ja) |
JP (1) | JP4917045B2 (ja) |
CN (1) | CN100498687C (ja) |
AT (1) | ATE477532T1 (ja) |
DE (1) | DE602005022938D1 (ja) |
WO (1) | WO2006066188A2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271959B2 (en) * | 2008-04-27 | 2012-09-18 | International Business Machines Corporation | Detecting irregular performing code within computer programs |
EP2328074A1 (en) * | 2009-11-27 | 2011-06-01 | STMicroelectronics S.r.l. | Queue management |
US8555259B2 (en) * | 2009-12-04 | 2013-10-08 | International Business Machines Corporation | Verifying function performance based on predefined count ranges |
GB2525314B (en) * | 2014-01-17 | 2016-02-24 | Imagination Tech Ltd | Stack pointer value prediction |
US20160179520A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Method and apparatus for variably expanding between mask and vector registers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6254359A (ja) * | 1985-06-24 | 1987-03-10 | ピクサ− | コンピユ−タ装置 |
JPH02112025A (ja) * | 1988-10-21 | 1990-04-24 | Hitachi Ltd | 情報処理装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
GB2178573B (en) | 1985-07-10 | 1989-01-05 | Nat Res Dev | A data stack for data processors |
US4988998A (en) * | 1989-09-05 | 1991-01-29 | Storage Technology Corporation | Data compression system for successively applying at least two data compression methods to an input data stream |
JPH07295812A (ja) * | 1994-04-27 | 1995-11-10 | Mitsubishi Electric Corp | 条件分岐制御方法および装置 |
US6028962A (en) * | 1996-05-10 | 2000-02-22 | Apple Computer, Inc. | System and method for variable encoding based on image content |
US5862376A (en) | 1996-06-24 | 1999-01-19 | Sun Microsystems, Inc. | System and method for space and time efficient object locking |
US5916305A (en) * | 1996-11-05 | 1999-06-29 | Shomiti Systems, Inc. | Pattern recognition in data communications using predictive parsers |
US6128654A (en) | 1997-02-14 | 2000-10-03 | Advanced Micro Devices, Inc. | Method and apparatus for transmitting multiple copies by replicating data identifiers |
US5903769A (en) * | 1997-03-31 | 1999-05-11 | Sun Microsystems, Inc. | Conditional vector processing |
US6079008A (en) | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
US6112288A (en) * | 1998-05-19 | 2000-08-29 | Paracel, Inc. | Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data |
-
2004
- 2004-12-15 US US11/012,688 patent/US7434028B2/en not_active Expired - Fee Related
-
2005
- 2005-12-13 JP JP2007546994A patent/JP4917045B2/ja not_active Expired - Fee Related
- 2005-12-13 AT AT05854568T patent/ATE477532T1/de not_active IP Right Cessation
- 2005-12-13 WO PCT/US2005/045887 patent/WO2006066188A2/en active Application Filing
- 2005-12-13 EP EP05854568A patent/EP1839126B1/en not_active Not-in-force
- 2005-12-13 DE DE602005022938T patent/DE602005022938D1/de active Active
- 2005-12-14 CN CNB2005101215637A patent/CN100498687C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6254359A (ja) * | 1985-06-24 | 1987-03-10 | ピクサ− | コンピユ−タ装置 |
JPH02112025A (ja) * | 1988-10-21 | 1990-04-24 | Hitachi Ltd | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006066188A3 (en) | 2006-10-05 |
EP1839126B1 (en) | 2010-08-11 |
CN100498687C (zh) | 2009-06-10 |
EP1839126A2 (en) | 2007-10-03 |
WO2006066188A2 (en) | 2006-06-22 |
ATE477532T1 (de) | 2010-08-15 |
US7434028B2 (en) | 2008-10-07 |
US20060155924A1 (en) | 2006-07-13 |
CN1804789A (zh) | 2006-07-19 |
DE602005022938D1 (de) | 2010-09-23 |
JP4917045B2 (ja) | 2012-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230049454A1 (en) | Processor with table lookup unit | |
KR100904318B1 (ko) | 단일 명령, 다중 데이터 실행 엔진에 대한 조건형 명령 | |
CN107408037B (zh) | 配置成对可变长度向量进行操作的单片向量处理器 | |
JP3781419B2 (ja) | パイプライン方式のプロセッサにおける例外処理 | |
WO2006044978A2 (en) | Looping instructions for a single instruction, multiple data execution engine | |
US6334176B1 (en) | Method and apparatus for generating an alignment control vector | |
US7085795B2 (en) | Apparatus and method for efficient filtering and convolution of content data | |
US6948056B1 (en) | Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages | |
KR100956970B1 (ko) | 프로세서에서의 마스킹된 저장 동작들을 위한 시스템 및방법 | |
JP4917045B2 (ja) | Data部および関連するカウンタを備えるエントリを有するハードウェア・スタック | |
TW201716993A (zh) | 向量資料轉換指令 | |
JP2010521729A (ja) | 自明な算術演算を利用するプロセッサ | |
US6748412B2 (en) | Square-and-multiply exponent processor | |
US8706795B2 (en) | SIMD integer addition including mathematical operation on masks | |
US7162607B2 (en) | Apparatus and method for a data storage device with a plurality of randomly located data | |
US20030033342A1 (en) | Apparatus and method for uniformly performing comparison operations on long word operands | |
US20050172210A1 (en) | Add-compare-select accelerator using pre-compare-select-add operation | |
CN111522586A (zh) | 信息处理装置、非暂态计算机可读介质和信息处理方法 | |
EP1285335A2 (en) | Instruction dependency scoreboard with a hierarchical structure | |
US20070294513A1 (en) | Facilitating fast scanning for control transfer instructions in an instruction fetch unit | |
JP3115428B2 (ja) | パイプライン制御方法 | |
JP2000187583A (ja) | プロセッサ | |
JPH01223564A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110920 |
|
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: 20120110 |
|
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: 20120125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150203 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4917045 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |