(57)【要約】マイクロコントローラデバイスは、複数の外部ピンを伴う筐体と、第１の中央処理ユニット（ＣＰＵ）、第１のＣＰＵと結合された第１のシステムバス、第１のシステムバスと結合された第１のメモリ、および第１のシステムバスと結合された第１の複数の周辺機器デバイスを伴う、第１のマイクロコントローラと、第２の中央処理ユニット（ＣＰＵ）、第２のＣＰＵと結合された第２のシステムバス、第２のシステムバスと結合された第２のメモリ、および第２のシステムバスと結合された第２の複数の周辺機器デバイスを伴う、第２のマイクロコントローラとを有し、第１および第２のマイクロコントローラは、専用インターフェースを介してのみ通信する。
2018512662.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコントローラデバイスであって、
複数の外部ピンと、
第１の中央処理ユニット（ＣＰＵ）と、前記第１のＣＰＵと結合された第１のシステムバスと、前記第１のシステムバスと結合された第１のメモリと、前記第１のシステムバスと結合された第１の複数の周辺機器デバイスとを備える、第１のマイクロコントローラと、
第２の中央処理ユニット（ＣＰＵ）と、前記第２のＣＰＵと結合された第２のシステムバスと、前記第２のシステムバスと結合された第２のメモリと、前記第２のシステムバスと結合された第２の複数の周辺機器デバイスとを備える、第２のマイクロコントローラと
を備え、
第１および第２のマイクロコントローラは、専用インターフェースを介してのみ通信する、マイクロコントローラデバイス。
【請求項２】
前記専用インターフェースは、双方向性メールボックスインターフェース、一方向性マスタ−スレーブインターフェース、および一方向性スレーブ−マスタインターフェースを備える、請求項１に記載のマイクロコントローラデバイス。
【請求項３】
各一方向性インターフェースは、ＦＩＦＯメモリを備える、請求項２に記載のマイクロコントローラデバイス。
【請求項４】
前記第１のマイクロコントローラは、マスタであり、前記第２のマイクロコントローラは、スレーブである、請求項１または請求項２に記載のマイクロコントローラデバイス。
【請求項５】
前記第２のマイクロコントローラのプログラムメモリは、前記第１のマイクロコントローラによって書込可能な揮発性メモリを備える、請求項１−４のうちの１項に記載のマイクロコントローラデバイス。
【請求項６】
前記第２のマイクロコントローラは、前記第１のマイクロコントローラより高速でクロックされる、請求項１−５のうちの１項に記載のマイクロコントローラデバイス。
【請求項７】
前記第２のマイクロコントローラは、低電力モードを備える電力モード制御ユニットを備え、前記第１のマイクロコントローラは、前記第２のマイクロコントローラの電力モードを制御するように構成されている、請求項１−６のうちの１項に記載のマイクロコントローラデバイス。
【請求項８】
前記電力制御モードユニットは、前記第２のマイクロコントローラがいかなる電力も消費しないように、前記第２のマイクロコントローラをディスエーブルにするように動作可能である、請求項７に記載のマイクロコントローラデバイス。
【請求項９】
各マイクロコントローラは、１６ビットのデータバス幅を有する、請求項１−８のうちの１項に記載のマイクロコントローラデバイス。
【請求項１０】
各マイクロコントローラはさらに、前記マイクロコントローラと関連付けられた前記周辺機器デバイスのための前記複数の外部ピンのうちの少なくともいくつかを選択するようにプログラム可能なピン選択ユニットを備える、請求項１−９のうちの１項に記載のマイクロコントローラデバイス。
【請求項１１】
各マイクロコントローラはさらに、入力／出力ピンの制御を前記第１のマイクロコントローラまたは前記第２のマイクロコントローラのいずれかに割り当てるように制御可能なパッド所有権マルチプレクサユニットを備える、請求項１−１０のうちの１項に記載のマイクロコントローラデバイス。
【請求項１２】
各マイクロコントローラは、任意の可読外部ピンを読み取ることができるが、前記第１または第２のマイクロコントローラに割り当てられたピンのみが、前記それぞれのマイクロコントローラによって書き込まれることができる、請求項１−１１のうちの１項に記載のマイクロコントローラデバイス。
【請求項１３】
各マイクロコントローラの周辺機器の各々の少なくともいくつかは、複数の外部ピンの所定の外部ピンに割り当てられる、請求項１−１２のうちの１項に記載のマイクロコントローラデバイス。
【請求項１４】
複数の外部ピンと、第１の中央処理ユニット（ＣＰＵ）、前記第１のＣＰＵと結合された第１のシステムバス、前記第１のシステムバスと結合された第１のメモリ、および前記第１のシステムバスと結合された第１の複数の周辺機器デバイスを備える、第１のマイクロコントローラと、第２の中央処理ユニット（ＣＰＵ）、前記第２のＣＰＵと結合された第２のシステムバス、前記第２のシステムバスと結合された第２のメモリ、および前記第２のシステムバスと結合された第２の複数の周辺機器デバイスを備える、第２のマイクロコントローラとを備える、マイクロコントローラデバイスを動作させる方法であって、前記方法は、
専用インターフェースを介してのみ、前記第１および第２のマイクロコントローラ間で通信することを含む、方法。
【請求項１５】
前記専用インターフェースは、双方向性メールボックスインターフェース、一方向性マスタ−スレーブインターフェース、および一方向性スレーブ−マスタインターフェースを備える、請求項１４に記載の方法。
【請求項１６】
各一方向性インターフェースは、ＦＩＦＯメモリを備える、請求項１５に記載の方法。
【請求項１７】
前記第１のマイクロコントローラは、マスタであり、前記第２のマイクロコントローラは、スレーブである、請求項１４−１６のうちの１項に記載の方法。
【請求項１８】
前記第２のマイクロコントローラのプログラムメモリは、揮発性メモリを備え、前記方法は、前記第１のマイクロコントローラによって前記第２のマイクロコントローラのプログラムメモリに書き込むステップを含む、請求項１４−１７のうちの１項に記載の方法。
【請求項１９】
前記第２のマイクロコントローラを前記第１のマイクロコントローラより高速でクロックすることをさらに含む、請求項１４−１８のうちの１項に記載の方法。
【請求項２０】
前記第２のマイクロコントローラは、低電力モードを備える電力モード制御ユニットを備え、前記方法はさらに、第１のマイクロコントローラによって、前記第２のマイクロコントローラの電力モードを制御するステップを含む、請求項１４−１９のうちの１項に記載の方法。
【請求項２１】
電力制御モードユニットによって、前記第２のマイクロコントローラがいかなる電力も消費しないように、前記第２のマイクロコントローラをディスエーブルにするステップを含む、請求項１４−２０のうちの１項に記載の方法。
【請求項２２】
各マイクロコントローラに対してピン所有権を制御するステップをさらに含み、入力／出力ピンは、前記第１のマイクロコントローラまたは前記第２のマイクロコントローラのいずれかに割り当てられる、請求項１４−２１のうちの１項に記載の方法。
【請求項２３】
各マイクロコントローラは、任意の可読外部ピンを読み取ることができるが、前記第１または第２のマイクロコントローラに割り当てられたピンのみが、前記それぞれのマイクロコントローラによって書き込まれることができる、請求項１４−２２のうちの１項に記載の方法。
【請求項２４】
前記第１のマイクロコントローラによって、複数の外部ピンのうちの１つを読み取るステップと、
前記第２のマイクロコントローラによって、複数の外部ピンのうちの１つを読み取るステップと、
前記専用インターフェースを用いて、前記複数の外部ピンのうちの１つから読み取られた値を比較するステップと
をさらに含む、請求項１４−２３のうちの１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、同一出願人の、２０１５年３月１３日に出願された米国仮特許出願第６２／１３３，１８６号に対して優先権を主張する。上記文献は、全体としてここで参照することによって本明細書において援用される。
【０００２】
（技術分野）
本開示は、マイクロコントローラに関し、特に、複数の独立プロセッサコアを伴うマイクロコントローラデバイスに関する。
【背景技術】
【０００３】
（背景）
公知のマイクロコントローラデバイスは、単一の中央処理ユニット（マイクロコントローラコア）と、タイマ、アナログ／デジタルコンバータ、デジタル／アナログコンバータ、パルス幅変調ユニット、メモリ、入力／出力（Ｉ／Ｏ）ポート等の複数の関連付けられた周辺機器デバイスとを備える。通常、内部システムバスおよび制御論理は、マイクロコントローラコアが、個々に、周辺機器にアクセスすることができるように、全てのコンポーネントを連結する。外部には、マイクロコントローラは、複数の外部ピンを備え、これらのピンの大部分は、通常、Ｉ／Ｏポートに関連付けられ、各ポートピンはまた、ピンを他の周辺機器デバイスと共有することによって、多機能を提供し得る。構成の間、ユーザは、どのピンがどの機能を行うように割り当てられるかを選択する。そのような割当はまた、プログラムの実行の間に変更されることもできる。
【０００４】
あるマイクロコントローラは、主要ＣＰＵから別個の命令を実行可能であり得る、付加的アクセレータを備えることが公知である。他のマイクロコントローラは、２つの別個のＣＰＵと、複数の共有周辺機器とを含むことが公知である。したがって、両コアは、全ての周辺機器を共有し、これは、待ち時間を追加するクロスバースイッチを要求し、クロスバースイッチは、故障を被りやすい。既存のマルチコアデバイスは、スイッチマトリクスを使用して、複数のプロセッサが、メモリおよび周辺機器等の共有システムリソースにアクセスすることを可能にする。複数のコアは、同一リソースにアクセスすることを要求し得る。競合解消回路は、待ち時間を追加し、性能を低下させ、コストを増やす。スイッチマトリクスは、システムに関する単一障害点である。いくつかの製造業者は、複数のスイッチマトリクスを実装し得る。これは、スイッチマトリクス間の障害解消をハンドリングするために、さらに多くの論理を要求する。他の製造業者は、異なるソフトウェアアーキテクチャを伴う複数のコアを使用する。これらの異なるコアは、いくつかの専用リソースを有し得るが、他のリソースは、共有される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
（要約）
しかしながら、デュアルまたはマルチコアマイクロコントローラデバイスのより優れた実装の必要性が、存在する。
【課題を解決するための手段】
【０００６】
ある実施形態によると、マイクロコントローラデバイスは、複数の外部ピンと、第１の中央処理ユニット（ＣＰＵ）、第１のＣＰＵと結合される第１のシステムバス、第１のシステムバスと結合される第１のメモリ、および第１のシステムバスと結合される第１の複数の周辺機器デバイスを備える、第１のマイクロコントローラと、第２の中央処理ユニット（ＣＰＵ）、第２のＣＰＵと結合される第２のシステムバス、第２のシステムバスと結合される第２のメモリ、および第２のシステムバスと結合される第２の複数の周辺機器デバイスを備える、第２のマイクロコントローラとを備えてもよく、第１および第２のマイクロコントローラは、専用インターフェースを介してのみ通信する。
【０００７】
さらなる実施形態によると、専用インターフェースは、双方向性メールボックスインターフェース、一方向性マスタ−スレーブインターフェース、および一方向性スレーブ−マスタインターフェースを備えてもよい。さらなる実施形態によると、各一方向性インターフェースは、ＦＩＦＯメモリを備えてもよい。さらなる実施形態によると、第１のマイクロコントローラは、マスタであることができ、第２のマイクロコントローラは、スレーブであることができる。さらなる実施形態によると、第２のマイクロコントローラのプログラムメモリは、第１のマイクロコントローラによって書込可能な揮発性メモリを備えてもよい。さらなる実施形態によると、第２のマイクロコントローラは、第１のマイクロコントローラより高速でクロックされることができる。さらなる実施形態によると、第２のマイクロコントローラは、低電力モードを備える電力モード制御ユニットを備え、第１のマイクロコントローラは、第２のマイクロコントローラの電力モードを制御するように構成されることができる。さらなる実施形態によると、電力制御モードユニットは、第２のマイクロコントローラがいかなる電力も消費しないように、第２のマイクロコントローラをディスエーブルにするように動作可能であることができる。さらなる実施形態によると、各マイクロコントローラは、１６ビットのデータバス幅を有してもよい。さらなる実施形態によると、各マイクロコントローラはさらに、マイクロコントローラと関連付けられた周辺機器デバイスのための複数の外部ピンの少なくともいくつかを選択するようにプログラム可能なピン選択ユニットを備えてもよい。さらなる実施形態によると、各マイクロコントローラはさらに、入力／出力ピンの制御を第１のマイクロコントローラまたは第２のマイクロコントローラのいずれかに割り当てるように制御可能なパッド所有権マルチプレクサユニットを備えてもよい。さらなる実施形態によると、各マイクロコントローラは、任意の可読外部ピンを読み取ることができるが、第１または第２のマイクロコントローラに割り当てられたピンのみが、それぞれのマイクロコントローラによって書き込まれることができる。さらなる実施形態によると、各マイクロコントローラの周辺機器の各々の少なくともいくつかは、複数の外部ピンの所定の外部ピンに割り当てられることができる。
【０００８】
別の実施形態によると、複数の外部ピンと、第１の中央処理ユニット（ＣＰＵ）、第１のＣＰＵと結合される第１のシステムバス、第１のシステムバスと結合される第１のメモリ、および第１のシステムバスと結合される第１の複数の周辺機器デバイスを備える、第１のマイクロコントローラと、第２の中央処理ユニット（ＣＰＵ）、第２のＣＰＵと結合される第２のシステムバス、第２のシステムバスと結合される第２のメモリ、および第２のシステムバスと結合される第２の複数の周辺機器デバイスを備える、第２のマイクロコントローラとを備える、マイクロコントローラデバイスを動作させる方法は、専用インターフェースを介してのみ、第１および第２のマイクロコントローラ間で通信するステップを含んでもよい。
【０００９】
本方法のさらなる実施形態によると、専用インターフェースは、双方向性メールボックスインターフェース、一方向性マスタ−スレーブインターフェース、および一方向性スレーブ−マスタインターフェースを備えてもよい。本方法のさらなる実施形態によると、各一方向性インターフェースは、ＦＩＦＯメモリを備えてもよい。本方法のさらなる実施形態によると、第１のマイクロコントローラは、マスタであることができ、第２のマイクロコントローラは、スレーブであることができる。本方法のさらなる実施形態によると、第２のマイクロコントローラのプログラムメモリは、揮発性メモリを備えてもよく、本方法は、第１のマイクロコントローラによって第２のマイクロコントローラのプログラムメモリに書き込むステップを含んでもよい。本方法のさらなる実施形態によると、本方法はさらに、第２のマイクロコントローラを第１のマイクロコントローラより高速でクロックすることを含んでもよい。本方法のさらなる実施形態によると、第２のマイクロコントローラは、低電力モードを備える電力モード制御ユニットを備えてもよく、本方法はさらに、第１のマイクロコントローラによって、第２のマイクロコントローラの電力モードを制御するステップを含んでもよい。本方法のさらなる実施形態によると、本方法は、電力制御モードユニットによって、第２のマイクロコントローラがいかなる電力も消費しないように、第２のマイクロコントローラをディスエーブルにするステップを含んでもよい。本方法のさらなる実施形態によると、本方法はさらに、各マイクロコントローラに対してピン所有権を制御するステップを含んでもよく、入力／出力ピンは、第１のマイクロコントローラまたは第２のマイクロコントローラのいずれかに割り当てられる。本方法のさらなる実施形態によると、各マイクロコントローラは、任意の可読外部ピンを読み取ることができるが、第１または第２のマイクロコントローラに割り当てられたピンのみが、それぞれのマイクロコントローラによって書き込まれることができる。本方法のさらなる実施形態によると、本方法はさらに、第１のマイクロコントローラによって、複数の外部ピンのうちの１つを読み取るステップと、第２のマイクロコントローラによって、複数の外部ピンのうちの１つを読み取るステップと、専用インターフェースを用いて、複数の外部ピンのうちの１つから読み取られた値を比較するステップとを含んでもよい。
【図面の簡単な説明】
【００１０】
【図１】図１は、ある実施形態による、マイクロコントローラのブロック図を示す。
【図２】図２は、別の実施形態による、マイクロコントローラのブロック図を示す。
【図３】図３は、種々の実施形態による、マイクロコントローラのための筐体の上面図を示す。
【図４】図４は、パッド所有権制御機構の実施形態を示す。
【図５】図５は、ある実施形態による、マイクロコントローラの電力制御を示す。
【発明を実施するための形態】
【００１１】
（詳細な説明）
マイクロコントローラは、概して、任意の外部コンポーネントを要求しないため、単一チップ上のシステムと見なされる。そのようなデバイスは、したがって、中央処理ユニットと、メモリと、複数のＩ／Ｏ周辺機器とを備える。加えて、Ｉ／Ｏポートが、直接デジタル制御のために使用されてもよい。これらのＩ／Ｏポートは、通常、周辺機器機能と共有され、汎用Ｉ／Ｏポート機能または具体的周辺機器機能を有するようにプログラムされることができる。
【００１２】
少ピン数パッケージ、例えば、２８ピンパッケージでは、従来のシングルコアマイクロコントローラの対応力は、それぞれ１６ビットのデータバス幅を有する２つのプロセッサコアを提供することによって、増加されることができる。さらに、種々の実施形態によると、複数の独立マイクロコントローラへのハードウェア、ソフトウェア、および周辺機器リソースの分離によって、リアルタイム制御システムのためのカスタマソフトウェア開発が、促進されることができ、安全性が増した監視（ＣｌａｓｓＢ）が、提供されることができ、誤差軽減が、改良されることができる。
【００１３】
いくつかの実施形態によると、マイクロコントローラデバイスは、少ピン数パッケージ（２８ピン〜６４ピン）内の単一ダイ上に、独立ＭＣＵの複数のインスタンスを具備することができる。したがって、集積回路パッケージは、例えば、２つの独立マイクロコントローラを含み、それらのそれぞれは、その独自のメモリと、複数の関連付けられた周辺機器デバイスとを伴うであろう。いくつかの実施形態によると、一方のマイクロコントローラは、マスタマイクロコントローラとなるように構成されることができ、他方は、スレーブマイクロコントローラとなることができる。両マイクロコントローラは、同一または類似周辺機器デバイスを有してもよいが、周辺機器デバイスは、異なることができ、特に、それぞれのマイクロコントローラが意図される、具体的タスクに適合されてもよい。さらに、データおよびプログラムメモリのためのサイズも、異なってもよく、マスタは、概して、より大きいプログラムおよびデータメモリを備えてもよい。
【００１４】
したがって、種々の実施形態によると、その独自の専用プロセッサ、メモリ、および周辺機器リソースを単一シリコンダイ上に伴う、２つの（またはそれを上回る）マイクロコントローラのアセンブリが、提供される。複数のマイクロコントローラは、デバイスピンを共有し、少ピン数パッケージの中へのデバイスの含有を可能かつ実用的にする。外部ピンは、したがって、プログラム制御（または構成レジスタ制御）下、マスタＭＣＵまたはスレーブＭＣＵのいずれかに割り当てられることができる。いくつかの実施形態に対する本開示のルールによると、外部ピンの数は、全ての集積ＭＣＵのデータバス幅の合計未満である。例えば、２つのコアのＭＣＵは、それぞれ１６ビットのデータバス幅を有する、２つの１６ビットＭＣＵを備えてもよい。全ての集積ＭＣＵのデータバス幅の合計は、したがって、３２となるであろう。そのようなデバイスを２８ピン筐体内に実装するとき、そのようなデバイスは、前述のルールに従うであろう。
【００１５】
種々の実施形態によると、マルチコアＭＣＵ（マルチプロセッサ）デバイスでは、外部ピンの数は、コアの数×各プロセッサのビット幅である。特に、いくつかの実施形態によると、外部ピンの数は、マスタプロセッサのデータバス幅より少ない。例えば、種々の実施形態によるデュアルコアマイクロコントローラは、以下により詳細に説明されるように、２８ピン筐体内に嵌合されることができる。前述のように、種々の実施形態は、複数のマイクロコントローラユニット（ＭＣＵ）を伴うマイクロコントローラデバイスから成り、それぞれ、その独自のプロセッサ、メモリ、および周辺機器を伴う。
【００１６】
複数のＭＣＵは、外部デバイスピンを共有するように設計される。全ＭＣＵは、その専用特殊機能レジスタを通して、ピンを読み取る（または観察する）ことが可能であるように構成されることができるが、しかしながら、専用レジスタを通したピンへの書込（駆動）は、不揮発性メモリを介して制御される。不揮発性メモリは、したがって、デバイスピンの「所有権」を定義し、それによって、競合を防止するために使用される。所有権は、構成相の間、例えば、いったんデバイスが動作モードになると改変されることができない、構成レジスタを使用したデバイスのプログラミングの間に定義されてもよい。代替として、特殊機能レジスタおよびプロシージャは、特殊機能レジスタの使用を通して動的割当を可能にするように実装されてもよい。そのようなレジスタの不注意による上書は、従来のＥＥＰＲＯＭ書込ルーチンにおいて使用されるものに類似する、特殊書込ルーチンを通して防止されてもよい。コアのうちの１つへの外部ピンのうちの１本の割当は、ソフトウェアおよびハードウェア障害を防止する。デバイスピンの制御可能共有は、マルチコアデバイスを少ピン数パッケージ内で実践的となることを可能にする。
【００１７】
種々の実施形態によると、２つの（またはそれを上回る）マイクロコントローラが、その独自の専用プロセッサ、メモリ、および周辺機器リソースとともに、単一シリコンダイ上に組み立てられ、コア間の具体的通信インターフェースが、提供される。マイクロコントローラは、一実施形態によると、一式のレジスタ（メールボックス）ならびに関連付けられたステータスビットおよびインタラプト（セマフォ）のセットであり得る、マスタスレーブインターフェース（ＭＳＩ）を介して、相互に通信する。
【００１８】
古典的コンピュータアーキテクチャアプローチは、複数のプロセッサに、スイッチマトリクスを介して、メモリおよび周辺機器等のデバイスリソースと通信させることである。これらの従来の実施形態では、２つの（またはそれを上回る）プロセッサは、システムリソースの全てを共有する。スイッチマトリクスは、リソース毎に、各プロセッサからの各要求に優先順位を割り当てなければならず、競合が、解消されなければならない。本リソース競合管理は、待ち時間（時間）を各要求に大幅に追加する。スイッチマトリクスは、大型であり、一点障害を被りやすい。スイッチマトリクスの脆弱性を解決するための古典的解決策は、スイッチマトリクスを複製することである。これは、障害を検出し、どのスイッチマトリクスが依然として実行可能であるかを解明するために、さらに多くの回路を要求する。種々の実施形態は、代わりに、リソースを単に複製することによって、スイッチマトリクスを使用してリソースを共有する試みの複雑性を回避する。
【００１９】
第２の典型的アーキテクチャは、いくつかの周辺機器を共有するが、メモリおよびいくつかの周辺機器等のその独自の限定されたセットのリソースへのアクセスを有する、プロセッサ＋コプロセッサの概念である。本アーキテクチャは、典型的には、複製が高価であり、したがって、プロセッサとコプロセッサとの間で共有される、いくつかの周辺機器を有する。典型的には、プロセッサおよびコプロセッサは、異なるソフトウェアアーキテクチャを有し、したがって、ソフトウェア生成のための異なる開発ツールを要求し得る。
【００２０】
これらの従来のアプローチの代わりに、例えば、種々の実施形態による図１に示されるように、それぞれ専用メモリおよび周辺機器を伴うＭＣＵ（マイクロコントローラユニット）全体が、は、単一チップの中に複製される。別個のＭＣＵは、セキュアな不揮発性レジスタを介して、デバイスピンを共有し、デバイスピンを駆動するとき、競合を防止するが、全ＭＣＵは、随時、それらに割り当てられていない場合でさえ、デバイスピンを読み取ることができる。図１における実施例は、多ピン数デバイスをもたらす。
【００２１】
図１は、２つのマイクロコントローラを単一集積回路筐体内に伴う、デュアルコアマイクロコントローラ１００を示す。第１のマイクロコントローラは、ＣＰＵ１１０、システムバス１２０、および複数の周辺機器１３０ａ．．ｎ、ならびにデータメモリ１４０、例えば、１６キロバイトＲＡＭ、プログラムメモリ１５０、例えば、１２８キロバイトフラッシュメモリ、およびＤＭＡコントローラ１６０を備える。システムバスは、図１に示されるように、２つのバス、すなわち、周辺機器バスおよびメモリバスに分割されることができる、または全デバイスを接続する単一システムバスが、実装されてもよい。ＤＭＡコントローラ１６０等の周辺機器のうちのいくつかは、任意の外部接続を有していなくてもよく、ＰＷＭ、ＡＤＣ、コンパレータ、およびいくつかのシリアルインターフェース等の他の周辺機器が、所定の外部マルチ機能ピンに割り当てられてもよい。他のシリアルインターフェース、タッチセンサ、タイマ、コンパレータ出力等の他の周辺機器が、周辺機器ピン選択ユニット１７０を介して、複数の外部ピンのうちの１つに割り当てられてもよい。いくつかのピンは、第１のＭＣＵの１つを上回る周辺機器に割当可能であり、一般に、その機能をＭＣＵの汎用Ｉ／Ｏポートと共有してもよい。したがって、本実施形態は、２つのパッド所有権マルチプレクサ１８０および２８０を提供する。デフォルト割当では、マスタまたはスレーブＭＣＵと関連付けられた各ピンは、それぞれのＭＣＵの汎用Ｉ／Ｏポートに割り当てられてもよいが、パッド所有権マルチプレクサ１８０のプログラム制御下、周辺機器のうちの１つに割り当てられることができる。いくつかのピン１９０は、デフォルトによって、図１に示されるように、シリアルプログラミングインターフェース、ＡＤＣ、または任意の他の周辺機器等の周辺機器に割り当てられてもよい。前述のように、周辺機器ピン選択ユニット１８０はさらに、周辺機器の一部または全部が、それぞれのセットの外部ピンのいずれかに割り当てられることを可能にしてもよい。
【００２２】
外部ピンは、電力をダイに提供するために使用される、第１のセットのピンを備える。これは、例えば、図２に示されるように、デジタルおよびアナログ電力供給ピンならびにそのようなピンの複数のインスタンスを含むことができる。さらに、マスタクリアピンは、他の機能を有していなくてもよく、デバイスをリセットおよび／またはプログラムするために使用されてもよい。残りの第２のセットのピンは、概して、入力／出力ピン（Ｉ／Ｏピン）である。しかしながら、マイクロコントローラのうちの１つによって制御されない、いくつかの他のピンが、存在してもよい。本開示によるＩ／Ｏピンは、入力ピンもしくは出力ピンまたは専用入力もしくは出力機能を有するピンのいずれかであるようにプログラム可能である、任意のピンとして定義される。入力ピンは、それぞれの周辺機器の設定に従って、デジタルまたはアナログ入力のために使用されることができる。同様に、出力ピンは、それぞれの周辺機器の設定に従って、デジタルまたはアナログ出力のために使用されることができる。前述のように、本願は、概して、入力／出力ピンについて言及しており、いくつかのピンは、入力または出力ピンとして使用されることのみ可能であってもよい。全入力／出力ピンは、出力信号およびこれらのピンにフィードされる信号が、マイクロコントローラのうちの１つによって受信される信号であるとき、マイクロコントローラのうちの１つによって制御されるピンである。電力供給ピンは、概して、本機能を有すると見なされない。いくつかの他のピンもまた、そのような機能性を有していなくてもよく、例えば、デバイスは、発振器のための専用ピンを有してもよい。しかしながら、そのようなピンはまた、図３に示されるように、マイクロコントローラＩ／Ｏ機能で多重化されてもよい。図３は、Ｉ／Ｏピンと見なされないであろうピンが、ピン５−８、１９、２０、およびピン２７であることを示す。
【００２３】
特殊機能レジスタが、パッド所有権マルチプレクサを制御するために使用されてもよい。本実施形態では、各マイクロコントローラコアは、その特殊機能レジスタのみへのアクセスを有してもよい。しかしながら、さらに別の実施形態によると、マスタＭＣＵのみが、２つのパッド所有権マルチプレクサ１８０、２８０を制御する特殊機能レジスタへのアクセスを有してもよい。加えて、マスタＣＰＵ１１０はまた、直接または具体的インターフェースを通してのいずれかにおいて、スレーブＭＣＵのプログラムＲＡＭ２５０へのアクセスを有してもよい。本特徴は、マスタＭＣＵを通して、スレーブＭＣＵのプログラムＲＡＭ２５０のプログラミング／書込を可能にする。
【００２４】
第２のＭＣＵは、本実施形態では、ピン２９０、ＣＰＵ２１０、システムバス２２０、および複数の周辺機器２３０ａ．．ｎ、ならびにデータメモリ２４０、例えば、４キロバイトＲＡＭ、プログラムメモリ２５０、例えば、２４キロバイトＲＡＭ、およびＤＭＡコントローラ２６０を備える。前述のように、プログラムメモリ２５０は、揮発性であり、マスタＭＣＵを通して、プログラミングを可能にしてもよい。しかしながら、他の実装も、他の実施形態によると、可能性として考えられる。全ての他のユニットは、マスタＭＣＵに類似してもよい。第２の周辺機器ピン選択ユニット２７０が、第１のＭＣＵに類似するある周辺機器への外部ピン２９０のうちのいくつかの柔軟な割当を可能にするために提供される。しかしながら、本実施形態では、２つのＭＣＵ間のピンの共有は、存在しない。
【００２５】
図１はさらに、両方向における２つのコア間の通信を可能にする、双方向性メールボックスシステム３１０ならびに２つの一方向性ＦＩＦＯ３２０および３３０を介した、２つのＭＣＵ間の通信インターフェースを示す。メールボックスは、コマンドまたはショートデータを個別の他のマイクロコントローラに転送するために使用されることができる。図１および２に示されるような複数のメールボックス３１０が、実装されてもよい。いったんデータまたはコマンドがメールボックスの中に書き込まれると、個別のインタラプトが、受信側マイクロコントローラ内で生成され、新しいメッセージ（コマンドまたはデータ）が利用可能であることを示すであろう。これは、任意の付加的遅延を伴わずに、情報の高速転送を可能にする。
【００２６】
加えて、２つのＦＩＦＯ３２０および３３０は、２つのマイクロコントローラ間のより大きいデータ転送を可能にするように実装されることができる。ＦＩＦＯ３２０および３３０は、メールボックス３１０のサイズ限界を有していないため、より大きいデータ転送を可能にする。ＦＩＦＯ３２０、３３０が、空にならない（またはエラー条件に遭遇しない）ことを前提として、マスタおよびスレーブは、並行して、それにアクセスしてもよい。ＦＩＦＯ３２０、３３０は、したがって、他方によって読み取られる前に、一方のプロセッサによってロードされなければならない、メールボックス３１０ベースのデータパイプより優れたスループットをもたらし得る。しかしながら、ＦＩＦＯ３２０、３３０コンテンツは、順番にロードおよびアンロードされ、メールボックスデータパイプ内のデータのようにランダムにアクセス可能ではない。ＦＩＦＯはまた、（定義上）一方向性である。これは、ＦＩＦＯをプロセッサ間のデータのブロックを転送するための高速手段を必要とする用途により好適なものにする。
【００２７】
多数のマイクロコントローラが、共通ソフトウェアアーキテクチャを共有してもよい。したがって、一実施形態によると、同じマイクロコントローラコアが、種々の集積マイクロコントローラのために使用される。マスタおよび１つまたは複数のスレーブマイクロコントローラを提供する概念はさらに、電力消費を低減することを可能にする。スレーブマイクロコントローラは、ディスエーブルにされ、それによって、多くのエネルギーを要求しない、スリープモードに置かれるように構成されてもよい。他の実装によると、デバイス内のマイクロコントローラは、完全にオフにされ、エネルギーを節約してもよい。
【００２８】
図５は、そのようなシステムの例示的制御構造を示す。各マイクロコントローラ１００ａ、１００ｂは、それぞれ、専用電力制御ユニット５１０および５２０を有してもよい。各電力制御ユニット５１０、５２０は、具体的電力消費モードおよび関連付けられた処理電力を設定することを可能にしてもよい。例えば、各マイクロコントローラ１００ａ、１００ｂは、スリープまたは低電力モードに設定されてもよい。電力消費の種々のレベルが、提供されてもよい。加えて、一実施形態によると、マスタマイクロコントローラ１００ａは、スレーブマイクロコントローラ１００ｂを完全にオフにすることが可能であってもよい。本モードでは、マイクロコントローラ１００ｂは、電力を全く消費しないであろう。
【００２９】
コアはさらに、異なる速度で稼働してもよい。本特徴は、特に、揮発性メモリを第２のマイクロコントローラのためのプログラムメモリとして使用するときに実装されることができる。ＲＡＭ等の揮発性メモリは、本質的により高速であり、したがって、より高速なアクセス時間、したがって、より高いクロックレートを可能にする。マスタコアは、頻繁なインタラプトを用いて、システムレベル機能をハンドリングするように構成されてもよい。さらに、安全性コンプライアンス特徴、通信、インタラプトハンドリング、ソフトウェア更新、ユーザインターフェース等をハンドリングすることができる。全てのマイクロコントローラが外部ピンのいずれも読み取ることが可能にされるという特徴に起因して、安全性は、複数のＭＣＵが、例えば、同一デバイスピンを監視することによって、改良されることができる。例えば、ある実施形態によると、２つのマイクロコントローラは、安全性向上特徴を提供するためのソフトウェアを備えてもよく、複数の外部ピンのうちの１つが、第１および第２のマイクロコントローラによって独立して読み取られる。次いで、読み出された値は、通信インターフェースを用いて比較されることができる。例えば、単一ピンの場合、メールボックスのうちの１つが、読取値を他方のコアに転送するために使用されてもよい。代替として、ＦＩＦＯ３２０、３３０のうちの一方が、１つ以上の値を転送するために使用されてもよい。システムは、値が合致しない場合、アラートを出力することができる、または具体的ソフトウェアルーチン、インタラプト、もしくはリセットが、エラーを補正するために実行されてもよい。
【００３０】
種々の実施形態によると、時間制約コードが、パーティション化され、コード開発およびサポートを容易にすることができる。スレーブコアは、クリティカルな待ち時間、モータ制御、デジタル電力制御を伴う制御ループ等の専用かつより確定的対応力のために使用されることができる。したがって、スレーブマイクロコントローラとして、マスタマイクロコントローラのための付加的プログラム可能周辺機器と見なされ得る。そのようなアーキテクチャの利点は、階段関数的性能増加である。２つのコアは、基本的に、実行レートを２倍にする。前述のように、時間クリティカルな機能およびシステム機能は、分離され、異なるコアに割り当てられることができる。制御ループ応答性は、最適化されることができ、インタラプトは、最小限にされることができ、モータアルゴリズム実装は、簡略化されることができる。マスタコアの実行速度は、一実施形態によると、例えば、１００ＭＩＰＳであることができる一方、スレーブコア標的は、より高速のプログラムメモリ、例えば、揮発性ランダムアクセスメモリを提供することによって、＞１００ＭＩＰＳの処理パワーを有し得る。したがって、スレーブマイクロコントローラは、概して、マスタマイクロコントローラより高速であることができる。
【００３１】
要求される外部ピンの数はさらに、いくつかの実施形態によると、図２に示されるように、２つのＭＣＵ間の周辺機器のために使用されるピンを共有することによって減少されることができる。図２は、図１に示される実施形態とは対照的に、減少数のピン４２０を伴うパッケージ内のマルチコアデバイスのブロック図を示す。図２は、特に、２つの別個のＭＣＵを伴う２８ピンバージョンのデュアルコアマイクロコントローラを示す。ここでは、単一パッド所有権マルチプレクサ４１０のみが、例えば、特殊機能レジスタを通して、マスタＭＣＵによってのみ制御され得るように提供されてもよい。しかしながら、いくつかの実施形態によると、両ＭＣＵが、アクセスを有してもよく、一実施形態では、マスタＭＣＵは、スレーブＭＣＵよりも優先されてもよい。
【００３２】
利用可能な減少数のＩ／Ｏピンは、依然として、同一またはさらに多くのピンを各ＭＣＵに提供する。特に、少ピンデバイス等の本解決策から利益を享受するある周辺機器のみを要求する、低コスト用途は、とりわけ、印刷回路基板のためのコストを削減する。パッド所有権マルチプレクサ４１０は、各ＭＣＵの汎用ポート機能性を外部ピンと共有すること、ならびにマスタＭＣＵまたはスレーブＭＣＵのいずれかの周辺機器のうちの１つへの割当を可能にする。
【００３３】
図２はさらに、４本のデジタル電力供給ピンＶｄｄおよびＶｓｓと、リセットおよびプログラムするために使用される非多重化マスタクリア機能ピンと、２本のアナログ電力供給ピンＡＶｄｄおよびＡＶｓｓとを示す。残りの２１本のピンは、マスタＭＣＵまたはスレーブＭＣＵのいずれかに割り当てられることができる、外部Ｉ／Ｏピンである。したがって、ある構成では、全２１本のＩ／Ｏピンが、マスタＭＣＵに割り当てられてもよく、これは、スレーブＭＣＵの機能性をコプロセッサのものまで低減させる。同様に、別の構成は、全２１本のＩ／ＯピンをスレーブＭＣＵに割り当ててもよい。マスタＭＣＵとスレーブＭＣＵ割当間の任意の定量を有する任意の他の割当も、可能性として考えられる。
【００３４】
図４は、図１のパッド所有権マルチプレクサ１８０、２８０または図２のパッド所有権マルチプレクサ４１０の可能性として考えられる制御を示す。制御は、構成レジスタ４３０を介して遂行されることができる。そのようなレジスタは、外部プログラマまたはエミュレータデバイスを用いて、設定に従って自動的にプログラムされることができる。したがって、いったんプログラムされると、設定は、デバイス１００の動作の間、改変されることができない。代替として、特殊機能レジスタが、所有権パッドマルチプレクサ１８０、２８０／４１０を制御するために使用されてもよい。そのような実施形態では、動的制御が、可能性として考えられる。偶発的上書を回避するために、ＥＥＰＲＯＭにおいて使用されるものに類似する書込機構、例えば、時間フレーム内で書き込まれる特殊コードのシーケンスが、使用されてもよい。
【００３５】
図３は、２８ピンパッケージ内のデバイスからの実際のピンを示す。スレーブ周辺機器は、接頭語「Ｓ１」によって示される。図３は、特に、各ピンの多機能割当を示す。図３は、以下により詳細に説明されるように、より見やすくするために、必ずしも、外部ピンに割り当てられることができる、全機能を示すわけではない。ここでは、典型的には、ＲＡｘは、５ビットを有する、汎用Ｉ／ＯポートＡを指し、ＲＢｘは、１６ビットポートＲＢを指す。前述のように、図３は、より見やすくするために、単一セットのＩ／ＯポートＡおよびＢのみを示す。しかしながら、マスタおよびスレーブＭＣＵによって独立して制御される、２つの別個のセットが、実装され、独立して割り当てられてもよい。一実施形態によると、各ポートピンは、図３に示されるように、一般的ピン関連付けを用いて、マスタまたはスレーブのいずれかに割り当てられることができる。一実施形態によると、マスタＭＣＵへの割当は、スレーブＭＣＵへの割当より優先されてもよい。他の実施形態によると、マスタＭＣＵおよびスレーブＭＣＵのためのポートは、異なるピンに割り当てられてもよい。
【００３６】
ＡＮｘは、マスタＭＣＵのためのアナログ入力を指し、Ｓ１ＡＮｘは、スレーブＭＣＵのためのアナログ入力を指す。ポートピンと同様に、外部ピンへの他の関連付けが、マスタおよびスレーブＭＣＵのために選定されてもよい。容量分圧器周辺機器が実装される場合、各アナログピンはまた、容量分圧器機能に割り当てられてもよく、マスタＭＣＵおよびスレーブＭＣＵのための別個のユニットが、提供されてもよい。ＲＰｘは、周辺機器ピン選択ユニットによって割り当てられる１６本のピンを指す。Ｉ／Ｏポートと同様に、マスタおよびスレーブＭＣＵはそれぞれ、例えば、利用可能な１６本のピンを有してもよい一方、図３は、単一セットのみを示す（再び、より見やすくするために）。他の実施形態によると、異なる数の周辺機器ピン選択ピンが、使用されてもよく、例えば、これらのピンのうちの８本は、マスタに割り当てられ、８本のピンは、スレーブＭＣＵに割り当てられてもよい。再び、他の数のピンおよび／またはそのような周辺機器ピン選択ユニットの割当が、選定されてもよい。パルス幅変調器ピン等の他のピン機能は、ＰＷＭ等のそれぞれの頭字語を使用し、頭字語の先頭のＳ１は、概して、ユニットがスレーブＭＣＵに属することを示す。
【００３７】
前述のように、各ピンは、デフォルトによって、具体的機能に割り当てられてもよい。例えば、ピン１−３は、デフォルトによって、マスタＭＣＵのアナログ入力として割り当てられることができる。ピン４および１１は、デフォルトによって、スレーブＭＣＵのアナログ入力として割り当てられることができる。ピン９および１０は、デフォルトによって、発振器入力ピンであることができるが、また、内部発振器が使用されるとき、他の機能に割り当てられてもよい。ピン１２−１３は、デフォルトによって、同期シリアルプログラミングインターフェースＰＧＥＤ２に割り当てられることができ、ＰＧＥＣ２は、マスタＭＣＵとのみ相互作用する。ピン１４−１８および２１−２６は、デフォルトによって、ＰＯＲＴＢビット５−１５に割り当てられ、ピン２８は、ＰＯＲＴＡのビット０に割り当てられる。前述の割当は、単に、実施例であり、他の割当も、可能性として考えられる。
【図１】
2018512662.tif 000003
【図２】
2018512662.tif 000004
【図３】
2018512662.tif 000005
【図４】
2018512662.tif 000006
【図５】
2018512662.tif 000007
【国際調査報告】
2018512662.tif 000008
2018512662.tif 000009
2018512662.tif 000010
2018512662.tif 000011