JPH0371248A - 処理装置においてキヤツシユミス発生時の時間遅れを最少にする方法および装置 - Google Patents
処理装置においてキヤツシユミス発生時の時間遅れを最少にする方法および装置Info
- Publication number
- JPH0371248A JPH0371248A JP2175486A JP17548690A JPH0371248A JP H0371248 A JPH0371248 A JP H0371248A JP 2175486 A JP2175486 A JP 2175486A JP 17548690 A JP17548690 A JP 17548690A JP H0371248 A JPH0371248 A JP H0371248A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- cache miss
- pipeline
- execution
- instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000010586 diagram Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はコンピュータにおいて記憶装置を管理する方法
および装置に関するものである。更に詳しくいえば、本
発明は、キャッシュミスを生じた時に状態素子のコンテ
キストを非常に高速で常に切換える方法および装置に関
するものである。
および装置に関するものである。更に詳しくいえば、本
発明は、キャッシュミスを生じた時に状態素子のコンテ
キストを非常に高速で常に切換える方法および装置に関
するものである。
高速の中央処理装置用に、主コンピユータ記憶装置に加
えてキャッシュメモリを用いることはごく普通のことで
ある。キャッシュメモリというのは、主コンピユータ記
憶装置よシ小型であるが極めて高速で、処理装置と主記
憶装置の間に設けられる記憶装置である。ソフトウェア
プログラムの実行中に、キャッシュメモリは最も頻繁に
利用される命令訃よびデータを格納する。記憶装置から
情報をアクセスすることを処理装置が必要とする時は、
処理装置は主コンピユータ記憶装置をアクセスするよう
先に筐ずキャッシュメモリを調べる。
えてキャッシュメモリを用いることはごく普通のことで
ある。キャッシュメモリというのは、主コンピユータ記
憶装置よシ小型であるが極めて高速で、処理装置と主記
憶装置の間に設けられる記憶装置である。ソフトウェア
プログラムの実行中に、キャッシュメモリは最も頻繁に
利用される命令訃よびデータを格納する。記憶装置から
情報をアクセスすることを処理装置が必要とする時は、
処理装置は主コンピユータ記憶装置をアクセスするよう
先に筐ずキャッシュメモリを調べる。
キャッシュメモリ内の命令管たはデータを処理装置がみ
つけることができない時はキャッシュミスが生じ、よシ
遅い主記憶装置をアクセスする必要がある。したがって
、キャッシュメモリはプロセッサの平均メモリアクセス
時間を短縮する。
つけることができない時はキャッシュミスが生じ、よシ
遅い主記憶装置をアクセスする必要がある。したがって
、キャッシュメモリはプロセッサの平均メモリアクセス
時間を短縮する。
命令の流れというのは、加算または除算のような与えら
れた処理を行うためにプロセッサによシ実行される一連
の命令である。今日筐で、プロセッサは、命令の流れに
おいてキャッシュミスに出会った時に、次の2つの動作
のいずれか1つをとる。(1)主記憶装置に対する命令
またはデータの終了まで何もしないで待つ、(2)命令
の流れの中の指令されていない他の命令を実行する。そ
れら2つのやシ方は、そのために処理装置の物理的な寸
法(不動産)を大きく増大させず、キャッシュミスによ
ってプロセッサの平均命令サイクルを長くしない限シ、
受は容れることができる。キャッシュメモリの典型的な
容量は32に〜IMバイトであって、プロセッサチップ
またはプロセッサボードに大きな場所を占めない。
れた処理を行うためにプロセッサによシ実行される一連
の命令である。今日筐で、プロセッサは、命令の流れに
おいてキャッシュミスに出会った時に、次の2つの動作
のいずれか1つをとる。(1)主記憶装置に対する命令
またはデータの終了まで何もしないで待つ、(2)命令
の流れの中の指令されていない他の命令を実行する。そ
れら2つのやシ方は、そのために処理装置の物理的な寸
法(不動産)を大きく増大させず、キャッシュミスによ
ってプロセッサの平均命令サイクルを長くしない限シ、
受は容れることができる。キャッシュメモリの典型的な
容量は32に〜IMバイトであって、プロセッサチップ
またはプロセッサボードに大きな場所を占めない。
〔発8Aが解決しようとするル11題〕しかし、プロセ
ッサが高速になるにつれて、キャッシュミス発生時にこ
うむる不利益が大きくなる。キャッシュミス発生時にこ
うむる不利益は、キャッシュミス発生時に主メモリから
必要な情報を検索するために要する時間の長さを指す。
ッサが高速になるにつれて、キャッシュミス発生時にこ
うむる不利益が大きくなる。キャッシュミス発生時にこ
うむる不利益は、キャッシュミス発生時に主メモリから
必要な情報を検索するために要する時間の長さを指す。
1秒間に4000万種類の命令を実行できる( 40M
IPS)典型的な40MHzマイクロプロセッサにおい
てハ、アらゆるキャッシュミスによシこうむる不利益は
20クロツクサイクルである。キャッシュメモリのキャ
ッシュミス発生率を1%、超高速プロセッサの1命令当
シの実行時間t−1クロツクサイクルと仮定すると、そ
れらのプロセッサの命令塵すの平均クロックサイクル数
は、キャッシュミスの不利益のために1.0ではなくて
0.01(20) +0.99(1)−1,19である
。したがって、プロセッサは40/1.19冨33.6
MIPSの性能しか発揮できない。
IPS)典型的な40MHzマイクロプロセッサにおい
てハ、アらゆるキャッシュミスによシこうむる不利益は
20クロツクサイクルである。キャッシュメモリのキャ
ッシュミス発生率を1%、超高速プロセッサの1命令当
シの実行時間t−1クロツクサイクルと仮定すると、そ
れらのプロセッサの命令塵すの平均クロックサイクル数
は、キャッシュミスの不利益のために1.0ではなくて
0.01(20) +0.99(1)−1,19である
。したがって、プロセッサは40/1.19冨33.6
MIPSの性能しか発揮できない。
高速プロセッサの命令およびメモリ動作をパイプライ、
ン構成とすることは全く一般的なことである。パイプラ
インというのは多数のタスクを同じクロックサイクルで
同時に実行できるプロセッサの能力のことである。高速
プロセッサの元の処理速度をキャッシュミスが低下させ
るのと全く同様に、キャッシュミスはプロセッサのパイ
プラインにおける障害ともなる。
ン構成とすることは全く一般的なことである。パイプラ
インというのは多数のタスクを同じクロックサイクルで
同時に実行できるプロセッサの能力のことである。高速
プロセッサの元の処理速度をキャッシュミスが低下させ
るのと全く同様に、キャッシュミスはプロセッサのパイ
プラインにおける障害ともなる。
高速プロセッサの速度に対するキャッシュミスの不利益
とパイプラインの障害との、悪影響のために、プロセッ
サの物理的寸法をできるだけ小さくするという従来の関
心は二義的なものにされていた。この二律背反的な問題
は、プロセッサの速度の劇的な上昇とパイプライン処理
の普及からみで避けることができない。
とパイプラインの障害との、悪影響のために、プロセッ
サの物理的寸法をできるだけ小さくするという従来の関
心は二義的なものにされていた。この二律背反的な問題
は、プロセッサの速度の劇的な上昇とパイプライン処理
の普及からみで避けることができない。
後で詳しく説明するように、キャッシュミスの発生時に
、超高速プロセッサの状態素子のコンテキストを切換え
る方法と装置を本発明は提供するものである。本発明は
、キャッシュミス発生時に第1の処理の状態を保持し、
第2の処理を1クロツクサイクル内にプロセッサが第2
の処理を実行できるようにするものである。第2の処理
が別のキャッシュミスに遭遇すると、必要なデータが主
記憶装置から検索されているならば、プロセッサは第1
の処理の実行を終了するために1クロックサイクル以内
に戻る。他の場合にはプロセッサは第3の処理を開始で
きる。状態を複製される処理の数を大きな数nにするこ
とは容易である。
、超高速プロセッサの状態素子のコンテキストを切換え
る方法と装置を本発明は提供するものである。本発明は
、キャッシュミス発生時に第1の処理の状態を保持し、
第2の処理を1クロツクサイクル内にプロセッサが第2
の処理を実行できるようにするものである。第2の処理
が別のキャッシュミスに遭遇すると、必要なデータが主
記憶装置から検索されているならば、プロセッサは第1
の処理の実行を終了するために1クロックサイクル以内
に戻る。他の場合にはプロセッサは第3の処理を開始で
きる。状態を複製される処理の数を大きな数nにするこ
とは容易である。
本発明は、キャッシュミス発生時に超高速プロセッサの
状態素子のコンテキストを1クロックサイクル以内に切
換えるための方法と装置を提供するものである。今日ま
では、プロセッサがキャッシュミスに遭遇した時には、
プロセッサは何もしないか、順序を無して命令を実行す
るかであった。
状態素子のコンテキストを1クロックサイクル以内に切
換えるための方法と装置を提供するものである。今日ま
では、プロセッサがキャッシュミスに遭遇した時には、
プロセッサは何もしないか、順序を無して命令を実行す
るかであった。
プロセッサの速度が高くなるにつれて、キャッシュミス
によう受ける不利益が大きくなる。プロセッサの状態素
子のコピーを多数有し、それらのコピーをマルチプレク
サへ結合することによシ、プロセッサは現在のコンテキ
ストを保持し、新し−命令の実行を1クロックサイクル
以内に始めることができるようにするものである。ここ
に開示する本発明は、主記憶装置のアクセス時間が15
プロセツサクロツクサイクルをこえる超高速プロセッサ
の平均命令サイクルを非常に短縮するためにとくに有用
である。
によう受ける不利益が大きくなる。プロセッサの状態素
子のコピーを多数有し、それらのコピーをマルチプレク
サへ結合することによシ、プロセッサは現在のコンテキ
ストを保持し、新し−命令の実行を1クロックサイクル
以内に始めることができるようにするものである。ここ
に開示する本発明は、主記憶装置のアクセス時間が15
プロセツサクロツクサイクルをこえる超高速プロセッサ
の平均命令サイクルを非常に短縮するためにとくに有用
である。
この明細書では、キャッシュミス発生時に[高速プロセ
ッサ状態素子のコンテキストを切換よる方法と装置を開
示する。本発明を完全に理解できるようにするために、
以下の説明においては、特定装置、信号およびデータ構
造等のような特定の事項の詳細について数多く述べであ
る。しかし、そのような特定の詳細事項なしに本発明を
実施できることが当業者には明らかであろう。その他の
場合には、本発明を不必要に詳しく説明して本発明をあ
いまいにしないようにするために、周知の回路、装置、
データ構造は説明しない。
ッサ状態素子のコンテキストを切換よる方法と装置を開
示する。本発明を完全に理解できるようにするために、
以下の説明においては、特定装置、信号およびデータ構
造等のような特定の事項の詳細について数多く述べであ
る。しかし、そのような特定の詳細事項なしに本発明を
実施できることが当業者には明らかであろう。その他の
場合には、本発明を不必要に詳しく説明して本発明をあ
いまいにしないようにするために、周知の回路、装置、
データ構造は説明しない。
第1図はプロセッサの概念的なブロック図である。レジ
スタファイル1が組合わせ論理回路3とレジスタ5へ結
合される。組合わせ論理回路3とレジスタ5はレジスタ
ファイル1からの命令を復号するためのものである。次
に、復号された命令は実行のために組合わせ論理回路T
とレジスタ9へ送られる。その後で、実行された命令の
結果が通信バスまたは命令バス8に書かれる。
スタファイル1が組合わせ論理回路3とレジスタ5へ結
合される。組合わせ論理回路3とレジスタ5はレジスタ
ファイル1からの命令を復号するためのものである。次
に、復号された命令は実行のために組合わせ論理回路T
とレジスタ9へ送られる。その後で、実行された命令の
結果が通信バスまたは命令バス8に書かれる。
第1B図はプロセッサの状態素子と無状態素子の概念的
なブロック図である。状態素子2は命令バス4ft介し
てパイプライン6へ結合される。状態素子のことを、本
発明ではプロセッサチップ上のフリップフロップおよび
レジスタを指すものとする。それらの7リツプフロツプ
やレジスタは特定のプロセスの状態を示す2進情報を貯
える。それらの状態素子はレジスタファイル、状態ピッ
ト、条件コード、プリフェッチされた命令で典型的に構
成される。他方、パイプライン6は無状態である、すな
わち、プロセスの実行中に保持しておく必要があるプロ
セス状態を示す情報をパイプラインは保持しない。はと
んどの高速プロセッサは少なくとも5段のパイプライン
を有する。パイプラインはフェッチ命令、復号命令、実
行のための待ち行列命令、実行命令、および命令の書込
み結果を含む。これ以上の詳細についてはマノ・エム・
モリス(Mano+M、Morris )著「コンピュ
ータ・システム・アーキテクチャ(Computer
SystemArchitecture) 2版、22
章(プレンティス−ホール(Prentlce −Ha
ll))を参照されたい。
なブロック図である。状態素子2は命令バス4ft介し
てパイプライン6へ結合される。状態素子のことを、本
発明ではプロセッサチップ上のフリップフロップおよび
レジスタを指すものとする。それらの7リツプフロツプ
やレジスタは特定のプロセスの状態を示す2進情報を貯
える。それらの状態素子はレジスタファイル、状態ピッ
ト、条件コード、プリフェッチされた命令で典型的に構
成される。他方、パイプライン6は無状態である、すな
わち、プロセスの実行中に保持しておく必要があるプロ
セス状態を示す情報をパイプラインは保持しない。はと
んどの高速プロセッサは少なくとも5段のパイプライン
を有する。パイプラインはフェッチ命令、復号命令、実
行のための待ち行列命令、実行命令、および命令の書込
み結果を含む。これ以上の詳細についてはマノ・エム・
モリス(Mano+M、Morris )著「コンピュ
ータ・システム・アーキテクチャ(Computer
SystemArchitecture) 2版、22
章(プレンティス−ホール(Prentlce −Ha
ll))を参照されたい。
第2図は、パイプラインへ供給する2つのプロセスの状
態の典型的なブロック図を示す。n個のプロセスが1つ
のパイプラインへ供給できること、およびプロセス同士
が供給し合えることがわかるであろう。本発明の目的は
、パイプラインを最大限に利用することによシプロセッ
サの速度を最高にすることである。したがって、キャッ
シュミス2>E起ルトハイプラインを1つのプロセスか
う別ノプロセスへ切換える。い筐の例では、キャッシュ
ミス発生時にパイプライン6がプロセス8を実行してい
たとすると、キャッシュミス発生前のプロセス8の内容
すなわち状態を保持しながら、パイプライン6は1クロ
ックサイクル以内にプロセス10の実行へ切換えられる
。プロセス8が主記憶装置から必要なデータを検索する
前にプロセス1゜がキャッシュミスに遭遇したとすると
、パイプライン6は1クロックサイクル以内に別のプロ
セスへ切換わる。この構造にょシ、複数のプロセス11
のコンテキストを保存できる。
態の典型的なブロック図を示す。n個のプロセスが1つ
のパイプラインへ供給できること、およびプロセス同士
が供給し合えることがわかるであろう。本発明の目的は
、パイプラインを最大限に利用することによシプロセッ
サの速度を最高にすることである。したがって、キャッ
シュミス2>E起ルトハイプラインを1つのプロセスか
う別ノプロセスへ切換える。い筐の例では、キャッシュ
ミス発生時にパイプライン6がプロセス8を実行してい
たとすると、キャッシュミス発生前のプロセス8の内容
すなわち状態を保持しながら、パイプライン6は1クロ
ックサイクル以内にプロセス10の実行へ切換えられる
。プロセス8が主記憶装置から必要なデータを検索する
前にプロセス1゜がキャッシュミスに遭遇したとすると
、パイプライン6は1クロックサイクル以内に別のプロ
セスへ切換わる。この構造にょシ、複数のプロセス11
のコンテキストを保存できる。
第3図はプロセッサ13の種々の状態素子13の詳細と
、それの実行装置の略図を示す。プリフェッチされた待
ち行列12が記憶装置からの命令をプリフェッチし、復
号する。簡単な命令に対しては、プリフェッチされた待
ち行列は実行マイクロ命令をマイクロ命令バス16を介
して実行装置14へ送る。よう複雑な命令の場合には、
プリフェッチされた待ち行列12はマイクロプログラム
の流れを開始して、マイクロプログラムシーケンサ18
へ信号をバス16を介して送る。アドレス翻訳器22が
、全てのメモリ翻訳のために仮想アドレス−物理的アド
レスの翻訳を行うことによう、効率の良いオンチップメ
モリ管理を行う。キャッシュミスが起ると、プリフェッ
チされた待ち行列12はマイクロ命令をバス16を介し
てアドレス翻訳器22へ送シ、次のプロセスのアドレス
を記憶装置から7エツチする。最後に、バス制御論理2
6がバスプロトコルを管理し、割込みや初期化のような
事象を認識する。
、それの実行装置の略図を示す。プリフェッチされた待
ち行列12が記憶装置からの命令をプリフェッチし、復
号する。簡単な命令に対しては、プリフェッチされた待
ち行列は実行マイクロ命令をマイクロ命令バス16を介
して実行装置14へ送る。よう複雑な命令の場合には、
プリフェッチされた待ち行列12はマイクロプログラム
の流れを開始して、マイクロプログラムシーケンサ18
へ信号をバス16を介して送る。アドレス翻訳器22が
、全てのメモリ翻訳のために仮想アドレス−物理的アド
レスの翻訳を行うことによう、効率の良いオンチップメ
モリ管理を行う。キャッシュミスが起ると、プリフェッ
チされた待ち行列12はマイクロ命令をバス16を介し
てアドレス翻訳器22へ送シ、次のプロセスのアドレス
を記憶装置から7エツチする。最後に、バス制御論理2
6がバスプロトコルを管理し、割込みや初期化のような
事象を認識する。
次に第3図を参照する。この図の左下隅に超高速プロセ
ッサの典型的な実行装置の詳しい略図が示されている。
ッサの典型的な実行装置の詳しい略図が示されている。
書込み一読出しバッファ30がレジスタファイル32へ
結合される。算術論理シフト器(ALSU)36が複数
のマルチプレクサ34を介してレジスタファイル32へ
更に結合される。
結合される。算術論理シフト器(ALSU)36が複数
のマルチプレクサ34を介してレジスタファイル32へ
更に結合される。
ALSU36の出力は、結果バス40へ送られる前に、
条件コードおよびその他のレジスタ38に格納される。
条件コードおよびその他のレジスタ38に格納される。
本発明の原理に従って、プロセッサの各状態素子の状態
フリップフロップが二重に設けられる。
フリップフロップが二重に設けられる。
すべての二重の7リツプフロツプはマルチプレクサ29
に結合される。したがって、第4図は、プロセッサ13
の実行装置14に適用された本発明を示すものである。
に結合される。したがって、第4図は、プロセッサ13
の実行装置14に適用された本発明を示すものである。
マルチプレクサ29がn個の書込み一読出しパンツ23
0〜30’へ結合される。それらの書込み一読出しバッ
ファはマルチプレクサ31を介して複数のレジスタファ
イル32〜32’へ結合される。データが複数のレジス
タファイル32〜32′からALSU36へ流れる前に
、それらのデータはマルチプレクサ33.33’および
34の間でチャネルに分けられる。複数の条件コードと
その他のレジスタ38〜38’にデータが記録される前
に、ALSU 36はマルチプレクサ37へ再び結合さ
れる。複数の状態フリップフロップの前のマルチプレク
サは、キャッシュミスが生じた時に第1のプロセスのコ
ンテキストを保持するように機能することに注目された
い。パイプラインは、更に遊びや遅れを生ずることなし
に、1クロツクサイクル以内に別のプロセスを実行でき
る。第2のプロセスが別のキャッシュミスに遭遇したと
すると、必要なデータが主記憶装置から検索されている
ならば、プロセッサは1クロツクサイクル以内に戻って
実行を終了できる。必要なデータが検索されていなけれ
ば、プロセッサは第3のプロセスを実行できる。状態が
複製されるn個のプロセッサを容易に節約できることが
わかる。
0〜30’へ結合される。それらの書込み一読出しバッ
ファはマルチプレクサ31を介して複数のレジスタファ
イル32〜32’へ結合される。データが複数のレジス
タファイル32〜32′からALSU36へ流れる前に
、それらのデータはマルチプレクサ33.33’および
34の間でチャネルに分けられる。複数の条件コードと
その他のレジスタ38〜38’にデータが記録される前
に、ALSU 36はマルチプレクサ37へ再び結合さ
れる。複数の状態フリップフロップの前のマルチプレク
サは、キャッシュミスが生じた時に第1のプロセスのコ
ンテキストを保持するように機能することに注目された
い。パイプラインは、更に遊びや遅れを生ずることなし
に、1クロツクサイクル以内に別のプロセスを実行でき
る。第2のプロセスが別のキャッシュミスに遭遇したと
すると、必要なデータが主記憶装置から検索されている
ならば、プロセッサは1クロツクサイクル以内に戻って
実行を終了できる。必要なデータが検索されていなけれ
ば、プロセッサは第3のプロセスを実行できる。状態が
複製されるn個のプロセッサを容易に節約できることが
わかる。
40MIPSの性能の典型的なプロセッサへ本発明を応
用し、キャッシュミス率が1%であシ、l命令当りエク
ロツクサイクルであると仮定すると、あらゆるキャッシ
ュミスによる不利益は1クロツクサイクルというように
低い。プロセッサの命令当シのクロックサイクルの平均
数は0.01(2)十0.99(1)=1.01である
。したがって、プロセッサの性能は40/1.01 =
39.6MIPS である。これから、本発明によう
高速プロセッサが提供できる速度のほとんどをユーザー
が利用できることがわかる。
用し、キャッシュミス率が1%であシ、l命令当りエク
ロツクサイクルであると仮定すると、あらゆるキャッシ
ュミスによる不利益は1クロツクサイクルというように
低い。プロセッサの命令当シのクロックサイクルの平均
数は0.01(2)十0.99(1)=1.01である
。したがって、プロセッサの性能は40/1.01 =
39.6MIPS である。これから、本発明によう
高速プロセッサが提供できる速度のほとんどをユーザー
が利用できることがわかる。
システムに対するメモリサイクル時間が15プロセツサ
サイクルをこえる時に本発明は実用的である。本発明を
第1図乃至第4図を参照して説明したが、それらの図は
説明のためだけのものであって、本発明の教示を組込む
ために各種の高速プロセッサを設計できることがわかる
であろう。
サイクルをこえる時に本発明は実用的である。本発明を
第1図乃至第4図を参照して説明したが、それらの図は
説明のためだけのものであって、本発明の教示を組込む
ために各種の高速プロセッサを設計できることがわかる
であろう。
第1A図はプロセッサの概念的なブロック図、第1B図
はプロセッサの状態素子および無状態素子の概念的なブ
ロック図、第2図はN個のプロセッサのブロック図、第
3図は超高速プロセッサの状態素子の詳細説明図、第4
図は本発明の教示を利用している超高速プロセッサの実
行装置を示す。 1・・・・レジスタファイル、2・・・・状態素子、3
,7・・・・組合わせ論理回路、5,9・・・・レジス
タ、8・・・・通信バス、6・・・eパイプライン、1
3・・・・プロセッサ、14・・・・実行装置、18・
・・・マイクロプログラムシーケンサ、22・・・・ア
ドレス翻訳器、26・・・・バス制御論理、3a・・・
・書込み一読出しバッファ、36・・・・算術論理シフ
ト器。
はプロセッサの状態素子および無状態素子の概念的なブ
ロック図、第2図はN個のプロセッサのブロック図、第
3図は超高速プロセッサの状態素子の詳細説明図、第4
図は本発明の教示を利用している超高速プロセッサの実
行装置を示す。 1・・・・レジスタファイル、2・・・・状態素子、3
,7・・・・組合わせ論理回路、5,9・・・・レジス
タ、8・・・・通信バス、6・・・eパイプライン、1
3・・・・プロセッサ、14・・・・実行装置、18・
・・・マイクロプログラムシーケンサ、22・・・・ア
ドレス翻訳器、26・・・・バス制御論理、3a・・・
・書込み一読出しバッファ、36・・・・算術論理シフ
ト器。
Claims (2)
- (1)複数の処理の状態素子と、パイプラインと、命令
およびデータバスと、キャッシュメモリと、主メモリと
を備える処理装置においてキャッシュミス発生時の時間
遅れを最少にする方法において、前記処理装置の前記パ
イプラインへ結合されているマルチプレクサへおのおの
結合される、前記処理装置の前記状態素子を二重にする
過程と、前記処理装置の前記状態素子のコンテキストを
記憶する過程と、 キャッシュミスが生じた時に前記パイプラインにおける
第1の処理の実行を停止する過程と、命令の実行を前記
パイプライン内の複数の処理の1つへ切換える過程と、 を備えることを特徴とする処理装置においてキャッシュ
ミス発生時の時間遅れを最少にする方法。 - (2)複数の処理の状態素子と、パイプラインと、命令
およびデータバスと、キャッシュメモリと、主メモリと
を含む装置におけるキャッシュミス発生時にプロセッサ
の時間遅れを最少にする装置において、 前記処理装置の複数の状態素子で構成され、前記パイプ
ライン内の複数の処理の内容を記憶するための二重にす
る手段と、 キャッシュミス発生時に前記パイプラインにおける第1
の処理の命令の実行を停止させる停止手段と、 前記二重にする手段へ結合される複数のマルチプレクサ
で形成され、前記パイプラインにおける前記第1の処理
から複数の処理の1つへ命令の実行を切換える切換え手
段と、 を備えることを特徴とする処理装置においてキャッシュ
ミス発生時の時間遅れを最少にする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38957089A | 1989-08-03 | 1989-08-03 | |
US389.570 | 1989-08-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0371248A true JPH0371248A (ja) | 1991-03-27 |
Family
ID=23538806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2175486A Pending JPH0371248A (ja) | 1989-08-03 | 1990-07-04 | 処理装置においてキヤツシユミス発生時の時間遅れを最少にする方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5361337A (ja) |
JP (1) | JPH0371248A (ja) |
AU (1) | AU638232B2 (ja) |
GB (1) | GB2234613B (ja) |
HK (1) | HK36894A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005100034A (ja) * | 2003-09-24 | 2005-04-14 | Matsushita Electric Ind Co Ltd | 情報処理制御システム |
US8108859B2 (en) | 2004-04-21 | 2012-01-31 | Fujitsu Limited | Processor for controlling tread switching |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3118266B2 (ja) * | 1990-03-06 | 2000-12-18 | ゼロックス コーポレイション | 同期セグメントバスとバス通信方法 |
US6079014A (en) * | 1993-12-02 | 2000-06-20 | Intel Corporation | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state |
GB2289778B (en) * | 1994-05-17 | 1998-12-16 | Advanced Risc Mach Ltd | Data processing |
US5535360A (en) * | 1994-08-31 | 1996-07-09 | Vlsi Technology, Inc. | Digital computer system having an improved direct-mapped cache controller (with flag modification) for a CPU with address pipelining and method therefor |
US5724565A (en) * | 1995-02-03 | 1998-03-03 | International Business Machines Corporation | Method and system for processing first and second sets of instructions by first and second types of processing systems |
JPH096633A (ja) * | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム |
US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
US5751945A (en) * | 1995-10-02 | 1998-05-12 | International Business Machines Corporation | Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system |
US5949971A (en) * | 1995-10-02 | 1999-09-07 | International Business Machines Corporation | Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system |
US5729726A (en) * | 1995-10-02 | 1998-03-17 | International Business Machines Corporation | Method and system for performance monitoring efficiency of branch unit operation in a processing system |
US5748855A (en) * | 1995-10-02 | 1998-05-05 | Iinternational Business Machines Corporation | Method and system for performance monitoring of misaligned memory accesses in a processing system |
US5797019A (en) * | 1995-10-02 | 1998-08-18 | International Business Machines Corporation | Method and system for performance monitoring time lengths of disabled interrupts in a processing system |
US5752062A (en) * | 1995-10-02 | 1998-05-12 | International Business Machines Corporation | Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system |
US5812823A (en) * | 1996-01-02 | 1998-09-22 | International Business Machines Corporation | Method and system for performing an emulation context save and restore that is transparent to the operating system |
US6141769A (en) | 1996-05-16 | 2000-10-31 | Resilience Corporation | Triple modular redundant computer system and associated method |
US5933627A (en) | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US6088788A (en) * | 1996-12-27 | 2000-07-11 | International Business Machines Corporation | Background completion of instruction and associated fetch request in a multithread processor |
TW405090B (en) * | 1997-04-04 | 2000-09-11 | Ibm | Predictive cache loading by program address discontinuity history |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
FR2765361B1 (fr) * | 1997-06-26 | 2001-09-21 | Bull Cp8 | Microprocesseur ou microcalculateur imprevisible |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US5893159A (en) * | 1997-10-22 | 1999-04-06 | International Business Machines Corporation | Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6105051A (en) * | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6061710A (en) * | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
US6438708B1 (en) * | 1997-11-07 | 2002-08-20 | Hitachi, Ltd. | Information processing apparatus that can hold internal information |
US6256775B1 (en) | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
US6018759A (en) * | 1997-12-22 | 2000-01-25 | International Business Machines Corporation | Thread switch tuning tool for optimal performance in a computer processor |
US6272520B1 (en) * | 1997-12-31 | 2001-08-07 | Intel Corporation | Method for detecting thread switch events |
US6308261B1 (en) * | 1998-01-30 | 2001-10-23 | Hewlett-Packard Company | Computer system having an instruction for probing memory latency |
US7055151B1 (en) * | 1998-04-03 | 2006-05-30 | Applied Micro Circuits Corporation | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US6389449B1 (en) * | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US7237093B1 (en) * | 1998-12-16 | 2007-06-26 | Mips Technologies, Inc. | Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams |
US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US7035997B1 (en) | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
US7529907B2 (en) | 1998-12-16 | 2009-05-05 | Mips Technologies, Inc. | Method and apparatus for improved computer load and store operations |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
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 |
US6341347B1 (en) | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
US6938147B1 (en) | 1999-05-11 | 2005-08-30 | Sun Microsystems, Inc. | Processor with multiple-thread, vertically-threaded pipeline |
US20030014612A1 (en) * | 1999-05-11 | 2003-01-16 | William N. Joy | Multi-threaded processor by multiple-bit flip-flop global substitution |
US6889319B1 (en) * | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
US6496925B1 (en) | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
AU2597401A (en) * | 1999-12-22 | 2001-07-03 | Ubicom, Inc. | System and method for instruction level multithreading in an embedded processor using zero-time context switching |
US7308686B1 (en) | 1999-12-22 | 2007-12-11 | Ubicom Inc. | Software input/output using hard real time threads |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US7047396B1 (en) | 2000-06-22 | 2006-05-16 | Ubicom, Inc. | Fixed length memory to memory arithmetic and architecture for a communications embedded processor system |
DE60143896D1 (de) | 2000-07-14 | 2011-03-03 | Mips Tech Inc | Anweisungsabruf und -absendung in einem multi-thread-system |
US7401211B2 (en) * | 2000-12-29 | 2008-07-15 | Intel Corporation | Method for converting pipeline stalls caused by instructions with long latency memory accesses to pipeline flushes in a multithreaded processor |
US6799285B2 (en) | 2001-03-19 | 2004-09-28 | Sun Microsystems, Inc. | Self-checking multi-threaded processor |
US6965982B2 (en) * | 2001-06-29 | 2005-11-15 | International Business Machines Corporation | Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread |
US6845501B2 (en) * | 2001-07-27 | 2005-01-18 | Hewlett-Packard Development Company, L.P. | Method and apparatus for enabling a compiler to reduce cache misses by performing pre-fetches in the event of context switch |
US7822950B1 (en) * | 2003-01-22 | 2010-10-26 | Ubicom, Inc. | Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls |
DE10353268B3 (de) * | 2003-11-14 | 2005-07-28 | Infineon Technologies Ag | Paralleler Multithread-Prozessor (PMT) mit geteilten Kontexten |
DE102004009610B4 (de) * | 2004-02-27 | 2007-08-16 | Infineon Technologies Ag | Heterogener paralleler Multithread-Prozessor (HPMT) mit geteilten Kontexten |
JP4170364B2 (ja) * | 2004-09-17 | 2008-10-22 | 松下電器産業株式会社 | プロセッサ |
US7650472B2 (en) * | 2005-07-12 | 2010-01-19 | Electronics And Telecommunications Research Institute | Method for reducing memory power consumption |
US7823158B2 (en) * | 2005-08-18 | 2010-10-26 | International Business Machines Corporation | Adaptive scheduling and management of work processing in a target context in resource contention |
US8949868B2 (en) * | 2006-07-10 | 2015-02-03 | International Business Machines Corporation | Methods, systems and computer program products for dynamic linkage |
FR2962567B1 (fr) * | 2010-07-12 | 2013-04-26 | Bull Sas | Procede d'optimisation d'acces memoire, lors de la reprise d'execution d'une application, dans un microprocesseur comprenant plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede |
US8769210B2 (en) * | 2011-12-12 | 2014-07-01 | International Business Machines Corporation | Dynamic prioritization of cache access |
US10565126B2 (en) | 2017-07-14 | 2020-02-18 | Arm Limited | Method and apparatus for two-layer copy-on-write |
US10467159B2 (en) | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
US10592424B2 (en) | 2017-07-14 | 2020-03-17 | Arm Limited | Range-based memory system |
US10534719B2 (en) | 2017-07-14 | 2020-01-14 | Arm Limited | Memory system for a data processing network |
US10613989B2 (en) | 2017-07-14 | 2020-04-07 | Arm Limited | Fast address translation for virtual machines |
US10489304B2 (en) | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
US10353826B2 (en) * | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
US11789741B2 (en) * | 2018-03-08 | 2023-10-17 | Sap Se | Determining an optimum quantity of interleaved instruction streams of defined coroutines |
US10884850B2 (en) | 2018-07-24 | 2021-01-05 | Arm Limited | Fault tolerant memory system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3373408A (en) * | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3728692A (en) * | 1971-08-31 | 1973-04-17 | Ibm | Instruction selection in a two-program counter instruction unit |
US4229790A (en) * | 1978-10-16 | 1980-10-21 | Denelcor, Inc. | Concurrent task and instruction processor and method |
US4370710A (en) * | 1980-08-26 | 1983-01-25 | Control Data Corporation | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses |
US4430706A (en) * | 1980-10-27 | 1984-02-07 | Burroughs Corporation | Branch prediction apparatus and method for a data processing system |
DE3113495C2 (de) * | 1981-04-03 | 1989-11-02 | Davy McKee AG, 6000 Frankfurt | Spinnbalken für Schmelzspinnanlagen für synthetische Hochpolymere |
US4695943A (en) * | 1984-09-27 | 1987-09-22 | Honeywell Information Systems Inc. | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
JPS62243044A (ja) * | 1986-04-16 | 1987-10-23 | Hitachi Ltd | デイスクキヤツシユメモリの制御方式 |
US4888689A (en) * | 1986-10-17 | 1989-12-19 | Amdahl Corporation | Apparatus and method for improving cache access throughput in pipelined processors |
US5146569A (en) * | 1986-10-24 | 1992-09-08 | Hitachi, Ltd. | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension |
US4926323A (en) * | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
US5034885A (en) * | 1988-03-15 | 1991-07-23 | Kabushiki Kaisha Toshiba | Cache memory device with fast data-write capacity |
US5038278A (en) * | 1988-04-01 | 1991-08-06 | Digital Equipment Corporation | Cache with at least two fill rates |
US5119483A (en) * | 1988-07-20 | 1992-06-02 | Digital Equipment Corporation | Application of state silos for recovery from memory management exceptions |
US4875160A (en) * | 1988-07-20 | 1989-10-17 | Digital Equipment Corporation | Method for implementing synchronous pipeline exception recovery |
US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
US5150469A (en) * | 1988-12-12 | 1992-09-22 | Digital Equipment Corporation | System and method for processor pipeline control by selective signal deassertion |
-
1990
- 1990-03-02 GB GB9004703A patent/GB2234613B/en not_active Expired - Fee Related
- 1990-03-05 AU AU50672/90A patent/AU638232B2/en not_active Ceased
- 1990-07-04 JP JP2175486A patent/JPH0371248A/ja active Pending
-
1992
- 1992-05-08 US US07/883,059 patent/US5361337A/en not_active Expired - Lifetime
-
1994
- 1994-04-21 HK HK36894A patent/HK36894A/xx not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005100034A (ja) * | 2003-09-24 | 2005-04-14 | Matsushita Electric Ind Co Ltd | 情報処理制御システム |
US8135909B2 (en) | 2003-09-24 | 2012-03-13 | Panasonic Corporation | System for starting a preload of a second program while a first program is executing |
US8108859B2 (en) | 2004-04-21 | 2012-01-31 | Fujitsu Limited | Processor for controlling tread switching |
Also Published As
Publication number | Publication date |
---|---|
US5361337A (en) | 1994-11-01 |
AU638232B2 (en) | 1993-06-24 |
AU5067290A (en) | 1991-02-07 |
GB2234613B (en) | 1993-07-07 |
GB2234613A (en) | 1991-02-06 |
HK36894A (en) | 1994-04-29 |
GB9004703D0 (en) | 1990-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0371248A (ja) | 処理装置においてキヤツシユミス発生時の時間遅れを最少にする方法および装置 | |
JP4451397B2 (ja) | Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置 | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US5204953A (en) | One clock address pipelining in segmentation unit | |
JP3105223B2 (ja) | マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置 | |
US4305124A (en) | Pipelined computer | |
US11755456B2 (en) | Tracking debug events from an autonomous module through a data pipeline | |
JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
JPH11312122A (ja) | 使用者が構築可能なオンチッププログラムメモリシステム | |
US5596735A (en) | Circuit and method for addressing segment descriptor tables | |
JP2002512399A (ja) | 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ | |
US4980819A (en) | Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system | |
JPS6339931B2 (ja) | ||
WO2007002408A2 (en) | Computer processor pipeline with shadow registers for context switching, and method | |
JP2575219B2 (ja) | データ処理システム及びその命令実行を促進する方法 | |
US7761688B1 (en) | Multiple thread in-order issue in-order completion DSP and micro-controller | |
US7093107B2 (en) | Bypass circuitry for use in a pipelined processor | |
US5742755A (en) | Error-handling circuit and method for memory address alignment double fault | |
US5499363A (en) | Microprocessor coupled to coprocessor by coprocessor bus separate from system bus to external memory for increased efficiency | |
Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing | |
US5596717A (en) | Four state token passing alignment fault state circuit for microprocessor address misalignment fault generation | |
US7028164B2 (en) | Instruction fetch apparatus for wide issue processors and method of operation | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
JPH08249175A (ja) | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 | |
EP1235139B1 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture |