JPS59111542A - プログラム・カランタ・スタツク方法およびネストされたサブル−チンと命令用の装置 - Google Patents

プログラム・カランタ・スタツク方法およびネストされたサブル−チンと命令用の装置

Info

Publication number
JPS59111542A
JPS59111542A JP58229034A JP22903483A JPS59111542A JP S59111542 A JPS59111542 A JP S59111542A JP 58229034 A JP58229034 A JP 58229034A JP 22903483 A JP22903483 A JP 22903483A JP S59111542 A JPS59111542 A JP S59111542A
Authority
JP
Japan
Prior art keywords
address
register
microinstruction
interrupt
return
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
JP58229034A
Other languages
English (en)
Other versions
JPH0666051B2 (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.)
Bull HN Information Systems Italia SpA
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Honeywell Information Systems Inc
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 Honeywell Information Systems Italia SpA, Honeywell Information Systems Inc filed Critical Honeywell Information Systems Italia SpA
Publication of JPS59111542A publication Critical patent/JPS59111542A/ja
Publication of JPH0666051B2 publication Critical patent/JPH0666051B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 本発明は、データ処理システムに関し、特に不ストされ
たサブルーチンの実行および割込みを行なうデータ処理
システムに関する。
データ処理システムにおいて実施される諸動作およびこ
れら動作が生じる順序は、メモリーに格納されたプログ
ラムにより記述される。実施されるべき一連の操作の各
々を完全に規定するプログラマの問題を軽減するため、
筐だデータ・プロセー  ツサの能力を更に充分に利用
するため、1つのプログラムにおいて数回要求されるか
、あるいは他のプログラムにおいて使用することができ
る共通の関数が通常提供される。各々の一般関数は、サ
ブルーチンがあるシーケンスの命令を含むサブルーチン
として指定することができる。
サブルーチンは、多くの一般関数、例えば数学的近似操
作を用いる三角関数に対して使用することができる。一
連の操作を数回書換える代りに、プログラマは単に1組
の命令を書込んで操作を実(21) 施し、これを何回も呼出す。このため、余弦(コサイン
)の如き三角関数の(Wk必要とする1つのルーチンの
場合には、テイジタル・データ・プロセッサにおける余
弦サブルーチンに対する1つの分岐操作が実行される。
しはしば、1つのサブルーチンがその動作を完了するた
め(C別のサブルーチンを呼出すことがあることが知ら
れている。、このような状態が生じると、戻りアドレス
即ち分岐サブルーチンから次のアドレスがデータ・プロ
セッサにより記憶されて再び呼出されなければならない
ため、複雑化する。
このように、全プログラムの効率はデータ・プロセッサ
における唯一の場所吟特定の1つの関数を提供すること
により強化されるが、時間的な配慮およびハードウェア
および(または)空間の制約の両方の観点から種々のサ
ブルーチンの呼出しおよびこ2%からの戻しにおいて効
率の低下が生じることがしばしば認められてきた。
従来技術においては、サブルーチンに関する人出転送の
ための多くの解決策が提供されている。
(22) 1つの解決法は、サブルーチンの最初に対する場所の次
の命令場所の転送ケ含むものであるらこのような構成に
おいては、最後のサブルーチン砧令はこのサブルーチン
の最初の場所をアクセスする。
この最初の場所は、次の命令(即ち、このサブルーチン
に分岐した命令を通る1つの命令)に対する戻しアドレ
ス指定み、このためデータ・プロセッサがプログラムの
順次実施のを継続を可能にする。この方法は、いくつか
の転送の取扱いが情況を複雑化させるため不利となる。
例えば、第1のサブルーチンからこの第1のサブルーチ
ンを使用する第2のサブルーチンへ諸動作を転送するこ
とがしばしは有利である。他の状態においては、第1の
サブルーチンがそれ自体全書び呼出す場合に有利となる
こともある。このような転送は問題があり、しばしば修
正を行なうことなくあるいは命令数を増加することなく
前述の形式のデータ処理システムを用いて達成すること
は不可能である。
第1のサブルーチンが最初に呼出される時、主ルーチン
における次のマイクロ命令のアドレスは最初のサブルー
チンの場所に対して転送される。この最初のザブルーチ
ンが中間のルーチンによって再び呼出さ1′Lる時、こ
の中間のルーチジにおける次の命令のアドレスは最初の
サブルーチンにおける同じ場所に転送され、このため元
の内容を破壊することになる。その結果、最初のサブル
ーチンは中間のルーチンに戻ることはできるが、主ルー
チンへは戻ることができない。
第1″!、たは第2のサブルーチンが最初のサブルーチ
ン全書び呼出すことを可能にするデータ処理システムに
おいては、戻りアドレスを特定の記憶場所へ移動させる
ため1つの命令を提供することができる。最後のサブル
ーチンの命令は、この時、指定された記憶場所のアドレ
スを営むように変更される。このシステムは1つのサブ
ルーチンが別のサブルーチンを呼出し全可能にする、即
ち比較的後のサブルーチンを不ストすることを可能(f
こし、寸た部分的に完了したサブルーチンが他の目的の
ため順次使用されることを可能にするが、各不スト・レ
ベルに対して1つの予約記憶場所およびいくつかの命令
が必要となる。同じ不ストされた各サブルーチンに対す
るこれらの記は場所の数が増加する程、制御回路の複雑
さを増巾するのである。
更に、最後のサブルーチンの命令が各サブルーチン毎に
適正な記憶場所をアドレス指定するため修正されなけれ
ばならないため、プログラミングの複雑さはその度を増
加する。従って、この試みは、ネスティング・レベル数
が増加するに伴い益々輻する状態となる。
別の形式のデータ処理システムは、前に実行されγこサ
ブルーチン寸たはルーチンの戻りアドレスを記憶するた
めのメモリーにおける空白場所を使用する。サブルーチ
ンの最後の命令は指定された記′1.Its所に対して
分岐する。しかし、このシステムを探索するためには、
一方が空白の8己憶場所に対するポインタであり他方が
レジスタのその時の値およびメモリー・アドレス指定供
する2つのレジスタが必要となる。この形式のデータ処
理装置は前述の問題のいくつかを克服するが、各々の新
たなサブルーチンのレベルを要求される同時の比(25
) 毅的長い実行時間で表示する追加の命令を依然としても
たらす結果となる。
この問題の咀に鍛近の解決法は、参考のため本文に引用
される米国特許第3,909,797号[不ストされた
サブルーチンに対する制御ストア装置および後入れ先出
しスタックを用いるデータ処理システム」において見出
される。本米国特許においては、データ処理システムは
中央処理サブシステムの順序付けを可能にするマイクロ
プログラム制御ストア装置を■する。本特許は、制御ス
トア装置を制御するファームウェア内でプログラムされ
たサブルーチンのネスティング方法について記載してい
るが、この発明の原理はソフトウェア・プログラムまた
はファームウェア・マイクロプログラムに対しても等し
く適用可能である。制御ストア装装置は、記憶されるべ
きその時作動中のマイクロプログラム・ルーチンの戻り
アドレスを可能状態にするためのマイクロ指令を介して
マイクロプログラム・サブルーチンに対する分岐マイク
ロ命令を提供する。このマイクロ指令は筐だ、前身(2
6) て記憶された戻りマイクロプログラム・アドレスがルベ
ルだけ下方に移動(ブツシュ)されるように後入れ先出
しスタックを可能状態にする。マイクロプログラム・サ
ブルーチンの完了と同時に、制御ストア装置は、マルチ
プレクサが後入れ先出しスタックの最上位に含1れる戻
りアドレスを選定すること全可能にし、かつこれをシス
テムにおけるその時のアドレス・レジスタに対して提供
するための分岐フィールドを提供する。この分岐フィー
ルドはまた、後入れ先出しスタックにおける前に記憶さ
れた戻りアドレスをルベルだけ上げる。
プログラムの実行に対して非同期的に生じる事象に応答
させるため、データ処理システムにおいて命令が使用さ
れる。これらの非同期事象は、データ処理システム内の
障害、もしくはデータ処理システムにより制御される諸
素子の状態の変化である。例えば、データ処理システム
の割込みによって、入出力(Ilo)素子は、これがデ
ータ処理システムによるアテンションまたはサービスを
妥求することを信号することができる。このような割込
みは、I10操作またはメモリーのエラーの如きシステ
ムの障害の完了を信号するため使用することもできる。
サブルーチンの場合における如く、割込みはプログラム
のフローを転向させることができる。割込みの場合には
、プログラムのフローは、割込みを生じた事象のタイプ
を取扱いするようにプログラムされた割込みサービス・
ルーチンに対して転向される。割込みサービス・ルーチ
ンの実行の完了と同時に、割込みサービス・ルーチンは
、データ・プロセッサが割込みと同時に記憶された戻り
アドレスにおいてプログラムの実行を再開させねばなら
ない。
戻りアドレス全記憶するための1つの方法は、メモリー
内の固定場所全割込みされたプログラムの戻りアドレス
を記憶するための各タイプの割込みに割当てることであ
る。この方法を用いて、割込みサービス・ルーチンが完
了した時、ある特定の形式の割込みと関連する固定され
た記憶場所からデータ・プロセッサのプログラム・カウ
ンタを再ロードすることができ、またその割込みの発生
の直前に実行中であったプログラムの実行を再開するこ
とができる。この方法は、割込みが行なわれたプログラ
ムに戻すためにこのサービス・ルーチンが各別込みと異
なる固定された記憶場所から割込み戻りアドレスを検索
しなけれはならない故に、割込みサービス・ルーチンが
容易に共通のプログラム命令を共用できないという短所
を有する。
割込み戻りアドレスの取扱いに関する異なる試みは、参
考のため本文に引用された米国特許第4.340,93
3号[存在しないメモリー・アドレスの集中検出法を有
するデータ処理システム」において見出される。あるフ
ァームウェア・マイクロプログラムの実行に割込みを行
々う・・−ドウエア割込みを取扱う本米国特許において
は、マイクロプログラムの戻りアドレスはある特殊なレ
ジスタ(ハードウエナ割込み戻りアドレス・レジスタ)
に記憶され、又更に別のハードウェア割込みはマイクロ
プログラム・ハードウェア割込みサービス・ルーチンの
完了壕で阻止される。以降の割込みの(29) 禁止は、前記のノ・−ドウエア割込み戻りアドレス・レ
ジスタに記憶された最初のマイクロプログラムの戻りア
ドレスが第2のハードウェア割込みの発生によりその上
に記憶されつつある第2の戻りアドレスにより破壊され
ないことを保証するものである。この方法は、1つの割
込み戻りアドレス・レジスタからプログラム・カウンタ
を再ロードすることにより全ての割込みサービス・ルー
チンが割込みが行なわれたプログラムに対する実行を再
開するため、割込みサービス・ルーチンが共通のプログ
ラム命令を共用することを可能にするが、依然として割
込みおよびサブルーチンが容易に共通のプログラム命令
を共用できないという短所を有するものである。
従って、必要とされるものは、一般的な有効な方法にお
いてサブルーチン呼出しのネスティングおよび割込みの
サービス操作を可能にする戻りアドレスの記憶方法であ
る。
従って、本発明の主な目的は、サブルーチン転送および
割込みが迅速に行なわれる改善されたデ(30) −夕処理システムの提供にある。
本発明の別の目的は、サブルーチンへの分岐丑たは非同
期割込みに対する応答の際戻りアドレスを記憶し、また
完了と同時にサブルーチンに分岐されたルーチンまたは
割込み応答ルーチンが戻りアドレスにおけるプログラム
の実行の再開全自動的に可能にするための新規な改善さ
れたシステムの提供にある。
本発明の他の目的は、データ処理および計算システムに
おいて使用される、効率が良く、信頼性が高く、全体的
な時間の節減をもたらす改善された手法の提供にある。
本発明は、特に頭書の特許請求の範囲において規定され
るものである。本発明の上記および他の目的および利点
については、図面に関して以下の記述を照合することに
より理解が得られよう。
前記の諸口的は、データ処理システムのマイクロプロセ
ッサにおいてこのマイクロプロセッサの順序付は操作を
可能にする制御領域を提供することにより、その1つの
操作モードに従って本発明の一実施態様によって達成さ
れる。この制御領域は、その時作動中のルーチンの戻り
アドレスが記憶されることを可能にするためのマイクロ
指令ケ介して前記サブルーチンに対する分岐マイクロ命
令全提供する。前記マイクロ指令はまた、前に記憶され
た戻りアドレスがルベルだけ下方にプツンユされるよう
に、後入れ先出しスタックを可能状態にする。前記制御
領域は更に、再上位の禁止状態にない中断状態の割込み
と対応するベクトル化された割込みアドレスの生成を行
なう。これらのベクトル化された割込みアドレスは、そ
の時のマイクロ命令により生成されたアドレスの代りに
次のアドレス・レジスタに対して与えられ、その時マイ
クロ命令により生成されたアドレスは割込みの完了と同
時にルベルだけ後入れ先出しスタッタに対してブツシュ
される。サブルーチンもしくけ割込みサービス・ルーチ
ンの完了と同時に、制御領域は、マルチプレクサが制御
領域における    ′次のアドレス・レジスタに対し
て与えられるべき後入れ先出しスタックの最上位に詮葦
れる戻りアドレスを選択することを可能にするためのア
ドレス・フィールドを提供する。前記後入れ先出しスタ
ックの飛出し操作はまた、前に記憶された戻りアドレス
をルベルだけ増進する。サブルーチン育たば割込みサー
ビス・ルーチンから戻る時もし割込みが生じるならば、
後入れ先出しスタックが飛出し操作もしくはブツシュ操
作のいずれも行なわれないように、またベクトル化され
たアドレスが実行されるべき次のマイクロ命令のアドレ
スとして次のアドレス・レジスタに対して与えられるよ
うに装置もまた設けられる。望ましい実施態様において
は、後入れ先出しスタックはシフト・レジスタを用いて
構成されている。
本発明のプロセスが実施される方法、および本発明の装
置が構成される方法およびその操作モードについては、
同じ照合番号がいくつかの図における類似の要素を識別
する図面と共に、以下の詳細な記述に照合すれば最もよ
く理解することができよう。
本発明の背景の前記の論述は主としてソフトウ(33) エアおよびソフトウェア・ルーチンおよび割込みのネス
ティングに関するものであり、その原理はファームウェ
ア・ルーチンおよび割込みに対して等しく適用すること
ができる。本発明の以下の論議は、本発明がファームウ
ェア・サブルーチンおよび割込みのネスティングにおい
て使用するためマイクロプロセッサ内部で実施される望
ましい実施態様に関するものである。
図面に関連して本発明の構造および作用についての記述
に先立って、説明の便のため、図面中に示される実施態
様は4つのサブルーチンまたは割込みレベルのネスティ
ングが可能であるように示されていることに注意された
い。しかし、熱論、実施においては、使用されるハード
ウェアにおける適当に増加することにより4つより遥か
に大きくすることもできることを理解されよう。あるい
は葦だ、ハードウェアの拡張を行なう代りに、桁溢れ手
法を用いることもできる。この場合は、4つ以上のサブ
ルーチンまたは割込みレベルのネスティングを欲する場
合においては、マイクロプロ(34) セッサは4つを越えるサブルーチンまたは割込みの取扱
いのため他の構成の機構によることもできる。
図面に示された実施態様の構成は、ある回路構成におい
て有効である。しかし、本発明を種々の形式のデータ・
プロセッサに適用するため本発明の実施において他の論
理構成を使用することも可能であることが理解されよう
。従って、本発明は図面に示された特定の構成に限定さ
れるべきことを意図するものではない。
次に四面によれば、第1図は、本発明の不ストされたサ
ブルーチンおよび割込み構成が用いることができるシス
テム全体全示している。%に、第1図は、主記憶装置サ
ブシステム10と、中央演算処理装置(CPU)20と
、入出力(Ilo )装置40と全示している。主記憶
装置サブシステム10は、3個の金属酸化物半導体モジ
ュール12.14.16からなる。この3個のモジュー
ルは、中央演算処理装置バス20と入出力バス40に対
して主要バス26を介してインターフェースされている
。主要バス26は、全てのメモリー・モジュールおよび
入出力装置に対するアクセスおよび制御全提供する能力
を与えるものである。
中央演算処理装置20は、固定された長さのフィールド
および変更可能な長さのフィールドについて操作するワ
ード指向の命令を実行する。中央演算処理装置における
情報の基本単位は、2つの8ビツトのバイトからなる1
6ビツト・ワードである。これら情報ワードは、命令、
またけ固定小数点もしくは浮動小数点のオペランドに対
して1つ、2つまたは4つのグループにおいて使用され
る。バイトは寸だ10進数唸たは英数字のデータとして
可変長さフィールドにおいても使用される。
CPU20は、マイクロプロセッサ30と、モニター・
ロジック22と、読出し専用記憶装置(MOS)24と
からなっている。マイクロプロセッサ30は、望ましい
実施態様においてRO324に會マわる48ビツトの外
部ファームウェアのマイクロ命令ワードにより駆動され
る、算術演算、論理演算および制御操作が可能な16ビ
ツトのNMOSチップである。マイクロプロセッサ30
の構成は、CPU20の16ビツトのソフトウェア命令
のレバー) IJの実行を可能にするものである。
マイクロプロセッサ30は、集積回路の設計會谷易にす
るため入出力(Ilo)および記憶操作を直接制御する
ように構成されている。マイクロプロセッサ30の構成
は、48ビツトのマイクロ命令ワード当り12壕での同
時のマイクロ演算全可能にする真の水平マイクロプログ
ラミングを行なう48ビツトの外部のファームウェアの
マイクロ命令の使用によって比較的大きな制御および集
積を可能にする。マイクロプロセッサ30の構成は1だ
、ファームウェア・マイクロプログラム・ルーチンに対
するベクトルの生成を行なう8つの外部のハードウェア
割込みを可能にすると共に、ファームウェアの制御下で
取扱われる5つの外部ソフトウェア割込みを可能にする
。更に、マイクロプロセッサ30は、モニター・ロジッ
ク22において生成され、ファームウェア内部で実施さ
れ(37) るべき複雑な分岐操作を可能にするマイクロプロセッサ
の制御域36内のロジックによるト(雑な検査分岐およ
び主要分岐操作によって検出され制倒1される10の外
部モニター・ビラトラ提供する。
マイクロプロセッサ30は、第1図に示された如き5つ
の主な内部のハードウェアの論理領域からなる。この5
つの主な論理領域は、演算論理装置(ALU)、メモリ
ー管理装置(MMU34)、制御領域36、プロセッサ
・バス37および内部バス38を含むデータ操作領域3
2である。
プロセッサ・バス37は、20のアドレス/データ回線
、1つのメモリー・アドレス干渉回線および3つの汎用
制御回線からなっている。プロセッサ・バス37は主要
バス26と接続され、また主記憶装置10および入出力
装置40VC対してアドレス全提供しかつ主記憶装置1
0および入出力装置40に関してデータを送受するため
に使用される。
内部バス38は、マイクロプロセッサ・チップの他の4
つの領賊間の通信のための主な経路であ(38) る。内部ハス38は20ビツト巾である。48ビツトの
マイクロ配合ワード内部に11のマイクロopの制御下
で内部バス38に対する情報の12の供給源が存在する
。A、 L Uは、11の指定されたマイクロopがい
ずれも使用されなければ内部バス38に対する省略時の
ソースとなる。
データ操作領域32は、データに関する算術演算および
論理演算を行ない、メモリー・アドレス生成を行なう。
データ操作領域32は、1つの標識レジスタ、種々の離
散レジスタ、レジスタ・ファイルおよび演算論理装置(
ALU)およびシフト機構からなっている。これらの離
散レジスタの1つは、CPUに対する20ビツトのメモ
リー・アドレス・レジスタとして使用される。このプロ
グラム・カウンタは、中央演算処理装置20により実行
中のソフトウェア命令の20ビツトのメモリ 、−・ア
ドレス生成有する。レジスタ・フ゛アイルは、16ビツ
トのソフトウェアのアドレス指定可能なデータ・アドレ
ス・レジスタ、7つのソフトウェア・アドレス指定可能
な基底レジスタ、およびその全てがCPU20により実
行されつつあるソフトウェア・プログラムと関連する他
の種々のレジスタを含む。このレジスタ・ファイルは捷
だ、ファームウェア操作中清報の一時的な記憶のためR
O824からのファーウェア・プログラムによって使用
される種々の作業レジスタを保有する。
シフト機構は、16ビツト箇たけ32ビツトのオペラン
ドに関して種々のシフト操作(即ち、開閉、演算論理、
左側右側)を行なう能力に使用される。
マイクロプロセッサ30の制御領域36は、3つの領域
、即ち、制御のための入力ラッチ、検査可能なレジスタ
および次のアドレス生成の領域に論理的(C分割されて
いる。制御領域36については、第2図に関して以下に
更に詳細に記述する。
マイクロプロセッサ30のMMU34の部分は、主とし
て下記のものからなっている。即ち、1つのレジスタ・
ファイル、メモリー・セグメントの大キさを検査する1
つの9ビツトコンパレータ、あるセグメントに対するア
クセス権を評価するいくつかの2ビツトのリング・コン
パレータ、および潜在的なメモリーの干渉を表示する記
憶フリップフロップである。CPUが生成したメモリー
・アドレス・サイクルの間、MMU34は、内部バス3
8によりプロセッサ・バス37におよびかれる物理的ア
ドレスに対して与えられ更に主要バス26を介して主記
憶装置10に対して与えられるセグメント番号、フロッ
ク番号およびオフセット値ヲ営むソフトウェアの論理ア
ドレス全翻訳する。
これ丑での記述により理解できるように、CPU20は
、その命令が主記憶装置10から取出されるソフトウェ
ア・プログラムを実行し、これもまた主記憶装置10に
保有されるデータに関する演算論理操作を実施する。C
PU20により実行されるソフトウェア・プログラムは
、ソフトウェア・ビジプルである汎用レジスタおよび基
底レジスタを操作する能力を有し、その時のソフトウェ
ア命令はプログラム・カウンタにより指示される。
CPU20により実行中のソフトウェアからビジプルで
あるこれらの汎用レジスタ、基底アドレス・レジスタお
よびプログラム・カウンタは、マイク(41) ロプロセッサ30のデータ操作領域32内に物理的に保
有される。
第1図のCPU20の詳細々作用は、読出し専用記憶装
置(110S)24(C記憶されたファームウェアのマ
イクロ命令の制御下でマイクロプロセッサ30によって
制御される。RO824における各記憶場所はマイクロ
プロセッサの1つの機械サイクルを制御する如くに解釈
することができる。
RO824の各場所が読出される時、その山谷は制御領
域36によって復号され、その結果マイクロプロセッサ
30内部で特殊な操作を惹起する。
RO8の場所をグループ化することにより、CPU20
と関連する特殊な操作即ちソフトウェア命令を実施する
ことができるファームウェア・マイクロ命令シーダンス
が得られる。各ソフトウェア命令が開始されると、ソフ
トウェア命令の命令コード・フィールド内のあるビット
が用いられてRO824内に保有されるファームウェア
・マイクロ命令ルーチンの始動アドレスを判定する。マ
イクロプロセッサ30により行なわれるソフトウェアの
(42) 命令復号によりセットまたはリセットされるあるフリッ
プフロップのテストは、必要に応じてマイクロプロセッ
サがRO824内部の更に特定の7アームウエア・マイ
クロ命令シーケンスに対して分岐することを許容する。
主要バス26に対しては、入出力装置40が接続されて
いる。入出力コントローラ42は、周辺素子44から主
要バス26を介して主記憶装置10に対するデータ経路
を完成する入出力装置の部分である。I10コントロー
ラ42は、データ転送をもたらす結果となる制御に加え
て周辺素子の指令が開始される経路を提供する。
次に第1図の制御領域36を更に詳細に示す第2図にお
いては、制御領域36は別のロジックおよび回路を含む
が、本発明の目的のたぬにはこのロジックは第2図に示
されるものに限定されている。第2図はまた、内部バス
38と、モニター・ロジック22と、読出し専用記憶装
置(RO8)24を示している。
第21凶においては、ブロックの右上隅部に瞬接する数
字は、ブロックにより表わされるレジスタに@1れる情
報のビット数を表わす。
RO824は、ファームウェアのマイクロ命令を保持す
ることができる読出し専用メモリー(ROM)、壕f、
ニーはランダム・アクセス・メモリー(IIl′AM)
丑たけ他のどんな形態の記憶素子でもよい。RO824
は、中央演算処理装置の動作を制御するため、特にCP
U20のソフトウェア命令を実行するためマイクロプロ
セッサ30によ’l使用されるファームウェア・マイク
ロ命令(即ち、制御ワード)を保有する。マイクロプロ
セッサの機械サイクル毎に、制御ワードがRO824か
ら取出される。
RO824は、この読出し専用記憶装置24がら取出さ
れるマイクロ命令ワードを受取るROSデータ・レジス
タ65に対して接続されている。
各マイクロ命令は、アドレス部分および指令部分全保有
する。マイクロ命令ワードI/(Zおけるアドレス部分
は、マイクロプロセッサ30により実行されるべき次の
マイクロ命令となる読出し専用配憶装置24から読出さ
れた次の場所のアドレス全識別する。マイクロ命令の指
令部分は、その時のマイクロ命令の実行の間マイクロ命
令により実施される操作を識別する。
マイクロ命令ワードのアドレス部分は、例えば望筐しい
実施態様においてはマイクロ命令ワードのビット0乃至
12(第3図参照)に保持される予め定められたビット
番号に保持することができる。マイクロ命令の指令部分
はまた、例えば望ましい実施態様においてはマイクロ命
令ワードのビット13乃至47(第3図参照)に保持さ
れる予め定められたビット番号に保持することができる
この指令部分は、更に、マイクロ命令の副指令を構成す
るフィールド数に分割することができる。
第3図に関してマイクロ命令ワードを更に詳細に記述す
る前に、第2図の他の要素について記述する。モニター
・ロジック22はCPU20に関する状態情報全提供し
、この状態がファームウェアによりテストできるように
テスト・フリップフロップ50にロードされる。モニタ
ー・ロジック(45) 22からの動的状態の情報の10ビツトの保持に加えて
、テスト・フリップフロップ50は種々のCPUの選択
の状態をサンプルする5つのビットを保持する。このC
PU選択ビットは、性格において静的と考えるべきで、
特定のハードウェアの選択がデータ処理/ステム内部に
存在するかどうかを表示する。更に、テスト・フリップ
フロップ50はセット−fたはリセットされるため、ま
たはファーウェアの制御下でビットを転送さ−ぎるため
使用可能な4つの制御フリップフロップを保有する。こ
れらの4つの制御フリップフロップはファームウェアに
よりテスト可能である。また、ALUのビット16から
の桁送りまたは桁溢れがあったかどうか、またはALU
のピッ)20からの桁送りまたは桁溢れがあったかどう
か、または内部バス38におけるあるビットが0に等し
いかどうが、等の如き動的情報で各ファームウェア・サ
イクル毎にロードされる10の一時フリップフロップが
テスト・フリップフロップ50に存在する。これらの1
0の一時フリップ70ツブも1だファーム(46) ウェアによってテスト可能である。
Fレジスタ51は、内部バス38からロードされる16
ビツトの命令レジスタである。Fレジスタの全てのビッ
トはファームウェアによりテスト可能である。Fレジス
タ51の下位の4ビツトはまた、5ビツトのカウンタで
あるFカウンタ52の下位の4ビツトヲ構成する。Fカ
ウンタ52は、内部バス38からロードすることができ
る5ビツト・カウンタである。Fカウンタ52は増進ま
たは減退させることができる。Fカウンタ52の4つの
下位のビットは寸だ、16ビツトのマスクがファームウ
ェアの制御下で内部バス3Bに置くことができるように
復号される。
ソフトウェア割込みを生じることができる5つの可能な
条件がある。これらの条件はソフトウェア割込みレジス
タ53においてラッチされる。ソフトウェア割込みブリ
ネット54は、これらの条件の優先順位を付して主分岐
ロジック57に対する入力のベクトル化されたアドレス
を生成する。
制御領域36の次のアドレス生成部分55は、(47) 読出し専用記憶装置(7t’Q、S’)24の順序付け
に必要なロジックを保有する。テスト分岐ロジック56
は、ROSアドレス・レジスタ63に対する2通りの分
岐アドレスを生じることができる64のテスト条件全テ
ストするために使用される。これらの64のテスト条件
は、ファームウェアの制’1ijlJ下でテスト分岐ロ
ジック56の出力がアドレス・マルチプレクサ160に
対する情報の1ビツトとしてテスト可能である。テスト
分岐ロジック56に対する入力は、テスト・フリップフ
ロップ50、Fレジスタ51およびFカウンタ52によ
って提供される。
主分岐ロジック57は、15の主なテスト分岐マトリッ
クスを与える。これらマトリックスに対する入力の大部
分はF゛レジスタ51らの(種々の組合せにおける)も
のである。他の入力は、モニターおよびテスト・フリッ
プフロップ50の選択ビットからのものである。主分岐
ロジック57の出力151は、アドレス・マルチプレク
サ160に対して与えられるアドレス情報の4ビツトで
あ(4日) る。
レジスタ58は、ハードウェア割込みを生しることがで
きる10の可能な条件と対応する情報のピッ[+[供す
る。ハードウェア割込みブリネット59は、これらの1
0の可能な条件の曖先順位を付して、これら10の可能
な条件の内の1つが生じる時12のベクトル化された)
・−ドウエア割込みアドレスを生じるためアドレス・マ
ルチプレクサ262により1更用される4ビツトの出カ
ケ生じる。
アドレス・マルチプレクサ160の出力は、ROSアド
レス・レジスタ63にロードされてRO824からの次
のマイクロ命令を取出すため使用されることになる12
ビツトの名目の次のアドレスを生じる。この12ビツト
のアドレスは、もしハードウェア割込みが生じなければ
この名目の次のアドレスが次のアドレスとしてのみ使用
されるという意味において名目的である。もしハードウ
ェア割込みが中断中であるかあるいは中断するハードウ
ェア割込みがマイクロ命令ワード内の(49) 割込み禁止ビットのセットによって禁止されるならば、
ハードウェア割込みは生じない。(第3図におけるビッ
ト34参照) アドレス・マルチプレクサ262は、マルチプレクサ1
 60により生成される12ビツトの名目の次のアドレ
スと、ブリネット59からの4ビツトを8つの先行する
Oビットと組合せることにより形成されるベクトル化ハ
ードウェア割込みアドレスとの開音選択するγこめ使用
される。アドレス・マルチプレクサ262の出力は、R
OSアドレス・レジスタ(A’AR)63に対してロー
ドされる12ビツトの次のアドレスでめる。RAR63
の出力は、RO824から収出されるべき次のマイクロ
命令のアドレス生成部分するγこめ使用される。17A
R63の出力は1だROSアドレス履歴レジスタ66に
対する入力となる。
ROSアドレス履歴レジスタ66は、次のマイクロ命令
アドレスが生成されてROSア上゛レス・レジスタ63
に対して転送されつつある間ROSデータ・レジスタ6
5に保有されるこの時のマイ(50) クロ命令の実行の際早期に、ROSアドレス履歴レジス
タがこの時のマイクロ命令のアドレスを保持するように
設けられている。このその時のマイクロ命令アドレスは
、もしその時のマイクロ命令がその使用全要求するなら
ば、次のマイクロ命令アドレスの生成の際に使用される
。ROSアドレス履歴レジスタ66からのその時のアド
レスは1だ、マイクロサブルーチンおよびノ・−ドウエ
ア割込みサービス・ルーチンからの戻しアドレスとして
増分機構された後に使用される。
増分機構64ば、ROBアドレス履歴レジスタ66に保
有されるアドレスを予め定めfこ数だけ(例えば、望ま
しい実施態様においては1だけ)増分する。増分機構6
4は、PUSHマイクロ指令の間戻りアドレス・スタッ
ク7o全戻りマルチプレクサ61を介してソース化する
1こめ使用されることになる12ビツトの増分機構であ
る。増分機構64の出力は壕だ、アドレス・マルチプレ
クサ160およびアドレス・マルチプレクサ262を介
してINCおよびINCKマイクロ指令の1こめのRA
R63に対[7て次のROSアドレス11区ヲ与えるた
めにも使用される。このINCマイクロ指令は次のRO
Sアドレスが1だけ増分されるその時のROSアドレス
となることkWi定し、INCKマイクロ指令は次のR
OSアドレス匝がその時のアドレス値プラス1となるべ
きこと、およびマイクロ命令内の他の未便用のアドレス
・フィールド・ビットにおいて指示さI″1.る如き定
数が内部バス38に置かれるべきこと全指定する。
戻りアドレス・スタック70は、サブルーチンおよびハ
ードウェア割込みの戻りアドレスの格納のために使用さ
れる4×12ビツトの後入れ先出しくLIFO)アレー
である。戻りアドレス・スタック70はクリア期間中1
6進数001の値に初期化され、その最下部の場所は各
ポツプ(戻し)マイクロ指令の間001(16進数)(
Cセットされる。PUSHマイクロ指令は、戻りアドレ
ス・スタック70の最上部ケして増分機構64の出力に
よりソース化させる。ハードウェア割込みは、s−9ア
ドレス・スタック70の最上部をして名目の次のアドレ
スであるアドレス・マルチプレクサ160の出力により
ソース化させる。増分機構64は、 Rosデータ・レ
ジスタ65の次の指令部分の1つのサフフィールドがP
USHマイクロ指令を指定する時、戻りアドレススタッ
ク70に対してROSアドレス履歴レジスタ66からの
増分されたアドレス履歴を転送する。このPUSHマイ
クロ指令は、マイクロプログラムのサブルーチンへの分
岐の間実行中のマイクロプログラムのマイクロ命令の戻
りアドレスの格能を可能にする。
PUSIiマイクロ指令に応答して、増分機構64はR
Osアドレス履歴レジスタ66から複数のレジスタ71
乃至74からなる戻りアドレス・スタック70に対する
増分されfこその時のROSアドレス全転送する。機能
的には、戻りアドレス・スタック70は列状に配列され
fcH数の作業レジスタである後入れ先出し記憶集子で
ある。このスタックからの唯一の出力は、アドレス・マ
ルチプレクサ160に対して接続された最上部のレジス
タ71からである。戻りアドレス・スタック(53) 70に対する唯一の入力は最下部と最底部からのもので
ある。1つのアドレスがスタック70に対してブツシュ
される時、これはこのスタックに既にある他のアドレス
が1つのレジスタで1列だけ下方に下げられた後レジス
タ71に行く。1つのアドレスか列から商云(ポツプ・
アップ)される時、これは最上部のレジスタ71により
与えられ、戻りアドレス・スタック70に格納された各
アドレスは1つのハードウェア・レジスタを列方向で上
方に移動する。このポツプ操作の間、空白状態の底部の
レジスタ74はアドレス001(16進数)でロードさ
れる。このスタックはカードのデツキとして視認が可能
であるが、これにおいてはこのデツキのカードに対する
アクセスは一時に1つずつデツキの最上部に関してカー
ドヶ加除することによってのみ可能であり、1だ各カー
ドがデツキの最上部から取り出される毎に予め定めたあ
るカード(16進数値001)がデツキの底部に対して
加えられる。
このように、実行中のマイクロプログラムかあ(54) るサブルーチンに対して分岐する時ROSアドレス履歴
レジスタ66から与えられる如き増分され1こ宅の時の
アドレスを格納する。更に、生じfこ特定のハードウェ
ア割込みにより決定されfこ如きROS 24内の予め
定めた場所に対するファームウェアの実行をベクトル化
するノ・−ドウエア割込みが生じる時は常に、戻りアド
レス・スタック70はアドレス・マルチプレクサ160
により名目の次のアドレス出力を格納する。戻りアドレ
ス・スタック70に格納され1ここれらのアドレスは、
マイクロプログラムへの分岐tfこけマイクロプログラ
ム割込み全取扱うルーチンへの分岐の発生を除いて実行
されることになるマイクロプログラムの次のステップを
指示する。あるマイクロプログラムのサブルーチンへの
分岐が生じる時、あるいはハードウェア割込みが生じる
時これらのアドレスが格納されるため、戻りアドレス・
スタック70におけるアドレスは、あるサブルーチン育
たばハードウェア割込み取扱いルーチンにおける最後の
マイクロ命令の実行と同時に、このマイクロプログラム
を適正なシーケンスに戻すことになる。このことは、以
下に記述される如き第4図を照合することにより更によ
く示されよう′。
第3図は、重重しい実施態様のマイクロプロセッサ30
のファームウェアのマイクロ命令ワード・フィールドを
示している。このマイクロ命令ワードは、48ビツト(
ビットO〜47)からなっている。ビット0乃至12は
ROSアドレス・フィールドとして使用され、ビット1
3乃至17はレジスタ・ファイルにおけるレジスタの説
明のため使用され、ビット18乃至22はALUの演算
論理機能およびそのボートに対する入力の制御のため使
用され、ビット23乃至25はバス制御としで使用され
、ビット26乃至30はレジスタの変更フィールドとし
て使用され、ビット31乃至33はメモリー管理装置コ
ントローラとして使用され、ビット34はハードウェア
割込みの発生を禁止する1こめ使用され、ビット35乃
至47は特    ′殊な制御フィールドとして使用さ
れる。
特殊な制御フィールド(RDDTフィールド35乃至4
7)は、マイクロ命令ファームウェア・ワードにおける
他のフィールドのあるものの変更および追加のfこめ単
位さあれる。特殊制御フィールドは、あるマイクロサイ
クルの間3つ丑での同時のマイクロ指令に!供する。こ
の特殊制御フィールドは、第3図に示されるように4つ
のサブフィールド(A乃至D)に分割される。このサブ
フィールドのいくつかの解釈は他のサブフィールドの内
容に依存している。
前記のマイクロ命令の48ビツトは、マイクロ命令の実
行の開始においてROSデータ・レジスタ65に対して
ロードされる。これら48のビットは、信号RDDTo
o乃至RDDT47と呼ばれる。
ROSアドレス・フィールドは13ビツト(RDDTO
O乃至RDDT 12 )全含み、あるマイクロプログ
ラム・シーケンスにおける次のファームウェア・ステッ
プのアドレス全生成するため使用される。この次のアド
レス全生成するための方法は、下表1に示される如(R
OSアドレス・(57) フィールドの最初の5つのビットにより規定される。即
ち、 衣  I RDDTビット 01234    動作内容 I  XXXX   飛越し Ol 、IYXX   テスト分岐 001、Y、¥   主要分岐 OOOI X  定数による増分 00001   定数によらない増分 ooooo   戻り(POPマイクロ指令)マイクロ
指令PUSHは、ilにリストされ1こ最初の5つの操
作のいずれとも関連して使用することができる。このマ
イクロ命令PUSHは、飛越し′!fこは物体のマイク
ロ指令と組合せて使用される時、マイクロプログラマが
分岐させられたサブルーチンの完了と同時に戻ることを
欲する戻りアドレスを戻りアドレス・スタック70に対
して格納させることを許容する。マイクロプログラムを
書く人によるこの戻りアドレスの格納を容易に(58) する1こめ、マイクロ指令PUSHは増分機構64によ
り1だけ増分されるROSアドレス履歴レジスタ66の
内容ヲ戻りアドレス・スタック70の最上部にプッシュ
する。戻り(pop)マイクロ指令は、この時、マイク
ロプログラムのサブルーチン全要求するマイクロ命令の
後に最初の場所に対する呼出されたサブルーチンの最後
のファームウェアのステップとしてマイクロプログラマ
により使用されるのである。
ilにおいて記述される6つの操作により規定きれる次
のアドレス生成に対する1つのし0外は、ハードウェア
割込みのそれである。あるハードウェア割込みが開始さ
れると、次のROSアドレスが1つのハードウェア・ベ
クトルとして与えられ、その時のファームウェア・ワー
ドのROSアドレス・フィールドにより生成されるR、
OSアドレスは、戻りマルチプレクサ61の出力として
選択されて戻りアドレス・スタック70に対してプッシ
ュされるアドレス・マルチプレクサ160の出力により
戻りアドレス・スタック70の最上部に置かれることに
なる。もし表1に示される最初の5つの操作の内の1つ
と関連してマイクロ指令PUSH(サブフィールドAお
よびBの特殊なコーディングと関連してビットRDDT
42乃至RDDT44における特殊な制御フィールドC
により規定される如き)が使用されるならば、マイクロ
プログラマは11こ、ハードウェア割込みの発生の結末
として+iされる競合するブツシュ操作を阻止する1こ
め、RDDTビット34が2進数1であることを指示す
ることによってノ・−ドウエア割込みを禁+LLなけれ
はならない。あるファームウェアのマイクロプログラム
・シーケンスの完了に先■つで何時でも・・−ドウエア
割込みが(通常、外部の非同期事象の発生により)生じ
得る1こめ、ハードウェア割込みの発生を許容するγこ
め特別な自己慮が取られなければならない。
表1に規定された6つの操作の分岐能力はページ分岐お
よびバンク分岐操作と呼ばれる。ページはRO824内
部の64の連続する記憶場所として定義され、バンクは
ROS 24内の1024の記憶場所(16ページ)と
して定義される。テスト分岐操作に対する分岐の境界は
、1つのページ内のいずれかの場所に限定されている。
主要分岐のfこめの分岐境界は1つのバンク内のどの場
所にも限定される。衣1の残る4操作は、1つのバンク
から他のバンクへの分岐または増分操作が可能である。
飛越し操作は、ROS24の可能な4096の場所のど
れかに対する分岐全可能にする衣1の唯一の次のアドレ
ス生成法である。これは、ROSアドレス・フィールド
内で実行されるべき次のファームウェア・マイクロ倫令
の12ビツトの直接アドレスを提供子ることにより達成
されるのである。
RRDTビット0が2進数1と等しい時、ノア0Sデー
タ・レジスタ65に保持される如きその時の(61) のROSデータ・ワード(ファームウェアのマイクロ命
令)のA’ D D Tビット1乃至12は、熱論−介
入するハードウェア割込みが生じないことを仮定シて、
ファームウェアのマイクロプログラムにおける次のアド
レスとして、アドレス・マルチプレクサ160とアドレ
ス・マルチプレクサ62を介してROSアドレス・レジ
スタ63に対し直接送られる。ハードウェア割込みが生
じる場合は、この名目的な次のアドレスは戻りアドレス
・スタック70の最上部に対してブツシュされ、プリネ
ット59の4ビツト出力に対して8つの上位の2進数0
のピッIf連結することにより生成される如く生成され
fこハードウェア割込みベクトル・アドレスがアドレス
・マルチプレクサ262により出力される侍医のROS
アドレスとしてROSアドレス・レジスタ63に対して
ロードされることになる。
(62) マイクロ指令PUSH(%別の制御フィールドCにより
定義される如き)は飛越し操作と共に使用することがで
きる。バー ドウエア割込みの禁止ビットRDDT34
は、マイクロ指令PUSHが飛越し操作と関連して使用
される時、ハードウェア割込みを禁止するfこめ2進数
0にセットされなければならない。マイクロ指令PUS
Hの間、ROSアドレス履歴レジスタ66に保持される
その時のROSアドレスはlだけ増分され、RDDTビ
ット1乃至12に指定される如き次のアドレスがROS
アドレス・レジスタ63に対してロードされる前に、戻
りマルチプレクサ61によって戻りアドレス・スタック
70の最上部に対してブツシュされる。
表1のテスト分岐操作は、ビット2乃至8におけるRO
Sアドレス・フィールドの一部として指定される64の
テスト条件の1つの結果を用いる2通りの分岐である。
全てのテスト分岐は、その時の4−ジ内の分岐に限定さ
れる、即ちテストの結果として生成される次QROSア
ドレスは常に(テストの結果、即ち真か偽であるかに従
って)2つの場所の内の1つとなり、8つの場所は個々
に存在するがROSアドレス・レジスタ68によるその
時のアドレス(64の場所)内にある。即ち、テスト分
岐の結果に従って、名目の次のRosアドレス内のビッ
ト位置7.8.10,11および12に対してそれぞれ
使用されるROSアドレス・フィールドのビット2.9
.10,11および12からの6つの下位のビットと連
結された(ROSアドレス履歴レジスタ66がらの)ソ
ノ時のROSアドレスから6つの上位ビットから取るこ
とにより決定された場所から次のマイクロ命令が取出さ
れることになり、テストの結果(それぞれ真または偽と
対応する1まだは0)が名目の次のROSアドレス内の
ビット位置9として使用されることになる。
その時のファームウェアのマイクロ命令ワードにおける
ビット0乃至13に分割される如きテスト分岐の結果と
して生成された前述の如きビットからなるこの名目の次
のROSアドレスは、介入するハードウェア割込みが生
じないものとして次のROSアドレスとなる。ハードウ
ェアの割込みが生じるならば、このアドレスは戻りアド
レス・スタック70の最上部に置かれ、生成されたハー
ドウェア割込みベクトル・アドレスはこれをROSアド
レス・レジスタ68における次のROSアドレスの内容
として置換する。
マイクロ指令PUSHはまたテスト分岐操作と共に使用
することができる。前述の如く、ハードウェア割込みは
、マイクロ指令PUSHが用いられるならば(2進数1
に等しいRDDTビット34をセットすることにより)
禁止されなければならない。もしマイクロ指令PUSH
がテスト分岐操作と関連して用いられるならば、(RO
Sアドレス履歴レジスタ66からの)テスト分岐マイク
ロ命令のアドレスであるその時のRosアドレスが戻り
アドレス・スタック7oの最上部に置かれ、マイクロ指
令はテスト分岐ロジック56の出力により決定される如
く名目の次のアドレスに対して分岐することになる。
主要分岐操作は、ビット5乃至8におけるROSアドレ
ス・フィールドの一部として指定される15のテスト・
グループの結果を用いる16通りの分岐となる。全ての
主な分岐はその時のバンク(1024の場所)内の分岐
に限定される。即ち、主な分岐テストの結果として生成
される名目の次のROSアドレスは(主な分岐マトリッ
クスの出力に従って)常に16の場所の1つにあり、離
散状態であるがバンク(1024の場所)内にある16
の場所はその時ROSアドレス履歴レジスタ66により
アドレス指定される。名目の次のRosアドレスはこの
名目の次のROSアドレスがらビット0および1を取る
ことにより、これらを名目の次のROSアドレスにおけ
るビットoおよび1として用いることにより、またRO
Sアドレス・フィールドからビット8.4.9.10.
11および12を取りこれらをそれぞれ名目の次のRO
Sアドレスにおけるビット2.3.8.9.10および
11として用いることによって生成される。
更に、名目の次のROSアドレスにおけるビット4およ
び7は、主要分岐ロジック57により4ビツト出力によ
り決定される。
前述の如くROSデータ・レジスタ65に保有されるそ
の時のファームウェアマイクロ命令ワードのビットO乃
至12に指定された主要分岐操作の結果として生成され
る名目の次のROSアドレスは、介入するハードウェア
割込み出力が生じないものと仮定する次のROSアドレ
スである。ハードウェア割込みが生じるならば、この新
たに生成された名目の次のROSアドレスは戻りアドレ
ス・スタック70の最上部に置かれ、生成されたハード
ウェア割込みベクトル・アドレスはこれを7ンAR68
における次のROSアドレスとして置換する。
テスト分岐操作の場所におけるように、マイクロ指令P
 U S Hは主分岐操作と共に使用することができる
。再び前に示したように、・・−ドウエア割込みはビッ
トRDDT34を2進数1にセットすることにより禁止
されなければならない。もしマイクロ指令PUSHが主
分岐操作と関連して使用されるならば、主分岐マイクロ
命令自体のCROSアドレス履歴レジスタ66からの)
アドレスであるその時のROSアドレスプラス1は戻り
アドレス・スタック70の最上部に置かれることになり
、マイクロプログラムは主分岐ロジック57の出力によ
り決定される如き名目の次のアドレスに対して分岐する
ことになる。
その時のマイクロ命令のROSアドレス・フィールド(
13ビツトのフィールドのビットO乃至3)において指
定される如き定常操作(マイクロ指令INCK)による
増分操作は、■だけ増分されるROSアドレス履歴レジ
スタ66のその時の1直を次のマイクロサイクルに対し
てROSアドレス・レジスタに置かせる。この次のアド
レスの生成に加えて、残る9ビツトcRDDTビツト4
乃至12)は、その時のマイクロサイクルの間20ビッ
ト巾の内側バス38に対して8ビツトの定数プラス充填
数を生じるために使用される。
ROSアドレス履歴レジスタ66に含まれるその時のR
q Sアドレスは増分機構64により増分され、その結
果は、定数マイクロ指令による増分があるマイクロ命令
のROSアドレス・フィールドにおいて指定される時ア
ドレス・マルチプレクサ160およびアドレス・マルチ
プレクサ262を介してROSアドレス・レジスタ63
に対して戻される。もしハードウェア割込みが生じるな
らば、この新たに生成された次のアドレスは戻りマルチ
プレクサ61を介して戻りアドレス・スタック70の最
上部に置かれ、ハードウェアが生成した割込みベクトル
・アドレスは次のROSアドレスで使用されるようにR
OSアドレス・レジスタ63に置かれることになる。副
指令PUSHは増分操作と共に使用することができる。
全ての副指令PUSHにおける如く、副指令PUSHが
増分操作と関連して使用する時、−・−ドウエア割込み
はRDDTビット34を2進数1にセットすることによ
り禁止されなければならない。もしマイクロ指令PUS
Hが増分操作と関連して使用されるならば、矢のROS
アドレスになることに加えて、1だけ増分されるその時
のROSアドレスが戻りアドレス・スタック70の最上
部に置かれることになる。
マイクロ命令のROSアドレス・フィールドにおいて指
定される如き増分操作(INC)副指令は、定数が内側
バス38に対して生成されないことを除いて、定数(マ
イクロ指令INCK)Icよる増分のため前述のものと
同じ操作を開始する。
戻り操作(マイクロ指令POP)は、戻りアドレス・ス
タック70の最上部の内容を次のマイクロサイクルに対
するROSアドレスとして使用されるようにアドレス・
マルチプレクサ160とアドレス・マルチプレクサ26
2を介してROSアドレス・レジスタ63にロードさせ
る。更に、001(16進数)のROSアドレスは、戻
りアドレス・スタック70が1つの場所だけポツプ操作
される毎に、レジスタ74に対するスタックの底部にロ
ードされる。10ROSアドレスによる戻りアドレス・
スタック70の底部のこのローディングは、スタックの
過剰ポツプ操作の場合を検出するため用いられる。この
スタックの過剰ポンプ操作は、RO8場所1にいて開始
するマイクロフロクラムのエラー・シーケンスに対して
マイクロプロセッサがベクトル化される結果となる。戻
り操作(マイクロ指令POP)はROSアドレス・フィ
ールドのビット0乃至4により完全に指定されるため、
ROSアドレス・フィールドのビット5乃至12は戻り
操作の一部として未使用である。
戻り操作がROSアドレス・フィールドのビット0乃至
4において指定される時、介入する・・−ドウエア割込
みが生じないものとして、ROSアドレス・レジスタ6
3が戻りアドレス・スタックの最上部の内容を受取る。
・・−ドウエアの割込みが生じる場合には、戻り(即ち
ポツプ)操作は有効にバイパスもしくは打消されること
になる。戻り操作の間・・−ドウエア割込みが生しる時
のスタックのポツプ操作のこの取消しは、戻りアドレス
・スタック70の最上部からの戻りアドレスのポツプ操
作、および即時に同じマイクロサイクル以内におけるこ
の操作の戻りアドレス・スタック70の最上部に対する
ブツシュ・バック操作の論理的な相当操作である。これ
は、使用される戻りアドレス・スタックがマイクロプロ
グラムのサブルーチン呼出しおよびノ・−ドウエアの割
込みの両操作のだめの戻りアドレスを含むことを許容す
る戻り操作の間にハードウェア割込みが生じる時、戻り
アドレス・スタック70のポツプ操作のこの取消しまた
はバイパスである。
ハードウェア割込みルーチンのだめの戻りアドレスの格
納と関連するスタックに対するブツシュ操作に、マイク
ロプログラム・サブルーチンから戻る時またはハードウ
ェア割込みサービス・ルーチンの完了と同時にスタック
において実施されるポツプ操作を取消させることにより
、戻りアドレス・スタック70は反対方向に同時に移動
すること、あるいは1つのマイクロサイクルの間最初に
ポツプ・アップ操作を次いでプッシュ・ダウンすること
が可能である必要はない。反対方向におけるこの同時の
運動が阻止される方法(即ち、ブツシュ操作がポツプ操
作を取消す方法)については、以下において第5図に関
して更に詳細に説明することにする。以下の第4図の論
議において判るように、ハードウェア割込みの発生と関
連するポツプ操作の発生による戻り操作と関連するスタ
ックのポンプ操作のこのような取消しは、ハードウェア
の割込みルーチンがそのマイクロプログラムされた割込
みサービス・ルーチンにおける最後のステップとして戻
り操作を実施することになるため、マイクロプログラム
内の制御のフローに悪影響を及はすことはない。
特別の制御フィールド(RDDT85乃至47)におい
て符号化されるマイクロ指令PUSHは、望ましい実施
態様におけるマイクロプロセッサ80内の結果が指定さ
れないため、ROSアドレス・フィールド(RDDTバ
ス0乃至12)内で符号化される戻り操作と共に同じマ
イクロ命令において使用されてはならff(1)。
前述の如く、ノ・−ドウエア割込みは固定されたROS
アドレスに対して分岐を強制する。このROSアドレス
は、レジスタ58からの入カドして種々のエラー信号お
よび割込み要求を有する優先順位の回路網(プリネット
59)により決定される。・・−ドウエア割込みは、次
のファームウェアが生じるROSアドレスを戻りアドレ
ス・スタック70の最上部にブツシュさせる。次のRO
sアドレスが踊りマイクロ指令を介して戻りアドレス・
スタックから生じたものであれば、戻りアドレス・スタ
ック70のポツプ操作が禁止される。
スタックを二重にブツシュする要求を阻止するためマイ
クロ操作1) U SHが行なわれる時は常にノ1−ド
ウエア割込みは禁止されなければならず、最初のブツシ
ュ操作はマイクロ指令PUSH自体と関連し、第2のブ
ツシュ操作はノ・−ドウエア割込みのだめの戻りアドレ
スの節減と関連させられる。
ハードウェア割込み禁止フィールド(RDDTビット3
4)が2進数1である時、ハードウェア割込みは禁止さ
れ、非エラー条件のハードウェア割込み(メモリー再生
およびデータ要求と関連する如き)が禁止される(その
時のマイクロ命令の実行および次のマイクロ命令の実行
間に介入しないように阻止される)。プリネット59に
対するハードウェア・エラー条件入力(システム・クリ
ア、存在しない資源へのアクセスの試み、アクセスの妨
害、またはメモリー・パリティ・エラーの如き)はRD
DTビット34の制御下にはす<、与えられた2つのマ
イクロサイクル間に介入することができる。これらのエ
ラー条件と関連する・・−ドウエア割込みは禁止できな
いこと、転送マイクロ指令PUSHを含むマイクロ命令
の間に生じ得ることは、これらの禁止できないエラー条
件と関連するハードウェア割込みサービス・ルーチンが
終りに戻り操作を行なわないため、また従って戻りアド
レス・スタック70の内容が有効であるかどうかには依
存しないため、問題を生じることはない。
RDDTピント34が2進数0である時、全てのハード
ウェア割込みが許容される。
第4図は、100により示される如きマイクロプログラ
ムにおける王ルーチンを形成するファームウェアのマイ
クロ命令シーケンスである。主ルーチン100はそれ自
体主なマイクロプログラム・ルーチンまたはマイクロサ
ブプロラム・ルーチンであり、ある機能を実施するよう
構成されたマイクロ命令の共通のシーケンスである。マ
イクロ命令のどの共通シーケンスに対する分岐、でも実
施することができることが望ましい。事例の目的のため
には、最初のレベルのサブルーチンに対して102で示
されるものと第2のレベルのサブルーチンに対して10
4で示されるものの2つのマイクロサブルーチンが示さ
れている。これらのサブルーチンへの分岐操作はルーチ
ン捷たはサブルーチンにおけるどの場所でも生じること
ができる。
更に、マイクロルーチン100およびその関連するマイ
クロサブルーチンのどれかの実行中に生じるどんな・・
−ドウエア割込みでも処理するため・・−ドウニア割込
みサービス・ルーチンを実施することができることが望
ましい。事例の目的のためには、第1のハードウェア割
込みサービス・ルーチンに対しては106で、また第2
のハードウェア割込みサービス・ルーチンに対しては1
08で示される2つのハードウェア割込みサービス・ル
ーチンが示される。第4図においては、マイクロプログ
ラムにおける矩形状のブロックがマイクロ命令を示して
いる。マイクロ命令の内容は、EOSデータ・レジスタ
65に保有される如きRO824の出力により表示され
る。
第4図においては、第1のレベルのサブルーチンに対す
る飛越しを決定するマイクロ命令がマイクロ命令Pにお
いて見出される。このマイクロ命令は、マイクロ命令Q
に対する条件付きまたは無粂件分岐を有するROSアド
レス・フィールド、およびハードウェア割込みを禁止す
るためセットされるハードウェア割込みビットと共にマ
イクロ指令PUSHを表示する特別な制御フィールドと
からなる。マイクロ命令QVC分岐し、戻りアドレスを
ブツシュし、ハードウェア割込みを禁止する(77) このファームウェアのマイクロ命令は、矩形状ブロック
Pに示されている。このマイクロ命令がマイクロプログ
ラムの追従の間に読出される時、以降の諸操作が生じる
。マイクロ命令のROSアドレス・フィールドは、分岐
操作が実施されることを表示する。この特別な制御フィ
ールドは、ROSアドレス履歴レジスタ66におけるそ
の時のROSアドレスが増分機構64により増分されて
、戻しマルチプレクサ61を介して戻りアドレス・スタ
ック70の最上部にブツシュされるこ吉を表示する。こ
れはROSアドレス履歴レジスタ66の内容を取る増分
機構64により達成されるが、このレジスタはこの時点
において命令PのROSアドレスを保有し、これを1だ
け増分して、その結果増分機構64の出力は命令(P+
1)と関連するアドレスとなり、これを戻りマルチプレ
クサ61を介してレジスタ71である戻りアドレス・ス
タック70の最上部のレジスタに格納する。このように
、この時点においては、レジスタ71はアドレス(P+
1)を保有するこ吉になる。RO8lr7Q) 24のアドレスPに常駐するこのマイクロ命令はまた、
場所Pにおけるマイクロ命令の実行と場所Qにおけるマ
イクロ命令である第1のレベルのサブルーチンの最初の
命令との可能におけるハードウェア割込みの発生を禁止
するようセットされたハードウェア割込みビットを有す
る。
場所Qに8いて示される如き分岐の発生に続いて、マイ
クロ命令の通常のシーケンス動作が生じる。もし第1の
レベルのサブルーアン102が矩形状のブロックRに示
される如き別のサブルーチンを要求するならば、あるマ
イクロザブルーチンへの別の分岐が実行される。このよ
うに、命令Pにおいて生じるものと同じステップは、第
1のレベルのサブルーチン102が第2のレベルのサブ
ルーチン104に対して分岐する時命令R【ついても妥
当する。このため、命令Rにおいては、条件付きまたは
無条件分岐がRO824のアドレスSにおいて開始する
第2のレベルサブルーチン104に対して実施される。
命令Rが実行される時、ROSアドレス履歴レジスタ6
6におけるその時のROSアドレスが増分機構64によ
り1だけ増分され、また戻りアドレス・スタック7oに
対して転送されて最上部のレジスタ71において保持さ
れ、レジスタ71の前の内容はレジスタ72にブツシュ
・ダウンされる。このように、マイクロプログラムの実
行におけるこの時点においては、レジスタ71はアドレ
ス(S+1)を含み、レジスタ72はアドレス(P+1
)を含んでいる。
アドレス(S+1)は第2のレベルのサブルーチンがそ
の完了と同時に戻るべき第1のレベルのサフ/l/−チ
ン内の命令であり、まだアドレスCP+1)は第1のレ
ベルのサブルーチンがその完了と同時に戻るべき主ルー
チン内のアドレスである。
場所Rにおけるマイクロ命令のROSアドレス・フィー
ルドは、マイクロプログラムを矩形ブロック(マイクロ
命令)SK対して分岐させることになる値を有する。
第4図に示されるように、第1のハードウェア割込みは
矩形ブロックRと関連するマイクロ命令の実行中中断状
態となる。この最初の割込みは、2進数1と等しくなる
ようにハードウェア割込み禁止ビットCRDDTビット
34)のセットにより禁止することができる形式のもの
であり、従ってハードウェア割込みはマイクロ命令Rに
続くファームウェアの通常のフローを転向させることは
許されない。従って、マイクロ命令Rの実行の完了と同
時に、場所Sへの分岐は完了し、矩形ブロックSと関連
するマイクロ命令が実行されることになる。もし最初の
割込みがエラー割込み形式のものであったならば、ハー
ドウェア割込みはマイクロ命令Rの完了と同時に生じる
ことになり、マイクロプログラムの実行のフローはハー
ドウェアのエラー割込みと関連する場所に対してベクト
ル化されることVCなる。
マイクロ命令Sの実行中、RO824から取出されるべ
き次のマイクロ命令におけるROSアドレスが第4図の
説明から判るように計算される。
ファームウェアの実行を場所Vにおいて開始する第1の
サービス・ルーチンに対してベクトル化するハードウェ
ア割込みの発生が存在しなければ、通常の次のアドレス
は(S+1)となる。このアドレスは、ll0Sデータ
・レジスタ65におけるROSアドレス・フィールド内
のビットがテスト分岐ロジック56または主分岐ロジッ
ク57からのビットの付加を行なう力)どうかに拘らず
アドレス・マルチプレクサ1 60を介して多重化され
ることになる飛越しもしくは分岐操作のいずれかを表示
することができるROSデータ・レジスタ65に含まれ
る如きマイクロ命令SのROSアドレス・フィールドを
使用することによって決定されることKf、fる。ある
いはまた、もし増分操作がマイクロ命令SのROSアド
レス・フィールド内に表示されるならば、ROSアドレ
ス履歴レジスタ66の内容は増分機構64により1だけ
増分されることになり、また12ピツト出力はマルチプ
レクサ160を介して多重化されることになる。
いずれの場合においても、アドレス・マルチプレクサ1
60の出力はアドレス(、S’+1)となる。
マイクロ命令Sは割込みを禁止せずハードウェア割込み
は中断されるだめ、アドレス・マルチプレクサ160の
出力は戻しマルチプレクサ61を介して多事化されてレ
ジスタ71に対する戻りアドレス・スタック70の最上
部に対してブツシュされ、アドレス(P+1)はレジス
タ72からレジスタ73に対してブツシュされ、アドレ
ス(P+1)はレジスタ71からレジスタ72に対して
ブツシュされるこ吉になる。同時に、アドレス・マルチ
プレクサ262は、第1のハードウェア割込みと関連す
るアドレスがf?、Osアドレス・レジスタ63に入力
され、ROSOsアドレスジスタ63が矩形ブロックV
と関連するアドレスを保有し、マイクロ命令がRO82
4から取出されるようにプリネット59の出力を介して
多重化されることになる。マイクロ命令Sの実行の完了
と同時に、マイクロ命令VがRO824から取出されて
ROSデータ・レジスタ65における復号および実行の
ため使用することができることになる。
マイクロ命令V乃至Xを含む第1のハードウェア割込み
サービス・ルーチン106の実行について記述する前に
、もしマイクロ命令Rの実行中ハードウェア割込み禁止
マイクロ指令を含i 11ければ、マイクロプログラム
の適正な実行シーケンスを保存するため戻りアドレス・
スタック70の二重ブツシュ噸作が必要とされる状態が
生じることになる。即ち、増分機構64により出力され
る如き戻りマルチプレクサ61 V(対する両方のアド
レス(P+1)は、戻りマルチプレクサ61を介してア
ドレス・マルチプレクサ160により出力される如きア
ドレスSが続く戻りアドレス・スタック70に対してブ
ツシュされなければならないことになる。二車ブツシュ
操作は1つのマイクロサイクルの実行中可能でないため
、ハードウェア割込みの禁止が必要となる。
もしマイクロ命令Rの実行中中断状態となる第1の割込
みがマイクロ命令Rが実行された後ハードウェア禁止ビ
ット34のセットにより禁止可能でないハードウェアの
エラー割込みであった場合、マイクロプロセッサはマイ
クロ命令Vに分岐することになり、第1のハードウェア
割込みサービス・ルーチンがマイクロ命令Sの介入する
実行を開始することになる。しかしこの場合、第1のハ
ードウェア・サービス106は、ハードウェア・エラー
割込みと関連するサービス・ルーチンがポツプ操作と共
に終了しないという点で第4図に示されたものとは異な
ることになる。その代り、これらはあるシステムの再初
期化機能を行なった後に予め定めた点に分岐することに
より終了する。これらのハードウェア・エラー割込みは
、ポツプ操作が割込みが行なわれたマイクロプログラム
の実行を再開する意図を表示する故に、ポツプ操作は行
なわない。禁止可能でないこれらのハードウェア・エラ
ーは、それからの回復を行なうことができる形式のもの
ではなく、従って割込み点への制御の戻しは行なわれな
い。
次にマイクロ命令V乃至Xを含む第1のハードウェア・
サービス・ルーチン106に戻って、命令VおよびWl
およびその間の全ての命令がその内部のハードウェア割
込み禁止マイクロコード(即ち、ビット34は2進数1
にセットされる)を有することが判るであろう。あるハ
ードウェア割込みサービス・ルーチンの最後の(pop
)マイクロ命令を除く全てのマイクロ命令の間・・−ド
ウエア割込みの発生を禁止することにより、マイクロプ
ログラムは、第2の即ち後続のハードウェア割込みの発
生が第1のハードウェア割込みの処理に対する割込みは
行なわないことを保証する。
このことは、1つのマイクロ命令により開始される時間
に依存するどのシーケンスも開始および終了マイクロ命
令間の時間を延長する一切の介入・・−ドウエア割込み
を行なうことなく後続のマイクロ命令により完了するこ
とができることを保証する。これは壕だ、望ましい実施
態様において、戻りアドレス・スタックが僅かに4つの
階層しかないため、スタックの3つのレベルはマイクロ
プログラムのサブルーチンの呼出しのため使用できまた
第4のレベルはハードウェア割込みが1つの階層噴上に
ネストされなければならない可能性のないハードウェア
割込みのため留保することができるという利点を有する
。第2図におけるロジックが実際にハードウェア割込み
のネスティングを許容することが判り、またもしスタッ
クがその階層を超えることなく全てのハードウェア割込
みが生じることを許容するに充分な階層プラス許容きれ
るマイクロプログラム・サブルーチン呼出しの最大ネス
ティング深さであるならば、ハードウェア割込みサービ
ス・ルーチンの間のこのような割込みの禁止は必要です
くするう(ある・・−ドウエア割込みがそれ自体割込ま
れISいという前提に基づいて)ことが判るであろう。
第1のハードウェア割込みサービス・ルーチン106の
実行中、マイクロ命令V乃至Wは割込みを行なうことな
く順次実行される。マイクロ命令Xは、マイクロ命令W
に存在する禁止マイクロ指令の故に割込みなしにマイク
ロ命令Wの実行に続く。マイクロ命令V乃至Wは生じた
特定の・・−ドウエア割込みのサービスと関連する諸操
作を実施するINHC禁止)マイクロ指令にカロえて他
のマイクロ指令を包むことが理解されよう。同様に、マ
イクロ命令Xはポンプマイクロ指令以外に他のマイクロ
指令を宮むことができる。
マイクロ命令Xの実行中、ROSデータ・レジスタ65
は、ROSアドレス・フィールドにおいて符号化された
戻りCPOP)操作をその内部に有するマイクロ命令X
を保有する。この戻り操作は、POPマイクロ指令の実
施に先立って前述の如りアドレス・レジスタ71に(S
+1)、レジスタ72に(P+1)、レジスタ73に(
7)+1)を、またレジスタ74にアドレス001 (
16進数)を保有する戻りアドレス・スタック70(7
)ポツプ操作を生じる。マイクロ命令XにおけるPOP
マイクロ指令は戻りアドレス・スタック70をして1つ
の場所だけポツプ操作させる。マイクロ命令xopop
マイクロ指令は、レジスタ71からアドレス(、S’+
1)iして戻りアドレス・スタック7071)らポツプ
操作させ、またレジスタ72の内容についてはレジスタ
71にロードさせ、レジスタ73の内容についてはレジ
スタ72にロードさせ、レジスタ74の内容はレジスタ
73にロートサせ、値001 (16進数)をレジスタ
74にロードさせる。アドレス(S+1)はアドレス・
マルチプレクサ160およびアドレス・マルチプレクサ
262を介してROSアドレス・レジスタ63にロード
され、ここでこのアドレスは後でROSデータ・レジス
タ65にロードされるRO′S24力1らマイクロ命令
(、S”+1)を取出すため使用される。このように、
マイクロ命令Xの実行に続いて、第2のレベルのサブル
ーチン104の実行がマイクロ命令(、S’+1)の実
行と同時に再開する。
第2のレベルのサブルーチン104の実行は、マイクロ
命令Tに至るまでは、命令毎にマイクロ命令(S+1)
から続行する。マイクロ命令Xの実行後およびマイクロ
命令Tの実行前に、戻りアドレス・スタック70はレジ
スタ71にアドレス1+1)を、レジスタ72にアドレ
ス(P+1)を、またレジスタ73およびレジスタ74
にアドレスoo1(16進数)を保有する。
第4図は、第2の割込みが生じない場合に戻りアドレス
・スタック70の最上部からアドレス(14!+1)を
ポンプ操作することによりマイクロプログラムの実行を
マイクロ命令(7t’+1)に対して戻すことになる副
指令POPを保有するマイクロ命令T(f)実行中、第
2の・・−ドウエア割込みは中断状暢となることを示し
ている。しのSし、前述の如く、ハードウェア割込み指
令と同時にマイクロ指令POPが生じると、戻りアドレ
ス・スタック70のポツプ操作はノ・−ドウエア割込み
に対する応答と関連した暗黙のブツシュ操作により取消
される。従って、戻りアドレス・スタック70はマイク
ロ命令Tの実行中ポツプ操作およびブツシュ操作のいず
れも行なわれず、スタックは、レジスタ71がアドレス
(P+1)を、レジスタ72がアドレス(P+1)を、
またレジスタ73およびレジスタ74がアドレス001
 (16進数)を保有するように変更されない状態を維
持する。
マイクロ命令Tの実行中、プリネット59はアドレスY
がアドレス・マルチプレクサ262を介してROSアド
レス・レジスタ63にロードされるように第2のノ・−
ドウエア割込みサービス・ルーチンに対してベクトル化
アドレスを生成する。
マイクロ指令の実行は、命令Yおよび命令Zからなる第
2のハードウェア割込みサービス・ルーチン108にお
ける第1の命令であるマイクロ命令Yの実行と共に継続
する。円び前述の如く、ハードウェア割込みサービス・
ルーチン内の各命令は最後のマイクロ命令を除いてハー
ドウェア割込みを禁止しなければならない。捷だ、前述
の如く、命令Yは禁止マイクロ指令に加えて他のマイク
ロ指令を保有し、またマイクロ命令Zは同様にマイクロ
指令POPの以外に他のマイクロ指令を保有することが
できる。
マイクロ命令Zの実行中、ROSデータ・レジスタ65
はROSアドレス・フィールドに戻り操作を保有するこ
とになる。この戻しく 7) OP )マイクロ指令は
、戻りアドレス・スタック70をして1つの場合だけポ
ツプ操作させ、これによりレジスタ71のアドレス(P
+1)fアドレス・マルチプレクサ160およびアドレ
ス・マルチプレクサ262を介して戻りマルチプレクサ
61にロードさせる。更に、レジスタ72の内容はレジ
スタ71の内容を置換し、レジスタ73の内容ハレジス
タ73の内容を置換し、レジスタ74の内容はレジスタ
73の内容を置換し、またアドレス001がレジスタ7
4にロードされる。このように、マイクロ命令Zの終り
に、戻りアドレス・スタック70はレジスタ71におい
てアドレス(P+1)を、またレジスタ72.73.7
4においてアドレス001(16進数)を保有すること
になる。
マイクロ・命令Zにおけるマイクロ指令POPによる戻
リアドレス・スタック70のポツプ操作は、マイクロ指
令の実行を第1のレベルのサブルーチン102における
マイクロ命令(P+1)の実行と共に続行させることに
なる。第1のレベルのサフ/I/−チン102は、第1
のレベルサブルーチンに分岐したマイクロ命令の後にマ
イクロプログラムの実行をマイクロ命令に戻すマイクロ
指令POPを保有するマイクロ命令Uに至るまではその
マイクロ命令の実行を継続する。マイクロ命令Uのマイ
クロ指令POPが戻りアドレス・スタック70を1つの
場合だけポツプ操作してアドレスCP+1゛)ヲアドレ
ス・マルチプレクサ160およびアドレス・マルチプレ
クサ262を介してROSアドレス・レジスタ63にロ
ードさせる。この状態は、RO324における場合1’
+1)にあるマイクロ命令をROSデータ・レジスタ6
5に対してロードさせてこれを実行させる。このように
、マイクロプログラムの実行は、マイクロ命令(P+1
)のROSアドレス・フィールドによりアドレス指定さ
れる次のマイクロ命令が後続する主ルーチン100にお
けるマイクロ命令(P+1)と共に継続することになる
第4図に示された事例の以上の論述71)ら判るように
、あるサブルーチンに対する分岐と関連した各々の明白
にマイクロコード化されたマイクロ指令PUSHは、ハ
ードウェア割込みに対する応答と関連する各々の暗黙に
行なわれたブツシュ操作に2ける如く戻りアドレス・ス
タック70をして1つの場所だけブツシュ・ダウンさせ
る。上記の事例から、戻りアドレス・スタックが3つの
階層の1つのレベルまでブツシュされたに過ぎず、最初
のブツシュは命令Pが第1のレベルのサブルーチンに対
して分岐した時生じ、2番目のブツシュは命令Rが第2
のレベルのサブルーチンに分岐した時生じ、3番目のブ
ツシュは第1のハードウェア割込みサービス・ルーチン
に対するベクトル化の準備中の命令Sの間に生じること
が判る。
第4図の事例においては、戻りアドレス・スタック70
のポツプ操作は3回生じ、その最初は第1のハードウェ
ア割込みサービス・ルーチンの完了時にマイクロ命令X
の間に生じ、2番目はマイクロ命令Zの実行中鎖2のハ
ードウェア割込みサービス・ルーチンの終りに生じ、3
番目は最初第1のレベルのサブルーチンが王ルーチンに
戻る時マイクロ命令Uの実行中に生じる。通常、マイク
ロ命令による第2のレベルのサブルーチンの終りに行な
われるポツプ操作は、第2のハードウェア割込みサービ
ス・ルーチンに対するベクトル化およびマイクロ命令Y
と共に実行の開始と関連する明白なポツプ操作により取
消されたものである。
次に第5図に示された詳細ハ回路においては、前に用い
たものと同じ照合番号が・・−ドウエア機構の動作のた
め必要な詳細な回路に加えて示されている。第5図にお
いては、種々の要素の入出力のあるものに付された小す
ナ丸はそれぞれ反転入出力を表わしている。
第5図においては、戻りアドレス・スタック70は、T
exas Jnstrv、ments社により製造され
参考のため本文に引用する同社の[TheTTLDat
a Book for Design Enginee
rsJ第2版(1976年)に記載されたタイプSN’
/ 4LS194なる12の4ピツト両方向汎用シフト
・し/スタからなる如くに示されている。第5図におい
てハ、戻リアドレス・スタック70における4つの12
ビツト・アドレスの最上位ビットを保持する唯一のシフ
ト・レジスタ70Aと、4つの12ビツト・アドレスの
最下位の次のビットを保持するシフト・レジスタTOK
と、戻りアドレス・スタック70に記憶された4つの1
2ビツト・アドレスの最下位ビットを保持するシフト・
レジスタ?OLとが実際に示され、レジスタ70B乃至
70Jは蘭累化のため示さない。レジスタ71乃至74
の同じ1ピツトがシフト・レジスタ70A乃至TOLに
それぞれ格納されているため、第5図には戻りアドレス
のレジスタ71乃至74が示きれる。12の4ビツトの
シフト・レジスタがブツシュ・ダウン・スタックとして
使用される方法については以下に更に詳細に記述する。
第5図は、マイクロプロセッサ30を構成する種々の装
置によって実行されるべきマイクロ命令を格納する読出
し専用記憶装置24を示している。
1つの操作サイクルにおいては、読出し専用記憶装置2
4がROSアドレス・レジスタ63の内容によりアドレ
ス指定される。このため、このアドレスにより指定され
る場所の内容はROSデータ・レジスタ65に対して読
込まれる。
第5図においては、ROSデータ・レジスタ65が第5
図に関して記述されるべき問題となる3つの異なる場合
を示す3つの個々のマイクロ命令を宮む如くに示されて
いる。実際の操作においては、これらのマイクロ命令の
1つのみがROSデータ・レジスタ65内である瞬間に
存在することになる。最上位のマイクロ命令がマイクロ
命令への飛越しを実施しかつまたマイクロ指令PUSH
を保有する。このマイクロ命令は、第2のレベルのザブ
ルーチン104への分岐を行なう第4図のマイクロ命令
Rを示す。中間のマイクロ命令は、マイクロ命令内の−
・−ドウエア割込み(HI)ビットの2進数1へのセッ
トにより禁止されるノ・−ドウエア割込みをいずれも持
たないマイクロ命令である。最下位のマイクロ命令は、
RυSアドレス・フィールド内のマイクロ指令POPを
保有し、かつマイクロ命令U、TXXまたはZの如き第
4図の命令POPのどれかであり得るマイクロ命令であ
る。このマイクロ命令POPは、サブルーチンからの戻
りまたは・・−ドウエア割込みサービス・ルーチンを行
ISうため使用される。
アクセスされるべき次のアドレスを含むマイクロ命令ワ
ードおよびマイクロプロセッサ30を制御する次の指令
のフィールドは、第1図および第2図に示された機能素
子により転送され復号される。谷機能素子は、システム
のタイミング操作の制御下でマイクロ命令ワードにより
指定される所要の副指令を復号するだめの論理回路を含
んでいる。
第1のレベルのサブルーチン102がマイクロ指令PU
SHおよび禁止CINH)と共にマイクロ命令Sへの分
岐を実施することにより第2のレベルのサブルーチン1
04を呼出す時、後続のシーケンスが行なわれる。分岐
マイクロ命令は、読出し専用記憶装置24力1ら読出さ
れてROSデータ・レジスタ65にロードされ、分岐は
読出しに続くサイクルにおいて生じ、またビット位置零
において2進数1を有するROSアドレス・フィールド
から生じる。分岐マイクロ命令ワードはまた、マイクロ
指令PUSHおよび戻りアドレスを戻りアドレス・スタ
ック70に格納してそれぞれ・・−ドウエア割込みを禁
止する・・−ドウエア割込み禁止、のマイクロ指令とを
有する。
更に、マイクロ指令JUMPは、ROSアドレス・フィ
ールドのビット位置0から2進数1を受取りその出力に
おいて2進数0を生じるインバータ87によって復号さ
れ、その結果ドライバ60Aの出力可能(F)入力側と
接続される信号JUMP−はその出力に対するドライバ
60Aを可能状態にし、これによりアドレス・マルチプ
レクサ160の出力をマイクロ命令Sのアドレスを保有
するROSアドレス・フィールドのビット1乃至12に
させる。ドライバ60Aは、アドレス・マルチプレクサ
160を含む唯1つのバス・ドライバが如何なる時もそ
の出力を使用可能状態とするように3状態の出力を有す
るタイプのバス・ドライバである。アドレス・マルチプ
レクサ160は、第5図に示きれるドライバ60Aおよ
び60B以上のものからなり、第5図に示されたもの以
外の他の入力を有するが、第5図には本発明に関して有
意義なものしか示さfll、)。
アドレス・マルチプレクサ262のA入力側に現われる
アドレス・マルチプレクサ160の出力は、アドレス・
マルチプレクサ262の出力がROSアドレス・フィー
ルドのビット1乃至12に現われるマイクロ命令Sのア
ドレスとなるように2進数lの状態にある選択入力(S
EL)によつ°C選択されることになる。アドレス・マ
ルチプレクサ262のこの出力は、命令Sが読出し専用
記憶装置24にアドレス指定されるようにROSアドレ
ス・レジスタ63にロードされることになる。
アドレス・マルチプレクサ262および戻りマルチプレ
クサ61の選択(SEL)入力に現われる選択入力信号
LDR8AR+は、マルチプレクサ62旧よび61の入
力A$3よびBの間を選択するため使用される。ハード
ウェア割込みプリネット・エンコーダ54の活動状態の
出力CP)に現われる信号L i) RS A R+は
、もしエンコーダ54の出力Ql乃至Q8の1つが2進
数0の状態にあるならば、2進数Oの状態にあることに
なる。もし入力IO乃至110の1つが2進数Oの状態
にあり、まだもしエンコーダ54の使用可能入力(El
 )に対して与えられる入力可能信号DISHIP+が
