JPS6053899B2 - デ−タ処理システム - Google Patents

デ−タ処理システム

Info

Publication number
JPS6053899B2
JPS6053899B2 JP52150707A JP15070777A JPS6053899B2 JP S6053899 B2 JPS6053899 B2 JP S6053899B2 JP 52150707 A JP52150707 A JP 52150707A JP 15070777 A JP15070777 A JP 15070777A JP S6053899 B2 JPS6053899 B2 JP S6053899B2
Authority
JP
Japan
Prior art keywords
register
address
interrupt
bus
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.)
Expired
Application number
JP52150707A
Other languages
English (en)
Other versions
JPS5382240A (en
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 JPS5382240A publication Critical patent/JPS5382240A/ja
Publication of JPS6053899B2 publication Critical patent/JPS6053899B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus

Landscapes

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

Description

【発明の詳細な説明】 本発明は、データ処理システムに関するものであり、特
に、共通ポール母線を含むサイクル・スチール/割込み
リクエスト・チャネル及び統合された共有演算論理機構
を有するデータ処理システムに関するものである。
現在、マイクロプロセッサと呼ばれるものは、一般に3
乃至4個の基本的な機能装置から成つている。
最初の3つは、増分、ブランチ及び連係(link)の
ためのハードウェアを備えたROS(RAMでもよい)
マイクロ命令アドレス・レジスタ、関連するレジスタ及
びデータ・バスを備えた中央演算論理ユニット (AL
U)、並びに主記憶装置をアドレス指定して、これとの
間でデータをやりとりするための装置(普通、I/0ユ
ニットとして扱われ、他のシステムI/0装置と結合さ
れる)である。より高度なマイクロプロセッサにおいて
は、ネストされた割込みの切替えを行なうたIめのレジ
スタ及びデータ・バスのセクションが4番目の装置とし
て別に設けられる。これは、チャネルに相当するもので
ある。このチャネルは、多重モード又はバースト、モー
ドのサイクル・スチール制御(直接メモリ・アクセス又
はDMAとも呼ばれる)を実行するように構成されても
よい。現用のマイクロプロセッサの構成方式は、上述の
諸機能とチップとの関係に関して、2つに分けることが
できる。最初の方式は、各々の機能をAL.Uチップ、
制御チップ、アドレス・チップ、1/0チップ及びRO
S/RAMチップ(アドレス制御回路が組込まれている
場合がある)のような別々のチップに受け持たせるもの
であり、2番目の方式は、複数の同一チップに処理機能
を分散させるもので、“゜ビット・スライス方式゛と呼
ばれており、一般に別のI/0制御チップを必要とする
。何れの方式も、チップを相互接続するための線をかな
り必要とするが、使用可能な■/0ピンの数が限られて
いるために、相互接続線の数も制限され、従つて、異な
つたチップに同じ論理機能を持たせることが必要になる
又、オフ・チップ駆動器及び受信器における遅延も問題
になる。もしデータ母線又はアドレス母線が両方向性で
あれば、各チップの駆動器と受信器との間において、;
すべてオフの状態が設定され次いですべてオンの状態が
設定されるまでは、どのような信号の転送も行なわれず
、従つて、更に遅延が生じることになる。又、各両方向
性母線は、I/0ピン及びオフ・チップ駆動器を必要と
するので、より大きなSチップ●レイアウトが要求され
、更に、各チップにおける電力消費量も大きくなる。こ
れらの問題を解決するため、アドレス母線及びデータ母
線を1つの時分割゜“ユニバズにまとめ、更に制御及び
接続手順(Handshaking)の遅延も1つにま
とこめたようなアーキテクチヤが考えられる。従つて、
最適のコスト/パフォーマンスを得るためには、最小数
の駆動器及び受信器を備えて、例えば関のピン接続を有
する単一チップにパッケージされ得るようなマイクロプ
ロセッサ・アーキ5テクチャが必要になる。
現在のコンピュータ技術においては、ネストされた割込
みレベル及びサイクル●スチール優先レベルを各々8つ
まで処理するためのデータ・バス、レジスタ及びバッフ
ァを有するチャネルは、4極めて複雑であつて、一般に
、中央プロセッサ・チップとは別のチップに設けられる
その理由は、このようなチャネル機構は600乃至70
柵の論理ゲートを必要とするが、これは8ビットのマイ
クロプロセッサの論理ハードウェアに殆んど等しいから
である。従つて、本発明の目的は、上述のような問題を
解決するために、新規なCPU及びチャネル機構を有す
るデータ処理システムを提供するにある。
本発明に従うマイクロコンピュータの特徴を要約すると
次のようになる。(1)CPUは、データ処理、I/0
処理、レジスタ間のデータ転送、記憶装置及びレジスタ
間のデータ転送、シフト操作、バイト処理、並びにアド
レス・レジスタ変更のために時分割されるALUを有す
る。
(2)サイクル・スチール及び割込みを可能にするため
の共通ボール母線及び制御論理が設けられる。
(3)作業用オペランド・レジスタの複数のスタックが
設けられる。
各スタックは、実行割込みレベルによつて選択すること
ができ、この場合、割込みレベルに対応するページを選
択することにより絶対スタック・アドレス指定が行なわ
れる。(4)単方向性のループ母線に関連して、記憶装
置をアドレスするためのアドレス●レジスタが設けられ
る。
ALUは、実行サイクルの一部において、アドレス●レ
ジスタの内容を変更し、そして変更された内容はアドレ
ス・レジスタへ戻されると共に、記憶装置のアドレス指
定のために出力母線へロードされる。更に、出力母線へ
ロードされた記憶装置アドレスを、割込みから復帰ポイ
ンタとして記憶するためのローカル記憶レジスタ装置(
以下、LSRという)も設けられる。(5)LSRは、
サイクル・スチール(直接メモリ・アクセスDMA)操
作での使用のために、間接主記憶装置アドレスを記憶す
る。
この間接アドレスは、サイクル・スチールに関連するI
/0装置によつて禁止されない限り、ALUで自動的に
増分されて出力母線の方へ送られ、そして1/O装置か
ら入力母線へ供給されたデータを主記憶装置へ書込むた
めの一時ポインタとして使用されるか、又は主記憶装置
にあるデータを1/0装置へ送るために、主記憶装置を
アクセスして読出しデータを入力母線へロードし、次い
でALUを介して出力母線の方へ送るための一時ポイン
タとして使用される。(6)マイクロプロセッサが異な
つた計算装置をエミユレートするのに使用される場合に
、エミユレートされている命令の0Pコードを記憶する
ためのオペランド・レジスタが設けられる。
AJ.Uは、エミユレートされている0Pコードと命令
アドレス・レジスタの内容とを加算する。この加算結果
は、実行可能記憶装置(マイクロプログラム記憶装置又
は制御記憶装置とも呼ばれる)にあるテーブルに対する
変位ポイントとして、出力母線へ送り出される。このテ
ーブルは、エミユレートされている0Pコードを実行す
るためのマイクロ命令ルーチン(実行可能記憶装置にあ
る)への即値ポインタを与える。(7)割込み及びサイ
クル・スチールをボールするための共通ボール母線、並
びに許可された割込みに対するリクエストに応答してマ
イクロ命令アドレス・ポインタを変更するための制御装
置が設けられる。新しい割込みがリクエストされると、
現命令アドレスは、アドレス●レジスタからLSR中の
現割込みレベルに関連するレジスタ・ロケーションへ転
送され、そして新割込みレベルに関連する命令アドレス
が、新割込みレベル・コードによつてアクセスされた田
Rロケーションからアドレス●レジスタへ転送される。
(8)共通ボール母線上のサイクル・スチール・リクエ
ストを検出するための手段が設けられる。
サイクル・スチールの優先順位は、共通ボール母線にお
いて割込みリクエストがクリアされた後に、この共通ボ
ール母線から得られ、そしてアドレス・レジスタへ間接
主記憶装置アドレスをロードするために、対応するLS
Rレジスタをアドレスするのに用いられる。間接主記憶
装置アドレスは、I/0装置からのタイミング信号又は
アドレス情報を必要とすることなく、マイクロプロセッ
サの制御のもとにI/Oデータを記憶したり取出したり
するために増分され得る。以下、図面を参照しながら、
本発明の実施例について説明する。
第1A図乃至第1C図は、本発明に従う計算システムの
アーキテクチヤを示したもので、このシステムは次の4
つの主要ハードウェアを含んでいる。
(1)ALU22、チャネル(入力母線10、出力母線
20、補助アドレス母線21、共通ボール母線53及び
制御線15を含む)、複数のレジスタ、及び制御論理を
含むCPU9。
(2)LSRl4。
(3)主記憶装置12。
(4)実行可能記憶装置又はマイクロプログラム記憶装
置とも呼ばれる読取専用記憶装置(ROS)16。
CPU9は、例えば、モジュール■/0ピンの数が70
よりも少ないパツケージヘマウントされる単一のLSI
チップに構成されてもよい。
このようなCPUパッケージは、現在の技術で、ROS
l6のモジュール、LSRl4(例えば32個のレジス
タを有している)のモジュール、支持駆動装置18のた
めの2個のモジュール及び線59に接続された発振器(
図示せず)と共に1枚のカード上にマウントすることが
できる。このカード上には、主記憶装置12の一部もマ
ウントしてよいが、現在の回路技術からすれば、主記憶
装置12は、殆んどの場合、別のカードにマウントされ
ることになろう。データ、命令及びI/0指令は、2つ
の単方向線即ち■/0共通人力母線10及びI/0共通
出力母線20によつてCPU9と他のユニットとの間を
転送される。
入力母線10は、I/0装置(図示せず)から、母線1
1を介して主記憶12から、母線17を介してROSl
6から、及び母1線13を介してLSRl4から各々デ
ータを受取る。入力母線10上のデータは、プログラム
・レジスタ30及びALU22へ送られる。ここで重要
なことは、CPU9は入力母線10からデータ及び情報
を受取るだけで、入力母線10へデータ門を送り出すた
めの駆動装置を備えていないということである。これに
対し、主記憶装置12、?Rl4及びROSl6には、
入力母線10へデータを供給するための駆動装置が備え
られており、更に主記憶装置12には、LSRl4から
母線13をフ介して入力母線10へ供給されたデータ又
はI/0装置から入力母線10へ供給されたデータを受
取るための装置も備えられている。1/0共通出力母線
20は、出力バッファ・レジスタ26の内容をROSl
6、主記憶装置12、LSRl4及びI/0装置へ供給
する。
この共通出力母線20は、ROSl6及び主記憶装置1
2に対してはアドレス母線として働くが、LSRl4及
びI/0装置に対してはデータ母線として働く。I/0
装置は、6本のローカル記憶コード出力(LCO)線2
1によつてアドレスされる。これらの江℃線即ち補助ア
ドレス母線21は、本実施例では、?Rl4を構成する
ローカル記憶レジスタを6個まで又はI/0装置を槃個
まで直接アドレスできるようになつている。前述のよう
に、入力母線10は、I/O装置又は記憶装置からのデ
ータ又はマイクロ命令を転送する。入力母線10及び出
力母線20を介する転送における源及び行先は、複数の
制御線15によつて選択される。制御線15は、駆動装
置18によつて駆動された後は、制御及びクロック線1
9として示されている。これらの制御線には、LSR選
択線、ROS選択線、主記憶装置選択線、上位バイト書
込み線、下位バイト書込み線などが含まれる。1/0装
置の選択は、線21上の有効装置アドレース及び非活動
状態にあるYSR選択出力の組合わせによつて行なわれ
る。
出力母線20を介するデータ転送の有効化のタイミング
は、先行のクロック1パルス(複数の線15のうちの1
本)によつて決定される。LCO及び選択コードの有効
性は、2サンプル・アウト信号により表示される。サン
プルイン信号は、入力母線10を介するCPU9へのデ
ータ転送を有効化するためのサンプル・アウトへの応答
又はI/O装置からの指令応答である。これらの信号は
、I/0装置にCPUクロン5クの進行を禁止させるホ
ールド・クロック・インと一緒になつて、非同期1/0
動作を可能にする。1/0インターフェース線10,1
9,20,21及び53の要約を次に示す。
3(1)入力母線10:ROSl6から
のマイクロ命令、I/O装置及びLSRl4からの入力
データ並びに主記憶装置12の入出力データを転送する
ための18XKの線から成つている。(2)出力母線2
0:I/O装置及びLSRl4ヘデ4ータを転送し、主
記憶装置12及びROSl6へアドレスを供給するため
の1鉢の線から成つている。
(3)共通ボール母線53:7本の多重サイクル・スチ
ール線又は7本の割込みレベル・リクエスト線から成つ
ている。
これについては、あとで詳しく説明する。1)LCO線
21:LSRl4のロケーションを?個までアドレスし
、サイクル●スチール●レベルを知らせ、又はI/O装
置を6緬までアドレスするための6本の線から成つてい
る。
あとで述べるLSR選択線が付勢されていると、LCO
線21によつて指定されるアドレス0乃至63は、LS
Rl4のレジスタ●ロケーション0乃至63を各々アド
レス指定する。レジスタ・ロケーション16乃至23は
割込みに使用され、レジスタ・ロケーション24乃至3
1はサイクル・スチールに使用される。LSR選択線が
付勢されていなければ、LCO線21によるアドレス1
乃至63は、I/0装置1乃至63を各々アドレス指定
する。この場合、アドレス0はチャネル機能のために予
約されている。L)制御及びクロック線19:これには
、次のようなインターフェース線が含まれる。
(イ)ボール●サイクル・スチール出力線77(1本)
一共通ボール母線53の割込み優先順位をクリアするこ
とによつて割込みの代りにサイクル●スチールのボール
を共通ボール母線53へリクエストし、そしてサイクル
・スチール優先順位をリクエストするのに用いられる。
(ロ)選択出力線(5本)−?R選択、主記憶装置選択
、ROS選択、上位バイト書込み及び下位バイト書込み
の各線が含まれる。もし書込みが指定されなければ、読
取り動作が暗示される。(ハ)サンプル・アウト線(1
本)一指令又はLCO信号が有効であることを表示する
これは、あとで述べるように、クロック3及び4並びに
クロック9乃至14の間に生じる。(ニ)クロック1又
は9出力線(1本)一出力母線20へ供給された出力バ
ッファ・レジスタ26の前の内容を有効化するタイミン
グを与える。(ホ)クロック6,7出力又はクロック1
4,15出力線(倍サイクル命令用)一命令の終りを表
示するタイミングを与える。
発振器入力線59:連続的な方形波クロック信号を供給
する。
(7)その他のインターフエースニサンプル●イン(図
示せす)は、選択された装置が入力母線10へ供給した
データをサンプル・アウトに応答して有効化するか、又
は選択された装置が指定に応答するための1本の共通線
を含む。
サイクル・スチール入力線68は、I/O装置によつて
使用される。I/0装置は、信号の立上り部分でサイク
ル・スチールのボールをリクエストし、立下り部分でそ
の優先順位が共通ボール母線53上で有効であることを
表示する。割込み入力線70は、1以上の装置が共通ボ
ール母線53で保留状態になつている割込みを有してい
ることを表示する。その優先順位は、共通ボール母線5
3で表示されている。リセット入力(図示せず)は、シ
ステム・リセット及び電源オン・リセットを与える。上
位バイト記憶禁止は、主記憶装置12へ下位バイトだけ
を書込むために、I/0装置から発生される。下位バイ
ト記憶禁止は、主記憶装置12へ上位バイトだけを書込
むために、I/0装置から発生される。もしこれらの両
方が発生されると、主記憶装置12の読取り動作が暗示
される。記憶データ選択は、主記憶装置12から読出さ
れたデータを入力母線10へ供給する。これが禁止され
ると、I/O装置は、LSR(サイクル・スチール・ア
ドレス・レジスタ)への書込みのために、そのデータ(
主記憶装置のアドレスでもよい)を入力母線10へ供給
することがてきる。1!SR書込み制御は、主記憶装置
12にあるデータ・テーブルを連鎖するため、又はLS
Rアドレスの増分を禁止するために、I/O装置から発
生される。
次に、CPU9について説明する。
なお、図において引出し線の付いていない数字はビット
数を表わしている。CPU9においては、入力母線10
はALU22及びプログラム・レジスタ30に接続され
ている。プログラム・レジスタ30の出力は、線33を
通つてALU22及び命令解読器,62へ送られる。プ
ログラム・レジスタ30に記憶された命令のアドレス部
(6ビット)は、線31を通つてLSR制御出力(LC
O)レジスタ40及び減分レジスタ38にも送られる。
減分レジスタ38の出力は、線39を通つてプログラム
・レジスタ30へ戻され、更に現条件コード・レジスタ
48及び計数レジスタ50へ送られる。計数レジスタ5
0の出力は、線51を通つて減分レジスタ38及びLC
Oレジスタ40へ送られる。現条件コード・レジスタ4
8の出力は、線49を通つて保管条件コード・レジスタ
42へ送られる。現条件コード・レジスタ48及び計数
レジスタ50の出力は、線43を通つてALU22にも
送られる。CPU9のデータ●フローは、16ビットの
ALU22と2個のオペランド・レジスタ即ち線35を
介して,AL.U22の何れの側にもゲートされ得る累
算レジスタ34及び線37を介してALU22の何れの
側にもゲートされ得る累算拡張レジスタ36とを含んで
いる。
合計レジスタ24は、AL,U22の出力バッファであ
つて、母線23からロードされる。
プログラム・レジスタ30は、解読器62で解読されて
実行されるマイクロ命令を保持する。プログラムレジス
タ30の内容も、線33を通つてALU22へ送られる
。更に、アドレス変更及びブランチ連係操作のために、
マイクロ命令アドレス・レジスタ32の内容が線29を
介してAL.U22へゲートされる場合がある。計数レ
ジスタ50は、シフトの計数及びLSRl4の間接アド
レス指定に用いられる。計数レジスタ50の内容は、あ
とで説明する種々の操作の遂行のために、線43を介し
てALU22へゲートされ得る。出力バッファレジスタ
26は、内部出力母線28へ供給されるデータを保持す
る。この出力母線28は、駆動装置18で駆動された後
、I/O共通出力母線20として扱われる。出力バッフ
ァ・レジスタ26の内容は、あとで説明する特定の命令
により、LSRl4のロケーション0に保管され、必要
なときに入力母線10を通つてALU22へ入力される
。合計レジスタ24の出力(2バイト)は、命令解読器
62の制御のもとに、母線25を通つてマイクロ命令ア
ドレス◆レジスタ32、累算レジスタ34、拡張レジス
タ36、エラーレジスタ46(下位バイト)、割込みマ
スク・レジスタ44(上位バイト)、計数レジスタ50
(下位バイト)、現条件コード・レジスタ48(上位バ
イト)及び出力バッファ●レジスタ26へ選択的にロー
ドされる。割込みマスク・レジスタ44の出力は、線4
5及び43を通つてALU22へ送られ、更に線45を
通つて割込みゲート(アンド・ゲート)52へ送られる
。エラー・レジスタ46の出力は、線47及び43を通
つてALU22へ送られる。合計レジスタ24の出力の
下位4ビットは、線27を通つて命令アドレス●レジス
タ32の上位4ビット(ページ・レジスタ32aとして
用いられる)へゲートされる場合がある。共通ボール母
線53上の多重化されたサイクルスチール・リクエスト
及び割込みリクエストは、割込みゲート52及び優先順
位符号器54へ送られる。
サイクル・スチールは割込みよりも優先順位が高い。割
込みゲート52の出力は、線69を通つて優先順位符号
器54へ送られる。優先順位符号器54の出力は、線5
5を通つて現割込みレベル・レジスタ56、上位レベル
割込みテスト回路58及びLCOレジスタ40へ送られ
る。テスト回路58の出力線63に信号が生じると、よ
り上位のレベルの割込みが強制される。現割込みレベル
・レジスタ56の出力は、線57を通つて上位レベル割
込みテスト回路58及びLCOレジスタ40へ送られる
。単相発振器から線59へ供給されたクロック信号は、
4相発生器60へ送られる。
4相発生器60の出力は、線61を通つてクロック装置
66及び補助クロック装置64へ送られる。
これらの両クロック装置は、命令解読器62と協働して
、CPU9の動作、例えば種々のオペランド●レジスタ
への母線ゲート動作、種々の母線及びレジスタの時分割
などを制御する。次に第5図を参照して、本発明に従う
計算システムのサイクル●スチール/割込チャネルにつ
いて説明する畦割込み/サイクル・スチール・ボール線
530乃至536は、共通ボール母線53を構成するも
ので、負論理に従つている。
割込みマスク・レジスタ44は、出力線450乃至45
6を有する。サイクル・スチール・ボール専用ラッチ7
5は、リセット出力線80を有する。このラッチ75の
リセット線80への出力は、割込みゲート52において
、割込みマスク●レジスタ44のビット0に対応する線
450上の信号とアンドされ(アンド・ゲート96)、
次いでその結果とボール母線53のビット位置0を表わ
す線530上の信号とがノアされる(ノア・ゲート97
)。ノア・ゲート97の出力は、線520へ供給される
。同様に、線451乃至456へ各々出力された割込み
マスク・レジスタ44のビット1乃至6も、サイクル●
スチール●ボール専用ラッチ75のリセット線80上の
信号とアンドされ、次いでその結果とボール母線53の
ビット位置1乃至6に各々対応する線531乃至536
上の信号とがノアされて、線521乃至526へ結果の
出力が各々供給される。線520はノア回路86,94
及び95に、線521はノア回路86,90及び95に
、線522はノア回路86及びアンド回路91に、線5
23はノア回路86及び90に、線524はアンド回路
87及び92に、線525はアンド回路88及びノア回
路90に、そして線526はアンド回路93に各々接続
されている。ノア回路86の出力は、優先順位符号器5
4の最上位ビット出力線544を通つてアンド回路87
,88及び92、現割込みコード回路56の重み4のラ
ッチ、テスト回路58並びにアンド●ゲート82へ送ら
れる。ノア回路95の出力は、中位ビット出力線542
を通つてアンド回路91、現割込みコード回路56の重
み2のラッチ、比較テスト回路58及びアンド・ゲート
82へ送られる。ノア回路90の出力は、アンド回路9
3へ送られる。ノア回路95においては、アンド回路8
7及び88の出力と線520及び521上の信号とがノ
アされる。ノア回路94においては、アンド回路91乃
至93の出力と線520上の信号とがノアされ、その出
力は、最下位ビット出力線541を通つて現割込みコー
ド回路56の重み1のラッチ、比較テスト回路58及び
アンド・ゲート82へ送られる。上述の回路構成から明
らかなように、優先順位符号器54は、所与のレベルを
対応する3ビットのコードへ符号化するものである。サ
イクル●スチール●リクエストのビット位置7を兼ねる
負論理の共通サイクル・スチール・リク千スト線68上
の信号は、反転器Nで反転された後、サイクル・スチー
ル・ボール専用ラッチ75へ送られて、これをセットす
る。ラッチ75のセット出力は、線77を通つてサイク
ル・スチール応答ラッチ76へ送られ、これをセットす
る。線80へ供給されるラッチ75のリセット出力は、
割込みゲート52の各アンド回路を禁止し、更に割込み
レベル切替ラッチ84をデゲートする。割込みレベル切
替ラッチ84から線79へ供給される出力は、正論理の
新割込みレベル・ロード線72の制御及び正論理の現割
込みレベル設定線73のセットに用いられる。負論理の
共通サイクル●スチール・リクエスト線68は、サイク
ル・スチール応答ラッチ76にも接続されている。サイ
クル・スチール応答ラッチ76のセット出力は、線55
へ供給される。この出力は、アンド回路89において、
線85上の正論理のクロック・パルスとアンドされ、そ
の結果は、線78を通つてアンド・ゲート82並びにL
COレジスタ40の上位入力ビット線834及び835
へ送られる。上位入力ビット線834及び835には、
アンド●ゲート82の出力によつて所定のコードが強制
される。負論理の共通割込みリクエスト線70上の信号
は、サイクル●スチール応答ラッチ76へ送られ、更に
反転器Nで反転された後、割込みレベル切替ラッチ84
へ送られる。
正論理の割込み可能線71は、割込みレベル切替ラッチ
84に接続される。正論理線310乃至314は、第1
B図に線31として示されているプログラム・レジスタ
30のアドレス部の下位のビット位置を表わす。
線310乃至314上の信号は、アンド・ゲート83で
正論理のマイクロ命令設定線74上の信号と個々にアン
ドされた後、線831乃至835を通つてLCOレジス
タ40へ送られる。アンド・ゲート82の出力は、LC
Oレジスタ40の入力側において、下位ビット位置の線
831乃至833とドット・オアされる。
アンド・ゲート81の3本の入力線も、線831乃至8
33と各々ドット・オアされる。アンド●ゲート81に
おいては、線561,562及び564へ供給される現
割込みコード・レジスタ56の出力と、現割込みレベル
設定線73上の信号とが個々にアンドされる。現割込み
コード・レジスタ56の出力は、比較テスト回路58に
も送られる。現割込みコード●レジスタ56の内容をL
COレジスタ40の下位の入力線へゲートする現割込み
レベル設定線73上の信号は、線78上の信号と同じよ
うにして、上位入力線834及び835へ所定のコード
を強制する。ただし、このコードは、線78上の信号に
よる強制コードとは異なつており、従つて、LCOレジ
スタ40の出力線41には、LSRl4の異なつたレジ
スタ●ロケーションを指定するアドレスが供給される。
前述のように、サイクル・スチールの優先順位は割込み
よりも高いので、共通サイクル・スチール・リクエスト
線68上に信号が生じると、サイクル●スチール・ボー
ル専用ラッチ75がセットされて、通常は連続的に処理
される割込みポーリングが直ちにキャンセルされ、そし
てすべての1/0装置に対し、それらのサイクル・スチ
ール優先順位をボール母線53の線530乃至536へ
供給すると共に割込みリクエストを撤回するよう、リク
エストが出される。
共通割込みリクエスト線70上の信号の減勢は、すべて
のI/0装置がそれらの割込み優先順位ビットをボール
母線53から取り除いたことをCPU9に知らせる。共
通サイクル・スチール・リクエスト線68が減勢されて
、サイクル・スチール・ボール専用ラッチ75がリセッ
トされると、優先順位符号器54の出力線541,54
2及び544上の信号は、アンドゲート82並びに下位
入力線831乃至833を通つてLCOアドレス・レジ
スタ40へロードされ、これと同時に、線78上のサイ
クル・スチール修飾ビットは、上位入力線834及び8
35を通つてLCOレジスタ40へロードされる。この
時、サイクル・スチール応答ラッチ76がセットされて
いるので、サイクル・スチール応答(線55)がI/0
装置に知らされる。LCOレジスタ40の出力線41へ
供給されたlアドレスによつて指定されるLSRl4中
のサイクル・スチール・レジスタは、間接主記憶装置ア
ドレスを母線13へ供給する。
この間接アドレスは、I/0データの取出し又は記憶す
るために、ALU22で増分される場合がある。最も優
先順i位の低いサイクル●スチール●レベルは、優先順
位ビットを必要とせす、その強制された装置アドレス部
分は、すべての2進装置アドレスを許可するために、0
にされる。サイクル●スチール操作の初期においては、
サイクル・スチール・ポールフ専用ラッチ75がリセッ
トされて、連続的な割込みポーリング又はマイクロ命令
の順次実行が再開される。サイクル●スチール・ボール
専用ラッチ75は、I/O装置が共通サイクル・スチー
ル・リクエスト線68を再びセットし得るように、まず
リセットされねばならないだけであるから、順次パース
ト●モード●サイクル●スチールが要求される場合には
、ラッチ75は再びセットされることになる。割込みマ
スク・レジスタ44は、サイクル・スチール●ボール専
用ラッチ75がセットされている時は常にデゲートされ
る。I/O装置の非同期的なサイクル●スチール●リク
エストは、マイクロプロセッサ・クロックのゲート動作
により、又は優先順位回路を安定化させるように共通ボ
ール母線53をラッチすることにより制御され得る。次
に、本発明に従う計算システムの種々の構成装置につい
て更に詳しく詳明する。
1/O単方向母線 本発明に従つて、単方向性の外部入力母線及び外部出力
母線を、ALU22を中心とする内部閉ループを構成す
るように接続すると、余分のバッファ・レジスタを用い
ることなく、最小数の制御論理ハードウェアでALU及
びデータ・バスを共用することによつて、内部処理、外
部1/Oデータ変更、並びにより精妙な多重レベル割込
み及びサイクル・スチールを処理するための割込みレベ
ルの切替え及びサイクル●スチール●アドレスの増分を
行なうことができる。
これは、CPUチップ9の入力用及び出力用に単方向母
線を用いることによつて達成される。
データ及びアドレスは、同じ出力母線20へ供給される
。I/0共通人力母線10は、CPUチップ9への唯一
のデータ入力母線である。この入力母線10には、主記
憶装置12、LSRl4及び一ROSl6が接続されて
いる。上述のように、入力母線10は、CPU9へ向か
う単方向性の母線であるが、主記憶装置12は、出力母
線20に主記憶装置アドレスが保持されているときに、
入力母線10を用いてデータの読取り又は書込みを行.
なう。入力母線10は、ALU22の一方の入力に接続
された外部入力線としても働く。
ALU22の出力は、合計レジスタ24に一時記憶され
る。合計レジスタ24は、CPUチップ9の内部のすベ
ーてのレジスタにつながつている1つの共通出力母線2
5を有している。この母線25は、出力をCPUチップ
9の外部へ供給するための出力バッファ・レジスタ26
を介して母線28に接続され、母線28は、駆動装置1
8を出るとI/0共通出力母線20になる。本実施例で
は、I/0共通出力母線20は2バイトの母線であつて
、LSRl4及び図示していない多数のI/0装置へデ
ータを供給する。出力母線20はまた、主記憶装置12
及びROSl6(実行すべき命令が記憶される書込み可
能な制御記憶装置でもよい)のための時分割アドレス母
線としても働く。かくして、本発明に従うデータ処理シ
ステムにおいては、データ及び命令を供給する入力母線
10並びにデータ及びアドレスを供給する出力母線20
から成るループ構造の単方向母線アーキテクチヤが使用
される。CPUチップ9から主記憶装置12へ直接デー
タを供給するためのデータ・バスはないが、この問題は
、LSRl4中の選択されたレジスタ・ロケーションへ
CPU9からの結果をロードするようにすると共に、主
記憶装置12と1−SRl4との間においては、単方向
性の入力母線10を反対方向のデータ転送にも使用する
(第1A図に二重破線で示されている)ことによつて解
決される。
かくして、内部データ変更マイクロ命令が出される度に
、余分の命令又は時間を必要とすることなく、出力母線
20上の結果データをu玉14の選択されたローカル記
憶レジスタへ任意にセットし得るようにすることにより
、CPUチップ9へ向かう入力母線10の単方向性が維
持される。このような構成をとると、両母線即ち入力母
線10及び出力母線20におけるバイブライン操作及び
同時操作が可能になり、前のマイクロ命令が入力母線1
0上のデータを用いて実行されている間に、出力バッフ
ァ・レジスタ26は次のマイクロ命令をRCSl6から
取り出すためのアドレスを保持することができる。また
、出力バッファ・レジスタ26は主記憶装置12を直接
アクセスするのにも用いられ、そして主記憶装置12及
びROSl6に対するこれら2つのアドレス・モードの
間に、ビット幅の狭いデータ・ウインドが、別に設けら
れた6ビットのミニ・アドレス母線21によつてアドレ
ス指定されたローカル記憶レジスタ又は1/0装置へデ
ータを転送する。このデータ●ウインドは、各サイクル
●スチール応答の報告及び割込みレベルの切替えも行な
う。困個のローカル記憶レジスタのうちの1つを出力母
線イメージ・レジスタとしてとつておくことにより、C
PUチップ9の内部におけるデータ・フローを、共通の
AL.Uを中心として構成することができる。この場合
、合計レジスタ24は、出力レジスタ26を介して他の
すべての内部データを供給したり、レジスタ及び外部の
装置をアドレス指定したりする。このようにして、外部
のどのようなI/O装置も、AL,U22を内部処理の
ための諸装置と共用することができる。単方向性の外部
ループ母線を利用すると、割込みレベルの切替え並びに
共通のALU及びデータバスを介して記憶装置アドレス
を自動的に増分して行なわれる直接メモリ・チャネル・
アクセス(サイクル・スチール)について、CPUチッ
プの内部トランスペアレンシーが達成される。
ループ母線アーキテクチヤは、命令実行のオーバーラッ
プ及びバイブライン処理を可能にする。
これの例を幾つかに次に挙げておく。第1の例では、R
OS命令が入力母線10上にあるとき(普通は、各マイ
クロ命令サイクルの始め及び終り)には常にバイブライ
ン処理が行なわれ、このときI/0共通出力母線20は
、I/0装置へデータを送り始める。
第2の例では、データがI/0装置又はLSRl4から
入力母線10へ送られて、AL,U22を用いて内部処
理されているときに、オーバーラップ操作が行なわれる
。このとき、出力母線20上にはROSアドレスがあり
、従つて次の命令がアクセスされている。第3の例では
、前の命令実行の結果をLSRl4へ記憶すると共に、
新しい命令の実行を開始するときに、オーバーラップ操
作が行なわれる。
LSRl4は、新しい命令サイクルのクロック1の間に
ロードされ、一方、新しい命令の実行はクロック0で開
始される。LCOレジスタ40の6本の出力線41は、
どのような型の命令が実行されているかに応じて、LS
Rl4の64個の半ワード・ロケーション又はI/O装
置をB個までアドレス指定するのに用いられる補助アド
レス母線21を構成する。この補助アドレス母線21及
びループ構造の入出力母線10,20を組合わせて用い
ると、1サイクル中に複数の操作を遂行することができ
る。I/0装置は、1つの命令の実行中において、補助
アドレス母線21を介してアドレス指定されている間に
、入力母線10へデータを供給したり、AL.U22で
処理されたデータを受取つたり、出力母線20上の算術
的に又は論理的に変更されたデータを参照したりするこ
とができる。これは、AL,U操作を伴わない簡単なI
/Oデータ転送を行なうのにも3個の命令を必要とする
従来のチャネルに比べて、優れた点である。従来のチャ
ネルによるI/0データ転送においては、まず処理装置
から共通1/0母線へアドレスが送られ、続いてI/0
装置は、そのアドレスを認識したことを知らせるために
、応答確認式のインターフェースを介して処理装置に応
答する。処理装置がコマンドを送り出すためには、別の
命令が必要である。I/0装置は、処理装置からのコマ
ンド・アウトにも応答する。これが終ると、処理装置は
、何れの方向にデータを転送すべきかに応じて、3番目
の命令即ち読出し命令又は書込み命令を実行する。1/
0共通出力母線20は、実行されるべきすべての命令に
ついてオーバーラップ操作が行なわれ得るように、多重
化される。
ここで、゜゜オーバーラップ゛とは、処理装置が現命令
を内部で処理している間に、次の命令が命令記憶装置即
ちROSl6からアクセスされることを意味する。これ
は、共通母線を介して、例えばクロック0乃至7(8ク
ロック)から成る命令サイクルのうちの5クロックてR
OSl6をアドレス指定し、そして残りの3クロックて
?Rl4又はI/0装置へデータを送るようにすること
によつて行なわれlる。主記憶装置12 主記憶装置12は、マイクロコンピュータ及び1/0装
置の両方からのデータを記憶するための、アドレス指定
変更が可能なメモリである。
デj−タは、読出しモード及び書込みモードの両方にお
いて、母線11を介して、主記憶装置12と1/0共通
人力母線10との間を転送される。主記憶装置12のた
めのクロック及び制御信号は線19から与えられ、アド
レスはI/O共通出力母線20から与えられる。主記憶
装置12がアクセスされるときは、命令を倍サイクル命
令にするために、常に余分のサイクルが付加される。
あとで説明するように、その第1サイクルにおいては、
LSRl4又は拡張レジスタ36から得られる主記憶装
置アドレス・ポインタの増分、減分その他のアドレス変
更が行なわれる。(たとえ連続式ポインタが用いられて
いなくても、アドレス指定のための自動増減分システム
は、連続式ポインタと同程度の機能を有するので、これ
により連続式操作が可能になる。)主記憶装置12の読
出し又は書込みは、主記憶装置アドレス・ポインタが更
新されて、新しい有効アドレスが得られた後に、第2サ
イクルで実行される。このアドレスは、第2サイクル(
主記憶装置メモリ●サイクル)の間、出力バッファ●レ
ジスタ26に保持されており、8クロックで主記憶装置
12をアドレス指定する。主記憶装置12は、次のよう
にして、バイブライン方式て動作する。
主記憶装置12のフエツチ(取出し)操作の間に、デー
タが主記憶装置12から入力母線10へ送られ、そして
CPU9の1つの内部レジスタヘロードされる。このデ
ータは、フエツチ操作の終り(クロック0)において、
次の命令サイクルが開始されようとしているときに、A
LU22を通つて合計レジスタ24の方へゲートされ、
次いで出力バッファ・レジスタ26へ転送される。出力
バッファ・レジスタ26にデータがセットされると、現
主記憶装置アドレスが破壊される。ROSl6 ROSl6(実行可能な制御記憶装置と呼はれることも
ある)は、マイクロコンピュータの制御プログラムを構
成する実行可能な命令を記憶している。
これらの命令は、入力母線10へ読出され.た後、プロ
グラム・レジスタ30に一時記憶され、続いて命令解読
器62で解読される。命令解読器62は、タイミング回
路と協働して、種々の命令を実行するために、ゲート、
レジスタ及び操作回路を制御する。ROSl6もバイブ
ライン方式で動作する。
通常は各マイクロ命令サイクルの開始時にあたるクロッ
ク0において、入力母線10からプログラムレジスタ3
0へ命令がセットされる。これと同時に、出力バッファ
●レジスタ26にデータがセツートされる。かくして、
出力母線20上のアドレスによつてアドレス指定された
ROSl6から入力母線10へ供給されたデータの受取
りと、出力母線20上のアドレスの破壊とが同時に行な
われる。駆動回路及び論理回路を含む回路網中の固有の
遅延のため、これらの操作が同時に遂行されるようなバ
イブライン処理が行なわれることになる。L!5R14 LSR14は、アドレス指定及び変更が可能な複数のレ
ジスタ・ロケーションを含んでいる。
データは、線21と介してアドレス指定されたときに、
出力母線20からLSRl4へ書込まれたり、J入力母
線10へ読出されたりする。入力母線10へ読出された
データは、主記憶装置12又はCPU9へ送られる。L
SRl4のロケーション0は、あとて説明する条件のも
とで、出力バッファ・レジスタ26のデータ保管するた
めにとつて・おかれる。711d.U22 ALU22は、データ処理、マイクロ命令アドレスの増
分、変位ブランチ、サブルーチン連結、主記憶装置のア
ドレス指定、アドレス変更、デー”夕のフエツチ又は記
憶、割込み処理、及びサイクル・スチール操作を実行す
るために、時分割方式で共用される。
ALU22でオーバーフローが起こつたときには、線6
5へオーバーフロー信号が出力される。線67には、桁
上げ又は借りが供給される。ALU22の時分割使用は
、アドレス・レジスタ32及びALUデータ・フローを
統合すると共に、LSRl4を用いることによつて可能
になる。
アドレス・レジスタ32(非増分型の簡単な極性保持レ
ジスタ)は、ROS命令アドレスを増分又は変更するた
めに、半サイクルおきにAJ,U22を時分割する。正
方向変位又は負方向変位のブランチ及び連結は、ALU
22へ至る単一データ・バスにより簡単にされる。AL
U22からの出力は出力母線20の方へ送られるので、
マイクロ・アドレスは、割込み復帰ポインタとしてLS
Rl4に記憶される場合がある。同時に、■蛋14から
入力母線10へ読出されたデータは、AL,U22を通
つてアドレス・レジスタ32へゲートされるので、新し
い割込みルーチン・ポインタのロード又は前に割込まれ
たルーチン・ポインタの復帰が可能であり、従つて、基
本ALUデータ・フローの中に、拡張可能な優先割込み
構造を含ませることができる。LSRl4の1つのロケ
ーション(口ケーシヨン0)は、出力バッファ・レジス
タ26の内容の保管及び再生のために用いられる。CP
U9は、アクセス及び更新を同時に行なうために、出力
バッファ・レジスタ26がLSRl4の選択されたレジ
スタ●ロケーションからの又は拡張レジスタ36の如き
オペランド・レジスタからの主記憶装置アドレスを保持
している間に、主記憶装置12からデータをフエツチし
て、入力母線10及びALU22を介して内部オペラン
ド・レジスタにこれを記憶する。前のマイクロ命令の実
行から得られた主記憶装置12に記憶されるべきマイク
ロプロセッサ・データは、まず出力バッファ・レジスタ
26を介して、LSRl4の選択されたレジスタ●ロケ
ーションへ送られる。LSRl4に記憶されたデータは
、主記憶装置書込みマイクロ命令により、入力母線10
の方へゲートされ、次いで主記憶装置12に書込まれる
。加うるに、LSRl4の幾つかのロケーションは、直
接1/O装置サイクル・スチール操作を行なうための間
接主記憶装置アドレス・レジスタとしても働く。
この場合、各優先レベルに対して1つのレジスタ・ロケ
ーションが割当てられる。■/0装置は、自身のデータ
長カウンタを有している。主記憶装置12をアドレス指
定して、入力母線10上のI/Oデータを主記憶装置1
2に書込むために、又は主記憶装置12からデータを読
出して、これを入力母線10、ALU22及び出力母線
20を介してI/0装置の方へ転送するために、辰重1
4中の主記憶装置アドレス●レジスタの内容は、ALU
22で自動的に増分されて、出力母線20の方へ送られ
る。I/0装置は、出力母線20を介してCPU9から
のデータを受取り、また入力母線10を介してCPU9
へデータを送る。被共有ALU22は、エミユレートさ
れた命令を解読するのに用いられる。
エミユレートされている命令の0Pコードは、ROSl
6内において、実行中の現命令のすぐ下にあるテーブル
を指示する変位ポインタを得るために、ALU22によ
つて、アドレス・レジスタ32にある現命令アドレスに
加えられる。このようにして、エミユレートされた命令
を実行するために、ROSl6の命令に対し256ウェ
イのブランチが得られる。命令アドレス・レジスタ32
を共用することにより、基本命令実行のためにある同じ
データ・バスを介して、割込み切替えが行なわれる。命
令アドレス●レジスタ32にある命令アドレスは、AL
,U22、合計レジスタ24、内部母線25、出力バッ
ファ・レジスタ26及び出力母線20を介して、LSR
l4に記憶される。かくして、割込みが起こつたときに
は、現プログラム優先レベルにおいて実行されていたは
ずの次の命令を示すポインタが?Rl4に保管される。
次に、優先順位符号器54で作られてLCOレジスタ4
0においてアドレスを発生させる優先順位コードを用い
ることにより、実行されるべき最高のレベルが決定され
る。LCOレジスタ40は、この割込みレベルに対する
ROSl6中のサブルーチンを示すポインタを含んでい
るLSRl4中の特定のレジスタ・ロケーションをアド
レス指定する。LSRl4から読出されたポインタは、
実行されるべき割込みレベルのためのサブルーチンをR
OSl6から読出すためにアドレス・レジスタ32及び
出力バッファ・レジスタ26に記憶される前に、入力母
線10を介してCPUチップ9へ送られ、そしてALU
22を通つて合計レジスタ24にセットされる。割込み
処理が終ると、現割込みサブルーチン・ポインタはLS
Rl4に記憶され、そして割込まれたプログラムのため
のアドレス・ポインタがそこから取出される。プログラ
ム・レジスタ30 プログラム●レジスタ30は、現命令のためのバッファ
であつて、CPUチップ9で実行されている命令の0P
コードを保持する。
プログラム・レジスタ30に記憶されている命令のカウ
ント・フィールド又はアドレス●フィールドは、減分レ
ジスタ38及びLCOレジスタ40へ直接ゲートされる
場合がある。合計レジスタ24 合計レジスタ24は、AL.U22の出力を受取つて、
これを母線25へロードする。
この動作は、各命令実行サイクルの間に少なくとも2回
行なわれる。1回は、実行されるべき次の命令のアドレ
スを受取つて母線25へロードするものであり、もう1
回は、命令で指定された演算の結果をALU22から受
取つて母線25へロードするものである。
ALU22からのデータが合計レジスタ24に一時的に
保持された後、出力バッファ・レジスタ26へ送られて
そこに一時記憶されている間、或る操作を入力母線10
上で実行すると同時に、別の操作を出力母線20上で実
行するということが可能である。
ループにおけるこのような2段バッファリングは、オー
バーラップ操作及びバイブライン処理を可能にする。命
令アドレス・レジスタ32 命令アドレス・レジスタ32の内容は、次に実行される
べき命令をROSl6から取出すために、各命令実行の
間にALU22によつて変更される。
累算レジスタ34及び拡張レジスタ36 累算レジスタ34及び拡張レジスタ36は、各々16ビ
ットの作業用レジスタであつて、算術シフト、左方向若
しくは右方向への論理シフト、左シフト計数、又は左方
向若しくは右方向への回転の如きシフト動作を用いる命
令のために、32ビットの容量を与える。
これらのレジスタは、計数レジスタ50及び出力バッフ
ァ・レジスタ26と同じく内部オペランド●レジスタで
あつて、マイクロプロセッサ内部で算術演算及び論理演
算を実行するために、マイクロ命令によつて直接アドレ
ス指定され得る。
これらのレジスタの内容は、外部のLSRl4又は他の
内部レジスタの1つに記憶されている内容(例えば演算
結果)によつて変更することができる。出力バッファ●
レジスタ26出力バッファ・レジスタ26は二重機能を
有している。
ALU22のためのオペランド・レジスタとして働くと
きには、出力バッファ・レジスタ26は、マイクロプロ
グラムの指示通りにデータを保持する。また、アドレス
・ポインタの転送を強制する割込み又はDMAサイクル
・スチール・アクセスにおいては、アドレス及びデータ
の両方一が出力バッファ・レジスタ26を介して転送さ
れねばならない。マイクロプログラムによつて出力バッ
ファ●レジスタ26に置かれたデータがなくならないよ
うにするため、割込み制御又はサイクル●スチール操作
においてマイクロプロセッサが−命令、アドレス及びデ
ータを変更するときには、LSRl4のレジスタ・ロケ
ーション0が、出力バッファ●レジスタ26に対応する
イメージ・レジスタとして用いられる。LSRl4のレ
ジスタロケーション0に記憶された出力バッファ●レジ
スタ26の内容(オペラン(へ)は、割込み処理又はサ
イクル・スチール操作の完了後に、出力バッファ・レジ
スタ26へ戻すことができる。従つて、出力バッファ・
レジスタ26のための余分のバック●アップ・レジスタ
をCPUチップ9に設けることは不要である。電力駆動
装置18 母線28上の情報は、チップ9から電力駆動装置18を
介して出力母線20の方へ送られる。
LSIチップにおいては、各駆動装置は1つの負荷を駆
動できるだけである。従つて、出力母線20は、多数の
ユニット(負荷)に接続されている共通母線であるから
、再付勢(RepOwer)が必要になる。(この再付
勢を行なうに際し、チャネル・ライン数の拡張は、8ク
ロックから成る各マイクロ命令サイクルの異なつたクロ
ック期間中に現存のラインをアップ●レベル又はダウン
●レベルへ符号化することにより達成される。減分レジ
スタ38 減分レジスタ38は、すべてのシフト命令、乗算命令、
除算命令、減分命令、テスト命令及びブランチ命令にお
いて計数動作を行なうのに用いられる。
減分レジスタ38は、32ビット位置までの直接シフト
が要求されたときに、プログラム・レジスタ30から入
力を受取り、そして減分された値をプログラム●レジス
タ30へ戻す。計数レジスタ50の内容がシフト計数値
になる間接シフトにおいては、直接シフトの場合と同じ
く1ずつの減分が行なわれ、減分レジスタ38は、減分
された値が計数レジスタ50へ戻される前に、これを保
持する。本実施例では、最大シフトは32であるから、
5ビットの減分レジスタ38で十分である。
しかしながら、フィールド長の計数に関しては、計数レ
ジスタ50も用いられる。この動作を行なうためには、
8ビットを用いた減分動作が必要である。これは、5ビ
ットの減分レジスタ38を2回循環させ、最初に計数レ
ジスタ50から4ビットのキャラクタを取出し、これを
減分し、そして5桁目のビット位置に桁上げを記憶する
ことによつて行なわれる。記憶された桁上げ(桁上げが
あつた場合)は、8ビットの減分された値を形成するた
めに、計数レジスタ50からの上位4ビットのキャラク
タと共に減分されて、計数レジスタ50へ戻される。(
1)Oレジスタ40 LC0レジスタ40は、どのデータが転送されようとし
ているかに応じて、I/0装置又はLSRl4のレジス
タ●ロケーションをアドレス指定する。
現条件コード・レジスタ48 現条件コード・レジスタ48の上位4ビットは、4つの
条件コードを保持し、下位4ビットは、4つのプログラ
ム可能な標識(フラグ)を保持する。
これらのビットは、計数レジスタ50の非接続上位バイ
トを構成する。4つの条件コードは、あとで行なわれる
フィールド連結操作のために、算術演算の度にセットさ
れる。
4つの条件は、2進桁上げ、2の補数のオーバーフロー
、2の補数のマイナス及び累積的な非零標識である。
最後の非零標識は、任意のフィールド長において一旦セ
ットされると、マイクロ命令によつて変更されるまでセ
ットされたままに保たれる。計数レジスタ50 計数レジスタ50は、第2ALUオペランド・レジスタ
であるが、シフト計数器として用いられる場合もある。
最初に計数レジスタ50に記憶されたシフト計数値は、
累算レジスタ34又は拡張レジスタ36のシフトの度に
減分される。倍精度シフト動作を行なうためにこれらの
レジスタ34及び36が相互接続されている場合にも、
同様な減分が行なわれる。左シフト計数命令においては
、上位ビットが見つかると直ちにシフト動作は中止され
、このとき計数レジスタ50に保持されている値は、ど
れ位のシフトが行なわれたかを示す。従つて、この値は
、多くの操作において、ROSl6又はLSRl4への
間接アドレス・ポインタになる。かくして、計数レジス
タ50は、内部母線25からロードすることがき、また
I/O装置又はLSRl4をアドレス指定するために、
その内容をALU22で変更することができる。変更さ
れた結果はLCOレジスタ40へロードされ、これによ
り母線21を介して上述のアドレス指定が行なわれる。
アドレス計算における指標付け及び有効アドレスの計算
のために、計数レジスタ50の内容は、AL.U22に
よつてデータと組合わされる正又は負の変位として用い
られる。組合わされた結果は、LSRl4又はCPUチ
ップ9上の任意の内部レジスタに記憶される。保管条件
コード●レジスタ42 現条件コード・レジスタ48の出力は、保管条件コード
・レジスタ42へ選択的にバッファされる。
ALU操作の結果としてセットされる基本条件コードは
、オーバーフロー、桁上げ一借り、累積的(Cumul
ative)非零、及びマイナスである。現条件コード
は、マイクロ命令による一番新しい演算結果に対してセ
ットされたものである。全左シフトにおいては、上位ビ
ットは、現桁上げ標識の方へシフトされる。左シフト計
数においては、上位ビットが現桁上げ標識をセットする
場合がある。ロード、記憶、論理、増分、減分、飛越し
及びブランチは条件コードを変更しない。レジスタ42
及び48にある条件コードは、別々にクリアすることが
でき、また飛越し命令によつて個々にテストすることが
できる。これらの条件コードの他に4つのプログラム制
御標識ビットがあり、これらは現条件コードと共に現条
件コード・レジスタ48に記憶される。マイクロ命令が
エミユレートされているときには、マイクロレベルでエ
ミユレートされている言語のマイクロレベル条件コード
を保管するため、正しい現マイクロレベル・コードが保
管条件コード・レジスタ42へ転送される。割込みマス
ク・レジスタ44 割込みマスク・レジスタ44は、許された割込jみレベ
ルの現マスク状況を含む。
このレジスタ44の内容も、ALU22による変更、L
SRl4への記憶又はLSRl4からの復帰が可能であ
る。工ラー●レジスタ46割込みマスク・レジスタ44
の下位ビットは、7エラーの制御及び自動記録を行なう
1バイトのエラー・レジスタ46を構成する。
自動記録され得る機械チェック・エラーとしては、例え
ば、ROSl6から取出された命令におけるパリテイ・
エラー、LSRl4からのデータ・エラー、入9力母線
10上でのパリテイ●チェックによつて検出される主記
憶装置12からのデータのパリテイ・エラー、I/0装
置の1つから受取られたデータにおけるパリテイ・エラ
ー、I/0装置がマイクロプロセッサ9に接続されない
か又はI/0装置がマイクロプロセッサ9を次のマイク
ロ命令の方へ進ませないようなチャネル停止条件、及び
存在しないI/0装置に対してI/0命令が出され、従
つてアドレスが検出不能であるような場合に生じるタイ
ム●アウト・エラーがある。これらのエラーは何れもエ
ラー●レジスタ46にセットすることができ、またその
変更、保管、テスト又はLSRl4への記憶も可能であ
る。ハードウェアによつて自動的にセットされるこれら
のエラーは、操作を再試行するか又は現操作を中止して
操作卓へ信号を供給するサブルーチンの方へ進むために
、マイクロプロセッサ9において最高レベル(レベル7
)の割込みを強制する。4相発生器60並びにクロック
装置64及び664相発生器60は、単相発振器(図示
せず)から線59を介して入力を受取り、2つのクロッ
ク装置即ち基本クロック装置66及び補助のシフト/タ
イム●アウト・クロック装置64を駆動する。
基本クロック装置66は2クロック位置毎に停止され得
る2相クロック装置であつて、4つのオーバーラップし
たラッチ状態から与えられる8つのクロック解読位置を
有しており、各マイクロ命令サイクル毎に8つのクロッ
クを発生する。また、基本クロック装置66は、実行さ
れているマイクロ命令が倍サイクルを必要とするとき、
即ち主記憶装置12がアクセスされるときに用いられる
上位ラッチ位置(フリップフロップ)66aを有してい
る。主記憶装置12がアクセスされるとき、基本クロッ
ク装置66は、倍サイクルの後半において前半と同じ8
つのクロックを発生する.が、このときは上位フリップ
フロップ66aの働きにより、これら8つのクロックは
クロック8乃至15として出力される。基本クロック装
置66からのクロックの発生は、クロック・デコード6
6bにより制御される。補助クロック装置64も、上位
フリップフロップ64a及び補助クロック●デコード6
4bを有しているが、デコード64bは、4つの分離し
たタイム・スロットを与える。また、上位フリップフロ
ップ64aは、補助クロック装置64の最大タイム●ア
ウトである2回のランが実行されるとき、即ちクロック
発生サイクルが2回繰返されるとき(1命令実行サイク
ルに等しい)に使用される。補助クロック装置64は、
シフト操作、乗算操作又は除算操作が行なわれるときに
は常に使用される。基本クロック装置66は、これらの
操作が実行される場合は、7番目のクロック位置(クロ
ック6)で停止される。これは、シフト、乗算又は除算
の拡張操作の途中におけるサイクル・スチール操作の実
行を可能にする。補助クロック装置64は、I/0装置
が応答していない場合のタイム●アウトのため、又は入
力母線10に接続されているI/O装置の1つがデータ
の交換を行なおうとしている場合の接続手順の実行のた
めにも使用される。もしタイム・アウトが、割振られた
時間を超えていると、補助クロック装置64はクロック
の発生を中止し、そして最高レベルの割込み即ち機械チ
ェック割込みを開始するためにエラー・レジスタ46に
7標識をセットする。統合サイクル・スチール/割込み
制御チャネル第1A図乃至第1C図と共に第5図を参照
して説明すると、サイクル・スチール及び割込みの処理
は、8つのサイクル●スチール●レベル又は7・つの割
込みレベルを与える共通ボール母線53により制御され
る。
本実施例では、共通ボール母線53は7ビット幅であつ
て、実行可能な現プログラム●レベルよりも上位の7つ
の割込みレベルに対するリクエストを供給し得るように
構成されている。従つて、システム全体としては、8つ
の割込みレベルが存在することになる。I/O装置と優
先順位付けされた7本の割込みリクエスト線との接続は
自由であつて、どのI/0装置をどの割込みリクエスト
線に接続してもよい。第5図のサイクル・スチール・ボ
ール専用ラッチ75がセットされて、サイクル・スチー
ル操作が実行される場合を除き、割込みのためのポーリ
ングは連続的に行なわれる。I/0装置は、CPU9の
サービスを要求するとき、共通ボール母線53の割当て
られた優先順位ビット線530乃至536へそのリクエ
ストを出す。優先順位符号器54には多数のリクエスト
が送られ得るが、ここではそのうちの最高レベルのリク
エストが、8種類の優先順位のうちの1つを指定する3
ビットのコードへ符号化されて、線541,542及び
544の方へ送られる。割込みの優先順位は、割込みマ
スク・レジスタ44によつても制御される。もし割込み
マスク・レジスタ44が割込みを許すようにセットされ
ていると、割込みリクエストは、割込みゲート52のア
ンド回路96を通つて優先順位符号器54の方へ送られ
、そこでこのリクエストされた割込みの優先順位が符号
化される。符号化された割込みレベルは、3ビットの現
割込みレベル・レジスタ56に記憶されている現割込み
レベルと比較装置58で比較される。レジスタ56の内
容は、新しいレベルが現レベルよりも上位であるか否か
を調べるため、優先順位符号器54から符号化された新
しいレベルが供給される度にこれと比較される。もし新
レベルが現レベルよりも上位であれば、現プログラム●
チェーンにおける次の命令は実行されず、命令アドレス
・レジスタ32にある現アドレス・ポインタは、LSR
l4中の現レベルのためのレジスタ●ロケーションへ転
送される。続いて、新レベル●ポインタがLSRl4の
対応するレジスタ・ロケーションから取出されて、命令
アドレス・レジスタ32へ入れられる。割込みルーチン
のためのLSRアドレス(8つの可能な割込みポインタ
のうちの1つ)は、次のようにして得られる。まず、現
割込みレベル・レジスタ56からの下位3ビットが、線
561,562及び564並びにゲート81を通つて、
LCOレジスタ40の入力線831,832及び833
へ各々送られる。割込まれたポインタをLSRl4へ記
憶させるためのK℃アドレスの残りのビットは、現割込
みレベル設定線73からLCOレジスタ40の上位入力
線834及び835へロードされる。?Rl4中の割込
みレジスタへの新しいポインタも同様にしてLCOレジ
スタ40へロードされる。この場合、上位入力線834
及び835は、現割込レベル設定線73からロードされ
、一方、下位入力線831乃至833は、符号化された
新割込みレベルが新割込みレベル・ロード線72上の信
号により、優先順位符号器54から現割込みレベル・レ
ジスタ56へ転送された後、このレジスタ56からロー
ドされる。この結果、田0アドレスは、選択されたレベ
ルの割込みを処理するためのサブルーチン(ROSl6
にある)へのポインタを含むLSRl4中のレジスタ●
ロケーションのアドレスへ変更される。LSRl4から
取出されたアドレス●ポインタは、ALU22及び合計
レジスタ24を通つて、出力母線20及び命令アドレス
・レジスタ32へ送られる。新割込みレベルのサブルー
チンの実行が終了すると、ブランチ・アウト命令が出さ
れる。この命令は、前に割込まれたプログラムのポイン
タを復帰させるものである。割込みを処理した上述のサ
ブルーチンは、この割込みをリセットするので、同じ割
込みに対するリクエストはないはずである。もし同じレ
ベル又はより上位のレベルでの別の割込みがリクエスト
されると、プログラムは元の割込まれた位置には戻らず
、この新しい割込みリクエストを処理する。これは、8
つの割込みレベルまでのネスティングを可能にする。ま
た、各割込みレベルについて、多数のサブレベルが存在
していてもよい。所与の割込みレベルが一旦検出される
と、割込みレベル状況ワード(ILSW)命令がすべて
の例えば1帽のI/O装置へ出される。このうち、何れ
かの割込みレベルでのサービスをリクエストしている1
つのI/0装置は自らこれを識別しなければならない。
(このようにして、8つの割込みレベルの各々について
、16のサブレベルを得ることができ、割込みサブレベ
ルの総数は128になる。)マイクロプロセッサ中のレ
ジスタの1つに受取られる割込みレベル状況ワードは、
16個のI/0装置のうちの何れがこのレベルでのサー
ビスをリクエストしているかを決定するのに用いること
ができる。これは、1つの左シフト計数命令によつて行
なわれる。最上位の第1ビットは、左シフト計数命令の
実行を停止し、このときの計数レジスタ50の計数値は
、サービスをリクエストしているI/0装置のためのサ
ブルーチンの位置を表示する。共通ボール母線53は、
サイクル・スチール操作にも使用されるが、この場合は
まずすべての割込みリクエストがクリアされねばならな
い。
サイクル・スチールをリクエストしているI/0装置は
、共通サイクル・スチール・リクエスト線68・を負論
理レベルにセットする。これによリサイクル●スチール
●ボール専用ラッチが75がセットされると、サイクル
・スチール・ボール・リクエスト線77は直ちにアップ
●レベルにされ、I/0装置に対し、サイクル・スチー
ル操作が完了すノるまでそれらの割込みリクエストを共
通ボール母線53から除くように要求する。共通割込リ
クエスト線70及び共通サイクル・スチール・リクエス
ト線68がすべてのI/O装置によつて減勢されると、
サイクル・スチール応答ラッチ76が次のクロック0に
おいてセットされる。これは、サイクル・スチールをリ
クエストしているI/O装置のためのサイクル・スチー
ル優先順位が共通母線53上に存在することを表わす。
このサイクル・スチール優先順位は、割込みマスク・ゲ
ート52を通ることなく、優先順位符号器54へ直接送
られる。優先順位符号器54からは、3ビットの符号化
されたLCO優先順位アドレスが発生され、アンド回路
89からの出力によつて開かれたアンド回路82並びに
LCOレジスタ40の下位入力線831乃至833を通
つて、K℃レジスタ40へ送られる。これと同時に、I
/0装置の制御のもとに主記憶装置12からのデータを
読出すか又は主記憶装置12へデータを記憶させるため
に(半ワード●モードにおける2バイトの代りに、上位
バイト又は下位バイトがセットされるだけでもよい)、
リクエストされたサイクル・スチールのレベルに関連す
8LSR14の中のポインタ(主記憶装置アドレスとし
て用いられる)をアドレス指定する一定の上位ビットも
、LCOレジスタ40へロードされる。このモードにお
いては、割込みレベルは、それがプログラム・レベルで
あるか又はより上位のレベルであるかには関係なく、サ
イクル・スチール命令の発生によつて遅延されるだけで
あるから、現割込みレベル・レジスタ56の内容は変更
されない。上述のように、記憶装置のアクセスは、8つ
のサイクル●スチール●レベルのうちのどのレベルが認
められているかを示す下位3ビットと、間接メモリ・ア
ドレスを保持するLSRl4中の半ワーード・レジスタ
に対する変位を与える上位ビットとを含む■℃レジスタ
からのポインタにより行なわれる。
間接メモリ・アドレスは、I−SRl4から入力母線1
0へ読出され、そして,Al.U22増分された後、出
力バッファ・レジスタ26へ送られ.る。出力母線20
上の増分されたアドレスは、主記憶装置12のアクセス
の間に、LSRl4の対応するサイクル●スチール●レ
ジスタへ書戻すことができる。また、サイクル・スチー
ル・アドレスをそのままに保つため、サイクル・スチー
ル・リクエストに対する肯定応答を受取つたI/0装置
は、この書戻しを禁止することもできる。もし1/0装
置が主記憶装置12の読出し選択を許可すると共に、マ
イクロプロセッサ9から制御線19へ供給される書込み
パルスを禁止すると、主記憶装置12のアクセス後に、
データが主記憶装置12から入力母線10へ読出される
。I/0装置は、主記憶装置12へ書込みのために、自
身のデータを入力母線10へ供給することができる。こ
のように、I/0装置は、ALU22による増分又は非
増分操作及び読出しモード又は書込みモードの制御を自
身で完全に行なう。書込みモードにおいては、書込み操
作の完了後も、I/O装置は、次のクロック1の間出力
母線20上にある自身のデータを検知することができる
。読出しモードにおいては、入力母線10へ読出された
データは、ALU22及び合計レジスタ24を介して出
力バッファ・レジスタ26へ送られ、然る後出力母線2
0の方へ出力される。出力母線20にはすべてのI/O
装置が接続されているが、読出しモードにおいて出力母
線20上のデータを受取るのは、6本のLCOアドレス
線21へ供給されたサイクル●スチール●レベル●コー
ドを認識した1/0装置だけである。この後、マイクロ
プロセッサは正規の命令実行シーケンスに戻るか、又は
このDMA(即ちサイクル●スチール)サイクルのため
に一時中止されていた割込みルーチンの処理に戻る。タ
イミング 次に、第2A図乃至第4C図を参照しながら、マイクロ
命令を実行するためのタイミングについて説明する。
すべてのマイクロ命令は同じような実行タイミング特性
を有しているので、まず一般的な説明を行ない、続いて
各命令タイプの詳細を説明することにする。第2A図乃
至第4C図で用いられている記号の意味は次の通りであ
る。
A=累算レジスタ34 B=拡張レジスタ36 BI=入力母線10 C=現条件コード・レジスタ48 E=エラーレジスタ46 1=割込みマスク・レジスタ44 1/0=I/0装置 L=?Rl4 M=出力バッファ●レジスタ26 N=計数(シフト計数)レジスタ50 P=プログラム・レジスタ30 PCC=保管条件コード・レジスタ42 R=ROSl6 SlO=主記憶装置12 T=合計レジスタ24 U=命令アドレス●レジスタ32 クロック・サイクルは、8つの異なつたクロック0乃至
7に分けられる。
クロック8乃至15は、クロック0乃至7の繰返しであ
つて、これらが発生されるのは、主記憶装置12の動作
時(DMAを含む)だけである。8クロックの基本命令
サイクルは、ALU22の利用に関連して2つの部分に
分けられる。
クロック7からクロック2までの間は、AL.U22は
、専ら命令アドレス・レジスタ32の増分又は変更のた
めに用いられる。クロック3乃至6においては、マイク
ロ命令による処理が行なわれる。このように、1命令実
行サイクルは、ALU22による命令実行のための半サ
イクル及び命令ポインタの更新のための半サイクルに分
けられ、そしてALU22は、これらの半サイクルの繰
返しにより連続的に使用される。ROSl6に対するア
ドレスが出力母線20に現われる基本ウインドはクロッ
ク3に始まり、このとき、計算された新アドレス・ポイ
ンタがAL,U22から合計レジスタ24へロードされ
、そして出力バッファ・レジスタ26の方へ転送される
。このアドレスは、次のクロック0に達するまで変更さ
れない。クロック0においては、出力バッファ・レジス
タ26は、出力母線20を介してLSRl4又は任意の
I/0装置へ送るためのデータを含むように変更される
。クロック0は、各マイクロ命令サイクルの開始時点に
あたり、このときROSl6からプログラム・レジスタ
30へマイクロ命令がロードされる。
このように、プログラム・レジスタ30へマイクロ命令
をバッファすると、次のマイクロ命令をアクセスするた
めに、上述のように、クロック3においてROSアドレ
スが変更されている間に、マイクロ命令を実行すること
ができる。合計レジスタ24は、クロック2において命
令アドレスをロードされ、またクロック6において、命
令の実行に伴つて,AL,U22で処理されたデータを
ロードされる。このデータをLSRl4に書込むことが
マイクロ命令によつて指示されると、この書込みは、デ
ータが計算された後のクロック1において行なわれる。
この場合、データは、出力バッファ・レジスタ26から
駆動装置18を介して、6本のK℃線によつて選択され
たLSRl4の特定のレジスタ●ロケーションへ直接書
込まれる。同じようにして、データをI/0装置の方へ
転送することもできる。この場合は、クロックOにおい
てデータが出力バッファ・レジスタ26へロードされ、
そして出力母線20上のデータが有効であることを示す
信号が、クロック1において線19へ供給される。この
データは、クロック3の開始時に変更され、このとき、
ROSl6のアドレスが出力バッファ・レジスタ26に
現われる。記憶又は変更のために入力母線10を通つて
マイクロプロセッサ9に入るデータは、クロック3,4
,5及び6の間に、Al,U22に供給されねばならず
且つこのとき有効でなければならない。ALU22は、
これらのクロックの間に、実行中の命令によつて指定さ
れた処理を行なう。同じ理由で、LSRl4からのデー
タは、マイクロプロセッサ9による処理のため、クロッ
ク2のときに入力母線10上におかれる。このデータは
、クロック3において(これは信号遅延を許容する)A
LU22での処理に対し使用可能になる。上述のように
LSRl4からのデータは、クロック2のときに入力母
線10上におかれるが、クロック7からクロック2まで
の間は、ALU22は命令アドレス・レジスタ32の更
新に使用されるので、このデータはクロック3になるま
で.ALUノ22へゲートされない。
AL,U22は、クロック7の開始時にアドレス増分の
処理に移り、かくしてその基本マイクロ命令処理を終え
る。第2A図及び第2B図を参照するに、主記憶装置1
2を使用するマイクロ命令、特に主記憶装置712から
のデータを取出して、これをマイクロプーロセツサ9の
1つのレジスタヘロードするマイクロ命令(FS)に対
しては、第2サイクル(クロック8乃至15)は、たと
え現命令の実行がクロック15から次のクロック0にわ
たつて続けられフるとしても、次のマイクロ命令がクロ
ック8の間にROSl6から取出されるという点で僅か
に異なつている。主記憶装置12から取出されたデータ
は、最終的にクロック8においてマイクロプロセッサ9
の指定されたレジスタにセットされるか又はI/0装置
の1つに送られる。上述の場合には、主記憶装置12を
アクセスする各命令に続く新しいマイクロ命令は、先行
命令サイクロのクロック8において既にトラップされて
いるので、続くクロック0のときにプログラム●レジス
タ30へゲートされることはない。また、命令アドレス
●レジスタ32の更新は、ALU22を介して行なわれ
る変更を伴なわない直接転送に過ぎないから(先行の主
記憶装置命令のクロック7乃至10の間に既に変更され
ている)、この更新のためのウインドは短縮されて、ク
ロック15よりも2クロックあとのクロック1で開始し
、次のクロックまで続くだけである。主記憶装置書込み
命令は、命令の第2サイクルのクロック13乃至15の
間に、データを主記憶装置12に書込む。
第3A図乃至第3C図を参照するに、l罐演算の場合に
は、AL.U22は、最初の4クロックの間に、等価2
進演算を実行して、各バックw進ディジットについて中
間桁上げを記憶させる。
続いて、実際の1DI1結果を得るための゜゜6゛補正
を行なうため、補助クロック装置64による制御のもと
に別の4クロックの間.AL,U22の処理が繰返され
る。第4A図乃至第4C図を参照するに、クロック7に
おいてブランチ・アドレスがロードされるようなブラン
チ操作(例えば、条件付きブランチ、エミユレートされ
ている目的言語からの0Pコードを解読する際の多重テ
ーブル・ブランチ、又は元のアドレスをLSRl4から
命令アドレス●レジ.スタ32へ戻すことによるブラン
チ連係への復帰)が行なわれる場合には、先行命令の実
行時に予め計算されたルック・アベツド●アドレスがブ
ランチによつて変更されているので、RαI6をアクセ
スするために、補助クロック装置64に.よる別の4ク
ロック・サイクルが付加される。
シフト操作においては、補助クロック装置64は、累算
レジスタ34又は拡張レジスタ36における1ビットの
シフト毎に2クロックを必要とし、またこれらの両レジ
スタを1つの倍精度レジースタとして用いる場合には、
1ビットのシフト毎に4クロック期間(基本マイクロ命
令実行時間の半分)を必要とする。累算レジスタ34及
び拡張レジスタ36は、ALU22を介して選択的に循
環させることにより、1つの倍精度レジスタとして論理
的に接続される。飛越し操作においては、ALU22の
基本処理時間(クロック3乃至6)の間に、等しいか大
きいかのテスト又はマスク・テストが行なわれる。
テストの結果は、クロック7の開始時まで未知であり、
そしてクロック7において飛越しの判断がなされる。も
し飛越しが行なわれないのであれば、既にアクセスされ
ている次の命令の処理が遅ノれることなく続けられる。
もし飛越し条件が満足されて、1つの命令がスキップさ
れるものであれば、基本クロック装置66は別のダミー
・マイクロ命令サイクルを発生させ、この間に、次のマ
イクロ命令を取出すためのアドレス増分が、飛越さ・れ
たマイクロ命令を実行することなく、行なわれる。無条
件ブランチ命令は、条件をテストする必要がなく、従つ
て補助クロックによる遅延がないから、極めて速く実行
され得る。
更に、12ビットの″ブランチ●アドレスは、クロック
2において、,AL,U22を通過して合計レジスタ2
4へ直接ロードされる。このアドレスは、クロック3に
おいて、合計レジスタ24から命令アドレス・レジスタ
32及び出力バッファ・レジスタ26へ転送され、従つ
て、通常の命令のルック●アヘツド●アクセスと同期し
ている。命令セット 基本機械命令は、エミュレーションのために最適に設計
され、そしてROSl6に記憶される。
以下の説明では、エミユレートされた目的機械命令とマ
イクロプロセッサ命令とを区別しなければならない場合
を除き“マイクロ命令゛の代りに単に゜“命令゛という
術語を使うことがある。すべての命令に共通しているの
は、最有意ビット位置(ビット0)にあるパリテイ・ビ
ット及び3ビットの0Pコード(ビット1乃至3)であ
る。残りのビットは幾つかのフィールドに分けられ、各
フィールドの長さ及びその内容は、命令のタイプによつ
て異なる。0Pコードは8種類だけであるから、命令タ
イプの幾つかは、付加的な修飾ビットを解読することに
よつて区別される。
大部分の命令は高度に符号化されていて、様々の操作を
指定又は暗示する。これらの操作の多くは順次に実行さ
れる。このような順次操作の実行は、第2A図乃至第4
C図に示されているような厳密に設定されたタイミング
・パターンにより制御される。次に、第2A図乃至第4
C図を参照しながら、11種類の基本命令について説明
する。
各命令は、1ビットのパリテイ及び3ビットの0Pコー
ドを含む16ビットによつて規定され得る。
ビット1乃至3によつて規定される0Pコードと命令タ
イプとの対応表を次に挙げておく。制御嘉零”:CO)
制御命令のためのタイミングは第3C図に示されている
制御命令は、例えば、データ転送、間接実行、割込みマ
スクの設定、ページングの設定、テーブル・ブランチ操
作、任意モード選択、保管条件コード及び現条件コード
に基く操作、プログラム標識、及びI/0転送のような
操作に対して出される。まず最初に、制御命令の様々な
使用について説明する。制御命令の多くは、割込み処理
に関係している。
このような命令の1つは、各マイクロ命令の終了後に割
込みを起こすことができ、一方では、別の命令が、割込
みウインドを与える。この割込みウインドにおいては、
保留中の任意の割込みの処理が許可され、そして割込み
切替えが行なわれる。このあとは、再び割込みウインド
に出会うまで、割込みは禁止される。他の制御命令は、
ROSI/Oページングに関係している。
ROSl6の4ビットのページは、命令アドレス・レジ
スタ32の一部を構成するページ●レジスタ32aによ
つて指定される内部ページである。ページ・レジスタ3
2aは、ROSl6の直接アドレス指定が可能な命令ロ
ケーションの訊の境界を横切る直接ブランチが要求され
たときには何時でも使用される。,AL.U22は、?
の境界を越えて、ROSl6の■Kの半ワードにわたつ
てアドレス増分を行なう。また、割込み切替えポインタ
は、12ビットではなく16ビット全部によるアドレス
指定を行なう。従つて、64Kの命令すべてをアドレス
指定することも可能である。4つの標識ビットを制御す
る制御命令もある。
これらの標識ビットは、現条件コード●レジスタ48の
下位の4ビットであつて、4つの条件コードを規定する
レジスタ48の残りのビットと共に、計数レジスタ50
の非接続上位バイトを構成する。標識ビットは、各々異
なつた標識を与えるようにプログラマがセットすること
ができ、そしてサブルーチンにおけるスイッチとして用
いることができる。これらの標識ビットは、割込み切替
え時に、条件コード及び計数レジスタ50の内容(下位
バイトにあたる)と共に、LSRl4に記憶させたり、
そこから復帰させたりすることができる。残りの制御命
令は、条件コードに関係している。
本実施例では、2レベルの条件コードが用いられ、各条
件コードは、2進桁上げ、2の補数のオーバーフロー、
2の補数の上位マイナス●ビット、及び累積的非零を表
わす4つのビットを有している。現条件コード●レジス
タ48の上位4ビットは、算術操作、論理左シフト、左
シフト計数、乗算及び除算の度に変更される。他の論理
命゛令の場合には、レジスタ自身は、零、非零、全部“
゜1゛又は4“1゛及び“゜0゛の混在についてテスト
される。保管条件コード・レジスタ42は、エミユレー
トされているマクロ言語の条件コードの等価コードをマ
イクロプログラム制御のもとに転送したり累算したりし
ている場合を除き、現条件コード・レジスタ48のもの
と同じ4ビットを記憶する。本発明の実施例では、例え
ば次のような制御操作が行なわれる。
J(イ)即値データのロード(KBUS)命令のデータ
●フィールドが、出力バッファ●レジスタ26の上位ビ
ット位置にロードされる。
出力バッファ・レジスタ26の下位ビット位置には、L
SRl4のレジスタOのデータ・ビット0乃至4がロー
ドされ、そして出力バッファ・レジスタ26の内容が、
LSRl4のレジスタ0に書込まれる。(ロ)LSRデ
ータをI/0装置へ転送(KLSR)この命令は、LS
Rl4のレジスタ0乃至15をアドレス指定するための
4ビット●フィールドを有し、アドレス指定されたロー
カル記憶レジスタからのデータは、出力バッファ・レジ
スタ26へ、そして出力母線20へ転送される。
このKLSR命令の6ビット●フィールドは、I/0装
置1乃至63をアドレス指定するためにK℃レジスタ4
0へロードされる装置アドレスを与える。(ハ)即値デ
ータを■/0装置へ転送(KL,CO)出力バッファ●
レジスタ26の一部に命令コードからの即値データがロ
ードされ、残りの部分には、LSRl4のレジスタ0の
選されたビットがロードされる。
命令コードの他のビット位置にあるデータは、装置アド
レスのためにLCOレジスタ40へロードされる。出力
バッファ・レジスタ26の内容は、LSRl4のレジス
タ0へロードされる。(ニ)割込みマスク設定(KIL
M) 解禁されるべき割込みのレベルに対応するビット位置に
゜゜1゛が設定されるようにして、割込みマスク・レジ
スタ44に割込みマスク●ビットが供給される。
この命令コードは、割込みマスク・ビットの保管又は設
定を指定する1ビットを有する。(ホ)ROSl6のペ
ージングの設定(KLAP及びKRAP)KLAPはペ
ージ0乃至15を指定するためのフィールドを有し、一
方、KRAPはページ16を指定する。
各ページは4096(4K)の半ワードから成つている
。(へ)テーブル・ブランチのための制御操作は、RO
Sl6における次の順次アドレスを得るために、命令ア
ドレス・レジスタ32の内容に加算(排他的オア)され
るべきレジスタ又はその一部を指定する。これには、次
のようなものがある。簡略記憶記号 指定されたレ
ジスタKIAL累算レジスタ34の下位バイト KIXL拡張レジスタ36の下位バイト KlBL出力バッファ●レジスタ26の下位
バイトKIEL入力母線10の下位バイト KIAH累算レジスタ34の下位置値数 KIXH拡張レジスタ36の下位托進数 KIBH出力バッファ・レジスタ26の下位
托進数KIEH入力母線10の下位置値数 KIAZ累算レジスタ34の下位ゾーン KIXZ拡張レジスタ36の下位ゾーン KIBZ出力バッファ・レジスタ26の下位
ゾーンKIEZ入力母線10の下位ゾーン KIAS累算レジスタ34の下位6ビットKIXS拡張
レジスタ36の下位6ビットKIBS出力バッファ・レ
ジスタ26の下位 6ビットKIES入力母線1
0の下位6ビット (ト)ブランチ・アウト(KILB) この制御操作は、命令アドレス・レジスタ32の内容を
LSRl4中の現割込みに対応するレジスタ・ロケーシ
ョンへ転送し、現割込みをリセットし、新割込みをサン
プルし、そして松遺14中のサンプルされた新割込みに
対応するレジスタ・ロケーションの内容を命令アドレス
●レジスタ32へ転送する。
(チ)KSIE KSIE制御命令は、割込みコード(或る割込みを解禁
又はサンプルし、以後の割込みを禁止する)、エラー・
モード、及び主記憶装置12のバイト・アドレスを指定
するための3つの2ビット・フィールド(11..EE
及びSS)を与える。
KSIE制御命令の割込みコード(11)●フィールド
、エラー●モード(EE)●フィールド及び主記憶装置
バイト●アドレス(SS)●フィールドの1以上におけ
るコード01は、下記の表に示すように、KSIE制御
命令の割込みコード、エラー・モード又は主記憶装置バ
イト・アドレス・モードに基く操作の代りとなる別の制
御操作を指定する。もし制御コードが、■1.EE又は
SSを示していると、KSIE制御命令は、割込みコー
ド、エラー・モード又は主記憶装置バイト・アドレス・
モードによつて指定される操作を各々規定する。(り)
KNTCKNTCによる制御操作は、上記表中のKT
PIの機能を遂行し、また、もし次の命令が演算命令で
あれば、これに続いてKCSEを実行する。
条件コード中の標識4は、結果に基いて“゜偶数゛にリ
セットされるか又は“゜奇数゛にセットされる。(ヌ)
KPCCKPCC制御命令は、保管条件コード・レジス
タ42の内容を現条件コード・レジスタ48へ直接転送
する。
(ル)KFCC KFCC制御命令は、現条件コード・レジスタ48が保
管されるべきか設定されるべきかを指定し、そして保管
又は設定されるべき位置、即ち桁上げ一借り、オーバー
フロー、マイナス、累積的非零又は標識1乃至4を指定
する。
主記憶装置命令 主記憶装置命令の中には、論理書込み(LW)命令及び
記憶装置フエツチ(FS)命令が含まれる。
第2A図及び第2B図に示されるこれらの命令において
は、データは主記憶装置12から読出されて、4つの基
本内部データ・レジスタ即ち累算レジスタ34、拡張レ
ジスタ36、計数レジスタ50及び出力バッファ・レジ
スタ26へロードされる。主記憶装置12から取出され
るデータは、命令アドレス中での指定に応じて、拡張レ
ジスタ36又はローカル記憶レジスタの1つによつてア
ドレス指定される。
アドレスは、主記憶装置12に対する連続的に変化する
ポインタを出力母線20へ供給するために、増分又は減
分によつて最初に更新されるか、又は指定されたポイン
タに計数レジスタ50の変位(正又は負)を加算するこ
とによつて、有効アドレスにされる。記憶装置命令に対
しては、半ワード・アドレス指定モード又はバイト・ア
ドレス指定モードを指定することができる。
IBMll3Oは、半ワード・モードで主記憶装置のデ
ータをアドレス指定する。IBM36O及び370並び
にIBMシステム/3は、バイト・アドレス指定モード
を使用しているが、1回のアクセスで2バイトを取出す
こともできる。システム/3の命令セットのアーキテク
チヤにおいては、3バイト、4バイト、5バイト又は6
バイトの命令が可能であるため、命令自身は、半ワード
境界と整列していない。従つて、エミュレーション簡単
にするため、本発明に従うマイクロコンピュータは、A
LU22において主記憶装置12からのデータの、特定
のバイトが特定の位置にくるように、例えば命令の0P
コ)−ドが常に下位バイトのところに現われるように、
このデータのバイトを配列し直すことにより、半ワード
整列を行なう。論理書込み命令(LW) 既に説明したように、本発明においては、出力7母線2
0は主記憶装置12に対してはアドレス母線として使用
され、主記憶装置12へのデータ転送には使用されない
ので、マイクロプロセッサ9から主記憶装置12への直
接データ転送路は存在しない。
入力母線10は、主記憶装置12に対する関係において
のみ両方向性である。マイクロプロセッサ9との関係に
おいて入力母線10を両方向性にしなかつた理由は、マ
イクロプロセッサ・チップ9の面積を節約するためであ
る。入力母線10へデータを供給するのに必要な出力駆
動装置は、チップ9上において大きな面積及び電力を必
要とし、従つてこれをチップ9に含ませることは望まし
くない。以下で説明する4つの論理書込み命令は、半ワ
ード・モード、下位バイト・モード又は上位バイト・モ
ードを選択し、そしてLSRl4のアドレス指定された
レジスタ・ロケーション又はI/0装置から取出された
データを主記憶装置12へ記憶させる。
LSRからの論理書込み 最初の論理書込み命令においては、LSRl4のレジス
タ・ロケーション1から読出されたデータが、LSRl
4のロケーション0乃至63のうちの1つによつてアド
レス指定された主記憶装置12の特定のロケーションに
書込まれる。
爲Rl4の1つのレジスタ・ロケーション1乃至63が
選択され、その内容は、主記憶装置12をアドレス指定
するために、出力バッファ・レジスタ26の設定前に、
1だけ増分若しくは減分されるか、又はそのままに保た
れる。更新されたアドレスは、LSRl4の上述の選択
されたレジスタ・ロケーションへ書き戻される。?Rl
4のレジスタ・ロケーション0がアドレス源として指定
されると、計数レジスタ50の内容は、主記憶装置アド
レスのための源となるべきLSRl4のレジスタ・ロケ
ーションの間接アドレスとして用いられる。記憶装置書
込みサイクルは、入力母線10へ接続されている?Rl
4のレジスタ・ロケーション1から読出されたデータを
用いて実行される。0Pコードのうちの2ビットをアド
レス変更コードとして用いて、これが10に設定されて
いる場合に、下位バイト又は上位バイトのみを主記憶装
置12へ書込むようにすることもできる。
もし、或る制御命令がバイト・アドレス指定モードを設
定していると、すべてのアドレス更新は+2又は−2で
実行され、そして上位バイト選択は−1のアドレス更新
を強制する(下位バイトはアドレスを変更しない)。更
新されたアドレスが偶数の場合には上位バイトが記憶さ
れ、奇数の場合には下位バイトが記憶される。また、出
力バッファ・レジスタ26の最初の内容は、辰玉14の
レジスタ・ロケーション0から選択される。拡張レジス
タ36からのアドレスによるLSRl4のロケーシヨ′
/o乃至63からの論理書込み2番目の論理書込み命令
は、主記憶装置12へ書込まれるデータがLSRl4の
ロケーション0乃至63から得られ、且つ主記憶装置1
2のアドレスが拡張レジスタ36から得られるという点
を除くと、最初の論理書込み命令と同じである。
上述のような上位バイト又は下位バイトの選択的書込み
も可能である。同じ?Rロケーションからのアドレスを
用いた■/0装置0乃至63からの論理書込み3番目の
論理書込み命令も最初の命令と殆んど同じであるが、ア
ドレス・レジスタの選択及び主記憶装置12へ書込まれ
るデータを供給するI/0装置0乃至63の選択が、L
SRl4の同じレジスタ・ロケーション0乃至63によ
つて行なわれる点が異なつている。
拡張レジスタ36からのアドレスを用いたI/0装置1
乃至63からの論理書込み4番目の論理書込み命令は、
主記憶装置12へ書込まれるデータが、選択されたI/
0装置1乃至63から入力母線10へ供給される点を除
くと2番目の論理書込み命令と同じである。
記憶装置フエツチ命令(FS) 記憶装置フエツチ命令は、半ワード・モードでフエツチ
操作を実行するように設定されている。
半ワード・アドレス指定の代りにバイト・アドレス指定
を設定する点については、制御命令の説明のところを参
照されたい。(現条件コード・レジスタ48と計数レジ
スタ50、又は割込みマスク・レジスタとエラー●レジ
スタ46は、バイト・モードにおいては常に一緒に使用
され、そして上位バイトは、記憶装置フエツチにおいて
はOにされない。)LSRアドレスを用いた主記憶装置
12からCPU9のレジスタへのロード(半ワード・ア
ドレス●モード)LSRl4のレジスタ・ロケーション
1乃至63(ロケーション0は除く)のうちの1つが選
択され、その内容は、主記憶装置12をアドレス指定す
るために出力バッファ・レジスタ26が設定される前に
、0、±1又はオア1により変更される。
もしこの変更が±1であれば、出力バッファ・レジスタ
26の内容は更新されて、LSRl−4の選択されたレ
ジスタ●ロケーションに書込まれる。これに続いて記憶
装置読出しサイクルが実行され、そして主記憶装置12
から入力母線10へ読出されたデータは、累算レジスタ
34、拡張レジスタ36、出力バッファ・レジスタ26
又は計数レジスタ50/エラー・レジスタ46へ選択的
にロードされる。現条件コード・レジスタ48及び計数
レジスタ50の代りに、KSIE制御命令によつて割込
みマスク・レジスタ44及びエラー・レジスタ46が選
択される場合がある。(計数レジスタ50/エラー・レ
ジスタ46は、下位バイトのみを有する。)LSRl4
のレジスタ・ロケーション0は、計数レジスタ50の下
位6ビットから、LSRl4の間接アドレス指定を選択
する。また、出力バッファ●レジスタ26の最初のデー
タもLS)Rl4のレジスタ・ロケーション0から選択
される。母線オペランド・アドレスを用いたもの(半ワ
ード●アドレス●モード)この命令は、出力バッファ・
レジスタ26(LSRl4のレジスタ●ロケーション0
)が拡張レジスタ36の代りに用いられ、且つ母線21
を介する補助アドレス転送が、出力バッファ・レジスタ
26から?Rl4のレジスタ●ロケーション1乃至63
のうちの1つへの半ワード移動又はLSRl4のレジス
タ・ロケーション0への更新アドレスのロードとして働
くという点を除き、次に述べる命令と同じである。
拡張レジスタ36からのオペランド・アドレスを用いた
もの(半ワード・アドレス・モード)拡張レジスタ36
の内容は、主記憶装置12をアドレス指定するために出
力バッファ●レジスタ26が設定される前に、0、±1
又は計数レジスタ50にあるオペランド変位の加算によ
つて変更される。
出力バッファ・レジスタ26の更新された内容は、拡張
レジスタ36へ書き戻される。次いで、主記憶装置12
の読出しサイクルが開始される。LSRl4の選択がレ
ジスタ・ロケーション1乃至63(ロケーション0は含
まない)からのものであれば、主記憶装置12からのデ
ータが使用可能になる前に、補助転送が行なわれる。命
令アドレス・レジスタ32の内容が、LSRl4の選択
されたレジスタ・ロケーションに書込まれるようにして
もよい。最後に、主記憶装置12からのデータは、最初
のFS命令のときと同じように、累積レジスタ34J拡
張レジスタ36、出力バッファ・レジスタ26又は計数
レジスタ50/エラー●レジスタ46へ選択的にロード
するために、入力母線10の方へ送り出される。また、
出力バッファ・レジスタ26の最初のデータは、LSR
l4のレジスタ・ロケーション0から選択される。主記
憶装置12からI/0装置へのロード(半ワード●アド
レス●モード)この命令は、アドレス・レジスタ32の
内容が、拡張レジスタ36から又は選択されたI/0装
置に対応す6LSR14のレジスタ●ロケーションから
選択され、且つ更新され得るという点を除き、上述の命
令と同じである。
主記憶装置12から読出されたデータは、出力バッファ
・レジスタ26へロードされた後(LSRl4のレジス
タ・ロケーション0ではない)、サンプル・アウト・パ
ルスの発生に伴つて、そこから選択されたI/0装置の
方へ送られる。補助転送は行なわれない。装置0は、計
数レジスタ50の下位6ビットから、装置の間接アドレ
ス指定を選択する。また、出力バッファ・レジスタ26
の最初の内容は、LSRl4のレジスタ・ロケーション
0から選択される。算術及び論理命令 第3A図乃至第3C図に示される算術及び論理命令は、
データ変更(MD)及びオペランド変更(MO)である
算術命令には、桁上げ付き又は桁上げなしの加算及び減
算が含まれる。これらは、2の補数の形又はバックw進
数(各ビット・フィールドに、正負符号のない1つの托
進デイジ”ツトが含まれる)の形で実行することができ
る。算術演算は、マイクロプロセッサ内部のレジスタ(
累算レジスタ3牡拡張レジスタ36、計数レジスタ50
及び出力バッファ・レジスタ26)の間で実行すること
ができる。また、累算レジスタ34又は拡張レジスタ3
6は、?Rl4の困のレジスタ・ロケーションのうちの
1つと算術的に組合わせることができ、この場合、演算
結果は、LSRl4の0つのレジスタ・ロケーション又
は拡張レジスタ36に記憶される。マイクロプロセツl
サ9の内部レジスタ間で実行されるすべての算術命令は
、半ワード●モード、上位モード専用モード、下位バイ
ト・モード又は下位4桁16進ビット・モードで実行さ
れ得る。これらの各モードにおける残りのビットは変更
されない。論理命令には、アンド、オア及び排他的オア
が含まれる。
これらの論理命令は、内部レジスタ間でのみ実行される
場合には、上述の算術命令のときと同じように、下位4
桁托進ビット・モード、下位バイト・モード、上位バイ
ト・モード又は半ワード・モードで実行され得る。LS
Rl4を使用する場合には、すべての論理命令は、半ワ
ードモードでのみ実行され得る。データ変更(rl−4
D) 累算レジスタ34又は拡張レジスタ36の内容は、この
データ変更命令により、1SR14の内容(これは変更
されない)で変更され得る。
また、?Rl4の指定されたレジスタ・ロケーションの
内容は、拡張レジスタ36の内容を用いて変更すること
ができる。この場合、拡張レジスタ36の内容は変更さ
れず、結果はLSRl4の選択されたレジスタ・ロケー
シヨンヘロードされる。更に、入力母線10へデータを
供給するために、任意の1/0装置が選択され得る。こ
のデータは、拡張レジスタ36にあるデータで変更する
ことができ、そして変更結果は、出力バッファ・レジス
タ26(LSROではない)へデータをセットし、続い
て出力母線20の方へ送り出すことにより(?CRl4
のレジスタ●ロケーション0へも送られる)、同じI/
0装置へ戻される。もしデータ変更命令のアドレス部分
がOに設定されていると、入力母線10上にはOのデー
タが生じる。オア操作を用いることにより、拡張レジス
タ36から出力バッファ・レジスタ26への移動が行な
われる。出力バッファ●レジスタ26は、アンド操作を
用いることにより、すべてOに設定される。データ変更
命令によつて指定され得る変更操作は、桁上げ付き若し
くは桁上げなしの2進加算又は桁上げ付きのバックw進
加算、借り付きの2進又はバックw進減算(LSRl4
又はI/O装置からの減算は行なわれない。この反対は
よい)、アンド、オア及び排他的オアである。LSRl
4が指定される場合には、そのレジスタ・ロケーション
0は、計数レジスタ50の下位6ビットからLSRl4
又はI/0装置の間接アドレス指定を選択する。オペラ
ンド変更(MO) オペランド変更命令においては、累算レジスタ34又は
拡張レジスタ36が変更される。
拡張レジスタ36の内容は、出力バッファ・レジスタ2
6によつて変更することができる。拡張レジスタ36が
0であれば、LSRl4のレジスタ・ロケーション0(
出力バッファ●レジスタ26)の内容を拡張レジスタ3
6及びLSRl4のレジスタ●ロケーション1乃至15
の1つへ移動させることができる。オペランド変更命令
は、累算レジスタ34、拡張レジスタ36又は計数レジ
スタ50/エラー・”レジスタ46の任意の組合わせの
間での移動操作が付加され、計数レジスタ50/エラー
・レジスタ46からの減算が許されない(逆はよい)と
いう点を除くと、前述のデータ変更命令と同じである。
また、上述のすべての操作は、計数レジスタ50/エラ
ー・レジスタ46の上位バイトが存在しないという点を
除くと、半ワード、上位バイトのみ、下位バイトのみ又
は下位托進ディジットのみで実行され得る。上述の各操
作が終了すると、LSRl4の選択されたレジスタ●ロ
ケーション(1乃至15の1つ)へ半ワード結果(計数
レジスタ50/エラー・レジスタ46の上位バイトニ現
条件コード・レジスタ48/割込みマスク・レジスタ4
4)が移動され得る。論理シフト 第4A図及び第4B図に示したシフト操作は、一時に1
ビットずつ左方向又は右方向に行なわれる。
シフト回路はレジスタ長によつて異なる。累算レジスタ
34及び拡張レジスタ36は、各々1乃至16ビット位
置のシフトが可能である。乗算及び除算について倍精度
が要求される場合には、累算レジスタ34は拡張レジス
タ36の上位レジスタになり、両レジスタが結合されて
、1つの32ビット●レジスタが構成される。この32
ビットのレジスタは、算術右シフト、左シフト計数、論
理左シフト、論理右シフト、左シフト回転及び右シフト
回転のうちの任意のモードにおいて1乃至32ビット位
置のシフトを行なう。16ビットのレジスタの8ビット
位置の回転と等価なより高速の動作は、1マイクロ命令
サイクルで実行することができる。
この動作は、1バイト入替え(Bytetwist)J
と呼ばれている。即時変更(IM) 即時変更命令のタイミングは第3C図に示されている。
プログラム●レジスタ30からの1バイトのデータ(0
Pビット8乃至15)が、先行のKSIE制御命令によ
つて選択された累算レジスタ34、拡張レジスタ36又
は計数/エラー・レジスタ50,46の下位バイトと組
合わされる。累算レジスタ34又は拡張レジスタ36が
選択された場合の組合わせ操作は、減算、ロード、オア
、アンド、排他的オア及び加算である。加算(減算)の
結果発生された桁上げ(借り)は、上位バイトの方へ伝
播される。計数/エラー・レジスタ50,46の場合の
組合わせ操作は、オア、アンド、ロード及び加算である
。加算操作又は減算操作においては、どのような桁上げ
入力も無視されて、新しい条件コードがセットされる。
条件付ぎ飛越し(JC)第4B図にタイミングが示され
ている飛越し命令は、テストの結果が否定的な場合に実
行される。
命令中のマスク・バイト及び選択されたレジスタの下位
8ビット(下位バイト)を用いて行なわれるテストには
次のようなものがある。(1)マスクと下位バイトとが
等しい。(2)マスクが下位バイトよりも大きい。(3
)マスク・ビットが下位バイト中のオン・ビットについ
てテストされ、残りの非選択ビットは無視される。(4
)マスクが下位バイト中のオフ・ビットについてテスト
され、残りのビットは無視される。4つの条件コード及
び4つのプログラム制御標識ビットを有する現条件コー
ド・レジスタ48は、マスクを用いてテストされ、オン
/オフ・ビットの選択及び条件の任意の組合わせによる
飛越しが行なわれる。
もしテストの結果が否定的であれば、次の命令はスキッ
プされる。また、累算レジスタ34又は拡張レジスタ3
6の上位置随ゾーン・ディジットも、全660″条件に
ついてテストされ得る。ブランチ操作 ブランチ操作には、条件付きブランチ及び無条件ブラン
チがあるが、これらは、ROSl6の任意の4K範囲て
実行され得る。
無条件ブランチを行なう前に、現命令アドレス●レジス
タ32の内容に1を加えたものをLSRl4の1つのレ
ジスタ・ロケーションに記憶させることにより、ブラン
チ連係操作が行なわれる。ブランチ連係操作が行なわれ
たサブルーチンへの復帰は、LSRl4に記憶された上
述のアドレスをu玉14から取出して、命令アドレス・
レジスタ32へ戻すことにより行なわれる。ブランチ命
令の第2のグループは、多重テーブル・ブランチ操作を
実行する。
この多重テーブル●ブランチ操作は、マイクロプロセッ
サ●レジスタの下位4つの1随ビット、次の4ビット(
これらはゾーン●ビットであつて、下位の4ビット又は
6ビットは無視される)、又は8ビット全部に基いて実
行可能であり、従つて、256ウェイのテーブル・ブラ
ンチが行なわれることになる。これに基き、8ビットの
0Pコードは、テーブルからの無条件ブランチ命令によ
り解読され得る。ブランチ命令の第3のグループは、1
曜類の条件(例えば、レジスタが零か否か、レジスタが
負か否か)に基く符号付き変位ブランチ操作を実行する
。変位ブランチ操作は、命令から8ビットの変位を取出
して、これを正負符号付きの16ビットの数として現命
令アドレス・レジスタ32の内容に加算することによつ
て行なわれる。他の命令は、1又は16だけ減分される
計数レジスタ50の内容に基く変位ブランチ操作を実行
し、結果が全部0であるか否か、下位4ビットが全部0
であるか否か、下位4ビットが全部1であるか否か、上
位4ビットが全部1であるか否かなどに応じて、ブラン
チが行なわれる。
論理移動一計数(LM) 第3B図にタイミングが示されている論理移動−計数命
令は、?Rl4の指定されたレジスタロ”ケーシヨン1
乃至63の内容を、命令アドレスレジスタ32、累算レ
ジスタ34、拡張レジスタ36、又は組合わされた現条
件コード・レジスタ48及び計数レジスタ50へ選択的
に移動させる。
移動中の内容は、+1又は−1だけ変更される場合があ
り(累算レジスタ34又は拡張レジスタ36への単一バ
イトの移動を除く)、変更された値は、?Rl4の選択
されたレジスタ・ロケーション1乃至63へ書戻される
。これと反対に、指定されたレジスタ(命令アドレス・
レジスタ32、l累算レジスタ3牡拡張レジスタ36、
又は組合わされた現条件コード・レジスタ48及び計数
レジスタ50)の内容が、そのまま又は+1若しくは−
1の変更を伴つて(累算レジスタ34又は拡張レジスタ
36からの単バイトの移動を除く)LSRl4の選択さ
れたレジスタ●ロケーション1乃至63へ移動される場
合がある。バイト移動においては、累算レジスタ34又
は拡張レジスタ36の上位バイト及び下位バイトの何れ
かを指定することができるが、上述のように、移動中の
バイトの変更は行なわれない。命令アドレス・レジスタ
32の内容は、ROSl6のための16ビットのアドレ
スを構成する。現条件コード・レジスタ48は、増分又
は減分が指定されていなければ、計数レジスタ50との
組合わせにおける上位バイトとしてのみ選択され得る。
また、割込みマスク・レジスタ44及びエラー●レジス
タ46は、もし前述のKSIE制御命令によつてセット
されていると、現条件コード・レジスタ48及び計数レ
ジスタ50に代つて使用され得る。論理移動一計数命令
がLSRl4のレジスタ・ロケーション0を指定してい
ると、現条件コード・レジスタ48及び計数レジスタ5
0が行先レジスタ又は源レジスタとして選択された場合
を除き(これらとLSRl4のレジスタ・ロケーション
0との間でデータの移動が行なわれるため)、計数レジ
スタ50の下位6ビットからLSRl4の間接アドレス
指定が選択される。1/O動作 本実施例では、特別のI/0命令は使用されない。
I/0装置との間のプログラム制御によるデータ又は制
御メッセージの直接転送は、記憶装置フエツチ命令、記
憶装置論理書込み命令、データ変更命令及び制御命令に
よつて行なわれる。記憶装置フエツチ命令は、主記憶装
置12から母線23,25及び28によつて構成される
内部データ・バスを介してI/0装置へデータを転送す
る。論理書込み命令は、拡張レジスタ36又は松蛋14
の1つのレジスタ●ロケーションからのアドレスを用い
て、I/O装置から入力母線10を介して主記憶装置1
2へデータを直接転送する(マイクロプロセッサ9の中
は通らない)。データ変更命令は、I/0装置からデー
タを取出して、このデータに対し拡張レジスタ36を用
いたALU操作を行ない、その結果を出力ビツフア●レ
ジスタ26から出力母線20を介して■/0装置へ戻す
。或る制御命令は、LSRl4の指定されたレジスタ・
ロケーション0乃至15又は命令中の即値データ・フィ
ールドからI/0装置の方へデータを出力するのに使用
することができる。任意のI/0装置から累算レジスタ
34、拡張レジスタ36又は爲Rl4のレジスタ・ロケ
ーション0乃至15へのデータ転送は、別の制御命令に
よつて行なうことができる。何れの場合にも、命令によ
つて直接指定されるか又は計数レジスタ50の内容を用
いて間接指定される装置アドレスは、LCO出力線41
及び補助アドレス母線21(松蛋14のアドレス指定に
も使用される)を介してI/0装置へ送られる。
1/0転送動作は、一対の接続手順信号即ちサンプル・
イン及びサンプル・アウトによつて同期をとられる。
これらの接続手順信号は、ホールド・クロック・インと
共に用いられて、線の長さ及び■/0装置の動作の遅延
とは無関係に、非同期■/O転送動作を実行させ得る。
【図面の簡単な説明】
第1図は第1A図乃至第1C図のつながりを示すブロッ
ク図、第1A図乃至第1C図は本発明に従うマイクロコ
ンピュータの一実施例を示すブロック図、第2図は第2
A図及び第2B図のつながりを示すブロック図、第2A
図及び第2B図はFS命令及びLW命令の実行のタイミ
ングを示すタイミング図、第3図は第3A図乃至第3C
図のつながりを示すブロック図、第3A図乃至第3C図
はMD命令、MO命令、LM命令、IM命令及び制御命
令の実行のタイミングを示すタイミング図、第4図は第
4A図乃至第4C図のつながりを示すブロック図、第4
A図乃至第4C図は?命令、JC命令、K命令及びBU
命令の実行のタイミングを示すタイミング図、第5図は
割込み/サイクル・スチール処理機構の詳細を示すブロ
ック図である。 10・・・入力母線、12・・・主記憶装置、14・・
・LSRll6・・・ROSll8・・・駆動装置、2
0・・・出力母線、21・・・補助(ミニ)アドレス母
線、22・・・ALUl24・・・合計レジスタ、23
,25,28・・・内部母線、26・・・出力バッファ
・レジスタ、30・・・プログラム●レジスタ、32・
・・命令アドレス・レジスタ、34・・・累算レジスタ
、36・・・拡張レジスタ、38・・・減分レジスタ、
40・・・江℃レジスタ、42・・・保管条件コード・
レジスタ、44・・・割込みマスク・レジスタ、46・
・・エラー・レジスタ、48・・・現条件コード・レジ
スタ、50・・・計数レジスタ、52・・・割込みゲー
ト、53・・・共通ボール母線、54・・・優先順位符
号器、56・・・現割込みコード・レジスタ、58・・
・比較装置、60・・・4相発生器、62・・・命令解
読装置、64・・・補助クロック装置、66・・・基本
クロック装置。

