(57)【要約】【課題】２つの命令スタックを使用する命令アーキテクチャの技法を提供する。【解決手段】本発明は、複数のタイムセンシティブなプロセスに対して単一のシリアルバスインターフェースの使用を可能にする。本発明は、グラント信号線およびリクエスト信号線を介してアービタに接続される３つのプログラマブルコマンドエリア、すなわちファームウェアプログラマブル命令スタックを利用する。この命令スタックは、８個以上の命令用の空間を有する。コマンドエリアの少なくとも２つは、ループ機能または遅延機能を有する。第３のコマンドエリアは、例えばＦＩＦＯ命令キューのような命令キューである。この第３のコマンドエリアは、最初の２つの命令スタックと同様の命令スタックを含む。【選択図】図３
2004272913.tif 000002
【特許請求の範囲】
【請求項１】
命令アーキテクチャであって、
少なくとも２つの命令スタック、および前記少なくとも２つの命令スタックに接続されたアービタ、を備える第１の集積回路と、
第２の集積回路と、
前記第１の集積回路と前記第２の集積回路とを接続するシリアルインターフェースと、
を有する命令アーキテクチャ。
【請求項２】
前記少なくとも２つの命令スタックが、多数のコマンドを含むようにファームウェアによってプログラミング可能である、請求項１に記載の命令アーキテクチャ。
【請求項３】
前記少なくとも２つの命令スタックが、１つまたは複数のトリガ源によってトリガできるように構成される、請求項１に記載の命令アーキテクチャ。
【請求項４】
前記少なくとも２つの命令スタックが、ループ機能、遅延機能、読み出しレジスタ機能、書き込みレジスタ機能、および読み出しレジスタ／メモリ書き込み機能からなるグループから選択される１つまたは複数の機能を含む、請求項１に記載の命令アーキテクチャ。
【請求項５】
前記第１の集積回路が、前記アービタに接続された命令キューをさらに含む、請求項１に記載の命令アーキテクチャ。
【請求項６】
前記アービタが、前記少なくとも２つの命令スタックのうち第１の命令スタックに第１優先順位を提供するように動作可能であり、前記アービタが、前記命令キューと、前記少なくとも２つの命令スタックのうち第２の命令スタックとに第２優先順位を提供するように動作可能である、請求項５に記載の命令アーキテクチャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令アーキテクチャに関する。
【背景技術】
【０００２】
例えば、インクジェットプリンタ、レーザプリンタなどの印刷装置は、制御信号、コマンド、および／またはコンピュータ読み取り可能命令セットに従って動作し、印刷媒体へのインクの転送を行う。印刷媒体には、多くの形態があり、特に、原稿用紙、写真用紙、カードストック、レターヘッド、封筒、名刺、および透明シートが含まれ得る。印刷装置の動作は、１つまたは複数のコントローラによって管理される。コントローラとしては、例えばケーブル接続といった適切なインターフェースによって接続されたマイクロプロセッサ制御のプリント回路基板および１つまたは複数の特定用途向け集積回路（ＡＳＩＣまたはチップセット）がある。インクジェットプリンタでは、コントローラが、１つまたは複数のインクジェットペンを保持するキャリッジの印刷媒体の両端にわたった移動を調節する。このコントローラは、さらに、印刷媒体へのインクのタイミングおよび噴射を調節する。例えば、インクの飛行時間およびインク滴の衝撃といった印刷プロセスに関連した測定機能を実行するさまざまなコントローラまたはチップセットが、設計されている。このような測定の結果、印刷装置は、キャリッジエンコーダ、用紙エンコーダなどのハードウェアと通信して、ペン速度、用紙速度、プリントヘッドの温度、および他の印刷特性のキャリブレーションを行うことができる。
【０００３】
多くの環境では、複数のタイムセンシティブなプロセスが存在する。インクジェットプリンタの分野では、ほぼ同時に行わなければならない多数のプロセスがある。例えば、ほぼ同時に行わなければならない２つの特定のプロセスには、モータおよび測定のルーチンの制御が含まれる。すなわち、用紙またはキャリッジを移動させるモータのサーボ制御、および、１つまたは複数の測定センサからの複数の測定サンプルの収集は、ほぼ同じモータの位置で行わなければならない。これらの機能の双方を実行するために、アナログＩＣとの通信が行われる。場合によっては、コマンドエリアが２つのほぼ同時の測定値を取得するまで、測定コマンドは、コマンドエリアの他の使用（例えば命令ルーチン、データレジスタ、およびインターフェースの使用）をロックアウトする。インターフェースは、実際のアナログからデジタルへのデータ変換の時間の間、アイドル状態にある。単一のアナログＩＣが双方の機能に使用されている場合、このデータ変換を行う時間はあまりにも長いので、双方の機能が共有しなければならないインターフェースの使用からサーボルーチンをロックアウトすることはできない。
【０００４】
この問題を解決するこれまでの取り組みには、２つの別々のアナログＡＳＩＣ（application specific integrated circuits、特定用途向けＩＣ）を使用することが含まれていた。これら２つのＡＳＩＣは、それぞれがタイムセンシティブなプロセスを行うそれ自身の専用インターフェースを有する。過去において、別々のＩＣを使用することには、他の利点があったが、それらの利点は、ある一定のインクジェットペンアーキテクチャでは、もはや存在しない。複数のＩＣで実施することの不利な点は、コストがかかるということである。すなわち、２つのアナログＡＳＩＣを使用すると、スペース（real estate）およびチップ数のコストが追加されると共に、余分なインターフェース回路およびＡＳＩＣのピン数の形のコストが生み出される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、２つの命令スタックを使用する命令アーキテクチャの技法を提供する。
【課題を解決するための手段】
【０００６】
さまざまな実施形態は、複数のタイムセンシティブなプロセスに対して単一のシリアルバスインターフェースの使用を可能にする。さまざまな実施形態が、グラント（grant）信号線およびリクエスト信号線を介してアービタ（arbiter、調停器）に接続される３つのプログラマブルコマンドエリア、すなわちファームウェアプログラマブル命令スタックを利用する。さまざまな実施形態において、この命令スタックは、８個以上の命令（コマンド）用の空間を有する。さまざまな実施形態において、コマンドエリアの少なくとも２つは、ループ機能または遅延機能を有する。さまざまな実施形態において、第３のコマンドエリアは、例えば先入れ先出し（ＦＩＦＯ）命令キューのような命令キューである。さまざまな実施形態において、この第３のコマンドエリアは、最初の２つの命令スタックと同様の命令スタックを含む。
【０００７】
さまざまな実施形態において、１つまたは複数のファームウェアプログラマブル命令スタックがコマンドエリアを共有する必要がないように、種々のファームウェアプロセスまたはファームウェアルーチン、例えば記述、消去、書き換えなどが行われるルーチンを、それらのファームウェアプログラマブル命令スタックに対して専用にプログラミングすることができる。このようにして、コマンドエリアの衝突を少なくすることができる。さまざまな実施形態において、命令またはコマンドは、各命令スタックに割り当てられた優先順位に基づいて、単一のシリアルバスにより送信することができる。優先順位、すなわちタイムセンシティブ性に基づく調整により、インターフェースの問題を改善でき、１つまたは複数の命令スタックのそれぞれに対してプログラミングされたルーチンによって実行可能なさまざまなプロセスの遅延を低減できる。
【０００８】
本発明のさまざまな実施形態は、１つまたは複数の装置、装置タイプ、およびネットワーク化環境を含むシステム環境で実行することができる。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の実施形態を実施するように動作できるか、または、本発明の実施形態を含むことができる印刷装置の実施形態を示している。図１の実施形態は、インクジェットプリンタ１１０を示している。このインクジェットプリンタ１１０は、オフィス環境または家庭環境において、事業報告、通信文書、デスクトップパブリッシング、映像などに使用することができる。しかしながら、本発明は、そのように限定されるものではなく、本発明のさまざまな実施形態を実施するレーザジェットプリンタまたは他のプリンタを含むことができる。図１の実施形態において、プリンタ１１０は、筐体１１２と、１つまたは複数の印刷媒体をプリンタ１１０に供給する印刷媒体処理システム１１４とを備える。印刷媒体としては、例えば、一枚の用紙、名刺、封筒、または高品質写真用紙がある。印刷媒体は、画像の受像に適した任意のタイプの素材を含むことができる。このような画像の受像に適した素材としては、例えば、紙カードストック、透明シートなどがある。図１の実施形態において、印刷媒体処理システム１１４は、フィードトレイ１１６と、出力トレイ１１８と、一連のローラ（図示せず）とを備える。この一連のローラは、フィードトレイ１１６から、図１に１２０および１２２として示す１つまたは複数のインクジェットカートリッジからのインクを受け取る位置へ何枚もの印刷媒体を送り出す。図１の実施形態において、インクジェットカートリッジ１２０は、マルチカラーインクカートリッジであり、インクジェットカートリッジ１２２は、ブラックインクカートリッジである。
【００１０】
図１の実施形態に示すように、インクカートリッジ１２０および１２２は、キャリッジ１２４によって搬送される。キャリッジ１２４は、駆動ベルト／プーリおよびモータ機構により、ガイド棒１２６に沿って駆動することができる。他の印刷装置、例えばレーザ写真システムまたは液体電子写真（liquid electro photography）システムでは、インクカートリッジは、ドライトナーまたは液体トナーに取り替えることができる。同様に、実際のカートリッジタイプおよびモータ制御機構は、印刷装置ごとに変化し得る。しかしながら、本発明のさまざまな実施形態は、これらの印刷装置に含めることができ、また、これらの印刷装置で実施することができる。
【００１１】
図１の実施形態では、カートリッジ１２０および１２２は、プリンタコントローラ１３０から導体ストリップ１２８を介して受信される命令に従って、インク液滴を１枚の用紙または他の印刷媒体に選択的に付着させる。プリンタコントローラ１３０は、筐体１１２内に位置することができる。コントローラ１３０は、印刷ドライバから印刷命令の組を受信する。印刷ドライバは、ネットワークを介して印刷装置１１０に接続されるコンピュータ装置内に存在することができる。コンピュータ装置としては、例えばデスクトップ、ラップトップなどがある。また、スタンドアロン印刷装置、フォトプリンタ、キオスク、またはスタンドアロン電気器具の場合のように、印刷ドライバは、印刷装置１１０自体にも存在することができる。以下にさらに詳細に解説するように、ディスプレイを印刷装置１１０に関連付けて、オペレータに視覚情報を表示することができる。
【００１２】
図２は、従来の印刷装置環境に既存のアーキテクチャを示すシステムの実施形態である。図２の実施形態では、印刷装置２０２は、インターフェース２０３を介してホストコンピュータ２０４（例えば、特に、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、および／またはサーバ）にネットワーク接続されたものとして示されている。コンピュータ２０４は、ディスプレイ２０６を備えることができる。図２の実施形態は、印刷装置２０２が、少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）２１０を含むことを示している。ＡＳＩＣ２１０は、２１１として示す１つまたは複数のプロセッサを含むことができる。図２に示すように、ＡＳＩＣ２１０は、２１２−１、２１２−２として示す１つまたは複数のアナログＡＳＩＣと連係して、さまざまな機能を実行することができる。
【００１３】
例えば、ＡＳＩＣ２１０は、プリントヘッドの噴射および制御に適用可能なルーチンを含むことができる。ＡＳＩＣ２１０は、アナログＡＳＩＣ２１２−１と通信して、測定ルーチンを実行することができる。アナログＡＳＩＣ２１２−１からの測定ルーチンは、１つまたは複数のインクリザーバ２２１−１、２２１−２、…、２２１−Ｎに関連したセンサ２２２−１、２２２−２、…、２２２−Ｎと連係して、それらのインクリザーバの液位を求めることができる。また、ＡＳＩＣ２１０は、アナログ／デジタルＡＳＩＣ２１２−１と通信して、１つまたは複数のプリントヘッド２３１−１、２３１−２、…、２３１−Ｎの噴射を制御することもできる。
【００１４】
ＡＳＩＣ２１０は、印刷装置の媒体タイプの検出に適用可能な媒体検知ルーチンを含むことができる。例えば、ＡＳＩＣ２１０は、アナログＡＳＩＣ２１２−１と通信して、回路２６０を駆動することができる。回路２６０は、センサ２６１と共に測定ルーチンを実行して、媒体タイプを検出するように動作することができる。すなわち、センサ２６１は、現在の媒体に対して鏡面測定および拡散測定を行うことができる。
【００１５】
また、ＡＳＩＣ２１０は、印刷装置の用紙サーボ制御に適用可能な用紙サーボルーチンも含むことができる。例えば、ＡＳＩＣ２１０は、アナログＡＳＩＣ２１２−２と通信して、モータエンコーダ２４０を読み出すことができる。測定ルーチンは、このモータエンコーダに関連したレジスタ、センサ、およびカウンタ２４１と連係して、速度および方向を含む用紙の移動の追尾および制御を行うことができる。
【００１６】
さらに、ＡＳＩＣ２１０は、印刷装置のキャリッジサーボ制御に適用可能なキャリッジサーボルーチンを含むことができる。例えば、ＡＳＩＣ２１０は、アナログＡＳＩＣ２１２−２と通信して、キャリッジエンコーダ２５０の例えば電源の「オン」および「オフ」を制御することができる。キャリッジエンコーダ２５０の回路は、デジタルセンサ２５１からの出力を、ＡＳＩＣ２１０に関連したレジスタおよびカウンタに供給して、速度および方向を含むキャリッジの移動の追尾および制御を行うことができる。
【００１７】
上述した命令および測定ルーチンは、印刷装置に関連したメモリ２１４および／またはファームウェア２１６から上述したＡＳＩＣ２１０に供給することができる。
【００１８】
この明細書では、導電性パス、インターフェース、および／または接続には、例えば、配線された電気リンク、無線周波リンク、赤外線リンク、光リンクなどの信号媒体の任意の１つまたは組み合わせたものが含まれるものと意図される。
【００１９】
メモリ２１４には、印刷装置の全体にわたって分散した１つまたは複数のコンピュータ読み取り可能媒体が含まれ得る。この１つまたは複数のコンピュータ読み取り可能メモリには、例えば、ＤＲＡＭおよびＤＤＲＡＭといった大きな固定メモリ媒体、光磁気読み取り媒体、例えばフラッシュメモリといったＮＶメモリ、多くの小さなメモリ媒体ロケーションが含まれ得る。同様に、ファームウェア２１６には、印刷装置の全体にわたって分散した１つまたは複数のコンピュータ読み取り可能媒体が含まれ得る。この媒体には、特に、さまざまな種類のＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリが含まれる。
【００２０】
説明したように、上述したＡＳＩＣ２１０は、測定命令ルーチンおよび制御命令ルーチンを含むことができる。このような測定ルーチンおよび制御ルーチンには、特に、モータ制御命令、プリントヘッド温度測定命令、プリントヘッド噴射命令、およびキャリブレーション測定命令が含まれるが、これらに限定されるものではない。
【００２１】
要約すると、プリンタは、複数のアナログＡＳＩＣ、例えばＡＳＩＣ２１２−１および２１２−２を有して、さまざまな機能を実行することができる。これらの機能の中には、新しいプリントヘッドファミリの追加機能のため、新しいプラットフォームに置き換わったものがある。残りの機能の中には、アナログＩＣ、例えばアナログＩＣ２１２−１、２１２−２と、デジタルＩＣ、例えばデジタルＩＣ２１０との間のインターフェースを使用する必要があるタイムセンシティブなプロセス間の衝突を除いて、単一のアナログＩＣで実施できるものがある。アナログＡＳＩＣの中には、同じインターフェースに複数のＩＣを接続できる高速広帯域のレジスタベースのシリアルインターフェースを使用するものがある。このようなレジスタベースのシリアルインターフェースを使用する方法は、ファームウェアプログラマブル命令スタックのコマンドエリアにコマンドを書き込むものである。遅延コマンドおよびループコマンドが、この命令スタック構造の一部として実施される。命令スタックが一旦書き込まれると、ＧＯ信号が発行され、スタックは、ループコマンドを含むすべてのコマンドが完了するまで実行される。
【００２２】
従来の命令スタック構造／アーキテクチャには、所与のデジタルＩＣ、例えばデジタルＩＣ２１０に１つのスタックしかなかった。これは、たとえ、レジスタベースのシリアルインターフェースの帯域幅により、他のプロセスがそのインターフェースを使用できる場合であっても、タイムセンシティブなプロセスが、他のプロセスをロックアウトすることを意味する。ロックアウトが行われるのは、別のシステムプロセスがそのインターフェースを使用するには、命令スタックをクリアして書き換えなければならないという理由によるものである。元のプロセスが、主プロセッサ、例えばプロセッサ２１１を取り戻して、命令スタックを書き換えるまでには、かなりの時間が経過している。
【００２３】
図３は、本発明の教示による命令アーキテクチャ３００の実施形態を示している。図３の実施形態に示すように、第１の集積回路（第１のＩＣ）３０２は、シリアルインターフェース３０６を介して第２の集積回路（第２のＩＣ）３０４と連係される。さまざまな実施形態において、第１の集積回路３０２は、特定用途向け集積回路（第１のＡＳＩＣ）とすることができ、第２の集積回路３０４は、第２の特定用途向け集積回路（第２のＡＳＩＣ）とすることができる。さまざまな実施形態において、第１の集積回路３０２には、すべてのデジタル集積回路またはＡＳＩＣが含まれる。図３の実施形態に示すように、第２の集積回路３０４は、アナログ／デジタル（Ａ／Ｄ）変換器３０５を含む。多数のタイプの多種多様なアナログ・デジタル変換器（ＡＤＣ）およびデジタル・アナログ変換器（ＤＡＣ）が、本発明のさまざまな実施形態の実施に適するように、図３に示すＡ／Ｄ変換器３０５を構成することができる。
【００２４】
さまざまな実施形態において、シリアルインターフェース３０６には、レジスタベースのシリアルインターフェースが含まれる。さまざまな実施形態において、シリアルインターフェース３０６は、複数の集積回路に接続するように動作できる。さまざまな実施形態において、シリアルインターフェースには、１２メガヘルツ以上の周波数で動作できる高速シリアルインターフェースが含まれる。図３の実施形態では、シリアルインターフェース３０６の全体にわたったデータ転送をクロック制御する（clocking）クロック３０７が、シリアルインターフェース３０６に関連付けられて示されている。図３の実施形態に示すように、１つまたは複数のデータレジスタ３０９も、シリアルインターフェース３０６に関連付けることができる。
【００２５】
図３の実施形態では、第１の集積回路３０２は、３０８および３１０として示される少なくとも２つの命令スタックを含む。図３の実施形態では、第１の命令スタック３０８および第２の命令スタック３１０が示されている。しかしながら、本発明の実施形態では、第１の集積回路３０２の命令スタックは２つの命令スタックに限定されない。さまざまな実施形態において、少なくとも２つの命令スタック、例えば命令スタック３０８および３１０には、ファームウェアプログラマブル命令スタックが含まれる。すなわち、少なくとも２つの命令スタック３０８および３１０は、第１の集積回路３０２に動作可能に接続される、ファームウェア３２０によりプログラミング可能なコマンドエリアを含み、それによって、多数のコマンドおよび／またはルーチンを含む。さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０のコマンドエリアは、それぞれ、少なくとも８個のコマンドを保持する空間を含む。
【００２６】
さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０は、図３に信号線３１４−１および３１４−２として示すタイマまたは割り込み信号線から作動するように構成される。したがって、少なくとも２つの命令スタック３０８および３１０は、１つまたは複数のトリガ源によってトリガ可能に構成される。さまざまな実施形態において、１つまたは複数のトリガ源には、特に、用紙タイマ、用紙エンコーダ割り込み、用紙噴射割り込み、および１つまたは複数のキャリッジエンコーダパルスから発生する信号が含まれるが、これらは一例であって、限定的ではない。
【００２７】
図３の実施形態は、さらに、少なくとも２つの命令スタック３０８および３１０に接続されたアービタ３１２を示している。図３の実施形態に示すように、少なくとも２つの命令スタック３０８および３１０は、グラント信号線およびリクエスト信号線、例えば信号線Ｇ１、Ｒ１；Ｇ２、Ｒ２を介してアービタ３１２に接続される。当業者は、グラント信号線およびリクエスト信号線を使用してアービタ３１２と連係できるようにする方法について理解している。
【００２８】
図３の実施形態では、第１の集積回路３０２は、命令キュー３１５をさらに含む。さまざまな実施形態において、命令キューには、先入れ先出し（ＦＩＦＯ）キューが含まれる。図３の実施形態に示すように、命令キューも、信号線Ｇ３およびＲ３として示すグラント信号線およびリクエスト信号線を介してアービタ３１２に接続することができる。
【００２９】
さまざまな実施形態において、アービタ３１２は、少なくとも２つの命令スタック３０８および３１０のうち第１の命令スタック３０８に第１優先順位を提供するように動作できる。アービタは、命令キュー３１５と、少なくとも２つの命令スタック３０８および３１０のうち第２の命令スタック３１０とに第２優先順位を提供するように動作できる。
【００３０】
さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０の少なくとも１つは、ループ機能、遅延機能、読み出しレジスタ機能、書き込みレジスタ機能、および読み出しレジスタ／メモリ書き込み機能（例えば、第１の集積回路３０２に動作可能に接続されたメモリ３１８）からなる群から選択される１つまたは複数の機能を含む。
【００３１】
図３の実施形態では、少なくとも２つの命令スタック３０８および３１０、アービタ３１２、および命令キュー３１５を、それらのそれぞれのグラント信号線およびリクエスト信号線、例えば信号線Ｇ１、Ｒ１；Ｇ２、Ｒ２；Ｇ３、Ｒ３と共に、第１の集積回路３０２の第１のハードウェアセット３１６の一部として含めることができる。第１のハードウェアセット３１６は、１つまたは複数のレジスタ３１９に加えて、他のハードウェアコンポーネント／機能３２１を含むことができる。さまざまな実施形態において、これらの他のハードウェアコンポーネント／機能には、画像パイプライン、および／または、インクノズルの噴射を制御する回路ブロックが含まれ得るが、これらは一例であって、限定的ではない。本発明は、そのように限定されるものではない。
【００３２】
図３の実施形態に示すように、第１の集積回路は、１つまたは複数のプロセッサ３２２を含む。これらのプロセッサ３２２は、本発明のさまざまな実施形態の実施に適するように、コンピュータ実行可能命令のさまざまな組で動作できる。第１の集積回路３０２の１つまたは複数のプロセッサ３２２は、メモリ３１８およびファームウェア３２０に動作可能に接続される。メモリ３１８およびファームウェア３２０は、第１の集積回路３０２上に位置するか、または、第１の集積回路３０２から離れて位置する。メモリ３１８には、任意の個数のさまざまなメモリタイプが含まれ得る。特に、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ダブルデータレート同期ＤＲＡＭ（ＤＤＲＡＭ（double data rate synchronous DRAM））が含まれ得る。同様に、ファームウェア３２０には、特に、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、およびＥＥＰＲＯＭが含まれ得る。
【００３３】
図３の実施形態に示すように、Ａ／Ｄ変換器３０５を有する第２の集積回路３０４は、本明細書で同じものについてすでに説明したように、多数の接続信号線３２４−１、３２４−２、…、３２４−Ｎを備える。これらの接続信号線は、第２の集積回路３０４と他の電子回路との間でデータ、情報、および命令を伝送するのに使用できる。当業者は、第２の集積回路を動作可能に接続できるさまざまなタイプの他の電子回路について十分理解している。さまざまな実施形態において、一例であって、限定的ではないが、これらの多数の接続信号線には、制御信号線および検知信号線が含まれ得る。また、これらの多数の接続信号線には、少なくとも１つの接続信号線ペア、例えば接続信号線ペア３２４−１が含まれ得る。この接続信号線ペアは、用紙エンコーダ（図示せず）の制御および検知を行うのに使用できる。これらは、一例であって、限定的ではない。同様に、図３の実施形態に示すように、多数の制御信号線および検知信号線には、少なくとも１つの接続信号線、例えば接続信号線３２４−２が含まれ得る。同じものについて上述したように、この接続信号線は、少なくとも２つの命令スタック３０８および３１０の少なくとも１つへの割り込み信号線として機能するように使用できる。しかしながら、本発明は、そのように限定されるものではない。
【００３４】
本発明のさまざまな実施形態において、上述した命令アーキテクチャ３００には、プリンタ命令アーキテクチャが含まれる。しかしながら、本発明は、プリンタ命令アーキテクチャに限定されるものではない。すなわち、さまざまな実施形態の範囲は、第１のＡＳＩＣ上の少なくとも２つのファームウェアプログラマブル命令スタックと、シリアルインターフェースによって第１のＡＳＩＣに接続された第２のＡＳＩＣと、第１のＡＳＩＣと第２のＡＳＩＣとの間で命令を調停する手段とを有し、それによって、複数のファームウェアプログラマブル命令スタックが、タイムセンシティブな形式でシリアルインターフェースを使用して第２のＡＳＩＣにアクセスできる、あらゆる動作環境を含むように意図される。
【００３５】
さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０の少なくとも１つ、すなわち第１の命令スタック（例えば命令スタック３０８）は、モータサーボ制御の計算用のデータを収集するように動作できる。さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０のうち第１の命令スタック３０８は、印刷装置に関連したモータサーボ制御用のデータを収集するように動作できる。ただし、これは、一例であって、限定的ではない。さまざまな実施形態において、モータサーボ制御用のデータを収集するように動作できる、少なくとも２つの命令スタック３０８および３１０の第１の命令スタック３０８には、アービタ３１２によってシリアルインターフェース３０６にアクセスするための第１優先順位が専用に与えられる。ただし、これは、一例であって、限定的ではない。
【００３６】
さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０のうち第２の命令スタック、例えば命令スタック３１０は、測定ルーチン用のコマンドを受信するように動作できる。さまざまな実施形態において、少なくとも２つの命令スタック３０８および３１０のうち第２の命令スタック３１０は、印刷装置に関連した測定ルーチン用のコマンドを受信するように動作できる。ただし、これは一例であって、限定的ではない。さまざまな実施形態において、測定ルーチン用のコマンドを受信するように動作可能な、少なくとも２つの命令スタック３０８および３１０のうち第２の命令スタック３１０は、特に、キャリッジサーボ測定ルーチン、サービスステーションサーボ測定ルーチン、用紙タイプ（例えば媒体センサ）測定ルーチン、インク位置測定ルーチン（本明細書では、時にＳＰＯＴ測定ルーチンと呼ばれる）、インクカートリッジ温度測定ルーチン、およびインク液位測定ルーチン（例えば、インクカートリッジリザーバの液位を測定する）からなる群から選択される測定ルーチンを含む。ただし、これは一例であって、限定的ではない。しかしながら、本発明は、そのように限定されるものではない。さまざまな実施形態において、測定ルーチン用のコマンドを受信するように動作可能な、少なくとも２つの命令スタック３０８および３１０のうち第２の命令スタック３１０には、アービタ３１２によってシリアルインターフェース３０６にアクセスするための第２優先順位が提供される。
【００３７】
さまざまな実施形態において、命令キュー３１５は、コマンド命令を受信するように動作できる。さまざまな実施形態において、命令キュー３１５は、印刷装置に関連したモータ速度命令コマンドおよびモータ方向命令コマンドを、第１の集積回路３０２に位置する１つまたは複数のプロセッサ３２２から受信するように動作できる。しかしながら、本発明は、そのように限定されるものではない。さまざまな実施形態において、モータ速度命令コマンドおよびモータ方向命令コマンドは、位相データおよびパルス幅変調（ＰＷＭ）データを含むことができる。これらのデータは、Ａ／Ｄ変換器３０５を有する第２の集積回路３０４に書き込まれて、モータの調整を行うように意図される。さまざまな実施形態において、命令キューには、アービタ３１２によってシリアルインターフェース３０６にアクセスするための第２優先順位が提供される。さまざまな実施形態において、命令キューは、シリアルインターフェース３０６にアクセスするための第２優先順位を、少なくとも２つの命令スタック３０８および３１０のうち第２の命令スタック３１０と共有する。
【００３８】
さまざまな実施形態において、ＰＷＭデータおよび位相データは、１６ビット未満とすることができ、したがって、１回のシリアルインターフェースのトランザクションに収めることができる。ただし、これは、一例であって、限定的ではない。命令キュー３１５は、シリアルインターフェースが、同時に発生したトランザクションによってビジー状態に保持されると予想される間、シリアルデータを保持するのに十分な大きさ、例えば十分な深さを有する。さまざまな実施形態において、命令キュー３１５は、８個以上のコマンド命令を保持するのに十分な大きさを少なくとも有する。１つまたは複数のプロセッサ３２２は、コマンド命令データを命令キュー３１５にロードして、その後、別のタスクを続けることができる。命令キュー３１５は、いっぱいにならず、かつ、待機状態を作らないように構成かつ／または設計できる。
【００３９】
さまざまな実施形態、例えば図３に示すような実施形態において、第１のＡＳＩＣ３０２の少なくとも２つのファームウェアプログラマブル命令スタック３０８および３１０、ならびに命令キュー３１５は、印刷装置用に提供される。さまざまな実施形態において、レジスタベースのシリアルインターフェース３０６は、第１のＡＳＩＣ３０２を第２のＡＳＩＣ３０４に接続する。第２のＡＳＩＣ３０４は、アナログ／デジタル（Ａ／Ｄ）変換器３０５を含む。複数のファームウェアプログラマブル命令スタックが、タイムセンシティブなルーチンに従って第２のＡＳＩＣ３０４にアクセスできるように、第１のＡＳＩＣ３０２と第２のＡＳＩＣ３０４との間には、レジスタベースのシリアルインターフェース３０６を使用して命令を調停する手段が設けられる。上述したように、印刷装置は、１つまたは複数のトリガ源を含み、これらのトリガ源は、少なくとも２つのファームウェアプログラマブル命令スタック、例えば、命令スタック３０８および３１０に接続される。
【００４０】
さまざまな実施形態において、第１のＡＳＩＣ３０２と第２のＡＳＩＣ３０４との間で命令を調停する手段には、少なくとも２つのファームウェアプログラマブル命令スタック、例えば命令スタック３０８および３１０に専用命令ルーチンを設けることが含まれる。これらの専用命令ルーチンは、データ値を読み出し、測定ルーチンを管理するように動作できる。さまざまな実施形態において、命令を調停する手段には、アービタ３１２が含まれる。アービタ３１２は、少なくとも２つのファームウェアプログラマブル命令スタックのうち第１の命令スタック、例えば命令スタック３０８に第１優先順位を与えるように構成される。アービタ３１２は、命令キュー３１５と、１つまたは複数の追加されたファームウェアプログラマブル命令スタック、例えば命令スタック３１０との間で第２優先順位を共有するように構成される。さまざまな実施形態において、共有された第２優先順位には、命令キュー３１５と、１つまたは複数の追加されたファームウェアプログラマブル命令スタック、例えば命令スタック３１０との間で、シリアルインターフェース３０６へのアクセスを交互に行うことが含まれ得る。
【００４１】
さまざまな実施形態において、読み出された測定データが、少なくとも２つのファームウェアプログラマブル命令スタック３０８および３１０の１つまたは複数ですべて揃うと、第１のＡＳＩＣ３０２と第２のＡＳＩＣ３０４との間で命令を調停する手段は、１つまたは複数のプロセッサ、例えばプロセッサ３２２を要求するように動作できるコンピュータ実行可能命令の組を含む。さまざまな実施形態において、このコンピュータ実行可能命令の組は、読み出された測定データに対する１つまたは複数のプロセッサ３２２による計算を表す命令コマンドを命令キュー３１５へ供給するように動作できる。この命令コマンドには、印刷装置の用紙モータの速度および方向を変更する命令コマンドのようなタイムセンシティブな命令コマンドが含まれ得る。しかしながら、本発明は、そのように限定されるものではない。さまざまな実施形態において、コンピュータ実行可能命令の組は、レジスタベースのシリアルインターフェース３０６へのアクセスの許可および／または調節を行うように動作できる。また、さまざまな実施形態において、コンピュータ実行可能命令の組は、第１のＡＳＩＣ３０２の命令スタックおよび／または命令キューと、第２のＡＳＩＣのＡ／Ｄ変換器との間で、他の情報の中でも特に、測定命令（例えば命令スタックからの）と、測定データ（例えばＡ／Ｄ変換器からの）と、１つまたは複数のプロセッサからの命令コマンドとを供給するように動作できる。すなわち、コンピュータ実行可能命令の１つまたは複数の組は、レジスタベースのシリアルインターフェース３０６へのアクセスの許可および／または調節を行うことができる。
【００４２】
このように、コンピュータ実行可能命令の１つまたは複数の組は、少なくとも２つのファームウェアプログラマブル命令スタック、例えば命令スタック３０８および３１０から第２のＡＳＩＣ３０４へ、レジスタベースのシリアルインターフェース３０６を使用して測定命令を供給する。また、さまざまな実施形態において、コンピュータ実行可能命令の１つまたは複数の組は、第２のＡＳＩＣ３０４から、少なくとも２つのファームウェアプログラマブル命令スタックに位置し、かつ／または、当該スタックに関連した１つまたは複数のレジスタ、例えばレジスタ３２１に、受信された測定データを供給するように動作できる。
【００４３】
さまざまな実施形態において、図４の実施形態を参照して次に説明されるように、命令キュー３１５の代わりに、１つまたは複数の追加された命令スタックを代用することができる。この場合、１つまたは複数のプロセッサ３２２によって計算されたサーボデータが、１つまたは複数の追加された命令スタックに書き込まれる時に、第１の集積回路３０２の結果レジスタを保存する対処が追加されるが、この対処は、ファームウェアおよび／または第１の集積回路３０２の設計によって行われる。
【００４４】
図４は、本発明の教示による別の命令アーキテクチャの実施形態を示している。図４の実施形態に示すように、第１の集積回路（第１のＩＣ）４０２は、シリアルインターフェース４０６を介して第２の集積回路（第２のＩＣ）４０４と連係される。図３の実施形態と同様に、第１の集積回路４０２は、特定用途向け集積回路（第１のＡＳＩＣ）とすることができ、第２の集積回路４０４は、第２の特定用途向け集積回路（第２のＡＳＩＣ）とすることができる。さまざまな実施形態において、第１の集積回路４０２には、すべてのデジタル集積回路またはＡＳＩＣが含まれる。図４の実施形態に示すように、第２の集積回路４０４は、同じものについて本明細書ですでに説明したように、アナログ／デジタル（Ａ／Ｄ）変換器４０５を含む。
【００４５】
シリアルインターフェース４０６には、レジスタベースのシリアルインターフェースが含まれる。さまざまな実施形態において、シリアルインターフェース４０６は、複数の集積回路に接続するように動作できる。図３の実施形態と同様に、シリアルインターフェースには、１２メガヘルツ以上の周波数で動作できる高速シリアルインターフェースが含まれ得る。図４の実施形態では、シリアルインターフェース４０６の全体にわたったデータ転送をクロック制御するクロック４０７が、シリアルインターフェース４０６に関連付けられて示されている。図４の実施形態では、１つまたは複数のデータレジスタ４０９も、シリアルインターフェース４０６に関連付けることができる。
【００４６】
図４の実施形態では、第１の集積回路４０２は、４０８−１、４０８−２、…、４０８−Ｎとして示される少なくとも３つの命令スタックを含む。しかしながら、命令スタックの個数は、そのように限定されるものではない。図４の実施形態では、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎには、ファームウェアプログラマブル命令スタックが含まれる。すなわち、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎは、第１の集積回路４０２に動作可能に接続される、ファームウェア４２０によりプログラミング可能なコマンドエリアを含み、それによって、多数のコマンドおよび／またはルーチンを含む。さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのコマンドエリアは、それぞれ、少なくとも８個のコマンドを保持する空間を含む。
【００４７】
少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの１つまたは複数のものは、図４に信号線４１４−１および４１４−２として示すタイマまたは割り込み信号線から作動するように構成され得る。したがって、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの１つまたは複数のものは、１つまたは複数のトリガ源によってトリガ可能に構成される。さまざまな実施形態において、１つまたは複数のトリガ源には、特に、用紙タイマ、用紙エンコーダ割り込み、用紙噴射割り込み、および１つまたは複数のキャリッジエンコーダパルスから発生する信号が含まれるが、これらは一例であって、限定的ではない。
【００４８】
図４の実施形態は、さらに、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎに接続されたアービタ４１２を示している。図４の実施形態に示すように、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎは、グラント信号線およびリクエスト信号線、例えば信号線Ｇ１、Ｒ１；Ｇ２、Ｒ２；Ｇ３、Ｒ３を介してアービタ４１２に接続される。当業者は、グラント信号線およびリクエスト信号線を使用して少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎをアービタ４１２と連係できるようにする方法について理解している。
【００４９】
アービタ４１２は、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第１の命令スタック、例えば命令スタック４０８−１に第１優先順位を提供するように動作できる。アービタ４１２は、少なくとも３つの命令スタックのうち他の命令スタック、例えば命令スタック４０８−２、…、４０８−Ｎに第２優先順位を提供するように動作できる。さまざまな実施形態において、少なくとも３つの命令スタックのうち他の命令スタック、例えば命令スタック４０８−２、…、４０８−Ｎに第２優先順位を提供することには、少なくとも３つの命令スタックのうち他の命令スタック、例えば命令スタック４０８−２、…、４０８−Ｎ間で、シリアルインターフェース４０６へのアクセスを交互に行うことが含まれ得る。
【００５０】
さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの１つまたは複数のものは、ループ機能、遅延機能、読み出しレジスタ機能、書き込みレジスタ機能、および読み出しレジスタ／メモリ書き込み機能（例えば、第１の集積回路４０２に動作可能に接続されたメモリ４１８）からなる群から選択される１つまたは複数の機能を含む。
【００５１】
図４の実施形態では、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎおよびアービタ４１２を、それらのそれぞれのグラント信号線およびリクエスト信号線、例えば信号線Ｇ１、Ｒ１；Ｇ２、Ｒ２；Ｇ３、Ｒ３と共に、第１の集積回路４０２の第１のハードウェアセット４１６の一部として含めることができる。第１のハードウェアセット４１６は、１つまたは複数のレジスタ４１９に加えて、他のハードウェアコンポーネント／機能４２１を含むことができる。さまざまな実施形態において、これらの他のハードウェアコンポーネント／機能には、画像パイプライン、および／または、インクノズルの噴射を制御する回路ブロックが含まれ得るが、これらは一例であって、限定的ではない。
【００５２】
図４の実施形態に示すように、第１の集積回路は、１つまたは複数のプロセッサ４２２を含む。これらのプロセッサ４２２は、本発明のさまざまな実施形態の実施に適したコンピュータ実行可能命令のさまざまな組で動作できる。第１の集積回路４０２の１つまたは複数のプロセッサ４２２は、第１の集積回路４０２から離れて位置するメモリ４１８およびファームウェア４２０に動作可能に接続される。上述したように、メモリ４１８には、任意の個数のさまざまなメモリタイプが含まれ得る。メモリタイプとしては、特に、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ダブルデータレート同期ＤＲＡＭ（ＤＤＲＡＭ）が含まれ得る。同様に、ファームウェア４２０には、特に、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、およびＥＥＰＲＯＭが含まれ得る。
【００５３】
図４の実施形態に示すように、Ａ／Ｄ変換器４０５を有する第２の集積回路４０４は、複数の接続信号線４２４−１、４２４−２、…、４２４−Ｎを備える。これらの接続信号線は、第２の集積回路４０４と他の電子回路との間でデータ、情報、および命令を伝送するのに使用できる。当業者は、第２の集積回路を動作可能に接続できるさまざまなタイプの他の電子回路について理解している。さまざまな実施形態において、これらの複数の接続信号線には、制御信号線および検知信号線が含まれ得る。また、これらの複数の接続信号線には、少なくとも１つの接続ペア、例えば接続ペア４２４−１が含まれ得る。この接続ペアは、用紙エンコーダ（図示せず）の制御および検知を行うのに使用できる。これらは、一例であって、限定的ではない。同様に、図４の実施形態に示すように、複数の制御信号線および検知信号線には、少なくとも１つの接続、例えば接続４２４−２が含まれ得る。同じものについて上述したように、この接続は、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの少なくとも１つへの割り込み信号線として機能するように使用できる。この少なくとも１つの接続、例えば接続４２４−２は、用紙エンコーダ割り込み信号線として機能することができるが、これは一例であって、限定的ではない。本発明は、そのように限定されるものではない。
【００５４】
本発明のさまざまな実施形態において、上述した命令アーキテクチャ４００には、プリンタ命令アーキテクチャが含まれる。しかしながら、さまざまな実施形態の範囲は、第１のＡＳＩＣ上の少なくとも２つのファームウェアプログラマブル命令スタックと、シリアルインターフェースによって第１のＡＳＩＣに接続された第２のＡＳＩＣと、第１のＡＳＩＣと第２のＡＳＩＣとの間で命令を調停する手段とを有し、それによって、複数のファームウェアプログラマブル命令スタックが、タイムセンシティブな形式でシリアルインターフェースを使用して第２のＡＳＩＣにアクセスできる、あらゆる動作環境を含むように意図される。
【００５５】
少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの少なくとも１つ、すなわち第１の命令スタック（例えば命令スタック４０８−１）は、モータサーボ制御の計算用のデータを収集するように動作できる。さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第１の命令スタック４０８−１は、印刷装置用の用紙モータサーボ命令スタックとして使用される。用紙モータサーボ命令スタック４０８−１は、割り込み信号線４１４−１によるタイマ、例えば用紙タイマによってトリガすることができる。この実施形態では、印刷装置に関連した用紙モータサーボ命令ルーチンのタイムセンシティブな性質のため、用紙モータサーボ命令スタック４０８−１には、アービタ４１２によってシリアルインターフェース４０６にアクセスするための第１優先順位が専用に与えられる。ただし、これは、一例であって、限定的ではない。
【００５６】
さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第２の命令スタック、例えば命令スタック４０８−２は、印刷装置に関連したインク位置測定ルーチン用のコマンドを受信するように動作できる。本明細書で使用されるように、インク位置測定ルーチンは、時に、ＳＰＯＴ測定ルーチンと呼ばれ、第２の命令スタック４０８−２は、時に、ＳＰＯＴ命令スタックと呼ばれる。しかしながら、本発明は、そのように限定されるものではない。また、さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第２の命令スタック４０８−２は、他の測定ルーチン用のコマンドを受信するように動作できる。他の測定ルーチンの例には、特に、用紙タイプ（例えば媒体センサ）測定ルーチン、インクカートリッジ温度測定ルーチン、およびインク液位測定ルーチン（例えば、インクカートリッジリザーバの液位を測定する）からなる群から選択される測定ルーチンが含まれるが、これらは、一例であって、限定的ではない。ＳＰＯＴ命令スタックは、１つまたは複数のタイマおよび／または割り込み信号によってトリガすることができる。さまざまな実施形態において、ＳＰＯＴ命令スタックは、第２の集積回路４０４から割り込み信号線４２４−１により受信可能な用紙エンコーダ割り込み信号によってトリガすることができる。さまざまな実施形態において、ＳＰＯＴ命令スタックは、キャリッジエンコーダパルスから生成可能な、デジタルセンサ４１５からの１つまたは複数の信号によってトリガすることができる。
【００５７】
さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの第２のうち命令スタック４０８−２には、これらの測定ルーチンのタイムセンシティブな性質に対応するために、アービタ４１２によってシリアルインターフェース４０６にアクセスするための第２優先順位が提供される。
【００５８】
図４の実施形態に示すように、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第３の命令スタック、例えば命令スタック４０８−Ｎは、機能および／またはコマンド命令を受信するように動作できる。少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第３の命令スタック、例えば命令スタック４０８−Ｎは、印刷装置に関連したすべてのサーボルーチンについて、モータ速度命令コマンドおよびモータ方向命令コマンドを、第１の集積回路４０２に位置する１つまたは複数のプロセッサ４２２から受信するように動作できる。上述したように、モータ速度命令コマンドおよびモータ方向命令コマンドは、位相データおよびパルス幅変調（ＰＷＭ）データを含むことができる。これらのデータは、第２の集積回路４０４に書き込まれて、モータの調整を行うように意図される。さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第３の命令スタック、例えば命令スタック４０８−Ｎには、アービタ４１２によってシリアルインターフェース４０６にアクセスするための第２優先順位が提供される。さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎのうち第３の命令スタック、例えば命令スタック４０８−Ｎは、シリアルインターフェース４０６にアクセスするための第２優先順位を、少なくとも３つの命令スタックのうち他の命令スタック、例えば命令スタック４０８−２と共有する。
【００５９】
さまざまな実施形態において、ＰＷＭデータおよび位相データは、１６ビット未満とすることができ、したがって、１回のシリアルインターフェースのトランザクションに収めることができる。ただし、これは、一例であって、限定的ではない。図４の実施形態では、１つまたは複数のプロセッサ４２２によって計算されたサーボデータが、第３の命令スタック４０８−Ｎに書き込まれる時に、第３の命令スタック４０８−Ｎを使用していたかもしれない他のルーチンに関連した結果レジスタを保存する対処が追加されるが、この対処は、ファームウェアおよび／または第１の集積回路４０２の設計によって行われる。
【００６０】
図４に示す命令アーキテクチャは、印刷装置命令アーキテクチャとして使用することができる。これらの実施形態では、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎは、第１のＡＳＩＣ４０２に設けられる。さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの１つ、例えば命令スタック４０８−１は、用紙サーボルーチンに専用化することができ、また、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎの別の１つ、例えば命令スタック４０８−２は、ＳＰＯＴルーチンに専用化することができる。さまざまな実施形態において、少なくとも３つの命令スタック４０８−１、４０８−２、…、４０８−Ｎは、１２メガヘルツ（ＭＨｚ）以上の周波数で動作できる。
【００６１】
タイムセンシティブなコマンドおよび測定命令ルーチンに対応する、シリアルインターフェース４０６へのアクセス方法として、３つのアクセス方法が提供される。ただし、これは、一例であって、限定的ではない。用紙モータ制御およびＳＰＯＴ測定ルーチンは、タイムセンシティブなコマンドおよび測定命令ルーチンである。さまざまな実施形態において、ＳＰＯＴ命令スタック、例えば命令スタック４０８−２は、ＡＳＩＣ４０４からの用紙エンコーダ割り込み、例えば割り込み信号線４２４−２からトリガすることができる。さらに、ＳＰＯＴ命令スタック、例えば命令スタック４０８−２は、デジタルセンサ４１５からの１つまたは複数の信号によってトリガすることができる。この１つまたは複数の信号は、キャリッジエンコーダパルスから発生し、割り込み信号線４１４−２により与えられる。用紙命令スタック、例えば命令スタック４０８−１は、割り込み信号線４１４−１による用紙タイマからトリガすることができる。シリアルインターフェース４０６のトランザクションの３つのトリガ源は、グラント信号線およびリクエスト信号線、例えば信号線Ｇ１、Ｒ１；Ｇ２、Ｒ２；Ｇ３、Ｒ３を使用して、一定の優先順位のアービタ４１２によって管理される。
【００６２】
さまざまな実施形態において、用紙サーボは、次のものを読み出せる必要がある。
【００６３】
１）Ａ／Ｄ（アナログ／デジタル）値：８ビット
２）ＰＥＮＣ（用紙エンコーダ）値：２ビット
３）デジタル位置データ：１０〜１２ビット
４）現在の直交状態の高い交点の値および低い交点の値：１６ビット
【００６４】
各読み出しは、アナログＡＳＩＣ、例えば第２の集積回路４０４の一意のレジスタロケーションから行うことができる。いくつかの実施形態では、Ａ／Ｄ値およびＰＥＮＣ値を単一のレジスタに結合することができる。したがって、上記４つの値を読み出すには、少なくとも３回のシリアルインターフェース４０６の読み出しが使用される。本明細書で使用されるように、シリアルインターフェースの読み出しは、１６ビットのデータを有するものと解釈される。しかしながら、本発明は、そのように限定されるものではない。意味のある結果を生成するためには、４つの値を同期される必要がある。したがって、アナログＡＳＩＣ、例えばＡＳＩＣ４０４は、シリアルインターフェース４０６の３つのすべての読み出しが完了するまで、適切なレジスタのいずれの更新も遅らせるように構成され、かつ、そのような方法が、ＡＳＩＣ４０４に提供される。したがって、さまざまな実施形態では、データのタイムセンシティブ性を考慮して、データが必要とされる時、および、データが受信される時に関する待ち時間の問題が対処される。本発明のさまざまな実施形態が存在しない場合、プロセスがロックアウトされる不適切な遅延が生じる可能性があり、また、例えば位置エラーといったエラーの発生の機会が増大する可能性がある。さまざまな実施形態により、複数のトランザクションは、何ら付加的な遅延が生じることなく、単一のシリアルインターフェース４０６上に自動的に発生するように構成することができる。
【００６５】
さまざまな実施形態において、印刷装置環境の例えば用紙タイマといったタイマが作動すると、複数の専用命令スタックが使用されて、シリアルインターフェース４０６の連続的な読み出しを実行することができる。データが準備されていると、命令スタックは、ＣＰＵ、例えばＣＰＵ４２２に割り込み行う。データを読み出して、データを処理した後、用紙サーボルーチンは、モータの調整を行うために、位相値およびＰＷＭ値をアナログＡＳＩＣに書き込むことができる。ただし、これは、一例であって、限定的ではない。ＰＷＭデータおよび位相データは、約１６ビット以下であり、したがって、１回のシリアルインターフェース４０６のトランザクションに収めることができる。さまざまな実施形態において、ＰＷＭデータおよび位相データを保持するのに十分な深さの命令キューが設けられる。さまざまな実施形態において、ＰＷＭデータおよび位相データを保持する命令スタックが設けられる。
【００６６】
図５〜図９は、本発明のさまざまな方法の実施形態を示すブロック図である。これらの方法は、ソフトウェア、アプリケーションモジュール、および／または、本明細書もしくはそれ以外のものに示すシステムおよび装置で動作可能な他のコンピュータ実行可能命令によって実行することができる。このようなソフトウェア、アプリケーションモジュール、および／またはコンピュータ実行可能命令は、上述したようなシステムの全体にわたって、例えば分散コンピュータ環境における１つの位置またはいくつかの位置、さらには多くの位置に存在することができる。しかしながら、本発明は、どの特定の動作環境に限定されるものでもなく、どの特定のタイプのコンピュータ読み出し可能命令に限定されるものでもない。明示的に述べない限り、以下に記載する方法は、特定の順序またはシーケンスに制約されるものではない。さらに、そのように記載された方法の中には、同時に発生し得るか、または、実行され得るものがある。
【００６７】
図５は、２つの命令スタックを使用して命令を管理する方法の実施形態を示している。図５の実施形態に示すように、この方法は、ブロック５１０で、ファームウェアによってプログラミング可能であり、かつ、第１の集積回路（ＩＣ）のアービタに接続される第１の命令スタックおよび第２の命令スタックを設けることを含む。ブロック５２０で、図５の方法の実施形態は、第１のトリガ源から第１の命令スタックにトリガすることを含む。ブロック５３０で、この方法は、第２のトリガ源から第２の命令スタックをトリガすることを含む。ブロック５４０で、この方法は、アービタによって提供される優先順位に基づいて、シリアルバスにより、第１の命令スタックおよび第２の命令スタックを第２のＩＣのアナログ／デジタル（Ａ／Ｄ）変換器と連係することを含む。
【００６８】
図６は、２つの命令スタックおよび１つの命令キューを使用して命令を管理する方法の実施形態を示している。図６の実施形態のブロック６１０に示すように、この方法は、少なくとも２つのファームウェアプログラマルブルスタック、および、第１の集積回路のアービタに接続される命令キューを設けることを含む。ブロック６２０に示すように、この方法は、第１の命令ルーチンを有する第１のファームウェアプログラマブルスタックをプログラミングすることを含む。ブロック６３０に示すように、この方法は、第２の命令ルーチンを有する第２のファームウェアプログラマブルスタックをプログラミングすることをさらに含む。
【００６９】
ブロック６４０に示すように、この方法は、第１のファームウェアプログラマブルスタックからの第１の命令ルーチンに与えられた第１優先順位、および、第２の命令ルーチンと命令キューからの命令とに共有される第２優先順位により、シリアルバスを通じて第２の集積回路へ命令を調停することをさらに含む。
【００７０】
図７は、プリンタのアーキテクチャを管理する方法の実施形態を示している。図７の実施形態のブロック７１０に示すように、この方法は、第１のファームウェアプログラマブルコンポーネント、第２のファームウェアプログラマブルコンポーネント、および第３のファームウェアプログラマブルコンポーネントを印刷装置の単一の集積回路に設けることを含む。ブロック７２０に示すように、この方法は、第１のファームウェアプログラマブルコンポーネントに対してサーボ制御ルーチンをプログラミングすることを含む。ブロック７３０に示すように、この方法は、第２のファームウェアプログラマブルコンポーネントに対して測定検出ルーチンをプログラミングすることを含む。ブロック７４０に示すように、この方法は、第３のファームウェアプログラマブルコンポーネントに対して方向制御値および速度制御値を提供することを含む。ブロック７５０に示すように、この方法は、第１のファームウェアプログラマブルコンポーネントからの命令に与えられた優先順位により、第１の集積回路から第２の集積回路へレジスタベースのシリアルバスを通じて命令を調停することをさらに含む。
【００７１】
図８は、シリアルインターフェースにより命令を管理する方法の実施形態を示している。図８の実施形態のブロック８１０に示すように、この方法は、単一の集積回路（ＩＣ）の少なくとも２つの命令スタックをデータ値の読み出しおよび測定ルーチンの管理に専用化することを含む。ブロック８２０に示すように、この方法は、少なくとも２つの命令スタックの１つに与えられた優先順位により、単一のＩＣと別のＩＣのアナログ／デジタル（Ａ／Ｄ）変換器との間で、単一のレジスタベースのシリアルインターフェースによってデータおよび命令を調停することを含む。
【００７２】
図９は、シリアルインターフェースにより命令を管理する方法の実施形態を示している。図９の実施形態のブロック９１０に示すように、この方法は、第１の集積回路（ＩＣ）の少なくとも２つの命令スタックを使用して、読み出されたデータ値を処理するさまざまな測定ルーチンを実行することを含む。ブロック９２０に示すように、この方法は、第１のＩＣと第２のＩＣのアナログ／デジタル（Ａ／Ｄ）変換器との間で、シリアルインターフェースを通じて、少なくとも２つの命令スタックのうち第１の命令スタックの測定ルーチンに与えられた第１優先順位により、さまざまな測定ルーチンに関連したデータおよび命令の転送を調停することを含む。ブロック９３０に示すように、この方法は、読み出された測定データが、少なくとも２つの命令スタックの１つまたは複数ですべて揃うと、プロセッサを要求することを含む。ブロック９４０に示すように、この方法は、プロセッサを使用して、読み出された測定データに対して計算を実行することを含む。ブロック９５０に示すように、この方法は、第１のＩＣの命令キューにコマンド命令を書き込むことをさらに含む。
【００７３】
本明細書では、特定の実施形態を例示して説明してきたが、当業者には、同じ技法を達成するよう意図された任意の機構を、示した特定の実施形態に代用できることが分かる。この開示は、本発明のさまざまな実施形態のありとあらゆる適合または変形をカバーするように意図される。上記説明は、例示で行われており、限定的に行われていないことを理解すべきである。上記実施形態および本明細書では特に説明していない他の実施形態を組み合わせたものは、上記説明を見直すことにより当業者には明らかである。本発明のさまざまな実施形態の範囲は、上記構造および方法が使用される他のあらゆる応用を含む。したがって、本発明のさまざまな実施形態の範囲は、特許請求の範囲を、このような特許請求の範囲が権利を有する均等物の全範囲と共に参照することにより判断されるべきである。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態を実施するように動作できるか、または、本発明の実施形態を含むことができる印刷装置の一実施形態を示す図である。
【図２】従来の印刷装置環境に既存のアーキテクチャを示すシステムの図である。
【図３】命令アーキテクチャの実施形態を示す図である。
【図４】別の命令アーキテクチャの実施形態を示す図である。
【図５】２つの命令スタックを使用して命令を管理する方法の実施形態を示す図である。
【図６】プリンタアーキテクチャを管理する方法の実施形態を示す図である。
【図７】プリンタアーキテクチャを管理する方法の実施形態を示す図である。
【図８】コントローラと連係する方法の実施形態を示す図である。
【図９】コントローラと連係する方法の実施形態を示す図である。
【符号の説明】
【００７５】
３００  命令アーキテクチャ
３０２  第１の集積回路
３０４  第２の集積回路
３０６  シリアルインタフェース
３０８  第１の命令スタック
３１０  第２の命令スタック
３１２  アービタ
３１５  命令キュー
【図１】
2004272913.tif 000003
【図２】
2004272913.tif 000004
【図３】
2004272913.tif 000005
【図４】
2004272913.tif 000006
【図５】
2004272913.tif 000007
【図６】
2004272913.tif 000008
【図７】
2004272913.tif 000009
【図８】
2004272913.tif 000010
【図９】
2004272913.tif 000011