(57)【特許請求の範囲】
【請求項１】
所定のメモリ領域から所定のデバイスへのデータのダイレクトメモリアクセス転送の制御を行うＤＭＡ制御装置であって、
外部デバイスから前記メモリ領域へのデータ転送を検出するデータ転送検出部と、
前記データ転送検出部により前記メモリ領域への前記データ転送が検出された場合に、前記ダイレクトメモリアクセス転送の実行開始をＤＭＡコントローラに指示するＤＭＡ実行指示部と、備え、
前記ＤＭＡ実行指示部は、前記データ転送検出部により前記データ転送が一定期間検出されない場合に、前記外部デバイスに対してデータの再送を要求する処理を行う所定のＣＰＵに対して、前記データ転送が無いことを示す信号を出力することを特徴とするＤＭＡ制御装置。
【請求項２】
前記データ転送検出部は、前記外部デバイスが前記データ転送を行う前記メモリ領域の指定を受け付け、指定されたメモリ領域に対する前記データ転送を検出することを特徴とする請求項１に記載のＤＭＡ制御装置。
【請求項３】
前記データ転送検出部は、前記データ転送により転送されるデータの転送量が所定の値を超えたか否かを検出し、前記ＤＭＡ実行指示部は、前記データ転送検出部により前記転送量が前記所定の値を超えたことが検出された場合に、前記ダイレクトメモリアクセス転送の実行開始を前記ＤＭＡコントローラに指示することを特徴とする請求項１または２に記載のＤＭＡ制御装置。
【請求項４】
前記所定の値は、前記データ転送により転送されるデータを構成する各データブロックのデータサイズの値であり、前記データ転送検出部は、前記転送量が前記データサイズの値を超えたか否かを各データブロックについて検出し、前記ＤＭＡ実行指示部は、各データブロックについて前記転送量が前記データサイズの値を超える度に、各データブロックに対する前記ダイレクトメモリアクセス転送の実行開始を前記ＤＭＡコントローラに指示することを特徴とする請求項３に記載のＤＭＡ制御装置。
【請求項５】
請求項１〜４のいずれか１項に記載のＤＭＡ制御装置を備える画像形成装置。
【請求項６】
所定のメモリ領域から所定のデバイスへのダイレクトメモリアクセス転送の制御を行うＤＭＡ制御装置により実行するＤＭＡ制御方法であって、
前記ＤＭＡ制御装置が、外部デバイスから前記メモリ領域へのデータ転送を検出するデータ転送検出ステップと、
前記ＤＭＡ制御装置が、前記データ転送検出ステップにおいて前記メモリ領域への前記データ転送が検出された場合に、前記ダイレクトメモリアクセス転送の実行開始をＤＭＡコントローラに指示するＤＭＡ実行指示ステップと、
を含み、
前記ＤＭＡ制御装置は、前記データ転送検出ステップにおいて前記データ転送が一定期間検出されない場合に、前記外部デバイスに対してデータの再送を要求する処理を行う所定のＣＰＵに対して、前記データ転送が無いことを示す信号を出力することを特徴とするＤＭＡ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のメモリ領域から所定のデバイスへのダイレクトメモリアクセスの制御を行うＤＭＡ制御装置、そのＤＭＡ制御装置を備える画像形成装置、および、ＤＭＡ制御方法に関する。
【背景技術】
【０００２】
従来、プリンタや複合機などの画像形成装置において、外部デバイスから入力されるデータをメモリに一旦記憶し、該メモリに記憶したデータを、画像処理を行う処理部にＤＭＡ（Direct Memory Access）により転送することが行われている。そして、近年では、画像形成装置が取り扱うデータの量が増加し、画像処理装置における画像処理の処理速度も向上していることから、データの転送に一層の効率化が求められている。
【０００３】
例えば、特許文献１には、複数のＤＭＡコントローラのＤＭＡ転送速度をそれぞれ測定し、ＤＭＡ転送速度が所定の設定値未満のＤＭＡコントローラのＤＭＡ転送を優先させ、それ以外のＤＭＡコントローラのＤＭＡ転送を抑制することにより、ＤＭＡのデータ転送効率を向上させるＤＭＡ転送制御装置が開示されている。
【０００４】
また、特許文献２には、ＤＭＡコントローラにより管理されているアドレスカウンタを用いて、アドレスを監視しながら、前段のデータ信号処理を後段のデータ信号処理が追い越さないように追い越し禁止制御処理を行いつつ、複数のデータ信号処理を並行に行うデータ処理システムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−４５６３号公報
【特許文献２】特開２００１−３１２４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、外部デバイスから入力されるデータを、外部デバイスのホストコントローラが一旦メモリに記憶し、ＤＭＡコントローラが、画像処理を行う処理部に、メモリに記憶されたデータをＤＭＡにより転送する場合、メモリに対するデータの記憶処理にＤＭＡコントローラは関与しないため、ＤＭＡコントローラは、どの時点で上記転送を開始すべきかを判定することが困難である。
【０００７】
ＤＭＡコントローラに上記転送を開始させるためには、ホストコントローラは、メモリに対するデータの記憶を完了した後、画像形成装置のＣＰＵ（Central Processing Unit）にデータの記憶を完了したことを通知し、その通知を受けたＣＰＵがＤＭＡコントローラにデータ転送を開始するように指示する処理などが必要となる。
【０００８】
そのため、たとえＤＭＡによる転送に特許文献１、あるいは、特許文献２に開示された技術を適用することとしても、ホストコントローラとＣＰＵとの間の通信処理が必要となり、大きなオーバーヘッドが生じるので、データの転送を効率的に行うことができない。
【０００９】
本発明は、上記課題に鑑み、大きなオーバーヘッドを生じさせることなく、データのＤＭＡ転送を効率的に行うことができるＤＭＡ制御装置、そのＤＭＡ制御装置を備える画像形成装置、および、ＤＭＡ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決する為に、本発明の第１の技術手段は、所定のメモリ領域から所定のデバイスへのデータのダイレクトメモリアクセス転送の制御を行うＤＭＡ制御装置であって、外部デバイスから前記メモリ領域へのデータ転送を検出するデータ転送検出部と、前記データ転送検出部により前記メモリ領域への前記データ転送が検出された場合に、前記ダイレクトメモリアクセス転送の実行開始をＤＭＡコントローラに指示するＤＭＡ実行指示部と、を備え、前記ＤＭＡ実行指示部は、前記データ転送検出部により前記データ転送が一定期間検出されない場合に、前記データ転送が無いことを示す信号を所定のＣＰＵに出力することを特徴とする。
【００１１】
本発明の第２の技術手段は、第１の技術手段において、前記データ転送検出部は、前記外部デバイスが前記データ転送を行う前記メモリ領域の指定を受け付け、指定されたメモリ領域に対する前記データ転送を検出することを特徴とする。
【００１３】
本発明の第３の技術手段は、第１または第２の技術手段において、前記データ転送検出部は、前記データ転送により転送されるデータの転送量が所定の値を超えたか否かを検出し、前記ＤＭＡ実行指示部は、前記データ転送検出部により前記転送量が前記所定の値を超えたことが検出された場合に、前記ダイレクトメモリアクセス転送の実行開始を前記ＤＭＡコントローラに指示することを特徴とする。
【００１４】
本発明の第４の技術手段は、第３の技術手段において、前記所定の値は、前記データ転送により転送されるデータを構成する各データブロックのデータサイズの値であり、前記データ転送検出部は、前記転送量が前記データサイズの値を超えたか否かを各データブロックについて検出し、前記ＤＭＡ実行指示部は、各データブロックについて前記転送量が前記データサイズの値を超える度に、各データブロックに対する前記ダイレクトメモリアクセス転送の実行開始を前記ＤＭＡコントローラに指示することを特徴とする。
【００１５】
本発明の第５の技術手段は、第１〜第４のいずれか１つに記載のＤＭＡ制御装置を画像形成装置が備えることを特徴とする。
【００１６】
本発明の第６の技術手段は、所定のメモリ領域から所定のデバイスへのダイレクトメモリアクセス転送の制御を行うＤＭＡ制御装置により実行するＤＭＡ制御方法であって、前記ＤＭＡ制御装置が、外部デバイスから前記メモリ領域へのデータ転送を検出するデータ転送検出ステップと、前記ＤＭＡ制御装置が、前記データ転送検出ステップにおいて前記メモリ領域への前記データ転送が検出された場合に、前記ダイレクトメモリアクセス転送の実行開始をＤＭＡコントローラに指示するＤＭＡ実行指示ステップと、を含み、前記ＤＭＡ制御装置は、前記データ転送検出ステップにおいて前記データ転送が一定期間検出されない場合に、前記データ転送がないことを示す信号を所定のＣＰＵに出力することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、外部デバイスからメモリの所定のメモリ領域へのデータ転送を検出した場合に、ダイレクトメモリアクセス転送の実行開始をＤＭＡコントローラに指示することとしたので、大きなオーバーヘッドを生じさせることなく、データのＤＭＡ転送を効率的に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】ＤＭＡ制御装置を備える画像処理システムの構成の一例を示す図である。
【図２】本実施形態に係るＤＭＡ制御処理における画像データのやり取りについて説明する図である。
【図３】本発明に係るＤＭＡ制御処理の処理手順の一例を示すフローチャートである。
【図４】本発明に係るＤＭＡ制御処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面を参照して詳細に説明する。まず、本発明に係るＤＭＡ制御装置の構成の一例について説明する。図１は、ＤＭＡ制御装置２７を備える画像処理システム１０の構成の一例を示す図である。この画像処理システム１０は、例えば、プリンタやコピー機、ＦＡＸ装置、ＭＦＰ（Multi Function Peripheral）などの画像形成装置に搭載されるシステムである。
【００２０】
図１に示すように、画像処理システム１０は、コントローラボード２０、メモリ３０、外部デバイス４０を備える。コントローラボード２０は、画像処理を制御する制御ボードである。メモリ３０は、複数のブロックに分割された画像データなどを記憶するＤＲＡＭ（Dynamic Random Access Memory）などのメモリである。外部デバイス４０は、画像データを複数のブロックに分割し、ブロックごとに画像データをメモリ３０に記憶するデバイスである。
【００２１】
コントローラボード２０は、ＣＰＵ（Central Processing Unit）２１、汎用ＤＭＡ（Direct Memory Access）コントローラ２２、画像処理部２３、圧縮伸長処理部２４、入出力インターフェース部２５、メモリコントローラ２６、ＤＭＡ制御装置２７を備える。
【００２２】
ＣＰＵ２１は、コントローラボード２０上の各機能部を制御する制御部である。このＣＰＵ２１は、メモリ３０にデバイス（例えば、外部デバイス４０など）がアクセスするために必要なパラメータをそのデバイスから取得し、そのパラメータを後に説明するＤＭＡ制御装置２７のレジスタ（図示せず）に設定する処理を行う。
【００２３】
ここで、メモリ３０にデバイスがアクセスするために必要なパラメータとは、メモリ３０にデータを転送するデバイス、そのデバイスが画像データを書き込むメモリ３０のメモリ領域、そのデバイスが送信する画像データのブロックサイズ、そのデバイスが送信する画像データのブロック数、ＤＭＡ制御装置２７がダイレクトメモリアクセスの実行開始を指示する画像処理ＤＭＡコントローラ２３ａの情報である。
【００２４】
汎用ＤＭＡコントローラ２２は、ＣＰＵ２１を介さずに、コントローラボード２０上に搭載されたメモリ（図示せず）間、あるいは、メモリ３０とコントローラボード２０上に搭載されたメモリとの間でＤＭＡ転送を行う処理部である。
【００２５】
画像処理部２３は、メモリ３０に記憶された画像データに対して、画像処理を行う処理部である。この画像処理部２３は、画像処理ＤＭＡコントローラ２３ａ、画像処理専用メモリ２３ｂを備える。画像処理ＤＭＡコントローラ２３ａは、ＣＰＵ２１を介さずに、メモリ３０から画像処理専用メモリ２３ｂに画像データのＤＭＡ転送を行う処理部である。
【００２６】
圧縮伸長処理部２４は、画像処理部２３により画像処理がなされた画像の符号化、および、復号化を行う処理部である。この圧縮伸長処理部２４は、圧縮伸長処理ＤＭＡコントローラ２４ａ、圧縮伸長処理専用メモリ２４ｂを備える。圧縮伸長処理ＤＭＡコントローラ２４ａは、ＣＰＵ２１を介さずに、メモリ３０から画像処理専用メモリ２４ｂに、画像処理部２３により画像処理がなされた画像データのＤＭＡ転送を行う処理部である。
【００２７】
入出力インターフェース部２５は、外部デバイス４０と通信を行うインターフェースである。この入出力インターフェース部２５は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓにより通信を行う。メモリコントローラ２６は、メモリ３０に対する外部デバイス４０からのアクセスを制御する処理部である。
【００２８】
ＤＭＡ制御装置２７は、ＤＭＡコントローラのＤＭＡ転送を制御する装置である。このＤＭＡ制御装置２７は、データ転送検出部２７ａ、および、ＤＭＡ実行指示部２７ｂを備える。
【００２９】
データ転送検出部２７ａは、画像データを転送するデバイスとしてＣＰＵ２１により設定された外部デバイス４０からメモリ３０への画像データの転送を検出する処理部である。このデータ転送検出部２７ａは、上述したＤＭＡ制御装置２７内のレジスタ（図示せず）を介して、外部デバイス４０が画像データを書き込むメモリ３０のメモリ領域の指定を受け付ける。そして、データ転送検出部２７ａは、指定されたメモリ領域に対する画像データの転送を検出する。
【００３０】
これにより、たとえ複数の処理すべき画像データが外部デバイス４０から転送された場合でも、各画像データの転送を区別して、処理対象とする画像データの転送のみを検出することができる。
【００３１】
ＤＭＡ実行指示部２７ｂは、データ転送検出部２７ａにより外部デバイス４０からメモリ３０への画像データの転送が検出された場合に、メモリ３０に記憶された画像データの画像処理専用メモリ２３ｂへのＤＭＡ転送の実行開始を、ＤＭＡ転送の実行開始を指示する対象としてＣＰＵ２１により設定された画像処理ＤＭＡコントローラ２３ａに指示する処理部である。
【００３２】
また、ＤＭＡ実行指示部２７ｂは、外部デバイス４０による画像データの転送にエラーが発生し、データ転送検出部２７ａにより画像データの転送が一定期間検出されない場合に、画像データの転送が無いことを示す信号をＣＰＵ２１に出力する処理を行う。この通知を受けたＣＰＵ２１は、例えば、外部デバイス４０に対して画像データを再送するよう要求する処理などを行う。
【００３３】
なお、本実施形態のように、画像データが複数のデータブロックに分割されて転送される場合、データ転送検出部２７ａは、データの転送量がデータブロックのサイズを超えたか否かを検出する。このデータブロックは、画像処理部２３および圧縮伸長処理部２４が、画像処理および圧縮伸長処理を実行することが可能な最小サイズのデータのブロックである。
【００３４】
そして、ＤＭＡ実行指示部２７ｂは、各データブロックについて、データの転送量がデータブロックのサイズの値を超える度に、画像処理ＤＭＡコントローラ２３ａに対してＤＭＡ転送の実行開始を指示する。
【００３５】
このように、ＤＭＡ実行指示部２７ｂが、外部デバイス４０による画像データの転送にエラーが発生し、画像データの転送が一定期間ない場合に、画像データの転送がないことを示す信号を出力することにより、ＣＰＵ２１などにシステムの停止を防ぐために適切な処理を実行させることが可能となる。
【００３６】
また、ＤＭＡ実行指示部２７ｂが、各データブロックについて、データの転送量がデータブロックのサイズの値を超える度に、画像処理ＤＭＡコントローラ２３ａに対してＤＭＡ転送の実行開始を指示することにより、画像処理が実行可能なデータ量がメモリ３０に記憶される度に、画像処理部２３の画像処理専用メモリ２３ｂへのデータのＤＭＡ転送が実行されるので、画像処理部２３がアイドリング状態となることなく、画像処理部２３に画像処理を効率的に実行させることができる。
【００３７】
ここで、本実施形態に係るＤＭＡ制御処理においては、画像データのやり取りは、メモリ３０、外部デバイス４０、画像処理部２３、圧縮伸長処理部２４との間で以下のようにして行われる。図２は、本実施形態に係るＤＭＡ制御処理における画像データのやり取りについて説明する図である。
【００３８】
図２に示すように、まず、画像データは、外部デバイス４０からメモリ３０に転送され、メモリ３０に記憶される（図２のａ）。データ転送検出部２７ａは、この画像データの転送を検出した場合に、画像処理部２３に備わる画像処理ＤＭＡコントローラ２３ａに対して、メモリ３０から画像処理用専用メモリ２３ｂに画像データを転送するように指示をする。その指示に従い、画像処理ＤＭＡコントローラ２３ａは、メモリ３０から画像処理部２３に画像データを転送する（図２のｂ）。
【００３９】
そして、画像処理部２３により画像データの画像処理が行われると、画像処理がなされた画像データはメモリ３０に記憶される（図２のｃ）。そして、画像処理部２３は、圧縮伸長処理部２４の圧縮伸長処理ＤＭＡコントローラ２４ａに対して、画像処理実行後の画像データをメモリ３０に格納したことを通知する。
【００４０】
その通知を受け取った圧縮伸長処理ＤＭＡコントローラ２４ａは、メモリ３０に格納された画像処理実行後の画像データをＤＭＡ転送により圧縮伸長処理専用メモリ２４ｂに転送する（図２のｄ）。その後、圧縮伸長処理部２４は、画像処理実行後の画像データの符号化処理を行い、符号化処理がなされた画像データをメモリ３０に記憶する（図２のｅ）。
【００４１】
つぎに、本発明に係るＤＭＡ制御処理の処理手順の一例について説明する。図３、図４は、本発明に係るＤＭＡ制御処理の処理手順の一例を示すフローチャートである。図３に示すように、まず、ＣＰＵ２１は、外部デバイス４０がメモリ３０にアクセスするために必要なパラメータをＤＭＡ制御装置２７のレジスタに設定する（ステップＳ１０１）。
【００４２】
ここで、外部デバイス４０がメモリ３０に対するアクセスに必要なパラメータとは、メモリ３０にデータを転送する外部デバイス４０、外部デバイス４０が画像データを書き込むメモリ３０のメモリ領域、外部デバイス４０が送信する画像データのブロックサイズ、外部デバイス４０が送信する画像データのブロック数、ＤＭＡ制御装置２７がダイレクトメモリアクセスの実行開始を指示する画像処理ＤＭＡコントローラ２３ａの情報である。
【００４３】
その後、データ転送検出部２７ａは、転送サイズカウンタ、転送ブロック数カウンタの値を０に設定する（ステップＳ１０２）。そして、データ転送検出部２７ａは、ステップＳ１０１で設定されたメモリ領域に対する外部デバイス４０からのデータ転送の監視を開始する（ステップＳ１０３）。
【００４４】
そして、データ転送検出部２７ａは、ステップＳ１０１で設定されたメモリ領域に対して、外部デバイス４０からのデータ転送が所定時間内にあったか否かを判定する（ステップＳ１０４）。
【００４５】
ステップＳ１０１で設定されたメモリ領域に対する外部デバイス４０からのデータ転送が所定時間内になかった場合（ステップＳ１０４においてＮＯの場合）、ＤＭＡ実行指示部２７ｂは、ステップＳ１０１で設定されたメモリ領域に対する外部デバイス４０からのデータ転送がないことをＣＰＵ２１に通知する（ステップＳ１０６）。
【００４６】
この通知を受けたＣＰＵ２１は、例えば、外部デバイス４０に対して画像データを再送するよう要求する処理などを行う。そして、図４に示すように、データ転送検出部２７ａは、データ転送の監視を終了し（ステップＳ１１１）、このＤＭＡ制御処理は終了する。
【００４７】
図３のステップＳ１０４において、ステップＳ１０１で設定されたメモリ領域に対する外部デバイス４０からのデータ転送が所定時間内にあった場合（ステップＳ１０４においてＹＥＳの場合）、データ転送検出部２７ａは、転送された画像データのサイズの分だけ転送サイズカウンタの値を増加させる（ステップＳ１０５）。
【００４８】
その後、図４に示すように、データ転送検出部２７ａは、転送サイズカウンタの値が、図３のステップＳ１０１で設定されたブロックサイズ未満であるか否かを判定する（ステップＳ１０７）。
【００４９】
転送サイズカウンタの値が、図３のステップＳ１０１で設定されたブロックサイズ未満である場合（ステップＳ１０７においてＹＥＳの場合）、図３のステップＳ１０４に移行して、それ以後の処理が実行される。
【００５０】
転送サイズカウンタの値が、図３のステップＳ１０１で設定されたブロックサイズ未満でない場合（ステップＳ１０７においてＮＯの場合）、ＤＭＡ実行指示部２７ｂは、メモリ３０に記憶された画像データのデータブロックに対するＤＭＡ転送の実行開始を、画像処理ＤＭＡコントローラ２３ａに指示することにより、画像処理ＤＭＡコントローラ２３ａを起動する（ステップＳ１０８）。
【００５１】
これにより、メモリ３０に記憶された画像データの１つのデータブロックが画像処理専用メモリ２３ｂにＤＭＡ転送により転送され、そのデータブロックに対する画像処理が画像処理部２３によりなされる。
【００５２】
ステップＳ１０８の処理の後、データ転送検出部２７ａは、転送ブロック数カウンタの値を１増加させる（ステップＳ１０９）。そして、データ転送検出部２７ａは、転送ブロック数カウンタの値が、図３のステップＳ１０１で設定された画像データのブロック数以下であるか否かを判定する（ステップＳ１１０）。
【００５３】
転送ブロック数カウンタの値が、ステップＳ１０１で設定された画像データのブロック数以下である場合（ステップＳ１１０においてＹＥＳの場合）、データ転送検出部２７ａは、転送サイズカウンタの値を０に設定する（ステップＳ１１２）。そして、図３のステップＳ１０４に移行して、それ以後の処理が実行される。
【００５４】
転送ブロック数カウンタの値が、ステップＳ１０１で設定された画像データのブロック数以下でない場合（ステップＳ１１０においてＮＯの場合）、データ転送検出部２７ａは、データ転送の監視を終了し（ステップＳ１１１）、このＤＭＡ制御処理は終了する。
【００５５】
以上本発明の実施形態について説明したが、本発明は上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲内で各種の変形、修正が可能である。例えば、上記実施形態では、画像処理部２３が画像処理ＤＭＡコントローラ２３ａを備えることとしたが、画像処理ＤＭＡコントローラ２３ａは、画像処理部２３とは独立に設けられることとしてもよい。また、圧縮伸長処理部２４が圧縮伸長処理ＤＭＡコントローラ２４ａを備えることとしたが、圧縮伸長処理ＤＭＡコントローラ２４ａは、圧縮伸長処理部２４とは独立に設けられることとしてもよい。
【符号の説明】
【００５６】
１０…画像処理システム、２０…コントローラボード、２１…ＣＰＵ（Central Processing Unit）、２２…汎用ＤＭＡ（Direct Memory Access）コントローラ、２３…画像処理部、２３ａ…画像処理ＤＭＡコントローラ、２３ｂ…画像処理専用メモリ、２４…圧縮伸長処理部、２４ａ…圧縮伸長処理ＤＭＡコントローラ、２４ｂ…圧縮伸長処理専用メモリ、２５…入出力インターフェース部、２６…メモリコントローラ、２７…ＤＭＡ制御装置、２７ａ…データ転送検出部、２７ｂ…ＤＭＡ実行指示部、３０…メモリ、４０…外部デバイス。
【図１】
0005374543.tif 000002
【図２】
0005374543.tif 000003
【図３】
0005374543.tif 000004
【図４】
0005374543.tif 000005