(57)【要約】【課題】メモリデータの移動をメモリマスタとは独立して高速に行うことができるメモリ管理装置およびメモリ管理方法を提供することを目的とする。【解決手段】メモリ制御部102は、データ転送機能部1021、メモリアクセス部1022とデータ転送機能部1021とメモリアクセス部1022とを接続するメモリバス1023から構成し、データ転送機能部1021はメモリ103内のデータ転送制御を行うためのメモリアクセス要求を発行し、メモリアクセス部1022は、メモリマスタ101やデータ転送機能部1021からのメモリアクセス要求を調停してメモリ103にアクセスを行う。これにより、データ転送をメモリマスタ101が直接行うことなく処理することができ、メモリマスタ101に負荷をかけることなく高速なデータ転送が実現できる。【選択図】図1
2009163394.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数のメモリと、
前記メモリへのアクセスを要求するメモリアクセス要求、及び、前記メモリ内又はメモリ間のデータ転送を要求するデータ転送要求を生成するメモリマスタと、
前記メモリアクセス要求及び前記データ転送要求を受けて、前記メモリへのアクセス制御、及び、前記メモリ内又はメモリ間のデータ転送制御を行うメモリ制御部と、
を有し、
前記メモリ制御部は、
前記メモリアクセス要求を受け付けて前記メモリへのアクセスを行うメモリアクセス部と、
前記データ転送要求を受け付けて前記メモリ内又はメモリ間のデータ転送制御を前記メモリアクセス部を介して行うデータ転送機能部と、
を有するメモリ管理装置。
【請求項２】
請求項1記載のメモリ管理装置であって、
前記メモリは、アクセスサイズまたは連続アクセス方法によりデータ転送効率が異なることを特徴とするメモリ管理装置。
【請求項３】
請求項1記載のメモリ管理装置であって、
前記メモリは、前記メモリマスタに内蔵若しくは近接して配置されることを特徴とするメモリ管理装置。
【請求項４】
請求項1記載のメモリ管理装置であって、
前記メモリアクセス部は、前記メモリマスタおよび前記データ転送機能部からのメモリアクセス要求を調停することを特徴とするメモリ管理装置。
【請求項５】
請求項４記載のメモリ管理装置であって、
前記データ転送機能部は、前記メモリ内のデータ転送を行うための動作パラメータを管理するパラメータ設定部と、
前記パラメータ設定部で設定された前記動作パラメータに対応したメモリアクセス要求を前記メモリアクセス部に発行するアクセスコマンド発行部と、
前記アクセスコマンド発行部からのリードアクセスコマンドに対する応答であるリードデータを一時的に格納するバッファとを備えることを特徴とするメモリ管理装置。
【請求項６】
請求項５記載のメモリ管理装置であって、
前記動作パラメータは、前記メモリ内のデータ転送を行うための転送元アドレス、転送先アドレスおよび転送モードであることを特徴とするメモリ管理装置。
【請求項７】
請求項１記載のメモリ管理装置であって、
前記メモリは、第１のメモリと第２のメモリとを含み、
前記メモリ制御部は、前記第１のメモリと前記第２のメモリ間でデータ転送を行うことを特徴とするメモリ管理装置。
【請求項８】
請求項７記載のメモリ管理装置であって、
前記メモリ制御部は、前記第１と第２のメモリの使用領域を比較し、前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1のメモリと第2のメモリの個々の記憶容量より小さい場合に、前記第２のメモリのデータを前記第１のメモリに移動することを特徴とするメモリ管理装置。
【請求項９】
請求項７記載のメモリ管理装置であって、
前記メモリ制御部は、前記第１と第２のメモリの使用領域を比較し、前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1と第2のメモリの個々の記憶容量より小さい場合に、前記第１のメモリのデータを前記第２のメモリに移動し、前記第２のメモリに格納されているデータを前記第１のメモリの連続領域に移動することを特徴とするメモリ管理装置。
【請求項１０】
請求項９記載のメモリ管理装置であって、
前記メモリ制御部は、前記第２のメモリに格納されているデータを前記第１のメモリの連続領域に移動した後に、前記第２のメモリの電源を遮断することを特徴とするメモリ管理装置。
【請求項１１】
請求項７記載のメモリ管理装置であって、
前記メモリマスタの発行するアドレスを前記メモリのデバイス上のアドレスに変換するためのアドレス変換テーブルを備え、
前記メモリ制御部は、前記メモリ内におけるデータ転送の完了後に、前記アドレス変換テーブルを更新することを特徴とするメモリ管理装置。
【請求項１２】
請求項１１記載のメモリ管理装置であって、
前記第２のメモリは、前記第１のメモリに比べ高速小容量のメモリであり、
前記メモリマスタからのメモリアクセス要求と、前記メモリ制御部からのメモリアクセス要求とを調停して前記第２のメモリにアクセスを行うメモリアクセス調停部を備えることを特徴とするメモリ管理装置。
【請求項１３】
請求項１記載のメモリ管理装置であって、
前記メモリ制御部は、前記メモリの内部でデータ転送を行う場合に、データサイズを固定してアクセスすることを特徴とするメモリ管理装置。
【請求項１４】
請求項１記載のメモリ管理装置であって、
前記メモリ制御部は、前記データ転送機能部によるデータ転送終了後、前記メモリマスタにデータ転送完了通知信号を送信することを特徴とするメモリ管理装置。
【請求項１５】
請求項１１記載のメモリ管理装置であって、
前記アドレス変換テーブルは、テーブル更新後、前記メモリマスタにテーブル更新完了通知信号を送信することを特徴とするメモリ管理装置。
【請求項１６】
請求項１記載のメモリ管理装置であって、
前記データ転送機能部は、前記メモリ制御部が前記メモリ内のデータの転送中であることを示す第１の状態識別部を備えることを特徴とするメモリ管理装置。
【請求項１７】
請求項１１記載のメモリ管理装置であって、
前記アドレス変換テーブルは、テーブルの更新中であることを示す第２の状態識別部を備えることを特徴とするメモリ管理装置。
【請求項１８】
請求項１記載のメモリ管理装置であって、
前記メモリ制御部は、前記メモリ内におけるデータ転送中に、前記メモリマスタからのアクセスを制限するコマンド制御部を備えることを特徴とするメモリ管理装置。
【請求項１９】
請求項１８記載のメモリ管理装置であって、
前記コマンド制御部は、前記メモリ内におけるデータ転送中に、前記メモリマスタからのライトアクセスを制限することを特徴とするメモリ管理装置。
【請求項２０】
請求項１８記載のメモリ管理装置であって、
前記コマンド制御部は、前記メモリ内におけるデータ転送中に前記メモリマスタからアクセスがあると、データ転送中であることを示すアクセス競合通知信号を前記メモリマスタに送信することを特徴とするメモリ管理装置。
【請求項２１】
パラメータ設定部、バッファ、アクセスコマンド発行部およびメモリアクセス部を含み、メモリマスタからメモリへのアクセス要求に対してデータのリード/ライト制御を行うメモリ制御部におけるメモリ管理方法であって、
前記パラメータ設定部が、前記メモリマスタにより設定された、データ転送の転送元、転送先、サイズを含む動作パラメータの設定値に異常がないことを確認するステップと、
前記アクセスコマンド発行部が、転送先を設定アドレスとするリードコマンドを前記メモリアクセス部に発行するステップと、
前記メモリアクセス部が、前記メモリへリードアクセスするステップと、
前記メモリからのリードデータを前記バッファに格納させるステップと、
前記アクセスコマンド発行部が、転送先をアドレスとし、かつバッファデータを書き込みデータとするライトコマンドを前記メモリアクセス部に発行するステップと、
前記メモリアクセス部が、前記メモリへライトアクセスを行うステップとを有することを特徴とするメモリ管理方法。
【請求項２２】
請求項２１記載のメモリ管理方法であって、
前記メモリは、第１のメモリと第２のメモリとを含み、
前記第１と第２のメモリの使用領域を比較するステップと、
前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1のメモリと第2のメモリの個々の記憶容量より小さい場合に、前記第２のメモリのデータを前記第１のメモリに移動させるステップとを有することを特徴とするメモリ管理方法。
【請求項２３】
請求項２１記載のメモリ管理方法であって、
前記メモリは、第１のメモリと第２のメモリとを含み、
前記第１と第２のメモリの使用領域を比較するステップと、
前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1と第2のメモリの個々の記憶容量より小さい場合に、前記第１のメモリのデータを前記第２のメモリに移動させるステップと、
前記第２のメモリに格納されているデータを前記第１のメモリの連続領域に移動させるステップとを有すること特徴とするメモリ管理方法。
【請求項２４】
請求項２３記載のメモリ管理方法であって、
前記第２のメモリに格納したデータを前記第１のメモリの連続領域に移動させた後に、前記第２のメモリの電源を遮断するステップを有することを特徴とするメモリ管理方法。
【請求項２５】
請求項２１記載のメモリ管理方法であって、
前記メモリ内のデータ転送処理の完了後に、転送元アドレス、転送先アドレスおよびテーブル更新要求をアドレス変換テーブルに送信するステップと、
前記アドレス変換テーブルが、前記テーブル更新要求に応答して、前記転送元アドレスで前記アドレス変換テーブルの検索を行うステップと、
前記アドレス変換テーブルの検索において、一致するエントリが存在するならば、前記転送先アドレスで前記アドレス変換テーブルのエントリを更新するステップとを有することを特徴とするメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるメモリ管理装置およびメモリ管理方法に関するものである。
【背景技術】
【０００２】
近年のパーソナルコンピュータやデジタルカメラ、デジタルテレビ、携帯電話などのデジタル家電製品は、CPU、IOデバイスなどのメモリマスタ、記憶用途のメモリ、DMA（Direct Memory Access）と呼ばれるメモリ制御部、データ転送部から構成されるコンピュータシステムである。
【０００３】
図２２は、従来のコンピュータシステムの典型的な構成を示すものである。図２２において、201はメモリマスタ、202はメモリ制御部、203はメモリ、204はデータ転送機能部、205、207、209はメモリ203へのアクセスを行うためのメモリバス、206、208はホストとなるメモリマスタ201からスレーブデバイスとなるメモリ制御部202やデータ転送機能部204内の主にレジスタのリード/ライトを行うためのホストバスである。
【０００４】
上記従来のコンピュータシステムのメモリマネジメント方式は、メモリ制御部202が、コンピュータシステム内のメモリマスタ201からのコマンド形式等で発行されたメモリアクセス要求（例えばARM社提唱のバスプロトコルであるAXIなど）に応答して、各メモリアクセス要求に対応するメモリ203へのアクセスを行い、ライトの場合はデータをメモリ203に書き込み、リードの場合はメモリ203からのデータをアクセス要求のあったメモリマスタ201に返すものであった。
【０００５】
しかし、この方式ではデータ転送の効率が悪いため、データ転送効率の改善を図る技術として、メモリ203からのデータ転送をメモリマスタ201が直接行わず、メモリマスタ201からホストバス208を介してデータ転送要求を受けたデータ転送機能部204が、メモリマスタ201に代わって、メモリバス209を介してデータ転送を行うものがあった。
【０００６】
図２３は、メモリマスタ201が、データ転送機能部204（＝DMA、メモリマスタ）にメモリコピーを依頼した場合の処理フローを示す。その場合、メモリマスタ201は、まず、制御レジスタに設定を書き込み、動作設定を活性化する。データリードの場合の処理は、コマンドフェーズ１とデータフェーズ１からなる。コマンドフェーズ１では、データ転送機能部204がコマンドを発行し、メモリ203がメモリ制御部202を介してそのコマンドを受理する。そして、データフェーズにおいて、メモリ203からデータを読み出したメモリ制御部202と、データ転送機能部204との間で、データサイズが満たされるまで、データ転送のためのリクエストと応答が繰り返される。
【０００７】
データライトの場合の処理は、コマンドフェーズ２とデータフェーズ２からなる。コマンドフェーズ２では、データ転送機能部204がコマンドを発行し、メモリ制御部202がコマンドを受理し、データ転送機能部204に応答する。そして、データフェーズ２では、データ転送機能部204とメモリ制御部202間でデータ転送のためのリクエストと応答が繰り返された後、メモリ制御部202からコマンドが発行され、メモリ203がコマンドを受理し、メモリ203にデータが書き込まれる。データの書き込みが完了すると、メモリ制御部202は、完了通知を発行し、データ転送機能部204を介してメモリマスタ201に完了通知が送信される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前記従来の方式では、データ転送を行う場合、メモリ制御部202とデータ転送機能部204とを接続するメモリバス209の幅でコマンドサイズが制限されるため、メモリ制御部202とデータ転送機能部204間で、固定サイズのメモリリードコマンドによるデータの読出しとメモリライトコマンドによるデータの書き込みとをデータサイズが満たされるまで繰り返し行う必要があった。また、データ転送機能部204とメモリ制御部202とを接続するメモリバス209幅に制限があるため、一のデータ転送要求に対して、データ転送機能部204とメモリ制御部202との間でのデータの受渡しを複数回に分けて行う必要があった。そのため、データ転送に多くの処理時間を要してしまうという事情があった。
【０００９】
本発明は、前記従来の事情に鑑みてなされたものであって、高速なデータ転送を実現したメモリ管理装置およびメモリ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のメモリ管理装置は、一又は複数のメモリと、前記メモリへのアクセスを要求するメモリアクセス要求、及び、前記メモリ内又はメモリ間のデータ転送を要求するデータ転送要求を生成するメモリマスタと、前記メモリアクセス要求及び前記データ転送要求を受けて、前記メモリへのアクセス制御、及び、前記メモリ内又はメモリ間のデータ転送制御を行うメモリ制御部と、を有し、前記メモリ制御部が、前記メモリアクセス要求を受け付けて前記メモリへのアクセスを行うメモリアクセス部と、前記データ転送要求を受け付けて前記メモリ内又はメモリ間のデータ転送制御を前記メモリアクセス部を介して行うデータ転送機能部と、を有する。
【００１１】
また、本発明のメモリ管理方法は、パラメータ設定部、バッファ、アクセスコマンド発行部およびメモリアクセス部を含み、メモリマスタからメモリへのアクセス要求に対してデータのリード/ライト制御を行うメモリ制御部におけるメモリ管理方法であって、前記パラメータ設定部が、前記メモリマスタにより設定された、データ転送の転送元、転送先、サイズを含む動作パラメータの設定値に異常がないことを確認するステップと、前記アクセスコマンド発行部が、転送先を設定アドレスとするリードコマンドを前記メモリアクセス部に発行するステップと、前記メモリアクセス部が、前記メモリへリードアクセスするステップと、前記メモリからのリードデータを前記バッファに格納させるステップと、前記アクセスコマンド発行部が、転送先をアドレスとし、かつバッファデータを書き込みデータとするライトコマンドを前記メモリアクセス部に発行するステップと、前記メモリアクセス部が、前記メモリへライトアクセスを行うステップとを有することを特徴とする。
【発明の効果】
【００１２】
本発明にかかるメモリ管理装置およびメモリ管理方法によれば、メモリ制御部はデータ転送機能部を備え、CPUやIOデバイスなどのメモリマスタが使用するメモリデータの移動をメモリマスタとは独立して行うことにより、メモリ使用領域を変更する場合に、データ転送とアドレス変換テーブルの更新の両方を行うことができ、処理の高速化や処理手順の簡単化を実現できる。
【発明を実施するための最良の形態】
【００１３】
本発明のメモリ管理装置は、一又は複数のメモリと、前記メモリへのアクセスを要求するメモリアクセス要求、及び、前記メモリ内又はメモリ間のデータ転送を要求するデータ転送要求を生成するメモリマスタと、前記メモリアクセス要求及び前記データ転送要求を受けて、前記メモリへのアクセス制御、及び、前記メモリ内又はメモリ間のデータ転送制御を行うメモリ制御部と、を有し、前記メモリ制御部が、前記メモリアクセス要求を受け付けて前記メモリへのアクセスを行うメモリアクセス部と、前記データ転送要求を受け付けて前記メモリ内又はメモリ間のデータ転送制御を前記メモリアクセス部を介して行うデータ転送機能部と、を有する。
【００１４】
上記構成によれば、CPUやIOデバイスなどのメモリマスタが使用するメモリデータの移動をメモリマスタとは独立して行うことにより、メモリマスタに負荷をかけることなく高速なデータ転送が実現できる。すなわち、上記構成によれば、従来必要であったメモリ制御部とデータ転送部とを接続するメモリバスが不要となるため、コマンドサイズの制限を受けることがなくなり、コマンドによるデータの読み出しや書込みをデータサイズが満たされるまで繰り返すことが不要となる。また、データ転送機能部とメモリ制御部とを接続するメモリバス幅の制限を受けなくなるため、一のデータ転送要求に対して、データ転送機能部とメモリ制御部との間でのデータの受渡しを複数回に分けて行う必要がなくなる。したがって、データ転送を高速化できる。
【００１５】
また、本発明のメモリ管理装置は、前記メモリが、アクセスサイズまたは連続アクセス方法によりデータ転送効率が異なることを特徴とする。
【００１６】
また、本発明のメモリ管理装置は、前記メモリが、前記メモリマスタに内蔵若しくは近接して配置されることを特徴とする。
【００１７】
また、本発明のメモリ管理装置は、前記メモリアクセス部が、前記メモリマスタおよび前記データ転送機能部からのメモリアクセス要求を調停することを特徴とする。
【００１８】
上記構成によれば、メモリマスタおよびデータ転送機能部からのメモリアクセス要求を調停するので、メモリマスタに負荷をかけることなく高速なデータ転送が実現できる。
【００１９】
また、本発明のメモリ管理装置は、前記データ転送機能部が、前記メモリ内のデータ転送を行うための動作パラメータを管理するパラメータ設定部と、前記パラメータ設定部で設定された前記動作パラメータに対応したメモリアクセス要求を前記メモリアクセス部に発行するアクセスコマンド発行部と、前記アクセスコマンド発行部からのリードアクセスコマンドに対する応答であるリードデータを一時的に格納するバッファとを備えることを特徴とする。
【００２０】
上記構成によれば、データ転送機能部をメモリ制御部内に設けることにより、バス上の信号のトグル回数を減らせて消費電力を削減するとともに、メモリ制御部内でデータのコピーができるようになり、メモリマスタとのやり取りが不要になるので、高速なデータコピーを実現できる。
【００２１】
また、本発明のメモリ管理装置は、前記動作パラメータが、前記メモリ内のデータ転送を行うための転送元アドレス、転送先アドレスおよび転送モードであることを特徴とする。
【００２２】
また、本発明のメモリ管理装置は、前記メモリが、第１のメモリと第２のメモリとを含み、前記メモリ制御部は、前記第１のメモリと前記第２のメモリ間でデータ転送を行うことを特徴とする。
【００２３】
上記構成によれば、メモリ制御部が、第１のメモリと第２のメモリ間のデータ転送をメモリマスタとは独立して行うことにより、メモリマスタに負荷をかけることなく高速なデータ転送が実現できる。
【００２４】
また、本発明のメモリ管理装置は、前記メモリ制御部が、前記第１のメモリと第２のメモリの使用領域を比較し、前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１のメモリと第２のメモリの使用領域の総和が前記第1のメモリと第2のメモリの個々の記憶容量より小さい場合に、前記第２のメモリのデータを前記第１のメモリに移動することを特徴とする。
【００２５】
上記構成によれば、高速に、一方のメモリを未使用状態にすることができる。
【００２６】
また、本発明のメモリ管理装置は、前記メモリ制御部が、前記第１と第２のメモリの使用領域を比較し、前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1と第2のメモリの個々の記憶容量より小さい場合に、前記第１のメモリのデータを前記第２のメモリに移動し、前記第２のメモリに格納されているデータを前記第１のメモリの連続領域に移動することを特徴とする。
【００２７】
上記構成によれば、複数のメモリ間でデータ転送を行うことにより、メモリマスタの使用するメモリのデフラグ処理を容易にかつ高速に行うことができる。
【００２８】
また、本発明のメモリ管理装置は、前記メモリ制御部が、前記第２のメモリに格納されているデータを前記第１のメモリの連続領域に移動した後に、前記第２のメモリの電源を遮断することを特徴とする。
【００２９】
上記構成によれば、使用中のメモリデータを一箇所に移動させて未使用のメモリデバイスをつくり、未使用のメモリデバイスの電源を遮断してシステムを省電力化することができる。
【００３０】
また、本発明のメモリ管理装置は、前記メモリマスタの発行するアドレスを前記メモリのデバイス上のアドレスに変換するためのアドレス変換テーブルを備え、前記メモリ制御部が、前記メモリ内におけるデータ転送の完了後に、前記アドレス変換テーブルを更新することを特徴とする。
【００３１】
上記構成によれば、データ転送完了後にアドレス変換テーブルの更新がなされ、例えば、メモリマスタがデフラグなどの用途でメモリ使用領域を変更する場合に、データ転送とアドレス変換テーブルの更新の両方を行うことができ、処理の高速化や処理手順の簡単化を実現できる。
【００３２】
また、本発明のメモリ管理装置は、前記第２のメモリが、前記第１のメモリに比べ高速小容量のメモリであり、前記メモリマスタからのメモリアクセス要求と、前記メモリ制御部からのメモリアクセス要求とを調停して前記第２のメモリにアクセスを行うメモリアクセス調停部を備えることを特徴とする。
【００３３】
上記構成によれば、メモリ制御部は、メモリアクセス調停部の調停により、第１のメモリと第２のメモリ間のデータ転送をメモリマスタとは独立して行うことができ、メモリマスタに負荷をかけることなく高速なデータ転送が実現できる。
【００３４】
また、本発明のメモリ管理装置は、前記メモリ制御部が、前記メモリの内部でデータ転送を行う場合に、データサイズを固定してアクセスすることを特徴とする。
【００３５】
また、本発明のメモリ管理装置は、前記メモリ制御部が、前記データ転送機能部によるデータ転送終了後、前記メモリマスタにデータ転送完了通知信号を送信することを特徴とする。
【００３６】
上記構成によれば、メモリ制御部がデータ転送終了後にデータ転送完了通知信号を送信することにより、メモリマスタは直接的にデータ転送の完了を知ることができる。
【００３７】
また、本発明のメモリ管理装置は、前記アドレス変換テーブルが、テーブル更新後、前記メモリマスタにテーブル更新完了通知信号を送信することを特徴とする。
【００３８】
上記構成によれば、アドレス変換テーブルがテーブル更新後にテーブル更新完了通知信号を送信することにより、メモリマスタは直接的にアドレス変換テーブル更新の完了を知ることができる。
【００３９】
また、本発明のメモリ管理装置は、前記データ転送機能部が、前記メモリ制御部が前記メモリ内のデータの転送中であることを示す第１の状態識別部を備えることを特徴とする。
【００４０】
上記構成によれば、メモリマスタはデータ転送機能部内の第１の状態識別部にアクセスすることにより、常時、データ転送機能部でのデータ転送の状態を確認することができる。
【００４１】
また、本発明のメモリ管理装置は、前記アドレス変換テーブルが、テーブルの更新中であることを示す第２の状態識別部を備えることを特徴とする。
【００４２】
上記構成によれば、メモリマスタはアドレス変換テーブル内の第２の状態識別部にアクセスすることにより、常時、アドレス変換テーブルの更新状態を確認することができる。
【００４３】
また、本発明のメモリ管理装置は、前記メモリ制御部が、前記メモリ内におけるデータ転送中に、前記メモリマスタからのアクセスを制限するコマンド制御部を備えることを特徴とする。
【００４４】
上記構成によれば、メモリマスタからのアクセスを制限するコマンド制御部を備えるので、データ転送機能部がデータ転送中に、メモリマスタからのメモリアクセスの制限やアクセス競合通知を行うことが可能となり、メモリの排他アクセスを簡単に実現することができる。
【００４５】
また、本発明のメモリ管理装置は、前記コマンド制御部が、前記メモリ内におけるデータ転送中に、前記メモリマスタからのライトアクセスを制限することを特徴とする。
【００４６】
また、本発明のメモリ管理装置は、前記コマンド制御部が、前記メモリ内におけるデータ転送中に前記メモリマスタからアクセスがあると、データ転送中であることを示すアクセス競合通知信号を前記メモリマスタに送信することを特徴とする。
【００４７】
また、本発明のメモリ管理方法は、パラメータ設定部、バッファ、アクセスコマンド発行部およびメモリアクセス部を含み、メモリマスタからメモリへのアクセス要求に対してデータのリード/ライト制御を行うメモリ制御部におけるメモリ管理方法であって、前記パラメータ設定部が、前記メモリマスタにより設定された、データ転送の転送元、転送先、サイズを含む動作パラメータの設定値に異常がないことを確認するステップと、前記アクセスコマンド発行部が、転送先を設定アドレスとするリードコマンドを前記メモリアクセス部に発行するステップと、前記メモリアクセス部が、前記メモリへリードアクセスするステップと、前記メモリからのリードデータを前記バッファに格納させるステップと、前記アクセスコマンド発行部が、転送先をアドレスとし、かつバッファデータを書き込みデータとするライトコマンドを前記メモリアクセス部に発行するステップと、前記メモリアクセス部が、前記メモリへライトアクセスを行うステップとを有することを特徴とする。
【００４８】
上記構成によれば、メモリ制御部が、メモリマスタが使用するメモリデータの移動をメモリマスタとは独立して行うことにより、メモリマスタに負荷をかけることなく高速なデータ転送が実現できる。
【００４９】
また、本発明のメモリ管理方法は、前記メモリは、第１のメモリと第２のメモリとを含み、前記第１と第２のメモリの使用領域を比較するステップと、前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1のメモリと第2のメモリの個々の記憶容量より小さい場合に、前記第２のメモリのデータを前記第１のメモリに移動させるステップとを有することを特徴とする。
【００５０】
上記構成によれば、高速に、一方のメモリを未使用状態にすることができる。
【００５１】
また、本発明のメモリ管理方法は、前記メモリは、第１のメモリと第２のメモリとを含み、前記第１と第２のメモリの使用領域を比較するステップと、前記第１のメモリの使用領域が前記第２のメモリの使用領域より大きく、かつ、前記第１と第２のメモリの使用領域の総和が前記第1と第2のメモリの個々の記憶容量より小さい場合に、前記第１のメモリのデータを前記第２のメモリに移動させるステップと、前記第２のメモリに格納されているデータを前記第１のメモリの連続領域に移動させるステップとを有すること特徴とする。
【００５２】
上記構成によれば、複数のメモリ間でデータ転送を行うことにより、メモリマスタの使用するメモリのデフラグ処理を容易にかつ高速に行うことができる。
【００５３】
また、本発明のメモリ管理方法は、前記第２のメモリに格納したデータを前記第１のメモリの連続領域に移動させた後に、前記第２のメモリの電源を遮断するステップを有することを特徴とする。
【００５４】
上記構成によれば、使用中のメモリデータを一箇所に移動させて未使用のメモリデバイスをつくり、未使用のメモリデバイスの電源を遮断してシステムを省電力化することができる。
【００５５】
また、本発明のメモリ管理方法は、前記メモリ内のデータ転送処理の完了後に、転送元アドレス、転送先アドレスおよびテーブル更新要求をアドレス変換テーブルに送信するステップと、前記アドレス変換テーブルが、前記テーブル更新要求に応答して、前記転送元アドレスで前記アドレス変換テーブルの検索を行うステップと、前記アドレス変換テーブルの検索において、一致するエントリが存在するならば、前記転送先アドレスで前記アドレス変換テーブルのエントリを更新するステップとを有することを特徴とする。
【００５６】
上記構成によれば、データ転送完了後にアドレス変換テーブルの更新がなされ、例えば、メモリマスタがデフラグなどの用途でメモリ使用領域を変更する場合に、データ転送とアドレス変換テーブルの更新の両方を行うことができ、処理の高速化や処理手順の簡単化を実現できる。
【００５７】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００５８】
（実施の形態１）
図１は、本発明の実施の形態１におけるコンピュータシステムの構成図である。図１のシステム構成について、以降、図を参照しながら説明する。図1において、101はCPUやIOデバイスなどのメモリマスタ、102はメモリ制御部、103はメモリ、104、105はメモリアクセスを行うためのメモリバス、106は主にレジスタのリード/ライトを行うためのホストバスである。メモリマスタ101はメモリ103へのアクセス要求を発生するものであり、メモリ制御部102はメモリ103の特性に応じてデータを転送させる機能を有する。
【００５９】
メモリ制御部102は、データ転送機能部1021、メモリアクセス部1022、データ転送機能部1021とメモリアクセス部1022とを接続するメモリバス1023から構成する。データ転送機能部1021は、メモリ103の特性に応じてデータを転送させるものであり、メモリ103内のデータ転送制御を行うためのメモリアクセス要求を発行する。また、メモリアクセス部1022は、メモリマスタ101やデータ転送機能部1021からのメモリアクセス要求を調停してメモリ103にアクセスを行う。
【００６０】
図２は、データ転送機能部1021の詳細な構成に関する説明図である。図２においてデータ転送機能部302は、メモリマスタ301（図１の101）とメモリ制御部（図１の102）内のメモリアクセス部303（図１の1022）に各々ホストバス304（図１の106）とメモリバス305（図１の1023）を介して接続される。
【００６１】
データ転送機能部302は、メモリ（図１の103）内のデータ転送を行うための転送元アドレス、転送先アドレスや転送モードなどの動作パラメータを管理するパラメータ設定部3021、パラメータ設定部3021で設定されたパラメータに対応したメモリアクセス要求をメモリアクセス部303に発行するアクセスコマンド発行部3022、アクセスコマンド発行部3022からのリードアクセスコマンドに対する応答であるリードデータを一時的に格納するバッファ3024と、パラメータ設定部3021とアクセスコマンド発行部3022とを接続するメモリバス3023とから構成される。
【００６２】
図３は、本実施の形態１におけるメモリマネジメント方式のフローチャートを示した図である。図３を参照しながらデータ転送処理全体の大まかな流れを説明する。
【００６３】
まず、メモリマスタ301は、ホストバス304を介してデータ転送の転送元、転送先、サイズなどの動作パラメータを設定する（処理ステップS1001）。つぎに、パラメータ設定部3021では動作パラメータの設定値に異常がないかどうかを確認し（処理ステップS1002）、異常があればデータ転送処理を終了する。
【００６４】
一方、アクセスコマンド発行部3022は、パラメータ設定値に異常がなければメモリアクセス部303に転送先を設定アドレスとするリードコマンドを発行し（処理ステップS1003）、メモリアクセス部303はメモリデバイスへリードアクセスする（処理ステップS1004）。そして、メモリアクセス部303が取得したリードデータはバッファ3024に格納される（処理ステップS1005）次に、アクセスコマンド発行部3022は、メモリアクセス部303に、転送先をアドレスとし、かつバッファデータを書き込みデータとするライトコマンドを発行し（処理ステップS1006）、メモリアクセス部303はメモリデバイスへライトアクセスを行う（処理ステップS1007）。
【００６５】
その後、データ転送機能部302は、メモリ転送サイズ分の転送を行ったかどうかを確認して、残りがあるならば処理ステップS1003に戻って残りのデータ転送を行い、さもなければデータ転送処理を終了する（処理ステップS1008）。このように、データ転送機能部302は、メモリ103の特性に応じてデータを転送させる。
【００６６】
図４は、本発明の実施形態による処理フローを示す。本実施形態において、メモリマスタ101が、メモリ制御部102にメモリコピーを依頼する場合、まず、メモリマスタ101は、制御レジスタに設定を書き込み、動作設定を活性化する。データリードの場合は、メモリ制御部102がコマンドを発行し、メモリ103がコマンドを受理し、データの読み出しが行われる。また、データライトの場合は、メモリ制御部102がコマンドを発行し、メモリ103がコマンドを受理し、データの書き込みが行われる。そして、メモリ制御部102は、メモリマスタ101に完了通知を発行する。
【００６７】
このように、本実施の形態１で示したメモリマネジメント方式は、データ転送をメモリマスタ101が直接行うことなく処理することができ、メモリマスタ101に負荷をかけることなく高速なデータ転送が実現できる。すなわち、本実施の形態によれば、メモリ制御部102がメモリの特性に応じてデータを転送させることにより、メモリ103とメモリ制御部102との間で、固定サイズのコマンドによるデータの読み出しや書込みをデータサイズが満たされるまで繰り返し行う必要がなくなるため、データ転送を従来よりも高速化できる。また、従来は、データ転送機能部とメモリ制御部とを接続するメモリバス幅が十分広くないと、一のデータ転送要求に対して、データ転送機能部とメモリ制御部との間でのデータの受渡しを複数回に分けて行う必要があったのに対し、本実施の形態によれば、データ転送部とメモリ制御部とを接続するメモリバスが不要となるため、一のデータ転送要求に対して、データ転送機能部とメモリ制御部との間でのデータの受渡しを複数回に分けて行う必要がなくなり、データ転送を高速化できる。
【００６８】
また、データ転送機能部1021をメモリ制御部102内に設けることにより、バス上の信号のトグル回数を減らせて消費電力を削減するとともに、メモリ制御部102内でデータのコピーができるようになり、ＣＰＵ（メモリマスタ101）とのやり取りが不要になるので、高速なデータコピーを実現できる。
【００６９】
なお、本実施例では、データ転送パラメータの設定をメモリマスタ101が行うとしたが、メモリマスタ101以外のCPUなどがパラメータ設定をしても良い。また、本実施例では、アクセスコマンド発行部3022が発行するメモリアクセスコマンドの転送データのサイズは明示していないが、メモリデバイスの種類や構成、メモリバスの構成、データ転送機能部302内のバッファサイズなどに応じて適切なサイズを選択すると本発明のメモリマネジメント方式の効果を増大することが可能である。
【００７０】
（実施の形態２）
図５は、本発明の実施の形態２におけるコンピュータシステムの構成図である。図５において、本発明の実施の形態１におけるコンピュータシステムの構成（図１）との相異は、メモリを第1のメモリ403と第2のメモリ404の2つに増加したことである。
【００７１】
メモリが複数に増加したことに伴い、データ転送は１つのメモリ内だけでなく、異なるメモリ−メモリ間でも可能である。複数のメモリ間でデータ転送を行うことにより、メモリマスタの使用するメモリのデフラグ処理を容易に、かつ高速に行うとともに、使用中のメモリデータを一箇所に移動させて未使用のメモリデバイスをつくり、未使用のメモリデバイスの電源を遮断してシステムを省電力化することができる。
【００７２】
図６は、デフラグ処理に関する説明図である。デフラグ処理とは、メモリ使用領域の断片化を解消することを目的として、断片化されている使用中のメモリ領域を一箇所に固めて、連続領域に大きな空き空間をつくる処理である。使用するメモリが2デバイスの場合におけるデフラグ処理フローを説明する。
【００７３】
まず、（１）２つのメモリ403，404の使用サイズを比較する。次に、２つのメモリ403,404の使用領域の総和が第1のメモリ403と第2のメモリ404の個々の記憶容量より小さい場合には、（２）使用領域の小さいメモリ404に、使用領域の大きいメモリ403で使用されている領域のデータを移動させる。そして全てを移動させた後、（３）空きになったメモリ403に隙間をなくすように領域を詰めてデータを移動させる。
【００７４】
このようなデフラグ処理を行う場合に、メモリ制御部402にメモリ403，404の管理情報（先頭アドレス、データサイズなど）を持たせることにより、ＣＰＵ（メモリマスタ401の一つ）を介さずに処理を完結でき、一層高速化が可能になる（詳細は後述する）。
【００７５】
図７は、メモリ電源断移行処理に関する説明図である。メモリ電源断移行処理の目的は、複数個のメモリを使用する場合、メモリの使用状況に合わせてメモリデバイスの電源制御を行い、電力消費を削減することにある。使用するメモリが2デバイスの場合におけるメモリ電源断移行処理フローを説明する。
【００７６】
まず、デフラグ処理フローと同様に、（１）２つのメモリ403，404の使用サイズを比較する。次に、（２）使用領域の小さいメモリ404に使用領域の大きいメモリ403で使用されている領域のデータを移動させる。全てを移動させた後、（３）空きになったメモリ403に隙間なくデータを移動させ、未使用状態のメモリ404をつくる。そして、（４）未使用状態のメモリ404の電源を落とす。
【００７７】
このように、メモリ制御部402が管理する第１のメモリ403と第２のメモリ404がある場合に、第１のメモリ403に空きがあり第２のメモリ404を一部使用しているとき、第２のメモリ404のデータを第１のメモリ403の空領域に転送し、第２のメモリ404の電源をＯＦＦすることにより、システムを低消費電力にすることができる。
【００７８】
図８は、メモリ管理情報の保持に関する説明図（1）である。メモリ管理情報を保持する目的は、メモリマスタからの粗いメモリ再配置指示（ソースアドレスのみ指定）だけでメモリ制御部がメモリ再配置を行えるようにすることであり、また、メモリマスタからのメモリ再配置指示を受けることなく、メモリ制御部が自発的にメモリ再配置を行えるようにすることにある。
【００７９】
メモリ管理情報は、アドレスの上位ビット（A）、サイズの上位ビット（S）であり、例えば、アドレス空間22ビット（4Mバイト）を、1K,4K,16K,64K,256K,1M,2Mバイトの7つのサイズで管理する場合、（１）上位12ビットでアドレスを管理（下位10ビットは必要なし）、（２）4ビットでサイズを管理、（３）1つのエントリを16ビットで管理可能となる。
【００８０】
ここで、（例1）アドレス：0x20_0000、サイズ：1Kバイト のメモリ管理情報の場合は、A：0x800、S：0x1となる。（例2）アドレス：0x06_0400、サイズ：256Kバイト のメモリ管理情報の場合は、A：0x181、S：0x5となる。また、（例3）未使用のメモリ管理情報の場合は、A：0x????、S：0x0（S=0x0が未使用を示す場合）となる。
【００８１】
図９は、メモリ管理情報の保持に関する説明図（2）である。メモリ管理情報を管理するために、アドレスの上位ビット（A）、サイズの上位ビット（S）に加えて、LNKとIDを追加して、リスト構造を形成する。ここで、LNKは、次のメモリ管理情報のエントリIDを示す。また、IDは、メモリ管理情報の識別用のキーである。
【００８２】
エントリは上から順に使用していき、アドレス順にLNKで繋ぐ。エントリの登録、抹消は、一般的なリスト操作の挿入、削除で行う。複数個のメモリを管理する場合、各々1個のメモリ管理情報を持っても良いし、全部で1個のメモリ管理情報を共有しても良い。
【００８３】
図９に示すメモリ管理情報を用いたデフラグ処理について説明する。まず、（１）使用サイズを比較する。この場合、2つのメモリ管理情報のリストL1,L2について、各リストのサイズSを加算し、結果の小さいほうを移動先に選ぶ。ここに、使用サイズ（Li）＝Σ（Li内のサイズS）であり、総使用サイズが1個のメモリデバイスの容量を超えるならば中止する。
【００８４】
次に、（２）空いているほうにコピーする。移動元のリストをLs、移動先のリストをLdとすると、リストLsからサイズSが0でないエントリを取り出し、リストLdの中の隙間を探し出し（詳細は後述する）、データをコピー後、エントリをLdに移す（Lsから削除する）。
【００８５】
そして、（３）隙間なくコピーする。すなわち、リストLdからサイズSが0でないエントリを取り出し、リストLsが管理するメモリに先頭アドレスから詰めてデータコピーし、エントリをLsに移す（Ldから削除する）。
【００８６】
図１０は、メモリ管理情報の保持に関する説明図（3）である。隙間探しの操作では、作業アドレスをWA、移動対象エントリのサイズをMSとして、WAにメモリ先頭アドレスを設定する。次に、リストLの各エントリEについて、先頭から以下を繰り返す。
【００８７】
もし、EのアドレスAがWAより小でかつ、WA+MSがA未満ならば、「隙間あり」なので、WAを隙間の先頭アドレスとして使用する。さもなければ、「隙間なし」なので、WAにA＋Sを設定し、次の隙間を探す。
【００８８】
次に、WAからメモリの最終アドレスまでのサイズとMSを比較し、MSのほうが小さいかまたは同じならば、WAを隙間の先頭アドレスとして使用する。図では、（例１）先頭に隙間あり、(例２)エントリ間に隙間あり、(例３)リスト末尾に隙間ありの場合を示す。
【００８９】
以上のように、本実施の形態によれば、複数のメモリ間でデータ転送を行うことにより、メモリマスタの使用するメモリのデフラグ処理を容易に、かつ高速に行うとともに、使用中のメモリデータを一箇所に移動させて未使用のメモリデバイスをつくり、未使用のメモリデバイスの電源を遮断してシステムを省電力化することができる。
【００９０】
なお、本実施の形態では、２つのメモリ403,404の使用サイズを比較して、使用領域の大きいメモリ403で使用されている領域のデータを一旦他方のメモリ404に移動させた後、空きになったメモリ403の連続領域にデータを移動させる例を説明したが、２つのメモリ403,404の使用サイズを比較して、使用領域の小さいメモリ404で使用されている領域のデータを他方のメモリ403に移動させてもよい。この場合、移動させるべきデータ量が少なくなるため、データ転送をより高速に行うことができる。また、使用領域の小さいメモリ404で使用されている領域のデータを他方のメモリ403に移動させる際、連続領域にデータを移動させてもよい。
【００９１】
（実施の形態３）
図１１は、本発明の実施の形態３におけるコンピュータシステムの構成図である。図１１において、本発明の実施の形態２におけるコンピュータシステムの構成（図５）との相違は、（１）メモリマスタ501とメモリ制御部502との間にアドレス変換テーブル505が入ること、（２）メモリバスがアドレス変換テーブル505の前後で2つのメモリバス508とメモリバス509に分割されたこと、（３）アドレス変換テーブル505をメモリマスタ501から制御するために両者をホストバス5012で接続すること、（４）メモリ制御部502内のデータ転送機能部5021からアドレス変換テーブル505にアドレス変換テーブル更新用のバス5010を接続したことである（以降、データ転送処理に関する説明は省略し、実施の形態２との相違についてのみ説明する）。
【００９２】
上記の４つの相違点（１）、（２）、（３）、（４）に対応する各構成部について説明する。（１）アドレス変換テーブル505は、メモリマスタ501内で使用するアドレスとメモリ制御部502以下のブロックで使用するアドレスが異なる場合に、メモリマスタ501から発行されたアドレスをメモリ制御部502以降のブロックで使用するアドレスに変換するためのアドレス変換情報（一部の変換前アドレスと一部の変更後アドレスの組）を保持し、メモリマスタ501やメモリ制御部502内のデータ転送機能部5021からの要求に応じてアドレス情報の登録、変更、削除といったテーブルの管理機能を有する。
【００９３】
アドレス変換テーブル505は、回路リソースの都合上ある固定サイズ毎にエントリを備えており、1アドレス毎に異なるアドレスに変換することはできない。こうすることでアドレス変換情報として記憶する情報量を削減している。
【００９４】
（２）メモリバス508は、メモリマスタ501から発行されたメモリアクセス要求をアドレス変換テーブル505に渡し、メモリバス509はアドレス変換テーブル505でアドレス変換されたメモリアクセス要求をメモリ制御部502に渡す。（３）アドレス変換テーブル505のエントリ登録は主にメモリマスタ501が行うため、アドレス変換テーブル505とメモリマスタ501とはホストバス5012で接続する。
【００９５】
（４）アドレス変換テーブル更新用のバス5010は、メモリ制御部502内のデータ転送機能部5021が指定されたデータ転送の完了後、アドレス変換テーブル505に対して、データ転送の転送元アドレスと転送先アドレスとアドレス変換テーブル更新要求信号を送る。
【００９６】
アドレス変換テーブル505は、メモリ制御部502内のデータ転送機能部5021からの要求を受けて、テーブル内の変換後アドレスが、データ転送機能部502が送った転送元アドレスと一致するエントリを検索し、一致したエントリのアドレス変換後アドレスをデータ転送機能部502が送った転送先アドレスに書き換える。なお、一致しない場合は何も行わなくてよい。
【００９７】
図１２は、本実施の形態３におけるメモリマネジメント方式でのデータ転送完了後のアドレス変換テーブル更新処理のフローチャートを示した図である。図１２を参照しながらアドレス変換テーブル更新処理の大まかな流れを説明する。
【００９８】
まず、データ転送機能部5021がメモリ503,504内のデータ転送処理を完了するのを待ち（処理ステップS2001）、データ転送完了後にデータ転送機能部5021は、アドレス変換テーブル更新用のバス5010を介してアドレス変換テーブル505に転送元アドレス、転送先アドレスとテーブル更新要求を送信する（処理ステップS2002）。
【００９９】
アドレス変換テーブル505はテーブル更新要求に応答して、転送元アドレスでアドレス変換テーブル505の検索を行い（処理ステップS2003）、一致するエントリが存在するならば（処理ステップS2004：Ｙｅｓ）、転送先アドレスでアドレス変換テーブル505のエントリを更新する（処理ステップS2005）。
【０１００】
以上により、データ転送とデータ転送完了後にアドレス変換テーブル505の更新がなされ、例えば、メモリマスタ501がデフラグ（メモリ内のとびとびの領域にデータが存在する場合、データをまとまった領域に格納する）などの用途でメモリ使用領域を変更する場合に、データ転送とアドレス変換テーブル505の更新の両方を行うことができ、処理の高速化や処理手順の簡単化を実現できる。
【０１０１】
なお、本実施例では、アドレス変換テーブル505の更新の際に、アドレス変換テーブル505の検索において転送元アドレスのみで検索する例を示したが、転送元アドレスと転送サイズをもとに領域検索を行って複数のエントリを抽出して、複数のエントリを更新しても良い。
【０１０２】
（実施の形態4）
図１３は、本発明の実施の形態４におけるコンピュータシステムの構成図である。図１３において、本発明の実施の形態３におけるコンピュータシステムの構成（図１１）との相違は、（１）第2のメモリ604は、メモリアクセス調停部606にメモリバス6014で接続されること、（２）メモリアクセス調停部606は、メモリバス6012を介してメモリ制御部602内のメモリアクセス部6022に接続され、且つメモリバス6013を介してメモリマスタ601と接続され、メモリ制御部602内のメモリアクセス部6022とメモリマスタ601からのメモリアクセス要求を調停してメモリアクセスを行うことである（以降、実施の形態３との相違についてのみ説明し、共通部は説明を省略する）。
【０１０３】
上記の2つの相違点（１）、（２）に対応する各構成部について説明する。（１）第2のメモリ604は、メモリマスタ601に内蔵若しくは近接して設置された高速な小容量のメモリであり、通常はメモリマスタ601からメモリアクセス調停部606を介したメモリアクセスを行う。
【０１０４】
ところが第2のメモリ604は高速ではあるが容量が小さいため、容量不足が生じた場合、他のメモリ領域である第1のメモリにデータを移動する必要がある。その際、メモリ制御部602内のデータ転送機能部6021を使用すると、第2のメモリ604から第1のメモリ603へのデータ転送を高速に行うことができる。
【０１０５】
同様に、メモリマスタ601が使用していた第1のメモリ603の必要容量が第2のメモリ604の空き領域より小さい場合に、メモリアクセスの遅い第1のメモリ603からメモリアクセスの速い第2のメモリ604へデータ移動をさせる際にも、メモリ制御部602内のデータ転送機能部6021の使用により高速に処理することができる。
【０１０６】
（２）メモリアクセス調停部606は、メモリマスタ601からのメモリアクセス要求とメモリ制御部602内のメモリアクセス部6022からのメモリアクセス要求を調停して第2のメモリ604にアクセスを行う。アクセス調停方法については特に限定しないが、第2のメモリ604へのアクセスはメモリマスタ601がメモリバス6013を介して行うことが考えられる場合は、メモリマスタ601からのメモリアクセス要求を優先すれば良い。
【０１０７】
なお、本実施例では、システム構成上、メモリマスタ601はメモリ制御部602を介したメモリアクセスが可能であるが、不可能にしても良い。また、本実施例では、メモリマスタ601とメモリアクセス調停部606は、メモリバス6013で直接接続しているが、途中にアドレス変換テーブルを挿入することによって、メモリマスタ601内部では第2のメモリ604にローカルなアドレスを付与できるようにしても良い。
【０１０８】
（実施の形態5）
図１４は、本発明の実施の形態５におけるメモリマネジメント方式のデータ転送機能部が処理するメモリデータの配置図である。本発明の実施の形態５では、図１４に示すようにデータ転送機能部が処理するメモリデータが、ページ（例えば4096バイト）などのCPUやIOデバイス等のメモリマスタにとって都合の良いサイズに固定されていることが特徴である（以下、実施の形態１、２、３、４の記載と同様のため省略する）。
【０１０９】
（実施の形態６）
図１５は、本発明の実施の形態６におけるコンピュータシステムの構成図である。図１５において、本発明の実施の形態１におけるコンピュータシステムの構成（図１）との相異は、データ転送機能部8021によるデータ転送終了後、データ転送機能部8021は、メモリマスタ801にデータ転送完了通知信号807を介して完了通知を送信することである。メモリマスタ801は完了通知を受けることで直接的にデータ転送の完了を知ることができる。
【０１１０】
なお、データ転送の完了通知のタイミングは、１つのデータ転送が完了した時点、連続した複数個のデータ転送が完了した時点や、複数個の特定条件を満たすデータ転送が終了した時点でも良く、完了通知条件をデータ転送機能部8021のパラメータ設定部に登録できる形態が望ましい（以下、実施の形態１の記載と同様のため省略する）。
【０１１１】
（実施の形態７）
図１６は、本発明の実施の形態７におけるコンピュータシステムの構成図である。図１６において、本発明の実施の形態３におけるコンピュータシステムの構成（図１１）との相異は、アドレス変換テーブル905でのテーブル更新後、アドレス変換テーブル905は、メモリマスタ901にテーブル更新完了通知信号908を介して更新完了通知を送信することである。メモリマスタ901は更新完了通知を受けることで直接的にアドレス変換テーブル更新の完了を知ることができる。
【０１１２】
なお、データ転送の完了通知は、本発明の実施形態6に示したデータ転送機能部8021からのデータ転送の完了通知の信号を入力として論理を生成しても良い（以下、実施の形態３の記載と同様のため省略する）。
【０１１３】
（実施の形態８）
図１７は、本発明の実施の形態８におけるコンピュータシステムの構成図である。図１７において、本発明の実施の形態１におけるコンピュータシステムの構成（図１）との相異は、データ転送機能部10021は、内部にデータ転送状態を示す状態識別部100211を備えることである。
【０１１４】
状態識別部100211の情報はホストバス1005を介してメモリマスタ1001がアクセス可能であり、メモリマスタ1001は常時、データ転送機能部10021でのデータ転送の状態を確認することができる（以下、実施の形態１の記載と同様のため省略する）。
【０１１５】
（実施の形態９）
図１８は、本発明の実施の形態９におけるコンピュータシステムの構成図である。図１８において、本発明の実施の形態３におけるコンピュータシステムの構成（図１１）との相異は、アドレス変換テーブル1105は、内部にアドレス変換テーブル1105の更新状態を示す状態識別部11051を備えることである。
【０１１６】
状態識別部11051の情報はホストバス11012を介してメモリマスタ1101がアクセス可能であり、メモリマスタ1101は常時、アドレス変換テーブル1105でのアドレス変換テーブル1105の更新状態を確認することができる（以下、実施の形態３の記載と同様のため省略する）。
【０１１７】
（実施の形態１０）
図１９は、本発明の実施の形態１０におけるコンピュータシステムの構成図である。図１９において、本発明の実施の形態１におけるコンピュータシステムの構成（図１）との相異は、（１）メモリ制御部1202の中にコマンド制御部12021が追加されること、（２）コマンド制御部12021とメモリマスタ1201との間は、メモリバス1204、ホストバス1206と、アクセス競合通知信号1207で接続されること、（３）コマンド制御部12021とデータ転送機能部12021との間は、データ転送機能部12021の転送アドレス情報伝達用のアドレスバス12025と、データ転送機能部12021の転送サイズ情報伝達用のデータバス12026で接続されること、（４）コマンド制御部12021とメモリアクセス部1202との間は、メモリバス12023で接続されることである（以降、実施の形態１との相違についてのみ説明し、共通部は説明を省略する）。
【０１１８】
図２０は、図１９におけるコマンド制御部12021の詳細な構成図である。以降、図２０のシステム構成について、図を参照しながら説明する。コマンド制御部1302（図１９の12021）は、メモリアクセス保護部13021、コマンド種類判定部13022、アドレス空間比較部13023、論理積演算部13024、メモリバス1305からアクセスコマンドのみを抽出したコマンドバス13025、メモリバス1305から転送アドレスのみを抽出したアドレスバス13026、メモリバス1305から転送サイズ情報のみを抽出したデータバス13027、コマンド種類判定結果の出力信号13028とアドレス空間比較結果の出力信号13029とから構成される。
【０１１９】
また、メモリマスタ1301（図１９の1201）との間はメモリバス1305、ホストバス1306とアクセス競合通知信号1307で接続し、メモリアクセス部1303（図１９の12022）との間はメモリバス1310で接続し、データ転送機能部1304（図１９の12021）との間はデータ転送機能部1304の転送アドレス情報伝達用のアドレスバス1308とデータ転送機能部1304の転送サイズ情報伝達用のデータバス1309とで接続する。
【０１２０】
メモリアクセス保護部13021は、アクセス保護通知信号13030を入力条件として、メモリマスタ1301が発行したメモリアクセス要求をメモリアクセス部1303に発行するかどうかの制御を行う。
【０１２１】
コマンド種類判定部13022は、コマンドバス13025のデータを入力として、メモリマスタ1301が発行したメモリアクセス要求のコマンド部を解析し、例えばリードとライトの区別等のコマンドの種類を判定し、結果をコマンド種類判定結果の出力信号13028に出力する。
【０１２２】
転送アドレス情報伝達用のアドレスバス1308は、データ転送機能部1304でデータ転送中のアドレスをアドレス空間比較部13023に通知するためのアドレスバスである。転送サイズ情報伝達用のデータバス1309は、データ転送機能部1304でデータ転送中のデータサイズ情報をアドレス空間比較部13023に通知するためのデータバスである。
【０１２３】
アドレス空間比較部13023は、アドレスバス1308、データバス1309、アドレスバス13026とデータバス13027とを入力として、データ転送機能部1304でデータ転送中のメモリが、メモリマスタ1301から発行されたメモリアクセス要求のあったメモリと重複するかどうかを判定し、結果をアドレス空間比較結果の出力信号13029に出力する。
【０１２４】
論理演算部13024は、コマンド種類判定結果の出力信号13028とアドレス空間比較結果の出力信号13029との2入力の２つの論理演算を行い、結果を各々アクセス競合通知信号1307とアクセス保護通知信号13030とに出力する。
【０１２５】
図２１は、本実施の形態１０におけるメモリマネジメント方式における、データ転送中のメモリマスタ1301からのアクセスの制限方法を示した図である。図２１において、（１）全アクセス制限では、アドレスが一致する場合にはリード／ライトに関らず、アクセス調停を行う。その際、アクセス競合は起こらない。
【０１２６】
同様に、（２）ライトアクセスのみ制限では、アドレスが一致し、かつ、コマンドがライトのときのみアクセス調停を行い、アドレスが一致するがコマンドがリードのときはアクセス競合の通知を行う。同様に、（３）コマンド種類、アドレス一致／不一致に関らずアクセス調停を行わないが、アドレスが一致する場合はアクセス競合の通知を行う。
【０１２７】
以上のように、本実施の形態１０で示したメモリマネジメント方式は、データ転送機能部1304がデータ転送中に、メモリマスタ1301からのメモリアクセスの制限やアクセス競合通知を行うことが可能であるため、メモリの排他アクセスを簡単に実現することができる。
【０１２８】
なお、本実施例では、コマンドの判定にリード／ライト属性を用いたが、バースト長、メモリマスタ等の他のコマンド属性でより詳細なコマンド一致判定を行っても良い。
【０１２９】
以上説明したメモリ管理装置およびメモリ管理方法によれば、メモリ制御部がデータ転送機能部を備え、CPUやIOデバイスなどのメモリマスタが使用するメモリデータの移動をメモリマスタとは独立して高速に行い、またメモリ内のデータ転送の完了を契機にメモリ移動に応じてアドレス変換テーブルを更新する機能を備えることにより、メモリマスタの使用するメモリのデフラグ処理の容易化と高速化を実現することができる。また、図２２に示した従来の構成では、メモリマスタ201とデータ転送機能部204とが同時に同一アドレスのメモリ203にアクセスする場合、排他制御が出来ないため、メモリマスタ201のメモリアクセスとデータ転送機能部204の両方の動作を保証できないという事情があったのに対し、上記実施形態で説明した構成によれば、メモリ制御部がデータ転送機能部とメモリアクセス部を備えることにより、メモリマスタのメモリアクセスとデータ転送機能部の両方の動作を保証できる。
【産業上の利用可能性】
【０１３０】
本発明は、メモリ制御部はデータ転送機能部を備え、CPUやIOデバイスなどのメモリマスタが使用するメモリデータの移動をメモリマスタとは独立して高速に行うことにより、高速なデータ転送が実現できる効果を有し、コンピュータシステムにおけるメモリ管理装置およびメモリ管理方法等に有用である。
【図面の簡単な説明】
【０１３１】
【図１】本発明の実施の形態１におけるコンピュータシステムの構成図
【図２】本発明の実施の形態１におけるコンピュータシステム内のデータ転送機能部の構成に関する説明図
【図３】本発明の実施の形態１におけるメモリマネジメント方式のフローチャート
【図４】本発明の実施の形態１における処理フローを示す図
【図５】本発明の実施の形態２におけるコンピュータシステムの構成図
【図６】本発明の実施の形態２におけるデフラグ処理に関する説明図
【図７】本発明の実施の形態２におけるメモリ電源断移行処理に関する説明図
【図８】本発明の実施の形態２におけるメモリ管理情報に関する説明図（１）
【図９】本発明の実施の形態２におけるメモリ管理情報に関する説明図（２）
【図１０】本発明の実施の形態２におけるメモリ管理情報に関する説明図（３）
【図１１】本発明の実施の形態３におけるコンピュータシステムの構成図
【図１２】本実施の形態３におけるメモリマネジメント方式のアドレス変換テーブル更新処理のフローチャート
【図１３】本発明の実施の形態４におけるコンピュータシステムの構成図
【図１４】本発明の実施の形態５におけるメモリマネジメント方式のデータ転送機能部が処理するメモリデータの配置図
【図１５】本発明の実施の形態６におけるコンピュータシステムの構成図
【図１６】本発明の実施の形態７におけるコンピュータシステムの構成図
【図１７】本発明の実施の形態８におけるコンピュータシステムの構成図
【図１８】本発明の実施の形態９におけるコンピュータシステムの構成図
【図１９】本発明の実施の形態１０におけるコンピュータシステムの構成図
【図２０】本発明の実施の形態１０におけるコンピュータシステム内のコマンド制限部の詳細な構成図
【図２１】本実施の形態１０におけるメモリマネジメント方式でデータ転送中のメモリマスタからのアクセスの制限方法を示した図
【図２２】従来のコンピュータシステムの構成図
【図２３】従来のコンピュータシステムの処理フローを示す図
【符号の説明】
【０１３２】
101，201，301，401，501，601，801，901，1001，1101，1201，1301  メモリマスタ
102，202，402，502，602，802，902，1002，1102，1202  メモリ制御部
803，1003，1203，1303  メモリ
404，503，603，903，1103  第1のメモリ
404，504，604，904，1104  第2のメモリ
104，105，1023，205，207，209，305，405，406，407，4023，506，507，508，509，5023，607，608，609，6012，6013，6014，6023，804，805，8023，906，907，909，9010，9023，1004，1006，10023，1106，1107，1108，1109，11023，1204，1205，12023，12024，1305，1307  メモリバス
106，206，208，304，408，5011，5012，6010，6015，806，9011，1005，11011，11012，1206，1307  ホストバス
1021，204，302，4021，5021，6021，8021，9021，10021，11021，12021，1304  データ転送機能部
1022，303，4022，5022，6022，8022，9022，10022，11022，12022  メモリアクセス部
3021  パラメータ設定部
3022  アクセスコマンド発行部
3023  バッファ
605，905，1105  アドレス変換テーブル
5010，6011，11010  アドレス変換テーブル更新用のバス
606  メモリアクセス調停部
807  データ転送完了通知信号
908  更新完了通知信号
100211  状態識別部（データ転送）
11051  状態識別部（アドレス変換テーブル）
1207  アクセス競合通知信号
12021，1302  コマンド制御部
12025，1308  データ転送機能部の転送アドレス情報伝達用のアドレスバス
12026，1309  データ転送機能部の転送サイズ情報伝達用のデータバス
13021  メモリアクセス保護部
13022  コマンド種類判定部
13023  アドレス空間比較部
13024  論理積演算部（ANDゲート）
13025  メモリバス1305からアクセスコマンドのみを抽出したコマンドバス
13026  メモリバス1305から転送アドレスのみを抽出したアドレスバス
13027  メモリバス1305から転送サイズ情報のみを抽出したデータバス
13028  コマンド種類判定結果の出力信号
13029  アドレス空間比較結果の出力信号
S1001からS1008，S2001からS2005  処理ステップ
【図１】
2009163394.tif 000003
【図２】
2009163394.tif 000004
【図３】
2009163394.tif 000005
【図４】
2009163394.tif 000006
【図５】
2009163394.tif 000007
【図６】
2009163394.tif 000008
【図７】
2009163394.tif 000009
【図８】
2009163394.tif 000010
【図９】
2009163394.tif 000011
【図１０】
2009163394.tif 000012
【図１１】
2009163394.tif 000013
【図１２】
2009163394.tif 000014
【図１３】
2009163394.tif 000015
【図１４】
2009163394.tif 000016
【図１５】
2009163394.tif 000017
【図１６】
2009163394.tif 000018
【図１７】
2009163394.tif 000019
【図１８】
2009163394.tif 000020
【図１９】
2009163394.tif 000021
【図２０】
2009163394.tif 000022
【図２１】
2009163394.tif 000023
【図２２】
2009163394.tif 000024
【図２３】
2009163394.tif 000025