JP5096923B2 - 動的再構成論理回路を有するマルチスレッドプロセッサ - Google Patents
動的再構成論理回路を有するマルチスレッドプロセッサ Download PDFInfo
- Publication number
- JP5096923B2 JP5096923B2 JP2007546441A JP2007546441A JP5096923B2 JP 5096923 B2 JP5096923 B2 JP 5096923B2 JP 2007546441 A JP2007546441 A JP 2007546441A JP 2007546441 A JP2007546441 A JP 2007546441A JP 5096923 B2 JP5096923 B2 JP 5096923B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- cell
- calculation
- configuration
- processor
- 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.)
- Active
Links
- 238000004364 calculation method Methods 0.000 claims description 397
- 238000000034 method Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims 2
- 210000004027 cell Anatomy 0.000 description 355
- 238000010586 diagram Methods 0.000 description 30
- 230000008859 change Effects 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 101100332286 Dictyostelium discoideum dst1 gene Proteins 0.000 description 1
- 101100366888 Dictyostelium discoideum dstA gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000113 differential scanning calorimetry Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Description
一方、プログラムにより論理構成を変更できるデバイス、例えば、FPGA(Field Programmable Gate Array)やPLD(ProgrammableLogic Device)が開発され、更に、その構成の変更を高速に行うことが出来る動的再構成論理回路が提案されている。
このようなソフトウェア処理の柔軟性とハードウェア処理の高速性の両立を目指して開発された動的再構成論理回路を利用して、マルチスレッド処理を行う技術が開発されている(特許文献1参照)。
マルチスレッドプロセッサ10と動的再構成演算回路20とは協調してマルチスレッド処理を実現する。
スレッド切り替えを指示するマルチスレッドプロセッサ10からの割り込みにより、動的再構成演算回路20の構成、具体的には、アレイ状に配した演算セル21の構成と演算セル間の接続構成とを、次に実行するスレッド用に再構成を行い、次のスレッドを実行する。
この技術により、スレッド切り替え時に、各演算セルの演算内容を破棄したり、全ての演算セルの演算が終了するまでマルチスレッドプロセッサ10が待つことをせずとも、全演算セルを次のスレッド用に再構成をすることができるので、マルチスレッドプロセッサ10が次のスレッドの実行を開始するまでの時間を短くでき、全体として演算性能の低下を抑制できるという利点がある。
また、動的再構成演算回路の面積を大きくしない為に、動的再構成演算回路内に格納レジスタを持たないで外部のメモリ等に退避することとすると、全演算セルのデータの退避を同時に行う必要があることから入出力ポートが大量に必要となり、動的再構成演算回路内のレジスタによる面積は増えないが、入出力ポート分の面積が増えることとなる。
また、本発明に係るプロセッサは、複数のスレッドを巡回的に、各スレッドに割当てられた時間ずつ実行するプロセッサであって、複数の演算セルを含み、当該演算セルの構成と各演算セル間の接続とを再構成可能な演算回路と、演算セルの構成及び当該演算セルと他の演算セルとの接続を、セル構成情報に基づいて、再構成する再構成手段と、各々異なる特定数の演算セルを順番に繰り返し実行する複数のスレッド各々に対応する、各演算セルのセル構成情報を記憶する構成情報記憶手段と、順次、前記再構成手段に、現スレッドに割当てられた時間での最後の演算を終了した演算セルを、前記構成情報記憶手段に記憶している次スレッドに対応する当該演算セルのセル構成情報に基づき再構成させ、現スレッドで実行する最後の演算セルの演算終了後、次スレッドの構成の演算セルを実行させる制御手段とを備えることを特徴とする。
<概要>
本発明に係るプロセッサは、動的再構成演算回路を備えるマルチスレッド処理に対応したプロセッサであり、スレッドを実行する毎に、動的再構成演算回路を当該スレッド用の構成に再構成するものである。この動的再構成演算回路は、複数の演算セル等を備えており、この演算セル等の構成を再構成することで動的再構成演算回路を再構成する。
従って、スレッド切り替え時には、切り替え前のスレッドである現スレッドの処理を行っている演算セルと、切り替え後のスレッドである次スレッドの処理を行っている演算セルとが混在し、現スレッドと次スレッドが同時に実行されることとなる。
以下、本発明の実施形態のプロセッサについて説明する。
本実施形態のプロセッサは、マルチスレッドプロセッサであり、マルチスレッドを実現するための方法として、各タスクを一定時間ずつ順番に実行していくラウンドロビン方式を取るものとする。
スレッドは、動的再構成演算回路にデータを入力し、特定数の演算セルを決められた順に実行しその結果を出力する、という一連の処理(以下、「ループ」ともいうものとする。)を繰り返し行う。この一連の処理で必要な演算セルの個数を演算段数というものとする。
本実施形態のスレッドは、それぞれ演算段数が異なるものとする。従って、動的再構成演算回路を構成する演算セルの個数に応じて、各スレッドで並列に実行できるループの最大数が異なる。尚、実際に実行するループ数は、スレッドの処理内容に依存する。
以下、図1を用いて、本発明にかかるプロセッサ100の構成を説明する。
図1は、プロセッサ100の構成例を表す図である。
プロセッサ100は、マルチスレッドプロセッサ1000、動的再構成演算回路2000、構成情報記憶部3000、構成切替部4000及び演算結果記憶部5000で構成される。
マルチスレッドプロセッサ1000は、複数の異なる処理を時分割で実行することができる、いわゆるマルチスレッドプロセッサである。動的再構成演算回路2000と協調して演算を行い、スレッドの処理を実行していく。
また、本マルチスレッドプロセッサ1000は、次に実行するスレッドを決定し、実行する機能を有する。具体的には、スレッドに割当てた時間の終了を知らせるタイマ割り込みによって、スレッドの切替時を検出し、次スレッド用に動的再構成演算回路2000の再構成を行うよう構成切替部4000に指示を出す。この際、現スレッドと次スレッドを通知する。
次に、動的再構成演算回路2000は、アレイ状に配置された複数の演算セル2100を含み、各演算セルの構成及び各演算セル間の接続構成を変更することが可能な演算回路である。すなわち、各演算セルの構成を所定の演算を行うように再構成し、接続構成を各演算セルが所定のデータを入力するように再構成することで、動的再構成演算回路2000を所望の処理を行う回路に再構成する。詳細は、図2〜図5を用いて後で説明する。
本実施形態における構成情報は、スレッド毎に記憶され、各演算セル毎に記憶されているものとする。詳細は、図10を用いて後で説明する。
演算結果記憶部5000は、動的再構成演算回路2000が出力する演算結果を記憶する機能を有する。
本実施形態では、ループの都度、書き込まれ、マルチスレッドプロセッサ1000によって読み出される。また、該当スレッドに時間が再び割当てられてスレッド処理を続行するときに、読み出されて利用される。
次に、図2〜図5を用いて、動的再構成演算回路2000の詳細について説明する。
<動的再構成演算回路2000の詳細>
まず、図2は、動的再構成演算回路2000の構成を示す概略図である。
以下、演算セル2100aは「演算セルa」、演算セル2100bは「演算セルb」等というものとし、図4等でも同様とする。また、演算セル2100という場合は、1つの演算セルを指すものとする。
また、マルチスレッドプロセッサ1000から動的再構成接続部2200を介して、演算セル2100等に必要な演算データが渡される。
以下、動的再構成接続部2200の構成を図3を用いて説明する。
図3は、1つの演算セルと、関連する動的再構成接続部2200とを示す図である。
本図では、1対の演算セル2100と演算ソース選択器2210、出力データ選択器2250を示している。
動的再構成接続部2200は、演算セル2100と対となる演算ソース選択器2210、すなわち、演算セル2100と同数の演算ソース選択器2210と、1つの出力データ選択器2250と、マルチスレッドプロセッサ1000からのデータの配線及び演算セル間の配線とで構成される。
演算ソース選択器2210は、他の演算セル2100の演算結果である演算データを入力し、そのうちから1つの演算データを選択し、対となる演算セル2100に出力する。尚、1段目の演算セルa〜演算セルdは、他の演算セル2100からの演算データとマルチスレッドプロセッサ1000からの演算データのうち1つの演算データを選択する。
また、演算セル2100は、演算結果の演算データを他の演算セル2100の演算ソース選択器2210に出力する。尚、最下段の演算セルm〜演算セルpは、他の演算セル2100と出力データ選択器2250に演算データを出力する。
この出力データ選択器2250の構成の切り替えは、演算セル2100と同じく、構成切替手段4000から構成切り替えの信号線及び構成情報記憶部3000からの構成情報転送用の信号線が接続されており、構成切り替えの信号を受けると、そのときの構成情報記憶部3000からの構成情報に切り替える。
図4は、演算セルと演算データ選択器と出力データ選択器とに、構成情報と制御信号とを供給する信号線を示す図であり、図5は、演算データを供給する信号線を示す図である。
図4において、構成切替部4000からは制御信号が、演算セルa〜演算セルp、演算ソース選択器a〜演算ソース選択器p及び出力データ選択器2250にそれぞれ出力され、構成情報記憶部3000からは構成情報が出力される。
各演算セル2100、各演算ソース選択器2210、出力データ選択器2250は、構成切替部4000から送られる制御信号に応じて、構成情報を読み込み、再構成を行う。
演算ソース選択器2210、出力データ選択器2250も同様である。
演算ソース選択器2210は、入力される複数の演算データの1つを選択して、対である演算セルに出力する。例えば、演算ソース選択器fは、演算セルbと演算セルeと演算セルgとから送られる演算データのうちの1つを選択して、演算セルfに出力する。演算セルfは、演算ソース選択器fから出力された演算データを基に演算を行う。
尚、本実施形態では、演算データを下段と左右の演算セルの演算ソース選択器に送ることとしているが、これに限られず、他の演算セルの演算ソース選択器に送信する構成としてももちろんよい。
以下、プロセッサ100が、スレッドの切り替えを行う際に使用するデータについて、図9と図10とを用いて説明する。
データを説明する前に、本実施形態での説明で使用するスレッドについて図6〜図8を用いて説明する。
本実施形態では、スレッドA、スレッドB、スレッドCの3つのスレッドを巡回的に実行するものとする。
図6〜図8は、各スレッドのデータの流れを示す図である。説明の便宜上、演算ソース選択器2210及び出力データ選択器2250は記載せずに、演算データの流れのみ示すものとする。
すなわち、マルチスレッドプロセッサ1000から演算セルaに演算ソースが渡され、演算セルaの演算結果を演算セルeに送り、演算セルeは演算セルaから受け取った演算データを基に演算を行い演算結果を演算セルiに送る。演算セルiは、演算セルeから受け取った演算データを基に演算を行う。というように順に演算結果を送り演算セルmまで演算を実行する。同様に、マルチスレッドプロセッサ1000から演算セルb、演算セルc、演算セルdに演算データが渡され、それぞれ並行して処理を行う。
この記憶された演算結果は、マルチスレッドプロセッサ1000によって読み出され、マルチスレッドプロセッサ1000内での演算等に使用される。尚、演算セルa等に供給されてもよい。マルチスレッドプロセッサ1000は、演算データを読み出し、演算するというループを繰り返すことでスレッドAを実行する。演算セルに供給するデータは、読み出した演算データそのまま又は何らかの処理が成されたもの、他のデータ等であってもよく、スレッドの処理に依存する。このループは、スレッドB、スレッドCにおいても同様である。
マルチスレッドプロセッサ1000から、演算セルaに演算ソースが渡され、演算セルa→演算セルb→演算セルf→演算セルe→演算セルi→演算セルj→演算セルn→演算セルmの順に演算データを送って処理を行う。同様に、マルチスレッドプロセッサ1000から演算セルcに演算データが渡され、演算セルoまで処理を行う。
図8は、スレッドCのデータの流れを示す図である。スレッドBの演算段数は「16」であり、1つの演算処理を行う。
マルチスレッドプロセッサ1000から、演算セルaに演算ソースが渡され、演算セルa→演算セルb→演算セルc→演算セルd→演算セルh→演算セルg→演算セルf→演算セルe→演算セルi→演算セルj→演算セルk→演算セルl→演算セルp→演算セルo→演算セルn→演算セルmの順に演算データを送って処理を行う。
<スレッド切り替えに使用するデータについて>
以下、これらのスレッドA、スレッドB、スレッドCを巡回的に実行する場合のスレッドの切り替えに際し使用するデータについて、図9と図10とを用いて説明する。
図9(a)は、演算セル段数テーブルの構成及び内容例を示し、図9(b)は、スレッド段数テーブルの構成及び内容例を示す。
まず、図9(a)の演算セル段数テーブル4100について説明する。
演算セル段数テーブル4100は、スレッドID4110と演算セルID4120とで構成され、スレッドごとの各演算セルの段数目4130を示す。
スレッドID4110は、本プロセッサで実行するスレッドの識別子をいい、本実施形態では「スレッドA」、「スレッドB」及び「スレッドC」である。
スレッドごとの各演算セルの段数目4130とは、該当スレッドの1ループの処理において、該当演算セルが何番目に実行されるかを示すものである。ここでの番数は、「0」〜「15」で表すものとし、「0」段数目の演算セルが最初に実行されるものとする。
スレッドID4210は、図9(a)のスレッドID4110と同様である。
また、演算段数4220は、各スレッドの演算段数を示す。例えば、スレッドID4210「スレッドA」は、演算段数4220「4」であり4個の演算セルを順に用いて行い、スレッドID4210「スレッドC」は、演算段数4220「16」であり16個の演算セルを順に用いて行う。この順は、演算セル段数テーブル4100に示されるとおりである(図9(a)参照)。
演算セル構成情報テーブル3100は、スレッドID3110と演算セルID3120とで構成され、スレッドごとの各演算セルの構成情報を特定する構成情報名3130を示している。すなわち、構成情報名3130は、構成情報の識別子である。
また、演算セル構成情報テーブル3100には、更に、スレッド毎の出力データ選択器2250の構成情報を特定する構成情報名3130も記憶されている。
例えば、スレッドID3110「スレッドA」の演算セルID3120「演算セルa」の構成情報名3130は「構成情報A0」であることから、スレッドA実行時の演算セルaと演算ソース選択器aとは、「構成情報A0」で示される構成情報で再構成されたものである。
<動作>
次に、図11〜図27を用いて、本発明に係るプロセッサの動作を説明する。
その後、本発明の、スレッドの演算段数4220(図9(b)参照)が異なるスレッドへの切り替えについて説明する。この切り替えについては、現在実行している現スレッドの演算段数より大きい演算段数のスレッドに切り替える場合と、現スレッドの演算段数より小さい演算段数のスレッドに切り替える場合とに分けて説明する。
<従来と本発明とのスレッド切り替えについて>
図11は、従来のスレッドの切り替えを示す図である。
プロセッサ100がスレッドA、スレッドB、スレッドCを巡回的に実行し、それぞれのスレッド実行時の動的再構成演算回路2000を示している。
動的再構成演算回路2000の各演算セル2100が、どのスレッド用の構成であるかを示している。例えば、動的再構成演算回路2000Aの「演算セルa」の下に記載している「スレッドA」は、スレッドA用の構成であることを示している。
次に、図12は、スレッドに割当てられた時間の最後のサイクルに実行される演算セル2100を示した図である。すなわち、図11における各スレッドの再構成直前の動的再構成演算回路2000の図である。
すなわち、ハッチングが掛けられていない演算セル2100、スレッドAでは12個、スレッドBでは14個、スレッドCでは15個の演算セルは、遊んでいることになる。
図13は、本発明のスレッドの切り替えを示す図である。
スレッドAの実行が終了した演算セルから順にスレッドB用に再構成を行いスレッドBの演算を行う。
同様に、スレッドBからスレッドCに切り替わる際にも、動的再構成演算回路2000BCに示すように、スレッドB用の演算セルとスレッドBCの演算セルとが混在する期間が存在することになる。
具体的には、図11における再構成に必要なスレッド間の時間は不要となり、さらには、現スレッド処理の終わりと次スレッド処理の開始とが重なるため、より全体としてのスレッド実行時間を短くすることが可能となる。
図14〜図16のフローチャートを用いて、本プロセッサの動作を説明する。この説明の際、図17〜図21を参照する。
ここでは、現スレッドをスレッドA、次スレッドをスレッドBとする。すなわち、演算段数「4」のスレッドAから、演算段数「8」のスレッドBに切り替える処理を例に取り説明する。
図19は、これら制御信号と出力データ選択器2250の処理との関係を表すタイムチャートであり、また、図20は、これらの制御信号と演算結果記憶部5000の処理との関係を表すタイムチャートである。
図21は、演算結果記憶部5000内の各スレッドの領域を表す図である。
本実施形態では、スレッドA用の領域を0x00〜0x3F番地、スレッドB用の領域を0x0040〜0x5F番地、スレッドC用の領域を0x60〜0x6F番地とする。
図14は、スレッド切り替え時のマルチスレッドプロセッサ1000と構成切替部4000との処理を示すフローチャートである。
まず、マルチスレッドプロセッサ1000は、動的再構成演算回路C1(図17参照)を動作させながら現スレッドであるスレッドAを実行する(ステップS100)。
演算データを入力した各演算セルは、順に下段の演算セルに演算結果を渡していき、最後に演算結果記憶部5000に演算結果を記憶する。
マルチスレッドプロセッサ1000は、次のループの開始時にこれらの記憶されている演算データを読み出し、所定の処理を施し、演算セルに供給することを繰り返すことでスレッドAを実行する(図6参照)。
スレッドの切り替えを開始すると判断したマルチスレッドプロセッサ1000は、次スレッドを選択し(ステップS130)、構成切替部4000に切り替えの指示を出す(ステップS140)。この指示に際し、マルチスレッドプロセッサ1000は、現スレッドのIDと次スレッドIDとを渡す(ステップS141)。
切り替え指示を受けた構成切替部4000は(ステップS200)、待ちサイクル数を算出する(ステップS210)。スレッドAからスレッドBへの切り替えでは、待ちサイクル数は「0(ゼロ)」となる。待ちサイクル数の算出処理の詳細は、図15を用いて後で説明する。
その後、演算結果記憶部5000の読み込み領域を、次スレッド用に切り替え(ステップS230)、演算セル及び演算ソース選択器の再構成を行う(ステップS240)。
構成切替部4000は、全ての演算セル2100及び演算ソース選択器2210の再構成が終了すると、出力データ選択器2250の再構成を行う(ステップS250、図17:動的再構成演算回路C10)。この出力データ選択器の再構成処理のタイミングについては、図19を用いて後で説明する。
その後、演算結果記憶部5000の書き込み領域を、次スレッド用に切り替える(ステップS260)。
一方、構成切替部4000からの停止信号を受信したマルチスレッドプロセッサ1000は、次スレッドの実行の開始を停止し、停止信号が切れた場合には、1サイクル待って、次スレッドの演算データの供給を開始する(ステップS100)。この1サイクルは、最初の演算セルが再構成されるサイクルである。
<待ちサイクル数の算出処理>
図15は、待ちサイクル数の算出処理を示すフローチャートである。
現スレッドの演算段数と次スレッドの演算段数が異なる場合には、現スレッドの演算が終了した演算セルを、即、次スレッド用に書き換えたとしても、その演算結果を渡す演算セルが現スレッドの演算を行っていて、次スレッド用への書き換えが出来ない場合等があるからである。
構成切替部4000は、マルチスレッドプロセッサ1000から切り替えの指示を受けた際に(図14:ステップS200参照)受け取った現スレッドIDと次スレッドIDとの演算段数から、待ちスレッド数を算出する。
例えば、現スレッドのスレッドID4210が「スレッドA」の場合、演算段数4220は「4」である。
まず、現スレッドの演算段数を「M」、次スレッドの演算段数を「N」とすると、MからNを減算し「D」を求める(ステップS300)。
すなわち、スレッドの演算段数が、同じ又は大きなスレッドへの切り替えの場合には、待ちサイクル数は0(ゼロ)となり、演算段数がより小さいスレッドへの切り替えの場合には、その差の段数分が待ちサイクル数となる。
従って、スレッドAからスレッドBへの切り替えの場合には、サイクルの待ちは無く、演算セルの再構成が開始される。図17に示すように、動的再構成演算回路C1の次のサイクルでは、動的再構成演算回路C2のように再構成が行われる。
図16は、演算セル、演算ソース選択器の再構成処理を示すフローチャートである。
まず、構成切替部4000は、再構成する演算セル2100と演算ソース選択器2210とを選択する(ステップS400)。ここでの演算ソース選択器は、演算セルと対となるものである。
例えば、次スレッドがスレッドBの場合、最初に選択される演算セルは、演算セルa、演算セルcの2つである。
依頼を受けた構成情報記憶部3000は(ステップS500)、通知されたスレッドIDと演算セルIDから構成情報名3130を求め、その名で特定できる構成情報を選択し(ステップS510)、送出する(ステップS520、ステップS521)。
また、同時に、構成切替部4000は、選択した演算セルと演算ソース選択器に対して、再構成を指示する(ステップS420、ステップS421)。
例えば、選択された演算セル等が演算セルaと演算ソース選択器aの場合は、構成情報の信号線から構成情報を取得し、再構成する(図18:サイクルC2の演算セルaと演算ソース選択器aの処理、図17:動的再構成演算回路C2)。
例えば、再構成された演算セルaと演算ソース選択器aは、スレッドBの演算を行う(図18:サイクルC3の演算セルaと演算ソース選択器aの処理)。このとき、マルチスレッドプロセッサ1000は、スレッドB用の演算データを演算ソース選択器に提供する。
例えば、次スレッドがスレッドBの場合には、2段目の演算セル、すなわち、演算セル段数テーブル4100で演算セル段数4130が「1」の演算セル、演算セルbと演算セルdが選択され、再構成される(図18:サイクルC3参照、図17:動的再構成演算回路C3)。
<出力データ選択器の再構成処理>
図19は、制御信号と出力データ選択器2250の処理との関係を表すタイムチャートである。
再構成の手順は、図16に示す演算セルの再構成と同様である。以下、簡単に説明する。
次スレッド用に全演算セルが再構成されたと判断した構成切替部4000は(図16:ステップS430:Y)、構成情報記憶部3000に次スレッドの出力データ選択器2250の構成情報を送出するよう依頼する。同時に、出力データ選択器2250に、再構成を指示する。
例えば、次スレッドがスレッドBの場合、スレッドBの演算段数「8」の処理が終了したら、構成情報記憶部3000は構成情報を送出し、出力データ選択器2250は、構成情報を入力し、再構成を行う(図19:サイクルC10、図17:動的再構成演算回路C10)。
<演算結果記憶部の領域変更処理>
図20は、制御信号と演算結果記憶部5000の処理との関係を表すタイムチャートである。
通常は、同一スレッドの領域に対して読み書きが行われるが、スレッド切り替えの際には、記憶する演算データのスレッドと、読み出される演算データのスレッドが異なる場合が生じ、アクセスする領域が異なる。
構成切替部4000は、次スレッドの最初の段数の演算セルを再構成するタイミングで、読み出し領域を次スレッド用に切り替える指示を演算結果記憶部5000に出す(図20:サイクルC2)。最初の演算セルの再構成のサイクルの次のサイクルで、マルチスレッドプロセッサ1000から読み出されるからである。
尚、図20の演算結果記憶分5000の「スレッドA用の書き込み」期間を示す図における点線で示す期間(サイクルC5〜サイクルC9)は、スレッドAによる書き込みは行われない期間であることを示している。
演算段数がより小さいスレッドへの切り替える場合について、図22及び図23を用いて説明する。
ここでは、演算段数が「16」のスレッドCから、演算段数が「4」のスレッドAに切り替わる場合を説明する。
図23は、スレッド切り替えの際の、マルチスレッドプロセッサ1000等からの制御信号と演算セル等の処理との関係を表すタイムチャートである。本図では、16個の演算セル2100のうち、説明の便宜上、演算セルa、演算セルe、演算セルiの処理のみを表している。
相違点は、演算セル等の再構成の開始タイミングが異なる点である。
すなわち、上述した演算段数がより大きいスレッドへの切り替えの場合には、構成切替部4000は、マルチスレッドプロセッサ1000からの切り替え指示後、すぐに演算セルの再構成処理を開始した。待ちサイクル数が0(ゼロ)だったからである。
構成切替部4000は、この12サイクルを待って(図14:ステップS220、図23:サイクルC2〜サイクルC13)、演算セル等の再構成を開始する(図14:ステップS240、図23:サイクルC14)。図22に示す動的再構成演算回路C14〜動的再構成演算回路C17で、再構成を行う。
その後、サイクルC14でスレッドAの最初の段の演算セルから再構成を行う。図22に示す動的再構成演算回路C14である。
一方、マルチスレッドプロセッサ1000は、このサイクルC2〜サイクルC14の間は、次スレッドであるスレッドAの実行開始を待っている状態である(図23:サイクルC2〜サイクルC14)。
ここでは、スレッドA→スレッドB→スレッドC→スレッドAとスレッドを切り替える場合を示している。
マルチスレッドプロセッサ1000の期間9000は、マルチスレッドプロセッサ1000のスレッドAの処理期間を、期間9001はスレッドBの処理期間を、期間9002はスレッドCの処理期間を表す。期間9008は、動的再構成演算回路2000内の演算処理終了待ちのバブル期間、すなわち、マルチスレッドプロセッサ1000による現スレッドへの演算データの供給が終了し、次スレッドの演算データの供給が始まるまでの期間である(図22:動的再構成演算回路C2〜C14)。
期間9100mは演算セルmのスレッドAの処理期間を、期間9101mはスレッドBの処理期間を、期間9102mはスレッドCの処理期間を表す。期間9109mは、前段の演算セル2100の構成切り替え待ちのバブル期間である。スレッドAからスレッドBへの切り替え時の期間9109mは、図17に示す動的再構成演算回路C5〜C9の期間である。
以下、本実施形態のプロセッサで実行する各種命令例、プログラム例を説明する。
まず、図25は、演算結果記憶部5000に関する命令例等である。
図25(a)は、演算結果記憶部5000内のスレッド占有領域の設定命令例であり、図25(b)は、各スレッド領域の設定プログラム例であり、図25(c)は、スレッド実行時の設定値である。
図25(b)のプログラムは、スレッドAは、「0x00」番地から「0x3F」番地までを使用し、スレッドBでは、「0x40」番地から「0x5F」番地を、スレッドCでは、「0x60」番地から「0x6F」番地までを使用する旨を指定している(図21参照)。
図25(c)に示すように、演算結果記憶部5000内に、各スレッドでFIFOの読み出しアドレス(DMRA)と、書き込みアドレス(DMWA)とが記憶される。マルチスレッドプロセッサ1000からの読み出し番地は、実行中のスレッドのDMRAとなり、動的再構成演算回路2000からの書き込み番地は、実行中のスレッドのDMWAとなる。DMRA、DMWAの初期値は、図5(b)のプログラムの実行時に、各スレッド用領域の開始番地として設定される。
この設定後、マルチスレッドプロセッサ1000及び、動的再構成演算回路2000にて、各スレッドの処理が行われる。動的再構成演算回路2000より、演算結果が演算結果記憶部5000に書き込まれれば、各スレッドのDMWAをインクリメントすればよい。
なお、演算データがW個の場合、DMWAには、Wが加算される。
また、マルチスレッドプロセッサ1000から、演算結果記憶部5000内の演算結果データが読み出されると、DMRAをインクリメントすればよい。
なお、演算データがW個の場合、DMRAには、Wが加算される。
各DMWA、DMRAが図25(b)のプログラムで設定された、各スレッド領域の終了番地Ed_Adrを超えた場合には、St_Adrが設定される。
次に、図26(a)は、マルチスレッドプロセッサ1000からの動的再構成演算回路2000への演算命令例であり、図26(b)は、演算結果記憶部5000に対する演算結果読み出し命令例である。
図26(a)の「Rcn_exe」命令は、動的再構成演算回路2000での演算命令であり、「srcA」と「srcB」は、マルチスレッドプロセッサ1000内のレジスタ番号を指定する。
図26(b)の「Rcn_rd」命令は、動的再構成演算回路2000の演算結果を読み出す命令であり、「dstA」は、マルチスレッドプロセッサ1000内のレジスタ番号であり、当該レジスタに演算結果データを格納する。
簡単に動作を説明すると、「Rcn_exe」命令により、実行中のスレッドでの構成にて、動的再構成演算回路2000内の演算が実行される。この演算の演算データとして、「Rcn_exe」命令で指定したレジスタ番号のデータを使用する。動的再構成演算回路2000の演算結果データは、演算結果記憶部5000の該当スレッドのDMWAの指すアドレスに格納される。
尚、演算結果記憶部5000内に該当スレッドのデータが格納されていない場合、演算結果記憶部5000は、マルチスレッドプロセッサ1000に対して、演算停止信号を発行する。演算データが無いことの判定は、該当スレッドのDMRAとDMWAが同じ場合であることを検出すればよい。
以上の構成により、演算結果データは、スレッド毎にFIFOでの管理を実現でき、動的再構成演算回路2000の構成の切り替えに左右されることなく演算結果記憶部5000内の各スレッドの所定領域に格納される。
具体的には、Rcn_exe命令の演算結果を取得する、Rcn_rd命令は、動的再構成演算回路2000の演算段数分のサイクル+1サイクル後に発行可能となる。動的再構成演算回路2000内での演算のために、演算段数分のサイクルを要し、更に演算結果記憶部5000への書き込みのために、1サイクル要する。
図27(a)は、スレッドAでのRcn_exe命令と、Rcn_rd命令のみのプログラムである。このプログラムの実行前には、演算結果記憶部5000には、スレッドA用の演算結果データは格納されていないものとする。
図27(a)のRcn_exe命令が発行されると、マルチスレッドプロセッサ1000内のレジスタR1、R2のデータが動的再構成演算回路2000に伝達され、動的再構成演算回路2000内での演算が開始される。
Rcn_exe命令発行から4サイクル後(Rcn_rd命令発行から3サイクル後)、動的再構成演算回路2000内の演算が完了する。
図27(a)のプログラムでは、マルチスレッドプロセッサ1000の演算停止が4サイクル発生したが、演算停止を発生させないプログラムを図27(b)を元に説明する。
図27(b)のプログラムは、図27(a)のRcn_exe命令、Rcn_rd命令の間に4サイクル分の演算用命令を挿入してある。Add命令は、マルチスレッドプロセッサ1000内のレジスタを演算ソースとし、加算を行い、演算結果データをマルチスレッドプロセッサ1000内のレジスタに書き込む命令である。演算リソースは、マルチスレッドプロセッサ1000内で閉じており、動的再構成演算回路2000を使用しない。Add命令の演算には1サイクル必要である。
以上説明した構成により、動的再構成演算回路2000内の構成切り替え時の性能劣化を抑制できる。また、一度に読み出し書き込みを必要とする中間演算データを退避する必要が無く、順次読み出し書き込みが発生する演算結果データだけを格納すればよい。このため、記憶手段を少ない入出力ポートのメモリで実現でき、回路の面積を抑制できる。
<実施形態2>
実施形態1では、演算段数がより小さいスレッドに切り替える際には、マルチスレッドプロセッサ1000の待ちサイクルが生じていた(図24:期間9008参照)。
従って、本実施形態では、マルチスレッドプロセッサ1000において、この待ちサイクル期間は生じないことになる。
この待ちサイクル期間をなくしたことにより、本実施形態では、プログラム側で待ちサイクル期間を意識してスレッドを実行することになる。
図29は、命令仕様書のRcn_exe命令の記載例である。
本図では、動的再構成演算回路2000への演算指示命令と演算結果記憶部5000へのデータ読み出し命令、及び、それぞれの解説例を示す。
実施形態1では、スレッド切り替え時に、マルチスレッドプロセッサ1000に、スレッドCからスレッドAでの処理切り替えにおいて、期間9008の演算停止期間が発生した(図24参照)。これは、動的再構成演算回路2000の演算段数が多い構成から、少ない構成に変更する場合、構成の切り替え期間、動的再構成演算回路2000への新たな演算命令の発行を停止するためである。この制御は、構成切り替え手段4000より、図14のステップS210等の処理により行われていた。
マルチスレッドプロセッサ1000への演算停止制御を省くことにより、期間9008の演算停止期間が発生せず、命令を発行できる期間が増加する。期間9008の演算停止期間が発生しない動作スケジューリングが図28となる。
そのため、命令仕様書などに、Rcn_exe命令は、Dサイクル期間発行してはいけないと、記述されることが望ましい。
<実施形態3>
実施形態1では、動的再構成演算回路2000から出力された演算データは、一旦、演算結果記憶部5000に記憶され、マルチスレッドプロセッサ1000は、演算結果記憶部5000から演算データを読み出していた。本実施形態では、最低限記憶しておかなければならない演算データ、すなわち、スレッドに割当てられた時間が終了する時の演算結果データ以外は、演算結果記憶部5000に記憶せずに、直接マルチスレッドプロセッサ1000に渡すものである。
実施形態3が実施形態1と異なる点は、図1の演算結果記憶部5000から、マルチスレッドプロセッサ1000へ出力される処理および構成であり、演算結果選択器6000が追加されている点である。
図30は、本発明の実施形態3における動的再構成論理回路装置200の構成を示す機能ブロック図である。本図において、図1と同じ構成要素については同じ符号を用い、説明を省略する。
実施形態1では、演算結果データは、演算結果記憶手段5000からのみ、マルチスレッドプロセッサ1000に伝達されていた。この構成では、必ず演算結果記憶手段5000を経由するため、記憶手段5000での書き込み、読み出しのサイクル分だけ、遅延が発生する。
実施の形態3では、この問題を解決する。
演算結果記憶手段5000内に演算データが格納されている(DMWAとDMRAが異なる値)場合は、演算結果選択器6000は、演算結果記憶部5000からのデータを選択し、実施形態1で説明した処理が行われる。
その後、動的再構成演算回路2000が演算結果データを演算結果記憶部5000に格納するサイクルにて、演算結果記憶部5000は以下の制御を行う。
この処理により、動的再構成演算回路2000の演算結果データは、演算結果記憶部5000に格納されず、マルチスレッドプロセッサ1000に直接渡される。該当スレッドのDMWA、DMRAのアドレスはインクリメントされない。
<実施形態4>
図31は、本発明の実施形態4における動的再構成論理回路装置300の構成を示す機能ブロック図である。図31において、図1と同じ構成要素については同じ符号を用い、説明を省略する。
すなわち、本実施形態は、処理は全て動的再構成演算回路2000で行うことが出来るスレッドを実行する場合である。
<概要>
実施形態4では、マルチスレッドプロセッサ1000が行っていた、動的再構成演算回路2000への演算データ供給を演算ソース記憶部7000が行い、動的再構成演算回路2000への演算指示を構成切り替え手段4000が行い、演算結果記憶部5000からの演算結果データ読み出しを図示しないデータ転送コントローラDMACが行う。
演算ソース記憶部7000は、構成切替部4000より制御され、書き込み、読み出しのアドレスはスレッド毎に管理される。
この演算ソース記憶部7000の読み出し・書き込みアドレスの管理は、実施形態1の演算結果記憶部5000と同じとなる。但し、読み出し要求は構成切替手段4000により行われ、書き込みデータはデータ転送コントローラDMACから、読み出しデータは動的再構成演算回路2000に転送される。
また、一度に読み出し書き込みを必要とする中間演算データを退避する必要が無く、順次読み出し書き込みが発生する演算結果データだけを格納すればよい。このため、記憶手段を少ない入出力ポートのメモリで実現でき、回路の面積を抑制できる。
本発明のプロセッサは、例えば、移動体通信装置等に搭載することが可能である。図32は、本発明のプロセッサが搭載された移動体通信装置を示す図である。
移動通信装置10000は、ディスプレイ11000、撮像手段12000、音出力手段13000、音入力手段14000、コマンド入力手段15000、アンテナ16000及び、内部に本発明であるプロセッサ100(図1参照)を備える。
さらに、プロセッサ100は、音出力手段13000と、オーディオフレームバッファを介して接続される。プロセッサ100は、MPEGなどの音声デコード処理を行う。音出力手段13000は、プロセッサ100で処理された音声を出力する。
JPEG、MPEGなどの、ビデオ処理規格、音声処理規格は、様々な種類があり、それぞれ処理の内容が異なる。この処理が異なり、マルチスレッドプロセッサ1000では負荷の重い部分を、動的再構成演算回路2000にて処理させることで、複数の規格の処理に柔軟に対応可能となる。
通信規格、暗号規格は、様々な種類があり、それぞれ処理の内容が異なる。この処理が異なり、マルチスレッドプロセッサ1000では負荷の重い部分を、動的再構成演算回路2000にて処理させることで、複数の規格の処理に柔軟に対応可能となる。
通信システム、映像処理システム、セキュリティー処理システムの多くは、複数の規格に対応するため、本発明の効果を受ける。説明を行った、移動通信装置だけでなく、TV・DVDプレイヤー・カーナビなどの映像表示装置、DVDレコーダ・ビデオカメラ・DSC・セキュリティーカメラ・などの映像記録装置、オーディオプレイヤーなどの装置、通信装置内の、通信システム、セキュリティー処理システムに有益である。
以上、本発明に係るプロセッサについて実施形態に基づいて説明したが、このプロセッサを部分的に変形することもでき、本発明は上述の実施形態に限られないことは勿論である。即ち、
(1)実施形態では、動的再構成演算回路2000の演算セルは4x4の行列形式に配置していたが、例えば、10x4での矩形行列形式でも良い。また、ライン単位で配置されていてもよく、配置の構成を問わない。
更にこの演算セル2100は、全て同じ構成としていたが、特定の演算セルのみ除算ができるなど、構成が違う演算セル2100があってもよい。
全ての演算セル2100及び動的再構成接続器2200は、構成の切り替え可能としたが、一部構成が切り替わらない演算セル2100及び、動的再構成接続器2200があってもよい。
構成切替手段4000から、演算セル2100への構成切り替え信号線は、演算セル2100毎に個別に引いていたが、必ず同時に切り替わる演算セル2100同士は、同じ切り替え信号線を引いても良い。
動的再構成演算回路2000は、マルチスレッドプロセッサ1000で実行中のスレッドと同期して構成を変更していたが、プロセッサの処理スレッドを変更せずに、動的再構成演算回路2000のみを適宜構成変更してもよい。
(2)実施形態1、2では、マルチスレッドプロセッサ1000で動作するスレッドA、B、Cは、全て動的再構成演算回路2000で演算が行っていたが、動的再構成演算回路2000を用いないスレッドがあってもよい。その場合は、次に動的再構成演算回路2000を使用するスレッドの構成に切り替わっていても良い。
さらに、マルチスレッドプロセッサ1000は、複数スレッドをサポートしないプロセッサであってもよく、複数のコアを集積したマルチコアの構成でもよく、また、内部構成が再構成可能演算回路であっても良い。
(3)実施形態1、2では、演算結果記憶手段5000への、マルチスレッドプロセッサ1000からの読み出し用の命令では、マルチスレッドプロセッサ1000で処理中のスレッドでの動的再構成演算回路2000の演算結果データのみ、読み出せていたが、これを他スレッドの演算結果も読み出せるようにしても良い。
更に、マルチスレッドプロセッサ1000は読み出し用命令をサポートしなくても良い。代わりに動的再構成演算回路2000への演算指示命令のオペランドに、マルチスレッドプロセッサ1000内のレジスタをデスティネーションとして指定できるようにし、動的再構成演算回路2000での演算が終わると、そのレジスタに演算結果データが書き込まれるようにしてもよい。
更に、演算結果記憶部5000へのスレッド毎の領域アドレスを設定する命令にて、領域の終了アドレスも設定していたが、このオペランドが無くてもよい。全スレッドの領域開始アドレスが設定されれば、他のスレッド領域開始アドレスまでを、各スレッドの領域と判定すればよい。
(4)実施形態1、2、3では、演算結果記憶部5000にて、各スレッド用領域をFIFOで管理していたが、LIFO(Last In First Out)形式など、他の形式で管理しても良い。
(5)実施の形態4では、演算ソース記憶部7000にて、各スレッドFIFOで管理していたが、LIFO(Last In First Out)形式など、他の形式で管理しても良い。
(6)実施形態1、2.3では、構成情報記憶部3000内に、各スレッドの構成情報を保存していたが、これはなくても良い。代わりに、各演算セル、演算ソース選択器、出力データ選択器内に、全スレッドの構成情報を予め保持する記憶手段を設け、構成切り替わり時に、スレッド番号と切り替わり指示を構成切替部4000から受け、所望の構成に切り替わっても良い。
(7)実施形態では、各演算セルの再構成のタイミングを、構成切替部4000からの指示によって行うこととしているが(図16:ステップS400〜ステップS420参照)、それぞれの演算セルで再構成のタイミングを判断することとしても良い。
構成切替部4000から待ちサイクルが経過し、再構成の指示があったら、各演算セル2100は、待機サイクルEを判定し、そのサイクルだけ切り替え制御を待機する。Eは、次スレッドでの、該当演算セルより前にある、演算セル2100の個数(演算段数)を表す。各演算セルEの値は、演算セル段数テーブル4100(図9(a)参照)を参照する。
この待機サイクルEの算出が終わると、構成切替部4000は、構成情報記憶部3000に指示し、該当演算セル2100の次スレッドでの構成情報及び、その演算セル2100に対応する演算ソース選択器2210の次スレッドでの構成情報の読み出し処理を行う。この構成情報は、構成情報転送用のバスを通して、該当演算セル2100及び該当演算ソース選択器2210に供給される。
構成切替部4000は、全演算セルが次スレッド用に再構成されるサイクルをスレッド段数テーブル4200(図9(b))を参照して求め、出力データ演算器2250の再構成を開始する。
(8)実施形態では、スレッド切り替え時に、現スレッドの演算セルと次スレッドの演算セルとを、同時に動作させることとしているが、現スレッドの処理が終了したら、すぐに次のサイクルで、次スレッドの実行を開始することとしても良い。現スレッド実行中に、演算の終了した演算セルから順に次スレッド用に再構成しているので、再構成の時間が不要だからである。
(9)実施形態で示したプロセッサの各機能を実現させる為の各制御処理(図14等参照)をCPUに実行させる為のプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ICカード、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布されたプログラムは、機器におけるCPUで読み取り可能なメモリ等に格納されることにより利用に供され、そのCPUがそのプログラムを実行することにより実施形態で示したプロセッサの各機能が実現される。
また、一度に読み出し書き込みを必要とする中間演算データを退避する必要が無く、順次読み出し書き込みが発生する演算結果データだけを格納すればよい。このため、記憶手段を少ない入出力ポートのメモリで実現でき、回路の面積を抑制できる。
この構成により、時分割多重処理が必要となるメディア処理装置として有用である。また通信やセキュリティー等の用途にも応用できる。
10 1000 マルチスレッドプロセッサ
20 2000 動的再構成演算回路
21 2100 演算セル
2200 動的再構成接続部
2210 演算ソース選択器
2250 出力データ選択器
3000 構成情報記憶部
3100 演算セル構成情報テーブル
4000 構成切替部
4100 演算セル段数テーブル
4200 スレッド段数テーブル
5000 演算結果記憶部
6000 演算結果選択器
7000 演算ソース記憶部
10000 移動通信装置
Claims (6)
- 複数のスレッドを巡回的に、各スレッドに割当てられた時間ずつ実行するプロセッサであって、
複数の演算セルを含み、当該演算セルの構成と各演算セル間の接続とを再構成可能な演算回路と、
演算セルの構成及び当該演算セルと他の演算セルとの接続を、セル構成情報に基づいて、再構成する再構成手段と、
各々異なる特定数の演算セルを順番に繰り返し実行する複数のスレッド各々に対応する、各演算セルのセル構成情報を記憶する構成情報記憶手段と、
順次、前記再構成手段に、現スレッドに割当てられた時間内で実行すべき演算を全て終了した演算セルを、前記構成情報記憶手段に記憶している次スレッドに対応する当該演算セルのセル構成情報に基づき再構成させ、次スレッドに対応する構成の演算セルと現スレッドの構成に対応する演算セルとをそれぞれ同時に実行させる制御手段と
を備えることを特徴とするプロセッサ。 - 前記プロセッサは、更に、各スレッドの演算セルの演算結果を、それぞれ別の領域に記憶する演算結果記憶手段を備え、
前記制御手段は、同時に実行させている現スレッドで順番に繰り返し実行する演算セルのうちの最後に演算を実行した演算セルの演算結果を前記演算結果記憶手段の現スレッドの領域に記憶させ、同時に実行させている次スレッドの領域に記憶されている演算結果を、次スレッドの最初に実行する演算セルに参照させて演算を実行させる
ことを特徴とする請求項1記載のプロセッサ。 - 前記プロセッサは、更に、スレッドに割当てられた時間内で実行すべき演算を全て終了した演算セルであって、当該スレッドで順番に繰り返し実行する演算セルのうちの最後に演算を実行した演算セルの演算結果を記憶する演算結果記憶手段を備え、
前記制御手段は、現スレッドで順番に繰り返し実行する演算セルのうちの最後に演算を実行した演算セルの演算結果に基づいて、次の繰り返しの最初に実行する演算セルを実行させ、スレッドを切り替える際には、次スレッドに対して前回割当てられた時間に前記演算結果記憶手段に記憶した演算結果を、次スレッドの最初に実行する演算セルに参照させて演算を実行させる
ことを特徴とする請求項1記載のプロセッサ。 - 複数の演算セルを含み、当該演算セルの構成と各演算セル間の接続とを再構成可能な演算回路を備え、複数のスレッドを巡回的に、各スレッドに割当てられた時間ずつ実行するプロセッサで用いられる実行方法であって、
演算セルの構成及び当該演算セルと他の演算セルとの接続を、セル構成情報に基づいて、再構成する再構成ステップと、
各々異なる特定数の演算セルを順番に繰り返し実行する複数のスレッド各々に対応する、各演算セルのセル構成情報をメモリに記憶する構成情報記憶ステップと、
順次、前記再構成ステップで、現スレッドに割当てられた時間内で実行すべき演算を全て終了した演算セルを、前記構成情報記憶ステップでメモリに記憶している次スレッドに対応する当該演算セルのセル構成情報に基づき再構成させ、次スレッドに対応する構成の演算セルと現スレッドの構成に対応する演算セルとをそれぞれ同時に実行させる制御ステップと
を備えることを特徴とする実行方法。 - 複数の演算セルを含み、当該演算セルの構成と各演算セル間の接続とを再構成可能な演算回路を備え、複数のスレッドを巡回的に、各スレッドに割当てられた時間ずつ実行するプロセッサに実行処理を行わせるコンピュータプログラムであって、
演算セルの構成及び当該演算セルと他の演算セルとの接続を、セル構成情報に基づいて、再構成する再構成ステップと、
各々異なる特定数の演算セルを順番に繰り返し実行する複数のスレッド各々に対応する、各演算セルのセル構成情報をメモリに記憶する構成情報記憶ステップと、
順次、前記再構成ステップで、現スレッドに割当てられた時間内で実行すべき演算を全て終了した演算セルを、前記構成情報記憶ステップでメモリに記憶している次スレッドに対応する当該演算セルのセル構成情報に基づき再構成させ、次スレッドに対応する構成の演算セルと現スレッドの構成に対応する演算セルとをそれぞれ同時に実行させる制御ステップと
を備えることを特徴とするコンピュータプログラム。 - 複数のスレッドを巡回的に、各スレッドに割当てられた時間ずつ実行するプロセッサであって、
複数の演算セルを含み、当該演算セルの構成と各演算セル間の接続とを再構成可能な演算回路と、
演算セルの構成及び当該演算セルと他の演算セルとの接続を、セル構成情報に基づいて、再構成する再構成手段と、
各々異なる特定数の演算セルを順番に繰り返し実行する複数のスレッド各々に対応する、各演算セルのセル構成情報を記憶する構成情報記憶手段と、
順次、前記再構成手段に、現スレッドに割当てられた時間内で実行すべき演算を全て終了した演算セルを、前記構成情報記憶手段に記憶している次スレッドに対応する当該演算セルのセル構成情報に基づき再構成させ、現スレッドで実行する最後の演算セルの演算終了後、次スレッドの構成の演算セルを実行させる制御手段と
を備えることを特徴とするプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007546441A JP5096923B2 (ja) | 2005-11-25 | 2006-11-21 | 動的再構成論理回路を有するマルチスレッドプロセッサ |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005339946 | 2005-11-25 | ||
JP2005339946 | 2005-11-25 | ||
PCT/JP2006/323177 WO2007060932A1 (ja) | 2005-11-25 | 2006-11-21 | 動的再構成論理回路を有するマルチスレッドプロセッサ |
JP2007546441A JP5096923B2 (ja) | 2005-11-25 | 2006-11-21 | 動的再構成論理回路を有するマルチスレッドプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007060932A1 JPWO2007060932A1 (ja) | 2009-05-07 |
JP5096923B2 true JP5096923B2 (ja) | 2012-12-12 |
Family
ID=38067159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007546441A Active JP5096923B2 (ja) | 2005-11-25 | 2006-11-21 | 動的再構成論理回路を有するマルチスレッドプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US7949860B2 (ja) |
JP (1) | JP5096923B2 (ja) |
WO (1) | WO2007060932A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5151311B2 (ja) * | 2007-08-17 | 2013-02-27 | 富士通株式会社 | 集積回路装置 |
CN101578768A (zh) * | 2007-11-12 | 2009-11-11 | 松下电器产业株式会社 | 可重构电路、复位方法及结构信息生成装置 |
JP5359142B2 (ja) * | 2008-09-18 | 2013-12-04 | 富士通株式会社 | 伝送装置 |
US8176212B1 (en) * | 2009-08-18 | 2012-05-08 | Quickflex, Inc. | Method and system for hierarchical and joinable behavior containers for reconfigurable computing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240549A (ja) * | 1997-02-24 | 1998-09-11 | Hitachi Ltd | 並列ジョブ多重スケジューリング方法及び装置 |
JP2000311156A (ja) * | 1999-04-27 | 2000-11-07 | Mitsubishi Electric Corp | 再構成可能並列計算機 |
JP2001068993A (ja) * | 1999-08-25 | 2001-03-16 | Fuji Xerox Co Ltd | 情報処理システム |
JP2001320271A (ja) * | 2000-05-02 | 2001-11-16 | Fuji Xerox Co Ltd | プログラマブル論理回路への回路の再構成方法および情報処理システム |
JP2005165961A (ja) * | 2003-12-05 | 2005-06-23 | Matsushita Electric Ind Co Ltd | 動的再構成論理回路装置、割込制御方法、及び、半導体集積回路 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US125642A (en) * | 1872-04-09 | Improvement in bit-braces | ||
US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
US6052773A (en) * | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US6282634B1 (en) * | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
US7320065B2 (en) * | 2001-04-26 | 2008-01-15 | Eleven Engineering Incorporated | Multithread embedded processor with input/output capability |
US20030120896A1 (en) * | 2001-06-29 | 2003-06-26 | Jason Gosior | System on chip architecture |
US7428732B2 (en) * | 2001-12-05 | 2008-09-23 | Intel Corporation | Method and apparatus for controlling access to shared resources in an environment with multiple logical processors |
CA2438559C (en) * | 2002-08-28 | 2011-04-26 | Msi Machineering Solutions Inc. | Downhole latch |
US7389403B1 (en) * | 2005-08-10 | 2008-06-17 | Sun Microsystems, Inc. | Adaptive computing ensemble microprocessor architecture |
JP2007133456A (ja) * | 2005-11-08 | 2007-05-31 | Hitachi Ltd | 半導体装置 |
-
2006
- 2006-11-21 JP JP2007546441A patent/JP5096923B2/ja active Active
- 2006-11-21 WO PCT/JP2006/323177 patent/WO2007060932A1/ja active Application Filing
- 2006-11-21 US US12/093,884 patent/US7949860B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240549A (ja) * | 1997-02-24 | 1998-09-11 | Hitachi Ltd | 並列ジョブ多重スケジューリング方法及び装置 |
JP2000311156A (ja) * | 1999-04-27 | 2000-11-07 | Mitsubishi Electric Corp | 再構成可能並列計算機 |
JP2001068993A (ja) * | 1999-08-25 | 2001-03-16 | Fuji Xerox Co Ltd | 情報処理システム |
JP2001320271A (ja) * | 2000-05-02 | 2001-11-16 | Fuji Xerox Co Ltd | プログラマブル論理回路への回路の再構成方法および情報処理システム |
JP2005165961A (ja) * | 2003-12-05 | 2005-06-23 | Matsushita Electric Ind Co Ltd | 動的再構成論理回路装置、割込制御方法、及び、半導体集積回路 |
Also Published As
Publication number | Publication date |
---|---|
WO2007060932A1 (ja) | 2007-05-31 |
US7949860B2 (en) | 2011-05-24 |
JPWO2007060932A1 (ja) | 2009-05-07 |
US20090307470A1 (en) | 2009-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100733943B1 (ko) | 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로 | |
JP4996519B2 (ja) | 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法 | |
US7724984B2 (en) | Image processing apparatus | |
US6675289B1 (en) | System and method for executing hybridized code on a dynamically configurable hardware environment | |
JP5096923B2 (ja) | 動的再構成論理回路を有するマルチスレッドプロセッサ | |
US20100174884A1 (en) | Processor having reconfigurable arithmetic element | |
KR20090083596A (ko) | 다중 모드를 제공하는 재구성 가능한 장치 및 방법 | |
JP2008152409A (ja) | 半導体集積回路 | |
JP4865960B2 (ja) | データ処理装置およびその制御方法 | |
KR20070114690A (ko) | 프로세서 | |
JPWO2006022202A1 (ja) | 情報処理装置、例外制御回路 | |
TW202107408A (zh) | 波槽管理之方法及裝置 | |
JP4728083B2 (ja) | メディア処理装置 | |
JP2006313479A (ja) | 半導体集積回路装置及びデータ転送方法 | |
JP2007200106A (ja) | データ処理装置、制御方法、及びプログラム | |
JP2006285724A (ja) | 情報処理装置および情報処理方法 | |
CN117112466B (zh) | 一种数据处理方法、装置、设备、存储介质及分布式集群 | |
JP4758538B2 (ja) | データ処理装置および制御方法 | |
JP2008129851A (ja) | 演算処理装置 | |
JP2006195598A (ja) | リアルタイム処理システム | |
JP2007207121A (ja) | データ処理装置及びその制御方法 | |
JP3767529B2 (ja) | マイクロプロセッサ | |
JP2007329760A (ja) | プログラマブル論理デバイス、回路情報入力制御装置および半導体装置 | |
JP2002268876A (ja) | パイプライン処理方法、及び情報処理装置 | |
CN114787775A (zh) | 数据处理系统、数据转发装置以及上下文切换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120712 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120828 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120921 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5096923 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150928 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |