JPS60501382A - プロセス間通信を行うマイクロコンピュ−タ - Google Patents

プロセス間通信を行うマイクロコンピュ−タ

Info

Publication number
JPS60501382A
JPS60501382A JP59501680A JP50168084A JPS60501382A JP S60501382 A JPS60501382 A JP S60501382A JP 59501680 A JP59501680 A JP 59501680A JP 50168084 A JP50168084 A JP 50168084A JP S60501382 A JPS60501382 A JP S60501382A
Authority
JP
Japan
Prior art keywords
channel
input
microcomputer
data
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP59501680A
Other languages
English (en)
Other versions
JP2669816B2 (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
Application filed by インモス リミテツド filed Critical インモス リミテツド
Publication of JPS60501382A publication Critical patent/JPS60501382A/ja
Application granted granted Critical
Publication of JP2669816B2 publication Critical patent/JP2669816B2/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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 プロセス間通信を行なうマイクロコンピュータ本発明はプロセッサ間通信を行う マイクロコンピュータに関するものであり、かつ本願出願人が行っているそれぞ れ未決のヨー四ツバ特許出願83307078.2、特許出願昭和58年第22 144号、米国特許出願Noa552601.552602,553027,5 53028,553029に記述されているマイクロコンピュータに関連する改 良に関するものである。
発明の背景 上記の特許出願は、プロセッサと、同じ集積回路上のRAMの形態のメモリとを 有する単一の集積回路を備え、プロセッサは機能セットから選択された諸機能に 従って動作するように構成された改良したマイクロコンピュータについて記述し ている。前記機能セットは直接機能と間接機能を含む。間接機能は各種の「動作 」のうちの1つを選択するために用いられる。それらの動作には、2つのプロセ スを交信できるようにするために用いられる動作「同期」が含まれる。それら2 つのプロセスは同じマイクロコンピュータで行われることもあれば、独立したそ れぞれのマイクロコンピュータで行われることもある。前記したいくつかの特許 出願かられかるように、動作「同期」を使用するには、同じマイクロコンピータ においてプロセス開通信を行えるようにするチャネルを設けるためにメモリ内に 2つの語場所を必要としていた。チャネルの1語はチャネルの状態を示すために 用いられ、他の語はチャネルを介して通信を行うためのデータを保持するために 用いられていた。更に、2つのプロセスがそれぞれのプログラム順序中の対応す る段階にある時にメツセージ伝送が行われるようにするために、各プロセスが各 メツセージごとに2つの「同期」動作をそれぞれのプログラム順序中に含むこと をプロセス間通信はめている。ある状況においては、このために、同期されたメ ツセージ伝送を行うためにプロセスを2回デスケジュール(deschθdul ed)させることがある。
発明の目的 本発明の目的は、プロセス間のデータ伝送を命令の使用により行うことができ、 しかもプロセス間の通信中に使用する命令の数が少いために性能向上という結果 を得ることができるような改良したマイクロコンピュータを得ることである。本 発明の別の目的は、より少い記憶スペースを用いて通信チャネルを構成すること である。
好適な実施例においては、前記諸特許出願にお℃・て言及されている「同期」動 作の代りに、以下に説明するように「入力」動作および「出力」動作を用いるこ とができる。
発明の概要 本発明は、メモリと、複数の同時プロセスを実行するように構成されたプロセッ サとを備え、前記各プロセスはプロセッサにより逐次実行するための複数の命令 より成るプログラムに従い、各命令はプロセッサにより実行されるべきめられて いる檜能を指定し、前記プロセッサは(1)複数のレジスタと、それらのレジス タとの間のデータの転送に使用するためのデータ転送器と、(2)各命令を受け 、その命令に関連する値をプロセッサ・レジスタの1つに四−ドするための手段 と、(3)受けた各命令に応答して前記データ転送器と前記レジスタを制御し、 プロセッサを命令に従って動作させる制御器と、を備えるマイクロコンピュータ において、 (a)プロセッサがそれの処理時間を複数の同時プロセスの間で分割できるよう にするためのスケジューリング手段と、 (b)2つのプロセッサがそれぞれのプログラム順序中の対応する段階、すなわ ち、それのプログラム中の出力命令に応答してデータを出力するように動作する 出力プロセスと、それのプログラム中における入力命令に応答してデータを入力 するように動作する入力プロセスとである段階にある時に一方のプロセスから他 方のプロセスへデータの転送を行えるようにする通信手段と、 を備え、前記スケジューリング手段は、(1)プログラムによるコレクション待 機実行を形成する1つまたはそれ以上のプロセスを識別するための手段と、 (li)現在のプロセスに割込むことによりプロセスをデスケジューリングする ための手プロセスをデスケジューリングするための手段と、 (lit)プロセスに前記コレクションを加えることによりそのプロセスをスケ ジユーリングするための手段と、 を備え、 前記通信手段は、 (1)チャネルと、 (li)データ転送に含まれている1つのプロセスが前記チャネルの内容をテス トするための現在のプロセスである時に、前記1つのプロセスによる入力命令ま たは出力命令の実行に応答して前記チャネルの内容をテストし、そのチャネルが 、データ転送に含まれている他のプロセスが対応するプルグラム段階に達したこ とを示す値を含んでいないとすると、「記手段を動作させて現在のプロセスなデ スケジュールするための手段と、 を備え、前記チャネルはプロセスがそのチャネルを用いてデータ転送命令を実行 したかどうかを示す値を保持するための格納手段を備え、 通信手段は、出力プロセスかそれのプログラム順序中にただ1つの出力命令を要 求し、かつ入力プロセスがそれのプログラム順序中にただ1つの出力命令を侠求 するように構成され、それにより、そのようブエデータ通信を行うためには、い ずれかのプロセスが2回以上はデスケジュールされないようなマイクロコンピュ ータを提供するものである。
マイクロコンピータという用語は、一般に集積回路装置をペースとする小型コン ビーータを指すものであるが、コンビーータがどれほど小型であるかについての 制約は課すものではないことがわかるであろう。
スケジューリング手段は、プロセッサにより実行されている現在のプロセスを指 示する手段を含み、通信手段は、現在のプロセスがチャネル内容の前記テストの 結果としてデスケシ−ルされているものであれば、その現在のプロセスの識別を m1記チヤネルにロードする手段を含むようにすることが好ましい。
前記識別は、現在のプロセスのメモリ作業域のアドレスを識別するポインタ値に することが好ましい。
前記チャネルは複数のチャネルのうちの1つとし、各チャネルはアドレス可能な 格納場所を有するようにすると好適である。また、同じマイクロコンピュータで 実行されるプロセスの間でデータ伝送を行えるようにマイクロコンピュータを構 成することが好ましく、そのためにチャネルまたは各チャネルは記憶場所な有す るようにするとりい。異なるマイクロコンピュータで実行されるプロセスの間の 外部データ伝送を行えるようにマイクロコンピュータを構成することが好ましい 。この場合には、チャネルまたは各チャネルは、外部通信リンクの部分を構成す る第1のレジスタを有することができる。
好適な実施例においては、マイクロコンピュータは複数のチャネルを含む集積回 路装置を有する。それらのチャネルのうちのいくつかはレジスタとして構成され 、あるものは、プロセッサが構成されている集積回路と同じ集積回路上のメモリ 内の記憶場所により構成される。記憶場所により構成されるチャネルはなるべく 1語場所とする。
以下、ざx附図面を参照して本発明の詳細な説明する。
第1図はマイクロコンピュータの主な特徴を示すブロック図、第2図はマイクロ コンピュータにおけるメモリ作業域、レジスタ、メモリチャネルおよび直列リン クの構成を示し、第3図は1つのマイクロコンピュータにおけるプロセス間通信 中の2つの作業域場所と1つのメモリチャネルの一連の状態を示し、第4図は一 方のマイクロコンピュータから他方のマイクロコンピュータへプロセス間通信を 行えるようにする相互に7 接続された2つのマイクロコンピュータのネットワークを示し、第5図は2個の マイクロコンピュータの間のプロセス間通信中における第4図に示すマイクロコ ンピュータ中のプロセスレジスタとデータレジスタの一連の状態を示す。
この例で峻明するマイクロコンピュータは、プロセッサと、RAMであるメモリ と、外部通信を行わせるリンクとを有し、1つのシリコンチップに形成された集 積回路装置を有する。このマイクロコンピュータの主な要素が第1図にP形井戸 相補MOEI技術を用いている1つのシリコンチップ11上に示されている。中 央処理装置(cpo)12にある読取り専用メモリ(ROM)1.3が設けられ る。このROM13はメモリインターフェイス14に結合される。メモリインタ ーフェイス14はインターフェイス制御ロジックエ5により制御される。cpo 12は算術論理装置(ALU)と、レジスタと、データ路とを含む。それらのう ちのいくつかが第2図に示されている。c、po12とメモリインターフェイス 14はバス16に接続される。バス16はチップ11上の素子の間の相互接続を 行う。サービそ装置17に複数の入力ピン18が設けられる。このマイクロコン ピュータにはランダムアクセスメモリ(RAM)19とROM20が設けられる 。プロセッサー2が外部メモリなしに動作できるように、チップにおけるメモリ の容量はIXバイトより小さくない。なるべくチップ上のメモリは少くとも4に バイトにする。
外部メモリインターフェイス23が設けられ、必要に応じて設けられる外部メモ リへ接続するための複数のピン24に接続される。ネットワークを構成するため にマイクロコンピュータを他のマイクロコンピュータリンクの入力ピンと出力ピ ンは1本の紳により、非共用単向接続、他のマイクロコンピュータの直列リンク の対応する出力ピンと入力ピンに接続できる。各直列リンクはプロセス・スケジ ェーリングロジックを含む同期論理器10に接続される。
第10図に示すブロック図は前記ヨーロッパ特許出願No 833070712 と、特許出願昭和58年第221455号と、米国特許出願Nos 55260 1,552602.553027,553028,553029に含まれている ブロック図に対応する。説明の不必要なくり返えしを避けるために、そのマイク ロコンピュータの構造ト動作の詳細は以下には述べないが、上記諸特許出願にお ける説明を参考としてここに含ませている。
前記諸特許出願に記載されているように、cpo12は複′数のレジスタを含む 。それらのレジスタのうち下記のものが第2図に示されている。
略記号 レジスタ IB 現在のプロセス・プログラムからの命令なメモリから逐次受けるだめの命 令バッファ0 0REGTR命令バッファ30内の命令からとり出されたデータを受けるための オペランド・レジスタ31 WPTRREG 現在のプロセスの作業域ポインタ(WPTR)を保持するため のレジスタ32 IPTRREG 現在のプロセスのプログラム段階を示す命令ポインタ(IPT R)を保持するレジスタ3LPTRRIICG 実行されることを待っているプ ロセスのりストにおける最後のプロセスの作業域のポインタを保持するためのレ ジスタ34 AREGTRALUのためのオペランドを保持するための第1の(7I)レジス タ35 BRFiGTRALUのためのオペランドを保持するためにムR]IGGTRと のスタックとして構成される第2の(B)レジスタ36 c、 p oは算術論理装置37も含む。CPUの内容は相互に接続されて、マ イクロ命令ROM13(第4図参照)に保持されているマイクロプログラムの制 御の下に、データを前記レジスタとの間でやりとりできるようにする。ROM1 3は下記に定義した「入力」オペレーションと「出力」オペレーションに応答ス るように構成される。
第2図は、プロセスXのためにメモリ19に設けられて℃・る作業域領域40と 、プロセスYのための作業域領域41とを示すものである。各作業域は図示のよ うに複数のアドレス可能な場所を有する。それらの場所は、プロセスに関連する 複数の変数と、プロセッサによる実行を待っているプロセスの集りの中の次のプ ロセスのWPTRに対するポインタとともにそのプロセスが次に再スケシ−ルさ れた時に、そのプロセスのためのプログラム段階を指示する値IPTRとを保持 するように構成される。第2図は4つのメモリチャネル50.51,52.53 も示す。各メモリチャネルはメモリ19内に1語アドレス可能な場所を含む。チ ャネルの数は4に限定されず、必要に応じて任意の数のチャネルを設けることが できることがわかるであろう。
第2図は直列リンクレジスタが設けられていることも示す。各リンクレジスタは メモリチャネルまたは他の記憶場所と同様にしてアドレスできる。各直列リンク 25は入力データレジスタ60と、入力プロセス・レジスタ61と、出力データ レジスタ62と、出力プロセス・レジスタ63とを含む。第4図は、相互に接続 されたマイクロコンピュータlla、llbを有するネットワークを示す。簡単 にするため゛に、それらの各マイクロコンピュータではただ1つの直列リンクが ブロックで示されている。各リンクの出力プロセス・レジスタが出力チャネルを 形成する。その出力チャネルには出力データレジスタと出力制御ローシック70 が組合わされる。出力制御ロジック70は出力制御状態マシン71と出力データ 状態マシン72を含む。入力プロセスレジスタは入力チャネルを形成する。その 入力チャネルには入力データレジスタと入力9i(j 御ロジック73が組合わ される。入力制御ロジック73は入力制御状態マシン74と入力データ状態マシ ン75を含む。
制御ロジック70.73と制御状態マシンおよびデータ状態マシンは、制御状態 マシンの一連の状態を除き、前記諸特許出願に記載されているようにして構成さ れ、動作させられる。それKついては以下に説明する。
第4図かられかるように、出力データレジスタ62は出力ピン80に接続される 。その出力ピン80は1本の非分割単向線81により入力ピン82に接続される 。その入力ビン82は入力データレジスタ66に接続される。同様に、出力デー タレジスタ64は出力ピン83と、1本の非分割単向線84を介して入力ピン8 5に接続される。その入力ビン85は入力データレジスタ60に接続される。
各プロセスのためのプログラム系列は、前記諸特許出願に記載されている諸機能 と諸i作を含む一連の命令を含む。
同じマイクロコンピュータにおけるプロセスの間、または異なるマイクロコンピ ュータのプロセスの間のメツセージ伝送を行うために、前記諸特許出願は、オペ レーションリスト中でコード番号11を有する「同期」と呼ばれるオペレーショ ンを用いる。
ここで説明している実施例は、通信を処理するためのプロセス中により少いオペ レーションを使用すること、および前記諸特許出願のチャネル40〜43が2語 場所′を有しているのに対して、前記各チャネル50〜53が1語場所のみを有 するために通信チャネルの実現に必要な記憶スペースが少いことにょら、性能が 向上した改良したマイクロコンピュータを提供するものである。それらの変更は 、ここで説明している例においては、マイクロコンピュータが「1nput」、 「outputJという標題が付けられている付加オペレーションに応答するよ うに構成することによって行われる。それらの付加オペレーションは前記諸特許 出MEおいて与えられているオペレーションのリストニ加えることができる。そ れらの付加オペレーションにはコード番号16.17を付けることができる。英 国所在のインモス社(工n mos Lim1.tea)により1983年に出 版および配布された[プログラミング・マニュアル(Programming  Manual)−ocOAM Jという標題の小冊子と、エレクト四二りス(I C1’ec−tronics)誌(1982年11月31日号)所載の「プロセ ス向は言語は分散処理の需要に適合する(Process−Oriented  Language MeetsDemands of Distributed  Processing3 )」という論文(参考のためにそれらをここに含めた)K記憶されているOOC AM言語記法を用いて、オペレーション[outputJ、「1nputJ お よび手続き「vra i t ()J、「run(OREG)Jは次のように定 義される。
/ / 2 0REG := memory (AREG、13 工F 4 0REC= READY 9 0REG−疋L 10 3EQ 14 TRUE 15 3EQ 4 0REG=READY 12 TR1JE 手続き「wa目(月は次のように定義されるPROCwalt () 2 memory cWPTR−1) :、=工PTR3for each e xternal 1nput request from a linkg f or each external output recr、xest fr om a 1ink手続き「run(ORFJG) Jは次のように定義される PROCrun (ORF、G ) 2 0REGぐ>READY 6 α妊り±m苑DY 7 8KIP 上記のように、出力制御状態マン771と入力制御状態マシン74の一連の状態 は、下記の一連の状態表に従って前記諸特許出願に記載されているものを変更す る必要がある。
/ 7 waitsched Pregready waitdata次に、プロセスが 入力命令と出力命令でどのようにして動作するかについて説明する。それらの命 令は、同じマイクロコンピュータまたは異なるマイクロコンピュータにおけるプ ロセス間通信に等しく適用できる。
4・ずれの場合にも、プロセスはメツセージ伝送に使用するためのチャネルを職 別し、そのチャネルはメモリチャネル(50〜53のよう)のアドレス、または プコセス・レジスタ(61または63のような)により与えられる直列リンクの アドレスを有する。入力と出フおよび手続きwaitとrunについての前記の 定義においては、参照を容易にするために行番号を定義の各段につけ加えている が、それらの行番号は定義の部みではない。入力命令と出力命令においては、1 行目ニー達の事象が起き、そtらの事象のうちの最初のも〕が行番号2で定義さ れることを示している。通信にH用されるチャネルのアドレスは、表現memo ry (RRG)がそのチャネルを識別するようにARIGTR5にロードされ る。そのチャネルの内容は、そのチネルの状態を決定するためにそのチャネルの 値がマクロコンピュータによりテストされるように、0RETR31にロードさ れる。入力命令と出力命令におい3行目は、0RRGTRの内容のテストの結果 に応じ追従できる枠々の代りのものを示す。ORE、GTRの容は、第1の特殊 な値NIL、または第2の特殊な値凡ADY、あるいはそのチャネルを用(・て データ伝送を行うために命令を既に実行しているデスケジュールされているプロ セスの作業域ポインタを表す第3の特殊な値を既に保持していることを示すこと ができる。
出力命令の場合には、チャネルのテストにより特殊な値N工りが見出されたとす ると、プロセッサは出力命令の行11.12.13に示されているシーケンスを 実行する。そのチャネルが第2の特殊な値READYを含んでいるとすると、出 力定義の6.7.8行に指定されているシーケンスをプロセッサが実行する。一 方、デスケジュールされたプロセスの作芸域ポインタをチャネルが保持している ことが見出されたとすると、それは14行における条件TRUEを表すから、プ ロセッサは出力定義の16.17.18として述べられている3行のシーケンス を実行する。同様に、入力命令の実行において、チャネルが特殊な値READY を有することが0RBGTRのテストにより示されたとすると、プロセッサは入 力定義の6,7行に示されているオペレーションを行う。チャネルが特殊な値N IL を有すると、プロセッサは入力定義の10.11行に示されている命令を 実行する。チャネルがデスケシ−ルされたプロセスの作業域ポインタを有する時 は、プロセッサは入力定義の14〜16行に示されている命令をこの場合には、 メツセージ通信において使用すべきチャネルは、1語場所のような単一アドレス を有する複数のビット位置を有する単一の記憶場所である。後で説明するように 、そのチャネルは、デスケジュールされたプロセスの第1の特殊な値N工りまた はWPTRを含むことができるだけである。これについて、同じコンピュータに おけるプロセスYとチャネル50を介して通信することを望んでいるプロセスX と、ソノプロセスYとの間のメツセージ伝送について次に説明する。第2図に示 すのと同じ記憶場所アドレスを用いて、プロセスXは変数のための作業域場所9 0を有し、プロセスYは変数のための作業域場所91を有する。チャネル50は 第2図に示されているのと同じアドレスを有する。チャネル50はメモリ内の単 一語であって、1時に2つの、そしてただ2つのプロセスにより共用される単向 通信チャネルを構成する。プロセスXが出力命令を実行するものとすれば、プロ セスXはチャネル50のアドレスをまず識別してチャネル50のアドレスをAR EGTR[o−ドし、伝送すべきデータをBREGTHにロードする。プロセス Xによる出力命令の実行においては、チャネル50の内容がテストされ、第3図 に従って第1の特殊な値N工りを表すことが見出される。第3図は下添え字a、 b、cをそれぞれ添えられた一連の段階を示し、条件NILは5(MLで表され ている。そのチャネルはデータを受けることを待っているプロセスYの作業域ポ インタを有しないから、出力定義の11〜13行が続き、したがってプロセスX はデータなりRBGTRからそれ自身の作業域(90bで示されている)の場所 90へ転送させ、それの作業域ポインタがチャネルにロードされる(50bで示 すように)。それから、プロセスXはプわセスYヲfスケシ−ルする[wait J 手続きを実行する。ここで、プロセスYがデータを入力できるようになるま で待つ。プロセスYがそれのプログラムの対応する段階に近づくと、プロセスY はチャネル50を識別してチすネル50のアドレスをARRGTHにロードし、 入力定義の実行行2,3においてチャネル50内にプロセスXの作業域ポインタ を置く入力命令を実行する。これは入力定義の12行における条件TRONj  に適合するから、プロセスYは入力定義の14〜16行を実行する。これにより 、プロセスXの作業域場所90に格納されているデータが、910に示されてい るように、プロセスYの場所91に複写される。また、それにより、50Cで示 されているように、第1の特殊な値N工りがチャネル50にロードされる。それ から、プロセスXのための「実行(run)J手続きを行わせ、それによってプ ロセスXをプロセス・オペレーションを待っているリストの終りに加える。これ は第3図に示すシーケンスの終りに示されている位置であって、プロセスYは割 込みなしで継続され、プロセス又はリストにおいて待っている。
手続きの定義かられかるように、定義の2行目 [waitJはプロセスの現在 のプログラム段階の指示を、そのプロセスのための作業域ポインタから1だけず れている(第2図の92で示すように)作業域場所に格納させる作用を行う。[ waitJ の定義の3〜13行は外部通信を指すものである。[wa i t J の定義の144行目WPTRRIG32に、実行を待っているリスト上の次 のプロセスへのポインタ(場所93からとり出される。その場所93は、第2図 に示すように、WPTR場所からオフセット2を有する)をロードさせ、155 行目、そのプロセスが現在のプロセスとなると、直ちにそのプロセスのプログラ ム段階指示をレジスタ33にロードする。「run」の定義かられかるように、 2行目は2つの別の状況の可能性について述べているものである。それらの状況 のうちの第1のものは2行目における条件であって、それにおいてはORE;G TRの内容はREADYではない。その場合には、4.5行目のクーケンスが続 く。あるいは、0REGTRは6行目に示されているように値READYを有す る。
この場合には何の動作も行われない。これは外部通信において起る。これについ ては後で説明する。実行(run)の定義の4行目の効果はスケジュールすべき プロセスをリストの終りに加えて、そのリストの最後として現在示されているプ ロセスの作業域に格納されているそれの作業ポインタに加えることである。これ は、第2図のアドレス10998に示されているように、プロセスのWPTRか らオフセット2の所において行われる。run の定義の5行目に従って、スケ ジュールされているプロセスのWPTRはLPTRRIG 34 に入れられて 、いまはそれがリストの最後のものであることを示す。
第2の特殊な値[READYJ は異なるマイクロコンピュータにおけるプロセ スの間の通信に適用できるだけである。これについては以下に説明する。
異するマイクロコンピュータにおけるプロセス間の通信これについては、メツセ ージを線81を介してマイクロコンピュータIl’bにおける入力プロセスYへ 送るマイクロコンピュータIlaにおける出力プロセスXを表す第5図に示され ているシーケンスを参照して説明する。第5図において、レジスタの連続スる段 に下添字a % (lが添えられる。外部通信が同一の入力オペレーションと出 力オペレーションを用いて全体として類似のやり方で行われる。もつとも、直列 リンクのための制御四シックはプロセス・レジスタを第2の特殊な値READY にセットでき、かつそれらの直列リンクは、デスケジュールされた任意のプロセ スをスケジュールするために、入力要求または出力要求を線94゜95を介して 各マイクロコンピュータのcpo 12へ与えることもできる。制御状態マシン からの出力を示す表かられかるように、各出力プロセス・レジスタはREADY にリセットされ、各入力プロセス・レジスタは通常はNIL にリセットされる 。これは、第5図のレジスタ63aとレジスタ67aに対して示す東件である。
プロセスXかデータを出力するためには、プロセスXはチャネル(この場合には 出力プロセス・レジスタ63である)のアドレスなAREGTHにまずロードし 、かつ出力すべきデータをB、REGTHにロードする。出力命令の実行におい てチャネルの内容は0RBGTRにロードされ、テストされて、第5図に63a で示すように、これは、出力制御状態マシン71によりひき起されたリセット状 態のために、第2の特殊な値RBADYを検出する。データレジスタ62仝はE MPTYとして示されている。これは関連するデータがまだレジスタにロードさ れていないことを示すものである。
データレジスタに記入されているEMPTYという語は、そのレジスタの内容が 意味を持たないことを意味することがわかるであろう。出力命令の定義に従って 、その定義の6.7.8行はデータをBRBGTRかも出力データレジスタ62 へ転送させる。というのは、これはプロセス・レジスタ63から1だけオフセッ トされているアドレスを有し、プロセスXの作業域ポインタをチャネル6311 C格納して、プロセメxをデスケジュールする[waitJ 手続きを実行する 。これは第5区で631)、62bにおいて示されている位置である。
出力制御ロジック70は、状態マシンの状態変化のために、データを線81に沿 ってマイクロコンピュータ111)の入力データレジスタ66に出力させる。第 5図のために、プロセスYは、データレジスタ66内のデータを受ける前に、入 力命令を既に実行していたと仮定する。プロセスYが入力命令を実行した時には 、プロセス・レジスタ67は特殊な値NIL を保持している。というのは、こ れは制御状態マシンの動作によりひき起されるリセット状態だったからである。
プロセスYはそのチャネル内の値をテストし、NILを見つけると入力定義の9 ,10行目を実行する。いいかえると、プロセスYの作業域ポインタはプロセス ・レジスタ67にロードされており、プロセスYはWait手続きによりデスケ ジュールされている。これは第5図の67tl、6611に示す位置であり、か つデータが線81を介して入力データレジスタ66に受けられた時の位置と仮定 される。それから、マイクロコンピュータ11bにおける入力制御ロジック73 がデータの受信により状態を変え、CP012に対する入力要求をマイクロコン ピュータ111)の線94に生ずる。これの効果を理解するためには、手続き[ waitJ の定義の3〜7行を考察する必要がある。マイクロコンピュータI lbにより実行されるあるプロセスがwait手続きによりデスケジュールされ ると、マイクロコンピータ111]のCPUは、手続き[waitj の定義の 3行目により要求されるように、直列リンクから任意の外部入力要求を探す。も し入力要求がなければ、cpaは定義の9行目へ移動して、そこで任意の外部出 力要求を探す。「waitJ の定義においては、1ink(process〕 は直列リンクのプロセス・レジスタの内容を示し、11nk[data]は直列 リンクのデータレジスタの内容を示す。CPUは、待機リストにおける次のプロ セスを実行する前に、線94.95上の任意の入力要求または出力要求をサービ スする。いまの場合には、マイクロコンピュータ111)の01口 12がプロ セスの実行を次に止めると、cpoはチャネル67からの入力要求を見出し、そ れによりCPUは手続き「wa i tJ の定義の5〜8行を実行させられる 。
これは、5行と8行のために、プロセスYがリスケジューリングされ、6行が6 7bで示されているように値N工りをプロセスレジスタにロードさせ、7行が入 力データレジスタ66からのデータをプロセスYの作業域へ転送させるという効 果を有する。また、入力制御ロジック73は出力信号を出力制御ロジックへ与え る。その出力制御ロジックは出力チャネ/I/65に確認応答信号を線84を介 してマイクロ“コンピュータ11aへ送らせる。マイクロコンピュータllaの 入力制御四シック73は出力を出力制御ロジック70へ与えて、マイクロコンピ ュータ111)のCPU 12に出力要求をさせる。マイクロコンピュータll &のプロセッサが現在のプロセスを次にデスケシ−ルすると、そのプUセッサは 、前記したように、リンクロジックから任意の入力要求または出力要求を探し、 出力レジスタ63に関連するロジックから出力要求を見出すから、手続き「wa itJ の定義の11〜13行に定義されているシーケンスに従う。このために プロセスXの作業域ポインタが0RIICGTHにロードされ、特殊な値RFi ADYがプロセス・レジスタ63にロードされて、プロセスXが再スケジュール される。このシーケンスにおいては、出カプロ七スとデータレジスタ63.62 は第5図に下添字a、b、cで示されている変化を行い、入力プロセスとデータ レジスタは第5図に下添字a % dで示されているシーケンスを行う。
上記の例において、プロセスYが入力命令を実行する前にデータが線81を介し てマイクロコンピュータ111)の入力データレジスタ66へ転送されていたと すると、マイクロコンピュータ111)の入力制御ロジックが、入力制御状態マ シンに対する上記の表に従って、プロセスYにより行われる入力命令の以後の実 行が特殊な値RBADYを置き、かつプロセスYが入力の定義の6,7行に従っ てシーケンスを実行するように、入力プロセス・レジスタ67の値を特殊な値R EADYに変える。このことは、データが入力データレジスタ66からプロセス Yの作業域へ転送され、特殊な値NILがプロセス・レジスタ67にロードされ て、プロセスYが割込みなしに継続することを意味する。
上記の精側においては、両方のプロセスがそれぞれのプログラム系列における対 応する段階にある時に、プロセス間の通信を行うようにマイクロコンピュータは 構成される。一方のプロセスが対応する状態にない時に他方のプロセスがデータ を送ろうとしたとすると、両方のプロセスが対応する状態になるまでは、伝送を 行おうとするプロセスは保持される。通信に関与する各プロセスは、データ伝送 を行うためにいずれのプロセスも2回以上はデスケジュールされないように、そ れぞれのプログラム系列においてただ1つの入力命令または出力命令を要求する 。更に1同じマイクロコンピュータにおけるプロセスの間の通信を行うために、 通信チャネルにより占められる記憶スペースは、各チャネルごとにメモリのただ 1つの語を要求するので、狭くなる。入力命令と出力命令は作業域の場所をアド レスすることを認める。これは、プロセス間通信を行わせるために要求される命 令またはオペレーションの数が減少し、かつプロセス作業域場所へのデータのよ り効率的な伝送を行えるようにするから有利である。
図面の簡単な説明 浄書(内容に変更なし) 国際調査報告

Claims (1)

  1. 【特許請求の範囲】 1.メモリと、複数の同時プロセスを実行するように構成されたプロセッサとを 備え、前記各プロセスはプロセッサにより逐次実行するための複数の命令より成 るプログラムに従い、各命令はプロセッサにより実行されるべくめられている機 能を指定し、前記プロセッサは(1)複数のレジスタと、それらのレジスタとの 間のデータの転送に使用するためのデータ転送器と、(2)各命令を受け、その 命令に関連する値をプロセッサ・レジスタの1つにロードするための手段と、( 3)受けた各命令に応答して前記データ転送器と前記レジスタを制御し、プロセ ッサを命令に従って動作させる制御器と、を備えるマイクロコンピュータにおい て、 (a)プロセッサがそれの処理時間を複数の同時プロセスの間で分割できるよう にするためのスケシ−リング手段と、 (b)2つのプロセッサがそれぞれのプログラム順序中の対応する段階、すなわ ち、それのプログラム中の出力命令に応答してデータを出力するように動作する 出力プロセスと、それのプログラム中における入力命令に応答してデータを入力 するように動作する入カブ四セスとである段階にある時に一方のプロセスから他 方のプロセスへデータの転送を行えるよ0 うにする通信手段と、 を備え、前記スケジューリング手段は、(1)プログラムによるコレクション待 機実行を形成する1つまたはそれ以上のプロセスを識別するための手段と、 (11)現在のプロセスに割込むことによりプロセスをデスケシ−リングするた めの手段と、(1i)プロセスに前記コレクションを加えることによりそのプロ セスをスケジユーリングするための手前記通信手段は、 (1)チャネルと、 (−)データ転送に含まれている1つのプロセスが前記チャネルの内容をテスト するための現在のプロセスである時に、前記1つのプロセスによる入力命令また は出力命令の実行に応答して前記チャネルの内容をテストし、そのチャネルが、 データ転送に含まれている他のプセセスが対応するプログラム段階に達したこと を示す値tで含んでいないとすると、前記手段を動作させて現在のプロセスをデ スケシ−ルするための手段と、 を備え、前記チャネルはプロセスがそのチャネルを用いてデータ転送命令を実行 したかどうかを示す値を保持するための格納手段を備え、 通信手段は、出力プロセスがそれのプログラム順序中にただ1つの出力命令を要 求し、かつ入力プロセスがそれのプログラム順序中にただ1つの出力命令を要求 するように構成され、それにより、そのようなデータ通信を行うためには、いず れかのプロセスが2回以上はデスケジー−ルされないことを特徴と−rるマイク ロコンピュータ。 2、請求の範囲第1項記載のマイクロコンピュータであって、スケジェーリング 手段はプロセッサにより実行されている現在のプロセスを示すための手段を含み 、通信手段は、現在のプロセスがチャネルの内容の前記テストの結果としてデス ケジュールされるものとすると、その現在のプロセスの諧別を前記チャネルにロ ードするための手段を含むことを特徴とするマイクロコンピュータ。 3、請求の範囲第3項に記載のマイクロコンビーータであって、前記メモリは、 プロセスに関連する変数を記録するための場所を含む複数のアドレス可能な場所 を有する作業域を各プロセスに与え、前記プロセッサ・レジスタの1つは、現在 のプロセスの作業域のアドレスを識別する作業域ポインタ値を保持するために構 成されることを特徴とするマイクロコンビニーり。 4、請求の範囲第3項に記載のマイクロコンピュータであって、前記チャネルに ロードすべき前記識別は前記作業域ポインタ値であることを特徴とするマイクロ コンピュータ。 5、請求の範囲第1〜4項のいずれかに記載のマイクロコンピュータであって、 前記チャネルは複数のチャネルのうちの1つであり、各チャネルはアドレス可能 な格納場所を備えることを%徴とするマイクロコンピュータ。 6L 請求の範囲第1〜5項のいずれかに記載のマイクロコンピュータであって 、通信手段は、同じマイクロコンピュータで実行されるプロセスの間でデータ伝 送を行わせるように構成され、前記チャネルは記憶場所を備えることを特徴とす るマイクロコンピュータ。 7、請求の範囲第6項に記載のマイクロコンピュータであって、このマイクロコ ンビーータは集積回路装置を含み、チャネルはプロセッサの集積回路装置と同じ 集積回路装置上のメモリ内に記憶場所を有することを特徴とするマイクロコンビ ーータ。 8、請求の範囲第6項または7項に記載のマイクロコンピュータであって、チャ ネルを形成する格納手段は、別の記憶場所のアドレスを保持するために必要なビ ットサイズに等しいビットサイズを有する1つの記憶場所より成ることを特徴と するマイクロコンピュータ。 9、請求の範囲第2〜8項のいずれかに記載のマイク3 四コンヒーータであって、チャネルの内容をテストするための手段は、前記チャ ネル内のデスケジュールされたプロセスの識別を検出した時に、前記識別により 識別されたプロセスをスケジュールする前記手段を動作させるように構成される ことを特徴とするマイクロコンピュータ。 10、請求の範囲の第6〜9項のいずれかに記載のマイクロコンピュータであっ て、前記通信手段は、現在のプロセスに関連する第1の記憶場所に、その現在の プロセスが、出力命令の実行に続く前記チャネルの内容についてのテストの結果 としてデスケジュールされるようKなったとすると、現在の出力プロセスにより 出力すべきデータを格納するように構成されることを%徴とするマイクロコンピ ュータ。 11、請求の範囲第10項に記載のマイクロコンピュータであって、デスケシ− ルされたプロセスに関連する前記第1の記憶場所に関連するプロセスの指示を前 記チャネルに置く入力プロセスによる入力命令の実行に応答して、前記第1のメ モリからの格納されているデータを現在の入力プロセスに関連する第2の記憶場 所へ転送するための手段を含むことを特徴とするマイクロコンピュータ。 12、請求の範囲第6〜9項のいずれかに記載のマイクロコンビーータであって 、前記通信手段は、チャネルを用いて入力命令を実行した結果として入力プロセ スがデスケシ−ルされたとすると、現在のプロセスにより同じチャネルを通じて 出力されたデータを、その入力プロセスに関連する記憶場所に格納するように構 成されることを特徴とするマイクロコンピュータ。 13、請求の範囲第4項または第8項に記載のマイクロコンピュータであって、 各チャネルは、デスケジュールされたプロセスに対する作業域ポインタ値、また はそのチャネルを用いて入力命令または出力命令をどのプロセスもまだ実行して いないことを示す第1の特殊な値を保持するように構成され、そのチャネルを用 いてデスケジュールされた出力プロセスに関連する記憶場所に出力データを格納 するため、および、入力プロセスによる入力命令の実行徒に、入力プロセスに関 連する記憶場所に入力データを格納するための手段が設けられることを特徴とす るマイクロコンピュータ。 14、請求の範囲第1〜5項のいずれかに記載のマイクロコンピュータであって 、通信手段は、種々の々イク四コンピュータで実行されたプロセスの間での外部 データ伝送を行えるように構成され、前記チャネルは外部通信リンクの部分を構 成する第1のレジスタを備えることを特徴とするマイクロコンピュータ。 15、請求の範囲第14項に記載のマイクロコンピュータであって、各外部通信 リンクは出力チャネルと入カチャネルを有し、各チャネルはそのリンクを通じて 出力または入力させるデータを保持するための第2のレジスタを含むことを特徴 とするマイクロコンピュータ。 16、請求の範囲第14項または第15項に記載のマイクロコンピュータであっ て、リンクの各レジスタは記憶場所としてアドレス可能であることを特徴とする マイクロコンピュータ。 17、請求の範囲第14〜16項のいずれかに記載のマイクロコンピュータであ って、入力プロセスにより使用するためフリンジの第1のレジスタに、どのプロ セスもそのチャネルを用いて入力命令をまだ実行していないことを示す第1の特 殊な値、またはそのチャネ3Q用いて入力チャネルを実行した後でデスケジュー ルされるプロセスの指示をロードするための手段が設けられることを%徴とする マイクロコンビ瓢−タ。 18、請求の範囲第15項または第17項に記載のマイクロコンピュータであっ て、入力チャネルの第2のレジスタ内のデータの受信に応答して、前記第2のレ ジスタ内のデータの受信前に入カプキセスがそのチャネルを用いて入力命令を実 行しなかったとすると、その入力チャネルの前記第1のレジスタに第2の特殊な 値をロードするための手段が設けられることを慣徴とするマイクロコンピュータ 。 19、請求の範囲第14〜16項のいずれかに記載のマイクロコンピュータであ って、入力プロセスにより使用するための第1のレジスタに、どのプロセスもそ のチャネルを用いて入力命令をまだ実行していないことを示す特殊な値、または そのチャネルを用いて入力チャネルを実行した後でデスケシ−ルされるプロセス の指示をロードするための手段が設けられることを特徴とするマイクロコンピュ ータ。 20、請求の範囲第15項または第19項に記載のマイクロコンピュータであっ て、通信手段はリンクの第1のレジスタ内に前記特殊な値の検出に応答して、出 力命令を実行するならば現在のプロセスなデスケジュールし、かつ送るべきデー タをリンクの第2のレジスタにロードすることを特徴とするマイクロコンピュー タ。 21、請求の範囲第15項または第18項に記載のマイクロコンピュータであっ て、通信手段は、リンクの前記第1のレジスタの中の前記第1の特殊な値の検出 に応答して、入力命令を実行するならば現在のプロセスなデスケジュールし、か つそσプロセスの指示を前記第1のレジスタにロードすることを特徴とするマイ クロコンピュータ。 22、請求の範囲第18項または第21項に記載のマイクロコンピュータであっ て、通信手段は、リンクの前記泥1のレジスタ内の前記第2の特殊な値の入力プ ロセスによる検出に応答して、リンクの第2のレジスタからのデータを入力プロ セスに関連する記憶場所へ転送し、かつプロセッサが入力プロセスのプログラム 順序の実行を継続できるようにすることを特徴とするマイクロプロセッサ。 23、請求の範囲第15〜22項のいずれかに記載のマイクロコンピュータであ って、通信手段はリンクの前記第2のレジスタからのデータを、第1のマイクロ コンピュータにおける入力プロセスに関連する記憶場所へ転送する手段と、第2 の相互に接続されているマイクロコンピータにおける出力プロセスへ送るための 確認応答信号を発生する手段とを含むことを特徴とするマイクロコンピュータ。 24、請求の範囲第23項に記載のマイクロコンピュータであって、各リンクは 、リンクの入力チャネルに関連する第2のレジスタによるデータまたは確認応答 信号に応答して、リンクを構成しているマイクロコンピュータのプロセッサへの 要求信号を発生し、任意のプロセスをスケジュールし、そのプロセスはそのリン クの第1のレジスタの内容に従ってデスケジュールされることを特徴とするマイ クロコンピュータ。 25、請求の範囲第24項に記載のマイクロコンピ−タであって、前記制御器は プログラムされた出力信号列を有するプログラムされた論理アレイ装置を有する ことを特徴とするマイクロコンピータ。 26、請求の範囲第3項または第8項に記載のマイクロコンピュータであって、 各チャネルは、どのプロセスもそのチャネルを用いて入力命令または出力命令を まだ実行していないことを示す特殊な値を、またはそのチャネルを用いて入力命 令または出力命令を実行した後でデスケジュールされるプロセスの作業域アドレ スを示すポインタを保持するために構成されたメモリ内の1つのアドレス可能な 語場所を備えることを特徴とするマイクロコンピュータ。 27、請求の範囲第26項に記載のマイク四コンピ−タであって、出力プロセス の作業域内のアドレスからのデータを、入力命令または出力命令を実行する現在 のプロセスが、デスケシ−ルされたプロセスの作業域へのポインタを前記チャネ ル内に置くことなしに、入力プロセスの作業域内のアドレスへ転送するための手 段を含むことを特徴とするマイクロコンピュータ。 28、入力命令と出力命令の実行によりデータ伝送を行えるようにするために相 互に接続された請求の範囲第1〜27項のいずれかに記載の複数のマイクロコン ピュータを備えることを特徴とするマイクロコンピュータネットワーク。 29、データ伝送が行われた時に、マイクロコンピュータで実行される2つのプ ロセスのプログ5b順序における対応する段階にお〜・てプロセスを実行できる ようにするチャネルとして、アドレス可能な記憶場所が用いられる、マイクロコ ンピュータで実行される2つのプロセスの間でデータ伝送を行う方法において、 (1)プログラムステップの順序に従って現在のプロセスを実行する過程と、( II)どのプロセスがプロセッサによる実行を待っているかを示す過程と、(I ll)データの伝送を望んでいるプロセスにより出力命令を実行する過程と、を 備え、プロセッサは出力命令に応答して、(a)データ伝送のために使用すべき チャネルのアドレスを識別し、かつ(b)チャネルを通じる入力を待っているデ スケジュールされたプロセスの標識、またはチャネルの使用をプロセスは待って いないことを示す特殊な値のいずれをも検出するために前記チャネルの内容をテ ストし、(C)前記特殊な値に応答して、伝送すべきデータを、そのプロセスに 関連するメモリの領域に格納し、かつそのプロセスの標識をチャネルにロードし 、および現在のプロセスをデスケシー−リングし、((1)待っているプロセス の標識に応答して、伝送すべきデータを、待っているプロセスに関連するメモリ の領域へ転送し、前記特殊な値をチャネルへロードし、待っているプロセスをプ ロセッサにより実行するために再スケジュールさせることを特徴とするマイクロ コンピュータで実行される2つのプロセスの間のデータ伝送を行う方法。 30、請求の範囲第29項に記載のデータ伝送を行う方法であって、データの受 信を望んでいるプロセスが入力命令を実行し、プロセッサは入力命令に応答して 、(IL)データ伝送のために使用すべきチャネルのアドレスを識別し、(1) )前記チャネルの内容が、チャネルを通る出力を待っているデスケジュールされ たプロセスの標識であるか、またはチャネルの使用ヲ待っているプロセスがない ことを示す特殊な値であるかを検出するために前記チャネルの内容をテストし、 (0)前記特殊な値に応答して、そのプロセスの標識をチャネルにロードし、現 在のプロセスなデスケジュールし、(d)待っているプiセスの標識に応答して 、待っているプロセスに関連するメモリの領域から伝送すべきデータを、現在の プロセスに関連するメモリの領域へ転送し、前記特殊な値をチャネルにロードし 、待っているプロセスをプロセッサにより実行するために再スケジュールさせる ことを特徴とするデータ伝送を行う方法。
JP59501680A 1983-04-11 1984-04-11 プロセス間通信を行うマイクロコンピュータ及びマイクロコンピュータシステムにおける複数の同時プロセスを動作させる方法 Expired - Lifetime JP2669816B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB838309770A GB8309770D0 (en) 1983-04-11 1983-04-11 Microcomputer
GB8309770 1983-04-11

Publications (2)

Publication Number Publication Date
JPS60501382A true JPS60501382A (ja) 1985-08-22
JP2669816B2 JP2669816B2 (ja) 1997-10-29

Family

ID=10540902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59501680A Expired - Lifetime JP2669816B2 (ja) 1983-04-11 1984-04-11 プロセス間通信を行うマイクロコンピュータ及びマイクロコンピュータシステムにおける複数の同時プロセスを動作させる方法

Country Status (6)

Country Link
US (1) US4692861A (ja)
EP (1) EP0125044B1 (ja)
JP (1) JP2669816B2 (ja)
DE (1) DE3468759D1 (ja)
GB (1) GB8309770D0 (ja)
WO (1) WO1984004188A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
CA1244555A (en) * 1985-06-17 1988-11-08 Walter H. Schwane Process transparent multi storage mode data transfer and buffer control
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
CA1244142A (en) * 1985-06-17 1988-11-01 William E. Hammer Distributed data management mechanism
US4831518A (en) * 1986-08-26 1989-05-16 Bull Hn Information Systems Inc. Multiprocessor interrupt rerouting mechanism
JPH0640324B2 (ja) * 1989-10-26 1994-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプロセス同期方法
US5212790A (en) * 1990-11-28 1993-05-18 Teknekron Communications Systems, Inc. Method of programming a task, having a plurality of processes, created by a plurality of different programmers, for operation by a computer
JP2516317B2 (ja) * 1992-10-13 1996-07-24 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理システムとディジタル信号プロセッサへのロ―ディング方法
US5625845A (en) * 1992-10-13 1997-04-29 International Business Machines Corporation System for facilitating continuous, real-time, unidirectional, and asynchronous intertask and end-device communication in a multimedia data processing system using open architecture data communication modules
GB2273591A (en) * 1992-12-18 1994-06-22 Network Systems Corp Microcomputer control systems for interprogram communication and scheduling methods
US6539435B2 (en) * 1995-06-21 2003-03-25 International Business Machines Corporation System and method for establishing direct communication between parallel programs
US5859981A (en) * 1995-07-12 1999-01-12 Super P.C., L.L.C. Method for deadlock-free message passing in MIMD systems using routers and buffers
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities 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
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
US7454758B2 (en) * 2004-02-05 2008-11-18 Aol Llc, A Delaware Limited Liability Company Inter-process communication on a computer
US8032354B2 (en) * 2007-12-27 2011-10-04 Nvidia Corporation Method and system for communicating between two independent software components of a device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5418640A (en) * 1977-07-08 1979-02-10 Ibm Computer system
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3805247A (en) * 1972-05-16 1974-04-16 Burroughs Corp Description driven microprogrammable multiprocessor system
FR2253428A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4056846A (en) * 1976-06-30 1977-11-01 Ibm Corporation Data processing system with apparatus for sharing channel background processing
US4155117A (en) * 1977-07-28 1979-05-15 International Business Machines Corporation Synchronizing channel-to-channel adapter
US4433376A (en) * 1978-10-31 1984-02-21 Honeywell Information Systems Inc. Intersystem translation logic system
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
US4466058A (en) * 1981-10-02 1984-08-14 Ncr Corporation Method and apparatus for establishing priority between processing units having a common communication channel
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5418640A (en) * 1977-07-08 1979-02-10 Ibm Computer system
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor

Also Published As

Publication number Publication date
GB8309770D0 (en) 1983-05-18
US4692861A (en) 1987-09-08
EP0125044B1 (en) 1988-01-13
EP0125044A1 (en) 1984-11-14
JP2669816B2 (ja) 1997-10-29
WO1984004188A1 (en) 1984-10-25
DE3468759D1 (en) 1988-02-18

Similar Documents

Publication Publication Date Title
JPS60501382A (ja) プロセス間通信を行うマイクロコンピュ−タ
US4953082A (en) Master processor providing tokens to dataflow processor for controlling instructions execution and data store operation
CA1184311A (en) Peripheral interface adapter circuit for use in i/o controller card having multiple modes of operation
JP2502960B2 (ja) マイクロコンピュ−タ、ならびにマイクロコンピユ−タおよびマイクロコンピユ−タ・ネットワ−クを動作させる方法
US4675806A (en) Data processing unit utilizing data flow ordered execution
CA1214566A (en) Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor
JPS646488B2 (ja)
EP0165517A2 (en) Emulator for non-fixed instruction set VLSI devices
JPH0283601A (ja) プログラマブル・コントローラ
JPS5841538B2 (ja) マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
EP0239078B1 (en) Register saving/restoring system
US4479178A (en) Quadruply time-multiplex information bus
US4259718A (en) Processor for a data processing system
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
CA1302580C (en) Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JP2594562B2 (ja) プログラマブル・コントローラ
JP2550605B2 (ja) ベクトル命令処理システム
US7096346B2 (en) Microprocessor having instructions for exchanging values between two registers or two memory locations
JPH0425581B2 (ja)
JPS62166451A (ja) 論理装置の履歴解折装置
JPS6022383B2 (ja) 入出力制御装置
JPH0375909B2 (ja)
JPS6146545A (ja) 入出力命令制御方法
JPS6231386B2 (ja)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term