JPS6361691B2 - - Google Patents

Info

Publication number
JPS6361691B2
JPS6361691B2 JP48125871A JP12587173A JPS6361691B2 JP S6361691 B2 JPS6361691 B2 JP S6361691B2 JP 48125871 A JP48125871 A JP 48125871A JP 12587173 A JP12587173 A JP 12587173A JP S6361691 B2 JPS6361691 B2 JP S6361691B2
Authority
JP
Japan
Prior art keywords
register
output
input
bit
instruction
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
JP48125871A
Other languages
English (en)
Other versions
JPS5047534A (ja
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 filed Critical
Publication of JPS5047534A publication Critical patent/JPS5047534A/ja
Publication of JPS6361691B2 publication Critical patent/JPS6361691B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • 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/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/264Microinstruction selection based on results of processing
    • G06F9/265Microinstruction selection based on results of processing by address selection on input of storage

Description

【発明の詳細な説明】
発明の背景 この発明はデイジタルコンピユータに関し、特
にLSI(大規模集積)構成に適しモジユラ方式多
重処理システムに多種多様な機能を与えるマイク
ロプログラム可能デイジタル構成装置に関するも
のである。 情報処理システムの能力を増加させるため各種
のタイプのシステム構成法が創造されている。複
数のプロセサ、およびインターロツクスイツチ装
置を介して1個以上のメモリモジユールをアクセ
スするように構成された入力/出力(I/O)制
御器をもつた多重処理システムが考案されてい
る。このような多重処理システムは、異なつたプ
ログラムを同時に実行し、または各プロセサが汎
用プロセツサである場合1つのプログラムのいく
つかの部分を同時に実行するように構成できる。
他の多重処理システムでは、各プロセサは例えば
行列乗算、反転などの機能を実行するように構成
された特定用途のプロセサでよい。 多重処理システムの傾向に追随するため、先行
技術によつて超小型から超大型に至るまで夫々事
務および科学用途だけでなくデータ伝送、データ
取得などの制御を実行できる各種のコンピユータ
処理システムが開発されている。数百、数千の反
復ステツプを必要とする大掛りな計算問題が含ま
れている場合、命令実行の所定のサイクル内に処
理できる処理スピードおよびデータのビツト数が
重要視される。このような場合、システムはデー
タに対し実行するのに必要な長いデータおよび多
数のアルゴリズム的なプロセスを処理できるよう
に設計されていた。命令実行のスピードを上げる
ため、このようなシステムは直接結線された回路
にて構成されていた。しかし、主としてこのよう
な考慮をするため、大型または科学用コンピユー
タは極めて高価で厄介な機械であつた。 他方、データ処理業界のなかでもより廉価なコ
ンピユータを要望する分野では、コンピユータシ
ステムは命令実行のスピードとは逆に価格フアク
タを考慮に入れて設計されていた。その結果、設
計された回路およびシステムは比較的簡略化さ
れ、各種のアルゴリズムはプログラマによつて具
体化されていた。さらに大型かつ高能力の処理シ
ステムと比較した場合、廉価なシステムはプログ
ラムの各個のステツプを実行しなければならず、
またその回路を保護するため比較的短いデータ、
情報を処理するように設計されていたので、プロ
グラム実行に必要な時間は相対的に遅かつた。そ
の結果、両タイプのシステムの設計者は各システ
ムに対し異なつた2個の算術および論理ユニツト
を設計し製造しなければならず、ただ1個の装置
の大量生産によつて得られるであろう経済上の利
点を失うことになる。 上記した設計上の考慮は計算および他の論理操
作の制御と同時に入出力操作の制御に必要な十分
な規模をもつた多重処理システムにとつて固有で
ある。このような別個の入出力制御装置は類似
し、時には演算装置をそなえ、多くの場合には局
部記憶能力をそなえた本来の汎用デイジタルコン
ピユータでさえある。しかし、入出力制御装置の
機能および設計はなおそれと関連した汎用プロセ
ツサとは相違している。 異なつた設計による多重処理システムの他の欠
点は別のシステムへのプログラミングの互換性が
無いことである。大型かつ高能力のシステムでル
ーチンが回路によつて具体化されている場合、1
つのルーチンを遂行するには1つの命令のみが必
要となる。しかし、小型のシステムでは、同じル
ーチンを実行するのに複数個の命令が必要とされ
る。各設計者は長さの違つた別々の命令書式を使
用しまた命令書式でも違つたフイールド寸法を使
用しているので、このようなプログラムの互換性
の欠如は違つたハードウエア会社で設計されたシ
ステム間においてより一層致命的であつた。 「機械語」のこのような相違を克服するため、
各種各様のプログラミング言語が開発され、その
なかでもFORTRAN、COBOL、ALGOLが一般
的である。このような高レベルのプログラミング
言語で書かれたプログラムはコード解読され異な
つたコンピユータシステムで使用されるが、この
ようなプログラムはまず特定のシステムの機械語
に翻訳されなければならない。この翻訳は時には
コンパイラと呼ばれる監視プログラムによつて達
成され、もしこのような監視プログラムが特定の
プログラミング言語用に設けられていない場合に
は、コンピユータユーザは自身のプログラムを自
身のシステムが有するコンパイラに適した言語に
書き直さなければならない。 その結果、回路すなわちハードウエア、および
プログラミングすなわちソフトウエア両者の互換
性の無さをなくすような各種のタイプのシステム
構成法が考案されている。ある特定の生産ライン
ではある程度の成果が得られたが、各種のプログ
ラミング言語間の非互換性をなくそうとする試み
によつて本質的にはより多くのプログラミング言
語が創作されただけである。 先行技術で使用されていた特定の構成法では、
附加的な処理装置を追加することによつてシステ
ムの容量を増加でき、一方記憶装置を追加するこ
とによつてシステムの記憶容量を増加できるよう
なモジユーラ処理装置および記憶装置の設計法が
あつた。別の技術では各部の生産ラインに対し基
本単位セグメントの整数倍となるようにデータ通
路の幅を設計し、また生産ラインに対しその基本
セグメントの整数倍となるように命令書式を採用
している。 コンピユータの設計およびコンピユータのプロ
グラミングでのより融通性を可能とする特定の構
成法と言えばマイクロプログラム即ちマイクロ命
令の思想である。初期においてマイクロ命令とは
単に1つのマクロ命令書式で使用される制御ビツ
ト群として教示されていた。このような制御ビツ
トは乗算命令、シフト命令などの実行期間矯正的
な判断基準を提供する。マイクロプログラミング
の思想が次第に拡張されるにつれて、マイクロ命
令は2つの演算数の加算のような実行すべきある
ルーチンを特定するようになつた。マクロ命令の
実行はマイクロ命令の実行のシーケンスによつて
達成され、各マイクロ命令は夫々異なつたシーケ
ンス時間でセツトすべき所望のゲートを特定する
ものであつた。複数のマクロ命令は有限な複数群
のマイクロ命令で具体化できるので、これらの同
じマイクロ命令は明らかに別個のマクロ命令の実
行にあたつてあるシーケンスでアドレスされる1
個の記憶装置に記憶させることができた。さらに
マイクロ命令の各種のシーケンスはある操作を実
行し任意の記憶装置に別個に記憶されるように系
統立てることができた。したがつて、極めて多種
類のルーチンを実行するためマイクロ命令の極め
て多種類のシーケンスを作ることができ、コンピ
ユータシステムが特定のルーチンを実行するよう
に設計されている場合、記憶されるであろうマイ
クロ命令の必要なシーケンスのみをこのような特
定のルーチンの実行のため呼び出すことができ
る。 その後、マイクロ命令あるいはマイクロプログ
ラムの思想はプログラマには隠された複数補助命
令群の思想となり、プログラマによつて要求され
るべき多数の特定ステツプを極少とすることによ
つて特定のプログラムの記述は簡略化された。さ
らに、マイクロプログラミングの概念によつてコ
ンピユータ設計者にとつて各個の機能を手で結線
された回路で具体化する必要性はなくコンピユー
タ使用者に極めて多種類のルーチンを提供できる
一層低廉なコンピユータシステムを設計すること
が可能となつた。 さらに、マイクロプログラミングはワードを基
本として構成され記憶装置に記憶される制御信号
のシーケンスによつてデイジタルコンピユータシ
ステムの制御機能を設計し具体化する技法として
広く評価されるようになつてきた。従来技術で
は、通常の制御ユニツトは比較的変則的な特別な
方法でフリツプフロツプ(例えば、レジスタ、カ
ウンタ)およびゲートを使用することによつて設
計されていた。一方、マイクロプログラム可能な
プロセサの制御ユニツトは十分構成された記憶素
子を使用して構成され、十分構成され融通性のあ
る制御機能を提供する。もしメモリユニツトが変
更可能であれば、機械言語のレベルで着限すると
マイクロプログラミングはシステム構成法の変更
を可能とする。したがつて、同一のハードウエア
であつても多種多様のシステム構造として表わ
れ、遂行すべき各タスクに対し最良の処理能力を
発揮する。マイクロプログラムメモリを変更しう
るこのような能力はリードオンリーメモリ
(ROM)で使用されているスタテイツクマイク
ロプログラミングと対比してダイナミツクマイク
ロプログラミングと呼ばれる。 ダイナミツクに変更しうる制御記憶装置および
他のマイクロプログラミング技法の出現によつ
て、マイクロプログラミング装置は夫々異なつた
問題またはタスク上の要求に適応するように変更
しうる命令実行能力をもつたものとして設計され
るようになつた。このようなマイクロプログラム
可能ユニツトは価格の点からみれば処理能力に関
し大型および小型コンピユータのギヤツプを埋
め、上記したような回路すなわちハードウエアの
互換性のなさおよびプログラミングすなわちソフ
トウエアの互換性のなさを実質的に一挙に解消し
た。多重処理の応用に際し、必要とされる入出力
制御はプログラム可能ユニツトの処理するタスク
の一部として組込まれる。 上記のごとき機能上の特徴をもつたプログラム
可能ユニツトは1969年5月19日に提出されこの出
願と同一の渡受人に譲渡されたフエイバー等のア
メリカ合衆国特許出願第825569号に開示されてい
る。そこに開示されているプログラム可能ユニツ
トは構造がモジユラ方式であつて、多レベルの複
数群の補助命令または複数群のマイクロ命令によ
つて制御される。最下位レベルの補助命令の命令
定義だけは手で結線された回路によつて固定され
ているが、高位レベルの定義は変更可能であつ
て、それぞれのマイクロ命令列は現在実行されて
いかなるプログラムの要求に応じても交換しうる
ものである。 したがつて、このようなプログラム可能ユニツ
トはある時に入出力データ転送制御のために使用
でき、別の時には特定の高レベルプログラム言語
で書かれたプログラムを実行するのに使用でき、
さらに別の時には他のプログラミング言語で書か
れたプログラムを実行するのに使用できる。この
ようなプログラム可能ユニツトの融通性のため、
2個以上のユニツトを多重処理システムに使用で
き、入出力制御などの特定の機能にかまわず附加
的なユニツトを追加して多重処理システムの能力
を増加させることができる。 上記のフエイバー等の出願で記載しているよう
なシステムの或る特徴はそれぞれのマイクロ命令
を補助命令のより下位のレベルで解釈しコード解
読する点にあり、このためマイクロ命令の意義を
異なつた応用例に応じて変更できる。このタイプ
のシステムで得られる重要かつ特別の利点は複数
のマイクロ命令をオーバーラツプしながら実行で
きる点にあり、その結果、あるタイプのマイクロ
命令は条件付きであつてその実行はそれぞれの状
態のテストまで遅延され、別のマイクロ命令はこ
のようなテストの結果が出来るまで読込まれる。
フエイバー等のシステムはマイクロプログラム内
での分岐を可能とする。他のマイクロプログラム
システムと同様に、1つのマクロ命令は夫々1つ
のレジスタから他のレジスタへのデータ転送、論
理操作あるいはこれらに類するものを特定する1
列のマイクロ命令の実行によつて実行される。 上記したようなフエイバー等の出願に係るシス
テムにおいて、各マイクロ命令は情報転送のため
に必要とされるそれぞれのゲートをセツトする制
御信号群によつて具体化される。このような制御
信号は制御メモリから選択され、制御メモリのタ
イプにしたがつてダイナミツクに変更できる。マ
イクロ命令はメモリおよび装置の操作、データシ
フトを含んだ論理操作(入出力制御)を特定し、
また他のマイクロ命令の実行のため必要とされる
リテラル情報(データ、飛越しアドレス、シフト
けた数)を含むことができる。 上記したフエイバー等の出願に開示されたシス
テムは技術上の顕著なる進歩を示しているが、卓
上計算器、簡単な制御器(例えば、遠隔現金出納
器、テレタイプ交換機カード、プリンタなど)か
ら実質的に小型の情報端末器(例えば、キイーテ
ープ/デイスク、店頭取付機器など)に至るまで
の単純な「作業機能」を具体化する低廉かつ小型
のマイクロプログラム可能なプロセツサの出現が
なお望まれている。上記のフエイバー等の出現に
開示されているシステムの本質的な構造上の特徴
はリテラルタイプの割当てを特定するマイクロ命
令以外のあらゆるマイクロ命令が論理操作が必要
とされているか否かに関係なく論理装置を結合す
ることにある。この特徴は主としてフエイバー等
システムにおける命令実行がオーバーラツプしな
がら行われることに起因する。装置またはメモリ
制御器のような極少の論理操作を含んだ単純な作
業機能によつてあらゆる情報の転送操作のために
論理装置が結合される。効率および価格の点から
みれば上記のフエイバー等の出願で開示されてい
るプログラム可能ユニツトはこのタイプの単純な
「作業機能」を遂行するには不適当である。 したがつて、この発明の主たる目的は今日の多
重処理システムの特徴である基本機能を具体化す
る簡単、小型かつ低廉なプログラム可能ユニツト
を提供することにある。 この発明のマイクロプログラム可能ユニツトは
特にキーボード、バツジリーダ、デイスク、デー
タコムなどの人間−機械インターフエイスを含ん
だ簡単なハードウエアインターフエイスとして適
当である。従来技術による設計では、これらのイ
ンターフエイスは所要のドライバ、レベル変換器
およびバツフアをそなえた特定用途の制御器(例
えば、カードリーダ制御器、磁気テープリーダな
ど)の形をとつていた。これらの制御器は夫々論
理設計、パツケージ、調達、応用および手直し、
さらには予備並びに保守の手順を含んだそれらの
構成のための別個かつ完全な設計サイクルを必要
とする。 この発明の他の目的は特定の機能に応用される
までそれ自体の機能が限定されない改良型プログ
ラム可能汎用制御器構成ブロツクを提供すること
にある。 汎用制御器構成ブロツクは極少のハードウエア
を介して機能をマイクロプログラミングすること
によつてインターフエイスに対し特有とされる。
プログラム可能論理制御器は(1)、リレー接点、リ
ミツトスイツチ、端子装置、押釦、弁などの入力
を走査し、(2)、入力をプログラムで特定された状
態と比較し、(3)、データを給送しプログラムされ
た命令にしたがつて出力を駆動もしくは停止する
ことによつて、シーケンス操作を遂行する。 したがつて、この発明の他の目的はかなり省略
された設計サイクル、制御器の多種多様の応用に
対しても同一の構成ブロツクの大量生産、更新の
容易さ、予備部品在庫の軽減並びに保守、訓練で
の大幅なコストダウンによつて大幅に製造原価を
低減できる改良型マイクロプログラム可能制御器
を提供することにある。 この発明のマイクロプログラム可能ユニツトが
指向する典型的な作業機能は略500−1000個の論
理ゲートによつて実行される。今日の半導体技
術、特に金属酸化膜半導体(MOS)技術によつ
て、この発明のマイクロプログラム可能ユニツト
の複雑さは十分1チツプ技術の範囲内に組込まれ
る。 したがつて、この発明の他の目的は1個の半導
体チツプ上に構成できるように設計されたプログ
ラム可能プロセツサを提供することにある。 過去において一般的な多くの回路をLSI構成す
るのに最大の障害はデータ転送および制御に必要
とされる外部接続ピンの数が極めて多いことが原
因であつた。 したがつて、この発明の他の目的はLSI技術を
使用してモノリシツクシングルチツプとしてリー
ドオンリーマイクロプログラムメモリを含んだ1
個の多ピン付きパツケージの内部に構成できるよ
うに設計されたマイクロプログラム可能プロセツ
サを提供することにある。 この発明の他の目的は改良された動作環境を実
現し比較的簡単なオンラインプログラムの手直
し、分析および診断を容易にするマイクロプログ
ラム可能な人間−機械インターフエイスを提供す
ることにある。 この発明のさらに別の目的は、外部読み書きマ
イクロプログラムメモリを利用して、特定の作業
機能に対し最適のビツトパターンを導出し、特定
の作業機能に合つたモジユールになるようにプロ
グラム可能ユニツトの不変論理部に関連して使用
されるROMパターンマスクを発生するマイクロ
プログラミング可能処理ユニツトを提供すること
にある。 この発明の附加的な目的は機械言語とは無関係
な改良型マイクロプログラム可能データプロセツ
サを提供することにある。 この発明のさらに別の目的は夫々がマイクロプ
ログラムを介して特定の「作業機能」に仕立てら
れた複数個のマイクロプログラム可能ユニツトを
使用するモジユーラ方式多重処理システムを提供
することにある。 この発明のさらに別の目的は局所的または遠隔
的に中央コンピユータと簡単にインターフエイス
できるマイクロプログラム可能な制御器を提供す
ることにある。 この発明のさらに他の目的はこの分野の熟練者
にとつて以下の明細書および前述の特許請求範囲
を研究することによつて明白となろう。 発明の概要 この発明はマイクロプログラミング技法ととも
にソフト機械構成法を使用する内蔵型バイト直列
式プロセツサに向けられる。命令群の個々の命令
を実行するためのある回路は単純かつ極少のレベ
ルで維持され、大規模集積技術によつてメモリ、
論理、制御およびアドレス機能をすべて構成でき
る。特に、マイクロプログラムのレベルにて命令
群が与えられ、コンピユータの基本操作を実行す
る時にプロセツサの特定の回路を制御する。本質
的に、特定の回路は最小限度に委託された論理回
路すなわちハードウエアであつて、このハードウ
エアは命令群で作られた制御信号によつて特定の
タスクが委託される。論理、制御およびアドレス
機能は基本的操作、コンピユータ操作を実現する
のに必要なゲート、レジスタ、ドライバおよび関
連の論理回路を含んだ回路によつて達成される。
マイクロプログラムにおいて完全に作業機能を指
示することによつて所要の外部接続ピンの数は減
少される。 好ましい実施例の詳細な説明 この発明のプログラム可能処理ユニツト10
(第1図)は5個の機能部品によつて構成される。
即ち、所要のシフト、演算および論理機能を実行
し、さらにスクラツチパツトレジスタ機能を与え
る論理ユニツト12(LU);いくつかのワードは
リテラルを有し他のワードはマイクロプログラマ
によつて特定された特定の制御信号を有するマイ
クロプログラムのシーケンスを与えるマイクロプ
ログラムメモリ14(MPM);マイクロプログ
ラムアドレスのためレジスタ機能を与えるメモリ
制御ユニツト16(MCU);タイミング、状態制
御、後続(次の命令)決定および命令コード解読
を与える制御ユニツト18(CU);並びに外部イ
ンターフエイス20(EXI)によつて構成され
る。これらの機能ユニツトは以下概略的に説明
し、そ後詳細に説明する。 好ましい実施例において、論理ユニツト12は
夫々レジスタA1,A2,A3で表わされる3個
の8ビツト再循環シフトレジスタ22,24,2
6、Bレジスタで表わされる8ビツト再循環シフ
トレジスタ28、直列加算器30および関連する
ゲートによつて構成される(第2図参照)。Aレ
ジスタ22,24,26、およびBレジスタ28
は再循環シフトレジスタであるので、情報は各入
力Aレジスタの内容を変化させることなく加算器
30に転送することができる。この特徴は理想的
にMOSダイナミツク論理構成に適するものであ
る。 すべてのAレジスタ22,24,26は機能的
に同一である。これらのレジスタはプログラム可
能ユニツト10内のデータを一時的に記憶し、各
Aレジスタへの入力を決定する選択ゲート網36
を介して加算器30の出力が読込まれることもあ
る。選択ゲート網40によつていずれかのAレジ
スタ22,24,26の内容がX入力70で表わ
される加算器30への一方の入力として使用され
る。 Bレジスタ28は外部インターフエイス20を
介して多重処理システムのメインメモリ(第1図
で「データイン」として示されている)からの1
次のインターフエイスである。Bレジスタ28は
また加算器30への第2、即ちY入力72として
作用し、算術操作のサイド効果を集める。選択ゲ
ート網38を介して、Bレジスタ28には選択ゲ
ート36を通過してきた加算器30の出力、外部
インターフエイス20を介して外部より与えられ
た「データイン」、あるいはBレジスタ自体の
「真値」内容がロードされる。さらに、マイクロ
プログラムメモリ14に記憶されているあるマイ
クロ命令からコード解読されたリテラル値がマイ
クロ命令解読器46から直接Bレジスタ28に供
給される。Bレジスタ28の出力は真為ゲート網
42を有し、ゲート網42はBレジスタ28の真
値内容を加算器30へのY入力72に与え、また
はBレジスタ28の内容の1の補元をY入力に与
えるように動作する。 論理ユニツト12内の加算器30は周知の直列
加算器である。したがつて、この動作の詳細はこ
こでは記載せず、のちほどその特定の回路を説明
するときに十分に記述する。Aレジスタ22,2
4,26およびBレジスタ28に加えて、加算器
30の出力はその行先として代替マイクロプログ
ラムカウントレジスタ(AMPCR)32あるいは
外部レジスタ(第2図で「データアウト」として
示されている)への出力線34のいずれかを有す
る。 AMPCRレジスタ32も再循環シフトレジスタ
であつて、選択ゲート網42を介して加算器30
へのY入力72として作用する。 メモリ制御装置(MCU)16は2個の8ビツ
トレジスタ、即ち、マイクロプログラムカウント
レジスタ(MPCR)44および代替マイクロプ
ログラムカウントレジスタ(AMPCR)32によ
つて構成される。MPCRレジスタ44は8ビツ
トカウンタであつて、その内容は1づつまたは2
づつ増加し、マイクロプログラムメモリ14から
次の命令を選択するのに使用される。AMPCRレ
ジスタ32はマイクロプログラム内のプログラム
飛越しおよびサブルーチン復帰のための飛越しま
たは復帰アドレスを含む。通常AMPCRレジスタ
32内のアドレスは復帰すべき位置より少ないア
ドレスである。このレジスタ32にはゲート網3
6を介してMPCRレジスタ44から加算器30
の出力が読込まれ、あるいはマイクロプログラム
メモリ14に記憶されているあるマイクロ命令よ
りコード解読されたリテラル値が読込まれる。 この発明のプログラム可能処理ユニツト10は
処理装置の操作を定義づけるためマイクロプログ
ラム命令のソースを必要とする。好ましい実施例
においてこのソースはマイクロプログラムメモリ
14によつて与えられる。メモリ14は処理装置
の機能を定義するプログラムを記憶するリードオ
ンリーメモリ(ROM)である。代わつて、マイ
クロプログラムメモリ14はランダムアクセスメ
モリ(RAM)であつてもよい。とにかく、メモ
リ14に記憶されているプログラムは最適の方法
で特定のタスクを遂行するように処理ユニツト1
0を特徴づける。 処理ユニツト10の設計論理は、利用すべき特
定の命令群があるというのではなくむしろ達成す
べきタスクに向かつて機能を最適に統合するよう
に使用できる1群のレジスタ系路および制御シー
ケンスがあるという仮定にもとずいている。それ
ぞれの応用に対し1個のMOSLSIモノリシツク
チツプ上に所定のビツトパターンにしたがつて
ROMをマスクするためのコストは特に多数の複
写を償却する時に低減されるので、マイクロプロ
グラムメモリ14のROM構成は比較的多量の装
置を要するような応用に好ましい。 代りの方法として、読出し書込みマイクロプロ
グラムメモリを利用して構成された処理ユニツト
10は実験目的あるいは処理ユニツト10の機能
が変更されることがあるときに使用できる。この
読出し書込み動作モードでは、所望のレベルへそ
の動作が実行されるまで、特定の応用に処理ユニ
ツト10を特徴づけるプログラムを挿入し、テス
トしかつ修正することができる。この時点にて、
所要のビツトパターンは適当なROMパターンを
発生させるのに利用され、ROMパターンは後述
するような特定の応用に調整されたモジユールあ
るいは構成ブロツクとなる処理ユニツト10内の
不変論理部に関連して使用される。 今、説明のためROMメモリのみを考慮する。
好ましい実施例では、マイクロプログラムメモリ
14は各ワードが長さ12ビツトである合計256ワ
ードによつて構成される。メモリ12は実行可能
な命令のみを記憶し、プログラム制御によつても
変更されない。マイクロプログラムメモリ14に
記憶されているマイクロプログラムを構成する各
マイクロ命令は長さが12ビツトであつて、制御ユ
ニツト18の一部である解読器46によつてコー
ド解読される。各命令の12ビツトは4つのタイプ
のいずれかにコード解読される。即ち、(1)リテラ
ル、(2)状態、(3)論理、および(4)外部のいずれかで
ある。このような4つのタイプの命令はのちほど
詳細に説明する。 制御ユニツト18はマイクロ命令コード解読器
46、後続(次の命令)決定論理回路48、状態
選択論理回路50、状態レジスタ52によつて構
成される。後続決定論理回路48、状態選択論理
回路50および状態レジスタ52はマイクロ命令
解読器46の出力によつて駆動される。さらに、
加算器30は、加算器出力の全てのビツトが真値
「1」である場合、状態レジスタ52に4個の状
態ビツト、すなわち最下位ビツト真値(LST)
状態74、最上位ビツト真値(MST)状態76、加
算器オーバーフロービツト(AOV)78、および
指示ビツト(ABT)80(それぞれ第4図に示され
る)を供給する。後続決定論理回路48はマイク
ロプログラムメモリ14に記憶されている次の命
令をアドレスするため1あるいは2だけ増加する
MPCRレジスタ44の内容を使用すべきか
AMPCRレジスタ32の内容を使用すべきかを決
定する。 状態レジスタ52は3個のリセツト可能な局所
状態ビツト82、84、86(夫々LC1ビツト82、LC2
ビツト84、LC3ビツト86)を記憶し、8個の状態
ビツト(4個の加算器状態ビツト、MSTビツト
76、LSTビツト74、AOVビツト78、ABTビツト
80、外部状態ビツトEXT88、および状態レジス
タ52に記憶されている3個の局所状態ビツト
LC1、LC2、LC3)のうちの1つを選択する。 コード解読器46からAMPCRレジスタ32へ
の8ビツト転送経路56はマイクロプログラムメ
モリ14に記憶されているマイクロ命令からコー
ド解読された8ビツトリテラル値を転送するため
に存在する。8ビツトリテラル値の転送のため、
同じ8ビツト転送経路54がコード解読器46と
Bレジスタ28の間に存在する。ある命令のた
め、外部制御経路90の4ビツトは符号化され外
部インターフエイス20に給送される。のちほど
詳細に説明するこれらの4ビツトはプログラム可
能装置10が所定の時間にいかなるタイプの命令
を実行しているかを周辺機器に通知することによ
つてインターフエイスを介してデータを使用し給
送し受信する方法を外部インターフエイス20に
通知する。制御ユニツト18はタイミング発生器
58を介してプログラム可能ユニツト10の動作
のためのタイミングを提供する。 外部インターフエイス20はプログラム可能ユ
ニツト10を多重処理システムに関連した外部素
子に接続する。この接続はプログラム可能ユニツ
ト10を起点とする8ビツトの直列転送を助ける
のに使用される内部的に作成された1列のクロツ
クによつて同期して行われる。状態レジスタ52
への外部同期入力EXT(第2図参照)はEXT状
態ビツト88という形式で周辺機器からの信号伝達
に使用され、一方既述した4本の外部制御線90
は外部レジスタの使用を制御するのに使用され
る。 さてプログラム可能ユニツト10の主要な機能
的構成要素を概略的に説明したので、ビツトパタ
ーンを対応させながら4つのタイプのマイクロ命
令を詳細に説明する。 上記したように、好ましい実施例ではマイクロ
プログラムメモリに記憶されているマイクロ命令
はすべて長さが12ビツトである。第1のタイプの
マイクロ命令はリテラル割当て命令64(第3
図)である。リテラル割当て命令64の第1−第
8ビツトは変数または定数からなり、受信レジス
タはリテラル割当て命令64の第9−第12ビツト
からなる命令の複数の指令ビツトによつて絶対的
に特定される。リテラル値は夫々の8ビツト転送
経路54,56を介してBレジスタ28
(LITERAL TO B命令64b)あるいは
AMPCRレジスタ32(LITERAL TO
AMPCR命令64a)のいずれかにのみ導入する
ことができる。 もしリテラル割当て命令64の第11、第12ビツ
トの両者が「0」であれば、LITERAL TO
AMPCR命令64aは実行され、転送先は転送経
路56を介したAMPCRレジスタ32となる。も
し第9−第12ビツトが1011であれば、LI−
TERAL TO B命令64bは実行されその転送
先は転送経路54を介したBレジスタ28とな
る。LITERAL TO AMPCR命令64aの変更
はGO TO LITERAL命令64cによつて行われ
る。この命令は命令の第11ビツトが「1」第12ビ
ツトが「0」であるときに実行される。この命令
が実行されるとき、命令によつて特定されたリテ
ラル値は転送路56を介してAMPCRレジスタ3
2に導入され、さらに転送経路92を介して
AMPCRレジスタ32の内容がMPCRレジスタ
44に転送される。GO TO LITERAL命令64
cの機能はマイクロプログラムメモリ14に記憶
されているマイクロプログラムが特定した飛越し
アドレスをMPCRレジスタ44に導入すること
にある。LITERAL TO AMPCR命令64aお
よびGO TO LITERAL命令64cに対し、これ
らの命令のビツト9、10はプログラム可能ユニツ
ト10によつても内部的に使用されない。 LITERAL TO B命令64bが実行されると
き、特定された入力ビツトはリテラルBがレジス
タ28に導入される過程で補元がとられる。これ
はLITERAL TO AMPCR命令64aの場合に
行われず、この場合入力ビツトはマイクロ命令解
読器46から受信したものを変更することなく導
入される。 第2のタイプのマイクロ命令は状態テスト命令
66(第4図)である。状態命令は5つのフイー
ルドによつて構成され、即ち、状態フイールド9
4、テストフイールド100、真値後続フイール
ド96、偽値後続フイールド98および指令コー
ドフイールドによつて構成される。この命令は状
態テスト命令66の第1−第3ビツトからなる状
態フイールドによつて特定された8つの状態の1
つに対しテストを実行する。もし状態フイールド
94によつて特定された1つの状態のテストが好
結果つまり真値となつたとき、状態テスト命令6
6の第6、第7ビツトからなる真値後続フイール
ド96によつて指定された真値後続は次の命令の
アドレスを決定する。もし真値後続選択に加えて
テストすべきとして選択された状態が真値であれ
ば状態テスト命令66の第4、第5ビツトによつ
て定義されたセツトフイールド100がチエツク
され、3つの局所状態ビツトLC1、LC2、LC3の
1つをセツトすべきか否かを決定する。第10−第
12ビツトは指令コードを定義し、状態命令66に
対しすべてが常時「1」である。 既述したように、状態レジスタ52は次の目
的、即ち、制御信号の条件付きまたは無条件の転
送、局所状態ビツトのセツトおよび/またはリセ
ツト、の1つまたはその組合せ、のために使用さ
れる8つのテスト可能な状態ビツトを記憶する。
8つの状態とは4つの加算器状態(LSTビツト
74、MSTビツト76、AOVビツト78およびABT
ビツト80)、外部基準レベルビツトEXT88および
局所状態ビツト(LC1ビツト82、LC2ビツト84、
LC3ビツト86)からなる。 加算器30からの最下位即ち第1位ビツトが2
進値「1」のときLST状態はセツトされ、「0」
のときリセツトされる。最上位即ち第8位ビツト
が2進値「1」のときMST状態はセツトされ、
「0」のときリセツトされる。加算器30からの
ビツトがすべて2進値「1」であればABT状態
はセツトされその他の場合にはリセツトされる。
AOV状態は加算操作でオーバーフローが発生し
たことを表わす。 局所状態ビツト82、84、86(LC1、LC2、LC3)
はテストのときリセツトされ、セツトフイールド
100は局所状態をセツトするのに使用される。
ここで注意すべき点は、局所状態をセツトできる
ようにするためには真値状態をテストする必要が
ある。外部状態ビツトEXT88は外部インターフ
エイス20によつて完全に制御され、通常各装置
アドレスによつてゲートされたいくつかの装置に
対する割込みOR論理の結果として表われ、それ
以外ではタイミング用途に使用される。4つの加
算器状態(LST、MST、ABT、AOV)は後述
する最後の論理ユニツト命令の結果を表わす。こ
れらの命令ビツト74、76、78、80はテストによつ
てもリセツトされず、他の論理タイプの命令が実
行されるまで持続される。 状態のセツトおよびリセツトの概要は第1表に
示されている。 状態のセツトおよびリセツト
【表】
【表】 * 論理装置命令によつてのみ変
化する
Bレジスタ28、AMPCRレジスタ32のいず
れかへの読込みを特定できるリテラル割当て命令
64は加算器30への入力の値を変化できるが、
加算器30の出力によつて与えられたいかなる状
態ビツトの値も変化できない。さらに、いくつか
の論理ユニツト操作は論理ユニツト命令と関連し
てより詳細に説明するが、特定の加算操作に対し
て一般的でないサイド効果を有する。 第1局所状態(LC1)はプログラム可能ユニツ
ト10内の論理状態を一時的に記憶するのに使用
され、その状態はLC1ビツト82によつて表わさ
れる。これはプログラム可能ユニツト10によつ
て局所的にセツトされ、テストによつて局所的に
リセツトされる。第2局所状態(LC2)および第
3局所状態(LC3)は第1局所状態(LC1)の機
能および操作と同じである。 MST状態ビツト76のテストを特定するため、
状態テスト命令66の最初の3ビツトが「000」と
して表わされる。もし最初の3ビツトの第3ビツ
トのみが「1」(001)であれば、AOV状態ビツ
ト78がテストされ、一方状態テスト命令66の最
初の3ビツトの第2番目のビツトのみが「1」
(010)であれば、LST状態ビツト74がテストさ
れる。状態テスト命令66の最初の3ビツトの第
1番目のビツトのみが「0」(011)であれば、
ABT状態ビツト80がテストされる。状態テスト
命令66の最初の3ビツトの第1番目のビツトの
みが「1」(100)であれば、LC1状態ビツト82が
テストされ、一方状態テスト命令66の最初の3
ビツトの第2番目のビツトのみが「0」(101)で
あれば、LC2状態ビツト84がテストされる。状態
テスト命令66の最初の3ビツトの第3番目のビ
ツトのみが「0」(110)であれば、LC3状態ビツ
ト86がテストされる。状態テスト命令66の最初
の3ビツトがすべて「1」(111)であれば、外部
EXTビツト88がテストされる。 状態テスト命令66の第6、第7ビツトによつ
て定義された真値後続あるいは状態テスト命令6
6の第8、第9ビツトによつて定義された偽値後
続のいずれかがはつきりと選択され、実行すべき
次の命令のアドレスを決定させなければならな
い。無条件の後続については、真値および偽値後
続フイールド96,98の両者において同じ後続
が選択されなければならない。各後続に対する4
つの選択とは、(1)、1だけ増えたMPCRレジス
タ44の内容によつて定義されたようなシーケン
ス中の次の命令へステツプするSTEP後続102、
(2)、2だけ増えたMPCRレジスタ44の内容に
よつて定義されたようなシーケンス中の1つおき
の次の命令へスキツプするSKIP後続104、(3)、
AMPCRレジスタにおいて1だけ増えたMPCR
レジスタ44の現在のアドレスをステツプし節約
するSAVE後続106、および4、次の命令のアド
レス決定制御をAMPCRレジスタ32に記憶され
ているアドレスに転送するJUMP後続108、であ
る。 他のあらゆるタイプのマイクロ命令は上記した
ような絶対的なSTEP後続を有する。 マイクロプログラムメモリ14をアドレスする
ときの後続指令の動きを要約すれば、STEP後続
指令102は次の命令のアドレスとして1だけ増え
たMPCRレジスタ44の内容を指定し、この新
たなアドレスはMPCRレジスタ44(第5図)
の内容となる。SKIP後続指令104は次の命令のア
ドレスとして2だけ増えたMPCRレジスタ44
の内容を指定し、MPCRレジスタ44の新たな
内容は次の命令のアドレスとなる。SAVE後続指
令106は次の命令のアドレスとして1だけ増えた
MPCRレジスタ44の内容を指定し、MPCRレ
ジスタ44の新たな内容は次の命令のアドレスと
なる。さらに、AMPCRレジスタ32の内容は新
たな命令(MPCR+1)のアドレスに変更され
る。JUMP後続指令108は次の命令のアドレスと
してAMPCRレジスタ32の内容を指定し、
MPCRレジスタ44の内容を新たな命令のアド
レスに変化させる。特に、SAVE後続指令106の
みがAMPCRレジスタ32の内容を変化させるこ
とに留意しなければならない。 マイクロ命令解読器46によつて解読される第
3のタイプのマイクロ命令は論理ユニツト命令6
8であつて、これは加算器30へのX、Y演算数
入力、算術もしくは論理操作および加算器30へ
の指定を特定する。論理命令は4つのフイール
ド、即ち、X演算数入力フイールド110、操作
およびY演算数入力フイールド112、行先フイ
ールド114および指令コードフイールド116
によつて構成される。 論理ユニツト命令68の第1、第2ビツトから
なるX演算数入力フイールド110は加算器30
に対するX入力70を特定する。X演算数は
「0」あるいは3個のレジスタ22,24,26
のうちの1つの出力のいずれかである。加算器3
0によつて遂行される操作および加算器30への
Y演算数入力72(Bレジスタ28の真値内容あ
るいはAMPCRレジスタ32の内容)は論理ユニ
ツト命令68の第3、第4、第5、第6ビツトか
らなる操作フイールドの一部として特定される。
操作フイールドはAMPCRレジスタ32およびB
レジスタ28に対する算術および論理操作の両者
を特定できる。加算器30の出力の行先は論理ユ
ニツト命令68の第7−第10ビツトからなる行先
フイールド114によつて特定される。論理ユニ
ツト命令68の第11、第12番目のビツトは論理ユ
ニツト命令の指令コードフイールド116を指定
する。論理ユニツト命令68の第11番目のビツト
は常に「0」であつて第12番目のビツトは常に
「1」である。 論理ユニツト命令68のX入力フイールド11
0によつて特定され得る加算器30への4つのX
入力70とは、(1)、第1、第2のビツト中の
「0」(00)に指定された「0」、(2)、第1ビツト
の「0」、第2ビツトの「0」(01)によつて指定
されたA1レジスタ22の内容、(3)、第1ビツト
の「1」、第2ビツトの「0」(10)によつて特定
されたAレジスタ24の内容、および、(4)、第
1、第2ビツトの「1」(11)によつて指定され
たA3レジスタ26の内容である。これは表2に
要約される。
【表】 好ましい実施例では、加算器30および論理ユ
ニツト12によつて遂行できる操作は16通りのタ
イプがあり、そのうち12通りの操作は加算器30
へのY演算数入力72としてBレジスタ28の出
力を含む(第6図参照)。残りの4つの操作では
加算器30へのY選択入力72としてAMPCRレ
ジスタ32の出力を利用する。 操作フイールド112によつて定義されたタイ
プの操作は算術および論理機能の両者を含む。標
準的操作X+Y、X+Y+1は標準的論理機能
(例えば、AND、NAND、OR、NOR)ととも
に論理ユニツト12によつて実行される。また各
種の標準的でない論理機能も可能である。以下こ
れらの機能の簡単な説明を行うが、より完全な理
解は特定の回路の詳細な説明を参照することによ
つて可能となろう。 加算器30へのX演算数入力70、Bレジスタ
28の出力および数値1の総和を特定する算術操
作は論理ユニツト命令68のうちのすべて「0」
(0000)である第3−第6ビツトによつて定義さ
れる。ビツトパターン0001を有する操作フイール
ド112によつて特定される操作は加算器30へ
のX演算数入力70とBレジスタ28の出力の加
算である。ビツトパターン0010を有する操作フイ
ールド112は加算器30へのX演算数入力7
0、AMPCRレジスタ32の出力および数量1の
総和を特定する。ビツトパターン0011を有する操
作パターン112はX入力とAMPCRレジスタ32
の出力を加算する第4の算術操作を特定する。 操作フイールド112中のビツトパターン0100
は比較器論理機能を定義し、これは簡略的にX
EQV Bとして表現される。この論理操作はBレ
ジスタ28の出力が加算器30へのX入力70と
比較されることを特定する。この論理操作に対す
るブール代数表現は(XB V X)として定
義される。 特定されたX入力70およびBレジスタ28の
出力を利用する排他的OR論理機能はビツトパタ
ーン0101を有する操作フイールド112によつて
特定される。この論理操作は簡略表現X XOR
Bおよびブール代数表現(X V B)を有
する。 説明の便宜上、操作フイールドのビツトパター
ンに対する8進コードシーケンスに従つて、Bレ
ジスタ28の内容と加算器30へのX入力70の
差を特定する算術操作は8進コード6(0110)を
有する操作フイールド112によつて定義され
る。この算術操作は簡略的にX−Bとして表現さ
れ、ブール代数表現(X++1)によつて遂行
される。 好ましい実施例の操作フイールド112によつ
て特定できる最終の算術操作は0111(8進コード、
7)によつて定義される。操作フイールド112
のこのビツトパターンによつて特定された算術操
作は加算器30へのX入力70の数量1だけ減つ
たBレジスタ28の内容と減算である。この算術
操作の簡略表現X−B−1はブール代数論理表現
(X+)によつて表わされる。 論理ユニツト命令68の操作フイールドによつ
て特定できる残り8通りの操作、即ち第9−第16
の操作はすべて論理タイプの機能である。これら
の8つの操作に対し、操作フイールド112の第
1ビツト位置、即ち、論理ユニツト命令68の第
3ビツトは常に「1」である。 簡略的にX NOR Bとして表現される論理操
作は論理ユニツト命令68の第3−第6ビツトの
ビツトパターンが1000である操作フイールド11
2によつて特定される。この論理操作のブール代
数表現は()である。 論理ユニツト命令68の操作フイールド112
によつて定義される10番目の操作は簡略的にX
NAN Bとして表現される論理操作である。こ
の論理操作はビツトパターン1001(8進コード、
9)を有する操作フイールド112によつて特定
される。この論理操作のブール代数表現は
()である。 第11、第12の操作は夫々ビツトパターン1010、
1011を有する操作フイールド112によつて特定
される。この2つのビツトパターンによつて特定
される論理操作は、AMPCRレジスタ32の内容
がBレジスタ28の内容に代わつて使用される点
を除いて、上述した第9、第10の操作で特定され
た論理機能と同じである。操作フイールド112
のビツトパターン1010によつて特定される論理操
作の簡略表現はX NOR Zであつて、ただしZ
はAMPCRレジスタ32の行先である。この論理
操作の対応するブール代数表現は()であ
る。操作フイールド112のビツトパターン1011
によつて特定される論理操作の簡略表現はX
NAN Zであつて、対応するブール代数表現は
()である。 論理OR機能は論理ユニツト命令68の第3−
第6ビツトパターン1100を有する操作フイールド
112によつて特定される。このビツトパターン
は加算器30へのX入力70がBレジスタ28の
出力とORゲートされることを特定する。簡略表
現はX−OR Bであつて、対応するプール代数
表現は(XVB)である。 操作フイールド112によつて特定できる第14
番目の操作は論理AND機能であつて、ビツトパ
ターン1101を有する。このビツトパターンによつ
て特定される論理機能でもつて加算器30へのX
入力70とBレジスタ28の出力がAND結合さ
れる。この論理操作の簡略表現はX AND B、
ブール代数表現は(XB)である。 論理命令68の操作フイールド112によつて
特定できる第15番目の操作は論理OR機能の変型
である。ビツトパターン1110を有する操作フイー
ルド112は加算器30へのX入力70がBレジ
スタ28の出力の補元とOR処理されることを特
定する。この論理操作は簡略的にX RIM Bと
して表現され、対応するブール代数表現は(XV
B)である。 好ましい実施例の操作フイールド112によつ
て特定できる第16番目つまり最後の操作は論理
AND操作の変型である。論理ユニツト命令68
の第3−第6ビツトのビツトパターン1111は加算
器30へのX入力70がBレジスタ28の出力の
補元とAND処理されることを特定する。この論
理操作の簡略表現はX NIM B、対応するプー
ル代数表現は(X)である。 上記より判ることは、第3(X+Z+1)、第4
(X+Z)、第11(X NOR Z)および第12(X
NAN Z)の論理操作において加算器30のY
入力72がAMPCRレジスタ32の出力であるこ
とである。他のすべての論理操作では、加算器3
0へのY入力72はBレジスタ28の出力であ
る。 加算器30の出力の行先は論理ユニツト命令6
8の第7−第10ビツトからなる行先フイールド1
14によつて定義される。既に述べたように、加
算器30の出力はBレジスタ28、AMPCRレジ
スタ32、あるいは外部レジスタへの出力線34
のいずれかに導入できる。論理ユニツト命令68
の第7−第10ビツトによつて定義される行先は16
通りあり得る。これらの先行は上記したレジスタ
および出力線を含み、ある場合には、実行すべき
別の制御機能もしくは制御操作を指示する。 加算器30の出力の行先としてBレジスタ28
を特定するには、好ましい実施例の行先フイール
ド114は論理ユニツト命令68の第7−第10ビ
ツトがビツトパターン0000を有さなければならな
い。 先行フイールド114がビツトパターン0001を
有しておれば、A1レジスタ22が加算器30の
出力の行先として特定され、ビツトパターンが
0010であればA2レジスタ24、およびビツトパ
ターンが0011であればA3レジスタ26が特定さ
れる。 論理ユニツト命令68の行先フイールド114
がビツトパターン0100を有しておれば、OUT0行
先が特定される。OUT行先はあとで説明する。 論理ユニツト命令68の第7−第10ビツトのビ
ツトパターン0101(8進コード、5)によつて行
先OUT1が特定され、ビツトパターン0110(8進
コード、6)によつて行先OUT2が特定される。 論理ユニツト命令68の第7−第10ビツトのビ
ツトパターン0111(8進コード、7)によつて
AMPCRレジスタ32が加算器30の出力の行先
として特定される。この行先は行先OUT3の名称
がつけられる。 論理ユニツト命令68の行先フイールド114
に定義される次の4つの行先、即ち、第9−第12
(8進コード、8−11)の行先は上記したような
最初の4つの行先(B、A1、A2、A3)と同じで
あつて、附加的に外部データイン・ソースから選
択ゲート網38を介してBレジスタ28への直列
転送を特定する附加的な簡略フラグまたは標識
「BEX」を有し、この転送は加算器30の出力と
平行して行先フイールド114(即ち、B、A1、
A2、A3)によつて特定された他のレジスタへと
行われる。 論理ユニツト命令68の行先フイールド114
に定義される残りの4つの行先、即ち、第13−第
16(8進コード、12−15)の行先は上述した最初
の4つの行先(B、A1、A2、A3)と同じであつ
て、ただしレジスタを1ビツト右シフトエンドオ
フとしその最上位ビツトを加算器30の出力で満
たすSHIFTのための附加簡略標識「S」を有す
る。 加算器30の出力がBレジスタ28、Aレジス
タ22,24,26およびAMPCRレジスタ32
に導入できることが上記説明より明白となつた。
論理タイプ操作が選択されているとき加算器30
の出力は常にゲートされず外部インターフエイス
20に進むが、OUT行先(OUT0、OUT1
OUT2、OUT3)のいずれかが行先として選択さ
れたとき特別の4ビツトコードが外部制御線90
に発生し、加算器30から特定の外部レジスタへ
のゲートが行われる。「BEX」行先(論理ユニツ
ト命令68の行先フイールド114によつて特定
された第9−第12行先)のいずれかが選択されれ
ば、2ビツトBEXコードが外部制御線90に送
給され、外部データイン・ソースからBレジスタ
28への8ビツト直列転送が加算器30の出力と
平行して論理ユニツト命令68の行先フイールド
114(即ち、Aレジスタ22,24,26、B
レジスタ28)によつて特定されたレジスタへと
行われる。行先レジスタがBレジスタ28であつ
てBEX標識を附加している(「B、BEX」−ビツ
トパターン1000を有する行先フイールド114)
場合、加算器30の出力と外部入力とのORが実
行される。通常この場合の加算器30の出力は加
算器30からの論理「0」が転送されるように送
られ、Bレジスタ28の簡単な外部読込みが認め
られる。 既述したように、AMPCRレジスタ32が行先
レジスタとして選択されないときは、加算器30
へのY入力72としてAMPCRレジスタ32を使
用する4つの操作(X+Z+1、X+Z、X
NOR Z、X NAN Z)においてY入力72は
「0」となる。換言すれば、Y入力72として
AMPCRレジスタ32を使用するこれらの操作の
結果はAMPCRレジスタ32にのみ帰還される。
この特徴を使用することによつて、0、0以外、
XおよびX以外をAMPCRレジスタ32を除いた
いかなる行先レジスタにも導入できる。 SHIFT標識「S」を有する行先(12−15の8
進コード表現を有する行先)によつて、行先レジ
スタは1ビツトだけ右シフトされエンドオフさ
れ、その最上位ビツトは選択されたX、Y演算数
の最下位ビツトに対し実行した加算器30の出力
によつて供給される。ここで注意すべき点は、加
算器操作が選択された入力演算数の8ビツトすべ
てに対し実行され、したがつて加算器状態ビツト
(LSTビツト74、MSTビツト76、ABTビツト80
およびAOVビツト)がセツトされることである。 例えば、Bレジスタ28の行先で1ビツト右シ
フト(エンドオフ)の実行が望まれるとき、X演
算数フイールド110に対しX=0が選択され、
Y演算数選択フイールド112に対しX+Zを選
択し、行先フイールド114に対しB「S」を選
択し、この結果、論理ユニツト命令68はビツト
パターン(00 0011 1100 01)を有する。 またBレジスタ28の行先で1ビツトの循環シ
フトの実行が望まれるとき、X演算数フイールド
110に対しX=0を選択し、操作およびY演算
数フイールド112に対しX+Bを選択し、行先
フイールド114に対しB「S」を選択し、この
結果、論理ユニツト命令68はビツトパターン
(00 0011 1100 01)を有する。 行先でのシフトの主たる目的はAレジスタ2
2,24,26およびBレジスタ28に対し右お
よび循環シフトを実行することにある。他の認め
られたすべての機能は行先の最上位ビツトに有効
的に働く。 さらに注目に値いすることは、X演算数フイー
ルド110がX=A1、操作およびY選択フイー
ルド112がX+B、さらに行先フイールド11
4がA1「S」であるとき、次の命令(01 0001
1101 01)が実行されることである。この命令の
実行にあたつて、A1レジスタ22およびBレジ
スタ28の第8ビツトに対し加算が行われ、得ら
れたビツトはA1レジスタ22の第1ビツト(最
上位ビツト)に位置ずけられる。その後、A1レ
ジスタ22の第7ビツト(最下位ビツトプラス
1)はBレジスタ28のすべてのビツトに加算さ
れ、したがつて加算器状態ビツト(MSTビツト
76、LSTビツト74、AOVビツト78およびABTビ
ツト80)にサイド効果がもたらされる。 加算器30の直列構成による興味あるサイド効
果とは、加算器オーバーフロー状態ビツト78
(AOV)が現実には直列加算器30の初期および
中間の桁上げフリツプフロツプ(後述するAOV
状態レジスタ294)となることである。それ自
体では、「+1」の操作が要求されるいかなる場
合でも初期桁上げはセツトされる。実際、論理ユ
ニツト命令68の操作およびY選択フイールド1
12の第6ビツトが「0」であれば、初期桁上げ
はセツトされる。しかし、初期桁上げフリツプフ
ロツプは算術機能においてのみ中間桁上げに対し
て動作可能となる。例えばX OR Bという簡
略表現の操作(論理ユニツト命令68の第3−第
6ビツト1100によつて定義される)に対し、第6
ビツトは「0」であり、したがつてAOV状態ビ
ツト78はセツトされその後の論理ユニツト操作が
それを変化させるまでセツトされたままである。 この発明のプログラム可能ユニツト10のため
の命令群の最後のタイプの命令は外部命令118
である。第7図参照。装置(DEV)命令とも呼
ばれる外部命令118は2つのフイールド、即
ち、LITERAL TO DEVフイールド120およ
び外部命令118自体の指令コードによつて構成
される。LITERAL TO DEVフイールドは命令
の最初の8ビツトからなり、一方指令コードは外
部命令118の残りの4ビツトが割当てられる。
好ましい実施例において、外部命令118自体の
指令コードは第9−第12ビツト0011である。外部
命令118を実行するに際し、LITERAL TO
DEVフイールド120からなる命令の最初の8
ビツトはDATA OUT線34から直列式(最初
は第8ビツトから)に導出される。外部命令11
8は外部装置との入力/出力インターフエイスの
プログラマおよび設計者が適当に思われる限度に
おいてのみ外部装置と関連して利用される。 ハードウエアの費用を最小にしプログラムの効
率を最大にするため、プログラム可能ユニツト1
0に対する外部装置へのリテラルによつて特定さ
れる機能のコード化および装置のハードウエアの
設計は並行して行わなければならない。もし機能
のコーデイングおよび外部インターフエイス20
の設計が並行して行われないならば、おそらく非
常に高価なインターフエイスあるいは極めて効率
の悪いプログラムあるいはその両者が出きてしま
うであろう。 プログラム可能ユニツト10のためのタイミン
グ信号および制御信号に関して簡単に説明すれ
ば、タイミングはプログラム可能ユニツト10の
外部にあるクロツクによつて与えられる。マイク
ロプログラムメモリ14に記憶されている任意の
命令が実行される期間、8個のクロツクパルスが
カウントされ、このとき、制御ユニツト18は最
終パルス(LP)を発生し、次の命令が開始され
るまでメモリサイクル終了パルス(MCC)信号
126を待つ(第14図参照)。メモリサイクル
終了パルスはマイクロ命令の実行を開始させるの
に常に必要である。命令実行までの待ち時間では
メモリは循環し命令はコード解読される。しか
し、直前のMCCパルス126に引続く8個のク
ロツクパルスが経過し、さらにメモリが循環し命
令がコード解読されるに十分な時間が経過したの
ち、MCCパルス126はいかなる時間でも開始
できる。 またプログラム可能ユニツト10は外部クロツ
クから受信したクロツクパルスに同期した8カウ
ントのクロツク信号であるクロツクアウト(CO)
パルス群124を発生する。最終パルス(LP)
信号122が発生する期間、プログラム可能ユニ
ツト10はクロツクアウトパルス124を発生し
ない。クロツクアウトパルス124および最終パ
ルス122は制御ユニツトによつて与えられる。 MPCRレジスタ44をゼロアドレスにクリア
するため制御信号が必要である。外部より与えら
れるクリア(CLR)信号128はMPCRレジス
タ44を0アドレスにクリアするのに使用され
る。プログラム可能ユニツト10を起点とするデ
ータ経路に関して、データ・イン経路によつて
BEXタイプの論理ユニツト命令68の期間デー
タは直列式にBレジスタ28に供給される。プロ
グラム可能ユニツト10からの出力はデータアウ
ト線34による。この線34はすべての論理タイ
プの命令68の期間加算器30からの出力を送
り、またすべての外部タイプの命令118の期間
リテラルに送り、それ以外の場合信号は未定であ
つて定数である。 特定回路の詳細な説明 さて特定回路を参照すれば、外部クロツク装置
によつて供給された正方向クロツクパルスはプロ
グラム可能ユニツト10のクロツクイン(CI)
端子130を介して2入力のNANDゲート13
2に加えられる。第30b図参照。NANDゲー
ト132の出力は16進カウンタ134のカウント
アツプ端子146に接続され、16進カウンタ13
4は4つの出力端子148,150,152,1
54を有する4ビツトの2進カウンタからなる。
またインバータ136がNANDゲート132の
出力に接続され、インバータ136の出力はプロ
グラム可能ユニツト10のクロツクアウト(CO)
端子138に印加される。第2図に示されるよう
に外部クロツクによつて供給されるメモリサイク
ル終了(MCC)パルス126はプログラム可能
ユニツト10の入力端子140に印加される。入
力端子140は2入力NANDゲート142に接
続され、NANDゲート142の出力は16進カウ
ンタ134のクリア端子144に接続される。 好ましい実施例において、16進カウンタ134
の出力の最上位デイジツトは端子148によつて
導出され、最下位デイジツトは端子154によつ
て導出される。次上位デイジツトは端子150に
よつて導出され、次下位デイジツトは端子152
によつて導出される。16進カウンタ134の出力
端子148の出力は第2入力としてNANDゲー
ト142に印加され、またNANDゲート132
の第2入力にインバータ156を介して印加され
る。このような構成によつて、パルスを16進カウ
ンタ134のクリア端子144に加える前に、カ
ウンタ134の最上位デイジツトを表わす出力端
子148からの出力は高レベルでなければならな
い。したがつて、メモリサイクル終了パルス
(MCC)126が16進カウンタ134をクリアす
る前に、カウンタ134は少くとも8個のクロツ
クパルスをカウントしていなければならない。さ
らに、このような構成であるため、カウンタ13
4が一旦8個のクロツクパルスをカウントしてし
まうと、メモリサイクル終了パルス(MCC)1
26が再び印加されるまで別のクロツクイン
(CI)パルスはNANDゲート132によつて禁止
される。さらに、クロツクイン(CI)パルスの
鏡像であるクロツクアウト(CO)パルスはカウ
ンタ134が8個のクロツクパルスをカウントし
たときNANDゲート132の働きによつて禁止
される。 カウンタ134の論理図が第10図に示され、
カウンタ134に関連する各種のクロツクパルス
および制御信号のタイムチヤートが第15図に示
されている。カウンタ134はカウントアツプパ
ルス(クロツクイン反転パルス)の立上りによつ
てトリガされメモリサイクル終了パルス126の
立上りによつてクリアされるように設計されてい
る。今後の説明の便宜上、時間t0はメモリサイク
ル終了パルス126の立上りに一致した時点とし
て定義され、一方時間tn(n1)は外部クロツ
クによつて与えられる正方形のクロツクインパル
スの立下りに一致した時点として定義される。 時間t0においてメモリサイクル終了パルス
(MCC)126の立上りが印加されれば16進カウ
ンタ134がクリアされ、これによつて16進カウ
ンタ134の最上位デイジツト端子148に低レ
ベルが表われNANDゲート142は禁止される。
端子148上の低レベルによつてクロツクインパ
ルスはNANDゲート132を介して16進カウン
タ134のカウントアツプ端子146に達し、さ
らにインバータ136を介してプログラム可能ユ
ニツト10のクロツクアウト端子(CO)138
に達する。カウンタ134は時間t1でカウントを
開始し、8つのカウント(時間t8)すると端子1
48に低レベルが表われ、この結果NANDゲー
ト132は別のクロツクイン(CI)パルスをプ
ログラム可能ユニツト10に通すことを禁止され
る。 プログラム可能ユニツト10の最終パルス
(LP)出力端子158がインバータ156の出力
に接続される。このような構成によつて、最終パ
ルス122はカウンタ134が時間t8で8つのカ
ウントを終えたときのみLP出力端子158に表
われる。第15図参照。ここで明白なことは、最
終パルス122が16進カウンタ134によつて開
始されるまでクロツクアウト(CO)パルスがプ
ログラム可能ユニツト10の出力端子138に表
われることである。時間t8においてカウンタ13
4の出力端子148上の高レベルは新たなMCC
パルス126が印加されるまでの別のクロツクア
ウトパルスを禁止する。MCCパルス126の立
上りの印加によつて同時にカウンタ134の出力
がクリアされ最終パルスは終了する。 この256ワード(1ワード−12ビツト)のリー
ドオンリーメモリ(ROM)160のスタテイツ
ク記憶を考慮に入れて、プログラム可能ユニツト
10には実行可能な命令のみが与えられ記憶され
る。好ましい実施例において8本の制御線161
がメモリ160をアドレスするのに必要であつ
て、メモリ160に記憶される各命令の12ビツト
は12本の出力端子によつて与えられる。 他の命令が実行のためアドレスされ読出される
前にリードオンリーメモリ160に記憶されてい
る各命令が完全に実行されることを確実にするた
め、のちほど詳細に説明する第31図の命令レジ
スタ500が設置される。簡単に言えば、命令レ
ジスタ500はリードオンリーメモリ160から
アドレスされた12個の2進信号を受信する12ビツ
トの記憶レジスタであつて、最終パルス122が
発生されるまでこれらの信号を記憶する。12本の
データ/制御線162,164,166,17
0,172,174,176,180,182,
184,186は夫々命令レジスタ500の出力
に接続され、データおよび制御信号をプログラム
可能ユニツト10の制御および論理部に与える。
MPCRレジスタ44はリードオンリーメモリ1
60のアドレス制御線161にアドレスを与える
ための8本の出力端子、およびAMPCRレジスタ
32からのアドレス情報を受信するための8本の
データ入力端子を有する。さらに、MPCRレジ
スタ44はクリア端子188、カウンタアツプ端
子190、および読込み端子191を有する。
MPCRレジスタ44とともにこれらの端子はの
ちほど詳細に説明する。 AMPCR32は飛越レアドレスをMPCRレジ
スタ44に与えるための8本の出力端子および選
択器192からのデータを受信するための8本の
入力端子を有する。 選択器192は16本のデータ入力端子および制御
入力端子194(第11図)を有する。選択器1
92のデータ入力端子のうちの8本は最初の8本
のデータ/制御線(即ち、162−176)に接
続され、選択器192の残りの8本の入力端子は
MPCR44の8本の出力端子161に接続され
る。 選択器192の制御端子194に印加される制
御信号にもとずいて、選択器192はリードオン
リーメモリ160に記憶されているマイクロ命令
からコード解読されたリテラル値(リテラルタイ
プの命令の最初の8ビツト)あるいは現在
MPCRレジスタ44に記憶されているアドレス
のいずれかをAMPCRレジスタ32に導入する。
したがつて、選択器192はリードオンリーメモ
リ160に記憶されているリテラル命令からコー
ド解読された飛越レアドレスをAMPCRレジスタ
32に導入するか、あるいはMPCRレジスタ4
4に記憶されている現在のアドレスをAMPCRレ
ジスタ32に導入することによつてSAVE後続指
令を実行するかを選択できる。 既述したように、好ましい実施例のリードオン
リーメモリ160に記憶されている256通りの命
令のそれぞれ12ビツトは4つのタイプ、リテラ
ル、状態、論理並びに外部(DEV)の命令に解
読される。12ビツトのうちの8ビツトは直接選択
器192を介してAMPCRレジスタ32あるいは
Bレジスタ28に転送される。 論理ユニツト命令 論理ユニツト命令68を解読するため、2入力
NANDゲート196が利用され論理命令の指令
コードを認識する。第30h図参照。NANDゲ
ート196の1入力は常にリードオンリーメモリ
160に記憶されているあらゆる命令の第12ビツ
ト(データ/制御線186)を受信し、第2の入
力は常にリードオンリーメモリ160に記憶され
ているあらゆる命令の第11ビツト(データ/制御
線184)の2進表現の補元を受信する。第11ビ
ツトの補元はインバータ198の出力によつて与
えられ、インバータ198の入力は第11ビツトデ
ータ/制御線184に接続されている。論理ユニ
ツト命令の指令コード116は常に01であるので、
論理タイプ命令68がマイクロプログラム可能ユ
ニツト10によつて実行されているときNAND
ゲート196の出力は常に低レベルである。 NANDゲート196の出力は2入力の1つと
してNORゲート198に供給される。NORゲー
ト198の別の入力はNANDゲート142によ
つて与えられ、ゲート142はメモリサイクル終
了パルス(MCC)126をゲートし16進カウン
タ134をクリアする。 MCCパルス126が外部クロツクによつて与
えられている期間のみNANDゲート142の出
力が低レベルにある(もちろん、16進カウンタ1
34が直前のMCCパルス126に引続く少くと
も8個のクロツクパルスをカウントしたと仮定し
て)これを想起すれば、MCCパルス126の期
間を除いてNORゲート198の出力はすべての
論理タイプ命令に対し低レベルとなろう。 論理タイプ命令68の実行のため必要とされる
クロツクパルスは2入力NANDゲート204の
出力によつて与えられる。NANDゲート204
の2入力は夫々あらゆる論理タイプ命令68の実
行期間全クロツクに対しても高レベルにある
NANDゲート196の反転出力、およびクロツ
クアウト(CO)パルスを表わすインバータ13
6の出力である。NANDゲート196の出力は
インバータ206によつて反転される。この構成
から明らかなように、NANDゲート204の出
力はプログラム可能ユニツト10が論理タイプ命
令68を実行する期間あらゆるクロツクに対して
も高レベルにある。論理命令68の実行期間、
NANDゲート204の出力はNANDゲート13
2の出力に似る。しかし、論理タイプ命令68の
実行期間でさえ、16進カウンタ134が最終パル
ス(LP)122と発生している間NANDゲート
204の出力は高レベルに切換えられていなけれ
ばならない。このことは正しい、なぜならカウン
タ134の最上位デイジツトの反転出力(端子1
48の出力)は処理ユニツトへのクロツクイン
(CI)パルスをゲートするNANDゲート132の
入力として加えられるからである。 NANDゲート204の出力は3個のレジスタ
22,24,26の夫々にクロツクとして印加さ
れる、即ち、(第30f図参照)Bレジスタ28
への1つのクロツク入力として、(第30g図参
照)MST状態レジスタ202のクロツク入力へ
入力として、さらに2入力NORゲート214の
入力の1つとして夫々印加される。MST状態レ
ジスタ202の操作は状態テスト命令66に関係
する回路と関連して説明し、NORゲート214
の機能の説明はAMPCRレジスタ32が説明され
るまで繰延べられる。 簡単に説明したように、Aレジスタ22,2
4,26は夫々8ビツトの直列シフトレジスタで
ある。第30f図参照。各レジスタは第12図に
示すように2入力マルチプレクサ回路およびコン
プリメンタリ直列出力Q,をそなえている。さ
らに、Aレジスタには夫々Aレジスタの2入力の
いずれを動作させるかを選択する制御信号を受信
するためのデータ選択入力端子が設けられてい
る。好ましい実施例では、3個のAレジスタ2
2,24,26夫々のQ出力はAレジスタ夫々の
2入力の1つとして帰還される。Aレジスタ2
2,24,26夫々の出力はデータ選択器20
8の3入力として印加される。 通常の2ビツトマルチプレクサであるデータ選
択器208(第16図参照)はインバータおよび
ドライバからなり、2進コード解読されているデ
ータを選択し、4本線から1本線に多重化するこ
とができる。データ選択器208の機能は加算器
30へのX入力70として3個のレジスタ22,
24,26の出力のいずれかを選択しもしくは
いずれも選択しないことにある。データ選択器2
08は2本の制御線210,212によつて夫々
制御され、制御線210,212は夫々データ/
制御線162,164に接続されている。後者の
データ/制御線は夫々ROMメモリ160におい
て記憶されている任意のマイクロ命令の第1、第
2ビツトの2進表現を表わす信号を通過させる。
データ選択器208の真理値表は第17図に示さ
れている。 上述したように、加算器30のY演算数入力7
2はいくつかのソースの出力から与えることがで
きる。適当なゲート動作によつてBレジスタ28
およびAMPCRレジスタ32の内容は加算器30
へのY入力72として作用する。 好ましい実施例において、Bレジスタ28は8
ビツトの並列−直列データ変換器であつて、クロ
ツクされたときデータを右へシフトする。第18
図参照。各段への並列アクセスは8つの各個の直
接データ入力によつて利用され、直列データ入力
はBレジスタ28のシフト−読込み制御入力端子
上の低レベルによつて駆動される。Bレジスタ2
8はまたゲートされたクロツク入力および第8段
目の出力からのコンプリメンタリQ,に特徴ず
けられる。クロツク動作は2入力の正論理NOR
ゲート216によつて行われ、1つのクロツク入
力218をクロツク禁止機能として使用する、2
つのクロツク入力のいずれか高レベルに保持する
ことによつてクロツク動作は禁止され、クロツク
入力のいずれかを低レベル、シフト−読込み制御
入力を高レベルに保つことによつて、他のクロツ
ク入力が駆動される。クロツクが高レベルである
期間のみクロツク禁止入力218は高レベルに変
化されなければならない。シフト−読込み制御入
力が高レベルであるかぎり並列読込みは禁止され
る。低レベルとなれば、8つの並列入力でのデー
タはクロツクの状態とは関係なく直接レジスタに
読込まれる。 論理ユニツト命令68によつて定義できる16通
りのタイプの算術および論理操作を解析すること
によつて、いくつかの算術操作ではBレジスタ2
8の内容の補元と反対であるBレジスタ28の真
値内容を必要ととすることが判る。Bレジスタ2
8の真値出力Qまたはその補元のいずれかを選
択するため、AND−NORの組合せが使用され
る。第2図において選択ゲート網42として示さ
れているこのAND−NORの組合せは3個の
ANDゲート220,222,224および1個
のNORゲート226によつて構成される。AND
ゲート222,224は3入力を有しANDゲー
ト220は2入力である。 各ANDゲートの出力は入力としてNORゲート
226に印加される。ANDゲート220はBレ
ジスタ28の出力の補元およびデータ/制御線1
70に表われる信号(ROMメモリ160に記憶
されているあらゆる命令の第5ビツト)をゲート
する。データ/制御線170に表われる信号の補
元はインバータ228を使用して得られる。した
がつて、論理ユニツト命令68の第5ビツトが2
進値「0」である算術あるいは論理操作において
のみANDゲート220の出力は高レベルにある。
ANDゲート222はデータ/制御線168(第
4ビツト),170(第5ビツト)とともにBレ
ジスタ28の真値出力つまりQ出力をゲートす
る。このような構成によつて、論理ユニツトの第
4、第5ビツトの両者が2進値「1」であるよう
な算術あるいは論理操作に対してのみANDゲー
ト222の出力は高レベルにある。 ANDゲート224の機能は加算器30へのY
演算数入力としてAMPCRレジスタ32の直列出
力を選択する点にある。 既に理解しているように、もしAMPCRレジス
タ32が行先レジスタとして選択されていないな
らば、加算器30のY入力72としてAMPCRレ
ジスタ32を使用する4つの算術/論理操作にと
つてY入力72は「0」となる。好ましい実施例
においては、加算器30へのY演算数入力72と
してAMPCRレジスタ32を使用するこれらの操
作はAMPCRレジスタ32に帰還されるだけであ
る。論理ユニツト命令68を解析することによつ
て、加算器30の出力の行先としてAMPCRレジ
スタ32を特定する行先フイールド114のみが
第7−第10ビツトのビツトパターン0111を有する
ことが明らかとなる。したがつて、加算器30の
出力の行先としてAMPCRレジスタ32を検出す
るために、4入力NANDゲート232が使用さ
れる。NANDゲート232への4つの入力は
夫々データ/制御線176,180,182を通
過してきた信号(第8ビツト)、(第9ビツト)、
(第10ビツト)およびデータ/制御線174を通
過してきた信号(第7ビツト)の補元である。デ
ータ/制御線174によつて送られる信号の補元
はインバータ234によつて得られる。各個の入
力によつて、NANDゲート232はAMPCRレ
ジスタ32が加算器30の出力の行先として特定
されているときのみ低レベルにある。 AMPCRレジスタ32が加算器30へのY演算
数入力72として選択されているが加算器30の
出力の行先レジスタとしては選択されていないと
きY演算数入力72がすべて「0」とするため
に、ANDゲート224と組合せて2入力NORゲ
ート230が使用される。NORゲート230へ
の1入力はAMPCRレジスタ32を加算器30の
出力の行先として解読するNANDゲート232
の出力から得られ、NORゲート230への他の
入力はデータ/制御線168上の信号(第4ビツ
ト)である。NORゲート230の出力、
AMPCRレジスタ32の直列出力およびデータ/
制御線170上の信号が夫々ANDゲート224
への3入力となる。この構成から明らかなよう
に、算術あるいは論理操作においてAMPCRレジ
スタ32が加算器30の出力の行先レジスタとし
て選択されたときNORゲート230の出力は正
である。 加算器30は直列式かつ波及桁上げ並列式の加
算操作用に設計された全加算器である。第9図参
照。加算器30への3入力はX演算数入力70、
Y演算数入力72および桁上げ入力234であ
る。加算器30の標準的な出力は和出力端子23
6および桁上げ出力端子238である。 和出力端子236の出力、桁上げ出力端子23
8の出力あるいはそれらの補元のいずれを加算器
30の出力とすべきかを解読するため、NAND
−NORゲート組合せが使用される。2入力AND
ゲート240は加算器30の和出力端子236の
出力をゲートするのに使用される。NANDゲー
ト240の1入力はデータ/制御線166に現わ
れる信号(第3ビツト)の補元であり、一方
NANDゲート240の他の入力は加算器30の
和出力端子236からの出力である。データ/制
御166に表われる信号の補元はインバータ25
2によつて得られる。 3入力NANDゲート242は加算器30の桁
上げ出力端子238の出力の補元をゲートするの
に使用される。NANDゲート242への2入力
は夫々データ/制御線166に現われる信号(第
3ビツト)およびデータ/制御線168に現われ
る信号(第4ビツト)の補元である。NANDゲ
ート242への第3の入力は加算器30の桁上げ
出力端子の出力の補元である。桁上げ出力端子2
38の出力の補元はインバータ248によつて得
られ、データ/制御線168に現われる信号の補
元はインバータ250によつて得られる。 加算器30の桁上げ出力端子238からの真値
出力は3入力NANDゲート244によつてゲー
トされる。NANDゲート244の2入力は夫々
データ/制御線168に現れる信号(第4ビツ
ト)およびデータ/制御線166に現われる信号
(第3ビツト)である。NANDゲート244への
残りの入力は加算器30の桁上げ出力端子238
の出力である。3個のNANDゲート240,2
42,244の出力は入力として3入力NORゲ
ート246に印加される。 このNAND−NOR組合せによつて、NAND
ゲート240は加算器30の出力としてX、Y演
算数の和をゲートする。論理ユニツト命令68の
第3ビツトが「0」であるときのみ加算器30の
結果は和出力端子236からの出力となる。 論理ユニツト命令68によつて特定できる合計
16通りの算術および論理タイプ機能から判明され
るように、上記した最初の8つの算術/論理機能
に対しNANDゲート240は加算器30の和出
力端子の出力をゲートする。第3、第4ビツトに
対する論理レベルが10であるすべての論理ユニツ
ト命令68に対してNANDゲート242は加算
器30の出力の結果として桁上げ出力端子238
の出力の補元をゲートする。より詳しく言えば、
プログラム可能ユニツト10によつて逐行できる
すべてのNORおよびNAND論理操作(第9−第
12操作)に対してNANDゲート242は加算器
30の出力として桁上げ出力信号をゲートする。 論理ユニツト命令68の第3、第4ビツトの両
者が2進値「1」であるときNANDゲート24
4は加算器30の出力として桁上げ出力端子23
8の出力をゲートする。好ましい実施例において
このような状況は論理ユニツト命令68によつて
特定できる残りの4つの算術/論理機能(第13−
第16操作)に対してのみ生ずる。 加算器30の出力の行先を決定するため、解読
器254が使用される。解読器254は2本の入
力データを4出力の1つに変換する。解読器25
4に禁止能力を与えるため、可能入力端子が設け
られる。第19図参照。解読器254の真理値表
(第20図)によれば、真理値表によつて定義さ
れた解読操作を実行するには可能信号は低レベル
でなければならない。論理ユニツト命令68の解
析および論理ユニツト命令68によつて特定でき
る行先に関する説明を再考することによつて、本
質的には論理ユニツト命令68の第9、第10ビツ
トが加算器30の出力の行先を特定し、命令の第
7、第8ビツトが加算器30の出力に関する変更
もしくは附加的な処理を特定することが明瞭とな
る。解読器254の2入力は夫々データ/制御線
180上の信号(第9ビツト)およびデータ/制
御線182上の信号(第10ビツト)である。解読
器254の4出力のうちの3つはAレジスタ2
2,24,26のデータ選択入力端子に接続され
る。解読器254の第4の出力端子からの出力は
Bレジスタ28に関連した選択回路網38に入力
として印加される。第2図参照。この選択回路網
をしばらく説明する。 解読器254への制御入力信号にもとずいて、
Aレジスタ22,24,26のデータ選択入力端
子に与えられた制御信号によつて適当なAレジス
タがそのレジスタのQ出力から再循環したデータ
あるいはAレジスタへの適当な入力としての加算
器30の適当な出力のいずれかを選択する。 OUT行先がコード解読されたとき解読器25
0の操作は禁止されなければならない。このため
2入力NORゲート256が設けられる。NORゲ
ート256への2入力は夫々データ/制御線17
4に現われる信号(第7ビツト)およびデータ/
制御線176に現われる信号(第8ビツト)の補
元である。データ/制御線176に現われる信号
の補元はインバータ258によつて得られる。
NORゲート256の出力は制御信号として解読
器254の可能入力端子に印加される。この構成
によつて、OUT行先あるいはAMPCRレジスタ
32が加算器30の出力の行先として特定された
ときのみ解読器254の可能入力端子に高レベル
が現われる。 論理ユニツト命令68の行先フイールド114
によつて特定され、かつシフトという附加的な操
作「S」を含んだ行先を解読するため、解読器2
58が使用される。解読器258は解読器254
と操作が同じであつて、解読器258のより詳細
な構造は解読器254の操作に関する説明と参照
することによつて理解できる。解読器258への
2入力は夫々データ/制御線180に現われる信
号(第9ビツト)およびデータ/制御線182に
現われる信号(第10ビツト)である。シフト解読
器258の4出力の補元はNANDゲート204
の出力とORゲートされ、クロツク入力としてA
レジスタ22,24,26およびBレジスタ28
に印加される。既述したようにNANDゲート2
04の出力はいかなる論理ユニツト命令68の実
行期間にもすべてのクロツクのための低レベル信
号を与える。シフト解読器258の4出力夫々の
補元はインバータ260によつて与えられる。 上述のごとく、シフト標識「S」を有する行先
によつて行先レジスタ(第9、第10ビツトによつ
て特定される)は1ビツトだけ右シフトしながら
エンドオフし、その最上位ビツトはX演算数入力
70およびY演算数入力72の最下位ビツトに対
して演算する加算器から供給される。したがつ
て、シフト解読器258の機能は、加算器30の
出力からの第1ビツトのみを行先レジスタ(行先
解読レジスタ254によつて特定される)に導入
し、Aレジスタ22,24,26へのクロツクと
のOR結合によつて加算器30の出力からの他の
すべてのビツトがそのレジスタに導入されるのを
禁止することにある。 好ましい実施例においてシフト解読器258の
適当な操作へのキーはシフト解読器258の可能
入力端子の信号に依存する。この可能−禁止信号
はゲート網を介して16進カウンタ134の最下位
デイジツト出力端子154から得られる。シフト
解読器258に可能−禁止信号を与えるゲート網
は2入力NANDゲート262によつて構成され、
ゲート262の出力は1入力として3入力
NANDゲート264に印加される。NANDゲー
ト262への入力は夫々16進カウンタ134の端
子154の出力の補元および2入力ORゲート2
66の出力である。NORゲート266への入力
は夫々16進カウンタ134の端子150,152
の各出力である。NANDゲート262の出力を
除いて、NANDゲート264への他の2入力は
夫々データ/制御線174上の信号(第7ビツ
ト)およびデータ/制御線186上の信号(第2
ビツト)である。NANDゲート264の出力は
可能−禁止入力としてシフト解読器258に印加
される。 動作中、MCCパルス126がプログラム可能
ユニツト10に印加された直後、16進カウンタ1
34のすべての出力端子は論理「0」にセツトさ
れる。したがつて、時間t0にインバータ268お
よびNORゲート266の出力は高レベルとなり、
この結果、NANDゲート262の出力は低レベ
ルとなりデータ/制御線174,186上の信号
(第7、第12ビツト)の状態に関係なくNANDゲ
ート264の出力は高レベルとなる。したがつ
て、時間t0においてシフト解読器258の操作は
禁止され、NANDゲート132によつて第1ク
ロツクパルス(時間t1)の立下りがゲートされる
まで禁止されたままである。行先レジスタにシフ
ト操作の標識「S」が付けられると、可能なとき
シフト解読器258の出力が指定されたレジスタ
へのすべてのクロツクを禁止するので、NAND
ゲート204から第1クロツクパルスのみが行先
解読器254によつて指定された適当なAあるい
はBレジスタへ印加される。 簡単に説明したように、Bレジスタ28は8段
からなる並列読込み式8ビツトシフトレジスタで
あつて、クロツクされたときある段のデータを他
の段へ右シフトする。さらに、Bレジスタ28は
直列入力端子を設けることによつて直列入力能力
を特徴づける。第18図参照。Bレジスタ28へ
の8入力は夫々データ/制御線上の信号(第1−
第8ビツト)である。Bレジスタ28への通常の
クロツク入力信号はNANDゲート204の出力
から得られ、一方クロツク禁止信号入力はインバ
ータ260を介してシフト解読器258の出力か
ら得られる。 選択ゲート38(第2図参照)は3個のAND
ゲート270,272,274によつて構成さ
れ、これらの出力は入力としてNORゲート27
6に印加される。NORゲート276の出力は直
列入力としてBレジスタ28に導入される。
ANDゲート270の機能は入力として加算器3
0の出力を直列式ににBレジスタ28にゲートす
ることにある。したがつて、ANDゲート270
への入力はNORゲート246の出力およびイン
バータ278を介した行先解読器245の出力で
ある。このような構成によつて、Bレジスタ28
が論理ユニツト命令68の行先フイールド114
によつて行先レジスタとして定されたときのみ
ANDゲート270は加算器30の出力からの信
号をゲートする。 ANDゲート272の機能は「BEX」操作を解
読することにある。加算器30の出力が行先フイ
ールド114によつて特定されたレジスタ(即ち
A1,A2,A3,B)へ導入されるのを制御す
るとともに、「BEX」操作は外部ソースからプロ
グラム可能ユニツト10のデータイン端子を介し
てBレジスタ28への直列転送を特定する。
ANDゲート272へのデータ入力はプログラム
可能ユニツト10のデータイン端子280に印加
される信号であつて、一方ANDゲート272へ
の制御入力はデータ/制御線174上の信号(第
7ビツト)およびインバータ238の出力から得
られるデータ/制御線176上の信号(第8ビツ
ト)の補元である。論理ユニツト命令68の解析
によつて「BEX」タイプの行先が論理ユニツト
命令68の行先フイールド114によつて特定さ
れるときのみANDゲート272は信号をゲート
することが明白となる。 Aレジスタ22,24,26が行先レジスタと
して選択されないとき、そのレジスタのQ出力は
そのレジスタのデータ入力として再循環する。B
レジスタ28が行先レジスタとして選択されない
とき、Bレジスタ28の出力はBレジスタに帰
還する。この後者の操作はANDゲート274に
よつて行われる。ANDゲート274へのデータ
入力はBレジスタ28からの出力であり、
ANDゲート274への制御入力は夫々行先解読
器254の適当な出力および2入力NANDゲー
ト280の出力である。NANDゲート280へ
の入力は夫々データ/制御線174に現われる信
号(第7ビツト)およびデータ/制御線176に
現われる信号(第8ビツト)の補元である。この
構成にもとずき、Bレジスタが行先レジスタとし
て選択されずまた論理ユニツト命令68の行先フ
イールド114が「BEX」タイプ操作を特定し
ていないとき、Bレジスタ28の出力はAND
ゲート274、NORゲート276を介して直列
式にBレジスタ28を再循環する。 状態テスト命令 さて状態テスト命令66の実行に必要とされる
回路を参照すれば、状態テスト命令66の指令コ
ードを解読するために3入力NANDゲート28
4が使用される。第30h図参照。NANDゲー
ト284への3入力は夫々データ/制御線18
2,184,186に現われる信号(第10−第12
ビツト)である。好ましい実施例で説明したよう
に、状態テスト命令66はテストのために8個の
状態ビツト(4個の加算器状態ビツト、MSTビ
ツト76,LSTビツト74,AOVビツト78,ABTビ
ツト80、1個の外部状態ビツト−EXT88,状
態レジスタ52に記憶されている3個の局所状態
ビツトLC182,LC284,LC386)のうちの1つを
選択できる。 Dタイプフリツプフロツプ202の状態を調べ
ることによつて最上位ビツト真値(MST)状態
がプログラム可能ユニツト10においてテストさ
れる。Dタイプフリツプフロツプ202は「最上
位真値ビツト」(MST)状態レジスタであつて、
加算器30からの最上位ビツト即ち第8ビツトが
2進値「1」であればセツトされて2進値「0」
であればリセツトされる。周知のように、Dタイ
プフリツプフロツプはプリセツト入力、クロツク
入力、データ入力、クリア入力およびコンプリメ
ンタリ出力Q,を有する。クロツク入力パルス
の正方向の立上りによつて情報はQ出力に転送さ
れる。 MST状態レジスタ202は1ビツトの記憶メ
モリを構成する。動作中MST状態レジスタ20
2の出力は1個のクロツクパルスだけ遅延された
入力と等しくなる。非同期入力であるMSTレジ
スタ202のプリセツト入力およびクリア入力は
他のすべての入力(例えば、クロツク、信号)を
無視しプリセツト端子の2進値「0」はQ出力を
論理「1」レベルにセツトする。逆に、クリア入
力に印加される「0」によつてQ出力は論理
「0」にセツトされる。この特徴は第21図に示
されている状態レジスタ202の真理値表に表わ
れている。好ましい実施例においてMSTレジス
タ202のクリア入力端子は電位Vccに接続され
ている。 MST状態レジスタ202へのプリセツト入力
としての信号はインバータ200を介してNOR
ゲート198の出力から得られる。NORゲート
198の出力がMCCパルス126の期間のみ高
レベルであることを想起すれば、MST状態レジ
スタ202のQ出力はMCCパルス126が印加
されている期間論理「1」にセツトされる。デー
タ入力信号としてMST状態レジスタ202に印
加される加算器30の出力情報はNORゲート2
46の出力から得られる。 同じように、LST状態レジスタ286の内容
を調べることによつて最下位ビツト真値(LST)
状態がテストされる。LST状態レジスタ286
は論理的にMST状態レジスタ202と同じであ
る。データ入力としてLSTレジスタ286に印
加される加算器出力情報も同じようにNORゲー
ト246の出力から得られる。しかし、LST状
態レジスタ286のプリセツトおよびクリア端子
は電位Vccに接続されている。 LST状態レジスタ286へのクロツク入力信
号は2入力NANDゲート288の出力から得ら
れる。NANDゲート288への1入力は論理ユ
ニツトタイプ命令68がプログラム可能ユニツト
10によつて実行されているときのみ高レベルと
なるインバータ206の出力から得られる。
NANDゲート288の他の入力はインバータ2
90の出力から得られ、インバータ290の入力
は3入力NAND292から得られる。NANDゲ
ート292への3入力は夫々NORゲート266
の出力、インバータ268の出力およびインバー
タ136の出力である。NANDゲート292お
よびインバータ290の構成によつて、NAND
ゲート288の出力はMCCパルス126に続く
第1クロツクパルスの期間(時間t0−t1)のみ低
レベルとなる。したがつて、LST状態レジスタ
286はMCCパルス126に続く第1クロツク
パルスに対応した1個のクロツクパルスのみを受
信する。LST状態レジスタ286の出力は状態
レジスタ286のクロツク入力端子に印加される
1個のクロツクパルス分だけ遅延されたこのレジ
スタのデータ入力端子上の記号に等しい。 全ビツト真値(ABT)状態をテストするため、
1対の2入力NANDゲート290,292が利
用される。MST状態レジスタ202のQ出力は
1入力として第1のNANDゲート290に印加
され、NANDゲート290の出力は1入力とし
て第2のNANDゲート292に印加される。
NANDゲート292への他の入力はNANDゲー
ト288の出力から得られ、NANDゲート29
0への別の入力は、NANDゲート292の出力
から得られる。このような構成の結果、NAND
ゲート290の出力での信号と関係なくNAND
ゲート292の出力は第1クロツクパルスの期間
高レベルとなる。加算器30の出力の全ビツトが
真値「1」であれば、NANDゲート290の出
力は低レベルでなければならず、NANDゲート
292の出力は所定の加算操作の全クロツクの期
間強制的に高レベルとなる。しかし、加算器出力
の8ビツトのうちのいずれかが低レベルとなれ
ば、NANDゲート292の出力は低レベルに切
換えられ、MPCRレジスタ44によつて次の命
令アドレスが実行されるまで低レベルのままであ
る。 AOV状態レジスタ294を調べることによつ
て加算器のオーバフロー状態(AOV)がテスト
される。AOV状態レジスタ294はMST状態レ
ジスタ202およびLST状態レジスタ286と
論理および構造が同じである。AOV状態レジス
タ294へのデータ入力は加算器30の桁上げ出
力端子238から得られ、一方クロツク入力信号
は3入力NANDゲート296の出力から得らら
れる。NANDゲート296の3入力は夫々イン
バータ298を介したNANDゲート204の出
力、インバータ252の出力から得られるデー
タ/制御線166上の信号(第3ビツト)の補
元、および2入力NANDゲート300の出力で
ある。NANDゲート300への2入力は夫々デ
ータ/制御線168に現われる信号(第4ビツ
ト)およびインバータ228の出力から得られる
データ/制御線170に現われる信号(第5ビツ
ト)の補元である。NANDゲート300の機能
は排他的OR(X XOR B)および等価(X
EQV B)論理タイプ機能のいずれかが論理ユニ
ツト命令68によつて特定されたときNANDゲ
ート296の入力を低レベルとすることによつて
上記両者の論理機能を解読することにある。 したがつて、NANDゲート296の機能は論
理ユニツト命令68の実行期間すべてのクロツク
に対してもAOV状態レジスタ294のクロツク
入力端子を低レベルとすることによつてすべての
演算操作を正確に解読することにある。AOV状
態レジスタ294へのプリセツト入力信号は2入
力NANDゲート302の出力から得られ、一方
状態レジスタ294のクリア入力端子への出力は
2入力NANDゲート304から得られる。各
NANDゲート302,304への1入力はNOR
ゲート198の入力であつて、この入力は論理タ
イプ命令68が実行されおりMCCパルス126
が印加されている期間のみ低レベルである。
NANDゲート302への他の入力はデータ/制
御線172に現われる信号(第6ビツト)であ
り、NANDゲート304への他の入力はインバ
ータ306の出力から得られるデータ/制御線1
72上の信号の補元である。 AOV状態レジスタ294へのプリセツトおよ
びクリア入力はクロツク入力信号とは独立してい
るので、プリセツト入力端子への低レベル入力は
状態レジスタ294のQ出力を論理「1」にセツ
トし、クリア端子への低レベル入力はQ出力を論
理「Q」にセツトする。したがつて、NANDゲ
ート302の機能は次の各算術操作、X+B,X
+Z,およびX−B−1に対して時間t0にて
AOV状態レジスタ294のQ出力を論理「1」
にセツトすることにある。他方、NANDゲート
304の機能は次の各算術操作、X+B+1、X
×Z+1、およびX++1に対して時間t0にて
AOV状態レジスタ294のQ出力を論理「0」
にセツトすることにある。AOV状態レジスタ2
94のQ出力は入力として加算器30の桁上げ入
力端子234に印加され、所定の算術操作に対し
所望の結果をもたらす。MCCパルス126が命
令実行サイクルを開始させたときAOV状態レジ
スタ294は適当にセツトされる。 3つの局所状態ビツト82,84,86(LC1、LC2、
LC3)は夫々LC1状態レジスタ306、LC2状態
レジスタ308、およびLC3状態レジスタ310
を調べることによつてテストされる。3個の局所
状態レジスタ306,308,310は論理的に
MST状態レジスタ202と同じである。 概略を説明したように、テストされるとき局所
状態ビツトはリセツトされ、状態テスト命令66
のセツトフイールド100が局所状態レジスタを
セツトするのに使用される。さらに、局所状態レ
ジスタをセツトできるようにするために真値であ
る局所状態をセツトする。局所状態レジスタの操
作に関する詳細な説明は適当なテスト状態が選択
される方法に関する説明に引続いて行われる。 いずれの状態ビツトをテストすべきであるかを
決定するため、状態選択器312が使用される。
状態選択器312は3つの制御信号に応答して8
個のデータソースの1つを選択しコンプリメンタ
リ出力を作る。3つの制御信号は夫々データ/制
御線162に現われる信号(第1ビツト)、デー
タ/制御線164に現われる信号(第2ビツト)
およびデータ/制御線166に現われる信号(第
3ビツト)である。状態選択器312への8つの
データ入力は夫々4つの加算器状態ビツト
(LSTビツト74、MSTビツト76、AOVビツト78
およびABTビツト80)、外部基準レベルビツト
(EXT88)および3つの局所状態ビツト(LC1ビ
ツト82、LC2ビツト84およびLC3ビツト86)であ
る。MSTビツト76はMST状態レジスタ202の
Q出力から得られ、LST状態ビツト74はLST状
態レジスタ286のQ出力から得られる。AOV
状態ビツト78はAOVレジスタ294の出力か
ら得られ、ABT状態ビツト80はNANDゲート2
92の出力から得られる。EXTビツト88はプロ
グラム可能ユニツト10の外部状態端子314か
ら得られ、3つの局所状態ビツトは夫々局所状態
レジスタ306,308,310のQ出力から得
られる。 状態選択器312のQ出力は局所状態レジスタ
306,308,310をセツトするための制御
信号として使用され、一方状態選択器312の出
力の補元はアドレス後続選択のための制御信号と
して使用される。 いずれの局所状態レジスタ306,308,3
10をセツトすべきであるかを決定するためセツ
ト解読器314が使用された状態テスト命令66
の第4、第5ビツトをコード解読する。 セツト解読器314は2本の入力端子が3つだ
けの出力にコード解読される点を除いて行先解読
器254およびシフト解読器258と構造および
論理が同じである。セツト解読器314の論理図
は第24図に示され、対応する真理値表は第25
図に示されている。セツト解読器314への2つ
の制御入力は夫々データ/制御線168に現われ
る信号(第4ビツト)およびデータ/制御線17
0に現われる信号(第5ビツト)である。セツト
解読器314の3つの出力は夫々LC1状態レジス
タ306、LC2レジスタ308およびLC3レジス
タ310のデータ入力端子に接続される。好まし
い実施例において3個の局所状態レジスタ30
6,308,310へのクリア入力は夫々のデー
タ入力端子に接続され、セツト解読器314がデ
ータ/制御線168,170に現われる信号(第
4、第5ビツト)に応答して低レベルの入力を適
当なデータ入力端子に供給するときレジスタのQ
出力は論理「0」にセツトされる。さらに、3個
の状態レジスタ306,308,310へのプリ
セツト入力に現われる信号がレジスタの操作に影
響を及ぼさないように、各レジスタへのプリセツ
ト入力は電位Vccに接続される。 セツト解読器314への可能信号は2入力
NANDゲート316の出力から得られ、その機
能は状態選択器312によつてテストされた状態
が真値であるときのみセツト解読器314が適当
な局所状態レジスタをセツトできるようにするこ
とにある。NANDゲート316への2入力は
夫々テストされた状態が真値であるときのみ高レ
ベルにある状態選択器312のQ出力および2入
力NORゲート318の出力である。 NORゲート318の機能は状態テスト命令6
6の実行期間であつて第2クロツクの期間(時間
t2)のみを高レベル信号を与えることにある。
NORゲート318への2入力は夫々状態テスト
命令が実行されている期間のみ低レベルにある
NANDゲート284の出力および3入力NAND
ゲート320の出力である。NANDゲート32
0の機能は状態テスト命令66がプログラム可能
ユニツト10によつて実行されているとき第2ク
ロツクの期間のみ低レベル信号を与えることにあ
る。NANDゲート320の3入力は夫々NORゲ
ート266の出力、16進カウンタ134の最下位
デイジツト端子154の出力およびインバータ1
36の出力である。第27図を解析すれば、
NANDゲート320へのこれらの3入力はMCC
パルス126の印加後に生ずる第2クロツクの期
間のみNANDゲート320の出力に低レベル信
号を生じさせることが明白となる。 上記した如く、プログラム可能ユニツト10に
よつてテストできる8つの状態のうちテストのと
き3つの局所状態(LC1、LC2、LC3)のみがリ
セツトされる。この操作を達成するためリセツト
解読器322が使用される。リセツト解読器32
2は構造的および論理的にセツト解読器314と
同じである。状態テスト命令66を解析すれば、
その命令の第2、第3ビツトがいかなる局所状態
レジスタ306,308,310をテストすべき
であるかを特定し、一方その命令の第1ビツトが
1つの局所状態がテストされるべきであることを
特定することが判明する。したがつて、リセツト
解読器322への2つの制御入力は夫々データ/
制御線164に現われる信号(第2ビツト)およ
びデータ/制御線166に現われる信号(第3ビ
ツト)である。 リセツト解読器322への可能信号は2入力
NANDゲート324の出力から得られる。
NANDゲート324の機能は局所状態がテスト
されるときのみリセツト解読器322を動作する
ことにある。したがつて、NANDゲート324
への2入力はデータ/制御線162に現われる信
号(第1ビツト)および状態テスト命令66が実
行されているとき第2クロツクの期間のみ高レベ
ルにあるNORゲート318の出力である。 リセツト解読器322への3入力は夫々局所状
態レジスタ306,308,310のクロツク入
力端子に接続される。動作中、1つの局所状態が
状態テスト命令66によつてテストされるべきで
あると選択されたときリセツト解読器322はそ
の適当な局所状態レジスタ306,308,31
0にクロツク信号を与える。 後続選択に関して後続選択器324が使用され
る。好ましい実施例において後続選択器324は
2本の共通制御線を有する2個の3チヤンネルデ
ータ選択器326,328によつて構成される。
第13図参照。2個の3チヤンネルデータ選択器
は夫々3つのデータ入力およびコンプリメンタリ
出力を有する。 後続選択器324への2つの制御信号は夫々状
態選択器312の出力の補元およびNANDゲー
ト284の出力である。データ選択器326への
3つのデータ入力は夫々データ/制御線174に
現われる信号(第7ビツト)、データ/制御線1
80に現われる信号(第9ビツト)およびインバ
ータ198の出力から得られるデータ/制御線1
84上の信号の補元である。データ選択器328
への3入力データ入力は夫々データ/制御線17
2に現われる信号(第6ビツト)、データ/制御
線176に現われる信号(第8ビツト)およびデ
ータ/制御線186に現われる信号(第12ビツ
ト)である。 好ましい実施例において、ANDゲート284
の出力が低レベルにあり状態選択器312の出力
の補元が高レベルであれば、3チヤンネルデータ
選択器326の真値Q出力はデータ/制御線17
6に現われる信号(第8ビツト)となり、一方他
の3チヤンネルデータ選択器328のQ出力はデ
ータ/制御線180に現われる信号(第9ビツ
ト)となる。しかし、状態選択器312の出力の
補元が低レベルNANDゲート284の出力が低
レベルとなれば、3チヤンネルデータ選択器32
6のQ出力の信号はデータ/制御線172に現わ
れる信号(第6ビツト)となり他の3チヤンネル
データ選択器328のQ出力に現われる信号はデ
ータ/制御線174に現われる信号(第7ビツ
ト)となる。NANDゲート284の出力が高レ
ベルとなれば、一方の3チヤンネルデータ選択器
326のQ出力の信号はデータ/制御線186に
現われる信号(第12ビツト)となり他の3チヤン
ネルデータ選択器328のQ出力に現われる信号
は状態選択器312から後続選択器324に与え
られる制御信号出力に関係なくデータ/制御線1
84に現われる信号(第11ビツト)となる。 この構成によつて、後続選択器324はその出
力としてプログラム可能ユニツト10によつて実
行されるあらゆる状態テスト命令の第6−第9ビ
ツトを表わす信号を導出する。状態テスト命令が
プログラム可能ユニツト10によつて実行されて
いないときはいつでも、後続選択器324はその
出力よりその時実行されている命令の第11、第12
ビツトを表わす信号を導出する。印加される制御
信号に応答しうる後続選択器324の出力を解析
すれば、プログラム可能ユニツト10によつて実
行されるいかなる状態テスト命令66に対して
も、状態選択器312によつて選択された状態が
真値としてテストされれば後続選択器324の出
力は真値後続を定義し、一方状態選択器312に
よつてテストされた状態が偽値であれば後続選択
器324の出力は適当な偽値後続を特定する。 後続選択器324の3チヤンネルデータ選択器
326の真値出力は入力として3入力NANDゲ
ート330に供給され、その補元は入力として3
入力NANDゲート332に印加される。3チヤ
ンネルデータ選択器328の真値出力は入力とし
て3入力NANDゲート334に印加され、その
補元は第2の入力としてNANDゲート330,
332に印加される。NANDゲート330,3
34の両者への第3の入力はNORゲート318
の出力から得られ、これは状態テスト命令66が
プログラム可能ユニツト10によつて実行されて
いるとき第2クロツクの期間のみ高レベルにあ
る。NANDゲート332への第3の入力はイン
バータ290からの出力から得られ、これはメモ
リ160から検索されたいかなる命令の実行に対
しても第1クロツクの期間のみ高レベルとなる。 NANDゲート332の機能はジヤンプ
(JUMP)後続を解読しNANDゲート330の機
能はスキツプ(SKIP)後続を解読することにあ
る。セイブ(SAVE)後続はNANDゲート33
4によつて解読される。NANDゲート332の
出力は読込み制御信号としてMPCRレジスタ4
4の読込み191に印加される。第26図参照。 MPCRレジスタ44は8個のマスタースレイ
ブフリツプフロツプからなる8ビツトアツプカウ
ンタである。アツプカウンタのすべてのフリツプ
フロツプを同時にクロツクすることによつて同期
操作が行われ、支配論理回路によつて指示された
ようにフリツプフロツプの出力は相互に同じよう
に変化する。MPCRレジスタ44の8個のマス
タースレイブフリツプフロツプの出力はカウント
アツプ入力90に現われる低レベル−高レベル過
渡変化によつてトリガされる。 MPCRレジスタ44は完全にプログラム可能
であつて、換言すれば、読込み入力端子191が
低レベルであつて適当なデータ入力に所望のデー
タが導入されることによつて、その出力は任意の
状態にプリセツトされる。MPCRレジスタ44
の8つの出力はカウントパルスとは関係なくデー
タ入力に一致するように変化する。 さらに、クリア入力が与えられ、高レベルが
MPCRレジスタ44のクリア入力端子188に
印加されたときMPCRレジスタ44の8つの出
力をすべて強制的に低レベルにする。クリア機能
は夫々カウント入力、読込み入力190,192
とは独立している。MPCRレジスタ44を0ア
ドレスにセツトするのに必要なクリア信号128
はプログラム可能ユニツト10に設けられたクリ
ア端子502に印加される。したがつて、外部よ
り与えられたクリア信号128はクリア端子50
2を介してMPCRレジスタ44に印加すること
ができる。 このような構成において、NANDゲート33
2が後続選択器324からジヤンプ後続を解読す
れば、状態テスト命令66が実行されているとき
第1クロツクパルス期間(時間t1)のみ低レベル
信号がMPCRレジスタ44の読込み端子191
に印加される。他のすべての時間、他のすべての
命令に対して、NANDゲート332の出力、即
ち、MPCRレジスタ44の読込み端子191へ
の入力は高レベルである。したがつて、読込み端
子192への制御パルスが低レベルであれば、
AMPCRレジスタ32によつて特定されたアドレ
スはMPCRレジスタ44のカウントアツプ端子
190に印加される制御信号とは関係なく
MPCRレジスタ44に読込まれる。したがつて、
ジヤンプ後続が特定されたとき、AMPCRレジス
タ32において特定されたアドレスが真値後続あ
るいは偽値後続のいずれかとしてプログラム可能
ユニツト10によつて実行されるべき次の命令の
アドレスとなる。 スキツプ後続を実行するため、NANDゲート
330の出力が入力として2入力NANDゲート
336に印加され、ゲート336の出力は
MPCRレジスタ44のカウントアツプ端子19
0に印加される。NANDゲート336への他の
入力はNANDゲート292の出力から得られ、
これはプログラム可能ユニツト10によつて実行
されるいかなる命令に対しても第1クロツク期間
(時間t1)のみ低レベルにある。したがつて、
NANDゲート336はプログラム可能ユニツト
10によつて実行されるいかなる命令に対しても
時間t1にて低レベルから高レベルに過渡変化し、
また状態テスト命令66によつてスキツプ後続が
特定されていれば時間t2にてそのような過渡変化
が起こる。 NANDゲート330の出力と関係なく、
NANDゲート336の出力はNANDゲート29
2によつて解読されたタイムパルスにもとずき時
間t1において高レベルとなる。したがつて、
NANDゲート336の機能はプログラム可能ユ
ニツト10によつて実行される命令のタイプと関
係なくMPCRレジスタ44の内容を1だけ増や
すことによつてステツプ(STEP)後続機能を具
体化することにある。読込み端子191に印加さ
れるジヤンプ後続のための制御信号カウントアツ
プ端子190に印加されるいかなる信号をも無視
するので、このステツプ機能はジヤンプ後続を何
ら妨害しない。 セイブ後続を具体化するため、NANDゲート
334の出力は1入力として2入力NANDゲー
ト338に印加され、ゲート338の出力は
AMPCRレジスタ32の読込み端子340に印加
される。第30k図参照。NANDゲート338
への他の入力はインバータ342の出力から得ら
れ、インバータ342の入力は2入力NORゲー
ト344の出力から得られる。 NORゲート344の機能はGO TO
LITERAL命令64cおよびLITERAL TO
AMPCR命令64aを解読することにある。プロ
グラム可能ユニツト10によつて実行できる各種
のタイプの命令の指令コードを解析すれば、上記
2つの命令のみがそれぞれの命令の第12ビツトに
2進値「0」を有することが判る。したがつて、
NORゲート344へのデータ入力、クロツク入
力は夫々データ/制御線186に現われる信号
(第12ビツト)およびMCCパルス126の期間の
み低レベルにあるNANDゲート142の出力で
ある。 GO TO LITERAL命令64c、LITERAL
TO AMPCR命令64aのいずれかがリテラル
命令64によつて特定されたとき、NANDゲー
ト338の出力によつて時間t0にてAMPCRレジ
スタ32には選択器192からの選択された出力
が読込まれる。さらに、セイブ後続が後続選択器
324およびセイブ解読NANDゲート334に
よつて解読されたとき、NANDゲート338の
出力によつてAMPCRレジスタ32には時間t2
て選択器192からの選択された出力が読込まれ
る。他の時間(例えば、t1、t3−t8)にはNAND
ゲート338の出力が低レベルである。 好ましい実施例において、AMPCRレジスタ3
2は並列入力、並列出力式の記憶レジスタとして
も使用できる8ビツト右シフトレジスタである。
第28図参照。8つのデータ入力、8つのデータ
出力および読込み制御入力は340は別として、
AMPCRレジスタ32には直列入力端子およびク
ロツク制御端子が設けられる。 AMPCRレジスタ32は8個のR−Sマスター
スレイブフリツプフロツプ、8個のAND−OR−
INVERTのゲート、1個のAND−ORゲート3
46、10個のインバータおよび10個の駆動器によ
つて構成される。これらの機能の相互結合によつ
て多機能レジスタが得られ、これは適当な論理入
力がその読込み制御入力端子340に印加される
ことによつて右シフト操作を行なう。 AMPCRレジスタ32へのクロツク入力は2入
力NORゲート214の出力から与えられる。上
記したように、NORゲート214への1入力は
NANDゲート204の出力から得られ、NORゲ
ート214は論理ユニツト命令68の実行に必要
なクロツクパルスを与える。NORゲート214
への他の入力はAMPCRレジスタ32が行先レジ
スタとして論理ユニツト命令68によつて特定さ
れたときのみ低レベルであるNANDゲート23
2の出力から得られる。 AMPCRレジスタ32の各AND−OR−
INVERTゲートはANDゲート1およびANDゲ
ート2と称する2個のANDゲートによつて構成
される。論理「0」レベルがAMPCRレジスタ3
2の読込み制御入力端子340に印加されると、
ANDゲート1は動作しANDゲート2は禁止され
る。このような動作モードにおいて、各R−Sフ
リツプフロツプの出力は次段のフリツプフロツプ
のR−S入力に結合され、クロツク入力をクロツ
クすることによつて右シフト操作が実行される。
さらに、直列データが直列入力に導入され、8つ
の並列入力はANDゲート2によつて禁止される。 論理「1」レベルが読込み制御入力340に印
加されるとき、ANDゲート1は禁止され、(次段
のR−S入力と出力との結合を解除し右シフトを
を阻止する)ANDゲート2は動作し8つの並列
入力を介するデータの導入が可能となる。このモ
ードの動作によつてAMPCRレジスタへの並列読
込みが可能となる。 シフトレジスタへのクロツクはAND−ORゲー
ト346によつて行われ、したがつてクロツクソ
ースは右シフト操作のときのみ使用される。クロ
ツクされる前にマスタースレイブフリツプフロツ
プのR−S入力には情報がなければならない。ク
ロツク入力が論理「1」から論理「0」に変化す
るとき情報がAMPCRレジスタ32の8番目のフ
リツプフロツプのQ出力端子に転送される。 したがつて、AMPCRレジスタ32が行先レジ
スタとして論理ユニツト命令68の行先フイール
ド114によつて特定されたとき、加算器30か
らの直列出力はNORゲート246を介して
AMPCRレジスタ32の直列入力に印加され、こ
の操作のためのクロツクがNORゲート214の
出力から与えられる。他方、セイブ後続、GO
TO LITERAL命令あるいはLITERAL TO
AMPCR命令の実行のため、AMPCRレジスタ3
2の8つのデータ入力はNANDゲート338,
334から与えられる読込み制御信号に応答して
並列式に選択器192からの適当な出力を受信す
る。 AMPCRレジスタ32への並列入力は選択器1
92の制御端子194に現われる信号によつて決
定される。選択器192の制御端子194への制
御信号はNANDゲート284の出力から得られ、
この出力は論理タイプ命令68がプログラム可能
ユニツト10によつて実行されているときのみ低
レベルにある。したがつて、論理タイプ命令がプ
ログラム可能ユニツト10によつて実行されてい
るとき、選択器192はMPCRレジスタ44の
出力を並列入力としてAMPCRレジスタ32に供
給する。他のすべての命令に対しては、データ/
制御線162−176に現われる信号(第1−第
8ビツト)を入力としてAMPCRレジスタ44に
供給する。 リテラル命令 LITERAL TO AMPCR命令64a、GO TO
LITERAL命令64cに関する回路は状態テスト
命令66の実行に関する回路の一部に関連して既
に説明されている。残りのリテラル命令、即ち、
LITERAL TO B命令に関する回路をここで説
明する。 LITERAL TO B操作は4入力NANDゲート
348によつて解読され、ゲート348の出力は
制御信号としてBレジスタ28のシフト/読込み
入力端子に印加される。第17図参照。NAND
ゲート348への4入力のうちの2つは夫々デー
タ/制御線182,186に現われる信号(第
9,第12ビツト)。第30g図参照。NANDゲー
ト348への第3の入力は第1クロツク期間のみ
高レベルであるインバータ290の出力から得ら
れる。第27図参照。NANDゲート348への
残りの入力は2入力NORゲート350の出力か
ら得られる。 NORゲート350の機能はLITERAL TO B
命令64bの指令コードの残りの2ビツト(第
10,第11ビツト)を解読することにある。したが
つて、NORゲート350への2入力は夫々デー
タ/制御線182に現われる信号(第10ビツト)
およびインバータ198の出力から得られるデー
タ/制御線184上の記号(第11ビツト)の補元
である。 このような構成によつて、LITERAL TO B
命令がリテラル命令64によつて特定されたとき
のみNANDゲート348はBレジスタ28のシ
フト/読込み入力端子に低レベル信号を与える。
Bレジスタの操作を解析すれば、低レベル信号が
Bレジスタのシフト/読込み端子に印加されたと
きBレジスタの8つの並列入力での入力は印加さ
れるクロツク制御パルスの状態に関係なく直接レ
ジスタに読込まれる。 したがつて、LITERAL TO B命令64bが
特定されると、NANDゲート348が適当な指
令コードを解読したとき命令のリララル値は並列
式にBレジスタ28に読込まれる。 このような配置において、DEVタイプ命令1
18がプログラム可能ユニツト10によつて実行
されるべきであるときのみNANDゲート352
の出力は低レベルとなる。NANDゲート352
の出力は入力として2入力NANDゲート356
に印加され、一方NANDゲート352の出力の
補元は入力として2入力NANDゲート358に
印加される。NANDゲート352の出力の補元
はインバータ360によつて与えられる。第30
n図参照。 NANDゲート356への他の入力は加算器3
0の適当な出力をゲートするNORゲート246
の出力から得られる。第29図参照。装置レジス
タ362はバツフア364として第2図に示され
ている。NANDゲート356,358の出力は
入力として2入力NORゲート370に印加され
る。 装置レジスタ364は8ビツト並列−直列シフ
トレジスタであつて、クロツクされたときデータ
を右へシフトする。装置レジスタ362への8入
力は夫々データ/制御線162−176に現われ
る信号(各命令の8つの第1ビツト)である。装
置レジスタ362の並列読込みのための制御信号
はMCCパルス126を16進カウンタ134のカ
ウントアツプ端子146にゲートするNANDゲ
ート142の出力から得られる。装置レジスタ3
62へのクロツクはプログラム可能ユニツト装置
10へのクロツクインパルスをゲートする
NANDゲート132の出力から得られる。第3
0b図参照。 動作中、時間t0にてMCCパルスがプログラム
可能ユニツト10に印加されたとき、装置レジス
タ362にはMPCRレジスタ44によつてアド
レスされた命令の8つの第1ビツトが並列式に読
込まれる。時間t1−t8にて、装置レジスタ362
の内容は入力としてNANDゲート358に直列
式に読込まれる(最初に第8ビツト)。 DEV命令118が実行されるべきであるとき
DEV命令解読NANDゲート352は低レベルに
あるので、NANDゲート358の機能はDEV命
令118のリテラル値をNORゲート370を介
してプログラム可能ユニツト10のデータアウト
端子368にゲートすることにある。他方、
NANDゲート356はDEV命令が特定されてい
るときを除いて常に加算器30の適当な出力を
NORゲート246を介してNORゲート370か
らデータアウト端子368にゲートすることにあ
る。 外部制御線 プログラム可能ユニツト10を起点とする情報
の流れを助けるのに使用される4ビツト外部制御
線90は2本の12データ/制御線および2個のゲ
ート373,374の出力である。データ/制御
線180,182に現われる信号(第9,第10ビ
ツト)は外部制御出力信号として与えられ、これ
らは夫々プログラム可能ユニツト10の出力端子
376,378から得ることができる。プログラ
ム可能ユニツト10の外部制御出力端子376,
378に現われる信号は外界に対し論理ユニツト
命令68の期間レジスタ、OUT0、OUT1、
OUT2、OUT3のいずれか特定されたかを知らせ
る。この2つの信号は実際命令ワードの第9、第
10ビツトである。 残りの2つの外部制御ビツトは夫々NANDゲ
ート372、374の出力から得られる。
NANDゲート372の機能は「OUT」行先が特
定されたときあるいはDEVタイプ命令118が
プログラム可能ユニツト10によつて実行される
ときのみ外部制御ビツトAを与えることにある。
この2つの外部N制御ビツトA、Bは夫々プログ
ラム可能ユニツト10の出力端子から得られる。 好ましい実施例において、外部制御ビツトA、
Bの4つの可能な組合せは次のものを表わす、
(1)、ビツトA=0、ビツトB=0は外部的に意味
のある命令が実行されていないことを表わす、
(2)、ビツトA=0、ビツトB=1は「BEX」タ
イプ命令を表わす、(3)、ビツトA=1、ビツトB
=0は「OUT」タイプ命令を表わす、(4)、ビツ
トA=1、ビツトB=1はDEVタイプ命令11
8を表わす。 NANDゲート372,374は夫々2つの入
力を有する。第30h図。各NANDゲート37
2,374への1入力はDEVタイプ命令118
がプログラム可能ユニツト10によつて実行され
ているときのみ低レベルにあるNANDゲート3
52の出力から得られる。NANDゲート372
への他の入力は2入力NANDゲート380の出
力から得られる。NANDゲート380への2入
力は夫々論理タイプ命令68が実行されていると
きのみ高レベルにあるインバータ206の出力、
および「OUT」行先が特定されたときのみ高レ
ベルにあるインバータ206の出力である。した
がつて、NANDゲート380の機能は「OUT」
行先が論理ユニツト命令68の行先フイールド1
14によつて特定されたときのみ低レベル信号を
入力としてNANDゲート372に与えることに
ある。これらの入力によつて、NANDゲート2
72はDEVタイプ命令118が実行されたとき
あるいは「OUT」行先が特定されたときのみ高
レベル信号(外部制御ビツトA)を与える。 NANDゲート374への別の入力は2入力
NANDゲート382の出力から得られる。
NANDゲート383への2入力は夫々インバー
タ206の出力および2入力NORゲート384
の出力である。NORゲート384への2入力は
夫々データ/制御線176上の信号(第8ビツ
ト)およびインバータ234の出力から得られる
データ/制御線174上の信号(第7ビツト)の
補元である。 動作中、NORゲート384は「BEX」タイプ
行先が特定されたときのみ高レベル信号を与え
る。この高レベル信号はNANDゲート383に
よつてゲートされ、NANDゲート374に低レ
ベル信号を与える。したがつて、「BEX」タイプ
行先あるいはDEPタイプ命令のいずれかが特定
されたときのみNANDゲート374はプログラ
ム可能ユニツト10の出力端子388に高レベル
信号(外部制御ビツトB)を与える。 アドレス操作 MPCRレジスタ44の出力にある命令アドレ
スに応答して、メモリ160は命令レジスタ50
0の入力に適当な12ビツト命令ワードを与える。
第30a図参照。簡略的に説明したように、命令
レジスタ500は12ビツト並列入力、並列出力式
記憶レジスタであつて、レジスタ500へのクロ
ツク入力が高レベルから低レベルに変化したとき
情報を出力端子に転送する。命令レジスタ500
への12入力はメモリ160から得られ他方、命令
レジスタの12出力は線162−186のためのデ
ータ/制御信号を与える。命令レジスタへのクロ
ツクは最終パルス信号122をプログラム可能ユ
ニツト10の最終パルス出力端子158に供給す
るインバータ156の出力から与えられる。16進
カウンタ154の出力を解析すれば、命令レジス
タのクロツク制御端子において高レベルから低レ
ベルへの過渡変化が時間t8でのみ発生する。した
がつて、以前の命令が完全にプログラム可能ユニ
ツト10によつて実行されるまで新たな命令は命
令レジスタ500に読込まれない。 入力端子および出力端子 マイクロプログラムにて作業機能を具体化する
ことによつて、すべての必要な制御信号およびデ
ータ信号はメモリに記憶され、外界との不必要な
接続が除去される。好ましい実施例において、外
界へは12の接続が設けられている。プログラム可
能ユニツト10への制御信号およびクロツク信号
のために5本の端子、即ち、データイン端子28
0、クロツクイン端子130、MCC端子140、
MPCRクリア端子502および外部状態端子3
14が設けられる。プログラム可能ユニツト10
によつて与えられた信号、即ちクロツクアウト端
子、最終パルス端子158、データアウト端子3
68、および4本の外部制御ビツト端子376,
378,386,388によつて与えられた信号
は外界にプログラム可能ユニツト10の状態を知
らせるための制御信号およびデータ信号を導出す
る。プログラム可能ユニツト10がLSI技術によ
つて構成されていれば必要な電力を供給するため
2本の附加的な接続端子が必要となる。この2本
の附加的な端子は第2図において「電圧」「接地」
として示されている。 要 約 プログラム可能リードオンリーメモリを説明し
てきたけども、マイクロメモリ14(第2図参
照)は任意の適当なタイプのマイクロプログラム
メモリであればよい。LSI構成およびROMタイ
プメモリを考慮すれば、まず読出し/書込みタイ
プメモリを使用して所定の作業機能のための最適
プログラムを展開させる。この最適のプログラム
からROMタイプメモリ用のビツトパターンを発
生させLSIシングルチツプとして構成できる処理
ユニツトの不変論理部に組入れることが可能とな
る。 さらに、リテラル、論理、状態およびDEVタ
イプの命令群のみを開示したが、追加もしくは削
除による命令群のいかなる変型も包含される基本
構造および設計方法を変えるものではない。マイ
クロプログラミング技術によつてソフト−ハード
ウエア設計法あるいはソフト−マシン設計法を使
用すれば、変型によつて特定された附加的もしく
は削除された操作を実行するため回路を附加もし
くは削除することが簡単にできる。さらに、特定
の回路への必要な変型は本質的にモジユールであ
るので、メモリ容量の増加および命令作業長さの
変更はソフト−マシン構成法によつて容易に行え
る。 上記の説明からこの発明によるプロセツサは
LSI技術によつて構成し得ることが理解される。
プログラム可能ユニツトの設計では、すべての回
路が最小限度に委託された論理回路であつて、こ
の論理回路はマイクロプログラムで発生する制御
信号によつて特定のタスクに委託されるという利
点がある。もしマイクロプログラムが上記処理ユ
ニツトに絶対必要なROMタイプメモリに記憶さ
れていれば、必要な外部接続ピン数は大巾に低減
される。 したがつて、この発明は特にその好ましい実施
例を参照して図示され開示されたが、この分野の
熟練者にとつて型式および詳細について各種の変
型が可能であることが理解できよう。
【図面の簡単な説明】
この発明をもつともよく理解するため、添付の
図面を参照しなければならない、第1図はこの発
明のプログラム可能ユニツトのデータ信号および
制御信号の流れを示す概略ブロツク図、第2図は
この発明のプロセツサのデータ信号および制御信
号の流れを示す詳細ブロツク図、第3図はこの発
明のプログラム可能ユニツトによつて実行される
リテラル代入命令の命令書式を示し、第4図はこ
の発明のプログラム可能ユニツトによつて実行さ
れる状態テスト命令の命令書式を示し、第5図は
この発明のプログラム可能ユニツトのマイクロプ
ログラムメモリをアドレスする各種の指令を示す
図、第6図はこの発明のプログラム可能ユニツト
によつて実行される論理タイプ命令の命令書式を
示し、第7図はこの発明のプログラム可能ユニツ
トによつて実行される外部タイプ命令の命令書式
を示し、第8図はこの発明のプロゲラム可能ユニ
ツトにおいて使用される状態レジスタの論理図、
第9図はこの発明のプログラム可能ユニツトにお
いて使用される直列加算器の論理図、第10図は
この発明のプログラム可能ユニツトにおいて使用
される16進カウンタの論理図、第11図はこの発
明のプログラム可能ユニツトに使用される16本−
8本マルチプレクサの論理図、第12図はこの発
明のプログラム可能ユニツトに使用される8ビツ
ト再循環シフトレジスタの論理図、第13図はこ
の発明のプログラム可能ユニツトに使用されるデ
ータ選択器の論理図、第14図はこの発明のプロ
グラム可能ユニツトに供給されあるいはプログラ
ム可能ユニツトによつて発生させる各種のクロツ
クパルスのタイムチヤート、第15図この発明の
16進カウンタに関連した各種のクロツク制御パル
スのタイムチヤート、第16図はこの発明のプロ
グラム可能ユニツトに使用される4本−1本マル
チプレクサの論理図、第17図は第16図の4本
−1本マルチプレクサの真理値表、第18図はこ
の発明のプログラム可能ユニツトに使用される並
列読込み式の8ビツトシフトレジスタの論理図、
第19図はこの発明のプログラム可能ユニツトに
使用される2進−1本線/4本線解読器の論理
図、第20図は第19図の2進−1本線/4本線
解読器の真理値表、第21図は第7図の状態レジ
スタの真理値表、第22図はこの発明のプログラ
ム可能ユニツトに使用される8入力データ選択器
−マルチプレクサの論理図、第23図は第22図
のデータ選択器−マルチプレクサの真理値表、第
24図はこの発明のプログラム可能ユニツトに使
用される2進−1本線/4本線解読器の論理図、
第25図は第24図の2進−1本線/4本線解読
器の真理値表、第26図は互いに並置関係にあつ
てこの発明のプログラム可能ユニツトに使用され
る同期式8ビツトアツプカウンタの論理図を示す
第26の図および第26b図からなり、第27図
はこの発明のプログラム可能ユニツトによつて発
生される各種のクロツク制御パルスのタイムチヤ
ート、第28図は互いに並置関係にあつてこの発
明のプログラム可能ユニツトに使用される8ビツ
ト並列入力、並列出力レジスタの論理図を示す第
28a図および第28b図からなり、第29図は
この発明のプログラム可能ユニツトに使用される
並列入力並列出力8ビツトレジスタの論理図、第
30図は互いに組合せることによつてこの発明の
好ましい実施例の論理ブロツク図を示す第30a
図−第30n図からなり、第31図はこの発明の
プログラム可能ユニツトに使用される12ビツト並
列入力並列出力命令レジスタの論理図である。 10……プログラム可能処理ユニツト、12…
…論理ユニツト(LU)、14……マイクロプログ
ラムメモリ(MPM)、16……メモリ制御ユニ
ツト(MCU)、18……制御ユニツト(CU)、2
0……外部インターフエイス(EXI)、22,2
4,26……再循環シフトレジスタ(A1,A
2,A3)、28……再循環シフトレジスタB、
30……加算器、32……代替マイクロプログラ
ムカウントレジスタ(AMPCR)、44……マイ
クロプログラムカウントレジスタ(MPCR)、4
6……マイクロ命令解読器、48……後続決定回
路、50……状態選択論理回路、52……状態レ
ジスタ、58……タイミング発生器。

Claims (1)

  1. 【特許請求の範囲】 1 ストアードプログラムに従つてデータを処理
    するための装置であつて、 各々が制御情報を含む複数個のマイクロ命令を
    記憶するためのメモリ手段と、 処理されるべき情報ビツトを受けるための直列
    入力バスと、 前記処理装置から処理された情報ビツトを転送
    するための直列出力バスと、 前記バス間に接続されかつ前記メモリ手段へ結
    合されて前記複数個のマイクロ命令のうちの少な
    くとも1個をアクセスしかつ前記制御情報を与え
    るための手段と、 前記バス間に接続されかつ前記アクセス手段か
    ら並列に受けられた前記与えられた制御情報に応
    答して、前記入力バスによつて受けられた情報ビ
    ツトに基づき直列に論理演算を行なうための少な
    くとも1個の論理ユニツトとを備え、 前記アクセス手段は、 ゲートパルスを発生させるための制御手段と、 前記制御手段に応答して前記メモリ手段から前
    記複数個のマイクロ命令のうちの少なくとも1個
    を選択的に取出すための第1の手段と、 前記第1の手段に結合されかつ前記ゲートパル
    スのあるものに応答して前記取出された命令を解
    読するための第2の手段とを備え、さらに 前記第1の手段は、 前記入力バスを前記出力バスへ接続する独特な
    直列の経路を備え、前記独特な経路は前記メモリ
    手段のためのアドレス情報ビツトを受けるための
    第1のレジスタを含み、 前記第1のレジスタと前記メモリ手段との間に
    接続されて、前記メモリ手段をアドレスするため
    の第2のアドレスをさらに備え、前記第2のレジ
    スタは前記第1のレジスタから並列にアドレス情
    報ビツトを受け、 前記第2手段から前記第1のレジスタへ至る第
    1の並列経路をさらに備え、前記第1の並列経路
    は選択ゲートを含み、 前記第2のレジスタから前記選択ゲートへ至る
    第2の並列経路と、 前記選択ゲートおよび前記第1のレジスタに結
    合されかつ前記与えられた制御情報のあるものに
    応答して、前記第2のレジスタによつてアドレス
    された前記複数個のマイクロ命令の前記少なくと
    も1個の繰り返し取出しを許容するようにまたは
    前記複数個のマイクロ命令の前記少なくとも1個
    によつて特定されるマイクロ命令の取出しを許容
    するように、前記第2の手段によつて与えられた
    デコードされた情報または前記第2のレジスタの
    内容を並列に前記第1のレジスタへロードし、ま
    たは前記独特な直列経路によつて通信されるアド
    レス情報ビツトを直列に前記第1のレジスタにロ
    ードするための第2の制御手段とを含み、 前記論理ユニツトは、 前記入力バスへ接続されて処理装置内で前記受
    けた情報ビツトを記憶するための第3のレジスタ
    手段と、 第1および第2の入力を有する演算ユニツト
    と、 前記第3レジスタ手段と前記演算ユニツトとの
    間に接続されて、前記記憶された受けられた情報
    ビツトを前記演算ユニツトの前記第1の入力へ選
    択的に通信させるための第1のゲート手段とを備
    え、前記演算ユニツトは前記記憶された受けられ
    た情報ビツトに基づき演算操作を行ない、 前記演算ユニツトの前記第2入力へ接続されて
    前記処理装置内で前記操作され受けられた情報ビ
    ツトを記憶するための第4のレジスタ手段と、 前記出力バスと前記演算ユニツトとの間に接続
    されて前記操作されて受けられた情報ビツトを前
    記演算ユニツトから前記出力バスまたは前記第4
    のレジスタ手段へ選択的に通信させるための第2
    のゲート手段とを備えた、データ処理装置。
JP48125871A 1972-11-20 1973-11-06 Expired JPS6361691B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US307863A US3878514A (en) 1972-11-20 1972-11-20 LSI programmable processor

Publications (2)

Publication Number Publication Date
JPS5047534A JPS5047534A (ja) 1975-04-28
JPS6361691B2 true JPS6361691B2 (ja) 1988-11-30

Family

ID=23191492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP48125871A Expired JPS6361691B2 (ja) 1972-11-20 1973-11-06

Country Status (14)

Country Link
US (1) US3878514A (ja)
JP (1) JPS6361691B2 (ja)
BE (1) BE807098A (ja)
BR (1) BR7309060D0 (ja)
CA (1) CA1002200A (ja)
DE (1) DE2357003C2 (ja)
DK (1) DK158685C (ja)
FR (1) FR2217745B1 (ja)
GB (1) GB1429379A (ja)
IE (1) IE40493B1 (ja)
IL (1) IL43641A (ja)
IT (1) IT1002151B (ja)
NL (2) NL7315163A (ja)
ZA (1) ZA738531B (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615380A (en) * 1969-11-24 1997-03-25 Hyatt; Gilbert P. Integrated circuit computer system having a keyboard input and a sound output
US4016540A (en) * 1970-12-28 1977-04-05 Gilbert Peter Hyatt Apparatus and method for providing interactive audio communication
US4825364A (en) * 1970-12-28 1989-04-25 Hyatt Gilbert P Monolithic data processor with memory refresh
US4896260A (en) * 1970-12-28 1990-01-23 Hyatt Gilbert P Data processor having integrated circuit memory refresh
US5410621A (en) * 1970-12-28 1995-04-25 Hyatt; Gilbert P. Image processing system having a sampled filter
GB1469300A (en) * 1973-12-22 1977-04-06 Olympia Werke Ag Circuit arrangement for an integrated data processing system
US4149240A (en) * 1974-03-29 1979-04-10 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of data structure operations
US4153932A (en) * 1974-03-29 1979-05-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US3972025A (en) * 1974-09-04 1976-07-27 Burroughs Corporation Expanded memory paging for a programmable microprocessor
US4177511A (en) * 1974-09-04 1979-12-04 Burroughs Corporation Port select unit for a programmable serial-bit microprocessor
GB1505535A (en) * 1974-10-30 1978-03-30 Motorola Inc Microprocessor system
US3988604A (en) * 1974-11-19 1976-10-26 Raymond Jr Joseph H Electronic calculator or digital processor chip having multiple function arithmetic unit output
US4037090A (en) * 1974-11-19 1977-07-19 Texas Instruments Incorporated Multiphase clocking for MOS
JPS5193138A (en) * 1975-02-12 1976-08-16 Johoshorisochini okeru kyotsujohono densohoshiki
US4037202A (en) * 1975-04-21 1977-07-19 Raytheon Company Microprogram controlled digital processor having addressable flip/flop section
FR2325106A1 (fr) * 1975-05-29 1977-04-15 Burroughs Corp Appareil d'acces pour la communication de donnees
US3988717A (en) * 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
JPS5228243A (en) * 1975-08-28 1977-03-03 Toshiba Corp Bit slice-type lsi function multiplexing
DE2638125A1 (de) * 1975-09-04 1977-03-17 Tokyo Shibaura Electric Co Datenverarbeitungssystem
GB1540923A (en) * 1975-12-01 1979-02-21 Intel Corp Programmable single chip mos computer
US4212076A (en) * 1976-09-24 1980-07-08 Giddings & Lewis, Inc. Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former
US4167781A (en) * 1976-10-12 1979-09-11 Fairchild Camera And Instrument Corporation Microprocessor system having a single central processing unit shared by a plurality of subsystems each having a memory
US4367524A (en) * 1980-02-07 1983-01-04 Intel Corporation Microinstruction execution unit for use in a microprocessor
US4446514A (en) * 1980-12-17 1984-05-01 Texas Instruments Incorporated Multiple register digital processor system with shared and independent input and output interface
US4384340A (en) * 1980-12-24 1983-05-17 Honeywell Information Systems Inc. Data processor having apparatus for controlling the selection of decimal digits of an operand when executing decimal arithmetic instructions
US4404629A (en) * 1981-01-26 1983-09-13 Atari, Inc. Data processing system with latch for sharing instruction fields
US4656579A (en) * 1981-05-22 1987-04-07 Data General Corporation Digital data processing system having a uniquely organized memory system and means for storing and accessing information therein
US4618925A (en) * 1981-05-22 1986-10-21 Data General Corporation Digital data processing system capable of executing a plurality of internal language dialects
US4583169A (en) * 1983-04-29 1986-04-15 The Boeing Company Method for emulating a Boolean network system
US4697250A (en) * 1983-08-22 1987-09-29 Amdahl Corporation Flexible computer control unit
US5349670A (en) * 1986-07-23 1994-09-20 Advanced Micro Devices, Inc. Integrated circuit programmable sequencing element apparatus
US5594908A (en) * 1989-12-27 1997-01-14 Hyatt; Gilbert P. Computer system having a serial keyboard, a serial display, and a dynamic memory with memory refresh
EP0992887B1 (en) * 1998-10-06 2010-03-03 Texas Instruments Inc. Memory access using byte qualifiers
US7577247B1 (en) 2000-06-14 2009-08-18 Marvell International Ltd. Apparatus and method for telephone, intercom, and clock
US7546172B1 (en) * 2000-06-14 2009-06-09 Marvell International Ltd. Apparatus, method, and computer program product for recording and reproducing digital data
US7778736B2 (en) 2000-06-14 2010-08-17 Marvell International Ltd. Apparatus, method, and computer program for sprinkler control
US7315764B1 (en) * 2000-06-14 2008-01-01 Marvell International Ltd Integrated circuit, method, and computer program product for recording and reproducing digital data
US7457676B1 (en) * 2000-06-14 2008-11-25 Marvell International Ltd. Vehicle for recording and reproducing digital data
US7298252B1 (en) * 2000-06-14 2007-11-20 Marvell International Ltd. Apparatus, method, and computer program for an alarm system
US8832670B2 (en) * 2011-07-01 2014-09-09 Mitsubishi Electric Corporation Programmable controller and programming tool for communication with legacy equipment

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3302183A (en) * 1963-11-26 1967-01-31 Burroughs Corp Micro-program digital computer
US3391394A (en) * 1965-10-22 1968-07-02 Ibm Microprogram control for a data processing system
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
US3700873A (en) * 1970-04-06 1972-10-24 Ibm Structured computer notation and system architecture utilizing same
US3745533A (en) * 1970-05-27 1973-07-10 Hughes Aircraft Co Digital data storage register modules
FR2136845B1 (ja) * 1971-05-07 1973-05-11 Inf Cie Intern
US3736567A (en) * 1971-09-08 1973-05-29 Bunker Ramo Program sequence control
US3760369A (en) * 1972-06-02 1973-09-18 Ibm Distributed microprogram control in an information handling system

Also Published As

Publication number Publication date
NL8900608A (nl) 1989-06-01
ZA738531B (en) 1974-09-25
JPS5047534A (ja) 1975-04-28
FR2217745B1 (ja) 1983-11-04
NL7315163A (ja) 1974-05-22
IL43641A0 (en) 1974-03-14
BR7309060D0 (pt) 1974-08-29
IE40493B1 (en) 1979-06-20
DE2357003A1 (de) 1974-05-22
FR2217745A1 (ja) 1974-09-06
CA1002200A (en) 1976-12-21
AU6268773A (en) 1975-05-22
DK158685B (da) 1990-07-02
BE807098A (fr) 1974-03-01
IT1002151B (it) 1976-05-20
US3878514A (en) 1975-04-15
IL43641A (en) 1976-04-30
GB1429379A (en) 1976-03-24
DK158685C (da) 1991-02-25
DE2357003C2 (de) 1984-12-20
IE40493L (en) 1974-05-20

Similar Documents

Publication Publication Date Title
JPS6361691B2 (ja)
US4631663A (en) Macroinstruction execution in a microprogram-controlled processor
US3766532A (en) Data processing system having two levels of program control
US3886523A (en) Micro program data processor having parallel instruction flow streams for plural levels of sub instruction sets
CA1045247A (en) Multi-microprocessor unit on a single semiconductor chip
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US4575793A (en) Personal-computer to 3270 system interfacing apparatus
US4181942A (en) Program branching method and apparatus
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
US4346437A (en) Microcomputer using a double opcode instruction
US3602889A (en) Extended addressing for programmed data processor having improved register loading means
CA1148665A (en) Microcomputer arranged for direct memory access
US4124890A (en) Microprocessor computing system
EP0070863A1 (en) CONTROL UNIT WITH SAVED PROGRAM.
US3889242A (en) Modifiable computer function decoder
CA1050663A (en) Microprogram control units
US4481581A (en) Sequence control circuit for a computer
US4153942A (en) Industrial control processor
US5161229A (en) Central processing unit
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
KR900005284B1 (ko) 마이크로 컴퓨터
US3958223A (en) Expandable data storage in a calculator system
US3387279A (en) Multiaperture magnetic disc computer control members
EP0305752B1 (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets