JPH07505242A - メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 - Google Patents

メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除

Info

Publication number
JPH07505242A
JPH07505242A JP5515523A JP51552393A JPH07505242A JP H07505242 A JPH07505242 A JP H07505242A JP 5515523 A JP5515523 A JP 5515523A JP 51552393 A JP51552393 A JP 51552393A JP H07505242 A JPH07505242 A JP H07505242A
Authority
JP
Japan
Prior art keywords
decoding
instruction
address
read
mcu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5515523A
Other languages
English (en)
Other versions
JP3520372B2 (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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の名称 メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パ スの削除(Elimination of the Cr1tical Pat h in Memory Control Unitand Inpurlou tput Control Unit 0perations)発明の背景 1、産業上の利用分野 本発明は一般的にはマイクロプロセッサ・ベースのシステムの分野に関し、より 具体的には、少なくとも2つ以上のサブシステムに読み出し/書き込み(REA D/WRITE)要求を同時に送り、引き続いて不要な要求を取り消すためのシ ステム並びに方法に関する。
2、関連技術 典型的なコンピュータ・ベースのマイクロプロセッサ・システムは、3大サブシ ステムから成り立っている。
それらは、即ち、1個の主記憶、少なくとも1個以上の内部処理ユニット(IP U)、そして1つの入出力(Ilo)サブシステムである。従来のマイクロプロ セッサ・ベースのシステムの中には、性能を上げるためにバイブライン方式とし て知られる方法を使うものがある。バイブライン処理では、命令実行の様々なス テップ(例えば、フェッチ、デコード、及び実行)はバイブライン・ステージと 呼ばれる独立した単位によって実行される。そのステップは、プロセッサが一度 に少なくとも2つ以上の命令を処理できるように、様々なステージで並列で実行 される。
バイブラインのスループットは、どの位の頻度で1つの命令がバイブラインから 出る(exit)かによって決定される。パイプライン・ステージは相互につな がっているから、全てのステージが同時に進行するように準備されていなければ ならない。しかしながら、現実には、フェッチ、デコード、実行のステージの中 には他に比べて時間が掛かるものもある。そのために、真の並列性が実行されて いるとは言えない。lサイクル時間に割り当てられる最短時間は最長ステップを 実行するのに掛かる時間である。或いは、そのステップを複数のサイクル時間で 実行することもできる。いずれの場合でも、システムの効率は最長ステップによ って妨げられてしまう。
バイブライン方式の詳細については、He1ncssy他著のr Comput er Architecture a Quantitative Appro achJ (Morgan Kau1mann出版社、1990)を参照のこと 。
ソース・プログラムの動作中、IPUは主記憶もしくはI10100データにア クセスすることが必要になる。概して、IPUは、プロセッサのサイクル時間が 数十ナノ秒ノ、マイクロプロセッサ・ベースのシステムで最も速い要素である。
その一方、主記憶やI10デバイスのサイクル時間は数百ナノ秒である。従って 、マイクロプロセッサの性能を制限する要因の一つはメモリ・アクセスの速度と いうことになる。
従来のシステムにおいては、命令デコ”−ドの初期の段階から、プロセッサはI loまたはメモリへのアクセスが起きるかどうかわかっている。しかしながら、 命令が残らず最後まで完全にデコードされるまで、アクセス対象が主記憶なのか かそれともIloなのかシステムは決定できない。従来のシステムでは、読み出 し/書き込み状態に遷移するためのコマンドをメモリ制御ユニット(MCU)ま たはI10制御ユニット(IOU)に送る前に、0PCODE (演算コード) 及びレジスタ・アドレス部分を含む命令全体をデコードする。言い換えれば、従 来のシステムはこうした処理を逐次に実行し、命令の完全なデコードのステップ と、MCUまたはIOUを読み出し/書き込み状態に遷移するステップは「クリ ティカル・バス」上にある。その結果、従来のシステムは、メモリやI10デバ イスに実際にアクセスするという時間のかかるステップに入る前に、命令を最後 までデコードし終わるのを待って貴重な時間を浪費しているのである。
典型的なりロッキング動作において、システム・クロックにはスレーブ状態とし て知られる状態がある。
MCUやIOUなどのスレーブ・デバイスが、読み出し/書き込みなどの動作を 実行するためにバスへのアクセスが許可されるのは、このスレーブ状態の間だけ であ石。従って、クロックのサイクル時間は、アクセス対象のデバイスが今度の スレーブ・サイクルに間に合うように読み出し/書き込み状態に入れるように、 クリティカル・バス上の全ての処理が実行されるのに十分な長さでなければなら ない。クリティカル・バス上の処理が全てその時間内では実行しきれないように クロックのサイクル時間が短縮されていれば、読み出し/書き込み動作は今度の スレーブ・サイクルに間に合わず、その次のスレーブ・サイクルまでさらにlク ロック期間待たなければならない。
従って、必要なのは、アクセス対象の実際のアドレスがデコードされるのを待た ずに、0PCODEがデコードされ次第プロセッサが直ちにメモリに対し読み出 しまたは書き込みの要求を出せるようにするシステム並びに方法である。こうす ることによって、読み出し/書き込み要求をクリティカル・バスからパラレル・ バスに移すことによってクリティカル・バスの長さが短縮される。この方法で、 システムのクロック・レートが速まり、メモリ及びI10サブシステムの実効レ イテンシが短縮される。
発明の概要 本発明はプロセッサ・ベースのシステムにおけるクリティカル・バスを削除する ためのシステム並びに方法を提供するものである。本発明に基づく技法において は、命令の演算コードがデコードされ、その演算コードがシステム・メモリまた はI10デバイスにアクセスを命じる動作を呼び出すと、読み出し・書き込み要 求が直ちにプロセッサ・ベースのシステムのメモリ制御ユニットMCUと入出力 制御ユニットIOUの両方に送られる。プロセッサが命令の残りの部分をデコー ドする前にこの読み出し・書き込み要求は送られるため、現在のクロックが終わ る前にMCUとIOUがアイドル状態から読み出し・書き込み状態に遷移するこ とが可能になる。
この技法によって、サイクル時間は、プロセッサが現在の命令をデコードするの にかかる合計時間のみに抑えられるようになる。さらに時間を追加することなく 現在のクロック・サイクル時間内で、MCU並びにIOUは読み出し・書き込み 状態に遷移できる。それは何故ならば、MCUとIOUは既にその状君に入って いるからである。
命令が最後まで残らずデコードされ、メモリ・アクセスまたはI10アクセス用 のアドレスが計算され、さらにMCUまたはIOUの宛先がデコードされたら、 取消し処理が起きる。取消し処理では、MCUまたはIOUのいずれかが読み出 し・書き込み状態からアイドル状態に戻される。
宛先のデコードでメモリがアクセス対象であったことが明らかになると、IOU はアイドル状態に戻る。一方、宛先のデコードでI10デバイスがアクセス対象 であったことが明らかになれば、MCUはアイドル状態に戻る。
図面の簡単な説明 明されている。今までに述べたさらにそれ以外の本発明の優れた点については、 添付の図面と共に以下に記述する説明を参照することによってより理解が深まる であろう。
第1図は本発明に基づくシステム・アーキテクチャ100の概略ブロック図であ る。
第2図はシステムのメモリ・マツプである。
第3A図は典型的な命令フォーマットを図解したものである。
第3B図は、2個のレジスタに対する1つの演算の結果を使って1つのアドレス が計算される典型的な命令フォーマットを図解したものである。
第4図はクリティカル・バス上の全ての演算を含む従来のシステムの状態動作の 流れを表す図である。
第5図は本発明の技法に基づく例を示す状態図である。
第6図は本発明によるIOUの取消し手続きのためのタイミング図である。
第7図は本発明の技法を示す状態図である。
のB細な1 1支 第1図は本発明が適用できるアーキテクチャを代表する、マイクロプロセッサの アーキテクチャ100の高レベル図を示したものである。第1図において、本発 明の好適な実施例に基づいて、100と指定されたマイクロプロセッサ・システ ムのアーキテクチャが提示されている。システム・アーキテクチャ100は、内 部プロセッサ・ユニット(IPU)105、メモリ制御ユニット(MCU)12 0、I10制御ユニット(IOU)130、主記憶150、及び外部I10デバ イス160から成る。
主記憶150は、好適な実施例においては、32ビツト輻のメモリ・バス+40 によってMCU120に接続されている。同様に、I10デバイス+60は、好 適な実施例においては、32ビツト輻の外部I10パス135によってl0U1 30に接続されている。
MCU 120は夏PU105と主記憶150間の読み出し書き込み動作を制御 する回路である。本発明に基づく好適な実施例におけるMCU 120は、スイ ッチ・ネットワーク121及びボート122とから成っている。本明細書に記載 の例においてはボート122は1個だけしか示されていないが、本発明に基づく 好適な実施例は複数のボー)122を備えている。
スイッチ・ネットワーク121はMCU 120とIPU105間の通信インタ フェースを可能にする。スイッチ・ネットワーク121はまた、ボート122の 要求を調整する手段としても使われる。ボート122(単数または複数)は、主 記憶150にデータを送り、且つそこからデータを受け取る役目を果たす。
スイッチ・ネットワーク121の機能は、IPU105及び10U 130から の様々な命令並びにデータ要求を受け取ることである。IPU105及びrOU  130はメモリ要求者と呼ばれることがある。要求を受け取り調整した後に、 要求は対応するメモリ・ボート122に渡される。対応するボー)122の決定 は命令アドレスの解釈によってなされる。
ボート122(単数または複数)は次に必要なタイミング信号を生成し、外部メ モリ150のアドレス指定された部分にデータを送るか、またはそこからデータ を受け取るかする。
10U 130はIPU105とI10デバイス160間の読み出し書き込み動 作を制御する回路である。本発明に基づく好適な実施例におけるl0U130は 、スイッチ・ネットワーク131及びボート132とから成っている。本明゛細 書に記載の例においてはボート132は1個だけしか示さ4れていないが、本発 明に基づく好適な実施例は複数のボー)132を備えている。MPUの場合と同 様に、IOU 130’のスイッチ・ネットワーク131はl0U130とIP U105間の、通信インタフェースを可能にする。スイッチ・ネットワーク13 1はまた、IPU 105とボート132の要求を調整する手段としても使われ る。ボート132(単数または複数)は、I10デバイス160にデータを送り 、且つそこからデータを受け取る役目を果たす。
第2図はシステム・メモリの編成を示したものである。
好適な実施例において、メモリ編成は2領域に分割されている。I10バス領域 210とメモリ・バス領域220がある。
この編成の結果、システムは主記憶150とI10デバイス160の両方に対す る読み出し書き込み動作を要求することができるようになる。読み出しまたは書 き込みの動作を含む命令は各々、システムのメモリ・マツプ200上に写像可能 なアドレスを含むことになる。
本発明に基づく好適な実施例において、命令処理は3ステージのパイプラインに 分割されている。その3ステージとは、フェッチ、デコード、並びに実行である 。最初、命令はIPU 105によってメモリからフェッチされる。その次に、 命令は指示された機能(例えば、加算、減算、格納)を確定するためにデコード される。3番目且つ最後に、そのデコードされた命令はその機能の通りに実行さ れる。
命令をコード化している時、レジスタ数及びアドレス指定モード数は共に命令サ イズに大きな影響を及ぼす。
これはアドレス指定モードのフィールドとレジスタ・フィールドが1つの命令の 中で何度も現われることがあるからである。事実、はとんどの命令が、演算コー ドの指定よりもアドレス指定モードやレジスタ・フィールドのコード化に余計に ビットをとられている。このよう゛に、アドレス指定モードとレジスタ・フィー ルドが命令j−ビットの大きな割合を占めるため、それらのコード化はいかに簡 単に命令のデコードを実現できるかに大きく影響してくる。
命令は幾つかのセクションに分割されることが多い。
第3A図は命令の一例とその溝成要素を示すものである。
第3A図において、命令300は0PCODE310を含んでいる。
0PCODE310は、一旦デコードされれば、どのオペレーションを実行すべ きかプロセッサに伝える。オペレーションにはADD (加算) 、COMPA RE (比較) 、CLEAR(クリア)などの算術演算、BRANCH(分岐 )′やJUMP(飛び越し)などの制御動作、RETUR下FROMINTER RUPT (割り込みからの戻り)などのシステム動作、並びにMOVB (移 動)やPUSH(ブツシュ7)などのデータ転送動作などがある。
レジスタやメモリさらにI10デバイスのそれ・ぞれのアドレスは、必要に応じ て、プロセッサにどの記憶場所に対してオペレーションを行なうべきか伝えるた へめに、命令の中に包含されている。これらは記憶場所3・20.330で命令 にコード化される。例えば、0PCODE310がADDの演算を行なうように プロセッサに命令すれば、プロセッサは、加算対象の値を含むアドレスを決定す るために、記憶場所320と330を見に行きそこに人っている情報をデコード する(直接アドレス指定の場合)。
命令300の実際のフォーマットはシステム・アーキテクチャによって異なる。
どうすれば本発明に基づく技法が他の命令フォーマットに適用できるかは当業者 には明らかになるであろう。
第3B図はもう少し複雑なアーキテクチャ用の命令フォーマットを示したもので ある。第3B図における0PCODE310は、第3A図に示したフォーマット において説明したのと同じオペレーションを行なうように、プロセッサに命令す ることができる。しかしながら、ここでは、アドレスの到着が異なる。このフォ ーマットでは、最初のアドレスは2つのアドレスをデコードし演算することによ って計算される。最初のアドレスを計算するために、プロセッサはRindex 340とRbase350をデコードする。実際のアドレスを決定するためにこ れらの記憶場所における値に対し演算が行なわれる(この場合、合計されるン。
このタイプのアーキテクチャは多種のプログラミングに有効である。2番目のア ドレスを計算する必要がある場合、記憶場所Raddress360における値 がデコードされるだけである。
パイプラインの命令デコード部分は幾つかの段階に分解される。命令のそれぞれ 異なった部分、即ち、0PCODE310SRindex340、Rbase3 50、Raddress360は様々な間隔でデコードすることができる。従っ て、プロセッサは、命令の残りの部分に先行して0PCODE310を先にデコ ードすることができる。一旦命令の0PCODE310部分がデコードされれば 、プロセッサは命令がどんな動作を命じてくるかわかる。
従って、例えば、命令は加算または比較であるとデコードされた0PCODE3 10がIPU105に伝えれば、プロセッサは演算対象の値に他の記憶場所から アクセスしなければならないことを知る。第1図と第3B図において、従来のシ ステム用の典型的なシナリオについて説明している。命令はフェッチされ、0P CODE310がデコードされる。0PCODE310がプロセッサにロード/ 格納動作を実行するように命令すれば、IPU105は格納対象の値のある記憶 場所を確定するためにRaddress360をデコードする。IPU105は 次にRindex340とRbase350をデコードする。一旦デコードされ れば、Rindex340とRbase350はデータの最終アドレスを計算す るために加算器に送られる。その次に、この最終アドレスはデコードされるため MCU 120またはIOU 130に送られる。デコードされたら、MCU1 20またはIOU 130のいずれか読み出し/書き込みを実行すべき方が、読 み出し/書き込み状態に遷移される。しかしながら、こうした処理を全て逐次に 実行し、しかも今度のスレーブ・クロック・フェーズに間に合うようにそれに対 応するユニットを読み出し書き込み状態に遷移させるには、現在のクロック・) ニーズ内では時間的に十分とはいかない場合がある。スレーブ・クロック・フェ ーズはその期間中読み出し書き込み動作が発生しうる唯一のフェーズであるから 、最初のスレーブ・フェーズに間に合わなければ、そのシステムは次のスレーブ ・フェーズまで1クロック期間まるまる待たなければならない。従って、これら の処理は全て逐次に実行され、それも高速クロック・レートでは直列の組み合わ せ時間はすぐ次に来るスレーブ・フェーズに間に合わない原因となるから、クリ ティカル・バスが存在しているということになる。或いは、バス上の全てのフェ ーズが完了するように、システム・クロックのサイクル時間を増やさなければな らない。しかしながら、この代替案は、処理を遅くすることになるから、望まし い問題解決法とは言えない。
第4図は従来のシステムに関する上記のロード/格納のシナリオに基づくタイミ ング図並びに状態図を示すものである。下記の動作時間は例として記載するもの である。勿論、他のマシンでは命令処理との関連で演算時間は異なってくる。第 4図において、第1クロック期間TOTIで、ロード/格納命令がフェッチされ る。第2クロック期間T2/T3で、命令がデコードされる。即ち0PCODE 310がデコードされ、その後Raddress360、Rindex340. さらにRbase350がデコードされる。
Rindex340及びRbase350はT3のクロック・フェーズでデコー ドされる。この処理はおよそ8ナノ秒かかり、ブロック410で示されている。
この処理が完了すると、アドレス計算が行われる。この計算に要する時間はブロ ック420に示すように7ナノ秒である。アドレス計算実行後に、アドレスはM CU 120もしくはl0U130によってデコードされなければならない。ブ ロック430で示した、このデコーディングは4から5ナノ秒かかる。従って、 命令のデコーディングにかかる時間は合計で20ナノ秒である。
アドレスがブロック430でデコードされた後、MCU 120またはl0U1 30のいずれか対応する制御ユニットは、次のスレーブ状態より前に読み出し/ 書き込み状態に入っていなければならない。第4図において、T4、T6、T8 などはスレーブ状態、即ち、メモリやIloの読み出し/書き込みが起きる唯一 の状態である。命令とアドレスのデコーディング動作がその前のT3でクロック 時間の20ナノ秒を消費し、且つ我々は今度のスレーブ・フェーズT4で読み出 し/書き込みが起きるようにしたいため、クロック・フェーズの時間は20ナノ 秒よりも長くなければならない。20ナノ秒を越えてさらに要する時間はMCU  120またはl0U130の対応する制御ユニットが読み出し/書き込み状態 に遷移するのにかかる時間である。
そのフェーズの時間が足りなければ、MCU120または10U130はT4の クロック・フェーズに間に合うように読み出し/書き込み状態に入ることができ ず、クリティカル・バスが存在し、さらにシステムは読み出し/書き込み動作を 実行するためにT6のクロック・フェーズになるまで待たなければならない。し かるに、従来のシステムの欠陥は、命令デコード動作及びメモリまたはI10デ バイスの読み出し/i!Fき込み状態への遷移が逐次起こり、且つ高速クロ7り ・レートではクリティカル・バスを形成することである。その結果、クロック・ サイクル時間の増加(クロック・レートの低下)を紹いたり、その間読み出し/ 書き込み動作を延期しなければならない「時間の無駄使い」のクロック期間に陥 ることになる。この後者の結果は、命令はさらにlクロック・サイクル待たない と、即ち次のバイブラインまで、実行完了しないということである。
本発明では、アドレス・デコード動作に先行してMCU 120とl0UI30 を読み出し/書き込み状態に遷移することによって、このクリティカル・バスの 欠陥を削除する。言い換えれば、アイドル状態から読み出し/書き込み状態への 遷移のステップがクリティカル・バスから取り除かれるということである。第5 図は本発明に基づく動作を図解したタイミング及び状態の図である。第3B並び に5図において、デコードされた0PCODE310がメモリまたはI10デバ イスに対する読み出し/書き込み動作が起きなければならないことを示していれ ば、IPU 105の読み出し/書き込み要求520は0PCODE310のデ コード後直ちにMCU 120並びにIOU 130に並列で送られる。
IPU 105は他のレジスタがデコードされるまで待つことけしない。この方 法では、命令の残りの部分がデコードされている間に、MCU I 20及びl 0U130はT3のクロック時間中にアイドル状態540がら脱し、読み出し/ 書き込み状態に入る。従って、読み出し/書き込み状態に遷移する動作は逐次で はなくなるから、システムはT6のフェーズ発生まで待たされることがなくなる 、即ち、クリティカル・バスがなくなる。今や、MCU 120及びl0U13 0は、スレーブのクロック・フェーズT4発生より前に読み出し/書き込み状態 530に入っている。
この概念は、従来のシステムについて先に説明したのと同じタイミングの数字を 使って表すことができる。
例えば、レジスタのデコーディング、アドレス計算さらにアドレスのデコーディ ングに要する時間が20ナノ秒以下ならば、速度20ナノ秒のクロックを使うシ ステムではクリティカル・バスは存在しない。それは何故ならば、10U 13 0及びMCU120はT4の発生以前に既に読み出し/書き込み状態に入ってい るからである。
宛先がデコードされ、MCU 120とl0U130のどちらが必要なのかが分 かれば、IOUの取消し信号560が生成され、従って不要の制御ユニットをア イドル状態に戻す。
再び第3B並びに5図において、0PCODE310のデコードは、ブロック5 10で示すように、T2、T3のクロ7り期間の初期に発生する。このデコード が完了し次第直ちに、IPUの読み出し/書き込み要求520がMCU 120 と10UI30に送られる。要求520はMCU 120を読み出し/書き込み 状態530Aに、l0UI30を読み出し/書き込み状B530Bにする。読み 出し/書き込み状態530は共にT4のスレーブ・クロック・フェーズ中の活用 に間に合うように既に発生している。
読み出し書き込み要求と同時期に、命令の残りの部分が、対応するアドレスを確 定するためにデコードされる。Rindex340並びにRbase350のデ コーディングはブロック512に示す通りである。アクセス対象のアドレスの計 算、即ちRindex340のRbase350への加算はブロック514で示 す通りである。
制御ユニツ) MCU +20またはl0U130の一方が読み出し/書き込み 動作を実行し、他方はしない。ブロック550に示すように、アドレス・デコー ドが起きるまでどちらがどちらなのか不明である。アドレス・デコードが発生し さえすれば、IOUの取消し信号560が生成され、従って読み出し/書き込み 動作を行っていないユニットを取り消す。このユニットはアイドル状態540に 戻る。
第5図に示した例において、アクセス対象のアドレスは、たまたまメモリ内に存 在している。従って、そのアドレスがデコードされると、I10デバイスはアク セスされるべきでないことが分かる。次に取消し信号560が生成され、IOU  130はアイドル状態540Bに戻る。MCU120は読み出し/書き込み状 態530Aのままで、メモリ・アクセスが発生する。
好適な実施例において、MCU 120はIPU105によって計算されたアド レスをデコードする。アドレスがデコードされ、アドレスがメモリ150とl1 0160のどちらに宛てられているかが判明すれば、MCU 120は自分の読 み出し/書き込み要求を取り消しアイドル状態540Aに戻るか、もしくは取消 し信号をIOU 130に送るかのいずれかを行なう。このアドレス・デコード はMCU 120または10U 130のいずれか、或いはその両方によって実 行されることがあるということは当業者には明確であろう。
本発明に基づく技法のタイミング図は第6図に示す通りである。第6図において 、IPU、−REQ信号520はMCU 120及びIOU 130の両方に送 られる。MCU 120は認可信号610Aに応答し、l0U130は認可信号 610Bに応答する。MCU120とl0UI30は共に、MCU−5TATE 620A及びl0UjTATE620Bが示すように、読み出し/書き込み状態 にある。一旦アドレスがデコードされれば、MCU 120またはIOU 13 0のいずれか不要のユニットを取り消すために、MCU/l0U−CANCEL 信号が生成される。
第6図はl0U130が不要で、従ってl0U−5TATE620Bがアイドル 状態に戻るケースを示したものである。
第7図はMCU 120とl0U130の状態を示すものである。第7及び2図 において、取消し論理ブロックを生成するために使われる状態マシンが示されて いる。取消し論理はMCLN20にもl0UI30にもある。T!でIPU10 5からの読み出し/書き込み要求信号を受信すると、その2つの状態マシンは同 時に動作を開始する。要求の宛先(即ち、現在デコード進行中の命令に示される メモリ内のアドレス)のデコード後、その動作を取り消すために、MCU120 またはIOU 130のいずれかが、T2でスイッチ125もしくはスイッチ1 35からそれぞれ取消し信号を生成する。要求が取り消されれば、取り消された 制御ユニットはアイドル状態に戻る。要求が取り消されなければ、制御ユニット は対応するメモリの記憶場所にアクセスし始める。
取消し信号は命令の第31番目のビットを検査することによってトリガされる。
そのビットがゼロであれば要求は主記憶に対するもので、そのビットがlならそ の要求はI10デバイスに対するものである。第2図に示すように、アドレスが oooo ooooと03FFjFFFの間にあれば、そのアドレスはメモリに アクセスする。しかしながら、アドレスがFF80jFFFとFFFF−FFF Fの間にあれば、Iloにアクセスする。好適な実施例において、他の領域は全 て予約きれている。本発明において他に多数のメモリ・マツプが使用できるとい うことが当業者には明確であろう。
再び第2図においす、好適な実施例で、MCU120がアドレスをデコードする と、そのアドレスが予約領域230の1ケ所に宛てられているかどうかも判定さ れる。予約領域230の1ケ所に宛てられていれば、TOU130及びMCU+ 20に対する読み出し/書き込みは共に取り消される。
この発明を実行する際には、トレードオフがある。
MCU 120及びIOU]30の片方が読み出し/書き込みモードになるよう に要求される時でも、MCU + 20及び10U130は共に、読み出し/書 き込みモードになる消費電力が増加する。高速クロック・レートにすることによ ってシステムの性能を上げれば、はとんどのアプリケーションでこの消費電力の 増加は相殺される。
精」1 従って、本発明はシステムのクロック・レートを速めることができる技法を提供 するものである。0PCODEがデコードされ、読み出しもしくは書き込みの動 作が呼び出されることを示していれば、直ちに読み出し/書き込み状態に遷移す るようにメモリ及びI10ユニットに命令を送ることによってクロック・レート は速められ、かくしてクリティカル・パスから状態遷移時間が取り除かれる。
本発明について好適な実施例を挙げて具体的に説明をしてきたが、本発明の精神 並びに適用範囲から外れることなく形状及び詳細において様々な変更が可能であ ることが当業者には理解されることであろう。
例を挙げれば、本発明に基づく技法は本明細書に記載のMCUやIOU以外の資 源デバイスを使ってシステムで実行することが可能であり、且つ本発明による技 法は多数の資源デバイスを包含するシステムに拡張することができる。
アドレス 第2図 第3A図 第3B図 第4図 第5図

