(57)【要約】【課題】改良されたＤＭＡＣ変換メカニズムのためのシステム及び方法を提供する。【解決手段】ＤＭＡコマンドは、ＤＭＡコマンドの転送サイズと、コンピュータ・システムが一度に転送するデータの量とに基づいて“展開”される。第１ＤＭＡリクエストについて、ＤＭＡキューは、アドレス変換を行うようにメモリ管理ユニットに要求する。ＤＭＡキューはＭＭＵから実ページ番号を受け取り、その後のロールアウト・リクエストに関してＤＭＡキューは、転送が次のページ内へ移るまではＭＭＵにアクセスせずに、その実ページ番号をバス・インターフェース・ユニットに提供する。ロールアウト・ロジックは、各ＤＭＡリクエスト後にＤＭＡコマンドの転送サイズをデクリメントし、新しいページに達したか否かを判定し、ＤＭＡコマンドが完了したか否かを判定し、後のＤＭＡリクエストのためにライトバック情報をＤＭＡキューに送る。【選択図】図３
2009512919.tif 000002
【特許請求の範囲】
【請求項１】
複数のＤＭＡコマンド・フィールドを含むＤＭＡコマンドをＤＭＡキューにおいて選択するステップと、
前記ＤＭＡコマンド・フィールドのうちの１つに含まれている実ページ番号が有効であるか否かを判定するステップと、
前記実ページ番号が有効であると判定したことに応答して、前記ＤＭＡコマンドを処理するために前記実ページ番号を前記ＤＭＡキューから提供するステップと、
を含む、コンピュータにより実行される方法。
【請求項２】
前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている、前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べるステップと、
前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送るステップと、
前記ＤＭＡコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供するステップと、
を更に含む、請求項１の方法。
【請求項３】
もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定するステップを更に含む、請求項２の方法。
【請求項４】
前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定するステップと、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記複数のＤＭＡコマンド・フィールドのうちの１つに格納するステップと、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記実アドレス有効ビットをセットするステップと、
を更に含む、請求項２の方法。
【請求項５】
デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取るステップと、
前記ライトバック情報を前記複数のＤＭＡコマンド・フィールドに格納するステップと、
を更に含む、請求項１の方法。
【請求項６】
前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている転送サイズを確認するステップと、
対応するＤＭＡコマンドのために転送されるデータの量に対応する最大転送サイズ許容値を検出するステップと、
前記最大転送サイズ許容値を前記転送サイズから引いて前記デクリメントされた転送サイズをもたらすステップと、
を更に含む、請求項５の方法。
【請求項７】
前記デクリメントされた転送サイズに基づいて、前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認するステップと、
前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれているキュー・エントリ有効ビットをリセットするステップと、
を更に含む、請求項６の方法。
【請求項８】
前記引くステップの後に、前記ＤＭＡコマンドに対応する実効アドレスをインクリメントするステップと、
インクリメントされた前記実効アドレスに基づいてページの終わりに達したか否かを判定するステップと、
前記ページの終わりに達したと判定したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている実アドレス有効ビットをリセットするステップと、
を更に含む、請求項６の方法。
【請求項９】
前記複数のＤＭＡコマンド・フィールドのうちの少なくとも１つは、キュー・エントリ有効ビット・フィールド、実アドレス有効ビット・フィールド、及び実ページ番号フィールドから成るグループから選択される、請求項１の方法。
【請求項１０】
前記方法はブロードバンド・プロセッサ・アーキテクチャを用いて実行され、前記ブロードバンド・プロセッサ・アーキテクチャは複数の異種プロセッサと、共通メモリと、共通バスとを含み、
前記複数の異種プロセッサは、異なる命令セットを使用し、前記共通メモリ及び前記共通バスを共有する、
請求項１の方法。
【請求項１１】
前記ブロードバンド・プロセッサ・アーキテクチャはチップ上のシステム（ａ  ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である、請求項１０の方法。
【請求項１２】
１つ以上のプロセッサと、
前記プロセッサによりアクセスされ得るメモリと、
前記プロセッサによりアクセスされ得る１つ以上の不揮発性記憶装置と、
ＤＭＡコマンドを処理するためのＤＭＡコマンド・ツールと、
を含む情報処理システムであって、
前記ＤＭＡコマンド・ツールは、
前記メモリに含まれるＤＭＡキューにおいて、複数のＤＭＡコマンド・フィールドを含むＤＭＡコマンドを選択し、
前記ＤＭＡコマンド・フィールドのうちの１つに含まれている実ページ番号が有効であるか否かを判定し、
前記実ページ番号が有効であると判定したことに応答して、前記ＤＭＡコマンドを処理するために前記実ページ番号を前記ＤＭＡキューから提供することができる、前記情報処理システム。
【請求項１３】
前記ＤＭＡコマンド・ツールは、更に、
前記メモリに含まれている、前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べ、
前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送り、
前記ＤＭＡコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供し、
もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定することができる、
請求項１２の情報処理システム。
【請求項１４】
前記ＤＭＡコマンド・ツールは、更に、
前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定し、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記メモリに含まれている前記複数のＤＭＡコマンド・フィールドのうちの１つに格納し、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれる前記実アドレス有効ビットをセットすることができる、
請求項１３の情報処理システム。
【請求項１５】
前記ＤＭＡコマンド・ツールは、更に、
デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取り、
前記ライトバック情報を前記メモリに含まれている前記複数のＤＭＡコマンド・フィールドに格納することができる、
請求項１２の情報処理システム。
【請求項１６】
前記ＤＭＡコマンド・ツールは、更に、
前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている転送サイズを確認し、
対応するＤＭＡコマンドのために転送されるデータの量に対応する最大転送サイズ許容値を検出し、
前記最大転送サイズ許容値を前記転送サイズから引いて前記デクリメントされた転送サイズをもたらし、
前記デクリメントされた転送サイズに基づいて、前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認し、
前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれているキュー・エントリ有効ビットをリセットすることができる、
請求項１５の情報処理システム。
【請求項１７】
前記情報処理システムはブロードバンド・プロセッサ・アーキテクチャであり、前記ブロードバンド・プロセッサ・アーキテクチャは複数の異種プロセッサと、共通メモリと、共通バスとを含み、前記複数の異種プロセッサは、異なる命令セットを使用し、前記共通メモリ及び前記共通バスを共有する、請求項１２の情報処理システム。
【請求項１８】
前記情報処理システムはチップ上のシステム（ａ  ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である、請求項１２の情報処理システム。
【請求項１９】
前記情報処理システムは、ゲーム機、ノートブック・コンピュータ、パーソナル・コンピュータ、及びハンドヘルド装置から成るグループから選択されたシステムに含まれる、請求項１２の情報処理システム。
【請求項２０】
コンピュータ可読コードを有するコンピュータ操作可能な媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読コードは、
ＤＭＡキューにおいて、複数のＤＭＡコマンド・フィールドを含むＤＭＡコマンドを選択し、
前記ＤＭＡコマンド・フィールドのうちの１つに含まれている実ページ番号が有効であるか否かを判定し、
前記実ページ番号が有効であると判定したことに応答して、前記ＤＭＡコマンドを処理するために前記実ページ番号を前記ＤＭＡキューから提供することができる、
前記コンピュータ・プログラム製品。
【請求項２１】
前記コンピュータ可読コードは、更に、
前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べ、
前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送り、
前記ＤＭＡコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供し、
もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定することができる、
請求項２０のコンピュータ・プログラム製品。
【請求項２２】
前記コンピュータ可読コードは、更に、
前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定し、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記複数のＤＭＡコマンド・フィールドのうちの１つに格納し、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれる前記実アドレス有効ビットをセットすることができる、
請求項２１のコンピュータ・プログラム製品。
【請求項２３】
前記コンピュータ可読コードは、更に、
デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取り、
前記ライトバック情報を前記複数のＤＭＡコマンド・フィールドに格納することができる、
請求項２０のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、改良されたＤＭＡコントローラ変換メカニズムのためのシステム及び方法に関する。特に、本発明は、ＤＭＡコマンド・ロールアウト時に実ページ番号を使用するために実ページ番号をＤＭＡコマンド・フィールドに格納するためのシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータ・システム・アプリケーションは、通例、データを格納し検索するために実効アドレス又は間接アドレスを指定する。データ格納又は検索リクエストを実行するために、コンピュータ・システムは、実効アドレスを、メモリ内の物理的位置に対応する実アドレス又は物理アドレスに変換する。
【０００３】
コンピュータ・システムは、通例、実効アドレスから実アドレスへの変換を提供するメモリ管理ユニット（ＭＭＵ）を含む。１つの構成では、ＤＭＡキューは、常に、全てのロード命令及び格納命令についてアドレス変換のためにＭＭＵにアクセスし、それは待ち時間を増大させ、より多くの電力を消費する。
【０００４】
他の１つの構成は二次レベルのＭＭＵと組み合わせて実効アドレス実アドレス変換器（ｅｆｆｅｃｔｉｖｅ  ｔｏ  ｒｅａｌ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｏｒ（ＥＲＡＴ））を使用する。ＥＲＡＴは、前のアドレス変換を記憶したルックアップ・テーブルを含む。ＤＭＡキューがＤＭＡリクエスト（実効アドレスを含む）をＥＲＡＴに送ると、ＥＲＡＴは、実効アドレス一致を求めてそのルックアップ・テーブルを参照する。もし一致があれば、ＥＲＡＴは対応する実アドレスを提供し、ＭＭＵアクセスはバイパスされる。しかし、もしＥＲＡＴがＤＭＡリクエストの実効アドレスに対応するエントリを突き止めなければ、ＥＲＡＴは“ミス”をＭＭＵに送り、ＭＭＵは上記第１の構成に関して論じられたものと同じステップを実行する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＭＭＵは、対応する実ページ番号を特定すると、その実ページ番号をＥＲＡＴに送り、それをＥＲＡＴは自分のテーブルにロードする。この構成を用いて、ＥＲＡＴは回路性能向上を提供する。なぜならば、ＥＲＡＴが実効アドレスを突き合わせるときにＭＭＵはアクセスされなくても良いからである。しかし、見出される難題は、ＥＲＡＴが良好な“ヒット率”を得るためにはＥＲＡＴのルックアップ・テーブルが多数のエントリを含んでいなければならないことであり、これは大量の電力と物理的領域とを消費し得る。更に、見いだされるもう一つの難題は、ＥＲＡＴが依然として各ＤＭＡリクエストのためにルックアップを実行することであり、これも待ち時間を増大させる。
【０００６】
従って、必要とされるのは、改良された実効アドレスから実アドレスへの変換メカニズムのためのシステム及び方法である。
【課題を解決するための手段】
【０００７】
ＤＭＡコマンド・ロールアウト時に実ページ番号を使用するために実ページ番号をＤＭＡコマンド・フィールドに格納するためのシステム及び方法を用いて上記の難題が解決されることが分かった。ＤＭＡキューは、メモリ管理ユニットから実ページ番号を受け取って、その実ページ番号を後のＤＭＡリクエストのために対応するＤＭＡコマンド・フィールドに格納する。この様に、ＤＭＡキューはアドレス変換のためにＭＭＵに頻繁にはアクセスせず、その結果として、待ち時間及び電力消費が少ないことを通してシステム性能を向上させる。
【０００８】
ＤＭＡキューは、対応するＤＭＡマコマンド・フィールドを有するＤＭＡコマンドを含み、ＤＭＡコマンド・フィールドは１）キュー・エントリ有効ビット、２）実効アドレス・フィールド、３）実アドレス有効ビット、４）実ページ番号フィールド、５）転送タイプ・フィールド、及び６）転送サイズ・フィールドを含む。キュー・エントリ有効ビットは、対応するＤＭＡコマンドが有効であるか否かを特定する。実効アドレス・フィールドは、対応するＤＭＡコマンドの実効アドレスを含む。実アドレス有効ビットは、実ページ番号フィールド内の実ページ番号が有効であるか否かを特定する。転送タイプ・フィールドは、ロード又は格納などの、ＤＭＡコマンドのタイプを特定する。また、転送サイズ・フィールドは、残っている転送されるべきデータの量を含む。
【０００９】
ＤＭＡキューは、何時でも発行され得る（例えば、依存性無し）ＤＭＡコマンドを特定する。コマンドがＤＭＡキューからディスパッチされた後、下流側のロジックは、アドレス変換のためにＭＭＵにアクセスするか否かを決定するためにＤＭＡコマンドの対応する実アドレス有効ビットを調べる。もしＤＭＡコマンドの実アドレス有効ビットがセットされていれば、実ページ番号フィールドに含まれている実ページ番号はマルチプレクサを通してバス・インターフェース・ユニットに送られ、そのマルチプレクサはＤＭＡキューから実ページ番号を受け取るように構成されている。更に、ＤＭＡキューはＤＭＡリクエスト（実効アドレスを含む）とコマンド・パラメータ（転送サイズを含む）とをロールアウト・ロジックに送る。ロールアウト・ロジックは、転送サイズをデクリメントし、ＤＭＡキューが現存する実ページ番号を後のロールアウトＤＭＡリクエストのために使用し得るか否かを判定し、“ライトバック情報”をＤＭＡキューに送る。次に、ＤＭＡキューは、そのライトバック情報をＤＭＡコマンドのコマンド・フィールドに格納する。この様な次第で、ＤＭＡキューが同じＤＭＡコマンドを“ロールアウト”して他のＤＭＡリクエストを実行するとき、下流側のロジックは、実アドレス有効ビットを調べ、もしそれがセットされていれば実ページ番号をＤＭＡコマンドの実ページ番号出力から抽出して、それをバス・インターフェース・ユニットに送る。その結果として、ＭＭＵは頻繁にはアクセスされず、そのために全体としてのシステムの性能が向上する。
【００１０】
１つの実施態様では、実アドレス有効ビットの値に関わらず、ＤＭＡリクエストはハードウェア制約により自動的にＭＭＵに送られる。この実施態様では、ＤＭＡロジックは、変換リクエストが必要とされるか否かを判定するために実アドレス有効ビットを他のパラメータと共に使用する。変換リクエスト又は実効アドレス有効リクエストはＤＭＡロジックからＭＭＵに送られる。このリクエストがアサートされれば、ＭＭＵは対応する実ページ番号を突き止めて、出力される新しい実ページ番号を選択するマルチプレクサを通して新しい実ページ番号をバス・インターフェース・ユニットに送る。更に、ＭＭＵはその新しい実ページ番号をＤＭＡキューに送り、ここでそれは後のＤＭＡリクエストのために対応する実ページ番号フィールドに書き戻される。
【００１１】
ＭＭＵがアドレス変換を行うとき、ロールアウト・ロジックはＤＭＡリクエストをコマンド・パラメータと共に受け取る。ロールアウト・ロジックは、転送サイズをデクリメントし、ＭＭＵがアドレス変換に成功したか否かを判定し、ライトバック情報をＤＭＡキューに送り、それをＤＭＡキューはＤＭＡコマンドの対応するコマンド・フィールドに後のＤＭＡリクエストのために格納する。
【００１２】
叙上は要約であるので、やむを得ずに単純化、一般化、及び細部の省略を含んでおり、従って、この要約が単なる例証に過ぎなくて、決して限定を意図するものではないことが当業者に認められるであろう。請求項のみによって定義される本発明の他の側面、独創的特徴、及び利点は、以下に提示される非限定的な詳しい記述において明らかになるであろう。
【００１３】
添付図面を参照することにより、本発明はより良く理解され、その多くの目的、特徴、及び利点は当業者にとって明らかにされ得る。
【発明を実施するための最良の形態】
【００１４】
下記は、本発明の例について詳しい記述を提供するべく意図されており、本発明自体を限定すると解されるべきではない。この記述の後の請求項で定義されている発明の範囲に任意の数の変形が属し得る。
【００１５】
図１は、実効アドレスを実ページ番号に変換するメモリ管理ユニット（ＭＭＵ）を示す線図である。図１は、ＤＭＡコマンド（例えば、メモリ・ロード及び格納オペレーション）を処理するために現存する技術により使用されるアドレス変換構成を示す。ＤＭＡコマンドは、ＤＭＡコマンドの転送サイズと、コンピュータ・システムが一度に転送するデータの量とに基づいて“展開（ｕｎｒｏｌｌ）”される。例えば、コンピュータ・システムが１２８バイト・インクリメントでデータを転送し、ＤＭＡコマンドが５１２バイトであるならば、そのＤＭＡコマンドは４個のＤＭＡリクエスト（１２８×４＝５１２）に展開される。
【００１６】
図１はＤＭＡキュー１００、ＭＭＵ１２０、及びバス・インターフェース・ユニット１４０を含む。ＤＭＡキュー１００は何時でも発行され得る（例えば、依存性無し）ＤＭＡコマンドを特定してＤＭＡリクエスト１１０をＭＭＵ１２０に送り、それは、ＤＭＡコマンドに対応する実効アドレスを含む。ＭＭＵ１２０は、ＤＭＡリクエスト１１０を受け取って、実効アドレスと対応する実ページ番号とを含むルックアップ・テーブルにアクセスする。ＤＭＡリクエスト１１０に含まれている実効アドレスがそのルックアップ・テーブルに格納されている１つの実効アドレスと一致すれば、ＭＭＵ１２０は対応する実ページ番号１３０をバス・インターフェース・ユニット１４０に送る。
【００１７】
これに反して、もしＭＭＵ１２０がＤＭＡリクエスト１１０に対応する一致実効アドレスを発見しなければ、ＭＭＵ１２０は“ミス”があったことをＤＭＡキュー１００に知らせる。ＭＭＵ１２０は、また、変換情報をメモリからリクエストしてルックアップ・テーブルにロードする。ロード動作が完了した後、ＭＭＵ１２０は、前にミスした同じＤＭＡリクエストを再送するようにＤＭＡキュー１００に信号する。
【００１８】
この様に、図１に示されている構成は、たとえＤＭＡリクエストが同じＤＭＡコマンドについての複数のＤＭＡリクエストの一部であっても、各ＤＭＡリクエストについてルックアップ又はメモリ・アクセスを実行し、それは非能率的で、プロセッサの性能を低下させる。
【００１９】
図２は、実効アドレス実アドレス変換器（ＥＲＡＴ）と、アドレス変換を実行するメモリ管理ユニット（ＭＭＵ）とを示す線図である。図２は、代わりのアドレス変換構成を示す。ＥＲＡＴ２００は、前のアドレス変換結果を追跡するので、各々のＤＭＡリクエストについてＭＭＵ１２０にアクセスするわけではない。しかし、後述されるように、ＥＲＡＴ２００は依然として各ＤＭＡリクエストについてルックアップを実行し、それも電力及び記憶領域に関して非能率的ではあるが図１の構成より改善した待ち時間を有する。
【００２０】
ＤＭＡキュー１００は何時でも発行され得るＤＭＡコマンドに対応するＤＭＡリクエスト１１０をＥＲＡＴ２００に送り、それはそのＤＭＡコマンドに対応する実効アドレスを含む。ＥＲＡＴ２００は、実効アドレスと、対応する実ページ番号とを含むルックアップ・テーブルにアクセスする。ＥＲＡＴ２００は、ＤＭＡリクエスト１１０に含まれている実効アドレスについてのエントリをルックアップ・テーブルが含むか否かを調べる。もしＤＭＡリクエスト１１０に含まれている実効アドレスがルックアップ・テーブルに格納されている１つの実効アドレスと一致すれば、ＥＲＡＴ２００は実ページ番号１３０をバス・インターフェース・ユニット１４０に送る。ＤＭＡキュー１００、ＤＭＡリクエスト１１０、実ページ番号１３０、及びバス・インターフェース・ユニット１４０は、図１に示されているものと同じである。
【００２１】
一方、もしＥＲＡＴ２００がＤＭＡリクエスト１１０の実効アドレスに対応するマッチ（一致するもの）を発見しなければ、ＥＲＡＴ２００はミス２２０をＭＭＵ１２０に送る。ＭＭＵ１２０は、このとき、ＤＭＡリクエスト１１０に含まれている実効アドレスについてアドレス変換を行う。
【００２２】
ＭＭＵ１２０は、ＤＭＡリクエスト１１０の実効アドレスと一致するものがあるか否かを調べるために（例えば、図１で論じられたステップ）、実効アドレスと対応する実ページ番号とを含む自分のルックアップ・テーブルにアクセスする。もしルックアップ・テーブルがその実効アドレスを含んでいれば、ＭＭＵ１２０はそれに対応する実ページ番号を特定してＭＭＵ  ＲＰＮ２３０をＥＲＡＴ２００に送る。ＥＲＡＴ２００は、実効アドレスとＭＭＵ  ＲＰＮ２３０とを、後の参照のために自分のルックアップ・テーブルに含める。更に、ＤＭＡリクエストは再送されなければならない。そのリクエストが再び発行されると、ＥＲＡＴ２００はその実効アドレスを突き合わせ、該ＲＰＮをバス・インターフェース・ユニットに供給する。ＭＭＵ１２０は、図１に示されているものと同じである。
【００２３】
もしＭＭＵ１２０がＤＭＡリクエスト１００の実効アドレスに対応するエントリを自分のルックアップ・テーブルにおいて特定しなければ、ＭＭＵ１２０は正しいアドレス変換を得るためにメモリにアクセスする（例えば、図１で論じられたステップ）。ＭＭＵ１２０がＤＭＡリクエスト１００の実効アドレスと対応する実ページ番号を特定すると、ＭＭＵ１２０はＭＭＵ  ＲＰＮ２３０をＥＲＡＴ２００に送り、それをＥＲＡＴ２００は自分のルックアップ・テーブルに格納する。ＤＭＡリクエストは再び発行されなければならず、そのときＥＲＡＴ２００は実効アドレスを突き合わせてＲＰＮ１３０をＢＩＵ１４０に供給する。理解され得るように、たとえＤＭＡリクエストが同じＤＭＡコマンドについての複数のＤＭＡリクエストの一部であったとしても、ＤＭＡキュー１００は各々のＤＭＡリクエストについてアドレス変換を実行するためにＥＲＡＴ２００にアクセスする。
【００２４】
図３は、ＤＭＡキューがＭＭＵから実ページ番号を受け取って、その実ページ番号を後のＤＭＡリクエストのために対応するＤＭＡコマンド・フィールドに格納することを示す線図である。この様なものとして、図３に示されている構成は、図１及び２に示されている構成より効率的である。
【００２５】
ＤＭＡキュー３００は、対応するＤＭＡマコマンド・フィールドを有するＤＭＡコマンドを含み、ＤＭＡコマンド・フィールドは１）キュー・エントリ有効ビット、２）実効アドレス・フィールド、３）実アドレス有効ビット、４）実ページ番号フィールド、５）転送タイプ、及び６）転送サイズ・フィールドを含む。キュー・エントリ有効ビットは、対応するＤＭＡコマンドが有効であるか否かを特定する。実効アドレス・フィールドは、対応するＤＭＡコマンドの実効アドレスを含む。実アドレス有効ビットは、実ページ番号フィールドに含まれている実ページ番号が有効であるか否かを特定する。転送タイプは、ロード又は格納などの、ＤＭＡコマンドのタイプを特定する。また、転送サイズ・フィールドは、残っている転送されるべきデータの量を含む（ＤＭＡコマンド・フィールドに関して、更に詳しくは図５及び対応するテキストを参照されたい）。
【００２６】
ＤＭＡキュー３００は、何時でも発行され得る（例えば、依存性無し）ＤＭＡコマンドを特定し、アドレス変換のためにＭＭＵ３２０にアクセスするか否かを決定するためにＤＭＡコマンドの対応する実アドレス有効ビットを調べる。もしＤＭＡコマンドの実アドレス・ビットがセットされていれば、ＤＭＡキュー３００は実ページ番号フィールドから実ページ番号を抽出して実ページ番号３６０をマルチプレクサ３７０を通してバス・インターフェース・ユニット３８０に送り、このマルチプレクサはＤＭＡキュー３００から実ページ番号を受け取るように構成されている。更に、ＤＭＡキュー３００はロールアウト・ロジック３３０にＤＭＡリクエスト３０８及びコマンド・パラメータ３２５を送り、それはＤＭＡコマンドの転送サイズを含む。ロールアウト・ロジック３３０は、転送サイズをデクリメントし、ＤＭＡキュー３００が現存する実ページ番号を後のロールアウトＤＭＡリクエストのために使用し得るか否かを判定し、ライトバック情報３４０をＤＭＡキュー３００に送る（ロールアウト処理に関して、更に詳しくは図７及び対応するテキストを参照されたい）。次に、ＤＭＡキュー３００は、そのライトバック情報３４０をＤＭＡコマンドのコマンド・フィールドにロードする。従って、ＤＭＡキュー３００が他のＤＭＡリクエストを実行するために同じＤＭＡコマンドを“ロールアウト”するとき、ＤＭＡキュー３００は、実アドレス有効ビットを調べ、もしそれがセットされていれば実ページ番号をＤＭＡコマンドの実ページ番号フィールドから抽出して、実ページ番号３６０をバス・インターフェース・ユニット３８０に送る。その結果として、ＭＭＵ３２０は頻繁にはアクセスされず、そのために全体としてのシステムの性能が向上する。
【００２７】
ロジック３１０はＭＭＵ３２０に送られる実効アドレス（ＥＡ）リクエスト有効３１５を制御し、それは数個の要素に基づく。第１に、実モードでは、ＭＭＵ３２０はどの様な変換も行わないので、ＥＡリクエスト有効３１５はアサート解除される。第２に、“同期”及び“エイエイオ（ｅｉｅｉｏ）”のようなコマンド・タイプは変換を必要としないので、ＥＡリクエスト有効３１５はアサート解除されたままである。第３に、この始めの２つの条件が無いとき、ロジック３１０は、ＥＡリクエスト有効３１５がアサートされるべきか否かを判定するためにＲＡ有効３０５を使用する。
【００２８】
ロジック３１０は、ＤＭＡコマンドの実アドレス有効ビットがセットされておらず（上記第３の条件）、従ってアドレス変換を必要とすることを確認すると、ロジック３１０はＥＡリクエスト有効３１５をアクティブ化する。同時に、ＤＭＡキュー３００はＤＭＡリクエスト３０８をＤＭＡキュー３００からＭＭＵ３２０に送る。ＭＭＵ３２０は、対応する実ページ番号を突き止めて新しい実ページ番号３５０をマルチプレクサ３７０を通してバス・インターフェース・ユニット３８０に送り、該マルチプレクサは新しい実ページ番号３５０を入力として選択する。更に、ＭＭＵ３２０は新しい実ページ番号３５０をＤＭＡキュー３００に送り、それをＤＭＡキュー３００は後のＤＭＡリクエストのために対応する実ページ番号フィールドにロードする。
【００２９】
もしＭＭＵ３２０がＤＭＡリクエスト３０８の実効アドレスに対応するエントリを自分のルックアップ・テーブルにおいて確認しなければ、ＭＭＵ３２０は、正しいアドレス変換を得るためにメモリにアクセスする。ＭＭＵがその変換をメモリからロードするまではコマンドが再発行されないように、該ＤＭＡコマンドについてＭＭＵ発行依存性がセットされる。ＭＭＵ発行依存性がクリアすると、ＤＭＡコマンドが再発行され、その実効アドレスは“ヒット”を生じさせる。更に詳しくは、図７及び８と、対応するテキストとを参照されたい。
【００３０】
ＥＡリクエスト有効３１５の状態を決定するために始めの２つの要素（上で論じられた）が存在しないときにＲＡ有効３０５がアサートされているとロジック３１０が確認したときには、変換は不要であるので、ロジック３１０はＥＡリクエスト有効３１５をアサートしない。この場合、ＤＭＡ３００は実ページ番号３６０をマルチプレクサ３７０を介してＢＩＵ３８０に供給する。
【００３１】
ロールアウト・ロジック３３０は、ＤＭＡリクエスト３０８とコマンド・パラメータ３２５とを受け取る。ロールアウト・ロジック３３０は、転送サイズをデクリメントし、ＭＭＵ３２０がアドレス変換に成功したか否かを判定し、ライトバック情報３４０をＤＭＡキュー３００に送り、それをＤＭＡキュー３００はＤＭＡコマンドの対応するコマンド・フィールドに格納する（ロールアウト処理に関して、更に詳しくは図７及び対応するテキストを参照されたい）。
【００３２】
図４は、３つの異なる構成に基づく、複数のＤＭＡリクエストとそれらのアドレス変換場所とを示すテーブルである。テーブル４００は、図１−３に示されている構成に夫々対応する列４２０から４４０までを含む。列４２０から４４０までは、ＤＭＡコマンドがロールアウトされるときにアドレス変換を提供するためのＤＭＡリクエスト・アクティビティを含む。図４に示されている例は、４ＫＢのデータを転送することを要求するＤＭＡコマンドに対応し、コンピュータ・システムはデータを１２８バイト・インクリメントで転送する。従って、そのＤＭＡコマンドを実行するために、３２個のリクエスト（列４１０により示される）が必要とされる（１２８Ｂ×３２＝４ＫＢ）。
【００３３】
列４２０は、図１に示されている実施態様について、ＤＭＡキューが３２個のリクエストの各々についてメモリ管理ユニットにアクセスすることを示す。列４３０は、図２に示されている実施態様について、第１リクエストについてはＤＭＡキューがＥＲＡＴにアクセスし、それがＭＭＵにアクセスすることを示す。２番目から３２番目のリクエストについては、ＤＭＡキューはＥＲＡＴにアクセスし、それはＥＲＡＴのルックアップ・テーブルから実ページ番号を提供するので、ＭＭＵはアクセスされない。
【００３４】
列４４０は、本書に記載されている発明について（図３）、ＤＭＡキューが第１リクエストについてＭＭＵにアクセスし、その後は、最初のＤＭＡリクエスト後にＤＭＡキューが実ページ番号をＤＭＡコマンドの対応するＤＭＡコマンド・フィールドに格納するので、２番目から３２番目までのリクエストについては自分自身で実ページ番号をバス・インターフェース・ユニットに提供することを示す。
【００３５】
図５は、ＤＭＡコマンド及び対応するコマンド・フィールドを有するＤＭＡキューを示す線図である。ＤＭＡキュー３００は、図３に示されているものと同じであり、特定のＤＭＡコマンドに対応するＤＭＡコマンド・フィールド（列５１０から５６０まで）を含む。
【００３６】
列５１０は、対応するＤＭＡコマンドが有効であるか否かを表すキュー・エントリ有効ビットを含む。ＤＭＡコマンドは、対応するデータの全体が転送されるまでは有効であり続ける。例えば、データを１２８バイト・インクリメントで転送するシステムと１２８バイト以下のデータを転送することを要求するＤＭＡコマンドとについては、キュー・エントリ有効ビットは１転送の間有効であり続け、その後にリセットされる。他の１つの例では、１２８バイト・インクリメントでデータを転送するシステムと、５１２バイトのデータを転送することを要求するＤＭＡコマンドとについては、キュー・エントリ有効ビットは４つの転送がバス・インターフェース・ユニットに対して首尾よく行われるまで（１２８×４）有効であり続け、その後にキュー・エントリ有効ビットはリセットされる。
【００３７】
列５２０はＤＭＡコマンド実効アドレスを含み、これは実ページ番号に変換されて列５４０に格納される。列５３０は、列５４０に含まれている実ページ番号が有効であるか否かを表す実アドレス有効ビットを含む。５１２バイトのデータを転送することを要求するＤＭＡコマンドについての上記の例を用いると、第１転送時にはそのＤＭＡコマンドの実ページ番号フィールドは有効な実ページ番号を持っておらず、従って実アドレス有効ビットはセットされていない。ＤＭＡキュー３００は、第１転送時に、セットされた実アドレス有効ビットを含むロールアウト・ロジックからのライトバック情報と共に、ＭＭＵからの実ページ番号を受け取る。従って、２番目から４番目までの転送の時には、ＤＭＡキュー３００は、列５４０に置かれている実ページ番号をバス・インターフェース・ユニットに送り、２番目から４番目までの転送についてはＭＭＵにアクセスしない。
【００３８】
列５５０は、それがロード・オペレーション又は格納オペレーションであるかなど、ＤＭＡコマンドの対応する転送タイプを含む。“同期”及び“ｅｉｅｉｏ”などの、ＭＭＵによる変換を必要としない他のコマンドもＤＭＡキューから出ることができる。列５６０は、ＤＭＡコマンド転送サイズ値を含む転送サイズ・フィールドである。転送サイズ値は、対応するＤＭＡコマンドについて、残っている転送されるべきデータの量に対応する。５１２バイトのデータを転送することを要求するＤＭＡコマンドについての上記の例を用いると、第１転送前には転送サイズ値は５１２バイトである。第２転送前には、転送サイズ値は３８４バイト（５１２Ｂ−１２８Ｂ）であり、これはロールアウト・ロジックから受け取られるデクリメントされた転送サイズである（転送サイズをデクリメントすることに関して、更に詳しくは図７及び対応するテキストを参照されたい）。第３転送前には、転送サイズ値は２５６バイト（３８４Ｂ−１２８Ｂ）である。そして、第４転送前には、転送サイズ値は１２８バイトである。
【００３９】
ＤＭＡキュー３００は行５７０から５９５までを含み、これらはＤＭＡコマンドに対応する。行５７０及び５９５は、対応するＤＭＡコマンドが有効であることを示し（列５１０）、列５４０において有効な実アドレス（列５３０）を含む。行５８０は、対応するＤＭＡコマンドが有効であることを示すが（列５１０）列５４０において有効な実アドレスを含まない（列５３０）。行５９０は、対応するＤＭＡコマンドが有効でないことを示し（列５１０）、列５４０において有効な実アドレスを含んでいない（列５３０）。
【００４０】
図６は、ＤＭＡコマンドをロールアウトするＤＭＡキューでとられるステップを示す高レベル・フローチャートである。ＤＭＡキューは、実ページ番号をバス・インターフェース・ユニット自体に送るか、それともメモリ管理ユニット（ＭＭＵ）にアドレス変換を実行するように要求するかを決定するためにＤＭＡコマンド・フィールドに含まれる情報を使用する（ＤＭＡコマンド・パラメータに関して、更に詳しくは図５及び対応するテキストを参照されたい）。
【００４１】
処理は６００から始まり、ステップ６０５でＤＭＡキューは何時でも発行され得る（例えば依存性無し）ＤＭＡコマンドを特定する。ＤＭＡコマンドの対応する実アドレス有効ビットがセットされていてＤＭＡコマンドの対応する実ページ番号が有効であることを示しているか否かが判定される（判定６１０）。
【００４２】
システムが実モードで動作していなくて、コマンドのタイプがアドレス変換を必要とするコマンド・タイプであるとすれば、もしＤＭＡコマンドの対応する実アドレス有効ビットがセットされているならば判定６１０は“はい”ブランチ６１２へ分岐し、ステップ６５０で処理はコマンド・パラメータをロールアウト処理に送る。そのコマンド・パラメータは、実アドレス有効ビット値と、例えば４ＫＢのデータなどの、ＤＭＡコマンドがロード又は格納したいデータの量に対応する転送サイズとを含む。ロールアウト処理は、そのコマンド・パラメータを受け取って、転送サイズを転送サイズ許容量だけデクリメントするなど、コマンド・パラメータを適宜に改変する（ロールアウト処理ステップに関して、更に詳しくは図７及び対応するテキストを参照されたい）。
【００４３】
ＤＭＡキューは、ＤＭＡコマンド・フィールドのうちの１つからＤＭＡコマンドの実ページ番号を抽出し、ステップ６６０でその実ページ番号をバス・インターフェース・ユニット３８０に送る。バス・インターフェース・ユニット３８０は図３に示されているものと同じであり、実ページ番号は、バス・インターフェース・ユニット３８０に到達する前に、図３に示されているマルチプレクサ３７０などのマルチプレクサを通過することができる。
【００４４】
ステップ６７０で、ＤＭＡキューはロールアウト処理からライトバック情報を受け取る。ライトバック情報は、実アドレス有効ビットと、上記のデクリメントされた転送サイズとを含む。ＤＭＡキューはステップ６８０で後のＤＭＡリクエストのためにライトバック情報をＤＭＡコマンドの対応するＤＭＡコマンド・フィールドにロードする。
【００４５】
一方、もしＤＭＡコマンドの実アドレス有効ビットがセットされていないとＤＭＡキューが識別したならば、判定６１０は“いいえ”ブランチ６１８に分岐して、ステップ６２０でＤＭＡキューはコマンド・パラメータをロールアウト処理に送る。ステップ６２５で、ＤＭＡキューは変換リクエストをメモリ管理ユニット（ＭＭＵ）に送り、それはアドレス変換を行う。図３に示されているＭＭＵ３２０のようなＭＭＵは、アドレス変換を行って実ページ番号をバス・インターフェース・ユニット３８０に送る。ＭＭＵは、また、実ページ番号をＤＭＡキューに送り、それをＤＭＡキュー処理はステップ６３０で受け取る。
【００４６】
１つの実施態様では、実効アドレスに対応するテーブル・エントリをＭＭＵが自分のテーブルにおいて突き止めなかったならば、ＭＭＵは“ミス”をロールアウト処理に送ってメモリから変換をフェッチする。変換をロードした後、ＭＭＵ処理は、対応するコマンドを再発行するようにＤＭＡキューに知らせるために“依存性をクリアする（Ｃｌｅａｒ  Ｄｅｐｅｎｄｅｎｃｙ）”をＤＭＡキューに送る（ＭＭＵ処理に関して、更に詳しくは図８及び対応するテキストを参照されたい）。
【００４７】
ステップ６４０で、ＤＭＡキューはライトバック情報をロールアウト処理から受け取り、ステップ６４５で、ＤＭＡキューはライトバック情報と実ページ番号とをＤＭＡコマンド・フィールドにロードする。
【００４８】
ＤＭＡコマンドが完了したか否かが判定される（判定６９０）。もしＤＭＡコマンドが更なるロールアウトを必要とするならば（例えば、キュー・エントリ有効ビットがセットされている）、判定６９０は“はい”ブランチ６９２に分岐し、それはループバックしてＤＭＡコマンド処理を続行する。このルーピングはＤＭＡコマンドがロールアウトされるまで続き、その時点で判定６９０は“いいえ”ブランチ６９８に分岐して、ＤＭＡコマンド処理は６９９で終了する。
【００４９】
図７は、ＤＭＡコマンド転送サイズをデクリメントすること及びライトバック情報をＤＭＡキューに提供することなど、ロールアウト処理でとられるステップを示すフローチャートである。ロールアウト処理は７００から始まり、ステップ７０５でロールアウト処理はＤＭＡキュー処理からコマンド・パラメータを受け取る（ＤＭＡキュー処理に関して、更に詳しくは図６及び対応するテキストを参照されたい）。コマンド・パラメータは、実アドレス有効ビットと転送サイズとを含む。
【００５０】
実アドレス有効ビットの状態を調べることによって実ページ番号が有効であるか否かが判定される（判定７１０）。実アドレス有効ビットがセットされているときには、ＤＭＡキューは実ページ番号をバス・インターフェース・ユニットに提供する。実ページ番号がセットされていないときには、ＤＭＡキューは、アドレス変換を実行して実ページ番号をバス・インターフェース・ユニットとＤＭＡキューとに提供するようにメモリ管理ユニット（ＭＭＵ）にリクエストする。
【００５１】
もし実ページ番号が有効であれば、判定７１０は“はい”ブランチ７１８に分岐して、処理はメモリ管理ユニット・リクエスト・ステップをバイパスする。一方、もし実ページ番号が有効でなければ、判定７１０は“いいえ”ブランチ７１２に分岐して、処理は、ＤＭＡリクエストの実効アドレスに対応する実ページ番号をＭＭＵが突き止めたか否かを表すヒット信号又はミス信号をステップ７１５でＭＭＵから受け取る（ＭＭＵ処理に関して、更に詳しくは図８及び対応するテキストを参照されたい）。
【００５２】
ＭＭＵがアドレス変換を行ったか否かが判定される（判定７２０）。もしＭＭＵがアドレス変換を行っていなければ、判定７２０は“いいえ”ブランチ７２２に分岐して、処理は、その特定の命令がＭＭＵがアドレス変換を行うことに依存するということをＤＭＡキューに知らせるＭＭＵ発行依存性ビットをセットする（ステップ７２５）。後に、ＭＭＵがメモリから変換を受け取ったときに、ＭＭＵはＭＭＵ発行依存性をクリアするためにＤＭＡロジックに信号を送る。ＭＭＵミス・クリア信号がＭＭＵから受け取られるまでは、ＤＭＡコマンドは再発行されない（更に詳しくは、図８及び対応するテキストを参照されたい）。
【００５３】
一方、もしＭＭＵがアドレス変換を行ったならば、判定７２０は“はい”ブランチ７２８に分岐し、処理はステップ７３０で実アドレス有効ビットをセットし、それは、ロールアウト処理がＤＭＡキュー処理に送るライトバック情報に含められる（下記を参照されたい）。
【００５４】
ステップ７３５で、処理は、コマンド・パラメータで受け取った（上記ステップ７０５）転送サイズから許容される最大転送サイズを引くことによってＤＭＡコマンドの転送サイズをデクリメントする。例えば、もし受け取られた転送サイズが３８４バイトであり、許容される最大転送サイズが１２８バイトであるならば、デクリメントされた転送サイズは２５６バイトである。デクリメント後の転送サイズを分析することによって、それ以上のＤＭＡリクエストが必要とされるか否かが判定される（判定７４０）。すなわち、もしデクリメント後の転送サイズがゼロならば、それ以上のＤＭＡリクエストは不要である。しかし、もし転送サイズがゼロでなければ、ＤＭＡコマンドを完了するためにＤＭＡリクエストがもっと必要である。
【００５５】
もしそれ以上のＤＭＡリクエストが不要であれば、判定７４０は“いいえ”ブランチ７４２に分岐して、処理は、キュー有効ビットをリセットし、それは、対応するＤＭＡコマンドが完了したので最早有効ではないということを意味する（ステップ７４５）。一方、もしＤＭＡリクエストがもっと必要であれば、判定７４０は“はい”ブランチ７４８に分岐して、処理は、ステップ７５０で実効アドレスを次のアドレスにインクリメントする。
【００５６】
ＤＭＡコマンドがページの終わりに達したか否かが判定される（判定７６０）。例えば、メモリ構成は４ＫＢインクリメントのページを持ち得る。もし処理がページの終わりに達したならば、判定７６０は“はい”ブランチ７６８に分岐して処理はステップ７７０で実アドレス有効ビットをリセットし、それは、ＤＭＡコマンドの次の変換のためにアドレス変換を行うようにＭＭＵにリクエストするようにＤＭＡキューに知らせる。一方、もし処理がページの終わりに達していなければ、判定７６０は“いいえ”ブランチ７６２に分岐して、実アドレス有効ビットをリセットするステップをバイパスする。
【００５７】
ステップ７８０で、ロールアウト処理はライトバック情報をＤＭＡキュー処理に送る。ライトバック情報は、キュー有効ビット、実アドレス有効ビット、及びデクリメントされた転送サイズなど、最近の変更を含む。キュー・エントリ有効ビットを調べることによって、ＤＭＡコマンドが更なるＤＭＡリクエストを必要とするか否かが判定される（判定７９０）。もしキュー・エントリ有効ビットがセットされていれば、判定７９０は“はい”ブランチ７９２に分岐し、処理はループバックしてＤＭＡコマンドのためにそれ以上のＤＭＡリクエストを処理する。このルーピングはＤＭＡコマンドが完了するまで続き、その時点で判定７９０は“いいえ”ブランチ７９８に分岐し、ロールアウト処理が７９９で終了する。
【００５８】
図８は、変換リクエストを受け取って実ページ番号をバス・インターフェース・ユニット及びＤＭＡキューに提供するメモリ管理ユニットでとられるステップを示すフローチャートである。本書に記載されている実施態様を用いると、ＤＭＡコマンドが有効な実ページ番号をそのＤＭＡコマンド・フィールドのうちの１つに含んでおらず、転送タイプが変換を必要とするものであり、システムが仮想モードで動作している（すなわち、実モードは非アクティブである）ときには、ＤＭＡキューはメモリ管理ユニット（ＭＭＵ）にアクセスする。
【００５９】
ＭＭＵ処理は８００から始まり、ステップ８１０でＭＭＵはＤＭＡキューからＤＭＡリクエストを受け取る。ステップ８２０で、処理はＤＭＡリクエストから実効アドレスを抽出する。ＭＭＵは、実効アドレスに対応する実ページ番号を突き止めるためにステップ８３０でＭＭＵテーブル８４０にアクセスする。ＭＭＵテーブル８４０は、実効アドレスと、対応する実ページ番号とのリストを含む。
【００６０】
実効アドレスに対応するテーブル・エントリをＭＭＵテーブル８４０が含んでいたか否かが判定される（判定８５０）。もしＭＭＵがテーブル・エントリを突き止めたならば、判定８５０は“はい”ブランチ８５２に分岐し、ステップ８５５で処理はヒット信号をロールアウト処理に送る（ロールアウト処理に関して、更に詳しくは図７及び対応するテキストを参照されたい）。ステップ８６０で、ＭＭＵは、その突き止められた実ページ番号をバス・インターフェース・ユニット３８０及びＤＭＡキュー処理に送り、ＭＭＵ処理は８９０で終了する。ＤＭＡキュー処理は、その実ページ番号を後のＤＭＡリクエストのために使用するために、ＤＭＡコマンドと共にその実ページ番号を格納する。バス・インターフェース・ユニット３８０は、図３に示されているものと同じである。
【００６１】
一方、もしＭＭＵがＭＭＵテーブル８４０において実効アドレスに対応するテーブル・エントリを突き止めなければ、判定８５０は“いいえ”ブランチ８５８に分岐し、処理は“ミス”をロールアウト処理に送って（ステップ８７０）変換をメモリ・ストア８７５からフェッチし、それはＭＭＵテーブル８４０にロードされる。その変換をロードした後、ＭＭＵ処理は“依存性をクリアする”をステップ８８５でＤＭＡキューに送り、ＭＭＵ処理は８９０で終了する。メモリ・ストア８７５は、コンピュータ・ハード・ドライブなどの、不揮発性記憶域に格納され得る。
【００６２】
図９は、情報処理システムを示し、それは、本書に記載されている計算オペレーションを実行することのできるコンピュータ・システムの単純化された例である。ブロードバンド・プロセッサ・アーキテクチャ（ＢＰＡ）９００は、単一チップ上の複数の異種プロセッサ（チップ上のシステム（ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ））と、共通メモリと、共通バスとを含む。それらの異種プロセッサは、共通メモリ及び共通バスを共有する異なる命令セットを有するプロセッサである。例えば、それらの異種プロセッサのうちの１つはＲＩＳＣ命令セットを使用するＰｏｗｅｒ  ＰＣ（ＩＢＭ社の登録商標）であって良く、その他の異種プロセッサはベクトル命令セットを使用する共働処理ユニット（ａ  ｓｙｎｅｒｇｉｓｔｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）であって良く、それら両方が同じメモリ空間を共有する。
【００６３】
ＢＰＡ９００は、共働処理ユニット（ＳＰＣ）９１０，９３０、及び９５０を含む。各ＳＰＣは、バス・インターフェース・ユニット（ＢＩＵ）に結合されたＤＭＡコントローラ（ＤＭＡＣ）に結合されているプロセッサ・コアを含む。ＳＰＣ９１０はプロセッサ・コア９１５、ＤＭＡＣ９２０、及びＢＩＵ９２５を含む。ＳＰＣ９３０はプロセッサ・コア９３５、ＤＭＡＣ９４０、及びＢＩＵ９４５を含む。そして、ＳＰＣ９５０はプロセッサ・コア９５５、ＤＭＡＣ９６０、及びＢＩＵ９６５を含む。
【００６４】
ＢＰＡ９００は処理ユニット９７５も含み、これはオペレーティング・システム（ＯＳ）９７８を走らせる。例えば、処理ユニット９７５はＢＰＡ９００に埋め込まれたＰｏｗｅｒ  ＰＣ（ＩＢＭ社の登録商標）コアであり得、ＯＳ９７８はリナックス・オペレーティング・システムであり得る。処理ユニット９７５は、ＢＰＡ９００のために共通メモリ・マップ・テーブルを管理する。メモリ・マップ・テーブルは、Ｌ２メモリ９８０と、ＳＰＣ９１０，９３０、及び９５０に含まれる非プライベート・メモリなどの、ＢＰＡ９００に含まれる記憶場所に対応する。
【００６５】
各ＳＰＣはデータ情報を処理するために使用され、各ＳＰＣは異なる命令セットを持ち得る。例えば、ＢＰＡ９００は無線通信システムで使用され得、各ＳＰＣは、変調、チップ・レート処理、符号化、及びネットワーク・インターフェーシングなどの、別々の処理タスクに責任を持ち得る。他の例では、各ＳＰＣは、同一の命令セットを持つことができて、並列処理から利益を得るオペレーションを実行するために並列に使用され得る。各ＳＰＣは共働処理ユニット（ＳＰＵ）を含む。ＳＰＵは、好ましくは、デジタル・シグナル・プロセッサ、マイクロコントローラ、マイクロプロセッサ、或いはこれらのコアの組み合わせなどの、単一命令多重データ（ＳＩＭＤ）プロセッサである。好ましい実施態様では、各ＳＰＵはローカル・メモリと、レジスタと、４つの浮動小数点ユニットと、４つの整数ユニットとを含む。しかし、必要とされる処理パワーにより、もっと多数の或いはもっと少数の浮動小数点ユニット及び整数ユニットが使用され得る。
【００６６】
ＳＰＣ９１０，９３０、及び９５０はプロセッサ・エレメント・バス９７０に接続されており、これは制御ＳＰＣ、処理ユニット９７５、Ｌ２メモリ９８０、メモリ・コントローラ９８５、及びＩ／Ｏコントローラ９９０の間で情報を移動させる。メモリ・コントローラ９８５はデータを格納し検索するために記憶装置９８８と通信し、Ｉ／Ｏコントローラ９９０はＩ／Ｏ装置９９５と通信し、それらは周辺装置である。
【００６７】
図９に記載されているコンピュータ・システムは本書に記載されているプロセスを実行することができるが、このコンピュータ・システムは単にコンピュータ・システムの一例に過ぎない。他の多くのコンピュータ・システム・デザインが本書に記載されているプロセスを実行できることを当業者は認めるであろう。
【００６８】
本発明の好ましいインプリメンテーションの１つはクライアント・アプリケーション、すなわち、例えばコンピュータのランダム・アクセス・メモリに常駐することのできるコード・モジュール内の命令のセット（プログラム・コード）である。コンピュータにより必要とされるまでは、命令のセットは、例えばハード・ディスク・ドライブなどの他のコンピュータ・メモリに、又は光ディスク（最終的にＣＤ  ＲＯＭで使用される）若しくはフロッピー・ディスク（最終的にフロッピー・ディスク・ドライブで使用される）などの取り外し可能なメモリに格納され、或いはインターネット又は他のコンピュータ・ネットワークを介してダウンロードされ得る。従って、本発明は、コンピュータで使用されるコンピュータ・プログラム製品として実現され得る。更に、上記の種々の方法はソフトウェアにより選択的に起動され或いは再設定される汎用コンピュータにおいて便利に実行されるけれども、それらの方法がハードウェアで、ファームウェアで、或いは、所要の方法ステップを実行するように構成された専用装置で実行され得ることも当業者は認めるであろう。
【００６９】
本発明の特定の実施態様が図示され記述されたけれども、本書の教示に基づいて本発明とその広い諸側面から逸脱すること無く変更及び改変をなし得ることは当業者にとっては明らかであろう。従って、添付されている請求項は、本発明の真の範囲内にあるような全ての変更及び改変をその範囲内に含むべきものである。更に、本発明が添付されている請求項によってのみ定義されることが理解されなければならない。導入された請求項要素の特定の個数が意図されている場合には、そのような意図は請求項において明示的に記述され、そしてそのような記述が無い場合にはその様な限定は存在しないということが当業者に理解されるであろう。理解を助ける非限定的な例を挙げると、添付されている請求項は、請求項要素を導入するために“少なくとも１つ”及び“１つ以上”という前置きの句を含んでいる。
【図面の簡単な説明】
【００７０】
【図１】実効アドレスを実ページ番号に変換するメモリ管理ユニット（ＭＭＵ）を示す線図である。
【図２】実効アドレス実アドレス変換器（ＥＲＡＴ）と、アドレス変換を実行するメモリ管理ユニット（ＭＭＵ）とを示す線図である。
【図３】ＭＭＵから実ページ番号を受け取って、その実ページ番号を、後のＤＭＡリクエストでの使用のために対応するＤＭＡコマンド・フィールドに格納するＤＭＡキューを示す線図である。
【図４】複数のＤＭＡリクエストと、３つの異なる構成に基づいてアドレス変換がどの様に行われるかとを示すテーブルである。
【図５】ＤＭＡコマンド及び対応するコマンド・フィールドを有するＤＭＡキューを示す線図である。
【図６】ＤＭＡコマンドを送出或いは発行するときに行われるステップを示す高レベル・フローチャートである。
【図７】ＤＭＡコマンド転送サイズをデクリメントすること及びライトバック情報をＤＭＡキューに提供することなどの、ロールアウト処理時に行われるステップを示すフローチャートである。
【図８】変換リクエストを受け取って実ページ番号をバス・インターフェース・ユニット及びＤＭＡキューに提供するメモリ管理ユニットにおいて行われるステップを示すフローチャートである。
【図９】本書に記載されている計算オペレーションを実行することのできるコンピュータ・システムの単純化された例である情報処理システムを示す。
【図１】
2009512919.tif 000003
【図２】
2009512919.tif 000004
【図３】
2009512919.tif 000005
【図４】
2009512919.tif 000006
【図５】
2009512919.tif 000007
【図６】
2009512919.tif 000008
【図７】
2009512919.tif 000009
【図８】
2009512919.tif 000010
【図９】
2009512919.tif 000011
【手続補正書】
【提出日】平成21年1月22日(2009.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のＤＭＡコマンド・フィールドを含むＤＭＡコマンドをＤＭＡキューにおいて選択するステップと、
前記ＤＭＡコマンド・フィールドのうちの１つに含まれている実ページ番号が有効であるか否かを判定するステップと、
前記実ページ番号が有効であると判定したことに応答して、前記ＤＭＡコマンドを処理するために前記実ページ番号を前記ＤＭＡキューから提供するステップと、
を含む、コンピュータにより実行される方法。
【請求項２】
前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている、前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べるステップと、
前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送るステップと、
前記ＤＭＡコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供するステップと、
を更に含む、請求項１の方法。
【請求項３】
もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定するステップを更に含む、請求項２の方法。
【請求項４】
前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定するステップと、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記複数のＤＭＡコマンド・フィールドのうちの１つに格納するステップと、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記実アドレス有効ビットをセットするステップと、
を更に含む、請求項２の方法。
【請求項５】
デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取るステップと、
前記ライトバック情報を前記複数のＤＭＡコマンド・フィールドに格納するステップと、
を更に含む、請求項１の方法。
【請求項６】
前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている転送サイズを確認するステップと、
対応するＤＭＡコマンドのために転送されるデータの量に対応する最大転送サイズ許容値を検出するステップと、
前記最大転送サイズ許容値を前記転送サイズから引いて前記デクリメントされた転送サイズをもたらすステップと、
を更に含む、請求項５の方法。
【請求項７】
前記デクリメントされた転送サイズに基づいて、前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認するステップと、
前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれているキュー・エントリ有効ビットをリセットするステップと、
を更に含む、請求項６の方法。
【請求項８】
前記引くステップの後に、前記ＤＭＡコマンドに対応する実効アドレスをインクリメントするステップと、
インクリメントされた前記実効アドレスに基づいてページの終わりに達したか否かを判定するステップと、
前記ページの終わりに達したと判定したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている実アドレス有効ビットをリセットするステップと、
を更に含む、請求項６の方法。
【請求項９】
前記複数のＤＭＡコマンド・フィールドのうちの少なくとも１つは、キュー・エントリ有効ビット・フィールド、実アドレス有効ビット・フィールド、及び実ページ番号フィールドから成るグループから選択される、請求項１の方法。
【請求項１０】
前記方法はブロードバンド・プロセッサ・アーキテクチャを用いて実行され、前記ブロードバンド・プロセッサ・アーキテクチャは複数の異種プロセッサと、共通メモリと、共通バスとを含み、
前記複数の異種プロセッサは、異なる命令セットを使用し、前記共通メモリ及び前記共通バスを共有する、
請求項１の方法。
【請求項１１】
前記ブロードバンド・プロセッサ・アーキテクチャはチップ上のシステム（ａ  ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である、請求項１０の方法。
【請求項１２】
１つ以上のプロセッサと、
前記プロセッサによりアクセスされ得るメモリと、
前記プロセッサによりアクセスされ得る１つ以上の不揮発性記憶装置と、
ＤＭＡコマンドを処理するためのＤＭＡコマンド・ツールと、
を含む情報処理システムであって、
前記ＤＭＡコマンド・ツールは、
前記メモリに含まれるＤＭＡキューにおいて、複数のＤＭＡコマンド・フィールドを含むＤＭＡコマンドを選択し、
前記ＤＭＡコマンド・フィールドのうちの１つに含まれている実ページ番号が有効であるか否かを判定し、
前記実ページ番号が有効であると判定したことに応答して、前記ＤＭＡコマンドを処理するために前記実ページ番号を前記ＤＭＡキューから提供することができる、前記情報処理システム。
【請求項１３】
前記ＤＭＡコマンド・ツールは、更に、
前記メモリに含まれている、前記実ページ番号が有効であるか否かを表す実アドレス有効ビットを調べ、
前記実ページ番号が有効でないと判定したことに応答して、変換リクエストをメモリ管理ユニットに送り、
前記ＤＭＡコマンドを処理するために新しい実ページ番号を前記メモリ管理ユニットから提供し、
もし前記実ページ番号が有効ならば前記実ページ番号を選択し、もし前記実ページ番号が有効でなければ前記新しい実ページ番号を選択するようにマルチプレクサを設定することができる、
請求項１２の情報処理システム。
【請求項１４】
前記ＤＭＡコマンド・ツールは、更に、
前記メモリ管理ユニットが前記変換リクエストに対応する新しい実ページ番号を突き止めたか否かを判定し、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して、前記新しい実ページ番号を前記メモリに含まれている前記複数のＤＭＡコマンド・フィールドのうちの１つに格納し、
前記メモリ管理ユニットが前記新しい実ページ番号を突き止めたと判定したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれる前記実アドレス有効ビットをセットすることができる、
請求項１３の情報処理システム。
【請求項１５】
前記ＤＭＡコマンド・ツールは、更に、
デクリメントされた転送サイズと前記実ページ番号とを含むライトバック情報を受け取り、
前記ライトバック情報を前記メモリに含まれている前記複数のＤＭＡコマンド・フィールドに格納することができる、
請求項１２の情報処理システム。
【請求項１６】
前記ＤＭＡコマンド・ツールは、更に、
前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれている転送サイズを確認し、
対応するＤＭＡコマンドのために転送されるデータの量に対応する最大転送サイズ許容値を検出し、
前記最大転送サイズ許容値を前記転送サイズから引いて前記デクリメントされた転送サイズをもたらし、
前記デクリメントされた転送サイズに基づいて、前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認し、
前記ＤＭＡコマンドに対応するそれ以上のＤＭＡリクエストが不要であることを確認したことに応答して前記複数のＤＭＡコマンド・フィールドのうちの１つに含まれているキュー・エントリ有効ビットをリセットすることができる、
請求項１５の情報処理システム。
【請求項１７】
前記情報処理システムはブロードバンド・プロセッサ・アーキテクチャであり、前記ブロードバンド・プロセッサ・アーキテクチャは複数の異種プロセッサと、共通メモリと、共通バスとを含み、前記複数の異種プロセッサは、異なる命令セットを使用し、前記共通メモリ及び前記共通バスを共有する、請求項１２の情報処理システム。
【請求項１８】
前記情報処理システムはチップ上のシステム（ａ  ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である、請求項１２の情報処理システム。
【請求項１９】
前記情報処理システムは、ゲーム機、ノートブック・コンピュータ、パーソナル・コンピュータ、及びハンドヘルド装置から成るグループから選択されたシステムに含まれる、請求項１２の情報処理システム。
【請求項２０】
ＤＭＡコマンドを処理するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、
ＤＭＡキューにおいて、複数のＤＭＡコマンド・フィールドを含むＤＭＡコマンドを選択する機能と、
前記ＤＭＡコマンド・フィールドのうちの１つに含まれている実ページ番号が有効であるか否かを判定する機能と、
前記実ページ番号が有効であると判定したことに応答して、前記実ページ番号を前記ＤＭＡキューから提供する機能、
をコンピュータに実行させる、コンピュータ・プログラム。
【国際調査報告】
2009512919.tif 000012
2009512919.tif 000013