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
Application number
JP61067843A
Other languages
English (en)
Other versions
JPS62224828A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP61067843A priority Critical patent/JPH06100968B2/ja
Priority to US07/030,021 priority patent/US4847748A/en
Priority to EP87104420A priority patent/EP0239097B1/en
Priority to DE3750702T priority patent/DE3750702T2/de
Publication of JPS62224828A publication Critical patent/JPS62224828A/ja
Publication of JPH06100968B2 publication Critical patent/JPH06100968B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining 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のための命令の先取りを行なう。
第11図は第10図に示した命令デコード部102とアドレス
変換部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は起動される。
命令実行部104は命令情報バッファ805から読出された情
報に基いて命令を実行するが、命令情報バッファから変
換例外発生が読み出されるとページフォルト等の対応す
る処理を行った後、命令デコード部102に対し命令の再
デコードを要求する。命令デコード時に変換例外が発生
しなかった場合は、命令実行部104による命令の実行が
終了した時点で、命令デコード部102に対して次の命令
のデコード開始を要求する。
〔発明が解決しようとする問題点〕
通常、仮想記憶管理下では、オペランドがページフォル
ト等のアドレス変換例外を起こしているか否かは、命令
デコード後にオペランドアドレスが確定するまでわから
ない。例えば、ページフォルトが発生していた場合に
は、オペレーティングシステムが例外処理を行ったの
ち、その命令を再実行する必要がある。しかし、上述し
た従来の方法では、命令のデコード終了を待って命令の
実行を行なわなければ、アドレス変換例外処理や命令実
行を行えないし、さらに命令の実行終了をもって次の命
令のデコードを開始している。このため、従来の情報処
理装置では、アドレス変換処理が終了するまで命令デコ
ーダは次の命令のデコードを行うことができず、処理効
率が悪いという欠点があった。
本発明は上記の実情に鑑みてなされたものでその目的と
する所は、仮想記憶管理を行う場合においても命令デコ
ード処理と命令実行処理とを並列して実行できるように
し、さらに命令デコード処理の中でも、デコード、実効
アドレス計算、アドレス変換を夫々並列して実行できる
命令デコード回路を提供し、命令のデコード時間の短縮
をはかることのできる情報処理装置を得ることである。
〔問題点を解決するための手段〕
本発明は、順次実行されるべき複数の命令が先取りされ
て格納される命令キューメモリと、該命令キューメモリ
に格納された命令を格納順に解読し、解読された命令の
実行に必要な解読情報を生成する命令デコーダと、前記
解読された命令の実行に必要なアドレスを前記命令デコ
ーダからの解読情報の一部であるオペランドに関する情
報を用いて生成するアドレス生成手段と、前記命令デコ
ーダから出力される解読情報を順次記憶するデコーダ済
命令キューメモリと、該デコーダ済命令キューメモリか
ら出力される解読情報に基づいて命令の実行を行う命令
実行回路とを有し、前記アドレス生成手段によるアドレ
ス生成の結果、前記デコーダ済命令キューメモリに既に
記憶されている解読情報を無効にすべき命令であること
が判明したとき、これに対応する例外処理を行うよう規
定されている情報処理装置において、前記デコーダ済命
令キューメモリは、前記命令デコーダから出力される解
読情報を順次記憶する複数の記憶手段と、前記アドレス
生成手段によるアドレス生成の結果、前記例外処理が必
要かを否か示す情報が記憶される第1の手段と、アドレ
ス生成が終了したか否かを示す情報が記憶される第2の
手段とを有し、前記第1および第2の手段は前記複数の
記憶手段の各々に対応して設定されており、かつ前記命
令デコーダからのアップ信号及び前記アドレス生成手段
からのダウン信号/エラー信号に基づいてキューメモリ
制御回路によって制御され、これら第1及び第2の手段
の記憶情報に応じて前記命令実行回路での命令実行の可
否を判定するようにしたことを特徴とする。
〔実施例〕
次に本発明の実施例を図面を参照して詳細に説明する。
第1図は本発明の一実施例による命令デコード部を中心
とするマイクロプロセッサの要部ブロック図である。
1は命令先取り部内に存在し、先取りされた命令コード
を蓄える命令キューメモリである。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はディスプレースメント値、実効ア
ドレスオペランド、メモリオペランド、オペランドの種
類を示す情報等を転送するバスである。
オペランドデコーダ203はオペランドタイプが実効アド
レスオペランドやメモリオペランドなどのようにアドレ
ス計算が必要な場合には、命令デコーダ制御回路201オ
ペランドタイプを知らせる。命令デコーダ制御回路201
はアドレス計算回路3がアドレス計算可ならば、アドレ
ス計算回路3へアドレス計算を要求し、あわせてオペラ
ンドデコーダ203からの情報によりアドレス計算回路3
へアドレス計算に必要なディスプレースメント値などの
情報を送る制御を行なう。
命令デコーダ制御回路201はオペコードデコーダ202より
得られたオペランド数とオペランドの種類をもとにもし
オペランド数が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を出してキューエントリを有
効なものとする。
第3図はデコード済命令キューメモリ5の内部をさらに
詳細に示したものである。第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の
有効フラグをクリアして、次の命令に対応するデコード
済情報の入力を待つ。
第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の例外フラグをセッ
トする。
第4図はアドレス計算回路3の内部をさらに詳細に示し
た回路ブロック図である。401はアドレス計算回路の動
きを制御するアドレス計算制御回路、402は実効アドレ
ス計算を行うアドレス計算器、403はアドレス計算の結
果得られた実効アドレスを保持するアドレスラッチ回路
である。命令デコーダ2から転送される。実効アドレス
計算要求情報のうち実効アドレスオペランドかメモリオ
ペランドかを示すオペランドタイプやアドレシングモー
ドに関する情報23はアドレス計算制御回路401に入力さ
れ、ディスプレースメントなどのアドレス計算に必要な
データはアドレス計算器402に入力される。アドレス計
算制御回路401は指示されたアドレシングモードに応じ
てアドレス計算器402に計算の種類を指示する。
アドレス計算回路では、先に計算した実行アドレスをア
ドレスラッチ回路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からカウントダウン信号が送
られる。
第5図はアドレス変換回路4の内部を更に詳細に示した
回路ブロック図である。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は完全にデコードされたこ
とになる。すなわち、命令実行回路が命令実行可能状態
となる。
もし第8図において、命令Bがオペランドを持たない命
令の場合には、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のデコ
ード情報のうち例外フラグがセットされているため、即
座に例外処理を行うことができる。
〔発明の効果〕
以上説明したように、本発明によれば、命令デコード、
オペランドの実効アドレス計算、および仮想アドレスか
ら実アドレスへのアドレス変換を夫々並列に実行でき
る。さらに、先行してデコードしたデコード済命令キュ
ーメモリ内の情報に対して、その命令のオペランドにつ
いてのアドレス変換の正常終了、異常終了を通知する手
段と、命令のオペランドのうちアドレス変換が必要なオ
ペランドについてすべてのアドレス変換が終了した時点
でその命令のデコード済情報を実行可能なデコード済命
令とする手段とを有しているので、命令デコーダは先行
デコード処理を行うことができる。この結果、仮想記憶
管理機能をもつマイクロプロセッサは従来以上の速度で
プログラムを処理することができる。
【図面の簡単な説明】
第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…
…アドレス変換器。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】順次実行されるべき複数の命令が先取りさ
    れて格納される命令キューメモリと、該命令キューメモ
    リに格納された命令を格納順に解読し、解読された命令
    の実行に必要な解読情報を生成する命令デコーダと、前
    記解読された命令の実行に必要なアドレスを前記命令デ
    コーダからの解読情報の一部であるオペランドに関する
    情報を用いて生成するアドレス生成手段と、前記命令デ
    コーダから出力される解読情報を順次記憶するデコーダ
    済命令キューメモリと、該デコーダ済命令キューメモリ
    から出力される解読情報に基づいて命令の実行を行う命
    令実行回路とを有し、前記アドレス生成手段によるアド
    レス生成の結果、前記デコーダ済命令キューメモリに既
    に記憶されている解読情報を無効にすべき命令であるこ
    とが判明したとき、これに対応する例外処理を行うよう
    規定されている情報処理装置において、前記デコーダ済
    命令キューメモリは、前記命令デコーダから出力される
    解読情報を順次記憶する複数の記憶手段と、前記アドレ
    ス生成手段によるアドレス生成の結果、前記例外処理が
    必要か否かを示す情報が記憶される第1の手段と、アド
    レス生成が終了したか否かを示す情報が記憶される第2
    の手段とを有し、前記第1および第2の手段は前記複数
    の記憶手段の各々に対応して設定されており、かつ前記
    命令デコーダからのアップ信号及び前記アドレス生成手
    段からのダウン信号/エラー信号に基づいてキューメモ
    リ制御回路によって制御され、これら第1及び第2の手
    段の記憶情報に応じて前記命令実行回路での命令実行の
    可否を判定するようにしたことを特徴とする情報処理装
    置。
JP61067843A 1986-03-25 1986-03-25 情報処理装置 Expired - Fee Related JPH06100968B2 (ja)

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)

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

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

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

Patent Citations (3)

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