JPS589455B2 - 多重長アドレス構成を有するマイクロプログラム化デ−タ処理システム - Google Patents
多重長アドレス構成を有するマイクロプログラム化デ−タ処理システムInfo
- Publication number
- JPS589455B2 JPS589455B2 JP54001737A JP173779A JPS589455B2 JP S589455 B2 JPS589455 B2 JP S589455B2 JP 54001737 A JP54001737 A JP 54001737A JP 173779 A JP173779 A JP 173779A JP S589455 B2 JPS589455 B2 JP S589455B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- word
- address
- block
- bit
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/342—Extension of operand address space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
ミニ・コンピュータ構成の当面する非常に大きな問題の
1つは大きなアドレス・スペースの問題である。
1つは大きなアドレス・スペースの問題である。
アドレス・フィールドは、速度の遅い腹雑なメモリー・
マツピング手法によらずにあるプロセスに対する全ての
データおよび手順が直接アドレス指定できるよう十分に
犬ぎいと同時に、ミニ・コンピュータの特質である構造
の簡潔さと最少限度のハードウエア・コストを維持しな
ければならない。
マツピング手法によらずにあるプロセスに対する全ての
データおよび手順が直接アドレス指定できるよう十分に
犬ぎいと同時に、ミニ・コンピュータの特質である構造
の簡潔さと最少限度のハードウエア・コストを維持しな
ければならない。
通常、ミニ・コンピュータは12乃至13ビットの如き
固定された比較的少い数の記憶ワード・サイズで構成さ
れ、このワード・サイズをその構成の全てにわたる共通
の制御要因として用いる。
固定された比較的少い数の記憶ワード・サイズで構成さ
れ、このワード・サイズをその構成の全てにわたる共通
の制御要因として用いる。
普通、オペランド、命令及びアドレスはすべてこの同一
サイズである。
サイズである。
屡々コスト及びアドレス操作の目的のため、アドレスと
オペランドに同じ作用レジスタを共用しさえする。
オペランドに同じ作用レジスタを共用しさえする。
このような構成を用いることは非常にコスト的に有効で
あるが、アドレスがオペランドより犬き〈ないことを前
提とすることのためメモリー・サイズに実質上の制限を
生じると云う重大な欠陥を有する。
あるが、アドレスがオペランドより犬き〈ないことを前
提とすることのためメモリー・サイズに実質上の制限を
生じると云う重大な欠陥を有する。
もし記憶ワード/レジスタ・サイズが16ビットであれ
ば、最も一般的なサイズ従ってアドレスは最大サイズが
65,536ワードに制約される。
ば、最も一般的なサイズ従ってアドレスは最大サイズが
65,536ワードに制約される。
このことは、機能的および経済的理由のため近年におけ
る厳しい制限であることが判った。
る厳しい制限であることが判った。
タスクおよび用途はその範囲が拡張する一方で別のメモ
リーを必要とし、オペレーテイング・システムと比較的
高レベルの言語はシステムの機能を改善しながらメモリ
ー・サイズに大きな衝撃を与える。
リーを必要とし、オペレーテイング・システムと比較的
高レベルの言語はシステムの機能を改善しながらメモリ
ー・サイズに大きな衝撃を与える。
メモリーのコストの低下も又大容量記憶装置に対するユ
ーザの要請に油をそそぐことになった。
ーザの要請に油をそそぐことになった。
メモリーコストは年間26乃至41%の割合で低下し、
ユーザは一定の対価支出を望む傾向があるため、アドレ
ス・スペースの量は2乃至3年毎に2倍となることを必
要とするようになった。
ユーザは一定の対価支出を望む傾向があるため、アドレ
ス・スペースの量は2乃至3年毎に2倍となることを必
要とするようになった。
メモリー・サイズに対するこの実質的な制限を受入れて
比較的大きなメモリー増大に対する需要として不足して
いることが知られたミニ・コンピュータ構成の多くの事
例が存在している。
比較的大きなメモリー増大に対する需要として不足して
いることが知られたミニ・コンピュータ構成の多くの事
例が存在している。
ソフトウエアとハードウェアの開発コストのために、新
らしいミニ・コンピュータ構成に対する検討は通常この
構成がコンピュータファミリー全体を支持するものであ
ることを必要とする。
らしいミニ・コンピュータ構成に対する検討は通常この
構成がコンピュータファミリー全体を支持するものであ
ることを必要とする。
このことは、この新らしい構造は大きなアドレス基底と
精巧なオペレーティングシステムとを有するシステムの
みでなく、速度と最少限のプログラム・サイズが必須と
される小型のOEM志向のシステムをも支持しなければ
ならないことを意味する。
精巧なオペレーティングシステムとを有するシステムの
みでなく、速度と最少限のプログラム・サイズが必須と
される小型のOEM志向のシステムをも支持しなければ
ならないことを意味する。
しかし、同様に大切なことは、ソフトウエアの機動性、
即ちプログラムを1つのファミリーの一端末における機
械から他の端末の機械に転用できる能力を損ってはなら
ないことである。
即ちプログラムを1つのファミリーの一端末における機
械から他の端末の機械に転用できる能力を損ってはなら
ないことである。
どんな構成もその目的とする処は、ワードサイズに制約
されないが回じファミリーの全構成要素において拡張可
能で整然として一貫性のあるアドレス指定を処理する方
法の開発にある。
されないが回じファミリーの全構成要素において拡張可
能で整然として一貫性のあるアドレス指定を処理する方
法の開発にある。
アドレスのサイズはプログラマーの関心事ではなく、又
ファミリーの一要素から他の要素に対するプログラムの
機動性を損ってはならない。
ファミリーの一要素から他の要素に対するプログラムの
機動性を損ってはならない。
もし、例えば、16ビットのワード・サイズが最も大き
なアドレス・サイズを表わすならば、メモリー・サイズ
は64Kワードに限定され、これは現用途には十分であ
っても将来の需要に対しては不十分であることは明らか
である。
なアドレス・サイズを表わすならば、メモリー・サイズ
は64Kワードに限定され、これは現用途には十分であ
っても将来の需要に対しては不十分であることは明らか
である。
1つのコンピュータ・ファミリーの使用寿命の間メモリ
ー要件を確実に満足できる方策を得るためには、最大メ
モリー・サイズは少くとも8百万乃至1千万ワードであ
り、これは1つのアドレス・サイズが少くとも23ビッ
トであることを示変する。
ー要件を確実に満足できる方策を得るためには、最大メ
モリー・サイズは少くとも8百万乃至1千万ワードであ
り、これは1つのアドレス・サイズが少くとも23ビッ
トであることを示変する。
しかし、16ビット以上のアドレスはこれを保持するの
に2ワードのメモリーを必要とし、ロードおよび記憶を
行うためには2動作を必要とする。
に2ワードのメモリーを必要とし、ロードおよび記憶を
行うためには2動作を必要とする。
オペレーティングシステムの下で実行を行う大型システ
ムのユーザはこのような負担を不満としないが、これは
記憶管理量が大巾に減り必然的に小さなアドレス・スペ
ースを伴う過度のアクテイビテイを減少させるためであ
る。
ムのユーザはこのような負担を不満としないが、これは
記憶管理量が大巾に減り必然的に小さなアドレス・スペ
ースを伴う過度のアクテイビテイを減少させるためであ
る。
小型のシステムのOEMユーザはこの時間/スペースの
不利を負うことを潔しとしないが、これはそのアドレス
・スペース要求が比較的少なく用途は主として更にコス
トおよび性能に敏感であるためである。
不利を負うことを潔しとしないが、これはそのアドレス
・スペース要求が比較的少なく用途は主として更にコス
トおよび性能に敏感であるためである。
アドレスの性質および用途を調べれば、特にこのアドレ
スが他のオペランドと異なる点において興味深い特徴が
あることが判る。
スが他のオペランドと異なる点において興味深い特徴が
あることが判る。
他の全てのオペランドは、プログラマー・ビジブルであ
り、明確に類別され、サイズ別に分類された構造を有す
るもので、これ等はビット・バイト、ワード、又は多重
ワード等である。
り、明確に類別され、サイズ別に分類された構造を有す
るもので、これ等はビット・バイト、ワード、又は多重
ワード等である。
プログラマーは項目のサイズを知り、その操作において
その特徴を取扱い使用する。
その特徴を取扱い使用する。
しかし、アドレスは主としてプログラム・アセンブラの
関心事であり、プログラマーにとっては2次的な関心事
に過ぎない。
関心事であり、プログラマーにとっては2次的な関心事
に過ぎない。
プロクラマーは主として構成のネーム、配列およびプロ
グラムの記憶場所の如きアドレスに関心を有する。
グラムの記憶場所の如きアドレスに関心を有する。
彼はネームを要求され次等割当て、次いでこれ等のネー
ムを必要に応じて便利なように又理解を助けるために使
用する。
ムを必要に応じて便利なように又理解を助けるために使
用する。
プログラマが最後に望むことは、アドレスの計算および
操作に介入することである。
操作に介入することである。
アドレス・サイズは重要ではなく、アドレスが「十分に
犬ぎい」限りプログラマは実際に気にしない。
犬ぎい」限りプログラマは実際に気にしない。
アドレスと他のオペランドの相異のこの考察は、アドレ
ス・サイズ依存度に関する概念、郎ちアドレスのサイズ
がアセンブラ・ソース・コードのレベルにおいては実質
的にプログラマにとってビジフルでなく目的コード・レ
ベルにおいて始めて明らかになる概念/構成を導くもの
である。
ス・サイズ依存度に関する概念、郎ちアドレスのサイズ
がアセンブラ・ソース・コードのレベルにおいては実質
的にプログラマにとってビジフルでなく目的コード・レ
ベルにおいて始めて明らかになる概念/構成を導くもの
である。
この概念の下では、同じソース・コードがアセンブルで
き、どんなファミリーの要素についても実行可能である
が、そのアドレスが16ビットより大きな要素に対する
目的コードの生成に用いられるプログラム・アセンブラ
は、前記ファミリーの小さな要素に対する目的コードの
生成に用いられるプログラム・アセンブラとは異なる。
き、どんなファミリーの要素についても実行可能である
が、そのアドレスが16ビットより大きな要素に対する
目的コードの生成に用いられるプログラム・アセンブラ
は、前記ファミリーの小さな要素に対する目的コードの
生成に用いられるプログラム・アセンブラとは異なる。
大きなシステムのプログラム・アセンブラは、コードに
おける各記憶アドレスに対して2ワードの記憶を、小さ
なシステム・アセンブラは唯1つのワードの記憶を生成
することになる。
おける各記憶アドレスに対して2ワードの記憶を、小さ
なシステム・アセンブラは唯1つのワードの記憶を生成
することになる。
各システムはそのハードウエアに適するアドレスを含む
目的コードを受取るが、プログラマーは両方の目的コー
ドが得られる単一ソース・コードのレベルにおける操作
二非サイズ態様でタッグおよびアイデンティティとして
アドレスを取扱うことになる。
目的コードを受取るが、プログラマーは両方の目的コー
ドが得られる単一ソース・コードのレベルにおける操作
二非サイズ態様でタッグおよびアイデンティティとして
アドレスを取扱うことになる。
従って、本発明の主な目的は多重長さのアドレス指定モ
ードを有するデータ処理システムの提供にある。
ードを有するデータ処理システムの提供にある。
本発明の前記および他の目的は、
データ処理システムによって実施されるべき操作を表示
するコードを含む命令ワードと、S個のアドレスビット
を含む短形態のアドレスかSより犬でありかつ1ワード
内のビット数を越えるL個のアドレスビットを含む長形
態のアドレスかのどちらかを表示し、前記命令ワードの
すぐ次のアドレスに記憶されるオペランドアドレスワー
ドと、から成るデータワードを表示する1群の2進デー
タビットを夫々記憶する複数のアドレス可能ワード記憶
場所を有するデータ記憶装置を有するデータ処理システ
ムを提供することによって達成される。
するコードを含む命令ワードと、S個のアドレスビット
を含む短形態のアドレスかSより犬でありかつ1ワード
内のビット数を越えるL個のアドレスビットを含む長形
態のアドレスかのどちらかを表示し、前記命令ワードの
すぐ次のアドレスに記憶されるオペランドアドレスワー
ドと、から成るデータワードを表示する1群の2進デー
タビットを夫々記憶する複数のアドレス可能ワード記憶
場所を有するデータ記憶装置を有するデータ処理システ
ムを提供することによって達成される。
このデータ処理システムは又、該システムが短形態のア
ドレスを用いる第1モードか長形態のアドレスを用いる
第2モードのどちらで動作するかを指示するための、現
在実行中の命令の前記データワードを参照せずに、例え
ば、手動スイッチ又は以前に実行された命令の結果から
得られるアドレスモード信号に応答するアドレスモード
指示装置をも有する。
ドレスを用いる第1モードか長形態のアドレスを用いる
第2モードのどちらで動作するかを指示するための、現
在実行中の命令の前記データワードを参照せずに、例え
ば、手動スイッチ又は以前に実行された命令の結果から
得られるアドレスモード信号に応答するアドレスモード
指示装置をも有する。
このデータ処理システムは更に前記命令ワード内に含ま
れた操作コードによって要求された操作の実施において
用いられるデータを記憶するためのレジスタ装置を有す
る。
れた操作コードによって要求された操作の実施において
用いられるデータを記憶するためのレジスタ装置を有す
る。
更に、このシステムは、データ処理システムの各命令実
行サイクルの初めに前記データ記憶装置をアドレスして
命令ワード及びオペランドアドレスワードデータを読み
出し、前記データを前記レジスタ装置内ヘロードするた
めの、例えばファームウエア制御論理装置で構成される
フエツチ装置を有する。
行サイクルの初めに前記データ記憶装置をアドレスして
命令ワード及びオペランドアドレスワードデータを読み
出し、前記データを前記レジスタ装置内ヘロードするた
めの、例えばファームウエア制御論理装置で構成される
フエツチ装置を有する。
このフエツチ装置は更に、データ処理システムが前記第
2モードで動作する時前記アドレスモード指示装置に応
答して複数のワード読み出しサイクル中に前記レジスタ
装置内へ複数のオペランドアドレスワードを読み込むよ
うに動作する。
2モードで動作する時前記アドレスモード指示装置に応
答して複数のワード読み出しサイクル中に前記レジスタ
装置内へ複数のオペランドアドレスワードを読み込むよ
うに動作する。
更に、このフエツテ装置はデータ処理システムが前記第
2モードで動作する時前記アドレスモード指示装置に応
答して前記データ記憶装置から読み出された前記複数の
オペランドアドレスワードのアドレスビットを組み合わ
せて前記レジスタ装置内にLビットの長形態のアドレス
を準備する装置を含む。
2モードで動作する時前記アドレスモード指示装置に応
答して前記データ記憶装置から読み出された前記複数の
オペランドアドレスワードのアドレスビットを組み合わ
せて前記レジスタ装置内にLビットの長形態のアドレス
を準備する装置を含む。
本発明の前記およびその他の目的は、添付図面に関して
説明する例示的な実態において達成される。
説明する例示的な実態において達成される。
本発明のデータ処理システムにおいては、ビット・バイ
ト、2倍長ワード、又はクワツド(4倍長)・ワード要
素の如き全てのデータ・ワード要素は、例えば16ビッ
トの記憶ワードに基ぐものであり、各ワードの様式は左
から右に向って最初のビットを0として規定される。
ト、2倍長ワード、又はクワツド(4倍長)・ワード要
素の如き全てのデータ・ワード要素は、例えば16ビッ
トの記憶ワードに基ぐものであり、各ワードの様式は左
から右に向って最初のビットを0として規定される。
本発明のシステムにおいては、メモリー・データはビッ
ト、バイト、ワード又は多重のワードのデータ項目レベ
ルに対する命令によってアクセス町能である。
ト、バイト、ワード又は多重のワードのデータ項目レベ
ルに対する命令によってアクセス町能である。
全ての場合、最も左寄りの要素がワードの最上位の要素
であって、例えば第10A図のビット0が最初のビット
であり、ビット1は第2のビットとなり、ビット0乃至
Iが最初の(左方の)バイトであり、ビット8乃至F(
本明細書においては16進ビット付番方法を用いる)は
第2の(右方の)バイトであり・・・等となる。
であって、例えば第10A図のビット0が最初のビット
であり、ビット1は第2のビットとなり、ビット0乃至
Iが最初の(左方の)バイトであり、ビット8乃至F(
本明細書においては16進ビット付番方法を用いる)は
第2の(右方の)バイトであり・・・等となる。
多重ワード項目は連続的なワード記憶場所を必妥とし、
最下位のアドレスはデータ項目の最も左寄り即ち最上位
のものと規定される。
最下位のアドレスはデータ項目の最も左寄り即ち最上位
のものと規定される。
ビット、バイト、ワード又は多重ワード・データ項目の
指示のためにはアドレス・ポインタを用いる。
指示のためにはアドレス・ポインタを用いる。
このアドレスは、データ項目の最も左寄り(即ち最上位
)の要素を表示する。
)の要素を表示する。
データ項目は左から右へ一列に付番される。
本発明の中央プロセサ(CPU)は長アドレス形態(L
AF)又は短アドレス形態(SAF)のいずれでも操作
町能である。
AF)又は短アドレス形態(SAF)のいずれでも操作
町能である。
LAFアドレス・モードは例えば100万ワードに対す
るアクセス能力を提供し、SAFアドレス・モードは例
えば64Kワード(K=1024)に対するアクセス能
力を提供する。
るアクセス能力を提供し、SAFアドレス・モードは例
えば64Kワード(K=1024)に対するアクセス能
力を提供する。
アドレスは無符号である。バイト・アドレスは外部バス
のアドレス回線に与えられて左方又は右方のバイトを指
定するあるビットを含まねばならない。
のアドレス回線に与えられて左方又は右方のバイトを指
定するあるビットを含まねばならない。
CPUアドレス・レジスタのビット位置は、零から始ま
る適当な数の外部バスのアドレス回線上のその位置に対
応するように付査されている。
る適当な数の外部バスのアドレス回線上のその位置に対
応するように付査されている。
SAFモードにおいては、CPUは第10B図のワード
1に示される如き17の上位ビットを含むアドレスを生
成する。
1に示される如き17の上位ビットを含むアドレスを生
成する。
この17ビットの内16の最上位ビットは10から1F
迄付番される。
迄付番される。
左方又は右方のバイトをアドレス指定する17査目のビ
ットは第10B図には示されていないことに注意され度
い。
ットは第10B図には示されていないことに注意され度
い。
LAFモードにおいては、CPUは21の上位ビットを
含むアドレスを生成する。
含むアドレスを生成する。
これ等の21のアドレス・ビットの20の最上位ビット
は第10C図のワード1およびワード2に示され、最上
位ビットはQC,最下位ビットは1Fと付査される。
は第10C図のワード1およびワード2に示され、最上
位ビットはQC,最下位ビットは1Fと付査される。
左方又は右方バイトをアドレス指定する21番目のアド
レス・ビットは第10C図には示されない。
レス・ビットは第10C図には示されない。
i10B図は、SAFモードの即時アドレスを有する本
発明の単一オペランド命令の命令フォーマットを示す。
発明の単一オペランド命令の命令フォーマットを示す。
第10B図のワード0は、ビット0乃至8の命令コード
と、ビット9乃至Fのアドレス・モードを規定するアド
レス・シラブルを含む。
と、ビット9乃至Fのアドレス・モードを規定するアド
レス・シラブルを含む。
以下に述べるように、このアドレス・シラブル(AS)
は中央プロセサのSAF又はLAFアドレス指定モード
を制御しないことに注意され度い。
は中央プロセサのSAF又はLAFアドレス指定モード
を制御しないことに注意され度い。
第10B図におけるワード1は、ビット10乃至Fにお
ける16ビットのアドレス値(AB)を含む。
ける16ビットのアドレス値(AB)を含む。
第10C図は、ワード1およびワード2に含まれるLA
Fモードの即時アドレスを有する単一オペランド命仝を
示す。
Fモードの即時アドレスを有する単一オペランド命仝を
示す。
この命令コード(OP)は再びワード0のビット位置0
乃至8に含まれ、アドレス・シラブル(AS)はワード
0のビット位置9乃至Fに指定される。
乃至8に含まれ、アドレス・シラブル(AS)はワード
0のビット位置9乃至Fに指定される。
第10C図のワード1は、ビット位置OC乃至OFの2
0ビット・アドレスの4つの最上ビットを含み、ビット
位置00乃至OBが零を含まなければならない(MBZ
)ことを要求する。
0ビット・アドレスの4つの最上ビットを含み、ビット
位置00乃至OBが零を含まなければならない(MBZ
)ことを要求する。
20ビットのLAFモード・アドレスの最下位の16ビ
ットはワード2のビットン10乃至1Fに含まれる。
ットはワード2のビットン10乃至1Fに含まれる。
命令ワードのアドレス・シラブル(AS)は、オペラン
ドのアドレスをいかにして形成するか、例えばオペラン
ドがプログラム・カウンタ又は基底レジスタに関するア
ドレスであるかどうか等を指定するために用いられる。
ドのアドレスをいかにして形成するか、例えばオペラン
ドがプログラム・カウンタ又は基底レジスタに関するア
ドレスであるかどうか等を指定するために用いられる。
アドレス・シラブルは又、SAFモードにおいては第1
0B図のワード1に対して示される様式でメモリーに1
つのワード・アドレスが含まれ、又LAPモードにおい
てはワード1および2に対する第10C図の様式で2ワ
ードの記憶に含まれるアドレス指定の間接モードを指定
する。
0B図のワード1に対して示される様式でメモリーに1
つのワード・アドレスが含まれ、又LAPモードにおい
てはワード1および2に対する第10C図の様式で2ワ
ードの記憶に含まれるアドレス指定の間接モードを指定
する。
前述の如く、命令ワードのアドレス・シラブル(AS)
は、CPUがSAFアドレス指定モードにあるかLAF
アドレス指定モードにあるかは制;側」シない。
は、CPUがSAFアドレス指定モードにあるかLAF
アドレス指定モードにあるかは制;側」シない。
本発明の中央プロセサにおいては、SAF又はLAFア
ドレス指定モードは、1つの位置にセットされる時FF
LAFフロツプの2進数1へのセッティングを惹起して
CP[JがLAFモードで操作中であることを表示する
制御パネル上のスイッチにより制御される。
ドレス指定モードは、1つの位置にセットされる時FF
LAFフロツプの2進数1へのセッティングを惹起して
CP[JがLAFモードで操作中であることを表示する
制御パネル上のスイッチにより制御される。
他の位置にセットされると、FFLAFフロツプを2進
数零の状態にセットしてCPUがSAFモードで操作中
であることを表示する。
数零の状態にセットしてCPUがSAFモードで操作中
であることを表示する。
あるいは、FFLAFフロツプは、1対の命令によって
アドレス指定モードがあるプログラム命令の実行により
制御できるようにセットおよびリセットされ得る。
アドレス指定モードがあるプログラム命令の実行により
制御できるようにセットおよびリセットされ得る。
FFLAFフロップは第1図のハードウエア制御フロツ
プに含まれるフロツプの1つであることが判る。
プに含まれるフロツプの1つであることが判る。
データ処理システムのデータ・プロセサのブロック図を
第1図に示す。
第1図に示す。
このシステムは、例えば各々が64ビットを含む102
4個の記憶場所を含む制御ストア10を含んでいる。
4個の記憶場所を含む制御ストア10を含んでいる。
このような記憶場所の各々は1つのファームウエア・ワ
ードを記憶することができ、このファームウエア・ワー
ドはテータ・プロセサ内で種々のハードウエア操作を制
御するのに用いられる。
ードを記憶することができ、このファームウエア・ワー
ドはテータ・プロセサ内で種々のハードウエア操作を制
御するのに用いられる。
第4図は種々のフィールドを構成するビットを表示する
ファームウエア・ワードを示す図である。
ファームウエア・ワードを示す図である。
このような記憶場所および(又は)ファームウエア・ワ
ードの数、およびこのようなワードのビット数は本発明
の範囲から逸脱することなく増減することができること
が判るであろう。
ードの数、およびこのようなワードのビット数は本発明
の範囲から逸脱することなく増減することができること
が判るであろう。
制御ストアの操作およびこれを復号する命令については
、コンピュータ・デザイン・マガジンの1974年4月
号の119頁のC.W.シュルツ(Schultz)著
「マイクロプロセサ用の最適化マイクロプログラム化制
御セクションの設計」なる論文に記載されている。
、コンピュータ・デザイン・マガジンの1974年4月
号の119頁のC.W.シュルツ(Schultz)著
「マイクロプロセサ用の最適化マイクロプログラム化制
御セクションの設計」なる論文に記載されている。
制御ストアの局部レジスタ11は、制御ストア・ワード
の記憶に用いられる例えば8つの8ビットDタイプ・レ
ジスタからなる。
の記憶に用いられる例えば8つの8ビットDタイプ・レ
ジスタからなる。
この制御ストア出力は、中央プロセサの1次クロツク・
パルスにより制御レジスタ11にクロツクされ、新らし
い制御ストア・ワードが次の1次クロツク・パルスによ
ってレジスタ11にロードされる迄制御レジスタ11に
維持される。
パルスにより制御レジスタ11にクロツクされ、新らし
い制御ストア・ワードが次の1次クロツク・パルスによ
ってレジスタ11にロードされる迄制御レジスタ11に
維持される。
CPUのテスト・ロジック50は、制御ストアのビット
42乃至47を用いて例えば64通りの可能性のあるテ
スト条件の1つを選択する。
42乃至47を用いて例えば64通りの可能性のあるテ
スト条件の1つを選択する。
テストされた条件が真か偽かに従って、テスト条件の真
の関数は次のアドレス生成ロジック52に送出される。
の関数は次のアドレス生成ロジック52に送出される。
CPUは3つの方法の1つを用いて次のファームウエア
・アドレスを生成する。
・アドレスを生成する。
この第1の方法は制御ストア・ワードのビット54乃至
63を用いて次のアドレスを生成する。
63を用いて次のアドレスを生成する。
これ等のヒットは、潜在的な1024個の制御ストアの
記憶場所のいずれか1つを直接にアドレス指定するこ占
ができる10ビットの次のアドレス(NA)フィールド
を有する。
記憶場所のいずれか1つを直接にアドレス指定するこ占
ができる10ビットの次のアドレス(NA)フィールド
を有する。
第2の方法は、いくつかの予め割当てられたアドレスを
含むFROMチップから次のアドレスを得る。
含むFROMチップから次のアドレスを得る。
この選択されたアドレスは、Fレジスタ36の内容、匍
1御ストア出力、および他の制御フロツプ54の復号に
よって決定される。
1御ストア出力、および他の制御フロツプ54の復号に
よって決定される。
第3の方法はサブルーチン戻り(リンク)レジスタ51
を呼出すことである。
を呼出すことである。
データ・プロセサに含まれているのは、屡々マイクロプ
ロセサと呼ばれるレジスタ兼論理回路(RALU)12
である。
ロセサと呼ばれるレジスタ兼論理回路(RALU)12
である。
第2図は、このRALU12の詳細を示すブロツク図で
ある。
ある。
一般に、RALUは、レジスタ・ファイル、シフト・ロ
ジック、演算ロジックおよび制御ロジックを含む4つの
区域に分割されている。
ジック、演算ロジックおよび制御ロジックを含む4つの
区域に分割されている。
レジスタ・ファイルは、データ・レジスタ、作業レジス
タ、および基底レジスタを含んでいる。
タ、および基底レジスタを含んでいる。
シフト・ロジックは桁送り操作および通常のデータ転送
の間用いられる。
の間用いられる。
演算ロジックは種々のラッチ即ちバツファ、マルチプレ
クサ、インパータ、および加算器を含んでいる。
クサ、インパータ、および加算器を含んでいる。
RALUの制御ロジックはこれについて操作されるべき
データの該当部分を選択するためのセレクタ・ロジック
を含む。
データの該当部分を選択するためのセレクタ・ロジック
を含む。
本発明のためのCPUは、本発明において不町欠ではな
いがその背景の一般的説明のための種々のレジスタを含
んでいる。
いがその背景の一般的説明のための種々のレジスタを含
んでいる。
状況/機密保持レジスタ14はシステム状況キーおよび
機密保持キーを含んでいる。
機密保持キーを含んでいる。
このレジスタは、システムが特権状態にあるか、あるい
はこれがユーザ状態下にあるかを表示するビット・フィ
ールドを有する。
はこれがユーザ状態下にあるかを表示するビット・フィ
ールドを有する。
ユーザ状態においては、指定された命令は実行される代
りにいわゆるトラップ・ルーチンに入る。
りにいわゆるトラップ・ルーチンに入る。
更に、セグメンテーション兼保護装置17の記憶保護性
が使用可能となる時、このユーザが意図された目的、郎
も請出し、書込み又は実行のためこの記憶場所へのアク
セスを許容されるかどうかを決定するため各アドレスを
吟味する。
が使用可能となる時、このユーザが意図された目的、郎
も請出し、書込み又は実行のためこの記憶場所へのアク
セスを許容されるかどうかを決定するため各アドレスを
吟味する。
レジスタ14は又プロセサの識別番号を表示するための
1つのフィールドを含み、システム構成の間セットされ
る。
1つのフィールドを含み、システム構成の間セットされ
る。
レジスタ14は又、中央プロセサの割込み優先レベルを
表示するためのフィールドも含んでいる。
表示するためのフィールドも含んでいる。
システム内に結合された全ての装置は割込みレベルを含
む。
む。
CPUの現行プログラムは、下位レベル番号が最も割込
みし難いプロセスおよび(又は)装置を表わす場合、現
行プログラムの実際のレベル番号よりも下位のレベル番
号を装置が有するならば、割込まれる。
みし難いプロセスおよび(又は)装置を表わす場合、現
行プログラムの実際のレベル番号よりも下位のレベル番
号を装置が有するならば、割込まれる。
このような割込み構造については、1976年10月5
日発行の米国特許第3,984,820号に示されてい
る。
日発行の米国特許第3,984,820号に示されてい
る。
指標レジスタ(■)16はオーバーフローおよびプログ
ラム状況標識を含む。
ラム状況標識を含む。
このレジスタ16は又、システム内で行われたいかなる
比較の結果も表示するため、および質疑された最後の周
辺機器の表示即ち状況のためのフィールド、およびテス
トされた最後のビットの状態を表示するフィールドが含
まれる種々のフィールドを含んでいる。
比較の結果も表示するため、および質疑された最後の周
辺機器の表示即ち状況のためのフィールド、およびテス
トされた最後のビットの状態を表示するフィールドが含
まれる種々のフィールドを含んでいる。
例えば第1A図に示す如き各々が20ビットの16ワー
ドであるランダム・アクセス・メモリー(RAM)13
内には7つのMレジスタ(Ml乃至M7)が含まれる。
ドであるランダム・アクセス・メモリー(RAM)13
内には7つのMレジスタ(Ml乃至M7)が含まれる。
M1およびM2レジスタはCPUの諸特性を制御する。
M4およびM5レジスタは科学計算命令グロセサにおけ
る諸特性を制御する。
る諸特性を制御する。
M3,M6およびM7レジスタは将来の使用のため予約
される。
される。
この7つのMレジスタは、第1A図に示す如<RAM1
3の記憶場所1乃至7にある。
3の記憶場所1乃至7にある。
M1レジスタはトラップ可能モード制御キーを含み、こ
れは飛越しおよび分岐命令のための追跡トラップ(即ち
、コンピュータのプログラムの操作の追跡を補佐するト
ラップ)を使用町能にするためのフィールドを含んでい
る。
れは飛越しおよび分岐命令のための追跡トラップ(即ち
、コンピュータのプログラムの操作の追跡を補佐するト
ラップ)を使用町能にするためのフィールドを含んでい
る。
M2レジスタはスタック又は待合せモードにおける基底
レジスタ6およびγの使用を使用可能にするスタック/
待合せビットを含んでいる。
レジスタ6およびγの使用を使用可能にするスタック/
待合せビットを含んでいる。
Mレジスタの内容がRAM13に記憶されるため、この
内容は容易にテスト・ロジック50に対してアクセスす
ることができない。
内容は容易にテスト・ロジック50に対してアクセスす
ることができない。
従って、第1図には示されないMコレクタ・レジスタを
用いてCPUが即時の判断を行うために要求する関連ビ
ットを収集する。
用いてCPUが即時の判断を行うために要求する関連ビ
ットを収集する。
プログラム・カウンタ(Pレジスタ)20は例えば20
ビットのレジスタで、これは通常その時点で実行中の命
令のアドレスを含む。
ビットのレジスタで、これは通常その時点で実行中の命
令のアドレスを含む。
Yレジスタ22、即ち記憶アドレス・レジスタも又、通
常メモリー内でアクセスされるデータのアドレスを含む
20ビットのレジスタである。
常メモリー内でアクセスされるデータのアドレスを含む
20ビットのレジスタである。
割込みレジスタ(IN)21は例えば16ビットのレジ
スタで、レシーバ・ロジック26Rから割込み装置のチ
ヤネル番号およびレベルを受取る。
スタで、レシーバ・ロジック26Rから割込み装置のチ
ヤネル番号およびレベルを受取る。
バス・データ・レジスタ(DT)23は例えば16ビッ
ト・レジスタで、通常内部バス28を経てCPUに配分
するためレシーバ・ロジック26Rからオペランドデー
タを受取る。
ト・レジスタで、通常内部バス28を経てCPUに配分
するためレシーバ・ロジック26Rからオペランドデー
タを受取る。
手順1(P1)および手順2(P2)レジスタ25,2
7は例えば16ビットのレジスタで、一般にメモリーか
らの手順の2倍長ワード取出しに対するCPU要求から
生じる手順純ードをレシーバ・ロジック26Rから受取
る。
7は例えば16ビットのレジスタで、一般にメモリーか
らの手順の2倍長ワード取出しに対するCPU要求から
生じる手順純ードをレシーバ・ロジック26Rから受取
る。
XBレジスタ32は例えば4ビット・レジスタで、プロ
セサ内でのビットおよびバイト指標付けのために使用さ
れる。
セサ内でのビットおよびバイト指標付けのために使用さ
れる。
このレジスタ32の出力は内部バス28と16進デコー
ダ・ロジック34の相方に結合される。
ダ・ロジック34の相方に結合される。
命令レジンタ(R)36は例えば12ビット・レジスタ
で、外部バスに結合できるメモリーから受取られる時命
令ワードである最上位の12ビットを保時する。
で、外部バスに結合できるメモリーから受取られる時命
令ワードである最上位の12ビットを保時する。
セレクタ・レジスタ(SEL)14は命令ワードの最下
位の4ビットを記憶する。
位の4ビットを記憶する。
これは、命令ワードの最上位の12ビット(Fレジスタ
)を変更することなく内部バス28からロードされ得る
。
)を変更することなく内部バス28からロードされ得る
。
このSELレジスタ14も又零に対して減分されてテス
トされ得る。
トされ得る。
本文においては、この用語Fレジスタ36は組合わされ
た命令(F)レジスタおよび選択(SEL)レジスタを
意味し、これは12ビットのFレジスタ36と4ビット
のSELレジスタ37の間を区別することが重要でなけ
れば、16ビットのレジスタを構成する。
た命令(F)レジスタおよび選択(SEL)レジスタを
意味し、これは12ビットのFレジスタ36と4ビット
のSELレジスタ37の間を区別することが重要でなけ
れば、16ビットのレジスタを構成する。
定数生成ロジック40は、制御ストア10に含まれるプ
ロセサのファームウエアと関連して使用するため3状態
セレクタ42に対して特定の定数を与えるよう結合され
る。
ロセサのファームウエアと関連して使用するため3状態
セレクタ42に対して特定の定数を与えるよう結合され
る。
カウンタ・レジスタ(CTR)33は例えば4ビット・
レジスタであり、これは現行命冷で処理される命令ワー
ド数をカウントする。
レジスタであり、これは現行命冷で処理される命令ワー
ド数をカウントする。
その値はトラップ状況ロジック35により生成されるト
ラップ状況ワードにレポートされる。
ラップ状況ワードにレポートされる。
トラップ状況ロジック35は、さもなければ最後に終了
するバスが循環するロジックを含み、これにより開始プ
ログラムに対して呼出される側が接続されないことを通
知する。
するバスが循環するロジックを含み、これにより開始プ
ログラムに対して呼出される側が接続されないことを通
知する。
トラップを処理する時、CPUは、次の使用町能なトラ
ップ保管区域に対する。
ップ保管区域に対する。
およびトラップ・ベクトルに対するポインタ(即ちトラ
ップ取扱手順に対するポインタ)を含む専用記憶場所に
対するアドレスを生成する。
ップ取扱手順に対するポインタ)を含む専用記憶場所に
対するアドレスを生成する。
16進デコーダ・ロジック34は、ビットおよび他の操
作に対するマスクの生成に用いられる4ビット乃至16
ビットのデマルチプレクサ(demultiplexe
r)からなる(制御ストア10に含まれるファームウエ
アによるテストのため16ビットの内の1つが選択され
る)。
作に対するマスクの生成に用いられる4ビット乃至16
ビットのデマルチプレクサ(demultiplexe
r)からなる(制御ストア10に含まれるファームウエ
アによるテストのため16ビットの内の1つが選択され
る)。
Hレジスタは例えば16ビット・レジスタで、その内容
を内部バス28に蓄積する時最下位および最上位の8ビ
ットをスワツプすることによりバイト操作を容易化する
。
を内部バス28に蓄積する時最下位および最上位の8ビ
ットをスワツプすることによりバイト操作を容易化する
。
3状態セレクタ42は、例えば内部バス28からRAL
U12へ、又はその逆方向に特定のCPU要素に対する
経路指定のための選択されたCPU要素からデータを収
集する。
U12へ、又はその逆方向に特定のCPU要素に対する
経路指定のための選択されたCPU要素からデータを収
集する。
制御ストアのビット22乃至27は、いかなる時にも唯
一つの入力(選択されたレジスタ)を使用可能にさせて
3状況セレクタ42を経て内部バス28に対して選択さ
れたCPUのレジスタの内容をゲー卜するために用いら
れる。
一つの入力(選択されたレジスタ)を使用可能にさせて
3状況セレクタ42を経て内部バス28に対して選択さ
れたCPUのレジスタの内容をゲー卜するために用いら
れる。
CPUのオペレータとの通信は自蔵制御パネルにより行
われる。
われる。
制御パネル・ロジック29は、データを制御パネルとC
PU間に転送するために用いられる内部バス28に接続
されている。
PU間に転送するために用いられる内部バス28に接続
されている。
制御パネルは、ユーザに独得のCPU制御部と視覚的な
状況標識とオペレータに対してシステムの動作又は誤動
作を質疑および分析することを許容するレズスタを提供
する。
状況標識とオペレータに対してシステムの動作又は誤動
作を質疑および分析することを許容するレズスタを提供
する。
ブートロードPOM15は、標準的なブートロード・ル
ーチンを含む例えば512×16ビットの記憶場所から
なる。
ーチンを含む例えば512×16ビットの記憶場所から
なる。
操作のセグメンテーション兼保護装置17が組込まれる
と、内部のプロセサ・レジスタ例えばYレジスタ22に
存在する全てのアドレスが記憶照合において関与する前
に再び翻訳される。
と、内部のプロセサ・レジスタ例えばYレジスタ22に
存在する全てのアドレスが記憶照合において関与する前
に再び翻訳される。
内部プロセサ・アドレスは仮想アドレスと呼ばれ、セグ
メンテーション兼保護装置17による翻訳の後のアドレ
スは物理アドレスと呼ばれる。
メンテーション兼保護装置17による翻訳の後のアドレ
スは物理アドレスと呼ばれる。
仮想アドレスを物理的アドレスに変換するには2ステッ
プが必要とされる。
プが必要とされる。
対ち、(1)仮想マツピングから物理的マツピングを行
い、(2)その時点のプロセサ状態に基いてこの記憶照
合が許容されるかどうかを決定する。
い、(2)その時点のプロセサ状態に基いてこの記憶照
合が許容されるかどうかを決定する。
セグメントは仮想記憶スペースのセクションである。
各セグメントは、セグメンテーション兼保護装置17に
記憶された例えば32ビットのパターンにより規定され
る。
記憶された例えば32ビットのパターンにより規定され
る。
セグメンテーション兼保護装置17は、仮想アドレスを
物理的アドレスへ変転する毎に2つのタイプの検査を実
施する。
物理的アドレスへ変転する毎に2つのタイプの検査を実
施する。
即ち、(1)この記憶アクセスの意図に対する読出し/
書込み/実行許容ビットの比較を行い、(2)この仮想
アドレスが適法であるかどうかについての決定を行う。
書込み/実行許容ビットの比較を行い、(2)この仮想
アドレスが適法であるかどうかについての決定を行う。
もしセグメンテーション兼保護装置17が記憶照合を許
容しなければ、特権の侵害が生じる。
容しなければ、特権の侵害が生じる。
内部バス(BI)28は例えば20ビットの巾で、主と
してデータをプロセサのレジスタ間に転送するために用
いられる。
してデータをプロセサのレジスタ間に転送するために用
いられる。
記憶アドレスおよびデータは又内部バス28を介して外
部バスに転送される。
部バスに転送される。
アドレス・バス・レジスタ(BA)56は例えば16ビ
ット巾であり、ロジック26Rおよび26Tに対する入
出力および記憶読出し又は書込みサイクルに対するアド
レスの転送に用いられる。
ット巾であり、ロジック26Rおよび26Tに対する入
出力および記憶読出し又は書込みサイクルに対するアド
レスの転送に用いられる。
ファームウエア制御下でBAレジスタ56は、データ照
合のためYレジスタ22を、あるいは手順照合のためP
ポインタ20を選択する。
合のためYレジスタ22を、あるいは手順照合のためP
ポインタ20を選択する。
トランシーバ・ロジック26(26R,26T)は、C
PUと外部バス間の唯一のインターフェースである論理
回路を含む。
PUと外部バス間の唯一のインターフェースである論理
回路を含む。
全てのデータ、アドレスおよび割込み信号はこのトラン
シーバ・ロジック26を通らねばならない。
シーバ・ロジック26を通らねばならない。
このようなトランシーバ・ロジック26は、外部バスの
操作と共に本文中に参照のため引用される1976年1
1月23日発行された米国特許第3,993,981号
に記載されている。
操作と共に本文中に参照のため引用される1976年1
1月23日発行された米国特許第3,993,981号
に記載されている。
選択変更ロジック(SM)58は、Fレジスタ36のど
のビット(もしあれば)が用いられてLSおよびRSフ
ィールド即ち制御ストア10の制御ストア・ワードの左
方選択および右方選択フィールドにより行われたレジス
タ・ファイル選択を変更するかを決定する。
のビット(もしあれば)が用いられてLSおよびRSフ
ィールド即ち制御ストア10の制御ストア・ワードの左
方選択および右方選択フィールドにより行われたレジス
タ・ファイル選択を変更するかを決定する。
SMロジックは、左右のセレクタ・ロジック即ちLSロ
ジック60とRSロジック62の相方に対する制御スト
アのビット28乃至30の構成に従ってFレジスタのビ
ット01乃至03,09乃至OB,SEL1乃至3又は
SELO乃至3をゲートする。
ジック60とRSロジック62の相方に対する制御スト
アのビット28乃至30の構成に従ってFレジスタのビ
ット01乃至03,09乃至OB,SEL1乃至3又は
SELO乃至3をゲートする。
LSおよびRSロジックは、選択変更ロジック58の出
力およびレジスタ選択用の制御ストアのビット1乃至3
、又は5乃至7の内容を用いる。
力およびレジスタ選択用の制御ストアのビット1乃至3
、又は5乃至7の内容を用いる。
制御ストア・ビット1乃至3は左方のセレクタにより使
用される。
用される。
制御ストア・ビット5乃至7は右方のセレクタによって
1吏用される。
1吏用される。
外部バスは、1976年11月23日発行の米国特許第
3,993,981号に示される如きシステムのメモリ
ーを含む全装置間に共通の通信経路即ちインターフェー
スを提供する。
3,993,981号に示される如きシステムのメモリ
ーを含む全装置間に共通の通信経路即ちインターフェー
スを提供する。
この外部バスは構成上は非同期的で、各種の速度の装置
はシステムにおいて有効に操作され、3つのタイプの通
信即ち記憶転送、入出力転送、および割込みが許容され
る。
はシステムにおいて有効に操作され、3つのタイプの通
信即ち記憶転送、入出力転送、および割込みが許容され
る。
外部バスに対しては、中央プロセサ、記憶装置、周辺装
置コントローラ、通信コントローラ等が結合される。
置コントローラ、通信コントローラ等が結合される。
前述のレジスタ等については、1976年1月発行のハ
ネウエル情報システムズ社の文献 ータ・ハンドブック に記載される。
ネウエル情報システムズ社の文献 ータ・ハンドブック に記載される。
バス制御装置48R,48Tは外部バス26とノのCP
Uのインターフェースを制御する。
Uのインターフェースを制御する。
例えば、バス匍謝装置48Rは、データ回線上で受取ら
れたデータが割込み( IN)レジスタ21、データ(
DT)レジスタ23 (PLおよびP2)レジスタ25,27にゲートjされ
るかどうかを市選する。
れたデータが割込み( IN)レジスタ21、データ(
DT)レジスタ23 (PLおよびP2)レジスタ25,27にゲートjされ
るかどうかを市選する。
バス制御装置48Tは、例えばCPUによる使用又は外
部バス上の別の装置から受取ったデータの確認のため外
部バスの要求を制御する。
部バス上の別の装置から受取ったデータの確認のため外
部バスの要求を制御する。
次に第2図において、レジスタ兼論理装置(MLU).
12を詳細に示す。
12を詳細に示す。
BALU1 2は、アドバンスド・マイクロ・デバイス
社製で、本文に参考のため引用された1976年版の同
社文献「AM2900系列データ・ブック」に記載され
た5つのAM2900マイクロプロセサからなる。
社製で、本文に参考のため引用された1976年版の同
社文献「AM2900系列データ・ブック」に記載され
た5つのAM2900マイクロプロセサからなる。
RALU12は4つの基本的区域、即ちレジスタ・ファ
イル、桁送りロジック、演算ロジックおよび制御ロジッ
クに分割される。
イル、桁送りロジック、演算ロジックおよび制御ロジッ
クに分割される。
最初にレジスタ・ファイル70については、これはデー
タ・レジスタD1乃至D7、作業レジスタD0(又はD
)とE、および基底レジスタB1乃至B1を含んでいる
。
タ・レジスタD1乃至D7、作業レジスタD0(又はD
)とE、および基底レジスタB1乃至B1を含んでいる
。
レジスタD1乃至D1は例えば16ビット・ワード・オ
ペランドのレジスタで、ビット10が最上位ビットと考
えられる。
ペランドのレジスタで、ビット10が最上位ビットと考
えられる。
本発明の実際の構成内では、レジスタD1乃至DIが2
0ビットのレジスタで、最下位の16ビットが取消され
たオペランドおよび最上位の4ビット(ビット0C乃至
0F)を保持するのに用いられる。
0ビットのレジスタで、最下位の16ビットが取消され
たオペランドおよび最上位の4ビット(ビット0C乃至
0F)を保持するのに用いられる。
レジスタDとEも又例えば20ビット・レジスタ(ビッ
ト0C乃至0F)および10乃至1F)で、ファームウ
エア操作の間データの操作のため使用される。
ト0C乃至0F)および10乃至1F)で、ファームウ
エア操作の間データの操作のため使用される。
命令取出しおよび制御パネル操作の間、命令レジスク(
F)36の内容の複写の保持のためにレジスタDが用い
られる。
F)36の内容の複写の保持のためにレジスタDが用い
られる。
基底レジスタは例えば20ビットのアドレス・レジスタ
であって、ビット0Cが最上位ビットと考えられるシス
テムにおいて手順、データ又は任意の記憶場所を指示す
ることによりアドレスを様式化するために使用できる。
であって、ビット0Cが最上位ビットと考えられるシス
テムにおいて手順、データ又は任意の記憶場所を指示す
ることによりアドレスを様式化するために使用できる。
この基底レジスタは又、自動増分および自動減分機能を
有してスタック、待合せおよびプログラムのループ操作
のためのこれ等レジスタの容易な使用を可能にする。
有してスタック、待合せおよびプログラムのループ操作
のためのこれ等レジスタの容易な使用を可能にする。
オペランドを含むこれ等レジスタ(レジスタD1乃至D
7)は16ビットのレジスタであるが、アドレスを含む
ことのできるレジスタ(レジスタD,EおよびB1乃+
B7)は20ビットのレジスクであることに留意すべき
である。
7)は16ビットのレジスタであるが、アドレスを含む
ことのできるレジスタ(レジスタD,EおよびB1乃+
B7)は20ビットのレジスクであることに留意すべき
である。
マルチプレクサ桁送りロジック80.82は、主として
桁送り操作と通常のデータ転送の両方に使用される2つ
の16ビットのマルチプレクサを含んでいる。
桁送り操作と通常のデータ転送の両方に使用される2つ
の16ビットのマルチプレクサを含んでいる。
別のレジスタ(Q)76が2倍長オペランド桁送りのた
めに設けられている。
めに設けられている。
Qレジスタは20ビット・レジスタであるが、その最下
位の16ビットのみが2倍精度桁送り操作の間使用され
る。
位の16ビットのみが2倍精度桁送り操作の間使用され
る。
データは、このマルチグレクサとレジスタ・ファイル7
0内のデータ・レジスタとの間で1ビットだけ左右に桁
送りすることができる。
0内のデータ・レジスタとの間で1ビットだけ左右に桁
送りすることができる。
本発明においては、Yレジスタ41は通常指標付けされ
ないアドレスを含み、Dレジスタ(D0)は指標値を含
む。
ないアドレスを含み、Dレジスタ(D0)は指標値を含
む。
演算ロジックは、2つの20ビット・ラッチ回路84,
86,2対1マルチプレクサ88,3対1マルチプレク
サ90,2つの16ビット・インバータ92,94、加
算器96、および出力マルチプレクサ98を含む。
86,2対1マルチプレクサ88,3対1マルチプレク
サ90,2つの16ビット・インバータ92,94、加
算器96、および出力マルチプレクサ98を含む。
入力L100と関連するラッチは、左方のセレクタ・ロ
ジック60により選択される如くレジスタ・ファイルか
らデータを受取る。
ジック60により選択される如くレジスタ・ファイルか
らデータを受取る。
同様に、入力R102内で関連するラッチは、右方のセ
レクタ62により選択される如きレジスタ・ファイルγ
0からテータを受取る。
レクタ62により選択される如きレジスタ・ファイルγ
0からテータを受取る。
ラツテ84からの出力は両マルチプレクサ88,90と
出力マルチプレクサ98に送られる。
出力マルチプレクサ98に送られる。
ランチ86からの出力はマルチプレクサ90に送られる
。
。
左方のマルチプレクサ88は、入力D104、入力L1
00と関連するラッチとを経て内部バス28からデータ
を受取る。
00と関連するラッチとを経て内部バス28からデータ
を受取る。
右方のマルチプレクサ90は、入力Q106、入力R1
02と関連するラッチ86、および入力L100と関連
するラツチ84を経てQレジスタ76からデータを受取
る。
02と関連するラッチ86、および入力L100と関連
するラツチ84を経てQレジスタ76からデータを受取
る。
これ等のマルチプレクサからの出力JとKはそれぞれ加
算器96の各人力LとRに対しインバータ92と94を
経て送られる。
算器96の各人力LとRに対しインバータ92と94を
経て送られる。
加算器96は全ての演算操作を行う。
入力LとHに加えて、別の入力が制御ストア・ワード・
ビット12から得られる(桁上げインジエクト)。
ビット12から得られる(桁上げインジエクト)。
加算器96の出力は、出力マルチプレクサ98と入カマ
ルチプレクサ/桁送りロジック80,82の相方に送ら
れる。
ルチプレクサ/桁送りロジック80,82の相方に送ら
れる。
出力マルチプレクサ98からのデータの20ビットは、
RALU12からの主出力である。
RALU12からの主出力である。
マルチプレクサ98からのデータは、プロセサ内の配分
のため内部バスに与えられる。
のため内部バスに与えられる。
以下は第1図および第2図に示されるプロセサと操作に
関する更に詳細な論議である。
関する更に詳細な論議である。
中央プロセサ(CPU)は、プロセサ・ロジックの大部
分を相互、およびレシーバ26Rおよびトランスミツタ
26Tを経て外部バスに接続する1本の内部バス28の
周囲に構成される。
分を相互、およびレシーバ26Rおよびトランスミツタ
26Tを経て外部バスに接続する1本の内部バス28の
周囲に構成される。
前述の如く、Yレジスタは記憶アドレス・レジスタであ
り、Fレジスタ36は命令取出しの間1つの命令ワード
を受取るために使用される。
り、Fレジスタ36は命令取出しの間1つの命令ワード
を受取るために使用される。
内部バス上の種々のビットは、ファームウエア分岐決定
を行う際に使用されるためテスト・ロジック50に対す
る入力として使用される。
を行う際に使用されるためテスト・ロジック50に対す
る入力として使用される。
内部バス28からのこのような種種のビットに含まれる
情報は、テスト・ロジック50および種々のハードウエ
ア制御フロップ54に記憶することができる。
情報は、テスト・ロジック50および種々のハードウエ
ア制御フロップ54に記憶することができる。
内部バス28は又RALU12に対する入力でもある。
内部バス28は、ファームウエア制御下でRALU12
からの桁送りによりロードされるRALU12のバイト
選択レジスタ(XB)32を操作する定数生成装置40
を含むいくつかの要素によって駆動即ち制御される。
からの桁送りによりロードされるRALU12のバイト
選択レジスタ(XB)32を操作する定数生成装置40
を含むいくつかの要素によって駆動即ち制御される。
その時点の制御ストア命令は、制御レジスタ11の出力
側で使用町能であって部分的に種々の論理素子で復号さ
れ、次いてシステム内の残りの素子に関して諸操作を行
うために使用される。
側で使用町能であって部分的に種々の論理素子で復号さ
れ、次いてシステム内の残りの素子に関して諸操作を行
うために使用される。
次のアドレス生成ロジック52は制御ストア・ワード郎
ちファームウエア・ワードにおける次のアドレスを使用
し、これに従って、又テスト・ロジック50により与え
られるテスト条件に従って新らしいアドレスを生成する
。
ちファームウエア・ワードにおける次のアドレスを使用
し、これに従って、又テスト・ロジック50により与え
られるテスト条件に従って新らしいアドレスを生成する
。
匍御ストア10は、数百ナノ秒程度の中央プロセサのク
ロック・サイクル当り1回だけ次のアドレスに前進する
。
ロック・サイクル当り1回だけ次のアドレスに前進する
。
第3図に関して更に論述するように、ファームウエアに
おける分岐操作即ち制御ストアがテスト・ロジック50
によって検出され、このロジックは内部状況フロツプ5
4の内容、内部バス28の状態、およびFレジスタ36
の内容を用いてテスト条件が満たされるか否かを決定す
る。
おける分岐操作即ち制御ストアがテスト・ロジック50
によって検出され、このロジックは内部状況フロツプ5
4の内容、内部バス28の状態、およびFレジスタ36
の内容を用いてテスト条件が満たされるか否かを決定す
る。
このテスト条件は、以下に述べるように次のアドレス生
成ロジックに対する入力である。
成ロジックに対する入力である。
このテスト条件は又、種々のタイプの分岐操作の間に生
じる2つのアドレス形態を選択するために使用される。
じる2つのアドレス形態を選択するために使用される。
種々のタイプのアドレス形成のためのファームウェアに
おけるエントリ・ポイントを選択するXA分岐は、Fレ
ジスタ36の内容に主として基づいて決定を行う。
おけるエントリ・ポイントを選択するXA分岐は、Fレ
ジスタ36の内容に主として基づいて決定を行う。
メモリーからの取出しオペランドに関するXR分岐は、
そのエントリ・ポイントを主としてFレジスタ36のO
Pコード・フィールドに基づいて決定する。
そのエントリ・ポイントを主としてFレジスタ36のO
Pコード・フィールドに基づいて決定する。
更に事例を挙げれば、XE分岐は命名のOPコードに殆
んど完全に基づくもので、Fレジスタ36のOPコード
・ビットにより使用可能となる。
んど完全に基づくもので、Fレジスタ36のOPコード
・ビットにより使用可能となる。
オペランドが再びメモリーに書込まれる方法を決定する
分岐であるXW分岐は、OPコードのタイプとフロツプ
54の内部状況に基づいて行われる。
分岐であるXW分岐は、OPコードのタイプとフロツプ
54の内部状況に基づいて行われる。
指標レジスタの桁送り動作はあるタイプのアドレス指令
に対して与えられ、通常レジスタ・ファイル10のDレ
ジスタである指標レジスタに記憶される指標値を桁送り
することによって実施される。
に対して与えられ、通常レジスタ・ファイル10のDレ
ジスタである指標レジスタに記憶される指標値を桁送り
することによって実施される。
指標付けの間、操作の状態に基づいてビットは左方又は
右方にシフト・アウトされる。
右方にシフト・アウトされる。
匍脚フロツプ即ち本発明の説明のためには詳細に示す必
要のないハードウエア・フロツプ54にはいぐつかのフ
ロツプが含まれる。
要のないハードウエア・フロツプ54にはいぐつかのフ
ロツプが含まれる。
その1つは、その時点で実行中の命令が記憶照合命令で
あるかどうかの追跡の維持に用いられる。
あるかどうかの追跡の維持に用いられる。
FFSIGNフロツプは16ビットのアドレス値を20
ビットに符号付き拡張するのに使用される。
ビットに符号付き拡張するのに使用される。
FFWRAPフロツプは計算されたアドレスが無効であ
ることを想起するために使用される。
ることを想起するために使用される。
別のものはRALU12の出力がある前の時点で零であ
ったかどうかの事実の記憶に用いられる。
ったかどうかの事実の記憶に用いられる。
前述の如く、Fレジスタ36は、実際には12ビットの
スタティック型レジスタ(命令(F)レジスタ36)と
4ビットのダイナミック型カウンタ(選択(SEL)レ
ジスタ37)である。
スタティック型レジスタ(命令(F)レジスタ36)と
4ビットのダイナミック型カウンタ(選択(SEL)レ
ジスタ37)である。
SELレジスタ37における右方の4ビツト、即ちビッ
ト12乃至15は、零迄カウント・ダウンできその内容
が次の生成アドレス・ロジックによる使用についてテス
トできるカウンタとして使用される。
ト12乃至15は、零迄カウント・ダウンできその内容
が次の生成アドレス・ロジックによる使用についてテス
トできるカウンタとして使用される。
これは、桁送りのカウンタのため用いられる、即ちSE
Lレジスタ37はある桁送りの実施中に桁送りの距離で
ロードされる。
Lレジスタ37はある桁送りの実施中に桁送りの距離で
ロードされる。
又、これはメモリーにおけるレジスタを保管し復元して
レジスタ・ファイル70における16個のレジスタを連
続的にカウントするのである。
レジスタ・ファイル70における16個のレジスタを連
続的にカウントするのである。
テスト・ロジック50は、種々の制御ストアとOPコー
ドの条件によって使用町能となる複数個のセレクタを含
み、一般にファームウエアの実行中に決定を行うために
ファームウエアと共に使用されるテストを実施する。
ドの条件によって使用町能となる複数個のセレクタを含
み、一般にファームウエアの実行中に決定を行うために
ファームウエアと共に使用されるテストを実施する。
ロジック80と82は、加算器96の出力をレジスタ・
ファイル10に転送するか、Qレジスタ76に転送する
力入あるいは1ビットだけ左方又は右方に桁送りされた
加算器96の出力を与えることができるRALU12の
該当部分である。
ファイル10に転送するか、Qレジスタ76に転送する
力入あるいは1ビットだけ左方又は右方に桁送りされた
加算器96の出力を与えることができるRALU12の
該当部分である。
ロジック80は直接レジスタ・ファイル70におけるレ
ジスタに結合されている。
ジスタに結合されている。
もしレジスタ・ファイル70への入力が右方又は左方に
1ビットたけ桁送りされるならば、適当な桁送り入力が
加算器96の出力側から与えられて不明のビットを提供
し、他のビットは転送され終る。
1ビットたけ桁送りされるならば、適当な桁送り入力が
加算器96の出力側から与えられて不明のビットを提供
し、他のビットは転送され終る。
レジスタ・ファイル70に含まれるDレジスタ(DO)
は指標値を保持するレジスタである。
は指標値を保持するレジスタである。
左方のセレクタ・ロジック60、右方セレクタロジック
62 選択変更ロジック58も又、MLU12の匍脚ロジック
の一部からなる。
62 選択変更ロジック58も又、MLU12の匍脚ロジック
の一部からなる。
制御ストア・ビット1乃至γと共に選択変更ロジック5
8の出力は、それぞれ左右のセレクタ60と62の出力
を決定する制御ストアのビット9乃至19はMLU12
のロジックの下記の領域を制御する。
8の出力は、それぞれ左右のセレクタ60と62の出力
を決定する制御ストアのビット9乃至19はMLU12
のロジックの下記の領域を制御する。
即ち、ビット9乃至11は入出力マルチプレクサ80,
82,98を制御し、ビット12は加算装置96の桁上
げインジエクトを、ビット13乃至15は加算器96プ
ラスインバータ92と94を、ビット17乃至19はマ
ルチプレクサ88と90を制御する。
82,98を制御し、ビット12は加算装置96の桁上
げインジエクトを、ビット13乃至15は加算器96プ
ラスインバータ92と94を、ビット17乃至19はマ
ルチプレクサ88と90を制御する。
制御ストアのビット16は、RALUが第2A図に関し
て以下に記述するように2つの20ビット・オペランド
又は1つの16ビット・オペランド、および1つの20
ビット・オペランドを操作すべきかどうかを制御する。
て以下に記述するように2つの20ビット・オペランド
又は1つの16ビット・オペランド、および1つの20
ビット・オペランドを操作すべきかどうかを制御する。
次に第2A図において、5つの4ビット・マルチプレク
サが一諸にカスケード構成されて第2図に示される20
ビットのマイクロプロセサを構成する一般的方法を示し
ている。
サが一諸にカスケード構成されて第2図に示される20
ビットのマイクロプロセサを構成する一般的方法を示し
ている。
マイクロプロセサMP1乃至MP5の要素508乃至5
16は、各各が内部バス28からのデータの4ビットを
受取り、内部バス28に対して演算結果の4ビットを出
力することができるよう内部バス28に接続される。
16は、各各が内部バス28からのデータの4ビットを
受取り、内部バス28に対して演算結果の4ビットを出
力することができるよう内部バス28に接続される。
例えば、マイクロプロセサ1(MP1)は内部バスから
ビット0C乃至0Fを受取って、内部バス28にビット
0C乃至0Fをおく。
ビット0C乃至0Fを受取って、内部バス28にビット
0C乃至0Fをおく。
本発明の望ましい実施態様において使用されるマイクロ
プロセサは主として9ビットの情報によって制御される
。
プロセサは主として9ビットの情報によって制御される
。
第2A図においてS0乃至S2と表示される入力を有す
る3ビットのソース・フィールドは、マイクロプロセサ
により操作されるべき1つのオペランドに対する8つの
ソースの1つを選択するために用いられる。
る3ビットのソース・フィールドは、マイクロプロセサ
により操作されるべき1つのオペランドに対する8つの
ソースの1つを選択するために用いられる。
第2の3ビットフィールドは、どの演算操作がマイクロ
プロセサによって実施されるべきでありこれ等3ビット
が第2A図においてF0乃至F2と表示されるかを表示
する機能フィールドである。
プロセサによって実施されるべきでありこれ等3ビット
が第2A図においてF0乃至F2と表示されるかを表示
する機能フィールドである。
第3の3ビットフィールドはマイクロプロセサの操作に
よって生じた結果の宛先を表示し、これ等3つのビット
は第2A図には示されない。
よって生じた結果の宛先を表示し、これ等3つのビット
は第2A図には示されない。
前述の如く、制御ストア・ビット16は、RALUが2
つの20ビット・オペランド又は1つの16ビット・オ
ペランド、および1つの20ビット・オペランドを操作
すべきかどうかを制御する。
つの20ビット・オペランド又は1つの16ビット・オ
ペランド、および1つの20ビット・オペランドを操作
すべきかどうかを制御する。
これが行われる方法は第2A図に示される。
7ワツド2対1マルチプレクサ506は、マイクロプロ
セサMPI乃至MP5の制御フィールドに入力されるべ
き原機能又は別の機能およびソース信号間を選択するた
めに使用される。
セサMPI乃至MP5の制御フィールドに入力されるべ
き原機能又は別の機能およびソース信号間を選択するた
めに使用される。
もしANDゲート504の出力側の選択信号が2進数1
であるならば、マルチプレクサ506はマルテプレクサ
入力IB0乃至IB3を選択し、これ等入力をそれぞれ
マルチプレクサ出力C0乃至C3におく。
であるならば、マルチプレクサ506はマルテプレクサ
入力IB0乃至IB3を選択し、これ等入力をそれぞれ
マルチプレクサ出力C0乃至C3におく。
この場合、回線MF0上のマルテプレクサ出力はRF0
(原機能、ビット0)、回線MFI上の出力は原機能コ
ード・ビット1であり回線MF2の出力は原機能コード
、ビット2となり、回線MSI上の出力は原ソース・コ
ードのビット1となることが判る。
(原機能、ビット0)、回線MFI上の出力は原機能コ
ード・ビット1であり回線MF2の出力は原機能コード
、ビット2となり、回線MSI上の出力は原ソース・コ
ードのビット1となることが判る。
第4図に関して以下に論述するように、制御ストア・ビ
ット12乃至15はRALU機能(AF)フィールドを
構成し、マイクロプロセサにより実施される機能を制御
するために使用される。
ット12乃至15はRALU機能(AF)フィールドを
構成し、マイクロプロセサにより実施される機能を制御
するために使用される。
制御ストア・ビット16乃至19はRALUソース(A
S)フィールドであり、マイクロプロセサに対するソー
ス入力を制御するのに用いられる。
S)フィールドであり、マイクロプロセサに対するソー
ス入力を制御するのに用いられる。
このように第2A図を見れば判るように、マルチプレク
サ506へのB入力はANDゲート504の出力の2進
数1によって選択され、各マイクロプロセサのソースお
よび機能フィールドは制御ストア10からのマイクロワ
ードのAPおよびASフィールドにより制御され、20
ビット・オペランドはこれについて実施される同じ機能
を有する各4ビット・スライズで操作される。
サ506へのB入力はANDゲート504の出力の2進
数1によって選択され、各マイクロプロセサのソースお
よび機能フィールドは制御ストア10からのマイクロワ
ードのAPおよびASフィールドにより制御され、20
ビット・オペランドはこれについて実施される同じ機能
を有する各4ビット・スライズで操作される。
あるいは、交互の機能ビットとソース・ビットは2進数
零であるANDゲート504の出力により選択でき、こ
の場合入力IAO乃至IA3はそれそ゛れマルチプレク
サ506の出力CO乃至C3に転送される。
零であるANDゲート504の出力により選択でき、こ
の場合入力IAO乃至IA3はそれそ゛れマルチプレク
サ506の出力CO乃至C3に転送される。
この場合、マイクロプロセサMP2乃至MP5は変更さ
れた機能ビツトMFO乃至MF1からその機能ビットF
0乃至F1を受堆り、マイクロプロセサMP1はそれぞ
れ回線RFOおよびRF1上の制御ストア10の原機能
ビットからその機能ビットFO乃至F1を受取る。
れた機能ビツトMFO乃至MF1からその機能ビットF
0乃至F1を受堆り、マイクロプロセサMP1はそれぞ
れ回線RFOおよびRF1上の制御ストア10の原機能
ビットからその機能ビットFO乃至F1を受取る。
MP1は又マルチプレクサ506の出力側から変更され
た機能ビット2(MF2)を受取り、マイクロプロセサ
MP2乃至MP5は直接制御ストア10のビット15か
らの回線RF2の原機能ビット2からその機能ビット2
を受取る。
た機能ビット2(MF2)を受取り、マイクロプロセサ
MP2乃至MP5は直接制御ストア10のビット15か
らの回線RF2の原機能ビット2からその機能ビット2
を受取る。
同様に、マルチプレクサ506に対するA入力がAND
ゲート504の出力側の2進数1の信号により選択され
る時、マイクロプロセサMP2乃至MP2はマルチプレ
クサ506の出力側のMS1回線からそのS1ソース信
号を受取り、制御ストア・ビット17と19から直接そ
れぞれ原ソース信号RS0およびRS2からそのSOお
よびS2ソース信号を受取る。
ゲート504の出力側の2進数1の信号により選択され
る時、マイクロプロセサMP2乃至MP2はマルチプレ
クサ506の出力側のMS1回線からそのS1ソース信
号を受取り、制御ストア・ビット17と19から直接そ
れぞれ原ソース信号RS0およびRS2からそのSOお
よびS2ソース信号を受取る。
マイクロプロセサMP1は制御ストア10のビット17
乃至19から直接にそのソース・ビットS0乃至S2を
常に受取ることが判る。
乃至19から直接にそのソース・ビットS0乃至S2を
常に受取ることが判る。
このように5つの4ビット・マイクロプロセサを制御す
ることにより、マイクロプロセサ1は1セットの制御信
号により制御されマイクロプロセサMP2乃至MP5は
マルチプレクサ506を経て別の信号が選択される時別
のセットの制御信号により制御され、最初に16ビット
・オペランドの4ビットを左方に符号付き拡張する必要
もなく16ビット・オペランドと20ビット・オペラン
ドに関してマイクロフ宅セサを操作させることができる
。
ることにより、マイクロプロセサ1は1セットの制御信
号により制御されマイクロプロセサMP2乃至MP5は
マルチプレクサ506を経て別の信号が選択される時別
のセットの制御信号により制御され、最初に16ビット
・オペランドの4ビットを左方に符号付き拡張する必要
もなく16ビット・オペランドと20ビット・オペラン
ドに関してマイクロフ宅セサを操作させることができる
。
即ち、このようにマイクロプロセサを制御することによ
って、2つのオペランドの短い方の符号を拡張する1つ
以上の対向のマイクロ命令ステップを必要とすることな
く16ビット・オペランドは自動的にその4つの最上位
ビットに符号付き拡張されることができる。
って、2つのオペランドの短い方の符号を拡張する1つ
以上の対向のマイクロ命令ステップを必要とすることな
く16ビット・オペランドは自動的にその4つの最上位
ビットに符号付き拡張されることができる。
16ビット・オペランドの最上位ビット即ちビット10
(BI10)は符号フロツプ(FFSIGN)502の
セットに用いられ、その出力は回線AF2上の別の機能
ビット2としてマルチプレクサ506のA入力に送られ
ることが判る。
(BI10)は符号フロツプ(FFSIGN)502の
セットに用いられ、その出力は回線AF2上の別の機能
ビット2としてマルチプレクサ506のA入力に送られ
ることが判る。
更に、以下に記述するように、ASフィールドの制御ス
トアのワード・ビット16はANDゲート504に対す
る入力であり、2進数1の時ANDゲート504をして
マイクロプロセサMP1乃至MP5に対する別の機能ビ
ットおよびソース制御ビットを選択することを部分的に
可能にすることも判る。
トアのワード・ビット16はANDゲート504に対す
る入力であり、2進数1の時ANDゲート504をして
マイクロプロセサMP1乃至MP5に対する別の機能ビ
ットおよびソース制御ビットを選択することを部分的に
可能にすることも判る。
即ち、制御ストア・ビット16は、2つの20ビット・
オペランドが操作されるべきかどうか、あるいは1つの
20ビットと1つの16ビットのオペランドがマイクロ
プロセサにより操作されるべきかを部分的に制御する。
オペランドが操作されるべきかどうか、あるいは1つの
20ビットと1つの16ビットのオペランドがマイクロ
プロセサにより操作されるべきかを部分的に制御する。
ANDゲート504に対する他の入力は信号RD07で
、これは2進数1がデータ・レジスタD0乃至D7に含
まれるオペランドについて操作が行われることを表示す
る。
、これは2進数1がデータ・レジスタD0乃至D7に含
まれるオペランドについて操作が行われることを表示す
る。
信号AF0,AF1,AF2およびAS1が16ビット
・オペランドの20ビット・オペランドへの符号付き拡
張を有効化するように選択されることが判る。
・オペランドの20ビット・オペランドへの符号付き拡
張を有効化するように選択されることが判る。
これ等の信号の発生は第2A図には示されないが、当業
者ならばいかにしてこれ等信号が制御ストアと他の中央
プロセサ信号の使用によって生成されるかについては容
易に理解される。
者ならばいかにしてこれ等信号が制御ストアと他の中央
プロセサ信号の使用によって生成されるかについては容
易に理解される。
例えば、16ビットの指標値を20ビットの基準アドレ
スに加算するためには、16ビットの指標値はビット1
0乃至1F(MP2乃至MP5)へ出所を求め、4つの
2進数零又は4つの2進数1は指標値の符号(ビット1
0)が正か負かに従ってその出所をビット0C乃至0F
(MP1)とする。
スに加算するためには、16ビットの指標値はビット1
0乃至1F(MP2乃至MP5)へ出所を求め、4つの
2進数零又は4つの2進数1は指標値の符号(ビット1
0)が正か負かに従ってその出所をビット0C乃至0F
(MP1)とする。
前述の如く、制御ストア10は、プロセサ内の種々の操
作の制御に使用するため複数のファームウェア・ワード
からなる。
作の制御に使用するため複数のファームウェア・ワード
からなる。
第3図は、このようなファームウエアの全体図で、主な
ファームウエア・ルーチン間の全ての主な分岐を示す。
ファームウエア・ルーチン間の全ての主な分岐を示す。
以下はその全般的説明である。
本発明に関するこのようなファームウエアの更に詳細に
ついては以下に説明される。
ついては以下に説明される。
初期設定ルーチン110はシステムのマスタークリアに
続いて入る。
続いて入る。
このルーチンは種々のプロセサ・レジスタ、フリツプフ
ロツプ、RAM13をクリアし、制■パネルがロックさ
れるかどうか、即ち全ての制御パネル・スイッチ等が使
用禁止されるかを決定し、制御パネルはプロセサに含ま
れるもその操作にとって必須のものでもなく又本文中で
説明もしない別の要素である。
ロツプ、RAM13をクリアし、制■パネルがロックさ
れるかどうか、即ち全ての制御パネル・スイッチ等が使
用禁止されるかを決定し、制御パネルはプロセサに含ま
れるもその操作にとって必須のものでもなく又本文中で
説明もしない別の要素である。
もし制御パネルがロックされると、命令取出しルーチン
112を経て分岐が行われ、さもなければ制御パネル・
ルーチン132に入る。
112を経て分岐が行われ、さもなければ制御パネル・
ルーチン132に入る。
命令取出しルーチン112は実行のための次の命令を得
るために用いられる。
るために用いられる。
一たん命令がメモリーから受取られると、命令レジスタ
(F)36にロードされる。
(F)36にロードされる。
命令の複写は制御パネルサービス・ルーチンに対してD
0に書込まれ、トラップが生じる場合RAM0に書込ま
れる。
0に書込まれ、トラップが生じる場合RAM0に書込ま
れる。
XFルーチンの間、以下の条件に対し検査が行われる。
即ち、(i)外部プロセサ・トラップ、(ii)監視タ
イマー即ち所要の実時間クロツク・サービス、(iii
)装置割込み、又は(iv)アンロツクされた匍祈パネ
ルである。
イマー即ち所要の実時間クロツク・サービス、(iii
)装置割込み、又は(iv)アンロツクされた匍祈パネ
ルである。
もしこの条件のいずれかに遭遇すれば適当なルーチンに
対し分岐が行われ、さもなければアドレス・ルーチン(
113,115又は116)に入る。
対し分岐が行われ、さもなければアドレス・ルーチン(
113,115又は116)に入る。
アドレス・ルーチンは有効なアドレス生成を開始する。
アドレス・ルーチンは3つのルーチン113,115,
116に再分割される。
116に再分割される。
総命令アドレス・ルーチン113は、任意の市販の命令
プロセサにより実行される命令がアドレス生成ルーチン
114を呼出しても、例えば停止命令の如き上位命令を
完全に実行するために使用される。
プロセサにより実行される命令がアドレス生成ルーチン
114を呼出しても、例えば停止命令の如き上位命令を
完全に実行するために使用される。
分岐命令アドレス・ルーチン115は分岐命令アドレス
生成のために使用される。
生成のために使用される。
アドレス生成ルーチン116は、非分岐命令および非上
位命令に対するアドレス生成のために使用される。
位命令に対するアドレス生成のために使用される。
もし有効アドレスがレジスタであるか、オペランドが即
時であれば、アドレス生成ルーチン116は命令実行ル
ーチン120を呼出し、さもなければ間接ルーテン即ち
指標ルーチン117を呼出す。
時であれば、アドレス生成ルーチン116は命令実行ル
ーチン120を呼出し、さもなければ間接ルーテン即ち
指標ルーチン117を呼出す。
間接即ち指標ルーチン117は、インデイレクション、
指標付け、およびスタック/待合せリミット・チェツキ
ングを実施する。
指標付け、およびスタック/待合せリミット・チェツキ
ングを実施する。
オペランド読出しルーチン118は、もし命令がこれを
要求すればあるオペランドを取出す。
要求すればあるオペランドを取出す。
飛越し命令の如くある命令はオペランド読出しルーチン
118の内部で実行される。
118の内部で実行される。
実行ルーチン120は、命令が実行されるいくつかの命
令コード従属エントリ・ポイントの1つを生成する。
令コード従属エントリ・ポイントの1つを生成する。
書込みルーチン122は、命令が実行された後その結果
を記憶する。
を記憶する。
このルーチンには、実行中の命令がその結果をアドレス
・シラブルにより指定される位置に戻さねばならない時
にのみ入る。
・シラブルにより指定される位置に戻さねばならない時
にのみ入る。
9つのエントリ・ポイントが使用可能である。
使用された特定のエントリ・ポイントは、その結果がメ
モリーに行くかレジスタに行くか、結果がアドレスかデ
ータか、又これが半ワード・オペランド命令が完全ワー
ド・オペランド命令かに基づく。
モリーに行くかレジスタに行くか、結果がアドレスかデ
ータか、又これが半ワード・オペランド命令が完全ワー
ド・オペランド命令かに基づく。
トラップ・ルーチン126には、トラップ条件が検出さ
れる時ファームウエア内の多くの記憶場所のいずれか1
つから入る。
れる時ファームウエア内の多くの記憶場所のいずれか1
つから入る。
一般に、トラップは矛期されるかあるいは予期されない
。
。
例えば、予期されるトラップの非構成命令に対する照合
は操作可能であるが、エラー条件例えば訂正不可能な記
憶エラーから生じるトラップは通常回復不能である。
は操作可能であるが、エラー条件例えば訂正不可能な記
憶エラーから生じるトラップは通常回復不能である。
割込みルーチン128には、中央プロセサによりその時
点で行われている操作に従って多数のソースから入る。
点で行われている操作に従って多数のソースから入る。
このようなソースは例えば下記のものを含む。
即ち最終トラップ保管域、プログラムされた割込み、外
部装置のタスク完了、実時間クロツク・ランアウト、監
視タイマー・ランアウト、又は不測の電源故障である。
部装置のタスク完了、実時間クロツク・ランアウト、監
視タイマー・ランアウト、又は不測の電源故障である。
クロックの監視タイマーおよび実時間クロツク・ルーチ
ン130には5ミリ秒毎に入り、もし使用可能の状態な
らばレベル・アカウント・タイマーが更新される。
ン130には5ミリ秒毎に入り、もし使用可能の状態な
らばレベル・アカウント・タイマーが更新される。
一たんこれ等のタスクが行われると、制御パネル・ルー
チン132に入る。
チン132に入る。
制御パネル・ルーチン132には、例えば8ミリ秒毎に
入って制御パネル・インターフェースにオペレータが例
えば新規の表示、レジスタ変更、メモリー読出し、メモ
リー書込み、又は単一実行を望むかどうかを判断するこ
とを質疑する。
入って制御パネル・インターフェースにオペレータが例
えば新規の表示、レジスタ変更、メモリー読出し、メモ
リー書込み、又は単一実行を望むかどうかを判断するこ
とを質疑する。
中央プロセサ(CPU)が実行モードにある時はこれ等
の操作のあるものは許容されない。
の操作のあるものは許容されない。
又、CPUおよび記憶ロジックの基本的信頼度テストを
行う品質論理テスト・ルーチン124が設けられる。
行う品質論理テスト・ルーチン124が設けられる。
このように、9つの主な分岐即ちXF、3つのXA,X
B,2つのXR,XE.およびXW分岐の使用を要約す
れば下記の如くである。
B,2つのXR,XE.およびXW分岐の使用を要約す
れば下記の如くである。
XF分岐はメモリーから命令を取出しこれをFレジスタ
36にロードするのに用い、XA分岐113はアドレス
生成と上位命令の実行に、XB分岐は市販の命令プロセ
サの命令アドレス生成に、XA分岐115は分岐命令ア
ドレス生成に、XAルーチン117は非分岐および非上
位命令アドレス生成に、XR分岐117は間接および指
標付けアドレス生成に、XR分岐118はFレジスタの
復号に基づくオペランドの読出しに、XE分岐120は
各種サフルーチン間の収集および実際のプロセサ命令の
実行に、XW分岐122は命令の実行後オペランドの記
憶が必要な時に使用される。
36にロードするのに用い、XA分岐113はアドレス
生成と上位命令の実行に、XB分岐は市販の命令プロセ
サの命令アドレス生成に、XA分岐115は分岐命令ア
ドレス生成に、XAルーチン117は非分岐および非上
位命令アドレス生成に、XR分岐117は間接および指
標付けアドレス生成に、XR分岐118はFレジスタの
復号に基づくオペランドの読出しに、XE分岐120は
各種サフルーチン間の収集および実際のプロセサ命令の
実行に、XW分岐122は命令の実行後オペランドの記
憶が必要な時に使用される。
ファームウエア・ワード制御様式は第4図に示す。
明らかなように、このファームウエア・ワードは14の
フィールドに分割される。
フィールドに分割される。
これ等フィールドの各々は、第1図および第2図および
他の図に示す如くハードウエア・ロジックの異なる部分
を制御する。
他の図に示す如くハードウエア・ロジックの異なる部分
を制御する。
フィールドを構成するビットも第4図に示される。
例えば、LSフィールドはファームウエア・ワードのビ
ット1乃至3からなる。
ット1乃至3からなる。
以下はこのような各フィールドおよびその一般的用途の
説明である。
説明である。
左方選択(LS)フィールドはファームウエア・ワード
のビット1乃至3からなる。
のビット1乃至3からなる。
このフィールドは2つの目的に役立つ。
選択変更(SM)フィールドと共に、このフィールドは
、RAM13の16の記憶場所の1つの選択、およびM
LU12の16個のレジスタ70の1つの選択のための
4ビット・アドレスを提供する。
、RAM13の16の記憶場所の1つの選択、およびM
LU12の16個のレジスタ70の1つの選択のための
4ビット・アドレスを提供する。
LSフィールドによって行われた選択はSMフィールド
による変更操作を受ける。
による変更操作を受ける。
LSフィールドは読出し操作の間だけ使用される。
LSフィールドが僅かに3ビットの長さであり、4ビッ
トはRAM13又はRALU12のいずれかを完全にア
ドレス指定するために必要であるため、1ビットが生成
されねばならない。
トはRAM13又はRALU12のいずれかを完全にア
ドレス指定するために必要であるため、1ビットが生成
されねばならない。
ファームウエア・ワードにはない2つの重みを有するビ
ットが4加重ビット又は1加重ビットのいずれかの存在
から生成される。
ットが4加重ビット又は1加重ビットのいずれかの存在
から生成される。
右方選択(RS)フィールドはファームウエア・ワード
のビット5乃至7からなる。
のビット5乃至7からなる。
3ビットのみが制御ストアにあって、これにより2加重
ビットがLSフィールドにおける如く生成されることを
要求する。
ビットがLSフィールドにおける如く生成されることを
要求する。
RSフィールドは右方選択人力62に4ビット・アドレ
スを提供して1つのオペランドをRALU内の右方ラツ
チ86を転送する。
スを提供して1つのオペランドをRALU内の右方ラツ
チ86を転送する。
RSフィールドは読出しおよび書込みの両操作に用いら
れる。
れる。
もしデータがレジスタ・ファイル70に書込まれると、
RSフィールドは新らしいデータがロードされるべき場
所を選択する。
RSフィールドは新らしいデータがロードされるべき場
所を選択する。
RSフィールドにおける如く、SMフィールドはRAL
Uの右方選択人力62に送られたアドレスを確認するた
め用いられる。
Uの右方選択人力62に送られたアドレスを確認するた
め用いられる。
中央プロセサPAC(CP−PI)フィールド(ビット
0,4、および8)は下記の事柄を確認する。
0,4、および8)は下記の事柄を確認する。
即ち、RALU12のどの部分が内部バス28におかれ
るか(もしあれば)、RAM13が内部バス28に転送
されるか、あるいは内部バス28にその時点で存在する
データがRAM13に書込まれるか、である。
るか(もしあれば)、RAM13が内部バス28に転送
されるか、あるいは内部バス28にその時点で存在する
データがRAM13に書込まれるか、である。
RALUの宛先(AD)フィールド(ビット9乃至11
)は、MLU出力が右方、左方に桁送りされるか、ある
いは全く桁送りが行われないかを判断する。
)は、MLU出力が右方、左方に桁送りされるか、ある
いは全く桁送りが行われないかを判断する。
ADフィールドは又この値がRAM13、Qレジスタ7
6、又はレジスタ・フイイル70に書込まれるかどうか
を管理する。
6、又はレジスタ・フイイル70に書込まれるかどうか
を管理する。
RALU機能(AF)フィールド(ビット12乃至15
)は、マルチプレクサ88と90の出力側の2つのオペ
ランドJ,Kについて行われる操作のタイプを匍脚する
。
)は、マルチプレクサ88と90の出力側の2つのオペ
ランドJ,Kについて行われる操作のタイプを匍脚する
。
内部バス28又はレジスタ・ファイルの左方ラッテ84
、又はレジスタ・ファイルの右方ラツチ86からのデー
タからなるJオペランドは又はRALUのソース・マル
チプレクサにおいて選択される。
、又はレジスタ・ファイルの右方ラツチ86からのデー
タからなるJオペランドは又はRALUのソース・マル
チプレクサにおいて選択される。
14の異なる論理機能が実施できる(例えば、ADD,
OR,AND等)APフィールドの最上位ビット(ビッ
ト12)は加算器96の入力桁上げを制御する。
OR,AND等)APフィールドの最上位ビット(ビッ
ト12)は加算器96の入力桁上げを制御する。
RALUソース(AS)フィールド(ビット16乃至1
9)は、オペランド(内部バス28、レジスタ・ファイ
ルの左方ラツチ84、レジスタ・ファイルの右方ラツチ
86、又はQレジスタ76)のどの対が加算器96に対
するJおよびK入力として表示されるかを管理する。
9)は、オペランド(内部バス28、レジスタ・ファイ
ルの左方ラツチ84、レジスタ・ファイルの右方ラツチ
86、又はQレジスタ76)のどの対が加算器96に対
するJおよびK入力として表示されるかを管理する。
APフィールドの最上位ビツト(ビツト12)は1つ又
は両方のオペランドを変更して16ビットの符号付き拡
張された値となる。
は両方のオペランドを変更して16ビットの符号付き拡
張された値となる。
プロセサ・クロツク(CK)の速度制御フィールド(ビ
ット20および21)は、例えば160,180,20
0又は280ナノ秒の間隔で4つの速度の1つでプロセ
サのクロツクを作用させる。
ット20および21)は、例えば160,180,20
0又は280ナノ秒の間隔で4つの速度の1つでプロセ
サのクロツクを作用させる。
各ファームウエアのステップの持続時間はこれによりC
Kフィールドによって制御される。
Kフィールドによって制御される。
内部バス(BI)セレクク制御フィールド(ビット22
乃至27)は4つの機能を行う。
乃至27)は4つの機能を行う。
即ち、ファームウエア定数(9ビットの符号付き拡張)
の生成、どのレジスタ70が内部バス28に送られるべ
きかの選択、どの信号が指標レジスタ16によりサンプ
ルされるかの決定、および外部プロセサとの通信のため
の制御ワードの生成である。
の生成、どのレジスタ70が内部バス28に送られるべ
きかの選択、どの信号が指標レジスタ16によりサンプ
ルされるかの決定、および外部プロセサとの通信のため
の制御ワードの生成である。
選択変更(SM)フィールド(ビット28乃至30)は
LSおよびRSフィールドに等しく影響を及ぼす。
LSおよびRSフィールドに等しく影響を及ぼす。
SMフィールド・コードが零である時、LSおよびRS
コードは直接左右のレジスタ・ファイル70のポートを
アドレス指定する。
コードは直接左右のレジスタ・ファイル70のポートを
アドレス指定する。
SM7イールド・コード1,2および6は、Fレジスタ
36とSELレジスタ37の1:3ビット・グループを
RSおよびLSアドレスとANDさせ、その結果を左右
のレジスタ・ファイル70のポートに指向する。
36とSELレジスタ37の1:3ビット・グループを
RSおよびLSアドレスとANDさせ、その結果を左右
のレジスタ・ファイル70のポートに指向する。
SMフィールド・コード3,5,7は、RSおよびLS
アドレスとANDされて独自のレジスタ・ファイル70
のアドレスを生成する定数を生じる。
アドレスとANDされて独自のレジスタ・ファイル70
のアドレスを生成する定数を生じる。
アドレス・バス(BS)制御フィールド(ビット31乃
至35)は3つの機能を行う。
至35)は3つの機能を行う。
即ち、アドレス・バス・サイクルの開始、メモリー・ア
ドレス(Y)レジスタ22とプログラム・カウンタ(P
)レジスタ20の両方のローデイングと増分の匍獅、お
よびデータがメモリーから要求されるか入出力データが
未だ到着しない時にメモリー要求が満たされる迄BSフ
ィールドによる中央プロセサのクロツクのストールであ
る。
ドレス(Y)レジスタ22とプログラム・カウンタ(P
)レジスタ20の両方のローデイングと増分の匍獅、お
よびデータがメモリーから要求されるか入出力データが
未だ到着しない時にメモリー要求が満たされる迄BSフ
ィールドによる中央プロセサのクロツクのストールであ
る。
汎用(GP)マイクロ・オペレーション・フィールド(
ビット36乃至41)は合計64のマイクロ・オペレー
ションを生じる。
ビット36乃至41)は合計64のマイクロ・オペレー
ションを生じる。
この64のマイクロ・オペレーションは4つのグループ
に分類される。
に分類される。
第1のグループは、FFSIGN,ZFROおよびその
他のフロツプ54と共にXBレジスタ32に作用を及ぼ
す。
他のフロツプ54と共にXBレジスタ32に作用を及ぼ
す。
第2のグループは、Fレジスタ36,SELレジスタ3
1 41、ならびにFFMISC制御フロツプに作用を及ぼ
す。
1 41、ならびにFFMISC制御フロツプに作用を及ぼ
す。
第3のグループは、ブートストラップおよびアドレス循
環制御(FFWRAP)フロツプならびにSレジスタ1
4,Mコレクタ、およびリンクレジスタ51に作用を及
ぼす。
環制御(FFWRAP)フロツプならびにSレジスタ1
4,Mコレクタ、およびリンクレジスタ51に作用を及
ぼす。
第4のグループは、匍脚パネル機能のために用いられる
。
。
テスト条件(TC)フィールド(ビット42乃至47)
は、ファームウエアが分岐できる64の独自の信号の1
つをサンプルする。
は、ファームウエアが分岐できる64の独自の信号の1
つをサンプルする。
分岐タイプ(BR)フィールド(ビット48乃至51)
は、次のファームウェア・ステップのアドレスを生じる
よう選択されたアドレス・ソースを選択する。
は、次のファームウェア・ステップのアドレスを生じる
よう選択されたアドレス・ソースを選択する。
各ファームウェア・ステップはテスト条件を含み、満足
(真)又は不満足(偽)のテスト条件の結果を生じる。
(真)又は不満足(偽)のテスト条件の結果を生じる。
BRフィールドは2つのアドレスを与え、これから真又
は偽の条件が選択されねばならない。
は偽の条件が選択されねばならない。
BSフィールドが選択するアドレス・ソースの内、次の
アドレス指定(NA)フィールド(ビット53乃至63
)が制御ストアにおいて符号化されるものとして屡々用
いられ、その2つの最下位ビットは真、即ち値3に等し
い。
アドレス指定(NA)フィールド(ビット53乃至63
)が制御ストアにおいて符号化されるものとして屡々用
いられ、その2つの最下位ビットは真、即ち値3に等し
い。
匍脚ストア・ワード・ビット52は使用されずに将来の
使用のため確保される。
使用のため確保される。
以下は、第3図の命令取出しルーチン112とアドレス
・ルーチン113,115,116の詳細な説明である
。
・ルーチン113,115,116の詳細な説明である
。
第5図(第5A図乃至第5D図)において、命令取出し
ルーチンはブロック200と202を有する。
ルーチンはブロック200と202を有する。
第5図の残りのブロックはXAルーチンの一部を示す。
第5図に示された各各の矩形ブロックは制御ストア10
からのファームウエア・ワードに応答して行われる操作
を示す。
からのファームウエア・ワードに応答して行われる操作
を示す。
判断ボックスは実際には直前の矩形ブロックの一部とし
て含まれるが、理解を容易にするため別個に示した。
て含まれるが、理解を容易にするため別個に示した。
XFおよびXAルーチンにおいては種種のレジスタが使
用される。
用される。
以下はこのようなレジスタの=般的説明であり、その内
のある論議は便宜のため繰返される。
のある論議は便宜のため繰返される。
Pレジスタ20即ちプログラム・カウンタはその時点で
実行中の命苓のアドレスを含む。
実行中の命苓のアドレスを含む。
プログラム・カウンタ20の出力は内部バス28に結合
される。
される。
1つの命令は1つ以上の記憶ワードを占有できるため、
各命令ワードがファームウェアによってメモリーから引
出される時Pレジスタは増分され、こうしてPレジスタ
20は使用される次の手順ワードを指示し続けさせられ
る。
各命令ワードがファームウェアによってメモリーから引
出される時Pレジスタは増分され、こうしてPレジスタ
20は使用される次の手順ワードを指示し続けさせられ
る。
カウンタ(CTR)33は、もし命令の実行中見出され
たある無効条件の故にトラップが生じるならば、例えば
命令アドレスが存在しない記憶場所を指示するならば、
Pレジスタが命令の第1ワードを指示するよう支持でき
るように、現行の命令がいくつの記憶ワードを占有する
かについての追跡を維持するために用いられる。
たある無効条件の故にトラップが生じるならば、例えば
命令アドレスが存在しない記憶場所を指示するならば、
Pレジスタが命令の第1ワードを指示するよう支持でき
るように、現行の命令がいくつの記憶ワードを占有する
かについての追跡を維持するために用いられる。
Yレジスタ22はオペランド・アドレス・レジスタで、
実行中の命令により指示されるオペランドのアドレスを
一時的に保持する。
実行中の命令により指示されるオペランドのアドレスを
一時的に保持する。
Hレジスタ41は、1つのワードの左右バイトの交換、
例えば半ワード読出し又は書込み操作において、又第2
のワードが検索されHレジスタにおける4つの最下位ビ
ットが第2ワードの16ビットと連結されて20ビット
・アドレスを形成する迄LAFアドレスの第1ワードを
一時点に保持するために用いられる。
例えば半ワード読出し又は書込み操作において、又第2
のワードが検索されHレジスタにおける4つの最下位ビ
ットが第2ワードの16ビットと連結されて20ビット
・アドレスを形成する迄LAFアドレスの第1ワードを
一時点に保持するために用いられる。
RALU12のレジスタ・ファイル70に含まれるEレ
ジスタは作業レジスタで、これはファームウエア操作に
おいてデータ操作のために用いられる。
ジスタは作業レジスタで、これはファームウエア操作に
おいてデータ操作のために用いられる。
指標付けされた操作の間、Eレジスタは指標値を含む。
又Qレジスタ76もRALU12に含まれ、2倍長オペ
ランドの桁送りのために提供され、一般に指標付けされ
ないアドレスを含む。
ランドの桁送りのために提供され、一般に指標付けされ
ないアドレスを含む。
Fレジスタ36は命令レジスタで、メモリーから命令ワ
ードを受取る時これを保持する。
ードを受取る時これを保持する。
Dレジスタはレジスタ・ファイル70に含まれ、作業レ
ジスタであり、即ちEレジスタとしてデータを操作する
ために使用される。
ジスタであり、即ちEレジスタとしてデータを操作する
ために使用される。
XBレジスタ32は4ビット・レジスタで、プロセサ内
でのビットおよびバイトの指標付けのために使用される
。
でのビットおよびバイトの指標付けのために使用される
。
このレジスタの出力は、内部バス28と16進デコーダ
・ロジック34に結合される。
・ロジック34に結合される。
他の要素については以下の論述において全般的に記述す
る。
る。
命令取出しルーチン即ちXFルーチンについて、メモリ
ーからある手順ワードを受取ると同時に、ブロック20
0に含まれる操作が行われる。
ーからある手順ワードを受取ると同時に、ブロック20
0に含まれる操作が行われる。
ブロック200に示されるように、手順ワードが然るべ
く受取られる迄は操作は一切生じない。
く受取られる迄は操作は一切生じない。
このことはワードPSTALLにより示される。
手順記憶読出しサイクル開始(RMRCI)は、命令取
出しルーチン112に入る前に命令ルーチン110にお
いて行われた。
出しルーチン112に入る前に命令ルーチン110にお
いて行われた。
命令(手順)ワードがいかにしてメモリーから取出され
て手順(P1およびP2)レジスタ25.27にゲート
され、又データ(オペランド)ワードがいかにしてメモ
リーから取出されてデータ(DT)レジスタにゲートさ
れるかの論議については、本文中に参考のため引用され
た1978年1月5日出願のR.A.リメイ(Lema
y)等の米国特許出願「多重情報要求を行う機能を有す
るシステム」に見出される。
て手順(P1およびP2)レジスタ25.27にゲート
され、又データ(オペランド)ワードがいかにしてメモ
リーから取出されてデータ(DT)レジスタにゲートさ
れるかの論議については、本文中に参考のため引用され
た1978年1月5日出願のR.A.リメイ(Lema
y)等の米国特許出願「多重情報要求を行う機能を有す
るシステム」に見出される。
一たん手順ワードが受取られると、プログラム・カウン
タ即ちPレジスタ20が1だけ増分され、カウンタ33
は1にセットされる。
タ即ちPレジスタ20が1だけ増分され、カウンタ33
は1にセットされる。
手順バツファ(BP)即ちP1又はP2手順レジスタ2
5又は27からの手順ワードは次に内部バス(BI)2
8を経てRAM13の場所0(RAM0)、Fレジスタ
36(SELレジスタ37を含む)、およびDレジスタ
にロードされる。
5又は27からの手順ワードは次に内部バス(BI)2
8を経てRAM13の場所0(RAM0)、Fレジスタ
36(SELレジスタ37を含む)、およびDレジスタ
にロードされる。
メモリーから受取った命令(手順)ワードは、制御パネ
ルのサービス・ルーチン132によって使用されるよう
Dレジスタにロードされ、又外部プロセサ・トラップの
場合にトラップ・ルーチン126により使用されるよう
にRAMの場所0にロードされる。
ルのサービス・ルーチン132によって使用されるよう
Dレジスタにロードされ、又外部プロセサ・トラップの
場合にトラップ・ルーチン126により使用されるよう
にRAMの場所0にロードされる。
第1のフロツプ(FFIRST)は2進数1にセットさ
れる。
れる。
FFIRSTは主としてXRルーチンにより使用され、
XRルーチン内でファームウエア・ステップが実行され
る回数を制御する。
XRルーチン内でファームウエア・ステップが実行され
る回数を制御する。
ブロック200で示されるファームウエア操作が完了す
ると、ブロック202に入る。
ると、ブロック202に入る。
この場合、一般に種々のファームウエア・ワードの実行
間にテストが行われることに留意されたい。
間にテストが行われることに留意されたい。
例えば、ブロック200により示されるファームウエア
操作の完了時に、もし例えば外部トラップ即ち割込みが
ある時この要求はサービスされるならば、ブロック20
2には入らない。
操作の完了時に、もし例えば外部トラップ即ち割込みが
ある時この要求はサービスされるならば、ブロック20
2には入らない。
しかし、手順メモリー読出しサイクル開始(PMRCI
)に続いてブロツク202に入るものとすれば、プログ
ラム・カウンタ20はアドレス・バス・マルチプレクサ
(BA)56を経て内部バス28とRAM13の場所8
(RAM8)にロードされる。
)に続いてブロツク202に入るものとすれば、プログ
ラム・カウンタ20はアドレス・バス・マルチプレクサ
(BA)56を経て内部バス28とRAM13の場所8
(RAM8)にロードされる。
次に、内部バスの内容(即ち、プログラム・カウンタ)
は1だけ減分されてQレジスタ76におかれる。
は1だけ減分されてQレジスタ76におかれる。
このように、ファームウエア・ワード200,202に
よって行われる操作を要約すれば、ファームウエアはメ
モリーからの手順の第1ワードの受取りを待機し、プロ
グラム・カウンタ20は増分されてデータの次のワード
を指示し、カウンタ(CTR)33は1にセットされて
手順の1ワードが現行命令において取出されたことを表
示し、この命令の第1ワードはFレジスタ36におかれ
、FFIRSTフロツプはXRルーチンにより後で使用
されるよう1にセットされ、手順メモリ一読出しサイク
ルが開始されてその結果もしP1レジスタ25とP2レ
ジスタ27の相方が空であれば手順ワードがメモリーか
ら取出され、Pレジスタ20の値はRAM13の場所8
におかれ、現行命令の第1ワードのアドレスはQレジス
タ76におかれる。
よって行われる操作を要約すれば、ファームウエアはメ
モリーからの手順の第1ワードの受取りを待機し、プロ
グラム・カウンタ20は増分されてデータの次のワード
を指示し、カウンタ(CTR)33は1にセットされて
手順の1ワードが現行命令において取出されたことを表
示し、この命令の第1ワードはFレジスタ36におかれ
、FFIRSTフロツプはXRルーチンにより後で使用
されるよう1にセットされ、手順メモリ一読出しサイク
ルが開始されてその結果もしP1レジスタ25とP2レ
ジスタ27の相方が空であれば手順ワードがメモリーか
ら取出され、Pレジスタ20の値はRAM13の場所8
におかれ、現行命令の第1ワードのアドレスはQレジス
タ76におかれる。
この時、アドレス・ルーチン113,115,116に
入る。
入る。
例えば、ブロック200と202によって示されるファ
ームウエア・ワードに関しては、プログラム・カウンタ
20のアドレスがメモリーの記憶場所100であるもの
とすれば、ブロック200内で操作が表示された後、P
レジスタ20は場所101を表示し、メモリーの場所1
00の内容はFレジスタ36、Dレジスタ、およびRA
M13の場所0におかれる。
ームウエア・ワードに関しては、プログラム・カウンタ
20のアドレスがメモリーの記憶場所100であるもの
とすれば、ブロック200内で操作が表示された後、P
レジスタ20は場所101を表示し、メモリーの場所1
00の内容はFレジスタ36、Dレジスタ、およびRA
M13の場所0におかれる。
ブロック202で示されるファームウエア・ワードによ
って行われる操作により、Pレジスタの内容は記憶アド
レス101を含むRAM13の場所8に転送され、Pレ
ジスタの内容マイナス1はその時点で実行中の現行命令
の第1ワードのアドレスである記憶アドレス100を含
むQレジスタ76におかれる。
って行われる操作により、Pレジスタの内容は記憶アド
レス101を含むRAM13の場所8に転送され、Pレ
ジスタの内容マイナス1はその時点で実行中の現行命令
の第1ワードのアドレスである記憶アドレス100を含
むQレジスタ76におかれる。
更に第5図に関して、命令取出しルーチン112に続い
てアドレス・ルーチン(XA)113,115,116
に入る。
てアドレス・ルーチン(XA)113,115,116
に入る。
主としてFレジスタ36に含まれる爺令に従って行われ
る異なるタイプのアドレス生成がある。
る異なるタイプのアドレス生成がある。
これに含まれるのは全アドレス指定、基準アドレス指定
、全アドレス指定と基準アドレス指定のいずれかと組合
される指標アドレス指定、基準プラス指標付きプッシュ
・ポップ・アドレス指定である。
、全アドレス指定と基準アドレス指定のいずれかと組合
される指標アドレス指定、基準プラス指標付きプッシュ
・ポップ・アドレス指定である。
指標付きアドレス指定に含まれているのは、クワツド・
ワード、2倍長ワード、バイト又はビットがメモリーに
おいて個個にアドレス指定される方法である。
ワード、2倍長ワード、バイト又はビットがメモリーに
おいて個個にアドレス指定される方法である。
一般に、指標付きアドレス指定は、均等サイズの要素の
配列内でのデータ又はアドレスの照合が必要な時に使用
される。
配列内でのデータ又はアドレスの照合が必要な時に使用
される。
間接アドレス指定は、そのアドレスが別の記憶場所に記
憶される1つの場所か、LAFアドレス指定モードの場
合に2つの場所を照合することが望ましい時に使用され
る。
憶される1つの場所か、LAFアドレス指定モードの場
合に2つの場所を照合することが望ましい時に使用され
る。
いわゆる相対アドレス指定とはメモリーのアドレス指定
のためプログラム・カウンタ20を使用するアドレス指
定であるが、基準アドレス指定はRALU12のレジス
タ・ファイル70に含まれる基底レジスタを用いてメモ
リーのアドレス指定を行う。
のためプログラム・カウンタ20を使用するアドレス指
定であるが、基準アドレス指定はRALU12のレジス
タ・ファイル70に含まれる基底レジスタを用いてメモ
リーのアドレス指定を行う。
種々のタイプのアドレス指定およびその組合せについて
は、ハ 社の1975年12月発行の文献「シリーズ60(レベ
ル6)アセンブリ用語GCOS/BES」(注文#AS
1)において更に論議されている。
は、ハ 社の1975年12月発行の文献「シリーズ60(レベ
ル6)アセンブリ用語GCOS/BES」(注文#AS
1)において更に論議されている。
第5図において、ブロック204で始まる経路は全アド
レス指定に関する操作を行い、ブ叱ンク214は全アド
レス指定プラス指標付けアドレス指定の開始点を提供し
、ブ田ンク216は基準アドレス指定の開始点を、ブロ
ック218は基準アドレス指定プラス指標付けアドレス
指定の開始点を、ブロック220は基準相対アドレス指
定の開始点を、ブロック224はプログラム・カウンタ
相対アドレス指定の開始点を、ブロック234は即値ア
ドレス指定の開始点を、ブロック242は操作が書込み
を要求する時即値アドレス指定の開始点を、ブロック2
56はポップ基準アドレス指定の開始点を、ブロック2
68はプッシュ基準アドレス指定の開始点を、ブロック
280は基準アドレス指定プラス指標付けポップ・アド
レス指定の開始点を、ブロック290は基準アドレス指
定プラス指標付けプッシュ・アドレス指定の開始点を、
ブロック300はテータ゛レジスタ゜アドレス指定(オ
ペランドはデータ・レジスタに含まれる)の開始点を、
ブロック306は基準レジスタのアドレス指定(オペラ
ンドは基底レジスタに含まれる)の開始点を、ブロック
308は正の即値オペランドの開始点を、又ブロック3
10は負の即値オペランドの開始点を与える。
レス指定に関する操作を行い、ブ叱ンク214は全アド
レス指定プラス指標付けアドレス指定の開始点を提供し
、ブ田ンク216は基準アドレス指定の開始点を、ブロ
ック218は基準アドレス指定プラス指標付けアドレス
指定の開始点を、ブロック220は基準相対アドレス指
定の開始点を、ブロック224はプログラム・カウンタ
相対アドレス指定の開始点を、ブロック234は即値ア
ドレス指定の開始点を、ブロック242は操作が書込み
を要求する時即値アドレス指定の開始点を、ブロック2
56はポップ基準アドレス指定の開始点を、ブロック2
68はプッシュ基準アドレス指定の開始点を、ブロック
280は基準アドレス指定プラス指標付けポップ・アド
レス指定の開始点を、ブロック290は基準アドレス指
定プラス指標付けプッシュ・アドレス指定の開始点を、
ブロック300はテータ゛レジスタ゜アドレス指定(オ
ペランドはデータ・レジスタに含まれる)の開始点を、
ブロック306は基準レジスタのアドレス指定(オペラ
ンドは基底レジスタに含まれる)の開始点を、ブロック
308は正の即値オペランドの開始点を、又ブロック3
10は負の即値オペランドの開始点を与える。
全アドレス指定又は全アドレス指定プラス指標付けアド
レス指定、およびブロック204と214で開始する操
作に関しては、このような全アドレス指定は、プログラ
ム・カウンタ20によりアドレス指定される現在の場所
と関連しないデータ又はアドレスを照合することが望ま
しいような状態に対して使用できる。
レス指定、およびブロック204と214で開始する操
作に関しては、このような全アドレス指定は、プログラ
ム・カウンタ20によりアドレス指定される現在の場所
と関連しないデータ又はアドレスを照合することが望ま
しいような状態に対して使用できる。
これ等のアドレス指定形態によりある記憶場所を直接又
は間接に照合することが可能になる。
は間接に照合することが可能になる。
このように、ブロック204に関しては、次の手順ワー
ドがメモリーから取得できる迄クロツクはストールされ
る。
ドがメモリーから取得できる迄クロツクはストールされ
る。
メモリーから次の命令ワードが使用可能となると、これ
は手順バツファ(BP)即ちP1又はP2レジスタ25
又は27から取得され、内部バス(BI)28、および
Hレジスタ41と、Eレジスタ(DO)と、Yレジスタ
22に与えられる。
は手順バツファ(BP)即ちP1又はP2レジスタ25
又は27から取得され、内部バス(BI)28、および
Hレジスタ41と、Eレジスタ(DO)と、Yレジスタ
22に与えられる。
次にプログラム・カウンタ20が1だけ増進され、次に
手順ワードを、本例ではアドレス指定された入力R10
2を指示する。
手順ワードを、本例ではアドレス指定された入力R10
2を指示する。
次いでカウンタ33は1だけ増分されて、2つの手順ワ
ードが現行命令において処理されたことを表示する。
ードが現行命令において処理されたことを表示する。
ファームウエア・ワード204の完了時に、プロセサが
LAFモードかSAFモードにあるかどうかを判断する
テストが行われ、もしSAFモードであれば、ファーム
ウエアはXRルーチンに分岐して命令オペランドのアド
レスはYレジスタ22即ちオペランド・アドレス・レジ
スタに含まれる。
LAFモードかSAFモードにあるかどうかを判断する
テストが行われ、もしSAFモードであれば、ファーム
ウエアはXRルーチンに分岐して命令オペランドのアド
レスはYレジスタ22即ちオペランド・アドレス・レジ
スタに含まれる。
この事例において、もしSAFモードにあれば、Yレジ
スタ22は記憶場所101の内容を含み、20ビットY
レジスタの最上位の4ビットは0に等しくなるようセッ
トされる。
スタ22は記憶場所101の内容を含み、20ビットY
レジスタの最上位の4ビットは0に等しくなるようセッ
トされる。
もしブロック206のアドレス指定モード・テストの結
果がプロセサがLAFアドレス指定モードにあることを
示すなうば、ブロック208に入る。
果がプロセサがLAFアドレス指定モードにあることを
示すなうば、ブロック208に入る。
ブロック208においては、手順メモリ一読出しサイク
ルが開始されてもしこれが完全に空白であれば手順バツ
ファ(BP)を再充填し始める。
ルが開始されてもしこれが完全に空白であれば手順バツ
ファ(BP)を再充填し始める。
16進の定数OFFFOが内部バス28におかれ、次に
演算論理装置(ALU)即ち加算器96によりEレジス
タの内容(第5図におけるBO)と加算される。
演算論理装置(ALU)即ち加算器96によりEレジス
タの内容(第5図におけるBO)と加算される。
この加算が行われるとLAFアドレスの第1ワードがL
AFアドレスの第1ワードの最上位の12ビットにおい
て2進数1を含むかどうかをテストする。
AFアドレスの第1ワードの最上位の12ビットにおい
て2進数1を含むかどうかをテストする。
ブロック208の完了と同時に、フ宅ツク210におい
てテストが行われてビット位置10のキャリー・アウト
があったかどうかを調べる。
てテストが行われてビット位置10のキャリー・アウト
があったかどうかを調べる。
ビット位置10のキャリー・アウトは最後のLAFアド
レスが長さにおいて20ビットを超えること、従って無
効となりこの結果ファームウエアは不当なアドレスを取
扱うルーチンに分岐することになることを表示する。
レスが長さにおいて20ビットを超えること、従って無
効となりこの結果ファームウエアは不当なアドレスを取
扱うルーチンに分岐することになることを表示する。
もしこのアドレスが有効であれば、ブロック212に入
り、手順ワードが使用可能になる迄クロツクがストール
される。
り、手順ワードが使用可能になる迄クロツクがストール
される。
一たんLAFアドレスの第2ワードが得られると、手順
バツファはHレジスタからの4つの最下位ビットと共に
内部バス28およびBOレジスタ(E)とYレジスタ4
1におかれる。
バツファはHレジスタからの4つの最下位ビットと共に
内部バス28およびBOレジスタ(E)とYレジスタ4
1におかれる。
Hレジスタの4つの最下位ビットと次の手順ワードの相
方が内部バス28におかれる結果、LAFアドレスの第
1ワードの4つの最下位ビットが連続となり、LAFア
ドレスの第2ワードの16ビットがYレジスタ20とB
Oレジスタにおかれる20ビットのLAFアドレス値と
なる。
方が内部バス28におかれる結果、LAFアドレスの第
1ワードの4つの最下位ビットが連続となり、LAFア
ドレスの第2ワードの16ビットがYレジスタ20とB
Oレジスタにおかれる20ビットのLAFアドレス値と
なる。
ブロック212は又プログラム・カウンタ20を1だけ
増分し次の手順ワードを指示し、カウンタ33を1だけ
増分させて手順の別のワードが現行命令の実行において
使用されたことを表示する。
増分し次の手順ワードを指示し、カウンタ33を1だけ
増分させて手順の別のワードが現行命令の実行において
使用されたことを表示する。
前述の事例により、YレジスタとBOレジスタはこの時
点で記憶場所101の最下位の4ビットと記憶場所10
2の16ビットからなる20ビット・アドレスを含み、
プログラム・カウンタ20はこの時記憶場所103を指
示し、カウンタ33は1つの3を保有して3つの手順ワ
ードが現行命令の実行中に使用されたことを示す。
点で記憶場所101の最下位の4ビットと記憶場所10
2の16ビットからなる20ビット・アドレスを含み、
プログラム・カウンタ20はこの時記憶場所103を指
示し、カウンタ33は1つの3を保有して3つの手順ワ
ードが現行命令の実行中に使用されたことを示す。
この時ブロック212はXRルーチンに対する出口とな
る。
る。
前記の如く、全アドレス指定プラス指標付けアドレス指
定のためブロック214に入る。
定のためブロック214に入る。
このように、ブロック214に関しては、手順メモリー
照合サイクルが開始されてもし空であれば手順バツファ
を再充填する。
照合サイクルが開始されてもし空であれば手順バツファ
を再充填する。
3つの指標レジスタ、即ちデータ・レジスタD1,D2
,D3があることに注目すれば、選択された指標レジス
タ(DX)の内容は内部バス28(BI)を経てDレジ
スタにロードされる。
,D3があることに注目すれば、選択された指標レジス
タ(DX)の内容は内部バス28(BI)を経てDレジ
スタにロードされる。
内部バス28のビット10即ちBI(10)はXRルー
チンによる後の使用のため符号フロツプ(FFSIGN
)にロードされ、DXレジスタにおける16ビットの指
標値を20ビットの値に拡張する。
チンによる後の使用のため符号フロツプ(FFSIGN
)にロードされ、DXレジスタにおける16ビットの指
標値を20ビットの値に拡張する。
この指標値をXRルーチンによる使用のためDレジスタ
に集中させた後、ブロック214はブロック204に出
口を開き、このブロックは前述の如く全アドレス指定の
生成を行う。
に集中させた後、ブロック214はブロック204に出
口を開き、このブロックは前述の如く全アドレス指定の
生成を行う。
前記事例において要約すれば、もしRALU12のレジ
スタ・ファイル70のデータ・レジスタ3(D3)が命
令において指定された指標レジスタであれば、ブロック
214から出ると同時にデータ・レジスタD3の内容即
ち指標値はDレジスタ(D0)に集中化される。
スタ・ファイル70のデータ・レジスタ3(D3)が命
令において指定された指標レジスタであれば、ブロック
214から出ると同時にデータ・レジスタD3の内容即
ち指標値はDレジスタ(D0)に集中化される。
もし基準アドレス指定が要求されるならば、ブロック2
16により示されるファームウエア・ワードが実行され
、こうしてレジスタ・ファイル70の特定の基準レジス
タ(BB)の内容は内部バス(BI)28を経てYレジ
スタ22に転送される。
16により示されるファームウエア・ワードが実行され
、こうしてレジスタ・ファイル70の特定の基準レジス
タ(BB)の内容は内部バス(BI)28を経てYレジ
スタ22に転送される。
7つの基底レジスタ即ち基底レジスタB1乃至BTがあ
ることが判る。
ることが判る。
特定の基底レジスタ(BB)をYレジスタ22に集中化
した後、ブロック216はXRルーチンに出口を開く。
した後、ブロック216はXRルーチンに出口を開く。
もし基準アドレス指定プラス指標付きアドレス指定が要
求されれば、ブロック218で示されるファームウエア
・ワードが実行される。
求されれば、ブロック218で示されるファームウエア
・ワードが実行される。
このように、選択された指標レジスタ(DX)の内容が
内部バス28を経てレジスタ・ファイル70のDレジス
タにロードされる。
内部バス28を経てレジスタ・ファイル70のDレジス
タにロードされる。
内部バス28のビット10即ちBI(10)はXRルー
チンによる後の使用のため符号フロツプ(FFSIGN
)にロードされ、DXレジスタの16ビット指標値を2
0ビットの値に拡張する。
チンによる後の使用のため符号フロツプ(FFSIGN
)にロードされ、DXレジスタの16ビット指標値を2
0ビットの値に拡張する。
特定の指標値をXRルーチンの使用のためDレジスタに
集中化した後、ブロック218はブロック216への出
口を開き、このブロックはブロック216に関して既に
論述したように基準アドレス指定の生成を行う。
集中化した後、ブロック218はブロック216への出
口を開き、このブロックはブロック216に関して既に
論述したように基準アドレス指定の生成を行う。
前述の如く、基準相対アドレス指定のためブロック22
0に入る。
0に入る。
このようにブロック220に関しては、メモリーから次
の手順ワードが取得できる迄クロツクはストールされる
。
の手順ワードが取得できる迄クロツクはストールされる
。
次の命令ワードがメモリーから取得されると、これは手
順バツファ(BP)から得られ内部バス(BI)28お
よびEレジスタ(B0)におかれる。
順バツファ(BP)から得られ内部バス(BI)28お
よびEレジスタ(B0)におかれる。
手順バツファからの16ビットの値は、4つの最上位ビ
ットに対して4ビットの2進数零を与えることにより2
0ビットの値に拡張される。
ットに対して4ビットの2進数零を与えることにより2
0ビットの値に拡張される。
次は、プログラム・カウンタ20は1だけ増分されて次
の手順ワード、本例ではアドレス102を指示する。
の手順ワード、本例ではアドレス102を指示する。
この時カウンタ33は1だけ増分されて2つの手順ワー
ドが現行命令において処理されたことを表示する。
ドが現行命令において処理されたことを表示する。
内部バス28のビット10は、ブロック222における
後の使用のため符号フロツプ(FFSIGN)にロード
される。
後の使用のため符号フロツプ(FFSIGN)にロード
される。
要約すれば、ブロック220は命令の第2ワードに含ま
れる変位値(BP)をDレジスタに集中化し、第2の手
順ワードを越してカウンタを増分する。
れる変位値(BP)をDレジスタに集中化し、第2の手
順ワードを越してカウンタを増分する。
フ宅ツク222に入り、選択された基底レジスタ(BB
)の内容はALU(加算器96)を経てD0に含まれる
符号付き拡張された変位値に加算され、その結果は内部
バス(BI)28を経てYレジスタ22におかれる。
)の内容はALU(加算器96)を経てD0に含まれる
符号付き拡張された変位値に加算され、その結果は内部
バス(BI)28を経てYレジスタ22におかれる。
記憶アドレス循環プロップ(FFWRAP)は符号フロ
ツプ(FFSIGN)の排他的論理和にセットされ、最
下位ビット(0C)からの桁上げビットは基底レジスタ
の内容に対する変位値の加算から生じる。
ツプ(FFSIGN)の排他的論理和にセットされ、最
下位ビット(0C)からの桁上げビットは基底レジスタ
の内容に対する変位値の加算から生じる。
後になってFFWRAPフロップを用いて、もし変位置
の基準値への加算により計算されるアドレスがアドレス
の20ビットを超えるならば、アドレス・トラップを惹
起する。
の基準値への加算により計算されるアドレスがアドレス
の20ビットを超えるならば、アドレス・トラップを惹
起する。
この時ブロック222はXRルーチンへの出口となる。
要約すれば、ブロック220と222は相対値即ち命令
の第2の手順ワードに含まれる変位値をとり、これを特
定の基底レジスタの内容に加算し、その結果をYレジス
タ22におく。
の第2の手順ワードに含まれる変位値をとり、これを特
定の基底レジスタの内容に加算し、その結果をYレジス
タ22におく。
前述の如く、ブロック224はプログラム・カウンクと
、割込みベクトル相対アドレス指定に対する開始点とな
る。
、割込みベクトル相対アドレス指定に対する開始点とな
る。
ブロック224は、基準相対アドレス指定のためのブロ
ック220に関して本文で述べたように、プログラム・
カウンタの相対アドレス指定のための同じ機能を与える
。
ック220に関して本文で述べたように、プログラム・
カウンタの相対アドレス指定のための同じ機能を与える
。
即ち、ブロック224は変位値をDレジスタに集中化し
、その内容を第2の手順ワードを超えて増分する。
、その内容を第2の手順ワードを超えて増分する。
ヌ、ブロック224によって行われる操作の一部は、割
込みベクトル相対アドレス指定がブロック226で示さ
れる如く必要かどうかの決定である。
込みベクトル相対アドレス指定がブロック226で示さ
れる如く必要かどうかの決定である。
もし割込みベクトル相対アドレス指定がレジスタ36に
おける命令の検査により表示される如く必要とされなけ
れば、プログラム・カウンタの相対アドレス指定ブロッ
ク228に入る。
おける命令の検査により表示される如く必要とされなけ
れば、プログラム・カウンタの相対アドレス指定ブロッ
ク228に入る。
このブロック228は、基準相対アドレス指定のためブ
ロック222により行われる如きプログラム・カウンク
の相対アドレス指定のための同様な機能を行う。
ロック222により行われる如きプログラム・カウンク
の相対アドレス指定のための同様な機能を行う。
即ち、ブロック228においては、Dレジスタに含まれ
る変位値はQレジスタ76に含まれるプログラム・カウ
ンタの値に加算され、その結果は内部バス28を経てY
レジスク22におかれる。
る変位値はQレジスタ76に含まれるプログラム・カウ
ンタの値に加算され、その結果は内部バス28を経てY
レジスク22におかれる。
プログラム・カウンタのこの値は命令取出し(XF)ル
ーチンに関して既に述べたフ宅ツク202のファームウ
エア・ステップによりQレジスタにおかれたことが判る
。
ーチンに関して既に述べたフ宅ツク202のファームウ
エア・ステップによりQレジスタにおかれたことが判る
。
ブロック228はヌ、ブロック222に関して論述した
ようにアドレス循環フロツプ(FFWRAP)をセット
する。
ようにアドレス循環フロツプ(FFWRAP)をセット
する。
次にブロック228はXRルーチンへの出口となる。
ブロック228から出ると同時に、プログラム・カウン
タの相対アドレスはYレジスタ22に含まれる。
タの相対アドレスはYレジスタ22に含まれる。
もし割込みベクトル相対アドレス指定がFレジスク36
における命令の検査即ち判断ブロック226で示される
ように行われると、ブロック230に入る。
における命令の検査即ち判断ブロック226で示される
ように行われると、ブロック230に入る。
このフ宅ツク230は実際には5乃至7の別個のファー
ムウエア・ステップであり、これは割込みベクトル・ア
ドレスのQレジスク76への設定を惹起する。
ムウエア・ステップであり、これは割込みベクトル・ア
ドレスのQレジスク76への設定を惹起する。
この個々のファームウエア・ステップは本発明のシステ
ムに関するものではなく、従って図示しない。
ムに関するものではなく、従って図示しない。
割込みベクトル・アドレスがQレジスタ76におかれた
後、ブロック232のファームウエア・ステップが行わ
れる。
後、ブロック232のファームウエア・ステップが行わ
れる。
ブロック232によって行われる操作は、ン宅ツク23
2のQレジスクが命令の第2のワードに含まれる変位値
が加算されてYレジスク22におかれる割込みベクトル
相対アドレスを形成する割込みベクトル相対アドレスを
含む点だけを異にして、本文で述べた如くプログラム・
カウンタの相対アドレス指定のためブロック228によ
って行われるものと同一である。
2のQレジスクが命令の第2のワードに含まれる変位値
が加算されてYレジスク22におかれる割込みベクトル
相対アドレスを形成する割込みベクトル相対アドレスを
含む点だけを異にして、本文で述べた如くプログラム・
カウンタの相対アドレス指定のためブロック228によ
って行われるものと同一である。
FFWRAPフロツプも又これがXRルーチンへの出口
となる前にブロック232にセットされる。
となる前にブロック232にセットされる。
要約すれば、ブロック224および後続のブロックによ
り行われる操作は、変位値をDレジスタに集中化して次
にこれをプログラム・カウンタ又は割込みベクトル・ア
ドレスのいずれかに加算し、その結果をXRルーチンに
より後で使用するためYレジスタに入れる。
り行われる操作は、変位値をDレジスタに集中化して次
にこれをプログラム・カウンタ又は割込みベクトル・ア
ドレスのいずれかに加算し、その結果をXRルーチンに
より後で使用するためYレジスタに入れる。
前述の如く、ブロック234は即時アドレス指定のため
の開始点となり、フ宅ツク242は操作がメモリーへの
書込みを必要とする時即値アドレス指定のための開始点
となる。
の開始点となり、フ宅ツク242は操作がメモリーへの
書込みを必要とする時即値アドレス指定のための開始点
となる。
即値アドレス指定モードにおいては、全アドレス指定モ
ードの場合のオペランドのアドレスとは反対に、オペラ
ンド自体が命令内に含まれている。
ードの場合のオペランドのアドレスとは反対に、オペラ
ンド自体が命令内に含まれている。
このように、即値アドレス指定が行われると命令取出し
(XF)ルーチンからブロック234に入る。
(XF)ルーチンからブロック234に入る。
ブロック234は、次の点を除いてブロック220と2
24に関して既に本文中に述べたと同じ機能を行う。
24に関して既に本文中に述べたと同じ機能を行う。
即ち、ブロック234においては、Dレジスク(DO)
への設置に加えて手順ワードは又内部バス28を経てH
レジスタ41におかわる。
への設置に加えて手順ワードは又内部バス28を経てH
レジスタ41におかわる。
即値アドレス指定の場合には、手順バツファ(BP)か
ら得た手順ワードはオペランド自体である。
ら得た手順ワードはオペランド自体である。
フ宅ツク234においては、プログラム・カウンタ20
とカウンタ33は1だけ増分されて、命令における第2
の手順ワードを通り過ぎる。
とカウンタ33は1だけ増分されて、命令における第2
の手順ワードを通り過ぎる。
又符号フロツプ(FFSIGN)もこのオペランドの符
号を含むようセットされる。
号を含むようセットされる。
前述の如く、ファームウエア・ワードブロックに続く判
断ブロックはこのようなファームウエア・ワード・ブロ
ックの一部であり、この場合、即値オペランドが単一ワ
ードであるかどうかの質疑がブロック236で示される
如くブロック234においてなされる。
断ブロックはこのようなファームウエア・ワード・ブロ
ックの一部であり、この場合、即値オペランドが単一ワ
ードであるかどうかの質疑がブロック236で示される
如くブロック234においてなされる。
もし即値オペランドが単一ワードであれば、ブロック2
34は実行(XE)ルーチン120への出口となり、レ
ジスタ・ファイル70のDレジスタとHレジスタ41に
は1つのワード・オペランドが存在する。
34は実行(XE)ルーチン120への出口となり、レ
ジスタ・ファイル70のDレジスタとHレジスタ41に
は1つのワード・オペランドが存在する。
このオペランドが1ワード・オペランドかどうかの決定
はFレジスタ36の内容の検査により行われる。
はFレジスタ36の内容の検査により行われる。
もし即値オペランドが単一ワード・オペランドでなけれ
ば、ブロック23Bのファームウエア操作が行われる。
ば、ブロック23Bのファームウエア操作が行われる。
ブロック238のファームウエア操作は、20ビットの
値を内部バス28とレジスタ・ファイル70のDレジス
タに入れる。
値を内部バス28とレジスタ・ファイル70のDレジス
タに入れる。
この20ビットの値は零にセットされる4つの最上位ビ
ット(ビット0C乃至0F)からなり、左方のバイト(
ビット10乃至17)はHレジスクの最上位ビットを含
み、右方のバイト(ビット18乃至1F)はHレジスタ
の左方バイトを含んでいる。
ット(ビット0C乃至0F)からなり、左方のバイト(
ビット10乃至17)はHレジスクの最上位ビットを含
み、右方のバイト(ビット18乃至1F)はHレジスタ
の左方バイトを含んでいる。
この結果、Dレジスタは命令の第2の手順ワードに含ま
れる左方のバイトの符号付き拡張された値を含むことに
なる。
れる左方のバイトの符号付き拡張された値を含むことに
なる。
ブロツク238も又符号フロツプ(FFSIGN)をこ
れも又左方バイトの符号であるHレジスタの符号にセッ
トする。
れも又左方バイトの符号であるHレジスタの符号にセッ
トする。
ブロック238のファームウエア操作も又ブロック24
0で示されるテストを行い、即値オペランドがFレジス
タ36の内容を検査することにより半ワードの即値オペ
ランドであるかどうかを決定する。
0で示されるテストを行い、即値オペランドがFレジス
タ36の内容を検査することにより半ワードの即値オペ
ランドであるかどうかを決定する。
もし則値オペランドが半ワード・オペランドであれば、
ブロック238は実行(XE)ルーチン120への出口
となって操作を行う。
ブロック238は実行(XE)ルーチン120への出口
となって操作を行う。
もし即時オペランドが半ワード・オペランドでなければ
、2倍長ワード又はクワツドワードの即値オペランドに
対する場合のように、ブロック238はフ狛ツク244
への出口となる。
、2倍長ワード又はクワツドワードの即値オペランドに
対する場合のように、ブロック238はフ狛ツク244
への出口となる。
要約すれば、ブロック234と238は即時1ワード又
は半ワード・オペランドに必要な操作を行って、Dレジ
スタにおけるオペランドと共にXEルーチンへの出口と
なる。
は半ワード・オペランドに必要な操作を行って、Dレジ
スタにおけるオペランドと共にXEルーチンへの出口と
なる。
書込み操作を含む即値オペランドの場合に対してはブロ
ック242に入る。
ック242に入る。
ブロック242は、手順ワードが手順バツファ即ちP1
レジスタ25又はP2レジスタ27において暇得可能に
なる迄プロセサをストールする。
レジスタ25又はP2レジスタ27において暇得可能に
なる迄プロセサをストールする。
この時ブロック242はPレジスタ201だけ増分して
、この操作の結果が書込まれ次いでカウンタ33を1だ
け増分して2つの手順ワードが現行命令の処理において
用いられたことを表示する場所に関して進行する。
、この操作の結果が書込まれ次いでカウンタ33を1だ
け増分して2つの手順ワードが現行命令の処理において
用いられたことを表示する場所に関して進行する。
この時ブロック242はブロック244への出口となり
、このブロックは又ブロック240から入り、2倍長ワ
ードおよびクワツド・ワードの即値オペランドの処理を
続行する。
、このブロックは又ブロック240から入り、2倍長ワ
ードおよびクワツド・ワードの即値オペランドの処理を
続行する。
次にブロック244はALU(加算器96)を用いてQ
レジスク76の内容を1だけ増分し、内部バス28を介
してその結果をYレジスタ22に入れる。
レジスク76の内容を1だけ増分し、内部バス28を介
してその結果をYレジスタ22に入れる。
ブロック244に入ると同時に、QレジスタはXFルー
チンのブロック202におかれたプログラム・カウンタ
の値、即ちその時実行中の命令の第1ワードの記憶アド
レスを含む。
チンのブロック202におかれたプログラム・カウンタ
の値、即ちその時実行中の命令の第1ワードの記憶アド
レスを含む。
ブロック244におけるQレジスタの内容が1だけ増分
した結果Yレジスタは命令に含まれる則値オペランドの
第1ワードの記憶アドレスである命令の第2ワードの記
憶アドレスを含み、本例の場合には、Yレジスタはブロ
ック244のファームウエア操作の完了と同時に記憶ア
ドレス101を含むことになる。
した結果Yレジスタは命令に含まれる則値オペランドの
第1ワードの記憶アドレスである命令の第2ワードの記
憶アドレスを含み、本例の場合には、Yレジスタはブロ
ック244のファームウエア操作の完了と同時に記憶ア
ドレス101を含むことになる。
ブロック244に示されるテストはブロック244のフ
ァームウエア操作の一部として行われ、このオペランド
が半ワード又は完全ワードの即時オペランドであるかど
うかをテストする。
ァームウエア操作の一部として行われ、このオペランド
が半ワード又は完全ワードの即時オペランドであるかど
うかをテストする。
もしオペランドが半ワードの即時オペランドか完全ワー
ドの即値オペランドであれば、フ宅ツク244はXRル
ーチン117への出口となる。
ドの即値オペランドであれば、フ宅ツク244はXRル
ーチン117への出口となる。
ブロック246のテストは、Fレジスタ36に含まれる
命令の検査によって行われる。
命令の検査によって行われる。
もしこの命令がオペランドが2倍長ワード又はクワツド
・ワードの即値オベランドを含むことを表示すれば、ン
宅ツク248に入る。
・ワードの即値オベランドを含むことを表示すれば、ン
宅ツク248に入る。
ブロック248はプログラム・カウンタ20を1だけ増
分してオペランドの第2ワードを超えて進行し、カウン
タ33を1だけ増分して3つの手順ワードが現行命令の
実行に使用されたことを表示する。
分してオペランドの第2ワードを超えて進行し、カウン
タ33を1だけ増分して3つの手順ワードが現行命令の
実行に使用されたことを表示する。
ブロック250により示されるテストも又ブロツク24
8のファームウエア操作の一部として行われる。
8のファームウエア操作の一部として行われる。
ブロック248は、操作が2倍長ワード又はクワツド・
ワードの即値オペランドを含むかどうかを調べるために
テストする。
ワードの即値オペランドを含むかどうかを調べるために
テストする。
もし即値オペランドが2倍長ワード・オペランドであれ
ば、フ宅ツク248はXRルーチンに対する出口となる
。
ば、フ宅ツク248はXRルーチンに対する出口となる
。
もし命令がクワツド・ワードの即値オペランドを含むな
らば、フ宅ツク248はブロック252への出口となり
、このブロックはブロック254と関連してプログラム
・カウンタをオペランドの第3および第4ワードを越し
て増分し、カウンタ33を2だけ増分して手順の5ワー
ドが現行命令の実行中に使用されたことを示す。
らば、フ宅ツク248はブロック252への出口となり
、このブロックはブロック254と関連してプログラム
・カウンタをオペランドの第3および第4ワードを越し
て増分し、カウンタ33を2だけ増分して手順の5ワー
ドが現行命令の実行中に使用されたことを示す。
ブロック254の完了と同時に、ファームウエアはXR
ルーチンへの出口となる。
ルーチンへの出口となる。
要約すれば、ブロック234とブロック242で始まる
ファームウエア操作は即値オペランドを提供する。
ファームウエア操作は即値オペランドを提供する。
半ワード又は1ワードの即値オペランドの場合には、フ
ァームウエアはこのオペランドをDレジスタにおき、実
行(XE)ルーチンへの出口となる。
ァームウエアはこのオペランドをDレジスタにおき、実
行(XE)ルーチンへの出口となる。
更にこの事例において、即値オペランドのアドレス指定
の場合には、XRルーチンへ出ると同時にYレジスタは
即時オペランドの第1ワードの記憶アドレス即ち記憶ア
ドレス101を含み、半ワード又は1ワードの即値オペ
ランドの場合にはPレジスタ20は記憶アドレス102
を含み、カウンタ33は値2を含んで2つの手順ワード
が使用されたことを示し、2倍長ワードの即値オペラン
ドの場合にはPレジスクは記憶アドレス103を含み、
カウンタは値3を含み、クワツド・ワードの即値オペラ
ンドの場合はPレジスタ20は記憶アドレス105を含
みカウンタ33は値5を含んで手順の5ワードが即値オ
ペランド命令の実行中に使用されたことを示す。
の場合には、XRルーチンへ出ると同時にYレジスタは
即時オペランドの第1ワードの記憶アドレス即ち記憶ア
ドレス101を含み、半ワード又は1ワードの即値オペ
ランドの場合にはPレジスタ20は記憶アドレス102
を含み、カウンタ33は値2を含んで2つの手順ワード
が使用されたことを示し、2倍長ワードの即値オペラン
ドの場合にはPレジスクは記憶アドレス103を含み、
カウンタは値3を含み、クワツド・ワードの即値オペラ
ンドの場合はPレジスタ20は記憶アドレス105を含
みカウンタ33は値5を含んで手順の5ワードが即値オ
ペランド命令の実行中に使用されたことを示す。
前述の如く、ブロック256はポップ基準アドレス指定
の開始点となる。
の開始点となる。
ポップ基準アドレス指定はオペランド・アドレスとして
使用される特定の基底レジスタを提供しこの基底レジス
タ(BB)はオペランド・アドレスが命令で使用された
後オペランドを超えて増分される。
使用される特定の基底レジスタを提供しこの基底レジス
タ(BB)はオペランド・アドレスが命令で使用された
後オペランドを超えて増分される。
このようにブロック256は内部バス(BI)28を経
てYレジスク22にロードされる基底レジスタ(BB)
を提供する。
てYレジスク22にロードされる基底レジスタ(BB)
を提供する。
この基底レジスタの内容も又1だけ増分されて再びこの
基底レジスタに戻される。
基底レジスタに戻される。
ブロック256のファームウエア操作の一部として、ブ
ロック258に示されるテストはオペランドが半ワード
又は完全ワードのオペランドであるかをテストするため
行われる。
ロック258に示されるテストはオペランドが半ワード
又は完全ワードのオペランドであるかをテストするため
行われる。
このテストはFレジスタ36の命令を検査することによ
り行われる。
り行われる。
ブロック256は、このオペランドが半ワード又は1ワ
ードのオペランドであればXRルーチンへの出口となる
。
ードのオペランドであればXRルーチンへの出口となる
。
2倍長ワード又はクワツド・ワード・オペランドの場合
は、ブロック256はブロック260への出口となり、
これが再び特定の基底レジスタを1だけ増分してオペラ
ンドが2倍長ワードからクワツド・ワード・オペランド
かをテストする。
は、ブロック256はブロック260への出口となり、
これが再び特定の基底レジスタを1だけ増分してオペラ
ンドが2倍長ワードからクワツド・ワード・オペランド
かをテストする。
もしオペランドがクワツド・ワード・オペランドでない
、即ち2倍長ワード・オペランドであれば、ブロック2
60はXRルーチンへの出口となる。
、即ち2倍長ワード・オペランドであれば、ブロック2
60はXRルーチンへの出口となる。
クワツド・ワード・オペランドの場合には、ブロック2
60はブロック264への出口となり、ブロック266
と関連してXRルーチンへの出口となる前に特定の基底
レジスタを2だけ増分する。
60はブロック264への出口となり、ブロック266
と関連してXRルーチンへの出口となる前に特定の基底
レジスタを2だけ増分する。
要約すれば、ブロック256の開始点により行われるポ
ップ基準アドレス指定の結果はXRルーチンへの出口と
ない、Yレジスタハ特定の基底レジスタ(BB)に最初
から含まれたオペランドの肥憶アドレスを含み、この基
底レジスタはオペランドを超えて即ち半ワードおよび1
ワード・オペランドに対しては1だけ増分され、2倍長
ワード・オペランドには2だけ、クワツド・ワード・オ
ペランドに対しては4だけ増分される。
ップ基準アドレス指定の結果はXRルーチンへの出口と
ない、Yレジスタハ特定の基底レジスタ(BB)に最初
から含まれたオペランドの肥憶アドレスを含み、この基
底レジスタはオペランドを超えて即ち半ワードおよび1
ワード・オペランドに対しては1だけ増分され、2倍長
ワード・オペランドには2だけ、クワツド・ワード・オ
ペランドに対しては4だけ増分される。
更に本例においては、もし基底レジスタ5(B5)がF
レジスタ36に含まれる命令の特定の基底レジスクであ
り、又もしブロック256へのエントリと同時にB5が
記憶アドレス1000を含むならば、ポップ基準アドレ
ス指定ファームウエアがXRルーチンに出ると同時に、
Yレジスタは記憶アドレス1000を含み、B5はオペ
ランドが半ワード・オペランドか1ワード・オペランド
か、2倍長ワード・オペランドか、あるいはクワツド・
ワード・オペランドであるかに従って、100L100
2、又は1004を含む。
レジスタ36に含まれる命令の特定の基底レジスクであ
り、又もしブロック256へのエントリと同時にB5が
記憶アドレス1000を含むならば、ポップ基準アドレ
ス指定ファームウエアがXRルーチンに出ると同時に、
Yレジスタは記憶アドレス1000を含み、B5はオペ
ランドが半ワード・オペランドか1ワード・オペランド
か、2倍長ワード・オペランドか、あるいはクワツド・
ワード・オペランドであるかに従って、100L100
2、又は1004を含む。
フ宅ツク268は、ポップ基準アドレス指定の逆のアド
レス指定モードであるプッシュ基準アドレス指定のため
の開始点となり、即ち特定の基底レジスタは命令オペラ
ンドを指示するため使用される前に予め減分される。
レス指定モードであるプッシュ基準アドレス指定のため
の開始点となり、即ち特定の基底レジスタは命令オペラ
ンドを指示するため使用される前に予め減分される。
ブロック268は、ALU(加算器96)を介して1だ
け減分されるべき特定の基底レジスク(BB)を提供し
、又内部バス28およびYレジスタ22へおかれる減分
された値を提供する。
け減分されるべき特定の基底レジスク(BB)を提供し
、又内部バス28およびYレジスタ22へおかれる減分
された値を提供する。
ブロック270により示されるテストはブロック268
のファームウエア操作の一部として行われる。
のファームウエア操作の一部として行われる。
もしオペランドが半ワード又は1ワードのオペランドで
あるならば、ブロック268はXRルーチンへの出口と
なり、Yレジスタはオペランド・アドレスを含み、特定
の基底レジスタは1だけ減分される。
あるならば、ブロック268はXRルーチンへの出口と
なり、Yレジスタはオペランド・アドレスを含み、特定
の基底レジスタは1だけ減分される。
もしオペランドが2倍長ワード又はクワッド・ワード・
オペランドであるならば、ブロック268はブロック2
72への出口となり、これが再び特定の基底レジスタを
減分し、その結果を特定の基底レジスタおよびYレジス
タ22に与えられる。
オペランドであるならば、ブロック268はブロック2
72への出口となり、これが再び特定の基底レジスタを
減分し、その結果を特定の基底レジスタおよびYレジス
タ22に与えられる。
ブロック274によって表示されるクヮッド・ワード・
オペランド・テストはブロック272のファームウエア
操作の一部として実施される。
オペランド・テストはブロック272のファームウエア
操作の一部として実施される。
ブロック272は、もしオペランドが2倍長ワード・オ
ペランドであれば、XRルーチンへの出口となる。
ペランドであれば、XRルーチンへの出口となる。
もしオペランドがクワツド・ワード・オペランドであれ
ば、ブロック276と278のファームウエア操作が行
われ、これにより更に特定の基底レジスタを2たけ減分
し、その結果をYレジスタ22に入れる。
ば、ブロック276と278のファームウエア操作が行
われ、これにより更に特定の基底レジスタを2たけ減分
し、その結果をYレジスタ22に入れる。
要求すれば、ブロック268において開始されたファー
ムウエア操作は、オペランドにおけるワード数だけ減分
される特定の基底レジスタおよび最後の減分された特定
の基底レジスタの値にセットされるべきYレジスタを提
供する。
ムウエア操作は、オペランドにおけるワード数だけ減分
される特定の基底レジスタおよび最後の減分された特定
の基底レジスタの値にセットされるべきYレジスタを提
供する。
更に本事例において、もし基底レジスタ5(B5)が特
定の基底レジスタであり、B5レジスクが記憶アドレス
1000を含むならば、XRルーチンへ出ると同時にレ
ジスク・ファイル70のB5レジスタとYレジスタ22
は、オペランドがそれぞれ半ワード又は1ワード、2倍
長ワード又はクワツド・ワードのオペランドであるかど
うかに従って、値999,998、又は996を含む。
定の基底レジスタであり、B5レジスクが記憶アドレス
1000を含むならば、XRルーチンへ出ると同時にレ
ジスク・ファイル70のB5レジスタとYレジスタ22
は、オペランドがそれぞれ半ワード又は1ワード、2倍
長ワード又はクワツド・ワードのオペランドであるかど
うかに従って、値999,998、又は996を含む。
XAルーチンは又、基底レジスタの指標付けさわたプッ
シュ・ポップ・アドレス指定の能力を提供する。
シュ・ポップ・アドレス指定の能力を提供する。
指標付けられた基準相対プッシュ・アドレス指定に対し
ては、特定の指標レジスクの内容の1だけの減分が生じ
、従って使用されるべきデータの有効アドレスの計算が
生じる。
ては、特定の指標レジスクの内容の1だけの減分が生じ
、従って使用されるべきデータの有効アドレスの計算が
生じる。
指標付けされた基準相対ポップ・アドレス指定に対して
は、操作において使用されるべき記憶場所又はデータの
有効アドレスの計算が行われる。
は、操作において使用されるべき記憶場所又はデータの
有効アドレスの計算が行われる。
このような有効アドレスの計算の後、アドレス・レジス
クの内容は1だけ増分される。
クの内容は1だけ増分される。
プッシュ・アドレス指定とポップ・アドレス指定間の相
違はSELレジスタ37のビット1により決定される。
違はSELレジスタ37のビット1により決定される。
もしこれが指標付けポップ操作であれば、フ宅ツク28
0に入り、これにより表示されるファームウエアによっ
て行われる操作が実行される。
0に入り、これにより表示されるファームウエアによっ
て行われる操作が実行される。
もしこれが指標付けされたプッシュ操作であれば、ブロ
ツク290に入り、これにより表示されるファームウエ
アによって行われる操作が実行される。
ツク290に入り、これにより表示されるファームウエ
アによって行われる操作が実行される。
このように基準指標付けされたポップ操作に対しては、
選択された指標レジスタ(DX)の内容がレジスク・フ
ァイル70のDレジスクおよび内部バス(BI)28に
転送される。
選択された指標レジスタ(DX)の内容がレジスク・フ
ァイル70のDレジスクおよび内部バス(BI)28に
転送される。
符号フロツプ(FFSIGN)も又特定の指標レジスク
の符号(最上位ビット)を表示するようにセットされる
。
の符号(最上位ビット)を表示するようにセットされる
。
もし他方においてこれが基準プラス指標付けプッシュ操
作であればフ宅ツク290に入り、選択された指標レジ
スタ(DX)の内容はALU(加算器96)により1だ
け減分され、その結果はレジスタ・ファイル70のDレ
ジスクと内部バス28に与えられる。
作であればフ宅ツク290に入り、選択された指標レジ
スタ(DX)の内容はALU(加算器96)により1だ
け減分され、その結果はレジスタ・ファイル70のDレ
ジスクと内部バス28に与えられる。
ブロック282と292により表示されるテストはそれ
ぞれブロック280と290のファームウエア操作の一
部として実施される。
ぞれブロック280と290のファームウエア操作の一
部として実施される。
アドレス指定が完全ワードに対するものであるかどうか
に関してブロック282と292において示される如く
決定が行われる。
に関してブロック282と292において示される如く
決定が行われる。
もしそうならば、ブロック284に入る。
もしそうでなければ、バイト又はビットのアドレス指定
に対してブロック294に入る。
に対してブロック294に入る。
もし完全ワードをアドレス指定するならばブロック28
4に入り、特定の基底レジスタの内容が特定の指標レジ
スタの内容(この時Dレジスクに含まれる)に加算され
,ALUにより加算されて内部バス28を経てYレジス
タ22に転送される。
4に入り、特定の基底レジスタの内容が特定の指標レジ
スタの内容(この時Dレジスクに含まれる)に加算され
,ALUにより加算されて内部バス28を経てYレジス
タ22に転送される。
3ビットの特定の基底レジスク番号が基底レジスタの指
標付けされたプッシュ・ポップ・アドレス指定において
指定されることができる僅かに基底レジスタ1,2,3
(B1,B2,B3)における結果で3とANDされる
ことに留意され度い。
標付けされたプッシュ・ポップ・アドレス指定において
指定されることができる僅かに基底レジスタ1,2,3
(B1,B2,B3)における結果で3とANDされる
ことに留意され度い。
又、16ビットの指標レジスタ値が20ビットの基底レ
ジスタ値に加算される前に符号付き拡張されることが判
る。
ジスタ値に加算される前に符号付き拡張されることが判
る。
前述の如く、FFWRAPフロツプはFFSIGNの排
他的論理和にセットされ、20ビットを超える無効アド
レスの検出において後で使用されるためALUのキャリ
ー・アウトにセットされる。
他的論理和にセットされ、20ビットを超える無効アド
レスの検出において後で使用されるためALUのキャリ
ー・アウトにセットされる。
もしアドレス指定がバイト又はビットに対するものであ
れば、ブロック294に入り、特定の基底レジスタの内
容はEレジスタ(B0)に転送される。
れば、ブロック294に入り、特定の基底レジスタの内
容はEレジスタ(B0)に転送される。
ブロック284における如く、ブロツク294において
は特定の基底レジスク番号は基底レジスタB1,B2又
はB3が基底レジスクの指標付けされたプッシュ・ポッ
プ・アドレス指定において使用できるように3とAND
される。
は特定の基底レジスク番号は基底レジスタB1,B2又
はB3が基底レジスクの指標付けされたプッシュ・ポッ
プ・アドレス指定において使用できるように3とAND
される。
ブロック284と294のファームウエア操作の一部と
して、ブロック286と296に表示されるテストがそ
れぞれ行われる。
して、ブロック286と296に表示されるテストがそ
れぞれ行われる。
直接および間接のアドレス指定間の相違は、SELレジ
スタ37のビット1により指定される。
スタ37のビット1により指定される。
もし間接アドレス指定が行われゝばブロック288に入
り、直接アドレス指定が行われ5ばブロック298に入
る。
り、直接アドレス指定が行われ5ばブロック298に入
る。
もし間接アドレス指定が行われるとブロック288に入
り、特定の指標レジスクの内容は1だけ増分され、16
進定数0XXX0は内部バス28におかれ、4つの最下
位ビットがSELレジスタ37に転送される。
り、特定の指標レジスクの内容は1だけ増分され、16
進定数0XXX0は内部バス28におかれ、4つの最下
位ビットがSELレジスタ37に転送される。
内部バス28の4つの最下位ビット即ちビット1C乃至
1Fの転送は有効に4ビットのSELレジスタをクリア
する。
1Fの転送は有効に4ビットのSELレジスタをクリア
する。
SELレジスタのビット1は間接アドレス指定ビットで
あり、SELレジスタのビット2乃至4は基底レジスク
番号を表示する。
あり、SELレジスタのビット2乃至4は基底レジスク
番号を表示する。
もし直接アドレス指定が行われXばブロック298に入
り、特定の指標レジスタの内容は1だけ減分される。
り、特定の指標レジスタの内容は1だけ減分される。
ブロック288における如く、16進定数0XXX0を
バスおよびSELレジスク37におくことによりブロッ
ク298は4ビットのSELレジスタをクリアする。
バスおよびSELレジスク37におくことによりブロッ
ク298は4ビットのSELレジスタをクリアする。
ブロック288と298はXRルーチンへの出口となる
。
。
要約すれば、基底レジスタの指標プッシュ・ポップ・ア
ドレス指定に対しては、ブロック280と290は特定
の指標レジスタの内容をレジスタ・ファイル70のDレ
ジスクに集中化し、もし完全ワード・アドレス指定なら
ばフ宅ツク284における基準値に指標値を加算し、あ
るいはもしバイト又はビット・アドレス指定ならば基底
レジスタをEレジスタ(B0)に集中化する。
ドレス指定に対しては、ブロック280と290は特定
の指標レジスタの内容をレジスタ・ファイル70のDレ
ジスクに集中化し、もし完全ワード・アドレス指定なら
ばフ宅ツク284における基準値に指標値を加算し、あ
るいはもしバイト又はビット・アドレス指定ならば基底
レジスタをEレジスタ(B0)に集中化する。
この時ブロック288は間接アドレス指定の場合に指標
値を増分し、ブロツク298は直接アドレス指定の場合
に指標値を減分し、両ブロツクはその後XRルーチンに
対して出口となる。
値を増分し、ブロツク298は直接アドレス指定の場合
に指標値を減分し、両ブロツクはその後XRルーチンに
対して出口となる。
前記の如く、フ宅ツク300はデータ・レジスタ・アド
レス指定に対する開始点となり、即ちオペランドはデー
タ・レジスクに含まれる。
レス指定に対する開始点となり、即ちオペランドはデー
タ・レジスクに含まれる。
ブロック300に入り、指定されたデータ・レジスタ(
DB)はALU(加算器96)を介してレジスタ・ファ
イル70のDレジスク(D0)に転送される。
DB)はALU(加算器96)を介してレジスタ・ファ
イル70のDレジスク(D0)に転送される。
指定されたデータ・レジスタの内容は又内部バス28を
介してHレジスタ41に転送される。
介してHレジスタ41に転送される。
又FFSIGNフロツプも指定されたデータ・レジスタ
の最上位ビットにセットされる。
の最上位ビットにセットされる。
ブロック302で示されるテストはブロック300のフ
ァームウエア操作の一部として実施される。
ァームウエア操作の一部として実施される。
もし操作がFレジスタ36における命令ビットの検査に
よって表示される如く半ワード操作であれば、ブロック
304に入る。
よって表示される如く半ワード操作であれば、ブロック
304に入る。
もし命令が1ワード・オペランド命令であれば、ブロッ
ク300は実行ルーチン(XE)120への出口となる
。
ク300は実行ルーチン(XE)120への出口となる
。
半ワード操作に対してはブロック304に入り、Hレジ
スタは内部バス28およびDレジスタヘHレジスクの右
方バイトをおくことによりHレジスタの右方バイトに含
まれる半ワード・オペランドを符号付き拡張するために
使用される。
スタは内部バス28およびDレジスタヘHレジスクの右
方バイトをおくことによりHレジスタの右方バイトに含
まれる半ワード・オペランドを符号付き拡張するために
使用される。
FFSIGNフロツプも又、この時右方バイトの最上位
ビットである内部バスのビット10の状況を表示するよ
うにセットされる。
ビットである内部バスのビット10の状況を表示するよ
うにセットされる。
要約すれば、ブロック300と304の機能は指定され
たデータ・レジスタにおけるオペランドをDレジスタに
集中化すること、およびFFSIGNフロツプを、XE
ルーチン120への出口となる前に1ワード又は半ワー
ドのオペランドの符号にセットすることである。
たデータ・レジスタにおけるオペランドをDレジスタに
集中化すること、およびFFSIGNフロツプを、XE
ルーチン120への出口となる前に1ワード又は半ワー
ドのオペランドの符号にセットすることである。
ブロック306は基底レジスタのアドレス指定に対する
開始点となり、即ちオペランドは指定された基底レジス
クに含まれる。
開始点となり、即ちオペランドは指定された基底レジス
クに含まれる。
ブロック306に入り、指定された基底レジスタ(BB
)の内容はDレジスタに転送されて内部バス28におか
れる。
)の内容はDレジスタに転送されて内部バス28におか
れる。
20ビットの基準値の符号も又FFSIGHに転送され
る。
る。
要約すれば、ブロツク306は指定された基底レジスタ
の値をDレジスタに集中化し、XEルーチン120への
出口となる前にフロツプFFSIGNをセットする。
の値をDレジスタに集中化し、XEルーチン120への
出口となる前にフロツプFFSIGNをセットする。
前述の如く、ブロック308は正の即値オペランドに対
する開始点となる。
する開始点となる。
ブロック308においては、16進数000FFは内部
バス28におかれる。
バス28におかれる。
ALUは内部バスおよびDレジスタの内容の論理積AN
Dを実施し、その結果をDレジスタに再び入れる。
Dを実施し、その結果をDレジスタに再び入れる。
FFSIGNフロツプも又零にセットされ、即ち正の値
を表示する。
を表示する。
ブロック308へのエントリと同時に、Dレジスタは、
命令取出し(XF)ルーチンのブロック200によって
おかれたように命令の第1ワードを含む。
命令取出し(XF)ルーチンのブロック200によって
おかれたように命令の第1ワードを含む。
このように、要約すれば、ブロック308は右方バイト
即ち正の即値零乃至127を、実行ルーチンに出る前に
レジスタ・ファイル70のDレジスタに集中化する。
即ち正の即値零乃至127を、実行ルーチンに出る前に
レジスタ・ファイル70のDレジスタに集中化する。
ブロック310は負の即値オペランドに対する開始点と
なる。
なる。
ブロック310に入り、16進定数0FF00が内部バ
ス28におかれる。
ス28におかれる。
この時演算論理装置はDレジスタの内容の論理和を実施
し、内部バス28はその結果をDレジスタにおく。
し、内部バス28はその結果をDレジスタにおく。
この時FFSIGNフロツプは1にセットされ、負の(
直を表示する。
直を表示する。
要約すれば、ブロック310は、Dレジスタの左方バイ
ト(ビット位置10乃至IF)に対する命令の右方バイ
トに含まれる負の即値の符号付き拡張を行い、実行(X
E)ルーチン120に入る前にフロツプFFSIGNの
負の1へのセットヲ行う。
ト(ビット位置10乃至IF)に対する命令の右方バイ
トに含まれる負の即値の符号付き拡張を行い、実行(X
E)ルーチン120に入る前にフロツプFFSIGNの
負の1へのセットヲ行う。
他のタイプのアドレス・サブルーチンも又システムにお
いて与えらわるが、このサブルーチンは本発明のシステ
ムとは関連しない。
いて与えらわるが、このサブルーチンは本発明のシステ
ムとは関連しない。
次に第6図(第6A図乃至第6I)図)において、更に
詳細に間接指標およひオペランド取出(XR)ルーチン
117,118の関連部分について論述する。
詳細に間接指標およひオペランド取出(XR)ルーチン
117,118の関連部分について論述する。
XRルーチンに入ると、例えばSELレジスタ37の内
容のOPコードに従ってその種々のサブルーチンが実施
できる。
容のOPコードに従ってその種々のサブルーチンが実施
できる。
例えば、もしSELレジスタのビット1、即ち間接アド
レス指定ビットが2進数1にセットされると、ブロック
400に入りこれにより表示されるファームウエア操作
が実行される。
レス指定ビットが2進数1にセットされると、ブロック
400に入りこれにより表示されるファームウエア操作
が実行される。
データ記憶読出しサイクル開始(DMRCI)が実施さ
れ、これを行う際オペランドの指標付けされないアドレ
スを含むYレジスタ22は外部バス(BA)のアドレス
回線に転送される。
れ、これを行う際オペランドの指標付けされないアドレ
スを含むYレジスタ22は外部バス(BA)のアドレス
回線に転送される。
YレジスタはXAルーチンのファームウエア操作により
オペランドの間接アドレスを含むようセットされたこと
が判る。
オペランドの間接アドレスを含むようセットされたこと
が判る。
この時、ブロック400は16進定数0XXX0を内部
バス28を介してHレジスタにおく。
バス28を介してHレジスタにおく。
SELレジスタ37は又、前述の16進定数の4つの最
下位ビットの4ビットのSELレジスタへの転送により
クリアされる。
下位ビットの4ビットのSELレジスタへの転送により
クリアされる。
第1のフロツプ(FFIRST)も又2進数1にセツト
される。
される。
XRサブルーチンへのエントリはFFIRSTフロツプ
を2進数零にクリアすることが判る。
を2進数零にクリアすることが判る。
従って、ブロック400は再びFFIRSTフロツプを
2進数1にセットし、その結果ブロック414,422
、又は424において始まるXR指標サブルーチンの1
つが後で入れることができる。
2進数1にセットし、その結果ブロック414,422
、又は424において始まるXR指標サブルーチンの1
つが後で入れることができる。
XFルーチンにおいて前に述べたように、FFIRST
フロツプはブロック400のファームウエア操作により
2進数1にセットされる。
フロツプはブロック400のファームウエア操作により
2進数1にセットされる。
ブロック402によって示されるテストはブロック40
0のファームウエア操作の一部として実施される。
0のファームウエア操作の一部として実施される。
もしプロセサがLAF(長アドレス様式)のアドレス指
定モードで操作するならば、ブロック404に入る。
定モードで操作するならば、ブロック404に入る。
ブロック404へ入ると、先行のDMRCIにより要求
されるデータ・ワードがデータ・バッファ(BD)即ち
DTレジスタ23において聖得可能となる迄プロセサの
クロツクはストールされる。
されるデータ・ワードがデータ・バッファ(BD)即ち
DTレジスタ23において聖得可能となる迄プロセサの
クロツクはストールされる。
ブロック404のDSTALLが終ると、LAFアドレ
ス(BD)の第1のワードが内部バス28を介してHレ
ジスクに転送される。
ス(BD)の第1のワードが内部バス28を介してHレ
ジスクに転送される。
間接LAFアドレスの第1ワードも又、ALUを介して
レジスタ・ファイル70のEレジスタ(BO)に転送さ
れる。
レジスタ・ファイル70のEレジスタ(BO)に転送さ
れる。
間接LAFアドレスの第1のワードに対するポインタを
含むYレジスタは1だけ増分されて間接LAFアドレス
の第2のワードを指示する。
含むYレジスタは1だけ増分されて間接LAFアドレス
の第2のワードを指示する。
ブロック404はブロック406へ出て、このブロック
はデータ記憶読出しサイクル開始を実施して間接LAF
アドレスの第2のワードの読出しを開始する。
はデータ記憶読出しサイクル開始を実施して間接LAF
アドレスの第2のワードの読出しを開始する。
16進定数0FFF0は内部バス28に入れられ、その
時点でEレジスク(BO)にある間接LAFアドレスの
第1のワードに加算される。
時点でEレジスク(BO)にある間接LAFアドレスの
第1のワードに加算される。
フ節ツク408により表示されるテストはブロック40
6のファームウェア操作の一部として実施される。
6のファームウェア操作の一部として実施される。
もし定数のLAFアドレスの第1ワードへの加算の結果
として桁上げがビット位置10から生じると、無効アド
レスが指定され、ファームウエアは不当なアドレスを聖
扱うルーチンへ出る。
として桁上げがビット位置10から生じると、無効アド
レスが指定され、ファームウエアは不当なアドレスを聖
扱うルーチンへ出る。
もし桁上げがなければ、ブロック406はブロック41
0に出て、これが間接LAFアドレスの第2ワードが取
得可能となる迄データ・ストールを行う(DSTALL
)。
0に出て、これが間接LAFアドレスの第2ワードが取
得可能となる迄データ・ストールを行う(DSTALL
)。
この第2ワードがデータ・バツファ(DB)において取
得可能となる時、間接LAFアドレスの第1ワードの4
つの最下位ビットと共に内部バス28におかれ、これに
よりつなげられて20ビットのLAFアドレスを形成し
、これがYレジスタ22に転送される。
得可能となる時、間接LAFアドレスの第1ワードの4
つの最下位ビットと共に内部バス28におかれ、これに
よりつなげられて20ビットのLAFアドレスを形成し
、これがYレジスタ22に転送される。
この時ブロック410は別のXRルーチンへ出る。
一般に、XRルーチンに再び入ると、指標付け操作か通
常の読出し操作が生じる。
常の読出し操作が生じる。
ブロック400に戻ると、もしプロセサがSAF(短ア
ドレス指定様式)のアドレス指定モードで操作するなら
ば、ブロック400はブロック412への出口となる。
ドレス指定様式)のアドレス指定モードで操作するなら
ば、ブロック400はブロック412への出口となる。
ブロック412に入ると、1ワードのSAF間接アドレ
スがデータ・バソファ(BD)において取得可能となる
迄プロセサはクロックをストールする(DSTALL)
。
スがデータ・バソファ(BD)において取得可能となる
迄プロセサはクロックをストールする(DSTALL)
。
SAF間接アドレスが取得可能となると、ブロック41
2はこれを内部バス28(BI)を介してYレジスタ2
2におき、20ビットのYレジスタの最上位の4ビット
を零にセットする。
2はこれを内部バス28(BI)を介してYレジスタ2
2におき、20ビットのYレジスタの最上位の4ビット
を零にセットする。
ブロック412はこの時出口となり、再びXRルーチン
に入る。
に入る。
要約すれば、ブロック400において開始する間接XR
ルーチンはメモリーから間接アドレスを読出し、これを
Yレジスタ22におく。
ルーチンはメモリーから間接アドレスを読出し、これを
Yレジスタ22におく。
LAFアドレス指定の場合には、2ワードのデータがメ
モリーから読出されて、第1ワードの4つの最下位ビッ
トと第2ワードの16ビットを連結することにより20
ビットのアドレスが形成される。
モリーから読出されて、第1ワードの4つの最下位ビッ
トと第2ワードの16ビットを連結することにより20
ビットのアドレスが形成される。
第1ワードの最下位ビットは20ビットのLAFアドレ
スの最上位ビットである。
スの最上位ビットである。
SAFモードにある間、単ワードはメモリーから読出さ
れてYレジスクにおかれ、20ビットのYレジスタの4
つの最上位ビットは零に等しくなるようにセットされる
。
れてYレジスクにおかれ、20ビットのYレジスタの4
つの最上位ビットは零に等しくなるようにセットされる
。
ブロック402により示されるテストはハードウエア制
御フロップ54の1つであるFFLAFフロツプの状況
をテストすることが判る。
御フロップ54の1つであるFFLAFフロツプの状況
をテストすることが判る。
ブロック410又は412からのXRルーチンの再エン
トリと同時に、間接アドレス・ビット即ちSELレジス
タ37のビット1がリセットされ、その結果ブロック4
00において開始する間接ルーチンが再びエン もしクツツド又は2倍長ワード指柳付けが指定され、又
FFIRSTフロツプが2進数1であれば、ブロック4
14に入る。
トリと同時に、間接アドレス・ビット即ちSELレジス
タ37のビット1がリセットされ、その結果ブロック4
00において開始する間接ルーチンが再びエン もしクツツド又は2倍長ワード指柳付けが指定され、又
FFIRSTフロツプが2進数1であれば、ブロック4
14に入る。
ブロック414は、Dレジスク(DO)の1ビット位置
における符号付き拡張された指標値を左方に桁送りする
ことにより指標値を2倍にし、その結果を再びレジスタ
・ファイル70のDレジスタに戻す。
における符号付き拡張された指標値を左方に桁送りする
ことにより指標値を2倍にし、その結果を再びレジスタ
・ファイル70のDレジスタに戻す。
ブロック416によって示されるテストは、ブロック4
14のフアームウエア操作の一部として実施される。
14のフアームウエア操作の一部として実施される。
もしクワツド・ワード・オペランドがアドレス指定され
るならば、ブロック418に入り指標値は再びその値を
それ自体に加算することによって2倍になり、その結果
を再びDレジスタに戻す。
るならば、ブロック418に入り指標値は再びその値を
それ自体に加算することによって2倍になり、その結果
を再びDレジスタに戻す。
もし2倍長ワード・オペランドがアドレス指定されるな
らば、ブロック414はブロック420への出口となる
。
らば、ブロック414はブロック420への出口となる
。
次にブロック420は、加算器96を用いて4倍又は2
倍の指定された指標値を指定された基底レジスク(BB
)の内容に加算し、その結果を内部バス28を介してY
レジスタ22におく。
倍の指定された指標値を指定された基底レジスク(BB
)の内容に加算し、その結果を内部バス28を介してY
レジスタ22におく。
FFWRAPフロツプも又セットされて、20ビットを
越える無効アドレスが形成されたかどうかを表示する。
越える無効アドレスが形成されたかどうかを表示する。
次にブロック420は再びXRルーチンに入る。
要約すれば、ブロック414で開始するファームウエア
操作は、前のXAルーチンによりDレジスタに集中化さ
れた指標値を2倍化又は4倍化し、次いでこの指標値を
指定された基底レジスタの内容に加算してYレジスク2
2に最後の有効アドレスを残す。
操作は、前のXAルーチンによりDレジスタに集中化さ
れた指標値を2倍化又は4倍化し、次いでこの指標値を
指定された基底レジスタの内容に加算してYレジスク2
2に最後の有効アドレスを残す。
ワード・オペランドに対す,る指標付けが指定されるか
、FFIRSTフロツプが2進数1であれば、ブロック
422に入る。
、FFIRSTフロツプが2進数1であれば、ブロック
422に入る。
ブロック422は、Dレジスタに見出される指定された
指標レジスクの符号付き拡張値を加算器96を介して指
定された基底レジスタの内容に加算し、20ビットの加
算結果を内部バス28を介してYレジスタ22におき、
又FFWRAPフロツプをセットしてXRルーチンから
出て再びこれに入る前に可能な無効アドレスを表示する
。
指標レジスクの符号付き拡張値を加算器96を介して指
定された基底レジスタの内容に加算し、20ビットの加
算結果を内部バス28を介してYレジスタ22におき、
又FFWRAPフロツプをセットしてXRルーチンから
出て再びこれに入る前に可能な無効アドレスを表示する
。
要約すれば、ブロック422は、指標値を基準値に加算
することによって最終有効アドレスを計算し、その結果
をYレジスク22におく。
することによって最終有効アドレスを計算し、その結果
をYレジスク22におく。
もしバイト又はビットオペランドに対する指標付けが指
定され、又FFIRSTフロツプが2進数1であれば、
ブロック424に入る。
定され、又FFIRSTフロツプが2進数1であれば、
ブロック424に入る。
ブロック424はDレジスタにおける指標値を内部バス
28におき、RALU12の桁送りロジック80を用い
て指標値を1ビット位置だけ右方に桁送りを行い、ビッ
ト位置1Fから桁送りされたビットをXBレジスタ32
におき、桁送りされた指標値を再びDレジスタに戻す。
28におき、RALU12の桁送りロジック80を用い
て指標値を1ビット位置だけ右方に桁送りを行い、ビッ
ト位置1Fから桁送りされたビットをXBレジスタ32
におき、桁送りされた指標値を再びDレジスタに戻す。
ブロック426により示されるテストも又ブロツク42
4のファームウエア操作の一部として行ワレる。
4のファームウエア操作の一部として行ワレる。
もしアドレス指定が半ワード・オペランド即ちバイトに
対するものであれば、ブロック424はブロック434
への出口となる。
対するものであれば、ブロック424はブロック434
への出口となる。
もしアドレス指定が1ビットに対するものであれば、ブ
ロック424からブロック428に行き、これがブロツ
ク424に関して既に述べたと同じ操作、即ち指標値を
1ビット位置だけ右方の桁送りを行う。
ロック424からブロック428に行き、これがブロツ
ク424に関して既に述べたと同じ操作、即ち指標値を
1ビット位置だけ右方の桁送りを行う。
ブロック430と432は、同様にこの指標値をブロッ
ク434へ出る前に更に2位置だけ右方に桁送りする。
ク434へ出る前に更に2位置だけ右方に桁送りする。
ブロック434においては、Dレジスタに含まれる桁送
りされた指標値は符号付き拡張され、加算器S6を介し
て指定された基底レジスクの内容に加算され、内部バス
28を介してYレジスタ22におかれる。
りされた指標値は符号付き拡張され、加算器S6を介し
て指定された基底レジスクの内容に加算され、内部バス
28を介してYレジスタ22におかれる。
又、FPWRAPフロツプもセットされて可能な無効ア
ドレスを表示する。
ドレスを表示する。
要約すれば、もし指標付けがバイト又はビット・レベル
に対するものであれば、ブロック424において開始す
るファームウエア操作はこの指標値を1位置ヌは4位置
だけ右方に桁送りして、その結果桁送りされた指標値は
ワード・レベルに位置合せされ、この桁送りされた値は
次に指定された基底レジスクの内容に加算されて最終有
効アドレスを形成し、その結果はYレジスクに記憶され
る。
に対するものであれば、ブロック424において開始す
るファームウエア操作はこの指標値を1位置ヌは4位置
だけ右方に桁送りして、その結果桁送りされた指標値は
ワード・レベルに位置合せされ、この桁送りされた値は
次に指定された基底レジスクの内容に加算されて最終有
効アドレスを形成し、その結果はYレジスクに記憶され
る。
XBレジスタも又セットされて、バイト又はビットのア
ドレス指定において後で使用するため指標値から桁送り
された1ビット又は4ビットを含む。
ドレス指定において後で使用するため指標値から桁送り
された1ビット又は4ビットを含む。
この時ブロック434からXRルーチンに行く。
オペランド読出しルーチン118の通常の読出しサブル
ーチンに関しては、データ記憶読出しサイクル(DMR
CI)がブロック436により示されるファームウエア
・ワードによって表示さわる如く開始される。
ーチンに関しては、データ記憶読出しサイクル(DMR
CI)がブロック436により示されるファームウエア
・ワードによって表示さわる如く開始される。
Eレジスタ(B0)も又零にクリアされる。
ブロック438により示されるテストも又ブロック43
6のファームウエア操作の一部として実施される。
6のファームウエア操作の一部として実施される。
もし半ワード・オペランドが読出され中であればブロッ
ク440に入り、レジスク・ファイル70のDレジスク
(D0)は零にクリアされ、最後の有効アドレスが外部
バス(BA)におかれる。
ク440に入り、レジスク・ファイル70のDレジスク
(D0)は零にクリアされ、最後の有効アドレスが外部
バス(BA)におかれる。
この時ブロック440からブロック442に行き、この
ブロックが命令オペランドを含むデータのワードが増得
される迄プロセサのクロツクをストールする。
ブロックが命令オペランドを含むデータのワードが増得
される迄プロセサのクロツクをストールする。
データ・ワードが取得されると、データ・バツファ(B
D)が内部バス28を介してHレジスタ41へ。
D)が内部バス28を介してHレジスタ41へ。
VALUを介してDレジスタへ転送される。
ブロック444により示されるテストは、ブロック44
2のファームウエア操作の一部として実施される。
2のファームウエア操作の一部として実施される。
もしXBレジスタ32のビット位置0が零を含むならば
、オペランドはワードの左方バイトにあってブロック4
46に入る。
、オペランドはワードの左方バイトにあってブロック4
46に入る。
ブロック446はHレジスタの左方バイト(ビット10
乃至11)を内部バス28の右方バイト回線におき、左
方バイトの最上位ビットを内部バス28の左方バイト回
線に、メALU(加算器96)を介してDレジスタにお
く。
乃至11)を内部バス28の右方バイト回線におき、左
方バイトの最上位ビットを内部バス28の左方バイト回
線に、メALU(加算器96)を介してDレジスタにお
く。
FFSIGNフロツプも又セットされてオペランドの左
方バイトの最上位ビットを含む。
方バイトの最上位ビットを含む。
もしオペランドが右方バイトにあればブロック442か
らブロック448に入り、Dレジスタの右方バイトは内
部バス28の右方バイト回線におかれ、Hレジスタの右
方バイトの最上位ビットは内部バス28の左方バイト回
線におかれ、又ALUを介してDレジスタに転送される
。
らブロック448に入り、Dレジスタの右方バイトは内
部バス28の右方バイト回線におかれ、Hレジスタの右
方バイトの最上位ビットは内部バス28の左方バイト回
線におかれ、又ALUを介してDレジスタに転送される
。
FFSIGNフロツプも又、この時右方バイトの最上位
ビットを含む内部バス28のビット10にセットされる
。
ビットを含む内部バス28のビット10にセットされる
。
要約すれば、もしバイト・オペランドが読出され中であ
れば、ブロック436で始まる各ブロックはメモリーか
らオペランドを含むワードを読出し、これをHレジスタ
におく。
れば、ブロック436で始まる各ブロックはメモリーか
らオペランドを含むワードを読出し、これをHレジスタ
におく。
この時Hレジスタは左方又は右方のバイトをDレジスタ
(D0)の右方バイト位置におくために使用される。
(D0)の右方バイト位置におくために使用される。
もしオペランドが半ワード・オペランドでなければ、ブ
ロック436からブロック450に入る。
ロック436からブロック450に入る。
ブロック450は、ブロック442により指定されたも
のと同じファームウエア操作を行う。
のと同じファームウエア操作を行う。
即ちオペランドがメモリーから取得される迄プロセサの
クロツクをストールし、取得と同時に内部バス28を介
してHレジスタに、又ALUを介してDレジスタにおか
れる。
クロツクをストールし、取得と同時に内部バス28を介
してHレジスタに、又ALUを介してDレジスタにおか
れる。
更に、ブロック450はFFSIGNフロツプをオペラ
ンドの最上位ビットにセットする。
ンドの最上位ビットにセットする。
ブロック452によって示されるテストはフ尤ツク45
0のファームウエア操作の一部として実施される。
0のファームウエア操作の一部として実施される。
もしオペランドが1ワードより小さいかこれと等しい、
即ち1ビット又は1ワードのオペランドであれば、ブロ
ック450から実行(XE)ルーチンに行く。
即ち1ビット又は1ワードのオペランドであれば、ブロ
ック450から実行(XE)ルーチンに行く。
もしオペランドが2倍長ワード・オペランドであれば、
ブロック450からブロック454に行く。
ブロック450からブロック454に行く。
ブロック454はYレジスタ22に含まれるオペランド
の第1ワードの記憶アドレスを外部バス(BA)に、又
内部バス28を介してRAM13の場所8(RAM8)
におく。
の第1ワードの記憶アドレスを外部バス(BA)に、又
内部バス28を介してRAM13の場所8(RAM8)
におく。
次に、Yレジスタの内容は1だけ増分され、その結果Y
レジスタは2倍長ワード・オペランドの第2ワードを指
示する。
レジスタは2倍長ワード・オペランドの第2ワードを指
示する。
ブロック454は又Dレジスタのオペランドの第1ワー
ドをQレジスタ76におき、次いでブロック456に行
く。
ドをQレジスタ76におき、次いでブロック456に行
く。
ブロック456はデータ記憶読出しサイクル(DMRC
I)を実施して2倍長ワード・オペランドの第2ワード
の読出しを開始する。
I)を実施して2倍長ワード・オペランドの第2ワード
の読出しを開始する。
2倍長ワード・オペランドの妥当性はこの時16進定数
0FFF0を内部バスにおきこれを加算器96を用いて
Dレジスタ(D0)に含まれるオペランドの第1ワード
に加算することによりテストされる。
0FFF0を内部バスにおきこれを加算器96を用いて
Dレジスタ(D0)に含まれるオペランドの第1ワード
に加算することによりテストされる。
この加算から生じるビット位置10からの桁上げは、後
で2倍長ワード・オペランドの妥当性のテストのためF
FMISCフロツプにおかれる。
で2倍長ワード・オペランドの妥当性のテストのためF
FMISCフロツプにおかれる。
桁上げは、オペランドの第1ワードの12個の最上位ビ
ットが全て零ではないこと、従ってこのオペランドは無
効の2倍長ワードオベランドであることを表示する。
ットが全て零ではないこと、従ってこのオペランドは無
効の2倍長ワードオベランドであることを表示する。
従ってブロック458は、データ・バツファ(BD)に
おいて2倍長ワード・オペランドの第2のワードが増得
可能になる迄プロセサのクロツクをストールする。
おいて2倍長ワード・オペランドの第2のワードが増得
可能になる迄プロセサのクロツクをストールする。
オペランドの第2ワードが聖得されると、Hレジスタに
含まれるオペランドの第1ワードの4つの最下位ビット
と共に内部バス28におかれる。
含まれるオペランドの第1ワードの4つの最下位ビット
と共に内部バス28におかれる。
次に内部バス28の20ビットの内容はDレジスタに転
送される。
送される。
FFSIGNフロツプはこの時セットされて20ビット
・オペランドの最上位ビットを含む。
・オペランドの最上位ビットを含む。
ブロック460により表示されるテストは、ブロック4
58のファームウエア操作によって実施される。
58のファームウエア操作によって実施される。
もしFレジスタ36のビット位置6が2進数1と等しく
なければ、ブロック458から実行(XE)ルーチンに
行く。
なければ、ブロック458から実行(XE)ルーチンに
行く。
もしFレジスタのビット位置6が2進数1であれば、実
行中の命令はスワツプ基準命令であって、フ宅ツク46
2に入る。
行中の命令はスワツプ基準命令であって、フ宅ツク46
2に入る。
ブロック462はYレジスタを復元して、実行ルーチン
に行く前に、RAM13の場所8の内容をYレジスタ2
2に転送することにより2倍長ワード・オペランドの第
1ワードを指示する。
に行く前に、RAM13の場所8の内容をYレジスタ2
2に転送することにより2倍長ワード・オペランドの第
1ワードを指示する。
要約すれば、ブロック450で始まるブロックにより行
われるファームウエア操作はメモリーからオペランドを
検索し、これを実行ルーチンに行く前にレジスタ・ファ
イル70のDレジスタにおく。
われるファームウエア操作はメモリーからオペランドを
検索し、これを実行ルーチンに行く前にレジスタ・ファ
イル70のDレジスタにおく。
NO READサブルーチンには、Fレジスタ36にお
けるOPコードに従い、例えばもし命令コードが記憶基
準命令を指定すれば入る。
けるOPコードに従い、例えばもし命令コードが記憶基
準命令を指定すれば入る。
ブロック466により示されるテストは、ブロック46
4のファームウエア操作の一部として実施される。
4のファームウエア操作の一部として実施される。
ブロック464はFFWRAPフロツプの状況をテスト
し、このフロツプは前述の如く無効アドレスが前に計算
されていたならば2進数1に等しくなるようセットされ
る。
し、このフロツプは前述の如く無効アドレスが前に計算
されていたならば2進数1に等しくなるようセットされ
る。
もしFFWRAPフロツプが2進数1にセットされるな
らば、ブロツク464は不当アドレス・トラップ・ルー
チンに行く。
らば、ブロツク464は不当アドレス・トラップ・ルー
チンに行く。
もしこのフロツプがセットされなければ、ブロツク46
4は実行(XE)ルーチンに行く。
4は実行(XE)ルーチンに行く。
Fレジスタ36におけるOPコードに従って読出し変更
書込みルーチンに入るが、例えばもしOPコードが増分
命令を指定するならば、指定された記憶場所の内容が増
分されたメモリーから読出されて、増分された記憶場所
へのアクセスへ介入を許容することなくメモリーにおい
て置換される。
書込みルーチンに入るが、例えばもしOPコードが増分
命令を指定するならば、指定された記憶場所の内容が増
分されたメモリーから読出されて、増分された記憶場所
へのアクセスへ介入を許容することなくメモリーにおい
て置換される。
このように、ブロック468に入ると同時に、ロックを
伴うデータ記憶読出しサイクル開始が行われてYレジス
タにおいて指定された記憶場所をメモリーから読出し、
Eレジスタ(BO)は零にクリアされる。
伴うデータ記憶読出しサイクル開始が行われてYレジス
タにおいて指定された記憶場所をメモリーから読出し、
Eレジスタ(BO)は零にクリアされる。
この時ブロック468からブロック470に行き、この
ブロックはブロック472に示されたテストを行う。
ブロックはブロック472に示されたテストを行う。
もしロックを伴うDMRCIから肯定応答(ACK)が
検索されなければ、ブロック470からブロック468
に行き、このブロツクは肯定応答が受取られる迄DMR
CIを実施し続ける。
検索されなければ、ブロック470からブロック468
に行き、このブロツクは肯定応答が受取られる迄DMR
CIを実施し続ける。
肯定応答を受取ると、Yレジスタはおいて指定された記
憶場所を含むメモリーがロックされた操作を行う別のプ
ロセサによりその時点で使用中でないことを表示し、ブ
ロック470からブロック474に行く。
憶場所を含むメモリーがロックされた操作を行う別のプ
ロセサによりその時点で使用中でないことを表示し、ブ
ロック470からブロック474に行く。
ブロック474は、記憶場所がデータ・バツファ(BD
)において取得可能となる迄プロセサのクロツクをスト
ールする。
)において取得可能となる迄プロセサのクロツクをスト
ールする。
次にこのデータ・バツファは内部バス28を介してDレ
ジスタおよびHレジスタ41に転送され、FFSIGN
フロツプはメモリーから読出されたオペランドの最上位
ビットにセットされる。
ジスタおよびHレジスタ41に転送され、FFSIGN
フロツプはメモリーから読出されたオペランドの最上位
ビットにセットされる。
この時ブロック474は実行(XE)ルーチンに行く。
要約すれば、ブロック468において始まるファームウ
エア操作は、もしロックされた操作を実施する別のプロ
セサによりその時メモリーが使用中でなければメモリー
からオペランドを読出し、このオペランドが取得可能に
なると、実行ルーチン120に行く前にこのオペランド
をDレジスクおよびHレジスタにおく。
エア操作は、もしロックされた操作を実施する別のプロ
セサによりその時メモリーが使用中でなければメモリー
からオペランドを読出し、このオペランドが取得可能に
なると、実行ルーチン120に行く前にこのオペランド
をDレジスクおよびHレジスタにおく。
本システムにおいては他のタイプの間接指標兼オペラン
ド増出し(XR)サブルーチンも与えられるが、このサ
ブルーチンは本発明のシステムに関連するものではない
。
ド増出し(XR)サブルーチンも与えられるが、このサ
ブルーチンは本発明のシステムに関連するものではない
。
喪約すれば、命令取出しルーチン(XF)112は命令
の第1ワードをFレジスクおよびDレジスタにおいてP
レジスタを増分する。
の第1ワードをFレジスクおよびDレジスタにおいてP
レジスタを増分する。
アドレス生成ルーチン(XA)113,115,116
は、XRルーチンに行く前に指標付けされないオペラン
ド・アドレスをYレジスタに、又指標値をDレジスクに
集中化する。
は、XRルーチンに行く前に指標付けされないオペラン
ド・アドレスをYレジスタに、又指標値をDレジスクに
集中化する。
即値オペランドの場合には、XEルーチンに行く前にX
AルーチンがオペランドをDレジスタに集中化する。
AルーチンがオペランドをDレジスタに集中化する。
間接指標ルーチンおよびオペランド取出しルーチン(X
R)117,118はYレジスタにおける指標付けされ
ないオペランド・アドレスをDレジスタの指標値と組合
せ、メモリーから最後の有効アドレスにより指定行(X
E)ルーチン120に行く前にDレジスタに集中する。
R)117,118はYレジスタにおける指標付けされ
ないオペランド・アドレスをDレジスタの指標値と組合
せ、メモリーから最後の有効アドレスにより指定行(X
E)ルーチン120に行く前にDレジスタに集中する。
次に第7図においては、バイト又はビットがアドレス指
定される方法について更に示される。
定される方法について更に示される。
基準アドレス700は指標付けされず、指定された基底
レジスタ(BB)に含まれている。
レジスタ(BB)に含まれている。
指標値702は、通常レジスタ・ファイル70に含まれ
るDレジスク(D0)におかれる。
るDレジスク(D0)におかれる。
バイト又はビット操作があるかどうかに従って、Dレジ
スタの内容は、もしこれがバイト操作であれば1回、又
これが介在するビット操作であれば4回XBレジスタに
桁送りされる。
スタの内容は、もしこれがバイト操作であれば1回、又
これが介在するビット操作であれば4回XBレジスタに
桁送りされる。
もしこれが単にアドレス指定されるべきlワードであれ
ば桁送りは生じない。
ば桁送りは生じない。
XBレジスタ32に桁送りされる値はβを付され、基準
アドレスからの指標付けの「ワード」部分は指標値70
2においてαを付されるが、α値はDレジスタにある。
アドレスからの指標付けの「ワード」部分は指標値70
2においてαを付されるが、α値はDレジスタにある。
従って、基準アドレス700はこのアドレスにより表示
される記憶場所における記憶装置704をアドレス指定
し、このα指標値はワード記憶場所に対するワード指標
付けを行い、β指標値はXBレジスタ32における1つ
の桁送りされたビットに従ってアドレス指定されたワー
ドの左方バイト又は右方バイトのいずれかに対する指標
付けを行い、あるいはβ指標値はもしXBレジスタに桁
送りされたβ値の長さが4ビットであれば例えば16ビ
ットのアドレス指定ワードの1つに対する指標付けを行
う。
される記憶場所における記憶装置704をアドレス指定
し、このα指標値はワード記憶場所に対するワード指標
付けを行い、β指標値はXBレジスタ32における1つ
の桁送りされたビットに従ってアドレス指定されたワー
ドの左方バイト又は右方バイトのいずれかに対する指標
付けを行い、あるいはβ指標値はもしXBレジスタに桁
送りされたβ値の長さが4ビットであれば例えば16ビ
ットのアドレス指定ワードの1つに対する指標付けを行
う。
前述の指標付け操作は、図示の如く指標値の右方桁送り
よりも左方桁送りを行うためのこのような指標付け手法
を用いて、2倍長ワード、4倍長ワード又はそれ以上の
ワードを含む操作のために使用されることを理解すべき
である。
よりも左方桁送りを行うためのこのような指標付け手法
を用いて、2倍長ワード、4倍長ワード又はそれ以上の
ワードを含む操作のために使用されることを理解すべき
である。
第8図においては、1ワードに含まれる1バイトがメモ
リーへ瞥゛込まれあるいはこれから読出される方法につ
いて説明する。
リーへ瞥゛込まれあるいはこれから読出される方法につ
いて説明する。
プロセサからメモリー迄のインターフェースは、外部バ
スと結合する内部バスの左方回線28−Lと右方回M2
s−Rを介し、前記外部バスは左方デーク回線44−L
と右方データ回線44−Rとアドレス回線45からなる
。
スと結合する内部バスの左方回線28−Lと右方回M2
s−Rを介し、前記外部バスは左方デーク回線44−L
と右方データ回線44−Rとアドレス回線45からなる
。
外部バスも又第1図に示す如く制御回線を有する。
Hレジスタは素子41として示される。レジスタ・ファ
イル70のDレジスタは素子70−0として、又レジス
タ・ファイル70のEレジスタは素子70−8として示
される。
イル70のDレジスタは素子70−0として、又レジス
タ・ファイル70のEレジスタは素子70−8として示
される。
DおよびEレジスタはマルチプレクサ90を介してRA
LU12の加算器96と結合されるが、このレジスタは
マルチプレクサ88を介して結合することもできる。
LU12の加算器96と結合されるが、このレジスタは
マルチプレクサ88を介して結合することもできる。
XBレジスタ32も又、外部バスのアドレス回線45と
共にANDゲート43を介してHレジスタ41と結合さ
れる如く示される。
共にANDゲート43を介してHレジスタ41と結合さ
れる如く示される。
完全ワード読出し又は書込み操作に対しては、データが
メモリーから読出される時最初にHレジスタ41により
操作されることなく、あるいはデータがメモリーに書込
まれる時Hレジスタ41により操作されることにより直
接RALU12に通過する。
メモリーから読出される時最初にHレジスタ41により
操作されることなく、あるいはデータがメモリーに書込
まれる時Hレジスタ41により操作されることにより直
接RALU12に通過する。
第8図の以下の論議を簡単にするため、レジスタD,E
およびHは各々16ビット巾で2つの8ビット・バイト
のデータを提供するものとする。
およびHは各々16ビット巾で2つの8ビット・バイト
のデータを提供するものとする。
この簡単化のための仮定は、本構成においては、メモリ
ーがそれぞれ16ビットのワードを含み、従って20ビ
ットのレジスタの最上位の4ビットはメモリーからの読
出し又はメモリーへの書込みの際は重要でないため可能
である。
ーがそれぞれ16ビットのワードを含み、従って20ビ
ットのレジスタの最上位の4ビットはメモリーからの読
出し又はメモリーへの書込みの際は重要でないため可能
である。
半ワード書込み操作は2ステップで行われる。
第1のステップの間、書込まれるべきバイトは、内部バ
ス28およびHレジスタ41の右方バイトにゲートされ
るEレジスタ70−8の右方バイトに含まれている。
ス28およびHレジスタ41の右方バイトにゲートされ
るEレジスタ70−8の右方バイトに含まれている。
第2のステップにおいては、もし右方バイトがXBレジ
スタ32が2進数零又は1を含むことに応じて書込まれ
るならば、Eレジスタ70−8は再び内部バス28、外
部バスのデータ回線44−Lと44−Rにゲートされる
。
スタ32が2進数零又は1を含むことに応じて書込まれ
るならば、Eレジスタ70−8は再び内部バス28、外
部バスのデータ回線44−Lと44−Rにゲートされる
。
この結果メモリーは右方デーク回線44−R上で右方バ
イトを受取り、アドレス回線45の一方はXBレジスタ
32の値(2進数1)を含んでメモリーに対して右方バ
イトが書込まれるべきことを表示する。
イトを受取り、アドレス回線45の一方はXBレジスタ
32の値(2進数1)を含んでメモリーに対して右方バ
イトが書込まれるべきことを表示する。
もし左方バイトがメモリーに書込まれるならば、第2ス
テップにおいてファームウエア・ワードのBIフィール
ドに応答してHレジスタ41が使用可能になり、右方バ
イトは経路41−2を介して左方バイト位置に転送され
、内部バス28と外部バスの左方のデータ回線44−L
におかれる。
テップにおいてファームウエア・ワードのBIフィール
ドに応答してHレジスタ41が使用可能になり、右方バ
イトは経路41−2を介して左方バイト位置に転送され
、内部バス28と外部バスの左方のデータ回線44−L
におかれる。
この同じ第2ステップの間左方バイトは右方の内部バス
回線28−Rにゲートされ、その後外部バスの右方デー
タ回線44Rにゲートされる。
回線28−Rにゲートされ、その後外部バスの右方デー
タ回線44Rにゲートされる。
左方バイトの書込みの場合、XBレジスタ32の値(2
進数零)も又外部バスのアドレス回線45におかれて左
方バイトがメモリーに書込まれるべきことを表示する。
進数零)も又外部バスのアドレス回線45におかれて左
方バイトがメモリーに書込まれるべきことを表示する。
データの左方又は右方のバイトのメモリーへの書込にお
いては、メモリーは外部バスのデータ回線44上の2バ
イトの情報を受取ることに注意され度い。
いては、メモリーは外部バスのデータ回線44上の2バ
イトの情報を受取ることに注意され度い。
メモリーに書込まれるバイトは、第8図のロジックによ
って適正なバイト位置に予め設定され、その結果メモリ
ーはアドレス回線45において探査するだけでよく、前
記アドレス回線はXBレジスタ32から受取った左右の
標識を含み、どのバイトがメモリーに書込まれるかを決
定し、これをメモリーに書込む前にメモリー・コントロ
ーラ内の情報を桁送りする必要はない。
って適正なバイト位置に予め設定され、その結果メモリ
ーはアドレス回線45において探査するだけでよく、前
記アドレス回線はXBレジスタ32から受取った左右の
標識を含み、どのバイトがメモリーに書込まれるかを決
定し、これをメモリーに書込む前にメモリー・コントロ
ーラ内の情報を桁送りする必要はない。
半ワード読出し操作も又2ステップで行われる。
第1のステップの間、外部バスのデータ回線44のデー
タは内部バス28と、Hレジスタ41およびDレジスタ
70−0にゲートされる。
タは内部バス28と、Hレジスタ41およびDレジスタ
70−0にゲートされる。
もし左方バイトがメモリーから読出されると、第2のス
テップにおいてHレジスタの左方バイトは経路41−3
を介して右方の内部バス回線28Rに転送され、左方バ
イトの最上位ビットは経路41−4を介して符号付き拡
張され、左方の内部バス回線28Lに現われる。
テップにおいてHレジスタの左方バイトは経路41−3
を介して右方の内部バス回線28Rに転送され、左方バ
イトの最上位ビットは経路41−4を介して符号付き拡
張され、左方の内部バス回線28Lに現われる。
この時内部バス28のデータがDレジスタ70−7にゲ
ートされ、その結果左方バイトは右方のバイト位置にあ
り、左方バイト位置は左方バイトの最上位ビットの符号
付き拡張を含む。
ートされ、その結果左方バイトは右方のバイト位置にあ
り、左方バイト位置は左方バイトの最上位ビットの符号
付き拡張を含む。
もし右方バイトがメモリーから読出されるならば、Dレ
ジスタ70−0の右方バイトは、経路41−2上のHレ
ジスタからの右方バイトの上位ビットと共に内部バス2
8にゲートされ、その結果右方バイトの符号付き拡張を
生じる。
ジスタ70−0の右方バイトは、経路41−2上のHレ
ジスタからの右方バイトの上位ビットと共に内部バス2
8にゲートされ、その結果右方バイトの符号付き拡張を
生じる。
この時内部バス28はDレジスタ70−0にゲートされ
、その結果右方バイトは右方パイト位置にあり、左方バ
イト位置は右方バイトの最上位ビットの符号付き拡張を
含む。
、その結果右方バイトは右方パイト位置にあり、左方バ
イト位置は右方バイトの最上位ビットの符号付き拡張を
含む。
次に第9図においては、第1図および第2図のロジック
についてシフト又は指標付け操作が行われる方法をfl
Thして更に詳細に示される。
についてシフト又は指標付け操作が行われる方法をfl
Thして更に詳細に示される。
指標付け操作の間、指標値はレジスタ・ファイル70に
含まれるDレジスタにおかれる。
含まれるDレジスタにおかれる。
この時Fレジスタ36におけるOPコードがテストされ
、これが完全ワード又は非完全ワードの操作であるかど
うかを調べる。
、これが完全ワード又は非完全ワードの操作であるかど
うかを調べる。
非完全ワード操作とはバイト操作又はビット操作を意味
する。
する。
もしこれが完全ワード命令であれば、指標付けは既に適
正に位置合せされ、16ビットの指標値を20ビットに
符号付き拡張した後、指標付けに関してはこれ以上の操
作を必要としない。
正に位置合せされ、16ビットの指標値を20ビットに
符号付き拡張した後、指標付けに関してはこれ以上の操
作を必要としない。
もしこれが半ワード即ちビット命令であれば、この指標
値を1回以上桁送りすることが必要である。
値を1回以上桁送りすることが必要である。
この桁送りはRALU12によって行われ、Dレジスタ
の内容は右方ラツチ86を介して抜出される。
の内容は右方ラツチ86を介して抜出される。
この時Dレジスタからの出力はマルチプレクサ90を通
り加算器96を介して桁送りロジック80に送られ、こ
こで右方に桁送りされ次いで再びDレジスタに戻される
。
り加算器96を介して桁送りロジック80に送られ、こ
こで右方に桁送りされ次いで再びDレジスタに戻される
。
1ビット位置はプロセサのクロツク・サイクル毎に桁送
りされる。
りされる。
もしこれがバイト操作であればこれ以上の桁送りは要求
されない。
されない。
桁送り操作が生じると同時に、Dレジスタの最上位ビッ
ト即ち指標値の内容の符号を表示するビットがマルチプ
レクサ98とロジック61を経て内部バス28に与えら
れる。
ト即ち指標値の内容の符号を表示するビットがマルチプ
レクサ98とロジック61を経て内部バス28に与えら
れる。
この操作により、Dレジスタのこのビット零は、本発明
に関連しない他の入力を含むセレクク38のある桁送り
入力として使用可能となる.選択された入力は、制御ス
トア・ワード又はファームウエア・ワードのSMフィー
ルドと共にFレジスタ36のOPコードに依存する。
に関連しない他の入力を含むセレクク38のある桁送り
入力として使用可能となる.選択された入力は、制御ス
トア・ワード又はファームウエア・ワードのSMフィー
ルドと共にFレジスタ36のOPコードに依存する。
Dレジスタのビット零は、これも又桁送りロジックに対
する入力として制御ストア・ワードのSMフィールドに
応答してゲート39を介して使用可能となりこの桁送り
ロジックの桁送り入力に符号付き拡張を生じ、即ちDレ
ジスタにおける桁送の後でさえ符号が同じであることを
表示するビット零の状態に前からあった同じビットを与
える。
する入力として制御ストア・ワードのSMフィールドに
応答してゲート39を介して使用可能となりこの桁送り
ロジックの桁送り入力に符号付き拡張を生じ、即ちDレ
ジスタにおける桁送の後でさえ符号が同じであることを
表示するビット零の状態に前からあった同じビットを与
える。
このように、桁送り操作の間空にされることにより指標
値に対して適正な符号を維持する左方ビットに符号付き
拡張が与えられる。
値に対して適正な符号を維持する左方ビットに符号付き
拡張が与えられる。
このように、Dレジスタにおける指標値によって表示さ
れる変位の方向は一定の状態を維持する。
れる変位の方向は一定の状態を維持する。
Dレジスタの桁送りの間右方に桁送りされるビットは、
ビット位置XB(0)に対するXBレジスタ32への入
力として与えられる。
ビット位置XB(0)に対するXBレジスタ32への入
力として与えられる。
制御ストア・フィールド(GP)は、Dレジスタの桁送
りの間XBレジスタに右方に桁送りさせ、その結果桁送
りされたビットは、ワードがメモリーから取出される時
右方バイト対左方バイ1への選択に後で使用するための
ビット位置XB(0)に捕捉される。
りの間XBレジスタに右方に桁送りさせ、その結果桁送
りされたビットは、ワードがメモリーから取出される時
右方バイト対左方バイ1への選択に後で使用するための
ビット位置XB(0)に捕捉される。
前述の如く、この1ビットの桁送りの後、Fレジスタ3
6のOPコードはテスト・ロジック50によってテスト
されてこれがバイトあるいはビット操作であることを決
定する。
6のOPコードはテスト・ロジック50によってテスト
されてこれがバイトあるいはビット操作であることを決
定する。
もしこれがビットOPコードであれば、桁送り操作が更
に3回行われる。
に3回行われる。
これが行われる毎に、Dレジスタの符号は桁送りされ、
即ち更に1ビット拡張され、前述の如くDレジスタにお
ける連続ビットの桁送りが生じ、連続的に位置XB(0
)を経てXBレジスタの残りの3位置に与えられ、その
結果既にビット位置XB(0)にあったものがこの時ビ
ット位置XB(3)に来る。
即ち更に1ビット拡張され、前述の如くDレジスタにお
ける連続ビットの桁送りが生じ、連続的に位置XB(0
)を経てXBレジスタの残りの3位置に与えられ、その
結果既にビット位置XB(0)にあったものがこの時ビ
ット位置XB(3)に来る。
このように、ビット操作のためのDレジスタにおける最
も右方のビット即ち最上位のビット1Fは最後に転送さ
れて位置XB(3)におかれるが、ビット1Eは位置X
B(2)におかれる如くである。
も右方のビット即ち最上位のビット1Fは最後に転送さ
れて位置XB(3)におかれるが、ビット1Eは位置X
B(2)におかれる如くである。
XBレジスタ32におかれた情報の用途は下記の如くで
ある。
ある。
半ワード読出し操作に対しては、XBレジスタ32はX
B(0)位置に1ビットを含む。
B(0)位置に1ビットを含む。
このことは、バイト・セレククがメモリーにおけるアド
レスとなるワードにおいて左方バイト又は右方バイトを
選択したかどうかを表示し、2進数零は左方を2進数1
は右方を示す。
レスとなるワードにおいて左方バイト又は右方バイトを
選択したかどうかを表示し、2進数零は左方を2進数1
は右方を示す。
半ワード読出し操作の間、このビットは、制御ストア・
ワードのBIフィールドからの使用可能入力を含むゲー
ト43によりHレジスタ41を制御するために使用され
る。
ワードのBIフィールドからの使用可能入力を含むゲー
ト43によりHレジスタ41を制御するために使用され
る。
指定された基底レジスタの内容プラスDレジスタの指標
値の和を用いてメモリーからワードが読出される。
値の和を用いてメモリーからワードが読出される。
前述の如く、もしXB(0)が2進数零であれば、Hレ
ジスタ41の入力側のデータの左半部はHレジスタの右
方バイトへの複写であり、左方バイトの最上位ビットは
、Hレジスタ41の左方バイトに、従って加算器96の
入力側に符号付き拡張される。
ジスタ41の入力側のデータの左半部はHレジスタの右
方バイトへの複写であり、左方バイトの最上位ビットは
、Hレジスタ41の左方バイトに、従って加算器96の
入力側に符号付き拡張される。
もしXB(0)が2進数1であれば、データは右方から
右方へ通過する。
右方へ通過する。
この時データはレジスタ・ファイル70におけるDレジ
スタにおかれ、このようなDレジスタは全ての記憶照合
命令に対するオペランド・レジスタである。
スタにおかれ、このようなDレジスタは全ての記憶照合
命令に対するオペランド・レジスタである。
半ワード書込み操作の間、書込まれるべきデータを含む
レジスタ・ファイル70のDレジスタは、Hレジスタ4
1に対するマルチプレクサ98を用いて加算器96を介
し制御ストアの制御下で使用可能になる。
レジスタ・ファイル70のDレジスタは、Hレジスタ4
1に対するマルチプレクサ98を用いて加算器96を介
し制御ストアの制御下で使用可能になる。
Hレジスタ98の出力可能状態はファームウエア・ワー
ドのBIフィールドによって制御され、この特定のタイ
プの操作において、メモリーへの書込みのための準備に
おいて不変のHレジスタ41に対してワードの両半部を
複写させることになる。
ドのBIフィールドによって制御され、この特定のタイ
プの操作において、メモリーへの書込みのための準備に
おいて不変のHレジスタ41に対してワードの両半部を
複写させることになる。
同時に、ゲート51を介する制御ストア10は、XBレ
ジスタ32のビット位置XB(0)におけるビットをし
て、アドレス・バスの半ワード選択ビットを指定する最
下位ビットとして外部バスのアドレス回線の1つにおけ
るメモリーへ放出させる。
ジスタ32のビット位置XB(0)におけるビットをし
て、アドレス・バスの半ワード選択ビットを指定する最
下位ビットとして外部バスのアドレス回線の1つにおけ
るメモリーへ放出させる。
XB(0)が2進数零である時、このことはデータ・バ
スの左半部がメモリー・ワードの左半部に複写されてゲ
ート43にHレジスタ41の出力をバス・データ回線4
4におかせ、バイトはHレジスタによって変更されない
ことを表示する。
スの左半部がメモリー・ワードの左半部に複写されてゲ
ート43にHレジスタ41の出力をバス・データ回線4
4におかせ、バイトはHレジスタによって変更されない
ことを表示する。
2進数1の場合は、このことはデータ・バスの右半部が
メモリー・ワードの右半部に複写され、データが直接レ
ジスタ・ファイル70からバス・データ回線44に行き
、バイトの交換がHレジスタ41によって行われないこ
とを表示する。
メモリー・ワードの右半部に複写され、データが直接レ
ジスタ・ファイル70からバス・データ回線44に行き
、バイトの交換がHレジスタ41によって行われないこ
とを表示する。
このように、書込み操作上のXB(0)はデータ・ワー
ドのどの半部に対して適正なバイトが書込まれるかを制
御する。
ドのどの半部に対して適正なバイトが書込まれるかを制
御する。
ビット操作の間、XBレジスタの内容は別の方法で使用
される。
される。
指標付けされたビット操作(即ち、Fレジスタ36にお
けるOPコードはビット操作を表示する)の間、XBレ
ジスタは4回桁送りされることになり、これにより4ビ
ットを与えて16ビットのどれが操作を行われるかを表
示する。
けるOPコードはビット操作を表示する)の間、XBレ
ジスタは4回桁送りされることになり、これにより4ビ
ットを与えて16ビットのどれが操作を行われるかを表
示する。
XBレジスタ32におけるこれ等の4ビットは16ビッ
トのマスクを生じるデコーダ34に与えられ、このマス
クはシステム内の論理的極性に応じて15の2進数零と
1つの2進数1、又はその逆を含み、これによって他の
記憶場所とは異なるマスクを付されたビット記憶場所だ
けについて操作を可能にする。
トのマスクを生じるデコーダ34に与えられ、このマス
クはシステム内の論理的極性に応じて15の2進数零と
1つの2進数1、又はその逆を含み、これによって他の
記憶場所とは異なるマスクを付されたビット記憶場所だ
けについて操作を可能にする。
16進デコーダ34の出力は、ゲート41を経て制御ス
トア・ファームウエア・ワードのBIフィールドに応答
して内部バス28に対して使用可能の状態にされる。
トア・ファームウエア・ワードのBIフィールドに応答
して内部バス28に対して使用可能の状態にされる。
このマスクはこの時マルチプレクサ90を介して加算器
96に与えられる。
96に与えられる。
次にこのマスクは、この指標付け操作の目的のためRA
LU12のQレジスタ76におかれる。
LU12のQレジスタ76におかれる。
次にQレジスタの内容は、オペランド・ワードの適当な
ビットについて操作するために使用される。
ビットについて操作するために使用される。
これは、Qレジスタにおける内容即ちマスク行をマスク
することによりXEサイクルの間行われ、オペランド・
ワードはメモリーから受取られる。
することによりXEサイクルの間行われ、オペランド・
ワードはメモリーから受取られる。
ゲート51を介して外部バスのアドレス回線にXB(0
)を与えることに加えて、Yレジスタ22の内容も又メ
モリーのアドレス指定のためこれにおかれることに注目
すべきである。
)を与えることに加えて、Yレジスタ22の内容も又メ
モリーのアドレス指定のためこれにおかれることに注目
すべきである。
更に付言すれば、Yレジスタ22も又アドレス回線に送
られた最後のアドレスを含み、従ってあるアドレスがア
ドレス回線に与えられる時は常にこのようなアドレスも
又Yレジスタ22に与えられるのである。
られた最後のアドレスを含み、従ってあるアドレスがア
ドレス回線に与えられる時は常にこのようなアドレスも
又Yレジスタ22に与えられるのである。
テスト・ロジック50はファームウエア・ワードにおけ
るTCフィールドに応答する。
るTCフィールドに応答する。
第4図に示す如く、TCフィールドは例えば6つのビッ
ト42乃至47を含むことができる。
ト42乃至47を含むことができる。
従って、64のテスト条件が選択可能である。
テスト・ロジック50とTCフィールドの相互作用の論
議については、参考のため本文に引用された1977年
9月6日発行の米国特許第4,047,247号に見出
すことができる。
議については、参考のため本文に引用された1977年
9月6日発行の米国特許第4,047,247号に見出
すことができる。
次のアドレス生成ロジック52の機能についても米国特
許第4,047,247号に詳細に論述されている。
許第4,047,247号に詳細に論述されている。
第1図は本発明が包含される全システムの全体的ブロッ
ク図、第1A図は第1図に示すデータ・プロセサに使用
されるランダム・アクセス・メモリー(RAM)を示す
図、第2図は第1図に示すデータ・プロセサで使用され
るマイクロプロセサ・ロジックの全体的ブロック図、第
2A図は第2図に示す20ビットのマイクロプロセサを
形成するため5つの4ビットのマイクロプロセサを一緒
にカスケード構成とする方法を示す全体的ブロック図、
第3図は第1図のアーク・プロセサに含まれた制御スト
アに設けたファームウエア・ルーチンを示す全体的ブロ
ック図、第4図は前記制御ストアに含まれるファームウ
エア・ワードが構成される方法を示す図、第5A−D図
および第6A−D図は第1図の制御ストアとプロセサと
関連して個個のファームウエアが本発明の操作を制御す
る方法を詳細に示すチャート、第7図はワード、バイト
又はビットが第1図のデータ・プロセサに関連するメモ
リーにおいて有効にアドレス指定できる方法を示すブロ
ック図、第8図は多重バイト・ワードの1つのバイトが
第1図のデータ・プロセサと関連するメモリーを用いて
読出し又は書込みを行うことができる方法を示す図、第
9図はあるバイト又はビットが第1図に示すデータ・プ
ロセサにより有効にアドレス指定できる方法を示す更に
詳細なブロック図、第10A図はデータのある記憶ワー
ドにおける左右のバイトを示す図、および第10B図お
よび第10C図は第1図に示すデータ・プロセサがそれ
ぞれSAFおよびLAFアドレス指定モードにある時の
即時アドレスを有する単一オペランド命令を示す図であ
る。 10・・・・・・制御ストア、11・・・・・・制御レ
ジスタ、12・・・・・・レジスタ兼演算論理装置(R
ALU)、13・・・・・・ランダム・アクセス・メモ
リー(RAM入15・・・・・・ブートPROM,16
・・・・・・標識レジスタ、17・・・・・・セグメン
テーション兼保護装置、20・・・・・・プログラム・
カウンク(Pレジスタ)、22・・・・・・記憶アドレ
ス・レジスタ(Yレジスタ)・・・・・・バス・データ
・レジスタ(DT)、25,27・・・・・・手順レジ
スタ、32・・・・・・XBレジスタ、34・・・・・
・16進デコーダ・ロジック、36・・・・・・命令レ
ジスタ(Fレジスタ)、37・・・・・・選択レジスタ
(SELレジスタ)、40・・・・・・定数生成ロジッ
ク、56・・・・・・アドレス・バス・レジスタ(BA
)、58・・・・・・選択変更ロジック(SM)、60
,62・・・・・・セレクタ・ロジック、70・・・・
・・レジスタ・ファイル、76・・・・・・Qレジスタ
、84,86・・・・・・ラッチ回路、90,98・・
・・・・マルチプレクサ、100,102・・・・・・
入力。
ク図、第1A図は第1図に示すデータ・プロセサに使用
されるランダム・アクセス・メモリー(RAM)を示す
図、第2図は第1図に示すデータ・プロセサで使用され
るマイクロプロセサ・ロジックの全体的ブロック図、第
2A図は第2図に示す20ビットのマイクロプロセサを
形成するため5つの4ビットのマイクロプロセサを一緒
にカスケード構成とする方法を示す全体的ブロック図、
第3図は第1図のアーク・プロセサに含まれた制御スト
アに設けたファームウエア・ルーチンを示す全体的ブロ
ック図、第4図は前記制御ストアに含まれるファームウ
エア・ワードが構成される方法を示す図、第5A−D図
および第6A−D図は第1図の制御ストアとプロセサと
関連して個個のファームウエアが本発明の操作を制御す
る方法を詳細に示すチャート、第7図はワード、バイト
又はビットが第1図のデータ・プロセサに関連するメモ
リーにおいて有効にアドレス指定できる方法を示すブロ
ック図、第8図は多重バイト・ワードの1つのバイトが
第1図のデータ・プロセサと関連するメモリーを用いて
読出し又は書込みを行うことができる方法を示す図、第
9図はあるバイト又はビットが第1図に示すデータ・プ
ロセサにより有効にアドレス指定できる方法を示す更に
詳細なブロック図、第10A図はデータのある記憶ワー
ドにおける左右のバイトを示す図、および第10B図お
よび第10C図は第1図に示すデータ・プロセサがそれ
ぞれSAFおよびLAFアドレス指定モードにある時の
即時アドレスを有する単一オペランド命令を示す図であ
る。 10・・・・・・制御ストア、11・・・・・・制御レ
ジスタ、12・・・・・・レジスタ兼演算論理装置(R
ALU)、13・・・・・・ランダム・アクセス・メモ
リー(RAM入15・・・・・・ブートPROM,16
・・・・・・標識レジスタ、17・・・・・・セグメン
テーション兼保護装置、20・・・・・・プログラム・
カウンク(Pレジスタ)、22・・・・・・記憶アドレ
ス・レジスタ(Yレジスタ)・・・・・・バス・データ
・レジスタ(DT)、25,27・・・・・・手順レジ
スタ、32・・・・・・XBレジスタ、34・・・・・
・16進デコーダ・ロジック、36・・・・・・命令レ
ジスタ(Fレジスタ)、37・・・・・・選択レジスタ
(SELレジスタ)、40・・・・・・定数生成ロジッ
ク、56・・・・・・アドレス・バス・レジスタ(BA
)、58・・・・・・選択変更ロジック(SM)、60
,62・・・・・・セレクタ・ロジック、70・・・・
・・レジスタ・ファイル、76・・・・・・Qレジスタ
、84,86・・・・・・ラッチ回路、90,98・・
・・・・マルチプレクサ、100,102・・・・・・
入力。
Claims (1)
- 【特許請求の範囲】 1 データ処理システムによって実施されるべき操作を
表示するコードを含む命令ワードと、S個のアドレスビ
ットを含む短形態のアドレスかSより犬でありかつ1ワ
ード内のビット数を越えるL個のアドレスビットを含む
長形態のアドレスかのどちらかを表示し、前記命令ワー
ドのすぐ次のアドレスに記憶されるオペランドアドレス
ワードと、から成るデータワードを表示する1群の2進
データピットを夫々記憶する復数のアドレス可能ワード
記憶場所を有するデータ記憶装置と、 データ処理システムが短形態のアドレスを用いる第1モ
ードか長形態のアドレスを用いる第2モードのどちらで
動作するかを指示するための、現在実行中の命令の前記
データワードを参照せずに得られるアドレスモード信号
に応答するアドレスモード指示装置と、 前記命令ワード内に含まれた操作コードによって要求さ
れた操作の実施において用いられるデータを記憶するた
めのレジスタ装置と、 データ処理システムの各命令実行サイクルの初めに前記
データ記憶装置をアドレスして命令ワード及びオペラン
ドアドレスワードデータを読み出し、前記データを前記
レジスタ装置内ヘロードするためのフエツチ装置であっ
て、更にデータ処理システムが前記第2モードで動作す
る時前記アドレスモード指示装置に応答して前記レジス
タ装置内へ複数のオペランドアドレスヮードを読み込む
ように複数のワード読み出しサイクルを実行し、更に、
データ処理システムが前記第2モードで動作する時前記
アドレスモード指示装置に応答して前記複数のワード読
み出しサイクル中に読み出された前記複数のオペランド
アドレスワードのアドレスビットを組み合わせて前記レ
ジスタ装置内にLビットの長形態のアドレスを与える装
置を含むフエツチ装置と、 を設けることを特徴とするデータ処理システム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/868,251 US4206503A (en) | 1978-01-10 | 1978-01-10 | Multiple length address formation in a microprogrammed data processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS54106141A JPS54106141A (en) | 1979-08-20 |
| JPS589455B2 true JPS589455B2 (ja) | 1983-02-21 |
Family
ID=25351318
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP54001737A Expired JPS589455B2 (ja) | 1978-01-10 | 1979-01-10 | 多重長アドレス構成を有するマイクロプログラム化デ−タ処理システム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4206503A (ja) |
| JP (1) | JPS589455B2 (ja) |
| AU (1) | AU527421B2 (ja) |
| CA (1) | CA1123114A (ja) |
| YU (1) | YU3279A (ja) |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4419727A (en) * | 1979-01-02 | 1983-12-06 | Honeywell Information Systems Inc. | Hardware for extending microprocessor addressing capability |
| US4346437A (en) * | 1979-08-31 | 1982-08-24 | Bell Telephone Laboratories, Incorporated | Microcomputer using a double opcode instruction |
| US4532590A (en) * | 1980-04-25 | 1985-07-30 | Data General Corporation | Data processing system having a unique address translation unit |
| US4500952A (en) * | 1980-05-23 | 1985-02-19 | International Business Machines Corporation | Mechanism for control of address translation by a program using a plurality of translation tables |
| US4430711A (en) | 1980-05-30 | 1984-02-07 | Signetics Corporation | Central processing unit |
| BG33404A1 (bg) * | 1980-07-22 | 1983-02-15 | Kasabov | Registrovo aritmetichno ustrojjstvo |
| US4418383A (en) * | 1980-06-30 | 1983-11-29 | International Business Machines Corporation | Data flow component for processor and microprocessor systems |
| US4519028A (en) * | 1981-02-17 | 1985-05-21 | Digital Equipment Corporation | CPU with multi-stage mode register for defining CPU operating environment including charging its communications protocol |
| US4434465A (en) | 1981-04-13 | 1984-02-28 | Texas Instruments Incorporated | Shared microinstruction states in control ROM addressing for a microcoded single chip microcomputer |
| US4499535A (en) * | 1981-05-22 | 1985-02-12 | Data General Corporation | Digital computer system having descriptors for variable length addressing for a plurality of instruction dialects |
| US4498131A (en) * | 1981-05-22 | 1985-02-05 | Data General Corporation | Data processing system having addressing mechanisms for processing object-based information and a protection scheme for determining access rights to such information |
| US4525780A (en) * | 1981-05-22 | 1985-06-25 | Data General Corporation | Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information |
| US4495565A (en) * | 1981-11-09 | 1985-01-22 | At&T Bell Laboratories | Computer memory address matcher and process |
| US4451883A (en) * | 1981-12-01 | 1984-05-29 | Honeywell Information Systems Inc. | Bus sourcing and shifter control of a central processing unit |
| US4809156A (en) * | 1984-03-19 | 1989-02-28 | Trw Inc. | Address generator circuit |
| US4635193A (en) * | 1984-06-27 | 1987-01-06 | Motorola, Inc. | Data processor having selective breakpoint capability with minimal overhead |
| US4679194A (en) * | 1984-10-01 | 1987-07-07 | Motorola, Inc. | Load double test instruction |
| US4774653A (en) * | 1985-08-07 | 1988-09-27 | Hewlett-Packard Company | Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers |
| US4727486A (en) * | 1986-05-02 | 1988-02-23 | Honeywell Information Systems Inc. | Hardware demand fetch cycle system interface |
| US4819165A (en) * | 1987-03-27 | 1989-04-04 | Tandem Computers Incorporated | System for performing group relative addressing |
| JP2902402B2 (ja) * | 1987-09-30 | 1999-06-07 | 三菱電機株式会社 | データ処理装置 |
| US5327542A (en) * | 1987-09-30 | 1994-07-05 | Mitsubishi Denki Kabushiki Kaisha | Data processor implementing a two's complement addressing technique |
| JPH0766324B2 (ja) * | 1988-03-18 | 1995-07-19 | 三菱電機株式会社 | データ処理装置 |
| JPH0289132A (ja) * | 1988-09-26 | 1990-03-29 | Nec Corp | 論理アドレス生成方式 |
| US5072372A (en) * | 1989-03-03 | 1991-12-10 | Sanders Associates | Indirect literal expansion for computer instruction sets |
| FR2652926B1 (fr) * | 1989-10-06 | 1994-07-08 | Bull Sa | Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede. |
| US5715419A (en) * | 1989-12-05 | 1998-02-03 | Texas Instruments Incorporated | Data communications system with address remapping for expanded external memory access |
| US5442769A (en) * | 1990-03-13 | 1995-08-15 | At&T Corp. | Processor having general registers with subdivisions addressable in instructions by register number and subdivision type |
| EP0503514B1 (en) * | 1991-03-11 | 1998-11-18 | Silicon Graphics, Inc. | Backward-compatible computer architecture with extended word size and address space |
| JP3181307B2 (ja) * | 1991-04-25 | 2001-07-03 | 株式会社東芝 | 命令処理装置 |
| US5826057A (en) * | 1992-01-16 | 1998-10-20 | Kabushiki Kaisha Toshiba | Method for managing virtual address space at improved space utilization efficiency |
| WO1995028677A1 (en) * | 1994-04-13 | 1995-10-26 | Ericsson Inc. | Efficient addressing of large memories |
| US6128718A (en) * | 1997-08-28 | 2000-10-03 | Intel Corporation | Apparatus and method for a base address register on a computer peripheral device supporting configuration and testing of address space size |
| US6105125A (en) * | 1997-11-12 | 2000-08-15 | National Semiconductor Corporation | High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information |
| US6360308B1 (en) | 1998-09-30 | 2002-03-19 | Lsi Logic Corporation | Buffer controller |
| US6260082B1 (en) * | 1998-12-23 | 2001-07-10 | Bops, Inc. | Methods and apparatus for providing data transfer control |
| US8874882B1 (en) * | 2000-03-30 | 2014-10-28 | Intel Corporation | Compiler-directed sign/zero extension of a first bit size result to overwrite incorrect data before subsequent processing involving the result within an architecture supporting larger second bit size values |
| US6687806B1 (en) * | 2000-06-15 | 2004-02-03 | Advanced Micro Devices, Inc. | Apparatus and method for generating 64 bit displacement and immediate values |
| US8452945B2 (en) * | 2002-09-17 | 2013-05-28 | Hewlett-Packard Development Company, L.P. | Indirect indexing instructions |
| KR100460774B1 (ko) * | 2002-10-10 | 2004-12-09 | 매그나칩 반도체 유한회사 | 어드레스 서브샘플링 장치 및 그 방법과 이미지센서 및이미지센서의 어드레스 서브샘플링 방법 |
| US10528345B2 (en) * | 2015-03-27 | 2020-01-07 | Intel Corporation | Instructions and logic to provide atomic range modification operations |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
| US3344404A (en) * | 1964-09-10 | 1967-09-26 | Honeywell Inc | Multiple mode data processing system controlled by information bits or special characters |
| US3522589A (en) * | 1968-10-31 | 1970-08-04 | Honeywell Inc | Data processing apparatus |
| US3735355A (en) * | 1971-05-12 | 1973-05-22 | Burroughs Corp | Digital processor having variable length addressing |
| US3972024A (en) * | 1974-03-27 | 1976-07-27 | Burroughs Corporation | Programmable microprocessor |
| US3949378A (en) * | 1974-12-09 | 1976-04-06 | The United States Of America As Represented By The Secretary Of The Navy | Computer memory addressing employing base and index registers |
| US4047247A (en) * | 1976-04-07 | 1977-09-06 | Honeywell Information Systems Inc. | Address formation in a microprogrammed data processing system |
| JPS53143141A (en) * | 1977-05-20 | 1978-12-13 | Toshiba Corp | Address producing unit |
-
1978
- 1978-01-10 US US05/868,251 patent/US4206503A/en not_active Expired - Lifetime
-
1979
- 1979-01-05 CA CA319,201A patent/CA1123114A/en not_active Expired
- 1979-01-08 AU AU43199/79A patent/AU527421B2/en not_active Ceased
- 1979-01-09 YU YU00032/79A patent/YU3279A/xx unknown
- 1979-01-10 JP JP54001737A patent/JPS589455B2/ja not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| CA1123114A (en) | 1982-05-04 |
| JPS54106141A (en) | 1979-08-20 |
| YU3279A (en) | 1983-04-30 |
| US4206503A (en) | 1980-06-03 |
| AU4319979A (en) | 1979-07-19 |
| AU527421B2 (en) | 1983-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS589455B2 (ja) | 多重長アドレス構成を有するマイクロプログラム化デ−タ処理システム | |
| US7434024B2 (en) | SIMD processor with register addressing, buffer stall and methods | |
| EP0378830B1 (en) | Method and apparatus for handling multiple condition codes as for a parallel pipeline computer | |
| JP3969895B2 (ja) | データ型によるコプロセッサの操作コードの分割 | |
| EP0380849B1 (en) | Method and data processing unit for preprocessing implied specifiers in a pipelined processor | |
| CA1324671C (en) | Decoding multiple specifiers in a variable length instruction architecture | |
| EP0381469B1 (en) | Method and data processing unit for pipeline processing of register and register modifying specifiers within the same instruction | |
| JP3842474B2 (ja) | データ処理装置 | |
| EP0627681B1 (en) | Apparatus and method for processing data with a plurality of flag groups | |
| US5890222A (en) | Method and system for addressing registers in a data processing unit in an indirect addressing mode | |
| JP3828677B2 (ja) | レジスタとメモリとの間のデータ転送 | |
| EP0071028A2 (en) | Instructionshandling unit in a data processing system with instruction substitution and method of operation | |
| JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
| US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
| JP2004185638A (ja) | 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ | |
| JP3543181B2 (ja) | データ処理装置 | |
| EP2202634B1 (en) | System and method for fast branching using a programmable branch table | |
| JPH081599B2 (ja) | データ処理装置 | |
| JPH01214932A (ja) | データ処理装置 | |
| EP0317473A2 (en) | Microcode branch based upon operand length and alignment | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| JP3345787B2 (ja) | データ処理装置 | |
| GB2352308A (en) | Conditional instruction execution | |
| US4309753A (en) | Apparatus and method for next address generation in a data processing system | |
| JPH04260929A (ja) | データ処理装置 |