JPH06101042B2 - マイクロコンピユ−タ - Google Patents

マイクロコンピユ−タ

Info

Publication number
JPH06101042B2
JPH06101042B2 JP58221453A JP22145383A JPH06101042B2 JP H06101042 B2 JPH06101042 B2 JP H06101042B2 JP 58221453 A JP58221453 A JP 58221453A JP 22145383 A JP22145383 A JP 22145383A JP H06101042 B2 JPH06101042 B2 JP H06101042B2
Authority
JP
Japan
Prior art keywords
memory
register
instruction
microcomputer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP58221453A
Other languages
English (en)
Other versions
JPS59194256A (ja
Inventor
マイクル・デイビツド・メイ
ジヨナサン・エドワ−ズ
デイビツド・レオナ−ド・ウオ−ラ−
Original Assignee
インモス、リミテッド
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=10534539&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH06101042(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by インモス、リミテッド filed Critical インモス、リミテッド
Publication of JPS59194256A publication Critical patent/JPS59194256A/ja
Publication of JPH06101042B2 publication Critical patent/JPH06101042B2/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
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/786Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring

Description

【発明の詳細な説明】
本発明はマイクロコンピユータに関するものである。 マイクロコンピユータはプロセツサとメモリを一般に備
え、プロセツサは内臓されているプログラムから得られ
る一連の命令に従つて動作するように構成されている。
動作時には、プロセツサはレジスタの間と、レジスタと
メモリの間でデータの転送を行う必要があるのが普通で
ある。他のマイクロコンピユータで実行されるプロセス
との間でメツセージの交換を行いたい場合もある。プロ
セツサチツプの外部に配置されているメモリのアクセス
速度ははるかに遅い。更に、マイクロコンピユータは、
共用バスを介して外部との通信を行うように構成される
のが普通であるが、そのバスは障害となることがあり、
そのためにマイクロコンピユータの動作が遅くなる。 集積回路技術の進歩によりマイクロコンピユータのチツ
プにより多くの部品が設けられるようになつたが、プロ
セツサが形成されているチツプと同じチツプに有用な数
のメモリを設けることは困難である。 1枚のシリコンチツプの利用できる大きさは限られてお
り、しかもメモリアレイはマイクロコンピユータで必要
な部品のうちで最大かつ集積の最も高い部品である。し
たがつて、プロセツサと同じチツプにメモリを設けると
広い面積を占めることになり、メモリをチツプ上に形成
したことから不良部品の生ずる危険が高くなるために製
品の歩留りが低下することになる。 更に、プロセツサのような非同期回路が同じチツプ上形
成される時は、メモリの動作に妨害を与える許容できな
いノイズを避けることが困難となる。 本発明の目的は、1枚のチツプ上にメモリとプロセツサ
を満足できるように組合わせた、改良したマイクロコン
ピユータを得ることである。 本発明の他の目的は、プロセツサとメモリの間の転送遅
延を短くすることにより、マイクロコンピユータの動作
速度を向上させることである。 本発明の更に他の目的は、プロセツサが設けられている
のと同じチツプに設けられているメモリに、マイクロコ
ンピユータを動作させるプログラムを格納できる改良し
たマイクロコンピユータを得ることである。 本発明の別の目的は、ノイズ妨害を最少にしてメモリと
プロセツサをチツプに設けることである。 本発明の更に別の目的は、同じチツプ上にメモリとプロ
セツサを形成し、製造歩留りの高い改良したマイクロコ
ンピユータを得ることである。 本発明は、プロセツサとメモリが同じチツプ上に形成さ
れ、メモリは少くとも1Kバイト(8Kビツト)のプログラ
ム可能なRAMを構成するメモリセルのアレイを含むワン
チツプ・マイクロコンピユータを提供するものである。 本発明は、プロセツサとメモリを有する1つの集積回路
装置を備え、前記プロセツサは、プロセツサにより遂次
実行される複数の命令より成るプログラムに応答して、
データを基にしていくつかのオペレーシヨンを実行する
ように構成され、各命令は、プロセツサにより実行され
る求められた機能を指定する機能ビツトのセツトを含
み、 (a) 前記プロセツサは、 (i) 複数のレジスタ、およびそれらのレジスタとの
間でデータの転送に用いるデータ転送器と、 (ii) 各命令を受け、その命令に関連する値をプロセ
ツサ・レジスタの1つにロードするための手段と、 (iii) 前記機能ビツトに応答して前記データ転送手
段とレジスタを制御し、前記機能ビツトに従つてプロセ
ツサを動作させる制御器と、 を含み、 (b) 前記メモリは、プロセツサにより実行すべきプ
ログラムを格納するための少くとも1KバイトのRAMを構
成するメモリセルのアレイを備える、 マイクロコンピユータを提供するものである。 なるべくなら、メモリは少くとも4KバイトのRAMを構成
するようにする。 なるべくなら、前記メモリは高インピーダンス抵抗負荷
とトランジスタが形成された複数のRAMセルを含むよう
にする。 一実施例においては、高インピーダンス抵抗負荷は多結
晶シリコンの膜内に形成する。 なるべくなら、マイクロコンピユータは半導体基板を有
し、メモリとプロセツサの間のノイズ妨害を減少させる
ために、前記メモリは、基板とは導電形の異なる半導体
材料で作られた分離井戸内に配置するようにする。 なるべくなら、半導体はnチヤネル基板と、この基板に
p形半導体の1つまたはそれ以上の分離井戸を有するCM
OS構造で構成する。 なるべくなら基板には複数の分離井戸を設け、メモリア
レイは1つの分離井戸内に配置され、マイクロコンピユ
ータに用いられる他の回路のトランジスタは他の分離井
戸内に配置するとよい。 満足できる製造歩留りを達成するために、前記メモリア
レイは主メモリアレイと、冗長メモリアレイと、主メモ
リアレイ中のメモリ素子が故障した時に冗長メモリを使
用できるようにする手段とをなるべく有するようにす
る。 なるべくなら、前記冗長メモリアレイは、ヒユーズ素子
を介して主メモリアレイに相互接続できる冗長列メモリ
素子と冗長行メモリ素子を含ませるようにする。 なるべくなら、プロセツサと、プログラム可能なRAM
と、プロセスにより実行されるプロセスとの間でメツセ
ージのやりとりを可能にする通信チヤネルとを1枚のシ
リコンチツプに形成するようにする。 なるべくなら、プロセツサのための前記制御器は、レジ
スタ間のデータ転送と、メモリと、レジスタとを含み、
前記通信チヤネルを介してのメツセージ転送の同期を可
能にする機能セツトから選択される機能に応答するよう
に構成する。 なるべくなら、前記プロセツサは一連の命令を実行する
ように構成される。各命令は1バイト長で、同じビツト
位置フオーマツトを有し、それによりプロセツサ・レジ
スタが必要とするチツプ面積を減少する。前記各レジス
タは整数バイトであるビツト長を有する。 本発明は前記したようなマイクロコンピユータ・ネツト
ワークも提供する。マイクロコンピユータは相互に接続
されて複数の並行プロセスを実行する。 マイクロコンピユータという用語は、コンピユータがど
れ位小型にできるかということについては何らの制約も
課さないことがわかるであろう。 この明細書で説明するマイクロコンピユータはTransput
er(インモス・インターナシヨナル(Inmos Internatio
nal)plcの商標)の例であつて、このTransputerはプロ
セツサとメモリ、および外部との通信を行うためのリン
クを含む1つのシリコンチツプを備えている。このマイ
クロコンピユータは複数の処理を並行して実行できると
ともに、スケジユーリングと、同じチツプ上のプロセス
の間または異なるチツプ上のプロセスの間の通信を行う
ことができる。各マイクロコンピユータはプロセツサが
設けられているチツプと同じチツプ上に、プログラム可
能はRAMの形のKバイト・メモリを少なくとも1つ有
し、プロセツサはチツプのメモリ中のプログラムに従う
ことができる。このマイクロコンピユータは複数の通信
リンク、ここでは直列リンクと呼ぶ、を有する。この直
列リンクにより、相互に接続されているマイクロコンピ
ユータのネツトワークにマイクロコンピユータを接続し
て、任意の1台のマイクロコンピユータをネツトワーク
のためのビルデイング・ブロツクとして使用できるよう
にすることができる。任意の2台のマイクロコンピユー
タの間の通信は1本または2本の特定のピンの間の接続
を行う直列リンクにより行われる。各接続によりただ2
台のマイクロコンピユータが相互に接続される。各リン
クは他のマイクロコンピユータまたはどの外部メモリと
も共用されない。このマイクロコンピユータには、ネツ
トワーク内のマイクロコンピユータの間のデータ伝送に
おいて同期をとるための手段が設けられ、2台のマイク
ロコンピユータの間のリンクを介する通信を受信マイク
ロコンピユータまたは送信マイクロコンピユータにより
開始できるようにする。 このマイクロコンピユータは、それぞれ2つの部分より
成る複数の順次命令を有するプログラムを含む。1つの
部分は命令の機能を表し、他の部分はオペランド・レジ
スタにロードされるデータを表す。このようにして、各
命令の機能部分のビツト長は、プロセツサの語長とは無
関係に同じであり、また、プロセツサの語長とは無関係
に機能のフオーマツトと機能ビツト長の一様性が達成さ
れる。このマイクロコンピユータの別の重要な特徴は、
それの動作が簡単で効率的な機能セツトを用いて行われ
ることである。その機能セツトは最少数のオペランド・
レジスタより成る。その機能セツトは、オペランド・レ
ジスタの内容を基にしてプロセツサを動作させる直接機
能を含む。好適な構成においては、マイクロコンピユー
タは1つの間接機能と2つのプレフイクシング機能も含
む。間接機能を用いることにより、データレジスタの数
を増加させず、かつデータレジスタを大型にすることな
しに、オペレーシヨンを実行するために多数のプロセツ
サ・オペレーシヨンを使用できる。更に、プレフイクシ
ング機能を用いることにより可変長オペランドが得られ
る。 この例のマイクロコンピユータを使用することにより、
いくつかのマイクロコンピユータを相互に結合すること
によつて求められている任意のマイクロコンピユータを
形成でき、そのようにして形成されたネツトワークは任
意の1台のマイクロコンピユータと同様に動作する。 以下、図面を参照して本発明を詳しく説明する。 構造についての全体的な説明 本発明のマイクロコンピユータの主な要素が、p形井戸
相補MOS技術を用いて1枚のシリコンチツプ11の上に形
成されている様子が第1図に示されている。これについ
ては第17図を参照して後で詳しく説明する。チツプ上の
部品は第1図に長方形で示されているが、それらの長方
形は部品の相対的な寸法と位置を示すものではないこと
がわかるであろう。チツプ上には中央処理装置(CPU)1
2が設けられる。このCPU12は読出し専用メモリ(ROM)1
3を含む。CPU12はメモリ・インタフエイス14を含む。こ
のメモリ・インタフエイス14はインタフエイス制御ロジ
ツク15により制御される。CPU12は演算論理ユニツト(A
LU)と、レジスタと、データ路とを含む。これについて
は第3図を参照して説明する。CPU12とメモリ・インタ
フエイス14はバス16に接続される。このバス16はチツプ
11上の要素を相互に接続する。サービス装置17に複数の
入力ピン18が設けられる。入力ピン18には零V電源ピン
と、5V電源ピンと、マイクロコンピユータを定められた
状態にリセツトするためのリセツトピンと、クロツクピ
ン28とが含まれる。このマイクロコンピユータには十分
な数のメモリがチツプ11上に設けられる。それらのメモ
リはランダム・アクセス・メモリ(RAM)19とROM20によ
り表されている。チツプに設けるメモリの数は1Kバイト
以下であつてはならない。というのは、外部メモリを使
用することなしにプロセツサ12を動作させることができ
るのに十分なメモリ容量を必要とするからである。チツ
プ上のメモリの容量はなるべく少くとも4Kバイトにす
る。チツプ上のRAMとROMの間の区分は、マイクロコンピ
ユータに対する特定の要求に適合するように選択でき
る。このメモリは冗長領域21も含む(この冗長領域は米
国特許第4346459号明細書、米国特許出願第194613号ま
たは英国特許出願第8231055号に開示されているような
もので構成できる)。この冗長領域21は、メモリ19また
は20の欠陥のある領域の代りに用いるために、図示のよ
うにヒユーズにより選択的に接続できる列と行を有し、
それにより満足に使用されるチツプの歩留りを高くす
る。このマイクロコンピユータの動作にはピン28からの
クロツクパルスに応答するタイミング制御が含まれる。
外部メモリ・インタフエイス23が設けられる。この外部
メモリ・インタフエイス23はピン24を介して外部メモリ
(図示せず)に接続される。ネツトワークを形成するよ
うにマイクロコンピユータを他の類似のマイクロコンピ
ユータへ結合できるようにするために、複数の(図示の
例では4)直列リンク25が設けられる。各直列リンク25
は入力ピン26と出力ピン27を有する。各ピンは、別のマ
イクロコンピユータの対応する出力ピンと入力ピンに対
する単一のピン‐ピン接続を形成するために使用でき
る。各直列リンクはプロセス・スケジユーリング・ロジ
ツクを構成する同期論理ユニツト10に接続される。図に
は4つの直列リンク25が示されているが、1つのネツト
ワークを形成するために3つのリンクまたは2つのリン
クを使用できる。ただし、できれば少くとも6つ、たと
えば7つのリンクを用いるようにする。それらのリンク
は希望する任意のアレイで完全に相互接続できるように
設けられる。 チツプメモリ、通信チヤネルおよびリンクの使用につい
ての全体的な説明 第2図はマイクロコンピユータのいくつかの要素を詳し
く示すもので、とくにチツプ上におけるメモリの使用を
示すものである。このマイクロコンピユータは同じチツ
プ上で複数のプロセスを並行して実行するために使用で
き、第2図には3つの並行プロセスのオペレーシヨンが
示されている。メモリはプログラム30を格納するために
使用される。そのプログラム30はROM20またはRAM19に格
納できる。ここで説明している例では、マイクロコンピ
ユータは16ビツト語のデバイスであるが、他の語長も使
用できる。プログラム30は一連の命令で構成される。こ
こで説明している例では各命令の長さは8ビツトで、プ
ロセツサの語長が16ビツト以外のものであつても、この
命令の語長は変らない。各命令のフオーマツトは第5図
に示すようなものであつて、上位の4ビツトは命令の機
能を表し、下位4ビツトはデータを表す。プログラム30
は各命令の指定された部分に保持されるもの以外のデー
タは含まない。プロセツサが各機能に応答するやり方
と、データを取り扱うやり方は機能セツトから選択され
たある特定の機能に依存するが、各命令の機能部とデー
タ部のフオーマツトは常に同じである。メモリはデータ
31も格納する。そのデータ31はROM20またはRAM19に格納
できる。 このマイクロコンピユータはいくつかのプロセツサを時
分割式にいつしよに実行する。いつしよに実行されるプ
ロセスは並行プロセスと呼ばれる。任意の時刻にはマイ
クロコンピユータによりただ1つのプロセスが実際に実
行される。このプロセスは並行プロセスと呼ばれる。マ
イクロコンピユータにより実行される各並行プロセス
は、プロセスにより取り扱われるローカル変数と一時的
な値を保持するための作業域と呼ばれるメモリの領域を
使用する。各作業域の第1のローカル変数のアドレス作
業域ポインタ(WPTR)により示される。同様に、各並行
プロセスに対して、特定のプロセスに関連するプログラ
ム中の一連の命令からの次に実行すべき命令を指示する
ために命令ポインタ(IPTR)が用いられる。第2図にお
いて、プロセス1に対する作業域が参照番号32で示さ
れ、プロセス2,3に対する対応する作業域が参照番号33,
34で示されている。各作業域は複数のアドレス可能な語
場所より成り、実行を待つているプロセスの表上で次に
実行するプロセスの作業域ポインタ(WPTR)を格納する
ために各作業域の1つの語場所が用いられる。このよう
にして、実行すべきプロセスのための一連の作業域に対
するポインタを含むメモリ内に結合されたリストが形成
される。プロセツサがプロセス1で動作しており(第2
図参照)、しばらくの間そのプロセスの実行を停止する
ことを指令される点に達したとすると、CPU12は次のプ
ロセスたとえばプロセス2での動作を開始する。そのプ
ロセツサは、メモリ内の場所35における作業域ポインタ
を読出すことにより、前記次のプロセスへ導かれる。好
適な実施例においては、任意のプロセスのための作業域
ポインタと、結合されているリスト上の次のプロセスの
作業域ポインタのアドレスとの間に既知の関係があるか
ら、結合されているリストの次の部分は現在のプロセス
の作業域から容易に得ることができる。各プロセス作業
域に対して、別の語場所36がそのプロセスのための命令
ポインタ(IPTR)を格納する。第2図には3つのプロセ
スだけのための作業域が示されているが、並行して実行
するプロセスの数に応じて作業域の数を変えることがわ
かるであろう。 同じマイクロコンピユータにより異なるプロセスの間の
通信を行えるようにするために、メモリのRAM部19に複
数の通信チヤネル40,41,42,43が設けられる。この例で
は各通信チヤネルはメモリ内の2つの語場所より成り、
1つの語場所は通信チヤネルを使用することを希望する
プロセスを識別するために用いられ、他の1つの語場所
がチヤネルを介して通信すべきデータを保持するために
用いられる。それらのチヤネルの動作については第9a〜
9e図を参照して説明する。第2図は1つの直列リンク25
の構成も詳しく示すものである。図示のように、リンク
25は2つのチヤネル45,46を含み、各チヤネルは一方向
通信チヤネルを構成する。この場合にはチヤネル45は入
力チヤネルとして用いられ、チヤネル46は出力チヤネル
として用いられる。各チヤネルは、各チヤネル40〜43の
2語場所に類似するやり方でアドレスできる2つのレジ
スタより成る。それら2つのレジスタは、通信に含まれ
るプロセスを示すために用いられるプロセス・レジスタ
47と、送るべきデータを保持するためのデータ・レジス
タ48とより成る。入力チヤネル内のデータ・レジスタ48
はピン26に接続され、出力チヤネル内のデータ・レジス
タ48はピン27に接続される。レジスタ47,48の動作は、
同期ユニツト10に結合されている制御ロジツク50により
制御される。直列リンクと、制御ロジツク50と、同期論
理ユニツト10との動作については第12〜16図を参照して
詳しく説明する。 メモリのRAM部19は作業域32〜34および通信チヤネル40
〜43を得るために用いられ、かつ要求によりプログラム
とデータを保持するためにも使用できる。ROM20は、た
とえば高レベル・プログラミング言語のインタプリンタ
を保持するため、または標準オペレーシヨンのためのル
ツク・アツプ表の格納のような種々の目的に使用できる
とともに、マイクロコンピユータが特定の目的に用いら
れる周辺装置のための制御プログラムを保持するために
使用できる。 CPUデータ路およびレジスタ 次に、第3図を参照してCPU12と、それの動作を詳しく
説明する。 CPU12は演算論理装置(ALU)55と、3本のデータバスで
あるXバス、Yバス、Zバスに接続される複数のデータ
・レジスタとを含む。それらのレジスタの動作と、バス
との相互接続は複数のスイツチ56により制御される。そ
れらのスイツチはROM13に含まれているマイクロ命令プ
ログラムから得た信号により制御される。それらのスイ
ツチはチツプ構造と一体に形成されるスイツチであるこ
とがわかるであろう。CPUとメモリ(19,20,21)の間の
通信は、メモリ・インタフエイス14に接続されている一
方向アドレス路61と、インタフエイス14に接続されてい
る双方向データバス62とを介して行われる。レジスタ
と、バス61,62と、バスX,Y,Zは第3図に示すように接続
される。それらのレジスタは次のようなものである。 第3図に示されているように、インクリメンタ66とバイ
ト・アラナイ69も設けられる。 データバス62には、データバス線62をプレチヤージする
ように動作できるスイツチ75が設けられる。XバスとY
バスをプレチヤージするために動作できる同様なスイツ
チ76,77がそれぞれXバス、Yバスに設けられる。Xバ
スとYバス上の信号をマージさせるように動作する別の
スイツチ78がXバスとYバスの間に設けられる。 演算論理装置(ALU)55はXバスとYバスから入力を受
け、Zバスへ出力するように構成される。ALU55は、デ
ータ路の動作をALU55の出力に依存して制御するよう
に、出力8を条件マルチプレクサ9を介してマイクロ命
令プログラムROM13へ与える。 命令バツフア63は一連の8ビツト語(ここでは命令と呼
んでいる)を、メモリ(19,20,21)からインタフエイス
14とバス62を介して受けるように構成される。各8ビツ
ト語は2つの部分より成り、第5図に示すようなフオー
マツトを有する。1つの部分は後で説明する機能セツト
から選択される「機能」を表し、他の部分はデータを表
す。命令バツフア63は出力をデコーダ64へ与える。この
デコーダは命令を機能部分とデータ部分に分ける。デー
タ部分はオペランド・レジスタにロードされ、機能部分
は復号されてマイクロ命令レジスタ(MIR)80へアドレ
スを与える。選択された機能とは無関係に、全ての命令
に対して同じ手続がとられる。命令バツフア63により受
けられた各命令はMIR80にアドレスをロードする。その
アドレスはROM13内のマイクロ命令プログラムに、スイ
ツチ56とインタフエイス制御ロジツク15を制御する1つ
またはそれ以上のマイクロ命令を実行させて、マイクロ
命令の各シーケンスの終りにレジスタと、制御ロジツク
15と、その命令中の選択された機能に対応する第3図に
示されているデータ路とによりオペレーシヨンが行われ
るようにする。マイクロ命令プログラムのオペレーシヨ
ンについては後で詳しく説明する。 命令バツフタ63とマイクロ命令レジスタ80を除き、第3
図に示す全てのレジスタは16ビツト・レジスタである。
プロセツサが16ビツト語プロセツサであるこの例におい
ては、各命令が8ビツト長であるからプログラム中の各
16ビツト語場所は2つの命令を含む。したがつて、レジ
スタ67に保持されている命令ポインタは、2つの命令を
含んでいるプログラム語場所から1つの命令を識別する
ために、特定の8ビツトバイトを指すことをできること
が必要である。このような理由から、この例ではプログ
ラム30(第2図)がメモリ19の下半分だけに書き込まれ
る。この例ではメモリは64に語を有し、メモリ場所のア
ドレスを15ビツトだけで表すことができるから、プログ
ラム30は場所0〜32767に書き込まれる。そのために命
令ポインタ中の別のビツトが残り、そのビツトは、ある
特定の命令を識別するためには各語のアドレスにおける
2バイトのどれが必要であるかを識別するために使用で
きる。マイクロ命令ROM13は122語を含む。各語は68ビツ
トより成る。ROM13の各列には68ビツトが含まれ、このR
OMがいつでも68個の出力信号を生ずるように構成され
る。マイクロ命令プログラムのオペレーシヨンについて
は後で詳しく説明する。 第3図からわかるように、メモリ・インタフエイスの状
態を記録するために用いられる複数の1ビツト状態ラチ
ツがインタフエイス・ロジツク制御器15に設けられる。
実行ラツチと呼ばれるラツチ110が実行すべき命令のソ
ースを定める。ラツチ110が状態1を有する時は命令の
ソースはメモリであるしこのメモリは希望によつてはイ
ンタフエイス23を介して接続される外部メモリとするこ
とができる。ラツチ110が状態0を有する時は、命令を
外部ソースから受けることができるようにするために、
命令のソースは直列リンク25の1つである。2つまたは
それ以上の接続する命令に対しては同じ直列リンク25へ
くり返えし行くことが必要なことがあるが、メモリから
命令をとり出す場合には、各命令ごとに命令ポインタIP
TRが進められる。IBラツチ112がIBレジスタ63の状態を
記録する。MADDRラツチ113がMADDRレジスタの状態を記
録する。MEM ENABLEラツチ114がメモリ・インタフエイ
スの状態を記録し、メモリ・インタフエイス14が占めら
れている時は常に状態1を有する。メモリに対して書き
込み要求が行われたことをWRITEラツチ115が記録する。
また、バイト要求がメモリに対して行われたことをBYTE
ラツチ116が記録する。UPPER/LOWERラツチ117がバイト
・アドレスの最下位ビツトを保持する。その最下位ビツ
トは、Aレジスタの内容が1つの桁だけ右へ移動させら
れた時に、Aレジスタ71の最下位ビツト位置からロード
される。 機能セツト 命令バツフア63により受けられる命令の機能要素は、マ
イクロコンピユータのための機能セツトにより決定され
る。その機能セツトは、プログラムを書く時に選択でき
る利用可能な機能のリストであり、それらの機能に対し
てマイクロコンピユータは応答できる。 機能セツトには直接機能と、間接機能と、プレフイクシ
ング機能との3つの種類の機能がある。 直接機能は、オペランド・レジスタ65の内容をデータと
して用いる(他のレジスタの内容もデータとして使用で
きる)。 間接機能は、オペランド・レジスタ65以外のレジスタ内
のデータを用いて種々の「オペレーシヨン」のうちの1
つを選択するために、オペランド・レジスタ65の内容を
用いる。 プレフイクシング機能は、オペランドをオペランド・レ
ジスタ65に累積する。 その機能セツトは次の通りである。 間接機能を用いて行うことができるオペレーシヨンは次
の通りである。 それらの機能とオペレーシヨンについて説明する前に、
この明細書で用いる記法について述べることにする。Tr
ansputerマイクロコンピユータにはOCCAM(インモス・
インターナシヨナル(Inmos International)plcの商
標)言語をなるべく用いるようにする。このOCCAM言語
は、1983年にインモス社(Inmos Limited)により英国
において出版および配布された「OCCAMプログラミング
・マニユアル(Programming Manual-OCCAM)」と題する
小冊子と、雑誌エレクトロニクス(Electronics)1982
年11月3日号所載の「プロセス向き言語は分散処理の要
求に適当である(Process-Oriented Language Meets De
mands of Distributed Processing)」と題するテーラ
ー(Taylor)およびウイルソン(Wilson)の論文とに詳
しく記載されている。OCCAM言語は並行処理にとくに良
く適する。ここで説明している本発明の好適な実施例は
並行処理にとくに適するから、この例にOCCAM言語を用
いることは極めて適切である。他言語は適切なコンパイ
ラとともに使用できる。実際の応用においては、プログ
ラマはOCCAM言語を用いてプログラムを書き、そのプロ
グラムをコンパイラが普通のやり方で特定の命令に変換
する。しかし、ここで説明するマイクロコンピユータの
好適な実施例内で起ることを示すために、命令中の機能
とオペレーシヨンをOCCAM言語を用いて記述する余地が
ある。したがつて、それらの機能とオペレーシヨンおよ
び使用の例の記述においては下記の記法を用いることに
する。 記法 1. プロセスは開始され、いくつかの動作を実行してか
ら終る。各動作は割当、入力または出力とすることがで
きる。割当は変数の値を変え、入力はチヤネルから値を
受け、出力は値をチヤネルへ送る。 開始と終了の間の任意の時刻に、プロセスは1つまたは
それ以上のチヤネルで通信を行う用意ができるようにで
きる。各チヤネルは2つの並行プロセスの間で一方向接
続を行う。それら2つの並行プロセスの一方はチヤネル
へ出力するだけ、他方はチヤネルから入力するだけであ
る。 割当は記号「:=」で示される。割当 v:=e は変数vの値を式eの値にセツトしてから終る。たとえ
ば、x:=0はxを0にセツトすること、x:=x+1はx
の値を1だけ増加することを意味する。 入力は記号「?」で示される。入力 c?x は、チヤネル「c」からある値を入力し、それを変数x
に割当ててから終ることを意味する。入力 c?ANY は、チヤネル「c」からある値を入力し、その値を捨て
ることを意味する。 出力は記号「!」により示される。出力 c!e は式eの値をチヤネル「c」へ出力し、それから終るこ
とを意味する。出力 c!ANY は、任意の値をチヤネル「c」へ出力することを意味す
る。 プロセスSKIPは何の作用も行わずに終了する。 2. CONSTRUCT 順次construct、並列construct、条件付constructまた
はオルターネイテイブconstructを形成するためにいく
つかのプロセスを組合わせることができる。construct
自体はプロセスであつて、別のconstructの構成部とし
て使用できる。あるconstructの各構成部プロセスは、
それがそのconstructの部分であることを示すために、
左マージンから更に2つの空白をとつて書かれる。 順次constructは次のようにして書かれる。 構成部プロセスP1,P2,P3…は互いに順次実行される。各
構成部プロセスは1つが終つてから次が開始され、最後
の構成部プロセスが終つからconstructは終る。たとえ
ば、 SEQ in?x x:=x+1 cut!x は、ある値を入力し、その値に1を加え、その結果を出
力する、ことを意味する。 並列constructは により表される。構成部プロセスP1,P2,P3…はいつしよ
に実行されるから、並行プロセスと呼ばれる。全ての構
成部プロセスが終つた後でconstructは終了する。たと
えば、 PAR in?x out!y はxへの入力と、yからa出力をいつしよに行えるよう
にするものである。 並行プロセスはチヤネルを用いて通信する。チヤネル
「c」からの入力と、同じチヤネル「c」への出力がい
つしよに実行されると、入力と出力を行える状態になつ
た時に通信が行われる。値は出力プロセスから入力並行
プロセスへ割当てられ、それから両方の並行プロセスの
実行が継続される。 は、条件1が真であるならばプロセスP1が実行され、さ
もなければ、条件2が真であればプロセスP2が実行され
る…等であることを意味する。このconstructにおいて
はただ1つのプロセスが実行され、実行後にconstruct
は終る。たとえば、 IF x>=0 y:=y+1 x<0 SKIP では、xの値が正である時だけyが大きくなる。オルタ
ネーテイブconstruct は、入力1,2…のうちの1つの準備が整うまで待つこと
を意味する。入力1が最初に準備が整つたとすると入力
1が実行され、それからプロセスP1が実行される。同様
に、入力2が最初に準備が整うと入力2が実行され、そ
れからプロセスP2が実行される。すなわち、ただ1つの
入力が実行され、その後で対応するプロセスが実行さ
れ、それからconstructが終る。たとえば、 では、いずれもチヤネル「count」から信号を入力し、
可変「counter」を1だけ増加し、あるいはチヤネル「t
otal」から交互に入力し、可変「counter」の現在の値
を出力し、それを零リセツトする。 3. くり返えし(REPETITION) WHILE条件 P これは、条件の値が偽となるまでプロセスPをくり返え
し実行する。たとえば、 WHILEx>5 x:=x−5 は、xの値が5以下になるまでxを5ずつ減少すること
である。 4. VARIABLES variableは記憶装置内の1つの語に対応する簡単な変
化、またはベクトルと呼ばれるvariableの番号をつけら
れたセツトの1つである。たとえば、v〔3〕:=0は
ベクトルv内の3番のvariableの値を0にセツトし、v
〔0〕+1は0番のvariableの値を1だけ増加する。 variableは VARv: P のような宣言により導入される。これはプロセスPにお
いて使用するためにvを導入する。 5. 手続(PROCEDURES) 手続の定義によりプロセスに名称を与えることができ
る。たとえば、 PROC square(n,sqr) sqr:=n*n は手続き「squre」を定義する。 手続の名称はプロセスのための略語として使用できる。
たとえば、 square(x,sqrx) は sqrx:=x*x を意味する。 6. EXPRESSIONS expressionはオペレータ、変数、数、真理値の真と偽お
よび括弧(と)から構成される。 真は1ビツトよりのみ成る値であり、偽は0ビツトのみ
より成る値である。 オペレータ+,−,*/は加算、減算、乗算、除算を表
す。 オペレータ=,<>,>,<=に対しては結果は下記の
ようになる。 x=y xがyに等しいと真である x<>y xがyに等しくなれば真である x>7 xがyより大きければ真である x<=y xが7より小さいか、yに等しければ真で
ある の場合には、結果の各ビツトは下の表に従つてオペラン
ドの対応するビツトから発生される。 NOTオペレータの場合には、結果の各ピツトは、下の表
に従つてオペランドの対応するビツトから発生される。 x NOTx 0 1 1 0 オペレータ≪,≫の場合には x≪yは左へyビツト動かされるxの値で、空いたビツ
ト位置は0ビツトで埋められる x≫yは左へyビツト動かされるxの値で、空いたビツ
ト位置は0ビツトで埋められる 以上説明した一般的なOCCAM言語表記を本発明のマイク
ロコンピユータに適用することにする。 レジスタの変数は次のように定義される。 IPTRは命令ポインタ・レジスタ67の内容を表す WPTRは作業域ポインタ・レジスタ73の内容を表す LPTRはリスト・ポインタ・レジスタ74の内容を表す AREGはAレジスタ71の内容を表す BREGはBレジスタ72の内容を表す OREGはオペランド・レジスタ65の内容を表す 1つのレジスタから他のレジスタへの転送はassignmen
t,eg: BREG:=AREG により表される。これは、Aレジスタの内容がBレジス
タへ複写され、Bレジスタの以前の内容に置き換えられ
る。 TRANSPUTER内のメモリは vector: memory により表される。 メモリ内の個々の語は ベクトルeg: memorx〔AREG〕 を下側に記す(subscripting)することにより識別され
る。これは、Aレジスタの内容をアドレスとするメモリ
内の語の内容を意味する。メモリとレジスタの間の転送
は assignment eg: memory〔AREG〕:=WPTR により同様に表される。これは、Aレジスタの内容をア
ドレスとするメモリ内の語の内容が、作業域・ポインタ
・レジスタの内容で置き換えられることを意味する。 3つの手続き(PROC)「run」,「wait」,「moveto」
が以下の記述中にしばしば現われる。それらは次のよう
にして定義される。すなわち、リンク〔process〕は直
列リンク25のプロセス・レジスタ47の内容を表し、NIL
はどのプロセスの作業ポインタではない特殊な値を表
す。READYは直列リンクにより使用される別の特殊な値
を表す。 上記の手続においては、以下に行う説明の参考のために
行番号をつけてある。 機能とオペレーシヨンの定義 それらの定義について、前記した記法を用いて以下に述
べることにする。 作業域からのロード 定義:SEQ BREG:=AREG AREG:=memory〔WPTR+OREG〕 目的:現在のプロセス作業域内の場所の値をロードする
こと。 作業域への格納 定義:SEQ memory〔WPTR+OREG〕:=AREG AREG:=BREG 目的:現在のプロセス作業域内の場所に値を格納するこ
と。 作業域へのポインタのロード 定義:SEQ BREG:=AREG AREG:=WPTR+OREG 目的:現在のプロセス作業域内の場所へポインタをロー
ドすること。 現在のプロセス作業域内の場所のベクトル(vector)の
第1の場所にポインタをロードすること。 作業域からのロードおよびインクリメント 定義:SEQ BREG:=AREG AREG:=memory〔WPTR+OREG〕 memory〔WPTR+OREG〕:=AREG+1 目的:現在のプロセス作業域内の場所の値をロードし、
その場所をインクリメントすること。 ループ・カウンタとして作業域場所の使用を容易にし、
零へ向つて増加させること。 語またはバイトのvectorへポインタを増加させる時に作
業域場所の使用を容易にすること。 ベクトルからのロード 定義:AREG:=memory〔AREG+OREG〕 目的:外部作業域から値をロードすること。値のベクト
ルから値をロードすること。 値をポインタとして用いて(間接的に、この場合にはOR
EG=0)値をロードすること。 ベクトルへの格納 定義:SEQ memory〔BREG+OREG〕:=AREG AREG:=BREG 目的:外部の作業域内の場所に値を格納すること。 値のベクトルに値を格納すること。値をポインタとして
用いて(間接的に、この場合にはOREG=0)の値を格納
すること。 リテラルのロード 定義:SEQ BREG:=AREG AREG:=OREG 目的:値を格納すること。 リテラル加算 定義:AREG:=AREG+OREG 目的:値を加算すること。 外部作業域内の場所にポインタをロードすること。 値のベクトル内の場所にポインタをロードすること。 飛越し 定義:IPTR:=IPTR+OREG 目的:制御を前方または後方へ転送し、ループを形成
し、ループから出、プログラムの条件付加部分の後で継
続すること。 非零の飛越し 目的:非零値がロードされた時だけ制御を前方または後
方へ転送し、プログラムの部分を条件付で実行し、条件
付ループを出ること。 値と値のセツトとの比較を容易にすること。 ポインタのコードへのロード 定義:SEQ BREG:=AREG AREG:=IPTR+OREG 目的:命令のアドレスをAレジスタにロードして、プロ
グラムの部分を形成するデータのベクトルのサドレスを
ロードすること。 手続呼出し 定義:SEQ memory〔WPTR-1〕:=IPTR IPTR:=AREG AREG:=WPTR moveto(WPTR+OREG) 目的:効率が良い手続呼出し機構を得ること。 同じプロセツサで2つの同じ手続が実行される場合に、
コードの共用を容易にすること。 間接機能 オペレート(operate) 定義:operate(OREG) 目的:求められているオペレーシヨンを定義するコード
としてオペランド・レジスタ(OREG)の内容を用いてオ
ペレーシヨンを実行すること。 プレフイクシング機能 プレフイツクス(prefix) 定義:OREG:=OREG≪4 目的:0〜15の範囲いない命令オペランドを1つまたはそ
れ以上のプレフイツクス命令を用いて表すことができる
ようにすること。 否定プレフイツクス(negatire prefix) 定義:OREG:=(NOT OREG)≪4 目的:零またはそれ以上のプレフイツクス命令が続く1
つの否定プレフイツクス命令を用いて否定オペランドを
表すことができるようにすること。 オペレーシヨン(operations) reverse 定義:SEQ OREG:=AREG AREG:=BREG BREG:=OREG 目的:AレジスタとBレジスタの内容を交換すること。 非対称的なオペレータのオペランドを反転させること、
この場合にはこれはコンパイラでは都合良く行うことは
できない。 零に等しくする(equal to zero) 目的:Aが非零値を保持しているかどうかを判定するこ
と。 論理(ビツトに関してでなく)否定を実行すること。 A=0 as eqz A<>0 as eqz,eqz if A=0… as jnz if A<>0… as eqz,jnz を実行すること。 より大きい(greater) 目的:AとBを比較し(それらを2つの相補整数として処
理して)、BがAより大きいと1(真)をロードし、そ
れ以外は0(偽)をロードすること。 オペランドを反転することによりB<Aを実現するこ
と。 オペランドと(gt,eqz)を反転することによりB<=A
as(gt,eqz)とB>=Aを実現すること。 論理積(and) 目的:AとBのビツトについてのAND操作の結果をロード
し、AとBにおける対応するビツトが1にセツトされる
ならば各ビツトを1にセツトし、それ以外では0にセツ
トすること。 2つの真値を論理的にAND操作すること。 論理和(or) 目的:AとBのビツトについてのOR操作の結果をロード
し、AとBの対応するビツトのいずれかがセツトされる
ならば各ビツトを1にセツトし、それ以外は0にセツト
すること。 2つの真の値を論理的にOR操作すること。 排他的or(exclusive or) 定義:AREG:=BREG><AREG 目的:AとBのビツトについての排他的OR操作の結果をロ
ードし、AとBの対応するビツトが異なる時は各ビツト
を1にセツトし、それ以外は0にセツトすること。 ビツトについての not as(ldl−1,xor) を実行すること。 加算(add) 定義:AREG:=BREG+AREG 目 的:BとAの和をロードすること。 ベクトル内の語またはバイトのアドレスを計算するこ
と。 減算(subtract) 定義:AREG:=BREG−AREG 目的:BからAを減じ、結果をロードすること。 A=B as sub,eqz A<>B as sub,eqz,eqz if A=B as sub,jnz,… if A<>B as sub,eqz,jnz,… を実行すること。 プロセス実行(run process) 定義:SEQ memory[AREG-1]:=BREG run(AREG) 目的:プロセスをアクテイブ・プロセス・リストの終り
に加えること。 休止(pause) 定義:SEQ run(WPTR) wait( ) 目的:現在のプロセスの実行を一時的に休止すること。 現在アクテイブ・プロセス・リスト上にあるプロセスの
間でプロセツサ時間を共用すること。 結合(join) 目的:並列プロセスを結合する; 2つの語が用いられる。1つはカウンタであり、他の1
つは作業域へのポインタである。カウントが零に達する
と、作業域が変えられる。 同期(synchronize) 目的:2つのプロセスを同期させ、チヤネルを用いて通信
させること。 復帰(return) 定義:SEQ moveto(AREG) IPTR:=memory[WPTR−1] AREG:=BREG 目的:呼出された手続から復帰させること。 バイト回転(rotate bytes) 定義:AREG:=(AREG≪8)/AREG≫(bitsperword−
8)) 目的:8ビツト・バイト値を組合せて1つの語の値を形成
できるようにするためにAレジスタ内のバイトを回転さ
せること。 語の値をいくつかのコンポーネント8ビツト値に分割で
きるようにすること。 右桁送り(shift right) 定義:AREG:=AREG≫1 目的:Aレジスタの内容を右へ1桁だけ桁送りすること。 左桁送り(shift letf) 定義:AREG:=AREG≪1 目的:Aレジスタの内容を左へ1桁だけ桁送りすること。 上記の機能セツトは直接機能と、間接機能と、プレフイ
クシング機能とを含むことがわかるであろう。任意の命
令の開始時には、その命令に対して選択された機能とは
無関係に、命令バツフア63内の命令の機能部分を受ける
所定のビツト位置セツトが入力をデコーダ64へ与えるあ
めに用いられ、各命令のデータ部分を表す他の所定のビ
ツト位置が、オペランド・レジスタ65の下位4ビツト位
置をロードするために用いられる。その機能が直接機能
であるとすると、オペランド・レジスタ65の内容に対し
て選択された機能に従つてプロセツサは作動する。その
機能が間接機能であれば、実行すべきオペレーシヨンの
性質を決定するためにオペランド・レジスタ65の内容が
用いられ、他のレジスタに保持されているデータについ
てオペレーシヨンが行われる。機能が直接または間接で
あるような任意の命令が終ると、オペランド・レジスタ
65は零にクリアされる。その機能がプレフイクス機能で
あれば、プロセツサはオペランド・レジスタ65中に存在
するデータを高い桁の位置へ転送し、その後で、そのた
めに空いた下位桁の位置にその命令のデータ部分をロー
ドする。 各命令の始めに命令ポインタは増加させられる。したが
つて、命令ポインタは次に実行すべき命令を常に指す。 オペランド・レジスタは種々の目的のために用いられ
る。オペランド・レジスタ65が各命令で受ける「デー
タ」は計算用のリテラル値のこともあれば、間接機能の
場合には求められている機能の定義のこともある。別の
重要な用途は、ある特定の変数の値を見出す場所、また
は格納する場所のアドレスを探すために、ある機能に対
して、オペランド・レジスタ65内のデータ値が作業域・
ポインタ・レジスタ73内のデータに組合わされることで
ある。たとえば、作業域・ポインタ・レジスタ73は現在
のプロセスの作業域ポインタWPTRを含む。これはその作
業域のための基準メモリ・アドレスを指す。変数または
その他のポインタは定義され、作業域ポインタWPTRによ
り指し示されたアドレスから既知量だけずれているその
作業域のアドレス場所に格納される。そのずれは一般に
命令部分により指定され、オペランド・レジスタ65内に
格納される。実際に、作業域命令からのロードと格納
は、WPTRレジスタ73の内容とオペランド・レジスタ65の
内容の組合せ(たとえば加え合せ)により定められるメ
モリ場所を暗黙のうちに指す。更に、ベクトルをアクセ
スするため、またはプログラムにおいて分岐するため
に、オペランド・レジスタ65の内容はAレジスタ71また
はIPTRレジスタ67のような他のレジスタの内容に組合わ
される。これの例は後で説明する。 オペレーシヨンの効率を最高にするために、最も一般的
に求められる動作をカバーするように直接機能が選択さ
れることがわかるであろう。各命令の機能要素を表すた
めに4ビツトを用いることにより、機能セツトはコード
0〜15を用いる。もつとも、コード12には機能は割当て
られていない。コード13は間接機能を示すために用いら
れる。その間接機能は、この場合には、命令の下位4ビ
ツトを通常のやり方でオペランド・レジスタ65にロード
させる「オペレート」機能であるが、そのオペランド・
レジスタの内容は、他のレジスタに保持されているデー
タについてのオペレーシヨンを決定するためにプロセツ
サによりそれから用いられる。このようにして、8ビツ
ト命令の一様性を保ちつつ、オペレーシヨンの数を増加
できることがわかるであろう。「オペレート」命令の前
にプレフイクス機能または負プレフイクス機能を用いる
ことにより、オペランド・レジスタ65の内容を変えて、
先に説明したものよりもはるかにオペレーシヨン選択を
行うことができる。pfixとnfixの使用については第8図
を参照して詳しく説明するが、マイクロ命令プログラム
13のオペレーシヨンを更に説明することがまず必要であ
る。 マイクロ命令プログラムというのは、マイクロコンピユ
ータのプログラムから命令バツフア63に到達する各遂次
命令の求められている「機能」を実行するために、スイ
ツチ56(第3図)とインタフエイス制御ロジツク15を制
御する制御信号を発生する手段である。マイクロ命令プ
ログラムはROM13の列と行に格納されているマイクロ命
令のリストより成る。ROM13はマイクロ語と呼ばれる出
力を生ずる。その出力は64ビツトより成り、各ビツトは
制御信号を構成する。その出力は複数のフイールドに分
割され、各フイールドは所定のビツト位置群より成る。
ある任意の時刻における出力は、選択されたマイクロ命
令に応じて選択されたビツト位置に与えられる。各フイ
ールドはある特定の制御領域に関連させることができ
る。たとえば、1つのフイールドがどのレジスタがXバ
スに接続されるかを制御し、別のフイールドがどのレジ
スタがYバスに接続されるかを制御し、他のフイールド
がどのレジスタがZバスに接続されるかを制御し、更に
別のフイールドがALU55の動作を制御し、更に別のフイ
ールドがマルチプレクサ9とMIR80への帰還信号を制御
する。1つのフイールドがインタフエイス制御ロジツク
15を制御し、「読み出し」、「書き込み」、「求められ
た次の命令(NEXT)」のようなマイクロ命令出力信号を
与えて、マイクロ命令がインタフエイス14を介してのレ
ジスタとメモリ19の間の通信を制御できるようにする。 ROM13内で選択される特定のマイクロ命令はMIR80内のア
ドレスに依存する。MIR80はROM13内で列と行の選択を行
う7ビツト・レジスタである。命令バツフア63により受
けられた各命令の始めに「機能」がデコーダ64により復
号され、条件マルチプレクサ9を通されて、ROM13内の
マイクロ命令の選択のためのアドレスを与える。機能を
実行するためにある機能はただ1つのマイクロ命令を要
することがある。その場合には、ROM13はデコーダ64に
より復号されるアドレスに応じてマイクロ語出力を与
え、その機能はROM13の1動作サイクル(ここではマイ
ナー・サイクルと呼ぶことにする)内に終了させられ
る。他の機能は一連のマイクロ命令、したがつて一連の
マイナー・サイクルを要する。この場合には、その機能
のために必要な最初のマイクロ命令をROM13が選択する
ためのアドレスをデコーダ64がMIR80へ与える。その後
で、マイクロプログラムは一連のマイクロ命令の実行
(各実行には1マイナー・サイクルかかる)を続け、各
マイクロ命令は、一連のマイクロ命令中の次に実行する
マイクロ命令のアドレスを識別するように、それの出力
マイクロ語のフイールド中にMIR80のための7ビツトを
与える。次のマイクロ命令が前のマイナー・サイクルに
より発生される条件の結果として選択されるように、MI
R80の下位2ビツトを条件付でセツトして、マルチプレ
クサ9を介して帰還させ、MIR80内のアドレスを行わせ
ることができる。これにより、たとえば第3図に示され
ている種々のレジスタ内の値に依存して、4つの可能な
オプシヨンから次のマイクロ命令を選択できるようにす
る。MIR80の2つの条件付ビツトが条件付でセツトされ
ないものとすると、MIR80内のアドレスにより示される
次のマイクロ命令が無条件で実行される。命令バツフア
63内の命令のオペレーシヨンを行うために全てのマイク
ロ命令が実行されると、ROM13のマイクロ語出力のフイ
ールド内に制御信号「NEXT」が発生され、それによりメ
モリ19から命令バツフア63への次の命令を要求する。 各マイナー・サイクルはソース相と宛先相の2つの相よ
り成る。ROM13から発生された制御信号は、ソース相の
間だけアクテイブである群と、宛先相の間だけアクテイ
ブである群と、マイナー・サイクル全体にわたつてアク
テイブである群との3つの群に分けられる。制御信号の
発生と持続時間を制御するために、第6図に示されてい
る4種類のストローブ信号を発生するようにタイミング
制御器が構成される。それらのストローブ信号はソース
・ストローブ信号150と、宛先ストローブ信号151と、行
プレチヤージ・ストローブ信号152と、マイクロ命令ス
トローブ信号153である。ソース・ストローブ信号は、
レジスタがそれの内容をバス上に置けるようにするタイ
ミング信号であつて、それの持続時間は演算論理装置が
結果を形成するのに十分なほど長い。宛先ストローブ信
号はレジスタがデータをバスから受けることができるよ
うに構成される。マイクロ命令ストローブ信号は条件マ
ルチプレクサ9から次のマイクロ命令のアドレスを発生
するために用いられる。行プレチヤージ・ストローブ信
号は、次のソース・ストローブ信号のための準備が整う
高レベル状態へバス線XとYをプレチヤージするために
用いられる。それらのストローブ信号の相対的なタイミ
ングと持続時間が第6図に示されている。それらのスト
ローブ信号は第7図に示す装置により発生される。ピン
28(第1図)からのクロツクパルスが各マイナー・サイ
クルの開始のためのGO信号を発生する。この信号はCPU1
2内の4つの連続する遅延器を通され、第1の遅延器154
の出力端子からマイクロ命令ストローブ信号153がとり
出され、第2の遅延器155の出力端子から宛先ストロー
ブ信号151がとり出され、第3の遅延器156の出力端子か
ら行プレチヤージ・ストローブ信号152がとり出され、
第4の遅延器157の出力端子からソース・ストローブ信
号150がとり出される。したがつて、プロセツサの動作
は外部クロツク入力28に同期させられる。 可変長オペランドの使用 先に説明したように、このマイクロコンピユータは可変
長オペランドで動作できる。各命令は4ビツト場所をオ
ペランドに割当てるが、前記機能セツト内のコード14,1
5に対応する機能セツトpfixとnfixを使用することによ
り、16ビツトまでのオペランドをオペランド・レジスタ
65内で形成することが可能である。この動作は第8図を
参照することにより最も良く理解できる。第8図はそれ
ぞれ4ビツトの4つの部分を有するオペランド・レジス
タ65を示すものである。演算論理装置55が位が高くなる
4ビツトに対応する4つの部分を有するのが示されてお
り、0レジスタ65と演算論理装置55の間の接続が、Yバ
スを通る演算論理装置への伝送を選択的に制御するゲー
ト90を介して制御される。YバスとZバスが4つの部分
に分離されている様子が示されている。各部分は位の異
なるデータの4つのビツトを取り扱う。たとえば、Y
〔3:0〕は下位の4数字を取り扱うYバスの部分を表
し、Y〔15:12〕は上位の4数字を取り扱い、Zバスの
場合にも同様に処理される。オペランド・レジスタ65の
下位4ビツト以外の各部分にはZバスからゲート91を介
して供給でき、あるいはゲート92から零を供給できる。
下位4ビツトが0レジスタ65の下位4ビツト位置へ送ら
れるように第8図の命令バツフア63からの命令は分割さ
れ、第3図を参照して説明したようにマイクロ命令プロ
グラム13内のアドレスを選択するために機能要素が用い
られる。第8図の真理値表は、機能がpfixまたはnfixに
対応し、またはいずれにも対応しない3つの可能性を示
すものである。その真理値表には、ROM13のマイクロ語
出力から線100〜104へ与えられる対応する制御信号と、
それらの信号の持続時間も示されている。 この場合に用いられるマイクロ語出力制御信号は次の通
りである。 1. OPD NOT 0:これは、真理値表が「1」を有する時に
はオペランド・レジスタ65には零が供給されないが、真
理値表が「0」を有する時はレジスタ65に零が供給され
ることを意味する。 2. NEXT:これは、真理値表が「1」を有する時はオペ
ランド・レジスタ65に次のオペランドが命令バツフア63
からロードされるが、真理値表が「0」を有する時はオ
ペランド・レジスタ65には次のオペランドが命令バツフ
ア63からロードされないことを意味する。 3. Y FROM OPD:これは、真理値表が「1」を有する時
はYバスがオペランドをオペランド・レジスタ63から受
けるが、真理値表が「0」を有する時はそうではないこ
とを意味する。 4. Z FROM Y:これは、真理値表が「1」を有する時はA
LU55からのZバス出力がYバスからデータを受けるが、
真理値表が「0」を有する時はそうではないことを意味
する。 5. Z FROM NOT Y:これは、真理値表が「1」を有する
時はALU55がYバス上の信号を挿入して、Zバスを通す
が、真理値表が「0」を有する時はそうではないことを
意味する。 各マイナー・サイクルにおけるそれら5つの制御信号の
持続時間は第8図に示されている。第8図において、S
はソース相だけにおける持続時間を示し、Dは宛先相だ
けにおける持続時間を示し、S+Dは両方の相における
持続時間を示す。 線100上のマイクロ語制御信号はゲート91と92を動作さ
せて、Zバスが機能pfixとnfixに応答してオペランド・
レジスタ65にロードしないようにし、他のどの機能もオ
ペランド・レジスタ65の上位3つの段をゲート92を介し
ての入力により零にさせる。全ての命令信号は最後のマ
イナー・サイクルで制御信号NEXTを発生する。その信号
は線101へ与えられてオペランド・レジスタ65に次のオ
ペランドをロードさせる。線102は信号「Y FROM OPD」
を受け、pfixとnfixに対してオペランド・レジスタをゲ
ート90を介して接続させる。線103は制御信号「Z FROM
Y」を受け、pfixの場合にはALU55にYバス上の信号をZ
バスへ送らせるが、nfixに対してはそうさせない。線10
4は制御信号「Z FROM Y」を受け、nfixの場合にはYバ
ス上の信号を反転してからALU55を通つてZバスへ供給
できるようにするが、pfixの場合にはそうさせない。線
100,線103,104上の信号は各マイナー・サイクルのソー
ス相と宛先相の全体を通じて存在するが、線101上の信
号は宛先相の時だけ存在し、線102上の信号はソース相
の時だけ存在する。機能がpfixの時は、真条件に対応す
る信号が線100,101,102,103に供給され、このようにし
てオペランド・レジスタ65の下位部分のオペランドの4
ビツトがALUを通じてオペランド・レジスタ65の次に高
い位の段へ進ませられ、それによりオペランドの別の4
ビツトをオペランド・レジスタ65の下位位置にロードで
きるようにする。この動作は、オペランドの最高16ビツ
トまで、命令がpfix機能でとり出されるたびに反復され
る。同様に、機能がnfixであれば、プロセスは全体とし
て類似して、各命令の後に零が書き込まれることなし
に、オペランドの引き続く各4ビツトをオペランド・レ
ジスタの高位の段へ移動させるようにする。これにより
負のオペランドを最大16ビツトまで形成できる。機能が
pfixとnfixのいずれでもないと、線100上の制御信号が
零を、その命令の終りに、オペランド・レジスタ65の3
つ上位の段(ビツト15〜4を表す)へ与えさせることを
この真理値表は示す。 プロセスのスケジユーリング 先に述べたように、このマイクロコンピユータはいくつ
かの並行プロセスを行うことができる。したがつて、こ
のマイクロコンピユータはある特定の時刻にどのプロセ
スを実行すべきかを決定する計画のシステムを与える。
ある時刻にWPTRレジスタ73(第3図)は現在実行されて
いるプロセスの作業域ポインタを保持する。しかし、現
在のプロセスの作業域と、実行されるのを待つている別
のプロセスの作業域とはリストを形成し、そのリストに
おいては各作業域の1つの場所がリスト上のプロセスの
作業域ポインタを保持する。各プロセス作業域内の別の
場所が、そのプロセスの次に実行すべき命令を識別する
命令ポインタを保持する。更に、LPTRレジスタ74が現在
実行を待つている最後のプロセスのための作業域のアド
レスを含む。このようにして新しいプロセスをそのリス
トの終りにつけ加えることができ、LPTRレジスタ74はそ
のリストの現在の終りを常に指示する。プロセツサはリ
スト上のプロセスを遂次実行するのが普通で、現在のプ
ロセスが「休止」オペレーシヨン(オペレーシヨン・リ
ストのコード9)を実行する時、または現在のプロセス
が「結合」オペレーシヨン(オペレーシヨン・リストの
コード10)を実行することにより自身でスケジユールを
破つた時、または同期オペレーシヨン(オペレーシヨン
・リストのコード11)の時に、次のプロセスへ進むだけ
である。それらの状況のいずれにおいても、現在のプロ
セスはそれ以上の命令の実行を止めて、プロセツサは、
第2図の36で示されているように、プロセス作業域に命
令ポインタIPTRを留保して、第2図に35として示されて
いる次のプロセスのアドレスにより識別されている次の
プロセスの動き、それから新しいプロセスのためのIPTR
をIPTRレジスタ67にロードする。少くとも1つのプロセ
ス実行が常に存在するように、零プロセスが設けられ、
他のプロセスがアクテイブでない時はその零プロセスが
実行される。 先に定義した手続「実行(run)」、「待機(wai
t)」、「へ移動(moveto)」はスケジユーリングにお
いて使用される。あるプロセスはそれが現在のプロセス
である時、または実行されることを待つているプロセス
の結合されたリスト上にある時に、そのプロセスは「ス
ケジユールされる」。あるプロセスが結合されているリ
ストから外された時に「スケジユールから外される」こ
とになる。スケジユールから外されたプロセスは、他の
プロセスまたは命令がその外されたプロセスをスケジユ
ールに含ませる、すなわち、結合されたリストの末尾に
それを加えるまでは、決して実行されることはない。LP
TRレジスタ74(第3図)はリスト上の最後のプロセスの
ための作業域ポインタを格納するために用いられること
を思い出すであろう。したがつて、プロセスが結合され
たリストに付加されるたびにLPTRレジスタ74を調整せね
ばならない。また、あるプロセスをスケジユールに含め
る場合には、そのプロセスの次にどの命令を実行すべき
かをCPU12は決定できなければならない。これは適切は
命令ポインタIPTRをメモリに格納することにより行われ
る。プロセスが実行中はそのIPTRはIPTRレジスタ76内に
ある。その格納はたとえばメモリ場所36(第2図)で行
われる。 それらの手段の説明においては、作業域32と33とレジス
タ65,67,71,73,74を示す第4図を参照すると便利であ
る。第4図は代表的なメモリ・アドレスと、作業域の内
容を示すものである。 作業域32を有するプロセスは、それの作業域ポインタWP
TRをレジスタ73に挿入することにより現在のプロセスに
される。この場合にはWPTRは10000に等しい。プロセス
が現在のプロセスになると、プロセツサはWPTR-1を調べ
ることにより、すなわち、メモリ場所9999における内容
を調べて、ある命令に対するポインタ84を見つけ、それ
をIPTRレジスタ67にロードすることにより、次に実行す
る命令を見つける。これが現在のプロセスであるが、プ
ロセツサは次の命令を指すためにIPTRレジスタ67の内容
を使用する。 処理中は、プロセツサは、WPTRすなわちAレジスタ71の
内容のような基準値と、レジスタ65に置かれているオペ
ランドを組合わせることにより形成されるアドレスを有
する変数を使用する。作業域オペレーシヨンからのロー
ドにおいては、「2」のオペランドがメモリ場所10002
にあるものを何でも対象とし、作業域32に対応するプロ
セスが現在行われる。処理を停止する時は、結合されて
いるリストが調べられる。要素85,86は結合されている
リストの部分である。次の作業域を指すメモリ場所9998
におけるWPTR85を見つけるために、プロセツサはWPTR-2
を調べる。ポインタ85は作業域33を指す数11000を含
む。作業域33に対応するプロセスが結合されているリス
ト上の最後のプロセスであるとすると、LPTRレジスタ74
がポインタ11000を含む。結合されているリストにある
プロセスが付加されるまではポインタ86はメモリ場所10
998に格納されない。 ここで3つの手続について説明することにする。PROC r
un(w)がwにより定められるプロセスをスケジユール
にするため、すなわち、そのプロセスを結合されている
リストに加えるために用いられる。この手続は先に定義
したものであるが、ここでその定義と、その定義に用い
た線番号を参照することにする。 wの値が特殊な値「READY」であるとすると、何の動作
も実行されない。これについてのそれ以上の説明は種々
のマイクロコンピユータの間の通信について後で行うこ
とにする。それ以外はwはプロセス作業域に対するポイ
ンタであつて、線5,6が遂次実行される。線5において
は、LPTRはLPTRレジスタ74の内容を意味する。それは、
結合されているリスト上の最後のプロセスのための作業
域に対する基準アドレスに対するポインタである。アド
レスがLPTR-2であるメモリは次のプロセスのための作業
域ポインタのアドレスを含むが、LPTRが最後のプロセス
に対応するからまだ何もない。いまは線5がw(プロセ
スwにおける作業域ポインタ)をメモリ場所LPTR-2に割
当てるから、いまはプロセスwは結合されているリスト
の終りにある。この点ではLPTRレジスタ74の内容は最後
のプロセスwを指さず、最後から2番目のプロセスを指
す。これは、プロセスwのための作業域ポインタをLPTR
レジスタ74に入れる線6において修正される。このステ
ツプのために、プロセスwを意図しないのに削除するこ
となしに、結合されているリストに別のプロセスを付加
できる。そのような削除は、LPTRレジスタ74が更新され
ない時に起る。第4図を参照して、ただ2つの処理され
ているプロセスがあり、かつポインタが12000である作
業域にプロセスwが対応するものとすると、PROC run
(w)が12000をメモリの〔10998〕に入れ、12000をレ
ジスタ74に入れる。 「待機(wait)」と呼ばれる手続は単独で、またはPROC
run(w)と組合せて、使用できる。それ自身でその手
続は現在のプロセスをスケジユールから外し、システム
が次のプロセスを実行できるようにし、それのプログラ
ムの最初の命令における代りにそのプログラム中の適切
な所でそのプロセスを実行する。ここで、PROC waitに
ついて先に行つた定義を参照することにする。PROC「wa
it」が呼出されると(線1)、4つのステツプ(線3,4,
8,9)を有するシーケンスが開始される(線2)。線4
〜7は外部からの要求に関するものであり、これについ
ての説明を延ばすことができる。もつとも、リンク(プ
ロセス)は直列リンク25(第2図)のプロセス・レジス
タ47の内容を表す。線3においては、メモリ〔WPTR-1〕
はアドレスWPTR-1におけるメモリ・スペースである。そ
のアドレスは現在のプロセスの基準アドレスWPTRを基に
している。ここで説明している実施例においては、その
メモリ場所は、プロセスが推奨された時に次に実行され
る命令を指すために用いられる。IPTRレジスタ67の内容
は、現在のプロセスの次に実行する命令を常に指す。し
たがつて、線3は次に実行する命令に対するポインタを
メモリ(なるべくなら同じチツプ上の)に単に格納する
だけである。手続PROC run(w)がPROC waitに先行す
るものとすると、この時には、現在のプロセス(w)は
結合されているリストの終りに付け加えられており(PR
OC run(w)1により)、LPTRレジスタ74は更新されて
おり(やはりPROC run(w)により)、いまはプロセス
wのための次の命令に対するポインタは、プロセスwの
ための作業域ポインタのアドレス(WPTR)に関して既知
の場所、メモリ〔WPTR-1〕に格納されている。したがつ
て、プロセスwはいまは実行されなくなるための準備が
整う。線8は次のプロセスのための結合されているリス
トを調べる。それの作業域は現在の作業域のアドレスWP
TR-2における内容により指される。したがつて、線8は
結合されているリスト上の次のプロセスのための作業域
ポインタをWPTRレジスタ73に割当てる。今は基準アドレ
スが進み、装置はメモリのアドレスWPTR-1に格納されて
いるポインタを調べることにより、このプロセスのため
の次の命令であるかを探す。第4図を用いるために、作
業域32が現在行われており、それのプロセスがPROC wai
tを含む命令を受けることについて考察する。最初はWPT
Rは10000である。線8において、線73はメモリ・アドレ
ス9998において見出される内容にセツトされる。それは
ポインタ11000である。線9においては、レジスタ67は
メモリ・アドレス10999において見出される命令ポイン
タでセツトされる。したがつて、PROC run(w)の後に
PROC waitが続くものとすると、現在のプロセスがリス
トの終りに付け加えられるものとすると(それの作業域
ポインタが結合されているリストに格納される)、それ
の次の命令に対するポインタはメモリに格納され、それ
は活動を停止させられ、結合されているリスト上の次の
プロセスが適切な命令の始めに開始される。これらの動
作の全てはたつた4つのレジスタを用いて行われる。こ
のように構成することにより、システム中のメモリの量
によつてのみ数が制限されるプロセスのスケジユーリン
グとデスケジユーリングを行えるようにされる。 「moveto」と名づけられた手続は、新しいIPTRへ必ずし
も変更することなしに、作業域基準ポインタを現在のプ
ロセスのための作業域における異なるアドレスにセツト
するために使用できる。したがつて、あるプロセスがそ
れの基準作業域ポインタを10000に有しているものとす
ると、この同じプロセスのために基準ポインタを(1020
0)に変えるためにmoveto(10200)を用いてレジスタを
セツトできる。これはPROC moveto(w)の前記した定
義を参照して次のように説明される。 定義の2行目はこれが一連のステツプであることを宣言
している。3行目と8行目は左マージンから等しくずら
されているから、それらはともに遂次実行される。シス
テムが最後のプロセスでないと仮定する。そうすると、
行2は偽であるからシステムは行6へ飛び越す。行6に
おける条件は真であるから行7が実行される。行7はメ
モリ・アドレスw-2における内容を、結合されているリ
スト上の次のプロセスのための作業域ポインタにセツト
する。次に、行8がWPTRレジスタ73の内容を値wに変え
る。今レジスタ73は現在のプロセスのための新しい基準
アドレスを指す。この新しい基準アドレスからの慣例と
なつているずれ(マイナス2)が、次にスケジユールさ
れるプロセスのための作業域に対するポインタを見出
す。次のプロセスがない場合には、行2が真で、LPTRレ
ジスタ74の内容が、最後のプロセスのための基準アドレ
スとしてwを指すために調整され、その後で現在のプロ
セスの基準アドレスへのポインタを保持するためのレジ
スタ73がwを指すように調整される。 以上、スケジユーリングについて第4図を説明したが、
いくつかの機能とオペレーシヨンについて第4図を参照
して更に説明する。 作業域からのロード 作業域からのロードはある特定のメモリ場所における内
容を複写し、それを暗黙のうちにAレジスタ内に置く。
この機能と、好適な実施例の構成は、基準となる現在の
作業域ポインタからのオフセツトにより定められるアド
レスを有するメモリも暗黙のうちに参照する。この基準
アドレスはWPTRレジスタ73に常に格納され、オペランド
・レジスタ65にオフセツトが含まれる。したがつて、式
“memory〔WPTR+OREG〕”は、WPTRレジスタ73とレジス
タ65との内容を加え合わせることにより見出されるアド
レスを有するメモリの内容を指す。“load"はAレジス
タ71を指し、スタツクの内容が1つのレジスタにより下
方へ移動させられる、すなわち、Aレジスタの内容がB
レジスタへ移動させられ(データをAREGにロードさせる
ための余地を作る)、BREGの内容がCレジスタ(もしあ
れば)ヘロードされる。第4図を参照して、WPTRが1000
0であるとすると、コード02を用いて“load from works
pace"は変数2をAレジスタにロードすることを意味す
る。 この“store to workspace"命令は、Aレジスタ71に含
まれているのは何であつても、オペランド・レジスタ65
に含まれているオフセツトにより(WPTRレジスタ73に含
まれている)基準アドレスからずらされるアドレスを有
するメモリ領域に動かすことを暗黙のうちに意味するも
のである。また、スタツクは上方へも動く(たとえば、
BREGの内容がAREGへ動き、CREGの内容がBREGへ動く)。
再び第4図を参照して、WPTR=10000およびOREG=1で
あるとすると、この機能は、Aレジスタ71の内容をメモ
リ場所10001に格納することを意味する。それは変数1
である。 作業域内へのポインタのロード 機能“load pointer into workspace"はどのデータも作
業域に格納しない。その代りに、この機能は作業域内の
ある特定の場所へのポインタをAレジスタ71にロードす
る。これは、たとえば、作業域に格納できるベクトルの
ある特定の部分を指す“load from vector"命令に関連
して使用される。したがつて、第4図を参照して、作業
域32は10000である作業域ポインタWPTRにより参照され
る。作業域内の既知の場所においてはベクトルが存在し
得る。そのベクトルは10200,10201,10202のような複数
の場所を有する。このベクトルの初めは作業域ポインタ
(10000)からのある特定のオフセツト(200)である。
したがつて、ベクトルの初めを見出すためには、オフセ
ツト(200)がオペランド・レジスタ65にロードされ、
それから命令“load pointer into workspace"がアドレ
ス10200をAレジスタ内に置く。それはそのベクトルの
初めを指す。その後で、ベクトルの初めに関して特定の
メモリ場所を見出すために“load from vector"オペレ
ーシヨンが用いられ、したがつて、作業域ポインタ・レ
ジスタ73の代りにAレジスタ71に組合わされたオペラン
ド・レジスタ65内のオフセツトをそれは用いる。 リテラル・ロード(load literal) “load literal"命令はオペランド・レジスタ65内にあ
るものはどんなものでもAレジスタ71(評価スタツクの
1番上)にそのままロードする。第5図を参照して、与
えられた任意の命令の最後の4ビツトがオペランド・レ
ジスタ65にロードされるが、プレフイクシング機能を用
いることにより、4ビツト以上をオペランド・レジスタ
に格納できる。しかし、たとえば、10進表記で6 13のコ
ードを有する命令は、数13をAレジスタ71にロードし、
Aレジスタの以前の内容をBレジスタ72へ桁送りするこ
とを意味する。 飛越し(jump) “jump"機能はプログラム中で分岐するために用いられ
る。現在のプロセスでプロセツサにより次に実行される
命令は、命令ポインタを含んでいるIPTRレジスタ67の内
容により指示される。飛越し命令はオペランド・レジス
タ65の内容を命令ポインタに加え合わせる。プレフイク
シング機能を用いることにより、命令ポインタはそれに
加え合わされた値、またはそれから減じられた値を有す
ることができて、プログラム中で前方または後方へ飛越
すことができる。 手続呼出し(call procedure) “call procedure"機能は前記した“moveto"手続を用い
る。“call procedure"は次に実行する命令のための通
例のメモリ場所(たとえば、第4図のメモリ場所9999)
にIPTRを最初に格納する。次に、その機能は、“call p
rocedure"機能が終了させられた後で次に実行すべき命
令に対するポインタがロードされているAレジスタ71の
内容を、命令ポインタ・レジスタ67へ転送する。 それから、Aレジスタ71に作業域ポインタがロードされ
る。これに続いて、“moveto"手続が基準ポインタWPTR
を変更して、その基準ポインタWPTRが現在の作業域内の
異なるアドレスを指すようにする。“moveto( )”手
続はWPTRレジスタ73の内容を、movetoに続く括弧の中の
内容にセツトするものである。したがつて、“call pro
cedure(呼出し手続)”の後では現在のプロセスのため
の同じ作業域内の異なる場所を指す作業域ポインタをシ
ステムは有することになり、Aレジスタ71に前から含ま
れていた異なる命令をシステムが実行する準備がされた
ことになる。 RETURNオペレーシヨンの使用により逆のオペレーシヨン
が行われる。 プロセス実行(run process) このオペレーシヨン“run process"は自身の作業域と1
組の命令を有するプロセスの構成において一般に使用さ
れる。Aレジスタ71には新しいプロセスのための作業域
用の作業域ポインタがロードされ、Bレジスタには新し
いプロセスのための適当な命令ポインタがロードされて
いる。オペレーシヨン“run process"は作業域ポインタ
から適切にオフセツトされたメモリ内の場所に命令ポイ
ンタを格納し、それから括弧内の作業域ポインタを用い
て前記手続PROC run( )を呼出す。先に説明したよう
に、これは新しいプロセスのスケジユールを作成する。
すなわち、結合されているリストに新しいプロセスを付
加する。 休止(pause) “休止”オペレーシヨンは、1つのプロセスが他のプロ
セスを除外してALU55を使用することを阻止するために
プログラム中に現れる。このオペレーシヨンはコンパイ
ラによりループ中に挿入される。このオペレーシヨン
は、現在のプロセスを結合されているリストの終りに付
加し、必要なポインタを格納し、現在のプロセスに実行
をしばらく休止させ、結合されているリスト上の次のプ
ロセスを現在のプロセスにする。評価スタツクの内容を
プロセスを損うことなしに捨てることができる時に“pa
use"が実行されるから、評価スタツクの内容は保留され
ない。 結合(join) この“join"オペレーシヨンは、たとえば並行プロセス
が存在する時に用いられ、それらの並行プロセスの全て
が同時刻にプログラム中にある点にあるべきであること
を意図するものである。元のプロセスP(0)について
考えることにする。プログラム中にある点においてその
プロセスP(0)は並行副プロセスP(1),P(2),P
(3)…P(n)に拡がる。それらが実行されると、最
後のプロセスP(n+1)を実行する。しかし、P
(1),P(2)…P(n)の全てが終るまではその最後
のプロセスは起らない。 “join"オペレーシヨンはこのために用いられるもので
ある。カウンタが作業域内で設定され、Aレジスタ71が
カウントの格納されるメモリに向けられる。カウントは
依然としてアクテイブである(終つていない)副プロセ
スの数に対応する。各副プロセスは“join"オペレーシ
ヨンとともに終る。ある副プロセスがそれの“join"オ
ペレーシヨンに到達した後で、その副プロセスはカウン
トを調べる。カウントが零であると、プログラムは“mo
veto"手続を用いて最後のプログラムへ動く。カウント
が零でなければ、カウントは1だけ減少させられ、それ
から先に述べたようにして副プロセスは“wait"させら
れる。他の副プロセスは零カウントに達するまで実行さ
れる。 同期(synchronise) “synchronise"オペレーシヨンは並行処理にとつて非常
に重要である。というのは、その“synchronise"オペレ
ーシヨンを使用することにより2つのプロセスをある時
刻に同じ点に置くことができるからである。これについ
ては「同じマイクロコンピユータ上のプロセス間の通
信」の項において第9図を参照して説明することにす
る。簡単に説明すれば、同じチツプ上の2つのプロセス
XとYが、たとえば一方のプロセスが必要とするデータ
を他方のプロセスが計算しているために、通信を希望し
たとすると、チヤネル40,41,42または43(第2図)が用
いられる。各プロセスは“synchronise"オペレーシヨン
を有する。 “synchronise"オペレーシヨンに到達する最初のプロセ
スはチヤネルを調べる。チヤネルのアドレスはAレジス
タ71にロードされているから、“memory〔AREG〕”がそ
のチヤネルのことを言及する。表現式“NIL"は零として
認められる所定の基準のことを指す。第1のプロセスに
よりチヤネルの初めの部分にNILが見出されたとする
と、そのプロセスはそれの作業域ポインタをチヤネルの
第1の部分に置き、それからそれ自身でスケジユールか
ら外れる。それでそのプロセスはプロセスYがそれの
“sync"オペレーシヨンに到達するのを待つ。プロセス
Yが“sync"オペレーシヨンに到達すると、プロセスY
は同じチヤネルの第1の部分を調べる。そうすると、NI
Lは見つからないが、その代りにある作業域ポインタを
見つける。それに応答してプロスセYはプロセスXをス
ケジユールする(結合されているリストの終りにそれを
加え合わせる)。チヤネルの第1の部分はNILに戻る。
一般に、1つのプロセスから他のプロセスへ転送するた
めのデータが置かれる少くとも第2の部分がチヤネルに
存在する。また、同期オペレーシヨンは一般に対となつ
て起る。2つのプロセスにおける第1の“sync"オレレ
ーシヨンはプロセスにデータを待機させ、それから準備
が整つた時にそのデータを転送させる。第2の“sync"
命令は確認応答を行わせる。したがつて、プロセスから
データを入力しているプロセスは“sync"する。データ
がレデイ状態になつていないとすると、そのデータは
“待機”する。供給プロセスによりデータがレデイ状態
にされると、その供給プロセスは受けるプロセスをスケ
ジユールし、それから受けるプロセスはデータをとる。
それから各プロセスによる“sync"命令が転送の確認応
答をする。データを供給するプロセスによる最初の“sy
nc"は、データをとる準備が整つていることを示す。 同じマイクロコンピユータにおけるプロセス間の通信 先に説明したように、このマイクロコンピユータは同じ
マイクロコンピユータにおけるプロセス間、または異な
るマイクロコンピユータにおけるプロセス間の通信を可
能にする。たとえば、1つのプロセスは自動車の走行距
離の測定、第2のプロセスはその自動車の走行距離に対
する燃料消費量の測定ということがある。第1のプロセ
スは入力として自動車の車輪の回転を表すデータを受
け、走行距離を表す出力を発生する。第2のプロセスは
燃料消費量に関連するデータを入力として受けるが、走
行距離に対する燃料消費量についての有用な出力を発生
できるようになるためには、走行距離についての情報を
得るために第1のプロセスと交信することも必要であ
る。同じマイクロコンピユータにおける通信を処理する
プロセスの場合には、ここで説明している例では第2図
に示されているチヤネル40〜43を通じて通信が行われ
る。このオペレーシヨンには同期オペレーシヨンの使用
が含まれる。その同期オペレーシヨンには、機能とオペ
レーシヨンの前記した表からの機能コード13とオペレー
シヨン・コード11より成るプログラム命令を要する。各
チヤネル40〜43はメモリ内の2つの連続する語場所より
成る。1つの語場所は「プロセス場所」を与え、第2の
語場所は「データ場所」を与える。チヤネルは一方向通
信チヤネルであつて、ある1つの時刻には2つの、そし
てただ2つのプロセスにより共用される。あるアクテイ
ブ・プロセスxが同じマイクロコンピユータ上のプロセ
スyと通信することを望んだとすると、第9図a〜eを
参照して後で説明するシーケンスが行われる。第1に、
プロセスxはチヤネル(40)のアドレスを識別し、通信
しようと思うデータをそのチヤネルのデータにロードす
る。また、プロセスxは同期オペレーシヨンのための命
令の実行も行う。プロセス場所がデータを受けることを
待つているプロセスyの作業域ポインタを有していない
とすると、同期オペレーシヨンはプロセスxのWPTRをプ
ロセス場所に記録させ、プロセスxをスケジユールから
外すために“wait"手続を使用する。これは第9図bに
示されている位置である。今は、プロセスxはプロセス
yがデータを受ける準備が整うまで待つ。プロセスyが
データを受けることを希望すると、プロセスyは同期オ
ペレーシヨンのための命令を実行して、通信チヤネル40
がデータを送る準備が整つているかどうかを調べる。こ
の命令の実行に際して、プロセスyはプロセスxの作業
域ポインタをチヤネル40のプロセス場所に置き、オペレ
ーシヨンのリストにおいて述べた同期オペレーシヨンか
らわかるように、同期オペレーシヨンの実行により“ru
n"手続がプロセスxの作業域ポインタをチヤネル40から
除去させ、実行を待つているプロセスのリストの終りに
プロセスxを付け加える。これは第9図cにおける位置
である。それからプロセスyはチヤネル40のデータ場所
からデータを読出し、それから同期オペレーシヨンのた
めの別の命令を動作させて、それがデータを受けたこと
を指示する。このためにプロセスyの作業域ポインタが
チヤネル40のプロセス場所にロードされ、プロセスyを
待機させる。このためにプロセスyがスケジユールから
外され、チヤネル40を第9図dに示す状態に放置する。
プロセスxがその上で待機しているリストがプロセスx
に到達して、プロセスxが再びアクテイブ状態にされる
と、いまプロセスyの作業域ポインタをチヤネル40のプ
ロセス場所に置く同期オペレーシヨンのための別の命令
をプロセスxが実行し、そのためにプロセスxの動作を
継続できることになる。それと同時に、プロセスyがプ
ロセスの待機リストの終りに再び付け加えられて、実行
の準備が整うように、xプロセスはプロセスyに“run"
手続を行わせる。そうすると通信チヤネル40は第9図e
に示す状態となり、プロセスxは継続され、プロセスy
はリスト上で待機している。このようにして、“handsh
ake"オペレーシヨンを行つている両方のプロセスにより
通信が同期される。“handshake"オペレーシヨンにおい
ては、両方のプロセスがオペレーシヨンを同期させるた
めに2つの命令を実行する。それら2つの命令のうちの
一方はプロセスをスケジユールから外し、スケジユール
から外されない方の通信プロセスから適切な信号が受信
された時に、スケジユールから外された方のプロセスだ
けがリストへ戻される。 次に、第10図を参照して、同じマイクロコンピユータ上
で2つの通信プロセスを実行するために必要なプログラ
ムと命令シーケンスの特殊な例について説明することに
する。これは自動車の走行距離と燃料消費量を測定する
ための、先に述べた2つの例を示すものである。マイク
ロコンピユータ170はそれのメモリ域に、変数“rotatio
ns"をカウントする第1のプロセスのための第1の作業
域171と、変数“miles"をカウントする第2のプロセス
のための第2の作業域172とを有する。作業域171は語場
所173を有し、この語場所には“rotation"と呼ばれる入
力チヤネル174のアドレスが含まれる。その入力チヤネ
ルは、外部の回転検出器(図示せず)から各車輪回転数
についてのメツセージを受けるように構成されている直
列リンクの一部を構成する。作業域171は別の語場所175
も有する。この語場所175にはチヤネル“mile"と呼ばれ
る2語メモリ・チヤネル176のアドレスが含まれる。こ
の場合には、このメモリ・チヤネル176は、車輪の1000
回転ごとに1mileの走行を示す作業域171のプロセスから
の出力を受ける。 この第1のプロセスに対するOCCAM言語を用いるプログ
ラムは次の通りである。 行番号はこのプログラムの構成部分ではないが、説明を
容易にするためにつけた。1行目は存在する変数を宣言
する。その変数は“rotations"と呼ばれる。2行目は、
条件TRUEが常に真であるから、終りの無いループであ
る。零回転からスタートする(4行目)。7行目では
“rotation"という名前のチヤネルからの入力を待つ。
1が受けられると、変数“rotations"が1だけ増加させ
られる。最後には1000回転となるから、5行目は偽とな
る。そうすると6、7、8行目はスキツプされ、9行目
で“mile"という名のチヤネルへ1つのデータが出力さ
れる。 それらのOCCAM文がコンパイラにより下記のような機械
命令に変換される。 この機械命令の表においても行番号は説明の便宜上つけ
たものである。1、4、21行はプログラム中における単
なる参考場所である。2行目において値0をAレジスタ
71にロードする。3行目でAレジスタ内のデータを作業
域に格納する。命令データ部分は0であるから、このプ
ロセスのための基準アドレスからのオフセツトはない。
いたがつて、作業域ポインタ・レジスタ73はいまは作業
域ポインタWPTRを含む。この作業域ポインタはメモリ内
の、変数“rotations"のために0が格納されている基準
アドレスを指す。5行目で作業域からAレジスタ71にロ
ードする。命令のデータ部分(その命令はオペランド・
レジスタ65にロードされる)は0であるから、作業領域
の基準アドレスWPTRからのオフセツトは0である。6、
7、8行目において10進値1000を加える。命令のデータ
部における4つの2進ビツトを用いて10進数の1000を表
すことはできないから、10進数1000を加えるためにはプ
レフイクシング・オペレーシヨンを必要とする。そこで
機能コード14(pfix)が用いられる。10進法1000は2進
法では1111101000で表される。これには10ビツトを必要
とするが、標準命令のデータ部は4ビツトであるから、
この値をオペランド・レジスタにロードするためには3
つのステツプを必要とする。8行目は“load literal"
機能のためのコードを含むから、この時には、Aレジス
タ71には1000の2進値が含まれる。これによりAレジス
タの内容(0である)がBレジスタ72へ転送させられ
る。 9行目では間接機能、すなわちオペレーシヨン“greate
r than"が呼出される。これによりレジスタAとBの内
容が比較される。Bレジスタの内容がAレジスタの内容
より大きくなければ、このオペレーシヨンはFALSE
(0)となる。 10行目は“jump nonzero"オペレーシヨンである。9行
目のオペレーシヨンの結果が真であるとすると、Aレジ
スタの内容が非零値にセツトされ、10行目から9行だけ
前へ飛越しが行われる。これはコードのデータ部におけ
る数字9で示されている。これによりプログラムは21行
目まで前へ飛越す。21行目は出力部である。1000回転が
まだカウントされていないと仮定すると、次に11行目が
実行される。11行目では、作業域機能からのロードは+
1のオペランドを有する。このことは、基準アドレスか
らのオフセツトが+1であることを意味する。このメモ
リ・アドレスにおいてチヤネル“rotation"のアドレス
が見出され、このアドレスは作業域からAレジスタ71に
ロードされる。12行目では同期オペレーシヨンが行われ
る。13行目ではチヤネル“rotation"のアドレスが再び
ロードされ、14行目では再び同期が行われて入力オペレ
ーシヨンが終了される。この簡単な例においてはデータ
は転送されない。15行目では作業域にある変数、オフセ
ツト0、がAレジスタにロードされる。すなわち、“ro
tations"の現在の値がAレジスタへロードされる。16行
目においては、データ値1がAレジスタの内容へそのま
ま加え合わされる。17行目では、Aレジスタの内容が0
に等しいオフセツトで作業域内に格納される。したがつ
て、チヤネル“rotation"からのデータの受けとりに応
じて変数“rotations"が増加させられたことになる。18
行目は休止オペレーシヨンであつて、次のプロセスを実
行させ、この現在のプロセスをリストの末尾に加える。
このプログラムのこの点においてはAレジスタ71とBレ
ジスタ72の内容はプロセスには関連していないことに注
意されたい。19行目と20行目においては負のプレフイツ
クス機能を用いて後方への飛越しが実行される。22行目
においては、基準場所から2場所だけオフセツトされて
いる作業域の内容がロードされる。これはチヤネル“mi
le"のアドレスであつて、それはAレジスタへロードさ
れる。23行目においては同期オペレーシヨンが行われ
る。25行目で行われる別の“sync"オペレーシヨンによ
り出力が完了させられる。26行目において別の休止が挿
入されて、次のプロセスをスケジユールに加え、このプ
ロセスを結合されているリストの末尾に加える。27行目
と28行目においては負のプレフイクシングを用いて後方
への飛越しが行われる。変数“miles"に関する第2のプ
ロセスは作業域172を使用する。この作業域172は“mil
e"チヤネル176を含む語場所177を有する。“mile"チヤ
ネル176は作業域172のプロセスへ入力を与えるために用
いられる。別の語場所178が第2の入力のアドレスを有
する。この第2の入力は、この場合には、約3.9(1
ガロン)の燃料が消費されるたびに外部の燃料計からの
メツセージを受けるように構成された直列リンクの部分
を形成する、“fuel"チヤネルと呼ばれるチヤネル179で
ある。作業域172は別の語場所180も有する。この語場所
180は、燃料の最後の約3.9(1ガロン)が消費される
間に走行した距離を出力するように構成された直列リン
クの部分を形成する“consumption"チヤネルと呼ばれる
出力チヤネル181のアドレスを有する。明らかに、走行
距離数を示すメツセージをチヤネル176を介して得るた
めには、作業域172内におけるプロセスは作業域171にお
けるプロセスと通信する必要がある。作業域172におけ
るプロセスのための命令シーケンスとプログラムは次の
通りである。 異なるマイクロコンピユータ上のプロセス間の通信 相互に接続されたマイクロコンピユータのネツトワーク
が第11図に示されている。第11図には4台のマイクロコ
ンピユータが示されている。このネツトワークは要求に
応じて二次元または三次元に拡張できことがわかるであ
ろう。各マイクロコンピユータの構造は類似しており、
2本の一方向ワイヤ185,186により別のマイクロコンピ
ユータの直列リンクに相互に接続される。各ワイヤ185,
186は1台のマイクロコンピユータの出力ピン27と、他
の1台のマイクロコンピユータの入力ピン26の間に接続
される。ワイヤ185,186はそれら2本のピンとピンの間
の接続だけに使用されるのであつて、他のマイクロコン
ピユータまたはメモリとの接続に共用されるものではな
い。種々のマイクロコンピユータの間の通信は、同一の
同期オペレーシヨン・シーケンスを用いて全体として類
似のやり方で行われる。これについては第2、11、12、
13図を参照して説明する。チヤネル40(第2図)の代り
に、直列リンクは入力チヤネル45と出力チヤネル46を有
する。各チヤネルはプロセス・レジスタ47とデータ・レ
ジスタ48より成る。それらのレジスタはメモリ・チヤネ
ル40〜43のための語場所と同じやり方でアドレスでき
る。しかし、それらのレジスタは制御ロジツク50により
動作させられる。この制御ロジツクについては第15、16
図を参照して説明することにする。 2台のマイクロコンピユータの間の直列リンクを通じて
データが送られる時は、そのデータは第13a、13b図に示
されているようなパケツトの形で直列に送られる一連の
データ列の形をとる。データパケツトは第13a図に示す
ような形を有し、出力ピン27により入力ピン26へ送られ
る。データパケツトは値が1である2つの連続するビツ
トで始まり、その後に16個のデータ・ビツトが続き、値
が0のストツプ・ビツトで終る。第13b図に示されてい
る確認応答パケツトが、データパケツトを受けるマイク
ロコンピユータの出力ピン27から、データパケツトを送
るマイクロコンピユータの入力ピン26へ送られる。確認
応答パケツトは値が0のタート・ビツトと、その後に続
く値が0のストツプ・ビツトより成る。各直列リンクの
出力制御ロジツクは、各出力ピン27がデータパケツトま
たは確認応答パケツトを送らない時に値が0のビツトを
連続して送るように出力ピン27を構成するから、入力ピ
ン26がパケツトの1スタート・ビツトを受けるまでは入
力制御ロジツクは入力ピン26上の全ての信号を無視す
る。 入力チヤネルまたは出力チヤネルのプロセス・レジスタ
がプロセスの作業域ポインタを保持している時は、CPU1
2がプロセスの作業域ポインタを実行を待つているリス
トに加え合わせることによりそのプロセスをスケジユー
ルするように、制御ロジツク50は要求(入力要求または
出力要求と呼ばれる)を発生してCPU12へ与えることが
できる。同期ロジツク10は、直列リンクからの各要求信
号を調べるためにCPU12により使用されるセレクタを発
生する。“wait"手続の実行によりアクテイブ・プロセ
スがスケジユールから外された時は、直列リンクからの
要求があるかどうかをCPU12は調べる。もしいくつかの
外部要求があれば、CPU12はリスト上の次のプロセスを
実行する前に、それらの要求の全てを順次サービスす
る。その要求を発生したチヤネルのプロセス・レジスタ
に保持されているプロセスをスケジユーリングすること
によりCPU12は要求をサービスし、プロセス・レジスタ4
7を零にリセツトする。リンク25内の入力チヤネルまた
は出力チヤネルのプロセス・レジスタ47は、そのチヤネ
ルが通信を実行する用意ができた時に、特殊な値READY
を含む。同期オペレーシヨンは手続“run"を行わせる。
その手続“run"により特殊な値READYを検出し、あるプ
ロセスをスケジユーリングする代りに、リンク内の制御
ロジツク50の動作を停止させる。リンク内の制御ロジツ
クはチヤネル上で同期オペレーシヨンを実行できる。そ
の同期オペレーシヨンはチヤネルのプロセス場所をテス
トする。値が零であるとすると、それはその値を特殊な
値READYで置き換え、プロセス・レジスタ上のプロセス
によりひき起される同期オペレーシヨンがその値を零に
リセツトするまで待つ。そうでなければ、前記したよう
にプロセス・レジスタ内のプロセスをスケジユールする
ためにそれはCPU12のための要求を発生し、それからCPU
12はプロセス・レジスタの値を零にリセツトする。その
結果、別のプロセスに同期させるために同期オペレーシ
ヨンが用いられるのと同じやり方で、プロセスは制御ロ
ジツク50に同期させるために同期オペレーシヨンを使用
できる。 リンク25内の出力制御ロジツク50は、出力チヤネル内の
プロセス・レジスタを用いてプロセスとの同期をまずと
り、それから出力チヤネル内のデータ・レジスタからの
データパケツト中のデータを出力ピン27(第2、11図)
を通じて送り、入力ピン26上で確認応答パケツト信号を
待ち、それから出力チヤネル内のプロセス・レジスタを
再び用いてプロセスに同期させる。出力制御ロジツクは
このオペレーシヨンをくり返えし実行する。リンク内の
入力制御ロジツクは入力ピン26からのデータが入力チヤ
ネル内のデータ・レジスタに到達することをまず待ち、
それから入力チヤネル内のプロセス・レジスタを用いて
プロセスに同期させ、次に入力チヤネル内のプロセス・
レジスタを用いてプロセスに再び同期させ、それから確
認応答パケツト信号を出力ピン27へ送る。入力制御ロジ
ツクはこのオペレーシヨンをくり返えし実行する。 以下の説明においては、第11図に示されているマイクロ
コンピユータ1により動作させられるプロセスxがデー
タを直列リンクを介して、マイクロコンピユータ2によ
り動作させられるプロセスyへ出力することを望んでい
ると仮定する。この出力を行うために、プロセスxは出
力すべきデータを出力チヤネルのデータ・レジスタ187
に格納し、プロセス・レジスタ188で同期オペレーシヨ
ンを実行して、ピン27を介してのデータの伝送を直列リ
ンクに開始させる。それからプロセスは同じプロセス・
レジスタ188について別の同期オペレーシヨンを実行し
て、マイクロコンピユータ1の入力ピン26を介して確認
応答パケツトが受けられるまで待つ。確認応答パケツト
は、マイクロコンピユータ2により動作させられるプロ
セスyがデータを入力したことを意味する。入力するた
めに、プロセツサyはマイクロコンピユータ2の入力チ
ヤネルのプロセス・レジスタ189について同期オペレー
シヨンの実行して、データ・パケツトがマイクロコンピ
ユータ2のピン26から到達することを待つ。それからプ
ロセスyはデータ・レジスタ190からデータをとり、別
の同期オペレーシヨンを実行して、マイクロコンピユー
タ2の出力ピン27から確認応答信号を送信させる。 第12図は、プロスセxとyが直列リンクを介して通信す
る時に起る典型的なオペレーシヨン・シーケンス中にお
けるプロセス・レジスタ188,189の内容を順次示すもの
である。参照番号188a〜188e,189a〜189eはそれぞれプ
ロセス・レジスタ188,189の内容の引き続状態を表すも
のである。最初に、プロセスxはマイクロコンピユータ
1の出力チヤネルをアドレスし、出力すべきデータをデ
ータ・レジスタ187にロードし、出力プロセス・レジス
タ188について同期オペレーシヨンを行う。直列リンク
が出力を発する用意が整つていることを示す特殊な値RE
ADY188aをプロセス・レジスタ188が含んでいると仮定す
ると、同期オペレーシヨンによりプロセス・レジスタ18
8の値が零(NIL)188bにリセツトさせる。その結果、制
御ロジツクはデータ・レジスタ187からのデータを、1
本のワイヤ接続185を介してマイクロコンピユータ2の
入力データ・レジスタ190へ送らせる。プロセスyが入
力をまだ待つていないとすると、マイクロコンピユータ
2内の制御ロジツクがプロセス・レジスタ189の値をNIL
189aからREADY189bへ変えて、データが受けられること
を示す。次に、プロセスyがプロセス・レジスタ189に
ついて同期オペレーシヨンを行う。そうするとプロセス
・レジスタ189の値がREAD189bからNIL189cに変えられ
る。マイクロコンピユータ2が確認応答信号をマイクロ
コンピユータ1へ送り用意が整つていると仮定すると、
制御ロジツクはプロセス・レジスタ189の値をREADY189d
へ戻す。それからプロセスyは入力チヤネルのデータ・
レジスタ190からデータをとり、プロセス・レジスタ189
について別の同期オペレーシヨンを実行する。そうする
とプロセス・レジスタ189がNIL189eにリセツトされる。
その結果、制御ロジツクは確認応答信号を1つのワイヤ
接続186を介して送る。この確認応答信号は、プロセス
xを動作させるマイクロコンピユータ1の入力ピン26に
より受けられる。確認応答信号を受ける前にプロセスx
が第2の同期オペレーシヨンを実行すると仮定すると、
プロセスxは手続“wait"によりスケジユールから外さ
れ、それの作業域ポインタがプロセス・レジスタ188(1
88c)に格納される。確認応答パケツトが受けられる
と、直列リンクの制御ロジツクが、プロセスxをスケジ
ユールすることをマイクロコンピユータ1のCPUに求め
る要求を発生し、プロセス・レジスタをリセツトする。
この要求は、現在のプロセスがスケジユールから外され
るとマイクロコンピユータ1のCPUにより直ちにサービ
スされ、CPUはプロセスxをリストの末尾に加えて、プ
ロセス・レジスタをNIL(188d)にリセツトする。そう
すると制御ロジツクはプロセス・レジスタをREADY(188
e)にリセツトすることにより、リンクが更に出力する
用意が整つたことを示す。そのために直列リンクは、第
12図のシーケンスに示されているように、通信が行われ
る前と同様になつて、次の通信を行う用意を整える。 第14図は、第11図を参照して先に説明したプロセスの2
つのマイクロコンピユータについての動作を示す。しか
し、この場合には、回転数を数えるための作業域171が
マイクロコンピユータ191にあり、距離をカウントする
ための作業域172は別のマイクロコンピユータ192にあ
る。それらのマイクロコンピユータ191,192はそれぞれ
の直列リンク25により相互に接続される。チヤネル“mi
le"176aがマイクロコンピユータの191の直列リンクの出
力チヤネルを形成し、チヤネル“mile"176bがマイクロ
コンピユータ192の直列リンクの入力チヤネルを形成す
る。第14図において2つのプロセスを動作させるために
使用される命令シーケンスとプログラムは、各プロセス
により使用されるチヤネル“mile"のアドレスが、メモ
リ内のチヤネルではなくて直列リンクのチヤネルのアド
レスであることを除き、第10図を参照して説明したもの
に全体として類似する。 リンク制御ロジツクについての説明 次に、第15、16図を参照して、直列リンクの入力チヤネ
ルと出力チヤネル用の制御ロジツク50(第2図)につい
て詳しく説明する。第15図は出力チヤネル46用の制御ロ
ジツクを示し、第16図は入力チヤネル45用の制御ロジツ
クを示す。 出力するために、リンクの制御ロジツク50(第2図)が
出力プロセス・レジスタ47を用いてプロセスにまず同期
してから、出力データ・レジスタ48からのデータをピン
27へ送り、それからピン26からの確認応答信号を待ち、
次に出力プロセス・レジスタ47を再び用いてプロセスに
同期する。制御ロジツク50はこのオペレーシヨンをくり
返えし行う。 入力するために、リンクの制御ロジツク50(第2図)
は、入力ピン26からデータが到達することをまず待ち、
そのデータを入力データ・レジスタ48へ送り、それから
入力プロセス・レジスタ47(第16図)を用いてプロセス
と同期し、次に入力プロセス・レジスタを用いてプロセ
スと再び同期し、その後で確認応答信号をピン27へ送
る。制御ロジツク50はこのオペレーシヨンをくり返えし
行う。 出力と入力のプロセス・レジスタ47によりとられる値
は、プロセスも制御ロジツクも同期を待つていないこと
を示すNILと、制御ロジツクが同期を待つていることを
示すREADYのことがあり、あるいは同期を待つているプ
ロセスの作業域ポインタとすることもできる。 リンクにおいては、各プロセス・レジスタ47と各データ
・レジスタ46がアドレス・デコーダ193を介してバス16
へ接続される。バス16はアドレス・データおよび制御の
ための信号線を含む。制御には“write"信号と、“rea
d"信号と、“busy"信号とを含む。“busy"信号はCPUと
リンク制御ロジツクが、プロセス・レジスタの値を同時
に変えようとしないようにするために用いられる。 リンク内の各プロセス・レジスタ7は、プロセス・レジ
スタ内の値がREADY,NILまたは作業域ポインタのいずれ
であるかを調べるためのロジツク194を含む。 出力データ・レジスタ48(第15図)はアンドゲート195
とオアゲート196を介して出力ピン27に接続される。入
力データ・レジスタ48(第16図)が入力ピン26に直結さ
れる。 リンク内の各プロセス・レジスタには要求ラツチ197が
組合わされる。CPUがWAIT手続を実行する時は、全ての
要求ラツチの状態が常にテストされる。ある要求ラチツ
がセツトされたとすると、対応するプロセス・レジスタ
に保持されている作業域ポインタを有するプロセスが、
それの作業域ポインタをリストの末尾に加えることによ
りスケジルユールされる。CPUがプロセス・レジスタに
書き込む時には要求ラツチは常にクリアされる。 このリンクを介して行われるデータの入力と出力は4状
態マシン282,283,284,285により制御される。各状態マ
シンは現在の状態を保持するための状態レジスタと、プ
ログラム可能なロジツク・アレイとより成る。このプロ
グラム可能なロジツク・アレイは状態レジスタの値と、
状態マシンへの入力信号とに応答して出力信号の所定の
パターンと、状態レジスタのための新しい値を発生す
る。リンクを通つて送られるビツトをカウントするため
にカウンタ286が用いられ、リンクを通つて受けられる
ビツトをカウントするために別のカウンタ287が用いら
れる。 入力および出力のチヤネル制御器とデータ状態マシンは
下記のような入力と出力を有する。入力または出力の名
称は信号の目的を示すものである。 各状態マシンのシーケンスについて、各マシンの現在の
状態、次の状態、入力、出力について以下に説明する。 どのような状態においても、「出力」欄に記載されてい
る出力は1で、他の出力は0である。「入力」欄に記載
されている入力を除き、全ての入力は無視される。 はそれぞれブール代数の演算のand,or,notを示すもので
ある。 第16図に示すように、入力制御ロジツクは、入力データ
状態マシン282の出力端子246に接続されるフリツプフロ
ツプ280を含む。別のフリツプフロツプ281が入力データ
状態マシン282の出力端子245に接続される。両方の制御
状態マシンはクロツク28から与えられるクロツクパルス
により制御される。リンクのあるものに対して、両方の
データ状態マシンはクロツク28からのクロツクパルスに
よつても制御される。第15、16図に示すリンクに対して
は、データ状態マシンは、クロツク28に対して位相が関
係するクロツク22からのクロツクパルスにより制御され
る。クロツク22はこのリンクを低速で動作させることが
できる。動作させられるマイクロコンピユータ・ネツト
ワークの種類に応じて効率を最高にするために、2種類
のクロツク周波数を得ることができる。マイクロコンピ
ユータが近接して群にまとめられると、それらのコンピ
ユータの間の通信はより高速で行うことができる。その
場合には、より高いクロツク周波数を使用できる。マイ
クロコンピユータが遠く離れて配置され、低速動作を必
要とする場合には、満足できる通信を確保するために低
いクロツク周波数を使用できる。 入力チヤネルと出力チヤネルにおいて、制御状態マシン
はプロセス・レジスタ47の内容をモニタし、適切であれ
ばラツチ197をセツトすることによりCPU要求を線199に
生ずる。 出力制御状態マシン285は出力プロセス・レジスタ47を
用いてまずプロセスに同期させる。それから、マシン28
5は“datago"信号211を用いて出力データ状態マシン282
に、出力データ・レジスタ48内のデータをピン27を通じ
て出力させる。出力データ状態マシン284は第13a図を参
照して説明したようにしてデータを送り出し、カウンタ
286内のカウントがなくなるまでレジスタ48内のデータ
を桁送りする。カウンタ48内のカウントがなくなると、
それは“datagone"信号205を出力状態マシンへ戻して、
データの転送が終了したこと、および“datago"信号を
除去すべきことを示す。それから、出力制御状態マシン
はラツチ280からの“ackready"信号264を待ち、入力デ
ータ状態マシン282が、第13b図に示されている確認応答
パケツトをピン26から受けたことを示す。“ackready"
信号264に応答して、出力制御状態マシンは“acktaken"
信号265を出力する。その信号はラツチ280をリセツトす
る。そうすると出力制御ロジツクは出力プロセス・レジ
スタ47を用いて出力プロセスに再び同期させる。 リンクの他の端にあるマイクロコンピユータの入力デー
タ状態マシン282は、入力ピン26に現われる“atartbit"
を待つ。データ・パケツトが検出されると、そのマイク
ロコンピユータの入力データ状態マシン282が、適切な
数のビツトが受けられたことをカウンタ287が示すま
で、データをデータ・シフトレジスタ48へ桁送りし、そ
れから「データを受ける」ラツチ281をセツトする。入
力制御状態マシン283は“dataready"信号262を検出し、
それに応答してラツチ281をセツトする。それから、そ
れは入力プロセス・レジスタ47を用いて入力プロセスに
同期する。その後で、それはプロセス・レジスタ47を用
いて入力プロセスに再び同期し、プロセスがデータ・レ
ジスタ48からデータを得たことを確認し、次に“ackgo"
信号261を用いて出力データ状態マシンに確認応答パケ
ツトをピン27を介して送らせる。出力データ状態マシン
284をデータを送らない時は、そのマシンはスタート・
ビツトとストツプ・ビツトを発生する。それらのビツト
は確認応答パケツト(13a図)を構成する。マイクロコ
ンピユータのデータ・パケツトを送つた入力データ状態
マシン282は確認応答パケツトを検出し、「確認応答を
受けた」ラツチ280をセツトする。前記したように、送
信マイクロコンピユータの出力制御状態マシン285はこ
れを待つており、その信号を検出するとラツチ280をリ
セツトして第2の同期オペレーシヨンを行う。出力リン
クと入力リンクの両方におけるリンク・ロジツクの状態
は、次の送信の用意が整うように、いまは通信が行われ
た以前と同じである。 チツプとメモリの形成 先に説明したように、本発明のマイクロコンピユータは
チツプ(集積回路装置)上に外部メモリなしでマイクロ
コンピユータを動作させることができる十分なメモリを
RAMの形で有するからとくに有利である。もつとも、要
求があれば外部メモリを使用することもできる。プロセ
ツサが形成されているチツプ上に適切なメモリを形成す
るのに十分なスペースをとることにはいろいろと問題が
ある。各メモリセルに必要な面積をできるだけ小さく
し、同じチツプ上のプロセツサのような同期しないで動
作している回路からのRAMへのノイズ妨害を減少させる
と同時に、何枚かのシリコンチツプから許容できるマイ
クロコンピユータを、とくに、チツプ上に作られる最大
で最高の集積密度の部品であるメモリを満足できる歩留
りで製造することが必要である。 各メモリの必要とするチツプ面積を小さくするために、
本発明のこの実施例では、より一般的なデンプリーシヨ
ン(depletion)形トランジスタ負荷または相補プルア
ツプ・トランジスタではなくて、高インピーダンス抵抗
負荷を用いる静的セル(SRAM)を用いる。この実施例で
用いる製造技術は高抵抗率の多結晶シリコンの膜を用い
る。その多結晶シリコン中に抵抗負荷が形成される。メ
モリは32KビツトのSRAMで構成できる。SRAMの各セル
は、多結晶シリコン膜内に形成されるゲートを有するト
ランジスタより成る。トランジスタのゲートと抵抗負荷
は同じ多結晶シリコン膜内に、または異なる多結晶シリ
コン膜内に形成できる。 抵抗負荷SRAMはそれが形成されているシリコン材料内に
入りこむ電気的ノイズから妨害を受けやすく、また、存
在することがある少数キヤリヤにより内臓データがつぶ
されることが起り得る。チツプ上の他の回路により発生
されるノイズと、チツプ上の他の回路から注入された少
数キヤリヤとからSRAMを遮へいするために、SRAMは第17
図に示すようにシリコンの電気的に分離された領域に形
成される。nチヤネル基板300に別々のp形井戸301,302
が形成される。RAMセルが、RAMアレイをp形井戸301の
内部に配置することにより、他の回路および関連する基
板ノイズから分離される。これによりRAMセルは、井戸
と基準の間の電位障壁により基板中に発生された少数キ
ヤリヤから分離され、井戸の中で発生された少数キヤリ
ヤは基板中に集められる確率が高い。第17図で、RAMア
レイはp形の井戸301の中に配置されたnチヤネル・ア
レイである。周辺回路のnチヤネル・トランジスタを別
のp形井戸302の中に入れることにより、それらのnチ
ヤネル・トランジスタはRAMアレイから分離される。 この技術はMOSまたはp形井戸CMOS製造技術と完全に両
立する。ここで説明している例においてはp形井戸のCM
OSが用いられ、周辺回路のどのnチヤネル・トランジス
タもn形基板の上に置かれて、井戸と基板の間の電位障
壁によりRAMアレイから分離される。メモリ・アレイを
含んでいる各井戸は接地金属により囲まれる。その接地
金属は高密度にドープされたp形領域を介して周囲のメ
モリ・アレイ井戸に接触する。メモリ・アレイ内には、
各セル対ごとに、井戸を介して接地されるp形拡散領域
が存在する。基板のバイアスは不要である。 シリコンチツプからの製品の歩留りを高くするためにメ
モリに冗長性が与えられる。メモリは行デコーダと列デ
コーダによりそれぞれアクセスできる行と列に分けられ
る。正常な行と正常な列に加えて、いくつかの冗長行と
冗長列が設けられるとともに、それら予備の行と列のた
めに予備の行デコーダと列デコーダが設けられる。予備
の行デコーダと列エコーダは、試験中に欠陥のあること
がわかつた行または列を、たとえばレーザで開回路にで
きるように、ヒユーズを含む。レーザによりヒユーズが
とばされて、欠陥であることが判明した列または行の検
出器を動作不能とし、欠陥である列または行のアドレス
で予備の適切な列デコーダまたは行デコーダをプログラ
ミングすることにより、予備の列または行を使用可能な
位置に置くことができる。 n形井戸CMOS製造技術を使用できるようにするために、
以下に説明する別の分離技術を採用できる。第18図を参
照して、低抵抗率のp形基板405の上に高抵抗率のp形
エピタキシヤル層が形成される。 セルアレイはこのエピタキシヤル層の領域401の中に形
成され、高濃度に拡散されたn形井戸402により完全に
囲まれる。領域403内の他の回路により発生された少数
キヤリヤはn形井戸402へひき寄せられ、そこで無害な
多数キヤリヤになり、または高濃度にドープされている
p形基板405において再結合する。pチヤネル・トラン
ジスタがn形井戸404の中に置かれ、そこで壁と基板の
間の電位障壁により少数キヤリヤは分離される。 付加事項 本発明は以上説明した実施例に限定されるものではな
い。たとえば、第2図に示した直列リンクは別々のプロ
セス・レジスタ47を有するが、レジスタ47により与えら
れる機能は、RAM19内のメモリ場所により行うことがで
きる。この場合には、機能している直列リンクをCPUは
識別できなければならず、これは各直列リンクの各チヤ
ネルを第2図の同期ロジツクへ別々に接続することによ
り達成できる。 1組のデータ・レジスタとバスのセツトが第3図に示さ
れており、ある場合には1台のマイクロコンピユータに
そのようなセツトを含ませることが望ましく、または1
台のマイクロコンピユータに2つのCPUを有することも
望ましいことがある。 オペランドの長さを変えるためにpfixとnfixの機能を用
いる前記原理は任意の語長のマイクロコンピユータに応
用できる。本発明は、16ビツト語で動作するマシンに限
定されるのでもなければ、16ビツト・オペランド・レジ
スタに限定されるのでもなく、たとえば、8ビツトある
いは8ビツトの整数倍の語長を有するプロセツサはそれ
らの命令を使用できる。本発明は32ビツト語マイクロコ
ンピユータにとくに応用できる。 CPUは、AレジスタとBレジスタに加えて、CREGまたはD
REGのような別のレジスタを評価スタツク内に含むこと
ができる。そうすると、付加レジスタを使用できるよう
にある機能とオペレーシヨンを変更できる。たとえば、 Areg:=BregをSEQ Areg:=Breg Breg:=Creg Creg:=Dreg により置き換えることができる。 Breg:=AregをSEQ Dreg:=Creg Creg:=Breg Breg:=Areg で置き換えることができる。 もちろん、他の機能またはオペレーシヨンを付加して余
分のレジスタを利用できるようにすることもできる。第
3図を参照して説明した実施例はAレジスタとBレジス
タのみを含んでいるが、本発明の好適な実施例において
は、スタツク内に3個のレジスタが用いられる。 以上の説明において、機能セツトは、間接機能“operat
e"の使用により選択できるオペレーシヨンの拡張可能な
リストが続く複数の機能を機能セツトはリストにまとめ
る。あらゆる場合に、それらの機能とオペレーシヨン
は、マイクロコンピユータを動作させるために有用な命
令のフオームと考えることができる。しかし、第5図に
示されているような固定フオーマツトの「命令」に対し
て述べた利点を得るために、機能とオペレーシヨンとの
セツトを主機能(直接機能と、プレフイクシング機能
と、間接機能とより成る)セツトと、二次命令(間接機
能の使用により選択できるオペレーシヨンより成る)の
セツトと考えることができる。効率を最高にするため
に、最も一般的に使用される主命令は、第5図に示され
ている命令フオーマツトの4ビツトだけを必要とし、し
たがつて、オペランド・レジスタ65にロードさせるため
に使用でき、かつ命令のためのオペランドとして使用さ
れる。一般的に用いられる度合の低い第2の命令に対し
ては、求められた命令を識別するために第5図に示され
ている全部で8ビツトの命令フオーマツトを必要とす
る。したがつて、第5図に示されている固定フオーマツ
ト命令によりデータに第2の命令を伴うことはできず、
したがつて、第2の命令はオペランド・レジスタ65以外
のレジスタに保持されているデータで動作する。 第4図に示す命令フオーマツトは半分に分けられた8ビ
ツトを含むが、他のビツト長を使用できること、機能と
データに分けても2つの部分のビツト長が必ずしも等し
くなるものではないことがわかるであろう。 以上説明した本発明は、マイクロコンピユータの効率と
スループツトを劇的に向上させる組合せを提供するもの
である。一定フオーマツトの命令を用い、最もよく用い
られる機能は直接利用でき、かつ他の機能は間接的に利
用できるような機能セツトを有し、プロセスの間の通信
とプロセス間の同期のために構成し、マイクロコンピユ
ータ間の点‐点通信を行えるようにし、各マイクロコン
ピユータのチツプと同じチツプ上にメモリを設けること
により、本発明の種々の面によるマイクロコンピユータ
は1秒間に1000万個の命令を処理する速度を達成でき
る。わずかに約25.4×50.8cm(10×20インチ)のボード
に納められるアレイが1000万命令/秒の速度を達成でき
るのである。OCCAM(商標)を用いるTransputer(商
標)マイクロコンピユータ・アレイは、たとえばPASCAL
を用いるモトローラ(Motorola)68000より2桁も高速
である。OCCAMでプログラムされた1台のTransputer
は、PASCALを用いる1台の68000マイクロコンピユータ
より約2〜3倍速い。先行技術においては、マイクロコ
ンピユータがアレイ状に加え合わされると、性能の向上
率はプロセツサ数の増加とともにしだいに低下するが、
本発明のマイクロコンピユータを用いると、性能はプロ
セツサの数に比較して向上する。このように、本発明は
先行技術よりも性能を劇的に向上させることがわかるで
あろう。
【図面の簡単な説明】
第1図は本発明のマイクロコンピユータの主な特徴を示
すブロツク図、第2図は第1図に示すいくつかの部品、
とくにメモリと、外部通信用の直列リンクの詳しいブロ
ツク図、第3図は中央処理装置のレジスタとデータ路お
よび演算論理装置、ならびに中央処理装置とマイクロコ
ンピユータの他のユニツトの間のインタフエイスをとく
に示す詳しいブロツク図、第4図はメモリ内の作業域の
使用を示す略図、第5図はこのマイクロコンピユータで
使用される命令のフオームを示す略図、第6図は複数の
タイミング制御信号の相対的なタイミング波形図、第7
図はタイミング制御信号発生の様子を示すブロツク図、
第8図は第1〜3図のマイクロコンピユータの可変長オ
ペランドによる動作を示すブロツク図、第9図a〜eは
同じマイクロコンピユータにより実行される2つのプロ
セスの間の2語チヤネルを用いる通信の1つのやり方に
おける引き続くオペレーシヨンを示す略図、第10図は1
台のマイクロコンピユータにおける2つの通信プロセス
のオペレーシヨンを示す図、第11図は2台のマイクロコ
ンピユータの間の直列リング接続の詳細を含む、相互に
接続されたマイクロコンピユータのネツトワーク図、第
12図は異なるマイクロコンピユータで実行される2つの
プロセスの間の直列リンクを介する通信を行うための一
連のオペレーシヨンを示す略図、第13a、13b図は2台の
マイクロコンピユータの間の直列リンクを介する通信の
ためのデータ・パケツトと確認応答パケツトのフオーマ
ツト図、第14図は相互に接続された2台のマイクロコン
ピユータにおける第10図の同じ2つの通信プロセスの動
作を示すブロツク図、第15図は1つの出力直列リンクの
論理図、第16図は1つの入力直列リンクの論理図、第17
図は第1図のマイクロコンピユータに使用できるチツプ
の構造図、第18図は第1図のマイクロコンピユータに使
用できる別のチツプ構造図である。 10……同期ロジツク、12……CPU、13,20……ROM、14…
…メモリ・インタフエイス、15……インタフエイス制御
ロジツク、19……RAM、23……外部メモリ・インタフエ
イス、25……直列リンク、47……プロセス・レジスタ、
48……データ・レジスタ、50……制御ロジツク、56……
レジスタバス制御スイツチ、64……デコーダ、154〜157
……遅延器、193……アドレス・デコーダ、282……出力
制御状態マシン、28……ビツト・カウンタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジヨナサン・エドワ−ズ イギリス国ブリストル・ビ−エス19 4エ ツチエヌ・ヤトン・メンデイツプ・ロ−ド 110 (72)発明者 デイビツド・レオナ−ド・ウオ−ラ− イギリス国ビ−エス14オ−ユ−エ−・エイ ボン・ホイツトチヤ−チ・スト−ンベリ −・ロ−ド60 (56)参考文献 特開 昭57−29123(JP,A) 特開 昭57−71169(JP,A) 特開 昭57−154869(JP,A) 特開 昭53−10228(JP,A) 特開 昭52−99027(JP,A) Electronics,51[3 ](1978)P.95〜103

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】第1の形式の半導体材料の基板を有する単
    一集積回路上にオンチップ・プロセッサおよびオンチッ
    プ・RAMメモリーをそなえ、 前記オンチップ・RAMメモリーは、前記オンチップ・プ
    ロセッサにより実行されるプログラムを保持するための
    少なくとも1Kバイトの高密度RAMアレイを有することを
    特徴とするマイクロコンピュータにおいて、 前記マイクロコンピュータは、 (a)前記RAMアレイからプログラム・インストラクシ
    ョンを得るためのポインタを提供する手段と、 (b)前記RAMアレイに蓄積されたプログラムからイン
    ストラクションを受け取るため前記RAMアレイに接続さ
    れたインストラクション受領手段と、 (c)前記インストラクション受領手段により受領され
    たインストラクションをデコードするためのインストラ
    クション・デコード手段と、 (d)メモリー動作と独立に動作しうる回路を有する複
    数のオンチップ・トランジスタと、 (e)基板中に形成された第1分離ウェルであって、前
    記基板中に該基板と異なる導電形式の半導体材料で形成
    された少なくとも1KバイトのRAMアレイを提供する複数
    のRAMセルを持った第1の分離領域と、 (f)前記基板とは異なる導電形式の半導体材料で形成
    され、前記第1分離ウェルから分離された第2分離ウェ
    ルであって、メモリー動作と独立に動作しうるトランジ
    スタを有する第2分離領域とをそなえ、 前記RAMアレイは、前記独立に動作するトランジスタと
    同一チップ上に配され、かつ前記トランジスタの独立し
    た動作によるノイズから保護されることを特徴とするマ
    イクロコンピュータ。
  2. 【請求項2】特許請求の範囲第1項記載のマイクロコン
    ピュータにおいて、 他のマイクロコンピュータとプロセス間通信するための
    複数の通信リンクをそなえ、 この通信リンクは、RAMセルの分離ウェルから分離され
    た分離ウェル中に配されたトランジスタを有し、かつ前
    記RAMセルの動作に非同期的に動作するように構成され
    たマイクロコンピュータ。
  3. 【請求項3】特許請求の範囲第2項記載のマイクロコン
    ピュータにおいて、 前記RAMセルは、高インピーダンス抵抗負荷およびトラ
    ンジスタとともに形成された複数のRAMをそなえるマイ
    クロコンピュータ。
  4. 【請求項4】特許請求の範囲第3項記載のマイクロコン
    ピュータにおいて、 抵抗負荷が、多結晶シリコン中に形成されたマイクロコ
    ンピュータ。
  5. 【請求項5】特許請求の範囲第1項ないし第4項の何れ
    かに記載のマイクロコンピュータにおいて、 前記第1および第2の分離領域の各々は、前記基板中に
    形成された前記基板とは異なる導電形式の半導体材料の
    ウェルをそなえたマイクロコンピュータ。
  6. 【請求項6】特許請求の範囲第1項記載のマイクロコン
    ピュータにおいて、 2以上のP形半導体の分離ウェルを有するnチャネルト
    ランジスタをそなえたマイクロコンピュータ。
  7. 【請求項7】特許請求の範囲第6項記載のマイクロコン
    ピュータにおいて、 前記RAMセルが、p形ウェル内に配されたnチャネルト
    ランジスタをそなえたマイクロコンピュータ。
  8. 【請求項8】特許請求の範囲第1項または第4項記載の
    マイクロコンピュータにおいて、 前記RAMアレイは、主メモリーアレイと冗長メモリーア
    レイとを、前記主メモリーアレイ中に欠陥メモリー要素
    が生じたとき、冗長メモリーの使用を可能にする手段と
    ともにそなえたマイクロコンピュータ。
  9. 【請求項9】特許請求の範囲第8項記載のマイクロコン
    ピュータにおいて、 前記冗長メモリーアレイは、ヒューズ要素を介して前記
    主メモリーアレイと相互接続可能なメモリー要素の冗長
    行および列を有するマイクロコンピュータ。
  10. 【請求項10】特許請求の範囲第2項記載のマイクロコ
    ンピュータにおいて、 前記RAMセルは、少くとも4つの1KバイトRAMをそなえた
    マイクロコンピュータ。
  11. 【請求項11】第1の形式の半導体材料の基板を有する
    単一の集積回路チップ上に、オンチップ・論理回路およ
    びオンチップ・メモリーをそなえ、 前記オンチップ・メモリーは、少なくとも1Kバイトの蓄
    積容量を持ったメモリーセルの高密度RAMアレイを有
    し、 前記集積回路チップは、 (a)前記RAMアレイからプログラム・インストラクシ
    ョンを得るためのポインタを提供する手段と、 (b)前記RAMアレイに蓄積されたプログラムからイン
    ストラクションを受け取るため前記RAMアレイに接続さ
    れたインストラクション受領手段と、 (c)前記インストラクション受領手段により受領され
    たインストラクションをデコードするためのインストラ
    クション・デコード手段と、 (d)前記論理回路を有し、前記RAMアレイの動作と独
    立に動作し得る、複数のオンチップ・トランジスタ(1
    2,25)と、 (e)前記基板中に前記基板と同一導電形式の半導体材
    料で形成され、前記高密度RAMアレイ(19)の前記メモ
    リーセルを含んだ第1の分離領域(401)と、 (f)前記第1の分離領域(401)と分離されて前記基
    板と同一導電形式の半導体材料で形成され、前記RAMア
    レイ(19)の前記動作と独立して動作し得る前記トラン
    ジスタ(12,25)を含む第2の分離領域(403)と、 (g)前記第1の分離領域と第2の分離領域とを分離す
    るため前記基板中に形成された分離ウェルであって、前
    記基板と異なる導電形式の半導体材料で形成された分離
    手段(402)とを有し、 前記高密度RAMアレイは、前記独立に動作するトランジ
    スタと同一チップ上に配されて前記トランジスタの独立
    した動作に起因するノイズから保護されるようにしたマ
    イクロプロセッサ。
  12. 【請求項12】特許請求の範囲第11項に記載のマイクロ
    コンピュータにおいて、 前記分離領域の一つは、前記基板と同一導電形式の半導
    体材料の領域であって、前記領域は、前記基板と異なる
    導電形式の半導体材料のウェルにより取り囲まれたマイ
    クロコンピュータ。
  13. 【請求項13】特許請求の範囲第11項記載のマイクロコ
    ンピュータにおいて、 高抵抗率p形エピタキシャル層が上部に形成された低抵
    抗率のp形半導体の基板をそなえ、 前記メモリーセルは、前記エピタキシャル層内に配され
    n形領域に囲まれてメモリーセルを絶縁するようにした
    マイクロコンピュータ。
JP58221453A 1982-11-26 1983-11-26 マイクロコンピユ−タ Expired - Lifetime JPH06101042B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8233733 1982-11-26
GB8233733 1982-11-26

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP5342376A Division JP2688320B2 (ja) 1982-11-26 1993-12-14 集積回路チップ

Publications (2)

Publication Number Publication Date
JPS59194256A JPS59194256A (ja) 1984-11-05
JPH06101042B2 true JPH06101042B2 (ja) 1994-12-12

Family

ID=10534539

Family Applications (7)

Application Number Title Priority Date Filing Date
JP58221452A Granted JPS59133647A (ja) 1982-11-26 1983-11-26 コンピユ−タおよびコンピユ−タ装置を動作させる方法
JP58221451A Granted JPS59149543A (ja) 1982-11-26 1983-11-26 コンピユ−タおよびコンピユ−タ装置を動作させる方法
JP58221455A Expired - Lifetime JP2502960B2 (ja) 1982-11-26 1983-11-26 マイクロコンピュ−タ、ならびにマイクロコンピユ−タおよびマイクロコンピユ−タ・ネットワ−クを動作させる方法
JP58221453A Expired - Lifetime JPH06101042B2 (ja) 1982-11-26 1983-11-26 マイクロコンピユ−タ
JP58221454A Expired - Lifetime JPH087739B2 (ja) 1982-11-26 1983-11-26 マイクロコンピュータおよびそのネットワークならびに複数のマイクロコンピュータにおけるプロセス間のデータ通信を行う方法
JP5225198A Expired - Lifetime JP2509453B2 (ja) 1982-11-26 1993-08-18 マイクロコンピュ―タにおけるオンチップおよびオフチッププロセス間通信を選択する方法ならびにマイクロコンピュ―タ
JP5342376A Expired - Lifetime JP2688320B2 (ja) 1982-11-26 1993-12-14 集積回路チップ

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP58221452A Granted JPS59133647A (ja) 1982-11-26 1983-11-26 コンピユ−タおよびコンピユ−タ装置を動作させる方法
JP58221451A Granted JPS59149543A (ja) 1982-11-26 1983-11-26 コンピユ−タおよびコンピユ−タ装置を動作させる方法
JP58221455A Expired - Lifetime JP2502960B2 (ja) 1982-11-26 1983-11-26 マイクロコンピュ−タ、ならびにマイクロコンピユ−タおよびマイクロコンピユ−タ・ネットワ−クを動作させる方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP58221454A Expired - Lifetime JPH087739B2 (ja) 1982-11-26 1983-11-26 マイクロコンピュータおよびそのネットワークならびに複数のマイクロコンピュータにおけるプロセス間のデータ通信を行う方法
JP5225198A Expired - Lifetime JP2509453B2 (ja) 1982-11-26 1993-08-18 マイクロコンピュ―タにおけるオンチップおよびオフチッププロセス間通信を選択する方法ならびにマイクロコンピュ―タ
JP5342376A Expired - Lifetime JP2688320B2 (ja) 1982-11-26 1993-12-14 集積回路チップ

Country Status (4)

Country Link
US (6) US4680698A (ja)
EP (6) EP0113516B1 (ja)
JP (7) JPS59133647A (ja)
DE (6) DE3378083D1 (ja)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6414368B1 (en) * 1982-11-26 2002-07-02 Stmicroelectronics Limited Microcomputer with high density RAM on single chip
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
US5243698A (en) * 1982-11-26 1993-09-07 Inmos Limited Microcomputer
GB8329510D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer apparatus
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
JPH0738187B2 (ja) * 1984-03-23 1995-04-26 株式会社日立製作所 Lsiに構成されたマイクロコンピュータ
US4901225A (en) * 1984-04-09 1990-02-13 Kabushiki Kaisha Toshiba Processing apparatus with hierarchical structure for implementing a machine instruction
FR2570525B1 (fr) * 1984-09-20 1986-12-12 Inst Nal Rech Informatiq Procede et dispositif electronique pour l'execution repartie d'une activite entre plusieurs sites differents
US4989133A (en) * 1984-11-30 1991-01-29 Inmos Limited System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
EP0232859A3 (en) * 1986-01-27 1989-08-30 International Business Machines Corporation Processor intercommunication network
US4736321A (en) * 1986-05-05 1988-04-05 International Business Machines Corporation Communication method between an interactive language processor workspace and external processes
JPH0731662B2 (ja) * 1986-07-15 1995-04-10 富士通株式会社 マルチプロセッサシステム
GB8618060D0 (en) * 1986-07-24 1986-12-17 Gec Avionics Data processing apparatus
EP0260793A3 (en) * 1986-07-24 1990-03-14 Gec Avionics Limited Bidirectional data bus
US5123093A (en) * 1987-01-16 1992-06-16 Hitachi, Ltd. Operational processor for performing a memory access and an operational process in parallel
US5276892A (en) * 1987-02-24 1994-01-04 Digital Equipment Corporation Destination control logic for arithmetic and logic unit for digital data processor
US5133064A (en) 1987-04-27 1992-07-21 Hitachi, Ltd. Data processing system generating clock signal from an input clock, phase locked to the input clock and used for clocking logic devices
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
US4961133A (en) * 1987-11-06 1990-10-02 Visystems, Inc. Method for providing a virtual execution environment on a target computer using a virtual software machine
US6112287A (en) * 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
DE3812823A1 (de) * 1988-04-16 1989-11-02 Asea Brown Boveri Mikrocomputer-verbundnetz
WO1990003004A1 (en) * 1988-09-02 1990-03-22 Dallas Semiconductor Corporation Multiport memory system
US5012404A (en) * 1988-10-28 1991-04-30 United Technologies Corporation Integrated circuit remote terminal stores interface for communication between CPU and serial bus
WO1990008355A1 (en) * 1989-01-17 1990-07-26 Fujitsu Limited Microprocessor
US5475631A (en) * 1989-03-09 1995-12-12 Micron Technology, Inc. Multiport RAM based multiprocessor
US5546592A (en) * 1989-06-26 1996-08-13 Ncr Corporation System and method for incrementing memory addresses in a computer system
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5247658A (en) * 1989-10-31 1993-09-21 Microsoft Corporation Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers
US5303358A (en) * 1990-01-26 1994-04-12 Apple Computer, Inc. Prefix instruction for modification of a subsequent instruction
IL93239A (en) * 1990-02-01 1993-03-15 Technion Res & Dev Foundation High flow-rate synchronizer/schedular apparatus for multiprocessors
US6751696B2 (en) * 1990-04-18 2004-06-15 Rambus Inc. Memory device having a programmable register
FR2661526B1 (fr) * 1990-04-27 1994-09-16 Francois Gernelle Machine multiprocesseur symetrique a niveau de lien serre.
JP3083547B2 (ja) * 1990-07-12 2000-09-04 株式会社日立製作所 半導体集積回路装置
JPH04149642A (ja) * 1990-10-08 1992-05-22 Canon Inc 情報処理装置
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
JPH04172533A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 電子計算機
JPH05113870A (ja) * 1991-10-23 1993-05-07 Mitsubishi Electric Corp ソート処理プロセツサ
WO1993009501A1 (en) * 1991-11-01 1993-05-13 Yeh Keming W Portable device having data storage capability for transferring data between a portable computer and a desktop computer
JPH05197545A (ja) * 1991-12-10 1993-08-06 Mitsubishi Electric Corp マイクロコンピュータ
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JPH05265975A (ja) * 1992-03-16 1993-10-15 Hitachi Ltd 並列計算処理装置
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
GB2266605B (en) * 1992-04-27 1995-10-11 Intel Corp Microprocessor having a run/stop pin for accessing an idle mode
US5353420A (en) * 1992-08-10 1994-10-04 Intel Corporation Method and apparatus for decoding conditional jump instructions in a single clock in a computer processor
US6951019B1 (en) * 1992-09-30 2005-09-27 Apple Computer, Inc. Execution control for processor tasks
GB2273591A (en) * 1992-12-18 1994-06-22 Network Systems Corp Microcomputer control systems for interprogram communication and scheduling methods
CA2107046A1 (en) * 1993-01-08 1994-07-09 James Allan Kahle Method and system for increased instruction dispatch efficiency in superscalar processor system
US5548767A (en) * 1993-10-06 1996-08-20 Intel Corporation Method and apparatus for streamlined handshaking between state machines
US5712664A (en) 1993-10-14 1998-01-27 Alliance Semiconductor Corporation Shared memory graphics accelerator system
JPH07129486A (ja) * 1993-10-29 1995-05-19 Mitsubishi Electric Corp シリアル通信回路
JPH10502181A (ja) * 1994-06-20 1998-02-24 ネオマジック・コーポレイション メモリインタフェースのないグラフィックスコントローラ集積回路
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
JP3000857B2 (ja) * 1994-08-31 2000-01-17 松下電工株式会社 プログラマブルコントローラ
WO1996016497A1 (en) * 1994-11-21 1996-05-30 Oracle Corporation Transferring binary large objects (blobs) in a network environment
JP3711422B2 (ja) * 1995-12-20 2005-11-02 セイコーエプソン株式会社 情報処理回路
GB2308686A (en) 1995-12-20 1997-07-02 British Aerospace Integrated circuits for multi-tasking support in single or multiple processor networks
US7253557B2 (en) * 1996-02-08 2007-08-07 Bright Solutions, Inc. Light source provided with a housing enclosing voltage regulator means and method of manufacturing thereof
JP3008843B2 (ja) * 1996-02-28 2000-02-14 日本電気株式会社 半導体記憶装置
US6067610A (en) * 1996-07-29 2000-05-23 Motorola, Inc. Method and data processor for synchronizing multiple masters using multi-bit synchronization indicators
US5991825A (en) * 1997-07-11 1999-11-23 International Business Machines Corporation System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6075742A (en) * 1997-12-31 2000-06-13 Stmicroelectronics, Inc. Integrated circuit for switching from power supply to battery, integrated latch lock, and associated method for same
JPH11212909A (ja) * 1998-01-29 1999-08-06 Mitsubishi Electric Corp シリアルi/o内蔵の半導体装置
ATE245833T1 (de) * 1998-05-26 2003-08-15 Dow Global Technologies Inc Verteilte rechnerumgebung mit echt-zeit ablauffolgenlogik und zeit-deterministischer architektur
US6748451B2 (en) 1998-05-26 2004-06-08 Dow Global Technologies Inc. Distributed computing environment using real-time scheduling logic and time deterministic architecture
US6338132B1 (en) * 1998-12-30 2002-01-08 Intel Corporation System and method for storing immediate data
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
DE10131084A1 (de) * 2001-06-27 2003-01-09 Klaus Schleisiek Vorrichtung zur Datenverarbeitung
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7299099B1 (en) * 2004-02-18 2007-11-20 Divelbiss Corporation Programmable logic controller contained on a chip
US20060065946A1 (en) * 2004-09-30 2006-03-30 Texas Instruments, Inc. Multi-doped semiconductor e-fuse
US7327044B2 (en) 2005-01-21 2008-02-05 Fox Electronics Integrated circuit package encapsulating a hermetically sealed device
DE102005055000A1 (de) * 2005-11-18 2007-05-24 Airbus Deutschland Gmbh Modulares Avioniksystem eines Flugzeuges
US20070189160A1 (en) * 2006-02-14 2007-08-16 Itamar Landau Method and system for randomized puncturing in mobile communication systems
JP2009048306A (ja) * 2007-08-15 2009-03-05 Tokyo Metropolitan Univ 並列処理アーキテクチャおよびそれを用いた並列処理プロセッサ
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
GB2459674A (en) * 2008-04-29 2009-11-04 Picochip Designs Ltd Allocating communication bandwidth in a heterogeneous multicore environment
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2486740B (en) * 2010-12-24 2019-02-13 Qualcomm Technologies Int Ltd Encapsulated instruction set
GB2486737B (en) * 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3287703A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer
US3364472A (en) * 1964-03-06 1968-01-16 Westinghouse Electric Corp Computation unit
US3541518A (en) * 1967-09-27 1970-11-17 Ibm Data handling apparatus employing an active storage device with plural selective read and write paths
US3582899A (en) * 1968-03-21 1971-06-01 Burroughs Corp Method and apparatus for routing data among processing elements of an array computer
US3618045A (en) * 1969-05-05 1971-11-02 Honeywell Inf Systems Management control subsystem for multiprogrammed data processing system
US3643227A (en) * 1969-09-15 1972-02-15 Fairchild Camera Instr Co Job flow and multiprocessor operation control system
US3657705A (en) * 1969-11-12 1972-04-18 Honeywell Inc Instruction translation control with extended address prefix decoding
JPS485374U (ja) * 1971-06-04 1973-01-22
DE2241600A1 (de) * 1971-08-26 1973-03-01 Dionics Inc Hochspannungs-p-n-uebergang und seine anwendung in halbleiterschaltelementen, sowie verfahren zu seiner herstellung
US3766532A (en) * 1972-04-28 1973-10-16 Nanodata Corp Data processing system having two levels of program control
US3805247A (en) * 1972-05-16 1974-04-16 Burroughs Corp Description driven microprogrammable multiprocessor system
US3815095A (en) * 1972-08-29 1974-06-04 Texas Instruments Inc General-purpose array processor
US3839705A (en) * 1972-12-14 1974-10-01 Gen Electric Data processor including microprogram control means
US3993934A (en) * 1973-05-29 1976-11-23 Ibm Corporation Integrated circuit structure having a plurality of separable circuits
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
US4025904A (en) * 1973-10-19 1977-05-24 Texas Instruments Incorporated Programmed allocation of computer memory workspace
JPS5218087B2 (ja) * 1973-10-30 1977-05-19
FR2253428A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253421A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4130865A (en) * 1974-06-05 1978-12-19 Bolt Beranek And Newman Inc. Multiprocessor computer apparatus employing distributed communications paths and a passive task register
DE2440390B2 (de) * 1974-08-23 1976-10-07 Philips Patentverwaltung Gmbh, 2000 Hamburg Elektronischer rechner
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip
US3976976A (en) * 1975-04-04 1976-08-24 The United States Of America As Represented By The Secretary Of The Navy Method and means to access and extended memory unit
JPS5931744B2 (ja) * 1975-12-01 1984-08-03 インテル・コ−ポレ−シヨン Mosデジタルコンピユ−タ
GB1540923A (en) * 1975-12-01 1979-02-21 Intel Corp Programmable single chip mos computer
JPS5841538B2 (ja) * 1975-12-04 1983-09-13 株式会社東芝 マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
JPS5299027A (en) * 1976-02-16 1977-08-19 Hitachi Ltd Address designating system
US4047247A (en) * 1976-04-07 1977-09-06 Honeywell Information Systems Inc. Address formation in a microprogrammed data processing system
US4037213A (en) * 1976-04-23 1977-07-19 International Business Machines Corporation Data processor using a four section instruction format for control of multi-operation functions by a single instruction
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4093982A (en) * 1976-05-03 1978-06-06 International Business Machines Corporation Microprocessor system
JPS592941B2 (ja) * 1976-06-30 1984-01-21 日本電気株式会社 コンピユ−タ複合体装置
US4059231A (en) * 1976-07-16 1977-11-22 Grefco, Inc. Method and apparatus for selectively comminuting particles of a frangible material
JPS602709B2 (ja) * 1976-09-14 1985-01-23 富士通株式会社 ビルデイング・ブロツク構造をもつデータ処理システム
US4103329A (en) * 1976-12-28 1978-07-25 International Business Machines Corporation Data processing system with improved bit field handling
US4145739A (en) * 1977-06-20 1979-03-20 Wang Laboratories, Inc. Distributed data processing system
US4191996A (en) * 1977-07-22 1980-03-04 Chesley Gilman D Self-configurable computer and memory system
US4320455A (en) * 1978-01-09 1982-03-16 Honeywell Information Systems Inc. Queue structure for a data processing system
JPS54107278A (en) * 1978-02-10 1979-08-22 Hitachi Ltd Semiconductor device
JPS54129944A (en) * 1978-03-31 1979-10-08 Toshiba Corp Arithmetic controller
US4223380A (en) * 1978-04-06 1980-09-16 Ncr Corporation Distributed multiprocessor communication system
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4179738A (en) * 1978-06-23 1979-12-18 International Business Machines Corporation Programmable control latch mechanism for a data processing system
US4247892A (en) * 1978-10-12 1981-01-27 Lawrence Patrick N Arrays of machines such as computers
US4229790A (en) * 1978-10-16 1980-10-21 Denelcor, Inc. Concurrent task and instruction processor and method
US4433376A (en) * 1978-10-31 1984-02-21 Honeywell Information Systems Inc. Intersystem translation logic system
JPS5585039A (en) * 1978-12-22 1980-06-26 Hitachi Ltd Semiconductor integrated circuit
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
US4349870A (en) * 1979-09-05 1982-09-14 Motorola, Inc. Microcomputer with programmable multi-function port
US4587542A (en) * 1979-10-11 1986-05-06 Texas Instruments Incorporated Guard ring for reducing pattern sensitivity in MOS/LSI dynamic RAM
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor
US4346459A (en) * 1980-06-30 1982-08-24 Inmos Corporation Redundancy scheme for an MOS memory
JPS5753971A (en) * 1980-09-17 1982-03-31 Toshiba Corp Complementary type semiconductor ic device
US4434462A (en) * 1980-11-24 1984-02-28 Texas Instruments Incorporated Off-chip access for psuedo-microprogramming in microprocessor
US4450519A (en) * 1980-11-24 1984-05-22 Texas Instruments Incorporated Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or external program memories
US4491907A (en) * 1980-12-15 1985-01-01 Texas Instruments Incorporated Plurality of processors sharing the memory, the arithmetic logic unit and control circuitry all on a single semiconductor chip
JPS57117027A (en) * 1981-01-13 1982-07-21 Nec Corp Signal sending and receiving circuit
JPS57154869A (en) * 1981-03-20 1982-09-24 Hitachi Ltd Semiconductor device
US4467420A (en) * 1981-03-20 1984-08-21 Fujitsu Limited One-chip microcomputer
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
JPS57191731A (en) * 1981-05-21 1982-11-25 Nec Corp Operating system for terminal equipment
US4495563A (en) * 1981-07-02 1985-01-22 Texas Instruments Incorporated Microcomputer having separate access to complete microcode words and partial microcode words
US4532587A (en) * 1981-08-26 1985-07-30 Texas Instruments Incorporated Single chip processor connected to an external memory chip
US4482950A (en) * 1981-09-24 1984-11-13 Dshkhunian Valery Single-chip microcomputer
US4494187A (en) * 1982-02-22 1985-01-15 Texas Instruments Incorporated Microcomputer with high speed program memory
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4546454A (en) * 1982-11-05 1985-10-08 Seeq Technology, Inc. Non-volatile memory cell fuse element
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Electronics,51[3(1978)P.95〜103

Also Published As

Publication number Publication date
JP2509453B2 (ja) 1996-06-19
DE3382708D1 (de) 1993-09-16
DE3376894D1 (en) 1988-07-07
EP0110643B1 (en) 1988-03-02
JPS59133662A (ja) 1984-08-01
EP0250011A2 (en) 1987-12-23
EP0250011A3 (en) 1988-06-01
EP0113516A3 (en) 1984-11-07
US4704678A (en) 1987-11-03
JP2502960B2 (ja) 1996-05-29
JPS59194256A (ja) 1984-11-05
EP0110642A3 (en) 1984-11-07
DE3382708T2 (de) 1994-02-10
JPH06260551A (ja) 1994-09-16
EP0113178A2 (en) 1984-07-11
US4967326A (en) 1990-10-30
EP0110642B1 (en) 1988-09-21
JPS59133650A (ja) 1984-08-01
EP0113178A3 (en) 1984-11-28
EP0110643A2 (en) 1984-06-13
JPS59149543A (ja) 1984-08-27
JPH06342378A (ja) 1994-12-13
US4724517A (en) 1988-02-09
EP0111399B1 (en) 1987-09-16
EP0113516A2 (en) 1984-07-18
US4819151A (en) 1989-04-04
JPH0128967B2 (ja) 1989-06-07
JPH087739B2 (ja) 1996-01-29
EP0111399A3 (en) 1984-11-07
EP0110643A3 (en) 1984-11-07
EP0110642A2 (en) 1984-06-13
DE3378083D1 (en) 1988-10-27
DE3375844D1 (en) 1988-04-07
JPS59133647A (ja) 1984-08-01
DE3373567D1 (en) 1987-10-15
JPH0470652B2 (ja) 1992-11-11
US4680698A (en) 1987-07-14
EP0113516B1 (en) 1988-06-01
JP2688320B2 (ja) 1997-12-10
DE3373733D1 (en) 1987-10-22
EP0111399A2 (en) 1984-06-20
EP0113178B1 (en) 1987-09-09
US5031092A (en) 1991-07-09
EP0250011B1 (en) 1993-08-11

Similar Documents

Publication Publication Date Title
JPH06101042B2 (ja) マイクロコンピユ−タ
US5506437A (en) Microcomputer with high density RAM in separate isolation well on single chip
Seitz et al. The design of the Caltech Mosaic C multicomputer
US6414368B1 (en) Microcomputer with high density RAM on single chip
EP1840742A2 (en) Method and apparatus for operating a computer processor array
WO2001095099A1 (fr) Systeme et procede de gestion de circuits de traitement d'informations a fonction variable
May The influence of VLSI technology on computer architecture
May et al. The transputer
KR102276696B1 (ko) 집적 회로 무선장치
Fisher A multi‐processor implementation of occam
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
Samman et al. Architecture, on-chip network and programming interface concept for multiprocessor system-on-chip
JP3638284B2 (ja) データ処理ユニット及び拡張器を具えるデータ処理システム
Johannsen Our machine, a microcoded LSI processor
Davis FAIM-1: an architecture for symbolic multiprocessing