JPH07117897B2 - データ処理システムのプリフェッチ回路 - Google Patents

データ処理システムのプリフェッチ回路

Info

Publication number
JPH07117897B2
JPH07117897B2 JP61504685A JP50468586A JPH07117897B2 JP H07117897 B2 JPH07117897 B2 JP H07117897B2 JP 61504685 A JP61504685 A JP 61504685A JP 50468586 A JP50468586 A JP 50468586A JP H07117897 B2 JPH07117897 B2 JP H07117897B2
Authority
JP
Japan
Prior art keywords
address
virtual
bus
command
register
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
JP61504685A
Other languages
English (en)
Other versions
JPS63500688A (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.)
EI TEI ANDO TEI GUROOBARU INFUOMEESHON SORUUSHONZU INTERN Inc
Original Assignee
EI TEI ANDO TEI GUROOBARU INFUOMEESHON SORUUSHONZU INTERN 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 EI TEI ANDO TEI GUROOBARU INFUOMEESHON SORUUSHONZU INTERN Inc filed Critical EI TEI ANDO TEI GUROOBARU INFUOMEESHON SORUUSHONZU INTERN Inc
Publication of JPS63500688A publication Critical patent/JPS63500688A/ja
Publication of JPH07117897B2 publication Critical patent/JPH07117897B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • 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/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/3824Operand accessing
    • G06F9/383Operand 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same page detection

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はデータ処理手段及びデータ記憶手段を有する
データ処理システムに関する。
特に、仮想命令エミュレータとして動作するデータ処理
システムに有用なプリフェッチ回路に関する。
〔従来技術〕
集積回路からなるマイクロプロセッサの出現により、こ
れまでコンピュータ・システムの中央処理装置で処理し
ていたような仕事を、マイクロプロセッサで処理するこ
とができるようになってきた。また、メイン・フレーム
のインストラクション(処理命令を実行するためのマイ
クロコード・プログラムをチップ内に記憶したマイクロ
プロセッサー・エミュレータ・チップも開発されてい
る。
メインフレームの処理命令を実行するためには、エミュ
レータはコンピュータ・システムのメモリーからコマン
ドを読みだし、それをオブジェクト・インストラクショ
ン・コードにデコードする。また、必要に応じて読み出
したコマンドからインデックス・レジスタ番号をもデコ
ードし、コマンドを実行する前にインデックス・レジス
タの内容を読み出す。このように、エミュレータがメイ
ンフレームのインストラクションを実行するまでに、メ
モリーからデータを読み出すための多くの時間が必要と
なる。
この発明は、エミュレータ等のデータ処理手段がメイン
フレームのインストラクションを実行するまでに、メモ
リーからデータを読み出すための多くの時間を必要とし
ないようにしたデータ処理システムを提供することを目
的とする。
〔目的を達成するための手段〕
この発明は、処理手段及びメモリー手段を含むデータ処
理システムにおいて、前記メモリー手段からインデック
ス・レジスタ識別データを含むプリフェッチされたコマ
ンドを記憶するバッファ記憶手段と、前記レジスタ識別
データによって認識されたインデックス・レジスタの内
容を前記メモリー手段からフェッチするフェッチ手段と
を含むプリフェッチ手段により前記目的を達成した。
すなわち、頁に対応するよう分けられた頁フレーム番号
を有するレジスターを含み、メモリーからのプリフェッ
チ・コマンドを読み出すプリフェッチ回路であって、前
記メモリー内に設けられた第1のレジスターの頁フレー
ム番号を含むリアル・アドレスを記憶するリアル・アド
レス記憶手段と、前記メモリー内の前記第1のレジスタ
ーの仮想頁番号を含んでいる仮想アドレスを記憶する仮
想アドレス記憶手段と、入力部と出力部とを有してお
り、該入力部からの入力にオフセット値を加える加算手
段と、前記仮想記憶手段と前記加算手段の入力部との間
に接続されており、新たな仮想頁番号を含む新たな仮想
アドレスを得るために、前記仮想アドレスを前記加算手
段に送信する仮想アドレス・バス手段と、前記リアル・
アドレス記憶手段と前記加算手段の出力部との間に接続
されており、前記リアル・アドレス内の前記頁フレーム
番号の最下位部と前記新たな仮想アドレスの前記新たな
仮想頁番号の最下位部とが同じ番号のときに第1の状態
となり、異なるときに第2の状態となるような出力部を
有する比較手段と、前記リアル・アドレス記憶手段と前
記加算手段との間に接続され、前記比較手段の出力が前
記第1の状態にある時にプリフェッチ・リアル・アドレ
スを発生させるために、前記リアル・アドレスを前記加
算手段に送信するリアル・アドレス・バス手段と、前記
加算手段と前記メモリー手段との間に接続され、前記メ
モリー内の前記プリフェッチ・リアル・アドレスにより
表わされる位置の第2のレジスターからプリフェッチ・
コマンドを読み出すフェッチ手段とからなるプリフェッ
チ回路により上記目的を達成した。
後に詳細に説明する特定な実施例の概要によると、それ
はメモリーと共に使用するプリフェッチ回路であって、
前記メモリーからコマンドを受信する記憶レジスタと、
コマンド内で認識されるインデックス・レジスタをアド
レスするためにコマンドをデコードするデコード回路
と、インデックス・レジスタの内容をフェッチするフェ
ッチ回路とを含むプリフェッチ回路を提供する。プリフ
ェッチ回路は、又コマンドのバーチャル・アドレスを受
信し記憶するバーチャル・アドレス記憶レジスタと、コ
マンドのバーチャル・アドレスに所定の変更を加えて新
バーチャル・アドレスを得る加算回路と、加算回路から
の新バーチャル・アドレスがバーチャル頁境界を越えた
かどうか確認する比較回路と、前記比較回路に応答して
実アドレス記憶手段の実アドレスを前記加算回路に転送
してそこに片寄りを加える転送回路とを含むようにして
新実アドレスを得るようにしたプリフェッチ回路を提供
する。それによって、フェッチ回路は新アドレスのメモ
リーからプリフェッチされたコマンドをフェッチする。
故に、この特定の実施例では、プロセッサが使用するデ
ータかコマンドのどちらかをフェッチし、コマンドかデ
ータを受信するために指定されるレジスタを有するプリ
フェッチ回路が設けられる。この実施例は、又前回にフ
ェッチされたメモリー位置の直上又は直下のどちらかの
隣接メモリー位置からフェッチするよう指令されるプリ
フェッチ・ユニットを設ける。その上、この実施例で
は、プリフェッチ・ユニットはプリフェッチするとき、
コマンドをデコードしてそのコマンドで識別されたイン
デックス・レジスタの内容をプリフェッチする。この実
施例によるシステムは、又プリフェッチ動作において頁
境界を越えてそれを行うプリフェッチ・ユニットを含
む。この発明の他の一面によると、それはデータ処理シ
ステムのメモリーからプリフェッチする方法であって、
前記メモリーからプリフェッチされたコマンドを受信
し、前記コマンドをデコードして前記コマンドで識別さ
れたインデックス・レジスタのアドレスを決定し、前記
メモリーから前記インデックス・レジスタの内容をフェ
ッチする各工程を含むプリフェッチ方法を提供する。
図面の簡単な説明 次に、下記の添付図面を参照してその例によりこの発明
の一実施例を説明する。
第1図は、この発明による汎用データ処理システムのブ
ロック図である。
第2図は、第1図の基本プロセッサ・サブシステム・モ
ジュールの1つを示すブロック図である。
第3図は、第2図のNEAT補助チップのブロック図であ
る。
第4図は、第3図のNEAT補助チップによってエミュレー
トされるような1ワード・コマンドの説明図である。
第5図は、第3図のNEAT補助チップによってエミュレー
トされるような2ワード・コマンドの説明図である。
第6図は、第4図及び第5図のRA又はRBフィールドの説
明図である。
第7図は、インデックス・レジスタのバーチャル・アド
レスの説明図である。
第8図は、インデックス・レジスタのリアル・アドレス
の説明図である。
第9A図及び第9B図は、ラインa−aで接続され、第1図
のシステムに使用するプリフェッチ回路のブロック図を
構成する。
第10図は、第9A図及び第9B図のプリフェッチ回路のフェ
ッチ・受信動作中における各種信号のタイミングを表わ
すタイミング図である。
第11図は、第9A図及び第9B図のプリフェッチ回路の一群
の連続受信動作中における各種信号のタイミングを表わ
すタイミング図である。
発明を実施するための最良の形態 第1図は、この発明を含む汎用データ処理システムのブ
ロック図であり、バーチャル・コマンド・プロセッサ・
サブシステム10と、入力/出力(I/O)サブシステム12
と、メモリー・サブシステム14とを含む。サブシステム
10、12、14は更にいくつかのモジュールに分割され、そ
のあるモジュールはデータの完全性を計るため、及びデ
ータ処理システムのコマンド・リトライ能力を提供する
ために複製される。ここに開示したシステムの基本タイ
ミングは1個の水晶発振器(図に示していない)から引
出されたX0出力及びX1出力を有する2相クロックの使用
によって維持される。システム・バス・クロック(図に
示していない)もSCLMモジュール16に含まれる。クロッ
ク信号の発生とその配信及び利用は公知のものであるか
らこれ以上説明しない。
バーチャル・コマンド・プロセッサ・サブシステム10は
1対の基本プロセッサ・サブシステム・モジュール(BP
SM)18,20を含み、一方のBPSM18は一次モジュールであ
り、他方のBPSM20は二次モジュールである。各モジュー
ル18,20は部品番号ST−2104−23としてコロラド州コロ
ラド・スプリングスのNCRマイクロエレクトロニクス・
ディビジョンのVLSI Processor Productsから入手でき
るNCR/32 General Information Publicationに説明され
ているようなNCR32ビット・チップ・セットからの超LSI
回路(VLSI)チップを含む。
第2図のBPSMモジュール18,20の各々は前述のNCR/32Gen
eral Information Publicationに十分説明されているよ
うな中央プロセッサ・チップ(CPC)22及びアドレス翻
訳チップ(ATC)24を含む。CPC22はインストラクション
記憶ユニット(ISU)バス26及びプロセッサ−メモリー
(PM)バス28に接続される。CPC22はSCLM16からのクロ
ック信号X0に応答してISUメモリー30に向けらけるイン
ストラクション・アドレスをISUバス26に出力し、SCLM1
6からのクロック信号X1に応答してISUメモリー30からの
インストラクションを受信する。メモリー動作のための
アドレスもPMバス28のアドレス部に出力され、データは
主メモリー32の与えられたアドレスからフェッチされる
か書込まれる。第1図のシステムでは、メモリー・サブ
システム14は第2図の主メモリー32を含むということが
わかる。
BPSMPモジュール18及び20はフローティング・ポイント
算出用の特別ハードウエアを提供する第2図の拡大算術
チップ(EAC)34と、サブセットのNEATコマンドを実行
する内蔵型ファームウエア・オンチップ・プロセッサを
提供するNEAT補助チップ(NAC)36のような専門ハード
ウエア・エンハンスメント・チップを含む。第2図のNA
C36は第3図にブロック図を示すNCR9000シリーズNEAT補
助チップである。
NAC36がない場合、CPC22はATC24及びEAC34に従って動作
を制御する主要素である。例えば、NEATコマンドをエミ
ュレートするとき、CPC22はISUメモリー30のルーチンを
アクセスすることによって、NEATコマンドを翻訳し、実
行する。NAC36がある場合には、NAC36がマスタとなる。
実行されるべきNEATバーチャル・コマンドコマンドが第
2図のメモリー32からNAC36によってフェッチされ、実
行される場合、NAC36がサポートしていない特定のコマ
ンドに限り、CPC22がそのコマンドの実行を制御する。N
AC36が存在する場合、CPC22はNAC36の要求によってATC2
4またはEAC34の使用のための呼び出しを行うだけであ
る。NAC36がバーチャルNEATコマンドを実行している
間、CPCはNAC36によって実行される動作と同時にI/Oイ
ンタラプト又は時間日付インタラプトを動作することが
できる。
第3図において、NAC36はオフチップ制御記憶を使用し
ない。NAC36によって支持されるバーチャルNEATコマン
ドを実行するに必要なすべての記憶手段は制御ROM及び
シーケンサ(ROM)70に含まれる。NAC36のマイクロイン
ストラクションは翻訳及び実行段を有する2段パイプラ
イン内で実行される。翻訳段において、それらのスター
トは第2図の導体37のNVCSU/信号によって示され、バー
チャルNEATコマンドをエミュレートするべくマイクロイ
ンストラクションを開始するROMアドレスが決定され、
バーチャル・インストラクションによってきめられたバ
イトの数はタリイ・レジスタ72に記憶される。第2図の
主メモリー32の最初の15インデックス・レジスタのコピ
ーはインデックス・レジスタ・ユニット(IRU)74に維
持される。これは、インデックス・レジスタ・マッチ・
ロジック76によってPMバス28を監視することにより行わ
れる。PMバスを介し、適当なインストラクションによっ
てフェッチされ、変更される最初の15インデックス・レ
ジスタの内容は、このロジック76によりIRU74に記載さ
れる。従って、NAC36の翻訳及び実行段の間、主メモリ
ー32から最初の15レジスタのどれをもフェッチする必要
なく、NAC36のIRU74に直接アクセスを行うことができ
る。
実行段において、エミュレートされるNEATコマンドの開
始インストラクションのためにROM70がアドレスされ、I
RU74の適当なインデックス・レジスタ、NAC36の他のす
べてのレジスタ又はPMバス28に接続されているシステム
の他の装置がアクセスされてマイクロインストラクショ
ンを実行する。そこでタリイ72のカウントはバーチャル
・コマンドによって影響される各バイトが処理されたと
きに減算される。実行中、インデックス・レジスタの内
容を変更することができる。そのような変更のどれもPM
バス28を介してNAC36により、主メモリー32のインデッ
クス・レジスタに対してなされる。第3図のインデック
ス・マッチ・ロジック76は最初の15個のバーチャル・イ
ンデックス・レジスタに対するいかなる書込みをも知る
ことができ、書込みに応じてIRU74のインデックス・レ
ジスタの内容を変更して常に最新状態に維持する。故
に、NEATコマンドのエミュレーション中にNAC36によっ
て行われる主メモリー32の最初の15個のインデックス・
レジスタの変更があった場合には、NAC36のIRU74のイン
デックス・レジスタのコピー内容も変更される。このよ
うに、最初の15個のレジスタのみをIRU74に保持するよ
うにしたのは、NAC36のマイクロインストラクションの
約98%がこの15個のインデックス・レジスタのみを利用
しているにすぎないことが確認できたからである。
NAC36は、さらにフェッチするべき次のバーチャル・コ
マンドのアドレスを記憶しているバーチャル・インスト
ラクション・アドレス・レジスタ(VIAR)180と、NAC36
によって最後にフェッチされたバーチャル・コマンドを
記憶しているバーチャル・インストラクション・レジス
タ(VIR)181とを持つ。NAC36は、又すべてPMバス28に
直接接続されている実際には4つの32ビットERUレジス
タであるステート・スタック182を含む。ステート・ス
タック182に対するアクセスは公知の方法でERUデコード
回路183によって制御される。
ステート・スタック182の最初のステート・スタック・
レジスタ(SSR1)(図に示していない)は、NAC36が制
御をCPC22に移す理由によって、2つの異なる情報ワー
ドの1つを含む。ノンサポートッド・コマンドの故に制
御が移された場合、ステート・スタック182のSSR1はビ
ット25〜32に従いCPC22によって実行されるべきバーチ
ャル・オペコード(Op−Code)と、ビット17〜24により
オペランドの長さを指定するバーチャル・タリイ・フィ
ールドと、バーチャル・コマンドの実行中エミュレート
されているコマンドによって要求されNAC36によってセ
ット及びリセットされるビット1〜8のバーチャル・イ
ンジケータとを含む制御転送ワードを有する。処理でき
ない状態のためにNAC36が制御を移す場合、ステート・
スタック182のSSR1は例外条件ワードを含む。ステート
・スタック182の第2のレジスタ(SSR2)(図に示して
いない)はNEATコマンドのエミュレーションにおけるNA
C36の動作を行うための各種コード及びフラッグを含
む。それらはセットアップ中にNAC36によって変更さ
れ、NACが2ワードNEATコマンドのうちの最初のワード
・セットアップ中であるか、又は第2ワードのセットア
ップ中であるかによって異なるビット26のINBフラグを
含む。ステート・スタック182の第3のレジスタ(SSR
3)(図に示していない)は、種々の内部インジケー
タ、トラップ・リンク・レジスタ及びリトライ・リンク
・レジスタを含む。ステート・スタック182の第4のレ
ジスタ(SSR4)(図に示していない)は、セットアップ
時間中にSSR1に負荷されたバーチャル・インジケータの
コピー(オールド・コピー)を含む。
BPSMPモジュール18及びBPSMSモジュール20のプロセッサ
(CPC22又はNAC36)は同期して平行にコマンドを実行
し、主メモリーからデータをフェッチし、NACのISUメモ
リー30又は制御ROM70のどちらかからのインストラクシ
ョンに従ってデータをエミュレートし、エミュレートし
たデータを主メモリーに再び書込むようにする。プロセ
ッサの動作は以下に述べるように常に比較され、不一致
があると、プロセッサき比較が一致するまで最後のバー
チャル・コマンドを再び実行し、又はハードエラーが発
生したことを決定するよう指令される。
第1図には一対の書込みしうる制御記憶モジュール(WC
SM)34,36が設けられる。各WCSMは、パワーアップ、ブ
ーツ及び日付開始の各プログラムを記憶している8Kバイ
トの読出専用メモリー(ROM)と、夫々ISUメモリー(第
2図の30)のために使用される64Kバイト(32Kワード)
のランダム・アクセス・メモリー(RAM)とを含む。デ
ータの形式でインストラクションを提供するROMのプロ
グラミングはシステムの主メモリーからフェッチされ、
WCSMロード・プログラムでRAM装置に記憶される。32Kワ
ードのISUインストラクションはWCSM1モジュール34に記
憶され、32KワードはWCSM2モジュール36に記憶される。
BPSMPモジュール18はISUバス38及び実行バス40によって
WCSMモジュール34,36に接続される。BPSMSモジュール20
はISUチェック(ISUCHK)バス43,44によってWCSMモジュ
ール34,36に接続され、ISUCHKバス42の延長部48によっ
て、後に説明するデータ完全性モジュール(DINM)46に
接続される。
第2図で説明したものと同一のPMバス50はBPSMPモジュ
ール18とメモリー・サブシステム14との間に接続され、
一次プロセッサ・データ(PBDAT)用のデータ部52と一
次プロセッサ・アドレス(PAD)用のアドレス部54とを
含む。第2のPMバス56はBPSMSモジュール20とDINMモジ
ュール46との間に接続され、二次プロセッサ・データ
(SBDAT)用のデータ部58と、二次アドレス(SAD)用の
アドレス部60とを含む。DINMモジュール46は、又PBDAT
バス52及びPADバス54にも接続される。
以下で説明するように、WCSMモジュール34,36へのISUア
ドレスと、WCSMモジュール34,36からのISUインストラク
ションとはWCSMモジュール34,36とDINMモジュール46と
の間に接続されているラッチドISU(LISU)バス62にラ
ッチされる。DINMモジュール46の中には、BPSMモジュー
ル18,20両方のCPC22か又はNAC36のどちらかによるデー
タの操作の後に行う計算結果の比較がある。モジュール
18と20からの両結果が同一でない場合、バーチャル・コ
マンドを実行しているプロセッサ(CPC22かNAC36のどち
らか)はエラーが発生した最後のバーチャル・コマンド
に戻ってリトライする。リトライ動作中、元来最初の実
行トライでフェッチされたデータは実行しているプロセ
ッサに再び供給される。バーチャル・コマンド・リラン
・モジュール(VCRM)64(フェッチ・ログという)はメ
モリー・サブシステム14からすべてのフェッチされたデ
ータ及び該当するエラー修正コード(ECC)チェック・
ビットを記憶するよう設けられる。これを達成するた
め、VCRM64はPBDATバス52に接続され、フェッチされた2
Kのデータ・エントリを記憶するに十分なRAMを有する。
第3図において説明したように、NAC36は最初の15イン
デックス・レジスタの自己のコピーを保持し、それら最
初の15インデックス・レジスタのいずれに対するバーチ
ャル・コマンドのエミュレーション中になされるべきい
かなるフェッチでも、NAC36の内部バス71(第3図)を
介し、IRU74のレジスタのNACのコピーに対して行われる
であろう。故に、NACバーチャル・コマンド・エミュレ
ーション中における最初の15インデックス・レジスタか
らのいかなるフェッチもフェッチ・ログには現われない
ということを知るべきである。インデックス・レジスタ
はインストラクションの実行中に変更されるかもしれな
いので、NAC36のIRU74のインデックス・レジスタの内容
は、コマンドが最初トライされたときと同一ではない。
従って、VCRM64は、又第2図の主メモリー32の最初の15
インデックス・レジスタの元コピーを含むインデックス
・レジスタ・ログ(IRログ)を有する。それせは現バー
チャル・コマンドのためのNAC36の翻訳段に現われたイ
ンデックス・レジスタと、インストラクション実行中に
変更されるかもしれない最初の15インデックス・レジス
タの第2の又は変更されたコピーとして含まれる。バー
チャル・コマンドの実行に成功すると、IRログの変更さ
れたコピーはその後のバーチャル・コマンドの元コピー
となり、元コピーはその後のコマンドの実行中変更の記
録に使用される。バーチャル・コマンドの実行に成功し
なかった場合、ファームウエアが第3図のIRマッチ・ロ
ジック76によってIRU74に同時に記憶される主メモリー3
2へのIRログの元コピーの内容を回復する。NAC36はその
翻訳段に戻り、バーチャル・コマンドの実行をリトライ
する。今説明したIRログは、最初の15インデックス・レ
ジスタからフェッチされたデータがこの場合、データ・
フェッチ・ログに現われるだろうからCPCバーチャル・
コマンドの実行の場合には必要がない。
VCRM64はバス延長部74によってLISUバス62にも接続され
る。VCRM64は、診断のためにファームウエアが使用する
かもしれないトレース・ログのBPSMP18によって供給さ
れるISUアドレスを記憶するRAMを含む。トレース・ログ
RAMはトレース可能中2KまでのISUアドレス・エントリを
記憶する。希望により、CPCパイプラインをバックアッ
プするために、トレース・ログを使用することもでき
る。
前述のNCR/32 General Information Publicationに説明
してあるように、第2図のCPC22は他のものに対する又
は他のもの間の外部レジスタ(ERU)を使用し、プロセ
ッサ・モジュールの32ビット・チップ・セット装置間の
通信及びCPC22によってセットされ監視されるべき使用
者指定制御信号のために設けられる。32ビット・チップ
・セット、ATC24、EAC34及びNAC36の他の装置及び各種
システムのモジュールは類似のERU能力を有する。
システム依存作用モジュール(SSFM)78は第1図のデー
タ処理システムの動作及び制御のために使用者によって
選ばれたERUの個々のビットを受入れ、変更し及びディ
スプレイするERUレジスタ(図に示していない)を含
む。
第1図のI/Oサブシステム12は一次I/Oデータ(PIODAT)
部82と一次アドレス(PIODAR)部84とを有する一次I/O
バス80を含む、1対の基本I/Oモジュール(BIOM)86,88
は一次モジュール(BIOMP)二次モジュール(BIOMS)で
ある。各BIOMモジュール86,88は第4図のATC24と同一の
ATCチップと、1983年6月7日にKocolほかに発行された
米国特許第4,387,441号に説明してある2つのNCR/32−5
00システム・インタフェース・コントローラ(SIC)チ
ップとを含む。BIOSMモジュール88はI/Oデータ(SIODA
T)部91及びI/Oアドレス(SIOADR)バス92を有する第2I
/Oバス90を持つ、DINMモジュール94(プロセッサ・サブ
システム10のDINMモジュール46と類似する)は一次I/O
バス80と二次I/Oバス90との間に接続され、I/Oサブシス
テム12のデータ完全性チェックを行う。各種I/O特性モ
ジュール(IOPM)93をBIOMP86に接続することができる
ように選ばれたシステム対システム及び各種帯域幅の周
辺装置インタフェース・チャンネルを設け、各種プロト
コルを使用する。
主メモリー・サブシステム14は複数のメモリー・アレイ
100と、デュアル・ポート・メモリー制御(DMCM)102と
を含む。各メモリー。アレイ100は、データ部(CPMDA
T)104及びアドレス部(CPMADR)106を有する中央プロ
セッサ路と、データ部(IOMDAT)108及びアドレス部(I
OMADR)110を有するI/O路とを持つ、故に、DMCM102はBP
SMモジュール18又は20の1つが1つのメモリー・アレイ
100をアクセスすることを可能にし、BIOMモジュール86,
88が他のメモリー・アレイ100をアクセスすることがで
きるようにする。DMCM102は、又後で述べるプレフェッ
チ回路を含む。
DMCMモジュール102のプレフェッチ回路を説明する前
に、第2図のNACチップ36によってエミュレートされる
バーチャルNEATコマンドの説明をすることが有益であ
る。NEAT言語はオハイオ州デイトンのNCR Corporation
が開発してコンピュータ言語であり、NCR Corporation
発行の参考マニュアルに十分記載してある。例えば、バ
ーチャル・オペレーションのためのインストラクション
はNCR Corporationから入手できる参考マニュアルNEATV
S(第ST−9481−47号)に説明してある。バーチャル・
オペレーションに基づくNEAT言語のためのプログラミン
グ概念はNCR Corporation発行のNEATVS VRX−3(スト
ック番号第ST−9481−46号)に十分記載してある。前述
のNEATVSに説明してあるように、NEATオブジェクト・コ
マンドは1ワード・コマンドでも2ワード・コマンドで
もよい。1ワード・コマンドは第4図に示すように、4
バイトの合計32ビットで構成され、その1バイトはQフ
ィールドであり、1バイトのRAフィールド、1バイトの
A2フィールド及び1バイトのA1フィールドを有する。A2
及びA1フィールドは使用する際にA2A1フィールドとして
結合される。Qフィールドは実行するべき実際のバーチ
ャル機械オブジェクト・インストラクションを認識する
オブジェクト・インストラクション・コードを含む。RA
フィールドはインデックス・レジスタの識別を含めるこ
とができ、A2A1フィールドと共に使用するときに、A2A1
フィールドによって表わされる片寄りに対し、RAフィー
ルドで指定してインデックス・レジスタの内容を加える
ことによって、Aオペランドの実効アドレスを計算す
る。2ワードNEATコマンドは第5図に示すように、4バ
イトから成る最初のワードは第4図の4バイトに非常に
よく似ており、それらはQフィールド、RAフィールド、
A2フィールド及びA1フィールドを含む。2ワード・コマ
ンドのワード2はTフィールド、RBフィールド、B2フィ
ールド及びB1フィールドを含む。B2及びB1フィールドは
使用する際に1つのB2B1フィールドとして結合して使用
する。Tフィールドは通常A及びBオペランドの長さを
指定するバイナリ値である。RBフィールドはB2B1フィー
ルドの片寄りとRBフィールドで指定したインデックス・
レジスタの内容とを加えることによって計算される。第
5図のワード1のQフィールドの8ビットはそのコマン
ドが1ワード・コマンドか(ビット8が“1"である)、
2ワード・コマンド(ビット8が“0"である)かを識別
する。第2図のNACチップ36はメモリーから32ビット・
4バイトのNEATコマンドをフェッチし、そのコマンドの
Qフィールド(ビット25〜32)を検証して第1ワードの
次にある第2ワードをフェッチするべきかどうかを決定
する。NAC36が完全なコマンド(1ワードか2ワードの
どちらか)を持ったときに、自己のファームウエアを調
べ、CPCチップ22にマイクロインストラクションを発行
してNEATコマンドをエミュレートすることができるかど
うか確認する。第4図の1ワード・コマンドか第5図の
2ワード・コマンドのどちらかに含まれているNEATコマ
ンドをエミュレートする際、NEATチップ36は、それが適
用される場合、インデックス・レジスタ・フィールドR
A,RBの内容をメモリーからフェッチし、A及びBオペラ
ンドのアドレスを計算してAオペランド及びBオペラン
ドのためのデータをフェッチし、コマンドをエミュレー
トする。
第6図は第4図及び第5図のRA又はRBフィールドの例示
である。第4図及び第5図に示すように、RAフィールド
はコマンドの第1ワードのビット17〜24にあり、RBフィ
ールドは第5図の2ワード・コマンドの第2ワードのビ
ット17〜24にある。各RA,RBフィールドはビット3〜8
にインデックス・レジスタ番号と、ビット1及び2にメ
モリー・アクセス・モード・コード(MAM)とを含む。
この発明については、メモリー・アクセス・モード・コ
ードは無視することができる。インデックス・レジスタ
が4バイトである場合(図に示していない)、RA又はRB
フィールドの最初の2ビットを“0"にセットして、ビッ
ト3〜8のインデックス・レジスタ番号をそのインデッ
クス・レジスタのアドレスとすることができる。例え
ば、インデックス・レジスタ0をバーチャル・メモリー
のバイト0から開始し、インデックス・レジスタ1をバ
イト8から開始する等にする。
第7図は、メモリーからインデックス・レジスタの内容
をフェッチするに使用するバーチャル・アドレスを例示
する。バーチャル・アドレシングは周知であり、上記の
刊行物ST−948−46及びNCR/32 General Information Pu
blicationにも十分記載してあり、それらは置換及びバ
ーチャル頁番号(VPN)をも含む。ここに示した例は2K
バーチャル頁サイズのものを示す。バーチャル頁番号は
バーチャル・アドレスのビット12とビット24との間に延
び、置換はビット1と11との間に延びる。インデックス
・レジスタの置換はビット1及び2の“0"から成り、ビ
ット3〜8のインデックス・レジスタ番号から成る。故
に、番号がビット3〜8にあるインデックス・レジスタ
の内容をフェッチするために、そのインデックス・レジ
スタ番号はビット1及び2の2つの“0"を持ち、バーチ
ャル頁番号と連結して第2図のPMバス28に出力される24
ビット・バーチャル・アドレスを作成する。上記のNCR/
32 General Information Publicationの第5章に十分記
載してあるように、第2図のアドレス翻訳チップ(AT
C)24は第7図のバーチャル頁番号(VPN)を取り、それ
を置換と共に連結する頁フレーム番号(PFNO)に変換し
て実アドレス(第8図)を形成する。そこで、ATCチッ
プ24は、例えば、インデックス・レジスタの内容をフェ
ッチするために主メモリー32に使用させるため、その実
アドレスをPMバス28に出力する。
置換は、Aオペランドの場合、RAフィールドにあるイン
デックス・レジスタの内容にA2A1フィールドの値を加え
ることによって形成される番号を作成するということを
知るべきである。Bオペランドが使用される場合、B2B1
フィールドの値はRBフィールドに示されているインデッ
クス・レジスタの内容に加えられる。サイズが4Kバーチ
ャル頁の場合、バーチャル頁番号はビット13〜24から延
長し、第8図に示すように、実アドレスの頁フレーム番
号はビット13〜24から延長する。
第9A図及び第9B図において説明するように、DMCMモジュ
ール102のプリフェッチ・ユニット200は4バッファ・レ
ジスタ・3バーチャル・アドレス・レジスタ及び4実ア
ドレス・レジスタを含む。第2図のNAC36がNEATコマン
ドか主メモリー32からのデータをフェッチしたい場合、
NAC36はPMバス28にバーチャル・アドレスを出力し、ATC
チップ24はPMバス28からバーチャル・アドレスを取り、
それを実アドレスに翻訳してPMバス28に戻す。実アドレ
スのデータ又はインストラクションは主メモリー32から
フェッチされ、NAC36に戻る。PMバスに接続されたプリ
フェッチ回路200はNAC36からのフェッチを検出し、PMバ
スからバーチャル・アドレス・レジスタにバーチャル・
アドレスを負荷し、対応する実アドレスを対応する実ア
ドレス・レジスタに負荷する。そこで、プリフェッチ回
路200は指令されたようにバーチャル・アドレスを4だ
け増加又は減少し、頁境界を越えない場合には、実アド
レスを増加又は減少する。その実アドレスのインストラ
クション又はデータはプリフェッチ回路200でフェッチ
され、後の動作でNAC36が使用するよう対応するデータ
・レジスタに出力する。
従って、NAC36によって最初のフェッチが行われた後、
プリフェッチ回路200はNAC36が使用するインストラクシ
ョン又はデータがそこでプリフェッチする必要なくすで
に用意されているというように、次のインストラクショ
ン又はデータをプリフェッチする。バーチャル・アドレ
スを増加又は減少したため、バーチャル頁境界を越えた
ような場合には、増加又は減少したバーチャル・アドレ
スがPMバスに出力され、ATCチップ24はバーチャル・ア
ドレスを翻訳してその実アドレスをプリフェッチ回路20
0に戻す。プリフェッチ回路200は翻訳されたアドレスの
インストラクション又はデータをプリフェッチしてそれ
を適当なレジスタに記憶する。
プリフェッチ回路がコマンドをプリフェッチすると、そ
れはバッファ・レジスタ記憶ユニット(第9A図のRAM20
4)のアドレス0におけるコマンド・バッファに記憶さ
れる。RAM204のアドレス1及び2におけるバッファ・レ
ジスタはデータのために予約され、そのアドレス3にお
けるバッファ・レジスタはインデックス・レジスタの内
容を記憶するために予約されている。第4図及び第5図
で説明したように、NEATコマンドはA及びBオペランド
のアドレスの決定に使用されるインデックス・レジスタ
の番号を含む。コマンドがフェッチ又はプリフェッチさ
れたとき、NEATコマンドに含まれているインデックス・
レジスタ番号はプリフェッチ回路によって主メモリー32
からフェッチされ、NAC36が必要なときに使用するた
め、RAM204のアドレス3のバッファ・レジスタに記憶さ
れる。
ラインa−aに沿って共に接続された第9A図及び第9B図
は、第1図のDMCMモジュール102にあるプリフェッチ回
路200のブロック図を形成する。プリフェッチ回路200は
PBDATデータ・バス52及び第1図のPMバス50のPADアドレ
ス・バス54に接続される。トランシーバ202(Fairchild
の74F245でよい)はPBDATデータ・バス52に接続されて
データ・バス52からのデータを受信し、データ・バス52
のプリフェッチ回路200からのデータを要求する。4×3
2ビットRAM204(Texas Instrumentsの75LS670でよい)
はPBDATデータ・バス52に接続されているデータ入力端
子Aを有する。RAM204はバイリナ数0〜3から成る1対
のデータ信号(BN0,BN1)によって、そのアドレス端子
Aがアドレスされる。RAM204のデータ出力端子(DO)は
バッファ206(Fairchild74F533でよい)に接続され、そ
の出力はマルチプレクサ208の入力に接続される。マル
チプレクサ208(Fairchild34F258でよい)の出力はトラ
ンシーバ202を通してPBDATデータ・バス52に接続され
る。
バッファ210(Texas Instrumentsの74S174でよい)はPB
DATデータ・バス52を介して第2図のメモリー32からフ
ェッチされたNEATコマンドのビット19〜24を記憶する。
第6図において説明したように、ビット19〜24はNEATコ
マンドのRAフィールドかRBフィールドのどちらかのイン
デックス・レジスタ番号(IRN)を含む。第3図におい
て説明したように、NAC36は最初の15インデックス・レ
ジスタの内容を記憶する内部レジスタを含む。故に、PB
DATバス52のインデックス・レジスタ番号が最初の15レ
ジスタの1つであると、それらレジスタの内容はNAC36
によってその内容レジスタから取られる。公知のよう
に、NEAT言語はプログラムすることにより最初の62イン
デックス・レジスタの使用を可能にする。故に、デコー
ド・ロジック212を設けて、インデックス・レジスタ番
号が16に等しいか16より大きく、62に等しいか62より小
さい数かどうか確認するためにインデックス・レジスタ
番号をデコードする。バッファ210のインデックス・レ
ジスタ番号が16に等しいかそれより大であり、62に等し
いかよれより小である場合、そのインデックス・レジス
タ番号をバッファ210の出力に接続されているバッファ2
14(Fairchildの74F240)に記憶する。バッファ216(Fa
irchildの74F244)はマルチプレクサ208の他方の入力に
接続され、後述するように、指令によりPBDATデータ・
バス52にインデックス・レジスタ番号バッファ210の内
容を出力する。
PADアドレス・バス54はマルチプレクサ218(Fairchild7
4F257でよい)の一方の入力に接続され、その出力はMUX
バス220に接続される。MUXバス220のビット1〜24は3
バーチャル・アドレス・レジスタ(VAR0〜VAR2)221,22
2,223(夫々Fairchild74F374でよい)のスタックに接続
される。MUXバス220のビット3〜24は3つの実アドレス
・レジスタ(RAR0〜RAR2)224,225,226(Fairchild74F3
74でよい)のスタックに接続される。MUXバス220のビッ
ト12〜24は実アドレス・レジスタ(RAR3)227(Fairchi
ld74F374でよい)に接続される。VAR0レジスタ221はNEA
Tコマンドのバーチャル・アドレスを記憶するために予
約され、RAR0レジスタ224はそれに対応する実アドレス
を記憶するために予約される。VAR1レジスタ222及びVAR
2レジスタ223はデータのバーチャル・アドレスを記憶す
るために予約され、RAR1レジスタ225及びRAR2レジスタ2
26はそれに対応する実アドレスを記憶するために予約さ
れる。第8図において説明したように、実アドレスのビ
ット12〜24は、置換に使用したときに、実アドレスを形
成する頁フレーム番号を表わす。実アドレス・レジスタ
(RAR0)224〜(RAR3)227の出力は実アドレス(RA)バ
ス230に接続される。インデックス・レジスタ番号に含
まれているバッファ214の出力はバス231を介してRAバス
230にも接続される。ドライバ232(Fairchild74F244で
よい)はRAバス230に接続されている入力を持ち、その
出力はバス233を介してPADデータ・バス54に接続され
る。従って、実アドレス・レジスタRAR0〜3からの実ア
ドレスはPADデータ・バス54に出力され、ドライバ232に
よってCPMADRバス106に接続され、第1図のメモリー・
サブシステム14のメモリー・アレイ100の1つからフェ
ッチする。バッファ214の内容はRAR3レジスタ227の内容
と連結されて、PBDATデータ・バス52(第9A図)に接続
されているCPMDATバス104を介してメモリーからフェッ
チされたNEATコマンドに受信されたインデックス・レジ
スタのための実アドレスを形成する。
バーチャル・アドレス・レジスタVAR0〜2(221,222,22
3)の出力はアダー236(Fairchild74F191でよい)の入
力に接続されているバーチャル・アドレス(VA)バス23
4に接続される。アダー236の出力はマルチプレクサ218
の他方の入力に接続されているカウント・バス(CNT)2
38に接続される。VAバス234の第12番ビットは比較器240
の一方の入力に接続され、CNTバス238の第12番ビットは
比較器240の他方の入力に接続される。アダー236による
VAバス234のバーチャル・アドレスの増加又は減少がバ
ーチャル・アドレスの第12番ビットを変更させたとき
は、比較器240は頁境界を越えたという表示を与える(R
OSSPAGE信号を出力する。この例では、サイズが2Kバー
チャル頁のために第12番ビットが選ばれる。4Kバーチャ
ル頁を使用すると、第13番ビットが使用される。ドライ
バ242(Fairchild74F244でよい)はRAバス230を介してV
Aバス234に実アドレスを送信する。バス244はVAバス234
をマルチプレクサ208の第2の入力とVAバス234を接続す
る。
ドライバ246(Fairchild74F244でよい)はPBDATデータ
・バス52に接続された入力と、MUXバス220に接続された
出力とを持ち、PBDATデータ・バス52からのデータはMUX
バス220に直接接続されてレジスタ221〜227のいずれか
に出力される。0RAバッファ248と、1RAバッファ249と、
2RAバッファ250とはすべてFairchildの74F373でよく、M
UXバス220に接続されている入力を有する。0RAバッファ
はRAR0バッファ224と同時に負荷され、1RAバッファ249
はRAR1バッファ225と同時に負荷され、2RAバッファはRA
R2バッファ226と同時に負荷される。バッファ252(Fair
child74F373でよい)はPADアドレス・バッファ54に接続
されている入力と、比較器253,254,255に接続されてい
る出力とを持つ。0RAバッファ248の出力は比較器253の
他方の入力に接続され、1RAバッファ249の出力は比較器
254の他方の入力に接続され、2RAバッファ250の出力は
比較器255の他方の入力に接続される。夫々比較器253,2
54,255はFairchild74F521装置でよい。それぞれ比較器2
53,254及び255の各出力は信号MATCH(マッチ)0、マッ
チ1及びマッチ2を出力する。マッチ信号マッチ0、マ
ッチ1及びマッチ2はバッファ・エントリのアドレス位
置がメモリーで変更された場合、RAM204のバッファ・エ
ントリを無効にすることに使用される。それは3RAM204
のバッファ・エントリがその後プリフェッチされて変更
した場合、そのバッファ・エントリをNAC36に供給する
のを防止する。
フェッチ・ロジック247はプリフェッチ回路200の動作を
制御する。そのフェッチ制御ロジック回路247は次に信
号を受信する。
MAE/(メモリー・アドレス・エネーブル) この信号はX0期間中NAC36から発生し、PMバスを介し実
メモリー・アドレスの転送を可能にする。
PVT/(プロセッサ・バーチャル転送) この信号はX0期間中NAC36から発生し、バーチャル・メ
モリー・アドレスの転送を可能にする。
BF/(バッファ・フェッチ) この信号はNAC36から送信され、フェッチが要求されて
いるということを表示する。
BR/(バッファ・リクエスト) この信号はNAC36から送信され、NAC36がインストラクシ
ョン又はデータのどちらかを受信希望であることを示
す。
UD/CS/(アップ−ダウン/継続−停止) この信号は、次の要求が現在のフェッチ位置の直上位
(アップ)にあるか、直下位(ダウン)にあるか、又は
継続受信するべきか受信停止するべきかの表示に使用さ
れる。受信した信号によって異なることを表示する。BF
/信号を使用したときはUD/CS/信号は“アップ−ダウ
ン”信号であり、BR/信号を受信したとき、信号UD/CS/
は継続−停止信号である。
BN1,BN0(バッファ番号1、バッファ番号0) これら2つの信号が一緒に使用されたときはバイナリ値
0〜3を形成し、どのバッファ・レジスタがNACからの
フェッチ又は受信信号によってアドレスされているかを
示す。
INT(インタラプト) この信号はインタラプト状態が発生したことを表わす。
この信号を受信すると、フェッチ制御ロジック247はPBD
ATデータ・バス52から新たなデータを受信して各種アド
レス・レジスタをリロードし、インタラプト信号が除去
されたときにフェッチ動作をリスタートするよう条件付
けられる。
NAC36が、例えば、主メモリーからNEATコマンドをフェ
ッチする用意があるときには、フェッチを発生すべきこ
とを表示して信号BF/を発生する。BN1及びBN0信号はイ
ンストラクションをフェッチすることを表示する場合は
バイナリ“0"を形成する。又、UD/CS/信号がセットされ
ると、フェッチ回路200でフェッチされる次のインスト
ラクションは高位アドレスを持つべきか、低位アドレス
を持つべきかを表示する。フェッチ制御回路247はPVT/
信号を検査し、バスを介してバーチャル・アドレスが転
送されているかを確認する。フェッチ制御ロジック247
は次に信号MAE/を検査してPMバスに実アドレスがあるか
どうかを確認する。フェッチ制御ロジック247はマルチ
プレクサ218をセットしてPADアドレス・バス54のバーチ
ャル・アドレスをVAR0レジスタ221に送信する。次に、
実アドレスはPADアドレス・バス54からマルチプレクサ2
18を介してRAR0レジスタ224に送られる。NAC36は主メモ
リーから要求されたコマンドをフェッチしてフェッチさ
れたコマンドのエミュレーションを開始し、プリフェッ
チ回路200は現在フェッチされているコマンドの次に続
くコマンドをプリフェッチするよう準備した。VAR0レジ
スタ221のバーチャル・アドレスはVAバス234を介し、ア
ップか又はダウンにカウントするように信号UD/CS/のUD
/部によって条件付けられているカウンタ236に供給され
る。VAバス234からのビット1及び2はバス235を介して
カウンタを避け、CNTバス238に直接送信される。値“1"
はVAバス234のバーチャル・アドレスのビット3〜24に
加えられる。それは、実際はバーチャル・アドレスに4
を加えることになる。VAバス234のバーチャル・アドレ
スの第12番ビットはCNTバス238の第12番ビットと比較さ
れ、バーチャル頁境界を越えていないかどうか確認す
る。頁境界を越えていない場合、新たなバーチャル・ア
ドレスがマルチプレクサ218を通してVAR0レジスタ221に
復帰する。RAR0レジスタ224にある実アドレスはRAバス2
30に出力され、ドライバ242を介してRAバス230からVAバ
ス234に転送される。次に、アダー236は実アドレスに4
を加え、新たな実アドレスをマルチプレクサ218を介し
てRAR0レジスタ224に記憶する。そこで、新たな実アド
レスをRAバス230に出力し、ドライバ232を通し、バス23
3を介してCPMADRバス106(第9A図)に送られる。新たな
実アドレスはフェッチ制御回路247からのメモリー要求
信号と共に主メモリーから次のコマンドをフェッチす
る。プリフェッチされた次のコマンドがCPMDATバス104
を介してトランシーバ202に戻されたときに、トランシ
ーバ202はPBDATバス52にフェッチしたインストラクショ
ンを出力し、RAM204のアドレス端子の信号BN0,BN1によ
って確認されたときに、RAM204のアドレス0に負荷され
る。
NAC36が次のNEATコマンドをメモリーから必要とすると
きは、フェッチ制御回路247に対してBR/受信信号を送信
する。BF/信号の代りにBR/信号を受信すると、フェッチ
制御回路247を指令して、BN0,BN1信号によって指令され
たRAM204のアドレスの内容をNAC36に戻す。UD/CS/は次
にプリフェッチ回路200がプリフェッチ。コマンドに継
続するべきであるか、又は停止するべきであるかを表示
することになる。これはVAR1レジスタ222及びそれに対
応するRAR1レジスタ225か又はVAR2レジスタ223及びそれ
に対応するRAR2レジスタ226を使用して主メモリーから
データをフェッチする場合と同一処理手順に従う。
頁境界を越えた場合、比較器240からの信号CROSSPAGEが
アクティブとなる。CNTバス238の新たなバーチャル・ア
ドレスがマルチプレクサ218を介して適当なレジスタ(V
AR0〜2)221〜223に記憶され、VAバス234に出力され
る。次に、フェッチ制御ロジック247は適当なリクエス
ト信号(REQ)(第9B図)を発生することによって、第
2図のPMバス28を要求する。要求がPMバス28に受入れら
れると、VAバス234のバーチャル・アドレスはバス224を
通し、マルチプレクサ208を介してドライブされ、トラ
ンシーバ202を介してPBDATバス52に出力される。フェッ
チ制御回路247は、又第2図のATC24を指令する信号PVT
を発生してPMバス28のバーチャル・アドレスを翻訳す
る。ATCチップ24及びPMバス28のためのインストラクシ
ョンは公知のものであって、上記のNCR/32 General Inf
ormation Publicationに説明してある。
ATCチップ24がバーチャル・アドレスを翻訳した後、翻
訳した実アドレスを信号MAE/と共にPADアドレス・バス5
4に出力する。プリフェッチ回路200がMAE/信号を受信し
たとき、実アドレスは適当な実アドレス・レジスタRAR0
〜2(224〜226)に記憶され、その実アドレスのデータ
又はコマンドはCPMDATバス104を介して主メモリーから
フェッチされ、RAM204の適当なデータ・レジスタに記憶
される。RAR3レジスタ227及び0RA〜2RAバッファ248〜25
0はMUXバス220からロードされ、それは実アドレスをATC
チップ24から受信したときに行われる。
例えば、ロールバック動作の場合のようにインタラプト
があると、第9A図及び第9B図のプリフェッチ回路は信号
INTを受信する。信号INTはPBDATバス52のデータを直接M
UXバス220に出力することができるように、ドライバ246
を条件付ける。インタラプトの後、第2図のCPC22は希
望によりバーチャル・アドレス・レジスタVAR0〜2(22
1〜223)にアドレスを負荷することができる。アドレス
・レジスタVAR0〜2(221〜223)のバーチャル・アドレ
スは翻訳され、希望により、コマンド・データ又はイン
デックス・レジスタの内容はプリフェッチされる。
ERUレジスタ(図に示していない)は指令により、アド
レス・レジスタ221〜227の内容をバス244に出力し、マ
ルチプレクサ208を介してトランシーバ202を通し、PBDA
Tバス52に出力させることができる。バッファ216にも記
憶されているIRNバッファ210の内容はマルチプレクサ20
8を通して多重化され、トランシーバ202を介してPBDAT
バス52に出力することができる。この方法により、アド
レス・バッファ221〜227の内容及びバッファ216の内容
は検査され、希望するようにディスプレイすることがで
きる。
第10図は第9A図及び第9B図のプリフェッチ回路200のフ
ェッチ−受信動作中におけるX0,X1,BF/,UD/CS/,BN0/,B
N1/,BR/及びMAE/信号のためのタイミング図である。符
号300において、BF/信号が“ロー”となり、フェッチの
発生すべきことを示す。302では、UD/CS/信号が“ロ
ー”となり、方向が高位であることを示す。304におい
て、BN0,BN1の値はバッファ1が選ばれたことを示す
“1"である。次に、フェッチ手順は第2図のNAC36によ
って第1ワードを受信するよう動作する。これは数サイ
クルの処理である。NAC36によるフェッチの後、第9A
図、第9B図のプリフェッチ回路200がPMバスを取得する
と、メモリーの次の高位ワードをフェッチして、それを
RAN204のバッファ1に記憶する。306において、信号BR/
が“ロー”となり、NAC36が受信希望であることを示
す。プリフェッチ回路200がプリフェッチを継続すべき
であることを示して、UD/CS/が308でダウンするが、310
におけるBN0,BN1アドレスはまだ“1"である。312の次の
X0において、NAC36はRAM204のバッファ1から第2ワー
ドを受信し、プリフェッチ回路200は次に高位のワード
をプリフェッチする。
第11図は、一群の連続受信動作中におけるX0,X1,BR/,U
D/CS/,BN0/及びBN1/信号のタイミング図である。314に
おいて、BR/信号はBN0及びBN1によって316に示すよう
に、バッファ1からワードAをNAC36が受信するべきで
あることを示し、UD/CS//信号の318における“ロー”で
示すように、プリフェッチ回路200が継続されるべきで
あることを示す。次のX0の320において、NAC36はBR/パ
ルス314によって要求されたワードAを受信する。
322において、ワードBのために新たな受信が開始され
る。それは324に示すように、RAM204のバッファ2から
受信し、プリフェッチ回路は326においてバッファ2の
データ・プリフェッチを停止する。第11図の実施例にお
いては、322で要求されたワードBは、要求されたデー
タがRAM204のバッファ2に負荷されるのをプリフェッチ
・ユニットが待っているので、X0238まで、NAC36に受信
されない。330において、332で指定されるように、第3
のワードCの受信がバッファ0から要求され、334に示
すように、プリフェッチ回路200はバッファ0のために
プリフェッチを継続するべきである。X0336において、N
AC36は330で要求されたワードCを受信する。
第9B図のフェッチ制御ロジック回路247からのメモリー
要求信号の発生及びタイミングは、メモリー・リクエス
ト信号は公知であり、上記のNCR/32 General Informati
on Publicationに記載してあるので、示していない。
プリフェッチ回路は1つのデータ・バッファ、1つのバ
ーチャル・アドレス・レジスタ及び1つの実アドレス・
レジスタのみによってここに説明したプリフェッチ作用
を実行することができ、コマンド・フェッチとデータ・
フェッチ又は受信間の区別を、別のコマンド・バッファ
とデータ・バッファを使用する代りに、1ビット信号に
よって指定することができるということを理解するべき
である。
〔発明の効果〕
以上説明したように本願発明は、データ処理システムに
おいて、最初のフェッチが行なわれた後はプリフェッチ
回路によりインストラクション及びデータをプリフェッ
チを行なうようにして、エミュレータ等のデータ処理手
段がメインフレームのインストラクションを実行するま
での間に、メモリーからデータを読み出す等の多くの時
間を必要としないようにしたデータ処理システムを提供
することができた。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ンギュイエン,トルク ダング イエン アメリカ合衆国 92129 カリフォルニア サン デイエゴ,カルロータ ストリー ト 11057 (72)発明者 パテル,チマン リバブハイ アメリカ合衆国 92026 カリフォルニア エスコンデイド,ビーチ プレイス 1428 (56)参考文献 特開 昭57−18075(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】頁フレームに分けられたメモリーからのコ
    マンドを、前もってレジスタにプリフェッチするための
    プリフェッチ回路であって、 プリフェッチされたコマンドのアドレスであって、頁フ
    レーム番号を含むリアルアドレスを記憶するリアルアド
    レス記憶手段と、 プリフェッチされたコマンドのアドレスに対応する、仮
    想頁番号を含む仮想アドレスを記憶する仮想アドレス記
    憶手段と、 入力されたアドレスにオフセット値を加えた新たなアド
    レスを出力する入出力部を有し、該入力部と該仮想アド
    レス記憶手段とが仮想アドレスバスを介して接続される
    ことにより、該仮想アドレス記憶手段からの仮想アドレ
    スが該入力部に供給され、新たな仮想頁番号を有す新た
    な仮想アドレスを該出力部から得ることができるように
    した該加算手段と、 該リアルアドレス記憶手段と該加算手段の出力部の間に
    接続され、該リアルアドレスを構成する頁フレーム番号
    の最下位部が該新たな仮想アドレスを構成する仮想頁番
    号の最下位部と同じ場合に第1の状態を出力し、該リア
    ルアドレスを構成する頁フレーム番号の最下位部が該新
    たな仮想アドレスを構成する仮想頁番号の最下位部と違
    う場合に第2の状態を出力する比較手段とからなるプリ
    フェッチ回路であって、 該リアルアドレス記憶手段は、該加算手段の入力部とリ
    アルアドレスバスを介して接続され、該比較手段が第1
    の状態を出力するとき、該リアルアドレスが該加算手段
    に送られることにより、該加算手段の出力と該メモリー
    手段との間に設けられたフェッチ手段がプリフェッチの
    ための新たなリアルアドレスを得て、、該新たなリアル
    アドレスに示されたメモリー位置からコマンドをフェッ
    チすることができる、データ処理システムのプリフェッ
    チ回路。
JP61504685A 1985-08-29 1986-08-21 データ処理システムのプリフェッチ回路 Expired - Lifetime JPH07117897B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/770,459 US4722047A (en) 1985-08-29 1985-08-29 Prefetch circuit and associated method for operation with a virtual command emulator
US770459 1985-08-29
PCT/US1986/001712 WO1987001482A1 (en) 1985-08-29 1986-08-21 Data processing system including a prefetch circuit

Publications (2)

Publication Number Publication Date
JPS63500688A JPS63500688A (ja) 1988-03-10
JPH07117897B2 true JPH07117897B2 (ja) 1995-12-18

Family

ID=25088610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61504685A Expired - Lifetime JPH07117897B2 (ja) 1985-08-29 1986-08-21 データ処理システムのプリフェッチ回路

Country Status (6)

Country Link
US (1) US4722047A (ja)
EP (1) EP0235255B1 (ja)
JP (1) JPH07117897B2 (ja)
CA (1) CA1260618A (ja)
DE (1) DE3672605D1 (ja)
WO (1) WO1987001482A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
US4975869A (en) * 1987-08-06 1990-12-04 International Business Machines Corporation Fast emulator using slow processor
US5179703A (en) * 1987-11-17 1993-01-12 International Business Machines Corporation Dynamically adaptive environment for computer programs
US5287483A (en) * 1988-07-06 1994-02-15 Kabushiki Kaisha Toshiba Prefetched operand storing system for an information processor
JPH0752405B2 (ja) * 1988-12-14 1995-06-05 日本電気株式会社 シングルチップマイクロコンピュータ
US5150471A (en) * 1989-04-20 1992-09-22 Ncr Corporation Method and apparatus for offset register address accessing
US5278963A (en) * 1991-06-21 1994-01-11 International Business Machines Corporation Pretranslation of virtual addresses prior to page crossing
EP0567971B1 (en) * 1992-04-27 1999-07-28 Sony Corporation Information processing system assuring compatibility between different models
US5450561A (en) * 1992-07-29 1995-09-12 Bull Hn Information Systems Inc. Cache miss prediction method and apparatus for use with a paged main memory in a data processing system
US5680632A (en) * 1992-12-24 1997-10-21 Motorola, Inc. Method for providing an extensible register in the first and second data processing systems
WO1994027214A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer
US5606685A (en) * 1993-12-29 1997-02-25 Unisys Corporation Computer workstation having demand-paged virtual memory and enhanced prefaulting
US5577227A (en) * 1994-08-04 1996-11-19 Finnell; James S. Method for decreasing penalty resulting from a cache miss in multi-level cache system
US5663924A (en) * 1995-12-14 1997-09-02 International Business Machines Corporation Boundary independent bit decode for a SDRAM
US6339752B1 (en) * 1998-12-15 2002-01-15 Bull Hn Information Systems Inc. Processor emulation instruction counter virtual memory address translation
US6401185B1 (en) * 1999-05-27 2002-06-04 Oracle Corp. Method and apparatus for accessing paged objects using a fast division technique
US6678817B1 (en) 2000-02-22 2004-01-13 Hewlett-Packard Development Company, L.P. Method and apparatus for fetching instructions from the memory subsystem of a mixed architecture processor into a hardware emulation engine
US6701422B2 (en) * 2001-03-29 2004-03-02 Koninklijke Philips Electronics N.V. Memory control system with incrementer for generating speculative addresses
US8645609B2 (en) * 2010-12-06 2014-02-04 Brocade Communications Systems, Inc. Two-port memory implemented with single-port memory blocks
CN102541745B (zh) * 2010-12-31 2015-10-21 上海海尔集成电路有限公司 微控制器数据存储器的寻址方法和微控制器
US9329996B2 (en) * 2011-04-27 2016-05-03 Veris Industries, Llc Branch circuit monitor with paging register
US10671535B2 (en) * 2013-07-17 2020-06-02 Advanced Micro Devices, Inc. Stride prefetching across memory pages
US11809610B2 (en) * 2014-06-16 2023-11-07 Texas Instruments Incorporated Hardware protection of inline cryptographic processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5718075A (en) * 1980-07-07 1982-01-29 Nec Corp Information processor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3504349A (en) * 1967-09-27 1970-03-31 Ibm Address examination mechanism for use in a system operating with dynamic storage relocation
US3618041A (en) * 1968-10-31 1971-11-02 Hitachi Ltd Memory control system
DE2134816C3 (de) * 1971-07-13 1978-04-27 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Adressenübersetzung
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
CA1134952A (en) * 1979-04-24 1982-11-02 Thomas E. Kloos Means and method within a digital processing system for prefetching both operation codes and operands
US4371924A (en) * 1979-11-09 1983-02-01 Rockwell International Corp. Computer system apparatus for prefetching data requested by a peripheral device from memory
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4422144A (en) * 1981-06-01 1983-12-20 International Business Machines Corp. Microinstruction substitution mechanism in a control store
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
US4613935A (en) 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5718075A (en) * 1980-07-07 1982-01-29 Nec Corp Information processor

Also Published As

Publication number Publication date
JPS63500688A (ja) 1988-03-10
US4722047A (en) 1988-01-26
WO1987001482A1 (en) 1987-03-12
EP0235255A1 (en) 1987-09-09
EP0235255B1 (en) 1990-07-11
CA1260618A (en) 1989-09-26
DE3672605D1 (de) 1990-08-16

Similar Documents

Publication Publication Date Title
JPH07117897B2 (ja) データ処理システムのプリフェッチ回路
EP0464494B1 (en) A high performance pipelined emulator
US4763242A (en) Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
KR100403405B1 (ko) 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로
EP0405495B1 (en) Instruction unit logic management apparatus included in a pipelined processing unit and method therefor
US6230259B1 (en) Transparent extended state save
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
JPH0128415B2 (ja)
EP2718830B1 (en) Managing operator message buffers in a coupling facility
EP0664897B1 (en) High speed programmable logic controller
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
KR20010007031A (ko) 데이터 처리장치
GB2024475A (en) Memory access controller
US5179671A (en) Apparatus for generating first and second selection signals for aligning words of an operand and bytes within these words respectively
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
JP2000207247A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JP2002215387A (ja) 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
CA2003004C (en) Apparatus and method for executing a conditional branch instruction
JP2710994B2 (ja) データ処理装置
US5197133A (en) Control store addressing from multiple sources
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPH02105937A (ja) データ処理装置