(57)【要約】      （修正有）【課題】適応コンピューティング又は再構成可能なコンピューティングのための新しいカテゴリの集積回路の構成を提供する。【解決手段】適応コンピューティング・エンジン「ＡＣＥ」ＩＣは、相互接続ネットワークに結合された複数のヘテロジニアスな計算要素を含む。複数の計算要素は、メモリ１４０、各種演算、構成情報などの異なる機能のための固定の異なるアーキテクチャを有する対応するプログラミング性の計算要素を含む。構成情報に応答して、相互接続ネットワークは、アルゴリズム演算、有限状態マシン動作、コントローラ動作、メモリ動作、及びビット・レベル操作を含む複数の異なる機能モードのために複数の計算要素を構成し、再構成するように動作する。システムは、動作モードを提供するのに必要とされる構成情報と結合されたＡＣＥ１００集積回路を含み、様々な動作モードに関する構成情報を生成し提供する。【選択図】図３
2011123882.tif 000002
【特許請求の範囲】
【請求項１】
複数の再構成可能なマトリクスと、該複数の再構成可能なマトリクスに接続された１つのマトリクス相互接続ネットワークと、複数のセットの構成情報を記憶し提供するメモリとを含む適応集積回路であって、該複数のセットの構成情報は、第１のセットの構成情報と第２のセットの構成情報とを含み、
該マトリクス相互接続ネットワークは、複数のルーティング要素と複数のスイッチング要素とを含み、該複数のセットの構成情報に応答して再構成可能であり、該複数の再構成可能なマトリクスの間でデータを選択的にルーティングするように動作し、該第１のセットの構成情報を該複数の再構成可能なマトリクスのうちの少なくとも１つに選択的にルーティングして、該複数の再構成可能なマトリクスのうちの少なくとも１つを第１の動作モードとして構成し、該第２のセットの構成情報を該複数の再構成可能なマトリクスのうちの少なくとも１つに選択的にルーティングして、該複数の再構成可能なマトリクスのうちの少なくとも１つを第２の動作モードとして構成するように動作可能であり、
該複数の再構成可能なマトリクスの各々は、複数のヘテロジニアスな計算ユニットと、該複数のヘテロジニアスな計算ユニットと該マトリクス相互接続ネットワークとに接続された１つのサブネット相互接続ネットワークとを含み、該サブネット相互接続ネットワークを介して該複数のセットの構成情報をルーティングすることで自身を再構成して該複数のヘテロジニアスな計算ユニットの間の接続を変化させるように動作可能であり、該サブネット相互接続ネットワークを介して該複数のヘテロジニアスな計算ユニットの間でデータを送信するように動作可能であり、
該複数のヘテロジニアスな計算ユニットの各々は、複数の固定のヘテロジニアスな計算要素と、該複数の固定のヘテロジニアスな計算要素と該サブネット相互接続ネットワークとに接続された１つの追加の相互接続とを含み、該複数の固定のヘテロジニアスな計算要素の各々は、互いに異なる１つのアーキテクチャを有しており、該複数のヘテロジニアスな計算ユニットの各々は、該追加の相互接続を介して該複数のセットの構成情報をルーティングすることで自身を再構成して該複数の固定のヘテロジニアスな計算要素の間の接続を変化させるように動作可能である適応集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、集積回路、及び集積回路のシステムに関する。より詳細には、本発明は、適応集積回路の機能を提供する、又は生成するために固定の特定用途向け計算要素を有する適応集積回路を構成するための装置、方法、及びシステムに関する。
【背景技術】
【０００２】
（関連出願の相互参照）
本出願は、本出願と同じくＱｕｉｃｋＳｉｌｖｅｒ  Ｔｅｃｈｎｏｌｏｇｙ  Ｉｎｃ．に譲渡され、参照により本明細書に組み込まれており、すべての共通で開示する主題に関して優先権が主張される２００１年３月２２日に出願した「Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed, Application Specific Computational Elements」という名称のＰａｕｌ  Ｌ．Ｍａｓｔｅｒ他による米国特許出願第０９／８１５，１２２号明細書（「関連出願」）に関連する。
【０００３】
関連出願は、潜在的な欠点を最小限に抑えながら、プロセッサ、特定用途向け集積回路（「ＡＳＩＣ」）、及びフィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）の様々な利点を効果的かつ効率的に組み合わせ、最大化する新しい形態、又は新しいタイプの集積回路を開示している。関連出願は、プロセッサのプログラミングの柔軟性、ＦＰＧＡの製造後の柔軟性、ならびにＡＳＩＣの高い速度及び高い利用率を提供する適応コンピューティング・エンジン（「ＡＣＥ」）と呼ばれる新しい形態、又は新しいタイプの集積回路（「ＩＣ」）を説明している。このＡＣＥ集積回路は、容易に再構成可能であり、対応する複数の動作モードを有することができ、さらに、性能を向上させながら電力消費を最低限に抑え、ハンドヘルド・デバイス、及びその他の電池式デバイスにおける使用などの低電力アプリケーションに対して特に適合性を有する。
【０００４】
ただし、このＡＣＥ集積回路は、さらに何かがなければ、基本的に、空の、又は「空白の」デバイスである。より詳細には、無線通信機能、ラジオ受信機能、パーソナル・デジタル・アシスタント（「ＰＤＡ」）機能、ＭＰ３音楽再生機能、又は任意の他の所望の機能などの、ＡＣＥ回路のための１つ又は複数の動作モードを提供及び生成する構成及び再構成を前もって、又はリアルタイムで（又は、場合により、より遅い速度で）生成するのに、構成情報が必要とされる。
【０００５】
また、１つ又は複数の動作モードのためにＡＣＥアーキテクチャを構成し、再構成することができることから、様々な懸念及びニーズも生じる。例えば、デバイス内の特定のＡＣＥ  ＩＣの構成（及び／又は再構成）に先立って、デバイスの既存の構成、又は他の機能を変更する、又は害する可能性がある可能な構成のダウンロード又は受信を回避するため、そのＡＣＥの能力を特定しなければならない。
【０００６】
また、構成及び再構成のセキュリティも最重要である。そのような構成がＡＣＥアーキテクチャの機能を変更できることから、ウイルス、ワーム、及びその他の有害な感染などの破壊的である可能性がある構成、又は他の不正な構成を回避するように許可対策及びセキュリティ対策を実施しなければならない。許可対策及びセキュリティ対策は、著作権で保護された資料、ならびに秘密である、又はそれ以外の形で規制されている可能性がある他の情報などの知的財産の保護のためにも重要である。また、様々な形態の監視、追跡、及びその他の記録保持も、様々な構成の可能性を特定し、把握しておくために適切である可能性がある。
【０００７】
このため、ＡＣＥ回路及びその他のＡＣＥデバイスの１つ又は複数の動作モード、又は他の機能を提供するため、又は生成するために適応集積回路に関する構成情報を提供するための装置、方法、及びシステムの必要性が依然として存在する。そのような方法及びシステムは、ＡＣＥ能力を特定することができなければならず、セキュアな構成、及び許可された構成を提供しなければならず、構成及びコンテンツ使用の適切な監視を提供しなければならない。
【特許文献１】米国特許出願第０９／８１５，１２２号明細書
【特許文献２】米国特許第５，２１８，２４０号明細書
【特許文献３】米国特許第５，３３６，９５０号明細書
【特許文献４】米国特許第５，２４５，２２７号明細書
【特許文献５】米国特許第５，１１４，１６６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
適応コンピューティング又は再構成可能なコンピューティングのための本発明の適応コンピューティング・エンジン（「ＡＣＥ」）回路は、相互接続ネットワークに結合された複数のヘテロジニアスな計算要素（ＦＰＧＡの同じ同質の繰り返されるアレイ・ユニットではなく）を含む。複数のヘテロジニアスな計算要素は、メモリ、加算、乗算、複素乗算、減算、構成、再構成、制御、入力、出力、ルーティング、及びフィールド・プログラミング性などの異なる機能のための固定アーキテクチャなどの、固定の異なるアーキテクチャを有する対応する計算要素を含む。構成情報に応答して、相互接続ネットワークは、前もって、リアルタイムで、又は、場合により、より低速で、線形アルゴリズム演算、非線形アルゴリズム演算、有限状態マシン演算、メモリ演算、及びビット・レベル操作を含む複数の異なる機能モードに関する複数のヘテロジニアスな計算要素を構成し、再構成するように動作する。様々な計算ユニット及び適応マトリックスを形成するヘテロジニアスな計算要素のこの構成及び再構成により、多種多様なタスクの実行のために、ＡＣＥ集積回路の選択された高レベルの動作モードが生成される。
【課題を解決するための手段】
【０００９】
本発明の好ましいシステム実施形態は、構成情報の１つ又は複数のセットと結合されたそのようなＡＣＥ集積回路を含む。また、有線デバイス及び無線デバイス、家庭用電化製品及び自動車エレクトロニクス、ネットワーク・インフラストラクチャ設備等を含む他のより高いレベルのシステム実施形態も例示している。この構成情報は、ＡＣＥに関する選択された動作（又は機能）モードを提供し、そのような構成情報が存在しない場合、ＡＣＥは、機能を有さない。
【００１０】
また、ＡＣＥ集積回路に関する構成情報を生成し、提供するための様々な装置、方法、及びシステムも例示している。さらに、本発明のシステム及び方法は、ＡＣＥ再構成キャパシティ又は能力を特定すること、セキュアな構成及び許可された構成を提供すること、ならびに構成及びコンテンツ使用の適切な監視を提供することができる。
本発明の多数の他の利点及び特徴が、本発明の以下の詳細な説明、及び本発明の実施形態、特許請求の範囲、ならびに添付の図面から明白となる。
【図面の簡単な説明】
【００１１】
【図１】本発明による複数のシステム実施形態を示すブロック図である。
【図２】本発明による統合システム実施形態を示すブロック図である。
【図３】本発明による好ましい適応コーティング・エンジン（ＡＣＥ）実施形態を示すブロック図である。
【図４】本発明による再構成マトリックス、複数の計算ユニット、及び複数の計算要素を示すブロック図である。
【図５】本発明による再構成マトリックスの計算ユニットをより詳細に示すブロック図である。
【図６】本発明による複数の異なる固定の計算要素を有する好ましい多機能適応計算ユニットを詳細に示すブロック図である。
【図６Ａ】図６に示されている多機能適応計算ユニットに含まれるブロックのうちの１つを示す図である。
【図６Ｂ】図６に示されている多機能適応計算ユニットに含まれるブロックのうちの１つを示す図である。
【図６Ｃ】図６に示されている多機能適応計算ユニットに含まれるブロックのうちの１つを示す図である。
【図６Ｄ】図６に示されている多機能適応計算ユニットに含まれるブロックのうちの１つを示す図である。
【図７】本発明による複数の異なる固定の計算要素を有する好ましい適応論理プロセッサ計算ユニットを詳細に示すブロック図である。
【図８】本発明による固定の計算要素を有する適応論理プロセッサ計算要素の好ましいコア・セルをより詳細に示すブロック図である。
【図９】本発明による適応論理プロセッサ計算要素のコア・セルの好ましい固定の計算要素をより詳細に示すブロック図である。
【図１０】本発明による方法実施形態を示す流れ図である。
【発明を実施するための形態】
【００１２】
本発明は、多くの異なる形態における実施が可能であるが、本開示は、本発明の原理の例示と考えられ、本発明を例示する特定の実施形態に限定するものではないという理解の下で、本発明の特定の実施形態を図面に示し、本明細書で詳細に説明する。
【００１３】
前述したとおり、適応集積回路に関する構成情報を提供して、適応コンピューティング・エンジン（ＡＣＥ）回路、及びＡＣＥ技術を組み込んだ他のデバイスの１つ又は複数の動作モードを提供するための装置、方法、及びシステムの必要性が依然として存在する。そのような装置、方法、及びシステムが、無線通信、ラジオ受信、パーソナル・デジタル・アシスタント（「ＰＤＡ」）、ＭＰ３音楽再生、又は他の任意の所望の機能又は動作などの１つ又は複数の選択された動作モードを提供するために、構成情報をＡＣＥ回路（ＡＣＥ  ＩＣ）と結合して、本発明に従って提供される。さらに、本発明の装置、システム、及び方法は、ＡＣＥ再構成キャパシティを特定すること、セキュアな構成及び許可された構成を提供すること、ならびに構成及びコンテンツ使用の適切な監視を提供することができる。
【００１４】
本発明のシステム及び方法は、ＡＣＥ（適応コンピューティング・エンジン）と呼ばれる新しい形態の集積回路を利用する。ＡＣＥアーキテクチャは、最終的に、無線通信機能を実行するなどの選択された動作モードを実行する、又は遂行するのに、任意の所与の時点又は選択された時点で必要とされる可能性がある機能ブロック（計算ユニット及びマトリックス）を形成するために、（限定としてではなく）相関器、乗算器、複素乗算器、加算器、復調器、相互接続要素、ルーティング要素、結合器、有限状態マシン要素、縮小命令セット（ＲＩＳＣ）処理要素、ビット操作要素、入力／出力（Ｉ／Ｏ）要素及びその他のインターフェース要素、ならびに以上のユニットを形成するより低いレベルの「ビルディング・ブロック」などの複数の固定の異なる計算要素を利用し、これらのユニットは、構成情報に応答して構成され、再構成されて、より高いレベルの機能を実行する。また、本発明の方法及びシステムにより、電力消費が最小限に抑えられ、ハンドヘルド・デバイス及びその他の電池式デバイスにおける使用などの低電力アプリケーションに特に適している。
【００１５】
図１は、本発明による複数のシステム実施形態を示すブロック図である。図１を参照すると前述するとおり（また以下により詳細に説明するとおり）、本発明の好ましいシステムは、構成情報を使用して結合された、又は組み立てられたＡＣＥ１００から構成され、例えば、無線デバイス３０及び３２内、有線デバイス３５内、コンピュータ５５内、家庭用電化製品内、自動車エレクトロニクス３７内、ならびにサーバ５４、ルータ５３、ローカル・エリア・ネットワーク（ＬＡＮ）４１、無線ＬＡＮ４３、ワイド・エリア・ネットワーク（ＷＡＮ）４２、付属ネットワーク・エンティティ５０、交換システム５２及び５６、無線基地局２５などのネットワーク・インフラストラクチャ設備内、及び任意の他の電子デバイスの内を含む多種多様な実施形態において実装することができる。
【００１６】
前述したように、本明細書で使用する「構成情報」という用語は、言語上の複数の含意を有し、その含意を含むものと一般的に理解されたい。すなわち、構成情報は、複数の情報ビット、情報のグループ又はセットであり、すなわち、「複数」の構成情報であるものと一般的に理解されたい。例えば、「構成情報」は、複数のサブセットから成る構成情報のセットと見なすことができ、そのようなサブセットが、第１の構成情報、第２の構成情報、第３の構成情報、乃至第ｎ番の構成情報である。構成情報のサブセットは、（サブセットに１ビットの情報が含まれる）単一ビットによるものであることが可能であるが、構成情報のそれぞれのそのようなサブセットは、８、１６、３２、又は６４の情報ビットといった単一のビットが符号化することができるのよりも多くの情報を通常含む複数ビットによるものも可能である。
【００１７】
構成情報は、様々な形態で存在することも可能であり、任意の所与の時点で、記憶された（固定の）性質を有することが可能であり、あるいは過渡的な性質、又は一時的な性質を有することが可能である。例えば、図１に示すとおり、構成情報は、フラッシュ・メモリ１０（デバイス３５に関する）の中に、あるいはコンピュータ５５Ｂに関するコンピュータ媒体又は可読媒体２０（ＣＤ−ＲＯＭ、他の光ドライブ、コンピュータ・メモリ、ハードドライブ又はフロッピー（登録商標）・ディスクなどの）の中にバイナリ（ビット）ファイルとして記憶されることが可能である。以下により詳細に説明するとおり、そのような構成情報は、データと互いに入り込ませ、絡み合わせ、又は別の形で結合して、本明細書で「シルバーウェア」又は「シルバーウェア」モジュールと呼び、定義するものを形成させ、シルバーウェア記憶媒体１５の中にバイナリ（ビット）ファイルとして記憶することも可能である。また、構成情報は、過渡的に、時間にわたって、例えば、無線インターフェースを介して基地局２５Ａから無線デバイス３２（モバイル局又は他のモバイル電話機などの）に無線でダウンロードされた際に、又はサーバ５４からコンピュータ（ＰＣ）５５に有線でダウンロードされた際に生じることも可能である。
【００１８】
図１をより詳細に参照すると、ローカル・エリア・ネットワーク（「ＬＡＮ」）４１、無線ＬＡＮ４３、ワイド・エリア・ネットワーク（「ＷＡＮ」）４２、ならびにより一般的に、公衆交換電話網（「ＰＳＴＮ」）又はインターネットなどのネットワーク４０を含む複数のネットワークが示されている。様々なネットワークには、ルータ５３Ａ及び５３Ｂ、サーバ５４Ａ及び５４Ｂ、有線交換センタ５６、モバイル交換センタ（「ＭＳＣ」）５２が結合され、無線基地局（又は他の無線トランシーバ）２５Ａ及び２５Ｂ、有線デバイス３５、コンピュータ５５Ａ及び５５Ｂ、ならびに付属ネットワーク・エンティティ５０に対するさらなる接続又は結合可能性を伴う。当技術分野で周知のとおり、中継線、光学線、及び他の通信線を介して以上の様々なデバイスが、互いに接続され、より広いネットワーク（ＰＳＴＮ又はインターネットなどの）に接続されることが可能であり、サテライト（別個に図示せず）に対するリンクを提供すること、及び他の無線リンク（無線インターフェース）を提供することなどの他の場所に対する通信接続を伴う。ルータ５３Ｂ、サーバ５４Ｂ、基地局２５Ｂ、及びコンピュータ５５Ｂは別個に示されて（「Ｂ」で）、家庭用電化製品内、自動車エレクトロニクス内、及びモバイル・エレクトロニクス内に含まれることに加えて、そのようなインフラストラクチャ設備内、及びＬＡＮ４１内、ＷＡＮ４２内、無線ＬＡＮ４３内、付属ネットワーク・エンティティ５０内にＡＣＥ１００（及び本発明のシステム）が含まれる可能性を示している。また、有線交換センタ５６とモバイル交換センタ５２は、通常、規制上の理由、その他の歴史的理由又はレガシーの理由により、物理的に分離されるが、これらの交換センタを結合して、有線機能と無線機能をともに有する１つ又は複数の交換センタにすることも可能である。
【００１９】
これらの様々なサーバ・エンティティ、交換エンティティ、ルーティング・エンティティ、及びその他のエンティティは、付属ネットワーク・エンティティ５０などの付属ネットワーク・エンティティと呼ばれる１つ又は複数のインテリジェント・ネットワーク・デバイスに接続することも可能であり、このネットワーク・デバイスは、追加のタイプのサーバ、データベース、サービス制御ポイント（「ＳＣＰ」）、サービス回線ノード（「ＳＣＮ」）（サービス・ノード（ＳＮ）とも呼ばれる）、インテリジェント周辺（「ＩＰ」）デバイス、ゲートウェイ・デバイス、又は別のインテリジェント・ネットワーク・デバイスであることが可能である。１つ又は複数の付属ネットワーク・エンティティ５０が、好ましくは、有線交換センタ５６、ＭＳＣ５２、ＬＡＮ４１、ＷＡＮ４２、無線ＬＡＮ４３、ルータ５３、及びサーバ５４に対する直接接続又は間接接続のために、ネットワーク４０に接続又は結合される。好ましい実施形態では、付属ネットワーク・エンティティ５０は、アプリケーション・ノード５１Ａ、５１Ｂ、乃至５１Ｎとして示した特定のアプリケーション（「アプリケーション・ノード」）５１のためのノード又はプラットフォームを提供して、構成情報のダウンロード、認証、セキュリティ、許可、及び適合性評価を提供することなどの様々な機能を実行する。付属ネットワーク・エンティティ５０内に含められることに加えて、これらの様々なアプリケーション・ノード５１は、１つ又は複数のサーバ５４などの他の様々なデバイス間で分散させること、又はそのデバイス内に含めることも可能である。例えば、１つのサーバ５４を利用して、構成情報を提供し、付属ネットワーク・エンティティ５０が認証及びセキュリティのために利用され、追跡及びアカウンティングがさらに別のサーバ５４又はコンピュータ５５において行われることが可能である。
【００２０】
説明のため、限定としてはなく、図１に示した本発明の様々なシステムには、システム１１（ＦＬＡＳＨ１０内に構成情報を有する有線デバイス３５のＡＣＥ１００）、システム１６（シルバーウェア記憶媒体１５内に構成情報を有する無線デバイス３０のＡＣＥ１００）、システム３１（ＲＡＭ、又は以下に説明するマトリックス相互接続ネットワーク（「ＭＩＮ」）などのある形態のメモリ（図２に別個に示す）の中に記憶された構成情報を有する無線デバイス３２のＡＣＥ１００）、システム２１（コンピュータ可読媒体２０の中に記憶された構成情報を有するコンピュータ５５ＢのＡＣＥ１００）、システム２２（ある形態のメモリ（図２に別個に示す）の中に記憶された構成情報を有するサーバ５４ＢのＡＣＥ１００）、及び２３（メモリ（図２に別個に示す）の中に記憶された構成情報を有するルータ５３ＢのＡＣＥ１００）が含まれる。明白なとおり、本発明のシステムは、図示したデバイス又は品目（例えば、ＬＡＮ４１、ＷＡＮ４２、無線ＬＡＮ４３、及び付属ネットワーク・エンティティ５０）に加えて、任意のデバイス又は他の品目の内部で実現することも可能であり、そのデバイス又は他の品目は、対応する動作モードを提供するためにＡＣＥ１００及び構成情報を含み、それ以外では、任意の特定の装置又は他の実施形態と同延であることが可能である。
【００２１】
また、その他のネットワーク・システム、又は分散レベル・システムも本発明の範囲に含まれる。例示的なネットワーク・システムは、ＡＣＥ１００が使用するために、構成情報又はシルバーウェア・モジュール（データと結合された構成情報）を提供する１つ又は複数のアプリケーション・ノード５１を付属ネットワーク・エンティティ５０内、又は他のサーバ５４内に含むことが可能である。そのようなネットワーク・システム又は分散レベル・システムは、好ましい実施形態では、ＡＣＥ１００からの要求に応答して、又はＡＣＥ１００に代行して、次の１つ又は複数を提供することができる。すなわち、構成情報の１つ又は複数のセット、構成情報とともに使用するために変更されたコンテンツ又は他のデータ、構成情報を対応するデータ又は他のコンテンツと結合するシルバーウェア・モジュール、固有のデバイスに合わせて調整された、又は透かしが入れられた構成情報、及び／又は構成情報又はシルバーウェア・モジュールの暗号化である。
【００２２】
構成情報は、いずれの所与のＡＣＥ１００デバイスにもローカルである必要がないので、分散システムも本発明の範囲に含まれる。例えば、構成情報又はシルバーウェアは、アプリケーション・ノード５１、付属ネットワーク・エンティティ５０、他のサーバ５４、及び図１の他の例示する要素の間などで、ネットワーク４０全体にわたって記憶することができる。そのような分散システムに関して、ＡＣＥ１００は、オペレーティング・システム（「ＯＳ」）を介するなどして、以上のネットワーク・デバイスの１つを介するなどして構成情報を獲得するようにだけ構成することができる。
【００２３】
図２は、本発明による統合システム実施形態６０を示すブロック図である。システム６０は、好ましくは、単一の集積回路（チップ上のシステム、又は「ＳＯＣ」）として実装される。システム６０は、ＡＣＥ１００を含み、メモリ６１、インターフェース６２、及び１つ又は複数の他の処理要素６５も含むことが可能である。そのようなシステム６０は、例えば、図１のルータ５３及びサーバ５４の内部に含まれることが可能であり、あるいはモバイル局３０又はモバイル・デバイス３２、有線デバイス３５などの他の組み込みシステム内部に含まれることが可能である。以下により詳細に説明するとおり、システム６０がＡＣＥ１００だけから構成されている場合、そのＡＣＥ１００は、一般に、処理機能、インターフェース機能、及びその他のＩ／Ｏ機能を含むように構成され、メモリは、メモリ計算要素を介して構成されるか、又はマトリックス相互接続ネットワーク（ＭＩＮ）内部で直接に構成される。システム６０は、図２にオプションの処理要素６５、インターフェース６２、及びメモリ６１とともに示すとおり、通常、既存の、又はその他のレガシー・システム及びレガシー・デバイスとの下位互換性又は後方互換性を提供するように実装される。
【００２４】
インターフェース６２は、関連するチャネル、ネットワーク、又はバスに対する適切な接続のために利用され、例えば、インターフェース６２は、有線インターフェースのためにインピーダンス・マッチング、ドライバ、及びその他の機能を提供することができ、無線インターフェースのために復調及びアナログ−デジタル変換を提供することができ、メモリ６１に他のデバイスとの物理インターフェースを提供することができる。一般に、インターフェース６２は、選択された実施形態に依存して、音声情報、構成情報、シルバーウェア・モジュール、制御メッセージ、認証データ、及びその他の関係する情報などのデータの受信及び送信を行うために使用される。また、ＡＣＥ１００は、ＰＣＩバス制御などのために、内部ＩＣ  Ｉ／Ｏ及び外部（オフチップ）Ｉ／Ｏを含むインターフェース６２の機能を提供するように構成されることも可能である。メモリ６１は、様々な形態のＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、Ｅ２ＰＲＯＭ、フラッシュなどの集積回路であること、又は集積回路の一部分であることが可能である。非ＩＣ（又は非ＳＯＣ）の実施形態の場合、メモリ６１は、磁気（ハード又はフロッピー（登録商標））ドライブ、光学記憶デバイス、又は他のタイプのデータ記憶装置であることも可能であり、前述したとおり、複数のデバイスにわたって分散されることが可能である。さらに、選択された実施形態に依存して、以下により詳細に説明するとおり、メモリ６１は、メモリとして機能する複数の計算要素を使用することにより、マトリックス相互接続ネットワーク（ＭＩＮ）内部に、又はＡＣＥ１００内部に構成されることも可能である。オプションとして、マイクロプロセッサ又はデジタル信号プロセッサ（「ＤＳＰ」）などの１つ又は複数の処理要素６５をシステム６０内に含めて、縮小命令セット（「ＲＩＳＣ」）処理などの追加の処理能力を提供すること、あるいはＡＣＥ１００内に計算要素として含めることが可能である。
【００２５】
図３〜９を参照し、図１０も参照するＡＣＥ１００アーキテクチャの説明に続き、図１及び２に示した様々なシステムの動作を以下により詳細に説明する。
【００２６】
図３は、本発明による好ましいＡＣＥ装置１００実施形態を示すブロック図である。ＡＣＥ１００は、好ましくは、集積回路として実現され、あるいは他の追加の構成要素を有する集積回路の一部分として実現される。（ＡＣＥ１００は、関連出願においても詳細に説明している。）好ましい実施形態では、以下により詳細に説明するとおり、ＡＣＥ１００は、図示するマトリックス１５０Ａ乃至１５０Ｎのような１つ又は複数の再構成可能なマトリックス（又はノード）１５０、及びマトリックス相互接続ネットワーク（ＭＩＮ）１１０を含む。やはり好ましい実施形態では、以下により詳細に説明するとおり、マトリックス１５０Ａ及び１５０Ｂのようなマトリックスの１つ又は複数が、コントローラ１２０としての機能のために構成され、他方、マトリックス１５０Ｃ及び１５０Ｄのような他のマトリックスが、メモリ１４０としての機能のために構成される。別個のマトリックス１５０Ａ乃至１５０Ｄとして例示しているが、これらの制御機能及びメモリ機能は、例えば、処理又はメモリの「ボトルネック」、又は他の制限を回避するように、追加の機能を有する複数のマトリックス１５０にわたって分散させることができ、好ましくは、分散させられる。そのような分散機能を、例えば、図４に示している。また、様々なマトリックス１５０及びマトリックス相互接続ネットワーク１１０を数ノードから数千ノードまでスケール変更することが可能なフラクタル・サブユニットとして一緒に実装することも可能である。
【００２７】
従来の技術から大きく離れて、ＡＣＥ１００は、再構成可能なマトリックス１５０、コントローラ１２０、及びメモリ１４０の間の通信及びその他の伝送のために、又は他の入出力（「Ｉ／Ｏ」）機能のために、従来の（通常、別個の）データ、ダイレクト・メモリ・アクセス（ＤＭＡ）バス、ランダム・アクセス・バス、構成バス、及び命令バスを利用しない。代わりに、データ、制御、及び構成情報は、マトリックス相互接続ネットワーク１１０を利用して、これらのマトリックス１５０要素間で伝送され、ネットワーク１１０は、以下により詳細に説明するとおり、コントローラ１２０及びメモリ１４０として構成されたこれらのマトリックス１５０を含む再構成可能なマトリックス１５０の間で任意の所与の接続を提供するように構成され、再構成されることが可能である。
【００２８】
ＭＩＮ１１０は、再構成されるまで、及び再構成されない場合には、特定の機能に関する相互接続を直接に提供する１つのメモリとしても有効に機能する。さらに、そのような構成及び再構成は、特定の機能又は特定の動作の使用に先立って行われること、及び／又はリアルタイムで、又はより遅い速度で行われることが可能であり、すなわち、特定の機能又は特定の動作の使用に先行して、使用中に、又は使用と同時に行われることが可能である。さらに、そのような構成及び再構成は、機能又は動作の中断なしに、分散式に行われることが可能であり、１つの場所における計算要素の構成が、他の計算要素（以前に構成されている）が自らの指示された機能を同時に実行している間に行われる。ＡＣＥ１００のこの構成の柔軟性は、ＦＰＧＡ再構成と著しく対照的であり、ＥＰＧＡ再構成は、一般に、リアルタイム又は同時にではなく、比較的ゆっくりと行われ、あらゆる動作又は他の使用に先立って完全に完了されなければならない。
【００２９】
メモリ１４０として機能するように構成されたマトリックス１５０は、固定のメモリ要素の計算要素（以下に説明する）を利用して、任意の所望のやり方、又は好ましいやり方で実装することができ、ＡＣＥ１００内部に含めること、又は別のＩＣ、又はＩＣ（メモリ６１などの）の一部分に組み込むことができる。好ましい実施形態では、メモリ１４０は、ＡＣＥ１００内部に含められ、好ましくは、低電力消費のランダム・アクセス・メモリ（ＲＡＭ）である計算要素から構成されるが、フラッシュ、ＤＲＡＭ、ＳＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、又はＥ２ＰＲＯＭなどの任意の他の形態のメモリの計算要素から構成されることも可能である。前述したとおり、このメモリ機能は、複数のマトリックス１５０にわたって分散されることも可能であり、特定のＭＩＮ１１０構成として任意の所与の時点で一時的に組み込まれることも可能である。さらに、好ましい実施形態では、メモリ１４０は、好ましくは、別個に図示していないＤＭＡエンジンを含む。
【００３０】
コントローラ１２０は、好ましくは、適応有限状態マシンとして構成されたマトリックス１５０Ａ及び１５０Ｂを使用して、縮小命令セット（「ＲＩＳＣ」）プロセッサ、コントローラ、あるいは以下に説明する２つのタイプの機能を実行することができる他のデバイス又はＩＣとして実装される。（代替として、これらの機能は、図２の処理要素６５のような従来のＲＩＳＣ又は他のプロセッサを利用して実装されることも可能である。）この制御機能も他の追加の機能も実行する１つ又は複数のマトリックス１５０を介して分散させることが可能である。さらに、この制御機能は、別個のハードウェア・コントローラ機能なしに、構成情報の中に含め、構成情報として直接に実現することが可能である。「カーネル」制御と呼ぶ第１の制御機能をマトリックス１５０Ａのカーネル・コントローラ（「ＫＡＲＣ」）として示し、「マトリックス」制御と呼ぶ第２の制御機能をマトリックス１５０Ｂのマトリックス・コントローラ（「ＭＡＲＣ」）として図示している。コントローラ１２０のカーネル制御機能及びマトリックス制御機能は、様々なマトリックス１５０の構成可能性及び再構成可能性に関連して、また、本明細書で区別することなく「シルバーウェア」（「Ａｇｗａｒｅ」）又は「シルバーウェア」モジュールと呼ぶ結合されたデータ、構成（及びその他の制御）情報の好ましい形態に関連して以下により詳細に説明する。
【００３１】
本明細書でまとめて、全体として「相互接続（ｉｎｔｅｒｃｏｎｎｅｃｔ）」、「相互接続（ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎｓ）」、「相互接続ネットワーク」、又はＭＩＮと呼ぶ図３のマトリックス相互接続ネットワーク１１０、及び図４及び５に別個に示したその一部分を構成する相互接続ネットワーク（ブール相互接続ネットワーク２１０、データ相互接続ネットワーク２４０、及び相互接続２２０）は、はるかに多様な仕方ではあるが、フィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）相互接続ネットワーク又は交換ファブリックを利用するなどして、当技術分野で周知のとおり全体的に実装することができる。本明細書で使用する「フィールド・プログラミング性」とは、既存のＩＣ構造又はＩＣ機能（マイクロプロセッサ内又はＤＳＰ内などの）と対比して、実際のＩＣ機能を製造後に追加する、又は変更することができることを指す。好ましい実施形態では、様々な相互接続ネットワークが、例えば、米国特許第５，２１８，２４０号明細書、米国特許第５，３３６，９５０号明細書、米国特許第５，２４５，２２７号明細書、及び米国特許第５，１１４，１６６号明細書に記載され、以下に説明し、図７、８、及び９に関連して示すとおり実装される。これらの様々な相互接続ネットワークは、以下に説明するコントローラ１２０、メモリ１４０、様々なマトリックス１５０、ならびに計算ユニット２００及び計算要素２５０の間の選択可能な（又は交換可能な）接続を提供し、本明細書で「構成情報」と全体的に呼び構成通信の制御に応答して、構成通信の制御の下で、本明細書で述べる構成及び再構成のための物理的基礎を提供する。さらに、様々な相互接続ネットワーク（１１０、２１０、２４０、及び２２０）は、あらゆる形態の従来の、又は別個の入力／出力バス、データ・バス、ＤＭＡバス、ＲＡＭバス、構成バス、及び命令バスに代えて、コントローラ１２０、メモリ１４０、様々なマトリックス１５０、及び計算ユニット２００、及び計算要素２５０の間で選択可能でルーティング可能な、又は交換可能なデータ・パス、入力パス、出力パス、制御パス、及び構成パスを提供する。
【００３２】
ただし、様々な相互接続ネットワーク（１１０、２１０、２４０、及び２２０）の、又はそれらのネットワーク内の任意の所与の交換動作又は選択動作を当技術分野で周知のとおり実装することができるが、本発明による様々な相互接続ネットワーク（１１０、２１０、２４０、及び２２０）の設計及びレイアウトは、以下に説明するとおり、新しく、革新的であることを指摘しておかなければならない。例えば、様々なレベルの相互接続が、以下に説明する様々なレベルのマトリックス１５０、計算ユニット２００、及び計算要素２５０に対応するように提供される。マトリックス１５０レベルにおいて、従来技術のＦＰＧＡ相互接続と比べて、マトリックス相互接続ネットワーク１１０は、所与の領域においてより少ない接続能力を有して、はるかに制限され、それほど「豊か」ではなく、キャパシタンスを縮小し、動作の速度を向上させている。ただし、特定のマトリックス１５０内又は計算ユニット２００内で、相互接続ネットワーク（２１０、２２０、及び２４０）は、はるかに密度が高く、豊かであり、参照の狭い局所内又は密集した局所内でより高い適応能力及び再構成能力を提供することが可能である。
【００３３】
様々なマトリックス又はノード１５０は、再構成可能であり、異質であり、すなわち、一般に、所望の構成に依存して、再構成可能なマトリックス１５０Ａは、一般に、再構成可能なマトリックス１５０Ｂ乃至１５０Ｎとは異なり、再構成可能なマトリックス１５０Ｂは、一般に、再構成可能なマトリックス１５０Ａ及び１５０Ｃ乃至１５０Ｎとは異なり、再構成可能なマトリックス１５０Ｃは、一般に、再構成可能なマトリックス１５０Ａ、１５０Ｂ、及び１５０Ｄ乃至１５０Ｎとは異なるといった具合である。様々な再構成可能なマトリックス１５０はそれぞれ、一般に、適応的で再構成可能な計算（又は演算）ユニット（２００）の異なる組み合わせ、又は様々な組み合わせを含み、計算ユニット２００は、一般に、様々な相互接続ネットワークを介して様々な機能を実行するように様々な形で適応するように接続、構成、及び再構成を行うことができる図４及び５に関連して以下により詳細に説明する固定の特定用途向け計算要素（２５０）の異なる組み合わせ、又は様々な組み合わせを含む。様々な内部構成及び内部再構成に加えて、やはり以下により詳細に説明するとおり、マトリックス相互接続ネットワーク１１０を介して、様々なマトリックス１５０を他のマトリックス１５０のそれぞれに対してより高いレベルで接続すること、構成すること、及び再構成することも可能である。
【００３４】
いくつかの異なる洞察に富み、革新的な概念が本発明のＡＣＥ１００アーキテクチャ内部に組み込まれており、ＡＣＥ１００のリアルタイムの動作、及びその本質的な利点の有用な説明の基礎を提供する。
【００３５】
本発明の第１の革新的な概念は、特定用途向けのハードウェア・ユニット、専用のハードウェア・ユニット、又は固定のハードウェア・ユニット（計算要素２５０）の適応的で再構成可能な使用、ならびに対応する乗算機能、複素乗算機能、及び加算機能の最適な実行のためにそれぞれが設計された複数の乗算器、複素乗算器、及び加算器などの、マトリックス１５０の計算要素２００（図４）内部のそれらの特定用途向けのハードウェア・ユニット、専用のハードウェア・ユニット、又は固定のハードウェア・ユニット（計算要素２５０）の内部に含められる加速のための特定の機能の選択に関わる。ＡＣＥ１００は、好ましい実施形態では、低電力消費に合わせて最適化されることから、加速のための機能は、電力消費に基づいて選択される。例えば、モバイル通信などの所与の用途に関して、対応するＣ（又はＣ＋＋）又はその他のコードが、電力消費に関して解析されることが可能である。そのような実証的な解析により、例えば、そのようなコードの１０％のような小さい部分が、実行された際、実際には、動作電力の９０％を消費することが明らかにされることが可能である。本発明によれば、そのような電力利用率に基づき、コードのその小さい部分が、あるタイプの再構成可能なマトリックス１５０内部で加速のために選択され、残りのコードは、例えば、コントローラ１２０として構成されたマトリックス１５０内部で実行されるように適合される。追加のコードが加速のために選択されることも可能であり、設計上の複雑さ、又は動作上の複雑さからもたらされる可能性があるトレードオフまで、ＡＣＥ１００による電力消費の最適化がもたらされる。さらに、図４に関連して説明したとおり、制御コードなどの他の機能が、マトリックス１５０が有限状態マシンとして構成される際に、マトリックス１５０内部で加速されることが可能である。様々なレベルの相互接続を介して、対応するアルゴリズムが、任意の所与の時点で、固定の計算要素（２５０）の構成及び再構成を介して実装され、すなわち、効率のために最適化され、構成されたハードウェア内部、すなわち、特定のアルゴリズムを実行するように最適化されたリアルタイムで構成された「マシン」内部で実装される。
【００３６】
本発明の次の、おそらく最も重要な概念であり、従来の技術の概念及び指示規則から際立って離れているのが、前述した様々な選択されたアルゴリズムを実装するのに利用される再構成可能な「ヘテロジニアス」の概念である。関連出願で示すとおり、従来技術の再構成可能性は、論理ゲートの全く同じブロックが豊かなプログラマブル相互接続内のアレイとして繰り返され、相互接続が、後に、非効率的で、しばしば、ルーティング問題及び組み合わせ上の問題を伴うが、特定の機能を実装するように全く同じゲート間で接続を提供するように構成される同質のＦＰＧＡだけに依拠していた。これとは明らかに対照的に、本発明によれば、計算ユニット２００内部で、異なる計算要素（２５０）が、専用の乗算器、複素乗算器、及び加算器などの対応する固定の（又は専用の）特定用途向けハードウェアとして直接に実装される。相互接続（２１０及び２２０）を利用して、これらの異なるヘテロジニアスな計算要素（２５０）を前もって、リアルタイムで、又は、遅い速度で適応する形で構成して、モバイル通信においてしばしば利用される離散コサイン変換の実行などの選択されたアルゴリズムを実行することができる。この結果、本発明によれば、異なる（「ヘテロジニアスな」）計算要素（２５０）が、任意の所与の時点で構成され、再構成されて所与のアルゴリズム又は他の機能が最適に実行される。さらに、繰り返しの多い機能に関して、計算要素の所与の実例又は構成が、時を経ても配備されたままになる、すなわち、そのような反復の多い計算の過程の終りまで変更されないことも可能である。
【００３７】
ＡＣＥ１００アーキテクチャの一時的な性質にも留意しなければならない。任意の所与の時点において、異なるレベルの相互接続（１１０、２１０、２４０、及び２２０）を利用して、特定の構成が、所与の機能を実行するように、又はモバイル局３０又は３２のＣＤＭＡ動作モードに関するパイロット信号探索を実装するなどの、特定のアルゴリズムを実装するように最適化されたＡＣＥ１００内部で存在することが可能である。別の時点で、構成が変更されて、ＣＤＭＡ動作モードに関するマルチパス受信などの別の機能又はアルゴリズムの実行のために、他の計算要素（２５０）が相互接続される、又は同じ計算要素２５０が異なった形で接続されることが可能である。この一時的な再構成可能性から２つの重要な特徴がもたらされる。第１に、アルゴリズムが、時を経て、例えば、新しい技術標準を実装するように変更されることが可能であるため、ＡＣＥ１００は、その新しいアルゴリズムを実装するように同時に進化し、再構成されることが可能である。第２に、計算要素が、ある時点で所与のアルゴリズムの実例として相互接続され、次に、別の異なるアルゴリズムの実行のために別の時点で再構成されるため、ゲート（又はトランジスタ）利用率が最大化され、活動率に関して最も効率的なＡＳＩＣよりも大幅に優れた性能が提供される。また、この一時的な再構成可能性により、前述したＭＩＮ１１０に本質的なメモリ機能も説明される。
【００３８】
また、様々な異なるアルゴリズムの実行に合わせた計算要素２５０のこの一時的な再構成可能性により、一方の構成及び再構成と、他方のプログラミング性又は再プログラミング性の間の本明細書で使用する区別も説明される。通常のプログラミング性は、既存のグループ又はセットの機能を利用し、このグループ又はセットの機能を時の経過の中で様々な順序で呼び出して、特定のアルゴリズムを実装することができる。これに対して、本明細書で使用する構成可能性及び再構成可能性は、以前に利用できなかった、又は存在しなかった新たな機能を追加する、又は生成する追加の能力を含む。
【００３９】
次に、本発明は、１つの実質的に連続する情報ストリーム内のデータと構成（又は他の制御）情報の緊密な結合（又は嵌合）も利用する。「シルバーウェア」又は「シルバーウェア」モジュールと呼ぶデータと構成情報のこの結合又は混合を図１に示している。「シルバーウェア」又は「シルバーウェア」モジュールと呼ぶデータと構成情報のこの結合、又は混合は、別の第２の関連特許出願の主題である。しかし、本発明では、データと構成情報を連続的であることも、パケットに分割されることも可能な１つの情報（又はビット）ストリームにするこの結合が、従来の技術のハードウェア相互接続の（しばしば、使用されない）複数の重なり合うネットワークを必要とすることなく、ＡＣＥ１００のリアルタイムの再構成可能性を可能にするのに役立つことを述べるだけで十分である。例えば、喩えとして、特定の第１の期間における、その第１の期間中、又は第１の期間後に対応するアルゴリズムを実行するハードウェアとしての計算要素２５０の第１の構成は、同じアルゴリズムを実行することができるソフトウェア内のサブルーチンを「呼び出すこと」のハードウェア類似物と見なす、又は概念化することができる。このため、構成情報（の第１のサブセット）によって指示されるとおり計算要素２５０の構成が行われると（すなわち、配備されると）、アルゴリズムにおいて使用するためのデータが、シルバーウェア・モジュールの一部として即時に利用可能である。次に、同じ計算要素２５０を、やはり即時に利用可能なデータを利用して、第２の異なるアルゴリズムの実行のために、第２の構成情報（すなわち、構成情報の第２のサブセット）によって指示されるとおり、第２の期間にわたって再構成することができる。構成された計算要素２５０内で使用するためのデータの即時性により、メモリ・アドレスを特定し、アドレス指定されたレジスタから記憶済みのデータをフェッチする複数の別個のソフトウェア工程に対する１クロック・サイクル又は複数クロック・サイクルのハードウェア類似物が提供される。これは、構成された計算要素が、比較的少ないクロック・サイクル数で、従来のマイクロプロセッサ内又はデジタル信号プロセッサ（「ＤＳＰ」）内のサブルーチンとして呼び出された場合、実行に桁違いに多いサイクル数を要する可能性があるアルゴリズムを実行することができるので、追加の効率のさらなる結果を有する。
【００４０】
データと構成情報の混合としてのシルバーウェア・モジュールのこの使用が、適応的な異なるヘテロジニアスな計算ユニット２００及びマトリックス１５０を形成する複数の異質で固定の計算要素２５０の再構成可能性と相俟って、ＡＣＥ１００アーキテクチャが複数の異なる動作モードを有することを可能にする。例えば、ハンドヘルド・デバイス内部に含められる場合、対応するシルバーウェア・モジュールが与えられると、ＡＣＥ１００は、セルラー電話機又はその他のモバイル電話機、音楽プレーヤ、ページャ、パーソナル・デジタル・アシスタント、及び他の新しい機能又は既存の機能として様々な異なる動作モードを有することが可能である。さらに、これらの動作モードをデバイスの物理的場所に基づいて変更することができる。例えば、本発明によれば、ＡＣＥ１００は、第１のセットの構成情報を使用して、米国内で使用するためのＣＤＭＡモバイル電話機としての第１の動作モードに合わせて構成されているが、第２のセットの構成情報を使用して、欧州内で使用するためのＧＳＭモバイル電話機としての動作モードに合わせて再構成されることが可能である。
【００４１】
図３を再び参照して、コントローラ１２０（好ましくは、有限状態マシンとして構成されたマトリックス（ＫＡＲＣ）１５０Ａ及びマトリックス（ＭＡＲＣ）１５０Ｂ）を（１）シルバーウェア・モジュールに関連して、すなわち、単一の情報ストリーム内のデータと構成情報の緊密な結合に関連して、（２）複数の可能な動作モードに関連して、（３）再構成可能なマトリックス１５０に関連して、（４）図４に示した再構成可能な計算ユニット２００及び計算要素２５０に関連して説明することができる。前述したとおり、シルバーウェア・モジュールを介して、ＡＣＥ１００は、新しい技術標準へのアップグレード、あるいはモバイル通信デバイスに対する音楽機能の追加などの完全に新しい機能の追加などの新しい機能又は追加の機能を実行するように構成する、又は再構成することができる。そのようなシルバーウェア・モジュールは、メモリ１４０のマトリックス１５０の中に記憶すること、又は、例えば、マトリックス相互接続ネットワーク１１０を介して、外部（有線又は無線）ソースから入力することができる。好ましい実施形態では、複数のマトリックス１５０の１つが、セキュリティ目的で、そのようなモジュールを復号化し、モジュールの妥当性を検証するように構成される。次に、既存のＡＣＥ１００リソースのあらゆる構成又は再構成に先立ち、コントローラ１２０が、マトリックス（ＫＡＲＣ）１５０Ａを介して、音楽機能の追加により、既存のモバイル通信機能が悪影響を受けないかどうかなどの、既存の機能に悪影響を与えることなく構成又は再構成を行うことが可能であることを検査し、検証する。好ましい実施形態では、そのような構成又は再構成に関するシステム要件は、以上の評価機能を実行する際にマトリックス（ＫＡＲＣ）１５０Ａが使用するために、シルバーウェア・モジュール内又は構成情報内に含められる。構成又は再構成をそのような悪影響なしに行うことができる場合、シルバーウェア・モジュールがマトリックス１５０（メモリ１４０の）にロードされることが許され、マトリックス（ＫＡＲＣ）１５０Ａが、メモリ１４０のマトリックス１５０Ｃ及び１５０Ｄの内部のＤＭＡエンジン（又は従来のメモリの独立型ＤＡＭ）をセットアップする。構成又は再構成により、そのような悪影響がもたらされる、又はもたらされる可能性がある場合、マトリックス（ＫＡＲＣ）１５０Ａは、その新しいモジュールがＡＣＥ１００内部に組み込まれることを許さない。
【００４２】
図３の参照を続けると、マトリックス（ＭＡＲＣ）１５０Ｂが、マトリックス１５０リソースのスケジューリング、対応するデータのクロック制御及びタイミングを管理して、様々な計算要素２５０及び計算ユニット２００の構成又は再構成を対応する入力データ及び出力データと同期させている。好ましい実施形態では、タイミング情報又はその他のクロック制御情報もシルバーウェア・モジュール内部又は、より一般的には構成情報内部に含められて、マトリックス（ＭＡＲＣ）１５０Ｂが、様々な相互接続ネットワークを介して、様々なマトリックス１５０の再構成を時を違えずに、好ましくは、ジャストインタイムで、様々な再構成される計算ユニット２００の入力に対応するデータが出現する前に行われるように指示することを可能にする。さらに、マトリックス（ＭＡＲＣ）１５０Ｂは、様々なマトリックス１５０のいずれの内部でも加速されていない任意の残りの処理も行うことができる。このため、マトリックス（ＭＡＲＣ）１５０Ｂは、リアルタイムで、様々な再構成可能なハードウェア・ユニットによって利用されるあらゆる対応するデータと同期して、マトリックス１５０、計算ユニット２００、及び計算要素２５０の構成及び再構成を「呼び出し」、残りの制御処理又は他の制御処理を行う制御ユニットと見なすことができる。他のマトリックス１５０も、この制御機能を含むことが可能であり、任意の所与のマトリックス１５０が、その他のマトリックス１５０の構成及び再構成を呼び出すこと、及び制御することができる。
【００４３】
図４は、複数の計算ユニット２００（計算ユニット２００Ａ乃至２００Ｎとして示す）、及び複数の計算要素２５０（計算要素２５０Ａ乃至２５０Ｚとして示す）を有する再構成可能なマトリックス１５０をより詳細に示すブロック図であり、好ましいタイプの計算要素２５０のさらなる例示を提供している。図４に示すとおり、いずれのマトリックス１５０も、一般に、マトリックス・コントローラ２３０、複数の計算（又は演算）ユニット２００を含み、マトリックス相互接続ネットワーク１１０の論理上又は概念上のサブセット又は部分として、データ相互接続ネットワーク２４０及びブール相互接続ネットワーク２１０を含む。前述したとおり、好ましい実施形態では、ＡＣＥ１００アーキテクチャ内部で「深度」が増すにつれ、相互接続ネットワークは、より高いレベルの適応性及び再構成のためにますます豊かになる。ブール相互接続ネットワーク２１０は、やはり前述したとおり、様々な計算ユニット２００の間で再構成及びデータ相互接続の能力を提供し、好ましくは、小さく（すなわち、数ビットだけの幅）、他方、データ相互接続ネットワーク２４０は、様々な計算ユニット２００の間でデータ入力及びデータ出力のための再構成及びデータ相互接続の能力を提供し、好ましくは、比較的大きい（すなわち、多数のビットの幅）。ただし、再構成能力及びデータ能力に概念上、分けているが、マトリックス相互接続ネットワーク１１０の任意の所与の物理部分は、任意の所与の時点で、ブール相互接続ネットワーク２１０として、データ相互接続ネットワーク２４０として、最低レベルの相互接続２２０（様々な計算要素２５０間の）として、あるいは他の入力機能、出力機能、又は接続機能として動作することが可能であることに留意されたい。
【００４４】
図４の参照を続けると、計算ユニット２００内部に、計算要素２５０Ａ乃至２５０Ｚ（個々にも、まとめても計算要素２５０と呼ぶ）として示した計算ユニット２００、及び追加の相互接続２２０が含まれている。相互接続２２０は、様々な計算要素２５０の間で再構成可能な相互接続の能力、及び入力／出力パスを提供する。前述したとおり、様々な計算要素２５０のそれぞれは、所与のタスク又は所与の範囲のタスクを実行するように設計された専用の特定用途向けハードウェアから構成され、複数の異なる固定の計算要素２５０をもたらす。相互接続２２０を利用して、固定の計算要素２５０を再構成可能な形で一緒に接続して、適応的で多様な計算ユニット２００にすることができ、計算ユニット２００も、相互接続２２０、ブール・ネットワーク２１０、及びマトリックス相互接続ネットワーク１１０を利用して、さらに再構成し、相互接続して、任意の所与の時点でアルゴリズム又はその他の機能を実行させることができる。
【００４５】
好ましい実施形態では、様々な計算要素２５０が一緒に設計され、グループ化されて、様々な適応的で再構成可能な計算ユニット２００（例えば、図５乃至９に示す）になる。乗算、相関、又は加算などの特定のアルゴリズム又は機能を実行するように設計された計算要素２５０に加えて、好ましい実施形態では、他のタイプの計算要素２５０も利用される。図４に示すとおり、計算要素２５０Ａ及び２５０Ｂが、メモリを実装して、任意の所与の計算機能又は処理機能のためのローカル・メモリ要素（より「遠隔の」メモリ１４０と対比される）を提供する。さらに、計算要素２５０Ｉ、２５０Ｊ、２５０Ｋ、及び２５０Ｌは、有限状態マシンを実装するように構成され（例えば、図７、８、及び９に示した計算要素を使用して）、複雑な制御処理に特に適したローカルの処理能力（より「遠隔の」マトリックス（ＭＡＲＣ）１５０Ｂと対比される）を提供する。
【００４６】
ＡＣＥ１００の所望の機能に応じて利用できる可能性がある異なる計算要素２５０の様々なタイプで、計算ユニット２００を緩やかに分類することができる。計算ユニット２００の第１のカテゴリは、乗算、加算、有限インパルス応答濾波等の線形演算を実行する計算要素２５０を含む（例えば、図６に関連して以下に例示するとおり）。第２のカテゴリの計算ユニット２００は、離散コサイン変換、三角法計算、及び複素乗算などの非線形演算を実行する計算要素２５０を含む。第３のタイプの計算ユニット２００は、複雑な制御シーケンス、動的スケジューリング、及び入力／出力の管理に特に役立つ（図４に示し、図７乃至９に関連して以下により詳細に示す）計算ユニット２００Ｃのような有限状態マシンを実装し、第４のタイプは、図４に示すとおり、計算ユニット２００Ａのようなメモリ、及びメモリ管理を実装することが可能である。最後に、第５のタイプの計算ユニット２００が、暗号化、復号化、チャネル符号化、ビタビ復号化、パケット処理及びプロトコル処理（インターネット・プロトコル処理などの）、などのためのビット・レベル操作を行うように含められることが可能である。
【００４７】
好ましい実施形態では、他のマトリックス又はノード１５０からの制御に加えて、マトリックス・コントローラ２３０も、任意の所与のマトリックス１５０内部に含められ、又はその内部で分散され、あらゆる再構成プロセスとあらゆる対応するデータ操作の参照及び制御のより高い局所性も提供することが可能である。例えば、計算要素２５０の再構成が任意の所与の計算ユニット２００内部で行われると、マトリックス・コントローラ２３０は、その特定の実例（又は構成）が、ある期間にわたってそのまま残されて、例えば、所与のアプリケーションに関する繰り返しの多いデータ処理を続けるようにすることを指示することができる。
【００４８】
図５は、本発明による再構成可能なマトリックス１５０の例示的な、又は代表的な計算ユニット２００をより詳細に示すブロック図である。図５に示すとおり、計算ユニット２００は、通常、複数のメモリ計算要素２５０Ａ及び２５０Ｂなどの複数の多様で異質性の固定の計算要素２５０を含み、計算ユニット（「ＣＵ」）コア２６０を形成して、複数のアルゴリズム計算要素又は有限状態マシン計算要素２５０Ｃ乃至２５０Ｋを含む。前述したとおり、複数の多様な計算要素２５０の各計算要素２５０は、加算又は乗算などの特定の機能又はアルゴリズムを実行するように設計され、対応する論理ゲート・レイアウトを有する固定の、又は専用の特定用途向け回路である。さらに、様々なメモリ計算要素２５０Ａ及び２５０ＢをＲＡＭ（相当な深度を有する）として、又は１ビット又は２ビットの深度を有するレジスタとしてなど、様々なビット深度で実装することができる。
【００４９】
概念データ・ネットワーク２４０及びブール相互接続ネットワーク２１０を形成して、例示的な計算ユニット２００は、複数の入力マルチプレクサ２８０、複数の入力線（又はワイヤ）２８１も含み、ＣＵコア２６０（線又はワイヤ２７０として示す）の出力に対して複数の出力デマルチプレクサ２８５及び２９０、及び複数の出力線（又はワイヤ）２９１も含む。入力マルチプレクサ２８０を介して、データ変換、ならびに構成プロセス及び相互接続プロセスにおいて入力用のために適切な入力線２８１を選択することができ、出力デマルチプレクサ２８５及び２９０を介して、やはり追加のデータ変換、ならびに構成プロセス及び相互接続プロセスで使用ために、出力又は複数の出力を選択された出力線２９１上に配置することができる。
【００５０】
好ましい実施形態では、様々な入力線２８１及び出力線２９１の選択、及び相互接続（２１０、２２０、及び２４０）を介する様々な接続の生成は、以下に説明するとおり、計算ユニット・コントローラ２５５からの制御ビット２６５の制御下にある。その制御ビット２６５に基づき、様々な入力イネーブル２５１、入力選択２５２、出力選択２５３、ＭＵＸ選択２５４、ＤＥＭＵＸイネーブル２５６、ＤＥＭＵＸ選択２５７、及びＤＥＭＵＸ出力選択２５８のいずれかが活動化又は非活動化されることが可能である。
【００５１】
例示的な計算ユニット２００は、制御ビット２６５を介して、それぞれの計算要素２５０、相互接続（２１０、２２０、及び２４０）、及びその他の要素（上記の）が毎クロック・サイクルで何を行うかを支配する計算ユニット・コントローラ２５５を含む。別個に示していないが、相互接続（２１０、２２０、及び２４０）を介して、様々な入力イネーブル２５１、入力選択２５２、出力選択２５３、ＭＵＸ選択２５４、ＤＥＭＵＸイネーブル２５６、ＤＥＭＵＸ選択２５７、及びＤＥＭＵＸ出力選択２５８などの様々な制御ビット２６５が、必要に応じて、制御ユニット２００の様々な部分に配信される。ＣＵコントローラ２９５は、制御（又は構成）情報の受信、及びステータス情報の送信のための１つ又は複数の線２５５も含む。
【００５２】
前述したとおり、相互接続は、前述した様々なビット幅のデータ相互接続ネットワーク２４０とブール相互接続ネットワーク２１０への概念上の分割を含むことが可能である。一般に、構成可能な接続及び再構成可能な接続を生成するため、データ及び構成情報の対応するルーティングのために（より幅のある）データ相互接続ネットワーク２４０が利用される。（より狭い）ブール相互接続ネットワークも構成可能な接続及び再構成可能な接続を生成するために利用されるが、データフロー・グラフ（ＤＦＧ）の論理（又はブール）決定の制御のために利用されて、そのようなＤＦＧにおける決定ノードを生成し、そのようなＤＦＧ内のデータ・ルーティングのために使用されることも可能である。
【００５３】
図６は、本発明による複数の異なる固定の計算要素２５０を有する例示的な好ましい多機能適応計算ユニット５００を詳細に示すブロック図である。相応に構成された場合、適応計算ユニット５００は、有限インパルス応答濾波、高速フーリエ変換などの関連出願において説明した多種多様な機能、ならびに通信動作モードに役立つ離散コサイン変換などの他の機能を実行する。図示するとおり、この多機能適応計算ユニット５００は、入力メモリ５２０、データ・メモリ５２５、レジスタ５３０（レジスタ５３０Ａ乃至５３０Ｑとして示す）、乗算器５４０（乗算器５４０Ａ乃至５４０Ｄとして示す）、加算器５４５、第１の演算論理ユニット（ＡＬＵ）５５０（ＡＬＵ＿１  ５５０Ａ乃至５５０Ｄとして示す）、第２の演算論理ユニット（ＡＬＵ）５５５（ＡＬＵ＿２  ５５５Ａ乃至５５５Ｄとして示す）、及びパイプライン（長さ１）レジスタ５６０を含む複数の固定の計算要素の複数の構成に関する能力を含み、入力５０５、線５１５、出力５７０、及びマルチプレクサ（ＭＵＸ及びＭＸ）５１０（ＭＵＸ及びＭＸ５１０Ａ乃至５１０ＫＫとして示す）が相互接続ネットワーク（２１０、２２０、及び２４０）を形成している。２つの異なるＡＬＵ５５０及び５５５は、好ましくは、例えば、離散コサイン変換における基数２の演算に特に役立つ並列の加算及び減算の演算のために利用される。
【００５４】
図７は、本発明による複数の固定の計算要素を有する好ましい適応論理プロセッサ（ＡＬＰ）計算ユニット６００を詳細に示している。ＡＬＰ６００は、適応性が高く、好ましくは、入力／出力構成、有限状態マシン実装、一般的なフィールド・プログラミング性、及びビット操作のために利用される。ＡＬＰ６００の固定の計算要素は、図９に別個に示すとおり、複数の適応コア・セル（ＣＣ）６１０（図８）のそれぞれの一部分（６５０）である。複数の垂直入力（ＶＩ）６１５、垂直リピータ（ＶＲ）６２０、垂直出力（ＶＯ）６２５、水平リピータ（ＨＲ）６３０、水平ターミネータ（ＨＴ）６３５、及び水平コントローラ（ＨＣ）６４０の様々な組み合わせ、及び並べ替えから、相互接続ネットワーク（２１０、２２０、及び２４０）が形成される。
【００５５】
図８は、本発明による固定の計算要素６５０を有する適応論理プロセッサ計算ユニット６００の好ましいコア・セル６１０をより詳細に示すブロック図である。固定の計算要素は、図９に別個に示した３入力−２出力の機能ジェネレータ５５０である。好ましいコア・セル６１０は、制御論理６５５、制御入力６６５、制御出力６７０（出力相互接続を提供する）、出力６７５、及び入力（相互接続ＭＵＸを提供する）６６０（入力相互接続を提供する）も含む。
【００５６】
図９は、本発明による適応論理プロセッサ計算ユニット６００のコア・セル６１０の好ましい固定の計算要素６５０をより詳細に示すブロック図である。固定の計算要素６５０は、３つの入力７２０及び２つの出力７１０を有する複数の排他ＮＯＲ（ＸＯＲ）ゲート６８０、ＮＯＲゲート６８５、ＮＡＮＤゲート６９０、及び排他ＯＲ（ＸＯＲ）ゲート６９５の固定のレイアウトから構成される。構成及び相互接続は、ＭＵＸ７０５及び相互接続入力７３０を介して提供される。
【００５７】
以上の説明から明白なとおり、様々なレベルの相互接続（１１０、２１０、２４０、及び２２０）を介して、ヘテロジニアスな計算ユニット（２００）を形成するように構成し、再構成することができ、異質性マトリックス１５０を形成するように構成し、再構成することがさらに可能である複数の固定のヘテロジニアスな計算要素（２５０）のこの使用により、適応計算アーキテクチャ又は適応計算エンジンと同義で呼ぶことができる全く新しいクラス又はカテゴリの集積回路が生成される。本発明の適応コンピューティング・アーキテクチャは、ＦＰＧＡ、ＡＳＩＣ、又はプロセッサの部類又はカテゴリの範囲内における概念上の視点又は命名法の視点からは十分に特徴を述べることができないことに留意されたい。例えば、適応コンピューティング・アーキテクチャの非ＦＰＧＡの特徴は、適応コンピューティング・アーキテクチャが同一の論理ユニットのアレイ、又は単に、任意の種類の繰り返されるアレイを含まないため直ちに明白である。また、例えば、適応コンピューティング・アーキテクチャの非ＡＳＩＣの特徴は、適応コンピューティング・アーキテクチャが特定用途向けではなく、複数の機能モードを提供し、好ましくは、リアルタイムで再構成可能であるため、直ちに明白である。この例を続けると、適応コンピューティング・アーキテクチャの非プロセッサの特徴は、適応コンピューティング・アーキテクチャが、命令を実行することに集中して、データ操作が副産物として行われるのではなく、データを直接に処理するように構成されるため、直ちに明白である。
【００５８】
図１及び２を再び参照すると、本発明の様々なシステム及び方法を、次に、構成情報の１つ又は複数のセットに応答した固定の計算要素２５０の構成及び／又は再構成に基づき、ＡＣＥ１００アーキテクチャの文脈において見ることができる。「さらに何か」の構成情報なしでは、ＡＣＥ１００は、基本的に、又は実質的に、空の、又は「空白の」デバイスである。無線通信、ラジオ受信、又はＭＰ３音楽再生などの所望の機能を提供し、対応するデータを処理するためにＡＣＥ１００の１つ又は複数の動作モードを生成する構成を生成するのに構成情報が必要である。
【００５９】
そのような構成及び再構成は、多種多様な仕方で行われることが可能である。例えば、ＡＣＥ１００全体は、モバイル通信デバイスとしてあらかじめ構成されるなど、あらゆる特定の使用に先立って構成されることが可能である。他の実施形態では、ＡＣＥ１００は、オペレーティング・システムが、電源オン（ブート）し、ネットワーク４０を介するなどして、特定の動作モード及び機能に関する他の構成を獲得し、ロードすることをさせるように構成されることが可能である。また、ＡＣＥ１００は、部分的に構成されていて、一部のマトリックス１５０が構成され、動作しており、他のマトリックス１５０は、他の機能に合わせて構成されていることも可能である。
【００６０】
前述したとおり、そのような構成情報をデータとインターリーブして、シルバーウェア（又はシルバーウェア・モジュール）を形成することができる。さらに、そのような構成情報は、いずれのデータとも分離していることも可能である（実質的に、シルバーウェア・モジュールを時間にわたって分散させて）。例えば、第１のセットの構成情報が、モバイル通信のためなど、第１の動作モードのためにＡＣＥ１００に提供されることが可能である。音声データなどのデータが、後に、任意の所与の通信セッション中に別個に提供されることが可能である。次に、ＡＣＥ１００の様々なコントローラ１２０機能が、構成情報の適切なサブセットを対応するデータとインターリーブして、マトリックス１５０にシルバーウェア・モジュールが提供される。前述したとおり、そのようなコントローラ機能は、様々なマトリックス１５０内に分散されること、又は構成情報自体の中に組み込まれることが可能である。
【００６１】
図１を参照すると、ＡＣＥ１００が、複数のソースから構成情報を獲得することができる。図１に示すとおり、構成情報が、例えば、ネットワーク４０（適切な仲介するスイッチ５６及び５２、ならびに基地局２５を有する）、又はルータ５３を介して、サーバ５４、ＷＡＮ４２、ＬＡＮ４１、又は付属ネットワーク・エンティティ５０からダウンロードを通じてＡＣＥ１００に提供されることが可能である。ダウンロードは、有線（例えば、撚線対、光ファイバ、同軸ケーブル、混成光ファイバ−同軸ケーブル）であるか、又は、基地局２５、又はサテライト（図示せず）、又は無線ＬＡＮ４３のトランシーバを介するなど、無線であることが可能である。また、構成情報は、例えば、フラッシュ・メモリ１０、シルバーウェア記憶媒体１５、コンピュータ可読媒体又は他のマシン可読媒体２０、ＰＣＭＣＩＡカード、ＰＤＡモジュール、又は他のメモリ・カードを介してＡＣＥ１００に提供されることも可能である。この構成情報は、好ましいＡＣＥ１００の実施形態では、様々なマトリックス１５０内部の分散メモリであるメモリ１４０の中に記憶され、あるいはシステム６０（ＳＯＣ）の実施形態では、メモリ６１の中に記憶されることも可能である。また、構成情報も、単にマトリックス１５０の実際の構成として記憶されることが可能であり、ＭＩＮ１１０が、実質的にメモリとして機能する。また、構成情報は、特定のアプリケーション又は単独の用途のためにリアルタイムで配信され、受信されて、過渡的であることも可能である。他の等価の設備及び記憶手段は、当分野の技術者には明白であろう。（ダウンロード又は他の媒体を介して構成情報を受け取るＡＣＥ１００を本明細書で一般的に「受信側ＡＣＥ」と呼ぶ。）
【００６２】
さらに、システム・ユーザ、インフラストラクチャの要素、ＡＣＥ１００、ＡＣＥ１００を含む別のデバイス、又は独立のデバイスを含め複数のソースから、そのような構成情報のニーズ又は要求が生じることも可能である。例えば、システム・ユーザが、デバイスを新しい標準にアップグレードするように新しい構成情報のダウンロードを要求することができ、あるいは、追加の著作権で保護されたＭＰ３音楽を再生するための新たな構成情報を含むメモリ・モジュール（フラッシュ１０、又はシルバーウェア記憶媒体１５などの）を購入することができる。また、インフラストラクチャ要素が、個別のＡＣＥ１００デバイス（プロバイダと受け手の１対１（１：１）対応が存在して、単一のユーザ）に伝送されるか、多くのＡＣＥ１００デバイス（プロバイダと受け手の１対多（１：多）対応が存在して、複数のユーザ）にブロードキャストされる新しい構成のダウンロードを開始して、システム・アップグレードを提供すること、新しい標準に適合させること、又は他のリアルタイムの性能拡張を提供することも可能である。
【００６３】
本発明の別の革新的な要素は、とりわけ、自己変更及び自己構成のための機構を提供するＡＣＥ１００自体（又はＡＣＥ１００を含む別のデバイス）によって生成される構成要求又は再構成要求に関する。例えば、米国内で使用するための第１のＣＤＭＡ構成を通常、有するＡＣＥ１００（モバイル局３０又は３２内部の）が、欧州内で電源オンにされる可能性がある。標準のＣＤＭＡ通信が存在しないので、ＡＣＥ１００は、現在の場所に適切な第２のセットの構成情報の無線ダウンロードを要求し、ＡＣＥ１００が欧州内で使用するためのＧＳＭ構成を有することを可能にすることができる。
【００６４】
前述したとおり、構成情報は、一般に、複数であり、第１の構成情報、第２の構成情報、乃至第ｎの構成情報などの複数のサブセットの構成情報から構成されている。１つの「セット」の構成情報は、ＡＣＥ１００の特定の動作モードに対応するものと考えることができる。例えば、第１のセットの構成情報がＣＤＭＡ動作モードを提供することができ、第２のセットの構成情報がＧＳＭ動作モードを提供することができる。
【００６５】
やはり前述したとおり、ＡＣＥ１００の所与の、又は選択されたより高いレベルの動作モードに関して（又は、等価であるが、所与の、又は選択されたセットの構成情報に関して）、様々な固定のヘテロジニアスな計算要素２５０が、第１の構成情報に応答した離散コサイン変換のための構成や、第２の構成情報に応答した高速フーリエ変換のための再構成のように、構成情報のサブセットに応答した様々なより低いレベルの、又はより低位の機能モードに関して、相応して構成され、再構成される。
【００６６】
また、構成情報は、異なる形態を有することも可能である。一実施形態では、構成情報は、メモリ１４０の中に記憶されること、マトリックス１５０内部に分散して記憶されること、又はＭＩＮ１１０の構成として直接に記憶されることが可能なバイナリ情報の１つ又は複数の別々のパケットを含むことが可能である。また、構成情報は、バイナリ情報又は他の情報の連続ストリームなどの、連続した形態で実現されることも可能である。指示に応じて、構成情報からの構成ビット及びその他の制御ビットが、データと互いに入り込むようにされて、ＡＣＥ１００内部でリアルタイムに使用するためにシルバーウェア・モジュールが形成される。別の実施形態では、構成情報は、連続ストリーム（選択された機能の期間にわたって連続する）の形態で対応するデータとともにリアルタイムで提供されることが可能である。例えば、ＭＰ３プレーヤに関する構成情報が、再生される音楽のデータ・ビット・ファイルとともにシルバーウェア・ストリームでリアルタイムに提供されることが可能である。
【００６７】
２つの追加の特徴を本発明で利用して、構成情報に応答してＡＣＥ１００が安全に、効果的に構成され、かつ／又は再構成されるこの能力が提供される。第１に、ＡＣＥ１００のリソース又は能力のパラメータ、又は測度である「ユニット・ハードウェア」の概念を利用して、所与のＡＣＥ１００が新しい構成をとり、新しい機能を実行する能力が、現在の構成及び機能を維持して、十分なレベル又は妥当なレベルの性能を提供することに鑑みて、あるいは現在の構成及び機能を完全に置き換えることに鑑みて正確に測定される。例えば、第１世代のＡＣＥ１００は、ＣＤＭＡモバイル局としてと同時にパーソナル・デジタル・アシスタントとして構成するのに、ユニット・ハードウェアで測定して十分なリソースを有する可能性がある。例えば、ＭＰ３プレーヤに関する新しい構成をロードしようと試みることが、不十分なシステム・リソースのために勧められない可能性があり、したがって、新しい構成は、ＣＤＭＡ性能が許容できるレベルを下回って低下することを生じさせる。逆に、ＰＤＡとして最初に構成されている第１世代のＡＣＥ１００が、そのアプリケーションに関してより大幅な性能の低下が許容できる可能性があるため、新しい構成をロードするのに十分な残りのリソースを有する可能性がある。この例を続けると、第２世代又は第３世代のＡＣＥ１００が、既存のＣＤＭＡ構成を維持しながら、追加のＧＳＭ構成及びＭＰ３構成のための十分なリソースを同時に有するなどの、現在の既存の構成だけでなく、そのような新しい構成（対応する追加の機能を有する）もサポートするのに十分な計算要素リソース、相互接続リソース、及びその他のＡＣＥ１００リソースを有することが可能である。
【００６８】
再構成能力を測定するユニット・ハードウェアのこの概念に関連しているのが、新しい機能の追加に関する構成情報、又は複数のバージョン又は複数のライブラリの概念である。構成情報のそのような複数のバージョン又はライブラリは、特に、レガシー・アーキテクチャと対比される最新のＡＣＥアーキテクチャに対する適用に関して、ＡＣＥ１００デバイスの潜在的に異なる能力に対応するように調整される。例えば、違いが、性能品質や、機構の数及びタイプなどの事柄に関連している一式の異なる構成情報セットを開発して、特定の動作モードを提供することができる。構成情報の様々なセット又はバージョンのそれぞれが、利用できる様々なレベルのＡＣＥ１００再構成能力に対応するシステム要件を有するように生成される。「ユニット・ハードウェア」のレベルに対応する要件レベルを有する構成情報のそのようなライブラリが、要求のダウンロード、又は他の準備に先立って生成されることが可能であり、あるいは、受信側ＡＣＥ１００の特定の構成能力に適合させて、リアルタイムで必要に応じて生成されることが可能である。例えば、対応する適合された構成情報ダウンロードが、ＡＣＥ１００と構成プロバイダの間の交渉又は対話に基づき、リアルタイムで決定されることが可能であり、所与の動作モードに関する交渉された、又は所定の性能レベルに適切な構成情報が生成され、提供される。
【００６９】
また、例えば、特定の動作モードに関する構成情報は、所定のシステム要件を有する１つのバージョンでだけ利用できることも可能である。その場合、特定のＡＣＥ１００が、その要件を満たす対応する能力を有さない場合、ＡＣＥ１００自体が、そのようなダウンロードの可能性を拒否する、又は断ることが可能である。
【００７０】
この結果、特定の動作モード向けの特定のＡＣＥアーキテクチャの構成（及び／又は再構成）に先立ち、ＡＣＥ１００の能力が特定され、デバイスの既存の動作モード又は他の機能を変更する、又は害する可能性がある構成のダウンロード又は受信が回避されるか、又は特定のＡＣＥ１００の能力に適合されたより適切なダウンロードが提供される。
【００７１】
構成情報に応答して異なる物理接続が生成されるか、又は除去される適応性のあるＡＣＥ１００アーキテクチャの性質により、構成及び再構成に関するセキュリティが最重要となる。そのような構成はＡＣＥアーキテクチャの動作モードを変更できることから、好ましい方法、システム、及び装置の実施形態では、ウイルス、又は他の不要な不正の構成情報などによる破壊的な構成、又は有害な構成の可能性を回避する許可対策及びセキュリティ対策が実施される。
【００７２】
ＡＣＥ１００の構成可能性及び再構成可能性を制御するいくつかのレベルのセキュリティが実施されることが可能である。第１のレベルのセキュリティは、構成情報を要求する、又は受け取る許可のレベルで実施される。例えば、ＡＣＥ１００は、構成情報のダウンロードに先立って、「ハンドシェーク」中に、又は他の初期の情報（ユニット・ハードウェア情報などの）交換中に、固有識別子又はデジタル署名がサーバ５４に伝送されるようにすることができる。サーバ５４は、許可された受信側のデータベースにアクセスすることができ、特定のＡＣＥ１００が含まれる場合、サーバ５４は、ダウンロードを許可する。そのような許可対策は、著作権で保護された資料、ならびに秘密であるか、又はそれ以外の形で規制されている可能性がある他の情報などの知的財産の保護のために重要である。例えば、様々な暗号化技術及び復号化技術を利用して、不正な構成情報、ウイルスの構成情報、又は破損した構成情報のダウンロードの可能性に対して保護する別のレベルのセキュリティを実施することもできる。
【００７３】
また、様々な構成及びコンテンツ使用の可能性を特定し、把握しておくために、様々な形態の監視、追跡、及び他の記録保持も利用され、多数の異なるネットワーク・エンティティが関与することが可能である。例えば、構成情報の特定のダウンロードが、複数のネットワーク・エンティティから生成されることが可能であり、構成情報の特定のダウンロードに関する１つのトランザクションも、複数のネットワーク・エンティティにわたって分散される。この例を続けると、構成情報（又はシルバーウェア）のダウンロードの要求が、無線サービス・プロバイダ「Ａ」の基地局２５において受信されることが可能である。この要求を満たすため、無線サービス・プロバイダ「Ａ」は、要求側ＡＣＥ１００の許可ステータスを特定し、許可されている場合、コンテンツ・プロバイダ「Ｂ」などの別のプロバイダに要求を転送し、プロバイダ「Ｂ」が、コンテンツ・サーバ５４を使用して、音楽ビット・ファイルなどの要求されたデータを提供する。やはり、プロバイダ「Ａ」からの要求に応答して、ＭＰ３構成情報のセットが、構成プロバイダ「Ｃ」により、構成情報サーバなどのプロバイダ「Ｃ」の制御下の第２の異なるサーバ５４を使用して同時に提供される。コンテンツ（データ）及び構成情報は、シルバーウェア・プロバイダ「Ｄ」に提供され、プロバイダ「Ｄ」は、シルバーウェア・モジュール・アプリケーション・ノード５１を有する第１の付属ネットワーク・エンティティ５０を使用して、データと構成をインターリーブしてシルバーウェア・モジュールを形成する。次に、暗号プロバイダ「Ｅ」が、暗号化アプリケーション・ノード５１を有する第２の付属ネットワーク・エンティティ５０を使用してシルバーウェア・モジュールを暗号化し、要求側ＡＣＥ１００に伝送するために暗号化されたシルバーウェア・モジュールをサービス・プロバイダ「Ａ」に提供する。それぞれのそのような分散トランザクションに関して対応するアカウンティング及びその他のレコードが生成され、権利使用料、使用料、及びライセンス料の対応する配分が行われる。また、コンテンツ使用も、例えば、コンテンツ・サーバによって追跡されることが可能である。
【００７４】
また、構成情報の生成及び提供は、空間にわたって分散されることに加えて、時間にわたって分散されることも可能であり、前述した（また図１０を参照して以下に述べる）様々な機能は、異なる期間中に行われる。例えば、構成情報の１つ又は複数のバージョン又はセットが、あらゆる特定の使用に先立つなど、第１の所定の期間中に生成され、記憶されることが可能である。後に、構成情報のそのようなセットが、セキュリティ−経理許可プロセス後など、第２の所定の期間中に提供されることが可能である。
【００７５】
図１０は、本発明による方法実施形態を示す流れ図であり、有用な要約を提供している。図１０に示した方法は、何らかの種類のネットワーク４０を介した構成情報の提供に関する。以下に説明する工程の多くは、フラッシュ・モジュール１０の購入を介する構成情報の提供などの他の形態の引渡しの場合、省略することができる。
【００７６】
方法は、構成情報のセットの受取りが必要である、又は賢明であるという要求又は決定とともに工程８００で開始する。前述したとおり、そのような要求又は決定は、ＡＣＥ１００により、サーバ５４又は付属ネットワーク・エンティティ５０などのネットワーク・エンティティにより、あるいは別のデバイスにより生成されることが可能である。次に、方法は、工程８０５で、そのような要求（又は決定）が許可されているかどうかを判定する。許可されていない場合、方法は終了することが可能である、リターン工程８４０。
【００７７】
工程８０５で許可されている場合、方法は、ＡＣＥ１００の再構成能力を特定する、すなわち、受信側ＡＣＥ１００の利用可能なユニット・ハードウェアを特定する、工程８１０。次に、ＡＣＥ１００の特定された再構成能力に適切な構成情報の１つ又は複数のバージョンが利用可能であるかどうかの判定が行われる、工程８１５。工程８１５で適切なバージョンが利用可能でない場合、方法は、やはり終了することが可能である、リターン工程８４０。工程８１５で適切なバージョンが利用可能である場合、受信側ＡＣＥ１００に適切なバージョンが選択される（生成される）、工程８２０。前述したとおり、工程８２０は、利用可能な再構成能力、ならびに同じリソースに関して競合している可能性がある動作モード間の優先順位に基づく対話的プロセス、又は交渉されるプロセスであることが可能である。さらに、前述したとおり、要求された構成情報の選択されたバージョンの生成及び記憶は、前もって行われること、又はランタイム（ダウンロード時）に行われることが可能である。
【００７８】
適切な構成情報の選択に続き、構成ビット・ファイルの暗号化などのセキュリティ対策が実施される、工程８２５。次に、セキュアな構成情報が、ネットワーク・ダウンロード、又は対応するビット・ファイルを含む媒体（例えば、フラッシュ１０、又は媒体１５及び２０）の提供を介するなどして、受信側ＡＣＥ１００に転送される、工程８３０。好ましい実施形態では、新しい構成情報バージョンを反映するようにデータベースを更新し、アカウンティング・エントリ又は料金請求エントリを生成するなどして、対応するレコードも生成される、工程８３５。工程８３５に続き、又は工程８０５及び８１５に続き、方法が終了することが可能である、リターン工程８４０。
【００７９】
本発明の様々な実施形態の多数の利点は、明白である。本発明は、ＡＣＥ回路、及びＡＣＥ技術を組み込んだその他のデバイスの１つ又は複数の動作モード又は他の機能を提供するように適応集積回路を構成するための方法及びシステムを提供する。本発明の方法及びシステムは、選択された動作モードの提供のために構成情報をＡＣＥ回路（又はＡＣＥ  ＩＣ）と結合する。さらに、本発明のシステム及び方法は、ＡＣＥ再構成能力を特定すること、セキュアな構成及び許可された構成を提供すること、ならびに構成及びコンテンツ使用の適切な監視を提供することができる。
【００８０】
本発明のさらなる利点が、当分野の技術者には、さらに明らかとなる可能性がある。本発明のＡＣＥ１００アーキテクチャは、潜在的な欠点を最小限に抑えながら、プロセッサ、ＡＳＩＣ、及びＦＰＧＡの様々な利点を組み合わせ、最大化する。ＡＣＥ１００は、プロセッサのプログラミングの柔軟性、ＦＰＧＡの製造後の柔軟性、ならびにＡＳＩＣの高い速度及び高い利用率を含む。ＡＣＥ１００は、事前に、リアルタイムで、又は他の速度で容易に再構成可能であり、対応する複数の動作モードを有することが可能である。さらに、再構成可能な加速のために特定の機能を選択することを介して、ＡＣＥ１００は、電力消費を最小限に抑え、ハンドヘルド・デバイス及び他の電池式デバイスにおける使用などの低電力アプリケーションに適している。
【００８１】
以上のことから、本発明の革新的な概念の趣旨及び範囲を逸脱することなく、多数の変形形態及び変更形態を実施できることが認められよう。本明細書で例示する特定の方法及び装置に関して、いかなる限定も意図しておらず、推測されるべきでもないことを理解されたい。もちろん、頭記の特許請求の範囲により、すべてのそのような変更形態は、特許請求の範囲に含まれるものとして網羅されるものとする。
【図１】
2011123882.tif 000003
【図２】
2011123882.tif 000004
【図３】
2011123882.tif 000005
【図４】
2011123882.tif 000006
【図５】
2011123882.tif 000007
【図６】
2011123882.tif 000008
【図６Ａ】
2011123882.tif 000009
【図６Ｂ】
2011123882.tif 000010
【図６Ｃ】
2011123882.tif 000011
【図６Ｄ】
2011123882.tif 000012
【図７】
2011123882.tif 000013
【図８】
2011123882.tif 000014
【図９】
2011123882.tif 000015
【図１０】
2011123882.tif 000016
【外国語明細書】
2011123882.tif 000017
2011123882.tif 000018
2011123882.tif 000019
2011123882.tif 000020
2011123882.tif 000021
2011123882.tif 000022
2011123882.tif 000023
2011123882.tif 000024
2011123882.tif 000025
2011123882.tif 000026
2011123882.tif 000027
2011123882.tif 000028
2011123882.tif 000029
2011123882.tif 000030
2011123882.tif 000031
2011123882.tif 000032
2011123882.tif 000033
2011123882.tif 000034
2011123882.tif 000035
2011123882.tif 000036
2011123882.tif 000037
2011123882.tif 000038
2011123882.tif 000039
2011123882.tif 000040
2011123882.tif 000041
2011123882.tif 000042
2011123882.tif 000043
2011123882.tif 000044
2011123882.tif 000045
2011123882.tif 000046
2011123882.tif 000047
2011123882.tif 000048
2011123882.tif 000049
2011123882.tif 000050
2011123882.tif 000051
2011123882.tif 000052
2011123882.tif 000053
2011123882.tif 000054
2011123882.tif 000055
2011123882.tif 000056
2011123882.tif 000057
2011123882.tif 000058
2011123882.tif 000059
2011123882.tif 000060
2011123882.tif 000061
2011123882.tif 000062