JP2003263331A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JP2003263331A
JP2003263331A JP2002061576A JP2002061576A JP2003263331A JP 2003263331 A JP2003263331 A JP 2003263331A JP 2002061576 A JP2002061576 A JP 2002061576A JP 2002061576 A JP2002061576 A JP 2002061576A JP 2003263331 A JP2003263331 A JP 2003263331A
Authority
JP
Japan
Prior art keywords
data
memory
arithmetic
processor
multiprocessor system
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.)
Pending
Application number
JP2002061576A
Other languages
English (en)
Inventor
Atsushi Kunimatsu
松 敦 国
Kenji Shirakawa
川 健 治 白
Takashi Fujiwara
原 崇 藤
Jiro Amamiya
宮 治 郎 雨
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002061576A priority Critical patent/JP2003263331A/ja
Priority to TW091109116A priority patent/TWI221250B/zh
Priority to EP02010131A priority patent/EP1365321A3/en
Priority to US10/141,983 priority patent/US20030177288A1/en
Priority to KR20020028724A priority patent/KR100538727B1/ko
Priority to CN02121784A priority patent/CN1444154A/zh
Publication of JP2003263331A publication Critical patent/JP2003263331A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

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

Abstract

(57)【要約】 【課題】 一つ以上の演算プロセッサでの処理を効率的
にスケジューリングする。 【解決手段】 本発明は、ブロック単位でアクセス可能
なメモリと、メモリに格納されたブロックデータを用い
て、指定されたタスクを実行可能な一つ以上の演算プロ
セッサと、演算プロセッサでのタスクの実行を制御する
制御プロセッサと、を備え、制御プロセッサは、指定さ
れたタスクの実行に用いられるブロックデータ同士の依
存関係をチェックする依存関係チェック部と、チェック
された依存関係に基づいて、メモリに対するアクセス、
メモリから演算プロセッサへのデータ転送、および演算
プロセッサでのデータ処理のスケジューリングを行うス
ケジューリング部と、を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像データ等の大
容量データを処理可能な複数のプロセッサからなるマル
チプロセッサシステムに関する。
【0002】
【従来の技術】通常のプロセッサは、比較的小容量のデ
ータを処理することを前提としているため、レジスタに
は高価な小容量のマルチポートメモリを使用するのが一
般的である。このため、これら通常のプロセッサを複数
用いてマルチプロセッサシステムを構築すると、各プロ
セッサ間で頻繁にデータをやり取りしなければならず、
各プロセッサの制御が複雑になってしまう。
【0003】
【発明が解決しようとする課題】既存のマルチプロセッ
サシステムとして代表的なものに、共有メモリ型並列プ
ロセッサシステムとベクトルプロセッサシステムがあ
る。
【0004】共有メモリ型並列プロセッサシステムは、
演算器用のプロセッサが自発的にデータを取得するた
め、プログラムが各プロセッサの処理を最適にスケジュ
ーリングするのは困難である。例えば、グラフィックス
の重ね描き描画を行う場合、小さな処理単位を繰り返し
て結果的に大容量のデータになるため、同システムで
は、各プロセッサが自発的に何度もデータを取得する処
理を繰り返す結果になり、各プロセッサの処理を最適化
するのは事実上不可能である。
【0005】また、ベクトルプロセッサシステムでは、
ホストコンピュータがベクトルプロセッサの処理を制御
する。ところが、従来の同システムでは、ホストコンピ
ュータは、ベクトルプロセッサのネットワークアクセス
やメモリアクセスのスケジューリングを行っておらず、
コンパイラがスケジューリングを行っていた。例えば、
同システムでグラフィックスの重ね描き処理を行う場
合、データの依存関係をすべてコンパイラ上でチェック
してスケジューリングしなければならず、コンパイル処
理に時間がかかってしまう。
【0006】本発明は、このような点に鑑みてなされた
ものであり、その目的は、一つ以上の演算プロセッサで
の処理を効率的にスケジューリングすることができるマ
ルチプロセッサシステムを提供することにある。
【0007】
【課題を解決するための手段】上述した課題を解決する
ために、本発明は、メモリに格納されたデータを用いて
タスクを実行する一つ以上の演算プロセッサと、前記演
算プロセッサでのタスクの実行を制御する制御プロセッ
サと、を備え、前記制御プロセッサは、タスクを実行す
る際にデータ同士の依存関係をチェックする依存関係チ
ェック部と、前記チェックされた依存関係に基づいて、
前記メモリに対するアクセス、前記メモリから前記演算
プロセッサへのデータ転送、および前記演算プロセッサ
での演算スケジューリングを行うスケジューリング部
と、を有する。
【0008】
【発明の実施の形態】以下、本発明に係るマルチプロセ
ッサシステムの一実施形態について、図面を参照しなが
ら具体的に説明する。
【0009】図1は本発明に係るマルチプロセッサシス
テムの一実施形態の概略構成を示すブロック図である。
図1のマルチプロセッサシステムは、複数のバンクで構
成されてバンク単位でアクセス可能なメモリ1と、バン
ク単位で読み出したブロックデータを用いて所定の演算
処理を行う複数の演算プロセッサ2を有する演算処理部
(LDALU)3と、複数の演算プロセッサ2とメモリ1と
の間でのデータ送受を制御するクロスバー部(X-bar)
4と、クロスバー部4を制御するクロスバー制御部5
と、演算処理部3を制御する制御プロセッサ(LDPCU)
6と、外部メモリ7とのデータの送受を行う外部インタ
フェース部8とを備えている。
【0010】メモリ1は例えば、複数のバンクからなる
ワンポートメモリで構成される。演算処理部3は、バン
ク単位で読み出したブロックデータを用いてタスクを実
行する複数の演算プロセッサ2と、各演算プロセッサ2
に対応して設けられるSRAM9とを有する。
【0011】メモリ1、演算処理部3および外部インタ
フェース部8は、バッファ10を介してクロスバー部4
とデータの送受を行う。
【0012】制御プロセッサ6は、各タスクが用いるブ
ロックデータ同士の依存関係をチェックする依存関係チ
ェック部21と、演算プロセッサ2やクロスバー部4の
処理状況等を把握するリソースチェック部22と、メモ
リ1から演算プロセッサ2へのデータ転送、メモリ1に
対するアクセス、および演算プロセッサ2でのデータ処
理のスケジューリングを行うスケジュール管理部23
と、メモリ1と演算プロセッサ2との間でのDMA転送
を制御するDMAコントローラ24と、プログラマによ
って与えられた命令列を格納する命令格納部25と、を
有する。
【0013】図2は本実施形態の処理内容を説明する図
である。図示のように、本実施形態では、例えば、2枚
の画像を合成(ブレンド)するタスクを複数回繰り返す
処理を一つのスレッド(thread)とし、互いに依存関係
のない複数のスレッドを並行して実行することを想定し
ている。ここでは、同一または異なる合成画像を生成す
る際に共通して用いられるタスク同士を依存関係ありと
し、それ以外のタスクを依存関係なしとする。
【0014】図2において、符号0〜12を付した各ブ
ロックは画像データを表しており、各ブロックの上側に
記載されたaddrXXは、対応する画像データの格納先アド
レスを示している。例えば、addr0aとは、メモリ1のア
ドレス0aを示している。
【0015】図2のスレッド0は、メモリ1のアドレス
0aに格納された画像0とアドレス1aに格納された画
像1を識別番号P0の演算プロセッサ2で合成した画像
8をアドレス0cに格納するとともに、アドレス2aに
格納された画像2とアドレス3aに格納された画像3を
識別番号P2の演算プロセッサ2で合成した画像9をア
ドレス2cに格納し、その後、画像8,9を識別番号P
0の演算プロセッサ2で合成した画像12をアドレス0
dに格納する処理を行う。
【0016】また、図2のスレッド1は、メモリ1のア
ドレス3cに格納された画像4とアドレス0bに格納さ
れた画像5を識別番号P1の演算プロセッサ2で合成し
た画像10をアドレス1bに格納するとともに、アドレ
ス1dに格納された画像6とアドレス2bに格納された
画像7を演算プロセッサP3で合成した画像11をアド
レス3bに格納し、その後、画像10,11を識別番号
P1の演算プロセッサ2で合成した画像13をアドレス
1cに格納する処理を行う。
【0017】本実施形態では、2枚の画像を合成するた
めの専用の命令として、Blend命令を用意している。Ble
nd命令は、Blend(p,x,y,z)のように記述される。pは演
算プロセッサ2の識別番号、yはメモリ1から読み出さ
れる第1入力ブロックデータのアドレス、zはメモリ1
から読み出される第2入力ブロックデータのアドレス、
xはメモリ1に書き込まれる出力ブロックデータのアド
レスである。すなわち、Blend(p,x,y,z)は、メモリ1の
アドレスy,zの第1および第2入力ブロックデータを
識別番号pの演算プロセッサ2で合成したブロックデー
タをアドレスxに格納することを示している。
【0018】図2のスレッド0,1は、図3のように6
つのBlend命令で記述される。図3のスレッド0のBlend
(P0,0c,0a,1a)は図2の画像8を生成する処理に対応
し、Blend(P2,2c,2a,3a)は画像9を生成する処理に対応
し、Blend(P0,0d,0c,2c)は画像12を生成する処理に対
応する。
【0019】また、スレッド1のBlend(P1,1b,3c,0b)は
図2の画像10を生成する処理に対応し、Blend(P3,3b,
1d,2b)は画像11を生成する処理に対応し、Blend(P1,1
c,1b,3b)は画像13を生成する処理に対応する。
【0020】図3に示す命令列は、図1に示す命令格納
部25に格納される。制御プロセッサ6、あるいは不図
示のコンパイラやインタプリタは、図3に示す命令列を
図4に示すような中間命令に変換する。変換された中間
命令は、命令格納部25に格納してもよいし、中間命令
を格納するための格納部を別個に設けてもよい。
【0021】図示のように、一つのBlend命令は三つの
中間命令に変換され、さらに不図示のアセンブラで機械
語に変換されて制御プロセッサ6により実行される。
【0022】例えば、Blend(P0,0c,0a,1a)を例に取る
と、まず、中間命令DMA(P0SPM,0a)により、メモリ1の
アドレス0aのブロックデータが、識別番号P0の演算
プロセッサ2に対応するSRAM9にDMA転送される。続
いて、中間命令DMA(P0SPM,1a)により、メモリ1のアド
レス1aのブロックデータが、識別番号P0の演算プロ
セッサ2に対応するSRAM9にDMA転送される。続い
て、中間命令kick(P0,0c,P0SPM, Blend)により、SRAM9
に格納された2つのブロックデータ同士が識別番号P0
の演算プロセッサ2で合成され、合成されたブロックデ
ータがメモリ1のアドレス0cに格納される。Kick命令
の最後の引数のBlendは、Blend処理の命令列のありかを
示すアドレスのタグである。
【0023】図4の中間命令列の右側に記述された数字
0A,0B等は各中間命令を識別する番号である。
【0024】図5は制御プロセッサ6の動作を説明する
図であり、図5の右方向は時間軸を示している。図5は
図4に示すスレッド0,1を処理する場合の制御プロセ
ッサ6の動作を説明している。
【0025】まず、制御プロセッサ6はスレッド0の中
間命令0A,0B,0Cを順に処理する。このとき、制
御プロセッサ6は、スケジュール管理部23内に設けら
れるタスクスキューに対してDMA転送を指示して、す
ぐに次の中間命令の処理を行う。
【0026】このように、制御プロセッサ6は、各中間
命令ごとにはDMA転送を行わず、DMA転送の指示だ
けをタスクキューに溜める処理を行っていく。
【0027】スレッド0の中間命令0Cの処理が終わっ
た段階で、例えば不図示のタイマからスレッドの切替割
り込み信号がスケジュール管理部23に入力されると、
制御プロセッサ6は、スレッド0の代わりにスレッド1
の中間命令1A,1B,1Cを順に処理していく。ここ
でも、制御プロセッサ6は、スケジュール管理部23の
タスクキューに対してDMA転送を指示して、すぐに次
の中間命令の処理を行う。
【0028】スレッド1の中間命令1Cの処理が終わっ
た段階で、例えば不図示のタイマからスケジュール割り
込み信号がスケジュール管理部23に入力されると、ス
ケジュール管理部23はタスクキューに溜まった中間命
令の実行処理に関するタスクのスケジューリングを行
い、スケジューリングした順序に従って、制御プロセッ
サ6は、DMAコントローラ24や演算プロセッサ2を
制御して各タスクを実行する。
【0029】スレッドの切替割り込み信号やスケジュー
ル割り込み信号は、例えばマイクロプロセッサシステム
内の不図示のタイマやカウンタなど、時間計測機能をも
った回路から周期的に入力される。あるいは、マイクロ
プロセッサシステムの外部回路からこれら割り込み信号
を供給してもよい。
【0030】図5では、スレッド0,1の各中間命令を
3つずつ実行したときにスケジュール割り込み信号が入
り、スレッド0または1の中間命令を3つずつ実行する
たびにスレッド割り込み信号が入る例を示しているが、
これら割り込み信号が入るタイミングは実装形態により
種々変更可能である。
【0031】図5の動作を時系列的にまとめると図6の
ようなフローチャートになる。まず、制御プロセッサ6
は、スレッドを選択して各中間命令を順に実行し(ステ
ップS1)、スケジュール管理部23のタスクキューに
対してDMA転送を指示する(ステップS2)。
【0032】続いて、制御プロセッサ6はスレッドの切
替割り込み信号がスケジュール管理部23に入ったか否
かを判定し(ステップS3)、この割り込み信号が入る
までステップS1,S2の処理を繰り返す。
【0033】スレッドの切替割り込み信号が入ると、制
御プロセッサ6は実行可能なスレッド同士で調停を行
い、一つのスレッドを選択して実行する(ステップS
4)。図5では、2つのスレッドしかないので、スレッ
ド0の次はスレッド1を実行する。
【0034】その後、スケジュール割り込み信号が入る
と(ステップS5)、スケジュール管理部23はスケジ
ュール処理を行う。スケジュール割り込みが入ると、ま
ず、スケジュール管理部23は、タスクキューにエント
リーされているタスクを読み出した(ステップS6)
後、読み出したタスクのデータ依存関係をアドレスによ
りチェックするとともに、リソースコンフリクト(クロ
スバー部4やメモリ1のポート番号など)をチェック
し、最も効率がよくなるようにタスクをスケジューリン
グする(ステップS7)。このスケジューリングは、制
御プロセッサ6のソフトウェアとして実装可能であるた
め、実装形態に応じて種々変更可能である。
【0035】続いて、制御プロセッサ6は、スケジュー
リングした順序に従って、実行可能なタスクを実際に実
行するべく、DMAコントローラ24や演算プロセッサ
2を制御する(ステップS8)。
【0036】図7は制御プロセッサ6が行うスケジュー
ル管理の一例を示している。図7(a)に示すように、
識別番号P0の演算プロセッサ2に対するタスクE0,E1,
E0,E2と識別番号P1の演算プロセッサ2に対するタス
クE0,E0,E2,E2がタスクキューに溜まっているとする。
これらタスクの具体的内容は特に問わないが、以下では
上述したBlend命令を実行するタスクを例に取って説明
する。
【0037】何もスケジュール管理を行わない場合、制
御プロセッサ6は、最初にタスクキューに入ったタスク
から順に実行するため、識別番号P0,P1の演算プロ
セッサ2はいずれも、最初はタスクE0を実行しようと
する。ところが、タスクE0は、同一のBlend命令を実
行するものであり、その命令を実行する際にメモリ1に
格納されている同一データを利用するため、識別番号P
0,P1の演算プロセッサ2で同時に処理を行うことは
できない。このため、図7(b)に示すように、識別番
号P1の演算プロセッサ2は識別番号P0の演算プロセ
ッサ2がタスクE0の処理を終えるまで待機しなければ
ならない。したがって、識別番号P1の演算プロセッサ
2がすべての処理を終えるまでに時間がかかってしま
う。
【0038】一方、本実施形態のスケジュール管理部2
3は、識別番号P0,P1の演算プロセッサ2が最も効
率的にタスクを実行できるように、タスクキューに溜ま
ったタスクをスケジューリングする。図7(c)は識別
番号P1の演算プロセッサ2がタスクE2を先に実行す
るようにスケジューリングした例を示している。タスク
E0,E2はそれぞれ別個のデータを用いてBlend命令
を実行するため、異なる演算プロセッサ2が同時に各タ
スクを実行することができる。
【0039】このように、本実施形態では、複数の演算
プロセッサ2が並列してタスクを行えるように、各演算
プロセッサ2でのタスクを制御プロセッサ6でスケジュ
ーリングするため、各演算プロセッサ2は効率よくタス
クの処理を行うことができる。すなわち、本実施形態に
よれば、各演算プロセッサ2での処理を効率的にスケジ
ューリングすることができる。
【0040】上述した実施形態では、Blend命令を実行
するタスクについて説明したが、実行する命令は必ずし
もBlend命令に限らない。タスクを構成する要素とし
て、以下の3種類を備える命令であればよい。
【0041】1)タスクが必要とするデータを示す識別
子。ここで、識別子とは、メモリ1のブロックデータを
指し示すものであり、識別子は複数あってもよい。
【0042】2)タスクを実行する演算器を示す識別子 3)タスクが実行した結果であるデータを示す識別子 1)〜3)の識別子は、必ずしもメモリ1をアクセスす
るためのアドレス自体である必要はなく、アドレスに対
応する識別子(トークン)であればよい。スケジュール
管理部23は、タスクの順序依存関係を識別子同士の依
存関係として表現してタスクのスケーリングを実現す
る。
【0043】以下に、スケジュール管理部23のスケジ
ューリング手法の一例を詳述する。スケジュール管理部
23の処理は、ソフトウェアとハードウェアのどちらで
も実現可能であり、ソフトウェアとハードウェアが協調
して動作することも可能である。
【0044】図8は本実施形態のスケジューリング手法
の一例を示すフローチャートである。図8のフローチャ
ートでは、各演算プロセッサ2での処理の開始と終了を
アドレスに対応する識別子で管理する例を示している。
【0045】まず、制御プロセッサ6は、処理を開始さ
せたい演算プロセッサ2にアドレスに対応する識別子を
送る(ステップS21)。この識別子を受け取った演算プ
ロセッサ2は指定された処理を行い(ステップS22)、
処理が終了すると、制御プロセッサ6にこの識別子を返
す(ステップS23)。
【0046】制御プロセッサ6は、返された識別子を制
御プロセッサ6内のスケジュール管理部23に送る。ス
ケジュール管理部23は次に識別子を送るべき演算プロ
セッサ2を決定する(ステップS24)。このように、ブ
ロックデータの依存関係チェックはすべてスケジュール
管理部23が行う。スケジュール管理部23は、ブロッ
クデータの依存関係の他に、演算プロセッサ2やクロス
バー部4の処理状況等のリソース情報も考慮に入れて、
次に識別子を送るべき演算プロセッサ2を決定する。
【0047】そして、制御プロセッサ6は、依存関係チ
ェックに適合して、かつリソースが確保できた演算プロ
セッサ2に対してアドレスに対応する識別子を送る(ス
テップS25)。
【0048】以上の動作を実行タスク情報部に登録され
ているタスクの実行がすべて終了するまで繰り返す(ス
テップS26)。
【0049】図9はスケジュール管理部23の内部構成
の一例を示すブロック図である。図示のように、スケジ
ュール管理部23は、実行すべきタスクに対応する識別
子の一覧を記録した実行タスク情報部31と、タスクの
実行条件を記録した実行条件情報部32と、タスクの実
行に利用可能な演算プロセッサ2の種類とその他のリソ
ース情報を記録した資源管理テーブル33と、識別子と
タスクとの対応関係を示す識別子テーブル34とを有す
る。
【0050】タスクは例えば上述したBlend命令であ
り、各Blend命令ごとに識別子が対応づけられている。
例えば、図9の識別子テーブル34は、識別子T1がBl
end(P0,0c,0a,1a)に対応し、識別子T2がBlend(P2,2
c,2a,3a)に対応し、識別子T3がBlend(P0,0c,0c,2c)
に対応し、識別子T4がBlend(P1,1b,3c,0b)に対応す
る例を示している。
【0051】実行条件情報部32に記録された条件と、
実行タスク情報部31に記録された識別子とは互いに対
応づけられている。例えば、図9において、識別子T2
に対応するBlend命令と識別子T5に対応するBlend命令
がともに実行されたときに、実行タスク情報部31の識
別子T4に対応するBlend命令が実行される。また、識
別子T2に対応するBlend命令か、識別子T3に対応す
るBlend命令が実行されたときに、実行タスク情報部3
1の識別子T1に対応するBlend命令が実行される。
【0052】また、実行タスク情報部31が識別子T4
に対応するBlend命令を終了すると、実行条件情報部3
2は、記録されている識別子T4すべてを終了済みとし
て扱う。識別子に多くのビットフィールドを割り当てる
ことができない場合、実行タスク情報部に複数のT4が現
れることがある。そのような場合、終了済みとするT4
は、実行タスク情報部中の当該T4から次に現れるT4間の
スロットのタスクとする。
【0053】実行タスク情報部31は、識別子T4に対
応するBlend命令を実行する際に、資源管理テーブル3
3を参照して、対応するBlend命令の実行を行う演算プ
ロセッサ2を決定する。スケジュール管理部23は、資
源管理テーブル33の情報を参照して、Blend命令を実
行する演算プロセッサ2の種類とBlend命令の実行時期
を決定する。
【0054】決定された演算プロセッサ2が処理を終了
すると、その演算プロセッサ2はリソースを解放し、そ
の旨が資源管理テーブル33に記録される。また、複数
の演算プロセッサ2が同一のリソースに対する要求を行
った場合には、原則として先に発行されたBlend命令が
優先的に処理される。
【0055】本実施形態では、メモリ1からブロックデ
ータを単位として読み出しを行うが、データの転送速度
を上げるには、ブロックデータのデータサイズを約1キ
ロバイト以上に設定するのが望ましい。これは、一般的
なフレームバッファのチャンクサイズが2キロバイトで
あることからも妥当であることがわかる。ただし、実装
形態により最適なブロックデータのデータサイズは変化
する。
【0056】図10は、ブロックデータの中で演算処理
に有効に利用されるデータの割合を示す有効利用率と、
メモリ1から演算プロセッサ2へのブロックデータの転
送速度向上率と、をグラフで表したものである。有効利
用率はデータサイズが小さいほど高くなり、転送速度向
上率はデータサイズが大きいほど高くなる。
【0057】このように、ブロックデータは1キロバイ
ト以上のデータサイズであり、ブロックデータの転送お
よび処理には、通常のプロセッサのシステムクロックの
数サイクルを要する。メモリ1と演算プロセッサ2は、
ブロックデータを単位として処理を行うため、ブロック
データの処理時間を単位とするクロックで制御プロセッ
サ6を動作させることも可能である。これにより、通常
のプロセッサのシステムクロックよりも遅いクロックで
制御プロセッサ6を動作させることができ、高価な高速
部品や高速プロセスを使用する必要もなくなり、またハ
ードウェアのタイミング設計も容易になる。
【0058】また、演算プロセッサ2の数には特に制限
はないが、演算プロセッサ2の数が増えるほど、演算プ
ロセッサ2が一度に処理すべきブロックデータのデータ
サイズを大きくするのが望ましい。これにより、一つの
演算プロセッサ2での処理時間が長くなり、その分だけ
制御プロセッサ6が演算プロセッサ2を頻繁に切り替え
なくて済むため、制御プロセッサ6の処理負担を軽減で
きる。
【0059】さらに、マルチプロセッサシステム全体の
パフォーマンスを上げるには、同システム全体の動作周
波数を上げる手法と演算プロセッサ2の数を増やす手法
とが考えられるが、演算プロセッサ2の数を増やして各
演算ブロックが処理すべきブロックデータのサイズを大
きくするのが望ましい。
【0060】(第2の実施形態)第2の実施形態は、本
発明を画像処理に特化させたシステムに適用した例であ
る。
【0061】図11は画像処理専用の本発明に係るマル
チプロセッサシステムの第2の実施形態を示すブロック
図である。図示のように、それぞれが別個に画像処理を
行う複数の演算処理部(LDALU)3と、制御プロセッサ
(LDPCU)6と、メモリ1とがクロスバー部4に接続さ
れている。
【0062】演算処理部3の内部には、複数のピクセル
パイプ31と、各ピクセルパイプ31に接続されるSRAM
(SPM)9と、前処理を行うセットアップ/DDA部
32とが設けられている。
【0063】各演算処理部3内のピクセルパイプ31
は、図1の演算プロセッサ2に相当するものであり、ポ
リゴンのレンダリングやテンプレート・マッチング処理
等の画像処理を行う。
【0064】図11の制御プロセッサ6は、画像処理用
のタスクで用いられるブロックデータの依存関係をチェ
ックし、そのチェック結果に基づいて演算処理部3内の
ピクセルパイプ31の動作をスケジューリングする。こ
れにより、各ピクセルパイプ31を並列動作させること
ができ、きわめて高速に各種の画像処理を行うことがで
きる。
【0065】上述した実施形態では、演算処理部3内に
複数の演算プロセッサ2を設ける例を説明したが、演算
プロセッサ2が一つだけでも本発明を適用可能である。
【0066】上述した実施形態では、画像データを合成
する処理を行う例を説明したが、本発明は画像データの
合成処理以外の各種の演算処理にも適用可能である。
【0067】また、図1、図5および図9に示したブロ
ック図の少なくとも一部をハードウェアの代わりにソフ
トウェアで実現してもよい。
【0068】
【発明の効果】以上詳細に説明したように、本発明によ
れば、一つ以上の演算プロセッサでの処理を効率的にス
ケジューリングすることができる。
【図面の簡単な説明】
【図1】本発明に係るマルチプロセッサシステムの一実
施形態の概略構成を示すブロック図。
【図2】本実施形態の処理内容を説明する図。
【図3】Blend命令の一例を示す図。
【図4】図3のBlend命令を中間命令に変換した図。
【図5】制御プロセッサの動作を説明する図。
【図6】制御プロセッサの動作を示すフローチャート。
【図7】制御プロセッサ6が行うスケジュール管理の一
例を示す図。
【図8】本実施形態のスケジューリング手法の一例を示
すフローチャート。
【図9】スケジュール管理部の内部構成の一例を示すブ
ロック図。
【図10】ブロックデータの有効利用率と転送速度向上
率を示すグラフ。
【図11】画像処理専用の本発明に係るマルチプロセッ
サシステムの一例を示すブロック図。
【符号の説明】
1 メモリ 2 演算プロセッサ 3 LDALU 4 クロスバー部 5 クロスバー制御部 6 制御プロセッサ 7 外部メモリ 8 外部インタフェース部 21 依存関係チェック部 22 リソースチェック部 23 スケジュール管理部 24 DMAコントローラ 25 命令格納部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤 原 崇 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 雨 宮 治 郎 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5B045 AA01 BB28 CC06 DD01 GG11 5B098 AA03 AA10 GA04 GC01

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】メモリに格納されたデータを用いてタスク
    を実行する一つ以上の演算プロセッサと、 前記演算プロセッサでのタスクの実行を制御する制御プ
    ロセッサと、を備え、 前記制御プロセッサは、 タスクを実行する際にデータ同士の依存関係をチェック
    する依存関係チェック部と、 前記チェックされた依存関係に基づいて、前記メモリに
    対するアクセス、前記メモリから前記演算プロセッサへ
    のデータ転送、および前記演算プロセッサでの演算スケ
    ジューリングを行うスケジューリング部と、を有するこ
    とを特徴とするマルチプロセッサシステム。
  2. 【請求項2】前記演算プロセッサは、データのブロック
    単位で前記メモリにアクセスすることを特徴とする請求
    項1に記載のマルチプロセッサシステム。
  3. 【請求項3】前記依存関係検出部は、同一または異なる
    タスクを実行する際に共通して用いられるデータ間の依
    存関係を検出することを特徴とする請求項1または2に
    記載のマルチプロセッサシステム。
  4. 【請求項4】前記メモリおよび前記一つ以上の演算プロ
    セッサ間でのデータの受け渡しを制御するデータ転送制
    御部を備え、 前記スケジューリング部は、前記データ転送制御部が出
    力する転送制御信号を考慮に入れて前記スケジューリン
    グを行うことを特徴とする請求項1〜3のいずれかに記
    載のマルチプロセッサシステム。
  5. 【請求項5】前記演算プロセッサが行う処理内容を特定
    する識別子と、前記演算プロセッサが入力データとして
    使用するデータの格納先を示す前記メモリ上の第1アド
    レスと、前記演算プロセッサによる演算結果の格納先を
    示す前記メモリ上の第2アドレスとを含むマクロ命令を
    格納する命令格納部を備え、 前記依存関係検出部は、前記第1および第2アドレスに
    基づいてデータ同士の依存関係を検出することを特徴と
    する請求項1〜4のいずれかに記載のマルチプロセッサ
    システム。
  6. 【請求項6】前記指定されたタスクを識別する識別子に
    より、タスク同士の依存関係を記録する条件テーブル
    と、 前記条件テーブルに基づいて、前記指定されたタスクの
    実行条件情報と各タスクが実行時に使用するリソース情
    報とを記録する資源管理テーブルと、を備え、 前記依存関係検出部は、前記資源管理テーブルに記録さ
    れた情報に基づいて、前記指定されたタスクで用いるデ
    ータの依存関係を検出することを特徴とする請求項1〜
    5のいずれかに記載のマルチプロセッサシステム。
  7. 【請求項7】前記データは、画像データであり、 前記依存関係検出部は、同一または異なる合成画像を生
    成する際に共通して用いられるデータ同士を依存関係あ
    りと判断することを特徴とする請求項1〜6のいずれか
    に記載のマルチプロセッサシステム。
  8. 【請求項8】前記データは、1キロバイト以上のデータ
    サイズに設定されることを特徴とする請求項1〜7のい
    ずれかに記載のマルチプロセッサシステム。
  9. 【請求項9】複数のタスクを実行する前記演算プロセッ
    サの数が増えるほど、前記データのデータサイズを大き
    くすることを特徴とする請求項8に記載のマルチプロセ
    ッサシステム。
  10. 【請求項10】前記制御プロセッサは、前記メモリと前
    記演算プロセッサとの間で前記データを送受するのに要
    する時間単位を基準とするクロックに基づいて処理動作
    を行うことを特徴とする請求項1〜9のいずれかに記載
    のマルチプロセッサシステム。
  11. 【請求項11】前記メモリは、複数のバンクに分かれた
    ワンポートメモリであることを特徴とする請求項1〜1
    0のいずれかに記載のマルチプロセッサシステム。
  12. 【請求項12】前記メモリおよび前記演算プロセッサ間
    のデータの転送と前記演算プロセッサでのデータ処理と
    を並列して行えるように、前記メモリおよび前記演算プ
    ロセッサ間のデータ転送用のバッファと、前記演算プロ
    セッサでのデータ処理用のバッファと、を備えることを
    特徴とする請求項1〜11のいずれかに記載のマルチプ
    ロセッサシステム。
JP2002061576A 2002-03-07 2002-03-07 マルチプロセッサシステム Pending JP2003263331A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2002061576A JP2003263331A (ja) 2002-03-07 2002-03-07 マルチプロセッサシステム
TW091109116A TWI221250B (en) 2002-03-07 2002-05-02 Multi-processor system
EP02010131A EP1365321A3 (en) 2002-03-07 2002-05-10 Multiprocessor system
US10/141,983 US20030177288A1 (en) 2002-03-07 2002-05-10 Multiprocessor system
KR20020028724A KR100538727B1 (ko) 2002-03-07 2002-05-23 멀티 프로세서 시스템
CN02121784A CN1444154A (zh) 2002-03-07 2002-05-31 多处理机***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002061576A JP2003263331A (ja) 2002-03-07 2002-03-07 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JP2003263331A true JP2003263331A (ja) 2003-09-19

Family

ID=28034834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002061576A Pending JP2003263331A (ja) 2002-03-07 2002-03-07 マルチプロセッサシステム

Country Status (6)

Country Link
US (1) US20030177288A1 (ja)
EP (1) EP1365321A3 (ja)
JP (1) JP2003263331A (ja)
KR (1) KR100538727B1 (ja)
CN (1) CN1444154A (ja)
TW (1) TWI221250B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114443A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッサシステム及びその制御方法
JP2010160597A (ja) * 2009-01-07 2010-07-22 Nec Corp プロセス実行制御システム、プロセス実行制御方法、及びプロセス実行制御プログラム
JP2013127782A (ja) * 2004-09-14 2013-06-27 Synopsys Inc マルチコアアーキテクチャーにおけるデバッグ
JP2013134670A (ja) * 2011-12-27 2013-07-08 Toshiba Corp 情報処理装置及び情報処理方法
US9424230B2 (en) 2007-04-12 2016-08-23 Nec Corporation Converting a data placement between memory banks and an array processing section

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3793062B2 (ja) * 2001-09-27 2006-07-05 株式会社東芝 メモリ内蔵データ処理装置
US7467383B2 (en) * 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
JP4606142B2 (ja) * 2004-12-01 2011-01-05 株式会社ソニー・コンピュータエンタテインメント スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US20090158293A1 (en) * 2005-09-05 2009-06-18 Nec Corporation Information processing apparatus
KR100791296B1 (ko) * 2006-03-03 2008-01-04 삼성전자주식회사 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
KR100856468B1 (ko) * 2007-01-08 2008-09-04 재단법인서울대학교산학협력재단 임베디드 소프트웨어의 객체지향 태스크 모델을멀티프로세서 시스템 온 칩 하드웨어 아키텍처로 자동할당하기 위한 방법
KR100957060B1 (ko) * 2007-12-12 2010-05-13 엠텍비젼 주식회사 명령어 병렬 스케줄러, 방법 및 그 기록매체
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
KR101083049B1 (ko) 2010-06-11 2011-11-16 엘아이지넥스원 주식회사 시뮬레이션 시스템 및 시뮬레이션 방법
KR20120017294A (ko) 2010-08-18 2012-02-28 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
CN104714838A (zh) * 2013-12-12 2015-06-17 ***通信集团四川有限公司 一种任务调度方法及装置
KR102270791B1 (ko) 2014-12-10 2021-06-29 삼성전자주식회사 매크로 명령어를 처리하는 방법 및 장치
CN108021563B (zh) * 2016-10-31 2021-09-07 华为技术有限公司 一种指令间数据依赖的检测方法和装置
CN111052084B (zh) * 2017-08-30 2023-10-17 富士胶片株式会社 图像处理装置、图像处理方法以及图像处理程序
CN109522048B (zh) * 2017-09-18 2023-05-23 展讯通信(上海)有限公司 一种同步多线程中断验证方法及***
CN110059024B (zh) * 2019-04-19 2021-09-21 中国科学院微电子研究所 一种内存空间数据缓存方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2064383C3 (de) * 1970-01-12 1981-02-26 Fujitsu Ltd., Kawasaki, Kanagawa (Japan) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
JP2658397B2 (ja) * 1989-06-13 1997-09-30 日本電気株式会社 マルチプロセッサシステム
JPH0640324B2 (ja) * 1989-10-26 1994-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプロセス同期方法
US5303369A (en) * 1990-08-31 1994-04-12 Texas Instruments Incorporated Scheduling system for multiprocessor operating system
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
JPH0695879A (ja) * 1992-05-05 1994-04-08 Internatl Business Mach Corp <Ibm> コンピュータシステム
JP2861647B2 (ja) * 1992-07-08 1999-02-24 松下電器産業株式会社 画像生成装置
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5742814A (en) * 1995-11-01 1998-04-21 Imec Vzw Background memory allocation for multi-dimensional signal processing
US5991542A (en) * 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US6069705A (en) * 1996-10-07 2000-05-30 Texas Instruments Incorporated Managing interpreter cofunctions on multiprocessor-based printer
KR19980027320A (ko) * 1996-10-15 1998-07-15 김광호 멀티 프로세서 컴퓨터 시스템
US6012142A (en) * 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
EP0918280B1 (en) * 1997-11-19 2004-03-24 IMEC vzw System and method for context switching on predetermined interruption points
US6230151B1 (en) * 1998-04-16 2001-05-08 International Business Machines Corporation Parallel classification for data mining in a shared-memory multiprocessor system
US6212622B1 (en) * 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Mechanism for load block on store address generation
KR100400165B1 (ko) * 1998-11-16 2003-10-01 텔레폰아크티에볼라게트 엘엠 에릭슨 처리 시스템 스케쥴링
SE9902373D0 (sv) * 1998-11-16 1999-06-22 Ericsson Telefon Ab L M A processing system and method
SE9803901D0 (sv) * 1998-11-16 1998-11-16 Ericsson Telefon Ab L M a device for a service network
US6272522B1 (en) * 1998-11-17 2001-08-07 Sun Microsystems, Incorporated Computer data packet switching and load balancing system using a general-purpose multiprocessor architecture
US6675380B1 (en) * 1999-11-12 2004-01-06 Intel Corporation Path speculating instruction scheduler
AU2001239559A1 (en) * 2000-03-23 2001-10-03 Sony Computer Entertainment Inc. Image processing apparatus and method
US20030105620A1 (en) * 2001-01-29 2003-06-05 Matt Bowen System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architetures

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013127782A (ja) * 2004-09-14 2013-06-27 Synopsys Inc マルチコアアーキテクチャーにおけるデバッグ
JP2013239196A (ja) * 2004-09-14 2013-11-28 Synopsys Inc マルチコアアーキテクチャーにおけるデバッグ
WO2008114443A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッサシステム及びその制御方法
US7953962B2 (en) 2007-03-20 2011-05-31 Fujitsu Limited Multiprocessor system and control method thereof
JP5146444B2 (ja) * 2007-03-20 2013-02-20 富士通株式会社 マルチプロセッサシステム及びその制御方法
US9424230B2 (en) 2007-04-12 2016-08-23 Nec Corporation Converting a data placement between memory banks and an array processing section
JP2010160597A (ja) * 2009-01-07 2010-07-22 Nec Corp プロセス実行制御システム、プロセス実行制御方法、及びプロセス実行制御プログラム
JP2013134670A (ja) * 2011-12-27 2013-07-08 Toshiba Corp 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
EP1365321A2 (en) 2003-11-26
CN1444154A (zh) 2003-09-24
US20030177288A1 (en) 2003-09-18
TWI221250B (en) 2004-09-21
EP1365321A3 (en) 2005-11-30
KR20030074047A (ko) 2003-09-19
KR100538727B1 (ko) 2005-12-26

Similar Documents

Publication Publication Date Title
JP2003263331A (ja) マルチプロセッサシステム
CN100454280C (zh) 处理器***,dma控制电路,dma控制方法,dma控制器用控制方法,图形处理方法和图形处理电路
US6389446B1 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
US20100045682A1 (en) Apparatus and method for communicating between a central processing unit and a graphics processing unit
US8001547B2 (en) Logic for synchronizing multiple tasks at multiple locations in an instruction stream
JP3721780B2 (ja) 複数のパイプライン処理機構を有するデータ処理装置
JP2884831B2 (ja) 処理装置
WO2023165484A1 (zh) 一种分布式任务的处理方法、分布式***及第一设备
JP2013134670A (ja) 情報処理装置及び情報処理方法
JP4631442B2 (ja) プロセッサ
JPH11353291A (ja) マルチプロセッサシステム及びタスク交換プログラムを記録した媒体
Ostheimer Parallel Functional Computation on STAR: DUST—
JP2814683B2 (ja) 命令処理装置
JP2007087244A (ja) コプロセッサ及びコンピュータシステム
JP2002278753A (ja) データ処理システム
US9141438B2 (en) Logic for synchronizing multiple tasks
Liu et al. Multi-Robot Collaboration on FPGAs
JP2927102B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
Amamiya et al. Multithreaded architecture for multimedia processing
JPS58154058A (ja) マルチプロセッサシステム
JPH10232856A (ja) 並列処理方式
JPH07244594A (ja) データ処理装置
CN116303226A (zh) 粗粒度可重构阵列数据流处理器的高效执行方法及***
JP3457535B2 (ja) プロセッサ間通信装置
JPH04308930A (ja) 電子計算機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060214