Claims (8)

    【特許請求の範囲】
  1. 1.読み出し/書き込み動作中にプロセッサ・ベースのシステムにおいてクリテ ィカル・バスを削減する方法で、前記システムがメモリ制御ユニット(MCU) 、入出力制御ユニット(1OU)、並びに命令集合をそれぞれ1個ずつ備え、前 記方法が、 (a)命令集合から命令の第1の部分をデコードするステップと、 (b)前記の命令が読み出しと書き込みのうちの少なくとも1つを命じているか 否かを決定するステップと、(c)ステップ(b)で読み出しや書き込みを命じ ていることが確定されれば、読み出し/書き込み状態に入るために要求をMCU とIOUの両方に送るステップと、(d)読み出し/書き込み動作によってアク ヤスされるべきアドレスを決定するために命令の残りの部分をデコードするステ ップと、 (e)アクセス対象のアドレスをデコードするステップで、それは、そのアクセ スの対象がメモリか1/0デバイスかを確定するために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.決定の前記手段が、前記命令が読み出し及び書き込み動作の少なくともどち らか1つを命じているかどうかを決定する手段であり、 送るための前記手段が、ステップ(b)において読み出しや書き込みが求められ ていることが確定すれば、読み出し/書き込み状態に入るためにMCUとIOU の両方に要求を送る手段であり、 命令の残りの部分をデコードするための前記手段が、読み出しや書き込み動作に よってアクセスされるべきアドレスを決定するために、命令の残りの部分をデコ ードするための手段であり、アドレスをデコードするための前記手段がアクセス 対象のアドレスをデコードするための手段であり、それはアクセスの対象がメモ リか1/0デバイスかを決定するためにMCUまたはIOUか少なくともどちら か一方によって実行されるデコーディングであること、さらに、取消しの前記手 段がアドレスをデコードするための前記手段による結果に基づいてMCUとIO Uへの前記要求の1つを取り消すための手段であることを特徴とする請求項5記 載のシステム。
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 true JPH07505242A (ja) 1995-06-08
JP3520372B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716452B1 (en) 1996-08-22 2010-05-11 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4757439A (en) * 1984-11-02 1988-07-12 Measurex Corporation Memory bus architecture
DE3583283D1 (de) * 1984-11-02 1991-07-25 Measurex Corp Speicherbusarchitektur.
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716452B1 (en) 1996-08-22 2010-05-11 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor
US8055877B1 (en) 1996-08-22 2011-11-08 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor

