(57)【要約】  コマンド受信部は、外部のアクセス要求主体から、アクセス対象となるアドレスとアクセス要求主体を識別するためのＩＯＩＤと共に、データにアクセスするためのコマンドを受信する。ＩＯＩＤにより、アクセス判定部は、アクセス要求主体が目的のアクセス先にアクセスする権限があるかを判定する。アクセス判定部は、プロセッサの空間における論理アドレスの基本管理単位としてのページごとに、アクセス要求主体のアクセス可否を判定する。【選択図】図１
2009523269.tif 000002
【特許請求の範囲】
【請求項１】
外部のアクセス要求主体から、プロセッサのメモリ空間におけるデータを制御するためのコマンドを、アクセス対象となるアドレスを指定するアドレス情報および前記アクセス要求主体を識別するためのＩＤ情報と共に受信するコマンド受信部と、
前記メモリ空間におけるアドレスと、そのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アドレス情報にて指定されたアドレスへの前記アクセス要求主体によるアクセスの可否を判定するアクセス判定部と、
前記アクセス判定部に許可されたことを条件として、前記アクセス要求主体の前記メモリ空間に対するアクセスを実行するアクセス処理部と、
を備えることを特徴とするＩ／Ｏアクセス制御装置。
【請求項２】
前記アクセス可否判定テーブルは、前記アクセス要求主体と当該装置を統括的に制御するソフトウェアによって設定可能であることを特徴とする請求項１に記載のＩ／Ｏアクセス制御装置。
【請求項３】
前記アクセス要求主体は、ＤＭＡ（Direct Memory Access）転送により、プロセッサのメモリ空間におけるデータを制御するＤＭＡリクエスタであることを特徴とする請求項１または２に記載のＩ／Ｏアクセス制御装置。
【請求項４】
前記アクセス判定部は、前記メモリ空間における基本管理単位であるページごとに前記アクセス要求主体のアクセスの可否を判定することを特徴とする請求項１に記載のＩ／Ｏアクセス制御装置。
【請求項５】
前記アクセス判定部は、サイズが異なる複数のページを使用可能であることを特徴とする請求項４に記載のＩ／Ｏアクセス制御装置。
【請求項６】
複数のアクセス要求主体が互いに異なるページをアクセス対象としてコマンドを送信する場合において、
前記アクセス処理部は、前記複数のアクセス要求主体による前記異なるページへのアクセスを時間的に並行して実行可能であることを特徴とする請求項４または５に記載のＩ／Ｏアクセス制御装置。
【請求項７】
前記アクセス可否判定テーブルには、異なるアクセス要求主体が共にアクセス可能なページを設定可能であることを特徴とする請求項４から６のいずれかに記載のＩ／Ｏアクセス制御装置。
【請求項８】
前記アドレス情報は前記メモリ空間のアドレスを所定のフォーマットにて変換した仮想的なアドレスである論理アドレスを示す情報であり、その論理アドレスを物理アドレスに変換するためのアドレス変換テーブルを保持するアドレス変換テーブル保持部と、
前記アドレス変換テーブルを参照して前記アドレス情報において指定された論理アドレスを物理アドレスに変換するアドレス変換部と、を更に備え、
前記アクセス処理部は、前記アドレス変換部により特定された物理アドレスに基づいて、前記アクセス要求主体によるアクセスを実行することを特徴とする請求項１から７のいずれかに記載のＩ／Ｏアクセス制御装置。
【請求項９】
前記アドレス変換テーブルは、前記アクセス要求主体と当該装置を統括的に制御するソフトウェアによって設定可能であることを特徴とする請求項８に記載のＩ／Ｏアクセス制御装置。
【請求項１０】
前記アドレス変換テーブルは、前記アクセス可否判定テーブルに相当するテーブルデータをその一部として含み、論理アドレスと物理アドレスおよびそのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたデータテーブルとして形成されたことを特徴とする請求項８または９に記載のＩ／Ｏアクセス制御装置。
【請求項１１】
複数のアクセス要求主体がそれぞれ異なる論理アドレスのページを介して、同一の物理アドレス領域にアクセス可能となるように、前記アドレス変換テーブルを設定可能であることを特徴とする請求項１０に記載のＩ／Ｏアクセス制御装置。
【請求項１２】
前記アドレス変換テーブル保持部から前記アドレス変換テーブルのうち、所定の論理アドレス範囲に対応する部分である部分変換テーブルを前記アドレス変換部によるアドレス変換が実行される前に予めキャッシュメモリにロードするキャッシュ処理部を更に備え、
前記アドレス変換部は、前記ロードされた部分変換テーブルに前記アドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれているときには、前記部分変換テーブルを参照してアドレス変換し、
前記キャッシュ処理部は、前記ロードされた部分変換テーブルに前記アドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれていないときには、前記アドレス変換テーブル保持部から前記キャッシュメモリに新たな部分変換テーブルをロードすることを特徴とする請求項８から１１のいずれかに記載のＩ／Ｏアクセス制御装置。
【請求項１３】
前記キャッシュ処理部は、アドレス変換が実行される前に予めロードされた部分変換テーブルに前記アドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれていないときには、その部分変換テーブルを前記キャシュメモリに保持した状態で、新たな部分変換テーブルを前記キャッシュメモリにロードすることを特徴とする請求項１２に記載のＩ／Ｏアクセス制御装置。
【請求項１４】
前記メモリ空間におけるアドレスと、そのアドレスが指定する領域に対するアクセス条件を規定するアクセス属性情報とを対応づけたアクセス属性テーブルを保持するアクセス属性テーブル保持部と、を更に備え、
前記アクセス処理部は、前記アクセス要求主体について前記アクセス判定部によりアクセス許可されることを条件として、前記アクセス属性テーブルにて指定されたアクセス条件にしたがって前記受信されたコマンドにより指定されたアクセスを実行することを特徴とする請求項１から１３のいずれかに記載のＩ／Ｏアクセス制御装置。
【請求項１５】
前記アクセス属性テーブルは、前記アクセス要求主体と当該装置を統括的に制御するソフトウェアによって設定可能であることを特徴とする請求項１４に記載のＩ／Ｏアクセス制御装置。
【請求項１６】
前記アクセス属性テーブルには、アクセス条件としてアクセス順序強制の実行可否が指定されており、
前記アクセス処理部は、前記アクセス属性テーブルにて指定されたアクセス順序強制の実行可否にしたがって、前記受信されたコマンドにより指定されたアクセスを実行することを特徴とする請求項１４に記載のＩ／Ｏアクセス制御装置。
【請求項１７】
前記アドレス変換テーブル保持部は、前記アドレス情報において指定された論理アドレスの所定部分のデータに対して、所定のベース値を論理演算することにより生成されるインデックス値と物理アドレスを対応づけたデータテーブルとして前記アドレス変換テーブルを保持し、
前記アドレス変換部は、前記受信されたアドレス情報において指定された論理アドレスより前記インデックス値を算出し、そのインデックス値に応じて前記アドレス変換テーブルを参照することにより物理アドレスを特定することを特徴とする請求項８から１３のいずれかに記載のＩ／Ｏアクセス制御装置。
【請求項１８】
前記アドレス情報の所定部分のデータは、アクセス要求主体ごとに設定されるセグメントアドレスであることを特徴とする請求項１７に記載のＩ／Ｏアクセス制御装置。
【請求項１９】
所定のアクセス要求主体から、プロセッサのメモリ空間のうちアクセス対象領域のアドレスを指定するアドレス情報と共に送信される前記メモリ空間のデータを制御するためのコマンドに対して、前記アクセス要求主体を識別するためのＩＤ情報を付与するＩＤ追加部と、
前記メモリ空間におけるアドレスとそのアドレスが指定する領域に対してアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アクセス要求主体による前記アドレス情報にて指定されたアドレスへのアクセス可否を判定する外部の装置に対し、前記ＩＤ情報が付与されたコマンドを送信するコマンド送信部と、
を備えることを特徴とするコマンド送信補助装置。
【請求項２０】
前記ＩＤ追加部は、アクセス要求主体に固有のＩＤを所定のＩＤ生成テーブルにより変換することにより前記ＩＤ情報を生成することを特徴とする請求項１９に記載のコマンド送信補助装置。
【請求項２１】
前記ＩＤ生成テーブルは、前記アクセス要求主体と前記外部の装置を統括的に制御するソフトウェアによりその変換規則を設定可能であることを特徴とする請求項２０に記載のコマンド送信補助装置。
【請求項２２】
前記ＩＤ情報は、前記アクセス要求主体と前記外部の装置を統括的に制御するソフトウェアによって、アクセス要求主体ごとに割り振られることを特徴とする請求項１９または２０に記載のコマンド送信補助装置。
【請求項２３】
前記アクセス要求主体に固有のＩＤを所定のセグメント生成テーブルにより変換することによりセグメントアドレスを生成するセグメントアドレス生成部、を更に備え、
前記コマンド送信部は、セグメントアドレスを前記アドレス情報の一部に含めてコマンドを送信することを特徴とする請求項１９から２２のいずれかに記載のコマンド送信補助装置。
【請求項２４】
前記セグメント生成テーブルは、前記アクセス要求主体を統括的に制御するソフトウェアにより設定可能であることを特徴とする請求項２３に記載のコマンド送信補助装置。
【請求項２５】
外部のアクセス要求主体から、プロセッサのメモリ空間におけるデータを制御するためのコマンドを、アクセス対象となるアドレスを指定するアドレス情報および前記アクセス要求主体を識別するためのＩＤ情報と共に受信するステップと、
前記メモリ空間におけるアドレスと、そのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アドレス情報にて指定されたアドレスへの前記アクセス要求主体によるアクセスの可否を判定するステップと、
アクセス許可されたことを条件として、前記アクセス要求主体の前記メモリ空間に対するアクセスを実行するステップと、
を備えることを特徴とするＩ／Ｏアクセス制御方法。
【請求項２６】
請求項２５に記載の方法において、前記メモリ空間における基本管理単位であるページごとに前記アクセス要求主体のアクセスの可否を判定することを特徴とするＩ／Ｏアクセス制御方法。
【請求項２７】
請求項２６に記載の方法において、ページごとに異なるサイズを設定可能であることを特徴とするＩ／Ｏアクセス制御方法。
【請求項２８】
請求項２６または２７に記載の方法において、前記アドレス情報は前記メモリ空間のアドレスを所定のフォーマットにて変換した仮想的なアドレスである論理アドレスを示す情報であり、その論理アドレスを物理アドレスに変換するためのアドレス変換テーブルを参照して前記アドレス情報において指定された論理アドレスを物理アドレスに変換するステップを更に備え、
前記アドレス変換テーブルにより特定された物理アドレスに基づいて、前記アクセス要求主体によるアクセスを実行することを特徴とするＩ／Ｏアクセス制御方法。
【請求項２９】
請求項２８に記載の方法において、前記アドレス変換テーブルは、前記アクセス可否判定テーブルに相当するテーブルデータをその一部として含み、論理アドレスと物理アドレスおよびそのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたデータテーブルとして形成されたことを特徴とするＩ／Ｏアクセス制御方法。
【請求項３０】
請求項２９に記載の方法において、複数のアクセス要求主体がそれぞれ異なる論理アドレスのページを介して、同一の物理アドレス領域にアクセス可能となるように、前記アクセス変換テーブルを設定可能であることを特徴とするＩ／Ｏアクセス制御方法。
【請求項３１】
請求項２８から３０のいずれかに記載の方法において、アドレス変換が実行される前に前記アドレス変換テーブルのうち、所定の論理アドレス範囲に対応する部分である部分変換テーブルを予めキャッシュメモリにロードするステップを更に備え、
前記ロードされた部分変換テーブルに前記アドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれているときには、前記部分変換テーブルを参照してアドレス変換し、
前記ロードされた部分変換テーブルに前記アドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれていないときには、前記キャッシュメモリに新たな部分変換テーブルをロードすることを特徴とするＩ／Ｏアクセス制御方法。
【請求項３２】
請求項３１に記載の方法において、アドレス変換が実行される前に予めロードされた部分変換テーブルに前記アドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれていないときには、その部分変換テーブルを前記キャシュメモリに保持した状態で、新たな部分変換テーブルを前記キャッシュメモリにロードすることを特徴とするＩ／Ｏアクセス制御方法。
【請求項３３】
請求項２５から３２のいずれかに記載の方法において、前記メモリ空間におけるアドレスと、そのアドレスが指定する領域に対するアクセス条件を規定するアクセス属性情報とを対応づけたアクセス属性テーブルを参照し、該当するアクセス条件にしたがって前記受信されたコマンドにより指定されたアクセスを実行するステップを更に備えることを特徴とするＩ／Ｏアクセス制御方法。
【請求項３４】
請求項３３に記載の方法において、前記アクセス属性テーブルには、アクセス条件としてアクセス順序強制の実行可否が指定されており、
前記アクセス属性テーブルにて指定されたアクセス順序強制の実行可否にしたがって、前記受信されたコマンドにより指定されたアクセスを実行することを特徴とするＩ／Ｏアクセス制御方法。
【請求項３５】
請求項２８から３２のいずれかに記載の方法において、前記アドレス変換テーブルは、前記アドレス情報において指定された論理アドレスの所定部分のデータに対して、所定のベース値を論理演算することにより生成されるインデックス値と物理アドレスを対応づけたデータテーブルであって、
前記受信されたアドレス情報において指定された論理アドレスより前記インデックス値を算出し、そのインデックス値に応じて前記アドレス変換テーブルを参照することにより物理アドレスを特定することを特徴とするＩ／Ｏアクセス制御方法。
【請求項３６】
請求項３５に記載の方法において前記アドレス情報の所定部分のデータは、アクセス要求主体ごとに設定されるセグメントアドレスであることを特徴とするＩ／Ｏアクセス制御方法。
【請求項３７】
所定のアクセス要求主体から、プロセッサのメモリ空間のうちアクセス対象領域のアドレスを指定するアドレス情報と共に送信される前記メモリのデータを制御するためのコマンドに対して、前記アクセス要求主体を識別するためのＩＤ情報を付与するステップと、
前記メモリ空間におけるアドレスとそのアドレスが指定する領域に対してアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アクセス要求主体による前記アドレス情報にて指定されたアドレスへのアクセス可否を判定する外部の装置に対し、前記ＩＤ情報が付与されたコマンドを送信するステップと、
を備えることを特徴とするコマンド送信補助方法。
【請求項３８】
外部のアクセス要求主体から、プロセッサのメモリ空間におけるデータを制御するためのコマンドを、アクセス対象となるアドレスを指定するアドレス情報および前記アクセス要求主体を識別するためのＩＤ情報と共に受信する機能と、
前記メモリ空間におけるアドレスと、そのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アドレス情報にて指定されたアドレスへの前記アクセス要求主体によるアクセスの可否を判定する機能と、
をコンピュータに発揮させることを特徴とするＩ／Ｏアクセス制御プログラム。
【請求項３９】
所定のアクセス要求主体から、プロセッサのメモリ空間のうちアクセス対象領域のアドレスを指定するアドレス情報と共に送信される前記メモリのデータを制御するためのコマンドに対して、前記アクセス要求主体を識別するためのＩＤ情報を付与する機能と、
前記メモリ空間におけるアドレスとそのアドレスが指定する領域に対してアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アクセス要求主体による前記アドレス情報にて指定されたアドレスへのアクセス可否を判定する外部の装置に対し、前記ＩＤ情報が付与されたコマンドを送信する機能と、
をコンピュータに発揮させることを特徴とするコマンド送信補助プログラム。
【請求項４０】
コンピュータにて読み取り可能な記録媒体であって、
外部のアクセス要求主体から、プロセッサのメモリ空間におけるデータを制御するためのコマンドを、アクセス対象となるアドレスを指定するアドレス情報および前記アクセス要求主体を識別するためのＩＤ情報と共に受信する機能と、
前記メモリ空間におけるアドレスと、そのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アドレス情報にて指定されたアドレスへの前記アクセス要求主体によるアクセスの可否を判定する機能と、
をコンピュータに発揮させることを特徴とするＩ／Ｏアクセス制御プログラム
を格納する記録媒体。
【請求項４１】
コンピュータにて読み取り可能な記録媒体であって、
所定のアクセス要求主体から、プロセッサのメモリ空間のうちアクセス対象領域のアドレスを指定するアドレス情報と共に送信される前記メモリ空間のデータを制御するためのコマンドに対して、前記アクセス要求主体を識別するためのＩＤ情報を付与する機能と、
前記メモリ空間におけるアドレスとそのアドレスが指定する領域に対してアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、前記アクセス要求主体による前記アドレス情報にて指定されたアドレスへのアクセス可否を判定する外部の装置に対し、前記ＩＤ情報が付与されたコマンドを送信する機能と、
をコンピュータに発揮させることを特徴とするコマンド送信補助プログラム
を格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、米国仮特許出願第６０／７７５，８２９号（発明の名称：「Memory Access Controlling Apparatus And Command Transmit Supporting Apparatus」２００６年２月２２日出願）の利益を主張する。この出願は、引用によりその全てを含む。
【０００２】
本発明は、Ｉ／Ｏアクセスを制御するための技術、特に、外部装置からのアクセス要求を制御するための技術、に関する。
【背景技術】
【０００３】
近年のコンピュータゲームやデジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩にともない、コンピュータ、ゲーム機器、テレビなどの情報処理装置はより高精細の画像データをより高速に処理する能力を求められている。そのためには、演算処理自体の高速化が必要であることはもちろんであるが、複数の処理装置間でタスクを好適に分散することも同様に重要である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
各処理装置は、タスクの実行に際して適宜メモリにアクセスする。このとき、処理装置Ａの処理のために確保されたメモリの領域に対して、処理装置Ｂのアクセスを許してしまうと、情報処理装置全体としての動作安定性が損なわれる。特に、周辺機器を制御するためのＩ／Ｏデバイスの場合、ＤＭＡリクエスタが直接物理アドレスを指定してメモリを制御することが多かった。このようなＩ／Ｏデバイスやそれを制御するデバイスドライバの誤動作は、情報処理装置の動作安定性に対して深刻な影響を及ぼす可能性がある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、Ｉ／Ｏアクセス制御装置である。
この装置は、外部のアクセス要求主体から、プロセッサのメモリ空間におけるデータを制御するためのコマンドを、アクセス対象となるアドレスを指定するアドレス情報およびアクセス要求主体を識別するためのＩＤ情報と共に受信するコマンド受信部と、メモリ空間におけるアドレスと、そのアドレスにて指定される領域についてアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、アドレス情報にて指定されたアドレスへのアクセス要求主体によるアクセスの可否を判定するアクセス判定部と、アクセス判定部に許可されたことを条件として、アクセス要求主体のメモリ空間に対するアクセスを実行するアクセス処理部と、を備える。この装置は、プロセッサに内蔵される装置として形成されてもよく、アクセス要求主体はプロセッサ外部の装置であってもよい。
【０００６】
このような態様によれば、ＩＤ情報に基づいて、アクセス要求されているアドレス領域について、正当なアクセス要求主体からのアクセスであるかを判定できる。「ＩＤ情報」は、たとえば、所定のフォーマットにて規定されるビット列として専用に生成されてもよく、アクセス要求主体を一意に特定できる情報であればよい。
【０００７】
アドレス情報はメモリのアドレスを所定のフォーマットにて変換した仮想的なアドレスである論理アドレスを示す情報であってもよい。
この場合、この装置は、論理アドレスを物理アドレスに変換するためのアドレス変換テーブルを保持するアドレス変換テーブル保持部と、アドレス変換テーブルを参照し、アドレス情報において指定された論理アドレスを物理アドレスに変換するアドレス変換部と、を更に備えてもよい。
【０００８】
この態様においては、ＩＤ情報に基づいて個々のアクセス要求主体に異なる論理アドレス空間を独立に割り当てることができる。アクセス要求主体から直接に物理アドレスを指定させないので、よりメモリ空間を外部アクセスから保護しやすくなる。また、論理アドレスを用いることで、外部のアクセス要求主体とプロセッサの間のデータ転送をシステムに依存しない、抽象化されたアドレスに基づいて実行できる。
【０００９】
この装置は、アドレス変換テーブル保持部からアドレス変換テーブルのうち、所定の物理アドレス範囲に対応する部分である部分変換テーブルをアドレス変換が実行される前に予めキャッシュメモリにロードしてもよい。
ロードされた部分変換テーブルにアドレス情報にて指定された論理アドレスを物理アドレスに変換するために必要なデータが含まれているときには、部分変換テーブルを参照してアドレス変換し、含まれていないときには、アドレス変換テーブル保持部からキャッシュメモリに新たな部分変換テーブルをロードしてもよい。
【００１０】
また、アドレス変換が実行される前に予めロードされた部分変換テーブルに必要なデータが含まれていないときには、その部分変換テーブルをキャシュメモリに保持した状態で、新たな部分変換テーブルをキャッシュメモリにロードしてもよい。
【００１１】
この装置は、メモリ空間におけるアドレスと、そのアドレスが指定する領域に対するアクセス条件を規定するアクセス属性情報とを対応づけたアクセス属性テーブルを保持するアクセス属性テーブル保持部を更に備え、アクセス処理部は、アクセス要求主体についてアクセス判定部によりアクセス許可されることを条件として、アクセス属性テーブルにて指定されたアクセス条件にしたがって受信されたコマンドにより指定されたアクセスを実行するとしてもよい。
【００１２】
本発明の別の態様は、コマンド送信補助装置である。
この装置は、所定のアクセス要求主体から、プロセッサのメモリ空間におけるアクセス対象領域のアドレスを指定するアドレス情報と共に送信されるメモリ空間のデータを制御するためのコマンドに対して、アクセス要求主体を識別するためのＩＤ情報を付与するＩＤ追加部と、メモリ空間におけるアドレスとそのアドレスが指定する領域に対してアクセスを許可されるべきアクセス要求主体のＩＤ情報とを対応づけたアクセス可否判定テーブルを参照して、アクセス要求主体によるアドレス情報にて指定されたアドレスへのアクセス可否を判定する外部の装置に対し、ＩＤ情報が付与されたコマンドを送信するコマンド送信部と、を備える。
【００１３】
ＩＤ情報は、アクセス要求主体と外部の装置を統括的に制御するソフトウェアによって、アクセス要求主体ごとに割り振られてもよい。このようなソフトウェアはＯＳであってもよいし、ＯＳに基づいて動作するアプリケーションソフトウェアであってもよい。
【００１４】
なお、本発明を方法、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
【図面の簡単な説明】
【００１５】
例示であって制約的な意味を持たない添付図面を参照しつつ以下に述べる実施例も、単なる例示にすぎず、各図面に現れる要素の数についても同様である。
【図１】情報処理装置の機能ブロック図である。
【図２】アクセス要求コマンドのデータ構造図である。
【図３】アクセス要求コマンドにより示された論理アドレスを物理アドレスに変換する過程を説明するための模式図である。
【図４】管理空間とアクセス可否との関係を説明するための模式図である。
【図５】コマンド送信補助装置の機能ブロック図である。
【図６】ＩＯＩＤ／セグメントアドレス追加部の処理内容を示す模式図である。
【図７】中間アドレス（ＩＮＴ＿ＡＤＤＲ）の生成方法を示す模式図である。
【図８】中間アドレス（ＩＮＴ＿ＡＤＤＲ）のうち、アドレス領域におけるセグメント、ページ、オフセットの関係を示す図である。
【図９】Ｉ／Ｏアクセス制御装置の機能ブロック図である。
【図１０】Ｉ／Ｏアクセス制御装置によるＩ／Ｏアクセス制御の過程を示すフローチャートである。
【図１１】図１０のＳ１２におけるアドレス変換処理を詳細に示すフローチャートである。
【発明を実施するための最良の形態】
【００１６】
好適な実施例を参照することにより、本発明を以下に説明する。この実施例は、本発明の範囲を制限することを意図したものではなく、本発明を具体的に説明することを意図したものである。
【００１７】
図１は、情報処理装置１００の機能ブロック図である。
情報処理装置１００は、統括制御部１１０、画像処理部１２０、メインメモリ１４０およびＩ／Ｏデバイス１６０を含む。また、情報処理装置１００は表示装置１５０と接続されている。表示装置１５０は、統括制御部１１０および画像処理部１２０の処理の結果得られた画像、映像を出力する。Ｉ／Ｏデバイス１６０は、サウスブリッジのように他のデータ処理装置とのＩ／Ｏインタフェースとなる装置である。Ｉ／Ｏデバイス１６０では、ＵＳＢ（Universal Serial Bus）コントローラ、ＨＤＤ（Hard Disk Drive）コントローラ、イーサネットコントローラ等（イーサネットは登録商標）が、後述するコマンド送信補助装置２００に接続される。情報処理装置１００と接続されるＩ／Ｏデバイス１６０は、複数個、また、複数種類であってよい。統括制御部１１０や画像処理部１２０はそれぞれワンチップの電子デバイスとして形成されており、お互いは物理的に分離されている。統括制御部１１０と画像処理部１２０があわせて、ワンチップの電子デバイスとして形成されてもよい。
【００１８】
図１などにおいて、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩ（Large Scale Integration）で構成することができ、ソフトウェア的には、メモリにロードされた予約管理機能のあるプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１９】
また、この情報処理装置１００では、情報処理装置１００を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するオペレーティングシステム（以下、単に「ＯＳ（Operating System）」とよぶ）が実行される。ＯＳ上で複数のアプリケーションソフトウェアが実行される。本実施例における情報処理装置１００のＯＳ階層は、上位から、ユーザ層、カーネル層、ハイパーバイザ（Hypervisor）層の３階層となっている。以下、ハイパーバイザ層を管理するソフトウェアのことを「特権ソフトウェア」とよぶことにする。ユーザ層、カーネル層とハイパーバイザ層のソフトウェアが一体となって、情報処理装置１００の「ＯＳ」として機能している。
【００２０】
統括制御部１１０は、１つのＰＵ（Processing Unit）１１２と複数のＳＰＵ（Synergistic-Processing Unit）１１６、メモリコントローラ１４２およびＩ／Ｏアクセス制御装置３００を含む。ＰＵ１１２およびＳＰＵ１１６、メモリコントローラ１４２、Ｉ／Ｏアクセス制御装置３００はバス１１８により相互通信可能である。メモリコントローラ１４２には、メインメモリ１４０が接続される。また、情報処理装置１００はバス１１８を介して別の情報処理装置１００とも接続可能である。
【００２１】
ＰＵ１１２は、各アプリケーションにおける基本処理単位としてのタスクを各ＳＰＵ１１６に割り当てる。あるいは、ＰＵ１１２自身がタスクを実行してもよい。ＰＵ１１２は、演算実行主体としてメインプロセッサ１４８を含む。各ＳＰＵ１１６が割り当てられたタスクを実行することにより、複数のタスクが並列処理される。ＳＰＵ１１６は、演算実行主体としてのサブプロセッサ１４６とローカルな記憶領域としてローカルメモリ１４４を含む。ＯＳはＰＵ１１２により実行される。
【００２２】
したがって、統括制御部１１０の中でＰＵ１１２の管理下にあるメモリ空間はメインメモリ１４０と複数のローカルメモリ１４４により形成されることになる。以下、このような「ＰＵ１１２の管理下にあるメモリ空間」のことを単に「管理空間」とよぶことにする。詳しくは後述するが、ＵＳＢコントローラや画像処理用ＤＭＡＣ（Direct Memory Access Controller）１２２、ディスプレイコントローラ１２６のように、統括制御部１１０の外部に存在し、ＤＭＡ転送を要求する装置としてのＤＭＡリクエスタは、Ｉ／Ｏアクセス制御装置３００を介して管理空間にアクセスできる。すなわち、ＵＳＢコントローラや画像処理用ＤＭＡＣ１２２は、コマンド送信補助装置２００とＩ／Ｏアクセス制御装置３００を介して管理空間へのデータのＲＥＡＤ／ＷＲＩＴＥを実行する。以下、情報処理装置１００の外部から管理空間にアクセスする装置のことをまとめて「アクセス要求主体」とよぶことにする。
【００２３】
ＰＵ１１２により実行される処理のことを「メインプロセス」、ＳＰＵ１１６により実行される処理のことを「サブプロセス」とよぶ。ＰＵ１１２は、ユーザインタフェースに関する処理のように比較的優先度が高い情報処理装置１００全体を統括する処理を実行する。これに対して、ＳＰＵ１１６は、比較的優先度が低いバックグラウンドで実行される計算のようにメインプロセスの下請け的な処理を実行する。
【００２４】
ＳＰＵ１１６に含まれる図示しないＤＭＡＣは、画像処理部１２０に内蔵されるグラフィックスメモリ１２８やメモリコントローラ１４２を介して接続されるメインメモリ１４０との間のデータ転送、データ退避などをＰＵ１１２またはＳＰＵ１１６からの命令によって制御する。
【００２５】
Ｉ／Ｏアクセス制御装置３００は、アクセス要求主体からのアクセス要求コマンドを統括的に制御する。ここでいうアクセス要求コマンドとは、先述したようにＰＵ１１２の管理空間に対するデータの書き込みや管理空間のデータの読み出しを要求するコマンドである。アクセス要求コマンドについては、次の図２に関連して詳述する。ＰＵ１１２の管理空間は、メモリコントローラ１４２に接続されるメインメモリ１４０と各ＳＰＵ１１６のローカルメモリ１４４にマッピングされる。この管理空間には、他の記憶領域、たとえば、別の情報処理装置１００の記憶領域がマッピングされてもよい。アクセス要求主体がＰＵ１１２の管理空間にアクセスするときには、Ｉ／Ｏアクセス制御装置３００に対してアクセス要求コマンドを送信する。Ｉ／Ｏアクセス制御装置３００は、アクセス要求コマンドを受け取り、管理空間に対するＲＥＡＤ／ＷＲＩＴＥを制御する。
【００２６】
メインメモリ１４０は、管理空間の一部にマッピングされる記憶領域である。メインメモリ１４０には、タスクの実行状態に関連するデータが格納される。たとえば、統括制御部１１０によりコンピュータグラフィックスに関する座標計算が実行されて得られた座標データなどが一時的に格納される。また、このメインメモリ１４０には、画像処理部１２０により生成されたデータが退避される場合もある。ローカルメモリ１４４も、管理空間の一部にマッピングされる記憶領域であり、主としてサブプロセス実行のための作業用データを格納する。
【００２７】
画像処理部１２０は、画像処理を専用に実行するユニットであり、たとえば、レンダリング処理を実行する。画像処理部１２０は、統括制御部１１０からの指示により画像処理を実行する。画像処理部１２０は、統括制御部１１０により処理されるそれぞれのタスクに関連する画像処理を行い、生成した画像、映像を表示装置１５０に出力する。画像処理部１２０は、複数の画像処理を時分割して並列的に実行してもよい。
【００２８】
画像処理部１２０は、メモリコントローラ１３８、グラフィックスメモリ１２８、画像処理用ＤＭＡＣ１２２、演算ユニット１３０、ディスプレイコントローラ１２６、制御ブロック１２４およびコマンド送信補助装置２００を含む。これらのユニット同士も、バス１１８で接続されており、各ユニット間で相互通信可能である。グラフィックスメモリ１２８はメモリコントローラ１３８を介してバス１１８に接続される。演算ユニット１３０は、画像処理用ＤＭＡＣ１２２を介してバス１１８に接続される。
【００２９】
グラフィックスメモリ１２８は、画像処理部１２０により使用、管理されるグラフィックスデータを記憶するためのメモリ領域である。グラフィックスメモリ１２８には、画像フレームデータが格納されるフレームバッファやＺバッファに加えて、画像フレームデータを描画する際に参照される基本データである頂点データ、テクスチャデータ、カラールックアップテーブルなどのデータに対応する領域が用意されている。
【００３０】
制御ブロック１２４は、画像処理部１２０全体を制御するブロックである。制御ブロック１２４は、演算ユニット１３０、グラフィックスメモリ１２８、ディスプレイコントローラ１２６を統括的に制御し、各ブロック間のデータ転送の同期管理やタイマー管理等を行う。
【００３１】
画像処理用ＤＭＡＣ１２２は、統括制御部１１０、メインメモリ１４０およびグラフィックスメモリ１２８の間のデータ転送、データ退避などを制御ブロック１２４からの命令によって制御する。
【００３２】
ディスプレイコントローラ１２６は、水平および垂直同期信号を生成し、表示装置１５０の表示タイミングにしたがって、グラフィックスメモリ１２８に格納されるフレームバッファから画像フレームデータのピクセルデータをライン状に順次読み込んでいく。さらにディスプレイコントローラ１２６は、ライン状に読み込まれたピクセルデータを、ＲＧＢ（Red-Green-Blue）のカラー値からなるデジタルデータから表示装置１５０に対応したフォーマットに変換して出力する。
【００３３】
演算ユニット１３０は、制御ブロック１２４からの命令にしたがって、グラフィックスに関するさまざまな演算処理を行う。その処理の一例としては、３次元モデリングデータをもとに座標変換、陰面消去、シェーディングを行って画像フレームデータを作成し、フレームバッファに書き込む一連のレンダリング処理などが挙げられる。
【００３４】
演算ユニット１３０は、特に３次元グラフィックスに関する処理を高速に行うために、ラスタライザ１３２、シェーダユニット１３４、テクスチャユニット１３６などの機能ブロックを含む。
【００３５】
ラスタライザ１３２は、描画する基本物体（以下、「プリミティブ」とよぶ）の頂点データを統括制御部１１０から受け取り、３次元空間上のプリミティブを投影変換により描画平面上の図形に変換するビュー変換を行う。さらに、描画平面上の図形を、描画平面の水平方向に沿ってスキャンしながら、一列ごとに量子化されたピクセルに変換するラスタ処理を行う。このラスタライザ１３２によってプリミティブがピクセル展開されて、各ピクセルごとにピクセル情報を算出する。このピクセル情報には、ＲＧＢカラー値、透明度を表すα値、視点からの奥行きを表すＺ値が含まれる。
【００３６】
ラスタライザ１３２は、スキャンラインに沿って所定の大きさのピクセル領域を生成し、シェーダユニット１３４、テクスチャユニット１３６へと出力する。ラスタライザ１３２から出力されるピクセル領域は、一度キューにスタックされ、シェーダユニット１３４はスタックされたピクセル領域を順に処理していく。
【００３７】
シェーダユニット１３４は、ラスタライザ１３２により算出されたピクセル情報をもとにシェーディング処理を行い、テクスチャユニット１３６により得られたテクセル情報をもとに、テクスチャマッピング後のピクセル色を決定し、グラフィックスメモリ１２８内のフレームバッファにシェーディング処理後の画像フレームデータを書き込む。さらにシェーダユニット１３４はフレームバッファに書き込まれた画像フレームデータに対してフォギング、アルファブレンディング等の処理を行い最終的な描画色を決定してフレームバッファの画像フレームデータを更新する。
【００３８】
テクスチャユニット１３６は、シェーダユニット１３４からテクスチャデータを指定するパラメータを受け取り、要求されたテクスチャデータをグラフィックスメモリ１２８内のテクスチャバッファを読み出し、所定の処理を行った後にシェーダユニット１３４に対して出力する。
【００３９】
画像処理部１２０はプリミティブの頂点データなど画像生成のために必要な基本情報や画像生成の開始指示を統括制御部１１０から与えられると、統括制御部１１０とは独立して画像処理を実行する。画像処理用ＤＭＡＣ１２２は、画像処理部１２０により生成されたデータをグラフィックスメモリ１２８や管理空間に転送する。
【００４０】
画像処理部１２０内のアクセス要求主体が管理空間にデータを転送するとき、画像処理部１２０に含まれるコマンド送信補助装置２００は、画像処理部１２０から統括制御部１１０のＩ／Ｏアクセス制御装置３００に対して、アクセス要求コマンドを送信する。コマンド送信補助装置２００は、アクセス先となる管理空間の論理アドレス、アクセス要求主体を識別するためのＩＤ情報（以下、「ＩＯＩＤ（Input/Output device ID）」とよぶ）、コマンド（ＲＥＡＤ／ＷＲＩＴＥ）をパケット化したアクセス要求コマンドを送信する。書き込み指示の場合、アクセス要求コマンドにつづいて、書き込み対象のデータも送信される。Ｉ／Ｏアクセス制御装置３００は、受信したアクセス要求コマンドにしたがって、アクセス要求主体からの管理空間に対するアクセスを制御する。
【００４１】
コマンド送信補助装置２００は、画像処理部１２０のみならず、Ｉ／Ｏデバイス１６０にも搭載される。Ｉ／Ｏデバイス１６０に搭載されるコマンド送信補助装置２００も、Ｉ／Ｏデバイス１６０から統括制御部１１０に対して、アクセス要求コマンドを送信する。画像処理部１２０においてアクセス要求主体となるのは画像処理用ＤＭＡＣ１２２やディスプレイコントローラ１２６である。Ｉ／Ｏデバイス１６０についてアクセス要求主体となるのは、先述したＵＳＢコントローラや、ＨＤＤコントローラ、イーサネットコントローラ等である。コマンド送信補助装置２００は、各種アクセス要求主体が管理空間へのアクセスを要求するときに、所定フォーマットのアクセス要求コマンドを生成して、統括制御部１１０に送信する装置である。Ｉ／Ｏアクセス制御装置３００は、さまざまなコマンド送信補助装置２００を介してさまざまなアクセス要求主体からのアクセス要求を受け取り、管理空間へのアクセスを制御する装置である。
【００４２】
コマンド送信補助装置２００の詳細については、図２以降、特に図５に関連して詳述する。
【００４３】
図２は、アクセス要求コマンド１６２のデータ構造図である。
同図に示すアクセス要求コマンド１６２は、コマンド送信補助装置２００からＩ／Ｏアクセス制御装置３００に対して送出される。ＩＯＩＤ領域１７２は、コマンド送信補助装置２００がアクセス要求主体を一意に識別するために付与するＩＯＩＤを示す。ＩＯＩＤは、情報処理装置１００において各アクセス要求主体を一意に識別するＩＤである。コマンド領域１７９は、ＲＥＡＤやＷＲＩＴＥなどのコマンド内容を示す。アドレス領域１７０は、管理空間におけるアクセス先のアドレスを示す。このアドレスは、論理的なアドレスであって物理アドレスを直接的に指定するものではない。論理アドレス空間は、セグメントに分割されており、セグメントはページに分割される。各ページにおける具体的なアドレスはオフセットにより指定される。アドレス領域１７０は、セグメント領域１７４、ページ領域１７６、オフセット領域１７８を含む。セグメント領域１７４はセグメントを指定するセグメント値、ページ領域１７６はページを指定するページ値、オフセット領域１７８はそのページ内におけるオフセット値を示す。
【００４４】
アクセス要求コマンド１６２のうち、アドレス領域１７０については図６や図７に関連しても後述する。
【００４５】
図３は、アクセス要求コマンドにより示された論理アドレスを物理アドレスに変換する過程を説明するための模式図である。
【００４６】
このような変換処理はＩ／Ｏアクセス制御装置３００において実行される。Ｉ／Ｏアクセス制御装置３００は、アクセス要求コマンド１６２のアドレス領域１７０を抽出する。まず、セグメント値を抽出する。セグメント値に対して、予め定められたベース値が加算される。ベース値はＯＳにより割り当てられてもよいし、固定値であってもよい。このセグメント値に対するベース値の加算値が第１インデックス値となる。第１変換テーブル１８０は、第１インデックス値とページベース値を対応づけたデータテーブルである。第１変換テーブル１８０によりページベース値が特定される。
【００４７】
第１変換テーブル１８０のうち、第１インデックス欄１８４は、第１インデックス値を示す。ページサイズ欄１８５は、ページサイズを示す。ページベース値欄１８６は、ページベース値を示す。第１変換テーブル１８０により特定されたページベース値にページ領域１７６のページ値が加算される。この加算値が第２インデックス値となる。
【００４８】
第２変換テーブル１８２は、第２インデックス値とページ番号等を対応づけたデータテーブルである。第２変換テーブル１８２のうち、第２インデックス欄１８８は、第２インデックス値を示す。ページ番号欄１９０は、ページ番号を示す。ＩＯＩＤ欄１９２は、各ページについてアクセスを許可されるべきアクセス要求主体をＩＯＩＤにより示す。また、アクセス条件欄１９４は、該当ページにおけるアクセス属性情報を示す。アクセス属性情報については、後述する。なお、第１変換テーブル１８０や第２変換テーブル１８２は、ＯＳの特権ソフトウェアによって設定される。
【００４９】
第２インデックス値により、アクセス先のページ番号が特定される。特定されたページについて、アクセス要求コマンド１６２から抽出されるＩＯＩＤと、ＩＯＩＤ欄１９２のＩＯＩＤ値が一致すれば、当該ページに対するアクセスが許可される。アクセス許可されたとき、特定されたページのアドレスにオフセット値を加算して最終的に、具体的な物理アドレスが特定される。そして、アクセス条件欄１９４に示されるアクセス属性情報にしたがってアクセスが実行される。
【００５０】
アクセス属性情報とは、管理空間に対するアクセス方法を条件付けるための情報であり、具体的には、以下のようなものがある。
１．アクセス順序の強制をするか否か
【００５１】
通常、記録媒体に対するアクセスは必ずしもアクセス要求順に実行されるのではなく、メモリコントローラが実行しやすい順序でアクセスが実行される。このような処理方法は、一般にはアウトオブオーダー実行(Out of Order Execution)、あるいは、ウィークリーオーダー実行（Weakly Order Execution）とよばれている。アクセス条件欄１９４においては、アウトオブオーダー実行ではなく、アクセス要求順にしたがってアクセスすべきか否かを指定するための情報がアクセス属性情報として含まれる。アクセス順序が強制される設定のページの場合、そのページに対するアクセスは、すべてアクセス要求がなされた順に実行されるように処置される。このようにアクセス順序を強制する処理方法は、インオーダー実行（In Order Execution）、あるいは、ストリクトリィオーダー実行（Strictly Order Execution）とよばれる。アクセス順序の制御方法は、ＩＯＩＤごとに設定可能である。たとえば、ＩＯＩＤ＝００２２のアクセス要求主体が、ページＡを介してある物理アドレスにアクセスし、ＩＯＩＤ＝００２３のアクセス要求主体はページＡとは異なるページＢを介して同じ物理アドレスにアクセスするとする。ここで、第２変換テーブル１８２において、ページＡからのアクセスはストリクトリィオーダー実行、ページＢからのアクセスはアウトオブオーダー実行として設定すれば、同一の物理アドレスであっても、アクセス要求主体に応じて異なるアクセス順序制御が可能である。
２．キャッシュコヒーレンシ維持が必要か否か
【００５２】
メインメモリ１４０のようないわゆる主記憶のデータは、キャッシュメモリを介してアクセスされる。キャッシュメモリは、ＰＵ１１２やＳＰＵ１１６に内蔵される。ＰＵ１１２やＳＰＵ１１６はメインメモリ１４０よりも高速アクセスが可能なキャッシュメモリを利用して処理を実行することもできる。キャッシュメモリに書き込まれたデータは、メインメモリ１４０に反映される。ただし、その反映のタイミングによっては、キャッシュメモリとメインメモリ１４０との間でデータが一致しない期間が発生する。
【００５３】
外部からのアクセス要求に際し、キャッシュメモリのデータとメインメモリ１４０やローカルメモリ１４４のデータとの一貫性、いわゆるキャッシュコヒーレンシ（Cache Coherency）の維持が必要か否かを示す情報がアクセス属性情報として含まれる。
【００５４】
キャッシュコヒーレンシ維持設定されたページの場合、たとえば、スヌープ方式（Cache Snooping）により、どのキャッシュメモリに最新のデータが存在するかを検知した上で、各キャッシュメモリが必要なときに最新データを取得できるように自身の状態を変更する。そのほかにも、ディレクトリ方式（Directory-based Protocol）や共有キャッシュ（Shared Cache）のような、既知の方法によりキャッシュコヒーレンシを維持してもよい。
３．ページに対する書込を許可するか否か
【００５５】
該当ページに対して、ＲＥＡＤだけが許可されるか、ＲＥＡＤ／ＷＲＩＴＥ共に許可されるかを示す情報がアクセス属性情報として含まれる。
【００５６】
図４は、管理空間とアクセス可否との関係を説明するための模式図である。
【００５７】
アクセス要求主体のうち、画像処理用ＤＭＡＣ１２２のＩＯＩＤが「００２１」、ディスプレイコントローラ１２６のＩＯＩＤが「００２２」であるとして説明する。管理空間のうち、アクセス不能領域１９８とアクセス不能領域１９９は、画像処理用ＤＭＡＣ１２２もディスプレイコントローラ１２６もアクセス不可として設定されている領域である。これらの領域は、ローカルメモリ１４４にマップされているかもしれないし、メインメモリ１４０にマップされているかもしれない。ＩＯＩＤ「００２１」の画像処理用ＤＭＡＣ１２２は、アクセス可能領域１９６とアクセス可能領域２０１にアクセスできる。すなわち、第２変換テーブル１８２において、アクセス可能領域１９６とアクセス可能領域２０１にマッピングされているページについては、ＩＯＩＤ欄１９２においてＩＯＩＤ「００２１」が指定されている。
【００５８】
第２変換テーブル１８２により特定されたページについてＩＯＩＤ「００２１」が指定されているか否かを参照することにより、画像処理用ＤＭＡＣ１２２のアクセスが禁じられている領域へのアクセスを防ぐことができる。このように、情報処理装置１００において各アクセス要求主体を一意に識別するＩＯＩＤをチェックする方法によって、管理空間にマップされているメインメモリ１４０やローカルメモリ１４４を不正アクセスから保護している。
【００５９】
アクセス可能領域２０１は、ＩＯＩＤ「００２１」とＩＯＩＤ「００２２」のそれぞれのアクセス要求主体について、別々のページから２重にマッピングされている。一方のページＡはＩＯＩＤ「００２１」の画像処理側ＤＭＡＣ１２２からアクセスされ、他方のページＢはＩＯＩＤ「００２２」のディスプレイコントローラ１２６からアクセスされる。第２変換テーブル１８２において、ページＡにはＩＯＩＤ「００２１」が設定され、ページＢにはＩＯＩＤ「００２２」が設定されている。したがって、ＩＯＩＤ「００２１」の画像処理側ＤＭＡＣ１２２もＩＯＩＤ「００２２」のディスプレイコントローラ１２６も、アクセス可能領域２０１へのアクセスを許可される。ただし、画像処理側ＤＭＡＣ１２２がアクセス可能領域２０１へアクセスするために介するページと、ディスプレイコントローラ１２６が同じくアクセス可能領域２０１にアクセスするためのページは別々である。このように、第２変換テーブル１８２には、管理空間についてページ単位でＩＯＩＤごとのアクセス可否が設定される。すなわち、管理空間についてページ単位でアクセス要求主体に応じたアクセス条件を設定できるため、不正アクセスを防止しやすくなっている。
【００６０】
仮にＩＯＩＤ「００２１」の画像処理側ＤＭＡＣ１２２について、セグメント値＝１００、ページ値＝１０、オフセット値＝０であるとする。また、ＩＯＩＤ「００２２」のディスプレイコントローラ１２６について、セグメント値＝２００、ページ値＝１０、オフセット値＝２００であるとする。それぞれが指定するページは、共に、ページサイズが４ＫＢで、アクセス可能領域２０１内の同じ物理アドレス「２３４５００００」を指すとする。ＩＯＩＤ「００２１」の画像処理側ＤＭＡＣ１２２は物理アドレス＝２３４５００００をアクセス対象とし、ＩＯＩＤ「００２２」のディスプレイコントローラ１２６は、物理アドレス＝２３４５０２００（＝２３４５００００＋２００）をアクセス対象とする。２つの異なるアクセス要求主体は、共に、アクセス可能領域２０１にアクセスを許可されることになる。
【００６１】
変形例として、一つのページに対して、２つ以上のＩＯＩＤを設定できてもよい。たとえば、アクセス可能領域２０１にマッピングされているページＡについて、ＩＯＩＤ「００２１」とＩＯＩＤ「００２２」の両方がＩＯＩＤ欄１９２に設定されているとする。このとき、ＩＯＩＤ「００２１」の画像処理側ＤＭＡＣ１２２とＩＯＩＤ「００２２」のディスプレイコントローラ１２６は、共に、ページＡを介してアクセス可能領域２０１にアクセスできる。
【００６２】
仮に、アクセス要求コマンド１６２が指定するアドレスが物理アドレスを直接指定するものであっても、ＩＯＩＤによるチェックは有効に機能する。本実施例においては、アクセス要求コマンド１６２が指定するアドレスを物理アドレスを直接指定するものではない論理アドレスとし、独立したアドレス空間を使用できるため、さらに不正アクセスに対する堅牢性が向上する。
【００６３】
なお、アクセス可能領域１９６に含まれるページであっても、アクセス属性情報として書込禁止設定されているアドレス領域に対しては、正当なＩＯＩＤをもつアクセス要求主体であっても書込処理は禁止されることはもちろんである。
【００６４】
図５は、コマンド送信補助装置２００の機能ブロック図である。
コマンド送信補助装置２００は、コマンド送信部２０２、ＩＯＩＤ／セグメントアドレス追加部２０４およびコマンド取得部２０６を含む。
【００６５】
コマンド取得部２０６は、アクセス要求主体からコマンドを取得する。アクセス要求主体は、管理空間におけるアクセス先を指し示すアドレス（以下、「原アドレス」とよぶ）とＲＥＡＤまたはＷＲＩＴＥを示すコマンド、後述するＤＭＡリクエスタＩＤ（以下、「ＤＭＡＲＩＤ」とよぶ）をコマンド取得部２０６に渡す。ＤＭＡＲＩＤとはＤＭＡリクエスタを識別するためのＩＤであるが詳しくは後述する。コマンド取得部２０６は、コマンドと原アドレス、ＤＭＡＲＩＤを取得する。
【００６６】
ＩＯＩＤ／セグメントアドレス追加部２０４は、コマンド取得部２０６から、コマンド、原アドレス、ＤＭＡＲＩＤを受け取り、アクセス要求コマンド１６２を生成する。ここで、ＩＯＩＤ／セグメントアドレス追加部２０４は、アクセス要求主体を特定するためのＩＯＩＤをアクセス要求コマンド１６２に追加する。また、後述するセグメントアドレスをも追加する。コマンド送信部２０２は、こうして、少なくともＩＯＩＤ、アクセス先の論理アドレス、コマンド、を含むアクセス要求コマンド１６２をＩ／Ｏアクセス制御装置３００に対して送信する。コマンド送信部２０２は、アクセス要求コマンド１６２をＩ／Ｏアクセス制御装置３００に送信する。
【００６７】
図６は、ＩＯＩＤ／セグメントアドレス追加部２０４の処理内容を示す模式図である。
ＩＯＩＤ／セグメントアドレス追加部２０４は、ＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＵＡＲレジスタ２５０、マスクコントローラ２５２、変換部２５４、ＵＳ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＴＡＢＬＥレジスタ２５６を含む。
【００６８】
アクセス要求主体が指定する原アドレスはコマンド取得部２０６を介してマスクコントローラ２５２に入力される。各アクセス要求主体にはＤＭＡＲＩＤとよばれるＩＯＩＤとは異なるＩＤが付与されている。ＤＭＡＲＩＤは、コマンド送信補助装置２００がアクセス要求主体を一意に識別できるＩＤであればよい。ただし、各アクセス要求主体のＤＭＡＲＩＤは、製品のシステム構成や製造時期によって異なるかもしれない。たとえば、システム構成Ａにおけるディスプレイコントローラ１２６のＤＭＡＲＩＤは「１０２２５」、システム構成Ｂにおけるディスプレイコントローラ１２６のＤＭＡＩＤは「００４５２」かもしれない。また、同じシステム構成Ａのディスプレイコントローラ１２６であっても、製造時期によってＤＭＡＲＩＤは異なるかもしれない。これに対して、ＩＯＩＤはディスプレイコントローラ１２６の種類や製造時期にかかわらず、ディスプレイコントローラ１２６を他のアクセス要求主体から識別するためのＩＤである。ＤＭＡＲＩＤはＩＯＩＤ変換テーブル２６０によりＩＯＩＤに変換される。システム構成Ａのディスプレイコントローラ１２６もシステム構成Ｂのディスプレイコントローラ１２６も、ＩＯＩＤ変換テーブル２６０により共にＩＯＩＤ「００２２」に変換されてもよい。すなわち、ＩＯＩＤは、情報処理装置１００において、アクセス要求主体の種類を特定するＩＤである。ＩＯＩＤ「００２２」のアクセス要求主体とはディスプレイコントローラ１２６であるという対応付けは、ＯＳにより設定可能である。
【００６９】
統括制御部１１０のＩ／Ｏアクセス制御装置３００は、先述したようにＩＯＩＤによって管理空間へのアクセス可否を判定する。Ｉ／Ｏアクセス制御装置３００は、このＩＯＩＤの代わりにＤＭＡＲＩＤをベースとしてアクセス可否判定してもよい。しかし、ＤＭＡＲＩＤをベースとしてアクセス制御するためには、Ｉ／Ｏアクセス制御装置３００はアクセス要求主体としてどのようなＤＭＡリクエスタが導入されているか、どのようなＤＭＡＲＩＤが登録されているかを知る必要がある。これに対して、本実施例のＩ／Ｏアクセス制御装置３００は、あらかじめアクセス要求主体の種類に対応づけられたＩＯＩＤをベースとして動作するため、そのＩＯＩＤによって特定されるアクセス要求主体が具体的にどのような製品であるかについて関知する必要がない。いわば、ＩＯＩＤは情報処理装置１００においてグローバルに特定されるＩＤである。ＩＯＩＤ変換テーブル２６０は、さまざまなＤＭＡＲＩＤをＩＯＩＤに変換するためのテーブルである。ＩＯＩＤ変換テーブル２６０により、アクセス要求コマンド１６２の受信側である統括制御部１１０からみたシステム構成を抽象化できる。ＩＯＩＤ変換テーブル２６０の変換規則はＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＴＡＢＬＥレジスタ２５６を介してＯＳの特権ソフトウェアにより設定可能である。したがって、ＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＴＡＢＬＥレジスタ２５６によりＩＯＩＤ変換テーブル２６０を設定変更するだけで、システムの構成変更に対応できる。
【００７０】
同様にして、セグメント選択テーブル２６２ではＤＭＡＲＩＤに基づいて８ビットのセグメントアドレス（ＳＥＧ＿ＡＤＤＲ）が選択される。マスク変換テーブル２６４では、５ビットのＤＭＡＲＩＤに基づいて４ビットのマスクビット（ＭＡ＿ＭＡＳＫ）が選択される。特権ソフトウェアはＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＴＡＢＬＥレジスタ２５６を介してセグメント選択テーブル２６２やマスク変換テーブル２６４の値を設定できる。ＩＯＩＤ変換テーブル２６０により変換されたＩＯＩＤは、先述のようにアクセス要求コマンド１６２の一部となる。８ビットのＳＥＧ＿ＡＤＤＲ、４ビットのＭＡ＿ＭＡＳＫ、アクセス要求主体が元々指定していたアクセス先の３２ビットの原アドレス（ＡＤＤＲ）、ＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＵＡＲレジスタ２５０の２８ビットの設定値がマスクコントローラ２５２に入力される。マスクコントローラ２５２は、次の図７に示す処理方法により、６４ビットの中間アドレス（ＩＮＴ＿ＡＤＤＲ）を生成する。ＩＯＩＤ／セグメントアドレス追加部２０４は、このＩＮＴ＿ＡＤＤＲに１１ビットのＩＯＩＤとコマンドを追加してアクセス要求コマンド１６２を生成する。
【００７１】
図７は、中間アドレス（ＩＮＴ＿ＡＤＤＲ）の生成方法を示す模式図である。
中間アドレス（ＩＮＴ＿ＡＤＤＲ）は６４ビットであり、第０ビットから第２７ビットまでにはＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＵＡＲレジスタ２５０から出力された設定値となる。特権ソフトウェアはＵＣ＿ＡＤＤＲ＿ＴＲＡＮＳ＿ＵＡＲレジスタ２５０も設定可能である。第２８ビットから第３１ビットまでの４ビットは、ＳＥＧ＿ＡＤＤＲの上位４ビットである。第３６ビットから第６３ビットまでの２８ビットはＡＤＤＲの下位２８ビットである。第３２ビットから第３５ビットまでは、ＡＤＤＲの上位４ビットとＭＡ＿ＭＡＳＫの論理積である４ビット値にＳＥＧ＿ＡＤＤＲの下位４ビットを論理和したものである。こうして、計６４ビットの中間アドレスが生成される。本実施例においては、中間アドレス（ＩＮＴ＿ＡＤＤＲ）の第０ビットから第２７ビットまでは予約領域であり、第２８ビットから第６３ビットまでがアドレス領域１７０となる。
【００７２】
図８は、中間アドレス（ＩＮＴ＿ＡＤＤＲ）のうち、アドレス領域１７０におけるセグメント、ページ、オフセットの関係を示す図である。
【００７３】
ページサイズが４ＫＢのときには、ページアドレス幅は１６ビットとなり、ページ数は６５５３６となる。ページサイズが６４ＫＢのときには、ページアドレス幅は１２ビットとなり、ページ数は４０９６となる。ページサイズが１ＭＢのときには、ページアドレス幅は８ビットとなり、ページ数は２５６となる。ページサイズが１６ＭＢのときには、ページアドレス幅は４ビットとなり、ページ数は１６となる。使用されるページサイズは、第１変換テーブル１８０のページサイズ欄１８５によって決まる。このように、アクセス要求コマンド１６２においては複数のページサイズをサポートできる。
【００７４】
図９は、Ｉ／Ｏアクセス制御装置３００の機能ブロック図である。
Ｉ／Ｏアクセス制御装置３００は、コマンド受信部３０２、アクセス判定部３０４、アドレス変換部３０６、キャッシュ処理部３０８、部分情報保持部３１０およびアクセス処理部３１２を含む。
【００７５】
コマンド受信部３０２は、コマンド送信補助装置２００から送信されたアクセス要求コマンド１６２を受信する。キャッシュ処理部３０８は、アドレス情報保持部３１４から図３に示した第１変換テーブル１８０や第２変換テーブル１８２の一部のデータを部分情報保持部３１０にロードする。
【００７６】
アドレス情報保持部３１４は、メインメモリ１４０の一部として構成されてもよい。また、部分情報保持部３１０は、アドレス情報保持部３１４よりも高速にアクセスが可能な内蔵キャッシュメモリとして構成されてもよい。以下、アドレス情報保持部３１４に保持される第１変換テーブル１８０や第２変換テーブル１８２のことを、まとめて「アドレス変換テーブル」とよぶ。また、部分情報保持部３１０にロードされるアドレス変換テーブルの一部のことをアドレス変換テーブルと区別するために「部分変換テーブル」とよぶ。
【００７７】
キャッシュ処理部３０８による部分情報保持部３１０とアドレス情報保持部３１４の間のデータ転送操作のことを「リフィル（Refill）」ともよぶ。
【００７８】
アドレス変換部３０６は、部分情報保持部３１０に保持されている部分変換テーブルを参照して、論理アドレスを物理アドレスに変換する。変換方法については、図３に示した通りである。部分情報保持部３１０に保持される部分変換テーブルにおいて、論理アドレスを物理アドレスに変換するためのデータが含まれていないときには、キャッシュ処理部３０８は、該当部分を含む部分変換テーブルをアドレス情報保持部３１４から部分情報保持部３１０に新たにリフィルする。アドレス変換により特定された物理アドレスは、アクセス処理部３１２やアクセス判定部３０４に通知される。
【００７９】
アクセス判定部３０４は、アドレス変換部３０６において特定されたページについて、ＩＯＩＤが一致するか、すなわち、アクセスが可能な領域であるか否かを判定する。判定結果は、アクセス処理部３１２に通知される。アクセス処理部３１２は、アクセス判定部３０４によりアクセス許可されたことを条件として、アドレス変換部３０６から通知された物理アドレスに対して指定されたコマンドにより管理空間へのアクセスを実行する。このとき、アクセス判定部３０４は、ページについて指定されたアクセス属性情報にしたがって、アクセスを実行する。アクセス処理部３１２のアクセス先は、メインメモリ１４０やローカルメモリ１４４など、ＰＵ１１２の管理空間にマップされている記録媒体である。
【００８０】
アクセス処理部３１２は、さまざまなアクセス要求主体のアクセス要求のうち、有効なものをキューに保持する。アクセス処理部３１２は、キューからアクセス要求を順次取り出して管理空間へのアクセスを実行する。アクセス処理部３１２は、ＤＭＡリクエスタＡによるメインメモリ１４０へのアクセスを実行しているときに、ＤＭＡリクエスタＢによるローカルメモリ１４４へのアクセスを実行することもできる。このようにアクセス処理部３１２は、複数のＤＭＡリクエスタによる複数種類のアクセスを並列実行することができる。
【００８１】
なお、Ｉ／Ｏアクセス制御装置３００は、アドレス情報保持部３１４に相当する部分を含んで構成されてもよい。
【００８２】
部分情報保持部３１０は、ラインともよばれる一定サイズのブロック単位でデータを管理する。また、アドレス情報保持部３１４も、一定サイズのブロック単位でデータを管理する。部分情報保持部３１０の各ブロックには、アドレス情報保持部３１４のいずれかのブロックのデータが格納される。部分情報保持部３１０のブロックサイズに比べて、アドレス情報保持部３１４のブロックサイズは大きい。そのため、部分情報保持部３１０のブロックには、アドレス情報保持部３１４のブロックのデータの一部が格納される。
【００８３】
本実施例において、キャッシュ処理部３０８は、第１変換テーブル１８０についてはダイレクトマップ（Direct Mappied）方式、第２変換テーブル１８２については４ウェイセットアソシアティブ方式（4-way Set Associative）により、部分変換テーブルのデータを部分情報保持部３１０にロードする。なお、フルアソシアティブ（Filly Associative）方式のような既知の方法にてリフィルが実行されてもよい。
【００８４】
本実施例における部分情報保持部３１０は、数種類の部分変換テーブルを保持可能である。言い換えれば、アドレス変換テーブルから複数種類の物理アドレス範囲が部分変換テーブルとして保持される。キャッシュ処理部３０８は、常時、所定の論理アドレス範囲に対応する部分変換テーブルを１種類以上、リフィルしておいてもよい。アドレス変換部３０６は、部分情報保持部３１０に保持されている部分変換テーブルにアドレス変換に必要なデータが含まれていたとき、すなわち、ヒットしたときには、その部分変換テーブルを参照して物理アドレスを特定する。このような場合、アドレス情報保持部３１４に比べて高速アクセスが可能な部分情報保持部３１０へのアクセスだけでアドレス変換処理を実行できる。このように、アドレス変換を実行する前にあらかじめ部分変換テーブルを部分情報保持部３１０にリフィルしておくことを「先読みリフィル」とよぶ。先読みリフィルは、ＯＳの特権ソフトウェアによって実行されてもよい。
【００８５】
一方、先読みリフィルによって部分情報保持部３１０に保持されていた部分変換テーブルではアドレス変換を実行できなかったとき、すなわち、ミスヒット時においては、キャッシュ処理部３０８は新たな部分変換テーブルを部分情報保持部３１０にリフィルする。そして、アドレス変換部３０６は、この新たにリフィルされた部分変換テーブルを参照して物理アドレスを特定する。このように、ミスヒットが発生したときに実行される部分変換テーブルのリフィルのことを「後読みリフィル」とよぶ。
【００８６】
本実施例においては、先読みリフィルされた部分変換テーブルにおいてミスヒットが発生しても、その部分変換テーブルを部分情報保持部３１０に保持したまま、新たな部分変換テーブルが後読みリフィルされる。
【００８７】
先読みリフィルされた部分変換テーブルは、部分情報保持部３１０においてロック状態におかれてもよい。ロックされている部分変換テーブルは部分情報保持部３１０から除去されない。そのため、新たにリフィルされた部分変換テーブルによって上書きされることがない。一方、ロックされていない部分変換テーブルは、新たなリフィルにともなって部分情報保持部３１０から除去されうる。このような方法により、先読みリフィルによる予測に基づくリフィルと、後読みリフィルによる受信したアクセス要求に基づくリフィルを効果的に併用できる。
【００８８】
本実施例によれば、先読みリフィルという予測によるメリットを活かしつつ、ミスヒット時における後読みリフィルを実行するため、トータルとしてのヒット率を向上させやすくなる。
【００８９】
たとえば、部分情報保持部３１０が４種類の部分変換テーブルを保持可能である場合、２種類は先読みリフィル、残り２種類は後読みリフィルされる部分変換テーブルであってもよい。先読みリフィルされた部分変換テーブルの保持領域を先読み領域、後読みリフィルされた部分変換テーブルの保持領域を後読み領域とよぶことにする。新たに先読みリフィルが実行される場合には、先読み領域の部分変換テーブルが入れ替えとなる。また、新たに後読みリフィルが実行される場合には、後読み領域の部分変換テーブルが入れ替えとなる。なお、リフィルに際して部分情報保持部３１０の部分変換テーブルを部分情報保持部３１０から除くためのアルゴリズムとしても、ラウンドロビン（Round Robin）、ＬＲＵ（Least Recen）、ランダム（Random）など、既知のアルゴリズムであってよい。
【００９０】
図１０は、Ｉ／Ｏアクセス制御装置３００によるアクセス制御過程を示すフローチャートである。
コマンド受信部３０２は、受信したアクセス要求コマンド１６２からＩＯＩＤを抽出する（Ｓ１０）。アドレス変換部３０６は、論理アドレスを物理アドレスに変換する（Ｓ１２）。Ｓ１２の処理については、図１１に関連して後に詳述する。アクセス判定部３０４は、アクセス要求コマンド１６２のＩＯＩＤが、第２変換テーブル１８２において特定されたページのＩＯＩＤと一致するか判定する（Ｓ１４）。一致すれば（Ｓ１４のＹ）、アクセス処理部３１２はアクセス属性情報にしたがって、管理空間へのアクセスを実行する（Ｓ１６）。一致しなければ（Ｓ１４のＮ）、アクセス処理部３１２は送信元のコマンド送信補助装置２００に対してエラーを通知する（Ｓ２０）。エラー通知は、ＯＳに対してエラーメッセージとしてイベント通知されてもよい。この場合には、アクセスは拒否される。
【００９１】
図１１は、図１０のＳ１２におけるアドレス変換処理を詳細に示すフローチャートである。
まず、アドレス変換部３０６は、部分情報保持部３１０にリフィルされている部分変換テーブルによりアドレス変換可能か、すなわち、ヒットするか否かを判定する（Ｓ３０）。ヒットすれば（Ｓ３０のＹ）、アドレス変換部３０６はその部分変換テーブルを参照して物理アドレスを特定する（Ｓ３４）。ミスヒットの場合（Ｓ３０のＮ）、キャッシュ処理部３０８は該当する部分変換テーブルを後読みリフィルする（Ｓ３２）。そして、後読みリフィルされた部分変換テーブルにより、物理アドレスを特定する（Ｓ３４）。
【００９２】
以上、本実施例に示す方法によれば、Ｉ／Ｏアクセス制御装置３００にてアクセス要求主体をＩＯＩＤによって一元的に管理できる。そのため、Ｉ／Ｏアクセス制御装置３００は、外部のＤＭＡリクエスタからの不正なアクセスを未然に防止することができる。情報処理装置１００に導入されているＤＭＡリクエスタが、どのような製品で、どのようなポリシにてＤＭＡＲＩＤを設定されていても、コマンド送信補助装置２００は、管理下のＤＭＡリクエスタに対して一意なＩＯＩＤを付加できる。図６に関連して説明したように特権ソフトウェアを介して、ＩＯＩＤやＳＥＧ＿ＡＤＤＲ、ＭＡ＿ＭＡＳＫを任意に設定可能である。そのため、Ｉ／Ｏアクセス制御装置３００は、外部にどのようなＤＭＡリクエスタが存在しても、アクセス要求コマンド１６２のＩＯＩＤを参照することにより、各ＤＭＡリクエスタを統合管理できる。
【００９３】
このような処理方法によれば、特権ソフトウェアがＤＭＡリクエスタを制御するデバイスドライバをコントロール下におくことができる。従来の、カーネル層とユーザ層という２階層ＯＳモデルの場合、デバイスドライバはユーザ層よりも下位層に位置するため、物理アドレスを直接指定して記憶領域にアクセスしていた。これに対して、本実施例のような３階層モデルであれば、論理アドレスにより管理空間にアクセスすることになる。デバイスドライバが直接記憶領域にアクセスするのではなく、特権ソフトウェアとは異なるソフトウェア階層で動作するためである。特権ソフトウェアは、カーネル層で動作するＯＳの種類に応じて、アドレス領域１７０の論理アドレスを設定する。たとえば、カーネル層の上で、ＯＳ−ＡとＯＳ−Ｂが動作するとする。ＯＳ−Ａ動作時においては、特権ソフトウェアはＯＳ−Ａに対応してアドレス情報保持部３１４の第１変換テーブル１８０や第２変換テーブル１８２変換部２５４の各テーブルを設定し、ＯＳ−Ｂ動作時においては、ＯＳ−Ｂに対応して設定してもよい。このようなマルチＯＳ環境において、ＤＭＡリクエスタが指定する論理アドレスをＯＳに応じて異なる物理アドレスに変換することができる。
【００９４】
デバイスドライバのプログラマにとっても、開発効率が向上するメリットがある。デバイスドライバなどＩ／Ｏデバイス１６０を制御するためのプログラムを作成するときには、論理アドレスを使用し、更に、ＩＯＩＤというスキームにしたがっていれば、他のソフトウェアから独立していて、かつ、抽象化された環境が提供されるため、開発負担が軽減される。
【００９５】
また、特権ソフトウェアが、第１変換テーブル１８０、第２変換テーブル１８２を設定すると、ページ単位で、ＩＯＩＤによるアクセス可否や、アクセス属性情報によるアクセス条件を管理できるので、Ｉ／Ｏアクセス制御装置３００にてきめ細かく管理空間のアクセス方法を制御できる。
【００９６】
近年、商業用プログラムは多くのプログラマ、あるいは、多くのサードパーティから提供されるソフトウェアモジュールの集合体となっており、メモリに対するアクセス制御についてはますます精密な設計が必要となってきている。そのため、本実施例にて示した方法は、このような要請を解決する上で有効である。
【００９７】
また、デバイスドライバが論理アドレスを使用できるため、ユーザ層のソフトウェアが確保した物理アドレス上ではページ単位では不連続だが、論理アドレス上では連続しているデータ転送用の領域に対して、ＤＭＡリクエスタがダイレクトに連続してデータ転送を行うことができる。
【００９８】
従来の方法においては、ＤＭＡリクエスタは物理アドレスのみを使用できるため、データ転送用の領域がページ単位としては物理アドレス上において不連続であった場合、ＤＭＡのデータ転送をこの不連続領域にあわせて区切る必要があった。あるいは、あらかじめＤＭＡリクエスタが使用するデータ転送用の領域については物理アドレスが連続となるように、ＯＳが領域管理する必要があった。
【００９９】
さらに、アドレス変換テーブルとして示した第１変換テーブル１８０や第２変換テーブル１８２は、ＩＯＩＤによるアクセス可否判定やアクセス方法を決定づけるアドレス属性情報を含むことにより、アドレス変換や、アクセス可否判定などの各処理を効率的に実行できる。なぜならば、リフィルされた部分変換テーブルにおいてアドレス変換に必要なデータが含まれていれば、その部分変換テーブルによってアクセス可否判定やアクセス条件の特定といった処理が可能だからである。
【０１００】
また、本実施例において、部分情報保持部３１０は、先読みリフィルした部分変換テーブルを保持した状態で、後読みリフィルを実行できるので、ヒット率を向上させる上でも効果がある。
【０１０１】
以上、本発明を実施例をもとに説明した。この実施例はあくまで例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０２】
なお、請求項に記載のアクセス要求主体は、本実施例においては画像処理用ＤＭＡＣ１２２などに対応する。また、請求項に記載のアクセス可否判定テーブルは、本実施例においては第２変換テーブル１８２の、主としてＩＯＩＤ欄１９２が対応する。請求項に記載のアドレス変換テーブル保持部は、本実施例においてはアドレス情報保持部３１４によりその機能を発揮される。請求項に記載されたキャッシュ処理部により部分変換テーブルがロードされるキャッシュメモリは、本実施例においては主として部分情報保持部３１０によりその機能が発揮される。請求項に記載のアクセス属性テーブルは、本実施例においては第２変換テーブル１８２の、主としてアクセス条件欄１９４が対応する。請求項に記載のアクセス属性テーブル保持部は、本実施例においては部分情報保持部３１０やアドレス情報保持部３１４によりその機能を発揮される。請求項に記載の統括的なソフトウェアとは、ＯＳ、あるいは、特権ソフトウェアに対応する。請求項に記載のアクセス要求主体に固有のＩＤについては、本実施例においてはＤＭＡＲＩＤが相当する。
【０１０３】
なお、これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【０１０４】
本発明の好ましい態様を特定の用語を用いて説明したが、これらの記述はあくまでも説明を目的とするものであり、添付する特許請求の範囲の範囲や思想から外れない限り様々な変更・変化が可能であることは理解されるところであろう。
【産業上の利用可能性】
【０１０５】
本発明は、メモリ管理システムに対する技術として応用可能である。
【図１】
2009523269.tif 000003
【図２】
2009523269.tif 000004
【図３】
2009523269.tif 000005
【図４】
2009523269.tif 000006
【図５】
2009523269.tif 000007
【図６】
2009523269.tif 000008
【図７】
2009523269.tif 000009
【図８】
2009523269.tif 000010
【図９】
2009523269.tif 000011
【図１０】
2009523269.tif 000012
【図１１】
2009523269.tif 000013
【国際調査報告】
2009523269.tif 000014
2009523269.tif 000015