(57)【要約】【課題】ＲＡＭとＲＯＭとがバスを共有している場合において、ＲＯＭからのバースト転送とＲＡＭからのＤＭＡ転送とを同時期に行うときでも、ビデオデータの転送帯域をできるだけ低下させないようにできる印刷装置を、提供する。【解決手段】印刷装置１０のメモリコントローラ１６４は、ＲＯＭ１４からのバースト転送がＣＰＵ１５から要求された後、ＲＡＭ１３からのＤＭＡ転送がビデオＤＭＡコントローラ１６５から要求されたときには、バースト転送を取り止め、ＲＡＭ１３からのＤＭＡ転送とＲＯＭ１４からのシングル転送とを交互に行う。【選択図】図１
2006175686.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭ及びＲＯＭがともに接続された共通のバスとＣＰＵとＤＭＡコントローラとに接続されたメモリコントローラを搭載した印刷装置であって、
前記メモリコントローラが、
前記ＲＯＭ内の一連のアドレス群を指定する情報とともにバーストリード要求を前記ＣＰＵから受けることによって、前記情報にて指定される前記ＲＯＭ内の一連のアドレスのそれぞれについて順にそのアドレス上の単位データを前記ＣＰＵへ出力する場合において、一つの単位データを前記ＣＰＵへ出力する際には、前記ＤＭＡコントローラからＤＭＡ転送の要求を受けているか否かを判別し、その要求を受けていないときにはそのままその単位データを前記ＣＰＵへ出力し、その要求を受けているときにはその単位データを前記ＣＰＵへ出力した後でＤＭＡコントローラに要求されるデータを前記ＲＡＭから前記ＤＭＡコントローラへ出力する
ことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に、関する。
【背景技術】
【０００２】
周知のように、ＣＰＵとＲＡＭ（メインメモリ）との間でデータ転送が頻繁に発生するコンピュータシステムでは、ＣＰＵ内のキャッシュメモリ（レジスタ）に必要なデータがないというキャッシュミスが命令実行中に発生すると、そのデータをＲＡＭから取り込むいわゆるフェッチ処理が行われるようになっている。
【０００３】
このフェッチ処理においては、局所性の原理に基づいて、キャッシュミスしたデータだけではなく、そのデータを含む所定量の一連のデータをＲＡＭから読み出すようになっている。また、この読み出し処理においては、ＣＰＵは、メモリコントローラに対してＲＡＭ上の各アドレスを個別に指定するのではなく、ＲＡＭ上の連続するアドレスを一括して指定することにより、メモリコントローラに対して各アドレスからデータを連続的に読み出させる。このように一連のデータを連続的に読み出す処理は、一般に、バーストリードと称されており、このような処理によるデータ転送は、バースト転送と称されている。
【特許文献１】特開平０６−２６６６５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、印刷装置の多くは、ビデオデータを一時的に記録しておくためのＲＡＭと、ビデオデータを印刷エンジン用の電気信号に変換するための画像処理コントローラとを備えており、ＲＡＭと画像処理コントローラとの間に介在するＤＭＡコントローラが、ＲＡＭ内のビデオデータをＤＭＡにて画像処理コントローラへ転送するようになっている。
【０００５】
そして、このような印刷装置においても、ＲＡＭをデータの読み出し元として、前述したようなフェッチ処理が行われるようになっているが、この印刷装置が、その内部の各部を制御するための各種のプログラムが記録されたＲＯＭと上記のＲＡＭとがバスを共有している印刷装置である場合には、フェッチ処理におけるデータの読み出し元としてＲＡＭとともにＲＯＭが含まれるようになる。
【０００６】
ところが、このようにＲＡＭとＲＯＭとがバスを共有している場合において、ＲＡＭ内のビデオデータについてＤＭＡコントローラからＤＭＡが要求されたときにＲＯＭからのバーストリードが開始されていると、メモリコントローラは、そのバースト転送が終了するまでビデオデータのＤＭＡ転送を待機させねばならなくなる。すると、印刷エンジンコントローラにおける変換処理に対してビデオデータの供給が間に合わなくなる虞があり（すなわち、ビデオデータの転送帯域が低下する虞があり）、その結果として、印刷エンジンにおいて一定速度で行うべき走査処理が途切れてしまう症状が発生する可能性があった。
【０００７】
本発明は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、ＲＡＭとＲＯＭとがバスを共有している印刷装置において、ＲＯＭからのバースト転送とＲＡＭからのＤＭＡ転送とを同時期に行う場合でも、ビデオデータの転送帯域をできるだけ低下させないようにすることにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために発明された印刷装置は、ＲＡＭ及びＲＯＭがともに接続された共通のバスとＣＰＵとＤＭＡコントローラとに接続されたメモリコントローラを搭載したものであって、前記メモリコントローラが、前記ＲＯＭ内の一連のアドレス群を指定する情報とともにバーストリード要求を前記ＣＰＵから受けることによって、前記情報にて指定される前記ＲＯＭ内の一連のアドレスのそれぞれについて順にそのアドレス上の単位データを前記ＣＰＵへ出力する場合において、一つの単位データを前記ＣＰＵへ出力する際には、前記ＤＭＡコントローラからＤＭＡ転送の要求を受けているか否かを判別し、その要求を受けていないときにはそのままその単位データを前記ＣＰＵへ出力し、その要求を受けているときにはその単位データを前記ＣＰＵへ出力した後でＤＭＡコントローラに要求されるデータを前記ＲＡＭから前記ＤＭＡコントローラへ出力することを、特徴としている。
【０００９】
このように、ＲＯＭからのバースト転送がＣＰＵから要求された後、ＲＡＭからのＤＭＡ転送がＤＭＡコントローラから要求されたときには、バースト転送を取り止め、ＲＡＭからのＤＭＡ転送とＲＯＭからのシングル転送とを交互に行うようにすれば、ＤＭＡ転送ができるだけバースト転送に優先して実行されるようになり、従来のようにバースト転送がＤＭＡ転送に優先することがなくなる。然も、従来のようにバースト転送が終了するまでＤＭＡ転送を待機させることに比べると、ＤＭＡ転送とシングル転送とを交互に行うほうが、ＤＭＡ転送の待機期間がかなり短くなるので、ＤＭＡの転送帯域は、バースト転送が同時期に発生していない場合とさほど変わらなくなる。
【発明の効果】
【００１０】
このように、本発明によれば、ＲＡＭとＲＯＭとがバスを共有している場合において、ＲＯＭからのバースト転送とＲＡＭからのＤＭＡ転送とを同時期に行うときでも、ビデオデータの転送帯域をさほど低下させないようにすることができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面に基づいて、本発明を実施するための一つの形態である印刷装置について説明する。
【００１２】
まず、本実施形態の印刷装置の構成を説明する。
【００１３】
図１は、本実施形態の印刷装置１０の構成図である。印刷装置１０は、図示せぬホストコンピュータから印刷要求を受信して動作する装置であり、主要な構成として、印刷エンジン１１，外部Ｉ／Ｆ１２，ＲＡＭ１３，ＲＯＭ１４，ＣＰＵ１５，及び、ＡＳＩＣ１６を、内蔵している。
【００１４】
印刷エンジン１１は、用紙上への印刷を実際に行なう機構である。外部Ｉ／Ｆ１２は、図示せぬホストコンピュータから印刷要求を受信するユニットであり、具体的には、いわゆる通信インターフェースポートである。
【００１５】
ＲＡＭ１３は、図示せぬホストコンピュータや図示せぬカメラ装置から送信されてきた印刷要求の一時記憶に使用されるとともにその印刷要求に基づいて印刷エンジン１１へ供給するビデオデータを生成するために使用されるメモリである。ＲＯＭ１４は、印刷装置１０を制御するためのプログラムや、印刷要求からビデオデータを生成する際に使用されるフォントデータを記憶した不揮発性メモリである。
【００１６】
ＣＰＵ１５は、ＲＯＭ１４内のプログラムに従って各部を統合的に制御することにより、図示せぬホストコンピュータから送信されてきた印刷要求に応じた印刷を印刷エンジン１１に行なわせるための印刷制御処理や、この印刷装置１０の上面に設けられている図示せぬ操作パネルに対する操作を通じてユーザから実行すべき処理についての指示を取得する処理を行なう制御回路である。
【００１７】
ＡＳＩＣ１６は、各ハードウエア１１〜１５間のデータや指示の遣り取りを制御する半導体集積回路であり、各ハードウエア１１〜１５に接続されている。但し、ＡＳＩＣ１６は、ＲＡＭ１３とＲＯＭ１４とについては、バスＢを介してこれらに接続されている。すなわち、ＲＡＭ１３とＲＯＭ１４はバスＢを共有している。
【００１８】
このＡＳＩＣ１６は、各ハードウエア１１〜１５との間のインターフェースとして、及び、画像処理機能用として、印刷エンジンコントローラ１６１，画像処理コントローラ１６２，ＩＯコントローラ１６３，メモリコントローラ１６４，ビデオＤＭＡコントローラ
１６５，及び、ＣＰＵＩ／Ｆ制御部１６６を、備えている。
【００１９】
印刷エンジンコントローラ１６１は、印刷エンジン１１の動作を制御するための回路モジュールである。画像処理コントローラ１６２は、印刷エンジン１１へ供給する印刷用のビデオデータにスクリーン処理等の画像処理を施して印刷エンジン１１が処理可能な形態の電気信号に変換するための回路モジュールである。ＩＯコントローラ１６３は、外部Ｉ／Ｆ１２や図示せぬ操作パネルを制御するための回路モジュールである。
【００２０】
メモリコントローラ１６４は、ＲＡＭ１３に対するプログラムやデータの読み書きを制御する機能，及び、ＲＯＭ１４からのプログラムやデータの読み出しを制御する機能を有する回路モジュールである。なお、このメモリコントローラ１６４は、ＤＭＡ調停回路１６４ａを内蔵しているが、このＤＭＡ調停回路１６４ａが行う処理の内容については、後で説明する。
【００２１】
ビデオＤＭＡコントローラ１６５は、ＲＡＭ１３から画像処理コントローラ１６２へのビデオデータのＤＭＡ転送を制御するための回路モジュールである。
【００２２】
ＣＰＵＩ／Ｆ制御部１６６は、ビデオＤＭＡコントローラ１６５を除く各コントローラ１６１〜１６４の間，及び、これらコントローラ１６１〜１６４とＣＰＵ１５との間のデータや指示の遣り取りを制御する回路モジュールである。
【００２３】
次に、メモリコントローラ１６４が行う処理について説明する。
【００２４】
図２は、ＡＳＩＣ１６の要部とＲＡＭ１３とＲＯＭ１４とからなる部分の構成図である。また、図３は、メモリコントローラ１６４の動作状態の遷移を示す模式図である。
【００２５】
まず、メモリコントローラ１６４は、何れかの要求があるのを待機する「IDLE」状態（図３参照）であるときに、ＲＡＭ１３からのＤＭＡ転送についての要求の有無をアサート及びネゲート（ハイとロー）にて示す制御信号「VideoDMA_REQ」としてビデオＤＭＡコントローラ１６５から入力される信号において、アサート（要求中）を検知したときには、「IDLE」状態から「VideoDMA」状態へ移行する（図３のI）。
【００２６】
このとき、メモリコントローラ１６４は、アドレスバスを通じてビデオＤＭＡコントローラ１６５からＲＡＭ１３のものとして指定されたアドレスにあるデータを、そのＲＡＭ１３に出力させ、ビデオＤＭＡコントローラ１６５へ転送する（ＤＭＡ転送）。また、メモリコントローラ１６４は、ＲＡＭ１３からのＤＭＡ転送についての応答の有無を示す制御信号「VideoDMA_ACK」としてビデオＤＭＡコントローラ１６５へ出力する信号を、ＤＭＡ転送の期間中だけアサート（応答中）にし、その期間経過後、「VideoDMA_ACK」信号をネゲートにするとともに動作状態を「IDLE」状態に戻す（図３のII）。
【００２７】
また、メモリコントローラ１６４は、「IDLE」状態（図３参照）であるときに、ＲＯＭ１４からのバーストリードについての要求の有無を示す制御信号「CPUROM_REQ」としてＣＰＵＩ／Ｆ制御部１６６から入力される信号において、アサート（要求中）を検知したときには、「IDLE」状態から「ROMACCESS」状態へ移行する（図３のIII）。
【００２８】
この「ROMACCESS」状態において、ＲＯＭ１４内の単一アドレスがＣＰＵＩ／Ｆ制御部１６６からアドレスバスを通じて指定されていたとき（カラムアドレスとロウアドレスとが指定されていたとき）には、メモリコントローラ１６４は、「SINGLE」状態へ移行する（図３のIV）。そして、メモリコントローラ１６４は、ＲＯＭ１４のものとして指定されたアドレスにあるデータを、そのＲＯＭ１４に出力させ、ＣＰＵＩ／Ｆ制御部１６６へ転送する（シングル転送）。また、メモリコントローラ１６４は、ＲＯＭ１４からのリードについての応答の有無を示す制御信号「CPUROM_ACK」としてＣＰＵＩ／Ｆ制御部１６６へ出力する信号を、シングル転送の期間中だけアサート（応答中）にし、その期間経過後、「CPUROM_ACK」信号をネゲートにするとともに動作状態を「IDLE」状態に戻す（図３のV）。
【００２９】
また、「CPUROM_REQ」信号のアサート（要求中）を検知した後の「ROMACCESS」状態（図３参照）において、ＲＯＭ１４内の連続する一連のアドレスがＣＰＵＩ／Ｆ制御部１６６からアドレスバスを通じて指定されていたとき（８アドレス分を一単位とするカラムアドレスのみ指定されたとき）には、メモリコントローラ１６４は、ＲＯＭ１４からの８バーストリードが要求されたとして、「BST1」状態へ移行する（図３のVI）とともに、内部のＤＭＡ調停回路１６４ａの動作を開始させる。
【００３０】
「BST1」状態では、ＤＭＡ調停回路１６４ａが、ＲＯＭ１４のものとして指定された一連のアドレスのうちの一番目のアドレスを示す情報を内部のアドレスバッファ１６４ｂ（図２参照）に記録した後、アドレスバッファ１６４ｂ内の情報にて示されるアドレスにあるデータをＲＯＭ１４に出力させてＣＰＵＩ／Ｆ制御部１６６へシングル転送する処理を、メモリコントローラ１６４に開始させる。
【００３１】
その後、ＤＭＡ調停回路１６４ａは、メモリコントローラ１６４がデータをＣＰＵＩ／Ｆ制御部１６６へ転送する直前の時点で、「VideoDMA_REQ」信号がアサート（要求中）であるか否かを判定する。
【００３２】
そして、ＤＭＡ調停回路１６４ａは、「VideoDMA_REQ」信号がアサート（要求中）でないと判断すると、データをＣＰＵＩ／Ｆ制御部１６６へ転送している期間中だけ「CPUROM_ACK」信号をアサート（応答中）にした後、メモリコントローラ１６４の動作状態を「BST2」状態へ移行させる（図３のVII）。
【００３３】
一方、ＤＭＡ調停回路１６４ａは、「VideoDMA_REQ」信号がアサート（要求中）であると判断すると、データをＣＰＵＩ／Ｆ制御部１６６へ転送している期間中だけ「CPUROM_ACK」信号をアサート（応答中）にした後、メモリコントローラ１６４の動作状態を「BST1」状態から「VideoDMA」状態へ移行させる（図３のVIII）。
【００３４】
続いて、ＤＭＡ調停回路１６４ａは、メモリコントローラ１６４に対し、ビデオＤＭＡコントローラ１６５からＲＡＭ１３のものとして指定されたアドレスにあるデータをそのＲＡＭ１３に出力させてビデオＤＭＡコントローラ１６５へ転送する処理を、開始させる。そして、ＤＭＡ調停回路１６４ａは、そのＤＭＡ転送の期間中だけ「VideoDMA_ACK」信号をアサート（応答中）にし、その期間経過後、「VideoDMA_ACK」信号をネゲートにするとともにメモリコントローラ１６４の動作状態を「VideoDMA」状態から「BST2」状態へ移行させる（図３のIX）。
【００３５】
「BST2」状態では、ＤＭＡ調停回路１６４ａは、アドレスバッファ１６４ｂ内の情報を、１だけインクリメントさせた情報に書き換えた後、そのアドレスバッファ１６４ｂ内の情報にて示されるアドレスにあるデータをＲＯＭ１４に出力させてＣＰＵＩ／Ｆ制御部１６６へシングル転送する処理を、メモリコントローラ１６４に開始させる。
【００３６】
その後、ＤＭＡ調停回路１６４ａは、メモリコントローラ１６４がデータをＣＰＵＩ／Ｆ制御部１６６へ転送する直前の時点で、「VideoDMA_REQ」信号がアサート（要求中）であるか否かを判定する。
【００３７】
そして、ＤＭＡ調停回路１６４ａは、「VideoDMA_REQ」信号がアサート（要求中）でないと判断すると、データをＣＰＵＩ／Ｆ制御部１６６へ転送している期間中だけ「CPUROM_ACK」信号をアサート（応答中）にした後、メモリコントローラ１６４の動作状態を「BST3」状態へ移行させる（図３のX）。
【００３８】
一方、ＤＭＡ調停回路１６４ａは、「VideoDMA_REQ」信号がアサートであると判断すると、データをＣＰＵＩ／Ｆ制御部１６６へ転送している期間中だけ「CPUROM_ACK」信号をアサート（応答中）にした後、メモリコントローラ１６４の動作状態を「VideoDMA」状態へ移行させる（図３のXI）。これにより、メモリコントローラ１６４は、ＤＭＡ転送の処理を行い、その後、ＤＭＡ調停回路１６４ａの指示に従って「BST3」状態へ移行する（図３のXII）。
【００３９】
以下、ＤＭＡ調停回路１６４ａは、「BST2」状態で行う処理と同じ処理を、「BST3」状態から「BST7」状態まで順に繰り返し行った後、メモリコントローラ１６４の動作状態を「BST7」状態から「BST8」状態へ移行させる。
【００４０】
「BST8」状態では、ＤＭＡ調停回路１６４ａは、アドレスバッファ１６４ｂ内の情報を、１だけインクリメントしたも情報に書き換えた後、メモリコントローラ１６４に対し、そのアドレスバッファ１６４ｂ内の情報にて示されるアドレスにあるデータをＲＯＭ１４に出力させてＣＰＵＩ／Ｆ制御部１６６へ転送する処理を開始させ、その後、「VideoDMA_REQ」信号がアサート（要求中）であるか否かを判断することなく、メモリコントローラ１６４の動作状態を「IDLE」状態へ移行させて、自己の動作を停止する。
【００４１】
メモリコントローラ１６４及びＤＭＡ調停回路１６４ａは、以上に説明したような処理を行うようになっているため、以下に記述するように作用する。
【００４２】
図４は、ＤＭＡ転送と８バースト転送とが同時期に要求されたときの各制御信号のシーケンス図である。なお、図４（ａ）は、本実施形態における動作例を示し、図４（ｂ）は、図４（ａ）の動作例との比較のため、８バースト転送が終わるまでＤＭＡ転送を待機させたときの動作例を示している。
【００４３】
また、図５は、ＤＭＡ転送と８バースト転送とが同時期に要求されたときのバスＢ（図１参照）のデータバス上でのデータのシーケンス図である。なお、図５（ａ）は、本実施形態における動作例を示し、図５（ｂ）は、図５（ａ）の動作例との比較のため、８バースト転送が終わるまでＤＭＡ転送を待機させたときの動作例を示す図である。
【００４４】
まず、ＤＭＡ転送中に「CPUROM_REQ」信号がアサートとなった場合において、８バーストリードが要求されたときには（ＲＯＭ１４内の連続する一連のアドレスが指定されたときには）、メモリコントローラ１６４は、ＤＭＡ転送の終了後、「VideoDMA」状態，「IDLE」状態，「ROMACCESS」状態を経て、「BST1」状態へ移行する。
【００４５】
そして、「BST1」状態へ移行した後、ＲＯＭ１４内における指定された一連のアドレスのうちの最初のアドレスのデータを転送する直前の時点において、「VideoDMA_REQ」信号がアサートであったときには、メモリコントローラ１６４は、そのデータを送信した後、ＤＭＡ調停回路１６４ａの判断によってバーストリードを取り止め、ＲＡＭ１３からのＤＭＡ転送を行い、「BST2」状態へ移行する。
【００４６】
「BST2」状態に移行した後においても同様に、アドレスバッファ１６４ｂ内の情報にて示されるアドレスにあるデータを転送する直前の時点において、「VideoDMA_REQ」信号がアサートであったときには、メモリコントローラ１６４は、そのデータを送信した後、ＤＭＡ調停回路１６４ａの判断によってバーストリードを取り止め、ＲＡＭ１３からのＤＭＡ転送を行い、「BST3」状態へ移行する。
【００４７】
そして、バースト転送として連続的に送信されるべき各データの全てについて、ＣＰＵＩ／Ｆ制御部１６６へ送信される直前においてＤＭＡ転送要求があったときには、図４（ａ）及び図５（ａ）に示されるように、バースト転送を構成する予定であった各データのシングル転送と、ＤＭＡ転送とが交互に行われることとなる。
【００４８】
また、図示していないが、何れかの「BSTX」状態（X＝1〜8）への移行後、アドレスバッファ１６４ｂ内の情報にて示されるアドレスにあるデータを転送する直前の時点において、「VideoDMA_REQ」信号がネゲートであったときには、バースト転送が復活し、そのデータ以後のデータが連続的にＣＰＵＩ／Ｆ制御部１６６へ送信されることとなる。
【００４９】
このように、本実施形態によれば、バースト転送とＤＭＡ転送とが同時期に要求されたときであっても、図４（ｂ）及び図５（ｂ）に示されるようにＤＭＡ転送をバースト転送が終了するまで待機させずに、ＤＭＡ転送をシングル転送の一回分だけ待機させるだけで済むので、ＤＭＡ転送の待機時間（図４参照）が短くなる。すなわち、ＤＭＡ転送の転送帯域をさほど低下させなくて済む。
【図面の簡単な説明】
【００５０】
【図１】本実施形態の印刷装置の構成図
【図２】ＡＳＩＣの要部とＲＡＭとＲＯＭからなる部分の構成図
【図３】メモリコントローラの動作状態の遷移を示す模式図
【図４】ＤＭＡ転送と８バースト転送とが同時期に要求されたときの各制御信号のシーケンス図
【図５】ＤＭＡ転送と８バースト転送とが同時期に要求されたときのデータバス上でのデータのシーケンス図
【符号の説明】
【００５１】
１０        印刷装置
１１        印刷エンジン
１３        ＲＡＭ
１４        ＲＯＭ
１５        ＣＰＵ
１６        ＡＳＩＣ
１６４      メモリコントローラ
１６４ａ    ＤＭＡ調停回路
１６４ｂ    アドレスバッファ
１６５      ビデオＤＭＡコントローラ
１６６      ＣＰＵＩ／Ｆ制御部
【図１】
2006175686.tif 000003
【図２】
2006175686.tif 000004
【図３】
2006175686.tif 000005
【図４】
2006175686.tif 000006
【図５】
2006175686.tif 000007