JPH0782438B2 - コンピュータ・システム - Google Patents
コンピュータ・システムInfo
- Publication number
- JPH0782438B2 JPH0782438B2 JP3133234A JP13323491A JPH0782438B2 JP H0782438 B2 JPH0782438 B2 JP H0782438B2 JP 3133234 A JP3133234 A JP 3133234A JP 13323491 A JP13323491 A JP 13323491A JP H0782438 B2 JPH0782438 B2 JP H0782438B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- tag
- instructions
- composite
- compound
- 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 - Lifetime
Links
- 239000002131 composite material Substances 0.000 claims description 112
- 150000001875 compounds Chemical class 0.000 claims description 103
- 238000000034 method Methods 0.000 claims description 33
- 230000009467 reduction Effects 0.000 claims description 31
- 230000003247 decreasing effect Effects 0.000 claims 4
- 230000001143 conditioned effect Effects 0.000 claims 2
- 238000007726 management method Methods 0.000 description 26
- 238000013329 compounding Methods 0.000 description 22
- 230000004048 modification Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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/3802—Instruction prefetching
-
- 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は、デジタル・コンピュー
タ及びディジタル・データ処理装置に関し、特に2つ以
上の命令を並列に実行することが可能なデジタル・コン
ピュータ及びデータ処理装置に関する。
タ及びディジタル・データ処理装置に関し、特に2つ以
上の命令を並列に実行することが可能なデジタル・コン
ピュータ及びデータ処理装置に関する。
【0002】
【従来の技術】命令シーケンスを受け取って、それらの
シーケンスの命令を一つずつ実行する旧来のコンピュー
タは広く知られている。これらのコンピュータによって
実行される命令は、一価の(一意の)目的に対して処理
を行うため、これらのコンピュータには「スカラー」と
言う名称が付される。
シーケンスの命令を一つずつ実行する旧来のコンピュー
タは広く知られている。これらのコンピュータによって
実行される命令は、一価の(一意の)目的に対して処理
を行うため、これらのコンピュータには「スカラー」と
言う名称が付される。
【0003】従来のスカラー・コンピュータの演算速度
は、回路技術、コンピュータ・メカニズム、及びそして
コンピュータ・アーキテクチャの進歩によって、限界と
言えるまで高速化されている。しかしながら、各新世代
の計算機については、従来のスカラー型機に代わる新し
い加速メカニズムが発見されなければならない。
は、回路技術、コンピュータ・メカニズム、及びそして
コンピュータ・アーキテクチャの進歩によって、限界と
言えるまで高速化されている。しかしながら、各新世代
の計算機については、従来のスカラー型機に代わる新し
い加速メカニズムが発見されなければならない。
【0004】ユニプロセッサの演算速度を加速するため
の新しいメカニズムは、非常に簡単なな命令よりなる限
定命令セットを用いる縮小命令セット・コンピュータ(R
ISC)・アーキテクチャに見ることができる。もう一つの
加速メカニズムとしては、複雑なマルチオペランド命令
よりなる最小の命令セットに基づく複雑命令セット・コ
ンピュータ(CISC)・アーキテクチャがある。これらのア
プローチ法のどちらも、現行のスカラー・コンピュータ
に適用するには、機械の命令セット及びアーキテクチャ
の基本的変更が必要となろう。そのような広範囲に及ぶ
変更、変換には、経費、ダウン時間、及び機械の信頼性
並びに可用性の初期低下が伴う。
の新しいメカニズムは、非常に簡単なな命令よりなる限
定命令セットを用いる縮小命令セット・コンピュータ(R
ISC)・アーキテクチャに見ることができる。もう一つの
加速メカニズムとしては、複雑なマルチオペランド命令
よりなる最小の命令セットに基づく複雑命令セット・コ
ンピュータ(CISC)・アーキテクチャがある。これらのア
プローチ法のどちらも、現行のスカラー・コンピュータ
に適用するには、機械の命令セット及びアーキテクチャ
の基本的変更が必要となろう。そのような広範囲に及ぶ
変更、変換には、経費、ダウン時間、及び機械の信頼性
並びに可用性の初期低下が伴う。
【0005】命令セット限定により達成されるメリット
の一部をスカラー・コンピュータに適用しようという努
力の過程において、いわゆるスーパースカラー・コンピ
ュータが開発された。これらの機械は、基本的にはスカ
ラー・コンピュータであり、単一スカラー命令シーケン
スを含む命令ストリームからの命令を一度に2つ以上を
実行するようスカラー型機械を改作することにより性能
を向上させたものである。これらの機械は、通常、スカ
ラー命令シーケンス中の2つ以上の命令を並列に実行し
得るか否かを命令実行時点において判断する。この決定
は、命令のオペレーション・コード(OPコード)に基づ
き、また命令の間に存在し得るデータ依存性に基づいて
行われる。OPコードは、命令にとって必要な計算ハード
ウェアを示す。一般に、同じハードウェアを用いる2つ
以上の命令を同時に実行するすることは不可能であり
(ハードウェア依存性)、あるいは同じオペランドを用
いる2つ以上の命令を同時に実行することも不可能であ
る(データ依存性)。これらのハードウェア依存性及び
データ依存性は、なんらかの形の命令結合の並列実行の
妨げとなる。このような場合、当該命令は、直列に逐次
実行される。これは、もちろん、スーパースカラー・コ
ンピュータの性能を低下させる。
の一部をスカラー・コンピュータに適用しようという努
力の過程において、いわゆるスーパースカラー・コンピ
ュータが開発された。これらの機械は、基本的にはスカ
ラー・コンピュータであり、単一スカラー命令シーケン
スを含む命令ストリームからの命令を一度に2つ以上を
実行するようスカラー型機械を改作することにより性能
を向上させたものである。これらの機械は、通常、スカ
ラー命令シーケンス中の2つ以上の命令を並列に実行し
得るか否かを命令実行時点において判断する。この決定
は、命令のオペレーション・コード(OPコード)に基づ
き、また命令の間に存在し得るデータ依存性に基づいて
行われる。OPコードは、命令にとって必要な計算ハード
ウェアを示す。一般に、同じハードウェアを用いる2つ
以上の命令を同時に実行するすることは不可能であり
(ハードウェア依存性)、あるいは同じオペランドを用
いる2つ以上の命令を同時に実行することも不可能であ
る(データ依存性)。これらのハードウェア依存性及び
データ依存性は、なんらかの形の命令結合の並列実行の
妨げとなる。このような場合、当該命令は、直列に逐次
実行される。これは、もちろん、スーパースカラー・コ
ンピュータの性能を低下させる。
【0006】スーパースカラー・コンピュータには、い
くつか欠点があり、これの欠点を最小限に抑えることが
望まれる。命令実行時点においてどの命令を並列に実行
することができるかを判断するのに、無視し得ない時間
が消費される。この時間は、他の機械動作にオーバーラ
ップさせることにより見えなくしてしまうことは容易で
はない。この欠点は、命令セット・アーキテクチャが複
雑になるにつれてより顕著になる。また、同じ命令が実
行される都度、並列実行の判断を繰り返さなければなら
ない。
くつか欠点があり、これの欠点を最小限に抑えることが
望まれる。命令実行時点においてどの命令を並列に実行
することができるかを判断するのに、無視し得ない時間
が消費される。この時間は、他の機械動作にオーバーラ
ップさせることにより見えなくしてしまうことは容易で
はない。この欠点は、命令セット・アーキテクチャが複
雑になるにつれてより顕著になる。また、同じ命令が実
行される都度、並列実行の判断を繰り返さなければなら
ない。
【0007】
【発明が解決しようとする課題】現行のスカラー・コン
ピュータの有効寿命を伸ばすに際しては、実行を加速す
る手段がすべて重要となる。しかしながら、限定命令セ
ット・アーキテクチャ、複雑命令セット・アーキテクチ
ャ、あるいはスーパースカラー技術による実行加速は、
現行のスカラー・コンピュータを対象として考える場
合、コストが余りにも高くなり、あるいは不利な点が多
すぎる。そこで、この種のコンピュータの実行速度を、
命令セットの変更、機械アーキテクチャの変更、あるい
は命令実行に必要な時間の延長を要することなく、現行
の命令セットにおける命令の並列処理または同時処理に
よって加速する方が好ましいのではないかと考えられ
る。
ピュータの有効寿命を伸ばすに際しては、実行を加速す
る手段がすべて重要となる。しかしながら、限定命令セ
ット・アーキテクチャ、複雑命令セット・アーキテクチ
ャ、あるいはスーパースカラー技術による実行加速は、
現行のスカラー・コンピュータを対象として考える場
合、コストが余りにも高くなり、あるいは不利な点が多
すぎる。そこで、この種のコンピュータの実行速度を、
命令セットの変更、機械アーキテクチャの変更、あるい
は命令実行に必要な時間の延長を要することなく、現行
の命令セットにおける命令の並列処理または同時処理に
よって加速する方が好ましいのではないかと考えられ
る。
【0008】
【課題を解決するための手段】上記の課題を解決するた
め、本発明は、複数の命令を並列に実行するための手段
を有するデジタル・コンピュータ・システムにおいて、
命令をその送出及び実行に先立って複合するよう構成さ
れたメモリアー・キテクチャを採用したものである。こ
のメモリ構造は、コンピュータのCPU(中央処理装置)
に対する命令を供給する。一般に、階層的メモリ構成
は、最も新しくアクセスされた命令を記憶する高速のキ
ャッシュ記憶装置、キャッシュ記憶装置に接続された中
速の主メモリ、及び低速、大容量の補助記憶装置を含
む。また、通常、キャッシュ及び主記憶装置(併せて
「実記憶装置」と呼ばれる)には、実行のために直接参
照することのできる命令が入れられる。補助記憶装置中
の命令に対するアクセスは、主メモリと補助記憶装置と
の間に接続された入出力(I/O) アダプタを介して行われ
る。
め、本発明は、複数の命令を並列に実行するための手段
を有するデジタル・コンピュータ・システムにおいて、
命令をその送出及び実行に先立って複合するよう構成さ
れたメモリアー・キテクチャを採用したものである。こ
のメモリ構造は、コンピュータのCPU(中央処理装置)
に対する命令を供給する。一般に、階層的メモリ構成
は、最も新しくアクセスされた命令を記憶する高速のキ
ャッシュ記憶装置、キャッシュ記憶装置に接続された中
速の主メモリ、及び低速、大容量の補助記憶装置を含
む。また、通常、キャッシュ及び主記憶装置(併せて
「実記憶装置」と呼ばれる)には、実行のために直接参
照することのできる命令が入れられる。補助記憶装置中
の命令に対するアクセスは、主メモリと補助記憶装置と
の間に接続された入出力(I/O) アダプタを介して行われ
る。
【0009】一般に、キャッシュ中のテキストがWRI
TEによって修正されるとき(命令実行の結果、実行プ
ログラム中の命令をそのデータ・フィールドの1つを変
更することにより修正することが必要なとき)、その修
正後のテキストは、キャッシュより得られる1行のテキ
ストとマージすることによりキャッシュに戻される。こ
こで、マージとは、修正されたテキストを、その修正前
の形が入っているテキストの行の対応する場所に入れる
ことを意味する。
TEによって修正されるとき(命令実行の結果、実行プ
ログラム中の命令をそのデータ・フィールドの1つを変
更することにより修正することが必要なとき)、その修
正後のテキストは、キャッシュより得られる1行のテキ
ストとマージすることによりキャッシュに戻される。こ
こで、マージとは、修正されたテキストを、その修正前
の形が入っているテキストの行の対応する場所に入れる
ことを意味する。
【0010】本発明は、スカラー命令シーケンス中の命
令を最大N 個まで同時に実行することが可能なコンピュ
ータ・システムで、そのスカラー命令シーケンスが、ス
カラー命令に付随していて、アクティブになるとそれら
の命令が同時に実行されるべきことを指示する複合タグ
(compounding tag) を含むようなコンピュータ・システ
ムとの関連において理解することができる。本発明は、
コンピュータ・システムの実記憶領域に記憶されるスカ
ラー命令の複合タグを管理するためのメカニズムであ
り、実メモリから取り出されて修正された命令を実メモ
リ中の修正前の命令とマージするための実メモリに接続
されたマージ装置を有する。これらのマージ装置及び実
メモリにはタグ減少装置(tag reduction unit)が接続さ
れており、この装置は、修正された命令及びその修正さ
れた命令と複合することが可能な実メモリ中のN-1 個の
命令の複合タグを非アクティブにする。
令を最大N 個まで同時に実行することが可能なコンピュ
ータ・システムで、そのスカラー命令シーケンスが、ス
カラー命令に付随していて、アクティブになるとそれら
の命令が同時に実行されるべきことを指示する複合タグ
(compounding tag) を含むようなコンピュータ・システ
ムとの関連において理解することができる。本発明は、
コンピュータ・システムの実記憶領域に記憶されるスカ
ラー命令の複合タグを管理するためのメカニズムであ
り、実メモリから取り出されて修正された命令を実メモ
リ中の修正前の命令とマージするための実メモリに接続
されたマージ装置を有する。これらのマージ装置及び実
メモリにはタグ減少装置(tag reduction unit)が接続さ
れており、この装置は、修正された命令及びその修正さ
れた命令と複合することが可能な実メモリ中のN-1 個の
命令の複合タグを非アクティブにする。
【0011】また、本発明は、スカラー命令シーケンス
が供給され、かつ命令グループ毎に複合タグを生成する
ことにより命令を同時実行のためにグループ化するコン
パウンダ(複合装置)を有するコンピュータ・システム
を用いて実施される方法を提供するものである。複合タ
グは、最大N 個の命令よりなる命令グループについて複
合装置によりアクティブ化されて、それらのグループの
命令が同時に実行されるべきであるということを指示す
る。本発明のこの方法は、コンピュータ・システムの実
メモリに記憶された命令の複合タグを管理するものであ
り、下記のステップよりなる:実メモリに記憶されたあ
る命令の実行の間にその命令を修正するステップ;その
命令を実メモリ中の命令とマージするステップ;その命
令の複合タグを減少するステップ;その命令を複合する
ことが可能な実メモリ中のN-1 個の命令の複合タグを減
少するステップ。
が供給され、かつ命令グループ毎に複合タグを生成する
ことにより命令を同時実行のためにグループ化するコン
パウンダ(複合装置)を有するコンピュータ・システム
を用いて実施される方法を提供するものである。複合タ
グは、最大N 個の命令よりなる命令グループについて複
合装置によりアクティブ化されて、それらのグループの
命令が同時に実行されるべきであるということを指示す
る。本発明のこの方法は、コンピュータ・システムの実
メモリに記憶された命令の複合タグを管理するものであ
り、下記のステップよりなる:実メモリに記憶されたあ
る命令の実行の間にその命令を修正するステップ;その
命令を実メモリ中の命令とマージするステップ;その命
令の複合タグを減少するステップ;その命令を複合する
ことが可能な実メモリ中のN-1 個の命令の複合タグを減
少するステップ。
【0012】さらに、本発明の他の実施例は、コンピュ
ータ・システムの実メモリに記憶されたスカラー命令の
複合タグを、修正された命令、実メモリ中のその修正さ
れた命令に先行するN-l 個の命令、及び実メモリ中のそ
の修正された命令に続くN-l 個の命令のタグを再複合す
ることにより管理するよう構成されている。この場合、
複合タグ管理は、単に、修正された命令を実メモリ中で
その命令の周りにある命令と再複合する操作のみからな
る。
ータ・システムの実メモリに記憶されたスカラー命令の
複合タグを、修正された命令、実メモリ中のその修正さ
れた命令に先行するN-l 個の命令、及び実メモリ中のそ
の修正された命令に続くN-l 個の命令のタグを再複合す
ることにより管理するよう構成されている。この場合、
複合タグ管理は、単に、修正された命令を実メモリ中で
その命令の周りにある命令と再複合する操作のみからな
る。
【0013】以下、本発明を図面を参照しつつ実施例に
より詳細に説明する。
より詳細に説明する。
【0014】
【実施例】まず、図1を参照すると、この図には、本発
明に従い構成されたデジタル・データ処理システム用の
デジタル・コンピュータ・システムの一部の実施態様が
示されている。このコンピュータ・システムは、並列に
2つ以上の命令を実行することができる。また、このコ
ンピュータ・システムは、命令を並列実行または同時実
行のために複合する能力を有する。ここで、「複合す
る」とは、スカラー命令シーケンス中の複数の命令をグ
ループ化することを言い、グループ化の規模は1からN
までの範囲でスケーリング(拡縮)可能である。例え
ば、スカラー命令シーケンスは、IBM System/370シリー
ズの製品で用いられているスカラー命令セットのような
現行のスカラー命令セットから引き出すことができる。
明に従い構成されたデジタル・データ処理システム用の
デジタル・コンピュータ・システムの一部の実施態様が
示されている。このコンピュータ・システムは、並列に
2つ以上の命令を実行することができる。また、このコ
ンピュータ・システムは、命令を並列実行または同時実
行のために複合する能力を有する。ここで、「複合す
る」とは、スカラー命令シーケンス中の複数の命令をグ
ループ化することを言い、グループ化の規模は1からN
までの範囲でスケーリング(拡縮)可能である。例え
ば、スカラー命令シーケンスは、IBM System/370シリー
ズの製品で用いられているスカラー命令セットのような
現行のスカラー命令セットから引き出すことができる。
【0015】最大N 個の命令よりなる命令グループの同
時実行をサポートするため、このコンピュータ・システ
ムは、同時に並列に動作する複数の命令実行装置を具備
しており、これらの各命令実行装置は、それ自体で1種
類または2種類以上の機械レベル命令を処理する能力を
有する。
時実行をサポートするため、このコンピュータ・システ
ムは、同時に並列に動作する複数の命令実行装置を具備
しており、これらの各命令実行装置は、それ自体で1種
類または2種類以上の機械レベル命令を処理する能力を
有する。
【0016】図1に概要を示すように、命令複合装置20
は、2進スカラー命令ストリーム21を取り込み、幾つか
のスカラー命令を選択的にグループ化して、コード化さ
れた複合命令を形成する。従って、上記の処理の結果生
じる複合された命令ストリーム22は、単独で実行される
スカラー命令、または並列に実行されるスカラー命令グ
ループによって形成される複合命令として実行されるス
カラー命令を生じる。スカラー命令が命令処理装置24に
与えられると、その命令は逐次実行に割り当てられた複
数の実行装置の中の適切な1つへルーティングされる(r
outed)。複合命令が命令処理装置24に与えられると、そ
のスカラー成分は、各々、同時並列実行のための適切な
実行装置にルーティングされる。これらの実行装置をな
す典型的な機能単位としては、算術論理演算装置(ALU)2
6、 28、 浮動小数点演算装置(FP)30及び記憶アドレス生
成装置(AU)32等があるが、これに限定されるものではな
い。
は、2進スカラー命令ストリーム21を取り込み、幾つか
のスカラー命令を選択的にグループ化して、コード化さ
れた複合命令を形成する。従って、上記の処理の結果生
じる複合された命令ストリーム22は、単独で実行される
スカラー命令、または並列に実行されるスカラー命令グ
ループによって形成される複合命令として実行されるス
カラー命令を生じる。スカラー命令が命令処理装置24に
与えられると、その命令は逐次実行に割り当てられた複
数の実行装置の中の適切な1つへルーティングされる(r
outed)。複合命令が命令処理装置24に与えられると、そ
のスカラー成分は、各々、同時並列実行のための適切な
実行装置にルーティングされる。これらの実行装置をな
す典型的な機能単位としては、算術論理演算装置(ALU)2
6、 28、 浮動小数点演算装置(FP)30及び記憶アドレス生
成装置(AU)32等があるが、これに限定されるものではな
い。
【0017】複合は、毎サイクル複数の命令を処理する
ことが可能な全てのコンピュータ・アーキテクチャにお
ける命令の並列送出及び実行を容易にしようとしたもの
であるということは明らかである。
ことが可能な全てのコンピュータ・アーキテクチャにお
ける命令の並列送出及び実行を容易にしようとしたもの
であるということは明らかである。
【0018】次に、図2を参照しつつ説明すると、複合
は、各機能単位がスカラー命令(S) 、あるいは複合され
たスカラー命令(CS)を実行するユニプロセッサ環境でも
実施することができる。図示のように、一連のスカラー
命令及び複合されたスカラー命令を含む命令ストリーム
33は、各複合命令に付随する制御タグ(T) を有する。こ
のように、第1のスカラー命令34は、サイクル1におい
て機能単位A により単独で実行可能である。タグT3によ
って識別される3成分複合命令36の3つの複合されたス
カラー命令は、サイクル2においてそれぞれ機能単位A、
C、 及びDにより並列に実行可能である。タグT2によっ
て識別されるもう一つの複合命令38の一対の複合された
スカラー命令は、サイクル3において機能単位A 及びB
により並列に実行可能である。第2のスカラー命令40
は、サイクル4において機能単位C により実行可能であ
る。大きいグループをなす複合命令42の4つの複合され
たスカラー命令は、サイクル5においてそれぞれ機能単
位A 及至D により並列に実行可能である。また、第3の
スカラー命令44は、サイクル6において機能単位A によ
り単独で実行可能である。
は、各機能単位がスカラー命令(S) 、あるいは複合され
たスカラー命令(CS)を実行するユニプロセッサ環境でも
実施することができる。図示のように、一連のスカラー
命令及び複合されたスカラー命令を含む命令ストリーム
33は、各複合命令に付随する制御タグ(T) を有する。こ
のように、第1のスカラー命令34は、サイクル1におい
て機能単位A により単独で実行可能である。タグT3によ
って識別される3成分複合命令36の3つの複合されたス
カラー命令は、サイクル2においてそれぞれ機能単位A、
C、 及びDにより並列に実行可能である。タグT2によっ
て識別されるもう一つの複合命令38の一対の複合された
スカラー命令は、サイクル3において機能単位A 及びB
により並列に実行可能である。第2のスカラー命令40
は、サイクル4において機能単位C により実行可能であ
る。大きいグループをなす複合命令42の4つの複合され
たスカラー命令は、サイクル5においてそれぞれ機能単
位A 及至D により並列に実行可能である。また、第3の
スカラー命令44は、サイクル6において機能単位A によ
り単独で実行可能である。
【0019】複合命令を処理するのに適合させることが
可能なコンピュータ・アーキテクチャの一例としては、
複数のスカラー命令を各マシン・サイクルで実行するよ
う送出することができるIBM System/370の命令レベル・
アーキテクチャがある。ここで、マシン・サイクルと
は、スカラー命令を実行するのに必要な単一パイプライ
ン段を言う。命令ストリームが複合される時、隣接のス
カラー命令は、同時実行あるいは並列実行のために選択
的にグループ化される。
可能なコンピュータ・アーキテクチャの一例としては、
複数のスカラー命令を各マシン・サイクルで実行するよ
う送出することができるIBM System/370の命令レベル・
アーキテクチャがある。ここで、マシン・サイクルと
は、スカラー命令を実行するのに必要な単一パイプライ
ン段を言う。命令ストリームが複合される時、隣接のス
カラー命令は、同時実行あるいは並列実行のために選択
的にグループ化される。
【0020】一般に、命令複合機能は、並列に実行可能
な部類の命令を捜す。そして、この条件に適合する命令
シーケンスが見付かると、複合命令が生成される。
な部類の命令を捜す。そして、この条件に適合する命令
シーケンスが見付かると、複合命令が生成される。
【0021】命令の複合そのものは、本願の主題ではな
い。
い。
【0022】一般に、複合は、そのプロセスを何回も実
行可能な1つまたは複数の命令について一度に行うこと
ができるよう、命令送出前の時点で行うことが効果的で
ある。複合をコンパイル・タイム後命令送出前にハード
ウェアで実施するために、コンピュータ・システムの実
メモリ中に命令複合機能を設けるという提案がなされ
た。
行可能な1つまたは複数の命令について一度に行うこと
ができるよう、命令送出前の時点で行うことが効果的で
ある。複合をコンパイル・タイム後命令送出前にハード
ウェアで実施するために、コンピュータ・システムの実
メモリ中に命令複合機能を設けるという提案がなされ
た。
【0023】図3にメモリ内複合の概要が示されてい
る。図3の階層的メモリ構成は、補助記憶装置及びコン
ピュータの実メモリとのインターフェイスとして機能す
る入出力アダプタ40を含む。このメモリ構成の実メモリ
は、中速で比較的大容量の主メモリ46及び高速で比較的
低容量の命令キャッシュ48を有する。(本願において
は、主メモリ及びキャッシュをまとめて「実メモリ」、
「実記憶装置」、あるいは単に「メモリ」と称する。)
命令ストリームは、入出力アダプタ40を介して補助記憶
装置から入力され、主メモリ46に「ページ」と呼ばれる
ブロックの形で記憶される。「行」と呼ばれる連続する
命令の組が、主メモリ46から命令キャッシュ48へ移さ
れ、そこで命令フェッチ/送出装置50による処理のため
の高速参照の用に供せられる。キャッシュからフェッチ
された命令は、ブロック52へ送出され、そこでデコード
されてから、機能単位56、58、....、60へ送られ
る。
る。図3の階層的メモリ構成は、補助記憶装置及びコン
ピュータの実メモリとのインターフェイスとして機能す
る入出力アダプタ40を含む。このメモリ構成の実メモリ
は、中速で比較的大容量の主メモリ46及び高速で比較的
低容量の命令キャッシュ48を有する。(本願において
は、主メモリ及びキャッシュをまとめて「実メモリ」、
「実記憶装置」、あるいは単に「メモリ」と称する。)
命令ストリームは、入出力アダプタ40を介して補助記憶
装置から入力され、主メモリ46に「ページ」と呼ばれる
ブロックの形で記憶される。「行」と呼ばれる連続する
命令の組が、主メモリ46から命令キャッシュ48へ移さ
れ、そこで命令フェッチ/送出装置50による処理のため
の高速参照の用に供せられる。キャッシュからフェッチ
された命令は、ブロック52へ送出され、そこでデコード
されてから、機能単位56、58、....、60へ送られ
る。
【0024】命令実行中に、プログラム中にある命令に
対して参照がなされると、その命令のアドレスがキャッ
シュ管理装置62に与えられ、キャッシュ管理装置62は、
そのアドレスを用いて、アドレス指定された命令を含む
1つ以上の命令を命令キャッシュ48から命令フェッチ/
送出装置50の待ち行列へフェッチする。この場合、アド
レス指定された命令がキャッシュ中にあれば、キャッシ
ュ・「ヒット」となる。その命令がキャッシュ中になけ
れば、キャッシュ・「ミス」となる。キャッシュ・ミス
が起こると、キャッシュ管理装置62は要求された命令の
行アドレスを一群の記憶管理機能単位64へ送る。これら
の機能単位は、例えば、キャッシュ管理装置62によって
供給された行アドレスを用いてそのアドレス指定された
行を含むページが主メモリ46中にあるかどうかを判断す
る実記憶管理機能単位を含むものであってもよい。その
ページが主メモリ中にあれば、実記憶管理機能単位は行
アドレスを用いてその命令が欠けている行を主メモリ46
から命令キャッシュ48へ転送する。要求された命令を含
む行が主メモリ中にない場合は、オペレーティング・シ
ステムは他の記憶管理機能単位をアクティブにし、その
機能単位に所要の行を含むページの識別情報を与える。
すると、その記憶管理機能単位は、上記の行を含むペー
ジを指示するアドレスをI/O アダプタ40に送る。I/O ア
ダプタ40は、補助記憶装置からそのページを取り出し、
主メモリ46に供給する。このフェッチしたページを入れ
る余地を作るために、記憶管理機能単位は、そのページ
と置換するための主メモリ46中のページを選択する。SC
ISM アーキテクチャにおいては、この置換されたページ
は、タグ情報を複合することなく入出力アダプタを介し
て補助記憶装置に戻されるようになっている。このよう
にして、命令シーケンスの実行中に最も直ちに必要とな
りそうな命令は、命令キャッシュ48中にあって機能単位
のすぐ近くに置かれる。この階層メモリ構成によれば、
必要であるがキャッシュ中にない命令の迅速な検索能力
が得られる。
対して参照がなされると、その命令のアドレスがキャッ
シュ管理装置62に与えられ、キャッシュ管理装置62は、
そのアドレスを用いて、アドレス指定された命令を含む
1つ以上の命令を命令キャッシュ48から命令フェッチ/
送出装置50の待ち行列へフェッチする。この場合、アド
レス指定された命令がキャッシュ中にあれば、キャッシ
ュ・「ヒット」となる。その命令がキャッシュ中になけ
れば、キャッシュ・「ミス」となる。キャッシュ・ミス
が起こると、キャッシュ管理装置62は要求された命令の
行アドレスを一群の記憶管理機能単位64へ送る。これら
の機能単位は、例えば、キャッシュ管理装置62によって
供給された行アドレスを用いてそのアドレス指定された
行を含むページが主メモリ46中にあるかどうかを判断す
る実記憶管理機能単位を含むものであってもよい。その
ページが主メモリ中にあれば、実記憶管理機能単位は行
アドレスを用いてその命令が欠けている行を主メモリ46
から命令キャッシュ48へ転送する。要求された命令を含
む行が主メモリ中にない場合は、オペレーティング・シ
ステムは他の記憶管理機能単位をアクティブにし、その
機能単位に所要の行を含むページの識別情報を与える。
すると、その記憶管理機能単位は、上記の行を含むペー
ジを指示するアドレスをI/O アダプタ40に送る。I/O ア
ダプタ40は、補助記憶装置からそのページを取り出し、
主メモリ46に供給する。このフェッチしたページを入れ
る余地を作るために、記憶管理機能単位は、そのページ
と置換するための主メモリ46中のページを選択する。SC
ISM アーキテクチャにおいては、この置換されたページ
は、タグ情報を複合することなく入出力アダプタを介し
て補助記憶装置に戻されるようになっている。このよう
にして、命令シーケンスの実行中に最も直ちに必要とな
りそうな命令は、命令キャッシュ48中にあって機能単位
のすぐ近くに置かれる。この階層メモリ構成によれば、
必要であるがキャッシュ中にない命令の迅速な検索能力
が得られる。
【0025】SCISM アーキテクチャにおいては、メモリ
内命令複合は命令複合装置70によって行うことができ、
命令複合装置70は、スカラー命令ストリームの複合を主
メモリ46の入力で、または主メモリ46中で行うことがで
きるよう、機能的にI/O アダプタ40と主メモリ46との間
に設けられている。この位置においては、命令は、ペー
ジ・フェッチの進行中に複合することができる。あるい
は、命令複合装置は、主メモリ46と命令キャッシュ48と
の間の破線で示す位置72に設け、複合命令は命令が命令
キャッシュ48中にフェッチされるにつれて1行ずつ形成
されるようにしてもよい。
内命令複合は命令複合装置70によって行うことができ、
命令複合装置70は、スカラー命令ストリームの複合を主
メモリ46の入力で、または主メモリ46中で行うことがで
きるよう、機能的にI/O アダプタ40と主メモリ46との間
に設けられている。この位置においては、命令は、ペー
ジ・フェッチの進行中に複合することができる。あるい
は、命令複合装置は、主メモリ46と命令キャッシュ48と
の間の破線で示す位置72に設け、複合命令は命令が命令
キャッシュ48中にフェッチされるにつれて1行ずつ形成
されるようにしてもよい。
【0026】複合のための個々の技術は、設計的事項で
ある。しかしながら、ここでは、例示説明のため、隣接
するスカラー命令から形成される複合命令を生成するた
めの技術的方法の一例を図4に示す。図4に示すよう
に、命令は、6バイト(3ハーフワード)、4バイト
(2ハーフワード)、または2バイト(1ハーフワー
ド)等のテキストよりなる。この例における可変長命令
を含む命令セットの複合に関しては、2バイト長または
4バイト長の命令は全て相互に複合可能であるという規
則になっている。即ち、この例の場合、2バイトの命令
は、他の2バイトまたは4バイトの命令との並列実行が
可能であり、4バイトの命令は他の2バイトまたは4バ
イトの命令との並列実行が可能である。また、この例に
おいては、6バイト長の命令は全て複合することができ
ないという規則になっている。従って、6バイトの命令
は、各々単独でしか実行することができない。もちろ
ん、複合の規則はここに例示した規則に限定されるもの
ではなく、所与のコンピュータ・アーキテクチャのため
の特定の構成における現用命令の並列実行に関する基準
を規定する複数の規則を包括的に用いることが可能であ
る。
ある。しかしながら、ここでは、例示説明のため、隣接
するスカラー命令から形成される複合命令を生成するた
めの技術的方法の一例を図4に示す。図4に示すよう
に、命令は、6バイト(3ハーフワード)、4バイト
(2ハーフワード)、または2バイト(1ハーフワー
ド)等のテキストよりなる。この例における可変長命令
を含む命令セットの複合に関しては、2バイト長または
4バイト長の命令は全て相互に複合可能であるという規
則になっている。即ち、この例の場合、2バイトの命令
は、他の2バイトまたは4バイトの命令との並列実行が
可能であり、4バイトの命令は他の2バイトまたは4バ
イトの命令との並列実行が可能である。また、この例に
おいては、6バイト長の命令は全て複合することができ
ないという規則になっている。従って、6バイトの命令
は、各々単独でしか実行することができない。もちろ
ん、複合の規則はここに例示した規則に限定されるもの
ではなく、所与のコンピュータ・アーキテクチャのため
の特定の構成における現用命令の並列実行に関する基準
を規定する複数の規則を包括的に用いることが可能であ
る。
【0027】この例で使用する命令セットは、IBMSyste
m/370 アーキテクチャから得たものである。各命令のOP
コードを吟味することにより、OPコード中の命令長コー
ド(ILC) から各命令の長さを判定することができる。さ
らに、他のOPコード・ビットにより命令の種類が決定さ
れる。命令の種類及び長さが決定したならば、その特定
の命令に対してタグビットを含む複合タグが生成され、
これによってその命令が並列実行のために1つ以上の他
の命令と複合すべきか、あるいはその命令だけで単独に
実行すべきであるかが指示される。
m/370 アーキテクチャから得たものである。各命令のOP
コードを吟味することにより、OPコード中の命令長コー
ド(ILC) から各命令の長さを判定することができる。さ
らに、他のOPコード・ビットにより命令の種類が決定さ
れる。命令の種類及び長さが決定したならば、その特定
の命令に対してタグビットを含む複合タグが生成され、
これによってその命令が並列実行のために1つ以上の他
の命令と複合すべきか、あるいはその命令だけで単独に
実行すべきであるかが指示される。
【0028】この例(制限的な意味を有するものではな
い)においては、隣接した2つの命令を複合することが
できる場合、メモリ中で生成されるタグ・ビットは、複
合される第1の命令については"1" であり、複合される
第2の命令については"1" となる。これに対して、第1
と第2の命令を複合することができない場合は、第1の
命令のためのタグは"0" となり、そして第2と第3の命
令につき複合が吟味される。いったん命令バイト・スト
リームが選択された複合技術及び種々のスカラー命令に
ついてコード化された複合ビットに従って処理されたな
らば、より大きなウィンドウを用いてより大きな命令グ
ループを調べ、次に複合するのに最も良いN 個の命令の
組み合わせをピックすることにより並列実行を達成する
のにより最適な結果を得ることが可能である。
い)においては、隣接した2つの命令を複合することが
できる場合、メモリ中で生成されるタグ・ビットは、複
合される第1の命令については"1" であり、複合される
第2の命令については"1" となる。これに対して、第1
と第2の命令を複合することができない場合は、第1の
命令のためのタグは"0" となり、そして第2と第3の命
令につき複合が吟味される。いったん命令バイト・スト
リームが選択された複合技術及び種々のスカラー命令に
ついてコード化された複合ビットに従って処理されたな
らば、より大きなウィンドウを用いてより大きな命令グ
ループを調べ、次に複合するのに最も良いN 個の命令の
組み合わせをピックすることにより並列実行を達成する
のにより最適な結果を得ることが可能である。
【0029】図4の複合の例の場合、ペア式の複合が行
われる特定の命令シーケンス90用の複合タグ・ビットの
値を示すC-ベクトル72が生成される。この複合タグ・ビ
ットの値に基づいて、テキスト・シーケンスのバイト位
置6及至9の第2と第3の命令が、第2の命令の識別子
ビットの"1" が示すように、複合された命令ペアを形成
する。テキスト・バイト位置10及至13の第4と第5の命
令は、第4の命令の識別子ビットの"1" が示すように、
他の複合された命令ペアを形成する。また、バイト位置
22及び24の第7と第8の命令も、第7の命令の識別子ビ
ットの"1" が示すように、複合された命令ペアを形成す
る。
われる特定の命令シーケンス90用の複合タグ・ビットの
値を示すC-ベクトル72が生成される。この複合タグ・ビ
ットの値に基づいて、テキスト・シーケンスのバイト位
置6及至9の第2と第3の命令が、第2の命令の識別子
ビットの"1" が示すように、複合された命令ペアを形成
する。テキスト・バイト位置10及至13の第4と第5の命
令は、第4の命令の識別子ビットの"1" が示すように、
他の複合された命令ペアを形成する。また、バイト位置
22及び24の第7と第8の命令も、第7の命令の識別子ビ
ットの"1" が示すように、複合された命令ペアを形成す
る。
【0030】C-ベクトル72の複合タグは、命令複合装置
によって生成される。複合タグを生成する際、命令複合
装置は、命令テキスト・シーケンスの各ハーフワード毎
に複合タグ・ビットを与える。複合全般に関して言う
と、命令複合装置は、複合されたテキスト・シーケンス
中の各命令に付随する制御情報を含むタグを生成するこ
とができる。即ち、タグ・ビットは複合されていない各
スカラー命令毎に生成されると共に、複合されたN個の
命令グループの中の複合された各スカラー命令について
も生成される。
によって生成される。複合タグを生成する際、命令複合
装置は、命令テキスト・シーケンスの各ハーフワード毎
に複合タグ・ビットを与える。複合全般に関して言う
と、命令複合装置は、複合されたテキスト・シーケンス
中の各命令に付随する制御情報を含むタグを生成するこ
とができる。即ち、タグ・ビットは複合されていない各
スカラー命令毎に生成されると共に、複合されたN個の
命令グループの中の複合された各スカラー命令について
も生成される。
【0031】N 個の命令を複合する例においてN=2 の場
合がスカラー命令をグループ化して複合命令を形成する
最小のグループ化の例であり、好適には下記のようなコ
ード化手順が用いられる。ここでは、2バイト、4バイ
ト、または6バイト長の命令は全てハーフワード(2バ
イト)境界で境界合わせを行うものと仮定する。この場
合、各ハーフワード毎にタグが必要である。この最小グ
ループ化の例においては、"1" のタグ・ビットは、当の
バイトで始まる命令が次の命令と複合されることを示
し、他方、"0" のタグ・ビットは、当のバイトで始まる
命令が複合されないことを示す。命令の最初のバイトを
含まないハーフワードに付随するタグ・ビットは無視さ
れる。またタグは、複合された命令ペア中の第2命令の
最初のバイトのタグ・ビットも無視される。結果から言
うと、このタグ・ビットに関するコード化手順は、この
ような最も簡単な場合、ある命令について複合された命
令であることを識別指示するには1ビットの情報しか要
らないということを意味している。
合がスカラー命令をグループ化して複合命令を形成する
最小のグループ化の例であり、好適には下記のようなコ
ード化手順が用いられる。ここでは、2バイト、4バイ
ト、または6バイト長の命令は全てハーフワード(2バ
イト)境界で境界合わせを行うものと仮定する。この場
合、各ハーフワード毎にタグが必要である。この最小グ
ループ化の例においては、"1" のタグ・ビットは、当の
バイトで始まる命令が次の命令と複合されることを示
し、他方、"0" のタグ・ビットは、当のバイトで始まる
命令が複合されないことを示す。命令の最初のバイトを
含まないハーフワードに付随するタグ・ビットは無視さ
れる。またタグは、複合された命令ペア中の第2命令の
最初のバイトのタグ・ビットも無視される。結果から言
うと、このタグ・ビットに関するコード化手順は、この
ような最も簡単な場合、ある命令について複合された命
令であることを識別指示するには1ビットの情報しか要
らないということを意味している。
【0032】最大N個のスカラー命令を複合して複合命
令を形成することができる一般的な場合においては、さ
らにタグ・ビットが必要となる。実際に複合された個々
のスカラー命令数を示すのに必要な最小ビット数は、複
合命令を形成するためにグループ化することができるス
カラー命令の最大数Nの2を底とする対数である(最も
近い整数に切り上げて丸める)。従って、この例では、
N=2であり、複合された各命令毎に1つのタグ・ビッ
トが必要である。N=3または4の場合は、複合された
各命令毎に2つのタグ・ビットが必要である。
令を形成することができる一般的な場合においては、さ
らにタグ・ビットが必要となる。実際に複合された個々
のスカラー命令数を示すのに必要な最小ビット数は、複
合命令を形成するためにグループ化することができるス
カラー命令の最大数Nの2を底とする対数である(最も
近い整数に切り上げて丸める)。従って、この例では、
N=2であり、複合された各命令毎に1つのタグ・ビッ
トが必要である。N=3または4の場合は、複合された
各命令毎に2つのタグ・ビットが必要である。
【0033】図5及び6に示すように、実際に複合タグ
をメモリに記憶するには、数多くの方法がある。図示の
例は、どちらも、8バイトのメモリ・バス線の他、タグ
用の線を有し、基本的メモリ転送は64バイトのキャッシ
ュ行により行われ、かつメモリ中のテキスト2バイト毎
に1つのタグ・ビットを設けるものと仮定されている。
これらの各例には、キャッシュ行1行が示されている。
上に考察した点に戻って考えると、複合タグ・ビットの
数は、複合される命令の最大数Nと複合装置で利用可能
な情報によって決定される。
をメモリに記憶するには、数多くの方法がある。図示の
例は、どちらも、8バイトのメモリ・バス線の他、タグ
用の線を有し、基本的メモリ転送は64バイトのキャッシ
ュ行により行われ、かつメモリ中のテキスト2バイト毎
に1つのタグ・ビットを設けるものと仮定されている。
これらの各例には、キャッシュ行1行が示されている。
上に考察した点に戻って考えると、複合タグ・ビットの
数は、複合される命令の最大数Nと複合装置で利用可能
な情報によって決定される。
【0034】最も簡単なタグ記憶の実施形態は、図5に
示すように、プロセッサの内部ワードサイズを大きくす
ることである。これは、各ハーフワード毎にタグ・ビッ
トを命令に付加するかまたは命令ストリームに挿入する
ということを意味する。図5には、8つ記憶場所に編成
されたキャッシュ行が図示されている。複合しない場
合、各記憶場所の幅は8バイト(64ビット)である。
これら8つの記憶場所に関して、64バイトのキャッシ
ュ行の情報が記憶される。ハーフワードにつき1つの複
合タグを用いると、2命令複合(N=2)の場合は、命
令テキストの各ハーフワード毎に最小限1つの複合ビッ
トが必要である。したがって、各8バイト(4ハーフワ
ード)毎に4つの複合タグ・ビット(T)が必要とな
る。このことは、メモリのワードサイズを64ビットか
ら68ビットに拡張しなければならないということを意
味する。3命令または4命令複合の場合は、命令の各2
バイトにつき2ビットの複合タグが要るため、メモリの
ワードサイズを72ビットに拡張することが必要とな
る。図5は、上記の最初の場合、即ちわち、N=2で8
バイトのメモリ・バスの場合のメモリ構成を示してい
る。メモリ・バス及び内部のワードサイズは、68ビッ
トに拡張されている。この構成の欠点は、新しいメモリ
設計が必要なことであり、例えばより大きなワードの場
合には誤り訂正機構が必要になるということを意味す
る。図6は、タグ記憶のもう一つの実施形態を示し、こ
の実施形態では、テキスト・メモリとは独立しているが
これと並列に動作するタグ・メモリが用いられる。この
構成は、タグが命令テキストから分離しているというこ
とを意味する。しかしながら、図5の場合同様、タグは
それぞれの各命令に付随しており、図6における並列動
作は異なるメモリ・バス線について行われるということ
を意味する。この場合、内部メモリのワードサイズは変
わらないが、バスサイズは、タグ・メモリの並列動作に
対処するため大きくなることもある。このやり方は、ワ
ードサイズを大きくするやり方に比べて幾つか利点があ
る。まず、タグ・メモリは、主メモリ中のワードの一部
をカバーするだけでよい。オペレーティング・システム
が、メモリのある部分をデータ・ページ用にしか用いな
いならば、それらの部分に対してはタグは不要である。
図6の設計は、ハードワイヤード方式とすることも可能
である。あるいは、別途にタグ・メモリ・コントローラ
を設け、これに対するコマンドによって、あるページが
データしか入っていないということを指示するようにす
る。その場合、コントローラは、それらのページについ
てはメモリのページ・アドレスをタグ・メモリ・アドレ
スにマップしない。図6の構成の第2の利点は、タグ・
メモリを省いて、より低コストのシステムを製造するこ
とができるということである。これによって、1つのコ
ンピュータ・ファミリーにおいて可能な性能範囲が拡大
される。N成分複合において、Nが2より大きい場合
は、新しいタグ・メモリへの置換により主メモリ設計の
変更を要せずしてタグ・ビットの増加に対処することが
できる。図6の設計においては、各メモリは、各々独自
の誤り訂正機構を具備することができる。この点に関し
ては、誤り訂正はタグ・メモリにおいて必要ではなく、
誤り検出のみ必要である。検出されたタグ・ビット・エ
ラーは、全てのゼロに訂正され、これによって複合はな
くなるが、正確な実行の維持が確保される。
示すように、プロセッサの内部ワードサイズを大きくす
ることである。これは、各ハーフワード毎にタグ・ビッ
トを命令に付加するかまたは命令ストリームに挿入する
ということを意味する。図5には、8つ記憶場所に編成
されたキャッシュ行が図示されている。複合しない場
合、各記憶場所の幅は8バイト(64ビット)である。
これら8つの記憶場所に関して、64バイトのキャッシ
ュ行の情報が記憶される。ハーフワードにつき1つの複
合タグを用いると、2命令複合(N=2)の場合は、命
令テキストの各ハーフワード毎に最小限1つの複合ビッ
トが必要である。したがって、各8バイト(4ハーフワ
ード)毎に4つの複合タグ・ビット(T)が必要とな
る。このことは、メモリのワードサイズを64ビットか
ら68ビットに拡張しなければならないということを意
味する。3命令または4命令複合の場合は、命令の各2
バイトにつき2ビットの複合タグが要るため、メモリの
ワードサイズを72ビットに拡張することが必要とな
る。図5は、上記の最初の場合、即ちわち、N=2で8
バイトのメモリ・バスの場合のメモリ構成を示してい
る。メモリ・バス及び内部のワードサイズは、68ビッ
トに拡張されている。この構成の欠点は、新しいメモリ
設計が必要なことであり、例えばより大きなワードの場
合には誤り訂正機構が必要になるということを意味す
る。図6は、タグ記憶のもう一つの実施形態を示し、こ
の実施形態では、テキスト・メモリとは独立しているが
これと並列に動作するタグ・メモリが用いられる。この
構成は、タグが命令テキストから分離しているというこ
とを意味する。しかしながら、図5の場合同様、タグは
それぞれの各命令に付随しており、図6における並列動
作は異なるメモリ・バス線について行われるということ
を意味する。この場合、内部メモリのワードサイズは変
わらないが、バスサイズは、タグ・メモリの並列動作に
対処するため大きくなることもある。このやり方は、ワ
ードサイズを大きくするやり方に比べて幾つか利点があ
る。まず、タグ・メモリは、主メモリ中のワードの一部
をカバーするだけでよい。オペレーティング・システム
が、メモリのある部分をデータ・ページ用にしか用いな
いならば、それらの部分に対してはタグは不要である。
図6の設計は、ハードワイヤード方式とすることも可能
である。あるいは、別途にタグ・メモリ・コントローラ
を設け、これに対するコマンドによって、あるページが
データしか入っていないということを指示するようにす
る。その場合、コントローラは、それらのページについ
てはメモリのページ・アドレスをタグ・メモリ・アドレ
スにマップしない。図6の構成の第2の利点は、タグ・
メモリを省いて、より低コストのシステムを製造するこ
とができるということである。これによって、1つのコ
ンピュータ・ファミリーにおいて可能な性能範囲が拡大
される。N成分複合において、Nが2より大きい場合
は、新しいタグ・メモリへの置換により主メモリ設計の
変更を要せずしてタグ・ビットの増加に対処することが
できる。図6の設計においては、各メモリは、各々独自
の誤り訂正機構を具備することができる。この点に関し
ては、誤り訂正はタグ・メモリにおいて必要ではなく、
誤り検出のみ必要である。検出されたタグ・ビット・エ
ラーは、全てのゼロに訂正され、これによって複合はな
くなるが、正確な実行の維持が確保される。
【0035】命令実行の結果、実行プログラム中の命令
をそのデータ・フィールドの1つを変更することにより
修正することが必要な場合もある。命令がこのようにし
て修正される場合は、メモリ中にある入れ替えられたそ
の命令の全てのコピーも、その修正された命令と交換し
なければならない。命令が1つ以上の他の命令と複合さ
れる場合、その命令の修正によって複合条件が変わるこ
ともある。これらの複合条件は、例えば、命令が、もは
やそれ以上複合できないような点、以前より少ない命令
と複合可能なような点、あるいは異なる命令としか複合
できないような点まで変わり得る。あるいは、命令の修
正によって、命令をその周囲の命令と再複合する機会が
得られることもある。
をそのデータ・フィールドの1つを変更することにより
修正することが必要な場合もある。命令がこのようにし
て修正される場合は、メモリ中にある入れ替えられたそ
の命令の全てのコピーも、その修正された命令と交換し
なければならない。命令が1つ以上の他の命令と複合さ
れる場合、その命令の修正によって複合条件が変わるこ
ともある。これらの複合条件は、例えば、命令が、もは
やそれ以上複合できないような点、以前より少ない命令
と複合可能なような点、あるいは異なる命令としか複合
できないような点まで変わり得る。あるいは、命令の修
正によって、命令をその周囲の命令と再複合する機会が
得られることもある。
【0036】複合された命令ストリーム中の命令が変更
されるとき、データ整合性を犠牲にすることなく命令複
合のメリットを確保するため、本願発明者等は、2つの
解決策を選択した。その第1の解決策は、複合された命
令から変更された命令を削除するために、複合タグ値を
減じる方法である。この方法では、命令ストリーム中の
その命令に先行する複合タグの値の調整が必要である。
第2の解決策は、単に、修正された命令の周囲の命令を
再複合するという方法である。この方法では、それらの
命令用の新しい複合タグが生成される場合もある。
されるとき、データ整合性を犠牲にすることなく命令複
合のメリットを確保するため、本願発明者等は、2つの
解決策を選択した。その第1の解決策は、複合された命
令から変更された命令を削除するために、複合タグ値を
減じる方法である。この方法では、命令ストリーム中の
その命令に先行する複合タグの値の調整が必要である。
第2の解決策は、単に、修正された命令の周囲の命令を
再複合するという方法である。この方法では、それらの
命令用の新しい複合タグが生成される場合もある。
【0037】再び図3を参照すると、この図には、命令
キャッシュ48のフィードバック経路に本発明による複合
タグ管理装置73が示されている。この複合タグ管理装置
の場所おいては、キャッシュにおける命令の変更に応答
してタグ減少または再複合のいずれかによる複合タグ管
理を起動することができる。図3には命令キャッシュは
1つしか図示されていないが、本発明は、複数のCPU 及
び複数のキャッシュを有するコンピュータにおいて実施
可能である。実メモリの全てのコンポーネント間におけ
るデータ・コヒーレンスを維持するため、本発明におい
ては、主メモリ46のフィードバック経路に複合タグ管理
装置74を入れて、実メモリ中の命令の複合タグ管理を賄
うようにすることも可能である。
キャッシュ48のフィードバック経路に本発明による複合
タグ管理装置73が示されている。この複合タグ管理装置
の場所おいては、キャッシュにおける命令の変更に応答
してタグ減少または再複合のいずれかによる複合タグ管
理を起動することができる。図3には命令キャッシュは
1つしか図示されていないが、本発明は、複数のCPU 及
び複数のキャッシュを有するコンピュータにおいて実施
可能である。実メモリの全てのコンポーネント間におけ
るデータ・コヒーレンスを維持するため、本発明におい
ては、主メモリ46のフィードバック経路に複合タグ管理
装置74を入れて、実メモリ中の命令の複合タグ管理を賄
うようにすることも可能である。
【0038】次に、命令キャッシュ48における複合さ
れた命令の観点から複合タグ減少について説明する。こ
こでの説明は、本発明に対し何ら制限的な意味を有する
ものではなく、またキャッシュ・コヒーレンスのために
は、主メモリ46中の命令及びシステム中の他のキャッ
シュについての複合タグ減少が必要な場合があるという
ことは理解されよう。図3及び4において、命令キャッ
シュに記憶されるとき、テキスト・シーケンス90には
C−ベクトル72が付される。さらに、C−ベクトル7
2の各複合タグは、テキスト・シーケンス90の各2バ
イト毎に付される。キャッシュ管理装置62は、上書き
されたフィールドのアドレス及び長さを監視する。ここ
で、バイト位置14及び15の命令のテキストがWRI
TEにより修正されるものと仮定する。この命令用のタ
グは、その複合状態がもはや不明であるからゼロに減少
されなければならないということは明らかである。ここ
で選択された複合手順が命令の最初のハーフワードのみ
を処理対象とするものと仮定すると、変更されたバイト
の後のタグは、すべて変更する必要がない。このよう
に、バイト位置16及至23のテキスト・シーケンステ
キストに付随するC−ベクトル・ビットは、変える必要
がない。従って、ここで6バイトの命令との複合はでき
ないという禁則を無視すると、バイト位置14における
命令がバイト位置16で始まる命令と複合されれば、そ
の複合を示す複合タグ・ビットは、バイト位置14に付
されることになる。そして、このビットは、WRITE
により無効化されているはずである。バイト位置16の
命令及びその後に続く命令についての複合開始を示すバ
イト位置16のタグは、バイト位置16より前のバイト
に対する変更によっては影響されない。しかしながら、
変更された命令に先行する可能性のある命令の複合タグ
は、それらの命令が変更された命令を含む複合命令にあ
るかもしれないという可能性を考慮したものであると考
えられなければならない。変更可能な複合タグの最大数
は、複合することのできる命令の最大数N、複合可能な
命令の最大長さL、及び複合タグによってカバーされる
バイト数A(命令に対してAバイト毎に複合タグが付さ
れている場合のバイト数を示し、図4においてはA=2
となる)によって決まる。簡単にい言えば、複合命令の
一部であり得る第1の修正された命令に先行するN−1
個の命令のタグの変更の可能性について検討しなければ
ならない。例えば、最大の複合命令が2つの4バイトの
命令で構成されているとすると、第1の修正されたハー
フワードに先行する6バイト用のタグを分析しなければ
ならない。この関係を、図4に「減少されたタグ」とい
うラベルの矢印によって示す。このように、バイト位置
14の命令へのWRITEによる修正の場合、そこから
テキスト・シーケンスのバイト8の複合タグ・ビットま
で戻って、それらの複合タグ・ビットの減少につき検討
しなければならない。
れた命令の観点から複合タグ減少について説明する。こ
こでの説明は、本発明に対し何ら制限的な意味を有する
ものではなく、またキャッシュ・コヒーレンスのために
は、主メモリ46中の命令及びシステム中の他のキャッ
シュについての複合タグ減少が必要な場合があるという
ことは理解されよう。図3及び4において、命令キャッ
シュに記憶されるとき、テキスト・シーケンス90には
C−ベクトル72が付される。さらに、C−ベクトル7
2の各複合タグは、テキスト・シーケンス90の各2バ
イト毎に付される。キャッシュ管理装置62は、上書き
されたフィールドのアドレス及び長さを監視する。ここ
で、バイト位置14及び15の命令のテキストがWRI
TEにより修正されるものと仮定する。この命令用のタ
グは、その複合状態がもはや不明であるからゼロに減少
されなければならないということは明らかである。ここ
で選択された複合手順が命令の最初のハーフワードのみ
を処理対象とするものと仮定すると、変更されたバイト
の後のタグは、すべて変更する必要がない。このよう
に、バイト位置16及至23のテキスト・シーケンステ
キストに付随するC−ベクトル・ビットは、変える必要
がない。従って、ここで6バイトの命令との複合はでき
ないという禁則を無視すると、バイト位置14における
命令がバイト位置16で始まる命令と複合されれば、そ
の複合を示す複合タグ・ビットは、バイト位置14に付
されることになる。そして、このビットは、WRITE
により無効化されているはずである。バイト位置16の
命令及びその後に続く命令についての複合開始を示すバ
イト位置16のタグは、バイト位置16より前のバイト
に対する変更によっては影響されない。しかしながら、
変更された命令に先行する可能性のある命令の複合タグ
は、それらの命令が変更された命令を含む複合命令にあ
るかもしれないという可能性を考慮したものであると考
えられなければならない。変更可能な複合タグの最大数
は、複合することのできる命令の最大数N、複合可能な
命令の最大長さL、及び複合タグによってカバーされる
バイト数A(命令に対してAバイト毎に複合タグが付さ
れている場合のバイト数を示し、図4においてはA=2
となる)によって決まる。簡単にい言えば、複合命令の
一部であり得る第1の修正された命令に先行するN−1
個の命令のタグの変更の可能性について検討しなければ
ならない。例えば、最大の複合命令が2つの4バイトの
命令で構成されているとすると、第1の修正されたハー
フワードに先行する6バイト用のタグを分析しなければ
ならない。この関係を、図4に「減少されたタグ」とい
うラベルの矢印によって示す。このように、バイト位置
14の命令へのWRITEによる修正の場合、そこから
テキスト・シーケンスのバイト8の複合タグ・ビットま
で戻って、それらの複合タグ・ビットの減少につき検討
しなければならない。
【0039】本発明においては、複合タグ情報の「変
更」とは、変更された命令に先行する最大N-1 個の命令
用の複合タグの「無効化」と言う意味をも含むものとす
る。この点に関して、「無効化」とは、それらの命令が
全て複合される場合、このウィンドウ中の全ての複合タ
グは、ゼロに減少することもできるという意味を有す
る。これは、このウィンドウ中の全ての命令は単に逐次
実行されるに過ぎないから、実行を妨げることはないと
思われる。あるいは、本発明によるタグ変更は、修正さ
れたバイトに先行する(N-1) 個の命令グループが修正さ
れた命令と複合された命令を含む場合、それら(N―1)
個の命令の複合タグの値のデクリメント操作(decrement
ation)を含むものであってもよい。また、本発明は、修
正されたバイトに先行するバイトの複合タグが修正され
たバイトとの複合を示していない場合に、それらの複合
タグの無効化やデクリメント操作をしようとするもので
は全くない。
更」とは、変更された命令に先行する最大N-1 個の命令
用の複合タグの「無効化」と言う意味をも含むものとす
る。この点に関して、「無効化」とは、それらの命令が
全て複合される場合、このウィンドウ中の全ての複合タ
グは、ゼロに減少することもできるという意味を有す
る。これは、このウィンドウ中の全ての命令は単に逐次
実行されるに過ぎないから、実行を妨げることはないと
思われる。あるいは、本発明によるタグ変更は、修正さ
れたバイトに先行する(N-1) 個の命令グループが修正さ
れた命令と複合された命令を含む場合、それら(N―1)
個の命令の複合タグの値のデクリメント操作(decrement
ation)を含むものであってもよい。また、本発明は、修
正されたバイトに先行するバイトの複合タグが修正され
たバイトとの複合を示していない場合に、それらの複合
タグの無効化やデクリメント操作をしようとするもので
は全くない。
【0040】次に、図7及至15を参照しつつ本発明の
方法における処理手順を説明する。この処理手順におい
て、複合された命令に対するWRITEの処理を反映さ
せるよう複合タグを変更することを「タグ減少」と称す
る。この定義は、ゼロのタグも有効であるということの
説明になっている。さらに、複合の程度が2より大きい
とき、タグの値は、ゼロではない値まで減じることがで
きる。これに関連して、図11に示す最初の3つのアル
ゴリズムをタグ減少アルゴリズムと呼称する。
方法における処理手順を説明する。この処理手順におい
て、複合された命令に対するWRITEの処理を反映さ
せるよう複合タグを変更することを「タグ減少」と称す
る。この定義は、ゼロのタグも有効であるということの
説明になっている。さらに、複合の程度が2より大きい
とき、タグの値は、ゼロではない値まで減じることがで
きる。これに関連して、図11に示す最初の3つのアル
ゴリズムをタグ減少アルゴリズムと呼称する。
【0041】図7及至15のアルゴリズムは、各命令が
開始される位置、及びテキストの各ハーフワード毎に複
合タグは生成される位置が不明で、命令とデータが互い
に入り混じっている一般的場合について示したものであ
る。各々特定の場合については、何らかの最適化を行う
ことができる。例えば、コンピュータ・システムに命令
を含む行へのWRITEがない場合は、タグを減少する
必要はない。さらに、命令キャッシュとデータ・キャッ
シュが別個に設けられているならば、データ・キャッシ
ュにはタグが無用である。もう一つの例を挙げると、命
令境界が既知の場合、命令が開始されるバイトでないバ
イトのタグについては、減少のためのチェックは全く不
要である。また、修正されたバイトに先行する命令テキ
スト・バイトのタグ減少についてチェックする場合、既
にゼロになっている命令開始点の最初タグ・ビットでチ
ェックを停止することも可能である。
開始される位置、及びテキストの各ハーフワード毎に複
合タグは生成される位置が不明で、命令とデータが互い
に入り混じっている一般的場合について示したものであ
る。各々特定の場合については、何らかの最適化を行う
ことができる。例えば、コンピュータ・システムに命令
を含む行へのWRITEがない場合は、タグを減少する
必要はない。さらに、命令キャッシュとデータ・キャッ
シュが別個に設けられているならば、データ・キャッシ
ュにはタグが無用である。もう一つの例を挙げると、命
令境界が既知の場合、命令が開始されるバイトでないバ
イトのタグについては、減少のためのチェックは全く不
要である。また、修正されたバイトに先行する命令テキ
スト・バイトのタグ減少についてチェックする場合、既
にゼロになっている命令開始点の最初タグ・ビットでチ
ェックを停止することも可能である。
【0042】図7及至15においては、複合タグは下記の
ように解釈されるものと仮定する:即ち、タグの値は、
現在の命令と複合される後続命令の数である。命令がCP
U によってフェッチされるとき、命令の最初のバイト、
即ち命令の開始点または境界に付随する複合タグが用い
られ、他の複合タグは無視される。このことは、これら
のアルゴリズムが他のタグ表現法には用いることができ
ないということを意味するものではない。むしろ、この
例は、例示説明のみのために選択されたものである。さ
らに、これらのアルゴリズムでは、キャッシュ行の境界
にまたがる複合については全く仮定していない。このよ
うな行間複合は、タグ減少が複雑になる。この点に関す
る一つの潜在的な解決策としては、ある行の始めに十分
近い修正を検出して、その前の行のタグを減少させるこ
とが考えられよう。この場合、キャッシュは、前の行の
全部または一部を無効にし、適当なフラグをセットして
他のキャッシュ及び主メモリにタグ減少の発生を知らせ
るようにしてもよい。あるいは、キャッシュは、キャッ
シュ・コヒーレンシー・プロトコルにおいて行を要求
し、適当なタグを減少するようにしてもよく、その場合
は、テキストが修正されるものと考えられる。
ように解釈されるものと仮定する:即ち、タグの値は、
現在の命令と複合される後続命令の数である。命令がCP
U によってフェッチされるとき、命令の最初のバイト、
即ち命令の開始点または境界に付随する複合タグが用い
られ、他の複合タグは無視される。このことは、これら
のアルゴリズムが他のタグ表現法には用いることができ
ないということを意味するものではない。むしろ、この
例は、例示説明のみのために選択されたものである。さ
らに、これらのアルゴリズムでは、キャッシュ行の境界
にまたがる複合については全く仮定していない。このよ
うな行間複合は、タグ減少が複雑になる。この点に関す
る一つの潜在的な解決策としては、ある行の始めに十分
近い修正を検出して、その前の行のタグを減少させるこ
とが考えられよう。この場合、キャッシュは、前の行の
全部または一部を無効にし、適当なフラグをセットして
他のキャッシュ及び主メモリにタグ減少の発生を知らせ
るようにしてもよい。あるいは、キャッシュは、キャッ
シュ・コヒーレンシー・プロトコルにおいて行を要求
し、適当なタグを減少するようにしてもよく、その場合
は、テキストが修正されるものと考えられる。
【0043】図7は、通常のキャッシュ管理動作の流れ
を示す。当業者ならば、図7のメモリ管理技術が、図3
に示す階層的メモリ構成における複合に先立って修正さ
れた典型的なメモリ管理技術であるということが理解で
きよう。従って、参照中のテキストの仮想アドレス74
は、アドレスのページ番号を主メモリにあるページのデ
ィレクトリと照合するルーチン・アドレス変換索引75に
よって実アドレスに変換される。そのページが主メモリ
中にあって、ページ・フォールトがなく、判断ブロック
76の否定の出口が選択されると、実アドレス77が組み立
てられ、キャッシュ動作が開始される。実アドレスが77
に示されるテキストがWRITE によって変更または修正さ
れるものと仮定すると、2つのコンシステンシー・ルー
チンの1つが起動されて、主メモリ中の修正されたテキ
ストのコピーを更新する。このようにして、WRITE が発
生すると、キャッシュ・タイプ判断ブロック78の2つの
ブランチの一方が選択される。左側の出口は、主メモリ
中のテキストのコピーがキャッシュ中のテキスト更新と
同時に更新されるライトスルー(WRITE-through) ・ルー
チンを取る。これに対して、ステップ80のライトバック
(WRITE-back)・ルーチンは、テキストをキャッシュ中に
ある間に修正させ、その後適宜の時点においてキャッシ
ュ行を逆に主メモリに書き込むことにより、確実に主メ
モリのコピーを更新させる。ステップ78からの2つのブ
ランチは、ステップ81で再結合され、このステップ81に
おいては、全てのキャッシュと主メモリの間で一貫性を
確保するためキャッシュ・コヒーレンシー・ルーチンが
起動される。
を示す。当業者ならば、図7のメモリ管理技術が、図3
に示す階層的メモリ構成における複合に先立って修正さ
れた典型的なメモリ管理技術であるということが理解で
きよう。従って、参照中のテキストの仮想アドレス74
は、アドレスのページ番号を主メモリにあるページのデ
ィレクトリと照合するルーチン・アドレス変換索引75に
よって実アドレスに変換される。そのページが主メモリ
中にあって、ページ・フォールトがなく、判断ブロック
76の否定の出口が選択されると、実アドレス77が組み立
てられ、キャッシュ動作が開始される。実アドレスが77
に示されるテキストがWRITE によって変更または修正さ
れるものと仮定すると、2つのコンシステンシー・ルー
チンの1つが起動されて、主メモリ中の修正されたテキ
ストのコピーを更新する。このようにして、WRITE が発
生すると、キャッシュ・タイプ判断ブロック78の2つの
ブランチの一方が選択される。左側の出口は、主メモリ
中のテキストのコピーがキャッシュ中のテキスト更新と
同時に更新されるライトスルー(WRITE-through) ・ルー
チンを取る。これに対して、ステップ80のライトバック
(WRITE-back)・ルーチンは、テキストをキャッシュ中に
ある間に修正させ、その後適宜の時点においてキャッシ
ュ行を逆に主メモリに書き込むことにより、確実に主メ
モリのコピーを更新させる。ステップ78からの2つのブ
ランチは、ステップ81で再結合され、このステップ81に
おいては、全てのキャッシュと主メモリの間で一貫性を
確保するためキャッシュ・コヒーレンシー・ルーチンが
起動される。
【0044】要求されたテキストの入ったページが主メ
モリ中にない(従って、キャッシュ中にもない)と仮定
すると、ページ・フォールト・ステップ76の肯定の出口
が選択され、ステップ83でルーチン・ページ・フォール
ト処理が起動され、補助記憶装置からフェッチされた新
しいページがステップ84で複合に供され、ステップ85に
おいてそのページ及び複合タグが主メモリに記憶され
る。この後は、前述のとおりに手順が実行される。
モリ中にない(従って、キャッシュ中にもない)と仮定
すると、ページ・フォールト・ステップ76の肯定の出口
が選択され、ステップ83でルーチン・ページ・フォール
ト処理が起動され、補助記憶装置からフェッチされた新
しいページがステップ84で複合に供され、ステップ85に
おいてそのページ及び複合タグが主メモリに記憶され
る。この後は、前述のとおりに手順が実行される。
【0045】図7のステップ79のWRITE-through キャッ
シュ・ルーチンを図8に詳細に示す。このルーチンは、
テキスト修正によって主メモリとキャッシュ中のテキス
トのコピーが同時に更新される通常のWRITE-through 方
式のやり方に従って実行される。この点に関して、命令
実行がキャッシュ中のテキスト参照を必要とする場合
は、最初の判断はその参照がWRITE であるかどうかの判
断である。WRITE でなければ、判断ブロック90で否定の
出口が取られる。参照されたテキストがキャッシュ中に
あれば、ステップ91で否定の出口が取られ、判断ブロッ
ク92の判断に進む。アドレスされたテキストが命令でな
い場合は、そのテキストはCPU に与えられ、ルーチンは
出口から抜け出る。命令フェッチが必要ならば、命令が
取り出され、実行のためその複合タグと共にCPU に供給
される。アドレスされたテキストがキャッシュ中になけ
れば、ステップ91の肯定の出口が選択され、置換ルーチ
ン94及びキャッシュ・ミス処理ルーチン95が起動され
て、キャッシュ中の行をアドレスされた命令を含む行と
置換する。このようなルーチンは、当技術分野において
は周知である。図12及び13示す例は、それらのルーチン
を複合タグを入れるために修正したものである。これら
のステップでは、キャッシュで置換される行及びその付
随タグをまずメモリに戻すことが必要であり、次いでア
ドレスされたテキストを含む行及び付随タグをメモリに
戻された上記行のあるキャッシュ中の場所に入れること
が必要である。そして、処理は、上に述べたように、判
断ブロック決定92を通って進行する。
シュ・ルーチンを図8に詳細に示す。このルーチンは、
テキスト修正によって主メモリとキャッシュ中のテキス
トのコピーが同時に更新される通常のWRITE-through 方
式のやり方に従って実行される。この点に関して、命令
実行がキャッシュ中のテキスト参照を必要とする場合
は、最初の判断はその参照がWRITE であるかどうかの判
断である。WRITE でなければ、判断ブロック90で否定の
出口が取られる。参照されたテキストがキャッシュ中に
あれば、ステップ91で否定の出口が取られ、判断ブロッ
ク92の判断に進む。アドレスされたテキストが命令でな
い場合は、そのテキストはCPU に与えられ、ルーチンは
出口から抜け出る。命令フェッチが必要ならば、命令が
取り出され、実行のためその複合タグと共にCPU に供給
される。アドレスされたテキストがキャッシュ中になけ
れば、ステップ91の肯定の出口が選択され、置換ルーチ
ン94及びキャッシュ・ミス処理ルーチン95が起動され
て、キャッシュ中の行をアドレスされた命令を含む行と
置換する。このようなルーチンは、当技術分野において
は周知である。図12及び13示す例は、それらのルーチン
を複合タグを入れるために修正したものである。これら
のステップでは、キャッシュで置換される行及びその付
随タグをまずメモリに戻すことが必要であり、次いでア
ドレスされたテキストを含む行及び付随タグをメモリに
戻された上記行のあるキャッシュ中の場所に入れること
が必要である。そして、処理は、上に述べたように、判
断ブロック決定92を通って進行する。
【0046】図8において、アドレスされたテキストが
書き込み中または修正中であるとすると、判断ブロック
90の肯定の出口が選択され、ステップ93においてそのテ
キストがキャッシュ中にあるかどうかが調べられる。テ
キストがキャッシュ中になければ、キャシュミスとなっ
て、肯定の出口が選択され、ステップ96で行部分書込み
ルーチンが起動されて、主メモリ中のテキストを修正す
る。
書き込み中または修正中であるとすると、判断ブロック
90の肯定の出口が選択され、ステップ93においてそのテ
キストがキャッシュ中にあるかどうかが調べられる。テ
キストがキャッシュ中になければ、キャシュミスとなっ
て、肯定の出口が選択され、ステップ96で行部分書込み
ルーチンが起動されて、主メモリ中のテキストを修正す
る。
【0047】他方、図14及び15には、行部分書き込
みルーチンが示されている。図14において、修正され
たテキストは、主メモリ中でその前の行を含む行とマー
ジされる。タグ減少ルーチンは、必要に応じて新しいタ
グを生成し、修正されたテキスト及びタグが記憶され
る。複合タグ減少ルーチンは、図3に74で示す位置に
おいて実行され、修正されたテキストの複合タグをゼロ
にすると共に、その修正されたテキストに先行する(N
L−A)バイトのタグを処理する。図15に示すもう一
つの行部分書込みルーチンにおいては、転送された行の
ソースがタグ減少を行うものと仮定されている。この場
合、タグ減少は、図3に73で示す位置において実行す
ることができ、その場合、これによって生成された新し
いタグは、修正されたテキストと共に主メモリへ転送さ
れる。
みルーチンが示されている。図14において、修正され
たテキストは、主メモリ中でその前の行を含む行とマー
ジされる。タグ減少ルーチンは、必要に応じて新しいタ
グを生成し、修正されたテキスト及びタグが記憶され
る。複合タグ減少ルーチンは、図3に74で示す位置に
おいて実行され、修正されたテキストの複合タグをゼロ
にすると共に、その修正されたテキストに先行する(N
L−A)バイトのタグを処理する。図15に示すもう一
つの行部分書込みルーチンにおいては、転送された行の
ソースがタグ減少を行うものと仮定されている。この場
合、タグ減少は、図3に73で示す位置において実行す
ることができ、その場合、これによって生成された新し
いタグは、修正されたテキストと共に主メモリへ転送さ
れる。
【0048】ここで、WRITE が生成され、書込み対象の
テキストがキャッシュ中ににあると仮定すると、キャッ
シュ・ヒットとなり、判断ブロック93で否定の出口が選
択される。この場合、アドレスされたテキストは、ステ
ップ97においてキャッシュ中で修正され、他方、本発明
においては、命令用の複合タグがステップ98においてタ
グ減少ルーチンにより減少される。その後、その命令の
コピーが、ステップ96の行部分WRITE ルーチンによって
主メモリ中で修正される。
テキストがキャッシュ中ににあると仮定すると、キャッ
シュ・ヒットとなり、判断ブロック93で否定の出口が選
択される。この場合、アドレスされたテキストは、ステ
ップ97においてキャッシュ中で修正され、他方、本発明
においては、命令用の複合タグがステップ98においてタ
グ減少ルーチンにより減少される。その後、その命令の
コピーが、ステップ96の行部分WRITE ルーチンによって
主メモリ中で修正される。
【0049】図9は、主メモリとキャッシュとの間でデ
ータ・コンシステンシーを確保するためのWRITE-back
(ライトバック・)キャッシュ・ルーチンを示す。WRIT
E-hit (ライトヒット)と同時に、テキストのキャッシ
ュ・コピーだけが変更される。後で、その行が主メモリ
に戻される時に更新が実行される。ライトバックの場
合、このメモリ管理のやり方では、キャッシュに書き込
まれた全ての行をメモリへ書き戻すことが必要な事もあ
る。あるいは、ライトヒットと同時に、WRITE により影
響されたキャッシュ行に「ダーティ」とマークするよう
にしてもよい。後で、それらの「ダーティ」な行だけが
主メモリへ書き戻される。図9において、参照ミスが発
生すると、判断ブロック100 の肯定の出口が選択され、
置換ルーチン94及びキャッシュ・ミス処理ルーチン95を
起動することによって、メモリからキャッシュへ転送さ
れ、キャッシュ中のある行とスワップされる(これらの
ルーチンについては図12及び13を参照のこと)。参照が
WRITE 参照でないならば、ステップ101 の否定の出口が
選択され、処理は、図8のステップ92に関して上に説明
したようにで示されたように進行する。参照がWRITE で
あれば、判断ブロック101 の肯定の出口が選択され、修
正されたテキストがキャッシュに書き込まれ、ステップ
103 で本発明によるタグ減少ルーチンが起動されて修正
された命令のタグを減少する。
ータ・コンシステンシーを確保するためのWRITE-back
(ライトバック・)キャッシュ・ルーチンを示す。WRIT
E-hit (ライトヒット)と同時に、テキストのキャッシ
ュ・コピーだけが変更される。後で、その行が主メモリ
に戻される時に更新が実行される。ライトバックの場
合、このメモリ管理のやり方では、キャッシュに書き込
まれた全ての行をメモリへ書き戻すことが必要な事もあ
る。あるいは、ライトヒットと同時に、WRITE により影
響されたキャッシュ行に「ダーティ」とマークするよう
にしてもよい。後で、それらの「ダーティ」な行だけが
主メモリへ書き戻される。図9において、参照ミスが発
生すると、判断ブロック100 の肯定の出口が選択され、
置換ルーチン94及びキャッシュ・ミス処理ルーチン95を
起動することによって、メモリからキャッシュへ転送さ
れ、キャッシュ中のある行とスワップされる(これらの
ルーチンについては図12及び13を参照のこと)。参照が
WRITE 参照でないならば、ステップ101 の否定の出口が
選択され、処理は、図8のステップ92に関して上に説明
したようにで示されたように進行する。参照がWRITE で
あれば、判断ブロック101 の肯定の出口が選択され、修
正されたテキストがキャッシュに書き込まれ、ステップ
103 で本発明によるタグ減少ルーチンが起動されて修正
された命令のタグを減少する。
【0050】図10には、タグ減少に関する処理手順を含
むキャッシュ・コヒーレンシー・ルーチンが図解されて
いる。このキャッシュ・コヒーレンシー・ルーチンは、
基本的には、キャッシュ中のデータを補助記憶装置から
の主メモリに転送されるデータ、または他のキャッシュ
で更新されるデータとを必ず合致させるために用いられ
るルーチンである。図10のキャッシュ・コヒーレンシー
・ルーチンは、多重プロセッサ、多重I/O 、及び多重キ
ャッシュ型実メモリを有するコンピュータの全てのキャ
ッシュに適用可能である。これには、ステップ110 に示
すように、標準的なコヒーレンシー・アルゴリズムを適
用することができる。このようなアルゴリズムの説明
は、例えば、エー・ジェイ・バン・ド・グーア(A.J.de
Goor) 著の「コンピュータ・アーキテクチャと設計(COM
PUTER ARCHITECTURE AND DESIGN)」(1989年刊) の492 及
至507 ページに記載されている。
むキャッシュ・コヒーレンシー・ルーチンが図解されて
いる。このキャッシュ・コヒーレンシー・ルーチンは、
基本的には、キャッシュ中のデータを補助記憶装置から
の主メモリに転送されるデータ、または他のキャッシュ
で更新されるデータとを必ず合致させるために用いられ
るルーチンである。図10のキャッシュ・コヒーレンシー
・ルーチンは、多重プロセッサ、多重I/O 、及び多重キ
ャッシュ型実メモリを有するコンピュータの全てのキャ
ッシュに適用可能である。これには、ステップ110 に示
すように、標準的なコヒーレンシー・アルゴリズムを適
用することができる。このようなアルゴリズムの説明
は、例えば、エー・ジェイ・バン・ド・グーア(A.J.de
Goor) 著の「コンピュータ・アーキテクチャと設計(COM
PUTER ARCHITECTURE AND DESIGN)」(1989年刊) の492 及
至507 ページに記載されている。
【0051】図10においては、そのような3つのアルゴ
リズムが判断ブロック111、 112 及び113 として表され
ている。これらのアルゴリズムは、単に便宜上判断ブロ
ックとして示してある。判断ブロック112 及び113 によ
って表されるアルゴリズムは、WRITEは全て主メモリに
対して行うよう要求することによって、実メモリにおい
てはコヒーレンシーの問題が回避されるものと仮定され
ている。判断ブロック112 のアルゴリズムにおいて、主
メモリへのWRITE は、書き込まれたテキストを含む行全
体のその書込みにより影響されるキャッシュへの転送を
生じさせる。このアルゴリズムにおいては、メモリへの
書込みが行われると、その結果、修正されたテキストを
含む行全体及びその付随タグがキャッシュに供給される
ように、タグ減少ルーチンが主メモリで実行されるもの
と仮定されている。あるいは、判断ブロック113 の場合
と同様に行部分が転送される場合は、図14及び15に示す
行部分書込みルーチンの1つが起動される。
リズムが判断ブロック111、 112 及び113 として表され
ている。これらのアルゴリズムは、単に便宜上判断ブロ
ックとして示してある。判断ブロック112 及び113 によ
って表されるアルゴリズムは、WRITEは全て主メモリに
対して行うよう要求することによって、実メモリにおい
てはコヒーレンシーの問題が回避されるものと仮定され
ている。判断ブロック112 のアルゴリズムにおいて、主
メモリへのWRITE は、書き込まれたテキストを含む行全
体のその書込みにより影響されるキャッシュへの転送を
生じさせる。このアルゴリズムにおいては、メモリへの
書込みが行われると、その結果、修正されたテキストを
含む行全体及びその付随タグがキャッシュに供給される
ように、タグ減少ルーチンが主メモリで実行されるもの
と仮定されている。あるいは、判断ブロック113 の場合
と同様に行部分が転送される場合は、図14及び15に示す
行部分書込みルーチンの1つが起動される。
【0052】判断ブロック111 は、無効化信号に基づい
てキャッシュ・コヒーレンシーを維持するようにしたア
ルゴリズムを表す。この場合、適切な無効化信号が起動
されない限り、テキストの行全体または行部分が主メモ
リからキャッシュに受け入れられることもある。しかし
ながら、キャッシュ中の指定されたテキストに関する無
効化信号が起動されると、標準のアルゴリズムでは、そ
の指定されたテキストの無効化が行われる。本発明にお
いては、ステップ115によって表されるタグ減少が起動
されて、その影響された行中の無効化されたテキストに
先行する(N-1) 個の命令の複合タグを変更する。
てキャッシュ・コヒーレンシーを維持するようにしたア
ルゴリズムを表す。この場合、適切な無効化信号が起動
されない限り、テキストの行全体または行部分が主メモ
リからキャッシュに受け入れられることもある。しかし
ながら、キャッシュ中の指定されたテキストに関する無
効化信号が起動されると、標準のアルゴリズムでは、そ
の指定されたテキストの無効化が行われる。本発明にお
いては、ステップ115によって表されるタグ減少が起動
されて、その影響された行中の無効化されたテキストに
先行する(N-1) 個の命令の複合タグを変更する。
【0053】図11は、本発明による4つのタグ管理アル
ゴリズムを示す。これらのルーチンは、どれでも前述の
手順中の適宜の点において起動することができる。第1
のアルゴリズム、即ちアルゴリズム1は、修正されたキ
ャッシュ行の全てのタグをゼロすることによりタグを減
少する。アルゴリズム4は、その正反対で、修正された
命令のバイト及び修正されたバイトの前後の少なくとも
(NL-A)バイトを再複合する。アルゴリズム2において
は、修正された行の複合タグ・ビットが、まず修正され
たテキストのタグ・ビットをゼロにすることにより減少
される。次の、前側の(NL-A)バイトのタグ・ビットもゼ
ロにし、アルゴリズムは出口より抜け出る。
ゴリズムを示す。これらのルーチンは、どれでも前述の
手順中の適宜の点において起動することができる。第1
のアルゴリズム、即ちアルゴリズム1は、修正されたキ
ャッシュ行の全てのタグをゼロすることによりタグを減
少する。アルゴリズム4は、その正反対で、修正された
命令のバイト及び修正されたバイトの前後の少なくとも
(NL-A)バイトを再複合する。アルゴリズム2において
は、修正された行の複合タグ・ビットが、まず修正され
たテキストのタグ・ビットをゼロにすることにより減少
される。次の、前側の(NL-A)バイトのタグ・ビットもゼ
ロにし、アルゴリズムは出口より抜け出る。
【0054】図11のアルゴリズム3においては、命令
キャッシュ中の修正されたテキストの複合タグ・ビット
がステップ120でゼロに減少される。次に、修正され
たテキストに先行するキャッシュ行の(NL−A)バイ
トのタグが1つずつ調べられ、さらに複合タグ減少が必
要かどうかが決定される。この点に関して、修正された
テキストのアドレスが分かれば、その行及び行の位置が
分かり、そのテキストに先行する行の部分を調べるため
の始点を決定することができる。このように、ステップ
122には、行の位置の起点に先行するAバイトの複合
タグ・ビットを調べるループが入れられる。最初のハー
フワードのタグの値がゼロに等しい場合は、判断ブロッ
ク123の否定の出口が選択され、判断ブロック124
の否定の出口を介して再度ステップ122が実行され
る。判断ブロック123に戻って、吟味中の次のAバイ
トのタグの値がゼロより大きければ、そのバイトから始
まる複合命令の終わりを探し、その複合命令中の他のバ
イトに修正されたものがあるかどうかの判断がなされ
る。他のバイトが修正されていなければ、判断ブロック
125の否定の出口が選択され、判断ブロック124へ
戻る。他に修正されたバイトがあれば、当のAバイトの
タグの値が1だけ減じられ、判断ブロック123へ戻
る。このように、判断ブロック123の肯定の出口が選
択されると、複合命令中のバイトが修正された場合だ
け、修正された命令に先行するキャッシュ行の部分の複
合命令の大きさが調整される。修正された命令がそれに
先行する複合命令中に含まれている場合は、その複合命
令のためのタグは1だけ減じられ、最終的にはその修正
された命令が複合命令から除去される結果、判断ボック
ス123の肯定の出口が2度目に選択されると、アルゴ
リズムはステップ125の否定の出口及びステップ12
4の肯定の出口を経て抜け出る。
キャッシュ中の修正されたテキストの複合タグ・ビット
がステップ120でゼロに減少される。次に、修正され
たテキストに先行するキャッシュ行の(NL−A)バイ
トのタグが1つずつ調べられ、さらに複合タグ減少が必
要かどうかが決定される。この点に関して、修正された
テキストのアドレスが分かれば、その行及び行の位置が
分かり、そのテキストに先行する行の部分を調べるため
の始点を決定することができる。このように、ステップ
122には、行の位置の起点に先行するAバイトの複合
タグ・ビットを調べるループが入れられる。最初のハー
フワードのタグの値がゼロに等しい場合は、判断ブロッ
ク123の否定の出口が選択され、判断ブロック124
の否定の出口を介して再度ステップ122が実行され
る。判断ブロック123に戻って、吟味中の次のAバイ
トのタグの値がゼロより大きければ、そのバイトから始
まる複合命令の終わりを探し、その複合命令中の他のバ
イトに修正されたものがあるかどうかの判断がなされ
る。他のバイトが修正されていなければ、判断ブロック
125の否定の出口が選択され、判断ブロック124へ
戻る。他に修正されたバイトがあれば、当のAバイトの
タグの値が1だけ減じられ、判断ブロック123へ戻
る。このように、判断ブロック123の肯定の出口が選
択されると、複合命令中のバイトが修正された場合だ
け、修正された命令に先行するキャッシュ行の部分の複
合命令の大きさが調整される。修正された命令がそれに
先行する複合命令中に含まれている場合は、その複合命
令のためのタグは1だけ減じられ、最終的にはその修正
された命令が複合命令から除去される結果、判断ボック
ス123の肯定の出口が2度目に選択されると、アルゴ
リズムはステップ125の否定の出口及びステップ12
4の肯定の出口を経て抜け出る。
【0055】ここで、図11のアルゴリズム3につい
て、図21を参照しつつさらに詳細に説明する。この図
には、5つの命令、即ち命令1及至命令5が複合される
命令キャッシュ中のテキスト用のC−ベクトルが示され
ている。さらに、ここでは、A=2、L=4、及びN=
5と仮定する。まず、2バイトの命令である命令1の複
合タグは4に等しく、後続の4つの命令、即ち命令2及
至5と複合されるということを示している。4バイトの
命令2は、その最初の2バイトに対しては3の複合タグ
値を有して、次の3つの命令(命令3及至5)と複合さ
れることを示し、2番目のバイトについては0の複合タ
グ値を有する。4バイトの命令3は、2及び0の複合タ
グ値を有する。4バイトの命令4は、1及び0の複合タ
グ値を有し、2バイトの命令5は、0の複合タグ値を有
して、後続のどの命令とも複合されないということを示
している。今、命令3を修正するものと仮定すると、図
11のアルゴリズム3が命令3及びこれに先行する(N
L−A)バイトに対して処理を行い、後続のバイトは命
令4及び5を含めて全て無視する。これに関連して、命
令4及び5の複合タグ情報は変更されないが、命令3の
2つのタグはアルゴリズム3のステップ120に従い0
に減じられる。次に、アルゴリズム3では、命令3に先
行する2バイトの複合タグ情報を調べ、その値が0であ
るため、ステップ123の否定の出口及びステップ12
4の否定の出口が選択される。そして、ステップ122
において命令2の最初の2バイトの複合タグ情報が調べ
られ、その値が0より大きいことが分かって、ステップ
123の肯定の出口が選択される。この肯定の出口の後
は、複合タグの値が3となって、命令5が命令2の最初
の2バイトで始まる複合命令を終了させることを指示す
る。判断ブロック125においては、命令3(修正され
た命令)がこの複合命令に入っているため、肯定の出口
が選択され、複合タグ値3が2に減じられ、判断ブロッ
ク123が再度実行される。このループは、命令2の最
初の2バイトの複合タグの値が0に減少されるまで続け
られ、この複合タグ値が0になると、命令3は複合命令
中にもはや入っておらず、ステップ125の否定の出口
を介して判断ブロック124が実行される。この判断で
は、(NL−A)バイトの吟味が完了していないから、
アルゴリズム3は、判断ブロック124の否定の出口を
介してステップ122へ戻る。そして、命令2に先行す
るAバイト(複合命令の命令1よりなる)が吟味される
(複合タグ値が調べられる)。この複合タグの値は、0
より大きく、命令1の複合タグの値が1に減じられる
(命令1は命令2と複合された状態に保たれる)まで、
ステップ123及び125の肯定の出口を含むループが
繰り返し実行される。こうして、命令3に先行する(N
L−A)バイトの残りのバイトのアルゴリズム3による
吟味が続けられる。しかしながら、これらの残りのバイ
トの複合タグは、それらが入っている複合命令は命令3
の修正されたテキストを全く含まないので、どのタグも
変更されない。このように、アルゴリズム3は、命令3
に先行する(NL−A)バイトが全て吟味されるまで、
ステップ125及び124の否定の出口を通るループを
繰り返し実行する。
て、図21を参照しつつさらに詳細に説明する。この図
には、5つの命令、即ち命令1及至命令5が複合される
命令キャッシュ中のテキスト用のC−ベクトルが示され
ている。さらに、ここでは、A=2、L=4、及びN=
5と仮定する。まず、2バイトの命令である命令1の複
合タグは4に等しく、後続の4つの命令、即ち命令2及
至5と複合されるということを示している。4バイトの
命令2は、その最初の2バイトに対しては3の複合タグ
値を有して、次の3つの命令(命令3及至5)と複合さ
れることを示し、2番目のバイトについては0の複合タ
グ値を有する。4バイトの命令3は、2及び0の複合タ
グ値を有する。4バイトの命令4は、1及び0の複合タ
グ値を有し、2バイトの命令5は、0の複合タグ値を有
して、後続のどの命令とも複合されないということを示
している。今、命令3を修正するものと仮定すると、図
11のアルゴリズム3が命令3及びこれに先行する(N
L−A)バイトに対して処理を行い、後続のバイトは命
令4及び5を含めて全て無視する。これに関連して、命
令4及び5の複合タグ情報は変更されないが、命令3の
2つのタグはアルゴリズム3のステップ120に従い0
に減じられる。次に、アルゴリズム3では、命令3に先
行する2バイトの複合タグ情報を調べ、その値が0であ
るため、ステップ123の否定の出口及びステップ12
4の否定の出口が選択される。そして、ステップ122
において命令2の最初の2バイトの複合タグ情報が調べ
られ、その値が0より大きいことが分かって、ステップ
123の肯定の出口が選択される。この肯定の出口の後
は、複合タグの値が3となって、命令5が命令2の最初
の2バイトで始まる複合命令を終了させることを指示す
る。判断ブロック125においては、命令3(修正され
た命令)がこの複合命令に入っているため、肯定の出口
が選択され、複合タグ値3が2に減じられ、判断ブロッ
ク123が再度実行される。このループは、命令2の最
初の2バイトの複合タグの値が0に減少されるまで続け
られ、この複合タグ値が0になると、命令3は複合命令
中にもはや入っておらず、ステップ125の否定の出口
を介して判断ブロック124が実行される。この判断で
は、(NL−A)バイトの吟味が完了していないから、
アルゴリズム3は、判断ブロック124の否定の出口を
介してステップ122へ戻る。そして、命令2に先行す
るAバイト(複合命令の命令1よりなる)が吟味される
(複合タグ値が調べられる)。この複合タグの値は、0
より大きく、命令1の複合タグの値が1に減じられる
(命令1は命令2と複合された状態に保たれる)まで、
ステップ123及び125の肯定の出口を含むループが
繰り返し実行される。こうして、命令3に先行する(N
L−A)バイトの残りのバイトのアルゴリズム3による
吟味が続けられる。しかしながら、これらの残りのバイ
トの複合タグは、それらが入っている複合命令は命令3
の修正されたテキストを全く含まないので、どのタグも
変更されない。このように、アルゴリズム3は、命令3
に先行する(NL−A)バイトが全て吟味されるまで、
ステップ125及び124の否定の出口を通るループを
繰り返し実行する。
【0056】図16は、図6に示す構成の複合命令キャッ
シュと共に使用するための複合タグ管理装置を示し、こ
の装置はテキスト・アレイ部200 及び複合タグ・アレイ
201 を有する。図16の複合タグ管理装置は、アドレスさ
れた命令の修正に対して、図11の第3のアルゴリズムを
効果的に実行する動作により応答する。図11の第1のア
ルゴリズムは、行全体についてのタグ・ビット値をゼロ
に減少するという平凡な例である。第2のアルゴリズム
は、実際には第3のアルゴリズムの特別なケースであ
る。第4のアルゴリズムは、再複合のアルゴリズムであ
り、第3のアルゴリズムの拡張したものであると考える
こともできる。
シュと共に使用するための複合タグ管理装置を示し、こ
の装置はテキスト・アレイ部200 及び複合タグ・アレイ
201 を有する。図16の複合タグ管理装置は、アドレスさ
れた命令の修正に対して、図11の第3のアルゴリズムを
効果的に実行する動作により応答する。図11の第1のア
ルゴリズムは、行全体についてのタグ・ビット値をゼロ
に減少するという平凡な例である。第2のアルゴリズム
は、実際には第3のアルゴリズムの特別なケースであ
る。第4のアルゴリズムは、再複合のアルゴリズムであ
り、第3のアルゴリズムの拡張したものであると考える
こともできる。
【0057】図16は、命令キャッシュにおけるタグ減少
の特別な場合の間複合タグ管理を示し、ライトバック
(WRITE-BACK) 及びライトスルー(WRITE-THROUGH)・キ
ャッシュに適用される。WRITE-THROUGH キャッシュにお
いては、図16の装置は、主メモリにも同様に適用するこ
とができる。
の特別な場合の間複合タグ管理を示し、ライトバック
(WRITE-BACK) 及びライトスルー(WRITE-THROUGH)・キ
ャッシュに適用される。WRITE-THROUGH キャッシュにお
いては、図16の装置は、主メモリにも同様に適用するこ
とができる。
【0058】参照されたキャッシュ・テキストのアドレ
スが与えられ、そのテキストに対して書き込みが行われ
ているとすると(実際に「WRITE ヒット」が起こっ
た)、そのテキストは、信号ライン202 を介してそのテ
キストを含む行のアドレスをテキスト・アレイ200 に与
えることによって修正される。アドレスは、アドレスさ
れたキャッシュ行における修正された情報の位置を指示
するバイト・アドレス情報を含む。このバイト・アドレ
ス情報は、信号ライン203 に供給される。アドレスされ
たテキストを書き込みまたはその他の方法で修正するこ
とにより生成される新しいテキストは、符号204 で示す
ラインより通常のマージ装置205 に供給される。マージ
装置205 は、アドレスされた行全体を取り込み、信号ラ
イン203 上の情報によって指示されるそのアドレスされ
た行中のバイト・アドレスに新しいテキストを書き込
む。そして新しいテキスト行が生成され、信号ライン20
8 を介してキャッシュ・テキスト・アレイに戻される。
スが与えられ、そのテキストに対して書き込みが行われ
ているとすると(実際に「WRITE ヒット」が起こっ
た)、そのテキストは、信号ライン202 を介してそのテ
キストを含む行のアドレスをテキスト・アレイ200 に与
えることによって修正される。アドレスは、アドレスさ
れたキャッシュ行における修正された情報の位置を指示
するバイト・アドレス情報を含む。このバイト・アドレ
ス情報は、信号ライン203 に供給される。アドレスされ
たテキストを書き込みまたはその他の方法で修正するこ
とにより生成される新しいテキストは、符号204 で示す
ラインより通常のマージ装置205 に供給される。マージ
装置205 は、アドレスされた行全体を取り込み、信号ラ
イン203 上の情報によって指示されるそのアドレスされ
た行中のバイト・アドレスに新しいテキストを書き込
む。そして新しいテキスト行が生成され、信号ライン20
8 を介してキャッシュ・テキスト・アレイに戻される。
【0059】修正されたテキストのキャッシュ行及び行
中の位置(line location) を定める行アドレス及びバイ
ト・アドレス情報は、そのテキストの関連複合タグ情報
をも指示する。したがって、信号ライン202 上の行アド
レスをの複合タグ・アレイに与えると、テキストのアド
レスされた行の複合タグのアレイが抜き出され、バイト
・アドレス情報によって、タグのアドレスされたアレイ
のうちどのアレイがその修正されたテキスト用のもので
あるかが指示される。アドレスされた行の複合タグ情報
が図4のC-ベクトルのフォーマットになっていると仮定
すると、そのアドレスされた行のベクトルは選択回路21
2 に供給される。同様に、新しいテキスト行の全体は、
選択回路210 に供給される。テキスト行選択回路210
は、行中の修正されたテキストの位置を用いて、修正さ
れたテキストに先行するその行中の(NL-A)バイトを選択
する。それらのバイトは、ブロック214 で登録される。
同様に、セレクタ(選択回路)212 は、ブロック214 で
登録された(NL-A)バイトのC-ベクトルの中から複合タグ
を選択する。それらの複合タグは、ブロック216 で登録
される。ブロック214 及び216 で登録されたテキスト・
バイトに応答して、タグ減少ハードウェア218 は、図11
の第3のアルゴリズムによるタグ減少を表す新しいタグ
を生成する。それらの新しいタグは、信号ライン220を
介してマージ回路221 に供給される。マージ回路221
は、まずアドレスされたキャッシュ行のC-ベクトル及び
修正されたテキストの行中の場所を指示するバイト・ア
ドレス情報を受け取る。このバイト・アドレス情報は、
アドレスされたキャッシュ行についてのアドレスされた
C-ベクトルにおける複合タグの位置を正確に示す。この
タグは、信号ライン222 を介してマージ回路に与えられ
るハードワイヤードの0と置換される。マージ回路221
は、C-ベクトルにおける修正されたテキストの複合タグ
の位置を知ると、修正されたテキストに先行する(NL-A)
バイトについてのC-ベクトルに新しいタグを挿入する。
これによって生じる新しいタグ行は、タグ・アレイ201
に、戻されて、行アドレスの位置に記憶される。
中の位置(line location) を定める行アドレス及びバイ
ト・アドレス情報は、そのテキストの関連複合タグ情報
をも指示する。したがって、信号ライン202 上の行アド
レスをの複合タグ・アレイに与えると、テキストのアド
レスされた行の複合タグのアレイが抜き出され、バイト
・アドレス情報によって、タグのアドレスされたアレイ
のうちどのアレイがその修正されたテキスト用のもので
あるかが指示される。アドレスされた行の複合タグ情報
が図4のC-ベクトルのフォーマットになっていると仮定
すると、そのアドレスされた行のベクトルは選択回路21
2 に供給される。同様に、新しいテキスト行の全体は、
選択回路210 に供給される。テキスト行選択回路210
は、行中の修正されたテキストの位置を用いて、修正さ
れたテキストに先行するその行中の(NL-A)バイトを選択
する。それらのバイトは、ブロック214 で登録される。
同様に、セレクタ(選択回路)212 は、ブロック214 で
登録された(NL-A)バイトのC-ベクトルの中から複合タグ
を選択する。それらの複合タグは、ブロック216 で登録
される。ブロック214 及び216 で登録されたテキスト・
バイトに応答して、タグ減少ハードウェア218 は、図11
の第3のアルゴリズムによるタグ減少を表す新しいタグ
を生成する。それらの新しいタグは、信号ライン220を
介してマージ回路221 に供給される。マージ回路221
は、まずアドレスされたキャッシュ行のC-ベクトル及び
修正されたテキストの行中の場所を指示するバイト・ア
ドレス情報を受け取る。このバイト・アドレス情報は、
アドレスされたキャッシュ行についてのアドレスされた
C-ベクトルにおける複合タグの位置を正確に示す。この
タグは、信号ライン222 を介してマージ回路に与えられ
るハードワイヤードの0と置換される。マージ回路221
は、C-ベクトルにおける修正されたテキストの複合タグ
の位置を知ると、修正されたテキストに先行する(NL-A)
バイトについてのC-ベクトルに新しいタグを挿入する。
これによって生じる新しいタグ行は、タグ・アレイ201
に、戻されて、行アドレスの位置に記憶される。
【0060】図17及び18は、2バイト及び4バイトの命
令が複合される複合の例のためのタグ減少ハードウェア
を示し、これらの例における複合の範囲は最大3命令
で、各テキストのハーフ・ワード毎に2ビットの複合タ
グが与えられる。この場合、複合された命令の最大の大
きさは、3x4=12バイトとなる。修正されたテキストの最
初のハーフワードのタグは既に減少されているので、12
バイトの中の2バイトは、このハーフワードのタグに対
応する分であり、修正されたテキストの最初のハーフワ
ードに先行する10バイトだけを検査すればよい。これら
の10バイトがレジスタ214 (図16のブロック214 に相当
する)の大きさを決定する。同様に、2ビットのタグ
(最大3成分のコード化用)を用いるということは、タ
グ・レジスタ216 (図16のブロック216 に対応する)
は、各2ビットまたは合計10ビットの5つの複合タグを
収容しなければならないということを意味する。
令が複合される複合の例のためのタグ減少ハードウェア
を示し、これらの例における複合の範囲は最大3命令
で、各テキストのハーフ・ワード毎に2ビットの複合タ
グが与えられる。この場合、複合された命令の最大の大
きさは、3x4=12バイトとなる。修正されたテキストの最
初のハーフワードのタグは既に減少されているので、12
バイトの中の2バイトは、このハーフワードのタグに対
応する分であり、修正されたテキストの最初のハーフワ
ードに先行する10バイトだけを検査すればよい。これら
の10バイトがレジスタ214 (図16のブロック214 に相当
する)の大きさを決定する。同様に、2ビットのタグ
(最大3成分のコード化用)を用いるということは、タ
グ・レジスタ216 (図16のブロック216 に対応する)
は、各2ビットまたは合計10ビットの5つの複合タグを
収容しなければならないということを意味する。
【0061】タグ減少ハードウェア218 は、複数のタグ
減少装置(TRU) 218a〜218eを有する。図17及び18におい
て、各々のTRU 218a〜218eには、レジスタ214 の各ハー
フワードが対応している。図18のTRU9(図8の全てのT
RUを代表的に示す)に示すように、これらの各TRU は4
つの入力を有し、これらの入力に応答して2つの出力を
発生する。TRU の4つの入力は、TRU のハーフワードが
含まれる命令の命令長コード(ILC) 、そのハーフワード
の複合タグ、符号tag1及びtag2で示す2つのタグ入力で
ある。入力tag1及びtag2は、各TRU が対応するハーフワ
ードに隣接する次の2つのハーフワードのタグを表す。
TRU9は、2つの出力tagn及びtag’を出力する。出力ta
g’は、TRU のハーフワードについての減少されたタグ
であり、出力tagnは、複合タグが減少されようとしてい
る(NL―A)個のハーフワードの組におけるハーフワード
を表すTRU にフィードバックされる。
減少装置(TRU) 218a〜218eを有する。図17及び18におい
て、各々のTRU 218a〜218eには、レジスタ214 の各ハー
フワードが対応している。図18のTRU9(図8の全てのT
RUを代表的に示す)に示すように、これらの各TRU は4
つの入力を有し、これらの入力に応答して2つの出力を
発生する。TRU の4つの入力は、TRU のハーフワードが
含まれる命令の命令長コード(ILC) 、そのハーフワード
の複合タグ、符号tag1及びtag2で示す2つのタグ入力で
ある。入力tag1及びtag2は、各TRU が対応するハーフワ
ードに隣接する次の2つのハーフワードのタグを表す。
TRU9は、2つの出力tagn及びtag’を出力する。出力ta
g’は、TRU のハーフワードについての減少されたタグ
であり、出力tagnは、複合タグが減少されようとしてい
る(NL―A)個のハーフワードの組におけるハーフワード
を表すTRU にフィードバックされる。
【0062】図17及び18の例で選択されたタグ表現
法は、この命令と複合された命令の数を示すのに1タグ
につき2ビットを用いるので、タグ値は、0、1、及び
2である。このTRUの実施例は、複合命令が修正され
たテキスト・バイトにまでは及ばないように複合タグを
セットする。その結果、修正されたテキストのすぐ前の
(NL−A)個のハーフワードの複合タグ値は、次の複
合タグ値または所与のバイトと修正されたバイトの間の
バイト数によって減少されるかまたはゼロになる。タグ
値tagnは、装置内部で用いられ、−1、0、1、ま
たは2のいずれか1つの値を取り得る。全体的に修正さ
れた命令または部分的に修正された命令については、こ
のタグは全て−1の値が与えられる。もう一方の出力、
tag’は、図11の第3のアルゴリズムに従い減少さ
れた後のハーフワードについての新しい複合タグ値であ
る。
法は、この命令と複合された命令の数を示すのに1タグ
につき2ビットを用いるので、タグ値は、0、1、及び
2である。このTRUの実施例は、複合命令が修正され
たテキスト・バイトにまでは及ばないように複合タグを
セットする。その結果、修正されたテキストのすぐ前の
(NL−A)個のハーフワードの複合タグ値は、次の複
合タグ値または所与のバイトと修正されたバイトの間の
バイト数によって減少されるかまたはゼロになる。タグ
値tagnは、装置内部で用いられ、−1、0、1、ま
たは2のいずれか1つの値を取り得る。全体的に修正さ
れた命令または部分的に修正された命令については、こ
のタグは全て−1の値が与えられる。もう一方の出力、
tag’は、図11の第3のアルゴリズムに従い減少さ
れた後のハーフワードについての新しい複合タグ値であ
る。
【0063】次に、図17を参照しつつタグ減少ハードウ
ェアの動作について説明する。図17において、TRU218e
は、修正されたテキストの最初のハーフワードのすぐ前
のハーフワードに対応している。その2つの入力、tag1
及びtag2は、-1の値にハードワイヤードされており、こ
れによってこのハーフワードにすぐ後に続くテキストが
修正されたものであることを示す。
ェアの動作について説明する。図17において、TRU218e
は、修正されたテキストの最初のハーフワードのすぐ前
のハーフワードに対応している。その2つの入力、tag1
及びtag2は、-1の値にハードワイヤードされており、こ
れによってこのハーフワードにすぐ後に続くテキストが
修正されたものであることを示す。
【0064】TRU218dにおいては、tag2の入
力が−1の値へハードワイヤードされて、アドレスされ
たテキストの修正を示している。ここで、一例として、
修正されたテキストが3つのスカラー命令を複合したセ
ットの第3のスカラー命令であると仮定する。また、こ
のテキストのすぐ前の命令が、4バイト命令が先行する
2バイト命令であると仮定する。さらに、複合された命
令セットの第1の命令である4バイト命令は、それ自
信、複合されていない4バイト命令によって先行されて
いるものと仮定する。この場合、レジスタ214の内容
は、バイト位置8〜9のレジスタの最後のハーフワード
を2バイト命令が占め、バイト位置4〜7を4バイト命
令が占め、そしてバイト位置0〜3をもう一つの4バイ
ト命令が占めるということを指示する。これらのハーフ
ワードの複合タグは、レジスタ216中に示したような
形になる。最後のハーフワードは修正された命令が複合
される2バイト命令であるから、単一の2ビットの複合
タグを有し、その値は1(10進数)にセットされて、
この命令がその1つ次の命令と複合されることを示す。
次の複合タグ値は、4バイト命令の2番目の第2のハー
フワードに付随し、このハーフワードは、レジスタ21
4のバイト位置6〜7にある。この構成の複合方法にお
いては、このハーフワードの複合ビットは、CPUが無
視するため、ゼロにセットされる。レジスタ214のバ
イト位置4〜5にあるハーフワードの複合タグは、この
ハーフワードが複合命令の最初のハーフワードであり、
また後続の2つの命令、即ちレジスタ214のバイト位
置8〜9の命令及び修正されたテキストの第1のバイト
のを含む命令と複合されているので、値2(10進数)
にセットされる。バイト位置0〜3における命令は、複
合されず、その2つのハーフワードの複合タグ値は、各
々0と0である。この例における複合タグ値は、レジス
タ216にシーケンス状に示されている。TRU218
eへのtag1及びtag2入力は、いずれも「−1」
である。この場合、このTRUの出力、即ちtagn及
びtag’は、図18の第1行に示すように、いずれも
「0」に等しい。そして、バイト位置4〜7の4バイト
命令の2番目のハーフワードを表すTRU218dの入
力は下記のとおりである:tag2=−1、tag1=
0、tag=0、ILC=4。この装置は、図18の表
の第3行によりtagn及びtag’の値を出力する。
その結果、複合された3命令セットの始点をなす4バイ
ト命令中の最初のハーフワードを表すTRU218cの
入力値は下記のとおりとなる:tag1及びtag2=
0、tag=2、ILC=4。これによって、図18の
表の第6行に示す出力が発生する。バイト位置0〜3に
おける4バイト命令は複合されないから、そのタグ値は
0であり、TRU218a及び218bの出力は、図1
8の第3行に示すとおりである。
力が−1の値へハードワイヤードされて、アドレスされ
たテキストの修正を示している。ここで、一例として、
修正されたテキストが3つのスカラー命令を複合したセ
ットの第3のスカラー命令であると仮定する。また、こ
のテキストのすぐ前の命令が、4バイト命令が先行する
2バイト命令であると仮定する。さらに、複合された命
令セットの第1の命令である4バイト命令は、それ自
信、複合されていない4バイト命令によって先行されて
いるものと仮定する。この場合、レジスタ214の内容
は、バイト位置8〜9のレジスタの最後のハーフワード
を2バイト命令が占め、バイト位置4〜7を4バイト命
令が占め、そしてバイト位置0〜3をもう一つの4バイ
ト命令が占めるということを指示する。これらのハーフ
ワードの複合タグは、レジスタ216中に示したような
形になる。最後のハーフワードは修正された命令が複合
される2バイト命令であるから、単一の2ビットの複合
タグを有し、その値は1(10進数)にセットされて、
この命令がその1つ次の命令と複合されることを示す。
次の複合タグ値は、4バイト命令の2番目の第2のハー
フワードに付随し、このハーフワードは、レジスタ21
4のバイト位置6〜7にある。この構成の複合方法にお
いては、このハーフワードの複合ビットは、CPUが無
視するため、ゼロにセットされる。レジスタ214のバ
イト位置4〜5にあるハーフワードの複合タグは、この
ハーフワードが複合命令の最初のハーフワードであり、
また後続の2つの命令、即ちレジスタ214のバイト位
置8〜9の命令及び修正されたテキストの第1のバイト
のを含む命令と複合されているので、値2(10進数)
にセットされる。バイト位置0〜3における命令は、複
合されず、その2つのハーフワードの複合タグ値は、各
々0と0である。この例における複合タグ値は、レジス
タ216にシーケンス状に示されている。TRU218
eへのtag1及びtag2入力は、いずれも「−1」
である。この場合、このTRUの出力、即ちtagn及
びtag’は、図18の第1行に示すように、いずれも
「0」に等しい。そして、バイト位置4〜7の4バイト
命令の2番目のハーフワードを表すTRU218dの入
力は下記のとおりである:tag2=−1、tag1=
0、tag=0、ILC=4。この装置は、図18の表
の第3行によりtagn及びtag’の値を出力する。
その結果、複合された3命令セットの始点をなす4バイ
ト命令中の最初のハーフワードを表すTRU218cの
入力値は下記のとおりとなる:tag1及びtag2=
0、tag=2、ILC=4。これによって、図18の
表の第6行に示す出力が発生する。バイト位置0〜3に
おける4バイト命令は複合されないから、そのタグ値は
0であり、TRU218a及び218bの出力は、図1
8の第3行に示すとおりである。
【0065】ここに述べた例の減少されたタグ値は、符
号225 のブロックに示されている。ここで、バイト位置
8〜9の2バイト命令の複合タグの値は0で、この命令
が次の命令にと複合されないことを示しており、バイト
位置4〜7の4バイト命令の2番目のハーフワードの値
は0であり、バイト位置4〜7の4バイト命令の最初の
ハーフワードの複合タグの値は1で、この命令がその1
つ次の命令即ちバイト位置8〜9の2バイト命令と複合
されることを示す。
号225 のブロックに示されている。ここで、バイト位置
8〜9の2バイト命令の複合タグの値は0で、この命令
が次の命令にと複合されないことを示しており、バイト
位置4〜7の4バイト命令の2番目のハーフワードの値
は0であり、バイト位置4〜7の4バイト命令の最初の
ハーフワードの複合タグの値は1で、この命令がその1
つ次の命令即ちバイト位置8〜9の2バイト命令と複合
されることを示す。
【0066】図19は、N=2、 L=4及びA=2 の場合のタグ減
少ハードウェアを示す。この図に示すように、補助タグ
tagnは、さらに、対応する命令の複合タグの値が減少さ
れていることを示す-1の値を取ることもできる。
少ハードウェアを示す。この図に示すように、補助タグ
tagnは、さらに、対応する命令の複合タグの値が減少さ
れていることを示す-1の値を取ることもできる。
【0067】図20は、図8のアルゴリズム4、即ちテキ
スト修正に応答して行われる再複合のアルゴリズムを示
す。図20で図16中の対応する要素と同じ番号を有するも
のは、これらの要素と等価の要素である。これ関して、
新しいテキストがWRITE によって生成されると、その新
しいテキストは、キャッシュ200 から取り出されたその
前のテキストを含む行とブロック205 でマージされる。
ブロック206 の新しいテキスト行は、キャッシュ200 に
フィードバックされて、その前の行と置換される一方、
選択回路210 は、修正されたバイトを中心としてその修
正されたテキストの両側の(NL-A)バイトに及ぶ行の一部
分を選択する。選択されたテキスト中の命令は、テキス
トのこの部分についての新しいタグを生成する複合装置
50によって複合される。それらの新しいタグは、ブロッ
ク251 でアドレスされた行のC-ベクトルに挿入され、新
しいタグ行は、複合タグ・アレイ201 に入れられる。
スト修正に応答して行われる再複合のアルゴリズムを示
す。図20で図16中の対応する要素と同じ番号を有するも
のは、これらの要素と等価の要素である。これ関して、
新しいテキストがWRITE によって生成されると、その新
しいテキストは、キャッシュ200 から取り出されたその
前のテキストを含む行とブロック205 でマージされる。
ブロック206 の新しいテキスト行は、キャッシュ200 に
フィードバックされて、その前の行と置換される一方、
選択回路210 は、修正されたバイトを中心としてその修
正されたテキストの両側の(NL-A)バイトに及ぶ行の一部
分を選択する。選択されたテキスト中の命令は、テキス
トのこの部分についての新しいタグを生成する複合装置
50によって複合される。それらの新しいタグは、ブロッ
ク251 でアドレスされた行のC-ベクトルに挿入され、新
しいタグ行は、複合タグ・アレイ201 に入れられる。
【0068】図7及至21を用いての上記説明において
は、タグ減少及び再複合管理方法及び装置の実施例を、
共に、2バイトの境界に位置を合わせた可変長のマルチ
バイト命令を含むテキスト・ストリームとの関連におい
て説明した。さらに、複合タグは、テキストの2バイト
毎に、それらの2バイトが命令OPコードを含むかどうか
にかかわらず生成されるという仮定に基づき説明を行っ
た。このことは、本発明のタグ管理の基本的方針や構成
の応用に対して何ら制限的な意味を有するものではな
い。一般に、最大N 個の命令を複合するコンピュータシ
ステムにおいては、タグ減少は、可能な最大の複合命令
に対して複合タグ修正を考慮しなければならない。従っ
て、一般に、タグ減少では、メモリ中の修正されたテキ
ストに先行して存在し得るN-1 個の命令を考慮する。同
様に、タグ管理の基本方針としてタグの再複合が選択さ
れた場合は、最適複合の機会を最大限にするために、修
正されたテキストの両側のできる限り多くの命令を再複
合するよう考えるのが最も良い。本願発明においては、
再複合は、修正されたテキストの前後のN-1 個の命令を
検討するようになっている。他の実施態様においては、
この数をN―1 個より多くすることも可能である。
は、タグ減少及び再複合管理方法及び装置の実施例を、
共に、2バイトの境界に位置を合わせた可変長のマルチ
バイト命令を含むテキスト・ストリームとの関連におい
て説明した。さらに、複合タグは、テキストの2バイト
毎に、それらの2バイトが命令OPコードを含むかどうか
にかかわらず生成されるという仮定に基づき説明を行っ
た。このことは、本発明のタグ管理の基本的方針や構成
の応用に対して何ら制限的な意味を有するものではな
い。一般に、最大N 個の命令を複合するコンピュータシ
ステムにおいては、タグ減少は、可能な最大の複合命令
に対して複合タグ修正を考慮しなければならない。従っ
て、一般に、タグ減少では、メモリ中の修正されたテキ
ストに先行して存在し得るN-1 個の命令を考慮する。同
様に、タグ管理の基本方針としてタグの再複合が選択さ
れた場合は、最適複合の機会を最大限にするために、修
正されたテキストの両側のできる限り多くの命令を再複
合するよう考えるのが最も良い。本願発明においては、
再複合は、修正されたテキストの前後のN-1 個の命令を
検討するようになっている。他の実施態様においては、
この数をN―1 個より多くすることも可能である。
【0069】
【発明の効果】本発明によれば、命令セットの変更、機
械アーキテクチャの変更あるいは命令実行の所要時間の
延長を要することなく、現行命令セットでの命令の並列
実行あるいは同時実行によって、デジタル・コンピュー
タの実行速度を高速化することができる。
械アーキテクチャの変更あるいは命令実行の所要時間の
延長を要することなく、現行命令セットでの命令の並列
実行あるいは同時実行によって、デジタル・コンピュー
タの実行速度を高速化することができる。
【図1】スカラー命令シーケンス中の命令を同時実行の
ために複合することが可能なコンピュータ・システムの
高水準の概略構成図である。
ために複合することが可能なコンピュータ・システムの
高水準の概略構成図である。
【図2】ユニプロセッサの一実施態様のタイミング図
で、複合命令ストリーム中で選択的にグループ化された
一部の命令の並列実行状態を示している。
で、複合命令ストリーム中で選択的にグループ化された
一部の命令の並列実行状態を示している。
【図3】メモリ内処理式のスケーリング可能な複合命令
セット型のコンピュータにおける階層的メモリ構成のブ
ロック図である。
セット型のコンピュータにおける階層的メモリ構成のブ
ロック図である。
【図4】複合タグの結合によって複合された命令ストリ
ーム・テキストの構成を示す説明図である。
ーム・テキストの構成を示す説明図である。
【図5】メモリにおける複合タグの他の実施態様を図解
した説明図である。
した説明図である。
【図6】メモリにおける複合タグの他の実施態様を図解
した説明図である。
した説明図である。
【図7】図3の階層的メモリ構成において複合タグがど
のように管理されるかを図解したフローチャートであ
る。
のように管理されるかを図解したフローチャートであ
る。
【図8】図3の階層的メモリ構成において複合タグがど
のように管理されるかを図解したフローチャートであ
る。
のように管理されるかを図解したフローチャートであ
る。
【図9】図3の階層的メモリ構成において複合タグがど
のように管理されるかを図解したフローチャートであ
る。
のように管理されるかを図解したフローチャートであ
る。
【図10】図3の階層的メモリ構成において複合タグが
どのように管理されるかを図解したフローチャートであ
る。
どのように管理されるかを図解したフローチャートであ
る。
【図11】図3の階層的メモリ構成において複合タグが
どのように管理されるかを図解したフローチャートであ
る。
どのように管理されるかを図解したフローチャートであ
る。
【図12】図3の階層的メモリ構成において複合タグが
どのように管理されるかを図解したフローチャートであ
る。
どのように管理されるかを図解したフローチャートであ
る。
【図13】図3の階層的メモリ構成において複合タグが
どのように管理されるかを図解したフローチャートであ
る。
どのように管理されるかを図解したフローチャートであ
る。
【図14】図3の階層的メモリ構成において複合タグが
どのように管理されるかを図解したフローチャートであ
る。
どのように管理されるかを図解したフローチャートであ
る。
【図15】図3の階層的メモリ構成において複合タグが
どのように管理されるかを図解したフローチャートであ
る。
どのように管理されるかを図解したフローチャートであ
る。
【図16】図3のメモリにおける複合タグ管理のメカニ
ズムを図解したブロック図である。
ズムを図解したブロック図である。
【図17】最大3つの命令をが複合することができる場
合における図16のメカニズムのタグ減少ハードウェア
をより詳細に示すブロック図である。
合における図16のメカニズムのタグ減少ハードウェア
をより詳細に示すブロック図である。
【図18】図17のタグ減少装置の動作を図解した説明
図である。
図である。
【図19】最大2つの命令を複合するのためのタグ減少
ハードウェアのより詳細なブロック図である。
ハードウェアのより詳細なブロック図である。
【図20】図19のタグ減少装置の動作を図解したフロ
チャートである。
チャートである。
【図21】本発明によるタグ減少アルゴリズムの作用を
図解した説明図である。
図解した説明図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ステマテス・バッシライアディス アメリカ合衆国ニューヨーク州ベスタル、 ベスタル・ロード717番地 (72)発明者 バーソロミュ・ブランナー アメリカ合衆国ニューヨーク州ニューウオ ーク・バレイ、ダントン・ドライブ(番地 なし) (56)参考文献 特開 昭53−108254(JP,A) 特開 平2−132524(JP,A)
Claims (15)
- 【請求項1】スカラー命令シーケンス中の最大N個の命
令を同時に実行可能なコンピュータ・システムで、上記
シーケンスがそれらのスカラー命令に付随する複合タグ
を含み、上記複合タグが同時に実行される命令の数を指
示するよう条件付けられた値を有するコンピュータ・シ
ステムにおける、コンピュータ・システムの実メモリに
記憶されたスカラー命令の複合タグ値を管理するための
装置において、 上記実メモリに接続されていて、この実メモリからの修
正された命令を実メモリ中の修正されていない命令とマ
ージするためのマージ手段と、 上記マージ手段と上記実メモリに接続されていて、修正
された命令及びその修正された命令を複合することので
きる実メモリ中の命令の中の最大N−1個の命令の複合
タグの値を減少するためのタグ減少装置と、 を具備したことを特徴とする装置。 - 【請求項2】上記タグ減少装置が、修正された命令の複
合タグの値をゼロに減少することを特徴とする請求項1
記載の装置。 - 【請求項3】上記タグ減少装置が、修正された命令と複
合することのできる実メモリ中の全ての命令の複合タグ
の値をゼロに減少することを特徴とする請求項2記載の
装置。 - 【請求項4】上記スカラー命令のシーケンスの2バイト
毎に複合タグを設けることを特徴とする請求項1記載の
装置。 - 【請求項5】Lを他のスカラー命令と複合可能な最長ス
カラー命令のバイト長とし、上記スカラー命令シーケン
スのAバイト毎に複合タグが付されているとして、上記
タグ減少装置が、上記スカラー命令シーケンス中の修正
された命令に先行する最大(NL−A)バイトの複合タ
グの値を減少することを特徴とする請求項1記載の装
置。 - 【請求項6】上記複合タグが、コンピュータ・システム
の実メモリ中において命令複合装置により生成されるこ
とを特徴とする請求項1記載の装置。 - 【請求項7】上記コンピュータ・システムの実メモリ
が、大容量で中速の主メモリと、この主メモリ、上記マ
ージ手段及び上記タグ減少装置へ接続された小容量で高
速のキャッシュを有することを特徴とする請求項6記載
の装置。 - 【請求項8】上記命令複合装置が、上記主メモリに接続
されており、かつ上記キャッシュに接続されていて、キ
ャッシュ中の命令のための複合タグを生成することを特
徴とする請求項7記載の装置。 - 【請求項9】上記命令複合装置が上記主メモリに接続さ
れていて、主メモリ中の命令のための複合タグを生成す
ることを特徴とする請求項7記載の装置。 - 【請求項10】スカラー命令シーケンスを受け取ると共
に、最大N個の命令よりなる命令グループ用の複合タグ
を生成することにより命令を同時実行のためにグループ
化する手段を含み、上記複合タグが命令グループ中の命
令の数を示す値を有するコンピュータ・システムにおけ
るコンピュータ・システムの実メモリに記憶された命例
の複合タグを管理するための方法において、 コンピュータ・システムの動作時に実メモリに記憶され
た命令を修正するステップと、 その命令を実メモリ中の命令とマージするステップと、 実命令に対する複合タグの値を減少するステップと、 その命令を複合することのできる実メモリ中の最大N−
1個の命令の複合タグの値を減少するステップと、 よりなることを特徴とする方法。 - 【請求項11】N−1個の命令の複合タグの値を減少す
る上記ステップが、上記値をゼロに減少するステップを
含むことを特徴とする請求項10記載の方法。 - 【請求項12】Lを上記スカラー命令シーケンスの他の
スカラー命令と複合可能なそのシーケンスの最長スカラ
ー命令のバイト長とし、上記スカラー命令シーケンスの
Aバイト毎に複合タグが付されているとして、N−1個
の命令の複合タグの値を減少する上記ステップが、上記
命令に先行する上記シーケンス中の最大(NL−A)バ
イトの複合タグの値を減少するステップを含むことを特
徴とする請求項10記載の方法。 - 【請求項13】上記(NL−A)バイトの複合タグの値
がゼロに減少されることを特徴とする請求項12の記載
の方法。 - 【請求項14】スカラー命令シーケンス中の最大N個の
複合された命令を同時に実行可能なコンピュータ・シス
テムで、上記シーケンスがそれらのスカラー命令に付随
する複合タグを含み、上記複合タグが同時実行のために
複合される命令の数を指示するよう条件付けられた値を
有するコンピュータ・システムにおける、コンピュータ
・システムの実メモリに記憶されたスカラー命令の複合
タグ値を管理するための装置において、 上記実メモリに接続されていて、修正された命令を実メ
モリ中の修正されていない命令とマージするためのマー
ジ手段と、 上記マージ手段及び実メモリへ接続されていて、上記修
正された命令及び実メモリ中の上記修正された命令に近
接した少なくともN−1個の修正されていない命令の複
合タグを生成するための再複合手段と、 を具備したことを特徴とする装置。 - 【請求項15】Lを他のスカラー命令と複合可能な最長
スカラー命令のバイト長とし、上記スカラー命令シーケ
ンスのAバイト毎に複合タグが付されているとして、上
記再複合手段が上記修正された命令及びこれに近接する
少なくとも(NL−A)バイトに対する複合タグを生成
することを特徴とする請求項14記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/543,458 US5197135A (en) | 1990-06-26 | 1990-06-26 | Memory management for scalable compound instruction set machines with in-memory compounding |
US543458 | 1990-06-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04233034A JPH04233034A (ja) | 1992-08-21 |
JPH0782438B2 true JPH0782438B2 (ja) | 1995-09-06 |
Family
ID=24168150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3133234A Expired - Lifetime JPH0782438B2 (ja) | 1990-06-26 | 1991-05-10 | コンピュータ・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5197135A (ja) |
EP (1) | EP0463299A3 (ja) |
JP (1) | JPH0782438B2 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2818249B2 (ja) * | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
JP2535252B2 (ja) * | 1990-10-17 | 1996-09-18 | 三菱電機株式会社 | 並列処理装置 |
US5446850A (en) * | 1991-01-15 | 1995-08-29 | International Business Machines Corporation | Cross-cache-line compounding algorithm for scism processors |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
JPH04367936A (ja) | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
US5590348A (en) * | 1992-07-28 | 1996-12-31 | International Business Machines Corporation | Status predictor for combined shifter-rotate/merge unit |
US5420983A (en) * | 1992-08-12 | 1995-05-30 | Digital Equipment Corporation | Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data |
US5337415A (en) * | 1992-12-04 | 1994-08-09 | Hewlett-Packard Company | Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency |
JP3182591B2 (ja) * | 1993-01-20 | 2001-07-03 | 株式会社日立製作所 | マイクロプロセッサ |
US6154828A (en) * | 1993-06-03 | 2000-11-28 | Compaq Computer Corporation | Method and apparatus for employing a cycle bit parallel executing instructions |
US6360313B1 (en) | 1993-11-05 | 2002-03-19 | Intergraph Corporation | Instruction cache associative crossbar switch |
DE69424370T2 (de) * | 1993-11-05 | 2001-02-15 | Intergraph Corp., Huntsville | Befehlscachespeicher mit Kreuzschienenschalter |
US5559976A (en) * | 1994-03-31 | 1996-09-24 | International Business Machines Corporation | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions |
TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
TW260765B (ja) * | 1994-03-31 | 1995-10-21 | Ibm | |
US5546599A (en) * | 1994-03-31 | 1996-08-13 | International Business Machines Corporation | Processing system and method of operation for processing dispatched instructions with detected exceptions |
US5644779A (en) * | 1994-04-15 | 1997-07-01 | International Business Machines Corporation | Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction |
JPH07281893A (ja) * | 1994-04-15 | 1995-10-27 | Internatl Business Mach Corp <Ibm> | 処理システム及び演算方法 |
US5590352A (en) * | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
US5704052A (en) * | 1994-11-06 | 1997-12-30 | Unisys Corporation | Bit processing unit for performing complex logical operations within a single clock cycle |
US5649135A (en) * | 1995-01-17 | 1997-07-15 | International Business Machines Corporation | Parallel processing system and method using surrogate instructions |
US5848288A (en) * | 1995-09-20 | 1998-12-08 | Intel Corporation | Method and apparatus for accommodating different issue width implementations of VLIW architectures |
US5924128A (en) * | 1996-06-20 | 1999-07-13 | International Business Machines Corporation | Pseudo zero cycle address generator and fast memory access |
US5826070A (en) * | 1996-08-30 | 1998-10-20 | International Business Machines Corporation | Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit |
US5890009A (en) * | 1996-12-12 | 1999-03-30 | International Business Machines Corporation | VLIW architecture and method for expanding a parcel |
US5805850A (en) * | 1997-01-30 | 1998-09-08 | International Business Machines Corporation | Very long instruction word (VLIW) computer having efficient instruction code format |
US5819058A (en) * | 1997-02-28 | 1998-10-06 | Vm Labs, Inc. | Instruction compression and decompression system and method for a processor |
US6047368A (en) * | 1997-03-31 | 2000-04-04 | Sun Microsystems, Inc. | Processor architecture including grouping circuit |
US6314493B1 (en) | 1998-02-03 | 2001-11-06 | International Business Machines Corporation | Branch history cache |
US6658552B1 (en) * | 1998-10-23 | 2003-12-02 | Micron Technology, Inc. | Processing system with separate general purpose execution unit and data string manipulation unit |
US6571332B1 (en) * | 2000-04-11 | 2003-05-27 | Advanced Micro Devices, Inc. | Method and apparatus for combined transaction reordering and buffer management |
DE10043003A1 (de) | 2000-09-01 | 2002-03-14 | Infineon Technologies Ag | Programmgesteuerte Einheit |
GB0323950D0 (en) * | 2003-10-13 | 2003-11-12 | Clearspeed Technology Ltd | Unified simid processor |
GB2422692B (en) * | 2005-01-31 | 2009-08-12 | Hewlett Packard Development Co | Software updates for electronic appliances |
US20060174089A1 (en) * | 2005-02-01 | 2006-08-03 | International Business Machines Corporation | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture |
US7664765B2 (en) * | 2005-07-12 | 2010-02-16 | Cipherflux, Llc | Method for accelerating the computational speed of a computer algorithm |
US7831815B2 (en) * | 2008-02-06 | 2010-11-09 | Arm Limited | Data processing apparatus and method for identifying sequences of instructions |
US10157164B2 (en) * | 2016-09-20 | 2018-12-18 | Qualcomm Incorporated | Hierarchical synthesis of computer machine instructions |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53108254A (en) * | 1977-03-02 | 1978-09-20 | Nec Corp | Information processor |
US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
US4466057A (en) * | 1981-09-15 | 1984-08-14 | Data General Corporation | Digital data processing system respoonsive to instructions containing operation code modifiers |
EP0156307A3 (en) * | 1984-03-30 | 1988-04-20 | Four-Phase Systems Inc. | Pipelined processor having dual cache memories |
US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
US4847755A (en) * | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
DE3751503T2 (de) * | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. |
JP2753260B2 (ja) * | 1987-05-13 | 1998-05-18 | 株式会社日立製作所 | マージ方法 |
JPH02132524A (ja) * | 1988-11-14 | 1990-05-22 | Hitachi Ltd | 情報処理装置 |
-
1990
- 1990-06-26 US US07/543,458 patent/US5197135A/en not_active Expired - Fee Related
-
1991
- 1991-04-03 EP EP19910105247 patent/EP0463299A3/en not_active Withdrawn
- 1991-05-10 JP JP3133234A patent/JPH0782438B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0463299A2 (en) | 1992-01-02 |
US5197135A (en) | 1993-03-23 |
EP0463299A3 (en) | 1993-01-27 |
JPH04233034A (ja) | 1992-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0782438B2 (ja) | コンピュータ・システム | |
JP3548616B2 (ja) | 情報処理装置 | |
US8793433B2 (en) | Digital data processing apparatus having multi-level register file | |
EP0380850B1 (en) | Method and digital computer for preproccessing multiple instructions | |
US5701430A (en) | Cross-cache-line compounding algorithm for scism processors | |
US7219185B2 (en) | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache | |
US6230260B1 (en) | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching | |
JP3772899B2 (ja) | コンピュータシステム | |
US5809530A (en) | Method and apparatus for processing multiple cache misses using reload folding and store merging | |
EP0394624B1 (en) | Multiple sequence processor system | |
US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
US7203800B2 (en) | Narrow/wide cache | |
US20020010838A1 (en) | Prefetching hints | |
US5765199A (en) | Data processor with alocate bit and method of operation | |
JP2000513854A (ja) | タグビットのスタック・キャッシュを用いて厳密なガーベッジ・コレクションを支援するための装置及びその方法 | |
JPH0342745A (ja) | 複数キャッシュ・メモリ・アクセス方法 | |
JPH07191846A (ja) | プロセッサ | |
JP2001195304A (ja) | キャッシュ記憶装置 | |
US20030131205A1 (en) | Atomic transfer of a block of data | |
US6192449B1 (en) | Apparatus and method for optimizing performance of a cache memory in a data processing system | |
US6185674B1 (en) | Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor | |
JPH10116191A (ja) | 圧縮命令用バッファを備えたプロセッサ | |
JP3015565B2 (ja) | 複数命令の並列実行機能を持つ情報処理装置 | |
Knowles et al. | The MU6-G virtual address cache | |
IE901519A1 (en) | Multiple instruction preprocessing system with data¹dependency resolution |