Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3429296B2 - How to control the printer - Google Patents
[go: Go Back, main page]

JP3429296B2 - How to control the printer - Google Patents

How to control the printer

Info

Publication number
JP3429296B2
JP3429296B2 JP2002040517A JP2002040517A JP3429296B2 JP 3429296 B2 JP3429296 B2 JP 3429296B2 JP 2002040517 A JP2002040517 A JP 2002040517A JP 2002040517 A JP2002040517 A JP 2002040517A JP 3429296 B2 JP3429296 B2 JP 3429296B2
Authority
JP
Japan
Prior art keywords
printer
data
processor
register
address
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.)
Expired - Lifetime
Application number
JP2002040517A
Other languages
Japanese (ja)
Other versions
JP2002358294A (en
Inventor
ジェイ レンツ,デレク
エム ヤング,リンレイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JP2002358294A publication Critical patent/JP2002358294A/en
Application granted granted Critical
Publication of JP3429296B2 publication Critical patent/JP3429296B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function
    • G06K2215/0091Outputting only video data, e.g. Hard copy of CRT display
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function
    • G06K2215/0094Colour printing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Multi Processors (AREA)
  • Laser Beam Printer (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は制御対象ヘのスキャ
ン・データを同期させる処理等を行うプロセッサを有す
る装置及び制御方法に関する。 【0002】 【従来の技術及び発明が解決しようとする課題】本特許
出願は、1991年7月8日出願され、係属中の米国特
許出願第07/726,929号、発明の名称「シング
ル・チップ・ページ・プリンタ・コントローラ」(Si
ngle Chip Page Printer Co
ntroller)に関連するものであり、当該米国特
許出願の番号を参照することによって当該米国特許出願
の明細書の記載内容が本明細書の一部分を構成するもの
とする。 【0003】本発明は新規なプロセッサを有し、コンピ
ュータ・システムにかかる処理負担を最小限に抑えるこ
とができるプロセッサを有する装置及び制御方法を提供
しようとするものである。 【0004】 【課題を解決するための手段】本発明のプロセッサを有
する装置は、少なくとも命令を発行する第1のプロセッ
サと、メモリと通信する第2のプロセッサを有し、スキ
ャン・データ・フェツチ、シリアル化並びに制御対象と
の同期化を実行する機能を有する装置であって、前記第
1のプロセッサからのコマンドを受信する書き込み専用
のコマンド・レジスタ、コマンド・レジスタの内容を読
み出すことができ、第2のプロセッサの制御と監視に関
する情報を保持する読み出し/書き込み用のステータス
・レジスタ及び動作モードを設定するためのモード・レ
ジスタからなるコマンド/ステータス/モード・レジス
タ手段と、フレーム・バツフア・アドレス及びフオーマ
ット定数を格納するためのレジスタ・ファイル手段と、
メモリ・アドレス及び制御信号を生成するために、前記
フレーム・バッファ・アドレス及び前記フオーマット定
数に対して算術演算を実行する手段と、前記メモリにア
クセスする前に前記メモリ・アドレスを一時的に格納す
るためのアドレス・ラッチ手段と、前記メモリから並列
スキャン・データを受信し、そのスキャン・データをシ
リアル化して制御対象に送るためのシリアル化手段と、
前記コマンド/ステータス/モード・レジスタ手段の制
御の下で前記レジスタ・ファイル手段にアクセスして前
記算術演算を実行する手段並びに前記シリアル化手段を
制御するための制御手段と、を備えたことを特徴とす
る。本発明の制御方法は、少なくとも命令を発行する第
1のプロセッサと、メモリと通信する第2のプロセッサ
を有し、スキャン・データ・フェツチ、シリアル化並び
に制御対象との同期化を実行する制御方法であって、第
1のプロセッサからのコマンドを受信し、第2のプロセ
ッサの制御と監視に関する情報を保持するとともに、プ
リンタの動作モードを設定するステップと、フレーム・
バツファ・アドレス及びフォーマット定数を格納するス
テップと、メモリ・アドレス及び制御信号を生成するた
めに前記フレーム・バッファ・アドレス並びに前記フォ
ーマット定数に対して算術演算を実行するステップと、
前記メモリにアクセスする前に前記メモリ・アドレスを
一時的にラッチするステップと、前記メモリから並列ス
キャン・データを受信するステップと、前記スキャン・
データを制御対象にシリアル化して送るステップと、を
有することを特徴とする。また、本発明の制御方法は、
少なくとも命令を発行する第1のプロセッサと、メモリ
と通信する第2のプロセッサを有し、スキャン・データ
・フェツチ、シリアル化並びにプリンタとの同期化を実
行するプリンタの制御方法であって、フレーム・バツフ
ァ・アドレス及びフオーマット定数をファイル・レジス
タに格納するステップと、前記プリンタがデータを処理
する準備が完了していることを前記第2のプロセッサに
通知するステップと、データが印刷されるべきであるこ
とを前記第1のプロセッサの制御用ソフトウェアによっ
て前記プリンタに示すステップと、前記制御用ソフトウ
エアによって印刷コマンドを前記第2のプロセッサに関
連するコマンド・レジスタにロードするステップと、前
記プリンタを介して前記第2のプロセッサに対してフレ
ーム同期化信号をアサートするステップと、ぺージの上
部マージンのタイムをとるステップと、前記プリンタか
らライン同期化信号が送られて来るのを待つステツプ
と、前記ぺージの左マージンのタイムをとるステツプ
と、前記プリンタに送られるべき画像フレームを前記第
2のプロセッサにてフェッチするステップと、前記プリ
ンタのクロックと同期して、前記画像フレームをスキャ
ン・ラインにシリアル化して前記プリンタに送るステッ
プと、各スキャン・ラインの終わりで、前記画像フレー
ムのスキャンが完了するまで、次のライン同期化信号と
左マージンタイマのスタートを待つステップと、を備え
たことを特徴とする。 【0005】 【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。本発明よる好適な実施例は以下に詳述する
ものであるが、当業者は、本発明が新たに教えるところ
並びに利点から本質的に外れることなく、多くの修正変
更を加えることができることを容易に認識するであろ
う。従って、そうした修正変更もすべて特許請求の範囲
に記載されている通り、本発明の請求範囲内に含まれる
ものである。図1に示すように、ページ・プリンタ・シ
ステムは、典型として、命令用マイクロプロセッサ(i
nstruction microprecesso
r)102、プリンタ・ビデオ・プロセッサ(PVP)
104、ページ・メモリ106(「フレーム・バッフ
ァ」としても知られる)、シリアル通信インタフェース
108、並びにプリンタ・エンジン110を備えてい
る。一般的に、命令用マイクロプロセッサ102は、命
令セットを実行し、それによって用紙のページ上に印刷
されるべきデータを生成する。生成されたデータは、ぺ
一ジ・メモリ106に送られ、そこでプリンタ・ビデオ
・プロセッサ104によって検索される。双方向矢印1
16が示すように、命令用マイクロプロセッサ102は
またプリンタ・ビデオ・プロセッサ104とステータス
信号の交換もする。 【0006】プリンタ・ビデオ・プロセッサ104とプ
リンタ・エンジン110は、プリンタ・ビデオ・プロセ
ッサ104からプリンタ・エンジン110に送られたス
キャン・データの周波数並びにタイミングを制御するた
めに、ハンドシェイク制御信号及びクロックを介して通
信する。汎用非同期送受信器(UART)などのシリア
ル通信インタフェース108は、命令用マイクロプロセ
ッサ102がステータス情報を直接プリンタ・エンジン
110に通信するのを可能にする。 【0007】同時係属出願中の、米国特許出願第07/
726,929号、発明の名称「シングル・チップ・ペ
ージ・プリンタ・コントローラ」(Single Ch
ipPage Printer Controlle
r)において、超大規模集積回路(VLSIC)半導体
チップの形をしたページ・プリンタ・コントローラをプ
リンタ・エンジン110の制御用として提案している。 【0008】図2はページ・プリンタ・システムの具体
的な実現方法を示す図であり、それにおいて、ページ・
プリンタ・コントローラはコンピュータ・システムから
離れているが、プリンタ・エンジンに極めて近い位置に
置かれている。また、ページ・プリンタ・コントローラ
は、コンピュータ・システムに掛かる処理負担を最小限
に抑さえるように、画像操作を行うための周辺構成要素
を内蔵している。 【0009】図2に示すように、ページ・プリンタ・コ
ントローラ202はホスト・コンピュータ・システム2
03から遠く離れた位置でプリンタ・エンジン110に
きわめて接近したところに設置されている。一般的に、
ページ・プリンタ・コントローラ202は、システム・
メモリ204内に格納されたスキャン・データにアクセ
スし、且つ実際の印刷のためにそのデータをプリンタ・
エンジン110に送るように設計されている。 【0010】VLSICのページ・プリンタ・コントロ
ーラ202は、命令用マイクロプロセッサ102、プリ
ンタ・ビデオ・プロセッサ104、シリアル通信インタ
フェース108、入出力インタフェース206並びにメ
モリ・システム208を備えている。命令用マイクロプ
ロセッサ102は、診断を実行するだけでなく、スキャ
ン・データの座標変換、クリッピング、スケーリング、
ラスタ化を実現することができる。入出力インタフェー
ス206は、210から216までの種々の矢印が示す
ように、本質的にページ・プリンタ・コントローラ20
2の内部構成要素のすべてに対するインタフェースであ
るが、それ以外に入出力バス・ネットワーク217に接
続された全ての外部周辺機器に対するインタフェースと
しての役割ももつ。さらに、メモリ・システム208
は、システム・メモリ204内のページ・メモリ106
からのデータがロードされている高速キャシュを含んで
いる。 【0011】オペレーションでは、プリンタ・ビデオ・
プロセッサ104は、入出力インタフェース206に対
し要求を出すことによって、外部ページ・メモリ106
内のデータにアクセスする。要求の度に、プリンタ・ビ
デオ・プロセッサ104は、外部ページ・メモリ106
内のアドレス位置とデータ・サイズを入出力インタフェ
ース206に送る。要求を出したら、プリンタ・ビデオ
・プロセッサ104は次の要求のためにアドレスとデー
タ・サイズを更新する。その一方、入出力インタフェー
ス206は、メモリ・システム208による使用のため
の準備が完了するまで、そのアドレスとデータ・サイズ
を格納しておく。メモリ・システム208は、この情報
を使って、外部ページ・メモリ106から正しいスキャ
ン・データにアクセスして、プリンタ・ビデオ・プロセ
ッサ104にデータを戻す。プリンタ・ビデオ・プロセ
ッサ104は、その後、そのデータを格納して、プリン
タ・エンジン110にそのデータを直列に送り出す。そ
のシリアル通信はプリンタ・エンジン110のクロック
と同期をなす。スキャン・データを割り込みのない流れ
(uninterrupted stream)でプリ
ンタ・エンジン110に送るためには、プリンタ・ビデ
オ・プロセッサ104は、ページ・メモリ106に対す
るデータ要求の処理に伴う待ち時間に見合う十分なスキ
ャン・データを待ち行列(queue)に入れなければ
ならない。 【0012】ページ・プリンタ・コントローラ202の
使用には多くの重要な利点がある。ページ・プリンタ・
コントローラ202は、ページ・メモリ106からスキ
ャン・データヘの直接メモリ・アクセス(direct
memory access:DMA)に対応するこ
とができる。データがアクセスされてから、もしそうし
たければ、システム・メモリ204の外部に位置する命
令用マイクロプロセッサ102によって操作することが
できる。そうすることによって、コンピュータ・システ
ム203に掛かる処理負担を軽減する。さらに、命令用
マイクロプロセッサ102は、コンピュータ・システム
203に関連するプロセッサ同様、簡略命令セット・コ
ンピュータ(reduced instruction
setcomputer:RISC)型のアーキテク
チャの一つであることを明示しているかもしれない。R
ISC型アーキテクチャでは命令数が限られる。そのよ
うな構成はさらに性能を向上させる。 【0013】本発明は新規のビデオ・プロセッサを有す
る装置であり、特にプリンタを制御するためのプロセッ
サである。ビデオ・プロセッサはプリンタと局所的に連
結され、命令プロセッサおよびメモリと通信する。ビデ
オ・プロセッサはタイミング信号を生成し、スキャン・
データ・フェッチ、シリアル化、そしてプリンタの同期
化を行う。 【0014】ビデオ・プロセッサは、レジスタ・ファイ
ル、加算減算器(adder/subtracto
r)、シリアル化、制御のそれぞれの手段を備え持って
いる。レジスタ・ファイル手段はフレーム・バッファ・
アドレスおよびフォーマット定数を格納する。 【0015】加算器手段は、メモリ・アドレスならびに
プリンタ制御信号を生成するために、フレーム・バッフ
ァ・アドレスとフォマット定数に対し算術演算(ari
thmetic operation)を実行する。 【0016】シリアル化手段はメモリから並列データを
受信して、そのデータをシリアル化してプリンタへ送
る。 【0017】最後に、制御手段は命令プロセッサから制
御信号を受信する。制御手段は、レジスタ・ファイル手
段にアクセスする。さらに、加算器手段とシリアル化手
段を制御するのもこの制御手段である。 【0018】特に、ビデオ・プロセッサは、ブリンタに
局所的に置かれるべきプリンタ・コントローラとして提
供されている。プリンタ・コントローラ内のマイクロプ
ロセッサが命令を実行し画像処理を行い、一方ビデオ・
ブロセッサは、スキャン・ステータス及び割り込み信号
の生成以外にスキャン・データのフェッチ、シリアル化
並びにプリンタ・エンジンの同期化を実現するのに必要
な機構を備えている。ビデオ・プロセッサは、入出カイ
ンタフェースに要求を出すことによって、フレーム・バ
ッファとも呼ばれる外部ぺ一ジ・メモリ内のデータにア
クセスする、各要求は相当するデータ・サイズをもつア
ドレスから成り立っている。スキャン・データ要求が出
されたら、ビデオ・プロセッサは次の要求のためにアド
レスおよびデータ・サイズを更新する。要求データを受
信すると、ビデオ・プロセッサはスキャン・データを直
列にプリンタ・エンジンに送信する。スキャン・データ
を割り込みのない流れでプリンタ・エンジンに送るため
には、プリンタ・ビデオ・プロセッサは、ぺ一ジ・メモ
リヘのデータ要求を処理するのに掛かる待ち時問に見合
うのに十分なスキャン・データを待ち行列に入れなけれ
ばならない。 I.アーキテクチャ 本発明によるプリンタ・ビデオ・プロセッサ300のア
ーキテクチャは図3に例を挙げて説明されている。プリ
ンタ・ビデオ・プロセッサ300は、メモリからのスキ
ャン・データのフェッチ、プリンタへのスキャン・デー
タのシリアル化、プリンタとの同期化、スキャン状況信
号の生成、そして割り込み生成を実現するのに必要な機
構を備えている。 【0019】一般的に、プリンタ・ビデオ・プロセッサ
300は2つのサブシステムに分けることができる。第
1のサブシステムはI/Oインタフェース206及びプ
リンタ・エンジン110と通信し、第2のサブシステム
はメモリ・システム208並びにプリンタ・エンジン1
10と通信する。 【0020】図3において、第1サブシステムは、PV
P−IOUインタフェース302、ピクセル・カウンタ
304、レジスタ・ファイル306、読み出し専用メモ
リ(ROM)308、加算器310、アドレス・ラッチ
312、命令/ステータス/モード・レジスタ314・
並びにコントローラ316で構成されている。PVP−
IOUインタフェース302はI/OアドレスとI/O
データバスのフロー(流れ)を制御するためのトライス
テート・バッファを備えている。ピクセル・カウンタ3
04は、印刷されたテキストに関する、左マージンとピ
クセル・スキャンのドット・クロックをカウントするた
めに使われる。レジスタ・ファイル306は、1書き込
み/2読み出しのポート・レジスタ・ファイルである
が、そこにはフレーム・バッファ・アドレスとフォーマ
ットに関する情報が収められており、タイミングとメモ
リ・アドレスを生成するために使用される。レジスタ・
ファイル306に収められているレジスタを以下の表A
に示す。 <表A>レジスタ 目的 Base フレーム・バッファ開始アドレス(バイト・アドレス) Pbase 旧ベース・レジスタ(バンド・バッファ・モード) X max フレーム・バッファ・スキャンの幅 (バイト数で、8の最寄りの倍数に切り上げ) Y step メモリ・アドレス・インクリメント(バイト数) Y max フレーム内のスキャン数 T margin フレーム上部のスキャン数 Bsize バンド・バッファ・サイズ(行数) V mit 垂直方向割り込みスキャン番号 Base current 現ベース・レジスタ(内部使用) Current 現スキャン・メモリ・アドレス(内部使用) X current スキャン内の現Xアドレス(内部使用) Y current 現スキャン番号(内部使用) Data size メモリ・アクセス・サイズ(内部使用) Bcnt 現バンド・バッファ内の現在位置(内部使用) Tmp 0 一時レジスタ(内部使用) Tmp l 一時レジスタ(内部使用) Tmp 2 一時レジスタ(内部使用) さらに、タイミング計算用に2個の別のレジスタが使わ
れているが、レジスタ・ファイルのスペース節約のた
め、レジスタ・ファイル306には含まれていない。そ
の2個のレジスタを以下の表Bに示すが、好適な実施例
ではピクセル・カウンタ304の中に収められている。 <表B>レジスタ 目的 margin 最初のドットの左側までのビデオ・クロック数 マイナス(−)2 X maxl スキャン・ライン内のバイト数マイナス(−)1 レジスタ・ファイル306と密接に関連する読み出し専
用メモリ(ROM)308はフォマット定数セットから
成る。好適な実施例において、ROM308は0、1、
4、8、16の定数から成っている。 【0021】加算器310はレジスタ・ファイル・デー
タ及び/又はROM定数に対して算術演算を行う。その
計算結果は、レジスタ・ファイル306に書き戻すこと
ができるが、アドレス、制御、さらにステータス信号を
生成するために、コントローラ316によって使用され
る。具体的には、加算器310は「キャリー・アウト」
フラグと「ゼロ」フラグを生成し、その2つのフラグは
コントローラ316によって大きさを比較するために使
われる。「キャリー・アウト」フラグは、最初のオペラ
ンドの大きさが2番目のオペランドより大きいか小さい
かのどちらかであるかどうかを示す。一方、「ゼロ」フ
ラグは、最初のオペランドの大きさが2番目のオペラン
ドと同じであるかどうかを示す。例を挙げると、ゼロ・
フラグは、現アドレスが旧アドレスに一致していると、
加算器310によってコントローラ316に送られる。 【0022】アドレス・ラッチ312は現アドレスを格
納する。アドレス・ラッチ312内の現アドレスは、メ
モリ読み出し/書き込み要求時に、PVP―IOUイン
タフェース302に転送される。アドレス・ラッチ31
2は、コントローラ316がI/Oアドレス・バスをコ
ントロールする周期の回数を減らすために必要である。
性能上の理由から、メモリ読み出し/書き込み要求時
に、コントローラ316は、レジスタ・ファイル306
から現アドレスを読み出するのではなく、アドレス・ラ
ッチ312内の現アドレスがI/Oアドレス・バス上に
送り出せるようにトライステート・バッファをイネーブ
ルにする。 【0023】コマンド/ステータス/モード・レジスタ
は、集合的に参照番号314で表示されているが、ソフ
トウエアによるスキャン変換制御、ソフトウエアによる
スキャン変換の監視、並びにソフトウエアによるPVP
割り込みの制御を可能にするために、命令用マイクロプ
ロセッサ102によって読み出しまたは書き込みができ
る場合がある。命令用マイクロプロセッサ102は、診
断を実行する以外に、座標変換、クリッピング、スケー
リング、スキャン・データのラスタ化を実現できる。 【0024】オペレーションでは、コントローラ316
はコマンド・レジスタ314の制御の下でプリンタ・ビ
デオ・プロセッサ300のシーケンスを進めさせる。命
令用マイクロプロセッサ102は、コマンド・レジスタ
314の開始フレーム・ビットをセットすることによっ
て、スキャン・コマンドをロードし、その情報を受けて
コントローラ316はスキャンを開始する。コントロー
ラ316はスキャンを初期設定し、シーケンス従ってペ
ージをスキャンしていく。コントローラ316は、ペー
ジが完了するまで、一連の計算を行ない、シリアライザ
にロードするためのメモリ・アドレスとプリンタ・エン
ジン110に対するタイミングを生成する。ページ完了
時に、コマンド・レジスタ314のスキャン保留ビット
がリセツトされていれば、新しいアドレスからスキャン
が再開される。 【0025】モード・レジスタ314は、以下にコマン
ド・レジスタ314について説明するように、ページ・
オペレーションに先立ってプログラムされている、読み
出し/書き込みのレジスタである。モード・レジスタ3
14はダブル・バッファ方式ではない。さらに、PVP
300が作動している間、モード・レジスタ314をダ
イナミックにプログラムすることは好適な実施例におい
ては許可されていない。モード・レジスタ314の内容
は以下の表Cに記載の通りである。 <表C>モード・ビット リセット・レベル 機能 <0> TMDE 0 タイミング・モード <1> JBMS 0 JBMSモード <2> BBE 0 バンド・バッファ・イネーブル <3> CINT 0 印刷完了割り込みイネーブル <4> VINT 0 垂直方向割り込みイネーブル <5> PRDY 0 PRDY割り込みイネーブル <6> VSREQ 0 VSREQ割り込みイネーブル <7> BBI バンド・バッファ割り込み イネーブル <8> DIV 0 ビデオ・クロック分割選択 <9> BLV 0 ブラック・レベル <31:10> 予備 0 「0」にプログラムする 「タイミング・モード」ビットと「JBMS」ビットは
一緒に、PVP300がモードのI、II、あるいはI
IIのどれでオペレートするかを選択する。この3つの
モードは対話特性が異なる従来型の別々のプリンタに各
々対応している。言い換えれば、本発明によるプリンタ
・ビデオ・プロセッサ300は、ソフトウエアによる初
期設定によって従来型のプリンタ3タイプの1つとの対
話処理が可能になる、変更可能型のシステムである。 【0026】もっと具体的に説明すれば、本明細書に記
載されているモードIでオペレートする従来型のプリン
タでほ、ステータス・レジスタ314の垂直方向同期化
(VSync)ビットをソフトウエアによりセツトする
ことによって、ページ・オペレーションが開始される。
さらに、プリンタ・クロックは高速でのフリー・ランニ
ングである。VSync信号は、プリンタ・エンジン1
10からのFSYNC信号に応えてソフトウェアによっ
て生成されることに注意していただきたい。本明細書に
記載されているモードIIでオペレートする従来型のプ
リンタでは、プリンタのFSYNC信号がプリンタ・ビ
デオ・プロセッサ300をトリガしてページ・オペレー
ションが開始される。さらに、プリンタ・クロックはフ
リー・ランニングである。最後に、本明細書に記載され
ているモードIIIでオペレートする従来型のプリンタ
では、プリンタのFSYNC信号がプリンタ・ビデオ・
プロセツサ300をトリガしてページ・オペレーション
が始まるが、この場合プリンタ・クロックはフリー・ラ
ンニングではない。 【0027】好適な実施例における、JBMS及びTM
DEビットに対するデコーディング・スキームを以下の
表Dに示す。ここに記載した以外にも数多くのデコード
表が考えられ、またプリンタ・モードも3種類以外に定
義並びにエンコード可能なことが理解されるはずであ
る。 <表D>IBMSビット TMDEビット モード 0 1 I 0 0 II 1 1or0 III JBMS及びTMDEビットにより定義されているよう
に、プリンタ・ビデオ・プロセッサ300がモードIで
オペレートするようにプログラムされいている場合、D
IVビットが「0」ならばビデオ入力クロックを8分割
し、「1」ならば16分割にするようにPVPクロック
・ジェネレータ(図4の参照番号408、410)に通
報する。プリンタ・ビデオ・プロセッサ300が、モー
ドIIもしくはモードIIIでオペレートするようにプ
ログラムされている場合、PVPクロック・ジェネレー
タはビデオ入力クロックの分割を行なわない。 【0028】さらに、好適な実施例においては、「バン
ド・バッファ・モード」を実現できるので、それによっ
てメモリ管理が変更可能になっている。BBEビットが
ロジック・ハイ(「1」)であれば、バンド・バッファ
・モードが選択されるが、それ以外は通常の全ページ・
モードが選択される。本明細書において、バンド・バッ
ファ・モードはオペレーションの一つのモードである。
そのモード時、プリンタ・ビデオ・プロセッサ300
は、テキスト・ページを印刷するためにページ・メモリ
内の異なるフレ一ム・バッファを交互に使用する。バン
ド・バッファは各々がBサイズ・スキャン・ラインのメ
モリ・ブロックである。最初のバンド・バッファに属す
る第1アドレスは「ベース」アドレスのことを指してい
る。それ以外のバンド・バッファに属する第1アドレス
は以降「Pベース」アドレスと呼ぶ。 【0029】さらに、モード・レジスタ314におい
て、CINT、VINT、PRDY及びVSREQのビ
ットはそれぞれの割り込み発生源が割り込み可能である
ことを表す。これらのビットのどれかがロジック・ハイ
にセットされていれば、そのときその関連割り込み発生
源は特定のPVP割り込みの生成をイネーブルにする。
好適な実施例においては、一度に複数の割り込みがアク
ティブになる場合がある。 【0030】モード・レジスタ314のPRDYビット
がロジック・ハイにセットされており、そのとき、もし
プリンタ・エンジン110からのプリンク準備完了(P
RDY)信号がインアクティブ(inactive)か
らアクティブ(active)に遷移すれば、割り込み
が通知される。さらに、モード・レジスタ314のビデ
オ・スキャン要求(VSREQ)ビットがロジック・ハ
イにセットされており、そのとき、もしプリンタ・エン
ジン110からのVSREQ信号がインアクティブから
アクティブに遷移すれば、割り込みが通知される。 【0031】BLVビットはロジック・ハイかローのど
ちらかによって、「ホワイト・レベル」か「ブラック・
レベル」のいずれであるかを示す。前記のレベルは、本
発明のプリンタ・ビデオ・プロセッサ300によって可
能になる、別の特徴によるスキャン・データの反転に関
連する。通常、プリンタ・エンジン110に送られたロ
ジック・ロー(「0」)はページのホワイトに相当して
おり、ロジック・ハイ(「1」)はページのブラックに
相当する。好適な実施例においては、ブラック・レベル
がデフォルトのレベルである。反転が選択されていれ
ば、ロジック・ローはブラックに相当し、ハイはホワイ
トに相当する。ただし、マージンは例外で常にホワイト
のまま変わらない。図6に関し後に詳述しているよう
に、スキャン・データはマージンで「ブランキング(b
lanking)」されると言う(ロジック347に送
り込まれたブラック・レベル信号634とブランク信号
636)。 【0032】表Cに示す予備ビットは、望ましくない副
作用が引き起こされるのを防止するためにゼロにプログ
ラムしておく必要がある。予備ビットは生産テスト機構
か将来の性能強化を実現するために備えられている。 【0033】コマンド・レジスタ314は、命令用マイ
クロプロセッサ102内の制御用ソフトウエアからのコ
マンドを受信する書き込み専用のレジスタである。その
内容はステータス・レジスタ314を通じて読み取るこ
とができる。コマンド・レジスタ314の内容を以下の
表Eに示す。 <表E>コマンド・ビット リセット・レベル 機能 <0> STF 0 フレーム開始 <1> RSET 0 リセットPVP(診断用) <2> BKRL 0 裏面印刷、右から左へ <3> ERASE 0 印刷後消去 <31:4> 予備 0 「0」にプログラム コマンド・レジスタ314は、PVPオペレーションを
開始し、ある種のテスト機能をサポートするために使用
される。コマンド・レジスタ314による以外、どんな
オペレーションも開始されない。コマンド・レジスタ3
14は、性能上の理由と変更可能な仕様にするためにダ
ブル・バッファ方式になっている。コマンド・レジスタ
314の最初のローディングによって、PVP300に
よるフレーム生成が許可される。コマンド・レジスタ3
14が2度目にロードされると、2番目のフレームがリ
セット(RSET)もしくはテスト機能でない限り、最
初のフレーム完了後に開始される。続いて、最初のフレ
ームが完了する前に、もしコマンド・レジスタ314が
3度目にロードされると、その結果は予測不能になる場
合がある。ただし、RSETビットがセットされている
場合は例外で、その場合全てのオペレーションが打ち切
られる。 【0034】表EのSTFビットは「開始フレーム」コ
マンドに相当しており、通常のシステム・オペレーショ
ン時にPVP300が実行するタイミングとDMAのオ
ペレーションを開始する。プリンタ・コントローラ・リ
セット信号が要求されると、コマンド・レジスタ314
はクリアされ、全てのオペレーションが中止される。コ
マンド・レジスタ314のRSETビットをセットする
ことによっても、全てのオペレーションを中断すること
ができる。基本的に、RSETビットはコマンド・レジ
スタ314内の他のビットに優先する。 【0035】BKRLビットは、「裏面印刷」が行われ
ようとしているかどうかを表す。裏面印刷がセットされ
ている場合、ページは逆の順序でスキャンされ。即ち、
下から上に、右から左へ。 【0036】ERASEビットはフレーム・バッファが
印刷後消去されるかどうかを表す。より具体的には、メ
モリ・ワードが印刷のためにプリンタ・ビデオ・プロセ
ッサ300によって読み出されてから、そのメモリ・ワ
ードは消去される。この特徴により性能をさらに向上さ
せることができる。 【0037】表Eに示す予備ビットは、望ましくない副
作用が引き起こされるのを防止するためにゼロにプログ
ラムしておかなければならない。この予備ビットは生産
テスト機構か将来の性能強化を実現するために使われる
ことがある。 【0038】ステータス・レジスタ314は、PVP3
00の制御と監視に関する情報を保持している。ステー
タス・レジスタ314は読み出し/書き込み用のレジス
タで、その内容は以下の表Fに示す通りである。 <表F〉ステータス・ビット 読み/書き 機能 <0> FIP 読み出し フレーム進行中 <1> FPD 読み出し フレーム保留中 <2> CINTA 読み出し ページ完了 <3> VINTA 読み出し/クリア 垂直方向タイム完了 <4> BBIA 読み出し/クリア (バンド)バツファ完了 <5> PRDYAP 読み出し/クリア PRDY正エッジ遷移受信 <6> PRDYAN 読み出し/クリア PRDY負エッジ遷移受信 <7> VSREQA 読み出し/クリア VSREQ遷移受信 <8> LSYNC 読み出し LSYNCピン・レベル <9> FSYNC 読み出し FSYNCピン・レベル <10> PRDY 読み出し PRDYピン・レベル <11> PPRDY 読み出し PPRDYピン・レベル <12> Prnt 読み出し/書き込み 印刷ピン・レベル <13> CPrdy 読み出し/書き込み CPrdyピン・レベル <14> MREQ 読み出し メモリ要求保留中 <15> BLANK 読み出し 水平ブランキング状況 (Horizontal bianking ststus) <16> FIFOE 読み出し FIFO空 <17> FIFOEB 読み出し FIFOブロック空 <18> FIFOF 読み出し FIFOフル <19> FIFORE 読み出し/クリア FIFO再充填 (refill)エラー <20> ERASE 読み出し 印刷許可後フレーム・ バッファ消去 <21> BKRL 読み出し 裏面印刷、右から左へ <22> VSync 読み出し/書き込み VSyncピン・レベル FIPビットは、フレームが既に開始されてはいるが、
まだ完了していないことを示す。FPDビットは2番目
のフレームがすでにロードされてはいるが、リセット・
コマンドの場合を除いて、まだ開始されていないことを
示している。リセット・コマンドは全てのオペレーショ
ンを中断してこれらのビットをクリアする。 【0039】状態遷移(state transiti
on)ビット(CINTA、VINTA、BBIA、P
RDYA、VSREQA〉はそれぞれに関連する事象が
発生し、それがまだクリアされていないことを表す。そ
れぞれに関連する割り込みイネーブルがセットされてい
れば、アクティブのとき割り込みを引き起こす。ステー
タス・レジスタのステート・ビットをロジック・ハイに
セットすることによってこれらのビットがクリアされる
と、割り込みがクリアされる。ステート・ビットにロジ
ック・ローを書き込んでも好適な実施例においてはこれ
らのビットは何も変化しない。ハードウエアで1度セッ
トされると、関連するステート・ビットは、PVP30
0のRSETビットがアクティブになるかまたはPVP
のリセット・コマンドが実行されると、上述の場合を除
きリセットされない。 【0040】ピン・レベル・ビットは入出力ピンのレベ
ルを保持する。LSYNC、FSYNC、PRDY及び
PPRDYの各ビットはすべて入力である(故に、読み
出し専用)のに対し、VSYNC、PRNT及びCPR
DYのビットは出力である。VSYNC、PRNT及び
CPRDYのビットは、リセット・オペレーションによ
ってロジック・ローにクリアされ、プロセッサのステー
タス・レジスタ314への書き込みによってどのレベル
にもダイナミックにプログラムすることが可能である。 【0041】TMDE、BBE並びに割り込みイネーブ
ル・ビットはモード・レジスタ314に最後にプログラ
ムされた値を保持している。 【0042】中にはテスト専用に備えられたビットもあ
る。例えば、以下のビットについて考察してみよう。M
REQステート・ビットは、PVP300に未処理のメ
モリ要求が1つ以上残っていることを示す。BLANK
ビットは水平ブランキング(horizontal b
lanking)が現在行われていることを示す。FI
FOステート・ビットは、図3に示すスキャン・データ
待ち行列344の種々のFIFO制御状態を保持してい
る。 【0043】PVP300内の割り込みをリセットする
ために、リセット命令がPVPコマンド・レジスタ31
4に送られるか、あるいは、個別の割り込みビットがス
テータス・レジスタ314にリセットされるかする。 【0044】V intレジスタがロードされると、各
ラインがリセットされる毎にデクリメントされていく
(X currentがX maxからロードされると
き)。V intがゼロ(0)以下になると、VINT
A状況ビットがセットされる。VINT割り込みイネー
ブル・ビットがセットされていれは、割り込みが命令用
マイクロプロセッサ102に送られる。V intは、
ポイントされているスキャン・ライン内のデータがプリ
ンタ・エンジン110に送られた後で、生成される。 【0045】C1NT(印刷完了割り込み)ビットはデ
ータの最後のスキャンがプリンタ・エンジン110に送
られてからセットされる。状況ビットと割り込みイネー
ブルが共にセットされていれば、印刷完了割り込みが通
知される。 【0046】PRDY割り込みがイネーブルになってい
れば、PRDYビットがインアクティブからアクティブ
に遷移する(PRDYAP遷移ビットがステータス・レ
ジスタ314内でセットされる)と、PRDY割り込み
がセットされる。PRDY割り込みがイネーブルになっ
ていれば、PRDYビットがアクティブからインアクテ
ィブに遷移する(PRDYAN遷移ビットがステータス
・レジスタ314内でセットされる)ことによってもP
RDY割り込みがセットされる。 【0047】PVP300がバンド・バッファ・モード
で、BBI割り込みがイネーブルになっており、現バッ
ファが印刷済み(BBI状況ビットがセットされてい
る)で、さらにベース・レジスタが既に交換(swa
p)されていると、BBI割り込みがセットされる。バ
ンド・バッファ・モードが選択されていないと、BBI
ステート・ビットは常にクリアされている。 【0048】図4に示すのはコントローラ316の好適
な実施例である。コントローラ316は、デコーダ40
2、ステート・マシン404、ロジック/バッファ40
6、クロック・ディバイダ408、クロック・バッファ
410、割り込みロジック412、並びにデコーダ/マ
ルチプレクサ414から成る。本明細書に記載した機能
性を実現するには、当業者によって他に数多くの回路構
成が考えられ得ることを強調しておく必要がある。 【0049】デコーダ402は、プリンタ・ビデオ・プ
ロセッサ300内でラッチ及び/又はレジスタ用の読み
出し・書き込みイネーブルを発生させるために、入出力
アドレス、読み出し/書き込み信号、チップ・セレク
ト、アドレス・ストローブをデコードする。デコーダ4
02は、またPVP−IOUインタフェース302にハ
ンドシェイク制御信号を生成する。好適な実施例におけ
る、ハンドシェイク制御信号は「準備完了」及び「読み
出し/書き込み」の信号を含んでいる。 【0050】ロジック/バッファ406は、現アドレス
がアドレス・ラッチ312によって入出力アドレス・バ
スに送り出されると同時に、PVP4−IOUインタフ
ェース302に転送されるメモリの読み出し/書き込み
要求のサイズを作成する。さらに、ロジック/バッファ
406は、ステート・マシン404による制御によっ
て、スキャン・ライン終了計算のために加算器出力の最
後の4ビットをマスクする。しかもロジック/バッファ
406は、2本のスキャン・ラインがオーバラップして
いれば、ステート・マシン404による制御によってメ
モリの書き込み要求時に、現アドレスの2ビットをマス
クし、クロック・ジェネレータはプリンタ・クロックか
らドット・クロックを発生させる。前記オペレーション
は本発明が提供する、この機能を明確にするのに必要で
ある。 【0051】クロック・バッファ410は、プリンタ・
エンジン110からのプリンタ・クロックと同期して、
プリンタ・ビデオ・プロセッサ300にビデオ・クロッ
クを供給する。クロック・ディバイダ408は、クロッ
ク・バッフア414からのプリンタ・クロックを受信し
て、その周波数を8分割もしくは16分割のいずれかに
分割するか、あるいは本発明の特徴によって全く分割を
行わないかのどちらかを行う。分割のオプションはモー
ド・レジスタ314を介して選択できる。 【0052】割り込みロジック412は、プリンタ・ビ
デオ・プロセッサ300の状態を監視するために使う割
り込み信号を生成するために、ステータス・レジスタの
事象ビットとモード・レジスタの割り込みイネーブル・
ビットで組み合わせ論理を行う。好適な実施例には、次
の5つの割り込みがある: (1) ある特定のスキャン・ラインに達したときの垂
直方向割り込み。 (2) バンド・バッファ終了を示すバンド・バッファ
割り込み。 (3) ページの完了を表すための割り込み。 (4) プリンタ・ビデオ・プロセッサ300に新規ペ
ージを開始させるための、プリンタ・エンジン110か
らのフレーム同期割り込み。 (5) プリンタ・エンジン110からの準備完了信号
の受信を知らせる割り込み。 【0053】デコーダ/マルチプレクサ414は、入出
力アドレスをPVP−IOUインタフェース206から
レジスタ・ファイル書き込みアドレスにデコードしてイ
ネーブルにする。デコーダ/マルチプレクサ414は、
入出力アドレスかプリンタ・ビデオ・プロセッサ・アド
レスのいずれかを選択し、レジスタ・ファイル書き込み
信号をイネーブルにする。 【0054】ステート・マシン404は、レジスタ・フ
ァイル306とROM308内の定数に関わる計算の噸
序を制御する。計算の順序は、プリンタ・エンジン11
0からのタイミング信号と、レジスタ314内に包含さ
れている事象の順序つけ(sequencing)とト
リガリング(triggering)のためのコマンド
/ステータス/モード・レジスタ・ビットに依存する。
プリンタ・ビデオ・プロセッサ内で発生する事象のシー
ケンスと、ステート・マシン404によって実行される
アルゴリズムについては、この後図7〜図14において
説明する。 【0055】図3に戻るが、本発明によるプリンタ・ビ
デオ・プロセッサの第2サブシステムは、メモリ・シス
テム208及びプリンタ・エンジン110と通信する。
図3に示すように、第2サブシステムは、PVP−MC
Uインタフェース342、スキャン・データ待ち行列
(FIFO)344、並列ー直列シフト・レジスタ(シ
リアライザ)345並びにコントローラ346から成
る。 【0056】PVP−MCUインタフェース342には
MCUバスからのデータを格納するためのラッチが含ま
れている。 【0057】スキャン・データ待ち行列344は、本質
的にはFIFOバッファで、スペースがある限りPVP
−MCUインタフェース342からのデータがロードさ
れる。PVP−MCUインタフェース342とともに、
スキャン・データ待ち行列へのスキャン・データの格納
によって、ページ進行中、プリンタ・エンジン110へ
のビデオ・ビットの割り込みのない流れが可能になる。
具体的には、スキャン.データ待ち行列344は、一杯
(full)信号並びに空(empty)信号をコント
ローラ314に送る。それに応答して、コントローラ3
46は、データの損失を防止し、或いはスキャン終了前
に待ち行列344が空になるのを防ぐために、データの
フローを制御する。待ち行列344の深さはインプリメ
ンテーションに依存しており、メモリ・システム内の予
想される最悪のケースの待ち時間と目標とする最大ビデ
オ・クロック・レートによってセットされるが、好適な
実施例においては最低8ワードになっている。 【0058】シリアライザ345には、スキャン・デー
タ待ち行列344からのスキャン・データ・バイトがロ
ードされている。スキャン・データ・バイトは、プリン
タ・エンジン110に送られる前に、ロジック347を
介してコントローラ346によって操作できる。ロジッ
ク347については本明細書において後で説明する。好
適な実施例において、シリアライザ345は、8ビット
のデータをドット・クロック(DCLK)当たり1ビッ
トの割合で直列に出力する。PVP300からプリンタ
・エンジン110に出力されるプリンタ・ビデオ・デー
タ370を本明細書ではWDATAと称する。 【0059】図5に示すのは、図3に示したコントロー
ラ346の低レベルのブロック図である。図5におけ
る、コントローラ346は、MCUのバス・データが有
効な時に適切なラッチ・イネーブルをアサートするため
に、カウンタ502、ラッチ/ロジック504並びにロ
ジック502を備えている。本発明の別の特徴により、
前記ハードウエアは、メモリ・システム208からのラ
ンダムなデータのリターンとともに、前面モードおよび
裏面モード両方との互換性を実現するのに必要な機構を
備えている。 【0060】前述したように、ページ進行中スキャン・
データのスキャン・データ待ち行列への格納によって、
プリンタ・エンジン110へのビデオ・ビットの割り込
みのない流れが可能になる。図5に示すように、コント
ローラ346内のロジック508はビデオ待ち行列の書
き込み信号を生成する。さらに、ロジック508は、ス
キャン・データ待ち行列344に書き込まれるべきPV
P−MCUインタフェース・データを選択する。 【0061】並列ー直列シフト・レジスタ346のロー
ディングにおいて、カウンタ514並びにデコーダ51
6はスキャン・データ待ち行列344に対してバイト・
セレクトを生成する。カウンタ514は、前面モードと
裏面モードの両方との互換性を実現するのに必要な機構
を備えるために、アップ/ダウン・カウンタになってい
る。前面モードでは、バイト・セレクトはバイト・アド
レス増加中に発生しなければならないのに対し、裏面モ
ードではバイト・アドレス減少中にバイト・セレクトが
発生しなければならない。 【0062】ラッチ/ロジック520、カウンタ522
及びデコーダ524はプリンタ・エンジン110へのス
キャン・データに対するビット・セレクトを生成する。
カウンタ514同様、カウンタ512も前面・裏面両モ
ードとの互換性をもたらすために、アップ/ダウン・カ
ウンタになっている。前面モードでは、最下位のビット
(LSB)から先にシリアル化される。逆に、裏面モー
ドでは最上位のビット(MSB)から先にシリアル化さ
れる。スキャン・データ待行列内の1ワード中の全バイ
トがシリアライザ345にロードされたら、新規のワー
ドのシリアル化を可能にするため、スキャン・データ待
ち行列344からそのワードが除去されなければならな
い。 【0063】コントローラ346はさらにシンクロナイ
ザ/ロジック526を備えている。前面モードでオペレ
ートしているときのシンクロナイザ/ロジック526
は、最上位のバイトがシリアライザ345にロードされ
たことを検出し、スキャン・データ待ち行列344に読
み出し信号を生成する。裏面モードのシンクロナイザ/
ロジック526は、最下位のバイトがシリアライザ34
5にロードされたことを検出してスキャン・データ待ち
行列344に読み出し信号を生成する。 【0064】本発明の別の重要な特徴は、プリンタ・エ
ンジン110に送られたデータが、ワード・アドレスで
はなくて、バイトから始まってシリアル化されることで
ある。現アドレスがスキャン・ライン開始アドレスで初
期設定される度に、現アドレスの最下位3ビットが図5
のカウンタ514にプリ・ロードされる。従って、図5
のテコーダ516は、スキャン・データ待ち行列344
のスキャン・データ・バイトのどれでも各スキャン・ラ
インの開始バイトとして選択することができる。 【0065】図6は、図3の中に破線で示したFIFO
ブロック380の低レベルのブロック図である。FIF
Oブロック380は、PVP−MCUインタフェース3
42、ビデオ・データ待ち行列344、シリアライザ3
45及びロジック347で構成されている。 【0066】図6に示すように、PVP−MCUインタ
フェース342の好適な実施例は、ビデオ・データ待ち
行列344内に収納された64*4ビットの先入れ先出
し(FIFO)バッファ610内にデータを指図するた
めに、4個の32ビット・レジスタ(602〜608)
を含んでいる。インタフェース342はまた、どの組の
レジスタ(602と604の組か、606と608の
組)がFIFOバッファ610にロードされるべきかを
選択するために64ビットのマルチプレクサ(MUX)
を1個備えている。2ビットのアップ・カウンタ614
は、デコード・ロジック(DEC)616と共に、レジ
スタ602〜608にイネーブル信号を出す。さらに、
デコード・ロジック(DEC)620は、フリップ・フ
ロップ622〜626と組み合って、602〜608の
最後のレジスタが先にロード(preload)された
ら、FIFOプッシュ信号を生成する。 【0067】FIFOバッファ610の出力における8
入力のマルチプレクサ628は、FlFOバッファ61
0からの8バイトのどれがシフト・レジスタ(シリアラ
イザ)345にロードされるべきかを選択する。3ビッ
トのアップ/ダウン・カウンタ630は、デコード(D
EC)632と組んで、マルチプレクサ628にセレク
ト信号を生成する。さらに、双方向の8ビット・シフト
・レジスタ345はプリンタ・ビデオ・データをシリア
ル化する。 【0068】ドット・クロック(DCLK)656は、
プリンタ・エンジン110のクロックとして使われるの
であるが、PVPシステム・クロック(SCLK)とは
非同期になっている場合があることに注意すべきであ
る。しかし、図6に示すように、FIFOブロック38
0へのポップ命令は、DCLK656に同期しており、
ロジック640及びデコード642を介してPVPシス
テム・クロック(SCLK)と再同期化される。 【0069】FIFOバッファ610は、幅64ビッ
ト、深さ4ビットである。但し、本発明によるFIFO
バッファ610は、前面・裏面両モード対応になってい
る以外に、32・64両ビットのMCUスイッチ・モー
ドにも対応していなければならない。システムが32ビ
ット・モードでオペレートしている場合、FIFOバッ
ファ610への入力として外部から与えられるデータは
32ビットのブロックで送られて来るのに対し、64ビ
ットでのオペレーションの場合はデータは64ビットの
ブロックで来る。さらに、FIFOデータがロードされ
る順序は前面モードと裏面モードでは異なる。その理由
は、前面モードは左から右へのページ・スキャンを必要
とし、その場合アドレスは増加していくためである。逆
に、裏面モードは右から左にページ・スキャンが行われ
る必要があり、その場合アドレスは減少していく。従っ
て、前面モード・裏面モードに対応するとともに、32
ビットおよび64ビットの両ビット・モードにも対応で
きるようにするためには、メモリ要求が実行されるとき
にはいつでも図6に示す回路が一連のFIFOローディ
ング手続きを経るようにしなければならない。 【0070】32ビット・モードでは、下の表Gに示す
ように、2ビットのアップ・カウンタ614が先にロー
ドされる。 〈表G〉カウンタ・ステート メモリ要求 00 4ワード(ショート)要求の場合 10 2ワード要求の場合 11 1ワード要求の場合 64ビット・モードでは、下の表Hに示すように、2ビ
ットのアップ・カウンタ614が先にロードされる。 〈表H〉カウンタ・ステート メモリ要求 00 4ワード要求の場合 01 1もしくは2ワード要求の場合 可能な4つのオペレーション・シナリオをそれぞれ個々
に解析することによって、FIFOブロック380のロ
ーディング手続きを以下に説明する。具体的には、以下
の4つのケースである: (1)32ビット・モード/前面モード(左から右に走
査) (2)32ビット・モード/裏面モード(右から左に走
査) (3)64ビット・モード/前面モード(左から右に走
査) (4)64ビット・モード/裏面モード(右から左に走
査) 下記の論考において、DO、D1、D2及びD3は、F
IFOブロック380に戻されるデータ・ワードで、そ
の中のD0が最下位順序のアドレス、D3が最優先のア
ドレスであると仮定する。 【0071】オペレーション・シナリオ(1)、即ち、
32ビット・モード且つ前面モード(左から右に走査)
の場合、レジスタ602〜608は、ある特定の開始バ
イトSTB[1:0]及びカウンタ614の状態に対
し、以下の表IからKに示すように、ロードされる。 〈表I〉 ケース1:4ワード要求STB[1:0] CTR=00 CTR=01 CTR=10 CTR=11 00 R2=Dl R3=Dl R0=D2 R1=D3 01 R3=Dl R0=D2 R1=D3 R2=D0 10 R0=D2 R1=D3 R2=D0 R3=D1 11 R1=D3 R2=D0 R3=D1 R0=D2 2つのFIFOプッシュ信号が生成される: PUSH1:{R3,R2} PUSH2:{R1,R0 } 〈表J〉 ケース2:2ワード要求STB[1:0] CTR=10 CTR=11 00 R0=D2 R1=D3 01 R1=D3 R0=D2 F1FOプッシュ信号が1つ生成される PUSH1:{R1,R0 } 〈表K〉 ケース3:1ワード要求STB[1:0] CTR=11 xx R1=D3 FIFOプフシュ信号が1つ生成される: PUSH1:{R1,xx} オペレーション・シナリオ(2)、即ち、32ビット・
モードかつ裏面モード(右から左に走査)では、レジス
タ602〜608は、ある特定の開始バイトSTB
[1:0]及びカウンタ614の状態に対し、以下の表
LからNに示すように、ロードされる。 〈表L〉 ケース3:4ワード要求STB[1:0CTR=00 CTR=01 CTR=10 CTR=11 00 R0=D0 R1=D1 R2=D2 R3=D3 01 R1=D1 R2=D2 R3=D3 R0=D0 10 R2=D2 R3=D3 R0=D0 R1=D1 11 R3=D3 R0=D0 R1=D1 R2=D2 2つのFIFOプッシュ信号が生成される: PUSH1:{R3,R2} PUSH2:{R1,R0 } 〈表M〉 ケース2:2ワード要求STB[1:0] CTR=10 CTR=11 00 R2=D2 R3=D3 01 R3=D3 R2=D2 FIFOプッシュ信号が1つ生成される PUSH1:{R3,R2} 〈表N〉 ケース3:1ワード要求STB[1:0] CTR=11 00 R3=D3 FIFOプッシュ信号が1つ生成される PUSH1:{R3,xx} オペレーション・シナリオ(3)、即ち、64ビット・
モードかつ前面モード(左から右に走査)の場合、レジ
スタ602〜608は、ある特定の開始バイトSTB
[1:0]及びカウンタ614の状態に対し、以下の表
OからQに示すように、ロードされる。 〈表O〉 ケース1:4ワード(ショート)要求STB[1:0] CTR=10 CTR=11 00 {R3 R2 }={D1,D0 }{R1 =R0 }={D3,D2 } 01 {R1 =R0 }={D3,D2 }{R2 =R0 }={D1,D0 } 2つのFIFOプッシュ信号が生成される PUSH1:{R3,R2} PUSH2:{R1,R0} 〈表P〉 ケース2:2ワード要求STB[1:0] CTR=01 xx {R3, R0}={D1,D0} FIFOプッシュ信号が1つ生成される PUSH1:{R1,R0} 〈表Q〉 ケース3:1ワード要求STB[1:0] CTR=01 xx {R1, R0}={D1,xx} FIFOプッシュ信号が1つ生成される PUSH1:{R3,R2} オペレーション・シナリオ(4)、即ち、64ビット・
モードかつ裏面モード(右から左に走査)の場合、レジ
スタ602〜608は、以下の表RからTに示すよう
に、ある特定の開始バイトSTB[1:0]及びカウン
タ614の状態に対し、ロードされる。 〈表R〉 ケース1:4ワード要求STB[1:0] CTR=10 CTR=11 00 {R1=R0}={D1,D0}{R3=R2}={D3,D2} 01 {R3=R2}={D3,D2}{R1=R0}={D1,D0} 2つのFIFOプッシュ信号が生成される PUSH1:{R3,R2} PUSH2:{R1,R0} 〈表S〉 ケース2:2ワード要求STB[1:0] CTR=10 xx {R3=R2}={D3,D2} 2つのFIFOプッシュ信号が生成される PUSH1:{R3,R2} PUSH2:{R1,R0} 〈表T〉 ケース3:1ワード要求STB[1:0] CTR=10 xx {R3, R2}={D3,xx} FIFOプッシュ信号が1つ生成される PUSH1:{R3,R2} 前述のごと<、FIFOバッファ610からシフト・レ
ジスタ345に読み込まれるべき8バイトの1個を選択
するロジックは、3ビットのアップ/ダウン・カウンタ
630を含んでいる。アップ/ダウン・カウンタ630
は、ビットCURRENT[2:0]の付いた各スキャ
ン・ラインの始まりでのみロードされる。ビットCUR
RENT[2:0]がスキャンの開始バイトSTB
[1:0]を定める。シフト・レジスタ345がロード
されるたびに、アップ/ダウン・カウンタ630は、マ
ルチプレクサ628に対してセレクトを出力し、クロッ
クが取られる。好適な実施例においてカウンタ630の
状態に相当するバイト・シーケンスを以下の表Uに示
す。 〈表U〉CTR BYTE 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 前面モード(左から右に走査)の場合、カウンタ630
はアップ・カウンタで、シフト・レジスタ345は右に
シフトする(LSBが最初)。CTR=111で、FI
FOポップもしくはトリガであればいつでも、信号が生
成される。シフト・レジスタ345が最終バイトのデー
タすべてをシフトする前に、この状態になっていなけれ
ほならない。 【0072】裏面モード(右から左に走査)では、カウ
ンタ630はダウン・カウンタで、シフト・レジスタ3
45は左にシフトする(MSBが最初)。CTR=00
0になるといつでも、FIFOポップ信号が生成され
る。 【0073】さらに、ロジック347に送り込まれるブ
ラック・レベル(BLV)信号634は、プリンタ/ビ
デオ・データ(WDATA)370がブラックとホワイ
トのいずれに相当するのかを決定する。図3のモード・
レジスタ314においてBLV=0であれば、WDAT
A=1はブラックに相当し、BLV=1であれば、WD
ATA=0はホワイトに相当する。 【0074】その上、BLANK信号636がロジック
347に対してアサートされていれは、その時プリンタ
・ビデオ・データ(WDATA)はホワイトで(BLV
=0ならば0で、BLV=1ならば1)、ページ・マー
ジンが使用可能である。 【0075】上述の如く、本発明によって多種のプリン
タが使えるようになるだろう。モード・レジスタ314
内のビットは、プリンタ・ビデオ・プロセッサ300と
インタフェースする3タイプのプリンタ・エンジン11
0の1つを選択するために、初期設定される。本書にお
けるモードIでオペレートする従来型のプリンタでは、
ステータス・レジスタのフレーム同期化(VSync)
ビットをソフトウエアにより設定することによって、ペ
ージ・オペレーションが引き起こされる。さらに、プリ
ンタのクロックは非常に高速でのフリー・ランニングで
ある。本明細書におけるモードIIでオペレートする従
来型のプリンタでは、プリンタのFSYNC信号がプリ
ンタ・ビデオ・プロセッサ300をトリガしてページ・
オペレーションが開始される。さらに、プリンタ・クロ
ックはフリー・ランニングである。最後に、本明細書に
おけるモードIIIでオペレートする従来型のプリンタ
では、プリンタのFSYNC信号がプリンタ・ビデオ・
プロセッサ300をトリガしてページ・オペレーション
が開始される。この場合、プリンタ・クロックはフリー
・ランニングではない。 【0076】前記の3モードでのオペレーションを可能
にするために、図4のクロック・ディバイダ408を実
現した好適な実施例を以下の図7に示す。 【0077】図7は、図4のディバイダ408の低レベ
ルのブロツク図である。図7において、ディバイダ40
8の出力は、「ドット・クロック」と呼ばれるが、基本
的にデータをプリンタ・エンジン110にクロック・ア
ウトする。ライン同期化(LSYNC)信号は、プリン
タのタイプに関係なく、プリンタ・エンジン110によ
って送られる。LSYNC信号が受信されると、エッジ
検出器702は「LSYNC」のリーディング・エッジ
を検出し、フラグ704をロジック・ハイにする。ロジ
ック・ハイになると、フラグ704はディバイダ408
がドット・クロックを生成するようにする。シンクロナ
イザ706は、出力されたドット・クロックが入力され
たプリンタ・クロックと同期をとってオペレートするよ
うにする。ロジック708は、マルチプレクサ(MU
X)712に入力信号710を送るために、シンクロナ
イザ706の出力と入力されたプリンタ・クロックとの
間にAND関数を形成する。前記の信号は、信号714
と716により制御されるので、モードII及びIII
の場合はマルチプレクサ712を通って伝播するように
なっている。 【0078】ディバイダ718によって、モードIのプ
リンタとの適切なオペレーションが可能になる。ディバ
イダ718はプリンタ・クロックを8分割か16分割の
いずれかに分割し、分割された信号をロジック708に
送り込む。ロジック708は、マルチプレクサ712に
対する入力信号720を生み出すため、プリンタ・クロ
ックと分割された信号とに対してAND関数を行う。デ
ィバイダ408がモードIでオペレートしている場合、
マルチプレクサ712は、信号720が制御722に従
ってドット・クロックを出力するようにする。 【0079】プリンタ・エンジン110がスキャン・ラ
インの終端までくると、ブランク信号がラッチ724に
入力される。ブランク信号はフラグ704がロジック・
ローになるようにし、それによってディバイダ408に
よるドット・クロックの出力を停止させる。 II.オペレーション プリンタ・ビデオ・プロセッサ300で起きる事象のシ
ーケンスを以下に記載する。 1.図3のビデオ・レジスタ・ファイル306のパラメ
ータはプリ・ロードされ、その中にベース・レジスタが
含まれる。前記オペレーションは、ページ・サイズ、フ
レーム・バッファ・アドレスもしくはマージンがオペレ
ーションの途中で動的に変更されない限り、通常、プリ
ンタおよび関連周辺機器の初期設定中に行われる。 2.プリンタ・エンジン110はPVP300に対して
データ受け入れ準備が完了しているとアサート(ass
ert)する。 3.印刷信号が命令用マイクロプロセッサ(instr
uction microprocessor)102
内の制御用ソフトウエアによってプリンタ・エンジン1
10に対してアサートされる。 4.印刷コマンドが命令用マイクロプロセッサ102内
の制御用ソフトウエアによってPVP300のコマンド
・レジスタにロードされる。 5.FSYNC信号がプリンタからPVP300に対し
てアサートされる。図4に示すように、FSYNC信号
がステートマシン404に対してアサートされる。 6.ステート・マシン404は上部マージンのタイミン
グをとり始める。PVP300の前面モードでのオペレ
ーション時にステート・マシン404によって上部マー
ジンのタイミングをとるために使われる「上部マージン
計数アルゴリズム」については、図8及び図9において
詳述している。一方、PVP300が裏面モードでオペ
レートしているときに、ステート・マシン404によっ
て上部マージンのタイミングをとるために使われる上部
マージン計数アルゴリズムについては、図9並びに図1
3において詳しく説明する。 7.上部マージン・タイマ(レジスタT margin
によってプログラムされている)がカウントを完了する
と、ピクセル・カウンタ304はプリンタ・エンジン1
10からのLSYNC信号を待つ。 8.LSYNC信号の入力がPVP300によって受信
されると、ピクセル・カウンタ304は左マージン・タ
イマ(レジスタL marginによってプログラムさ
れている)をスタートさせ、シリアライザ345はプリ
ンタ・エンジン110に送るべき最初のフレーム・バッ
ファ・データをフェッチする。 9.左マージン・タイマL marginが完了する
と、スキャン・データが、プリンタ・クロックと同期を
とって、PVP300のコントローラ346から流れ始
める。PVP300の前面モードでのオペレーション時
にスキャン・データをシリアル化するためにステート・
マシン404によって使われる「シリアル化アルゴリズ
ム」については、図10に詳述している。一方、PVP
300が裏面モードでオペレートしているときに、スキ
ャン・データをシリアル化するためにステート・マシン
404によって使われる「シリアル化アルゴリズム」に
ついては、図14に詳述している。スキャンの終了はL
marginカウンタによって決定されるが、X
axレジスタ・データが使われる。 10.各スキャン・ラインの終わりにくると、ピクセル
・カウンタ304は、画像フレ一ムの最後のスキャンが
完了するまで、LSYNCとL marginタイマを
待つよう強いられる。PVP300が前面モードでオぺ
レートしているときに、各スキャン・ラインの終端で、
即ちページの右マージンで、ステート・マシン404に
よって使われる「ポスト・スキャン・ライン・アルゴリ
ズム」については、図11、図12に詳述している。一
方、PVP300が裏面モードでオペレートしていると
きに、ステート・マシン404によって各スキャン・ラ
インの終端で使われる「ポスト・スキャン・ライン・ア
ルゴリズム」については、図15、図16に詳述してい
る。 11.画像フレームの最後のスキャンが完了すると、P
VP300はコマンド・レジスタ314から次の印刷コ
マンドが送られて来るのを待つ。保留中の印刷コマンド
が存在していれば、新しいフレームがただちに開始され
る。 III.特徴と利点 要するに、本発明は数多くの特徴と利点を備えている。
例をあげて、いくつかの機能特徴について次に論じる。 【0080】プリンタ・ビデオ・プロセッサ300は、
効率的且つ高速な直接メモリ・アクセス(DMA)を実
現するのに必要な機構を備えている。 【0081】プリンタ・ビデオ・プロセッサ300は、
各スキャン・ラインの始まりと終わりでデータのバイト
・アラインメントを実現するのに必要な機構を備えてい
る。言い換えれば、ワード・アドレスからではなく、バ
イト・アドレスから始まるデータのシリアル化が行なえ
るということである。 【0082】本発明によって、ページを印刷するため
に、プリンタ・ビデオ・プロセッサがページ・メモリ内
の異なるフレーム・バッファを交互に使用するバンド・
バッファ・モードの実現が可能になる。より具体的に
は、バンド・バッファ・モードで、ベース及びPベース
・アドレスに相当するデータがブランク・オペレーショ
ン時と同様、上部ページ(top−of−page)・
オペレーション時にも交換される。プリンタ・ビデオ・
プロセッサ300は、ベース及びPベース・アドレスか
ら始まるBサイズ・スキャン・ラインのバンド・バッフ
ァを交互に使用する。ページのスキャンに2つのバンド
・バッファ・アドレスだけしか必要でない場合は、ベー
スおよびPベース・レジスタはページ・スキャンに先立
って1回だけしか初期設定されない。しかしながら、2
つ以上のバンド・バッファ・アドレスを必要とする場
合、プリンタ・ビデオ・プロセッサ300は割り込み信
号とステート・ビットを出してバンド・バッファの完了
を知らせ、それによってベース及びPベース・アドレス
が動的(dynamically)に変更されることが
ある。 【0083】プリンタ・ビデオ・プロセッサによって、
前面かまたは裏面どちらのモードでもオペレートするこ
とが可能になる。 【0084】本発明のもう一つの特徴は、プリンタ・ビ
デオ・プロセッサ300はプリンタ・エンジンに出力さ
れたスキャン・データを反転することができ、それによ
って用紙上に物理的に印刷されるべき画像が反転される
ことである。 【0085】ページ・スキャン中にフレーム・バッファ
を部分的にクリアにする機能は、本発明のプリンタ・ビ
デオ・プロセッサ300が備えた、また別の特徴であ
る。もっと具体的に述べれば、プリンタ・ビデオ・プロ
セッサ300は、通常各メモリ読み出し要求のあとにメ
モリ書き込み要求を発信する。読み出し要求と書き取り
要求のサイズは、スキャン・ラインの終端近くか始まり
でのデータ・バイト要求の場合を除き、通常同じであ
る。各メモリ要求後、データがPVP300によってシ
リアル化されてプリンタ・エンジン110に送られてい
る間に、PVP300のステート・マシン404は、加
算器310を介して次に要求されたバイトも次のスキャ
ン・ラインにあるかどうかを確認する。もしそうなら
ば、プリンタ・ビデオ・プロセッサ300はオーバラッ
プ・フラグをヒットしてそのバイトが次のスキャン・ラ
インに書き込まれないようにする。最初のメモリ読み出
し要求が次のスキャン・ラインに対して発信されると、
オーバラップ・フラグは、ワードを完全にクリアするた
めに、要求されたアドレス及びデータ・サイズのマスキ
ング(masking)を実行することもできる。 【0086】最後に、プリンタ・ビデオ・プロセッサ3
00は多種のプリンタとも互換性を維持している。プリ
ンタ・ビデオ・プロセッサのモード・レジスタ内のビッ
トは初期設定され、それによって、オペレーション特性
が各々異なる従来型のプリンタの1つを選択することが
できる。 【0087】本発明の今までに述べた以外の特徴や利点
は、本明細書に記載されている図面並びに文面を吟味す
ることにより、当業者には明らかになるであろう。ここ
に論じた以外のいかなる付加的な特徴ならびに利点につ
いても本明細書に組み込まれているものとする。 IV. 図17、図18、図19が示すのは、前面モード及び裏
面モードそれぞれに対しプリンタ・ピデ才・プロセッサ
によって生成される入出力アドレス指定の例である。こ
れらの例は、本発明の特徴並びに利点の数多くの特質を
明らかにしている。これらの図における例のレイアウト
は大体同じであるから、ここでは図17、図18に示す
例についてだけ論じることにするが、以下に述べる考察
は図19にも等しく適用できるものである。 【0088】図17において、レジェンド・ブロック1
502はレジスタ・ファイル306内の様々なパラメー
タの初期値を表している。これらのパラメータは前記の
表Aに示され記述されている。要するに、ブロック15
02のパラメータは次のような機能を果たす。Y ma
xは図17、図18に示す仮想ページ上のスキャン・ラ
イン数である。ベースは最初のバイト・アドレスで、P
ベースは次のバンド・バッファのアドレスのことを表し
ている。Bサイズはベース・アドレスに相当するバンド
・バッファのサイズである。この例において、Bサイズ
は3にセットされているから、バンド・バッファ割り込
みは3番目のスキャン・ライン1540の後に発生す
る。X maxは、スキャン・ラインがいつ完了するか
を確認するのに使われる。Y stepは、各スキャン
・ライン上でどのアドレスから開始するのかを示すため
に使われる。X max1は、バイト数から1バイトを
引いた数と等価である。X max1はいつスキャン・
データがシリアル化されるかを確認するために使われ
る。 【0089】FSYNC信号1504は、ページを開始
する時を知らせるためにプリンタ・エンジン110から
送られる。ブランク信号1506はデータがブランクに
される時を知らせる。データがブランクにされると、プ
リンタ・エンジン110はページに何も印刷しない、即
ちページはホワイトである。 【0090】初め、X currentはX maxと
等価である。X currentは、いつレジスタ・フ
ァイル306内の現アドレスが次のスキャン・ラインの
開始アドレス(bace−current)に比較され
るべきかを判定するためにPVP300によって使われ
るフラグである。X−currentが1以下であれ
ば、PVP300はオーバラップがあるかチェックす
る。 【0091】X maxはスキャン・ラインで許可され
る最大バイト数を表す。基本的に、X maxはある特
定の値にセットされ、その後、バイトがプリンタ・エン
ジン110に送られるにつれて、その値はカウンタのよ
うにオペレートするようにデクリメントされていく。好
適な実施例において、X maxは96バイト(60
h)にセットされている。しかし実際には、スキャン・
ラインは89バイト以上にはならないのだが、好適な実
施例においてX maxは一番近い8バイトの倍数に切
り上げてある。 【0092】メモリ読み出し要求は、プリンタ・エンジ
ン110の印刷中のメカニズム(本明細書には示されて
いない)が上部マージンのスキャンを行っている間に、
PVP300によってメモリに送られる。参照番号15
10によって図17に示すのは、レジスタ・ファイル3
06内に格納された現アドレスである、ベース・アドレ
ス「7ffffddh」(末尾の「h」は16進のこと
である)が、入出力アドレス「7ffffddh」とし
てメモリに送られるのを示したものである。基本的に、
メモリに送られた入出力アドレスは最後の2ビットがゼ
ロでマスクされた現アドレスである。従って、PVP3
00によってメモリに送られた入出力アドレスは全てが
バイト・アドレスではなく、ワード・アドレスである。 【0093】入出力アドレスがメモリに書き込まれる
と、本発明の別の特徴によって、書き込み信号は、コマ
ンド・レジスタ314内のERASEビットのコマンド
による各読み出し要求の後に、送られるようになる。読
み出し要求によってデータがメモリからPVP300に
送られる。その次の書き込み要求は、メモリ内のメモリ
・ロケーションにゼロを書き込むようメモリに通知する
ことによってメモリ内のそのロケーションをクリアにす
る。 【0094】前記のアドレス「7ffffdch」に宛
てられたメモリの読み出し要求の結果、例えば、1ワー
ド(4バイト)がスキャン・データ待ち行列344の中
にロードされる。PVP300によって要求されたデー
タの量は、メモリに送られ一た特定の入出力アドレスに
よって確定される。次に、検索されたデータは、列(コ
ラム:column)1510に示すように、メモリの
中でクリアされる。さらに、4バイトからなる1ワード
がPVP300の中にロードされているから、X ma
xは60hから5chにデクリメントされるのである
が、その60hは96バイトを表し、5chは92バイ
トを表している。 【0095】参照番号1512で表示した列は、PVP
300からメモリに送られた別の読み出し要求を表して
いる。レジスタ・ファイル306内の現アドレスは「7
ffffelh」である。最後の2ビットは、入出力ア
ドレス「7ffffe0h」を生成するようゼロにマス
クされている。入出力アドレス「7ffffe0h」に
宛てられたメモリ読み出し要求の結果、例えば、4ワー
ドがスキャン・データ待ち行列344の中にロードされ
る。参照番号1512で示した列に表すように、同じ4
ワードがメモリ内でクリアされる。さらに、16バイト
からなる4ワードがPVP300の中にロードされてい
るから、X maxは5chから4chにデクリメント
されるのであるが、その5chは92バイトを表し、4
chは76バイトを表している。 【0096】参照番号1514で表示した列は、ピクセ
ル・シリアル化開始後、PVP300からメモリに送ら
れるべき別の読み出し要求を表している。レジスタ・フ
ァイル306内の現アドレスは「7fffff1h」
で、その関連入出力アドレスは「7fffff0h」で
ある。現時点においてはこれ以上ワードはスキャン・デ
ータ待ち行列344にロードされない、それは何故なら
ば、好適な実施例におけるスキャン・データ待ち行列
(FIFO)344は32バイトしか格納しないからで
ある。スキャン・データ待ち行列344にワードがロー
ドされないから、クリア機能は発生しない。しかしなが
ら、X currentは3chにデクリメントされ
る。 【0097】ブランク信号がデアサート(deasse
rt)される時点で、スキャン・データ待ち行列344
にはすでに印刷するデータを持っているから、PVP3
00はただちにデータをシリアル化してプリンタ・エン
ジン110に送ることができる。最初のスキャン・ライ
ン1516に示すように、プリンタ・エンジン110は
列1510に送られトたアドレスから3バイトを印刷す
ることができる。その上、プリンタ・エンジン110
は、最初のスキャン・ライン1516に示されているよ
うに、列1512に送られたアドレスからさらに16バ
イトを印刷することができる。 【0098】スキャン・データ待ち行列344はデータ
量が低くなると、列1518が示しているように、もっ
とデータを送り込んでもらうためにメモリにさらに読み
出し要求を発信する。 【0099】さらに、メモリ内のワードがスキャン・ラ
インの終わりでクリアされない場合がある(ブランク信
号がリアサート(reassert)されている時)。
図17の列1520を考察してみよう。検索されたその
4ワードは列1522ではクリアされない。それは何故
ならば次のアドレス・セットがオーバラップするからで
ある。具体的には、「80000036h」が「800
00030h」とオーバラップする。明らかなように、
3つのメモリ読み出し要求は、プリンタ・エンジン11
0が次のスキャン・ライン1528を印刷する準備を完
了する前に、実行可能である。 【0100】 【発明の効果】以上のように本発明により、新規なプロ
セッサを有し、コンピュータ・システムにかかる処理負
担を最小限に抑えることができるプロセッサを有する装
置及び制御方法が提供される。
DETAILED DESCRIPTION OF THE INVENTION [0001] BACKGROUND OF THE INVENTION 1. Field of the Invention
Has a processor that performs processing to synchronize data
Device and control method. [0002] 2. Prior Art and Problems to be Solved by the Invention
The application was filed on July 8, 1991 and is pending US
Patent Application No. 07 / 726,929, entitled "Thing
Chip page printer controller ”(Si
naggle Chip Page Printer Co
related to the United States of America.
The U.S. patent application by reference to the license application number
The description in the description of the above constitutes a part of this specification
And The present invention has a novel processor and
Computer system to minimize the processing load.
Provided is an apparatus having a controllable processor and a control method.
What you want to do. [0004] According to the present invention, there is provided a processor according to the present invention.
The at least first processor issuing the instruction.
And a second processor in communication with the memory.
For data and fetch, serialization and control
An apparatus having a function of performing synchronization of
Write-only for receiving commands from one processor
Command register, command register contents
Control and monitoring of the second processor.
Read / write status that holds the information to be read
・ Mode register for setting register and operation mode
Command / status / mode register consisting of a register
Data, frame buffer address and formater
Register file means for storing bit constants;
To generate memory address and control signals,
Frame buffer address and format
Means for performing arithmetic operations on numbers, and
Temporarily store the memory address before accessing
And address latch means for parallelizing from the memory.
Receives scan data and scans the scan data.
Serialization means for realizing and sending to the control object,
Control of the command / status / mode register means
Access the register file means
Means for performing arithmetic operations and said serializing means.
And control means for controlling.
You. According to the control method of the present invention, at least the
One processor and a second processor in communication with the memory
Scan data fetch, serialization and
Control method for performing synchronization with the control target in the
Receives a command from the first processor, and receives a command from the second processor.
Holds information about the control and monitoring of the
Setting the operation mode of the linter;
Space for storing buffer addresses and format constants
Step and generate memory address and control signals.
The frame buffer address and the format
Performing arithmetic operations on mat constants;
Before accessing the memory, the memory address
Temporarily latching; and
Receiving scan data; and
Serializing the data to the controlled object and sending the data.
It is characterized by having. Further, the control method of the present invention includes:
At least a first processor for issuing instructions, and a memory
Having a second processor in communication with the scan data
・ Fetch, serialize and synchronize with printer
A method of controlling a printer to execute
File address and format constant
And the printer processes the data.
That the second processor is ready to
Notifying steps and whether data should be printed
By the control software of the first processor.
And the control software.
A print command is transmitted to the second processor by air.
Loading the associated command register; and
To the second processor via the printer.
Asserting the frame synchronization signal, and
Taking the time for the margin of the
Waiting for the line synchronization signal to be sent from the
And the step to take the time of the left margin of the page
And the image frame to be sent to the printer
Fetching by the second processor;
The image frame is scanned in synchronization with the clock of the
Step to serialize to the printer line and send to the printer
At the end of each scan line
Until the next line synchronization signal
Waiting for the left margin timer to start.
It is characterized by having. [0005] BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described.
Will be explained. Preferred embodiments according to the present invention are described in detail below.
However, those skilled in the art will appreciate that the present invention teaches newly
And many modifications without substantial deviation from the benefits.
You will easily recognize that changes can be made
U. Therefore, all such amendments and modifications are also claimed.
As described in the claims.
Things. As shown in FIG.
The stem is typically a microprocessor for instructions (i
nstruction micropresso
r) 102, a printer video processor (PVP)
104, page memory 106 ("frame buffer"
Serial communication interface)
108 and a printer engine 110
You. In general, the instruction microprocessor 102
Run a command set and thereby print on a paper page
Generate the data to be done. The generated data is ぺ
Memory 106 where the printer video
-Retrieved by processor 104. Two-way arrow 1
As indicated by 16, the instruction microprocessor 102
Also, printer video processor 104 and status
They also exchange signals. [0006] The printer video processor 104 and the
The linter engine 110 is a printer video processor.
Switch 104 sent to the printer engine 110 from the
Control the frequency and timing of the can data
Communication via a handshake control signal and a clock.
I believe. Serial such as Universal Asynchronous Transceiver (UART)
The communication interface 108 is a microprocessor for instructions.
Status information directly from the printer engine
110 to communicate with. [0007] US patent application Ser.
No. 726,929, entitled "Single Chip Pen"
Printer Controller "(Single Ch
ipPage Printer Control
r), a very large scale integrated circuit (VLSIC) semiconductor
A page-printer controller in the form of a chip
It is proposed for controlling the linter engine 110. FIG. 2 shows a specific example of the page printer system.
Is a diagram showing a typical realization method, in which a page
Printer controller from computer system
Remote, but very close to the printer engine
It has been placed. Also, page printer controller
Minimizes the processing load on the computer system
Peripheral components for performing image operations so that
Built-in. As shown in FIG. 2, the page printer
Controller 202 is a host computer system 2
To the printer engine 110 at a location far from
It is located very close. Typically,
The page printer controller 202 has a system
Access scan data stored in memory 204
The data for actual printing.
It is designed to be sent to the engine 110. VLSIC Page Printer Control
The controller 202 includes an instruction microprocessor 102 and a preprocessor.
Video processor 104, serial communication interface
Interface 108, input / output interface 206, and
A moly system 208 is provided. Instruction Microphone
The processor 102 not only performs diagnostics, but also
Data transformation, clipping, scaling,
Rasterization can be realized. I / O interface
206 is indicated by various arrows from 210 to 216
As such, essentially the page printer controller 20
Interface for all of the internal components
Connected to the I / O bus network 217
Interfaces to all connected external peripherals
Also has a role. Further, the memory system 208
Is the page memory 106 in the system memory 204
Includes fast cache loaded with data from
I have. In operation, printer video
The processor 104 supports the input / output interface 206.
Requesting the external page memory 106
Access data in Each time a request is made,
The video processor 104 includes an external page memory 106
Address position and data size in the
To the source 206. When requested, printer video
The processor 104 addresses and data for the next request
Update data size. On the other hand, I / O interface
Resources 206 for use by the memory system 208
Address and data size until ready
Is stored. The memory system 208 provides this information
From the external page memory 106 to
Access to printer data
The data is returned to the server 104. Printer video processing
The processor 104 then stores the data and
Data to the data engine 110 in series. So
Serial communication is clock of printer engine 110
Synchronize with Flow without interruption of scan data
(Uninterrupted stream)
Printer engine for sending to printer engine 110
The processor 104 controls the page memory 106
Sufficient scan time to handle the latency associated with processing
I have to put my data in a queue
No. The page printer controller 202
The use has many important advantages. Page printer
Controller 202 scans from page memory 106.
Direct memory access to direct data (direct
  memory access (DMA)
Can be. Since the data has been accessed,
If it is desired, a command located outside the system memory 204
Manipulated by the command microprocessor 102
it can. By doing so, the computer system
The processing load on the system 203 is reduced. In addition, for instructions
The microprocessor 102 is a computer system
As with the processor related to 203, the simplified instruction set
Computer (reduced instruction)
  setcomputer (RISC) type architecture
It may indicate that it is one of the chas. R
The number of instructions is limited in the ISC type architecture. That's it
Such a configuration further improves performance. The present invention has a novel video processor
Device, especially a processor for controlling the printer.
It is sa. The video processor is locally associated with the printer
And communicate with the instruction processor and the memory. Bidet
Processor generates the timing signals and scans
Data fetch, serialization, and printer synchronization
Perform the conversion. The video processor has a register file.
, Adder / subtractor (adder / subtracto)
r), having each means of serialization and control
I have. Register file means frame buffer
Stores address and format constants. The adder means includes a memory address and
Frame buffer to generate printer control signals
Arithmetic operation (ari
execute the same operation. The serializing means converts parallel data from the memory.
Receives, serializes the data and sends it to the printer
You. Finally, the control means is controlled by the instruction processor.
Control signal. The control means is a register file
Access the column. In addition, adder means and serialization means
It is this control means that controls the steps. In particular, the video processor provides
Proposed as a printer controller to be located locally
Has been provided. The microprocessor in the printer controller
The processor executes instructions and performs image processing, while video and
The processor provides scan status and interrupt signals
Fetch and serialize scan data in addition to generating
Required to achieve printer engine synchronization
The mechanism is provided. Video processor
By issuing a request to the interface.
Data in external page memory, also known as
Each request to be accessed has an equivalent data size.
It consists of a dress. Scan data request issued
The video processor will address it for the next request.
Address and data size. Receive request data
The video processor scans the data directly.
Send to printer engine in column. scan data
To the printer engine without interruption
The printer video processor has a page memo
Waiting time required to process data request
Queue enough scan data to
Must. I. architecture The printer video processor 300 according to the present invention
The architecture is described by way of example in FIG. Pre
Video processor 300 scans from memory.
Fetch scan data, scan data to printer
Data serialization, printer synchronization, scan status signal
Required to generate a signal and generate an interrupt
It has a structure. Generally, a printer video processor
300 can be divided into two subsystems. No.
One subsystem is an I / O interface 206 and a
A second subsystem communicating with the linter engine 110;
Is the memory system 208 and the printer engine 1
Communicate with 10. In FIG. 3, the first subsystem is a PV
P-IOU interface 302, pixel counter
304, register file 306, read-only memo
(ROM) 308, adder 310, address latch
312, instruction / status / mode register 314
And a controller 316. PVP-
The IOU interface 302 has an I / O address and an I / O
Tries for controlling the data bus flow
It has a tate buffer. Pixel counter 3
04 is the left margin and pin
To count the dot clock for xell scan
Used for Register file 306 writes 1
Is the port register file for read only / 2
But there is a frame buffer address and format
Information about the timing, notes and notes
Used to generate a re-address. register·
The registers contained in the file 306 are shown in Table A below.
Shown in <Table A>register Purpose Base frame buffer start address (byte address) Pbase old base register (band buffer mode) X max Width of frame buffer scan                     (Rounded up to the nearest multiple of 8 in bytes) Y step memory address increment (number of bytes) Y max number of scans in frame T margin Number of scans at the top of the frame Bsize Band buffer size (number of rows) V mit vertical interrupt scan number Base current Current base register (internal use) Current Current scan memory address (internal use) X current X address in current scan (internal use) Y current Current scan number (internal use) Data size memory access size (internal use) Bcnt Current position in current band buffer (internal use) Tmp 0 Temporary register (internal use) Tmp l Temporary register (internal use) Tmp 2 Temporary register (internal use) In addition, two separate registers are used for timing calculations
To save space in the register file.
Therefore, they are not included in the register file 306. So
The two registers are shown in Table B below, but in the preferred embodiment.
Are stored in the pixel counter 304. <Table B>register Purpose L margin The number of video clocks to the left of the first dot                     Minus (-) 2 X maxl Number of bytes in scan line minus (-) 1 Read-only, closely related to register file 306
Memory (ROM) 308 from the format constant set
Become. In the preferred embodiment, ROM 308 contains 0, 1,
It consists of 4, 8, and 16 constants. The adder 310 stores the register file data
Perform arithmetic operations on data and / or ROM constants. That
Write the calculation result back to the register file 306
Address, control and status signals
Used by controller 316 to generate
You. Specifically, the adder 310 performs the “carry out”
Creates a flag and a "zero" flag, the two flags
Used by controller 316 to compare sizes.
Will be The "carry out" flag is the first opera
Size of the command is greater than or less than the second operand
Indicates whether it is either. On the other hand,
The lag is the size of the first operand, the second operand
Indicates whether it is the same as For example, zero
The flag indicates if the current address matches the old address
It is sent to the controller 316 by the adder 310. Address latch 312 stores the current address.
To pay. The current address in address latch 312 is
When a memory read / write request is made, the PVP-IOU
Interface 302. Address latch 31
2 indicates that the controller 316 controls the I / O address bus.
It is necessary to reduce the number of control cycles.
For memory read / write requests for performance reasons
In addition, the controller 316 may use the register file 306
Instead of reading the current address from the
Switch 312 on the I / O address bus
Enable tri-state buffer for sending
To Command / Status / Mode Register
Are collectively denoted by reference numeral 314, but the soft
Scan conversion control by software, software
Scan conversion monitoring and software PVP
Instruction microcontroller to allow interrupt control
Can be read or written by the processor 102
In some cases. The instruction microprocessor 102 is
In addition to performing cutting, coordinate transformation, clipping, scaling
Rasterization of ring and scan data can be realized. In operation, the controller 316
Printer printer under the control of command register 314
The sequence of the video processor 300 is advanced. life
The command microprocessor 102 has a command register
314 by setting the start frame bit
Load the scan command and receive the information
The controller 316 starts scanning. control
316 initializes the scan and follows the sequence
Scan the pages. The controller 316
Performs a series of calculations until the serialization is completed, and the serializer
Address and printer engine to load
The timing for the gin 110 is generated. Page complete
Sometimes, the scan pending bit in command register 314
If reset, scan from new address
Is resumed. The mode register 314 is
Page register as described for
Readings that are programmed prior to operation
Read / write register. Mode register 3
14 is not a double buffer system. In addition, PVP
While mode 300 is running, mode register 314 is
Dynamic programming is a preferred embodiment
Not allowed. Contents of mode register 314
Is as described in Table C below. <Table C>Mode bits Reset level function <0> TMDE 0 timing mode <1> JBMS 0 JBMS mode <2> BBE 0 band buffer enable <3> CINT 0 print completion interrupt enable <4> VINT 0 vertical interrupt enable <5> PRDY 0 PRDY interrupt enable <6> VSREQ 0 VSREQ interrupt enable <7> BBI band buffer interrupt                                       Enable <8> DIV 0 Video clock division selection <9> BLV 0 black level <31:10> Reserved 0 Program to "0" The "timing mode" bit and the "JBMS" bit
Together, the PVP 300 is in mode I, II, or I
Select which of II to operate. These three
The mode is different for different conventional printers with different interactive characteristics.
I correspond to each other. In other words, the printer according to the invention
The video processor 300 is the first software
With one of the three conventional printers
This is a changeable system that enables speech processing. More specifically, it is described in this specification.
Conventional pudding operating in Mode I
Vertical synchronization of status register 314
(VSync) bit is set by software
This initiates a page operation.
In addition, the printer clock is free running at high speed.
Is. The VSync signal is sent to the printer engine 1
10 in response to the FSYNC signal from
Please note that it is generated. In this specification
A conventional platform that operates in the described mode II
In the linter, the printer's FSYNC signal is
Trigger video processor 300 to operate page
Is started. In addition, the printer clock is
Lee running. Finally, as described herein
Conventional printer operating in mode III
Then, the printer's FSYNC signal is
Trigger processor 300 to perform page operations
Begins, but in this case the printer clock is free
It's not a sleeping. In a preferred embodiment, JBMS and TM
The decoding scheme for the DE bit is
It is shown in Table D. Many other decodes besides those listed here
Tables can be considered, and the printer mode is set to other than three types.
It should be understood that
You. <Table D>IBM bit TMDE bit mode     0 1 I     0 0 II     1 1 or 0 III As defined by the JBMS and TMDE bits
The printer video processor 300 is in mode I
D if programmed to operate
If the IV bit is "0", divide the video input clock by 8
Then, if it is “1”, the PVP clock will
Through generators (408, 410 in FIG. 4)
Report. The printer video processor 300 is
To operate in mode II or mode III
If programmed, the PVP clock generator
Does not divide the video input clock. Further, in a preferred embodiment, the "van"
Buffered mode ''.
To change the memory management. The BBE bit
If logic high ("1"), the band buffer
・ Mode is selected, but all other pages are normal
Mode is selected. In this specification, the band
The fa mode is one mode of operation.
In that mode, the printer video processor 300
Is the page memory for printing text pages
Alternately use different frame buffers. Van
Buffer is the size of each B-size scan line.
Mori Block. Belongs to the first band buffer
The first address refers to the "base" address
You. First address belonging to other band buffers
Is hereinafter referred to as the "P base" address. Further, in the mode register 314,
Of CINT, VINT, PRDY and VSREQ
Can be interrupted by each interrupt source
It represents that. Any of these bits are logic high
If set, then the associated interrupt
The source enables the generation of a particular PVP interrupt.
In the preferred embodiment, more than one interrupt is active at a time.
May be active. PRDY bit of mode register 314
Is set to a logic high,
Ready for blink from printer engine 110 (P
RDY) signal is inactive
If the state transitions to active, an interrupt
Is notified. In addition, the video of mode register 314 is
The scan request (VSREQ) bit is
Is set to the printer
VSREQ signal from gin 110 is inactive
If it changes to active, an interrupt is notified. The BLV bit is a logic high or low
Depending on the glitch, "white level" or "black
Level). The above level is a book
Allowed by printer video processor 300 of the invention
The scan data inversion caused by another feature.
Connect. Usually, the log sent to the printer engine 110 is
Gic low ("0") corresponds to the white of the page
And a logic high ("1") turns the page black
Equivalent to. In the preferred embodiment, the black level
Is the default level. If inversion is selected
For example, a logic low is equivalent to black and a high is
Equivalent to The exception is the margin, which is always white
It does not change. As described in detail below with respect to FIG.
In the meantime, the scan data has a margin “blanking (b
(Sending to logic 347)
Black level signal 634 and blank signal
636). The spare bits shown in Table C are
Program to zero to prevent effects from being triggered
It needs to be rammed. Spare bits are production test organization
Or for future performance enhancements. The command register 314 stores an instruction
From the control software in the microprocessor 102
This is a write-only register that receives commands. That
The contents can be read through status register 314.
Can be. The contents of the command register 314 are
It is shown in Table E. <Table E>Command bits Reset level function     <0> STF 0 frame start <1> RSET 0 reset PVP (for diagnosis) <2> BKRL 0 Back side printing, right to left <3> ERASE 0 Erase after printing <31: 4> Reserved 0 Program to "0" Command register 314 stores the PVP operation.
Used to start and support some test functions
Is done. Except by command register 314
No operation is started. Command register 3
14 for performance reasons and changeable specifications.
It is a bull buffer system. Command register
314 first loading to PVP 300
Frame generation is permitted. Command register 3
14 is loaded a second time, the second frame is reloaded.
Unless it is a set (RSET) or test function,
Started after completion of the first frame. Next, the first frame
If the command register 314
When loaded for the third time, the results may be unpredictable.
There is a case. However, the RSET bit is set
Exception in which case all operations are aborted
Can be The STF bit in Table E is
Command operation and normal system operation
The PVP 300 executes at the time of
Start the operation. Printer controller
When the set signal is requested, the command register 314
Is cleared and all operations are aborted. Ko
Sets the RSET bit of command register 314
Also interrupting all operations
Can be. Basically, the RSET bit is the command register
It has priority over other bits in the star 314. For the BKRL bit, “back side printing” is performed.
Whether it is going to do so. Back side printing is set
If so, the pages are scanned in reverse order. That is,
From bottom to top, right to left. The ERASE bit indicates that the frame buffer
Indicates whether it will be erased after printing. More specifically,
Mori Ward needs printer video processing for printing
Memory 300 after being read by the
The code is erased. This feature further enhances performance
Can be made. The spare bits shown in Table E are
Program to zero to prevent effects from being triggered
I have to ram it. This spare bit is produced
Used to implement test mechanisms or future performance enhancements
Sometimes. The status register 314 stores PVP3
The information on the control and monitoring of 00 is stored. Stay
The status register 314 is a read / write register.
The contents are as shown in Table F below. <Table F>Status bits Read / write function                     <0> FIP readout frame in progress <1> FPD readout frame pending <2> CINTA read page completed <3> VINTA read / clear Vertical direction time complete <4> BBIA read / clear (band) buffer complete <5> PRDYAP read / clear PRDY positive edge transition received <6> PRDYAN read / clear PRDY negative edge transition received <7> VSREQA read / clear VSREQ transition received <8> LSYNC read LSYNC pin level <9> FSYNC read FSYNC pin level <10> PRDY read PRDY pin level <11> PPRDY read PPRDY pin level <12> Prnt read / write Print pin level <13> CPrdy read / write CPrdy pin level <14> MREQ read Memory request pending <15> BLANK readout Horizontal blanking status                 (Horizontal banking ststus) <16> FIFOE read FIFO empty <17> FIFOEB read FIFO block empty <18> FIFOF read FIFO full <19> FIFOR read / clear FIFO refill                                               (Refill) error <20> ERASE read-out frame after print permission                                               Clear buffer <21> BKRL read Back side printing, right to left <22> VSync read / write VSync pin level The FIP bit indicates that the frame has already started,
Indicates that it has not been completed. FPD bit is second
Frame is already loaded, but reset
That it has not been started, except for a command
Is shown. The reset command applies to all operations
Interrupt and clear these bits. [0039] state transition
on) bit (CINTA, VINTA, BBIA, P
RDYA, VSREQA> are related events
Occurs and indicates that it has not been cleared. So
The corresponding interrupt enable is set.
Causes an interrupt when active. Stay
Set the status bit in the status register to logic high
Setting clears these bits
Then, the interrupt is cleared. Log in state bit
Write the lock row in the preferred embodiment.
These bits do not change anything. Set once with hardware
When activated, the associated state bit is
RSET bit of 0 becomes active or PVP
When the reset command is executed,
Not reset. The pin level bit indicates the level of the input / output pin.
Hold. LSYNC, FSYNC, PRDY and
Each bit of PPRDY is an input (hence the read
VSYNC, PRNT and CPR
The DY bit is the output. VSYNC, PRNT and
The CPRDY bit is reset by a reset operation.
Is cleared to a logic low and the processor
Which level by writing to status register 314
Can also be dynamically programmed. TMDE, BBE and interrupt enable
Bit is finally stored in the mode register 314.
Holds the programmed value. Some of the bits are dedicated to testing.
You. For example, consider the following bits: M
The REQ state bit indicates that the PVP 300
Indicates that one or more memory requests remain. BLANK
The bit is horizontal blanking (horizontal b)
ranking is currently taking place. FI
The FO state bit is the scan data shown in FIG.
Holds various FIFO control states of queue 344
You. Reset the interrupt in the PVP 300
For this reason, the reset instruction is executed by the PVP command register 31.
4 or a separate interrupt bit is
Whether the status register 314 is reset. V When the int register is loaded,
Decremented each time the line is reset
(X current is X When loaded from max
H). V When int becomes zero (0) or less, VINT
The A status bit is set. VINT interrupt enable
Interrupt is for instructions if the bull bit is set
It is sent to the microprocessor 102. V int is
The data in the pointed scan line is
Generated after being sent to the print engine 110. The C1NT (print completion interrupt) bit is
The last scan of the data is sent to the printer engine 110.
Set after being set. Status bits and interrupt enable
If the printer is set with both
Be informed. If the PRDY interrupt is enabled
If the PRDY bit is active from inactive
(PRDYAP transition bit is status
Is set in the register 314) and the PRDY interrupt
Is set. PRDY interrupt enabled
The PRDY bit from active to inactive
(PRDYAN transition bit is status
• also set in register 314)
The RDY interrupt is set. PVP 300 in band buffer mode
The BBI interrupt is enabled and the current
File has been printed (BBI status bit is set)
And the base register has already been replaced (swa
If p), the BBI interrupt is set. Ba
If no buffer mode is selected, the BBI
The state bit is always cleared. FIG. 4 shows a preferred embodiment of the controller 316.
This is a simple example. The controller 316 controls the decoder 40
2. State machine 404, logic / buffer 40
6, clock divider 408, clock buffer
410, interrupt logic 412, and decoder / ma
It consists of a multiplexer 414. Features described in this specification
Many other circuit configurations can be implemented by those skilled in the art to achieve
It must be emphasized that the outcomes can be considered. The decoder 402 has a printer video program.
Reading for latches and / or registers in the processor 300
I / O to generate read / write enable
Address, read / write signal, chip select
Decode the address strobe. Decoder 4
02 is also sent to the PVP-IOU interface 302.
Generate a shake control signal. In the preferred embodiment
The handshake control signals are “Ready” and “Read”.
Out / write "signals. The logic / buffer 406 stores the current address.
Is input / output address buffer by the address latch 312.
To the PVP4-IOU interface
Read / write of memory transferred to interface 302
Create the size of the request. In addition, logic / buffer
406 is controlled by the state machine 404.
The adder output to calculate the end of the scan line.
Mask the last 4 bits. And logic / buffer
406 indicates that two scan lines overlap
If so, the menu is controlled by the state machine 404.
At the time of a memory write request, two bits of the current address are
Clock generator is the printer clock
Generates a dot clock. The operation
Is necessary to clarify this function provided by the present invention.
is there. The clock buffer 410 is connected to a printer
In synchronization with the printer clock from the engine 110,
Video clock to printer video processor 300
Supply Clock divider 408 is a clock divider.
Printer clock from the buffer 414
And divide the frequency into either 8 or 16
Split or split completely according to the features of the present invention
Do either or not. The split option is
Select register 314. The interrupt logic 412 is a printer
A function used to monitor the status of the video processor 300
To generate the interrupt signal, the status register
Event bits and mode register interrupt enable
Perform combinational logic with bits. The preferred embodiment includes:
There are five interrupts: (1) Drop when a certain scan line is reached
Direct interrupt. (2) Band buffer indicating end of band buffer
interrupt. (3) Interrupt to indicate completion of page. (4) A new page is assigned to the printer video processor 300.
Printer engine 110 to start
Frame synchronization interrupt. (5) Ready signal from printer engine 110
Interrupt to signal the receipt of The decoder / multiplexer 414 receives input / output
From the PVP-IOU interface 206
Decode to register file write address and
Navel. The decoder / multiplexer 414
I / O address or printer video processor address
Address and write to register file
Enable the signal. The state machine 404 has a register
Of calculation of constants in file 306 and ROM 308
Control the order. The order of calculation is determined by the printer engine 11
0 and the timing signal from register 314
Sequencing and events
Commands for triggering
/ Status / mode register bits.
A sequence of events that occur within the printer video processor
And executed by the state machine 404
The algorithm will be described later with reference to FIGS.
explain. Referring back to FIG. 3, the printer
The second subsystem of the video processor includes a memory system.
System 208 and the printer engine 110.
As shown in FIG. 3, the second subsystem is a PVP-MC
U interface 342, scan data queue
(FIFO) 344, parallel-serial shift register
Realizer) 345 and controller 346
You. The PVP-MCU interface 342 has
Includes latch for storing data from MCU bus
Have been. The scan data queue 344 is essentially
It is a FIFO buffer, PVP as long as there is space.
-Data from the MCU interface 342 is loaded
It is. Along with the PVP-MCU interface 342,
Storing scan data in the scan data queue
, Page in progress, to printer engine 110
Interrupt-free flow of video bits.
Specifically, scan. Data queue 344 is full
(Full) signal and empty signal
It is sent to the roller 314. In response, the controller 3
46 prevents data loss or before scanning
In order to prevent the queue 344 from being emptied,
Control the flow. The depth of the queue 344 is
And depends on the
Expected worst case latency and target maximum bidet
Set by the clock rate, but
In the embodiment, the number is at least 8 words. The serializer 345 has scan data
Scan data bytes from the data queue 344 are
Has been loaded. The scan data byte is
Logic 347 before being sent to the
It can be operated by the controller 346 via. Lodge
Step 347 will be described later in this specification. Good
In a preferred embodiment, the serializer 345 has 8 bits.
One bit per dot clock (DCLK)
Output in series at the rate of PVP300 to Printer
Printer video data output to the engine 110
Data 370 is referred to herein as WDATA. FIG. 5 shows the control shown in FIG.
FIG. 146 is a low-level block diagram of block 346. In FIG.
The controller 346 has the bus data of the MCU.
To assert the appropriate latch enable when valid
The counter 502, the latch / logic 504, and the
It has a trick 502. According to another feature of the invention,
The hardware is provided with a license from the memory system 208.
With front-end mode and random data return
The mechanism required to achieve compatibility with both backside modes
Have. As described above, the scan in progress of the page
By storing the data in the scan data queue,
Video bit interrupt to printer engine 110
A perfect flow is possible. As shown in FIG.
Logic 508 in roller 346 writes the video queue.
Generate a write signal. Further, logic 508 includes
PV to be written to can data queue 344
Select P-MCU interface data. The low of the parallel-serial shift register 346
In reading, the counter 514 and the decoder 51
6 bytes to scan data queue 344
Generate a select. The counter 514 has a front mode and
Mechanisms required to achieve compatibility with both backside modes
Up / down counter to provide
You. In front mode, byte select is byte add
Must occur during the increase in
Byte select during byte address decrement
Must occur. Latch / logic 520, counter 522
And the decoder 524 provides a switch to the printer engine 110.
Generate a bit select for the can data.
Like the counter 514, the counter 512 has both front and rear sides.
Up / Down card compatibility for compatibility with
Unta. In front mode, the least significant bit
(LSB) is serialized first. Conversely,
In serialization, the most significant bit (MSB) is serialized first.
It is. All bytes in one word in scan data queue
When the data is loaded into serializer 345, a new word
Scan data wait to enable serialization of
That word must be removed from the matrix 344.
No. The controller 346 further includes a synchronizing
The logic 526 is provided. Operate in front mode
Synchronizer / logic 526 when running
Will load the most significant byte into serializer 345
Detected in the scan data queue 344.
Generate a protruding signal. Synchronizer in reverse mode /
Logic 526 determines that the least significant byte is the serializer 34
5 and wait for scan data
A read signal is generated in the matrix 344. Another important feature of the present invention is that the printer
The data sent to the engine 110 is a word address
Rather than being serialized starting from a byte
is there. Current address is first at scan line start address
Each time the address is set, the least significant three bits of the current address are
Is pre-loaded into the counter 514 of FIG. Therefore, FIG.
Of the scan data queue 344
Any scan data byte of each scan line
Can be selected as the start byte of the input. FIG. 6 shows the FIFO shown by the broken line in FIG.
FIG. 6 is a low-level block diagram of block 380. FIF
The O block 380 is a PVP-MCU interface 3
42, video data queue 344, serializer 3
45 and logic 347. As shown in FIG. 6, the PVP-MCU interface
The preferred embodiment of the face 342 is for waiting for video data.
64 * 4 bits FIFO stored in matrix 344
(FIFO) to direct data into buffer 610
Four 32-bit registers (602-608)
Contains. The interface 342 also determines which set of
Register (a pair of 602 and 604 or a pair of 606 and 608
Tuple) should be loaded into FIFO buffer 610
64-bit multiplexer (MUX) to select
Is provided. 2-bit up counter 614
Together with the decode logic (DEC) 616
An enable signal is output to the nodes 602 to 608. further,
The decode logic (DEC) 620 is a flip-flop.
Combined with rops 622-626,
Last register was preloaded first
Then, a FIFO push signal is generated. 8 at the output of FIFO buffer 610
The input multiplexer 628 is connected to the FlFO buffer 61.
Which of the 8 bytes from 0 is the shift register (serializer
Isa) Select to be loaded into 345. 3 bit
The up / down counter 630 provides a decode (D
EC) 632 and select to multiplexer 628
Generate a reset signal. In addition, bidirectional 8-bit shift
• Register 345 serializes printer video data
To The dot clock (DCLK) 656 is
Used as the clock for the printer engine 110
Is the PVP system clock (SCLK)
Note that it may be asynchronous
You. However, as shown in FIG.
The pop instruction to 0 is synchronous with DCLK656,
PVP system via logic 640 and decode 642
Resynchronized with the system clock (SCLK). The FIFO buffer 610 has a width of 64 bits.
G, 4 bits deep. However, the FIFO according to the present invention
The buffer 610 is compatible with both front and back modes.
In addition to the 32-bit and 64-bit MCU switch mode,
Must also be compatible. The system is 32
When operating in cut mode, the FIFO
The data provided externally as input to the file 610 is
While sent in 32-bit blocks, 64 bits
In the case of operation in a unit, the data is 64 bits.
Come in blocks. In addition, the FIFO data is loaded
The order is different between the front mode and the back mode. The reason
, Front mode requires left-to-right page scan
In this case, the address increases. Reverse
In reverse mode, page scanning is performed from right to left.
Address, in which case the address decreases. Follow
To support front mode and back mode.
Supports both bit mode and 64-bit mode
So that when a memory request is performed
The circuit shown in FIG. 6 always has a series of FIFO
Have to go through a licensing procedure. In the 32-bit mode, as shown in Table G below
As shown, the 2-bit up counter 614 goes low first.
Is executed. <Table G>Counter state Memory request   00 For 4-word (short) request   10 In case of 2 word request   11 When requesting one word In 64-bit mode, as shown in Table H below,
The load up counter 614 is loaded first. <Table H>Counter state Memory request   00 In case of 4-word request   01 1 or 2 word request Four possible operation scenarios individually
By analyzing the data in the FIFO block 380.
The loading procedure is described below. Specifically,
There are four cases: (1) 32-bit mode / front mode (run from left to right
Investigation) (2) 32-bit mode / back side mode (run from right to left
Investigation) (3) 64-bit mode / front mode (running from left to right
Investigation) (4) 64-bit mode / back side mode (run from right to left
Investigation) In the discussion below, DO, D1, D2, and D3 are F
The data word returned to IFO block 380,
Is the lowest order address, and D3 is the highest priority address.
Assume dress. Operation scenario (1), that is,
32-bit mode and front mode (scan from left to right)
In the case of, registers 602 to 608 store a specific start buffer.
Unit STB [1: 0] and the state of the counter 614.
And loaded as shown in Tables I through K below. <Table I> Case 1: 4-word requestSTB [1: 0] CTR = 00 CTR = 01 CTR = 10 CTR = 11   00 R2 = D1 R3 = D1 R0 = D2 R1 = D3   01 R3 = D1 R0 = D2 R1 = D3 R2 = D0   10 R0 = D2 R1 = D3 R2 = D0 R3 = D1   11 R1 = D3 R2 = D0 R3 = D1 R0 = D2 Two FIFO push signals are generated: PUSH1: {R3, R2} PUSH2: {R1, R0} <Table J> Case 2: Two-word requestSTB [1: 0] CTR = 10 CTR = 11 00 R0 = D2 R1 = D3 01 R1 = D3 R0 = D2 One F1FO push signal is generated PUSH1: {R1, R0} <Table K> Case 3: One word requestSTB [1: 0] CTR = 11 xx R1 = D3 One FIFO push signal is generated: PUSH1: {R1, xx} Operation scenario (2), ie, 32 bits
Mode and back mode (scanning from right to left)
Data 602 to 608 have a certain start byte STB.
[1: 0] and the state of the counter 614, the following table
Loaded as shown from L to N. <Table L> Case 3: 4-word requestSTB [1: 0 ]CTR = 00 CTR = 01 CTR = 10 CTR = 11   00 R0 = D0 R1 = D1 R2 = D2 R3 = D3   01 R1 = D1 R2 = D2 R3 = D3 R0 = D0   10 R2 = D2 R3 = D3 R0 = D0 R1 = D1   11 R3 = D3 R0 = D0 R1 = D1 R2 = D2 Two FIFO push signals are generated: PUSH1: {R3, R2} PUSH2: {R1, R0} <Table M> Case 2: Two-word requestSTB [1: 0] CTR = 10 CTR = 11 00 R2 = D2 R3 = D3 01 R3 = D3 R2 = D2 One FIFO push signal is generated PUSH1: {R3, R2} <Table N> Case 3: One word requestSTB [1: 0] CTR = 11 00 R3 = D3 One FIFO push signal is generated PUSH1: {R3, xx} Operation scenario (3), ie, 64 bits
Mode and front mode (scanning from left to right)
Stars 602 to 608 have a certain start byte STB.
[1: 0] and the state of the counter 614, the following table
Loaded as shown from O to Q. <Table O> Case 1: 4-word (short) requestSTB [1: 0] CTR = 10 CTR = 11   00 {R3=R2} = {D1, D0} {R1 = R0} = {D3, D2}   01 {R1 = R0} = {D3, D2} R2 = R0} = {D1, D0} Two FIFO push signals are generated PUSH1: {R3, R2} PUSH2: {R1, R0} <Table P> Case 2: Two-word requestSTB [1: 0] CTR = 01 xx {R3, R0} = {D1, D0} One FIFO push signal is generated PUSH1: {R1, R0} <Table Q> Case 3: One word requestSTB [1: 0] CTR = 01 xx {R1, R0} = {D1, xx} One FIFO push signal is generated PUSH1: {R3, R2} Operation scenario (4), ie, 64-bit
Mode and back mode (scan from right to left)
The stars 602 to 608 are as shown in Tables R to T below.
, A particular start byte STB [1: 0] and the counter
The state of the data 614 is loaded. <Table R> Case 1: 4-word requestSTB [1: 0] CTR = 10 CTR = 11   00 {R1 = R0} = {D1, D0} R3 = R2} = {D3, D2}   01 {R3 = R2} = {D3, D2} R1 = R0} = {D1, D0} Two FIFO push signals are generated PUSH1: {R3, R2} PUSH2: {R1, R0} <Table S> Case 2: Two-word requestSTB [1: 0] CTR = 10 xx {R3 = R2} = {D3, D2} Two FIFO push signals are generated PUSH1: {R3, R2} PUSH2: {R1, R0} <Table T> Case 3: One word requestSTB [1: 0] CTR = 10 xx {R3, R2} = {D3, xx} One FIFO push signal is generated PUSH1: {R3, R2} As described above <, shift / restore from FIFO buffer 610
Select one of the 8 bytes to be read into the register 345
The logic to do is a 3-bit up / down counter
630. Up / Down counter 630
Is the number of each scan with bits CURRENT [2: 0].
Only loaded at the beginning of the line. Bit CUR
RENT [2: 0] is the start byte STB of the scan
[1: 0] is determined. Load shift register 345
Each time the up / down counter 630
Select is output to the multiplexer 628, and the clock is output.
Is taken. In the preferred embodiment, the counter 630
The byte sequence corresponding to the state is shown in Table U below.
You. <Table U>CTR             BYTE 0000 001 1 010 2 011 3 100 4 101 5 110 6 111 7 In front mode (scanning from left to right), the counter 630
Is an up counter and shift register 345 is on the right
Shift (LSB first). CTR = 111, FI
Any time a FO pop or trigger is generated,
Is done. Shift register 345 stores the last byte of data.
Must be in this state before shifting all
I don't want to. In the back mode (scanning from right to left), the cow
The counter 630 is a down counter, and the shift register 3
45 shifts left (MSB first). CTR = 00
Whenever it reaches 0, a FIFO pop signal is generated
You. Further, the block sent to the logic 347
The rack level (BLV) signal 634 is
Black and white video data (WDATA) 370
Decide which of the two corresponds. The mode in Fig. 3
If BLV = 0 in the register 314, WDAT
A = 1 corresponds to black, and if BLV = 1, WD
ATA = 0 corresponds to white. In addition, the BLANK signal 636 is
If asserted for 347, then the printer
・ Video data (WDATA) is white (BLV
= 0, 0, BLV = 1, 1), page
Gin is available. As described above, various purines can be prepared according to the present invention.
Data will be available. Mode register 314
The bits in are between the printer video processor 300 and
Three types of printer engines 11 to interface
Initialized to select one of zeros. In this book
In a conventional printer operating in mode I,
Frame synchronization of status register (VSync)
By setting bits by software,
Operation is triggered. In addition,
Clock is very fast and free running
is there. A slave operating in mode II herein
In conventional printers, the printer's FSYNC signal is
Triggers the video processor 300 to
Operation starts. In addition, printer
The hook is free running. Finally, in this specification
Conventional printer operating in mode III
Then, the printer's FSYNC signal is
Trigger processor 300 to page operation
Is started. In this case, the printer clock is free
・ Not running. Operation in the above three modes is possible
To implement clock divider 408 of FIG.
The preferred embodiment that has emerged is shown in FIG. 7 below. FIG. 7 shows the low level of the divider 408 of FIG.
FIG. In FIG. 7, the divider 40
The output of 8 is called "dot clock"
Clock data to the printer engine 110
Go out. The line synchronization (LSYNC) signal is
Regardless of the type of data
Is sent. When the LSYNC signal is received, the edge
Detector 702 is the leading edge of “LSYNC”
Is detected, and the flag 704 is set to logic high. Logi
High, flag 704 indicates divider 408
Generate a dot clock. Synchrona
Iser 706 receives the output dot clock and
Operate in sync with the printer clock
To do. The logic 708 includes a multiplexer (MU)
X) To send an input signal 710 to the
Between the output of the printer 706 and the input printer clock.
An AND function is formed between them. The signal is signal 714
And 716, so that Modes II and III
Is to propagate through multiplexer 712
Has become. The mode I program is controlled by the divider 718.
Appropriate operation with the linter becomes possible. Diva
Ida 718 divides the printer clock by 8 or 16
Divide the signal into any one of them and send the divided signal to logic 708.
Send in. Logic 708 connects to multiplexer 712
To generate an input signal 720 to the printer
An AND function is performed on the signal and the divided signal. De
If the divider 408 is operating in mode I,
Multiplexer 712 controls signal 720 according to control 722.
Output the dot clock. If the printer engine 110 scans
When it reaches the end of IN, a blank signal is output to the latch 724.
Is entered. The blank signal has a logic
Low so that divider 408
Stop the output of the dot clock. II.operation A sequence of events that occur in the printer video processor 300
The sequence is described below. 1. The parameters of the video register file 306 of FIG.
Data is preloaded, in which the base register is
included. The operations are page size, file
The frame buffer address or margin is
Usually, unless dynamically changed during the
This is done during initialization of the printer and related peripherals. 2. The printer engine 110 is for the PVP 300
Asserts that data preparation is complete
ert). 3. The print signal is sent to the instruction microprocessor (instr
action microprocessor) 102
Printer engine 1 by the control software inside
Asserted for 10. 4. The print command is in the instruction microprocessor 102
Command of PVP300 by the control software of
• Loaded into register. 5. FSYNC signal from printer to PVP300
Asserted. As shown in FIG. 4, the FSYNC signal
Is asserted to the state machine 404. 6. State machine 404 is the top margin timing
Start to take Operation in front mode of PVP300
State machine 404 during the
The "top margin" used to time the gin
8 and 9 for the “counting algorithm”.
It is detailed. On the other hand, the PVP 300 operates in the back side mode.
When rating, the state machine 404
Top used to time the top margin
9 and 1 for the margin counting algorithm.
3 will be described in detail. 7. Upper margin timer (register T margin
Complete the count)
And the pixel counter 304 is the printer engine 1
Wait for the LSYNC signal from 10. 8. Input of LSYNC signal received by PVP300
The pixel counter 304 has left margin
Ima (register L programmed by margin
Is started), and the serializer 345
The first frame buffer to be sent to the
Fetch data. 9. Left margin timer L margin completes
Scan data is synchronized with the printer clock
Therefore, the flow starts from the controller 346 of the PVP 300.
I will. When operating in front mode of PVP300
State to serialize scan data to
"Serialization algorithm used by machine 404
FIG. On the other hand, PVP
When the 300 is operating in reverse mode,
State machine to serialize scan data
"Serialization algorithm" used by 404
This is described in detail in FIG. End of scan is L
X determined by the margin counter m
ax register data is used. 10. At the end of each scan line, a pixel
The counter 304 indicates that the last scan of the image frame
Until completion, LSYNC and L margin timer
I'm forced to wait. PVP300 is in front mode.
At the end of each scan line when
That is, at the right margin of the page, the state machine 404
Used by the "post scan line algorithm"
This is described in detail in FIGS. 11 and 12. one
On the other hand, if the PVP 300 is operating in backside mode
Each scan line by the state machine 404.
Post-scan line alignment used at the
The algorithm is described in detail in FIGS.
You. 11. When the last scan of the image frame is completed, P
The VP 300 reads the next print command from the command register 314.
Wait for the command to be sent. Pending print command
If exists, a new frame is started immediately.
You. III.Features and benefits In sum, the present invention has numerous features and advantages.
By way of example, some functional features will be discussed next. The printer video processor 300
Enables efficient and fast direct memory access (DMA)
It has the necessary mechanisms to manifest. The printer video processor 300
Bytes of data at the beginning and end of each scan line
・ Equipped with the necessary mechanisms to achieve alignment
You. In other words, rather than from a word address,
Serialization of data starting from write address
That is. According to the present invention, for printing a page
Printer video processor in page memory
Band that uses different frame buffers
The buffer mode can be realized. More specifically
Is the base and P base in band buffer mode
・ Data corresponding to address is blank operation
Top page (top-of-page)
Also exchanged during operation. Printer video
The processor 300 determines whether the base and P base addresses
B-size scan line band buffer starting with
Use alternately. Two bands for scanning pages
If only the buffer address is needed,
And P base registers prior to page scan
Is initialized only once. However, 2
If you need more than one band buffer address
Printer video processor 300
Signal and state bit to complete band buffer
And thereby the base and P base addresses
Can be changed dynamically
is there. With the printer video processor,
Operate in either front or back mode
And become possible. Another feature of the present invention is that the printer
The video processor 300 outputs to the printer engine.
Scan data can be inverted.
Image to be physically printed on paper is reversed
That is. Frame buffer during page scan
The function of partially clearing the
Another feature of the video processor 300 is that
You. More specifically, Printer Video Pro
The processor 300 typically sends a message after each memory read request.
Send a memory write request. Read request and write
Request size near or at the end of the scan line
Usually the same except for data byte requests in
You. After each memory request, the data is
And then sent to the printer engine 110
In the meantime, the state machine 404 of the PVP 300
The next byte requested via arithmetic unit 310 is also the next scan.
Check if it is on the line. If so
Printer video processor 300
Hit the backup flag and the byte is
Inn. First memory read
When a request is made for the next scan line,
The overlap flag is used to completely clear a word.
A mask for the requested address and data size.
Masking may also be performed. Finally, the printer video processor 3
00 maintains compatibility with various types of printers. Pre
Bit in the mode register of the
Defaults are set, so that operating characteristics
Can choose one of the different conventional printers
it can. Features and advantages other than those described above of the present invention
Examines the drawings and text described in this specification.
Will be apparent to those skilled in the art. here
Any additional features and advantages other than those discussed in
, But are incorporated herein. IV.An example FIGS. 17, 18, and 19 show the front mode and the back mode.
Printer / Pidget / Processor for each surface mode
Is an example of the input / output address specification generated by the above. This
These examples illustrate many of the features and advantages of the present invention.
Reveals. Example layout in these figures
Are almost the same, and are shown in FIGS. 17 and 18 here.
We will discuss only examples, but consider the following
Is equally applicable to FIG. In FIG. 17, legend block 1
Reference numeral 502 denotes various parameters in the register file 306.
Represents the initial value of the data. These parameters are
It is shown and described in Table A. In short, block 15
The parameter 02 performs the following functions. Y ma
x is the scan line on the virtual page shown in FIGS.
In number. Base is the first byte address, P
The base indicates the address of the next band buffer.
ing. B size is the band corresponding to the base address
-The size of the buffer. In this example, B size
Is set to 3, so the band buffer interrupt
Only occurs after the third scan line 1540
You. X max is when the scan line is completed
Used to confirm. Y Step is for each scan
-To indicate from which address on the line to start
Used for X max1 is 1 byte from the number of bytes
It is equivalent to the number subtracted. X When max1 is scanned
Used to check if data is serialized
You. The FSYNC signal 1504 starts the page
From the printer engine 110 to let you know when
Sent. Blank signal 1506 indicates that data is blank
Let me know when it will be done. When data is blanked,
The linter engine 110 does not print anything on the page,
The page is white. First, X current is X max and
Are equivalent. X current is the register
Current address in file 306 is the next scan line
Compared with the start address (base-current)
Used by PVP 300 to determine if
Flag. If X-current is 1 or less
PVP 300 checks for overlap
You. X max is allowed on the scan line
Indicates the maximum number of bytes. Basically, X max is a special feature
Set to a fixed value, and then a byte is
As it is sent to the gin 110, its value
It is decremented to operate. Good
In a preferred embodiment, X max is 96 bytes (60
h). But in practice, scanning
Lines can be no more than 89 bytes, but
X in the example max is cut to the nearest multiple of 8 bytes
It has been raised. The memory read request is sent to the printer engine
Mechanism during printing of the button 110 (shown herein
Does not scan the top margin,
Sent by PVP 300 to memory. Reference number 15
17 shows in FIG. 17 the register file 3
Base address, which is the current address stored in
"7ffffddh" ("h" at the end means hexadecimal
) Is an input / output address “7ffffddh”.
Is sent to the memory. fundamentally,
The last two bits of the input / output address sent to the memory are zero.
This is the current address masked by b. Therefore, PVP3
All input and output addresses sent to memory by 00
It is a word address, not a byte address. The input / output address is written to the memory
According to another feature of the present invention, the write signal
Command of the ERASE bit in the command register 314
After each read request. Reading
Data is transferred from the memory to the PVP 300 by the read request
Sent. The next write request is
Notify memory to write zero to location
To clear that location in memory
You. To the above address “7ffffdch”
As a result of the memory read request
Code (4 bytes) in the scan data queue 344
Is loaded. Data requested by PVP 300
The amount of data depends on the specific I / O address sent to memory.
Therefore, it is determined. Next, the retrieved data is stored in columns (
As shown in column 1510,
Cleared inside. One word consisting of 4 bytes
Is loaded into the PVP 300, so X ma
x is decremented from 60h to 5ch
However, 60h represents 96 bytes and 5ch is 92 bytes.
Represents The column indicated by reference numeral 1512 is a PVP.
Represents another read request sent from 300 to memory
I have. The current address in the register file 306 is “7
ffffelh ”. The last two bits are
Mask to zero to generate dress "7fffffe0h"
Has been locked. Input / output address "7ffff0h"
As a result of the addressed memory read request,
Is loaded into scan data queue 344
You. As shown in the column indicated by reference numeral 1512, the same four
The word is cleared in memory. In addition, 16 bytes
Are loaded into the PVP 300
X max decrements from 5ch to 4ch
5ch represents 92 bytes and 4ch
ch represents 76 bytes. The column indicated by reference numeral 1514 is the pixel
After serialization is started, sent from PVP300 to memory
Represents another read request to be performed. Register
The current address in the file 306 is “7ffffff1h”
And its related input / output address is "7ffffff0h".
is there. At this time, no more words are scanned
Is not loaded into the data queue 344 because it is
Scan data queue in the preferred embodiment
(FIFO) 344 stores only 32 bytes
is there. Word low in scan data queue 344
The clear function does not occur because it is not loaded. But
X current is decremented to 3ch
You. The blank signal is deasserted (deassertion).
rt) at which point the scan data queue 344
Already has data to print, so PVP3
00 immediately serializes the data and prints
Can be sent to the gin 110. First scan line
As shown at 1516, the printer engine 110
Print 3 bytes from the address sent to column 1510
Can be In addition, the printer engine 110
Is shown on the first scan line 1516
As shown in FIG.
Site can be printed. Scan data queue 344 contains data
When the volume is low, as column 1518 shows,
And read it further into memory to have the data sent.
Send out request. Further, the word in the memory is
May not be cleared at the end of the
Signal is reasserted).
Consider column 1520 in FIG. That searched
Four words are not cleared in column 1522. Why is it
Then because the next address set overlaps
is there. Specifically, “80000036h” is changed to “800
00030h ". Clearly,
The three memory read requests are sent to the printer engine 11
0 is ready to print the next scan line 1528
Before it is done. [0100] As described above, according to the present invention, a new professional
Having a processor and processing
Equipment with a processor that can minimize the burden
An arrangement and control method is provided.

【図面の簡単な説明】 【図1】 典型的なページ・プリンタ・システムのブロ
ック図である。 【図2】 ページ・プリンタ・システムの具体的な実現
方法を示す図である。 【図3】 図2に示すプリンタ・ビデオ・プロセッサの
高レベルのブロック図である。 【図4】 図3の示すコントローラ1の低レベルのブロ
ック図である。 【図5】 図3に示すコントローラ2の低レベルのブロ
ック図である。 【図6】 図3のビデオ・データ待ち行列の低レベルの
ブロツク図である。 【図7】 図3に示すクロック・ディバイダの低レベル
のブロック図である。 【図8】 図3に示すコントローラ1内のステート・マ
シンによって実現される方法論を説明する図である。 【図9】 図3に示すコントローラ1内のステート・マ
シンによって実現される方法論を説明する図である。 【図10】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図11】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図12】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図13】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図14】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図15】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図16】 図3に示すコントローラ1内のステート・
マシンによって実現される方法論を説明する図である。 【図17】 前面モード用にプリンタ・ビデオ・プロセ
ッサによって生成されるI/Oアドレス指定の一例を示
す図である。 【図18】 前面モード用にプリンタ・ビデオ・プロセ
ッサによって生成されるI/Oアドレス指定の一例を示
す図である。 【図19】 裏面モード用にプリンタ・ビデオ・プロセ
ッサによって生成されるI/Oアドレス指定の一例を示
す図である。 【符号の説明】 102…命令用マイクロプロセッサ、104…プリンタ
・ビデオ・プロセッサ、106…ページメモリ、108
…シリアル通信インターフェース、110…プリンタ・
エンジン、 200…ページプリンタコントローラ、2
04…システム・メモリ、206…I/0インターフェ
ース、208…メモリ・システム。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a typical page printer system. FIG. 2 is a diagram showing a specific method of realizing a page printer system. FIG. 3 is a high-level block diagram of the printer video processor shown in FIG. 4 is a low-level block diagram of the controller 1 shown in FIG. 5 is a low-level block diagram of the controller 2 shown in FIG. FIG. 6 is a low level block diagram of the video data queue of FIG. FIG. 7 is a low-level block diagram of the clock divider shown in FIG. 8 is a diagram illustrating a methodology implemented by a state machine in the controller 1 shown in FIG. 9 is a diagram illustrating a methodology implemented by a state machine in the controller 1 illustrated in FIG. FIG. 10 shows states in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 11 shows states in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 12 shows states in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 13 shows states in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 14 shows a state in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 15 shows states in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 16 shows states in the controller 1 shown in FIG.
FIG. 3 is a diagram illustrating a methodology implemented by a machine. FIG. 17 illustrates an example of I / O addressing generated by the printer video processor for front mode. FIG. 18 illustrates an example of I / O addressing generated by the printer video processor for front mode. FIG. 19 illustrates an example of I / O addressing generated by the printer video processor for backside mode. [Description of References] 102: microprocessor for instructions, 104: printer video processor, 106: page memory, 108
... Serial communication interface, 110 ... Printer
Engine, 200 ... Page printer controller, 2
04: system memory, 206: I / O interface, 208: memory system.

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−264368(JP,A) 特開 平2−156325(JP,A) 特開 平1−249352(JP,A) 特開 昭63−155321(JP,A) 特開 昭62−74663(JP,A) 特開 平3−285456(JP,A) 特開 平4−140163(JP,A) 特開 平5−278304(JP,A) (58)調査した分野(Int.Cl.7,DB名) B41J 5/30 B41J 2/44 G06F 3/12 G06F 15/177 ────────────────────────────────────────────────── ─── Continuation of the front page (56) References JP-A-3-264368 (JP, A) JP-A-2-156325 (JP, A) JP-A-1-249352 (JP, A) JP-A-63- 155321 (JP, A) JP-A-62-74663 (JP, A) JP-A-3-285456 (JP, A) JP-A-4-140163 (JP, A) JP-A-5-278304 (JP, A) (58) Field surveyed (Int.Cl. 7 , DB name) B41J 5/30 B41J 2/44 G06F 3/12 G06F 15/177

