(57)【要約】【課題】  ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法を提供する。【解決手段】  本発明は、ミニコア基盤の再構成可能プロセッサに関するものであって、一態様によれば、ミニコア基盤の再構成可能プロセッサは、互いに異なる演算を行うファンクションユニットを含むミニコアと、ミニコアのうちからＳＩＭＤ命令語の演算を行う２つ以上のミニコアの２つ以上のファンクションユニットを活性化し、活性化された２つ以上のファンクションユニットを用いてＳＩＭＤ命令語を行わせる処理部と、を含みうる。【選択図】      図１
2013246816.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる演算を行うファンクションユニット（Ｆｕｎｃｔｉｏｎ  Ｕｎｉｔ）を含むミニコアと、
前記ミニコアのうちからＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令語の演算を行う２つ以上のミニコアの２つ以上のファンクションユニットを活性化し、前記活性化された２つ以上のファンクションユニットを用いて、前記ＳＩＭＤ命令語を行わせる処理部と、
を含む再構成可能プロセッサ。
【請求項２】
前記ミニコアのうちの何れか１つに含まれた少なくとも１つのファンクションユニットは、前記ミニコアのうちの少なくとも１つの他のミニコアに含まれた少なくとも１つのファンクションユニットと互いに同じ演算を行う請求項１に記載の再構成可能プロセッサ。
【請求項３】
前記処理部は、
前記ＳＩＭＤのデータタイプに基づいて、前記ＳＩＭＤ命令語を行う前記２つ以上のミニコアをさらに決定する請求項１に記載の再構成可能プロセッサ。
【請求項４】
前記各ミニコアは、
前記ＳＩＭＤ命令語の遂行結果が臨時保存されるローカルレジスタファイルをさらに含む請求項１に記載の再構成可能プロセッサ。
【請求項５】
前記ミニコアを互いに連結するための外部ネットワークをさらに含む請求項１に記載の再構成可能プロセッサ。
【請求項６】
前記各ミニコアは、
前記各ファンクションユニットを連結するための内部ネットワークをさらに含む請求項１に記載の再構成可能プロセッサ。
【請求項７】
前記処理部は、
前記ミニコアに基づいたＣＧＡ（Ｃｏａｒｓｅ  Ｇｒａｉｎｅｄ  Ａｒｒａｙ）プロセッサまたはＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサとして動作する請求項１に記載の再構成可能プロセッサ。
【請求項８】
前記各ミニコアは、
前記ＣＧＡプロセッサまたは前記ＶＬＩＷプロセッサで設計基本単位または拡張基本単位と定義される請求項７に記載の再構成可能プロセッサ。
【請求項９】
前記ＣＧＡプロセッサは、ループ演算を行い、前記ＶＬＩＷプロセッサは、ループ演算以外の演算を行う請求項７または８に記載の再構成可能プロセッサ。
【請求項１０】
前記処理部は、
前記ＳＩＭＤ命令語のデータタイプを識別し、前記データタイプは、相当量のデータのビットを含む請求項１に記載の再構成可能プロセッサ。
【請求項１１】
再構成可能プロセッサのミニコアのうちからＳＩＭＤ命令語の演算を行う少なくとも２つ以上のミニコアを決定する段階と、
それぞれＳＩＭＤ命令語を行う前記決定された２つ以上のミニコアの２つ以上のファンクションユニットを活性化する段階と、
を含む再構成可能プロセッサを利用した多重データ処理方法。
【請求項１２】
前記各ミニコアは、互いに異なる演算を行うファンクションユニットを含む請求項１１に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１３】
前記ミニコアのうちの何れか１つに含まれた少なくとも１つのファンクションユニットは、前記ミニコアのうちの少なくとも１つの他のミニコアに含まれた少なくとも１つのファンクションユニットと互いに同じ演算を行う請求項１１または１２に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１４】
前記２つ以上のミニコアを決定する段階は、
前記ＳＩＭＤのデータタイプに基づいて、前記ＳＩＭＤ命令語を行う２つ以上のミニコアを決定する請求項１１に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１５】
前記活性化された２つ以上のファンクションユニットを用いて、ＳＩＭＤ命令語を行わせる段階をさらに含む請求項１１に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１６】
前記ＳＩＭＤ命令語の遂行結果を保存する段階をさらに含む請求項１５に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１７】
ミニコアに基づいたＣＧＡプロセッサまたはミニコアに基づいたＶＬＩＷプロセッサとして動作する段階をさらに含む請求項１１に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１８】
前記ＣＧＡプロセッサは、ループ演算を行い、前記ＶＬＩＷプロセッサは、ループ演算以外の演算を行う請求項１７に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項１９】
相当量のデータのビットを含む前記ＳＩＭＤ命令語のデータタイプを識別する段階をさらに含む請求項１１に記載の再構成可能プロセッサを利用した多重データ処理方法。
【請求項２０】
コンピュータで前記請求項１１の方法を具現するための命令語が含まれた多重データを処理するプログラムが記録されたコンピュータで読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ミニコア基盤の再構成可能プロセッサ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ）及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法に関する。
【背景技術】
【０００２】
通常、再構成可能アーキテクチャー（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ）とは、所定の作業を行うためのコンピューティング装置のハードウェア的構成をそれぞれの作業に最適化されるように変更するアーキテクチャーを意味する。再構成可能アーキテクチャーの種類は、さまざまであるが、そのうち、コースグレインアレイ（Ｃｏａｒｓｅ−Ｇｒａｉｎｅｄ  Ａｒｒａｙ；以下、ＣＧＡと称する）が代表的である。ＣＧＡは、複数個の同じコンピューティングパワーを有するファンクションユニット（Ｆｕｎｃｔｉｏｎ  Ｕｎｉｔ）からなる。そして、ファンクションユニット間の連結状態を調節することによって、所定の作業に最適化することが可能である。
【０００３】
再構成可能プロセッサは、複数個のアプリケーションドメインを処理し、ループ（ｌｏｏｐ）またはデータを加速するために、複数個の演算（Ｏｐｅｒａｔｉｏｎ）を同時に稼動できるように、アレイ（ａｒｒａｙ）構造を有するＣＧＡモードを有している。さまざまなアプリケーションドメインを支援するためには、再構成可能プロセッサに多くのイントリンジック（ｉｎｔｒｉｎｓｉｃｓ）が追加され、全体的な演算の数が増える。したがって、１つのファンクションユニットが、あらゆる演算を処理できるように設計することは、追加的なパイプラインを必要とし、性能に悪影響を及ぼす。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法を提供することである。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、再構成可能プロセッサは、互いに異なる演算を行うファンクションユニット（Ｆｕｎｃｔｉｏｎ  Ｕｎｉｔ）を含むミニコアと、ミニコアのうちからＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令語の演算を行う２つ以上のミニコアの２つ以上のファンクションユニットを活性化し、活性化された２つ以上のファンクションユニットを用いて、ＳＩＭＤ命令語を行わせる処理部と、を含みうる。
【０００６】
この際、ミニコアのうちの何れか１つに含まれた少なくとも１つのファンクションユニットは、そのミニコアのうちの少なくとも１つの他のミニコアに含まれた少なくとも１つのファンクションユニットと互いに同じ演算を行うことができる。
【０００７】
また、処理部は、ＳＩＭＤのデータタイプに基づいて、ＳＩＭＤ命令語を行う２つ以上のミニコアを決定することができる。
【０００８】
本発明の追加的な態様によれば、各ミニコアは、ＳＩＭＤ命令語の遂行結果が臨時保存されるローカルレジスタファイルをさらに含みうる。本発明の追加的な態様によれば、再構成可能プロセッサは、ミニコアを互いに連結するための外部ネットワークをさらに含みうる。また、各ミニコアは、各ファンクションユニットを連結するための内部ネットワークをさらに含みうる。
【０００９】
本発明の他の態様によれば、処理部は、ミニコアに基づいたＣＧＡ（Ｃｏａｒｓｅ  Ｇｒａｉｎｅｄ  Ａｒｒａｙ）プロセッサまたはＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサとして動作する。また、各ミニコアは、ＣＧＡプロセッサまたはＶＬＩＷプロセッサで設計基本単位または拡張基本単位と定義されうる。この際、ＣＧＡプロセッサは、ループ演算を行い、ＶＬＩＷプロセッサは、ループ演算以外の演算を行うことができる。
【００１０】
処理部は、ＳＩＭＤ命令語のデータタイプを識別し、データタイプは、相当量のデータのビットを含みうる。
【００１１】
本発明の一態様による再構成可能プロセッサを利用した多重データ処理方法は、再構成可能プロセッサのミニコアのうちからＳＩＭＤ命令語の演算を行う少なくとも２つ以上のミニコアを決定する段階と、決定されたミニコアでＳＩＭＤ命令語を行う２つ以上のファンクションユニットを活性化する段階と、を含みうる。
【００１２】
この際、各ミニコアは、互いに異なる演算を行うファンクションユニットを含みうる。また、ミニコアのうちの何れか１つに含まれた少なくとも１つのファンクションユニットは、ミニコアのうちの少なくとも１つの他のミニコアに含まれた少なくとも１つのファンクションユニットと互いに同じ演算を行うことができる。また、２つ以上のミニコアを決定する段階は、ＳＩＭＤのデータタイプに基づいて、ＳＩＭＤ命令語を行うミニコアを決定することができる。
【００１３】
本発明の追加的な態様によれば、活性化されたファンクションユニットを用いて、ＳＩＭＤ命令語を行わせる段階をさらに含みうる。また、そのＳＩＭＤ命令語の遂行結果をローカルレジスタファイルに保存する段階をさらに含みうる。
【００１４】
一方、ミニコアに基づいたＣＧＡプロセッサまたはＶＬＩＷプロセッサとして動作する段階をさらに含みうる。この際、ＣＧＡプロセッサは、ループ演算を行い、ＶＬＩＷプロセッサは、ループ演算以外の演算を行うことができる。また、相当量のデータのビットを含むＳＩＭＤ命令語のデータタイプを識別する段階をさらに含みうる。
【００１５】
本発明の一態様によれば、コンピュータで読取り可能な記録媒体は、一態様による再構成可能プロセッサを利用した多重データ処理方法をコンピュータで具現するための命令語が含まれた多重データを処理するプログラムが記録されうる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態による再構成可能プロセッサを示す図である。
【図２】本発明の他の実施形態による再構成可能プロセッサを示す図である。
【図３】本発明の一実施形態による再構成可能プロセッサのミニコアを示す図である。
【図４】本発明の一実施形態によってＣＧＡモードで構成されたＳＩＭＤ資源の例である。
【図５】本発明の一実施形態による再構成可能プロセッサを利用した多重データ処理方法のフローチャートである。
【発明を実施するための形態】
【００１７】
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。本発明の利点及び特徴、そして、それらを果たす方法は、添付される図面と共に詳細に後述されている実施形態を参照すると、明確になる。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で具現され、単に本実施形態は、本発明の開示を完全にし、当業者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によって定義されるだけである。明細書の全体に亘って同じ参照符号は、同じ構成要素を指称する。
【００１８】
以下、本発明の実施形態による柔軟な多重データ処理のための再構成可能プロセッサを、図面を参考にして詳しく説明する。
【００１９】
図１は、本発明の一実施形態による再構成可能プロセッサを示す図である。図１を参照すると、本実施形態の再構成可能プロセッサ１００は、処理部１０１及び少なくとも２つ以上のミニコア（ＭＣ  ＃０〜ＭＣ  ＃１９）を含みうる。
【００２０】
再構成可能プロセッサ１００は、同じ命令語として多数のデータを処理するＳＩＭＤを支援し、処理部１０１とミニコアは、柔軟にＳＩＭＤを構成できるように設計されうる。それぞれのミニコア（ＭＣ  ＃０〜ＭＣ  ＃１９）は、再構成可能プロセッサ１００の設計基本単位または拡張基本単位になりうる。
【００２１】
一方、それぞれのミニコアは、所定の全体コンピューティングパワー（ｆｕｌｌ  ｃｏｍｐｕｔｉｎｇ  ｐｏｗｅｒ）を有しうる。ここで、コンピューティングパワー（ｃｏｍｐｕｔｉｎｇ  ｐｏｗｅｒ）とは、演算処理能力、すなわち、如何なるシステムがどれほど多種の演算を処理できるか否かを表わす。したがって、あるシステムのコンピューティングパワーは、そのシステムが提供することができる演算の種類に基づいて定義されうる。
【００２２】
例えば、演算Ａと演算Ｂとを提供するシステムと演算Ｃと演算Ｄとを提供するシステムは、互いにコンピューティングパワーが異なると言える。また、演算Ａ、Ｂ、Ｃを提供するシステムと演算Ａ、Ｂ、Ｃ、Ｄを提供するシステムは、互いにコンピューティングパワーが異なり、特に、後者システムのコンピューティングパワーが高く、または多いと言える。参考までに、ここで例示したそれぞれの演算Ａ、Ｂ、Ｃ、及びＤは、‘加算’、‘乗算’、‘論理和’、‘論理積’などの演算になりうる。但し、これは理解を助けるための単純な例に過ぎないものであって、本実施形態の範囲が例示された演算に限定されず、その他に算術、論理、スカラー、ベクトル演算のように多様な演算にも適用されうるということは自明である。
【００２３】
それぞれのミニコア（ＭＣ  ＃０〜ＭＣ  ＃１９）は、少なくとも２つ以上のファンクションユニットを含み、各ミニコア（ＭＣ  ＃０〜ＭＣ  ＃１９）に含まれたファンクションユニットは、互いに異なる演算を行うように構成することができる。すなわち、再構成可能プロセッサ１００は、あらゆる演算を各ファンクションユニットに分割し、そのファンクションユニットの集合、すなわち、ミニコア単位でほとんどの演算を行うようにミニコアを構成することによって、各ミニコアは、全体のコンピューティングパワーを有しうる。
【００２４】
もし、１つのファンクションユニットが、ＳＩＭＤ処理であらゆる演算を処理するならば、データ処理時間が遅延され、これを解決するために、追加的なパイプラインが必要である。しかし、本実施形態のように、各ファンクションユニットに演算を分割してミニコア基盤の再構成可能プロセッサ１００を設計することによって、追加的な帯域幅や資源の必要なしに柔軟にＳＩＭＤを支援することができる。
【００２５】
処理部１０１は、多様にミニコア（ＭＣ  ＃０〜ＭＣ  ＃１９）を組み合わせることによって、如何なるＳＩＭＤ命令語に対しても支援することができる。すなわち、ＳＩＭＤのデータのタイプ（例：相当量のデータのビット）によってミニコアを決定し、その決定されたミニコアに含まれたファンクションユニットを活性化して、そのＳＩＭＤ命令語を行わせうる。この際、各ミニコアのファンクションユニットは、そのＳＩＭＤ命令語と同じ演算を行うファンクションユニットである。ＳＩＭＤ命令語を処理するその決定されたミニコアは、各ミニコアの各ファンクションユニットが処理することができるデータサイズに基づいて決定されうる。
【００２６】
例えば、ミニコアの各ファンクションユニットが、３２ｂｉｔデータを処理し、解読されたＳＩＭＤのデータタイプが、６４ｂｉｔであるＡＤＤ演算であれば、２個のミニコアに含まれたＡＤＤ演算を行うファンクションユニットを組み合わせてＳＩＭＤ命令語を行うことができる。また、ミニコアの各ファンクションユニットが、３２ｂｉｔデータを処理し、ＳＩＭＤのデータタイプが、１２８ｂｉｔであれば、４個のミニコアを組み合わせてＳＩＭＤ命令語を行うことができる。このように、本実施形態の再構成可能プロセッサは、多様なＳＩＭＤのデータタイプによって柔軟にＳＩＭＤを支援することができる。
【００２７】
一方、処理部１０１は、２種の実行モードを有しうる。例えば、処理部１０１は、ループ演算を処理するためのＣＧＡモードとループ演算以外の他の演算を処理するためのＶＬＩＷモードとを有しうる。
【００２８】
ＣＧＡモードで、処理部１０１は、ＣＧＡモジュール１１１として動作する。ＣＧＡモジュール１１１は、ＭＣ  ＃４ないしＭＣ  ＃１９の１６個のミニコアと構成メモリ１１３とを含みうる。それぞれのＭＣ  ＃４ないしＭＣ  ＃１９は、あるループ演算を並列処理することが可能である。ＭＣ  ＃４ないしＭＣ  ＃１９の連結（ｃｏｎｎｅｃｔｉｏｎ）またはネットワーク（ｎｅｔｗｏｒｋ）構造は、ＣＧＡモジュール１１１が処理しようとするループ演算の種類によって最適化されうる。ＭＣ  ＃４ないしＭＣ  ＃１９の連結構造またはネットワーク構造を表わす構成情報は、構成メモリ１１３に保存される。言い換えれば、ＣＧＡモードで、処理部１０１は、構成メモリ１１３に保存された構成情報に基づいて、ループ演算を行うＣＧＡモジュール１１１として動作する。
【００２９】
ＶＬＩＷモードで、処理部１０１は、ＶＬＩＷモジュール１１２として動作する。ＶＬＩＷモジュール１１２は、ＭＣ  ＃０ないしＭＣ  ＃３の４個のミニコアとＶＬＩＷメモリ１１４とを含みうる。それぞれのＭＣ  ＃０ないしＭＣ  ＃３は、ＶＬＩＷメモリ１１４に保存された非常に長いインストラクションをＶＬＩＷアーキテクチャーに基づいて処理する。言い換えれば、ＶＬＩＷモードで、処理部１０１は、ＶＬＩＷメモリ１１４に保存されたインストラクションに基づいて、演算を処理するＶＬＩＷモジュール１１２として動作する。
【００３０】
追加的態様によって、幾つかのミニコアは、ＶＬＩＷモード及びＣＧＡモードが共有することができる。例えば、図１で、ＭＣ  ＃０ないしＭＣ  ＃４を抜き、ＭＣ  ＃５ないしＭＣ  ＃８が、ＶＬＩＷモードでＶＬＩＷ  ｍａｃｈｉｎｅとして動作することもできる。
【００３１】
再構成可能プロセッサ１００は、モード制御部１０２及びグローバルレジスタファイル（Ｇｌｏｂａｌ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ）１１５をさらに含みうる。モード制御部１０２は、ＣＧＡモードからＶＬＩＷモードに、またはＶＬＩＷモードからＣＧＡモードに、処理部１０１の動作モードの切替えを制御する。モード制御部１０２は、所定のモード切替信号またはモード切替命令語を生成させ、処理部１０１の動作いずれもの切替えを制御するために生成された所定のモード切替信号またはモード切替命令語を処理部１０１に伝送しうる。
【００３２】
例えば、処理部１０１は、ＣＧＡモードでループ演算を処理しながらモード制御部１０２からモード切替信号を受信すれば、ＶＬＩＷモードに切替え、ループ演算ではない他の演算を処理することができる。この際、ループ実行結果は、グローバルレジスタファイル１１５に臨時保存される。また、ＶＬＩＷモードで動作中であった処理部１０１は、モード制御部１０２からモード切替制御信号を受信すれば、ＣＧＡモードに切替え、グローバルレジスタファイル１１５でコンテキスト情報を持って来て以前に処理したループ演算を引き続き処理することができる。
【００３３】
このようなモード切替えのために、グローバルレジスタファイル１１５は、モード切替時のＬｉｖｅ−Ｉｎ／Ｌｉｖｅ−Ｏｕｔデータを臨時保存する。
【００３４】
前述したように、開示された実施形態によれば、全体コンピューティングパワー、すなわち、全体演算を行うことができる能力を分割して、ファンクションユニットに分配し、そのファンクションユニットの組合わせで基本処理単位であるミニコアを設計するために、高周波（Ｈｉｇｈ  Ｆｒｅｑｕｅｎｃｙ）環境で不要な資源消耗を最小化すると同時に、性能を高めることが可能である。また、多様なＳＩＭＤ命令語を行うために、ミニコアを柔軟に組み合わせることによって、別途の資源や帯域幅の追加なしにＳＩＭＤを支援することができる。
【００３５】
図２は、本発明の一実施形態による再構成可能プロセッサを示す図である。図２を参照して、本実施形態の再構成可能プロセッサ２００を詳しく説明する。
【００３６】
再構成可能プロセッサ２００は、少なくとも２つ以上のミニコア２０１と、それぞれのミニコア２０１を連結する外部ネットワーク２０２とを含みうる。それぞれのミニコア２０１は、相互独立して命令語、作業、またはタスクなどを処理することができる。例えば、ミニコアＭＣ  ＃０とＭＣ  ＃１は、互いに依存関係のない２つの命令語を同時に処理することが可能である。また、互いに異なる２つ以上のミニコアは、同一な１つの命令語を処理することができる。この際、その２つ以上のミニコアは、同一な１つの命令語に対して多数のデータ（ＳＩＭＤ）を処理することができる。
【００３７】
それぞれのミニコア２０１は、再構成可能プロセッサ２００の設計基本単位または拡張基本単位になりうる。図２に示したように、ミニコア２０１は、必要に応じて追加的に拡張されうる。
【００３８】
外部ネットワーク２０２は、それぞれのミニコア２０１を通信可能に連結する。例えば、ＭＣ  ＃０で生成されたデータが、外部ネットワーク２０２を通じてＭＣ  ＃３に伝達されうる。外部ネットワーク２０２の構成は、構成情報（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ）によって可変である。例えば、別途のメモリ、すなわち、図１に示された構成メモリ１１３に保存された構成情報に基づいて、外部ネットワーク２０２の構成、すなわち、ミニコア１０１間の連結状態が変更されうる。
【００３９】
ミニコア２０１間のコンピューティングパワーは、同一または異なってもよい。例えば、あるミニコア（２０１）ＭＣ  ＃０は、Ａ、Ｂ、Ｃ、Ｄの演算を行い、他のミニコア（２０１）ＭＣ  ＃２は、Ａ、Ｃ、Ｅの演算を行うことができる。各ミニコア２０１は、少なくとも１つの同じ演算を行うように構成することができる。２つ以上のミニコア２０１は、ＳＩＭＤ命令語のデータタイプ（１６ｂｉｔ、３２ｂｉｔ、６４ｂｉｔ、１２８ｂｉｔなど）によって同じ演算を行うように組み合わせられる。
【００４０】
一例によれば、各ミニコア２０１は、ローカルレジスタファイル（Ｌｏｃａｌ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ、ＬＲＦ）（図示せず）を含みうる。各ミニコア２０１は、ローカルレジスタファイルを用いて、データを臨時保存することができる。
【００４１】
さらに他の追加的態様によって、再構成可能プロセッサ１００、すなわち、処理部１０１は、ＣＧＡプロセッサまたはＶＬＩＷプロセッサとして動作する。例えば、再構成可能プロセッサが、ＣＧＡモードとして動作する時には、４個のミニコア（例えば、ＭＣ  ＃３〜ＭＣ＃６）が、ＣＧＡアーキテクチャーに基づいてループ演算を処理し、ＶＬＩＷモードとして動作する時には、一部のミニコア（例えば、ＭＣ  ＃０及びＭＣ  ＃２）が、ループ以外の一般演算を処理することが可能である。
【００４２】
図３は、本発明の一実施形態による再構成可能プロセッサのミニコアを示す図である。図３に示したように、それぞれのミニコア３００は、少なくとも２つ以上のファンクションユニット３０１とそれぞれのファンクションユニット３０１を連結する内部ネットワーク３０３とを含みうる。各ファンクションユニット３０１は、スカラー演算（例：ＳＦＵ  ＃０）またはベクトル演算（例：ＶＦＵ  ＃０）を行うことができる。
【００４３】
さらに具体的に、各ミニコア３００に含まれたファンクションユニット３０１は、互いに異なる演算を行うことができる。すなわち、１つのファンクションユニット３０１を通じてアプリケーションのあらゆる演算を処理させる代りに、多くのファンクションユニットでアプリケーションの各演算を分けて行うように分配し、アプリケーションの全体演算またはほとんどの演算を行うファンクションユニットの集合を１つのミニコア３００で構成することができる。
【００４４】
一例として、演算Ａ、Ｂ、Ｃ、Ｄは、４個のファンクションユニット３０１（ＶＦＵ  ＃０〜ＶＦＵ  ＃３）で処理されるように分配されうる。この４個のファンクションユニット（ＶＦＵ  ＃０〜ＶＦＵ  ＃３）は、アプリケーションのあらゆる演算を処理するように１つのミニコア３００で構成することができる。しかし、これは、単に一実施形態に過ぎず、ファンクションユニット３０１は、多様な演算を行うように構成することができる。
【００４５】
一方、互いに異なる演算を行う多数のファンクションユニット３０１を有するミニコア３００の数は、減少または増加しうる。この際、何れか１つのミニコア３００の何れか１つのファンクションユニット３０１は、他のミニコアのファンクションユニット３０１と互いに同じ演算を行うように構成することができる。
【００４６】
内部ネットワーク３０３は、それぞれのファンクションユニット３０１を通信可能に連結する。例えば、何れか１つのファンクションユニット３０１（例：ＶＦＵ  ＃０）で生成されたデータが、内部ネットワーク３０３を通じて他のファンクションユニット３０１（例：ＶＦＵ  ＃１）に伝達されうる。内部ネットワーク３０３の構成（例：ファンクションユニット３０１間の連結状態など）は、構成情報に基づいて可変である。例えば、図１に示された構成メモリ１１３に保存された構成情報に基づいて、内部ネットワーク３０３の構成が変更されうる。
【００４７】
追加的態様によって、それぞれのミニコア３００は、各ファンクションユニット３０１に対応し、各種の処理結果を臨時保存するローカルレジスタファイル（ＬＲＦ）（図示せず）を有することもある。ミニコア３００は、ローカルレジスタファイルにＳＩＭＤ命令語の処理結果を臨時保存し、該保存された処理結果を利用することによって、別途のベクトルレジスタファイルを追加する必要なしにＳＩＭＤ処理を支援することができる。
【００４８】
図４は、本発明の一実施形態によるＣＧＡモードで柔軟に構成されたＳＩＭＤ資源の一例である。図４の（ａ）と図４の（ｂ）は、ＣＧＡモードで一定の単位サイズにＳＩＭＤを構成したことを例示したものであり、図４の（ｃ）は、ＣＧＡモードで柔軟なサイズにＳＩＭＤを構成したことを例示したものである。ＣＧＡモードで、それぞれのファンクションユニット（０〜１５）は、ＳＩＭＤ資源またはスカラー資源として活用されうる。一例として、ＳＩＭＤのデータタイプによって、図４のように多様にＳＩＭＤを構成することができる。図４の（ａ）は、解読されたデータタイプが、１２８ｂｉｔであるＳＩＭＤ資源の例であって、４個のミニコア４００ａ（ＭＣ０〜ＭＣ３）が同じコンピューティングパワー、すなわち、同じ演算処理能力を有する。
【００４９】
さらに具体的に、ミニコアＭＣ０のファンクションユニット（０、１、２、３）、ＭＣ１のファンクションユニット（４、５、６、７）、ＭＣ２のファンクションユニット（８、９、１０、１１）、及びＭＣ３のファンクションユニット（１２、１３、１４、１５）は、それぞれ同じ演算（Ａ、Ｂ、Ｃ、Ｄ）を行うことができる。もし、各ファンクションユニットが、３２ｂｉｔデータを処理し、解読された命令語のデータタイプが、１２８ｂｉｔであるＳＩＭＤ命令語（Ａ）である場合、４個のミニコア（ＭＣ０〜ＭＣ３）のファンクションユニット（０、４、８、１２）を用いて処理することができる。
【００５０】
図４の（ｂ）は、データタイプが、６４ｂｉｔであるＳＩＭＤ資源を例示したものであって、２つのミニコア４００ｂ（ＭＣ０とＭＣ１またはＭＣ２とＭＣ３）の同じ演算を行うファンクションユニットを用いて、６４ｂｉｔデータ処理のためのＳＩＭＤ資源を構成することができる。例えば、ミニコアＭＣ０とＭＣ１とのファンクションユニット０と４は、ＳＩＭＤ資源で組み合わせられて、ＳＩＭＤ命令語の演算Ａを処理するように利用されうる。
【００５１】
一方、他の態様によれば、図４の（ｃ）は、解読されたＳＩＭＤ命令語に基づいて柔軟に構成されたＳＩＭＤ資源４００ｃを表わしたものであって、互いに異なる数の各ミニコア（ＭＣ０〜ＭＣ３）に含まれた同じ演算を行うファンクションユニットは、柔軟なＳＩＭＤ資源４００ｃを構成するために、ＳＩＭＤ命令語に基づいて組み合わせられる。
例えば、ミニコアＭＣ０ないしＭＣ３のファンクションユニット０、４、８、１２は、互いに異なる演算を行い、１つのＳＩＭＤ資源で組み合わせられない。ミニコアＭＣ０ないしＭＣ３のファンクションユニット１、５、９、１３は、互いに同じ演算を行い、ＭＣ０とＭＣ１とのファンクションユニット２と６、及びＭＣ２とＭＣ３とのファンクションユニット１０、１４は、互いは同じ演算を行う。また、ミニコアＭＣ０ないしＭＣ３のファンクションユニット３、７、１１、及び１５は、同じ演算を行う。したがって、このようなファンクションユニットのそれぞれは、ＳＩＭＤ資源４００ｃを構成することができる。
【００５２】
他の態様によれば、ＶＬＩＷモードで柔軟にＳＩＭＤ資源を構成することができる。ＶＬＩＷモードで、柔軟なＳＩＭＤ構成の動作原理は、発行された命令語を解読して獲得された演算が３２ｂｉｔであり、各ファンクションユニットが、３２ｂｉｔを処理できるならば、対応するファンクションユニットは、解読された演算を行う。もし、獲得された演算が、６４ｂｉｔ以上であれば、２つ以上のミニコアのファンクションユニットを組み合わせて演算を処理することができる。他の例として、ＳＩＭＤ命令語に含まれた１２８ｂｉｔ演算の場合、ミニコア４個のファンクションユニットを用いて行うことができる。
【００５３】
一般的に、同じ演算を行うグループを一回に集めてベクトル単位で処理することによって、データの並列性を高めてデータ処理能を高めるためには、データ経路の帯域幅（ｂａｎｄｗｉｄｔｈ）を増やさなければならないが、本実施形態によれば、データタイプによって、柔軟に各ミニコアのファンクションユニットを互いに連結してＳＩＭＤを構成することによって、別途のデータ経路の幅を増やす必要なしに処理することができる。
【００５４】
本実施形態による柔軟なＳＩＭＤ構成のための再構成可能プロセッサは、前述したように、ファンクションユニットの処理結果をローカルレジスタファイル（図示せず）に保存することができる。したがって、ベクトルタイプを支援するために、別途のベクトルレジスタファイル及び並列処理のための追加的な資源が必要ではなく、与えられたローカルレジスタファイル及び資源を用いて柔軟なＳＩＭＤを支援することができる。
【００５５】
図５は、本発明の一実施形態による再構成可能プロセッサを利用した多重データ処理方法のフローチャートである。図５を参照して、再構成可能プロセッサを利用した多重データ処理方法を説明する。
【００５６】
多重データ処理方法は、まず、再構成可能プロセッサの処理部１０１は、発行されたＳＩＭＤ命令語を解読（ｄｅｃｏｄｅ）して、データタイプ（例：データのビット数）を確認する（段階５１０）。次いで、処理部１０１は、解読されたＳＩＭＤ命令語のデータタイプに基づいてＳＩＭＤ命令語を行うミニコアを決定し、ミニコアを組み合わせることができる（段階５２０）。各ミニコアに含まれたファンクションユニットで処理することができるデータサイズによってＳＩＭＤ命令語を処理するミニコアの数を柔軟に構成することによって、多様なデータタイプのＳＩＭＤ命令語の処理が可能である。
【００５７】
例えば、各ファンクションユニットが、３２ｂｉｔのデータを処理し、解読されたＳＩＭＤ命令語のデータタイプが、６４ｂｉｔであれば、ＳＩＭＤ命令語を行う２個のミニコアを決定する。すなわち、データタイプが、６４ｂｉｔであれば、２個のミニコアを含むＳＩＭＤ資源は、図４の（ｂ）に例示されたように構成することができる。他の例として、各ファンクションユニットが、３２ｂｉｔのデータを処理し、データタイプが、１２８ｂｉｔであれば、４個のミニコアが決定される。すなわち、データタイプが、１２８ｂｉｔであれば、図４の（ａ）のように、ＳＩＭＤ資源を構成することができる。一方、図４の（ｃ）のように、ある再構成可能プロセッサで多様なＳＩＭＤ命令語を処理するために、互いに異なる数のミニコア４００ｃを連結して柔軟なＳＩＭＤ資源を構成することも可能である。
【００５８】
次いで、処理部１０１は、決定されたミニコアのファンクションユニットを活性化させうる（段階５３０）。この際、各ミニコアの活性化されたファンクションユニットは、互いに同じ演算を行うことができる。例えば、図４の（ａ）を参照すると、４個のミニコア（ＭＣ０〜ＭＣ３）が、同じコンピューティングパワー、すなわち、同じ演算処理能力を有する。すなわち、ミニコアＭＣ０のファンクションユニット（０、１、２、３）、ＭＣ１のファンクションユニット（４、５、６、７）、ＭＣ２のファンクションユニット（８、９、１０、１１）、及びＭＣ３のファンクションユニット（１２、１３、１４、１５）は、それぞれ同じ演算（Ａ、Ｂ、Ｃ、Ｄ）を行うことができる。図４の（ｃ）を参照すると、ミニコアＭＣ０ないしＭＣ３のファンクションユニット０、４、８、１２は、互いに異なる演算を行い、ＭＣ０ないしＭＣ３のファンクションユニット１、５、９、１３は、互いに同じ演算を行い、ＭＣ０とＭＣ１とのファンクションユニット２と６、及びＭＣ２とＭＣ３とのファンクションユニット１０、１４は、互いは同じ演算を行うことができる。また、ミニコア（ＭＣ０〜ＭＣ３）のファンクションユニット３、７、１１、及び１５は、互いに同じ演算を行う。したがって、このファンクションユニットは、それぞれＳＩＭＤ資源４００ｃを構成するために組み合わせられ、各ＳＩＭＤ命令語を処理するために活性化されうる。
【００５９】
次いで、処理部１０１は、活性化されたファンクションユニットを通じてＳＩＭＤ命令語を行い、その演算結果をローカルレジスタファイルに記録することができる（段階５４０）。
【００６０】
一方、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
【００６１】
コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またキャリアウェーブ（例えば、インターネットを介した伝送）の形態で具現するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的な（ｆｕｎｃｔｉｏｎａｌ）プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
【００６２】
当業者なら、本発明が、その技術的思想や必須的な特徴を変更せずとも、他の具体的な形態で実施されることを理解できるであろう。したがって、前述した実施形態は、あらゆる面で例示的なものであり、限定的ではないということを理解しなければならない。本発明の範囲は、前記詳細な説明よりは後述する特許請求の範囲によって表わされ、特許請求の範囲の意味及び範囲、そして、その均等概念から導出されるあらゆる変更または変形された形態が、本発明の範囲に含まれると解析しなければならない。
【産業上の利用可能性】
【００６３】
本発明は、ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法関連の技術分野に適用可能である。
【符号の説明】
【００６４】
１００  再構成可能プロセッサ
１０１  処理部
１１１  ＣＧＡモジュール
１１２  ＶＬＩＷモジュール
１１３  構成メモリ
１１４  ＶＬＩＷメモリ
１１５  グローバルレジスタファイル
２００  再構成可能プロセッサ
２０１  ミニコア
２０２  外部ネットワーク
３００  ミニコア
３０１  ファンクションユニット
３０３  内部ネットワーク
【図１】
2013246816.tif 000003
【図２】
2013246816.tif 000004
【図３】
2013246816.tif 000005
【図４】
2013246816.tif 000006
【図５】
2013246816.tif 000007