(57)【要約】  マイクロコントローラまたはこれに類似の計算リソース、およびコンフィギュラブルロジックデバイスを含むマイクロコントローラ製品の高速作成およびコンフィギュレーションに適している方法および装置につき説明する。本発明の種々の実施形態は、新規なマイクロコントローラベースの製品および製品のファミリーを、高速かつコスト効率の良いやり方で開発し、これにより、このような製品を早期に市場に出すことを可能にする。本発明は、既存のマイクロコントローラブロックおよび既存のコンフィギュラブルロジックデバイスを組み合わせて、マイクロコントローラブロックがコンフィギュラブルロジックデバイスのコンフィギュレーションを行って、マイクロコントローラベースの製品に所望されるユニークなハードウェア特性を形成するように動作可能なユニークな製品を生成する。マイクロコントローラブロックは、製品がリセットされるとき、および／または電源投入の状態が認識されるときに、コンフィギュラブルロジックデバイスのコンフィギュレーションを行う。
2009530733.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコントローラと、
前記マイクロコントローラに結合される第１の記憶領域に格納される第１の命令セットと、
前記マイクロコントローラに結合される第２の記憶領域に格納される第２の命令セットと、
前記マイクロコントローラに結合される第１の端子組と、
前記第１の端子組に結合され、さらに前記マイクロコントローラに結合される、第１のコンフィギュラブルロジックブロックと、を具え、
前記マイクロコントローラは、前記第１の命令セットを実行して前記第１のコンフィギュラブルロジックブロックのコンフィギュレーションを行うように動作可能であり、さらに前記第２の命令セットを実行するように動作可能である、マイクロコントローラベースの製品。
【請求項２】
前記端子がピン選択ロジックを具えている、請求項１に記載のマイクロコントローラベースの製品。
【請求項３】
前記マイクロコントローラは、前記第１の命令セットを実行することにより得られる信号を前記ピン選択ロジックに転送するよう適合させたバスブリッジを経て、前記第１の端子組に結合される、請求項２に記載のマイクロコントローラベースの製品。
【請求項４】
前記第２の命令セットは顧客固有のアプリケーションプログラムを含む、請求項１に記載のマイクロコントローラベースの製品。
【請求項５】
前記マイクロコントローラは、リセットが発生したか否かを判定するように適合させた、請求項１に記載のマイクロコントローラベースの製品。
【請求項６】
前記マイクロコントローラは、リセットが発生した場合に、前記第１の命令セットを実行するように動作可能である、請求項５に記載のマイクロコントローラベースの製品。
【請求項７】
前記マイクロコントローラは、電源投入状態が発生したか否かを判定するように適合させた、請求項１に記載のマイクロコントローラベースの製品。
【請求項８】
前記マイクロコントローラは、電源投入状態が発生した場合に、前記第１の命令セットを実行するように動作可能である、請求項５に記載のマイクロコントローラベースの製品。
【請求項９】
マイクロコントローラベースの製品を動作させる方法において、当該方法が、
リセットが発生したか否かを判定するステップと、
リセットが発生した場合に、第１の命令セットを実行するステップと、
電源投入状態が発生したか否かを判定するステップと、
電源投入状態が発生した場合に、前記第１の命令セットを実行するステップと、
前記第１の命令セットを実行した後に、第２の命令セットを実行するステップと、を有し、
前記第１の命令セットの実行によって、コンフィギュラブルロジックデバイスのコンフィギュレーションを行い、前記第２の命令セットの実行によって、顧客固有のアプリケーションプログラムを実行する、マイクロコントローラベース製品の動作方法。
【請求項１０】
前記第１の命令セットに従って前記コンフィギュラブルロジックデバイスのコンフィギュレーションを行うことによって、前記マイクロコントローラベースの製品の第１組のハードウェア特性を提供する、請求項９に記載の方法。
【請求項１１】
前記第１の命令セットは、第３の命令セットと置換される、請求項１０に記載の方法。
【請求項１２】
前記第３の命令セットの実行により、前記コンフィギュラブルロジックデバイスのコンフィギュレーションを行って、前記マイクロコントローラベースの製品の第２組のハードウェア特性を提供する、請求項１１に記載の方法。
【請求項１３】
前記マイクロコントローラベースの製品は、第１のパッケージにマイクロコントローラを含み、かつ第２のパッケージにコンフィギュラブルロジックデバイスを含む、請求項１２に記載の方法。
【請求項１４】
前記マイクロコントローラベースの製品は、第１のパッケージにマイクロコントローラを含み、かつ当該第１のパッケージにコンフィギュラブルロジックデバイスに含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、マイクロコントローラ、またはコンフィギュラブルロジックデバイスに結合されるマイクロコントローラのコアを含むマイクロコントローラベースの製品を、高速かつ高いコスト効率で開発するための方法および装置に関するものである。
【背景技術】
【０００２】
半導体製造技術の進歩により、トランジスタのような回路素子を、単一の集積回路上に何百万個も含めることができるようになった。このようなことができるようになって、多数の製造業者は、複雑な設計のマイクロコントローラおよびマイクロプロセッサのようなプログラム可能な製品を開発している。このようなプログラマブルデバイスにより、多種多様な顧客の製品を開発できるようになったが、未だ多くの製品は、例えば、外界へのそれらの物理的なインタフェースを異なるものにする必要がある。したがって、これらの製品を生産するには、それらの内部のハードウェアリソースの大部分を同じままにするとしても、追加の設計、開発、および検証の作業を必要としている。
【０００３】
競争市場において、製品を迅速に開発して納品する能力は、このような製品の経済的な成功における重要なファクタになっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、少なくともマイクロコントローラのような計算リソースを含む製品を迅速に作成し、かつコンフィギュレーションを行うための方法および装置が必要とされている。
【課題を解決するための手段】
【０００５】
本発明は、要するに、マイクロコントローラまたはこれと類似の計算リソースおよびコンフィギュラブルロジックデバイスを含むマイクロコントローラ製品の高速な作成およびコンフィギュレーションに適切な方法および装置を開示する。本発明の種々の実施形態により、新規なマイクロコントローラベースの製品および製品のファミリーを、高速かつコスト効率の良好なやり方で開発することができ、したがって、このような製品を早期に市場に出すことができる。
【０００６】
本発明の他の態様においては、既存のマイクロコントローラブロックと既存のコンフィギュラブルロジックデバイスを組み合わせて、マイクロコントローラブロックが、コンフィギュラブルロジックデバイスのコンフィギュレーションを行って、マイクロコントローラベースの製品に所望されるユニークなハードウェア特性を形成するように動作可能なユニークな製品を形成する。
【０００７】
本発明のさらに他の態様においては、マイクロコントローラブロックは、製品がリセットされる際、および／または電源投入状態が認識される際に、コンフィギュラブルロジックデバイスのコンフィギュレーションを行う。
【発明を実施するための最良の形態】
【０００８】
本発明は、概して、計算リソースのための既存の設計を、コンフィギュラブルロジックブロックのための既存の設計と組み合わせ、コンフィギュラブルロジックブロックのコンフィギュレーションを行ってからアプリケーションプログラムを実行するソフトウェアを計算リソースに実行させる装置および方法に関するものである。
【０００９】
本明細書において、「一実施形態」、「実施形態」、またはこれに類似する語句に言及する際は、その実施形態と関連して記載する特定の特徴、構成、動作、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書における、このような言いまわしまたは語句が表すものが、全て同じ実施形態について言及しているわけではない。さらに、種々の特定の特徴、構成、動作、または特性は、１つ以上の実施形態において、任意の適切なやり方で組み合わせることができる。
【００１０】
マイクロコンピュータ、マイクロコントローラ、組み込みコントローラ、組み込みプロセッサという用語、およびこれらと同様の変形語は、この分野では代替的に用いることがよくあり、一般に、大きな集積回路に統合するのに好適なデジタルデータ処理回路ブロック、または、周知の８０５１ファミリーのマイクロコントローラで例示されるような完全なデバイスを含むことを意味している。本発明は、いかなる特定の命令セットのアーキテクチャ、または回路レベルの実装にも限定されるものではないことに留意すべきである。
【００１１】
コンピュータ（システムの大小を問わず）や、マイクロプロセッサまたはマイクロコントローラは、この分野では、しばしばマシンと称される。例えば、「マシンの状態」とは、一般に、コンピュータ内のほぼ全ての記憶ビットの状態によって示されるような、コンピュータの論理状態のことをいう。さらに、完全なコンピュータシステムおよびＣＰＵは、双方ともに、概してプログラム式データプロセッサと称されることがある。本明細書において、プログラム式データプロセッサという用語は、マイクロプロセッサ、マイクロコンピュータ、および任意の機能的に等価な装置またはシステムのような、あらゆる種類の計算要素またはデータ処理要素を含めて用いる。
【００１２】
集積回路、ＩＣ、チップ、ダイ、半導体デバイス、モノリシック集積回路、超小型電子デバイスという用語、およびこれらと同様の変形語は、本明細書においては代替的に用いることができ、超小型電子デバイスは、その他のものをも含む最も広い用語であると見なされる。これらの超小型電子デバイスに関して、これらのデバイスと、他の超小型電子デバイスを含むがこれに限定されない他の回路素子との間で、物理的に導電性の接続を経て信号が結合される。接続点は、入力端、出力端、入出力端（Ｉ／Ｏ）、端子、ライン、ピン、パッド、ポート、インタフェースまたはこれらと同様の変形語、および組合せと称することがある。用いられる文脈で特に記さない限り、これらは、本発明の開示の目的で同義の用語とみなす。本発明は、この分野で一般的に理解されているように、上述した全てものに適用することができる。
【００１３】
上述したように、マイクロコントローラは、実質的にあらゆる市場区分における顧客により使用される、汎用システムを構築するブロックである。これは、現在、数十億ドル規模と推定される大規模な成長市場である。しかしながら、マイクロコントローラ集積回路およびマイクロコントローラベースの製品を含むがこれらに限定されないマイクロコントローラのビジネスは、極めて競争の熾烈なビジネスであり、顧客は、彼らの仕様に従って製品を設計して納品してもらうのに要する費用および／または時間量に基づいて決断を下すことがしばしばあると認識されている。
【００１４】
各顧客のニーズは、彼らの特定のマイクロコントローラまたはマイクロコントローラベースの製品の機能的および電気的な仕様の点で異なるものである。当業者および本発明の開示の利益を有する者であれば、（文字通り数千もの）あらゆる異なる顧客のニーズに対して、マイクロコントローラまたはマイクロコントローラベースの製品を開発することは、膨大な時間を必要とし、しばしば極めて高価になると認識するであろう。さらに、大規模生産の利益を得ることが困難なこともあるため、特定のマイクロコントローラまたはマイクロコントローラベースの製品に対する販売量が少ないことにより、特定の設計に投資したリターンが乏しいか、またはマイナスになるというリスクは比較的高い。本発明の種々の実施形態は、新製品を高速に作成し、かつ大口の販売業者のみに最適化する低廉な方法を提供する。
【００１５】
マイクロコントローラまたはマイクロコントローラベースの製品の設計者および／または製造者の顧客は、一般に、彼らの製品を市場で早く入手するという重圧が存在するビジネス環境で作業している。前述したことに鑑みて、マイクロコントローラまたはマイクロコントローラベースの製品の設計者および／または製造者にとっては、顧客のニーズおよび顧客の時間制約に迅速に応えて、彼らのビジネスを勝ち取ることが重要である。
【００１６】
顧客のニーズ、すなわち彼らの機能的および電気的な仕様に関して、これら顧客の仕様間における差異の大部分は、典型的には、ＣＰＵのアーキテクチャまたはメモリサイズというよりもむしろ（メモリレンジのニーズには比較的容易に対応することができる）、周辺装置の機能的な要求が異なることに基づくものである。
【００１７】
顧客の仕様に従って迅速かつコスト効率の高い設計および製造法を提供するために、本発明の種々の実施形態は、マイクロコントローラを、コンフィギュラブル回路に構造的に集積するやり方で結合させて、これら２つがマイクロコントローラの一体部分とみなせるようにしたマイクロコントローラであって、当該マイクロコントローラが、必要なコンフィギュレーション、コネクション、および、このコンフィギュラブル回路との通信の機能を実行するようにしたものを提供する。このようなコンフィギュラブル回路は、コンフィギュラブルロジックデバイス（ＣＬＤ）の形式とすることができる。本発明によれば、ＣＬＤまたは同様の機能ブロックの動作の細部を集積することにより、ユーザを煩雑さから開放し、ベンダのサポートコストを低減する。
【００１８】
上述したように、本発明の種々の実施形態は、１つ以上の利用可能な、または既存のマイクロコントローラと、１つ以上の利用可能な、または既存のコンフィギュラブルロジックデバイスとの組合せを提供する。このような組合せにおいて、コンフィギュラブルロジックデバイスは、典型的には、顧客のニーズ（すなわち仕様）に応ずるように、製造業者によって機能的にコンフィギュレーションが行われ、１つの集積ユニットとみなせるように、マイクロコントローラに物理的および論理的にシームレスに接続される。なお、マイクロコントローラおよびコンフィギュラブルロジックデバイスは、単一のダイに集積することができるが、各々別個のダイに備えることもできる。同様に、マイクロコントローラのダイおよびコンフィギュラブルロジックデバイスのダイは、単一のパッケージにパッケージ化することができ、また、これらのダイを別個のパッケージにパッケージ化し、これらのパッケージ間を外部で相互接続することもできる。
【００１９】
本発明の一実施例においては、電源投入時およびリセットの際に、コンフィギュラブルロジックデバイスに少なくとも１つのコンフィギュレーション動作を行って、コンフィギュラブルロジックデバイスが所望の機能を果たすようにする。この実施例では、少なくとも１つのコンフィギュレーション動作を、マイクロコントローラに常駐するコンフィギュレーションソフトウェアによって達成する。このようなコンフィギュレーションソフトウェアは、典型的には、コンフィギュレーションを行うプログラムと共に、コンフィギュレーションの値を含んでいる。この実施例ではコンフィギュレーションソフトウェアがマイクロコントローラに常駐するようにするが、マイクロコントローラがコンフィギュレーションソフトウェアを実行することができる限り、マイクロコントローラの外部のメモリにコンフィギュレーションソフトウェアを記憶するようにすることも本発明の範囲内であると、当業者および本発明の開示の利益を有する者は認識するであろう。
【００２０】
この実施例は、マイクロコントローラとコンフィギュラブルロジックデバイスとの間を物理的および論理的に接続して、これら２つの間に制御およびデータの情報を流すことができるようにし、このような実施形態は、典型的には、これらの間を通過する制御およびデータ信号に対するセキュリティーの手段を含むようにする。
【００２１】
本発明の他の態様において、この実施例は、マイクロコントローラが、コンフィギュラブルロジックデバイスの電源投入およびリセットの機能を、双方の間を移行するように管理し、かつ製品の様々な動作および電源管理の状態を制御するようにする。
【００２２】
図１を参照して、本発明の実施例によるマイクロコントローラベースの製品１００を説明する。マイクロコントローラブロック１０２は、バス１０４に結合される。次に、バス１０４は、バスブリッジ１０６に結合される。バスブリッジ１０６は、複数のピン選択ブロック１０８−０〜１０８−ｎに結合される。コンフィギュラブルロジックデバイス１１２は、ピン選択ブロック１０８−０〜１０８−ｎと、クロックおよび制御信号発生ブロック１１０とに結合される。なお、マイクロコントローラブロック１０２は、予め設計し、かつ検証した計算リソースである。マイクロコントローラ１０２は、特定の命令セットのアーキテクチャ、データパスの幅、レジスタの数などに限定されない。
【００２３】
マイクロコントローラ１０２は、図示した他の全てのコンポーネントと共に、単一のチップ上に実装することができるが、これは本発明に必須の要件ではない。より詳細には、ピン選択ブロック１０８−０〜１０８−ｎにより表される顧客固有のインタフェースは、マイクロコントローラまたはコンフィギュラブルロジックデバイスを最初から設計する必要をなくして、マイクロコントローラベースの製品１００にユニークなハードウェア特性を提供する。このようにして、マイクロコントローラおよびコンフィギュラブルロジックデバイスとして既存の回路ブロックを使用することにより、相当な時間および労力が省かれる一方、ユニークなハードウェアインタフェースを生成することができる。
【００２４】
バスブリッジ１０６は、マイクロコントローラ１０２が命令を実行した結果をピン選択ブロック１０８−０〜１０８−ｎに通信するための、任意の適切な回路とすることができる。
【００２５】
当業者および本発明の開示の利益を有する者は、ピン選択ブロック１０８−０〜１０８−ｎが実施例の顧客固有のインタフェースを表すことを理解し、さらに、このようなインタフェースの特性は、マイクロコントローラ１０２により対応する異なるセットのコンフィギュレーション命令を実行することによって、任意の特定の顧客仕様に調整できることも理解するであろう。
【００２６】
動作に際して、マイクロコントローラ１０２は、格納されている命令を実行することにより、コンフィギュラブルロジックデバイス１１２が所望の回路の機能を実行してユニークな顧客のインタフェースを生成するようにコンフィギュレーションを行う信号を発生する。この状況において、マイクロコントローラによる命令の実行は、ランまたは実行、コーディングまたはファームウェアもしくはソフトウェアのような類似した表現によって称されることもある。
【００２７】
コンフィギュレーションコードを実行した後で、マイクロコントローラ１０２は顧客固有のアプリケーションプログラムを実行する。
【００２８】
図２を参照して、マイクロコントローラの動作プロセス２００を説明する。まず、ステップ２０２では、リセットまたは電源投入状態が発生したか否かを判定する。リセットまたは電源投入状態が発生した場合、ステップ２０４にて、コンフィギュレーションコードをフェッチして実行する。コンフィギュレーション動作の完了時に、マイクロコントローラ１０２は、顧客固有のアプリケーションプログラム２０６をフェッチして実行する。
【００２９】
本発明の種々の実施形態は、多種多様な製品に適用することができる。本発明によって迅速に実現することができる製品の例には、以下の１つ以上のものを有するＭＣＵが含まれるが、これに限定されるものではない。すなわち、ＣＡＮインタフェース、工業用９ビットＵＡＲＴおよびＵＳＡＲＴ、暗号化ユニットの高速シリアルインタフェース（例えばＳＥＲＤＥＳ、ＰＣＩ  Ｅｘｐｒｅｓｓ、イーサネット（登録商標））、コンシューマシリアルインタフェース（例えばＩ２Ｃ、Ｉ２Ｓ、ＵＳＢ、ＰＣＭ、ＳＰＩ）、オーディオおよびビデオのコーデック、カスタム信号処理ブロック、カスタマ固有のロジック、メモリインタフェース（例えばＮＡＮＤフラッシュ、ＤＤＲ、ＳＤＲＡＭ）、メモリカードのインタフェース（例えばＳＤ、ＣＦ、メモリスティック）、スマートカード、ワイヤレスメディアアクセスコントローラ、ＣＰＵのバスエキスパンション、リコンフィギュラブルコプロセッサ、およびディスプレイコントローラ（例えばＬＣＤコントローラ）などがある。
【００３０】
本発明の種々の実施形態は、マイクロコントローラベースの製品を高速に作成し、かつコンフィギュレーションを行うための方法および装置を含む。マイクロコントローラまたはこれと同様の計算リソースは、コンフィギュラブルロジックに結合されて、とりわけ、コンフィギュラブルロジックデバイスのコンフィギュレーションを行うことに関与する。ユーザ透過型のコンフィギュレーション動作によって、マイクロコントローラベースの製品を、あたかもカスタム設計されたインタフェースを有するマイクロコントローラのように動作させることができる。
【００３１】
本発明の実施形態によって、多くの利点が提供される。例えば、製品作成サイクルの時間を、本来、コンフィギュラブルロジックデバイスのコンフィギュレーションおよび製品検証の時間にまで低減させることにより、顧客のニーズを極めて迅速に適えることができる。
【００３２】
他の利点は、検証済みのコンポーネント（すなわち既存のマイクロコントローラおよびコンフィギュラブルロジックデバイスの設計）を用いるため、製品作成のリスクは大幅に低減される。
【００３３】
他の利点は、知識ベースの製品最適化戦略を採用することができることにある。例えば、大量の販売派生物を、真のワンチップ設計として最適化することができる。そして、販売量が少ない場合には、チップの開発コストを負担する必要がない。
【００３４】
他の利点は、多数の異なるコンフィギュラブルロジックデバイスのコンポーネントを市場で入手可能であり、顧客のニーズに応じて最適なものを選択することができるということにある。換言するに、ＰＬＤ、ＦＰＧＡ、ＣＰＬＤ、ＦＰＳＣ、ｐＳＯＣは全て、本発明の実施例において使用するのに適切なコンフィギュラブルロジックデバイスの例である。これらのデバイスは全て、カスタマープログラマブル機能を備える論理構造を有している。
【００３５】
他の利点は、コンフィギュラブルロジックデバイスのコンフィギュレーションパターンとソフトウェアとをマイクロコントローラ上に集積することにより、システムコストを節約できることにある。さもないと、これには、外部のメモリーチップとともに、コンフィギュレーションを行う外部のデバイスまたは通信リンクが必要になる。本発明のいくつかの実施形態においては、マイクロコントローラに格納されるコンフィギュレーションのパターンを圧縮して、メモリ要件をさらに低減させる。
【００３６】
さらなる利点は、バグの修正および強化を、マイクロコントローラによって実行されるコンフィギュレーションのソフトウェアを介して、コンフィギュラブルロジックデバイスに組み込むことができることにある。これは、フィールドおよび／またはインシステムにて行うことができる。
【００３７】
なお、本発明は、上述した実施形態に限定されるものではなく、添付の請求項およびそれらの均等物の範囲内で、任意の、および全ての実施形態を含むものであることに留意すべきである。
【図面の簡単な説明】
【００３８】
【図１】本発明によるマイクロコントローラベースの製品を示す概略ブロック図である。
【図２】コンフィギュラブルロジックデバイスのコンフィギュレーションを行って顧客固有のアプリケーションプログラムを実行する、コンフィギュラブルロジックデバイスのコンフィギュレーションを行うか否かを判定するマイクロコントローラの動作を示すフローチャートである。
【図１】
2009530733.tif 000003
【図２】
2009530733.tif 000004
【国際調査報告】
2009530733.tif 000005
2009530733.tif 000006
2009530733.tif 000007