(57)【特許請求の範囲】
【請求項１】
仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）又はアプリケーションのランタイム（Ｒｕｎｔｉｍｅ）特徴を検出し、前記検出されたランタイム特徴に対応する前記アプリケーション又は前記仮想マシンと関連した加速器ロジックを特定（ｉｄｅｎｔｉｆｙ）する検出器と、
前記特定された加速器ロジックを少なくとも１つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のアレイ（Ａｒｒａｙ）にロード（Ｌｏａｄ）するローダーと、を含み、
前記少なくとも１つのＤＲＡＭの前記アレイは、前記特定された加速器ロジックに基づいてＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）として動作するか、又は、ＤＲＡＭメモリアレイとして動作するか、選択的に再構成可能であることを特徴とする加速器コントローラ。
【請求項２】
前記少なくとも１つのＤＲＡＭをさらに含むことを特徴とする請求項１に記載の加速器コントローラ。
【請求項３】
前記少なくとも１つのＤＲＡＭの前記アレイは、オペレーティングシステム環境のキャッシュ一貫性（Ｃａｃｈｅ−Ｃｏｈｅｒｅｎｔ）アドレス空間内にあることを特徴とする請求項１に記載の加速器コントローラ。
【請求項４】
前記ランタイム特徴は、前記アプリケーション又は前記仮想マシンの予め定義されたＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）に基づくことを特徴とする請求項１に記載の加速器コントローラ。
【請求項５】
前記ランタイム特徴は、機能活用度（Ｆｕｎｃｔｉｏｎ  Ｕｔｉｌｉｚａｔｉｏｎ）、中央処理（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ）活用度、メモリ活用度、そして前記アプリケーション又は前記仮想マシンと関連されたレイテンシ（Ｌａｔｅｎｃｙ）の中の少なくとも１つに基づくことを特徴とする請求項１に記載の加速器コントローラ。
【請求項６】
前記加速器ロジックは、前記ＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）を含むことを特徴とする請求項１に記載の加速器コントローラ。
【請求項７】
前記少なくとも１つのＤＲＡＭの前記アレイは、ＤＩＭＭ（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）の一部であることを特徴とする請求項１に記載の加速器コントローラ。
【請求項８】
前記ＤＩＭＭは、前記ＬＵＴ又は前記ＤＲＡＭメモリアレイのように動作するように選択的に再構成可能ではない少なくとも１つのＤＲＡＭのアレイをさらに含むことを特徴とする請求項７に記載の加速器コントローラ。
【請求項９】
前記特定された加速器ロジックは、ロード（Ｌｏａｄ）及び格納コマンドを使用して前記少なくとも１つのＤＲＡＭの前記アレイ内にロード（Ｌｏａｄ）されることを特徴とする請求項１に記載の加速器コントローラ。
【請求項１０】
アプリケーション又は仮想マシンのランタイム特徴を検出する検出器と、
前記検出されたランタイム特徴に対応する加速器ロジックを少なくとも１つのＤＲＡＭのアレイ（Ａｒｒａｙ）にロード（Ｌｏａｄ）するローダーと、を含み、
前記ランタイム特徴は、前記アプリケーション又は前記仮想マシンの予め定義されたＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、機能活用度、中央処理活用度、メモリ活用度、そして前記アプリケーション又は前記仮想マシンと関連したレイテンシの中の少なくとも１つに基づき、
前記少なくとも１つのＤＲＡＭの前記アレイは、前記加速器ロジックに基づいて、ＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）として動作するか、ＤＲＡＭメモリアレイとして動作するか、選択的に再構成可能であることを特徴とする加速器コントローラ。
【請求項１１】
前記検出器は、前記検出されたランタイム特徴に対応する前記アプリケーション又は前記仮想マシンと関連された前記加速器ロジックを特定することを特徴とする請求項１０に記載の加速器コントローラ。
【請求項１２】
前記少なくとも１つのＤＲＡＭの前記アレイは、オペレーティングシステム環境のキャッシュ一貫性アドレス空間内にあることを特徴とする請求項１０に記載の加速器コントローラ。
【請求項１３】
前記加速器ロジックは、前記ＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）を含むことを特徴とする請求項１０に記載の加速器コントローラ。
【請求項１４】
前記少なくとも１つのＤＲＡＭの前記アレイは、ＤＩＭＭ（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）の一部であることを特徴とする請求項１０に記載の加速器コントローラ。
【請求項１５】
前記ＤＩＭＭは、ＬＵＴ又はＤＲＡＭメモリのアレイのように動作するように選択的に再構成可能ではない少なくとも１つのＤＲＡＭのアレイをさらに含むことを特徴とする請求項１４に記載の加速器コントローラ。
【請求項１６】
加速器コントローラは検出器とローダーを含み、
前記検出器が、ＯＳ環境内において実行されるアプリケーション又は仮想マシンのランタイム特徴を検出する段階と、
前記検出器が、前記検出されたランタイム特徴に対応する加速器ロジックを特定する段階と、
ローダーが、ロード（Ｌｏａｄ）及び格納コマンドを使用して前記特定された加速器ロジックを少なくとも１つのＤＲＡＭのサブアレイ（Ｓｕｂ−ａｒｒａｙ）内にロード（Ｌｏａｄ）する段階と、を含み、
前記少なくとも１つのＤＲＡＭの前記サブアレイは、選択的にＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）として動作するか、ＤＲＡＭメモリアレイとして動作するか、選択的に再構成可能であることを特徴とする加速器ロジックローディング方法。
【請求項１７】
前記少なくとも１つのＤＲＡＭの前記サブアレイは、前記ＬＵＴのように動作するように構成され、
前記少なくとも１つのＤＲＡＭの前記サブアレイは、オペレーティングシステム環境のキャッシュ一貫性アドレス空間内にあり、
前記少なくとも１つのＤＲＡＭの前記サブアレイは、ＤＩＭＭの一部であり、
前記検出されたランタイム特徴は、前記アプリケーション又は前記仮想マシンの予め定義されたＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、機能活用度、中央処理活用度、メモリ活用度、そして前記アプリケーション又は前記仮想マシンと関連されたレイテンシの中の少なくとも１つに基づくことを特徴とする請求項１６に記載の加速器ロジックローディング方法。
【請求項１８】
前記加速器ロジックは、前記ＬＵＴを含むことを特徴とする請求項１６に記載の加速器ロジックローディング方法。
【請求項１９】
前記特定された加速器ロジックは、前記加速器コントローラによって前記少なくとも１つのＤＲＡＭの前記サブアレイにロードされることを特徴とする請求項１６に記載の加速器ロジックローディング方法。
【請求項２０】
前記特定された加速器ロジックは、前記アプリケーション又は前記仮想マシンによって前記少なくとも１つのＤＲＡＭにロードされることを特徴とする請求項１６に記載の加速器ロジックローディン方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステム構造に係り、より詳しくは、加速器コントローラ及びその加速器ロジックローディング方法に関する。
【背景技術】
【０００２】
従来のプロセシング加速器（Ｐｒｏｃｅｓｓｉｎｇ  Ａｃｃｅｌｅｒａｔｏｒ）は効率的な加速器ロジックを提供するためにＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）又はＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のようなＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によって具現される。データセンターとモバイル装置向けのアプリケーションはますますデータ集中型になっており、プロセシング加速器を使用するアプリケーションに対して、従来のメモリ階層（Ｈｉｅｒａｒｃｈｙ）は良い性能とエネルギー効率とを提供できなかった。従来のメモリ階層内のプロセシング加速器の最大効率はオフチップ（即ち、非ＣＰＵ）メモリアクセス等によって低下する。効率を改善するため、メモリ近傍に加速器ロジックを設置しても、高い費用と性能が次善に過ぎないとの理由により、今まで限定的な成功のみしか達成できなかった。さらに、仮に加速器ロジックがＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のようなメモリの近傍に具現される場合、ＤＲＡＭ半導体ダイ（Ｄｉｅ）上に集積された非ＤＲＡＭである加速器ロジックによってＤＲＡＭ容量が減少する。
【０００３】
一般的に、ＰＬＤは再構成が可能なデジタル回路を構成するために使用される電子的な構成要素である。一般的に、機能が固定されるロジックゲート又はロジック回路と異なり、ＰＬＤは伝統的に製造の時には定義されない機能を有する。また、しばしばＰＬＤが回路に使用される前に、ＰＬＤは望む機能を遂行するためにプログラムされるか、或いは再構成されなければならない。
【０００４】
伝統的に、ＰＬＤはロジック装置及びメモリ装置の組合せを含む。メモリは一般的に望む機能を定義するプログラミングパターンを格納するために使用される。集積回路内にデータを格納するのに使用される大部分のテクニックは、シリコンアンチヒューズ（Ｓｉｌｉｃｏｎ  Ａｎｔｉ−Ｆｕｓｅｓ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  ＥＰＲＯＭ）、そして不揮発性ＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  ＲＡＭ）等のようにＰＬＤ内において使用されるために変更されて適用されて来た。大部分のＰＬＤは一般的にＰＬＤ内部の変更するべき（ｔｏ  ｂｅ  ｍｏｄｉｆｉｅｄ）シリコン領域にわたって特別な電圧（非通常動作電圧すなわち高電圧）を印加してプログラムされる構成要素を含む。このような特別な電圧は、使われる技術に依存するが、よって電気的連結を切るか、繋ぐかにより、ＰＬＤの電気回路のレイアウト（Ｌａｙｏｕｔ）を変更する。
【０００５】
ＰＬＤの最も共通的なタイプの１つはＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。ＦＰＧＡは生産された後に顧客又は設計者によって構成されるように設計された集積回路である。このような意味により“Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ（現場でプログラムできる）”と称する。ＦＰＧＡはプログラム可能なロジックブロックのアレイ、及びブロックをワイヤドＯＲにより互いに連結するようにする再構成可能なインターコネクト（Ｉｎｔｅｒｃｏｎｎｅｃｔ）の階層を含む。ＦＰＧＡのロジックブロックは、複雑な組合せ論理関数、又は、ＡＮＤ、ＸＯＲ等の単純なロジックゲートを具現するように構成される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許公開第２０１４／８１４５０３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は上述した技術的課題を解決するためのものであって、本発明の目的は検出器とローダーとを含む加速器コントローラ及びその加速器ロジックローディング方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の実施形態に係る加速器コントローラは検出器とローダーとを含む。検出器は仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）又はアプリケーションのランタイム（Ｒｕｎｔｉｍｅ）特徴を検出し、検出されたランタイム特徴に対応するアプリケーション又は仮想マシンと関連した加速器ロジックを特定（ｉｄｅｎｔｉｆｙ）する。ローダーは特定された加速器ロジックを少なくとも１つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）にロード（Ｌｏａｄ）する。少なくとも１つのＤＲＡＭのアレイ（Ａｒｒａｙ）は特定された加速器ロジックに基づいてＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）として動作するか、又はＤＲＡＭメモリアレイとして動作するか、選択的に再構成可能である。
【０００９】
本発明の他の実施形態に係る加速器コントローラは、検出器とローダーとを含む。検出器はアプリケーション又は仮想マシンのランタイム特徴を検出する。ローダーは検出されたランタイム特徴に対応する加速器ロジックを少なくとも１つのＤＲＡＭにロード（Ｌｏａｄ）する。ここで、前記のランタイム特徴は、アプリケーション又は仮想マシンの予め定義されたＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、機能活用度、中央処理活用度、メモリ活用度、そしてアプリケーション又は仮想マシンと関連したレイテンシの中の少なくとも１つに基づく。また、前記少なくとも１つのＤＲＡＭのアレイ（Ａｒｒａｙ）はランタイム特徴により特定された加速器ロジックに基づいて、ＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）として動作するか、ＤＲＡＭメモリアレイとして動作するか、選択的に再構成される。
【００１０】
本発明の他の実施形態に係る方法は、ＯＳ環境内において実行されるアプリケーション又は仮想マシンのランタイム特徴を検出する段階、検出されたランタイム特徴に対応する加速器ロジックを特定する段階、そしてロード（Ｌｏａｄ）及び格納コマンドを使用して特定された加速器ロジックを少なくとも１つのＤＲＡＭのサブアレイ（Ｓｕｂ−ａｒｒａｙ）内にロード（Ｌｏａｄ）する段階を含む。
【発明の効果】
【００１１】
本発明の実施形態によれば、ＤＲＡＭ基盤の再構成可能なロジックが提供される。提供されたロジックによって、従来のＦＰＧＡに比べて高い密度、低い費用、そしてさらによい柔軟性（Ｆｌｅｘｉｂｉｌｉｔｙ）が提供される。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る再構成可能なメモリロジック装置を示す図面である。
【図２】本発明の他の実施形態に係る再構成可能なメモリロジック装置を示すブロックダイヤグラムである。
【図３】本発明に係る１つ以上のＤＲＡＭ−ＦＰＧＡを含むＤＩＭＭを示すブロック図である。
【図４】本発明に係るメモリチャンネル内において１つ以上のＤＲＡＭ−ＦＰＧＡを使用するシステム構造を示す機能ブロック図である。
【図５】本発明に係る仮想マシン又はアプリケーションのランタイム特徴を検出し、再構成可能なＤＲＡＭサブアレイ内の仮想マシン又はアプリケーションに対応する加速器ロジックを格納する方法を示す順序図である。
【図６】本発明に係るメモリチャンネル内において１つ以上のＤＲＡＭ−ＦＰＧＡを使用するＱＰＩ基盤のシステム構造を示すブロック図である。
【図７】本発明に係るメモリチャンネル内において１つ以上のＤＲＡＭ−ＦＰＧＡを含むシステム構造を使用できる情報処理システムを示す機能ブロック図である。
【発明を実施するための形態】
【００１３】
以下においては、本発明の技術分野の通常の知識を有する者が本発明を容易に実施できる程度に、本発明の実施形態を明確かつ詳細に説明する。
【００１４】
本明細書に記載された技術的な特徴はメモリチャンネル内に１つ以上のＤＲＡＭ−ＦＰＧＡ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  ａｒｒａｙ）を使用するシステム構造に関する。ＤＲＡＭ−ＦＰＧＡは選択的に再構成可能なＤＲＡＭセルアレイをＬＵＴ（Ｌｏｏｋｕｐ  Ｔａｂｌｅ）に使用し、再構成可能なロジックをメモリ近傍に具現する。また、ＤＲＡＭ−ＦＰＧＡは任意のロジックデザインにより再構成可能である。
【００１５】
さらに、このようなＤＲＡＭ基盤の再構成可能なロジックはＤＲＡＭ製造工程と互換され、インメモリ（Ｉｎ−Ｍｅｍｏｒｙ）プロセシングに対する１つの良い候補である。従来のＦＰＧＡと比較して、ＤＲＡＭ基盤の再構成可能なロジックはより高い密度（Ｄｅｎｓｉｔｙ）、低い費用、そしてさらによい柔軟性（Ｆｌｅｘｉｂｉｌｉｔｙ）を提供する。即ち、さらによい柔軟性はウェアハウススケール（Ｗａｒｅｈｏｕｓｅ−Ｓｃａｌｅ）のデータセンター内の他の演算ノード（Ｎｏｄｅ）の間における速い移動（Ｍｉｇｒａｔｉｏｎ）を提供する自体変形（Ｓｅｌｆ−Ｍｏｄｉｆｙ）及び速い動的再構成を意味する。
【００１６】
ＦＰＧＡの形態を有するＰＬＤを使用する従来のシステム構造は一般的にＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−ｅｘｐｒｅｓｓ）スロット内にＦＰＧＡを位置させる。ＰＣＩｅスロットはキャッシュ一貫性（Ｃａｃｈ−Ｃｏｈｅｒｅｎｔ）アドレス空間に位置せず、低い通信バンド幅（Ｂａｎｄｗｉｄｔｈ）を提供する。また、ＰＣＩｅスロット内のＦＰＧＡ内の加速器ロジックの動作はドライバーによって提供される明示的な命令によって遂行される。
【００１７】
図１は本発明の実施形態に係る再構成可能なメモリロジック装置１００を示す図面である。再構成可能なメモリロジック装置１００はＬＵＴ（Ｌｏｏｋ−ｕｐ  Ｔａｂｌｅ）モード又は正規（Ｒｅｇｕｌａｒ）ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）モードの２つのモードにより動作するように構成され、連結される。再構成可能なメモリロジック装置１００は１つ以上のサブアレイ１０１、Ｉ／Ｏインターフェイス１０２、及び構成インターフェイス１０３を含む。サブアレイ１０１は複数の行及び列に整列される。サブアレイ１０１の各々は多数のメモリセル（図示せず）を含み、多数のメモリセルはまた複数の行及び列アレイに整列される。再構成可能なメモリロジック装置１００は図１に図示されない他の構成要素及び／又は部品を含む。
【００１８】
一実施形態として、サブアレイ１０１はＤＲＡＭを含む。ＬＵＴ又は従来のＤＲＡＭサブアレイのように動作するために、１つ以上のサブアレイ１０１は一般的なメモリアクセス動作を利用して選択的に再構成されるか、或いは再びプログラムされる。再構成可能なメモリロジック装置１００はここでＦＰＧＡとして示す。ＤＲＡＭを含むサブアレイ１０１を含む再構成可能なメモリロジック装置１００の実施形態に対して、再構成可能なメモリロジック装置１００は本明細書において“ＤＲＡＭ−ＦＰＧＡ”と称する。
【００１９】
一実施形態として、ＬＵＴ又はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により構成されたサブアレイ１０１の数は必要によって動的に調整される。他の実施形態として、１つ以上のサブアレイ１０１は再構成が不可能であるか、或いは従来のメモリサブアレイのように構成される反面、１つ以上のサブアレイ１０１はＬＵＴ又は従来のメモリサブアレイのように動作するために再構成される。ＬＵＴ又は従来のメモリサブアレイのように動作するように再構成可能なサブアレイはＲＬＵＴ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  ＬＵＴ）サブアレイと称する。
【００２０】
仮にサブアレイ１０１がＬＵＴのように動作するように構成される場合、ＬＵＴ動作は算術論理機能（足し算、掛け算等）、ロジック機能（ＡＮＤ、ＯＲ、ＸＯＲ等）、又はこれらの組合せ等のロジック機能を具現する。但し、本発明はこれに制限されない。ロジック機能はサブアレイ上にメモリ書込み動作又は特別な書込み動作を遂行することによって変更される。したがって、再構成可能なメモリロジック装置１００の動作中に、ロジック機能は動的に再構成されるか、或いは変更される。特別な書込み動作は書込み動作が特定サブアレイと連関されることを表示する識別子を含む。従来の書込み動作（又は類似な動作）の使用はＥＥＰＲＯＭ等のプログラムのために使用されるような特別な電圧（非動作電圧又は高い電圧）の必要無しでも選択されたサブアレイ１０１が再プログラミングされるようにする。
【００２１】
ＲＬＵＴサブアレイ及びＲＡＭサブアレイの混合（Ｃｏ−ｍｉｎｇｌｉｎｇ）は幾つか長所を提供する。例えば、ＲＡＭサブアレイ内に格納されたデータに隣接する場合、ＲＬＵＴサブアレイによって遂行される計算が速くなり、電力要求量が減少する。これはデータが個別の構成要素の間のバスを通じて移動する必要がないためである。さらに、一実施形態として、１つ以上のサブアレイ１０１は１回によりアクセスされる。したがって、パワー消耗及び再構成可能なメモリロジック装置１００の計算複雑度が減少する。このように、ＤＲＡＭ  ＲＬＵＴによって提供される近距離データコンピューティングはさらに速くてさらに効率的である。
【００２２】
プロセッサ（図示せず）とメモリ（図示せず）とを製造するために使用されたのと類似するＤＲＡＭ技術上のＲＬＵＴサブアレイに基づき、ＲＬＵＴサブアレイはプロセッサ及び／又はメモリとして同一ダイ（Ｄｉｅ）又はパッケージ内に存在する。同一の製造工程を使用すれば、本発明に係る１つのメモリチャンネル内に１つ以上のＲＬＵＴを使用するシステムの製造費用が低下できる。さらに、ＤＲＡＭサブアレイ上のＲＬＵＴサブアレイに基づくことによって、ＳＲＡＭ基盤のＦＰＧＡの密度と比較して相対的に高密度が達成される。例えば、ＳＲＡＭ基盤のＦＰＧＡがメモリセル又はビット単位の情報当たり（Ｐｅｒ）６個のトランジスタ６Ｔを要求する反面、ＤＲＡＭ基盤のＲＬＵＴはメモリセル又はビット単位の情報当たり（Ｐｅｒ）単に１つのトランジスタ及び１つのキャパシター１Ｔ１Ｃを要求する。その上、ＤＲＡＭ基盤のＲＬＵＴはＳＲＡＭ又はフラッシュ基盤のＦＰＧＡと比較して費用を低下させる。
【００２３】
Ｉ／Ｏインターフェイス１０２は選択されたサブアレイ１０１を読み出すか、或いは書き込むように構成される。書込みアクセスはサブアレイ１０１に対する書込み動作を含む。これはサブアレイ１０１がＬＵＴとして動作するか否か又は従来のＤＲＡＭサブアレイとして動作するか否かを定義するためである。一部の実施形態において、すべてのメモリアクセス又は動作はＩ／Ｏインターフェイス１０２を通過する。仮にメモリアクセスがＲＡＭサブアレイ又はＲＡＭサブアレイとして構成されたＲＬＵＴサブアレイのリバイバル（Ｒｅｖｉｖａｌ）のためにデータを格納するサブアレイに対するアクセスである場合、Ｉ／Ｏインターフェイス１０２は単純に従来のメモリアクセスとして読出し／書込み要請を処理する。しかし、仮にメモリアクセスがＬＵＴとして構成されたＲＬＵＴサブアレイに対するアクセスである場合、Ｉ／Ｏインターフェイス１０２はプロセシングするためにメモリアクセスを構成インターフェイス１０３に通過させる。
【００２４】
構成インターフェイス１０３は全体的に再構成可能なメモリロジック装置１００内の信号のルーティング（Ｒｏｕｔｉｎｇ）を調整するか、又は各々のサブアレイ１０１内の信号のルーティングを調整するよう構成される。例えば、構成インターフェイス１０３はＲＬＵＴ及び／又はＲＡＭにより構成された複数のサブアレイ１０１の間の信号のルーティングを調整するように構成される。一実施形態として、Ｉ／Ｏインターフェイス１０２はサブアレイ１０１に対するデータアクセスを管理するように構成される。例えば、一実施形態として、Ｉ／Ｏインターフェイス１０２はプロセッサ（図示せず）から構成情報を受信する。構成情報はサブアレイ１０１に対するＩ／Ｏアクセスを制御するためにＩ／Ｏインターフェイス１０２を構成するのに使用され、これにサブアレイ１０１内のメモリの位置はアドレス化可能な（Ａｄｄｒｅｓｓａｂｌｅ）レジスターとして示される。構成インターフェイス１０３は各々のサブアレイ１０１の間のインターコネクト（Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）と信号ルーティングとを管理するように構成される。例えば、このようなインターコネクトと信号ルーティングとはポイントツーポイント（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ）ルーティング、アドレス基盤のルーティング、又はこれらの組合せ等によって構成される。例えば、一実施形態として、構成情報は構成インターフェイス１０３を構成するのに使用されるＩ／Ｏインターフェイス１０２によって受信され、これにサブアレイ１０１は複数のサブアレイ１０１にわたって複雑な論理動作を遂行する。一実施形態として、Ｉ／Ｏインターフェイス１０２は構成インターフェイス１０３を含む。
【００２５】
メモリアクセスは特定サブアレイ１０１内のルックアップテーブル（Ｌｏｏｋ−ｕｐ  Ｔａｂｌｅ）を格納する書込み動作を含む。また、メモリアクセスはＬＵＴの大きさにしたがって一連のメモリアクセスを含む。一部の実施形態において、特定メモリアクセスはＬＵＴに対する入力数とＬＵＴからの出力数を示す。また、追加的なメモリアクセスはサブアレイ１０１に対する信号ルーティング情報及び／又は２つ以上のサブアレイ１０１がロジック機能（加算器等）を遂行するためにカスケード（Ｃａｓｃａｄｅ）されているか、或いは共にルーティングされているか否かを示す。サブアレイ１０１によって提供される論理機能の詳細説明は本明細書の参考として引用した特許文献１に開示されている。又は、メモリアクセスはサブアレイ１０１を従来のＲＡＭサブアレイとして動作するように再構成する書込み動作を含む。
【００２６】
図２は本発明の他の実施形態に係る再構成可能なメモリロジック装置２００を示すブロックダイヤグラムである。図２を参照すれば、再構成可能なメモリロジック装置２００は独立したダイ（Ｄｉｅ）や単一ダイの一部として具現される。単一ダイの一部として具現される場合、再構成可能なメモリロジック装置２００は共有ダイ（システムオンチップ、プロセッサキャッシュ等）上において他の構成要素（図示せず）と共に集積される。但し、共有ダイの種類はこれに限定されない。再構成可能なメモリロジック装置２００は１つ以上のサブアレイ２０１、複数の通信バス２０２、入力信号パッド２０３、そして出力信号パッド２０４を含む。再構成可能なメモリロジック装置２００はバス基盤のインターコネクションとルーティング方式により具現される。通信バス２０２はサブアレイ２０１の間のルーティング方式がサブアレイ２０１の間の信号を再びルーティングするために動的に変更されるようにする。
【００２７】
仮にサブアレイ２０１がＬＵＴのように動作するように構成される場合、ＬＵＴ動作は算術論理機能（足し算、掛け算等）、ロジック機能（ＡＮＤ、ＯＲ、ＸＯＲ等）、又はこれらの組合せ等のロジック機能を具現する。サブアレイ２０１によって提供される数ある論理機能の詳細説明は本明細書の参考に引用された特許文献１に開示されている。ロジック機能はサブアレイ２０１にメモリ書込み動作又は特別な書込み動作を遂行して変更される。したがって、これは再構成可能なメモリロジック装置２００の動作の中においてロジック機能を動的に再構成するか、或いは変更する。特別な書込み動作は書込み動作が特定サブアレイと連関されることを表示する識別子を含む。
【００２８】
一実施形態にしたがって、図１の１つ以上のサブアレイ１０１及び／又は図２の１つ以上の再構成可能なメモリロジック装置２００はＤＩＭＭ（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）内において使用される。即ち、１つ以上の正規ＤＲＡＭモジュールと共に、ＤＩＭＭは１つ以上のＤＲＡＭ−ＦＰＧＡモジュール、１つ以上のＲＬＵＴモジュール、１つ以上のＤＲＡＭ−ＦＰＧＡモジュールと１つ以上のＲＬＵＴモジュールとの組合せ、又は１つ以上のＤＲＡＭ−ＦＰＧＡモジュール及び／又は１つ以上のＲＬＵＴモジュールの組合せを含むように構成される。
【００２９】
図３（ａ）乃至（ｄ）は本発明に係る１つ以上のＤＲＡＭ−ＦＰＧＡを含むＤＩＭＭを示すブロック図である。
【００３０】
図３（ａ）を参照すれば、ＤＩＭＭ３００は複数のＤＲＡＭ−ＦＰＧＡモジュール３０１を含む。ここで、４つのＤＲＡＭ−ＦＰＧＡモジュール３０１を図示した。したがって、ＤＩＭＭ３００の特定実施形態に対して、すべてのモジュール位置はＤＲＡＭ−ＦＰＧＡモジュール３０１によって満たされる。又は、すべてのモジュール位置はＲＬＵＴモジュールによって満たされ、ＲＬＵＴモジュールの各々はＲＬＵＴ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）を含む。
【００３１】
図３（ｂ）を参照すれば、ＤＩＭＭ３１０は１つ以上のＤＲＡＭ−ＦＰＧＡモジュール３０１と１つ以上の正規ＤＲＡＭモジュール３０２とを含む。ここで、２つのＤＲＡＭ−ＦＰＧＡモジュール３０１と２つの正規ＤＲＡＭモジュール３０２とを図示した。ＤＩＭＭ３１０の特定実施形態に対して、ＤＲＡＭ−ＦＰＧＡモジュール３０１と正規ＤＲＡＭモジュール３０２との物理的な配置は何らかの順序も含む。又は、ＤＩＭＭ３１０の構成は１つ以上のＲＬＵＴモジュールと１つ以上の正規ＤＲＡＭモジュール３０２である。
【００３２】
図３（ｃ）を参照すれば、ＤＩＭＭ３２０は複数のハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３を含む。ここで、４つのハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３を図示した。ハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３はＬＵＴ又は従来のＤＲＡＭサブアレイのように動作するように再構成可能な１つ以上のサブアレイを含み、従来のＤＲＡＭサブアレイのように動作する再構成が不可能である１つ以上のサブアレイを含む。即ち、ＤＩＭＭ３２０の構成はハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３のみを含む。
【００３３】
図３（ｄ）を参照すれば、ＤＩＭＭ３３０は１つ以上のハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３と１つ以上の正規ＤＲＡＭモジュール３０２とを含む。ここで、２つのハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３と２つの正規ＤＲＡＭモジュール３０２とを図示した。ＤＩＭＭ３３０の特定実施形態に対して、ハイブリッドＤＲＡＭ−ＦＰＧＡモジュール３０３と正規ＤＲＡＭモジュール３０２との物理的配置は何らかの順序も含む。
【００３４】
ＤＩＭＭは他の構成も含む。即ち、本発明は１つ以上のＤＲＡＭ−ＦＰＧＡモジュール、１つ以上の正規ＤＲＡＭモジュール、１つ以上のハイブリッドＤＲＡ−ＦＰＧＡモジュール及び／又は１つ以上のＲＬＵＴモジュールを含むＤＩＭＭ構成が可能となるが、これに制限されない。
【００３５】
図４は本発明に係るメモリチャンネル内において１つ以上のＤＲＡＭ−ＦＰＧＡを使用するシステム構造４００を示す機能ブロック図である。図５は本発明に係る仮想マシン又はアプリケーションのランタイム特徴を検出し、再構成可能なＤＲＡＭサブアレイ内の仮想マシン又はアプリケーションに対応する加速器ロジックを格納する方法５００を示す順序図である。順序図５００のＳ５０１乃至Ｓ５０４の段階は図５を参照して説明する。
【００３６】
図４を参照すれば、システム構造４００はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のようなシステムメモリ及び１つ以上の大容量ストレージ装置４０３に連結されたＣＰＵ４０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を含む。例えば、ＣＰＵ４０１はメモリチャンネル４０２を通じてシステムメモリと連結される。システムメモリのＲＡＭはＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）及び／又はＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）を含む。一実施形態として、図４に図示したように、システムメモリは１つ以上のＤＩＭＭ４０４内のＤＲＡＭを含む。一実施形態として、１つ以上の正規ＤＲＡＭモジュールと共に、ＤＩＭＭ４０４は１つ以上のＤＲＡＭ−ＦＰＧＡモジュール、１つ以上のＲＬＵＴモジュール、１つ以上のＤＲＡＭ−ＦＰＧＡモジュールと１つ以上のＲＬＵＴモジュールの組合せ、又は１つ以上のＤＲＡＭ−ＦＰＧＡモジュール及び／又は１つ以上のＲＬＵＴモジュールの組合せを含むように構成される。メモリチャンネル内のＤＲＡＭ−ＦＰＧＡは１つ以上のＤＩＭＭ４０４により具現される。
【００３７】
ＯＳ４０５（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）はＣＰＵ４０１上において実行される。ＯＳ４０５はＵｎｉｘ基盤のＯＳ、Ｕｎｉｘと類似なＯＳ、リナックス（登録商標）基盤のＯＳ、クロム基盤のＯＳ又はウインドー基盤のＯＳ等である。但し、本発明はこれに制限されない。１つ以上の仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）はＯＳ４０５上において実行される。図４に図示したように、仮想マシンＶＭ１乃至ＶＭｎはＯＳ４０５上において実行される。システム構造４００がデータセンター環境において具現される状況において、仮想マシンＶＭ１乃至ＶＭｎはデータセンターアプリケーションを意味する。システム構造４００がモバイル装置環境により具現される状況において、仮想マシンＶＭ１乃至ＶＭｎはモバイル装置アプリケーションを意味する。
【００３８】
ＯＳ４０５は加速器コントローラ４０６を含む。加速器コントローラ４０６は実体化された（ｉｎｓｔａｎｔｉａｔｅｄ）仮想マシンＶＭと関連されたランタイム特徴を検出器４０７により仮想マシンＶＭの実体を検出する。ここで使用したように、仮想マシンＶＭの“ランタイム特徴”という用語は動作特性を意味する。例えば、動作特性は仮想マシンＶＭのＩＤ（Ｉｄｅｎｔｉｔｙ）及び／又は特定設定構成である。但し、本発明はこれに制限されない。一実施形態として、加速器コントローラ４０６はソフトウェア基盤、ハードウェア基盤、又はこれらの組せによって具現される。一実施形態として、加速器コントローラ４０６はＯＳ４０５内のソフトウェアモジュールを含む。他の実施形態として、加速器コントローラ４０６はメモリコントローラ（図示せず）内のハードウェアモジュールを含む。
【００３９】
一実施形態として、加速器コントローラ４０６は検出器４０７とローダー４０８（Ｌｏａｄｅｒ）とを含む。検出器４０７はアプリケーション又は仮想マシンＶＭのランタイム特徴４０９を検出し、検出されたランタイム特徴４０９に対応するアプリケーション又は仮想マシンと関連された加速器ロジック４１０を特定する。他の実施形態として、加速器コントローラ４０６はランタイムの時に仮想マシンＶＭ又はアプリケーションをプロファイル（Ｐｒｏｆｉｌｅ）し、ランタイム署名（Ｓｉｇｎａｔｕｒｅ）を収集し、加速器ロジック４１０の保管場所を探すためにランタイム署名を利用する。ランタイム署名は機能活用度、ＣＰＵ活用度、レイテンシ（Ｌａｔｅｎｃｙ）、及び／又は他のマイクロ構造（Ｍｉｃｒｏ−ａｒｃｈｉｔｅｃｔｕｒｅ）統計等を含む。但し、本発明はこれに制限されない。一実施形態として、仮想マシンＶＭ又はアプリケーションのランタイム特徴を検出するのに使用されるアプリケーションのランタイム特徴４０９は加速器コントローラ４０６内に格納されるか、或いは加速器コントローラ４０６の一部に格納される。例えば、他の実施形態として、ランタイム特徴４０９は大容量ストレージ装置４０３内に格納され、加速器コントローラ４０６が初期化される時、加速器ロジック４０６にロード（Ｌｏａｄ）される。
【００４０】
仮想マシンＶＭ又はアプリケーションの検出されたランタイム特徴４０９に基づいて、加速器コントローラ４０６はローダー４０８を選択し、加速器ロジック４１０を回収し、仮想マシンＶＭのための加速器ロジック４１０をメモリチャンネル格納命令を利用してＤＲＡＭ−ＦＰＧＡ４１１内にロードする。加速器ロジック４１０は大容量ストレージ装置４０３内に格納され、仮想マシンによって利用される。一実施形態として、回収された加速器ロジック４１０は仮想マシンＶＭによって要請されるか、又は選択的に仮想マシンＶＭによって要請される。他の実施形態として、加速器ロジック４１０はＯＳ４０５又はユーザーによって要請されるか、或いは勧奨（Ｒｅｃｏｍｍｅｎｄ）される。他の実施形態として、加速器コントローラ４０６は仮想マシンＶＭｎに対する加速器ロジック４１０を特定し、仮想マシンＶＭｎはメモリチャンネル格納命令を利用して加速器ロジック４１０を回収してＤＲＡＭ−ＦＰＧＡ４１１内に格納する。加速器ロジック４１０がシステム構造４００のメモリチャンネル４０２内にあるＤＲＡＭ−ＦＰＧＡ４１１内に格納されるので、これにしたがって加速器ロジック４１０はＣＰＵ４０１によって直接アクセスされるキャッシュ一貫性（Ｃａｃｈｅ−Ｃｏｈｅｒｅｎｔ）アドレス空間内に格納される。このような点において、加速器ロジック４１０はＯＳ４０５によってアクセス可能なキャッシュ一貫性（Ｃａｃｈ−Ｃｏｈｅｒｅｎｔ）アドレス空間内に格納される。
【００４１】
図４を参照すれば、仮想マシンＶＭｎ、ランタイム特徴４０９、加速器ロジック４１０、加速器ロジック４１０が格納された特定ＤＲＡＭ−ＦＰＧＡ４１１、そして仮想マシンＶＭｎに対するＤＲＡＭ−ＦＰＧＡドライバー４１２は左側上から右側下までのハッチング（Ｃｒｏｓｓｈａｔｃｈｉｎｇ）によって表示する。他の仮想マシン、その各々のランタイム特徴、加速器ロジックとＤＲＡＭ−ＦＰＧＡ配置もまた類似に対応するハッチングによって表示する。一実施形態として、加速器コントローラ４０６は仮想マシンＶＭと対応するＤＲＡＭ−ＦＰＧＡドライバー４１２のアドレスを仮想マシンＶＭに伝達する。仮想マシンＶＭがＤＲＡＭ−ＦＰＧＡドライバー４１２にアクセスすることによって、ＤＲＡＭ−ＦＰＧＡドライバー４１２はＤＲＡＭ−ＦＰＧＡ４１１に格納された仮想マシンＶＭに対する加速器ロジック４１０にアクセスする。
【００４２】
図５は本発明に係る仮想マシン又はアプリケーションのランタイム特徴を検出し、再構成可能なＤＲＡＭサブアレイ内の仮想マシン又はアプリケーションに対応する加速器ロジックを格納する方法を示す順序図である。図４を参照して、ここで仮想マシンＶＭｎが図５のＳ５０１段階において実体化された場合を仮定する。
【００４３】
Ｓ５０１段階において、加速器コントローラ４０６は仮想マシンＶＭｎが仮想マシンＶＭｎと関連されたランタイム特徴４０９に基づいて実体化されたかを検出する。Ｓ５０２段階において、加速器コントローラ４０６は仮想マシンＶＭｎに対する加速器ロジック４１０を選択し、回収する。
【００４４】
Ｓ５０３段階において、加速器コントローラ４０６のローダー４０８はメモリチャンネル格納命令を利用してＤＲＡＭ−ＦＰＧＡ４１１内に選択された加速器ロジック４１０を格納する。他の実施形態において、Ｓ５０３段階において加速器コントローラ４０６は仮想マシンＶＭｎに対する加速器ロジック４１０を特定する。そして、仮想マシンＶＭｎは図４の５０２ａのメモリチャンネル格納命令を利用してＤＲＡＭ−ＦＰＧＡ４１１内の加速器ロジック４１０を回収し、格納する。
【００４５】
Ｓ５０４段階において、仮想マシンＶＭｎはＤＲＡＭ−ＦＰＧＡドライバー４１２を通じてＤＲＡＭ−ＦＰＧＡ４１１内の加速器ロジック４１０にアクセスする。他の実施形態として、システム構造４００はＱＰＩ（Ｑｕｉｃｋ  Ｐａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）環境のようなポイントツーポイント（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ）プロセッサインターコネクト環境に適用される。但し、本発明はこれに制限されない。
【００４６】
図６は本発明に係るメモリチャンネル内において１つ以上のＤＲＡＭ−ＦＰＧＡを使用するＱＰＩ基盤のシステム構造６００を示すブロック図である。図６を参照すれば、システム構造６００はメモリチャンネル６０２を通じてＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のようなシステムメモリに、そして１つ以上の大容量ストレージ装置６０３に連結された２つのＣＰＵ６０１を含む。システムメモリのＲＡＭはＳＲＡＭ及び／又はＤＲＡＭを含む。一実施形態として、システムメモリは１つ以上のＤＩＭＭ６０４（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）内に具現されたＤＲＡＭを含む。１つ以上のＤＲＡＭ−ＦＰＧＡ６０５はＣＰＵ６０１の各々のメモリチャンネル６０２内において使用される。ＣＰＵ６０１は互いにＱＰＩ基盤のインターコネクト６０６を通じて連結される。
【００４７】
図７は本発明に係るメモリチャンネル内において１つ以上のＤＲＡＭ−ＦＰＧＡを含むシステム構造を使用できる情報処理システム７００を示す機能ブロック図である。情報処理システム７００は本発明によって構成された１つ以上の装置を含む。
【００４８】
多様な実施形態において、情報処理システム７００はコンピューティング装置として具現される。例えば、コンピューティング装置はラップトップ（Ｌａｐｔｏｐ）、デスクトップコンピュータ（Ｄｅｓｋｔｏｐ）、ワークステーション（Ｗｏｒｋｓｔａｔｉｏｎ）、サーバー（Ｓｅｒｖｅｒ）、ブレードサーバー（Ｂｌａｄｅ  Ｓｅｒｖｅｒ）、個人用デジタル補助機（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン、タブレット（Ｔａｂｌｅｔ）、そして他の多様なコンピュータ、又は仮想マシンやそれらの仮想コンピューティング装置を含む。多様な実施形態において、情報処理システム７００はユーザー（図示せず）によって使用される。
【００４９】
情報処理システム７００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ロジック、又はプロセッサ７１０をさらに含む。一部の実施形態において、プロセッサ７１０は１つ以上のＦＵＢ（Ｆｕｎｃｔｉｏｎａｌ  Ｕｎｉｔ  Ｂｌｏｃｋ）又はＣＬＢ（Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｌｏｇｉｃ  Ｂｌｏｃｋ）７１５を含む。このような実施形態において、ＣＬＢ７１５は多様なブール（Ｂｏｏｌｅａｎ）ロジック演算（ＮＡＮＤ、ＮＯＲ、ＮＯＴ、ＸＯＲ等）、安定化されたロジック装置（フリップフラップ、ラッチ等）、他のロジック装置、又はこれらの組合せを含む。組合せ論理演算（Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｌｏｇｉｃ  Ｏｐｅｒａｔｉｏｎ）は望む結果を得るために入力信号を処理するために単純であるか、或いは複雑な形態として構成される。ここで、同期化された組合せ論理演算の実施形態を記述したが、本発明はこれに制限されず、非同期化された組合せ論理演算又はこれらの組合せを含むことは容易に理解される。
【００５０】
一実施形態において、組合せ論理演算は複数のＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒｓ）トランジスタを含む。多様な実施形態において、このようなＣＭＯＳトランジスタはロジック演算を遂行するゲート（Ｇａｔｅ）として配置される。但し、他の技術が使用でき、他の技術が本発明の範囲内にあることは容易に理解される。他の実施形態において、プロセッサ７１０を含む本発明に係る加速器コントローラを具現する構成要素をさらに含む。
【００５１】
本発明に係る情報処理システム７００はＲＡＭのような揮発性メモリ７２０をさらに含む。揮発性メモリ７２０はメモリチャンネルを通じてプロセッサ７１０によってアクセス可能である。本発明に係る情報処理システム７００はハードドライブ、光学メモリ、ＮＡＮＤ又はフラッシュメモリ等の不揮発性メモリ７３０をさらに含む。一部の実施形態において、揮発性メモリ７２０、不揮発性メモリ７３０、又はこれらの組合せや部分的な組合せの全ては‘記憶媒体’と称される。多様な実施形態において、揮発性メモリ７２０及び／又は不揮発性メモリ７３０は半永久的（Ｓｅｍｉ−Ｐｅｒｍａｎｅｎｔ）又は実質的に永久的な形態としてデータを格納するように構成される。
【００５２】
多様な実施形態において、上述した１つ以上のＲＬＵＴは揮発性メモリ７２０又は不揮発性メモリ７３０内に含まれる。上述したように、ＲＬＵＴはＤＲＡＭ又は他のメモリの一部として含まれる。上述したように、一部の実施形態において、揮発性メモリ７２０又は不揮発性メモリ７３０の一部分はデータを格納するのに使用され、他の部分はＲＬＵＴとして使用される。一部の実施形態において、ＲＬＵＴはまたプロセッサ７１０及び／又はロジックの一部として看做される。上述したように、ＲＬＵＴは１つ以上のロジック機能を遂行し、これにしたがって命令を遂行する。
【００５３】
多様な実施形態において、情報処理システム７００は１つ以上のネットワークインターフェイス７４０を含む。ネットワークインターフェイス７４０は情報処理システム７００が通信ネットワークの一部になるように構成され、また通信ネットワークを通じて通信するように構成される。例えば、Ｗｉ−ＦｉプロトコルはＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ等を含む。例えば、セルラー（Ｃｅｌｌｕｌａｒ）プロトコルはＩＥＥＥ８０２．１６ｍ（Ｗｉｒｅｌｅｓｓ−ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）Ａｄｖａｎｃｅｄとして公知される）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）  Ａｄｖａｎｃｅｄ、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ｒａｔｅｓ  ｆｏｒ  ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）  Ｅｖｏｌｕｔｉｏｎ）、ＨＳＰＡ＋（Ｅｖｏｌｖｅｄ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）等を含む。例えば、有線プロトコルはＩＥＥＥ８０２．３（Ｅｔｈｅｒｎｅｔと公知される）、ファイバ（Ｆｉｂｒｅ）チャンネル、電力ライン通信（ＨｏｍｅＰｌｕｇ、ＩＥＥＥ１９０１等）等を含む。但し、本発明は上述した例に制限されない。
【００５４】
本発明に係る情報処理システム７００はユーザーインターフェイスユニット７５０を含む。ユーザーインターフェイスユニット７５０はディスプレイアダプタ（Ｄｉｓｐｌａｙ  Ａｄａｐｔｅｒ）、ハプティック（Ｈａｐｔｉｃ）インターフェイス、ヒューマン（Ｈｕｍａｎ）インターフェイス装置等を含む。多様な実施形態において、ユーザーインターフェイスユニット７５０はユーザーから入力を受信し、又はユーザーに出力を提供するように構成される。同様に、他の形態の装置はユーザーとの相互作用を提供するために使用される。例えば、ユーザーに提供されるフィードバック（Ｆｅｅｄｂａｃｋ）は視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック等の何らかの形態の感覚上の（Ｓｅｎｓｏｒｙ）フィードバックである。例えば、ユーザーからの入力は音響、音声、又は触覚入力等を含む何らかの形態としても受信される。
【００５５】
多様な実施形態において、情報処理システム７００は１つ以上の他の装置又はハードウェア構成要素７６０を含む。ハードウェア構成要素７６０はディスプレイ又はモニター、キーボード、マウス、カメラ、指紋認識器、ビデオプロセッサ等を含む。但し、本発明はこれに制限されない。
【００５６】
本発明に係る情報処理システム７００は１つ以上のシステムバス７０５をさらに含む。このような実施形態において、システムバス７０５は通信の観点で（Ｃｏｍｍｕｎｉｃａｔｉｖｅｌｙ）プロセッサ７１０、揮発性メモリ７２０、不揮発性メモリ７３０、ネットワークインターフェイス７４０、ユーザーインターフェイスユニット７５０、そして１つ以上のハードウェア構成要素７６０と連結されるように構成される。プロセッサ７１０によって処理されるデータ又は不揮発性メモリ７３０の外部からのデータ入力は不揮発性メモリ７３０又は揮発性メモリ７２０の中の１つの内部に格納される。
【００５７】
多様な実施形態において、情報処理システム７００は１つ以上のソフトウェア構成要素７７０を含むか、或いは実行する。一部の実施形態において、ソフトウェア構成要素７７０はＯＳ及び／又はアプリケーションを含む。一部の実施形態において、ＯＳはアプリケーションに１つ以上のサービスを提供するように構成され、情報処理システム７００の多様なハードウェア構成要素（プロセッサ７１０、ネットワークインターフェイス７４０等）とアプリケーションとの間の仲介者（Ｉｎｔｅｒｍｅｄｉａｒｙ）として動作するか、或いはこれを制御するように構成される。このような実施形態において、情報処理システム７００は１つ以上のネイティブ（Ｎａｔｉｖｅ）アプリケーションを含む。ネイティブアプリケーションは不揮発性メモリ７３０等のように地域的に（Ｌｏｃａｌｌｙ）設置され、プロセッサ７１０によって実行されるように構成されてＯＳと直接相互作用する。このような実施形態において、ネイティブアプリケーションは予めコンパイル（Ｃｏｍｐｉｌｅ）された機械実行（Ｍａｃｈｉｎｅ−ｅｘｅｃｕｔａｂｌｅ）コードを含む。一部の実施形態において、ネイティブアプリケーションはスクリプトインタプリタ（Ｓｃｒｉｐｔ  Ｉｎｔｅｒｐｒｅｔｅｒ）（Ｃ  ｓｈｅｌｌ（ｃｓｈ）、ＡｐｐｌｅＳｃｒｉｐｔ、ＡｕｔｏＨｏｔｋｅｙ等）又は仮想実行マシンＶＭ（Ｊａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｍｍｏｎ  Ｌａｎｇｕａｇｅ  Ｒｕｎｔｉｍｅ等）を含み、このようなスクリプトインタプリタ又は仮想実行マシンはソースコード又はオブジェクト（Ｏｂｊｅｃｔ）コードをプロセッサ７１０によって実行される実行可能なコードにより翻訳するように構成される。一部の実施形態において、１つ以上のソフトウェア構成要素７７０は本発明の実施形態に係る加速器コントローラを具現する実行可能な命令語を含む。
【００５８】
上述した内容は本発明を実施するための具体的な例である。本発明には上述した実施形態のみでなく、単純に設計変更するか、或いは容易に変更できる実施形態も含む。また、本発明には上述した実施形態を利用して将来に容易に変形して実施できる技術も含む。
【符号の説明】
【００５９】
１００、２００  再構成可能なメモリロジック装置
１０１、２０１  サブアレイ
１０２  Ｉ／Ｏインターフェイス
１０３  構成インターフェイス
２０２  通信バス
２０３  入力信号パッド
２０４  出力信号パッド
３００、３１０、３２０、３３０、４０４、６０４  ＤＩＭＭ
３０１  ＤＲＡＭ−ＦＰＧＡモジュール
３０２  正規ＤＲＡＭモジュール
３０３  ハイブリッドＤＲＡＭ−ＦＰＧＡモジュール
４００、６００  システム構造
４０１、６０１  ＣＰＵ
４０２  メモリチャンネル
４０３  大容量ストレージ装置
４０４  ＤＩＭＭ
４０５  ＯＳ
４０６  加速器コントローラ
４０７  検出器
４０８  ローダー
４０９  ランタイム特徴
４１０  加速器ロジック
４１１、６０５  ＤＲＡＭ−ＦＰＧＡ
４１２  ＤＲＡＭ−ＦＰＧＡドライバー
６０２  メモリチャンネル
６０３  ストレージ装置
６０６  インターコネクト
７００  情報処理システム
７０５  システムバス
７１０  プロセッサ
７１５  ＣＬＢ
７２０  揮発性メモリ
７３０  不揮発性メモリ
７４０  ネットワークインターフェイス
７５０  ユーザーインターフェイスユニット
７６０  ハードウェア構成要素
７７０  ソフトウェア構成要素
【図１】
0006738262.tif 000002
【図２】
0006738262.tif 000003
【図３】
0006738262.tif 000004
【図４】
0006738262.tif 000005
【図５】
0006738262.tif 000006
【図６】
0006738262.tif 000007
【図７】
0006738262.tif 000008