JPH09171461A - プロセッサ・システム - Google Patents
プロセッサ・システムInfo
- Publication number
- JPH09171461A JPH09171461A JP8220997A JP22099796A JPH09171461A JP H09171461 A JPH09171461 A JP H09171461A JP 8220997 A JP8220997 A JP 8220997A JP 22099796 A JP22099796 A JP 22099796A JP H09171461 A JPH09171461 A JP H09171461A
- Authority
- JP
- Japan
- Prior art keywords
- alias
- address
- machine instruction
- specified
- buffer memory
- 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
- 230000015654 memory Effects 0.000 claims abstract description 238
- 239000000872 buffer Substances 0.000 claims abstract description 216
- 238000003860 storage Methods 0.000 claims abstract description 134
- 238000012432 intermediate storage Methods 0.000 claims abstract description 16
- 230000005055 memory storage Effects 0.000 claims abstract description 8
- 230000004044 response Effects 0.000 claims description 54
- 238000000034 method Methods 0.000 claims description 44
- 238000012546 transfer Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 description 28
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002123 temporal effect Effects 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/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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】各種サイズのデータ・オブジェクト用にコンパ
イル時に割振られる高速メモリ記憶位置を有す別名装置
を含むプロセッサを提供する。 【解決手段】プロセッサは、各種サイズのデータ・オブ
ジェクト用にコンパイル時に割振られる高速メモリ記憶
位置を有す別名装置を含む。この記憶位置は、別名エン
トリがそこに別名指定されるプロセッサ・メモリのベー
ス・アドレス、別名エントリのバイト数、及び別名エン
トリの値を表す別名バッファ・メモリの先頭バイトを指
すベース・アドレスで構成される別名エントリのテーブ
ルを介してアクセスされる。各別名エントリは、小さな
名前スペースから固有名を与えられ、これは関連するマ
シン・オプコードにコード化される。この名前は、デー
タ・オブジェクトの参照に使用される。プロセッサは、
オプションでデータ・キャッシュを含むことができ、及
び単一プロセッサ環境又はマルチ・タスキング環境のど
ちらでも使用できる。別名レジスタ・エントリに関連付
けられたメモリ位置アドレスに対する参照は、中間記憶
装置にリダイレクトされる。
イル時に割振られる高速メモリ記憶位置を有す別名装置
を含むプロセッサを提供する。 【解決手段】プロセッサは、各種サイズのデータ・オブ
ジェクト用にコンパイル時に割振られる高速メモリ記憶
位置を有す別名装置を含む。この記憶位置は、別名エン
トリがそこに別名指定されるプロセッサ・メモリのベー
ス・アドレス、別名エントリのバイト数、及び別名エン
トリの値を表す別名バッファ・メモリの先頭バイトを指
すベース・アドレスで構成される別名エントリのテーブ
ルを介してアクセスされる。各別名エントリは、小さな
名前スペースから固有名を与えられ、これは関連するマ
シン・オプコードにコード化される。この名前は、デー
タ・オブジェクトの参照に使用される。プロセッサは、
オプションでデータ・キャッシュを含むことができ、及
び単一プロセッサ環境又はマルチ・タスキング環境のど
ちらでも使用できる。別名レジスタ・エントリに関連付
けられたメモリ位置アドレスに対する参照は、中間記憶
装置にリダイレクトされる。
Description
【0001】
【発明の属する技術分野】本発明は、一般的にはコンピ
ュータ・プロセッサに関連し、更に詳細に述べれば、プ
ロセッサ・コアと主メモリ間にバッファ記憶装置を有す
コンピュータ・プロセッサに関連する。
ュータ・プロセッサに関連し、更に詳細に述べれば、プ
ロセッサ・コアと主メモリ間にバッファ記憶装置を有す
コンピュータ・プロセッサに関連する。
【0002】
【従来の技術】コンピュータ・プロセッサは、一般的に
「オペコード」と呼ばれる操作コード及びオペランドに
より指定される機械命令を実行して、コンパイラ又はア
センブラにより指定されるプログラミング・ステップを
実施する。機械命令は、1つ又はそれ以上のデータ値を
頻繁に参照する。これらの値は、算術演算、メモリ転送
操作、他の機械命令への分岐命令等におけるオペランド
として使用される。一般的に、参照されるデータ値は、
メモリ(キャッシュ等の中間記憶装置によりバッファリ
ングされる場合がある)又はアドレス可能レジスタの中
に格納されている。どちらのタイプのデータ記憶装置
も、それぞれ長所と欠点を備える。
「オペコード」と呼ばれる操作コード及びオペランドに
より指定される機械命令を実行して、コンパイラ又はア
センブラにより指定されるプログラミング・ステップを
実施する。機械命令は、1つ又はそれ以上のデータ値を
頻繁に参照する。これらの値は、算術演算、メモリ転送
操作、他の機械命令への分岐命令等におけるオペランド
として使用される。一般的に、参照されるデータ値は、
メモリ(キャッシュ等の中間記憶装置によりバッファリ
ングされる場合がある)又はアドレス可能レジスタの中
に格納されている。どちらのタイプのデータ記憶装置
も、それぞれ長所と欠点を備える。
【0003】メモリ位置は、データ値が格納されている
メモリ位置アドレスを指定することによりアクセスされ
る。メモリ位置は、データの大きなブロック、及び数値
的に大きなデータ値の格納に便利であり、また各種のア
ドレス指定構造に適合する。メモリ位置は、各種のデー
タ・レコード記憶要件に対応するには特に便利である。
即ち、プロセッサは、長さが多様なオブジェクトの集り
で構成されるデータ・レコードをアクセスする必要が多
々ある。メモリ位置では、長さの異なるデータ・オブジ
ェクトは、対応するメモリ・アドレスで容易に参照され
る。
メモリ位置アドレスを指定することによりアクセスされ
る。メモリ位置は、データの大きなブロック、及び数値
的に大きなデータ値の格納に便利であり、また各種のア
ドレス指定構造に適合する。メモリ位置は、各種のデー
タ・レコード記憶要件に対応するには特に便利である。
即ち、プロセッサは、長さが多様なオブジェクトの集り
で構成されるデータ・レコードをアクセスする必要が多
々ある。メモリ位置では、長さの異なるデータ・オブジ
ェクトは、対応するメモリ・アドレスで容易に参照され
る。
【0004】メモリ位置のもつ柔軟性は大きいが、メモ
リ位置のアクセス時間は、メモリの階層構造内で最も遅
いものの1つであり、時間の長さは特に固定されず、ア
クセス操作毎に異なる。アクセス時間が変動するのは、
アドレス参照シーケンス(トレース)内の空間的及び時
間的位置が、プロセッサ内に存在するキャッシング、相
互接続、及びメモリ・バンキング機構と相互に影響する
方法に主に起因する。最後に、メモリ位置アドレスは非
常に長くなる可能性があるので、メモリ位置参照のコー
ド化には、比較的大きなビット数が要求される。例え
ば、レジスタの指定に使用されるビットが一般的に3か
ら5ビットであるのに対して、最近のほとんどのプロセ
ッサの有効アドレス計算の結果は、32ビットかそれ以
上である。
リ位置のアクセス時間は、メモリの階層構造内で最も遅
いものの1つであり、時間の長さは特に固定されず、ア
クセス操作毎に異なる。アクセス時間が変動するのは、
アドレス参照シーケンス(トレース)内の空間的及び時
間的位置が、プロセッサ内に存在するキャッシング、相
互接続、及びメモリ・バンキング機構と相互に影響する
方法に主に起因する。最後に、メモリ位置アドレスは非
常に長くなる可能性があるので、メモリ位置参照のコー
ド化には、比較的大きなビット数が要求される。例え
ば、レジスタの指定に使用されるビットが一般的に3か
ら5ビットであるのに対して、最近のほとんどのプロセ
ッサの有効アドレス計算の結果は、32ビットかそれ以
上である。
【0005】レジスタは、メモリ位置と比較した場合、
データのアクセスがずっと高速である。これは、部分的
にはレジスタを実装する論理ゲートのハードウェア設計
に起因する。また高速のアクセス時間は、レジスタの単
純化されたアドレス指定構造にも一部起因する。一般的
に、レジスタは短いレジスタ名で参照される。この方法
では、32ビット・レジスタの内容全体が、オペコード
に必要なビットと4ビットの名前文字だけを使用してア
クセスできる。
データのアクセスがずっと高速である。これは、部分的
にはレジスタを実装する論理ゲートのハードウェア設計
に起因する。また高速のアクセス時間は、レジスタの単
純化されたアドレス指定構造にも一部起因する。一般的
に、レジスタは短いレジスタ名で参照される。この方法
では、32ビット・レジスタの内容全体が、オペコード
に必要なビットと4ビットの名前文字だけを使用してア
クセスできる。
【0006】残念ながら、レジスタはメモリ位置よりプ
ロセッサ内に装備する価格が高い。これも、やはりハー
ドウェア設計と論理回路が原因である。したがって、ほ
とんどのプロセッサは中に装備するレジスタの数に限度
がある。更に、レジスタの数は、限定的だが効率のよい
レジスタ・アドレス指定構造により制限される。最後
に、いわゆる曖昧参照問題のために、値によってはレジ
スタに保存できないものがある。この曖昧参照問題は、
配列内のセル又はポインタなどの変数が、2つ以上の名
前により認識される場合に発生する。例えば、機械命令
のシーケンスがx及びyと呼ばれる2つの名前を参照し
たときに、それらの中の1つがデータ値をもち、もう1
つがポインタである場合、又は両方が配列のセルである
場合、xとyが2つの異なるオブジェクトを参照してい
るように見えても、どちらも同じデータ・オブジェクト
を参照していることがあり得る。即ち、実際は1つの名
前が他の名前の別名である場合である。
ロセッサ内に装備する価格が高い。これも、やはりハー
ドウェア設計と論理回路が原因である。したがって、ほ
とんどのプロセッサは中に装備するレジスタの数に限度
がある。更に、レジスタの数は、限定的だが効率のよい
レジスタ・アドレス指定構造により制限される。最後
に、いわゆる曖昧参照問題のために、値によってはレジ
スタに保存できないものがある。この曖昧参照問題は、
配列内のセル又はポインタなどの変数が、2つ以上の名
前により認識される場合に発生する。例えば、機械命令
のシーケンスがx及びyと呼ばれる2つの名前を参照し
たときに、それらの中の1つがデータ値をもち、もう1
つがポインタである場合、又は両方が配列のセルである
場合、xとyが2つの異なるオブジェクトを参照してい
るように見えても、どちらも同じデータ・オブジェクト
を参照していることがあり得る。即ち、実際は1つの名
前が他の名前の別名である場合である。
【0007】コンパイル時に、コンパイラが2つの名前
を弁別できる場合、データ・オブジェクトx及びyは2
つの異なるレジスタに保存できる。一方、2つの名前が
常に同じデータ・オブジェクトを参照することをコンパ
イラが判定できる場合、両方の名前は同じレジスタにマ
ップできる。2つの名前が常に同じオブジェクトを参照
するか又は全く参照しないかを、コンパイラが判定でき
ない場合、x及びyは互いに曖昧に参照される、又は関
連するといえる。2つの名前が互いに曖昧に参照される
場合、一般的にはそれらはどのような時間でもレジスタ
に保存できない。
を弁別できる場合、データ・オブジェクトx及びyは2
つの異なるレジスタに保存できる。一方、2つの名前が
常に同じデータ・オブジェクトを参照することをコンパ
イラが判定できる場合、両方の名前は同じレジスタにマ
ップできる。2つの名前が常に同じオブジェクトを参照
するか又は全く参照しないかを、コンパイラが判定でき
ない場合、x及びyは互いに曖昧に参照される、又は関
連するといえる。2つの名前が互いに曖昧に参照される
場合、一般的にはそれらはどのような時間でもレジスタ
に保存できない。
【0008】データ・キャッシュは、小さくて比較的高
速のメモリであり、主メモリ・アドレスに関連してアド
レス指定される値のコピーを含む。命令がメモリ位置を
参照した場合、データ・キャッシュがチェックされ、参
照されたメモリ位置がデータ・キャッシュにマップされ
ているかどうか判定される。マップされている場合、参
照された値がデータ・キャッシュの中に存在するので、
この値の取得のためにメモリを検索する必要はない。
速のメモリであり、主メモリ・アドレスに関連してアド
レス指定される値のコピーを含む。命令がメモリ位置を
参照した場合、データ・キャッシュがチェックされ、参
照されたメモリ位置がデータ・キャッシュにマップされ
ているかどうか判定される。マップされている場合、参
照された値がデータ・キャッシュの中に存在するので、
この値の取得のためにメモリを検索する必要はない。
【0009】
【発明が解決しようとする課題】近年、短い名前を使用
してレジスタと類似した方法でアドレス指定できる、キ
ャッシュ・レジスタ(一般的には「Cレジスタ」又は
「Cレジ」と呼ばれる)が提案された。オペコードで
「0」へのCレジスタ格納を指定すると、この結果ゼロ
番のキャッシュ・レジスタへの格納操作が実行される。
従来のレジスタの場合のように、このような参照は、完
全なメモリ・アドレス位置の指定より効率的である。但
し従来のレジスタと異なり、2つのデータ・オブジェク
ト名が互いに曖昧に別名指定される場合でも、Cレジを
使用できる。各Cレジは、アドレスとデータ値の両方を
保持する。Cレジが参照されると、適当なプロセッサ・
ブロックによる関連検索が実行され、アドレス・フィー
ルドに同じアドレスをもつ隣接Cレジが検出される。こ
の方法で検出されたCレジは、直接名前指定されるCレ
ジ用の代替名をもち、Cレジ・ハードウェアはこれらの
エントリの一貫性を容易に維持する。残念ながら、Cレ
ジは従来のレジスタと同様に、固定長記憶装置しか備え
ず、したがってメモリ位置のような各種のデータ・レコ
ード記憶要件に対する適合性はもたない。
してレジスタと類似した方法でアドレス指定できる、キ
ャッシュ・レジスタ(一般的には「Cレジスタ」又は
「Cレジ」と呼ばれる)が提案された。オペコードで
「0」へのCレジスタ格納を指定すると、この結果ゼロ
番のキャッシュ・レジスタへの格納操作が実行される。
従来のレジスタの場合のように、このような参照は、完
全なメモリ・アドレス位置の指定より効率的である。但
し従来のレジスタと異なり、2つのデータ・オブジェク
ト名が互いに曖昧に別名指定される場合でも、Cレジを
使用できる。各Cレジは、アドレスとデータ値の両方を
保持する。Cレジが参照されると、適当なプロセッサ・
ブロックによる関連検索が実行され、アドレス・フィー
ルドに同じアドレスをもつ隣接Cレジが検出される。こ
の方法で検出されたCレジは、直接名前指定されるCレ
ジ用の代替名をもち、Cレジ・ハードウェアはこれらの
エントリの一貫性を容易に維持する。残念ながら、Cレ
ジは従来のレジスタと同様に、固定長記憶装置しか備え
ず、したがってメモリ位置のような各種のデータ・レコ
ード記憶要件に対する適合性はもたない。
【0010】上記の説明より、メモリ位置より効率よ
く、アクセス時間が決定しやすいデータ・レコードのア
ドレス指定が可能であり、曖昧参照問題を除去し、なら
びに従来のハードウェア・レジスタ及びキャッシュ・レ
ジスタの固定長記憶装置より高い柔軟性をもつ記憶装置
を備えたプロセッサが要求されることは明かであろう。
本発明は、この要求を満足するものである。
く、アクセス時間が決定しやすいデータ・レコードのア
ドレス指定が可能であり、曖昧参照問題を除去し、なら
びに従来のハードウェア・レジスタ及びキャッシュ・レ
ジスタの固定長記憶装置より高い柔軟性をもつ記憶装置
を備えたプロセッサが要求されることは明かであろう。
本発明は、この要求を満足するものである。
【0011】
【本発明を解決するための手段】本発明によれば、プロ
セッサは各種のサイズのデータ・オブジェクトについ
て、実行時に先立って割振り可能な中間記憶装置を含
む。プロセッサはオプションでデータ・キャッシュを含
むことが可能であり、また単一プロセッサ環境でもマル
チ・タスキング環境でもどちらでも使用できる。中間記
憶装置は、一般的には別名装置と呼ばれ、別名エントリ
のテーブルを介してアクセスされる、比較的高速なメモ
リ記憶位置のブロックとして設けられる。各別名エント
リは、別名エントリがそこに別名指定されるプロセッサ
・メモリのアドレス、別名エントリ値のバイト数、及び
別名エントリの値を表す別名バッファ・メモリの先頭バ
イトを指すベース・アドレスを含む。各別名エントリ
は、小さな名前スペースから固有名を与えられ、これは
関連機械命令にコード化される。この名前は、データ・
オブジェクトの参照に使用される。プロセッサがサポー
トする機械命令は、別名バッファ・メモリ・ベース・ア
ドレスの明示通信を含む。即ち、別名レジスタ・エント
リが参照する値のロード又は格納のための明示命令だけ
ではなく、そのエントリの構成のための明示命令が備わ
る。このように、コンパイラは、目的達成のために適当
と見なせる量だけ中間記憶装置を割振ることができる。
セッサは各種のサイズのデータ・オブジェクトについ
て、実行時に先立って割振り可能な中間記憶装置を含
む。プロセッサはオプションでデータ・キャッシュを含
むことが可能であり、また単一プロセッサ環境でもマル
チ・タスキング環境でもどちらでも使用できる。中間記
憶装置は、一般的には別名装置と呼ばれ、別名エントリ
のテーブルを介してアクセスされる、比較的高速なメモ
リ記憶位置のブロックとして設けられる。各別名エント
リは、別名エントリがそこに別名指定されるプロセッサ
・メモリのアドレス、別名エントリ値のバイト数、及び
別名エントリの値を表す別名バッファ・メモリの先頭バ
イトを指すベース・アドレスを含む。各別名エントリ
は、小さな名前スペースから固有名を与えられ、これは
関連機械命令にコード化される。この名前は、データ・
オブジェクトの参照に使用される。プロセッサがサポー
トする機械命令は、別名バッファ・メモリ・ベース・ア
ドレスの明示通信を含む。即ち、別名レジスタ・エント
リが参照する値のロード又は格納のための明示命令だけ
ではなく、そのエントリの構成のための明示命令が備わ
る。このように、コンパイラは、目的達成のために適当
と見なせる量だけ中間記憶装置を割振ることができる。
【0012】プロセッサがサポートするプロセッサ命令
セットは、別名エントリの割振り及び初期化、プロセッ
サ・レジスタと別名エントリ間のロード及び格納、なら
びにレジスタと別名エントリに存在する場合があるメモ
リ位置との間のロード及び格納を含む。別名エントリと
関連付けられたメモリ位置アドレスの参照は、別名装置
バッファ・メモリにリダイレクトされる。直接アドレス
指定構造及び有効アドレス指定構造もサポートされる。
このように、本発明のプロセッサで使用するために設計
されるコンパイラは、実行時に先立ち、頻繁に参照され
るデータ・レコードのために中間記憶装置を割振ること
ができる。この結果、プロセッサ・システムの操作効率
が上昇する。
セットは、別名エントリの割振り及び初期化、プロセッ
サ・レジスタと別名エントリ間のロード及び格納、なら
びにレジスタと別名エントリに存在する場合があるメモ
リ位置との間のロード及び格納を含む。別名エントリと
関連付けられたメモリ位置アドレスの参照は、別名装置
バッファ・メモリにリダイレクトされる。直接アドレス
指定構造及び有効アドレス指定構造もサポートされる。
このように、本発明のプロセッサで使用するために設計
されるコンパイラは、実行時に先立ち、頻繁に参照され
るデータ・レコードのために中間記憶装置を割振ること
ができる。この結果、プロセッサ・システムの操作効率
が上昇する。
【0013】本発明のこの他の特徴及び長所は、本発明
の原理を事例により示した、好ましい実施例についての
以下の説明から明らかになるだろう。
の原理を事例により示した、好ましい実施例についての
以下の説明から明らかになるだろう。
【0014】
【発明の実施の形態】図1は、本発明に従って構成され
るコンピュータ処理システム20を示す。好ましい実施
例では、コンピュータ処理システムは、周知のスーパー
スカラ・マイクロプロセッサ・システム、例えばInt
ernational Business Machi
nes Corporation(IBM Corpo
ration)製造の「Power PC」マイクロプ
ロセッサ等を利用して実装される単一集積回路、スーパ
ースカラ・マイクロ・プロセッサである。但し、本発明
は複数集積回路チップ設計又は単一チップ設計、及びス
ーパースカラ・プロセッサ設計又は非スーパースカラ・
プロセッサ設計で実施可能である点に留意されたい。処
理システム20は、プロセッサ・コア22、メモリ・イ
ンターフェース装置26を介してプロセッサ・コアとイ
ンターフェースするメモリ装置24、データ・キャッシ
ュ28、及び別名装置30を含む。別名装置は、別名エ
ントリのテーブルを介してアクセスされる、比較的高速
のデータ記憶位置で構成される中間記憶装置の一種であ
る。別名エントリは、メモリ装置24のアドレスを別名
装置記憶位置の可変調ブロックと関連させる。即ち、メ
モリ装置記憶位置は、別名装置30の記憶位置に保持さ
れる「別名」値をもつ。
るコンピュータ処理システム20を示す。好ましい実施
例では、コンピュータ処理システムは、周知のスーパー
スカラ・マイクロプロセッサ・システム、例えばInt
ernational Business Machi
nes Corporation(IBM Corpo
ration)製造の「Power PC」マイクロプ
ロセッサ等を利用して実装される単一集積回路、スーパ
ースカラ・マイクロ・プロセッサである。但し、本発明
は複数集積回路チップ設計又は単一チップ設計、及びス
ーパースカラ・プロセッサ設計又は非スーパースカラ・
プロセッサ設計で実施可能である点に留意されたい。処
理システム20は、プロセッサ・コア22、メモリ・イ
ンターフェース装置26を介してプロセッサ・コアとイ
ンターフェースするメモリ装置24、データ・キャッシ
ュ28、及び別名装置30を含む。別名装置は、別名エ
ントリのテーブルを介してアクセスされる、比較的高速
のデータ記憶位置で構成される中間記憶装置の一種であ
る。別名エントリは、メモリ装置24のアドレスを別名
装置記憶位置の可変調ブロックと関連させる。即ち、メ
モリ装置記憶位置は、別名装置30の記憶位置に保持さ
れる「別名」値をもつ。
【0015】プロセッサ20を使用するコンパイラは、
実行時に先立ち、関連を指定し、記憶位置の可変長ブロ
ックを関連用に割振ることができる。別名装置記憶位置
は、レジスタがレジスタ番号で参照されるのとほとんど
同じ方法で、固有名で参照できる。また、関連するメモ
リ装置アドレスにより直接参照することも可能である。
このように、別名装置は、効率的なレジスタのアドレス
指定構造とデータ・キャッシュ・ヒットの待ち時間の既
定性により、別名指定されたデータ・オブジェクトを効
率的にアクセスし、データ・キャッシュがない場合にプ
ロセッサ内で発生するロード及び格納トラフィックを減
少させ、コンパイル時情報を使用してデータ記憶装置の
使用を最大にする。
実行時に先立ち、関連を指定し、記憶位置の可変長ブロ
ックを関連用に割振ることができる。別名装置記憶位置
は、レジスタがレジスタ番号で参照されるのとほとんど
同じ方法で、固有名で参照できる。また、関連するメモ
リ装置アドレスにより直接参照することも可能である。
このように、別名装置は、効率的なレジスタのアドレス
指定構造とデータ・キャッシュ・ヒットの待ち時間の既
定性により、別名指定されたデータ・オブジェクトを効
率的にアクセスし、データ・キャッシュがない場合にプ
ロセッサ内で発生するロード及び格納トラフィックを減
少させ、コンパイル時情報を使用してデータ記憶装置の
使用を最大にする。
【0016】別名エントリは、エントリがそこへ別名指
定されるメモリ装置24のアドレス値、関連する別名レ
コードのサイズを定義するバイト長、及び別名値が格納
される別名装置30記憶装置のメモリの先頭バイトを指
定するベースアドレスのポインタを含む。別名エントリ
と関連付けられたメモリ装置アドレス位置に対する参照
は、指定された長さだけ別名装置内の値にプロセッサが
自動的にリダイレクトする。即ち、別名エントリは、別
名エントリで指定されるメモリ・アドレス値と、メモリ
・アドレスとバイト長サイズから1を減算した値の合計
値との間のメモリ・アドレス間隔を参照する。1を減算
するのは、メモリ・アドレス・オフセットがゼロから開
始し、その結果別名間隔の終了メモリ・アドレスを得る
にはバイト長から1だけ減算する必要があるためであ
る。このように、別名エントリは記憶位置の可変長グル
ープを参照するので、グループの効率的なアドレス指定
が可能になる。プロセッサ20は、別名エントリが参照
する値の割振り、ロード、及び格納をサポートする明示
命令セットを含む。上記で示すように、アドレス位置の
完全なブロックが、単一の機械命令によってアドレス指
定可能である。
定されるメモリ装置24のアドレス値、関連する別名レ
コードのサイズを定義するバイト長、及び別名値が格納
される別名装置30記憶装置のメモリの先頭バイトを指
定するベースアドレスのポインタを含む。別名エントリ
と関連付けられたメモリ装置アドレス位置に対する参照
は、指定された長さだけ別名装置内の値にプロセッサが
自動的にリダイレクトする。即ち、別名エントリは、別
名エントリで指定されるメモリ・アドレス値と、メモリ
・アドレスとバイト長サイズから1を減算した値の合計
値との間のメモリ・アドレス間隔を参照する。1を減算
するのは、メモリ・アドレス・オフセットがゼロから開
始し、その結果別名間隔の終了メモリ・アドレスを得る
にはバイト長から1だけ減算する必要があるためであ
る。このように、別名エントリは記憶位置の可変長グル
ープを参照するので、グループの効率的なアドレス指定
が可能になる。プロセッサ20は、別名エントリが参照
する値の割振り、ロード、及び格納をサポートする明示
命令セットを含む。上記で示すように、アドレス位置の
完全なブロックが、単一の機械命令によってアドレス指
定可能である。
【0017】プロセッサ20は、マルチ・スレッド操作
環境の中に特定のユーティリティをもち、ここでは、命
令が実行する参照がレジスタ又は別名エントリのオペラ
ンドによりすべて満足できるとプロセッサ・コアが判定
すると、直ちにプロセッサは、スレッド間のコミュテー
ション(commutation)をトリガする(コン
テキスト切替えとも呼ばれる)命令を与えないことを決
定できる。別名装置がない場合は、目的のメモリ位置が
キャッシュにあるかどうかをデータ・キャッシュが判定
するまで、コンテキスト切替え決定を遅らせる必要があ
る。コンテキスト切替えは、値がキャッシュにない場合
に発生する。本発明のプロセッサにより初期の決定が可
能になることで、マルチ・スレッド・コンテキスト切替
えが単純化され、同じデータ・オブジェクトに対する複
数処理スレッドによるアクセスが改良される。このよう
に、本発明はコンテキスト切替えの性能を改良する。
環境の中に特定のユーティリティをもち、ここでは、命
令が実行する参照がレジスタ又は別名エントリのオペラ
ンドによりすべて満足できるとプロセッサ・コアが判定
すると、直ちにプロセッサは、スレッド間のコミュテー
ション(commutation)をトリガする(コン
テキスト切替えとも呼ばれる)命令を与えないことを決
定できる。別名装置がない場合は、目的のメモリ位置が
キャッシュにあるかどうかをデータ・キャッシュが判定
するまで、コンテキスト切替え決定を遅らせる必要があ
る。コンテキスト切替えは、値がキャッシュにない場合
に発生する。本発明のプロセッサにより初期の決定が可
能になることで、マルチ・スレッド・コンテキスト切替
えが単純化され、同じデータ・オブジェクトに対する複
数処理スレッドによるアクセスが改良される。このよう
に、本発明はコンテキスト切替えの性能を改良する。
【0018】別名装置30は、別名装置バッファ・メモ
リの記憶位置に対して比較的高速なアクセスを実行する
ので、従来のレジスタ構造のいくつかの利点を得られ
る。即ち、アクセス時間が一定、且つ比較的迅速であ
り、別名装置参照のコード化に要するビットは、メモリ
・アドレス参照の場合よりはるかに少ない。そのうえ、
別名装置エントリは曖昧参照問題の影響を受けにくく、
そのためにキャッシュ・レジスタ構造の利点を共有でき
る。更に、可変サイズ・データ・レコードは、レジス
タ、キャッシュ、又はメモリ・アドレス位置のいずれか
を使用した機械命令で参照される場合より、容易且つ効
率的に参照される。このように、別名装置エントリは、
短縮名により指定される可変長記憶であり、キャッシュ
・レジスタのもつ固定長記憶に起因する制約がない。
リの記憶位置に対して比較的高速なアクセスを実行する
ので、従来のレジスタ構造のいくつかの利点を得られ
る。即ち、アクセス時間が一定、且つ比較的迅速であ
り、別名装置参照のコード化に要するビットは、メモリ
・アドレス参照の場合よりはるかに少ない。そのうえ、
別名装置エントリは曖昧参照問題の影響を受けにくく、
そのためにキャッシュ・レジスタ構造の利点を共有でき
る。更に、可変サイズ・データ・レコードは、レジス
タ、キャッシュ、又はメモリ・アドレス位置のいずれか
を使用した機械命令で参照される場合より、容易且つ効
率的に参照される。このように、別名装置エントリは、
短縮名により指定される可変長記憶であり、キャッシュ
・レジスタのもつ固定長記憶に起因する制約がない。
【0019】図2は、別名装置30が別名バッファ・メ
モリ32と呼ばれる記憶位置のグループ、別名エントリ
のテーブル34、及びバッファ・メモリと別名エントリ
・テーブルの使用を制御する、別名制御論理36で構成
されていることを示す構成図である。各別名エントリ
は、そのエントリが別名指定されるメモリ装置24のア
ドレスと、関連する別名バッファ・メモリ32のバイト
数と、別名エントリの値が格納される別名バッファ・メ
モリの、メモリの先頭バイトを指すベース・アドレスと
を含む。上記のように、各別名エントリが参照される1
つの方法は、関連機械命令にコード化される、小さな名
前スペースから選択された固有の名前による参照であ
り、アドレス可能レジスタの参照の場合とほとんど同様
な方法である。
モリ32と呼ばれる記憶位置のグループ、別名エントリ
のテーブル34、及びバッファ・メモリと別名エントリ
・テーブルの使用を制御する、別名制御論理36で構成
されていることを示す構成図である。各別名エントリ
は、そのエントリが別名指定されるメモリ装置24のア
ドレスと、関連する別名バッファ・メモリ32のバイト
数と、別名エントリの値が格納される別名バッファ・メ
モリの、メモリの先頭バイトを指すベース・アドレスと
を含む。上記のように、各別名エントリが参照される1
つの方法は、関連機械命令にコード化される、小さな名
前スペースから選択された固有の名前による参照であ
り、アドレス可能レジスタの参照の場合とほとんど同様
な方法である。
【0020】例えば、対象となる各別名エントリが、ア
センブリ言語プログラミング・コードの中で文字「A」
の後に番号を付けて参照される場合を想定する。「A
0」を参照するアセンブリ言語命令参照は、制御論理3
6によりテーブル34の先頭の別名エントリに向けられ
る。「A1」の命令参照は第2番目の別名エントリに、
「A2」の命令参照は第3番目の別名エントリに、とい
う具合に向けられていく。一般的に、別名装置30は、
テーブル34に少なくとも2つから最大256までの別
名エントリを収容できる。別名バッファ・メモリは、も
っと大きくできる。例えば、16キロバイト(16K
B)または32KBの記憶容量をもつことが可能であ
る。別名エントリ名は、データ・オブジェクトを参照す
る簡単な方法である。下記で詳細を説明する明示命令
は、別名エントリが参照する値のロード及び格納だけで
はなく、そのエントリの構成にも対処する。
センブリ言語プログラミング・コードの中で文字「A」
の後に番号を付けて参照される場合を想定する。「A
0」を参照するアセンブリ言語命令参照は、制御論理3
6によりテーブル34の先頭の別名エントリに向けられ
る。「A1」の命令参照は第2番目の別名エントリに、
「A2」の命令参照は第3番目の別名エントリに、とい
う具合に向けられていく。一般的に、別名装置30は、
テーブル34に少なくとも2つから最大256までの別
名エントリを収容できる。別名バッファ・メモリは、も
っと大きくできる。例えば、16キロバイト(16K
B)または32KBの記憶容量をもつことが可能であ
る。別名エントリ名は、データ・オブジェクトを参照す
る簡単な方法である。下記で詳細を説明する明示命令
は、別名エントリが参照する値のロード及び格納だけで
はなく、そのエントリの構成にも対処する。
【0021】図1に戻ると、好ましい実施例は、プロセ
ッサ・コア22の中に、命令キャッシュ40及び命令フ
ロー装置42を含む。命令フロー装置は、命令キャッシ
ュから命令を受取り、処理システム20に関連付けられ
た処理の実行を、当業者に周知の方法で制御する。必要
な場合は、処理システムは複数処理スレッドの実行を制
御するマルチ・タスキング環境をサポートできる。命令
フロー装置42は、プロセッサ・コア22の実行回路
に、機械命令を選択的に提供する。この実行回路は、分
岐装置44、固定小数点演算装置46、ロード/格納装
置48、及び浮動小数点演算装置52を含む。プロセッ
サ・コアは、汎用レジスタ(GPR)54、特殊目的レ
ジスタ(SPR)56、及び浮動少数点レジスタ(FP
R)58のセットを実装する回路も含む。これらのレジ
スタは、プロセッサ・コアの実行回路にオペランドを提
供する。特殊目的レジスタは、マルチ・タスキング・モ
ードの操作におけるスレッド切替えと一緒に、プロセッ
サ状態情報の格納に使用できる。
ッサ・コア22の中に、命令キャッシュ40及び命令フ
ロー装置42を含む。命令フロー装置は、命令キャッシ
ュから命令を受取り、処理システム20に関連付けられ
た処理の実行を、当業者に周知の方法で制御する。必要
な場合は、処理システムは複数処理スレッドの実行を制
御するマルチ・タスキング環境をサポートできる。命令
フロー装置42は、プロセッサ・コア22の実行回路
に、機械命令を選択的に提供する。この実行回路は、分
岐装置44、固定小数点演算装置46、ロード/格納装
置48、及び浮動小数点演算装置52を含む。プロセッ
サ・コアは、汎用レジスタ(GPR)54、特殊目的レ
ジスタ(SPR)56、及び浮動少数点レジスタ(FP
R)58のセットを実装する回路も含む。これらのレジ
スタは、プロセッサ・コアの実行回路にオペランドを提
供する。特殊目的レジスタは、マルチ・タスキング・モ
ードの操作におけるスレッド切替えと一緒に、プロセッ
サ状態情報の格納に使用できる。
【0022】別名装置30は、ロード/格納装置48か
らプロセッサ・コア・インターフェース・バス60を介
して、別名レジスタ命令を受取り、ロード/格納装置へ
別名エントリ・ヒット及びミスに関する情報を提供す
る。即ち、別名装置は、別名バッファ・メモリ32(図
2)で検出された別名エントリ参照のデータ値を返す
か、あるいは、別名エントリで検出されなかった値を参
照しようとして不首尾に終わった旨を返す。別名装置3
0は、キャッシュ別名装置バス62を介してデータ・キ
ャッシュとも通信し、データ値の有効アドレス格納、間
接アドレス指定とも呼ばれる、を効率的に実行する。即
ち、有効アドレスによる命令メモリ参照に応答し、ロー
ド/格納装置48は機械命令をデータ・キャッシュ28
及び別名装置30の両方に同時に提供する。参照された
オペランドがこれらの中間記憶素子のどちらか一方に配
置されると、残りの片方に直ちにこれが通知され、その
結果、この残りの片方は、参照されたデータをフェッチ
するための、メモリ・インターフェース26との不要な
通信を行わない。メモリ・インターフェース・フェッチ
は、一旦開始されるとこれを中止することが難しいの
で、このメモリ・インターフェース・フェッチの先取り
は重要である。
らプロセッサ・コア・インターフェース・バス60を介
して、別名レジスタ命令を受取り、ロード/格納装置へ
別名エントリ・ヒット及びミスに関する情報を提供す
る。即ち、別名装置は、別名バッファ・メモリ32(図
2)で検出された別名エントリ参照のデータ値を返す
か、あるいは、別名エントリで検出されなかった値を参
照しようとして不首尾に終わった旨を返す。別名装置3
0は、キャッシュ別名装置バス62を介してデータ・キ
ャッシュとも通信し、データ値の有効アドレス格納、間
接アドレス指定とも呼ばれる、を効率的に実行する。即
ち、有効アドレスによる命令メモリ参照に応答し、ロー
ド/格納装置48は機械命令をデータ・キャッシュ28
及び別名装置30の両方に同時に提供する。参照された
オペランドがこれらの中間記憶素子のどちらか一方に配
置されると、残りの片方に直ちにこれが通知され、その
結果、この残りの片方は、参照されたデータをフェッチ
するための、メモリ・インターフェース26との不要な
通信を行わない。メモリ・インターフェース・フェッチ
は、一旦開始されるとこれを中止することが難しいの
で、このメモリ・インターフェース・フェッチの先取り
は重要である。
【0023】本発明に従って構成されるプロセッサの好
ましい実施例には、変換索引緩衝機構(TLB)64と
呼ばれる、仮想から実アドレス・マッピングが入った特
殊目的バッファも含まれる。このTLBは、仮想メモリ
位置に格納されたデータのアクセス速度を改善できる。
TLBは、別名装置30から見たプロセッサの操作に影
響しない。当業者には、これ以上の説明がなくてもTL
Bの実装方法は理解されるであろう。
ましい実施例には、変換索引緩衝機構(TLB)64と
呼ばれる、仮想から実アドレス・マッピングが入った特
殊目的バッファも含まれる。このTLBは、仮想メモリ
位置に格納されたデータのアクセス速度を改善できる。
TLBは、別名装置30から見たプロセッサの操作に影
響しない。当業者には、これ以上の説明がなくてもTL
Bの実装方法は理解されるであろう。
【0024】別名装置30は、効率的なコンパイラ設計
で使用され、例えば、実行時に先立って割振られた、コ
ンパイラがアクセスを繰返し要求すると予想するデータ
・レコードを含む。コンパイラは、別名エントリ名及び
オフセットの単一参照で、データ・レコード全体又はデ
ータ・レコードの選択された部分を代わるがわる参照す
る命令を生成する。可変長記憶仕様なので、データ・レ
コードの選択された部分に対する実際の参照が、別名エ
ントリの有効時間中にオーバラップにより破壊されない
ことが保証できる場合は、コンパイラは別名記憶装置内
の別名エントリを区別するために、記憶位置の割当てを
オーバラップすることを選択できる。このように、2つ
のデータ・オブジェクト名は、実行時以前に互いに関連
付けられる、即ち別名指定される。これは、コンパイラ
生成マシン・コードの効率を高める。
で使用され、例えば、実行時に先立って割振られた、コ
ンパイラがアクセスを繰返し要求すると予想するデータ
・レコードを含む。コンパイラは、別名エントリ名及び
オフセットの単一参照で、データ・レコード全体又はデ
ータ・レコードの選択された部分を代わるがわる参照す
る命令を生成する。可変長記憶仕様なので、データ・レ
コードの選択された部分に対する実際の参照が、別名エ
ントリの有効時間中にオーバラップにより破壊されない
ことが保証できる場合は、コンパイラは別名記憶装置内
の別名エントリを区別するために、記憶位置の割当てを
オーバラップすることを選択できる。このように、2つ
のデータ・オブジェクト名は、実行時以前に互いに関連
付けられる、即ち別名指定される。これは、コンパイラ
生成マシン・コードの効率を高める。
【0025】図2に示す別名エントリのテーブル34
は、図1に示すこの他のプロセッサ・レジスタに使用さ
れるものと同様の構造でハードウェアに実装されること
が好ましい。したがって、別名エントリを検索するため
のアクセス時間は、メモリ装置24の記憶位置からデー
タを検索する場合よりずっと速い。このように、別名装
置30の回路は、従来の集積回路製造技術を使用して実
装可能である。プロセッサ・システム20の設計には、
使用可能な最大数の別名エントリを組込むことが必要で
ある。但しコンパイラは、そこで使用可能な別名エント
リすべてを割振る必要はない。
は、図1に示すこの他のプロセッサ・レジスタに使用さ
れるものと同様の構造でハードウェアに実装されること
が好ましい。したがって、別名エントリを検索するため
のアクセス時間は、メモリ装置24の記憶位置からデー
タを検索する場合よりずっと速い。このように、別名装
置30の回路は、従来の集積回路製造技術を使用して実
装可能である。プロセッサ・システム20の設計には、
使用可能な最大数の別名エントリを組込むことが必要で
ある。但しコンパイラは、そこで使用可能な別名エント
リすべてを割振る必要はない。
【0026】上記の説明のとおり、プロセッサ20は、
別名エントリにより参照される値の割振り、ロード、及
び格納をサポートする明示命令セット構造を含む。プロ
セッサの操作は、図3から図8の流れ図を参照すると理
解が容易であろう。これらの図は、プロセッサが例示的
別名装置命令セット・オペコードの実行で実施する処理
ステップを示す。
別名エントリにより参照される値の割振り、ロード、及
び格納をサポートする明示命令セット構造を含む。プロ
セッサの操作は、図3から図8の流れ図を参照すると理
解が容易であろう。これらの図は、プロセッサが例示的
別名装置命令セット・オペコードの実行で実施する処理
ステップを示す。
【0027】図3は、別名エントリ・オペコードを割振
り及び初期化(ロード)の実行でプロセッサ20が実施
する操作ステップを示す。この命令では、プロセッサは
データ・オブジェクトをメモリ装置24からフェッチ
し、別名装置30の関連する別名エントリが指定する連
続する記憶位置にこれをロードする。割振りは、コンパ
イラがプロセッサ・システム20を利用してコンパイル
時に実行する。これは、ほとんどの中間記憶装置割振り
が実行時に行われる点とは対照的である。流れ図ボック
ス102に示すように、命令フロー装置42が別名ロー
ド・オペコードをもつ機械命令を命令キャッシュ40か
ら受取ったときに処理が開始される。例示的機械命令を
図3に示す。この命令は、別名ロード・オペコード・フ
ィールド、別名エントリ名(番号)フィールド、メモリ
装置の有効アドレスの計算に必要なオペランド、別名バ
ッファ・メモリのバイト単位のレコード・サイズ、及び
別名バッファ・メモリのデータ・オブジェクトのベース
・アドレスを含む。図3及びこれ以降の流れ図に示す命
令フィールドの順番は任意のものであり、本発明の範囲
から逸脱せずに、他の順番が選択可能であることは理解
できるであろう。
り及び初期化(ロード)の実行でプロセッサ20が実施
する操作ステップを示す。この命令では、プロセッサは
データ・オブジェクトをメモリ装置24からフェッチ
し、別名装置30の関連する別名エントリが指定する連
続する記憶位置にこれをロードする。割振りは、コンパ
イラがプロセッサ・システム20を利用してコンパイル
時に実行する。これは、ほとんどの中間記憶装置割振り
が実行時に行われる点とは対照的である。流れ図ボック
ス102に示すように、命令フロー装置42が別名ロー
ド・オペコードをもつ機械命令を命令キャッシュ40か
ら受取ったときに処理が開始される。例示的機械命令を
図3に示す。この命令は、別名ロード・オペコード・フ
ィールド、別名エントリ名(番号)フィールド、メモリ
装置の有効アドレスの計算に必要なオペランド、別名バ
ッファ・メモリのバイト単位のレコード・サイズ、及び
別名バッファ・メモリのデータ・オブジェクトのベース
・アドレスを含む。図3及びこれ以降の流れ図に示す命
令フィールドの順番は任意のものであり、本発明の範囲
から逸脱せずに、他の順番が選択可能であることは理解
できるであろう。
【0028】次の操作ステップは、流れ図ボックス10
4に示すように、命令フロー装置42が別名ロード命令
をロード/格納装置48にディスパッチすることであ
る。命令フロー装置のディスパッチ操作は、当業者には
周知の技術である。これに応答して、ロード/格納装置
はボックス106で有効メモリ・アドレスを計算する。
ロード/格納装置は、次に流れ図ボックス108で示す
ように、計算された有効アドレスにより指示されるデー
タ・オブジェクトを、メモリ装置24またはデータ・キ
ャッシュ28のいずれかから、プロセッサ設計に従って
フェッチする。フェッチの実行は、当業者には周知の技
術である。次の処理ステップでは、流れ図ボックス11
0で示すように、ロード/格納装置が別名ロード命令を
フェッチされたデータと共に、別名エントリ割振りのた
めに別名装置へ送る。
4に示すように、命令フロー装置42が別名ロード命令
をロード/格納装置48にディスパッチすることであ
る。命令フロー装置のディスパッチ操作は、当業者には
周知の技術である。これに応答して、ロード/格納装置
はボックス106で有効メモリ・アドレスを計算する。
ロード/格納装置は、次に流れ図ボックス108で示す
ように、計算された有効アドレスにより指示されるデー
タ・オブジェクトを、メモリ装置24またはデータ・キ
ャッシュ28のいずれかから、プロセッサ設計に従って
フェッチする。フェッチの実行は、当業者には周知の技
術である。次の処理ステップでは、流れ図ボックス11
0で示すように、ロード/格納装置が別名ロード命令を
フェッチされたデータと共に、別名エントリ割振りのた
めに別名装置へ送る。
【0029】流れ図ボックス112に示す処理ステップ
では、別名ロード命令が別名装置制御論理36により受
信される。この制御論理は、別名装置制御装置、又は単
純に別名制御装置とも呼ばれる。ボックス112で、別
名装置制御装置は、ボックス102で示すステップで受
信されたロード命令から得られた有効アドレス、バイト
長、及びベース・アドレスと共に、別名テーブル・エン
トリを指定された別名エントリ索引番号に格納する。別
名制御装置は次のステップで、流れ図ボックス114で
示すように、メモリ装置24又はデータ・キャッシュ2
8からフェッチされた値を、ベース・アドレスから開始
し、機械命令に含まれるバイト単位のレコード・サイズ
で指示されるアドレス位置数だけ連続する、別名バッフ
ァ・メモリ記憶位置に割当てる。最後に、命令実行は、
流れ図ボックス116に示すように、命令フロー装置4
2に完了表示を返して完了する。このように、図3は別
名エントリのテーブル34及びバッファ・メモリ32の
ロード方法を示す。
では、別名ロード命令が別名装置制御論理36により受
信される。この制御論理は、別名装置制御装置、又は単
純に別名制御装置とも呼ばれる。ボックス112で、別
名装置制御装置は、ボックス102で示すステップで受
信されたロード命令から得られた有効アドレス、バイト
長、及びベース・アドレスと共に、別名テーブル・エン
トリを指定された別名エントリ索引番号に格納する。別
名制御装置は次のステップで、流れ図ボックス114で
示すように、メモリ装置24又はデータ・キャッシュ2
8からフェッチされた値を、ベース・アドレスから開始
し、機械命令に含まれるバイト単位のレコード・サイズ
で指示されるアドレス位置数だけ連続する、別名バッフ
ァ・メモリ記憶位置に割当てる。最後に、命令実行は、
流れ図ボックス116に示すように、命令フロー装置4
2に完了表示を返して完了する。このように、図3は別
名エントリのテーブル34及びバッファ・メモリ32の
ロード方法を示す。
【0030】図4は、プロセッサがロード・オペコード
の実行で実施する操作ステップを示す。この命令では、
プロセッサは別名バッファ・メモリの別名エントリ値
を、図1のプロセッサ・コア・レジスタ54、56、5
8の1つにロードする。処理は、流れ図ボックス120
に示すように、命令フロー装置が、別名レジスタからの
レジスタ・ロード・オペコードをもつ機械命令を命令キ
ャッシュから受信したときに開始される。図4に示す例
示的機械命令は、命令フィールドに、別名レジスタから
のレジスタ・ロード・オペコード・フィールド、サイズ
・フィールド、別名エントリ名(番号)フィールド、宛
先レジスタ名前フィールド、及び別名バッファ・メモリ
へのオフセットを含む。オフセットにより、別名エント
リに関連付けられたデータ・オブジェクトの特定の部分
を選択できる。
の実行で実施する操作ステップを示す。この命令では、
プロセッサは別名バッファ・メモリの別名エントリ値
を、図1のプロセッサ・コア・レジスタ54、56、5
8の1つにロードする。処理は、流れ図ボックス120
に示すように、命令フロー装置が、別名レジスタからの
レジスタ・ロード・オペコードをもつ機械命令を命令キ
ャッシュから受信したときに開始される。図4に示す例
示的機械命令は、命令フィールドに、別名レジスタから
のレジスタ・ロード・オペコード・フィールド、サイズ
・フィールド、別名エントリ名(番号)フィールド、宛
先レジスタ名前フィールド、及び別名バッファ・メモリ
へのオフセットを含む。オフセットにより、別名エント
リに関連付けられたデータ・オブジェクトの特定の部分
を選択できる。
【0031】流れ図ボックス122で示すように、次の
操作ステップでは、命令フロー装置が別名レジスタから
のロード命令をロード/格納装置へディスパッチする。
これに応答して、ロード/格納装置はボックス124で
命令を別名装置に送信する。次に別名制御装置は、流れ
図ボックス126に示すように、指定された別名と関連
付けられた別名バッファ・メモリのベース・アドレスに
オフセットを加算し、バッファ・アドレスを生成する。
次の処理ステップでは、流れ図ボックス128に示すよ
うに、別名制御装置が、指定されたサイズに対して指定
されたアドレスでのバッファの値を、ロード/格納装置
に転送して戻す。
操作ステップでは、命令フロー装置が別名レジスタから
のロード命令をロード/格納装置へディスパッチする。
これに応答して、ロード/格納装置はボックス124で
命令を別名装置に送信する。次に別名制御装置は、流れ
図ボックス126に示すように、指定された別名と関連
付けられた別名バッファ・メモリのベース・アドレスに
オフセットを加算し、バッファ・アドレスを生成する。
次の処理ステップでは、流れ図ボックス128に示すよ
うに、別名制御装置が、指定されたサイズに対して指定
されたアドレスでのバッファの値を、ロード/格納装置
に転送して戻す。
【0032】ロード/格納装置が別名バッファ・メモリ
からデータを受信すると、これはその値を、流れ図ボッ
クス120で受信された命令の中で指定されたプロセッ
サ・ハードウェア・レジスタに転送する。この処理ステ
ップは、流れ図ボックス130に示される。最後に、命
令実行は、流れ図ボックス132に示すように、命令フ
ロー装置に完了表示を返して完了する。
からデータを受信すると、これはその値を、流れ図ボッ
クス120で受信された命令の中で指定されたプロセッ
サ・ハードウェア・レジスタに転送する。この処理ステ
ップは、流れ図ボックス130に示される。最後に、命
令実行は、流れ図ボックス132に示すように、命令フ
ロー装置に完了表示を返して完了する。
【0033】図5は、プロセッサがロード・オペコード
の実行で実施する操作ステップを示す。この命令では、
プロセッサは有効アドレス構造を使用し、データ・キャ
ッシュ又は別名エントリのいずれかからのデータをプロ
セッサ・レジスタにロードする。処理は、流れ図ボック
ス140に示すように、命令フロー装置が、命令キャッ
シュから有効アドレス指定ロード命令をもつ機械命令を
受信したときに開始される。図5に示す例示的機械命令
は、メモリ・ロード・オペコード・フィールド、サイズ
・フィールド、プロセッサ・メモリの有効アドレスの計
算に必要なオペランド、及びプロセッサ・レジスタ名
(番号)を含む命令フィールドを示す。
の実行で実施する操作ステップを示す。この命令では、
プロセッサは有効アドレス構造を使用し、データ・キャ
ッシュ又は別名エントリのいずれかからのデータをプロ
セッサ・レジスタにロードする。処理は、流れ図ボック
ス140に示すように、命令フロー装置が、命令キャッ
シュから有効アドレス指定ロード命令をもつ機械命令を
受信したときに開始される。図5に示す例示的機械命令
は、メモリ・ロード・オペコード・フィールド、サイズ
・フィールド、プロセッサ・メモリの有効アドレスの計
算に必要なオペランド、及びプロセッサ・レジスタ名
(番号)を含む命令フィールドを示す。
【0034】流れ図ボックス142に示す次の操作ステ
ップでは、命令フロー装置は、ロード命令をロード/格
納装置にディスパッチする。これに応答して、ロード/
格納装置はボックス144で有効メモリ・アドレスを計
算する。次に、流れ図ボックス146に示すように、ロ
ード/格納装置は、機械命令をデータ・キャッシュ及び
別名装置の両方に同時に提供する。別名装置では、機械
命令は別名装置制御装置が受信する。制御装置は、流れ
図ボックス148で示すように、ロード/格納装置から
受信した有効アドレスを、各別名エントリに属するメモ
リ・アドレス範囲と比較する。制御装置は、別名エント
リからバッファ・メモリ・アドレス範囲を認識する。
ップでは、命令フロー装置は、ロード命令をロード/格
納装置にディスパッチする。これに応答して、ロード/
格納装置はボックス144で有効メモリ・アドレスを計
算する。次に、流れ図ボックス146に示すように、ロ
ード/格納装置は、機械命令をデータ・キャッシュ及び
別名装置の両方に同時に提供する。別名装置では、機械
命令は別名装置制御装置が受信する。制御装置は、流れ
図ボックス148で示すように、ロード/格納装置から
受信した有効アドレスを、各別名エントリに属するメモ
リ・アドレス範囲と比較する。制御装置は、別名エント
リからバッファ・メモリ・アドレス範囲を認識する。
【0035】別名装置制御装置が有効アドレスと別名エ
ントリ間の一致を検出しない場合、流れ図ボックス15
0に示すように、制御装置はキャッシュ別名装置バスを
介してデータ・キャッシュに通知し、ロード命令はデー
タ・キャッシュ又はプロセッサ・メモリで完了する。別
名制御装置が有効アドレスと別名レジスタ・エントリ間
の一致を検出した場合、制御装置はキャッシュ別名装置
バスを介してデータキャッシュに通知し、指定されたサ
イズに対して、指定されたアドレスの別名バッファ・メ
モリの値をロード/格納装置に転送して戻す。この制御
装置処理は、流れ図ボックス152に示す。
ントリ間の一致を検出しない場合、流れ図ボックス15
0に示すように、制御装置はキャッシュ別名装置バスを
介してデータ・キャッシュに通知し、ロード命令はデー
タ・キャッシュ又はプロセッサ・メモリで完了する。別
名制御装置が有効アドレスと別名レジスタ・エントリ間
の一致を検出した場合、制御装置はキャッシュ別名装置
バスを介してデータキャッシュに通知し、指定されたサ
イズに対して、指定されたアドレスの別名バッファ・メ
モリの値をロード/格納装置に転送して戻す。この制御
装置処理は、流れ図ボックス152に示す。
【0036】ロード/格納装置は別名装置からデータを
受信すると、流れ図ボックス140で受信した命令で指
定されたプロセッサ・レジスタに、この値を転送する。
この処理ステップは、流れ図ボックス154に示す。最
後に、命令実行は、流れ図ボックス156に示すよう
に、命令フロー装置に完了表示を返して完了する。
受信すると、流れ図ボックス140で受信した命令で指
定されたプロセッサ・レジスタに、この値を転送する。
この処理ステップは、流れ図ボックス154に示す。最
後に、命令実行は、流れ図ボックス156に示すよう
に、命令フロー装置に完了表示を返して完了する。
【0037】図6は、プロセッサがレジスタ格納オペコ
ードの実行で実施する操作ステップを示す。この命令で
は、プロセッサはプロセッサ・コア(ハードウェア)レ
ジスタからデータ・オブジェクトをフェッチし、これを
別名エントリに格納する。処理は、流れ図ボックス16
0に示すように、命令フロー装置が、命令キャッシュか
らレジスタ格納オペコードをもつ機械命令を受信したと
きに開始される。図6に示す例示的機械命令は、命令
が、レジスタ格納オペコード・フィールド、サイズ・フ
ィールド、別名エントリ名(番号)フィールド、プロセ
ッサ・レジスタ名(番号)フィールド、及び別名バッフ
ァ・メモリへのオフセットを含むことを示す。
ードの実行で実施する操作ステップを示す。この命令で
は、プロセッサはプロセッサ・コア(ハードウェア)レ
ジスタからデータ・オブジェクトをフェッチし、これを
別名エントリに格納する。処理は、流れ図ボックス16
0に示すように、命令フロー装置が、命令キャッシュか
らレジスタ格納オペコードをもつ機械命令を受信したと
きに開始される。図6に示す例示的機械命令は、命令
が、レジスタ格納オペコード・フィールド、サイズ・フ
ィールド、別名エントリ名(番号)フィールド、プロセ
ッサ・レジスタ名(番号)フィールド、及び別名バッフ
ァ・メモリへのオフセットを含むことを示す。
【0038】流れ図ボックス162に示す次の操作ステ
ップでは、命令フロー装置は、格納命令をロード/格納
装置にディスパッチする。これに応答して、ロード/格
納装置は流れ図ボックス164に示すように、格納命令
を別名装置に送信する。命令は別名装置制御装置が受信
し、これは宛先プロセッサ・レジスタ・サイズを命令が
指定するサイズと比較してチェックする。
ップでは、命令フロー装置は、格納命令をロード/格納
装置にディスパッチする。これに応答して、ロード/格
納装置は流れ図ボックス164に示すように、格納命令
を別名装置に送信する。命令は別名装置制御装置が受信
し、これは宛先プロセッサ・レジスタ・サイズを命令が
指定するサイズと比較してチェックする。
【0039】サイズ・チェック処理は、明示別名エント
リを参照するすべてのロード及び格納オペコードに共通
のものであるが、これは次の方法で実施される。サイズ
に適合性がない場合、例えば別名エントリから指定され
るサイズがプロセッサ・コア・レジスタの容量より大き
い場合、別名装置制御装置は命令フロー装置にエラーを
示す。このようなエラーがない場合、制御装置は指定さ
れる別名エントリ名に関連付けられた別名バッファ・メ
モリ位置のベース・アドレスにオフセットを加算して、
バッファ・アドレスを生成する。この処理は、流れ図ボ
ックス166に示す。ボックス168で、別名制御装置
は適切なプロセッサ・コア・レジスタに格納された値を
ロード/格納装置に転送して戻す。次にロード/格納装
置は、その値を指定されたサイズだけバッファ・アドレ
スにロードする。命令実行は、流れ図ボックス170に
示すように、命令フロー装置に完了表示を返して完了す
る。
リを参照するすべてのロード及び格納オペコードに共通
のものであるが、これは次の方法で実施される。サイズ
に適合性がない場合、例えば別名エントリから指定され
るサイズがプロセッサ・コア・レジスタの容量より大き
い場合、別名装置制御装置は命令フロー装置にエラーを
示す。このようなエラーがない場合、制御装置は指定さ
れる別名エントリ名に関連付けられた別名バッファ・メ
モリ位置のベース・アドレスにオフセットを加算して、
バッファ・アドレスを生成する。この処理は、流れ図ボ
ックス166に示す。ボックス168で、別名制御装置
は適切なプロセッサ・コア・レジスタに格納された値を
ロード/格納装置に転送して戻す。次にロード/格納装
置は、その値を指定されたサイズだけバッファ・アドレ
スにロードする。命令実行は、流れ図ボックス170に
示すように、命令フロー装置に完了表示を返して完了す
る。
【0040】図7は、プロセッサがレジスタからの格納
オペコードの実行で実施する操作ステップを示す。この
命令は、有効アドレス構造を使用し、データ・キャッシ
ュ又は別名テーブル・エントリのいずれかにプロセッサ
・レジスタ・データ値を格納する。処理は、流れ図ボッ
クス180に示すように、命令フロー装置がレジスタか
らの格納命令をもつ機械命令を命令キャッシュから受信
したときに開始される。図7に示す例示的機械命令は、
レジスタからの格納オペコード・フィールド、サイズ・
フィールド、メモリ装置の有効アドレスの計算に必要な
オペランド、及びプロセッサ・コア・レジスタ名(番
号)フィールドを含む命令フィールドを示す。
オペコードの実行で実施する操作ステップを示す。この
命令は、有効アドレス構造を使用し、データ・キャッシ
ュ又は別名テーブル・エントリのいずれかにプロセッサ
・レジスタ・データ値を格納する。処理は、流れ図ボッ
クス180に示すように、命令フロー装置がレジスタか
らの格納命令をもつ機械命令を命令キャッシュから受信
したときに開始される。図7に示す例示的機械命令は、
レジスタからの格納オペコード・フィールド、サイズ・
フィールド、メモリ装置の有効アドレスの計算に必要な
オペランド、及びプロセッサ・コア・レジスタ名(番
号)フィールドを含む命令フィールドを示す。
【0041】流れ図ボックス182に示す次の操作ステ
ップでは、命令フロー装置は格納命令をロード/格納装
置にディスパッチする。これに応答して、ロード/格納
装置はボックス184で有効メモリ・アドレスを計算す
る。次に、流れ図ボックス186に示すように、ロード
/格納装置は、機械命令をデータ・キャッシュ及び別名
装置の両方に同時に提供する。別名装置では、機械命令
は別名装置制御装置が受信する。制御装置は、流れ図ボ
ックス188で示すように、ロード/格納装置から受信
した有効アドレスを、指定された別名エントリからの情
報を使用して、別名バッファ・メモリ格納位置アドレス
の範囲と比較する。
ップでは、命令フロー装置は格納命令をロード/格納装
置にディスパッチする。これに応答して、ロード/格納
装置はボックス184で有効メモリ・アドレスを計算す
る。次に、流れ図ボックス186に示すように、ロード
/格納装置は、機械命令をデータ・キャッシュ及び別名
装置の両方に同時に提供する。別名装置では、機械命令
は別名装置制御装置が受信する。制御装置は、流れ図ボ
ックス188で示すように、ロード/格納装置から受信
した有効アドレスを、指定された別名エントリからの情
報を使用して、別名バッファ・メモリ格納位置アドレス
の範囲と比較する。
【0042】別名制御装置が有効アドレスと別名エント
リ間の一致を検出しない場合、流れ図ボックス190に
示すように、制御装置はキャッシュ別名装置バスを介し
てデータ・キャッシュに通知し、格納命令はデータ・キ
ャッシュ(又はキャッシュ・ミスの場合はメモリ)で完
了する。別名制御装置が有効アドレスと別名エントリ間
の一致を検出した場合、制御装置はキャッシュ別名装置
バスを介してデータキャッシュに通知し、指定されたア
ドレスに格納されている値を指定されたアドレスの別名
バッファ・メモリに指定されたサイズ分転送する。この
処理は、流れ図ボックス192に示す。最後に、命令実
行は、流れ図ボックス194に示すように、命令フロー
装置に完了表示を返して完了する。
リ間の一致を検出しない場合、流れ図ボックス190に
示すように、制御装置はキャッシュ別名装置バスを介し
てデータ・キャッシュに通知し、格納命令はデータ・キ
ャッシュ(又はキャッシュ・ミスの場合はメモリ)で完
了する。別名制御装置が有効アドレスと別名エントリ間
の一致を検出した場合、制御装置はキャッシュ別名装置
バスを介してデータキャッシュに通知し、指定されたア
ドレスに格納されている値を指定されたアドレスの別名
バッファ・メモリに指定されたサイズ分転送する。この
処理は、流れ図ボックス192に示す。最後に、命令実
行は、流れ図ボックス194に示すように、命令フロー
装置に完了表示を返して完了する。
【0043】図8は、プロセッサが別名エントリの割振
り解除オペコードの実行で実施する操作ステップを示
す。この命令では、プロセッサは別名エントリ・ベース
・アドレスから指定されるデータ・オブジェクトを割振
り解除する、即ち空にする。処理は、流れ図ボックス2
02に示すように、命令フロー装置が命令キャッシュか
ら、割振り解除命令をもつ機械命令を受信したときに開
始される。図8に示す例示的機械命令は、割振り解除命
令が、別名割振り解除オペコード・フィールド及び別名
エントリ名フィールドを含むことを示す。
り解除オペコードの実行で実施する操作ステップを示
す。この命令では、プロセッサは別名エントリ・ベース
・アドレスから指定されるデータ・オブジェクトを割振
り解除する、即ち空にする。処理は、流れ図ボックス2
02に示すように、命令フロー装置が命令キャッシュか
ら、割振り解除命令をもつ機械命令を受信したときに開
始される。図8に示す例示的機械命令は、割振り解除命
令が、別名割振り解除オペコード・フィールド及び別名
エントリ名フィールドを含むことを示す。
【0044】流れ図ボックス204に示す次の操作ステ
ップでは、命令フロー装置は別名割振り解除命令をロー
ド/格納装置にディスパッチする。これに応答して、ロ
ード/格納装置はボックス206に示すように、別名割
振り解除命令を別名装置に転送する。次の処理ステップ
では、流れ図ボックス208に示すように、別名制御装
置は指定された別名エントリ・ベース・アドレス、及び
指定されたサイズにより指示される別名バッファ・メモ
リ値を、ベース・アドレスから始まり、指定されたバイ
ト数から1だけ減算したバイト値だけ連続するプロセッ
サ・メモリ記憶位置に転送する。最後に、命令実行は、
流れ図ボックス210に示すように、命令フロー装置に
完了表示を返して完了する。
ップでは、命令フロー装置は別名割振り解除命令をロー
ド/格納装置にディスパッチする。これに応答して、ロ
ード/格納装置はボックス206に示すように、別名割
振り解除命令を別名装置に転送する。次の処理ステップ
では、流れ図ボックス208に示すように、別名制御装
置は指定された別名エントリ・ベース・アドレス、及び
指定されたサイズにより指示される別名バッファ・メモ
リ値を、ベース・アドレスから始まり、指定されたバイ
ト数から1だけ減算したバイト値だけ連続するプロセッ
サ・メモリ記憶位置に転送する。最後に、命令実行は、
流れ図ボックス210に示すように、命令フロー装置に
完了表示を返して完了する。
【0045】上記に説明したプロセッサでは、各種のサ
イズをもつデータ・オブジェクトの対象となる特定のサ
ブフィールドを、機械命令が効率的に参照することが可
能である。データ・オブジェクトはコンパイラにより別
名バッファ・メモリにパックされるので、その結果各別
名エントリが参照するバッファ・メモリ内の情報の量
は、格納されたデータ・オブジェクトの長さとちょうど
同じになる。したがって、プロセッサ・メモリ資源の効
率的な使用が促進される。以上により、別名装置は、コ
ンパイラが使用する、効率的で高速な中間記憶装置とな
る。
イズをもつデータ・オブジェクトの対象となる特定のサ
ブフィールドを、機械命令が効率的に参照することが可
能である。データ・オブジェクトはコンパイラにより別
名バッファ・メモリにパックされるので、その結果各別
名エントリが参照するバッファ・メモリ内の情報の量
は、格納されたデータ・オブジェクトの長さとちょうど
同じになる。したがって、プロセッサ・メモリ資源の効
率的な使用が促進される。以上により、別名装置は、コ
ンパイラが使用する、効率的で高速な中間記憶装置とな
る。
【0046】プロセッサ20は、キーボード、ディスプ
レイ装置、マウス、プリンタ等、従来の入出力装置を有
するコンピュータにインストールできる。図9は、上記
で説明したプロセッサ20を含むコンピュータ300の
構成図を示す。入出力装置は、単一ブロック302で示
され、データ・バス304を介してプロセッサ20と接
続する。入出力ブロック装置の中に、オペレータがプロ
セッサの操作の制御に使用する装置が含まれることが望
ましい。更に、二次データ記憶装置306がプロセッサ
と接続する。この装置は、磁気ディスク、磁気光ディス
ク、磁気テープ、CD−ROM装置等の装置を含む。コ
ンピュータ300は、インストール済みのコンパイラ3
08を使用する。これは、プロセッサ20の中に図示す
る。一般的にコンパイラは、図1に示す主メモリ装置2
4の一部を占有するようにプロセッサにインストールさ
れることを、当業者は理解するであろう。コンパイラが
入出力装置から向けられたプログラム言語コードを受信
し、言語コードを機械命令に変換するためのコンパイル
処理を実行することを、当業者は認識するであろう。コ
ンパイラがコンパイル処理を完了すると、プロセッサが
実行時処理の中で機械命令を実行する。上記に説明した
プロセッサ20の機械命令セットを使用して、コンパイ
ラ308は実行時に先立ち、別名バッファ・メモリの可
変長ブロックを割振る。
レイ装置、マウス、プリンタ等、従来の入出力装置を有
するコンピュータにインストールできる。図9は、上記
で説明したプロセッサ20を含むコンピュータ300の
構成図を示す。入出力装置は、単一ブロック302で示
され、データ・バス304を介してプロセッサ20と接
続する。入出力ブロック装置の中に、オペレータがプロ
セッサの操作の制御に使用する装置が含まれることが望
ましい。更に、二次データ記憶装置306がプロセッサ
と接続する。この装置は、磁気ディスク、磁気光ディス
ク、磁気テープ、CD−ROM装置等の装置を含む。コ
ンピュータ300は、インストール済みのコンパイラ3
08を使用する。これは、プロセッサ20の中に図示す
る。一般的にコンパイラは、図1に示す主メモリ装置2
4の一部を占有するようにプロセッサにインストールさ
れることを、当業者は理解するであろう。コンパイラが
入出力装置から向けられたプログラム言語コードを受信
し、言語コードを機械命令に変換するためのコンパイル
処理を実行することを、当業者は認識するであろう。コ
ンパイラがコンパイル処理を完了すると、プロセッサが
実行時処理の中で機械命令を実行する。上記に説明した
プロセッサ20の機械命令セットを使用して、コンパイ
ラ308は実行時に先立ち、別名バッファ・メモリの可
変長ブロックを割振る。
【0047】更に詳細に述べれば、コンパイラ308
は、図3に示した割振り命令を使用して、各種サイズの
データ・レコードに別名バッファ・メモリ32(図2)
のブロックを割当て、及びコンパイル時にこのような割
振りを実行できる。このようなコンパイル時割振りは、
データ・レコード管理及びその他の最適化の効率を高め
る。例えば、機械命令が実行するすべての参照が、レジ
スタ内のオペランド又は別名エントリ・テーブル34内
のオペランドで満足できるとプロセッサ・コア22が判
定すると直ちに、コンパイラ308はコンパイル時に複
数処理スレッド間のコミュテーション(コンテキスト切
替えとも呼ばれる)を実施できる。別名装置30がない
場合は、目的のメモリ位置がキャッシュにあるかどうか
をデータ・キャッシュ28が判定するまで、コンテキス
ト切替え決定は延期される。コンテキスト切替えは、値
がキャッシュの中にない場合に発生する。プロセッサ2
0により初期の決定が可能になることで、複数スレッド
・コンテキスト切替えが単純化され、同じデータ・オブ
ジェクトに対する複数処理スレッドによるアクセスが改
良される。
は、図3に示した割振り命令を使用して、各種サイズの
データ・レコードに別名バッファ・メモリ32(図2)
のブロックを割当て、及びコンパイル時にこのような割
振りを実行できる。このようなコンパイル時割振りは、
データ・レコード管理及びその他の最適化の効率を高め
る。例えば、機械命令が実行するすべての参照が、レジ
スタ内のオペランド又は別名エントリ・テーブル34内
のオペランドで満足できるとプロセッサ・コア22が判
定すると直ちに、コンパイラ308はコンパイル時に複
数処理スレッド間のコミュテーション(コンテキスト切
替えとも呼ばれる)を実施できる。別名装置30がない
場合は、目的のメモリ位置がキャッシュにあるかどうか
をデータ・キャッシュ28が判定するまで、コンテキス
ト切替え決定は延期される。コンテキスト切替えは、値
がキャッシュの中にない場合に発生する。プロセッサ2
0により初期の決定が可能になることで、複数スレッド
・コンテキスト切替えが単純化され、同じデータ・オブ
ジェクトに対する複数処理スレッドによるアクセスが改
良される。
【0048】プログラム変換中に高レベル言語コンパイ
ラにより提供するのではなく、図3から図8に示す命令
を具現化する、アセンブリ・レベル及びマシン・レベル
のルーチンの作成、入力、及びコンパイルが可能である
ことを、当業者は理解するであろう。このようなルーチ
ンは、図1及び図2に示す構造を有するプロセッサで実
行された場合に、上記で説明した命令を実施する。
ラにより提供するのではなく、図3から図8に示す命令
を具現化する、アセンブリ・レベル及びマシン・レベル
のルーチンの作成、入力、及びコンパイルが可能である
ことを、当業者は理解するであろう。このようなルーチ
ンは、図1及び図2に示す構造を有するプロセッサで実
行された場合に、上記で説明した命令を実施する。
【0049】まとめとして本発明の構成に関して以下の
事項を開示する。
事項を開示する。
【0050】(1) プロセッサ実行論理を実施し及び
命令セット構造動作をサポートする回路を有するプロセ
ッサ・コアと、プロセッサ・コアがデータ・オブジェク
トを格納し、データ・オブジェクトを検索するアドレス
可能記憶位置を有するメモリ装置と、複数の記憶位置を
有す別名バッファ・メモリと、別名エントリ名により索
引付けられ、メモリ装置アドレス、長さ値、及び別名バ
ッファ・メモリの記憶位置を識別するベース・アドレス
・ポインタを含む別名エントリのテーブルと、別名バッ
ファ・メモリの記憶位置の割振りのために機械命令をプ
ロセッサ・コアから受信し及び応答して機械命令に含ま
れるベース・アドレス値を機械命令に含まれる別名エン
トリ名に取込む制御論理とを有する別名装置と、を含む
プロセッサ・システム。 (2) 前記制御論理が、別名エントリ・テーブルに含
まれるメモリ装置アドレス記憶位置の参照を有する受信
された機械命令に応答して、対応する別名エントリで指
定されるアドレス位置の数だけ別名バッファ・メモリ値
にその参照を自動的にリダイレクトする、(1)に記載
のプロセッサ・システム。 (3) 前記制御論理が、指定されるアドレスの別名バ
ッファ・メモリでデータを格納又は検索する受信された
機械命令に応答して、指定されるアドレスを別名エント
リ・テーブルに含まれるメモリ装置アドレス記憶位置と
比較し、記憶位置が別名エントリ・テーブルで検出され
ない場合に参照が不首尾に終わったことを示す、(2)
に記載のプロセッサ・システム。 (4) 別名エントリ・テーブル索引名の明示参照を有
する受信された機械命令が、別名制御論理により対応す
る別名エントリで指定されるアドレス位置の数だけ別名
バッファ・メモリ値に自動的にリダイレクトされる、
(1)に記載のプロセッサ・システム。 (5) データ・キャッシュ中間記憶装置と、データ・
キャッシュ及び別名装置がそれぞれの操作状態に関する
情報を交換するときに介するキャッシュ別名装置バスと
を更に含み、前記制御論理が、有効アドレス指定構造を
使用して値を格納する受信された機械命令に応答して、
機械命令から計算される有効アドレスが別名バッファ・
メモリの位置と対応するかどうかを判定し、判定結果を
データ・キャッシュに通知する、(1)に記載のプロセ
ッサ・システム。 (6) 前記制御論理が、機械命令で指定されるバッフ
ァ・メモリ・ベース・アドレスから開始し、指定される
アドレス位置の数だけ終了アドレスまで連続する別名バ
ッファ・メモリからの値を宛先プロセッサ・コア・レジ
スタにロードする受信された機械命令に応答して、所定
の宛先レジスタ・サイズを指定されるアドレス位置の数
と比較し、機械命令で指定される長さ値が宛先レジスタ
のサイズを超える場合にエラーを表示する、(1)に記
載のプロセッサ・システム。 (7) 前記制御論理が、別名エントリを割振り及び初
期化する受信された機械命令に応答して、メモリ装置ア
ドレス記憶位置、バイト長値、及び別名バッファ・メモ
リ・ベース・アドレスを機械命令で指定される別名エン
トリ・テーブル索引に格納し、次に別名エントリで指定
される先頭メモリ装置アドレス記憶位置に配置されバイ
ト長値で指定されるアドレス位置の数だけ連続するデー
タ・レコードをベース・アドレスから開始しバイト長値
で指定されるアドレス位置の数だけ連続する別名バッフ
ァ・メモリに格納する、(1)に記載のプロセッサ・シ
ステム。 (8) 前記制御論理が、別名バッファ・メモリに格納
されたデータ・レコードをプロセッサ・コア・レジスタ
にロードする受信された機械命令に応答して、機械命令
で指定されるオフセット値を加算してバッファ・アドレ
スを生成し、バッファ・アドレス記憶位置から開始し機
械命令で指定されるバイト長値で指定されるアドレス位
置の数だけ連続する別名バッファ・メモリ内のデータ・
レコードを転送する、(1)に記載のプロセッサ・シス
テム。 (9) 前記制御論理が、データ・キャッシュまたは別
名装置のいずれかからのデータ・レコードをプロセッサ
・コア・レジスタにロードする受信された機械命令に応
答して、機械命令で指定される有効アドレスが別名バッ
ファ・メモリ・アドレス記憶位置と対応するかどうかを
判定し、判定をデータ・キャッシュに通知し、有効アド
レスが別名バッファ・メモリにあると判定された場合に
データ・レコードをプロセッサ・コア・レジスタに転送
する、(1)に記載のプロセッサ・システム。 (10) 前記制御論理が、プロセッサ・コア・レジス
タからのデータ・レコードを別名装置に格納する受信さ
れた機械命令に応答して、機械命令で指定されるオフセ
ット値を機械命令で指定される別名エントリ索引のベー
ス・アドレスに対応する別名バッファ・メモリ・ベース
・アドレスに加算してバッファ・アドレスを生成し、プ
ロセッサ・コア・レジスタのデータ・レコードを機械命
令で指定されるバッファ・アドレスから開始し、アドレ
ス位置の数だけ連続する別名バッファ・メモリに転送す
る、(1)に記載のプロセッサ・システム。 (11) 前記制御論理が、プロセッサ・コア・レジス
タからのデータ・レコードを別名装置に格納する受信さ
れた機械命令に応答して、機械命令で指定される別名バ
ッファ・メモリ・アドレス格納位置を別名エントリ・テ
ーブルに含まれるメモリ装置アドレス記憶位置と比較
し、記憶位置が別名エントリ・テーブルに検出されない
場合に参照が不首尾に終わったことを示し、その他の場
合はプロセッサ・コア・レジスタのデータ・レコードを
機械命令で指定されるバッファ・アドレス記憶位置で開
始し、指定されるアドレス位置の数だけ連続する別名バ
ッファ・メモリに転送する、(1)に記載のプロセッサ
・システム。 (12) 前記制御論理が、別名装置からのデータ・レ
コードをメモリ装置に格納する受信された機械命令に応
答して、機械命令で指定される別名エントリのベース・
アドレスに対応する別名バッファ・メモリ・アドレス記
憶位置で開始し、別名エントリのバイト長に相当するア
ドレス位置の数だけ連続するデータ・レコードを、別名
エントリのアドレスに対応し及びバイト長に相当するア
ドレス位置の数だけ連続するメモリ装置アドレス記憶位
置に転送する、(1)に記載のプロセッサ・システム。 (13) 実行を要求されるプロセッサ動作を指定する
機械命令を受信するロード/格納装置と、複数のアドレ
ス可能ハードウェア・レジスタと、データ・オブジェク
トが格納され、検索されるアドレス可能記憶位置を有す
るメモリと、複数の記憶位置を有す別名バッファ・メモ
リと、別名エントリ名により索引付けられ、ならびに
(i)メモリ装置アドレス、(ii)長さ値、及び(iii)
別名バッファ・メモリの記憶位置を識別するベース・ア
ドレス・ポインタを含む別名エントリのテーブルと、別
名バッファ・メモリの記憶位置の割振りのために機械命
令をロード/格納装置から受信し及び応答して機械命令
に含まれるベース・アドレス値を機械命令に含まれる別
名エントリ名に取込む別名制御論理と、を含むプロセッ
サ・システム。 (14) 前記別名制御論理が、別名エントリ・テーブ
ルに含まれるメモリ装置アドレス記憶位置の参照を有す
る受信された機械命令に応答して、対応する別名エント
リ・テーブルで指定されるアドレス位置の数だけ別名バ
ッファ・メモリ値にその参照を自動的にリダイレクトす
る、(13)に記載のプロセッサ・システム。 (15) 前記別名制御論理が、指定されるアドレスの
別名バッファ・メモリでデータを格納又は検索する受信
された機械命令に応答して、指定されるアドレスを別名
エントリ・テーブルに含まれるメモリ装置アドレス記憶
位置と比較し、記憶位置が別名エントリ・テーブルで検
出されない場合に参照が不首尾に終わったことを示す、
(14)に記載のプロセッサ・システム。 (16) 別名エントリ・テーブル索引名の明示参照を
有する受信された機械命令が、前記別名制御論理により
対応する別名エントリで指定されるアドレス位置の数だ
け別名バッファ・メモリ値に自動的にリダイレクトされ
る、(13)に記載のプロセッサ・システム。 (17) データ・キャッシュ中間記憶装置と、データ
・キャッシュ及び別名制御論理がそれぞれの操作状態に
関する情報の交換を介してキャッシュ別名装置バスとを
更に含み、ここでは前記別名制御論理が、有効アドレス
指定構造を使用して値を格納する受信された機械命令に
応答して、機械命令から計算される有効アドレスが別名
バッファ・メモリの位置と対応するかどうかを判定し、
判定結果をデータ・キャッシュに通知する、(13)に
記載のプロセッサ・システム。 (18) 前記別名制御論理が、機械命令で指定される
バッファ・メモリ・ベース・アドレスから開始し、指定
されるアドレス位置の数だけ終了アドレスまで連続する
別名バッファ・メモリからの値を宛先レジスタにロード
する受信された機械命令に応答して、所定の宛先レジス
タ・サイズを指定されるアドレス位置の数と比較し、機
械命令で指定される長さ値が宛先レジスタのサイズを超
える場合にエラーを示す、(13)に記載のプロセッサ
・システム。 (19) 前記別名制御論理が、別名エントリを割振り
及び初期化する受信された機械命令に応答して、メモリ
装置アドレス記憶位置、バイト長値、及び別名バッファ
・メモリ・ベース・アドレスを受信された機械命令で指
定される別名エントリ・テーブル索引に格納し、次に対
応する別名エントリで指定される先頭メモリ装置アドレ
ス記憶位置に配置され、バイト長値で指定されるアドレ
ス位置の数だけ連続するデータ・レコードをベース・ア
ドレスから開始し、受信された機械命令で指定されるバ
イト長値で指定されるアドレス位置の数だけ連続する別
名バッファ・メモリに格納する、(13)に記載のプロ
セッサ・システム。 (20) 前記別名制御論理が、別名バッファ・メモリ
に格納されたデータ・レコードをレジスタにロードする
受信された機械命令に応答して、機械命令で指定される
オフセット値を加算して、バッファ・アドレスを生成し
及び受信された機械命令で指定されるバッファ・アドレ
ス記憶位置から開始し、バイト長値で指定されるアドレ
ス位置の数だけ連続する別名バッファ・メモリ内のデー
タ・レコードを転送する、(13)に記載のプロセッサ
・システム。 (21) 前記別名制御論理が、データ・キャッシュま
たは別名バッファ・メモリのいずれかからのデータ・レ
コードをレジスタにロードする受信された機械命令に応
答して、機械命令で指定される有効アドレスが別名バッ
ファ・メモリ・アドレス記憶位置と対応するかどうかを
判定し、判定をデータ・キャッシュに通知し、有効アド
レスが別名バッファ・メモリにあると判定された場合に
データ・レコードをレジスタに転送する、(13)に記
載のプロセッサ・システム。 (22) 前記別名制御論理が、レジスタからのデータ
・レコードを別名バッファ・メモリに格納する受信され
た機械命令に応答して、機械命令で指定されるオフセッ
ト値を命令で指定される別名エントリ索引のベース・ア
ドレスに対応する別名バッファ・メモリ・ベース・アド
レスに加算してバッファ・アドレスを生成し、レジスタ
のデータ・レコードをバッファ・アドレスで開始し、受
信された機械命令で指定されるアドレス位置の数だけ連
続する別名バッファ・メモリに転送する、(13)に記
載のプロセッサ・システム。 (23) 前記別名制御論理が、レジスタからのデータ
・レコードを別名バッファ・メモリに格納する受信され
た機械命令に応答して、機械命令で指定される別名バッ
ファ・メモリ・アドレス格納位置を別名エントリ・テー
ブルに含まれるメモリ装置アドレス記憶位置と比較し、
記憶位置が別名エントリ・テーブルに検出されない場合
に参照が不首尾に終わったことを示し、その他の場合は
レジスタのデータ・レコードを機械命令で指定されるバ
ッファ・アドレス記憶位置で開始し、指定されるアドレ
ス位置の数だけ連続する別名バッファ・メモリに転送す
る、(13)に記載のプロセッサ・システム。 (24) 前記別名制御論理が、別名バッファ・メモリ
からのデータ・レコードをメモリ装置に格納する受信さ
れた機械命令に応答して、機械命令で指定される別名エ
ントリのベース・アドレスに対応する別名バッファ・メ
モリ・アドレス記憶位置で開始し、別名エントリのバイ
ト長に相当するアドレス位置の数だけ連続するデータ・
レコードを、別名エントリのアドレスに対応し及びバイ
ト長に相当するアドレス位置の数だけ連続するメモリ装
置アドレス記憶位置に転送する、(13)に記載のプロ
セッサ・システム。 (25) プロセッサ実行論理を実施する回路を有する
プロセッサとデータ・オブジェクトが格納され、データ
・オブジェクトが検索される場所であるアドレス可能記
憶位置を有するメモリ装置とを使用して機械命令を実行
する方法であって、複数の記憶位置を含むプロセッサの
別名バッファ・メモリの記憶位置を割り振る機械命令を
受信するステップと、機械命令に含まれるベース・アド
レス値を別名エントリ名により索引付けられる別名エン
トリのテーブルに取込み、この取込みにより機械命令で
指定され別名エントリ名と関連付けられたベース・アド
レス値から開始しバッファ・メモリ・アドレス位置の数
だけ連続する、別名エントリ名と関連付けられた別名バ
ッファ・メモリ位置のグループを識別するステップと、
を含む方法。 (26) 別名エントリ・テーブルに含まれるメモリ装
置アドレス記憶位置の参照を有する受信された機械命令
に応答して、関連する別名エントリで指定されるアドレ
ス位置の数だけ別名バッファ・メモリ値にその参照を自
動的にリダイレクトするステップを更に含む、(25)
に記載の方法。 (27) 機械命令で指定されるアドレスの別名バッフ
ァ・メモリでデータを格納又は検索する受信された機械
命令に応答して、指定されるアドレスを別名エントリ・
テーブルに含まれるメモリ装置アドレス記憶位置と比較
し、記憶位置が別名エントリ・テーブルで検出されない
場合に参照が不首尾に終わったことを示すステップを更
に含む、(26)に記載の方法。 (28) 別名エントリ・テーブル索引名の明示参照を
有する受信された機械命令に応答して、関連する別名エ
ントリで指定されるアドレス位置の数だけ別名バッファ
・メモリ値にその参照を自動的にリダイレクトするステ
ップを更に含む、(25)に記載の方法。 (29) プロセッサがデータ・キャッシュ中間記憶装
置と、ならびにデータ・キャッシュ及び別名装置がそれ
ぞれの操作状態に関する情報の交換を介してキャッシュ
別名装置バスとを更に含み、有効アドレス指定構造を使
用して値を格納する受信された機械命令に応答して、機
械命令から計算される有効アドレスが別名バッファ・メ
モリの位置と対応するかどうかを判定し、判定結果をデ
ータ・キャッシュに通知するステップを更に含む、(2
5)に記載の方法。 (30) 機械命令で指定されるバッファ・メモリ・ベ
ース・アドレスから開始し、指定されるアドレス位置の
数だけ終了アドレスまで連続する別名バッファ・メモリ
からの値を有する宛先レジスタをロードする受信された
機械命令に応答して、所定の宛先レジスタ・サイズを指
定されるアドレス位置の数と比較し、機械命令で指定さ
れる長さ値が宛先レジスタのサイズを超える場合にエラ
ーを表示するステップを更に含む、(25)に記載の方
法。 (31) 別名エントリを割振り及び初期化する受信さ
れた機械命令に応答して、メモリ装置アドレス記憶位
置、バイト長値、及び別名バッファ・メモリ・ベース・
アドレスを機械命令で指定される別名エントリ・テーブ
ル索引に格納し、次に別名エントリで指定される先頭メ
モリ装置アドレス記憶位置に配置されバイト長値で指定
されるアドレス位置の数だけ連続するデータ・レコード
をベース・アドレスから開始し、バイト長値で指定され
るアドレス位置の数だけ連続する別名バッファ・メモリ
に格納する段階を更に含む、(25)に記載の方法。 (32) 別名バッファ・メモリに格納されたデータ・
レコードをレジスタにロードする受信された機械命令に
応答して、機械命令で指定されるオフセット値を加算し
てバッファ・アドレスを生成し及びバッファ・アドレス
記憶位置から開始し機械命令で指定されるバイト長値で
指定されるアドレス位置の数だけ連続する別名バッファ
・メモリ内のデータ・レコードを転送するステップを更
に含む、(25)に記載の方法。 (33) データ・キャッシュまたは別名装置のいずれ
かからのデータ・レコードをレジスタにロードする受信
された機械命令に応答して、機械命令で指定される有効
アドレスが別名バッファ・メモリ・アドレス記憶位置と
対応するかどうかを判定し、判定をデータ・キャッシュ
に通知し、及び有効アドレスが別名バッファ・メモリに
あると判定された場合にデータ・レコードをレジスタに
転送するステップを更に含む、(25)に記載の方法。 (34) レジスタからのデータ・レコードを別名バッ
ファ・メモリに格納する受信された機械命令に応答し
て、機械命令で指定されるオフセット値を機械命令で指
定される別名エントリ索引のベース・アドレスに対応す
る別名バッファ・メモリ・ベース・アドレスに加算して
バッファ・アドレスを生成し、及びレジスタのデータ・
レコードを機械命令で指定されるバッファ・アドレスか
ら開始し、アドレス位置の数だけ連続する別名バッファ
・メモリに転送するステップを更に含む、(25)に記
載の方法。 (35) レジスタからのデータ・レコードを別名バッ
ファ・メモリに格納する受信された機械命令に応答し
て、機械命令で指定される別名バッファ・メモリ・アド
レス格納位置を別名エントリ・テーブルに含まれるメモ
リ装置アドレス記憶位置と比較し、記憶位置が別名エン
トリ・テーブルに検出されない場合に参照を不首尾に終
わることを示し、及びその他の場合はレジスタのデータ
・レコードを機械命令で指定されるバッファ・アドレス
記憶位置で開始し、指定されるアドレス位置の数だけ連
続する別名バッファ・メモリに転送するステップを更に
含む、(25)に記載の方法。 (36) 別名バッファ・メモリからのデータ・レコー
ドをメモリ装置に格納する受信された機械命令に応答し
て、機械命令で指定される別名エントリのベース・アド
レスに対応する別名バッファ・メモリ・アドレス記憶位
置で開始し、別名エントリのバイト長に相当するアドレ
ス位置の数だけ連続するデータ・レコードを、別名エン
トリのアドレスに対応し及びバイト長に相当するアドレ
ス位置の数だけ連続するメモリ装置アドレス記憶位置に
転送するステップを更に含む、(25)に記載の方法。 (37) プロセッサ実行論理を実施し及び命令セット
構造操作をサポートする回路を有すプロセッサ・コア
と、プロセッサ・コアがデータ・オブジェクトを格納
し、データ・オブジェクトを検索するアドレス可能記憶
位置を有するメモリ装置と、複数の記憶位置を有する別
名バッファ・メモリと、別名エントリ名により索引付け
られ、メモリ装置アドレス、長さ値、及び別名バッファ
・メモリの記憶位置を識別するベース・アドレス・ポイ
ンタを含む別名エントリのテーブルと、別名バッファ・
メモリの記憶位置の割振りのために機械命令をプロセッ
サ・コアから受信し及び応答して機械命令に含まれるベ
ース・アドレス値を機械命令に含まれる別名エントリ名
に取込む制御論理とを有する別名装置と、を有するプロ
セッサと、オペレータがプロセッサの動作を制御すると
きに使用する1つ又はそれ以上の装置を含む入出力ブロ
ックと、データが格納され、検索される二次記憶装置
と、プロセッサが入出力ブロック及び二次記憶装置との
通信を介するデータ・バスと、を含むコンピュータ・シ
ステム。 (38) プログラム言語コードを受信し、実行時処理
の変換プログラム言語コードの実行に先立ちコンパイル
処理を実行してこれを機械命令に変換し、実行時に先立
ち別名バッファ・メモリの可変長ブロックを割振るコン
パイラを更に含む、(37)に記載のコンピュータ・シ
ステム。 (39) 別名装置制御論理が、別名エントリ・テーブ
ルに含まれるメモリ装置アドレス記憶位置の参照を有す
る受信されたコンパイラ生成機械命令に応答して、対応
する別名エントリで指定されるアドレス位置の数だけ別
名バッファ・メモリ値にその参照を自動的にリダイレク
トする、(37)に記載のコンピュータ・システム。 (40) 別名装置制御論理が、指定されるアドレスの
別名バッファ・メモリでデータを格納又は検索する受信
されたコンパイラ生成機械命令に応答して、指定される
アドレスを別名エントリ・テーブルに含まれるメモリ装
置アドレス記憶位置と比較し、及び記憶位置が別名エン
トリ・テーブルで検出されない場合に参照が不首尾に終
わったことを示す、(39)に記載のコンピュータ・シ
ステム。 (41) 別名装置制御論理が、別名エントリ・テーブ
ル索引名の明示参照を有する受信されたコンパイラ生成
機械命令に応答して、対応する別名エントリで指定され
るアドレス位置の数だけ別名バッファ・メモリ値にその
参照を自動的にリダイレクトする、(39)に記載のコ
ンピュータ・システム。
命令セット構造動作をサポートする回路を有するプロセ
ッサ・コアと、プロセッサ・コアがデータ・オブジェク
トを格納し、データ・オブジェクトを検索するアドレス
可能記憶位置を有するメモリ装置と、複数の記憶位置を
有す別名バッファ・メモリと、別名エントリ名により索
引付けられ、メモリ装置アドレス、長さ値、及び別名バ
ッファ・メモリの記憶位置を識別するベース・アドレス
・ポインタを含む別名エントリのテーブルと、別名バッ
ファ・メモリの記憶位置の割振りのために機械命令をプ
ロセッサ・コアから受信し及び応答して機械命令に含ま
れるベース・アドレス値を機械命令に含まれる別名エン
トリ名に取込む制御論理とを有する別名装置と、を含む
プロセッサ・システム。 (2) 前記制御論理が、別名エントリ・テーブルに含
まれるメモリ装置アドレス記憶位置の参照を有する受信
された機械命令に応答して、対応する別名エントリで指
定されるアドレス位置の数だけ別名バッファ・メモリ値
にその参照を自動的にリダイレクトする、(1)に記載
のプロセッサ・システム。 (3) 前記制御論理が、指定されるアドレスの別名バ
ッファ・メモリでデータを格納又は検索する受信された
機械命令に応答して、指定されるアドレスを別名エント
リ・テーブルに含まれるメモリ装置アドレス記憶位置と
比較し、記憶位置が別名エントリ・テーブルで検出され
ない場合に参照が不首尾に終わったことを示す、(2)
に記載のプロセッサ・システム。 (4) 別名エントリ・テーブル索引名の明示参照を有
する受信された機械命令が、別名制御論理により対応す
る別名エントリで指定されるアドレス位置の数だけ別名
バッファ・メモリ値に自動的にリダイレクトされる、
(1)に記載のプロセッサ・システム。 (5) データ・キャッシュ中間記憶装置と、データ・
キャッシュ及び別名装置がそれぞれの操作状態に関する
情報を交換するときに介するキャッシュ別名装置バスと
を更に含み、前記制御論理が、有効アドレス指定構造を
使用して値を格納する受信された機械命令に応答して、
機械命令から計算される有効アドレスが別名バッファ・
メモリの位置と対応するかどうかを判定し、判定結果を
データ・キャッシュに通知する、(1)に記載のプロセ
ッサ・システム。 (6) 前記制御論理が、機械命令で指定されるバッフ
ァ・メモリ・ベース・アドレスから開始し、指定される
アドレス位置の数だけ終了アドレスまで連続する別名バ
ッファ・メモリからの値を宛先プロセッサ・コア・レジ
スタにロードする受信された機械命令に応答して、所定
の宛先レジスタ・サイズを指定されるアドレス位置の数
と比較し、機械命令で指定される長さ値が宛先レジスタ
のサイズを超える場合にエラーを表示する、(1)に記
載のプロセッサ・システム。 (7) 前記制御論理が、別名エントリを割振り及び初
期化する受信された機械命令に応答して、メモリ装置ア
ドレス記憶位置、バイト長値、及び別名バッファ・メモ
リ・ベース・アドレスを機械命令で指定される別名エン
トリ・テーブル索引に格納し、次に別名エントリで指定
される先頭メモリ装置アドレス記憶位置に配置されバイ
ト長値で指定されるアドレス位置の数だけ連続するデー
タ・レコードをベース・アドレスから開始しバイト長値
で指定されるアドレス位置の数だけ連続する別名バッフ
ァ・メモリに格納する、(1)に記載のプロセッサ・シ
ステム。 (8) 前記制御論理が、別名バッファ・メモリに格納
されたデータ・レコードをプロセッサ・コア・レジスタ
にロードする受信された機械命令に応答して、機械命令
で指定されるオフセット値を加算してバッファ・アドレ
スを生成し、バッファ・アドレス記憶位置から開始し機
械命令で指定されるバイト長値で指定されるアドレス位
置の数だけ連続する別名バッファ・メモリ内のデータ・
レコードを転送する、(1)に記載のプロセッサ・シス
テム。 (9) 前記制御論理が、データ・キャッシュまたは別
名装置のいずれかからのデータ・レコードをプロセッサ
・コア・レジスタにロードする受信された機械命令に応
答して、機械命令で指定される有効アドレスが別名バッ
ファ・メモリ・アドレス記憶位置と対応するかどうかを
判定し、判定をデータ・キャッシュに通知し、有効アド
レスが別名バッファ・メモリにあると判定された場合に
データ・レコードをプロセッサ・コア・レジスタに転送
する、(1)に記載のプロセッサ・システム。 (10) 前記制御論理が、プロセッサ・コア・レジス
タからのデータ・レコードを別名装置に格納する受信さ
れた機械命令に応答して、機械命令で指定されるオフセ
ット値を機械命令で指定される別名エントリ索引のベー
ス・アドレスに対応する別名バッファ・メモリ・ベース
・アドレスに加算してバッファ・アドレスを生成し、プ
ロセッサ・コア・レジスタのデータ・レコードを機械命
令で指定されるバッファ・アドレスから開始し、アドレ
ス位置の数だけ連続する別名バッファ・メモリに転送す
る、(1)に記載のプロセッサ・システム。 (11) 前記制御論理が、プロセッサ・コア・レジス
タからのデータ・レコードを別名装置に格納する受信さ
れた機械命令に応答して、機械命令で指定される別名バ
ッファ・メモリ・アドレス格納位置を別名エントリ・テ
ーブルに含まれるメモリ装置アドレス記憶位置と比較
し、記憶位置が別名エントリ・テーブルに検出されない
場合に参照が不首尾に終わったことを示し、その他の場
合はプロセッサ・コア・レジスタのデータ・レコードを
機械命令で指定されるバッファ・アドレス記憶位置で開
始し、指定されるアドレス位置の数だけ連続する別名バ
ッファ・メモリに転送する、(1)に記載のプロセッサ
・システム。 (12) 前記制御論理が、別名装置からのデータ・レ
コードをメモリ装置に格納する受信された機械命令に応
答して、機械命令で指定される別名エントリのベース・
アドレスに対応する別名バッファ・メモリ・アドレス記
憶位置で開始し、別名エントリのバイト長に相当するア
ドレス位置の数だけ連続するデータ・レコードを、別名
エントリのアドレスに対応し及びバイト長に相当するア
ドレス位置の数だけ連続するメモリ装置アドレス記憶位
置に転送する、(1)に記載のプロセッサ・システム。 (13) 実行を要求されるプロセッサ動作を指定する
機械命令を受信するロード/格納装置と、複数のアドレ
ス可能ハードウェア・レジスタと、データ・オブジェク
トが格納され、検索されるアドレス可能記憶位置を有す
るメモリと、複数の記憶位置を有す別名バッファ・メモ
リと、別名エントリ名により索引付けられ、ならびに
(i)メモリ装置アドレス、(ii)長さ値、及び(iii)
別名バッファ・メモリの記憶位置を識別するベース・ア
ドレス・ポインタを含む別名エントリのテーブルと、別
名バッファ・メモリの記憶位置の割振りのために機械命
令をロード/格納装置から受信し及び応答して機械命令
に含まれるベース・アドレス値を機械命令に含まれる別
名エントリ名に取込む別名制御論理と、を含むプロセッ
サ・システム。 (14) 前記別名制御論理が、別名エントリ・テーブ
ルに含まれるメモリ装置アドレス記憶位置の参照を有す
る受信された機械命令に応答して、対応する別名エント
リ・テーブルで指定されるアドレス位置の数だけ別名バ
ッファ・メモリ値にその参照を自動的にリダイレクトす
る、(13)に記載のプロセッサ・システム。 (15) 前記別名制御論理が、指定されるアドレスの
別名バッファ・メモリでデータを格納又は検索する受信
された機械命令に応答して、指定されるアドレスを別名
エントリ・テーブルに含まれるメモリ装置アドレス記憶
位置と比較し、記憶位置が別名エントリ・テーブルで検
出されない場合に参照が不首尾に終わったことを示す、
(14)に記載のプロセッサ・システム。 (16) 別名エントリ・テーブル索引名の明示参照を
有する受信された機械命令が、前記別名制御論理により
対応する別名エントリで指定されるアドレス位置の数だ
け別名バッファ・メモリ値に自動的にリダイレクトされ
る、(13)に記載のプロセッサ・システム。 (17) データ・キャッシュ中間記憶装置と、データ
・キャッシュ及び別名制御論理がそれぞれの操作状態に
関する情報の交換を介してキャッシュ別名装置バスとを
更に含み、ここでは前記別名制御論理が、有効アドレス
指定構造を使用して値を格納する受信された機械命令に
応答して、機械命令から計算される有効アドレスが別名
バッファ・メモリの位置と対応するかどうかを判定し、
判定結果をデータ・キャッシュに通知する、(13)に
記載のプロセッサ・システム。 (18) 前記別名制御論理が、機械命令で指定される
バッファ・メモリ・ベース・アドレスから開始し、指定
されるアドレス位置の数だけ終了アドレスまで連続する
別名バッファ・メモリからの値を宛先レジスタにロード
する受信された機械命令に応答して、所定の宛先レジス
タ・サイズを指定されるアドレス位置の数と比較し、機
械命令で指定される長さ値が宛先レジスタのサイズを超
える場合にエラーを示す、(13)に記載のプロセッサ
・システム。 (19) 前記別名制御論理が、別名エントリを割振り
及び初期化する受信された機械命令に応答して、メモリ
装置アドレス記憶位置、バイト長値、及び別名バッファ
・メモリ・ベース・アドレスを受信された機械命令で指
定される別名エントリ・テーブル索引に格納し、次に対
応する別名エントリで指定される先頭メモリ装置アドレ
ス記憶位置に配置され、バイト長値で指定されるアドレ
ス位置の数だけ連続するデータ・レコードをベース・ア
ドレスから開始し、受信された機械命令で指定されるバ
イト長値で指定されるアドレス位置の数だけ連続する別
名バッファ・メモリに格納する、(13)に記載のプロ
セッサ・システム。 (20) 前記別名制御論理が、別名バッファ・メモリ
に格納されたデータ・レコードをレジスタにロードする
受信された機械命令に応答して、機械命令で指定される
オフセット値を加算して、バッファ・アドレスを生成し
及び受信された機械命令で指定されるバッファ・アドレ
ス記憶位置から開始し、バイト長値で指定されるアドレ
ス位置の数だけ連続する別名バッファ・メモリ内のデー
タ・レコードを転送する、(13)に記載のプロセッサ
・システム。 (21) 前記別名制御論理が、データ・キャッシュま
たは別名バッファ・メモリのいずれかからのデータ・レ
コードをレジスタにロードする受信された機械命令に応
答して、機械命令で指定される有効アドレスが別名バッ
ファ・メモリ・アドレス記憶位置と対応するかどうかを
判定し、判定をデータ・キャッシュに通知し、有効アド
レスが別名バッファ・メモリにあると判定された場合に
データ・レコードをレジスタに転送する、(13)に記
載のプロセッサ・システム。 (22) 前記別名制御論理が、レジスタからのデータ
・レコードを別名バッファ・メモリに格納する受信され
た機械命令に応答して、機械命令で指定されるオフセッ
ト値を命令で指定される別名エントリ索引のベース・ア
ドレスに対応する別名バッファ・メモリ・ベース・アド
レスに加算してバッファ・アドレスを生成し、レジスタ
のデータ・レコードをバッファ・アドレスで開始し、受
信された機械命令で指定されるアドレス位置の数だけ連
続する別名バッファ・メモリに転送する、(13)に記
載のプロセッサ・システム。 (23) 前記別名制御論理が、レジスタからのデータ
・レコードを別名バッファ・メモリに格納する受信され
た機械命令に応答して、機械命令で指定される別名バッ
ファ・メモリ・アドレス格納位置を別名エントリ・テー
ブルに含まれるメモリ装置アドレス記憶位置と比較し、
記憶位置が別名エントリ・テーブルに検出されない場合
に参照が不首尾に終わったことを示し、その他の場合は
レジスタのデータ・レコードを機械命令で指定されるバ
ッファ・アドレス記憶位置で開始し、指定されるアドレ
ス位置の数だけ連続する別名バッファ・メモリに転送す
る、(13)に記載のプロセッサ・システム。 (24) 前記別名制御論理が、別名バッファ・メモリ
からのデータ・レコードをメモリ装置に格納する受信さ
れた機械命令に応答して、機械命令で指定される別名エ
ントリのベース・アドレスに対応する別名バッファ・メ
モリ・アドレス記憶位置で開始し、別名エントリのバイ
ト長に相当するアドレス位置の数だけ連続するデータ・
レコードを、別名エントリのアドレスに対応し及びバイ
ト長に相当するアドレス位置の数だけ連続するメモリ装
置アドレス記憶位置に転送する、(13)に記載のプロ
セッサ・システム。 (25) プロセッサ実行論理を実施する回路を有する
プロセッサとデータ・オブジェクトが格納され、データ
・オブジェクトが検索される場所であるアドレス可能記
憶位置を有するメモリ装置とを使用して機械命令を実行
する方法であって、複数の記憶位置を含むプロセッサの
別名バッファ・メモリの記憶位置を割り振る機械命令を
受信するステップと、機械命令に含まれるベース・アド
レス値を別名エントリ名により索引付けられる別名エン
トリのテーブルに取込み、この取込みにより機械命令で
指定され別名エントリ名と関連付けられたベース・アド
レス値から開始しバッファ・メモリ・アドレス位置の数
だけ連続する、別名エントリ名と関連付けられた別名バ
ッファ・メモリ位置のグループを識別するステップと、
を含む方法。 (26) 別名エントリ・テーブルに含まれるメモリ装
置アドレス記憶位置の参照を有する受信された機械命令
に応答して、関連する別名エントリで指定されるアドレ
ス位置の数だけ別名バッファ・メモリ値にその参照を自
動的にリダイレクトするステップを更に含む、(25)
に記載の方法。 (27) 機械命令で指定されるアドレスの別名バッフ
ァ・メモリでデータを格納又は検索する受信された機械
命令に応答して、指定されるアドレスを別名エントリ・
テーブルに含まれるメモリ装置アドレス記憶位置と比較
し、記憶位置が別名エントリ・テーブルで検出されない
場合に参照が不首尾に終わったことを示すステップを更
に含む、(26)に記載の方法。 (28) 別名エントリ・テーブル索引名の明示参照を
有する受信された機械命令に応答して、関連する別名エ
ントリで指定されるアドレス位置の数だけ別名バッファ
・メモリ値にその参照を自動的にリダイレクトするステ
ップを更に含む、(25)に記載の方法。 (29) プロセッサがデータ・キャッシュ中間記憶装
置と、ならびにデータ・キャッシュ及び別名装置がそれ
ぞれの操作状態に関する情報の交換を介してキャッシュ
別名装置バスとを更に含み、有効アドレス指定構造を使
用して値を格納する受信された機械命令に応答して、機
械命令から計算される有効アドレスが別名バッファ・メ
モリの位置と対応するかどうかを判定し、判定結果をデ
ータ・キャッシュに通知するステップを更に含む、(2
5)に記載の方法。 (30) 機械命令で指定されるバッファ・メモリ・ベ
ース・アドレスから開始し、指定されるアドレス位置の
数だけ終了アドレスまで連続する別名バッファ・メモリ
からの値を有する宛先レジスタをロードする受信された
機械命令に応答して、所定の宛先レジスタ・サイズを指
定されるアドレス位置の数と比較し、機械命令で指定さ
れる長さ値が宛先レジスタのサイズを超える場合にエラ
ーを表示するステップを更に含む、(25)に記載の方
法。 (31) 別名エントリを割振り及び初期化する受信さ
れた機械命令に応答して、メモリ装置アドレス記憶位
置、バイト長値、及び別名バッファ・メモリ・ベース・
アドレスを機械命令で指定される別名エントリ・テーブ
ル索引に格納し、次に別名エントリで指定される先頭メ
モリ装置アドレス記憶位置に配置されバイト長値で指定
されるアドレス位置の数だけ連続するデータ・レコード
をベース・アドレスから開始し、バイト長値で指定され
るアドレス位置の数だけ連続する別名バッファ・メモリ
に格納する段階を更に含む、(25)に記載の方法。 (32) 別名バッファ・メモリに格納されたデータ・
レコードをレジスタにロードする受信された機械命令に
応答して、機械命令で指定されるオフセット値を加算し
てバッファ・アドレスを生成し及びバッファ・アドレス
記憶位置から開始し機械命令で指定されるバイト長値で
指定されるアドレス位置の数だけ連続する別名バッファ
・メモリ内のデータ・レコードを転送するステップを更
に含む、(25)に記載の方法。 (33) データ・キャッシュまたは別名装置のいずれ
かからのデータ・レコードをレジスタにロードする受信
された機械命令に応答して、機械命令で指定される有効
アドレスが別名バッファ・メモリ・アドレス記憶位置と
対応するかどうかを判定し、判定をデータ・キャッシュ
に通知し、及び有効アドレスが別名バッファ・メモリに
あると判定された場合にデータ・レコードをレジスタに
転送するステップを更に含む、(25)に記載の方法。 (34) レジスタからのデータ・レコードを別名バッ
ファ・メモリに格納する受信された機械命令に応答し
て、機械命令で指定されるオフセット値を機械命令で指
定される別名エントリ索引のベース・アドレスに対応す
る別名バッファ・メモリ・ベース・アドレスに加算して
バッファ・アドレスを生成し、及びレジスタのデータ・
レコードを機械命令で指定されるバッファ・アドレスか
ら開始し、アドレス位置の数だけ連続する別名バッファ
・メモリに転送するステップを更に含む、(25)に記
載の方法。 (35) レジスタからのデータ・レコードを別名バッ
ファ・メモリに格納する受信された機械命令に応答し
て、機械命令で指定される別名バッファ・メモリ・アド
レス格納位置を別名エントリ・テーブルに含まれるメモ
リ装置アドレス記憶位置と比較し、記憶位置が別名エン
トリ・テーブルに検出されない場合に参照を不首尾に終
わることを示し、及びその他の場合はレジスタのデータ
・レコードを機械命令で指定されるバッファ・アドレス
記憶位置で開始し、指定されるアドレス位置の数だけ連
続する別名バッファ・メモリに転送するステップを更に
含む、(25)に記載の方法。 (36) 別名バッファ・メモリからのデータ・レコー
ドをメモリ装置に格納する受信された機械命令に応答し
て、機械命令で指定される別名エントリのベース・アド
レスに対応する別名バッファ・メモリ・アドレス記憶位
置で開始し、別名エントリのバイト長に相当するアドレ
ス位置の数だけ連続するデータ・レコードを、別名エン
トリのアドレスに対応し及びバイト長に相当するアドレ
ス位置の数だけ連続するメモリ装置アドレス記憶位置に
転送するステップを更に含む、(25)に記載の方法。 (37) プロセッサ実行論理を実施し及び命令セット
構造操作をサポートする回路を有すプロセッサ・コア
と、プロセッサ・コアがデータ・オブジェクトを格納
し、データ・オブジェクトを検索するアドレス可能記憶
位置を有するメモリ装置と、複数の記憶位置を有する別
名バッファ・メモリと、別名エントリ名により索引付け
られ、メモリ装置アドレス、長さ値、及び別名バッファ
・メモリの記憶位置を識別するベース・アドレス・ポイ
ンタを含む別名エントリのテーブルと、別名バッファ・
メモリの記憶位置の割振りのために機械命令をプロセッ
サ・コアから受信し及び応答して機械命令に含まれるベ
ース・アドレス値を機械命令に含まれる別名エントリ名
に取込む制御論理とを有する別名装置と、を有するプロ
セッサと、オペレータがプロセッサの動作を制御すると
きに使用する1つ又はそれ以上の装置を含む入出力ブロ
ックと、データが格納され、検索される二次記憶装置
と、プロセッサが入出力ブロック及び二次記憶装置との
通信を介するデータ・バスと、を含むコンピュータ・シ
ステム。 (38) プログラム言語コードを受信し、実行時処理
の変換プログラム言語コードの実行に先立ちコンパイル
処理を実行してこれを機械命令に変換し、実行時に先立
ち別名バッファ・メモリの可変長ブロックを割振るコン
パイラを更に含む、(37)に記載のコンピュータ・シ
ステム。 (39) 別名装置制御論理が、別名エントリ・テーブ
ルに含まれるメモリ装置アドレス記憶位置の参照を有す
る受信されたコンパイラ生成機械命令に応答して、対応
する別名エントリで指定されるアドレス位置の数だけ別
名バッファ・メモリ値にその参照を自動的にリダイレク
トする、(37)に記載のコンピュータ・システム。 (40) 別名装置制御論理が、指定されるアドレスの
別名バッファ・メモリでデータを格納又は検索する受信
されたコンパイラ生成機械命令に応答して、指定される
アドレスを別名エントリ・テーブルに含まれるメモリ装
置アドレス記憶位置と比較し、及び記憶位置が別名エン
トリ・テーブルで検出されない場合に参照が不首尾に終
わったことを示す、(39)に記載のコンピュータ・シ
ステム。 (41) 別名装置制御論理が、別名エントリ・テーブ
ル索引名の明示参照を有する受信されたコンパイラ生成
機械命令に応答して、対応する別名エントリで指定され
るアドレス位置の数だけ別名バッファ・メモリ値にその
参照を自動的にリダイレクトする、(39)に記載のコ
ンピュータ・システム。
【図1】本発明に従って構成されるプロセッサの構成図
である。
である。
【図2】図1に示す別名装置の構成図である。
【図3】図2に示す別名装置の別名エントリ及び関連す
る別名バッファ・メモリの割振り命令の実行で実施され
る処理ステップを示す流れ図である。
る別名バッファ・メモリの割振り命令の実行で実施され
る処理ステップを示す流れ図である。
【図4】図2の別名装置の明示別名エントリからレジス
タへのロードの実行で実施される処理ステップを示す流
れ図である。
タへのロードの実行で実施される処理ステップを示す流
れ図である。
【図5】図2の別名装置の別名エントリ(有効アドレス
により指示される)からレジスタへの明示ロードの実行
で実施される処理ステップを示す流れ図である。
により指示される)からレジスタへの明示ロードの実行
で実施される処理ステップを示す流れ図である。
【図6】レジスタから図2の別名装置の別名エントリへ
の明示格納の実行で実施される処理ステップを示す流れ
図である。
の明示格納の実行で実施される処理ステップを示す流れ
図である。
【図7】レジスタから図2の別名装置の明示別名エント
リ(有効アドレスにより指示される)への格納の実行で
実施される処理ステップを示す流れ図である。
リ(有効アドレスにより指示される)への格納の実行で
実施される処理ステップを示す流れ図である。
【図8】図2に示す別名装置の別名エントリの割振り解
除命令の実行で実施される処理ステップを示す流れ図で
ある。
除命令の実行で実施される処理ステップを示す流れ図で
ある。
【図9】図1に示すプロセッサを含むコンピュータ・シ
ステムの構成図である。
ステムの構成図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーブン・リー・グレガー アメリカ合衆国13760、ニューヨーク州、 エンディコット、チャーチ・ストリート 628 (72)発明者 マヤン・ムードギル アメリカ合衆国10562、ニューヨーク州、 オッシニング、アパートメント6D、クロ トン・アベニュー 52 (72)発明者 ジョン・クリストファ・ウィリス アメリカ合衆国55906、ミネソタ州、ロチ ェスターシエラ・レーン・エヌ・イー 924
Claims (41)
- 【請求項1】プロセッサ実行論理を実施し及び命令セッ
ト構造動作をサポートする回路を有するプロセッサ・コ
アと、 プロセッサ・コアがデータ・オブジェクトを格納し、デ
ータ・オブジェクトを検索するアドレス可能記憶位置を
有するメモリ装置と、 複数の記憶位置を有す別名バッファ・メモリと、別名エ
ントリ名により索引付けられ、メモリ装置アドレス、長
さ値、及び別名バッファ・メモリの記憶位置を識別する
ベース・アドレス・ポインタを含む別名エントリのテー
ブルと、別名バッファ・メモリの記憶位置の割振りのた
めに機械命令をプロセッサ・コアから受信し及び応答し
て機械命令に含まれるベース・アドレス値を機械命令に
含まれる別名エントリ名に取込む制御論理とを有する別
名装置と、を含むプロセッサ・システム。 - 【請求項2】前記制御論理が、別名エントリ・テーブル
に含まれるメモリ装置アドレス記憶位置の参照を有する
受信された機械命令に応答して、対応する別名エントリ
で指定されるアドレス位置の数だけ別名バッファ・メモ
リ値にその参照を自動的にリダイレクトする、請求項1
に記載のプロセッサ・システム。 - 【請求項3】前記制御論理が、指定されるアドレスの別
名バッファ・メモリでデータを格納又は検索する受信さ
れた機械命令に応答して、指定されるアドレスを別名エ
ントリ・テーブルに含まれるメモリ装置アドレス記憶位
置と比較し、記憶位置が別名エントリ・テーブルで検出
されない場合に参照が不首尾に終わったことを示す、請
求項2に記載のプロセッサ・システム。 - 【請求項4】別名エントリ・テーブル索引名の明示参照
を有する受信された機械命令が、別名制御論理により対
応する別名エントリで指定されるアドレス位置の数だけ
別名バッファ・メモリ値に自動的にリダイレクトされ
る、請求項1に記載のプロセッサ・システム。 - 【請求項5】データ・キャッシュ中間記憶装置と、 データ・キャッシュ及び別名装置がそれぞれの操作状態
に関する情報を交換するときに介するキャッシュ別名装
置バスとを更に含み、 前記制御論理が、有効アドレス指定構造を使用して値を
格納する受信された機械命令に応答して、機械命令から
計算される有効アドレスが別名バッファ・メモリの位置
と対応するかどうかを判定し、判定結果をデータ・キャ
ッシュに通知する、請求項1に記載のプロセッサ・シス
テム。 - 【請求項6】前記制御論理が、機械命令で指定されるバ
ッファ・メモリ・ベース・アドレスから開始し、指定さ
れるアドレス位置の数だけ終了アドレスまで連続する別
名バッファ・メモリからの値を宛先プロセッサ・コア・
レジスタにロードする受信された機械命令に応答して、
所定の宛先レジスタ・サイズを指定されるアドレス位置
の数と比較し、機械命令で指定される長さ値が宛先レジ
スタのサイズを超える場合にエラーを表示する、請求項
1に記載のプロセッサ・システム。 - 【請求項7】前記制御論理が、別名エントリを割振り及
び初期化する受信された機械命令に応答して、メモリ装
置アドレス記憶位置、バイト長値、及び別名バッファ・
メモリ・ベース・アドレスを機械命令で指定される別名
エントリ・テーブル索引に格納し、次に別名エントリで
指定される先頭メモリ装置アドレス記憶位置に配置され
バイト長値で指定されるアドレス位置の数だけ連続する
データ・レコードをベース・アドレスから開始しバイト
長値で指定されるアドレス位置の数だけ連続する別名バ
ッファ・メモリに格納する、請求項1に記載のプロセッ
サ・システム。 - 【請求項8】前記制御論理が、別名バッファ・メモリに
格納されたデータ・レコードをプロセッサ・コア・レジ
スタにロードする受信された機械命令に応答して、機械
命令で指定されるオフセット値を加算してバッファ・ア
ドレスを生成し、バッファ・アドレス記憶位置から開始
し機械命令で指定されるバイト長値で指定されるアドレ
ス位置の数だけ連続する別名バッファ・メモリ内のデー
タ・レコードを転送する、請求項1に記載のプロセッサ
・システム。 - 【請求項9】前記制御論理が、データ・キャッシュまた
は別名装置のいずれかからのデータ・レコードをプロセ
ッサ・コア・レジスタにロードする受信された機械命令
に応答して、機械命令で指定される有効アドレスが別名
バッファ・メモリ・アドレス記憶位置と対応するかどう
かを判定し、判定をデータ・キャッシュに通知し、有効
アドレスが別名バッファ・メモリにあると判定された場
合にデータ・レコードをプロセッサ・コア・レジスタに
転送する、請求項1に記載のプロセッサ・システム。 - 【請求項10】前記制御論理が、プロセッサ・コア・レ
ジスタからのデータ・レコードを別名装置に格納する受
信された機械命令に応答して、機械命令で指定されるオ
フセット値を機械命令で指定される別名エントリ索引の
ベース・アドレスに対応する別名バッファ・メモリ・ベ
ース・アドレスに加算してバッファ・アドレスを生成
し、プロセッサ・コア・レジスタのデータ・レコードを
機械命令で指定されるバッファ・アドレスから開始し、
アドレス位置の数だけ連続する別名バッファ・メモリに
転送する、請求項1に記載のプロセッサ・システム。 - 【請求項11】前記制御論理が、プロセッサ・コア・レ
ジスタからのデータ・レコードを別名装置に格納する受
信された機械命令に応答して、機械命令で指定される別
名バッファ・メモリ・アドレス格納位置を別名エントリ
・テーブルに含まれるメモリ装置アドレス記憶位置と比
較し、記憶位置が別名エントリ・テーブルに検出されな
い場合に参照が不首尾に終わったことを示し、その他の
場合はプロセッサ・コア・レジスタのデータ・レコード
を機械命令で指定されるバッファ・アドレス記憶位置で
開始し、指定されるアドレス位置の数だけ連続する別名
バッファ・メモリに転送する、請求項1に記載のプロセ
ッサ・システム。 - 【請求項12】前記制御論理が、別名装置からのデータ
・レコードをメモリ装置に格納する受信された機械命令
に応答して、機械命令で指定される別名エントリのベー
ス・アドレスに対応する別名バッファ・メモリ・アドレ
ス記憶位置で開始し、別名エントリのバイト長に相当す
るアドレス位置の数だけ連続するデータ・レコードを、
別名エントリのアドレスに対応し及びバイト長に相当す
るアドレス位置の数だけ連続するメモリ装置アドレス記
憶位置に転送する、請求項1に記載のプロセッサ・シス
テム。 - 【請求項13】実行を要求されるプロセッサ動作を指定
する機械命令を受信するロード/格納装置と、 複数のアドレス可能ハードウェア・レジスタと、 データ・オブジェクトが格納され、検索されるアドレス
可能記憶位置を有するメモリと、 複数の記憶位置を有す別名バッファ・メモリと、 別名エントリ名により索引付けられ、ならびに(i)メ
モリ装置アドレス、(ii)長さ値、及び(iii)別名バ
ッファ・メモリの記憶位置を識別するベース・アドレス
・ポインタを含む別名エントリのテーブルと、 別名バッファ・メモリの記憶位置の割振りのために機械
命令をロード/格納装置から受信し及び応答して機械命
令に含まれるベース・アドレス値を機械命令に含まれる
別名エントリ名に取込む別名制御論理と、を含むプロセ
ッサ・システム。 - 【請求項14】前記別名制御論理が、別名エントリ・テ
ーブルに含まれるメモリ装置アドレス記憶位置の参照を
有する受信された機械命令に応答して、対応する別名エ
ントリ・テーブルで指定されるアドレス位置の数だけ別
名バッファ・メモリ値にその参照を自動的にリダイレク
トする、請求項13に記載のプロセッサ・システム。 - 【請求項15】別名制御論理が、指定されるアドレスの
別名バッファ・メモリでデータを格納又は検索する受信
された機械命令に応答して、指定されるアドレスを別名
エントリ・テーブルに含まれるメモリ装置アドレス記憶
位置と比較し、記憶位置が別名エントリ・テーブルで検
出されない場合に参照が不首尾に終わったことを示す、
請求項14に記載のプロセッサ・システム。 - 【請求項16】前記別名エントリ・テーブル索引名の明
示参照を有する受信された機械命令が、前記別名制御論
理により対応する別名エントリで指定されるアドレス位
置の数だけ別名バッファ・メモリ値に自動的にリダイレ
クトされる、請求項13に記載のプロセッサ・システ
ム。 - 【請求項17】データ・キャッシュ中間記憶装置と、 データ・キャッシュ及び別名制御論理がそれぞれの操作
状態に関する情報の交換を介してキャッシュ別名装置バ
スとを更に含み、ここでは前記別名制御論理が、有効ア
ドレス指定構造を使用して値を格納する受信された機械
命令に応答して、機械命令から計算される有効アドレス
が別名バッファ・メモリの位置と対応するかどうかを判
定し、判定結果をデータ・キャッシュに通知する、請求
項13に記載のプロセッサ・システム。 - 【請求項18】前記別名制御論理が、機械命令で指定さ
れるバッファ・メモリ・ベース・アドレスから開始し、
指定されるアドレス位置の数だけ終了アドレスまで連続
する別名バッファ・メモリからの値を宛先レジスタにロ
ードする受信された機械命令に応答して、所定の宛先レ
ジスタ・サイズを指定されるアドレス位置の数と比較
し、機械命令で指定される長さ値が宛先レジスタのサイ
ズを超える場合にエラーを示す、請求項13に記載のプ
ロセッサ・システム。 - 【請求項19】前記別名制御論理が、別名エントリを割
振り及び初期化する受信された機械命令に応答して、メ
モリ装置アドレス記憶位置、バイト長値、及び別名バッ
ファ・メモリ・ベース・アドレスを受信された機械命令
で指定される別名エントリ・テーブル索引に格納し、次
に対応する別名エントリで指定される先頭メモリ装置ア
ドレス記憶位置に配置され、バイト長値で指定されるア
ドレス位置の数だけ連続するデータ・レコードをベース
・アドレスから開始し、受信された機械命令で指定され
るバイト長値で指定されるアドレス位置の数だけ連続す
る別名バッファ・メモリに格納する、請求項13に記載
のプロセッサ・システム。 - 【請求項20】前記別名制御論理が、別名バッファ・メ
モリに格納されたデータ・レコードをレジスタにロード
する受信された機械命令に応答して、機械命令で指定さ
れるオフセット値を加算して、バッファ・アドレスを生
成し及び受信された機械命令で指定されるバッファ・ア
ドレス記憶位置から開始し、バイト長値で指定されるア
ドレス位置の数だけ連続する別名バッファ・メモリ内の
データ・レコードを転送する、請求項13に記載のプロ
セッサ・システム。 - 【請求項21】前記別名制御論理が、データ・キャッシ
ュまたは別名バッファ・メモリのいずれかからのデータ
・レコードをレジスタにロードする受信された機械命令
に応答して、機械命令で指定される有効アドレスが別名
バッファ・メモリ・アドレス記憶位置と対応するかどう
かを判定し、判定をデータ・キャッシュに通知し、有効
アドレスが別名バッファ・メモリにあると判定された場
合にデータ・レコードをレジスタに転送する、請求項1
3に記載のプロセッサ・システム。 - 【請求項22】前記別名制御論理が、レジスタからのデ
ータ・レコードを別名バッファ・メモリに格納する受信
された機械命令に応答して、機械命令で指定されるオフ
セット値を命令で指定される別名エントリ索引のベース
・アドレスに対応する別名バッファ・メモリ・ベース・
アドレスに加算してバッファ・アドレスを生成し、レジ
スタのデータ・レコードをバッファ・アドレスで開始
し、受信された機械命令で指定されるアドレス位置の数
だけ連続する別名バッファ・メモリに転送する、請求項
13に記載のプロセッサ・システム。 - 【請求項23】前記別名制御論理が、レジスタからのデ
ータ・レコードを別名バッファ・メモリに格納する受信
された機械命令に応答して、機械命令で指定される別名
バッファ・メモリ・アドレス格納位置を別名エントリ・
テーブルに含まれるメモリ装置アドレス記憶位置と比較
し、記憶位置が別名エントリ・テーブルに検出されない
場合に参照が不首尾に終わったことを示し、その他の場
合はレジスタのデータ・レコードを機械命令で指定され
るバッファ・アドレス記憶位置で開始し、指定されるア
ドレス位置の数だけ連続する別名バッファ・メモリに転
送する、請求項13に記載のプロセッサ・システム。 - 【請求項24】前記別名制御論理が、別名バッファ・メ
モリからのデータ・レコードをメモリ装置に格納する受
信された機械命令に応答して、機械命令で指定される別
名エントリのベース・アドレスに対応する別名バッファ
・メモリ・アドレス記憶位置で開始し、別名エントリの
バイト長に相当するアドレス位置の数だけ連続するデー
タ・レコードを、別名エントリのアドレスに対応し及び
バイト長に相当するアドレス位置の数だけ連続するメモ
リ装置アドレス記憶位置に転送する、請求項13に記載
のプロセッサ・システム。 - 【請求項25】プロセッサ実行論理を実施する回路を有
するプロセッサとデータ・オブジェクトが格納され、デ
ータ・オブジェクトが検索される場所であるアドレス可
能記憶位置を有するメモリ装置とを使用して機械命令を
実行する方法であって、 複数の記憶位置を含むプロセッサの別名バッファ・メモ
リの記憶位置を割り振る機械命令を受信するステップ
と、 機械命令に含まれるベース・アドレス値を別名エントリ
名により索引付けられる別名エントリのテーブルに取込
み、この取込みにより機械命令で指定され別名エントリ
名と関連付けられたベース・アドレス値から開始しバッ
ファ・メモリ・アドレス位置の数だけ連続する、別名エ
ントリ名と関連付けられた別名バッファ・メモリ位置の
グループを識別するステップと、を含む方法。 - 【請求項26】別名エントリ・テーブルに含まれるメモ
リ装置アドレス記憶位置の参照を有する受信された機械
命令に応答して、関連する別名エントリで指定されるア
ドレス位置の数だけ別名バッファ・メモリ値にその参照
を自動的にリダイレクトするステップを更に含む、請求
項25に記載の方法。 - 【請求項27】機械命令で指定されるアドレスの別名バ
ッファ・メモリでデータを格納又は検索する受信された
機械命令に応答して、指定されるアドレスを別名エント
リ・テーブルに含まれるメモリ装置アドレス記憶位置と
比較し、記憶位置が別名エントリ・テーブルで検出され
ない場合に参照が不首尾に終わったことを示すステップ
を更に含む、請求項26に記載の方法。 - 【請求項28】別名エントリ・テーブル索引名の明示参
照を有する受信された機械命令に応答して、関連する別
名エントリで指定されるアドレス位置の数だけ別名バッ
ファ・メモリ値にその参照を自動的にリダイレクトする
ステップを更に含む、請求項25に記載の方法。 - 【請求項29】プロセッサがデータ・キャッシュ中間記
憶装置と、ならびにデータ・キャッシュ及び別名装置が
それぞれの操作状態に関する情報の交換を介してキャッ
シュ別名装置バスとを更に含み、 有効アドレス指定構造を使用して値を格納する受信され
た機械命令に応答して、機械命令から計算される有効ア
ドレスが別名バッファ・メモリの位置と対応するかどう
かを判定し、判定結果をデータ・キャッシュに通知する
ステップを更に含む、請求項25に記載の方法。 - 【請求項30】機械命令で指定されるバッファ・メモリ
・ベース・アドレスから開始し、指定されるアドレス位
置の数だけ終了アドレスまで連続する別名バッファ・メ
モリからの値を有する宛先レジスタをロードする受信さ
れた機械命令に応答して、所定の宛先レジスタ・サイズ
を指定されるアドレス位置の数と比較し、機械命令で指
定される長さ値が宛先レジスタのサイズを超える場合に
エラーを表示するステップを更に含む、請求項25に記
載の方法。 - 【請求項31】別名エントリを割振り及び初期化する受
信された機械命令に応答して、メモリ装置アドレス記憶
位置、バイト長値、及び別名バッファ・メモリ・ベース
・アドレスを機械命令で指定される別名エントリ・テー
ブル索引に格納し、次に別名エントリで指定される先頭
メモリ装置アドレス記憶位置に配置されバイト長値で指
定されるアドレス位置の数だけ連続するデータ・レコー
ドをベース・アドレスから開始し、バイト長値で指定さ
れるアドレス位置の数だけ連続する別名バッファ・メモ
リに格納する段階を更に含む、請求項25に記載の方
法。 - 【請求項32】別名バッファ・メモリに格納されたデー
タ・レコードをレジスタにロードする受信された機械命
令に応答して、機械命令で指定されるオフセット値を加
算してバッファ・アドレスを生成し及びバッファ・アド
レス記憶位置から開始し機械命令で指定されるバイト長
値で指定されるアドレス位置の数だけ連続する別名バッ
ファ・メモリ内のデータ・レコードを転送するステップ
を更に含む、請求項25に記載の方法。 - 【請求項33】データ・キャッシュまたは別名装置のい
ずれかからのデータ・レコードをレジスタにロードする
受信された機械命令に応答して、機械命令で指定される
有効アドレスが別名バッファ・メモリ・アドレス記憶位
置と対応するかどうかを判定し、判定をデータ・キャッ
シュに通知し、及び有効アドレスが別名バッファ・メモ
リにあると判定された場合にデータ・レコードをレジス
タに転送するステップを更に含む、請求項25に記載の
方法。 - 【請求項34】レジスタからのデータ・レコードを別名
バッファ・メモリに格納する受信された機械命令に応答
して、機械命令で指定されるオフセット値を機械命令で
指定される別名エントリ索引のベース・アドレスに対応
する別名バッファ・メモリ・ベース・アドレスに加算し
てバッファ・アドレスを生成し、及びレジスタのデータ
・レコードを機械命令で指定されるバッファ・アドレス
から開始し、アドレス位置の数だけ連続する別名バッフ
ァ・メモリに転送するステップを更に含む、請求項25
に記載の方法。 - 【請求項35】レジスタからのデータ・レコードを別名
バッファ・メモリに格納する受信された機械命令に応答
して、機械命令で指定される別名バッファ・メモリ・ア
ドレス格納位置を別名エントリ・テーブルに含まれるメ
モリ装置アドレス記憶位置と比較し、記憶位置が別名エ
ントリ・テーブルに検出されない場合に参照を不首尾に
終わることを示し、及びその他の場合はレジスタのデー
タ・レコードを機械命令で指定されるバッファ・アドレ
ス記憶位置で開始し、指定されるアドレス位置の数だけ
連続する別名バッファ・メモリに転送するステップを更
に含む、請求項25に記載の方法。 - 【請求項36】別名バッファ・メモリからのデータ・レ
コードをメモリ装置に格納する受信された機械命令に応
答して、機械命令で指定される別名エントリのベース・
アドレスに対応する別名バッファ・メモリ・アドレス記
憶位置で開始し、別名エントリのバイト長に相当するア
ドレス位置の数だけ連続するデータ・レコードを、別名
エントリのアドレスに対応し及びバイト長に相当するア
ドレス位置の数だけ連続するメモリ装置アドレス記憶位
置に転送するステップを更に含む、請求項25に記載の
方法。 - 【請求項37】プロセッサ実行論理を実施し及び命令セ
ット構造操作をサポートする回路を有すプロセッサ・コ
アと、 プロセッサ・コアがデータ・オブジェクトを格納し、デ
ータ・オブジェクトを検索するアドレス可能記憶位置を
有するメモリ装置と、 複数の記憶位置を有する別名バッファ・メモリと、別名
エントリ名により索引付けられ、メモリ装置アドレス、
長さ値、及び別名バッファ・メモリの記憶位置を識別す
るベース・アドレス・ポインタを含む別名エントリのテ
ーブルと、別名バッファ・メモリの記憶位置の割振りの
ために機械命令をプロセッサ・コアから受信し及び応答
して機械命令に含まれるベース・アドレス値を機械命令
に含まれる別名エントリ名に取込む制御論理とを有する
別名装置と、を有するプロセッサと、 オペレータがプロセッサの動作を制御するときに使用す
る1つ又はそれ以上の装置を含む入出力ブロックと、 データが格納され、検索される二次記憶装置と、 プロセッサが入出力ブロック及び二次記憶装置との通信
を介するデータ・バスと、を含むコンピュータ・システ
ム。 - 【請求項38】プログラム言語コードを受信し、実行時
処理の変換プログラム言語コードの実行に先立ちコンパ
イル処理を実行してこれを機械命令に変換し、実行時に
先立ち別名バッファ・メモリの可変長ブロックを割振る
コンパイラを更に含む、請求項37に記載のコンピュー
タ・システム。 - 【請求項39】別名装置制御論理が、別名エントリ・テ
ーブルに含まれるメモリ装置アドレス記憶位置の参照を
有する受信されたコンパイラ生成機械命令に応答して、
対応する別名エントリで指定されるアドレス位置の数だ
け別名バッファ・メモリ値にその参照を自動的にリダイ
レクトする、請求項37に記載のコンピュータ・システ
ム。 - 【請求項40】別名装置制御論理が、指定されるアドレ
スの別名バッファ・メモリでデータを格納又は検索する
受信されたコンパイラ生成機械命令に応答して、指定さ
れるアドレスを別名エントリ・テーブルに含まれるメモ
リ装置アドレス記憶位置と比較し、及び記憶位置が別名
エントリ・テーブルで検出されない場合に参照が不首尾
に終わったことを示す、請求項39に記載のコンピュー
タ・システム。 - 【請求項41】別名装置制御論理が、別名エントリ・テ
ーブル索引名の明示参照を有する受信されたコンパイラ
生成機械命令に応答して、対応する別名エントリで指定
されるアドレス位置の数だけ別名バッファ・メモリ値に
その参照を自動的にリダイレクトする、請求項39に記
載のコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/537,556 US5860138A (en) | 1995-10-02 | 1995-10-02 | Processor with compiler-allocated, variable length intermediate storage |
US537556 | 1995-10-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09171461A true JPH09171461A (ja) | 1997-06-30 |
JP3533294B2 JP3533294B2 (ja) | 2004-05-31 |
Family
ID=24143116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22099796A Expired - Fee Related JP3533294B2 (ja) | 1995-10-02 | 1996-08-22 | プロセッサ・システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5860138A (ja) |
EP (1) | EP0767424B1 (ja) |
JP (1) | JP3533294B2 (ja) |
DE (1) | DE69620702T2 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134708A (en) * | 1997-02-13 | 2000-10-17 | Nec Corporation | Program compilation execution system |
US6167459A (en) * | 1998-10-07 | 2000-12-26 | International Business Machines Corporation | System for reassigning alias addresses to an input/output device |
US6202095B1 (en) | 1998-10-07 | 2001-03-13 | International Business Machines Corporation | Defining characteristics between processing systems |
US6170023B1 (en) | 1998-10-07 | 2001-01-02 | International Business Machines Corporation | System for accessing an input/output device using multiple addresses |
US6185638B1 (en) | 1998-10-07 | 2001-02-06 | International Business Machines Corporation | Method and system for dynamically assigning addresses to an input/output device |
US6202658B1 (en) | 1998-11-11 | 2001-03-20 | Applied Materials, Inc. | Method and apparatus for cleaning the edge of a thin disc |
US7779236B1 (en) * | 1998-12-31 | 2010-08-17 | Stmicroelectronics, Inc. | Symbolic store-load bypass |
US6385496B1 (en) * | 1999-03-12 | 2002-05-07 | Fisher-Rosemount Systems, Inc. | Indirect referencing in process control routines |
US6507862B1 (en) * | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
US6542991B1 (en) * | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US6438672B1 (en) * | 1999-06-03 | 2002-08-20 | Agere Systems Guardian Corp. | Memory aliasing method and apparatus |
US6983350B1 (en) * | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6661794B1 (en) * | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6671792B1 (en) * | 2000-04-28 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Share masks and alias for directory coherency |
US7283470B1 (en) | 2002-01-25 | 2007-10-16 | Juniper Networks, Inc. | Systems and methods for dropping data using a drop profile |
US6957419B2 (en) * | 2002-03-15 | 2005-10-18 | International Business Machines Corporation | Facilitating the use of aliases during the debugging of applications |
US8769517B2 (en) | 2002-03-15 | 2014-07-01 | International Business Machines Corporation | Generating a common symbol table for symbols of independent applications |
EP1550031A1 (en) * | 2002-05-03 | 2005-07-06 | Antevista GmbH | A method for realizing autonomous load/store by using symbolic machine code |
US7471688B2 (en) * | 2002-06-18 | 2008-12-30 | Intel Corporation | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports |
WO2004001584A2 (en) * | 2002-06-24 | 2003-12-31 | Ante Vista Gmbh | A method for executing structured symbolic machine code on a microprocessor |
US7433307B2 (en) * | 2002-11-05 | 2008-10-07 | Intel Corporation | Flow control in a network environment |
JP4182928B2 (ja) * | 2004-07-07 | 2008-11-19 | セイコーエプソン株式会社 | 情報処理装置、メモリ管理プログラムおよびメモリ管理方法 |
US7784037B2 (en) * | 2006-04-14 | 2010-08-24 | International Business Machines Corporation | Compiler implemented software cache method in which non-aliased explicitly fetched data are excluded |
US8316207B2 (en) | 2009-12-30 | 2012-11-20 | International Business Machines Corporation | Assigning efficiently referenced globally unique identifiers in a multi-core environment |
DE102011119311B4 (de) | 2011-11-23 | 2014-05-28 | Brose Fahrzeugteile GmbH & Co. Kommanditgesellschaft, Würzburg | Kommutatoreinrichtung für eine rotierende elektrische Maschine |
US9436716B2 (en) * | 2013-05-07 | 2016-09-06 | PLUMgrid, Inc. | Method and system for data plane abstraction to enable a network storage platform ecosystem |
US10228921B2 (en) | 2016-06-01 | 2019-03-12 | International Business Machines Corporation | Compiler that performs register promotion optimizations in regions of code where memory aliasing may occur |
US10169010B2 (en) | 2016-06-01 | 2019-01-01 | International Business Machines Corporation | Performing register promotion optimizations in a computer program in regions where memory aliasing may occur and executing the computer program on processor hardware that detects memory aliasing |
US10169009B2 (en) | 2016-06-01 | 2019-01-01 | International Business Machines Corporation | Processor that detects memory aliasing in hardware and assures correct operation when memory aliasing occurs |
US9934009B2 (en) * | 2016-06-01 | 2018-04-03 | International Business Machines Corporation | Processor that includes a special store instruction used in regions of a computer program where memory aliasing may occur |
US10846235B2 (en) | 2018-04-28 | 2020-11-24 | International Business Machines Corporation | Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4135242A (en) * | 1977-11-07 | 1979-01-16 | Ncr Corporation | Method and processor having bit-addressable scratch pad memory |
EP0377970B1 (en) * | 1989-01-13 | 1995-08-16 | International Business Machines Corporation | I/O caching |
US5347642A (en) * | 1989-11-30 | 1994-09-13 | Nec Electronics Inc. | Cache memory management unit |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5307478A (en) * | 1990-06-11 | 1994-04-26 | Supercomputer Systems Limited Partnership | Method for inserting a path instruction during compliation of computer programs for processors having multiple functional units |
US5202975A (en) * | 1990-06-11 | 1993-04-13 | Supercomputer Systems Limited Partnership | Method for optimizing instruction scheduling for a processor having multiple functional resources |
US5159678A (en) * | 1990-06-11 | 1992-10-27 | Supercomputer Systems Limited Partnership | Method for efficient non-virtual main memory management |
US5107418A (en) * | 1990-06-11 | 1992-04-21 | Supercomputer Systems Limited Partnership | Method for representing scalar data dependences for an optimizing compiler |
CA2050828A1 (en) * | 1991-05-28 | 1992-11-29 | Herbert H.J. Hum | Register-cache architecture and super-actor machine |
US5287508A (en) * | 1992-04-07 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for efficient scheduling in a multiprocessor system |
DE4226855A1 (de) * | 1992-08-13 | 1994-02-17 | Siemens Ag | Manipulator zur Inspektion schwer zugänglicher Stellen eines Dampferzeugers |
US5566324A (en) * | 1992-12-24 | 1996-10-15 | Ncr Corporation | Computer apparatus including a main memory prefetch cache and method of operation thereof |
US5535390A (en) * | 1994-07-22 | 1996-07-09 | Hildebrandt; Thomas H. | Method for reusing temporaries and reclaiming shared memory |
-
1995
- 1995-10-02 US US08/537,556 patent/US5860138A/en not_active Expired - Fee Related
-
1996
- 1996-08-22 JP JP22099796A patent/JP3533294B2/ja not_active Expired - Fee Related
- 1996-09-09 EP EP96306526A patent/EP0767424B1/en not_active Expired - Lifetime
- 1996-09-09 DE DE69620702T patent/DE69620702T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3533294B2 (ja) | 2004-05-31 |
EP0767424A3 (en) | 1998-10-21 |
DE69620702T2 (de) | 2003-04-03 |
US5860138A (en) | 1999-01-12 |
EP0767424B1 (en) | 2002-04-17 |
DE69620702D1 (de) | 2002-05-23 |
EP0767424A2 (en) | 1997-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3533294B2 (ja) | プロセッサ・システム | |
US5819063A (en) | Method and data processing system for emulating a program | |
US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
US6490658B1 (en) | Data prefetch technique using prefetch cache, micro-TLB, and history file | |
JP2684196B2 (ja) | ワークステーシヨン | |
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US6173369B1 (en) | Computer system for processing multiple requests and out of order returns using a request queue | |
US6157993A (en) | Prefetching data using profile of cache misses from earlier code executions | |
US4985825A (en) | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer | |
KR100586058B1 (ko) | 재명명 태그들을 교환함으로써 이동이 이루어지는 레지스터 재명명 | |
US5043870A (en) | Computer with automatic mapping of memory contents into machine registers during program execution | |
US6081884A (en) | Embedding two different instruction sets within a single long instruction word using predecode bits | |
US5895501A (en) | Virtual memory system for vector based computer systems | |
KR101086801B1 (ko) | 외부 및 내부 명령 세트를 갖는 데이터 처리 시스템 | |
US6175898B1 (en) | Method for prefetching data using a micro-TLB | |
JPH10198563A (ja) | マイクロプロセッサ内の動的にロード可能なパターン履歴表 | |
KR20170139659A (ko) | 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서 | |
US6240506B1 (en) | Expanding instructions with variable-length operands to a fixed length | |
JPH06236353A (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
US6892280B2 (en) | Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system | |
EP0726525A2 (en) | Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer | |
KR20010049340A (ko) | 변환 장치의 엔트리를 무효로 하는 시스템 및 방법 | |
Berenbaum et al. | Architectural Innovations in the CRISP Microprocessor. | |
JP2001522082A (ja) | より小さな数の分岐予測および代替ターゲットを用いて近似的により大きな数の分岐予測をすること | |
EP0156307A2 (en) | Pipelined processor having dual cache memories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040205 |
|
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: 20040302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040308 |
|
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 |