JP3520372B2 - メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 - Google Patents
メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除Info
- Publication number
- JP3520372B2 JP3520372B2 JP51552393A JP51552393A JP3520372B2 JP 3520372 B2 JP3520372 B2 JP 3520372B2 JP 51552393 A JP51552393 A JP 51552393A JP 51552393 A JP51552393 A JP 51552393A JP 3520372 B2 JP3520372 B2 JP 3520372B2
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- instruction
- address
- read
- iou
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000008030 elimination Effects 0.000 title 1
- 238000003379 elimination reaction Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- VXPSARQTYDZXAO-CCHMMTNSSA-N (4s,4ar,5s,5ar,12ar)-4-(dimethylamino)-1,5,10,11,12a-pentahydroxy-6-methylidene-3,12-dioxo-4,4a,5,5a-tetrahydrotetracene-2-carboxamide;hydron;chloride Chemical compound Cl.C=C1C2=CC=CC(O)=C2C(O)=C2[C@@H]1[C@H](O)[C@H]1[C@H](N(C)C)C(=O)C(C(N)=O)=C(O)[C@@]1(O)C2=O VXPSARQTYDZXAO-CCHMMTNSSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 101100236764 Caenorhabditis elegans mcu-1 gene Proteins 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/3842—Speculative instruction execution
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
ステムの分野に関し、より具体的には、少なくとも2つ
以上のサブシステムに読み出し/書き込み(READ/WRIT
E)要求を同時に送り、引き続いて不要な要求を取り消
すためのシステム並びに方法に関する。
・システムは、3大サブシステムから成り立っている。
それらは、即ち、1個の主記憶、少なくとも1個以上の
内部処理ユニット(IPU)、そして1つの入出力(I/O)
サブシステムである。従来のマイクロプロセッサ・ベー
スのシステムの中には、性能を上げるためにパイプライ
ン方式として知られる方法を使うものがある。パイプラ
イン処理では、命令実行の様々なステップ(例えば、フ
ェッチ、デコード、及び実行)はパイプライン・ステー
ジと呼ばれる独立した単位によって実行される。そのス
テップは、プロセッサが一度に少なくとも2つ以上の命
令を処理できるように、様々なステージで並列で実行さ
れる。
の命令がパイプラインから出る(exit)かによって決定
される。パイプライン・ステージは相互につながってい
るから、全てのステージが同時に進行するように準備さ
れていなければならない。しかしながら、現実には、フ
ェッチ、デコード、実行のステージの中には他に比べて
時間が掛かるものもある。そのために、真の並列性が実
行されているとは言えない。1サイクル時間に割り当て
られる最短時間は最長ステップを実行するのに掛かる時
間である。或いは、そのステップを複数のサイクル時間
で実行することもできる。いずれの場合でも、システム
の効率は最長ステップによって妨げられてしまう。
「Computer Architecture a Quantitative Approach」
(Morgan Kaulmann出版社、1990)を参照のこと。
/O空間のデータにアクセスすることが必要になる。概し
て、IPUは、プロセッサのサイクル時間が数十ナノ秒
の、マイクロプロセッサ・ベースのシステムで最も速い
要素である。その一方、主記憶やI/Oデバイスのサイク
ル時間は数百ナノ秒である。従って、マイクロプロセッ
サの性能を制限する要因の一つはメモリ・アクセスの速
度ということになる。
階から、プロセッサはI/Oまたはメモリへのアクセスが
起きるかどうかわかっている。しかしながら、命令が残
らず最後まで完全にデコードされるまで、アクセス対象
が主記憶なのかかそれともI/Oなのかシステムは決定で
きない。従来のシステムでは、読み出し/書き込み状態
に遷移するためのコマンドをメモリ制御ユニット(MC
U)またはI/O制御ユニット(IOU)に送る前に、OPCODE
(演算コード)及びレジスタ・アドレス部分を含む命令
全体をデコードする。言い換えれば、従来のシステムは
こうした処理を逐次に実行し、命令の完全なデコードの
ステップと、MCUまたはIOUを読み出し/書き込み状態に
遷移するステップは「クリティカル・パス」上にある。
その結果、従来のシステムは、メモリやI/Oデバイスに
実際にアクセスするという時間のかかるステップに入る
前に、命令を最後までデコードし終わるのを待って貴重
な時間を浪費しているのである。
ックにはスレーブ状態として知られる状態がある。MCU
やIOUなどのスレーブ・デバイスが、読み出し/書き込
みなどの動作を実行するためにバスへのアクセスが許可
されるのは、このスレーブ状態の間だけである。従っ
て、クロックのサイクル時間は、アクセス対象のデバイ
スが今度のスレーブ・サイクルに間に合うように読み出
し/書き込み状態に入れるように、クリティカル・パス
上の全ての処理が実行されるのに十分な長さでなければ
ならない。クリティカル・パス上の処理が全てその時間
内では実行しきれないようにクロックのサイクル時間が
短縮されていれば、読み出し/書き込み動作は今度のス
レーブ・サイクルに間に合わず、その次のスレーブ・サ
イクルまでさらに1クロック期間待たなければならな
い。従って、必要なのは、アクセス対象の実際のアドレ
スがデコードされるのを待たずに、OPCODEがデコードさ
れ次第プロセッサが直ちにメモリに対し読み出しまたは
書き込みの要求を出せるようにするシステム並びに方法
である。こうすることによって、読み出し/書き込み要
求をクリティカル・パスからパラレル・パスに移すこと
によってクリティカル・パスの長さが短縮される。この
方法で、システムのクロック・レートが速まり、メモリ
及びI/Oサブシステムの実効レイテンシが短縮される。
ティカル・パスを削除するためのシステム並びに方法を
提供するものである。本発明に基づく技法においては、
命令の演算コードがデコードされ、その演算コードがシ
ステム・メモリまたはI/Oデバイスにアクセスを命じる
動作を呼び出すと、読み出し・書き込み要求が直ちにプ
ロセッサ・ベースのシステムのメモリ制御ユニットMCU
と入出力制御ユニットIOUの両方に送られる。プロセッ
サが命令の残りの部分をデコードする前にこの読み出し
・書き込み要求は送られるため、現在のクロックが終わ
る前にMCUとIOUがアイドル状態から読み出し・書き込み
状態に遷移することが可能になる。
在の命令をデコードするのにかかる合計時間のみに抑え
られるようになる。さらに時間を追加することなく現在
のクロック・サイクル時間内で、MCU並びにIOUは読み出
し・書き込み状態に遷移できる。それは何故ならば、MC
UとIOUは既にその状態に入っているからである。
スまたはI/Oアクセス用のアドレスが計算され、さらにM
CUまたはIOUの宛先がデコードされたら、取消し処理が
起きる。取消し処理では、MCUまたはIOUのいずれかが読
み出し・書き込み状態からアイドル状態に戻される。宛
先のデコードでメモリがアクセス対象であったことが明
らかになると、IOUはアイドル状態に戻る。一方、宛先
のデコードでI/Oデバイスがアクセス対象であったこと
が明らかになれば、MCUはアイドル状態に戻る。
されている。今までに述べたさらにそれ以外の本発明の
優れた点については、添付の図面と共に以下に記述する
説明を参照することによってより理解が深まるであろ
う。
0の概略ブロック図である。
ある。
を使って1つのアドレスが計算される典型的な命令フォ
ーマットを図解したものである。
来のシステムの状態動作の流れを表す図である。
る。
イミング図である。
る、マイクロプロセッサのアーキテクチャ100の高レベ
ル図を示したものである。第1図において、本発明の好
適な実施例に基づいて、100と指定されたマイクロプロ
セッサ・システムのアーキテクチャが提示されている。
システム・アーキテクチャ100は、内部プロセッサ・ユ
ニット(IPU)105、メモリ制御ユニット(MCU)120、I/
O制御ユニット(IOU)130、主記憶150、及び外部I/Oデ
バイス160から成る。
のメモリ・バス140によってMCU120に接続されている。
同様に、I/Oデバイス160は、好適な実施例においては、
32ビット幅の外部I/Oバス135によってIOU130に接続され
ている。
作を制御する回路である。本発明に基づく好適な実施例
におけるMCU120は、スイッチ・ネットワーク121及びポ
ート122とから成っている。本明細書に記載の例におい
てはポート122は1個だけしか示されていないが、本発
明に基づく好適な実施例は複数のポート122を備えてい
る。
信インタフェースを可能にする。スイッチ・ネットワー
ク121はまた、ポート122の要求を調整する手段としても
使われる。ポート122(単数または複数)は、主記憶150
にデータを送り、且つそこからデータを受け取る役目を
果たす。
130からの様々な命令並びにデータ要求を受け取ること
である。IPU105及びIOU130はメモリ要求者と呼ばれるこ
とがある。要求を受け取り調整した後に、要求は対応す
るメモリ・ポート122に渡される。対応するポート122の
決定は命令アドレスの解釈によってなされる。ポート12
2(単数または複数)は次に必要なタイミング信号を生
成し、外部メモリ150のアドレス指定された部分にデー
タを送るか、またはそこからデータを受け取るかする。
み動作を制御する回路である。本発明に基づく好適な実
施例におけるIOU130は、スイッチ・ネットワーク131及
びポート132とから成っている。本明細書に記載の例に
おいてはポート132は1個だけしか示されていないが、
本発明に基づく好適な実施例は複数のポート132を備え
ている。MPUの場合と同様に、IOU130のスイッチ・ネッ
トワーク131はIOU130とIPU105間の通信インタフェース
を可能にする。スイッチ・ネットワーク131はまた、IPU
105とポート132の要求を調整する手段としても使われ
る。ポート132(単数または複数)は、I/Oデバイス160
にデータを送り、且つそこからデータを受け取る役目を
果たす。
る。好適な実施例において、メモリ編成は2領域に分割
されている。I/Oバス領域210とメモリ・バス領域220が
ある。この編成の結果、システムは主記憶150とI/Oデバ
イス160の両方に対する読み出し書き込み動作を要求す
ることができるようになる。読み出しまたは書き込みの
動作を含む命令は各々、システムのメモリ・マップ200
上に写像可能なアドレスを含むことになる。
ステージのパイプラインに分割されている。その3ステ
ージとは、フェッチ、デコード、並びに実行である。最
初、命令はIPU105によってメモリからフェッチされる。
その次に、命令は指示された機能(例えば、加算、減
算、格納)を確定するためにデコードされる。3番目且
つ最後に、そのデコードされた命令はその機能の通りに
実行される。
指定モード数は共に命令サイズに大きな影響を及ぼす。
これはアドレス指定モードのフィールドとレジスタ・フ
ィールドが1つの命令の中で何度も現われることがある
からである。事実、ほとんどの命令が、演算コードの指
定よりもアドレス指定モードやレジスタ・フィールドの
コード化に余計にビットをとられている。このように、
アドレス指定モードとレジスタ・フィールドが命令ビッ
トの大きな割合を占めるため、それらのコード化はいか
に簡単に命令のデコードを実現できるかに大きく影響し
てくる。
第3A図は命令の一例とその構成要素を示すものである。
第3A図において、命令300はOPCODE310を含んでいる。OP
CODE310は、一旦デコードされれば、どのオペレーショ
ンを実行すべきかプロセッサに伝える。オペレーション
にはADD(加算)、COMPARE(比較)、CLEAR(クリア)
などの算術演算、BRANCH(分岐)やJUMP(飛び越し)な
どの制御動作、RETURN FROM INTERRUPT(割り込みから
の戻り)などのシステム動作、並びにMOVE(移動)やPU
SH(プッシュ)などのデータ転送動作などがある。
ドレスは、必要に応じて、プロセッサにどの記憶場所に
対してオペレーションを行なうべきか伝えるために、命
令の中に包含されている。これらは記憶場所320、330で
命令にコード化される。例えば、OPCODE310がADDの演算
を行なうようにプロセッサに命令すれば、プロセッサ
は、加算対象の値を含むアドレスを決定するために、記
憶場所320と330を見に行きそこに入っている情報をデコ
ードする(直接アドレス指定の場合)。
クチャによって異なる。どうすれば本発明に基づく技法
が他の命令フォーマットに適用できるかは当業者には明
らかになるであろう。
ーマットを示したものである。第3B図におけるOPCODE31
0は、第図3A図に示したフォーマットにおいて説明した
のと同じオペレーションを行なうように、プロセッサに
命令することができる。しかしながら、ここでは、アド
レスの到着が異なる。このフォーマットでは、最初のア
ドレスは2つのアドレスをデコードし演算することによ
って計算される。最初のアドレスを計算するために、プ
ロセッサはRindex340とRbase350をデコードする。実際
のアドレスを決定するためにこれらの記憶場所における
値に対し演算が行なわれる(この場合、合計される)。
このタイプのアーキテクチャは多種のプログラミングに
有効である。2番目のアドレスを計算する必要がある場
合、記憶場所Raddress360における値がデコードされる
だけである。
解される。命令のそれぞれ異なった部分、即ち、OPCODE
310、Rindex340、Rbase350、Raddress360は様々な間隔
でデコードすることができる。従って、プロセッサは、
命令の残りの部分に先行してOPCODE310を先にデコード
することができる。一旦命令のOPCODE310部分がデコー
ドされれば、プロセッサは命令がどんな動作を命じてく
るかわかる。
ードされたOPCODE310がIPU105に伝えれば、プロセッサ
は演算対象の値に他の記憶場所からアクセスしなければ
ならないことを知る。第1図と第3B図において、従来の
システム用の典型的なシナリオについて説明している。
命令はフェッチされ、OPCODE310がデコードされる。OPC
ODE310がプロセッサにロード/格納動作を実行するよう
に命令すれば、IPU105は格納対象の値のある記憶場所を
確定するためにRaddress360をデコードする。IPU105は
次にRindex340とRbase350をデコードする。一旦デコー
ドされれば、Rindex340とRbase350はデータの最終アド
レスを計算するために加算器に送られる。その次に、こ
の最終アドレスはデコードされるためMCU120またはIOU1
30に送られる。デコードされたら、MCU120またはIOU130
のいずれか読み出し/書き込みを実行すべき方が、読み
出し/書き込み状態に遷移される。しかしながら、こう
した処理を全て逐次に実行し、しかも今度のスレーブ・
クロック・フェーズに間に合うようにそれに対応するユ
ニットを読み出し書き込み状態に遷移させるには、現在
のクロック・フェーズ内では時間的に十分とはいかない
場合がある。スレーブ・クロック・フェーズは、その期
間中読み出し書き込み動作が発生しうる唯一のフェーズ
であるから、最初のスレーブ・フェーズに間に合わなけ
れば、そのシステムは次のスレーブ・フェーズまで1ク
ロック期間まるまる待たなければならない。従って、こ
れらの処理は全て逐次に実行され、それも高速クロック
・レートでは直列の組み合わせ時間はすぐ次に来るスレ
ーブ・フェーズに間に合わない原因となるから、クリテ
ィカル・パスが存在しているということになる。或い
は、パス上の全てのフェーズが完了するように、システ
ム・クロックのサイクル時間を増やさなければならな
い。しかしながら、この代替案は、処理を遅くすること
になるから、望ましい問題解決法とは言えない。
のシナリオに基づくタイミング図並びに状態図を示すも
のである。下記の動作時間は例として記載するものであ
る。勿論、他のマシンでは命令処理との関連で演算時間
は異なってくる。第4図において、第1クロック期間T0
T1で、ロード/格納命令がフェッチされる。第2クロッ
ク期間T2/T3で、命令がデコードされる。即ちOPCODE310
がデコードされ、その後Raddress360、Rindex340、さら
にRbase350がデコードされる。Rindex340及びRbase350
はT3のクロック・フェーズでデコードされる。この処理
はおよそ8ナノ秒かかり、ブロック410で示されてい
る。この処理が完了すると、アドレス計算が行われる。
この計算に要する時間はブロック420に示すように7ナ
ノ秒である。アドレス計算実行後に、アドレスはMCU120
もしくはIOU130によってデコードされなければならな
い。ブロック430で示した、このデコーディングは4か
ら5ナノ秒かかる。従って、命令のデコーディングにか
かる時間は合計で20ナノ秒である。
またはIOU130のいずれか対応する制御ユニットは、次の
スレーブ状態より前に読み出し/書き込み状態に入って
いなければならない。第4図において、T4、T6、T8など
はスレーブ状態、即ち、メモリやI/Oの読み出し/書き
込みが起きる唯一の状態である。命令とアドレスのデコ
ーディング動作がその前のT3でクロック時間の20ナノ秒
を消費し、且つ我々は今度のスレーブ・フェーズT4で読
み出し/書き込みが起きるようにしたいため、クロック
・フェーズの時間は20ナノ秒よりも長くなければならな
い。20ナノ秒を越えてさらに要する時間はMCU120または
IOU130の対応する制御ユニットが読み出し/書き込み状
態に遷移するのにかかる時間である。そのフェーズの時
間が足りなければ、MCU120またはIOU130はT4のクロック
・フェーズに間に合うように読み出し/書き込み状態に
入ることができず、クリティカル・パスが存在し、さら
にシステムは読み出し/書き込み動作を実行するために
T6のクロック・フェーズになるまで待たなければならな
い。しかるに、従来のシステムの欠陥は、命令デコード
動作及びメモリまたはI/Oデバイスの読み出し/書き込
み状態への遷移が逐次起こり、且つ高速クロック・レー
トではクリティカル・パスを形成することである。その
結果、クロック・サイクル時間の増加(クロック・レー
トの低下)を招いたり、その間読み出し/書き込み動作
を延期しなければならない「時間の無駄使い」のクロッ
ク期間に陥ることになる。この後者の結果は、命令はさ
らに1クロック・サイクル待たないと、即ち次のパイプ
ラインまで、実行完了しないということである。
20とIOU130を読み出し/書き込み状態に遷移することに
よって、このクリティカル・パスの欠陥を削除する。言
い換えれば、アイドル状態から読み出し/書き込み状態
への遷移のステップがクリティカル・パスから取り除か
れるということである。第5図は本発明に基づく動作を
図解したタイミング及び状態の図である。第3B並びに5
図において、デコードされたOPCODE310がメモリまたはI
/Oデバイスに対する読み出し/書き込み動作が起きなけ
ればならないことを示していれば、IPU105の読み出し/
書き込み要求520はOPCODE310のデコード後直ちにMCU120
並びにIOU130に並列で送られる。IPU105は他のレジスタ
がデコードされるまで待つことはしない。この方法で
は、命令の残りの部分がデコードされている間に、MCU1
20及びIOU130はT3のクロック時間中にアイドル状態540
から脱し、読み出し/書き込み状態に入る。従って、読
み出し/書き込み状態に遷移する動作は逐次ではなくな
るから、システムはT6のフェーズ発生まで待たされるこ
とがなくなる、即ち、クリティカル・パスがなくなる。
今や、MCU120及びIOU130は、スレーブのクロック・フェ
ーズT4発生より前に読み出し/書き込み状態530に入っ
ている。
と同じタイミングの数字を使って表すことができる。例
えば、レジスタのデコーディング、アドレス計算さらに
アドレスのデコーディングに要する時間が20ナノ秒以下
ならば、速度20ナノ秒のクロックを使うシステムではク
リティカル・パスは存在しない。それは何故ならば、IO
U130及びMCU120はT4の発生以前に既に読み出し/書き込
み状態に入っているからである。
なのかが分かれば、IOUの取消し信号560が生成され、従
って不要の制御ユニットをアイドル状態に戻す。
は、ブロック510で示すように、T2、T3のクロック期間
の初期に発生する。このデコードが完了し次第直ちに、
IPUの読み出し/書き込み要求520がMCU120とIOU130に送
られる。要求520はMCU120を読み出し/書き込み状態530
Aに、IOU130を読み出し/書き込み状態530Bにする。読
み出し/書き込み状態530は共にT4のスレーブ・クロッ
ク・フェーズ中の活用に間に合うように既に発生してい
る。
が、対応するアドレスを確定するためにデコードされ
る。Rindex340並びにRbase350のデコーディングはブロ
ック512に示す通りである。アクセス対象のアドレスの
計算、即ちRindex340のRbase350への加算はブロック514
で示す通りである。
書き込み動作を実行し、他方はしない。ブロック550に
示すように、アドレス・デコードが起きるまでどちらが
どちらなのか不明である。アドレス・デコードが発生し
さえすれば、IOUの取消し信号560が生成され、従って読
み出し/書き込み動作を行っていないユニットを取り消
す。このユニットはアイドル状態540に戻る。
は、たまたまメモリ内に存在している。従って、そのア
ドレスがデコードされると、I/Oデバイスはアクセスさ
れるべきでないことが分かる。次に取消し信号560が生
成され、IOU130はアイドル状態540Bに戻る。MCU120は読
み出し/書き込み状態530Aのままで、メモリ・アクセス
が発生する。
されたアドレスをデコードする。アドレスがデコードさ
れ、アドレスがメモリ150とI/O160のどちらに宛てられ
ているかが判明すれば、MCU120は自分の読み出し/書き
込み要求を取り消しアイドル状態540Aに戻るか、もしく
は取消し信号をIOU130に送るかのいずれかを行なう。こ
のアドレス・デコードはMCU120またはIOU130のいずれ
か、或いはその両方によって実行されることがあるとい
うことは当業者には明確であろう。
りである。第6図において、IPU_REQ信号520はMCU120及
びIOU130の両方に送られる。MCU120は認可信号610Aに応
答し、IOU130は認可信号610Bに応答する。MCU120とIOU1
30は共に、MCU_STATE620A及びIOU_STATE620Bが示すよう
に、読み出し/書き込み状態にある。一旦アドレスがデ
コードされれば、MCU120またはIOU130のいずれか不要の
ユニットを取り消すために、MCU/IOU_CANCEL信号が生成
される。第6図はIOU130が不要で、従ってIOU_STATE620
Bがアイドル状態に戻るケースを示したものである。
7及び2図において、取消し論理ブロックを生成するた
めに使われる状態マシンが示されている。取消し論理は
MCU120にもIOU130にもある。T1でIOU105からの読み出し
/書き込み要求信号を受信すると、その2つの状態マシ
ンは同時に動作を開始する。要求の宛先(即ち、現在デ
コード進行中の命令に示されるメモリ内のアドレス)の
デコード後、その動作を取り消すために、MCU120または
IOU130のいずれかが、T2でスイッチ125もしくはスイッ
チ135からそれぞれ取消し信号を生成する。要求が取り
消されれば、取り消された制御ユニットはアイドル状態
に戻る。要求が取り消されなければ、制御ユニットは対
応するメモリの記憶場所にアクセスし始める。
によってトリガされる。そのビットがゼロであれば要求
は主記憶に対するもので、そのビットが1ならその要求
はI/Oデバイスに対するものである。第2図に示すよう
に、アドレスが0000_0000と03FF_FFFFの間にあれば、そ
のアドレスはメモリにアクセスする。しかしながら、ア
ドレスがFF80_FFFFとFFFF_FFFFの間にあれば、I/Oにア
クセスする。好適に実施例において、他の領域は全て予
約されている。本発明において他に多数のメモリ・マッ
プが使用できるということが当業者には明確であろう。
レスをデコードすると、そのアドレスが予約領域230の
1ケ所に宛てられているかどうかも判定される。予約領
域230の1ケ所に宛てられていれば、IOU130及びMCU120
に対する読み出し/書き込みは共に取り消される。
U120及びIOU130の片方が読み出し/書き込みモードにな
るように要求される時でも、MCU120及びIOU130は共に、
読み出し/書き込みモードになる消費電力が増加する。
高速クロック・レートにすることによってシステムの性
能を上げれば、ほとんどのアプリケーションでこの消費
電力の増加は相殺される。
ることができる技法を提供するものである。OPCODEがデ
コードされ、読み出しもしくは書き込みの動作が呼び出
されることを示していれば、直ちに読み出し/書き込み
状態に遷移するようにメモリ及びI/Oユニットに命令を
送ることによってクロック・レートは速められ、かくし
てクリティカル・パスから状態遷移時間が取り除かれ
る。
してきたが、本発明の精神並びに適用範囲から外れるこ
となく形状及び詳細において様々な変更が可能であるこ
とが当業者には理解されることであろう。
のMCUやIOU以外の資源デバイスを使ってシステムで実行
することが可能であり、且つ本発明による技法は多数の
資源デバイスを包含するシステムに拡張することができ
る。
Claims (8)
- 【請求項1】読み出し/書き込み動作中にプロセッサ・
ベースのシステムにおいてクリティカル・パスを削減す
る方法で、前記システムがメモリ制御ユニット(MC
U)、入出力制御ユニット(IOU)、並びに命令集合をそ
れぞれ1個ずつ備え、前記方法が、 (a)命令集合から命令の第1の部分をデコードするス
テップと、 (b)前記の命令が読み出しと書き込みのうちの少なく
とも1つを命じているか否かを決定するステップと、 (c)ステップ(b)で読み出しや書き込みを命じてい
ることが確定されれば、読み出し/書き込み状態に入る
ために要求をMCUとIOUの両方に送るステップと、 (d)読み出し/書き込み動作によってアクセスされる
べきアドレスを決定するために命令の残りの部分をデコ
ードするステップと、 (e)アクセス対象のアドレスをデコードするステップ
で、それは、そのアクセスの対象がメモリかI/Oデバイ
スかを確定するためにMCUかIOUの少なくともどちらか一
方によって実行されるデコーディングであること、さら
に、 (f)前記のデコードするステップ(e)による結果に
基づいてMCUやIOUに対する前記の要求の一つを取り消す
ステップと、 から成り立つことを特徴とする方法。 - 【請求項2】前記ステップ(c)及び(d)が並列で実
行されることを特徴とする請求項1記載の方法。 - 【請求項3】前記ステップ(c)における要求が同時に
送られることを特徴とする請求項1記載の方法。 - 【請求項4】資源へのアクセス動作中にプロセッサ・ベ
ースのシステムにおいてクリティカル・パスを削減する
方法で、前記システムが複数の資源並びに1個の命令集
合を備え、前記方法が、 (a)命令集合から命令の第1の部分をデコードするス
テップと、 (b)前記命令がアクセス動作を命じているか否かを決
定するステップと、 (c)ステップ(b)で資源へのアクセスが求められて
いることが確定すれば、アクセス状態に入るために少な
くとも2個以上の資源に要求を送るステップと、 (d)アクセスされるべきアドレスを決定するために命
令の残りの部分をデコードするステップと、 (e)アクセス対象のアドレスをデコードするステップ
で、それが前記の少なくとも2個以上の資源のうちのど
れがアクセスされるべきかを決定するために少なくとも
1個以上の資源によって実行されるデコーディングであ
ること、さらに、 (f)前記のデコードするステップ(e)による結果に
基づいて要求の残りの部分を取り消すステップと、 から成り立つことを特徴とする方法。 - 【請求項5】前記ステップ(c)及び(d)が並列で実
行されることを特徴とする請求項4記載の方法。 - 【請求項6】前記ステップ(c)における要求が同時に
送られることを特徴とする請求項4記載の方法。 - 【請求項7】資源へのアクセス動作中にプロセッサ・ベ
ースのシステムにおいてクリティカル・パスを削減する
ためのシステムで、前記システムが複数の資源並びに1
個の命令集合を備え、さらに (a)命令集合から命令の第1の部分をデコードするた
めの手段と、 (b)前記の命令がアクセス動作を命じているが否かを
決定するための手段と、 (c)前記手段(b)で資源へのアクセスが求められて
いることが確定すれば、アクセス状態に入るために少な
くとも2個以上の資源に要求を送る手段と、 (d)アクセス対象のアドレスを決定するために命令の
残りの部分をデコードする手段と、 (e)アクセス対象のアドレスをデコードする手段で、
それはデコーディングが前記の少なくとも2個以上の資
源のうちのどれがアクセスされるべきか決定するために
少なくとも1個以上の資源によって実行されるデコーデ
ィングであること、さらに、 (f)前記のデコードする手段(e)による結果に基づ
いて要求の残りの部分を取り消すための手段と、 から成り立つことを特徴とするシステム。 - 【請求項8】前記決定するための手段(b)は、前記命
令が読み出し及び書き込み動作の少なくともどちらか1
つを命じているかどうかを決定する手段であり、 前記要求を送る手段(c)は、前記手段(b)において
読み出しや書き込みが求められていることが確定すれ
ば、読み出し/書き込み状態に入るためにMCUとIOUの両
方に要求を送る手段であり、 前記命令の残りの部分をデコードする手段(d)は、読
み出しや書き込み動作によってアクセスされるべきアド
レスを決定するために、命令の残りの部分をデコードす
るための手段であり、 前記アドレスをデコードする手段(e)は、アクセス対
象のアドレスをデコードするための手段であり、それは
アクセスの対象がメモリかI/Oデバイスかを決定するた
めにMCUまたはIOUか少なくともどちらか一方によって実
行されるデコーディングであること、さらに、 前記取り消すための手段(f)は、アドレスをデコード
するための前記手段による結果に基づいてMCUとIOUへの
前記要求の1つを取り消すための手段である ことを特徴とする請求項7記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US846,231 | 1992-03-06 | ||
US07/846,231 US5828861A (en) | 1992-03-06 | 1992-03-06 | System and method for reducing the critical path in memory control unit and input/output control unit operations |
PCT/JP1993/000259 WO1993018451A1 (en) | 1992-03-06 | 1993-03-02 | Elimination of the critical path in memory control unit and input/output control unit operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07505242A JPH07505242A (ja) | 1995-06-08 |
JP3520372B2 true JP3520372B2 (ja) | 2004-04-19 |
Family
ID=25297318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51552393A Expired - Fee Related JP3520372B2 (ja) | 1992-03-06 | 1993-03-02 | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5828861A (ja) |
JP (1) | JP3520372B2 (ja) |
WO (1) | WO1993018451A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199152B1 (en) | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US6360188B1 (en) | 1998-10-27 | 2002-03-19 | Brixx Limited | Time-based modeling |
US6968469B1 (en) | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4701841A (en) * | 1984-07-25 | 1987-10-20 | Digital Equipment Corporation | System for altering data transmission modes |
DE3583283D1 (de) * | 1984-11-02 | 1991-07-25 | Measurex Corp | Speicherbusarchitektur. |
US4757439A (en) * | 1984-11-02 | 1988-07-12 | Measurex Corporation | Memory bus architecture |
GB2188759B (en) * | 1986-04-05 | 1990-09-05 | Burr Brown Ltd | Data processing with op code early comparison |
JPS62243044A (ja) * | 1986-04-16 | 1987-10-23 | Hitachi Ltd | デイスクキヤツシユメモリの制御方式 |
US5003465A (en) * | 1988-06-27 | 1991-03-26 | International Business Machines Corp. | Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device |
-
1992
- 1992-03-06 US US07/846,231 patent/US5828861A/en not_active Expired - Lifetime
-
1993
- 1993-03-02 WO PCT/JP1993/000259 patent/WO1993018451A1/en active Search and Examination
- 1993-03-02 JP JP51552393A patent/JP3520372B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5828861A (en) | 1998-10-27 |
JPH07505242A (ja) | 1995-06-08 |
WO1993018451A1 (en) | 1993-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5353418A (en) | System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread | |
JPH03129433A (ja) | 並列処理装置および並列処理方法 | |
JPH0758466B2 (ja) | ソース命令実行をエミュレートする装置 | |
JPH03282904A (ja) | プログラマブルコントローラ | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
JP3790626B2 (ja) | デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置 | |
WO2005091130A2 (en) | Instruction pipeline | |
JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
JPS60178580A (ja) | 命令制御方式 | |
KR100278136B1 (ko) | 데이타처리장치 및 데이타처리방법 | |
JPH04104350A (ja) | マイクロプロセッサ | |
JP2668987B2 (ja) | データ処理装置 | |
JP2861560B2 (ja) | データ処理装置 | |
JP2636821B2 (ja) | 並列処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP3493768B2 (ja) | データ処理装置 | |
JP3743155B2 (ja) | パイプライン制御型計算機 | |
JP2927281B2 (ja) | 並列処理装置 | |
JPH06332700A (ja) | 情報処理装置 | |
JP2806690B2 (ja) | マイクロプロセッサ | |
JP2785820B2 (ja) | 並列処理装置 | |
JP3532026B2 (ja) | 演算装置 | |
JPH08263290A (ja) | データ処理装置 | |
JPH05241828A (ja) | 命令処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040119 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080213 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090213 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090213 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100213 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110213 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110213 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120213 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 9 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130213 Year of fee payment: 9 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |