(57)【特許請求の範囲】
【請求項１】
異なるモジュール間でのデータ転送を制御するデータ転送制御装置であって、
所定のモジュールに対応して構成されたモジュール対応ＤＭＡコントローラと、
前記モジュール対応ＤＭＡコントローラとは異なる機能を実現する機能対応ＤＭＡコントローラと、
前記データ転送のためのデータバスに接続され、当該データバスを介して入力された順にデータを出力する一時記憶装置と、を備え、
前記モジュール対応ＤＭＡコントローラは、前記所定のモジュールから取得したデータを取得した順に前記一時記憶装置に入力し、
前記一時記憶装置は、前記モジュール対応ＤＭＡコントローラにより入力された前記所定のモジュールから取得されたデータを入力された順に前記機能対応ＤＭＡコントローラに出力し、若しくは、
前記機能対応ＤＭＡコントローラは、前記所定のモジュールに転送するべきデータを前記一時記憶装置に入力し、
前記一時記憶装置は、前記機能対応ＤＭＡコントローラにより入力された前記所定のモジュールに転送するべきデータを入力された順に前記モジュール対応ＤＭＡコントローラに出力し、
前記モジュール対応ＤＭＡコントローラは、前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを出力された順に前記所定のモジュールに転送し、
前記一時記憶装置は、データの入力用と出力用からなる二つのインターフェースを介して前記データバスに接続されていて、当該データバスに接続されているマスターインターフェースを備えた前記所定のモジュールからアクセスすることができ、
前記インターフェースのうち出力用であるデータ送信用スレーブインターフェースは、当該一時記憶装置に記憶されているデータを、前記所定のモジュールのうち、受信機能を備えたマスターインターフェースを備えるモジュールに対して出力するインターフェースであり、
前記インターフェースのうちの入力用であるデータ受信用スレーブインターフェースは、当該一時記憶装置に記憶されているデータを、前記所定のモジュールのうち、送信機能を備えたマスターインターフェースを備えるモジュールから入力するインターフェースである、
ことを特徴とするデータ転送制御装置。
【請求項２】
前記機能対応ＤＭＡコントローラは、前記モジュール対応ＤＭＡコントローラよりもデータ転送サイズの最小単位が小さく、
前記機能対応ＤＭＡコントローラが前記一時記憶装置に前記所定のモジュールに転送するべきデータを入力し、前記モジュール対応ＤＭＡコントローラが前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを前記所定のモジュールに転送する際に、前記一時記憶装置の記憶領域が空になった場合、前記一時記憶装置は、前記モジュール対応ＤＭＡコントローラに対して疑似データを出力することを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記機能対応ＤＭＡコントローラは、前記モジュール対応ＤＭＡコントローラよりもデータ転送サイズの最小単位が小さく、
前記モジュール対応ＤＭＡコントローラが前記一時記憶装置に前記所定のモジュールから取得されたデータを入力し、前記一時記憶装置が前記機能対応ＤＭＡコントローラに前記所定のモジュールから取得されたデータを出力する際に、前記一時記憶装置の記憶領域が満杯になった場合、前記一時記憶装置は、前記モジュール対応ＤＭＡコントローラから入力されたデータを破棄することを特徴とする請求項１又は２に記載のデータ転送制御装置。
【請求項４】
前記機能対応ＤＭＡコントローラは、
前記モジュール対応ＤＭＡコントローラが前記一時記憶装置に前記所定のモジュールから取得されたデータを入力し、前記一時記憶装置が前記機能対応ＤＭＡコントローラに前記所定のモジュールから取得されたデータを出力する際に、前記一時記憶装置の記憶領域が満杯になった場合、前記一時記憶装置に前記モジュール対応ＤＭＡコントローラから入力されたデータを破棄させ、
前記機能対応ＤＭＡコントローラが前記一時記憶装置に前記所定のモジュールに転送するべきデータを入力し、前記モジュール対応ＤＭＡコントローラが前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを前記所定のモジュールに転送する際に、前記一時記憶装置の記憶領域が空になった場合、前記一時記憶装置に前記モジュール対応ＤＭＡコントローラに対して疑似データを出力させることを特徴とする請求項２又は３に記載のデータ転送制御装置。
【請求項５】
データの出力先となる主記憶装置にデータを書き込む際の書き込み先のアドレス、若しくは、データの入力元となる主記憶装置からデータを読み出す際の読み出し元のアドレスを設定するアドレス設定部を備えることを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送制御装置。
【請求項６】
前記アドレス設定部は、２次元画像データのうち特定の矩形領域に対応する画像データが主記憶装置と他の装置との間で転送される際、前記２次元画像データの横方向の画素数、前記２次元画像データの縦方向の画素数、前記２次元画像データにおける前記画像データのうち最初に転送される画素の前記２次元画像データにおける横方向の位置情報、前記２次元画像データにおける前記画像データのうち最初に転送される画素の前記２次元画像データにおける縦方向の位置情報、前記２次元画像データにおける前記画像データのうち最後に転送される画素の前記２次元画像データにおける横方向の位置情報、前記２次元画像データにおける前記画像データのうち最後に転送される画素の前記２次元画像データにおける縦方向の位置情報に基づいて、前記画像データの出力先となる主記憶装置に前記画像データを書き込む際の書き込み先のアドレス、若しくは、前記画像データの入力元となる主記憶装置から前記画像データを読み出す際の読み出し元のアドレスを算出することを特徴とする請求項５に記載のデータ転送制御装置。
【請求項７】
前記アドレス設定部は、前記機能対応ＤＭＡコントローラであることを特徴とする請求項５又は６に記載のデータ転送制御装置。
【請求項８】
前記データ転送の動作内容に関する転送パラメータを設定する転送パラメータ設定部を備え、
前記転送パラメータ設定部は、複数回にわたって連続して制御されるデータ転送毎に、次に制御されるデータ転送の動作内容に関する転送パラメータの設定先のアドレスを、前記転送パラメータとして設定することを特徴とする請求項１乃至７のいずれか一項に記載のデータ転送制御装置。
【請求項９】
前記一時記憶装置の記憶容量は、前記モジュール対応ＤＭＡコントローラの１回のバースト転送サイズの２倍であることを特徴とする請求項１乃至８のいずれか一項に記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置に関する。
【背景技術】
【０００２】
近年、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や画像形成装置等の情報処理装置と、その情報処理装置に接続されて使用される周辺Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとの間におけるデータ通信の高速化や、データ処理の高速化のために、バスに接続されたＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）を介してデータのやり取りを行う構成が提案されている（例えば、特許文献１を参照）。また、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を介さずに、周辺Ｉ／Ｏデバイスとメモリ間、若しくは、周辺Ｉ／Ｏデバイス同士の間で、直接データ転送を行なうために、機能モジュール毎にマスター型のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ：ＤＭＡコントローラ）を備える構成が提案されている。
【０００３】
周辺Ｉ／Ｏデバイスには、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）をインタフェースとして接続される拡張カード等が挙げられる。また、データ処理には、例えば、画像処理、データ圧縮処理、データ伸長処理、データ暗号化処理、データ復号処理などが挙げられる。
【０００４】
上記のようなＤＭＡコントローラは通常、モジュールに内蔵されて使用されるが、そのＤＭＡコントローラ（以下、「内蔵ＤＭＡコントローラ」とする）に備えられていない独自の機能を使用したい場合、その機能を備える独自のＤＭＡコントローラ（以下、「独自ＤＭＡコントローラ」とする）を併存して使用する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そうした場合、内蔵ＤＭＡコントローラ及び独自ＤＭＡコントローラは共にマスターとして動作するため、両者間でデータ転送を行うためには、スレーブであるメモリを介する必要がある。このとき、一方のＤＭＡコントローラが一旦、転送対象のデータを全てメモリに書き込み、その後に、もう一方のＤＭＡコントローラが上記メモリから転送順にデータを読み出すといった制御が必要になる。そのため、メモリアクセス回数やメモリ使用量の浪費になり、非効率な制御となってしまう。尚、このような問題は、モジュールに内蔵されたＤＭＡコントローラの他に、所定のモジュールに対応して構成されたＤＭＡコントローラについても同様に起こり得る問題である。
【０００６】
本発明は、このような課題を解決するためになされたものであり、所定のモジュールに対応して構成されたＤＭＡコントローラと所定の機能を実現するために構成されたＤＭＡコントローラとを併用する場合において効率的な制御を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は、異なるモジュール間でのデータ転送を制御するデータ転送制御装置であって、所定のモジュールに対応して構成されたモジュール対応ＤＭＡコントローラと、前記モジュール対応ＤＭＡコントローラとは異なる機能を実現する機能対応ＤＭＡコントローラと、前記データ転送のためのデータバスに接続され、当該データバスを介して入力された順にデータを出力する一時記憶装置と、を備え、前記モジュール対応ＤＭＡコントローラは、前記所定のモジュールから取得したデータを取得した順に前記一時記憶装置に入力し、前記一時記憶装置は、前記モジュール対応ＤＭＡコントローラにより入力された前記所定のモジュールから取得されたデータを入力された順に前記機能対応ＤＭＡコントローラに出力し、若しくは、前記機能対応ＤＭＡコントローラは、前記所定のモジュールに転送するべきデータを前記一時記憶装置に入力し、前記一時記憶装置は、前記機能対応ＤＭＡコントローラにより入力された前記所定のモジュールに転送するべきデータを入力された順に前記モジュール対応ＤＭＡコントローラに出力し、前記モジュール対応ＤＭＡコントローラは、前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを出力された順に前記所定のモジュールに転送し、前記一時記憶装置は、データの入力用と出力用からなる二つのインターフェースを介して前記データバスに接続されていて、当該データバスに接続されているマスターインターフェースを備えた前記所定のモジュールからアクセスすることができ、前記インターフェースのうち出力用であるデータ送信用スレーブインターフェースは、当該一時記憶装置に記憶されているデータを、前記所定のモジュールのうち、受信機能を備えたマスターインターフェースを備えるモジュールに対して出力するインターフェースであり、前記インターフェースのうちの入力用であるデータ受信用スレーブインターフェースは、当該一時記憶装置に記憶されているデータを、前記所定のモジュールのうち、送信機能を備えたマスターインターフェースを備えるモジュールから入力するインターフェースである、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、所定のモジュールに対応して構成されたＤＭＡコントローラと所定の機能を実現するために構成されたＤＭＡコントローラとを併用する場合において効率的な制御を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る画像形成装置のハードウェア構成を模式的に示すブロック図である。
【図２】本発明の実施形態に係る情報処理装置におけるメモリのデータ構造を模式的に示す図である。
【図３】本発明の実施形態に係る画像記憶領域に記憶されている２次元画像データの画素情報とメモリアドレスとの関係を示す図である。
【図４】本発明の実施形態に係る独自仕様ＤＭＡＣが２次元ＤＭＡ転送によりメモリから画像データをリードする際のディスクリプタ設定を説明するための図である。
【図５】本発明の実施形態に係る独自仕様ＤＭＡＣが２次元ＤＭＡ転送によりメモリに画像データをライトする際のディスクリプタ設定を説明するための図である。
【図６】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介して行うデータ転送に先だってその準備を行う際の処理を説明するためのシーケンス図である。
【図７】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介してメモリから画像データをリードしてＨＤＤにライトする際の処理を説明するためのシーケンス図である。
【図８】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介してメモリから画像データをリードしてＨＤＤにライトする際の処理を説明するためのシーケンス図である。
【図９】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介してメモリから画像データをリードしてＨＤＤにライトする際の処理を説明するためのシーケンス図である。
【図１０】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介してＨＤＤから画像データをリードしてメモリにライトする際の処理を説明するためのシーケンス図である。
【図１１】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介してＨＤＤから画像データをリードしてメモリにライトする際の処理を説明するためのシーケンス図である。
【図１２】本発明の実施形態に係る情報処理装置において、独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとがＦＩＦＯを介してＨＤＤから画像データをリードしてメモリにライトする際の処理を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、データ転送制御装置として、規格で仕様が規定されていない独自仕様ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｅｒ：ＤＭＡコントローラ）と、規格で仕様が規定されている規格準拠ＤＭＡＣとが、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）を介して、メモリとＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）との間でデータ転送を行うＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｍｐｕｔｅｒ）や画像形成装置等の情報処理装置を例として説明する。
【００１１】
この独自仕様ＤＭＡＣと規格準拠ＤＭＡＣとは機能が異なり、独自仕様ＤＭＡＣは、規格準拠ＤＭＡＣにはない、２次元ＤＭＡ転送機能やディスクリプタチェイン等の機能を備える。即ち、本実施形態においては、規格準拠ＤＭＡＣがモジュール対応ＤＭＡＣとして機能し、独自仕様ＤＭＡＣが機能対応ＤＭＡＣとして機能する。このように構成された情報処理装置１において、本実施形態に係る要旨の一つは、規格準拠ＤＭＡＣと独自仕様ＤＭＡＣとを併用する場合において効率的な制御を実現することにある。
【００１２】
まず、本実施形態に係る情報処理装置１のハードウェア構成について図１を参照して説明する。図１は、本実施形態に係る情報処理装置１のハードウェア構成を模式的に示すブロック図である。
【００１３】
図１に示すように、本実施形態に係る情報処理装置１は、独自仕様ＤＭＡＣ１０、ＦＩＦＯ２０、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）制御部３０、メモリ４０、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０、ＨＤＤ６０、高速バス７１、低速バス７２、アドレス制御部８０を備える。
【００１４】
ＦＩＦＯ２０は、先に記憶したデータから順番にデータを取り出すことができる一時記憶装置で、データ入力用とデータ出力用の２つのスレーブインターフェースで高速バス７１に接続されており、バスに接続されているマスターインターフェースを備えた任意のモジュールからアクセスすることができる。
【００１５】
ＦＩＦＯ２０は、独自仕様ＤＭＡＣ１０が出力する制御信号である疑似応答要求のアサートを検知すると、疑似応答を開始する。ＦＩＦＯ２０は、疑似応答時、マスターインターフェースから送信要求があった場合には、ＦＩＦＯ２０の状態に関わらず、即ち、空であっても、疑似データを送信する。一方、ＦＩＦＯ２０は、疑似応答時、マスターインターフェースから受信要求があった場合には、ＦＩＦＯ２０の状態に関わらず、即ち、満杯の状態であっても、データを受信し、受信したデータを記憶することなく破棄する。
【００１６】
ここで、本実施形態に係るＦＩＦＯ２０がこのように、疑似応答時、マスターインターフェースから送信要求があった場合、空でも疑似データを送信し、マスターインターフェースから受信要求があった場合、満杯でもデータを受信する理由について説明する。
【００１７】
ＨＤＤ６０等のストレージデバイスはセクター単位でのアクセスが必要であるため、規格準拠ＤＭＡＣ３１のデータ転送量がセクタサイズの整数倍である。これに対し、独自仕様ＤＭＡＣ１０のデータ転送サイズは１画素単位で設定可能である。そのため、規格準拠ＤＭＡＣと独自ＤＭＡＣとの間でデータ転送量の差が発生する。従って、本実施形態に係る情報処理装置１は、このときに上述したような疑似応答を実行することで、データ転送を正常に完了させるようになっている。
【００１８】
即ち、情報処理装置は、仮に疑似応答を実行しない場合、ＦＩＦＯ２０に対するデータの送信要求に対して、ＦＩＦＯ２０にデータが入力されるのを待ち続けることになる。また、情報処理装置は、仮に疑似応答を実行しない場合、ＦＩＦＯ２０に対する受信要求に対して、ＦＩＦＯ２０に空きができるまで待ち続けることになる。そこで、本実施形態に係る情報処理装置１、上述したような疑似応答を実行することでデータ転送を正常に完了させるようになっている。本実施形態に係る情報処理装置１は、このことを要旨の一つとしている。
【００１９】
データ送信用スレーブインターフェース２１は、ＦＩＦＯ２０に記憶してあるデータを、受信機能を備えた任意のマスターインターフェースへ送信する。受信機能を備えたマスターインターフェースを持つモジュールは、送信用スレーブインターフェース２１に割り当てられたアドレスに対してリード動作を実行することで、ＦＩＦＯ２０に記憶してあるデータを取得することができる。
【００２０】
データ受信用スレーブインターフェース２２は、送信機能を備えた任意のマスターインターフェースから送信されたデータを受信する。このとき受信されたデータはＦＩＦＯ２０に記憶される。送信機能を備えたマスターインターフェースを持つモジュールは、受信用スレーブインターフェース２２に割り当てられたアドレスに対してライト動作を実行することで、ＦＩＦＯ２０へのデータ入力を実施することができる。
【００２１】
スレーブインターフェース２１及び２２は、データバス幅１２８ｂｉｔで高速バス７１に接続される。また、ＦＩＦＯ２０の記憶容量は、８バースト動作×２回分＝８×１２８ｂｉｔ×２＝２０４８ｂｉｔ＝２５６Ｂｙｔｅとする。ここで、８バースト動作の転送サイズ（８×１２８ｂｉｔ）は、ＦＩＦＯ２０を最も高い頻度で使用するＳＡＴＡ制御部３０内部の規格準拠ＤＭＡＣ３１の１回のバースト転送サイズである。ＦＩＦＯ２０は、このように構成されることで、ＦＩＦＯ２０にデータがライトされる速度と、ＦＩＦＯ２０からデータがリードされる速度が同等である場合に、最小限の記憶容量でデータ転送速度を維持することが可能となる。
【００２２】
高速バス７１は、任意のマスターインターフェースを備えたモジュールと、任意のスレーブインターフェースを備えたモジュール間のデータ転送を仲介する。この高速バス７１に接続された複数組のマスターモジュール／スレーブモジュール間のデータ転送は、並行して実行され得る。本実施形態に係る高速バス７１の帯域は、数ＧＢｙｔｅ／Ｓの帯域が想定されている。
【００２３】
低速バス７２は、各機能モジュールの設定情報等の高速な転送を必要としないデータの送受信で使用され、任意のマスターインターフェースを備えたモジュールと、任意のスレーブインターフェースを備えたモジュール間のデータ転送を仲介する。この高速バス７１に接続された１組のマスターモジュール／スレーブモジュール間でデータ転送中である場合には、他のマスターモジュール／スレーブモジュール間でデータ転送を実行することはできない。本実施例では、数十ＭＢｙｔｅ／Ｓの帯域を想定している。
【００２４】
ＣＰＵ５０は、各機能モジュールの動作を設定し、システムのメイン制御を実行する。また、ＣＰＵ５０は、データ送受信用のマスターインターフェース５１を通して、バスに接続された任意のスレーブインターフェースを持つモジュールにアクセスすることができる。ＣＰＵ５０は、各スレーブインターフェースには、スレーブモジュールの仕様に応じたアドレス範囲、または、特定アドレス値が割り当てられており、このアドレスを指定することで、所望のスレーブモジュールにアクセスすることができる。
【００２５】
独自仕様ＤＭＡＣ１０は、規格で仕様が規定されていない独自に設計・開発され、若しくは、独自に調達されたＤＭＡＣである。この独自仕様ＤＭＡＣ１０は、データ入力用のマスターインターフェース１２とデータ出力用のマスターインターフェース１３とで高速バス７１に接続されており、バスに接続されているスレーブインターフェースを備えた任意のモジュールに対してアクセスすることができる。
【００２６】
また、独自仕様ＤＭＡＣ１０は、データ送信用のマスターインターフェース１２を通して、任意の受信用スレーブインターフェースを持つモジュールにライトすることができる。また、独自仕様ＤＭＡＣ１０は、データ受信用のマスターインターフェース１３を通して、任意の送信用スレーブインターフェースを持つモジュールからデータをリードすることができる。
【００２７】
また、独自仕様ＤＭＡＣ１０は、２次元ＤＭＡ転送機能を備えており、メモリ４０とＨＤＤ６０との間で、２次元画像として記憶しされている２次元画像データを転送する際、その全てを転送するのではなく、選択された特定の矩形領域のみを転送することができる。この２次元ＤＭＡ転送機能の詳細については、図３〜図５にて説明する。
【００２８】
また、独自仕様ＤＭＡＣ１０は、データ転送が完了すると、疑似応答要求をアサートすることで、ＦＩＦＯ２０に対して疑似応答を要求する。独自仕様ＤＭＡＣ１０のディスクリプタアドレス等の各種設定は、低速バス７２に接続されたデータ送受信用スレーブインターフェース１１を通してＣＰＵ５０により設定される。
【００２９】
メモリ４０は、ＨＤＤ６０からリードしたＣＰＵ５０の動作プログラムを記憶し、若しくは、ＣＰＵ５０の処理したデータを記憶する等、各機能モジュールの作業領域として使用される主記憶装置である。データ送受信用のスレーブインターフェース４１には、メモリ４０の容量に応じたアドレス範囲が割り当てられており、バスに接続された任意のマスターインターフェースを持つモジュールは、このアドレスを指定することで、メモリ４０にアクセスすることができる。
【００３０】
ＳＡＴＡ制御部３０は、データ送受信用のマスター型の規格準拠ＤＭＡＣ３１が内蔵されている。また、ＳＡＴＡ制御部３０は、ＳＡＴＡ規格に準拠したデバイスを制御するためのＳＡＴＡホストコントローラ機能を備え、ＨＤＤ６０へのデータライト／データリードを実行する。ＳＡＴＡのコマンド設定や、ＨＤＤ６０のステータス情報の取得は、低速バス７２に接続された送受信用のスレーブインターフェース３２を通して、ＣＰＵ５０により実行される。
【００３１】
規格準拠ＤＭＡＣ３１は、規格で仕様が規定されたＤＭＡＣである。この規格準拠ＤＭＡＣ３１は、マスターインターフェース３３を通して高速バス７１に接続され、スレーブインターフェースを持つ任意のモジュールにアクセスすることができる。規格準拠ＤＭＡＣ３１のリード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ等の各種設定は、スレーブインターフェース３２を通してＣＰＵ５０により設定される。
【００３２】
アドレス制御部８０は、規格準拠ＤＭＡＣ３１がＦＩＦＯ２０にアクセスする場合には、アドレスを固定することで、インクリメントしないようにする。
【００３３】
ＨＤＤ６０は、ＳＡＴＡ規格に準拠したストレージデバイスで、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、アプリケーションプログラム等を記憶し、また、処理データの一時待避領域等に使用される。
【００３４】
次に、本実施形態に係る情報処理装置１におけるメモリ４０のデータ構造について、図２を参照して説明する。図２は、本実施形態に係る情報処理装置１におけるメモリ４０のデータ構造を模式的に示す図である。
【００３５】
図２に示すように、本実施形態に係る情報処理装置１において、メモリ４０は、独自仕様ＤＭＡＣ制御レジスタ領域１００、ＦＩＦＯ（出力）領域２１０、ＦＩＦＯ（入力）領域２２０、ＳＡＴＡ制御レジスタ領域３００、規格準拠ＤＭＡＣ制御レジスタ領域３１０、メモリ領域４００、システム制御レジスタ領域５００を含む。
【００３６】
システム制御レジスタ領域５００は、ＣＰＵ５０の動作モード等を設定する領域で、アドレス０ｘ０００８＿００００〜０ｘ００１０＿０ＦＦＦが割り当てられている。
【００３７】
ＳＡＴＡ制御レジスタ領域３００は、送受信用スレーブインターフェース３２を通してマスターモジュールがアクセスできる領域で、アドレス０ｘ００１０＿１０００〜０ｘ００１０＿１ＦＦＦが割り当てられている。
【００３８】
規格準拠ＤＭＡＣ制御レジスタ領域３１０は、送受信用スレーブインターフェース３２を通してマスターモジュールがアクセスできる領域で、アドレス０ｘ００１０＿２０００〜０ｘ００１０＿２ＦＦＦが割り当てられている。
【００３９】
独自仕様ＤＭＡＣ制御レジスタ領域１００は、送受信用スレーブインターフェース１１を通してマスターモジュールがアクセスできる領域で、アドレス０ｘ００１０＿３０００〜０ｘ００１０＿３ＦＦＦが割り当てられている。
【００４０】
ＦＩＦＯ（入力）領域２２０は、受信用スレーブインターフェース２２を通してマスターモジュールがアクセスできる領域で、アドレス０ｘ００２０＿００００が割り当てられている。
【００４１】
ＦＩＦＯ（出力）領域２１０は、送信用スレーブインターフェース２１を通してマスターモジュールがアクセスできる領域で、アドレス０ｘ００２０＿１０００が割り当てられている。
【００４２】
メモリ領域４００は、送受信用スレーブインターフェース４１を通してマスターモジュールがアクセスできる領域で、アドレス０ｘ８０００＿００００〜０ｘＦＦＦＦ＿ＦＦＦＦが割り当てられている。
【００４３】
本実施例では、メモリ領域４００は、画像記憶領域４１０、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０、規格準拠ＤＭＡＣディスクリプタ記憶領域４４０を含む。
【００４４】
画像記憶領域４１０は、横ｎ画素×縦ｍ画素の２次元画像を記憶する。独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０、及び、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０は、ＣＰＵ５０が独自仕様ＤＭＡＣ１０の動作パラメータを記述する領域である。
【００４５】
このように、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０、及び、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０がチェインされている構成が、規格準拠ＤＭＡＣ３１にはない、独自仕様ＤＭＡＣ１０のみが備えるディスクリプタチェイン機能を実現するための構成である。尚、本実施例では、独自仕様ＤＭＡＣディスクリプタ記憶領域は、２段チェインされているが、同様のディスクリプタが追加作成されることにより、３段以上のチェインも可能になる。
【００４６】
規格準拠ＤＭＡＣディスクリプタ記憶領域４４０は、ＣＰＵ５０が規格準拠ＤＭＡＣ３１の動作パラメータを記述する領域である。
【００４７】
次に、本実施形態に係る情報処理装置１における２次元ＤＭＡ転送機能について、図３〜図５を参照して説明する。図３は、本実施形態に係る画像記憶領域４１０に記憶されている２次元画像データの画素情報とメモリアドレスとの関係を示す図である。図４は、本実施形態に係る独自仕様ＤＭＡＣ１０が２次元ＤＭＡ転送によりメモリ４０から画像データをリードする際のディスクリプタ設定を説明するための図である。図５は、本実施形態に係る独自仕様ＤＭＡＣ１０が２次元ＤＭＡ転送によりメモリ４０に画像データをライトする際のディスクリプタ設定を説明するための図である。
【００４８】
尚、図４及び図５の内容は、ＣＰＵ５０若しくは独自仕様ＤＭＡＣ１０により設定される。即ち、本実施形態においては、ＣＰＵ５０若しくは独自仕様ＤＭＡＣ１０がアドレス設定部及び転送パラメータ設定部として機能する。
【００４９】
図３に示すように、本実施形態に係る画像記憶領域４１０は、アドレス範囲０ｘＣ０００＿００００〜０ｘＣ０００＿００００+ｍ＊ｎ−１に、横ｎ画素×縦ｍ画素の２次元画像データを記憶している。
【００５０】
本実施形態に係る画像記憶領域４１０は、１画素あたりのデータサイズを８ｂｉｔ(１Ｂｙｔｅ)とし、１アドレスあたり８ｂｉｔ(１Ｂｙｔｅ)＝１画素のデータを記憶することができるものとする。
【００５１】
図３の一マスは、１画素に相当し、各画素に記述されている数値は、画素情報を記憶しているメモリアドレスのオフセットを示している。例えば、記載が「０」のマスならば、アドレス０ｘＣ０００＿００００に対応し、ｎ−１ならば、アドレス０ｘＣ０００＿００００＋（ｎ−１）に対応する。
【００５２】
独自仕様ＤＭＡＣ１０の２次元ＤＭＡ転送機能で転送する矩形領域を、４つのオフセットアドレスＸ１、Ｙ１、Ｘ２、Ｙ２で定義すると、図３の太線で囲まれた領域が、転送対象の矩形領域となる。
【００５３】
このように選択された矩形領域について、独自仕様ＤＭＡＣ１０は、アドレスＹ１＊ｎ＋Ｘ１、Ｙ１＊ｎ＋Ｘ１＋１・・・の順番にアクセスしていき、アドレスＹ１＊ｎ＋Ｘ２のアクセス後は、（Ｙ１＋１）＊ｎ＋Ｘ１、（Ｙ１＋１）＊ｎ＋Ｘ１＋１・・・の順番でアクセスする。そして、独自仕様ＤＭＡＣ１０は、アドレス（Ｙ１＋１）＊ｎ＋Ｘ２のアクセス後は、（Ｙ１＋２）＊ｎ＋Ｘ１、（Ｙ１＋２）＊ｎ＋Ｘ１＋１・・・の順番でアクセスし、以後、同様の動作を繰り返す。独自仕様ＤＭＡＣ１０は、アドレスＹ２＊ｎ＋Ｘ２へのアクセスが終了すると、転送完了となる。
【００５４】
また、図４に示すように、本実施形態に係る独自仕様ＤＭＡＣ１０が２次元ＤＭＡ転送によりメモリ４０から画像データをリードする際、ＣＰＵ５０により、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０及び独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０にディスクリプタが作成される。このとき、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０には、アドレス０ｘ８０００＿１０００〜の４０Ｂｙｔｅ分のディスクリプタが作成され、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０には、アドレス０ｘ８０００＿１０４０〜の４０Ｂｙｔｅ分のディスクリプタが作成される。尚、このディスクリプタ設定は、上記のアドレスの他、任意の空きメモリアドレスに作成可能である。
【００５５】
独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０には、ＤＭＡＣ起動後、最初に動作する転送パラメータが設定される。独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０には、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０に設定された動作が終了した後に動作する転送パラメータが設定される。本実施例では、独自仕様ＤＭＡＣディスクリプタ記憶領域は、図２に示したように、２段チェインされている例について説明するが、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０に設定された動作が終了した後に動作する転送パラメータがさらに設定されることで、３段以上のチェインも可能になる。この転送パラメータには、データ転送の際に動作する動作内容が記述されている。
【００５６】
転送モード設定４２０１には、メモリアクセスの方向が設定され、メモリ４０から画像データをリードされる場合にはメモリリード方向に設定される。
【００５７】
次ディスクリプタアドレス４２１には、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスが設定される。本実施例では、この次ディスクリプタアドレス４２１には、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０の開始アドレス０ｘ８０００＿１０４０が設定される。
【００５８】
データ転送元アドレス４２２には、メモリ４０から画像データがリードされる場合には、転送対象画像を含む２次元画像データの記憶開始アドレスが設定される。本実施例では、このデータ転送元アドレス４２２には０ｘＣ０００＿００００が設定される。
【００５９】
データ転送先アドレス４２３には、メモリ４０から画像データがリードされる場合には、ＦＩＦＯ２０のデータ受信用スレーブインターフェース２２のアドレスが設定される。本実施例では、このデータ転送先アドレス４２３には０ｘ００２０＿００００が設定される。
【００６０】
横方向画像切り出し開始オフセットアドレス４２４には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の開始位置が位置情報として指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス４２４にはＸ１が指定される。この横方向画像切り出し開始オフセットアドレス４２４にオフセットアドレスとしてＸ１が指定された場合には、横方向にＸ１−１番目の画素が転送対象領域の開始画素となる。
【００６１】
縦方向画像切り出し開始オフセットアドレス４２５には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の開始位置が位置情報として指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス４２５にはＹ１が指定される。この縦方向画像切り出し開始オフセットアドレス４２５にオフセットアドレスとしてＹ１が指定された場合には、縦方向にＹ１−１番目の画素が転送対象領域の開始画素となる。
【００６２】
横方向画像切り出し終了オフセットアドレス４２６には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の終了位置が位置情報として指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス４２６にはＸ２が指定される。この横方向画像切り出し終了オフセットアドレス４２６にオフセットアドレスとしてＸ２が指定された場合には、横方向にＸ２−１番目の画素が転送対象領域の終了画素となる。
【００６３】
縦方向画像切り出し終了オフセットアドレス４２７には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の終了位置が位置情報として指定される。本実施例では、この縦方向画像切り出し終了オフセットアドレス４２７にはＹ２が指定される。この縦方向画像切り出し終了オフセットアドレス４２７にオフセットアドレスとしてＹ２が指定された場合には、縦方向にＹ２−１番目の画素が転送対象領域の終了画素となる。
【００６４】
横方向画像サイズ４２８には、転送対象画像を含む２次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ４２８にはｎが設定される。縦方向画像サイズ４２９には、転送対象画像を含む２次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ４２９にはｍが設定される。
【００６５】
転送モード設定４３０１には、メモリアクセスの方向が設定され、メモリ４０から画像データがリードされる場合にはメモリリード方向に設定される。
【００６６】
次ディスクリプタアドレス４３１には、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスが設定される。本実施例では、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０が最後の転送となるため、次ディスクリプタアドレス４３１には０ｘ００００＿００００が設定される。独自仕様ＤＭＡＣ１０は、次ディスクリプタアドレスが０ｘ００００＿００００の場合には、次の転送を実行しない仕様となっている。
【００６７】
データ転送元アドレス４３２には、メモリ４０から画像データがリードされる場合には、転送対象画像を含む２次元画像データの記憶開始アドレスが設定される。本実施例では、このデータ転送元アドレス４３２には０ｘＣ０００＿００００が設定される。
【００６８】
データ転送先アドレス４３３には、ＦＩＦＯ２０のデータ受信用スレーブインターフェース２２のアドレスが設定される。本実施例では、このデータ転送先アドレス４３３には０ｘ００２０＿００００が設定される。
【００６９】
横方向画像切り出し開始オフセットアドレス４３４には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の開始位置が位置情報として指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス４３４にはＸ３が指定される。この横方向画像切り出し開始オフセットアドレス４３４にオフセットアドレスとしてＸ３が指定され場合には、横方向にＸ３−１番目の画素が転送対象領域の開始画素となる。
【００７０】
縦方向画像切り出し開始オフセットアドレス４３５には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の開始位置が位置情報として指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス４３５にはＹ３が指定される。この縦方向画像切り出し開始オフセットアドレス４３５にオフセットアドレスとしてＹ３が指定された場合には、縦方向にＹ３−１番目の画素が転送対象領域の開始画素となる。
【００７１】
横方向画像切り出し終了オフセットアドレス４３６には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の終了位置が位置情報として指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス４３６にはＸ４が指定される。この横方向画像切り出し終了オフセットアドレス４３６にオフセットアドレスとしてＸ４が指定された場合には、横方向にＸ４−１番目の画素が転送対象領域の終了画素となる。
【００７２】
縦方向画像切り出し終了オフセットアドレス４３７には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の終了位置が位置情報として指定される。本実施例では、この縦方向画像切り出し終了オフセットアドレス４３７にはＹ４が指定される。この縦方向画像切り出し終了オフセットアドレス４３７にオフセットアドレスとしてＹ４が指定された場合には、縦方向にＹ４−１番目の画素が転送対象領域の終了画素となる。
【００７３】
横方向画像サイズ４３８には、転送対象画像を含む２次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ４３８にはｎが設定される。縦方向画像サイズ４３９には、転送対象画像を含む２次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ４３９にはｍが設定される。
【００７４】
また、図５に示すように、本実施形態に係る独自仕様ＤＭＡＣ１０が２次元ＤＭＡ転送によりメモリ４０へ画像データをライトする際とリードする際とでは、転送モード設定４２０１及び転送モード設定４３０１、データ転送元アドレス４２２及び４２３、データ転送先アドレス４２３及び４３３が異なる。
【００７５】
転送モード設定４２０１には、メモリアクセスの方向が設定され、メモリ４０へ画像データをライトする場合にはメモリライト方向に設定される。
【００７６】
次ディスクリプタアドレス４２１には、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスを設定する。本実施例では、この次ディスクリプタアドレス４２１には、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０の開始アドレス０ｘ８０００＿１０４０が設定される。
【００７７】
データ転送元アドレス４２２には、メモリ４０へ画像データがライトされる場合には、ＦＩＦＯ２０のデータ送信用スレーブインターフェース２１のアドレスが設定される。本実施例では、このデータ転送元アドレス４２２には０ｘ００２０＿１０００が設定される。
【００７８】
データ転送先のアドレス４２３には、メモリ４０へ画像データがライトされる場合には、転送対象画像を含む２次元画像データの記憶開始アドレスが設定される。本実施例では、データ転送先のアドレス４２３には０ｘＣ０００＿００００が設定される。
【００７９】
横方向画像切り出し開始オフセットアドレス４２４には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の開始位置が指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス４２４にはＸ１が指定される。この横方向画像切り出し開始オフセットアドレス４２４にオフセットアドレスとしてＸ１が指定された場合には、横方向にＸ１−１番目の画素が転送対象領域の開始画素となる。
【００８０】
縦方向画像切り出し開始オフセットアドレス４２５には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の開始位置が指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス４２５にはＹ１が指定される。この縦方向画像切り出し開始オフセットアドレス４２５にオフセットアドレスとしてＹ１が指定された場合には、縦方向にＹ１−１番目の画素が転送対象領域の開始画素となる。
【００８１】
横方向画像切り出し終了オフセットアドレス４２６には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の終了位置が指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス４２６にはＸ２が指定される。この横方向画像切り出し終了オフセットアドレス４２６にオフセットアドレスとしてＸ２が指定された場合には、横方向にＸ２−１番目の画素が転送対象領域の終了画素となる。
【００８２】
縦方向画像切り出し終了オフセットアドレス４２７には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の終了位置を指定する。本実施例では、この縦方向画像切り出し終了オフセットアドレス４２７にはＹ２が指定される。この縦方向画像切り出し終了オフセットアドレス４２７にオフセットアドレスとしてＹ２が指定された場合には、縦方向にＹ２−１番目の画素が転送対象領域の終了画素となる。
【００８３】
横方向画像サイズ４２８には、転送対象画像を含む２次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ４２８にはｎが設定される。縦方向画像サイズ４２９には、転送対象画像を含む２次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ４２９にはｍが設定される。
【００８４】
転送モード設定４３０１には、メモリアクセスの方向が設定され、メモリ４０へ画像データがライトされる場合にはメモリライト方向に設定される。
【００８５】
次ディスクリプタアドレス４３１には、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスが設定される。本実施例では、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０が最後の転送となるため、この次ディスクリプタアドレス４３１には０ｘ００００＿００００が設定される。独自仕様ＤＭＡＣ１０は、次ディスクリプタアドレスが０ｘ００００＿００００の場合には、次の転送を実行しない仕様となっている。
【００８６】
データ転送元アドレス４３２には、メモリ４０に画像データがライトされる場合には、ＦＩＦＯ２０のデータ送信用スレーブインターフェース２１のアドレスが設定される。本実施例では、このデータ転送元アドレス４３２には０ｘ００２０＿１０００が設定される。
【００８７】
データ転送先のアドレス４３３には、メモリ４０に画像データがライトされる場合には、転送対象画像を含む２次元画像データの記憶開始アドレスが設定される。本実施例では、このデータ転送先のアドレス４３３には０ｘＣ０００＿００００が設定される。
【００８８】
横方向画像切り出し開始オフセットアドレス４３４には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の開始位置が指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス４３４にはＸ３が指定される。この横方向画像切り出し開始オフセットアドレス４３４にオフセットアドレスとしてＸ３が指定され場合には、横方向にＸ３−１番目の画素が転送対象領域の開始画素となる。
【００８９】
縦方向画像切り出し開始オフセットアドレス４３５には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の開始位置が指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス４３５にはＹ３が指定される。この縦方向画像切り出し開始オフセットアドレス４３５にオフセットアドレスとしてＹ３が指定された場合には、縦方向にＹ３−１番目の画素が転送対象領域の開始画素となる。
【００９０】
横方向画像切り出し終了オフセットアドレス４３６には、２次元ＤＭＡ転送時の転送対象となる矩形領域の横方向の終了位置が指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス４３６にはＸ４が指定される。この横方向画像切り出し終了オフセットアドレス４３６にオフセットアドレスとしてＸ４が指定された場合には、横方向にＸ４−１番目の画素が転送対象領域の終了画素となる。
【００９１】
縦方向画像切り出し終了オフセットアドレス４３７には、２次元ＤＭＡ転送時の転送対象となる矩形領域の縦方向の終了位置が指定される。本実施例では、この縦方向画像切り出し終了オフセットアドレス４３７にはＹ４が指定される。この縦方向画像切り出し終了オフセットアドレス４３７にオフセットアドレスとしてＹ４が指定された場合には、縦方向にＹ４−１番目の画素が転送対象領域の終了画素となる。
【００９２】
横方向画像サイズ４３８には、転送対象画像を含む２次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ４３８にはｎが設定される。縦方向画像サイズ４３９には、転送対象画像を含む２次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ４３９にはｍが設定される。
【００９３】
次に、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介して行うデータ転送に先だってその準備を行う際の処理について、図６を参照して説明する。図６は、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介して行うデータ転送に先だってその準備を行う際の処理を説明するためのシーケンス図である。
【００９４】
図６に示すように、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介して行うデータ転送に先だってその準備を行う際にはまず、ＣＰＵ５０は、独自仕様ＤＭＡＣ１０に対して、動作パラメータを記述するためのディスクリプタ（１）用の記憶アドレス（本実施例では、０ｘ８０００＿１０００）を通知し、割り込みマスク等の設定を実行する（Ｓ６０１）。
【００９５】
そして、ＣＰＵ５０は、独自仕様ＤＭＡＣ１０に通知したディスクリプタ（１）用の記憶アドレスにディスクリプタ（１）を作成する（Ｓ６０２）。このとき、ＣＰＵ５０が作成するディスクリプタ（１）の内容は、メモリ４０から画像データがリードされる場合には、図４を参照して説明した内容となる。また、このとき、ＣＰＵ５０が作成するディスクリプタ（１）の内容は、メモリ４０へ画像データがライトされる場合には、図５を参照して説明した内容となる。
【００９６】
ＣＰＵ５０は、ディスクリプタ（１）の作成後、アドレス０ｘ８０００＿１０４０にディスクリプタ（２）を作成する（Ｓ６０３）。このとき、ＣＰＵ５０が作成するディスクリプタ（２）の内容は、メモリ４０から画像データがリードされる場合には、図４を参照して説明した内容となる。また、このとき、ＣＰＵ５０が作成するディスクリプタ（２）の内容は、メモリ４０へ画像データがライトされる場合には、図５を参照して説明した内容となる。
【００９７】
そして、ＣＰＵ５０は、例えば、ＡＨＣＩ（Ａｄｖａｎｃｅｄ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）規格で定められた設定等、規格準拠ＤＭＡＣ３１の設定を実行するし、規格準拠ＤＭＡＣ３１が参照するそれらのディスクリプタの内容を作成する（Ｓ６０４）。
【００９８】
次に、ＣＰＵ５０は、例えば、ＡＨＣＩ規格で定められた設定等、ＳＡＴＡ制御部３０の設定を実行する（Ｓ６０５）。そして、ＣＰＵ５０は、独自仕様ＤＭＡＣ１０を起動する（Ｓ６０６）。起動した独自仕様ＤＭＡＣ１０は、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０（本実施例では、０ｘ８０００＿１０００）にアクセスし、転送パラメータを取得して、取得した転送パラメータからリードアドレス若しくはライトアドレスを算出する（Ｓ６０７）。
【００９９】
そしてＣＰＵ５０は、規格準拠ＤＭＡＣ３１を起動する（Ｓ６０８）。起動した規格準拠ＤＭＡＣ３１は、規格準拠ＤＭＡＣディスクリプタ記憶領域４４０（本実施例では、０ｘ８００１＿００００）にアクセスし、転送パラメータを取得する（Ｓ６０９）。規格準拠ＤＭＡＣ３１は、取得した転送パラメータに従い、ＳＡＴＡ制御部３０に対してＳＡＴＡコマンド発行を指令し（Ｓ６１０）、ＨＤＤ６０に対してＳＡＴＡコマンドを発行させる（Ｓ６１１）。
【０１００】
このようにして、本実施形態に係る情報処理装置１は、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介して行うデータ転送の準備を完了する。
【０１０１】
次に、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してメモリ４０から画像データをリードしてＨＤＤ６０にライトする際の処理について、図７〜図９を参照して説明する。図７〜図９は、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してメモリ４０から画像データをリードしてＨＤＤ６０にライトする際の処理を説明するためのシーケンス図である。尚、図７〜図９は、図６におけるデータ転送の準備が終了した直後からの処理について示している。
【０１０２】
本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してメモリ４０から画像データをリードしてＨＤＤ６０にライトする際にはまず、ＳＡＴＡコマンドを発行したＳＡＴＡ制御部３０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、規格準拠ＤＭＡＣ３１に対してデータのライトを要求する（Ｓ７０１）。
【０１０３】
ＳＡＴＡ制御部３０からライト要求を受けた規格準拠ＤＭＡＣ３１は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、ＦＩＦＯ２０に対してリードを要求する（Ｓ７０２）。規格準拠ＤＭＡＣ３１からリード要求を受けたＦＩＦＯ２０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、独自仕様ＤＭＡＣ１０に対してデータのライトを要求する（Ｓ７０３）。
【０１０４】
ＦＩＦＯ２０からライト要求を受けた独自仕様ＤＭＡＣ１０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、メモリ４０に対してリードを要求する（Ｓ７０４）。独自仕様ＤＭＡＣ１０からリード要求を受けたメモリ４０は、独自仕様ＤＭＡＣ１０にデータを転送する（Ｓ７０５）。
【０１０５】
メモリ４０からデータを受信した独自仕様ＤＭＡＣ１０は、そのデータをＦＩＦＯ２０に転送する（Ｓ７０６）。独自仕様ＤＭＡＣ１０からデータを受信したＦＩＦＯ２０は、そのデータを規格準拠ＤＭＡＣ３１に転送する（Ｓ７０７）。ＦＩＦＯ２０からデータを受信した規格準拠ＤＭＡＣ３１は、そのデータをＳＡＴＡ制御部３０に転送する（Ｓ７０８）。規格準拠ＤＭＡＣ３１からデータを受信したＳＡＴＡ制御部３０は、ＨＤＤ６０がデータ受信可能な状態である場合、そのデータをＨＤＤ６０にライトする（Ｓ７０９）。
【０１０６】
このとき、本実施例では、データバス幅が１２８ｂｉｔであるため、ディスクリプタ（１）に関する１回目の転送では、メモリ４０上のアドレス０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１〜０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１＋１５に記憶されている１２８ｂｉｔ分の画像データがリードされる。同様に、２回目の転送では、メモリ４０上のアドレス０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１＋１６〜０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１＋３１に記憶されている１２８ｂｉｔ分の画像データがリードされる。尚、２回目以降のリードアドレスは、独自仕様ＤＭＡＣ１０がＳ６０７において取得した転送パラメータから算出されたリードアドレスと前回のリードアドレスとから算出される。
【０１０７】
そして、Ｓ７０１〜Ｓ７０９と同様の処理が繰り返し行われ、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０（本実施例では、０ｘ８０００＿１０００）に設定されている全てのデータ転送が終了すると、次に、独自仕様ＤＭＡＣ１０は、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０（本実施例では、０ｘ８０００＿１０４０）にアクセスし、転送パラメータを取得して、取得した転送パラメータからリードアドレスを算出する（Ｓ７１０）。このように、本実施形態に係る情報処理装置１は、規格準拠ＤＭＡＣ３１にはない、独自仕様ＤＭＡＣ１０のみが備えるディスクリプタチェイン機能を使用することが可能となっている。
【０１０８】
そして、本実施形態に係る情報処理装置１は、Ｓ７０１〜Ｓ７０９と同様の処理を繰り返し行う。このとき、本実施例では、データバス幅が１２８ｂｉｔであるため、ディスクリプタ（２）に関する１回目の転送では、アドレス０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３〜０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３＋１５に記憶されている１２８ｂｉｔ分の画像データが転送される。
【０１０９】
同様に、２回目の転送では、アドレス０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３＋１６〜０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３＋３１に記憶されている１２８ｂｉｔ分の画像データが転送される。尚、２回目以降のリードアドレスは、独自仕様ＤＭＡＣ１０がＳ７１０において取得した転送パラメータから算出されたリードアドレスと前回のリードアドレスとから算出される。このように、本実施形態に係る情報処理装置１は、規格準拠ＤＭＡＣ３１にはない、独自仕様ＤＭＡＣ１０のみが備える２次元ＤＭＡ転送機能を使用することが可能となっている。
【０１１０】
尚、図７に示す例では、規格準拠ＤＭＡＣ３１がリード要求を発行した後に、独自仕様ＤＭＡＣ１０がリード要求を発行しているが、独自仕様ＤＭＡＣ１０の方が先にリード要求を発行することも可能である。また、独自仕様ＤＭＡＣ１０及び規格準拠ＤＭＡＣ３１は、発行したリード要求に対するデータを受信する前に、次のリード要求を発行することが可能である。
【０１１１】
図８に示すように、独自仕様ＤＭＡＣ１０は、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０（本実施例では、０ｘ８０００＿１０４０）に設定されている全てのデータをＦＩＦＯ２０に転送すると（Ｓ８０１）、ＣＰＵ５０に対して転送が完了したことを通知すると共に（Ｓ８０２）、ＦＩＦＯ２０に対して疑似応答を要求する（Ｓ８０３）。
【０１１２】
独自仕様ＤＭＡＣ１０から疑似応答要求を受けたＦＩＦＯ２０は、以降、ＳＡＴＡ制御部３０から規格準拠ＤＭＡＣ３１に対するライト要求に対し（Ｓ８０４）、規格準拠ＤＭＡＣ３１からリード要求を受けると（Ｓ８０５）、規格準拠ＤＭＡＣ３１に疑似データを転送する（Ｓ８０６）。
【０１１３】
ＦＩＦＯ２０から疑似データを受信した規格準拠ＤＭＡＣ３１は、その疑似データをＳＡＴＡ制御部３０に転送する（Ｓ８０７）。規格準拠ＤＭＡＣ３１から疑似データを受信したＳＡＴＡ制御部３０は、その疑似データをＨＤＤ６０にライトする（Ｓ８０８）。
【０１１４】
ここで、独自仕様ＤＭＡＣが全てのデータをＦＩＦＯ２０に転送するとＦＩＦＯ２０に対して疑似応答を要求し、以降、ＦＩＦＯ２０が疑似データを転送する理由について説明する。
【０１１５】
独自仕様ＤＭＡＣ１０が２次元ＤＭＡ転送機能で転送することができるデータ転送サイズは、図３を参照して説明したように、特定の矩形領域であって１Ｂｙｔｅ刻みで設定可能であるが、規格準拠ＤＭＡＣ３１が転送することができるデータ転送サイズは、セクタサイズ刻み（本実施例では、５１２Ｂｙｔｅ刻み）である。即ち、独自仕様ＤＭＡＣ１０のデータ転送サイズの最小単位は、１Ｂｙｔｅであり、規格準拠ＤＭＡＣ３１のデータ転送サイズの最小単位は、５１２Ｂｙｔｅである。
【０１１６】
そのため、ＦＩＦＯ２０には、規格準拠ＤＭＡＣ３１のデータ転送サイズに満たないデータが最後に残ることになり、そのデータも規格準拠ＤＭＡＣ３１により転送されてしまうと、ＦＩＦＯ２０は空となってしまう。
【０１１７】
例えば、メモリ４０からＨＤＤ６０へ６００Ｂｙｔｅ分のデータが転送される場合、５１２Ｂｙｔｅ分のデータが転送されると、ＦＩＦＯ２０には、残りの８８Ｂｙｔｅ（６００Ｂｙｔｅ−５１２Ｂｙｔｅ）分のデータが最後に残ることになり、その８８Ｂｙｔｅ分のデータも規格準拠ＤＭＡＣ３１により転送されてしまうと、ＦＩＦＯ２０は空となってしまう。しかし、このとき、規格準拠ＤＭＡＣ３１は、４２４Ｂｙｔｅ（５１２Ｂｙｔｅ−８８Ｂｙｔｅ）分のデータを転送しなければならない状態となっている。
【０１１８】
ところが、ＦＩＦＯ２０が空になってしまうと、ＦＩＦＯ２０は、規格準拠ＤＭＡＣ３１からリード要求があっても規格準拠ＤＭＡＣ３１にデータを転送することができなくなってしまう。その結果、規格準拠ＤＭＡＣ３１は、ＦＩＦＯ２０からのデータの転送を待ち続けてしまい、いつまでたっても処理が終了しなくなってしまう。
【０１１９】
そこで、本実施形態に係る情報処理装置１においては、ＦＩＦＯ２０は、独自仕様ＤＭＡＣ１０から疑似応答要求を受けると、内部バッファが空になっても、規格準拠ＤＭＡＣ３１のデータ転送サイズに達するまで、規格準拠ＤＭＡＣ３１に疑似データを転送し続けるように構成されている。そのため、規格準拠ＤＭＡＣ３１は、滞りなくデータ転送を続けることが可能となる。
【０１２０】
本実施形態に係る情報処理装置１は、このように構成されることで、規格準拠ＤＭＡＣ３１にはない、２次元ＤＭＡ転送機能やディスクリプタチェイン等、独自仕様ＤＭＡＣ１０が備える機能を容易に使用することが可能となる。
【０１２１】
そして、本実施形態に係る情報処理装置１は、Ｓ８０４〜Ｓ８０８と同様の処理を繰り返し行う。その結果、図９に示すように、ＳＡＴＡ制御部３０は、規格準拠ＤＭＡＣ３１に対して最後のライトを要求する（Ｓ９０１）。ＳＡＴＡ制御部３０から最後のライト要求を受けた規格準拠ＤＭＡＣ３１は、ＦＩＦＯ２０に対して最後のリードを要求する（Ｓ９０２）。
【０１２２】
規格準拠ＤＭＡＣ３１から最後のリード要求を受けたＦＩＦＯ２０は、規格準拠ＤＭＡＣ３１に最後の疑似データを転送する（Ｓ９０３）。ＦＩＦＯ２０から最後の疑似データを受信した規格準拠ＤＭＡＣ３１は、その最後の疑似データをＳＡＴＡ制御部３０に転送する（Ｓ９０４）。規格準拠ＤＭＡＣ３１から最後の疑似データを受信したＳＡＴＡ制御部３０は、その最後の疑似データをＨＤＤ６０にライトする（Ｓ９０５）。
【０１２３】
このとき、ＳＡＴＡ制御部３０に最後の疑似データを転送した規格準拠ＤＭＡＣ３１は、ＣＰＵ５０に対して転送が完了したことを通知する（Ｓ９０６）。規格準拠ＤＭＡＣ３１から転送完了通知を受けたＣＰＵ５０は、独自仕様ＤＭＡＣ１０に対して疑似応答解除を指令する（Ｓ９０７）。疑似応答解除要求を受けた独自仕様ＤＭＡＣ１０は、ＦＩＦＯ２０に対して疑似応答解除を要求する（Ｓ９０８）。
【０１２４】
本実施形態に係る情報処理装置１においては、このようにして、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してメモリ４０から画像データをリードしてＨＤＤ６０にライトする。
【０１２５】
次に、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してＨＤＤ６０から画像データをリードしてメモリ４０にライトする際の処理について、図１０〜図１２を参照して説明する。図１０〜図１２は、本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してＨＤＤ６０から画像データをリードしてメモリ４０にライトする際の処理を説明するためのシーケンス図である。尚、図１０〜図１２は、図６におけるデータ転送の準備が終了した直後からの処理について示している。
【０１２６】
本実施形態に係る情報処理装置１において、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してＨＤＤ６０から画像データをリードしてメモリ４０にライトする際にはまず、メモリ４０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、独自仕様ＤＭＡＣ１０に対してデータのライトを要求する（Ｓ１００１）。
【０１２７】
メモリ４０からライト要求を受けた独自仕様ＤＭＡＣ１０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、ＦＩＦＯ２０に対してリードを要求する（Ｓ１００２）。独自仕様ＤＭＡＣ１０からリード要求を受けたＦＩＦＯ２０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、規格準拠ＤＭＡＣ３１に対してデータのライトを要求する（Ｓ１００３）。
【０１２８】
ＦＩＦＯ２０からライト要求を受けた規格準拠ＤＭＡＣ３１は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、ＳＡＴＡ制御部３０に対してリードを要求する（Ｓ１００４）。規格準拠ＤＭＡＣ３１からリード要求を受けたＳＡＴＡ制御部３０は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、ＨＤＤ６０からデータをリードし（Ｓ１００５）、規格準拠ＤＭＡＣ３１にそのデータを転送する（Ｓ１００６）。
【０１２９】
ＳＡＴＡ制御部３０からデータを受信した規格準拠ＤＭＡＣ３１は、そのデータをＦＩＦＯ２０に転送する（Ｓ１００７）。規格準拠ＤＭＡＣ３１からデータを受信したＦＩＦＯ２０は、そのデータを独自仕様ＤＭＡＣ１０に転送する（Ｓ１００８）。ＦＩＦＯ２０からデータを受信した独自仕様ＤＭＡＣ１０は、そのデータをメモリ４０にライトする（Ｓ１００９）。
【０１３０】
このとき、本実施例では、データバス幅が１２８ｂｉｔであるため、ディスクリプタ（１）に関する１回目の転送では、メモリ４０上のアドレス０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１〜０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１＋１５に１２８ｂｉｔ分の画像データがライトされる。同様に、２回目の転送では、メモリ４０上のアドレス０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１＋１６〜０ｘＣ０００＿００００＋Ｙ１＊ｎ＋Ｘ１＋３１に１２８ｂｉｔ分の画像データがライトされる。尚、２回目以降のライトアドレスは、独自仕様ＤＭＡＣ１０がＳ６０７において取得した転送パラメータから算出されたライトアドレスと前回のライトアドレスとから算出される。
【０１３１】
そして、Ｓ１００１〜Ｓ１００９と同様の処理が繰り返し行われ、独自仕様ＤＭＡＣディスクリプタ（１）記憶領域４２０（本実施例では、０ｘ８０００＿１０００）に設定されている全てのデータ転送が終了すると、次に、独自仕様ＤＭＡＣ１０は、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０（本実施例では、０ｘ８０００＿１０４０）にアクセスし、転送パラメータを取得して、取得した転送パラメータからライトアドレスを算出する（Ｓ１０１０）。このように、本実施形態に係る情報処理装置１は、規格準拠ＤＭＡＣ３１にはない、独自仕様ＤＭＡＣ１０のみが備えるディスクリプタチェイン機能を使用することが可能となっている。
【０１３２】
そして、本実施形態に係る情報処理装置１は、Ｓ１００１〜Ｓ１００９と同様の処理を繰り返し行う。このとき、本実施例では、データバス幅が１２８ｂｉｔであるため、ディスクリプタ（２）に関する１回目の転送では、アドレス０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３〜０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３＋１５に記憶されている１２８ｂｉｔ分の画像データが転送される。
【０１３３】
同様に、２回目の転送では、アドレス０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３＋１６〜０ｘＣ０００＿００００＋Ｙ３＊ｎ＋Ｘ３＋３１に記憶されている１２８ｂｉｔ分の画像データが転送される。尚、２回目以降のリードアドレスは、独自仕様ＤＭＡＣ１０がＳ７１０において取得した転送パラメータから算出されたリードアドレスと前回のリードアドレスとから算出される。このように、本実施形態に係る情報処理装置１は、規格準拠ＤＭＡＣ３１にはない、独自仕様ＤＭＡＣ１０のみが備える２次元ＤＭＡ転送機能を使用することが可能となっている。
【０１３４】
尚、図１０に示す例では、独自仕様ＤＭＡＣ１０がリード要求を発行した後に、規格準拠ＤＭＡＣ３１がリード要求を発行しているが、規格準拠ＤＭＡＣ３１の方が先にリード要求を発行することも可能である。また、独自仕様ＤＭＡＣ１０及び規格準拠ＤＭＡＣ３１は、発行したリード要求に対するデータを受信する前に、次のリード要求を発行することが可能である。
【０１３５】
図１１に示すように、独自仕様ＤＭＡＣ１０は、独自仕様ＤＭＡＣディスクリプタ（２）記憶領域４３０（本実施例では、０ｘ８０００＿１０４０）に設定されている全てのデータをメモリ４０にライトすると（Ｓ１１０１）、ＣＰＵ５０に対して転送が完了したことを通知すると共に（Ｓ１１０２）、ＦＩＦＯ２０に対して疑似応答を要求する（Ｓ１１０３）。
【０１３６】
独自仕様ＤＭＡＣ１０から疑似応答要求を受けたＦＩＦＯ２０は、以降、規格準拠ＤＭＡＣ３１に対するライト要求に対してデータが転送されてくると（Ｓ１１０４〜Ｓ１１０８）、そのデータを破棄する（Ｓ１１０９）。
【０１３７】
ここで、独自仕様ＤＭＡＣが全てのデータをメモリ４０にライトするとＦＩＦＯ２０に対して疑似応答を要求し、以降、ＦＩＦＯ２０が受信したデータを破棄する理由について説明する。
【０１３８】
上述したように、独自仕様ＤＭＡＣ１０のデータ転送サイズの最小単位と規格準拠ＤＭＡＣ３１のデータ転送サイズの最小単位とは異なり、独自仕様ＤＭＡＣ１０のデータ転送サイズの最小単位の方が小さい。
【０１３９】
そのため、独自仕様ＤＭＡＣ１０は、転送するべきデータを全てメモリ４０へライトすると、それ以上のデータをＦＩＦＯ２０からリードする必要がなくなるが、それ以上のデータが規格準拠ＤＭＡＣ３１によりＦＩＦＯ２０へライトされてしまうと、ＦＩＦＯ２０は満杯となってしまう。
【０１４０】
例えば、ＨＤＤ６０からメモリ４０へ６００Ｂｙｔｅ分のデータが転送される場合、その６００Ｂｙｔｅ分のデータ全てがメモリ４０にライトされると、それ以上のデータはＦＩＦＯ２０からリードされなくなるが、規格準拠ＤＭＡＣ３１により４１２Ｂｙｔｅ（５１２Ｂｙｔｅ−（６００Ｂｙｔｅ−５１２Ｂｙｔｅ））分のデータがさらにＦＩＦＯ２０へライトされ続け、ついには、ＦＩＦＯ２０は満杯となってしまう。
【０１４１】
ところが、ＦＩＦＯ２０が満杯になってしまうと、ＦＩＦＯ２０は、規格準拠ＤＭＡＣ３１にライトを要求することができなくなってしまう。その結果、規格準拠ＤＭＡＣ３１は、ＦＩＦＯ２０からのライト要求を待ち続けてしまい、いつまでたっても処理が終了しなくなってしまう。
【０１４２】
そこで、本実施形態に係る情報処理装置１においては、ＦＩＦＯ２０は、独自仕様ＤＭＡＣ１０から疑似応答要求を受けると、内部バッファが満杯になっても、規格準拠ＤＭＡＣ３１のデータ転送サイズに達するまで、規格準拠ＤＭＡＣ３１にライトを要求し続け、それ以降受信したデータについては破棄するように構成されている。そのため、規格準拠ＤＭＡＣ３１は、滞りなくデータ転送を続けることが可能となる。
【０１４３】
本実施形態に係る情報処理装置１は、このように構成されることで、規格準拠ＤＭＡＣ３１にはない、２次元ＤＭＡ転送機能やディスクリプタチェイン等、独自仕様ＤＭＡＣ１０が備える機能を容易に使用することが可能となる。
【０１４４】
そして、本実施形態に係る情報処理装置１は、Ｓ１１０４〜Ｓ８０９と同様の処理を繰り返し行う。その結果、図１２に示すように、ＦＩＦＯ２０は、規格準拠ＤＭＡＣ３１に対して最後のライトを要求する（Ｓ１２０１）。ＦＩＦＯ２０から最後のライト要求を受けた規格準拠ＤＭＡＣ３１は、ＳＡＴＡ制御部３０に対して最後のリードを要求する（Ｓ１２０２）。
【０１４５】
規格準拠ＤＭＡＣ３１から最後のリード要求を受けたＳＡＴＡ制御部３０は、ＨＤＤ６０から最後のデータをリードし（Ｓ１２０３）、規格準拠ＤＭＡＣ３１にその最後のデータを転送する（Ｓ１２０４）。ＳＡＴＡ制御部３０から最後のデータを受信した規格準拠ＤＭＡＣ３１は、その最後のデータをＦＩＦＯ２０に転送する（Ｓ１２０５）。規格準拠ＤＭＡＣ３１から最後のデータを受信したＦＩＦＯ２０は、その最後のデータを破棄する（Ｓ１２０６）。
【０１４６】
このとき、ＦＩＦＯ２０に最後のデータを転送した規格準拠ＤＭＡＣ３１は、ＣＰＵ５０に対して転送が完了したことを通知する（Ｓ１２０７）。規格準拠ＤＭＡＣ３１から転送完了通知を受けたＣＰＵ５０は、独自仕様ＤＭＡＣ１０に対して疑似応答解除を指令する（Ｓ１２０８）。疑似応答解除要求を受けた独自仕様ＤＭＡＣ１０は、ＦＩＦＯ２０に対して疑似応答解除を要求する（Ｓ１２０９）。
【０１４７】
本実施形態に係る情報処理装置１においては、このようにして、独自仕様ＤＭＡＣ１０と規格準拠ＤＭＡＣ３１とがＦＩＦＯ２０を介してＨＤＤ６０から画像データをリードしてメモリ４０にライトする。
【０１４８】
尚、本実施形態においては、メモリ４０とＨＤＤ６０との間でのデータ転送について説明したが、情報処理装置１に接続された異なる入出力装置間でのデータ転送についても同様に適用可能である。
【符号の説明】
【０１４９】
１  情報処理装置
１０  独自仕様ＤＭＡＣ
１１  データ送受信用スレーブインターフェース
１２  マスターインターフェース
１３  マスターインターフェース
３２  スレーブインターフェース
３３  マスターインターフェース
２０  ＦＩＦＯ
２１  データ送信用スレーブインターフェース
２２  データ受信用スレーブインターフェース
３０  ＳＡＴＡ制御部
３１  規格準拠ＤＭＡＣ
４０  メモリ
４１  スレーブインターフェース
５０  ＣＰＵ
５１  マスターインターフェース
６０  ＨＤＤ
７１  高速バス
７２  低速バス
８０  アドレス制御部
【先行技術文献】
【特許文献】
【０１５０】
【特許文献１】特開２００３−３３７８０５号公報
【図１】
0006476655.tif 000002
【図２】
0006476655.tif 000003
【図３】
0006476655.tif 000004
【図４】
0006476655.tif 000005
【図５】
0006476655.tif 000006
【図６】
0006476655.tif 000007
【図７】
0006476655.tif 000008
【図８】
0006476655.tif 000009
【図９】
0006476655.tif 000010
【図１０】
0006476655.tif 000011
【図１１】
0006476655.tif 000012
【図１２】
0006476655.tif 000013