[go: up one dir, main page]

JP2008152470A - データ処理システム及び半導体集積回路 - Google Patents

データ処理システム及び半導体集積回路 Download PDF

Info

Publication number
JP2008152470A
JP2008152470A JP2006338887A JP2006338887A JP2008152470A JP 2008152470 A JP2008152470 A JP 2008152470A JP 2006338887 A JP2006338887 A JP 2006338887A JP 2006338887 A JP2006338887 A JP 2006338887A JP 2008152470 A JP2008152470 A JP 2008152470A
Authority
JP
Japan
Prior art keywords
processor
task
data
information
memory
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.)
Withdrawn
Application number
JP2006338887A
Other languages
English (en)
Inventor
Hiroshi Tanaka
博志 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006338887A priority Critical patent/JP2008152470A/ja
Priority to EP07024127A priority patent/EP1939736A2/en
Priority to US11/956,916 priority patent/US20080168465A1/en
Publication of JP2008152470A publication Critical patent/JP2008152470A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プロセッサに対するタスクの切り替えに伴うローカルメモリのアクセスに要するオーバーヘッドを低減する。
【解決手段】第2プロセッサ(SPU)によりタスクの割り当てが制御される第1のプロセッサ(DRP1,DRP2)は命令用ローカルメモリとしてのバッファメモリ(CFGBUF)とデータ用ローカルメモリとしてのデータメモリ(LMA)とを備える。第2プロセッサは直前に実行されたタスクと次に実行するタスクの候補とのローカルメモリ内情報の入れ替えオーバーヘッドを考慮して計算されるコストを判断して、次に実行するタスクを決める。これによれば、タスク切り替えにおいて、タスク切り替えのコストが少ないタスクへの切り替えが優先され、全体の処理時間を短縮することが可能になる。
【選択図】図8

Description

本発明はデータ処理システム又は半導体集積回路に搭載された複数のプロセッサに対するタスク割り当て制御に関し、例えば、論理機能が可変に制御される動的差構成プロセッサに対する論理機能の設定と設定された論理機能を用いるタスクの割り当てとを制御する半導体集積回路に適用して有効な技術に関する。
近年、情報処理機器の普及と高性能化、高機能化への要求に伴い、一つの半導体チップに複数のプロセッサが搭載されるようになってきた。これらのチップでは複数のプロセッサに処理を割り当てることで低周波数でも高い性能を得ることが可能である。近年、半導体製造技術の進歩により半導体チップで実現できる回路規模が拡大しており、複数のプロセッサを有効利用する半導体チップが登場してきた。これらの半導体チップ、特に複数の異なるプロセッサを搭載するヘテロジニアス・マルチプロセッサチップでは、一つのコアをマスターとして他のコアに処理を分配し制御する方式、または、各々が独立に動作する方式があり、搭載されたプロセッサを有効に利用する方法が求められている。
こうした問題に対して、マルチプロセッサシステムに対して効率的な処理を行うためのタスク割り当て技術が特許文献1に開示されている。かかる先行技術では、プロセッサの特徴に応じてタスクの割り当てを行う方法が提示されている。
特開2004−171234号公報
しかしながら、特許文献1に示される技術では、本発発明者が検討する組み込み向けプロセッサにおけるローカルメモリの管理については考慮されていない。例えば本発明者は、論理機能が可変に制御される動的差構成プロセッサに対する論理機能の設定と設定された論理機能を用いるタスクの割り当て制御について検討した。動的再構成プロセッサは、バッファメモリが保持する論理構成情報を受け取って論理機能が決定される演算回路の他に、当該演算回路に接続されたデータメモリと前記バッファメモリをローカルメモリとして備える。ローカルメモリとは動的再構成プロセッサの外部との間でのデータ転送が外部のプロセッサ等によって制御されるメモリを意味する。したがって、動的再構成プロセッサのタスクを切り替えるとき、ローカルメモリに対する論理構成情報やデータの入れ替えは、データ処理のオーバーヘッドになる。
特許文献1に示される技術では、プロセッサの命令セットによる処理効率向上を想定していると考えられ、組み込み向けプロセッサで性能向上に用いられる上記のようなローカルメモリの利用を考慮した効率的なタスク管理については特に考慮されていない。プロセッサそれ自体のアーキテクチャとして効率的なタスク管理については考慮されていない場合には、ユーザが作成するプログラムそれ自体によってローカルメモリの管理とオーバーヘッドまでを考慮してなくてはならなくなり。プログラム並びにそれによる処理が複雑化し、結果としてデータ処理のオーバーヘッドを小さくすることができない。今後、組み込み機器の高性能化や高機能化にともない、より多種多様な処理を行なうプロセッサが搭載されるようになるため、上述の問題は一層顕著になると考えられる。
本発明の目的は、搭載されたプロセッサに対するタスクの切り替えに伴うローカルメモリのアクセスに要するオーバーヘッドを低減することができるデータ処理システムを提供することにある。
本発明の別の目的は、オンチップ化されたプロセッサに対するタスクの切り替えに伴うローカルメモリのアクセスに要するオーバーヘッドを低減することができる半導体集積回路を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、複数のプロセッサを搭載して構成されるデータ処理システム又は半導体集積回路において、第2プロセッサ(SPU)によりタスクの割り当てが制御される第1プロセッサ(DRP1,DRP2)は命令用ローカルメモリとしてのバッファメモリ(CFGBUF)とデータ用ローカルメモリとしてのデータメモリ(LMA)とを備える。第2のプロセッサは第1のプロセッサで直前に実行されたタスクと、次に実行するタスクの候補とのローカルメモリ内情報の入れ替えオーバーヘッドを考慮して計算されるコストを判断して、第1プロセッサが次に実行するタスクを決める。これによれば、タスク切り替えにおいて、タスク切り替えのコストが少ないタスクへの切り替えが優先され、全体の処理時間を短縮することが可能になる。
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
すなわち、搭載されたプロセッサに対するタスクの切り替えに伴うローカルメモリのアクセスに要するオーバーヘッドを低減することができる。
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るデータ処理システムは、論理機能が可変に制御される第1プロセッサ(DRP1,DRP2)と、前記第1プロセッサに対するタスクの割り当てを制御する第2プロセッサ(SPU)とを有する。前記第1プロセッサは、前記第2プロセッサから受け取った論理構成情報を保持するバッファメモリ(CFGBUF)と、バッファメモリが保持する論理構成情報を受け取って論理機能が決定される演算回路(RCA)と、演算回路に接続されたデータメモリ(LMA)と、第2プロセッサからの指示に応答してバッファメモリから演算回路への論理構成情報の内部転送と演算回路とデータメモリ間のデータの内部転送を制御する制御回路(CFGM)とを有する。前記第2プロセッサは、第1プロセッサが処理するタスクを切り替えるとき、切り替え候補となる同一優先順位のタスクに対して、論理機能を切り替えるための論理構成情報の転送時間とデータの転送時間との多寡を考慮したコスト計算を行って、次に実行するタスクを決定する。
上記によればタスク切り替えに際して第1プロセッサの論理構成情報とデータの入れ替えに要するコストが少ないタスクへの切り替えを優先するから、第1プロセッサのタスク切り替えに伴うバッファメモリ及びデータメモリのアクセスに要するオーバーヘッドが低減され、これによって、全体的なデータ処理時間を短縮することが可能になる。
一つの具体的な形態として、前記コスト計算は、前記バッファメモリの入れ替え容量と前記データメモリの入れ替え容量との合計によって前記転送時間の多寡を考慮する。予め入れ替え容量を計算するから転送時間の多寡を比較的正確に判定することができる。
別の具体的な形態として、前記コスト計算は、前記バッファメモリと前記データメモリにおいて入れ替え対象とする情報の種類によって前記転送時間の多寡を考慮する。例えばタスク切り替えに際して、バッファメモリから演算回路に当該タスクに応ずる論理構成情報の転送だけで済む場合もあれば、第2プロセッサのアクセス制御を介して外部からバッファメモリに複数のタスクに応ずる論理構成情報を転送しなければならない場合、更には第2プロセッサのアクセス制御を介してデータメモリと外部の間でデータの転送を行わなければならない場合もあり、これを入れ替え対象とする情報の種類で区別してコスト計算を行う。上記入れ替え容量の計算を要しないのでコスト計算時間を短縮することができる。但し、上記より転送時間の多寡の判定精度は低くなる。
別の具体的な形態として、前記第2プロセッサは前記第1プロセッサに処理させるタスクを管理するタスク管理情報の記憶領域(TMF)を有する。前記タスク管理情報は、タスク毎に、タスク識別情報(TID)、当該タスクの処理に割り当てられる第1プロセッサ識別情報(TGTDRP)、及びそのタスクのタスク実行優先度(TSKPRI)を含む。
更に具体的な形態として、前記第2プロセッサは前記データメモリを複数のエリアに分割して管理するためのエリア管理情報の記憶領域(LMMF)を有する。前記エリア管理情報は、前記タスク管理情報で管理するタスクが利用するエリア毎に、タスク識別情報(TID)、当該タスクが利用する一つのエリアの識別情報(AID)、データ退避先アドレス情報(BUFADR)、前記識別情報で示されるエリアに割り当てられるデータの所在を示す情報(LMST)、前記識別情報で示されるエリアの利用目的を示す情報(LMDINFO)を含む。タスク切り替えに際して第2プロセッサによるデータメモリの管理、即ち、データメモリに対する演算結果データの退避や演算に用いるデータのロードの管理が容易になる。
更に具体的な形態として、前記第2プロセッサは、タスクの切り替えを行うとき、切り替え元タスクのエリア管理情報に含まれる前記所在を示す情報がデータメモリを意味しており、更に、切り替え先タスクがデータメモリの同じ領域を利用するとき、当該エリア管理情報で特定されるエリアを前記コスト計算の対象とする。それ以外の所在のデータをコスト計算から容易に除外することができる。
更に具体的な形態として、前記所在を示す情報はデータメモリ又は前記第1プロセッサの外部の退避先を意味し、切り替え先タスクの前記所在を示す情報が退避先を示す場合には当該所在を示す情報を含むエリア管理情報で特定されるエリアをコスト計算の対象とする。切り替え元タスクが利用するデータメモリを切り替え先タスクが利用するために退避するコストと、切り替え先タスクのデータが退避先にある場合にデータメモリに復帰させるコストがコスト計算の対象に含まれる。
別の具体的な形態として、前記第2プロセッサは、タスクの切り替えを行うとき、そのタスクのエリア管理情報に含まれる前記利用目的を示す情報がデータの入れ替えを必要とするものであることを示すとき、当該エリア管理情報で特定されるエリアをコスト計算の対象にする。それ以外の目的のデータをコスト計算から容易に除外することができる。
更に具体的な形態として、前記利用目的を示す情報は出力バッファ、入力バッファ、定数データ記憶領域、又はタスクによる処理の途中結果を記憶する領域を示す。このとき、前記第2プロセッサは、タスクを終了したときのタスクの切り替えに際しては前記利用目的を示す情報が前記出力バッファを示すとき当該タスクのエリア管理情報で特定されるエリアの情報を退避し、タスクの処理を中断したときのタスクの切り替えに際しては前記利用目的を示す情報が前記途中結果を記憶する領域を示すとき当該タスクのエリア管理情報で特定されるエリアの情報を退避する。エリアのデータを退避すべきか否かの制御が容易になる。
別の具体的な形態として、前記第1プロセッサを複数個有し、前記第2プロセッサにデータ処理要求を発行する複数個の第3プロセッサ(PE1,PE2)と、外部メモリ(EXMEM)とを更に備える。前記第2プロセッサは前記第3プロセッサから発行されるデータ処理要求に応答して前記第1プロセッサに対するタスクの割り当てを制御すると共に、前記バッファメモリ及びデータメモリと前記外部メモリとの間のデータ転送のためのアクセス制御を行う。第2プロセッサと第3プロセッサの機能を分離することにより、システム全体としてのデータ処理効率が向上する。一つの第3プロセッサに第2プロセッサの機能を負担させることも可能であるが、当該第3プロセッサはその分だけ処理能力を割かなければならず、本来のデータ処理効率が低下する場合があると考えられる。
〔2〕本発明の代表的な実施の形態に係る半導体集積回路(MCU)は、論理機能が可変に制御される複数個の第1プロセッサ(DRP1,DRP2)と、前記複数個の第1プロセッサを制御する第2プロセッサ(SPU)と、前記第2プロセッサにデータ処理要求を発行する複数個の第3プロセッサ(PE1,PE2)と、を1個の半導体基板に有する。前記第1プロセッサは、前記第2プロセッサから受け取った論理構成情報を保持するバッファメモリ(CFGBUF)と、バッファメモリが保持する論理構成情報を受け取って論理機能が決定される演算回路(RCA)と、演算回路に接続されたデータメモリ(LMA)と、第2プロセッサからの指示に応答してバッファメモリから演算回路への論理構成情報の内部転送と演算回路とデータメモリ間のデータの内部転送を制御する制御回路(CFGM)とを有する。前記第2プロセッサは、前記第3プロセッサから発行されるデータ処理要求に応答して前記第1プロセッサに対するタスクの割り当てを制御すると共に、第1プロセッサが処理するタスクを切り替えるとき、切り替え候補となる同一優先順位のタスクに対して、論理機能を切り替えるための論理構成情報の転送時間とデータの転送時間との多寡を考慮したコスト計算を行って、次に実行するタスクを決定する。
上記によればタスク切り替えに際して第1プロセッサの論理構成情報とデータの入れ替えに要するコストが少ないタスクへの切り替えを優先するから、第1プロセッサのタスク切り替えに伴うバッファメモリ及びデータメモリのアクセスに要するオーバーヘッドが低減され、これによって、全体的なデータ処理時間を短縮することが可能になる。第2プロセッサと第3プロセッサの機能が分離されているから、システム全体としてのデータ処理効率が更に向上する。
一つの具体的な形態として、前記第1プロセッサ、前記第2プロセッサ及び前記第3プロセッサは内部バス(IBUS)に共通接続される。バス構成が単純化する。
別の具体的な形態として、前記第1プロセッサ及び前記第2プロセッサは第1内部バス(IBUS2)に共通接続され、前記第3プロセッサは第2内部バス(IBUS1)に共通接続され、第1内部バスと第2内部バスを接続するブリッジ回路を有する。バスの分離により第1プロセッサ及び第2プロセッサによるデータ処理と第3プロセッサによるデータ処理との間でバスの競合回避が容易になる。
〔3〕本発明の別の観点によるデータ処理システムは、第1プロセッサ(DRP1,DRP2)と、前記第1プロセッサに対するタスクの割り当てを制御する第2プロセッサ(SPU)とを有する。前記第1プロセッサは、演算回路(RCA)と、前記第2プロセッサから受け取った情報を保持すると共に演算回路による演算結果を保持するローカルメモリ(CFGBUF,LMA)と、第2プロセッサからの指示に応答してローカルメモリと演算回路との間で情報の内部転送を制御する制御回路(CFGM)とを有する。前記第2プロセッサは、第1プロセッサが処理するタスクを切り替えるとき、切り替え候補となる同一優先順位のタスクに対して、必要な前記情報の転送時間の多寡を考慮したコスト計算を行い、その計算結果に基づいて次に実行するタスクを決定する。これによれば、タスク切り替えに際して第1プロセッサのローカルメモリの情報を入れ替えするのに要するコストが少ないタスクへの切り替えを優先するから、第1プロセッサのタスク切り替えに伴うローカルメモリのアクセスに要するオーバーヘッドが低減され、これによって、全体的なデータ処理時間を短縮することが可能になる。
一つの具体的な形態として、前記コスト計算は、前記バッファメモリの入れ替え容量によって前記転送時間の多寡を考慮するものである。別の形態として、前記コスト計算は、前記バッファメモリに対して入れ替え対象とする情報の種類によって前記転送時間の多寡を考慮するものである。
2.実施の形態の説明
次に、実施の形態について更に詳述する。
図1には本発明にかかるデータ処理システムの一例が示される。同図にはマイクロコンピュータMCUと外部メモリEXMEMが代表的に示される。
マイクロコンピュータMCUは、特に制限されないが、2つのプロセッサPE1、PE2と、2つの動的再構成プロセッサDRP1、DRP2と、1つのDRP管理用のサブ・プロセッサSPUと、バス・ステート・コントローラBSCと、プロセッサ間バスIBUSとを含んで構成され、外部メモリEXMEMはバス・ステート・コントローラBSCに接続される。その他にプロセッサ間バスIBUSにはダイレクト・メモリ・アクセス・コントローラ等、その他の回路モジュールが結合されてもよい。マイクロコンピュータMCUは例えば単結晶シリコンのような1個の半導体チップに形成されている。
プロセッサPE1とPE2は汎用プロセッサであり、プログラムにしたがって命令を実行することにより所要のデータ処理を行う。プロセッサPE1とプロセッサPE2は相互に同じもので構成してもよいし、異なるもので構成してもよい。外部メモリEXMEMはプロセッサPE1及びプロセッサPE2のアドレス空間に配置され、プロセッサPE1、プロセッサPE2は外部メモリEXMEMをアクセスすることができる。
動的再構成プロセッサDRP1、DRP2は、その演算処理機能が制御情報に基づいて動的に変更可能にされるプロセッサであり、主にプロセッサPE1又はプロセッサPE2からの要求で特定処理を高速に実行するアクセラレータとして利用される。動的再構成プロセッサDRP1、DRP2は例えば画像データの圧縮・伸処理、暗号化復号処理、或いはベースバンド処理等に利用される。この動的再構成プロセッサDRP1、DRP2は、特に制限されないが、互いに同一の構成を備える。これら動的再構成プロセッサDRP1、DRP2の詳細は後で図2に基づいて説明で述べるが、命令用と、データ用のローカルメモリを備えることを特徴とし、主にプロセッサPE1又はプロセッサPE2からの指示に基づいて初期設定を行われた後はそれらに従い自動的に演算処理を行う。この動的再構成プロセッサDRP1、DRP2はその外部に配置されたメモリモジュール、例えば外部メモリEXMEMを直接アクセスする手段を持たない。動的再構成プロセッサDRP1、DRP2は、命令用と、データ用のローカルメモリを備え、これらを用いて計算を行い、直接動的再構成プロセッサ外部のメモリモジュールにアクセスする手段を持たない、という特徴を持つプロセッサの一例として位置付けられる。ただし、メモリモジュールへのアクセスという概念にはプロセッサPE1、PE2への割り込み要求や、ダイレクト・メモリ・アクセスの要求を含めず、動的再構成プロセッサのようなプロセッサはそれら要求を行なう手段を備えてもよい。
サブ・プロセッサSPUは動的再構成プロセッサDRP1,DRP2を管理するためのプロセッサであり、プロセッサPE1,PE2から動的再構成プロセッサDRP1,DRP2への処理要求を受け付け、内部の状況に応じて動的再構成プロセッサDRP1,DRP2へ処理を割り当てる。この際、必要に応じて動的再構成プロセッサDRP1,DRP2のローカルメモリ内の命令やデータの入れ替えを行う。ローカルメモリ内の命令やデータの入れ替えにはダイレクト・メモリ・アクセス・コントローラを用いることがよくあるが、本実施例ではサブ・プロセッサSPUが内部に同等の機能を備えることとする。ここで、図示は省略するが、マイクロコンピュータMCUはダイレクト・メモリ・アクセス・コントローラをサブ・プロセッサSPUとは別に備えていてもよい。サブ・プロセッサSPUでの処理については図4以降で詳細に述べる。また、サブ・プロセッサSPUを備える代わりに、サブ・プロセッサSPUに割り当てる処理を他のプロセッサPE1又はPE2の一タスクとして構成してもよい。
プロセッサ間バスIBUSはプロセッサPE1,PE2、サブ・プロセッサSPU、動的再構成プロセッサDRP1,DRP2およびバス・ステート・コントローラBSCを接続する一般的なバスである。ここでは一つのプロセッサ間バスIBUSを用いてそれら回路モジュールを接続しているが、これに限定されず、複数のバスをブリッジ回路で接続した構成を採用してもよい。
バス・ステート・コントローラBSCは、プロセッサ間バスIBUSとマイクロコンピュータMCUの外部モジュール、例えば外部メモリEXMEMを接続するための回路であり、バス・プロトコルの変換や、動作クロックが異なる場合のタイミング調整などを行う。
図2には動的再構成プロセッサDRP1の構成が例示される。特に図示はしないが動的再構成プロセッサDRP2も図2と同様に構成される。
図2に示される動的再構成プロセッサDRP1は、コンフィギュレーション情報により再構成されるリコンフィギュラブル・セル・アレイRCAと、データ格納用のローカルメモリLMAと、コンフィギュレーション・マネージャCFGMと、命令格納用のローカルメモリにあたるコンフィギュレーション・バッファCFGBUFと、バス・インターフェースBUSIFを含んで構成される。また、バス・インターフェースBUSIFはプロセッサ・バスIBUSに接続される。
ここで、コンフィギュレーションとは、動的再構成プロセッサDRP1における命令であり、これを切り替えることでローカルメモリLMAのデータに対してデータ処理を実行することができる。
リコンフィギュラブル・セル・アレイRCAは、アレイ状に配置された複数の演算セルを備え、複数の演算セルは信号線で接続され、例えばデータフロー型の演算装置を構成し、ローカルメモリLMAとコンフィギュレーション・マネージャCFGMに接続される。リコンフィギュラブル・セル・アレイRCA内部の演算セルは単一種類であっても複数種類であってもよい。各演算セルは内部に実行時のコンフィギュレーションを保持する回路(演算セルのコンフィギュレーション保持回路)を備えており、コンフィギュレーション・マネージャCFGMによって自動的にコンフィギュレーション・バッファCFGBUFからこの保持回路にコンフィギュレーションがロードされる。リコンフィギュラブル・セル・アレイRCAはコンフィギュレーション・マネージャCFGMの指示によりコンフィギュレーションが切り替えられながらローカルメモリLMAのデータを入力してデータ処理を行い、データ処理結果を再びローカルメモリLMAに格納する。前記演算セルのコンフィギュレーション保持回路は、1コンフィギュレーション分であっても複数コンフィギュレーション分であってもよいが、面積や動作速度の問題から小さめのサイズ、例えば2〜4コンフィギュレーション分程度で構成されることが多い。コンフィギュレーションの階層的な取り扱いについては図3で詳細に述べる。
データ用のローカルメモリLMAは、リコンフィギュラブル・セル・アレイRCAでの演算で利用する入力データと、これによる演算結果の出力データを格納するためのメモリである。また、ローカルメモリLMAはリコンフィギュラブル・セル・アレイRCAでの演算の途中結果を格納するために利用されることもある。ローカルメモリLMAと動的再構成プロセッサDRP1外部のメモリEXMEMとのデータ転送は、サブ・プロセッサSPUにより制御される。
コンフィギュレーション・バッファCFGBUFは、動的再構成プロセッサDRP1の動作を記述したコンフィギュレーションを格納するためのメモリである。その容量や構成は動的再構成プロセッサDPR1の具体的な構成により異なるが、リコンフィギュラブル・セル・アレイRCAの内部の演算セルに対する命令と、リコンフィギュラブル・セル・アレイRCAを管理するコンフィギュレーション・マネージャCFGMの動作を指示する命令を含む。また、コンフィギュレーション・バッファCFGBUF内には多数のコンフィギュレーションを格納することができる。コンフィギュレーション・バッファCFGBUFと動的再構成プロセッサDRP1の外部メモリEXMEMとのデータ転送は、サブ・プロセッサSPUにより制御される。
コンフィギュレーション・マネージャCFGMは、リコンフィギュラブル・セル・アレイRCAで実行するコンフィギュレーションの切り替えや、コンフィギュレーション・バッファCFGBUFからリコンフィギュラブル・セル・アレイRCA内の演算セルへのコンフィギュレーションの転送の管理を、コンフィギュレーション・バッファCFGBUFに格納されたコンフィギュレーション・マネージャCFGM用の命令に従って行う。また、コンフィギュレーション・マネージャCFGMはサブ・プロセッサSPUからの要求により処理を開始し、終了時は割り込みによりサブ・プロセッサSPUに通知を行う。ここで、終了に関しては割り込みでの通知を行わず、サブ・プロセッサSPUがコンフィギュレーション・マネージャCFGMの状態を監視して終了を検知することも可能である。
以上のように構成される動的再構成プロセッサDRP1では、サブ・プロセッサSPUからの設定と与えられたコンフィギュレーションにより、ローカルメモリLMAに格納されたデータに対して自動的にデータ処理を行うことが可能である。
図3には動的再構成プロセッサDRPのためのコンフィギュレーションの記憶領域の階層構成が例示される。ここではコンフィギュレーションの記憶領域は3つの階層を有する。コンフィギュレーションの第1の記憶階層(第1のコンフィギュレーション記憶階層)1st_CFGHは外部メモリEXMEMに代表される共有メモリである。マイクロコンピュータMCUがオンチップで共有メモリを備えるとき、これを第1階層の記憶領域として用いることも可能である。第1階層ではセクション・コンフィギュレーションSCFGの単位でコンフィギュレーションを扱う。セクション・コンフィギュレーションSCFGとはコンフィギュレーション・バッファCFGBUFに一括格納可能なコンフィギュレーションの単位である。第1のコンフィギュレーション記憶階層では複数のセクション・コンフィギュレーションSCFGを扱う。
コンフィギュレーションの第2の記憶階層(第2のコンフィギュレーション記憶階層)2nd_CFGHは、動的再構成プロセッサDRP1,DRP2が備えるコンフィギュレーション・バッファCFGBUFである。コンフィギュレーション・バッファCFGBUFはセクション・コンフィギュレーションSCFGを格納する。コンフィギュレーション・バッファCFGBUFを複数備える場合にはセクション・コンフィギュレーションSCFGも複数保存することが可能である。セクション・コンフィギュレーションSCFGは多数のコンフィギュレーションから構成されるため、動的再構成プロセッサDRP1,DRP2はある程度の処理内容まではコンフィギュレーション・バッファCFGBUF内のセクション・コンフィギュレーションSCFGの入れ替えを行うことなく、連続してデータ処理を実行することができる。
コンフィギュレーションの第3記憶階層(第3のコンフィギュレーション記憶階層)3rd_CFGHは、動的再構成プロセッサDRP1,DRP2内部のリコンフィギュラブル・セル・アレイRCAの各演算セルが備える小規模なコンフィギュレーション保持回路CFGLCである。
第1のコンフィギュレーション記憶階層1st_CFGHから第2のコンフィギュレーション記憶階層2nd_CFGHへの転送は、サブ・プロセッサSPUにより制御される。この転送が行われる際、サブ・プロセッサSPUは動的再構成プロセッサDRP1,DRP2が実行中の処理を意図しないで停止させることがないように処理状況を把握して行う必要がある。また、この転送はプロセッサ・バスIBUSを利用して行われるため他の回路モジュールによるバスアクセスの状況に応じた影響を受け、比較的長い転送時間を要する。
第2のコンフィギュレーション記憶階層2nd_CFGHから第3のコンフィギュレーション記憶階層3rd_CFGHへの転送は、動的再構成プロセッサDRP1,DRP2内のコンフィギュレーション・マネージャCFGMによって制御される。この転送時間はリコンフィギュラブル・セル・アレイRCAの演算セル数や、コンフィギュレーション・マネージャCFGMとリコンフィギュラブル・セル・アレイRCAとの接続の構成により異なるが、各々の動的再構成プロセッサDRP1、DRP2内部で閉じているために転送時間は比較的短く、転送時間を正確に見積もることも可能である。
このように階層化してコンフィギュレーションを扱う場合に、第1のコンフィギュレーション記憶階層1st_CFGHから第2のコンフィギュレーション記憶階層2nd_CFGHへの転送回数を抑制できるように動的再構成プロセッサDRP1,DRP2でのデータ処理を行えば、コンフィギュレーションの転送に伴う処理時間を少なくすることが可能である。
図4にはマイクロコンピュータMCUにおけるソフトウェアの階層構成の例と共に、プロセッサPE1,PE2でアプリケーションを実行し、一部の処理を動的再構成プロセッサDRP1,DRP2に負担させる場合の指示並びのデータの流れが矢印ARWで示される。
図4では動的再構成プロセッサDRP1,DRP2を制御するサブ・プロセッサSPUと、動的再構成プロセッサDRP1,DRP2へ処理要求を出すプロセッサPE1,PE2のソフトウェア構成が例示される。動的再構成プロセッサDRP1,DRP2に処理要求を出すプロセッサPE1,PE2側のソフトウェアは、アプリケーションプログラムAPLと、サブ・プロセッサへのアプリケーション・プログラム・インタフェースSPU−APIと、リモート・プロシージャ・コールRPCを含んで構成される。本発明ではプロセッサPEやサブ・プロセッサSPUで動作するオペレーティング・システムは本質的ではないため省略しているが、オペレーティング・システムが存在してもよい。
アプリケーションプログラムAPLを実行するアプリケーション処理では、必要に応じてアプリケーション・プログラム・インタフェースSPU−APIを利用してDRPへ処理要求を出したり、動的再構成プロセッサDRP1,DRP2へのデータ転送要求を出したりする。
アプリケーション・プログラム・インタフェースSPU-APIはアプリケーションプログラムAPLからの要求を受け付け、リモート・プロシージャ・コールRPCを利用してサブ・プロセッサSPUに要求を伝える。即ち、アプリケーション・プログラム・インタフェースSPU-APIはアプリケーションプログラムAPLに対して公開されているプログラムインターフェイスを有し、アプリケーションプログラムからは、適当なパラメータ(引数)を指定して、アプリケーション・プログラム・インタフェースの関数を呼び出すことによってサブ・プロセッサSUPに要求を伝えることができる。
リモート・プロシージャ・コールRPCはプロセッサ間の通信を行うための手続きを規定するプログラムである。このリモート・プロシージャ・コールRPCは既存のさまざまな通信方式を用いて実現することが可能である。
動的再構成プロセッサDRP1,DRP2への処理要求を受け付け、動的再構成プロセッサDRP1,DRP2を制御するサブ・プロセッサSPU側のソフトウェアは、DRP制御カーネルDRPCCと、リモート・プロシージャ・コールRPCと、動的再構成プロセッサへのアプリケーション・プログラム・インタフェースDRP−APIから構成される。
リモート・プロシージャ・コールRPCはプロセッサPE1、PE2側のソフトウェアと同じで、プロセッサ間の通信を行うためのプログラムである。
DRP制御カーネルDRPCCはプロセッサPE1,PE2から動的再構成プロセッサDRP1,DRP2への処理要求を受け付け、内部の動的再構成プロセッサ管理方式に従ってアプリケーション・プログラム・インタフェースDRP−APIにより動的再構成プロセッサDRP1,DRP2を制御する。DRP制御カーネルDRPCC内部で管理を行う対象は、動的再構成プロセッサDRP1,DRP2と、動的再構成プロセッサDRP1,DRP2のセクション・コンフィギュレーションSCFGと、動的再構成プロセッサDRP1,DRP2で実行するタスクと、そのタスクが利用するローカルメモリLMA,CFGBUFである。動的再構成プロセッサDRP1,DRP2で実行するタスクとその管理については図5と図6と図8、タスクが利用するローカルメモリについては図7で詳しく説明する。動的再構成プロセッサDRP1,DRP2の管理では、プロセッサPE1,PE2による動的再構成プロセッサDRP1,DRP2の利用に関して占有するか、共有するかを管理する。占有とした場合は単一のプロセッサPE1又はPE2からしか要求を受け付けず、共有とした場合は複数のプロセッサPE1,PE2からの要求を受け付けることができる。動的再構成プロセッサDRP1,DRP2のセクション・コンフィギュレーションSCFGの管理では、登録されたセクション・コンフィギュレーションSCFGを管理する。セクション。コンフィギュレーションSCFGの管理では、セクション・コンフィギュレーションSCFGそのものをサブ・プロセッサSPU内に保持する場合と、外部メモリEXMEMに配置し、そのアドレスを管理する場合がある。タスクの実行に際して、現在コンフィギュレーション・バッファCFGBUFにロードされているセクション・コンフィギュレーションSCFGと異なるセクション・コンフィギュレーションSCFGを利用するタスクを実行する場合は、メモリEXMEMまたはサブ・プロセッサSPU内の当該メモリからコンフィギュレーション・バッファCFGBUFにロードする作業を行う。
アプリケーション・プログラム・インタフェースDRP−APIはサブ・プロセッサSPUから動的再構成プロセッサDRP1,DRP2を直接制御するためのソフトウェアである。動的再構成プロセッサDRP1,DRP2の構成に応じて制御用のレジスタへのアクセスを行ったり、セクション・コンフィギュレーションSCFGを動的再構成プロセッサDRP1,DRP2内のコンフィギュレーション・バッファCFGBUFへロードしたり、動的再構成プロセッサDRP1,DRP2内のローカルメモリLMAへのアクセスを行ったりする。
図4のソフトウェア構成においてプロセッサPE1,PE2で実行するアプリケーションプログラムAPLから動的再構成プロセッサDRP1,DRP2を利用する場合は、まず、アプリケーションプログラムAPLがアプリケーション・プログラム・インタフェースSPU−APIを利用して動的再構成プロセッサDRP1,DRP2の利用要求を出す。アプリケーション・プログラム・インタフェースSPU-APIはリモート・プロシージャ・コールRPCRPCを利用してプロセッサPE1,PE2とサブ・プロセッサSPU間の通信を行い、DRP制御カーネルDRPCCに要求を伝える。DRP制御カーネルDRPCCは与えられた要求を内部の管理方式に従って処理する。この際、動的再構成プロセッサDRP1,DRP2を直接制御するに当たってはアプリケーション・プログラム・インタフェースDRP−APIを利用する。
以上のように構成することで、動的再構成プロセッサDRP1,DRP2の構成が異なる場合にも同様にして扱うことが可能となる。また、プロセッサPE1,PE2や動的再構成プロセッサDRP1,DRP2が複数ある場合にもサブ・プロセッサSPUで上記のような管理を行うことにより競合なども含めて容易に扱うことが可能である。
図5には動的再構成プロセッサDRP1の処理に必要なセクション・コンフィギュレーションが例示される。図5には2個のセクション・コンフィギュレーションSCFG1,SCFG2が示される。セクション・コンフィギュレーションSCFG1は2個のタスクTSK1とTSK2から構成され、セクション・コンフィギュレーションSCFG2は3個のタスクTSK3とTSK4とTSK5から構成される。タスクTSK1は4個のコンフィギュレーションCF1,CF2,CF3,CF4から構成され、タスクTSK2は4個のコンフィギュレーションCF5,CF6,CF7,CF8から構成される。
ここで、タスクとは複数のコンフィギュレーションにより構成される一連の処理のことを意味する。例えばタスクTSK1はコンフィギュレーションCF1,CF2,CF3,CF4から構成され、それぞれのコンフィギュレーションの遷移は図5の矢印で示すように定義される。これらの情報はすべてセクション・コンフィギュレーションSCFG1に含まれる。
図5のセクション・コンフィギュレーションに従った処理において、例えばタスクTSK1からタスクTSK2へタスクの切り替えが発生した場合にはセクション・コンフィギュレーションSCFGの入れ替えは発生しないが、タスクTSK1からタスクTSK3へタスクの切り替えが発生した場合にはセクション・コンフィギュレーションSCFG1からセクション・コンフィギュレーションSCFG2に入れ替えが行われる。すべてのタスクが一つのセクション・コンフィギュレーションSCFGに入れることができれば入れ替えのオーバーヘッドは発生しないが、一つのセクション・コンフィギュレーションSCFGのサイズはコンフィギュレーション・バッファCFGBUFの容量により上限があるため、タスク切り替えのオーバーヘッドを考慮して、動的再構成プロセッサDRP1,DRP2に対するセクション・コンフィギュレーションSCFGとタスクの割り当てを決めなくてはならない。タスクの切り替えに際してコンフィギュレーションの入れ替えがなければコンフィギュレーション・バッファCFGBUFからRCAへのタスクのロードを行えば良いが、コンフィギュレーションの入れ替えを要する場合には例えば外部メモリEXMEMからコンフィギュレーション・バッファCFGBUFへセクション・コンフィギュレーションをロードしなければならない。
図6にはサブ・プロセッサSPUにおいて動的再構成プロセッサDRP1、DRP2に処理させるタスクを管理するためのタスク管理情報が例示される。タスク管理情報はタスク毎に必要であり、図6には一つのタスクに対応する一つのタスク管理情報の詳細が例示される。タスク管理情報は例えばサブ・プロセッサSPUの記憶領域TMFに保持される。
図6のタスク管理情報は、タスクを特定するタスク番号TIDと、そのタスクが含まれるセクション・コンフィギュレーションの番号(セクション・コンフィギュレーション番号)CFGIDと、タスクが割り当てられる動的再構成プロセッサの番号(動的再構成プロセッサ番号)TGTDRPと、そのタスクのタスク実行優先度TSKPRIと、そのタスクのタスク実行開始ポイントSTPTと、そのタスクのタスク実行終了ポイントENDPTと、其のタスクのタスク実行中断ポイントSPDPTを含んで構成される。
タスク番号TIDは、タスクを識別するための番号である。例えば、図5の処理構成例では、TSK1、TSK2、TSK3、TSK4、TSK5がこれにあたる。
セクション・コンフィギュレーション番号CFGIDは、そのタスクを含むSCFGの番号である。例えば、図5の処理構成例では、SCFG1とSCFG2があり、タスク番号TIDがTSK1のタスクを含むセクション・コンフィギュレーションの番号CFGIDはSCFG1である。これによりタスクとセクション・コンフィギュレーションとを関連付けている。この値はアプリケーションプログラムにAPLに従ってサブ・プロセッサSPUが動的再構成プロセッサに実行させるタスクを登録するときに設定する。
動的再構成プロセッサ番号TGTDRPは、タスクが割り当てられる動的再構成プロセッサの番号であり、そのタスクを実行する動的再構成プロセッサDRPを固定したい場合に指定する。ここに固定しないことを意味する値を設定することにより、利用可能な任意の動的再構成プロセッサDRPに其のタスクの処理を割り当てて実行することもできる。この値は同じくタスクの登録時に設定する。
タスク実行優先度TSKPRIは、タスクの実行優先度である。例えば、サブ・プロセッサSPUにおいて複数のタスクが実行可能となった場合には、この優先度を利用して実行するタスクを決める。詳細な実行タスクの選択については図8で説明する。
タスク実行開始ポイントSTPTは、タスクの実行開始となるコンフィギュレーション番号を意味する。例えば、図5の処理例のタスクTSK1のSTPTはCF1となる。動的再構成プロセッサDRPにタスクを実行させるためには、開始ポイントとしてこの値を設定する。この値はタスクの登録時に設定する。
タスク実行終了ポイントENDPTは、タスクの実行終了となるコンフィギュレーション番号を意味する。例えば、図5の処理構成例のタスクTSK1のENDPTはCF4となる。この値はタスクの登録時に設定する。また、この値はサブ・プロセッサSPUからタスクの終了を確認するために利用される。即ち、動的再構成プロセッサDRPにおいてコンフィギュレーション・マネージャCFGMがどこまで処理を実行したかを参照することによってサブ・プロセッサはタスクの終了を確認することができる。
タスク実行中断ポイントSPDPTは、タスクが中断された時のコンフィギュレーションを意味する。例えば、図5の処理構成例のタスクTSK1において、CF2まで実行終了した後に中断された場合には、実行中断ポイントSPDPTはCF3となる。タスクが再開される場合はここに示されるコンフィギュレーションから再開する。また、タスクの登録時とタスクの終了時にはこの値は無効を意味する値に設定される。要するに、タスク実行中断ポイントSPDPTは、タスクの実行が中断されたとき、それに応じたコンフィギュレーションの番号がセットされるテンポラリ領域として利用される。
上述のようにプロセッサPE1,PE2によるアプリケーションプログラムの実行に従ってサブ・プロセッサが動的再構成プロセッサDRP1,DRP2にタスクの割り当てを行ったとき、サブ・プロセッサSPUは、データ用のローカルメモリLMAに対ししてもタスクの割り当てに応じたデータ領域の割り当て並びに割り当てた領域に対するデータのロードとストアを制御する。即ち、サブ・プロセッサSPUはタスクの割り当て管理と共にデータ用のローカルメモリLMAの管理も行う。
図7には動的再構成プロセッサDRPのタスク処理で利用されるローカルメモリLMAを管理するためのサブ・プロセッサSPUによるローカルメモリ管理の情報の詳細が例示される。前記ローカルメモリ管理情報は例えばサブ・プロセッサSPUの記憶領域LMMFに保持される。
図7のローカルメモリ管理情報は、タスク番号TIDと、ローカルメモリのエリア番号AIDと、ローカルメモリのデータ退避先メモリアドレスBUFADRと、ローカルメモリのステータスLMSTと、ローカルメモリのデータ情報LMINFOを含んで構成される。一つのタスクは利用するローカルメモリLMAのエリア分だけ、本ローカルメモリ管理情報を持つことができる。図7には一つのタスクの一つのローカルメモリエリアに対応する一つのローカルメモリ管理情報が例示される。
タスク番号TIDは、どのタスクのローカルメモリ管理情報かを識別するための値を示す。
ローカルメモリのエリア番号AIDは、利用するローカルメモリLMA内のエリアを識別するための値を示す。本実施例の動的再構成プロセッサDRPでは、ローカルメモリLMAを同じサイズに複数分割して各々にエリア番号AIDを割り当てる。分割するサイズは、特に限定しないが、小さ過ぎると管理オーバーヘッドが増え、大き過ぎると利用効率が悪くなるため、ローカルメモリLMAのサイズに合わせて決める必要がある。例えば、ローカルメモリLMAが40キロバイト(k Byte)のメモリで構成される場合には、1エリアを2キロバイトとし、20個のエリアで扱う、というように分割する。
ローカルメモリLMAのデータ退避先メモリアドレスBUFADRは、タスク切り替え発生時にローカルメモリLMA上のデータをコピーして保存しておくための退避先メモリアドレスである。図1に示す構成では退避先として外部メモリEXMEMを利用する。チップ内に内蔵メモリを持つ構成の場合はそれらを利用することでデータの退避にかかる時間を小さくすることが可能である。また、タスクの開始前にはデータ退避先メモリアドレスBUFADRが示すアドレスに処理に必要となるデータを格納しておき、タスク開始時にロードすることもできる。
ローカルメモリのステータスLMSTは、タスク番号TIDで示されるタスクの、エリア番号AIDで示されるエリアのデータがローカルメモリLMA上にあるか、データ退避先メモリアドレスBUFADRで示されるメモリ上にあるかを示す。実行されるタスクが利用しないローカルメモリLMAのエリアのデータに対しては、データの退避を行わないことでデータの退避にかかる時間を削減することができる。したがって、実行しているタスク以外のデータがローカルメモリLMAの一部のエリアに存在していることがありえる。本値は、ローカルメモリLMAのエリア番号AIDで示されたエリアの値がデータ退避先メモリアドレスBUFADRに退避されたことを示す値と、ローカルメモリLMA上にデータが存在することを示す値の、少なくとも二通りの値を設定することができる。
ローカルメモリLMAのデータ情報LMINFOは、タスク番号TIDで示されたタスクのエリア番号AIDで示されたエリアのデータがどのようなものかを示す値である。ローカルメモリデータ情報LMINFOがとる値は、例えば、定数値(タスク実行により変化しない値)を示す値と、処理の途中結果を示す値と、入力バッファとして利用することを示す値と、出力バッファとして利用することを示す値を設定することができる。これにより、タスク終了後にタスクの切り替えが発生した場合には、ローカルメモリデータ情報LMINFOが出力バッファを示す値のエリアのみを退避すればよい。タスク開始時には、定数、途中結果、入力の値が設定されているエリアのデータをロードして処理を進める。また、処理を途中で中断する場合は定数以外の用途のエリアを退避、復帰する。このようにすることでタスクの切り替え時におけるデータのロードとストアの処理を少なくすることができる。
図8にはサブ・プロセッサSPUが動的再構成プロセッサDRP1,DRP2にタスクを割り当てるタスク切り替え判定のフローチャートが例示される。
プロセッサPE1,PE2からの要求に応答してサブ・プロセッサSPUに実行待ちタスクが発生することにより本フローチャートによる処理が開始される(S1)。先ず、タスクを実行すべき対象となる動的再構成プロセッサDRP1,DRP2が利用されているかどうかが確認され(S2)、利用されていないならば次のステップS3に進む。利用されている場合には、対象とする動的再構成プロセッサDRP1又はDRP2の利用が終了するまでステップS2の処理を繰り返す。タスクが利用対象とする動的再構成プロセッサDRP1,DRP2は図6のタスク管理情報のTGTDRPを参照することによって解る。
ステップS3では、実行待ちの状態となっているタスクの数を確認する。実行待ちのタスクが一つであれば次のステップS4に進む。実行待ちのタスクが複数であればステップS5に進む。ステップS4では、当該実行待ちタスクを、実行対象とされる動的再構成プロセッサにおける次の実行タスクとして選択する。
ステップS5では、実行待ちタスクの図6に示したタスク管理情報のタスク実行優先度TSKPRIを参照し、最も優先度の高いタスクを選出し、その数を数える。対象タスクが一つの場合はステップS6に進み、複数ある場合はステップS7に進む。ステップS6では実行待ちタスクの中から最も優先度の高いタスクを、実行対象とされる動的再構成プロセッサにおける次の実行タスクとして選択する。
ステップS7では、ステップS5で選出した最も優先度の高い複数のタスクに対して、前に実行したタスクからの切り替えコストを計算する。前記コストとはタスク切り替えに伴う時間であるが、この時間を正確に予測することは実質的に不可能であるため、ここでは、タスク切り替えに伴うデータのコピー量から間接的に評価を行うものとする。そして、タスク切換えコストの計算結果に基づいて最低コストのタスクを、実行対象とされる動的再構成プロセッサにおける次の実行タスクとして選択する。ただし、切り替えコストが同じタスクが存在する場合には、例えば、所謂FIFO(First-In First-Out)方式により、最も早く実行待ち状態となったタスクを選択する。
前記タスク切り替えに伴うコストの計算方法として、以下に二つの方式について述べる。ここで例示するコスト計算方式は、動的再構成プロセッサの命令メモリにあたるコンフィギュレーション・バッファCFGBUFへの転送と、図7のローカルメモリ管理情報より判定されるローカルメモリLMAの退避と復帰を考慮して計算を行う方法である。
第1のコスト計算方式は、タスクの切り替えに伴うデータのコピー容量を直接計算する方式であり、下記の式
“素コスト”=(“入れ替えSCFG容量”+“入れ替え対象LMAの総容量”)
“真コスト”=“素コスト”דコスト軽減係数”“タスク実行待ち回数”
により計算される。タスク切り替え対象の判定は(真コスト)を基に行われる。
“素コスト”は、ベースとなるタスク切り替えにおけるコストであるが、“入れ替えSCFG容量”と“入れ替え対象LMAエリアの総容量”の和によって計算される。
“入れ替えSCFG容量”は入れ替え対象となるSCFGの容量である。例えば、図5のTSK1からTSK2への切り替えの場合は、同じSCFG1を利用しているため、この値は0になる。また、TSK1からTSK3への切り替えの場合はSCFG2の容量となる。タスクが利用するSCFGについては、図6のタスク管理情報のCFGIDを参照する。具体的な容量値として、例えば、利用するセクション・コンフィギュレーションの容量値を用いてコスト計算に用いればよい。
“入れ替え対象LMAエリアの総容量”は入れ替え対象となるLMAエリアの容量である。本値は真に入れ替えが必要なエリアのみから計算する。どのタスクがどのエリアを利用するかについては、図7に示されるローカルメモリ管理情報から判定する。例えば、TSK1からTSK2へのタスク切り替えで、LMAのエリアがTSK1とTSK2で重複しない場合は、TSK1のデータ退避は行われず、TSK2の利用するLMAエリアの内、LMA上にないもののみを復帰(ロード)することとし、本値を計算する。また、図7のローカルメモリLMAのデータ情報LMINFOでも説明したように、データの退避や復帰が必要のないエリアについては、本値に含まない。例えば、1エリアの容量と退避,復帰するエリアのエリア数から本値を計算する。
“真コスト”はタスク切り替え対象の判定を行うための値であり、先に述べた“素コスト”に“タスク実行待ち回数”の要素を加味して計算され、“コスト軽減係数”を“タスク実行待ち回数”乗し、これを“素コスト”に掛けて計算される。これは、“素コスト”のみで判定を行うと、同じタスクのみが実行される場合があるからである。この式によれば、“コスト軽減係数”を0にすると、“タスク実行待ち回数”が0の場合は“真コスト”は1となり、“タスク実行待ち回数”が1以上では常に0となる。これは、一度でもタスク切り替え判定で選択されなかったタスクを優先的に実行するための値である。“コスト軽減係数”を1にすると、“真コスト”は常に“素コスト”となり、実行待ち回数は考慮されない。“コスト軽減係数”を0より大きく、1より小さく(0<“コスト軽減係数”<1)すると、実行待ち回数に応じて“真コスト”が小さくなり、待ち回数が多くなれば実行されやすくなる。
このようにコストを計算することで、タスク切り替えに伴う時間を十分考慮すると共に、目的に応じてタスクの選択される頻度を調整することができる。
第2のコスト計算方式は、図9に示す表にしたがってコストを判定する。この方式では、詳細なコスト切り替えに伴うデータの転送量を計算しないため、第1のコスト計算方式に比べて、動作が予測しやすくコスト計算が簡単であるが、必ずしもタスク切り替えに伴うデータ転送量が最小になるとは限らないという点に注意が必要である。図9を用いて第2のコスト計算方式を説明する。
図9には、タスク切り替え判定のための第2のコスト計算方法で用いるコスト階層を示す評価テーブルが例示される。図9では縦軸にはタスク切り替えに際して入れ替え対象とするタスクTSK、ローカルメモリLMA、セクション・コンフィギュレーションSCFGをコスト判定の対象として示し、横軸にコスト判定レイヤーL1、L2、L3を示している。コスト判定レイヤーL1における入れ替え対象はタスクTSKである。コスト判定レイヤーL2における入れ替え対象はタスクTSKおよびローカルメモリLMAである。この入れ替えは、実行中にタスクを中断し、別のタスクを実行する場合に、前後のタスクで使用するローカルメモリLMAの領域が重複している場合や、新たに実行するタスクが利用するローカルメモリLMAの領域がロードされていな場合に生ずる。ローカルメモリの入れ替えは、演算途中のデータを退避したり、演算結果を退避して保存したり、次に実行するタスクが利用するデータをセットするのに必要になる。タスクを中断して違うタスクを実行する場合のみでなく、前タスク終了後、新しくタスクを実行する場合の前タスクの結果の退避や、新タスクの入力データセットも対象になる。入れ替え(ストア及びロード)のみでなく、単なるロードの場合もある。コスト判定レイヤーL3における入れ替え対象はタスクTSK、ローカルメモリLMA及びセクション・コンフィギュレーションSCFGである。レイヤーL1が最もタスク切り替えコストが小さく、レイヤーL3が最もタスク切り替えコストが大きいと判定される。L1は、タスクの切り替え時にLMAのエリアの入れ替えや、SCFGの入れ替えが発生しない場合である。L2は、タスクの切り替え時にLMAのエリアの入れ替えが発生し、SCFGの入れ替えが発生しない場合である。L3は、タスクの切り替え時にLMAのエリアの入れ替えが発生し、SCFGの入れ替えが発生する場合である。
図9の例では同図に示すレイヤー構成としたが、コンフィギュレーション・バッファCFGBUFの容量や、ローカルメモリLMAの容量によりこの評価テーブルを変更することでさまざまな動的再構成プロセッサに対応することができる。
以上で説明したように本発明の構成を採用したマイクロコンピュータMCUを利用することにより、プロセッサPE1,PE2、サブ・プロセッサSPU、動的再構成プロセッサDRP1,DRP2を搭載した1チップにおいて処理全体におけるタスク切り替えによるコスト、すなわちオーバーヘッドを少なくすることができ、全体の処理性能を向上させることができる。
図10には、マイクロコンピュータMCUの別の例が示される。同図に示されるマイクロコンピュータMCUはプロセッサPE1,PE2を含む回路ブロックBLK1と、動的再構成プロセッサDRP1,DRP2及びサブ・プロセッサSPUを含む回路ブロックBLK2とをブリッジ回路BRGを介して接続した点が図1とは相違される。バス・ステート・コントローラはBSC1、BSC2とを別々に有し、夫々に異なる外部メモリEXMEM1,EXMEM2が接続される。図10の構成によれば、各回路ブロックBLK1,BLK2内ではバスIBUS1,IBUS2を流れるデータがお互いに干渉しないために、よりスムーズにマイクロコンピュータ内の処理が実行できる利点がある。また、タスク切り替えに際して前記コストを判定するとき、ブリッジ回路BRGをまたぐメモリアクセスのコストを大きくすることにより、より正確なコストの計算を行うことも可能である。
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば動的再構成プロセッサDRP1,DRP2とプロセッサPE1,PE2の数は2個に限定されず、適宜の単数又は複数個に変更可能である。外部メモリEXMEMをマイクロコンピュータMCUにオンチップしてもよい。
また、第1プロセッサはデータフロー型の動的再構成プロセッサに限定されず、セットされた命令やコマンドに従ったデータ処理を行なうプロセッサであってもよい。この場合に、ローカルメモリは例えばコマンドバッファとデータメモリとされる。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に適用することができる。本発明は、少なくとも、複数のプロセッサを含むことを条件に適用することができる。
本発明にかかる半導体集積回路の一例とされるマイクロコンピュータの構成を例示するブロック図である。 本発明に係るマイクロコンピュータに含まれる動的再構成プロセッサの構成を例示するブロック図である。 動的再構成プロセッサのコンフィギュレーションの階層構成を例示する説明図である。 マイクロコンピュータにおけるソフトウェアの階層構成を例示する説明図である。 動的再構成プロセッサのコンフィギュレーションとタスクの構成を示す概念図である。 動的再構成プロセッサに割り当てるタスクの管理情報を示す説明図である。 動的再構成プロセッサに割り当てるタスクが利用するローカルメモリ管理情報を示す説明図である。 動的再構成プロセッサに割り当てるタスクの切り替え判定処理に関するフローチャートである。 動的再構成プロセッサに割り当てるタスク切り替え判定のための第2のコスト計算方法で用いるコスト階層を示す評価テーブルの説明図である。 本発明に係るマイクロコンピュータの別の例を示すブロック図である。
符号の説明
MCU マイクロコンピュータ、
EXMEM 外部メモリ
PE1,PE2 プロセッサ
DRP1,DRP2 動的再構成プロセッサ
SPU サブ・プロセッサ
IBUS プロセッサ間バス
RCA リコンフィギュラブル・セル・アレイ
LMA ローカルメモリ
CFGM コンフィギュレーション・マネージャ
CFGBUF コンフィギュレーション・バッファ
BUSIF バス・インターフェース
SCFG セクション・コンフィギュレーション
SPU−API アプリケーション・プログラム・インタフェース
DRP−API アプリケーション・プログラム・インタフェース
RPC リモート・プロシージャ・コール
DRPCC DRP制御カーネル
TID タスク番号
CFGID セクション・コンフィギュレーション番号
TGTDRP 動的再構成プロセッサ番号
TSKPRI タスク実行優先度
STPT タスク実行開始ポイント
ENDPT タスク実行終了ポイント
SPDPT タスク実行中断ポイント
AID ローカルメモリのエリア番号
BUFADR データ退避先メモリアドレス
LMST ローカルメモリのステータス
LMINFO ローカルメモリのデータ情報

Claims (16)

  1. 論理機能が可変に制御される第1プロセッサと、前記第1プロセッサに対するタスクの割り当てを制御する第2プロセッサとを有するデータ処理システムであって、
    前記第1プロセッサは、前記第2プロセッサから受け取った論理構成情報を保持するバッファメモリと、バッファメモリが保持する論理構成情報を受け取って論理機能が決定される演算回路と、演算回路に接続されたデータメモリと、第2プロセッサからの指示に応答してバッファメモリから演算回路への論理構成情報の内部転送と演算回路とデータメモリ間のデータの内部転送を制御する制御回路とを有し、
    前記第2プロセッサは、第1プロセッサが処理するタスクを切り替えるとき、切り替え候補となる同一優先順位のタスクに対して、論理機能を切り替えるための論理構成情報の転送時間とデータの転送時間との多寡を考慮したコスト計算を行い、その計算結果に基づいて、次に実行するタスクを決定する、データ処理システム。
  2. 前記コスト計算は、前記バッファメモリの入れ替え容量と前記データメモリの入れ替え容量との合計によって前記転送時間の多寡を考慮するものである、請求項1記載のデータ処理システム。
  3. 前記コスト計算は、前記バッファメモリと前記データメモリにおいて入れ替え対象とする情報の種類によって前記転送時間の多寡を考慮するものである、請求項1記載のデータ処理システム。
  4. 前記第2プロセッサは前記第1プロセッサに処理させるタスクを管理するタスク管理情報の記憶領域を有し、
    前記タスク管理情報は、タスク毎に、タスク識別情報、当該タスクの処理に割り当てられる第1プロセッサ識別情報、及びそのタスクのタスク実行優先度を含む、請求項1記載のデータ処理システム。
  5. 前記第2プロセッサは前記データメモリを複数のエリアに分割して管理するためのエリア管理情報の記憶領域を有し、
    前記エリア管理情報は、前記タスク管理情報で管理するタスクが利用するエリア毎に、タスク識別情報、当該タスクが利用する一つのエリアの識別情報、データ退避先アドレス情報、前記識別情報で示されるエリアに割り当てられるデータの所在を示す情報、前記識別情報で示されるエリアの利用目的を示す情報を含む、請求項4記載のデータ処理システム。
  6. 前記第2プロセッサは、タスクの切り替えを行うとき、次に実行するタスクのエリア管理情報に含まれる前記所在を示す情報がデータメモリを意味しているとき、当該エリア管理情報で特定されるエリアを前記コスト計算の対象から除外する、請求項5記載のデータ処理システム。
  7. 前記所在を示す情報はデータメモリ又は前記第1プロセッサの外部の退避先を意味し、前記所在を示す情報が退避先を示す場合には当該所在を示す情報を含むエリア管理情報で特定されるエリアをコスト計算の対象とする、請求項6記載のデータ処理システム。
  8. 前記第2プロセッサは、タスクの切り替えを行うとき、そのタスクのエリア管理情報に含まれる前記利用目的を示す情報がデータの入れ替えを必要とするものであることを示すとき、当該エリア管理情報で特定されるエリアを前記コスト計算の対象にする、請求項5記載のデータ処理システム。
  9. 前記利用目的を示す情報は出力バッファ、入力バッファ、定数データ記憶領域、又はタスクによる処理の途中結果を記憶する領域を示し、
    前記第2プロセッサは、タスクを終了したときのタスクの切り替えに際しては前記利用目的を示す情報が前記出力バッファを示すとき当該タスクのエリア管理情報で特定されるエリアの情報を退避し、タスクの処理を中断したときのタスクの切り替えに際しては前記利用目的を示す情報が前記途中結果を記憶する領域を示すとき当該タスクのエリア管理情報で特定されるエリアの情報を退避する、請求項8記載のデータ処理システム。
  10. 前記第1プロセッサを複数個有し、
    前記第2プロセッサにデータ処理要求を発行する複数個の第3プロセッサと、外部メモリとを更に備え、
    前記第2プロセッサは前記第3プロセッサから発行されるデータ処理要求に応答して前記第1プロセッサに対するタスクの割り当てを制御すると共に、前記バッファメモリ及びデータメモリと前記外部メモリとの間のデータ転送のためのアクセス制御を行う、請求項1記載のデータ処理システム。
  11. 論理機能が可変に制御される複数個の第1プロセッサと、前記複数個の第1プロセッサを制御する第2プロセッサと、前記第2プロセッサにデータ処理要求を発行する複数個の第3プロセッサと、を1個の半導体基板に有する半導体集積回路であって、
    前記第1プロセッサは、前記第2プロセッサから受け取った論理構成情報を保持するバッファメモリと、バッファメモリが保持する論理構成情報を受け取って論理機能が決定される演算回路と、演算回路に接続されたデータメモリと、第2プロセッサからの指示に応答してバッファメモリから演算回路への論理構成情報の内部転送と演算回路とデータメモリ間のデータの内部転送を制御する制御回路とを有し、
    前記第2プロセッサは、前記第3プロセッサから発行されるデータ処理要求に応答して前記第1プロセッサに対するタスクの割り当てを制御すると共に、第1プロセッサが処理するタスクを切り替えるとき、切り替え候補となる同一優先順位のタスクに対して、論理機能を切り替えるための論理構成情報の転送時間とデータの転送時間との多寡を考慮したコスト計算を行い、その計算結果に基づいて、次に実行するタスクを決定する、半導体集積回路。
  12. 前記第1プロセッサ、前記第2プロセッサ及び前記第3プロセッサは内部バスに共通接続された、請求項11記載の半導体集積回路。
  13. 前記第1プロセッサ及び前記第2プロセッサは第1内部バスに共通接続され、前記第3プロセッサは第2内部バスに共通接続され、第1内部バスと第2内部バスを接続するブリッジ回路を有する、請求項11記載の半導体集積回路。
  14. 第1プロセッサと、前記第1プロセッサに対するタスクの割り当てを制御する第2プロセッサとを有するデータ処理システムであって、
    前記第1プロセッサは、演算回路と、前記第2プロセッサから受け取った情報を保持すると共に演算回路による演算結果を保持するローカルメモリと、第2プロセッサからの指示に応答してローカルメモリと演算回路との間で情報の内部転送を制御する制御回路とを有し、
    前記第2プロセッサは、第1プロセッサが処理するタスクを切り替えるとき、切り替え候補となる同一優先順位のタスクに対して、必要な前記情報の転送時間の多寡を考慮したコスト計算を行い、その計算結果に基づいて次に実行するタスクを決定する、データ処理システム。
  15. 前記コスト計算は、前記バッファメモリの入れ替え容量によって前記転送時間の多寡を考慮するものである、請求項14記載のデータ処理システム。
  16. 前記コスト計算は、前記バッファメモリに対して入れ替え対象とする情報の種類によって前記転送時間の多寡を考慮するものである、請求項14記載のデータ処理システム。
