JPS62189535A - マイクロプロセツサ制御装置 - Google Patents
マイクロプロセツサ制御装置Info
- Publication number
- JPS62189535A JPS62189535A JP61031649A JP3164986A JPS62189535A JP S62189535 A JPS62189535 A JP S62189535A JP 61031649 A JP61031649 A JP 61031649A JP 3164986 A JP3164986 A JP 3164986A JP S62189535 A JPS62189535 A JP S62189535A
- Authority
- JP
- Japan
- Prior art keywords
- register
- address
- data
- buffer
- external
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 77
- 230000003139 buffering effect Effects 0.000 abstract description 9
- 238000000034 method Methods 0.000 abstract description 6
- 238000009434 installation Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241000283986 Lepus Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
本発明は命令を解読し、演算の実行を行う高速なワンチ
ッププロセッサの構成に係り、すべての命令を−サイク
ルで実行し、特に、チップ内部の内部レジスタとチップ
外に存在する外部レジスタとの演算に対しても−サイク
ルで行えるようにクリティカルな伝播遅延時間を短縮す
ることを可能とするハードウェアを備えたマイクロプロ
セッサ制御回路に関する。
ッププロセッサの構成に係り、すべての命令を−サイク
ルで実行し、特に、チップ内部の内部レジスタとチップ
外に存在する外部レジスタとの演算に対しても−サイク
ルで行えるようにクリティカルな伝播遅延時間を短縮す
ることを可能とするハードウェアを備えたマイクロプロ
セッサ制御回路に関する。
従来、この種のマイクロプロセッサでは、内部レジスタ
と外部レジスタとの演算の外部レジスタに対するアドレ
スは、チップ内部で命令解読した後生成されるアドレス
デコードの結果をチップ外部に出力して形成されていた
ため、マイクロプロセッサチップと外部回路間のドライ
バ回路、或いはI10ピン等による伝播遅延が大きくな
り、これがチップ全体のクリティカルな伝播遅延となり
、基本クロック周期の実効的な時間が長くなってしまう
という欠点を有していた。
と外部レジスタとの演算の外部レジスタに対するアドレ
スは、チップ内部で命令解読した後生成されるアドレス
デコードの結果をチップ外部に出力して形成されていた
ため、マイクロプロセッサチップと外部回路間のドライ
バ回路、或いはI10ピン等による伝播遅延が大きくな
り、これがチップ全体のクリティカルな伝播遅延となり
、基本クロック周期の実効的な時間が長くなってしまう
という欠点を有していた。
本発明はこのような命令の実行を1サイクル周期間で実
行する1チツプマイクロプロセツサにおいて、チップ内
部の内部レジスタとチップ外部の外部レジスタとのデー
タ演算に対して演算した結果を前記外部レジスタに書込
む場合の伝播遅延時間を短縮する制御方式を提供する。
行する1チツプマイクロプロセツサにおいて、チップ内
部の内部レジスタとチップ外部の外部レジスタとのデー
タ演算に対して演算した結果を前記外部レジスタに書込
む場合の伝播遅延時間を短縮する制御方式を提供する。
即ちデータの行先が外部レジスタである場合に、命令実
行時のALU出力データ及び外部レジスタの行先アドレ
スをマイクロプロセッサ内部でバッファリングする手段
を設け、実行サイクルの次の命令サイクルの後半で前記
バッファリング手段によってセットされた行先アドレス
の内容に基づきバッファリングしたデータを外部レジス
タに書込んでいる。この場合、その次の命令がもし外部
レジスタの提出し命令である場合には、前記バッファリ
ング手段によって一時保持されている行先番地と現在の
命令フェッチサイクルで生成されているアドレスとを比
較し、もし一致すれば外部レジスタから読出さずに、前
記バッファ手段によってセットされているデータを読出
しデータとすることによってサイクルタイムを短縮して
いる。このような方法に従えば、クロックサイクルを小
さくすることができ、マイクロプロセッサの実行速度が
向上するという効果がある。
行時のALU出力データ及び外部レジスタの行先アドレ
スをマイクロプロセッサ内部でバッファリングする手段
を設け、実行サイクルの次の命令サイクルの後半で前記
バッファリング手段によってセットされた行先アドレス
の内容に基づきバッファリングしたデータを外部レジス
タに書込んでいる。この場合、その次の命令がもし外部
レジスタの提出し命令である場合には、前記バッファリ
ング手段によって一時保持されている行先番地と現在の
命令フェッチサイクルで生成されているアドレスとを比
較し、もし一致すれば外部レジスタから読出さずに、前
記バッファ手段によってセットされているデータを読出
しデータとすることによってサイクルタイムを短縮して
いる。このような方法に従えば、クロックサイクルを小
さくすることができ、マイクロプロセッサの実行速度が
向上するという効果がある。
本発明は集積度の高いマイクロプロセッサの構成に関し
、特にチップの内部及び外部にランダムアクセスメモリ
(RAM)からなるワーキングレジスタを有し、前記
内部レジスタと外部レジスタとのデータに対する演算に
対しても−サイクルで高速に演算できるようにクリティ
カルな伝播遅延時間を減少させることを可能とするワン
チップマイクロプロセッサの制御回路に関する。
、特にチップの内部及び外部にランダムアクセスメモリ
(RAM)からなるワーキングレジスタを有し、前記
内部レジスタと外部レジスタとのデータに対する演算に
対しても−サイクルで高速に演算できるようにクリティ
カルな伝播遅延時間を減少させることを可能とするワン
チップマイクロプロセッサの制御回路に関する。
さらに本発明はALU演算結果をチップ外部の外部レジ
スタに書込む場合、そして書込んだ後に即座に前記外部
レジスタからデータを読出す動作に対して実行的な伝播
遅延時間を減少させることを可能とするマイクロプロセ
ッサ制御装置を提供する。
スタに書込む場合、そして書込んだ後に即座に前記外部
レジスタからデータを読出す動作に対して実行的な伝播
遅延時間を減少させることを可能とするマイクロプロセ
ッサ制御装置を提供する。
MO3集積回路技術の発展に伴い、命令を解読しデータ
の演算を実行するマイクロプロセッサがワンチップで構
成できるようになり、多種多様な機能を持つハードウェ
アをチップ内部に含めることによりマイクロプロセッサ
の処理能力はますます向上してきた。このマイクロプロ
セッサは主記憶装置内に格納されるマクロ命令を逐次に
チップ内部のインストラクションレジスタにフェッチし
、マクロ命令中に含まれるオパレーションコードを解読
し、マクロ命令中のアドレス部から生成される2つのデ
ータオペランドをアリスメティック・ロジック・ユニッ
ト(A L U)に与え、演算結果をチップ内部あるい
は外部のレジスタにセットすることを基本演算としてい
るもので、いわゆるノイマン型のプログラムストア方式
に従う演算ユニットである。特にマクロ命令のオペレー
ションコードを解読する解読器はコントロールストレッ
ジを用いて実行することが多く、その場合には前記オペ
レーションコードによって、前記コントロールストレッ
ジの中に含まれる各命令の解読結果を含む領域の先頭ア
ドレスを生成し、コントロールストレッジのアドレスポ
インタの制御を行うシーケンサによって前記領域をアク
セスし、出力されるマイクロ命令をプログラムレジスタ
にセットする。
の演算を実行するマイクロプロセッサがワンチップで構
成できるようになり、多種多様な機能を持つハードウェ
アをチップ内部に含めることによりマイクロプロセッサ
の処理能力はますます向上してきた。このマイクロプロ
セッサは主記憶装置内に格納されるマクロ命令を逐次に
チップ内部のインストラクションレジスタにフェッチし
、マクロ命令中に含まれるオパレーションコードを解読
し、マクロ命令中のアドレス部から生成される2つのデ
ータオペランドをアリスメティック・ロジック・ユニッ
ト(A L U)に与え、演算結果をチップ内部あるい
は外部のレジスタにセットすることを基本演算としてい
るもので、いわゆるノイマン型のプログラムストア方式
に従う演算ユニットである。特にマクロ命令のオペレー
ションコードを解読する解読器はコントロールストレッ
ジを用いて実行することが多く、その場合には前記オペ
レーションコードによって、前記コントロールストレッ
ジの中に含まれる各命令の解読結果を含む領域の先頭ア
ドレスを生成し、コントロールストレッジのアドレスポ
インタの制御を行うシーケンサによって前記領域をアク
セスし、出力されるマイクロ命令をプログラムレジスタ
にセットする。
そしてプログラムレジスタのビット幅を前記オペレーシ
ョンコードの固定ビット幅に比べてかなり広くすること
によりALU或いは他の回路に対する制御信号を生成し
、多種多様な演算を実行するようにしている。この場合
、フェッチされた命令のオペレーションコードを前記コ
ントロールストレッジを用いて解読し、解読した結果が
前記プログラムレジスタにセットされるまでが命令フェ
ッチサイクルであり、プログラムレジスタに解読された
結果がセットされてからALUを駆動するまでが演算の
実行サイクルとなる。ALUの演算に対する2つのデー
タ入力はインストラクションレジスタにセットされるマ
クロ命令中のアドレス部をデコードして指定される場合
が多く、特に、ALUの入力部に存在する内部レジスタ
のアドレスを指定し前記内部レジスタから出力されるA
オペランドとBオペランドを前記ALUで演算し、演算
した結果を前記内部レジスタに再びセットする演算を基
本としている。ALUの2つのオペランド、即ちAオペ
ランドとBオペランドに対してそのソース及びディステ
ィネーションさらに加算、減算あるいは乗除演算等の演
算の種類は前記プログラムレジスタの各フィールドを用
いて生成するのが一般的である。ALUで演算された結
果は前記内部レジスタにセットされる場合もあるが、チ
ップ外部に出力され、再び主記憶装置のデータ領域に書
込まれたり、或いは他の出力装置に出力される場合もあ
る。
ョンコードの固定ビット幅に比べてかなり広くすること
によりALU或いは他の回路に対する制御信号を生成し
、多種多様な演算を実行するようにしている。この場合
、フェッチされた命令のオペレーションコードを前記コ
ントロールストレッジを用いて解読し、解読した結果が
前記プログラムレジスタにセットされるまでが命令フェ
ッチサイクルであり、プログラムレジスタに解読された
結果がセットされてからALUを駆動するまでが演算の
実行サイクルとなる。ALUの演算に対する2つのデー
タ入力はインストラクションレジスタにセットされるマ
クロ命令中のアドレス部をデコードして指定される場合
が多く、特に、ALUの入力部に存在する内部レジスタ
のアドレスを指定し前記内部レジスタから出力されるA
オペランドとBオペランドを前記ALUで演算し、演算
した結果を前記内部レジスタに再びセットする演算を基
本としている。ALUの2つのオペランド、即ちAオペ
ランドとBオペランドに対してそのソース及びディステ
ィネーションさらに加算、減算あるいは乗除演算等の演
算の種類は前記プログラムレジスタの各フィールドを用
いて生成するのが一般的である。ALUで演算された結
果は前記内部レジスタにセットされる場合もあるが、チ
ップ外部に出力され、再び主記憶装置のデータ領域に書
込まれたり、或いは他の出力装置に出力される場合もあ
る。
この種のマイクロプロセッサはVLS I技術を用いて
1チツプで構成されるようになり、最近では20,00
0ゲートのものが高い歩留まりで構成できるようになっ
てきた。しかしチップ内部にすべてのハードウェアを詰
め込むことは困難である場合、チップ外部に設けてもさ
しつかえのないハードウェアを前記マイクロプロセッサ
チップと前記主記憶装置の間に設置することによって高
機能化を図るようにしている。例えば、メモリの実効的
な動作を高速化するためのスクラッチメモリ或いはマク
ロ命令中に含まれる論理アドレスから大容量の主記憶装
置或いは外部記憶装置に与える物理アドレスに変換する
ためのアドレス変換機構を含むメモリ管理ユニット等が
ある。
1チツプで構成されるようになり、最近では20,00
0ゲートのものが高い歩留まりで構成できるようになっ
てきた。しかしチップ内部にすべてのハードウェアを詰
め込むことは困難である場合、チップ外部に設けてもさ
しつかえのないハードウェアを前記マイクロプロセッサ
チップと前記主記憶装置の間に設置することによって高
機能化を図るようにしている。例えば、メモリの実効的
な動作を高速化するためのスクラッチメモリ或いはマク
ロ命令中に含まれる論理アドレスから大容量の主記憶装
置或いは外部記憶装置に与える物理アドレスに変換する
ためのアドレス変換機構を含むメモリ管理ユニット等が
ある。
特に、前記内部レジスタの拡張用としてチップ外部に外
部レジスタを設置する場合がある。チップ外部に外部レ
ジスタを設置する場合には外部レジスタを内部レジスタ
と同等に扱うようにする必要がある。例えば、マイクロ
プロセッササイクルが実行するのに必要な同期クロック
の一サイクルの間で内部レジスタのデータと外部レジス
タのデータとの演算を実行する必要がある。この場合マ
イクロプロセッサのクロックサイクルの長さはマクロ命
令がインストラクションレジスタにセットされてからプ
ログラムレジスタに命令解読された結果がセットされる
までの時間あるいは内部レジスタ、或いは外部レジスタ
からデータを読出し、ALUの入力にAオペランド、B
オペランドを与え、演算結果をALUから出力し、再び
その結果を内部レジスタ、或いは外部レジスタにセット
するまでの実行時間の中で最も伝播遅延時間が長いクリ
ティカルなパスで決定されることになる。即ち、クリテ
ィカルな伝播遅延時間よりも広いクロックサイクルを持
つようにすることにより全ての命令を−サイクルに収め
ることが可能となる。
部レジスタを設置する場合がある。チップ外部に外部レ
ジスタを設置する場合には外部レジスタを内部レジスタ
と同等に扱うようにする必要がある。例えば、マイクロ
プロセッササイクルが実行するのに必要な同期クロック
の一サイクルの間で内部レジスタのデータと外部レジス
タのデータとの演算を実行する必要がある。この場合マ
イクロプロセッサのクロックサイクルの長さはマクロ命
令がインストラクションレジスタにセットされてからプ
ログラムレジスタに命令解読された結果がセットされる
までの時間あるいは内部レジスタ、或いは外部レジスタ
からデータを読出し、ALUの入力にAオペランド、B
オペランドを与え、演算結果をALUから出力し、再び
その結果を内部レジスタ、或いは外部レジスタにセット
するまでの実行時間の中で最も伝播遅延時間が長いクリ
ティカルなパスで決定されることになる。即ち、クリテ
ィカルな伝播遅延時間よりも広いクロックサイクルを持
つようにすることにより全ての命令を−サイクルに収め
ることが可能となる。
従来、この種の内部レジスタと外部レジスタを持つマイ
クロプロセッサにおいては外部レジスタのアドレス生成
がチップ内部で生成されるため、アドレス信号がマイク
ロプロセッサチップと外部回路間との間にあるバッファ
回路、I10ビン等を経由するため、伝播遅延時間が長
(なり、内部レジスタ間の演算と比べて外部レジスタを
必要とする演算時間が実効的に長くなる。そのため、ク
リティカルな伝播遅延時間が外部レジスタのアドレスを
決定するまでの伝播遅延時間によって決定され、マイク
ロプロセッサ全体のサイクルはそのクリティカルな伝播
遅延時間によって決定されてしまうことになる。従って
、内部レジスタのデータどうしの演算等が比較的短い伝
播遅延時間でできる場合であってもクリティカルなパス
は外部レジスタのデータを用いる演算によって決まって
しまうため、マイクロプロセッサ全体の処理能力が低下
してしまうという欠点を有していた。
クロプロセッサにおいては外部レジスタのアドレス生成
がチップ内部で生成されるため、アドレス信号がマイク
ロプロセッサチップと外部回路間との間にあるバッファ
回路、I10ビン等を経由するため、伝播遅延時間が長
(なり、内部レジスタ間の演算と比べて外部レジスタを
必要とする演算時間が実効的に長くなる。そのため、ク
リティカルな伝播遅延時間が外部レジスタのアドレスを
決定するまでの伝播遅延時間によって決定され、マイク
ロプロセッサ全体のサイクルはそのクリティカルな伝播
遅延時間によって決定されてしまうことになる。従って
、内部レジスタのデータどうしの演算等が比較的短い伝
播遅延時間でできる場合であってもクリティカルなパス
は外部レジスタのデータを用いる演算によって決まって
しまうため、マイクロプロセッサ全体の処理能力が低下
してしまうという欠点を有していた。
さらに、この種の従来方式に基づくマイクロプロセッサ
においては内部レジスタと外部レジスタとのデータ演算
に対してALUの出力結果を外部レジスタに書込む場合
にはクリティカルな伝播遅延時間は非常に長くなる。即
ち、コントロールストレッジの出力に接続されるプログ
ラムレジスタの内容が決定され、その内容のアドレスフ
ィールドがデコーダやバッファ回路を介してチップ外部
に出力され、外部レジスタをアクセスする。アクセスさ
れた結果が読出され、読出された内容が再びチップ内部
に入力されALUのオペランドとしてALUに与えられ
る。そして、ALUの結果が再びチップ外部に出力され
、外部レジスタに書込まれることになる。これらの伝播
遅延時間に外部レジスタのセットアツプタイムが加算さ
れると全体の伝播遅延時間は非常に長くなる。このクリ
ティカルパスによってマイクロプロセッサのクロックサ
イクルが決定されるので、他の命令の実行に対して伝播
遅延時間が小さくても実行的な処理能力は低下してしま
うことになる。即ちクリティカルパスよりもクロックの
サイクルタイムを長くするか、又は内部レジスタ間のデ
ータ演算をクロックの1サイクルで行う場合に、1サイ
クル以上の時間をかけて外部レジスタの演算を行う必要
があり、マイクロプロセッサの実行的な処理能力が低下
するという欠点があった。
においては内部レジスタと外部レジスタとのデータ演算
に対してALUの出力結果を外部レジスタに書込む場合
にはクリティカルな伝播遅延時間は非常に長くなる。即
ち、コントロールストレッジの出力に接続されるプログ
ラムレジスタの内容が決定され、その内容のアドレスフ
ィールドがデコーダやバッファ回路を介してチップ外部
に出力され、外部レジスタをアクセスする。アクセスさ
れた結果が読出され、読出された内容が再びチップ内部
に入力されALUのオペランドとしてALUに与えられ
る。そして、ALUの結果が再びチップ外部に出力され
、外部レジスタに書込まれることになる。これらの伝播
遅延時間に外部レジスタのセットアツプタイムが加算さ
れると全体の伝播遅延時間は非常に長くなる。このクリ
ティカルパスによってマイクロプロセッサのクロックサ
イクルが決定されるので、他の命令の実行に対して伝播
遅延時間が小さくても実行的な処理能力は低下してしま
うことになる。即ちクリティカルパスよりもクロックの
サイクルタイムを長くするか、又は内部レジスタ間のデ
ータ演算をクロックの1サイクルで行う場合に、1サイ
クル以上の時間をかけて外部レジスタの演算を行う必要
があり、マイクロプロセッサの実行的な処理能力が低下
するという欠点があった。
本発明は、このような従来の欠点を除去し、マイクロプ
ロセッサチップ内部の内部レジスタとチップ外部の外部
レジスタとのデータ演算に対してもクリティカルな伝播
遅延時間を小さくすることにより、実効的に内部レジス
タ間のデータ演算とほぼ同等な遅延時間で計算できるよ
うにし、マイクロプロセッサの基本クロックのサイクル
を短縮することを可能とするマイクロプロセッサの制御
回路を提供する。
ロセッサチップ内部の内部レジスタとチップ外部の外部
レジスタとのデータ演算に対してもクリティカルな伝播
遅延時間を小さくすることにより、実効的に内部レジス
タ間のデータ演算とほぼ同等な遅延時間で計算できるよ
うにし、マイクロプロセッサの基本クロックのサイクル
を短縮することを可能とするマイクロプロセッサの制御
回路を提供する。
さらに本発明はマイクロプロセッサの内部レジスタと外
部レジスタのデータ演算に対してデータの行先が前記外
部レジスタである場合にクリティカルな伝播遅延時間を
減少させるマイクロプロセッサ制御装置を提供する。
部レジスタのデータ演算に対してデータの行先が前記外
部レジスタである場合にクリティカルな伝播遅延時間を
減少させるマイクロプロセッサ制御装置を提供する。
本発明は上記目的を達成するために、制御記憶回路から
出力される制御信号をセットするプログラムレジスタの
内容をデコードしチップ内部にある内部レジスタ又はチ
ップ外部にある外部レジスタの内容を少なくともオペラ
ンドとすることができる演算論理ユニットで論理演算を
実行し、演算した結果を前記内部レジスタ、或いは外部
レジスタに少なくともセットできることを可能とするマ
イクロプロセッサユニットの内部において、前記演算論
理ユニットの出力結果を一時保持するデータバッファと
、前記プログラムレジスタのアドレスフィールドをデコ
ードした結果を一時保持するディスティネーションバッ
ファと、前記プログラムレジスタのアドレスフィールド
をデコードした信号と前記ディスティネーションバッフ
ァの出力とを比較する比較手段とを存し、前記内部レジ
スタと前記外部レジスタとのデータに対して前記演算論
理ユニットで演算した結果を前記外部レジスタに格納す
る命令の実行時に前記演算論理ユニットの出力データ及
び前記プログラムレジスタのアドレスフィールドから出
力される前記外部レジスタに対する行先番地をそれぞれ
前記データバッファ及びディスティネーションバッファ
でバッファリングし、前記実行サイクルの次のサイクル
の後半でバッファリングした前記行先番地に基づき前記
データバッファでバッファリングしたデータを前記外部
レジスタに書込み、前記命令の次のサイクルで前記外部
レジスタのリード命令が指示された場合には前記比較手
段によって前記デイステイネーションバソファにセット
されているアドレスと前記プログラムレジスタのアドレ
スフィールドから出力される現在のアドレスとを比較し
、比較された結果次の命令が外部レジスタのリード命令
であることを確認した場合には、前記外部レジスタのリ
ードデータを使用せず前記データバッファにセットされ
ているデータを読出しデータとして用いることを特徴と
する。
出力される制御信号をセットするプログラムレジスタの
内容をデコードしチップ内部にある内部レジスタ又はチ
ップ外部にある外部レジスタの内容を少なくともオペラ
ンドとすることができる演算論理ユニットで論理演算を
実行し、演算した結果を前記内部レジスタ、或いは外部
レジスタに少なくともセットできることを可能とするマ
イクロプロセッサユニットの内部において、前記演算論
理ユニットの出力結果を一時保持するデータバッファと
、前記プログラムレジスタのアドレスフィールドをデコ
ードした結果を一時保持するディスティネーションバッ
ファと、前記プログラムレジスタのアドレスフィールド
をデコードした信号と前記ディスティネーションバッフ
ァの出力とを比較する比較手段とを存し、前記内部レジ
スタと前記外部レジスタとのデータに対して前記演算論
理ユニットで演算した結果を前記外部レジスタに格納す
る命令の実行時に前記演算論理ユニットの出力データ及
び前記プログラムレジスタのアドレスフィールドから出
力される前記外部レジスタに対する行先番地をそれぞれ
前記データバッファ及びディスティネーションバッファ
でバッファリングし、前記実行サイクルの次のサイクル
の後半でバッファリングした前記行先番地に基づき前記
データバッファでバッファリングしたデータを前記外部
レジスタに書込み、前記命令の次のサイクルで前記外部
レジスタのリード命令が指示された場合には前記比較手
段によって前記デイステイネーションバソファにセット
されているアドレスと前記プログラムレジスタのアドレ
スフィールドから出力される現在のアドレスとを比較し
、比較された結果次の命令が外部レジスタのリード命令
であることを確認した場合には、前記外部レジスタのリ
ードデータを使用せず前記データバッファにセットされ
ているデータを読出しデータとして用いることを特徴と
する。
本発明は現在の命令が外部レジスタのデータと内部レジ
スタのデータの処理である場合にALU出力テータと、
プログラムレジスタからデコードされるアドレスの目的
番地を一時保持するために、その命令の実行サイクルの
次のサイクルの前半でバッファリングする手段を設けて
いる。そして前記サイクルの後半でバッフアリソゲした
行先番地を用いて外部レジスタに前記バッファリングデ
ータをセットするようにしている。ここで、前記命令の
直後の命令が前記外部レジスタの内容を読出す命令であ
る場合には、同じクロックサイクル内で外部レジスタへ
の書込みと外部レジスタからの読出しを同時に行うこと
ができなくなる。そこで本発明では、前記バッファリン
グされたデータを用いてデータの読出し動作と等価にな
るようにしている。従って、外部レジスタの書込み動作
及び連続した命令での読出し動作が前記バッファリング
手段によって可能となるばかりでなく、前記バッファリ
ング手段を設けたことにより外部レジスタへのデータ書
込みに対する伝播遅延時間を減少させることが可能とな
っている。
スタのデータの処理である場合にALU出力テータと、
プログラムレジスタからデコードされるアドレスの目的
番地を一時保持するために、その命令の実行サイクルの
次のサイクルの前半でバッファリングする手段を設けて
いる。そして前記サイクルの後半でバッフアリソゲした
行先番地を用いて外部レジスタに前記バッファリングデ
ータをセットするようにしている。ここで、前記命令の
直後の命令が前記外部レジスタの内容を読出す命令であ
る場合には、同じクロックサイクル内で外部レジスタへ
の書込みと外部レジスタからの読出しを同時に行うこと
ができなくなる。そこで本発明では、前記バッファリン
グされたデータを用いてデータの読出し動作と等価にな
るようにしている。従って、外部レジスタの書込み動作
及び連続した命令での読出し動作が前記バッファリング
手段によって可能となるばかりでなく、前記バッファリ
ング手段を設けたことにより外部レジスタへのデータ書
込みに対する伝播遅延時間を減少させることが可能とな
っている。
次に本発明の実施例を図面を参照して説明する。
第1図は本発明のマイクロプロセッサ制御回路の構成ブ
ロック図である。第1図の制御回路においてマイクロプ
ロセッサユニット(MPU)チップはコントロールスト
レッジ、すなわち制御記憶回路13からの制御信号をセ
ットするプログラムレジスタ1、前記プログラムレジス
タlのアドレスフィールドをデコードする2つのアドレ
スデコーダ2及び3、前記2つのアドレスデコーダの出
力をアドレス信号として入力し演算のオペランドを一時
保持する内部レジスタ4、アリスメテイック・ロジック
・ユニット(ALU)8、ALUのソースを選択するマ
ルチプレクサ6と7、及び前記制御記憶回路13のアド
レスをカウントするプログラムカウンタ(PC)14等
をチップ内部に含んでいる。そしてチップ外部に前記制
御記憶回路13と外部レジスタ12を有している。
ロック図である。第1図の制御回路においてマイクロプ
ロセッサユニット(MPU)チップはコントロールスト
レッジ、すなわち制御記憶回路13からの制御信号をセ
ットするプログラムレジスタ1、前記プログラムレジス
タlのアドレスフィールドをデコードする2つのアドレ
スデコーダ2及び3、前記2つのアドレスデコーダの出
力をアドレス信号として入力し演算のオペランドを一時
保持する内部レジスタ4、アリスメテイック・ロジック
・ユニット(ALU)8、ALUのソースを選択するマ
ルチプレクサ6と7、及び前記制御記憶回路13のアド
レスをカウントするプログラムカウンタ(PC)14等
をチップ内部に含んでいる。そしてチップ外部に前記制
御記憶回路13と外部レジスタ12を有している。
主記憶装置(図示せず)にマクロ命令及びデータを格納
し各命令はMPUによって生成されるアドレスによって
物理アドレスが主記憶装置に与えられ、そのアドレスに
よって指定されるマクロ命令がMPUチップのインスト
ラクションレジスタにセットされると命令の解読が実行
される。インストラクションレジスタにセットされたマ
クロ命令の上位ビットに属するオペレーションコードに
よって制御記憶回路13内のその命令に対応する領域の
先頭アドレスが生成され、プログラムカウンタ14に与
えられて、命令に従った制御信号が制御記憶回路13か
ら出力され、プログラムカウンタ14の内容が逐次更新
される。プログラムカウンタ14は基本的には+1ずつ
されるが、制御記憶回路13の内部を自由にジャンプ命
令で実行されるように任意のアドレスがセットでき、そ
の制御を実行するシーケンス制御回路の内部に含まれて
いる。なお、そのシーケンス制御回路には、制御記憶回
路13の中に格納されたマイクロプログラムに対してプ
ログラムのネスティングが実行できるようにジャンプす
る元の番地に+1されたネタストアドレスを退避するた
めのスタックレジスタを内部にもっている。
し各命令はMPUによって生成されるアドレスによって
物理アドレスが主記憶装置に与えられ、そのアドレスに
よって指定されるマクロ命令がMPUチップのインスト
ラクションレジスタにセットされると命令の解読が実行
される。インストラクションレジスタにセットされたマ
クロ命令の上位ビットに属するオペレーションコードに
よって制御記憶回路13内のその命令に対応する領域の
先頭アドレスが生成され、プログラムカウンタ14に与
えられて、命令に従った制御信号が制御記憶回路13か
ら出力され、プログラムカウンタ14の内容が逐次更新
される。プログラムカウンタ14は基本的には+1ずつ
されるが、制御記憶回路13の内部を自由にジャンプ命
令で実行されるように任意のアドレスがセットでき、そ
の制御を実行するシーケンス制御回路の内部に含まれて
いる。なお、そのシーケンス制御回路には、制御記憶回
路13の中に格納されたマイクロプログラムに対してプ
ログラムのネスティングが実行できるようにジャンプす
る元の番地に+1されたネタストアドレスを退避するた
めのスタックレジスタを内部にもっている。
このようなシーケンサの動作に従って更新されるプログ
ラムカウンタ14の内容によってアクセスされる制御記
憶回路13は、リードオンリメモリ (ROM)で構成
されているのが一般的であり、その出力はマイクロワー
ドレジスタとして働くプログラムレジスタ(PR)1に
セットされる。プログラムレジスタ1は前記インストラ
クションレジスタにセットされたオペレーションコード
のビット幅よりもかなり広いビット幅を持っており、命
令の解読結果の制御信号を一時保持するレジスタである
。このプログラムレジスタの内容によってALU8のA
オペランドとBオペランドのソース、行先であるディス
ティネーシ日ン及び加算、減算、或いは乗除算や論理演
算の種類のファンクションが決められる。このような多
種多様なプログラムレジスタ1内のフィールドの中で第
1図ではALU8のAオペランド、Bオペランドをそれ
ぞれ決める内部レジスタ4のAアドレスに対するアドレ
スデコーダ2及びBアドレスに対するアドレスデコーダ
3が接続されるアドレスフィールドのみが示されている
。内部レジスタ4はランダムアクセスメモリ (RAM
)によって構成されるワーキングレジスタであり、前記
Aアドレスデコーダ2の出力によってアドレスされる結
果と前記Bアドレスデコーダ3の出力によってアドレス
される結果を同時に出力する2ポ一トRAMである。
ラムカウンタ14の内容によってアクセスされる制御記
憶回路13は、リードオンリメモリ (ROM)で構成
されているのが一般的であり、その出力はマイクロワー
ドレジスタとして働くプログラムレジスタ(PR)1に
セットされる。プログラムレジスタ1は前記インストラ
クションレジスタにセットされたオペレーションコード
のビット幅よりもかなり広いビット幅を持っており、命
令の解読結果の制御信号を一時保持するレジスタである
。このプログラムレジスタの内容によってALU8のA
オペランドとBオペランドのソース、行先であるディス
ティネーシ日ン及び加算、減算、或いは乗除算や論理演
算の種類のファンクションが決められる。このような多
種多様なプログラムレジスタ1内のフィールドの中で第
1図ではALU8のAオペランド、Bオペランドをそれ
ぞれ決める内部レジスタ4のAアドレスに対するアドレ
スデコーダ2及びBアドレスに対するアドレスデコーダ
3が接続されるアドレスフィールドのみが示されている
。内部レジスタ4はランダムアクセスメモリ (RAM
)によって構成されるワーキングレジスタであり、前記
Aアドレスデコーダ2の出力によってアドレスされる結
果と前記Bアドレスデコーダ3の出力によってアドレス
される結果を同時に出力する2ポ一トRAMである。
マルチプレクサ6.7はALU8のAオペランド、Bオ
ペランドのソースを決める選択回路である。
ペランドのソースを決める選択回路である。
例えばマルチプレクサ6は前記Aアドレスデコーダ2の
出力によって指定される内部レジスタ4の出力データと
、チップ外部にある外部レジスタ12の出力データ等を
選択しALUのAオペランド・にする回路であり、マル
チプレクサ7は同様にBアドレスデコーダ3の出力で指
定される内部レジスタ4の出力データと前記外部レジス
タ12の出力データ等を選択しBオペランドにする回路
である。ALU8のAオペランドとBオペランドはそれ
ぞれAバス、Bバス上に伝達されてALU8に入力され
、ALU8の出力結果はDバスに伝達される。Dバスは
前記内部レジスタ4の入力に接続されることによって演
算結果が例えばBアドレスによって指定される内部レジ
スタに書込まれるようになっている。さらにDバスの信
号はチップ外部にバッファを介して出力され、外部レジ
スタ12の入力側に接続されたマルチプレクサ11を介
して外部レジスタ12に書込まれるようになっている。
出力によって指定される内部レジスタ4の出力データと
、チップ外部にある外部レジスタ12の出力データ等を
選択しALUのAオペランド・にする回路であり、マル
チプレクサ7は同様にBアドレスデコーダ3の出力で指
定される内部レジスタ4の出力データと前記外部レジス
タ12の出力データ等を選択しBオペランドにする回路
である。ALU8のAオペランドとBオペランドはそれ
ぞれAバス、Bバス上に伝達されてALU8に入力され
、ALU8の出力結果はDバスに伝達される。Dバスは
前記内部レジスタ4の入力に接続されることによって演
算結果が例えばBアドレスによって指定される内部レジ
スタに書込まれるようになっている。さらにDバスの信
号はチップ外部にバッファを介して出力され、外部レジ
スタ12の入力側に接続されたマルチプレクサ11を介
して外部レジスタ12に書込まれるようになっている。
このようなMPUチップ内容部においてA+Bの結果を
Bにするという2アドレス方式の演算に対しては、まず
、Aアドレスデコーダ2の出力によって指定される内部
レジスタ4の出力がマルチプレクサ6を介してAバスに
伝達される。それと同時に、Bアドレスデコーダ3の出
力によってアドレスされる内部レジスタ4の出力結果が
マルチプレクサ7を介してBバスに伝達される。そして
AオペランドとBオペランドがALU8によって演算さ
れ、演算された結果がDバスに伝達され、内部レジスタ
4に帰還され前記Bアドレスデコーダ3の出力によって
アドレスされる番地にその演算結果が書込まれる。
Bにするという2アドレス方式の演算に対しては、まず
、Aアドレスデコーダ2の出力によって指定される内部
レジスタ4の出力がマルチプレクサ6を介してAバスに
伝達される。それと同時に、Bアドレスデコーダ3の出
力によってアドレスされる内部レジスタ4の出力結果が
マルチプレクサ7を介してBバスに伝達される。そして
AオペランドとBオペランドがALU8によって演算さ
れ、演算された結果がDバスに伝達され、内部レジスタ
4に帰還され前記Bアドレスデコーダ3の出力によって
アドレスされる番地にその演算結果が書込まれる。
更に第1図において、外部レジスタ12がチップ外部に
存在し、外部レジスタ12のリードアドレスは前記Aア
ドレスデコーダ2又はBアドレスデコーダ3の出力信号
を選択するマルチプレクサ5からの出力信号を用いてい
る。このリードアドレスによって指定される外部レジス
タ12の内容は再びMPUチップ内部に入力され前記オ
ペランドのソースを決定するマルチプレクサ6及び7に
入力している。
存在し、外部レジスタ12のリードアドレスは前記Aア
ドレスデコーダ2又はBアドレスデコーダ3の出力信号
を選択するマルチプレクサ5からの出力信号を用いてい
る。このリードアドレスによって指定される外部レジス
タ12の内容は再びMPUチップ内部に入力され前記オ
ペランドのソースを決定するマルチプレクサ6及び7に
入力している。
本発明の特徴とするハードウェアは、データバッファ9
とディスティネーションバッファ10及びコンパレータ
15であって、これらの回路を用いて本発明はクリティ
カルなパスの伝播遅延時間を減少させている。すなわち
本発明では、プログラムレジスタ1のアドレスフィール
ドの行先番地が前記外部レジスタ12である場合に、A
LU8の演算結果のデータを前記データバッファ9にバ
ッファリングすると同時にそのアドレスをディスティネ
ーションアドレス10に一度セットする。
とディスティネーションバッファ10及びコンパレータ
15であって、これらの回路を用いて本発明はクリティ
カルなパスの伝播遅延時間を減少させている。すなわち
本発明では、プログラムレジスタ1のアドレスフィール
ドの行先番地が前記外部レジスタ12である場合に、A
LU8の演算結果のデータを前記データバッファ9にバ
ッファリングすると同時にそのアドレスをディスティネ
ーションアドレス10に一度セットする。
この場合、セットのタイミングは現在実行中のサイクル
の次の立下がりにおいて行う。ディスティネーションア
ドレス10が外部レジスタ12の場合には、そのデータ
及び行先番地はプログラムレジスタlに入力されている
クロックを用いてセットされるが、現在実行中のクロッ
クサイクルの次のクロックサイクルの後半において前記
データバッファ9に格納されたデータを前記ディスティ
ネーションバッファ10に格納されたアドレスを用いて
外部レジスタ12にセットする。即ちデータバッファ9
及びディスティネーションバッファ10にセットされた
データとアドレスの値は実行サイクルから半サイクル後
に有効となり、ディスティネーションバッファ10に格
納された行先番地に基づいてデータバッファ9のデータ
が外部レジスタに書込まれる。従って、クリティカルな
伝播遅延時間はアドレスに対してはプログラムレジスタ
1からディスティネーションバッファ10までの伝播遅
延時間とディスティネーションバッファ10から外部レ
ジスタ12のアドレス及び外部レジスタ12から読出さ
れた内容がALU8に入りALU8の出力結果がでるま
での時間に分離されるため、実効的な伝播遅延時間は減
少することになる。一方、データに対しても、プログラ
ムレジスタ1のアドレスフィールドが決定され、外部レ
ジスタ12のリードアドレスが決定されてから外部レジ
スタ12のデータが読出され、チップ内部に入力されて
ALU8に入り、ALU8の出力が決定されるまでの時
間とデータバッファ9の出力結果が外部レジスタ12に
セットされるまでの伝播遅延時間に分離される。従って
実効的な伝播遅延時間が減少することになる。
の次の立下がりにおいて行う。ディスティネーションア
ドレス10が外部レジスタ12の場合には、そのデータ
及び行先番地はプログラムレジスタlに入力されている
クロックを用いてセットされるが、現在実行中のクロッ
クサイクルの次のクロックサイクルの後半において前記
データバッファ9に格納されたデータを前記ディスティ
ネーションバッファ10に格納されたアドレスを用いて
外部レジスタ12にセットする。即ちデータバッファ9
及びディスティネーションバッファ10にセットされた
データとアドレスの値は実行サイクルから半サイクル後
に有効となり、ディスティネーションバッファ10に格
納された行先番地に基づいてデータバッファ9のデータ
が外部レジスタに書込まれる。従って、クリティカルな
伝播遅延時間はアドレスに対してはプログラムレジスタ
1からディスティネーションバッファ10までの伝播遅
延時間とディスティネーションバッファ10から外部レ
ジスタ12のアドレス及び外部レジスタ12から読出さ
れた内容がALU8に入りALU8の出力結果がでるま
での時間に分離されるため、実効的な伝播遅延時間は減
少することになる。一方、データに対しても、プログラ
ムレジスタ1のアドレスフィールドが決定され、外部レ
ジスタ12のリードアドレスが決定されてから外部レジ
スタ12のデータが読出され、チップ内部に入力されて
ALU8に入り、ALU8の出力が決定されるまでの時
間とデータバッファ9の出力結果が外部レジスタ12に
セットされるまでの伝播遅延時間に分離される。従って
実効的な伝播遅延時間が減少することになる。
ここで、もし現在の命令が外部レジスタ12にALU8
の出力結果を格納し、次の連続するクロックサイクルに
おいて実行される命令が前記外部レジスタ12から読出
す命令である場合には、外部レジスタ12に書込むと同
時に読出すことが難しくなる。この場合、本発明では、
データバッファ9にすでに格納されたデータを読出しデ
ータとして用いる。この動作を確実に実行するためにコ
ンパレータ15が利用される。外部レジスフ12に書込
む命令が実行されているサイクルの次の立下がりでディ
スティネーションバッファ10に行先番地がセットされ
、次のサイクルの前半でディスティネーションバッファ
10からアドレスが出力されると同時にプログラムレジ
スタ1からアドレスデコーダ2.3及びマルチプレクサ
5を介して伝達されてくる現在のアドレス、即ち前記外
部レジスタ12のリードアドレスも出力される。そこで
この両方のアドレスをコンパレータ15によって比較し
、もし一致する場合には外部レジスタ12に書込みと読
出しの動作が同時実行されることを認識できる。このよ
うに、コンパレータ15の出力結果が一致を示す論理で
ある場合には、すでにデータバッファ9にセットされて
いる内容を外部レジスタ12の読出しデータとして用い
るようにすればよい。そのためにデータバッファ9の出
力はチップ内部においてALU8のソースを決めるマル
チプレクサ6及び7の入力に接続されている。このよう
にn番目の命令が例えば内部レジスタ4のデータと外部
レジスタ12の内容の演算を外部レジスタ12に書込む
演算である場合に、n+1番目の命令は外部レジスタ1
2がら読出す命令であってはならないという制限を取り
除くためにコンパレータ15を用いている。n+1番目
の命令がもし外部レジスタ12から読出す命令である場
合にはそのアドレスとn番目の命令、即ち外部レジスタ
12にデータを書込む命令に対するアドレスを比較し、
もし一致する場合には外部レジスタ12からデータを読
出すことをせずに、すでにデータバッファ9にセットさ
れたデータを読出しデータとしてALU8に入力させる
ようにしている。この場合コンパレータ15の伝播遅延
時間はチップ内部にあるため、外部レジスタ12の読出
し時間に対して非常に小さく、伝播遅延時間に対する制
限も生じないことになる。
の出力結果を格納し、次の連続するクロックサイクルに
おいて実行される命令が前記外部レジスタ12から読出
す命令である場合には、外部レジスタ12に書込むと同
時に読出すことが難しくなる。この場合、本発明では、
データバッファ9にすでに格納されたデータを読出しデ
ータとして用いる。この動作を確実に実行するためにコ
ンパレータ15が利用される。外部レジスフ12に書込
む命令が実行されているサイクルの次の立下がりでディ
スティネーションバッファ10に行先番地がセットされ
、次のサイクルの前半でディスティネーションバッファ
10からアドレスが出力されると同時にプログラムレジ
スタ1からアドレスデコーダ2.3及びマルチプレクサ
5を介して伝達されてくる現在のアドレス、即ち前記外
部レジスタ12のリードアドレスも出力される。そこで
この両方のアドレスをコンパレータ15によって比較し
、もし一致する場合には外部レジスタ12に書込みと読
出しの動作が同時実行されることを認識できる。このよ
うに、コンパレータ15の出力結果が一致を示す論理で
ある場合には、すでにデータバッファ9にセットされて
いる内容を外部レジスタ12の読出しデータとして用い
るようにすればよい。そのためにデータバッファ9の出
力はチップ内部においてALU8のソースを決めるマル
チプレクサ6及び7の入力に接続されている。このよう
にn番目の命令が例えば内部レジスタ4のデータと外部
レジスタ12の内容の演算を外部レジスタ12に書込む
演算である場合に、n+1番目の命令は外部レジスタ1
2がら読出す命令であってはならないという制限を取り
除くためにコンパレータ15を用いている。n+1番目
の命令がもし外部レジスタ12から読出す命令である場
合にはそのアドレスとn番目の命令、即ち外部レジスタ
12にデータを書込む命令に対するアドレスを比較し、
もし一致する場合には外部レジスタ12からデータを読
出すことをせずに、すでにデータバッファ9にセットさ
れたデータを読出しデータとしてALU8に入力させる
ようにしている。この場合コンパレータ15の伝播遅延
時間はチップ内部にあるため、外部レジスタ12の読出
し時間に対して非常に小さく、伝播遅延時間に対する制
限も生じないことになる。
以上述べた本発明の制御によりクリティカルな伝播遅延
時間となる外部レジスタと内部レジスタのデータ演算結
果を外部レジスタ12に書込むという動作の伝播遅延時
間を短縮することができる。
時間となる外部レジスタと内部レジスタのデータ演算結
果を外部レジスタ12に書込むという動作の伝播遅延時
間を短縮することができる。
この動作を第2図のタイミングチャートを用いて詳細に
述べる。
述べる。
第2図はプログラムレジスタ1、内部レジスタ4、外部
レジスタ12の書込みを決定し、データバッファ9及び
ディスティネーションバッファ10のセットを決めるク
ロックAよりも半サイクル遅れたクロックBを用いて命
令のフェッチと実行をクロックAの2サイクル間にわた
って有効に実行する本発明の回路のタイミングを示した
ものである。プログラムカウンタ14はクロックAの立
ち下がりから次の立ち下がりまでの1クロックサイクル
間にセットされた状態になっている。すなわち、このク
ロックサイクル間においてプログラムカウンタ14の内
容が制御記憶回路13のアドレスを指定し、指定された
番地の内容が制御信号として前記プログラムレジスタ1
にセットされることにより命令の解読がなされる。この
プログラムカウンタ14の内容をアドレスnとする。ア
ドレスnが解読されている間、同じクロックサイクル間
においては勿論前の命令の実行がプログラムレジスタl
の内容に従って実行されている。アドレスnが命令フェ
ッチサイクルにおいて解読され、次にクロ・ツクAの立
ち下がりにおいて解読された結果がプログラムレジスタ
1にセットされるとその内容が次の実行サイクルにおい
て実行されることになる。すなわちインストラクション
nがプログラムレジスタ1に保持され、ALU8を用い
てAバス、及びBバスのバス上に伝播されるAオペラン
ドとBオペランドの入力を演算し、演算した結果を内部
レジスタ4、或いは外部レジスタ12にセットするとい
う実行がこの1サイクル間において行われることになる
。まず、プログラムレジスタ1に命令解読された結果が
セットされるとAアドレスデコーダ2又はBアドレスデ
コーダ3によってアドレス部がデコードされ内部レジス
タ4あるいは外部レジスタ12のリードアドレスが決定
される。このとき、仮に内部レジスタ4のレジスタ内容
と外部レジスタ12のレジスタ内容とを読出しALU8
で演算した結果を外部レジスタ12に書込む場合の命令
実行を行う場合を考察する。すると、プログラムレジス
タ1のアドレス部が決定されAアドレスデコーダ2を介
して内部レジスタ4のAアドレスが決定され、このアド
レスの内容が内部レジスタ4から読み出されてマルチプ
レクサ6の入力となりAバスに伝達される。
レジスタ12の書込みを決定し、データバッファ9及び
ディスティネーションバッファ10のセットを決めるク
ロックAよりも半サイクル遅れたクロックBを用いて命
令のフェッチと実行をクロックAの2サイクル間にわた
って有効に実行する本発明の回路のタイミングを示した
ものである。プログラムカウンタ14はクロックAの立
ち下がりから次の立ち下がりまでの1クロックサイクル
間にセットされた状態になっている。すなわち、このク
ロックサイクル間においてプログラムカウンタ14の内
容が制御記憶回路13のアドレスを指定し、指定された
番地の内容が制御信号として前記プログラムレジスタ1
にセットされることにより命令の解読がなされる。この
プログラムカウンタ14の内容をアドレスnとする。ア
ドレスnが解読されている間、同じクロックサイクル間
においては勿論前の命令の実行がプログラムレジスタl
の内容に従って実行されている。アドレスnが命令フェ
ッチサイクルにおいて解読され、次にクロ・ツクAの立
ち下がりにおいて解読された結果がプログラムレジスタ
1にセットされるとその内容が次の実行サイクルにおい
て実行されることになる。すなわちインストラクション
nがプログラムレジスタ1に保持され、ALU8を用い
てAバス、及びBバスのバス上に伝播されるAオペラン
ドとBオペランドの入力を演算し、演算した結果を内部
レジスタ4、或いは外部レジスタ12にセットするとい
う実行がこの1サイクル間において行われることになる
。まず、プログラムレジスタ1に命令解読された結果が
セットされるとAアドレスデコーダ2又はBアドレスデ
コーダ3によってアドレス部がデコードされ内部レジス
タ4あるいは外部レジスタ12のリードアドレスが決定
される。このとき、仮に内部レジスタ4のレジスタ内容
と外部レジスタ12のレジスタ内容とを読出しALU8
で演算した結果を外部レジスタ12に書込む場合の命令
実行を行う場合を考察する。すると、プログラムレジス
タ1のアドレス部が決定されAアドレスデコーダ2を介
して内部レジスタ4のAアドレスが決定され、このアド
レスの内容が内部レジスタ4から読み出されてマルチプ
レクサ6の入力となりAバスに伝達される。
この伝播遅延時間が第2図のTAである。また、プログ
ラムレジスタ1のアドレスフィールドが決定されBアド
レスデコーダ3及びマルチプレクサ5、バッファ21を
介して外部レジスタ12のリードアドレスが決定される
と、そのリードアドレスに従って読出される外部レジス
タ12の出力が再びチップ内部に入力されマルチプレク
サ7の入力に与えられBバスに伝達される。このBバス
まで伝達されるまでのパスの伝播遅延時間がT3によっ
て表現されている。演算結果はALU8の伝播遅延時間
を含めてDバス上に出力されるまでの時間で第2図のT
cによって表現される。演算された結果及び行先番地は
それぞれクロックAの次の立ち下がりでデータバッファ
9及びディスティネーションバッファ10にセットされ
る。そして実行サイクルの次のサイクルの中間のクロッ
クBの立ち下がりによって前記データバッファ9に格納
されたデータがディスティネーションバッファ10に格
納されたアドレスによって指定される外部レジスタ12
の番地に格納される。即ち第2図に示すように実行サイ
クルの次のサイクルにおいてデータバッファ9の値及び
ディスティネーションアドレス10の値は1サイクル間
保持される。
ラムレジスタ1のアドレスフィールドが決定されBアド
レスデコーダ3及びマルチプレクサ5、バッファ21を
介して外部レジスタ12のリードアドレスが決定される
と、そのリードアドレスに従って読出される外部レジス
タ12の出力が再びチップ内部に入力されマルチプレク
サ7の入力に与えられBバスに伝達される。このBバス
まで伝達されるまでのパスの伝播遅延時間がT3によっ
て表現されている。演算結果はALU8の伝播遅延時間
を含めてDバス上に出力されるまでの時間で第2図のT
cによって表現される。演算された結果及び行先番地は
それぞれクロックAの次の立ち下がりでデータバッファ
9及びディスティネーションバッファ10にセットされ
る。そして実行サイクルの次のサイクルの中間のクロッ
クBの立ち下がりによって前記データバッファ9に格納
されたデータがディスティネーションバッファ10に格
納されたアドレスによって指定される外部レジスタ12
の番地に格納される。即ち第2図に示すように実行サイ
クルの次のサイクルにおいてデータバッファ9の値及び
ディスティネーションアドレス10の値は1サイクル間
保持される。
そして外部レジスタ12の書込クロックは、クロックB
の立ち下がりで行うために、クロックAの中間において
外部レジスタ12の書込みが実行される。このとき外部
レジスタ12の書込アドレス及び書込み用のデータは決
定されているので問題なく書込動作は実行できることに
なる。このようにデータバッファ9及びディスティネー
ションバッファ10を設置することにより、Aバス、B
バス、Dバスのデータと行先アドレスの決定及びそのア
ドレスに従ってデータを書込むという動作とが時間的に
バッファリング手段によって分離され、結果として伝播
遅延時間が減少することが可能となる。
の立ち下がりで行うために、クロックAの中間において
外部レジスタ12の書込みが実行される。このとき外部
レジスタ12の書込アドレス及び書込み用のデータは決
定されているので問題なく書込動作は実行できることに
なる。このようにデータバッファ9及びディスティネー
ションバッファ10を設置することにより、Aバス、B
バス、Dバスのデータと行先アドレスの決定及びそのア
ドレスに従ってデータを書込むという動作とが時間的に
バッファリング手段によって分離され、結果として伝播
遅延時間が減少することが可能となる。
この動作をさらに詳細に説明するために、第3図の伝播
遅延のタイミングチャートを用いて従来技術と比較して
本発明の詳細な説明する。従来技術においては前記デー
タバッファ9・ディスティネーションバッファ10等の
バッファ手段カナイために、第3図の上部に示すような
伝播遅延時間の長いクリティカルバスが生成されてしま
う。即ちプログラムレジスタ1にアドレス部がセットさ
れアドレスが決定されるまでの時間、Aアドレスデコー
ダを介して内部レジスタ4のアドレスが決定される時間
又はBアドレスデコーダ3を介してマルチプレクサ5、
バッファ21及び外部レジスタ12のリードアドレスが
決定されるまでの時間のうち大きな遅延時間を持つ後者
の場合の時間、そして内部レジスタ4がアクセスされる
時間と外部レジスタ12のアクセス時間のうちクリティ
カルバスに含まれる後者の時間、アクセスタイム、外部
レジスタ12からデータが読出されチップ内部に入りマ
ルチプレクサ7を介してBバスに伝達されるまでの遅延
時間が加算される。さらに、ALU8の実行時間である
ALUの伝播遅延が加算される。さらに、データバッフ
ァ9、ディスティネーションバッファ10が存在しない
から、ALU8の出力結果がチップ外部に出され、外部
レジスタ12の入力に入るまでの伝播遅延時間に外部レ
ジスタ12のセットアツプタイムが加算される。
遅延のタイミングチャートを用いて従来技術と比較して
本発明の詳細な説明する。従来技術においては前記デー
タバッファ9・ディスティネーションバッファ10等の
バッファ手段カナイために、第3図の上部に示すような
伝播遅延時間の長いクリティカルバスが生成されてしま
う。即ちプログラムレジスタ1にアドレス部がセットさ
れアドレスが決定されるまでの時間、Aアドレスデコー
ダを介して内部レジスタ4のアドレスが決定される時間
又はBアドレスデコーダ3を介してマルチプレクサ5、
バッファ21及び外部レジスタ12のリードアドレスが
決定されるまでの時間のうち大きな遅延時間を持つ後者
の場合の時間、そして内部レジスタ4がアクセスされる
時間と外部レジスタ12のアクセス時間のうちクリティ
カルバスに含まれる後者の時間、アクセスタイム、外部
レジスタ12からデータが読出されチップ内部に入りマ
ルチプレクサ7を介してBバスに伝達されるまでの遅延
時間が加算される。さらに、ALU8の実行時間である
ALUの伝播遅延が加算される。さらに、データバッフ
ァ9、ディスティネーションバッファ10が存在しない
から、ALU8の出力結果がチップ外部に出され、外部
レジスタ12の入力に入るまでの伝播遅延時間に外部レ
ジスタ12のセットアツプタイムが加算される。
この合計伝播播遅延時間がクロックサイクルを決めるこ
とになる。即ち従来技術においては、データバッファ9
及びディスティネーションバッファ10の入出力におい
て伝播遅延時間が分離されないので非常に長い伝播遅延
時間を持つクリティカフL/ ハスが形成され、このク
リティカルバスによってクロックサイクルを長くせざる
を得ないという問題があった。
とになる。即ち従来技術においては、データバッファ9
及びディスティネーションバッファ10の入出力におい
て伝播遅延時間が分離されないので非常に長い伝播遅延
時間を持つクリティカフL/ ハスが形成され、このク
リティカルバスによってクロックサイクルを長くせざる
を得ないという問題があった。
それに対し第3図の下部に示すように本発明ではクロッ
クサイクルが短くすることが可能となっている0本発明
においてはデータバッファ9及びディスティネーション
バッファ10の存在によってバッファの前後において伝
播遅延時間が分離される形で決定される。即ち、本発明
では、プログラムレジスタ1の内容がリードされるまで
のアドレス決定、およびBアドレスデコーダ3、マルチ
プレクサ5及び外部レジスタ12のリードアドレスを決
定するまでのアドレス決定時間、外部レジスタ12を読
出すためのアクセスタイム、読出された内容がマルチプ
レクサ7を介してALU8のBバスにのるまでのリード
データバスディレィ、及びALU8での実行時間、そし
てそのALUの結果をデータバッファ9に書込むための
内部配線バスディレィ、及びデータバッファ9のセット
アンプタイムをすべて加えた伝播遅延時間で短いクロッ
クサイクルが決定されることになる。アドレスに対して
も同様に、ディスティネーションバッファ10によって
その入力側と出力側で伝播遅延時間が分離される。
クサイクルが短くすることが可能となっている0本発明
においてはデータバッファ9及びディスティネーション
バッファ10の存在によってバッファの前後において伝
播遅延時間が分離される形で決定される。即ち、本発明
では、プログラムレジスタ1の内容がリードされるまで
のアドレス決定、およびBアドレスデコーダ3、マルチ
プレクサ5及び外部レジスタ12のリードアドレスを決
定するまでのアドレス決定時間、外部レジスタ12を読
出すためのアクセスタイム、読出された内容がマルチプ
レクサ7を介してALU8のBバスにのるまでのリード
データバスディレィ、及びALU8での実行時間、そし
てそのALUの結果をデータバッファ9に書込むための
内部配線バスディレィ、及びデータバッファ9のセット
アンプタイムをすべて加えた伝播遅延時間で短いクロッ
クサイクルが決定されることになる。アドレスに対して
も同様に、ディスティネーションバッファ10によって
その入力側と出力側で伝播遅延時間が分離される。
このように本発明ではデータバッファ9及びディスティ
ネーションバッファ10の設置によってバッファの入力
側と出力側で伝播遅延時間が分離できるので、従来法よ
りも、ALUの出力結果から外部レジスタ12の書込み
までのライトデータバスディレィの分だけクリティカル
パスの伝播遅延時間が短縮できることになる。さらにデ
ータバッファ9及びディスティネーションバッファ10
の設置によって生じる外部レジスタ12のリードの後の
読出し命令に対する制限性に対してもコンパレータ15
を有効に利用することによってディスティネーションバ
ッファの結果と現在のアドレスとを比較し、一致する場
合にデータバッファ9のデータをALU8に入力するよ
うにしてすべての命令が1クロツクサイクルで高速に実
行される。
ネーションバッファ10の設置によってバッファの入力
側と出力側で伝播遅延時間が分離できるので、従来法よ
りも、ALUの出力結果から外部レジスタ12の書込み
までのライトデータバスディレィの分だけクリティカル
パスの伝播遅延時間が短縮できることになる。さらにデ
ータバッファ9及びディスティネーションバッファ10
の設置によって生じる外部レジスタ12のリードの後の
読出し命令に対する制限性に対してもコンパレータ15
を有効に利用することによってディスティネーションバ
ッファの結果と現在のアドレスとを比較し、一致する場
合にデータバッファ9のデータをALU8に入力するよ
うにしてすべての命令が1クロツクサイクルで高速に実
行される。
以上のべたように本発明では、ALUの出力を実行サイ
クル中に外部レジスタまで伝播させ実行サイクルの終わ
りのクロックで外部レジスタにデータをセットする従来
の技術と比較して、ALUの出力結果とアドレスをバッ
ファリングすることにより、バッファ手段の入力側と出
力側で伝播遅延時間を分離することができ、結果として
クロックサイクルを短くすることができ、MPUの処理
能力を向上させるという効果がある。
クル中に外部レジスタまで伝播させ実行サイクルの終わ
りのクロックで外部レジスタにデータをセットする従来
の技術と比較して、ALUの出力結果とアドレスをバッ
ファリングすることにより、バッファ手段の入力側と出
力側で伝播遅延時間を分離することができ、結果として
クロックサイクルを短くすることができ、MPUの処理
能力を向上させるという効果がある。
第1図は本発明のマイクロプロセッサの制御方式に従う
構成ブロック図、 第2図は本発明の詳細な説明するタイミングチャート、 第3図は従来技術と本発明の伝播遅延時間の比較を示す
タイムチャートである。 1・・・プログラムレジスタ(P R)、2・・・Aア
ドレスデコーダ、 3・・・Bアドレスデコーダ、 4・・・内部レジスタ、 5・・・マルチプレクサ、 6・・・マルチプレクサ、 7・・・Bバスマルチプレクサ、 8・・・アリスメテインク・ロジック・ユニット (
A L U) 、 9・・・データバッファ 10・・・ディスティネーションバッファ、11・・・
入力データ選択用マルチプレクサ、12・・・外部レジ
スタ、 13・・・制御記憶回路、 14・・・プログラムカウンタ(PC)、15・・・コ
ンパレータ。
構成ブロック図、 第2図は本発明の詳細な説明するタイミングチャート、 第3図は従来技術と本発明の伝播遅延時間の比較を示す
タイムチャートである。 1・・・プログラムレジスタ(P R)、2・・・Aア
ドレスデコーダ、 3・・・Bアドレスデコーダ、 4・・・内部レジスタ、 5・・・マルチプレクサ、 6・・・マルチプレクサ、 7・・・Bバスマルチプレクサ、 8・・・アリスメテインク・ロジック・ユニット (
A L U) 、 9・・・データバッファ 10・・・ディスティネーションバッファ、11・・・
入力データ選択用マルチプレクサ、12・・・外部レジ
スタ、 13・・・制御記憶回路、 14・・・プログラムカウンタ(PC)、15・・・コ
ンパレータ。
Claims (1)
- 【特許請求の範囲】 制御記憶回路から出力される制御信号をセットするプロ
グラムレジスタの内容をデコードしチップ内部にある内
部レジスタ又はチップ外部にある外部レジスタの内容を
少なくともオペランドとすることができる演算論理ユニ
ットで論理演算を実行し、演算した結果を前記内部レジ
スタ、或いは外部レジスタに少なくともセットするマイ
クロプロセッサユニットにおいて、 前記演算論理ユニットの出力結果を一時保持するデータ
バッファと、 前記プログラムレジスタのアドレスフィールドをデコー
ドした結果を一時保持するディスティネーションバッフ
ァと、 前記プログラムレジスタのアドレスフィールドをデコー
ドした信号と前記ディスティネーションバッファの出力
とを比較する比較手段とを有し、前記内部レジスタと前
記外部レジスタとのデータに対して前記演算論理ユニッ
トで演算した結果を前記外部レジスタに格納する命令の
実行時に前記演算論理ユニットの出力データ及び前記プ
ログラムレジスタのアドレスフィールドから出力される
前記外部レジスタに対する行先番地をそれぞれ前記デー
タバッファ及びディスティネーションバッファでバッフ
ァリングし、前記実行サイクルの次のサイクルの後半で
バッファリングした前記行先番地に基づき前記データバ
ッファでバッファリングしたデータを前記外部レジスタ
に書込み、前記命令の次のサイクルで前記外部レジスタ
のリード命令が指示された場合には前記比較手段によっ
て前記ディスティネーションバッファにセットされてい
るアドレスと前記プログラムレジスタのアドレスフィー
ルドから出力される現在のアドレスとを比較し、比較さ
れた結果次の命令が外部レジスタのリード命令であるこ
とを確認した場合には、前記外部レジスタのリードデー
タを使用せず前記データバッファにセットされているデ
ータを読出しデータとして用いることを特徴とするマイ
クロプロセッサ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61031649A JPS62189535A (ja) | 1986-02-15 | 1986-02-15 | マイクロプロセツサ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61031649A JPS62189535A (ja) | 1986-02-15 | 1986-02-15 | マイクロプロセツサ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62189535A true JPS62189535A (ja) | 1987-08-19 |
Family
ID=12337026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61031649A Pending JPS62189535A (ja) | 1986-02-15 | 1986-02-15 | マイクロプロセツサ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62189535A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05143328A (ja) * | 1991-11-20 | 1993-06-11 | Fujitsu Ltd | 情報処理装置におけるレジスタの読出制御方式 |
-
1986
- 1986-02-15 JP JP61031649A patent/JPS62189535A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05143328A (ja) * | 1991-11-20 | 1993-06-11 | Fujitsu Ltd | 情報処理装置におけるレジスタの読出制御方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4774688A (en) | Data processing system for determining min/max in a single operation cycle as a result of a single instruction | |
US4541045A (en) | Microprocessor architecture employing efficient operand and instruction addressing | |
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
JPH0769791B2 (ja) | マイクロプロセッサ | |
US5247624A (en) | Microprogram controller including leading microinstruction from a generator executed while succeeding microinstruction from memory is read out | |
KR20030051380A (ko) | 마이크로프로세서 | |
KR920002573B1 (ko) | 데이타 처리기 | |
JPS62189535A (ja) | マイクロプロセツサ制御装置 | |
US5978925A (en) | System for improving processing efficiency in a pipeline by delaying a clock signal to a program counter and an instruction memory behind a system clock | |
US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages | |
EP0633521B1 (en) | Microprocessor including circuit for generating signal used for tracing executed instruction stream | |
JPH0210454B2 (ja) | ||
JPH08241296A (ja) | 半導体集積回路 | |
JP3043341B2 (ja) | マイクロコンピュータシステム | |
JP3461887B2 (ja) | 可変長パイプライン制御装置 | |
JPH06103064A (ja) | データ処理装置及びそのデータ処理方法 | |
KR950014162B1 (ko) | 파이프라인(Pipeline)이 구비된 프로세서에서 간단한 반복명령어의 구현방법 | |
JPS6259829B2 (ja) | ||
JP2000029696A (ja) | プロセッサおよびパイプライン処理制御方法 | |
JPS62175830A (ja) | マイクロプロセツサ制御回路 | |
JP2522564B2 (ja) | プログラマブルコントロ―ラ | |
JP2522563B2 (ja) | プログラマブルコントロ―ラ | |
JP2003036248A (ja) | シングルチップマイクロプロセッサに用いる小規模プロセッサ | |
JPH0228828A (ja) | 最大値最小値検出回路 | |
JPS6134168B2 (ja) |