(57)【要約】  ソフトウェア管理されたページテーブル内のどのページが、例えばデジタル信号プロセッサのような、マイクロプロセッサ内の例外を引き起こすか示す方法およびシステムであって、そこでは、ソフトウェア管理された変換索引バッファ（ＴＬＢ）モジュールは、例えばフェッチ命令のような、超長命令語（ＶＬＩＭ）パケット内の命令により生成された仮想アドレスを受け取り、そして、さらに、その仮想アドレスを格納された各ＴＬＢエントリと比較する。  一致するものが存在する場合、ＴＬＢモジュールはその命令のために対応するマッピングされた物理アドレスを出力する。  そうでなければ、ＶＬＩＭパケットが２ページにまたがる場合であって、ここで、１つのページがＴＬＢモジュール内のＴＬＢエントリとして存在し、別のページが格納されたＴＬＢエントリに見当たらないとき、制御レジスタのデータフィールド内の表示ビットは、ソフトウェア管理ユニットにＴＬＢミス例外を識別させるために、セットされる。  前記ソフトウェア管理ユニットは、レジスタから表示ビット情報を検索し、そして、さらに、ミッシングページ情報を検索するために表示ビット情報を使用して、ソフトウェア管理されたページテーブル内のページテーブル探索を実行する。  続いて、ミッシングページ情報は、命令のパケットの後の仮想アドレス変換および実行のために、ＴＬＢモジュール内の新しいＴＬＢエントリに書き込まれる。
2009544104.tif 000002
【特許請求の範囲】
【請求項１】
バッファモジュール内のミッシングアドレス情報により発生された例外を識別するために表示ビットを予定値にセットすること、
ここで、前記ミッシングアドレス情報は実行可能命令のパケットに対応する；および  
前記バッファモジュール内のアドレス変換を可能にするために前記表示ビットを使用して少なくとも１つのページテーブルから前記アドレス情報を検索すること、
を含む方法。
【請求項２】
前記実行可能命令のパケットに対応する格納されたページから前記例外が発生させられた場合、前記の表示ビットに０の値をセットすること、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記セットすることは、
前記実行可能命令のパケットに対応する格納されたページの後に続くページから前記例外が発生させられた場合、前記表示ビットを１の値にセットすること、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記表示ビットは、レジスタのデータフィールド内にセットされる、請求項１に記載の方法。
【請求項５】
前記バッファモジュール、および前記少なくとも１つのページテーブルは、ソフトウェア管理されたエンティティである、請求項１に記載の方法。
【請求項６】
前記パケット内の実行可能命令を受信すること、ここで前記実行可能命令は仮想アドレスを含んでいる；
一致するアドレス情報を得るために、前記バッファモジュール内の各格納されたエントリと、前記仮想アドレスを比較すること；および、
前記一致するアドレス情報が前記バッファモジュールに見当たらない場合、前記例外を発生させること、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記実行可能命令はフェッチ命令である、請求項６に記載の方法。
【請求項８】
前記パケットは少なくとも２つのページにまたがる、ここで、第１のページは前記バッファモジュール内のエントリとして格納されている、そして、別のページは、前記ミッシングアドレス情報を含んでいる、請求項１に記載の方法。
【請求項９】
前記例外が現在処理されていることを示すために前記レジスタの別のデータフィールド内の例外ビットをセットすること、
をさらに含む請求項４に記載の方法。
【請求項１０】
前記バッファモジュールは、変換索引バッファ（ＴＬＢ）モジュールである、請求項１に記載の方法。
【請求項１１】
少なくとも１つのページテーブルに結合されたバッファモジュールをさらに含むメモリ管理ユニット；
前記メモリ管理ユニット内の前記バッファモジュールに結合された中央処理装置；および、
前記中央処理装置の上で動作するソフトウェア管理ユニット；
ここで、前記中央処理装置は前記バッファモジュール内のミッシングアドレス情報により発生させられた例外を識別するために表示ビットを予定値にセットする、前記ミッシングアドレス情報は実行可能命令のパケットに対応する、そして、前記ソフトウェア管理ユニットは前記バッファモジュール内のアドレス変換を可能にするために前記表示ビットを使用して、前記少なくとも１つのページテーブルからの前記アドレス情報を検索する、
を含む集積回路。
【請求項１２】
前記中央処理装置は、さらに、前記例外が前記実行可能命令のパケットに対応する格納されたページから発生させられる場合、前記表示ビットを０の値にセットする、請求項１１に記載の集積回路。
【請求項１３】
前記中央処理装置は、さらに、前記例外が前記実行可能命令のパケットに対応する格納されたページの後に続くページから発生させられる場合、前記表示ビットを１の値にセットする、請求項１１に記載の集積回路。
【請求項１４】
前記表示ビットはレジスタのデータフィールド内にセットされる、請求項１１に記載の集積回路。
【請求項１５】
前記バッファモジュールおよび前記少なくとも１つのページテーブルは、ソフトウェア管理されたエンティティである、請求項１１に記載の集積回路。
【請求項１６】
前記バッファモジュールは、さらに、前記パケット内の実行可能命令を受け取る、ここで前記実行可能命令は仮想アドレスを含んでいる、そして、一致するアドレス情報を得るために、前記仮想アドレスを前記バッファモジュール内の格納されたエントリ各々と比較する、そして、前記一致するアドレス情報が前記バッファモジュールに見当たらない場合、前記例外を発生させる、請求項１１に記載の集積回路。
【請求項１７】
前記実行可能命令はフェッチ命令である、請求項１６に記載の集積回路。
【請求項１８】
前記パケットは、少なくとも２つのページにまたがる、ここで、第１のページは前記バッファモジュール内のエントリとして格納されている、および別のページはミッシングアドレス情報を含んでいる、請求項１１に記載の集積回路。
【請求項１９】
前記中央処理装置は、さらに、前記例外が現在処理されていることを示すために、前記レジスタの別のデータフィールド内の例外ビットをセットする、請求項１１に記載の集積回路。
【請求項２０】
前記バッファモジュールは変換索引バッファ（ＴＬＢ）モジュールである、請求項１１に記載の集積回路。
【請求項２１】
バッファモジュール内のミッシングアドレス情報により発生させられた例外を識別するために表示ビットを予定値にセットする手段、ここで、前記ミッシングアドレス情報は実行可能命令のパケットに対応する；および、
前記バッファモジュール内のアドレス変換を可能にするために前記表示ビットを使用して少なくとも１つのページテーブルから前記アドレス情報を検索するための手段、
を含むシステム。
【請求項２２】
前記実行可能命令のパケットに対応する格納されたページから前記例外が発生させられる場合、前記表示ビットを０の値にセットするための手段、をさらに含む、請求項２１に記載のシステム。
【請求項２３】
前記実行可能命令のパケットに対応する格納されたページの後に続くページから前記例外が発生させられる場合、前記表示ビットを１の値にセットするための手段、をさらに含むこと請求項２１に記載のシステム。
【請求項２４】
前記表示ビットはレジスタのデータフィールド内にセットされる請求項２１に記載のシステム。
【請求項２５】
前記バッファモジュールおよび前記少なくとも１つのページテーブルは、ソフトウェア管理されたエンティティである、請求項２１に記載のシステム。
【請求項２６】
前記パケット内の実行可能命令を受信するための手段、ここで前記実行可能命令は仮想アドレスを含んでいる；
一致するアドレス情報を得るために、前記仮想アドレスを前記バッファモジュール内の格納されたエントリ各々と比較するための手段；および、
前記一致するアドレス情報が前記バッファモジュールに見当たらない場合、前記例外を発生させるための手段、
をさらに含む、請求項２１に記載のシステム。
【請求項２７】
前記実行可能命令はフェッチ命令である、請求項２６に記載のシステム。
【請求項２８】
前記パケットは、少なくとも２つのページにまたがる、ここで、第１のページは前記バッファモジュール内のエントリとして格納されている、そして、別のページは前記ミッシングアドレス情報を含んでいる、請求項２１に記載のシステム。
【請求項２９】
前記例外が現在処理されていることを示すために前記レジスタの別のデータフィールド内に例外ビットをセットするための手段、をさらに含む、請求項２４に記載のシステム。
【請求項３０】
前記バッファモジュールは変換索引バッファ（ＴＬＢ）モジュールである、請求項２１に記載のシステム。
【請求項３１】
処理システムで実行されたときに、前記システムに、
バッファモジュール内のミッシングアドレス情報により発生させられた例外を識別するために表示ビットを予定値にセットすること、ここで前記ミッシングアドレス情報は実行可能命令のパケットに対応している；および、
前記バッファモジュール内のアドレス変換を可能にするために前記表示ビットを使用して少なくとも１つのページテーブルから前記アドレス情報を検索すること、
を含む方法を実行させる実行可能命令を含んでいるコンピュータ可読媒体。
【請求項３２】
前記セットすることは
前記実行可能命令のパケットに対応する格納されたページから前記例外が発生させられた場合、前記表示ビットを０の値にセットすること、
をさらに含む請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
前記セットすることは、
前記実行可能命令のパケットに対応する格納されたページの後に続くページから前記例外が発生させられた場合、前記表示ビットを１の値にセットすること、
をさらに含む、請求項３１に記載のコンピュータ可読媒体。
【請求項３４】
前記表示ビットは、レジスタのデータフィールド内にセットされる、請求項３１に記載のコンピュータ可読媒体。
【請求項３５】
前記バッファモジュールおよび前記少なくとも１つのページテーブルは、ソフトウェア管理されたエンティティである、
請求項３１に記載のコンピュータ可読媒体。
【請求項３６】
前記方法は、
前記パケット内の実行可能命令を受け取ること、ここで前記実行可能命令は仮想アドレスを含んでいる；
一致するアドレス情報を得るために前記仮想アドレスを前記バッファモジュール内の格納されたエントリ各々と比較すること；および、
前記一致するアドレス情報が前記バッファモジュールに見当たらない場合に、前記例外を発生させること、
をさらに含む、請求項３１に記載のコンピュータ可読媒体。
【請求項３７】
前記実行可能命令はフェッチ命令である、請求項３６に記載のコンピュータ可読媒体。
【請求項３８】
前記パケットは少なくとも２つのページにまたがる、ここで、第１のページは、前記バッファモジュール内のエントリとして格納されている、および、別のページは前記ミッシングアドレス情報を含んでいる、
請求項３１に記載のコンピュータ可読媒体。
【請求項３９】
前記方法は、
前記例外が現在処理されていることを表示するために、前記レジスタの別のデータフィールド内の例外ビットをセットすること、
をさらに含む、請求項４に記載のコンピュータ可読媒体。
【請求項４０】
前記バッファモジュールは、変換索引バッファ（ＴＬＢ）モジュールである、請求項３１に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、マイクロプロセッサに関する、そして、より具体的には、例えばデジタル信号プロセッサのようなマイクロプロセッサ内の例外を引き起こすページを示す方法およびシステムに関する。
【背景技術】
【０００２】
典型的には、コンピュータ・システムは１つ以上のマイクロプロセッサー・デバイスを含んでおり、各マイクロプロセッサー・デバイスは、そのコンピュータ・システムの記憶装置に格納された値に従ってオペレーションを実行し、かつ、そのコンピュータ・システムの全体のオペレーションを管理するように構成されている。これらのコンピュータ・システムズは、さらに例えばサウンドカードおよび／またはビデオカードのように、様々なマルチメディア・デバイスを含み得る、そして、各マルチメディア・デバイスは、さらに、例えば、それぞれのマルチメディア・デバイス内の複雑な数学的な計算を実行するデジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）（ＤＳＰ）のような、１つ以上のプロセッサを含んでいる。
【０００３】
デジタル信号プロセッサ（ＤＳＰ）は、典型的には、例えば１つ以上の算術論理演算ユニット（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）（ＡＬＵ）、１つ以上の積和演算器ユニット（ｍｕｌｔｉｐｌｙ−ａｎｄ−ａｃｃｕｍｕｌａｔｅ  ｕｎｉｔ）（ＭＡＣ）、およびＤＳＰの内の１セットの命令によって指定されたオペレーションを実行するように構成された他の機能ユニットのような、数学的な計算を実行するように特に構成されたハードウェア実行ユニット、を含んでいる。そのようなオペレーションは、例えば、各々が命令の関連するセットによって定義されている、算術演算、論理演算、および他のデータ処理動作を含み得る。
【０００４】
一般に、ＤＳＰの内の実行ユニットは、メモリと実行ユニットに結合されたレジスタファイルからデータとオペランドを読み込み、命令動作を実行し、そして、レジスタファイルへ結果を格納する。
【発明の概要】
【０００５】
例えばデジタル信号プロセッサのような、マイクロプロセッサ内において、ソフトウェア管理されたページテーブル内のどのページが例外を引き起こすかを示す方法およびシステムが、説明される。１つの実施形態では、ソフトウェア管理された変換索引バッファ（ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  ｂｕｆｆｅｒ）（ＴＬＢ）モジュールは、例えばフェッチ命令のような、超長命令語（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）（ＶＬＩＭ）パケット内の命令によって生成された仮想アドレスを受け取り、そして、さらに、その仮想アドレスを格納されたＴＬＢエントリの各々と比較する。一致するものが存在する場合には、ＴＬＢモジュールは、その命令について対応するマップされた物理アドレスを出力する。
【０００６】
そうでなければ、ＶＬＩＭパケットが２ページにまたがる場合（ここで、第１のページがＴＬＢモジュール内のＴＬＢエントリとして存在し、別のページが格納されたＴＬＢエントリには見当たらない（ｍｉｓｓｉｎｇ））、制御レジスタのデータフィールド内の表示ビットは、ソフトウェア管理ユニットにＴＬＢミス例外を識別させるためにセットされる。ＴＬＢミス例外が、システム内のプログラムカウンタによって識別されるＶＬＩＭパケットに対応するページから発生させられた場合には、表示ビットは０の値にセットされる。そして、データフィールドは０ｘ００にセットされる。あるいは、ＴＬＢミス例外が、ＶＬＩＭパケットに対応するページの後に続くページから発生させられた場合、表示ビットは１の値にセットされる。そして、データフィールドは０ｘ０１にセットされる。
【０００７】
１つの実施形態では、ソフトウェア管理ユニットはレジスタから表示ビット情報を検索し、そして、さらに、ミッシングページ情報（ｍｉｓｓｉｎｇ  ｐａｇｅ  ｉｎｆｏｒｍａｔｉｏｎ）を検索するために表示ビット情報を使用してソフトウェア管理されたページテーブル内のページテーブル探索を実行する。続いて、ミッシングページ情報は、後続の命令のパケットの仮想アドレス変換および実行のためにＴＬＢモジュール内の新しいＴＬＢエントリに書き込まれる。
【図面の簡単な説明】
【０００８】
【図１】１セットの命令が実行され得るデジタル信号処理システムのブロック図である。
【図２】デジタル信号処理システム内のメモリ管理ユニットの１つの実施形態を示すブロック図である。
【図３】デジタル信号処理システム内のソフトウェア管理されたページテーブルに格納された仮想アドレスおよび物理アドレスの対応付け（ｍａｐｐｉｎｇ）の１つの実施形態を示すブロック図である。
【図４】デジタル信号処理システム内の制御レジスタファイル構造の１つの実施形態を示すブロック図である。
【図５】デジタル信号処理システム内のシステムステータス・レジスタの１つの実施形態を示すブロック図である。
【図６】ソフトウェア管理されたページテーブル内の、どのページがデジタル信号処理システム内の例外を引き起こすかを示すシステムの１つの実施形態を示すブロック図である。
【図７】ソフトウェア管理されたページテーブル内の、どのページがデジタル信号処理システム内の例外を引き起こすか示す方法の１つの実施形態を示すフロー図である。
【詳細な説明】
【０００９】
ソフトウェア管理されたページテーブル内のどのページが、例えばデジタル信号プロセッサ（ＤＳＰ）のような、マイクロプロセッサ内の例外を引き起こすか示す方法およびシステムが説明される。システムは、ＤＳＰに関して詳細に下に説明されるが、メモリモジュールからデータを検索するための命令を受け取るように、ソフトウェア管理されたページテーブル内の例外をトリガするページを示すように、および、命令のパケットの後の実行のためにマイクロプロセッサ装置内の変換索引バッファ（ＴＬＢ）モジュールに情報を挿入するように、構成されるマイクロプロセッサ装置、あるいは任意の他の演算処理装置、を使用して、システムが実装され得ることが理解されるべきである。
【００１０】
ソフトウェア管理されたＴＬＢモジュールは、例えばフェッチ命令のような、超長命令語（ＶＬＩＭ）パケット内の命令によって生成された仮想アドレスを受け取り、そして、さらに、その仮想アドレスを格納されたＴＬＢエントリ各々と比較する。
【００１１】
一致するものが存在する場合、ＴＬＢモジュールはその命令の対応するマップされた物理アドレスを出力する。
【００１２】
そうでなければ、ＶＬＩＭパケットが２ページにまたがり、第１のページがＴＬＢモジュール内のＴＬＢエントリとして存在し、別のページが格納されたＴＬＢエントリに見当たらない場合、制御レジスタのデータフィールド内の表示ビットは、ソフトウェア管理ユニットにＴＬＢミス例外を識別させるためにセットされる。ＴＬＢミス例外（ｍｉｓｓ  ｅｘｃｅｐｔｉｏｎ）が、システム内のプログラムカウンタによって識別されるＶＬＩＭパケットに対応するページから発生させられた場合には、表示ビットは０の値にセットされる。そして、データフィールドは０ｘ００にセットされる。あるいは、ＴＬＢミス例外がＶＬＩＭパケットに対応するページの後に続くページから発生させられた場合、表示ビット４６０は１の値にセットされる。そして、データフィールドは０ｘ０１にセットされる。
【００１３】
１つの実施形態では、ソフトウェア管理ユニットはレジスタから表示ビット情報を検索し、そして、さらにミッシングページ情報を検索するために表示ビット情報を使用して、ソフトウェア管理されたページテーブル内のページテーブル探索（ｐａｇｅ  ｔａｂｌｅ  ｌｏｏｋ−ｕｐ）を実行する。続いて、ミッシングページ情報は、後続の命令のパケットの仮想アドレス変換および実行のためにＴＬＢモジュール内の新しいＴＬＢエントリに書き込まれる。
【００１４】
図１は、１セットの命令が実行され得るデジタル信号処理システムのブロック図である。図１に示されるように、デジタル信号処理システム１００は、演算処理装置１１０、メモリモジュール１２０、およびメモリモジュール１２０に演算処理装置１１０を結合する１つ以上のバス１３０を含んでいる。
【００１５】
メモリモジュール１２０は、データと、例えばＶＬＩＭコンパイラーによって生成された超長命令語（ＶＬＩＭ）パケット（各ＶＬＩＭパケットは１つ以上の命令を含む）の形式のような、命令を格納する。パケットの命令は、それぞれ典型的に前もって定義した幅であり、メモリモジュール１２０の中における特定のアドレスを持っている。それは、パケットの最初の命令は、典型的にはパケットの最後の命令より低位の記憶アドレスを有するようになっている。メモリモジュール１２０内に格納された命令は、例えば命令ロードバス、データ・ロードバスおよび／またはデータ・ロード／ストアバスのような、バス１３０を介して演算処理装置１１０にロードされる。演算処理装置１１０内のメモリ管理ユニット（ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）ＭＭＵ  １９０は、ハードウェア、および／または装置１１０によって要求されたメモリアクセスを扱うように構成されたソフトウェアモジュールであり、そして、さらに中央処理装置コア（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ  ｃｏｒｅ）１４０に結合される。
【００１６】
中央処理装置コア１４０は、１つ以上のパイプライン１６０を介して１つ以上の汎用レジスタファイル構造１５０にさらに結合される。演算処理装置１１０は、さらに、１個以上のマイクロプロセッサ、デジタル信号プロセッサなどを含み得る。
【００１７】
汎用レジスタファイル構造１５０は、さらに、例えば３２個の幅３２ビットのレジスタユニット（各レジスタユニットは、単一のレジスタとして、あるいは２つの隣接したレジスタユニットの整列したペアとしてアクセス可能である）のような、１セットの汎用レジスタユニットを備える。汎用レジスタユニットは、一般に、例えば、アドレス発生、スカラー計算およびベクトル計算のような、計算上の汎用目的ために使用され、そして、一般にロード／ストア命令のアドレス、数値の命令のデータ・オペランド、およびベクトル命令のベクトル・オペランドを含んでいる、命令のすべてのオペランドを供給する。
【００１８】
演算処理装置１１０は、１セットの制御レジスタユニット（それらは、例えば、ハードウェア・ループ、述語、および／または、他の特別のオペランド、のような、特殊目的機能をサポートする）を備えている制御レジスタファイル構造１７０、および複数のシステム制御レジスタ１８０をさらに含んでいる。そして、それは、記憶管理動作を行ない、システムステータス・レジスタ（ｓｙｓｔｅｍ  ｓｔａｔｕｓ  ｒｅｇｉｓｔｅｒ）（ＳＳＲ）ユニット２００（図５に関連してさらに詳しく下に説明される。）をさらに含んでいる。
【００１９】
図２は、デジタル信号処理システム内のメモリ管理ユニットの１つの実施形態を示すブロック図である。図２に示されるように、メモリ管理ユニット（ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）１９０は、さらに１つ以上のページテーブル１９５に結合された変換索引バッファ（ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  ｂｕｆｆｅｒ）（ＴＬＢ）モジュール１９２を含んでいる。
【００２０】
１つの実施形態において、演算処理装置１１０は、仮想記憶システムを実装する。そして、ページテーブル１９５は、主記憶１２０内に含まれる物理アドレス１９３と、プログラムにより生成される仮想アドレス１９１と間の対応付けを格納するために仮想記憶システムにより使用されるデータ構造である。図３は、デジタル信号処理システム内のページテーブル１９５に格納された仮想アドレスと物理アドレスの対応付け（ｍａｐｐｉｎｇ）３００の１つの実施形態を示すブロック図である。図３に示されるように、仮想アドレスマップ３１０は、複数の仮想アドレス１９１を含んでいる。各仮想アドレス１９１は、３８ビット・タグ添付仮想アドレス（ｔａｇ−ａｐｐｅｎｄｅｄ  ｖｉｒｔｕａｌ  ａｄｄｒｅｓｓ）を形成するために、例えば仮想ページ番号（ＶＰＮ）およびページオフセットがある３２ビットのアドレスのような、仮想アドレス（ＶＡ）本体の前に付けられる、例えば個人の６ビットの識別票のような、アドレス空間識別子（ａｄｄｒｅｓｓ  ｓｐａｃｅ  ｉｄｅｎｔｉｆｉｅｒ）（ＡＳＩＤ）を含んでいる。仮想アドレスは、それぞれ、ページテーブル１９５内の物理アドレスマップ３２０内に格納された、任意の物理アドレス１９３へマッピングされ得る。
【００２１】
図２にもどって、ＴＬＢモジュール１９２は、複数のプログラムされたＴＬＢエントリ内にアドレスマッピング３００のキャッシュを格納する。ＴＬＢモジュール１９２は、例えばフェッチ命令、ロード命令、および／または、ストア命令のようなＶＬＩＭパケット内の命令により生成された仮想アドレス１９１を受け取る。そして、さらに、平行して、仮想アドレス１９１をプログラムされたＴＬＢエントリ各々と比較する。一致するものが存在する場合には、ＴＬＢモジュール１９２は、対応するマッピングされた物理アドレス１９３を出力する。そうでなく、一致するものが存在しない場合、ＴＬＢモジュール１９２は、ＣＰＵコア１４０にＴＬＢミス例外（ｍｉｓｓ  ｅｘｃｅｐｔｉｏｎ）１９４を出力する。
【００２２】
ＴＬＢモジュール１９２がハードウェア管理されたバッファであり、そして、ページテーブル１９５が同様にハードウェア管理される場合、ＣＰＵコア１４０は、指定された仮想記憶アドレス１９１へのエントリを検索するためにページテーブル１９５にアクセスする。ＣＰＵコア１４０が、エントリとその対応データを見つける場合には、そのエントリは、ＴＬＢモジュール１９２内の物理アドレス１９３に仮想アドレス１９１のさらに一致することために新しいＴＬＢエントリとして、ＴＬＢモジュール１９２内に書き込まれる。
【００２３】
ＴＬＢモジュール１９２およびページテーブル１９５が両方ともソフトウェア管理されたエンティティである場合、ＴＬＢミス例外を引き起こす際、ソフトウェアプログラムはページテーブル１９５にアクセスし、反復するサーチ過程によってミッシングページ情報を識別し、ソフトウェアにおける変換を行なわなければならない。しかしながら、ソフトウェアプログラムがページ情報の位置を知らない場合、全体の手順は、時間を消費し非能率的であるかもしれない。したがって、ソフトウェアプログラムがソフトウェア管理されたページテーブル内のミッシングページ情報の位置を識別することを可能にするための方法が必要とされる。
【００２４】
図４は、デジタル信号処理システム内の制御レジスタファイル構造の１つの実施形態を示すブロック図である。制御レジスタファイル構造１７０は、ハードウェア・ループ、述語、および／または他の特別のオペランドのような専用機能へのアクセスを提供するように構成される、例えばループレジスタ１７１、プログラムカウンタ１７２、ユーザステータスレジスタ１７３、指標（ｍｏｄｉｆｉｅｒ）レジスタ１７４、述語（ｐｒｅｄｉｃａｔｅ）レジスタ１７５、およびユーザー汎用ポインタ１７６、のような、複数の制御レジスタユニットを含む。１つの実施形態において、プログラムカウンタ（ＰＣ）１７２は、３２ビットのレジスタユニットであり、それは、システム１００内に実行される命令を含んでいる次のＶＬＩＭパケットのデータポインタを格納する。
【００２５】
図５は、デジタル信号処理システム内のシステムステータス・レジスタの１つの実施形態を示すブロック図である。図５で示されるように、１つの実施形態では、システムまたは監視ステータスレジスタ（ＳＳＲ）２００は、例えば、図６および７に関してさらに詳しく下に説明されるように、様々な例外条件の理由を含んでいる８ビットのリードオンリーのフィールドであり得る、原因（ＣＡＵＳＥ）データフィールド２１０のような、複数のデータフィールドを含んでいる。ＳＳＲ  ２００は、さらに、例えば、仮想アドレス指定の中のタグ拡張として使用される６ビットのアドレス空間識別子（ＡＳＩＤ）を含むＡＳＩＤデータフィールド２２０を含んでいる。
【００２６】
ＳＳＲ  ２００は、さらに、例えば、ユーザーモード（ビットがセットされたとき）、または監視モード（ビットがクリアされたとき）を示す単一のリード／ライトビットを含むユーザーモード（ＵＭ）データフィールド２４０、および、例外（ｅｘｃｅｐｔｉｏｎ）が受け付けられ、現在処理されていること示す単一のリード／ライトビット（その単一のビットは例外の現在の処理に対してセットされ、その命令の実行の終了時にクリアされる）を含む例外（ＥＸ）データフィールド２５０を、含み得る。
【００２７】
前記ＳＳＲ  ２００は、さらに、例えば、割込み許可／禁止（ＩＥ）データフィールド２６０、スレッド数（ＴＮＵＭ）データフィールド２７０、および、将来の処理のために予約されており、リードされた場合０の値を返すところの、１つ以上の予約済（ｒｅｓｅｒｖｅｄ）データフィールド２３０および２８０、含み得る。
【００２８】
図６は、ソフトウェア管理されたページテーブル内のどのページがデジタル信号処理システム内の例外（ｅｘｃｅｐｔｉｏｎ）を引き起こすかを示すためのシステムの１つの実施形態を示すブロック図である。図６で示されるように、ソフトウェア管理されたＴＬＢモジュール４２０は、例えばフェッチ命令のような、ＶＬＩＭパケット内の命令によって生成された仮想アドレス４１０を受け取り、そして、さらに、その仮想アドレス４１０を格納されたＴＬＢエントリ各々と比較する。一致するものが存在する場合、ＴＬＢモジュール４２０は、対応するマッピングされた物理アドレス４３０を出力する。そうでなく、一致するものが存在しない場合、ＴＬＢモジュール４２０は、ＣＰＵコア４５０にＴＬＢミス例外４４０を出力する。
【００２９】
ＶＬＩＭパケットが、２ページにまたがり、そこで、第１のページはＴＬＢモジュール４２０内のＴＬＢエントリとして格納されており、そして別のページは格納されたＴＬＢエントリに見当たらない（ｍｉｓｓｉｎｇ）場合、ＣＰＵコア４５０は、例えば、図５に示されるＳＳＲ  ２００の原因データフィールド２１０のように、ＴＬＢミス例外を識別するために、システムステータス・レジスタ（ＳＳＲ）４７０のデータフィールド内の表示ビット４６０をセットする。そして、さらに、ＣＰＵコア４５０上で動作しているソフトウェア管理ユニット（図示せず）に、そのセッティングを伝える。さらに、ＣＰＵコア４５０は、例外が受け取られ、現在処理されていることを示すために、例えばＳＳＲ  ２００のＥＸデータフィールド２５０のような、別のデータフィールド内に例外ビットをセットする。
【００３０】
ＴＬＢミス例外が、プログラムカウンタ１７２内のデータポインタによって識別されたパケットに対応するページから発生された場合には、ＣＰＵコア４５０は、表示ビット４６０に０の値を、およびＣＡＵＳＥデータフィールドに０ｘ００をセットする。あるいは、ＴＬＢミス例外が、プログラムカウンタ１７２内のデータポインタによって識別されるパケットに対応するページの後に続くページから発生された場合、ＣＰＵコア４５０は、表示ビット４６０を１の値に、そして、ＣＡＵＳＥデータフィールドを０ｘ０１にセットする。
【００３１】
１つの実施形態において、ソフトウェア管理ユニットは、ＳＳＲ  ４７０のＣＡＵＳＥデータフィールドから表示ビット情報を検索し、そして、さらに、ミッシングページ情報を検索するために表示ビット情報を使用して、ソフトウェア管理されたページテーブル４９０内のページテーブル探索４８０を実行する。続いて、ミッシングページ情報は、ＴＬＢモジュール４２０内の新しいＴＬＢエントリに書き込まれる。
【００３２】
１つの実施形態において、ＴＬＢミス例外４４０の生成に際して、行なわれたアクションは、擬似コードで以下のように示すことができる：
ＥＬＲ＝ＰＣ    ／／  ＴＬＢにおいて見当たらなかったパケットのＰＣを保存
ＳＳＲ［Ｅｘ］＝１    ／／  ＳＳＲにおける例外ビットをセット
ＳＳＲ［ＣＡＵＳＥ］＝（ＰＣページによるミス）？  ０ｘ００：０ｘ０１
ＰＣ＝（ＥＶＢ）・（４＜＜２）
図７は、ソフトウェア管理されたページテーブル内のどのページがデジタル信号処理システム内の例外を引き起こすかを示す方法の１つの実施形態を示すフローダイアグラムである。図７に示されるように、処理ブロック５１０では、命令が受け取られる。１つの実施形態において、メモリ管理ユニット１９０は、例えばフェッチ命令のような、命令を受けて、仮想アドレス変換手続きを開始する。
【００３３】
処理ブロック５２０では、仮想アドレスページ情報が検索される。１つの実施形態において、仮想アドレスページ情報は、ＶＬＩＭパケット内の命令から検索され、ＴＬＢモジュール４２０へ転送される。
【００３４】
処理ブロック５３０では、仮想アドレスページ情報は、格納された仮想ページエントリと比較される。１つの実施形態において、ＴＬＢモジュール４２０は、一致するものを見つけるために、検索された仮想アドレスページ情報を、それぞれのＴＬＢエントリ内に格納された仮想ページエントリと比較する。  
処理ブロック５４０では、有効な一致するものがあるかどうかの決定がなされる。１つの実施形態で、ＴＬＢモジュール４２０が、その格納されたＴＬＢエントリ内に一致するものを見つけた場合には、処理ブロック５７０において、仮想アドレスページ情報は、一致する格納されたＴＬＢエントリからの物理アドレスページ情報と置き換えられる。１つの実施形態において、ＴＬＢモジュール４２０は、仮想アドレス変換を行ない、そして、受信した命令からの仮想アドレスページ情報を、ＴＬＢエントリ内に格納された物理アドレスページ情報に置き換える。
【００３５】
１つの実施形態において、ＴＬＢモジュール４２０が、その格納されたＴＬＢエントリ内に一致するものを見つけない場合には、ＴＬＢモジュール４２０は、ＴＬＢミス例外を生成し、ＳＳＲ  ４７０の原因（ＣＡＵＳＥ）データフィールド内の表示ビット４６０をセットするようにＣＰＵコア４５０に促す。
【００３６】
次に、処理ブロック５５０では、識別ビット情報がレジスタ４７０から検索される。１つの実施形態では、ソフトウェア管理ユニットは、ＳＳＲ  ４７０の原因データフィールドから識別ビット情報を検索する。
【００３７】
処理ブロック５６０では、ページテーブルは、対応する仮想ページエントリ情報を検索するためにアクセスされる。１つの実施形態では、ソフトウェア管理ユニットはページテーブル４９０にアクセスし、対応する仮想ページエントリ情報を検索するために検索された識別ビット情報を使用して、ページテーブル探索を実行する。それは、次に、ＴＬＢモジュール４２０内のそれぞれのＴＬＢエントリに入力される。
【００３８】
最後に、その手順は、処理ブロック５７０にジャンプする。そこではＴＬＢモジュール４２０は、仮想アドレス変換を行ない、受信した命令からの仮想アドレスページ情報を、新しいＴＬＢエントリ内に格納された物理アドレスページ情報に置き換える。
【００３９】
当業者は、情報と信号が、様々な異なる技術および技法のうちの任意のものを使用して表されてもよいと理解するだろう。例えば、上記の説明の全体にわたって言及されているデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁界、磁気粒子、光学界、光学粒子、あるいはそれらの任意の組合せにより表され得る。
【００４０】
当業者は、ここに開示された実施形態に関して説明された、様々な実例となる論理ブロック、モジュール、回路、およびアルゴリズム・ステップが、電子ハードウェア、コンピュータ・ソフトウェア、あるいは両者の組合せとして実装されてもよいことをさらに認識するだろう。ハードウェアとソフトウェアのこの互換性を明白に示すために、様々な実例となるコンポーネント、ブロック、モジュール、回路およびステップは、それらの機能の点から一般に上記で説明された。そのような機能がハードウェアまたはソフトウェアが実装されるかどうかは、全体のシステムに課された特定のアプリケーションと設計制約に依存している。当業者は、説明された機能を、各特定のアプリケーションのために様々なやり方で実装することができる。しかし、そのような実装の決定は、発明の範囲からの逸脱を引き起こすとは解釈されるべきでない。
【００４１】
ここに示された実施形態に関して説明された、様々な実例となる、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向けＩＣ（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは他のプログラマブルロジックデバイス、個別のゲートかトランジスター・ロジック、個別のハードウェア構成機器、あるいは、ここに説明された機能を行なうように設計されたそれらの任意の組合せ、により実装されてもよいし、実行されてもよい。汎用プロセッサは、マイクロプロセッサであり得るが、しかし、他の選択肢において、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラあるいは状態機械であってもよい。プロセッサは、さらに、コンピューティング装置（例えばＤＳＰとマイクロプロセッサの組合せ、複数個のマイクロプロセッサ、ＤＳＰコアに結合する１個以上のマイクロプロセッサ、あるいは他のそのような構成）の組合せとして実装されてもよい。
【００４２】
ここに開示された実施形態に関して説明された方法またはアルゴリズムのステップは、ハードウェアにより直接、プロセッサにより実行されるソフトウェアで、あるいは２つの組合せにおいて、具体化され得る。これらの実施形態が、（コンピュータのＣＰＵのような）プロセッサまたは処理コアのいくつかの形態上で実行される支援ソフトウェアプログラムとして、あるいは、その支援ソフトウェアプログラムに使用され得ること、あるいは、そのほかに、機械可読媒体かコンピュータ可読媒体内で、あるいは、その上で実装あるいは実現されることは、理解されるべきである。機械可読媒体は、機械（例えばコンピュータ）により可読の形式において、情報を、格納すること、あるいは送信することのための任意のメカニズムも含んでいる。例えば、機械可読媒体は、ＲＡＭメモリ、フラッシュ・メモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取外し可能ディスク、ＣＤ−ＲＯＭあるいは、当該技術分野で知られた記憶媒体の他の形式を含んでいる。典型的な記憶媒体は、記憶媒体から情報を読み出すことができ、そして記憶媒体に情報を書き込みことができるようなプロセッサに結合される。あるいは、記憶媒体はプロセッサに不可欠かもしれない。プロセッサと記憶媒体は、ＡＳＩＣ内に存在してもよい。ＡＳＩＣはユーザー端末に存在してもよい。あるいは、プロセッサと記憶媒体はユーザー端末の個別部品として存在してもよい。
【００４３】
開示された実施形態の以前の説明は、任意の当業者が、本発明を作るか使用することを可能にするために提供される。これらの実施形態の様々な修正は、当業者に容易に明白になる。また、ここに定義された一般的な法則は、発明の趣旨か範囲から外れずに、他の実施形態に適用されてもよい。したがって、その発明は、ここに示された実施形態に制限されるようには意図されないが、ここに示された法則および新規な特徴と一致する最も広い範囲を与えられるべきである。
【図１】
2009544104.tif 000003
【図２】
2009544104.tif 000004
【図３】
2009544104.tif 000005
【図４】
2009544104.tif 000006
【図５】
2009544104.tif 000007
【図６】
2009544104.tif 000008
【図７】
2009544104.tif 000009
【国際調査報告】
2009544104.tif 000010
2009544104.tif 000011