Claims (1)

(57)【特許請求の範囲】 【請求項1】 少なくとも命令を発行する第1のプロセ
ッサと、メモリと通信する第2のプロセッサを有し、ス
キャン・データ・フェツチ、シリアル化並びにプリンタ
との同期化を実行するプリンタの制御方法であって、 フレーム・バツファ・アドレス及びフオーマット定数を
ファイル・レジスタに格納するステップと、 前記プリンタがデータを処理する準備が完了しているこ
とを前記第2のプロセッサに通知するステップと、 データが印刷されるべきであることを前記第1のプロセ
ッサの制御用ソフトウェアによって前記プリンタに示す
ステップと、 前記制御用ソフトウエアによって印刷コマンドを前記第
2のプロセッサに関連するコマンド・レジスタにロード
するステップと、 前記プリンタを介して前記第2のプロセッサに対してフ
レーム同期化信号をアサートするステップと、 ぺージの上部マージンのタイムをとるステップと、 前記プリンタからライン同期化信号が送られて来るのを
待つステツプと、 前記ぺージの左マージンのタイムをとるステツプと、 前記プリンタに送られるべき画像フレームを前記第2の
プロセッサにてフェッチするステップと、 前記プリンタのクロックと同期して、前記画像フレーム
をスキャン・ラインにシリアル化して前記プリンタに送
るステップと、 各スキャン・ラインの終わりで、前記画像フレームのス
キャンが完了するまで、次のライン同期化信号と左マー
ジンタイマのスタートを待つステップと、 を備えたことを特徴とするプリンタの制御方法。
(57) [Claim 1] At least a first processor that issues instructions and a second processor that communicates with a memory, scan data fetch, serialization, and synchronization with a printer Storing a frame buffer address and a format constant in a file register; and verifying that the printer is ready to process data by the second processor. Notifying the printer that the data is to be printed by the control software of the first processor to the printer; and relating the print command to the second processor by the control software. Loading a command register; and Asserting the frame synchronization signal to the processor; taking the time of the top margin of the page; waiting for the line synchronization signal to be sent from the printer; and left margin of the page. Fetching an image frame to be sent to the printer by the second processor; synchronizing with the clock of the printer, serializing the image frame to a scan line to convert the image frame into a scan line. At the end of each scan line, waiting for the next line synchronization signal and the start of the left margin timer until scanning of the image frame is completed. Control method.
JP2002040517A 1991-11-27 2002-02-18 How to control the printer Expired - Lifetime JP3429296B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US79891791A 1991-11-27 1991-11-27
US798,917 1991-11-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP51000193A Division JP3310287B2 (en) 1991-11-27 1992-11-27 Printer processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003081879A Division JP3506335B2 (en) 1991-11-27 2003-03-25 Control method