2進数0の状態にあるならば、エンコーダ54の出力Q
l乃至Q8の1つは2進数Oの状態にあることになる。
望ましい実施態様においては、ハードウェア割込みプリ
ネット・エンコーダ54は、TexasIns tru
rnent s 社により製造され同社の「TheTT
L  Data Book for Design E
ngineers J第2版に記載された2つのカスケ
ード接続されたタイプ5H74148からなるものであ
る。エンコーダ54のIO大入力、ハードウェアのクリ
ア条件においては2進数Oとなる信号である信号CLE
ARX−を受取るように接続されている。他の入力信号
11乃至110は、ハードウェア割込み要求またはハー
ドウェア・エラー条件を表示する種々の信号に接続され
る。これら入力信号11乃至110の1?が2進数0の
条件にある時は常に、エンコーダ54が2進符号化され
た出力Ql乃至Q8上に、サービスを要求する最も高い
優先順位のハードウェア割込みもしくはハードウェア・
エラーと対応する信号を生じることになる。
ROSデータ・レジスタ65に示きれる第1のマイクロ
命令はハードウェア割込み禁止フィールドにおいて2進
数1を保有するため、信号RDDT34+が2進数1と
なってANDゲート84を部分的に可能状態にする。信
号CLEARA−は、クリア条件では1jいためこれも
また2進数1となる。
ハードウェア・エラー条件が存在しないため、ANDゲ
ート84の第3の入力、信号5TOPIT+もまた2進
数1となり、従ってANDゲート84の出力である信号
DISHIP+は2進数1となってエンコーダ54の出
力を使用不能状態にすることにより信号LDR8AR+
’i2進数1にする。
第1のマイクロ命令のマイクロ指令PUSHは、HAN
Dゲート83およびインバータ85と共にNORゲート
80.81.82によって復号される。副指令P U 
S ifは、2進数000のAサブフィールドと、2進
数x o’ x oのBサブフィールド(但し、Xピン
トは[crrn’t care J条件)と、2進数1
00のCサブフィールドを有することによりマイクロ命
令ワードの特殊な制御フィールドに指定される。Aサブ
フィールドはNORゲート82に対してビット35乃至
37を入力することにより復号され1、その出力は副指
令PUSHが指定されるならば2進数1となる。Bサブ
フィールドはN(、iRゲート81に対してビット39
および41を入力することにより復号され、その出力は
副指令PUSHが指定されると2進数1.gy、zる。
Cサブフィールドは、ビット42を反転し力1つNOR
ゲート80に対する入力古してビット43.44と共に
その出力を用いるインバータ85により復号される。N
ORゲート80の出力は、もし副指令PUSHが指定さ
れると2進数1となる。
もし副指令PUSHが特別の制御フィールドにおいて指
定されるならば、NANDゲート83に対する3つの入
力は2進数1となり、その出力である信号PUSHOP
−を2進数0にさせることになる。
PUSH信号、PUSHOP−がNANDゲート90に
対する1つの入力において2進数Oであり、これに対す
る他の入力である信号LDR8A、R+が2進数1でハ
ードウェア割込みが中断状態でも使用可能状弗でもない
ことを表示する場合、NANI)ゲート90の出力であ
る信号PUSliNT+は2進数1となって、マイクロ
指令PUSHがROSデータ・レジスタ65内で符号化
されるか、あるいはハードウェア割込みが中断状轢でハ
ードウェア割込みが可能状態になるため、戻りアドレス
・スタック70に関するブツシュ操作が実施されるべき
ことを表示する。信号PUSHNT+はNANDゲート
91の1つの入力である。HANDゲート91に対する
他の入力は、ORゲート86の出力である入力信号PO
POP−とじて受取るインバータ88により出力される
POPOP+である。
ROSアドレス・フィールドのビット0乃至4は、マイ
クロ指令POPを復号するため使扇されるORゲート8
6に対して入力される。もしビット0乃至4が2進数0
であれば、ORゲート86の出力はポツプ操作が実施さ
れることを表示する2進数0となる。マイクロ命令JU
MP  Sのピッ)Oが2進数1を言むため、ORゲー
ト86の出力は2進数1となってインバータ88の出力
を2進数0にさせる。
NANDゲート91の1つの入力において2進数Oであ
る信号POPOP+は、その出力である信号PUSPO
P−を2進数1にさせて、ブツシュ操作とポツプ操作の
両方が同時に要求されていないことを表示する。AND
ゲート92の両方の入力が2進数1に等しい場合、その
出力である信号PUSNOT+は2進数1となってブツ
シュ操作が戻りアドレス・スタック70に関して行なわ
れることを表示する。信号PUSNOT+がORゲート
94の1つの入力において2進数1である場合は、その
出力の信号PUSNEN十は2進数1となってブツシュ
操作が戻りアドレス・スタック70に関して行なわれる
ことを表示する。
ポンプ操作信号POPOP+はまたANDゲート93に
対する1つの入力である。ANDゲート98に対する両
方の入力b12進数0である場合、その出力である信号
P OPNOT+は2進数0となってポツプ操作が戻り
アドレス・スタック70に関して行なわれないことを表
示する。クリア操作が行なわれCいため、インバータ8
9の出力である信号CLEARX十は2進数0となり、
従ってORゲート95に対する両入力は2進数0となり
、その出力である信号POPNEN+を2進数OKさせ
てポツプ操作が戻りアドレス・スタック70に関して行
なわれないことを表示する。
信号PUSNEN十は、12の4ビツトの両方向のシフ
ト・レジスタ70A乃至70−Lの各々のシフト・モー
ド人力SOと接続される。同様に、信号PQPNEN+
は、12の4ビツトの両方向のシフト・レジスタ70A
乃至70Lのシフト・モード人力S1と接続される。シ
フト・モード人力SOと81は、この入力SOと81が
2進数Oと等しく、シフト・レジスタのクロック(C)
入力におけるクロック信号が2進数0の状態から2進数
1の状嘘に変換する時、シフト・レジスタのシフト動作
即ち並列ローディングが生じないように2進符号化され
ている。SOが2進数OでありSlが2進数1の状態で
ある時、左方のシフト(POP)操作はシフト・レジス
タがクロックされると実施される。SOが2進数1であ
りSlが2進数0である時、右方のシフ) (PUSH
)操作はシフト・レジスタがクロックされると行なわれ
ることになる。SOおよびSlの両方が2進数1である
時、各シフト・レジスタ内の全ての4ピツト位置の並列
ローテイングは、クロックが2進数0の状態から2進数
1の状態に変換する時に行なわれることになる。12の
4ピツトの両方向のシフト・レジスタの各々のリセット
(R)入力は、レジスタがシステムの作動中リセット(
クリア)されないため、2進数1にセットされる。
ROSデータ・レジスタ65におけるその時のマイクロ
命令の実行の後期において、また次のマイクロ命令のア
ドレスがROSアドレス・レジスタ63に対してロード
された後、シフト・レジスタ70A乃至70Lのクロッ
ク操作に用いられたクロック信号PSTROB+もまた
66のクロック操作のため使用される。従って、2進数
0から2進数1の状態に変換する信号PSTROB+に
よる戻りアドレス・スタック70に対する戻りアドレス
のクロック動作と同時に、ROSアドレス・レジスタ6
3において見出される次のアドレスを用いて増量される
べき読出し専用記憶装置24における次の場所のアドレ
スは、次のマイクロ命令の実行中早期にその時のアドレ
スとして使用するためROSアドレス履歴レジスタ66
にロードされることになる。
アドレスSのROSアドレス・レジスタ63からROS
アドレス履歴レンしタ66に対するクロック操作に先立
つその時のマイクロ命令の実行中早期に、ROSアドレ
ス履歴レジスタ66は場所Sに対する飛越しを指定する
ROSデーグ・レジスタ65におけるマイクロ命令(即
ち、第4図におけるマイクロ命令R)のアドレスを含ん
でいる。
このだめ、マイクロ命令の実行中早期に、ROSアドレ
ス履歴レジスタ66はその時のアドレスRを保有するこ
とになり、また増分機構64の出力は戻しマルチプレク
サ61の入力Aにおいて現われるアドレス(R+1)と
なる。以上で明、らかなように、マイクロ命令JUMP
  SQ間信号LDR8AR+は2進数1となって戻り
