(57)【要約】【課題】多種のプロトコルの実行に利用可能なプログラマブル・インタフェースを提供する。【解決手段】本発明によるプログラマブル・インタフェースは、それぞれが任意のタイプであるレジスタを備えるレジスタ・ファイルと、実行制御レジスタと、レジスタ・ファイル及び実行制御レジスタと双方向通信を行うマイクロコントローラと、マイクロコントローラと双方向通信を行うコード記憶ＳＲＡＭと、コード記憶ＳＲＡＭにロードされる実行可能コードと、を有する。コード記憶ＳＲＡＭ及び実行制御レジスタは、システム・プロセッサと双方向通信を行う。【選択図】図１
2005297561.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが任意のタイプであるレジスタを備えるレジスタ・ファイルと、
実行制御レジスタと、
前記レジスタ・ファイル及び前記実行制御レジスタと双方向通信を行うマイクロコントローラと、
前記マイクロコントローラと双方向通信を行うコード記憶ＳＲＡＭと、
前記コード記憶ＳＲＡＭにロードされる実行可能コードと、を有し
前記コード記憶ＳＲＡＭ及び前記実行制御レジスタが、システム・プロセッサと双方向通信を行う、プログラマブル・インタフェース。
【請求項２】
前記レジスタのタイプが、タイマ、汎用、外部Ｉ／Ｏ、内部Ｉ／Ｏ、共用、及び、割り込みを含むグループから選択される、請求項１に記載のプログラマブル・インタフェース。
【請求項３】
前記レジスタの１つが、外部Ｉ／Ｏタイプであり、該レジスタがエッジ検出ロジックを含む、請求項２に記載のプログラマブル・インタフェース。
【請求項４】
前記レジスタのタイプに、ダイレクト・メモリ・アクセス・コントローラと通信するよう動作するＦＩＦＯレジスタがさらに含まれる、請求項２に記載のプログラマブル・インタフェース。
【請求項５】
前記実行可能コードが、レーザ・プリンタ装置通信インターフェイス及び垂直ページ上部同期インターフェイスを実現する、請求項３に記載のプログラマブル・インタフェース。
【請求項６】
前記実行可能コードが、直列インターフェイス、並列インターフェイス、直列周辺インターフェイス（ＳＰＩ）、同期直列インターフェイス（ＳＳＩ）、マイクロワイヤ、中間集積回路（Ｉ２Ｃ）、コントロール・エリア・ネットワーク（ＣＡＮ）、ＵＡＲＴ、ＩＥＥＥ１２８４、ＬＣＤインターフェイス、フロント・パネル・インターフェイス、及び、モデムを含むグループから選択される、請求項１に記載のプログラマブル・インタフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・インタフェースに関する。
【背景技術】
【０００２】
先行技術において、レーザ・プリンタ・コントローラは、とりわけ、専用印刷機構通信状態マシン（dedicated print mechanism communications state machine）のために設計される。従って、エンジン・インタフェース仕様（engine interface specification）が変わるか、または、別の業者の機構を利用する場合には、特定用途向け集積回路（ＡＳＩＣ）を再設計しなければならない。さらに、レーザ・プリンタ・コントローラは、専用固定機能ハードウェアで、直列、並列、コントロール・エリア・ネットワーク（ＣＡＮ）及びフロント・パネルのような、Ｉ／Ｏインタフェースを利用することが可能である。インタフェースの機能性が所与のＡＳＩＣに固定されるので、柔軟性は制限され、所与のインタフェースのプロトコルの変更をサポートできない可能性がある。さらに、代替機能が要求される場合、ＡＳＩＣを再設計しなければならない。ＡＳＩＣ開発への着手前に十分な規定がなされていないインタフェースの場合、プログラマブルＩ／Ｏは、実装のリスクを軽減し、製品化までの時間を有利にすることが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、多種のプロトコルの実行に利用可能なプログラマブル・インタフェースを提供することである。
【課題を解決するための手段】
【０００４】
本発明によれば、さまざまなＩ／Ｏプロトコルの実施に利用可能なプログラマブルＩ／Ｏサブシステム・アーキテクチャが定義される。このアーキテクチャは、レーザ・プリンタ・コントローラおよびレーザ・プリンタ機構コントローラの間の通信インタフェースの実施に適している。Ｉ／Ｏサブシステムは、従来のバス構造を介してメイン・システム・プロセッサに接続されており、単一集積回路内または別個の集積回路に組み込むことが可能である。Ｉ／Ｏサブシステムは、単純な（simple）マイクロコントローラ、実行可能コードを納めるコード記憶ＳＲＡＭ、メイン・システムＣＰＵによって設定され、サブシステムを使用可能にする実行制御レジスタ（run control register）、及び、専用デュアル・ポート・レジスタ・ファイルから構成される。
【０００５】
単純なマイクロコントローラには、基本状態マシン構成をエミュレートできるようにする単純な命令セットが含まれている。本明細書において解説のアーキテクチャには、Ｉ／Ｏ状態マシンの最も効率のよいエミュレーションが行えるように、単一サイクルの（single-cycle）読み取り・修正・書き込みアクセスを可能にするデュアル・ポート・レジスタが含まれている。ただし、代わりに、従来のマイクロコントローラを従来のレジスタと共に用いることも可能である。
【０００６】
コード記憶ＲＡＭは、実行制御レジスタを介して使用可能になる前に、メイン・プロセッサから実行可能マイクロコントローラ・コードをロードする。マイクロコントローラは、使用可能になると、このメモリに記憶されている命令シーケンスを実行する。用途によっては外部の調停されたメモリ（external arbitrated memory）を利用することも可能であるが、マイクロコントローラの高速で反復可能な状態マシン順序制御（sequencing）にはローカル・メモリが望ましい。実行可能な「状態マシン」コードは、アプリケーション・プロセッサによってダウンロードされるので、Ｉ／Ｏサブシステムは実行時に構成可能である。
【０００７】
専用デュアル・ポート・レジスタ・ファイルには、Ｉ／Ｏサブシステムが多種多様なプロトコルを効率よく実施できるようにするいくつかの機能が含まれている。レジスタ・ファイルには、マイクロプロセッサによってデータ記憶に利用される、汎用レジスタ、タイマ・レジスタ、外部Ｉ／Ｏインタフェース・レジスタ、内部Ｉ／Ｏレジスタ、共用レジスタ、割り込みレジスタ、及び、オプションのＤＭＡ ＦＩＦＯのバンク（bank）が含まれている。タイマ・レジスタは、タイミング・シーケンスのリアルタイムの制御及び測定を可能にする。エッジ検出機能を備えた外部Ｉ／Ｏインタフェース・レジスタは、マイクロコントローラによるプロトコルを含むＩ／Ｏ信号のサンプリング及び／または制御を可能にする。
【０００８】
内部Ｉ／Ｏインタフェース・レジスタは、任意選択的にプログラマブルＩ／Ｏシステムと専用ハードウェア・ブロックとのインタフェースをとるために利用可能である。アクセス・プロトコルを備えた共用レジスタのバンクは、マイクロコントローラ及びメイン・システムＣＰＵの両方による同時アクセスが可能である。割り込みレジスタは、Ｉ／Ｏサブシステムからメイン・システムＣＰＵに割り込みを渡すことを可能にする。オプションのＤＭＡ ＦＩＦＯは、メイン・システム・プロセッサの割り込みを最小限に抑えて、Ｉ／Ｏサブシステムからメイン・システムメモリへ、または、メイン・システムからＩ／Ｏサブシステムへの効率的なバルク・データ転送を可能にする。
【発明を実施するための最良の形態】
【０００９】
本発明によれば、プログラマブルＩ／Ｏインタフェースを実施するためのアーキテクチャ及び方法が得られる。主たる機能は、汎用再構成可能Ｉ／Ｏインタフェースを提供することである。このインタフェースは、レーザ・プリンタ・コントローラと印刷機構との間の通信に利用することもできるし、あるいは、例えば、直列インタフェース、並列インタフェース、直列周辺インタフェース（serial peripheral interface、ＳＰＩ）、同期式直列インタフェース（synchronous serial interface、ＳＳＩ）、マイクロワイヤ、中間集積回路（Inter Integrated Circuit、Ｉ２Ｃ）、コントロール・エリア・ネットワーク（ＣＡＮ）、ＵＡＲＴ、ＩＥＥＥ１２８４、ＬＣＤネットワーク、フロント・パネル・インタフェース、及び、モデム（MODEM）のような、さまざまな標準またはカスタム通信インタフェースの実施に利用することも可能である。
【００１０】
図１に示す本発明１０は、周辺装置として、従来のマイクロプロセッサ・ベースの組込みシステムに接続される。本発明は、メイン・マイクロプロセッサと同じ集積回路内に組み込むこともできるし、あるいは、別個の集積回路内に設けることも可能である。本発明は、周辺装置として、メイン・マイクロプロセッサに接続される。本発明は、また、システム割り込みコントローラにも、また、オプションによりシステム・ダイレクト・メモリ・アクセス（ＤＭＡ）・コントローラにも接続される。追加オプションとして、場合によっては、集積回路内の専用ハードウェア機構に接続することも可能である。例えば、ビデオ・システムの場合、本発明を利用して、ビデオ・ストリームに関連した同期パルスを検出することが可能である。
【００１１】
本発明では、複雑な同期情報を抽出して、単純な化した同期情報を専用ビデオ出力コントローラに渡すことが可能である。レーザ・プリンタの場合、この同期には、レーザ変調コントローラに渡される垂直ページ同期が含まれることになる。
【００１２】
図１に示すアーキテクチャ１０は、４つの主要素から構成されている。すなわち、マイクロプロセッサ１２、コード記憶ＳＲＡＭ１４、実行制御レジスタ１６、及び、専用デュアル・ポート・レジスタ・ファイル１８である。
【００１３】
マイクロプロセッサ１２には、基本状態マシン構成をエミュレートするため、最小限の命令サブセットが含まれている。例えば、最小限のサブセットには、分岐、条件付き分岐、ループ、移動、インクリメント／デクリメント、比較、及び、単純なブール演算を含むことが可能である。コードの効率が良くなるように、単一レベル（single-level）・スタック・レジスタ２４を取り入れて、単一深さ（single-depth）のサブルーチンを可能にする。本発明のダイアグラムに示すように、例示のマイクロコントローラ１２は、実行されているコード記憶装置１４の場所を示すプログラム・カウンタ（ＰＣ）２０、コード記憶装置からのマイクロコード化（micro-coded）命令を復号化する実行ユニット（execution unit）２２、単一復帰アドレスを記憶することが可能なスタック・レジスタ２４、コード記憶装置から提供されるデータ及び／またはレジスタ・ファイル１８の現在値について演算可能な単一サイクル（single-cycle）論理演算ユニット（arithmetic login unit、ＡＬＵ）２６、及び、条件付き分岐に関する前回の命令の結果を記憶するフラグ２８から構成されている。単純なアセンブラによって、実行可能マシン・コードを生成することが可能である。コード及びマシン命令フォーマットを定義する組み込みファイルを編集することによって、単純なマイクロコントローラをサポートするように構成可能な、フリーウェア・アセンブラが得られる。コードのデバッグを助けるため、アセンブラによってリスト及び記号テーブルが生成される。
【００１４】
コード記憶ＳＲＡＭ１４は、マイクロコントローラ１２によって実行されることになるマシン命令を納めるために利用される。コード記憶ＳＲＡＭ１４は、実行時にメイン・システム・マイクロプロセッサ３０によってロードされる。マイクロコントローラ１２の観点からすると、コード記憶ＳＲＡＭ１４は読み取り専用メモリである。メイン・プロセッサ３０は、コードのローディングを済ますと、マイクロコントローラ１２に対して、実行制御レジスタ１６を介して命令の実行を開始するための信号を送る。代替実施例として、例えば、ＤＲＡＭのような調停された（arbitrated）システム・メモリ（不図示）を用いて、実行可能コードを記憶することが可能である。しかし、このメモリは、状態マシンの性能を低下させることになり、また、Ｉ／Ｏプロトコルの実施に必要とされる可能性のある反復可能な結果を得ることができないので、あまり望ましくはない。例えば、システム・プログラミング・インタフェース（system programming interface、ＳＰＩ）、中間集積回路（Ｉ２Ｃ）、コントロール・エリア・ネットワーク（ＣＡＮ）、ＲＳ２３２、ＩＥＥＥ１２８４、フロント・パネル、及び、モデムのようなＩ／Ｏプロトコルは実行可能「状態マシン」・コードによって定義される。
【００１５】
本発明の要となるのは、専用レジスタ・ファイル１８である。レジスタ・ファイル１８は、メイン・システム・プロセッサのオーバヘッドを最小限に抑えて、本発明がＩ／Ｏサブシステムとして効率よく機能できるようにするものである。実際、これらの特徴によって、プログラマブルＩ／Ｏは、専用ハードウェア周辺装置に極めてよく似た様相を呈することが可能になる。本発明によれば、割り込み機能、及び、バルク・データ転送のためのＤＭＡ機能といった、周辺状況／構成／制御レジスタを含む専用ハードウェア周辺装置において通常見受けられる機能が得られる。
【００１６】
専用レジスタ・ファイル１８は、単純なマイクロコントローラ１２が、読み取り・修正・書き込み操作を実施して、コード規模の効率及び性能を得ることができるようにするため、デュアル・ポート化するのが理想的である。レジスタ・ファイル１８には、汎用マイクロコントローラ・レジスタ１８Ａ、タイマ・レジスタ１８Ｂ、外部Ｉ／Ｏインタフェース・レジスタ１８Ｄ、内部Ｉ／Ｏレジスタ１８Ｅ、共用レジスタ１８Ｃ、割り込みレジスタ１８Ｆ、及び、オプションのＤＭＡ ＦＩＦＯ１８Ｇのバンクを含むことが可能である。ＤＭＡ ＦＩＦＯ１８Ｇは、マイクロプロセッサ３０によりデータ記憶用に利用される。
【００１７】
汎用マイクロコントローラ・レジスタ１８Ａは、局所変数及び記憶域に用いられる。
【００１８】
タイマ・レジスタ１８Ｂは汎用レジスタ１８Ａに似ている。タイマ・レジスタ１８Ｂは、選択されたシステム・タイムベース（例えば、１ｕｓ、１０ｕｓ、１００ｕｓ、１ｍｓ、１０ｍｓ、及び、１００ｍｓ）に基づいて、独立してインクリメントするように構成することが可能である。それらは、プロトコルを実施し、プロトコルのタイム・アウト・エラーを検出するためのタイミングを発生するために用いられる。このレジスタは、所定の最終カウントで停止するように構成することもできるし、あるいは、フリー・ランニング（free running）にすることも可能である。
【００１９】
共用レジスタ１８Ｃは、メイン・システム・プロセッサ３０並びにＩ／Ｏマイクロコントローラ１２によるアクセスが可能である。共用レジスタ１８Ｃは、従来のハードウェア周辺装置に見受けられる周辺装置状況／構成／制御レジスタをエミュレートするために利用される。効率を良くするため、メイン・プロセッサ３０とマイクロコントローラ１２によるレジスタ１８Ｃへのアクセスは別々に行うことが可能である。例えば、メイン・プロセッサ３０は、単一３２ビット・ワードとして一挙に４バイト幅レジスタの読み取りが可能であり、一方、マイクロコントローラ１２は、４つの個別８ビット・エンティティとしてレジスタにアクセスすることが可能である。これらのレジスタ１８Ｃにおいて、状況／プロトコルを効率よく安全に実施するため、メイン・プロセッサ３０またはマイクロコントローラ１２に特定のレジスタへの書き込みアクセスを認可する、アクセスの優先順位が指定される。アクセス優先順位の制御方法は、アジレント・テクノロジ社に譲渡され、２００４年３月１１日に米国特許商標局に提出された、「Register Access Protocol for Multi-Processor Systems」と題するRichard Taylorによって開示された別個の出願に明記されている。
【００２０】
外部Ｉ／Ｏインタフェース・レジスタ１８Ｄは、マイクロコントローラ１２が実施すべき通信プロトコルを含む実際の外部電気信号を観測し、制御することを可能にする。これらのレジスタ１８Ｄには、マイクロコントローラ１２における制御状態マシンの効率の良い実施を可能にする追加機能が含まれている。レジスタ１８Ｄは、各信号を入力、出力、または、双方向信号として定義できるように設定されている。入力であれば、信号の状態を読み取ることができる。非同期問題を防ぐため、各入力毎に同期装置が設けられている。さらに、入力信号に立ち上がりエッジが生じたか、立ち下がりエッジが生じたかを表示するため、オプションのエッジ検出ロジックが設けられている。Ｉ／Ｏプロトコルが、別の方法では紛失の可能性のあるパルスから構成される場合、遷移検出はとりわけ有用である。信号が出力として用いられる場合、出力レベル及び出力許可（enable）は、レジスタ１８Ｄによって直接制御される。
【００２１】
内部Ｉ／Ｏインタフェース・レジスタ１８Ｅは、Ｉ／Ｏサブシステムが内部専用機能ブロックと通信可能になるという点を除いて、外部Ｉ／Ｏインタフェース・レジスタ１８Ｄと同様の機能が得られる。内部Ｉ／Ｏインタフェース・レジスタ１８Ｅは、プログラマブルＩ／Ｏサブシステムの目的が外部プロトコルと内部固定機能周辺装置との間の柔軟性のある媒介手段の働きをすることにある場合に有用である。一例を挙げると、レーザ・プリンタ・コントローラの場合、レーザを発射する直列ビデオ・ビットストリームを生成する、専用レーザ・プリンタ変調出力コントローラが設けられている。ビットストリームは、感光ドラム及び用紙の実際の位置と同期しなければならない。水平及び垂直同期方法は、利用可能な印刷機構間で異なる。機構によっては、単一垂直同期信号を加えるものもあれば、水平同期信号の存在に基づいて垂直同期を推定しなければならないものもあり、あるいは、複数ドラムのために数多くの垂直同期信号を加えるものもあり得る。Ｉ／Ｏサブシステムを利用して、特定の機構において実施される同期を解読し、専用変調コントローラに対する整合のとれた同期インタフェースに伝えることが可能である。本発明のプログラマブル特性によって、さまざまな機構、並びに、まだ確定していない機構を支援する設計が可能になる。
【００２２】
割り込みレジスタ１８Ｆは、Ｉ／Ｏサブシステムが従来の周辺装置のようにメイン・プロセッサ３０に対して割り込み駆動状況を伝えることを可能にする。実際の実施例では、共用レジスタ１８Ｃに割り込みレジスタ１８Ｆを組み込み、メイン・システム・プロセッサ３０に追加専用割り込み信号を伝えることが可能である。
【００２３】
ＦＩＦＯ１８Ｇは、メイン・プロセッサ３０が必要とする最小限の支援を施して、Ｉ／Ｏサブシステムとシステム・メモリの間でバルク・データ転送を達成することを可能にする。マイクロコントローラ１２によってＦＩＦＯ１８Ｇに書き込まれるデータは、ＤＭＡ３４を介してメイン・システム・メモリ（不図示）に転送される。同様に、入力ＤＭＡデータは、マイクロコントローラ１２によって読み取ることが可能である。実行制御レジスタ１６には、ＦＩＦＯ１８Ｇの内容をクリアする機能を取り入れることが可能である。
【００２４】
本発明のプログラマブル特性を考慮すると、単一設計によって、異なる通信プロトコルをサポートすることが可能である。通信プロトコルを完全に定義する前に、ＡＳＩＣ設計を完成することが可能である。コントローラ、インタフェース・タイミング、及び、プロトコルは、設計サイクルにおいて、または、現場において後で変更することが可能になる。より高度のハードウェア補助を実施することが可能になる。この設計を利用すると、ＡＳＩＣ設計の公表時点ではまだ思いつかなかった新規のインタフェースを実施することが可能になる。
【００２５】
本発明は、とりわけ、レーザ・プリンタに適している。図２に示す実施例の場合、単一コントローラ１２を利用して、レーザ変調コントローラ３６と機構コントローラ（独立した集積回路）３８との間の直列指令／状況チャネル、並びに、垂直ページ同期の両方が得られる。この設計によれば、異なる同期プロトコルをダウンロードすることができるので、さまざまな数のレーザ・ビームで、さまざまなカラー及びモノクロ印刷機構がサポートされる。
【図面の簡単な説明】
【００２６】
【図１】本発明によるシステムを例示した図である。
【図２】レーザ・プリンタに関する実施例を例示した図である。
【符号の説明】
【００２７】
１０  プログラマブル・インタフェース
１２  マイクロコントローラ
１４  コード記憶ＳＲＡＭ
１６  実行制御レジスタ
１８  レジスタ・ファイル
【図１】
2005297561.tif 000003
【図２】
2005297561.tif 000004