JPH06100968B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH06100968B2 JPH06100968B2 JP61067843A JP6784386A JPH06100968B2 JP H06100968 B2 JPH06100968 B2 JP H06100968B2 JP 61067843 A JP61067843 A JP 61067843A JP 6784386 A JP6784386 A JP 6784386A JP H06100968 B2 JPH06100968 B2 JP H06100968B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- decoded
- information
- operand
- 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
- 230000010365 information processing Effects 0.000 title claims description 12
- 238000012545 processing Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 description 52
- 238000013519 translation Methods 0.000 description 32
- 230000014616 translation Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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/3802—Instruction prefetching
-
- 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置の主要部となる中央処理装置に関
し、特にその命令解読回路およびその解読制御方式に関
する。
し、特にその命令解読回路およびその解読制御方式に関
する。
従来の仮想記憶管理機能を持つ情報処理装置において、
命令デコーダと命令実行部との間にデコード済命令キュ
ーメモリを有するものは、命令デコード時にメモリアド
レス計算が必要な場合に、アドレス変換が終了するまで
は、命令デコーダでデコードが終了したデコード済命令
情報をキューメモリに入れることができなかった。これ
に対し、本発明によれば、アドレス変換処理が終了せず
とも命令デコーダはデコード済命令情報をデコード済命
令キューメモリに格納し、即次の命令のデデコードに移
ることができる。これは、デコード済命令キューメモリ
の複数のエントリに夫々カウンタ手段を設け、これらを
アドレス計算要求信号とアドレス変換終了信号とで制御
することにより達成できる。
命令デコーダと命令実行部との間にデコード済命令キュ
ーメモリを有するものは、命令デコード時にメモリアド
レス計算が必要な場合に、アドレス変換が終了するまで
は、命令デコーダでデコードが終了したデコード済命令
情報をキューメモリに入れることができなかった。これ
に対し、本発明によれば、アドレス変換処理が終了せず
とも命令デコーダはデコード済命令情報をデコード済命
令キューメモリに格納し、即次の命令のデデコードに移
ることができる。これは、デコード済命令キューメモリ
の複数のエントリに夫々カウンタ手段を設け、これらを
アドレス計算要求信号とアドレス変換終了信号とで制御
することにより達成できる。
従来提案されている中央情報処理装置の一例を第10図に
示す。第10図において、101は命令先取り部、102は命令
デコード部、103はアドレス変換部、104は命令実行部、
105はバスインターフェース部である。命令先取り部101
はバスインターフェース部105から先取りした命令コー
ドを蓄える命令キューメモリを有し、命令デコード部10
2からの要求にしたがって先取りした命令コードを命令
キューメモリから読み出す。命令デコード部102は命令
先取り部101から読み出された命令コードをデコードし
て、命令実行部104への制御情報を作り出す。また、メ
モリオペランドの実効アドレスを計算して、アドレス変
換部103へアドレス変換処理を要求する。アドレス変換
部103は仮想アドレスから実アドレスへの変換をハード
ウェア的に行い、変換結果をバスインタフェース部105
へ転送する。命令実行部104は命令デコード部102から送
られてきた制御情報をもとに演算等を実行する。バスイ
ンターフェース部105はアドレス変換部103から送られて
来た実アドレスによって外部メモリのアクセスをした
り、命令先取り部101のための命令の先取りを行なう。
示す。第10図において、101は命令先取り部、102は命令
デコード部、103はアドレス変換部、104は命令実行部、
105はバスインターフェース部である。命令先取り部101
はバスインターフェース部105から先取りした命令コー
ドを蓄える命令キューメモリを有し、命令デコード部10
2からの要求にしたがって先取りした命令コードを命令
キューメモリから読み出す。命令デコード部102は命令
先取り部101から読み出された命令コードをデコードし
て、命令実行部104への制御情報を作り出す。また、メ
モリオペランドの実効アドレスを計算して、アドレス変
換部103へアドレス変換処理を要求する。アドレス変換
部103は仮想アドレスから実アドレスへの変換をハード
ウェア的に行い、変換結果をバスインタフェース部105
へ転送する。命令実行部104は命令デコード部102から送
られてきた制御情報をもとに演算等を実行する。バスイ
ンターフェース部105はアドレス変換部103から送られて
来た実アドレスによって外部メモリのアクセスをした
り、命令先取り部101のための命令の先取りを行なう。
第11図は第10図に示した命令デコード部102とアドレス
変換部103についてさらに詳細に示したものである。801
は命令先取り部101内に存在し命令コードを蓄える命令
キューメモリである。802は命令デコード部102のうちの
命令コードおよびオペランドフィールドのデコーダであ
る。803はオペランドフィールドのデコード結果をもと
に実効アドレスオペランドやメモリオペランドのアドレ
ス計算を行うアドレス計算回路である。804は、メモリ
オペランドの場合、アドレス計算回路803で計算された
実効アドレスを仮想アドレスから実アドレスに変換して
バスインターフェース部105に送るアドレス変換回路で
あり、第10図の103に対応する。805は命令デコーダ802
によって得られたデコード情報を命令実行部104へ転送
するための命令情報バッファである。
変換部103についてさらに詳細に示したものである。801
は命令先取り部101内に存在し命令コードを蓄える命令
キューメモリである。802は命令デコード部102のうちの
命令コードおよびオペランドフィールドのデコーダであ
る。803はオペランドフィールドのデコード結果をもと
に実効アドレスオペランドやメモリオペランドのアドレ
ス計算を行うアドレス計算回路である。804は、メモリ
オペランドの場合、アドレス計算回路803で計算された
実効アドレスを仮想アドレスから実アドレスに変換して
バスインターフェース部105に送るアドレス変換回路で
あり、第10図の103に対応する。805は命令デコーダ802
によって得られたデコード情報を命令実行部104へ転送
するための命令情報バッファである。
このような構成の情報処理装置においては、まず命令キ
ューメモリ801から命令デコーダ802へ命令が送られる。
命令デコーダ802では、演算の種類などの命令コードに
関する情報がデコードされ、結果が命令情報バッファ80
5にセットされる。次に、命令のオペランド部がデコー
ドされる。この時、オペランドがメモリオペランドであ
る場合は、まず命令デコーダ802がアドレス計算回路803
に実効アドレス計算を指示する。アドレス計算回路803
は計算した実効アドレスをアドレス変換回路804に送
り、ここで仮想アドレスから実アドレスへのアドレス変
換が行なわれる。変換後の実アドレスはメモリオペラン
ドフェッチのためにバスインターフェース部105へ送ら
れる。アドレス変換時にページフォルトや保護例外など
の変換例外が発生したか正常に変換が行なわれたかは、
アドレス変換回路103からアドレス計算回路803をへて命
令デコーダ802に通知される。命令デコーダ202はアドレ
ス変換が正常ならば命令実行可能、変換例外が発生した
ならば例外処理起動を示す情報を命令情報バッファ805
に設定する。これにより命令実行部104は起動される。
ューメモリ801から命令デコーダ802へ命令が送られる。
命令デコーダ802では、演算の種類などの命令コードに
関する情報がデコードされ、結果が命令情報バッファ80
5にセットされる。次に、命令のオペランド部がデコー
ドされる。この時、オペランドがメモリオペランドであ
る場合は、まず命令デコーダ802がアドレス計算回路803
に実効アドレス計算を指示する。アドレス計算回路803
は計算した実効アドレスをアドレス変換回路804に送
り、ここで仮想アドレスから実アドレスへのアドレス変
換が行なわれる。変換後の実アドレスはメモリオペラン
ドフェッチのためにバスインターフェース部105へ送ら
れる。アドレス変換時にページフォルトや保護例外など
の変換例外が発生したか正常に変換が行なわれたかは、
アドレス変換回路103からアドレス計算回路803をへて命
令デコーダ802に通知される。命令デコーダ202はアドレ
ス変換が正常ならば命令実行可能、変換例外が発生した
ならば例外処理起動を示す情報を命令情報バッファ805
に設定する。これにより命令実行部104は起動される。
命令実行部104は命令情報バッファ805から読出された情
報に基いて命令を実行するが、命令情報バッファから変
換例外発生が読み出されるとページフォルト等の対応す
る処理を行った後、命令デコード部102に対し命令の再
デコードを要求する。命令デコード時に変換例外が発生
しなかった場合は、命令実行部104による命令の実行が
終了した時点で、命令デコード部102に対して次の命令
のデコード開始を要求する。
報に基いて命令を実行するが、命令情報バッファから変
換例外発生が読み出されるとページフォルト等の対応す
る処理を行った後、命令デコード部102に対し命令の再
デコードを要求する。命令デコード時に変換例外が発生
しなかった場合は、命令実行部104による命令の実行が
終了した時点で、命令デコード部102に対して次の命令
のデコード開始を要求する。
通常、仮想記憶管理下では、オペランドがページフォル
ト等のアドレス変換例外を起こしているか否かは、命令
デコード後にオペランドアドレスが確定するまでわから
ない。例えば、ページフォルトが発生していた場合に
は、オペレーティングシステムが例外処理を行ったの
ち、その命令を再実行する必要がある。しかし、上述し
た従来の方法では、命令のデコード終了を待って命令の
実行を行なわなければ、アドレス変換例外処理や命令実
行を行えないし、さらに命令の実行終了をもって次の命
令のデコードを開始している。このため、従来の情報処
理装置では、アドレス変換処理が終了するまで命令デコ
ーダは次の命令のデコードを行うことができず、処理効
率が悪いという欠点があった。
ト等のアドレス変換例外を起こしているか否かは、命令
デコード後にオペランドアドレスが確定するまでわから
ない。例えば、ページフォルトが発生していた場合に
は、オペレーティングシステムが例外処理を行ったの
ち、その命令を再実行する必要がある。しかし、上述し
た従来の方法では、命令のデコード終了を待って命令の
実行を行なわなければ、アドレス変換例外処理や命令実
行を行えないし、さらに命令の実行終了をもって次の命
令のデコードを開始している。このため、従来の情報処
理装置では、アドレス変換処理が終了するまで命令デコ
ーダは次の命令のデコードを行うことができず、処理効
率が悪いという欠点があった。
本発明は上記の実情に鑑みてなされたものでその目的と
する所は、仮想記憶管理を行う場合においても命令デコ
ード処理と命令実行処理とを並列して実行できるように
し、さらに命令デコード処理の中でも、デコード、実効
アドレス計算、アドレス変換を夫々並列して実行できる
命令デコード回路を提供し、命令のデコード時間の短縮
をはかることのできる情報処理装置を得ることである。
する所は、仮想記憶管理を行う場合においても命令デコ
ード処理と命令実行処理とを並列して実行できるように
し、さらに命令デコード処理の中でも、デコード、実効
アドレス計算、アドレス変換を夫々並列して実行できる
命令デコード回路を提供し、命令のデコード時間の短縮
をはかることのできる情報処理装置を得ることである。
本発明は、順次実行されるべき複数の命令が先取りされ
て格納される命令キューメモリと、該命令キューメモリ
に格納された命令を格納順に解読し、解読された命令の
実行に必要な解読情報を生成する命令デコーダと、前記
解読された命令の実行に必要なアドレスを前記命令デコ
ーダからの解読情報の一部であるオペランドに関する情
報を用いて生成するアドレス生成手段と、前記命令デコ
ーダから出力される解読情報を順次記憶するデコーダ済
命令キューメモリと、該デコーダ済命令キューメモリか
ら出力される解読情報に基づいて命令の実行を行う命令
実行回路とを有し、前記アドレス生成手段によるアドレ
ス生成の結果、前記デコーダ済命令キューメモリに既に
記憶されている解読情報を無効にすべき命令であること
が判明したとき、これに対応する例外処理を行うよう規
定されている情報処理装置において、前記デコーダ済命
令キューメモリは、前記命令デコーダから出力される解
読情報を順次記憶する複数の記憶手段と、前記アドレス
生成手段によるアドレス生成の結果、前記例外処理が必
要かを否か示す情報が記憶される第1の手段と、アドレ
ス生成が終了したか否かを示す情報が記憶される第2の
手段とを有し、前記第1および第2の手段は前記複数の
記憶手段の各々に対応して設定されており、かつ前記命
令デコーダからのアップ信号及び前記アドレス生成手段
からのダウン信号/エラー信号に基づいてキューメモリ
制御回路によって制御され、これら第1及び第2の手段
の記憶情報に応じて前記命令実行回路での命令実行の可
否を判定するようにしたことを特徴とする。
て格納される命令キューメモリと、該命令キューメモリ
に格納された命令を格納順に解読し、解読された命令の
実行に必要な解読情報を生成する命令デコーダと、前記
解読された命令の実行に必要なアドレスを前記命令デコ
ーダからの解読情報の一部であるオペランドに関する情
報を用いて生成するアドレス生成手段と、前記命令デコ
ーダから出力される解読情報を順次記憶するデコーダ済
命令キューメモリと、該デコーダ済命令キューメモリか
ら出力される解読情報に基づいて命令の実行を行う命令
実行回路とを有し、前記アドレス生成手段によるアドレ
ス生成の結果、前記デコーダ済命令キューメモリに既に
記憶されている解読情報を無効にすべき命令であること
が判明したとき、これに対応する例外処理を行うよう規
定されている情報処理装置において、前記デコーダ済命
令キューメモリは、前記命令デコーダから出力される解
読情報を順次記憶する複数の記憶手段と、前記アドレス
生成手段によるアドレス生成の結果、前記例外処理が必
要かを否か示す情報が記憶される第1の手段と、アドレ
ス生成が終了したか否かを示す情報が記憶される第2の
手段とを有し、前記第1および第2の手段は前記複数の
記憶手段の各々に対応して設定されており、かつ前記命
令デコーダからのアップ信号及び前記アドレス生成手段
からのダウン信号/エラー信号に基づいてキューメモリ
制御回路によって制御され、これら第1及び第2の手段
の記憶情報に応じて前記命令実行回路での命令実行の可
否を判定するようにしたことを特徴とする。
次に本発明の実施例を図面を参照して詳細に説明する。
第1図は本発明の一実施例による命令デコード部を中心
とするマイクロプロセッサの要部ブロック図である。
第1図は本発明の一実施例による命令デコード部を中心
とするマイクロプロセッサの要部ブロック図である。
1は命令先取り部内に存在し、先取りされた命令コード
を蓄える命令キューメモリである。2は命令デコーダで
あり、命令要求信号(Ireg)11を用いて命令キューメモ
リ1に命令読出しを要求する。命令キューメモリ1から
バス12を通して読出された命令について、デコーダ2は
まずオペコードをデコードし、オペコードのデコード結
果にもとずいて、もしあればオペランドフィールドをデ
コードして演算の種類等命令実行に必要な情報とオペラ
ンドに関する情報とをデコード済命令キューメモリ5に
設定する。さらに、命令デコーダ2は、オペランドのデ
コード結果をもとに、実効アドレスオペランドやメモリ
オペランドの実効アドレス計算に必要なデータをアドレ
ス計算回路3へ送る。3はアドレス計算回路で、命令デ
コーダ2からの要求に応じて実効アドレス計算を行う。
4はアドレス変換回路で、仮想アドレスから実アドレス
へのアドレス変換を行うと同時に、ページフォルトや保
護例外などの変換例外(Terror)の検出を行う。5はデ
コード済命令キューメモリで、命令をデコードして得ら
れたオペコードやオペランドに関する情報、実効アドレ
ス計算が必要なオペランドに関する情報、およびオペラ
ンドで発生したアドレス変換時の変換例外を示すフラグ
情報をキューの有効性を示すフラグ情報とを含むエント
リ情報をキュー構造で保持する機能を有している。6は
実効アドレスレジスタで、オペランドが実効アドレス値
である場合にアドレス計算回路3から出力される実効ア
ドレス値を保持する。7は命令実行回路で、デコード済
命令キューメモリ5の出口のエントリの命令情報が実行
可能になると、その情報を読み出して命令の実行を行
う。
を蓄える命令キューメモリである。2は命令デコーダで
あり、命令要求信号(Ireg)11を用いて命令キューメモ
リ1に命令読出しを要求する。命令キューメモリ1から
バス12を通して読出された命令について、デコーダ2は
まずオペコードをデコードし、オペコードのデコード結
果にもとずいて、もしあればオペランドフィールドをデ
コードして演算の種類等命令実行に必要な情報とオペラ
ンドに関する情報とをデコード済命令キューメモリ5に
設定する。さらに、命令デコーダ2は、オペランドのデ
コード結果をもとに、実効アドレスオペランドやメモリ
オペランドの実効アドレス計算に必要なデータをアドレ
ス計算回路3へ送る。3はアドレス計算回路で、命令デ
コーダ2からの要求に応じて実効アドレス計算を行う。
4はアドレス変換回路で、仮想アドレスから実アドレス
へのアドレス変換を行うと同時に、ページフォルトや保
護例外などの変換例外(Terror)の検出を行う。5はデ
コード済命令キューメモリで、命令をデコードして得ら
れたオペコードやオペランドに関する情報、実効アドレ
ス計算が必要なオペランドに関する情報、およびオペラ
ンドで発生したアドレス変換時の変換例外を示すフラグ
情報をキューの有効性を示すフラグ情報とを含むエント
リ情報をキュー構造で保持する機能を有している。6は
実効アドレスレジスタで、オペランドが実効アドレス値
である場合にアドレス計算回路3から出力される実効ア
ドレス値を保持する。7は命令実行回路で、デコード済
命令キューメモリ5の出口のエントリの命令情報が実行
可能になると、その情報を読み出して命令の実行を行
う。
以下に、上記本実施例の動作の中で、とくに命令オペラ
ンド処理(実行アドレスオペランド処理とメモリオペラ
ンド処理)とデコード済命令キューメモリの有効性の処
理に関して詳しく説明する。まず、第2図を参照して命
令デコーダ2の内部をさらに詳細に説明する。201は命
令デコーダ制御回路で、命令キューメモリ1に対し命令
コードの転送を要求し、オペコードデコーダ202にデコ
ード処理を指令する。オペコードデコーダ202は命令デ
コーダ制御回路201からの指令により命令キュー1から
送られてきた命令コードをデコードし、結果をデコード
済命令キューメモリ5に送るとともに、デコードにより
判明したオペランドの数と種類とを示す情報を命令デコ
ーダ制御回路201へ送る。203はオペランドデコーダで、
命令デコーダ制御回路201からの指令により命令キュー
メモリ1から送られてきた命令コードのオペランド部を
デコードする。11は命令キューメモリ1に対する命令コ
ード読出し要求信号(Ierq)、12は命令キューメモリ1
に接続された命令バスである。13はオペコードとオペラ
ンドとの各デコードの結果得られた情報をデコード済命
令キューメモリ5へ送るための命令情報バス、14は命令
デコード処理が終了し、デコード済命令キューメモリ5
の入口エントリが有効になったことを示す信号(vali
d)、15はオペランドの実効アドレスをアドレス変換中
に変換例外が起ったことをデコード済命令キューメモリ
5に伝える信号(error)、16はアドレス計算回路3に
アドレス計算を要求する時に活性レベル(例えば“H"レ
ベル)となり、デコード済命令キューメモリ5の入口エ
ントリのカウタンタフィールドを歩進(例えばカウント
アップ)させる信号である。20はアドレス変換回路4か
ら変換例外(Terror)発生を命令デコーダ制御回路201
に通知する信号、21はオペランドデコーダ203がアドレ
ス計算回路3へアドレス計算要求を出す時に待ち合せを
行うためのアドレス計算受付け可能を示すレディ信号
(EAready)であり、22はそのアドレス計算要求信号(E
Astart)であり、23はディスプレースメント値、実効ア
ドレスオペランド、メモリオペランド、オペランドの種
類を示す情報等を転送するバスである。
ンド処理(実行アドレスオペランド処理とメモリオペラ
ンド処理)とデコード済命令キューメモリの有効性の処
理に関して詳しく説明する。まず、第2図を参照して命
令デコーダ2の内部をさらに詳細に説明する。201は命
令デコーダ制御回路で、命令キューメモリ1に対し命令
コードの転送を要求し、オペコードデコーダ202にデコ
ード処理を指令する。オペコードデコーダ202は命令デ
コーダ制御回路201からの指令により命令キュー1から
送られてきた命令コードをデコードし、結果をデコード
済命令キューメモリ5に送るとともに、デコードにより
判明したオペランドの数と種類とを示す情報を命令デコ
ーダ制御回路201へ送る。203はオペランドデコーダで、
命令デコーダ制御回路201からの指令により命令キュー
メモリ1から送られてきた命令コードのオペランド部を
デコードする。11は命令キューメモリ1に対する命令コ
ード読出し要求信号(Ierq)、12は命令キューメモリ1
に接続された命令バスである。13はオペコードとオペラ
ンドとの各デコードの結果得られた情報をデコード済命
令キューメモリ5へ送るための命令情報バス、14は命令
デコード処理が終了し、デコード済命令キューメモリ5
の入口エントリが有効になったことを示す信号(vali
d)、15はオペランドの実効アドレスをアドレス変換中
に変換例外が起ったことをデコード済命令キューメモリ
5に伝える信号(error)、16はアドレス計算回路3に
アドレス計算を要求する時に活性レベル(例えば“H"レ
ベル)となり、デコード済命令キューメモリ5の入口エ
ントリのカウタンタフィールドを歩進(例えばカウント
アップ)させる信号である。20はアドレス変換回路4か
ら変換例外(Terror)発生を命令デコーダ制御回路201
に通知する信号、21はオペランドデコーダ203がアドレ
ス計算回路3へアドレス計算要求を出す時に待ち合せを
行うためのアドレス計算受付け可能を示すレディ信号
(EAready)であり、22はそのアドレス計算要求信号(E
Astart)であり、23はディスプレースメント値、実効ア
ドレスオペランド、メモリオペランド、オペランドの種
類を示す情報等を転送するバスである。
オペランドデコーダ203はオペランドタイプが実効アド
レスオペランドやメモリオペランドなどのようにアドレ
ス計算が必要な場合には、命令デコーダ制御回路201オ
ペランドタイプを知らせる。命令デコーダ制御回路201
はアドレス計算回路3がアドレス計算可ならば、アドレ
ス計算回路3へアドレス計算を要求し、あわせてオペラ
ンドデコーダ203からの情報によりアドレス計算回路3
へアドレス計算に必要なディスプレースメント値などの
情報を送る制御を行なう。
レスオペランドやメモリオペランドなどのようにアドレ
ス計算が必要な場合には、命令デコーダ制御回路201オ
ペランドタイプを知らせる。命令デコーダ制御回路201
はアドレス計算回路3がアドレス計算可ならば、アドレ
ス計算回路3へアドレス計算を要求し、あわせてオペラ
ンドデコーダ203からの情報によりアドレス計算回路3
へアドレス計算に必要なディスプレースメント値などの
情報を送る制御を行なう。
命令デコーダ制御回路201はオペコードデコーダ202より
得られたオペランド数とオペランドの種類をもとにもし
オペランド数が0ならばデコード済命令キューメモリ5
の入口エントリを有効にし、一方実効アドレスの計算が
必要なオペランドがある場合はアドレス計算回路3へア
ドレス計算を要求するごとにデコード済命令キューメモ
リ5の入口エントリのカウンタフィールドへカウントア
ップ信号を送る。また命令デコーダ制御回路201はアド
レス変換回路4からの例外発生信号(Terror)を受ける
と、オペコードデコーダ202、オペランドデコーダ203お
よびアドレス計算回路3を強制的に停止し、さらにデコ
ード済命令キューメモリ5へアドレス変換例外信号(er
ror)15を送る。
得られたオペランド数とオペランドの種類をもとにもし
オペランド数が0ならばデコード済命令キューメモリ5
の入口エントリを有効にし、一方実効アドレスの計算が
必要なオペランドがある場合はアドレス計算回路3へア
ドレス計算を要求するごとにデコード済命令キューメモ
リ5の入口エントリのカウンタフィールドへカウントア
ップ信号を送る。また命令デコーダ制御回路201はアド
レス変換回路4からの例外発生信号(Terror)を受ける
と、オペコードデコーダ202、オペランドデコーダ203お
よびアドレス計算回路3を強制的に停止し、さらにデコ
ード済命令キューメモリ5へアドレス変換例外信号(er
ror)15を送る。
第2図で示した命令デコーダの動作を第6図のタイミン
グチャートを用いて説明する。T1サイクルでは命令キュ
ーメモリ1に命令コード読出し要求信号(Ireq)11を送
り命令コードの読出しを要求する。読出された命令Aは
バス12を通して転送される。命令A中のオペコード部A1
はT2サイクルでデコードされる。デコードされた情報は
バス13を介してデコード済命令キューメモリ5へ格納さ
れる。今、命令Aが2つのメモリオペランドを持ってい
るものと仮定すると、オペコードデコーダ202の情報に
より命令デコーダ制御回路201は命令キューメモリに命
令Aのオペランド部を要求するとともにオペランドデコ
ーダ203を起動する。オペランドデコーダ203でデコード
した第1のオペランド部A2の結果をもとに、アドレス計
算回路3に対し実効アドレス計算が要求されるが、この
時アドレス計算回路はレディ状態であるのでただちにア
ドレス計算が開始される。アドレス計算開始(EAstar
t)と同じタイミングでデコード済命令キューメモリ5
に対してカウントアップ信号16が出力される。第2のオ
ペランド部A3に対するアドレス計算要求は、オペランド
部A2のアドレス計算中には受け付けられず、アドレス計
算回路からアドレス計算受け付け可を指示する信号(EA
ready)が出力されてはじめて受け付けられる(T6サイ
クル)。第1のオペランド部A2のアドレス計算開始によ
り、デコード済命令キューメモリ5に対してカウントア
ップ信号が出されカウンタの値は2となる。また、命令
デコーダ制御回路201は命令Aのオペランドのうちアド
レス計算が必要なすべてのオペランドについてアドレス
計算要求を出し終った後、デコード済命令キューメモリ
5に有効信号(valid)14を出してキューエントリを有
効なものとする。
グチャートを用いて説明する。T1サイクルでは命令キュ
ーメモリ1に命令コード読出し要求信号(Ireq)11を送
り命令コードの読出しを要求する。読出された命令Aは
バス12を通して転送される。命令A中のオペコード部A1
はT2サイクルでデコードされる。デコードされた情報は
バス13を介してデコード済命令キューメモリ5へ格納さ
れる。今、命令Aが2つのメモリオペランドを持ってい
るものと仮定すると、オペコードデコーダ202の情報に
より命令デコーダ制御回路201は命令キューメモリに命
令Aのオペランド部を要求するとともにオペランドデコ
ーダ203を起動する。オペランドデコーダ203でデコード
した第1のオペランド部A2の結果をもとに、アドレス計
算回路3に対し実効アドレス計算が要求されるが、この
時アドレス計算回路はレディ状態であるのでただちにア
ドレス計算が開始される。アドレス計算開始(EAstar
t)と同じタイミングでデコード済命令キューメモリ5
に対してカウントアップ信号16が出力される。第2のオ
ペランド部A3に対するアドレス計算要求は、オペランド
部A2のアドレス計算中には受け付けられず、アドレス計
算回路からアドレス計算受け付け可を指示する信号(EA
ready)が出力されてはじめて受け付けられる(T6サイ
クル)。第1のオペランド部A2のアドレス計算開始によ
り、デコード済命令キューメモリ5に対してカウントア
ップ信号が出されカウンタの値は2となる。また、命令
デコーダ制御回路201は命令Aのオペランドのうちアド
レス計算が必要なすべてのオペランドについてアドレス
計算要求を出し終った後、デコード済命令キューメモリ
5に有効信号(valid)14を出してキューエントリを有
効なものとする。
第3図はデコード済命令キューメモリ5の内部をさらに
詳細に示したものである。第3図では3段キュー構造の
例について示している。ここでは、命令デコーダ2から
の情報が設定されるキュー入口エントリをエントリD、
キューの途中のエントリをエントリQ、命令実行部7が
情報を読み出して命令実行を行うキュー出口のエントリ
をエントリEと呼ぶ。301はキューを制御するキューメ
モリ制御回路である。302は命令デコーダ2によってデ
コードされた命令やオペランドに関する情報が設定され
る命令情報フィールドである。303はキューの内容が有
効であることを示す有効フラグであり、304はオペラン
ドの実効アドレスをアドレス変換する際にアドレス変換
例外が発生したことを示す例外フラグ、305は命令デコ
ーダ2により所期設定され、命令デコーダ2からアドレ
ス計算回路3に対するアドレス計算要求が行なわれるご
とにデクリメントされるカウンタフィールドである。キ
ューメモリの中では、有効フラグがセットされているエ
ントリのみが有効である。あるエントリの前方(キュー
の出口側)に無効なエントリが存在すると、有効なエン
トリの内容がすべて前方のエントリに(有効フラグも含
めて)コピーされた後、有効であったエントリの有効フ
ラグ、例外フラグはリセットされ、カウンタフィールド
は0になる。
詳細に示したものである。第3図では3段キュー構造の
例について示している。ここでは、命令デコーダ2から
の情報が設定されるキュー入口エントリをエントリD、
キューの途中のエントリをエントリQ、命令実行部7が
情報を読み出して命令実行を行うキュー出口のエントリ
をエントリEと呼ぶ。301はキューを制御するキューメ
モリ制御回路である。302は命令デコーダ2によってデ
コードされた命令やオペランドに関する情報が設定され
る命令情報フィールドである。303はキューの内容が有
効であることを示す有効フラグであり、304はオペラン
ドの実効アドレスをアドレス変換する際にアドレス変換
例外が発生したことを示す例外フラグ、305は命令デコ
ーダ2により所期設定され、命令デコーダ2からアドレ
ス計算回路3に対するアドレス計算要求が行なわれるご
とにデクリメントされるカウンタフィールドである。キ
ューメモリの中では、有効フラグがセットされているエ
ントリのみが有効である。あるエントリの前方(キュー
の出口側)に無効なエントリが存在すると、有効なエン
トリの内容がすべて前方のエントリに(有効フラグも含
めて)コピーされた後、有効であったエントリの有効フ
ラグ、例外フラグはリセットされ、カウンタフィールド
は0になる。
第3図をもとにデコード済命令キューメモリの働きを述
べる。命令デコーダ2内のオペコードデコーダ202とオ
ペランドデコーダ203でデコードされたデコード済命令
情報がエントリDの命令情報フィールド302に設定され
る。命令デコーダ制御回路201はアドレス計算回路3に
対しオペランドのアドレス計算を起動するごとにカウン
トアップの信号16を用いてキューメモリの入口であるエ
ントリDのカウンタフィールドをインクリメントする。
命令デコーダ制御回路201は実効アドレス計算が必要な
オペランドについて、アドレス計算要求をすべて出し終
ると、エントリDの有効フラグをセットする。イッタン
エントリDが有効となると、前方エントリの空き具合に
応じて、自動的にキューは進む。アドレス計算回路3で
のアドレス計算が終了する(メモリオペランドの場合
は、さらに加えてアドレス変換が成功する)と、キュー
制御回路301に対してカウントダウンの信号17が出力さ
れる。しかしこの信号は、キュー制御回路により、キュ
ー内の有効なエントリのうちでカウンタフィールドの値
が0でなく、かつ最もキュー出口に近いエントリにおけ
るカウンタフィールドに対してカウントダウン信号とし
て与えられる。また、アドレス変換回路4でアドレス変
換例外が発生した場合には、命令デコーダ制御回路201
を通じてキュー制御回路301に例外発生信号15が送られ
るが、この信号も同様にキュー内の有効なエントリのう
ちでカウンタフィールドの値が0でなく、かつ最もキュ
ー出口に近いエントリの例外フラグをセットする信号と
して与えられる。キュー出口のエントリEが有効である
場合において、例外フラグがセットされているかあるい
はカウンタフィールドが0である場合、命令実行可能を
示す信号19がセットされ、命令実行部7はエントリEか
らバス18を通して情報を読み出す。もし、例外フラグが
セットされていたならば、ページフォルト等の例外処理
を行い、例外フラグが立っていなければ命令の実行を行
う。例外処理または命令実行が終了するとエントリEの
有効フラグをクリアして、次の命令に対応するデコード
済情報の入力を待つ。
べる。命令デコーダ2内のオペコードデコーダ202とオ
ペランドデコーダ203でデコードされたデコード済命令
情報がエントリDの命令情報フィールド302に設定され
る。命令デコーダ制御回路201はアドレス計算回路3に
対しオペランドのアドレス計算を起動するごとにカウン
トアップの信号16を用いてキューメモリの入口であるエ
ントリDのカウンタフィールドをインクリメントする。
命令デコーダ制御回路201は実効アドレス計算が必要な
オペランドについて、アドレス計算要求をすべて出し終
ると、エントリDの有効フラグをセットする。イッタン
エントリDが有効となると、前方エントリの空き具合に
応じて、自動的にキューは進む。アドレス計算回路3で
のアドレス計算が終了する(メモリオペランドの場合
は、さらに加えてアドレス変換が成功する)と、キュー
制御回路301に対してカウントダウンの信号17が出力さ
れる。しかしこの信号は、キュー制御回路により、キュ
ー内の有効なエントリのうちでカウンタフィールドの値
が0でなく、かつ最もキュー出口に近いエントリにおけ
るカウンタフィールドに対してカウントダウン信号とし
て与えられる。また、アドレス変換回路4でアドレス変
換例外が発生した場合には、命令デコーダ制御回路201
を通じてキュー制御回路301に例外発生信号15が送られ
るが、この信号も同様にキュー内の有効なエントリのう
ちでカウンタフィールドの値が0でなく、かつ最もキュ
ー出口に近いエントリの例外フラグをセットする信号と
して与えられる。キュー出口のエントリEが有効である
場合において、例外フラグがセットされているかあるい
はカウンタフィールドが0である場合、命令実行可能を
示す信号19がセットされ、命令実行部7はエントリEか
らバス18を通して情報を読み出す。もし、例外フラグが
セットされていたならば、ページフォルト等の例外処理
を行い、例外フラグが立っていなければ命令の実行を行
う。例外処理または命令実行が終了するとエントリEの
有効フラグをクリアして、次の命令に対応するデコード
済情報の入力を待つ。
第3図で示したデコード済命令キューの動作例について
第7図のタイミングチャートを用いて説明する。命令デ
コーダ2はT1からT4サイクルの間に実効アドレス計算が
必要なオペランドを2つ持つ命令についてデコードを行
う。命令デコーダ2はT4サイクルでデコードを終了し、
次の命令のデコードに移る。T5サイクルからT6サイク
ル、およびT7サイクルからT8サイクルにかけてキューが
進んでいる。命令デコーダ2はT6からT7サイクルの間に
2番目の命令のデコードを行っているが、その間にアド
レス計算回路3では1番目の命令のアドレス計算が終了
し、アドレス計算回路3からのカウントダウン信号17
は、キュー内の有効なエントリのうちでカウンタフィー
ルドの値が0でなく、かつ最もキュー出口に近いエント
リQのカウンタフィールドの値をデクリメントする。T8
サイクルでも同様に、カウントダウン信号17はエントリ
Eのカウンタフィールドの値をデクリメントし、これに
よってエントリEは有効かつカウンタ値が0となり、キ
ュー制御回路301によって実効可能信号19が出力され
る。第2番目の命令のアドレス計算においては、アドレ
ス変換以外が発生するが、命令デコード制御回路201か
らの変換例外信号15は正しく第2番目の命令のデコード
済情報が格納されているエントリQの例外フラグをセッ
トする。
第7図のタイミングチャートを用いて説明する。命令デ
コーダ2はT1からT4サイクルの間に実効アドレス計算が
必要なオペランドを2つ持つ命令についてデコードを行
う。命令デコーダ2はT4サイクルでデコードを終了し、
次の命令のデコードに移る。T5サイクルからT6サイク
ル、およびT7サイクルからT8サイクルにかけてキューが
進んでいる。命令デコーダ2はT6からT7サイクルの間に
2番目の命令のデコードを行っているが、その間にアド
レス計算回路3では1番目の命令のアドレス計算が終了
し、アドレス計算回路3からのカウントダウン信号17
は、キュー内の有効なエントリのうちでカウンタフィー
ルドの値が0でなく、かつ最もキュー出口に近いエント
リQのカウンタフィールドの値をデクリメントする。T8
サイクルでも同様に、カウントダウン信号17はエントリ
Eのカウンタフィールドの値をデクリメントし、これに
よってエントリEは有効かつカウンタ値が0となり、キ
ュー制御回路301によって実効可能信号19が出力され
る。第2番目の命令のアドレス計算においては、アドレ
ス変換以外が発生するが、命令デコード制御回路201か
らの変換例外信号15は正しく第2番目の命令のデコード
済情報が格納されているエントリQの例外フラグをセッ
トする。
第4図はアドレス計算回路3の内部をさらに詳細に示し
た回路ブロック図である。401はアドレス計算回路の動
きを制御するアドレス計算制御回路、402は実効アドレ
ス計算を行うアドレス計算器、403はアドレス計算の結
果得られた実効アドレスを保持するアドレスラッチ回路
である。命令デコーダ2から転送される。実効アドレス
計算要求情報のうち実効アドレスオペランドかメモリオ
ペランドかを示すオペランドタイプやアドレシングモー
ドに関する情報23はアドレス計算制御回路401に入力さ
れ、ディスプレースメントなどのアドレス計算に必要な
データはアドレス計算器402に入力される。アドレス計
算制御回路401は指示されたアドレシングモードに応じ
てアドレス計算器402に計算の種類を指示する。
た回路ブロック図である。401はアドレス計算回路の動
きを制御するアドレス計算制御回路、402は実効アドレ
ス計算を行うアドレス計算器、403はアドレス計算の結
果得られた実効アドレスを保持するアドレスラッチ回路
である。命令デコーダ2から転送される。実効アドレス
計算要求情報のうち実効アドレスオペランドかメモリオ
ペランドかを示すオペランドタイプやアドレシングモー
ドに関する情報23はアドレス計算制御回路401に入力さ
れ、ディスプレースメントなどのアドレス計算に必要な
データはアドレス計算器402に入力される。アドレス計
算制御回路401は指示されたアドレシングモードに応じ
てアドレス計算器402に計算の種類を指示する。
アドレス計算回路では、先に計算した実行アドレスをア
ドレスラッチ回路403に保持したまま、次の実行アドレ
ス計算を行うことができる。アドレス計算中は、命令デ
コーダ2に対してアドレス計算受け付け可能を示す信号
(EAready)21をインアクティブにして、新らたなアド
レス計算要求を受け付けないようにしている。アドレス
計算の終了は計算結果(アドレス計算器402の出力)が
実効アドレスとしてアドレスラッチ回路403入力された
時点である。
ドレスラッチ回路403に保持したまま、次の実行アドレ
ス計算を行うことができる。アドレス計算中は、命令デ
コーダ2に対してアドレス計算受け付け可能を示す信号
(EAready)21をインアクティブにして、新らたなアド
レス計算要求を受け付けないようにしている。アドレス
計算の終了は計算結果(アドレス計算器402の出力)が
実効アドレスとしてアドレスラッチ回路403入力された
時点である。
アドレス計算終了後、アドレス計算器402はEAready信号
21をアクティヴにする。そしてEAstart信号22に応答し
てバス23上のデータをラッチし、アドレシング情報に従
ってアドレス計算を行う。オペランドがメモリオペラン
ドである場合、アドレスラッチ回路403にラッチされた
実効アドレスは、アドレス変換回路4がアドレス変換受
け付け可能であることを示す信号(Tready)24がアクテ
ィヴならば、アドレス変換要求信号(Tstart)25ととも
にバス26に実効アドレス値を出力し、アドレス変換回路
4にアドレス変換処理を指令する。アドレス変換回路4
がアドレス変換要求を受け付けるとTready信号24はイン
アクティヴとなる。アドレス変換処理の正常終了はアド
レス変換回路4がTready信号24を再びアクティヴとする
ことによってアドレス計算回路に通知される。メモリオ
ペランドの場合は、アドレス変換正常終了に応答して、
アドレス計算制御回路401からデコード済命令キューメ
モリ5にカウントダウン信号17が送られる。一方、オペ
ランドが実効アドレスの場合には、アドレスラッチ回路
403にラッチされた実効アドレスがバス26を通いて実効
アドレスレジスタ6へ転送され、それでアドレス計算は
終了したことになり、デコード済命令キューメモリ5へ
アドレス計算制御回路401からカウントダウン信号が送
られる。
21をアクティヴにする。そしてEAstart信号22に応答し
てバス23上のデータをラッチし、アドレシング情報に従
ってアドレス計算を行う。オペランドがメモリオペラン
ドである場合、アドレスラッチ回路403にラッチされた
実効アドレスは、アドレス変換回路4がアドレス変換受
け付け可能であることを示す信号(Tready)24がアクテ
ィヴならば、アドレス変換要求信号(Tstart)25ととも
にバス26に実効アドレス値を出力し、アドレス変換回路
4にアドレス変換処理を指令する。アドレス変換回路4
がアドレス変換要求を受け付けるとTready信号24はイン
アクティヴとなる。アドレス変換処理の正常終了はアド
レス変換回路4がTready信号24を再びアクティヴとする
ことによってアドレス計算回路に通知される。メモリオ
ペランドの場合は、アドレス変換正常終了に応答して、
アドレス計算制御回路401からデコード済命令キューメ
モリ5にカウントダウン信号17が送られる。一方、オペ
ランドが実効アドレスの場合には、アドレスラッチ回路
403にラッチされた実効アドレスがバス26を通いて実効
アドレスレジスタ6へ転送され、それでアドレス計算は
終了したことになり、デコード済命令キューメモリ5へ
アドレス計算制御回路401からカウントダウン信号が送
られる。
第5図はアドレス変換回路4の内部を更に詳細に示した
回路ブロック図である。501はアドレス変換器回路502を
制御するアドレス変換制御回路である。アドレス変換器
502はバス26を介して入力された実アドレスを仮想アド
レスへ変換し、同時にページフォルトなどの変換例外を
チェックする。実効アドレス計算回路から送られる実効
アドレスとメモリアクセスに関する情報とはバス26を通
してアドレス変換器502に入力される。アドレス変換要
求信号(Tstart)25に応答してアドレス変換が起動され
る。アドレス変換中、アドレス変換制御回路502はアド
レス変換受け付け可能であることを示す信号(Tready)
24をインアクティヴにする。アドレス変換が正常終了す
ると、Tready信号24をアクティヴにし、変換後の実アド
レスとメモリアクセスに関する情報をバス27に出力す
る。アドレス変換中にページフォルトなどの変換例外が
発生した場合には、Treadyをインアクティヴにしたまま
にしておいて、命令デコーダ2に例外発生の信号(Terr
or)を送る。
回路ブロック図である。501はアドレス変換器回路502を
制御するアドレス変換制御回路である。アドレス変換器
502はバス26を介して入力された実アドレスを仮想アド
レスへ変換し、同時にページフォルトなどの変換例外を
チェックする。実効アドレス計算回路から送られる実効
アドレスとメモリアクセスに関する情報とはバス26を通
してアドレス変換器502に入力される。アドレス変換要
求信号(Tstart)25に応答してアドレス変換が起動され
る。アドレス変換中、アドレス変換制御回路502はアド
レス変換受け付け可能であることを示す信号(Tready)
24をインアクティヴにする。アドレス変換が正常終了す
ると、Tready信号24をアクティヴにし、変換後の実アド
レスとメモリアクセスに関する情報をバス27に出力す
る。アドレス変換中にページフォルトなどの変換例外が
発生した場合には、Treadyをインアクティヴにしたまま
にしておいて、命令デコーダ2に例外発生の信号(Terr
or)を送る。
第1図で示した本発明の一実施例の全体の動作を第8図
のタイミングチャートを用いて説明する。まず2つのメ
モリオペランド(A2とA3)を持つ命令Aのデコードにつ
いて述べる。命令デコード回路2が命令キューメモリ1
へ命令コードの読出しを要求し、命令キューメモリ内の
命令Aのオペコード部A1がバス21に出力されて、オペコ
ードデコーダに送られる。オペコードデコーダのデコー
ド結果により命令Aがメモリオペランドを2つもつこと
がわかると、命令デコード回路2は命令キューメモリ1
へ第1のオペランド部A2の読出しを要求する。第1のオ
ペランド部A2はバス12を介してオペランドデコーダに入
力されデコードされる。第1のオペランド部A2のデコー
ド結果をもとに実効アドレス計算回路3に対してアドレ
ス計算を起動する際、デコード済命令キューメモリ5に
対しカウントアップ信号を送り入口エントリのカウンタ
フィールドをインクリメントする。アドレス計算回路3
で第1のオペランド部A2のアドレス計算を行っている間
に、T3サイクルで読出された第2のオペランド部A3のデ
コードが行われる。しかしこの第2のオペランド部A3の
アドレス計算要求は、第1のオペランド部A2のアドレス
計算が終了するまで待たされる。第1のオペランド部A2
のアドレス計算が終了すると、計算された実効アドレス
はアドレス変換回路4へ送られアドレス変換が行なわれ
る(T6およびT7サイクル)。一方、それまで待たされて
いた第2のオペランド部A3のアドレス計算要求がアドレ
ス計算回路3に受け付けられる。命令デコード回路2は
アドレス計算回路にアドレス計算要求を出すと、デコー
ド済命令キューメモリ5のカウンタフィールドをインク
リメントする。さらに、命令Aのオペランドのうち実効
アドレス計算を必要とするオペランドについてのアドレ
ス計算要求を出力した後、デコード済命令キューメモリ
5の有効フラグをセットし、命令デコード回路は次の命
令Bのデコード処理に移る。第1のオペランド部A2のア
ドレス変換が終了した時点でアドレス変換回路はアドレ
ス計算回路にアドレス変換受け付け可能信号(Tready)
24を送る。これに応答してアドレス計算回路はデコード
済命令キューメモリに対しカウントダウンの信号17を送
る。さらに、第2のオペランド部A3の実効アドレスをア
ドレス変換回路に送ってアドレス変換を要求する。第2
のオペランド部A3のアドレス変換が終了すると、第1の
オペランド部A2の場合と同様にアドレス計算回路からの
信号によりデコード済命令キューメモリ5のカウンタフ
ィールドにカウントダウン信号が送られる。第2のオペ
ランド部A3のアドレス変換終了に伴うデクリメント信号
で命令Aに対するデコード済命令キューエントリのカウ
ンタの値は0となり、命令Aは完全にデコードされたこ
とになる。すなわち、命令実行回路が命令実行可能状態
となる。
のタイミングチャートを用いて説明する。まず2つのメ
モリオペランド(A2とA3)を持つ命令Aのデコードにつ
いて述べる。命令デコード回路2が命令キューメモリ1
へ命令コードの読出しを要求し、命令キューメモリ内の
命令Aのオペコード部A1がバス21に出力されて、オペコ
ードデコーダに送られる。オペコードデコーダのデコー
ド結果により命令Aがメモリオペランドを2つもつこと
がわかると、命令デコード回路2は命令キューメモリ1
へ第1のオペランド部A2の読出しを要求する。第1のオ
ペランド部A2はバス12を介してオペランドデコーダに入
力されデコードされる。第1のオペランド部A2のデコー
ド結果をもとに実効アドレス計算回路3に対してアドレ
ス計算を起動する際、デコード済命令キューメモリ5に
対しカウントアップ信号を送り入口エントリのカウンタ
フィールドをインクリメントする。アドレス計算回路3
で第1のオペランド部A2のアドレス計算を行っている間
に、T3サイクルで読出された第2のオペランド部A3のデ
コードが行われる。しかしこの第2のオペランド部A3の
アドレス計算要求は、第1のオペランド部A2のアドレス
計算が終了するまで待たされる。第1のオペランド部A2
のアドレス計算が終了すると、計算された実効アドレス
はアドレス変換回路4へ送られアドレス変換が行なわれ
る(T6およびT7サイクル)。一方、それまで待たされて
いた第2のオペランド部A3のアドレス計算要求がアドレ
ス計算回路3に受け付けられる。命令デコード回路2は
アドレス計算回路にアドレス計算要求を出すと、デコー
ド済命令キューメモリ5のカウンタフィールドをインク
リメントする。さらに、命令Aのオペランドのうち実効
アドレス計算を必要とするオペランドについてのアドレ
ス計算要求を出力した後、デコード済命令キューメモリ
5の有効フラグをセットし、命令デコード回路は次の命
令Bのデコード処理に移る。第1のオペランド部A2のア
ドレス変換が終了した時点でアドレス変換回路はアドレ
ス計算回路にアドレス変換受け付け可能信号(Tready)
24を送る。これに応答してアドレス計算回路はデコード
済命令キューメモリに対しカウントダウンの信号17を送
る。さらに、第2のオペランド部A3の実効アドレスをア
ドレス変換回路に送ってアドレス変換を要求する。第2
のオペランド部A3のアドレス変換が終了すると、第1の
オペランド部A2の場合と同様にアドレス計算回路からの
信号によりデコード済命令キューメモリ5のカウンタフ
ィールドにカウントダウン信号が送られる。第2のオペ
ランド部A3のアドレス変換終了に伴うデクリメント信号
で命令Aに対するデコード済命令キューエントリのカウ
ンタの値は0となり、命令Aは完全にデコードされたこ
とになる。すなわち、命令実行回路が命令実行可能状態
となる。
もし第8図において、命令Bがオペランドを持たない命
令の場合には、T7サイクルでの命令コード処理後ただち
に次のT8サイクルで命令Bに対するデコード済命令キュ
ーメモリ5のエンドリは有効となる。さらに、命令Bは
オペランドを持たないため、命令Bに対するキューメモ
リのカウンタフィールドの値は0であるから、命令Bは
T8サイクルから命令実行可能なキューエントリとなるう
る。この場合、命令AのオペランドA2,A3のアドレス変
換終了に伴うカウンタデクリメント信号は、キュー内の
命令Aに対応するカウンタフィールドの値をデクリメン
トする。すなわち第3図に示したように、デクリメント
信号はキュー内の有効なエントリでかつ、カウンタ値が
0でないもののうち最もキュー出口に近いエントリのカ
ウン値をデクリメントするのである。
令の場合には、T7サイクルでの命令コード処理後ただち
に次のT8サイクルで命令Bに対するデコード済命令キュ
ーメモリ5のエンドリは有効となる。さらに、命令Bは
オペランドを持たないため、命令Bに対するキューメモ
リのカウンタフィールドの値は0であるから、命令Bは
T8サイクルから命令実行可能なキューエントリとなるう
る。この場合、命令AのオペランドA2,A3のアドレス変
換終了に伴うカウンタデクリメント信号は、キュー内の
命令Aに対応するカウンタフィールドの値をデクリメン
トする。すなわち第3図に示したように、デクリメント
信号はキュー内の有効なエントリでかつ、カウンタ値が
0でないもののうち最もキュー出口に近いエントリのカ
ウン値をデクリメントするのである。
第9図は第8図と同じ命令Aのデコードの様子を示すタ
イミングチャートであるが、オペランド部A2のアドレス
変換時に変換例外が発生した場合を示している。T6サイ
クルにおけるアドレス変換によって例外が発生するた
め、アドレス変換回路4は命令デコーダ2にTerror信号
を送って例外発生を通知する。命令デコーダ2はデコー
ド済命令キューメモリ5に例外信号(error)を送り、
また現在行っている命令Cのデコード処理を中止すると
ともにアドレス計算回路3のアドレス計算処理も中断す
る。この結果、デコード済命令キューメモリ5の中の有
効なエントリでかつカウンタ値が0ではなく最もキュー
出口に近い命令である命令Aについてのキューエントリ
の例外フラグがセットされる。命令実行回路はキューメ
モリ5の出力であるキュー出口エントリの命令Aのデコ
ード情報のうち例外フラグがセットされているため、即
座に例外処理を行うことができる。
イミングチャートであるが、オペランド部A2のアドレス
変換時に変換例外が発生した場合を示している。T6サイ
クルにおけるアドレス変換によって例外が発生するた
め、アドレス変換回路4は命令デコーダ2にTerror信号
を送って例外発生を通知する。命令デコーダ2はデコー
ド済命令キューメモリ5に例外信号(error)を送り、
また現在行っている命令Cのデコード処理を中止すると
ともにアドレス計算回路3のアドレス計算処理も中断す
る。この結果、デコード済命令キューメモリ5の中の有
効なエントリでかつカウンタ値が0ではなく最もキュー
出口に近い命令である命令Aについてのキューエントリ
の例外フラグがセットされる。命令実行回路はキューメ
モリ5の出力であるキュー出口エントリの命令Aのデコ
ード情報のうち例外フラグがセットされているため、即
座に例外処理を行うことができる。
以上説明したように、本発明によれば、命令デコード、
オペランドの実効アドレス計算、および仮想アドレスか
ら実アドレスへのアドレス変換を夫々並列に実行でき
る。さらに、先行してデコードしたデコード済命令キュ
ーメモリ内の情報に対して、その命令のオペランドにつ
いてのアドレス変換の正常終了、異常終了を通知する手
段と、命令のオペランドのうちアドレス変換が必要なオ
ペランドについてすべてのアドレス変換が終了した時点
でその命令のデコード済情報を実行可能なデコード済命
令とする手段とを有しているので、命令デコーダは先行
デコード処理を行うことができる。この結果、仮想記憶
管理機能をもつマイクロプロセッサは従来以上の速度で
プログラムを処理することができる。
オペランドの実効アドレス計算、および仮想アドレスか
ら実アドレスへのアドレス変換を夫々並列に実行でき
る。さらに、先行してデコードしたデコード済命令キュ
ーメモリ内の情報に対して、その命令のオペランドにつ
いてのアドレス変換の正常終了、異常終了を通知する手
段と、命令のオペランドのうちアドレス変換が必要なオ
ペランドについてすべてのアドレス変換が終了した時点
でその命令のデコード済情報を実行可能なデコード済命
令とする手段とを有しているので、命令デコーダは先行
デコード処理を行うことができる。この結果、仮想記憶
管理機能をもつマイクロプロセッサは従来以上の速度で
プログラムを処理することができる。
第1図は本発明の一実施例における命令デコード部を中
心とするマイクロプロセッサのブロック図、第2図は命
令デコーダの詳細ブロック図、第3図はデコード済命令
キューメモリの詳細ブロック図、第4図はアドレス計算
回路の詳細ブロック図、第5図はアドレス変換回路の詳
細ブロック図、第6図は第2図の命令デコーダの動作の
一例を示したタイミング図、第7図は第3図のデコード
済命令キューの動作の一例を示したタイミング図、第8
図および第9図は本発明の一実施例における命令デコー
ド部の動作の一例を示したタイミング図、第10図は従来
の中央情報処理装置のブロック図、第11図は従来の中央
情報処理装置の命令デコード部のブロック図である。 1……命令キューメモリ、2……命令デコーダ、3……
アドレス計算回路、4……アドレス変換回路、5……デ
コード済命令キューメモリ、6……実効アドレスレジス
タ、7……命令実行回路、201……命令デコーダ制御回
路、202……オペコードデコーダ、203……オペランドデ
コーダ、301……キューメモリ制御回路、401……アドレ
ス計算制御回路、402……アドレス計算器、403……アド
レスラッチ回路、501……アドレス変換制御回路、502…
…アドレス変換器。
心とするマイクロプロセッサのブロック図、第2図は命
令デコーダの詳細ブロック図、第3図はデコード済命令
キューメモリの詳細ブロック図、第4図はアドレス計算
回路の詳細ブロック図、第5図はアドレス変換回路の詳
細ブロック図、第6図は第2図の命令デコーダの動作の
一例を示したタイミング図、第7図は第3図のデコード
済命令キューの動作の一例を示したタイミング図、第8
図および第9図は本発明の一実施例における命令デコー
ド部の動作の一例を示したタイミング図、第10図は従来
の中央情報処理装置のブロック図、第11図は従来の中央
情報処理装置の命令デコード部のブロック図である。 1……命令キューメモリ、2……命令デコーダ、3……
アドレス計算回路、4……アドレス変換回路、5……デ
コード済命令キューメモリ、6……実効アドレスレジス
タ、7……命令実行回路、201……命令デコーダ制御回
路、202……オペコードデコーダ、203……オペランドデ
コーダ、301……キューメモリ制御回路、401……アドレ
ス計算制御回路、402……アドレス計算器、403……アド
レスラッチ回路、501……アドレス変換制御回路、502…
…アドレス変換器。
Claims (1)
- 【請求項1】順次実行されるべき複数の命令が先取りさ
れて格納される命令キューメモリと、該命令キューメモ
リに格納された命令を格納順に解読し、解読された命令
の実行に必要な解読情報を生成する命令デコーダと、前
記解読された命令の実行に必要なアドレスを前記命令デ
コーダからの解読情報の一部であるオペランドに関する
情報を用いて生成するアドレス生成手段と、前記命令デ
コーダから出力される解読情報を順次記憶するデコーダ
済命令キューメモリと、該デコーダ済命令キューメモリ
から出力される解読情報に基づいて命令の実行を行う命
令実行回路とを有し、前記アドレス生成手段によるアド
レス生成の結果、前記デコーダ済命令キューメモリに既
に記憶されている解読情報を無効にすべき命令であるこ
とが判明したとき、これに対応する例外処理を行うよう
規定されている情報処理装置において、前記デコーダ済
命令キューメモリは、前記命令デコーダから出力される
解読情報を順次記憶する複数の記憶手段と、前記アドレ
ス生成手段によるアドレス生成の結果、前記例外処理が
必要か否かを示す情報が記憶される第1の手段と、アド
レス生成が終了したか否かを示す情報が記憶される第2
の手段とを有し、前記第1および第2の手段は前記複数
の記憶手段の各々に対応して設定されており、かつ前記
命令デコーダからのアップ信号及び前記アドレス生成手
段からのダウン信号/エラー信号に基づいてキューメモ
リ制御回路によって制御され、これら第1及び第2の手
段の記憶情報に応じて前記命令実行回路での命令実行の
可否を判定するようにしたことを特徴とする情報処理装
置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61067843A JPH06100968B2 (ja) | 1986-03-25 | 1986-03-25 | 情報処理装置 |
US07/030,021 US4847748A (en) | 1986-03-25 | 1987-03-25 | Virtual memory arrangement data processing system with decoding and execution of prefetched instructions in parallel |
EP87104420A EP0239097B1 (en) | 1986-03-25 | 1987-03-25 | Data processing system |
DE3750702T DE3750702T2 (de) | 1986-03-25 | 1987-03-25 | Datenverarbeitungssystem. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61067843A JPH06100968B2 (ja) | 1986-03-25 | 1986-03-25 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62224828A JPS62224828A (ja) | 1987-10-02 |
JPH06100968B2 true JPH06100968B2 (ja) | 1994-12-12 |
Family
ID=13356636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61067843A Expired - Fee Related JPH06100968B2 (ja) | 1986-03-25 | 1986-03-25 | 情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4847748A (ja) |
EP (1) | EP0239097B1 (ja) |
JP (1) | JPH06100968B2 (ja) |
DE (1) | DE3750702T2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
JPS6398737A (ja) * | 1986-10-15 | 1988-04-30 | Mitsubishi Electric Corp | デ−タ処理装置 |
JPH01112450A (ja) * | 1987-10-27 | 1989-05-01 | Sharp Corp | メモリ管理ユニット |
JPH01255036A (ja) * | 1988-04-04 | 1989-10-11 | Toshiba Corp | マイクロプロセッサ |
JP2504149B2 (ja) * | 1988-12-02 | 1996-06-05 | 三菱電機株式会社 | 命令キュ―管理装置 |
EP0389175A3 (en) * | 1989-03-15 | 1992-11-19 | Fujitsu Limited | Data prefetch system |
US5615349A (en) * | 1990-09-04 | 1997-03-25 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
JP2834292B2 (ja) * | 1990-08-15 | 1998-12-09 | 株式会社日立製作所 | データ・プロセッサ |
US5335333A (en) * | 1991-10-29 | 1994-08-02 | Intel Corporation | Guess mechanism for faster address calculation in a pipelined microprocessor |
JP2771374B2 (ja) * | 1991-12-27 | 1998-07-02 | 茨城日本電気株式会社 | プロセッサのページ越処理方式 |
US6378062B1 (en) * | 1994-01-04 | 2002-04-23 | Intel Corporation | Method and apparatus for performing a store operation |
US5664137A (en) * | 1994-01-04 | 1997-09-02 | Intel Corporation | Method and apparatus for executing and dispatching store operations in a computer system |
US6742110B2 (en) * | 1998-10-06 | 2004-05-25 | Texas Instruments Incorporated | Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution |
US7376820B2 (en) * | 2000-03-16 | 2008-05-20 | Fujitsu Limited | Information processing unit, and exception processing method for specific application-purpose operation instruction |
JP3831396B2 (ja) * | 2002-08-30 | 2006-10-11 | 株式会社ルネサステクノロジ | データ処理装置及びicカード |
WO2020220935A1 (zh) * | 2019-04-27 | 2020-11-05 | 中科寒武纪科技股份有限公司 | 运算装置 |
US11841822B2 (en) | 2019-04-27 | 2023-12-12 | Cambricon Technologies Corporation Limited | Fractal calculating device and method, integrated circuit and board card |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5671153A (en) * | 1979-11-14 | 1981-06-13 | Hitachi Ltd | Data processing device |
JPS58164076A (ja) * | 1982-03-24 | 1983-09-28 | Fujitsu Ltd | 待行列制御方式 |
JPS6077241A (ja) * | 1983-10-05 | 1985-05-01 | Hitachi Ltd | 情報処理装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253421A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
DE2704560C2 (de) * | 1977-02-03 | 1979-01-18 | Siemens Ag, 1000 Berlin Und 8000 Muenchen | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen |
SE403322B (sv) * | 1977-02-28 | 1978-08-07 | Ellemtel Utvecklings Ab | Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
JPS5847053B2 (ja) * | 1979-11-19 | 1983-10-20 | 株式会社日立製作所 | デ−タ処理装置 |
EP0139080B1 (en) * | 1980-02-25 | 1989-08-30 | Kabushiki Kaisha Toshiba | An information-processing system |
US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
US4707784A (en) * | 1983-02-28 | 1987-11-17 | Honeywell Bull Inc. | Prioritized secondary use of a cache with simultaneous access |
US4763245A (en) * | 1985-10-30 | 1988-08-09 | International Business Machines Corporation | Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table |
US4722046A (en) * | 1986-08-27 | 1988-01-26 | Amdahl Corporation | Cache storage priority |
-
1986
- 1986-03-25 JP JP61067843A patent/JPH06100968B2/ja not_active Expired - Fee Related
-
1987
- 1987-03-25 EP EP87104420A patent/EP0239097B1/en not_active Expired - Lifetime
- 1987-03-25 US US07/030,021 patent/US4847748A/en not_active Expired - Lifetime
- 1987-03-25 DE DE3750702T patent/DE3750702T2/de not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5671153A (en) * | 1979-11-14 | 1981-06-13 | Hitachi Ltd | Data processing device |
JPS58164076A (ja) * | 1982-03-24 | 1983-09-28 | Fujitsu Ltd | 待行列制御方式 |
JPS6077241A (ja) * | 1983-10-05 | 1985-05-01 | Hitachi Ltd | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US4847748A (en) | 1989-07-11 |
EP0239097A3 (en) | 1990-04-25 |
EP0239097B1 (en) | 1994-11-02 |
DE3750702T2 (de) | 1995-06-14 |
DE3750702D1 (de) | 1994-12-08 |
EP0239097A2 (en) | 1987-09-30 |
JPS62224828A (ja) | 1987-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06100968B2 (ja) | 情報処理装置 | |
US5341482A (en) | Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions | |
JP2679363B2 (ja) | マイクロプロセッサ | |
US5694617A (en) | System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation | |
EP0180725B1 (en) | Instruction prefetch operation for branch instructions | |
US4967338A (en) | Loosely coupled pipeline processor | |
JP3553946B2 (ja) | データ処理命令の実行 | |
US20010005882A1 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
EP0193654B1 (en) | Data-processing apparatus fetching operands from independently accessible memories | |
JP2531760B2 (ja) | ベクトル処理装置 | |
JPH0332818B2 (ja) | ||
US4991083A (en) | Method and system for extending address space for vector processing | |
JPH07120338B2 (ja) | 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ | |
JPS6158853B2 (ja) | ||
JP2643087B2 (ja) | プログラム処理方法及びコンピュータ・システム | |
EP0307448B1 (en) | Apparatus and method for synchronization of arithmetic exceptions in parallel pipelined execution units | |
EP0181462B1 (en) | Microcode control of a parallel architecture microprocessor | |
KR920006613B1 (ko) | 파이프라인으로 동작하는 프로세서의 명령어 페취 유니트 | |
JP2545594B2 (ja) | オペランドデータ先取り方式 | |
JP3144918B2 (ja) | ベクトル処理装置 | |
JP2885548B2 (ja) | パイプライン制御方式 | |
JP2572821B2 (ja) | 命令再実行による演算処理方式 | |
JP2766114B2 (ja) | 命令先取り装置 | |
JPS5922588Y2 (ja) | マイクロプログラムプロセツサ | |
JPH0635716A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |