JPS61279937A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS61279937A
JPS61279937A JP12046585A JP12046585A JPS61279937A JP S61279937 A JPS61279937 A JP S61279937A JP 12046585 A JP12046585 A JP 12046585A JP 12046585 A JP12046585 A JP 12046585A JP S61279937 A JPS61279937 A JP S61279937A
Authority
JP
Japan
Prior art keywords
instruction
buffer storage
storage device
line
read
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
Application number
JP12046585A
Other languages
English (en)
Inventor
Kenichi Wada
健一 和田
Shuichi Abe
秀一 安部
Kazunori Kuriyama
和則 栗山
Akira Yamaoka
山岡 彰
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP12046585A priority Critical patent/JPS61279937A/ja
Publication of JPS61279937A publication Critical patent/JPS61279937A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、オペランド用バッファ記憶装置と命令及びオ
ペランド用バッファ記憶装置をもつデータ処理における
バッファ記憶制御方弐忙関するものである。
〔発明の背景〕
データ処理能力の向上方式の1つとしてパイプライン方
式がある。このパイプライン方式は、1つの命令実行シ
ーケンスを複数のフェーズに分けこれによって複数の命
令を同時に処理できるようにするものである。これを実
現するバッファ記憶制御方式とし、命令フェッチ用バッ
ファ記憶装置とオペランド用バッファ記憶装置をもつ方
式が知られている(特公昭47−29332 ’j。し
かし、この技術では、2つのメモリオペランドを必要と
する命令に対しては、最低でも2サイクルのオペランド
読出しを要していた。さらにこれを高速化する方式とし
て、前記命令フェッチ用バッファ記憶装置のかわりに、
命令7エツチとオペランドを兼用するバッファ記憶装置
を用りる方式が考えられる。
第1図はこの場合のパイプラインの例を示したものであ
る。命令は、D、A、L、Eとよばれる4つのフェーズ
に分けられる。ここにDは命令の解読ステージ、Aはオ
ペランド読出しフェーズ。
Lはオペランド転送ステージ、Eは演算実行フェーズで
ある。命令読出しフェーズはこれらの7エーズと独立に
処理されるので省略している。さてこの方式において次
のプログラムを実行することを考える。
プログラム CLC(Z、X) ここICTMは’l’est under Mask命
令であり、メモリオペランドYをマスクのもとでテスト
する機能を4つ。BCはBranch on Cond
ition  命令でマスクに従って分岐するか分岐し
ない機能をもつ。CLCはCompare Logic
al命令で、2つのメモリオペランドz、Xを比較する
機能をもつ。
このプログラムの例ではBC命令の分岐先命令はTM命
令である。
さて、データ処理装置では入出力装置とメモリの間でデ
ータをやりとりすることが可能である。
今、入出力装置からX、Yの順序で(即ちYよりもXの
方が順序が前である)メモリにデータが書込まれるもの
とする。このプログラムではTM命令で入出力装置から
Yに書込まれたか否かテストし、もしYに書込まれてい
ない場合けBC命令で分岐が成功してTM命令を続ける
。吃しYに書込まれているならばBC命令で分岐が不成
功となって次のCLC命令を処理する。BC命令で分岐
が不成功となっている場合は、Yが更新されているので
それよシも書込み順序の前であるXも更新されているこ
とを期待している。(これをnew(Y)とよび、入出
力装置からメモリに書込む前のデータをold(Y)と
よぶ。Xについても同様にnew(X)。
old()()を定義する。) 従って、TM命令でnew(Y)を読み出し、BC命令
で分岐不成功の場合、CLC命令でnew(X)を読み
出すことをハードウェアは保証しなければならない。
さてこのプログラムを前記命令フェッチとオペランドを
兼用するバッファ記憶装置とオペランド用バッファ記憶
装置をもつデータ処理装置で処理される場合の動作を再
び第1図を用いて説明する。
この装置では入出力装置は主記憶装置とデータのやりと
シを行なう。入出力装置が書込んだデータがバッファ記
憶装置にとりこまれている場合はそのブロックをキャン
セルするという方式を採用している。この方式は公知の
よく知られた技術である。
命令1のTM命令はAステージでオペランド用バッファ
記憶装置からYを読み出そうとするが、バッファ記憶装
置になかったためブロック転送を起こし主記憶装置よシ
データを読むために読み出しに時間がかかシ、図のCI
GサイクルまでEステージが待たされる。ここにC1は
命令1のDステージを示し、以後、時間の経過をサイク
ル単位で示したものである。一方、図で入出力装置よシ
CsサイクルにX%C6サイクルにYへ書込みがなされ
ている。従って命令1のTM命令のオペランドYはブロ
ック転送により入出力装置よシ更新されたデータ、即ち
New (Y )を読み出すことになる。
次に命令3のCLC命令の2つのメモリオペランドのう
ち、2は命令1のYと同じくオペランド用バッファ記憶
装置から読み出され、Xはこれと別の命令フェッチとオ
ペランドを兼用するバッファ記憶装置から読み出される
とする。
命令2のBC命令は条件付分岐命令であるので命令1の
演算結果に依存して分岐不成功/成功が決定される。従
って命令20BC命令の分岐が決定されるのは命令1の
Eステージ即ちCtOサイクル以降である。
しかし、高度のパイプライン制御方式を採用しているデ
ータ処理装置では分岐不成功を予測して次の分岐不成功
側命令(この例では命令3のCLC命令)の処理を始め
るのが公知の技術である。従って命令3は命令2に引続
いてC3サイクルでデコードされ% C4サイクルで2
及びYをそれぞれ前記のバッファ記憶装置より読み出そ
うとする。
しかし、2はYと同じバッファ記憶装置であり、Yがブ
ロック転送中であるのでその処理が終了するまで2の読
み出しは待たされる。XはYと別のバッファ記憶装置々
ので直ちに処理(読み出し)が行なわれる。しかるに、
入出力装置よりXへの更新はC5サイクルに行なわれ、
同時刻にバッファ記憶装置を読み出すので、バッファの
ギャンセルは間に合わず命令3が読み出したXは入出力
装置が更新する前のデータold(X)である。従って
命令1のTM命令でnew(Y)を読み出し、BC命令
で分岐不成功の場合CLC命令ではold(X)を読み
出すことによυ、前記のnew(X)を読み出すという
約束を守れなくなる。
〔発明の目的〕
本発明の目的は、命令フェッチとオペランドを兼用する
バッファ記憶装置とオペランド用バッファ記憶装置を用
いた高度のパイプラインを採用したデータ処理装置にお
いて、性能の低下を招くことなしに、前記のメモリオペ
ランドの読み出し順序を保証する方式を提供することに
ある。
〔発明の概要〕
第1図で示した問題を解決する方法として、条件付分岐
命令の分岐判定が確定するまで次の命令(分岐不成功側
、成功側を間合わず)のデコードを遅らせる方式が考え
られる。しかし、この方式では条件付命令の性能が常に
低下するという欠点を有す。
命令フェッチとオペランドを兼用するバッファ記憶装置
を読み出すのは、2つのメモリオペランドを用いるss
型(3torage to Storage )命令で
あることに着目して、条件付分岐命令の分岐判定が確定
するまでSS型命令のデコードを遅らせる方式も考えら
れる。しかし、SS型命令のみのデコードを遅らせるに
はこれを検出論理が必要なこと、及び性能の低下がある
という欠点を有す。
本発明では、一方のバッファ記憶装置がN0nAcce
pt状態になった場合に、他のバッファ記憶装置もNo
n Accept状態にさせるという方式を採用するこ
とによって問題の解決を計る。ここに、Non Acc
ept状態は、受けつけたリクエストのデータがバッフ
ァ記憶装置にないためブロック転送を起こしたシ、リク
エストのアドレスがTLB(Table Lookas
ide Buffer 1にないためにアドレス変換を
必要とした等により、後続のリクエストの処理をするこ
とができなくなった状態を示す。リクエストはNon 
Accept状態が解けるまで処理が待たされる。
Non Accept状態の起こる確率は低いのでこの
ような方式を採用しては性能の低下は無視できる。
〔発明の実施例〕
以下、本発明の一実施例を第2〜4図を用いて説明する
第2図は本発明の一実施例の構成を示す。バッファ記憶
装置は命令7エツチとオペランドを兼用するバッファ記
憶装置9とその記憶制御90、及びオペランド用バッフ
ァ記憶装置8とその記憶制御80より構成される。
命令処理の動作を前記のパイプラインステージD、 A
、 L、 Eを用いて説明する。命令はバッファ記憶装
置9より先読みされて命令バッファ1に貯わ見られる。
命令バッファ1から命令切出し回路2によシ1命ずつ切
出され、命令レジスタ3にセットされる。この状態でD
ステージの処理が開始される。今、命令レジスタ3にセ
ットされた命令が2つのメモリオペランドをもつ88型
命令であるとする。SS型命令の形式は、命令コードを
示すOP部、オペランド長を示すL部、第1オペランド
アドレスのペースアドレスを示fBi部、ディスプレー
スメントを示すB1部、第2オペランドアドレスのベー
スアドレスを示すB2部、ディスプレースメントを示す
B2部に分かれる。
Dステージにおいて81部を用いて汎用レジスタ4を読
出し、またB1部を入力としてアドレス加算器5で加算
を行なうことによシ第1オペランドアドレスが求まる。
同時にB2部を用いて汎用レジスタ4を読出し、またD
a部を入力としてアドレス加算器6で加算を行なうこと
Kよシ第2オペランドアドレスが求まる。この場合、分
岐命令でないので選択器60ばB2部の出力を、選択器
61はB2部を選択する。
また、メモリ制御7では加算器5の出力(第1オペラン
ドアドレス)に対してメモリリクエスト線700を11
”にすることによシパツファ記憶装置8からオペランド
読出しを要求する。同様にメモリ制御7では加算器6の
出力(第2オペランドアドレス)に対してメモリリクエ
スト線701を@l#にすることにより、バッファ記憶
装置9からオペランド読出しを要求する。バッファ記憶
装置9では命令フェッチとオペランドが共用されている
。線703を11mにすることによってオペランド読出
しであることを示す。
条件付分岐命令の判定が確定せず、予測状態にある場合
には線702を11#とする。
Aステージにおいてバッファ記憶装置8及び9を用いて
データを読み出す。もしバッファ記憶装置にデータがな
い場合は主記憶装置11からデータをブロック単位で読
み出すブロック転送がおこる。
また、メモリリクエスト線700に応答してそのリクエ
ストをアクセプトした場合、記憶制御80はアクセプト
線810を11”とする。同様にメモリリクエスト線7
01に応答してそのリクエストをアクセプトした場合、
記憶制御90はアクセプト線910を11”とする。
基本的に1記憶制御80と90は独立に制御され動作す
る。
Lステージにおいてバッファ記憶8と9から読み出され
たデータを線850,860経由で演算器10へ転送す
る。
Eステージにおいて2つのデータを用いて演算器10で
演算を行なう。
命令バッファlから命令切出し回路2によシ、切出され
た命令が1つのメモリオペランドとレジスタオペランド
を用いる場合(例えば前記のTM命令)にはアドレス加
算器6を用いず、アドレス加算器5のみを用いる。従っ
てこの命令処理のDステージにおいて、バッファ記憶装
置9へのメモリリクエスト線701は@0”、バッファ
記憶装置8へのメモリリクエスト線700Fi” 1”
となる。即ちバッファ記憶装置9は用いず、バッファ記
憶装置8のみ用いている。
命令バッファ1から命令切出し回路2により切出された
命令が分岐命令(条件付分岐命令を含む)である場合に
は、DステージにおいてB1部を用いて汎用レジスタ4
を読出し、またD1部を入力としてアドレス加算器6で
加算を行なうことによシ分岐先アドレスが求まる。この
場合、分岐命令であるので選択器60はBr部の出力を
、選択器61はD1部を選択する。またバッファ記憶装
置9へのメモリリクエスト線701は@1”、バッファ
記憶装置8へのメモリリクエスト線700は@0”とな
る。また線701は命令読出しであるため線703は@
″0#となる。このようにして命令読出しの場合はバッ
ファ記憶装置9を用いている。
入出力装置12は主記憶装置11とデータの読出し書込
みを行なう。入出力装置12から主記憶装置11へ書込
みを行なっている場合は、主記憶装置11で該当ブロッ
クがバッファ記憶装置8゜9に取込まれているか否か判
定し、本し取込まれている場合、該当のバッファ記憶装
置のブロックをキャンセルする。従って、該当ブロック
を読出す場合、バッファ記憶装置にないと判定され、主
記憶装置11から読み出すブロック転送が起こることに
よって入出力装置12が書込んだデータを読み出すこと
が可能となる。
次に、前記のプログラムを例にとり、第3図。
第4図を用いて本発明の特徴である記憶制御80゜90
の動作をさらに詳細に説明する。
第3図は本発明の特徴である記憶制御80゜900動作
をさらに詳細に示したもの、第4図は前記のプログラム
の例の動作を示した図である。
命令lのTM命令はCIプサイルでデコードされる。T
M命令は1つのメモリオペランドのみを用いる命令なの
でバッファ記憶装蓋8へのメモリリクエスト線700t
C,サイクルで11”とする。バッファ記憶装置9を用
いないのでメモリリクエスト線701はCsサイクルで
a Omとなる。
次の02サイクルでは命令1のTM命令のオペランドY
をバッファ記憶装置8から読み出す。また記憶制御80
ではアクセプト線810を′″1’とする。C2サイク
ルでは命令2のBC命令のDステージの処理が行なわれ
る。既に説明したようKBC命令は条件付分岐命令数、
Dステージでアドレス加算器6を用いて分岐先命令アド
レスを計算する。また、バッファ記憶装置9へのメモリ
リクエスト線701を11”とする。
C3サイクルでは命令1のTM命令のすベランドYがバ
ッファ記憶装置8にないことがわかり、主記憶装置11
より読み出すブロック転送が起こる。主記憶装置よりデ
ータを読み出すために読み出しに時間がかかり、図のC
IGサイクルまで命令1のTM命令のEステージは待た
される。
同じくClサイクルにおいて記憶制御80ではバッファ
記憶装置8でブロック転送がおきたので後続のリクエス
トを禁止するために゛アクセプト禁止状態を示す線80
0を11#とする。線8′00はブロック転送が終了す
るC8サイクルまで11”となる。この状態ではアクセ
プト線810は@0”となる。
命令2はC3サイクルで分岐先命令をバッファ記憶装置
9より読み出す。またバッファ記憶装置9けバッファ記
憶装置8と独立に動作するのでアクセプト線910を”
1”とする。
命令3のCLC命令を03サイクルではデコードし、Z
の読み出しをバッファ記憶8へ行なうためメモリリクエ
スト線700を11”とする。2つめのメモリオペラン
ドYの読み出しをバッファ記憶9へ行なうためメモリリ
クエスト線701を@1”とする。
C4サイクルでは、命令2の分岐先命令をバッファ記憶
装置9よシ読み出し線860に出力する。
同サイクルでバッファ記憶装置8ではブロック転送中な
ので記憶制御80ではアクセプト線810は′″0#と
なる。即ち、命令3のCLC命令の2に対するオペラン
ド読出しリクエストはアクセプトされなr、従ってメモ
リ制御7ではリドウーリクエストとして再びリクエスト
を起動する。
本発明の特徴はこのC4サイクルでのアクセプト線91
゛0にある。既に説明した従来技術ではバッファ記憶装
置9ではブロック転送も起きてないので、線910を@
1”としてXの読出しを行なっていた。本発明ではこの
とき線910を@0”として、Xの読出しを延期してい
る。これは!3図の回路によって制御される。Xを読み
出すためオペランドを示す線703は@1”となってい
る。
また、アクセプト禁止状態を示す線800をうけて、こ
の線が@1”である場合第3図のアンド回路98によシ
、アクセプト線910を″0”にする。。
同様にもう一方のバッファ記憶装置のアクセプト禁止状
態を示す線900をうけてこの線が″1”である場合、
第3図のアンド回路89によシアクセブト線810を1
0”kすることができる。
本発明は、アンド回路89.98に線900゜線800
を入力していることが特徴であシ、他は従来技術である
C4サイクルでアクセプト線910が@IO”となり、
線800が10”となるまでこの状態は続く。即ち、命
令3のCLC命令のXK対するオペランド読出しリクエ
ストはアクセプトされない。
従って2に対すると同様にメモリ制御7でリドウーリク
エストとして再びリクエストを起動する。
アクセプトされるXのリクエスト線701は最も早い場
合で09サイクルである。
既にC11サイクルで命令1のTM命令のY(New(
Y))の読出しを行なっているので、それより以前のX
に対するバッファキャンセルは完了している。これは従
来のよく知られた技術である。従って09サイクル以降
Xを読み出すとバッファ記憶装置にないと判定されるC
バッファキャンセルが完了しているので)。
アクセプトされるXのリクエスト線701は最も早い場
合で09サイクルであるので、Xを読み出すリクエスト
はバッファ記憶装#9にないと判定され、主記憶装置1
1より読み出すブロック転送が起こる。主記憶装置11
にはC,サイクルで書込みが完了しているので、このブ
ロック転送により最新のX、 New(X)を読み出す
ことができる。
〔発明の効果〕
本発明によれば、一方のバッファ記憶装置がアクセブト
禁止状態になった場合、その状態を示す線を他のバッフ
ァ記憶装置に入力し、そのバッファ記憶装置へのリクエ
ストをアクセプトしないことにより、オペランドの読出
しの不都合を解決し、順序保障をすることができる。ま
た、一方のバッファ記憶装置がアクセプト禁止状態にな
った場合のみ、他方のバッファ記憶装置へのリクエスト
をアクセプトしない制御方式をとることにより、他方の
バッファ記憶装置を使う場合、殆どの場合同時に一方の
バッファ記憶装費を使うので、一方のバッファ記憶装置
ではリクエストをアクセプトでき々いので、他方のバッ
ファ記憶装置へのリクエストをアクセプトしないことに
より性能の劣下は々い。
従って性能の低下を招くことなしに、オペランド読出し
順序を保証できる効果がある。
【図面の簡単な説明】
第1図は命令フェッチとオペランドを兼用するバッファ
記憶装置とオペランド用バッファ記憶装置をもった場合
の動作の問題点を示すタイムチャート、第2図は本発明
の一実施例の構成図、第3図は第2図の記憶制御80.
90をさらに詳細に示した図、第4図は本発明の動作を
示すタイムチャートである。 高 1  口 ′yfJz  図 第 3 図 第 4 囚 →叫門

Claims (1)

    【特許請求の範囲】
  1. 1、オペランド用バッファ記憶装置を2つ以上具備し、
    これらバッファ記憶装置に同時にアクセスすることがで
    き、かつ、命令の実行を複数のフェーズに分け、各々の
    フェーズに独立したハードウェアをもつことによってパ
    イプライン処理を行ない、分岐命令を解読した場合には
    その判定が下る前に分岐が成功するかしないか予測し、
    予測命令の処理を開始するデータ処理装置において、他
    のバッファ記憶装置がリクエストを受付けられなくなっ
    た状態を示す線を入力とし、該バッファ記憶装置のオペ
    ランド読出しリクエストを受理しない論理をもつことを
    特徴とする情報処理装置。
JP12046585A 1985-06-05 1985-06-05 情報処理装置 Pending JPS61279937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12046585A JPS61279937A (ja) 1985-06-05 1985-06-05 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12046585A JPS61279937A (ja) 1985-06-05 1985-06-05 情報処理装置

Publications (1)

Publication Number Publication Date
JPS61279937A true JPS61279937A (ja) 1986-12-10

Family

ID=14786835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12046585A Pending JPS61279937A (ja) 1985-06-05 1985-06-05 情報処理装置

Country Status (1)

Country Link
JP (1) JPS61279937A (ja)

Similar Documents

Publication Publication Date Title
EP0084114B1 (en) Instruction prefetching data processing apparatus including a conditional branch instruction predictor
JP2539199B2 (ja) デジタルプロセッサ制御装置
JPS6215896B2 (ja)
JPH0348536B2 (ja)
JPS63317828A (ja) マイクロコ−ド読み出し制御方式
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
EP0212132A1 (en) Method and digital computer for recovering from errors
JPS61279937A (ja) 情報処理装置
JPS59154548A (ja) 記憶制御方式
KR950000088B1 (ko) 데이터처리시스템
JP2814683B2 (ja) 命令処理装置
JPS5844569A (ja) 命令処理同期制御方式
JPH07114509A (ja) メモリアクセス装置
JPH0954694A (ja) パイプラインプロセッサおよびその処理方法
JP3954159B2 (ja) 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法
JPH03269628A (ja) 例外処理方式
JPH02217924A (ja) データ処理装置のストア処理方式
JPS60178540A (ja) 情報処理装置におけるバイパス制御方式
JPS62285180A (ja) ベクトルプロセツサ
JPH07219771A (ja) 命令プロセッサ
JPH03119424A (ja) 情報処理方式及び装置
JPS61170830A (ja) レジスタ参照方法
JPH03250221A (ja) 分岐予測方式
JPS62262141A (ja) データ処理装置
JPH0667879A (ja) パイプライン処理計算機