JP4829541B2 - マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置 - Google Patents
マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置 Download PDFInfo
- Publication number
- JP4829541B2 JP4829541B2 JP2005179948A JP2005179948A JP4829541B2 JP 4829541 B2 JP4829541 B2 JP 4829541B2 JP 2005179948 A JP2005179948 A JP 2005179948A JP 2005179948 A JP2005179948 A JP 2005179948A JP 4829541 B2 JP4829541 B2 JP 4829541B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- level
- registers
- execution
- logic
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 23
- 238000013461 design Methods 0.000 claims description 27
- 239000004065 semiconductor Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 45
- 238000007667 floating Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000011010 flushing procedure Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012546 transfer 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/30098—Register arrangements
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
101 CPU
102 メイン・メモリ
103 メモリ・バス
104 I/Oバス
105 I/Oバス・インターフェース・ユニット
111 端末インターフェース・ユニット
112 ストレージ・インターフェース・ユニット
113 I/Oデバイス・インターフェース・ユニット
114 ネットワーク・インターフェース・ユニット
121〜124 接続端末
125〜127 ダイレクト・アクセス・ストレージ・デバイス
128 プリンタ
129 ファクシミリ装置
130 ネットワーク
Claims (19)
- 実行するための命令を選択及びデコードする命令ロジックと、
前記命令によって指定されたオペレーションを遂行する実行ロジックと、
前記命令からのレジスタ識別子を使用して参照されるレジスタ・データを記憶する複数のレジスタと、
を含み、
前記複数のレジスタが複数のレベルとして編成され、
前記複数のレベルが、
(a)第1のアクセス待ち時間及び第1の数のレジスタを有する第1レベルと、
(b)第2のアクセス待ち時間及び第2の数のレジスタを有し、前記第2のアクセス待ち時間が前記第1のアクセス待ち時間よりも長く、前記第2の数のレジスタが前記第1の数のレジスタよりも多い、第2レベルとを含み、
前記実行ロジックへの入力に対して、前記第1レベルのレジスタからの出力及び前記第2レベルのレジスタからの出力のいずれか1つを選択するための実行入力選択ロジックを含み、
前記実行入力選択ロジックの制御は、前記第1レベルのレジスタの参照において検出された無効データの比率を動的に監視し、前記比率が或る所定の設計閾値を超える場合に、前記第1レベルのレジスタからの出力をディセーブルする
ディジタル・データ処理装置。 - 前記第1レベルの前記レジスタに含まれたレジスタ・データが前記第2レベルの前記レジスタに含まれたレジスタ・データのサブセットである、請求項1に記載のディジタル・データ処理装置。
- 前記レジスタ識別子の各々がNビットからなり、前記第1レベルの前記レジスタが前記レジスタ識別子のMビット部分を使用してアクセスされる(但し、N>M>1)、請求項1に記載のディジタル・データ処理装置。
- 前記第1レベルの各レジスタは、該レジスタをアクセスする際に使用される前記レジスタ識別子のMビット部分の値と等しい値をそのMビット部分に有する複数のレジスタ識別子により各々参照される複数の前記第2レベルのレジスタのサブセットのうちのいずれかのレジスタの内容を記憶する、請求項3に記載のディジタル・データ処理装置。
- 前記第1レベルの前記レジスタに書き込むために前記実行ロジックに生成された複数の結果の1つを選択するための結果選択ロジックを更に含み、
前記結果選択ロジックが前記第2レベルの前記レジスタの少なくとも1つの出力を入力として更に受ける、請求項1に記載のディジタル・データ処理装置。 - 前記第1レベルのレジスタからの出力が有効である場合に前記出力を選択し、前記第1レベルのレジスタからの出力が有効でない場合に前記第2レベルのレジスタからの出力を選択するように前記実行入力選択ロジックを制御する、請求項1に記載のディジタル・データ処理装置。
- 前記命令ロジックが、実行のための命令を複数のスレッドから同時に選択及びデコードし、
前記複数のレジスタが複数のレジスタ・セットを含み、前記レジスタ・セットの各々が前記複数のスレッドにおけるそれぞれのスレッドに対応し且つ前記第1レベルのレジスタ及び前記第2レベルのレジスタを含む、
請求項1に記載のディジタル・データ処理装置。 - 前記命令ロジックが単一のクロック・サイクルにおいて実行するための複数の命令をディスパッチすることができる、請求項1に記載のディジタル・データ処理装置。
- 複数の汎用レジスタとスカラ・データを処理するための実行ロジックとを有する実行ユニットと、
複数のオペランド・セットに関するオペレーションを並行して遂行するためのベクトル処理サブユニットと、
を更に含み、
前記ベクトル処理サブユニットが複数のレベルとして編成された前記複数のレジスタを含む、請求項1に記載のディジタル・データ処理装置。 - 単一の半導体チップとして具現化される、請求項1に記載のディジタル・データ処理装置。
- 命令を含むデータを記憶するためのメモリと、
前記メモリからの命令を実行するための少なくとも1つのプロセッサと、
を含み、
前記プロセッサが、
(a)実行するための命令を選択及びデコードする命令ロジックと、
(b)前記命令によって指定されたオペレーションを遂行する実行ロジックと、
(c)前記命令からのレジスタ識別子を使用して参照されるレジスタ・データを記憶する複数のレジスタと、
を含み、
前記複数のレジスタが複数のレベルとして編成され、
前記複数のレベルが、
(i)第1のアクセス待ち時間及び第1の数のレジスタを有する第1レベルと、
(ii)第2のアクセス待ち時間及び第2の数のレジスタを有し、前記第2のアクセス待ち時間が前記第1のアクセス待ち時間よりも長く、前記第2の数のレジスタが前記第1の数のレジスタよりも多い、第2レベルとを含み、
前記実行ロジックへの入力に対して、前記第1レベルのレジスタからの出力及び前記第2レベルのレジスタからの出力のいずれか1つを選択するための実行入力選択ロジックを含み、
前記プロセッサが、前記実行入力選択ロジックを制御して、前記第1レベルのレジスタの参照において検出された無効データの比率を動的に監視し、前記比率が或る所定の設計閾値を超える場合に、前記第1レベルのレジスタからの出力をディセーブルする
コンピュータ・システム。 - 前記第1レベルの前記レジスタに含まれたレジスタ・データが前記第2レベルの前記レジスタに含まれたレジスタ・データのサブセットである、請求項11に記載のコンピュータ・システム。
- 前記レジスタ識別子の各々がNビットからなり、前記第1レベルの前記レジスタが前記レジスタ識別子のMビット部分を使用してアクセスされる(但し、N>M>1)、請求項11に記載のコンピュータ・システム。
- 前記第1レベルの各レジスタは、該レジスタをアクセスする際に使用される前記レジスタ識別子のMビット部分の値と等しい値をそのMビット部分に有する複数のレジスタ識別子により各々参照される複数の前記第2レベルのレジスタのサブセットのうちのいずれかのレジスタの内容を記憶する、請求項13に記載のコンピュータ・システム。
- 前記プロセッサが、前記第1レベルの前記レジスタに書き込むために前記実行ロジックに生成された複数の結果の1つを選択するための結果選択ロジックを更に含み、
前記結果選択ロジックが、前記第2レベルの前記レジスタの少なくとも1つの出力を入力として更に受ける、請求項11に記載のコンピュータ・システム。 - 前記プロセッサは、前記第1レベルのレジスタからの出力が有効である場合に前記出力を選択し、前記第1レベルのレジスタからの出力が有効でない場合に前記第2レベルのレジスタからの出力を選択するように前記実行入力選択ロジックを制御する、請求項11に記載のコンピュータ・システム。
- 前記命令ロジックが、実行のための命令を複数のスレッドから同時に選択及びデコードし、
前記複数のレジスタが複数のレジスタ・セットを含み、前記レジスタ・セットの各々が前記複数のスレッドにおけるそれぞれのスレッドに対応し且つ前記第1レベルのレジスタ及び前記第2レベルのレジスタを含む、
請求項11に記載のコンピュータ・システム。 - 複数のプロセッサを含み、
前記プロセッサの各々が、
(a)実行するための命令を選択及びデコードする命令ロジックと、
(b)前記命令によって指定されたオペレーションを遂行する実行ロジックと、
(c)前記命令からのレジスタ識別子を使用して参照されるレジスタ・データを記憶する複数のレジスタと、
を含み、
前記複数のレジスタが複数のレベルとして編成され、
前記複数のレベルが、
(i)第1のアクセス待ち時間及び第1の数のレジスタを有する第1レベルと、
(ii)第2のアクセス待ち時間及び第2の数のレジスタを有し、前記第2のアクセス待ち時間が前記第1のアクセス待ち時間よりも長く、前記第2の数のレジスタが前記第1の数のレジスタよりも多い、第2レベルとを含み、
前記実行ロジックへの入力に対して、前記第1レベルのレジスタからの出力及び前記第2レベルのレジスタからの出力のいずれか1つを選択するための実行入力選択ロジックを含み、
前記実行入力選択ロジックの制御は、前記第1レベルのレジスタの参照において検出された無効データの比率を動的に監視し、前記比率が或る所定の設計閾値を超える場合に、前記第1レベルのレジスタからの出力をディセーブルする
コンピュータ・システム。 - 前記メモリに含まれたデータの選択的部分を一時的に記憶するためのキャッシュ・メモリを更に含む、請求項11に記載のコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/875,373 | 2004-06-24 | ||
US10/875,373 US7284092B2 (en) | 2004-06-24 | 2004-06-24 | Digital data processing apparatus having multi-level register file |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006012163A JP2006012163A (ja) | 2006-01-12 |
JP2006012163A5 JP2006012163A5 (ja) | 2008-06-19 |
JP4829541B2 true JP4829541B2 (ja) | 2011-12-07 |
Family
ID=35507434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005179948A Expired - Fee Related JP4829541B2 (ja) | 2004-06-24 | 2005-06-20 | マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7284092B2 (ja) |
JP (1) | JP4829541B2 (ja) |
CN (1) | CN100447738C (ja) |
TW (1) | TW200609744A (ja) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263593B2 (en) | 2002-11-25 | 2007-08-28 | Hitachi, Ltd. | Virtualization controller and data transfer control method |
US7933405B2 (en) * | 2005-04-08 | 2011-04-26 | Icera Inc. | Data access and permute unit |
US7861060B1 (en) * | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US7788468B1 (en) | 2005-12-15 | 2010-08-31 | Nvidia Corporation | Synchronization of threads in a cooperative thread array |
CN103646009B (zh) | 2006-04-12 | 2016-08-17 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
US9069547B2 (en) * | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
WO2008061154A2 (en) * | 2006-11-14 | 2008-05-22 | Soft Machines, Inc. | Apparatus and method for processing instructions in a multi-threaded architecture using context switching |
US7797514B2 (en) * | 2006-11-16 | 2010-09-14 | Texas Instruments Incorporated | Scalable multi-threaded sequencing/synchronizing processor architecture |
US20080229062A1 (en) * | 2007-03-12 | 2008-09-18 | Lorenzo Di Gregorio | Method of sharing registers in a processor and processor |
US20090006753A1 (en) * | 2007-06-28 | 2009-01-01 | David Arnold Luick | Design structure for accessing a cache with an effective address |
US7937530B2 (en) * | 2007-06-28 | 2011-05-03 | International Business Machines Corporation | Method and apparatus for accessing a cache with an effective address |
US7849294B2 (en) * | 2008-01-31 | 2010-12-07 | International Business Machines Corporation | Sharing data in internal and memory representations with dynamic data-driven conversion |
US7877582B2 (en) * | 2008-01-31 | 2011-01-25 | International Business Machines Corporation | Multi-addressable register file |
US8176406B2 (en) * | 2008-03-19 | 2012-05-08 | International Business Machines Corporation | Hard error detection |
US8631223B2 (en) | 2010-05-12 | 2014-01-14 | International Business Machines Corporation | Register file supporting transactional processing |
US8914619B2 (en) | 2010-06-22 | 2014-12-16 | International Business Machines Corporation | High-word facility for extending the number of general purpose registers available to instructions |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
US8661227B2 (en) * | 2010-09-17 | 2014-02-25 | International Business Machines Corporation | Multi-level register file supporting multiple threads |
US8725993B2 (en) * | 2011-02-23 | 2014-05-13 | International Business Machines Corporation | Thread transition management |
CN103547993B (zh) | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
EP2689326B1 (en) | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN103562866B (zh) | 2011-03-25 | 2018-03-30 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
US9940134B2 (en) | 2011-05-20 | 2018-04-10 | Intel Corporation | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
WO2012162189A1 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
US8595460B2 (en) * | 2011-08-26 | 2013-11-26 | Vmware, Inc. | Configuring object storage system for input/output operations |
US9411585B2 (en) | 2011-09-16 | 2016-08-09 | International Business Machines Corporation | Multi-addressable register files and format conversions associated therewith |
US9727336B2 (en) | 2011-09-16 | 2017-08-08 | International Business Machines Corporation | Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US9697002B2 (en) | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
US9690583B2 (en) | 2011-10-03 | 2017-06-27 | International Business Machines Corporation | Exploiting an architected list-use operand indication in a computer system operand resource pool |
US8615745B2 (en) | 2011-10-03 | 2013-12-24 | International Business Machines Corporation | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US9286072B2 (en) | 2011-10-03 | 2016-03-15 | International Business Machines Corporation | Using register last use infomation to perform decode-time computer instruction optimization |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US9354874B2 (en) | 2011-10-03 | 2016-05-31 | International Business Machines Corporation | Scalable decode-time instruction sequence optimization of dependent instructions |
US20130086364A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Managing a Register Cache Based on an Architected Computer Instruction Set Having Operand Last-User Information |
US8612959B2 (en) | 2011-10-03 | 2013-12-17 | International Business Machines Corporation | Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization |
CN104040490B (zh) | 2011-11-22 | 2017-12-15 | 英特尔公司 | 用于多引擎微处理器的加速的代码优化器 |
KR101832679B1 (ko) | 2011-11-22 | 2018-02-26 | 소프트 머신즈, 인크. | 마이크로프로세서 가속 코드 최적화기 |
CN108196823A (zh) * | 2011-12-23 | 2018-06-22 | 英特尔公司 | 用于执行双块绝对差求和的系统、装置和方法 |
US9286068B2 (en) | 2012-10-31 | 2016-03-15 | International Business Machines Corporation | Efficient usage of a multi-level register file utilizing a register file bypass |
US10275251B2 (en) | 2012-10-31 | 2019-04-30 | International Business Machines Corporation | Processor for avoiding reduced performance using instruction metadata to determine not to maintain a mapping of a logical register to a physical register in a first level register file |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
EP2972845B1 (en) | 2013-03-15 | 2021-07-07 | Intel Corporation | A method for executing multithreaded instructions grouped onto blocks |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
KR102083390B1 (ko) | 2013-03-15 | 2020-03-02 | 인텔 코포레이션 | 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법 |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9508112B2 (en) * | 2013-07-31 | 2016-11-29 | Apple Inc. | Multi-threaded GPU pipeline |
US9459869B2 (en) | 2013-08-20 | 2016-10-04 | Apple Inc. | Intelligent caching for an operand cache |
US9378146B2 (en) * | 2013-08-20 | 2016-06-28 | Apple Inc. | Operand cache design |
US9652233B2 (en) | 2013-08-20 | 2017-05-16 | Apple Inc. | Hint values for use with an operand cache |
US9870340B2 (en) * | 2015-03-30 | 2018-01-16 | International Business Machines Corporation | Multithreading in vector processors |
US9952865B2 (en) * | 2015-04-04 | 2018-04-24 | Texas Instruments Incorporated | Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file |
US9619394B2 (en) | 2015-07-21 | 2017-04-11 | Apple Inc. | Operand cache flush, eviction, and clean techniques using hint information and dirty information |
US9785567B2 (en) | 2015-09-11 | 2017-10-10 | Apple Inc. | Operand cache control techniques |
US10241790B2 (en) | 2015-12-15 | 2019-03-26 | International Business Machines Corporation | Operation of a multi-slice processor with reduced flush and restore latency |
US20170371654A1 (en) * | 2016-06-23 | 2017-12-28 | Advanced Micro Devices, Inc. | System and method for using virtual vector register files |
GB2552154B (en) * | 2016-07-08 | 2019-03-06 | Advanced Risc Mach Ltd | Vector register access |
US10613987B2 (en) | 2016-09-23 | 2020-04-07 | Apple Inc. | Operand cache coherence for SIMD processor supporting predication |
CN111951845B (zh) * | 2019-05-15 | 2022-06-03 | 上海磁宇信息科技有限公司 | 一种分级管理冗余存储的mram芯片 |
US11848980B2 (en) * | 2020-07-09 | 2023-12-19 | Boray Data Technology Co. Ltd. | Distributed pipeline configuration in a distributed computing system |
TWI783310B (zh) * | 2020-11-26 | 2022-11-11 | 華邦電子股份有限公司 | 計數方法以及計數裝置 |
CN112817639B (zh) * | 2021-01-13 | 2022-04-08 | 中国民航大学 | Gpu读写单元通过操作数收集器访问寄存器文件的方法 |
CN116560729B (zh) * | 2023-05-11 | 2024-06-04 | 北京市合芯数字科技有限公司 | 一种多线程处理器的寄存器多级管理方法及系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
US5179681A (en) * | 1989-11-16 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for current window cache with switchable address and out cache registers |
US5226142A (en) * | 1990-11-21 | 1993-07-06 | Ross Technology, Inc. | High performance register file with overlapping windows |
JP3479538B2 (ja) * | 1991-12-26 | 2003-12-15 | テキサス インスツルメンツ インコーポレイテツド | 半導体集積回路を製作する方法 |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
JP3676411B2 (ja) * | 1994-01-21 | 2005-07-27 | サン・マイクロシステムズ・インコーポレイテッド | レジスタファイル装置及びレジスタファイルアクセス方法 |
US5592679A (en) * | 1994-11-14 | 1997-01-07 | Sun Microsystems, Inc. | Apparatus and method for distributed control in a processor architecture |
EP0717359A3 (en) * | 1994-12-15 | 1997-02-05 | Sun Microsystems Inc | Register cache memory for a computer processor |
US5974438A (en) * | 1996-12-31 | 1999-10-26 | Compaq Computer Corporation | Scoreboard for cached multi-thread processes |
US6131155A (en) * | 1997-11-07 | 2000-10-10 | Pmc Sierra Ltd. | Programmer-visible uncached load/store unit having burst capability |
US6108770A (en) * | 1998-06-24 | 2000-08-22 | Digital Equipment Corporation | Method and apparatus for predicting memory dependence using store sets |
US6381678B2 (en) * | 1998-10-30 | 2002-04-30 | Intel Corporation | Processing ordered data requests to a memory |
US6282614B1 (en) * | 1999-04-15 | 2001-08-28 | National Semiconductor Corporation | Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches |
US6557078B1 (en) * | 2000-02-21 | 2003-04-29 | Hewlett Packard Development Company, L.P. | Cache chain structure to implement high bandwidth low latency cache memory subsystem |
WO2001077836A1 (en) * | 2000-04-12 | 2001-10-18 | Koninklijke Philips Electronics N.V. | Data processing circuit with a cache memory and apparatus containing such a circuit |
JP3659941B2 (ja) * | 2002-07-26 | 2005-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロプロセッサおよびその処理方法 |
US6934830B2 (en) * | 2002-09-26 | 2005-08-23 | Sun Microsystems, Inc. | Method and apparatus for reducing register file access times in pipelined processors |
US20040222379A1 (en) * | 2003-05-09 | 2004-11-11 | Cook Michael Joseph | Event counter for an imaging device |
US7206923B2 (en) * | 2003-12-12 | 2007-04-17 | International Business Machines Corporation | Method and apparatus for eliminating the need for register assignment, allocation, spilling and re-filling |
US20050138297A1 (en) * | 2003-12-23 | 2005-06-23 | Intel Corporation | Register file cache |
US7694075B1 (en) * | 2005-03-09 | 2010-04-06 | Globalfoundries Inc. | System for enabling and disabling cache and a method thereof |
-
2004
- 2004-06-24 US US10/875,373 patent/US7284092B2/en not_active Expired - Fee Related
-
2005
- 2005-06-06 TW TW094118524A patent/TW200609744A/zh unknown
- 2005-06-20 JP JP2005179948A patent/JP4829541B2/ja not_active Expired - Fee Related
- 2005-06-21 CN CNB2005100794172A patent/CN100447738C/zh not_active Expired - Fee Related
-
2007
- 2007-08-08 US US11/835,519 patent/US8793433B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080022044A1 (en) | 2008-01-24 |
TW200609744A (en) | 2006-03-16 |
US8793433B2 (en) | 2014-07-29 |
JP2006012163A (ja) | 2006-01-12 |
CN1713137A (zh) | 2005-12-28 |
US7284092B2 (en) | 2007-10-16 |
US20050289299A1 (en) | 2005-12-29 |
CN100447738C (zh) | 2008-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4829541B2 (ja) | マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置 | |
US7219185B2 (en) | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache | |
US7454654B2 (en) | Multiple parallel pipeline processor having self-repairing capability | |
US6944718B2 (en) | Apparatus and method for speculative prefetching after data cache misses | |
US6230260B1 (en) | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching | |
JP5372929B2 (ja) | 階層マイクロコードストアを有するマルチコアプロセッサ | |
US5559986A (en) | Interleaved cache for multiple accesses per clock cycle in a microprocessor | |
JP3120152B2 (ja) | コンピューターシステム | |
US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
EP1278125A2 (en) | Indexing and multiplexing of interleaved cache memory arrays | |
EP1286269A2 (en) | A data processor having a cache memory | |
KR100745904B1 (ko) | 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로 | |
JPH0782438B2 (ja) | コンピュータ・システム | |
WO2000033183A9 (en) | Method and structure for local stall control in a microprocessor | |
JPH11249897A (ja) | Nウェイ分岐を有するスーパースカラまたは超長命令語コンピュータにおける次の命令を選択する方法および装置 | |
JPH07191846A (ja) | プロセッサ | |
US6804759B2 (en) | Method and apparatus for detecting pipeline address conflict using compare of byte addresses | |
KR100431975B1 (ko) | 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템 | |
US6691210B2 (en) | Circuit and method for hardware-assisted software flushing of data and instruction caches | |
KR20000005685A (ko) | 분산인스트럭션완료로직 | |
US20020188817A1 (en) | Store buffer pipeline | |
US6412065B1 (en) | Status register associated with MMX register file for tracking writes | |
US6807628B2 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture | |
JPH1083347A (ja) | キャッシュメモリ装置 | |
JPH0277840A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080501 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080501 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110419 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20110502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110711 |
|
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: 20110906 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20110906 |
|
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: 20110916 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140922 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |