(57)【要約】【課題】  複数のプロセッサを含むシステムにおいて、プロセッサのアドレス空間に依存しないＤＭＡの実現を容易にする。【解決手段】  サブプロセッサがシステム全体で共通に使用するアドレス変換テーブルによってアドレス変換を行い、ＤＭＡＣを起動する【選択図】  図１
2007087177.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスシステムを有するメインプロセッサと、メインプロセッサとは別のサブプロセッサと、サブプロセッサとメインプロセッサの両方からアクセス可能である情報処理装置において、前記情報処理装置の記憶装置は仮想アドレスと物理アドレスの変換に使用されるアドレス変換テーブルを保持し、前記サブプロセッサは前記記憶装置内のアドレス変換テーブルへのポインタを保持し、前記サブプロセッサによって仮想アドレスと物理アドレスの変換を行うことができることを特徴とする情報処理装置。
【請求項２】
DMAによるデータ転送手段を備え、サブプロセッサがDMACのレジスタを設定可能である前記情報処理装置において、前記サブプロセッサは前記メインプロセッサから仮想アドレスによるDMAスタートアドレスを受け取り、前記記憶装置内に保持されているアドレス変換テーブルにアクセスしてアドレス変換を行い、変換後の物理アドレスとメインプロセッサからサブプロセッサに渡されるデータ長によってサブプロセッサがDMACの起動を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置のDMAにおいて、ページ長がページサイズの最大値を超えるときはサブプロセッサが再度アドレス変換を行い、複数回のDMACの起動を行うことを特徴とする請求項２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置における仮想アドレス変換方法とDMA転送方式に関するものである。
【背景技術】
【０００２】
従来の仮想記憶のアドレス変換機構ではプロセッサによって仮想アドレスを物理アドレスに変換していた。メモリアドレス空間は用いるプロセッサによって決まっていた。システム内に複数のプロセッサを含む場合、プロセッサごとに定義されたアドレス変換テーブルを用いてアドレス変換を必要とするプロセッサがアドレス変換を行っていた。また、DMACの起動はI/Oアクセスを必要とするプロセッサごとにアドレス変換を行い、プロセッサが物理アドレスとデータ長をDMACに指示することで行っていた。
【０００３】
従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平０５−８９０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の仮想アドレス方式ではプロセッサごとにアドレス空間が定義されている。このため複数のプロセッサを含むシステムにおいてプロセッサを変更する場合、変更するプロセッサに関連するアドレス空間の再設計を行う必要があった。従来方式ではDMAを必要とするプロセッサが必要に応じてアドレス変換を行って実アドレスでDMACを起動していたため、プロセッサごとにアドレス変換テーブルを持つ必要がある。プロセッサの種類が増えると多数の異なるアドレス変換テーブルが必要となる。DMACの起動のためにはDMAを必要とするプロセッサごとにDMAのためのデータ長の管理を行わなければならない。
【課題を解決するための手段】
【０００５】
本発明の第1の発明では、システムはシステム全体で共通のアドレス変換テーブルを記憶装置内にもち、これを用いてサブプロセッサがアドレス変換を行う。本発明の第1の発明ではシステム全体で共通のアドレス変換テーブルを定義する。これをアドレス変換テーブルとしてシステム内の全てのプロセッサが共通に参照可能な記憶装置内に保持させる。システム内のI/Oアクセス要求は、アドレス変換を担当するサブプロセッサに通知される。アドレス変換を担当するサブプロセッサはシステム全体で共通のアドレス変換テーブル参照し、要求されたI/Oアクセス要求のアドレス変換を行う。このように、システム全体のI/Oアクセス要求をサブプロセッサが解釈することにより、アドレス変換が使用するプロセッサに依存しないシステムを実現できる。
【０００６】
本発明の第2の発明は、本発明の第1の発明によって変換された物理アドレスを用いて、サブプロセッサがDMACを起動するためのものである。アドレス変換を担当するサブプロセッサは本発明の第1の発明によって変換された物理アドレスとデータ長を用いてDMACのレジスタを設定し、DMACを起動する。本発明の第2の発明により、異なる構成を持つプロセッサを含むシステム内で仮想アドレスのみを使用してデータ処理を行うことが可能となる。
【０００７】
本出願の第3の発明は本出願の第1または第2の発明において、DMAを行うデータ長がページサイズを超える場合の処理をサブプロセッサで処理できることを特徴とする。本発明の第3の発明により、アドレス変換をサブプロセッサに任せ、メインプロセッサは他の処理に専念することが可能になる。
【発明の効果】
【０００８】
以上で説明したように、本発明の第1の発明によりDMAのアドレス空間とプロセッサのアドレス空間を独立して扱える。これによりシステム内のプロセッサを必要な機能や特長をもったものに交換することが容易になる。
【０００９】
本発明の第2の発明により、異なる構成を持つプロセッサを含むシステム内で仮想アドレスのみを使用してデータ処理を行うことが可能となる。これにより、プロセッサの種類にかかわらずシステム全体で共通のアドレス空間を用いるDMACを設計することが容易になる。
【００１０】
本発明の第3の発明により、アドレス変換をサブプロセッサに任せ、メインプロセッサは他の処理に専念することが可能になる。これにより高速なプロセッサがDMAの起動や終了といった単純な処理を行うことが不要となる。システム内で高機能なプロセッサは複雑な処理を行い、低機能なプロセッサにDMAの管理を任せることにより、システム内で効率の良い分散処理が行える。またDMA関連の変更はDMA起動のサブプロセッサの仕様変更のみで対応できるため、従来手法よりDMAの仕様変更時の変更個所を減らすことができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して本発明にかかる実施の形態を説明する。
【００１２】
図1は本発明の実施形態における情報処理システムの構成を示すシステム構成図である。このメインプロセッサ１０１はアドレスバス１０６とデータバス１０５によってサブプロセッサ１０２およびシステムメモリ１０３に接続される。サブプロセッサ１０２はメインプロセッサ１０１、システムメモリ１０３、DMAC１０５に接続される。DMAC１０５はサブプロセッサ１０２の指示によりI/Oの入出力の制御を行う。システムメモリ１０３は図3に示す仮想アドレスと物理アドレスの変換を行うアドレス変換テーブル１１２をもつ。また、サブプロセッサ１０２は図３に示すメインプロセッサ１０１から受け取った仮想アドレスを保持する仮想アドレスレジスタ１０６とシステムメモリ１０３内のアドレス変換テーブル１１２へのルートポインタ１１１を持つ。
【００１３】
図２は本発明の実施形態におけるメインプロセッサ、サブプロセッサとDMACの処理の流れである。２０１においてメインプロセッサ１０１のI/Oアクセス要求が発生する。メインプロセッサ１０１は２０２において必要なデータの仮想アドレスとデータ長をサブプロセッサ１０２に渡す。
【００１４】
図３にシステムメモリ１０３に保持されるアドレス変換テーブル１１２を示す。アドレス変換テーブル１１２はポインタテーブル１０７とページテーブル１１３から成る。ポインタテーブル１０７は仮想アドレスレジスタ１０６のポインタフィールド１０８によって参照され、ページテーブル１１３へのポインタ１１４を返す。ページテーブル１１３はページテーブルポインタ１１６によって参照され、ページアドレス１１７を返す。
【００１５】
図２の２０３において、サブプロセッサ１０２はシステムメモリ１０３内のアドレス変換テーブル１１２にアクセスし、仮想アドレスから物理アドレスへのアドレス変換を行う。
【００１６】
以下、図３を用いてアドレス変換テーブル１１２とサブプロセッサ１０２による仮想アドレス変換について説明する。
【００１７】
メインプロセッサ１０１からI/O１０４へのアクセスが必要になった場合、メインプロセッサ１０１はサブプロセッサ１０２の仮想アドレスレジスタ１０６にアクセスするデータの仮想アドレスを設定する。サブプロセッサ１０２はサブプロセッサ１０２内に持つルートポインタ１１１の値と仮想アドレスレジスタ１０６を用いてシステムメモリ１０３にあるアドレス変換テーブル１１２にアクセスする。
【００１８】
アドレス変換では最初にポインタフィールド１０８によるポインタテーブル１０７へのアクセスによりポインタ１１４が選択される。ポインタ１１４とページフィールド１０９の値によってページポインタ１１６が決定され、ページポインタ１１６によってぺージテーブル１１３がアクセスされる。ページテーブル１１３はページ番号１１７を返す。ページ番号１１７とオフセット１１０の値が加算され、物理アドレス１１８が求められる。
【００１９】
２０４で２０３の変換結果の物理アドレスとデータ長をDMAC１０５に渡しDMAC１０５を起動する。DMAC１０５は２０６でDMAを開始し、DMA終了後２０７にてサブプロセッサ１０２にDMA終了を通知する。サブプロセッサ１０２は２０８でDMAのデータ長とページ長の境界を調べ、データアドレスがページ境界を越える場合はページ境界を越えたデータについて再度２０４のアドレス変換を行い、DMAC１０５を起動する。メインプロセッサ１０１から要求された全てのデータのDMA転送終了後、サブプロセッサ１０２はメインプロセッサに終了を通知する。メインプロセッサ１０１は次の処理を続行する。
【図面の簡単な説明】
【００２０】
【図１】本発明のシステム構成図である。
【図２】本発明で用いるアドレス変換機構によるDMA処理例である。
【図３】本発明で用いるアドレス変換機構の構成例である。
【符号の説明】
【００２１】
１０１  メインプロセッサ
１０２  サブプロセッサ
１０３  システムメモリ
１０４  I/O
１０５  DMAC
１０６  仮想アドレスレジスタ
１０７  ポインタテーブル
１０８  ポインタフィールド
１０９  ページフィールド
１１０  オフセット
１１１  ルートポインタ
１１２  アドレス変換テーブル
１１３  ページテーブル
１１４  ポインタ
１１６  ページポインタ
１１７  ページ番号
１１８  物理アドレス
２０１−２０９  アドレス変換処理のステップ
【図１】
2007087177.tif 000003
【図２】
2007087177.tif 000004
【図３】
2007087177.tif 000005