(57)【要約】    【課題】  現在処理中のページのオーバーランの発生を防止すると共に、次のページの処理開始までの時間を短縮できるデータ処理方法、データ処理装置、プログラム及び記憶媒体を提供する。    【解決手段】  データを蓄積するページメモリ４と、ページメモリ４から画像出力部５へデータを転送するＤＭＡコントローラ５００と、画像出力部５においてＤＭＡコントローラ５００によるデータの転送速度とプリンタエンジン６に出力すべきデータの転送速度との差を吸収するためにデータを蓄積するバッファメモリ５０２と、バッファメモリ５０２に蓄積されたデータの量を検出するデータ蓄積量検出部５０４とを有し、ＤＭＡコントローラ５００は、データ蓄積量検出部５０４のデータ量検出結果に基づき、バスの使用権を獲得した際のデータの転送量を決定する。【選択図】      図１
2005174145.tif 000002
【特許請求の範囲】
【請求項１】
データを第１の記憶手段に蓄積する第１の記憶工程と、
前記第１の記憶手段からデータ出力部へ前記データをデータ転送手段により転送するデータ転送工程と、
前記データ出力部において前記データ転送手段によるデータの転送速度とデータ処理部に出力すべきデータの転送速度との差を吸収するために第２の記憶手段にデータを蓄積する第２の記憶工程と、
前記第２の記憶手段に蓄積されたデータの量をデータ量検出手段により検出するデータ量検出工程とを有し、
前記データ転送手段は、前記データ量検出手段のデータ量検出結果に基づき、バスの使用権を獲得した際のデータの転送量を決定することを特徴とするデータ処理方法。
【請求項２】
前記第１の記憶手段は、ページメモリであることを特徴とする請求項１に記載のデータ処理方法。
【請求項３】
前記第２の記憶手段は、バッファメモリであることを特徴とする請求項１に記載のデータ処理方法。
【請求項４】
前記データ処理部は、プリンタエンジンであることを特徴とする請求項１に記載のデータ処理方法。
【請求項５】
前記データ転送手段は、ＤＭＡ（Direct Memory Access）コントローラであることを特徴とする請求項１に記載のデータ処理方法。
【請求項６】
データを蓄積する第１の記憶手段と、
前記第１の記憶手段からデータ出力部へ前記データを転送するデータ転送手段と、
前記データ出力部において前記データ転送手段によるデータの転送速度とデータ処理部に出力すべきデータの転送速度との差を吸収するためにデータを蓄積する第２の記憶手段と、
前記第２の記憶手段に蓄積されたデータの量を検出するデータ量検出工程とを有し、
前記データ転送手段は、前記データ量検出手段のデータ量検出結果に基づき、バスの使用権を獲得した際のデータの転送量を決定することを特徴とするデータ処理装置。
【請求項７】
前記第１の記憶手段は、ページメモリであることを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記第２の記憶手段は、バッファメモリであることを特徴とする請求項６に記載のデータ処理装置。
【請求項９】
前記データ処理部は、プリンタエンジンであることを特徴とする請求項６に記載のデータ処理装置。
【請求項１０】
前記データ転送手段は、ＤＭＡ（Direct Memory Access）コントローラであることを特徴とする請求項６に記載のデータ処理装置。
【請求項１１】
請求項１乃至４に記載のデータ処理方法を実現するためのコンピュータ読み取り可能なプログラムコードを有することを特徴とするプログラム。
【請求項１２】
請求項１乃至４に記載のデータ処理方法を実現するためのコンピュータ読み取り可能なプログラムコードを保持することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ等のデータ処理装置によりデータを処理するデータ処理方法及びデータ処理装置及びそのデータ処理方法を実現するためのプログラムコードを有するプログラム及びそのプログラムコードを保持する記憶媒体に関する。
【背景技術】
【０００２】
従来、レーザービームプリンタ等のページプリンタは、印刷データをページメモリに一旦格納して、プリンタエンジンの印刷開始と共に、該プリンタエンジンのプロセススピードに合わせて、印刷データをプリンタエンジンに出力する仕組みになっている（例えば、特許文献１参照）。
【特許文献１】特開平０５−２２１０３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記従来例では、ページプリンタは、その機構上、一旦印刷動作を開始すると、プリンタにおける記録用紙の搬送を途中で停止することは不可能なため、例えば、ＣＰＵ（中央処理装置）等のメモリアクセスにより、ページメモリからプリンタエンジンへのデータ転送を行うＤＭＡ（Direct Memory Access）コントローラのバス占有率が低下して、プリンタエンジンへのデータ転送が、該プリンタエンジンのプロセススピードに間に合わなかった場合には、印刷途中の記録用紙が搬送されるといったオーバーランが発生するという問題があった。
【０００４】
また、上記オーバーランの発生を防止するために、印刷開始後は、ページメモリからプリンタエンジンへのデータ転送を行うＤＭＡコントローラのバスアクセスの優先順位を固定的に最も高くして、ＣＰＵ等の他のモジュールのバスアクセスを制限する方法もあるが、連続して次のページの印刷を行う場合等、次のページの印刷開始が遅れるといった問題もあった。
【０００５】
そこで、本発明は、上述のような従来技術の欠点に鑑みてなされたものであり、現在処理中のページのオーバーランの発生を防止すると共に、次のページの処理開始までの時間を短縮できるデータ処理方法、データ処理装置、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、データを第１の記憶手段に蓄積する第１の記憶工程と、前記第１の記憶手段からデータ出力部へ前記データをデータ転送手段により転送するデータ転送工程と、前記データ出力部において前記データ転送手段によるデータの転送速度とデータ処理部に出力すべきデータの転送速度との差を吸収するために第２の記憶手段にデータを蓄積する第２の記憶工程と、前記第２の記憶手段に蓄積されたデータの量をデータ量検出手段により検出するデータ量検出工程とを有し、前記データ転送手段は、前記データ量検出手段のデータ量検出結果に基づき、バスの使用権を獲得した際のデータの転送量を決定することを特徴とするデータ処理方法を提供する。
【発明の効果】
【０００７】
本発明によれば、現在処理中のページのオーバーランの発生を防止すると共に、次のページの処理開始までの時間を短縮できる。
【発明を実施するための最良の形態】
【０００８】
本発明のデータ処理方法、データ処理装置、プログラム及び記憶媒体の実施形態について、図面を参照しながら説明する。
【０００９】
［第１の実施形態］
図１は、本発明の実施例に係るデータ処理装置である画像出力装置の構成を示すブロック図である。
【００１０】
図１において、１はＣＰＵ（中央処理装置）で、本実施の形態に係る画像出力装置全体の制御を行うと共に、後述する外部Ｉ／Ｆ３より受信する印刷データから後述するプリンタエンジン６に出力可能な印刷データの生成を行うものである。２はＲＯＭ（リードオンリーメモリ）で、ＣＰＵ１のプログラムデータやフォントデータ等を格納するものである。３は外部Ｉ／Ｆ（インタフェース）で、イーサネット（登録商標）等のＬＡＮ（ローカルエリアネットワーク）インターフェースや、ＵＳＢやＩＥＥＥ１２８４等のＩ／Ｏインタフェースである。４はページメモリ（第１の記憶手段）で、ＣＰＵ１が生成した印刷データを一旦蓄積するものである。この際、メモリ容量を節約するために、ＣＰＵ１によって印刷データの圧縮処理を行い、その圧縮データをページメモリ４に蓄積することも可能である。５は画像出力部で、ページメモリ４からのデータ転送、印刷データの伸張処理、後述するプリンタエンジン６へのデータ転送の速度調整等を行うものである。６はレーザービームプリンタ等のプリンタエンジン（データ処理部）である。
【００１１】
次に、画像出力部５の内部構成を説明する。
【００１２】
画像出力部５は、ＤＭＡ（Direct Memory Access）コントローラ（ＤＭＡＣ）５００、デコーダ５０１、ＦＩＦＯ等のバッファメモリ５０２、エンジンＩ／Ｆ（インタフェース）５０３及びデータ蓄積量検出部５０４を有している。
【００１３】
５００はＤＭＡコントローラ（データ転送手段）は、ページメモリ４に蓄積された印刷データの読み出しを行うものである。デコーダ５０１は、ＤＭＡコントローラ５００が転送する印刷データの伸張処理を行い、後述するバッファメモリ５０２に伸張したデータを蓄積するものである。バッファメモリ（第２の記憶手段）５０２は、プリンタエンジン６へのデータ転送の速度調整を行うものである。エンジンＩ／Ｆ５０３は、プリンタエンジン６からの水平同期信号／垂直同期信号に同期して、バッファメモリ５０２から印刷データを読み出し、プリンタエンジン６に出力するものである。データ蓄積量検出部（データ量検出手段）５０４は、バッファメモリ５０２に蓄積したデータ量を検出するものである。ＤＭＡコントローラ５００は、データ蓄積量検出部５０４のデータ蓄積量検出結果に基づいて、バスの使用権を獲得した際に、ページメモリ４から転送する印刷データのデータ転送量を決定するように成っている。
【００１４】
図２は、ＤＭＡコントローラ５００がバスの使用権を１回獲得した際の、データ転送量の設定例を示す図であり、同図において、左側縦軸はデータ転送量を、右側縦軸はバッファメモリ５０２に蓄積されたデータ量を、それぞれ示す。
【００１５】
データ蓄積量検出部５０４は、バッファメモリ５０２に蓄積されたデータ量の検出を行う。ＤＭＡコントローラ５００は、データ蓄積量検出部５０４のデータ蓄積量検出結果に基づいて、バッファメモリ５０２に蓄積したデータ量が１／２以上ある場合は、データ転送量を１バーストに、また、１／４以上且つ１／２未満の場合は、データ転送量を２バーストに、また、１／４未満の場合は、データ転送量を４バーストに、それぞれ設定する仕組みに成っている。
【００１６】
次に、本実施の形態に係る画像出力装置におけるＤＭＡコントローラ５００のデータ転送の動作を、図３に基づき説明する。
【００１７】
図３は、本実施の形態に係る画像出力装置におけるＤＭＡコントローラ５００のデータ転送の動作の流れを示すフローチャートである。
【００１８】
図３において、まず、ステップＳ３０１で、ＤＭＡ転送の要求が発生すると、ＤＭＡコントローラ５００は、バスの使用権を要求する。つぎに、ステップＳ３０２で、バスの使用権を獲得したか否かを、獲得するまで判断する。そして、バスの使用権を獲得すると、以降の処理ステップにおいて、データ蓄積量検出部５０４によるバッファメモリ５０２に蓄積されたデータ量の検出結果に基づき、１回のバス使用権獲得の際に転送するデータ量を決定する。
【００１９】
即ち、本実施形態では、ステップＳ３０３で、バッファデータ量が１／２以上であるか否かを判断する。そして、バッファデータ量が１／２以上であると判断された場合は、ステップＳ３０４へ進んで、１バースト分のデータを転送した後、ステップＳ３０８へ進む。
【００２０】
また、前記ステップＳ３０３においてバッファデータ量が１／２以上でないと判断された場合は、ステップＳ３０５へ進んで、バッファデータ量が１／４以上１／２未満であるか否かを判断する。そして、バッファデータ量が１／４以上１／２未満であると判断された場合は、ステップＳ３０６へ進んで、２バースト分のデータを転送した後、ステップＳ３０８へ進む。
【００２１】
また、前記ステップＳ３０５においてバッファデータ量が１／４未満であると判断された場合は、ステップＳ３０７へ進んで、４バースト分のデータを転送した後、ステップＳ３０８へ進む。
【００２２】
ステップＳ３０８では、ＤＭＡコントローラ５１００は所定のデータ量を転送すると、一旦バスの使用権を開放する。次に、ステップＳ３０９で、ＤＭＡコントローラ５００は、設定された全データ量の転送が終了したか否かを判断する。そして、全データの転送が終了していないと判断された場合は、前記ステップＳ３０１へ戻り、再度バスの使用権を要求し、次のデータ転送を行う。また、前記ステップＳ３０９において全データの転送が終了したと判断された場合は、本処理操作を終了する。
【００２３】
図４は、ＣＰＵ１とＤＭＡコントローラ５００がバスを使用する場合の動作を示すタイミングチャートである。同図において、ＢＲＥＱは、ＤＭＡコントローラ５００がバス使用権の要求を表わすハイアクティブの信号である。また、ＢＧＮＴは、ＤＭＡコントローラ５００がバスの使用権を獲得したことを表わすハイアクティブの信号である。
【００２４】
図４（ａ）は、バッファメモリ５０２のデータ蓄積量が１／２以上の場合で、ＤＭＡコントローラ５００が１回バスを獲得した際に、１バースト分のデータを転送する動作を示す。
【００２５】
図４（ｂ）は、バッファメモリ５０２のデータ蓄積量が１／４以上１／２未満の場合で、ＤＭＡコントローラ５００が１回バスを獲得した際に、２バースト分のデータを転送する動作を示す。
【００２６】
図４（ｃ）は、バッファメモリ５０２のデータ蓄積量が１／４未満の場合で、ＤＭＡコントローラ５００が１回バスを獲得した際に、４バースト分のデータを転送する動作を示す。
【００２７】
以上説明したように、本実施形態によれば、プリンタエンジン６のプロセス速度と、ＤＭＡコントローラ５００によるデータ転送速度との差を吸収するためのバッファメモリ５０２のデータ蓄積量に応じて、ＤＭＡコントローラ５００が１回バスを獲得した際に転送するデータ量が可変となり、バッファメモリ５０２のデータ蓄積量が低下した場合には、ＤＭＡコントローラ５００のバスの占有率を高くして、オーバーランの危険性を回避し、バッファメモリ５０２のデータ蓄積量が多い場合には、ＤＭＡコントローラ５００のバスの占有率を低くすることで、次のページの印刷データの生成処理を行うＣＰＵ１や他のモジュールが、印刷動作中であっても、バスを効率的に使用できるようになり、現在印刷中のページのオーバーランの発生を防止できると共に、次のページの印刷開始までの時間を短縮することができる。
【００２８】
［その他の実施形態］
以上が本発明の実施形態の説明であるが、本発明は、これら実施形態に限られるものではなく、特許請求の範囲で示した機能、または実施形態の構成が持つ機能を達成できる構成であれば、どのようなものであっても適用可能である。
【００２９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体及びプログラムは本発明を構成することになる。
【００３０】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００３１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００３２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施形態に係るデータ処理装置である画像出力装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るデータ処理装置である画像出力装置におけるバッファメモリに蓄積されたデータ量に対する、ＤＭＡコントローラがバスの使用権を獲得した際に転送するデータ量の一例を示す図である。
【図３】本発明の第１の実施形態に係るデータ処理装置である画像出力装置におけるＤＭＡコントローラのデータ転送動作の流れを示すフローチャートである。
【図４】本発明の第１の実施形態に係るデータ処理装置である画像出力装置におけるデータ転送動作を説明するタイミングチャートである。
【符号の説明】
【００３４】
１      ＣＰＵ
２      ＲＯＭ
３      外部Ｉ／Ｆ（インタフェース）
４      ページメモリ（第１の記憶手段）
５      画像出力部
６      プリンタエンジン（データ処理部）
５００  ＤＭＡコントローラ（ＤＭＡＣ：データ転送手段）
５０１  デコーダ
５０２  バッファメモリ（第２の記憶手段）
５０３  エンジンＩ／Ｆ（インタフェース）
５０４  データ蓄積量検出部（データ量検出手段）
【図１】
2005174145.tif 000003
【図２】
2005174145.tif 000004
【図３】
2005174145.tif 000005
【図４】
2005174145.tif 000006