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
Links
- 238000012545 processing Methods 0.000 title claims description 19
- 239000000872 buffer Substances 0.000 claims description 65
- 238000000034 method Methods 0.000 claims description 14
- 238000013519 translation Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 4
- GADIKQPUNWAMEB-UHFFFAOYSA-N methyl 4-ethyl-6,7-dimethoxy-9H-pyrido[5,4-b]indole-3-carboxylate Chemical compound N1C2=CC(OC)=C(OC)C=C2C2=C1C=NC(C(=O)OC)=C2CC GADIKQPUNWAMEB-UHFFFAOYSA-N 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 101100132466 Arabidopsis thaliana NAC055 gene Proteins 0.000 description 2
- 101100132468 Arabidopsis thaliana NAC59 gene Proteins 0.000 description 2
- 101001100204 Homo sapiens Ras-related protein Rab-40A-like Proteins 0.000 description 2
- 101100420812 Homo sapiens SCN3A gene Proteins 0.000 description 2
- 240000002853 Nelumbo nucifera Species 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 2
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 2
- 101100132474 Oryza sativa subsp. japonica NAC067 gene Proteins 0.000 description 2
- 102100038416 Ras-related protein Rab-40A-like Human genes 0.000 description 2
- 102100023720 Sodium channel protein type 3 subunit alpha Human genes 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- WTEVQBCEXWBHNA-YFHOEESVSA-N neral Chemical compound CC(C)=CCC\C(C)=C/C=O WTEVQBCEXWBHNA-YFHOEESVSA-N 0.000 description 2
- 241000212977 Andira Species 0.000 description 1
- 101100013558 Arabidopsis thaliana FTSH2 gene Proteins 0.000 description 1
- 235000018185 Betula X alpestris Nutrition 0.000 description 1
- 235000018212 Betula X uliginosa Nutrition 0.000 description 1
- 101100459438 Caenorhabditis elegans nac-1 gene Proteins 0.000 description 1
- 101100459440 Caenorhabditis elegans nac-3 gene Proteins 0.000 description 1
- WTEVQBCEXWBHNA-UHFFFAOYSA-N Citral Natural products CC(C)=CCCC(C)=CC=O WTEVQBCEXWBHNA-UHFFFAOYSA-N 0.000 description 1
- 241000269799 Perca fluviatilis Species 0.000 description 1
- 101150054327 RAR1 gene Proteins 0.000 description 1
- 101100011885 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ERG12 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- WTEVQBCEXWBHNA-JXMROGBWSA-N citral A Natural products CC(C)=CCC\C(C)=C\C=O WTEVQBCEXWBHNA-JXMROGBWSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 235000011962 puddings Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 235000021419 vinegar Nutrition 0.000 description 1
- 239000000052 vinegar Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/655—Same 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.処理手段(10)とメモリー手段(14)とを含むデータ処理システムであ って、前記メモリー手段(14)からプリフェッチされインデックス・レジスタ ・アイデンティフィケーション・データを含むコマンドを記憶するバッファ記憶 手段(14)と、前記インデックス・レジスタ・アイデンティフィケーション・ データによって認識されたインデックス・レジスタの内容を前記メモリー手段( 14)からフェッチするフェッチ手段とを含むデータ処理システム。
- 2.前記フェッチ手段は前記コマンドの実アドレスを受信し記憶する実アドレス 記憶手段(224〜227)と、前記コマンドに対して頁フレーム番号を決定す る手段とを含み、前記フェッチ手段は前記頁フレーム番号と前記インデックス・ レジスタ・アイデンティフィケーション・データとを連結して前記コマンドの実 アドレスを形成するようにした請求の範囲1項記載のシステム。
- 3.前記コマンドのバーチャル・アドレスを受信し記憶するバーチャル・アドレ ス記憶手段(221〜223)と、前記コマンドのバーチャル・アドレスに所定 の片寄りを加えて新バーチャル・アドレスを得る加算手段(236)と、前記加 算手段(236)からの前記バーチャル・アドレスがバーチャル頁境界を越えた かどうかを決定する比較手段(240)と、前記比較手段(236)に応答して 前記実アドレス記憶手段の前記実アドレスを前記加算手段(236)に転送して 前記片寄りを加え、新実アドレスを得るようにした転送手段(242)とを含み 、前記フェッチ手段は前記メモリー手段(14)からフェッチされるべきコマン ドを前記新実アドレスからフェッチするようにした請求の範囲2項記載のシステ ム。
- 4.前記比較手段(240)がバーチャル頁境界を越えたことを確認した場合、 前記新バーチャル・アドレスを翻訳された実アドレスに翻訳する翻訳手段(24 )を含み、前記フェッチ手段は前記メモリー手段(14)の翻訳された実アドレ スからプリフェッチされるべきコマンドをフェッチするようにした請求の範囲3 項記載のシステム。
- 5.前記加算手段(236)は前記片寄りを選択的に正又は負にするよう制御し うる請求の範囲3項記載のシステム。
- 6.前記バッファ記憶手段(204)はプリフェッチされたコマンドを記憶する ようにしたコマンド・バッファと、少くとも1つのプリフェッチされたデータを 記憶するようにしたデータ・バッファとを含み、前記バーチャル・アドレス記憶 手段は前記コマンド・バッファに記憶されているコマンドのバーチヤル・アドレ スを記憶するようにしたコマンド・バーチャル・アドレス・レジスタ(221) と、前記少くとも1つのデータ・バッファに記憶されているデータ・ワードのバ ーチャル・アドレスを記憶するようにした少くとも1つのデータ・バーチャル・ アドレス・しジスタ(222,223)とを含み、前記実アドレス・レジスタ手 段は前記コマンド・バッファに記憶されているコマンドの実アドレスを記憶する ようにしたコマンド実アドレス・レジスタ(224)と、前記少くとも1つのデ ータ・バッファに記憶されているデータ・ワードの実アドレスを記憶するように した少くとも1つのデータ実アドレス・レジスタ(225,226)とを含み、 前記加算手段(236)は前記処理手段(10)によって指定されたコマンド・ バーチャル・アドレス・レジスタ(221)と、データ・バーチャル・アドレス ・レジスタ(222,223)と、コマンド実アドレス・レジスタ(224)と 、データ実アドレス・レジスタ(225,226)とのアドレスに対し所定の片 寄りを加えるようにした請求の範囲3項記載のシステム。
- 7.前記バッファ記憶手段(204)はプリフェッチされたインデックス・レジ スタの内容を記憶するようにしたインデックス・レジスタ・バッファを含む請求 の範囲6項記載のシステム。
- 8.データ処理システムのメモリー(14)からプリフェッチする方法であって 、前記メモリー(14)からプリフェッチされたコマンドを受信し、前記コマン ドをデコードして前記コマンドで認識するインデックス・レジスタのアドレスを 決定し、前記メモリー(14)から前記インデックス・レジスタの内容をフェッ チする各工程を含むプリフェッチ方法。
- 9.前記コマンドの実アドレスを記憶し、前記コマンドの実アドレスをデコード して前記コマンドに対する頁フレーム番号を決定し、前記頁フレーム番号と前記 インデックス・レジスタ・アイデンティフィケーション・データとを連結して前 記インデックス・レジスタの実アドレスを形成する各工程を含む請求の範囲8項 記載の方法。
- 10.前記コマンドのバーチャル・アドレスを受信して記憶し、前記バーチャル ・アドレスに所定の片寄りを加え、新バーチャル・アドレスがバーチャル頁境界 を越えたかどうか確認し、前に記憶したアドレスに前記所定の片寄りを加えて前 記新実アドレスを取得し、前記新実アドレスからプリフェッチされるべきコマン ドをフェッチする各工程を含む請求の範囲9項記載の方法。
- 11.前記バーチャル頁境界を越えた場合、前記新バーチャル・アドレスを翻訳 された実アドレスに翻訳し、前記翻訳された実アドレスからプリフェッチされる べきコマンドをフェッチする各工程を含む請求の範囲10項記載の方法。
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)
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)
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 |
-
1985
- 1985-08-29 US US06/770,459 patent/US4722047A/en not_active Expired - Fee Related
-
1986
- 1986-07-04 CA CA000513092A patent/CA1260618A/en not_active Expired
- 1986-08-21 DE DE8686905533T patent/DE3672605D1/de not_active Expired - Lifetime
- 1986-08-21 WO PCT/US1986/001712 patent/WO1987001482A1/en active IP Right Grant
- 1986-08-21 EP EP86905533A patent/EP0235255B1/en not_active Expired
- 1986-08-21 JP JP61504685A patent/JPH07117897B2/ja not_active Expired - Lifetime
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 |