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

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

Info

Publication number
JPS63500688A
JPS63500688A JP61504685A JP50468586A JPS63500688A JP S63500688 A JPS63500688 A JP S63500688A JP 61504685 A JP61504685 A JP 61504685A JP 50468586 A JP50468586 A JP 50468586A JP S63500688 A JPS63500688 A JP S63500688A
Authority
JP
Japan
Prior art keywords
address
command
register
data
virtual
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.)
Granted
Application number
JP61504685A
Other languages
English (en)
Other versions
JPH07117897B2 (ja
Inventor
チャン,カスン カイ
ンギュイエン,トルク ダング イエン
パテル,チマン リバブハイ
Original Assignee
エイ・ティ・アンド・ティ グローバル インフォメーション ソルーションズ インターナショナル インコーポレイテッド
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 エイ・ティ・アンド・ティ グローバル インフォメーション ソルーションズ インターナショナル インコーポレイテッド filed Critical エイ・ティ・アンド・ティ グローバル インフォメーション ソルーションズ インターナショナル インコーポレイテッド
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)

Abstract

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

Description

【発明の詳細な説明】 この発明は処理手段及びメモリ一手段を含むデータ処理システムに関する。
この発明は、データ処理システムがバーチャル・コマンド・エミーレータとして 動作するものに特別な応用を有する。
背景技術 集積回路チップによるマイクロゾロセッサの出現によす、従来コンピータ・シス テムの中央処理装置が行ってきた多くの仕事をそのチップにやらせるようになっ てきた。メインフレーム・インストラクション群をエミュレートするワンチップ ・マイクロコード・プログラムを含むマイクロプロセッサ・エミーレータ・チッ プも開発されてきた。メインフレーム・インストラクションをエミュレータする ために、エミュレータはコンピュータ・システムからコマンドをフェッチし、そ れをそのオブジェクト・インストラクション・コードにデコードして適当にイン デックスレジスタに記憶し、コマンドをエミュレートする前にインデックス・レ ジスタをフェッチする。従って、エミュレータがメインフレーム・インストラク ションをエミュレートし始めることができるようになる前にメモリーからデータ をフェッチしなければならないため、相当大きな時間を消費してきた。
この発明によると、処理手段及びメモリ一手段を含むデータ処理システムであっ て、前記メモリ一手段からインデックス・レジスタ・アイデンティフィケーショ ン・データを含むプリフェッチされたコマンドを記憶するバッファ記憶手段と、 前記レジスタ識別データによって認識されたインデックス・レジスタの内容を前 記メモリ一手段からフェッチするフェッチ手段とを含むプリフェッチ手段を持つ データ処理システムを提供する。
後に詳細に説明する特定な実施例の概要によると、それはメモリーと共に使用す るプリフェッチ回路であって、前記メモリーからコマンドを受信する記憶レジス タと、コマンド内で認識されるインデックス・レジスタをアドレスするためにコ マンドをデコードするデコード回路と、インデックス・レジスタの内容をフェッ チするフェッチ回路とを含むブリフェッチ回路を提供する。ブリフェッチ回路は 、又コマンドのパーチャル・アドレスを受信し記憶するバーチャル・アドレス記 憶レジスタと、コマンドのパーテヤル・アドレスに所定の変更を加えて新バーテ ヤル・アドレスを得る加算回路と、加算回路からの新パーチャル・アドレスがパ ーチャル頁境界を越えたかどうか確認する比較回路と、前記比較回路に応答して 実アドレス記憶手段の英アドレスを前記加算回路に転送してそこに片寄シを加え る転送回路とを含むようにして新案アドレスを得るようにしたブリフェッチ回路 を提供する。それによって、フェッチ回路は新アドレスのメモリーからグリフエ ッチされたコマンドをフェッチする。故に、この特定の実施例では、プロセッサ が使用するデータかコマンドのどちらかをフェッチし、コマンドがデータを受信 するために指定されるレジスタを有するノリフェッチ回路が設けられる。この実 施例は、又前回にフェッチされたメモリー位置の直上又は直下のどちらかの隣接 メモリー位置からフェッチするよう指令されるプリフェッチ・ユニットを設ける 。その上、この実施例では、ニア″リフエッチ・ユニットはブリフェッチすると き、コマンドをデコードしてそのコマンドで識別されたインデックス・レジスタ の内容をプリフェッチする。この実施例によるシステムは、又グリフエッチ動作 において頁境界を越えてそれを行うプリフェッチ・ユニットを含む。この発明の 他の一面によると、それはデータ処理システムのメモリーからプリフェッチする 方法であって、前記メモリーからプリフェッチされたコマンドを受信し、前記コ マンドをデコードして前記コマンドで識別されたインデックス・レジスタのアド レスを決定し、前記メモリーから前記インデックス・レジスタの内容をフェッチ する各工程を含むブリフェッチ方法を提供する。
図面の簡単な説明 次に、下記の添付図面を参照してその例にょシこの発明の一実施例を説明する。
第1図は、この発明による汎用データ処理システムのブロック図である。
第2図は、第1図の基本プロセッサ・サブシステム・モジュールの1つを示すブ ロック図である。
第3図は、第2図のNFAT補助チップのブロック図である。
第4図は、第3図のNFAT補助チップによってエミュレートされるような1ワ ード・コマンドの説明図である。
第5図は、第3図のNEAT補助チップによってエミュレートされるような2ワ ード・コマンドの説明図である。
第6図は、第4図及び第5図のRA又はRBフィールドの説明図である。
第7図は、インデックス・レジスタのパーチャル・アドレスの説明図である。
第8図は、インデックス・レジスタのリアル・アドレスの説明図である。
第9A図及び第9B図は、ラインa−aで接続され、第1図のシステムに使用す るブリフェッチ回路のブロック図を構成する。
第10図は、第9A図及び第9B図のノリフェッチ回路の7エツチ・受信動作中 における各種信号のタイミングを表わすタイミング図である。
第11図は、第9A図及び第9B図のブリフェッチ回路の一群の連続受信動作中 における各種信号のタイミングを表わすタイミング図である。
発明を実施するための最良の形態 第1図は、この発明を含む汎用データ処理システムのブロック図であシ、パーチ ャル・コマンド・プロセッサ・サブシステム10と、入力/出力(Ilo)サブ システム12と、メモリー・サブシステム14とを含む。サブシステム10%1 2.14は更にいくつかのモジュールに分割され、そのある七ジーールはデータ の完全性を計るため、及びデータ処理システムのコマンド・リトライ能力を提供 するために複製される。ここに開示したシステムの基本タイミングは1個の水晶 発振器(図に示していない)から引出されたX。出力及びX、出力を有する2相 クロツクの使用によって維持される。システム・バス・クロック(図に示してい ない)もSCLMモジュール16に含まれる。クロック信号の発生とその配信及 び利用は公知のものであるからこれ以上説明しない。
バーテヤル・コマンド・プロセッサ・サブシステム10は1対の基本プロセッサ ・サブシステム・モジュール(BPSM) 18 、20を含み、一方のBPS M18は一次モジュールであり、他方のBPSM 20は二次モジュールである 。各モジュール] 8.20は部品番号5T−2104−23としてコロラド州 コロラド・スプリングスのNCRマイクロエレクトロニクス・ディビジョンのV LSI Processor Productsから入手できるNCR/32G eneral Information Publicationに説明されて いるようなNCR32ビツト・チップ・セットからの超LSI回路(VLSI) テップを含む。
i 2 図ノBPSMモジュール18.20の各々は前述のNCR/32 Ge neral Information Publicationに十分説明され ているような中央プロセッサ・チップ(cpC)22及びアドレス翻訳チッf  (ATC) 24を含む。
CPC22はインストラクション記憶ユニット(ISU )バス26及びグロセ ノサーメモリ(P M ) ハス2 Bに接続される。CPC22はSCLM1 6からのクロック信号X。に応答してISUメモリー30に向けられるインスト ラクション・アドレスをISUパス26に出カシ、SCLM 16からのクロッ ク信号X1に応答してISUメモリー30からのインストラクションを受信する 。メモリー動作のためのアドレスもPMババス8のアドレス部に出力され、デー タは主メモリー32の与えられたアドレスからフェッチされるか書込まれる。第 1図のシステムでは、メモリー・サブシステム14は第2図の主メモリー32を 含むということがわかる。
BPSMPモジュール18及び20はフローティング・ポイント算出用の特別・ ・−ドウエアを提供する第2図の拡大算術チッ:7p(EAC)34と、サブセ ットの?”EATコマンドを実行する内蔵型ファームウェア・オンチップ・プロ セッサを提供するNEAT補助チノf (NAC)36のような専門ノ・−ドウ エア・エンノ・ンスメント・チップを含む。第2図のNAC36は第3図にブロ ック図を示すNCR9000シリーズNEAT補助チツプである。
NAC36なしに、CPC22はATC24及びEAC34に対して動作を従属 させる主要素である。例えば、NEATコマンドをエミュレートするとき、 C PC221dISUメモリー30のルーチンをアクセスすることによってNEA Tコマンドを翻訳し、実行する。NAC36がある場合は、NACはマスクとな る。実行されるべきNEATパーテヤル・コマンドが第2図の主メモリー32か らNAC36によってフェッチされ、コマンド・セットアツプが実行され、 N AC36が特定のコマンドの実行を支持しない場合にのみ、CPC22に送られ る制御である。NAC36が存在する場合、CPC22のみがNAC36によっ て要求されるATC24又はEAC34の使用を必要とする。NAC36がパー チャルNEATコマンドを実行している間、CPCはNAC36によって実行さ れる動作と同時にI10インタラシト又は時間日付インタラシトを動作すること ができる。
第3図において、NAC36はオフチップ制御記憶を使用しない。NAC36に よって支持されるパーチャルNEATコマンドを実行するに必要なすべての記憶 手段は制御ROM及びシーケンサ(ROM ) 70に含まれる。
NAC36のマイクロインストラクションは翻訳及び実行段を有する2段・ゼイ プライン内で実行される。翻訳段において、それらのスタートは第2図の導体3 7のNVC3U/信号によって示され、バーチャルNEATコマンドをエミュレ ートするべくマイクロインストラクションを開始するROMアドレスが決定され 、バーチャル・インストラクションによってきめられたバイトの数はタリイ・レ ノスタフ2に記憶される。第2図Ω主メモリー32の最初の15インデツクス・ レジスタのコピー id インデックス・レジスタ・ユニット(IRU ) 7 4に維持される。これはPMパス28(第2図)によって監視され、 IRU  74に記憶されるべき主メモリー32の最初の15バーチヤル・アドレスに対し 、PMババス8を介し、適当なインストラクションによってフェッチされ、変更 される最初の15インデツクス・レジスタの内容を記憶するインデックス・レジ スタ・マツチ・ロジック76によって行われる。従って、NAC36の翻訳及び 実行段の間、主メモリー32から最初の15レジスタのどれをもフェッチする必 要なく、NAC36のIRU 74に直接アクセスを行うことができる。
実行段において、エミュレートされるNEATコマンドの開始インストラクショ ンのためにROM 70がアドレスされ、IRU 74の適当なインデックス・ レジスタ、NAC36の他のすべてのレジスタ又はPMババス8に接続されてい るシステムの他の装置がアクセスされてマイクロインストラクションを実行する 。そこでタリイ72のカウントはバーチャル・コマンドによって影響される各バ イトが処理されたときに減算される。実行中、インデックス・レジスタの内容を 変更することができる。そのような変更のどれもPMババス8を介してNAC3 6により、主メモリー32のインデックス・レジスタに対してなされる。第3図 のインデックス・マツチ・ロジック76は最初の15バーチヤル・インデックス ・レジスタに対するいかなる書込みをも見ることができ、IRU 74のインデ ックス・レジスタが常に電流を維持するよう、IRU74の変更インデックス・ レジスタのNACコピーを変更する。故に、 NEATコマンドのエミュレーシ ヨン中、NAC36によって第2図の主メモリー32の最初の15インデツクス ・レジスタのどの変更もNAC36のISU 74の変更したインデックス・レ ジスタのコピーをも変更するであろう。NAC36のマイクロインストラクショ ンの約98壬がそれらレジスタのみを利用するということが確認されたが故に、 最初の15インデツクス・レジスタのみをIRU74に保持する。
NAC36ば、更にフェッチするべき次のバーチャル・コマンドのアドレスを記 憶しているパーテヤル・インストラクション・アドレス・レジスタ(VIAR)  180と、NAC36によって最後にフェッチされたバーテヤル・コマンドを 記憶しているバーチャル・インストラクション・レジスタ(VIR) 181と を持つ。NAC36は、又すべてPMパス28に直接接続されている実際には4 つの32ピツ) ERU L/−)スタであるステート・スタック182を含む 。ステート・スタック182に対するアクセスは公知の方法でERUデコード回 路183によって制御される。
ステート・スタック182の最初のステート・スタック・レジスタ(SSR1)  (図に示していない)は。
NA、C36が制御をCPC22に移す理由によって、2つの異なる情報ワード の1つを含む。ノンサポートラド・コマンドの故に制御が移された場合、ステー ト・スタック182のSSR1はビット25〜32に従いcpc22によって実 行されるべきバーチャル・オペコード(0p−Cod@ )と、ビット17〜2 4によりオペランドの長さを指定するバーチャル・タリイ・フィールドと、バー チャル・コマンドの実行中エミュレートされているコマンドによって要求されN AC36によってセット及びリセットされるビット1〜8のパーチャル・インジ ケータとを含む制御転送ワードを有する。処理できない状態のためにNAC36 が制御を移す場合、ステート・スタック182のSSR1は例外条件ワードを含 む。
ステート・スタック182の第2のレジスタ(SSR2)(図に示していない) はNEATコマンPのエミュレーションにおけるNAC36の動作を行うための 各穏コード及びフラッグを含む。それらはセントアップ中にNAC36によって 変更され、NACが27−ドNEATコマンドのうちの最初のワード・セットア ツプ中であるか、又は第2ワードのセットアツプ中であるかによって異なるビッ ト26のINBフラグを含む。ステート・スタック182の第3のレジスタ(S SR3) (図に示していない)は、種々の内部インジケータ、トラップ・リン ク・レジスタ及びリトライ・リンク・レジスタを含む。ステート・スタック18 2の第4のレジスタ(SSR4) (図に示していない)は、セットアツプ時間 中にSSR1に負荷されたバーテヤル・インジケータのコピー(オールド・コピ ー)を含む。
BPSMPモジュール18及びBPSMSモノニール20のプロセッサ(CPC 22又はNAC36)は同期して平行にコマンドを実行し、主メモリーからデー タをフェッチし、NACのISUメモリー30又は制御ROM 70のどちらか からのインストラフシー1ノに従ってデータをエミーレートレ、エミーレートし たデータを主メモリーに再び書込むようにする。プロセッサの動作は以下に述べ るように常に比較され、不一致があると、プロセッサは比較が一致するまで最後 のバーテヤル・コマンドを再び実行し、又はハードエラーが発生したことを決定 するよう指令される。
第1図には1対の書込みしうる制御記憶モジュール(WC8M) 34 、36 が設けられる。各WC8Mは、ノぐワーアップ、ブーツ及び日付開始の各プログ ラムを記憶している8にバイトの読出専用メモリー(ROM )と。
夫々ISUメモリー(第2図の30)のために使用される64にバイト(32に ワード)のランダム・アクセス・メモリー(RAM )とを含む。データの形式 でインストラクションを供給するROMのプログラミングはシステムの主メモリ ーからフェッチされ、WC8Mロード・プログラムでRAM装置に記憶される。
32にワートノISUインストラクションはWC3M 1モジユール34に記憶 され、32にワードはWCSM2モジュール36に記憶される。BPSMPモジ ュール18はISUパス38及び実行バス40によってWC8Mモジュール34 +36KJi絖される。BPS?、ISモジュール20はISUチェック(l5 UCHK )バス42 、44によってWC3Mモジュール34.36に接続さ れ、I 5UCHKバス42の延長部48によって、後に説明するデータ完全性 モノニール(D■NM) 46に接続される。
第2図で説明したものと同一のPMパス50はBPSMPモジュール18とメモ リー・サブシステム14との間に接続され、−次プロセッサ・データ(PBDA T)用のデータ部52と一次プロセッサ・アドレス(PAD)用のアドレス部5 4とを含む。第2の2Mパス56はBPSMSモジュール20とDINMモノニ ール46との間に接続され、二次プロセッサ・データ(5BDAT )用のデー タ部58と、二次アドレス(SAD )用のアドレス部60とを含む。DINM モジュール46は、又PBDATハス52及びPADパス54にも接続される。
以下で説明するように、WC3Mモジュール34 、36へのl5tJアドレス と、WC3Mモジュール34.36からのISUインストラクションとはWC3 Mモジュール34゜36とDINMモジュール46との間に接続されているラッ チドISU (LISU)バス62にランチぐれる。DINMモジュール46の 中に!i、BPSMモジュール18.20両方のCPC22か又はNAC36の どちらかによるデータの操作の後に行う計算結果の比較がある。モジュール18 と20からの両結果が同一でない場合、パーチャル・コマンドを実行しているプ ロセッサ(CPC22かNAC36のどちらか)はエラーが発生した最後のバー チャル・コマンドに戻ってリトライする。リトライ動作中、元来最初の実行トラ イでフェッチされたデータは実行しているプロセッサに再び供給される。パーテ ヤル・コ々ンド・リンク・モジュール(VCRM) 64(フェッチ・ログとい う)はメモリー・サブシステム14からすべてのフェッチされたデータ及び該当 するエラー修正コード(FCC’)チェック・ビットを記憶するよう設けられる 。これを達成するため、VCRM64はPBDATバス52に接続され、フェッ チされた2にのデータ・エントリを記憶するに十分なRAMを有する。
第3図において説明したように、NAC36は最初の15インデツクス・レジス タの自己のコピーを保持し、それら最初の15インデツクス・レジスタのいずれ に対スルバーチャル・コマンドのエミュレーション中ニなされるべきいかなるフ ェッチでも、NAC36の内部バス71(第3図)を介し、IRU74のレジス タのNACのコピーに対して行われるであろう。故に、NACバーチャル・コマ ンド−エミュレーション中ニおケル最初の15インデツクス・レジスタからのい か々るフェッチもフェッチ・ログには現われないということを知るべきである。
インデックス・レジスタはインストラクションの実行中に変更されるかもしれな いので。
NA、C36のIRU 74のインデックス・レジスタの内容は、コマンドが最 初トライされたときと同一ではない。
従って、VCRM 64は、又第2図の主メモリー32の最初の15インデツク ス・レジスタの元コピーを含むインデックス・レジスタ・ログ(IRログ)’x 有fる。
それらは現バーチャル・コマンドのためのNAC36の翻訳段に現われたインデ ックス・レジスタと、インストラクション実行中に変更されるかもしれない最初 の15インデツクス・レジスタの第2の又は変更されたコピーとして含まれる。
バーテヤル・コマンドの実行に成功すると、IRログの変更されたコピーはその 後のパーチャル・コマンドの元コピーとなシ、元コピーはその後のコマンドの実 行中変更の記録に使用される。
バーチャル・コマンドの実行に成功しなかった場合、ファームウェアが第3図の IRマツチ・ロジック76によってIRU 74に同時に記憶される主メモリー 32へのIRログの元コピーの内容を回復する。NAC36はその翻訳段に戻シ 、バーチャル・コマンドの実行をリトライする。今説明したIRログは、最初の 15インデツクス・レジスタからフェッチされたデータがこの場合、データ・フ ェッチ・ログに現われるだろうかうCPCパーテヤル・コマンドの実行の場合に は必要がない。
VCRM 64はパス延長部74によってLISUバス62、 にも接続される 。VCRM 64は1診断のためにファームウェアが使用するかもしれないトレ ース・ログのBPSMP 18によって供給されるISUアドレスを記憶するR AMを含む。トレース・ログRAMはトレース可能中2KまでのISUアドレス ・エントリを記憶する。希望によシ、CPC/fイブラインをバックアップする ために。
トレース・ログを使用することもできる。
前述のNCR/32 General Information Public ationに説明しであるように、第2図のCPC22は他のものに対する又ぽ 他のもの間の外部レジスタ(ERU )を使用し、プロセッサ・モジュールの3 2ビツト・チップ・セット装置間の通信及びCPC22によりてセットされ監視 されるべき使用者指定制御信号のために設けられる。32ビツト・チップ・セッ ト、ATC24、EAC34及びNAC36の他の装置及び各種システムのモジ ュールは類似のERU能力を有する。
システム依存作用モジュール(SDFM) 78は第1図のデータ処理システム の動作及び制御のために使用者によって選ばれたERUの個りのビットを受入れ 、変更シ及ヒディスプレイするERUレジスタ(図に示していない)を含む。
第1図のI10サブシステム12は一次I10データ(PIODAT )部82 と一次アドレス(PIOADR)部84とを有する一次I10バス80を含む。
1対の基本I10モジュール(BIOM) 86 、88は一次モジュール(B IOMP )と二次モジュール(BIOMS )である。各BIOMモジュール 86.88は第4図のATC24と同一のATCチッチッ、1983年6月7日 にKocolほかに発行された米国特許第4,387,441号に説明しである 2つのNCR/32−500システム・インタフェース・コントローラ(SIC )チップとを含む。B105Mモジュール88はI10データ(5IODAT  )部91及びI10アドレス(5IOADR)バス92を有する第2工んパス9 0を持つ。DINMモジュール94(プロセッサ・サブシステム10のDINM モジュール46と類似する)は−次I10パス80と二次I10パス90との間 に接続され、I10サブクステム12のデータ完全性チェックを行う。各種I1 0%性七ジ、 −# (IOPM) 93をBIOMP 86に接続することが できるように選ばれたシステム対システム及び各種帯域幅の周辺装置インタフェ ース・チャンネルを設け、各種プロトコルを使用する。
主メモリー・サブシステム14は複数のメモリー・アレイ100と、プーアル・ ポート・メモリー制御(DMCM) 102とを含む。各メモリー・アレイ10 0は、データ部(CPMDAT) 104及びアドレス部(CPMADR)10 6を有する中央プロセッサ路と、データ部(IOMDAT)108及びアドレス 部(IOMADR) 110を有するI10路とを持つ。故に、DMCM 10 2はBPSMモソー−ル18又は20の1つが1つのメモリー・アレイ100を アクセスすることを可能にし、BIOMモジュール86.88が他のメモリー・ プレイ100をアクセスすることができるようにする。DMCM 102は、又 後で述べるプレフェッチ回路を含む。
DMCMMC−−ル102のプレフェッチ回路を説明する前に、第2図のNAC テップ36によりてエミュレートサレルパーチャルNEATコマンドの説明をす ることが有益である。NEAT言語はオハイオ州ディトンのNCRCorpor ationが開発したコンビーータ言語であシ、NCRCorporation 発行の参考マニュアルに十分記載しである。例えば、バーテヤル・オペレーショ ンのためのインストラクションはNCRCorporationから入手できる 参考マニュアルNEATVS (第5T−94s]−47号)に説明しである。
バーチャル・オペレーションに基づ(NEAT言語のためのプログラミング概念 はNCRCorporation発行のNEATVS VRX −3(ストック 番号第5T−9481−46号)に十分記載しである。前述のNEATVSに説 明しであるように、 NEATオブジェクト・コマンドは1ワード・コマンドで も2ワード・コマンドでもよい。1ワード・コマンドは第4図に示すように、4 バイトの合計32ビツトで構成され、その1バイトはQフィールドであシ、1バ イトのRAフィールド、1バイトのA2フィールド及び1・ぐイトのA1フィー ルドを有する。A2及びA1フィールドは使用する際にA2A1フィールドとし て結合される。Qフィールドは実行するべき災際のバーチャル機械オブジェクト ・インストラクションを認識するオブジェクト・インストラクション・コードを 含む。RAフィールドはインデックス・レジスタの識別を含めることができ、A 2A1フィールドと共に使用するときに、A2A1フィールドによって表わされ る片寄りに対し、RAフィールドで指定したインデックス・レジスタの内容を加 えることによって、Aオ被ランドの実効アドレスを計算する。2ワードNEAT コマンドは第5図に示すように、4バイトから取る最初のワードは第4図の4パ イトに非常によく似ておシ、それらはQフィールド、RAフィールド、A2フィ ールド及びA1フィールドヲ含む。2ワード・コマンドのワード2はTフィール ド、RBフィールド、B2フィールド及びB1フィールドを含む。B2及びB1 フィールドは使用する際に1つのB2B1フィールドどして結合して使用する。
Tフィールドは通常人及びBオペランドの長さを指定するバイナリ値である。R BフィールドはB2B1フィールドの片寄シとRBフィールドで指定したインデ ックス・レジスタの内容とを加えることによって計算される。第5図のワード1 のQフィールドの8ビツトはそのコマンドが1ワード・コマンドか(ビット8が ]”である)、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は 、それが適用される場合、インデックス・レジスタ・フィールドRA、RBの内 容をメモリーからフェッチし、A及びBオRランドのアドレスを計算してAオペ ランド及びBオペランドのためのデータをフェッチし、コマンドをエミュレート する。
第6図は第4図及び第5図のRA又はRBフィールドの例示である。第4図及び 第5図に示すように、RAフィールドはコマンドの第1ワードのビット17〜2 4にあシ、RBフィールドは第5図の2ワード・コマンドの第2ワードのビット 17〜24にある。各RA、RBフィールドはビット3〜8にインデックス・レ ジスタ番号と、ビット1及び2にメモリー・アクセス・モード・コード(MAM  )とを含む。この発明については、メモリー・アクセス・モード・コードは無 視することができる。インデックス・レジスタが4バイトである場合(図に示し ていない)、RA又はRBフィールドの最初の2ビツトを01にセットして、ビ ット3〜8のインデックス・レジスタ番号をそのインデックス・レジスタのアド レスとすることができる。
例えば、インデックス・レジスタoヲノs−チャル・メモリーのバイトOから開 始し、インデックス・レジス ・り1をバイト8から開始する等にする。
第7図は、メモリーからインデックス・レジスタの内容をフェッチするに使用す るバーチャル・アドレスを例示する。バーチャル・アドレシングは周知であシ。
上記の刊行物5T−948−46及びNCR/ 32 GeneralInfo rmation Publicationにも十分記載してあシ、それらは置換 及びバーチャル頁番号(VPN )をも含む。
ここに示した例は2にバーチャル頁サイズのものを示す。パーチャル頁番号はバ ーチャル・アドレスのビット12とビット24との間に延び、置換はビット1と 11との間に延びる。インデックス・レジスタの置換はビット1及び2のII  OA+から底シ、ビット3〜8のインデックス・レジスタ番号から成る。故知、 番号がビット3〜8にあるインデックス・レジスタの内容をフェッチするために 、そのインデックス・レジスタ番号はビット1及び2の2つの0#を持ち、パー チャル頁番号と連結して第2図のPMパス28に出力される24ビツト・パーチ ャル・アドレスを作成する。上記のNCR/ 32 General Info rmation Publicationの第5章に十分記載しであるように、 第2図のアドレス翻訳チップ(ATC) 24は第7図のパーチャル頁番号(V PN )を取り、それを置換と共に連結する頁フレーム番号(PFNO)に変換 して笑アドレス(第8図)を形成する。そこで、ATCチンプ24は、例えば、 インデックス・レジスタの内容をフェッチするために主メモリー32に使用させ るため、その笑アドレスをPMババス8に出力する。
置換は、Aオ被ランドの場合、RAフィールドにあるインデックス・レジスタの 内容にA2A1フィールドの値を加えることによって形成される番号を作成する ということを知るべきである。Bオペランドが使用される場合、B2B1フィー ルドの値はR’Bフィールドに示されているインデックス・レジスタの内容に加 えられる。サイズが4にバーチャル頁の場合、バーチャル頁番号はビット13〜 24から延長し、第8図に示すように、実アドレスの頁フレーム番号はビット1 3〜24から延長する。
第9A図及び第9B図において説明するように、DMCMモジュール102のブ リフェッチ・ユニット200は4バツフア・レジスタ、3バーチヤル・アドレス ・レジスタ及び4実アドレス・レジスタを含む。第2図のNAC36がNEAT コマンドか主メモリー32からのデータをフェッチしたい場合、NAC36はP Mババス8にバーチャル・アドレスを出力し、ATCチッチッ4はPMババス8 からバーチャル・アドレスを取シ、それを実アドレスに翻訳してPMパス28に 戻す。実アドレスのデータ又はインストラクションは主メモリー32からフェッ チされ、NAC36に戻る。PMババス接続されたノリフェッチ回路200はN AC36からのフェッチを検出し、PMパスからバーチャル・アドレス・レジス タにバーチャル・アドレスヲ負荷し、対応スル笑アドレスを対応する実アドレス ・レジスタ番号荷する。そこで、ノリフェッチ回路200は指令されたようにバ ーチャル・アドレスを4だけ増加又は減少し、頁境界を越えない場合には、実ア ドレスを増加又は減少する。その実アドレスのインストラクション又はデータは プリフェッチ回路200でフェッチされ、後の動作でNAC36が使用するよう 対応するデータ・レジスタに出力する。
従って、 NAC36によって最初のフェッチが行われた後、ブリフェッチ回路 200はNAC36が使用するインストラクション又はデータがそこでプリフェ ッチする必要なくすでに用意されているというように、次のインストラクション 又はデータをシリフェッチする。
バーテヤル・アドレスを増加又は減少したため、バーチャル頁境界を越えたよう な場合には、増加又は減少シタパーチャル・アドレスがPMパスに出力され、A TCテップ24はバーチャル・アドレスを翻訳してその実アドレスをブリフェッ チ回路200に戻す。ブリフェッチ回路200は翻訳されたアドレスのインスト ラクション又はデータをプリフェッチしてそれを適当なレジスタに記憶する。
ブリフェッチ回路がコマンドをプリフェッチすると、それはバッファ・レジスタ 記憶ユニット(第9A図のRAM 204 )のアドレスOにおけるコマンド・ バッファに記憶される。RAM 204のアドレス1及び2におケルバッファ・ レジスタはデータのために予約され。
そのアドレス3におけるバッファ・レジスタはインデックス・レジスタの内容を 記憶するために予約されている。第4図及び第5図で説明したように、NEA、 TコマンドはA及びBオペランドのアドレスの決定に使用されるインデックス・ レジスタの番号ヲ含む。コマンドがフェッチ又はシリフェッチされたとき、NE ATコマンドに含まれているインデックス・レジスタ番号はシリフェッチ回路に よって主メモリー32からフェッチされ、NAC36が必要なときに使用するた め、 RAM204の7ドレス3のバッファ・1/ジスタに記憶される。
ラインa−aに沿って共に接続された第9A図及び第9B図は、第1図のDMC MMC−−ル102にあるブリフェッチ回路200のブロック図を形成する。ブ リフェッチ回路200はPBDATデータ・バス52及び第1図のPMババス0 のPADアドレス・バス54に接続される。トランシーバ202 (Fairc hildの74F245でよい)はPBDATデータ・バス52に接続すれてデ ータ・バス52からのデータを受信し、データ・バス52のブリフェッチ回路2 00からのデータを要求する。4×32ビットRAM 204 (Texas  Instrumentsの74. L S 670でよい)はPBDATデータ ・バス52に接続されているデータ入力端子Aを有する。RAM 204はバイ ナリ数O〜3から放る1対のデータ信号(BN、O。
BNI)によって、そのアドレス端子Aがアドレスされる6 RAM 204  ’T’データ出力端子(Do)はバッファ206 (Fairchild 74 F533でよい)に接続され、その出力はマルチプレクサ208の入力に接続さ れる。
マルチプレクサ208 (Fairchild 34F258でよい)の出力は トランシーバ202を通してPBDATデータ・バス52に接続される。
バッファ21 Q (’pexas Instrumentaの743174で よい)はpBDATデータ・バス52を介して第2図のメモリー32からフェッ チされたNEATコマンドのビット19〜24を記憶する。第6図において説明 したように、ビットJ9〜24はNEATコマンドのRAフィールドかRBフィ ールドのどちらかのインデックス・レジスタ番号(IRN )を含む。第3図に おいて説明したように、 NAC36は最初の15インデツクス・レジスタの内 容を記憶する内部レジスタを含む。故に、PBDATバス52のインデックス・ レジスタ番号カ最初の15レジスタの1つであると、それらレジスタの内容はN A、C36によってその内部レジスタから取られる。
公知のように、NEAT言語はプログラムすることにより最初の62インデツク ス・レジスタの使用を可能にする。故に、デコード・ロジック212を設けて、 インデックス・レジスタ番号が16に等しいか]6よシ大きく、62に等しいか 62よシ小さい数かどうか確認するためにインデックス・レジスタ番号をデコー ドする。バッファ210のインデックス・レジスタ番号が16に等しいかそれよ り大であシ、62に等しいかそれよジ小である場合、そのインデックス・レジス タ番号をバッファ210の出力に接続されているバッファ 214 (Fatr childの74F240)に記憶する。バッファ 216 (Fairchi ld 74F244 )はマルチプレクサ208の他方の入力に接続され、後述 するように。
指令により PBDATデータ・バス52にインデックス・レジスタ番号バッフ ァ210の内容を出力する。
PADアドレス・バス5474マルチプレクサ21.8(Fairchilcl  74 F 257でよい)の一方の入力に接続され、その出力はMTJXバス 220に接続される。MUXパス220のビット1〜24は3バーチヤル・アド レス・レジスタ(VAR,0−VAR2) 221 、222.223(夫々F airchild 74 F 374でよい)のスタックに接続される。MUX バス2200ビット3〜24は3つの実アドレス・レジスタ(RARO−4AR 2) 224,225゜226 (Fairchfld 74F374でよい) のスタックに接続される。MUXパス220のビット12〜24は実アドレス・ レジスタ(RAR3) 227 (Fairchild74F374でよい)に 接続される。VAROレジスタ221 ハNEATコマンドのバーチャル・アド レスを記憶するために予約され、RAROレジスタ224はそれに対応する実ア ト1/スを記憶するために予約される。
VARルジスタ222及びVAR2レジスタ223はデータのパーチャル・アド レスを記憶するために予約され、RARルジスタ225及びRAR,2レジスタ 226はそれに対応する笑アドレスを記憶するために予約される。第8図におい て説明したように、実アドレスのビット12〜2411′i、置換に使用したと きに、実アドレスを形成する頁フレーム番号を表わす。実アドレス・レジスタ( RARO) 224〜(RAR3) 227の出力は実アドレス(RA)バス2 30に接続される。インデックス・レジスタ番号に含まれているバッファ214 の出力はバス231を介してHAババス30にも接続される。ドライバ232  (Fairchild 74F244でよい)はRAパス230に接続されてい る入力を持ち、その出力はバス233を介してPADデータ・バス54に接続さ れる。従って、実アドレス・レジスタRARO〜3からの実アドレスはPADデ ータ・バス54に出力され、ドライバ232によってcpMADRバス106に 接続され、第1図のメモリー・サブシステム14のメモリー・アレイ100の1 つからフェッチする。バッファ214の内容はRAR3レジスタ227の内容と 連結されて、PBDA、Tデータ・バス52(第9A図)に接続されているCP MDATパス104を介してメモリーからフェッチされたNEATコマンドに受 信されたインデックス・レジスタのための実アドレスを形成する。
バーチャル・アドレス・レジスタVARO〜2 (221。
222.223)の出力はアダー236 (Fairchildル・アドレス( VA)バス234に接続される。アダー236の出力はマルチプレクサ218の 他方の入力に接続されているカウント・バス(CNT ) 23 sに接続され る。VAパス234の第12番ビットは比較器240の一方の入力に接続され、 CNTバス238の第12番ビットは比較器240の他方の入力に接続される。
アダー236によるVAパス2i4のバーチャル・アドレスの増加又は減少がパ ーチャル・アドレスの第12番ビットを変更させたときは、比較器240は頁境 界を越えたという表示を与える( RO3SPAGE信号を出力する。この例で は、サイズが2にパーチャル頁のために第12番ビットが選ばれる。4にバーチ ャル頁を使用すると、第13番ビットが使用される。ドライバ242 (Fai rchild 74F244でよい)はRAババス30を介してVAババス34 に実アドレスを送信する。バス244はVAパス234をマルチプレクサ208 の第2の入力とVAパス234を接続する。
ドライバ246 (Fairchild 74F244でよい)はPBDATデ ータ・バス52に接続された入力と、MUXパス220に接続された出力とを持 ち、PBDATデータ・バス52からのデータはMTJXパス220に直接接続 されてレジスタ221〜227のいずれかに出力される。
ORAバッファ248と、I RAバッファ249と、。
2RAバツフア250とはすべてFairchildの74F373でよく、M ′[JXバス220に接続されている入力e[fる。ORAバッフアバRARO ハソ7ア224と同時に負荷され、IRAバッファ249はRAR1バツフア2 25と同時に負荷され、2RAバツフアはRAR2バッファ226と同時に負荷 される。バッファ252(Fajrchild 74 F 373でよい)はP ADアドレス・バッファ54に接続されている入力と、比較器253゜254、 .255に接続されている出力とを持つ。ORAバッファ248の出力は比較器 253の他方の入力に接続され、IRAバッファ249の出力は比較器254の 他方の入力に接続され、2RAバツフア250の出力は比較器255の他方の入 力に接続される。夫々比較器253,254,255はFairchild 7 4 F 521装置でよい。それぞれ比較器253.254及び255の各出力 は信号MATCH(マツチ)0、マツチ1及びマツチ2を出力する。マツチ信号 マツチO,マツチ1及びマツチ2はバッファ・エントリのアドレス位置がメモリ ーで変更された場合、RAM 204のバッファ・エントリを無効にすることに 使用される。それはRA)1204のバッファ・エントリがその後プリフェッチ されて変更した場合、そのバッファ・・エン) IJをNAC・36に供給する のを防止する。
フェッチ・ロジック247はプリフェッチ回路200の動作を制御する。そのフ ェッチ制御ロジック回路247は次の信号を受信する。
MAE/ (メモリー・アドレス・エネーブル)この信号はX。期間中NAC3 6から発生し、2Mバスを介し実メモリ−・アドレスの伝送を可能にする。
PVT/(7’ロセツサ・バーチャル転送)この信号はX。期間中NAC36か ら発生し、パーテヤル・メモリー・アドレスの転送を可能この信号はNAC36 から送信され、フェッチが要求されているということを表示する。
BR/ (バッファ・リクエスト) この信号はNAC36によって送信され、NAC36がインストラクション又は データのどちらかを受信希望であることを示す。 −UD/C8/ (アップ− ダウン/継続−停止)この信号は、次の要求が現在のフェッチ位置の直上位(ア ラf)にあるか、直下位(ダウン)にあるか、又は継続受信するべきか受信停止 するべきかの表示に使用される。受信した信号によって異なることを表示する。
BF/信号を使用したときはUD/C8/@号は”アップ−ダウン″信号であり 、BR/信号を受信したときは、信号U D/CS /は継続−停止信号である 。
BNI 、 BNO(バッファ番号]、バッファ番号O)これら2つの信号が一 緒に使用されたときはバイナリ値O〜3を形成し、どのバッファ・レジスタがN ACからのフェッチ又は受信信号によってアドレスされているかを示す。
INT (インタラブド) この信号はインタラシト状態が発生したことを表わす。この信号を受信すると、 フェッチ制御ロジック247はPBDATデータ・バス52から新たなデータを 受信して各種アドレス・レジスタをリロードし、インタラブド信号が除去された ときにフェッチ動作をリスタートするよう条件付けられる。
NAC36が、例えば、主メモリーからNEATコマンド9をフェッチする用意 があるときには、フェッチを発生すべきことを表示して信号BF/を発生する。
BNl及びBNO信号はインストラクションをフェッチすることを表示する場合 はバイナリ″0#を形成する。又、UD/C3/信号がセットされると、フェッ チ回路200でフェッチされる次のインストラクションは高位アドレスを持つべ きか、低位アト°レスを持つべきかを表示する。フェッチ制御回路247はPV T/信号を検査し、バスヲ介してパーチャル・アドレスが転送されているかを確 認する。フェッチ制御ロジック247は次に信号MAE/を検査してPMパスに 実アドレスがあるかどうかを確認する。7エツチ制御ロジツク247はマルチプ レクサ218をセットしてPADアドレス・バス54のバーチャル・アドレスを VAROレジスタ221に送信する。次シζ、実アドレスはPADアドレス・バ ス54からマルチプレクサ218を介してRAROレジスタ224に送られる。
NAC36は主メモリーから要求されたコマンドをフェッチしてフェッチされた コマンドのエミュレーションを開始し、ブリフェッチ回路200は現在フェッチ されているコマンドの次に続くコマンドをプリフェッチするよう準備した。VA ROレジスタ22】のパーチャル・アドレスはvAパス234を介し、アップか 又はダウンにカウントするように信号U D/CS/のUD/部によって条件付 けられているカウンタ236に供給される。VAババス34からのビット1及び 2はバス235を介してカウンタを避け、CNTパス238に直接送信される。
値″′】#はVAパス234のバーテヤル・アドレスのビット3〜24に加えら れる。それは、実際はパーチャル・アドレスに4を加えることになる。VAパス 234のバーチャル・アドレスの第12番ビットはCNTパス238の第12番 ビットと比較され、パーチャル頁境界を越えていないかどうか確認する。頁境界 を越えていない場合、新たなバーチャル・アドレスがマルチプレクサ218f: 通してVAROレジスタ221に復帰する。RAROレジスタ224にある実ア ドレスはRAババス30に出力され、ドライバ242を介してRAババス30か らVAババス34に転送される。次に、アダー236は冥7)’しXK4’t[ Dえ、新たな笑アドレスをマルチプレクサ218を介してRAROレジスタ22 4に記憶する。そこで、新たな実アドレスをRAババス30に出力し、ドライバ 232を通し、バス233を介してCPMADRバス106(第9A図)に送ら れる。新たな実アドレスはフェッチ制御回路247からのメモリー要求信号と共 に主メモリーから次のコマンドを7エツチする。プリフェッチされた次のコマン ドがCPMDATバス104を介してトランシーバ202に戻されたときに、ト ランシーバ202はPBDATバス52にフェッチしたインストラクションを出 力し、RAM204のアドレス端子の信号BNO、BNIによって確認されたと きに、RAM 204のアドレス0に負荷される。
NAC36が次のNFATコマンドをメモリーから必要とするときは、フェッチ 制御回路247に対してBR/受信信号を送信する。BF/信号の代りにER/ 信号を受信すると、フェッチ制御回路247を指令して、BN O。
BNI信号によって指定されたRAM 204のアドレスの内容をNAC36に 戻す。UD/C3/は次にブリフェッチ回路200がプリンエッチ・コマンドに 継続するべきであるか、又は停止するべきであるかを表示することになる。これ はVARルジスタ222及びそれに対応するRARルジスタ225か又はVAR 2レジスタ223及びそれに対応するRAR2レジスタ226を使用して主メモ リーからデータをフェッチする場合と同一処理手順に従う。
頁境界を越えた場合、比較器240からの信号CROSSPAGEがアクティブ となる。CNTバス238の新タナパーチャル・アドレスがマルチプレクサ21 8を介L テa当なレジスタ(vARO〜2)221〜223に記憶され、VA パス234に出力される。次に、フェッチ制御ロジック247は適当なリクエス ト信号(REQ ) (第9B図)を発生することによって、第2図のPMババ ス8を要求する。要求がPMババス8に受入れられると、VAババス34のバー チャル・アドレスはバス244を通し、マルチプレクサ208を介してドライブ され、トランシーバ202を介してPBDATパス52に出力される。フェッチ 制御回路247は、又第2図のATC24を指令する信号PVTを発生してPM ババス8のバーチャル・アドレスを翻訳する。
ATCチッf24及びPMババス8のためのインストラクションは公知のもので あって、上記のNCR/32General Information Pub licat、ionに説明しである。
ATCチップ24がバーチャル・アドレスを翻訳した後、翻訳し′fc実アドレ スを信号MAE/と共にPADアドレス・バス54に出力する。ブリフェッチ回 路200がMAE/信号を受信したとき、実アドレスは適当な実アドレス・レジ スタRARO〜2(224〜226)に記憶され、その実アドレスのデータ又は コマンドはCPMDATバス104を介して主メモリーからフェッチされ、RA M 204の適尚なデータ・レジスタに記憶される。
RA、R3レジスタ227及びORA〜2RAバッファ248〜250ばMUX パス220からロードされ、それは実アドレスをATCチップ24がら受信した ときに行われる。
例えば、ロールパック動作の場合のようにインタラブドがあると、第9A図及び 第9B図のシリフェッチ回路は信号INTを受信する。信号INTはPBDAT バス52のデータを直接MUXパス220に出力することができるように、ドラ イバ246を条件付ける。インタラシトの後、第2図のCPC22は希望によシ パーテヤル・アドレス・レジスタVARO〜2 (221〜223)にアドレス を負荷することができる。アドレス・レジスタVARO〜2(221〜223) のバーチャル・アドレスは翻訳され、希望により、コマンド、データ又はインデ ックス・レジスタの内容はシリフェッチされる。
ERUレジスタ(図に示していない)は指令により。
アドレス・レジスタ221〜227の内容をハス244に出力し、マルチプレク サ208を介してトランシーバ202全通し、PBDATバス52に出力させる ことができる。バッファ216にも記憶されているIRNバッファ210の内容 はマルチプレクサ208を通して多重化され、トランシーバ202を介してFB DATバス52に出力することができる。この方法によシ、アドレス・バッファ 221〜227の内容及ヒハッファ216の内容は検査され、希望するようにデ ィスプレイすることができる。
第10図は第9A図及び第9B図のブリフェッチ回路200のフェッチ−受信動 作中におけるX。、X、。
BF/、UD/CS/、BNO/、BN1/、BR/及びMAE/信号のための タイミング図である。符号300において、BF/信号が”ロー”となり、フェ ッチの発生すべきことを示す。302では、UD/C3/信号が60−”となり 、方向が高位であることを示す。304におりて、BNO、BNIの値はバッフ ァ1が選ばれたことを示す1″である。次に、フェッチ手順は第2図のNAC3 6によって第]ワードを受信するよう動作する。
これは数サイクルの処理である。NAC36によるフェッチの後、第9A図、第 9B図のブリフェッチ回路200がPMババス取得すると、メモリーの次の高位 ワードをフェッチして、それをRAM 204のバッファ1に記憶する。306 において、信号BR/が”ロー“になシ、NAC36が受信希望であることを示 す。ブリフェッチ回路200がノリフェッチを継続すべきであることを示して、 UD/C3/が308でダウンするが、310におけるBNO、BNIアドレス はまだ′″1″である。312の次のX。においで、NAC36はRAM204 のバッファ1から第2ワードを受信し、シリフェッチ回路200は次に高位のワ ードをプリフェッチする。
第11図は、一群の連続受信動作中におけるX。。
X、、BR/ 、UD/C3/ 、BN O/及びBNI/信号のタイミング図 である。314において、BR/信号はBNO及びBNIによって316に示す ように、バッファ1からワードAをNAC36が受信するべきであることを示し 、UD/C8/信号の318における”ロー”で示すように、ブリフェッチ回路 200が継続されるべきであることを示す。次のX。の320において、 NA C36はBR//ぞルス3】4によって要求されたワードAを受信する。
322において、ワードBのために新たな受信が開始される。それは324に示 すように、RAM 204のバッファ2から受信し、ノリフェッチ回路は326 においてバッファ2のデータ・シリフェッチを停止する。
第11図の実施例においては、322で要求されたワードBは、要求されたデー タがRAM 204のバッファ2に負荷されるのをノリフェッチ・ユニットが待 っているので、Xo238まで、NAC36に受信されない。
330において、332で指定されるように、第3のワードCの受信がバッファ 0から要求され、334に示すように、ブリフェッチ回路200はバッファOの ためにブリフェッチを継続するべきである。Xo336において、NAC36は 330で要求されたワードCを受信する。
第9B図のフェッチ制御ロジック回路247からのメモリー要求信号の発生及び タイミングは、メモリー。
リクエスト信号は公知で1、上記のNCR/32General Inform ation Publicationに記載しであるので、示していない。
ノリフェッチ回路は1つのデータ・バッファ、1つのパーチャル・アドレス・レ ジスタ及び1つの実アドレス・レジスタのみによってここに説明したノリフェッ チ作用を実行することができ、コマンド・フェッチとデータ・フェッチ又は受信 間の区別を、別のコマンド・バッファとデータ・バッファを使用する代シに、1 ビット信号によって指定することができるということを理解するべきである。
FIG、 3 FIG、4 トー−4ハ゛イ h −ラH トトーーーーーーワード+−+−ワード’2−一←H888786858483 82B+ トー イ〉テ’−17ス・レジ゛スフー酬ト←−一一一→−(−−MAM国際調 査報告 ANNEX To Th: INTERNATIONAL 5EARCHFC? ORτON

Claims (11)

    【特許請求の範囲】
  1. 1.処理手段(10)とメモリー手段(14)とを含むデータ処理システムであ って、前記メモリー手段(14)からプリフェッチされインデックス・レジスタ ・アイデンティフィケーション・データを含むコマンドを記憶するバッファ記憶 手段(14)と、前記インデックス・レジスタ・アイデンティフィケーション・ データによって認識されたインデックス・レジスタの内容を前記メモリー手段( 14)からフェッチするフェッチ手段とを含むデータ処理システム。
  2. 2.前記フェッチ手段は前記コマンドの実アドレスを受信し記憶する実アドレス 記憶手段(224〜227)と、前記コマンドに対して頁フレーム番号を決定す る手段とを含み、前記フェッチ手段は前記頁フレーム番号と前記インデックス・ レジスタ・アイデンティフィケーション・データとを連結して前記コマンドの実 アドレスを形成するようにした請求の範囲1項記載のシステム。
  3. 3.前記コマンドのバーチャル・アドレスを受信し記憶するバーチャル・アドレ ス記憶手段(221〜223)と、前記コマンドのバーチャル・アドレスに所定 の片寄りを加えて新バーチャル・アドレスを得る加算手段(236)と、前記加 算手段(236)からの前記バーチャル・アドレスがバーチャル頁境界を越えた かどうかを決定する比較手段(240)と、前記比較手段(236)に応答して 前記実アドレス記憶手段の前記実アドレスを前記加算手段(236)に転送して 前記片寄りを加え、新実アドレスを得るようにした転送手段(242)とを含み 、前記フェッチ手段は前記メモリー手段(14)からフェッチされるべきコマン ドを前記新実アドレスからフェッチするようにした請求の範囲2項記載のシステ ム。
  4. 4.前記比較手段(240)がバーチャル頁境界を越えたことを確認した場合、 前記新バーチャル・アドレスを翻訳された実アドレスに翻訳する翻訳手段(24 )を含み、前記フェッチ手段は前記メモリー手段(14)の翻訳された実アドレ スからプリフェッチされるべきコマンドをフェッチするようにした請求の範囲3 項記載のシステム。
  5. 5.前記加算手段(236)は前記片寄りを選択的に正又は負にするよう制御し うる請求の範囲3項記載のシステム。
  6. 6.前記バッファ記憶手段(204)はプリフェッチされたコマンドを記憶する ようにしたコマンド・バッファと、少くとも1つのプリフェッチされたデータを 記憶するようにしたデータ・バッファとを含み、前記バーチャル・アドレス記憶 手段は前記コマンド・バッファに記憶されているコマンドのバーチヤル・アドレ スを記憶するようにしたコマンド・バーチャル・アドレス・レジスタ(221) と、前記少くとも1つのデータ・バッファに記憶されているデータ・ワードのバ ーチャル・アドレスを記憶するようにした少くとも1つのデータ・バーチャル・ アドレス・しジスタ(222,223)とを含み、前記実アドレス・レジスタ手 段は前記コマンド・バッファに記憶されているコマンドの実アドレスを記憶する ようにしたコマンド実アドレス・レジスタ(224)と、前記少くとも1つのデ ータ・バッファに記憶されているデータ・ワードの実アドレスを記憶するように した少くとも1つのデータ実アドレス・レジスタ(225,226)とを含み、 前記加算手段(236)は前記処理手段(10)によって指定されたコマンド・ バーチャル・アドレス・レジスタ(221)と、データ・バーチャル・アドレス ・レジスタ(222,223)と、コマンド実アドレス・レジスタ(224)と 、データ実アドレス・レジスタ(225,226)とのアドレスに対し所定の片 寄りを加えるようにした請求の範囲3項記載のシステム。
  7. 7.前記バッファ記憶手段(204)はプリフェッチされたインデックス・レジ スタの内容を記憶するようにしたインデックス・レジスタ・バッファを含む請求 の範囲6項記載のシステム。
  8. 8.データ処理システムのメモリー(14)からプリフェッチする方法であって 、前記メモリー(14)からプリフェッチされたコマンドを受信し、前記コマン ドをデコードして前記コマンドで認識するインデックス・レジスタのアドレスを 決定し、前記メモリー(14)から前記インデックス・レジスタの内容をフェッ チする各工程を含むプリフェッチ方法。
  9. 9.前記コマンドの実アドレスを記憶し、前記コマンドの実アドレスをデコード して前記コマンドに対する頁フレーム番号を決定し、前記頁フレーム番号と前記 インデックス・レジスタ・アイデンティフィケーション・データとを連結して前 記インデックス・レジスタの実アドレスを形成する各工程を含む請求の範囲8項 記載の方法。
  10. 10.前記コマンドのバーチャル・アドレスを受信して記憶し、前記バーチャル ・アドレスに所定の片寄りを加え、新バーチャル・アドレスがバーチャル頁境界 を越えたかどうか確認し、前に記憶したアドレスに前記所定の片寄りを加えて前 記新実アドレスを取得し、前記新実アドレスからプリフェッチされるべきコマン ドをフェッチする各工程を含む請求の範囲9項記載の方法。
  11. 11.前記バーチャル頁境界を越えた場合、前記新バーチャル・アドレスを翻訳 された実アドレスに翻訳し、前記翻訳された実アドレスからプリフェッチされる べきコマンドをフェッチする各工程を含む請求の範囲10項記載の方法。
JP61504685A 1985-08-29 1986-08-21 データ処理システムのプリフェッチ回路 Expired - Lifetime JPH07117897B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US770459 1985-08-29
US06/770,459 US4722047A (en) 1985-08-29 1985-08-29 Prefetch circuit and associated method for operation with a virtual command emulator
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 true JPS63500688A (ja) 1988-03-10
JPH07117897B2 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
AU6701594A (en) * 1993-05-07 1994-12-12 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

Family Cites Families (12)

* 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
JPS6032220B2 (ja) * 1980-07-07 1985-07-26 日本電気株式会社 情報処理装置
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS63500688A (ja) データ処理システムのプリフェッチ回路
JP2521738B2 (ja) 障害回復デ―タ処理システム
US9740483B2 (en) Vector checksum instruction
US9727334B2 (en) Vector exception code
US10203956B2 (en) Vector floating point test data class immediate instruction
EP2948844B1 (en) Vector galois field multiply sum and accumulate instruction
US9740482B2 (en) Vector generate mask instruction
KR20170038133A (ko) 인접한 수집/분산 연산들의 통합
JPS5855528B2 (ja) アドレス発生装置
US20040230814A1 (en) Message digest instructions
WO2014114997A1 (en) Vector element rotate and insert under mask instruction
US20040230796A1 (en) Security message authentication control instruction
EP2718835A1 (en) Transmitting operator message commands to a coupling facility
JP2002215387A (ja) 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
WO2012168863A1 (en) Processing operator message commands
EP0343171A4 (en) Microprogrammable language emulation system