(57)【要約】      （修正有）【課題】複数のＩＣチップを備えた構成において１つのＩＣチップから他のＩＣチップのメモリ空間全域にアクセス可能な情報処理装置、及びその情報処理方法を提供する。【解決手段】各ＩＣチップ１０，２０，３０，４０をシステムドメイン１１１，１２１，１３１，１４１と通信ドメイン１１０，１２０，１３０，１４０に分け、システムドメインのアドレスビット幅よりも通信ドメインのアドレスビット幅を大きくする。また、これら２つのドメイン間でのアドレス変換のためにアドレス変換部１１６，１２６，１３６，１４６を設ける。そして、同じように構成した複数のＩＣチップを接続し、通信ドメインに他のＩＣチップのメモリ空間をマッピングする。【選択図】図１
2018106547.tif 000002
【特許請求の範囲】
【請求項１】
複数のＩＣチップを直列接続して、前記複数のＩＣチップによりデータを処理する情報処理装置であって、
前記複数のＩＣチップの少なくとも１つは、
第１のアドレス幅でアドレッシング可能なＣＰＵと、
他のＩＣチップへのアクセスと、他のＩＣチップからのアクセスのために前記第１のアドレス幅でのアドレスと前記第１のアドレス幅より大きい第２のアドレス幅でのアドレスとの間でのアドレス変換を行うアドレス変換手段とを備え、
前記ＣＰＵにより直接制御されるメモリ空間である第１のドメインでのアクセスを前記第１のアドレス幅で行う一方、他のＩＣチップとの通信を行うために用いる第２のドメインでのアクセスを前記第２のアドレス幅で行い、
前記第２のアドレス幅と前記第１のアドレス幅との差は、ｎビットであり、ｎは自然数であり、
前記差により、アクセス先となるＩＣチップが特定されることを特徴とする情報処理装置。
【請求項２】
前記第１のドメインには前記ＣＰＵを備え、
前記第２のドメインにはＤＭＡＣを備え、
前記第１のドメインと前記第２のドメインとの間に、前記アドレス変換手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のアドレス幅を表わすビットの内、上位のｎビットが前記差を表わし、残りのビットが前記第１のアドレス幅のアドレスを表わすことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記アドレス変換手段は、前記上位のｎビットにより前記アクセス先として特定されたなら、前記第２のアドレス幅より前記上位のｎビットを取り除き前記第１のアドレス幅をもつアドレスを前記第１のドメインへと転送することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記複数のＩＣチップは、ＰＣＩ−Ｅｘｐｒｅｓｓにより接続され、
前記複数のＩＣチップの間のデータ転送は、前記ＰＣＩ−Ｅｘｐｒｅｓｓにより前記ＤＭＡＣを介した転送と、前記ＰＣＩ−Ｅｘｐｒｅｓｓにより前記ＣＰＵを介した転送とのうちの少なくともいずれかを含むことを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第２のドメインのメモリ空間には、前記複数のＩＣチップすべての前記第１のドメインのメモリ空間がマッピングされることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第２のドメインのメモリ空間には、前記他のＩＣチップの前記第１のドメインのメモリ空間の一部がマッピングされることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
前記アドレス変換手段は、該アドレス変換手段を含むＩＣチップが異なるＩＣチップの間のデータ転送において中間のＩＣチップとなる場合、該データ転送は前記第２のドメインを用いて行われ、アドレス変換の処理はバイパスされることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記情報処理装置は、インクジェット記録装置であり、
前記複数のＩＣチップのうちの１つのＩＣチップは、前記インクジェット記録装置の全体制御と前記インクジェット記録装置が接続されるホストとの通信のために割当てられ、
前記複数のＩＣチップの残りのＩＣチップは、記録ヘッドを制御して記録を行うためのデータの画像処理のために割当てられることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記残りのＩＣチップは、前記記録ヘッドが吐出するインクの色に対応した色成分データを画像処理するために割当てられることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
複数のＩＣチップを直列接続して、前記複数のＩＣチップによりデータを処理する情報処理装置における情報処理方法であって、
前記複数のＩＣチップの少なくとも１つは、
第１のアドレス幅でアドレッシング可能なＣＰＵと、
他のＩＣチップへのアクセスと、他のＩＣチップからのアクセスのために前記第１のアドレス幅でのアドレスと前記第１のアドレス幅より大きい第２のアドレス幅でのアドレスとの間でのアドレス変換を行うアドレス変換手段とを備え、
前記情報処理方法は、
前記ＣＰＵにより直接制御されるメモリ空間である第１のドメインでのアクセスを前記第１のアドレス幅で行い、
他のＩＣチップとの通信を行うために用いる第２のドメインでのアクセスを前記第２のアドレス幅で行い、
前記第２のアドレス幅と前記第１のアドレス幅との差は、ｎビットであり、ｎは自然数であり、
前記差により、アクセス先となるＩＣチップが特定されることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、及び情報処理方法に関し、特に、複数のＩＣチップを備え、１つのＩＣチップからアドレス変換回路を経由して他のＩＣチップにデータを転送する情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
従来より、あるＩＣチップのメモリ空間の一部の領域を他のＩＣチップのメモリ空間に割り当てて、アクセスするシステムにおいて、アドレス変換を行う構成が知られている（特許文献１、２参照）。特許文献１は、隣接ＩＣチップの所望のメモリアドレスにアクセスするための技術を開示している。また、特許文献２は、３つのＩＣチップが直列に連結された構成において、一端のチップから中央のチップを跨いで他端のチップにアクセスするための技術を開示している。
【０００３】
他のＩＣチップから限られた特定のメモリ空間の範囲にのみアクセスする場合は、上記特許文献に開示するような技術を用いて十分に満足すべき結果が得られていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３３７９０９号公報
【特許文献２】特開２０１３−０８８８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、情報処理装置が画像データを処理する画像処理装置として用いられる場合、あるＩＣチップのメモリから他のチップのメモリに対して大量のデータを転送する必要がある。この場合、他のＩＣチップへのアクセスするためのメモリ空間が不足してしまうことがある。さらに、特許文献２のように、複数のＩＣチップを直列に連結した構成を用いる場合、隣接するＩＣチップとそのＩＣチップを介して接続している別のＩＣチップにアクセスするメモリ空間が使用される。このため、１つのＩＣチップ当たりに割り当てられるメモリ空間がさらに制限されることになる。その結果、メモリ空間が不足して満足のゆくデータ処理性能が得られないことがある。
【０００６】
メモリ空間の不足に対応するためには、例えば、ＩＣチップに３２ビットＣＰＵを内蔵していれば、そのＣＰＵを単純に６４ビットＣＰＵに実装するようにすれば良い。しかしながら、６４ビットＣＰＵを実装することはコストが上昇するという問題がある。
【０００７】
本発明は上記従来例に鑑みてなされたもので、複数のＩＣチップを備えた構成において１つのＩＣチップから他のＩＣチップのメモリ空間全域にアクセス可能な情報処理装置、及びその情報処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の情報処理装置は次のような構成を有する。
【０００９】
即ち、複数のＩＣチップを直列接続して、前記複数のＩＣチップによりデータを処理する情報処理装置であって、前記複数のＩＣチップの少なくとも１つは、第１のアドレス幅でアドレッシング可能なＣＰＵと、他のＩＣチップへのアクセスと、他のＩＣチップからのアクセスのために前記第１のアドレス幅でのアドレスと前記第１のアドレス幅より大きい第２のアドレス幅でのアドレスとの間でのアドレス変換を行うアドレス変換手段とを備え、前記ＣＰＵにより直接制御されるメモリ空間である第１のドメインでのアクセスを前記第１のアドレス幅で行う一方、他のＩＣチップとの通信を行うために用いる第２のドメインでのアクセスを前記第２のアドレス幅で行い、前記第２のアドレス幅と前記第１のアドレス幅との差は、ｎビットであり、ｎは自然数であり、前記差により、アクセス先となるＩＣチップが特定されることを特徴とする。
【発明の効果】
【００１０】
従って本発明によれば、複数のＩＣチップを用いてデータを処理する際に、少ないアドレス幅でアドレッシング可能な安価なＣＰＵを用いても、各ＩＣチップから他のＩＣチップのメモリ空間全域にアクセスすることができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明の代表的な実施例であるインクジェット記録装置の構成を示すブロック図である。
【図２】図１で示した記録装置のＩＣチップで用いるメモリ空間のマッピング例を示す図である。
【図３】アドレス変換部１１６のメモリ空間のマッピング例を示す図である。
【図４】アドレス変換部１２６のメモリ空間のマッピング例を示す図である。
【図５】４つのＩＣチップの初期動作を示すフローチャートである。
【図６】ＤＭＡを用いた２つのＩＣチップ間のデータ転送の例を示す図である。
【図７】ＣＰＵを用いた２つのＩＣチップ間のデータ転送の例を示す図である。
【発明を実施するための形態】
【００１２】
以下添付図面を参照して本発明の好適な実施例について、さらに具体的かつ詳細に説明する。なお、以下の説明では、図面全体を通して、同じ構成要素に対して同じ参照番号を付して言及する。そのため、一度説明した構成要素に対しては同じ参照番号を用いて言及し、その説明を繰り返すことはしない。
【００１３】
なお、この明細書において、「記録」（「プリント」という場合もある）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。さらに人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【００１４】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００１５】
さらに、「インク」（「液体」と言う場合もある）とは、上記「記録（プリント）」の定義と同様広く解釈されるべきものである。従って、記録媒体上に付与されることによって、画像、模様、パターン等の形成または記録媒体の加工、或いはインクの処理（例えば記録媒体に付与されるインク中の色剤の凝固または不溶化）に供され得る液体を表すものとする。
【００１６】
またさらに、「記録素子」とは特にことわらない限りインク吐出口乃至これに連通する液路及びインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【００１７】
図１は本発明の代表的な実施例であるインクジェット記録装置の構成を示すブロック図である。
【００１８】
インクジェット記録装置（以下、記録装置）は、記録媒体を搬送する搬送機構、記録ヘッドを搭載するキャリッジ、そのキャリッジを往復移動させる走査機構、記録ヘッドの吸引回復や予備吐出を行う回復機構などを備える。しかしながら、これらは公知の技術なので、その説明は省略する。また、インク液滴を吐出する記録ヘッドそのものの構成や、その記録ヘッドに実装する素子基板も公知の技術を用いるので、その説明は省略する。
【００１９】
従って、図１は、画像データを生成して記録装置１に送信するホストＰＣ２とのインタフェース処理を行うＩＣチップ１０が図示されている。また、画像データに対して画像処理を実行して記録ヘッド５０に転送する処理を行うＩＣチップ２０〜４０の構成が図示されている。このため、図１に示す構成は画像処理装置としての役割を果たす。
【００２０】
次に、上記のような４つのＩＣチップを実装した記録装置１の内部構成を説明する。
【００２１】
ＩＣチップ１０は、ＲＯＭ１１とＲＡＭ１２とホストインタフェース（Ｉ／Ｆ）１３とＵＩ（ユーザインタフェース）１４と接続している。また、ＩＣチップ２０は、ＲＯＭ２１とＲＡＭ２２とヘッドインタフェース（Ｉ／Ｆ）２３と接続している。ＩＣチップ３０は同様に、ＲＯＭ３１とＲＡＭ３２とヘッドインタフェース（Ｉ／Ｆ）３３と接続している。ＩＣチップ４０も同様に、ＲＯＭ４１とＲＡＭ４２とヘッドインタフェース（Ｉ／Ｆ）４３と接続している。
【００２２】
ホストＩ／Ｆ１３は、ホストＰＣ２との通信を行うインタフェースであり、ＵＩ１４はスイッチやＬＣＤやＬＥＤランプを備えた操作パネルで構成され、ユーザから記録装置に対する指示を受付、ユーザに対して情報を報知する。
【００２３】
記録媒体にインクを吐出して画像を記録する記録ヘッド５０は、３つのヘッドＩ／Ｆ２３、３３、４３を介して、３つのＩＣチップ２０、３０、４０にそれぞれ接続される。ＩＣチップ１０とＩＣチップ２０との間、ＩＣチップ２０とＩＣチップ３０との間、ＩＣチップ３０とＩＣチップ４０との間はそれぞれＰＣＩ−Ｅｘｐｒｅｓｓ（以下、ＰＣＩｅ）により接続される。
【００２４】
ＩＣチップ１０は、ＲＯＭ１１に格納された制御プログラムを読出し、ＲＡＭ１２を作業領域として用いて実行し、ホストＰＣ２とのインタフェース処理に加えて、記録装置全体の制御やＵＩの制御や各種駆動機構の制御等を行う。また、ＲＡＭ１２には、ＰＣ２から転送された画像データを一時的に記憶するために画像メモリが設けられる。
【００２５】
図１から分かるように、ＩＣチップ２０、３０、４０は、夫々に専用のヘッドＩ／Ｆを介して記録ヘッド５０に接続される。ＩＣチップ２０、３０、４０は、記録ヘッドが扱う複数の色のインクに対応して生成される各色成分の画像データを処理するように割当てられる。例えば、記録ヘッド５０が１２色のインクを吐出する構成である場合、ホストＰＣ２から転送された画像データは１２色の色成分データに分解される。例えば、１２色のインクとは、以下の通りである。即ち、
マットブラック（ＭＢＫ）と、フォトブラック（ＰＢＫ）と、シアン（Ｃ）と、
マゼンタ（Ｍ）と、イエロ（Ｙ）と、フォトシアン（ＰＣ）と、
フォトマゼンタ（ＰＭ）と、グレー（ＧＹ）と、フォトグレー（ＰＧＹ）と、
レッド（Ｒ）と、ブルー（Ｂ）と、クロマオプティマイザー（ＣＯ）とである。
【００２６】
これら１２の色成分データの画像処理が、４つの色成分データずつＩＣチップ２０、３０、４０に割当てられる。なお、以上のような色成分データの割当ては一例に過ぎず、記録ヘッドの仕様やＩＣチップの性能により異なる割当てが可能であることは言うまでもない。例えば、記録ヘッドが６色のインク（ブラック、マットブラック、シアン、マゼンタ、イエロ、レッド）に対応している仕様であれば、各ＩＣチップに２つの色成分データを割当てられても良い。また、ＩＣチップ２０を各色成分に共通の画像処理を割当て、ＩＣチップ３０、４０にそれぞれ、６つの色成分データずつの画像処理を割当てるように構成しても良い。
【００２７】
以下、４つのＩＣチップの内部構成について説明するが、この実施例では３２ビットアーキテクチュアのＣＰＵを実装した、同じ構成の４つのＩＣチップを直列接続して用いるものとする。図１に示されているように、４つのＩＣチップ１０、２０、３０、４０はそれぞれ、３４ビットアドレッシング可能な通信ドメイン１１０、１２０、１３０、１４０と、３２ビットアドレッシング可能なシステムドメイン１１１、１２１、１３１、１４１を備える。なお、この実施例では、通信ドメインのアドレス幅はシステムドメインのアドレス幅よりも２ビット大きくなっている。このアドレス幅のサイズについては後述する。なお、この実施例では、通信ドメインのアドレス幅はシステムドメインのアドレス幅より大きく、その差は２ビットであるが、それに限らず、その差がｎビット（ｎは自然数）でも良い。なお、アドレスサイズの観点で言い換えると、通信ドメインのアドレスサイズはシステムドメインのアドレスサイズより大きく、その差はｎビットに対して２n倍のサイズとなる（ｎは自然数）。そして、４つのＩＣチップにはそれぞれ、これら２つのドメインの間を接続するためのアドレス変換部１１６、１２６、１３６、１４６を備える。
【００２８】
ＩＣチップ１０は、通信ドメイン１１０にインターコネクト１１２とＤＭＡＣ１１５とを備え、システムドメイン１１１にインターコネクト１１７と３２ビットＣＰＵ（以下、ＣＰＵ）１１８とＩＣチップ外の機器を接続する内部ブロック１１９を備える。内部ブロック１１９は、ＲＯＭコントローラ、ＲＡＭコントローラ、及び、他の機器とのインタフェースコントローラとしての役割を果たす。また、ＩＣチップ１０は、ＩＣチップ２０との通信を行うＰＣＩｅインタフェース１１３を備える。
【００２９】
通信ドメイン１１０はＰＣＩｅインタフェース１１３やＤＭＡＣ１１５を用いて他のチップとの通信を行うためのドメインである。システムドメイン１１１はＣＰＵ１１８の直接の制御によりＩＣチップ内の制御を行うためのドメインである。アドレス変換部１１６は通信ドメイン１１０とシステムドメイン１１１との間でのアドレス空間のアドレス変換を行う。具体的なアドレス変換方法は後述する。
【００３０】
なお、図１に記載された記号「Ｍ」は「Ｍａｓｔｅｒ」を表し、記号「Ｓ」は「Ｓｌａｖｅ」を表している。「Ｍａｓｔｅｒ」は内部バスの主導権を取り、「Ｓｌａｖｅ」に対してライト／リードアクセスを行う。
【００３１】
ＩＣチップ２０は、通信ドメイン１２０にインターコネクト１２２とＤＭＡＣ１２５とを備え、システムドメイン１２１にインターコネクト１２７とＣＰＵ１２８とＩＣチップ外の機器を接続する内部ブロック１２９を備える。内部ブロック１２９は、ＲＯＭコントローラ、ＲＡＭコントローラ、及び、他の機器とのインタフェースコントローラとしての役割を果たす。また、ＩＣチップ２０は、ＩＣチップ１０との通信を行うＰＣＩｅインタフェース１１３とＩＣチップ３０との通信を行うＰＣＩｅインタフェース１２３とを備える。
【００３２】
同様にＩＣチップ３０は、通信ドメイン１３０にインターコネクト１３２とＤＭＡＣ１３５とを備え、システムドメイン１３１にインターコネクト１３７とＣＰＵ１３８とＩＣチップ外の機器を接続する内部ブロック１３９を備える。内部ブロック１３９は、ＲＯＭコントローラ、ＲＡＭコントローラ、及び、他の機器とのインタフェースコントローラとしての役割を果たす。また、ＩＣチップ３０は、ＩＣチップ２０との通信を行うＰＣＩｅインタフェース１３４とＩＣチップ４０との通信を行うＰＣＩｅインタフェース１３３とを備える。
【００３３】
最後のＩＣチップ４０は、通信ドメイン１４０にインターコネクト１４２とＤＭＡＣ１４５とを備え、システムドメイン１４１にインターコネクト１４７とＣＰＵ１４８とＩＣチップ外の機器を接続する内部ブロック１４９を備える。内部ブロック１４９は、ＲＯＭコントローラ、ＲＡＭコントローラ、及び、他の機器とのインタフェースコントローラとしての役割を果たす。また、ＩＣチップ４０は、ＩＣチップ３０との通信を行うＰＣＩｅインタフェース１４４を備える。
【００３４】
ＰＣＩｅインタフェース１１３、１２３、１３３をＰＣＩｅ（Ｃｈ０）と呼び、ＰＣＩｅインタフェース１２４、１３４、１４４をＰＣＩｅ（Ｃｈ１）と呼んで区別する。
【００３５】
以上のような構成の記録装置において、ＩＣチップ１０がホストＩ／Ｆ１３を介してホストＰＣ２から転送された印刷ジョブを受信すると、ＩＣチップ１０は印刷モード等に従って画像処理を実行する。その後、画像処理が施された画像データがＩＣチップ１０からＩＣチップ２０、ＩＣチップ３０、ＩＣチップ４０に転送される。
【００３６】
ＩＣチップ間で転送される画像データは、印刷モードによってＲＧＢデータである場合やＣＭＹＫデータである場合もある。また、ＩＣチップ２０、３０、４０の間でも、コマンド通信や画像処理後のデータを他の処理に用いる場合はデータ転送を実行することがあり得る。ＩＣチップ２０、３０、４０で処理されたデータは記録ヘッド５０に転送され、記録ヘッド５０は記録媒体へインクを吐出して画像を記録する。
【００３７】
図２は図１で示した記録装置のＩＣチップで用いるメモリ空間のマッピング例を示す図である。図２では各ドメインをメモリ空間の視点で図示している。
【００３８】
まず、ＩＣチップ１０のメモリ空間について説明する。
【００３９】
システムドメイン１１１はＣＰＵ１１８から直接制御できるメモリ空間である。ＣＰＵ１１８は３２ビットＣＰＵであるため０ｘ００００＿００００から０ｘＦＦＦＦ＿ＦＦＦＦまでのアドレス（４ＧＢ空間）にアクセスできる。一方、通信ドメイン１１０は３４ビット空間であり、この空間にあるマスタ（図１におけるＤＭＡＣ１１５）は０ｘ０＿００００＿００００から０ｘ３＿ＦＦＦＦ＿ＦＦＦＦまでのアドレス（１６ＧＢ空間）にアクセスできる。
【００４０】
ＩＣチップ２０、ＩＣチップ３０、ＩＣチップ４０が用いるメモリ空間についても同様である。
【００４１】
ここで、通信ドメイン１１０、１２０、１３０，１４０のメモリ空間のマッピングを説明する。なお、通信方法の詳細については後述する。
【００４２】
アドレス空間２１１、２２１、２３１、２４１はそれぞれ、０ｘ０＿００００＿００００から０ｘ０＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）であって、アドレス空間２１１はＩＣチップ１０のシステムドメイン１１１にマッピングされている。アドレス空間２２１、２３１、２４１はアドレス空間２１１の写像領域であって、通信マスタとなるＤＭＡＣ及びＣＰＵがアドレス空間２２１、２３１、２４１にアクセスすると、そのアクセスはＰＣＩｅを介してアドレス空間２１１に転送される。
【００４３】
アドレス空間２１２、２２２、２３２、２４２はそれぞれ、０ｘ１＿００００＿００００から０ｘ１＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）であって、アドレス空間２２２はＩＣチップ２０のシステムドメイン１２１にマッピングされている。アドレス空間２１２、２３２、２４２はアドレス空間２２２の写像領域であって、通信のマスタとなるＤＭＡＣ及びＣＰＵがアドレス空間２１２、２３２、２４２にアクセスすると、そのアクセスはＰＣＩｅを介してアドレス空間２２２に転送される。
【００４４】
アドレス空間２１３、２２３、２３３、２４３はそれぞれ、０ｘ２＿００００＿００００から０ｘ２＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）であって、アドレス空間２３３はＩＣチップ３０のシステムドメイン１３１にマッピングされている。アドレス空間２１３、２２３、２４３はアドレス空間２３３の写像領域であって、通信のマスタとなるＤＭＡＣ及びＣＰＵがアドレス空間２１３、２２３、２４３にアクセスすると、そのアクセスはＰＣＩｅを介してアドレス空間２３３に転送される。
【００４５】
アドレス空間２１４、２２４、２３４、２４４はそれぞれ、０ｘ３＿００００＿００００から０ｘ３＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）であって、アドレス空間２４４はＩＣチップ４０のシステムドメイン１４１にマッピングされている。アドレス空間２１４、２２４、２３４はアドレス空間２４４の写像領域であって、通信のマスタとなるＤＭＡＣ及びＣＰＵがアドレス空間２１４、２２４、２３４にアクセスすると、そのアクセスはＰＣＩｅを介してアドレス空間２４４に転送される。
【００４６】
次に、４つのアドレス変換部が実行するアドレス変換について説明する。
【００４７】
・アドレス変換部１１６
通信ドメイン１１０からシステムドメイン１１１へのアクセスのアドレス変換は、以下のように実行する。
【００４８】
通信ドメイン１１０のメモリ空間のうち、０ｘ０＿００００＿００００から０ｘ０＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）がシステムドメイン１１１にマッピングされている。この場合、アドレス変換部１１６は、通信ドメイン１１０から受信した転送のアドレス上位２ビット（アクセス先となるＩＣチップ１０を特定する情報）が“０ｘ０”であったならば、このアドレス上位２ビットを取り除きシステムドメイン１１１へ転送する。なお、“０ｘ０”を指定してＩＣチップ２０〜４０からＩＣチップ１０へ送信されるデータの一例としてインクの不吐に関する情報が挙げられる。例えば、ＩＣチップ４０が、あるノズルがインクを吐出できないことを認識した場合、不吐に関する情報にアドレス（上位２ビットに“０ｘ０”）を設定して転送する。アドレス変換部１１６は、この不吐に関する情報に設定された上位２ビットの“０ｘ０”を取り除いて、システムドメインに転送する。その結果、ＩＣチップ１０は、不吐のノズルにより記録できなかった分を補完するためのデータをＩＣチップ４０に対して送信することができる。
【００４９】
・アドレス変換部１２６
通信ドメイン１２０からシステムドメイン１２１へのアクセスのアドレス変換は、以下のように実行する。
【００５０】
通信ドメイン１２０のメモリ空間のうち、０ｘ１＿００００＿００００から０ｘ１＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）がシステムドメイン１２１にマッピングされている。この場合、アドレス変換部１２６は、通信ドメイン１２０から受信した転送のアドレス上位２ビット（アクセス先となるＩＣチップ２０を特定する情報）が“０ｘ１”であったならば、このアドレス上位２ビットを取り除きシステムドメイン１２１へ転送する。
【００５１】
・アドレス変換部１３６
通信ドメイン１３０からシステムドメイン１３１へのアクセスのアドレス変換は、以下のように実行する。
【００５２】
通信ドメイン１３０のメモリ空間のうち、０ｘ２＿００００＿００００から０ｘ２＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）がシステムドメイン１３１にマッピングされている。この場合、アドレス変換部１３６は、通信ドメイン１３０から受信した転送のアドレス上位２ビット（アクセス先となるＩＣチップ３０を特定する情報）が“０ｘ２”であったならば、このアドレス上位２ビットを取り除きシステムドメイン１３１へ転送する。
【００５３】
・アドレス変換部１４６
通信ドメイン１４０からシステムドメイン１４１へのアクセスのアドレス変換は、以下のように実行する。
【００５４】
通信ドメイン１４０のメモリ空間のうち、０ｘ３＿００００＿００００から０ｘ３＿ＦＦＦＦ＿ＦＦＦＦのメモリ空間（４ＧＢ空間）がシステムドメイン１４１にマッピングされている。この場合、アドレス変換部１４６は、通信ドメイン１４０から受信した転送のアドレス上位２ビット（アクセス先となるＩＣチップ４０を特定する情報）が“０ｘ３”であったならば、このアドレス上位２ビットを取り除きシステムドメイン１４１へ転送する。
【００５５】
なお、上述されている通り、ＩＣチップ１０からＩＣチップ２０〜４０に対しては色成分データが送信される。この際、例えば、ＩＣチップ１０が、ＩＣチップ２０に対して色成分データを転送する場合は、色成分データにアドレス（上位２ビットが“０ｘ１”）を設定してデータを転送する。また、ＩＣチップ２０〜４０のいずれかにおいて画像処理が実行される場合、ＩＣチップ２０〜４０間でデータ転送が行われる。例えば、ＩＣチップ４０が画像処理を実行する場合、一部の処理としてＩＣチップ２０の処理が必要である場合、ＩＣチップ４０は、画像処理に関わるデータにアドレス（上位２ビットが“０ｘ１”）を設定してデータを転送する。
【００５６】
図３はアドレス変換部１１６のメモリ空間のマッピング例を示す図である。
【００５７】
ここで、図３を参照して、アドレス変換部１１６が実行するシステムドメイン１１１から通信ドメイン１１０へのアクセスのアドレス変換について説明する。
【００５８】
システムドメイン１１１に示されるように、アドレス変換部１１６はメモリ空間のうち０ｘ８０００＿００００から０ｘ９ＦＦＦ＿ＦＦＦＦ（５１２ＭＢ空間）を確保する。アドレス変換部１１６では、領域３０２（０ｘ８８００＿００００から０ｘ８ＦＦＦ＿ＦＦＦＦ）をＩＣチップ２０の内部ブロックにマッピングする。この場合、変換元のベースアドレス０ｘ８８００＿００００を変換先のベースアドレス０ｘ１＿Ｃ０００＿００００に変換してデータを通信ドメイン１１０へ転送する。従って、ＣＰＵ１１８は、領域３０２へアクセスすることでアドレス空間２１２へアクセスすることができ、図２で説明したメモリ空間を介してＩＣチップ２０のメモリ空間にアクセスすることができる。
【００５９】
また、領域３０３（０ｘ９０００＿００００から０ｘ９７ＦＦ＿ＦＦＦＦ）をＩＣチップ３０の内部ブロックにマッピングする。この場合、変換元のベースアドレス０ｘ９０００＿００００を変換先のベースアドレス０ｘ２＿Ｃ０００＿００００に変換してデータを通信ドメイン１１０へ転送する。従って、ＣＰＵ１１８は領域３０３へアクセスすることでアドレス空間２１３へアクセスすることができ、図２で説明したメモリ空間を介してＩＣチップ３０のメモリ空間にアクセスすることができる。
【００６０】
同様に、領域３０４（０ｘ９８００＿００００から０ｘ９ＦＦＦ＿ＦＦＦＦ）をＩＣチップ４０の内部ブロックにマッピングする。この場合、変換元のベースアドレス０ｘ９８００＿００００を変換先のベースアドレス０ｘ３＿Ｃ０００＿００００に変換してデータを通信ドメイン１１０へ転送する。従って、ＣＰＵ１１８は領域３０４へアクセスすることでアドレス空間２１４へアクセスすることができ、図２で説明したメモリ空間を介してＩＣチップ４０のメモリ空間にアクセスすることができる。
【００６１】
図４はアドレス変換部１２６のメモリ空間のマッピング例を示す図である。
【００６２】
ここで、図４を参照して、アドレス変換部１２６が実行するシステムドメイン１２１から通信ドメイン１２０へのアクセスのアドレス変換の機能について説明する。
【００６３】
システムドメイン１２１に示されるように、アドレス変換部１２６はメモリ空間のうち０ｘ８０００＿００００から０ｘ９ＦＦＦ＿ＦＦＦＦ（５１２ＭＢ空間）を確保する。アドレス変換部１２６では、領域４０１（０ｘ８０００＿００００から０ｘ８７ＦＦ＿ＦＦＦＦ）をＩＣチップ１０の内部ブロックにマッピングする。この場合、変換元のベースアドレス０ｘ８０００＿００００を変換先のベースアドレス０ｘ０＿Ｃ０００＿００００に変換してデータを通信ドメイン１２０へ転送する。ＣＰＵ１２８は領域４０１へアクセスすることでアドレス空間２２１へアクセスすることができ、図２で説明したメモリ空間を介してＩＣチップ１０のメモリ空間にアクセスすることができる。
【００６４】
また、領域４０３（０ｘ９０００＿００００から０ｘ９７ＦＦ＿ＦＦＦＦ）をＩＣチップ３０の内部ブロックにマッピングする。この場合、変換元のベースアドレス０ｘ９０００＿００００を変換先のベースアドレス０ｘ２＿Ｃ０００＿００００に変換してデータを通信ドメイン１１０へ転送する。従って、ＣＰＵ１２８は領域４０３へアクセスすることでアドレス空間２２３へアクセスすることができ、図２で説明したメモリ空間を介してＩＣチップ３０のメモリ空間にアクセスすることができる。
【００６５】
同様に、領域４０４（０ｘ９８００＿００００から０ｘ９ＦＦＦ＿ＦＦＦＦ）をＩＣチップ４０の内部ブロックにマッピングする。この場合、変換元のベースアドレス０ｘ９８００＿００００を変換先のベースアドレス０ｘ３＿Ｃ０００＿００００に変換してデータを通信ドメイン１１０へ転送する。従って、ＣＰＵ１２８は領域４０４へアクセスすることでアドレス空間２２４へアクセスすることができ、図２で説明したメモリ空間を介してＩＣチップ４０のメモリ空間にアクセスすることができる。
【００６６】
アドレス変換部１３６、アドレス変換部１４６についても同様の機能を備える。
【００６７】
図５は４つのＩＣチップの初期動作を示すフローチャートである。
【００６８】
・ＩＣチップ１０の制御フロー
電源が投入されると、ステップＳ５１１では、ＣＰＵ１１８のリセットを解除する。次に、ステップＳ５１２では、ＣＰＵ１１８はＲＯＭ１１から制御プログラムを読出し、ＩＣチップ１０を初期化する。さらに、ステップＳ５１３では、アドレス変換部１１６の初期設定を行う。ここでは、図３を参照して説明したアドレス変換が可能なように設定を行う。
【００６９】
ステップＳ５１４では、ＣＰＵ１１８は、ＰＣＩｅ（Ｃｈ０）１１３のスレーブポートのアドレス設定を行う。ここでは、図２を参照して説明したアドレス空間２１２、２１３、２１４へのアクセスがあった場合、ＣＰＵ１１８は、そのアクセスをＩＣチップ２０に転送する設定を行う。上述したように図３にて説明したアドレス変換が可能なようにＳ５１３の初期設定が行われているため、アドレス空間２１２、２１３、２１４へのアクセスがあった場合、ＣＰＵ１１８は、そのアクセスをＩＣチップ２０に転送できる。さらにステップＳ５１６では、ＣＰＵ１１８は、ＰＣＩｅ（Ｃｈ０）１１３のリンク・トレーニングを開始し、ステップＳ５１７では、リンク・トレーニングの完了を待ち合わせる。そして、リンク・トレーニングが完了し、ＰＣＩｅ（Ｃｈ０）１１３の接続完了が確認されたなら、ステップＳ５１８において、ＣＰＵ１１８は、ＩＣチップ２０のＰＣＩｅ（Ｃｈ１）１２４を設定する。
【００７０】
・ＩＣチップ２０の制御フロー
電源が投入されると、ステップＳ５２１では、ＣＰＵ１２８のリセットを解除する。次に、ステップＳ５２２では、ＣＰＵ１２８はＲＯＭ２１から制御プログラムを読出し、ＩＣチップ２０を初期化する。さらに、ステップＳ５２３では、アドレス変換部１２６の初期設定を行う。ここでは、図４を参照して説明したアドレス変換が可能なように設定を行う。
【００７１】
ステップＳ５２４では、ＣＰＵ１２８は、ＰＣＩｅ（Ｃｈ０）１２３のスレーブポートのアドレス設定を行う。ここでは、図２を参照して説明したアドレス空間２２３、２２４へのアクセスがあった場合、ＣＰＵ１２８は、そのアクセスをＩＣチップ３０に転送する設定を行う。さらにステップＳ５２５では、ＣＰＵ１２８は、ＰＣＩｅ（Ｃｈ１）１２４のスレーブポートのアドレス設定を行う。ここでは、図２を参照して説明したアドレス空間２２１へのアクセスがあった場合、ＣＰＵ１２８は、そのアクセスをＩＣチップ１０に転送する設定を行う。ステップＳ５２６では、ＣＰＵ１２８は、ＰＣＩｅ（Ｃｈ０）１２３のリンク・トレーニングを開始し、ステップＳ５２７では、リンク・トレーニングの完了を待ち合わせる。そして、リンク・トレーニングが完了し、接続完了が確認されたなら、ステップＳ５２８において、ＣＰＵ１２８は、ＩＣチップ３０のＰＣＩｅ（Ｃｈ１）１３４を設定する。
【００７２】
・ＩＣチップ３０の制御フロー
電源が投入されると、ステップＳ５３１では、ＣＰＵ１３８のリセットを解除する。次に、ステップＳ５３２では、ＣＰＵ１３８はＲＯＭ３１から制御プログラムを読出し、ＩＣチップ３０の初期化を行う。さらに、ステップＳ５３３では、アドレス変換部１３６の設定を行う。ここでは、図４を参照して説明したアドレス変換と同様なことが可能なように設定を行う。
【００７３】
ステップＳ５３４では、ＣＰＵ１３８は、ＰＣＩｅ（Ｃｈ０）１３３のスレーブポートのアドレス設定を行う。ここでは、図２を参照して説明したアドレス空間２３４へのアクセスがあった場合、そのアクセスをＩＣチップ４０に転送する設定を行う。さらにステップＳ５３５では、ＣＰＵ１３８は、ＰＣＩｅ（Ｃｈ１）１３４のスレーブポートのアドレス設定を行う。ここでは、図２を参照して説明したアドレス空間２３１、２３２へのアクセスがあった場合、ＣＰＵ１３８は、そのアクセスをＩＣチップ２０に転送する設定を行う。ステップＳ５３６では、ＣＰＵ１３８は、ＰＣＩｅ（Ｃｈ０）１３３のリンク・トレーニングを開始し、ステップＳ５３７では、リンク・トレーニングの完了を待ち合わせる。そして、リンク・トレーニングが完了し、接続完了が確認されたなら、ステップＳ５３８において、ＣＰＵ１３８は、ＩＣチップ４０のＰＣＩｅ（Ｃｈ１）１４４を設定する。
【００７４】
・ＩＣチップ４０の制御フロー
電源が投入されると、ステップＳ５４１では、ＣＰＵ１４８のリセットを解除する。次に、ステップＳ５４２では、ＣＰＵ１４８はＲＯＭ４１から制御プログラムを読出し、ＩＣチップ４０の初期化を行う。さらに、ステップＳ５４３では、アドレス変換部１４６の設定を行う。ここでは、図４を参照して説明したアドレス変換と同様なことが可能なように設定を行う。
【００７５】
ステップＳ５４５では、ＣＰＵ１４８は、ＰＣＩｅ（Ｃｈ１）１４４のスレーブポートのアドレス設定を行う。ここでは、図２を参照して説明したようにアドレス空間２４１、２４２、２４３へのアクセスがあった場合、そのアクセスをＩＣチップ３０に転送する設定を行う。
【００７６】
以上の処理を実行し、４つのＩＣチップを通信可能となれば、図２に示したメモリマップで他のＩＣチップへのデータ転送が可能になる。
【００７７】
次に、４つのＩＣチップが通信可能となった状態でのＤＭＡを用いたデータ転送について説明する。
【００７８】
図６はＤＭＡを用いた２つのＩＣチップ間のデータ転送の例を示す図である。
【００７９】
図６におけるメモリマップは図２と同様であり、図６には、ＩＣチップ１０に接続したＲＡＭ１２の０ｘ２０００＿００００から、ＩＣチップ３０に接続したＲＡＭ３２の０ｘ１０００＿００００にＤＭＡ転送を行う例が図示されている。
【００８０】
ＩＣチップ１０のＣＰＵ１１８がＤＭＡＣ１１５に転送元アドレスと転送先アドレスとデータ長を設定することでＤＭＡ転送を実行する。この例では、ＩＣチップ１０のシステムドメイン１１１にマッピングされた領域のうちＲＡＭのアドレス０ｘ０＿２０００＿００００を転送元アドレスとする。また、ＩＣチップ３０のシステムドメイン１３１にマッピングされた領域のうちＲＡＭに該当するアドレス０ｘ２＿１０００＿００００を転送先アドレスとする。その他、所定の転送長等の指定をしてＤＭＡ転送を実行する。
【００８１】
ＤＭＡ転送の実行が開始すると、ＤＭＡＣ１１５は転送元アドレスにリード・トランザクションを発行する。アドレス変換部１１６はリード・トランザクションを受信すると、アドレスの上位２ビットを取り除きシステムドメイン１１１にリード・トランザクションを発行する。アドレス変換部１１６は所定のアドレスからリードデータを読み出すと、ＤＭＡＣ１１５にリードデータを返す。
【００８２】
ＤＭＡＣ１１５は読出したデータを転送先アドレスにライト・トランザクションを発行する。通信ドメイン１１０のアドレス空間２１３にライト・トランザクションを発行すると、ＰＣＩｅを介してＩＣチップ３０の通信ドメイン１３０のアドレス空間２３３にデータが転送される。アドレス空間２３３に転送されたデータはアドレス変換部１３６に転送される。アドレス変換部１３６ではアドレス上位２ビットを取り除いてシステムドメイン１３１にそのデータを転送し、所定の場所に書込まれる。
【００８３】
上記の例では１つのＩＣチップ（ＩＣチップ１０）から他のＩＣチップ（ＩＣチップ３０）にデータを転送する方法を示したが、同様に逆方向に他のＩＣチップから自ＩＣチップにデータを転送することもＤＭＡＣの転送元、転送先の設定により可能である。
【００８４】
さらに、４つのＩＣチップが通信可能となった状態でのＣＰＵを用いたデータ転送について説明する。
【００８５】
図７はＣＰＵを用いた２つのＩＣチップ間のデータ転送の例を示す図である。
【００８６】
図７において、メモリマップは図２と図３とに示したものと同様であり、図７には、ＩＣチップ１０のＣＰＵ１１８からＩＣチップ３０の内部ブロック１３９にライト転送を行う例が図示されている。転送先アドレスは０ｘＣ０００＿１０００とする。
【００８７】
ＩＣチップ１０のＣＰＵ１１８は、図３で説明したＩＣチップ３０の内部ブロック１３９にマッピングされた領域３０３にライト・トランザクションを発行する。転送アドレスは０ｘＣ０００＿００００をベースアドレスとして０ｘ９０００＿００００からのオフセットを指定する。この例の場合、０ｘＣ０００＿１０００にアクセスしようとしているので、０ｘ９０００＿１０００にアクセスする。
【００８８】
アドレス変換部１１６はライト・トランザクションを受信すると、０ｘ９０００＿１０００を０ｘ２＿Ｃ０００＿１０００に変換して通信ドメイン１１０にライト・トランザクションを発行する。通信ドメイン１１０のアドレス空間２１３にライト・トランザクションを発行すると、ＰＣＩｅを介してＩＣチップ３０の通信ドメイン１３０のアドレス空間２３３に転送される。アドレス空間２３３に転送されたデータはアドレス変換部１３６に転送される。アドレス変換部１３６ではアドレス上位２ビットを取り除いてシステムドメイン１３１に転送し、内部ブロックの０ｘＣ０００＿１０００にライトされる。
【００８９】
上記の例では１つのＩＣチップ（ＩＣチップ１０）から他のＩＣチップ（ＩＣチップ３０）にライト・トランザクションを発行する例を示したが、同様に逆方向のリード・トランザクションも可能である。
【００９０】
以上説明した実施例に従えば、システムを構成する複数のＩＣチップは互いのメモリ空間の全領域にアクセスすることができる。このため、大容量のメモリを用いる際にも高機能で高コストの６４ビットＣＰＵを使用せずに、安価な３２ビットＣＰＵを使用することが可能なので、装置全体のコストを抑えることができる。
【００９１】
更に以上説明した実施例では、アドレス変換部がシステムドメインと通信ドメインの間に設けられているため、あるＩＣチップから他のＩＣチップへのアクセスにおいて、中間のＩＣチップを通過するアクセスがそのアドレス変換部を通過しない。言い換えると、中間のＩＣチップのアドレス変換部はデータ転送においてバイパスされる。仮にＩＣチップを通過するアクセス途中にアドレス変換部が存在していると、各ＩＣチップのシステムドメインの都合で設定を変えることができない。しかし、この構成であれば各ＩＣチップのシステムドメインの都合でアドレス変換部の設定を変更可能であるので、柔軟にシステムを構築することができるという利点がある。
【００９２】
また以上説明した実施例では、４つのＩＣチップのメモリ空間全体にアクセス可能なように、使用する３２ビットＣＰＵに対応してシステムドメインのアドレス幅が３２ビットであるのに対し、通信ドメインのアドレス幅を３４ビットとした。これによって、通信ドメインのアドレス空間では２ビットを４つのＩＣチップを識別可能な情報として用いることができ、その結果、各ＩＣチップが他のＩＣチップのシステムドメインのメモリ空間に対してアクセス可能となる。
【００９３】
なお、以上説明した実施例では、ＩＣチップの数を“４”、システムドメインのアドレス幅を３２ビット、通信ドメインのアドレス幅を３４ビットとしたが、本発明はこれによって限定されるものではない。システムドメインと通信ドメインのアドレス幅の差が、２nビットであり、ｎが自然数である条件を満たすなら、ＩＣチップの数は“４”である必要はない。例えば、３２ビットＣＰＵを使用する場合でも、ｎ＝３であれば、通信ドメインのアドレス幅を３５ビット、ＩＣチップの数を“８”としたり、ｎ＝４であれば、通信ドメインのアドレス幅を３６ビット、ＩＣチップの数を“１６”とすることもできる。
【００９４】
８つのＩＣチップを用いる場合、例えば、１つのＩＣチップを記録装置の全体制御とホストＰＣとの通信に割当て、別の１つのＩＣチップを色共通の画像処理のために割当て、残りの６つを各色成分データの画像処理専用のチップとして割当てることができる。ここで、インク色の数が１２なら各ＩＣチップに２つの色成分データの処理を割当て、インク色の数が６なら各ＩＣチップに１つの色成分データの処理を割当てることができる。
【００９５】
さらに、例えば、通信ドメインのアドレス幅を標準的な６４ビットとしてもよい。またさらに、アドレス幅ビットをそれより小さくしつつも、ＩＣチップの一部、例えば、メモリ空間の半分だけでもマッピング可能にしても良い。その場合、他のＩＣチップのメモリ空間全体にアクセスできなくとも、アクセス可能なメモリ空間の範囲を広げることができる。
【００９６】
またさらに、以上説明した実施例では、全てのＩＣチップが通信ドメインとシステムドメインを備えるとしたが、本発明はこれによって限定されるものではない。例えば、ＩＣチップを直列接続して構成するシステムである場合に、両端を除く、データを中継するＩＣチップのみが上記の構成をとるようにしても良い。例えば３つのＩＣチップＡ、Ｂ、Ｃが直列接続されたシステムを想定する。このシステムにおいて、左端のＩＣチップＡが６４ビットＣＰＵで、右端のＩＣチップＣが３２ビット幅のアドレス空間しか持たないチップであったとする。しかしながら、この状況であっても、ＩＣチップＡとＣの間にあるＩＣチップＣが本実施形態の構成を備えており、かつ、ＩＣチップＡのメモリ空間内に４ＧＢ×２の空間を確保すれば、ＩＣチップＡはＩＣチップＢ−Ｃの全てのメモリ空間をマッピングできる。つまり、複数のＩＣチップの内、少なくとも１つがこの実施例で説明した構成であれば良い。
【００９７】
またさらに、以上説明した実施例では記録装置を例として挙げたが、本発明を適用可能な装置は記録装置に限定されるものではない。例えば、パソコン等の情報処理装置やサーバ装置などデータ転送が必要な機器に、上記のような通信制御を行う構成が用いられているなら、本発明は適用可能である。
【符号の説明】
【００９８】
１  記録装置（画像処理装置）、２  ホストＰＣ、
１０、２０、３０、４０  ＩＣチップ、１１、２１、３１、４１  ＲＯＭ、
１２、２２、３２、４２  ＲＡＭ
【図１】
2018106547.tif 000003
【図２】
2018106547.tif 000004
【図３】
2018106547.tif 000005
【図４】
2018106547.tif 000006
【図５】
2018106547.tif 000007
【図６】
2018106547.tif 000008
【図７】
2018106547.tif 000009