Also Published As

Publication number Publication date
US5828861A (en) 1998-10-27
WO1993018451A1 (en) 1993-09-16
JP3520372B2 (ja) 2004-04-19

Similar Documents

Publication Publication Date Title
US4740893A (en) Method for reducing the time for switching between programs
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
EP0644482B1 (en) Dispatch of instructions to multiple execution units
JPS6217252B2 (ja)
JPS6313215B2 (ja)
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
CN101414252A (zh) 数据处理装置
JPH03286332A (ja) デジタルデータ処理装置
JPH0743648B2 (ja) 情報処理装置
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JP3490005B2 (ja) 命令制御装置及びその方法
JPS60178580A (ja) 命令制御方式
EP1728151A2 (en) Instruction pipeline
JPH0222413B2 (ja)
JP2668987B2 (ja) データ処理装置
JP2503223B2 (ja) 先行制御方式
US5854919A (en) Processor and its operation processing method for processing operation having bit width exceeding data width of bit storage unit
JPH0524537B2 (ja)
JPH07200406A (ja) キャッシュシステム
JP3068406B2 (ja) ベクトル演算装置
JP5013966B2 (ja) 演算処理装置
JP3197045B2 (ja) 拡張中央演算処理装置
JPH03260839A (ja) マイクロコンピュータ
JPH033047A (ja) 演算機能付きメモリ
JPS63263537A (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