Claims (1)

    【特許請求の範囲】
  1. 1 I/O装置によつて各々選択的に付勢されて優先順
    位を付けられたサイクル・スチール・リクエスト又は割
    込みリクエストを転送する複数の線を含む共通ポール母
    線と、何れかのI/O装置がサイクル・スチール・リク
    エストを有していることを知らせる共通サイクル・スチ
    ール・リクエスト線と、前記割込みリクエストを処理す
    るためのプログラムを記憶する記憶装置と、前記割込み
    リクエストの受付けを選択的に禁止する割込みマスク手
    段と、前記共通ポール母線及び前記割込みマスク手段に
    接続され、許可された割込みリクエストを知らせる割込
    みゲート手段と、前記共通サイクル・スチール・リクエ
    スト線の付勢に応答して、前記共通ポール母線からの割
    込みリクエストの除去及びサイクル・スチール・リクエ
    ストの転送を前記I/O装置に要求するサイクル・スチ
    ール手段と、前記共通ポール母線を転送されてきたサイ
    クル・スチール・リクエスト又は前記割込みゲート手段
    からの許可された割込みリクエストの優先順位に応じて
    各々のリクエストを処理する手段と、を有するデータ処
    理システム。
JP52150707A 1976-12-27 1977-12-16 デ−タ処理システム Expired JPS6053899B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US754193 1976-12-27
US05/754,193 US4181934A (en) 1976-12-27 1976-12-27 Microprocessor architecture with integrated interrupts and cycle steals prioritized channel

Publications (2)

Publication Number Publication Date
JPS5382240A JPS5382240A (en) 1978-07-20
JPS6053899B2 true JPS6053899B2 (ja) 1985-11-27

Family

ID=25033801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52150707A Expired JPS6053899B2 (ja) 1976-12-27 1977-12-16 デ−タ処理システム

Country Status (11)

Country Link
US (1) US4181934A (ja)
JP (1) JPS6053899B2 (ja)
AU (1) AU513019B2 (ja)
BR (1) BR7708662A (ja)
CA (1) CA1100643A (ja)
CH (1) CH623947A5 (ja)
DE (1) DE2756768C2 (ja)
ES (1) ES465431A1 (ja)
GB (1) GB1543278A (ja)
HK (1) HK70684A (ja)
SE (1) SE432313B (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4479179A (en) * 1979-07-30 1984-10-23 International Business Machines Corporation Synchronous cycle steal mechanism for transferring data between a processor storage unit and a separate data handling unit
US4417304A (en) * 1979-07-30 1983-11-22 International Business Machines Corporation Synchronous cycle steal mechanism for transferring data between a processor storage unit and a separate data handling unit
US4462029A (en) * 1979-12-06 1984-07-24 Analogic Corporation Command bus
US4435758A (en) 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
JPS5720859A (en) * 1980-05-30 1982-02-03 Fairchild Camera Instr Co Microprocessor
US4396980A (en) * 1980-07-11 1983-08-02 Fairchild Camera & Instrument Corp. Combined integrated injection logic and transistor-transistor logic microprocessor integrated circuit design
US4400772A (en) * 1980-12-30 1983-08-23 International Memories, Inc. Method and apparatus for direct memory access in a data processing system
US4482949A (en) * 1981-07-20 1984-11-13 Motorola, Inc. Unit for prioritizing earlier and later arriving input requests
US4811279A (en) * 1981-10-05 1989-03-07 Digital Equipment Corporation Secondary storage facility employing serial communications between drive and controller
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4533992A (en) * 1982-02-22 1985-08-06 Texas Instruments Incorporated Microcomputer having shifter in ALU input
US4514805A (en) * 1982-02-22 1985-04-30 Texas Instruments Incorporated Interrupt operation in systems emulator mode for microcomputer
US4591972A (en) * 1982-11-15 1986-05-27 Data General Corp. Data processing system with unique microcode control
JPH061441B2 (ja) * 1983-09-12 1994-01-05 モトロ−ラ・インコ−ポレ−テツド 先取り確認装置
US4769768A (en) * 1983-09-22 1988-09-06 Digital Equipment Corporation Method and apparatus for requesting service of interrupts by selected number of processors
US4706190A (en) * 1983-09-22 1987-11-10 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in digital computer system
USRE34052E (en) * 1984-05-31 1992-09-01 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
US4648029A (en) * 1984-08-27 1987-03-03 International Business Machines Corporation Multiplexed interrupt/DMA request arbitration apparatus and method
BG39765A1 (en) * 1985-02-14 1986-08-15 Turlakov Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
US4961067A (en) * 1986-07-28 1990-10-02 Motorola, Inc. Pattern driven interrupt in a digital data processor
US5001624A (en) * 1987-02-13 1991-03-19 Harrell Hoffman Processor controlled DMA controller for transferring instruction and data from memory to coprocessor
GB2203572B (en) * 1987-03-24 1991-11-27 Insignia Solutions Limited Improvements in data processing means
US4942520A (en) * 1987-07-31 1990-07-17 Prime Computer, Inc. Method and apparatus for indexing, accessing and updating a memory
EP0303751B1 (en) * 1987-08-20 1992-05-20 International Business Machines Corporation Interface mechanism for controlling the exchange of information between two devices
US5317715A (en) * 1987-12-15 1994-05-31 Advanced Micro Devices, Inc. Reduced instruction set computer system including apparatus and method for coupling a high performance RISC interface to a peripheral bus having different performance characteristics
US4916601A (en) * 1988-12-19 1990-04-10 Bull Hn Information Systems Inc. Means for transferring firmware signals between a control store and a microprocessor means through a reduced number of connections by transfer according to firmware signal function
US5144230A (en) * 1990-11-26 1992-09-01 The Boeing Company Method and system for testing integrated circuits by cycle stealing
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
EP0562353A3 (de) * 1992-03-27 2004-08-18 Siemens Aktiengesellschaft Verfahren zum Übertragen hochpriorer Programme und Daten in einem Kommunikationssystem
US5473757A (en) * 1992-12-11 1995-12-05 Ge Fanuc Automation North America, Inc. I/O controller using single data lines for slot enable/interrupt signals and specific circuit for distinguishing between the signals thereof
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
FR2720172B1 (fr) * 1994-05-20 1996-06-28 Sgs Thomson Microelectronics Dispositif de mise en Óoeuvre numérique d'une opération de division.
US5838991A (en) * 1994-12-29 1998-11-17 International Business Machines Corporation Preemptable idle time activities for constant data delivery by determining whether initiating a host command will conflict with an idle time activity being executed
TWI259356B (en) * 2004-03-26 2006-08-01 Infortrend Technology Inc Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3680054A (en) * 1970-07-06 1972-07-25 Ibm Input/output channel
US3668651A (en) * 1970-12-30 1972-06-06 Ibm Working device code method of i/o control
US3909790A (en) * 1972-08-25 1975-09-30 Omnus Computer Corp Minicomputer with selector channel input-output system and interrupt system
US4004283A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Multiple interrupt microprocessor system
US3962682A (en) * 1974-10-30 1976-06-08 Motorola, Inc. Split low order internal address bus for microprocessor
US4034349A (en) * 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
US4038641A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Common polling logic for input/output interrupt or cycle steal data transfer requests
US4056847A (en) * 1976-08-04 1977-11-01 Rca Corporation Priority vector interrupt system

Also Published As

Publication number Publication date
AU513019B2 (en) 1980-11-06
SE7714244L (sv) 1978-06-28
BR7708662A (pt) 1979-07-24
DE2756768C2 (de) 1982-08-12
HK70684A (en) 1984-09-21
JPS5382240A (en) 1978-07-20
CA1100643A (en) 1981-05-05
DE2756768A1 (de) 1978-06-29
ES465431A1 (es) 1978-09-16
CH623947A5 (ja) 1981-06-30
AU2982277A (en) 1979-05-24
US4181934A (en) 1980-01-01
SE432313B (sv) 1984-03-26
GB1543278A (en) 1979-03-28

Similar Documents

Publication Publication Date Title
JPS6053899B2 (ja) デ−タ処理システム
US4378589A (en) Undirectional looped bus microcomputer architecture
EP0169565B1 (en) Microprocessor compatible with any software represented by different types of instruction formats
US3983539A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US4507732A (en) I/O subsystem using slow devices
US5511207A (en) Program control circuit determining the designated number of times a sequence of instructions is repetitively executed to prevent further execution of a jump instruction
US4394736A (en) Data processing system utilizing a unique two-level microcoding technique for forming microinstructions
US5125084A (en) Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
US4339793A (en) Function integrated, shared ALU processor apparatus and method
US4558411A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US3983541A (en) Polymorphic programmable units employing plural levels of phased sub-instruction sets
US4268908A (en) Modular macroprocessing system comprising a microprocessor and an extendable number of programmed logic arrays
CA1036713A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
JPS598846B2 (ja) マイクロプログラム可能な周辺制御装置
US4087854A (en) Minicomputer system with an arithmetic control unit integrated on a one-chip semiconductor device
EP0034634B1 (en) Microcomputer arranged for direct memory access
NZ201809A (en) Microprocessor
US4379328A (en) Linear sequencing microprocessor facilitating
US7376777B2 (en) Performing an N-bit write access to an M×N-bit-only peripheral
EP0010197B1 (en) Data processing system for interfacing a main store with a control sectron and a data processing section
US4371931A (en) Linear micro-sequencer for micro-processor system utilizing specialized instruction format
EP0110227B1 (en) Control memory organization
US4374418A (en) Linear microsequencer unit cooperating with microprocessor system having dual modes
EP0240606A2 (en) Pipe-line processing system and microprocessor using the system
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor