JP2011034189A - ストリームプロセッサ及びそのタスク管理方法 - Google Patents

ストリームプロセッサ及びそのタスク管理方法 Download PDF

Info

Publication number
JP2011034189A
JP2011034189A JP2009177715A JP2009177715A JP2011034189A JP 2011034189 A JP2011034189 A JP 2011034189A JP 2009177715 A JP2009177715 A JP 2009177715A JP 2009177715 A JP2009177715 A JP 2009177715A JP 2011034189 A JP2011034189 A JP 2011034189A
Authority
JP
Japan
Prior art keywords
task
processor
coprocessor
instruction
basic
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
JP2009177715A
Other languages
English (en)
Other versions
JP2011034189A5 (ja
Inventor
Hiroyuki Nakajima
博行 中島
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009177715A priority Critical patent/JP2011034189A/ja
Priority to US12/825,868 priority patent/US20110029757A1/en
Publication of JP2011034189A publication Critical patent/JP2011034189A/ja
Publication of JP2011034189A5 publication Critical patent/JP2011034189A5/ja
Pending legal-status Critical Current

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

【課題】リアルタイム制御に適したストリームプロセッサを提供すること。
【解決手段】プログラマブルな基本プロセッサMPと、基本プロセッサMPが実行する基本命令とは異なる拡張命令を実行するコプロセッサCPと、を備えたストリームプロセッサ。基本プロセッサMPは、コプロセッサCPに対し拡張命令を出力するコプロセッサコントローラCPCを備え、コプロセッサCPは、拡張命令に基づいて実行されるタスクを制御し、かつ、当該タスクのステータス情報STをクロック毎に出力するタスクコントローラTCを備える。コプロセッサコントローラCPCは、ステータス情報STと、基本プロセッサMPが予めバックグラウンドで実行していた基本命令とに基づいて、コプロセッサCPを制御する。
【選択図】図1

Description

本発明は、ストリームプロセッサ及びそのタスク管理方法に関し、特にコプロセッサを備えたストリームプロセッサ及びそのタスク管理方法に関する。
情報処理装置には、例えば画像処理や音声処理などの特定用途に特化したプロセッサ(以下、応用指向プロセッサという)が搭載されている場合が多い。このような応用指向プロセッサとしては、例えばDSP(Digital Signal Processor)やメディアプロセッサなどが知られている。応用指向プロセッサを搭載することにより、CPU(Central Processing Unit)の負荷を軽減し、情報処理装置全体としての処理能力を向上させることができる。
また、処理データの大容量化に伴い、上記の応用指向プロセッサにおいて、ストリーム処理を実行可能なストリームプロセッサが登場した。例えば特許文献1の図1に開示されたストリームプロセッサは、DMA(Direct Memory Access)回路及びFIFO(First In First Out)バッファを備え、ストリーム処理を実行することができる。しかしながら、特許文献1に開示されたストリームプロセッサでは、ストリーム処理の途中で、ステータスの変更、拡張処理の追加などのタスク管理を行うことができない。
これに対し、特許文献2の図4には、プログラマブルな基本プロセッサ(コア)とコプロセッサとを備えたストリームプロセッサが開示されている。このような構成では、基本プロセッサからの割り込み開始の通知及びコプロセッサからの割り込み終了の通知を伴う割り込み処理により、上記タスク管理を行うことができる。
特開2006−338538号公報 特表2005−532604号公報
しかしながら、特許文献2に開示されたストリームプロセッサにおけるタスク管理は、上述の通り割り込み処理によるため、当該割り込み処理が終了するまで、コプロセッサにより実行されているストリーム処理が中断される。すなわち、特許文献2に開示されたストリームプロセッサは、高速性が要求されるリアルタイム制御には適していないという問題があった。
本発明に係るストリームプロセッサは、
プログラマブルな基本プロセッサと、
前記基本プロセッサが実行する基本命令とは異なる拡張命令を実行するコプロセッサと、を備えたストリームプロセッサであって、
前記基本プロセッサは、前記コプロセッサに対し前記拡張命令を出力するコプロセッサコントローラを備え、
前記コプロセッサは、前記拡張命令に基づいて実行されるタスクを制御し、かつ、当該タスクのステータス情報をクロック毎に出力するタスクコントローラを備え、
前記コプロセッサコントローラは、前記ステータス情報と、前記基本プロセッサが予めバックグラウンドで実行していた基本命令とに基づいて、前記コプロセッサを制御するものである。
本発明に係るストリームプロセッサのタスク管理方法は、
プログラマブルな基本プロセッサと、前記基本プロセッサが実行する基本命令とは異なる拡張命令を実行するコプロセッサと、を備えたストリームプロセッサのタスク管理方法であって、
前記基本プロセッサは、前記コプロセッサに対し前記拡張命令を出力し、
前記コプロセッサは、前記拡張命令に基づいて実行されるタスクのステータス情報を出力し、
前記基本プロセッサは、前記ステータス情報と、前記基本プロセッサが予めバックグラウンドで実行していた基本命令とに基づいて、前記コプロセッサを制御するものである。
コプロセッサが出力するタスクのステータス情報と、基本プロセッサが予めバックグラウンドで実行していた基本命令とに基づいて、コプロセッサが制御される。そのため、リアルタイム制御に適している。
本発明によれば、リアルタイム制御に適したストリームプロセッサを提供することができる。
実施の形態1に係るストリームプロセッサのブロック図である。 実施の形態1に係るシステムの模式図である。 実施の形態1に係るストリームプロセッサによる画像処理のタイミングチャートである。 実施の形態1に係るマルチタスクコプロセッサコントローラ及びタスクコントローラの詳細なブロック図である。 実施の形態1に係るストリームプロセッサにより実行されるパイプライン処理を示すタイミングチャートである。 実施の形態2に係るストリームプロセッサのブロック図である。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。ただし、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
(実施の形態1)
図1は、本発明の第1の実施の形態に係るストリームプロセッサのブロック図である。このストリームプロセッサSPは、図1に示すように、命令メモリIM、基本プロセッサMP、マルチタスクコプロセッサCPを備えている。基本プロセッサMPはプログラムによって動作を制御できるすなわちプログラマブルなプロセッサである。また、マルチタスクコプロセッサCPは、基本プロセッサMPのタスク動作と独立したタスク動作が可能である。
ここで、基本プロセッサMPは、命令デコーダID、基本プロセッサコントローラMPC、マルチタスクコプロセッサコントローラCPCを備えている。また、マルチタスクコプロセッサCPは、タスクコントローラTC1、TC2、データ処理ユニットDPU1、DPU2、データメモリDM1、DM2、ライトスイッチWSW、リードスイッチRSWを備えている。
図2は、本実施の形態に係るシステムの模式図である。システムバスSBにCPU(Central Processing Unit)、ストリームプロセッサSP、共有メモリSMが接続されている。すなわち、CPU及びストリームプロセッサSPにより、共有メモリSMが共有されている。図1及び図2に示した本実施の形態に係るストリームプロセッサSPは、例えば画像処理、音声処理などの用途に特化したDSP(Digital Signal Processor)である。しかしながら、用途及びプロセッサの種類はこれらに限定されるものではない。
図1に示したストリームプロセッサSPの構成要素について順に説明する。図1において、細い矢印は命令などの制御信号の流れ、太い矢印は画像データの流れを示している。命令メモリIMは、命令が格納されたメモリである。例えば画像処理のための一連の命令が格納されている。命令メモリIMは、予め所定の命令が格納されたROM(Read Only Memory)であってもよいし、外部メモリ(不図示)から読み出された命令を一時的に格納するフラッシュメモリなどであってもよい。
命令デコーダIDは、命令メモリから基本プロセッサMPへフェッチされた各命令をデコードする。デコードされた命令は、命令に応じて基本プロセッサコントローラMPC又はマルチタスクコプロセッサコントローラCPCに入力される。
基本プロセッサコントローラMPCは、命令デコーダIDから入力された命令に基づいて基本プロセッサMPを制御する。基本プロセッサMPは、例えば画像処理のための初期設定、パラメータの計算などを行う。画像処理のためのパラメータの計算は、例えばCPUからの命令に基づいて、共有メモリSMの内部に格納されたパラメータテーブルを用いて行われる。そして、基本プロセッサMPにより計算されたパラメータは、共有メモリSMに格納された後、マルチタスクコプロセッサコントローラCPCを介してマルチタスクコプロセッサCPに入力される。
なお、マルチタスクコプロセッサコントローラCPC及びマルチタスクコプロセッサCPが動作している間であっても、基本プロセッサコントローラMPCは基本プロセッサMPの演算部(不図示)に供給するクロックのみを停止することができる。これにより、低消費電力化することができる。
他方、マルチタスクコプロセッサコントローラCPCは、命令デコーダIDから入力された命令に基づいてマルチタスクコプロセッサCPを制御する。具体的には、マルチタスクコプロセッサコントローラCPCは、命令デコーダIDから入力された命令に基づいて、拡張命令を発行する。本実施の形態では、2つの拡張命令が、マルチタスクコプロセッサCPの内部に設けられたタスクコントローラTC1、TC2にそれぞれ入力される。このマルチタスクコプロセッサコントローラCPCによるマルチタスクコプロセッサCPの制御は、基本プロセッサコントローラMPCから独立して排他的に行うことができる。
ここで、マルチタスクコプロセッサコントローラCPCとマルチタスクコプロセッサCPとの間の制御信号の入出力は制御インタフェースを介して行われる。この制御インタフェースは論理インタフェースであっても、共有バスを用いた物理インタフェースであってもよい。
タスクコントローラTC1、TC2は、マルチタスクコプロセッサコントローラCPCから入力された拡張命令をデコードする。デコードされた2つの拡張命令は、それぞれ前段データパスFDP、後段データパスLDPに入力される。タスクコントローラTC1、TC2から入力された拡張命令に基づいて、前段データパスFDP、後段データパスLDPはそれぞれ画像処理を実行する。
すなわち、本実施の形態に係るストリームプロセッサSPにおけるストリーム処理は2段階の画像処理を備える。なお、マルチタスクコプロセッサコントローラCPC及びタスクコントローラTC1、TC2の詳細については後述する。
前段データパスFDP、後段データパスLDPについて説明する前に、画像データの流れについて説明する。まず、取り込まれた画像データは、共有メモリSMに格納されている。この画像データはマルチタスクコプロセッサコントローラCPC、タスクコントローラTC1を介して前段データパスFDPのデータ処理ユニットDPU1に入力される。
ここで、マルチタスクコプロセッサコントローラCPCとマルチタスクコプロセッサCPとの間のデータの入出力はデータインタフェースを介して行われる。このデータインタフェースは論理インタフェースであっても、共有バスを用いた物理インタフェースであってもよい。
データ処理ユニットDPU1に入力された画像データは拡張命令に基づいて画像処理される。処理された画像データは、ライトスイッチWSWにより選択されたデータメモリDM1又はデータメモリDM2のいずれかに一時的に格納される。ここで、ライトスイッチWSWはデータメモリDM1又はデータメモリDM2にデータを書き込むためにデータバスを切り替えるためのスイッチである。
データメモリDM1又はデータメモリDM2に格納された画像データは、リードスイッチRSWにより選択され、データ処理ユニットDPU2に入力される。ここで、リードスイッチRSWは、データメモリDM1又はデータメモリDM2に格納されたデータを読み出すためにデータバスを切り替えるためのスイッチである。データ処理ユニットDPU2に入力された画像データは拡張命令に基づいて画像処理される。
このように、データ処理ユニットDPU1及びデータ処理ユニットDPU2により2段階で画像処理された画像データが、タスクコントローラTC2、マルチタスクコプロセッサコントローラCPCを介して共有メモリSMに格納される。
次に、図3を用いて画像処理動作について説明する。図3は、本実施の形態に係るストリームプロセッサSPによる画像処理のタイミングチャートであって、画像データの流れを示している。最上段からクロック、データ入力、タスク1(前段画像処理:図1のデータ処理ユニットDPU1による画像処理)、タスク2(後段画像処理:図1のデータ処理ユニットDPU2による画像処理)、データ出力を示している。
図3の「データ入力」に示すように、第1フレーム、第2フレーム、第3フレーム、・・・の順に画像データ(ストリーム)が入力される。そして、図3の「タスク1(前段画像処理)」に示すように、この例では第1フレームの入力から1クロック遅れて、データ処理ユニットDPU1による第1フレームの画像処理が開始される。ここで、例えばライトスイッチWSWによりデータメモリDM1が選択されているとすると、データ処理ユニットDPU1で画像処理された画像データはデータメモリDM1に格納される。
続いて、データ処理ユニットDPU1による第2フレームの画像処理が開始されると、ライトスイッチWSWによりデータメモリDM2が選択され、データ処理ユニットDPU1で画像処理された画像データはデータメモリDM2に格納される。
それと同時に、図3の「タスク2(後段画像処理)」に示すように、データ処理ユニットDPU2により、データメモリDM1に格納されていた第1フレームの画像処理が開始される。この場合、リードスイッチRSWによりデータメモリDM1が選択されている。そして、図3の「データ出力」に示すように、この例ではデータ処理ユニットDPU2での画像処理から1クロック遅れて、画像処理済の第1フレームが出力される。
このように、データ処理ユニットDPU1による第2フレームの画像処理(タスク1)と、データ処理ユニットDPU2による第1フレームの画像処理(タスク2)とは並列処理される。すなわち、マルチタスクとなる。なお、本実施の形態では、データパス数すなわち並列タスク数が2であるが、データパス数を増やすことにより並列タスク数を3以上とするともできる。
続いて、データ処理ユニットDPU1による第3フレームの画像処理が開始されると、ライトスイッチWSWにより再度データメモリDM1が選択され、データ処理ユニットDPU1で画像処理された画像データはデータメモリDM1に格納される。
それと同時に、データ処理ユニットDPU2により、データメモリDM2に格納されていた第2フレームの画像処理が開始される。そして、画像処理済の第2フレームが出力される。第3フレーム以降のフレームも同様に処理される。
このように、データ処理ユニットDPU1が処理した画像データが格納されたデータメモリDM1、DM2と、データ処理ユニットDPU2が読み出す画像データが格納されたデータメモリDM1、DM2とが相補的に切り替わる。そのため、データ処理ユニットDPU1を含む前段データパスFDPと、データ処理ユニットDPU2を含む後段データパスLDPとが競合することなく、連続して並列処理を実行することができる。
図4は、本実施の形態に係るマルチタスクコプロセッサコントローラCPC及びタスクコントローラTC1、TC2の詳細なブロック図である。ここで、図1に示すように、マルチタスクコプロセッサコントローラCPCは基本プロセッサMPに設けられ、一方、タスクコントローラTC1、TC2はマルチタスクコプロセッサCPに設けられている。
図4に示すように、マルチタスクコプロセッサコントローラCPCは、2つの拡張命令コントローラEIC1、EIC2を備えている。また、タスクコントローラTC1は、データインタフェースDIF1、拡張命令デコーダEID1、ステートマシンSMC1、ステータスメモリ1、クロックコントローラ1を備えている。また、図1に示したタスクコントローラTC2は、データインタフェースDIF2、拡張命令デコーダEID2、ステートマシンSMC2、ステータスメモリ2、クロックコントローラ2を備えている。
拡張命令コントローラEIC1は、命令デコーダIDから入力された命令に基づいて、拡張命令EI1、リクエスト信号REQ1、クロックイネーブル信号CKE1を発行する。拡張命令EI1は、タスクコントローラTC1の拡張命令デコーダEID1に入力される。拡張命令デコーダEID1は、拡張命令コントローラEIC1から入力された拡張命令EI1をデコードし、データ処理ユニットDPU1及びステートマシンSMC1に対して出力する。この拡張命令EI1に基づいて、データ処理ユニットDPU1は画像処理を実行する。
リクエスト信号REQ1は、タスクコントローラTC1のステートマシンSMC1に入力される。ステートマシンSMC1は、デコードされた拡張命令EI1とリクエスト信号REQ1とに基づいて、ステータス情報ST1aを発行する。このステータス情報ST1aはステータスメモリSTM1に格納される。
また、ステータスメモリSTM1には、データ処理ユニットDPU1から入力されるステータス情報ST1bも格納される。ステータスメモリSTM1に格納されたステータス情報ST1a、ST1bは、選択的にステータス情報ST1として拡張命令コントローラEIC1へクロック毎にフィードバックされる。なお、ステータス情報ST1a、ST1bのうち一方のみを拡張命令コントローラEIC1へフィードバックしてもよい。
拡張命令コントローラEIC1は、フィードバックされたステータス情報ST1及び基本プロセッサMPによりバックグラウンド処理される基本命令に基づいて、マルチタスクコプロセッサCPのタスクをクロック単位の精密なタイミング制御により管理することができる。ここで、バックグラウンド処理は、マルチタスクコプロセッサCPがストリーム処理を実行中に、基本プロセッサMPにより独立して実行される。例えば、拡張命令コントローラEIC1は、特定のステータスになった場合、基本プロセッサMPによりバックグラウンドで処理された基本命令に基づいて、タスクコントローラTC1に対し、新たな拡張命令を発行する。その他、タスクコントローラTC1に対し、データ処理ユニットDPU1が実行するタスクの開始あるいは停止を指示するなど各種制御が可能である。
クロックイネーブル信号CKE1は、タスクコントローラTC1のクロックコントローラCKC1に入力される。クロックコントローラCKC1は、クロックイネーブル信号CKE1に基づいて、クロックCLK1を出力する。このクロックCLK1に応じて前段データパスFDPが動作する。クロックイネーブル信号CKE1が入力されている期間だけクロックコントローラCKC1からクロックCLK2が出力されるため、消費電力を低減することができる。なお、前段データパスFDPを構成するデータ処理ユニットDPU1やデータメモリDM1又はDM2などの構成要素毎に、クロックの供給・停止を制御してもよい。
共有メモリSMに格納されていた画像データDAT1は、拡張命令コントローラEIC1、データインタフェースDIF1を介して、データ処理ユニットDPU1に入力され、画像処理される。
同様に、拡張命令コントローラEIC2は、命令デコーダIDから入力された命令に基づいて、拡張命令EI2、リクエスト信号REQ2、クロックイネーブル信号CKE2を発行する。拡張命令EI2は、タスクコントローラTC1の拡張命令デコーダEID1に入力される。拡張命令デコーダEID1は、拡張命令コントローラEIC1から入力された拡張命令EI2をデコードし、データ処理ユニットDPU2及びステートマシンSMC2に対して出力する。この拡張命令EI2に基づいて、データ処理ユニットDPU2は画像処理を実行する。
リクエスト信号REQ2は、タスクコントローラTC2のステートマシンSMC2に入力される。ステートマシンSMC2は、デコードされた拡張命令EI2とリクエスト信号REQ2とに基づいて、ステータス情報ST2aを発行する。このステータス情報ST2aはステータスメモリSTM2に格納される。
また、ステータスメモリSTM2には、データ処理ユニットDPU2から入力されるステータス情報ST2bも格納される。ステータスメモリSTM2に格納されたステータス情報ST2a、ST2bは、選択的にステータス情報ST2として拡張命令コントローラEIC2へフィードバックされる。なお、ステータス情報ST2a、ST2bのうち一方のみを拡張命令コントローラEIC2へフィードバックしてもよい。
拡張命令コントローラEIC2は、フィードバックされたステータス情報ST2及び基本プロセッサMPによりバックグラウンド処理される基本命令に基づいて、マルチタスクコプロセッサCPのタスクをクロック単位の精密なタイミング制御により管理することができる。例えば、拡張命令コントローラEIC2は、特定のステータスになった場合、基本プロセッサMPによりバックグラウンドで処理された基本命令に基づいて、タスクコントローラTC2に対し、新たな拡張命令を発行する。その他、タスクコントローラTC2に対し、データ処理ユニットDPU2が実行するタスクの開始あるいは停止を指示するなど各種制御が可能である。
クロックイネーブル信号CKE2は、タスクコントローラTC2のクロックコントローラCKC2に入力される。クロックコントローラCKC2は、クロックイネーブル信号CKE2に基づいて、クロックCLK2を出力する。このクロックCLK2に応じて後段データパスLDPが動作する。クロックイネーブル信号CKE2が入力されている期間だけクロックコントローラCKC2からクロックCLK2が出力されるため、消費電力を低減することができる。なお、後段データパスLDPを構成するデータ処理ユニットDPU2やデータメモリDM1又はDM2などの構成要素毎に、クロックの供給・停止を制御してもよい。
データ処理ユニットDPU2により画像処理された画像データDAT2は、データインタフェースDIF2、拡張命令コントローラEIC2を介して、共有メモリSMに格納される。
このように、本実施の形態に係るストリームプロセッサでは、マルチタスクコプロセッサCPが実行しているタスクのステータス情報が、基本プロセッサMPにフィードバックされる。そのため、このステータス情報に基づいて、基本プロセッサMPに設けられたマルチタスクコプロセッサコントローラCPCにより、クロック単位でマルチタスクコプロセッサCPが実行しているタスクを制御することができる。
すなわち、本実施の形態に係るストリームプロセッサにおけるタスク管理は、基本プロセッサからの割り込み開始の通知及びコプロセッサからの割り込み終了の通知を伴う割り込み処理でないため、ストリーム処理が中断されることがなく遅延が生じない。そのため、特許文献2に開示されたストリームプロセッサに比べ、リアルタイム制御により適している。
次に、図5を用いて、本実施の形態に係るストリームプロセッサにより実行されるパイプライン処理について説明する。図5は、本実施の形態に係るストリームプロセッサにより実行されるパイプライン処理を示すタイミングチャートである。このパイプライン処理は、IFフェーズ、IDフェーズ、EXフェーズを備えた3段パイプライン処理である。IFフェーズでは、命令がフェッチされる。IDフェーズでは、命令がデコードされる。そして、EXフェーズでは、命令が実行される。
図5の最上段からクロック、基本命令1、拡張命令(タスク1)、拡張命令(タスク1)ステータス、拡張命令(タスク2)、拡張命令(タスク2)ステータス、基本命令2を示している。ここで、拡張命令(タスク1)、拡張命令(タスク2)は、ループ処理であり、それぞれ連続して繰り返し実行される。また、1セットの拡張命令(タスク1)、拡張命令(タスク2)により、1つのフレームが画像処理される。なお、本実施の形態に係る拡張命令(タスク1)、拡張命令(タスク2)は、VLIW方式やスーパースカラー方式などの並列命令ではないが、そのような並列命令であってもよい。
図5に示すように、まず時刻T1で基本命令1が命令メモリIMからフェッチされ、次クロック(時刻T2)で命令デコーダIDによりデコードされる。同じタイミングで、拡張命令(タスク1)が、拡張命令コントローラEIC1からフェッチされる。
次クロック(時刻T3)では、基本プロセッサMP本体により基本命令1が実行される。この基本命令1は、例えば初期設定などである。同じタイミングで、拡張命令(タスク1)が拡張命令デコーダEID1によりデコードされる。また、拡張命令(タスク2)が拡張命令コントローラEIC2からフェッチされる。
次クロック(時刻T4)では、データ処理ユニットDPU1により拡張命令(タスク1)の実行が開始される。拡張命令(タスク1)の実行時間は基本命令に比べ長い。ここで、拡張命令(タスク1)がデコードされると、拡張命令コントローラEIC1からステートマシンSMC1へ、リクエスト信号REQ1が出力される。そのため、拡張命令(タスク1)がEXステージへ移行すると同時に、ステートマシンSMC1はEXステージのステータス情報ST1aの発行を開始する。ここで、図4において説明したように、このステータス情報ST1aはステータスメモリSTM1を介して拡張命令コントローラEIC1へフィードバックされる。
図5の例では、拡張命令(タスク1)のEXステージはS0〜Snまでのn+1(nは0又は自然数)個のステータスを有し、クロック毎に順にステータスが遷移する。なお、ステータスは順に遷移する必要はない。
同じタイミング(時刻T4)で、拡張命令(タスク2)が拡張命令デコーダEID2によりデコードされる。また、基本命令2が命令メモリIMからフェッチされる。
次クロック(時刻T5)では、データ処理ユニットDPU2により拡張命令(タスク2)の実行が開始される。拡張命令(タスク2)の実行時間は基本命令に比べ長い。ここで、拡張命令(タスク2)がデコードされると、拡張命令コントローラEIC2からステートマシンSMC2へ、リクエスト信号REQ2が出力される。そのため、拡張命令(タスク2)がEXステージへ移行すると同時に、ステートマシンSMC2はEXステージのステータス情報ST2aの発行を開始する。ここで、図4において説明したように、このステータス情報ST2aはステータスメモリSTM2を介して拡張命令コントローラEIC2へフィードバックされる。
図5の例では、拡張命令(タスク2)のEXステージはS0〜Smまでのm+1(mは0又は自然数)個のステータスを有し、クロック毎に順にステータスが遷移する。なお、ステータスは順に遷移する必要はない。
同じタイミング(時刻T5)で、基本命令2が命令デコーダIDによりデコードされる。次クロック(時刻T6)では、基本プロセッサMP本体により基本命令2が実行される。基本命令2は、例えば次フレームの画像処理を開始するために基本命令1に戻るための分岐命令である。
ここで、時刻T6〜T7の間、拡張命令(タスク1)、拡張命令(タスク2)、基本命令2の3つの命令のEXステージが並列して実行されている。特に、マルチタスクコプロセッサCPにおいて拡張命令(タスク1)、拡張命令(タスク2)が実行されている間に、基本プロセッサMPによりバックグラウンドで基本命令2が実行される。この基本命令2に基づいて、処理中のフレームのための拡張命令(タスク1)のステータスがSnになった時点で、次フレームのための拡張命令(タスク1)が発行される。同様に、処理中のフレームのための拡張命令(タスク2)のステータスがSmになった時点で、次フレームのための拡張命令(タスク2)が発行される。
このように、本実施の形態に係るストリームプロセッサでは、基本プロセッサMPによりバックグラウンドで行われる各種命令と、マルチタスクコプロセッサCPからフィードバックされるステータス情報とに基づいて、基本プロセッサMPのマルチタスクコプロセッサコントローラCPCが、マルチタスクコプロセッサCPが実行するタスクをクロック単位の精密なタイミング制御により管理することができる。具体的には、特定のステータスになった場合に、上記各種命令に基づいて、タスクを開始あるいは停止することや、拡張命令を発行することなどができる。従って、ストリームプロセッサの仕様をプログラムにより容易かつ迅速に変更することができる。もちろん、上記各種命令は特定の命令に限定されるものではない。
以上のように、本実施の形態に係るストリームプロセッサにおけるタスク管理は、基本プロセッサからの割り込み開始の通知及びコプロセッサからの割り込み終了の通知を伴う割り込み処理でないため、ストリーム処理が中断されることがなく遅延が生じない。そのため、特許文献2に開示されたストリームプロセッサに比べ、リアルタイム制御により適している。なお、コプロセッサがマルチタスクでなくシングルタスクであっても同様の効果が得られる。
また、本実施の形態に係るストリームプロセッサは、ストリーム処理の動作レートに合わせて逐次処理できるため、データメモリの容量を削減することができる。さらに、動作周波数を上げることなく並列タスク数を上げることができるため、低消費電力化することができる。
なお、本実施の形態に係るストリームプロセッサでは、ストリーム処理の並列タスク数を上げるために複数のマルチタスクコプロセッサ同士を接続(プラグイン)することが容易である。あるいは、他の機能を有するマルチタスクコプロセッサを接続(プラグイン)することも容易である。すなわち、プラグイン方式によるスケーラビリティを有するため、単独では冗長な機能及び性能を備える必要がなく、最適なハードウェアを実現することができる。
(実施の形態2)
図6は、本発明の第2の実施の形態に係るストリームプロセッサのブロック図である。実施の形態2では、実施の形態1に対し、2つのDMA回路DMA1、DMA2及び2つの外部データメモリEDM1、EDM2が付加されている。ここで、取り込まれた画像データは、外部データメモリEDM1に格納されている。また、データ処理ユニットDPU1及びデータ処理ユニットDPU2により2段階で画像処理された画像データが、外部データメモリEDM2に格納される。
従って、実施の形態2では、タスクコントローラTC1からの拡張命令(タスク1)に基づいて、DMA回路DMA1が外部データメモリEDM1にアクセスする。これにより、外部データメモリEDM1に格納されていた画像データは、データ処理ユニットDPU1に入力され、拡張命令(タスク1)に基づいて画像処理される。
また、実施の形態2では、タスクコントローラTC2からの拡張命令(タスク1)に基づいて、DMA回路DMA2が外部データメモリEDM2にアクセスする。これにより、データ処理ユニットDPU2により画像処理された画像データが、外部データメモリEDM2に格納される。その他の構成及び効果は、実施の形態1と同様であるため、説明を省略する。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。特に、共有メモリ、外部データメモリ、データメモリなどのメモリについては種々の構成が考えられ得る。
CKC1、CKC2 クロックコントローラ
CP マルチタスクコプロセッサ
CPC マルチタスクコプロセッサコントローラ
DIF1 データインタフェース
DIF2 データインタフェース
DM1、DM2 データメモリ
DMA1、DMA2 DMA回路
DPU1、DPU2 データ処理ユニット
EDM1、EDM2 外部データメモリ
EIC1、EIC2 拡張命令コントローラ
EID1、EID2 拡張命令デコーダ
FDP 前段データパス
ID 命令デコーダ
IM 命令メモリ
LDP 後段データパス
MP 基本プロセッサ
MPC 基本プロセッサコントローラ
RSW リードスイッチ
SB システムバス
SM 共有メモリ
SMC1、SMC2 ステートマシン
SP ストリームプロセッサ
STM1、STM2 ステータスメモリ
TC1、TC2 タスクコントローラ
WSW ライトスイッチ

Claims (8)

  1. プログラマブルな基本プロセッサと、
    前記基本プロセッサが実行する基本命令とは異なる拡張命令を実行するコプロセッサと、を備えたストリームプロセッサであって、
    前記基本プロセッサは、前記コプロセッサに対し前記拡張命令を出力するコプロセッサコントローラを備え、
    前記コプロセッサは、前記拡張命令に基づいて実行されるタスクを制御し、かつ、当該タスクのステータス情報を出力するタスクコントローラを備え、
    前記コプロセッサコントローラは、前記ステータス情報と、前記基本プロセッサが予めバックグラウンドで実行していた基本命令とに基づいて、前記コプロセッサを制御するストリームプロセッサ。
  2. 前記タスクコントローラは、前記ステータス情報をクロック毎に出力する請求項1に記載のストリームプロセッサ。
  3. 前記タスクコントローラは、前記拡張命令に基づいて、前記ステータス情報を出力するステートマシンをさらに備える請求項1又は2に記載のストリームプロセッサ。
  4. 前記コプロセッサは、複数の前記タスクコントローラを備え、各前記タスクコントローラに入力される複数の拡張命令を並列して処理することができる請求項1〜3のいずれか一項に記載のストリームプロセッサ。
  5. 複数の前記タスクコントローラが第1及び第2のタスクコントローラであって、
    前記コプロセッサは、
    前記第1及び第2のタスクコントローラにそれぞれ制御される第1及び第2のデータ処理ユニットと、
    前記第1のデータ処理ユニットが処理したデータを格納する第1及び第2のデータメモリと、をさらに備え、
    前記第1のデータ処理ユニットが処理したデータを前記第1のデータメモリに格納している間、前記第2のデータ処理ユニットは前記第2のデータメモリに格納されたデータを読み出して処理し、
    前記第1のデータ処理ユニットが処理したデータを前記第2のデータメモリに格納している間、前記第2のデータ処理ユニットは前記第1のデータメモリに格納されたデータを読み出して処理する請求項4に記載のストリームプロセッサ
  6. プログラマブルな基本プロセッサと、前記基本プロセッサが実行する基本命令とは異なる拡張命令を実行するコプロセッサと、を備えたストリームプロセッサのタスク管理方法であって、
    前記基本プロセッサは、前記コプロセッサに対し前記拡張命令を出力し、
    前記コプロセッサは、前記拡張命令に基づいて実行されるタスクのステータス情報を出力し、
    前記基本プロセッサは、前記ステータス情報と、前記基本プロセッサが予めバックグラウンドで実行していた基本命令とに基づいて、前記コプロセッサを制御するストリームプロセッサのタスク管理方法。
  7. 前記コプロセッサは、前記ステータス情報をクロック毎に出力する請求項6に記載のストリームプロセッサのタスク管理方法。
  8. 前記コプロセッサは、複数の拡張命令を並列して処理することができる請求項6又は7に記載のストリームプロセッサのタスク管理方法。
JP2009177715A 2009-07-30 2009-07-30 ストリームプロセッサ及びそのタスク管理方法 Pending JP2011034189A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009177715A JP2011034189A (ja) 2009-07-30 2009-07-30 ストリームプロセッサ及びそのタスク管理方法
US12/825,868 US20110029757A1 (en) 2009-07-30 2010-06-29 Stream processor and task management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009177715A JP2011034189A (ja) 2009-07-30 2009-07-30 ストリームプロセッサ及びそのタスク管理方法

Publications (2)

Publication Number Publication Date
JP2011034189A true JP2011034189A (ja) 2011-02-17
JP2011034189A5 JP2011034189A5 (ja) 2012-04-05

Family

ID=43528085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009177715A Pending JP2011034189A (ja) 2009-07-30 2009-07-30 ストリームプロセッサ及びそのタスク管理方法

Country Status (2)

Country Link
US (1) US20110029757A1 (ja)
JP (1) JP2011034189A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014215624A (ja) * 2013-04-22 2014-11-17 富士通株式会社 演算処理装置
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
JP2017059273A (ja) * 2017-01-05 2017-03-23 富士通株式会社 演算処理装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018120449A (ja) * 2017-01-26 2018-08-02 ソニーセミコンダクタソリューションズ株式会社 演算処理装置および情報処理システム
CN110188067B (zh) * 2019-07-15 2023-04-25 北京一流科技有限公司 协处理器及其数据处理加速方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04104355A (ja) * 1990-08-24 1992-04-06 Fujitsu Ltd マルチプロセッシング方式
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2007156557A (ja) * 2005-11-30 2007-06-21 Toshiba Corp 並列プロセッサ
JP2007531137A (ja) * 2004-03-31 2007-11-01 コーウェア インコーポレイテッド マルチコアアーキテクチャにおけるリソース管理
JP2009505214A (ja) * 2005-08-11 2009-02-05 コアソニック アーベー 短い複素乗算器及び独立ベクトル・ロード・ユニットを含むクラスタードsimdマイクロ・アーキテクチャを有するプログラマブル・デジタル信号プロセッサ

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6100906A (en) * 1998-04-22 2000-08-08 Ati Technologies, Inc. Method and apparatus for improved double buffering
US7007156B2 (en) * 2000-12-28 2006-02-28 Intel Corporation Multiple coprocessor architecture to process a plurality of subtasks in parallel
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7240203B2 (en) * 2001-07-24 2007-07-03 Cavium Networks, Inc. Method and apparatus for establishing secure sessions
US7079147B2 (en) * 2003-05-14 2006-07-18 Lsi Logic Corporation System and method for cooperative operation of a processor and coprocessor
US7167971B2 (en) * 2004-06-30 2007-01-23 International Business Machines Corporation System and method for adaptive run-time reconfiguration for a reconfigurable instruction set co-processor architecture
US7546441B1 (en) * 2004-08-06 2009-06-09 Xilinx, Inc. Coprocessor interface controller
US8275975B2 (en) * 2008-01-25 2012-09-25 Mtekvision Co., Ltd. Sequencer controlled system and method for controlling timing of operations of functional units

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04104355A (ja) * 1990-08-24 1992-04-06 Fujitsu Ltd マルチプロセッシング方式
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2007531137A (ja) * 2004-03-31 2007-11-01 コーウェア インコーポレイテッド マルチコアアーキテクチャにおけるリソース管理
JP2009505214A (ja) * 2005-08-11 2009-02-05 コアソニック アーベー 短い複素乗算器及び独立ベクトル・ロード・ユニットを含むクラスタードsimdマイクロ・アーキテクチャを有するプログラマブル・デジタル信号プロセッサ
JP2007156557A (ja) * 2005-11-30 2007-06-21 Toshiba Corp 並列プロセッサ

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200401606007; 石黒 正雄 他: '「メディアプロセッサにおける可変長符号化処理の高速化」' 映像情報メディア学会技術報告 2003年3月開催分 第27巻 第18号, 20030304, 45頁〜50頁, (社)映像情報メディア学会 *
CSNG200501536003; 古澤 敏行 他: '「MePの拡張機能を用いた携帯機器向けDSPエンジンの開発」' 電子情報通信学会技術研究報告 第104巻 第366号, 20041015, 19頁〜24頁, 社団法人電子情報通信学会 *
JPN6013028438; 古澤 敏行 他: '「MePの拡張機能を用いた携帯機器向けDSPエンジンの開発」' 電子情報通信学会技術研究報告 第104巻 第366号, 20041015, 19頁〜24頁, 社団法人電子情報通信学会 *
JPN6013028439; 石黒 正雄 他: '「メディアプロセッサにおける可変長符号化処理の高速化」' 映像情報メディア学会技術報告 2003年3月開催分 第27巻 第18号, 20030304, 45頁〜50頁, (社)映像情報メディア学会 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2017224342A (ja) * 2012-09-27 2017-12-21 インテル・コーポレーション プロセッサ及び装置
US10061593B2 (en) 2012-09-27 2018-08-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10901748B2 (en) 2012-09-27 2021-01-26 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10963263B2 (en) 2012-09-27 2021-03-30 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US11494194B2 (en) 2012-09-27 2022-11-08 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2014215624A (ja) * 2013-04-22 2014-11-17 富士通株式会社 演算処理装置
US9501282B2 (en) 2013-04-22 2016-11-22 Fujitsu Limited Arithmetic processing device
JP2017059273A (ja) * 2017-01-05 2017-03-23 富士通株式会社 演算処理装置

Also Published As

Publication number Publication date
US20110029757A1 (en) 2011-02-03

Similar Documents

Publication Publication Date Title
KR101486025B1 (ko) 프로세서에서의 쓰레드 스케쥴링
WO2001016717A1 (fr) Unite de commande et support d'enregistrement
JP2011034189A (ja) ストリームプロセッサ及びそのタスク管理方法
JP5692089B2 (ja) プロセッサ、プロセッサによるループ回数制御方法
JP2013093026A (ja) デジタル信号処理のデータ転送
JP2007528549A (ja) 電子回路
US20010037441A1 (en) Method and apparatus for adding user-defined execution units to a processor using configurable long instruction word (CLIW)
JPWO2006022202A1 (ja) 情報処理装置、例外制御回路
JPH0772864B2 (ja) ディジタル信号プロセッサ
JP2011145927A (ja) プロセッサ
JP5630798B1 (ja) プロセッサーおよび方法
JP2014160393A (ja) マイクロプロセッサ及び演算処理方法
JPH07244588A (ja) データ処理装置
JP5491113B2 (ja) ベクトル処理装置、ベクトル処理方法、およびプログラム
JP2010140398A (ja) データ処理装置及びデータ処理方法
JP5788920B2 (ja) ベクトル処理装置およびベクトル処理方法
JP2584156B2 (ja) プログラム制御型プロセッサ
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP5013966B2 (ja) 演算処理装置
JP5536864B2 (ja) マルチスレッドプロセッサ
JP2006126893A (ja) クロック制御装置、情報処理装置およびクロック制御方法
JP2002351658A (ja) 演算処理装置
JP2011128672A (ja) スーパースカラプロセッサ及びその命令処理方法
JPH0855033A (ja) 情報処理装置
JPH10269079A (ja) 多重パイプラインを有する情報処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130527

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131015