JP2595341B2 - パイプライン・プロセッサのメモリー動作制御装置 - Google Patents

パイプライン・プロセッサのメモリー動作制御装置

Info

Publication number
JP2595341B2
JP2595341B2 JP63500677A JP50067787A JP2595341B2 JP 2595341 B2 JP2595341 B2 JP 2595341B2 JP 63500677 A JP63500677 A JP 63500677A JP 50067787 A JP50067787 A JP 50067787A JP 2595341 B2 JP2595341 B2 JP 2595341B2
Authority
JP
Japan
Prior art keywords
store
pipeline
signal
conductor
instruction
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 - Lifetime
Application number
JP63500677A
Other languages
English (en)
Other versions
JPH01501740A (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.)
NCR International Inc
Original Assignee
NCR International Inc
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 NCR International Inc filed Critical NCR International Inc
Publication of JPH01501740A publication Critical patent/JPH01501740A/ja
Application granted granted Critical
Publication of JP2595341B2 publication Critical patent/JP2595341B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】 技術分野 この発明は複数のパイプライン段を持ち、各々が複数
の命令を含むコマンドを処理するようにしたパイプライ
ン処理手段を含むコンピュータ・システムに関する。
背景技術 公知のパイプライン処理システムはパイプラインがな
い処理装置と比較すると、パイプラインは数個の命令を
重複実行することができることに利点を有する。しか
し、高速処理でパイプライン動作を効率よく達成するこ
とに問題が発生した。
発明の開示 この発明の目的は高速処理及び効率良いパイプライン
制御を達成するパイプライン・コンピュータ・システム
を提供することである。
従って、この発明によると、命令は仮想メモリー・ア
ドレスを使用し、パイプライン処理手段の動作を制御す
るパイプライン制御手段と、前記コマンドが前記パイプ
ライン処理手段の第1の選ばれた段に所定の命令を含む
場合第1の制御信号を発生する第1のデコード手段と、
前記パイプライン処理手段に命令の仮想アドレスを受信
し前記パイプライン処理手段の第2の選ばれた段に命令
の仮想アドレスが予め実アドレスに翻訳されている場合
第2の制御信号を発生する翻訳制御手段と、パイプライ
ン処理手段の前記第1の選ばれた段に対する命令の記憶
に応答して第3の制御信号を発生する第2のデコード手
段とを含み、前記パイプライン制御手段は前記第1及び
第2の制御信号が発生したときを除き前記第3の制御信
号に応答して前記パイプライン処理手段をブロックする
ブロッキング信号を供給するようにしたパイプライン・
コンピュータ・システムを提供する。
この発明によるコンピュータ・システムはストア命令
の実行にとられる時間が最短であるという利点を有す
る。これは仮想アドレスのアドレス翻訳に使用する時間
が短縮されるために達成できるものであり、それは選ば
れたストア動作のための仮想アドレスが予め翻訳されて
いたためパイプラインがブロックされないという事実か
ら生ずるものである。これはコンピュータ・システム全
体が高い実行性能をもつことになる。
図面の簡単な説明 次に、下記添付図面を参照してその例によりこの発明
の一実施例を説明する。
第1A,1B及び1C図は第1図のように構成され、この発
明のストア制御回路の回路図である。
第2図は、第1A,1B及び1C図のストア制御回路のペー
ジ境界検知回路の一部の回路図である。
第3図は、代替システムの制御回路のストア動作のタ
イミング図である。
第4図は、この発明の制御回路のストア動作のタイミ
ング図である。
第5図は、代替システムのパイプラインのフェッチ及
びストア動作サイクルの説明図である。
第6図は、この発明を使用するシステムのパイプライ
ンのフェッチ及びストア動作サイクルの説明図である。
発明を実施するための最良の形態 第1A,1B及び1C図は共に接続されてこの発明のストア
制御回路の回路図を形成する。この回路は中央処理ユニ
ット(CPU)10と、第1A図のメモリー・アシスト・レジ
スタ・セット(MARS)12と、第1B図及び第1C図の動的ア
ドレス翻訳回路(DAT)14とを含む。CPU10はブロック16
で示す3段パイプラインを有するNCR/32−000中央処理
チップのようなマイクロプロセッサを含む。多数のマイ
クロ命令から成る各種コンピュータ・コマンドの実行に
おいて、公知の方法でコンピュータの主メモリーにデー
タを記憶する必要がある。仮想システムでは、メモリー
に記憶されるデータの仮想アドレスは実際にデータが記
憶される前に実アドレスに翻訳されなければならない。
この翻訳中、パイプライン16はその仕事を完了させるた
め、翻訳ハードウエアに十分な時間を与えるようブロッ
クされなければならない。この発明においては、ここに
開示した回路がパイプライン16の後の段においてあるコ
マンドで記憶されるデータの仮想アドレスが予め翻訳さ
れているかどうかを決定する。この前決定は希望するコ
マンドのストア命令が実際にメモリーに出される前に行
われる。すなわち、ストア命令が出されたときには、開
示した回路は翻訳が発生したかどうかすでに知ってい
る。翻訳が予め行われていた場合には、パイプラインは
ブロックされない。
この時点で、この明細書で使用するコマンドと命令と
の違いを明確にしておくことが必要である。ここで使用
するコマンドとは各々が1群の命令から成るプログラム
言語のコマンドである。この例では、コンピュータは各
々が1群の命令に分けられるNCR NEATコマンドを実行す
る。FAKESTOREコマンドと称するNEATコマンドがあり、
そのためメモリーに対するデータの1サイクル・ストア
が要求されてコンピュータの動作を強化する。これらNE
ATコマンドはバイナリ加算、バイナリ減算、有効Bアド
レス移動、Bを右から左に移動、Aを左から右に移動、
Aを左から右に移動などがある。これらFAKESTOREコマ
ンドの各々は関連する仮想アドレスが前もって翻訳され
ていた場合、1サイクル・ストアを起動するよう検知し
うる作用ビット1011を有する特別ストア・ノーチェック
命令を含む。更に、パイプライン16は、インターラプト
が発生するか、ページ境界ができているか、又はFAKEST
OREコマンドが終了するかするまで、ストア・ノーチェ
ック命令に続くNEATコマンドのすべてのストア命令のた
めにブロックされずに維持される。
CPU10は発行されているNEATコマンドをデコードする
命令デコード回路18を含み、ストア・ノーチェック命令
を検出するための命令の作用ビットとFAKESTOREコマン
ドとを検出する。CPU10はバス20を介してすべてのコマ
ンド命令を普通の方法でMARS12のレジスタ対22に送信す
る。アドレス・レジスタ24は、又コンピュータの主メモ
リー(図に示していない)にデータを記憶するための仮
想アドレスを含む。仮想アドレスはアドレス・レジスタ
24からバス26を介してレジスタ対22にCPU10の作用で送
信される。MARS12は公知のように、メモリー動作でCPU1
0が使用するためのレジスタ記憶ユニット(図に示して
いない)の対のレジスタから成る。バス20の命令の作用
ビットはデコードのためにバス延長線30を介して記憶デ
コーダ回路28に送られる。記憶デコーダ回路28の出力は
アンド・ゲート32の1つの入力に接続され、コマンド内
に命令“ストア”が検出されると“ハイ”に可能化され
る。従って、パイプライン16は下記に示すようにFAKEST
OREコマンドを除き、すべての“ストア”命令に対して
普通の方法でブロックされる。
CPU10の命令デコード回路18がFAKESTOREコマンドにス
トア・ノーチェック命令を検出したとき、導体34に接続
された出力は“ハイ”のFAKESTORE信号を発生する。イ
ンバータ36はFAKESTORE導体34に接続され、その出力が
アンド・ゲート32の入力に接続されている導体38にその
入力が接続される。アンド・ゲート32のもう一方の入力
は導体78を介してDAT受信ストア信号(DATRCVS′)と、
導体88を介して1サイクル・ストア信号(1サイクルス
トア′)とを受信する。信号FAKESTOREがインバータ36
で“ハイ”から“ロー”に反転すると、アンド・ゲート
32の出力は“ロー”になり、アンド・ゲート32の出力と
CPU10のパイプライン16との間に接続されている導体21
の“ロー”のPIPELINE BLOCK信号によってパイプライン
16はアンブロックされる。前述のように、FAKESTOREコ
マンド以外のコマンドのストア命令はストア・デコーダ
回路28の出力を“ハイ”にし、普通の方法でパイプライ
ン16をブロックする。
第1B図のFAKESTORE導体34はロジック・バッファ装置6
4に接続され、その出力はアンド・ゲート54の出力と共
にワイヤ・オアされて導体59に接続される。第1C図の導
体59はD型FF58のD端子に接続される。FF58の非反転出
力はDFAKESTORE導体60に接続され、それから導体62に接
続されて第1B図のアンド・ゲート54の入力に信号DFAKES
TOREをフィードバックする。従って、導体59の“ハイ”
はFF58の非反転出力を“ハイ”にセットし、アンド・ゲ
ート54の出力を“ハイ”にする。その他の入力も“ハ
イ”であるものとする。
バス60はMARS12のレジスタ22からDAT14のコンテソト
・アドレサブル・メモリー(CAM)42の入力に接続され
る。ここで、MARS12からバス40を介してCAM42に送信さ
れる仮想アドレスはパイプライン16から前に発生した仮
想アドレスであるということを思い出そう。故に、FAKE
STORE信号が“ハイ”になったとき、前の仮想アドレス
はCAM42によってチェックされる。
CAM42は、通常““ロー”でありバス40からの仮想ア
ドレスがCAM42のデータに合致しないときに“ハイ”と
なる導体44に接続されたDATMISS出力を有する。導体46
に接続されたそのDATHIT出力は普通の状態では“ロー”
であり、バス40の仮想アドレスがCAM42のデータと合致
したときに“ハイ”となる。作用ビット・デコーダ72は
バス40を介してMARS12からのすべてのコマンドの命令作
用ビットをデコードする。デコーダ72は通常“ロー”で
あり、ストア命令が検出されたときに“ハイ”となる導
体74に接続された出力STOREと、通常は“ロー”であ
り、ストア・ノーチェック命令が検出されたときに“ハ
イ”となる導体75に接続された出力ストア・ノーチェッ
クとを有する。
ストア・ノーチェック・ライン75はナンド・ゲート4
8,52の夫々の入力に接続される。ナンド・ゲート48の他
の入力はDATMISS導体44に接続され、ナンド・ゲート52
の他の入力はDATHIT導体46に接続される。ナンド・ゲー
ト48,52の出力は夫々導体55,56によってアンド・ゲート
54の入力に接続される。第1C図のFF58は信号FAKESTORE
が“ハイ”になったときにセットされ、作用ビット・デ
コーダ72がCAM42によりDATHITか又はDATMISSのどちらか
を発生する前にストア・ノーチェック命令を検出するま
でセット状態に維持される。ナンド・ゲート48,52は正
しいタイミングの達成に使用される。ナンド・ゲート48
又は52の1つの出力はDATHIT又はDATMISS信号のどちら
か一方が“ハイ”になり、そのときストア・ノーチェッ
ク信号も“ハイ”であるまで“ロー”にならない。ナン
ド・ゲート48か52のどちらかの出力が“ロー”になった
とき、アンド・ゲート54の出力は“ロー”となり、FF58
をリセットし、導体34の“ハイ"FAKESTORE信号によって
再びセットされるまでリセットに維持される。パイプラ
インのCPU段のストア・ノーチェック命令が前述のよう
にFF58をセットし、パイプラインのDAT段の同じストア
・ノーチェック命令がFF58をリセットするということに
注意しよう。
第1C図のFF58の反転出力DFAKESTORE′は導体66を介し
てアンド・ゲート68,69の夫々の入力に接続される。ア
ンド・ゲート68の他方の入力はDATMISS導体44に接続さ
れ、その出力はインターラプト導体70に接続される。従
って、FF58がリセットされると、DATMISSは導体70のイ
ンターラプト信号を“ハイ”にする。
アンド・ゲート69の第2の入力は導体80を介してDATH
IT導体46に接続され、第3の入力は導体“ストア”に接
続される。アンド・ゲート69の出力はMEMSTORE82に接続
される。ストア信号が“ハイ”のとき、FF58がリセット
されてDATITが発生すると、“ハイ”のMEMSTORE信号が
導体MEMSTORE82に発生する。コンピュータ・メモリーの
制御のインターラプト信号及びMEMSTORE信号の使用は公
知であり、これ以上の説明は避ける。
FF58の非反転出力からの導体62の信号DFAKESTOREはア
ンド・ゲート84の1入力に接続される。第2の入力は導
体“ストア”に接続され、第3の入力は導体DATHITに接
続される。
アンド・ゲート84の出力はセット−リセットFF86のセ
ット入力Sに接続される。FF86の反転出力は第1A図のア
ンド・ゲート32の1入力に接続されている信号1サイク
ルストア′導体88に接続される。FF86はFF58がセットさ
れ、ストアの結果としてDATHITが発生したときにセット
される。FF86がセットされると、導体88の1サイクルス
トア′信号が“ロー”となり、アンド・ゲート32の出力
を“ロー”にし、パイプライン16をアンブロックする。
インバータ76はDATHIT導体46に接続された入力を有し、
その出力は導体78を介してアンド・ゲート32に信号DATR
CVS′を供給する。従って、DATRCVS′信号はすべてのDA
THITに対してパイプラインをアンブロックし、FF86が前
述のようにFAKESTOREコマンドによってセットされた場
合にのみ、1サイクルストア′信号がパイプラインをア
ンブロックに維持する。導体93のTOT1信号は各NEATコマ
ンドの始めでFF86をリセットするに使用するステータス
・ビットである。従って、CPU10が新コマンドを処理し
始めると、TOT1が可能化されてFF86がリセットされる。
FF86は、又ライン70を介してアンド・ゲート68によって
出力される同じインターラプト信号である70Aラインを
介して受信するインターラプト信号の受信のときにリセ
ットされる。又、FF86は前述したように、ライン91を介
して送信されるページ境界信号で表示されるようなペー
ジ境界を通るときはいつでもリセットされる。
第1B図の仮想アドレス・レジスタ95はバス96に接続さ
れ、それはMARS12からのバス40に接続され、仮想アドレ
スを受信する。仮想アドレス・レジスタ95は適当なもの
としてのキャッシュ・メモリー及び翻訳回路に送信する
ため、仮想アドレス・ビット3〜24を受信する。仮想ア
ドレスの翻訳及びそのキャッシュ・メモリーは周知であ
り、この発明部分でもないのでこれ以上説明しない。
次に、第1B,1C図及び第2図のページ境界保護回路に
ついて説明する。CPUのアドレス・レジスタ24からの仮
想アドレス・レジスタ・ビットVA9〜VA13はページ・サ
イズ・ビットPS1〜PS4と比較するため、バス(図に示し
ていない)を介してナンド・ロジック・アレイ100の入
力に送信される。ページ・サイズ・ビットPS1〜PS4は符
号化されて、主メモリー(図に示していない)を分割す
る仮想アドレス頁のページの大きさを表示する。ページ
・サイズが256バイトであると、ビットPS1〜PS4がそれ
らの“1"状態にターンオンされる。ページ・サイズが1,
024バイトであると、ビットPS2〜PS4がそれらの“1"状
態にターンオンされ、PS1はその“0"状態にターンオフ
される。ページ・サイズが2,048バイトであるとPS3及び
PS4が“1"状態にターンオンされ、PS1及びPS2が“0"状
態にターンオフされる。ページ・サイズが4,096バイト
であると、PS4がターンオンされ、PS1乃至PS3がターン
オフされる。ページ・サイズが8,192バイトであると、
ビットPS1〜PS4はそれらの“0"状態にターンオフされ
る。
デコード回路102は第1A図のCPU10からバス104を介し
て作用ビットを受信する。その作用ビットはCPU10から
バス20を介してMARS12に送信されるものである。デコー
ド回路102はCPU10の命令デコード回路18に組入れられ、
方向ビットはDAT14に送信され、別のデコード回路102は
図のようにDATに組入れられる。デコード回路102は、NC
R NEATコマンドのコマンド・コードD54である“Move A
left to Right"コマンドをデコードして、CPU10からの
仮想アドレスがコマンドの実行中増算される方向を決定
する。導体105の出力は方向が右から左への場合“ハ
イ”であり、方向が左から右への場合“ロー”である。
導体106の出力は方向が左から右への場合“ハイ”であ
り、方向が右から左への場合“ロー”である。従って、
方向が左から右への場合、ナンド・ゲート・アレイ100
のナンド・ゲートは導体105の“ロー”によって可能化
される。
ナンド・ゲート・アレイ100の出力はノード108で共に
ワイヤオアされる。ナンド・ゲート・アレイ100のナン
ド・ゲートの1又はそれ以上の出力が“ハイ”になる
と、108の信号も“ハイ”になる。ノード108は導体110
に接続されて、左から右比較信号(LRCMP′)を第1C図
の比較器112の1入力に供給する。
比較器112の入力A1〜A6は第1B図のアドレス・バス96
からアドレス・バス114を介して送信される仮想アドレ
スのアドレス・ビット3〜8に接続される。第1B図の作
用ビット・デコーダ72によって出力されるストア信号は
導体74に接続されている導体115を介して比較器入力A7
に入力される。導体106のLTOR信号が“ハイ”(第2図
と共に説明する)になったときに“ハイ”である右から
左比較信号(RLCMP′)は比較器112の入力A8に入力さ
れ、導体110の信号LRCMP′は比較器112の入力A9に入力
される。
比較器112の入力B9に“ロー”が入力され、導体106の
LTOR信号が入力B8に入力され、入力B7に“ハイ”が入力
され、導体106のLTOR信号が比較器112の各入力B1〜B6に
入力される。ナンド・ゲート・アレイ100に供給される
仮想アドレス・ビットVA9〜VA13は1AのCPU10の仮想アド
レス・レジスタ24からくるし、比較器112の入力A1〜A6
に供給される仮想アドレス・ビット3〜8は第1A図のMA
RS12からの仮想アドレスからくるということに注意しよ
う。従って、ナンド・ゲート・アレイ100は、パイプラ
インのCPU段の仮想アドレスがページ境界を越えたかど
うか決定するため、CPUからの仮想アドレスのページ数
と比較するし、パイプラインのMARS段の前のアドレスの
ためにアドレス・ビットが比較器112で比較される。動
作が左から右にいく場合、アドレスは増加するので、動
作が左から右にいくときに“ハイ”である導体106LTOR
の信号が比較器112のB1〜B6に入力される。従って、比
較器112は境界を実際に越える前にページ境界を越えそ
うだということを確認することができる。それは、バス
114のアドレス、ビット3〜8すべてが“ハイ”であ
り、ナンド・アレイ100からの信号LRCMP′が“ロー”の
ときに表示される。
前述のように、比較器112が等しいと比較すると導体9
4の信号ページ境界を“ハイ”にしてオア・ゲート92を
可能化し、FF86をリセットする。
第2図のナンド・ゲート・アレイ100はその出力がノ
ード121でワイヤオア接続される。負仮想アドレス・ビ
ットVA9′〜VA13′はページサイズ・ビットPS1〜PS4と
共にアレイ120のナンド・ゲートに供給され、CPU10から
の仮想アドレスのページ・サイズ部が現在のページ以下
に減少したかどうかを決定するために減算を実行する。
LTOR信号は第1B図の導体106から導体123を介してオア・
ゲート122の1入力に送信される。従って、導体106,123
のLTOR信号が“ロー”のときにオア・ゲート122は一部
可能化される。ナンド・ゲート・アレイ120のナンド・
ゲート出力のすべてが“ロー”となったとき、右から左
比較信号(PLCMP′)も“ロー”となり、右から左動作
のページ境界が越えつつあるということを表示する。方
向が右から左になったとき、第1C図の比較器112の入力B
1〜B6も“ロー”となるので導体106のLTOR信号は“ロ
ー”となる。第2図の回路はページ境界が負方向に変化
するべきときを決定し、比較器112は、MARS12からのア
ドレスのビットすべてが“0"となってページ境界が変化
するということを表示するかどうかをチェックする。
前述したように、導体93の信号TOT1の“ハイ”によっ
て表示されるか、“ハイ”のインターラプト信号が導体
70Aを介して受信するか、又はページ境界が導体94の
“ハイ”ページ境界信号によって変化が表示された場合
においてNCR NEATコマンドが変化するときはいつでもオ
ア・ゲート92(第1C図)は可能化されてFF86をリセット
する。これらの状態の1つでも又は組合わせでも導体88
の1サイクルストア′信号を“ハイ”にして、3段パイ
プライン16をブロックする。
第3図はストアが3サイクルかかる場合のメモリー・
ストア動作のタイミング図である。第3図の動作はこの
発明ではないメモリー・ストアの動作を表わす。この動
作において、ストア・コマンド130が131でパイプライン
・ブロックを発生し、132でDATRCVS′信号を受信するま
で、DATがストア・コマンドを受信したということを表
示し、DATが受信した仮想アドレスがCAMでDATHITを発生
するということを表示する。この動作は130,133,134に
示すように3サイクルかかり、この3サイクル・ストア
はMARSによって行われる各メモリー・ストア動作のため
に実行される。
第4図はこの発明によるストア動作を示すタイミング
図である。FAKESTOREコマンドのためのストア・ノーチ
ェック命令が第1A図のCPU10の命令デコード回路18でデ
コードされたとき、FAKESTORE信号を導体34に発生す
る。このFAKESTORE信号は第4図の140に示される。第1B
図のDAT14のCAM42は第1A図MARS12からの導体40の仮想ア
ドレスとその内容とを比較し、前もって仮想アドレスが
翻訳されていた場合には導体46にはDATHIT信号を発生す
る。DAT14の作用ビット・デコーダ72からの“ハイ”ス
トア信号(第4図の142)と共に導体46にDATHIT信号及
び導体62にDFAKESTORE信号が発生すると(前述のように
導体34のFAKESTORE信号によって発生する)、第4図の1
43に1サイクルストア′信号を発生する。第1C図の導体
88の1サイクルストア′信号は第1A図のアンド・ゲート
32を禁止して導体21のパイプライン・ブロック信号をデ
イセーブルする。パイプライン・ブロック信号(第4図
の144)はFF86がリセットされるまで“ロー”である。
ストア・サイクルは第4図の145の点線で示される。1
サイクルストア動作は1サイクルストア′信号が“ロ
ー”の間行われる。前述のように、1サイクルストアは
ページ境界を起すまで現NCR NEATコマンドを通して続行
され、又DATMISSが発生してインターラプトを出力すか
又はNCR NEATコマンドが完了するまで実行を継続する。
第5図はストア動作がNMCCサイクルかかるCPU,MARS及
びDATパイプラインのサイクルを示すタイミング図であ
る。第5図のフェッチ命令はサイクル1のCPUで発行
し、それはCPUが動作していない間、パイプラインをサ
イクル2のMARSに移動する。フェッチ命令はCPUが非動
作モードを続行中、サイクル3のDATに移動する。サイ
クル4で、CPUはここでも非動作であり、命令の完了を
待つ。CPUはサイクル5でストア命令を発生する。サイ
クル6で、ストア命令はCPUからMARSに移動し、CPUはス
トア・モードでブロック状態である。サイクル7におい
て、ストア命令はDATに移動し、CPUはストア・モードを
維持する。そこで、ストア・モードが完了すると、CPU
はサイクル9でMARSに、サイクル10でDATに移動する第
2のフェッチ命令を発生することができる。そこで、3
サイクル・ストアはサイクル11,12,13で繰返えされる。
このフェッチ及びストア・シーケンスは、Tカウントを
完了して、公知のように、NEATコマンドを完了したこと
を示すようになるまでそのループを繰返えす。
第6図はこの発明を使用するフェッチ及びストア・シ
ーケンスを表わす。第6図のサイクル1において、CPU
はフェッチ命令を発生する。サイクル2において、フェ
ッチ命令はMARSに移動し、CPUは動作を実行しない。サ
イクル3において、CPU10の命令デコーダ10がFAKESTORE
信号を発生し、フェッチ命令はDATに移動する。サイク
ル4において、CPUは動作せず、DAT14のFF58からDFAKES
TORE信号を発生する。MARSからDAT14のCAM42に送信され
たアドレスはDATHIT信号を発生し、DAT14から1サイク
ルストア′信号を発生して、CPU10が1サイクルのスト
アを完了することができるようにパイプラインをアンブ
ロックする。サイクル6でCPU10はフェッチ命令を発生
し、前述のように1サイクルストア′信号は可能化が維
持される。第6図からわかるように、フェッチ動作を完
了するためには3サイクル必要であるが、ストア動作を
完了するためには1サイクルのみが必要であるから、フ
ェッチ及びストア動作を完了するに必要な時間を短縮す
ることができる。フェッチ及びストア・ループ動作はT
カウントが満了するまで続けられる。しかし、フェッチ
及びストア動作を完了するサイクル数は6サイクルから
4サイクルに短縮することができる。
1サイクルのみでストア動作を実行することはムーブ
・タイプ(移動形式)のコマンドの実行を改良するに特
に利点がある。この改良は移動するフィールドの長さに
より約20%から約50%まで達成することができる。ムー
ブ・タイプ・コマンドは最も屡々使用されるコマンドで
あるから、これらのコマンドの改善はコンピュータ・シ
ステムの実行性能を大きく向上することになる。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のパイプライン段を持ち、仮想アドレ
    スを使用し各々が複数の命令を含むコマンドを処理する
    パイプライン処理手段(16)を含むパイプライン・プロ
    セッサのメモリー動作制御装置であって、 前記パイプライン処理手段(16)の動作を制御するパイ
    プライン制御手段(32)と、 前記コマンドが前記パイプライン処理手段(16)の第1
    の選ばれた段に所定の命令(ストアー・ノーチェック)
    を含む場合、第1の制御信号を発生する第1のデコード
    手段(18)と、 前記パイプライン処理手段(16)に命令の仮想アドレス
    を受信し、前記パイプライン処理手段(16)の第2の選
    ばれた段に命令の仮想アドレスがすでに実アドレスに翻
    訳されていた場合、第2の制御信号(DATHIT)を発生す
    る翻訳制御手段(14)と、 前記パイプライン処理手段(16)の前記第1の選ばれた
    段におけるストア命令に応答して第3の制御信号を発生
    する第2のデコード手段(28)と、 を含み、 前記パイプライン制御手段(32)は、前記第1及び第2
    の制御信号が発生した場合を除き、前記第3の制御信号
    に応答して前記パイプライン処理手段(16)をブロック
    するブロッキンング信号を供給するようにした、パイプ
    ライン・プロセッサのメモリー動作制御装置。
JP63500677A 1986-12-10 1987-12-01 パイプライン・プロセッサのメモリー動作制御装置 Expired - Lifetime JP2595341B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US940,315 1986-12-10
US06/940,315 US4797817A (en) 1986-12-10 1986-12-10 Single cycle store operations in a virtual memory

Publications (2)

Publication Number Publication Date
JPH01501740A JPH01501740A (ja) 1989-06-15
JP2595341B2 true JP2595341B2 (ja) 1997-04-02

Family

ID=25474615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63500677A Expired - Lifetime JP2595341B2 (ja) 1986-12-10 1987-12-01 パイプライン・プロセッサのメモリー動作制御装置

Country Status (4)

Country Link
US (1) US4797817A (ja)
EP (1) EP0293445A1 (ja)
JP (1) JP2595341B2 (ja)
WO (1) WO1988004449A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0221342A (ja) * 1987-02-27 1990-01-24 Hitachi Ltd マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US5210841A (en) * 1990-01-30 1993-05-11 Advanced Micro Devices, Inc. External memory accessing system
US5283882A (en) * 1991-02-22 1994-02-01 Unisys Corporation Data caching and address translation system with rapid turnover cycle
US5715421A (en) * 1992-10-16 1998-02-03 Seiko Epson Corporation Apparatus and method of addressing paged mode memory including adjacent page precharging
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
US5515522A (en) * 1994-02-24 1996-05-07 Hewlett-Packard Company Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache
US6003126A (en) * 1997-07-01 1999-12-14 International Business Machines Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
US6745313B2 (en) 2002-01-09 2004-06-01 International Business Machines Corporation Absolute address bits kept in branch history table
US20140310500A1 (en) * 2013-04-11 2014-10-16 Advanced Micro Devices, Inc. Page cross misalign buffer
GR20130100707A (el) * 2013-12-23 2015-07-31 Arm Limited, Μεταφραση διευθυνσης σε μια συσκευη επεξεργασιας δεδομενων

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3742457A (en) * 1972-05-15 1973-06-26 Honeywell Inf Systems High speed data transfer for a peripheral controller
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US4371927A (en) * 1977-11-22 1983-02-01 Honeywell Information Systems Inc. Data processing system programmable pre-read capability
US4161026A (en) * 1977-11-22 1979-07-10 Honeywell Information Systems Inc. Hardware controlled transfers to microprogram control apparatus and return via microinstruction restart codes
US4376297A (en) * 1978-04-10 1983-03-08 Signetics Corporation Virtual memory addressing device
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4253183A (en) * 1979-05-02 1981-02-24 Ncr Corporation Method and apparatus for diagnosing faults in a processor having a pipeline architecture
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
US4315313A (en) * 1979-12-27 1982-02-09 Ncr Corporation Diagnostic circuitry in a data processor
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4356549A (en) * 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
JPS5848146A (ja) * 1981-09-18 1983-03-22 Toshiba Corp 命令先取り方式
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
US4737909A (en) * 1985-04-01 1988-04-12 National Semiconductor Corp. Cache memory address apparatus