マルチプレクサ61の出力AをそのQ出力に対して使用
可能状態にさせる。このため、シフト−レジスタ70A
乃至70Lの右側シフト直列入力側(RI)において現
われる信号5TK100乃至5TK111は2進数アド
レス(R+1)と対応することになる。このように、ク
ロック信号PSTROB+がマイクロ命令JUMP  
Sの実行中遅く生じる時、アドレス(R+1)はシフト
・レジスタ70,4乃至70Z、の右方へ1位置のシフ
IIcより戻りアドレス・スタック70に対してブツシ
ュされるこきになる。
これもまだ割込みを禁止しかつマイクロ指令PUSHを
禁止するマイクロ命令JUMP  Sに関して第5図の
ロジックの機能について記述しだが、ROSデータ・レ
ジスタ65に示された第2と第3のマイクロ命令の実行
について次に論述する。
第5図に示された第2と第8の両方のマイクロ命令は特
殊な制御フィールドにおけるブツシュ操作を含まPG)
。従って、これら両方の命令の実行中、マイクロ指令P
USHの復号のため使用されるNANDゲート83の出
力は2進数1となってブツシュ操作がこのマイクロ命令
内では符号化されないことを表示する。
次に第2のマイクロ命令については、ビット位置34に
おけるハードウェア割込みの禁止ピットが2進数Oであ
って・・−ドウエア割込みが許容されることを表示する
ことが判る。この2進数0の状態はANDゲート84の
中間の入力において信号RDDT84+として現われそ
の出力である信号DISHII’十を2進数0の状態に
させ、これによりハードウェア割込みプリネット・エン
コーダ54に対する入力を可能にする。もし2進数0の
状態のハードウェア割込み信号が存在せず、2進数0の
状態のハードウェア・エラー信号が存在せず、クリア条
件も存在しなければ、エンコーダ54の全ての入力IO
乃至110は2進数1の状態にあり、従ってエンコーダ
54の出力Pにおける活動状態の出力信号である信号L
SR8AR+が2進数1となる。
信号LSIT!SAR+ff12進数1であり信号PU
SHOP−が2進数1であってブツシュ操作が指定され
ないことを表示する場合は、NA、NDゲー)90の出
力である信号PUSHNT+は2進数0となり、マイク
ロ指令PUSHも存在せずあるいはハードウェア割込み
の中断状態もないため、ブツシュ操作が実施されないこ
とを表示する。ANDゲート9201つの入力が2進数
0である場合は、信号PUSNOT+はORゲート94
の1つの入力において2進数O(l!:する。もしクリ
ア操作が実施されなければ、ORゲ−1・94の他の入
力である信号CLEARX+は2進数0となる。従って
、ORゲート94の出力である信号PUSNEN+は2
進数0となる。
ポツプ操作が第2のマイクロ命令のROSアドレス・フ
ィールドにおいて指定されないため、インバータ88の
出力である信号POPOP+は2進数Oとなってポツプ
操作が指定されなかったことを表示する。ANDゲート
98の1つの入力における2進数0である信号POPO
P+はその出力である信号P OPNOT+を2進数0
にさせることになる。ORゲート95に対する両人力が
2進数Oであれば、その出力である信号POPNEN+
は2進数0となる。シフト・レジスタ70A乃至70L
の入力における両方のシフト・モード信号SOおよびS
lは2進数0であるため、シフト・レジスタは、2進数
0の状態から2進数1の状態に変換しつつある信号PS
TROB十によりクロックされる時はシフトも並列ロー
ディングのいずれも行ISわず、従ってこのマイクロ命
令の実行中ブツシュ操作またはロード操作のいずれも行
なわれることがr、f G)。
このマイクロ命令の実行中、アドレス・マルチプレクサ
262に対するA入力は、選択信号LDR8AR十が前
述の如く2進数1であるため、そのQ出力側にゲートさ
れることKfiる。従って、アドレス・マルチプレクサ
160の出力はROSアドレス・レジスタ63に対して
ロードされることになる。戻りマルチプレクサ61の出
力が2進数Oの状態から2進数1の状態に変換する信号
P S T ROB十によりストローブされるその時の
マイクロ命令の実行中遅く、次のアドレスを言むROS
アドレス・レジスタ63の出力がROSアドレス履歴レ
ジスタ66に対してロードされ、その後増分機構64に
より1だけ増分される。その後、次のマイクロ命令がそ
の時のマイクロ命令として実行される時、ROSアドレ
ス履歴レジスタ66はその時のアドレスを保有すること
1c71す、増分機構64により生成される如きその時
のアドレス+1は戻りマルチプレクサ61の入力Aに存
在することになる。
もしこの第2のマイクロ命令の実行中・・−ドウエア割
込みが2進数0であるビット34により可能状態にされ
るならば、ハードウェア割込みが生じる。エンコーダ5
4からの活動状態の出力信号であるLDR8Afl+は
2進数Oとなってハードウェア割込み、またはエラー条
件、捷たはクリア条件が生じたことを表示し、アドレス
・マルチプレクサ262の入力Bはその人力Qに対して
可能状態にさせられる。アドレス・マルチプレクサ26
2に対する入力Bは8つの最上位ビットにおける8つの
先行する2進数Oと共にエンコーダ54からの2進数符
号化ピッ)Ql乃至Q8からなり、その結果アドレス・
マルチプレクサ262のQ出力は特定の・・−ドウエア
割込みまたは・・−ドウエア・エラーまたはクリア条件
を取扱うようにプログラムされたハードウェア割込みサ
ービス・ルーチンの開始位置と対応する12ビツトの2
進アドレスとなる。
アドレス・マルチプレクサ262の出力はEOSアドレ
ス・レジスタ63に対しかつこれから読出し専用記憶装
置24に対する入力であり、その結果ハードウェア割込
みサービス・ルーチンの最初のワードの取出しおよび実
行が可能となる。
ハードウェア割込みサービス・ルーチンの最初のワード
のアドレスは壕だ、信号PSTROB+がクロック(2
進数0の状態から2進数1の状態へ変換)する時、RO
Sデータ・レジスタ65における第2のマイクロ命令の
実行中ROSアドレス・レジスタ63からROSアドレ
ス履歴レジスタ66ヘロードされる。このアドレスがR
OSアドレス・レジスタ63から11 OSアドレス履
歴レジスタ66ヘクロノクされると同時に、戻りマルチ
プレクサ61の出力が戻りアドレス・スタック70に対
してブツシュされる。
戻りマルチプレクサ61の出力は、この戻りマルチプレ
クサ61の入力Bに現われる名目の矢のマイクロ命令ア
ドレスとなるアドレス・マルチプレクサ160の出力で
ある。前述の如く、戻りマルチプレクサ61の入力Bは
、エンコーダ54からの活動状態の出力が存在する時は
常に選択信号LDR8AR十が2進数0であるため、そ
の出力Qに置力へれる。シフト・レジスタ70A乃至7
0Lは、ORゲート94からの信号PUSNEN+が2
進数1でありかつORゲート95からの信号POPNE
N+が2進数0である故に、ブツシュ操作(右方シフト
)を行なう。ゲート90乃至95に対する入力において
信号LDR8AR+が2進数0であり、信号CLEAR
X十が2進数Oであり、信号PUSJiOP−が2進数
1であり、信号popop十が2進数0である故VC1
信号PUSNEN+は2進数1であり、信号POPNE
N+は2進数Oとなるが、このゲートの作用については
前に述べた。
第5図におけるROSデータ・レジスタ65に示された
第3のマイクロ命令の実行中、ポツプ操作はROSアド
レス・フィールドにおいて指示される如〈実施される。
前に示しだポツプ操作はORゲート86によって復号さ
れ、その出力である信号POPOP−は2進数Oとなっ
てポツプ操作が実施されることを表示する。2進数0で
ある信号POPOP−は、アドレス・マルチプレクサ2
62の入力Aがシフト・レジスITOA乃至70Lの出
力QAと対応する12ビツトである信号5TI(000
乃至5TKO11となるように、アドレス・マルチプレ
クサ160の内部のドライバ60Bの出力を可能状態に
することになる。これら12の信号は、戻りアドレス・
スタック70内部の最上位のアドレスと対応している。
ドライバ60Aの出力は2進数1である信号JUN’P
−により使用不能状態にされる。このように、アドレス
・マルチプレクサ160の出力は、第4図のレジスタ7
1の内容と対応する戻りアドレス・スタック70におけ
る最上位のアドレスとなることになる。
このPOPマイクロ命令の実行中は、ハードウェア割込
みは生じない。アドレス・マルチプレクサ2620入力
Aは、出力Qとして出力されるよう選択され、これによ
り読出し専用記憶装置24から取出されるべき次の命令
のアドレスを指定するROSアドレス・レジスタ63に
ロードされることになる。ハードウェア割込みを生じる
ことのないこのよう1.K P OP命令の場合におけ
るように、読出し専用記憶装置24から読出される次の
命令は、戻りアドレス・スタック70内の最上位の場所
によりアドレス指定された命令となる。
もしこのPOPマイクロ命令の天性中にハードウェア割
込みが生じるならば、エンコーダ54により出力でれる
信号LDR8AR+は2進数1となり、その出力がいず
れも活動状態でないことを表示する。ブツシュ操作が特
殊な制御フィールドに指定されなかったため、NAND
ゲート83からの信号PUSHOP−は2進数1となり
、従ってNANDゲート90の出力である信号PUSH
NT十は2進数0となってブツシュ操作が行なわれない
ことを表示する。もしクリア操作が2進数Oである信号
CLEARX十により表示される如く生じなければ、O
Rゲート94の出力である信号PUSH’EN+は2進
数0となり、ORゲート95の出力である信号PQPN
EN+は2進数1となって左方のシフト(POP)操作
がシフト・レジスタ70.4乃至70Lにより実施され
ることを表示する。この状態は、信号PUSTROB十
が2進数0の状態から2進数1の状態に変換する時、1
つの場所だけ戻りアドレス・スタック70をポツプ操作
させることになる。
シフト・レジスタ70A乃至70Z、の左方のシフト操
作が生じる時、12の4ビツトシフト・レジスタの左方
シフトの直列人力CLI)におけるピントがシフト・レ
ジスタに対してロードされる。
第5図において判るように、シフト・レジスタ70A乃
至70Z、はこの入力に2進数0を保有し、シフト・レ
ジスタ70Lがこの入力において2進数Oを保有し、こ
のため16進数値でロードされる第4図の戻りアドレス
・スタック(レジスタ74)内の最下位の場所が001
として使用される結果となる。この001の値は、もし
この001の16進数がスタックの最上部をポンプ・オ
フ操作される場合に生じるスタックを過剰ポツプ操作の
場合を取扱うようマイクロプログラムされたルーチンの
読出し専用記憶装置24内の1つのアドレスとして使用
される。
16進数001のこの同じROSアドレスは、シフト・
レジスタ70A乃至70にのPIA。
PIB、PICおよびPID入力に2進数Oを、壕だシ
フト・レジスタ70Lの対応する入力に2進数1を有す
ることにより、シフト・レジスタ70A乃至70にの4
つの全ての入力を2進数0で並列ローディングすること
により、まだこれらのレジスタがクリア操作の間2進数
Oの状態から2進数1の状態へ変換する信号PSTRO
B+によりクロックされる時2進数0に等しい信号PU
SNEN+およびPOPNEN+を有することにより並
列ローディングを行なうことにより、クリア操作が実施
される時戻りアドレス・スタック70のレジスタ71乃
至74に対して同時にロードされる。これは、ORゲー
ト94と95の出力を2進数1に強制するクリア操作の
間CLEARX十が2進数1であり、これによりシフト
・モード選択信号SOおよびSlを共に2進数1に等し
くなるようセットするため行なわれるのである。
第4図に関して前に述べたように、もし第5図に示され
た第3のマイクロ命令の場合のようにポンプ操作を含む
マイクロ命令の実行中ハードウェア割込みが生じるなら
ば、このハードウェア割込みと関連するブツシュ操作が
このマイクロ命令のポンプ操作を取消し、戻りアドレス
・スタックはブツシュ操作およびポンプ操作のいずれも
行なわれff(1)。これが行なわれる方法については
、第5図に関して次に記述しよう。
もしROSアドレス・フィールドにおけるポツプ操作を
含む第3のマイクロ命令もまた2進数00−・−ドウエ
ア割込み禁止ビットを含む場合は、POPマイクロ命令
の実行中ノ・−ドウエア割込みが生じ得る。前に示した
ように、POPマイクロ指令を含むマイクロ命令の実行
中、ドライバ60Bの出力は、アドレス・マルチプレク
サ160の出力が戻りアドレス・スタック70の最上部
に含まれる戻りアドレスとなるように使用可能状態にさ
れる。アドレス・マルチプレクサ160の出力は、アド
レス・マルチプレクサ262の入力Aおよび戻りマルチ
プレクサ61の入力Bに対して与えられる。以−トの如
く、もし・・−ドウエア割込みが生じると、エンコーダ
54からの信号LDR8AR+はアドレス・マルチプレ
クサ262と戻りマルチプレクサ61の両アドレスの入
力Bを選択する2進数0である。このように、アドレス
・マルチプレクサ262の出力は、ハードウェア割込み
サービス・ルーチンが位置されるエンコーダ54により
決定される如きベクトル化アドレスとなる。戻りマルチ
プレクサ61の出力は、戻リアドレス・スタック70の
最上部の出力であるドライバ60Bの出力となる。
このようvc、Rosアドレス・レジスタ63は中断状
態の最も旨い優先順位の割込みと関連する−・−ドウエ
ア割込みサービス・ルーチンの起動アドレスがロードさ
れ、この場所は読出し専用記憶装置24から取出されて
ノ・−ドウエア割込みサービス・ルーチンの実行を開始
することにPる。信号LDR8AR+が2進数Oであれ
ば、NANDゲート90の出力である信号PUSHNT
+は2進数1となって、ブツシュ操作が戻りアドレス・
スタック70に対して行なわれるべきことを表示する。
POPマイクロ指令がROsアドレス・フィールドにお
いて符号化されるため、ORゲート86の出力である信
号POPOP−は2進数Oとなり、これによりインバー
タ88の出力である信号POPOP十Qを2進数1にさ
せてポツプ操作が戻りアドレス・スタック70に対して
行なわれるべきことを表示する。N A N’ Dゲー
ト91の両人力が2進数1であれば、その出力である信
号PUSPOP−は2進数0となってブツシュ操作およ
びポツプ操作の両方が戻りアドレス・スタック70に対
して同時に行なわれるべきことを表示することになる。
2進数Oである信号PUSPOP−はANDゲート92
と93を使用不能状態にし、信号PUSNOT+および
P Q PNOT+を2進数0にさせてブツシュ操作お
よびポツプ操作のいずれも行なわれないことを表示する
。クリア操作は実施されないため、信号CLEARX+
は2進数Oとなり、従ってORケ−ト94と95の出力
は2進数Oとなってシフト・レジスタ70A乃至70L
に対してシフト操作もロード操作も行なわれないことを
表示する。
従って、マイクロ命令内のPOPマイクロ指令はハード
ウェア割込みの明白なブツシュ操作を取消し、その結果
戻りアドレス・スタック70のブツシュ操作、ポツプ操
作あるいは並列ローディングのいずれも生じることがな
い。
以上の論述から、NANDゲート91がブツシュ操作お
よびポツプ操作の同時の発生を検出し、かつこり条件が
生じ6時戻りアドレス・スタック70の同時のブツシュ
操作およびポツプ操作を禁止するために使用されること
が判るであろう。この条件は、POPマイクロ指令があ
るマイクロ命令内で符号化されまたある・・−ドウエア
割込みが生じる時に生じ得るが、その組合せはスタック
のいずれの方向の移動も阻止する。以上の論議から、最
下位のレジスタがスタックの過剰ポツプ操作の検出のた
め使用されるルーチンのアドレスによりポツプ操作され
る毎にスタックが最下位のレジスタにおいてロードされ
る方法、およびスタック内の各レジスタが過剰サービス
・ルーチンのこのアドレスを含むようにクリア操作の間
にスタックが初期化される方法もまた明らかになろう。
望ましい実施態様について記述したが、当業者により他
の変更例も捷だ容易に示唆されよう。例えば、もしハー
ドウェア割込みがハードウェア割込みサービス・ルーチ
ンの間禁止されなければ、本発明のスタック機構はハー
ドウェア割込みのネストのため使用することができる。
また、望ましい実施態様は4ビツトのシフト・レジスタ
70Aて記述したが、もしこれ以上のビットを含むレジ
スタが使用されると、スタックのブツシュ・ダウン深さ
は拡張されたシフト・レジスタにおけるビット数と等し
くなり、このためサブルーチンおよび割込みの比較的大
きなネスティング深はを許容することになる。更に、米
国特許第3.909,797号に記載される如きフリッ
プフロップからなるレジスタからなるスタック機構は、
同時のブツシュ操作およびポツプ操作を行なう試みを検
出するため使用される本発明のロジックがブツシュ操作
およびポツプ操作のいずれも行なわれないように使用さ
れることを前提として、望ましい実施態様のシフト・レ
ジスタの代りに使用することもできる。
サブルーチンに対するROSアドレス・フィールドは条
件付きもしくは無条件の分岐のいずれかであり得ること
を留意されたい。このことは、次のアドレスが読出し専
用記憶装置24からのマイクロ命令のROSアドレス・
フィールドによって連続的に与えられるため、本文に記
述したシステムにおいては特に有利である。それにも拘
らず、この特質はシーケンス・カウンタが使用される如
きアドレス指定方法においても等しく適用可能である。
両方のアドレス指定方法は、もし分岐がサブルーチンに
対して行なわれなかった場合、他の方法で実行されるこ
とになる次の命令のアドレスの格納を可能にするPUS
Hマイクロ指令の使用を必要とする。
本発明についてはその望ましい実施態様に関して示し記
したが、当業者によれば、本発明の主旨および範囲から
逸脱することなく上記および他の形態および詳細の変更
が可能であることが理解されるであろう。
【図面の簡単な説明】
第1図は本発明を使用するデータ処理システムを示す全
体ブロック図、第2図は本発明の原理を実施する第1図
のマイクロプロセッサの制御領域の一部を示すブロック
図、第3図は第1図のマイクロプロセッサのファームウ
ェア・マイクロ命令・ワード・フィールドを示す図、第
4図は本発明に従って主ルーチンにおいて開始し、2つ
のサブルーチンおよび2つのハードウェア割込みサービ
ス・ルーチンを続行するマイクロプログラムのマイクロ
命令の実行を示すフロー図、および第5図は本発明によ
る第2図の制御領域において使用される回路を示す論理
的ブロック図である。 10・・主記憶装置、12・・・主記憶装置モジュール
0114・・・主記憶装置モジュール1.16・・・主
記憶装置モジュール2.20・・・中央演算処理装置(
CPU)、22・・・モニター・ロジック、24・・・
読出し専用記憶装置CRO8) 、26・・・主要バス
、30・・・マイクロプロセッサ、32・・データ操作
領域、34・・・メモリー管理装置(A/A/U)、3
6・・・制御領域、37・・プロセッサ・バス、38・
・・内部バス、40・・・入出力ハス、42・・・入出
力コントローラ、44・・・周辺素子、50・・・テス
ト・フリップ70ツブ、51・・Fレジスタ、52・・
・Fカウンタ、53・・・ソフトウェア割込みレジスタ
、54 ・ソフトウェア割込みプリネット、55・・・
アドレス生成部分、56・・テスト分岐ロジック、57
・・・主分岐ロジック、58・・・レジスタ、59・・
・ブリネット、60・・アドレス・マルチプレクサ1.
61・・・戻りマルチプレクサ、62・・・アドレス・
マルチプレクサ2.68−・ROSアドレス・レジスタ
、64・・・増分機構、65・・・ROSデータ・レジ
スタ、66・・・ROSアドレス履歴レジスタ、70・
・・戻りアドレス・スタック、71〜74・・・レジス
タ、80〜82・・・NORゲート、 83・・HAN
Dゲート、84・・ANDゲート、85−・インバータ
、86 ・ORゲート、87〜89・・・インバータ、
90.91・・・HANDゲート、92.93・・・A
NDゲート、94.95 ・ORゲート、100・・・
主ルーチン、102・・・サブルーチン、104・・サ
ブルーチン、106・・・\−ドウエア・サービス・ル
ーチン、108・・・第2の・・−ドウエア割込みサー
ビス・ルーチン。 %許1f[人  ハネイウエル・インフォメーション・
システムス・インコーホレーテッド (外4名)

Claims (1)

  1. 【特許請求の範囲】 1、 サブルーチンおよび割込みサービス・ルーチンに
    関する人出転送を行なう方法において、(A)メモリー
    (24)からサブルーチンに対する分111識別するル
    ーチンの第1のマイクロ命令を生成し、 W〕サブルーチンに対する分岐を実行し、この分岐実行
    ステップは、 (a)  禁止可能な割込みの発生を禁止し、(b+ 
     その時のアドレス・レジスタ(66)における前記の
    第1のマイクロ命令のその時のアドレスを増分装置(6
    4〕に対して転送し、 (cl  前記のその時のアドレス全増分して増分アド
    レスを形成し、 (dl  戻りアドレスである前記の増分アドレス全ブ
    ツシュ・ダウン・スタック(70)の第1のレジ(1) スタ(71)に格納し、 (g)  前記の増分アドレスの浴納と同時に前記ブツ
    シュ・ダウン・スタックにおいてルベルタケ下の隣接す
    るレジスタ(72,73,74’)に対して以前の戻り
    アドレスを転送し、 (f)  もし割込みが中断状態でないか、あるいは全
    ての中断状態の割込みが禁止されるならば、前記の第1
    のマイクロ命令における次のアドレスを次のアドレス・
    レジスタ(63〕に対して転送し、(gl  前記の次
    のアドレス・レジスタ(63)における前記の次のアド
    レスを前記のその時のアドレス・レジスタ(66)に対
    して転送し、仇)前記の次のアドレス・レジスタ(63
    )からの前記の次のアドレスを用いて、前記メモリー(
    24)からサブルーチンの第1のマイクロ命令である第
    2のマイクロ命令を生成することからなり、(C)割込
    みサービス・ルーチンに対して割込み金生じ、この割込
    み生成ステップは、 (α)もし中断状態の禁止されない割込みが存在するな
    らば、最も高い優先順位の禁止されない中(2〕 断状態の割込みのベクトル化された割込ろアドレス全生
    成し、 (11)  もし割込みが禁止されなければ、前記のベ
    クトル化された割込みアドレスを前記の次のアドレス・
    レジスタ(63月で対して転送し、(C)  もし割込
    みが禁止されなけれは、前記ブツシュ・ダウン・スタッ
    クの前記の第1のレジスタ(71)に対して前記戻りア
    ドレスであるその時の・マイクロ命令からの次のアドレ
    スを格納し、(d)  前記戻りアドレスの格納と同時
    に前記ブツシュ・ダウン・スタック(70)においてル
    ベルだけ下の隣接するレジスタ(72,73,74)に
    対して前の戻りアドレスを転送し、 (gl  前記のその時のアドレス・レジスタ(66〕
    に対して前記の次のアドレス・レジスタ(63)におけ
    る前記のベクトル化された割込みアドレスを転送し、 (fl  前記の次のアドレス・レジスタ(63)から
    の前記のベクトル化された割込みアドレスを用いて前記
    メモIJ−(24)から第1の割込みサービス・(3) ルーチンの第1のマイクロ命令である第3のマイクロ吊
    金を生成することを含み、 CD)前記メモリー(24〕から前記サブルーチン丑た
    け前記割込みからの戻りを識別するマイクロ命令を生成
    し、 (E)前記のサブルーチン寸たけ割込みからの戻り全実
    行し、この戻り実行ステップは、 ((Z)  もし割込みが中断状態でないか、あるいは
    全ての中1vfT状l法の割込みが禁止されるならば、
    前記ブツシュ・ダウン・スタック(70)における前記
    の第1のレジスタ(71)から前記の次のアドレス・レ
    ジスタ(63〕に対して前記戻りアドレスを転送し、 (b+  前記の次のアドレス・レジスタ(63]C対
    する前記の戻りアドレスの前記転送と同時に[)11記
    ブツシュ・ダウン・スタック(70)においてルベルだ
    け上げて前の戻りアドレスを前記の隣接するilのレジ
    スタ(71,72,73)に対して転送し、 (Ci  もし中断状態の禁止されない割込みが存在(
    4) するならば、前記の最も高い優先順位の禁止されない中
    断状態の割込みのベクトル化された割込みアドレスを生
    成し、 (dl  もし割込みが禁止されなけれは、前記のベク
    トル化された割込みアドレスを前記の次のアドレス・レ
    ジスタ(63〕に対して転送し、(ei  もし禁止さ
    れない割込みが中断状態でなければサブルーチンに対し
    て分岐する前記マイクロ命令以降のマイクロ命令である
    第4のマイクロ命令を生成し、あるいはまたもし前記の
    中断状態の禁止されない割込みが存在するならば次のア
    ドレス・レジスタ(63)からのアドレスを用いて前記
    メモIJ−(24)から前記の以降の割込みサービス・
    ルーチンの第1のマイクロ命令を生成することを含むこ
    とと特徴とする方法。 2、 サブルーチンに対する前記の分岐実行ステップが
    、前記の戻り実行ステップが生じる前に数回反復される
    ことを特徴とする特許請求の範囲第1項記載の方法。 a 前記サブルーチンからの前記戻りステップが(5) 生じる前に、前記割込みサービス・ルーチンからの前記
    戻りステップが続く前記割込みサービス・ルーチンに対
    する前記割込み生成ステップが生1〕ることを特徴とす
    る特許請求の範囲第1虫記載の方法。 4、前記サブルーチンに対する前記の分岐実行ステップ
    が、 (α)前記のその時のマイクロ命令から次のアドレス全
    選択する第1の値を有する前記メモリー(24)から生
    成されたその時のマイクロ命令の1つのアドレス・フィ
    ールドにより第1のマルチプレクサ(60ルと使用可能
    状態にし、 (b+  全ての中断状態の割込みが禁止される時前記
    増分装置(64〕の出力から前記の戻りアドレスを選択
    すること、1だもし禁止されない中断状態の割込みが存
    在するならば前記第1のマルチプレクサの出力から戻り
    アドレスを選択することを戻りマルチプレクサ(61)
    f/I:許容することを含むことを特徴とする特許請求
    の範囲第1項記載の方法。 氏 前記割込みサービス・ルーチンに対する前記(6つ の割込み生成ステップが、 (ai  前記の次のアドレスとなる最も高い優先順位
    の禁止さnない中断状態の割込みの前記のベクトル化さ
    れた割込みアドレスを選択することを第2のマルチプレ
    クサ(62)[許容し、fbI  前He 第1のマル
    チプレクサ(60)カらの出力から前記の戻りアドレス
    を選択すること−tRリマルチブレクサ(61)に許容
    することを含むことを特徴とする特許請求の範囲第4項
    記載の方法。 0 前記サブルーチン筐たは割込みからの前記戻り実行
    ステップが、前記ブツシュ・ダウン・スタック(70)
    の前記第1のレジスタ(71’)から次のアドレスを選
    択する第2の値を有する前記メモリー(24)から生成
    された前記のその時のマイクロ命令の前記のアドレス・
    フィールドにより前記第1のマルチプレクサ(60)’
    &使用可能状態にすることを含むことを特徴とする特許
    請求の範囲第5項記載の方法。 7 前記のブツシュ・ダウントスタック(70)におけ
    る前記戻りアドレスを格納するステップが、(7) 複数のシフト・レジスタ70A乃至701(f第1の方
    向においてシフトすることにより達成され、丑だ前記プ
    ッシュ・ダウン・スタック(70)から前記戻りアドレ
    スkk送する前記ステップ2つS、前記第1の方向と反
    対である第2の方向において前記の複数のシフト・レジ
    スタ70A乃至70Kf1つの位置だけシフトすること
    により達成されることを特徴とする特許請求の範囲第6
    項記載の方法。 & 類1F可能な割込みの発生を禁止する前記ステップ
    は、中断状態の禁止可能でない割込みが存在しなけれは
    、前記のその時のマイクロ6間合の実行の直後に前記メ
    モリーから生成された以降のマイクロ命令の実行が続く
    ように、前記のその時のマイクロ命令の実行中前記の割
    込みを生じるステップが生じることを阻止し、前記の以
    降のマイクロ命令のアドレスは、禁止できる割込みの前
    記のベクトル化された割込みアドレスによらず前記のそ
    の時のマイクロ命令の実行により決定されることを特徴
    とする特許請求の範囲第1項記載の方法。 (8) 9、 前記の次のアドレス・レジスタ(63)における
    前記の次のアドレスを前記のその時のアドレス・レジス
    タ(66)に対して転送する前記ステップが、前記プッ
    シュ・ダウン・スタックの前記の第1のレジスタ(71
    )において前記の増分アドレスを格納する前記ステップ
    と同時であることを特徴とする特許請求の範囲第1項記
    載の方法。 10、  前H’tのその時のアドレス・レジスタ(6
    6)4C対して前記の次のアドレス・レジスタ(63)
    VCおける前記ベクトル化された割込みアドレスを転送
    する前記ステップは、前記ブツシュ・ダウン・スタック
    (70)の前記第1のレジスタ(71)に対;〜でその
    時のマイクロ命令からの前記戻のアドレスを格納する前
    記ステップと同時であることを特徴とする特許請求の範
    囲第1項記載の方法。 11、前記のブツシュ・ダウン・スタック(70)が過
    剰ポツプサービス・ルーチンのアドレスで?7J期化さ
    れ、調節する第1のレジスタ(71,72,73)に対
    してルベルだけ上げて前の戻りアドレスを転送する前記
    ステップが、前記ブツシュ・ダウン・(9) スタック(70)の前記第1のレジスタ(71)からの
    前記戻りアドレスの過剰転送の実施が前記の過剰ポツプ
    サルビス・ルーチンの実行を惹起する結果となるように
    、前記ブツシュ・ダウン・スタック(70)の最後のレ
    ジスタ(74)に対して前記の過剰ポツプサービス・ル
    ーチンのアドレスを転送することを含むことを特徴とす
    る特許請求の範囲第1項記載の方法。 12、複数のサブルーチン全アクセスするルーチンを実
    行し、かつ複数の割込みに応答して複数の割込みサービ
    ス・ルーチンを実行するためのデータ処理システム(1
    0,20,40)において、(A)一連のマイクロ命令
    を提供する装置(24,63,65)′!i−設け、各
    マイクロ命令は前記提供装置(24,63,65)のマ
    イクロ命令のアドレスを規定するアドレス・フィールド
    と転送経路を規定する指令フィールドとを含み、前記マ
    イクロ命令の第1のタイプは前記サブルーチンへの分岐
    を指定し、前記マイクロ命令の第2のタイプは前記サブ
    ルーチンまたは割込みサービス・ルーチンからの(10
    ) 戻り全規定し、 (B)禁止されない割込みの発生に応答して前記提供装
    置(24)により提供さイ′しる前記の一連のマイクロ
    命令を変更′する装置(58,59,62埼設け、該変
    更装置(58,59,62)は割込みサービス・ルーチ
    ンの始動アドレスとして使用される前記提供装置(24
    ,63,65)に対してベクトル化された割込みアドレ
    スを提供し、 (C)記憶装置(70)k設け、該記憶装置は、(α)
     複数の直列に相互に結合されたレジスタを含み、複数
    の該レジスタの1つは最上位の終端(71)であり、前
    記複数のレジスタの別のものは最下位の終端(74)で
    あり、前記複数のレジスタ(72,73)の残りは前記
    の最上位の終端(71)と最下位の終端(74)の中間
    にあり、前記複数のレジスタの各々は1つの戻りアドレ
    スケ保持するためのものであり、 (b+  前記最上位の終端(71)と前記の残りのレ
    ジスタと接続されて、前記提供装置(24,63,65
    )に応答して前記の複数のレジスタの前記の最下位(1
    1) の終端(74)K対して戻りアドレスを逐次伝播する第
    1の装置金言み、 (C)  前記の最下位の終端(74)および前記の残
    りのレジスタ(71,72,73)と接続され、前記提
    供装置(24,63,65)に応答して前記櫂数のレジ
    スタ(71,72,73,74)の前記の最上位の終端
    (71)に対して戻りアドレスを逐次伝播する最下位装
    置全容み、前記記憶装置(70)は前記の第1のタイプ
    のマイクロ命令および禁止されない割込みの発生に応答
    して前記の最」二位の終端レジスタ(71)において前
    のルーチンおよびサブルーチンの戻りアドレスを逐次格
    納し、 前記の一連の第2のタイプのマイクロ命令に応答して、
    前記記憶装置(70)の前記の最上位の終端レジスタ(
    71)から前記提供装置(24,63,65)に対して
    逆の順序に前記戻りアドレスを逐次転送する転送装置(
    60,62)を含むこと全特徴とするシステム。 1a 前記マイクロ命令の前記指令フィールドの第1の
    指令フィールドは、前記記憶装置(70)が前(12) 配転送装置(60,62)から前記戻りアドレスを受取
    ることを許容するための第1の値を有し、前記マイクロ
    命令の前記のアドレス・フィールドの第1のアドレス・
    フィールドは、前記記憶装置(70)が前記転送装置(
    60,62)に対して前記戻りアドレスを送ることを許
    容するための第1の値を有することを特徴とする特許請
    求の範囲第12項記載のシステム。 ■4 前記提供装置(24,63,65)の前記アドレ
    スを予め定めた数だけ増分する装置(64)k更に設け
    、前記の最上位の終端レジスタ(71)が、前記第1の
    指令フィールドにおける前記第1の値に応答して前記増
    分装置(64)から前記の増分されたアドレスを受取る
    ことを特徴とする特許請求の範囲第13項記載のシステ
    ム。 15、前記マイクロ命令の前記指令フィールドの第2の
    指令フィールドが、割込み全禁止する第1の値と割込み
    を許容する第2の値を有し、前記第2の制御フィールド
    の前の第1の値が前記第1の制御フィールドの前記の第
    1の値と関連して使用さく13) れて、前記サブルーチンの1つに対する分岐の間前記の
    戻りアドレスの格納中割込みの発生を阻止することを特
    徴とする特許請求の範囲第14項記載のシステム。 16、前記サブルーチンまたは割込みサービス・ルーチ
    ンからの戻りを指定する前記の第2のタイプの前記マイ
    クロ命令の間禁止されない割込みが生じるならば、前記
    の最上位の終端レジスタ(71)からの前記戻りアドレ
    スを前記提供装置(24,63,65)に対して前記記
    憶装置(70)が転送することを不能にする装置(90
    〜95)を更に設けることを特徴とする特許請求の範囲
    第14項記載のシステム。 17前記記憶装置(70)が複数のシフト・レジスタ(
    71〜74)からなることを特徴とする特許請求の範囲
    第13項記載のシステム。 1&ルーチンおよびサブルーチンを逐次アクセスし、か
    つ割込みサービス・ルーチンをアクセスするためのデー
    タ処理システムにおいて、(A)一連のマイクロ命令を
    提供する装置(24、(14) 65)を設け、各マイクロ命令は前記提供装置内の1つ
    のアドレスによりアドレス指定され、各マイクロ命令は
    前記提供装置のマイクロ命令の次のアドレス指定するア
    ドレス・フィールドと転送経路を規定する指令フィール
    ドとを含み、前記アドレス・フィールドの第1のアドレ
    ス・フィールドは前記サブルーチンへの分岐を指定する
    第1の値と前記サブルーチンまたは割込みサービス・ル
    ーチンからの戻りを規定する第2の値と’に’INし、
    前記指令フィールドの第1の指令フィールドは戻りアド
    レスの転送を指定する第1の値を有し、前記指令フィー
    ルドの第2の指令フィールドは割込みの禁止全指定する
    第1の値と割込みの許容音指定する第2の値とを有し、 (B)前記提供装置からアドレスを受取る装置(63)
    を設け、該受取装置からのアドレスは次のアドレスであ
    り、 (C)記憶装置(70)を設け、該記憶装置は、(a)
    直列に相互に結合された複数のレジスタ(71〜74)
    ヲ含み、複数の該レジスタの1つは最上位の終端レジス
    タ(71)であり、前記複数のレジスタの別のものは最
    下位の終端レジスタ(74)であり、前記複数のレジス
    タの残り(72,73)は前記の最上位と最下位の終端
    レジスタの中間にあり、前記複数のレジスタの各々は1
    つの戻りアドレスを保持するためのものであり、 (b+  前記最上位の終端および前記の残りのレジス
    タと接続され、前記の複数のレジスタ(71〜74)の
    前記の最下位の終端(74)に対して前記戻りアドレス
    を逐次伝播する前記第1の指令フィールドに応答する第
    1の装置(80〜85.90〜95)と、 (CI  前記の最下位の終端および前記の残りのレジ
    スタと接続され、前記複数のレジスタ(71〜74)の
    前記の最上位の終端(71)に対して前記民リアドレス
    を逐次伝播する前記の第2の値を有する前記第1のアド
    レス・フィールドに応答する第2の装置(86,88,
    90〜95)を含み、(d+  前記の最上位の終端レ
    ジスタ(71)は、前記第1の値を有する前記第1のア
    ドレス・フィールドと前記第1の値を有する前記第1の
    指令フィールドとに応答して、前記戻りアドレスを受取
    り、(D)@記憶2の値を有する前記第1のアドレスフ
    ィールドに応答して前記戻りアドレスを前記の最上位の
    終端レジスタ(71)から前記受取り装置(63)に対
    して転送する装置(60,62)を設けることを特徴と
    するシステム。 19、前記受取り装置(63)と接続されて、その時の
    アドレスを予め定めた数だけ増分して増分されたその時
    のアドレスを生じる増分装置(64)k更に設け、前記
    のその時のアドレスはその時のマイクロ命令を提供する
    ため使用される前記提供装置(24,65)内の前記ア
    ドレスであり、前記第1の値全有する前記第1の指令フ
    ィールドは前記の増分されたその時のアドレスを前り己
    最上位の終端レジスタ(71)に対して転送されること
    を許容し、前記の増分されたアドレスは戻りアドレスで
    あることを特徴とする特許請求の範囲第18項記載のシ
    ステム。 20、前記記憶装置(70)が更に、前記第2の値を(
    17) 有する前記第1のアドレス・フィールドと、前記第2の
    匝を有する前記第2の指令フィールドと、前記の複数の
    レジスタ(71〜74)の前記の最上位の終端レジスタ
    (71)、最下位の終端レジスタ(74)および残るレ
    ジスタ(72,73)に宮まれる前記戻りアドレスを保
    持するための泉止されない割込みの発生とに応答する第
    1の装置(86)’に含むことを特徴とする特許請求の
    範囲N18項記載のシステム。 21、@記提供装置(24,65)が、(A)前記記憶
    装置(24,65)に対して接続され、前記第1のアド
    レス・フィールド、前記第lの指令フィールドおよび前
    記第2の指令フィールドを営む前記のその時のマイクロ
    命令を受取る出力レジスタ(65)と、 (B)前記出力レジスタ(65)と接続され、前記第2
    の値を有する前記第1のアドレス・フィールドに対して
    応答して前記第1の装置(80〜85.90〜95)を
    部分的に使用可能状態にする第1の復号装置(86)と
    、 (18) 前記出力レジスタ(65)と接続され、前記第2の直を
    有する前記第2の指令フィールドに応答して前記第1の
    装置(80〜85.90〜95)を部分的に使用可能状
    態にする第2の復号装置(80〜83)と、 (C)前記第1の装置(80〜85.90〜95)と接
    続され、割込みの発生に応答して前記第1の装置(80
    〜85.90〜95)を部分的に使用可能状態にする割
    込み装置(54)とを営むこと全特徴とする特許請求の
    範囲第20項記載のシステム。 乙、第1の値を有する前記第1のアドレス・フィールド
    と、第1の値を有する前記第1の指令フィールドと、前
    記第1の値を有する前記第2の指令フィールドが前記サ
    ブルーチンに対して分岐するマイクロ命令において提供
    され、前記第2の値を有する前記第1のアドレス・フィ
    ールドが前記サブルーチンおよび割込みサービス・ルー
    チンの最後のマイクロ命令において提供されることを特
    徴とする特許請求の範囲第21項記載のシステム。 2a前記指令フイールドの1つが、指定された1つの条
    件が満たされる場合にのみ前記第1の匝を有する前記第
    1のアドレス・フィールドにより指定されるサブルーチ
    ンに対する前記分岐が実施されることを規定することを
    特徴とする特許請求の範囲第18項記載のシステム。 24前記第1のアドレス・フィールドが前記第1の指令
    フィールドから独■することを特徴とする特許請求の範
    囲第18項記載のシステム。 部、前記第2の指令フィールドが前記第1の指令フィー
    ルドから独文すること全特徴とする特許請求の範囲第2
    4項記載のシステム。 2G@記の複数のレジスタ(71〜74)が複数のシフ
    ト・レジスタ70A乃至70Lからなることを特徴とす
    る特許請求の範囲第18項記載のシステム。 27  前記分岐実行ステップ育たば前記の割込みを生
    じるステップが、前記のその時のマイクロ命令の実行の
    ため使用されるものと同じマイクロサイクルにおいて行
    なうことができることを特徴とする特許請求の範囲第1
    項記載の方法を実施するシステム。
JP58229034A 1982-12-03 1983-12-03 プログラム・カウンタ・スタック方法およびネストされたサブル−チンと命令用の装置 Expired - Lifetime JPH0666051B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US446748 1982-12-03
US06/446,748 US4488227A (en) 1982-12-03 1982-12-03 Program counter stacking method and apparatus for nested subroutines and interrupts

Publications (2)

Publication Number Publication Date
JPS59111542A true JPS59111542A (ja) 1984-06-27
JPH0666051B2 JPH0666051B2 (ja) 1994-08-24

Family

ID=23773700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58229034A Expired - Lifetime JPH0666051B2 (ja) 1982-12-03 1983-12-03 プログラム・カウンタ・スタック方法およびネストされたサブル−チンと命令用の装置

Country Status (11)

Country Link
US (1) US4488227A (ja)
EP (1) EP0111407B1 (ja)
JP (1) JPH0666051B2 (ja)
KR (1) KR900007565B1 (ja)
AU (1) AU573194B2 (ja)
BR (1) BR8306655A (ja)
CA (1) CA1205564A (ja)
FI (1) FI83458C (ja)
HK (1) HK64292A (ja)
SG (1) SG67692G (ja)
YU (1) YU45579B (ja)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636944A (en) * 1984-01-17 1987-01-13 Concurrent Computer Corporation Multi-level priority micro-interrupt controller
US4792890A (en) * 1985-12-31 1988-12-20 International Business Machines Corp. Method for resolving conflicts between interrupt sources sharing the same priority level
US5161217A (en) * 1986-10-14 1992-11-03 Bull Hn Information Systems Inc. Buffered address stack register with parallel input registers and overflow protection
JPS63108457A (ja) * 1986-10-24 1988-05-13 Brother Ind Ltd デ−タ処理装置
US4800491A (en) * 1986-11-17 1989-01-24 General Electric Company Register-stack apparatus
US5179688A (en) * 1987-06-30 1993-01-12 Tandem Computers Incorporated Queue system with uninterrupted transfer of data through intermediate locations to selected queue location
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
US5287483A (en) * 1988-07-06 1994-02-15 Kabushiki Kaisha Toshiba Prefetched operand storing system for an information processor
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
US5043879A (en) * 1989-01-12 1991-08-27 International Business Machines Corporation PLA microcode controller
JPH02190937A (ja) * 1989-01-19 1990-07-26 Sanyo Electric Co Ltd マイクロコンピュータの割り込み回路
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
DE69114321T2 (de) * 1990-02-20 1996-07-18 Nec Corp Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5175853A (en) * 1990-10-09 1992-12-29 Intel Corporation Transparent system interrupt
JP2507833B2 (ja) * 1990-12-25 1996-06-19 三菱電機株式会社 マイクロコンピュ−タ
JPH0831041B2 (ja) * 1991-09-06 1996-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラム条件処理方法およびコンピュータ・システム
US5455949A (en) * 1991-09-06 1995-10-03 International Business Machines Corporation Method for representing and signaling run-time program conditions
JP3182438B2 (ja) * 1991-10-28 2001-07-03 株式会社日立製作所 データプロセッサ
US5448707A (en) * 1991-10-29 1995-09-05 Intel Corporation Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns
US5274817A (en) * 1991-12-23 1993-12-28 Caterpillar Inc. Method for executing subroutine calls
JP3211423B2 (ja) * 1992-10-13 2001-09-25 ソニー株式会社 分岐命令実行方法および分岐命令実行装置
US5640548A (en) * 1992-10-19 1997-06-17 Motorola, Inc. Method and apparatus for unstacking registers in a data processing system
US5450349A (en) * 1992-10-27 1995-09-12 Digital Equipment Corporation Computer system performance evaluation system and method
JPH0749790A (ja) * 1993-06-01 1995-02-21 Matsushita Electric Ind Co Ltd プロセッサにおける割り込み制御方法及び割り込み制御回路
US5701479A (en) * 1993-06-15 1997-12-23 Xerox Corporation Pipelined image processing system for a single application environment
US5995996A (en) * 1993-06-15 1999-11-30 Xerox Corporation Pipelined image processing system for a single application environment
US5396616A (en) * 1993-06-15 1995-03-07 Xerox Corporation System for emulating multi-tasking pipelines in a single tasking environment
US5553259A (en) * 1993-07-16 1996-09-03 Unisys Corporation Apparatus and method for synchronizing the simultaneous loading of cache program word addresses in dual slice registers
US5922070A (en) * 1994-01-11 1999-07-13 Texas Instruments Incorporated Pipelined data processing including program counter recycling
US5537541A (en) * 1994-08-16 1996-07-16 Digital Equipment Corporation System independent interface for performance counters
US5671422A (en) * 1994-11-14 1997-09-23 Intel Corporation Method and apparatus for switching between the modes of a processor
JP3504355B2 (ja) * 1994-12-06 2004-03-08 松下電器産業株式会社 プロセッサ
US6081880A (en) * 1995-03-09 2000-06-27 Lsi Logic Corporation Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
US5966529A (en) * 1995-05-15 1999-10-12 Zsp Corporation Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
KR100381876B1 (ko) * 1995-07-03 2003-07-18 텍사스 인스트루먼츠 인코포레이티드 프로그램카운팅시스템및카운터의동작방법
US5732272A (en) * 1995-07-31 1998-03-24 Apple Computer, Inc. Subroutine execution time tracer
US5900025A (en) * 1995-09-12 1999-05-04 Zsp Corporation Processor having a hierarchical control register file and methods for operating the same
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
CA2159979C (en) * 1995-10-05 1999-05-25 Arthur Lai Methology to link any pci rom based device using a single software or hardware interrupt vector in pc system at runtime
JP2850808B2 (ja) * 1995-10-31 1999-01-27 日本電気株式会社 データ処理装置およびデータ処理方法
US5606703A (en) * 1995-12-06 1997-02-25 International Business Machines Corporation Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures
US5761491A (en) * 1996-04-15 1998-06-02 Motorola Inc. Data processing system and method for storing and restoring a stack pointer
US6070218A (en) * 1998-01-16 2000-05-30 Lsi Logic Corporation Interrupt capture and hold mechanism
US6065088A (en) 1998-08-31 2000-05-16 International Business Machines Corporation System and method for interrupt command queuing and ordering
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6934939B2 (en) * 2001-02-28 2005-08-23 International Business Machines Corporation Method for unwinding a program call stack
US7231511B2 (en) * 2001-12-20 2007-06-12 Intel Corporation Microinstruction pointer stack including speculative pointers for out-of-order execution
US7607133B2 (en) * 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
US7206884B2 (en) * 2004-02-11 2007-04-17 Arm Limited Interrupt priority control within a nested interrupt system
GB2478733B (en) * 2010-03-15 2013-08-14 Advanced Risc Mach Ltd Apparatus and method for handling exception events
DE102011005209B4 (de) 2011-03-07 2016-06-23 Infineon Technologies Ag Programmanweisungsgesteuerte Instruktionsflusskontrolle
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US9477834B2 (en) 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US9116711B2 (en) 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9213828B2 (en) * 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US9202071B2 (en) 2012-02-08 2015-12-01 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50128429A (ja) * 1974-03-28 1975-10-09
JPS54106142A (en) * 1978-02-08 1979-08-20 Nec Corp Data processor
JPS5552152A (en) * 1978-10-13 1980-04-16 Hitachi Ltd Control system for program address
JPS564943A (en) * 1979-06-26 1981-01-19 Nec Corp Noise removing unit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253425A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3909797A (en) * 1973-12-13 1975-09-30 Honeywell Inf Systems Data processing system utilizing control store unit and push down stack for nested subroutines
US4287559A (en) * 1977-02-09 1981-09-01 Texas Instruments Incorporated Electronic microprocessor system having two cycle branch logic
US4340933A (en) * 1979-02-12 1982-07-20 Honeywell Information Systems Inc. Data processing system having centralized nonexistent memory address detection
US4398244A (en) * 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4438492A (en) * 1980-08-01 1984-03-20 Advanced Micro Devices, Inc. Interruptable microprogram controller for microcomputer systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50128429A (ja) * 1974-03-28 1975-10-09
JPS54106142A (en) * 1978-02-08 1979-08-20 Nec Corp Data processor
JPS5552152A (en) * 1978-10-13 1980-04-16 Hitachi Ltd Control system for program address
JPS564943A (en) * 1979-06-26 1981-01-19 Nec Corp Noise removing unit

Also Published As

Publication number Publication date
YU45579B (sh) 1992-07-20
JPH0666051B2 (ja) 1994-08-24
FI834414A0 (fi) 1983-12-02
US4488227A (en) 1984-12-11
FI83458B (fi) 1991-03-28
EP0111407B1 (en) 1992-04-29
KR900007565B1 (ko) 1990-10-15
KR840007187A (ko) 1984-12-05
AU2160783A (en) 1984-06-07
EP0111407A2 (en) 1984-06-20
BR8306655A (pt) 1984-07-17
HK64292A (en) 1992-09-04
CA1205564A (en) 1986-06-03
YU236183A (en) 1986-10-31
FI83458C (fi) 1991-07-10
SG67692G (en) 1992-12-04
AU573194B2 (en) 1988-06-02
EP0111407A3 (en) 1984-07-18
FI834414A (fi) 1984-06-04

Similar Documents

Publication Publication Date Title
JPS59111542A (ja) プログラム・カランタ・スタツク方法およびネストされたサブル−チンと命令用の装置
US4016545A (en) Plural memory controller apparatus
US4398244A (en) Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4297743A (en) Call and stack mechanism for procedures executing in different rings
US4077058A (en) Method and apparatus for executing an extended decor instruction
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
EP0138419B1 (en) Central processing unit for a digital computer
CA1109967A (en) Expandable microprogram memory
US3753236A (en) Microprogrammable peripheral controller
US3909797A (en) Data processing system utilizing control store unit and push down stack for nested subroutines
EP0056008A2 (en) Apparatus for writing into variable-length fields in memory words
US4591972A (en) Data processing system with unique microcode control
JPS60151761A (ja) 10進演算用に連続したデ−タ装置をアクセスするためのニブルおよびワ−ド・アドレス指定可能なメモリ−
US4569018A (en) Digital data processing system having dual-purpose scratchpad and address translation memory
US4305124A (en) Pipelined computer
JPS5834862B2 (ja) アレイ・プロセツサ
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
GB2037041A (en) Cache unit
US5097407A (en) Artificial intelligence processor
US5682531A (en) Central processing unit
US4287561A (en) Address formulation interlock mechanism
JPH02140830A (ja) 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置
KR100385495B1 (ko) 워드정렬브랜치타겟을가지는처리시스템
US3936804A (en) Data processing system incorporating a logical move instruction
EP0010196B1 (en) Control circuit and process for digital storage devices