(57)【要約】【課題】Ｉ／Ｏバッファに対するＤＭＡ転送を高速化することができる情報処理装置及び画像データ記録システムを提供すること。【解決手段】本発明の情報処理装置１は、内部バス４０と、転送元リソースから転送先リソースにデータ転送を行うＤＭＡコントローラー２０と、ＦＩＦＯ３２０（Ｉ／Ｏバッファ）を含み、ＦＩＦＯ３２０と外部デバイス１００の間のデータ転送を行うＩ／Ｏコントローラー３０と、を含む。ＤＭＡコントローラーは、転送元リソースがＩ／Ｏコントローラーである場合は、Ｉ／Ｏコントローラーからの１回のデータ転送要求に対して、ＦＩＦＯ３２０から複数のデータを連続して読み出すか１つのデータを読み出すかを選択し、転送先リソースがＩ／Ｏコントローラーである場合は、Ｉ／Ｏコントローラーからの１回のデータ転送要求に対して、ＦＩＦＯ３２０に複数のデータを連続して書き込むか１つのデータを書き込むかを選択する。【選択図】図１
2010152604.tif 000002
【特許請求の範囲】
【請求項１】
内部バスと、
前記内部バスを介して転送元リソースからデータを読み出し、読み出したデータを、前記内部バスを介して転送先リソースに書き込むことにより、前記転送元リソースから前記転送先リソースにデータ転送を行うＤＭＡ転送制御部と、
Ｉ／Ｏバッファを含み、前記Ｉ／Ｏバッファと外部デバイスの間のデータ転送を行うＩ／Ｏ制御部と、
前記転送元リソースと前記転送先リソースを特定する情報及び前記転送元リソースから前記転送先リソースへのデータ転送の対象となるデータのサイズを特定する情報を設定する転送情報設定部と、を含み、
前記ＤＭＡ転送制御部は、
前記転送元リソースが前記Ｉ／Ｏ制御部である場合は、前記Ｉ／Ｏ制御部からの１回のデータ転送要求に対して、前記Ｉ／Ｏバッファから複数のデータを連続して読み出すか１つのデータを読み出すかを選択し、前記転送先リソースが前記Ｉ／Ｏ制御部である場合は、前記Ｉ／Ｏ制御部からの１回のデータ転送要求に対して、前記Ｉ／Ｏバッファに複数のデータを連続して書き込むか１つのデータを書き込むかを選択することを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記転送情報設定部は、
前記ＤＭＡ転送制御部が前記Ｉ／Ｏバッファに対して読み出し又は書き込みを連続して行うデータ数を特定する情報を設定することを特徴とする情報処理装置。
【請求項３】
請求項１又は２において、
前記ＤＭＡ転送制御部は、
前記Ｉ／Ｏバッファに対して前記複数のデータの読み出し又は書き込みを連続して行う場合は、読み出し又は書き込みを開始してから終了するまで前記内部バスのバス権を占有するか否かを選択することを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記転送情報設定部は、
前記転送元リソースから前記転送先リソースへのデータ転送の転送モードを設定し、
前記ＤＭＡ転送制御部は、
前記転送モードに基づいて、１回の前記データ転送要求に対して、前記Ｉ／Ｏバッファに対して前記複数のデータの読み出し又は書き込みを連続して行うか１つのデータの読み出し又は書き込みを行うかを選択することを特徴とする情報処理装置。
【請求項５】
請求項１乃至３のいずれかにおいて、
前記Ｉ／Ｏ制御部は、
前記転送先リソースになる場合は前記Ｉ／Ｏバッファの空き領域のサイズと前記Ｉ／Ｏバッファに連続して書き込まれる前記複数のデータのサイズを比較し、前記転送元リソースになる場合は前記Ｉ／Ｏバッファに格納されているデータのサイズと前記Ｉ／Ｏバッファから連続して読み出される前記複数のデータのサイズを比較し、比較結果に基づいて前記ＤＭＡ転送制御部に対して連続転送要求信号又は単位転送要求信号を送出し、
前記ＤＭＡ転送制御部は、
前記連続転送要求信号を受け取った時は前記Ｉ／Ｏバッファに対して前記複数のデータの読み出し又は書き込みを連続して行い、前記単位転送要求信号を受け取った時は前記Ｉ／Ｏバッファに対して１つのデータの読み出し又は書き込みを行うことを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記Ｉ／Ｏ制御部は、
前記ＤＭＡ転送制御部が前記Ｉ／Ｏバッファから連続して読み出し又は書き込みを行うデータのサイズが、前記データ転送の対象となるデータのサイズよりも小さい場合には、前記ＤＭＡ転送制御部に対して複数回に分けてデータ転送要求を行うことを特徴とする情報処理装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
第１の前記Ｉ／Ｏバッファを含む第１の前記Ｉ／Ｏ制御部と、
第２の前記Ｉ／Ｏバッファを含む第２の前記Ｉ／Ｏ制御部と、を含み、
前記ＤＭＡ転送制御部は、
前記転送元リソースが前記第１のＩ／Ｏ制御部であり、かつ、前記転送先リソースが前記第２のＩ／Ｏ制御部である場合は、前記第１のＩ／Ｏ制御部からの１回のデータ転送要求に対して、前記第１のＩ／Ｏバッファから複数のデータを連続して読み出すか１つのデータを読み出すかを選択し、前記第２のＩ／Ｏ制御部からの１回のデータ転送要求に対して、前記第２のＩ／Ｏバッファに複数のデータを連続して書き込むか１つのデータを書き込むかを選択することを特徴とする情報処理装置。
【請求項８】
請求項１乃至７に記載の情報処理装置と、
少なくとも１つのカメラモジュールと、
前記カメラモジュールが所定間隔で撮像した複数の画像データを一時的に記憶する第１の記憶装置と、
前記情報処理装置の前記Ｉ／Ｏ制御部の前記Ｉ／Ｏバッファとデータ転送を行う不揮発性の第２の記憶装置と、を含み、
前記情報処理装置は、
所定のイベントの発生に基づいて、前記ＤＭＡ転送制御部が前記第１の記憶装置に記憶されている前記画像データを前記Ｉ／Ｏバッファに転送し、前記Ｉ／Ｏ制御部が前記Ｉ／Ｏバッファに転送された前記画像データを前記第２の記憶装置に転送することを特徴とする画像データ記録システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び画像データ記録システム等に関する。
【背景技術】
【０００２】
自動車の走行中の画像データを一定時間間隔でＳＤＲＡＭ等の１次記憶装置に記録し、事故等のイベントが発生した時に、そのイベントの前後の一定時間の画像データをＳＤＲＡＭ等の１次記憶装置からＣＦメモリーカードやＳＤメモリーカード等の２次記憶装置に転送して記録するドライブレコーダーが利用されている。ドライブレコーダーを使用すれば、２次記憶装置に記録された画像データを解析することにより事故等のイベントが発生した時の状況を把握することができる。
【０００３】
ドライブレコーダーでは事故等のイベントが発生した時の画像データを２次記憶装置に確実に記録することが要求されるため、ドライブレコーダーに使用される情報処理装置は１次記憶装置から２次記憶装置への画像データの転送をＣＰＵを介さないＤＭＡ転送により高速化する。
【特許文献１】特開２００８−２４５０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
２次記憶装置としてＣＦメモリーカードやＳＤメモリーカードが使用される場合、これらのメモリーカードにはバースト書き込みができないため、Ｉ／Ｏバッファが使用される。すなわち、情報処理装置において、ＤＭＡコントローラーにより１次記憶装置からＩ／Ｏバッファに画像データがＤＭＡ転送され、Ｉ／Ｏバッファに格納された画像データがＩ／Ｏコントローラーにより２次記憶装置に転送される。ここで、１次記憶装置からＩ／Ｏバッファへの転送タイミングと２次記憶装置への転送タイミングが異なるため、従来、ＤＭＡコントローラーとＩ／Ｏコントローラーの間で１データ毎にハンドシェイクによりＤＭＡ転送を行っていた。従って、１データ毎にハンドシェイクによるオーバーヘッドが生じるため、ＤＭＡ転送による高速化が十分に達成できない場合もあった。
【０００５】
本発明は、以上のような問題点に鑑みてなされたものであり、本発明のいくつかの態様によれば、Ｉ／Ｏバッファに対するＤＭＡ転送を高速化することができる情報処理装置及び画像データ記録システムを提供することができる。
【課題を解決するための手段】
【０００６】
（１）本発明は、内部バスと、前記内部バスを介して転送元リソースからデータを読み出し、読み出したデータを、前記内部バスを介して転送先リソースに書き込むことにより、前記転送元リソースから前記転送先リソースにデータ転送を行うＤＭＡ転送制御部と、Ｉ／Ｏバッファを含み、前記Ｉ／Ｏバッファと外部デバイスの間のデータ転送を行うＩ／Ｏ制御部と、前記転送元リソースと前記転送先リソースを特定する情報及び前記転送元リソースから前記転送先リソースへのデータ転送の対象となるデータのサイズを特定する情報を設定する転送情報設定部と、を含み、前記ＤＭＡ転送制御部は、前記転送元リソースが前記Ｉ／Ｏ制御部である場合は、前記Ｉ／Ｏ制御部からの１回のデータ転送要求に対して、前記Ｉ／Ｏバッファから複数のデータを連続して読み出すか１つのデータを読み出すかを選択し、前記転送先リソースが前記Ｉ／Ｏ制御部である場合は、前記Ｉ／Ｏ制御部からの１回のデータ転送要求に対して、前記Ｉ／Ｏバッファに複数のデータを連続して書き込むか１つのデータを書き込むかを選択することを特徴とする情報処理装置である。
【０００７】
外部デバイスは、例えば、ＳＤ（Secure Digital）メモリーカードやＣＦ（Compact Flash）メモリーカード、ＵＳＢ（Universal Serial Bus）デバイス、ＰＣ（Personal Computer）である。
【０００８】
転送情報設定部は、例えば、ＣＰＵ（Central Processing Unit）である。
【０００９】
本発明の情報処理装置によれば、Ｉ／Ｏ制御部からの１回のデータ転送要求に対して、ＤＭＡ転送制御部が内部バスを介してＩ／Ｏバッファに対して複数のデータの連続転送を行うことにより、Ｉ／Ｏバッファに対するＤＭＡ転送を高速化することができる。
【００１０】
また、本発明の情報処理装置によれば、Ｉ／Ｏ制御部からの１回のデータ転送要求に対して連続転送が困難な場合でも、ＣＰＵを介さずにＤＭＡ転送により１回のデータ転送要求毎に１つのデータを転送することができるので、ＣＰＵの負荷を低減することができる。
【００１１】
このように、本発明の情報処理装置によれば、１回のデータ転送要求に対して複数のデータを連続転送するか１つのデータを転送するかを、外部デバイスの種類やＩ／Ｏバッファのサイズ等に応じて適切に選択することにより、Ｉ／Ｏバッファに対するＤＭＡ転送速度を最適化することができる。
【００１２】
（２）本発明の情報処理装置において、前記転送情報設定部は、前記ＤＭＡ転送制御部が前記Ｉ／Ｏバッファに対して読み出し又は書き込みを連続して行うデータ数を特定する情報を設定するようにしてもよい。
【００１３】
本発明の情報処理装置によれば、Ｉ／Ｏバッファに対する連続転送のデータサイズを可変に設定することができるので、Ｉ／Ｏバッファに対するＤＭＡ転送速度をより最適化することができる。
【００１４】
（３）本発明の情報処理装置において、前記ＤＭＡ転送制御部は、前記Ｉ／Ｏバッファに対して前記複数のデータの読み出し又は書き込みを連続して行う場合は、読み出し又は書き込みを開始してから終了するまで前記内部バスのバス権を占有するか否かを選択するようにしてもよい。
【００１５】
本発明の情報処理装置によれば、Ｉ／Ｏバッファに対する連続転送の優先度が高い場合は内部バスを占有し、優先度が低い場合は内部バスを占有しないようにすることができるので、内部バスを効率的に使用することができる。
【００１６】
（４）本発明の情報処理装置において、前記転送情報設定部は、前記転送元リソースから前記転送先リソースへのデータ転送の転送モードを設定し、前記ＤＭＡ転送制御部は、前記転送モードに基づいて、１回の前記データ転送要求に対して、前記Ｉ／Ｏバッファに対して前記複数のデータの読み出し又は書き込みを連続して行うか１つのデータの読み出し又は書き込みを行うかを選択するようにしてもよい。
【００１７】
（５）本発明の情報処理装置において、前記Ｉ／Ｏ制御部は、前記転送先リソースになる場合は前記Ｉ／Ｏバッファの空き領域のサイズと前記Ｉ／Ｏバッファに連続して書き込まれる前記複数のデータのサイズを比較し、前記転送元リソースになる場合は前記Ｉ／Ｏバッファに格納されているデータのサイズと前記Ｉ／Ｏバッファから連続して読み出される前記複数のデータのサイズを比較し、比較結果に基づいて前記ＤＭＡ転送制御部に対して連続転送要求信号又は単位転送要求信号を送出し、前記ＤＭＡ転送制御部は、前記連続転送要求信号を受け取った時は前記Ｉ／Ｏバッファに対して前記複数のデータの読み出し又は書き込みを連続して行い、前記単位転送要求信号を受け取った時は前記Ｉ／Ｏバッファに対して１つのデータの読み出し又は書き込みを行うようにしてもよい。
【００１８】
本発明の情報処理装置によれば、Ｉ／Ｏ制御部が、Ｉ／Ｏバッファの状態に基づいて、Ｉ／Ｏバッファに対する連続転送が可能か否かを判断するので、Ｉ／Ｏバッファに対するＤＭＡ転送をより効率的に行うことができる。
【００１９】
（６）本発明の情報処理装置において、前記Ｉ／Ｏ制御部は、前記ＤＭＡ転送制御部が前記Ｉ／Ｏバッファから連続して読み出し又は書き込みを行うデータのサイズが、前記データ転送の対象となるデータのサイズよりも小さい場合には、前記ＤＭＡ転送制御部に対して複数回に分けてデータ転送要求を行うようにしてもよい。
【００２０】
（７）本発明の情報処理装置は、第１の前記Ｉ／Ｏバッファを含む第１の前記Ｉ／Ｏ制御部と、第２の前記Ｉ／Ｏバッファを含む第２の前記Ｉ／Ｏ制御部と、を含み、前記ＤＭＡ転送制御部は、前記転送元リソースが前記第１のＩ／Ｏ制御部であり、かつ、前記転送先リソースが前記第２のＩ／Ｏ制御部である場合は、前記第１のＩ／Ｏ制御部からの１回のデータ転送要求に対して、前記第１のＩ／Ｏバッファから複数のデータを連続して読み出すか１つのデータを読み出すかを選択し、前記第２のＩ／Ｏ制御部からの１回のデータ転送要求に対して、前記第２のＩ／Ｏバッファに複数のデータを連続して書き込むか１つのデータを書き込むかを選択するようにしてもよい。
【００２１】
本発明の情報処理装置によれば、２つのＩ／Ｏバッファの間でもＤＭＡ転送を行うことができる。また、本発明の情報処理装置によれば、Ｉ／Ｏバッファ間のＤＭＡ転送においても、１回のデータ転送要求に対して複数のデータを連続転送するか１つのデータを転送するかを選択することができるので、ＤＭＡ転送速度を最適化することができる。
【００２２】
（８）本発明は、上記のいずれかの情報処理装置と、少なくとも１つのカメラモジュールと、前記カメラモジュールが所定間隔で撮像した複数の画像データを一時的に記憶する第１の記憶装置と、前記情報処理装置の前記Ｉ／Ｏ制御部の前記Ｉ／Ｏバッファとデータ転送を行う不揮発性の第２の記憶装置と、を含み、前記情報処理装置は、所定のイベントの発生に基づいて、前記ＤＭＡ転送制御部が前記第１の記憶装置に記憶されている前記画像データを前記Ｉ／Ｏバッファに転送し、前記Ｉ／Ｏ制御部が前記Ｉ／Ｏバッファに転送された前記画像データを前記第２の記憶装置に転送することを特徴とする画像データ記録システムである。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２４】
１．情報処理装置
１−１．第１実施形態
［情報処理装置の構成］
図１は、第１実施形態の情報処理装置の構成について説明するための図である。
【００２５】
第１実施形態の情報処理装置１は、ＣＰＵ１０、内部メモリー１２、外部メモリーコントローラー１４、ＤＭＡ（Direct Memory Access）コントローラー２０、Ｉ／Ｏコントローラー３０及びこれらが接続された内部バス４０を含んで構成されている。
【００２６】
ＣＰＵ１０は、内部メモリー１２及び外部メモリー１１０の両方もしくは片方を作業領域として、データ処理や割り込み処理等の種々の情報処理を行う。
【００２７】
外部メモリーコントローラー１４は、ＳＲＡＭ（Static Random Access Memory）やＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等の外部メモリー１１０と接続されており、外部メモリー１１０に対するアクセスを制御する。
【００２８】
Ｉ／Ｏコントローラー３０は、ＳＤメモリーカードやＣＦメモリーカード、ＵＳＢデバイス、ＰＣ等の外部デバイス１００と接続されており、外部デバイス１００に対するアクセスを制御する。
【００２９】
ＤＭＡコントローラー２０は、内部バス４０を介して、内部メモリー１２、外部メモリー１１０、Ｉ／Ｏコントローラー３０の任意の２つのリソース間のデータ転送を制御する。具体的には、ＤＭＡコントローラー２０は、内部バス４０を介して転送対象となるデータを転送元リソースから読み出し、読み出した転送対象データを内部バス４０を介して転送先リソースに書き込むことにより、ＤＭＡ転送を実現する。すなわち、ＤＭＡコントローラー２０はバスマスターとして機能し、内部メモリー１２、外部メモリー１１０、Ｉ／Ｏコントローラー３０はバススレーブとして機能する。ＤＭＡコントローラー２０により、ＣＰＵ１０が介在することなくこれらのリソース間でデータ転送処理を行うことができるので、ＣＰＵの負荷を大幅に削減することができる。
【００３０】
内部バス４０は、例えば、３２ビットのリードデータ（ＨＲＤＡＴＡ［３１：０］）及びライトデータ（ＨＷＤＡＴＡ［３１：０］）、３２ビットのアドレス信号（ＨＡＤＤＲ［３１：０］）、１ビットのライト信号（ＨＷＲＩＴＥ）、１ビットのバス要求信号（ＨＢＵＳＲＥＱ）、１ビットのバス認可信号（ＨＧＲＡＮＴ）等とバスアービターで構成されている。このような内部バスとして、例えば、ＡＨＢ（Advanced High-performance Bus）が知られている。
【００３１】
なお、ＤＭＡコントローラー２０及びＩ／Ｏコントローラー３０は、それぞれ本発明におけるＤＭＡ転送制御部及びＩ／Ｏ制御部として機能する。
【００３２】
［ＤＭＡコントローラー］
図２は、第１実施形態におけるＤＭＡコントローラーの構成について説明するための図である。
【００３３】
ＤＭＡコントローラー２０は、レジスタ部２００、制御部２１０、ＦＩＦＯ（First In First Out）２２０及びバスマスターインターフェース部２３０を含んで構成されている。
【００３４】
レジスタ部２００には、転送元アドレスレジスタ２０２、転送先アドレスレジスタ２０４、転送サイズカウンタ２０６、制御レジスタ２０８等のＤＭＡ転送を制御するための各種の設定レジスタが備えられており、ＣＰＵ１０により設定される。すなわち、ＣＰＵ１０は、本発明おける転送情報設定部として機能する。
【００３５】
転送元アドレスレジスタ２０２及び転送先アドレスレジスタ２０４には、それぞれＤＭＡ転送の対象となる転送元リソースの読み出し開始アドレス及び転送先リソースの書き込み開始アドレスが設定される。また、転送サイズカウンタ２０６には、ＤＭＡ転送の対象となるデータのサイズが設定される。
【００３６】
そして、制御レジスタ２０８の設定値により、転送元リソースや転送先リソースの選択、転送元のデータや転送先のデータの単位サイズの選択、転送禁止又は転送許可の選択等が行えるようになっている。転送許可が選択された場合は、ＤＭＡイネーブル信号２１２がアクティブとなる。
【００３７】
また、転送元リソースや転送先リソースがＩ／Ｏコントローラー３０である場合は、制御レジスタ２０８の設定値により、Ｉ／Ｏコントローラー３０からＤＭＡコントローラー２０への転送モード（以下、「Ｉ／Ｏ読み出し転送モード」という）の選択やＤＭＡコントローラー２０からＩ／Ｏコントローラー３０への転送モード（以下、「Ｉ／Ｏ書き込み転送モード」という）の選択が行えるようになっている。例えば、Ｉ／Ｏ読み出し転送モードやＩ／Ｏ書き込み転送モードとして、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、単位サイズのデータを転送するモード（以下、「シングル転送モード」という）又は単位サイズのデータを複数個連続して転送するモード（以下、「連続転送モード」という）が選択できるようになっている。さらに、連続転送モードにおいて連続して転送するデータ数を可変にするために、例えば、連続転送するデータサイズ（以下、「連続転送サイズ」という）を設定するためのレジスタを設けてもよい。
【００３８】
制御部２１０は、ＤＭＡイネーブル信号２１２がアクティブになると、転送元アドレスレジスタ２０２、転送先アドレスレジスタ２０４、転送サイズカウンタ２０６、制御レジスタ２０８等の設定値に基づいて、ＤＭＡ転送制御を開始する。
【００３９】
まず、制御部２１０は、内部バス４０を介して転送元リソースから転送対象データを読み出すために、バスマスターインターフェース部２３０を介して、内部バス４０に対してバス要求信号４５を送出する。内部バス４０のバスアービターは、内部バス４０が未使用の状態であればＤＭＡコントローラー２０に対してバス認可信号４６を送出し、ＣＰＵ１０等の他のバスマスターが内部バス４０を使用中であれば、内部バス４０が開放されるまで待ってＤＭＡコントローラー２０に対してバス認可信号４６を送出する。そして、制御部２１０は、バスマスターインターフェース部２３０を介してバス認可信号４６を受けることによりバス権を獲得し、転送元リソースから転送対象データを読み出す処理を開始する。
【００４０】
次に、制御部２１０は、転送元アドレスレジスタ２０２に設定されたアドレスをアドレス信号４３にセットし、ライト信号４４を読み出し方向にセットし、バスマスターインターフェース部２３０を介して内部バス４０に送出する。内部バス４０にはアドレス信号４３にセットされたアドレスからリードデータ４２が読み出され、制御部２１０は、バスマスターインターフェース部２３０を介してリードデータ４２をＦＩＦＯ２２０に書き込む。
【００４１】
制御部２１０は、リードデータ４２をＦＩＦＯ２２０に書き込む毎に、制御レジスタ２０８により選択された単位サイズ分だけ転送サイズカウンタ２０６をデクリメントし、アドレス信号４３を次のアドレスにセットする。そして、制御部２１０は、転送サイズカウンタ２０６の値が０になるまで、リードデータ４２をＦＩＦＯ２２０に書き込む処理を繰り返す。
【００４２】
ここで、転送元リソースが内部メモリー１２又は外部メモリー１１０である場合、内部メモリー１２又は外部メモリー１１０には転送対象データが必ず存在するため、制御部２１０は、バス権を獲得したらすぐにリードデータ４２の読み出しを開始することができる。
【００４３】
一方、転送元リソースがＩ／Ｏコントローラー３０である場合、制御部２１０は、バス権を獲得しても、外部デバイス１００からＩ／Ｏコントローラー３０に転送対象のデータが転送されていなければリードデータ４２の読み出しを開始することができない。そのため、Ｉ／Ｏコントローラー３０は、外部デバイス１００から転送対象のデータを受け取った後にＤＭＡコントローラー２０に対してＤＭＡリクエスト信号３２を送出し、制御部２１０は、ＤＭＡリクエスト信号３２を受け取るまでは読み出し処理を開始しない。制御部２１０は、ＤＭＡリクエスト信号３２を受け取ると、Ｉ／Ｏコントローラー３０に対してＤＭＡアクノリッジ信号２２を送出して読み出し処理を開始する。
【００４４】
Ｉ／Ｏ読み出し転送モードがシングル転送モードに設定されていれば、制御部２１０は、転送対象データの読み出しが終了するまで、ＤＭＡリクエスト信号３２を受け取る毎に、１つのリードデータ４２を読み出してＦＩＦＯ２２０に書き込むとともにＩ／Ｏコントローラー３０に対してＤＭＡアクノリッジ信号２２を送出する処理を繰り返す。
【００４５】
Ｉ／Ｏ読み出し転送モードが連続転送モードに設定されていれば、制御部２１０は、転送対象データの読み出しが終了するまで、ＤＭＡリクエスト信号３２を受け取る毎に、連続転送サイズ分のリードデータ４２を連続して読み出してＦＩＦＯ２２０に書き込むとともにＩ／Ｏコントローラー３０に対してＤＭＡアクノリッジ信号２２を送出する処理を繰り返す。
【００４６】
次に、制御部２１０は、内部バス４０を介して転送先リソースに転送対象のデータを書き込むために、バスマスターインターフェース部２３０を介して、内部バス４０に対してバス要求信号４５を送出する。制御部２１０は、バスマスターインターフェース部２３０を介してバス認可信号４６を受けることによりバス権を獲得し、転送先リソースに対して転送対象データの書き込み処理を開始する。
【００４７】
次に、制御部２１０は、ＦＩＦＯ２２０に格納されているデータを読み出してライトデータ４１にセットし、転送先アドレスレジスタ２０４に設定されたアドレスをアドレス信号４３にセットし、ライト信号４４を書き込み方向にセットし、バスマスターインターフェース部２３０を介して内部バス４０に送出する。そして、転送先リソースは、アドレス信号４３にセットされたアドレスにライトデータ４１にセットされたデータを書き込む。
【００４８】
制御部２１０は、ＦＩＦＯ２２０が空になるまで、ＦＩＦＯ２２０からデータを読み出してライトデータ４１にセットし、ライトデータ４１を書き込むべきアドレスをアドレス信号４３にセットする処理を繰り返す。
【００４９】
ここで、転送先リソースが内部メモリー１２又は外部メモリー１１０である場合、内部メモリー１２又は外部メモリー１１０には転送対象データを書き込む領域が確保されているため、制御部２１０は、バス権を獲得したらすぐにライトデータ４１の書き込みを開始することができる。
【００５０】
一方、転送先リソースがＩ／Ｏコントローラー３０である場合、制御部２１０は、バス権を獲得しても、Ｉ／Ｏコントローラー３０に転送対象データを書き込む領域が確保されていなければライトデータ４１の書き込みを開始することができない。そのため、Ｉ／Ｏコントローラー３０は、転送対象データを書き込む領域が空いている場合にのみＤＭＡコントローラー２０に対してＤＭＡリクエスト信号３２を送出し、制御部２１０は、ＤＭＡリクエスト信号３２を受け取るまでは書き込み処理を開始しない。制御部２１０は、ＤＭＡリクエスト信号３２を受け取ると、Ｉ／Ｏコントローラー３０に対してＤＭＡアクノリッジ信号２２を送出して書き込み処理を開始する。
【００５１】
Ｉ／Ｏ書き込み転送モードがシングル転送モードに設定されていれば、制御部２１０は、転送対象データの書き込みが終了するまで、ＤＭＡリクエスト信号３２を受け取る毎に、１つのデータをＦＩＦＯ２２０から読み出してライトデータ４１にセットするとともにＩ／Ｏコントローラー３０に対してＤＭＡアクノリッジ信号２２を送出する処理を繰り返す。
【００５２】
Ｉ／Ｏ書き込み転送モードが連続転送モードに設定されていれば、制御部２１０は、転送対象データの書き込みが終了するまで、ＤＭＡリクエスト信号３２を受け取る毎に、連続転送サイズ分のデータをＦＩＦＯ２２０から連続して読み出してライトデータ４１にセットするとともにＩ／Ｏコントローラー３０に対してＤＭＡアクノリッジ信号２２を送出する処理を繰り返す。
【００５３】
なお、制御部２１０は、転送対象データの読み出し処理（又は書き込み処理）を開始してから終了するまでバス要求信号４５を送出し続けて内部バス４０のバス権を占有するようにしてもよいし、各ライトデータ４１の読み出し（又は書き込み）開始時にバス要求信号４５を送出し、読み出し（又は書き込み）終了時にバス要求信号４５の送出を停止することにより、各ライトデータ４１の読み出し（又は書き込み）毎にバス権を獲得するようにしてもよい。
【００５４】
制御部２１０は、例えば、Ｉ／Ｏ読み出し転送モード（又はＩ／Ｏ書き込み転送モード）の設定（シングル転送モード又は連続転送モード）に応じてバス権を占有するか否かを決定するようにしてもよいし、読み出し処理（又は書き込み処理）においてバス権を占有するか否かの選択ビットを制御レジスタ２０８に設け、当該選択ビットの設定値に応じてバス権を占有するか否かを決定するようにしてもよい。
【００５５】
［Ｉ／Ｏコントローラー］
図３は、第１実施形態におけるＩ／Ｏコントローラーの構成について説明するための図である。
【００５６】
Ｉ／Ｏコントローラー３０は、レジスタ部３００、ＤＭＡ制御部３１０、ＦＩＦＯ３２０、バススレーブインターフェース部３３０及びＩ／Ｏインターフェース部３４０を含んで構成されている。
【００５７】
レジスタ部３００には、ＤＭＡ転送を制御するためのＤＭＡ制御レジスタ３０２及び外部デバイス１００に対するデータ転送を制御するためのＩ／Ｏ制御レジスタ３０４等が備えられており、ＣＰＵ１０により設定される。
【００５８】
Ｉ／Ｏインターフェース部３４０は、Ｉ／Ｏ制御レジスタ３０４の設定値に従い、Ｉ／Ｏ１００の種類に応じたデータ転送フォーマットで、外部デバイス１００とデータ転送を行う。すなわち、Ｉ／Ｏインターフェース部３４０は、外部デバイス１００から受け取ったデータをＦＩＦＯ３２０に格納し、又は、ＦＩＦＯ３２０に格納されたデータを外部デバイス１００に送出する処理を行う。ＦＩＦＯ３２０は、例えば、ＲＡＭ（Random Access Memory）の所定の領域やシフトレジスタを用いて構成することができ、本発明におけるＩ／Ｏバッファとして機能する。
【００５９】
Ｉ／Ｏインターフェース部３４０は、外部デバイス１００（ＳＤメモリーカード、ＣＦメモリーカード、ＵＳＢデバイス、ＰＣ等）の種類に応じて既知のインターフェース回路により実現することができる。
【００６０】
また、ＤＭＡ制御レジスタ３０２の設定値により、ＤＭＡ転送モードの選択（シングル転送モード又は連続転送モード）が行えるようになっており、制御部３１０は転送モード信号３１２によりＤＭＡ転送モードを認識することができる。
【００６１】
また、ＤＭＡ制御レジスタ３０２の設定値により、ＤＭＡ転送開始の条件となるＦＩＦＯ３２０の空き領域のサイズやＦＩＦＯ３２０に格納されているデータサイズの閾値の指定が行えるようになっている。ＣＰＵ１０は、転送対象のデータサイズに対応させてこの閾値を設定する。
【００６２】
さらに、ＤＭＡ制御レジスタ３０２にはＤＭＡ転送開始を指示するためのビットが設けられており、ＣＰＵ１０によりＤＭＡ転送開始が指示されると、ＤＭＡ制御部３１０は、バススレーブインターフェース部３３０を介してアドレス信号４３を受け取り、アドレス信号４３がＦＩＦＯ３２０のアドレスであるか確認する（ＦＩＦＯ３２０が複数ある場合は、どのＦＩＦＯのアドレスであるかを特定する）。また、ＤＭＡ制御部３１０は、バススレーブインターフェース部３３０を介してライト信号４４を受け取り、Ｉ／Ｏコントローラー３０が転送元リソースになるのか転送先リソースになるのかを判断する。
【００６３】
Ｉ／Ｏコントローラー３０が転送元リソースになる場合、ＤＭＡ制御部３１０は、ＦＩＦＯ３２０に格納されているデータサイズが閾値以上であるか否かを判断し、閾値以上であればすぐに、閾値よりも小さければ閾値以上になるまで待ってから、ＤＭＡコントローラー２０に対してＤＭＡリクエスト信号３２を送出する。
【００６４】
前述したように、ＤＭＡコントローラー２０はＤＭＡリクエスト信号３２を受け取るとＤＭＡアクノリッジ信号２２を送出するので、ＤＭＡ制御部３１０は、ＤＭＡアクノリッジ信号２２を受け取ると、ＦＩＦＯ３２０に格納されているデータを読み出してリードデータ４２にセットし、バススレーブインターフェース部３３０を介して内部バス４０に送出する。
【００６５】
ＤＭＡ転送モードがシングル転送モードに設定されていれば、制御部３１０は、最初にＤＭＡリクエスト信号を送出した後、ＤＭＡアクノリッジ信号２２を受け取る毎に、１つのデータ（単位サイズのデータ）をＦＩＦＯ３２０から読み出してリードデータ４２にセットするとともにＤＭＡコントローラー２０に対して次のＤＭＡリクエスト信号３２を送出する処理を繰り返す。
【００６６】
ＤＭＡ転送モードが連続転送モードに設定されていれば、制御部３１０は、最初にＤＭＡリクエスト信号３２を送出した後、連続転送サイズ分のデータ（単位サイズのデータ）をＦＩＦＯ３２０から連続して読み出してリードデータ４２にセットする処理を行う。
【００６７】
一方、Ｉ／Ｏコントローラー３０が転送先リソースになる場合、ＤＭＡ制御部３１０は、ＦＩＦＯ３２０の空き領域のサイズが閾値以上であるか否かを判断し、閾値以上であればすぐに、閾値よりも小さければ閾値以上になるまで待ってから、ＤＭＡコントローラー２０に対してＤＭＡリクエスト信号３２を送出する。
【００６８】
前述したように、ＤＭＡコントローラー２０はＤＭＡリクエスト信号３２を受け取るとライトデータ４１とともにＤＭＡアクノリッジ信号２２を送出するので、ＤＭＡ制御部３１０は、ＤＭＡアクノリッジ信号２２を受け取ると、バススレーブインターフェース部３３０を介してライトデータ４１をＦＩＦＯ３２０に書き込む。
【００６９】
ＤＭＡ転送モードがシングル転送モードに設定されていれば、制御部３１０は、ＤＭＡアクノリッジ信号２２を受け取る毎に、１つのライトデータ４１（単位サイズのデータ）をＦＩＦＯ３２０に書き込むとともにＤＭＡコントローラー２０に対して次のＤＭＡリクエスト信号３２を送出する処理を繰り返す。
【００７０】
ＤＭＡ転送モードが連続転送モードに設定されていれば、制御部３１０は、ＤＭＡアクノリッジ信号２２とともに連続転送サイズ分のライトデータ４１（単位サイズのデータ）を連続して受け取り、ＦＩＦＯ３２０に書き込む処理を行う。
【００７１】
［タイミングチャート］
図４〜図９に、第１実施形態の情報処理装置におけるデータ転送のタイミングチャートの一例を示す。
【００７２】
図４〜図６は、転送元リソース及び転送先リソースがそれぞれ外部メモリー１１０及びＩ／Ｏコントローラー３０であり、３２バイト（３２ビット（４バイト）×８）のデータを転送する場合のタイミングチャートである（転送元リソースは内部メモリー１２であってもよい）。図４〜図６において、時刻Ｔ０以前に、転送元アドレスレジスタ２０２には転送対象の最初のデータが記憶されている外部メモリー１１０のアドレスＲＡ０が設定されている。また、転送先アドレスレジスタ２０４にはＩ／Ｏコントローラー３０のＦＩＦＯ３２０のアドレスＷＡ０が設定されている。また、転送サイズカウンタ２０６には転送対象のデータサイズである３２バイトが設定されている。また、単位サイズは３２ビット（４バイト）である。
【００７３】
図４は、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、ＤＭＡコントローラー２０が単位サイズのデータを転送する場合のタイミングチャートの一例を示す図である。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ書き込み転送モードがシングル転送モードに設定されている。また、Ｉ／Ｏコントローラー３０のＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードがシングル転送モードに設定されている。以下、図４のタイミングチャートについて説明する。
【００７４】
時刻Ｔ０において、ＣＰＵ１０が制御レジスタ２０８の設定を転送禁止から転送許可に変更することによりＤＭＡイネーブル信号２１２（ＤＥ）がアクティブになると、ＤＭＡコントローラー２０はレジスタ部２００の各レジスタの設定値に従い、外部メモリー１１０からＩ／Ｏコントローラー３０のＦＩＦＯ３２０へのデータ転送処理を開始する。
【００７５】
時刻Ｔ１において、ＤＭＡコントローラー２０は、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し、内部バス４０が未使用の状態であれば内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、外部メモリー１１０から転送対象データの読み出しを開始する。
【００７６】
時刻Ｔ１〜Ｔ３において、ＤＭＡコントローラー２０は、外部メモリーから転送対象データをバーストリードするためにバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【００７７】
転送元アドレスレジスタ２０２には転送対象の最初のデータが記憶されている外部メモリー１１０のアドレスＲＡ０が設定されているので、ＤＭＡコントローラー２０は、時刻Ｔ１〜Ｔ４において、アドレスＲＡ０から順にインクリメントしながらアドレスＲＡ０〜ＲＡ７をアドレス信号４３（ＨＡＤＤＲ［３１：０］）として内部バス４０に送出する。
【００７８】
外部メモリー１１０のアドレスＲＡ０〜ＲＡ７には転送対象の３２バイト（３２ビット（４バイト）×８）分のデータＤ０〜Ｄ７が記憶されており、時刻Ｔ２〜Ｔ４において、データＤ０〜Ｄ７が外部メモリーコントローラー１４を介してリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に読み出され、ＤＭＡコントローラー２０は、データＤ０〜Ｄ７を順にＦＩＦＯ２２０に格納する。
【００７９】
Ｉ／Ｏコントローラー３０は、時刻Ｔ４において、ＦＩＦＯ３２０の空き領域のサイズがＤＭＡ制御レジスタ３０２に設定されている閾値（例えば、３２バイト）以上になったため、ＤＭＡコントローラー２０にＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出する。
【００８０】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取ると、ＦＩＦＯ３２０に格納された先頭データＤ０をＩ／Ｏコントローラー３０のＦＩＦＯ３２０に転送するために、時刻Ｔ５〜Ｔ６において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【００８１】
転送先アドレスレジスタ２０４にはＦＩＦＯ３２０のアドレスＷＡ０が設定されているので、ＤＭＡコントローラー２０は、アドレスＷＡ０をアドレス信号４３（ＨＡＤＤＲ［３１：０］）として内部バス４０に送出する。
【００８２】
ＤＭＡコントローラー２０は、時刻Ｔ５〜Ｔ６において、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得すると、時刻Ｔ６〜Ｔ７において、ライト信号４４（ＨＷＲＩＴＥ）を書き込み方向（ハイレベル）にして内部バス４０に送出する。
【００８３】
Ｉ／Ｏコントローラー３０は、時刻Ｔ５〜Ｔ６において、ライト信号４４（ＨＷＲＩＴＥ）が書き込み方向（ハイレベル）であることを認識し、ＦＩＦＯ３２０に対する書き込みの準備をする。
【００８４】
時刻Ｔ７〜Ｔ８において、ＤＭＡコントローラー２０は、ＤＭＡアクノリッジ信号２２（ＤＡＣＫ）をＩ／Ｏコントローラー３０に送出するとともに、データＤ０をＦＩＦＯ２２０から読み出してライトデータ４１（ＨＷＤＡＴＡ［３１：０］）として内部バス４０に送出し、Ｉ／Ｏコントローラー３０は、データＤ０をＦＩＦＯ３２０に格納する。
【００８５】
ＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードがシングル転送モードに設定されているので、Ｉ／Ｏコントローラー３０は、時刻Ｔ８において、ＤＭＡコントローラー２０に次のＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出する。
【００８６】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取ると、時刻Ｔ９〜Ｔ１０において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、ＦＩＦＯ２２０に格納された次のデータＤ１をＩ／Ｏコントローラー３０のＦＩＦＯ３２０に転送する処理を開始する。
【００８７】
時刻Ｔ１０〜Ｔ１１において、ＤＭＡコントローラー２０は、ライト信号４４（ＨＷＲＩＴＥ）を書き込み方向（ハイレベル）にして内部バス４０に送出する。
【００８８】
時刻Ｔ１１〜Ｔ１２において、ＤＭＡコントローラー２０は、ＤＭＡアクノリッジ信号２２（ＤＡＣＫ）をＩ／Ｏコントローラー３０に送出するとともに、データＤ１をＦＩＦＯ２２０から読み出してライトデータ４１（ＨＷＤＡＴＡ［３１：０］）として内部バス４０に送出し、Ｉ／Ｏコントローラー３０は、データＤ１をＦＩＦＯ３２０に格納する。
【００８９】
以下、同様に、時刻Ｔ１２〜Ｔ１３において、データＤ２〜Ｄ７がＤＭＡコントローラー２０のＦＩＦＯ２２０からＩ／Ｏコントローラー３０のＦＩＦＯ３２０に転送される。
【００９０】
時刻Ｔ１３〜Ｔ１４において、ＤＭＡコントローラー２０はＤＭＡ終了割り込み信号２４（ＤＭＡＩＮＴ）を発生させ、ＣＰＵ１０は転送処理が終了したことを認識することができる。また、転送処理が終了すると、制御レジスタ２０８の設定が転送許可から転送禁止に自動的に変更され、時刻Ｔ１４において、ＤＭＡイネーブル信号２１２（ＤＥ）が非アクティブになりＤＭＡコントローラー２０が停止する。
【００９１】
このように、図４のケースでは、制御レジスタ２０８においてＩ／Ｏ書き込み転送モードがシングル転送モードに設定されているので、ＤＭＡコントローラー２０は、Ｄ０〜Ｄ７の各データを転送する毎にＤＭＡアクノリッジ信号２２（ＤＡＣＫ）をＩ／Ｏコントローラー３０に送出し、Ｉ／Ｏコントローラー３０は、ＤＭＡアクノリッジ信号２２（ＤＡＣＫ）を受ける毎に次のＤＭＡリクエスト信号３２（ＤＲＥＱ）をＤＭＡコントローラー２０に送出している。すなわち、ＤＭＡコントローラー２０とＩ／Ｏコントローラー３０は３２ビット（４バイト）のデータ転送毎にハンドシェイク処理をしているので、３２バイト分のデータ転送に時間がかかる。
【００９２】
図５は、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、ＤＭＡコントローラー２０がバス権を占有せずに単位サイズのデータを複数個連続して転送する場合のタイミングチャートの一例を示す図である。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ書き込み転送モードが連続転送モードに設定されている。また、Ｉ／Ｏコントローラー３０のＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されている。以下、図５のタイミングチャートについて説明する。
【００９３】
時刻Ｔ０〜Ｔ４における外部メモリー１１０から転送対象データを読み出す処理については、図４と同じであるため、その説明を省略する。
【００９４】
Ｉ／Ｏコントローラー３０は、時刻Ｔ４において、ＤＭＡコントローラー２０にＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出し、ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取ると、ＦＩＦＯ３２０に格納された先頭データＤ０をＩ／Ｏコントローラー３０のＦＩＦＯ３２０に転送するために、時刻Ｔ５〜Ｔ６において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【００９５】
転送先アドレスレジスタ２０４にはＦＩＦＯ３２０のアドレスＷＡ０が設定されているので、ＤＭＡコントローラー２０は、アドレスＷＡ０をアドレス信号４３（ＨＡＤＤＲ［３１：０］）として内部バス４０に送出し、時刻Ｔ５において、ライト信号４４（ＨＷＲＩＴＥ）を書き込み方向（ハイレベル）にして内部バス４０に送出する。
【００９６】
時刻Ｔ５〜Ｔ６において、ＤＭＡコントローラー２０は、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、Ｉ／Ｏコントローラー３０は、ライト信号４４（ＨＷＲＩＴＥ）が書き込み方向（ハイレベル）であることを認識し、ＦＩＦＯ３２０に対する書き込みの準備をする。
【００９７】
時刻Ｔ７〜Ｔ８において、ＤＭＡコントローラー２０は、データＤ０をＦＩＦＯ２２０から読み出してライトデータ４１（ＨＷＤＡＴＡ［３１：０］）として内部バス４０に送出し、Ｉ／Ｏコントローラー３０は、データＤ０をＦＩＦＯ３２０に格納する。
【００９８】
ＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されているので、ＤＭＡコントローラー２０は、ＦＩＦＯ２２０に格納された次のデータＤ１をＩ／Ｏコントローラー３０のＦＩＦＯ３２０に転送するために、時刻Ｔ７〜Ｔ８において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【００９９】
時刻Ｔ８〜Ｔ９において、ＤＭＡコントローラー２０は内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得して次のデータＤ１をライトデータ４１（ＨＷＤＡＴＡ［３１：０］）として内部バス４０に送出し、Ｉ／Ｏコントローラー３０はデータＤ１をＦＩＦＯ３２０に格納する。
【０１００】
以下、同様に、時刻Ｔ９〜Ｔ１０において、データＤ２〜Ｄ７がＤＭＡコントローラー２０のＦＩＦＯ２２０からＩ／Ｏコントローラー３０のＦＩＦＯ３２０に転送される。
【０１０１】
時刻Ｔ１１〜Ｔ１２の処理は、図４における時刻Ｔ１３〜Ｔ１４の処理と同じであるため説明を省略する。
【０１０２】
このように、図５のケースでは、制御レジスタ２０８においてＩ／Ｏ書き込み転送モードが連続転送モードに設定され、かつ、連続転送サイズが３２バイトであるので、ＤＭＡコントローラー２０は、時刻Ｔ４〜Ｔ５においてＤＭＡリクエスト信号３２（ＤＲＥＱ）を１回受け取ると、時刻Ｔ７〜Ｔ１１においてＤ０〜Ｄ７の３２バイト分のデータを連続して転送している。また、ＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されているので、Ｉ／Ｏコントローラー３０は、ＤＭＡアクノリッジ信号２２（ＤＡＣＫ）を確認せずにＤ０〜Ｄ７の３２バイト分のデータを順にＦＩＦＯ３２０に書き込むことができる。すなわち、ＤＭＡコントローラー２０とＩ／Ｏコントローラー３０は３２ビット（４バイト）のデータ転送毎にハンドシェイク処理をする必要がないので、図４のケースと比較して３２バイト分のデータ転送にかかる時間を短縮することができる。
【０１０３】
図６は、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、ＤＭＡコントローラー２０がバス権を占有して単位サイズのデータを複数個連続して転送する場合のタイミングチャートの一例を示す図である。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ書き込み転送モードが連続転送モードに設定され、Ｉ／Ｏコントローラー３０のＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されている。以下、図６のタイミングチャートについて説明する。
【０１０４】
時刻Ｔ０〜Ｔ４における外部メモリー１１０から転送対象データを読み出す処理については、図４と同じであるため、その説明を省略する。
【０１０５】
時刻Ｔ４において、Ｉ／Ｏコントローラー３０は、ＤＭＡコントローラー２０にＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出し、ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取り、時刻Ｔ５において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【０１０６】
ＤＭＡコントローラー２０は、時刻Ｔ５において、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得すると、時刻Ｔ２〜Ｔ７において、バス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１０７】
そして、時刻Ｔ６〜Ｔ８において、ＤＭＡコントローラー２０はデータＤ０〜Ｄ７をＦＩＦＯ２２０から連続して読み出してライトデータ４１（ＨＷＤＡＴＡ［３１：０］）として内部バス４０に送出し、Ｉ／Ｏコントローラー３０はデータＤ０〜Ｄ７をＦＩＦＯ３２０に格納する。
【０１０８】
時刻Ｔ８〜Ｔ９の処理は、図４における時刻Ｔ１３〜Ｔ１４の処理と同じであるため説明を省略する。
【０１０９】
このように、図６のケースでは、ＤＭＡコントローラー２０がバス権を占有して３２バイト分の転送対象データをＩ／Ｏコントローラー３０へ連続して転送するので、図５のケースよりもさらに転送時間を短縮することができる。
【０１１０】
図７〜図９は、転送元リソース及び転送先リソースがそれぞれＩ／Ｏコントローラー３０及び外部メモリー１１０あり、３２バイト（３２ビット（４バイト）×８）のデータを転送する場合のタイミングチャートである（転送先リソースは内部メモリー１２であってもよい）。図７〜図９において、時刻Ｔ０以前に、転送元アドレスレジスタ２０２にはＩ／Ｏコントローラー３０のＦＩＦＯ３２０のアドレスＲＡ０が設定されている。また、転送先アドレスレジスタ２０４には転送対象の最初のデータが記憶される外部メモリー１１０のアドレスＷＡ０が設定されている。また、転送サイズカウンタ２０６には転送対象のデータサイズである３２バイトが設定されている。また、単位サイズは３２ビット（４バイト）である。
【０１１１】
図７は、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、ＤＭＡコントローラー２０が単位サイズのデータを転送する場合のタイミングチャートの一例を示す図である。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ読み出し転送モードがシングル転送モードに設定されている。また、Ｉ／Ｏコントローラー３０のＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードがシングル転送モードに設定されている。以下、図７のタイミングチャートについて説明する。
【０１１２】
時刻Ｔ０において、ＣＰＵ１０が制御レジスタ２０８の設定を転送禁止から転送許可に変更することによりＤＭＡイネーブル信号２１２（ＤＥ）がアクティブになると、ＤＭＡコントローラー２０は、Ｉ／Ｏコントローラー３０からＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取るまで待機する。
【０１１３】
Ｉ／Ｏコントローラー３０は、時刻Ｔ１において、ＦＩＦＯ３２０に格納されているデータサイズがＤＭＡ制御レジスタ３０２に設定されている閾値（例えば、３２バイト）以上になったため、ＤＭＡコントローラー２０にＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出する。
【０１１４】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取り、時刻Ｔ２〜Ｔ３において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【０１１５】
転送元アドレスレジスタ２０２にはＦＩＦＯ３２０のアドレスＲＡ０が設定されているので、ＤＭＡコントローラー２０は、アドレスＲＡ０をアドレス信号４３（ＨＡＤＤＲ［３１：０］）として内部バス４０に送出する。
【０１１６】
ＤＭＡコントローラー２０は、内部バス４０が未使用の状態であれば、時刻Ｔ２〜Ｔ３において、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、Ｉ／Ｏコントローラー３０のＦＩＦＯ３２０から転送対象データの読み出しを開始する。
【０１１７】
時刻Ｔ４〜Ｔ５において、ＤＭＡコントローラー２０がＤＭＡアクノリッジ信号２２（ＤＡＣＫ）をＩ／Ｏコントローラー３０に送出すると、Ｉ／Ｏコントローラー３０はＤＭＡアクノリッジ信号２２（ＤＡＣＫ）を受け取り、ライト信号４４（ＨＷＲＩＴＥ）が読み出し方向（ハイレベル）であることを認識し、ＦＩＦＯ３２０から最初のデータＤ０を読み出してリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に送出し、ＤＭＡコントローラー２０は、データＤ０をＦＩＦＯ２２０に格納する。
【０１１８】
ＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードがシングル転送モードに設定されているので、Ｉ／Ｏコントローラー３０は、時刻Ｔ５において、ＤＭＡコントローラー２０に次のＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出する。
【０１１９】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取ると、時刻Ｔ６〜Ｔ７において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、ＦＩＦＯ３２０に格納された次のデータＤ１をＦＩＦＯ２２０に読み出す処理を開始する。
【０１２０】
ＤＭＡコントローラー２０が時刻Ｔ８〜Ｔ９においてＤＭＡアクノリッジ信号２２（ＤＡＣＫ）をＩ／Ｏコントローラー３０に送出すると、Ｉ／Ｏコントローラー３０はＤＭＡアクノリッジ信号２２（ＤＡＣＫ）を受け取り、ＦＩＦＯ３２０から次のデータＤ０を読み出してリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に送出する。
【０１２１】
ＤＭＡコントローラー２０は、データＤ１をＦＩＦＯ２２０に格納する。
【０１２２】
以下、同様に、時刻Ｔ９〜Ｔ１０において、データＤ２〜Ｄ７がＩ／Ｏコントローラー３０のＦＩＦＯ３２０からＤＭＡコントローラー２０のＦＩＦＯ２２０に転送される。
【０１２３】
転送先アドレスレジスタ２０４には外部メモリー１１０のアドレスＷＡ０が設定されているので、ＤＭＡコントローラー２０は、時刻Ｔ１１においてアドレスＷＡ０をアドレス信号４３（ＨＡＤＤＲ［３１：０］）として内部バス４０に送出するとともにライト信号４４（ＨＷＲＩＴＥ）を書き込み方向（ハイレベル）にして内部バス４０に送出する。
【０１２４】
時刻Ｔ１２において、ＤＭＡコントローラー２０は、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し、内部バス４０が未使用の状態であれば内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、外部メモリー１１０への転送対象データの書き込みを開始する。
【０１２５】
時刻Ｔ１２〜Ｔ１４において、ＤＭＡコントローラー２０は、外部メモリーに転送対象データをバーストライトするためにバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１２６】
転送先アドレスレジスタ２０４には転送対象の最初のデータが記憶される外部メモリー１１０のアドレスＷＡ０が設定されているので、ＤＭＡコントローラー２０は、時刻Ｔ１２〜Ｔ１５において、アドレスＷＡ０から順にインクリメントしながらアドレスＷＡ０〜ＷＡ７をアドレス信号４３（ＨＡＤＤＲ［３１：０］）として内部バス４０に送出する。
【０１２７】
時刻Ｔ１３〜Ｔ１５において、ＤＭＡコントローラー２０は、データＤ０〜Ｄ７をＦＩＦＯ２２０から読み出してライトデータ４１（ＨＷＤＡＴＡ［３１：０］）４２として内部バス４０に送出し、データＤ０〜Ｄ７が外部メモリーコントローラー１４を介して外部メモリーのアドレスＷＡ０〜ＷＡ７に書き込まれる。
【０１２８】
時刻Ｔ１６〜Ｔ１７において、ＤＭＡコントローラー２０はＤＭＡ終了割り込み信号２４（ＤＭＡＩＮＴ）を発生させ、ＣＰＵ１０は転送処理が終了したことを認識することができる。また、転送処理が終了すると、制御レジスタ２０８の設定が転送許可から転送禁止に自動的に変更され、時刻Ｔ１７において、ＤＭＡイネーブル信号２１２（ＤＥ）が非アクティブになりＤＭＡコントローラー２０が停止する。
【０１２９】
このように、図７のケースでは、制御レジスタ２０８においてＩ／Ｏ読み出し転送モードがシングル転送モードに設定されているので、ＤＭＡコントローラー２０は、Ｄ０〜Ｄ７の各データを転送する毎にＤＭＡアクノリッジ信号２２（ＤＡＣＫ）をＩ／Ｏコントローラー３０に送出し、Ｉ／Ｏコントローラー３０は、ＤＭＡアクノリッジ信号２２（ＤＡＣＫ）を受ける毎に次のＤＭＡリクエスト信号３２（ＤＲＥＱ）をＤＭＡコントローラー２０に送出している。すなわち、ＤＭＡコントローラー２０とＩ／Ｏコントローラー３０は３２ビット（４バイト）のデータ転送毎にハンドシェイク処理をしているので、３２バイト分のデータ転送に時間がかかる。
【０１３０】
図８は、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、ＤＭＡコントローラー２０がバス権を占有せずに単位サイズのデータを複数個連続して転送する場合のタイミングチャートの一例を示す図である。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ読み出し転送モードが連続転送モードに設定されている。また、Ｉ／Ｏコントローラー３０のＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されている。以下、図８のタイミングチャートについて説明する。
【０１３１】
時刻Ｔ０においてＤＭＡイネーブル信号２１２（ＤＥ）がアクティブになり、時刻Ｔ１においてＩ／Ｏコントローラー３０がＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出する。
【０１３２】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取り、時刻Ｔ２〜Ｔ３において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、Ｉ／Ｏコントローラー３０のＦＩＦＯ３２０から転送対象データの読み出しを開始する。
【０１３３】
時刻Ｔ４において、Ｉ／Ｏコントローラー３０はライト信号４４（ＨＷＲＩＴＥ）が読み出し方向（ハイレベル）であることを認識し、ＦＩＦＯ３２０から最初のデータＤ０を読み出してリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に送出し、ＤＭＡコントローラー２０は、データＤ０をＦＩＦＯ２２０に格納する。
【０１３４】
ＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されているので、ＤＭＡコントローラー２０は、Ｉ／Ｏコントローラー３０のＦＩＦＯ３２０に格納された次のデータＤ１をＦＩＦＯ２２０に転送するために、時刻Ｔ５〜Ｔ６において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【０１３５】
時刻Ｔ５〜Ｔ６において、ＤＭＡコントローラー２０は内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得し、時刻Ｔ７において、Ｉ／Ｏコントローラー３０は次のデータＤ１をリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に送出し、ＤＭＡコントローラー２０はデータＤ１をＦＩＦＯ２２０に格納する。
【０１３６】
以下、同様に、時刻Ｔ７〜Ｔ８において、データＤ２〜Ｄ７がＩ／Ｏコントローラー３０のＦＩＦＯ３２０からＤＭＡコントローラー２０のＦＩＦＯ２２０に転送される。
【０１３７】
時刻Ｔ８〜Ｔ１４の処理は、図７における時刻Ｔ１１〜Ｔ１７の処理と同じであるため説明を省略する。
【０１３８】
このように、図８のケースでは、制御レジスタ２０８においてＩ／Ｏ読み出し転送モードが連続転送モードに設定され、かつ、連続転送サイズが３２バイトであるので、ＤＭＡコントローラー２０は、時刻Ｔ１〜Ｔ２においてＤＭＡリクエスト信号３２（ＤＲＥＱ）を１回受け取ると、時刻Ｔ４〜Ｔ２においてＤ０〜Ｄ７の３２バイト分のデータを連続して転送している。また、ＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されているので、Ｉ／Ｏコントローラー３０は、ＤＭＡアクノリッジ信号２２（ＤＡＣＫ）を確認せずにＤ０〜Ｄ７の３２バイト分のデータを順にＦＩＦＯ３２０から読み出すことができる。すなわち、ＤＭＡコントローラー２０とＩ／Ｏコントローラー３０は３２ビット（４バイト）のデータ転送毎にハンドシェイク処理をする必要がないので、図７のケースと比較して３２バイト分のデータ転送にかかる時間を短縮することができる。
【０１３９】
図９は、Ｉ／Ｏコントローラー３０からの１回の転送要求に対して、ＤＭＡコントローラー２０がバス権を占有して単位サイズのデータを複数個連続して転送する場合のタイミングチャートの一例を示す図である。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ読み出し転送モードが連続転送モードに設定され、Ｉ／Ｏコントローラー３０のＤＭＡ制御レジスタ３０２においてＤＭＡ転送モードが連続転送モードに設定されている。以下、図９のタイミングチャートについて説明する。
【０１４０】
時刻Ｔ０においてＤＭＡイネーブル信号２１２（ＤＥ）がアクティブになり、時刻Ｔ１においてＩ／Ｏコントローラー３０がＤＭＡリクエスト信号３２（ＤＲＥＱ）を送出する。
【０１４１】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２（ＤＲＥＱ）を受け取り、時刻Ｔ２において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出する。
【０１４２】
ＤＭＡコントローラー２０は、時刻Ｔ２において、内部バス４０（バスアービター）からバス認可信号４６（ＨＧＲＡＮＴ）を受け取ってバス権を獲得すると、時刻Ｔ２〜Ｔ４において、バス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１４３】
Ｉ／Ｏコントローラー３０は、時刻Ｔ３〜Ｔ５において、データＤ０〜Ｄ７をＦＩＦＯ３２０から連続して読み出してリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に送出し、ＤＭＡコントローラー２０はデータＤ０〜Ｄ７をＦＩＦＯ２２０に格納する。
【０１４４】
時刻Ｔ５〜Ｔ１１の処理は、図７における時刻Ｔ１１〜Ｔ１７以降の処理と同じであるため説明を省略する。
【０１４５】
このように、図９のケースでは、ＤＭＡコントローラー２０がバス権を占有して３２バイト分の転送対象データをＩ／Ｏコントローラー３０から連続して転送するので、図８のケースよりもさらに転送時間を短縮することができる。
【０１４６】
［第１実施形態の効果］
第１実施形態の情報処理装置１によれば、Ｉ／Ｏコントローラー３０からの１回のデータ転送要求に対して、ＤＭＡコントローラー２０が内部バス４０を介してＦＩＦＯ３２０に対して複数のデータの連続転送を行うことにより、ＦＩＦＯ３２０に対するＤＭＡ転送を高速化することができる。
【０１４７】
また、第１実施形態の情報処理装置１によれば、Ｉ／Ｏコントローラー３０からの１回のデータ転送要求に対して連続転送が困難な場合でも、ＣＰＵ１０を介さずにＤＭＡ転送により１回のデータ転送要求毎に１つのデータを転送することができるので、ＣＰＵ１０の負荷を低減することができる。
【０１４８】
このように、第１実施形態の情報処理装置１によれば、１回のデータ転送要求に対して複数のデータを連続転送するか１つのデータを転送するかを、外部デバイス１００の種類やＦＩＦＯ３２０のサイズ等に応じて適切に選択することにより、ＦＩＦＯ３２０に対するＤＭＡ転送速度を最適化することができる。
【０１４９】
また、第１実施形態の情報処理装置１によれば、ＦＩＦＯ３２０に対する連続転送のデータサイズを可変に設定することができるので、ＦＩＦＯ３２０に対するＤＭＡ転送速度をより最適化することができる。
【０１５０】
また、第１実施形態の情報処理装置１によれば、ＦＩＦＯ３２０に対する連続転送の優先度が高い場合は内部バス４０を占有し、優先度が低い場合は内部バス４０を占有しないようにすることができるので、内部バス４０を効率的に使用することができる。
【０１５１】
１−２．第２実施形態
第２実施形態の情報処理装置１の構成はＤＭＡコントローラー２０及びＩ／Ｏコントローラー３０を除いて、第１実施形態と同じであるため、以下、第２実施形態におけるＤＭＡコントローラー２０及びＩ／Ｏコントローラー３０の構成についてのみ説明する。
【０１５２】
図１０及び図１１は、それぞれ第２実施形態におけるＤＭＡコントローラー及びＩ／Ｏコントローラーの構成について説明するための図である。
【０１５３】
第１実施形態では、ＤＭＡコントローラー２０が、１回のＤＭＡリクエスト信号３２を受け取る毎に、Ｉ／Ｏコントローラー３０のＦＩＦＯ３２０に対して、単位サイズのデータの読み出し又は書き込みを行うか連続転送サイズ分のデータの読み出し又は書き込みを連続して行うかは、制御レジスタ２０２及びＤＭＡ制御レジスタ３０２に設定されるモード（シングル転送モード又は連続転送モード）に従って選択される。
【０１５４】
これに対して、第２実施形態では、図１０及び図１１に示すように、Ｉ／Ｏコントローラー２０は、単位サイズのデータの転送を要求する場合はＤＭＡリクエスト信号３４を送出し、連続転送サイズ分のデータの連続転送を要求する場合はＤＭＡリクエスト信号３６を送出する。
【０１５５】
ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３４を受け取ると、Ｉ／Ｏコントローラー２０にＤＭＡアクノリッジ信号２２を送出してＦＩＦＯ３２０に対して１つのデータの読み出し又は書き込みを行い、ＤＭＡリクエスト信号３６を受け取ると、Ｉ／Ｏコントローラー２０にＤＭＡアクノリッジ信号２２を送出してＦＩＦＯ３２０に対して連続転送サイズ分のデータの読み出し又は書き込みを連続して行う。
【０１５６】
そして、Ｉ／Ｏコントローラー２０は、転送元リソースになる場合はＦＩＦＯ３２０に格納されているデータサイズが連続転送サイズ以上であるか否かを判断し、転送先リソースになる場合はＦＩＦＯ３２０の空き領域のサイズが連続転送サイズ以上であるか否かを判断し、連続転送サイズ以上であればＤＭＡリクエスト信号３６を送出し、連続転送サイズよりも小さければＤＭＡリクエスト信号３４を送出する。ただし、Ｉ／Ｏコントローラー２０は、ＦＩＦＯ３２０に格納されているデータサイズ又はＦＩＦＯ３２０の空き領域のサイズが単位サイズよりも小さい場合は単位サイズになるまで待ってからＤＭＡリクエスト信号３４を送出する。
【０１５７】
すなわち、第２実施形態では、Ｉ／Ｏコントローラー２０がＦＩＦＯ３２０の状態に基づいて連続転送が可能か否かを判断するので、第１実施形態では必要であったモード設定が不要になる。
【０１５８】
さらに、第１実施形態では、連続転送モードでは、ＦＩＦＯ３２０に格納されているデータサイズ又はＦＩＦＯ３２０の空き領域のサイズが閾値以上になるまでデータ転送が待たされるため、ＦＩＦＯ３２０の状態によってはデータ転送時間が長くなるが、第２実施形態では、ＦＩＦＯ３２０の状態に応じてより適切な転送方式が選択されるのでデータ転送時間を最適化することができる。
【０１５９】
第２実施形態におけるＤＭＡコントローラー２０及びＩ／Ｏコントローラー３０のその他の構成は第１実施形態と同様であるため、説明を省略する。
【０１６０】
図１２〜図１５に、第２実施形態の情報処理装置におけるデータ転送のタイミングチャートの一例を示す。
【０１６１】
図１２及び図１３は、転送元リソース及び転送先リソースがそれぞれ外部メモリー１１０及びＩ／Ｏコントローラー３０であり、３２バイト（３２ビット（４バイト）×８）のデータを転送する場合のタイミングチャートである（転送元リソースは内部メモリー１２であってもよい）。図１２及び図１３において、時刻Ｔ０以前に、転送元アドレスレジスタ２０２には転送対象の最初のデータが記憶されている外部メモリー１１０のアドレスＲＡ０が設定されている。また、転送先アドレスレジスタ２０４にはＩ／Ｏコントローラー３０のＦＩＦＯ３２０のアドレスＷＡ０が設定されている。また、転送サイズカウンタ２０６には転送対象のデータサイズである３２バイトが設定されている。また、単位サイズは３２ビット（４バイト）である。
【０１６２】
図１２は、ＤＭＡコントローラー２０が、ＤＭＡリクエスト信号３４（ＤＲＥＱ１）に対して単位サイズのデータを転送する場合のタイミングチャートの一例を示す図である。図１２では、ＦＩＦＯ３２０に格納されているデータサイズが連続転送サイズよりも小さいため、ＤＭＡリクエスト信号３４（ＤＲＥＱ１）が発生し、ＤＭＡリクエスト信号３６（ＤＲＥＱ２）は発生していない。その他の信号波形は図４と同じであるので、説明を省略する。
【０１６３】
図１３は、ＤＭＡコントローラー２０が、ＤＭＡリクエスト信号３６（ＤＲＥＱ２）に対して連続転送サイズ分のデータを連続転送する場合のタイミングチャートの一例を示す図である。図１３では、ＦＩＦＯ３２０に格納されているデータサイズが連続転送サイズ以上であるため、ＤＭＡリクエスト信号３６（ＤＲＥＱ２）が発生し、ＤＭＡリクエスト信号３４（ＤＲＥＱ１）は発生していない。その他の信号波形は図５と同じであるので、説明を省略する。
【０１６４】
図１４及び図１５は、転送元リソース及び転送先リソースがそれぞれＩ／Ｏコントローラー３０及び外部メモリー１１０あり、３２バイト（３２ビット（４バイト）×８）のデータを転送する場合のタイミングチャートである（転送先リソースは内部メモリー１２であってもよい）。図１４及び図１５において、時刻Ｔ０以前に、転送元アドレスレジスタ２０２にはＩ／Ｏコントローラー３０のＦＩＦＯ３２０のアドレスＲＡ０が設定されている。また、転送先アドレスレジスタ２０４には転送対象の最初のデータが記憶される外部メモリー１１０のアドレスＷＡ０が設定されている。また、転送サイズカウンタ２０６には転送対象のデータサイズである３２バイトが設定されている。また、単位サイズは３２ビット（４バイト）である。
【０１６５】
図１４は、ＤＭＡコントローラー２０が、ＤＭＡリクエスト信号３４（ＤＲＥＱ１）に対して単位サイズのデータを転送する場合のタイミングチャートの一例を示す図である。図１４では、ＦＩＦＯ３２０の空き領域のサイズが連続転送サイズよりも小さいため、ＤＭＡリクエスト信号３４（ＤＲＥＱ１）が発生し、ＤＭＡリクエスト信号３６（ＤＲＥＱ２）は発生していない。その他の信号波形は図７と同じであるので、説明を省略する。
【０１６６】
図１５は、ＤＭＡコントローラー２０が、ＤＭＡリクエスト信号３６（ＤＲＥＱ２）に対して連続転送サイズ分のデータを連続転送する場合のタイミングチャートの一例を示す図である。図１５では、ＦＩＦＯ３２０の空き領域のサイズが連続転送サイズ以上であるため、ＤＭＡリクエスト信号３６（ＤＲＥＱ２）が発生し、ＤＭＡリクエスト信号３４（ＤＲＥＱ１）は発生していない。その他の信号波形は図８と同じであるので、説明を省略する。
【０１６７】
［第２実施形態の効果］
第２実施形態によれば、第１実施形態と同様の効果に加えて、以下の効果を奏する。
【０１６８】
すなわち、第２実施形態の情報処理装置１によれば、Ｉ／Ｏコントローラー３０が、ＦＩＦＯ３２０の状態に基づいて、ＦＩＦＯ３２０に対する連続転送が可能か否かを判断するので、ＦＩＦＯ３２０に対するＤＭＡ転送をより効率的に行うことができる。
【０１６９】
１−３．第３実施形態
図１６は、第３実施形態の情報処理装置の構成について説明するための図である。
【０１７０】
第１実施形態では、内部バス４０に１つのＩ／Ｏコントローラー３０が接続されているが、第３実施形態では、内部バス４０に２つのＩ／Ｏコントローラー３０ａ及び３０ｂが接続されている。Ｉ／Ｏコントローラー３０ａ及び３０ｂは、ＳＤメモリーカードやＣＦメモリーカード、ＵＳＢデバイス、ＰＣ等の外部デバイス１００ａ及び１００ｂとそれぞれ接続されており、外部デバイス１００ａ及び１００ｂに対するアクセスをそれぞれ制御する。
【０１７１】
第３実施形態におけるＤＭＡコントローラー２０は、内部バス４０を介して、内部メモリー１２、外部メモリー１１０、Ｉ／Ｏコントローラー３０ａ及び３０ｂの任意の２つのリソース間のデータ転送を制御する。すなわち、第３実施形態の情報処理装置１では、ＤＭＡコントローラー２０により、Ｉ／Ｏコントローラー３０ａと３０ｂの間で内部バス４０を介してデータ転送を行うことができる。
【０１７２】
Ｉ／Ｏコントローラー３０ａ及び３０ｂの構成は、図３に示したＩ／Ｏコントローラー３０の構成と同様であるため、説明を省略する。また、第３実施形態におけるＩ／Ｏコントローラー３０ａ及び３０ｂ以外の他の構成は第１実施形態と同様であるため、説明を省略する。
【０１７３】
図１７及び図１８に、第３実施形態の情報処理装置におけるＩ／Ｏコントローラー３０ａと３０ｂの間で３２バイト（３２ビット（４バイト）×８）のデータを転送する時のタイミングチャートの一例を示す。図１７及び図１８において、Ｉ／Ｏコントローラー３０ａ又は３０ｂからの１回の転送要求に対して、ＤＭＡコントローラー２０がバス権を占有して単位サイズのデータを複数個連続して転送する。すなわち、ＤＭＡコントローラー２０の制御レジスタ２０８においてＩ／Ｏ読み出し転送モード及びＩ／Ｏ書き込み転送モードがともに連続転送モードに設定され、Ｉ／Ｏコントローラー３０ａ及び３０ｂにおいてＤＭＡ転送モードが連続転送モードに設定されている。また、外部デバイス１００ａ及び１００ｂのビット幅はそれぞれ３２ビット及び１６ビットであり、そのため、Ｉ／Ｏコントローラー３０ａ及び３０ｂに対するデータ転送の単位サイズはそれぞれ３２ビット（４バイト）及び１６ビット（２バイト）であるものとする。さらに、Ｉ／Ｏコントローラー３０ａ及び３０ｂに対するデータ転送の連続転送サイズはそれぞれ３２バイト及び１６バイトであるものとする。すなわち、ＤＭＡコントローラー２０は、Ｉ／Ｏコントローラー３０ａからのＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）に対しては３２バイト分のデータを連続転送し、Ｉ／Ｏコントローラー３０ｂからのＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）に対しては１６バイト分のデータを連続転送する。
【０１７４】
図１７は、転送元リソース及び転送先リソースがそれぞれＩ／Ｏコントローラー３０ａ及びＩ／Ｏコントローラー３０ｂである場合のタイミングチャートである。図１７において、時刻Ｔ０以前に、転送元アドレスレジスタ２０２にはＩ／Ｏコントローラー３０ａのＦＩＦＯ３２０のアドレスＲＡ０が設定されている。また、転送先アドレスレジスタ２０４にはＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０のアドレスＷＡ０が設定されている。また、転送サイズカウンタ２０６には転送対象のデータサイズである３２バイトが設定されている。以下、図１７のタイミングチャートについて説明する。
【０１７５】
時刻Ｔ０においてＤＭＡイネーブル信号２１２（ＤＥ）がアクティブになり、時刻Ｔ１においてＩ／Ｏコントローラー３０ａがＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）を送出すると、ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）を受け取り、時刻Ｔ２〜Ｔ４において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１７６】
時刻Ｔ３〜Ｔ５において、ＤＭＡコントローラー２０がＤＭＡアクノリッジ信号２２ａ（ＤＡＣＫ）を送出すると、Ｉ／Ｏコントローラー３０ａは、３２ビットデータＤ０〜Ｄ７をＦＩＦＯ３２０から連続して読み出してリードデータ４２（ＨＲＤＡＴＡ［３１：０］）として内部バス４０に送出し、ＤＭＡコントローラー２０は３２ビットデータＤ０〜Ｄ７をＦＩＦＯ２２０に格納する。
【０１７７】
時刻Ｔ６においてＩ／Ｏコントローラー３０ｂがＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）を送出すると、ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）を受け取り、時刻Ｔ７〜Ｔ１４において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１７８】
ＤＭＡコントローラー２０は、３２ビットデータＤ０をＦＩＦＯ２２０から読み出し、時刻Ｔ８〜Ｔ９と時刻Ｔ９〜Ｔ１０において、それぞれ３２ビットデータＤ０の上位１６ビットデータＤ０Ｈ及び下位１６ビットデータＤ０Ｌをライトデータ４１（ＨＷＤＡＴＡ［１５：０］）として内部バス４０に送出する。
【０１７９】
以下、同様に、時刻Ｔ１０〜Ｔ１１において、３２ビットデータＤ１〜Ｄ３がそれぞれ上位１６ビットデータＤ１Ｈ〜Ｄ３Ｈと下位１６ビットデータＤ１Ｌ〜Ｄ３Ｌに分けられてＤＭＡコントローラー２０のＦＩＦＯ２２０からＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０に転送される。
【０１８０】
ここで、Ｉ／Ｏコントローラー３０ｂに対する連続転送サイズは１６バイトであるので、１回のＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）に対して、時刻Ｔ８〜Ｔ１１において、１６バイト分のデータＤ０〜Ｄ３が転送されている。
【０１８１】
転送対象のデータサイズは３２バイトであるので、Ｉ／Ｏコントローラー３０ｂは残りの１６バイト分のデータＤ４〜Ｄ７の転送を要求するために、時刻Ｔ１２において、２回目のＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）を送出する。
【０１８２】
そして、時刻Ｔ１３〜Ｔ１５において、３２ビットデータＤ４〜Ｄ７がそれぞれ上位１６ビットデータＤ４Ｈ〜Ｄ７Ｈと下位１６ビットデータＤ４Ｌ〜Ｄ７Ｌに分けられてＤＭＡコントローラー２０のＦＩＦＯ２２０からＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０に転送される。
【０１８３】
時刻Ｔ１６〜Ｔ１７において、ＤＭＡコントローラー２０はＤＭＡ終了割り込み信号２４（ＤＭＡＩＮＴ）を発生させ、ＣＰＵ１０は転送処理が終了したことを認識することができる。また、転送処理が終了すると、制御レジスタ２０８の設定が転送許可から転送禁止に自動的に変更され、時刻Ｔ１７において、ＤＭＡイネーブル信号２１２（ＤＥ）が非アクティブになりＤＭＡコントローラー２０が停止する。
【０１８４】
このように、図１７のケースでは、Ｉ／Ｏコントローラー３０ａに対するデータ転送の連続転送サイズは３２バイトであり、転送対象のデータサイズ（３２バイト）と同じであるため、１回のＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）によって、Ｉ／Ｏコントローラー３０ａのＦＩＦＯ３２０からＤＭＡコントローラーのＦＩＦＯ２２０に３２バイト分のデータが連続転送されている。一方、Ｉ／Ｏコントローラー３０ｂに対するデータ転送の連続転送サイズは１６バイトであり、転送対象のデータサイズ（３２バイト）よりも小さいため、２回のＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）によって、ＤＭＡコントローラーのＦＩＦＯ２２０からＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０に３２バイト分のデータが１６バイトずつ連続転送されている。従って、例えば、Ｉ／Ｏコントローラー３０ｂのＦＩＦＯ３２０のサイズが転送対象データのサイズよりも小さいような場合でも、ＤＭＡコントローラー２０は、複数回に分けて連続転送するので、転送対象のすべてのデータをできるだけ短い時間で確実に転送することができる。
【０１８５】
図１８は、転送元リソース及び転送先リソースがそれぞれＩ／Ｏコントローラー３０ｂ及びＩ／Ｏコントローラー３０ａである場合のタイミングチャートである。図１８において、時刻Ｔ０以前に、転送元アドレスレジスタ２０２にはＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０のアドレスＲＡ０が設定されている。また、転送先アドレスレジスタ２０４にはＩ／Ｏコントローラー３０ａのＦＩＦＯ３２０のアドレスＷＡ０が設定されている。また、転送サイズカウンタ２０６には転送対象のデータサイズである３２バイトが設定されている。以下、図１８のタイミングチャートについて説明する。
【０１８６】
時刻Ｔ０においてＤＭＡイネーブル信号２１２（ＤＥ）がアクティブになり、時刻Ｔ１においてＩ／Ｏコントローラー３０ｂがＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）を送出すると、ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）を受け取り、時刻Ｔ２〜Ｔ９において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１８７】
時刻Ｔ３〜Ｔ６において、ＤＭＡコントローラー２０がＤＭＡアクノリッジ信号２２ｂ（ＤＡＣＫ）を送出すると、Ｉ／Ｏコントローラー３０ｂは、時刻Ｔ３〜Ｔ４と時刻Ｔ４〜Ｔ５において、それぞれ１６ビットデータＤ０Ｈ及びＤ０ＨをＦＩＦＯ３２０から連続して読み出してリードデータ４２（ＨＲＤＡＴＡ［１５：０］）として内部バス４０に送出し、ＤＭＡコントローラー２０は、１６ビットデータＤ０Ｈ及びＤ０Ｈをそれぞれ上位１６ビット及び下位１６ビットとする３２ビットデータＤ０をＦＩＦＯ２２０に格納する。
【０１８８】
以下、同様に、時刻Ｔ５〜Ｔ６において、３２ビットデータＤ１〜Ｄ３の各上位１６ビットデータＤ１Ｈ〜Ｄ３Ｈと各下位１６ビットデータＤ１Ｌ〜Ｄ３ＬがＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０からＤＭＡコントローラー２０に転送され、データＤ１〜Ｄ３がＦＩＦＯ２２０に格納される。
【０１８９】
ここで、Ｉ／Ｏコントローラー３０ｂに対する連続転送サイズは１６バイトであるので、１回のＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）に対して、時刻Ｔ３〜Ｔ６において、１６バイト分のデータＤ０〜Ｄ３が転送されている。
【０１９０】
転送対象のデータサイズは３２バイトであるので、Ｉ／Ｏコントローラー３０ｂは残りの１６バイト分のデータＤ４〜Ｄ７の転送を要求するために、時刻Ｔ７において、２回目のＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）を送出する。
【０１９１】
そして、時刻Ｔ８〜Ｔ１０において、３２ビットデータＤ４〜Ｄ７の各上位１６ビットデータＤ４Ｈ〜Ｄ７Ｈと各下位１６ビットデータＤ４Ｌ〜Ｄ７ＬがＩ／Ｏコントローラー３０ｂのＦＩＦＯ３２０からＤＭＡコントローラー２０に転送され、データＤ４〜Ｄ７がＦＩＦＯ２２０に格納される。
【０１９２】
時刻Ｔ１１においてＩ／Ｏコントローラー３０ａがＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）を送出すると、ＤＭＡコントローラー２０は、ＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）を受け取り、時刻Ｔ１２〜Ｔ１４において、内部バス４０（バスアービター）に対してバス要求信号４５（ＨＢＵＳＲＥＱ）を送出し続けてバス権を占有する。
【０１９３】
そして、時刻Ｔ１３〜Ｔ１５において、ＤＭＡコントローラー２０はデータＤ０〜Ｄ７をＦＩＦＯ２２０から連続して読み出してライトデータ４１（ＨＷＤＡＴＡ［３１：０］）として内部バス４０に送出し、Ｉ／Ｏコントローラー３０ａはデータＤ０〜Ｄ７をＦＩＦＯ３２０に格納する。
【０１９４】
時刻Ｔ１６〜Ｔ１７の処理は、図４における時刻Ｔ１６〜Ｔ１７の処理と同じであるため説明を省略する。
【０１９５】
このように、図１８のケースでは、Ｉ／Ｏコントローラー３０ａに対するデータ転送の連続転送サイズは３２バイトであり、転送対象のデータサイズ（３２バイト）と同じであるため、１回のＤＭＡリクエスト信号３２ａ（ＤＲＥＱ）によって、ＤＭＡコントローラーのＦＩＦＯ２２０からＩ／Ｏコントローラー３０ａのＦＩＦＯ３２０に３２バイト分のデータが連続転送されている。一方、Ｉ／Ｏコントローラー３０ｂに対するデータ転送の連続転送サイズは１６バイトであり、転送対象のデータサイズ（３２バイト）よりも小さいため、２回のＤＭＡリクエスト信号３２ｂ（ＤＲＥＱ）によって、Ｉ／Ｏコントローラー３０ｂのＦＩＦＯ３２０からＤＭＡコントローラーのＦＩＦＯ２２０に３２バイト分のデータが１６バイトずつ連続転送されている。従って、例えば、Ｉ／Ｏコントローラー３０ｂのＦＩＦＯ３２０のサイズが転送対象データのサイズよりも小さいような場合でも、ＤＭＡコントローラー２０は、複数回に分けて連続転送するので、転送対象のすべてのデータをできるだけ短い時間で確実に転送することができる。
【０１９６】
［第３実施形態の効果］
第３実施形態によれば、第１実施形態と同様の効果に加えて、以下の効果を奏する。
【０１９７】
すなわち、第３実施形態の情報処理装置１によれば、外部メモリー１１０（又は内部メモリー）とＩ／Ｏコントローラー３０ａ又は３０ｂの間でＤＭＡ転送が可能であるだけでなく、Ｉ／Ｏコントローラー３０ａと３０ｂの間でもＤＭＡ転送が可能である。
【０１９８】
また、第３実施形態の情報処理装置１によれば、Ｉ／Ｏコントローラー３０ａと３０ｂの間のＤＭＡ転送においても、１回のデータ転送要求に対して複数のデータを連続転送するか１つのデータを転送するかを選択することができるので、ＤＭＡ転送速度を最適化することができる。
【０１９９】
２．画像データ記録システム
図１９は、本実施形態の画像データ記録システムの構成について説明するための図である。
【０２００】
画像データ記録システム７００は、情報処理装置５００、２次記憶装置６００、１次記憶装置６１０、カメラモジュール６２０、センサー６３０を含んで構成されている。
【０２０１】
情報処理装置５００は、ＣＰＵ５１０、ＲＡＭ（Random Access Memory）５１２、外部メモリーコントローラー５１４、ＲＯＭ（Read Only Memory）５１６、ＤＭＡコントローラー５２０、Ｉ／Ｏコントローラー５３０、Ｉ／Ｏコントローラー５３２、内部バス５４０、カメラインターフェース回路５５０、画像処理回路５６０、センサーインターフェース回路５７０を含んで構成されている。
【０２０２】
情報処理装置５００は、ＳＤＲＡＭ等の１次記憶装置６１０と接続可能であり、外部メモリーコントローラー５１４を介して１次記憶装置６１０に対してデータ転送を行うことができる。
【０２０３】
また、情報処理装置５００は、ＳＤメモリーカードやＣＦメモリーカード等の２次記憶装置６００と接続可能であり、Ｉ／Ｏコントローラー５３０を介して２次記憶装置６１０に対してデータ転送を行うことができる。
【０２０４】
また、情報処理装置５００は、ＰＣやＵＳＢデバイス等の外部デバイス６０２と接続可能であり、Ｉ／Ｏコントローラー５３２を介して外部デバイス６０２に対してデータ転送を行うことができる。
【０２０５】
カメラモジュール６２０が撮影した画像データは、カメラインターフェース回路５５０を介して画像処理回路５６０に送られる。
【０２０６】
画像処理回路５６０は、カメラインターフェース回路５５０を介して受け取った画像データに対してリサイズ（切り取り）、ＪＰＥＧ（Joint Photographic Experts Group）圧縮等の画像処理を行い、記録用フォーマットの画像データを生成する。
【０２０７】
画像処理回路５６０が生成した記録用フォーマットの画像データは、ＤＭＡコントローラー５３０により、外部メモリーコントローラー５１４を介して１次記憶装置６１０に順次転送され、１次記憶装置６１０に格納される。
【０２０８】
ＣＰＵ５１０は、ＲＯＭ５１６に格納されているプログラムを読み出し、ＲＡＭ５１２を作業領域として、各種のデータ処理や割り込み処理等の情報処理を行う。
【０２０９】
また、ＣＰＵ５１０は、センサーインターフェース回路５７０を介してセンサー６３０の検出信号を受け取り、所定のイベントが発生したか否かを判断する。
【０２１０】
そして、ＣＰＵ５１０は所定のイベントが発生したと判断した場合は、１次記憶装置６１０に格納されている画像データを２次記憶装置６００に転送して記録する処理を行う。具体的には、ＣＰＵ５１０がＤＭＡコントローラー５３０に画像データの転送を指示し、ＤＭＡコントローラー５３０が内部バス４０を介して１次記憶装置６１０からＩ／Ｏコントローラー５３０のＦＩＦＯに所定の画像データをＤＭＡ転送し、Ｉ／Ｏコントローラー５３０がＦＩＦＯに書き込まれた画像データを順次２次記憶装置に記録する。
【０２１１】
また、ＤＭＡコントローラー５３０は、内部バス４０を介して１次記憶装置６１０やＩ／Ｏコントローラー５３０のＦＩＦＯからＩ／Ｏコントローラー５３２のＦＩＦＯに画像データをＤＭＡ転送することができる。Ｉ／Ｏコントローラー５３２は、ＦＩＦＯに書き込まれた画像データを順次外部デバイス６０２に転送する。
【０２１２】
例えば、外部デバイス６０２としてディスプレイを接続すれば、１次記憶装置６１０や２次記憶装置６００に記録されている画像データをディスプレイに表示させることができる。また、外部デバイス６０２としてＰＣを接続すれば、１次記憶装置６１０や２次記憶装置６００に記録されている画像データをＰＣ上で詳細に解析することができる。
【０２１３】
画像データシステム７００をドライブレコーダーとして機能させる場合、カメラモジュール６２０は車体前方に設置されて前方の画像を一定の時間間隔で撮影し、一定時間（たとえば３０秒間）の画像データが１次記憶装置６１０に繰り返し記録される。センサー６３０は車体に加わった衝撃を検出し、ＣＰＵ５１０は、センサー６３０の検出信号のレベルが閾値以上であれば事故が発生したと判断する。そして、事故が発生した時は、１次記憶装置６１０に記録された一定期間（例えば、事故発生前の１５秒間と事故発生後の１５秒間）の画像データが２次記憶装置６００に転送されて記録される。
【０２１４】
本実施形態の情報処理装置１を情報処理装置５００として画像データ記録システム７００に組み込むことにより、１次記憶装置６１０から２次記憶装置６００への画像データの転送時間や１次記憶装置６１０又は２次記憶装置６００から外部デバイス６０２への画像データの転送時間を短縮することができる。従って、より確実に画像データを保存することができるとともに、画像データの解析時間も短縮することができる。
【０２１５】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０２１６】
例えば、第１実施形態の情報処理装置１では、ＣＰＵ１０、内部メモリー１２、外部メモリーコントローラー１４、ＤＭＡコントローラー２０、Ｉ／Ｏコントローラー３０が内部バス４０に接続されているが、これに限られない。例えば、ＣＰＵ１０と内蔵メモリー１２が第１の内部バスに接続され、ＤＭＡコントローラー２０が第２の内部バスに接続され、外部メモリーコントローラー１４及びＩ／Ｏコントローラー３０がバス選択回路を介して第１の内部バス及び第２の内部バスのいずれかに接続できるように構成してもよい。
【０２１７】
また、本実施形態のデータ記録システム７００では、ＤＭＡコントローラーが１つしかないが、複数個設けてもよい。例えば、画像処理回路５６０から外部メモリーコントローラー５１４への画像データの転送制御を専用に行うＤＭＡコントローラーとその他のデータ転送を制御するＤＭＡコントローラーをそれぞれ別個に設けるようにしてもよい。
【０２１８】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【図面の簡単な説明】
【０２１９】
【図１】第１実施形態の情報処理装置の構成について説明するための図。
【図２】第１実施形態におけるＤＭＡコントローラーの構成について説明するための図。
【図３】第１実施形態におけるＩ／Ｏコントローラーの構成について説明するための図。
【図４】第１実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図５】第１実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図６】第１実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図７】第１実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図８】第１実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図９】第１実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１０】第２実施形態におけるＤＭＡコントローラーの構成について説明するための図。
【図１１】第２実施形態におけるＩ／Ｏコントローラーの構成について説明するための図。
【図１２】第２実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１３】第２実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１４】第２実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１５】第２実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１６】第３実施形態の情報処理装置の構成について説明するための図。
【図１７】第３実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１８】第３実施形態におけるデータ転送のタイミングチャートの一例を示す図。
【図１９】本実施形態の画像データ記録システムの構成について説明するための図。
【符号の説明】
【０２２０】
１  情報処理装置、１０  ＣＰＵ、１２  内部メモリー、１４  外部メモリーコントローラー、２０  ＤＭＡコントローラー、２２  ＤＭＡアクノリッジ信号、２４  ＤＭＡ終了割り込み信号、３０  Ｉ／Ｏコントローラー、３０ａ  Ｉ／Ｏコントローラー、３０ｂ  Ｉ／Ｏコントローラー、３２  ＤＭＡリクエスト信号、３４  ＤＭＡリクエスト信号、３６  ＤＭＡリクエスト信号、４０  内部バス、４１  ライトデータ、４２  リードデータ、４３  アドレス信号、４４  ライト信号、４５  バス要求信号、４６  バス認可信号、
１００  外部デバイス、１００ａ  外部デバイス、１００ｂ  外部デバイス、１１０  外部メモリー、２００  レジスタ部、２０２  転送元アドレスレジスタ、２０４  転送先アドレスレジスタ、２０６  転送サイズカウンタ、２０８  制御レジスタ、２１０  制御部、２１２  ＤＭＡイネーブル信号、２２０  ＦＩＦＯ、２３０  バスマスターインターフェース部、３００  レジスタ部、３０２  ＤＭＡ制御レジスタ、３０４  Ｉ／Ｏ制御レジスタ、３１０  ＤＭＡ制御部、３１２  転送モード信号、３２０  ＦＩＦＯ、３３０  バススレーブインターフェース部、３４０  Ｉ／Ｏインターフェース部、５００  情報処理装置、５１０  ＣＰＵ、５１２  ＲＡＭ、５１４  外部メモリーコントローラー、５１６  ＲＯＭ、５２０  ＤＭＡコントローラー、５３０  Ｉ／Ｏコントローラー、５３２  Ｉ／Ｏコントローラー、５４０  内部バス、５５０  カメラインターフェース回路、５６０  画像処理回路、５７０  センサーインターフェース回路、６００  ２次記憶装置、６０２  外部デバイス、６１０  １次記憶装置、６２０  カメラモジュール、６３０  センサー、７００  画像データ記録システム
【図１】
2010152604.tif 000003
【図２】
2010152604.tif 000004
【図３】
2010152604.tif 000005
【図４】
2010152604.tif 000006
【図５】
2010152604.tif 000007
【図６】
2010152604.tif 000008
【図７】
2010152604.tif 000009
【図８】
2010152604.tif 000010
【図９】
2010152604.tif 000011
【図１０】
2010152604.tif 000012
【図１１】
2010152604.tif 000013
【図１２】
2010152604.tif 000014
【図１３】
2010152604.tif 000015
【図１４】
2010152604.tif 000016
【図１５】
2010152604.tif 000017
【図１６】
2010152604.tif 000018
【図１７】
2010152604.tif 000019
【図１８】
2010152604.tif 000020
【図１９】
2010152604.tif 000021