(57)【要約】【課題】自律制御能力を有するマルチマイクロコントローラーシステム、及び、制御方法を提供する。【解決手段】本発明は、自律制御能力を有するマルチマイクロコントローラーシステム、及び、制御方法を開示し、このマルチマイクロコントローラーシステム中、任意のマイクロコントローラーコアロジックは、挿入プログラムの開始アドレスを直接もう一つの被制御マイクロコントローラーコアロジック中のプログラムカウンター内に配置し、この被制御マイクロコントローラーコアロジックが受けた中断時のプログラムアドレスは、マイクロコントローラーコアロジックのスタックポインターが指示するスタックメモリ中に一時保存され、被制御マイクロコントローラーコアロジックが挿入プログラムを実行完成後、この中断点から本来のプログラムを再開する。【選択図】図３
2007287126.tif 000002
【特許請求の範囲】
【請求項１】
マルチマイクロコントローラーシステムであって、
複数のマイクロコントローラー機能ロジックと複数のプログラムカウンターとからなり、各プログラムカウンターは、それぞれ一つのマイクロコントローラー機能ロジックと結合し、プログラムアドレスを前記マイクロコントローラー機能ロジックに提供するマルチコントローラーユニットと、
前記マルチマイクロコントローラーユニットと連接し、前記マイクロコントローラー機能ロジックを無効、有効にするマイクロコントローラーイネーブルレジスタと、
前記マルチマイクロコントローラーユニットと連接し、前記マルチマイクロコントローラーユニットにより要求されるプログラムを保存する少なくとも一つのメモリと、
からなり、前記の各マイクロコントローラー機能ロジックは、上述の任意のプログラムカウンターの内容を変更することができることを特徴とするマルチマイクロコントローラーシステム。
【請求項２】
前記の各マイクロコントローラー機能ロジックは、独立して、少なくとも一つのプログラムを実行し、且つ、同時に、一命令を実行して、もう一つのマイクロコントローラー機能ロジックを制御することを特徴とする請求項１に記載のマルチマイクロコントローラーシステム。
【請求項３】
前記命令は、以下の数種の命令の一つで、
前記のもう一つのマイクロコントローラー機能ロジックを有効にする：
前記のもう一つのマイクロコントローラー機能ロジックを無効にする：
プログラムアドレスを前記のもう一つのマイクロコントローラー機能ロジックと対応するプログラムカウンター中に転移する：或いは、
前記のもう一つのマイクロコントローラー機能ロジックと対応するプログラムカウンターの内容を少なくとも一つのメモリ中に転移することを特徴とする請求項２に記載のマルチマイクロコントローラーシステム。
【請求項４】
前記少なくとも一つのメモリは、
プログラムメモリバスにより前記マルチマイクロコントローラーユニットと連接し、複数のプログラムメモリアドレスを有し、少なくとも一つのプログラムを保存する少なくとも一つのプログラムメモリと、
スタックメモリバスにより前記マルチマイクロコントローラーユニットと連接し、複数のスタックメモリアドレスを有し、前記マルチマイクロコントローラーユニットが実行するプログラムの少なくとも一つのプログラムアドレスを保存する少なくとも一つのスタックメモリと、からなり、且つ、
前記マルチマイクロコントローラーユニットは、更に、
それぞれ、前記マイクロコントローラー機能ロジックと連接し、スタックメモリアドレスを提供する複数のスタックポインターと、
からなることを特徴とする請求項１に記載のマルチマイクロコントローラーシステム。
【請求項５】
前記「プログラムアドレスを前記のもう一つのマイクロコントローラー機能ロジックと対応するプログラムカウンター中に転移する」命令は、プッシュ命令、或いは、移動命令のどれかであることを特徴とする請求項３に記載のマルチマイクロコントローラーシステム。
【請求項６】
前記「プログラムアドレスを前記のもう一つのマイクロコントローラー機能ロジックと対応するプログラムカウンターに転移する」命令は、移動命令、コール命令、戻り命令、或いは、ロードテーブル命令のどれかであることを特徴とする請求項３に記載のマルチマイクロコントローラーシステム。
【請求項７】
マルチマイクロコントローラーシステム中に応用するプッシュ（push）制御方法であって、前記マルチマイクロコントローラーシステムは、少なくとも一つのコントローラーMCU機能ロジック、被制御マイクロコントローラー機能ロジック、前記被制御マイクロコントローラー機能ロジックと対応するプログラムカウンター、及び、メモリ、からなり、前記制御方法は、
前記被制御マイクロコントローラー機能ロジックがプッシュ命令を発する工程と、
前記システムは、前記被制御マイクロコントローラー機能ロジックと対応するプログラムカウンターの内容を前記メモリ位置に保存する工程と、
からなることを特徴とする制御方法。
【請求項８】
マルチマイクロコントローラーシステム中に応用するポップ（pop）制御方法であって、前記マルチマイクロコントローラーシステムは、少なくとも一つのコントローラーMCU機能ロジック、被制御マイクロコントローラー機能ロジック、前記被制御マイクロコントローラー機能ロジックと対応するプログラムカウンター、及び、メモリ、からなり、前記制御方法は、
前記マイクロコントローラー機能ロジックがポップ命令を発する工程と、
前記システムは、プログラムアドレスを前記被制御コントローラー機能ロジックの前記プログラムカウンターに挿入する工程と、
からなることを特徴とする制御方法。
【請求項９】
マルチマイクロコントローラーシステム中に応用する制御方法であって、前記マルチマイクロコントローラーシステムは、少なくとも一つのコントローラーMCU機能ロジック、被制御マイクロコントローラー機能ロジック、前記被制御マイクロコントローラー機能ロジックと対応するプログラムカウンター、及び、メモリ、からなり、前記制御方法は、
前記被制御マイクロコントローラー機能ロジックを無効にする工程と、
前記プログラムカウンターを凍結する工程と、
前記メモリ内の第一位置の内容を前記プログラムカウンター内に伝送する工程と、
前記被制御マイクロコントローラー機能ロジックを有効にする工程と、
からなることを特徴とする制御方法。
【請求項１０】
前記無効工程と有効工程は、マイクロコントローラーイネーブルレジスタにより達成されることを特徴とする請求項９に記載の制御方法。
【請求項１１】
転移工程の前に更に、前記プログラムカウンターの内容を前記メモリの第二位置に保存する工程を含むことを特徴とする請求項９に記載の制御方法。
【請求項１２】
更に、前記被制御マイクロコントローラー機能ロジックを有効にした後、前記メモリ中の第一位置の内容に対応するタスクの完成を待ち、前記メモリ中の第二位置の内容を前記プログラムカウンター内に再度保存する工程を含むことを特徴とする請求項１１に記載の制御方法。
【請求項１３】
前記「前記メモリ内の第一位置中の内容を前記プログラムカウンター中に転移する」工程は、移動命令、コール命令、ロードテーブル命令のどれかであることを特徴とする請求項９に記載の制御方法。
【請求項１４】
前記「前記プログラムカウンター中の内容を前記メモリの第二位置に保存する」工程は、プッシュ命令、移動命令のどれかであることを特徴とする請求項１１に記載の制御方法。
【請求項１５】
前記「メモリ中の第二位置の内容を前記プログラムカウンター中に再度保存する」工程は、移動命令、コール命令、戻り命令、或いは、ロードテーブル命令のどれかであることを特徴とする請求項１２に記載の制御方法。
【請求項１６】
前記メモリの第一位置はプログラムメモリ中の位置であることを特徴とする請求項９に記載の制御方法。
【請求項１７】
前記メモリ中の第二位置はスタックメモリ中の位置であることを特徴とする請求項１１に記載の制御方法。
【請求項１８】
前記システムは、更に、前記スタックメモリと対応するスタックポインターを有し、且つ、前記「前記プログラムカウンターの内容を前記メモリ中の第二位置に保存する」工程は、
前記スタックポインターの索引により、前記プログラムカウンターの内容を前記スタックメモリの一位置中に保存する工程を含むことを特徴とする請求項１７に記載の制御方法。
【請求項１９】
前記システムは、更に、前記スタックメモリと対応するスタックポインターを有し、且つ、前記「前記メモリ内の第一位置中の内容を前記プログラムカウンター中に転移する」工程は、
前記スタックポインターの第一索引により、前記メモリの第一位置の内容を前記スタックメモリの一位置中に暫時保存する工程と、
前記スタックポインターの第二索引により、前記スタックメモリの上述位置の内容を前記プログラムカウンター中に保存する工程と、
を含むことを特徴とする請求項１６に記載の制御方法。
【請求項２０】
マルチマイクロコントローラーシステム中に応用する制御方法であって、前記マルチマイクロコントローラーシステムは、少なくとも一つのMCU機能ロジック、被制御マルチコントローラー機能ロジック、前記被制御マルチコントローラー機能ロジックと対応するプログラムカウンター、プログラムメモリ、スタックメモリ、及び、前記スタックメモリに対応するスタックポインター、からなり、前記制御方法は、
前記被制御マイクロコントローラー機能ロジックを無効にする工程と、
前記プログラムカウンターを凍結する工程と、
前記スタックポインターの第一索引により、前記メモリカウンターの内容を前記スタックメモリの第一位置に保存する工程と、
前記スタックポインターの第二位置により、前記プログラムメモリの一アドレスを前記スタックメモリ内の第二位置に暫時保存する工程と、
前記スタックポインターの第二索引により、前記スタックメモリ内の第二位置の内容を前記プログラムカウンターに保存する工程と、
前記被制御マイクロコントローラー機能ロジックを有効にし、前記被制御マイクロコントローラー機能ロジックに、前記プログラムメモリアドレス内の内容と対応するタスクを実行させる工程と、
前記被制御マイクロコントローラー機能ロジックを無効にする工程と、
前記スタックメモリの第一位置の内容を前記プログラムカウンター内に回復させる工程と、
前記被制御マイクロコントローラー機能ロジックに本来実行中であったプログラムを継続実行させる工程と、からなることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチマイクロコントローラーシステム、及び、制御方法に関するものであって、特に、自律制御能力を有するマルチマイクロコントローラーシステム、及び、制御方法に関するものである。
【背景技術】
【０００２】
マイクロコントローラー／マイクロプロセッサ（MCU／MPU）は単一クリップマイクロコンピュータ（single-chip microcomputer）とも称され、他の補助回路が不要で、独立して演算を実行できる装置であり、主に、システム製品中、制御命令を発する集積回路である。マイクロコントローラーは、小型コンピュータにより提供されるのとほぼ等しい機能を提供する。近年、マイクロコントローラーは、家庭用電化製品、工業用制御装置、医療機器、運搬制御装置等、様々な分野に応用されている。異なるマイクロコンピュータの規格により、異なる分野に応用でき、且つ、制御する周辺素子も異なる。
【０００３】
マイクロコントローラーの開発履歴を回顧すると、発展の主要標的は三つあり、（１）データ処理速度の加速、（２）単位関数毎のチップサイズの縮小、（３）消費電力の減少、である。これらの目的下で、処理ビット数の増加、クロック周波数の加速、演算器の改良、メモリ管理、キャッシュ技術の発展、パイプライン処理構造の提出、命令の予復号と予実行技術の応用、マルチメディア要求に応じた新しい命令集の構築、新しいチップの組立工程、及び、新しい実装技術等、幾つかの重要な発展過程が衍生した。しかし、以上の各種発展は二種の重要な技術、半導体工程技術とハードウェアアーキテクチャ設計技術によるものである。一つは、半導体技術の発展上、チップを更に多くのトランジスタに収め、素子間の距離を縮小して、機能を増加、電圧を低下、回路反応速度を加速することで、もう一つは、ハードウェアアーキテクチャ設計上、スーパーパイプライン（super-pipeline ）アーキテクチャ、内部キャッシュアーキテクチャ、スーパースカラ（super-scalar）技術、推測実行、マイクロコード追跡技術である。パイプライン技術はハードウェアアーキテクチャ技術の改良に最も貢献した技術である。パイプライン技術はタスク分配を実行し、タスクを複数の部分に分けて、マルチユニットを割り当てる。マイクロコントローラーのクロック周波数が増加しなくても、マイクロコントローラーの実行速度はパイプライン技術により増加する。
【０００４】
タスク分配機能を実行する公知のマルチマイクロコントローラーシステムと公知のハイパースレッド（hyper-thread）マイクロコントローラーシステムが図１（ａ）と図１（ｂ）で示される。公知のマルチマイクロコントローラーシステム（図１ａ）は、主に、マルチマイクロコントローラー１０、１１、及び、１２からなり、バス（図中の白抜き矢印で示される）によりコモンデータメモリ１３とコモン周辺装置１４に結合される。各MCUは、コアロジック１０２、１１２、及び、１２２が対応するプログラムメモリ１０１、１１１、及び、１２１を有するので、MCUは独立作業ができる。図１（ｂ）中、公知のハイパースレッドマイクロコントローラーシステムは、主に、マルチマイクロコントローラーコアユニット１５、１６からなる。各マルチマイクロコントローラーコアユニット１５、１６は、MCUコアロジック１５２、１６２、及び、対応する専属の命令バッファ（instruction
buffer）１５１、１６１を有し、バス（図中の白抜き矢印で示される）によりデータメモリ１８とプログラムメモリ１７に接続される。よって、マイクロコントローラーコアユニット１５、１６は各自プログラムを平行実行し、命令バッファ１５１、１６１によりマイクロコントローラーコアユニット１５、１６がプログラムメモリ１７を読み取るのを減少させ、異なるマイクロコントローラーコアユニットがプログラムメモリを読み取ることで相互干渉する確率を大幅に減少させ、プログラムは効果的に実行される。
【０００５】
公知のマルチマイクロコントローラーシステム、或いは、公知のハイパースレッドマイクロコントローラーシステムでも、割り込み要求（interrupt request）に対面する時、応答するプログラム実行モードは相同である。図２で示されるように、各マイクロコントローラーは独立して実行されるので、割り込み要求の時、一マイクロコントローラーが割り込み要求を検出し、応答するまで、割り込み要求のタスクは待機しなければならない。例えば、あるマイクロコントローラーコアロジック２０が割り込み要求を検出し、応答する場合である。MCUコアロジック２０が割り込み要求を検出した時、MCUコアロジック２０はまず、プログラムカウンター２４の内容をスタックメモリ２６に置き、次に、ISR（Interrupt Service Routine）の開始アドレスを取得した後、割り込みタスクを実行する。上述から分かるように、公知の二つのマルチマイクロコントローラーシステムにおいて、マイクロコントローラーはもう一つを直接、効果的に制御できない。一マイクロコントローラー（図２で図示されない）は、もう一つのマイクロコントローラー（コアロジック２０を有するMCU）に“通知”するだけで、フラグ（flag）を設定するか、或いは、割り込み要求を伝送することにより、実行されるプログラムの変更を告知する。その後、前のMCUは後のMCUの応答を待つ。この場合、各マイクロコントローラー間に効果的な相互制御がなく、即時実行のタスクに対しても実行時間の制御が精確になされない。この他、作業不当で一部のマイクロコントローラーに分配されて、マルチマイクロコントローラーシステムの機能が効果的に発揮されない。よって、上述のシステム操作モードは、煩雑な電子製品性能要求を満たすことが困難である。
【０００６】
よって、本発明は上述の問題に対し、自律制御能力を有するマルチマイクロコントローラーシステム、及び、制御方法を提供し、マルチマイクロコントローラーシステムのマイクロコントローラーユニット間の相互制御の特性を利用し、挿入したいプログラムの開始アドレスを直接被制御マイクロコントローラー内に配置し、割り込み動作に必要な時間を短縮して、各マイクロコントローラーユニットは最適なパフォーマンスを達成する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
解決しようとする課題は、自律制御能力を有するマルチマイクロコントローラーシステムを提供し、数個のマイクロコントローラーコアロジックにより、複数のプログラムを平行実行し、複数のプログラムを平行処理すると共に、ソフトウェアにより、精確、効果的に各マイクロコントローラーコアロジックの操作を制御して、マルチマイクロコントローラーシステム中の各マイクロコントローラーコアロジックの最大機能を充分に発揮させることを目的とする。
【０００８】
更に、自律制御能力を有するマルチマイクロコントローラーシステム、及び、制御方法を提供し、ソフトにより実行したいプログラムは、マイクロコントローラーコアロジックの指示により、挿入したいプログラムのプログラム開示アドレスを制御されるマイクロコントローラーコアロジック内のプログラムカウンター中に伝送し、被制御マイクロコントローラーコアロジックは即時に挿入されたプログラムを実行して、マイクロコントローラー間の互換処理時間を短縮することをもう一つの目的とする。
【課題を解決するための手段】
【０００９】
上述の目的を達成するため、本発明は、自律制御能力を有するマルチマイクロコントローラーシステムを提供し、マルチコントローラーユニットと、マイクロコントローラーイネーブルレジスタ、及び、少なくとも一つのメモリ、からなる。マルチコントローラーユニットは、複数のマイクロコントローラー（MCU）機能ロジック、MCU機能ロジックに接続され、プログラムアドレスをMCU機能ロジックに提供する対応する複数のプログラムカウンターからなる。マイクロコントローラーイネーブルレジスタとマルチマイクロコントローラーユニットは電気的に接続し、マイクロコントローラー機能ロジックを有効（enable）、或いは、無効（disable）にする。メモリはマルチマイクロコントローラーユニットと電気的に接続し、マルチマイクロコントローラーユニットにより要求されるプログラムを提供する。各マイクロコントローラー機能ロジックは、上述の任意のプログラムカウンターの内容を変更することができる。
【００１０】
この他、本発明は、自律制御能力を有するマルチマイクロコントローラーシステムの制御方法を提供し、本システムは、少なくとも一つのコントローラーMCU機能ロジック、被制御マイクロコントローラー機能ロジック、被制御マイクロコントローラー機能ロジックと対応するプログラムカウンター、及び、メモリ、からなり、制御方法は、以下の工程からなる。被制御マイクロコントローラー機能ロジックを無効にする工程と、プログラムカウンターを凍結する工程と、メモリ内の内容をプログラムカウンター内に伝送する工程と、被制御マイクロコントローラー機能ロジックを有効にする工程と、からなる。
【００１１】
更に、本発明は、自律制御能力を有するマルチマイクロコントローラーシステムの制御方法を提供し、本システムは、少なくとも一つのMCU機能ロジック、被制御マルチコントローラー機能ロジック、被制御マルチコントローラー機能ロジックと対応するプログラムカウンター、プログラムメモリ、スタックメモリ、及び、スタックメモリに対応するスタックポインター、からなる。制御方法は、以下の工程からなる。被制御マイクロコントローラー機能ロジックを無効にする工程と、プログラムカウンターを凍結する工程と、スタックポインターの第一索引により、メモリカウンターの内容をスタックメモリの第一位置に保存する工程と、スタックポインターの第二位置により、プログラムメモリの一アドレスをスタックメモリ内の第二位置に暫時保存する工程と、スタックポインターの第二索引により、スタックメモリ内の第二位置の内容をプログラムカウンターに保存する工程と、被制御マイクロコントローラー機能ロジックを有効にし、被制御マイクロコントローラー機能ロジックに、前述のプログラムメモリアドレス内の内容と対応するタスクを実行させる工程と、被制御マイクロコントローラー機能ロジックを無効にする工程と、スタックメモリの第一位置の内容をプログラムカウンター内に再度保存する工程と、最後に、被制御マイクロコントローラー機能ロジックに本来実行中であったプログラムを継続実行させる工程と、からなる。
【発明の効果】
【００１２】
本発明の自律制御能力を有するマルチマイクロコントローラーシステム、及び、制御方法により、マルチマイクロコントローラーシステムのマイクロコントローラーユニット間の相互制御の特性を利用し、挿入したいプログラムの開始アドレスを直接制御されるマイクロコントローラー内に配置し、割り込み動作に必要な時間を短縮して、各マイクロコントローラーユニットは最適なパフォーマンスを達成する。
【発明を実施するための最良の形態】
【００１３】
本発明のマルチマイクロコントローラーシステムの構造上、各マイクロコントローラーコアロジックはプログラムの独立処理能力を有し、各マイクロコントローラーコアロジックは、各自プログラムを処理する状態下で、指示されたプログラム開始アドレスをその他のマイクロコントローラーコアロジック内のプログラムカウンター中に伝送し、後者のマイクロコントローラーコアロジック（被制御マイクロコントローラーコアロジック）の次のタスクを制御する。これにより、被制御マイクロコントローラーコアロジックのプログラム変更の反応時間を短縮することができる。
【００１４】
本発明の第一実施例を説明する。本発明の自律制御能力を有するマルチマイクロコントローラーシステム中、マイクロコントローラーコアロジックがもう一つの不特定のマイクロコントローラーコアロジックを実行したい時、システムがいかに作用するか、その方法工程を示す。図３で示されるように、まず、自律制御能力を有するマルチマイクロコントローラーシステム中、三個のマイクロコントローラーコアロジック３０、３１、３２、マイクロコントローラーイネーブルレジスタ３５、プログラムメモリ３３、スタックメモリ３４、を有する。各マイクロコントローラーコアロジック３０、３１、３２中、それぞれ、マイクロコントローラー機能ロジック３０１、３１１、３２１、プログラムカウンター３０２、３１２、３２２、及び、スタックポインター３０３、３１３、３２３を有する。マイクロコントローラーコアロジック３０、３１、３２は、プログラムメモリバス３３４により、プログラムメモリ３３と接続されて、プログラムメモリ３３中に保存されたシステムプログラム領域３３０、第一マイクロコントローラーコアロジックプログラム領域３３１、第二マイクロコントローラーコアロジックプログラム領域３３２、及び、第三マイクロコントローラーコアロジックプログラム領域３３３内の全ての命令とプログラムを読み出す。且つ、マイクロコントローラーコアロジック３０、３１、３２は、スタックメモリバス３４４により、スタックメモリ３４とも接続し、第一、第二、及び、第三マイクロコントローラーコアロジック３０、３１、３２がプログラムを実行する時、それぞれ、各自の第一、第二、及び、第三プログラムカウンター３０２、３１２、３２２内の内容を、対応する第一マイクロコントローラーコアロジックスタック領域３４１、第二マイクロコントローラーコアロジックスタック領域３４２、及び、第三マイクロコントローラーコアロジックスタック領域３４３中に保存する。
【００１５】
本発明の自律制御能力を有するマルチマイクロコントローラーシステムの制御方法は以下で詳述され、図３、及び、図４を参照すると、図４は、本発明の第一実施例の制御方法のフローチャートである。まず、工程S０１で、三個のマイクロコントローラーコアロジック３０、３１、３２は各自のプログラムを実行する。つまり、第一マイクロコントローラーコアロジック３０中の第一マイクロコントローラー機能ロジック３０１が、第一プログラムカウンター３０２が指定するプログラムアドレスの命令を実行中で、且つ、この命令がプログラムメモリ３３中のプログラムアドレスがｃ１０１であるとする。第二マイクロコントローラーコアロジック３１中の第二マイクロコントローラー機能ロジック３１１が、第二プログラムカウンター３１２が指定するプログラムアドレスの命令を実行中で、且つ、この命令がプログラムメモリ３３中のプログラムアドレスがｃ２０１であるとする。第三マイクロコントローラーコアロジック３２中の第三マイクロコントローラー機能ロジック３２１が、第三プログラムカウンター３２２が指定するプログラムアドレスの命令を実行中で、且つ、この命令がプログラムメモリ３３中のプログラムアドレスがｃ３０１であるとする。この時、システムは、割り込み要求を生成、或いは、受信し、システムにプログラムアドレス００f０から始まる一つのプログラムを実行するよう要求し、この挿入プログラムのプログラムアドレスは、例えば、既にシステムプログラム領域３３０中に保存されている。この割り込み要求は、第二マイクロコントローラーコアロジック３１に実行中のプログラム（第二マイクロコントローラーコアロジックプログラム領域３２２中のプログラム）の中止が必要で、開始アドレスが００f０の挿入プログラムの実行に変更する。第二マイクロコントローラーコアロジック３１の第二マイクロコントローラー機能ロジック３１１が本来実行していたプログラムに戻る必要がない場合、本来実行していたプログラムはその時のプログラムアドレス（例えば、ｃ２０２）中で終了し、第二プログラムカウンター３１２は対応するアドレスｃ２０２の状態下で凍結する。工程Ｓ０２中、第一マイクロコントローラーコアロジック３０は、マイクロコントローラーイネーブルレジスタ３５により、第二マイクロコントローラーコアロジック３１を無効にするディスエーブル信号を伝送し、同時に、第二マイクロコントローラーコアロジック３１が対応する第二マイクロコントローラー機能ロジック３１１が無効になり、現在実行するプログラムの実行を中止して、プログラムカウンター３１２をプログラムアドレスｃ２０２の状態で凍結する。工程Ｓ０３中、この時、第一マイクロコントローラーコアロジック３０中、第一スタックポインター３０３の索引状態は、スタックメモリアドレスｉであり、被制御の第二マイクロコントローラーコアロジック３１の第二マイクロコントローラー機能ロジック３１１が実行する挿入プログラムは、そのプログラム開始アドレスが００f０である。第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１は、００f０をスタックメモリ３４中のスタックメモリアドレスｉ内に保存する。工程S０４中、第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１は、スタックメモリ３４中に保存されたスタックメモリアドレスｉ中の内容（即ち、００f０）を第二マイクロコントローラーコアロジック３１中の第二プログラムカウンター３１２内に転移させて、第二マイクロコントローラーコアロジック３１を再度有効にした後、プログラム実行のアドレスとなる。転移の方式は、例えば、ポップ（pop）命令、popPC２などを利用する。工程S０５中、第一マイクロコントローラーコアロジック３０は、マイクロコントローラーイネーブルレジスタ３５により、イネーブル信号を第二マイクロコントローラーコアロジック３１（及び、第二マイクロコントローラー機能ロジック３１１）に出力し、第二マイクロコントローラーコアロジック３１は、第二プログラムカウンター３１２中で指名されるプログラムアドレス（００f０）から開始し、挿入プログラムを実行する。工程S０６中、第二マイクロコントローラーコアロジック３１中の第二プログラムカウンター３１２は既に００f０に変更しているので、三個のマイクロコントローラーコアロジック３０、３１、３２の状態はそれぞれ：第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１が第一プログラムカウンター３０２中のプログラムアドレスを実行し、且つ、このプログラムアドレスは、プログラムメモリ３３中の第一マイクロコントローラーコアロジックプログラム領域３３１に対応する：第二マイクロコントローラーコアロジック３１の第二マイクロコントローラー機能ロジック３１１が第二プログラムカウンター３１２中のプログラムアドレスを実行し、且つ、このプログラムアドレスは、プログラムメモリ３３中のシステムプログラム領域３３０に対応する。第三マイクロコントローラーコアロジック３２の第三マイクロコントローラー機能ロジック３２１が第三プログラムカウンター３２２中のプログラムアドレスを実行し、且つ、このプログラムアドレスは、プログラムメモリ３３中の第三マイクロコントローラーコアロジックプログラム領域３３３に対応する。
【００１６】
上述の第一実施例中で本発明のマルチマイクロコントローラーシステム内を詳述し、MCUコアロジック（３０）と被制御マイクロコントローラーコアロジック（３１）間で相互制御の方法を実行するが、第一実施例中では、被制御マイクロコントローラーコアロジックがプログラムアドレスを変更するまでだけを説明している。しかし、この挿入プログラムは完了後、被制御マイクロコントローラーコアロジックはその他のプログラムを継続実行するか、或いは、中断したモードに戻って本来のプログラムを実行する。本発明の第二実施例は、第一実施例の延長で、更に、被制御マイクロコントローラーコアロジックが挿入プログラムを実行完成後、中断プログラムに戻り、本来のプログラムを継続実行する必要がある場合、どのように実行するか、及び、MCUコアロジックと被制御マイクロコントローラーコアロジック間の相互制御方法を説明する。
【００１７】
図３と図５を参照し、図５は、本発明の第二実施例の制御方法のフローチャートである。自律制御能力を有するマルチマイクロコントローラーシステムの構造は上述された通りであり、ここに詳述しない。第二実施例中の自律制御能力を有するマルチマイクロコントローラーシステムの制御方法は、以下のようである。まず、工程S１１中で、三個のマイクロコントローラーコアロジック３０、３１、３２は各自のプログラムを実行する。つまり、第一マイクロコントローラーコアロジック３０中の第一マイクロコントローラー機能ロジック３０１が、第一プログラムカウンター３０２が指定するプログラムアドレスの命令を実行中で、且つ、この命令がプログラムメモリ３３中の第一マイクロコントローラーコアロジックプログラム領域３３１に位置する。第二マイクロコントローラーコアロジック３１中の第二マイクロコントローラー機能ロジック３１１が、第二プログラムカウンター３１２が指定するプログラムアドレスの命令を実行中で、且つ、この命令がプログラムメモリ３３中の第二マイクロコントローラーコアロジックプログラム領域３３２に位置する。第三マイクロコントローラーコアロジック３２中の第三マイクロコントローラー機能ロジック３２１が、第三プログラムカウンター３２２が指定するプログラムアドレスの命令を実行中で、且つ、この命令がプログラムメモリ３３中の第三マイクロコントローラーコアロジックプログラム領域３３３に位置する。この時、システムは、割り込み要求を生成、或いは、受信し、システムにプログラムアドレス００f０から始まる一つのプログラムを実行するよう要求し、この挿入プログラムのプログラムアドレスは、既にシステムプログラム領域３３０中に保存されている。このように、第二マイクロコントローラーコアロジック３１にその実行中のプログラム（第二マイクロコントローラーコアロジックプログラム領域３３２中のプログラム）を終了させる必要があり、スタートアドレスは００f０の挿入プログラムを実行する。挿入プログラム実行完了後、第二マイクロコントローラーコアロジック３１は、本来のプログラムの実行を回復する。工程S１２中、第一マイクロコントローラーコアロジック３０は、マイクロコントローラーイネーブルレジスタ３５により、ディスエーブル信号を第二マイクロコントローラーコアロジック３１（及び、第二マイクロコントローラー機能ロジック３１１）に伝送して、現在のプログラムアドレス（例えば、ｃ２０２）で凍結する。工程Ｓ１３中、この時、第一マイクロコントローラーコアロジック３０中、第一スタックポインター３０３の索引状態は、スタックメモリアドレスｉであり、第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１は、第二マイクロコントローラーコアロジック３１中の第二プログラムカウンター３１２の内容をスタックメモリアドレスｉ中に保存し、その方法は、例えば、プッシュ（push）命令を利用し、例えば、pushPC２である。工程S１４中、第一マイクロコントローラーコアロジック３０の第一スタックポインター３０３状態は、スタックメモリアドレスｉ＋１で、被制御の第二マイクロコントローラーコアロジック３１が実行する挿入プログラムのプログラム開始アドレスは００f０であり、故に、第一マイクロコントローラ０コアロジック３０の第一マイクロコントローラー機能ロジック３０１は００F０をスタックメモリ３４中のスタックメモリアドレスｉ＋１内に保存する。工程S１５中、第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１は、スタックメモリ３４に保存されたスタックメモリアドレスｉ＋１中の内容（即ち、００f０）を第二マイクロコントローラーコアロジック３１中の第二プログラムカウンター３１２内に伝送し、伝送方式は、例えば、ポップ命令で、popPC２である。工程S１６中、第一マイクロコントローラーコアロジック３０は、マイクロコントローラーイネーブルレジスタ３５により、イネーブル信号を第二マイクロコントローラーコアロジック３１（及び、第二マイクロコントローラー機能ロジック３１１）に伝送して、第二マイクロコントローラーコアロジック３１の第二マイクロコントローラー機能ロジック３１１に第二プログラムカウンター３１２が指示するプログラム開始アドレスが００f０のシステムプログラムを実行させる。続いて、工程S１７中、第二マイクロコントローラーコアロジック３１がプログラム開始アドレスが００f０の挿入システムプログラムを完成するのを待ち、第一マイクロコントローラーコアロジック３０にこのプログラムの実行終了を通知する。工程S１８中、第一マイクロコントローラーコアロジック３０は、マイクロコントローラーイネーブルレジスタ３５により、ディスエーブル信号を出力して、第二マイクロコントローラーコアロジック３１を一時停止し、現在実行するプログラムを停止する。工程S１９で、第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１をスタックメモリ３４に保存されたアドレスｉの内容（ｃ２０２）を第二マイクロコントローラーコアロジック３１内の第二プログラムカウンター３１２中まで再送（例えば、popを使用）し、この動作は、第二マイクロコントローラーコアロジック３１中の第二プログラムカウンター３１２がプログラムメモリ３３中のアドレスｃ２０２を再指定したことを示す。工程Ｓ２０中、第一マイクロコントローラーコアロジック３０はマイクロコントローラーイネーブルレジスタ３５により、イネーブル信号を出力して、第二マイクロコントローラーコアロジック３１の第二マイクロコントローラー機能ロジック３１１を有効にし、第二マイクロコントローラーコアロジック３１を再度有効にした後、第二プログラムカウンター３１２中にプログラムアドレスの中断前のタスクにより、第二マイクロコンピュータコアロジックプログラム領域３２２のプログラムを継続実行する。最後に、工程Ｓ２１中、第二マイクロコントローラーコアロジック３１中の第二プログラムカウンター３１２は既に、プログラムメモリアドレスｃ２０２を指向しており、よって、三個のマイクロコントローラーコアロジック３０、３１、３２の状態は、それぞれ、：第一マイクロコントローラーコアロジック３０の第一マイクロコントローラー機能ロジック３０１が第一プログラムカウンター３０２中のプログラムを実行し、且つ、このプログラムアドレスは、プログラムメモリ３３中の第一マイクロコントローラーコアロジックプログラム領域３３１に位置する：第二マイクロコントローラーコアロジック３１が第二プログラムカウンター３１２のプログラムを実行し、且つ、このプログラムアドレスは、プログラムメモリ３３中の第二マイクロコントローラーコアロジックプログラム領域３３２に位置する。第三マイクロコントローラーコアロジック３２が第三プログラムカウンター３２２のプログラムを実行し、且つ、このプログラムアドレスは、プログラムメモリ３３中の第三マイクロコントローラーコアロジックプログラム領域３３３に位置する。
【００１８】
上述の実施例中、第一マイクロコントローラーコアロジックがMCUコアロジックとして描写されているが、任意のマイクロコントローラーコアロジックをコントローラーMCUコアロジックとすることができ、挿入プログラムの開始アドレスを被制御のマイクロコントローラーコアロジックプログラムカウンター中に配置する。
【００１９】
この他、図３中では、マイクロコントローラーコアロジックは、マイクロコントローラー機能ロジック、プログラムカウンター、及び、スタックポインターから構成されるが、これらの構造は、本発明を分かりやすくするために作成され、実際、各マイクロコントローラー機能ロジックとプログラムカウンター、スタックポインター間の作業は、動態性の対応関係で、固定の対応関係ではない。
【００２０】
更に、上述の実施例中、挿入プログラムのプログラムアドレスは、システムプログラム領域内（３３０）に保存されるが、本技術を熟知する者なら分かるように、挿入プログラムのプログラムアドレスは、任意の適当な位置に保存され、例えば、汎用レジスタ（general register）に保存される。実施例中のシステムプログラム領域は、一種の実施様態を示すのにすぎない。
【００２１】
また、上述の実施例中、プログラムアドレスは、スタックメモリとスタックポインター（実施例中はMCUコアロジック３０のスタックポインター）を利用し、被制御のマイクロコントローラーコアロジック（実施例中は３１）に伝送、或いは、そこから出力される。しかし、本技術を熟知する者なら分かるように、多くの同等の方法はこの目的を達成できる。例えば、プログラムアドレスは汎用レジスタ、データメモリ、或いは、任意のメモリを使用することにより、異なるメモリ位置の間で転移する。同様に、プッシュ命令とポップ命令は唯一の応用可能な命令ではなく、その他の命令、例えば、移動（move）命令、コール（call）命令、戻り（return）命令、或いは、ロードテーブル（load  table）、或いは、その他の方法も応用でき、プログラムアドレスを伝送する目的を達成する。
【００２２】
公知技術と比較して分かるように、本発明は、直接、被制御のマイクロコントローラーコアロジック中のプログラムカウンターの内容を変更する。よって、MCUマイクロコントローラーコアロジックはフラグの設定が不要で、被制御のマイクロコントローラーコアロジックの応答を待つ必要もない。これにより、数個の、更には十数個のタイミングの反応時間が節約でき、本発明の自律制御能力を有するマルチマイクロコントローラーシステム、及び、方法は、簡単、効果的、反応速度が速いという特性を有する。
【００２３】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図面の簡単な説明】
【００２４】
【図１ａ】公知のマルチマイクロコントローラーシステムのハードウェア構造を示した説明図である。
【図１ｂ】公知のハイパースレッドマイクロコントローラーシステムのハードウェア構造を示した説明図である。
【図２】公知のマイクロコントローラーシステムの割り込み要求が生じた時の操作を示す図である。
【図３】本発明の自律制御能力を有するマルチマイクロコントローラーシステムの構造を示す図である。
【図４】本発明の第一実施例のフローチャートである。
【図５】本発明の第二実施例のフローチャートである。
【符号の説明】
【００２５】
10、11、12  マイクロコントローラー
101、111、121     プログラムメモリ
102、112、122     マイクロコントローラーコアロジック
13          データメモリ
14          周辺素子
15、16      マイクロコントローラーコアユニット
151、161    命令バッファ
152、162    マイクロコントローラーコアロジック
17          プログラムメモリ
18          データメモリ
20          マイクロコントローラーコアロジック
24          プログラムカウンター
26          スタックメモリ
30          第一マイクロコントローラーコアロジック
31          第二マイクロコントローラーコアロジック
32          第三マイクロコントローラーコアロジック
301         第一マイクロコントローラー機能ロジック
311         第二マイクロコントローラー機能ロジック
321         第三マイクロコントローラー機能ロジック
302         第一プログラムカウンタ
312         第二プログラムカウンタ
322         第三プログラムカウンタ
303         第一スタックポインタ
313         第二スタックポインタ
323         第三スタックポインタ
33          プログラムメモリ
330         システムプログラム領域
331         第一マイクロコントローラーコアロジックプログラム領域
332         第二マイクロコントローラーコアロジックプログラム領域
333         第三マイクロコントローラーコアロジックプログラム領域
334        プログラムメモリバス
34         スタックメモリ
341        第一マイクロコントローラーコアロジックスタック領域
342        第二マイクロコントローラーコアロジックスタック領域
343        第三マイクロコントローラーコアロジックスタック領域
344        スタックメモリバス
35         マイクロコントローラーイネーブルレジスタ
【図１ａ】
2007287126.tif 000003
【図１ｂ】
2007287126.tif 000004
【図２】
2007287126.tif 000005
【図３】
2007287126.tif 000006
【図４】
2007287126.tif 000007
【図５】
2007287126.tif 000008