(57)【要約】【課題】節電モード時においてもプログラムをＤＲＡＭ上で動作させるようにして、節電モードから通常モードへの復旧に要する時間を短縮したデータ処理装置を提供する。【解決手段】複数のＤＲＡＭ（１）９、ＤＲＡＭ（２）１０を設け、このうちＤＲＡＭ（１）９にはプログラムを展開せず、データのみが展開される。そしてＤＲＡＭ（２）１０にはプログラム情報とデータの両方が展開される。ＤＲＡＭ（２）１０のプログラムにアクセスする場合はＤＲＡＭデータバス［１５：０］２１の上位ビット［１５：８］を使用してアクセスする。ＤＲＡＭ（１）９を節電モードにしてもプログラム情報にアクセス可能であり、また節電モードから通常モードへの復旧に要する時間が短縮できる。【選択図】  図２
2010181998.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに格納されたプログラム情報を揮発性メモリに展開して実行するデータ処理装置において、
前記揮発性メモリを複数設け、
前記複数の揮発性メモリは、前記不揮発性メモリに格納された前記プログラム情報が展開されずにデータのみが展開される第１の揮発性メモリと、前記プログラム情報が展開されるとともにデータが展開される第２の揮発性メモリとから成り、
前記第２の揮発性メモリの前記プログラム情報にアクセスする場合は小さなデータバス幅でアクセスし、データにアクセスする場合は、大きなデータ幅でアクセスする制御部を設けたことを特徴とするデータ処理装置。
【請求項２】
前記制御部は、前記第１の揮発性メモリを節電モードに設定する請求項１記載のデータ処理装置。
【請求項３】
前記第１の揮発性メモリと前記第２の揮発性メモリとで少なくとも一つのデータバスを構成し、前記第２の揮発性メモリの前記プログラム情報にアクセスする場合は前記データバスの一部を使用してアクセスし、データにアクセスする場合は前記データバスの全部を使用してアクセスする請求項１又は２記載のデータ処理装置。
【請求項４】
前記第２の揮発性メモリに展開されるプログラム情報は割込み処理のプログラム情報である請求項１、２または３記載のデータ処理装置。
【請求項５】
前記揮発性メモリはＤＲＡＭで構成される請求項１〜４のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）を使用するプリンタや複写機などのデータ処理装置に関し、特に節電モードを有するデータ処理装置に関する。
【背景技術】
【０００２】
近年のプリンタや複写機などの電子機器においては、データ処理の高速化と消費電力の低減の両立が求められている。データの高速処理を行うために、低速なＲＯＭ内にあるプログラムを高速なＤＲＡＭにコピーし、ＤＲＡＭ上でプログラムを動作させることが従来、一般に行われている。しかしながら、ＤＲＡＭには消費電力が大きいという問題があり、これを解決しなければならない。
【０００３】
例えば特許文献１（特開平７―１２９２８７号公報）には、ＲＯＭのデータをＤＲＡＭにコピーした後、ＲＯＭの電源をオフすること、及び、ＲＯＭのデータをＤＲＡＭにコピーした後に電源仮停止要求があった場合に、以降のＲＯＭデータアクセスはＲＯＭに対して行うようにするとともに、ＤＲＡＭの電源をオフする。そしてレジューム時にはＤＲＡＭへのリフレッシュを再開し、ＤＲＡＭに対してＲＯＭデータのコピー処理を行うことが開示されている（段落２１乃至段落３１参照）。
【０００４】
また特許文献２（特開２００７−３８５８０号公報）には、節電モードに移行する前に、ＤＲＡＭ上で機器設定情報などを書き込み可能な不揮発性メモリに退避させてＤＲＡＭを節電モードにし、ＲＯＭ上でプログラムを動作させる発明が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７―１２９２８７号公報
【特許文献２】特開２００７−３８５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら上記特許文献１、２においては、節電モードから通常モードに復旧する際に、プログラムと退避したデータをＤＲＡＭに再度展開しなければならないので、復旧に時間を要するという問題があった。特に、上記特許文献２においては、メモリの内容を細分化することにより、復旧に必要か不必要かを判断し、必要充分な情報のみを復旧させるようにしているが、上記特許文献２において、節電モード時にＲＯＭ上でプログラムを動作させる理由は、１個のＤＲＡＭがデータバスの一部のビットを構成する図１５に示すようなデータ処理装置では、プログラムがすべてのＤＲＡＭに展開されるために、プログラムが動作している間はＤＲＡＭを節電モードにできないためである。なお図１５はデータ処理装置の一例を示すブロック図である。なお図１５において、５１はＣＰＵ、５２はデータバス、５３ａ〜５３ｄはＤＲＡＭである。
【０００７】
本発明は、上記課題に鑑みてなされたもので、節電モード時においてもプログラムをＤＲＡＭ上で動作させるようにして、節電モードから通常モードへの復旧に要する時間を短縮したデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、不揮発性メモリに格納されたプログラム情報を揮発性メモリに展開して実行するデータ処理装置において、前記揮発性メモリを複数設け、前記複数の揮発性メモリは、前記不揮発性メモリに格納された前記プログラム情報が展開されずにデータのみが展開される第１の揮発性メモリと、前記プログラム情報が展開されるとともにデータが展開される第２の揮発性メモリとから成り、前記第２の揮発性メモリの前記プログラム情報にアクセスする場合は小さなデータバス幅でアクセスし、データにアクセスする場合は、大きなデータ幅でアクセスする制御部を設けたことを特徴とするものである。
【発明の効果】
【０００９】
上記構成の本発明によれば、第２の揮発性メモリの前記プログラム情報にアクセスする場合は小さなデータバス幅でアクセスするので、第１の揮発性メモリが節電モード時であってもプログラムを動作させることが可能になり、節電モードから通常モードへの復旧に要する時間が短縮できる。
【図面の簡単な説明】
【００１０】
【図１】実施例１のデータ処理装置としてのプリンタ装置を含む印刷システムを示すブロック図である。
【図２】実施例１のデータ処理部の構成を示すブロック図である。
【図３】ＲＯＭに格納されるデータを示す説明図である。
【図４】ＣＰＵの空間アドレス上へのマッピングを示す説明図である。
【図５】ＤＲＡＭ（１）、ＤＲＡＭ（２）で構成されるＤＲＡＭ領域へのマッピングを示す説明図である。
【図６】実施例１の動作を示すフローチャートである。
【図７】実施例１の動作を示すフローチャートである。
【図８】ＤＲＡＭコントローラの構成を示すブロック図である。
【図９】プログラム領域へのライトアクセス動作を示すタイムチャートである。
【図１０】プログラム領域へのリードアクセス動作を示すタイムチャートである。
【図１１】データ領域へのライトアクセス動作を示すタイムチャートである。
【図１２】データ領域へのリードアクセス動作を示すタイムチャートである。
【図１３】実施例２におけるＣＰＵのアドレス空間上へのマッピングを示す説明図である。
【図１４】実施例２におけるＤＲＡＭ（１）９、ＤＲＡＭ（２）１０で構成されるＤＲＡＭ領域へのマッピングを示す説明図である。
【図１５】データ処理装置の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態を図面に従って説明する。なお各図面に共通する要素には同一の符号を付す。図１は本発明の実施例１のデータ処理装置を示すブロック図である。
【実施例１】
【００１２】
実施例１のデータ処理装置は、Ｎビットのデータ信号を持つＤＲＡＭをＭ個使用してＮ×Ｍビットのデータバスを構成し、プログラムがＤＲＡＭ上に格納されているデータ処理装置において、ＤＲＡＭのメモリ空間をプログラム領域とデータ領域に分割して使用し、プログラム領域はデータバスの一部のみを使用するようにアドレスをマッピングし、データ領域はデータバスの全部を使用するようにアドレスをマッピングし、節電モード時にはプログラムが格納されていないＤＲＡＭをセルフリフレッシュモードにすることにより、ＤＲＡＭ上でプログラムを動作させるとともに、消費電力を低減するというものである。
【００１３】
図１は実施例１のデータ処理装置としてのプリンタ装置を含む印刷システムを示すブロック図である。図１において、実施例１のプリンタ装置１は、データ処理部２、メカ制御部３およびメカ部４を有し、またパーソナルコンピュータ５に接続されている。パーソナルコンピュータ５とはＬＡＮやＵＳＢなどの標準的なインタフェースで接続されている。
【００１４】
データ処理部２は、パーソナルコンピュータ５と通信を行い、プリント命令を受信して画像データを生成してメカ制御部３へ送信する。メカ制御部３は、メカ部４を制御してデータ処理部２から受信したデータを用紙に印刷する。メカ部４は画像データを用紙に印刷する機構部を構成する。
【００１５】
図２は実施例１のデータ処理部の構成を示すブロック図である。図２において、データ処理部２には、ＣＰＵ６、ＤＲＡＭコントローラ７、ＤＲＡＭ（１）（揮発性メモリ）９、ＤＲＡＭ（２）（揮発性メモリ）１０、ホストインタフェース制御部１１、メカ制御インタフェース部１２、ＲＯＭコントローラ１３、ＲＯＭ（不揮発性メモリ）１４およびアービタ２２を有する。ＣＰＵ６、ＤＲＡＭコントローラ７、ＲＯＭコントローラ１３、ホストインタフェース制御部１１、メカ制御インタフェース部１３およびアービタ２２はそれぞれシステムバス１５で接続されている。
【００１６】
システムバス１５は、バスリクエスト信号Ｓ_ＲＥＱ、バスグラント信号Ｓ_ＧＮＴ、アドレス信号Ｓ_Ａ、１６ビットのデータ信号Ｓ_Ｄ[１５：０]、アドレス有効信号Ｓ_ＡＳＴＢ、データレディー信号Ｓ_ＤＲＤＹ、データアック信号Ｓ_ＤＡＣＫ、ライト信号Ｓ_ＷＲから構成される。
【００１７】
ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０は、８ビットのデータ信号を持つ標準のＤＤＲ（dynamic device reconfiguration）  ＳＤＲＡＭである。ＤＲＡＭコントローラ７とＤＲＡＭ（１）９、ＤＲＡＭ（２）１０との間には、ＤＲＡＭアドレスバス１７及びＤＲＡＭ制御信号１８が接続される。ＤＲＡＭコントローラ７とＤＲＡＭ（１）９とは、チップ選択信号（１）１９とＤＲＡＭデータバス[１５：０]２１の下位８ビットで接続され、またＤＲＡＭコントローラ７とＤＲＡＭ（２）１０とは、チップ選択信号（２）２０とＤＲＡＭデータバス[１５：０]２１の上位８ビットで接続される。ＤＲＡＭ制御信号１８は、チップ選択信号を除く標準のＤＤＲ  ＳＤＲＡＭの制御信号で構成される。またＲＯＭコントローラ１３はＲＯＭ１４と接続される。
【００１８】
上記構成を有する実施例１は、二つの特徴を有する。一つは、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のそれぞれにチップ選択信号（１）１９、チップ選択信号（２）２０が個別に接続することにより、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０を個別にセルフリフレッシュモードにできることである。もう一つは、ＤＲＡＭ（１）９がＤＲＡＭデータバス[１５：０]２１の下位８ビットを構成し、ＤＲＡＭ（２）１０がＤＲＡＭデータバス[１５：０]２１の上位８ビットを構成することにより、画像データのような大容量のデータのアクセスには、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０の両方を使用して１６ビットの高速アクセスを行い、プログラムのような小さなデータのアクセスにはＤＲＡＭ（１）９だけを使用する８ビットアクセスが可能になる点である。
【００１９】
図３はＲＯＭ１４に格納されるデータを示す説明図である。図３において、ＲＯＭ１４にはブートプログラム３１と圧縮されたシステムプログラム３２が格納されている。
【００２０】
図４はＣＰＵ６の空間アドレス上へのマッピングを示す説明図である。図４において、ＣＰＵ６のアドレス空間には、ＤＲＡＭ領域３３、ＲＯＭ領域３４、ＩＯ領域３５に分割されてマッピングされる。ＤＲＡＭ領域３３はさらに、プログラム領域３３ａおよびデータ領域３３ｂに分割される。プログラム領域３３ａはプログラム変数、機器設定情報などを一時的に記憶するワーク領域を含む。プログラム領域３３ａはアドレス0x0からアドレス0x2＾m−１（0x2の（ｍ−１）乗）まで、データ領域３３ｂはアドレス0x2＾m＊２以上をマッピングしている。またアドレス0x2＾m からアドレス0x2＾m＊２−１までは使用不能領域３３ｃである。
【００２１】
図５はＤＲＡＭ（１）９、ＤＲＡＭ（２）１０で構成されるＤＲＡＭ領域へのマッピングを示す説明図である。図５において、アドレス0x0からアドレス0x2＾m＊2−１までがプログラム領域３６ａにマッピングされ、0x2＾m＊２以上にデータ領域３６ｂをマッピングしている。またアドレス0x0 からアドレス0x2＾m＊２−１までの領域の奇数アドレスは使用不能領域３６ｃである。
【００２２】
次に実施例１の動作を説明する。図６、図７は実施例１の動作を示すフローチャートで、図６はプリンタ装置１が待機状態になるまでの動作を示し、図７は待機状態以降の動作を示す。まずプリンタ装置１に電源が投入されると（ステップ１）、ＣＰＵ６はＲＯＭ１４からブートプログラム３１を読み込み、ブートプログラム３１にしたがって動作を開始する。ＣＰＵ６はコマンドを発行してＤＲＡＭ（１）９、ＤＲＡＭ（２）１０の初期設定を行なう。ＤＲＡＭコントローラ７は、ＤＲＡＭアドレスバス１７、ＤＲＡＭ制御信号１８を制御してＤＲＡＭ（１）９、ＤＲＡＭ（２）１０の初期設定を行なう（ステップ２）。
【００２３】
初期設定が終了すると、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０がリードライト可能になる。ＣＰＵ６はＲＯＭ１４からＤＲＡＭ（２）１０のプログラム領域にシステムプログラム３２をコピーする（ステップ３）。これ以降はＣＰＵ６はＤＲＡＭ（２）１０にコピーされたシステムプログラム３２によりプリンタ装置１を動作させる（ステップ４）。これによりプリンタ装置１は、パーソナルコンピュータ５から印刷要求が発生するまで待機状態となる（ステップ５）。
【００２４】
これ以降は図７のフローチャートにしたがって説明する。ＣＰＵ６は待機状態中に時間をカウントして規定時間が経過すると（ステップ１２）、節電モードへ移行するために、ＤＲＡＭ（１）９をセルフリフレッシュモードにすべくＤＲＡＭコントローラ７にコマンドを発行する。ＤＲＡＭコントローラ７はＤＲＡＭ制御信号１８とチップ選択信号（１）１９の状態を制御してＤＲＡＭ（１）９をセルフリフレッシュモードに設定し、データ処理部２を節電モードにする（ステップ１３）。
【００２５】
データ処理部２が節電モード中にパーソナルコンピュータ５から印刷要求をホストインタフェース部１１に受信すると、ホストインタフェース部１１は割り込みを発生してＣＰＵ６に印刷要求を通知する（ステップ１４）。これを受けたＣＰＵ６は、ＤＲＡＭ（１）９をセルフリフレッシュモードからアイドル状態に移行させるために、ＤＲＡＭコントローラ７にコマンドを発行する。ＤＲＡＭコントローラ７は、ＤＲＡＭ制御信号１８とチップ選択信号（１）１９の状態を制御してＤＲＡＭ（１）９をアイドル状態に設定する（ステップ１５）。
【００２６】
ＤＲＡＭ（１）９がアクセス可能な状態になると、ホストインタフェース部１１が画像データを受信し、受信した画像データをＤＲＡＭコントローラ７に送信する。ＤＲＡＭコントローラ７はＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のそれぞれのデータ領域３６ｂに画像データを書き込む（ステップ１６）。ＣＰＵ６は受信したデータを画像処理してＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のそれぞれのデータ領域３６ｂにラスタデータを生成し、メカ制御インタフェース部１２が、生成されたラスタデータをメカ部４に出力する（ステップ１７）。
【００２７】
データ処理部２が待機状態中にパーソナルコンピュータ５から印刷要求が発生すると（ステップ１１）、ホストインタフェース部１１を介して受信した画像データをＤＲＡＭコントローラ７に送信し、ＤＲＡＭコントローラ７はＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のそれぞれのデータ領域３６ｂに画像データを書き込む（ステップ１６）。ＣＰＵ６は受信したデータを画像処理してＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のそれぞれのデータ領域３６ｂにラスタデータを生成し、メカ制御インタフェース部１２が、生成されたラスタデータをメカ部４に出力する（ステップ１７）。
【００２８】
ＤＲＡＭコントローラ７は、システムバス１４上に発生したＤＲＡＭ（１）９、ＤＲＡＭ（２）１０へのアクセスがプログラム領域へのアクセスなのか、データ領域へのアクセスなのかを判定する。プログラム領域へのライトアクセスの場合はシステムバス１５の１６ビットライトデータを８ビットデータ２個に変換してＤＲＡＭデータバス［１５：０］２１の上位８ビットに出力し、ＤＲＡＭ（２）１０に書き込む。このときＤＲＡＭ（１）９にもライトアクセスが発生するが、無効データである。
【００２９】
プログラム領域へのリードアクセスの場合は、ＤＲＡＭコントローラ７は、ＤＲＡＭ（２）１０から出力された８ビットデータのみを読取り、読取った８ビットデータ２個を１６ビットデータに変換してシステムバス１５に出力する。このときＤＲＡＭ（１）９からもデータが出力されるが、無効データであるので、読み捨てる。
【００３０】
またデータ領域へのライトアクセスの場合は、ＤＲＡＭコントローラ７は、システムバス１５の１６ビットライトデータをそのままＤＲＡＭデータバス［１５：０］２１に出力してＤＲＡＭ（１）９、ＤＲＡＭ（２）１０に書き込む。またデータ領域へのリードアクセスの場合は、ＤＲＡＭコントローラ７は、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０から出力されたデータをＤＲＡＭデータバス［１５：０］２１にラッチしてシステムバス１５に出力する。
【００３１】
図８はＤＲＡＭコントローラの構成を示すブロック図である。図８において、ＤＲＡＭコントローラ７は、データバス幅判定部７ａ、アドレスコマンド制御部７ｂ、データバスバッファ７ｃを有する。データバス幅判定部７ａは、システムバス１５を介してＣＰＵ６から送られる信号により、送信されてくるデータをＤＲＡＭデータバス２１の上位ビットに出力するか、又はＤＲＡＭデータバス２１の全ビットに出力するかを判定する。アドレスコマンド制御部７ｂはＣＰＵ６からのコマンドによりＤＲＡＭアドレスバス１７、ＤＲＡＭ制御信号１８、チップ選択信号（１）１９、チップ選択信号（２）２０を出力する。
【００３２】
次にＣＰＵ６がＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のプログラム領域にライトアクセスした場合の動作を詳細に説明する。図９はＤＲＡＭのプログラム領域へのライトアクセス動作を示すタイムチャートである。
まずクロック０（clk0）において、ＣＰＵ６はシステムバス１５の使用権を取得するためにバスリクエスト信号Ｓ_ＲＥＱをオンする。アービタ２２は、使用権をＣＰＵ６に許可するためにバスグラント信号Ｓ_ＧＮＴをオンする。
【００３３】
クロック１（clk1）において、ＣＰＵ６は、バスグラント信号Ｓ_ＧＮＴがオンされると、アドレス信号Ｓ_ＡにアドレスＡ０を出力し、アドレス有効信号Ｓ_ＡＳＴＢとライト信号Ｓ_ＷＲを１サイクル間オンする。
クロック２（clk2）において、ＤＲＡＭコントローラ７は、アドレス信号Ｓ_Ａとライト信号Ｓ_ＷＲをラッチしてデコードし、プログラム領域へのライトアクセスであると認識する。ＣＰＵ６は、データ信号Ｓ_Ｄ[１５：０]にデータＤ[１５：０]を出力し、データレディー信号Ｓ_ＤＲＤＹをオンする。ＤＲＡＭコントローラ７は、データを受信するためデータアック信号Ｓ_ＤＡＣＫをオンする。ＤＲＡＭコントローラ７はチップ選択信号（２）２０をオンし、ＤＲＡＭ制御信号１８にアクティベートコマンドを出力し、ＤＲＡＭアドレスバス１７にRow adrを出力する。
【００３４】
クロック３（clk3）において、ＣＰＵ６は全てのデータの出力が完了すると、データレディー信号Ｓ_ＤＲＤＹをオフする。ＤＲＡＭコントローラ７は、データレディー信号Ｓ_ＤＲＤＹのオフを検知して、データアック信号Ｓ_ＤＡＣＫをオフし、チップ選択信号（２）２０をオフする。ＤＲＡＭ（２）１０はＲＯＷ（ロー）アクティブ状態になり、ＤＲＡＭ（１）９はアイドル状態のままである。
クロック４（clk4）において、ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオンしてＤＲＡＭ制御信号１８にライトコマンドを出力し、ＤＲＡＭアドレスバス１７にcolum adr0を出力し、ＤＲＡＭデータバス[１５：８]にラッチしたデータＤ[１５：８]を出力する。
【００３５】
クロック５（clk5）において、ＤＲＡＭ（２）１０にデータＤ[１５：８]が書き込まれる。ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオンしてＤＲＡＭ制御信号１８にライトコマンドを出力し、ＤＲＡＭアドレスバス１７にcolum adr1を出力し、ＤＲＡＭデータバス[１５：８]にラッチしたデータＤ[７：０]を出力する。
クロック６（clk6）において、ＤＲＡＭ（２）１０にデータＤ[７：０]が書き込まれる。ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオフしてアクセスを終了する。
【００３６】
次にＣＰＵ６がＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のプログラム領域にリードアクセスした場合の動作を図１０にしたがって詳細に説明する。図１０はＤＲＡＭのプログラム領域へのリードアクセス動作を示すタイムチャートである。
まずクロック０（clk0）において、ＣＰＵ６はシステムバス１５の使用権を取得するためにバスリクエスト信号Ｓ_ＲＥＱをオンする。アービタ２２は、使用権をＣＰＵ６に許可するためにバスグラント信号Ｓ_ＧＮＴをオンする。
クロック１（clk1）において、ＣＰＵ６は、バスグラント信号Ｓ_ＧＮＴがオンされると、アドレス信号Ｓ_ＡにアドレスＡ０を出力し、アドレス有効信号Ｓ_ＡＳＴＢとライト信号Ｓ_ＷＲを１サイクル間オンする。
【００３７】
クロック２（clk2）において、ＤＲＡＭコントローラ７は、アドレス信号Ｓ_Ａとライト信号Ｓ_ＷＲをラッチしてデコードし、プログラム領域へのリードアクセスであると認識する。ＣＰＵ６は、データを受信するためデータレディー信号Ｓ_ＤＲＤＹをオンする。ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオンし、ＤＲＡＭ制御信号１８にアクティベートコマンドを出力し、ＤＲＡＭアドレスバス１７にRow adrを出力する。
クロック３（clk3）において、ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオフする。ＤＲＡＭ（２）１０はＲＯＷ（ロー）アクティブ状態になり、ＤＲＡＭ（１）９はアイドル状態のままである。
【００３８】
クロック４（clk4）において、ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオンしてＤＲＡＭ制御信号１８にリードコマンドを出力し、ＤＲＡＭアドレスバス１７にcolum adr0を出力する。
クロック５（clk5）において、ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオンしてＤＲＡＭ制御信号１８にリードコマンドを出力し、ＤＲＡＭアドレスバス１７にcolum adr1を出力する。
【００３９】
クロック６（clk6）において、ＤＲＡＭ（２）１０は、Row adr、colum adr0に記憶されていたデータＤ[１５：８]をＤＲＡＭデータバス[１５：８]２１に出力する。ＤＲＡＭコントローラ７は、チップ選択信号（２）２０をオフする。
クロック７（clk7）において、ＤＲＡＭコントローラ７は、データＤ[１５：８]をラッチする。ＤＲＡＭ（２）１０は、Row adr、colum adr1に記憶されていたデータＤ[７：０]をＤＲＡＭデータバス[１５：８]２１に出力する。
クロック８（clk8）において、ＤＲＡＭコントローラ７は、データＤ[７：０]をラッチする。
【００４０】
クロック９（clk9）において、ＤＲＡＭコントローラ７は、ラッチしたデータＤ[１５：０]を、システムバス１５のデータ信号Ｓ_Ｄ[１５：０]に出力し、データ信号Ｓ_Ｄ[１５：０]が有効であることを示すためにデータアック信号Ｓ_ＤＡＣＫをオンする。
クロック１０（clk10）において、ＣＰＵ６はデータアック信号Ｓ_ＤＡＣＫがオンしたのを検知して、システムバス１５のデータ信号Ｓ_Ｄ[１５：０]に出力されたデータＤ[１５：０]をラッチし、データレディー信号Ｓ_ＤＲＤＹをオフする。ＤＲＡＭコントローラ７は、データアック信号Ｓ_ＤＡＣＫをオフしてアクセスを終了する。
【００４１】
プログラム領域へのライトアクセスおよびリードアクセスの場合、ＤＲＡＭコントローラ７は、システムバス１５からラッチしたアドレスを２倍してＤＲＡＭ（２）１０に出力する。上述のクロック２、４、５（clk2、clk4、clk5）で出力したRow adr、colum adr0、colum adr1は、アドレスＡ０を２倍したアドレスであり、colum adr1はcolum adr0+1である。
【００４２】
次にＣＰＵ６がＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のデータ領域にライトアクセスした場合の動作を図１１にしたがって詳細に説明する。図１１はＤＲＡＭのデータ領域へのライトアクセス動作を示すタイムチャートである。
まずクロック０（clk0）において、ＣＰＵ６はシステムバス１５の使用権を取得するためにバスリクエスト信号Ｓ_ＲＥＱをオンする。アービタ２２は、使用権をＣＰＵ６に許可するためにバスグラント信号Ｓ_ＧＮＴをオンする。
クロック１（clk1）において、ＣＰＵ６は、バスグラント信号Ｓ_ＧＮＴがオンされると、アドレス信号Ｓ_ＡにアドレスＡ０を出力し、アドレス有効信号Ｓ_ＡＳＴＢとライト信号Ｓ_ＷＲを１サイクル間オンする。
【００４３】
クロック２（clk2）において、ＤＲＡＭコントローラ７は、アドレス信号Ｓ_Ａとライト信号Ｓ_ＷＲをラッチしてデコードし、データ領域へのライトアクセスであると認識する。ＣＰＵ６は、データ信号Ｓ_Ｄ[１５：０]にデータＤ[１５：０]を出力し、データレディー信号Ｓ_ＤＲＤＹをオンする。ＤＲＡＭコントローラ７は、データを受信するためデータアック信号Ｓ_ＤＡＣＫをオンする。ＤＲＡＭコントローラ７は、チップ選択信号（１）１９、チップ選択信号（２）２０をオンし、ＤＲＡＭ制御信号１８にアクティベートコマンドを出力し、ＤＲＡＭアドレスバス１７にRow adrを出力する。
【００４４】
クロック３（clk3）において、ＣＰＵ６は全てのデータの出力が完了すると、データレディー信号Ｓ_ＤＲＤＹをオフする。ＤＲＡＭコントローラ７は、データレディー信号Ｓ_ＤＲＤＹのオフを検知して、データアック信号Ｓ_ＤＡＣＫをオフし、チップ選択信号（１）１９、チップ選択信号（２）２０をオフする。ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０はともにＲＯＷ（ロー）アクティブ状態になる。
【００４５】
クロック４（clk4）において、ＤＲＡＭコントローラ７は、チップ選択信号（１）１９、チップ選択信号（２）２０をオンしてＤＲＡＭ制御信号１８にライトコマンドを出力し、ＤＲＡＭアドレスバス１７にcolum adrを出力し、ＤＲＡＭデータバス[１５：０]にラッチしたデータＤ[１５：０]を出力する。
クロック５（clk5）において、ＤＲＡＭ（１）９にデータＤ[７：０]が書き込まれ、ＤＲＡＭ（２）１０にデータＤ[１５：８]が書き込まれる。ＤＲＡＭコントローラ７は、チップ選択信号（１）１９、チップ選択信号（２）２０をオフしてアクセスを終了する。
【００４６】
プログラム領域へのライトアクセスとデータ領域へのライトアクセスの相違は、データ領域へのライトアクセスの場合は、Row adrとcolum adrはシステムバス１５のアドレス信号Ｓ_Ａと同じであること、及び、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０に同時にアクセスし、１６ビットのデータアクセスを行うということにある。
【００４７】
次にＣＰＵ６がＤＲＡＭ（１）９、ＤＲＡＭ（２）１０のデータ領域にリードアクセスした場合の動作を図１２にしたがって詳細に説明する。図１２はＤＲＡＭのデータ領域へのリードアクセス動作を示すタイムチャートである。
まずクロック０（clk0）において、ＣＰＵ６はシステムバス１５の使用権を取得するためにバスリクエスト信号Ｓ_ＲＥＱをオンする。アービタ２２は、使用権をＣＰＵ６に許可するためにバスグラント信号Ｓ_ＧＮＴをオンする。
クロック１（clk1）において、ＣＰＵ６は、バスグラント信号Ｓ_ＧＮＴがオンされると、アドレス信号Ｓ_ＡにアドレスＡ０を出力し、アドレス有効信号Ｓ_ＡＳＴＢとライト信号Ｓ_ＷＲを１サイクル間オンする。
【００４８】
クロック２（clk2）において、ＤＲＡＭコントローラ７は、アドレス信号Ｓ_Ａとライト信号Ｓ_ＷＲをラッチしてデコードし、データ領域へのリードアクセスであると認識する。ＣＰＵ６は、データを受信するためデータレディー信号Ｓ_ＤＲＤＹをオンする。ＤＲＡＭコントローラ７は、チップ選択信号（１）１９、チップ選択信号（２）２０をオンし、ＤＲＡＭ制御信号１８にアクティベートコマンドを出力し、ＤＲＡＭアドレスバス１７にRow adrを出力する。
【００４９】
クロック３（clk3）において、ＤＲＡＭコントローラ７は、チップ選択信号（１）１９、チップ選択信号（２）２０をオフする。ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０はともにＲＯＷ（ロー）アクティブ状態になる。
クロック４（clk4）において、ＤＲＡＭコントローラ７は、チップ選択信号（１）１９、チップ選択信号（２）２０をオンしてＤＲＡＭ制御信号１８にリードコマンドを出力し、ＤＲＡＭアドレスバス１７にcolum adrを出力する。
クロック５（clk5）において、ＤＲＡＭコントローラ７は、チップ選択信号（１）１９およびチップ選択信号（２）２０をオフする。
【００５０】
クロック６（clk6）において、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０は、Row adr、colum adrに記憶されていたデータＤ[１５：８]をＤＲＡＭデータバス[１５：８]に出力する。またＤＲＡＭ（１）９は、Row adr、colum adrに記憶されていたデータＤ[７：０]をＤＲＡＭデータバス[７：０]に出力する。
クロック７（clk7）において、ＤＲＡＭコントローラ７は、データＤ[１５：０]をラッチする。
【００５１】
クロック８（clk8）において、ＤＲＡＭコントローラ７は、ラッチしたデータＤ[１５：０]を、システムバス１５のデータ信号Ｓ_Ｄ[１５：０]に出力し、データ信号Ｓ_Ｄ[１５：０]が有効であることを示すためにデータアック信号Ｓ_ＤＡＣＫをオンする。
クロック９（clk9）において、ＣＰＵ６はデータアック信号Ｓ_ＤＡＣＫがオンしたのを検知して、システムバス１５のデータ信号Ｓ_Ｄ[１５：０]に出力されたデータＤ[１５：０]をラッチし、データレディー信号Ｓ_ＤＲＤＹをオフする。ＤＲＡＭコントローラ７は、データアック信号Ｓ_ＤＡＣＫをオフしてアクセスを終了する。
【００５２】
プログラム領域へのリードアクセスとデータ領域へのリードアクセスの相違は、データ領域へのリードアクセスの場合は、Row adrとcolum adrはシステムバス１５のアドレス信号Ｓ_Ａと同じであること、及び、ＤＲＡＭ（１）９、ＤＲＡＭ（２）１０に同時にアクセスし、１６ビットのデータアクセスを行うということにある。
【００５３】
以上のように実施例１によれば、ＤＲＡＭ上のアドレス領域をプログラム領域とデータ領域に分けてマッピングし、プログラム領域を記憶するＤＲＡＭはデータバスを構成する一部のＤＲＡＭのみを使用し、小さなデータバス幅でアクセスすることにより、節電モード時においてもプログラムをＤＲＡＭ上で動作させることができ、節電モードから通常モードへの復旧に要する時間を大幅に短縮することができる。またプログラム退避用の不揮発性メモリが不要となり、コストダウンを実現できる。
【００５４】
次に実施例２を説明する。実施例２は、プログラム領域を割込み処理のプログラム領域と割込み処理以外のプログラム領域に分け、割込み処理のプログラム領域のみを、実施例１のように一部のＤＲＡＭのみに記憶させ、割込み処理以外のプログラム領域はデータ領域と同様に全てのＤＲＡＭを使用することにより、データ処理速度を向上させるようにしたものである。
【００５５】
実施例２の構成は、実施例１の構成に対して、ＣＰＵのアドレスのマッピングとプログラムの構成が異なる。図１３は実施例２におけるＣＰＵのアドレス空間上へのマッピングを示す説明図である。図１３において、ＣＰＵ６のアドレス空間は、ＤＲＡＭ領域４３、ＲＯＭ領域４４、ＩＯ領域４５に分割されてマッピングされる。ＤＲＡＭ領域４３はさらに、割込み処理領域４３ａ、プログラム領域４３ｂおよびデータ領域４３ｃに分割される。割込み処理領域４３ａは、割込み処理を行うプログラムの領域と割込み処理に必要なワーク領域である。プログラム領域４３ｂは、割込み処理のプログラムを除くプログラムの領域と、処理に必要なワーク領域を含む。
【００５６】
割込み処理領域４３ａは、アドレス0x0からアドレス0x2＾mまで、プログラム領域４３ｂは、アドレス0x2＾m＊２からアドレス0x2＾p−1まで、データ領域４３ｃは、アドレス0x2＾ｐ以上にマッピングしている。またアドレス0x2＾m からアドレス0x2＾m＊２−１までは使用不能領域４３ｄである。
【００５７】
通常のデータ処理に必要なプログラムはプログラム領域４３ｂに記憶されており、一般にプログラム容量は大きく、データ処理時には大量のアクセスが発生する。割込み処理領域４３ａのプログラムは小さく、アクセス頻度も少ないのが一般的である。
【００５８】
図１４は実施例２におけるＤＲＡＭ（１）９、ＤＲＡＭ（２）１０で構成されるＤＲＡＭ領域へのマッピングを示す説明図である。図１４において、アドレス0x0からアドレス0x2＾m＊2−１までが割込み処理領域４６ａにマッピングされ、アドレス0x2＾m＊2からアドレス0x2＾ｐ−１までがプログラム領域４６ｂにマッピングされ、アドレス0x2＾ｐ以上にデータ領域４６ｃをマッピングしている。またアドレス0x0 からアドレス0x2＾m＊２−１までの領域の奇数アドレスは使用不能領域４６ｄである。
【００５９】
以上のように構成した実施例２の動作は、次の点で実施例１の動作と異なる。即ち、実施例１ではプログラム領域にアクセスしたときに、ＤＲＡＭコントローラ７はＤＲＡＭデータバス２１の［１５：８］ビットのみを使用してアクセスしたが、実施例２においては、割込み処理領域のときのみＤＲＡＭデータバス２１の［１５：８］ビットのみを使用してアクセスし、プログラム領域とデータ領域へのアクセスはＤＲＡＭデータバス２１のすべてのビット信号［１５：０］ビットを使用する。そのため高速なアクセスが可能になる。
【００６０】
以上のように実施例２によれば、割込み処理プログラムとデータ処理プログラムを分割してアドレスをマッピングし、データ処理プログラムへのアクセスにはデータバス幅をすべて使用した高速アクセスを行い、割込み処理プログラムへのアクセスはデータ幅の一部を使用したアクセスを行うようにしたので、高速なデータ処理と節電モードを両立することが可能になる。
【００６１】
以上のように上記各実施例では、ＤＲＡＭとしてＤＤＲ  ＳＤＲＡＭを使用した実施例を説明したが、これに限らず、ＤＤＲ２  ＳＤＲＡＭを使用してもよい。またＤＲＡＭデータバス１７を１６ビットのものとして説明したが、６４ビットとしてデータ信号が８ビットのＤＲＡＭを８個、または１６ビットのＤＲＡＭを４個用いて、プログラム領域を１つのＤＲＡＭ上で動作させるようにしてもよい。
【００６２】
また上記実施例では、データ処理装置としてプリンタ装置を例にして説明したが、ＤＲＡＭ上にプログラムを記憶させて動作させる他の電子機器にも本発明は適用可能である。とくに、ファクシミリ装置や多機能プリンタ装置など、常時通電が必要な電子機器に好適である。
【符号の説明】
【００６３】
１  プリンタ装置
２  データ処理部
６  ＣＰＵ
７  ＤＲＡＭコントローラ
９  ＤＲＡＭ（１）
１０  ＤＲＡＭ（２）
１４  ＲＯＭ
１９、２０  チップ選択信号
２２  ＤＲＡＭデータバス
【図１】
2010181998.tif 000003
【図２】
2010181998.tif 000004
【図３】
2010181998.tif 000005
【図４】
2010181998.tif 000006
【図５】
2010181998.tif 000007
【図６】
2010181998.tif 000008
【図７】
2010181998.tif 000009
【図８】
2010181998.tif 000010
【図９】
2010181998.tif 000011
【図１０】
2010181998.tif 000012
【図１１】
2010181998.tif 000013
【図１２】
2010181998.tif 000014
【図１３】
2010181998.tif 000015
【図１４】
2010181998.tif 000016
【図１５】
2010181998.tif 000017