JP2006338887A 2006-12-15 2006-12-15 データ処理システム及び半導体集積回路 Withdrawn JP2008152470A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006338887A JP2008152470A (ja) 2006-12-15 2006-12-15 データ処理システム及び半導体集積回路
EP07024127A EP1939736A2 (en) 2006-12-15 2007-12-12 Data processing system and semiconductor integrated circuit
US11/956,916 US20080168465A1 (en) 2006-12-15 2007-12-14 Data processing system and semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006338887A JP2008152470A (ja) 2006-12-15 2006-12-15 データ処理システム及び半導体集積回路

Publications (1)

Publication Number Publication Date
JP2008152470A true JP2008152470A (ja) 2008-07-03

Family

ID=39387394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006338887A Withdrawn JP2008152470A (ja) 2006-12-15 2006-12-15 データ処理システム及び半導体集積回路

Country Status (3)

Country Link
US (1) US20080168465A1 (ja)
EP (1) EP1939736A2 (ja)
JP (1) JP2008152470A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175535A (ja) * 2010-02-25 2011-09-08 Nec Corp メモリデバイス管理方法及び装置
US8555000B2 (en) 2009-10-16 2013-10-08 Samsung Electronics Co., Ltd. Data storage device and data storing method thereof
US9021217B2 (en) 2010-11-16 2015-04-28 Fujitsu Limited Communication apparatus, load distribution method, and recording medium
WO2017131187A1 (ja) * 2016-01-29 2017-08-03 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム
JP2018018198A (ja) * 2016-07-26 2018-02-01 富士通株式会社 プログラマブルロジックデバイスの制御プログラム、制御方法及び情報処理装置
JP2021157482A (ja) * 2020-03-26 2021-10-07 Kddi株式会社 スケジューリング方法、およびスケジューリング装置
JP2023501944A (ja) * 2019-10-29 2023-01-20 シリコン モビリティ エスアエス セキュアハードウェアプログラマブルアーキテクチャ

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
US9043806B2 (en) * 2010-04-30 2015-05-26 Nec Corporation Information processing device and task switching method
US9380597B2 (en) 2011-08-25 2016-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for wireless communication baseband processing
US10824952B2 (en) 2014-09-22 2020-11-03 International Business Machines Corporation Reconfigurable array processor for pattern matching
US9891912B2 (en) * 2014-10-31 2018-02-13 International Business Machines Corporation Comparison-based sort in a reconfigurable array processor having multiple processing elements for sorting array elements
KR102247742B1 (ko) * 2015-04-21 2021-05-04 삼성전자주식회사 애플리케이션 프로세서와 시스템 온 칩

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157989A (en) * 1998-06-03 2000-12-05 Motorola, Inc. Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system
US7346783B1 (en) * 2001-10-19 2008-03-18 At&T Corp. Network security device and method
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
JP4432388B2 (ja) * 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
JP2005100262A (ja) * 2003-09-26 2005-04-14 Seiko Epson Corp メモリ管理装置およびメモリ管理プログラム、並びにメモリ管理方法
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
JP2007026095A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 並列演算装置
JP2007034359A (ja) * 2005-07-22 2007-02-08 Hitachi Ltd 分散制御装置
US7676604B2 (en) * 2005-11-22 2010-03-09 Intel Corporation Task context direct indexing in a protocol engine

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555000B2 (en) 2009-10-16 2013-10-08 Samsung Electronics Co., Ltd. Data storage device and data storing method thereof
JP2011175535A (ja) * 2010-02-25 2011-09-08 Nec Corp メモリデバイス管理方法及び装置
US9021217B2 (en) 2010-11-16 2015-04-28 Fujitsu Limited Communication apparatus, load distribution method, and recording medium
WO2017131187A1 (ja) * 2016-01-29 2017-08-03 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム
JPWO2017131187A1 (ja) * 2016-01-29 2018-11-15 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム
US10831547B2 (en) 2016-01-29 2020-11-10 Nec Corporation Accelerator control apparatus for analyzing big data, accelerator control method, and program
JP2018018198A (ja) * 2016-07-26 2018-02-01 富士通株式会社 プログラマブルロジックデバイスの制御プログラム、制御方法及び情報処理装置
JP2023501944A (ja) * 2019-10-29 2023-01-20 シリコン モビリティ エスアエス セキュアハードウェアプログラマブルアーキテクチャ
JP7661659B2 (ja) 2019-10-29 2025-04-15 シリコン モビリティ エスアエス セキュアハードウェアプログラマブルアーキテクチャ
JP2021157482A (ja) * 2020-03-26 2021-10-07 Kddi株式会社 スケジューリング方法、およびスケジューリング装置
JP7273383B2 (ja) 2020-03-26 2023-05-15 Kddi株式会社 スケジューリング方法、およびスケジューリング装置

