(57)【要約】集積回路デバイスは、デジタル信号処理（ＤＳＰ）エンジンを含む第１の中央処理ユニットと、複数のコンテキストであって、各コンテキストは、複数のレジスタを伴うＣＰＵコンテキストと、ＤＳＰコンテキストとを有し、ＤＳＰコンテキストは、制御ビットと、複数のＤＳＰレジスタとを有し、集積回路デバイスのリセット後、全てのＤＳＰコンテキストの制御ビットは、ＤＳＰコンテキストの制御ビットに書き込まれたデータが、全ての他のＤＳＰコンテキストの個別の制御ビットに書き込まれるように、ともにリンクされ、他のコンテキストへのコンテキストスイッチおよび別のＤＳＰコンテキストの制御ビットの少なくとも１つの修正後のみ、別のコンテキストの制御ビットは、リンクから切り離され、ＤＳＰコンテキストの独立制御ビットを形成する、コンテキストとを有する。
2018514867.tif 000002
【特許請求の範囲】
【請求項１】
集積回路デバイスであって、
デジタル信号処理（ＤＳＰ）エンジンを含む、第１の中央処理ユニットと、
複数のコンテキストであって、各コンテキストは、複数のレジスタを備えるＣＰＵコンテキストと、ＤＳＰコンテキストとを備え、前記ＤＳＰコンテキストは、制御ビットと、複数のＤＳＰレジスタとを備え、前記集積回路デバイスのリセット後、全てのＤＳＰコンテキストの制御ビットは、前記ＤＳＰコンテキストの制御ビットに書き込まれているデータが、全ての他のＤＳＰコンテキストの個別の制御ビットに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび別のＤＳＰコンテキストの制御ビットのうちの少なくとも１つの修正後のみ、前記別のコンテキストの制御ビットは、前記リンクから切り離され、前記ＤＳＰコンテキストの独立制御ビットを形成する、コンテキストと、
を備える、集積回路デバイス。
【請求項２】
前記制御ビットは、制御レジスタの一部である、請求項１に記載の集積回路デバイス。
【請求項３】
前記制御レジスタは、ＤＳＰコンテキストの一部ではなく、リンクされない、非ＤＳＰビットを備える、請求項２に記載の集積回路デバイス。
【請求項４】
前記集積回路デバイスのリセット後、ＤＳＰコンテキストの全てのレジスタは、ＤＳＰコンテキストの１つのレジスタに書き込まれているデータが、全ての他のＤＳＰコンテキストの個別のレジスタに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび前記別のＤＳＰコンテキストの制御レジスタの修正後のみ、前記別のコンテキストのレジスタは、前記リンクから切り離され、前記ＤＳＰコンテキストの独立レジスタを形成する、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項５】
前記ＤＳＰコンテキストレジスタは、前記ＤＳＰエンジンのステータスを示す、ステータスレジスタの少なくとも所定の数のビットを備える、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項６】
前記複数のＤＳＰレジスタは、少なくとも１つのアキュムレータを備える、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項７】
前記複数のＤＳＰレジスタは、前記ＤＳＰエンジンのために使用される前記ＣＰＵコンテキストの一部ではない、少なくとも１つのワーキングレジスタを備える、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項８】
前記複数のＤＳＰレジスタは、前記ＣＰＵコンテキストの一部ではない、少なくとも１つのさらなるワーキングレジスタを備える、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項９】
前記制御ビットは、前記ＤＳＰエンジンを制御および構成するように動作可能なＤＳＰエンジン制御レジスタの一部である、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項１０】
前記ＤＳＰエンジン制御レジスタは、ループ制御ビットと、アキュムレータ制御ビットと、少なくとも１つの乗算器制御ビットとを備える、請求項９に記載の集積回路デバイス。
【請求項１１】
前記ＤＳＰエンジン制御レジスタはさらに、ＣＰＵインタラプトプライオリティ制御ビットを備える、請求項９または請求項１０に記載の集積回路デバイス。
【請求項１２】
前記ＤＳＰエンジン制御レジスタは、プログラム空間可視性制御ビットを備える、請求項９−１１のいずれか１項に記載の集積回路デバイス。
【請求項１３】
コンテキストスイッチ後の前記少なくとも１つのアキュムレータの修正は、関連付けられたＤＳＰコンテキストの切り離しをトリガしない、請求項６に記載の集積回路デバイス。
【請求項１４】
ＤＳＰコンテキストの切り離し後、前記集積回路デバイスの後続リセットは、再び、全てのＤＳＰ制御ビットをリンクさせる、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項１５】
第２の中央処理ユニットを備える、前記請求項のいずれか１項に記載の集積回路デバイス。
【請求項１６】
前記第２の中央処理ユニットは、マスタとして動作し、前記第１の中央処理ユニットは、スレーブとして動作する、請求項１５に記載の集積回路デバイス。
【請求項１７】
前記第１の中央処理ユニットは、前記集積回路デバイスの第１のマイクロコントローラユニットの処理ユニットであり、前記第２の中央処理ユニットは、前記集積回路デバイスの第２のマイクロコントローラユニットの処理ユニットである、請求項１５または請求項１６に記載の集積回路デバイス。
【請求項１８】
前記第１のマイクロコントローラユニットは、前記第２のマイクロコントローラユニットおよびランダムアクセスプログラムメモリを結合するインターフェースを通して前記第２の中央処理ユニットによってロードされるように構成される、ランダムアクセスプログラムメモリを備える、請求項１５−１７のいずれか１項に記載の集積回路デバイス。
【請求項１９】
デジタル信号処理（ＤＳＰ）エンジンを含む、第１の中央処理ユニットを備える、集積回路デバイスを動作させるための方法であって、
複数のコンテキストを提供するステップであって、各コンテキストは、ＣＰＵコンテキストと、ＤＳＰコンテキストとを備え、前記ＤＳＰコンテキストは、制御ビットと、複数のＤＳＰレジスタとを備える、ステップと、
前記集積回路デバイスをリセットするステップであって、リセットは、現在のＤＳＰ制御ビットに書き込まれているデータが、全ての他のＤＳＰコンテキストの制御ビットに書き込まれるように、全てのＤＳＰコンテキストの制御ビットをともにリンクさせる、ステップと、
別のコンテキストにスイッチングし、前記別のコンテキストのＤＳＰコンテキストの少なくとも１つの制御ビットを修正するステップであって、前記別のコンテキストの制御ビットは、前記リンクから切り離され、独立制御ビットを形成する、ステップと、
を含む、方法。
【請求項２０】
前記制御ビットは、制御レジスタの一部である、請求項１９に記載の方法。
【請求項２１】
前記制御レジスタは、ＤＳＰコンテキストの一部ではなく、リンクされない、非ＤＳＰビットを備える、請求項２０に記載の方法。
【請求項２２】
前記集積回路デバイスのリセット後、ＤＳＰコンテキストの全てのレジスタは、ＤＳＰコンテキストの１つのレジスタに書き込まれているデータが、全ての他のＤＳＰコンテキストの個別のレジスタに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび前記別のＤＳＰコンテキストの制御レジスタの修正後のみ、前記別のコンテキストのレジスタは、前記リンクから切り離され、前記ＤＳＰコンテキストの独立レジスタを形成する、請求項２０または請求項２１に記載の方法。
【請求項２３】
前記ＤＳＰコンテキストは、前記ＤＳＰエンジンのステータスを示すステータスレジスタの少なくとも所定の数のビットを備える、請求項１９−２２のいずれか１項に記載の方法。
【請求項２４】
前記ＤＳＰコンテキストは、少なくとも１つのアキュムレータを備える、請求項１９−２３のいずれか１項に記載の方法。
【請求項２５】
前記ＤＳＰコンテキストは、前記ＣＰＵコンテキストの一部ではない、前記ＤＳＰエンジンのために使用される少なくとも１つのワーキングレジスタを備える、請求項１９−２４のいずれか１項に記載の方法。
【請求項２６】
前記ＤＳＰコンテキストは、前記ＣＰＵコンテキストの一部ではない、少なくとも１つのさらなるワーキングレジスタを備える、請求項２５に記載の方法。
【請求項２７】
前記制御ビットを備える制御レジスタを用いて前記ＤＳＰエンジンを制御するステップをさらに含む、請求項１９−２６のいずれか１項に記載の方法。
【請求項２８】
コンテキストスイッチ後の前記少なくとも１つのアキュムレータの修正は、関連付けられたＤＳＰコンテキストの切り離しをトリガしない、請求項２４−２７のいずれか１項に記載の方法。
【請求項２９】
ＤＳＰコンテキストの切り離し後、前記集積回路デバイスの後続リセットは、再び、全てのＤＳＰ制御ビットをリンクさせる、請求項１９−２８のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連特許出願）
本願は、２０１５年４月３０日に出願された共有に係る米国仮特許出願第６２／１５４，９９３号に対する優先権を主張するものであり、該米国仮特許出願は、あらゆる目的のために本明細書中に援用される。
【０００２】
（技術分野）
本開示は、中央処理ユニット（ＣＰＵ）に関し、特に、ＣＰＵおよび集積デジタル信号処理エンジン（ＤＳＰ）を伴うマイクロコントローラに関する。
【背景技術】
【０００３】
（背景）
内蔵システムは、中央処理ユニット（ＣＰＵ）と、メモリと、複数の周辺デバイスとを備え、シングルチップシステムまたはシングルチップマイクロコントローラを形成する。ＣＰＵはさらに、本願の譲受人によって製造されたｄｓＰＩＣコア等のデジタル信号処理能力を有するように拡張されてもよい。例えば、図１Ａに示されるように、処理ユニットは、本願の譲受人によって製造されたｄｓＰＩＣコア等の付加的デジタル信号処理（ＤＳＰ）エンジンを伴う、ＣＰＵを備えてもよい。詳細な情報は、例えば、参照することによって本明細書に組み込まれる、Ｍｉｃｒｏｃｈｉｐ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｉｎｃ．によって２００６年に公開されたデータシートＤＳ７００４９Ｃである、参照マニュアル「ｄｓＰＩＣ３０Ｆ  Ｆａｍｉｌｙ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ」から入手可能である。
【０００４】
図から分かるように、本コアは、Ｘ  Ｄａｔａ  ＲＡＭおよび別個のＹ  Ｄａｔａ  ＲＡＭ等の典型的デジタル信号処理能力と、ＲＡＭの両方が並行してアクセスされ得るように、ＲＡＭおよびレジスタファイルと結合されるＤＳＰエンジンとを有する。本処理コアの他の典型的要素も、示される。ＤＳＰエンジン自体は、別個のコアではない。むしろ、ＤＳＰエンジンは、付加的ＤＳＰ典型的命令を用いてＣＰＵを拡張する。加えて、本従来のＤＳＰ拡張マイクロコントローラは、図１Ａの下に、システムバスを通してコアと結合されるある周辺デバイスを示す。図１Ｂは、図１Ａのブロック図のＤＳＰエンジンのより詳細なブロック図を示す。図１Ａおよび図１Ｂに示される処理コアは、デジタル信号処理能力を備える、シングル処理コアである。コアのうちの１つとしてマルチコアデバイス内で使用されることもできる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そのようなデバイスの改良されたコンテキストスイッチ能力の必要性が存在する。
【課題を解決するための手段】
【０００６】
ある実施形態によると、集積回路デバイスは、デジタル信号処理（ＤＳＰ）エンジンを含む、第１の中央処理ユニットと、複数のコンテキストであって、各コンテキストは、複数のレジスタを備えるＣＰＵコンテキストと、ＤＳＰコンテキストとを備え、ＤＳＰコンテキストは、制御ビットと、複数のＤＳＰレジスタとを備え、集積回路デバイスのリセット後、全てのＤＳＰコンテキストの制御ビットは、ＤＳＰコンテキストの制御ビットに書き込まれているデータが、全ての他のＤＳＰコンテキストの個別の制御ビットに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび別のＤＳＰコンテキストの制御ビットのうちの少なくとも１つの修正後のみ、別のコンテキストの制御ビットは、リンクから切り離され、ＤＳＰコンテキストの独立制御ビットを形成する、コンテキストとを備えてもよい。
【０００７】
さらなる実施形態によると、制御ビットは、制御レジスタの一部であることができる。さらなる実施形態によると、制御レジスタは、ＤＳＰコンテキストの一部ではなく、リンクされない、非ＤＳＰビットを備えてもよい。さらなる実施形態によると、集積回路デバイスのリセット後、ＤＳＰコンテキストの全てのレジスタは、ＤＳＰコンテキストの１つのレジスタに書き込まれているデータが、全ての他のＤＳＰコンテキストの個別のレジスタに書き込まれるように、ともにリンクされることができ、別のコンテキストへのコンテキストスイッチおよび別のＤＳＰコンテキストの制御レジスタの修正後のみ、別のコンテキストのレジスタは、リンクから切り離され、ＤＳＰコンテキストの独立レジスタを形成する。さらなる実施形態によると、ＤＳＰコンテキストレジスタは、ＤＳＰエンジンのステータスを示す、ステータスレジスタの少なくとも所定の数のビットを備えてもよい。さらなる実施形態によると、複数のＤＳＰレジスタは、少なくとも１つのアキュムレータを備えてもよい。さらなる実施形態によると、複数のＤＳＰレジスタは、ＤＳＰエンジンのために使用されるＣＰＵコンテキストの一部ではない、少なくとも１つのワーキングレジスタを備えてもよい。さらなる実施形態によると、複数のＤＳＰレジスタは、ＣＰＵコンテキストの一部ではない、少なくとも１つのさらなるワーキングレジスタを備えてもよい。さらなる実施形態によると、制御ビットは、ＤＳＰエンジンを制御および構成するように動作可能なＤＳＰエンジン制御レジスタの一部であることができる。さらなる実施形態によると、ＤＳＰエンジン制御レジスタは、ループ制御ビットと、アキュムレータ制御ビットと、少なくとも１つの乗算器制御ビットとを備えてもよい。さらなる実施形態によると、ＤＳＰエンジン制御レジスタはさらに、ＣＰＵインタラプトプライオリティ制御ビットを備えてもよい。さらなる実施形態によると、ＤＳＰエンジン制御レジスタは、プログラム空間可視性制御ビットを備えてもよい。さらなる実施形態によると、コンテキストスイッチ後の少なくとも１つのアキュムレータの修正は、関連付けられたＤＳＰコンテキストの切り離しをトリガしない。さらなる実施形態によると、ＤＳＰコンテキストの切り離し後、集積回路デバイスの後続リセットは、再び、全てのＤＳＰ制御ビットをリンクさせてもよい。さらなる実施形態によると、集積回路デバイスはさらに、第２の中央処理ユニットを備えてもよい。さらなる実施形態によると、第２の中央処理ユニットは、マスタとして動作し、第１の中央処理ユニットは、スレーブとして動作する。さらなる実施形態によると、第１の中央処理ユニットは、集積回路デバイスの第１のマイクロコントローラユニットの処理ユニットであって、第２の中央処理ユニットは、集積回路デバイスの第２のマイクロコントローラユニットの処理ユニットである。さらなる実施形態によると、第１のマイクロコントローラユニットは、第２のマイクロコントローラユニットおよびランダムアクセスプログラムメモリを結合するインターフェースを通して第２の中央処理ユニットによってロードされるように構成される、ランダムアクセスプログラムメモリを備える。
【０００８】
別の実施形態によると、デジタル信号処理（ＤＳＰ）エンジンを含む、第１の中央処理ユニットを備える、集積回路デバイスを動作させるための方法は、複数のコンテキストを提供するステップであって、各コンテキストは、ＣＰＵコンテキストと、ＤＳＰコンテキストとを備え、ＤＳＰコンテキストは、制御ビットと、複数のＤＳＰレジスタとを備える、ステップと、集積回路デバイスをリセットするステップであって、リセットは、現在のＤＳＰ制御ビットに書き込まれているデータが、全ての他のＤＳＰコンテキストの制御ビットに書き込まれるように、全てのＤＳＰコンテキストの制御ビットをともにリンクさせる、ステップと、別のコンテキストにスイッチングし、別のコンテキストのＤＳＰコンテキストの少なくとも１つの制御ビットを修正するステップであって、別のコンテキストの制御ビットは、リンクから切り離され、独立制御ビットを形成する、ステップとを含んでもよい。
【０００９】
本方法のさらなる実施形態によると、制御ビットは、制御レジスタの一部であることができる。本方法のさらなる実施形態によると、制御レジスタは、ＤＳＰコンテキストの一部ではなく、リンクされない、非ＤＳＰビットを備えてもよい。本方法のさらなる実施形態によると、集積回路デバイスのリセット後、ＤＳＰコンテキストの全てのレジスタは、ＤＳＰコンテキストの１つのレジスタに書き込まれているデータが、全ての他のＤＳＰコンテキストの個別のレジスタに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび別のＤＳＰコンテキストの制御レジスタの修正後のみ、別のコンテキストのレジスタは、リンクから切り離され、ＤＳＰコンテキストの独立レジスタを形成する。本方法のさらなる実施形態によると、ＤＳＰコンテキストは、ＤＳＰエンジンのステータスを示す、ステータスレジスタの少なくとも所定の数のビットを備えてもよい。本方法のさらなる実施形態によると、ＤＳＰコンテキストは、少なくとも１つのアキュムレータを備える。本方法のさらなる実施形態によると、ＤＳＰコンテキストは、ＣＰＵコンテキストの一部ではない、ＤＳＰエンジンのために使用される少なくとも１つのワーキングレジスタを備えてもよい。本方法のさらなる実施形態によると、ＤＳＰコンテキストは、ＣＰＵコンテキストの一部ではない、少なくとも１つのさらなるワーキングレジスタを備えてもよい。本方法のさらなる実施形態によると、本方法はさらに、該制御ビットを備える制御レジスタを用いてＤＳＰエンジンを制御するステップを含んでもよい。本方法のさらなる実施形態によると、コンテキストスイッチ後の少なくとも１つのアキュムレータの修正は、関連付けられたＤＳＰコンテキストの切り離しをトリガしない。本方法のさらなる実施形態によると、ＤＳＰコンテキストの切り離し後、集積回路デバイスの後続リセットは、再び、全てのＤＳＰ制御ビットをリンクさせる。
【図面の簡単な説明】
【００１０】
【図１Ａ−１】図１Ａは、従来のＤＳＰ拡張マイクロコントローラのブロック図を示す。
【図１Ａ−２】図１Ａは、従来のＤＳＰ拡張マイクロコントローラのブロック図を示す。
【図１Ｂ】図１Ｂは、ＤＳＰエンジンの詳細を示す。
【図２Ａ】図２は、種々の実施形態による、プログラマモデルを示す。
【図２Ｂ】図２は、種々の実施形態による、プログラマモデルを示す。
【図３Ａ】図３は、種々の実施形態による、コア制御レジスタを示す。
【図３Ｂ】図３は、種々の実施形態による、コア制御レジスタを示す。
【図４】図４は、複数のＤＳＰコンテキストの第１の例示的構成を示す。
【図５】図５は、複数のＤＳＰコンテキストの第２の例示的構成を示す。
【図６】図６は、種々の実施形態による、デュアルコアマイクロコントローラを示す。
【発明を実施するための形態】
【００１１】
ｄｓＰＩＣ３３ファミリ等のＤＳＰ能力を伴う従来のマイクロコントローラは、全てのＤＳＰ動作が１つのみのコンテキスト内で行われるであろうと仮定して、ＣＰＵ  Ｗ−レジスタに限定される、ＣＰＵコンテキストスイッチングを提供する。デバイスの性能増加に伴って、システムの複雑性が増すにつれて、全てのＤＳＰコンテキストのためのＤＳＰエンジン構成が常時一貫していない場合がある、マルチＤＳＰコンテキスト内でＤＳＰアプリケーションコードをサポートする必要がある。ＤＳＰエンジン構成が一貫していると仮定されるであろう、１つを上回るコンテキスト内でＤＳＰコードを実行するために、ｄｓＰＩＣデバイス内に組み込まれたＤＳＰエンジン等の処理デバイス内の別個のＤＳＰエンジンの必要がある。バックワードコード互換性を維持するために、同一使用モデルにデフォルトの高度な手段が、要求される。
【００１２】
種々の実施形態によると、シングルまたはマルチコア、特に、デュアルコア、マイクロコントローラのための各コンテキスト内の独立ＤＳＰエンジン構成を用いて、ＤＳＰコンテキストスイッチングを追加する方法およびデバイスが、バックワードコード互換性を損なわずに、提供されることができる。
【００１３】
種々の実施形態によると、ＤＳＰコンテキストが、既存のコンテキストスイッチング機構に追加され、独立ＤＳＰコンテキスト構成のためのサポートが、提供される。加えて、１つを上回るコンテキストにおいてすでにＤＳＰコードを実行している、既存のアプリケーションコードとのバックワード互換性が、維持されることができる（同一ＤＳＰエンジン構成を使用して）。
【００１４】
ある実施形態によると、インタラプトベースの透過性ハードウェアコンテキストスイッチングが、提供される。本アーキテクチャは、ＤＳＰコンテキストとの従来のＣＰＵコンテキストスイッチを拡大する。したがって、ＤＳＰコンテキストは、基本的に、ＣＰＵコンテキストに追加される。いくつかの実施形態によると、コンテキストスイッチングは、例外処理の間、バックグラウンドで生じる（すなわち、ゼロオーバーヘッドを伴う）。言い換えると、ＣＰＵは、コンテキストを保存するために、任意の付加的命令を実行する必要がない。これは、並列ＤＳＰプロセスを用いて、アプリケーションにおけるコンテキストスイッチング時間を大幅に短縮させ得る。ＤＳＰエンジン構成は、したがって、各コンテキストにおいて異なり得る。
【００１５】
図２は、レジスタファイル２１０およびＤＳＰエンジンのアキュムレータ２２０のワーキングレジスタならびに図１Ａに示されるようなＤＳＰコアにおいて使用されるような他の典型的ＤＳＰレジスタ等のコアのレジスタを示す。例えば、図２は、データテーブルページアドレスレジスタ２３０と、Ｘデータ空間読取ページアドレスレジスタ２３２と、Ｘデータ空間書込ページアドレスレジスタ２３４と、Ｙページアドレスレジスタ２３６と、反復ループカウンタレジスタ２３８と、Ｄｏループレジスタ２４０と、ステータスレジスタ２５０とを示す。加えて、図２は、種々の実施形態による拡張を示す。
【００１６】
ｄｓＰＩＣコアにおいて実装されるもの等のＤＳＰエンジンを伴う従来の処理コアは、レジスタＷ０からＷ３と、図２に示されないスタック上での例外処理の間にスタックされる、図２ではＳＲＬとして示される、ステータスレジスタ２５０の下位部分２５２（ＬＳバイト）とを含む、ＣＰＵコンテキストを備える。レジスタＷ０からＷ３に関して、複数の付加的シャドウレジスタ２１２が、コンテキスト毎に提供されてもよい。
【００１７】
改良されたＣＰＵ／ＤＳＰコンテキストは、従来のＣＰＵコンテキスト（シャドウレジスタ２１２）に加え、ＤＳＰコンテキストを含む。したがって、組み合わせられたＣＰＵ／ＤＳＰコンテキストは、例えば、付加的コンテキストレジスタファイル２１４が提供される、レジスタＷ０からＷ１４と、付加的コンテキストアキュムレータ２２２が提供される、アキュムレータＡｃｃＡ、ＡｃｃＢ２２０と、付加的コンテキストレジスタ２５６が提供される、ビットＯＡ、ＯＢ、ＳＡ、ＳＢ、ＯＡＢ、およびＳＡＢを伴う上位部分２５４を含む、ステータスレジスタＳＲの上位部分２５４（ＭＳバイト、ＤＳＰステータス）とを含み得る。ステータスレジスタ２５０（ＬＳバイト）の下位バイト２５２は、再び、例外処理の間、スタックされる。さらに、ＤＳＰコンテキストは、例えば、図３に示されるように、少なくともそのフラグＵＳ、ＳＡＴＡ、ＳＡＴＢ、ＳＡＴＤＷ、ＡＣＣＳＡＴ、ＲＮＤ、ＩＦを含む、ＤＳＰ制御レジスタＣＯＲＣＯＮ２６０を含んでもよい。制御レジスタ２６０はさらに、図３に示されるように構成され、早期ループ終了制御ビットＥＤＴと、ＤＯループネスティングレベルステータスビットと、インタラプトプライオリティレベルステータスビットと、データ空間内のプログラム空間可視性イネーブルビットＰＳＶとを備えてもよい。ＵＳビットは、ＤＳＰエンジンが、符号ありまたは符号なしモードで乗算するかどうかを制御するために使用される。ＥＤＴビットは、現在のループ反復の終了時の早期終了を制御する。ＤＬビットは、ループネスティングレベルステータスを制御する。ＳＡＴＡ、ＳＡＴＢ、およびＳＡＴＤＷは、それぞれ、アキュムレータおよびデータ空間レジスタの飽和関数を制御する。ＡＣＣＳＡＴビットは、アキュムレータの飽和モードを制御する。ＩＰＬ３ビットは、ＣＰＵインタラプトプライオリティレベルを選択する。ＰＳＶビットは、プログラム空間がデータ空間内で可視であるかどうかを制御する。ＲＮＤビットは、丸めモードを制御し、ＩＦビットは、乗算モードを制御する。
【００１８】
図２および３に示される特定の実施形態は、４つの付加的コンテキストＣＴＸＴ０．．ＣＴＸＴ４を提供し得る。他のＤＳＰ設計は、個別の設計、特に、より多いまたはより少ないスタックされたレジスタに応じて、異なるＤＳＰコンテキストを提供してもよい。同様に、異なるＣＰＵタイプは、ＣＰＵおよび／またはＤＳＰコンテキストのための異なるレジスタを含んでもよい。
【００１９】
リセット終了後、バックグラウンドＤＳＰ制御レジスタ、図２および３に示される実施例では、ＣＯＲＣＯＮ（ＤＳＰ制御専用）レジスタへの全ての書込は、全てのＤＳＰコンテキスト内で複製されるであろう。本シナリオは、図４に示される。ＤＳＰコンテキストは全て、リンクされ、現在のＤＳＰコンテキスト０への書込は、全ての他のＤＳＰコンテキストＤＳＰコンテキスト１．．４内で置換されるであろう。したがって、最初に、リセット後、コアは、ＤＳＰエンジンのための別個のコンテキストを提供しない、以前のコアとまさに同じように挙動する。
【００２０】
ある実施形態によると、５つの異なるコンテキストＣＴＸＴ０．．４が利用可能となるであろうと仮定される。各コンテキストは、シャドウ化されたレジスタを伴うＣＰＵコンテキストと、ＤＳＰコンテキストとを備える。しかしながら、前述のように、ＤＳＰのための付加的コンテキストは、ＤＳＰコンテキストのコンテンツがある程度リンクされており、したがって、全てのＤＳＰコンテキストが、制御ビット内に記憶されるものと同一の必須情報を備えるため、リセット後、まだ完全に可視ではない。したがって、５つのセットのアクティブおよびシャドウレジスタならびにスタックが利用可能であるが、ＣＰＵのための５つのアクティブおよびシャドウレジスタのみが、真に独立している。言い換えると、２１２のためのシャドウレジスタのみが、リンクされていない。一実施形態によると、ＤＳＰエンジンのあるレジスタは、独立しているが、ＤＳＰ制御レジスタのその関連付けられた制御ビットは、そうではない。最初に、リセット後、図４に示されるように、同様に５つのＤＳＰコンテキストが存在するが、これらの５つのＤＳＰコンテキストの少なくとも制御ビットは、最初に、リンクされ、点線に示されるように、個々に変更可能ではない。したがって、一実施形態によると、図３に示されるように、制御レジスタＣＯＲＣＯＮのＤＳＰ関連ビットは、全てのコンテキストに対して同じである。コンテキストスイッチが生じない限り、ＤＳＰコンテキスト内のこれらの制御ビットの任意の変更は、自動的に、全ての他のＤＳＰコンテキストに転送されるであろう。別の実施形態によると、本リンク付け機能性は、ＤＳＰコンテキストの全てのレジスタおよび制御ビットに拡張される。
【００２１】
ある実施形態によると、前述のように、コンテキストリンク付けは、ＣＯＲＣＯＮレジスタのＤＳＰ部分にのみ適用され得る。任意の他のＤＳＰコンテキストレジスタへの変更は、他のコンテキストを通して複製され得ず、それらのレジスタに関するそれらのＤＳＰコンテキストは、リンクされない。しかしながら、他の実施形態によると、本原理は、ＤＳＰコンテキスト全体に適用される。これは、一実施形態によると、全てのコンテキストを、または別の実施形態によると、全ての制御ビットを結合する、リンク４１０によって図４に示される。ある実施形態によると、同じことは、アキュムレータ２２０が、種々の実施形態に従って任意のＤＳＰコンテキスト内で改変される場合のみ当てはまり得る。したがって、そのような実施形態では、リセット後、アキュムレータ２２０への任意の変更は、自動的に、他のコンテキストのために、アキュムレータ２２２内でも行われるであろう。前述のようなリンク付け機能は、大部分の実装の全ての機能性がこれらのビットの初期化を要求するであろうため、ＤＳＰエンジンの制御ビットとのみ使用されてもよい。しかしながら、他の実施形態によると、本リンク付け機能は、ＤＳＰコンテキストのより多くまたは全てのレジスタに拡張されることができる。
【００２２】
バックグラウンドコンテキスト（コンテキスト０）からのコンテキストスイッチが開始され、ＤＳＰ制御レジスタＣＯＲＣＯＮ２６０の修正が生じた後、個別のＤＳＰコンテキストは、リンク４１０から取り出されるであろう。例えば、図５に示されるように、コンテキスト０からコンテキスト１へのスイッチおよびＤＳＰ制御レジスタ２６０の修正は、ＤＳＰコンテキスト１をリンク４１０から取り出させ、ここで、個々に、別個のアクセス４２０を通して改変され得る。制御ビットのみをリンクする実施形態では、同一効果は、ＤＳＰコンテキストの残りのレジスタがすでに別個であるため、これらの制御ビットをリンクから取り出すことによって遂行される。
【００２３】
したがって、ＤＳＰコンテキストの分離は、バックグラウンドコンテキストＣＴＸ０からのコンテキストスイッチが生じ、ＤＳＰ制御レジスタＣＯＲＣＯＮ２６０が修正されることを要求する。他の実施形態によると、ＤＳＰコンテキストを分離させるための別のトリガが、使用されてもよい。次いで、新しいコンテキストのＤＳＰコンテキストは、リンク４１０から取り出されるであろう。図５に示される実施例では、ＤＳＰコンテキスト１は、その現在の条件においてリンクから取り出され、ローカルＣＯＲＣＯＮ  ＤＳＰ制御ビット（図５におけるＤＳＰコンテキスト１）は、適宜、更新されるであろう。バックグラウンドＣＯＲＣＯＮ（ＤＳＰコンテキスト０）への後続書込は、ＤＳＰコンテキスト１のためのローカルＣＯＲＣＯＮ  ＤＳＰ制御ビットにもはや影響を及ぼさないであろうが、依然として、図５に示されるように、リンク４１０を通して依然としてリンクされる、全ての他のコンテキストを更新する。これは、次のデバイスリセットが生じるまで、各ＤＳＰコンテキストに適用されるであろう。したがって、ＤＳＰコンテキストは、リンクされたステータスに留まり、バックグラウンドコンテキスト０に結び付けられ得るか、または、そのリンクは、バックグラウンドコンテキストからのスイッチング後、いったんコンテキストの少なくとも１つのＤＳＰ制御ビットが改変されると、自動的に切り離されてもよい。別のコンテキストへの任意のスイッチは、同一条件下で個別のＤＳＰコンテキストの分離を生じさせることができる。前述のように、アキュムレータ内の変更は、切り離しをトリガし得ず、ＤＳＰ制御レジスタ２６０内のＤＳＰエンジンの一般的制御の変更のみ、リンク４１０からの分離をトリガするであろう。
【００２４】
ｄｓＰＩＣ３３コア等の既存のＤＳＰエンジンコードでは、ＤＳＰエンジン構成は、バックグラウンドコンテキスト内で確立されるであろう（典型的には、初期化の間）と仮定される。コンテキストスイッチが生じない限り、任意の構成または再構成は、自動的に、全ての他のＤＳＰコンテキストに影響を及ぼすであろう。したがって、種々の実施形態による改良されたコア設計は、従来のコア設計と完全にバックワード互換性があり得る。種々の実施形態は、ユーザが、別のＣＰＵコンテキスト内からＤＳＰエンジンを構成することを待機し、ＤＳＰコード実行のために他で有効となるであろうと仮定する場合のみ、バックワード互換性を提供しなくてもよい。しかしながら、バックワード互換性目的のために、本シナリオは、非常に稀であって、したがって、容認可能であろう。
【００２５】
ＤＳＰ能力を伴う改良された処理コアはさらに、デュアルまたはマルチコアデバイス内に実装されてもよい。デュアルコアデバイスは、図６に示されるように設計され、マスタ処理デバイスと、スレーブ処理デバイスとを備えてもよい。処理デバイスは両方とも、図１−３に従って設計されてもよく、それぞれ、図６に示されるように、関連付けられた周辺デバイスを備えてもよく、それによって、各デバイスは、別個のマイクロコントローラを集積回路デバイス内に形成してもよい。通信リンクモジュール６３０が、異なる処理コアの制御を可能にするために提供されてもよい。図６に示されるように、デュアルまたはマルチコア処理デバイス６００は、マスタ中央処理ユニット（ＣＰＵ）６１２と、それぞれがスレーブ中央処理ユニット６２２を有する、１つまたはスレーブユニット６２０とを伴う、マスタマイクロコントローラ６１０を有するように設計されることができ、各スレーブ中央処理ユニット６２２のコア設計は、概して、マスタＣＰＵ６１２のコア設計と同じまたは類似し、特に、前述のように、ＤＳＰ拡張コアを伴って設計されてもよい。しかしながら、他の実施形態によると、スレーブＣＰＵ６２２は、マスタＣＰＵ６１２と異なってもよく、スレーブＣＰＵ６２２のみ、前述のＤＳＰ能力を有してもよい。マスタマイクロコントローラは、図６に示されるように、その独自のセットの周辺デバイスを有する。スレーブユニット６２０は、その独自のセットの周辺デバイスを有し、したがって、それ自体でマイクロコントローラを形成してもよく、またはそうではなくてもよい。したがって、各マスタおよびスレーブデバイスは、より多いまたはより少ない完全に独立した処理デバイスを形成し、専用バスまたは通信インターフェース６３０と通信してもよい。図６は、マスタマイクロコントローラ６１０と、単一スレーブマイクロコントローラ６２０とを伴う、そのような設計を示す。通信インターフェース６３０は、２つのコア６１０、６２０間の通信を可能にするように提供される。各プロセッサ６１２、６２２は、示されるように、Ｈａｒｖａｒｄアーキテクチャ内に設計されてもよい。しかしながら、種々の実施形態による原理は、ｖｏｎ  Ｎｅｕｍａｎｎアーキテクチャにも容易に変換され得る。マスタユニットは、例えば、プログラムメモリとして使用されるフラッシュメモリ６１６およびデータメモリとして使用されるランダムアクセスメモリ６１４を備え、それぞれ、マスタコア６１２と結合される。
【００２６】
図６に示されるように、スレーブユニット６２０は、フラッシュメモリを伴わずに設計されることができる。代わりに、専用プログラムランダムアクセスメモリ６２６が、提供される。本メモリが揮発性であるという事実に起因して、種々の実施形態によると、マスタ６１０を通してロードされるであろう。本設計選択肢は、フラッシュ技術によって提供されるボトルネックが回避されるという利点を有する。フラッシュメモリは、概して、ＲＡＭより低速である。故に、読取遅延がなく、スレーブは、より速い実行速度で動作されることができ、これは、例えば、ＳＭＰＳアプリケーション等のある高速アプリケーションにとって非常に有益であり得る。前述のように、１つを上回るスレーブユニット６２０が、種々の実施形態によると、実装されてもよい。両コアが同じである場合、マスタコア６１２は、スレーブユニット６２２内に実装されないか、またはスレーブユニット内では機能しないかのいずれかであり得る、付加的命令を含むように設計されることができる。これらの付加的命令は、フラッシュメモリ６１６または外部ソースからスレーブデバイス６２０のＰＲＡＭ６２６の中へのデータの転送を可能にする。例えば、ある実施形態によると、複数のコアは、単一チップデバイス内に実装されてもよく、各コアは、割り当てられた構成レジスタを有してもよく、そのようなレジスタのビットのうちの１つは、個別のユニットがマスタであるかまたはスレーブであるかを定義してもよい。論理は、コアのうちの１つのみがマスタとして設定されることを可能にするように存在してもよい。いったん本ビットが設定されると、付加的命令は、実行されることが可能にされ得る。他のユニット（スレーブ）では、これらの命令は、実行され得ない、例えば、それらは、不正オペコードとして解釈され得る。
【００２７】
マスタユニット６１０によってＰＲＡＭ６２６にアクセスするための制御論理は、図６に示されるように、バッファ／コンパレータユニット６１８とともに、マスタユニット内に位置することができる。代替として、類似ユニットは、スレーブユニット６２０内に配列されてもよい。いずれかのユニットが、マスタユニット６１０またはスレーブユニット６２０のいずれかに排他的にＰＲＡＭのアクセスを付与するように設計される。他の実施形態は、論理のある部分をマスタコア内に、他の部分をスレーブコア内に設置する、または論理を両ユニットの外側に配列してもよい。同様に、通信インターフェース６３０は、いずれかのユニットの内側または完全に両ユニットの外側にあってもよい。ＰＲＡＭアクセスユニット６１８のための付加的制御が、通信インターフェース６３０によって提供されてもよい。実施形態は、デュアルコア実装に限定されない。当業者は、他の実装も可能性として考えられることを認識するであろう。      
【図１Ａ−１】
2018514867.tif 000003
【図１Ａ−２】
2018514867.tif 000004
【図１Ｂ】
2018514867.tif 000005
【図２Ａ】
2018514867.tif 000006
【図２Ｂ】
2018514867.tif 000007
【図３Ａ】
2018514867.tif 000008
【図３Ｂ】
2018514867.tif 000009
【図４】
2018514867.tif 000010
【図５】
2018514867.tif 000011
【図６】
2018514867.tif 000012
【国際調査報告】
2018514867.tif 000013
2018514867.tif 000014