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
Application number
JP51552393A
Other languages
English (en)
Other versions
JPH07505242A (ja
Inventor
ヨシユキ ミヤヤマ
チェン−ロン タン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JPH07505242A publication Critical patent/JPH07505242A/ja
Application granted granted Critical
Publication of JP3520372B2 publication Critical patent/JP3520372B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent 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

【発明の詳細な説明】 発明の背景 1. 産業上の利用分野 本発明は一般的にはマイクロプロセッサ・ベースのシ
ステムの分野に関し、より具体的には、少なくとも2つ
以上のサブシステムに読み出し/書き込み(READ/WRIT
E)要求を同時に送り、引き続いて不要な要求を取り消
すためのシステム並びに方法に関する。
2. 関連技術 典型的なコンピュータ・ベースのマイクロプロセッサ
・システムは、3大サブシステムから成り立っている。
それらは、即ち、1個の主記憶、少なくとも1個以上の
内部処理ユニット(IPU)、そして1つの入出力(I/O)
サブシステムである。従来のマイクロプロセッサ・ベー
スのシステムの中には、性能を上げるためにパイプライ
ン方式として知られる方法を使うものがある。パイプラ
イン処理では、命令実行の様々なステップ(例えば、フ
ェッチ、デコード、及び実行)はパイプライン・ステー
ジと呼ばれる独立した単位によって実行される。そのス
テップは、プロセッサが一度に少なくとも2つ以上の命
令を処理できるように、様々なステージで並列で実行さ
れる。
パイプラインのスループットは、どの位の頻度で1つ
の命令がパイプラインから出る(exit)かによって決定
される。パイプライン・ステージは相互につながってい
るから、全てのステージが同時に進行するように準備さ
れていなければならない。しかしながら、現実には、フ
ェッチ、デコード、実行のステージの中には他に比べて
時間が掛かるものもある。そのために、真の並列性が実
行されているとは言えない。1サイクル時間に割り当て
られる最短時間は最長ステップを実行するのに掛かる時
間である。或いは、そのステップを複数のサイクル時間
で実行することもできる。いずれの場合でも、システム
の効率は最長ステップによって妨げられてしまう。
パイプライン方式の詳細については、Hennessy他著の
「Computer Architecture a Quantitative Approach」
(Morgan Kaulmann出版社、1990)を参照のこと。
ソース・プログラムの動作中、IPUは主記憶もしくはI
/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はアイドル状態に戻る。
図面の簡単な説明 本発明については後の特許請求の範囲で具体的に説明
されている。今までに述べたさらにそれ以外の本発明の
優れた点については、添付の図面と共に以下に記述する
説明を参照することによってより理解が深まるであろ
う。
第1図は本発明に基づくシステム・アーキテクチャ10
0の概略ブロック図である。
第2図はシステムのメモリ・マップである。
第3A図は典型的な命令フォーマットを図解したもので
ある。
第3B図は、2個のレジスタに対する1つの演算の結果
を使って1つのアドレスが計算される典型的な命令フォ
ーマットを図解したものである。
第4図はクリティカル・パス上の全ての演算を含む従
来のシステムの状態動作の流れを表す図である。
第5図は本発明の技法に基づく例を示す状態図であ
る。
第6図は本発明によるIOUの取消し手続きのためのタ
イミング図である。
第7図は本発明の技法を示す状態図である。
発明の詳細な説明 環境 第1図は本発明が適用できるアーキテクチャを代表す
る、マイクロプロセッサのアーキテクチャ100の高レベ
ル図を示したものである。第1図において、本発明の好
適な実施例に基づいて、100と指定されたマイクロプロ
セッサ・システムのアーキテクチャが提示されている。
システム・アーキテクチャ100は、内部プロセッサ・ユ
ニット(IPU)105、メモリ制御ユニット(MCU)120、I/
O制御ユニット(IOU)130、主記憶150、及び外部I/Oデ
バイス160から成る。
主記憶150は、好適な実施例においては、32ビット幅
のメモリ・バス140によってMCU120に接続されている。
同様に、I/Oデバイス160は、好適な実施例においては、
32ビット幅の外部I/Oバス135によってIOU130に接続され
ている。
MCU120はIPU105と主記憶150間の読み出し書き込み動
作を制御する回路である。本発明に基づく好適な実施例
におけるMCU120は、スイッチ・ネットワーク121及びポ
ート122とから成っている。本明細書に記載の例におい
てはポート122は1個だけしか示されていないが、本発
明に基づく好適な実施例は複数のポート122を備えてい
る。
スイッチ・ネットワーク121はMCU120とIPU105間の通
信インタフェースを可能にする。スイッチ・ネットワー
ク121はまた、ポート122の要求を調整する手段としても
使われる。ポート122(単数または複数)は、主記憶150
にデータを送り、且つそこからデータを受け取る役目を
果たす。
スイッチ・ネットワーク121の機能は、IPU105及びIOU
130からの様々な命令並びにデータ要求を受け取ること
である。IPU105及びIOU130はメモリ要求者と呼ばれるこ
とがある。要求を受け取り調整した後に、要求は対応す
るメモリ・ポート122に渡される。対応するポート122の
決定は命令アドレスの解釈によってなされる。ポート12
2(単数または複数)は次に必要なタイミング信号を生
成し、外部メモリ150のアドレス指定された部分にデー
タを送るか、またはそこからデータを受け取るかする。
IOU130はIPU105とI/Oデバイス160間の読み出し書き込
み動作を制御する回路である。本発明に基づく好適な実
施例におけるIOU130は、スイッチ・ネットワーク131及
びポート132とから成っている。本明細書に記載の例に
おいてはポート132は1個だけしか示されていないが、
本発明に基づく好適な実施例は複数のポート132を備え
ている。MPUの場合と同様に、IOU130のスイッチ・ネッ
トワーク131はIOU130とIPU105間の通信インタフェース
を可能にする。スイッチ・ネットワーク131はまた、IPU
105とポート132の要求を調整する手段としても使われ
る。ポート132(単数または複数)は、I/Oデバイス160
にデータを送り、且つそこからデータを受け取る役目を
果たす。
第2図はシステム・メモリの編成を示したものであ
る。好適な実施例において、メモリ編成は2領域に分割
されている。I/Oバス領域210とメモリ・バス領域220が
ある。この編成の結果、システムは主記憶150とI/Oデバ
イス160の両方に対する読み出し書き込み動作を要求す
ることができるようになる。読み出しまたは書き込みの
動作を含む命令は各々、システムのメモリ・マップ200
上に写像可能なアドレスを含むことになる。
本発明に基づく好適な実施例において、命令処理は3
ステージのパイプラインに分割されている。その3ステ
ージとは、フェッチ、デコード、並びに実行である。最
初、命令はIPU105によってメモリからフェッチされる。
その次に、命令は指示された機能(例えば、加算、減
算、格納)を確定するためにデコードされる。3番目且
つ最後に、そのデコードされた命令はその機能の通りに
実行される。
命令をコード化している時、レジスタ数及びアドレス
指定モード数は共に命令サイズに大きな影響を及ぼす。
これはアドレス指定モードのフィールドとレジスタ・フ
ィールドが1つの命令の中で何度も現われることがある
からである。事実、ほとんどの命令が、演算コードの指
定よりもアドレス指定モードやレジスタ・フィールドの
コード化に余計にビットをとられている。このように、
アドレス指定モードとレジスタ・フィールドが命令ビッ
トの大きな割合を占めるため、それらのコード化はいか
に簡単に命令のデコードを実現できるかに大きく影響し
てくる。
命令は幾つかのセクションに分割されることが多い。
第3A図は命令の一例とその構成要素を示すものである。
第3A図において、命令300はOPCODE310を含んでいる。OP
CODE310は、一旦デコードされれば、どのオペレーショ
ンを実行すべきかプロセッサに伝える。オペレーション
にはADD(加算)、COMPARE(比較)、CLEAR(クリア)
などの算術演算、BRANCH(分岐)やJUMP(飛び越し)な
どの制御動作、RETURN FROM INTERRUPT(割り込みから
の戻り)などのシステム動作、並びにMOVE(移動)やPU
SH(プッシュ)などのデータ転送動作などがある。
レジスタやメモリさらにI/Oデバイスのそれぞれのア
ドレスは、必要に応じて、プロセッサにどの記憶場所に
対してオペレーションを行なうべきか伝えるために、命
令の中に包含されている。これらは記憶場所320、330で
命令にコード化される。例えば、OPCODE310がADDの演算
を行なうようにプロセッサに命令すれば、プロセッサ
は、加算対象の値を含むアドレスを決定するために、記
憶場所320と330を見に行きそこに入っている情報をデコ
ードする(直接アドレス指定の場合)。
命令300の実際のフォーマットはシステム・アーキテ
クチャによって異なる。どうすれば本発明に基づく技法
が他の命令フォーマットに適用できるかは当業者には明
らかになるであろう。
第3B図はもう少し複雑なアーキテクチャ用の命令フォ
ーマットを示したものである。第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図は従来のシステムに関する上記のロード/格納
のシナリオに基づくタイミング図並びに状態図を示すも
のである。下記の動作時間は例として記載するものであ
る。勿論、他のマシンでは命令処理との関連で演算時間
は異なってくる。第4図において、第1クロック期間T0
T1で、ロード/格納命令がフェッチされる。第2クロッ
ク期間T2/T3で、命令がデコードされる。即ちOPCODE310
がデコードされ、その後Raddress360、Rindex340、さら
にRbase350がデコードされる。Rindex340及びRbase350
はT3のクロック・フェーズでデコードされる。この処理
はおよそ8ナノ秒かかり、ブロック410で示されてい
る。この処理が完了すると、アドレス計算が行われる。
この計算に要する時間はブロック420に示すように7ナ
ノ秒である。アドレス計算実行後に、アドレスはMCU120
もしくはIOU130によってデコードされなければならな
い。ブロック430で示した、このデコーディングは4か
ら5ナノ秒かかる。従って、命令のデコーディングにか
かる時間は合計で20ナノ秒である。
アドレスがブロック430でデコードされた後、MCU120
またはIOU130のいずれか対応する制御ユニットは、次の
スレーブ状態より前に読み出し/書き込み状態に入って
いなければならない。第4図において、T4、T6、T8など
はスレーブ状態、即ち、メモリやI/Oの読み出し/書き
込みが起きる唯一の状態である。命令とアドレスのデコ
ーディング動作がその前のT3でクロック時間の20ナノ秒
を消費し、且つ我々は今度のスレーブ・フェーズT4で読
み出し/書き込みが起きるようにしたいため、クロック
・フェーズの時間は20ナノ秒よりも長くなければならな
い。20ナノ秒を越えてさらに要する時間はMCU120または
IOU130の対応する制御ユニットが読み出し/書き込み状
態に遷移するのにかかる時間である。そのフェーズの時
間が足りなければ、MCU120またはIOU130はT4のクロック
・フェーズに間に合うように読み出し/書き込み状態に
入ることができず、クリティカル・パスが存在し、さら
にシステムは読み出し/書き込み動作を実行するために
T6のクロック・フェーズになるまで待たなければならな
い。しかるに、従来のシステムの欠陥は、命令デコード
動作及びメモリまたはI/Oデバイスの読み出し/書き込
み状態への遷移が逐次起こり、且つ高速クロック・レー
トではクリティカル・パスを形成することである。その
結果、クロック・サイクル時間の増加(クロック・レー
トの低下)を招いたり、その間読み出し/書き込み動作
を延期しなければならない「時間の無駄使い」のクロッ
ク期間に陥ることになる。この後者の結果は、命令はさ
らに1クロック・サイクル待たないと、即ち次のパイプ
ラインまで、実行完了しないということである。
発明 本発明では、アドレス・デコード動作に先行してMCU1
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の発生以前に既に読み出し/書き込
み状態に入っているからである。
宛先がデコードされ、MCU120とIOU130のどちらが必要
なのかが分かれば、IOUの取消し信号560が生成され、従
って不要の制御ユニットをアイドル状態に戻す。
再び第3B並びに5図において、OPCODE310のデコード
は、ブロック510で示すように、T2、T3のクロック期間
の初期に発生する。このデコードが完了し次第直ちに、
IPUの読み出し/書き込み要求520がMCU120とIOU130に送
られる。要求520はMCU120を読み出し/書き込み状態530
Aに、IOU130を読み出し/書き込み状態530Bにする。読
み出し/書き込み状態530は共にT4のスレーブ・クロッ
ク・フェーズ中の活用に間に合うように既に発生してい
る。
読み出し書き込み要求と同時期に、命令の残りの部分
が、対応するアドレスを確定するためにデコードされ
る。Rindex340並びにRbase350のデコーディングはブロ
ック512に示す通りである。アクセス対象のアドレスの
計算、即ちRindex340のRbase350への加算はブロック514
で示す通りである。
制御ユニットMCU120またはIOU130の一方が読み出し/
書き込み動作を実行し、他方はしない。ブロック550に
示すように、アドレス・デコードが起きるまでどちらが
どちらなのか不明である。アドレス・デコードが発生し
さえすれば、IOUの取消し信号560が生成され、従って読
み出し/書き込み動作を行っていないユニットを取り消
す。このユニットはアイドル状態540に戻る。
第5図に示した例において、アクセス対象のアドレス
は、たまたまメモリ内に存在している。従って、そのア
ドレスがデコードされると、I/Oデバイスはアクセスさ
れるべきでないことが分かる。次に取消し信号560が生
成され、IOU130はアイドル状態540Bに戻る。MCU120は読
み出し/書き込み状態530Aのままで、メモリ・アクセス
が発生する。
好適な実施例において、MCU120はIPU105によって計算
されたアドレスをデコードする。アドレスがデコードさ
れ、アドレスがメモリ150とI/O160のどちらに宛てられ
ているかが判明すれば、MCU120は自分の読み出し/書き
込み要求を取り消しアイドル状態540Aに戻るか、もしく
は取消し信号をIOU130に送るかのいずれかを行なう。こ
のアドレス・デコードはMCU120またはIOU130のいずれ
か、或いはその両方によって実行されることがあるとい
うことは当業者には明確であろう。
本発明に基づく技法のタイミング図は第6図に示す通
りである。第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図はMCU120とIOU130の状態を示すものである。第
7及び2図において、取消し論理ブロックを生成するた
めに使われる状態マシンが示されている。取消し論理は
MCU120にもIOU130にもある。T1でIOU105からの読み出し
/書き込み要求信号を受信すると、その2つの状態マシ
ンは同時に動作を開始する。要求の宛先(即ち、現在デ
コード進行中の命令に示されるメモリ内のアドレス)の
デコード後、その動作を取り消すために、MCU120または
IOU130のいずれかが、T2でスイッチ125もしくはスイッ
チ135からそれぞれ取消し信号を生成する。要求が取り
消されれば、取り消された制御ユニットはアイドル状態
に戻る。要求が取り消されなければ、制御ユニットは対
応するメモリの記憶場所にアクセスし始める。
取消し信号は命令の第31番目のビットを検査すること
によってトリガされる。そのビットがゼロであれば要求
は主記憶に対するもので、そのビットが1ならその要求
はI/Oデバイスに対するものである。第2図に示すよう
に、アドレスが0000_0000と03FF_FFFFの間にあれば、そ
のアドレスはメモリにアクセスする。しかしながら、ア
ドレスがFF80_FFFFとFFFF_FFFFの間にあれば、I/Oにア
クセスする。好適に実施例において、他の領域は全て予
約されている。本発明において他に多数のメモリ・マッ
プが使用できるということが当業者には明確であろう。
再び第2図において、好適な実施例で、MCU120がアド
レスをデコードすると、そのアドレスが予約領域230の
1ケ所に宛てられているかどうかも判定される。予約領
域230の1ケ所に宛てられていれば、IOU130及びMCU120
に対する読み出し/書き込みは共に取り消される。
この発明を実行する際には、トレードオフがある。MC
U120及びIOU130の片方が読み出し/書き込みモードにな
るように要求される時でも、MCU120及びIOU130は共に、
読み出し/書き込みモードになる消費電力が増加する。
高速クロック・レートにすることによってシステムの性
能を上げれば、ほとんどのアプリケーションでこの消費
電力の増加は相殺される。
結論 従って、本発明はシステムのクロック・レートを速め
ることができる技法を提供するものである。OPCODEがデ
コードされ、読み出しもしくは書き込みの動作が呼び出
されることを示していれば、直ちに読み出し/書き込み
状態に遷移するようにメモリ及びI/Oユニットに命令を
送ることによってクロック・レートは速められ、かくし
てクリティカル・パスから状態遷移時間が取り除かれ
る。
本発明について好適な実施例を挙げて具体的に説明を
してきたが、本発明の精神並びに適用範囲から外れるこ
となく形状及び詳細において様々な変更が可能であるこ
とが当業者には理解されることであろう。
例を挙げれば、本発明に基づく技法は本明細書に記載
のMCUやIOU以外の資源デバイスを使ってシステムで実行
することが可能であり、且つ本発明による技法は多数の
資源デバイスを包含するシステムに拡張することができ
る。
フロントページの続き (56)参考文献 特開 昭63−245547(JP,A) 特開 昭61−166647(JP,A) 特開 昭56−94451(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/38 G06F 12/00

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】読み出し/書き込み動作中にプロセッサ・
    ベースのシステムにおいてクリティカル・パスを削減す
    る方法で、前記システムがメモリ制御ユニット(MC
    U)、入出力制御ユニット(IOU)、並びに命令集合をそ
    れぞれ1個ずつ備え、前記方法が、 (a)命令集合から命令の第1の部分をデコードするス
    テップと、 (b)前記の命令が読み出しと書き込みのうちの少なく
    とも1つを命じているか否かを決定するステップと、 (c)ステップ(b)で読み出しや書き込みを命じてい
    ることが確定されれば、読み出し/書き込み状態に入る
    ために要求をMCUとIOUの両方に送るステップと、 (d)読み出し/書き込み動作によってアクセスされる
    べきアドレスを決定するために命令の残りの部分をデコ
    ードするステップと、 (e)アクセス対象のアドレスをデコードするステップ
    で、それは、そのアクセスの対象がメモリかI/Oデバイ
    スかを確定するためにMCUかIOUの少なくともどちらか一
    方によって実行されるデコーディングであること、さら
    に、 (f)前記のデコードするステップ(e)による結果に
    基づいてMCUやIOUに対する前記の要求の一つを取り消す
    ステップと、 から成り立つことを特徴とする方法。
  2. 【請求項2】前記ステップ(c)及び(d)が並列で実
    行されることを特徴とする請求項1記載の方法。
  3. 【請求項3】前記ステップ(c)における要求が同時に
    送られることを特徴とする請求項1記載の方法。
  4. 【請求項4】資源へのアクセス動作中にプロセッサ・ベ
    ースのシステムにおいてクリティカル・パスを削減する
    方法で、前記システムが複数の資源並びに1個の命令集
    合を備え、前記方法が、 (a)命令集合から命令の第1の部分をデコードするス
    テップと、 (b)前記命令がアクセス動作を命じているか否かを決
    定するステップと、 (c)ステップ(b)で資源へのアクセスが求められて
    いることが確定すれば、アクセス状態に入るために少な
    くとも2個以上の資源に要求を送るステップと、 (d)アクセスされるべきアドレスを決定するために命
    令の残りの部分をデコードするステップと、 (e)アクセス対象のアドレスをデコードするステップ
    で、それが前記の少なくとも2個以上の資源のうちのど
    れがアクセスされるべきかを決定するために少なくとも
    1個以上の資源によって実行されるデコーディングであ
    ること、さらに、 (f)前記のデコードするステップ(e)による結果に
    基づいて要求の残りの部分を取り消すステップと、 から成り立つことを特徴とする方法。
  5. 【請求項5】前記ステップ(c)及び(d)が並列で実
    行されることを特徴とする請求項4記載の方法。
  6. 【請求項6】前記ステップ(c)における要求が同時に
    送られることを特徴とする請求項4記載の方法。
  7. 【請求項7】資源へのアクセス動作中にプロセッサ・ベ
    ースのシステムにおいてクリティカル・パスを削減する
    ためのシステムで、前記システムが複数の資源並びに1
    個の命令集合を備え、さらに (a)命令集合から命令の第1の部分をデコードするた
    めの手段と、 (b)前記の命令がアクセス動作を命じているが否かを
    決定するための手段と、 (c)前記手段(b)で資源へのアクセスが求められて
    いることが確定すれば、アクセス状態に入るために少な
    くとも2個以上の資源に要求を送る手段と、 (d)アクセス対象のアドレスを決定するために命令の
    残りの部分をデコードする手段と、 (e)アクセス対象のアドレスをデコードする手段で、
    それはデコーディングが前記の少なくとも2個以上の資
    源のうちのどれがアクセスされるべきか決定するために
    少なくとも1個以上の資源によって実行されるデコーデ
    ィングであること、さらに、 (f)前記のデコードする手段(e)による結果に基づ
    いて要求の残りの部分を取り消すための手段と、 から成り立つことを特徴とするシステム。
  8. 【請求項8】前記決定するための手段(b)は、前記命
    令が読み出し及び書き込み動作の少なくともどちらか1
    つを命じているかどうかを決定する手段であり、 前記要求を送る手段(c)は、前記手段(b)において
    読み出しや書き込みが求められていることが確定すれ
    ば、読み出し/書き込み状態に入るためにMCUとIOUの両
    方に要求を送る手段であり、 前記命令の残りの部分をデコードする手段(d)は、読
    み出しや書き込み動作によってアクセスされるべきアド
    レスを決定するために、命令の残りの部分をデコードす
    るための手段であり、 前記アドレスをデコードする手段(e)は、アクセス対
    象のアドレスをデコードするための手段であり、それは
    アクセスの対象がメモリかI/Oデバイスかを決定するた
    めにMCUまたはIOUか少なくともどちらか一方によって実
    行されるデコーディングであること、さらに、 前記取り消すための手段(f)は、アドレスをデコード
    するための前記手段による結果に基づいてMCUとIOUへの
    前記要求の1つを取り消すための手段である ことを特徴とする請求項7記載のシステム。
JP51552393A 1992-03-06 1993-03-02 メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 Expired - Fee Related JP3520372B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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