JPS60142743A - 内部母線システム - Google Patents

内部母線システム

Info

Publication number
JPS60142743A
JPS60142743A JP59242563A JP24256384A JPS60142743A JP S60142743 A JPS60142743 A JP S60142743A JP 59242563 A JP59242563 A JP 59242563A JP 24256384 A JP24256384 A JP 24256384A JP S60142743 A JPS60142743 A JP S60142743A
Authority
JP
Japan
Prior art keywords
bus
instruction
cpu
unit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP59242563A
Other languages
English (en)
Other versions
JPH0135367B2 (ja
Inventor
デール・エドワード・フイスク
ローレンス・ウイリアム・ペリーラ
ジヨージ・ラデイン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS60142743A publication Critical patent/JPS60142743A/ja
Publication of JPH0135367B2 publication Critical patent/JPH0135367B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、通常の計算機アーキテクチャにおける命令セ
ットよシずつと小規模の命令セット(以下、基本命令セ
ットという)しか持たない計算機システムに係る。
〔従来技術〕
最近のVLSI技術の発達により、マイクロプロセッサ
の設計に関しては、相反する2つのアプローチが可能に
なってきた。第1のアプローチは、VLS Iを十二分
に利用して、これまではソフトウェアで実現されていた
機能を/’t−ドウエアで実現させるものである。当然
の結果として、マイクロプロセッサの物理的な構成は複
雑になる。コレに対して第2のアプローチは、これまで
よシ多くの機能をソフトウェアで実現させることによっ
て、簡単で且つ高速のマイクロプロセッサを構成しよう
とするものである。後者のアプローチの代表的な例が下
記の文献に記載されている。
(1) ジョージ・ラブインによる” 801ミニコン
ピユータ(The 801 Minicomputer
)”ニーシーエム・ジグプラン・フーテイング(ACM
 5IGPLAN N0TICES)、第17巻、第4
号、1982年4月、39〜47頁(2)バダーリン、
セグインによるRISC1:小規模命令セットVLS 
Iコンピュータ(RISC1:a Reduced I
n5truction 5etVLS I Compu
ter )”I EEEffンピュータ(Comput
er)、1982年9月、8〜20頁 第1のアプローチは、ソフトウェアの開発費用およびそ
の実行速度を考えた場合、年ごとに安くなっているVL
S I回路を用いてシステムを構成した方が全体として
価格性能比を上げることができる、という考えに基いて
いる。従って、第1のアプローチをとるシステム設計者
は、VLSI回路の潜在能力に合わせてアーキテクチャ
をよシ複雑にしている。これは、最近の計算機とその前
の(3) 計算機、例えばVAX−11とFDP−11,18Mシ
ステム/38とIBMシステム/3、インテルAPX−
432と8086、などを比較してみれば明らかである
。ただしアーキテクチャが複雑になると、それだけシス
テム設計に要する時間が長くなり、設計ミスの可能性も
増える。この型のシステムは大規模命令セット計算機シ
ステム、略してCl5Cシステムと呼ばれている。
これに対して、前記の文献に記載されているような第2
のアプローチに従って構成されたシステムは小規模命令
セット計算機(RISC)システムあるいは基本命令セ
ット計算機システム(以下、PRI 8Mシステムとい
う)と呼ばれる。PRISMシステムの中心はCPUで
ある。システム設計の大部分は、ユーザに対してCPU
の基本能力を使用可能にする、ということに向けられて
いる。
全体的な構成は従来のCPUとは幾分異なっている。
以下前記の文献に記載されているCPUの設計原理およ
び従来のCPUとの違いについて、本発(4) 明に関係する範囲内で少し詳しく説明する。
小型ないし中型の汎用計算機システムにおける通常のC
PUは、アーキテクチャを°″解釈″する配線マイクロ
プロセッサで構成されている。このよりなCPUでは、
1つのCPU命令を実行するために、制御記憶装置にあ
る幾つかのマイクロ命令が実行される。1つの平均的な
CPU命令を実行するのに必要なマイクロ命令(マシン
サイクル)の数は、使用されているマイクロプロセッサ
の能力(従って価格)CPUアーキテクチャの複雑さ、
および実行中のアプリケーション(即ち命令ミックス)
によって左右される。例えば、IBMシステム/370
モデル168は1つのシステム/370命令当シ3〜6
サイクルを要し、モデル148は10〜15サイクルを
要し、システム/360モデル30は30サイクル以上
になる。
CPUの設計によっては、ルックアヘッド、並列処理お
よび分岐の記録といった技術を用いることにより、1命
令当シのマシンサイクル数を1に近づけることができる
アプリケーションによる相違については、例えば一般に
科学技術計算は浮動小数点命令を使用するが、事務計算
は10進演算を使用する。ところカ、アプリケーション
コードの代りに走行システム全体を追跡してみると、最
も頻繁に使用される命令に顕著な類似性があることがわ
かる。これらの命令は、ロード、記憶、分岐、比較、整
数演算、論理桁送りといった比較的簡単な命令であり、
基礎となるマイクロプロセッサの命令セットにもこれら
と同じ機能を持った命令がある。従って、マイクロプロ
セッサのアーキテクチャがCPUのアーキテクチャと正
確には一致し々い場合であっても、そのような機能につ
いてまでCPUアーキテクチャをマイクロプロセッサで
6解釈″することは無駄であると考えられた。
従って、PRISMシステムのために設計された基本命
令セットはハードウェアで直接実行することができる。
即ち、各々の基本命令は1マシンサイクルしか必要とし
ない。複雑な機能は、通常のCPUの場合と同じく、マ
イクロコードで実現される。ただし、PRISMシステ
ムにおけるマイクロコードは正にコードであって、関連
する機能は基本命令セット上で走行するソフトウェアサ
ブルーチンによって実現される。
高速の制御記憶装置に記憶されていることから生じるマ
イクロコードの利点は、キャッシュをデータ用と命令用
とに分けた記憶階層では、事実上消滅する。命令キャッ
シュは゛ベージ可能″制御記憶装置として働く。通常の
CPUでは、すべてのアプリケーションにわたってどの
機能が最も頻繁に使用されるかは、設計者が前もって決
める。
従って、例えば倍精度の浮動小数点除算命令は常に高速
の制御記憶装置にあるが、第ルベル割込みハンドラは主
記憶装置にある。命令キャッシュを用いた場合は、最近
の使用状況によって、どの機能がより速く使用できるか
が決まる。
このアプローチによれば、特定のジョブを実行するのに
要するサイクル数は、最悪の場合であっても、複雑な命
令がマイクロプログラムされている通常の小型ないし中
型CPHにおけるサイクル(7) 数取下である。更に、基本命令の定義づけをうまく行え
ば、必要なサイクル数がより少なくなることがわかった
大部分の命令ミックスによれば、データの書込みまたは
読取シに関する命令が全体の20〜40%を占め、分岐
命令が15〜30%を占めている。
更に、多くのアプリケーションにおいては、記憶装置帯
域幅のかなシの部分がIloのためにさかれている。記
憶装置アクセスのためにCPUが多くのサイクルにわた
って待ち状態へ強制されると、その間の処理時間が無駄
になる。
従って、PRISMシステムの第2の目的は、記憶装置
アクセスに起因するCPUの遊休時間をできるだけ短く
するように記憶階層およびシステムアーキテクチャを構
築することであった。まず、CPUのマシンサイクルに
匹敵するアクセス時間を持ったキャッシュが必要なこと
は明らかである。
次に、記憶命令が出されても直ちに主記憶装置への記憶
を行わなくてもよいということから、ストアイン方式の
キャッシュが採用された。かシに1(8) つのワードを記憶するのに10サイクルを要し、且つ命
令全体の10チが記憶命令であるとすると、記憶命令お
よびそれに続く命令を並行して実行できない限り、CP
Uの遊休時間は全体の約半分に達する。
しかし、サイクルごとに新しい命令を必要とし、且つ2
サイクルおきにデータをアクセスするCPU構成におい
ては、サイクルごとにワードを供給する通常のキャッシ
ュを用いると 性能が低下する。従って、キャッシュは
データを含む部分と、命令を含む部分とに分けられた。
このようにしてキャッシュへの帯域幅は実質的に倍にさ
れ、外部記憶装置からの命令およびデータの非同期的取
出しが可能になった。
通常のアーキテクチャでは、データの記憶は命令を変更
することがあるため、2つのキャッシュが適切に同期し
ていることをノ・−ドウエアが保証しなければならない
。これはコスト高になり、また性能の低下にもつながる
。命令先取多機構でさえ、記憶有効アドレスと命令アド
レスレジスタの内容を比較しなければならないので、複
雑になる。
ところが指標レジスタが計算機に導入されるようになっ
て、命令を変更する頻度が大幅に減少され、今日に至る
まで事実上命令が変更されることはなくなった。従って
PRISMアーキテクチャは、上述のような・ヘードウ
エア同期通信を必要としない。その代りに分割キャッシ
ュの存在がソフトウェアに対して明示され、必要なとき
にキャッシュを同期させるだめの命令がソフトウェアに
与えられた。同期が必要なのは、例えばプログラム取出
しのような特別の機能の場合だけである。
同様に、キャッシュの存在がソフトウェア側からはわか
らない通常のシステムにおいては、I10オペレーショ
ンもキャッシュを介して行う必要がある。その間CPU
は待機していなければならず、またI10オペレーショ
ンが終了した後のキャッシュの内容は、実行中のプロセ
スの実効ページセットではなくなるので、キャッシュを
強制的に一時モードへ戻さなければならない。高価なシ
ステムにおいてすら、ディレクトリを重複して設けると
性能の低下を招く。
現在のシステムでは、I10オペレーションを開始する
責任は、サブシステム・バッファとユーザ領域との間で
固定ブロック転送を行うシステムアクセス方式(IMS
、VSAM、VTAM、 ページングなど)に移ってき
ている。これは、アクセス方式がバッファの位置および
範囲だけでなく、I10転送が処理される時も知ってい
ることを意味する。従って、このソフトウェアはキャッ
シュを適切に同期させることができ、チャネル(PRI
SMシステムにおける直接メモリアダプタ)は外部記憶
装置との間で直接転送を行うことができる。この結果、
記憶装置帯域幅の半分がIloのために使用中であって
も、CPUの性能が低下することはない。
これまでの説明で云えることは、実現させるのに費用が
かかるか、または低速のシステム機能があり、且つソフ
トウェアが頻繁に生じる性能低下要因を認識できる(あ
るいは機能全体を走行時間からコンパイル時間へ移すこ
とができる)場合には、その機能はハードウェアからノ
ットウェアへ移され、それによってコスト低減および性
能改善が達成される、ということである。
上述の設計原理をキャッシュ自身の管理に適用した例に
ついて説明する。PRISMシステムにおいては、キャ
ッシュの各データ・ブロック(ラインと呼ばれている)
は32バイトであり、これに対して最大記憶単位は4バ
イトである。ラインの大きさが記憶単位よりも大きいス
トア・イン式のキャッシュでいわゆるキャッシュ・ミス
が生じると、要求されたワードを含むライン全体を外部
記憶装置からキャッシュへ取出さなければならない。こ
れは、同じラインに含まれる別のワードが続いて要求さ
れる可能性が高いためである。ところが記憶動作の場合
は、プログラムが新しく獲得したスペースへの1回の記
憶で終ることが多い。
このようなスペースの例としては、プロシージャ呼出し
時にブツシュされたプロセス・スタック、ゲットメイン
要求によって得られた領域、第ルベル割込みハンドラに
よって使用されるレジスタ記憶域などがある。いずれの
場合も、ハードウェアは当該ラインの再度のアクセスが
不要であることを知り得ないが、ソフトウェアにとって
は、この状況は極めて明白である。
従って、PRISMシステムでは、要求されたラインを
キャッシュのディレクトリ中で確立するが、外部記憶装
置からはそのラインの内容を取出さないデータ・キャッ
シュ・ライン設定命令が定義されている。記憶のために
新しいラインが必要なときは常にこの命令を実行するよ
うにすると、外部記憶装置からの不必要な取出しは避け
られるが、今度は命令実行のための余分のマシンサイク
ルが必要になる。従って、全体的にみれば、この命令の
実行には一長一短がある。
同様に、スクラッチ記憶域が不要になったときにデータ
・キャッシュ・ライン無効化命令を実行して、ディレク
トリ中の指定されたラインに対応するエントリの変更ビ
ットをターンオフすると、不必要な書戻しが避けられる
。詳細は1982年12月30日付のPCT出願U、S
、82101860に記載されている。
PRISMシステムの優れた特性は前述のとおりである
が、その潜在的な設計目標を十分に実現するためには、
単一マシンサイクルで実行可能な多数の命令を利用する
ことができるようにハードウェアを変更するのが有利で
あることが判った。
歴史的にみれば、IBMシステム/660セレクタチャ
ネルのように、明確に定められたチャネルによってコン
ピュータは複数の装置を主CPUに接続するというのが
通例であった。このチャネルはCPUと広範々周辺装置
との間でデータを転送するだめの融通性のある媒体であ
る。こうした周辺装置は、通常、たとえば印刷、オンラ
インデータ記憶、カードリーグ等の特定のシステム機能
を提供する。他に、CPUの内部においては、各種の内
部機構が互いに通信できるよう多くの特定のデータ経路
(通常は母線と呼ばれる)が存在する。算術レジスタユ
ニット、制御ラッチ等のこれらの内部機構は、計算およ
びデータ移動の制御に関するCPUの要件を支援するよ
う設計されている。これらの2つのタイプの通信の主な
相違点は、データ転送速度および転送を達成するに必要
な一般的なオーバーヘッドである。一般的には、チャネ
ルは内部データ経路に比べて、低速でありしかもデータ
転送を達成するにはかなりのオーバーヘッドを要する。
内部母線によってCPUの内部データ経路は、チャネル
と同様な方法で、一連の機構にとって利用できるように
なる。従来、内部データ経路は、はとんどの場合、CP
Uの特定の機構を支援するのに必要なものとして取扱わ
れている。CPUは、多くの場合、多目的母線を有する
よう設計される。
この場合、複数の機構のためのデータは共通のワイヤー
のセットを介して通信されるが、これは常に、こうした
機構を支援するために特別に設計されたCPUのハード
ウェアの制御下にある。場合によっては、浮動小数点ユ
ニットのような選択的な機能ユニットがCPUに接続さ
れることもあるが、この場合でも、これは常に、この機
能ユニットを支援するために特別に設計されたCPUの
ハードウェアの制御下にある。さらにほとんどのコンピ
ュータは、CPUの内部データ経路の途中に接続された
一連の支援機構を有する。通常この接続は特別に設計さ
れた、その支援機構固有の回路である。支援機構は、た
とえば、浮動小数点ユニット、実時間クロック、割込み
制御機、エミュレータユニット、およびキャッシュメモ
リサブシステムである。
拡張可能な多重バスを備えたコンピュータはこれまで多
数設計されてきた。そのようなバスにより、そのコンピ
ュータの制御の下で内部データ経路に直接に付加的な機
能を接続することができる。
コンピュータをうまく設計すればオペレーションの速度
は向上する。これを達成するため、データ経路は短(さ
れ、内部接続の数は最小にされる。
しかしながらデータ経路を簡単にすれば、その分、内部
CPUは複雑になり、コンピュータの性能は落ちる。
〔発明が解決しようとする問題点〕
以上説明したように、従来の内部母線は汎用性がな(、
そのためCPUに様々な機能ユニット火接続するのが困
難であり、またCPUとそれらの機能ユニットとの間の
データ通信の効率も悪い。
したがって本発明の目的は内部母線アーキテクチャを改
善することである。
〔問題点を解決するための手段〕
本発明に基づ(計算機システムは内部母線に置かれる母
線命令をデコードするための命令デコード機構を含む。
これにより特定の母線がアドレス指定され、特定のオペ
レーションが要求され、指定された命令に関連する特定
のオペランドを識別するために必要な全てのデータが完
全に識別される。母線ユニットは、指定されたオペレー
ションを遂行するためにその母線ユニットが要求されて
いるということを認識するための手段を各々備える。C
PUは特定の母線オペレーションに応答して指定された
オペレーションが完了するまでcPUを待たせるか、ま
たは要求された母線オペレーションと並行してCPUに
別の命令の実行を継続させるかを選択的に指示する手段
を含む。
〔実施例〕
A)PRISMシステムアーキテクチャの概要前述のよ
うに、PRISMシステムの中心はCPUであるが、P
RI 8MシステムはCPUの他に、主記憶装置、キャ
ッシュ機構、母線ユニットおよびシステムI10を含ん
でいる(第1図参照)キャッシュ機構はデータ部と命令
部に分かれている。
CPUアーキテクチャは従来のものに比べて非常に簡単
である。本PRISMシステムの特徴として、各々の命
令はハードウェアにより単一マシンサイクルで実行され
る。このような命令を基本命令という。基本命令は記憶
装置アクセス(普通は並行処理される)を除くと、マシ
ンサイクルな1つしか必要としない。ここで“基本′″
という語は、簡単さというよりもむしろ時間、即ち単一
マシンサイクルに関係している。基本命令自体は単一マ
シンサイクル内で実行可能であるが、それに伴う実際の
機能は複雑なことがある。
ゞ単一マシンサイクル″という語も幾つかの定義が可能
である。例えば、単一マシンサイクルは“継続的に繰返
される基本システムクロックの期間であって、その間に
基本システムオペレーションが遂行されるもの″である
。もう少し別の云い方をすれば、単一マシンサイクルは
1゛基本クロック期間に含まれるすべてのクロックパル
スをシステムが1回完全に使用するのに必要な時間”で
ある。従って、単一マシンサイクル内でCPUのすべて
のデータフロー機構を1回使用することができる。
PRISMシステムのアーキテクチャおよびその命令セ
ットは下記の6つを達成するものである。
(1)命令当り1サイクルの高速CPU’gコンパイル
に適した命令セットヶ用いて定義する。
(2)記憶階層、■10、割振りおよびソフトウェアの
活動がCPUでの命令実行と並行して行われる。これに
より待ち時間が短くなる。
(6)すべてのプログラムをうま(コンパイルできるコ
ードを生成する最適化コンパイラを開発する。
単一マシンサイクルで実行可能であるということに加え
て、命令に関する重要なテーマにその規則性がある。こ
れはハードウェアによる実施を容易にしていた。例えば
、すべてのオペランドは自分の大きさに合った境界を持
っていなければならない(半ワードの場合は半ワード境
界、ワードの場合はワード境界)。命令はすべてフルワ
ードであり、従ってその境界もフルワード境界である。
レジスタ名フィールドはシステム/670の4ビツトに
対し、1ビット増えて5ビツトである。
これによりレジスタを62個まで装備できる。従って、
PRISMシステムを用いて、例えばシステム/370
のように16個の汎用レジスタを備えた他のアーキテク
チャをエミュレートすることができる。システム/37
0の命令セットにおける基本命令サブセットを用いて複
雑な命令をエミュレートする場合は、レジスタ名フィー
ルドの長さく4ビツト)がネックになる。
更に、命令の長さが4バイトあるので、各命令の目的レ
ジスタを明示指定することができ、従って入力オペラン
ドを壊す必要はない。これは一般に″3アドレス′″形
と呼ばれている。
PRISMシステムは真の62ビツトアーキテクチヤで
あり、16ビツトアーキテクチヤに拡張レジスタを加え
たものではない。アドレスは32ビツト長であり、算術
演算には62ビツトの2の補数が使用され、論理命令お
よび桁送り命令は32ビツトのワードを取扱う。桁送り
は61ピツトまで可能である。
PRISMシステムのCPU0主構成要素は、ALU、
汎用レジスタファイル(32ビツトのレジスタを62個
含む)、および本発明による32ビツトの条件レジスタ
を含む条件論理である。条件レジスタはオペレーション
に関する種々の条件を示すもので、検査および分岐を可
能にする。条件レジスタの各ビットの意味は下記の表1
のとおりである。
’b’b’b’b b ハ 小 詔 へ 侘 b 名 酬 I Q −Ll 余 V き 0 卑 ゛へ ・−°(る U) 寸lfiリ ’Ohのω〇 − /へGヘヘ(イ) (イ) (23) 条件レジスタの各ビットは命令によって変更されない限
り、前の値を保つ。
ピッ)D(So)は合計あふれビットで、次のあふれビ
ットが命令によってセットされるときは常に1”にセッ
トされる。除算ステップにおける特別の標識としてあふ
れを使用する場合は、合計あふれは変更されない。
ey止」(AN」はあふれビットで、命令実行中にあふ
れが生じたときにセットされる。あふれビットは、加算
および減算においてビット0からの桁上げとビット1か
らの桁上げとが異なっていると1111+にセットされ
、さもなければII D IIにセットされる。これは
除算ステップのための専用標識としても使用される。た
だし比較命令によって変更されることはない。
ビット2〜6は実行された命令の計算結果(大小関係)
を示す。そのうちビット2 (LT )、 ビット3(
GT)およびビット4(EQ)は、2つのオペランドを
2の補数形式の符号付き整数と考(L+l) 6 (LG )は、2つのオペランドを62ピツトの無
符号整数と考えてセットされる。ビット2〜6は比較お
よび論理命令によってもセットされる。
ビット7〜15はいずれも桁上げビットである。
そのうち旦乙上り工旦人lは、加算および減算において
ビット0からの桁上げがあると“°1″′にセットされ
、さもなければ+10 IIにセットされる。
これは除算および乗算命令のための専用標識としても使
用されるが、比較命令によって変更されることはない。
これに対して、ビット8〜14はALUにおける各ニブ
ルの桁上げを示す。例えばに乙Σ1はビット4からの桁
上げがあるとI ITにセットされ、さもなげればII
 011にセットされる。ビット9〜14も同様である
。これらの桁上げは10進演算で使用される。ビット1
5(CD)は任意の4ビツトニブルにおいて桁上げが生
じるとパ1′″にセットされ、さもなげれば“0′″に
セットされる。これを利用すれば、10進デイジツトの
有効性を検証することができる。
ボッ)16(PZ)は常時ゼロビットであって、(25
) ゝ“1″にセットされることはない。これは、常時ゼロ
ビットを参照する分岐命令による無条件分岐を可能にす
る。
ビット17〜25は予約ビットである。こわらは本実施
例では使用されないが、将来の使用に備えて設けられて
いる。
ビット26〜29(ECO−EC3)は外部条件ビット
であり、外部条件が有効なときにCPUへの対応する外
部条件入力の値にセットされる。
ピッ)30(BB)は母線使用中ビットであり、母線ユ
ニットが使用中のためにそこで母線オペレーションに関
する命令を実行できないときにI+ 171にセットさ
れ、さもなければパ0″′にセットされる。
ビット31(HO)は半ワードあふれビットであり、下
位の16ビツトのあふれ状態を示す。これは、加算?よ
び減算においてビット15および16の桁上げが異なっ
ていると1 #にセットされ、さもなければ0″′にセ
ットされる。このビットは比較命令によって変更される
ことはない。
前述のように、命令はすべて4バイト長である。
PRISMシステムでは、D形式、UL形式、M形式お
よびX形式の命令が使用される。これらの命令形式を下
記の表2に示す。
表2 D形式、UL形式 M形式 X形式 命令中の各フィールドの意味は次の通りである。
0PCD(D〜5):命令のOPコード。
RT(6〜10) :命令の実行結果を受取る目的レジ
スタの名前。
R8(6〜10) :命令実行のためのソースレジスタ
の名前。
RA(11〜15):第1オペランドレジスタ、または
回転命令の場合は目 的レジスタとして使用され るレジスタの名前。
RB(16〜20):第2オペランドレジスタの名前。
BI (6〜10) :レジスタピットまたはトラップ
マスクを指定する即値 フィールド。
5R(16〜20):シフト量を指定する即値フィール
ド。
D(16〜51):16ビツトの符号付き整数を2の補
数形式で指定する 即値フィールド。拡張のた め32ピツトの長さを持つ (28) リ【t た別のフィールドと組合わ せて使用することができる。
M(21〜31):”0”によって囲まれた“1″のサ
ブストリングまた はゝ°1″によって囲まれた “0″のサブストリングか ら成る32ビツトのマスク を指定する即値フィールド。
ビット21が0”であれ ば前者のサブストリングが 指定され、111 I+であれば 後者のサブストリングが指 定される。ビット22〜2 6はサブストリングの左端 ビットへのインデックス、 ビット27〜61はサブス トリングの右端ビットへの インデックスである。1 0000011111”の マスクフィールドはすべて (29,) ゝ°0″のマスクを発生し、 ” 00000011111” のマスクフィールドはすべ て1″のマスクを発生す る。
EO(21〜31):拡幅opコード。
B)内部母線アーキテクチャ/機構の概要本発明に基づ
く内部母線機構は下記の論理母線を有するCPUと共に
用いることができる。
−要求された機能を記述するための指令母線−アドレス
母線 −記憶用のソースデータ母線 −ロード用の目的データ母線 前述のように、こうした母線を介してCPUのボード外
に他の機能ユニットを装備しCPUに接続することがで
きる(たとえば浮動小数点ユニット)。このために、成
る命令によってこれらの母線がCPUに対し可用となっ
ている。この命令のことを以下、内部母線オペレーショ
ン(IBO)命令という。IBO命令は下記のものを指
定するオペランドを有する。
−要求された母線ユニット −指令 −アドレス母線に出力を供給するために加えられる2つ
のオペランド(BおよびDlまたはBおよびX) −ソースレジスタ ー 、ah−レジスタ、必要ならば、下記の6つのフラ
グニ ー 特権指令か否か(1ビツト) −目的レジスタが要求されているか否が(1ビツト) −基底レジスタへ返送されるアドレスバスか否か(1ビ
ツト) こうして一般的なIBO命令を定義すれば、命令・デー
タキャッシュ、外部割込みコントローラ、タイマ、およ
び再配置コントローラにユニット名が与えられる。IB
Oオペコードは、こうしたユニットへ指示される全ての
命令に割り当てられている。
条件付母線オペレーション(CBO)クラスの命令の場
合、データは内部母線に置かれ、装置からCBO肯定応
答が返ってくるまではCPUは停止する。ここでは、装
置が要求されたオペレーションycBo肯定応答の返送
前で完了したか、またはそれを返送しているときに条件
レジスタのビット60(母線使用中を表わすビット)の
セットを完了した、と仮定する。
パイプライン式母線オペレーション(PBO)クラスの
命令の場合、データは1サイクルの間に内部母線に置か
れ、装置からの何らの応答を待たずにCPUはオペレー
ションを続行する。内部母線の競合および衝突を回避す
るためにプロトコルが制定される。複数のPBO命令が
異なる装置に対して活動化されることがある;第1のP
BO命令を完了していない装置に第2のPBO命令が与
えられたときは、第1のPBO命令を完了するまではC
PUは停止される。
存在しない装置をアドレス指定する特別のPBO命令の
場合について言うと、各装置は、内部母線を介してPB
O命令がいつ送られて(るかを認識すること、有効な応
答がいつなされたかを判断することが当然に要求される
。装置がアドレス指定され、かつ前のPBO命令が応答
されなかったとわかると、その装置はPBO命令に応答
しない。
CPUに対して定義された命令をデコードし実行するこ
とがCPUに要求されている一方で、システムの他の構
成要素で実行される付加的な多くの機能を実行できるよ
うにCPUのアーキテクチャを構成する。パ母線ユニッ
ト”と呼ばれるこれらの要素は本実施例ではA母線、B
母線、C母線、およびT母線を介してCPUに接続され
る。これらの母線は、たとえば記憶装置とのデータの受
渡しのような特定の目的に用いる。これらの母線はCP
U内部母線の一部でもある。CPU内部母線は以下に示
すラインの集りである。A母線、B母線、C母線、およ
びT母線が内部母線と共存(実際にはこれと同じ広がり
を有する)するという要件のために、内部母線のデータ
転送プロトコルは非常に複雑である。言い換えれば、C
PUとメモリの間で単にデータの転送を行うためにだけ
母線を用いるならば、それ程複雑なプロトコルは必要で
はない。
多くのコンピュータシステムは1つのタイプまたは他の
タイプの母線を使用し、要求されるハードウェアと共に
母線の定義は共通である。本発明に基づく内部母線アー
キテクチャはこれと異なり、システムの融通性を高め同
時に性能も維持することを狙いとしている。はとんどの
コンピュータの命令セットは、割込み制御、メモリ制御
、およびCPUの外部で遂行される他の機能のような特
定の機能のための多数の命令を識別する。本PRISM
システムの場合は、内部母線が設けられ、この内部母線
を用いるために限られた数の命令のセットが定義される
。こうして内部母線はCPUとそれに関連する装置との
間で通信を行うための極めて効果的で適用範囲の広い機
構を提供できる。
データおよび指令を制限または解釈することなくそれら
を装置に転送するための共通の指令構造を与えることで
、これを実現できる。したがって任意の装置を容易に付
加することができる。
本発明に基づ(内部母線はCPUの効率を高めてCPU
と装置との間の通信を可能にすることを意図するもので
ある。これ以外の母線はプリンタまたはディスクドライ
ブのような外部装置とCPUとの間の通信を可能にし、
同時に、システムの内部母線は浮動小数点ユニット、プ
ロセッサ、およびタイマのよりなCPUの拡張部分と接
続できる。内部母線はデータの取出しおよび記憶のため
のプロトコルと共存して、データキャッシュとのデータ
およびアドレスの受渡しに必要な母線を共有する。した
がって内部母線により装置とシステムのデータフローと
を密接に関連付けることができる。
BBビット(条件レジスタのビット60)は、CBOク
ラスのIBO命令に状況情報を与えるために割り振られ
ている。内部母線が使用中であるために装置がIBO命
令を実行できないときにこのBBビットは1にセットさ
れる。装置がIBO命令を受諾できるときはBBビット
はOにセットされる。装置によっては成る機能、たとえ
ば、データを一定の装置レジスタヘロードする指令、を
実行することが保証されることもある。内部母線指令は
2つ定義されている。1つの指令、すなわち条件付指令
はユニット使用中かどうかを調べて、その結果に応じて
BBビットをセットする。もう1つの指令はパイプライ
ン式指令である。これら2つの指令については後で詳述
する。
指定した期間内に装置が応答しない場合に割込みをかげ
られるよう、内部母線に関連するタイマがセットされる
内部母線アーキテクチャ/機構の詳細 一般的なCPUの動作は当業者には周知であろうから、
本節ではCPU0中で本発明に基づ(内部母線機構の動
作に関係する部分についてのみ記述する。内部母線機構
はPRISMシステムにおいてとりわけ有益なものであ
るが、一般的な同じ内部母線構成を有し、IBO命令を
認識できるデコーダおよび命令形式を有するあらゆるタ
イプのCPUに対しても同様に適用可能である。
本実施例ではPRISMシステムのホストCPUは装置
と通信するために2つのプロトコルを有するよう設計さ
れている。CBOクラスのIBO命令(以下CBO命令
という)の場合、CPUはCBOプロトコルを用いる。
CPUは命令の実行を継続する前に装置からの応答(C
BO肯定応答)を待機する。PBOクラスのIBO命令
(以下PBO命令という)、ロード命令、または記憶命
令の場合、CPUはPBOプロトコルを用いて装置の状
況を監視し、条件に応じて命令の実行を継続する。(装
置の状況はユニット使用中およびユニット肯定応答なる
状態である。) CBOプロトコルは装置がA母線、B母線、およびC母
線の状態を保管しなくてもいいように設けられている。
回復状況および装置使用中状況はソフトウェアで処理さ
れる。
PBOプロトコルはロード命令および記憶命令のために
与えられ、これによりCPUが命令実行を継続しながら
装置は自身のオペレーションを完了することができる。
回復情報は必要ならば装置によって提供される。使用中
状況はハードウェアで処理される。
PBOプロトコルを使用する場合、CPUはPBO要求
ラインを活動化し、全ての装置がアイドルのときは、命
令実行を継続する。装置はA母線、B母線、およびC母
線の状態、ならびに、PBO要求ラインまたはデータ要
求ラインのいずれが活動化されたかに関する状態を保管
しなげればならない。こうしたパラメータはオペレーシ
ョンを遂行するために保管される。
装置はその状況をCPUへ連続的に送って他の装置の状
況を監視する。CPUによって継続される命令実行およ
び装置の始動は装置状況ラインおよびCPU出力ライン
の状態に依存する。
2つのタイプの応答が可能である。それは基本的なもの
と補助的なものである。基本的な応答はユニット使用中
またはユニット肯定応答である。 。
補助的な応答は、多重サイクルのオペレーションの最初
のサイクルでユニット肯定応答が活動化されることを除
いて、基本的な応答と同じである。
データがCPUに戻される場合は、ユニット使用中また
はユニット肯定応答が活動化されている間に++ T母
線有効′″が必ず活動化される。
基本的な応答は装置に関する状況情報なCPUへ提供す
る。この情報により、ロード命令、記憶命令、またはP
BO命令がデコードされたときに、CPUは命令実行を
継続しまたは停止することができる。″ユニット使用中
゛′が活動化しているために命令実行が停止したときは
、全ての装置の状況ラインが非活動化されるまでCPU
が命令実行を継続できるような基本的な応答はない。
多重装置の環境では、アイドル装置は、他の装置がパユ
ニット使用中″″を示す場合は、オペレーションを開始
できる。“ユニット使用中′″を示すということは、す
なわち、それらの装置がCPUに命令実行を停止するよ
う、信号を送ることである。補助的な応答は、データ記
憶装置が使用中で゛データ要求″が活動化しているとき
は、CPUを解放するのに用いることができない。補助
的な応答はアイドル装置を始動することを意図するにす
ぎない。
装置が補助的な応答のうちの任意の1つを用いる場合、
1つのPBO命令に対して連続する2つのサイクルでこ
れに応答することはできない。この制限は、装置が°°
ユニット使使用中シライン活動状態をみてその補助的な
応答を用いることを決定した場合はCPUはパユニット
使用中″′ラインをみてそのPBO命令を別のサイクル
で遂行する、という理由による。もし装置が次のサイク
ルで成るPBO命令に応答したとすれば、その命令はそ
の直前で実行したばかりの同じPBO命令である。
PBOプロトコルを使用する装置は全て基本的な応答を
提供することが要求される。基本的な応答の他に補助的
な応答を設けることを推奨しておくが、これは設計者の
自由である。
ロード命令および記憶命令はPBOプロトコルを使用す
る。ただし゛データ記憶要求″が活動化されることを除
((” P B O要求″の代わりに)。
(al 基本CBOプロトコル CBOプロトコルを用いる場合、CPUはCBO要求ラ
インを活動化し、装置からのCBO肯定応答を待機する
。CBO肯定応答はCBO要求と同じサイクルで活動化
されることもある。(CBO要求が装置からのデータの
ためであるときはCBO要求と同じサイクルで“T母線
有効″を活動化することはできない)。装置が64サイ
クル以内にCBO肯定応答を活動化しないときは、cp
Uはプログラムチェック割込みをかける。
CPU肯定応答が活動化されるか、64サイクルの間に
応答がないという理由でCPUがプログラムチェック割
込みをかけるまでは、CPUは自身の出力を変更しない
装置が使用中でCBO要求を受諾できないときは、その
装置はCBO肯定応答およびCBO使用中を活動化する
こと力1ある。条件レジスタのBBビットがセットされ
てCPUは命令実行を継続する。CBO要求が、CPU
へ返送されるべきデータのためであるときは、その要求
は取り消され、CPUは装置からのデータの返送を待機
することはない。CBO肯定応答およびCBO使用中は
CBO要求と同じサイクルで活動化されることもある(
第12図および第16図参照)。
ソフトウェアは、装置がCBO指令を実行したかどうか
を見るためにBBビットを調べる。
(blcBO装置切断 装置が長期間、使用中になるときは、その装置はCPU
を解放するためにCBO肯定応答を活動化することがで
きる。CPUはオペレーションが完了するのを待って、
CBO要求がCPUへ返送されるべきデータのためであ
ったときは、必要ならば、CPUは装置からのデータの
返送を待機する。CBO肯定応答はCBO要求と同じサ
イクルで活動化できる。
装置はオペレーションを実行するため、A母線、B母線
、およびC母線の状態を保管する。
(c)CPUシステムの全体的な要件 CPUはロード命令および記憶命令のためのPBOプロ
トコルを実現する必要がある。基本的および補助的応答
の機能は前述のとおりである。
装置(母線ユニット)がCBOプロトコルまたはPBO
プロトコルを具備するか否かは、CPUが命令の実行を
継続できる一方で装置がそのアドレスをデコードし同時
に装置がCBO肯定応答を活動化する前にそのオペコー
ドが有効かどうかをみる、ということにどれだけの価値
があるかで決まる。
PBO命令を実行する場合は、装置の状況ラインは必ず
監視され各装置によって活動化することができる。した
がって装置のこうしたラインは双方向性である。
装置がCBOプロトコルを用いるときの1つの要件はそ
の装置が64より少ないサイクルで全ての指令を実行で
きるか否かである。もしこれが実行可能なら、CBO使
用中ラインを用いることを要望する必要はな((何故な
らCBO要求発行のための時間およびコードが必要であ
るので)、装置は条件レジスタのBBビットがセットさ
れていたかどうかを見て必要ならCBO要求を再発行す
る。CPUレジスタを用いて、CBO肯定応答が活動化
されるまではオペレーションの間、データを保持できる
。CBOプロトコルを用いる装置は、CBO要求が活動
化されたとぎにオペレーションを開始できるかどうかを
見るために、わざわざラインを監視する必要はない。
fdlcBO7’ロトコルとPBOプロトコルの複合P
BOプロトコルを用いる装置とCBOプロトコルを用い
る装置は同じシステムで組み合わせることができる。
CBOプロトコルの場合、装置の状況の監視はCPUが
担当する。PBOプロトコルの場合、装置の状況の監視
はCPUおよび装置が担当する。
第6図に示すように、内部母線はCPU、データキャッ
シュ機構20、および様々な母線ユニットと接続する。
ロード命令および記憶命令(cpUとデータ記憶装置と
の間のデータ転送用)ならびにCBO命令またはPBO
命令(各種母線ユニットとの通信用)が内部母線を使用
する。
第4図に示すシステム内部母線を構成する、CPUに入
るおよびCPUから出る全てのラインについて以下に説
明する。
PRISMシステムを制御する基本的なシステムクロッ
クは、8つのサブサイクルに分けられる前述の基本マシ
ンサイクルから成るとする。TO1T47およびT63
は基本マシンサイクル内の特定の時間枠に生ずるタイミ
ング事象に関係するものである。たとえば時間T6で生
ずる事象は6番目のサブサイクルの開始点から始まり6
番目のサブサイクルの終了点で終わる。言い換えれば、
これは8分の1の基本マシンサイクルである。
T47のような表現は事象が4番目のクロックパルスの
開始点から始まり7番目のクロックパルスの終了点で終
わることを意味する。その事象の全時間は全マシンサイ
クルの半分(すなわちサブクロックパルス4.5,6、
および7)である。
入力ライン T母線〈0〜31> TOI T母線PAR<D〜3> TOI この母線はデータ記憶装置および母線ユニットからデー
タ8よびパリティをCPUへ伝える。
T母線有効 この入力ラインはTOIの間T母線上のデータが有効で
それycpuヘロードしてもよいということを示す。
CBO肯定応答 この入力ラインは母線ユニットがCBO指令を認識した
ことを示す。この大刀ラインはCBO要求があるたびご
とに必ず活動化される。
この入力ラインがCBO要求の後のサイクルで引き続き
活動状態にあるときは、その指令は継続して出されCP
Uは64サイクルのタイムアウトを続行する。
CBO使用中 CBO肯定応答が活動化しているときはこのラインの状
態は条件レジスタのBBビットヘセットされる。BBビ
ットが1のときはCBO要求が母線ユニットによって実
行できなかったことを示し、BBビットが00ときはC
BO要求が受諾された(46) ことを示す。
ユニツを使用中 母線ユニットがデータ要求またはPBO要求を1マシン
サイクルで完了できないことを示す場合にこの入力ライ
ンを用いる。
ユニット肯定応答 母線ユニットがデータ要求またはPBO要求を受諾した
ことを示す場合にこの入力ラインを用いる。一定の状況
のもとではこの入力ラインはさらに母線ユニットが要求
を完了したことも示す。(PBOオペレーション参照) 出力ライン A母線〈0〜31> TO5 A母線PAR<0〜3> TO5 CPUからデータ記憶装置へデータ記憶要求のためのア
ドレスを転送する場合にA母線を用いる。
CBO命令またはPBO命令の間にCPUから母線ユニ
ットにデータを転送する場合にもA母線を用いる。
(47) B母線〈O〜31> ’ TO5 B母線PAR<0〜5> TO5 CPUからデータ記憶装置にデータを転送する場合にB
母線を用いる。CBO命令またはPBO命令の間にCP
Uかも母線ユニットにデータを転送する場合にもB母線
を用いる。
C母線〈0〜10> T47 CBO命令およびPBO命令の間アドレス情報およびオ
ペレーション情報を送るため、ロード命令および記憶命
令の間に記憶関連情報を送るため、にC母線を用いる。
ロード命令または記憶命令の場合、C母線は下記のよう
にして記憶関連情報を送る。
+21ないし+25 命令のビット21ないし25 al b% c、d B母線にあるマークビット。それぞれバイトC0、CI
、C2、およびC6に対応。対応バイトが記憶されると
きはマークピットは1、そうでないときはマークピット
は0゜ 実行されている命令がロード非再配置命令または記憶再
配置命令のときは1、または、MSRll−0でかつ実
行されている命令が間接的ロード(LIX)命令である
ときは1、そうでないときは0゜ ノ オペレーションがロードオペレーションテアルときは1
、そうでないときはoo CBO命令またはPBO命令を含む他の全ての命令の場
合は、C母線は下記の形式を有する。
+21ないし+31 命令のビット21ないし31 C母線PART47 このパリティピットはC母線に奇数パリティを与える。
データ要求 T 4’7 この出力ラインはCPUがロード命令または記憶命令を
実行中であること、および、データ記憶要求に関連する
適切な情報がC母線、A母線、B母線に順に存在するこ
と、を示す。
PBO要求 T47 この出力ラインはCPUIJ″−PBO命令を実行中で
あること、および、そのPBO要求に関連する適切な情
報がC母線、A母線、B母線に順に存在すること、を示
す。
応答フラグ T27 この標識は、直前の命令がロード命令、記憶命令、また
はPBO命令であってかつCPUがユニット応答の返送
を待っているときは常に活動化する。
このラインを用いてCPUの状態を母線ユニットに示す
。各母線ユニットはこの情報と、ユニット使用中および
ユニット肯定応答の状態とを用いて、要求されたオペレ
ーションを開始するか否かを決定する。
CBO要求 T47 この出力ラインはCPUがCBO命令を実行中であるこ
と、および、そのCBO要求に関連する適切な情報がC
母線、A母線、B母線に順に存在すること、を示す。
内部母線オペレーション 本節では内部オペレーションの一般的な概観を述べる。
ロード命令、記憶命令、PBO命令、またはCBO命令
が実行されているときは、CPUは適切な要求を示して
、オペレーションのタイプに関する情報をC母線へ送出
する。その後、CPUは適切な情報なA母線およびB母
線へ送出する。
ロード命令(ならびに読取りタイプのCBO命令および
PBO命令)の場合、要求されたデータはその後T母線
で使用可能になる。このデータを待機する間、CPUは
通常どおり他の命令の実行を続ける。CPUがその後、
要求を保持し、(a)CPUが別の命令を実行するため
に次のデータを必要とするか、(b)前の要求がまだ未
解決のうちに後続の命令がT母線の使用を要求するとき
(ただし前の要求がロード要求でかつ後続の命令がロー
ド命令であるような場合は除く)は、要求を禁止する。
CBO命令、PBO命令、およびデータ記憶命令のオペ
レーションの詳細に関する相違について以下に説明する
(a)CBOオペレーション CBO命令が実行中のときは、CPUはC母線に適切な
情報を送出しCBO要求を出す。その後、適切なデータ
がA母線およびB母線に送出される。
母線ユニットが指令に対してCBO肯定応答を返送する
までは、CBO命令は命令レジスタに保持されている。
CBO肯定応答が活動化するまでは、CPUはCBO指
令を出し続はタイムアウトを続行する。CBO肯定応答
を受け取れば、CB0使用中の状態が条件レジスタのB
Bビットにラッチされ、命令実行を再開する。64サイ
クルの間に応答がないときは、CPUはプログラムチェ
ック割込みをかける。
母線ユニットがCBO使用中でもって応答するときは読
取りタイプのCBO命令のためにはT母線インターロッ
クはセットされず、また母線ユニットがCBO肯定応答
およびT母線有効を同時に知らせるときも、T母線イン
ターロックはセットされない。
(b)PBOおよびデータ記憶オペレーションPBOオ
ペレーションおよびデータ記憶オペレーションはいずれ
も同じインターフェース信号を多数利用する。PBOオ
ペレーションは要求信号の他に、母線ユニットのアドレ
スをC母線へ送出することを必要とする点が主な違いで
ある。C母線は、全ての場合において、転送の方向およ
び特徴を示す。
PBO(ロード/記憶)命令が命令レジスタヘロードさ
れると、CPUは適切な情報をC母線へ送出しPBO要
求(データ要求)を出す。続いて、オペレーションを完
了するための情報がA母線およびB母線に送出される。
全ての母線ユニットがアイドルの場合は、CPUは次の
命令をロードする。
任意のPBO(ロード/記憶)命令の実行直後のサイク
ルで、CPUは前述のように応答フラグによってその要
求に応える必要がある場合もある。
全ての母線ユニットがアイドルであるとわかったときは
、CPUはプログラムチェック割込みを開始する。ある
いは、ユニット使用中が活動中でかつ当面の命令がPB
O(ロード/記憶)命令であるときは、CPUは保留状
態に入る。
母線ユニットが使用中という理由でCPUが保留状態に
入るときは、ユニット使用中を活動状態にかつユニット
肯定応答を非活動状態にしながら、CPUは保留状態を
維持する。ユニット肯定応答が活動状態にあるか、また
は全ての母線ユニットがアイドルである場合は、CPU
は保留命令を実行する。後者の場合にのみ、CPUは後
続のサイクルで応答を待機する。
母線オペレーション命令の形式 %式%) 命令の基本オペコードフィールド RT(ビット6〜10) 命令の結果を受け取るための“目標″として用いられる
レジスタの名前 RA(ビット11〜15) 第1オペランドとして用いられるレジスタの名前 RB(ビット16〜20) 第2オペランドとして用いられるレジスタの名前 BU(ビット21〜29) 母線オペレーション命令の場合にC母線に送出される即
値フィールド。BUフィールドをどのように使用するか
は設計者の自由である。
本実施例のシステムアーキテクチャではビット21〜2
5がユニットオペレーションヲ指定しビット26〜29
が母線ユニットを指定する。
P(ビット60) 母線オペレーション命令の場合、P=1は、その命令が
特権状態でのみ実行できることを示し、p=oはその命
令が特権状態でないときに実行できることを示す。
R(ビット31) 母線オペレーション命令の場合、R二1は、そのオペレ
ーションが成る値をレジスタRTへ戻すことを示し、R
=0は、戻される値がないことを示す。
次に内部母線機構で発生される割込みについて説明する
+i+cBoタイムアウト 内部母線に接続された母線ユニットがCBO命令、CB
OI命令、またはCBOU命令の64サイクル内でプロ
セッサに応答しないときはCBO(56) へへ・ タイムアウトプログラム割込みが発生される。
(iilPBoタイムアウト 内部母線に接続された母線ユニットがデータ要求または
PBO要求の後、プロセッサに応答しないときはPBO
タイムアウトプログラム割込みが発生される。
こうした割込みが生じたときは再試行のような一定の救
済的な措置が採られるか、状況によってはプログラムが
打ち切られる、ということは当業者には容易に理解でき
るであろう。
母線命令 PRI 8MシステムのCPUアーキテクチャは、通常
の内部オペレーションのデコードおよび実行が要求され
る一方で本発明に基づいて多(の付加的な機能を提供で
きるよう、定義される。これらの付加的な機能は“母線
ユニット′″と呼ばれる、システムの他の構成要素で実
行される。母線ユニットはA母線、B母線、C母線、お
よびT母線を介してCPUに接続される。
これらの構成要素への命令はBO形式で、母線(57) オペレーションの6つのオペコー)”(04,05,0
7,08,27,47)のうちの1つを有する。
CPUがこれらのオペコードのいずれかを有する命令に
出会ったときは、以下のように処理をする。
命令のPビット(特権ビット)が1でかつ機械状態レジ
スタ(MSR)のPRビット(問題状態ビット)が1で
あるときは、特権命令プログラム割込みがかげられる。
CPUは母線ユニットへ下記のデータを送出する。
(イ) レジスタR2の内容をB母線に送出する。
(ロ)和、(RAIO)+RB、をA母線に送出する。
(ハ)命令のBUフィールド、Pビット、およびRビッ
トをC母線に送出する。
命令を更新する場合は、和、(RAIO)+RB1はレ
ジスタRAにロードされる。
Rピットが1のときは、T母線を介して32ビツトのデ
ータが母線ユニットから戻され、レジスタRTKロード
される。Rビットが0のときは、データは戻されない。
PBO命令の場合、条件レジスタは変更されず元のまま
である。CBO命令の場合、CPUは、指令が受諾され
たか否かに関する応答を母線ユニットから受け取る。母
線ユニットが指令を受諾したときは、条件レジスタのB
Bビットはゼロにセットされる。母線ユニットが指令を
受諾しなかったときは、条件レジスタのBBビットは1
にセットされる。
BUフィールドをどのように使用するかは自由に選択す
ればよい。BUフィールド(ビット21〜29)の1つ
の考えられる構成は、ビット21〜25を母線ユニット
指令用ビット26〜29を母線ユニットアドレス用とし
て用いることである。
条件付母線命令 条件付母線オペレーション CBO命令 RT、RA、RB%BU1P、R (イ)レジスタR2の内容、(ロ)和、(RAID)十
RB、ならびに(ハ)命令のBUフィールド、Pビット
、およびRビットは各自の母線にそれぞれ送出される。
Rビットが1のときは、母線ユニットから戻されたデー
タはレジスタRTに記憶される。
Rピットが0のときは、母線ユニットはデータを戻さな
い。
母線ユニットが応答しないときは、CBOタイムアウト
プログラム割込みが発生される。
母線ユニットがオペレーションを受諾するときは、条件
レジスタのBBビットはゼロにセットされる。母線ユニ
ットが使用中でオペレーションを(60) へへ・ 受諾しないときは、条件レジスタのBBビットは1にセ
ットされ命令はノーオペレーションとして取り扱われる
条件コード: BBピットがセットされる。
更新付随条件母線オペレーション CBOU命令 RT、RA、RB%BU、P、R (イ)レジスタR2の内容、(ロ)和、(RAIO)+
RB、ならびに(ハ)命令のBUフィールド、Pビット
、およびRビットが各自の母線に送出され、さらに和、
(RA l O)十RB、はレジスタRAに記憶される
。Rビットが1のときは、母線ユニットから戻されたデ
ータはレジスタRTに記憶される。RTフィールドおよ
びRAフィールドが同じレジスタを指定する場合は、レ
ジスタRTは外部(61) ユニットから戻される値を有し、和は計算されない。R
ビットが0のときは、母線ユニットはデータを戻さない
Pビットが1でかっMSRのPRピットが1のときは、
プログラムチェック割込みが発生されるので、命令は母
線ユニットには転送されない。
母線ユニットが応答しないときは、CBOタイムアウト
プログラム割込みが発生される。
母線ユニットがオペレーションを受諾するときは、条件
レジスタのBBビットはゼロにセットされる。母線ユニ
ットが使用中でオペレーションを受諾しないときは、条
件レジスタのBBビットは1にセットされ命令はノーオ
ペレーションとして取り扱われる。
条件コード: BBビットがセットされる。
パイプライン母線命令 パイプライン母線オペレーション PBO命令 RT、RA、RB% BU、P、R (イ)レジスタR2の内容、(ロ)和、(RAID)十
B、ならびに(ハ)命令のBUフィールド、Pビット、
およびRビットは各自の母線に送出される。Rビットが
1のときは、母線ユニットから戻されたデータはレジス
タRTに記憶される。Rビットが00ときは、母線ユニ
ットはデータを戻さない。
Pピットが1でかつMSRのPRビットが1のときは、
プログラムチェック割込みが発生されるので、命令は母
線ユニットには転送されない。
母線ユニットが応答しないときは、PBOタイムアウト
プログラム割込みが発生される。
この場合は設定すべき条件コードはない。
更新付随パイプラインオペレーション PBOU命令 RT、RA、RB% BUlP、R (イ)レジスタR2の内容、同和、(RAlO,)+R
B、ならびに(ハ)命令のBUフィールド、Pビット、
およびRビットは各自の母線に送出され、さらに和、(
RA l O)+RB、はレジスタRAに記憶される。
Rピットが1のときは、母線ユニットから戻されたデー
タはレジスタRTに記憶される。レジスタRTとレジス
タRAが同一な場合は、レジスタRTは外部ユニットか
ら戻される値を有し、和は計算されない。Rビットが0
0ときは、母線ユニットはデータを戻さない。
Pビットが1でかつMSRのPRピットが1のときは、
プログラムチェック割込みが発生されるので、命令は母
線ユニットには転送されない。
(64) 母線ユニットが応答しないときは、PBOタイムアウト
プログラム割込みが発生される。
この場合は設定すべき条件コードはない。
下記に示すCPUのデータキャッシュ命令は、これが全
てではないけれども、母線ユニットとしてデータキャッ
シュ制御装置を選択するIBO命令を用いて実現される
典型的なものである。
データキャッシュライン記憶(SDCL)命令;キャッ
シュ形式 データキャッシュライン記憶(SDCL)命令;SID
形式 データキャッシュライン記憶(SDCL)命令;ライン
形式 データキャッシュライン記憶・同期(SSDCL)命令
;キャッシュ形式 データキャッシュライン記憶・M期(ssDcL)命令
;SID形式 データキャッシュライン記憶・同期(SSDCL)命令
;ライン形式 %式%) 命令;キャッシュ形式 データキャッシュラインフラッシュ(FDCL)命令;
SID形式 %式%) 命令;ライン形式 データキャッシュラインフラッシュ・同期(FSDCL
)命令;キャッシュ形式 データキャッシュラインフラッシュ L期CFSDCL
)命令;SID形式 データキャッシュラインフラッシュ・M期(FSDCL
)命令;ライン形式 データキャッシュラインセット(SDCL)命令;キャ
ッシュ形式 データキャッシュライン無効化(IDCL)命令;キャ
ッシュ形式 データキャッシュライン無効化(IDCL)命令;SI
D形式 データキャッシュライン無効化(IDCL)命令;ライ
ン形式 キャッシュ構成レジスタロード(LCCR)命キャッシ
ュ構成しジスタ被ロード(LFCCR)命令 データセグメントレジスタロー)”(LDSR)命令 データセグメントレジスタ被ロード(LFDSR)命令 データページテーブルエントリアドレスロード(LDP
TI;A)命令 ページフレームアクセスベクトルロー)” (L PF
AV)命令 ページフレーム修飾ベクトルロー)” (L P F 
MV)命令 ページフレーム修飾ベクトル被ロード(LFPFMV)
命令 下記に示す1°CPU命令キャッシュ″′命令は、命令
キャッシュ制御装置を選択するIBO命令またはIBO
I命令を用いて実現できる典型的なものである。
命令セグメントレジスタロード(LfSR)命令セグメ
ントレジスタロード(LFISR)命令 命令キャッシュライン無効化(IICL)命令;キャッ
シュ形式 命令キャッシュライン無効化(IICL)命令;SID
形式 命令キャッシュライン無効化(IICL)命令;ライン
形式 %式% 代表的なP’RISMシステムの構成を第1図に示す。
システムの内部母線10には、CPU12、複数の母線
ユニツ)14.16(浮動小数点ユニットなど)、命令
キャッシュ機構18、データ・キャッシュ機構20、及
びシステム母線ユニット22が接続されている。キャッ
シュ機構18.20はいずれもキャッシュ、ディレクト
リ及び変換索引緩衝機構(TLB)を含んでいる。シス
テム母線ユニット22は主としてI10オペレーション
を制御するもので、主記憶装置24にも接続されている
主記憶装置24と命令キャッシュ機構18及びデータキ
ャッシュ機構20との間では命令及びデータが別々にや
りとりされる。CPU12は命令母線26を介して命令
キャッシュ機構18から命令を取出す。
第2A図及び第2B図はCPU 12の内部構成を示し
たものである。主要構成要素の1つである汎用レジスタ
ファイル30は32個の汎用レジスタを含んでいる。汎
用レジスフファイル6002つの入力RA及びRT並び
に6つの出力RA、RB及び18はいずれも命令によっ
て指定されるオペランドを示す。汎用レジスタファイル
30のアドレス指定は、命令レジスタ62にロードされ
た命令の各種レジスタフィールドによってなされる。
命令レジスタ32のボックス内及びその下側に示されて
いる記号の意味については表2のところを参照されたい
命令は命令アドレスレジスフ(IAR)34により命令
キャッシュ機構18から構成される装置AR44は極(
普通のもので、プログラムの開始時に初期設定され、プ
ログラムの進行につれて順次に増分されたり、分岐アド
レスをロードされたりする。表2に示したように、命令
は32ビツト(4バイト)であるから、IAR34の増
分単位は4である。ボックス66は次命令アドレスを含
む。
汎用レジスタファイル60、命令レジスタ62及びIA
R34の選択された内容はマルチプレクサ68及び40
を通ってALU42へ供給される。
マルチプレクサ38は命令アドレスまたは指定されたレ
ジスタRAの内容を通し、マルチプレクサ40は即値オ
ペランドD又は指定されたレジスタRBの内容を通す。
ALU42の演算結果は出カバソファレジスタ44にロ
ードされたり、IAR34、条件レジスタを含む条件論
理50、またはデータキャッシュ機構20ヘアドレスを
送るためのアドレスゲート54へ直接供給されたりする
ALU42の演算結果を汎用レジスタファイル6Dに書
戻す場合は、命令がレジスタRA及びRTのいずれを指
定しているかに応じて、出力バッファレジスタ44の内
容がマルチプレクサ46または48を通って汎用レジス
タファイル60へ転送される。
分岐/トラップ検査論理52は、命令のBIフィールド
、条件レジスタ及び指定されたレジスタRAの内容に応
じて、分岐又はトラップを行なうべきか否かを検査する
。前述のように、変更前の条件レジスタの内容が特定の
汎用レジスタに保管されているときに、その中の特定の
ビット(例えばKQビット)の値に応じて分岐するか否
かを決めるような場合にこの分岐/トラップ検査論理5
2が使用される。その場合、条件レジスタの内容を保管
している汎用レジスタは分岐命令中のRAフィールドに
より指定され、分岐条件となるビットは5ビツトのBI
フィールドにより指定される。
内部レジスタR2及び拡張用レジスタMQを含むマスク
・回転論理56は、要約すれば、指定されたレジスタの
内容を指定された量(最高31ビツト)だけ回転(循環
術送り)するものである。
回転された内容はマスクの制御のもとに、他のレジスタ
の内容又は全ゼロ等の特別のワードと組合されたり、3
2ビツト長のMQレジスタに保持されている前の回転結
果と組合されたりする。これは通常の桁送りだけでな(
、例えば10進数のパック及びアンパック、浮動小数点
演算の場合の事前術送り及び正規化などを行なうときに
使用できる。マスク回転論理56の出力はマルチプレク
サ46(R2)又は4’8(MQ)を通って汎用レジス
タファイル30へ転送されるか、あるいは出力ゲート5
5を通ってデータキャッシュ機構20へ転送される。
MQレジスタはマスク・回転操作で使用される他に、乗
算及び除算の如き算術演算において62ビツトよりも長
いデータが生成された時にあふれ分を記憶するのにも使
用される。
データキャッシュ機構20から取出されたデータは、入
力ゲート58及びマルチプレクサ48を通って汎用レジ
スタファイル30へ転送される。
第6図について説明する。第6図は本発明に基づ(内部
母線アーキテクチャの詳細を説明するブロック図である
。第6図には、命令キャッシュ機構18、データキャッ
シュ機構20、CPU1および母線ユニットtx図示し
である。システムを構成するこれら4つの基本的なブロ
ックは、A母線、B母線、C母線、およびT母線で構成
される内部母線で相互に接続される。
データキャッシュ機構20は内部母線インターフェース
を介してCPUに接続される。データキャッシュ機構2
0への接続は直接的なものもある。
命令キャッシュ機構18についても同じことが言える。
これら2つのキャッシュ機構は内部母線を介して、また
は直列的なラインを介して単独にCPUへ接続できるの
で、この構成は自由に選択スればよい。第3図に示す構
成によれば、CPUは直接的なロード命令または記憶命
令によってメモリと通信することができ、さらにIBO
命令によって内部母線の機能を余すところなく利用する
ことができる。
命令キャッシュ機構18およびデータキャツシユ機構2
0に在る各種レジスタは、図からも明らかなように、デ
ータまたはアドレスを記憶する。
CPUに在る命令レジスタ32および次命令アドレスレ
ジスタ66はCPUと命令キャッシュ機構18との間で
アドレスおよび命令データを直接転送するために用いら
れる。CPUに在る汎用レジスタファイル60およびT
マルチプレクサはT母線を介して母線ユニットからデー
タを受け取る。
A母線はALU42のバッファレジスタ(R1)44に
接続される。前にも説明したようにA母線はCPUと母
線ユニットとの間でアドレスを伝達する。このアドレス
は、通常、母線ユニットへ送るべき実際のアドレスを生
成するための基底アドレスおよびインデックスのような
2つの量を加算することによってALU42で遂行され
る付加的なオベレ・−ジョンに関係する。B母線に接続
されたマスク・回転論理56のレジスタR2はCPUと
母線ユニットとのデータの受渡しのための経路として機
能する。
内部母線機構を構成する4つの副母線すなわちA母線、
B母線、C母線、およびT母線はシステムに接続できる
全ての母線ユニットに接続される。
しかしながら、母線ユニットの機能を同じにする必要は
ないので4つの副母線のデータを全ての母線ユニットが
使用するとは限らない。
第4図は本発明に基づく内部母線インターフェースを説
明する図である。第4図において各ラインの矢印の向き
がデータフローの方向を表わしている。各ラインに沿っ
て付記した数字はラインすなわちビットの数を表わす。
ただし数字を付記しないラインはそれが1本すなわち1
ビツトであることを表わす。
第4図の左側の2列は、左から、ラインが活動状態に在
る期間、ラインの種類゛をそれぞれ示すものである。し
たがって上から6つのラインはT母線、すなわち、CP
Uへ戻すべきデータに関係するものであり、残りの4つ
のラインは制御ラインに関係するものである。内部母線
オペレーションが遂行されるという通知を受け取ったと
きに、これらの制御ラインによって、母線ユニットは各
自の状況をCPUに示す。
第4図の右側の2列は、右から、ラインが活動状態に在
る期間、ラインの種類をそれぞれ示すものである。
前にも説明したように、たとえばサイクル期間T61は
、そのラインが前のマシンサイクルの6番目のサブサイ
クルの開始点で活動化され、当該マシンサイクルの1番
目のサブサイクルの終了点までそれが活動状態に在るこ
とを示唆する(ただし0を含めて表記したので実際には
7番目、2番目にそれぞれ対応する;0番目は実際上は
1番目である)。ところで内部母線インターフェースへ
の入力ラインのうち5つはサイクル期間がT61である
ことに留意されたい。
第5図は第2図および第4図に関連するところを簡単に
まとめて示すブロック図である。第5図には第4図のう
ちで重要なラインと、CPUの関連する構成要素とが示
しである。したがって図の参照番号は前のものと同一で
ある。
命令レジスタ62のオペコードフィールドはIBOデコ
ーダでデコードされる。これは、CBO要求ライン、P
BO要求ライン、またはデータ要求ラインを活動化する
命令デコーダ全体の機能である。内部母線オペレーショ
ンが検知されたときは、常に、前記6つのラインのうち
1つが活動化され、これらの母線オペレーションが印加
される特定の母線ユニットは、内部母線オペレーション
に出会ったとわかって、1つの母線ユニットがこの内部
母線オペレーションを認識しこれに応答する。
命令レジスタ62のBUフィールドはC母線を介して伝
達される。前にも説明したように、BUフィールドは母
線ユニットのアドレスおよび母線ユニットのためのオペ
コードを供給するものである。このオペコードが母線ユ
ニットにどんなオペレーションをなすべきかを示す。
A母線はALU42のバッファレジスタ44からデータ
を受け取る。このデータは、汎用レジスタファイル30
からALU42に供給された2つのオペランドよりAL
U42が生成したアドレスである。これら2つのオペラ
ンドは命令レジスタ62のRAフィールドおよびRBフ
ィールドで指定されるアドレスで汎用レジスタファイル
6oから順に得られるものである。
CPUから母線ユニットへデータを転送するためのB母
線は内部母線インターフェースを介してマスク・回転論
理56のレジスタR2に接続される。前にも説明したよ
うに、マスク・回転論理56内のレジスタR2は、マス
ク・回転オペレーションおよび他のオペレーション用に
CPUがアクセスできる多用途のレジスタである。レジ
スンR2は第3図にも示した。
C母線の情報は命令レジスタ62のBUフィールドから
直接得られる。前述のように、これは11ビツトの母線
で、母線ユニットアドレスおよび母線ユニット用オペコ
ードを有する。したがってBUフィールドを用いて、特
定の母線ユニットをアドレス指定し、基本的な制御情報
を供給する。
Rビットは、特定の母線オペレーションがアドレス指定
された母線ユニットからT母線な介して知らせるための
ものである。返送予定データ指示部は制御レジスタ(図
示せず)の成るビットをセットすることによってCPU
に、特定の母線ユニットからT母線を介してまもなくデ
ータが到着しRTフィールドで指定されたレジスタスタ
ックの場所Tにそれが記憶されるということを、知らせ
る。母線ユニットがこの処理を完了しそのデータが用意
されると、T母線有効ラインを介して適切な信号が供給
され、汎用レジスタファイル60の記憶オペレーション
が続いて起こる。
第6図は第4図のうちで重要なラインと、母線ユニット
の関連する構成要素とを示す。第6図に示す母線ユニッ
ト制御は一般的なものであり母線ユニットの機能の違い
とは関係な(、どの母線ユニットに対しても同一である
。ラインの名称は左端の1内部母線オペレーション”を
除いて第5図と同じ名称を付した。左端の0内部母線オ
ペレーション”は第5図の”CBO要求”またはl′P
BO要求′″と等価である。“内部母線オペレーション
′″は、その母線ユニットに関係する特定の内部母線オ
ペレーションが要求されたことを、当世線ユニットに示
す。母線ユニットは、これにより、C母線の有する母線
ユニットアドレスが自分のものであるかどうかを見るた
めにC母線を調べる。
もしそうなら、要求されたオペレーションをデコードし
て、A母線のアドレスデータな母線ユニットの入力レジ
スタスタックする。母線ユニットに要求されている特定
のオペレーションおよび母線ユニットの性格に応じて、
これと同様な入力レジスタがB母線にも配置されること
に留意されたい。
T母線および“データ準備完了″ラインはユニット論理
から出ている。母線ユニットには必要な母線だけが設け
られる。T母線に適時データを置(ために、はとんどの
場合、母線ユニット内にバッファレジスタが設けられる
第7図はPBOプロトコルおよびデータ要求プロトコル
の流れを簡単に示す図である。これらのプロトコルは母
線ユニットまたはシステムに適合させるため容易に変更
できる。
流れ図の内容は、図から明らかであろうが、以下、第8
図、第9図(第9A図および第9B図)、第10図(第
10A図および第10B図)、および第11図(第11
A図および第11B図)を参照してこれを説明する。
初めに第8図ないし第11図で用いる表現について記す
ことにする。
垂直線″l IIは1サイクルの開始点を表わす。
したがって2本の垂直線の間隔が1サイクル(すなわち
8サブサイクル)に相当する。
第1行6命令レジスタ”のところに記した、2本の垂直
線の間の記号は命令レジスタの内容を示す。
PBO→X 存在しない母線ユニットへのPBO命令 PBO→1 母線ユニット#1へのPBO命令PBO→
2 母線ユニット#2へのPBO命令CBO→1 母線
ユニット#1へのCBO命令加算 加算命令または他の
有効命令(ただしロード命令、記憶命令、PB 0命令、CBO命令は除く)、す なわちA母線、B母線、C母線、 およびT母線を使用しない命令 NSI 次シーケンスの命令 −−−m−−−・−一−−−−◆ 1サイクル以上にわ
たって保持される命令を示す TTTT− −「−一]− これらは等価である。
1111− m−」−一一一一一一 これらも等価である。ただしこれは、母線のデータが母
線ユニット#1のためであることを示すものである(他
の番号のものも同様とする;たとえば数字2なら母線ユ
ニット#2のためのものであることを示す)。
以上のll T IIおよび数字(” 1”、a 2 
#等)は1つの記号が1つのサブサイクルに相当する。
したがって上記の例では、4サブサイクル(すなわち基
本マシンサイクルの2分の1)に相当する。
CPUはPBOプロトコルを用いる成る母線ユニットの
ためにデータ要求またはPBO要求を活動化して、どの
母線ユニットもユニット使用中を活動化していなげれば
、母線ユニットからの応答を待たずに次シーケンスの命
令をロードする。母線ユニットが初めの要求に応答する
前に、CPUは次シーケンスの命令によってデータ要求
またはPBO要求を活動化することもできるので、母線
ユニットが第2の要求に条件的に応答できるよう、一連
の規則を設ける。第7図はこの規則を示すもので5もあ
る。
第7図のブロック70および76はCPUから母線ユニ
ットへの制御ラインである。応答フラグ(ブロック76
)は、前のサイクルでPBO要求またはデータ要求が活
動状態であってかつどの母線ユニットもユニット使用中
を活動化しなかったことを示す信号である。したがって
CPUは当面のサイクルで母線ユニットからの応答(ユ
ニット使用中またはユニット肯定応答)を待つ。
ブロック72.74.78、および80は母線ユニット
からCPUへの制御ラインである。ブロック74.’7
8.および80は同じ制御ライン(ユニット肯定応答)
であるが、ブロック80は補助的な応答のためにユニッ
ト肯定応答を用(・る特別な場合である。
要約すれば、ブロック70はCPUに現存する命令に起
因するものであり、ブロック76はCPUに在った直前
の命令に起因するものであり、ブロック72.74.7
8、および80は前のPBO要求またはデータ要求に対
するDEC応答およびCE応答である。図で1はいオよ
び6いいえ”はその信号が活動および非活動であること
をそれぞれ表わす。
静止したシステム(すなわち数サイクルの間PBO要求
またはデータ要求がな(、かつ、全ての母線ユニットが
アイドルであるとき)の場合、ユニット使用中、ユニッ
ト肯定応答、および応答フラグは非活動状態である。C
PUがPBO要求またはデータ要求を活動化すると、流
れ図で言えば、ブロック70.72.76、および80
へと順に進んでブロック80の1゛いいえ”から出る経
路である。母線ユニットは次サイクルのオペレーション
の実行を開始し、それを1サイクルで完了できなかった
ときはユニット使用中を活動化し、1サイクルで完了で
きたときはユニット肯定応答を活動化する。母線ユニッ
トが前の要求のオペレーションを実行している間に、C
PUは次シーケンスの命令をロードし応答フラグを活動
化する。
前の要求が、存在しない母線ユニットのためのPBO要
求であるときは、ユニット肯定応答およびユニット使用
中はいずれも活動化されず、CPUは現在の命令の実行
を禁止してプログラムチェック割込みをかける。現在の
命令がロード命令、記憶命令、またはPBO命令である
ときは、CPUは、データ要求またはPBO要求が活動
化した後に、母線ユニットからの応答を待つ。したがっ
て、母線ユニットから応答がないとき(すなわちユニッ
ト使用中およびユニット肯定応答がいずれも活動化され
ないとき)は応答フラグを活動化して、母線ユニットに
、当面の要求を受諾しないよう、指示する。これは第7
図で言うと、ブロック70.72.76、および78へ
と順に進んでブロック78の°゛いいえ″から出る経路
である。この様子は第8図のタイミング図に示す。
前の要求が、存在する母線ユニットへのPBO要求また
はデータ要求であって、かつ、母線ユニットがユニット
肯定応答を活動化して(すなわちオペレーションを完了
した)しかも現在の命令がロード命令、記憶命令、また
はPBO命令であるときは、CP、Uはその命令をロー
ドするであろうから、母線ユニットは当該データまたは
PBO要求を必ず受諾する。これは第7図で言うと、ブ
ロック70.72,76、および78へと順に進んでブ
ロック78の“はい″から出る経路(ブロック106)
である。この様子は第9図のタイミング図に示す。
前の要求が、存在する母線ユニットへのPBO要求また
はデータ要求であって、かつ、母線ユニットがユニット
使用中を活動化して(すなわち母線ユニットがオペレー
ションを完了しない)シかも現在の命令がロード命令、
記憶命令、またはPBO命令であるときは、当面の要求
がオペレーション遂行中の母線ユニットのためのもので
あるから、CPUは当面の命令を保持する(すなわち次
シーケンスの命令はロードしない)。これには下記の(
atないしくc)の3つの場合が考えられる。
fa) その要求が既に使用中の母線ユニットに向けら
れるものであるとき。この場合に必要なことは、母線ユ
ニットが当面のオペレーションを完了スるまで0ユニツ
ト使用中″を活動状態に保つことである。これは第7図
で言うと、ブロック70.72、および74へと順に進
んでブロック74のパいいえ″から出る経路(ブロック
100)である。
この様子は第10図のタイミング図に示す。母線ユニッ
トが当面のオペレーションを完了スると、母線ユニット
は“ユニット使用中″を非活動化する。したがってシス
テムは静止する。
(b) その要求が、補助的な応答を設けていない不使
用中の母線ユニットに向けられるものであるとき。この
場合に必要なことは、システムが静止するまで母線ユニ
ットを待たせることである。この場合の流れ図の経路は
(atの場合と同じである。
(c) その要求が、補助的な応答を設けである不使用
中の母線ユニットに向けられるものであるとき。
この場合に必要なことは、母線ユニットがオペレーショ
ンを開始することである。これは第7図で言うと、ブロ
ック70,72、および74へと順に進んでブロック7
4の6いいえ”から出る経路(ブロック100)である
。CPUは当面の命令を保持するので、その要求は次の
サイクルで母線ユニットへ送られるが、母線ユニットは
この要求を受諾してはならない。次のサイクルでは、母
線ユニットがオペレーションを完了したときはユニット
肯定応答を活動化し、オペレーションを完了しなかった
ときはユニット肯定応答およびユニット使用中を活動化
する。すなわち(clはさらに2つの場合に細分される
(e−1) 次のサイクルで2つの母線ユニットが各自
のオペレーションを完了した場合。したがってユニット
肯定応答だけが活動状態にあり、ユ(88) n7 ニツト使用中は非活動状態であってその母線ユニットは
2度目はオペレーションを実行しない。これは第7図で
言うと、ブロック70,72,76、および80へと順
に進みブロック80の1はい″から出る経路(ブロック
108)である。
(c −2) 次のサイクルで一方の母線ユニットがそ
のオペレーションを完了しない場合。したがってユニッ
ト肯定応答およびユニット使用中はいずれも活動状態に
あり、その母線ユニットは2度目はオペレーションを実
行しない。これは第7図で言つと、ブロック70.72
、および74へと順に進みブロック74の6はい”から
出る経路(ブロック102)である。この様子は第11
図のタイミング図に示す。
以上で全ての場合について説明した。CPUおよび母線
ユニットの状態もこれで全て例示したことになる。
第8図ないし第11図に示すオペレーションを以下に略
記してお(。
う (89) 第8図 存在しない母線ユニットへのPBO命令、存在する母線
ユニットへのPBO命令 第9図(第9A図および第9B図) 2つの母線ユニットへのパイプライン式のPBO命令、
2つノ母線ユニットはオペレーションの完了には1サイ
クルしか要しない、2つの母線ユニットは基本的な応答
(ユニット肯定応答)を使用する、次シーケンスの命令
(Nsr)第10図(第10A図および第10B図)母
線ユニット#1へのPBO命令;基本的な応答(ユニッ
ト使用中);母線ユニット#1は第1のオペレーション
の完了に4サイクル要する、母線ユニット#1が使用中
の間の母線ユニット#2へのPBO命令;母線ユニット
#2は6ユニツト使用中”が非活動化されるまで待つ(
母線ユニット#2には補助プロトコルを設けていないの
で)、母線ユニット#2は基本的な応答(ユニット肯定
応答)を使用する;母線ユニット#2はオペレーション
の完了に1サイクル要する、母線ユニット#2がオペレ
ーションを実行している間にCPUは母線ユニット#1
へPBO命令をロードする、母線ユニット#1は基本的
な応答(ユニット肯定応答)を使用する;母線ユニット
#1は第2のオペレーションの完了に1サイクル要する
、次シーケンスの命令(NSI) 第11図(第11A図および第11B図)母線ユニット
#1へのPBO命令;基本的な応答(ユニット使用中)
;母線ユニット#1はオペレーションの完了に4サイク
ル要する、母線ユニット#1が使用中の間の母線ユニッ
ト#2へのPBO命令、母線ユニット#2は補助的な応
答(ユニット肯定応答)を使用する;母線ユニット#2
はオペレーションの完了に1サイクA[2する、次シー
ケンスの命令(N S I )第12図および第13図
はCBQオペレーションの場合の本内部母線機構の動作
を表わすタイミング図である。これらの図は第8図ない
し第11図と同様なものであるが、図中の最後の4つの
オペレーションがCPUおよび母線ユニットの両方で同
時に起こるという意味ではCBOオペレーションはPB
Oオペレーションよりもかなり簡単であるので、2つの
図を合わせて記した。さらに、CBOオペレーションは
単一の母線ユニットにしか関連しないので、図に示した
オペレーションで全てである。
第12図は、CPUがCBO要求を送って母線ユニット
がそれを受諾し、同じサイクルで、その要求されたタス
クの実行を開始する場合を示す。
第16図は、母線ユニットが次のマシンサイクルまでC
BO要求を受諾しない場合を示す。
第12図の場合は次のマシンサイクルでCPUは次シー
ケンスの命令(NSI)を開始することができるが、第
16図の場合はNSIの処理前の次マシンサイクルの間
はCPUはCBO要求を保持しなければならない。
〔発明の効果〕
以上説明したように本発明によれば、CPUの内部デー
タ経路に多種多様な機能ユニットを接続することができ
、CPUとそれらの機能ユニットとの間でデータを極め
て効率良(通信することができる。さらに、内部CPU
のオペレーションの速度が影響されないようなやり方で
これらの機能ユニットは内部データ経路から分離される
。内部母線はCPUの要求する多数の機能をサポートす
るだけでなく、後で機能を加える際にも融通性のある経
路となる。また設計ミスが減り、CPUのオペレーショ
ンは容易に理解でき(したがってCPUの構成は比較的
簡単にすることができる)、CPUの保守要件も少な(
なる。内部CPUの機能ユニットの間で通信の方法が標
準化されるので、必要な回路数、およびそれらの機能ユ
ニットを制御するのに要するワイヤーの数は少な(でよ
い。
【図面の簡単な説明】
第1図は本発明を利用することのできるPRISMシス
テムの構成例を示すブロック図、第2図は第2A図およ
び第2B図のつながりを示す図、第2A図および第2B
図はCPUの構成例を示すブロック図、第3図は内部母
線の接続の様子を示スブロック図、第4図は内部母線イ
ンターフェースを示すブロック図、第5図はCPUのう
ち内部母線オペレーションの間に働く部分を示スフロッ
ク図、第6図は母線ユニットのうち内部母線オペレーシ
ョン要求に応答して働(部分を示すブロック図、第7図
はPBOプロトコルおよびデータ要求プロトコルを示す
流れ図、第8図、第9A図および第9B図、第10A図
および第10B図、ならびに第11A図および第11B
図は、それぞれ、PBOオペレーションの間に発生され
る内部母線インターフェース制御信号のタイミングを表
わす図、第9図は第9A図および第9B図のつながりを
示す図、第10図は第10A図および第10B図のつな
がりを示す図、第11図は第11A図および第11B図
のつながりを示す図、第12図および第13図は、それ
ぞれ、CBOオペレーションの間に発生される内部母線
インターフェース制御信号のタイミングを表わす図であ
る。 tbH人 インタボんタナル・ビ琳・マメ号り6コー禎
ト→タンFIG、1 FIG、4 FIG、5 /32 FIG、6 FIG、7 FIG、8 プログラム子、・、汐参R友発生 ↓

Claims (1)

  1. 【特許請求の範囲】 CPUと、独立に動作可能な複数の母線ユニットと、該
    全ての母線ユニットと前記CPUとを接続する内部母線
    と、を有する計算機システムにおいて、 要求された母線ユニット、要求されたオペレーション、
    および該要求されたオペレーションの遂行に必要なオペ
    ランドを指定するためのデータ、を定義された命令が前
    記CPUによって前記内部母線に置かれ該命令を復号す
    る手段を前記各々の母線ユニットに備え、 特定のオペレーションに応答して、指定されたオペレー
    ションが完了するまで前記CPUを待機させるか、要求
    された母線オペレーションと並行して別の命令をCPU
    に実行させるかを選択的に指示する手段をCPUに備え
    る、 ことを特徴とする内部母線システム。
JP59242563A 1983-12-29 1984-11-19 内部母線システム Granted JPS60142743A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/566,925 US4947316A (en) 1983-12-29 1983-12-29 Internal bus architecture employing a simplified rapidly executable instruction set
US566925 1983-12-29

Publications (2)

Publication Number Publication Date
JPS60142743A true JPS60142743A (ja) 1985-07-27
JPH0135367B2 JPH0135367B2 (ja) 1989-07-25

Family

ID=24264994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59242563A Granted JPS60142743A (ja) 1983-12-29 1984-11-19 内部母線システム

Country Status (8)

Country Link
US (1) US4947316A (ja)
EP (1) EP0148975B1 (ja)
JP (1) JPS60142743A (ja)
AU (1) AU574737B2 (ja)
BR (1) BR8406533A (ja)
CA (1) CA1217869A (ja)
DE (1) DE3483152D1 (ja)
ES (1) ES536181A0 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6367240A (ja) * 1986-07-07 1988-03-26 ロレアル 容器
JPS63259727A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd コプロセツサのインタ−フエイス方式
JPH02188866A (ja) * 1989-01-17 1990-07-24 Fujitsu Ltd コプロセッサにおける事象管理方式

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02190930A (ja) * 1988-12-29 1990-07-26 Internatl Business Mach Corp <Ibm> ソフトウエア命令実行装置
JPH0314025A (ja) * 1989-06-13 1991-01-22 Nec Corp 命令実行制御方式
AU7486591A (en) * 1990-03-15 1991-10-10 Sun Microsystems, Inc. Apparatus and method for providing a stall cache
US5418956A (en) * 1992-02-26 1995-05-23 Microsoft Corporation Method and system for avoiding selector loads
US5535405A (en) * 1993-12-23 1996-07-09 Unisys Corporation Microsequencer bus controller system
US6151661A (en) * 1994-03-03 2000-11-21 International Business Machines Corporation Cache memory storage space management system and method
US5787472A (en) * 1995-07-31 1998-07-28 Ibm Corporation Disk caching system for selectively providing interval caching or segment caching of vided data
JP2933027B2 (ja) * 1996-08-30 1999-08-09 日本電気株式会社 複数命令並列発行/実行管理装置
KR100417398B1 (ko) * 1996-09-11 2004-04-03 엘지전자 주식회사 디에스피의명령어블록반복처리방법
US6256693B1 (en) * 1999-07-15 2001-07-03 3Com Corporation Master/slave data bus employing undirectional address and data lines and request/acknowledge signaling
US6658510B1 (en) * 2000-10-18 2003-12-02 International Business Machines Corporation Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
US20060136608A1 (en) * 2004-12-22 2006-06-22 Gilbert Jeffrey D System and method for control registers accessed via private operations
US9405534B2 (en) 2013-01-21 2016-08-02 Tom Yap Compound complex instruction set computer (CCISC) processor architecture
US9110657B2 (en) 2013-01-21 2015-08-18 Tom Yap Flowchart compiler for a compound complex instruction set computer (CCISC) processor architecture
GB201709752D0 (en) * 2017-06-19 2017-08-02 Advanced Risc Mach Ltd Graphics processing systems
JP7324282B2 (ja) 2019-01-31 2023-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 入出力ストア命令をハンドリングする方法、システム、およびプログラム
JP7379491B2 (ja) 2019-01-31 2023-11-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 入出力ストア命令をハンドリングする方法、システム、およびプログラム
TWI767175B (zh) * 2019-01-31 2022-06-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
TWI773959B (zh) 2019-01-31 2022-08-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49100938A (ja) * 1972-10-10 1974-09-24
JPS53135530A (en) * 1977-04-28 1978-11-27 Ibm Interface
JPS5563418A (en) * 1978-11-06 1980-05-13 Toshiba Corp Option connecting system
JPS55150041A (en) * 1979-05-11 1980-11-21 Hitachi Ltd Arithmetic processor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3753234A (en) * 1972-02-25 1973-08-14 Reliance Electric Co Multicomputer system with simultaneous data interchange between computers
US4014006A (en) * 1973-08-10 1977-03-22 Data General Corporation Data processing system having a unique cpu and memory tuning relationship and data path configuration
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US4467412A (en) * 1981-05-18 1984-08-21 Atari, Inc. Slave processor with clock controlled by internal ROM & master processor
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US4638453A (en) * 1983-03-28 1987-01-20 Motorola, Inc. Signal processing unit
US4564901A (en) * 1983-07-21 1986-01-14 Burroughs Corporation Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49100938A (ja) * 1972-10-10 1974-09-24
JPS53135530A (en) * 1977-04-28 1978-11-27 Ibm Interface
JPS5563418A (en) * 1978-11-06 1980-05-13 Toshiba Corp Option connecting system
JPS55150041A (en) * 1979-05-11 1980-11-21 Hitachi Ltd Arithmetic processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6367240A (ja) * 1986-07-07 1988-03-26 ロレアル 容器
JPS63259727A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd コプロセツサのインタ−フエイス方式
JPH02188866A (ja) * 1989-01-17 1990-07-24 Fujitsu Ltd コプロセッサにおける事象管理方式

Also Published As

Publication number Publication date
AU3548884A (en) 1985-07-04
AU574737B2 (en) 1988-07-14
CA1217869A (en) 1987-02-10
ES8603095A1 (es) 1985-10-16
BR8406533A (pt) 1985-10-15
US4947316A (en) 1990-08-07
EP0148975A2 (en) 1985-07-24
DE3483152D1 (de) 1990-10-11
JPH0135367B2 (ja) 1989-07-25
ES536181A0 (es) 1985-10-16
EP0148975A3 (en) 1988-02-03
EP0148975B1 (en) 1990-09-05

Similar Documents

Publication Publication Date Title
JPS60142743A (ja) 内部母線システム
US4620275A (en) Computer system
US4926317A (en) Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
EP0782071B1 (en) Data processor
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
US4802085A (en) Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
US5423009A (en) Dynamic sizing bus controller that allows unrestricted byte enable patterns
JPH0135366B2 (ja)
JPS6014341A (ja) 基本命令セツト計算機システムにおけるトラツプ割込み方式
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPH02227768A (ja) データ処理システム
US5832258A (en) Digital signal processor and associated method for conditional data operation with no condition code update
US4812972A (en) Microcode computer having dispatch and main control stores for storing the first and the remaining microinstructions of machine instructions
Blanck et al. The superSPARC microprocessor
US5960209A (en) Scaleable digital signal processor with parallel architecture
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JPS6014338A (ja) 計算機システムにおける分岐機構
JP2680828B2 (ja) ディジタル装置
JPH02306361A (ja) マイクロプロセッサ
JPH02105937A (ja) データ処理装置
JP2636821B2 (ja) 並列処理装置
JPH02211534A (ja) 並列処理装置
EP0167061A2 (en) Vector processing computer
JP2927281B2 (ja) 並列処理装置