(57)【要約】データプロセッサは、１つ以上の機能ユニットと、１つ以上のレジスタファイルと、データメモリと、インタラプト状態の処理中に様々なプロセッサ状態要素の状態情報を各スナップショットバッファ要素に保存するように適応されているスナップショットバッファとを含んでいる。特に、データプロセッサは、実際のインタラプト状態の処理中に発生する次のインタラプト状態になると、前記スナップショットバッファ要素の内容を、マルチビットアクセスポートファシリティを有するデータメモリファシリティに保存するように配列されているコントローラ手段を含んでいる。
2005537580.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の機能ユニットと、１つ以上のレジスタファイルと、データメモリと、インタラプト状態の処理中に様々なプロセッサ状態要素の状態情報を各スナップショットバッファ要素に保存するように適応しているスナップショットバッファとを具備してなるデータプロセッサであって、
前記データプロセッサが、実際のインタラプト状態の処理中に生じる次のインタラプト状態のときに、前記スナップショットバッファ要素の内容をマルチビットアクセスポートファシリティを有するデータメモリファシリティに保存するように配列されているコントローラ手段を備えることを特徴とするデータプロセッサ。
【請求項２】
前記コントローラ手段が、実際のインタラプト状態の処理を終了すると、前記スナップショットバッファ要素の以前に保存された内容を、前記マルチビットアクセスポートファシリティを介して、前記データメモリファシリティから前記スナップショットバッファ要素に読み出すように配列されている、請求項１に記載のデータプロセッサ。
【請求項３】
前記コントローラ手段は、前記読み出しを行うと、前記データプロセッサに以前未完了のインタラプトの処理を継続させるか、または場合によって前記処理のメインスレッドを継続させる様々なプロセッサ状態要素の以前に保存された状態情報を同様に復元するように配列されている、請求項２に記載のデータプロセッサ。
【請求項４】
前記状態情報が、現在の操作の待ち時間データを備える、請求項１に記載のデータプロセッサ。
【請求項５】
前記スナップショットバッファが、選択されたスナップショットバッファ要素を順次保存して、その内容を前記データメモリファシリティに転送する前記マルチビットアクセスポートファシリティを有する出力マルチプレクサ手段を備える、請求項１に記載のデータプロセッサ。
【請求項６】
前記スナップショットバッファが、選択されたスナップショットバッファ要素を順次選択して、その保存された内容を前記データメモリファシリティから転送し戻す前記マルチビットアクセスポートファシリティを有する入力マルチプレクサ手段を備える、請求項１に記載のデータプロセッサ。
【請求項７】
前記データメモリファシリティがスタックとして動作される、請求項１に記載のデータプロセッサ。
【請求項８】
前記スタックが、各スナップショットごとに多数のスタック位置を許容するスタックポインタを有する、請求項７に記載のデータプロセッサ。
【請求項９】
前記スタックにおける書き込みおよび読み出し動作が、互いに排他的な瞬間に実行される、請求項７に記載のデータプロセッサ。
【請求項１０】
前記スナップショットバッファが、そのスナップショット情報を保存するシャドウフリップフロップから少なくとも実質的に構成される、請求項１に記載のデータプロセッサ。
【請求項１１】
前記スナップショットバッファが、実際のスナップショット撮影の間のみにおいてシャドウフリップフロップを１回以上クロッキングすることによって低電力で動作され、この動作は、１クロック周期のみの間に前記スナップショットバッファを作動させること、スタック押圧動作中にスタック最上部プラス１としてのスタックポインタによって指摘されるシャドウフリップフロップのみをクロッキングすること、スナップショットバッファスタックのポッピングおよび押し込みによって引き起こされるスタックポインタのアップデート中のみスタックポインタ自身をクロッキングすることを備えてもよい、請求項１に記載のデータプロセッサ。
【請求項１２】
ネスト化されたインタラプトのこのような処理を実行するために単一の発行スロットのみが使用される複数の並列発行スロット（３２〜３８）を有する、請求項１に記載のデータプロセッサ。
【請求項１３】
請求項１に記載のデータプロセッサが組み込まれている、データ処理ファシリティ。
【請求項１４】
ネスト化されたインタラプトを処理するように配列されている請求項１に記載のデータプロセッサを動作させる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
表題特許出願：機能ユニットと、レジスタファイルと、データメモリと、インタラプト処理中にプロセッサ状態情報をスナップショットバッファに保存し、また実際のインタラプトの処理中に次のインタラプトでスナップショットバッファの内容をマルチビットアクセスポートファシリティを有するデータメモリファシリティに保存するスナップショットバッファとを有するデータプロセッサ、このようなデータプロセッサが組み込まれたデータ処理ファシリティ、およびネスト化されたインタラプトを処理するように配列されているこのようなデータプロセッサを動作させる方法。
【背景技術】
【０００２】
本発明は、１つ以上の機能ユニットと、１つ以上のレジスタファイルと、データメモリと、請求項１の前文に詳説されているようにインタラプト状態においてプロセッサの状態情報を各バッファ要素に保存するように適応されているスナップショットバッファとを含んでいる。ＶＬＩＷおよび他の最新技術プロセッサにおいて高品質動作スケジュールが得られるようにするためには、コンパイラに関連する理想的には全てのハードウェア特性を、コンパイラに対して明白にすべきである。限定されるわけではないが、このような情報の特定の関連カテゴリは、それぞれ関連する動作の様々な待ち時間に関連している。高性能パイプライン化プロセッサは、１を越える待ち時間の数値を使用することによって、性能を上げている。動作において、待ち時間数値は正確に指示されるべきである。これは、動作の全継続時間だけが指示されるのではなく、オペランドの使用、データ処理、結果生成のために特定の動作で特定のハードウェアを使用することも意味している。そのため、レジスタのプレッシャーが最小の優れたスケジュールが得られる。
【０００３】
上記のスケジューリングアプローチは、ＮＵＡＬ−ＥＱ意味論（Ｎｏｎ  Ｕｎｉｔ  Ａｓｓｕｍｅｄ  Ｌａｔｅｎｃｙ  ｗｉｔｈ  Ｅｑｕａｌ）と呼ばれている。ＮＵＡＬ−ＥＱに基づいてコンパイル時間スケジューリングをサポートする常に割込可能なプログラム可能プロセッサは、インタラプト処理方式の一部として復元されるべき内部プロセッサパイプラインから正確なスナップショットを撮ることが必要である。実際、非常に一般的に使用されており、またプロセッサパイプライン状態を掃き出す手順では、後でプロセッサの動作が不正確になってしまうことがある。このようなスナップショットは、本譲受人に譲渡され、また本発明者によって共同発明され、ここに参考として挙げる公開ＰＣＴ特許出願ＷＯ０２／３３５７０Ａ２に開示されているように、スナップショットバッファに保存される。
【０００４】
本発明者は、いわゆるネスト化されたインタラプトの関連性を正当に認識しており、ネスト化されたインタラプトにおいては、次のインタラプトが発生するときには、前のインタラプト状態の処理は終了していない。このような場合、複数の同時のスナップショットを保存し、復元することが可能でなければならない。この問題を解決する様々な異なるアプローチが原則的に存在するが、最も廉価なアプローチは、ロード／保存コントローラユニットでスナップショットバッファを書き込みおよび読み出し可能にし、現在のインタラプトの処理開始時に撮られた最後のスナップショットがバックグラウンドメモリに保存されて、新たなインタラプトが実行されるときに撮られる新しいスナップショットのために場所を確保することである。
【０００５】
現在、スナップショットバッファは、プロセッサの命令群アーキテクチャ（ＩＳＡ）を変更する必要なく、上述の機能性を得るためにレジスタファイルのように動作することが可能になっている。しかし、スナップショットバッファをプロセッサのレジスタファイルアドレススペースに追加することは、命令のエンコードにおいてレジスタアドレッシングビットが別途必要になることを意味している。従って、スナップショットバッファを注意して実現し、またプロセッサアーキテクチャにこのバッファを取り入れることによって、アドレッシングオーバーヘッドを減少または完全に除去する方法が必要である。
【０００６】
この特定の問題は、上記の参考文献では取り上げられていない。そこで、アドレスビットの保存は、直列スキャンチェーンを使用することによって行われる。これらの直列スキャンチェーンにより、スナップショットバッファ内のレジスタ位置を明白にアドレス指定する必要なく、スナップショットデータをスナップショットバッファに対して出し入れすることが可能となる。しかし、スキャンチェーンを使用することの目立った欠点は、様々なバッファフリップフロップ全てからチェーン形式を効果的に構成するために多くの配線が必要になることである。最後に、スナップショットからデータを読み出したり、あるいはここにデータを書き込むのに必要なデータの移動によって、不要な切替動作が行われ、電力の無駄な消費が増加してしまう。
【０００７】
本発明者は、シャドウフリップフロップから構成されるスナップショットバッファを有するインタラプト可能データプロセッサを提供することの有利な特徴を認識してきた。各シャドウフリップフロップは、上記参考文献に関連するように、インタラプト処理の前後にプロセッサハードウェアによって状態を保存し、また復元しなければならない何れかのリソースに、対応する通常のフリップフロップを有している。
【０００８】
現在、また、標準のロード／保存ユニットによって読み出しまたは書き込み可能なスタックに基づくレジスタのように、スナップショットバッファを動作させることが提案されている。スナップショットバッファはスタックのように動作するので、アドレス指定のためにレジスタインデックスは必要なくなる。また、参考文献のスキャンチェーンに基づく解決策の例にあるように、スナップショットデータの移動も不要である。代わりに、スナップショットバッファ内部に、スタックポインタが保持される。スナップショットをバックグラウンドメモリに保存するために、スナップショットバッファから読み出しを行うと、スタック最上部が飛び出し、スタックポインタ数値が減少するので、前回のスタック最上部が指示される。バックグラウンドメモリからスナップショットを再ロードするためにスナップショットバッファに書込を行うと、新しいデータがスタックに押され、スタックポインタの数値が増加するので、次のスタック最上部が指示される。ちなみに、このようなスナップショットバッファにおける書き込みおよび読み出しは、インタラプトが実際にネスト化されるときのみ必要となる。それ以外は、従来の手順で十分である。
【発明の開示】
【０００９】
その結果、特に、本発明の目的は、二次データ記憶レベルで最新のものを除く全スナップショットを保存することにより、複数のネスト化されたインタラプトの発生を可能にすることにある。
【００１０】
従って、１つの側面によれば、本発明は請求項１の特徴的部分に従って特徴付けられる。
【００１１】
本発明はまた、このようなプロセッサが組み込まれたデータ処理ファシリティと、上述したようにネスト化されたインタラプトを処理するように構成されたデータプロセッサを動作させる方法とに関している。本発明の更なる特徴的側面は、独立請求項に詳述されている。
【００１２】
本発明の上記およびその他の側面および効果は、好適な実施例の開示、および特に添付の図面を参照して以下に詳細に説明される。
【発明を実施するための最良の形態】
【００１３】
図１は、スタックに基づくスナップショットバッファを有するＶＬＩＭプロセッサのブロック図の実施例を示している。図において、実際に図示されている相互接続部の数は、図面を明瞭にするためにできるだけ低く抑えられており、また構造の機能を説明するのに必要と思われる相互接続部のみを実際に図示している。ところで、構成は、２つのレジスタファイル（ＲＦ０、ＲＦ１）２２および２４と、４つの発行スロット（ＵＣ０、ＵＣ１、ＵＣ２、ＵＣ３）３２、３４、３６、３８と、レジスタファイルを発行スロットに相互接続する相互接続ネットワーク（ＣＮ）２８と、コントローラ（ＳＱ）２６とを含んでいる。第１発行スロット（ＵＣ０）３２は、インタラプト処理中に実際に使用される唯一のスロットである。このようなインタラプト処理中に、関連リソースの様々な状態が、シーケンサの関連状態と共に、スナップショットバッファ（ＳＳ）２０のシャドウフリップフロップにコピーされる。後者は、ＵＣ０３２内に位置するロード／保存ユニット（ＬＳＵ）３０に独占的に接続されており、上記レジスタファイルＲＦ０２２およびＲＦ１２４の付加的レジストファイルとして動作している。従来のロード／保存ユニットのように、要素ＬＳＩ３０はバックグラウンドデータメモリ（ＤＭ）４０にアクセスし、ネスト化されたインタラプトを処理する場合に、そこにスナップショットデータを保存したり、あるいはそこからスナップショットデータをロードしたりする。
【００１４】
図２は、スタックに基づくスナップショットバッファの内部構成のブロック図を示している。バッファは、別個に図示されていない複数のシャドウフリップフロップから構成されており、これらはワード５２のみが示されている並列ワード群５０において組織化されている。ワード長さの決定は、ニーズと、データ経路幅などの利用可能なプロセッサファシリティとに応じて行われる。各シャドウフリップフロップは、プロセッサリソース内に位置する対応する状態指示フリップフロップに接続されている。インタラプトの処理中、この状態を保存しなければならないが、以後は図３を参照すること。スナップショットバッファにおいて、様々なシャドウワードに対する入力はデマルチプレクサ５４に接続されており、正確な１ワードをいつでも書き込みすることができる。同様に、スナップショットバッファにおいて、様々なシャドウワードからの出力はマルチプレクサ５６に送られ、正確な１ワードの読み出しを行うことがいつでも可能である。
【００１５】
デマルチプレクサ５４およびマルチプレクサ５６の両者は、同様にスナップショットバッファに位置するスタックポインタレジスタ５８からのスタックポインタによって制御される。実際、ライン６２上のスナップショットバッファからの読み出しはネスト化されたインタラプトの開始時に必要となるだけであり、またライン６０上のスナップショットバッファへの書込はネスト化されたインタラプトの終了時に必要となるだけである。従って、これらの２つの動作は同時に生じることはなく、スタックバッファにおける異なるワードのインターリーブアドレッシングを制御するのに単一のポインタレジスタ５８で十分である。ポインタ数値は、その後ポインタレジスタ５８の再ロードを行うために、ライン６２上でポインタアップデート制御部６６に逆結合されている。図に示すように、３動作制御ライン６８により、ポインタ数値に対して読み出しモード、書き込みモード、無動作モードが可能となる。効果的な動作は、（直線逆結合を介して）減少要素（−１）、増加要素（＋１）、無動作要素において実行される。
【００１６】
本実施例において、スナップショットバッファはそれ自身の内部スタックポインタを維持するので、標準ランダムアクセスレジスタファイルで必要であったような、上記読み出し／書き込みコマンドの何れもレジスタアドレスを必要としない。従って、スナップショットバッファにおけるレジスタのアドレッシングを行うために、命令ビットが別途必要となることはない。ちなみに、スタックポインタの実際の数値はインタラプトのレベルに関連していないが、特定のインタラプトに対してデータが状態レジスタに書き込まれるシーケンスに関連している。次のインタラプトが明白になると、シャドウレジスタ群の内容がスタックに書き込まれる。次のインタラプトが到着すると、シャドウレジスタがＤＭ４０にコピーされて、新しいデータのための場所が確保される。
【００１７】
図３は、通常のリソースフリップフロップ７０に相互接続されているシャドウフリップフロップ７２を示しており、上述の公開参照特許出願ＷＯ０２／３３５７０Ａ２を参照すること。左側の破線（ａ）は、標準または本来のフリップフロップ７０および入力ゲートファシリティ７４を備えた標準作動用ハードウェアを区切っている。入力ゲートファシリティ７４は消費データ７８を受信し、またフリップフロップ７０は処理データ８２を出力する。シャドウフリップフロップ７２は、ライン８４上で保存データを出力する。シャドウフリップフロップ入力は、制御信号８６で制御される保存／記憶マルチプレクサ７６によって供給される。図の２つの部分は、図示するように互いに相互結合されている。
【００１８】
各インタラプト処理の開始時に、各通常フリップフロップの数値をその対応するシャドウフリップフロップに即座にコピーすることにより、単一のクロック周期内で関連するプロセッサ状態から完全スナップショットを取る。同様に、各インタラプト処理の終了時に、各シャドウフリップフロップをその対応する通常フリップフロップに即座にコピーすることにより、完全スナップショットをスナップショットバッファからプロセッサに適切に復元される。
【００１９】
インタラプトのネスト化を可能にする前に、スタックからのワードにおいて組織化されているスナップショットデータをロード／保存ユニットでポッピングすることにより、スナップショットバッファの内容をデータメモリに保存することができる。その後、この機能により、スナップショットバッファは解放され、各ネスト化インタラプトの処理の開始時に新たなスナップショットを撮ることができる。ネスト化されたインタラプトから戻ると、現在のスナップショットバッファの内容が復元された後に、ワード内で組織化されているスナップショットデータをスタックに押し込むロード／保存ユニットを使用して、中断されたサービスルーチンからの本来のスナップショットデータをデータメモリからロードし、スナップショットバッファに書き込むことができる。
【００２０】
できるだけスナップショットバッファを停止状態にすることにより、低電力を得ることができる。これは以下のように行われる。スナップショットバッファの全シャドウフリップフロップはスナップショットを実際に撮る間にクロッキングされるのみであるので、単一のクロック周期のみの間にスナップショットバッファの動作は停止される。また、スタック最上部プラス１としてスタックポインタで指摘されるシャドウフリップフロップのみが、スタック押し込み動作中にクロッキングされる。最後に、スタックポインタ自身は、スナップショットバッファスタックのポッピングおよび押し込みによって引き起こされるスタックポインタのアップデート中にのみクロッキングされる。
【００２１】
本発明の有利な応用分野は、組込型デジタル信号プロセッサ（ＤＳＰ）である。本発明は更に、ＮＵＡＬ−ＥＱに基づくスケジューリングを使用するため、パイプラインフラッシングの代わりにパイプラインスナップショットが必要となるインタラプト可能組込型プロセッサアーキテクチャに適用可能である。特定の応用分野は、映像処理、映像コーデック、音声コーデック、音声グラフィック、３Ｇテレコム、パケット上の音声、その他である。
【図面の簡単な説明】
【００２２】
【図１】図１は、スタックに基づくスナップショットバッファを備えるＶＬＩＷプロセッサのブロック図。
【図２】図２は、スタックに基づくスナップショットバッファのブロック図。
【図３】図３は、通常のリソースフリップフロップに相互接続されたシャドウフリップフロップ。
【符号の説明】
【００２３】
２０  スナップショットバッファ
２２、２４  レジスタファイル
２６  コントローラ
２８  相互接続ネットワーク
３２、３４、３６、３８  発行スロット
４０  バックグラウンドデータメモリ
５０  並列ワード群
５２  ワード
５４  デマルチプレクサ
５６  マルチプレクサ
５８  スタックポインタレジスタ
６０、６２  ライン
６６  ポインタアップデート制御部
６８  ３動作制御ライン
７０  リソースフリップフロップ
７２  シャドウフリップフロップ
７４  入力ゲートファシリティ
７６  保存／記憶マルチプレクサ
７８  消費データ
８２  処理データ
【図１】
2005537580.tif 000003
【図２】
2005537580.tif 000004
【図３】
2005537580.tif 000005
【国際調査報告】
2005537580.tif 000006
2005537580.tif 000007
2005537580.tif 000008