(57)【要約】【課題】本発明は複数の利用可能なハードウェア資源手段と、前記利用可能なハードウェア資源手段にアクセスする第１命令セット手段とを備えることにより、前記利用可能なハードウェア資源手段の少なくとも一部が前記第１命令セット手段の制御により動作を実行するディジタル信号処理装置であって、第２命令セット手段が前記複数の利用可能なハードウェア資源手段の所定の限定されたサブセットだけにアクセスすることにより、前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が前記第２命令セット手段の制御により動作を実行することを特徴とする、ディジタル信号処理装置に関する。本発明はさらに複数の利用可能なハードウェア資源手段を備え、前記ハードウェア資源手段の少なくとも一部が第１命令セットの制御により動作を実行するディジタル信号処理装置においてディジタル信号を処理する方法であって、複数の使用可能な前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が、前記ハードウェア資源手段の前記所定の限定されたサブセットだけにアクセスする、第２命令セットの制御により動作を実行することを特徴とする方法に関する。
2004512599.tif 000002
【特許請求の範囲】
【請求項１】
複数の利用可能なハードウェア資源手段と、前記利用可能なハードウェア資源手段にアクセスする第１命令セット手段とを備えることにより、前記利用可能なハードウェア資源手段の少なくとも一部が前記第１命令セット手段の制御により動作を実行するディジタル信号処理装置であって、
第２命令セット手段が前記複数の利用可能なハードウェア資源手段の所定の限定されたサブセットだけにアクセスすることにより、前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が前記第２命令セット手段の制御により動作を実行することを特徴とする、ディジタル信号処理装置。
【請求項２】
前記利用可能なハードウェア資源手段がプロセッサ資源手段であることを特徴とする、請求項１に記載の装置。
【請求項３】
割込み発生時に、ハードウェア資源手段の現在の状態を格納する第１状態バッファ手段を備え、
割込み発生時に、前記第１状態バッファ手段が、前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれないハードウェア資源手段の少なくとも一部の現在の状態を格納することを特徴とする、請求項１または２に記載の装置。
【請求項４】
第２状態バッファ手段が、割込み発生時に、前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部の現在の状態を格納し、さらに前記第２状態バッファ手段が、前記第１状態バッファ手段に比べて小さいサイズを有することを特徴とする、請求項３に記載の装置。
【請求項５】
前記第２状態バッファ手段にパワーを供給する手段を備え、
前記パワー供給手段が基本的に、割込み処理中だけ前記第２状態バッファ手段にパワーを供給することを特徴とする、請求項４に記載の装置。
【請求項６】
直接アクセスできないハードウェア資源手段と、前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれないハードウェア資源手段との少なくとも一部が、第１スキャン・チェーン手段に一緒にチェーン結合され、直接アクセスできないハードウェア資源手段と、前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれないハードウェア資源手段との少なくとも一部が、第２スキャン・チェーン手段に一緒にチェーン結合されていることを特徴とする、請求項４または５に記載の装置。
【請求項７】
前記第２命令セット手段が並列動作を実行できないことを特徴とする、請求項１から６の少なくともいずれか一項に記載の装置。
【請求項８】
複数の利用可能なハードウェア資源手段を備え、前記ハードウェア資源手段の少なくとも一部が第１命令セットの制御により動作を実行するディジタル信号処理装置においてディジタル信号を処理する方法であって、
複数の使用可能な前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が、前記ハードウェア資源手段の前記所定の限定されたサブセットだけにアクセスする、第２命令セットの制御により動作を実行することを特徴とする、方法。
【請求項９】
割込み発生時に、ハードウェア資源手段の現在の状態が第１状態バッファ手段に格納され、
割込み発生時に、前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれないハードウェア資源手段の少なくとも一部の現在の状態が第１状態バッファ手段に格納されることを特徴とする、請求項８に記載の方法。
【請求項１０】
割込み発生時に、前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部の現在の状態が、前記第１状態バッファ手段に比べて小さいサイズを有する、第２状態バッファ手段に格納されることを特徴とする、請求項９に記載の方法。
【請求項１１】
パワーが基本的に、割込み処理中だけ前記第２状態バッファ手段に供給されることを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記第２命令セットが並列動作を実行できないことを特徴とする、請求項８から１１の少なくともいずれ一項かに記載の方法。
【発明の詳細な説明】
【０００１】
本発明は、複数の利用可能なハードウェア資源手段と、前記利用可能なハードウェア資源手段にアクセスする第１命令セット手段とを備えることにより、前記利用可能なハードウェア資源手段の少なくとも一部が第１命令セット手段の制御による動作を実行するディジタル信号処理装置、ならびに、そのようなディジタル信号処理装置におけるディジタル信号を処理する方法に関するものである。
【０００２】
外部イベントに高速で応答するために、ディジタル信号プロセッサ（ＤＳＰ）は割込みを利用する。ディジタル信号プロセッサで必要なリアルタイム性能に対し、短い予測割込み待ち時間が基本的に重要である。これを達成するために、理論的にプロセッサは常に割込み可能でなければならない。割込みは外部イベントであり、割込みにより、一時的にプログラム実行を中断して、割込みサービス・ルーチン（ＩＳＲ）として実行される優先度の高いタスクを実行し、その後にオリジナル・プログラムを続行できる。
【０００３】
割込みによりプロセッサは現在のプログラムトレースのそれ以上の実行を一時的に延期し、それに代わり別のプログラムを実行する。延期トレイの状態を保存して、割込みが実行されたとき、プロセッサがオリジナル状態を復元でき、かつオリジナルトレースを正しく続行できるようにする必要がある。保存する必要がある状態の量、したがって状態を保存する必要があるプロセッサ・サイクル数は、プロセッサを中断させるプログラム中のポイントに依存する。
【０００４】
状況（ｃｏｎｔｅｘｔ）保存の影響を限定するために、多くの市販の利用可能なディジタル信号プロセッサの限定条件が、プロセッサの割込み機能に対し課される。
【０００５】
Ｐｈｉｌｉｐｓ社により開発されたＶＬＩＷ（大規模命令語）メディア・プロセッサである「ＴｒｉＭｅｄｉａ」プロセッサでは、割込みにおいて保存する必要がある状態の量を最小化するために、そのようなプロセッサだけがプログラムの流れ内の特定ポイントで割込みを実行する。これらのポイントだけが判断ツリー間で発生し、そこでは広域変数だけが有効になる。アーキテクチャはいわゆる割込みジャンプを通してこれらのポイントを認識する。不利な点は、良好な並列コードを得るために、例えばｉｆ−変換・接合（ｇｒａｆｆｉｎｇ）・推測（ｓｐｅｃｕｌａｔｉｏｎ）を通して、コンパイル・プロセスが可能な限り大きい基本ブロックを作成するために、コンパイル・プロセスが良好な割込み待ち時間を妨害することである。良好な割込み待ち時間を得るために、割込みジャンプが頻繁に発生し、それによりコンパイラ目標と衝突する。結果的に、「ＴｒｉＭｅｄｉａ」プロセッサ割込み待ち時間は、コンパイラがコード内の正規のポイントで割込みジャンプを備えるように明確に強化されない限り、コード依存性が高くなり、予測可能性が低下し、通常は時間が長くなる。
【０００６】
Ｔｅｘａｓ　Ｉｎｓｔｒｕｍｅｎｔｓ社の「ＶｅｌｏｃｉＴｉ」アーキテクチャは、ブランチの間またはブランチのシャドウ（ｓｈａｄｏｗ）内では割込みを許可しない。不利な点は、このアーキテクチャは５サイクルの相対的に長いブランチ遅れを有することである。さらに、このアーキテクチャによりブランチをブランチ遅れスロット内でスケジュール設定でき、それにより全体ブランチ・シャドウを効果的に拡張する。大部分のアルゴリズムでは、多数のブランチが発生するため、割込みはほとんど発生しない。
【０００７】
第１世代の「Ｒ．Ｅ．Ａ．Ｌ．」コア・プロセッサは、「繰り返し」命令を使用する単一命令ループが実行されている時を除いて、常に割込み可能である。十分短い割込み待ち時間を保証するために、必要に応じて、大きい繰返しループを複数の小さい繰返しループに分割することにより、ループ繰返し数を十分小さく保つ必要がある。繰返し命令の割込み不可能性のために、このような命令は第２世代の「Ｒ．Ｅ．Ａ．Ｌ．」コア・プロセッサではサポートされない。
【０００８】
米国特許５，９８７，６０１Ａは、コンピュータ・アーキテクチャの割込み待ち時間およびタスク切換え処理オーバヘッド遅れを減少または除去する、特有のハードウェアのゼロ・オーバヘッド割込みおよびタスク・チェンジ・システムを記載している。時間損失なしに、この従来のシステムは、ソフトウェアの介在なしに、１つのサイクルと次のサイクル間の完全なタスク状態保存および復元を実行する。各中央処理ユニットのレジスタに対し、このシステムは１つまたは複数の予備ラッチを使用し、この場合、１つのラッチを「実行」ラッチおよび予備ラッチの１つをタスク格納メモリに取り付ける。このシステムは、別のタスクをタスク格納メモリとの間で転送すると同時に、代替「実行」レジスタおよび予備レジスタ間でコネクションを交換する。さらにこのシステムはタスク・リンク・システムを提供して、タスクのリンクまたはリンクされたタスクの必須の連続的実行を可能にする。最後に、このシステムは優先度「待機（ｉｍｐａｔｉｅｎｃｅ）」カウンタ・システムを備えて、タスクがそれらのタスクのデッドラインに近付くに伴ない、種々のタスクの相対的優先度を増加する。
【０００９】
米国特許５，８６０，０１４Ａは、命令を処理するために、レジスタを使用するプロセッサのレジスタの内容を維持する方法と装置とを開示している。入力はバッファに格納されて、割込み可能命令による割込みに応答してレジスタ内容を復元する。入力は復元するのに選択される入力数を低減するための情報を含む。バッファ入力のセットは、割込みおよび情報に応答して選択されて、レジスタ内容を復元する。このセットには、割込みの応答して内容を復元するのに必要な入力だけを含むため、複数入力が最初の１つのレジスタに対し格納される場合および複数入力が２番目の一つのレジスタに対し格納される場合であっても、プロセッサのレジスタ内容は単一プロセッサ・サイクルで再現できる。
【００１０】
米国特許５，１１５，５０６Ａでは、通常動作において使用する副レジスタと、割込みに使用する主レジスタと、割込みに使用する標準レジスタ・セットと、通常動作および従来の割込み動作において使用する標準レジスタ・セットと、高速割込み動作に使用する代替レジスタ・セットと、メモリ・スタックとを含むマイクロプロセッサをさらに開示している。３つのステータス・ビットを使用して、１つまたは複数の高速割込みが起動されたが完了していないことと、１つの高速割込みが発生したが他の高速割込みは処理されないことと、ＣＰＵが現在１つの高速割込みを処理中であることとを表わす。これらのステータス・ビットは反復危険が存在するかどうかを表わし、またそれらを使用して標準および代替レジスタ・セットと、メモリ・スタックとの間の情報の流れを制御して、反復を防止する。
【００１１】
米国特許５，００３，４６２Ａでは、複数の機能ユニットを持つパイプライン・プロセッサにおいて、詳細な割込みレポートのシステム・アーキテクチャ要件を実現する装置と方法とを開示している。割込みパイプラインの費用は、割込みが頻繁に発生する―特に、それらが仮想メモリ管理から発生する―場合だけ是認されるため、装置は、頻繁に発生する割込みに対し割込みパイプラインを利用し、残りの割込みの詳細なレポートに対しては、低速ではあるが費用のかからないソフトウェア・ベースのシステムを利用する。ソフトウェア・ベースのシステムは命令番号付けおよび追跡手法により支援され、その結果、実行命令に関連する適切な情報は、プロセッサのパイプラインを通過する命令パスおよび場合によっては別の機能ユニットに対する情報としてレポートされる。ソフトウェア割込みハンドラはこの情報を使用して、割込みを分離し、詳細にレポートできる。
【００１２】
予測可能および短い割込み待ち時間を得るためには、必要な時は、プロセッサに割込みできることが常に可能である。プログラム中の任意のポイントでプロセッサに割込むことは、十分な量の状態が保存されている必要があることを意味する。状態の一部分だけが、レジスタ・ファイル中の変数として有効であり、またプログラマがそれを利用して、標準的読込み／記憶動作を介して保存または復元できる。状態の残りは、プログラマには見えない通常動作状態にあり、例えば機能ユニットのパイプライン・ステージ内に隠されている。この状態にアクセスして保存および復元を実現するには、ハードウェアの特殊な手段が必要である。
【００１３】
効率的なコードを得るため、高性能なＶＬＩＷコンパイラはいわゆる「ＮＵＡＬ−ＥＱ（Ｎｏｎ−Ｕｎｉｔ−Ａｓｓｕｍｅｄ−Ｌａｔｅｎｃｙ　ｗｉｔｈ　Ｅｑｕａｌ）」意味論に基づいて操作をスケジュール設定される。これにより、ハードウェアに特別な注意を必要とせずに割込みにより任意の位置を切断できない、誤ったプロセッサ動作を防止できるスケジュールの準備ができる。スケジュールを切断する問題を扱う最も直接的は方法は、シャドウ・バッファを使用して状態を保存することである。シャドウ・バッファの実現は、プロセッサのすべての状態レジスタを複写することを意味する。シャドウ・バッファを使用して、割込み処理におけるプロセッサ状態のコピーを取り、このコピーを維持して、それを、割込み処理が完了しかつ保存されたコピーが状態レジスタに復元するか、または割込みが優先度の高い割込みにより再度中断されるかのどちらかまで維持し続ける。後者の場合、シャドウ・バッファ内容はデータ・メモリのソフトウェア・スタックに保存され、プロセッサ状態の新しいコピーが取られる。しかし、これは費用のかかる解決法である。
【００１４】
本発明の目的は、小さいハードウェア・オーバヘッドしか必要としない解決法を提供することである。
【００１５】
この目的および他の目的を達成するため、本発明の第１の観点によれば、複数の利用可能なハードウェア資源手段と、前記利用可能なハードウェア資源手段にアクセスする第１命令セット手段とを備えることにより、前記利用可能なハードウェア資源手段の少なくとも一部が前記第１命令セット手段の制御により動作を実行するディジタル信号処理装置であって、第２命令セット手段が前記複数の利用可能なハードウェア資源手段の所定の限定されたサブセットだけにアクセスすることにより、前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が前記第２命令セット手段の制御により動作を実行することを特徴とする、ディジタル信号処理装置が提供される。
【００１６】
本発明の第２の観点によれば、複数の利用可能なハードウェア資源手段を備え、前記ハードウェア資源手段の少なくとも一部が第１命令セットの制御により動作を実行するディジタル信号処理装置においてディジタル信号を処理する方法であって、複数の使用可能な前記ハードウェア資源手段の前記所定の限定されたサブセットの少なくとも一部が、前記ハードウェア資源手段の前記所定の限定されたサブセットだけにアクセスする、第２命令セットの制御により動作を実行することを特徴とする方法が提供される。
【００１７】
本発明によれば、ディジタル信号処理装置は、すべての利用可能なハードウェア資源にアクセスできる、したがって標準命令セットである第１命令セットと、ハードウェア資源の限定されたサブセットだけにアクセスできる、したがってコンパクト命令セットと呼ぶことができる第２命令セットとの両方をサポートする。したがって、本発明によれば、２重命令セットを持つディジタル信号処理装置を提供され、その命令セットの１つ、いわゆるコンパクト第２命令セットは、すべてのハードウェア資源の小さいサブセットを必要とするだけである。コンパクト第２命令セットを使用する利点は、厳格な性能上の要件を持たないプログラム部分内のコード・サイズを節減することである。コンパクト第２命令セットはハードウェア資源に関しては制限点を持つため、このような命令セットの命令は、標準第１命令セットの命令に比べてかなり少ないビットを用いて符号化できる。したがって、性能はコード・サイズとの引き換えになる。標準第１命令セットは、高性能（例えばＤＳＰコード内の時間的クリティカル・ループ）を要求されるプログラム部分に使用され、その結果、通常、標準第１命令セットは多数のプログラム・ビットから構成される大きいＶＬＩＷ命令を含む。
【００１８】
本発明の概念の別の利点は、割込み時に保存する必要がある状態の量を低減することである。標準第１命令セットを割込みサービス・ルーチン（ＩＳＲ）で使用するとき、この命令により使用されるすべてのハードウェア資源の状態、すなわち処理装置全体の状態を保存しなければならない。「軽量」割込みサービス・ルーチンで、コンパクト第２命令セットだけを使用する場合、すべての他の資源の状態を単に凍結しながらコンパクト第２命令セットで使用されるハードウェア資源の限定されたサブセットだけの状態を保存するだけで十分である。これは文脈切換えの間の、多くの時間を節減する。したがって、ハードウェア資源のコンパクトな形態を利用して、割込み発生時における文脈切換えのオーバヘッドを低減できる。多くの割込みは非常に単純なハンドラ、すなわち割込みサービス・ルーチンを必要とするため、通常、これらハンドラは本発明によるコンパクト第２命令セットだけを使用する。
【００１９】
結局、本発明のソリューションは小さいハードウェア・オーバヘッドを必要とするだけである。
【００２０】
一般に、前記利用可能なハードウェア資源手段は、プロセッサ資源手段である。
【００２１】
本発明の好ましい実施形態は、割込み発生時におけるハードウェア資源手段の現在の状態を格納する第１状態バッファ手段を備え、割込み発生時に、前記第１状態バッファ手段が、前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれない、ハードウェア資源手段の少なくとも一部分の現在の状態を格納する。このような第１状態バッファ手段は、例えば別個のバッファ・ハードウェア・デバイスとして提供されるか、またはディジタル信号処理装置に含まれるデータ・メモリ内に論理バッファを定義する。
【００２２】
さらに、割込み発生時に、前記ハードウェア資源手段の前記所定の制限されたサブセットの少なくとも一部分の現在の状態を格納するために、第２状態バッファ手段を備えることができ、第２状態バッファ手段は前記第１状態バッファ手段に比べて小さいサイズを有する。この第２状態バッファ手段は、例えば別個のバッファ・ハードウェア・デバイスとして提供されるか、またはディジタル信号処理装置に含まれるデータ・メモリ内に別の論理バッファを定義する。したがって、本発明の好ましい実施形態による第２状態バッファ手段は、小さいシャドウ・バッファ手段と考えることができる。コンパクト第２命令セットがハードウェア資源手段に関して限定された形態を有する場合、従来技術フルサイズ・シャドウ・バッファとは対照的に、シャドウ・バッファの必要サイズを制限することにより、コストの大幅な削減が達成される。言いかえると、割り込み要求に対し、コンパクト第２命令セットを使用して、すべてのハードウェア資源手段に対し全シャドウ・バッファを実現するハードウェア・オーバヘッドを低減できる。
【００２３】
通常、第２状態バッファ手段にパワーを供給する手段が提供され、本発明の好ましい実施形態では、前記パワー供給手段は基本的に、割込み処理の間、前記第２状態バッファ手段だけにパワーを供給し、その結果第２状態バッファ手段はその時間中その状態を維持する。一般に、「パワー」手段は、電圧とクロックの両方を供給する。割込みの発生しない通常動作では、第２状態バッファ手段のパワーは完全に遮断され、パワーを節減する。割込み処理の全期間中、供給電圧を供給して、第２状態バッファ手段がその状態を維持するようにする。クロックは、状態コピーを実行して第２状態バッファ手段内に格納するときに、割込みサービス・ルーチンの最初に第２状態バッファ手段に供給されることだけが必要であるのに対し、割込み処理の残りの間は、第２状態バッファ手段がフリップ−フロップから形成される場合はクロックを供給する必要がなく、この場合には、割込みサービス・ルーチンの最後に第２状態バッファ手段の内容をクロックを必要とせずに読み込むことができる。
【００２４】
さらに、直接アクセスできないおよび前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれない、ハードウェア資源手段の少なくとも一部分は、第１スキャン・チェーンに一緒にチェーン結合され、また、直接アクセスできないおよび前記ハードウェア資源手段の前記所定の限定されたサブセットに含まれる、ハードウェア資源手段の少なくとも一部分は、第２スキャン・チェーンに一緒にチェーン結合される。この手法の利点は、第２状態バッファ手段をアドレス指定するのに必要ビット数を低減することである。詳細には、ハードウェア資源手段の限定されたサブセットに含まれないハードウェア資源手段に属するフリップ−フロップと、ハードウェア資源手段の限定されたサブセットに含まれるハードウェア資源手段のシャドウ・レジスタとは、スキャン・チェーンに一緒にチェーン結合される。スキャン・チェーンは、１つのハードウェア内に状態情報を保持する全フリップ−フロップをチェーンに接続することにより構成される。この場合、保存と再現のために、チェーンの最初または最後だけをアドレス指定する必要がある。スキャン・チェーンの読出しおよび書込みにより、チェーン内容のシフト・インおよびシフト・アウトが発生する必要がある。これらスキャン・チェーンはＩＣテスト目的にあらかじめ要求されているスキャン・チェーンに結合でき、後者の種類のスキャン・チェーンは対応するハードウェア・エレメントの標準機能の一部ではなく、このようなハードウェア・エレメントの正しい機能のテストの間に使用されるものであり、この場合、任意の所定の時点で対応するハードウェア・エレメントの内部状態が予測される性能に対して確認できるように、状態の読出しまたは書込みが可能になる。状態の一部分だけを保存可能にするため、スキャン・チェーンのグループを構成でき、この場合のスキャン・チェーンの各グループは第２状態バッファ手段レジスタ・ファイルに個々にアドレスできる。
【００２５】
本発明の別の好ましい実施形態によれば、前記第２命令セット手段は並列動作を実行できない。コンパクト第２命令セットが並列動作を実行できないことから、ハードウェア資源手段の使用が減少する。いわゆる、標準第１命令セットは一般に、ＶＬＩＷ命令セットであり、命令が同時実行可能ないくつかの動作から構成される。同時動作の実行は、並列で使用される複数のハードウェア資源を必要とする。前述のように、コンパクト第２命令セットがハードウェア資源に関し限定された形態を有するため、完全な並列形態でないすべての限定された形態がコンパクト第２命令セットにより使用を制限する。
【００２６】
好ましくは本発明は「ＣＯＣＯＯＮ」組込みＤＳＰコア・アーキテクチャ・テンプレートで使用される。このアーキテクチャ・テンプレートから第３世代「Ｒ．Ｅ．Ａ．Ｌ．」コア・ファミリが導き出された。これらコアは、要求の厳しいオーディオ用途（例えば圧縮オーディオ）および第３世代の移動体通信用途（ＵＭＴＳ）に向けられている。本発明の用途はまた、短い、予測可能な割込み待ち時間が重要であり、かつ内部状態の保存が「ボトルネック」となるような、すべてのタイプのプログラマブル・プロセッサで有効である。
【００２７】
本発明の前述およびその他の目的および特徴は、添付図面による好ましい実施形態に関連する以下の説明から明らかになるであろう。
【００２８】
（実施形態）
図１はＶＬＩＷデータパスの一部分の概略ブロック図であり、シャドウ・フリップ−フロップおよびフリップ−フロップ・スキャン・チェーンを、シャドウ・バッファ・レジスタ・ファイルを通して結合して、単一アドレス・マップを形成している。図では、「ＲＦ」はレジスタ・ファイルを意味し、「ＦＵ」は機能ユニットを、「ＡＣＵ」はメモリ・アドレスを計算するアドレス計算ユニットを意味している。図１に示す構成は２重命令セットを持つプロセッサで実現され、この場合、コンパクト命令セット（ＣＩＳ）と呼ばれる命令セットの１つだけが、全プロセッサ資源の（小さい）サブセットを必要とする。命令セットの他の１つはＶＬＩＷ命令セットから構成される標準命令セットであり、この標準命令セットは、命令が、同時実行できるいくつかの動作から構成されていることを意味する。動作の同時実行は、並列で使用される複数のハードウェア資源を必要とする。これに反して、コンパクト命令セットがはプロセッサ・ハードウェア資源に関し限定された形態を有し、並列動作を実行できない。したがって、完全並列形態でないすべての限定された特性がコンパクト命令セットにより使用を制限する。
【００２９】
コンパクト・セット（ＣＩＳ）に属し、またＣＩＳ資源とも呼ばれる資源は、（小さい）シャドウ・バッファのシャドウ・レジスタとして複写されたすべての資源の状態を有する。これら資源は通常、シーケンサの状態を含む。割込み時には、すべてのＣＩＳ状態のコピーがシャドウ・バッファに格納される。これは単一クロック・サイクルだけでなされる。同時に、コンパクト命令セットで使用されない、非ＣＩＳ資源と呼ばれるすべての資源は、例えばクロック・ゲートにより、それらの状態が凍結される。割込み時のプロセッサ状態の保存は、割込みサービスがなされる直前に、その状態の「スナップショット」を取ることにより可能になる。このようなスナップショットは割込みサービス・ルーチンに実行中に保存され、割込みサービス・ルーチンが完了したときに復元される必要があり、それによりプロセッサは、プロセッサが割込みを受けたときにそれから離れた、正確な同一状態および正確なプログラム位置から続行できる。このようなスナップショットが取られ、残りのすべての状態が凍結された後、割込みサービス・ルーチンの実行を開始できる。したがって、割り込み待ち時間は１サイクルだけである。
【００３０】
この割込みサービス・ルーチンの第１部分の命令は、コンパクト命令セット内で発生しなければならない。非ＣＩＳ資源の状態が保存されるかまたは復元される限り、コンパクト命令セットだけを使用でき、他のすべてのハードウェア資源は凍結される。ＣＩＳ状態を保存後、残りの状態は、機能ユニットＦＵに含まれるフリップ−フロップを直接読み出すことにより保存できる。この目的のために、このようなフリップ−フロップはメモリ・ワードにグループ化され、調整可能なレジスタ・ファイル・マップ内、例えばショドウ・バッファのレジスタ・ファイル・マップ内（図１参照）に配置される。
【００３１】
シャドウ・バッファをアドレス指定するのに必要なビット数を減少させるため、非ＣＩＳ資源に属するフリップ−フロップとＣＩＳ資源のシャドウ・レジスタとは、一緒にチェーン結合できる。この場合、チェーンの最初または最後だけを保存と再現のためにアドレス指定する必要がある。スキャン・チェーンの読出しおよび書込みにより、チェーン内容のシフト・インおよびシフト・アウトが発生する必要がある。これらスキャン・チェーンはＩＣテスト目的にあらかじめ要求されているスキャン・チェーンに結合できる。状態の一部分だけを保存可能にするため、スキャン・チェーンのグループを構成でき、この場合のスキャン・チェーンの各グループはシャドウ・レジスタ・ファイルに個々にアドレスできる。
【００３２】
非ＣＩＳ資源を再度有効にする前に、非ＣＩＳ機能ユニットの全状態を無効にし、それにより、非ＣＩＳ機能ユニットが再度起動されるときに、非無効データがすべてのレジスタ・ファイルに書込まれるか、または読込み／記憶動作が実行されるようにする。有効になった瞬間から、全命令セットは再度使用可能になり、すべての必要な標準変数レジスタを、読込み／記憶動作を使用して標準レジスタ・ファイルに保存できる。必要なレジスタの状態のすべてが保存されると、全割込みは再度有効になり、割込みネスティングを可能にする。割込みネスティングは、１つの割込みが、別の割込みの割込みサービス・ルーチンに割込みできる状態を指す。
【００３３】
Ｍスキャンは、ソフトウェアを介して直接アクセスできるレジスタを除き、非ＣＩＳ資源およびＣＩＳ資源のショドウ・レジスタを介して動作する。ここのＭはデータ・メモリに並列に書き込まれるビット数に等しい。この数値はデータ・メモリ・ワード幅と、並列に使用して状態を保存および復元できる読込み／記憶ユニットとの積に等しい。スキャン・チェーンを使用して、割込みサービス・ルーチンの開始および終了時に、スキャンして現在の状態を資源内に読込みおよび資源から外に読出しする。ソフトウェアを介して直接アクセスできるレジスタを除き、全資源はこれらＭスキャン・チェーンを介して一緒にチェーン結合される。機能ユニットのような資源内部では、平衡チェーンが得られるような方法で、フリップ−フロップをスキャン・チェーン内に配置する。例えば代表的な機能ユニットでは、チェーンは複数のフリップ−フロップを介して動作し、それによりチェーンの全体長さが、長くても、他のすべてのチェーンの全体長さに比べほぼ１つのフリップ−フロップになるようにする。これは、機能ユニット内のＮ個のフリップ−フロップの全体について、各スキャン・チェーンに対し、［Ｎ／Ｍ］フリップ−フロップを加える必要がある。残りのＮ−Ｍ［Ｎ／Ｍ］フリップ−フロップは、機能ユニットに入力する際に、最小数のフリップ−フロップを通過したチェーンに、最初に加える必要がある。図２には例を示しており、図２（ａ）は３つのパイプライン・ステージの２４、１６、２０ビットを持つ機能ユニットを示し、図２（ｂ）は３２スキャン・チェーンへのパイプライン・レジスタの対応する状態スキャン構造を示す。
【００３４】
図３はＣＩＳ資源に対するシャドウ・フリップ−フロップ（ａ）と、非ＣＩＳ資源に対するフリップ−フロップ・スキャン（ｂ）とを示す。しかし、この図は状態を凍結し、同時にパワー節減するのに使用されるクロック・ゲートを示していない。
【００３５】
割込みの発生しない通常動作では、シャドウ・バッファのパワーを完全に遮断して、供給電圧およびクロックの両方が存在しないようにできる。割込み処理の期間中だけ、供給電圧を供給して、シャドウ・バッファを有効にして、その状態を維持するようにする。クロックは、状態コピーを実行してシャドウ・バッファ内に格納するときに、割込みサービス・ルーチンの最初にシャドウ・バッファに供給されるだけである。割込み処理の残りの間は、シャドウ・バッファがフリップ−フロップから構成される場合はクロックを供給する必要がなく、この場合には、割込みサービス・ルーチンの最後にシャドウ・バッファの内容を（バッファ）クロックを必要とせずに読み込むことができる。
【００３６】
機能ユニット・クラスタＵＣの出力のＦＩＦＯバッファを使用して、パイプライン構成の機能ユニットの内部状態のスナップショットを得ることができる。
【００３７】
スキャン・チェーンはテストに必要なスキャン・チェーンを共有できる。
【００３８】
パイプライン機能ユニットに対しては、スナップショット・バッフア格納は、ユニット内の各フリップ−フロップに対するシャドウ・フリップ−フロップを必要とせず、または各フリップ−フロップがスキャン・チェーンの一部であることを必要とせずに、実行できる。機能ユニット・クラスタ出力ポートには、ＦＩＦＯバッファを配置できる（図４参照）。ＦＩＦＯバッファのサイズは、バッファに接続された出力ポートの最大待ち時間に等しい。割込みを検出すると、文脈の保存が開始される。このプロセス中、新しい動作は開始されない。しかし、パイプライン機能ユニットで進行中の動作は完了する、つまり、これら動作を実行している機能ユニットは、ＮＯＰ動作でそれらパイプラインを満たすことにより、出力される。機能ユニット・パイプラインの出力動作中は、機能ユニット・クラスタ出力ポートに現れるデータおよびレジスタ・インデックスは、レジスタ・ファイルＲＦの代わりにＦＩＦＯバッファに書き込まれる。このプロセスは、ＦＩＦＯバッファが満たされると終了する。
【００３９】
割込みサービス・ルーチンが終了すると、レジスタ・ファイルＲＦのデータおよびレジスタ・インデックスが、機能ユニット・サービス・ポートからの代わりに、ＦＩＦＯバッファから得られる。ＦＩＦＯバッファが空になると、通常動作への切換えが発生して、データおよびレジスタ・インデックスが出力ポートから取られる。
【００４０】
割込みネスティングはこの方法に複雑性を追加する。ネスティングが許可されると、ＦＩＦＯバッファの内容をソフトウェア・スタックに保存できる。この目的のためには、これらＦＩＦＯに格納された状態にアクセス可能でなけれがならない。この目的に対し、ＦＩＦＯバッファをスキャン・チェーンのグループの一部分にして、前述のように、読込み／記憶ユニットからアクセス可能にする。
【００４１】
パイプラインＣＩＳ機能ユニットにＦＩＦＯバッファを使用する利点は、シャドウ・フリップ−フロップが機能ユニット・クラスタの異なるＣＩＳ機能ユニット間で共用できることである。これにより、必要なシャドウ・フリップ−フロップの数を大幅に低減できる。この方法ｗパイプライン非ＣＩＳ機能ユニットに使用すると、これら機能ユニット内部のスキャン・チェーンの必要がなくなる。しかし、これは、スキャン・チェーンだけを使用した場合には必要でない、ＦＩＦＯバッファに対する余分なシャドウ・フリップ−フロップの費用を要する。
【００４２】
通常プログラム流れが割込みを受けるときに必要な動作の例は、ＩＳＲが全プロセッサ資源を使用でき、かつ別の割込みにより割込み可能である（ネスティング）と仮定して以下に示す。
【００４３】
−プロセッサは通常プログラム手順を実行中である。
−ハードウェアがＩＲＱを検出する。
−ハードウェアは非ＣＩＳ資源を凍結し、全体に割込みを無効にし、ＣＩＳ資源の状態をシャドウ・バッファにコピーする。
−プログラム制御がＩＳＲを入力する。
−ＩＳＲが非ＣＩＳの状態をソフトウェア・スタックに保存する。
−ＩＳＲがシャドウ・バッファ内容をソフトウェア・スタックにコピーする。　−ＩＳＲが必要なレジスタをソフトウェア・スタックに保存する。
−ＩＳＲが全体に割込みを有効にし、ネスティングを可能にする。
−ＩＳＲが必要動作を実行する、すなわち実際に割込みを処理する。
−ＩＳＲが全体に割込みを無効にする。
−ＩＳＲが使用されたレジスタをソフトウェア・スタックから復元する。
−ＩＳＲがシャドウ・バッフアをソフトウェア・スタックから復元する。
−ＩＳＲが非ＣＩＳ資源を凍結する。
−ＩＳＲが非ＣＩＳ資源に関する状態をソフトウェア・スタックから復元する。
−プログラム制御がＩＳＲの終了に達する。
−ハードウェアがシャドウ・バッフア内容をＣＩＳ資源にコピーし、非ＣＩＳ資源を解凍し、割込みを全体に再度有効する。
−プロセッサが通常プログラム手順を進行する。
【図面の簡単な説明】
【図１】
ＶＬＩＷデータパスの一部分の概略ブロック図である。
【図２ａ】
３つのパイプライン・ステージを持つ機能ユニットを示す概略ブロック図である。
【図２ｂ】
パイプライン・レジスタの対応する状態スキャン構造を示す。
【図３】
コンパクト命令セット（ＣＩＳ）資源（ａ）および非ＣＩＳ資源（ｂ）に対するフリップ−フロップ構成の概略ブロック図である。
【図４】
機能ユニット・クラスタの出力におけるＦＩＦＯバッファを示す概略ブロック図である。
【図１】
2004512599.tif 000003
【図２ａ】
2004512599.tif 000004
【図２ｂ】
2004512599.tif 000005
【図３】
2004512599.tif 000006
【図４】
2004512599.tif 000007
【国際公開パンフレット】
2004512599.tif 000008
2004512599.tif 000009
2004512599.tif 000010
2004512599.tif 000011
2004512599.tif 000012
2004512599.tif 000013
2004512599.tif 000014
2004512599.tif 000015
2004512599.tif 000016
2004512599.tif 000017
2004512599.tif 000018
2004512599.tif 000019
2004512599.tif 000020
2004512599.tif 000021
2004512599.tif 000022
2004512599.tif 000023
2004512599.tif 000024
【国際公開パンフレット（コレクトバージョン）】
2004512599.tif 000025
【国際調査報告】
2004512599.tif 000026
2004512599.tif 000027
2004512599.tif 000028