JP2004240693A - プリンタコントローラ - Google Patents
プリンタコントローラ Download PDFInfo
- Publication number
- JP2004240693A JP2004240693A JP2003028855A JP2003028855A JP2004240693A JP 2004240693 A JP2004240693 A JP 2004240693A JP 2003028855 A JP2003028855 A JP 2003028855A JP 2003028855 A JP2003028855 A JP 2003028855A JP 2004240693 A JP2004240693 A JP 2004240693A
- Authority
- JP
- Japan
- Prior art keywords
- data
- state
- rom
- printer
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】プリンタコントローラにおいて、印刷処理速度をなるべく低下させずに、ROMアクセス用の信号線を減少する。
【解決手段】プリンタの起動時に用いるプログラムと、プリンタの印刷処理に用いるプログラムとを記録したシリアルROMと、CPUと、RAMとを備え、前記CPUは、前記プリンタの起動時に用いるプログラムにしたがって、前記プリンタの印刷処理に用いるプログラムをシリアルROMから読み出してRAMにコピーし、コピーしたプログラムにしたがって印刷処理を行なうことを特徴とするプリンタコントローラを提供する。
【選択図】 図1
【解決手段】プリンタの起動時に用いるプログラムと、プリンタの印刷処理に用いるプログラムとを記録したシリアルROMと、CPUと、RAMとを備え、前記CPUは、前記プリンタの起動時に用いるプログラムにしたがって、前記プリンタの印刷処理に用いるプログラムをシリアルROMから読み出してRAMにコピーし、コピーしたプログラムにしたがって印刷処理を行なうことを特徴とするプリンタコントローラを提供する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、プリンタのコントローラに関する。
【0002】
【従来の技術】
プリンタに組み込まれたコントローラは、ホストコンピュータから送信される印刷用データを解釈して、画像データを生成し、印刷エンジンに供給する処理をはじめとした、プリンタにおける種々の処理を制御する。
【0003】
図8は、従来のページプリンタのコントローラの構成の一例を示すブロック図である。本図に示すように、プリンタコントローラは、CPU110に接続されたメモリコントローラ120を備えており、メモリコントローラ120には、ROMコネクタ135に装着されたROM130がROMバス160を介して接続され、また、RAMコネクタ145に装着されたRAM140がRAMバス170を介して接続されている。ROMバス160とRAMバス170とはそれぞれ複数本のアドレス信号線とデータ信号線とを含んでいる。
【0004】
また、メモリコントローラ120には、ページプリンタが備える印刷エンジン、操作パネル、EEPROM、各種インタフェース等を制御するIOコントローラ150が、IOバス180を介して接続されている。
【0005】
図9に示すように、ROM130は、複数のROMチップ131を備えたROMM DIMMにより構成することができる。図10は、ROM130のメモリマップを示しており、本図に示すように、ROM130は、プリンタ起動時の処理を実行するための起動プログラム(IPL)131a、印刷データの解釈、印刷エンジンの制御等の処理を実行するためのプリンタ処理プログラム131b、および、フォントデータ131cを格納している。なお、プリンタ処理プログラム131bは、処理毎のモジュールに分けられていたり、また、圧縮されている場合もある。
【0006】
ページプリンタの電源が投入されると、CPU110は、ROM130にアクセスして、起動プログラム131aを実行し、各種の初期設定を行なう。その後、プリンタ処理プログラム131bをRAM140にコピーして、コピー先の所定のアドレスにジャンプする。
【0007】
RAM140の読み出し速度は、ROM130の読み出し速度よりも非常に高速であるため、CPU110は、起動時処理以降の処理、例えば、印刷実行処理等では、RAM130にコピーされたプリンタ処理プログラムをフェッチして処理を実行することにより、印刷処理速度等を向上させるようにしている。
【0008】
【発明が解決しようとする課題】
アドレス信号線とデータ信号線とを含むROMバス160は、複数の信号を並列(パラレル)に伝送する。このとき、バスの幅(信号線の本数)は、CPU110が扱うアドレス空間、データ長等に対応するようにしているため、一般に、ROMバス160の幅は大きくなる。
【0009】
例えば、CPU110の扱うデータ長が32bitの場合に、ROMバス160に含まれるアドレスバスおよびデータバスが、それぞれ23本および32本の信号線から構成されるとすると、ROMバス160として、合計55本の信号線が必要となる。
【0010】
信号線の数が多くなると、信号ピンの本数も増え、その分の面積が必要となるため、メモリコントローラ120のみならず、プリンタコントローラ基板そのもののサイズも大きくなってしまう。基板のサイズが大きくなることはコストの上昇を招くため、信号線の数はなるべく減らすことが望ましい。また、信号線の数を減らすことができれば、基板のサイズを縮小することでコストを削減することができる上、コントローラ上の信号線の引き回しの制約が緩和され、さらに、基板のサイズの縮小を図ることができる。
【0011】
一方で、信号線の数の削減による印刷処理速度の低下はなるべく少ない方が望ましい。
【0012】
本発明の目的は、プリンタコントローラにおいて、印刷処理速度をなるべく低下させずに、ROMアクセス用の信号線を減少することにある。
【0013】
【課題を解決するための手段】
上記課題を解決するため、本発明によれば、
プリンタの起動時に用いるプログラムと、プリンタの印刷処理に用いるプログラムとを記録したシリアルROMと、
CPUと、
RAMとを備え、
前記CPUは、前記プリンタの起動時に用いるプログラムにしたがって、前記プリンタの印刷処理に用いるプログラムをシリアルROMから読み出してRAMにコピーし、コピーしたプログラムにしたがって印刷処理を行なうことを特徴とするプリンタコントローラが提供される。
【0014】
シリアルROMを用いることで、ROMアクセス用の信号線を少なくすることができる。また、起動時にプリンタの印刷処理に用いるプログラムをシリアルROMからRAMにコピーし、印刷処理時にはRAMにコピーしたプログラムを用いることにより、印刷処理速度への影響を少なくすることができる。
【0015】
本発明は、
メモリコントローラをさらに備え、
前記CPUは、メモリコントローラを介してシリアルROMにアクセスするようにしてもよい。
【0016】
これにより、CPUの負荷を軽減することができる。
【0017】
さらに、本発明は、前記メモリコントローラはシリアルROMから読み出した所定サイズのデータを格納するバッファを備え、
シリアルROMから読み出すべきデータがバッファに格納されている場合には、バッファからデータを読み出すようにしてもよい。
【0018】
プログラムは局所性が高いため、バッファに書き込んだページのヒット率は高いことが期待される。したがって、バッファを用いることにより起動時の処理速度への影響も少なくすることができる。
【0019】
【発明の実施の形態】
本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明を適用したコントローラの構成の一例を説明するためのブロック図である。
【0020】
本実施形態においては、ROMの信号線を削減するため、シリアルROM30を用いるようにしている。一般に、シリアルROM30は、CS(チップセレクト)、SCK(クロック)、SI(シリアル入力)、SO(シリアル出力)の4本の信号線によりデータのやり取りを行なうようになっている。すなわち、CSをアクティブにして、SCKの立ち上がりエッジでSIにオペコード、アドレスの順にビットデータをシリアル入力すると、読み出されたデータがSOから出力される。このとき、シリアルROM30の1ページ、例えば、512バイトのビットデータが連続して出力される。
【0021】
図1に示すように、プリンタコントローラは、CPU10に接続されたメモリコントローラ20を備えている。メモリコントローラ20には、シリアルROM30がROMバス60を介して接続され、また、RAMコネクタ45に装着されたRAM40がRAMバス70を介して接続されている。
【0022】
本図の例では、シリアルROM30を2個用いている。この場合、ROMバス60は、それぞれのチップセレクト線(CS0X、CS1X)、および、SCK、SI、SOの5本の信号線で構成することができる。
【0023】
なお、シリアルROM30のメモリマップは、図10に示した従来例のメモリマップと同様である。すなわち、シリアルROM30は、起動プログラム(IPL)、プリンタ処理プログラム、および、フォントデータをあらかじめ格納している。そして、CPU10は、起動時にシリアルROM30にアクセスして、起動プログラムを実行し、各種の初期設定を行なう。その後、プリンタ処理プログラムをRAM40にコピーして、コピー先の所定のアドレスにジャンプする。
【0024】
このため、CPU10が、シリアルROM30からプログラムを読み出すのは、実質的に、プリンタの起動時の処理に限られる。
【0025】
メモリコントローラ20には、ページプリンタが備える印刷エンジン、操作パネル、EEPROM、各種インタフェース等を制御するIOコントローラが、IOバス80を介して接続されている。
【0026】
本実施形態において、メモリコントローラ20は、シリアルROM30を制御するためのシリアルROM制御回路200を備えている。なお、CPU10、RAM40、IOコントローラ50等は、従来の構成とすることができる。
【0027】
図2は、シリアルROM制御回路200の構成を示すブロック図である。
【0028】
まず、シリアルROM制御回路200に関する信号線について説明する。本図に示すように、シリアルROM制御回路200は、CPU10等と情報のやり取りを行なうための信号線であるAD(0−31)、D(0−31)、ROMREQX、RWX、ROMACKXと、シリアルROM30と情報のやり取りを行なうための信号線であるSI、CSX、SCK、SOとを有している。
【0029】
AD(0−31)は、CPU10からパラレル入力される32bitのアドレス情報である。
【0030】
D(0−31)は、CPU10の要求に応答して、シリアルROM30から読み出したデータを、32bitのパラレル信号としてCPU10に出力する。
【0031】
ROMREQXは、シリアルROM30への要求信号である。メモリコントローラ20が備える図示しないアドレスデコーダから出力される。
【0032】
RWXは、シリアルROM30に対する読み出し命令のとき1を示し、(書き込み可能な)シリアルROM30に対する書き込み命令のとき0を示す入力信号である。
【0033】
ROMACKXは、ROMREQXの応答として、シリアルROM30からの読み出しが終了して、32bitのデータがそろったときに0示す出力信号である。
【0034】
SIは、シリアルROM30のSIに接続され、シリアルROM30にシリアルデータを出力する。
【0035】
CSXは、シリアルROM30のCSに接続され、シリアルROMにチップセレクト信号を出力する。
【0036】
SCKは、シリアルROM30のSCKに接続され、SI、SOの同期クロックを出力する。
【0037】
SOは、シリアルROM30のSOに接続され、シリアルROM30からのシリアルデータを入力する。
【0038】
つぎに、図2に示したシリアルROM制御回路200を構成する各ブロックについて説明する。本図において、シリアルROM制御回路200は、アドレスレジスタ201、ページアドレス変換部202、セレクタ部203、シフトレジスタ部204、ページレジスタ部205、比較部206、ステートマシン部207、シフトレジスタ部208、バッファ部209、リードレジスタ部210を備えている。
【0039】
アドレスレジスタ201は、CPU10から出力されるアドレスデータを一時的に記憶する。
【0040】
ページアドレス変換部202は、CPU10から出力されたアドレスデータを、シリアルROM30のページアドレスに変換する。シリアルROM30の1ページの大きさを512バイトとすると、アドレスデータの下位の9bitを切り取ったアドレスがページアドレスとなる。
【0041】
セレクタ部203は、ステートマシン部207からの指示に基づいて、シフトレジスタ部204へ入力するデータを選択する。具体的には、オペコードとページアドレスとを切り替えて、シフトレジスタ部204に出力する。
【0042】
シフトレジスタ部204は、セレクタ部203から出力されたパラレルのデータを一時的に格納し、SCKの立ち下がりに同期して、1bitずつシフトしながらシリアルROM30のSIにシリアル出力する。
【0043】
ページレジスタ部205は、ページアドレス変換部202が出力したページアドレスを一時的に記憶する。
【0044】
比較部206は、ページアドレス変換部202が出力したページアドレスと、ページレジスタ部205が記憶する前回のページアドレスとが一致しているかどうかを判断し、一致している場合には、HIT信号をアクティブにしてステートマシン部207に出力する。
【0045】
ステートマシン部207は、シリアルROM制御回路200における処理を管理する。ステートマシン部207は、さらに、メインステートマシン部2071、切り出しステートマシン部2072、SRAMステートマシン部2073、および、複数のカウンタを備えて構成される(図3参照)。ステートマシン部207の詳細については後述する。
【0046】
シフトレジスタ部208は、シリアルROM30のSOから出力されたデータを1bitずつ取り込む。
【0047】
バッファ部209は、シフトレジスタ部208を介して入力されるシリアルROM30からの出力データを1ページ分(512バイト)蓄え、リードレジスタ部210に8bitずつ出力する。
【0048】
リードレジスタ部210は、バッファ部209が出力する8bitのデータを4回分溜め、CPU10のバス幅である32bitにそろえて出力する。
【0049】
つぎに、ステートマシン部207の内部構成について、図3のブロック図を参照して説明する。
【0050】
メインステートマシン部2071は、シリアルROM30に対するCS信号およびSCK信号を発生するためのステートマシンである。メインステートマシン部2071の状態遷移については後述する。
【0051】
切り出しステートマシン部2072は、シリアルROM30から1ページ分のデータをバッファ部209に取り込み、指定されたアドレスに対応する4バイトのデータを取り出してCPU10に出力する処理を管理する。
【0052】
SRAMステートマシン部2073は、切り出しステートマシン部2072の下位のステートマシンであり、バッファ部209内のSRAM2091のリード・ライト処理を管理する。
【0053】
CLKCNT2074は、シリアルROM30のクロックであるSCKを生成するためのカウンタである。本実施形態では、プリンタコントローラのクロック(CLK)4個分で、SCKの1クロックを生成するようにしているため、2bitカウンタで構成する。
【0054】
BITCNT2075は、SCKのクロック数をカウントするための5bitのカウンタである。
【0055】
BYTECNT2076は、シリアルROM30から読み込み中のデータのバイト位置を示すカウンタである。シリアルROM30の1ページを512バイトとすると0から511までカウントする。
【0056】
つぎに、バッファ部209の内部構成について、図4のブロック図を参照して説明する。
【0057】
本図に示すように、バッファ部209は、SRAM2091とアドレスカウンタ2092とセレクタ2093とを備えている。
【0058】
本実施例において、SRAM2091は、シリアルROM30の1ページに対応して、512バイトの構成としている。ただし、もっと小さくても大きくてもよいし、512バイトのブロックを複数備えるようにしてもよい。SRAM2091は、シフトレジスタ部208からのデータ(DIN)を入力し、リードレジスタ部210へのデータ(DOUT)を出力する。また、制御信号としてSRAMステートマシン部2073からリード信号(SRDX)とライト信号(SWRX)とが入力される。
【0059】
アドレスカウンタ2092は、SRAM2091のライトアドレスを発生する。後述するように切り出しステートマシン部2072がLD状態の場合に、アドレスロード信号がアクティブとなり、AD(0−31)の下位9bitをロードする。これは、読み取り対象のデータの最下位バイトのページ内におけるアドレスである。そして、後述するようにSRAMステートマシン部2073がWR1状態になると、インクリメント信号がアクティブとなり、カウントをインクリメントする。また、メインステートマシン部2071がCMD状態になるとアドレスカウンタ2092は0に初期化される。アドレスデータと初期化の0データとは、セレクタ2093により切り替えられる。
【0060】
つぎに、図5に示した状態遷移図を参照して、メインステートマシン部2071の状態遷移について説明する。
【0061】
本図において、IDLEは、初期状態である。
【0062】
IDLE状態で、ROMREQXがアクティブとなり、かつ、比較部206からのHIT信号が非アクティブのとき、すなわち、CPU10からシリアルROM30の読み出し命令がなされ、かつ、読み出すデータの含まれるページが前回読み出したページとは別のページである場合は、CMD状態に遷移する。CMD状態では、CSをアクティブにする。また、シフトレジスタ部204は、SIを介して、オペコード(ページリードの場合は、例えば、0x52)をシリアルROM30に出力する。
【0063】
CMD状態で、BITCNT2075が7となり、かつ、CLKCNTが3となると、すなわち、8bitのオペコードの出力が終了すると、ADR状態に遷移する。ADR状態では、シフトレジスタ部204は、SIから24bitのページアドレスをシリアルROM30に出力している。
【0064】
ADR状態で、BITCNT2075が23となり、かつ、CLKCNTが3となると、すなわち、24bitのページアドレスの出力が終了すると、DNTX状態に遷移する。DNTX状態は、シリアルROM30の仕様に対応するものであり、シリアルROM制御回路200は、SIから32bitのダミーデータを出力する。
【0065】
DNTX状態で、BITCNT2075が31となり、かつ、CLKCNTが3となると、すなわち、32bitのダミーデータの出力が終了すると、DATA状態に遷移する。DATA状態では、SOを介して、シフトレジスタ208に、シリアルROM30からの1ページ分のデータが入力される。
【0066】
DATA状態で、BYTECNT2076が511、かつ、BITCNT2075が7、かつ、CLKCNTが3となると、すなわち、1ページ分512バイトのデータの入力が終了すると、CUTDN状態に遷移する。CUTDN状態では、SCを非アクティブにし、1ページ分のデータを記憶したバッファ部209から指定の4バイトのデータを読み出す。その後、IDLE状態に戻る。
【0067】
また、IDLE状態で、ROMREQXがアクティブとなり、かつ、比較部206からのHIT信号がアクティブのとき、すなわち、CPU10からシリアルROM30の読み出し命令がなされ、かつ、読み出すデータの含まれるページが前回読み出したページとは同じページである場合は、バッファ部209が記憶しているデータから読み出すことができ、シリアルROM30にアクセスする必要がないので、メインステートマシン部2071は、CUTDN状態に遷移する。
【0068】
つぎに、図6に示した状態遷移図を参照して、切り出しステートマシン部2072の状態遷移について説明する。切り出しステートマシン部2072は、上述のように、CUTDN状態において、シリアルROM30の1ページ分のデータを記憶したバッファ部209のSRAM2091から、CPU10の指定に係る4バイト分のデータを切り出す処理を管理する。
【0069】
本図において、IDLEは、初期状態である。
【0070】
IDLE状態で、メインステートマシン部2071がCUTDN状態になると、LD状態に遷移する。LD状態では、アドレス情報の下位9bitをバッファ部209内のアドレスカウンタ2092にロードする。
【0071】
そして、R0状態になりバッファ部209から1バイト目を読み出す。以下、R1、R2、R3状態に遷移し、それぞれ、バッファ部209から2バイト目、3バイト目、4バイト目を読み出す。
【0072】
その後、ACK状態に遷移し、ROMACKXをアクティブにして、CPU10に読み出したデータを出力する。
【0073】
つぎに、図7に示した状態遷移図を参照して、SRAMステートマシン部2073の状態遷移について説明する。上述のように、SRAMステートマシン部2073は、切り出しステートマシン部2072の下位のステートマシンであり、バッファ部209内のSRAM2091のリード・ライト処理を管理する。
【0074】
本図において、IDLEは、初期状態である。
【0075】
IDLE状態で、切り出しステートマシン部2072がLD状態になると、RD0状態になる。RD0状態は、リードの1クロック目である。ここで、SRAM2091へは2クロックでアクセスするようにしている。
【0076】
つぎのクロックで、RD1状態に遷移する。RD1状態は、リードの2クロック目である。ここで、SRAM2091へのリード信号をアクティブにしてデータを読み出す。この処理を切り出しステートマシン部2072がR3になるまで繰り返すことにより、4バイト分のデータを読み出すことができる。その後、IDLE状態に戻る。
【0077】
また、IDLE状態でメインステートマシン部2071がDATA状態で、かつ、BITCNTが7で、かつ、CLKCNTが3になると、WR0状態に遷移する。WR0状態は、ライトの1クロック目である。つぎのクロックで、WR1状態に遷移する。WR1状態は、ライトの2クロック目である。ここで、SRAM2091へのライト信号をアクティブにして、シフトレジスタ部208のデータをSRAM2091を書き込む。そして、バッファ部209のアドレスカウンタ2092へのインクリメント信号をアクティブにして、アドレスカウンタ2092をインクリメントする。
【0078】
つぎに、メモリコントローラ20全体の処理動作について説明する。
【0079】
CPU10からメモリコントローラ20にアドレスが出力されることで、シリアルROM30に対するリードサイクルが開始する。
【0080】
メモリコントローラ20内のアドレスデコーダが、CPU10が出力したアドレスを、AD、ROMREQ、RWXに変換する。これらの信号は、シリアルROM制御回路200に入力される。
【0081】
ROMREQXがアクティブになると、ページレジスタ部205が記憶している前回のページアドレスと、要求のあったページアドレスとが比較部206により比較され、一致しているときにはHIT信号がアクティブとなって、メインステートマシン部2071に入力される。
【0082】
一方、一致しないときにはHIT信号は非アクティブであり、メインステートマシン部2071は、CMD状態に推移する。
【0083】
CMD状態で、8bitのオペコードがセレクタ部203によりシフトレジスタ部204に入力される。シフトレジスタ部204は、SCKの1クロック毎に、オペコードをシリアルデータとしてシリアルROM30に出力する。
【0084】
そして、メインステートマシン部2071は、ADR状態に遷移して、24ビットのページアドレスがセレクタ部203によりシフトレジスタ部204に入力される。シフトレジスタ部204は、SCKの1クロック毎に、ページアドレスをシリアルデータとしてシリアルROM30に出力する。
【0085】
つぎのDNTX状態は、将来の拡張のために設けられたものであり、シリアルROM30の仕様にしたがい、32bitのダミーデータを出力してDATA状態に遷移する。
【0086】
DATA状態では、シリアルROM30のSOからシリアルデータが出力されるので、ビット毎にシフトレジスタ208に取り込む。シフトレジスタ208が8bit分のデータを取り込むと、SRAMステートマシン部2073がIDLE状態からWR0状態、続けて、WR1状態に遷移する。
【0087】
WR1状態でバッファ部209のSRAM2091へのライト信号がアクティブになり、このときのシフトレジスタ部208の内容が、SRAM2091に書き込まれる。
【0088】
SRAMステートマシン部2073はIDLE状態に戻り、つぎの8bitが溜まるまで待つ。この動作を1ページ分、すなわち、本実施例では512バイト分繰り返す。これにより、バッファ部209は、1ページ分のすべてのデータを格納することになる。
【0089】
つぎに、メインステートマシン部2071は、CUTDN状態に遷移する。CUTDN状態では、バッファ部209のSRAM2091に書き込まれた1ページ分のデータから、CPU10の要求に対応する4バイト分のデータが読み出される。これにより、シリアルROM30に対するリードサイクルが終了する。
【0090】
読み出されたデータは、CPU10に出力され、CPU10が実行する。
【0091】
なお、バッファ部209のSRAM2091には、1ページ分のデータが書き込まれるため、同じページ内のデータの読み出し要求が続くと、シリアルROM30へのアクセスを行なうことなく、CPU10にデータを出力することができる。
【0092】
すなわち、ページレジスタ部205が記憶している前回のページアドレスと、要求のあったページアドレスとが一致しているときには、比較部206は、HIT信号をアクティブにする。
【0093】
メインステートマシン部2071は、IDLE状態で、ROMREQXとHITとが共にアクティブになると、CUTDN状態に遷移する。そして、バッファ部209のSRAM2091に書き込まれた1ページ分のデータから、CPU10の要求に対応する4バイト分のデータを読み出して、32bitデータとしてCPU10に出力する。これにより、同じページ内のデータの読み出し要求に対する応答時間を大幅に短縮することができる。
【0094】
上述のように、CPU10がシリアルROM30に格納したプログラムを読み出すのは、実質的に起動時に限られ、印刷実行時には、RAM40にコピーしたプログラムにより処理を行なう。このため、シリアルROM30を用いることによる印刷処理速度への影響は少ないので、印刷処理速度をなるべく低下させずに、ROMアクセス用の信号線を減少させることができる。
【0095】
また、起動時の初期設定後に行なわれるシリアルROM30へのアクセスは、プリンタ処理プログラムをコピーする目的である。このため、連続したデータを読み込むことになり、バッファに書き込んだページのヒット率は高いことが期待される。したがって、バッファを用いることにより、シリアルROM30を用いることによる起動時の処理速度への影響も少なくすることができる。
【0096】
なお、本実施形態では、CPU10の負荷を軽減するため、メモリコントローラ200を設け、CPU10はメモリコントローラ200を介してシリアルROM30にアクセスするようにしているが、CPU10自身にシリアルROM制御回路を設けて、CPU10が直接シリアルROM30にアクセスするようにしてもよい。
【0097】
また、本実施形態では、プリンタコントローラのクロック(CLK)を分周してSCKのクロックを発生させているが、高速のシリアルROMとPLL(Phase Lock Loop)とを用いることにより、クロック(CLK)を逓倍したクロックを発生させると、より高速なアクセスが可能となる。
【図面の簡単な説明】
【図1】コントローラの構成の一例を示すブロック図。
【図2】シリアルROM制御回路の構成を示すブロック図。
【図3】ステートマシン部の内部構成を示すブロック図。
【図4】バッファ部の内部構成を示すブロック図。
【図5】メインステートマシン部の状態遷移図。
【図6】切り出しステートマシン部の状態遷移図。
【図7】SRAMステートマシン部の状態遷移図。
【図8】従来のプリンタコントローラの構成を示すブロック図。
【図9】ROMの構成を示すブロック図。
【図10】ROMのメモリマップを示す図。
【符号の説明】
20 メモリコントローラ、45 RAMコネクタ、50 IOコントローラ、60 ROMバス、70 RAMバス、80 IOバス、120 メモリコントローラ、131 ROMチップ、131c フォントデータ、131b プリンタ処理プログラム、131a 起動プログラム、135 ROMコネクタ、145 RAMコネクタ、150 IOコントローラ、160 ROMバス、170RAMバス、180 IOバス、200 シリアルROM制御回路、201 アドレスレジスタ、202 ページアドレス変換部、203 セレクタ部、204 シフトレジスタ部、205 ページレジスタ部、206 比較部、207 ステートマシン部、208 シフトレジスタ、208 シフトレジスタ部、209 バッファ部、210 リードレジスタ部、2071 メインステートマシン部、2072 切り出しステートマシン部、2073 SRAMステートマシン部、2092 アドレスカウンタ、2093 セレクタ
【発明の属する技術分野】
本発明は、プリンタのコントローラに関する。
【0002】
【従来の技術】
プリンタに組み込まれたコントローラは、ホストコンピュータから送信される印刷用データを解釈して、画像データを生成し、印刷エンジンに供給する処理をはじめとした、プリンタにおける種々の処理を制御する。
【0003】
図8は、従来のページプリンタのコントローラの構成の一例を示すブロック図である。本図に示すように、プリンタコントローラは、CPU110に接続されたメモリコントローラ120を備えており、メモリコントローラ120には、ROMコネクタ135に装着されたROM130がROMバス160を介して接続され、また、RAMコネクタ145に装着されたRAM140がRAMバス170を介して接続されている。ROMバス160とRAMバス170とはそれぞれ複数本のアドレス信号線とデータ信号線とを含んでいる。
【0004】
また、メモリコントローラ120には、ページプリンタが備える印刷エンジン、操作パネル、EEPROM、各種インタフェース等を制御するIOコントローラ150が、IOバス180を介して接続されている。
【0005】
図9に示すように、ROM130は、複数のROMチップ131を備えたROMM DIMMにより構成することができる。図10は、ROM130のメモリマップを示しており、本図に示すように、ROM130は、プリンタ起動時の処理を実行するための起動プログラム(IPL)131a、印刷データの解釈、印刷エンジンの制御等の処理を実行するためのプリンタ処理プログラム131b、および、フォントデータ131cを格納している。なお、プリンタ処理プログラム131bは、処理毎のモジュールに分けられていたり、また、圧縮されている場合もある。
【0006】
ページプリンタの電源が投入されると、CPU110は、ROM130にアクセスして、起動プログラム131aを実行し、各種の初期設定を行なう。その後、プリンタ処理プログラム131bをRAM140にコピーして、コピー先の所定のアドレスにジャンプする。
【0007】
RAM140の読み出し速度は、ROM130の読み出し速度よりも非常に高速であるため、CPU110は、起動時処理以降の処理、例えば、印刷実行処理等では、RAM130にコピーされたプリンタ処理プログラムをフェッチして処理を実行することにより、印刷処理速度等を向上させるようにしている。
【0008】
【発明が解決しようとする課題】
アドレス信号線とデータ信号線とを含むROMバス160は、複数の信号を並列(パラレル)に伝送する。このとき、バスの幅(信号線の本数)は、CPU110が扱うアドレス空間、データ長等に対応するようにしているため、一般に、ROMバス160の幅は大きくなる。
【0009】
例えば、CPU110の扱うデータ長が32bitの場合に、ROMバス160に含まれるアドレスバスおよびデータバスが、それぞれ23本および32本の信号線から構成されるとすると、ROMバス160として、合計55本の信号線が必要となる。
【0010】
信号線の数が多くなると、信号ピンの本数も増え、その分の面積が必要となるため、メモリコントローラ120のみならず、プリンタコントローラ基板そのもののサイズも大きくなってしまう。基板のサイズが大きくなることはコストの上昇を招くため、信号線の数はなるべく減らすことが望ましい。また、信号線の数を減らすことができれば、基板のサイズを縮小することでコストを削減することができる上、コントローラ上の信号線の引き回しの制約が緩和され、さらに、基板のサイズの縮小を図ることができる。
【0011】
一方で、信号線の数の削減による印刷処理速度の低下はなるべく少ない方が望ましい。
【0012】
本発明の目的は、プリンタコントローラにおいて、印刷処理速度をなるべく低下させずに、ROMアクセス用の信号線を減少することにある。
【0013】
【課題を解決するための手段】
上記課題を解決するため、本発明によれば、
プリンタの起動時に用いるプログラムと、プリンタの印刷処理に用いるプログラムとを記録したシリアルROMと、
CPUと、
RAMとを備え、
前記CPUは、前記プリンタの起動時に用いるプログラムにしたがって、前記プリンタの印刷処理に用いるプログラムをシリアルROMから読み出してRAMにコピーし、コピーしたプログラムにしたがって印刷処理を行なうことを特徴とするプリンタコントローラが提供される。
【0014】
シリアルROMを用いることで、ROMアクセス用の信号線を少なくすることができる。また、起動時にプリンタの印刷処理に用いるプログラムをシリアルROMからRAMにコピーし、印刷処理時にはRAMにコピーしたプログラムを用いることにより、印刷処理速度への影響を少なくすることができる。
【0015】
本発明は、
メモリコントローラをさらに備え、
前記CPUは、メモリコントローラを介してシリアルROMにアクセスするようにしてもよい。
【0016】
これにより、CPUの負荷を軽減することができる。
【0017】
さらに、本発明は、前記メモリコントローラはシリアルROMから読み出した所定サイズのデータを格納するバッファを備え、
シリアルROMから読み出すべきデータがバッファに格納されている場合には、バッファからデータを読み出すようにしてもよい。
【0018】
プログラムは局所性が高いため、バッファに書き込んだページのヒット率は高いことが期待される。したがって、バッファを用いることにより起動時の処理速度への影響も少なくすることができる。
【0019】
【発明の実施の形態】
本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明を適用したコントローラの構成の一例を説明するためのブロック図である。
【0020】
本実施形態においては、ROMの信号線を削減するため、シリアルROM30を用いるようにしている。一般に、シリアルROM30は、CS(チップセレクト)、SCK(クロック)、SI(シリアル入力)、SO(シリアル出力)の4本の信号線によりデータのやり取りを行なうようになっている。すなわち、CSをアクティブにして、SCKの立ち上がりエッジでSIにオペコード、アドレスの順にビットデータをシリアル入力すると、読み出されたデータがSOから出力される。このとき、シリアルROM30の1ページ、例えば、512バイトのビットデータが連続して出力される。
【0021】
図1に示すように、プリンタコントローラは、CPU10に接続されたメモリコントローラ20を備えている。メモリコントローラ20には、シリアルROM30がROMバス60を介して接続され、また、RAMコネクタ45に装着されたRAM40がRAMバス70を介して接続されている。
【0022】
本図の例では、シリアルROM30を2個用いている。この場合、ROMバス60は、それぞれのチップセレクト線(CS0X、CS1X)、および、SCK、SI、SOの5本の信号線で構成することができる。
【0023】
なお、シリアルROM30のメモリマップは、図10に示した従来例のメモリマップと同様である。すなわち、シリアルROM30は、起動プログラム(IPL)、プリンタ処理プログラム、および、フォントデータをあらかじめ格納している。そして、CPU10は、起動時にシリアルROM30にアクセスして、起動プログラムを実行し、各種の初期設定を行なう。その後、プリンタ処理プログラムをRAM40にコピーして、コピー先の所定のアドレスにジャンプする。
【0024】
このため、CPU10が、シリアルROM30からプログラムを読み出すのは、実質的に、プリンタの起動時の処理に限られる。
【0025】
メモリコントローラ20には、ページプリンタが備える印刷エンジン、操作パネル、EEPROM、各種インタフェース等を制御するIOコントローラが、IOバス80を介して接続されている。
【0026】
本実施形態において、メモリコントローラ20は、シリアルROM30を制御するためのシリアルROM制御回路200を備えている。なお、CPU10、RAM40、IOコントローラ50等は、従来の構成とすることができる。
【0027】
図2は、シリアルROM制御回路200の構成を示すブロック図である。
【0028】
まず、シリアルROM制御回路200に関する信号線について説明する。本図に示すように、シリアルROM制御回路200は、CPU10等と情報のやり取りを行なうための信号線であるAD(0−31)、D(0−31)、ROMREQX、RWX、ROMACKXと、シリアルROM30と情報のやり取りを行なうための信号線であるSI、CSX、SCK、SOとを有している。
【0029】
AD(0−31)は、CPU10からパラレル入力される32bitのアドレス情報である。
【0030】
D(0−31)は、CPU10の要求に応答して、シリアルROM30から読み出したデータを、32bitのパラレル信号としてCPU10に出力する。
【0031】
ROMREQXは、シリアルROM30への要求信号である。メモリコントローラ20が備える図示しないアドレスデコーダから出力される。
【0032】
RWXは、シリアルROM30に対する読み出し命令のとき1を示し、(書き込み可能な)シリアルROM30に対する書き込み命令のとき0を示す入力信号である。
【0033】
ROMACKXは、ROMREQXの応答として、シリアルROM30からの読み出しが終了して、32bitのデータがそろったときに0示す出力信号である。
【0034】
SIは、シリアルROM30のSIに接続され、シリアルROM30にシリアルデータを出力する。
【0035】
CSXは、シリアルROM30のCSに接続され、シリアルROMにチップセレクト信号を出力する。
【0036】
SCKは、シリアルROM30のSCKに接続され、SI、SOの同期クロックを出力する。
【0037】
SOは、シリアルROM30のSOに接続され、シリアルROM30からのシリアルデータを入力する。
【0038】
つぎに、図2に示したシリアルROM制御回路200を構成する各ブロックについて説明する。本図において、シリアルROM制御回路200は、アドレスレジスタ201、ページアドレス変換部202、セレクタ部203、シフトレジスタ部204、ページレジスタ部205、比較部206、ステートマシン部207、シフトレジスタ部208、バッファ部209、リードレジスタ部210を備えている。
【0039】
アドレスレジスタ201は、CPU10から出力されるアドレスデータを一時的に記憶する。
【0040】
ページアドレス変換部202は、CPU10から出力されたアドレスデータを、シリアルROM30のページアドレスに変換する。シリアルROM30の1ページの大きさを512バイトとすると、アドレスデータの下位の9bitを切り取ったアドレスがページアドレスとなる。
【0041】
セレクタ部203は、ステートマシン部207からの指示に基づいて、シフトレジスタ部204へ入力するデータを選択する。具体的には、オペコードとページアドレスとを切り替えて、シフトレジスタ部204に出力する。
【0042】
シフトレジスタ部204は、セレクタ部203から出力されたパラレルのデータを一時的に格納し、SCKの立ち下がりに同期して、1bitずつシフトしながらシリアルROM30のSIにシリアル出力する。
【0043】
ページレジスタ部205は、ページアドレス変換部202が出力したページアドレスを一時的に記憶する。
【0044】
比較部206は、ページアドレス変換部202が出力したページアドレスと、ページレジスタ部205が記憶する前回のページアドレスとが一致しているかどうかを判断し、一致している場合には、HIT信号をアクティブにしてステートマシン部207に出力する。
【0045】
ステートマシン部207は、シリアルROM制御回路200における処理を管理する。ステートマシン部207は、さらに、メインステートマシン部2071、切り出しステートマシン部2072、SRAMステートマシン部2073、および、複数のカウンタを備えて構成される(図3参照)。ステートマシン部207の詳細については後述する。
【0046】
シフトレジスタ部208は、シリアルROM30のSOから出力されたデータを1bitずつ取り込む。
【0047】
バッファ部209は、シフトレジスタ部208を介して入力されるシリアルROM30からの出力データを1ページ分(512バイト)蓄え、リードレジスタ部210に8bitずつ出力する。
【0048】
リードレジスタ部210は、バッファ部209が出力する8bitのデータを4回分溜め、CPU10のバス幅である32bitにそろえて出力する。
【0049】
つぎに、ステートマシン部207の内部構成について、図3のブロック図を参照して説明する。
【0050】
メインステートマシン部2071は、シリアルROM30に対するCS信号およびSCK信号を発生するためのステートマシンである。メインステートマシン部2071の状態遷移については後述する。
【0051】
切り出しステートマシン部2072は、シリアルROM30から1ページ分のデータをバッファ部209に取り込み、指定されたアドレスに対応する4バイトのデータを取り出してCPU10に出力する処理を管理する。
【0052】
SRAMステートマシン部2073は、切り出しステートマシン部2072の下位のステートマシンであり、バッファ部209内のSRAM2091のリード・ライト処理を管理する。
【0053】
CLKCNT2074は、シリアルROM30のクロックであるSCKを生成するためのカウンタである。本実施形態では、プリンタコントローラのクロック(CLK)4個分で、SCKの1クロックを生成するようにしているため、2bitカウンタで構成する。
【0054】
BITCNT2075は、SCKのクロック数をカウントするための5bitのカウンタである。
【0055】
BYTECNT2076は、シリアルROM30から読み込み中のデータのバイト位置を示すカウンタである。シリアルROM30の1ページを512バイトとすると0から511までカウントする。
【0056】
つぎに、バッファ部209の内部構成について、図4のブロック図を参照して説明する。
【0057】
本図に示すように、バッファ部209は、SRAM2091とアドレスカウンタ2092とセレクタ2093とを備えている。
【0058】
本実施例において、SRAM2091は、シリアルROM30の1ページに対応して、512バイトの構成としている。ただし、もっと小さくても大きくてもよいし、512バイトのブロックを複数備えるようにしてもよい。SRAM2091は、シフトレジスタ部208からのデータ(DIN)を入力し、リードレジスタ部210へのデータ(DOUT)を出力する。また、制御信号としてSRAMステートマシン部2073からリード信号(SRDX)とライト信号(SWRX)とが入力される。
【0059】
アドレスカウンタ2092は、SRAM2091のライトアドレスを発生する。後述するように切り出しステートマシン部2072がLD状態の場合に、アドレスロード信号がアクティブとなり、AD(0−31)の下位9bitをロードする。これは、読み取り対象のデータの最下位バイトのページ内におけるアドレスである。そして、後述するようにSRAMステートマシン部2073がWR1状態になると、インクリメント信号がアクティブとなり、カウントをインクリメントする。また、メインステートマシン部2071がCMD状態になるとアドレスカウンタ2092は0に初期化される。アドレスデータと初期化の0データとは、セレクタ2093により切り替えられる。
【0060】
つぎに、図5に示した状態遷移図を参照して、メインステートマシン部2071の状態遷移について説明する。
【0061】
本図において、IDLEは、初期状態である。
【0062】
IDLE状態で、ROMREQXがアクティブとなり、かつ、比較部206からのHIT信号が非アクティブのとき、すなわち、CPU10からシリアルROM30の読み出し命令がなされ、かつ、読み出すデータの含まれるページが前回読み出したページとは別のページである場合は、CMD状態に遷移する。CMD状態では、CSをアクティブにする。また、シフトレジスタ部204は、SIを介して、オペコード(ページリードの場合は、例えば、0x52)をシリアルROM30に出力する。
【0063】
CMD状態で、BITCNT2075が7となり、かつ、CLKCNTが3となると、すなわち、8bitのオペコードの出力が終了すると、ADR状態に遷移する。ADR状態では、シフトレジスタ部204は、SIから24bitのページアドレスをシリアルROM30に出力している。
【0064】
ADR状態で、BITCNT2075が23となり、かつ、CLKCNTが3となると、すなわち、24bitのページアドレスの出力が終了すると、DNTX状態に遷移する。DNTX状態は、シリアルROM30の仕様に対応するものであり、シリアルROM制御回路200は、SIから32bitのダミーデータを出力する。
【0065】
DNTX状態で、BITCNT2075が31となり、かつ、CLKCNTが3となると、すなわち、32bitのダミーデータの出力が終了すると、DATA状態に遷移する。DATA状態では、SOを介して、シフトレジスタ208に、シリアルROM30からの1ページ分のデータが入力される。
【0066】
DATA状態で、BYTECNT2076が511、かつ、BITCNT2075が7、かつ、CLKCNTが3となると、すなわち、1ページ分512バイトのデータの入力が終了すると、CUTDN状態に遷移する。CUTDN状態では、SCを非アクティブにし、1ページ分のデータを記憶したバッファ部209から指定の4バイトのデータを読み出す。その後、IDLE状態に戻る。
【0067】
また、IDLE状態で、ROMREQXがアクティブとなり、かつ、比較部206からのHIT信号がアクティブのとき、すなわち、CPU10からシリアルROM30の読み出し命令がなされ、かつ、読み出すデータの含まれるページが前回読み出したページとは同じページである場合は、バッファ部209が記憶しているデータから読み出すことができ、シリアルROM30にアクセスする必要がないので、メインステートマシン部2071は、CUTDN状態に遷移する。
【0068】
つぎに、図6に示した状態遷移図を参照して、切り出しステートマシン部2072の状態遷移について説明する。切り出しステートマシン部2072は、上述のように、CUTDN状態において、シリアルROM30の1ページ分のデータを記憶したバッファ部209のSRAM2091から、CPU10の指定に係る4バイト分のデータを切り出す処理を管理する。
【0069】
本図において、IDLEは、初期状態である。
【0070】
IDLE状態で、メインステートマシン部2071がCUTDN状態になると、LD状態に遷移する。LD状態では、アドレス情報の下位9bitをバッファ部209内のアドレスカウンタ2092にロードする。
【0071】
そして、R0状態になりバッファ部209から1バイト目を読み出す。以下、R1、R2、R3状態に遷移し、それぞれ、バッファ部209から2バイト目、3バイト目、4バイト目を読み出す。
【0072】
その後、ACK状態に遷移し、ROMACKXをアクティブにして、CPU10に読み出したデータを出力する。
【0073】
つぎに、図7に示した状態遷移図を参照して、SRAMステートマシン部2073の状態遷移について説明する。上述のように、SRAMステートマシン部2073は、切り出しステートマシン部2072の下位のステートマシンであり、バッファ部209内のSRAM2091のリード・ライト処理を管理する。
【0074】
本図において、IDLEは、初期状態である。
【0075】
IDLE状態で、切り出しステートマシン部2072がLD状態になると、RD0状態になる。RD0状態は、リードの1クロック目である。ここで、SRAM2091へは2クロックでアクセスするようにしている。
【0076】
つぎのクロックで、RD1状態に遷移する。RD1状態は、リードの2クロック目である。ここで、SRAM2091へのリード信号をアクティブにしてデータを読み出す。この処理を切り出しステートマシン部2072がR3になるまで繰り返すことにより、4バイト分のデータを読み出すことができる。その後、IDLE状態に戻る。
【0077】
また、IDLE状態でメインステートマシン部2071がDATA状態で、かつ、BITCNTが7で、かつ、CLKCNTが3になると、WR0状態に遷移する。WR0状態は、ライトの1クロック目である。つぎのクロックで、WR1状態に遷移する。WR1状態は、ライトの2クロック目である。ここで、SRAM2091へのライト信号をアクティブにして、シフトレジスタ部208のデータをSRAM2091を書き込む。そして、バッファ部209のアドレスカウンタ2092へのインクリメント信号をアクティブにして、アドレスカウンタ2092をインクリメントする。
【0078】
つぎに、メモリコントローラ20全体の処理動作について説明する。
【0079】
CPU10からメモリコントローラ20にアドレスが出力されることで、シリアルROM30に対するリードサイクルが開始する。
【0080】
メモリコントローラ20内のアドレスデコーダが、CPU10が出力したアドレスを、AD、ROMREQ、RWXに変換する。これらの信号は、シリアルROM制御回路200に入力される。
【0081】
ROMREQXがアクティブになると、ページレジスタ部205が記憶している前回のページアドレスと、要求のあったページアドレスとが比較部206により比較され、一致しているときにはHIT信号がアクティブとなって、メインステートマシン部2071に入力される。
【0082】
一方、一致しないときにはHIT信号は非アクティブであり、メインステートマシン部2071は、CMD状態に推移する。
【0083】
CMD状態で、8bitのオペコードがセレクタ部203によりシフトレジスタ部204に入力される。シフトレジスタ部204は、SCKの1クロック毎に、オペコードをシリアルデータとしてシリアルROM30に出力する。
【0084】
そして、メインステートマシン部2071は、ADR状態に遷移して、24ビットのページアドレスがセレクタ部203によりシフトレジスタ部204に入力される。シフトレジスタ部204は、SCKの1クロック毎に、ページアドレスをシリアルデータとしてシリアルROM30に出力する。
【0085】
つぎのDNTX状態は、将来の拡張のために設けられたものであり、シリアルROM30の仕様にしたがい、32bitのダミーデータを出力してDATA状態に遷移する。
【0086】
DATA状態では、シリアルROM30のSOからシリアルデータが出力されるので、ビット毎にシフトレジスタ208に取り込む。シフトレジスタ208が8bit分のデータを取り込むと、SRAMステートマシン部2073がIDLE状態からWR0状態、続けて、WR1状態に遷移する。
【0087】
WR1状態でバッファ部209のSRAM2091へのライト信号がアクティブになり、このときのシフトレジスタ部208の内容が、SRAM2091に書き込まれる。
【0088】
SRAMステートマシン部2073はIDLE状態に戻り、つぎの8bitが溜まるまで待つ。この動作を1ページ分、すなわち、本実施例では512バイト分繰り返す。これにより、バッファ部209は、1ページ分のすべてのデータを格納することになる。
【0089】
つぎに、メインステートマシン部2071は、CUTDN状態に遷移する。CUTDN状態では、バッファ部209のSRAM2091に書き込まれた1ページ分のデータから、CPU10の要求に対応する4バイト分のデータが読み出される。これにより、シリアルROM30に対するリードサイクルが終了する。
【0090】
読み出されたデータは、CPU10に出力され、CPU10が実行する。
【0091】
なお、バッファ部209のSRAM2091には、1ページ分のデータが書き込まれるため、同じページ内のデータの読み出し要求が続くと、シリアルROM30へのアクセスを行なうことなく、CPU10にデータを出力することができる。
【0092】
すなわち、ページレジスタ部205が記憶している前回のページアドレスと、要求のあったページアドレスとが一致しているときには、比較部206は、HIT信号をアクティブにする。
【0093】
メインステートマシン部2071は、IDLE状態で、ROMREQXとHITとが共にアクティブになると、CUTDN状態に遷移する。そして、バッファ部209のSRAM2091に書き込まれた1ページ分のデータから、CPU10の要求に対応する4バイト分のデータを読み出して、32bitデータとしてCPU10に出力する。これにより、同じページ内のデータの読み出し要求に対する応答時間を大幅に短縮することができる。
【0094】
上述のように、CPU10がシリアルROM30に格納したプログラムを読み出すのは、実質的に起動時に限られ、印刷実行時には、RAM40にコピーしたプログラムにより処理を行なう。このため、シリアルROM30を用いることによる印刷処理速度への影響は少ないので、印刷処理速度をなるべく低下させずに、ROMアクセス用の信号線を減少させることができる。
【0095】
また、起動時の初期設定後に行なわれるシリアルROM30へのアクセスは、プリンタ処理プログラムをコピーする目的である。このため、連続したデータを読み込むことになり、バッファに書き込んだページのヒット率は高いことが期待される。したがって、バッファを用いることにより、シリアルROM30を用いることによる起動時の処理速度への影響も少なくすることができる。
【0096】
なお、本実施形態では、CPU10の負荷を軽減するため、メモリコントローラ200を設け、CPU10はメモリコントローラ200を介してシリアルROM30にアクセスするようにしているが、CPU10自身にシリアルROM制御回路を設けて、CPU10が直接シリアルROM30にアクセスするようにしてもよい。
【0097】
また、本実施形態では、プリンタコントローラのクロック(CLK)を分周してSCKのクロックを発生させているが、高速のシリアルROMとPLL(Phase Lock Loop)とを用いることにより、クロック(CLK)を逓倍したクロックを発生させると、より高速なアクセスが可能となる。
【図面の簡単な説明】
【図1】コントローラの構成の一例を示すブロック図。
【図2】シリアルROM制御回路の構成を示すブロック図。
【図3】ステートマシン部の内部構成を示すブロック図。
【図4】バッファ部の内部構成を示すブロック図。
【図5】メインステートマシン部の状態遷移図。
【図6】切り出しステートマシン部の状態遷移図。
【図7】SRAMステートマシン部の状態遷移図。
【図8】従来のプリンタコントローラの構成を示すブロック図。
【図9】ROMの構成を示すブロック図。
【図10】ROMのメモリマップを示す図。
【符号の説明】
20 メモリコントローラ、45 RAMコネクタ、50 IOコントローラ、60 ROMバス、70 RAMバス、80 IOバス、120 メモリコントローラ、131 ROMチップ、131c フォントデータ、131b プリンタ処理プログラム、131a 起動プログラム、135 ROMコネクタ、145 RAMコネクタ、150 IOコントローラ、160 ROMバス、170RAMバス、180 IOバス、200 シリアルROM制御回路、201 アドレスレジスタ、202 ページアドレス変換部、203 セレクタ部、204 シフトレジスタ部、205 ページレジスタ部、206 比較部、207 ステートマシン部、208 シフトレジスタ、208 シフトレジスタ部、209 バッファ部、210 リードレジスタ部、2071 メインステートマシン部、2072 切り出しステートマシン部、2073 SRAMステートマシン部、2092 アドレスカウンタ、2093 セレクタ
Claims (3)
- プリンタの起動時に用いるプログラムと、プリンタの印刷処理に用いるプログラムとを記録したシリアルROMと、
CPUと、
RAMとを備え、
前記CPUは、前記プリンタの起動時に用いるプログラムにしたがって、前記プリンタの印刷処理に用いるプログラムをシリアルROMから読み出してRAMにコピーし、コピーしたプログラムにしたがって印刷処理を行なうことを特徴とするプリンタコントローラ。 - 請求項1に記載したメモリコントローラにおいて、
メモリコントローラをさらに備え、
前記CPUは、メモリコントローラを介してシリアルROMにアクセスすることを特徴とするプリンタコントローラ。 - 請求項2に記載したメモリコントローラにおいて、
前記メモリコントローラはシリアルROMから読み出した所定サイズのデータを格納するバッファを備え、
シリアルROMから読み出すべきデータがバッファに格納されている場合には、バッファからデータを読み出すことを特徴とするプリンタコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003028855A JP2004240693A (ja) | 2003-02-05 | 2003-02-05 | プリンタコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003028855A JP2004240693A (ja) | 2003-02-05 | 2003-02-05 | プリンタコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004240693A true JP2004240693A (ja) | 2004-08-26 |
Family
ID=32956191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003028855A Pending JP2004240693A (ja) | 2003-02-05 | 2003-02-05 | プリンタコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004240693A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017047560A (ja) * | 2015-08-31 | 2017-03-09 | 東芝テック株式会社 | サーマルプリンタ |
-
2003
- 2003-02-05 JP JP2003028855A patent/JP2004240693A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017047560A (ja) * | 2015-08-31 | 2017-03-09 | 東芝テック株式会社 | サーマルプリンタ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7907469B2 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
JP4901285B2 (ja) | 読み出し性能を向上させることができるメモリカード | |
JP2002109490A (ja) | メモリカードおよびクロック制御回路 | |
JP2004502224A (ja) | フラッシュブリッジとオートロードとを有する集積回路 | |
KR20080012233A (ko) | 버스트 메모리 액세스를 제어하는 메모리 인터페이스, 및그를 제어하는 방법 | |
US20060195665A1 (en) | Access control device, method for changing memory addresses, and memory system | |
WO2006051779A1 (ja) | 不揮発性記憶装置の制御方法、メモリコントローラ及び不揮発性記憶装置 | |
JP2008140078A (ja) | バスブリッジ装置、情報処理装置、およびデータ転送制御方法 | |
JP2004240693A (ja) | プリンタコントローラ | |
JP2008225608A (ja) | メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法 | |
JP2005182538A (ja) | データ転送装置 | |
JP7468112B2 (ja) | インタフェース回路およびインタフェース回路の制御方法 | |
JP2006331391A (ja) | データ処理装置及びデータ処理方法 | |
JP4071930B2 (ja) | シンクロナスdram | |
US5163135A (en) | Computer system and method for setting recovery time upon execution of an I/O command | |
JP2006011926A (ja) | シリアルデータ転送システム、シリアルデータ転送装置、シリアルデータ転送方法及び画像形成装置 | |
JP5966305B2 (ja) | 印刷装置 | |
EP1669876B1 (en) | Ring-buffer based buffering apparatus and method of using memory apparatus | |
US20240126709A1 (en) | Direct memory access controller | |
JPH07129462A (ja) | メモリ制御装置 | |
JP5270605B2 (ja) | マイクロコントローラ | |
JP2007257169A (ja) | アクセス制御方法及び情報処理装置 | |
JP2000172554A (ja) | Sdram使用の画像形成装置 | |
JP3539823B2 (ja) | 割込み制御回路 | |
JP2001022637A (ja) | メモリ制御装置及び情報処理装置 |