(57)【要約】【課題】ＤＭＡ転送の際、データ転送頻度の少ないクライアントによるチャネルの消費量を抑圧する。【解決手段】ＤＭＡモジュール８はフレーム単位のデータを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行う。中継器１０はクライアントおよびＤＭＡモジュールに接続され、クライアントの各々から送信されたデータを一時的に格納するバッファに独立に領域を確保して、クライアントの各々から送信されたデータを、バッファに一時格納するととともに、バッファに係る処理単位を満たしたクライアントのデータについてＤＭＡモジュールに対して所定のデータ量の転送要求を送信する。【選択図】図１
2014154000.tif 000002
【特許請求の範囲】
【請求項１】
フレーム単位のデータを複数のクライアントからそれぞれ受けて当該データを処理する際、前記データを一時的にメモリに記憶するため前記メモリにＤＭＡ転送するためのメモリ制御装置であって、
前記データを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行うＤＭＡ転送手段と、
前記クライアントおよび前記ＤＭＡ転送手段に接続され、前記クライアントの各々から送信されたデータを一時的に格納するバッファ手段を備え、前記クライアントの各々から送信されたデータを、独立に領域を確保した前記バッファ手段に一時格納するととともに、前記バッファ手段に係る処理単位を満たしたクライアントのデータについて前記ＤＭＡ転送手段に対して所定のデータ量の転送要求を送信する中継手段と、
を有することを特徴とするメモリ制御装置。
【請求項２】
前記所定のデータ量は、前記二次元ＤＭＡ転送における二次元データを垂直方向に複数のブロックに分割したブロック単位であることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記中継手段には、前記バッファ手段の処理単位を満たしたクライアントのデータを前記ＤＭＡ手段に転送する都度、当該クライアントの属性を示す属性情報を記録するレジスタ手段が備えられていることを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記中継手段は、前記バッファ手段の処理単位を満たしたクライアントのデータを前記ＤＭＡ転送手段に転送する都度、当該クライアントの属性を示す属性情報を前記ＤＭＡ転送手段に転送するデータに添付することを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項５】
前記中継手段は、前記属性情報を前記ＤＭＡ転送手段に転送するデータの先頭に添付することを特徴とする請求項４に記載のメモリ制御装置。
【請求項６】
前記中継手段は、所定の割り込み信号を受けると、前記バッファ手段に一時的に格納されたデータをＤＭＡ転送手段に転送することを特徴とする請求項１〜５のいずれか１項に記載のメモリ制御装置。
【請求項７】
前記所定のデータ量は、前記二次元ＤＭＡ転送における二次元データを水平方向に複数のブロックに分割したブロック単位であって、当該ブロック単位を前記ＤＭＡ転送手段に対するデータ転送単位とすることを特徴とする請求項１に記載のメモリ制御装置。
【請求項８】
前記中継手段は、前記ＤＭＡ転送単位に前記クライアントの各々について前記バッファ手段に蓄積されたデータを順に読み出して配列することを特徴とする請求項７に記載のメモリ制御装置。
【請求項９】
前記中継手段に備えられたバッファ手段は複数のバッファの集合からなり、
前記中継手段は前記クライアントの各々に対して少なくとも１つのバッファを割り当てることを特徴とする請求項７に記載のメモリ制御装置。
【請求項１０】
前記中継手段は、前記バッファ手段における複数の領域を、前記ＤＭＡ転送手段にデータを転送するデータ転送の対象であるクライアントに対して割り当てることを特徴とする請求項７に記載のメモリ転送装置。
【請求項１１】
前記クライアントの各々について前記バッファ手段のデータの受信量を管理する管理手段と、
前記受信量を示すバッファサイズを指定する指定手段とを有し、
前記管理手段によって前記バッファサイズが示す受信量に対応するデータが前記バッファ手段に蓄積されたとされると、前記中継手段は当該クライアントに係るデータのＤＭＡ転送開始要求を前記ＤＭＡ転送手段に送ることを特徴とする請求項７に記載のメモリ制御装置。
【請求項１２】
前記中継手段は前記データ転送単位が満たされないと前記データ転送単位が満たされるまで所定のダミーデータを送出することを特徴とする請求項７に記載のメモリ制御装置。
【請求項１３】
フレーム単位のデータを複数のクライアントからそれぞれ受けて当該データを処理する際、前記データを一時的にメモリに記憶するため前記メモリにＤＭＡ転送するためのメモリ制御装置の制御方法であって、
前記データを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行うＤＭＡ転送ステップと、
前記クライアントの各々から送信されたデータを一時的に格納するバッファに独立に領域を確保して、前記クライアントの各々から送信されたデータを、前記バッファに一時格納すると格納ステップと、
前記バッファに係る処理単位を満たしたクライアントのデータについて前記ＤＭＡ転送ステップに所定のデータ量の転送要求を送信する中継ステップと、
を有することを特徴とする制御方法。
【請求項１４】
フレーム単位のデータを複数のクライアントからそれぞれ受けて当該データを処理する際、前記データを一時的にメモリに記憶するため前記メモリにＤＭＡ転送するためのメモリ制御装置の制御プログラムであって、
前記メモリ制御装置が備えるコンピュータに、
前記データを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行うＤＭＡ転送ステップと、
前記クライアントの各々から送信されたデータを一時的に格納するバッファに独立に領域を確保して、前記クライアントの各々から送信されたデータを、前記バッファに一時格納すると格納ステップと、
前記バッファに係る処理単位を満たしたクライアントのデータについて前記ＤＭＡ転送ステップに所定のデータ量の転送要求を送信する中継ステップと、
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに対するデータの書き込みおよび読み出しを行うメモリ制御装置、その制御方法、および制御プログラムに関し、特に、メモリに画像データを一時的に記憶しつつ画像処理を実行する画像処理装置で用いられるメモリ制御装置に関する。
【背景技術】
【０００２】
一般に、フレーム単位又はフィールド単位で画像データを処理する画像処理装置の１つとして所謂デジタルスチルカメラがある。デジタルスチルカメラにおいては各種の画像処理が行われるが、近年、取り扱う画像データのデータ量が増大しており、高速に読み書き可能で大容量のメモリを用いて各種の処理が行われている。一般に、画像処理のためのメモリとしてＤＲＡＭなどの揮発性メモリが用いられる。
【０００３】
ＤＲＡＭなどの揮発性メモリは画像データの記憶の他、ＣＰＵなどの制御装置におけるワーク領域およびキャッシュ領域としても用いられる。そして、デジタルスチルカメラにおける連写撮影の際の処理およびビデオカメラにおける動画撮影の際の処理においては、上記の揮発性メモリに複数のデータ領域を確保して、同時にメモリに対するアクセスが行われる。このメモリに対する複数のアクセス要求はＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によって行われている。
【０００４】
ＤＭＡにおいては、ＣＰＵの制御を介することなく、データ転送要求を調停して、バス権の貸与および管理が行われる。そして、ＤＭＡ制御部は、ｓｏｕｒｃｅ／ｄｅｓｔｉｎａｔｉｏｎとなるメモリの格納位置（アドレス）の管理も行っている。
【０００５】
画像処理装置において、フレーム又はフィールド単位で画像データの処理を行う際には二次元ＤＭＡ転送が用いられる。二次元ＤＭＡ転送においては、メモリアドレスを一次元的なメモリマップとして単純に増減してアクセスするのではなく、（ｘ，ｙ）座標のように平面空間的に連続してアクセスとする。  例えば、ＲＡＭ上の画像データを複数ブロックに分割し、ブロック単位でメモリから読み出して処理を行うことが提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２５９６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のように、二次元ＤＭＡおよび分割処理によって、例えば、デジタルスチルカメラでは撮像処理（撮像データの取り込み。キャプチャ）および画像処理（現像処理）を同時に実行することができる。
【０００８】
また、撮像中に各種情報（センサ補正情報、ＡＦ、ＡＥ、ＷＢ（ホワイトバランス）、およびフリッカー検出などの情報）を同時に取得するようにすれば、スループットを向上させることができる。
【０００９】
しかしながら、撮像処理および現像処理などを同時に行って、且つ、補正用の各種情報も同時に取得すると、ＤＭＡの複数のチャネルが同時に使用することになって、ＤＭＡチャネルリソースを効率的に使用することができない。
【００１０】
ＣＰＵおよび画像処理ハードウエアの性能向上などによって又センサーサイズの大型化や記録メディアの高速化などによってＤＭＡチャネルの消費量は増大していることを考慮すると、データ転送頻度（転送量）の少ないクライアントが複数のチャネルを消費することは、転送チャンネルの使用効率を低下させることになる。
【００１１】
従って、本発明の目的は、データ転送頻度（転送量）の少ないクライアントによるチャネルの消費量を抑圧することができるメモリ制御装置、その制御方法、および制御プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するため、本発明によるメモリ制御装置は、フレーム単位のデータを複数のクライアントからそれぞれ受けて当該データを処理する際、前記データを一時的にメモリに記憶するため前記メモリにＤＭＡ転送するためのメモリ制御装置であって、前記データを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行うＤＭＡ転送手段と、前記クライアントおよび前記ＤＭＡ転送手段に接続され、前記クライアントの各々から送信されたデータを一時的に格納するバッファ手段を備え、前記クライアントの各々から送信されたデータを、独立に領域を確保した前記バッファ手段に一時格納するととともに、前記バッファ手段に係る処理単位を満たしたクライアントのデータについて前記ＤＭＡ転送手段に対して所定のデータ量の転送要求を送信する中継手段と、を有することを特徴とする。
【００１３】
本発明による制御方法は、フレーム単位のデータを複数のクライアントからそれぞれ受けて当該データを処理する際、前記データを一時的にメモリに記憶するため前記メモリにＤＭＡ転送するためのメモリ制御装置の制御方法であって、前記データを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行うＤＭＡ転送ステップと、前記クライアントの各々から送信されたデータを一時的に格納するバッファに独立に領域を確保して、前記クライアントの各々から送信されたデータを、前記バッファに一時格納すると格納ステップと、前記バッファに係る処理単位を満たしたクライアントのデータについて前記ＤＭＡ転送ステップに所定のデータ量の転送要求を送信する中継ステップと、を有することを特徴とする。
【００１４】
本発明による制御プログラムは、フレーム単位のデータを複数のクライアントからそれぞれ受けて当該データを処理する際、前記データを一時的にメモリに記憶するため前記メモリにＤＭＡ転送するためのメモリ制御装置の制御プログラムであって、前記メモリ制御装置が備えるコンピュータに、前記データを前記メモリにＤＭＡ転送する際、二次元ＤＭＡ転送を行うＤＭＡ転送ステップと、前記クライアントの各々から送信されたデータを一時的に格納するバッファに独立に領域を確保して、前記クライアントの各々から送信されたデータを、前記バッファに一時格納すると格納ステップと、前記バッファに係る処理単位を満たしたクライアントのデータについて前記ＤＭＡ転送ステップに所定のデータ量の転送要求を送信する中継ステップと、を実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、データ転送頻度の少ないクライアントによるチャネルの消費量を抑圧することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態によるメモリ制御装置の一例を示すブロック図である。
【図２】ＤＭＡ二次元転送の際の垂直分割走査を説明するための図である。
【図３】図２に示す垂直分割処理の際のメモリマップを説明するための図である。
【図４】図１に示す中継器からＤＭＡモジュールに対する転送要求のイベントの発生を説明するための図である。
【図５】図４に示す転送要求イベントによって不揮発性メモリにデータ転送を行った際のメモリマップを示す図である。
【図６】図１に示す中継器に備えられたバッファおよびバッファ制御部の構成を示すブロック図である。
【図７】モジュール間のデータ転送を説明するための図である。
【図８】図７に示すデータ転送のタイミングを示すタイミングチャートである。
【図９】図１に示すバッファの構成を示すブロック図である。
【図１０】図６に示すアドレス制御部の構成を示すブロック図である。
【図１１】図９に示すステータスＷＢ＿ＳＥＬによる状態遷移を説明するための図である。
【図１２】図９に示すステータスＲＢ＿ＳＥＬによる状態遷移を説明するための図である。
【図１３】図９に示すデータ保持部の一方におけるＢＵＦ＿ＦＵＬＬおよびＢＵＦ＿ＥＭＰＴの遷移を説明するための図である。
【図１４】図９に示すデータ保持部の他方におけるＢＵＦ＿ＦＵＬＬおよびＢＵＦ＿ＥＭＰＴの遷移を説明するための図である。
【図１５】図１０に示すステータスＷＲ＿ＥＮＢの状態遷移を説明するための図である。
【図１６】図１０に示すステータスＲＤ＿ＥＮＢの状態遷移を説明するための図である。
【図１７】図６に示す状態制御部の構成の一例を示すブロック図である。
【図１８】図１に示す中継器に備えられたクライアントレジスタの一例を示す図である。
【図１９】図１に示す中継器に備えられた転送属性レジスタの一例を示す図である。
【図２０】本発明の第２の実施形態によるメモリ制御装置においてＤＭＡモジュールに転送するデータに添付される属性情報の一例についてそのフォーマットを示す図である。
【図２１】本発明の第２の実施形態によるメモリ制御装置に備えられる中継器の一例を示すブロック図である。
【図２２】本発明の第３の実施形態によるメモリ制御装置における水平分割走査を説明するための図である。
【図２３】図２２に示す垂直分割処理の際のメモリマップを説明するための図である。
【図２４】図２２に示す水平分割処理の二次元ＤＭＡ転送において４つのクライアントからの転送データの格納を説明するための図である。
【図２５】図２４に示す分割ブロックを不揮発性メモリに書き込む際のアドレスマップを示す図である。
【図２６】図６に示すステータスＲＤ＿ＲＥＱの状態遷移を説明するための図である。
【図２７】図１に示す中継器制御部のデータ読み出し状態制御における状態遷移を説明するための図である。
【図２８】本発明の第４の実施形態における水平分割走査の一例を示す図である。
【図２９】図２８に示す水平分割走査によるデータを中継器を介して二次元ＤＭＡ転送した際の不揮発性メモリにおけるデータ格納状態のメモリマップを示す図である。
【図３０】本発明の第５の実施形態によるメモリ制御装置で用いられるアドレス制御部の構成についてその一例を示すブロック図である。
【図３１】本発明の第５の実施形態によるメモリ制御装置において中継器に備えられるバッファの構成を示すブロック図である。
【図３２】本発明の第６の実施形態によるメモリ制御装置で用いられるアドレス制御部の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態によるメモリ制御装置の一例について図面を参照して説明する。
【００１８】
［第１の実施形態］
図１は、本発明の第１の実施形態によるメモリ制御装置の一例を示すブロック図である。なお、図１のメモリ制御装置は、例えば、フレーム単位又はフィールド単位で画像データを処理するデジタルカメラなどの撮像装置（つまり、画像処理装置）で用いられる。
【００１９】
図１において、ＤＭＡモジュール８には複数のクライアント１〜４が接続されている。これらクライアント１〜４として、例えば、ＡＦ、ＡＥ、ＷＢ、およびフリッカーなどの各種検出又は取得情報が該当する。メモリコントローラ５は不揮発性メモリ７に対するライト・リードデータを取り扱うとともに、コマンドステータスの制御を行う。
【００２０】
このメモリコントローラ５には内部データバスを介してＤＭＡモジュール８のデータ出力が接続される。メモリコントローラ５およびＤＭＡモジュール８などはシステムオンチップとして１チップのＬＳＩ（画像処理エンジン）として構成することができる。この場合、当該チップはチップ出力（Ｉ／Ｏパッド）６を介して基板（ボード）に接続される。
【００２１】
不揮発性メモリ７は、例えば、ＳＤＲＡＭであり、画像処理エンジン（ＬＳＩ）と不揮発性メモリ７とは外部データバスを介して接続される。
【００２２】
メモリコントローラ５は、データコントローラ５０、ライトデータを一時格納するＦＩＦＯ５１、およびＳＤＲＡＭ７からのリードデータを一時格納するＦＩＦＯ５２を有している。データコントローラ５０は、ＦＩＦＯ５１および５２におけるデータ授受の管理を行うとともに、出力バッファ５３の状態を制御する。
【００２３】
出力バッファ５３は、例えば、３ステートバッファであり、データコントローラ５０からの制御信号が”０（Ｌレベル）”の場合に、出力バッファ５３はＦＩＦＯ５１からのデータを出力する。一方、データコントローラ５０からの制御信号が”１（Ｈのレベル）”状態では、出力バッファ５３はハイインピーダンス状態となって、Ｉ／Ｏパッド６を駆動しない。入力バッファ５４は、不揮発性メモリ７からのデータをＦＩＦＯ５２に送出（ドライブ）する。
【００２４】
なお、図示の例では、出力バッファ５３および入力５４は、メモリコントローラ５に備えられているが、Ｉ／ＯバッファとしてＩ／Ｏパッド６の近傍に配置するようにしてもよい。
【００２５】
ＤＭＡモジュール８は、不揮発性メモリ７に対するデータ転送を行うためのライト（ＷＲ）ＤＭＡコントローラ８０を有している。ＤＭＡモジュール８には複数のクライアントに対するデータＩ／Ｆが備えられている。そして、これらデータＩ／Ｆが選択的に任意のチャネルに接続される。図示のように、データＩ／Ｆは、例えば、チャネルスイッチ８１ａ〜８６ａであり、クライアント１〜４はチャネルスイッチ８１ａ〜８６ａによって任意のチャネルに接続される。
【００２６】
チャネル処理部８１ｂ〜８６ｂの各々は、チャネルスイッチ８１ａ〜８６ａからのデータを一時格納するＦＩＦＯおよびこのＦＩＦＯを制御する制御部を有している。ＤＭＡコントローラ８０によって選択されたチャネルのデータはセレクタ８７を介して内部データバスに送出される。このデータはメモリコントローラ５を介して不揮発性メモリ７に格納される。
【００２７】
なお、図示の例では、チャネルスイッチ８１ａ〜８６ａおよびチャネル処理部８１ｂ〜８６ｂの活性状態を説明するため、内部データバスのバス権取得のためのステータス制御及び信号線については示されていない。
【００２８】
調停器（アービタ）８８は、チャネル処理部８１ｂ〜８６ｂから不揮発性メモリ７に対するデータの格納要求が同時に発生した際、データアクセス順の調停を行う。チャネル処理部８１ｂ〜８６ｂからＤＭＡコントローラ８０に、不揮発性メモリ７に対する転送要求ステータスが送出される（なお、図１においては信号線などは示されていない）。同様に、ＤＭＡモジュール８はメモリコントローラ５に対して、各チャネルの格納先アドレスを提示する（なお、図１においては、信号線などは示されていない）。
【００２９】
いま、クライアント１をＡＦ制御用の検出結果、クライアント２をＡＥ用のブロック積分値、クライアント３をホワイトバランス用のブロック積分値、クライアント４をフリッカー検出・補正用ライン積分値とする。これら検出用データのソースは撮像の結果得られたフレームデータであるが、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）のクライアントとして送出したいデータはフレーム単位ではなく、出現頻度も領域毎に異なってフレームデータに比べて少ないデータ量である。ところが、ソース自体はフレームデータであるので、チャネルの使用期間は制御の関係上ほぼフレーム単位となる。
【００３０】
クライアント１〜４とＤＭＡモジュール８との間には中継器１０が配置されており、ここでは、後述のように、クライアント１−４によって１チャネル（図中ハッチングで示す）のみが使用（消費）され、チャネル消費量が抑圧される。
【００３１】
なお、ここでは、二次元ＤＭＡ転送における分割処理の一例である垂直分割設定が用いられる。
【００３２】
中継器１０には、クライアント１〜４から転送された転送データをそれぞれ一時格納（蓄積）するバッファ１０１ｂ〜１０４ｂおよびバッファ１０１ｂ〜１０４ｂのデータ入出力を制御するバッファ制御部１０１ａ〜１０４ａを有している。さらに、中継器１０は、バッファ１０１ｂ〜１０４ｂ間のデータ入出力を管理および制御する中継器制御部１００とその制御状態を記憶するレジスタ１０５とを備えている。
【００３３】
なお、図示の例では、クライアント数を４としているが、クライアントの数は４に限定されるものではなく、クライアントの数に応じて中継器１０はバッファを備えることになる。
【００３４】
ここで、第１の実施形態によるメモリ制御装置の理解を容易にするため、ＤＭＡ二次元転送の際の垂直分割走査の一例について説明する。
【００３５】
図２は、ＤＭＡ二次元転送の際の垂直分割走査の一例を説明するための図である。
【００３６】
図２に示す例では、Ｙ方向にＹＡのサイズでＹＮ個のブロックに画像データなどのデータが分割され、Ｘ方向では分割を行わずそのサイズがＸ×ＹＡであるとする。ブロック”１”〜”Ｎ＋１”（Ｎは１以上の整数）の各々における走査の際には、Ｘ方向に１ライン走査する毎に、次のラインの先頭にメモリに格納されたアドレスがくるようにオフセット（ＯＦＦＳＥＴ）設定が行われる。また、１ブロックの走査が完了すると、メモリに格納されたアドレスの飛び先は次ブロックの先頭画素の位置にオフセット設定される。
【００３７】
図３は、図２に示す垂直分割処理の際のメモリマップを説明するための図である。なお、図３においては、説明の便宜上、各ブロック間の格納位置同士に間隔を置かず、さらにブロック内のライン間にも間隔を置かないように格納した場合のメモリマップが示されている。
【００３８】
ここでは、垂直分割（垂直方向に分割）した１ブロックのデータ量を、中継器１０からＤＭＡモジュール８に対する１回の転送指示量（ＤＭＡ転送単位）と定義する。つまり、中継器１０は１ブロック分のデータを蓄積するまでは、ＤＭＡモジュール８に対してデータ転送要求（つまり、ＤＭＡ転送開始要求）送出しない。
【００３９】
この場合、バッファ１０１ｂ〜１０４ｂの容量は最低限垂直分割した１ブロック分必要となる。
【００４０】
図４は、図１に示す中継器１０からＤＭＡモジュール８に対する転送要求のイベントの発生を説明するための図である。
【００４１】
図４において、ｃｈ＿ｃｌｉｅｎｔ１〜４はそれぞれクライアント１〜４のチャネル使用を示し、ｃｌｉｅｎｔ（ｎ）ｒｅｑ＿ｅｖｅｎｔ（ｎは１〜４のいずれかの整数）は中継器１０からＤＭＡモジュール８に対する転送要求の発生タイミングを示す。
【００４２】
なお、ここでは、中継器１０に対するクライアント１〜４のデータ転送頻度は、画像データそのものの転送頻度に比べて低いものとする。図示の例では、クライアント１はクライアント中で最も転送頻度が高く、クライアント３、２、および４の順に転送頻度が低下する。
【００４３】
デジタルスチルカメラなどの撮像装置における各種情報（つまり、検出データ）について当てはめると、クライアント１は積分範囲の比較的狭いフリッカ検出における輝度積分値、クライアント３および２は、ＡＥ積分やＷＢ用のブロック積分値であり、クライアント４はＡＦ評価枠の検出情報である。
【００４４】
図５は、図４に示す転送要求イベントによって不揮発性メモリ７にデータ転送を行った際のメモリマップを示す図である。
【００４５】
不揮発性メモリ７上のメモリマップでは各クライアント１〜４のデータはブロック単位で混在した順番となる。このため、各クライアント１〜４のデータを後程取得する際には、ファームウエアで適宜飛び越し走査をして所望のデータを集める必要がある。ファームウエアの負担増にはなるが、各クライアント１〜４からのデータ量は画像データに比べて少なく、且つ画像データ処理の際にライト側ＤＭＡのチャネル消費を抑圧できる効果の方が大きい。
【００４６】
図６は、図１に示す中継器１０に備えられたバッファおよびバッファ制御部の構成を示すブロック図である。なお、バッファ１０１ｂ〜１０４ｂおよびバッファ制御部１０１ａ〜１０４ａの構成は同一であるので、ここではバッファ１０１ｂおよびバッファ制御部１０１ａについて説明する。
【００４７】
バッファ制御部１０１は、バッファ１０１ｂのデータアクセス先を指示するアドレス制御部１０１１およびバッファの書き込み・読み出し状態を管理する状態制御部１０１２を備えている。図６において、左側（左側Ｉ／Ｆ）はクライアント１と接続される。また、右側（右側Ｉ／Ｆ）は中継器制御部１００によって選択的にＤＭＡモジュール８に接続される。
【００４８】
なお、中継器制御部１００は、バッファ制御部１０１ｂ〜１０４ｂから転送要求が同時にある場合の調停機能を備えており、当該調停機能はアービタ８８と同様である。
【００４９】
上記のＩ／Ｆの各々はデータ線（Ｄａｔａ）、データ有効ステータス（ｖａｌｉｄ）、およびデータ停止要求（ｓｔｏｐ）を有している。
【００５０】
図７は、モジュール間のデータ転送を説明するための図であり、図８は図７に示すデータ転送のタイミングを示すタイミングチャートである。
【００５１】
データ転送はクロック（ＣＬＫ）同期によって行われ、同相転送が確保されているものとする。つまり、受信側クロックで送信側データを捕獲した際にセットアップ・ホールド違反とならないように同相転送が保障されているものとする。
【００５２】
データ転送側モジュールＡにおいて、ロジック回路（ｌｏｇｉｃ）は、有効データを転送するタイミングでデータ線に有効データ（Ｄａｔａ）を送出するとともに、データ有効ステータス（Ｖａｌｉｄ）を”１”値に遷移する。なお、データ有効ステータスは、データ有効の場合に”１”値と定義し、無効の場合に”０”値として定義する。
【００５３】
モジュール（ｍｏｄｕｌｅ）ＡおよびＢ間のデータ転送において、モジュールＢはデータ受信できない状態であると、前段のモジュールＡに対してデータ停止要求（Ｓｔｏｐ）を送出する。データ停止要求を受けると、モジュールＡはデータを保持し待機する。
【００５４】
この際、モジュールＡはデータ有効ステータスの状態を保持するが、モジュールＢに対して有効ステータスの状態を無効状態にマスクするようにしてもよい。これはモジュールＡおよびＢ間における取り決めで設定される。
【００５５】
図９は、図１に示すバッファ１０１ｂの構成を示すブロック図である。
【００５６】
バッファ（Ｂｕｆｆｅｒ）１０１ｂはデータ保持部１２１および１２２を備えており、これらデータ保持部１２１および１２２の各々は１ブロック単位のデータを一時的に保持する。ここでは、データ保持部１２１からＤＭＡ転送が行われている際、データ保持部１２２はクライアントからデータを受信する。つまり、バッファ１０１ｂはダブルバッファ構成である。
【００５７】
データ保持部１２１および１２２は、データ転送量の単位をどの程度に設定するかでその容量が決定されるが、例えば、数１００〜数１０００ワード程度の配列のＳＲＡＭ構成としてもよい。データ幅は内部バスやメモリ（例えば、ＤＲＡＭ）のデータ幅と整合性があればよいので、一般に１６、３２、又は６４ビットとされる。
【００５８】
図９において、ライトアドレス信号ＷＲ＿ＡＤＲＳおよびリードアドレス信号ＲＤ＿ＡＤＲＳはそれぞれデータ保持部１２１および１２２の書き込みおよび読み出しアドレスを示す信号である。これらアドレス信号（アドレスステータス）は、図６に示すアドレス制御部１０１１から送出される。セレクタ１２３および１２４はデータ保持部１２１および１２２に対していずれのアドレスステータスを選択する。
【００５９】
セレクタ１２３および１２４の選択状態はステータスＷＲ＿ＥＮＢおよびステータスＷＢ＿ＳＥＬをデコードすることによって決定される。
【００６０】
このデコードはＡＮＤゲート１２６および１２７によって行われる。ステータスＷＲ＿ＥＮＢ（ｗｒｉｔｅ  ｅｎａｂｌｅ）およびＷＢ＿ＳＥＬ（ｗｒｉｔｅ−ｂｕｆｆｅｒ  ｓｅｌｅｃｔ）は、図６に示す状態制御部１０１２において管理される。データ出力（ＯＤＡＴ）はステータスＲＢ＿ＳＥＬ（ｒｅａｄ−ｂｕｆｆｅｒ  ｓｅｌｅｃｔ）によって選択されるセレクタ１２５の出力であり、データ保持部１２１および１２２のいずれかの出力である。
【００６１】
図示の例では、ステータスＷＲ＿ＥＮＢ、ステータスＲＤ＿ＥＮＢ（ｒｅａｄ  ｅｎａｂｌｅ）によるイネーブル状態を”１”値、ディスエーブル（ｄｉｓａｂｌｅ）状態を”０”値と定義する。また、ステータスＷＢ＿ＳＥＬおよびＲＢ＿ＳＥＬが”０”値であると、データ保持部１２１が選択され、ステータスＷＢ＿ＳＥＬおよびＲＢ＿ＳＥＬが”１”値であるとデータ保持部１２２が選択される。
【００６２】
図１０は、図６に示すアドレス制御部１０１１の構成を示すブロック図である。
【００６３】
アドレス制御部１０１１はライトアドレスカウンタ部（ｗｒ＿ｃｏｕｎｔ）１３１およびリードアドレスカウンタ部（ｒｄ＿ｃｏｕｎｔ）１３２を備えている。ライトアドレスカウンタ部１３１はステータスＷＲ＿ＡＤＲＳの値を更新・保持する。また、リードアドレスカウンタ部１３２はステータスＲＤ＿ＡＤＲＳの値を更新・保持する。
【００６４】
ライトアドレスカウント部１３１は、ステータスＷＲ＿ＥＮＢがイネーブル状態でクライアントから有効データを受けると、１インクリメントする。この際、信号ＩＶＡＬは、データ保持対象のときにのみ”１”状態となり、中継器１０から対象クライアントに対してｓｔｏｐ要求信号が送出される場合には、信号ＩＶＡＬは”０”状態にマスクされる。ステータスＷＲ＿ＥＮＢおよび信号ＩＶＡＬの状態デコードはＡＮＤゲート１３３の出力が用いられる。
【００６５】
同様に、リードアドレスカウント部１３２は、ステータスＲＤ＿ＥＮＢがイネーブル状態で後段のＤＭＡモジュール８からデータ停止要求が出ていない状態で、１インクリメントする。データ停止要求信号ＩＳＴＰは、後段からのデータ転送停止要求であって、ステータスＲＤ＿ＥＮＢとこのステータスの反転論理とをデコードした結果が用いられる。このデコードはＡＮＤゲート１３４で行われる。
【００６６】
前述のように、バッファサイズは分割後の１ブロックのデータ量と整合を取る。データ保持部１２１および１２２の容量に対して、このブロックサイズは可変であるので、ハードウエアとしてのデータ保持部１２１および１２２の確保もレジスタ値による設定としてよい。
【００６７】
この場合、ライトアドレスカウント部１３１の出力値と該レジスタ値（バッファサイズ値）とを等面コンパレータ１３５で比較して、同値になった時点でバッファフル状態とされる。
【００６８】
バッファフル信号ＢＵＦ＿ＦＵＬＬ（ｂｕｆｆｅｒ  ｆｕｌｌ）は、状態制御部１０１２の入力信号であって、状態制御部１０１２はバッファフル信号ＢＵＦ＿ＦＵＬＬに応じてバッファの状態を検出する。そして、状態制御部１０１２は書き込み対象バッファ（つまり、データ保持部１２１および１２２）を切り替える。
【００６９】
切り替えの時点で、状態制御部１０１２は、ステータスＷＢ＿ＳＥＬの値を更新（２値選択なので反転）するようにしてもよい。
【００７０】
この際、更新側のデータ保持部にＤＭＡ未転送のデータが残存する場合には、状態制御部１０１２はステータスＷＲ＿ＥＮＢを”０”値に更新する。また、バッファフル信号ＢＵＦ＿ＦＵＬＬによってバッファフル状態を検出することによって、状態制御部１０１２はステータスＲＤ＿ＥＮＢを”１”値に更新する。
【００７１】
同様にして、リードアドレスカウント部１３２の出力とレジスタ値（バッファサイズ値）とが等面コンパレータ１３６で比較され、同値になった時点でバッファＥＭＰＴＹ状態とされる。
【００７２】
バッファエンプティ信号ＢＵＦ＿ＥＭＰＴ（ｂｕｆｆｅｒ  ｅｍｐｔｙ）は、状態制御部１０１２の入力信号であって、状態制御部１０１２はバッファエンプティ信号ＢＵＦ＿ＥＭＰＴの状態を検出し、読み出し対象バッファ（つまり、データ保持部１２１および１２２）を切り替える。この時点で、状態制御部１０１２は信号ＲＢ＿ＳＥＬの値を更新（２値選択なので反転）するようにしてもよい。
【００７３】
更新側のデータ保持部が未だＦＵＬＬ状態でなければ、状態制御部１０１２はステータスＲＤ＿ＥＮＢを”０”値に更新する。また、バッファエンプティ信号ＢＵＦ＿ＥＭＰＴを検出すると、状態制御部１０１２はステータスＷＢ＿ＥＮＢを”１”値に更新する。
【００７４】
図１１は、図９に示すステータスＷＢ＿ＳＥＬによる状態遷移を説明するための図である。
【００７５】
図１１において、データ保持部１２１はＢＵＦ０で示され、データ保持部１２２はＢＵＦ１で示されている。いま、ＢＵＦ＿ＦＵＬＬ＝１が検出されＷＢ＿ＳＥＬが”０”となると、書き込み対象のバッファがＢＵＦ１からＢＥＦ０に遷移する（つまり、ＢＵＦ０が選択（ｓｅｌ）される）。
【００７６】
一方、ＢＵＦ＿ＦＵＬＬ＝１が検出されＷＢ＿ＳＥＬが”１”となると、書き込み対象のバッファがＢＵＦ０からＢＥＦ１に遷移する（つまり、ＢＵＦ１が選択される）。
【００７７】
図１２は、図９に示すステータスＲＢ＿ＳＥＬによる状態遷移を説明するための図である。
【００７８】
図１２において、ＢＵＦ＿ＥＭＰＴ＝１が検出され、ＲＢ＿ＳＥＬが”０”となると、読み出し対象のバッファがＢＵＦ１からＢＥＦ０に遷移する（つまり、ＢＵＦ０が選択される）。一方、ＢＵＦ＿ＥＭＰＴ＝１が検出され、ＲＢ＿ＳＥＬが”１”となると、読み出し対象のバッファがＢＵＦ０からＢＥＦ１に遷移する（つまり、ＢＵＦ１が選択される）。
【００７９】
なお、ステータスＷＲ＿ＥＮＢおよびＲＤ＿ＥＮＢの状態遷移には、データ保持部１２１および１２２のＢＵＦ＿ＦＵＬＬおよびＢＵＦ＿ＥＭＰＴを検出する必要がある。
【００８０】
図１３は、図９に示すデータ保持部１２１におけるＢＵＦ＿ＦＵＬＬおよびＢＵＦ＿ＥＭＰＴの遷移を説明するための図であり、図１４は、図９に示すデータ保持部１２２におけるＢＵＦ＿ＦＵＬＬおよびＢＵＦ＿ＥＭＰＴの遷移を説明するための図である。
【００８１】
図１３において、ステータスＲＢ＿ＳＥＬ＝０でかつステータスＢＵＦ＿ＥＭＰＴ＝１であると、データ保持部１２１（ＢＵＦ０）は空（ｅｍｐｔｙ）となる。一方、ステータスＷＢ＿ＳＥＬ＝０でかつステータスＢＵＦ＿ＦＵＬＬ＝１であると、ＢＵＦ０は満杯（ｆｕｌｌ）となる。
【００８２】
図１４において、ステータスＲＢ＿ＳＥＬ＝１でかつステータスＢＵＦ＿ＥＭＰＴ＝１であると、データ保持部１２２（ＢＵＦ１）は空（ｅｍｐｔｙ）となる。一方、ステータスＷＢ＿ＳＥＬ＝１でかつステータスＢＵＦ＿ＦＵＬＬ＝１であると、ＢＵＦ１は満杯（ｆｕｌｌ）となる。
【００８３】
図１５は、図１０に示すステータスＷＲ＿ＥＮＢの状態遷移を説明するための図であり、図１６は、図１０に示すステータスＲＤ＿ＥＮＢの状態遷移を説明するための図である。
【００８４】
図１５において、ＢＵＦ０およびＢＵＦ１がともに空（ＥＭＰＴＹ）であると、ステータスＷＲ＿ＥＮＢはイネーブル（ｅｎａｂｌｅ）＝１に遷移する。一方、ＢＵＦ０およびＢＵＦ１がともに満杯（ＦＵＬＬ）であると、ステータスＷＲ＿ＥＮＢはディスエーブル（ｄｉｓａｂｌｅ）＝０に遷移する。
【００８５】
図１６において、ＢＵＦ０およびＢＵＦ１がともに空（ＥＭＰＴＹ）であると、ステータスＲＤ＿ＥＮＢはｄｉｓａｂｌｅ＝０に遷移する。一方、ＢＵＦ０およびＢＵＦ１がともに満杯（ＦＵＬＬ）であると、ステータスＲＤ＿ＥＮＢはｅｎａｂｌｅ＝１に遷移する。
【００８６】
なお、上述の図１１〜図１６において、ステータスをＦＵＬＬおよびＥＭＰＴＹの２状態で示しているが、ロジック信号において、”０”値および”１”値に置き換えてもよい。また、上記の状態遷移をＲＴＬ記述とするようにしてもよく、当該記述を論理合成した結果を論理回路（ハードウエア）として用いることができる。
【００８７】
図１７は、図６に示す状態制御部１０１２の構成の一例を示すブロック図である。
【００８８】
図１７では、図１１〜図１６で説明した状態遷移を行うための構成が示されている。状態制御部１０１２は、ライトバッファ選択（ｗｒｉｔｅ  ｂｕｆｆｅｒ  ｓｅｌｅｃｔ）状態保持部２０１、リードバッファ選択（ｒｅａｄ  ｂｕｆｆｅｒ  ｓｅｌｅｃｔ）状態保持部２０２、第１のバッファ状態保持部２０３、第２のバッファ状態保持部２０４、ライトイネーブル（ｗｒｉｔｅ  ｅｎａｂｌｅ）状態制御部２０５、およびリードイネーブル（ｒｅａｄ  ｅｎａｂｌｅ）状態制御部２０６を有している。そして、第１および第２のバッファ状態保持部２０３および２０４はそれぞれデータ保持部１２１および１２２の状態を保持する。
【００８９】
ところで、クライアント１〜４の転送データの総量は、データ保持部１２１および１２２の容量と等価とは限らない。このため、クライアント１〜４の各々がデータ転送を完了した時点で、データ保持部１２１（又はデータ保持部１２２）のデータ受信量がコンパレータ１３５（又はコンパレータ１３６）のレジスタ設定値（比較値）と一致しない場合には、当該一致しないクライアントのパス（チャネル）に関してデータ保持部にデータが蓄積された状態で待機状態となることをケアする必要がある。
【００９０】
図６において、バッファ制御部１０１ａでは信号ＦＬＡＳＨが定義される。この信号ＦＬＡＳＨは、ＣＰＵ（図示せず）を介して設定される信号であって、ステータスＢＵＦ＿ＦＵＬＬともにオアゲート１０１３に入力される。信号ＦＬＡＳＨはクライアント１のデータ転送完了の際に一度アクティブに設定され、状態制御部１０１２は、この時点での書き込み側データ保持部（１２１又は１２２）に対して読み出し許可ステータスを与える。
【００９１】
図１８は、図１に示す中継器１０に備えられたクライアントレジスタの一例を示す図である。
【００９２】
図示のクライアントレジスタはクライアント１〜４に対応して備えられている。クライアントレジスタはクライアントにおけるデータ転送の状態を示すステータスレジスタであって、中継器１０における各クライアントのデータ転送状態を、ＣＰＵ（図示せず）に通知するためのレジスタである。
【００９３】
クライアントレジスタ２１１はクライアント１について中継器１０におけるデータ転送状態を示すステータスレジスタである。同様に、クライアントレジスタ２１２はクライアント２について中継器１０におけるデータ転送状態を示すステータスレジスタである。クライアントレジスタ２１３はクライアント３について中継器１０におけるデータ転送状態を示すステータスレジスタである。そして、クライアントレジスタ２１４はクライアント４について中継器１０におけるデータ転送状態を示すステータスレジスタである。
【００９４】
クライアントレジスタ２１１〜２１４の構成は同様であるので、ここではクライアントレジスタ２１１について説明する。クライアントレジスタ２１１にはアクティブ（ａｃｔｉｖｅ）ステータス２１１１、送信（ｓｅｎｄ）ステータス２１１２、バッファライトポイント（ｂｕｆｆ  ｗｒｉｔｅ  ｐｏｉｎｔ）ステータス２１１３、および送信イベントカウント（ｓｅｎｄ  ｅｖｅｎｔ  ｃｏｕｎｔ）ステータス２１１４が定義される。
【００９５】
ａｃｔｉｖｅステータス２１１１は、例えば、１ビットのフラグ情報であり、”１”値で活性状態、”０”値で非活性状態と定義される。非活性状態とは中継器１０において当該クライアントにかかるパス（チャネル）が使用されていないことを示す。一方、活性状態とはパスが使用されていることを示す。
【００９６】
別に中継器の状態を設定するレジスタにおいて各クライアントをｅｎａｂｌｅ又はｄｉｓａｂｌｅするレジスタが備えられていたとしても、クライアントレジスタは内部状態を反映するステータスフラグとして定義される。
【００９７】
ｓｅｎｄステータス２１１２は、例えば、１ビットのフラグ情報であって、”１”値でＤＭＡモジュール８に対して転送動作中であることを示し、”０”値で待機中（転送要求なしの状態）を示す。ｂｕｆｆ  ｗｒｉｔｅ  ｐｏｉｎｔステータス２１１３は、データ保持部１２１および１２２においてＷＲ＿ＥＮＢ側（クライアントからのデータを蓄積する側）のバッファの現在の格納位置指示値を示す。
【００９８】
ｓｅｎｄ  ｅｖｅｎｔ  ｃｏｕｎｔステータス２１１４はクライアント１のデータ転送がバッファ１０１ｂの１転送単位で何回行われたかをカウントしたカウント値である。
【００９９】
これらクライアントレジスタ２１１〜２１４において、各ステータスの割当ビット数は、メモリ制御装置の仕様に応じて決定される。また、ここでは、クライアントレジスタ２１１〜２１４の各々についてそのビット幅を３２ビットする。そして、例えば、ａｃｔｉｖｅステータス２１１１およびｓｅｎｄステータス２１１２の各々に１ビットを割り当て、ｂｕｆｆ  ｗｒｉｔｅ  ｐｏｉｎｔステータス２１１３に８ビットを割り当てる。そして、ｓｅｎｄ  ｅｖｅｎｔ  ｃｏｕｎｔステータスに１６ビットを割り当てて、残りのビットをリザーブ（ｒｅｓｅｒｖｅｄ）扱いとして参照禁止としてもよい。
【０１００】
図１９は、図１に示す中継器１０に備えられた転送属性レジスタの一例を示す図である。
【０１０１】
図４および図５に関連して説明したように、複数のクライアントデータを不揮発性メモリ７にバッファ単位で格納した場合、バッファ単位のデータ格納順の履歴（バッファ単位のデータ群の属性）を保持して、データを使用する際に所望のクライアントデータを特定し読出し可能な状態とする必要がある。このため、図１８に示す転送属性レジスタが用いられる。
【０１０２】
図１９において、転送属性レジスタ２２１〜２２５では、バッファ１転送分のデータ属性が４ビットで定義され、データ属性を８状態分纏めて１つのレジスタとされる（３２ビット幅）。図１に示すクライアントの数は４であるので、ここでは必ずしも４ビットを必要とせず、データ属性の４ビットは一例である。
【０１０３】
図１９においては、図５に示すメモリマップを適用してレジスタが更新された状態で示されている。データ属性のフラグ値（４ビット）の”０００１”をクライアント１に、“００１０”をクライアント２に、“００１１”をクライアント３に、そして、“０１００”をクライアント４に割当てる。
【０１０４】
転送属性レジスタの初期状態は”００００”とし不使用状態を表す。中継器１０の制御部１００が任意のクライアントデータをＤＭＡモジュール８に転送完了する都度、当該クライアントの属性フラグ値によって転送属性レジスタの値を更新する。転送属性レジスタの消費方向については、例えば、転送属性レジスタ２２１（転送属性レジスタ０）のＬＳＢ側の４ビットからＭＳＢ側に向かって更新・移動し、転送属性レジスタ２２２、２２３、２２４、…、２２５の順にレジスタ書き換え対象を移動する。
【０１０５】
転送属性レジスタをどの程度設定（実装）するかについては、メモリ制御装置の適用範囲によって決まる。例えば、３：２のアスペクト比で１４００万画素の有効画素数を有するデジタルスチルカメラにおいて、構成画素数を４６００×３０６０画素とする。撮像データから各種補正データを生成するための検出情報を抽出する際、撮像データから画像補正用の検出情報を、例えば、１ライン毎に３２ビットの積分値を２値抽出したとする。そして、この様なクライアントが図１に示すように４つ接続されたとする。
【０１０６】
一例として、バッファ１０１ｂにおけるデータ保持部１２１（およびデータ保持部１２２）の容量を、２５６ワード×３２ビットとする。３０６０ライン×３２ビット×２のデータを転送する場合、１つのクライアントにおけるＤＭＡモジュール８への転送回数は２４回となる。４つのクライアントがそれぞれ２４回の転送をする場合を上限として設計を行う場合、転送属性レジスタにおける属性保持数は１レジスタ毎に８であるので、転送属性レジスタの実装数は１２で対応することができる。
【０１０７】
なお、図１に関連して説明したステータスレジスタ群１０５に、図１８に示すクライアントレジスタおよび図１９に示す転送属性レジスタを含めるようにしてもよい。前述のように、転送属性レジスタを設けることによって、不揮発性メモリ７にクライアント１〜４の一定量の分割データを任意の順番に格納しても、後で容易に再生することができる。
【０１０８】
このように、本発明の第１の実施形態では、中継器１０を備えて、複数のクライアントから不揮発性メモリ７にＤＭＡ転送を行うようにしたので、データ転送頻度（転送量）の少ないクライアントによるチャネルの消費量を抑圧することができる。
【０１０９】
［第２の実施形態］
続いて、本発明の第２の実施形態によるメモリ制御装置の一例について説明する。なお、第２の実施形態によるメモリ制御装置の構成は、後述するように、中継器１０の構成が異なるのみで他の構成は図１に示す例と同様である。
【０１１０】
第２の実施形態においては、第１の実施形態で説明した転送属性レジスタを備えることなく、ＤＭＡモジュール８に転送するデータの先頭などに所定の属性情報を添付する。
【０１１１】
図２０は、本発明の第２の実施形態によるメモリ制御装置においてＤＭＡモジュール８に転送するデータに添付される属性情報の一例についてそのフォーマットを示す図である。
【０１１２】
図２０において、属性情報（添付情報ともいう）２３１自体はデータ保持部１２１および１２２に格納する必要はなく、中継器１０がデータ転送単位でデータ送信をする際にその先頭に添付される。添付情報２３１において第１の情報２３１１はクライアント属性（クライアント番号）であり、図１９で説明した転送属性レジスタ２２１〜２２５の各々における４ビットの転送属性と情報量は等価である。
【０１１３】
第２の情報２３１２はデータ保持部１２１又は１２２の進捗状態を示すバッファ蓄積エンドポイント値である。このバッファ蓄積エンドポイント値は任意のクライアントの中継器１０における一回の転送量を示し、各クライアントのデータ転送の途中であれば、等面コンパレータ１３５および１３６の比較値として設定されるレジスタ値と等価な数値である。
【０１１４】
データ転送の完了の際に、転送データ量が比較値に達せず終了すると、バッファ蓄積エンドポイント値にはその際の値が反映されることになる。この途中終了の際には、クライアント転送完了後にバッファ１０１ｂ〜１０４ｂをフラッシュするようにＣＰＵ（図示せず）から中継器１０に指示が行われる。これは、図９に示すオアゲート１０１３の論理和入力として信号ＦＬＡＳＨを定義して、蓄積途中データの吐き出し制御を行うためである。
【０１１５】
第３の情報２３１３はクライアント１〜４がバッファ１０１ｂ〜１０４ｂ単位で何回ＤＭＡモジュール８に対して分割転送動作を行ったかを示す転送イベントカウント値である。転送イベントカウント値はクライアントデータをバッファ量分のＤＭＡ転送を行う毎に、１インクリメントされる。この転送イベントカウント値２３１３は、データを分割転送単位で読み飛ばす場合などに用いられる。データ再構築の際に第３の情報２３１３が不要であれば割愛するようにしてもよい。
【０１１６】
図２０においては、ＤＭＡモジュール８とのデータ線Ｉ／Ｆを３２ビット幅として、当該ビット幅に合わせたビット幅で添付情報２３１が示されている。例えば、クライアント属性情報２３１１に４ビット、バッファ蓄積エンドポイント値２３１２に８ビット、そして、転送イベントカウント値２３１３に１６ビットを割り当て、残りのビットをｒｅｓｅｒｖｅｄとして参照不可と定義するようにしてもよい。
【０１１７】
図２１は、本発明の第２の実施形態によるメモリ制御装置に備えられる中継器の一例を示すブロック図である。なお、図示の中継器は第１の実施形態で説明した中継器とその構成が異なるので、ここでは参照番号１０’を付す。
【０１１８】
レジスタ１０５に格納された情報はクライアント１〜４に対応する対応情報としてレジスタ１０５ａ〜１０５ｄに格納される。レジスタ１０５ａ〜１０５ｄに格納される情報は図１８および図１９で説明した情報と等価でよい。
【０１１９】
図１９で説明した転送属性レジスタに格納される情報と等価な情報は、ＤＭＡモジュール８にデータ転送を行う都度転送データとして第１の情報２３１１に添付されるので、中継器１０’に記録して保持する必要はない。
【０１２０】
中継器１０’に備えられた制御部２４０は、中継器制御部１００と同様の機能を有しており、さらに、拡張機能としてセレクタ２４１〜２４４の制御を行う。バッファ制御部１０１ａ〜１０４ａがクライアント１〜４のデータをＤＭＡモジュール８に転送する転送要求が同時に発生した際、制御部２４０はその調停を行う。この調停機能は従来のＤＭＡ制御における既知の処理と同様である。
【０１２１】
例えば、中継器１０’においてクライアント１からのデータ受信量が一定量に達し、次にＤＭＡモジュール８への転送を開始する際には、バッファ１０１ｂに蓄積されたデータ転送の前に、図１に示すセレクタ２４１をレジスタ１０５ａに切り替える。これによって、クライアント属性情報がＤＭＡモジュール８に送出される。
【０１２２】
クライアント属性情報は、図２０で説明したフォーマットを備えており、第１の情報２３１１には、図１９で説明した転送属性レジスタ情報と等価のビット配置でクライアントを識別できるように、数値を割り当てる。第２の情報２３１２は、レジスタ２１１のｂｕｆｆ  ｗｒｉｔｅ  ｐｏｉｎｔステータス２１１３と等価な情報でよい。また、第３の情報２３１３はレジスタ２１１のｓｅｎｄ  ｅｖｅｎｔ  ｃｏｕｎｔステータス２１１４と等価な情報でよい。
【０１２３】
このように、本発明の第２の実施形態では、中継器においてＤＭＡモジュール８に転送するデータの先頭などに所定の属性情報を添付するようにしたので、不揮発性メモリ７に格納されたデータを容易に再生することができる。
【０１２４】
［第３の実施形態］
次に、本発明の第３の実施形態によるメモリ制御装置について説明する。なお、第３の実施形態によるメモリ制御装置の構成は図１に示す例と同様である。
【０１２５】
まず、第３の実施形態によるメモリ制御装置の理解をようにするため、ＤＭＡ二次元転送の際の水平分割走査について説明する。
【０１２６】
図２２は、本発明の第３の実施形態によるメモリ制御装置おける水平分割走査を説明するための図である。
【０１２７】
図２２では、上述のＤＭＡ二次元転送においてＹＮ＝０とした際の水平分割（水平方向の分割）走査が示されており、いま、Ｙ方向では分割を行わず、Ｘ方向にＸＡのサイズでＸＮ個のブロックに画像データなどのデータが分割され、そのサイズがＸＡ×Ｙであるとする。ブロック”１”〜”４”の各々における走査の際には、Ｙ方向に１ライン走査する毎に、次のラインの先頭にメモリに格納されたアドレスがくるようにオフセット（ＯＦＦＳＥＴ）設定が行われる。また、１ブロックの走査が完了すると、メモリに格納されたアドレスの飛び先は次ブロックの先頭画素の位置にオフセット設定される。
【０１２８】
図２３は、図２に示す水平分割処理の際のメモリマップを説明するための図である。
【０１２９】
水平分割したブロック７１〜７４の各々はＤＭＡ転送データとしてその配列順に転送される。一方、不揮発性メモリ７上のアドレス順としては、各ブロックのデータはＸＡの単位で巡回する。例えば、ブロック７１においては、ＸＡ分のデータが転送された後、ＸＡ×ＸＮのオフセット分遷移して続くデータが格納される。ＸＡデータをＹライン分格納した後、転送開始アドレスからＸＡ遷移したＯＦＦＳＥＴ位置に遷移して続くブロック７２のデータの格納が開始される。
【０１３０】
ここでは、水平分割した１ブロックのデータ量を、中継器１０からＤＭＡモジュール８に対する１回の転送指示量として定義する。つまり、中継器１０は１ブロック分のデータを蓄積するまではＤＭＡモジュール８に対してデータ転送要求を送出しない。
【０１３１】
なお、以下の説明では、バッファ１０１ｂ〜１０４ｂの総量が１ブロックのデータ量を賄えるものとする。
【０１３２】
図２４は、図２２に示す水平分割処理の二次元ＤＭＡ転送において４つのクライアントからの転送データの格納を説明するための図である。
【０１３３】
いま、図２２に示すブロック７１をさらに分割ブロック７１１〜７１４の４領域にさらに分割して、各分割ブロック７１１〜７１４内のデータをクライアント１〜４のデータ格納領域に割当てる。同様にして、ブロック７２〜７４についても分割ブロック７２１〜７４４に分割して、それぞれクライアント１〜４のデータ格納領域に割当てる。
【０１３４】
分割ブロックの各々のデータ領域は、二次元に（Ｘ，Ｙ）の大きさで規定されるが、ここではＸ方向の大きさをＸＡとして各分割ブロックで共通とする。またＹ方向についてはそれぞれＹ１、Ｙ２、Ｙ３、およびＹ４として、行列のようにみて同一行では同一の大きさとする。
【０１３５】
ＤＭＡ転送データが画像データであれば、Ｘ方向には画素数、Ｙ方向にはライン数を指定すればよいが、単に数値データの場合には、単位はバイト又はワードなどのデータ量で指定してもよい。
【０１３６】
例えば、図１に示すクライアントのデータ容量は、分割ブロック７１２、７２２、７３２、および７４２の総和を上限として転送することができる。つまり、（４×ＸＡ×Ｙ２）の最大データ量でクライアントのデータを転送することができる。ＸＡ＝１２８ワード、Ｙ２＝５１２とすると、６５５３６ワードのデータ量となる。１ワード＝４バイトとすると、２６２１４４バイトのデータ量となる。Ｙ２＝１であれば、１２８ワード＝５１２バイトである。
【０１３７】
図２５は、図２４に示す分割ブロック７１１〜７４４を不揮発性メモリ７に書き込む際のアドレスマップを示す図である。
【０１３８】
いま、Ｙ１＝Ｙ２＝Ｙ３＝Ｙ４＝１とすると、ブロック分割されて２次元ＤＭＡ転送された各クライアントのデータは不揮発性メモリ７上で元の配列に揃う。例えば、クライアント４のデータとして分割ブロック７１４、７２４、７３４、および７４４の配列に並ぶ。
【０１３９】
各クライアントのデータ転送量を等価とすれば、中継器１０を介してマージした各クライアントのデータは、クライアント毎に不揮発性メモリ７上で一括転送したように再配置される。
【０１４０】
中継器１０はブロック７１〜７４の各ブロック単位でＤＭＡモジュール８に対して転送要求を送る。例えば、ブロック７３内の分割ブロック７３１、７３２、７３３、および７３４の単位で不揮発性メモリ７に記憶される。ブロック７３からブロック７４に書き込みが変わる際には、オフセット量に応じて不揮発性メモリ７に書き込み領域（書き込みアドレス）が制御される。そして、不揮発性メモリ７上における分割ブロック７３１、７３２、７３３、および７３４のアドレスマップ上の格納位置は図２８に示す状態となる。
【０１４１】
図２６は、図６に示すステータスＲＤ＿ＲＥＱの状態遷移を説明するための図である。
【０１４２】
図２６において、ＢＵＦ０およびＢＵＦ１がともに空（ＥＭＰＴＹ）であると、ステータスＲＤ＿ＲＥＱはｄｉｓａｂｌｅ＝０に遷移する。一方、ＢＵＦ０およびＢＵＦ１がともに満杯（ＦＵＬＬ）であると、ステータスＲＤ＿ＲＥＱはｅｎａｂｌｅ＝１に遷移する。そして、クライアントデータのバッファ状態はステータスＲＤ＿ＲＥＱとして中継器制御部１００に送られる。中継器制御部１００は、各クライアントのステータスＲＤ＿ＲＥＱに応じてＤＭＡモジュール８に対して転送要求を送る。
【０１４３】
なお、図２６において、ステータスをＦＵＬＬおよびＥＭＰＴＹの２状態で示しているが、ロジック信号において、”０”値および”１”値に置き換えてもよい。また、上記の状態遷移を論理記述言語（ＶＨＤＬ，Ｖｅｒｉｌｏｇなど）を用いて記述すれば、当該記述を論理合成した結果を論理回路（ハードウエア）として用いることができる。
【０１４４】
図２７は、図１に示す中継器制御部１００のデータ読み出し状態制御における状態遷移を説明するための図である。ここでは、ＤＭＡモジュール８に送出するデータの配置は、図２４で説明した水平分割走査によるものとする。
【０１４５】
前述したように、データ転送の単位は、二次元ＤＭＡのフレームを水平に分割した１短冊（図４に示す分割ブロック７１１、７１２、７１３、および７１４の単位）である。ここでは、クライアント１〜４の順にそれぞれＸＡ×Ｙｎ（ｎ＝１〜４）のデータ量においてクライアント１〜４は転送要求を送出する。Ｙ１＝Ｙ２＝Ｙ３＝Ｙ４＝Ｙ＝１として、不揮発性メモリ７上にリニアにデータが格納されるようにすると、図２５に示す状態となる。
【０１４６】
データ転送の単位とは、ＤＭＡモジュール８がデータ転送量をカウントするカウンタの計数がリニアに増えるデータ量の単位をいう。なお、中継器１０からＤＭＡモジュール８に対するデータ転送が連続して生起することをいうものではなく、バッファの単位で一時的に途切れてもよい。
【０１４７】
図２７において、状態Ｓ２１１はアイドル（Ｉｄｌｅ）状態であって、メモリ制御装置のリセット後及び中継器１０がｄｉｓａｂｌｅ状態の場合にはアイドル状態とする。中継器１０がｅｎａｂｌｅ状態となると、状態Ｓ２１１から状態Ｓ２１２に遷移して、中継器制御部１００は転送先頭のバッファが読み出し可となるのを待つ。
【０１４８】
クライアント１の転送データがバッファ１０１ｂに格納され、転送条件が成立した時点で、ステータスＲＤ＿ＲＥＱ（＝１）がバッファ制御部１０１ａから中継器制御部１００に送られる。ここで、クライアント１のデータをＤＭＡモジュール８に転送する転送要求をＲＤ＿ＲＥＱ（１０１）、クライアント２の転送要求をＲＤ＿ＲＥＱ（１０２）、クライアント３の転送要求をＲＤ＿ＲＥＱ（１０３）、そして、クライアント４の転送要求をＲＤ＿ＲＥＱ（１０４）とする。なお、他の信号およびステータスについてもクライアント毎に同様に参照番号１０１〜１０４を付す。
【０１４９】
ＲＤ＿ＲＥＱ（１０１）＝１を受けると、状態Ｓ２１２から状態Ｓ２１３に遷移する。状態Ｓ２１３においては、ステータスＲＤ＿ＥＮＢ１０１＝１およびＲＤ＿ＥＮＢ１０２〜１０４＝０として、中継器１０はクライアント１のデータをＤＭＡモジュール８に対して送出する。ステータスＲＤ＿ＥＮＢ１０１を受けると、バッファ制御部１０１ａはデータ転送を開始する。
【０１５０】
そして、バッファ制御部１０１ａはバッファ単位（レジスタ指示単位）でデータを送出した後、信号ＢＵＦ＿ＥＭＰＴ１０１＝１を中継器制御部１００に送って、所定の単位の転送の完了を知らせる。これによって、中継器制御部１００のデータ読み出し状態制御は状態Ｓ２１４に遷移する。
【０１５１】
中継器制御部１００のデータ読み出し状態制御は、クライアント２のデータ転送要求（ＲＤ＿ＲＥＱ１０２＝１）を受けて状態Ｓ２１５に遷移する。状態Ｓ２１５においては、ステータスＲＤ＿ＥＮＢ１０２＝１およびＲＤ＿ＥＮＢ１０１および１０３〜１０４＝０として、クライアント２のバッファデータがＤＭＡ制御部８に転送される。
【０１５２】
バッファ制御部１０２ａは所定のデータを送出した後、ステータスＢＵＦ＿ＥＭＰＴ１０２＝１を発行する。当該ステータスを受けると、データ読み出し状態制御は状態Ｓ２１５から状態Ｓ２１６に遷移する。そして、中継器制御部１００はクライアント３のバッファのステータスＲＤ＿ＲＥＱ１０３＝１となるのを待つ。
【０１５３】
状態Ｓ２１７、Ｓ２１８、およびＳ２１９についても、クライアント１および２の場合と同様に状態遷移が行われて、クライアントの各々のデータバッファからデータの出力が行われる。
【０１５４】
このようにして、中継器制御部１００のデータ読み出し制御によって、図２４および図２５で説明した二次元ＤＭＡの水平分割走査が行われることになる。
【０１５５】
なお、図１に示す制御状態を記憶するレジスタ１０５は、短冊処理された二次元データを二次元ＤＭＡ転送する際の進捗状況を管理するステータスレジスタとして用いられる。レジスタ１０５は完了状態を管理するので、必要であれば中継器１０のＤＭＡモジュール８に対するデータ転送完了割込みステータスを生成することもできる。
【０１５６】
このように本発明の第３の実施形態によれば、中継器１０を備えて、複数のクライアントから不揮発性メモリ７にＤＭＡ転送を行うようにしたので、データ転送頻度（転送量）の少ないクライアントによるチャネルの消費量を抑圧することができる。
【０１５７】
［第４の実施形態］
続いて、本発明の第４の実施形態によるメモリ制御装置について説明する。なお、第４の実施形態におけるメモリ制御装置の構成は図１に示すメモリ制御装置の構成と同様である。
【０１５８】
図２８は、本発明の第４の実施形態における水平分割走査の一例を示す図である。
【０１５９】
図２８に示す例では、クライアント３に対して短冊分割内のデータ領域を多く与えて、クライアント３の転送データ総量を他のクライアントの３倍に設定している。この場合には、図１に示すバッファ１０３ｂの割当を多くする。例えば、図１に示す構成はＬＳＩ上のロジックとして実装可能である。そして、データ保持部１２１および１２２は、例えば、ＳＲＡＭとして実装する。
【０１６０】
データ保持部１２１および１２２の各々は、図９で説明したように構成されるが、実装の際にはバッファ自体のイネーブル設定を設けて、ＳＲＡＭの構成単位でクライアントの各々にいずれのＳＲＡＭを割り当てるかについてレジスタ設定とセレクタ回路で切り替えるようにする。
【０１６１】
これによって、あるクライアントのＤＭＡ転送が同時に生起しない場合には、他の活性クライアントにその分のＳＲＡＭを融通することができ、資源を使用することができる。
【０１６２】
図２９は、図２８に示す水平分割走査によるデータを中継器１０を介して二次元ＤＭＡ転送した際の不揮発性メモリにおけるデータ格納状態のメモリマップを示す図である。
【０１６３】
図２９においては、ＳＲＡＭ構成単位を２５６ワード×３２ビットとし、図２８に示すクライアント１〜４のバッファの取扱単位（つまり、処理単位）とする。いま、二次元ＤＭＡの転送設定において、転送単位をバイトとする。図２８に示すＸＡを２５６×３２ビット＝２５６×４バイト＝１０２４バイトとし、ＸＮ＝４とする。また、ＹＡ＝１、Ｙ＝６とする。
【０１６４】
クライアント１、２、および４の各々の１転送単位はＳＲＡＭ構成単位として、クライアント３の１転送単位はＳＲＡＭ構成単位３個分相当とする。図２８に示す添字２２１１〜２２４６の各々は、ＳＲＡＭ構成単位のデータ量に相当し、水平分割の短冊において各クライアントのデータ転送量の最小単位である。
【０１６５】
図示の例では、クライアント３のＳＲＡＭ割当は構成単位３個分（図９に示す構成ではそれを２バンク分）を確保することができれば、制御は図２７で説明した制御と同様でよい。
【０１６６】
一方、構成単位１個分のＳＲＡＭ（図１２に示す構成ではそれを２バンク分）で運用するならば、ステータスＲＤ＿ＥＮＢの発行制御が別に必要となるばかりでなく、他のクライアントを待たせる確率も増加する。
【０１６７】
さらに、この場合には、図２７で説明した中継器１００におけるデータ読み出し状態制御は、例えば、図２８に示す転送制御の際には状態２１７のＲＤ＿ＲＥＱ１０３受付を３回、ＢＵＦ＿ＥＭＰＴ１０３の発行を３回行うという制御の追加が必要となる。
【０１６８】
回路実装を考慮すると、図２７に示す状態Ｓ２１３、Ｓ２１５、Ｓ２１７、およびＳ２１９において、ステータスＲＤ＿ＲＥＱの受付回数およびステータスＢＵＦ＿ＥＭＰＴＹの発行回数の設定を行うレジスタを追加すればよい。
【０１６９】
ＳＲＡＭリソースと各クライアントのＤＭＡ転送スループットおよび不揮発性メモリ７に対するデータ格納配列を考慮して、適宜システム設計が行われるが、ここでは、ＳＲＡＭの確保について構成単位毎に設定すること以外に限定しない。
【０１７０】
ＤＭＡ転送の完了後、不揮発性メモリ７上の各クライアントにおけるデータ転送単位２２１１〜２２４６の配置は、クライアント１は２２１１、２２２１、２２３１、および２２４１である。そして、上記のＸＡ、ＸＮ、ＹＡ、およびＹの設定においては、データの一括転送後の受信状態と同一となる。
【０１７１】
同様に、クライアント２では２２１２、２２２２、２２３２、および２２４２となり、クライアント４では２２１６、２２２６、２２３６、および２２４６となる。これらも一括転送時と同様の結果となる。
【０１７２】
バッファ容量を他のクライアントの３倍としたクライアント３の転送結果については、第１の配置２２１３、２２２３、２２３３、および２２４３、第２の配置２２１４、２２２４、２２３４、および２２４４、そして、第３の配置２２１５、２２２５、２２３５、２２４５の集合に分割される。
【０１７３】
図２９において、各データ集合の間にＧＡＰ（間隔）を設けている。この間隔は説明上（視覚上）便宜的に設けたものである。実際には不要としてもよいし、ＤＲＡＭのアライメント（ページング又はバンク処理）を考慮して間隔を設けるようにしてもよい。
【０１７４】
本発明の第４の実施形態では、中継器１０を介してクライアント３の二次元ＤＭＡ転送結果がクライアント３のみをＤＭＡ一括転送した場合と異なる。但し、ＤＭＡチャネルの消費抑圧効果は得られる。転送の単位も取扱単位となるので、ファーム読み出しの際に順番を考慮すれば元のデータ配列は容易に復元することができる。
【０１７５】
［第５の実施形態］
次に、本発明の第５の実施形態によるメモリ制御装置について説明する。なお、第５の実施形態におけるメモリ制御装置の構成は図１に示すメモリ制御装置の構成と同様である。
【０１７６】
第５の実施形態においては、図９および図１０で説明したバッファ制御について、各クライアントのデータ蓄積量および設定バッファ容量の関係をフレキシブルに設定・制御する。
【０１７７】
図１０に示すアドレス制御部では、データライトおよびデータリードの量は等価であり、同一のレジスタ（図１０において”ｒｅｇ＿ｂｕｆ＿ｓｉｚｅ”）で定義される。いま、任意のクライアントにおいてＤＭＡの単位転送量（短冊中に含まれる１クライアントのデータ量）が、バッファの取扱単位と乖離する場合には、その乖離量を調整（吸収）するためデータ受信量と転送量とを調整する必要がある。
【０１７８】
ここでは、二次元ＤＭＡ転送の単位とバッファの取扱単位とを独立に定義することができない。このため、クライアントデータの受信量は任意として、中継器１０からの送信量をバッファの取扱単位（又はその整数倍）とする。
【０１７９】
図３０は、本発明の第５の実施形態によるメモリ制御装置で用いられるアドレス制御部の構成についてその一例を示すブロック図である。また、図３１は、本発明の第５の実施形態によるメモリ制御装置において中継器に備えられるバッファの構成を示すブロック図である。
【０１８０】
図３０において、図１０に示すアドレス制御部と同一の構成要素については同一の参照番号を付す。また、図３１において、図９に示すバッファ同一の構成要素については同一の参照番号を付す。
【０１８１】
図示のアドレス制御部１０１１’では、レジスタ”ｒｅｇ＿ｒｅｃ＿ｓｉｚｅ”が受信データ数を指示する値を設定する。ライトアドレスカウンタ部１３１の出力値とこのレジスタ値とがコンパレータ１３５で比較されて、出力値とレジスタ値とが同値になると、コンパレータ１３５はバッファＦＵＬＬ状態とするため、ステータスＢＵＦ＿ＦＵＬＬを”１”値とする（つまり、ＢＵＦ＿ＦＵＬＬ＝１でバッファＦＵＬＬ状態を示す）。
【０１８２】
ステータスＢＵＦ＿ＦＵＬＬは、図６に示すバッファ状態制御部１０１２に出力され、バッファ制御部１０１２はステータスＢＵＦ＿ＦＵＬＬに応じてステータスＲＤ＿ＲＥＱを発行する。そして、ステータスＲＤ＿ＲＥＱは図１に示す中継器制御部１００に出力される。
【０１８３】
ステータスＲＤ＿ＲＥＱの発行の後、中継器制御部１００からバッファリードのステータス”ＲＤ＿ＥＮＢ”が発行されると、後段から停止要求信号ＩＳＴＰが発行されない限り、リードアドレスカウンタ部１３２は計数を行う。そして、リードアドレスカウンタ部１３２は、図３１に示すバッファ１０１ｂ’の読み出しアドレスを更新する。
【０１８４】
更新後のアドレス値は、コンパレータ２４１によってレジスタ値”ｒｅｇ＿ｒｅｃ＿ｓｉｚｅ”と比較され、一致状態がフリップフロップ（ＦＦ：レジスタ回路）２４２に記憶される。
【０１８５】
コンパレータ１３６はリードアドレスカウンタ１３２の出力値とレジスタ値”ｒｅｇ＿ｂｕｆ＿ｓｉｚｅ”とを比較して、一致するとステータスＢＵＦ＿ＥＭＰＴを出力するとともに、カウンタ値をリセットしてデータリードを完了する。
【０１８６】
図３１において、バッファ１０１ｂ’は図９に示すバッファ１０１ｂと比べてステータスＤＵＭＭＹ＿ＯＵＴを入力に有し、当該ステータスが”１”値の場合にはレジスタ値”ｒｅｇ＿ｄｍｍ＿ｄａｔ”値を出力する点が異なる。
【０１８７】
セレクタ２５１は、上述のように、データ保持部１２１および１２２の出力値とレジスタ値”ｒｅｇ＿ｄｍｍ＿ｄａｔ”とのいずれか一方を選択する。ここでは、”ｒｅｇ＿ｂｕｆ＿ｓｉｚｅ”≧“ｒｅｇ＿ｒｅｃ＿ｓｉｚｅ”であり、中継器１０からの出力データの量は、図３１に示す短冊中の要素（ＸＡ×ＹＡ）の単位に固定される。
【０１８８】
図示のレジスタの各々は回路搭載の際には別にＩ／Ｆを備え、回路動作中はスタティックな設定値として機能するものである。例えば、ＣＰＵ（図示せず）を備える場合には、ＣＰＵのＩ／Ｆからレジスタマップに応じて設定される。
【０１８９】
このように、本発明の第５の実施形態によれば、中継器１０を備えて、複数のクライアントから不揮発性メモリ７にＤＭＡ転送を行うようにしたので、データ転送頻度（転送量）の少ないクライアントによるチャネルの消費量を抑圧することができる。
【０１９０】
［第６の実施形態］
続いて、本発明の第６の実施形態によるメモリ制御装置について説明する。なお、第６の実施形態におけるメモリ制御装置の構成は図１に示すメモリ制御装置の構成と同様である。
【０１９１】
前述のように、図１に示す制御状態を記憶するレジスタは、図２４および図２８で説明した短冊処理された二次元データを二次元ＤＭＡ転送する際の進捗状況を管理するステータスレジスタである。レジスタ１０５に対して終了条件を設定可能とすれば、任意のクライアントにおけるデータ転送完了の状態を制御することができる。
【０１９２】
例えば、図２４において、クライアント１のデータ転送を分割ブロック（データ）７３１までと指示すれば、分割ブロック７４１の受信は発生しない。よって、中継器制御部１００はステータスＲＤ＿ＲＥＱを待つことなくステータスＲＢ＿ＥＮＢを発生する。
【０１９３】
図３２は、本発明の第６の実施形態によるメモリ制御装置で用いられるアドレス制御部の一例を示すブロック図である。なお、図３２において、図３０に示すアドレス制御部と同一の構成要素については同一の参照番号を付す。
【０１９４】
図示のアドレス制御部１０１１”は、図３０に示すアドレス制御部１０１１’と比べてオア（ＯＲ）ゲート２６１が追加されている。ダミーデータリード選択信号ＤＵＭＭＹ＿ＳＥＬは中継器制御部１００から発行されるダミーデータリード選択のためのパルス信号である。
【０１９５】
このダミーデータリード選択信号はＯＲゲート２６１を介してフリップフロップ２４２に保持される。そして、ブリップフロップ２４２はダミーアウト信号ＤＵＭＭＹ＿ＯＵＴを出力する。
【０１９６】
このダミーアウト信号ＤＵＭＭＹ＿ＯＵＴによって、図２４に示す分割ブロック７４１の受信なしに、中継器制御部１００はＤＭＡモジュール８に対して当該分割ブロックに係るダミーデータを送信する。
【０１９７】
このように、本発明の第６の実施形態では、短冊状に分割した二次元データをＤＭＡ転送する際、分割ブロック単位でダミーデータを出力することができ、中継器１０は異なるデータ量のクライアントの受け付けを行うことができる。
【０１９８】
以上のように、本発明の実施の形態によれば、ＤＭＡ転送の際に、データ転送頻度（転送量）の少ないクライアントによるチャネルの消費量を抑圧することができる。
【０１９９】
上述の説明から明らかなように、図１に示す例においては、中継器１０が中継手段、管理手段、および指定手段として機能する。また、ＤＭＡモジュール８はＤＭＡ転送手段として機能する。
【０２００】
なお、上述のメモリ制御装置は、例えば、画像形成装置に備えられて、画像データを画像処理する際に、当該画像データを一時的に不揮発性メモリ７に格納する場合にＤＭＡ転送を行う。
【０２０１】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０２０２】
例えば、上記の実施の形態の機能を制御方法として、この制御方法をメモリ制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをメモリ制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０２０３】
上記の制御方法および制御プログラムの各々は、少なくともＤＭＡ転送ステップ、格納ステップ、および中継ステップを有している。
【０２０４】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵなど）がプログラムを読み出して実行する処理である。
【符号の説明】
【０２０５】
１，２，３，４  クライアント
５  メモリコントローラ
７  不揮発性メモリ
８  ＤＭＡモジュール
１０  中継器
１００，２４０  中継器制御部
１０１ａ〜１０４ａ  バッファ制御部
１０１ｂ〜１０４ｂ  バッファ
１０１１  アドレス制御部
１０１２  状態制御部
【図１】
2014154000.tif 000003
【図２】
2014154000.tif 000004
【図３】
2014154000.tif 000005
【図６】
2014154000.tif 000006
【図７】
2014154000.tif 000007
【図８】
2014154000.tif 000008
【図９】
2014154000.tif 000009
【図１０】
2014154000.tif 000010
【図１１】
2014154000.tif 000011
【図１２】
2014154000.tif 000012
【図１３】
2014154000.tif 000013
【図１４】
2014154000.tif 000014
【図１５】
2014154000.tif 000015
【図１６】
2014154000.tif 000016
【図１７】
2014154000.tif 000017
【図１８】
2014154000.tif 000018
【図２０】
2014154000.tif 000019
【図２１】
2014154000.tif 000020
【図２２】
2014154000.tif 000021
【図２３】
2014154000.tif 000022
【図２４】
2014154000.tif 000023
【図２５】
2014154000.tif 000024
【図２６】
2014154000.tif 000025
【図２７】
2014154000.tif 000026
【図３０】
2014154000.tif 000027
【図３１】
2014154000.tif 000028
【図３２】
2014154000.tif 000029
【図４】
2014154000.tif 000030
【図５】
2014154000.tif 000031
【図１９】
2014154000.tif 000032
【図２８】
2014154000.tif 000033
【図２９】
2014154000.tif 000034