Publications (2)

Publication Number Publication Date
JP2002358294A JP2002358294A (en) 2002-12-13
JP3429296B2 true JP3429296B2 (en) 2003-07-22

Family

ID=25174587

Family Applications (3)

Application Number Title Priority Date Filing Date
JP51000193A Expired - Lifetime JP3310287B2 (en) 1991-11-27 1992-11-27 Printer processor
JP2002040517A Expired - Lifetime JP3429296B2 (en) 1991-11-27 2002-02-18 How to control the printer
JP2003081879A Expired - Lifetime JP3506335B2 (en) 1991-11-27 2003-03-25 Control method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP51000193A Expired - Lifetime JP3310287B2 (en) 1991-11-27 1992-11-27 Printer processor

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003081879A Expired - Lifetime JP3506335B2 (en) 1991-11-27 2003-03-25 Control method

Country Status (2)

Country Link
JP (3) JP3310287B2 (en)
WO (1) WO1993011508A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359082B2 (en) * 2003-10-20 2008-04-15 Marvell International Technology Ltd. Independent video hardware blocks to support laser printers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4044335A (en) * 1974-09-23 1977-08-23 Rockwell International Corporation Memory cell output driver
NL8502640A (en) * 1985-09-27 1986-04-01 Oce Nederland Bv FRONT-END SYSTEM.
JPH01277928A (en) * 1988-04-30 1989-11-08 Oki Electric Ind Co Ltd Printer

Also Published As

Publication number Publication date
JP3506335B2 (en) 2004-03-15
JP3310287B2 (en) 2002-08-05
JPH07501498A (en) 1995-02-16
JP2003335007A (en) 2003-11-25
JP2002358294A (en) 2002-12-13
WO1993011508A1 (en) 1993-06-10

Similar Documents

Publication Publication Date Title
JP3669575B2 (en) Printer controller
US6097401A (en) Integrated graphics processor having a block transfer engine for automatic graphic operations in a graphics system
US6112267A (en) Hierarchical ring buffers for buffering data between processor and I/O device permitting data writes by processor and data reads by I/O device simultaneously directed at different buffers at different levels
US6247084B1 (en) Integrated circuit with unified memory system and dual bus architecture
US5664161A (en) Address-translatable graphic processor, data processor and drawing method with employment of the same
TW310410B (en)
JP3289661B2 (en) Cache memory system
JPH08255107A (en) Display controller
JPH1196072A (en) Memory access control circuit
JP3429296B2 (en) How to control the printer
JP3683657B2 (en) Graphics display device and graphics processor
US6628289B1 (en) Rendering apparatus and method, and storage medium
EP1125191A1 (en) Controlling access to a primary memory
JP3304395B2 (en) Data transfer device and data transfer method
JPH08180012A (en) Computer system
JP3478565B2 (en) Parallel interface circuit
JP2002278919A (en) Display control method and device
JPS60134334A (en) Print control method
JP3259095B2 (en) Data transfer method
JPH11115258A (en) Output control device and method
JP2826780B2 (en) Data transfer method
JP3248796B2 (en) Network printer system
JP2001084119A (en) Printer control device and method
JP2000135841A (en) Printer controller
JPH0721757B2 (en) Information processing equipment

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080516

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100516

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 10