JP2991242B2 - マルチプロセッサコンピュータシステム使用方法 - Google Patents

マルチプロセッサコンピュータシステム使用方法

Info

Publication number
JP2991242B2
JP2991242B2 JP2275158A JP27515890A JP2991242B2 JP 2991242 B2 JP2991242 B2 JP 2991242B2 JP 2275158 A JP2275158 A JP 2275158A JP 27515890 A JP27515890 A JP 27515890A JP 2991242 B2 JP2991242 B2 JP 2991242B2
Authority
JP
Japan
Prior art keywords
data
processor
extension function
function
communication
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 - Fee Related
Application number
JP2275158A
Other languages
English (en)
Other versions
JPH03208159A (ja
Inventor
エイ デニオ マイケル
ジー リトルトン ジェイムズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH03208159A publication Critical patent/JPH03208159A/ja
Application granted granted Critical
Publication of JP2991242B2 publication Critical patent/JP2991242B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

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

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明はコンピュータの処理に関し、より詳細にはマ
ルチマイクロプロセッサと共に用いられ、主プロセッサ
上を走るプログラムからソフトウエア関数を呼び出し、
その関数が下位プロセッサにより実行されるようにした
方法に関するものである。
〔従来の技術〕
コンピュータの処理における重要な発展は各々がアプ
リケーション・プログラムを実行するために独立の動作
を行うことができる1つ以上のプロセッサを備えたシス
テムであった。異なるプログラム・タスクが異なるプロ
セッサに割り当てられ得、その結果、プログラムの実行
時間が実質的に低減される。マルチプロセッサ・システ
ムにおいてタスクを分割する一つの方法は下位のプロセ
ッサによる実行のためのサブプログラム、それは主プロ
セッサ上で走るメイン・プログラムにリンクするが、を
指示することである。
〔発明が解決しようとする課題〕
指示された関数が下位プロセッサにより実行されるべ
きものであるとき、そのように分けられたタスクを実行
することに伴う問題はプロセッサがデータを交換するた
めの手段を必要とするということである。通信バッファ
・データ・ラインなどのビット単位でデータを伝送する
という物理的なシステム条件は既知のものであるが、関
数の引数および復帰値が実行時間まで決定されないとい
う事実に困難性がある。データのサイズおよびタイプが
そのデータがいかに通信されるかを決定する。そして、
通信ルートはその関数と関係する値を実行時間の中で交
換しなければならない。
この問題を解決するための通信プログラムをプログラ
ミングすることの困難性のためにその関数が決まってい
る下位プロセッサを備えたマルチプロセッサ・システム
もある。そのユーザは新しい関数を追加することができ
ず、プロセッサにより提供される関数に限定されてしま
う。
他のマルチプロセッサ・システムにおいては、プログ
ラマは関数を追加してもよいが、下位プロセッサがその
関数を実行できるようにするために支援ルーチンを作成
するか、または、その関数を定義するときに、非標準の
フォーマットを使わなければならない。このため、プロ
グラマが自分自身の関数の定義を書くにせよ、別のもの
からあらかじめ書かれた関数定義を得るにせよ、追加さ
れた関数がマルチプロセッサ・システムの中で作動する
ことを確認するために、実質的なプログラミングの努力
が必要とされた。
このように、関数が拡張されうるようなマルチプロセ
ッサ・システムのニーズはある。プログラマは下位プロ
セッサが理解することができる所定群の関数のみを使え
ると制限されるべきでないし、最小のプログラミングの
労力で下位プロセッサにより実行されるべき関数を追加
できるべきである。
〔課題を解決するための手段〕
本発明の一面はある関数は主プロセッサ上を走るプロ
グラムから呼び出されうるが、下位プロセッサにより実
行されるような、マルチプロセッサ・コンピュータ・シ
ステムと共に用いられるようにソフトウエア・プログラ
ムを変換する方法である。この方法はその下位プロセッ
サに適合するある関数を選択し、所定の引数フォーマッ
トおよび復帰の条件と関係する特別なエントリー・ポイ
ントを選択し、そのエントリー・ポイントと矛盾しない
関数を定義し、そのエントリー・ポイントと矛盾しない
通信ルーチンをプログラミングし、メイン・プログラム
に関数呼び出しを追加することを含んでいる。
本発明の別の面はマルチプロセッサ・システム上で用
いられるための拡張された関数をプログラミングする方
法である。この方法のステップは関数が始めから選択さ
れたエントリー・ポイントの属性と一致するようにコー
ド化されていることを除き、前の節で述べたような、既
存のプログラムを変換する方法とほぼ同じである。
本発明の別の面はプログラム・タスクをプロセッサ間
で分割するマルチプロセッサ・コンピュータ・システム
を用いる方法である。下位プロセッサにより実行される
べき関数は主プロセッサ上で実行されているプログラム
から呼び出される。この関数の呼び出しは通信ルーチン
をもたらす特別なエントリー・ポイントに向けられる。
その関数の引数データはそのエントリー・ポイントに合
ったフォーマットで構築される。そのエントリー・ポイ
ントにもたらされる通信ルーチンはプロセッサ間でハン
ドシェークするための、およびその関数を識別し、もた
らすための情報を通過させるための通信バッファを使用
する。
下位プロセッサはその関数およびその引数データを格
納するための手段を識別するためのデータをダウンロー
ドする。また、そのエントリー・ポイントは復帰要件に
関係し、その要件は復帰値があれば、それを転送し、ホ
スト機により使用されているデータを変換する必要があ
れば、変換するための、関連する通信ルーチンをもたら
す。
本発明の別の面は1つのプロセッサ上を走るメイン・
プログラムから呼び出された関数が下位プロセッサによ
り実行されるコンピュータ・システムにある。一組のエ
ントリー・ポイントの各々は様々な関数の属性に関連し
ている。また、各エントリー・ポイントは関数の引数の
ための値および復帰値がもしあれば、プロセッサにそれ
らを変換せしめうる通信プログラミングと関連してい
る。
〔実施例〕
発明の環境 本発明の説明は主にCプログラミング言語で書かれた
プログラムにより本発明の履行を目ざすようなされる。
しかしながら、本発明が動作するプログラミング環境は
Cに限られない。定義の目的と、本発明が他の言語にも
用いられうるようにするそれらの属性を設定する目的の
両者のために、以下にいくつかの共通的なプログラミン
グ言語の属性が説明される。
タスクをプログラム・モジュール、すなわち、サブプ
ログラムに構造化することはより高いレベルのプログラ
ム言語の有用な特徴である。サブプログラムによりメイ
ン・プログラムは全てのステップを明らかに記述する必
要なくして、そのサブプログラムが表わすプロセスを実
行することができる。これはメイン・プログラム内から
サブプログラムを呼び出すことにより行われる。
サブプログラム定義はサブプログラムの動作を記述す
るステートメントの集まりである。サブプログラムのヘ
ッダはサブプログラム定義の第一番目のラインであり、
いくつかの目的に用いられる。第1にそれはそれに後続
する記号のかたまりはある種の1つのサブプログラム定
義であることを明示しうる。第2に、それはサブプログ
ラムのための名前を提供する。第3に、それは正式なパ
ラメータのリストを選択付加的に供給しうる。
パラメータはサブプログラム間で値をやりとりするの
に用いられる。パラメータの使用はサブプログラムの更
なる特徴、すなわち、それらの再使用可能性に関連づけ
られる。これは特定の値ではなく、サブプログラムの頭
部の中で、パラメータを使うことにより成されうる。同
じサブプログラムは全体的に再定義されることなく、そ
のプログラムの中で1回以上使われ得、また異なるプロ
グラムの中でも使われうる。“パラメータ”および“引
数”という語は同義語的にしばしば用いられる。
サブプログラム呼び出しはそのサブプログラムが実行
されるよう求める。メイン・プログラム内の明白な要求
である。サブプログラム呼び出しはそのサブプログラム
の名前、およびそのサブプログラムの正式なパラメータ
となる実際のパラメータのリストを含んでいる。
一般に、2つのタイプのサブプログラム:手順と関数
とがある。手順はフォートランのサブルーチンなどで知
られているように、呼び出しのプログラムの中で変数お
よびパラメータを変換する。関数、それは数学関数に従
って作られるのであるが、それらのパラメータまたは外
部変数を変換するのではなく、単に値を呼び出しプログ
ラムに戻すのみである。
上述の属性とは別に、サブプログラムおよびそれらの
呼び出しの多くの属性は言語毎に独特である。例えば、
フォートランまたはパスカル(Pascal)で書かれたサブ
プログラムのヘッダはそのサブプログラムを、すなわ
ち、“サブルーチン”または“プロシージャ”と識別す
る特別な語を有している。他方、Cのサブプログラムの
ヘッダはそのような特別な語を持っていない。更に、C
においては全てのサブプログラムは関数であり、1つの
関数のヘッダは1つの特別な語によってではなく、文脈
により理解される。Cにおいては、1つの関数はフォー
トランでの1つのサブルーチン若しくは関数またはパス
カルでの1つのプロシージャと等価である。しかしなが
ら、Cにおいて、その関数が他の言語の1つのプロシー
ジャのように作動するように、1つの関数のために呼び
出しルーチン内の変数を変換するよう調整することは可
能である。
発明の実施例 本説明においては、ユーザがマルチプロセッサ・シス
テムに追加するように望むサブプログラムは“拡張関
数”と称する。より詳細には、1つの拡張された関数は
マルチプロセッサ・システムの主プロセッサ上を走るメ
イン・プログラムによって呼び出され、下位プロセッサ
により実行される関数である。メイン・プログラムを走
らせるシステムは“ホスト・プロセッサ・システム”ま
たは“ホスト・システム”と称される。拡張関数が実行
されるシステムは“サブプロセッサ・システム”または
“サブシステム”である。
マルチプロセッサ・システムはプロセッサ間でデータ
のやりとりを行うための通信システムを備えているもの
とする。この通信システムを含む、マルチプロセッサシ
ステムのハードウエアの特徴は以下に第3図に関連して
説明する。
本発明での“ユーザ”とはマルチプロセッサ・システ
ムの部分をもたらしうる様々な人々でありうる。例え
ば、ユーザはそのシステム上で用いられるために準備さ
れている1つのプログラムに拡張関数を追加するよう望
むプログラムであるかもしれない。または、ユーザは他
のプログラマにより用いられるための拡張関数を提供す
るプログラマであるかもしれない。ユーザは拡張関数を
有するプログラムを実際に走らせる誰かであるかもしれ
ない。さらには、本発明はこれらのユーザのうちの人に
より、なされ得または販売されうるかもしれない。以下
に説明される本発明の様々な面は本発明の異なるユーザ
および異なる物理的実施例を意図したものである。最後
に、これはコンピュータの方法およびプログラムの特性
であるが、ユーザは他のプログラムであるかもしれな
い。
本発明はマルチプロセッサ・システム上で拡張関数を
用いるために、ホスト・システムおよびサブシステムは
引数および復帰値があれば、それらを通信するための手
段を持たなければならないという前提の下になされる。
さらに、引数および復帰の要件は大幅に返動し得、そし
てそのような転送を扱う異なる通信プログラムを必要と
する、2つの特性である。関数の復帰の要件はその関数
が復帰値は全く必要ときしないか、1つの復帰値を必要
とするか、または変数を変えるかの決定をする。その引
数のタイプを含む、関数の引数のフォーマットはその引
数がスタック上をどのように渡されるかを決定する。
本発明の全ての面の基本概念はマルチプロセッサ・シ
ステムが特別なエントリー・ポイントを設けることによ
り、異なる属性を有する関数を収容しうることである。
サブプログラムのエントリー・ポイントはそのサブプロ
グラムがメッセージを受けるところであり、サブプログ
ラムでないところで一つの命令の後に実行されうる命令
でありうる。本発明においては、エントリー・ポイント
は両方のプロセッサが何を望んでいるかを知りうるよう
に、プロセッサ間で変換されるべきデータの所定の属性
を設定するのに用いられうる。
この概念によれば、拡張関数の変換要件に関し、本発
明は次のケースを考えている。
ケース1。ホスト・プロセッサのデータは変更され
ず、復帰値は必要としない。
ケース2。ホスト・プロセッサのデータは変更されな
いが、そのホストはサブプロセッサからの復帰値を必要
とする。
ケース3。ホスト・プロセッサのデータはサブプロセ
ッサにより変更され、その命令が実行された後、サブプ
ロセッサのメモリからホスト・メモリへ取り出されなけ
ればならない。
実行速度の条件においては、ケース1が最も速く、ケ
ース2はより遅く、ケース3は最も遅い。
拡張関数の引数のフォーマットに関し、本発明は即値
引用と1レベルの間接による引用との両者、より詳細に
は次のケースを考えている。
ケース1。即値引数を伴った引数リスト ケース2。配列または構造に対するポインタを伴った
引数 ケース3。無効な終了したストリングに対するポイン
タ ケース4。即値引数および配列または構造に対するポ
インタを伴った引数リスト 以下に説明されるように、引数フォーマットは二段に
スタック上に引数を渡すことにより、むしろその引数の
データがいかに渡されるかに影響を反ぼし、本発明は引
数データを通信データからフェッチするために、スタッ
ク上のポインタを用いることにより動作する。
関数は復帰要件および引数フォーマットの多くの組み
合わせを禁じるかもしれないので、本発明は前に列挙し
たケースのうちの2組の組み合わせを表わすエントリー
・ポイントをもたらす。その結果、復帰要件および引数
フォーマットの様々な組み合わせを表わす一セットのエ
ントリー・ポイントとなる。このエントリー・ポイント
のセットはホスト・プロセッサにより通信バッファにロ
ードされた引数データがサブプロセッサ・システムによ
り望まれた属性を備えていることを確認するのに用いら
れる。各エントリー・ポイントは通信バッファへの、ま
たは通信バッファからのデータの転送を制限する通信シ
ステムに関連するプログラミングへのエントリー・ポイ
ントである。より好ましい実施例においては、各エント
リー・ポイントは更にエントリー・ポイント命令に関連
し、それは通信プログラミングを起動するのに用いられ
る。
第1図は本発明の一面である、マルチプロセッサ・シ
ステムと共に用いられるためのソフトウエア・プログラ
ムを変換する方法を示している。ユーザはマルチプロセ
ッサ・システムのサブシステム上で実行されることが望
まれているサブプログラムを定義しているか、また定義
したものとする。
ステップ11において、ユーザは現存するサブプログラ
ムを選択するか、あるいは新しいサブプログラムを準備
する。なお、そのサブプログラムはサブプロセッサによ
り実行されるよう望まれているものである。別のモジュ
ールにおいて、まだサブプログラムの形態になければ、
そのコードはその関数を表わす別のコードのモジュール
が抽出されるように操作される。
ステップ12において、ユーザはその関数に識別子を割
り当てる。より好ましい実施例においては、その関数識
別子は2つの部分、モジュール番号および関数番号を備
えている。その識別子により、ユーザは両プロセッサ・
システムへの関数を識別することにより、1つ以上の拡
張関数を付加することができる。モジュール番号によ
り、ユーザは選択された関数をモジュールにグループ化
することができる。1つ以上のモジュールがサブシステ
ムにロードされれば、モジュール番号はサブシステムが
適当なモジュールを選択するための手段をもたらす。例
えば、モジュール番号はサブプロセッサ・システムがモ
ジュール・ポインタの配列を指示するための手段をもた
らす。そして、関数番号は実行時間に実行されるべき、
適当な拡張関数を選択するための手段をもたらす。
ステップ13において、ユーザは通信システムにより認
識される多くのエントリー・ポイントから1つのエント
リー・ポイントを選択する。上述したように、これらの
エントリー・ポイントはプロセッサ間のデータの転送を
制御する所定の通信プログラムと各々、関連するもので
ある。より好ましい実施例においては、各エントリー・
ポイントは1つの命令に関連し、それはサブプログラム
内のエントリー・ポイント・コードとメイン・プログラ
ム内のその呼び出しとの両者に共通のものである。この
エントリー・ポイントは実際には、その引数が拡張関数
の識別子およびその引数についての情報であるところの
関数である。
次の例はC言語の記号により示された、本発明によ
る、エントリー・ポイントおよびそれらの命令の表記を
表わすものである。エントリー・ポイントの各々につい
て、“cmd_number"はステップ12に関連して説明した関
数識別子である。“length"はその関数の引数データを
転送するのに関連して送られる2進ワードまたはバイト
の数である。即値引数はarg_1、arg_2、…、arg_nによ
り識別される。
1. 標準命令 このエントリー・ポイントは関数が復帰値を全くもっ
ていないときに用いられる。引数のリストは単長であ
り、即値引数からなっている。lengthはワード単位であ
る。その表記は次のとおりである。
2. 復帰を伴った標準命令 このエントリー・ポイントはサブプログラムを呼んだ
後、主プロセッサがその命令の終了を待ち、そして、そ
の復帰値をフェッチして戻すこと以外は標準命令と類似
している。その値はDX:AXレジスタへ戻される。表記は
次のようになる。
3. 標準メモリ送信命令 このエントリー・ポイントは配列または構造の形態で
情報を必要とする関数と共に用いられる。lengthはワー
ドではなくバイト単位である。Ptr引数はホスト・メモ
リへの遠方ポインタである。そのポインタの内容は通信
バッファへダウンロードされる。表記は次のようにな
る。
4. 標準メモリ復帰命令 このエントリー・ポイントは配列化または構造化され
た情報を復帰させる関数と共に用いられる。バイト単位
のlengthは命令バッファ内の第1の要素として送られ、
その関数を起動する。その関数はlengthに後続するワー
ドのところの通信バッファに復帰データを書き込む。表
記は次のようになる。
5. 標準ストリング このエントリー・ポイントは標準メモリ復帰命令と類
似しているが、既知の長さのポインタを送る代わりに、
無効な終了ストリングを送る。この場合、通信バッファ
は第1のワードとしてlengthのエントリーを持たない。
バッファ内の連続するバイトは無効終了子(0)を伴っ
たPtr内のキャラクタを含んでいる。表記は次のように
なる。
6. 変更メモリ復帰メモリ このエントリー・ポイントは配列化または構造化され
た情報を送り、復帰させる関数と共に用いられる。この
エントリー・ポイントはバイト単位のポインタの長さの
内容を送るためにpsndとpgetのエントリー・ポイントの
関数性を組み合わせており、そして、それがその関数に
より変換される。関数が終了すると、データはptrによ
り指示される1主プロセッサのメモリに戻される。表記
は次のようになる。
7. 送信/復帰メモリ命令 このエントリー・ポイントは配列化または構造化され
た情報を送信し、情報を異なる配列または構造の中へ戻
す関数と共に用いられる。この命令はデータがホスト・
メモリの異なる領域に戻されること以外は変更メモリ復
帰命令と類似している。表記は次のようになる。
8. 混合された即値およびポインタ命令 このエントリー・ポイントは即値およびポインタのデ
ータを組み合わせる。命令番号の後の第1のパラメータ
はcmdと同じ方法により送るためのワードの数である。
そのワードの数に続くのはワードそれ自体、すなわち、
スタック上の即値データである。その即値、データの後
には送るためのポインタの数の計数値である。各ポイン
タはそのポインタが指している配列または構造の内に含
まれているバイトの数の計数値の後にくる。表記は次の
ようになる。
第1A図は復帰関数および引数フォーマットの関数とし
て1つのエントリー・ポイントを選択するロジックを図
示している。第1A図においてエントリー・ポイント1〜
8は上述したエントリー・ポイントの例に相当する。
ステップ14において、ユーザは選択されたエントリー
・ポイントに適合する関数を定義する。換言すると、そ
の関数の引数および復帰要件は選択されたエントリー・
ポイントに従いコード化される。即値のフォーマットは
ある関数が少ない数の引数のみを通過させる必要がある
ときに用いられるよう設計される。この場合、各引数の
値はそれらをフェッチするポインタを伴った通信バッフ
ァ内に置かれる。間接引用のフォーマットはその関数が
多くの数の引数を通過させるときに用いられるよう設計
される。この状況においては、引数はメモリ内の配列の
中に組み込まれ、バッファからそれらをフェッチするた
めに配列に対するポインタを伴って、通信バッファに順
次、渡される。
ステップ15では通信システムが拡張関数の識別子およ
びその引数データと復帰値を正しく転送していることを
確認するために、各エントリー・ポイントと関連する命
令をプログラムする。次の例は上述のエントリー・ポイ
ントのうちの2つについて、通信バッファから引数デー
タを抽出するための、ステップ15の部分の従うコードを
示している。data−Ptrは通信バッファへのポインタで
あり、それは第4a、4b、および4c図に関連して説明され
る。対応する関数呼び出しの例はステップ16に関連して
以下に説明される。
表Aはmove、setf、およびsrl命令を説明するもので
ある。最初の例、標準命令は2つの16ビットの即値引数
を引き渡す。2番目の例、標準メモリ送信命令は間接メ
モリ渡しを使用している。
ステップ16はホスト・プロセッサのメイン・プログラ
ムへ関数呼び出しを追加している。関数が呼ばれたとき
に、適当なエントリー・ポイントをもたらすための手段
が必要とされ、それはより好ましい実施例においては、
拡張関数が呼ばれたときにプログラミングをそのエント
リー・ポイントの方に向けるプロセッサにより成し遂げ
られる。次の例は上述のエントリー・ポイント命令のう
ちのいくつかのための関数呼び出しを示している。
標準命令 関数は2つの現実のパラメータ、16ビットのarg−1
および32ビットのarg−2を持っている。ワードの計数
値、3は短かい引数のための1ワードおよび長い引数の
ための2ワードの合計である。
標準メモリ送信命令 関数のarg_1は4バイトのデータをもっている。
標準命令復帰命令 関数のarg_1は4バイトのデータをもっている。
上記のステップの結果として、少なくとも1つの拡張
関数を含むモジュールがコンパイルされ、メイン・プロ
グラムにリンクされる。それは実行時間の間に、メイン
・プログラムが関数を呼び出し、そして、その関数がサ
ブプロセッサにより実行されるように、サブプロセッサ
・システムにロードされうる。なお、このプロセッサの
交換はコンピュータ・ユーザに見えない。
また、第1図は本発明の別の面を示しており、それは
マルチプロセッサ・システムと共に用いられるための拡
張関数を供給する方法である。換言すると、1群の関数
が別のプログラマのプログラムにそれらの関数を一体化
させるステップと共に、ステップ11〜14に従って、一人
のプログラマにより準備されうる。このような状況の例
は拡張関数がアプリケーション・プログラマへのライブ
ラリとして与えられる場合であり、そのプログラマはあ
る特定のアプリケーション・プログラムのために求めら
れる拡張関数を使うことができる。
第2図は本発明の他の面、すなわち、拡張関数を備え
た単一のプログラムを実行するためにマルチプロセッサ
・コンピュータ・システムを用いる方法を示している。
第1図の方法とは区別されるように、第2図の方法は実
行時間処理であり、それはコンピュータ・プログラミン
グにより行われる。この方法は主プロセッサ上で下位プ
ロセッサにより実行されるべき、少なくとも1つのサブ
プログラムを有するメイン・プログラムを実行している
間に用いられる。このサブプログラムはコンパイルさ
れ、下位プロセッサにロードされ、このことは実行前で
あればいかなるときにも起こりうる。
基本的に、第2図の方法のステップはまず、メイン・
プログラムから拡張関数を呼び出すことを含んでいる。
この呼び出しはプログラミングを通信プログラミングの
エントリー・ポイントへ向けさせ、その通信プログラミ
ングはホスト・プロセッサとサブプロセッサとの間で、
その関数により使われ、その関数から戻される、データ
の通信を制御する。
第2図の方法は通信手段を備えたマルチプロセッサ・
システム上に用いられるためのものである。第2図は第
3図を参照するとよく理解されよう。第3図はホスト・
プロセッサ・システム310およびサブプロセッサ・シス
テム320の両者を備えたコンピュータ・システムのブロ
ック図である。プロセッサ311および321は各々、専用メ
モリ312および322を持っている。2つのプロセッサの間
の通信手段はバス330および通信バッファ323により具体
化される。バス330は双方向性のものであり、16ビット
のデータ・パスおよび9本の制御線をもたらす。通信バ
ッファ323は2つのプロセッサ・システム310および320
によりアクセスされうる。より好ましい実施例において
は通信バッファ323はホスト・メッセージおよびサブプ
ロセッサ・メッセージおよび他のデータのための分離し
た領域を有した記憶構造を有している。通信記憶手段の
他のハードウエアによる具現化も可能であり、各プロセ
ッサ311および321はプロセッサ間のハドシェーキングの
ためのパラメータ・領域・呼び出されている機能を識別
するための機能識別領域、および命令引数および付加的
なデータを通すためのデータ領域を含むメモリの領域に
アクセスすることが主な要件である。
第3図に示された構成はプロセッサ間通信をもたらす
ための数多くの手段のうちの一つのみであり、他の手段
も容易に開発されうる。さらに、第3図は分離したメモ
リ312および322を有する、2つのプロセッサ・システム
310および320を示しているが、通信手段は1つのメモリ
を分けたものであってもよい。
第3図のマルチプロセッサ・システムはディスプレイ
340、大容量記憶装置350およびキーボードやマウスなど
の入力装置360の様々な標準周辺装置と共に動作する。I
/O回路313はホスト・システム・バス314を介してこれら
の入力および出力装置とホスト・システム310の他の部
品との間を適当な形態で情報を交信するのに用いられ
る。ディスプレイ340および入力装置360によりユーザは
ホスト・プロセッサ・システム310とやりとりすること
ができる。サブプロセッサ・システム320が図設処理の
ために用いられるのであれば、ディスプレイ34はホスト
・システム310よりむしろプロセッサ321に接続されう
る。
再び第2図を参照すると、ステップ21は拡張関数を呼
んでいる。上述されたように、初期の呼び出しはホスト
・プロセッサ・システム310上に走る主プログラムから
のものであるが、拡張関数の定義はサブプロセッサ・シ
ステム320のメモリ322内にある。その呼び出しはサブプ
ロセッサ・システム320に向けられなければならない。
そして、ステップ21において、メイン・プログラムの呼
び出しはホスト・プロセッサを通信プログラミングのエ
ントリー・ポイントへ方向づけ、その通信プログラミン
グはその関数の属性に一致するデータを転送するようプ
ログラムされている。C言語の実施例においては、その
呼び出しは第1図と共にステップ16に関連づけて上述さ
れたプレプロセッサの関数呼び出しの形態でありうる。
この記号はエントリー・ポイントの命令を用いて、その
エントリー・ポイントへの呼び出しとしてその関数呼び
出しを再定義するために、特により好ましい実施例にお
いては有用である。
ステップ22は2つのプロセッサ・システム310および3
20の間で通信を開始する。このステップはハンドシェー
キング・ルーチンを実行するために通信プログラミング
および通信バッファ323を用いることを含んでいる。こ
れらのハンドシェーキング・ルーチンはこの分野におい
ては知られているものであり、使用中、不使用またはメ
ッセージ待ちの状態を示すためのメッセージの引き渡し
を含む。上述したとおり、プロセッサ間でのデータをや
りとりするのに用いられるメモリの領域は本実施例にお
いては通信バッファ323として説明されたが、相互にア
クセス可能なメモリ領域の形態であれば、いかなるもの
も用いられうる。
ステップ23はエントリー・ポイントのところで起動さ
れ、ホストにより実行される通信プログラミングを用い
て、拡張関数の識別子およびその引数データを通信バッ
ファ323へロードしている。上記のステップ13の実行が
行われれば、エントリー・ポイント命令の引数データは
その識別子および拡張関数の引数データをアクセスする
ための手段からなる。ステップ23は相互アクセス可能な
メモリ領域、すなわち、通信バッファ323に拡張関数デ
ータを“アップローディング”するとして参照されう
る。
再び、本発明の独特な面は拡張関数のデータを引き渡
すための通信コードが拡張関数の属性に関連するエント
リー・ポイントに応じたものであることである。第4a、
4b、および4c図は各々、標準エントリー・ポイント、標
準メモリ送信、標準メモリ復帰のための通信バッファ32
3内のデータを図示している。このデータは上述した、
第1図のステップ16の例と矛盾するものではない。
ステップ24は拡張関数のデータを通信バッファ323か
らサブプロセッサ・システム320へロードしている。ス
テップ24は第5図に詳細に説明されている。関数の識別
子はサブプロセッサのメモリ322に移され、適当な引数
データに関して、サブプロセッサ・システム320は拡張
関数の引数データが保持される、通信バッファ323への
ポインタである:スタック上の唯一の引数を受ける。本
実施例は上記の実施例に従うものであり、第1図のステ
ップ15に関連して説明された。ステップ24はメモリ空
間、すなわち、通信バッファ323から拡張関数データの
“ダウンローディング”として称されうる。
そして、サブプロセッサ321はその関数を実行しう
る。ステップ24で生成されたポインタは通信バッファ32
3から関数の引数データをとり出し、拡張関数の局所変
数とするのに用いられる。第2図には示されていない
が、付加的なステップが値をホスト・プロセッサ311へ
戻し、ホスト・プロセッサ311により用いられる値を変
換することを含んでもよい。第1図のステップ13に関連
して上述した例によれば、各エントリー・ポイントはサ
ブプロセッサ321に、どのように復帰値を転送するの
か、および関数の復帰が要求されていれば、それらをど
こに置くか実行されるべきこれらのタスクのために、そ
の関連するエントリー・ポイントはどこに呼びだされる
かを指示する通信プログラミングと関連していることが
わかるであろう。
第5図はそのサブステップおよびサブプロセッサ・シ
ステム320上で続いて起こるステップを含む、実行方法
によるステップ24を説明するフロー図である。上述され
たように、ステップ52〜56は関数を実行することを含ん
でおり、復帰値に関連するエントリー・ポイントが用い
られていれば、その方法はこの値を持ち、戻すことも含
む。
本発明の特徴は実行時間速度を早めるために、サブプ
ロセッサ・システム320が通信バッファ323へ転送されて
いる引数データのサイズをチェックしないことである。
しかしながら、大量のデータが転送されると予想され、
バッファ323が固定サイズであるならば、転送されてい
るデータが通信バッファ323をオーバフローしないこと
を確かめるためにプログラミングが必要となる。
例えば、パラメータのサイズをチェックし、パラメー
タがサブプロセッサ・システム320にダウンロードする
ために1つのルーチンが生成されうる。それらが適合し
なければ、プログラミングはそのパラメータを保持する
ために、大容量の置場(heap pool)から一時的なバッ
ファを配置するように試みる。その配置に失敗すれば、
誤まり機能が起動される。オーバ・フロー防止を向上さ
せる策は引数データが通信バッファ323には大きすぎる
ものとなる可能性があるときに、用いられるエントリー
・ポイントの組を増やすことである。これらのエントリ
ー・ポイントは上述のものと同じ機能を有しているが、
そのサイズをチェックするために引数データを介しての
予備的なパスを形成する付加的なプログラミングを起動
する。そのデータが適合しなければ、そのプログラミン
グはパラメータを保持するために大容量の置場から一時
的なバッファを配置しようとする。
本発明の他の面は主プロセッサ・システム310上を走
っているメイン・プログラムから呼び出された関数が下
位プロセッサ321により実行されうるようにした、マル
チプロセッサ・コンピュータ・システムにある。エント
リー・ポイント命令の組のうちの各々は様々な関数の属
性と関連がある。各エントリー・ポイント命令はプロセ
ッサ311および321を、その関数を識別し、呼び出し、実
行するためにプロセッサ321により必要とされるデータ
を交換可能にせしめる通信プログラミングを起動する。
これらのエントリー・ポイントは第1および2図に関連
して上述されたプログラミングによりもたらされうる。
本発明は特定の実施例を参照して説明されてきたが、
この説明は限定して解釈されることを意図するものでは
ない。本発明の選択的な実施例と同様に、開示された実
施例の様々な変形例が本説明を参照すれば、この分野の
熟練者にとって明白となるであろう。したがって、添付
のクレームが本発明の頁の範囲内に入るような変形例を
保護するであろうことを期待するものである。
〔発明の効果〕
本発明の技術的効果はユーザが実質的な労力なしに、
マルチプロセッサ・システムのための、拡張関数をプロ
グラムできることである。特別なエントリー・ポイント
により各関数のための特別な通信ルートをプログラムす
る必要がない。これらのエントリー・ポイントを用いれ
ば、2つのプロセッサはその関数を実行することに関連
する値を交換するために一般化された通信ルートを使う
ことができる。
以上の記載に関連して一以下の各項を開示する。
1)マルチプロセッサ・コンピュータ・システムと共に
用いられ、ソフトウエア・プログラムの一関数が主プロ
セッサ上を走るメイン・プログラムから呼び出され、下
位プロセッサに実行されるように、前記ソフトウエア・
プログラムを変換する方法であって、 前記下位プロセッサによる実行のために一つの関数を
選択し、 所定の引数フォーマットに関連する、一つのエントリ
ー・ポイント命令を選択し、 前記引数フォーマットに適合する前記関数を定義し、 前記主プロセッサから前記下位プロセッサへ前記関数
の引数データを転送するために、前記エントリー・ポイ
ント命令により起動される通信ルーチンをプログラミン
グし、 前記メイン・プログラムの中に前記関数への呼び出し
を挿入する ステップを含むソフトウエア・プログラムの変換方法。
2)前記エントリー・ポイント命令の各々は前記関数の
所定の復帰要件と更に関連し、前記通信ルーチンは復帰
値があれば転送する前記1項に記載の方法。
3)前記エントリー・ポイント命令の各々は実数引数を
伴った引数リスト、配列または構造に対するポインタを
備えた引数、または無効な終了されたストリングに対す
るポインタの引数の引数フォーマットのうちの少なくと
も1つの関連する前記1項に記載の方法。
4)関数がメイン・プログラムにより呼び出され、下位
プロセッサにより実行されるように、一群の拡張関数が
主プロセッサ上を走るメイン・プログラムを有するマル
チプロセッサ・システム内に組み込まれるようにプログ
ラムする方法であって、 各々が関数の引数フォーマットおよび前記主プロセッ
サから前記下位プロセッサへ引数データを転送するため
の通信ルーチンにも関連する一群のエントリー・ポイン
ト命令を生成し、 一群の拡張関数の定義を生成し、 前記拡張関数の各々と共に用いるためにエントリー・
ポイント命令を選択し、 前記エントリー・ポイント命令の前記引数フォーマッ
トと適合する前記拡張関数の引数フォーマットを定義す
る ステップを含む方法。
5)所望の関数が前記拡張関数群から前記下位プロセッ
サにより選択されるように、前記関数の各々に識別子を
割り付けるステップを含み、前記識別子は前記通信プロ
グラミングにより前記主プロセッサから前記下位プロセ
ッサへ転送される前記4項に記載の方法。
6)拡張関数を実行するために、主プロセッサおよび下
位プロセッサを備えたマルチプロセッサ・コンピュータ
・システムを用いる方法であって、 ある引数のフォーマットで引数データを備えた一関数
を主プロセッサ上を走るプログラムから呼び出し、 前記引数データを前記主プログラムから前記下位プロ
セッサへ転送するようプログラムされた通信ルーチンを
選択されたエントリー・ポイント命令によって起動し、 前記引数データを前記主プロセッサおよび前記下位プ
ロセッサからアクセス可能なメモリ空間へアップロード
し、 前記下位プロセッサによる使用のために、前記メモリ
空間から前記引数データをダウンロードする ステップを含む方法。
7)前記引数データが前記メモリ空間をオーバフローす
るか否かを判定し、前記データが前記メモリ空間をオー
バフローするなれば、一時的なメモリ空間を割り当てる
ステップを更に含む前記6項に記載の方法。
8)拡張関数が主プロセッサ上を走るメイン・プログラ
ムから呼び出され、下位プロセッサにより実行されうる
ようにしたマルチプロセッサ・コンピュータ・システム
であって、 各々が所定のエントリー・ポイント命令および所定の
引数フォーマットと関連する、一群の拡張関数からなる
入力ファイルと、 各々が前記エントリー・ポイント命令のうちの1つと
関連する、一群の通信ルーチンからなる入力ファイル
と、 前記通信ルーチン入力ファイルに結合される主プロセ
ッサと、 前記関数定義入力ファイルに結合される下位プロセッ
サとを含み、 前記主プロセッサからの前記拡張関数のうちの1つへ
の呼び出しは前記エントリー・ポイント命令のうちの1
つに関連し、それが前記関連する通信ルーチンを起動
し、その結果、引数データは前記主プロセッサから前記
下位プロセッサへ転送されるマルチプロセッサ・コンピ
ュータ・システム。
9)前記エントリー・ポイント命令の各々は所定の復帰
要件を処理することに関連する前記8項に記載のコンピ
ュータ・システム。
10)拡張関数が主プロセッサ上を走るメイン・プログラ
ムから呼び出され、下位プロセッサにより実行されうる
ようにしたマルチプロセッサ・コンピュータ・システム
と共に用いられるためのコンピュータ・プログラム構造
であって、 各々が所定の引数のフォーマットと関連する一群のエ
ントリー・ポイント命令と、 各々が前記エントリー・ポイント命令のうちの1つと
関連する一群の通信ルーチンとを含み、 前記エントリー・ポイント命令のうちの1つは1つの
呼び出しにより前記プロセッサから前記下位プロセッサ
へ誘起され、前記エントリー・ポイント命令は前記関連
する通信ルーチンを起動し、その結果、前記引数フォー
マットによる、前記拡張関数の引数データが前記主プロ
セッサから前記下位プロセッサへ転送されうるコンピュ
ータ・プログラム構造。
11)マルチプロセッサ・システム(310、320)に拡張関
数を追加するための方法であって、特に関連は主プロセ
ッサ(311)上を走るプログラムから呼び出され、下位
プロセッサ(321)により実行されうる、一群の属性の
あるエントリー・ポイントが設けられる。各拡張関数は
1つのエントリー・ポイント命令と関連し(14)、それ
は関数の引数フォーマットおよび、もしあれば、復帰の
要件のために適当なものである。各エントリー・ポイン
ト命令はプロセッサの間で、引数データおよび、もしあ
れば復帰値の転送(23、24)を処理する通信ルーチンを
起動する(22)。
【図面の簡単な説明】
第1図はマルチプロセッサ・システムのための拡張ソフ
トウエア関数を生成するステップの流れ図である。 第1A図は本発明によるエントリー・ポイントの選択を説
明する論理図である。 第2図は下位プロセッサにより実行される関数を呼び出
す、主プロセッサ上のプログラムを走らせるために、マ
ルチプロセッサ・システムを用いるステップの流れ図で
ある。 第3図は本発明がそれと共に用いられるマルチプロセッ
サ・システムの典型システムのブロック図である。 第4a、4b、および4c図は第3図のシステムのサブプロセ
ッサにより実行されるべき関数の引数データを転送する
に用いられる通信バッファを図示している。 第5図は第2X図のサブステップおよび下位プロセッサ上
のダウンロード後の動きを図示するブロック図である。
フロントページの続き (56)参考文献 特開 平1−236843(JP,A) 特開 昭63−318843(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 15/177 G06F 15/16 WPI

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】拡張関数を呼び出す第1プロセッサと、呼
    び出された拡張関数を実行する第2プセッサと、第1及
    び第2プロセッサ間の通信用の所定のデータサイズの通
    信バッファとを有し、 前記通信バッファが、第1及び第2プロセッサの両方に
    よりアクセス可能な共有アドレス空間として与えられ、
    各拡張関数が、(1)通信バッファの所定のデータサイ
    ズよりもサイズの大きい少なくとも1つの第1引数指定
    データを有する第1のタイプの拡張関数か、(2)その
    拡張関数を実行するために要求される通信バッファの所
    定のデータサイズよりもサイズの小さい少なくとも1つ
    の第2引数指定データを有する第2のタイプの拡張関数
    のいずれかである、マルチプロセッサコンピュータシス
    テムを使用する方法であって、 第1プロセッサでランするメインプログラムから拡張関
    数を呼び出し、 前記拡張関数が第1のタイプの拡張関数である場合に
    は、前記呼び出された拡張関数に対応する第1引数デー
    タを、前記呼び出された拡張関数に対応する所定のパケ
    ットサイズの複数のデータパケットに分割し、前記所定
    のパケットサイズは、複数の前記データパケットが通信
    バッファ内で同時に記憶されることが可能なサイズであ
    り、 前記拡張関数が第1のタイプの拡張関数である場合に
    は、前記呼び出された拡張関数に対応する第1エントリ
    ・ポイントコマンドによって、第1プロセッサでランす
    る第1通信ルーチンを実行し、 前記第1通信ルーチンを実行するステップが、 前記呼び出された拡張関数に対応する拡張関数識別子
    と、データパケットカウントを通信バッファに書き込む
    ステップを有し、前記データパケットカウントは、前記
    呼び出された拡張関数のために第2プロセッサーへ送る
    前記引数データのデータパケットの総数を示し、 順次的に、(a)前記データパケットの1つを通信バッ
    ファに書き込み、(b)前記データパケットの1つが第
    2プロセッサによって通信バッファから読み取られたか
    どうかを判断し、(c)通信バッファに書き込まれた前
    記データパケットの数から、通信バッファから読み取ら
    れた前記データパケットの数を引いたものが、前記所定
    のパケットサイズよりも大きい通信バッファ内のフリー
    データ空間を示す場合には、前記複数のデータパケット
    が通信バッファに書き込まれるまで、前記データパケッ
    トの別の1つを通信バッファに書き込むステップを有
    し、 前記拡張関数が第2のタイプの拡張関数である場合に
    は、前記呼び出された拡張関数に対応する第2エントリ
    ・ポイントコマンドによって第1プロセッサでランする
    第1通信ルーチンを実行し、 前記第1通信ルーチンを実行するステップが、 前記呼び出された拡張関数に対応する拡張関数識別子を
    通信バッファに書き込むステップと、 第2引数データを通信バッファに書き込むステップと、 第2引数データが通信バッファから読み取られたかどう
    かを判断するステップとを有し、 前記拡張関数識別子を、第2プロセッサによって通信バ
    ッファから読み出し、 前記拡張関数識別子が、前記拡張関数が第1のタイプの
    拡張関数であることを示す場合には、第2プロセッサで
    ランする第2通信ルーチンを実行し、 前記第2通信ルーチンを実行するステップが、 順次的に、(a)前記データパケットの1つを通信バッ
    ファから読み出し、(b)前記データパケットの1つが
    通信バッファから読み出されたことを示し、(c)通信
    バッファから読み出されたデータパケットの数を、前記
    データパケットカウントと比較することにより、前記通
    信バッファから読み出された前記データパケットの前記
    1つが、前記呼び出された拡張関数のための最後の前記
    データパケットかどうか判断し、 前記判断するステップで、前記データパケットの前記1
    つが、前記最後の前記データパケットではないと判断さ
    れれば、他の前記データパケットについて、前記読み取
    り、示し、判断するステップを繰り返し、 前記判断するステップで、前記データパケットの前記1
    つが、前記最後の前記データパケットであると判断され
    れば、前記拡張関数識別子に対応する前記呼び出された
    拡張関数を第2プロセッサで実行するステップを有し、 前記拡張関数識別子が、前記拡張関数が第2のタイプの
    拡張関数であることを示す場合には、第2プロセッサで
    ランする第2通信ルーチンを実行し、 前記第2通信ルーチンを実行するステップが、 第2引数データを通信バッファから読み出すステップ
    と、 第2引数データが通信バッファから読み出されたことを
    示すステップと、 前記拡張関数識別子に対応する前記呼び出された拡張関
    数を、第2プロセッサ上で実行するステップとを有する
    方法。
  2. 【請求項2】前記第1プロセッサが、拡張関数の引数を
    記憶するメモリーを備え、 前記第1エントリ・ポイントコマンドが、前記データパ
    ケットカウントの前記複数のパケット数の表示、前記所
    定のパケットサイズ、及びメモリ内の引数データのロケ
    ーション表示を有することを特徴とする請求項1に記載
    の方法。
  3. 【請求項3】前記第1プロセッサが、拡張関数の引数を
    記憶するメモリーを備え、 前記第2エントリ・ポイントコマンドが、前記第2引数
    の数の表示と、各第2引数とを有することを特徴とする
    請求項1に記載の方法。
JP2275158A 1989-10-12 1990-10-12 マルチプロセッサコンピュータシステム使用方法 Expired - Fee Related JP2991242B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42044089A 1989-10-12 1989-10-12
US420440 1989-10-12

Publications (2)

Publication Number Publication Date
JPH03208159A JPH03208159A (ja) 1991-09-11
JP2991242B2 true JP2991242B2 (ja) 1999-12-20

Family

ID=23666479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2275158A Expired - Fee Related JP2991242B2 (ja) 1989-10-12 1990-10-12 マルチプロセッサコンピュータシステム使用方法

Country Status (2)

Country Link
US (1) US5355485A (ja)
JP (1) JP2991242B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
US6085314A (en) * 1996-03-18 2000-07-04 Advnced Micro Devices, Inc. Central processing unit including APX and DSP cores and including selectable APX and DSP execution modes
US5790824A (en) * 1996-03-18 1998-08-04 Advanced Micro Devices, Inc. Central processing unit including a DSP function preprocessor which scans instruction sequences for DSP functions
US6032247A (en) * 1996-03-18 2000-02-29 Advanced Micro Devices, Incs. Central processing unit including APX and DSP cores which receives and processes APX and DSP instructions
US5781792A (en) * 1996-03-18 1998-07-14 Advanced Micro Devices, Inc. CPU with DSP having decoder that detects and converts instruction sequences intended to perform DSP function into DSP function identifier
US5892934A (en) * 1996-04-02 1999-04-06 Advanced Micro Devices, Inc. Microprocessor configured to detect a branch to a DSP routine and to direct a DSP to execute said routine
US5721945A (en) * 1996-05-06 1998-02-24 Advanced Micro Devices Microprocessor configured to detect a DSP call instruction and to direct a DSP to execute a routine corresponding to the DSP call instruction
US6477143B1 (en) 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
US6529505B1 (en) * 1998-07-14 2003-03-04 Lucent Technologies Inc. System for expanding a parameter encoding field in a message to allow additional parameters to be added while maintaining compatibility with existing parameter encodings
US6363472B1 (en) * 1998-09-03 2002-03-26 Telefonaktiebolaget L M Ericsson (Publ) Method and system for minimizing effect of replacing programming languages in telephony systems

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4374428A (en) * 1979-11-05 1983-02-15 Rca Corporation Expandable FIFO system
US4445176A (en) * 1979-12-28 1984-04-24 International Business Machines Corporation Block transfers of information in data processing networks
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
US4486854A (en) * 1981-10-15 1984-12-04 Codex Corporation First-in, first-out memory system
US4500960A (en) * 1982-06-28 1985-02-19 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
US4539637A (en) * 1982-08-26 1985-09-03 At&T Bell Laboratories Method and apparatus for handling interprocessor calls in a multiprocessor system
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US4564901A (en) * 1983-07-21 1986-01-14 Burroughs Corporation Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors
US4567562A (en) * 1983-07-21 1986-01-28 Burroughs Corporation Controller for controlling access to a plurality of records that can be accessed and changed by several independent processors
US4646231A (en) * 1983-07-21 1987-02-24 Burroughs Corporation Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor
US4882674A (en) * 1985-03-05 1989-11-21 Wang Laboratories, Inc. Apparatus and method for control of one computer system by another computer system
US5056003A (en) * 1985-06-17 1991-10-08 International Business Machines Corporation Distributed data management mechanism
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
US4864543A (en) * 1987-04-30 1989-09-05 Texas Instruments Incorporated First-in, first-out memory with counter address pointers for generating multiple memory status flags
EP0206743A3 (en) * 1985-06-20 1990-04-25 Texas Instruments Incorporated Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution
US4777588A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4920483A (en) * 1985-11-15 1990-04-24 Data General Corporation A computer memory for accessing any word-sized group of contiguous bits
US4727537A (en) * 1985-12-24 1988-02-23 American Telephone And Telegraph Company Flow control arrangement for the transmission of data packets to a communication network
US4851988A (en) * 1986-03-31 1989-07-25 Wang Laboratories, Inc. Loosely-coupled computer system using global identifiers to identify mailboxes and volumes
US4914570A (en) * 1986-09-15 1990-04-03 Counterpoint Computers, Inc. Process distribution and sharing system for multiple processor computer system
US4768150A (en) * 1986-09-17 1988-08-30 International Business Machines Corporation Application program interface to networking functions
US4849877A (en) * 1986-12-22 1989-07-18 American Telephone And Telegraph Company Virtual execution of programs on a multiprocessor system
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US4901231A (en) * 1986-12-22 1990-02-13 American Telephone And Telegraph Company Extended process for a multiprocessor system
US4839866A (en) * 1987-05-29 1989-06-13 Texas Instruments Incorporated Cascadable first-in, first-out memory
US4873625A (en) * 1987-11-17 1989-10-10 International Business Machines Corporation Method and apparatus for extending collation functions of a sorting program
US4933901A (en) * 1988-01-11 1990-06-12 Texas Instruments Incorporated Method for assigning priority to read and write requests received closely in time
US4815039A (en) * 1988-01-11 1989-03-21 Texas Instruments Incorporated Fast real-time arbiter
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
JPH021671A (ja) * 1988-03-17 1990-01-05 Toshiba Corp パケット交換機の負荷制御方式
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US4891788A (en) * 1988-05-09 1990-01-02 Kreifels Gerard A FIFO with almost full/almost empty flag
US4949255A (en) * 1988-09-07 1990-08-14 International Business Machines Corp. Message interface and method for recursive calling between interpretive and compiled computer processes
US5124909A (en) * 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
US5073852A (en) * 1988-12-16 1991-12-17 Cayman Systems, Inc. Network protocol translator including method and apparatus for reducing interprocess communication and data exchange overhead
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
US5218699A (en) * 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5261095A (en) * 1989-10-11 1993-11-09 Texas Instruments Incorporated Partitioning software in a multiprocessor system

Also Published As

Publication number Publication date
US5355485A (en) 1994-10-11
JPH03208159A (ja) 1991-09-11

Similar Documents

Publication Publication Date Title
US5394544A (en) Software system debugger with distinct interrupt vector maps for debugging and application programs
US5247678A (en) Load time linker for software used with a multiprocessor system
US6321323B1 (en) System and method for executing platform-independent code on a co-processor
US5129064A (en) System and method for simulating the I/O of a processing system
JP4050764B2 (ja) コンパイルシステム
EP0327196B1 (en) Processor simulation
US7350200B2 (en) Method and system of controlling dynamically compiled native code size
US5784638A (en) Computer system supporting control transfers between two architectures
US5269021A (en) Multiprocessor software interface for a graphics processor subsystem employing partially linked dynamic load modules which are downloaded and fully linked at run time
EP0752646B1 (en) Data access implementation of device driver interface
JPH0760380B2 (ja) プログラム呼び出し装置
US5404519A (en) System for extending software calls to functions on another processor by means of a communications buffer
US11768757B2 (en) Kernel debugging system and method
US7558724B2 (en) Operation region describing a virtual device
US20040003377A1 (en) Converting byte code instructions to a new instruction set
US7093263B1 (en) System and methodology for supporting a platform independent object format for a run-time environment
JP2991242B2 (ja) マルチプロセッサコンピュータシステム使用方法
Bodenstab et al. The UNIX system: UNIX operating system porting experiences
US4991083A (en) Method and system for extending address space for vector processing
EP0667573A1 (en) Incorporation of services written in one operating system environment into another operating system environment
EP0458626B1 (en) Initial program loading system
JPH0668724B2 (ja) シミユレーシヨン方法
Bulman Stack computers: An introduction
JP3051438B2 (ja) 拡張グラフィック機能を与える方法
Overgaard UCSD Pascal™: a portable software environment for small computers

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees