(57)【特許請求の範囲】
【請求項１】
双方向性データバスインタフェースと、双方向性入出力（１／Ｏ）バスインタフェースと、アドレスバスインタフェースとを有するシングルチップ・スーパースカラ・マイクロプロセッサによって構成されるプリンタ・コントローラであって、
前記スーパースカラ・マイクロプロセツサが、
１）直交方向ローテータと、ビット／バイトミラー部と、ピクセル変更部とを含む複数の機能ユニットに結合され、該機能ユニットに並行に命令を発する命令スケジューラを有する命令プロセッサと、
２）プリンタエンジンのための複数の制御信号を生成し、フェッチすべきデータのメモリアドレスを生成し、フェツチされたデータをシリアル化し、シリアル化したデータを前記プリンタエンジンに提供するためのプリンタビデオプロセッサと、
３）前記命令プロセッサに結合されたデータキャッシュ及び命令キャッシュと、
４）前記スーパースカラ・マイクロプロセツサの外部の入出力バスに結合された入出力バスインタフェースに結合された入出力コントローラと、
５）前記プリンタビデオプロセツサ、前記データキャッシュおよび前記命令キャツシュ、前記データバスインタフェース、前記アドレスバスインタフェース、及び前記入出力バスインタフェースに結合され、前記入出力コントローラ、前記プリンタビデオプロセツサ、前記データキャッシュおよび命令キャツシュかららメモリトランザクション要求を受けるメモリコントローラと、
によって構成され、
前記命令プロセッサが、前記メモリコントローラを通じてプリンタビデオプロセツサレジスタファイルにアクセスし、前記入出力コントローラが、前記メモリコントローラを通じて前記データバスインタフェースに書込みアクセスすることを特徴とするプリンタコントローラ。
【請求項２】
さらに、前記シングルチップ・スーパースカラーマイクロプロセッサの外部に、前記メモリコントローラに結合されたメモリを含むことを特徴とする請求項１記載のプリンタコントローラ。
【請求項３】
さらに、前記外部メモリと前記アドレスバスの間に結合されたメモリインタフェース回路と、前記スーパースカラ・マイクロプロセッサのデータバスインタフェースを含むことを特徴とする請求項２記載のプリンタコントローラ。
【請求項４】
前記メモリインタフェース回路が複数の双方向性データバスポートを含むことを特徴とする請求項３記載のプリンタコントローラ。
【請求項５】
前記メモリインタフェース回路が多段アドレスパイプラインを含むこと特徴とする請求項３記載のプリンタコントローラ。
【請求項６】
双方向性データバスインタフェースと、双方向性入出力（１／Ｏ）バスインタフェースと、アドレスバスインタフェースとを有するシングルチップ・スーパースカラ・マイクロプロセッサによって構成されるプリンタコントローラであって、
前記スーパースカラ・マイクロプロセツサが、
１）複数の機能ユニットに結合され、前記複数の機能ユニットに並行に命令を発行する命令スケジューラを有する命令プロセッサと、
２）プリンタエンジンのための複数の制御信号を生成し、フェッチすべきデータのメモリアドレスを生成し、フェツチされたデータをシリアル化し、シリアル化したデータを前記プリンタエンジンに提供するためのレジスタファイルを含むプリンタビデオプロセッサと、
３）前記命令プロセッサに結合されたデータキャッシュ及び命令キャッシュと、
４）前記スーパースカラ・マイクロプロセツサの外部の入出力バスに結合れた入出力バスインタフェースに結合された入出力コントローラと、
５）前記プリンタビデオプロセツサ、前記データキャッシュおよび前記命令キャツシュ、前記データバスインタフェース、前記アドレスバスインタフェース、及び前記入出力バスインタフェースに結合され、前記入出力コントローラ、前記プリンタビデオプロセツサ、前記データキャッシュおよび命令キャツシュかららメモリトランザクション要求を受けるメモリコントローラと、
によって構成され、
前記命令プロセッサが、前記メモリコントローラを通じてプリンタビデオプロセッサレジスタファイルにアクセスし、前記入出力コントローラが、前記メモリコントローラを通じて前記データバスインタフェースに書込みアクセスすることを特徴とするプリンタコントローラ。
【請求項７】
さらに、前記シングルチップ・スーパースカラ・マイクロプロセッサの外部にあり、前記メモリコントローラに結合されているメモリを含むことを特徴とする請求項６記載のプリンタコントローラ。
【請求項８】
さらに、前記外部メモリと前記アドレスバスの間に結合されたメモリインタフェース回路と、前記スーパースカラ・マイクロプロセッサのデータバスインタフェースを含むことを特徴とする請求項７記載のプリンタコントローラ。
【請求項９】
前記メモリインタフェース回路が複数の双方向性データバスポートを含むことを特徴とする請求項８記載のプリンタコントローラ。
【請求項１０】
前記メモリインタフェース回路が多段アドレスパイプラインを含むこと特徴とする請求項７記載のプリンタコントローラ。
【請求項１１】
前記プリンタビデオプロセッサが、さらに加算器、定数ＲＯＭ、コマンドレジスタ、モードレジスタ、状態レジスタ、およびビデオポートのうちの少なくとも１つを含むことを特徴とする請求項６記載のプリンタコントローラ。
【請求項１２】
前記複数の機能ユニットが、直交方向ローテータ、ビット／バイトミラー部、ピクセル変更部を含むことを特徴とする請求項１１記載のプリンタコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、レーザ・プリンタなどのプリンタのコントローラに関する。より具体的には、本発明は超大規模集積回路（ＶＬＳＩＣ）半導体チップに実装可能なプリンタコントローラに関する。
なお、本明細書の記述は本件出願の優先権の基礎たる米国特許出願第０７／７２６，９２９号の明細書の記載に基づくものであって、当該米国特許出願の番号を参照することによって当該米国特許出願の明細書の記載内容が本明細書の一部分を構成するものとする。
【０００２】
【従来の技術】
ページ・プリンタ・コントローラはホスト・コンピュータの制御の下で動作して、レーザ・プリンタなどのプリンタへビデオ信号を送るものである。データをディスプレイ座標系に変形し、画像ウィンドウに合わせてオブジェクトをクリッピングし、ウィンドウを宛先の表示装置のビューポイント（視点）に合ったスケールにするといった機能は、米国特許第４，４４９，２０１号、発明の名称「複数の同種プロセッサを採用した幾何学図形処理システム」（ＧｅｏｍｅｔｒｉｃＰｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ  Ｕｔｉｌｉｚｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｉｄｅｎｔｉｃａｌ  Ｐｒｏｃｅｓｏｒｓ）に説明されており、また、グラフィック・ディスプレイに応用されるものとして、米国特許第４，６４８，０４５号、発明の名称「ラスタ型表示装置用の高速メモリおよびプロセッサ・システム」（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｍｅｍｏｒｙ  ａｎｄ  Ｐｒｏｃｅｓｓｏｒ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｒａｓｔａｒ  ＤｉｓＰ１ａｙ）に説明されている。
【０００３】
また、本発明の出願と同時に出願され、係属中の米国特許出願第０７／７２７，００６号、発明の名称「高性能ＲＩＳＣマイクロプロセッサ・アーキテクチャ」（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  ＲＩＳＣ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、１９９１年７月８日出願（ＳＭＯＳ−７９８４ＭＣＦ／ＧＢＲ）およびこれに対応する特願平５ー５０２１５０号（特表平６ー５０１１２２号公報）、および米国特許出願第０７／７２６，８９３号、発明の名称「複数の異種プロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ」（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｃａｐａｂｌｅ  ｏｆ  Ｓｕｐｐｏｒｔｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｈｅｔｅｒｏｇｅｎｅｏｕｓ  Ｐｒｏｃｅｓｓｏｒｓ）、１９９１年７月８日出願（ＳＭＯＳ−７９９２ＭＣＦ／ＧＢＲ／ＷＭＢ）およびこれに対応する特願平５ー５０２１５１号（特表平６ー５０１１２３号公報）には、新規なシングル・チップＲＩＳＣ型プロセッサおよび当該プロセッサと一緒に動作可能なメモリ制御ユニットによって、多重処理機能を実現することが開示されている。
【０００４】
本発明は、ＲＩＳＣ型プロセッサ・アーキテクチャを利用し、メモリ制御ユニットとのインタフェースとなることができるプリンタ・コントローラ・アーキテクチャを指向している。コントローラはプリンタ・ビデオ・プロセッサ（ＰＶＰ：ｐｒｉｎｔｅｒｖｉｄｅｏ  ｐｒｏｃｅｓｓｏｒ）、ＵＡＲＴポート、入出力パス・インタフェース、ＤＭＡコントローラ、ファームウェアＲＯＭ、およびメモリ・インタフェースを備えている。プリンタ・コントローラの主要機能は、ホスト・コンピュータと通信し、データを画像データに変形し（座標変形、クリッピング、スケーリング、ラスタ化）、プリント・エンジンの他の構成要素（例えは、レーザ・プリンタ）とのインタフェースとなりく診断を実行することである。ＲＩＳＣ型プロセッサと特殊グラフィック・ハードウェアを含んだシングル・チップ・ユニット（インテルｉ８６０）は、この分野では公知である。しかし、グラフィック・ハードウェアはＲＩＳＣ型プロセッサの外部に置かれており、物理的にも、機能的にもプロセッサに統合化されていない。
【０００５】
【発明が解決しようとする課題】
従って、本発明の目的は、単一のＶＬＳＩＣ半導体チップに実装可能なプリンタ・コントローラを提供することにある。
本発明の別の目的は、上掲の係属中の特許出願に開示されているＲＩＳＣ型マイクロプロセッサ・アーキテクチャを採用できるプリンタ・コントローラを提供することにある。
【０００６】
【課題を解決するための手段】
本発明は、特殊グラフィック機能によって使用され、他の機能ユニットと同じようにプロセッサに統合化された特殊機能回路をＲＩＳＣ型マイクロプロセッサ内に設けたものであり、以下のような構成を有している。
すなわち、双方向性データバスインタフェースと、双方向性入出力（１／Ｏ）バスインタフェースと、アドレスバスインタフェースとを有するシングルチップ・スーパースカラ・マイクロプロセッサによって構成されるプリンタ・コントローラであって、
前記スーパースカラ・マイクロプロセツサが、
１）直交方向ローテータと、ビット／バイトミラー部と、ピクセル変更部とを含む複数の機能ユニットに結合され、該機能ユニットに並行に命令を発する命令スケジューラを有する命令プロセッサと、
２）プリンタエンジンのための複数の制御信号を生成し、フェッチすべきデータのメモリアドレスを生成し、フェツチされたデータをシリアル化し、シリアル化したデータを前記プリンタエンジンに提供するためのプリンタビデオプロセッサと、
３）前記命令プロセッサに結合されたデータキャッシュ及び命令キャッシュと、
４）前記スーパースカラ・マイクロプロセツサの外部の入出力バスに結合された入出力バスインタフェースに結合された入出力コントローラと、
５）前記プリンタビデオプロセツサ、前記データキャッシュおよび前記命令キャツシュ、前記データバスインタフェース、前記アドレスバスインタフェース、及び前記入出力バスインタフェースに結合され、前記入出力コントローラ、前記プリンタビデオプロセツサ、前記データキャッシュおよび命令キャツシュかららメモリトランザクション要求を受けるメモリコントローラと、
によって構成され、
前記命令プロセッサが、前記メモリコントローラを通じてプリンタビデオプロセツサレジスタファイルにアクセスし、前記入出力コントローラが、前記メモリコントローラを通じて前記データバスインタフェースに書込みアクセスすることを特徴とする。
【０００７】
【発明の実施の形態】
本発明によるページ・プリンタ・コントローラ（ＰＰＣ：ｐａｇｅ  ｐｒｉｎｔｅｒ  ｃｏｎｔｒｏ１１ｅｒ）は、上掲の特許出願に記載されているＲＩＳＣ型プロセッサおよびメモリ・コントローラを使用して実現することが可能であり、本明細書に説明しているように、ページ・プリンタ・エンジンを制御するためのプリンタ・コントローラはＲＩＳＣ型プロセッサおよびメモリ・コントローラに基づいている。本明細書で「レーザ」プリンタと言うときは、広い意味において、類似のインタフェースを備えた一切のページ型プリンタを意味する。
【０００８】
以下、図面を参照して説明するが、図１はＰＰＣ１０を示す概要システム・ブロック図であり、ＰＰＣ１Ｏは、メモリ・バンクＯとオプションとしてのメモリ・バンク１を備えた２ウェイ・インタリーブ方式メモリ・アレイ１２、ホスト・コンピユータおよび各種周辺機器と通信するための入出力バス１４、特殊目的（プリンタ制御）ＵＡＲＴ、および汎用ＵＡＲＴとのインタフェースとなり、プリンタのラスタ・スキャン・レーザヘビデオ信号を送る。ＰＰＣユニット１０は図２のブロック図に詳しく示すように、ＲＩＳＣＣＰＵまたは命令処理ユニット（ＩＰＵ）２０を備えており、これは、オプションとしてのデータ用キャッシュ２２、オプションとしての命令用キャッシュ２４、およびオプションとしてのＲＩＳＣ命令ＲＯＭ２６と直接に通信する。このマイクロプロセッサ・ユニット２０は、さらに、１つまたは２つ以上のポートをもつメモリ・インタフェース・ユニット２８を介してメモリと交信する。
【０００９】
上述したように、好適実施例におけるマイクロプロセッサ・ユニット２０は本出願と同時に出願し、係属中の米国特許出願第０７／７２７，００６号（ＳＭＯＳ−７９８４ＭＣＦ／ＧＢＲ）に開示されているＲＩＳＣチップおよび米国特許出願第０７／７２６，８９３号（ＳＭＯＳ−７９９２ＭＣＦ／ＧＢＲ／ＷＭＢ）に開示されているメモリ・インタフェースに基づいており、いずれもそれを参照することで本明細書の一部を構成するものとする。さらに、命令処理ユニットは、プリンタ・ビデオ・プロセッサ３０をサポートする特殊な機能ユニットをいくつか備えており、そのような機能ユニットとしては、ピクセル変更データ経路（ｐｉｘｅ１  ｍｏｄｉｆｉｃａｔｉｏｎ  ｄａｔａｐａｔｈ）、直交方向ローテータ（ｏｒｔｈｏｇｏｎａ１  ｒｏｔａｔｏｒ）、およびビット／バイト・ミラー（ｂｉｔ／ｂｙｔｅ  ｍｉｒｒｏｒ）がある。
【００１０】
図３は・ピクセルがグラフィック命令によって変更されるピクセル変更データ経路を示した機能ブロック図である。ピクセルはデータ経路に示すようにグラフィック命令によって変更される。宛先とソースはビット単位でＬＦＵによって組合わされる。組合わされた結果は出力ＭＵＸに渡され、元の宛先または変更された宛先のいずれかが出力に渡される。計算はビット単位で行われるので、変更された宛先または未変更の宛先の選択は、個々のデータ経路ビットのＬＥＭ、ＲＥＭおよびマスク・データによって行われる。ＬＥＭとＲＥＭは５ビットの数であり、この数は変更すぺきビット範囲の左端と右端を定義しており、エッジ・ジェネレータ・ロジック（ｅｄｇｅ  ｇｅｎｅｒａｔｏｒ  １ｏｇｉｃ）によって処理されてビット・フィールド（左マスクと右マスク）に展開され、マルチプレクサを制御するために使用される。左マスク・右マスクおよびマスク・データはビット単位で論理和（ＯＲ）がとられる。これは、変更すベき宛先ビットについてすベてのビットを０にセットする必要があるためである。図３の回路は、グラフィック・ピクセル変更データ経路を「ビット・スライス」構造で表現したものである。ＬＦＵ機能コードはプロセッサ状態レジスタに保持される。
【００１１】
宛先は常に「ソース」と組合わされる。ソースは事前に定義したデータである場合とメモリ・ビットマップからコピーされる場合とがある。ソースと宛先は、２個の２進ビットの１６通りの組合せの１つと結合することができる。マスクを使用すると、そのマスクはマスク画像内でセットされているピクセルに変更されるピクセルを制限する。
【００１２】
図４は、直交方向（９０度または２７０度）に回転するビットマップ・データのブロックをアセンブルするために使用される直交方向ローテータ（ｏｒｔｈｏｇｏｎａ１  ｒｏｔａｔｏｒ）を示す機能ブロック図である。ソース・データの下位バイトはユニットに保持されている８個のレジスタのビットに書かれる。内部ワードを埋めるために最大３２バイトまでが書かれ、直交方向に回転したデータがそのあとメモリに書かれるか、プロセッサによって使用される。ワードが下位から上位のレジスタ・アドレスに向かって読み出される場合は、回転は９０度であり、上位から下位のレジスタ・アドレスに向かってレジスタが読み出されると、データは２７０度だけ回転する。
【００１３】
図４はロジックの基本的オペレーションを示したものである。ソースは８ビットでロードされている。ビット０はレジスタ０の３２ビットすべてに渡される。ビット’ｎ’はレジスタ’ｎ’の３２ビットすべてに渡される。選択されたビットはビット・デコードで使用され、８ワード内から変更すべきビットを選択する。このようにして、各レジスタの１ビットは常にソースから１ビットずつロードされる。各ワードの中のデータはいつでも読み取ることが可能になっている。さらに、すべてのワードは「移動」（ｍｏｖｅ）命令を使用して直接に事前ロード（プリロード）することが可能であり、また、すべてのレジスタは、初期設定を目的に同時にブロックでクリアすることが可能である。
【００１４】
直交方向ローテータ命令には、ＡまたはＢレジスタとの問の移動、ローテータ・プリセット、バイト直交方向回転がある。直交方向ローテータ・プリセットは、直交方向レジスタに入っている全ビットの値を１つの命令でセツトする。この命令は１つのパラメータ「レベル」をもっている。この８ビット・パラメータは８個の直交方向レジスタの各々の全ビットに１ビットをロードする。ビット〈０〉は直交方向レジスタ０の全ビットにロードされ、ビット〈ｎ〉はレジスタｎの全ビットにロードされる（以下、同様）。バイト直交方向回転は上述したように、汎用レジスタからのデータの下位バイトを直交方向に回転させる。バイト直交方向回転は２つのパラメータをもっている。データのバイトを保持するレジスタと選択されたビットを保持するレジスタである。これらのレジスタからのデータは、それぞれ８ビットと５ビットに切り捨てられる。
【００１５】
図５は、４個のマルチプレクサ（ＭＵＸ）からなるビット／バイト・ミラー（ｂｉｔ／ｂｙｔｅ  ｍｉｒｒｏｒ）を示すもので、マルチプレクサの各々は８ビット・バイトを受け取り、以下の表に示すように、これらのビットを同じ順序にまたは逆順（鏡映して）に出力する。
【００１６】
0003669575.tif 000002
ビットがワード内で鏡映されたあと、そのワードを１バイトずつメモリに書き戻すことができる。あるいはバイトを回転シフタ回路（ｂａｒｒｅ１  ｓｈｉｆｔｅｒ  ｃｉｒｃｕｉｔ）を用いて並べ替えることも可能である。ビット・ミラー命令はレジスタからソース・ワードを読み取り、鏡映された内容を宛先レジスタに書き戻す。
【００１７】
ビットマップの鏡映（ｍｉｒｒｏｒｉｎｇ）ど直交方向回転はハードウェアでサポートして行うことができる。時間を消費する作業（タスク）をファームウェアとソフトウェアで比較的高速で行えるようにする２つのハードウェア機能ユニットが用意されている。ビット・ミラー・ユニットはそこにロードされたワードの各バイト内のビットをすべて鏡映する。これらのバイトは、必要ならば、バイト抽出（ｅｘｔｒａｃｔ  ｂｙｔｅ）やバイト・マージ（ｍｅｒｇｅ  ｂｙｔｅ）といったように、シフト命令を使用して並べ替えることが可能である。標準シフタ機能と併用してこのユニットで１８０度の回転を行うことが可能である。
直交方向ローテータ・ユニットはワードの下位バイトをレジスタの選択可能ビットに入れる。各レジスタには１ビットが入れられる。その結果、８個のレジスタの内容は、最終的には、直交方向に回転した３２ビットｘ８ワード・ブロックのビットからなっている。
ビット・ミラー・ユニットは、メモリ内のビットを鏡映して（逆順にすること）、直交方向に１８０度回転させることをサポートするものである。このユニットはそこを通過するワードの全バイト内のビットをスワップ（入れ替えること）する。ビット・ミラー・ユニットはピクセル変更データ経路に組込みまたは統合化しておく（ｉｎｔｅｇｒａｔｅｄ）と、好都合である。
【００１８】
図６および図７に示すように、図３〜図５の特殊機能回路はＩＰＵに統合化されている。特殊機能回路は機能ユニットとして統合化することも、機能ユニット群（クループ）内に統合化することも可能である。図６において、回路は機能ユニット（グループ）で示されており、他の機能ユニット（例えは、ＡＬＵ、乗算器、ＦＡＬＵ）が相互接続されているのと同じように、ＭＵＸを経由してレジスタ・ファイルＡおよびＢと相互接続されている。図７に示すように、ソース・データＭＵＸおよび制御信号ＭＵＸは直交方向ローテータ、ピクセル変更ユニット（ｐｉｘｅ１  ｍｏｄｉｆｉｅｒ）、およびミラーと相互接続されている。
【００１９】
グラフィック機能ユニットは完全にＲＩＳＣ  ＩＰＵに統合化されている。この機能ユニットは特殊グラフィック命令によって使用される。この命令は、他のＲＩＳＣ命令と同じように実行される。ＲＩＳＣコアは、「スーパスカラー」型オペレーションの機能を備えている。つまり、２つ以上の命令を各サイクルごとに実行し、完了することができる。グラフィック機能ユニットは、ＡＬＵや乗算器などの、より標準的な他の機能ユニットと同じようにスケジュール別にスケジュールされる。
【００２０】
直交方向ローテータ・ユニットとピクセル変更ユニットは内部「状態」情報をもっており、この情報はＩＰＵコンテキスト・スイッチの期問維持されている。これらの状態レジスタは、レジスタ・ファイルと機能ユニット間の特殊レジスタ移動命令によって他のプロセッサ状態情報（例えば、除算の商および剰余レジスタ）と同じように処理される。これらの機能ユニットは、シフタ機能ユニットと同じバス群を通して、左右対称にＡおよびＢ  ＩＰＵレジスタ・ファイルで使用することができる。
【００２１】
プリンタ・ビデオ・プロセッサ
図２に示したプリンタ・ビデオ・プロセッサ（ＰＶＰ）２８の詳細を図８の機能ブロック図に示す。ＰＶＰはタイミング信号を生成し、スキャン（走査）データのフェッチとスキャン・データ・シリアル化（逐次化）を行い、プリント・エンジンの同期化を行うと共に、スキャン状況と割込みを引き起こす機能を備えている。この回路の大部分はシステム・クロックによってクロックがとられるが、シリアル化とある種の制御ロジックは、プリント・エンジン・ビデオ・クロック（Ｗｃ１ｋ）と呼ばれる別のクロックによってクロックがとられる。
【００２２】
ビデオ・レジスタ・ファイル３０は、タイミングとメモリ・アドレスを生成するために使用されるレジスタを収めている。これらのレジスタはメイン・システム・プロセッサによって読み書きすることができる。以下に示したレジスタは、ビデオ・レジスタ・ファイルに収められている。
0003669575.tif 000003
次のレジスタはレジスタ・ファイルに入っていないが、タイミング計算のために使用される。
0003669575.tif 000004
べース・メモリ・アドレスは１６バイト境界に境界合わせされていなければならない。スキャンはバイト数が奇数の幅にすることができる。Ｘ＿ｍａｘは、スキャン・ライン内のバイト数を８の最寄りの倍数まで丸めて保持している。Ｘ＿ｍａｘｌはスキャン当たりのバイト数から１を引いたバイト数を保持している。
【００２３】
定数ＲＯＭ３２は、０、１、４、８、１６になっている。
加算器（ａｄｄｅｒ）３４はレジスタ・ファイルと定数について算術演算を行う。計算結果はレジスタ・ファイルに書き戻すことができるが、コントローラ３５によって使用されて、アドレス、コントロールおよび状況が生成される。この出力はメモリ・アドレス・ジェネレータに渡され、これを受けて、ジェネレータは次にシリアル化すべきワードをフェッチする。状態はコントローラと加算器フラグ（ゼロおよびキャリー・アウト）によってセットされる。
【００２４】
ビデオ・データは、ＦＩＦＯまたはビデオ・データ待ち行列（Ｖｉｄｅｏ  Ｄａｔａ  Ｑｕｅｕｅ）にロードされる。シリアライザ（ｓｅｒｉａ１ｉｚｅｒ）は、待ち行列が空になったとき待ち行列からロードされる。待ち行列は一杯（ｆｕｌｌ）信号と空（ｅｍｐｔｙ）信号をもっており、シーケンサはこの信号によってデータの流れ（フロー）を制御してデータ損失を防止し、あるいはスキャン終了前に待ち行列が空になるのを防止している。待ち行列の深さは実現方法に依存し、メモリ・システムにおいて予想される最悪のケースと目標とする最大ビデオ・クロック・レートによって設定されるが、最小限８ワードである。
【００２５】
シリアライザ３８はバッファ付き並列−直列シフト・レジスタ（ｂｕｆｆｅｒｅｄ  ｐａｒａｌｌｅ１−ｔｏ−ｓｅｒｉａ１  ｓｈｉｆｔ  ｒｅｇｉｓｔｅｒ）であり、データの８ビットからドット当たり１ビットの割合でデータを生成する。このシフト・レジスタはシリアル・データをシフトして、ビデオ・インタフェース・シリアル・データ出力ピン（Ｗｄａｔａ）から出力する。データをプリント・エンジンが要求していることをシーケンサが指示した時、ビデオ・クロック（ＤＣｌＫ）ごとに１ビットの割合でデータがシフトする。ＤＣｌＫはキャノン・モード（Ｃａｎｏｎ  ｍｏｄｅ）では、Ｗｃｌｋの１／８または１／１６に相当する。前面ページを印刷するときは、待ち行列からの最下位バイトから先にシフト・レジスタにロードされ、これに対し、裏面ページの場合は、最上位バイトから先にロードされる。前面ページ印刷の場合は、データは右にシフトされ、裏面ページ印刷の場合は、データは左にシフトされる。
【００２６】
ＰＰＣをカラー・プリンタで使用する場合は、複数のカラーを表示するには複数回のパスが必要であり、またパック化したピクセルをフレーム・バッファ内で使用し、エンジンが要求するビデオ・クロックの倍数でシリアル化してＰＰＣから出力する必要がある（例えは、４ビット／ピクセルのときは、４ｘ）。
モード、コマンドおよび状況レジスタ４０はメイン・プロセッサが読み取り、そこに書き込むことができ、スキャン変換をソフトウェアで制御し、スキャン変換をソフトウェアでモニタし、ＰＶＰ割込みをソフトウェアで制御する。
【００２７】
コントローラはコマンド・レジスタ（ＩＰＵ２０によってアクセスされる）の制御の下でスキャン・ユニットのシーケンスを進めさせる。ＩＰＵは、コマンド・レジスタの開始フレーム・ビットをセットしてスキャン・コマンドをロードし、この指示を受けてコントローラはスキャンを開始する。コントローラはスキャンを初期設定し、シーケンスに従ってページをスキャンしていく。スキャン保留ビット（ｓｃａｎ  ｐｅｎｄｉｎｇ  ｂｉｔ）は、ベース・レジスタが再ロードのために解放されるとリセットされ、別のスキャンを開始することが可能になる。コントローラはデータ経路に対して一連の計算を行って、シリアライザをロードするためのメモリ・アドレスとプリント・エンジンに対するタイミングを生成し、これはページが完了するまで行われる。ページが完了したとき、コマンド・レジスタのスキャン保留ビットがリセットされていれば、ページは新しいアドレスから再開される。
【００２８】
モード・レジスタは読み書きレジスタである。モード・レジスタの内容は次の通りである。
0003669575.tif 000005
「タイミング・モード」には（Ｐｒｉｍａｒｙ）基本、ＪＢＭＳまたは代替（Ａ１ｔｅｒｎａｔｅ）タイミング・モードのいずれかを選択する。
【００２９】
0003669575.tif 000006
バンド・バッファ・モードは、ＢＢＥビットが１のとき選択される。バンド・バッファ・モードが割込み許可されていないと、通常の全ページ・モードが選択される。
【００３０】
ＣＩＮＴ、ＶＩＮＴ、ＰＲＤＹおよびＶＳＲＥＱは、それぞれの割込み発生源では割込み可能になっている。これらのビットのいずれかが１にセットされると、その関連割込み発生源はＰＶＰ割込みを引き起こすことが許可される。割込みは一度に２つ以上アクティブにすることができる。
ＰＲＤＹビットがセットされたときは、ＰＲＤＹピンがインアクティブからアクティブに移り変わると、割込みが通知される。ＶＳＲＥＱビットがセットされたときは、ＶＳＲＥＱピンがインアクティブからアクティブに移り変わると、割込みが通知される。
【００３１】
モード・レジスタは、オペレーションの開始に先立ってブロクラムしておかなければならない（下述するコマンド・レジスタを参照）。モード・レジスタはダブル・バッファ方式になっていない。ＰＶＰがアクティブにあるときモード・レジスタに対する変更は許されず、変更を行うと、挙動が予測不可能になる。
基本モードでは、ＤＩＶが０ならば、ＰＶＰクロック・ジェネレータはビデオ入力クロックを８で分割し、１ならば、入力クロックを１６で分割する。代替またはＪＢＭＳモードでは、ＰＶＰはビデオ入力クロックの分割を行わない。
ブラック・レベルは、ＢＬＶビットが０ならば１であり（省略時のレベル）、そうでなければ、ブラック・レベルは０である。ビデオがブランキング（帰線消去）されたときは、そのレベルはホワイト・レベルと同じである。
予備ビットは、起こり得る二次的影響を防止するためにゼロにプログラムしておく必要がある。これは、一部のビットがブロダクション（実稼働ないし生産）テスト機能または将釆の機能強化のために使用される場合があるためである。
【００３２】
コマンド・レジスタは書込み専用レジスタである。その内容は状況（ステータス）レジスタを通して読み取ることができる。コマンド・レジスタの内容は次の通りである。
0003669575.tif 000007
コマンド・レジスタはＰＶＰオペレーションを初期設定し、ある種のテスト機能をサポートするために使用される。コマンド・レジスタによる以外は、どのオペレーションも初期設定されない。コマンド・レジスタはダブル・バッファ方式になっている。レジスタが初めてロードされると、ＰＶＰによるフレーム生成が可能になる。レジスタが２回目にロードされたときは、新しいフレームは、その２番目のフレームがＲＳＥＴまたはテスト機能でなければ、最初のフレームが完了すると開始する。そのあと、コマンド・レジスタが最初のフレームが完了しないうちに３回目にロードされると、その結果は予測不能になる。ただし、ＲＳＥＴビットがセットされている場合は別で、その場合は、すべてのオペレーションが途中で打ち切られることになる。
【００３３】
最も重要なコマンドは「開始フレーム」であり、通常のシステム・オペレーション時にＰＶＰが実行するタイミングとＤＭＡオペレーションはこのフレームで開始されるためである。ＰＰＣリセット・ピンが要求されると、コマンド・レジスタがクリアされ、すべてのオペレーションが中止される。コマンド・レジスタの”ＲＳＥＴ”ビットをセットすると、すべてのオペレーションを途中で中止させることも可能である。このＲＳＥＴビットは他のビットに優先する。
【００３４】
ＢＫＲＬが１のときは、裏面印刷が行われる。この場合は、ページは逆順に（下から上へ、右から左へ）スキャンされる。ＥＲＡＳＥは、フレーム・バッファが印刷中に消去されることを意味する。メモリ・ワードが印刷のために読み取られると、そのワードは消去される。予備ビットは、起こり得る二次的影響を防止するためにゼロにプログラムしておく必要がある。これは、一部のビットがプロダクション（実稼働ないし生産）テスト機能または将来の機能強化のために使用される場合があるためである。
【００３５】
状況レジスタはＰＶＰ制御とモニタに関係する情報を保持している。ビットはユニークであり、それぞれ異なる特性をもっている。状況レジスタは読み書きレジスタであり、その内容は次の通りである。
【００３６】
0003669575.tif 000008
ＦＩＰビットは、フレームが開始されたが、まだ完了していないことを示している。ＦＰＤビットは２番目のオペレーションがロードされたが、まだ開始されていないことを示している。ただし、リセット・コマンドの場合は例外で、この場合は、すべてのオペレーションを中止し、これらのビットをクリアする。
【００３７】
状態遷移ビット（ＣＩＮＴＡ、ＶＩＮＴＡ、ＢＢＩＡ、ＰＲＤＹＡ、ＶＳＲＥＱＡ）は、それぞれに関連する事象が発生し、まだクリアされていないことを示している。関連の割込み許可がセットされていると、アクティブになったとき割込みを引き起こす。割込みは、クリアすべきビットに１を書くことによって状況レジスタの状態ビットがクリアされたとき、クリアされる。関連ビットに０を書いたときは、ビットは未変更のままである。ハードウェアによってセットされた関連状態ビットは、ＰＰＣのリセット・ピンがアクティブになるか、ＰＶＰリセット・コマンドが実行されたとき、上述した場合を除きリセットされない。
【００３８】
ピン・レベル・ビットは入出力ピンのレベルを保持している。ＬＳＹＮＣ、ＦＳＹＮＣ、ＰＲＤＹおよびＰＰＲＤＹピンはすべて入力であり（従って、読取り専用）、ＶＳＹＮＣ、ＰｒｎｔおよびＣＰＲＤＹピンは出力である。ＶＳＹＮＣ，ＰｒｎｔおよびＣＰｒｄｙはリセット・オペレーションによって０にクリアされ、プロセッサが状況レジスタに書込みを行うことよってどのレベルにもプログラム可能である。
ＴＭＤＥ，ＢＢＥおよび割込み許可ビットは最後にモード・レジスタにロードされたプログラム値を保持している。
ＭＲＥＱ状況ビットは、まだ完了していない未処理のメモリ要求が１つまたは２つ以上ＰＶＰに残っていることを示している。ＢＬＡＮＫビットは、水平帰線消去が現在行われていることをＰＶＰタイミングが示していることを示している。
ＦＩＦ０状況ビットはＦＩＦＯ制御状態を保持している。これらのビットはすべてテスト目的に使用されるものである。
ＰＰＣがリセット・ピンによって初期設定されるか、リセット命令がＰＶＰコマンド・レジスタにセットされるか、個々のビットが状況レジスタを通してリセットされると、すべての割込みがリセットされる。
【００３９】
Ｖ＿ｉｎｔレジスタがロードされると、これは各ラインがリセットされるつどデクリメントされていく（Ｘ＿ｃｕｒｒｅｎｔがＸ＿ｍａｘからロードされたとき）。Ｖ＿ｉｎｔが０以下になると、ＶＩＮＴＡ状況ビットがセットされる。ＶＩＮＴ割込み許可ビットがセットされていれば、割込みがＩＰＵに送られる。スキャン・ライン内でポイントされているデータがプリンタに送られると、Ｖ＿ｉｎｔが引き起こされる。
印刷完了状態（ＣＩＮＴ）は、最後にスキャンしたデータがプリンタに送られるとセットされる。印刷完了割込みは、状況ビットがセットされ、その割込み許可がセットされると、通知される。
【００４０】
ＰＲＤＹ割込みは、ＰＲＤＹ割込みが許可されているとき、ＰＲＤＹピンがインアクティブからアクティブに移り変る（ＰＲＤＹＡＰ遷移ビットが状況レジスタにセットされる）とセットされる。ＰＲＤＹ割込みは、ＰＲＤＹ割込みが許可されているとき、ＰＲＤＹピンがアクティブからインアクティブに移り変る（ＰＲＤＹＡＮ遷移ビットが状況レジスタにセットされる）とセットされる。
ＢＢＩ割込みは、ＰＶＰがバンド・バッファ・モードにあり、ＢＢＩ割込みが許可されており、現バッファが印刷され（ＢＢＩ状況ビットがセットされ）、そしてべース・レジスタがスワップされたとき、セットされる。バンド・バッファ・モードが選択されていないときは、ＢＢＩ状況ビットは常にクリアされる。
タイミング
図１２〜図１５は、従来のレーザ・プリンタで使用されているＰＰＣビデオ・インタフェースのタイミングを示す図である。ビデオ・データ・クロック・ロジック（クロックはＷｃ１ｋピンから得られる）とシステム・クロック・ロジック間のすべてのインタフェースで同期がとられる。タイミング・コントローラはＷｃ１ｋクロックと内部ＰＰＣクロックの両方と同期している回路を備えている。このコントローラは、シリアル化ハードウェア、シーケンサおよびタイミング・ピンに対するタイミング信号と制御信号を生成する。プリント・エンジンによってコントローラはビデオ・データ・クロック（Ｗｃ１ｋ）を生成することができるのに対し、ＰＰＣはクロックを生成しないが、代替モードの場合と同じように、クロックを生成するためにはボードまたはプリント・エンジンが必要である。このクロックはＰＰＣクロックと非同期にすることが可能である。
【００４１】
ビデオ・プロセッサで行われる事象は次のような順序で行われる。
１）ビデオ・レジスタ・ファイル・パラメータが事前ロードされ、この中にはぺース・レジスタが含まれる。ページ・サイズ、フレーム・バッファ・アドレスまたはマージンが変更されていなければ、これは通常プリンタの初期設定時に行われる。
２）ＰＲｄｙピンがプリンタによって要求される。
３）Ｐｒｎｔピンが制御ソフトウェアによって要求される。
４）プリント・コマンドがＩＰＵによってコマンド・レジスタにロードされる。
５）ＦＳｙｎｃ入力が要求されると、シーケンサは上部マージンのタイミングをとることを始める（このマージンはレジスタＴ＿ｍａｒｇｉｎによってプログラムされている）。
６）上部マージン・タイマが完了ナると、シーケンサは次のＬＳｙｎｃ入力を待つ。
７）次のＬＳｙｎｃ入力を受信すると、シーケンサは左マージン・タイマを開始し（このマージンはレジスタＬ＿ｍａｒｇｉｎによってプログラムされている）、プリンタが準備状態（ｒｅａｄｙ）にあるとき、プリンタに最初に送るべきフレーム・バッファ・データをフェッチする。
８）左マージン・タイマが完了すると、ビデオ・データはＷｃ１ｋ入力クロックと同期してＰＰＣチップから出力されてＷｄａｔａピンに現れる。スキャンの終了は、この場合もＬ＿ｍａｒｇｉｎカウンタによって判断されるが、Ｘ＿ＭＡＸレジスタ・データを使用しても判断される。
９）スキャンが終了すると、シーケンサは最後のスキャンが完了するまで、再びＬＳｙｎｃとＬ＿ｍａｒｇｉｎタイマを待つ。
１０）最後のスキャンが完了すると、シーケンサは次のプリント・コマンドを待つ。保留中のプリント・コマンドが存在すると、新しいフレームが即時に開始される。
【００４２】
Ｔ＿ｍａｒｇｉｎ（図１３）およびＬ＿ｍａｒｇｉｎ（図１２）タイマは、ビデオ・データをそれぞれ用紙およびプリンタ・スキャナと同期をとるために使用される。これらのタイマはそれぞれＦＳｙｎｃおよびＬＳｙｎｃ入力ピンと同期がとられている。
【００４３】
Ｔ＿ｍｒｇｉｎカウンタはＦＳｙｎｃのあとで印刷の開始前にカウントすベきＬＳｙｎｃパルスの数を保持している。Ｔ＿ｍａｒｇｉｎタイミングはシーケンサによってレジスタ・ファイルに対して行われる。ＬＳｙｎｃパルスはＰＰＣクロックと同期がとられて、カウントされる。Ｌｓｙｎｃの前縁だけが意味をもっている。
【００４４】
Ｌ＿ｍａｒｇｉｎカウンタは、各スキャン・ライン上のプリンタ・データの開始前の各ラインにおけるプリンタ・ビデオ・クロックの数を初期値として保持している。この数は各Ｌ＿ｓｙｎｃの開始時にタイミング・コントローラ内のハードウェア・カウンタにロードされ、そのあとＷｃ１ｋだけデクリメントされる。カウントがゼロになると、ビデオ・データはシリアル化されてＰＰＣから出力される。そのあと、Ｌ＿ｍａｒｇｉｎカウンタはスキャン・ライン内でスキャン変換すべきピクセルの数に再初期設定される。この数は、スキャン・ラインの終わりでビデオをブランクにし、ＦＩＦＯの読取りを制御するために使用される。Ｌ＿ｍａｒｇｉｎカウントが満了すると、ビデオ・データのシリアル化が完了する。スキャン・ライン・ピクセル・カウントが満了すると、ＶＤ０がブランクにされる。
【００４５】
基本モードのオペレーションでは、プリンタ・エンジンとやりとりするためにＵＡＲＴ  ０が使用される。ＵＡＲＴ  ０は、シリアル制御信号を生成し、シリアル状況情報を受信するために使用される。
ＵＡＲＴ  ０が動作すると、ＵＡＲＴ  ０は同期型の送受信器に変わる。クロックはＰＰＣによって内部で生成され、チップから出力してＵＯｃｌｋピンに現れる。タイミングはキャノン・プリント・エンジンの要求条件に合致している。データ送受信回路は特殊なクロックを使用している。つまり、このクロックは、データがエンジンに送られるときや状況がエンジンから返されるときだけ遷移する。ＵＯｃｌｋの発生回数はＵＡＲＴ  ０ボー・レート（ｂａｕｄ  ｒａｔｅ）ジェネレータにプログラムされている。図１４と図１５は、それぞれキャノン・モードのＵＡＲＴ  ０出力タイミングと入力タイミングを示している。
ＰＰＣメモリ・システム
ＰＰＣメモリ・システムは図９に示されているが、メモリのアレイ（３２ビットまたは３９ビット。これは、データ・バスの幅とＥＣＣが取り入れられているかどうかによる）から構成されている。メモリはメモリ・ワードが集まったものである。これらのアレイは２つのバンクに配列されている（つまり、２ウェイ・インタリーブ方式）。バンクは１つまたは２つ以上のＲＡＭアレイとオプションとしてＲＯＭアレイから構成されている。ＲＯＭとＲＡＭはインタリーブし、タイミングとメモリの深さは相互に独立している。バンク当たり最大８アレイまでが初期ＰＰＣによって直接にサポートされるので、２５６Ｋ×４ＲＡＭチップでは最大１６ＭＢのメモリを実装することができ、１Ｍ×４ＲＡＭチップでは最大６４ＭＢのメモリを実装することができる。
【００４６】
メモリのバンクはデータ多重化とバッファリング回路の使用によってインタリーブされる。ＲＡＭアレイの場合は、タイミング信号と制御信号（ＲＡＳ、ＣＡＳ、ＷＥ）を生成し、バッファリンクする必要がある。ＰＰＣは必要な信号を生成するが、メモリに必要なドライブを得て、そのタイミング条件に合致させるために外部バッファが使用されている。行と列のアドレスは多重化され、ＰＰＣチップから出力されて１組のアドレス・ピン上に現れる。これらのアドレスがＲＡＭチップから使用可能なメモリ・バンド幅を利用するには、ＰＰＣ外部のある種のパイプライン化（ｐｉｐｅ１ｉｎｉｎｇ）が必要である。
【００４７】
図１０は、種々のパンクからの読み書きデータをインタリーブして、読取りサイクル時にＰＰＣに送り込み、書込みサイクル時に個々のバンク用に書込みデータを保持しているデータ・チップを示す図である。ＰＰＣは双方向データ・ポートに接続されており、パンクは個々の双方向ポートに接続されている。
【００４８】
図１１は、メモリヘの行と列アドレスをパイプライン化し、メモリのドライブに必要なメモリ・ストローブ（ＲＡＳ、ＣＡＳなど）をバッファリングするために使用されるアドレス・チップを示す図である。メモリ負荷は高くなる可能性があるので、ＰＰＣピンと高容量負荷の問にバッファリングが必要である。さらに、メモリ・バンクに渡されるアドレスは、どちらのバンクが最初にアクセスされるかに応じて、異なった方法でパイプライン化されている。
【００４９】
この構成によれは、各チップを３２ビットの複数の（例えば、８個）アレイをバッファリングするために使用できる（ＥＥＣを取り入れることが可能である）。必要とするアレイが少数である小型システムでは、１チップで済むが、１６個のアレイを必要とするようなシステムでは、２個のチップが必要になる。２５６Ｋ×４個または１Ｍ×４個のＤＲＡＭのように、複数のＤＲＡＭ編成を使用することが可能である。１Ｍ×１個または４Ｍ×１個のＤＲＡＭを使用すると、アドレス・ピンと制御ピンの負荷量がほぼ４倍に増加する。６４ビットといったビット幅の広いシステムと４ウェイ・インタリーブ方式といった他のインタリーブ方式を実現することが可能である。
【００５０】
６４ビット・システムでは、バンクの対ごとに２つのチップが一緒に使用できるが、その場合、バンク当たり最大４個のアレイを装備した２ウェイ・インタリーブ方式の６４ビット・システムでは、２チップが必要になるが、４ウェイ・インタリーブ方式の６４ビット・システムでは４チップが必要になる。同じチップを使用してすべてのメモリ・アドレスとタイミング・ストローブをバッファリングすると、これらの信号のスキュー（ｓｋｅｗ）が減少するので、より密接したメモリ・タイミングを高信頼に実現することができる。バッファ・チップを別々に使用すると、メモリ・タイミング信号のスキューが増加する。図１０の構成によれば、各々が最大８アレイまでを収容している３２ビットの２チップを１個の１２８ピン・チップでドライブすることができる。他の構成も可能である。
【００５１】
入出力インタフェース
図１６は入出力コントローラ・データ経路を示す機能ブロック図である。入出力インタフェース・コントローラは内部ＩＰＵ、メモリ・サブシステムおよび外部スレーブ・デバイスとＤＭＡデバイス間のインタフェースとなることを目的としている。入出力コントローラはデータ・フローのタイミングと方向を制御するハンドシェイキング信号を出力し、またこの信号に応答する。これに関する詳しい説明は、米国特許出願第０７／７２６，８９３号に記載されている。簡単に説明すると、プリンタ・ビデオ・プロセッサ（ＰＶＰ）とメモリ・インタフェースは入出力コントローラと統合化されてアドレスとデータを送受する。以上から理解されるように、ＰＶＰは、ＰＶＰ要求バッファを経由して送られる要求と一緒に、入出力コントローラを通してメモリアドレスを指定するが、ビデオ・データはＰＶＰビデオ・データ待ち行列を通して直接メモリ・アクセス（ＤＭＡ）によってＰＶＰに提供される。
【００５２】
オペランド位置合わせロジック（ｏｐｅｒａｎｄ  ａｌｉｇｎｍｅｎｔｌｏｇｉｃ）は、アドレスの下位ビットとデータに関連するバイト・イネーブルをデコードすることによって、外部入出力からの入力データをアセンブルして位置合わせを行い、また、位置合わせした出力データを再び整列して外部入出力ヘ送るために使用される。入出力からの入力データは、アドレスの下位ビットからデコードされるとき、位置合わせされたブロックにアセンブルされて、内部データ待ち行列に置かれる。アセンブリ・ロジックからの位置合わせされた入力データは待ち行列に累積され、データが待ち行列で大きなブロックにアセンブルされたあとメモリヘ送られる。データは、待ち行列からバースト（ｂｕｒｓｔ）モードでスイッチヘ送られるので、データを大きなバンド幅を利用して転送することができ、入出力によるメモリ・サブシステムの使用を最小に抑えることができる。
【００５３】
位置合わせされたブロックでメモリまたはＩＰＵから送られてきた出力データは関連のアドレスとデータ・サイズに従って再び整列され、複数のバス・サイクルまたはバースト・モード・サイクルでインタフェースから出力されて引き渡される。サイクルの数はデータ・サイズと外部デバイスのサイズ（８または１６ビット）によって決まる。
【００５４】
非位置合わせＤＭＡデータは、アドレスが連続している限り、入出力バス上を転送することができる。しかし、ＤＭＡ書込みデータとＩＰＵによって読み取られるデータは、バス上で該当バイトに位置合わせされなければならない。
ＩＰＵ読取りまたは書込みをＰＶＰ、ＵＡＲＴまたは外部入出力デバイスヘ送るためには、入出力インタフェースが外部入出力バスの仲裁を行い、トランザクションを完了させるには、その前にアドレスのデコードを行っておく必要がある。ＰＶＰとＵＡＲＴがチップ上に置かれている場合であっても、これらは外部入出力デバイスと同じ扱いを受けるので、アクセスするためには、入出力インタフェースに入出力バスを獲得させる必要がある。
【００５５】
入出力バスは非同期式１６ビット・バス・インタフェースである。このバスでは、並列バスがアドレスとデータ別に採用されている。データ・バスは１６ビット幅であり、双方向になっている。アドレス・バスは、２バイト・ワード・ロケーションを指している３１本の下位ビット・アドレス・ラインと、２バイト・ワード内のアクティブ・バイトを選択する２個の個別バイト・イネーブル信号から構成されている。このバスは、システム・クロックから生成される出力クロックであるバス・クロックと同期している。このクロックはすべてのバス・デコードと制御ロジックのマスタ・クロックとなるものである。ダイナミックバスのサイジングはこのバスによってサポートされるので、８または１６ビット周辺デパイスの接続が可能である。
【００５６】
プロセッサからのバス要求がバス幅（１６ビット）を越えているか、オペレーションのデータ・サイズより狭いデバイスをアクセスすると、複数のバス・サイクルが生成されることになる。最初のケースの例は、プロセッサが入出力スペースヘのクワッド（ｑｕａｄ）・ワードのストアを実行したときである。この場合は、最大バス・サイズと＊ｓｉｚｅ８ピンに応じて、１６ビット・バスの場合は８サイクルに、８ビット・バスの場合は１６サイクルに変換される。入出力バスはバースト・モード方式になっているので、データ転送を高速に行うことができる。バースト・サイクル時には、新しいデータ・アイテムを毎クロックの間にクロック・アウトすることができる。
このバスは外部バス・マスタ（ＤＭＡデバイスまたは他のプロセッサ）を許容するが、内部入出力コントローラと外部マスタとの間の仲裁は内部で行われる。
【００５７】
外部割込みもバス・インタフェースによって処理されるので、専用レベル起動型割込み（１ｅｖｅｌ  ｓｅｎｓｉｔｉｖｅ  ｉｎｔｅｒｒｕｐｔ）入力と外部コントローラは共にサポートされる。外部コントローラ割込み受信確認シーケンスの第２ロック割込み受信確認サイクル時に、割込みベクトルがバスからインタフェースによって読み取られて、内部割込みコントローラに渡され、そこからＩＰＵに渡される。
【００５８】
入出力バスは、単一サイクル、複数サイクル、バースト・サイクルなどのキャッシュ不能（ｎｏｎ−ｃａｃｈｅａｂ１ｅ）バス転送をサポートしている。８ビットまたは１６ビット・デバイスがサポートされる。最小バス・サイクルには、２クロック・サイクルが必要である。サイクルの開始は、＊ＡＤＳピンを要求することで通知される。バス・サイクルの終了は、＊ＢＬＡＳＴがアクティブになったあとで＊ＲＤＹまたは＊ＢＲＤＹを要求することで通知される。１つのバス・トランザクションには、複数のデータ転送が必要になる場合がある。
【００５９】
待ち状態がゼロの非バースト・バス・サイクルには２クロックが必要である。読み書きサイクルが２クロックでサポートされるので（図１７と図１８参照）、これは２−２バス・サイクルと呼ばれている。クロックの立上り縁で＊ＡＤＳを要求すると、有効なバス・サイクルが開始したことを意味すると共に、有効なアドレスとバス定義ピンがアドレス・バスとサイクル定義ライン上にあることを意味する。バス・サイクルは、＊ＢＬＡＳＴと＊ＢＲＤＹを一緒に要求するか、＊ＲＤＹだけを要求するだけで終了する。
【００６０】
待ち状態は、図１８に示すように＊ＲＤＹをインアクティブにドライブすることでバス・サイクルに挿入できる。＊ＲＤＹをインアクティブにドライブすると、待ち状態はいくつでも挿入することが可能である。
【００６１】
図１９に示すように、非バーストの複数サイクル転送は、スレーブがＲＤＹ（これはＢＲＤＹをオーバーライドする、すなわち変更ないし書き換える）を要求すると行われる。マスタがデータ・クロックを実際に転送中の場合は、２番目のクロックごとにその終了時に要求を取り消したままに＊ＢＬＡＳＴを保持して、データをストローブしてＣＰＵに入れる。ＲＤＹとＢＲＤＹが共に要求が取り消されたときは、転送は延長される（待ち状態が追加される）。個々のトランザクションは、個々のサイクルごとにＢＬＡＳＴが要求された場合を除き、同じように実行される。
【００６２】
バースト・サイクルは、＊ＲＤＹではなく＊ＢＲＤＹが要求されると、スレーブによって受信確認され、許可される。＊ＲＤＹは、図２０に示すようにインアクティブにドライブしなければならない。２番目とそれ以降のクロック終了時にスレーブが＊ＢＲＤＹと＊ＲＤＹをインアクティブにドライブしたとき、待ち状態がバースト・サイクルに挿入される。個々のトランザクションは、＊ＢＲＤＹが要求されると完了する。パースト・モードは＊ＲＤＹを要求すれば、スレーブが終了させることができる。データのバースト転送の順序は、ＩＰＵから示された最初のアドレスによって決まる。このバースト順序は以下の表に示す場合の１つである。
【００６３】
0003669575.tif 000009
このバスによれは、バス・サイクル時に＊ＳＩＺＥ８ピンを使用して８ビットまたは１６ビット・デバイスに接続することが可能である。＊ＳＩＺＥ８を要求すると、８ビット転送が選択される。＊ＳＩＺＥ８は、最初に要求した＊ＲＤＹまたは＊ＢＲＤＹがサンプリングされる前に要求しなければならない。アクセスしようとするデバイスのバス幅が転送オペレーションのデータ・サイズより小さいか、位置合わせのために複数サイクルが必要なときは、複数のバス・サイクルが生成される。この例は図２１に示されている。
【００６４】
ＨＯＬＤを要求すると、これは別のバス・マスタがバスの制御を要求していることを意味する。現バス・サイクルが完了すると、バスはフロート（ｆ１ｏａｔ）される（Ｄ〈３１Ｌ０〉、＊ＢＥ〈１：０〉、Ｗ／Ｒ＊、Ｄ／Ｃ＊、Ｍ／Ｉ＊、および＊ＡＤＳは高インピーダンス状態に置かれる）。ＨＬＤＡを要求すると、これはプロセッサがバスを別のマスタに譲り渡したことを意味する。図２３を参照のこと。入出力バスはＨＯＬＤ要求が取り消されるまで手放されている。
ＤＭＡ
図２３および図２４は、それぞれＤＭＡ読取りサイクルとＤＭＡ書込みサイクルを示している。
ＤＭＡ読取りサイクルはＡＤＳが要求されると、開始する。ＩＣＰピンとアドレスはＢＣｌｋの立上りエッジでサンプリングされる。データはＭＣＵに要求される。データが返されると、要求したデータはドライブされたデータ・ピン上に現れ、ＩＲＤＹピンが要求される。ＩＲＤＹピンが要求されると、これは、サイクルを完了できるが、ＲＤＹピンが要求されるまでサイクルが完了しないことを意味する。ＢＬＡＳＴはサイクルがバーストの最後のサイクルであることを入出力インタフェースに知らせるために使用される。ＢＬＡＳＴは常にサンプリングされる。
【００６５】
ＤＭＡ書込みサイクルは、入出力がデータを受信することを除けば、読取りサイクルと同じである。また、ＤＭＡ書込みサイクルでのＩＲＤＹとＢＬＡＳＴの使い方は、ＤＭＡ読取りサイクルと同じである。入出力インタフェースが新しいデータを受信できる期間の間、ＩＲＤＹは要求されたままになっている。例えば、その内部待ち行列が一杯になると、ＩＲＤＹは要求が取り消される。また、ＲＤＹが要求されるのを待ってからサイクルを完了する。
【００６６】
ＤＭＡ書込み要求に対しては、データとアドレス情報は内部待ち行列へ送られる。データは待ち行列へ送られる途中でＭＣＵが取得したロケーションに位置合わせされ、位置合わせされたデータが待ち行列に受け入れられると、これを受けて、待ち行列は信号をＤＭＡへ送り返して、追加のデータを受け入れる準備状態にあることを知らせる。待ち行列が一杯になると、準備信号は要求が取り消されたままに保持される。外部デバイスがデータ送信を停止したとき、あるいは待ち行列にデータを累積できなくなったとき、ＭＣＵはデータをメモリに書くように要求される。ＭＣＵは、入出力ユニットがメモリ・ポートヘアクセスすることをそのアービタが許可すると、書込みを行う。そのあと、データ・ブロックは要求情報と一緒にスイッチへ送られる。
【００６７】
ＤＭＡ読取り要求の場合は、外部ＤＭＡデバイスから通知されたアドレスがＭＣＵに通知される。このアドレスは位置合わせされたメモリ・ブロックをアドレス指定するために使用される（メモリ・システムのインタリーブ方式とバス幅に依存する）データが入出力待ち行列に返送されると、要求データは要求側ＤＭＡデバイスに返される。
【００６８】
ＰＰＣピン
本実施例によるＰＰＣでは、以下に示すピンが使用されている。
雑目的ピン（小計）  ：  ６
ＳＣ１ｋ  〈１：Ｏ〉      入力    外部クロック入力
＊Ｔｅｓｔｉ              入力    テスト入力
＊Ｔｅｓｔｏ              出力    テスト出力
＊ＩＯｔｓ                入力    出力を３状態（ｔｒｉｓｔａｔｅ）に強制
＊Ｓｓｔ                  入力    ＩＰＵ単一ステップ
プリント・エンジン        （小計）：  ９
ＷＤａｔａ                出力    プリンタ出力データ
ＶＳｙｎｃ                出力    垂直同期出力
Ｐｒｎｔ                  出力    プリンタ・プリント・コマンド出力
ＣＰｒｄｙ                出力    コントローラ電源レディ
ＷＣ１ｋ                  入力    Ｗｄａｔａシリアル・クロック
ＬＳｙｎｃ                入力    ライン同期ストローブ
ＦＳｙｎｃ                入力    フレーム同期ストローブ
ＰＲｄｙ                  入力    プリンタ・レディ
ＰＰＲｄｙ                入力    プリンタ電源レディ
メモリ・ポート        （小計）：  ７２
ＭＤａｔａ  〈３１：０〉  入出力  メモリ・データ
ＭＡｄｒ    〈１０：０〉  出力    行／列アドレス
ＭＲＡＳ＊  〈１：０〉    出力    ＲＡＳピン
ＭＣＡＳ＊  〈１５：０〉  出力    ＣＡＳピン
ＭＲＲＡＬ＊〈１：０〉    出力    ＲＯＭ行アドレス・ラッチ
ＭＲＥＮ＊  〈１：０〉    出力    ＲＯＭイネーブル
ＭＷＥ＊    〈１：０〉    出力    書込みイネーブル
ＭＲＤ                    出力    読取り
ＭＯＤＤ＊                出力    奇数バンク、ラッチ・イネーブル
ＭＯＶＬＤ＊              出力    奇数有効
ＭＢＫ                    出力    バンク開始
ＴＣｌｋ                  出力    クロック出力トラッキング
入出力バス（小計）        ：７３
ピン ビット 入出力 機能
ＢＣｌｋ                出力    バス・クロック
ＢＣｌｋｆ              入力    バス・クロック発生回数／フェーズ
Ｒｅｓｅｔ              入力    パワー・アッブ・リセット
ＡＤＲ      〈３１：１〉入出力  アドレス
＊ＩＣＳ                入力    チップ・セレクト
＊ＢＥ      〈１：０〉  入出力  バイト・イネーブル
ＤＡＴ      〈１５：０〉入出力  データ
＊ＡＤＳ                入出力  アドレス・ストローブ
＊ＲＤＹ                入力    スレーブ・レディ
＊ＢＲＤＹ              入力    バースト・レディ
＊ＩＲＤＹ              出力    レディ出力
＊ＢＬＡＳＴ            入出力  バースト最後
ＤＣ                    入出力  バス・サイクル定義
Ｗ／Ｒ                  入出力  バス・サイクル定義
Ｍ／ＩＯ                入出力  バス・サイクル定義
＊ＳＩＺＥ８            入力    ８ビット・デバイス
ＢＲＥＱ                出力    バス要求
ＨＯＬＤ                入力    バス受信確認
ＨＬＤＡ                出力    バス許可
＊ＢＯＦＦ              入力    バス・フロート・ピン
ＮＭＩ                  入力    マスク不可能（ｎｏｎｍａｓｋａｂ１ｅ）割込み
ＩＮＴＲ                入力    マスク可能割込み要求
ＤＩＮＴ    〈３：０〉  入力    直接マスク可能割込み入力
プリント・エンジン制御とＵＡＲＴ  ９
ＵＯｒｘｄ              入力    ＵＯ受信データ
＊ＵＯｃｔｓ            入力    ＵＯ送信可
ＵＯｔｘｄ              出力    ＵＯ送信データ
＊ＵＯｄｔｒ            出力    ＵＯデータ端末レディ
＊ＵＯｃｌｋ            出力    ＵＯキャノンＣＣＬＫ信号
Ｕｌｒｘｄ              入力    Ｕ１受信データ
＊Ｕｌｃｔｓ            入力    Ｕ１送信可
Ｕｌｔｘｄ              出力    Ｕ１送信データ
＊Ｕｌｄｔｒ            出力    Ｕ１データ端末レディ
【００６９】
【発明の効果】
本発明はページ・プリンタの制御を目的としたＲＩＳＣ型マイクロプロセッサ・アーキテクチャを利用しており、特殊グラフィック機能によって使用され、他の機能ユニットと同じようにプロセッサに統合化された特殊機能回路をＲＩＳＣ型マイクロプロセッサ内に設けたものであり、効率がよく、かつ統合化された直接メモリアクセスをもつプリンタ・ビデオ・プロセッサが得られる。なお、上記では特定の実施例を示して本発明を説明してきたが、上述した説明は本発明を例示したもので、本発明を限定するものではない。請求の範囲に明確化されている本発明の精神と範囲を逸脱しない限り、種々態様に変更が可能であることは勿論である。
【図面の簡単な説明】
【図１】  ＰＰＣシステムを示すブロッ図である。
【図２】  ＰＰＣを示すブロック図である。
【図３】  ピクセル変更データ経路を示す図である。
【図４】  直交方向ロテータを示す図である。
【図５】  ビット／バイト・ミラーを示す図である。
【図６】  図３〜図５の特殊機能回路をＲＩＳＣ型プロセッサ・データ経路に統合化したものを示す図である。
【図７】  図３〜図５の特殊機能回路をＲＩＳＣ型プロセッサ・データ経路に統合化したものを示す図である。
【図８】  ビデオ・プロセッサを示すブロック図である。
【図９】  メモリ・システム構造を示す図である。
【図１０】  ２ウェイ・インタリーブ方式のデータ・チップを示す図である。
【図１１】  ２ウェイ・インタリーブ方式のアドレス・チップを示す図である。
【図１２】  水平方向のタイミング図である。
【図１３】  垂直方向のタイミング図である。
【図１４】  ＵＡＲＴ  ０出力タイミング図である。
【図１５】  ＵＡＲＴ  ０入力タイミング図である。
【図１６】  入出力コントローラ・データ経路の機能図である。
【図１７】  入出力バス・トランザクションを示すタイミング図である。
【図１８】  入出力バス・トランザクションを示すタイミング図である。
【図１９】  入出力バス・トランザクションを示すタイミング図である。
【図２０】  入出力バス・トランザクションを示すタイミング図である。
【図２１】  入出力バス・トランザクションを示すタイミング図である。
【図２２】  入出力バス・トランザクションを示すタイミング図である。
【図２３】  ＤＭＡ読取りサイクルを示す図である。
【図２４】  ＤＭＡ書込みサイクルを示す図である。
【符号の説明】
１０…ページ・プリンタ・コントローラ、１２…メモリバンク、１４…入出力バス。
【図１】
0003669575.tif 000010
【図２】
0003669575.tif 000011
【図３】
0003669575.tif 000012
【図４】
0003669575.tif 000013
【図５】
0003669575.tif 000014
【図６】
0003669575.tif 000015
【図７】
0003669575.tif 000016
【図８】
0003669575.tif 000017
【図９】
0003669575.tif 000018
【図１０】
0003669575.tif 000019
【図１１】
0003669575.tif 000020
【図１２】
0003669575.tif 000021
【図１３】
0003669575.tif 000022
【図１４】
0003669575.tif 000023
【図１５】
0003669575.tif 000024
【図１６】
0003669575.tif 000025
【図１７】
0003669575.tif 000026
【図１８】
0003669575.tif 000027
【図１９】
0003669575.tif 000028
【図２０】
0003669575.tif 000029
【図２１】
0003669575.tif 000030
【図２２】
0003669575.tif 000031
【図２３】
0003669575.tif 000032
【図２４】
0003669575.tif 000033