Also Published As

Publication number Publication date
US20080168465A1 (en) 2008-07-10
EP1939736A2 (en) 2008-07-02

Similar Documents

Publication Publication Date Title
JP4255457B2 (ja) エラー処理方法
CN110619595B (zh) 一种基于多fpga加速器互联的图计算优化方法
US20080168465A1 (en) Data processing system and semiconductor integrated circuit
US8782657B2 (en) Dynamic creation and destruction of IO resources based on actual load and resource availability
US20090165014A1 (en) Method and apparatus for migrating task in multicore platform
EP2472398B1 (en) Memory-aware scheduling for NUMA architectures
US8112526B2 (en) Process migration based on service availability in a multi-node environment
CN105487930A (zh) 一种基于Hadoop的任务优化调度方法
JP2011507085A (ja) 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム
JP5366552B2 (ja) 集中特化したマルチタスク及びマルチフロー処理をリアルタイム実行する手法及びシステム
JP6296678B2 (ja) ソフトリアルタイムオペレーティングシステムの実時間性を確保する方法及び装置
US10768684B2 (en) Reducing power by vacating subsets of CPUs and memory
CN101006427A (zh) 处理管理装置、计算机系统、分布式处理方法和计算机程序
CN120560776A (zh) 容器重调度方法、系统、设备、存储介质及程序产品
CN119271421B (zh) 任务迁移方法、设备及存储介质
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2009070265A (ja) 情報処理装置
CN114880085A (zh) 一种可区域扩展重映射的动态任务调度方法
JP2008250419A (ja) 競合調停装置、マスタスレーブシステム及び競合調停方法
CN119690614B (zh) 一种基于嵌入式异构计算场景下的资源管理方法和系统
JP2019179418A (ja) スケジューリング方法、スケジューリング装置
Xiong et al. DICFaaS: Parallel and Scalable Data Integrity Computation for Serverless Systems
CN119440783A (zh) 一种芯片系统的调度方法和调度装置
WO2019188180A1 (ja) スケジューリング方法、スケジューリング装置
CN120950196A (zh) 一种数据流架构的半集中式动态任务调度装置及方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100302