Also Published As

Publication number Publication date
US4797817A (en) 1989-01-10
JPH01501740A (ja) 1989-06-15
WO1988004449A1 (en) 1988-06-16
EP0293445A1 (en) 1988-12-07

Similar Documents

Publication Publication Date Title
JP2786574B2 (ja) コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置
JP2559399B2 (ja) 情報処理装置
EP1324190B1 (en) Data processing system having a read-modify-write unit
JP2595341B2 (ja) パイプライン・プロセッサのメモリー動作制御装置
US4385365A (en) Data shunting and recovering device
JPH0348537B2 (ja)
EP0142982B1 (en) Microprocessor interrupt system
US3553655A (en) Short forward conditional skip hardware
JPH02123442A (ja) 高速化メモリ
KR950000088B1 (ko) 데이터처리시스템
US5787276A (en) Microprocessor including circuit for generating signal used for tracing executed instruction stream
JP3796281B2 (ja) I/o処理方法
JPS6327746B2 (ja)
JPH0585925B2 (ja)
JPH04353927A (ja) マイクロ・プロセッサ
JPS6218933B2 (ja)
JPH05298118A (ja) 割込み制御回路
JPH05250156A (ja) Riscプロセッサ
JPS6225348A (ja) アドレスバス拡張方式
JPS6273340A (ja) 中央処理装置
JPH03250221A (ja) 分岐予測方式
JPH02183333A (ja) データ処理装置
JPS5810244A (ja) パイプライン制御方式
JPH0380355A (ja) Dma転送機構を有する計算機
JPS61239339A (ja) ペ−ジ・デ−タ転送制御方式