JPH05225153A - 高レベル命令の並列処理装置及び並列処理方法 - Google Patents

高レベル命令の並列処理装置及び並列処理方法

Info

Publication number
JPH05225153A
JPH05225153A JP4140195A JP14019592A JPH05225153A JP H05225153 A JPH05225153 A JP H05225153A JP 4140195 A JP4140195 A JP 4140195A JP 14019592 A JP14019592 A JP 14019592A JP H05225153 A JPH05225153 A JP H05225153A
Authority
JP
Japan
Prior art keywords
processor
routine
processing
instructions
pipeline
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
JP4140195A
Other languages
English (en)
Other versions
JP3416877B2 (ja
Inventor
Jimmie D Edrington
ジミー・ダライアス・エドリントン
Mark A Einkauf
マーク・アラン・アインカウフ
Allen P Jensen
アレン・ピーター・イェンセン
Michael T Vanover
マイケル・テレル・ヴァノーヴァー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05225153A publication Critical patent/JPH05225153A/ja
Application granted granted Critical
Publication of JP3416877B2 publication Critical patent/JP3416877B2/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P20/00Technologies relating to chemical industry
    • Y02P20/10Process efficiency
    • Y02P20/129Energy recovery, e.g. by cogeneration, H2recovery or pressure recovery turbines

Abstract

(57)【要約】 【目的】 プロセッサを容易に付加し除去することので
きる能力、あるいはパイプライン全体にわたる作業負荷
の調整のしやすさを、多重処理パイプラインに提供する
こと。 【構成】 本発明による、高レベル命令を処理するため
の装置は、複数の処理ユニットと、上記の高レベル命令
を実行するための複数の命令を生成する手段と、上記の
生成された命令を、各グループが上記の処理ユニットの
1つによって処理される命令を少なくとも1つ含む、1
以上のグループに動的に編成する手段とを具備する。ま
た、本発明による、複数の処理ユニットによって高レベ
ル命令を処理する方法は、上記の高レベル命令を実行す
るための複数の命令を生成する段階と、上記の生成され
た命令を、各グループが上記の処理ユニットの1つによ
って処理される命令を少なくとも1つ含む、1以上のグ
ループに動的に編成する段階とを具備する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に並列計算に関
し、より具体的には、処理負荷を多重プロセッサ・パイ
プラインの全体にわたって動的に平衡させることに関す
る。
【0002】
【従来の技術】従来技術では、並列パイプライン処理を
実現するため、多くの種類のプロセッサ、メモリ、バス
及びその他資源の構成が用いられてきた。これらの構成
には、複数のプロセッサが共用メモリを利用するための
システムや、プロセッサが並列作業負荷を共有するため
のシステムが含まれる。
【0003】次に、並列パイプライン処理に用いられ
る、様々な構成及び技法について述べる。
【0004】米国特許第4930102号明細書は、様
々な物理的構成要素間のインターフェース・システムと
待機中の活動を保持する待ち行列構造とを含む、並列プ
ロセッサを用いるコンピュータ・アーキテクチャを対象
とする。より具体的には、このコンピュータ・アーキテ
クチャは、クロスバー回路及びアコーディオン記憶待ち
行列構造を含んでいる。
【0005】米国特許第4920487号明細書は、そ
の中の各接続部で同じ計算が実行されるネットワークを
利用することにより、全計算負荷を平衡させる、複数の
処理ユニット及び共用メモリを備えた並列処理コンピュ
ータを対象とする。
【0006】米国特許第4875161号明細書は、複
数プログラム実行パイプラインを支援するためのベクト
ル・ファイル編成を対象とする。各パイプラインは、フ
ァイル記憶域をセグメント化し、セグメントの様々な要
素をアドレス指定することにより、ベクトル・ファイル
の様々なブロックに同時にアクセスすることができる。
【0007】米国特許第4850027号明細書は、大
容量のメモリ及びバスなしで、多くのイメージ処理ネッ
トワークの選択肢を提供する、処理要素の接続が制限さ
れている、イメージ処理システムを対象とする。
【0008】米国特許第4839798号明細書は、複
数のオンライン接続コンピュータ・システムを備えた、
コンピュータ・ネットワーク・システムを対象とする。
各コンピュータ・システムは、別のコンピュータ・シス
テムへのジョブの転送を要求することができる。
【0009】米国特許第4814978号明細書は、多
数のVLSI回路チップを用いるコンピュータ設計を対
象とする。この設計は、複数の処理要素が外部には入出
力回路により、内部では、任意の処理要素から他の任意
の処理要素への伝送経路を実施する経路指定ネットワー
クを介して送られるパケットにより通信するという、静
的データフロー・アーキテクチャである。
【0010】米国特許第4766566号明細書は、複
式並列実行ユニットを用いるRISC型VLSIプロセ
ッサを対象とする。複式ユニット間の負荷は、加算回
路、乗算回路、または演算論理回路をユニットに加える
ことにより平衡させることができる。
【0011】米国特許第4736291号明細書は、大
容量メモリ中に記憶されている地震データを処理するた
めの、複数の独立した処理ユニットを内蔵する汎用アレ
イ・プロセッサを対象とする。ディジタル・ホスト・コ
ンピュータが、ホスト・インターフェース機構を介して
システムの全体的制御を行う。
【0012】米国特許第4633387号明細書は、複
数制御ユニット周辺データ記憶システムなど、より多忙
でないユニットからの作業要求に基づいてより多忙なユ
ニットが当該より多忙でないユニットに作業を転送でき
る、複数ユニット・データ処理システムを対象とする。
【0013】米国特許第4543626号明細書は、コ
マンドに応答して、多重プロセッサ・システムにおける
複数のプロセッサの動作を調整するための制御配置構成
を対象とする。受け取った各コマンドは、経路ベクトル
を含む所定の経路に関連づけられる。その経路用の制御
ブロックが生成される。各経路ベクトルは、実行すべき
動作と、動作を実行するステーションを識別する。各ス
テーションは、そのステーションが順次検索し処理する
制御ブロックを含む、作業待ち行列を有する。
【0014】米国特許第4504909号明細書は、C
Tスキャナから獲得したデータを実時間処理するための
アレイ・プロセッサを対象とする。このシステムでは、
所与のアレイの下位部分の処理が、次のアレイ用に獲得
されるデータ・セットの入力とインターリーブされてい
る。
【0015】米国特許第4495562号明細書は、プ
ロセッサの使用時間を定期的に測定して作業負荷を決定
する、並列処理システム用の制御方法を対象とする。
【0016】米国特許第4493020号明細書は、各
高レベル命令が1つまたは複数のタスクによって実行さ
れ、次いで、各タスクが1つまたは複数のタスク・マイ
クロ命令を実行することによりマイクロプログラム式に
実行される、マイクロプログラム式データ処理システム
を対象とする。別々の3つのプロセッサが、メモリなど
同じ物理的ハードウェアを共用しながら、互いに120
度の位相ずれで動作する。資源は、割振り可能なレジス
タの状況に基づいて、要求に応じてプロセッサに割り振
られる。
【0017】米国特許第4493019号明細書は、互
いに120度の位相で動作する別々の3つのプロセッサ
を用いて、マイクロ命令を実行するように実施されてい
る、3段ハイ・ポイント・アーキテクチャを有するマイ
クロプログラム式データ処理システムを対象とする。
【0018】米国特許第4384324号明細書も、互
いに120度の位相で動作する別々の3つのプロセッサ
を用いて、マイクロ命令を実行するように実施されてい
る、3段ハイ・ポイント・アーキテクチャを有するマイ
クロプログラム式データ処理システムを対象とする。
【0019】米国特許第4229790号明細書は、タ
スク及び命令を並行処理するためのシステムを対象とす
る。プロセッサは、制御ユニット及び機能ユニットはパ
イプライン方式を用いるが、優先順位制約のペナルティ
を回避する、多重命令多重データ表示画面ディジタル・
コンピュータである。
【0020】米国特許第3905023号明細書は、交
換機を介して独立に動作する計算モジュール、入出力モ
ジュール、及びメモリを有する、多重プログラム式多重
処理情報処理システムを対象としている。
【0021】
【発明が解決しようとする課題】本発明の目的は、多重
処理パイプラインに、プロセッサを容易に付加し除去す
ることができる能力、あるいはパイプライン全体にわた
る作業負荷の調整のしやすさを提供することである。
【0022】
【課題を解決するための手段】本発明は、複数の処理ユ
ニットと、高レベル命令を実行するための複数の命令を
生成する手段と、上記の生成された命令を、各グループ
が上記の処理ユニットの1つによって処理される命令を
少なくとも1つ含む、1以上のグループに動的に編成す
る手段とを含む、高レベル命令を処理するための装置で
ある。
【0023】あるいは、本発明は、上記の高レベル命令
を実行するための複数の命令を生成する段階と、上記の
生成された命令を、各グループが上記の処理ユニットの
1つによって処理される命令を少なくとも1つ含む、1
以上のグループに動的に編成する段階とを含む、高レベ
ル命令を複数の処理ユニットによって処理する方法であ
る。
【0024】
【実施例】図1は、典型的なディジタル・コンピュータ
・システム100の構成図である。コンピュータ・シス
テム100は、ホスト・コンピュータ105を含んでい
る。ホスト・コンピュータ105は、メモリ120に結
合された主プロセッサ110を含み、主パイプライン1
25、入力装置130、出力装置140を備えている。
主プロセッサ110は、単一プロセッサまたは複数のプ
ロセッサを含む。入力装置130には、鍵盤機構、マウ
ス、タブレットまたはその他の種類の入力装置が含まれ
る。出力装置140には、テキスト表示装置、作図装置
またはその他の出力装置が含まれる。ホスト・コンピュ
ータの主プロセッサ110は、また、図形アダプタ(gr
aphics adapter)200を介して、図形表示装置などの
図形出力装置150に結合することができる。図形アダ
プタ200は、バス160を介して、図形に関する命令
を主プロセッサ110から受け取る。これらの命令は、
光の数と位置などの属性、ならびに三角形、多辺形等の
レンダリングなどのタスクを含んでいる。次いで、図形
アダプタは、これらの命令を、図形プロセッサ220及
び図形メモリ230を含む図形パイプライン210で実
行する。次いで、図形パイプラインが、これらの命令を
実行し、フレーム・バッファ240をこれらの命令に基
づいて更新する。フレーム・バッファ240は、図形出
力装置に表示されるあらゆる画素用のデータを含んでい
る。ランダム・アクセス・メモリ・ディジタル・アナロ
グ変換器(RAMDAC)250が、フレーム・バッフ
ァに記憶されているディジタル・データをRGB(赤/
緑/青)信号に変換し、それが、図形表示装置150に
送られて、主プロセッサからの所望の図形出力をレンダ
リングする。
【0025】図2は、本発明の好ましい実施例を利用し
た、可能な図形パイプライン210の構成図である。図
形パイプライン210は、3つのプロセッサ300、3
10、320を含んでいる。代替パイプラインでは、よ
り多いまたはより少ないプロセッサを含んでいてもよ
い。さらに、主パイプライン、または図形パイプライン
以外の他のパイプラインも、本発明の実施例を利用する
ことができる。さらに、各プロセッサは、それぞれがパ
イプライン、並列プロセッサなどのグループ化された複
数のプロセッサを含むことのある、処理ユニットと見る
ことができる。第1プロセッサ300は、作業負荷をパ
イプライン内で分配する割振りプロセッサとして使用さ
れる。代替パイプラインでは、パイプラインに先行する
割振りプロセッサを有することができる。メモリには、
内部メモリ330、340、350と外部メモリ36
0、365、370が含まれる。各内部メモリは、プロ
セッサに緊密結合され、頻繁に用いられる情報の小型で
かつ高速の記憶域を提供する。各外部メモリは、より大
きな記憶域を必要とする情報、またはプロセッサによっ
てそれほど頻繁に使用されない情報を格納する。外部メ
モリ360、365、370は、それぞれ、バス38
0、385、390によってプロセッサ300、31
0、320に結合されている。
【0026】図3は、好ましい実施例において、ルーチ
ンを処理パイプラインに割り振るのに用いられる、パイ
プライン・マップ400、タスク分割コード430、ル
ーチン・テーブル440及び構成キャッシュ450を記
憶する、外部メモリ360などのメモリの構成図であ
る。属性バッファは、ウィンドウ位置、変形、光情報等
など、パイプラインによって使用される属性を記憶す
る。パイプライン・マップ400は、プロセッサ・マッ
プ410及びメモリ・マップ420を含んでいる。プロ
セッサ・マップ410は、実行のためのルーチンが割り
振られた、パイプライン中の各プロセッサ用のプロセッ
サ・データ構造を含んでいる。割振りプロセッサがパイ
プライン中のプロセッサとしてルーチンを実行する場
合、割振りプロセッサ用のデータ構造も存在する。メモ
リ・マップ420は、パイプライン内の各メモリ用のメ
モリ・データ構造を含んでいる。上記のマップについて
は、下記の図4及び図5により詳しく記載されている。
内部メモリには、タスク分割コード430、ルーチン・
テーブル440、構成キャッシュ450も含まれてい
る。タスク分割コードは、プロセッサがそれを実行する
ように指令される、各タスクまたは各高レベル命令用の
ルーチンまたは命令を生成するためのコードを含んでお
り、それによって、タスクまたは高レベル命令が1組の
ルーチンまたは命令に分割される。たとえば、三角形作
図タスクは、入力、変換、クリッピング、光、変形、出
力の各ルーチンに分割することができ、これらのルーチ
ンが順に実行される。ルーチン・テーブル440は、処
理ID(PID)によって実行される、可能なルーチン
または命令のリストを含んでいる。各ルーチン・エント
リは、割振りプロセス中に利用されるルーチンに関する
情報を含んでいる。ルーチン・エントリについては、下
記でより詳しく説明する。構成キャッシュ450は、以
前に構成されたタスクのリストを含んでいる。現属性バ
ッファ455は、光の数や位置など、適用業務ソフトウ
ェアからアダプタに転送済みの現属性を含んでいる。タ
スク分割コード430、ルーチン・テーブル440、構
成キャッシュ450については、下記でより詳しく説明
する。
【0027】図4及び図5は、上記の図3に示したパイ
プライン・マップ400中のプロセッサ及びメモリに利
用できるデータ構造の例を示す。プロセッサ・データ構
造460は、上記の図2に示したパイプライン中に示さ
れているプロセッサP2 310用の可能なデータ構造
を示している(図4)。このデータ構造は、それぞれ前
段プロセッサP1(300)、次段プロセッサP3(3
20)、内部メモリM2(340)、外部メモリM4
(360)及びM5(365)を指すポインタ461〜
465を含んでいる。このデータ構造はまた、プロセッ
サに割り当てられる内部メモリ量466及び外部メモリ
量467(ワード単位)を含んでいる。このデータ構造
はまた、プロセッサ速度など利用される他の情報468
を含んでいる。メモリ・データ構造470は、上記の第
2図に示したメモリM4用の可能なデータ構造を示して
いる(図5)。このメモリ・データ構造は、メモリの量
(ワード単位)473及びそのメモリを利用するプロセ
ッサを指すポインタ471を含んでいる。メモリ・デー
タ構造はまた、データを突きとめるため、各メモリ中を
ステップ式に進むためのロード段階で使われるパイプラ
イン中の前段メモリを指すポインタ472を含んでい
る。このデータ構造は、利用される他の情報474を含
むことができる。
【0028】図6は、好ましい実施例で割振りプロセッ
サがタスクを割り振るのに利用できる、パイプライン・
マップから構築されたポインタまたは連係リスト500
〜580を示す図である。パイプライン中の最後のメモ
リ550(M3)が、パイプラインの第1メモリ560
(M4)に導く連係リストを開始させることに留意され
たい。これは、割振りプロセッサが、あるメモリ・デー
タ構造から別のそれに単に移るだけで情報を見つけるの
に有用である。
【0029】図7は、処理パイプラインでの処理のため
にタスクを割り振りまたは編成するのに使用される方法
の高レベル流れ図である。構成と称する第1段階800
で、割振りプロセッサは、所与のタスクを実施するため
に実行すべきルーチンの構成リストを構築する。構成リ
ストは、各ルーチンの実行に必要な時間の長さ、及び各
ルーチンごとに実行する必要のある初期設定ルーチンを
含んでいる。初期設定ルーチンは、そのルーチンによっ
て使用されるいくつかの属性をセットアップし、あるい
はそのルーチン用の作業用記憶域を割り振る。第2段階
805で、構成キャッシュを検査して、タスクが以前に
実行されたかどうか調べる。そうでない場合は、分配と
称する段階810で、割振りプロセッサは、上記のパイ
プライン・マップを利用しながら、パイプライン内のプ
ロセッサ間でルーチンを動的に編成または分配し、それ
により、ルーチンまたは命令を、パイプライン中のプロ
セッサによって実行されるルーチンまたは命令のグルー
プにグループ化する。分配プロセスは、ルーチンまたは
命令の編成または割振りが、予め定義されておらず、割
り振られる命令を処理する時間の長さ、命令を実行する
のに利用されるプロセッサの数、プロセッサに対する現
処理負荷などの要因に応じて変化し得るという点で動的
である。処理スタックと呼ばれるデータ構造が構築され
るのは、この段階である。処理スタックとは、タスクの
その部分を実施するために、ある特定のプロセッサまた
は処理ユニットが実行する一群のルーチンまたは命令で
ある。好ましい実施例では、何らかのルーチンを実行す
る各プロセッサごとに1つずつの処理スタックが存在す
る。ロードと称する次の段階820で、処理タスクに、
プロセッサによって実行される適当なメモリ中のデータ
及び命令を指す適切なポインタがロードされる。タスク
が以前に実行されたと上記の段階805で判定された場
合は、処理スタックを検査して、必要なすべてのルーチ
ン及びデータ・ポインタがロードされていることを確認
する、代替の短縮ロード段階825が実行される。実行
と称する最終段階830で、所望のタスクを実施するた
め、パイプライン中の各プロセッサに割り振られた処理
スタックが、順次実行される。好ましい実施例では、次
いで、前のタスク用の処理スタックの実行が完了する前
に次の処理スタックの実行を開始することを含めて、後
続のタスクを上記のように処理することができる。これ
が可能なのは、パイプライン中のプロセッサが、処理ス
タックを順にしかし独立して処理できるからである。
【0030】図8は、所定の1組のルーチン用に生成で
きる処理スタック900を示す図である。処理スタック
は、実行されるルーチン910〜940の連係リスト
(linked list)である。連係リスト中の各ルーチン
は、ある作業を実施する。このルーチンは、ルーチン用
の処理ID(PID)950、ルーチン・コードの局所
アドレス960、ルーチンの入力データの入手先を示す
入力ポインタ970、出力データの書込み先を示す出力
ポインタ980、及び局所作業用記載域を指すポインタ
などの局所情報990を必要とする、自律機能である。
この情報は、下記でより詳しく述べるロード段階820
中に、処理スタックに付加される。各プロセッサは、こ
れらのポインタをその処理スタック・エントリから読み
取り、ルーチンをポインタにより呼び出し、次いで、処
理スタック中の次のルーチンについて同じ処理を繰り返
す。処理スタックは連係リストなので、制御プログラム
によって動的に容易に構築し操作することができる。
【0031】図9は、上記の図7に記載されている、構
成段階800のより詳細な流れ図である。第1段階10
00で、所与のタスク用のタスク分割コードが実行さ
れ、所与のタスクを実施するために、順に実行すべきル
ーチンの構成リストをもたらす。タスク分割コードは、
属性命令によって以前にシステムにロードされた、シス
テムの様々な現属性を考慮している。第2段階1005
で、タスク・タイプ用の構成ID(CID)を構成リス
トに加える。好ましい実施例では、CIDは、構成リス
トを生成する際にタスク分割コードがとる経路に基づく
ものである。その結果、同じ現属性をもつ同タイプの後
続のどのタスクでも、CIDは同じとなる。第3段階1
010で、構成ルーチン中の各ルーチンごとに、ルーチ
ン・テーブルを探索して、そのルーチンを実行するのに
必要な時間の長さ及びそのルーチンに対する制限条件を
決定する。ルーチンの制限条件としては、プロセッサが
ルーチンを実行する際の制限条件、たとえば、最初のプ
ロセッサが、アダプタ入力バッファにアクセスする必要
があるためにルーチンを実行しなければならないとか、
最後のプロセッサが、フレーム・バッファにアクセスす
る必要があるためにルーチンを実行しなければならない
とか、このルーチンには外部メモリが必要であるとかい
う制限条件、その他の可能なルーチン制限条件が含まれ
る。この情報は、分配段階中に最も有用となろう。ただ
し、これらの制限条件は、下記でより詳細に論じるよう
に、普通は分配段階中に使用されることはなく、通常は
どのような困難も起こさない。次いで、段階1020
で、この情報を反映するようにルーチン・リストが更新
される。
【0032】図10及び図11は、本発明の好ましい実
施例で使用される構成リスト1040及びルーチン・テ
ーブル1065を示す図である。構成リストは、所与の
タスクを実行するのに必要な各ルーチンの処理ID(P
ID)1045、各ルーチンを実行するのに必要な時間
1050、及びルーチンを割り振る際の制限条件105
5を示す。構成リストはまた、そのタスク・タイプのC
ID1060も含んでいる。構成リストは、構成段階
(図7の800)中に生成され、分配段階(図7の81
0)中に大いに利用される。ルーチン・テーブルは、す
べての既知ルーチンのPID1070、割振りプロセッ
サ・メモリ内のルーチン・コードのアドレス1075、
各ルーチンのサイズ1080、各ルーチンを実行するの
に必要な時間1085、各ルーチンの割振り制限条件1
090、及び時には初期設定ルーチンを指すポインタ1
095も含んでいる。これらの情報の一部は、構成段階
中に、構成リストを完成するために使用される。残りの
情報は、ロード段階中に利用される。
【0033】図12は、このタイプのタスクが以前に実
行されたかどうかを判定する、上記の図7に記載されて
いるステップ805のより詳細な流れ図である。第1段
階1100で、構成キャッシュ中の所与のタスク用の第
1エントリを読み取る。第1エントリが見つからない場
合は(段階1100)、現タスクが、関連する同じ属性
(モデル中で使用される光の数など)を用いて以前に実
行されていなかったので、分配段階に進む(段階115
0)。構成キャッシュ内で所与のタスク用のエントリが
見つかった場合、そのエントリの構成ID(CID)が
所与のタスクのCIDと比較される。CIDが同じ場合
は、内部属性をもつ同じタスクが以前に実行されてい
る。その結果、短期ロード段階に進む(段階114
0)。CIDが同じでない場合は、現エントリを検査し
て、構成キャッシュ中に別の後続エントリが存在するか
どうか調べる(段階1130)。存在しない場合は、現
タスクが同じ内部属性を用いて以前に実行されていなか
ったので、分配段階に進む(段階1150)。存在する
場合は、段階1120へ戻る。
【0034】図13は、本発明の好ましい実施例で利用
される構成キャッシュ・エントリ1160を示す図であ
る。構成キャッシュ・エントリは、構成ID(CID)
1165、次のキャッシュ・エントリを指すポインタ1
170、以前に実行された処理スタックのコピー117
5、以前に実行された処理スタックの局所メモリ・アド
レスを指すポインタ1180、どの処理スタックがなお
局所メモリ中にロードされているかを示す、各処理スタ
ック用のロード・フラグ1185を含んでいる。その他
の情報1190も、所望に応じて含めることができる。
【0035】図14は、上記の図7に記載されている、
分配段階810のより詳細な流れ図である。第1段階1
210で、割振りプロセッサが目標ボトルネックを計算
する。これは、いずれかのプロセッサに割り振られる最
長の経路長(path length:ルーチン実行時間を表す)
である。好ましい実施例では、目標ボトルネックは、実
行されるすべてのルーチンの経路長の和(構成リストか
ら導出される)をプロセッサの数で割った商として計算
する。第2段階1220で、構成リストにリストされて
いるルーチンが、プロセッサに順次割り当てられる。こ
の処理中に、処理スタックの枠組みが割振りプロセッサ
のメモリ中で構築される。ルーチンを実行する各プロセ
ッサごとに処理スタックが1つとなるように、所与のプ
ロセッサ用に実行されるルーチンが処理スタックにロー
ドされる。ルーチンのプロセッサへの割当てについて
は、下記により詳細に述べる。第3段階1230で、最
終プロセッサに目標ボトルネックよりも長い経路長が割
り当てられているかどうか判定する。そうである場合
は、段階1240で、新しい目標ボトルネックが計算さ
れ、段階1220の割当て処理が繰り返される。新しい
目標ボトルネックの計算については、下記の図16によ
り詳細に記載されている。すべてのプロセッサに目標ボ
トルネック以下の経路長が割り当てられている場合、段
階1250で、構成リストにリストされているルーチン
制限条件を検査して、プロセッサへのルーチンの現割当
てがこの制限条件を満たしているかどうか判定する。制
限条件を満たしている場合は、段階1270のロード段
階に進む。制限条件を満たしていない場合は、段階12
60で、それらのルーチン及び介在するルーチンを適当
なプロセッサに割り当てし直す。たとえば、あるルーチ
ンがパイプライン中の第2プロセッサに割り当てられて
いるが、そのルーチンがパイプライン中の第1プロセッ
サのみに制限されている場合、そのルーチンならびに第
2プロセッサに割り当てられたその他の先行ルーチン
を、第1プロセッサに割り当てし直す。再割当てが完了
すると、段階1270で、処理はロード段階に進む。
【0036】図15は、上記の図14に記載されている
割当て段階1220のより詳細な流れ図である。第1段
階1310で、第1ルーチンを第1プロセッサに割り当
てる。この割当て中に、構成リスト中で与えられている
ルーチンの経路長が、そのルーチンを受け取るプロセッ
サ用の現割当て経路長に入力される。プロセッサ・デー
タ構造を使って、現割当て経路長を一時的に保持するこ
とができる。第2ステップ1320で、割振りプロセッ
サは、プロセッサに割り振るべきルーチンがまだ構成リ
スト中に残っているかどうか判定する。段階1320に
入るのはこれが最初なので、答は多分イエスである。次
の段階1330で、プロセッサに割り当てられている現
在の経路長と次に割り当てられるルーチンの経路長の和
を、目標ボトルネックと比較する。この量が目標ボトル
ネック以下の場合、段階1310で、次のルーチンがそ
のプロセッサに割り当てられ、現プロセッサ用の現割当
て経路長にそのルーチンの経路長が加えられる。プロセ
ッサに割り当てられた経路長に次のルーチンの経路長を
加えると目標ボトルネックを越えるようになるまで、こ
の処理が繰り返される。次いで、段階1340で、割振
りプロセッサがプロセッサ・データ構造中の次のプロセ
ッサを探すことにより、別のプロセッサがルーチンをま
だ割り当てられていないかどうか判定する。イエスの場
合、段階1350で、割当て処理は次のプロセッサに進
み、そのプロセッサ・データ構造にアクセスする。次い
で、段階1310で、そのプロセッサにルーチンが割り
当てられ、このルーチンの経路長が、ルーチンを受け取
るプロセッサ用の現割当て経路長に入力される。段階1
340でノーの場合は、段階1360で、残りのルーチ
ンが最終プロセッサに割り当てられ、このルーチンの経
路長が最終プロセッサの現割当て経路長に加えられる。
【0037】図16は、上記の図14に記載されている
好ましい新しい目標ボトルネックの計算段階のより詳細
な流れ図である。この処理の目的は、現目標ボトルネッ
クよりも大きな経路の最小線形和に等しい新しい目標ボ
トルネックを得ることである。第1段階1405で、可
変の最小経路長が、それをその可能な最大値に設定する
ことによって初期設定され、カウンタiが1にセットさ
れる。第2段階1410で、ルーチンiが構成リスト中
にあるかどうか判定する。これは最初のルーチン(i=
1)なので、答はイエスである。次の段階1415で、
経路長の和を0に設定し、カウンタjをカウンタiに等
しく設定する。段階1420で、経路長の和が、目標ボ
トルネックよりも大きいかどうか判定する。これは初め
ての通過なので、答はノーである。段階1425で、構
成リスト中で与えられているルーチン経路長を経路長の
和に加え、カウンタjを1だけ増分して、次のルーチン
に進む。段階1430で、ルーチンjが構成リスト中に
あるかどうか判定する。イエスの場合は、段階1420
に戻る。ノーの場合あるいは段階1420でイエスの場
合には、段階1435で、経路長の和が最小経路長より
小さいかどうか判定する。イエスの場合、段階1440
で、最小経路長を経路長の和に等しく設定する。次い
で、段階1445で、カウンタiを増分して、次の1組
のルーチンの処理を開始する。次いで、段階1410
で、ルーチンiが構成リスト中にあるかどうか判定す
る。ノーの場合は、図14の段階1220に戻る。
【0038】図17は、上記の図7に記載されているロ
ード段階のより詳細な流れ図である。最終プロセッサの
処理スタックから開始して、第1プロセッサの処理スタ
ックまで逆方向に作業することが望ましい。こうする
と、処理スタックを、最初の処理スタックから最終の処
理スタックまでのポインタを備えた連係リストとしてロ
ードすることが容易になる。第1段階1510で、処理
スタックから得られた処理ID(PID)を用いて、最
終処理スタックの第1ルーチンのアドレスをルーチン・
テーブルから読み取る。次いで、そのルーチンを局所メ
モリに、好ましくはプロセッサがアクセス可能な内部メ
モリにコピーする。次いで、局所ルーチンのアドレス
を、処理スタック中のルーチンのアドレスにロードす
る。段階1520で、ルーチンによって生成され使用さ
れるデータの入力アドレス及び出力アドレス用の入力ポ
インタ及び出力ポインタも生成される。これが処理スタ
ック中の最初のルーチンであるとすれば、この入力ポイ
ンタは入力ポート・アドレスである。この出力ポインタ
は、プロセッサがアクセス可能な内部メモリ中の局所ア
ドレスを指す。段階1530で、ある初期設定ルーチン
が、ルーチン・テーブルによって上記ルーチンが使用可
能なものとして指定されている場合、それが呼び出され
る。この初期設定ルーチンは、ウィンドウの位置、変
形、光情報等、そのルーチンが使用する属性を、局所メ
モリにロードする。さらに、この初期設定ルーチンは、
そのルーチンに必要な局所記憶域または作業用記憶域を
局所メモリ中でセットアップする。その作業用記憶域を
指すポインタが処理スタックにロードされる。ルーチ
ン、入力バッファ、出力バッファ、作業用記憶域へのメ
モリの割振り中に、構成キャッシュ中に記憶されてい
る、以前に実行された処理スタックのコピーを検査し
て、どのメモリ空間が使用可能か調べる。以前に実行さ
れた処理スタックに既に割り振られたメモリを現処理ス
タックに割り振りし直す場合、構成キャッシュ中のその
処理スタック用のロード・フラグがオフにされる。これ
は、以前に実行された処理スタック用の資源がもはやそ
の処理スタックに割り振られていないことを示す。この
フラグは、下記により詳細に述べる短縮ロード段階で使
用される。段階1540で、これが処理スタック上の最
終ルーチンなのかどうか判定する。ノーの場合、実行は
段階1510に戻り、処理スタック中の次のルーチンを
ロードする。イエスの場合は、段階1550で、これが
最終処理スタック(最初にロードされるが、処理スタッ
クの連係リスト中の最後にある処理スタック)なのかど
うか判定する。イエスの場合、段階1555で、復帰と
呼ばれる最終ルーチンを処理スタックに加える。この復
帰ルーチンは、実行段階中に実行されると、処理スタッ
クの実行を完了する。ノーの場合は、段階1560で、
send−to−nextと呼ばれる、プロセッサ間で
データを移動させるための最終ルーチンを現処理スタッ
クの最後に加える。このルーチンの入力は前のルーチン
の出力アドレスであり、この出力アドレスはそのプロセ
ッサの出力バッファ・アドレスである。次いで段階15
65で、処理スタックならびに処理スタックを指すポイ
ンタを局所メモリ及び構成キャッシュにロードする。さ
らに、処理スタック及びその資源が局所メモリにロード
されていることを示す、その処理スタック用のオンにな
ったロード・フラグが、構成キャッシュに記憶される。
次いで段階1575で、これが最初の処理スタック(最
後にロードされるが、処理スタックの連係リスト中の最
初にある)であるかどうか判定する。ノーの場合、実行
は段階1510に戻り、前の処理スタックの最初のルー
チンを加える。イエスの場合は、段階1580で、実行
段階に進む。
【0039】図18は、上記の図7に記載されている短
縮ロード段階のより詳細な流れ図である。上記のロード
段階の場合と同様に、最終プロセッサ用の処理スタック
から始めて、第1プロセッサ用の処理スタックまで逆方
向に作業することが好ましい。こうすると、必要な場合
に、第1処理スタックから最終スタックまでのポインタ
を備えた連係リストとして、処理スタックを再ロードす
ることが容易になる。第1段階1610で、所与のタス
ク及び属性を求めて最終処理スタックに関して構成キャ
ッシュを読み取る。段階1620で、処理スタック用の
ロード・フラグを検査して、処理スタックが依然ロード
されているかどうか調べる。ノーの場合、上記のロード
段階中に、段階1630で、処理スタックを局所メモリ
に再ロードする。これには、ルーチン、入力ポインタ、
出力ポインタの再ロード、初期設定ルーチンの再実行等
が含まれる。段階1620がイエスの場合、あるいは処
理スタックの再ロードの後、最終処理スタックが構成キ
ャッシュから読み出されたかどうか判定する。ノーの場
合は、段階1610に戻る。そうでない場合は、段階1
650で、実行段階に進む。
【0040】図19は、図2に記載されているパイプラ
イン用の上記の構成段階、分配段階、ロード段階によっ
て生成される、1組の処理スタック1700ないし19
00を示している。処理スタックは、3次元モデルの三
角形を1つの環境光及び2つの指向性光(直接光)でレ
ンダリングするルーチンを含んでいる。処理スタックの
実行は、第1プロセッサが第1スタック1700中の第
1ルーチン1710を実行することから開始される。こ
の場合、それは処理スタック中で与えられている局所ア
ドレスにあるメッシュ入力ルーチンとなるはずである。
このルーチンは、処理スタックからその入出力ポインタ
及び局所静的記憶域ポインタまたは作業用記憶域ポイン
タを拾い上げ、その機能を実行する。このルーチンは、
入力ポインタから、この場合はM1入力ポート・アドレ
スからデータを読み取り、出力ポインタに、この場合は
M1−Aに結果を渡す。必要に応じて、このルーチンは
やはり処理スタックに割り振られた作業用記憶域を使用
する。次いで、次のルーチン1720に進み実行する。
処理スタック1700中で実行される最終ルーチン17
40は、send−to−nextルーチンである。こ
のルーチンは、次のプロセッサへデータの直接メモリ・
アクセス(DMA)転送を開始する。send−to−
nextルーチンが呼び出された後、プロセッサは、s
end−to−nextルーチンが完了するまで、se
nd−to−next出力ポインタが指す出力バッファ
が書き込まれないようにする。その結果、プロセッサ
は、続いて割り振られるタスク用の後続の処理スタック
の処理を開始することができる。この場合、send−
to−nextルーチンが完了した後、処理は第2プロ
セッサに進み、そこで第2の処理スタック1800が実
行される。入力用にM2入力ポート・アドレス、出力用
にM2−Aを用いて、周囲光ルーチン1810が実行さ
れる。この場合も、第2プロセッサはsend−to−
nextルーチンに進み、そのルーチンが実行される。
処理は、第3プロセッサ用の処理スタック1900に進
む。これらのルーチンは、最終ルーチンまで実行され
る。最終スタック1900上の最終ルーチン1930
は、タスクが完了すると、実行を停止させる復帰ルーチ
ンである。
【0041】以上本発明を特定の実現例に関して完全に
説明したが、当業者には、他の代替実施例も明白なはず
である。たとえば、必要に応じて各パイプラインにタス
クが割り振られる、多重パイプライン用の割振りプロセ
ッサを使用することもできる。さらに、上記の各プロセ
ッサは複数の処理ユニットを含むことができる。これら
の複数の処理ユニットも、多重プロセッサ・パイプライ
ンに編成することができる。さらに、処理パイプライン
は、共用メモリを利用することができる。代替分配方式
も使用できる。さらに、構成キャッシュとは別の構成キ
ャッシュを用いて、もはやロードされていない、以前に
実行された処理スタックを検出する方法を実施すること
もできる。
【0042】
【発明の効果】本発明の利点は、プロセッサまたはメモ
リを付加または削減することにより、あるいはプロセッ
サ間またはメモリ間あるいはプロセッサとメモリとの間
の関係を変更することにより、パイプラインが容易に修
正できることにある。その後、ユーザは、単に、パイプ
ラインを表すパイプライン・マップを再構成し、以前に
割り振られた処理スタックを含む構成マップを消去する
だけでよい。こうすると、割振りプロセッサが、修正さ
れたパイプライン・マップを利用しながら、処理スタッ
クを新しいパイプライン構成用に割り振りし直すことに
より、パイプライン全体にわたって容易にタスクの平衡
をとり直すことが可能になる。
【図面の簡単な説明】
【図1】典型的なディジタル・コンピュータの構成図で
ある。
【図2】本発明の好ましい実施例を利用した、可能な図
形パイプラインの構成図である。
【図3】ルーチンを処理パイプラインに割り振るのに有
用な、パイプライン・マップ及びその他の情報を記憶す
るメモリの構成図である。
【図4】上記の図3に示したパイプライン・マップ中で
使用される、データ構造の例を示す図である。
【図5】上記の図3に示したパイプライン・マップ中で
使用される、データ構造の例を示す図である。
【図6】割振りプロセッサがタスクを割り振るのに利用
できる、パイプライン・マップから作成されたポインタ
または連係リストを示す図である。
【図7】タスクをパイプラインで処理するために割り振
りまたは編成するのに用いられる方法の高レベル流れ図
である。
【図8】所与の1組のルーチン用に生成できる、処理ス
タックを示す図である。
【図9】上記の第7図に記載されている構成段階のより
詳細な流れ図である。
【図10】構成リストを示す図である。
【図11】ルーチン・テーブルを示す図である。
【図12】上記の図7に記載されている段階805のよ
り詳細な流れ図である。
【図13】構成キャッシュ・エントリを示す図である。
【図14】上記の図7に記載されている分配段階810
のより詳細な流れ図である。
【図15】上記の図14に記載されている割当て段階1
220のより詳細な流れ図である。
【図16】上記の図14に記載されている新しい目標ボ
トルネック計算のより詳細な流れ図である。
【図17】上記の図7に記載されているロード段階のよ
り詳細な流れ図である。
【図18】上記の図7に記載されている短縮ロード段階
のより詳細な流れ図である。
【図19】1組の実行用処理スタックを示す図である。
【符号の説明】
100 ディジタル・コンピュータ・システム 105 ホスト・コンピュータ 110 主コンピュータ 120 メモリ 130 入力装置 140 出力装置 150 図形出力装置 160 バス 200 図形アダプタ 210 図形パイプライン 220 図形プロセッサ 230 図形メモリ 240 フレーム・バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク・アラン・アインカウフ アメリカ合衆国78641、テキサス州リーン ダー、ノース・ウォーカー 2704番地 (72)発明者 アレン・ピーター・イェンセン アメリカ合衆国78758、テキサス州オース チン、スウェアリンゲン 11901番地 11 号 (72)発明者 マイケル・テレル・ヴァノーヴァー アメリカ合衆国78727、テキサス州オース チン、ウィスパリング・バレー・ドライブ 4603番地

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】a)複数の処理ユニットと、 b)高レベル命令を実行するための複数の命令を生成す
    る手段と、 c)各グループが上記処理ユニットの1つによって処理
    される命令を少なくとも1つ含むように、上記の生成さ
    れた複数の命令を1以上のグループに動的に編成する手
    段とを含む、高レベル命令を並列処理するための装置。
  2. 【請求項2】上記処理ユニットが、上記各命令グループ
    中の各命令を順次処理する手段を含むことを特徴とす
    る、請求項1の装置。
  3. 【請求項3】上記処理ユニットを順次結合する手段を含
    む、請求項2の装置。
  4. 【請求項4】上記グループを上記の処理ユニットによっ
    て順次処理する手段を含む、請求項3の装置。
  5. 【請求項5】上記編成手段に結合され、上記各命令を処
    理するための時間の長さを提供する手段と、 上記編成手段が、各命令を処理するために提供される上
    記時間の長さに基づいて、命令を上記グループに動的に
    編成する手段とを含むことを特徴とする、請求項4の装
    置。
  6. 【請求項6】上記編成手段に結合され、上記各命令を処
    理するための時間の長さを提供する手段と、 上記編成手段に結合され、上記処理ユニットの記述を提
    供する手段と、 上記編成手段が、各命令を処理するために提供される時
    間の長さ及び上記処理ユニットについて提供される記述
    に基づいて、命令を上記グループに動的に編成する手段
    とを含むことを特徴とする、請求項4の装置。
  7. 【請求項7】上記処理ユニットの少なくとも1つが、複
    数のプロセッサを含むことを特徴とする、請求項6の装
    置。
  8. 【請求項8】上記編成手段に結合された、上記各処理ユ
    ニットに利用可能なメモリ資源の記述を行う手段を含
    む、請求項6の装置。
  9. 【請求項9】a)高レベル命令を実行するための複数の
    命令を生成する段階と、 b)各グループが上記処理ユニットの1つによって処理
    される命令を少なくとも1つ含むように、上記の生成さ
    れた複数の命令を1以上のグループに動的に編成する段
    階とを含む、高レベル命令を複数の処理ユニットによっ
    て並列処理する方法。
JP14019592A 1991-07-10 1992-06-01 タスクを並列処理するための装置及び方法 Expired - Fee Related JP3416877B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72779091A 1991-07-10 1991-07-10
US727790 1991-07-10

Publications (2)

Publication Number Publication Date
JPH05225153A true JPH05225153A (ja) 1993-09-03
JP3416877B2 JP3416877B2 (ja) 2003-06-16

Family

ID=24924076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14019592A Expired - Fee Related JP3416877B2 (ja) 1991-07-10 1992-06-01 タスクを並列処理するための装置及び方法

Country Status (7)

Country Link
US (1) US5548737A (ja)
EP (1) EP0523863B1 (ja)
JP (1) JP3416877B2 (ja)
KR (1) KR970008527B1 (ja)
CN (1) CN1036877C (ja)
CA (1) CA2067576C (ja)
DE (1) DE69230700T2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530737A (ja) * 1998-11-16 2002-09-17 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) イベントベースシステムの同時処理
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561814A (en) * 1993-12-22 1996-10-01 Intel Corporation Methods and apparatus for determining memory operating characteristics for given memory locations via assigned address ranges
KR960043938A (ko) * 1995-05-27 1996-12-23 김광호 멀티프로세서 제어시스템의 단위 프로그램에 대한 메세지 과부하 제어방법
US5956744A (en) * 1995-09-08 1999-09-21 Texas Instruments Incorporated Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US5850632A (en) * 1995-09-08 1998-12-15 Texas Instruments Incorporated Memory access controller utilizing cache memory to store configuration information
US6310881B1 (en) * 1998-10-20 2001-10-30 Terabeam Corporation Method and apparatus for network control
US6591262B1 (en) * 2000-08-01 2003-07-08 International Business Machines Corporation Collaborative workload management incorporating work unit attributes in resource allocation
JP2005057738A (ja) * 2003-07-18 2005-03-03 Canon Inc 信号処理装置、信号処理方法及びプログラム
US7614055B2 (en) * 2004-06-14 2009-11-03 Alcatel-Lucent Usa Inc. Selecting a processor to run an executable of a distributed software application upon startup of the distributed software application
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US8589944B2 (en) * 2005-03-16 2013-11-19 Ricoh Production Print Solutions Method and system for task mapping to iteratively improve task assignment in a heterogeneous computing system
US7450129B2 (en) * 2005-04-29 2008-11-11 Nvidia Corporation Compression of streams of rendering commands
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US20160098279A1 (en) * 2005-08-29 2016-04-07 Searete Llc Method and apparatus for segmented sequential storage
US8046565B2 (en) * 2006-12-06 2011-10-25 Kabushiki Kaisha Toshiba Accelerator load balancing with dynamic frequency and voltage reduction
JP5195913B2 (ja) * 2008-07-22 2013-05-15 トヨタ自動車株式会社 マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法
US20100070656A1 (en) * 2008-09-12 2010-03-18 Atto Technology, Inc. System and method for enhanced load balancing in a storage system
JP6011421B2 (ja) * 2013-03-29 2016-10-19 富士通株式会社 ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法
JP6248761B2 (ja) * 2014-03-31 2017-12-20 富士通株式会社 記憶装置、データ記憶プログラム、およびデータ記憶方法
WO2019005054A1 (en) * 2017-06-29 2019-01-03 Intel Corporation DESIGN, DISCOVERY AND REUSE OF MODULAR ACCELERATOR FUNCTION UNIT (AFU)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55103656A (en) * 1979-01-31 1980-08-08 Toshiba Corp Information processing system
JPH01283663A (ja) * 1988-05-11 1989-11-15 Fujitsu Ltd 計算機システム
JPH0341550A (ja) * 1989-07-10 1991-02-22 Mitsubishi Electric Corp 並列分散処理方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099235A (en) * 1972-02-08 1978-07-04 Siemens Aktiengesellschaft Method of operating a data processing system
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
US4229790A (en) * 1978-10-16 1980-10-21 Denelcor, Inc. Concurrent task and instruction processor and method
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4493019A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Pipelined microprogrammed digital data processor employing microinstruction tasking
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
JPS57757A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Job execution schedule system
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US4504909A (en) * 1982-09-30 1985-03-12 General Electric Company Method of using an array processor for real time processing
US4543626A (en) * 1982-12-06 1985-09-24 Digital Equipment Corporation Apparatus and method for controlling digital data processing system employing multiple processors
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US4930102A (en) * 1983-04-29 1990-05-29 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
JPS61114363A (ja) * 1984-11-07 1986-06-02 Hitachi Ltd 計算機システム間ジヨブ転送方式
US4850027A (en) * 1985-07-26 1989-07-18 International Business Machines Corporation Configurable parallel pipeline image processing system
US4875161A (en) * 1985-07-31 1989-10-17 Unisys Corporation Scientific processor vector file organization
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4736291A (en) * 1985-11-22 1988-04-05 Texas Instruments Incorporated General-purpose array processor
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
EP0272836B1 (en) * 1986-12-22 1994-03-02 AT&T Corp. Controlled dynamic load balancing for a multiprocessor system
EP0312764A3 (en) * 1987-10-19 1991-04-10 International Business Machines Corporation A data processor having multiple execution units for processing plural classes of instructions in parallel
US4920487A (en) * 1988-12-12 1990-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method of up-front load balancing for local memory parallel processors
IL93239A (en) * 1990-02-01 1993-03-15 Technion Res & Dev Foundation High flow-rate synchronizer/schedular apparatus for multiprocessors
JP2771683B2 (ja) * 1990-07-17 1998-07-02 三菱電機株式会社 並列処理方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55103656A (en) * 1979-01-31 1980-08-08 Toshiba Corp Information processing system
JPH01283663A (ja) * 1988-05-11 1989-11-15 Fujitsu Ltd 計算機システム
JPH0341550A (ja) * 1989-07-10 1991-02-22 Mitsubishi Electric Corp 並列分散処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530737A (ja) * 1998-11-16 2002-09-17 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) イベントベースシステムの同時処理
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator

