(57)【要約】【課題】  外部モジュールバス上に接続されるＩＣチップの数が多い、或いはモジュール間の距離が長い場合であってもデータ転送を正常に行なうための波形品質を確保することを目的とする。【解決手段】  マスタ・モジュールとスレーブ・モジュール間のデータ信号および制御信号を、それぞれＣｌｏｃｋ信号で同じ回数だけ叩くことにより、データ信号と制御信号の信号プロトコルを維持しながら、前記モジュール間のデータ転送を中継する手段を持つ。【選択図】  図１
2007025880.tif 000002
【特許請求の範囲】
【請求項１】
データ転送のトランザクションを発行するマスタ・モジュールと、
前記マスタ・モジュールが発行したトランザクションに応答するスレーブ・モジュールから構成されるデータ転送方式であって、
前記マスタ・モジュールは、Clock信号に同期してデータ信号と制御信号を送信する手段を持ち、且つ
前記スレーブ・モジュールはClock信号に同期してデータ信号と制御信号を受信する手段を持ち、且つ
前記マスタ・モジュールと前記スレーブ・モジュール間のデータ信号および制御信号を、それぞれフリップフロップのデータ入力端子に入力し、各信号を前記基準となるClock信号でそれぞれ同じ回数だけ叩く手段と、
前記Clock信号をバッファリングする手段と、
を持つことを特徴としたデータ転送方式。
【請求項２】
請求項１に述べたようなデータ転送方式であって、
前記マスタ・モジュールは、転送を開始することを示す転送開始信号を持ち、且つ
前記スレーブ・モジュールは、前記マスタモジュールからの転送を受信可能であることを示す受信可能信号とを持ち、且つ
前記マスタ・モジュールと前記スレーブ・モジュール間のデータ信号および制御信号を、それぞれフリップフロップで同じ回数だけ叩く際に、挿入されたフリップ・フロップの段数に応じて、スレーブ・モジュール側がready信号を返すタイミングを早める手段を持つことを特徴とした前記データ転送方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ・モジュールとスレーブ・モジュール間のデータ信号および制御信号を、それぞれClock信号で同じ回数だけ叩くことにより、データ信号と制御信号の信号プロトコルを維持しながら、前記モジュール間のデータ転送を中継出来る構成を持ったデータ転送方式に関するものである。
【背景技術】
【０００２】
以下に添付図面を参照して、従来例について説明する。
【０００３】
図２は、従来のMFP（マルチ・ファンクション・プリンタ）のコントローラの概要を示すものである。
【０００４】
図２において、２００はコントローラのメインASICであり、ホストコンピュータ２０１から受信した印刷データをビットマップデータに展開してプリンタエンジン２１１に出力する、或いはスキャナ２０３で読み取ったスキャン画像データをプリンタエンジン２１１に出力するなど、コントローラ全体の主要な処理を行う。
【０００５】
２０２はホストI/F部で、ホストコンピュータ２０１との通信を行ない、プリンタ固有の言語で記述された印刷コードデータやイメージデータを受信する。
【０００６】
２０４はスキャナI/F部で、スキャナ２０３から入力されるスキャン画像データを受信するブロックである。
【０００７】
２０６はＲＯＭであり、ＣＰＵ２０５はＲＯＭ２０６に格納されたプログラムをＲＯＭコントローラ２０７を介して読み出し、読み出したプログラムに従ってコントローラ全体の制御を行っている。
【０００８】
２０８はＲＡＭであり、ＣＰＵ２０５が各種処理をする際のワークメモリとして利用したり、あるいは画像データを格納するためのバッファ等として利用される。ＲＡＭ２０８へのアクセスはＲＡＭコントローラ２０９を介して行われる。
【０００９】
２１０はエンジンＩ／Ｆ部で、プリンタエンジン２１１に対して印刷画像データを出力するブロックである。
【００１０】
２１３はコントローラのメインASICの内部バスである。メインASICの内部バス２１３は、バスブリッジ２１２を介して外部モジュールバス２１４と接続され、外部モジュールバス上には画像処理チップ２１５、２１６、２１７、２１８が接続される。
【００１１】
２１５はスキャナ２０３から読み込んだ画像のγ補正を行なうICチップである。
【００１２】
２１６はスキャナ２０３から読み込んだ画像の色空間補正を行なうICチップである。
【００１３】
２１７は画像の変倍を行なうICチップである。
【００１４】
２１８は画像のエッジを滑らかに表現するためのスムージング処理を行なうICチップである。
【００１５】
以上に述べたようなコントローラの構成により、ホストコンピュータから受信した画像データを印刷出力したり、スキャナ２０３でスキャンした画像データを印刷出力したりすることが可能である。
【００１６】
しかしながら従来の技術では、外部モジュールバス上に接続される画像処理用ICチップ２１５〜２１８の数が多い場合やモジュール間の距離が長い場合には、外部モジュールバス２１４の容量性負荷が増え、バス・ブリッジ２１２と外部モジュール間の信号波形が鈍ってしまう。その結果、データ転送を正常に行なうための波形品質確保が困難な場合があった。
【００１７】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開２０００−５９４０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明はこの点に鑑みたもので、外部モジュールバス上に接続される画像処理用ICチップ２１５〜２１８の数が多い、或いはモジュール間の距離が長いなどの理由で、データ転送を正常に行なうための波形品質確保が困難な場合であっても、マスタ・モジュールとスレーブ・モジュール間のデータ信号および制御信号を、それぞれClock信号で同じ回数だけ叩くことにより、データ信号と制御信号の信号プロトコルを維持しながら、前記モジュール間のデータ転送を中継することにより、前記外部モジュール間のデータ転送を正常に行なうことを可能にしたものである。
【課題を解決するための手段】
【００１９】
上記目的を達成する本発明の画像撮影装置は以下に示す構成を備える。即ち、
データ転送のトランザクションを発行するマスタ・モジュールと、
前記マスタ・モジュールが発行したトランザクションに応答するスレーブ・モジュールから構成されるデータ転送方式であって、
前記マスタ・モジュールは、Clock信号に同期してデータ信号と制御信号を送信する手段を持ち、且つ
前記スレーブ・モジュールはClock信号に同期してデータ信号と制御信号を受信する手段を持ち、且つ
前記マスタ・モジュールと前記スレーブ・モジュール間のデータ信号および制御信号を、それぞれフリップフロップのデータ入力端子に入力し、各信号を前記基準となるClock信号でそれぞれ同じ回数だけ叩く手段と、
前記Clock信号をバッファリングする手段と、
を持つことを特徴としたデータ転送方式
を持つ。
【発明の効果】
【００２０】
以上述べたように本発明によれば、各モジュールが基準となるClock信号に同期して片方向にデータ転送するデータバスを持ち、
且つ、モジュールの間のデータ信号および制御信号をそれぞれ前記Clock信号で同じ回数だけ叩くことにより、データ信号と制御信号の信号プロトコルを維持しながら、前記モジュール間のデータ転送を中継する手段を持つことによって、一つのバス上に複数のデバイスが接続されることによる容量性負荷の増大を防ぐと共に、モジュール間の距離が長い場合であっても、バス信号波形の波形品質を保ちながら前記外部モジュール間のデータ転送を正常に行なうことを可能とするものである。
【発明を実施するための最良の形態】
【００２１】
かかる構成において、
外部モジュールバス上に接続されるICチップの数が多い、或いはモジュール間の距離が長いなどの理由で、データ転送を正常に行なうための波形品質確保が困難な場合であっても、
マスタ・モジュールとスレーブ・モジュール間のデータ信号および制御信号を、それぞれClock信号で同じ回数だけ叩くことにより、データ信号と制御信号の信号プロトコルを維持しながら、前記モジュール間のデータ転送を中継することにより、前記外部モジュール間のデータ転送を正常に行なうことを可能にしたものである。
【実施例１】
【００２２】
以下に添付図面を参照して、本発明の好適な実施例について説明する。
【００２３】
図２は、本発明を適用したMFP（マルチ・ファンクション・プリンタ）のコントローラの概要を示すものである。
【００２４】
図１において、２００はコントローラのメインASICであり、ホストコンピュータ２０１から受信した印刷データをビットマップデータに展開してプリンタエンジン２１１に出力する、或いはスキャナ２０３で読み取ったスキャンデータ画像データをプリンタエンジン２１１に出力するなどの様に、コントローラ全体の主要な処理を行う。
【００２５】
２０２はホストI/F部で、ホストコンピュータ２０１との通信を行ない、プリンタ固有の言語で記述された印刷コードデータやイメージデータを受信する。
【００２６】
２０４はスキャナI/F部で、スキャナ２０３から入力されるスキャン画像データを受信するブロックである。
【００２７】
２０６はＲＯＭであり、ＣＰＵ２０５はＲＯＭ２０６に格納されたプログラムをＲＯＭコントローラ２０７を介して読み出し、読み出したプログラムに従ってコントローラ全体の制御を行っている。
【００２８】
２０８はＲＡＭであり、ＣＰＵ２０５が各種処理をする際のワークメモリとして利用したり、あるいは画像データを格納するためのバッファ等として利用される。ＲＡＭ２０８へのアクセスはＲＡＭコントローラ２０９を介して行われる。
【００２９】
２１０はエンジンＩ／Ｆ部で、プリンタエンジン２１１に対して印刷画像データを出力するブロックである。
【００３０】
２１３はコントローラのメインASICの内部バスである。メインASICの内部バス２１３は、外部バスI/F部２１９を介してリングバス２２０、２２１、２２２、２２３と接続され、リングバス上には画像処理チップ２１５、２１６、２１７、２１８が接続される。
【００３１】
２１５はスキャナ２０３から読み込んだ画像のγ補正を行なうICチップである。
【００３２】
２１６はスキャナ２０３から読み込んだ画像の色空間補正を行なうICチップである。
【００３３】
２１７は画像の変倍を行なうICチップである。
【００３４】
２１８は画像のエッジを滑らかに表現するための画像処理を行なうスムージングチップである。
【００３５】
２２４はリングバスを使ってデータ通信を行なうモジュール群である。
【００３６】
以上に述べたようなコントローラの構成により、ホストコンピュータから受信した画像データを印刷出力したり、スキャナ２０３でスキャンした画像データを印刷出力したりすることが可能である。
【００３７】
図３は、図１のリングバス２２０、２２１、２２２、２２３上に接続されるモジュール間の接続について模式的に示した図である。以下、図３を用いてリングバスの構成を詳細を説明する。
【００３８】
図３において、３０１はリングバス上のモジュールにデータを転送する際のマスタ・モジュールであるモジュールＡで、データ転送要求は必ずモジュールＡからの要求により開始される。
【００３９】
３０３、３０５、３０７はリングバスに接続されるスレーブ・モジュール、３０２はモジュールＡからモジュールＢにデータを転送するリングバス、３０４はモジュールＢからモジュールＣにデータを転送するリングバス、３０６はモジュールＣからモジュールＤにデータを転送するリングバス、３００はモジュールＤからモジュールＡにデータを転送するリングバスである。
【００４０】
モジュールＡ，Ｂ，Ｃ，Ｄは、それぞれデータを送信するイニシエータとしての機能と、データを受信するターゲットとしての機能の両方を持っている。
【００４１】
また、同図において、各モジュール間は全て同じ信号Ｉ／Ｆであり、データ転送のタイミング基準となるClock信号、イニシエータからの転送開始を示すstart信号、ターゲット側のデータ受信準備が出来ていることを示すready信号、データを転送する32bitのdata[31:0]信号から構成されている。
【００４２】
次に図４を参照しながら、リング・バスにおけるトランザクションのタイミング波形について説明する。
【００４３】
前述の構成をもったリングバス・システムにおいて、マスタ・モジュールであるモジュールＡから、モジュールＢ、モジュールＣ、モジュールＤのいずれかにアクセスしたい場合、モジュールＡは、モジュールＢからのready信号が‘Ｈ’にアサートされていることを確認（図４の1 Clock目）して、start信号を‘Ｈ’にアサート（図４の2 Clock目）し、データのトランザクションを開始する。
【００４４】
次ぎのClock（図４の3 Clock目）でdata[31:0]に1beatのheader(32bit)を付けて、その後32beat連続でデータを送信する。Targetとなるモジュールは、イニシエータがstart信号をアサートしたことを認識するとready信号をデアサート（図４の4 Clock目）し、次のトランザクションを受けられる準備が出来た時点でターゲットはready信号を再度アサート（図４の8 Clock目）する。
【００４５】
ここでモジュールBの内部ブロック図を図９に示す。
【００４６】
モジュールB５０１は、モジュールAから受信したデータをFIFO９０１に格納し、受信したデータが自分宛てのデータであるか否かを、header[31:0]の内容から判断する。
【００４７】
Headerには、宛先のチップID、および、コマンドかデータかの情報等が含まれている。
【００４８】
モジュールBは、受信したHeader情報内のチップIDが自分のチップIDと一致していれば、続く受信データを画像処理部９０２へと取り込み、画像処理を開始する。
【００４９】
受信したHeader情報内のチップIDが自分のチップIDと一致していない場合は、続く受信データを画像処理部９０２に取り込むこは行なわず、受信したHeaderおよびデータをそのままモジュールC側に送信（転送）する。
【００５０】
以上述べた様に、マスタモジュールであるモジュールAは、データ、或いはコマンドを送りたい相手のチップIDをHeader内に格納してトランザクションを行なうことで、所望のICチップに対してデータの転送、或いは操作指示を行なうことが出来る構成となっている。
【００５１】
図４において、モジュールBは1回目の転送のHeader情報から、それが自分宛てのデータ転送であると判断すると、画像処理部９０２にデータを取り込みつつ、その間、モジュールAに対してready信号をデアサートする。このとき、画像処理部９０２の処理スピードが分っていれば、予め次のデータを受信し、処理を開始できるタイミングも分るため、1回目のデータを受信している最中に、次のデータ受信のためにready信号をアサートすることが可能である。
【００５２】
図９の例では、No Gapで連続して自分宛てのデータ転送を受信することが、画像処理部９０２の処理速度から保証できる構成となっているため、8Clock目でready信号をアサートし、No Gap転送を行なっている。
【００５３】
図４に示す様に、8 Clock目でready信号をアサートした場合、１回目と2回目のトランザクション間の間隔（Gap）が無くなり、最も転送効率が良くなるが、ターゲット側が8 Clock目よりも後でready信号をアサートした場合、１回目と2回目のトランザクションの間に間隔が空くことになり、バスの使用効率が低下する。
【００５４】
ターゲットは、2回目の転送データを確実に受信できる準備が出来た時点でready信号をアサートすれば良いので、例えばready信号を再度アサートするタイミングは、図４の8 Clock目以降だけでなく、8 Clock目よりも前にアサートしても構わない。ターゲットがready信号を8 Clock目よりも前にアサートした場合も、転送間のGapは０である。
【００５５】
以上に説明したようなリング・バスを持ったシステムにおいては、一つのリングバスに対して、伝送線路上にはイニシエータ・モジュールとターゲット・モジュールの２つしか接続されないため、容量性負荷が少なく、また複数のモジュールが接続される場合に比べて信号線の配線長も短くなる。
【００５６】
これにより従来例に比べて、複数モジュールがバスに接続される場合の波形鈍りの問題が発生しにくくなる利点がある。
【００５７】
しかし上記の様な構成を取ったとしても、例えばモジュールＡとモジュールＢが、それぞれ別々のＩＣとして構成されており、且つモジュールＡのＩＣとモジュールＢのＩＣが、物理的距離が離れている場合には、やはり信号配線長が長くなるにつれ信号線の配線容量が増え、信号波形が鈍ってしまう場合がある。
【００５８】
本発明のリング・バスは上記問題点にも鑑みている。
【００５９】
例えばモジュールＡとモジュールＢが、それぞれ別々のＩＣとして構成されている場合で、且つモジュールＡのＩＣとモジュールＢのＩＣの間の物理的距離が離れている場合には、リピータＩＣをモジュールＡとモジュールＢの間に挿入することで、波形鈍りを解決することが出来る構成になっている。
【００６０】
図５に、モジュールＡとモジュールＢの間にリピータＩＣを挿入した場合の接続図を示す。
【００６１】
同図において、モジュールA３０１とモジュールB３０３の間に、リピータIC５０１が挿入されている。
【００６２】
次に、図６にリピータＩＣの内部ブロック図を示す。
【００６３】
図６において、リピータＩＣ内部で入出力信号をフリップ・フロップ６０２、６０３によりそれぞれ1回だけClock信号で叩き、且つClock信号は出力信号に対して、setupマージンとholdマージンを確保出来るように、タイミング調整部６０１によりその位相を調整して出力している。
【００６４】
尚、リピータICを構成する際にIC内部の信号遅延により所望の動作周波数で動作させることが困難な場合には、入力ピンから出力ピンまでの間に、フリップ・フロップ６０２と６０３を追加することで、IC内部の動作周波数を向上させることも可能である。その場合、フリップ・フロップ６０２と６０３の数が同じになるようにすることで、信号のプロトコルを維持することが可能である。
【００６５】
この様な構成を持つリピータICをモジュール間に挿入することで、モジュール間の物理的距離が離れている場合でも、信号波形の鈍りを防ぐことが出来る。
【００６６】
また、モジュール間の物理的距離が非常に長く、１つのリピータICを挿入しても波形の鈍りが防げない場合、複数のリピータICを挿入することで波形の鈍りを改善することも出来る。
【００６７】
次に、モジュールAとモジュールB間にリピータICを挿入した場合のタイミング・チャートを図７に示す。
【００６８】
図７中の（１）は図５におけるモジュールAとリピータIC間、（２）は図５におけるリピータICとモジュールB間を表している。
【００６９】
同図において、モジュールB内部にあるFIFOに、次のトランザクション・データを受信するための充分な空きが確保出来るタイミングが10 clock目であり、そのタイミングでモジュールBはready信号をアサートする。モジュールB内部のFIFOに、10 clock目までに充分な空を確保出来ることは、画像処理部９０２の仕様から保証されているものとする。
【００７０】
図７から分かるように、モジュールA、モジュールBから見れば、リピートICの有無によるトランザクション・プロトコルに変化はなく、設計者は単にモジュールAとモジュールB間の容量性負荷に合わせてリピータIC挿入の必要性を判断すれば良い。
【００７１】
しかしながら、モジュールＡ、モジュールＢは、その間にリピータＩＣ５０１が挿入されたことを認識していないため、リピータＩＣが挿入されない場合と同じ信号プロトコルでデータ通信を行なうと、図７の11,12 clock目において、データ転送間にＧａｐが生じる。これはリピータIC５０１が挿入されたことにより、モジュールAから出力された信号がモジュールBに届くまでと、モジュールBから出力された信号がモジュールAに届くまでに、それぞれ1clockずつ余分に時間が掛かるためである。そしてこのＧａｐは、連続してデータ転送を行なう場合にデータ転送レートの低下となって表れることになる。
【００７２】
先に述べた様に、リピータＩＣ内部に挿入されるフリップ・フロップの段数は1段とは限らず、リピータICが所望の動作周波数を満たせる様に、必要に応じて何段か追加される可能性がある。その様な場合には、連続するデータ転送間のＧａｐも大きくなってしまい、データ転送レートの低下を招くことになる。
【００７３】
そこで本発明では、これまでに述べてきたリピータＩＣを挿入可能なバス構成に加え、リピータＩＣの段数に応じて、ターゲット側がready信号を返すタイミングを早めることが可能な構成になっている。
【００７４】
モジュールＡ、モジュールＢ間にリピータＩＣを挿入した場合に、リピータＩＣ内部に挿入されたフリップ・フロップ段数の情報を、モジュールＢ内部のレジスタに設定し、その値に基づいて、モジュールBはready信号を返すタイミングを変更する。
【００７５】
例えばリピータIC内部のフリップ・フロップが1段である場合、図７において、モジュールBが2clock早く8 clock目でready信号を返すことで、リピータICを挿入しない場合と同じNo Gap連続転送を行なうことが出来る。（図８参照）
同様にリピータIC内部のフリップ・フロップが2段である場合、4clock早く6 clock目でready信号を返すことで、リピータICを挿入しない場合と同じNo Gap連続転送を行なうことが出来る。
【００７６】
以上述べてきたように、リピータICが挿入された場合は、リピータIC内部のフリップ・フロップの段数に応じて、モジュールBが返すready信号の出力タイミングを早めることで、No Gap連続転送を実現するものである。
【図面の簡単な説明】
【００７７】
【図１】本発明を適用したMFPのコントローラ・ブロック図である。
【図２】従来のMFPのコントローラ・ブロック図である。
【図３】リングバスの接続を説明する図である。
【図４】リングバスの信号タイミング図である。
【図５】リピータICを挿入した場合のリングバス接続図である。
【図６】リピータICの内部ブロック図である。
【図７】リピータICを挿入した場合のタイミング図である。
【図８】リピータICを挿入し、且つモジュールBが2clock早くready信号を出力する場合のタイミング図である。
【図９】モジュールBの内部ブロック図である。
【符号の説明】
【００７８】
２００  コントローラのメインASIC
２０１  ホストコンピュータ
２０２  ホストI/F部
２０３  スキャナ
２０４  スキャナI/F部
２０５  CPU
２０６  ROM
２０７  ROMコントローラ
２０８  RAM
２０９  RAMコントローラ
２１０  エンジンI/F部
２１１  プリンタエンジン
２１２  バス・ブリッジ
２１３  ASIC内部バス
２１４  外部モジュール・バス
２１５  入力γ補正チップ
２１６  入力色空間補正チップ
２１７  画像変倍チップ
２１８  スムージング・チップ
２１９  外部バスI/F部（リングバスのマスタ・モジュール）
２２０  リングバス
２２１  リングバス
２２２  リングバス
２２３  リングバス
２２４  リングバス・モジュール群
３００  リングバス
３０１  モジュールA
３０２  リングバス
３０３  モジュールB
３０４  リングバス
３０５  モジュールC
３０６  リングバス
３０７  モジュールD
５０１  リピータIC
５０２  リングバス
６００  リピータIC
６０１  タイミング調整部
６０２  フリップ・フロップ
６０３  フリップ・フロップ
９０１  FIFO
９０２  画像処理部
９０３  セレクタ
【図１】
2007025880.tif 000003
【図２】
2007025880.tif 000004
【図３】
2007025880.tif 000005
【図４】
2007025880.tif 000006
【図５】
2007025880.tif 000007
【図６】
2007025880.tif 000008
【図７】
2007025880.tif 000009
【図８】
2007025880.tif 000010
【図９】
2007025880.tif 000011