Also Published As

Publication number Publication date
CN1036877C (zh) 1997-12-31
CA2067576C (en) 1998-04-14
EP0523863B1 (en) 2000-02-23
CN1068434A (zh) 1993-01-27
EP0523863A2 (en) 1993-01-20
DE69230700D1 (de) 2000-03-30
DE69230700T2 (de) 2000-08-31
KR970008527B1 (ko) 1997-05-24
CA2067576A1 (en) 1993-01-11
US5548737A (en) 1996-08-20
JP3416877B2 (ja) 2003-06-16
EP0523863A3 (en) 1993-06-09
KR930002961A (ko) 1993-02-23

Similar Documents

Publication Publication Date Title
JP3416877B2 (ja) タスクを並列処理するための装置及び方法
CN107679621B (zh) 人工神经网络处理装置
CN107704922B (zh) 人工神经网络处理装置
CN107679620B (zh) 人工神经网络处理装置
US4956771A (en) Method for inter-processor data transfer
US4675806A (en) Data processing unit utilizing data flow ordered execution
KR100862124B1 (ko) 하위 포트 카운트 메모리를 이용하여 멀티포트 메모리를시뮬레이션하는 시스템 및 방법
KR101759266B1 (ko) 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법
EP3407182B1 (en) Vector computing device
CN103425533A (zh) 用于管理嵌套执行流的方法和系统
US20070273700A1 (en) Method, system and computer program product for efficiently utilizing limited resources in a graphics device
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
Merigot et al. A pyramidal system for image processing
US10580106B2 (en) Graphics processing method utilizing predefined render chunks
JPH07271744A (ja) 並列計算機
CN107329818A (zh) 一种任务调度处理方法及装置
CN103631648A (zh) 一种任务处理方法及系统
JP3733402B2 (ja) プロセッサ資源選択方法ならびにそのためのプロセッサ資源選択システムおよびコンピュ−タ読み取り可能なプログラム記録媒体
JPH08138060A (ja) 並列プロセッサを用いる表示処理装置
JP2003167726A (ja) コプロセッサ装置およびデータ転送を容易にするための方法
JPH08185377A (ja) 分散計算機システム
Siegel et al. Parallel memory system for a partitionable SIMD/MIMD machine
JP3304445B2 (ja) プログラム生成処理装置
CN116775283A (zh) 一种gpgpu资源分配管理方法及系统
Abuhamdeh The GAM II pyramid

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080411

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees