(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-10
(45)【発行日】2024-01-18
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 12/02 20060101AFI20240111BHJP
G06F 13/14 20060101ALI20240111BHJP
G06F 13/28 20060101ALI20240111BHJP
G06F 15/173 20060101ALI20240111BHJP
【FI】
G06F12/02 570M
G06F12/02 510A
G06F13/14 320D
G06F13/28 310N
G06F15/173 665F
(21)【出願番号】P 2020045606
(22)【出願日】2020-03-16
【審査請求日】2023-03-03
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】久我 剛
【審査官】松平 英
(56)【参考文献】
【文献】特開2018-106547(JP,A)
【文献】特開2016-224700(JP,A)
【文献】特開2014-16749(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00-12/128
13/00-13/42
15/16-15/177
(57)【特許請求の範囲】
【請求項1】
直列接続された複数のICチップを含む情報処理装置であって、
前記複数のICチップのうち少なくとも1つの対象ICチップは、
第1のアドレス幅でアクセス可能なメモリ空間と、
前記メモリ空間の内にあり前記第1のアドレス幅より小さい第2のアドレス幅でアクセス可能な範囲で処理を行うCPUと、
アドレス変換機能を有し前記直列接続された複数のICチップのうち一方のICチップと通信を行う第1通信手段と、
アドレス変換機能を有し前記一方のICチップとは反対方向のICチップと通信を行う第2通信手段を備え、
前記第1通信手段を介して前記一方のICチップにアクセスするための第1の領域および前記第2通信手段を介して前記反対方向のICチップにアクセスするための第2の領域が前記メモリ空間に含まれ前記対象ICチップに含まれるCPUは、
前記メモリ空間の内にある前記第2のアドレス幅でアクセス可能な範囲を使って前記第1通信手段または前記第2通信手段にアクセスし、
前記CPUが前記第1通信手段にアクセスした場合、前記第1通信手段の前記アドレス変換機能によって前記第1通信手段へのアクセスに使用された第1アドレス値が、前記第1のアドレス幅の前記メモリ空間の前記第1の領域に対応する第2アドレス値に変換され、
前記第2アドレス値により特定される前記一方のICチップへのアクセスが実行され、
前記CPUが前記第2通信手段にアクセスした場合、前記第2通信手段の前記アドレス変換機能によって前記第2通信手段へのアクセスに使用された第3アドレス値が、前記第1のアドレス幅の前記メモリ空間の前記第2の領域に対応する第4アドレス値に変換され、
前記第4アドレス値により特定される前記反対方向のICチップへのアクセスが実行され、
前記対象ICチップに含まれる前記第1通信手段および第2通信手段のうちのいずれかの通信手段が他のチップから特定されたアドレス値でアクセスを受け付け、かつ、前記特定されたアドレス値が所定の範囲に含まれる場合、前記他のチップからのアクセスが前記対象ICチップへのアクセスとして処理され、
前記対象ICチップに含まれる前記第1通信手段および第2通信手段のうちのいずれかの通信手段が他のチップから特定されたアドレス値でアクセスを受け付け、かつ、前記特定されたアドレス値が所定の範囲に含まれない場合、前記第1通信手段が受け付けた前記他のチップからのアクセスは前記第2通信手段に転送され、前記第2通信手段が受け付けた前記他のチップからのアクセスは前記第1通信手段に転送されることを特徴とする情報処理装置。
【請求項2】
前記対象ICチップのメモリ空間にアクセスする場合のアドレス値は、前記対象ICチップを特定する予め定められた第1の数の上位ビットと前記対象ICチップの前記第2のアドレス幅でアクセス可能な範囲を特定する予め定められた第2の数の下位ビットとにより構成されることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記対象ICチップのメモリ空間のアクセスに使用されたアドレス値において、前記第1の数の上位ビットを削除し、前記対象ICチップの前記第2のアドレス幅でアクセス可能な範囲を特定する予め定められた第2の数の下位ビットを取り出すアドレス変換がなされることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記複数のICチップそれぞれは、さらにプログラムを格納するROMを備え、
前記情報処理装置の電源がONされた場合、前記複数のICチップは、それぞれが備えるROMからプログラムを読出して初期化を行うことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記複数のICチップのうちの1つのICチップは、プログラムを格納するROMを備え、
前記情報処理装置の電源がONされた場合、前記1つのICチップは前記ROMからプログラムを読出して初期化を行い、該初期化の後、前記プログラムを他のICチップに転送して該転送されたプログラムにより前記他のICチップは初期化を行うことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記複数のICチップそれぞれにはDMACをさらに備えることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記複数のICチップは、PCI-Expressにより接続され、
前記複数のICチップの間のデータ転送は、前記PCI-Expressにより前記DMACを介した転送と、前記PCI-Expressにより前記CPUを介した転送とのうちの少なくともいずれかを含むことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記情報処理装置は、インクジェット記録装置であり、
前記複数のICチップのうちの1つのICチップは、前記インクジェット記録装置の全体の制御と前記インクジェット記録装置が接続されるホストとの通信のために割当てられ、
前記複数のICチップの残りのICチップは、記録ヘッドを制御して記録を行うためのデータの画像処理のために割当てられることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記残りのICチップは、前記記録ヘッドが吐出するインクの色に対応した色成分データを画像処理するために割当てられることを特徴とする請求項8に記載の情報処理装置。
【請求項10】
直列接続された複数のICチップを含む情報処理装置であって、
前記複数のICチップのうち少なくとも1つの対象ICチップは、
第1のアドレス幅でアクセス可能なメモリ空間と、
前記メモリ空間の内にあり前記第1のアドレス幅より小さい第2のアドレス幅でアクセス可能な範囲で処理を行うCPUと、
アドレス変換機能を有し前記直列接続された複数のICチップのうち一方のICチップと通信を行う第1通信手段と、
アドレス変換機能を有し前記一方のICチップとは反対方向のICチップと通信を行う第2通信手段とを備え、
前記第1通信手段を介して前記一方のICチップにアクセスするための第1の領域および前記第2通信手段を介して前記反対方向のICチップにアクセスするための第2の領域が前記メモリ空間に含まれ前記対象ICチップに含まれるCPUは、
前記メモリ空間の内にある前記第2のアドレス幅でアクセス可能な範囲を使って前記第1通信手段または前記第2通信手段にアクセスし、
前記CPUが前記第1通信手段にアクセスした場合、前記第1通信手段の前記アドレス変換機能によって前記第1通信手段へのアクセスに使用された第1アドレス値が、前記第1のアドレス幅の前記メモリ空間の前記第1の領域に対応する第2アドレス値に変換され、
前記第2アドレス値により特定される前記一方のICチップへのアクセスが実行され、
前記CPUが前記第2通信手段にアクセスした場合、前記第2通信手段の前記アドレス変換機能によって前記第2通信手段へのアクセスに使用された第3アドレス値が、前記第1のアドレス幅の前記メモリ空間の前記第2の領域に対応する第4アドレス値に変換され、
前記第4アドレス値により特定される前記反対方向のICチップへのアクセスが実行されることを特徴とする情報処理装置。
【請求項11】
直列接続された複数のICチップを含む情報処理装置であって、
前記複数のICチップのうち少なくとも1つの対象ICチップは、
第1のアドレス幅でアクセス可能なメモリ空間と、
前記メモリ空間の内にあり前記第1のアドレス幅より小さい第2のアドレス幅でアクセス可能な範囲で処理を行うCPUと、
アドレス変換機能を有し前記直列接続された複数のICチップのうち一方のICチップと通信を行う第1通信手段と、
アドレス変換機能を有し前記一方のICチップとは反対方向のICチップと通信を行う第2通信手段を備え、
前記第1通信手段を介して前記一方のICチップにアクセスするための第1の領域および前記第2通信手段を介して前記反対方向のICチップにアクセスするための第2の領域が前記メモリ空間に含まれ前記対象ICチップに含まれるCPUは、
前記メモリ空間の内にある前記第2のアドレス幅でアクセス可能な範囲を使って前記第1通信手段または前記第2通信手段にアクセスし、
前記対象ICチップに含まれる前記第1通信手段が前記一方のICチップから前記第1の領域内の特定されたアドレス値でアクセスを受け付け、かつ、前記特定されたアドレス値が所定の範囲に含まれる場合、前記一方のICチップからのアクセスが前記対象ICチップへのアクセスとして処理され、
前記対象ICチップに含まれる前記第1通信手段が前記一方のICチップから前記第1の領域内の特定されたアドレス値でアクセスを受け付け、かつ、前記特定されたアドレス値が所定の範囲に含まれない場合、前記第1通信手段が受け付けたアクセスは前記第2通信手段に転送され、
前記対象ICチップに含まれる前記第2通信手段が前記反対方向のICチップから前記第2の領域内の特定されたアドレス値でアクセスを受け付け、かつ、前記特定されたアドレス値が所定の範囲に含まれる場合、前記反対方向のICチップからのアクセスが前記対象ICチップへのアクセスとして処理され、
前記対象ICチップに含まれる前記第2通信手段が前記反対方向のICチップから前記第2の領域内の特定されたアドレス値でアクセスを受け付け、かつ、前記特定されたアドレス値が所定の範囲に含まれない場合、前記第2通信手段が受け付けたアクセスは前記第1通信手段に転送されることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置に関し、特に、複数のICチップを備え、1つのICチップから他のICチップのメモリにアクセスする情報処理装置に関する。
【背景技術】
【0002】
従来より、ある1つのICチップから他のICチップのメモリ空間全域にアクセス可能な方法が提案されていた(特許文献1参照)。特許文献1で提案された方法では、システムドメインと通信ドメインとの間のアドレス幅のバスサイジングを行うとともにアドレス変換を行うアドレス変換部を備えている。また、PCI-Express(以下PCIe)のアドレス変換を併せて用いることで、他のICチップのメモリ空間全域にアクセスすることを可能にしている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら上記従来例では、システムドメインと通信ドメインをつなぐアドレス変換部が必要であり、さらに、他のICチップにアクセス可能にするためには特許文献1に記載されているようにアドレス変換部の初期設定が必要となる。
【0005】
本発明は上記従来例に鑑みてなされたもので、複数のICチップを備えた構成において簡単な構成で1つのICチップから他のICチップのメモリ空間全域にアクセス可能な情報処理装置を提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するために本発明の情報処理装置は次のような構成を有する。
【0007】
即ち、複数のICチップを直列接続して、前記複数のICチップによりデータを処理する情報処理装置であって、前記複数のICチップそれぞれは、第1のアドレス幅でアドレッシング可能な第1のメモリ空間で処理を行うCPUと、前記第1のアドレス幅より大きい第2のアドレス幅でのアドレッシング可能な第2のメモリ空間で他のICチップと通信を行う通信手段とを備え、前記複数のICチップそれぞれのCPUは、前記第1のメモリ空間により当該ICチップのメモリ空間にアクセスし、前記複数のICチップそれぞれは、前記第2のメモリ空間に前記他のICチップにアクセスするための第1の領域と前記他のICチップからアクセスされるための第2の領域とを設定し、前記第2の領域から前記第1のメモリ空間へのアドレス変換を行う設定をし、前記複数のICチップそれぞれは、前記通信手段を用いて前記他のICチップのうち対象チップのメモリ空間に対して、該設定された第1の領域と前記対象チップに設定された前記第2の領域から前記対象チップの前記第1のメモリ空間へのアドレス変換を介してアクセスし、前記複数のICチップそれぞれは、前記他のICチップの通信手段を介して当該ICチップのメモリ空間へのアクセスを前記第2の領域から前記第1のメモリ空間へのアドレス変換を介して行わせることを特徴とする。
【発明の効果】
【0008】
従って本発明によれば、簡単な構成でありながら1つのICチップから他のICチップのメモリ空間全域にアクセスすることができるという効果がある。
【図面の簡単な説明】
【0009】
【
図1】本発明の代表的な実施例であるインクジェット記録装置の構成を示すブロック図である。
【
図2】
図1で示した記録装置のICチップで用いるメモリ空間のマッピング例を示す図である。
【
図3】4つのICチップのメモリ空間のマッピングを示す図である。
【
図4】実施例1に従うダウンストリームのメモリ空間マッピング例を示した図である。
【
図5】実施例1に従う1つのICチップのCPUから他のICチップのメモリ空間へのアクセス方法を示す図である。
【
図6】実施例1に従うアップストリームのメモリ空間マッピング例を示した図である。
【
図7】実施例1に従う記録装置の起動時に実行するメモリ空間設定処理を示すフローチャートである。
【
図8】実施例2に従うダウンストリームのメモリ空間マッピング例を示した図である。
【
図9】実施例2に従うアップストリームのメモリ空間マッピング例を示した図である。
【
図10】実施例3に従うインクジェット記録装置の構成を示すブロック図である。
【
図11】実施例3に従う記録装置の起動時に実行するメモリ空間設定処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下添付図面を参照して本発明の好適な実施形態について、さらに具体的かつ詳細に説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には、複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられても良い。さらに添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
なお、この明細書において、「記録」(「プリント」という場合もある)とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。さらに人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【0012】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【0013】
さらに、「インク」(「液体」と言う場合もある)とは、上記「記録(プリント)」の定義と同様広く解釈されるべきものである。従って、記録媒体上に付与されることによって、画像、模様、パターン等の形成または記録媒体の加工、或いはインクの処理(例えば記録媒体に付与されるインク中の色剤の凝固または不溶化)に供され得る液体を表すものとする。
【0014】
またさらに、「記録素子」とは特にことわらない限りインク吐出口乃至これに連通する液路及びインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【0015】
図1は本発明の代表的な実施例であるインクジェット記録装置の構成を示すブロック図である。
【0016】
インクジェット記録装置(以下、記録装置)は、記録媒体を搬送する搬送機構、記録ヘッドを搭載するキャリッジ、そのキャリッジを往復移動させる走査機構、記録ヘッドの吸引回復や予備吐出を行う回復機構などを備える。しかしながら、これらは公知の技術なので、その説明は省略する。また、インク液滴を吐出する記録ヘッドそのものの構成や、その記録ヘッドに実装する素子基板も公知の技術を用いるので、その説明は省略する。
【0017】
従って、
図1は、画像データを生成して記録装置1に送信するホストPC2とのインタフェース処理を行うICチップ10が図示されている。また、画像データに対して画像処理を実行して記録ヘッド50に転送する処理を行うICチップ20~40の構成が図示されている。このため、
図1に示す構成は画像処理装置としての役割を果たす。
【0018】
次に、上記のような4つのICチップを実装した記録装置1の内部構成を説明する。
【0019】
ICチップ10は、ROM11とRAM12とホストインタフェース(I/F)13とUI(ユーザインタフェース)14と接続している。また、ICチップ20は、ROM21とRAM22とヘッドインタフェース(I/F)23と接続している。ICチップ30は同様に、ROM31とRAM32とヘッドインタフェース(I/F)33と接続している。ICチップ40も同様に、ROM41とRAM42とヘッドインタフェース(I/F)43と接続している。
【0020】
ホストI/F13は、ホストPC2との通信を行うインタフェースであり、UI14はスイッチやLCDやLEDランプを備えた操作パネルで構成され、ユーザから記録装置に対する指示を受付、ユーザに対して情報を報知する。
【0021】
記録媒体にインクを吐出して画像を記録する記録ヘッド50は、3つのヘッドI/F23、33、43を介して、3つのICチップ20、30、40にそれぞれ接続される。ICチップ10とICチップ20との間、ICチップ20とICチップ30との間、ICチップ30とICチップ40との間はそれぞれPCI-Express(以下、PCIe)により接続される。
【0022】
ICチップ10は、ROM11に格納された制御プログラムを読出し、RAM12を作業領域として用いて実行し、ホストPC2とのインタフェース処理に加えて、記録装置全体の制御やUIの制御や各種駆動機構の制御等を行う。また、RAM12には、PC2から転送された画像データを一時的に記憶するために画像メモリが設けられる。
【0023】
図1から分かるように、ICチップ20、30、40は、夫々に専用のヘッドI/Fを介して記録ヘッド50に接続される。これらのチップでは、多値データを2値データに変換したりマスク処理を行う画像処理や、記録ヘッドの駆動制御などを実行する。
【0024】
ICチップ20、30、40は、記録ヘッドが扱う複数の色のインクに対応して生成される各色成分の画像データを処理するように割当てられる。例えば、記録ヘッド50が12色のインクを吐出する構成である場合、ホストPC2から転送された画像データは12色の色成分データに分解される。例えば、12色のインクとは以下の通りである。即ち、
マットブラック(MBK)と、フォトブラック(PBK)と、シアン(C)と、
マゼンタ(M)と、イエロ(Y)と、フォトシアン(PC)と、
フォトマゼンタ(PM)と、グレー(GY)と、フォトグレー(PGY)と、
レッド(R)と、ブルー(B)と、クロマオプティマイザー(CO)とである。
【0025】
これら12の色成分データの画像処理が、4つの色成分データずつICチップ20、30、40に割当てられる。なお、以上のような色成分データの割当ては一例に過ぎず、記録ヘッドの仕様やICチップの性能により異なる割当てが可能であることは言うまでもない。例えば、記録ヘッドが6色のインク(ブラック、マットブラック、シアン、マゼンタ、イエロ、レッド)に対応している仕様であれば、各ICチップに2つの色成分データを割当てられても良い。また、ICチップ20を各色成分に共通の画像処理を割当て、ICチップ30、40にそれぞれ、6つの色成分データずつの画像処理を割当てるように構成しても良い。
【0026】
以下、4つのICチップの内部構成について説明するが、この実施例では32ビットアーキテクチュアのCPUを実装した、同じ構成の4つのICチップを直列接続して用いるものとする。
【0027】
図1に示されているように、ICチップ10は、バスブリッジ112を介して38ビットアドレッシング可能なブロックが存在する領域110と32ビットアドレッシング可能な(32ビットのアドレス幅)ブロックが存在する領域111を含む。同様にICチップ20、30、40は夫々、バスブリッジ122、132、142を介して38ビットアドレッシング可能な(38ビットのアドレス幅)ブロックが存在する領域120、130、140を含む。さらに、ICチップ20、30、40は夫々、32ビットアドレッシング可能なブロックが存在する領域121、131、141を含む。
【0028】
ICチップ10は、バスブリッジ112にDMAC115と32ビットCPU(以下、CPU)118とICチップ外の機器を接続する内部ブロック119を備える。内部ブロック119は、ROMコントローラ、RAMコントローラ、及び、他の機器(例えば、ホストPC2を接続するホストインタフェース(I/F)13やUI14)とのインタフェースコントローラとしての役割を果たす。また、ICチップ10は、PCIeインタフェース113(この構成では未使用)とICチップ20との通信を行うPCIeインタフェース(通信インタフェース)114を備える。
【0029】
なお、
図1に記載された記号「M」は「Master」を表し、記号「S」は「Slave」を表している。「Master」はバスブリッジの主導権を取り、「Slave」に対してライト/リードアクセスを行う。
【0030】
ICチップ20は、バスブリッジ122にDMAC125とCPU128とICチップ外の機器を接続する内部ブロック129を備える。内部ブロック129は、ROMコントローラ、RAMコントローラ、及び、他の機器(例えば、記録ヘッド50を接続するヘッドインタフェース23)とのインタフェースコントローラとしての役割を果たす。また、ICチップ20は、ICチップ10との通信を行うPCIeインタフェース123とICチップ30との通信を行うPCIeインタフェース124とを備える。
【0031】
同様にICチップ30は、バスブリッジ132にDMAC135とCPU138とICチップ外の機器を接続する内部ブロック139を備える。内部ブロック139は、ROMコントローラ、RAMコントローラ、及び、他の機器(例えば、記録ヘッド50を接続するヘッドインタフェース33)とのインタフェースコントローラとしての役割を果たす。また、ICチップ30は、ICチップ20との通信を行うPCIeインタフェース133とICチップ40との通信を行うPCIeインタフェース134とを備える。
【0032】
最後のICチップ40は、バスブリッジ142にDMAC145とCPU148とICチップ外の機器を接続する内部ブロック149を備える。内部ブロック149は、ROMコントローラ、RAMコントローラ、及び、他の機器(例えば、記録ヘッド50を接続するヘッドインタフェース43)とのインタフェースコントローラとしての役割を果たす。また、ICチップ40は、ICチップ30との通信を行うPCIeインタフェース143とPCIeインタフェース144(この構成では未使用)を備える。
【0033】
PCIeインタフェース113、123、133、143をPCIe(Ch0)と呼び、PCIeインタフェース114、124、134、144をPCIe(Ch1)と呼んで区別する。なお、この構成では、PCIeがアドレス変換機能を有する。
【0034】
以上のような構成の記録装置において、ICチップ10がホストI/F13を介してホストPC2から転送された印刷ジョブを受信すると、ICチップ10は印刷モード等に従って画像処理を実行する。その後、画像処理が施された画像データがICチップ10からICチップ20、ICチップ30、ICチップ40に転送される。
【0035】
ICチップ間で転送される画像データは、印刷モードによってRGBデータである場合やCMYKデータである場合もある。また、ICチップ20、30、40の間でも、コマンド通信や画像処理後のデータを他の処理に用いる場合はデータ転送を実行することがあり得る。ICチップ20、30、40で処理されたデータは記録ヘッド50に転送され、記録ヘッド50は記録媒体へインクを吐出して画像を記録する。
【0036】
図2は
図1で示した記録装置のICチップで用いるメモリ空間のマッピング例を示す図である。ここでは、ICチップ10のメモリ空間について説明するが、他のICチップも同様なメモリ空間のマッピングを行う。
【0037】
図2に示すように、メモリ空間全体210は、例えば、64ビットの広い空間で定義されるものであり、その中に
PCIe(Ch0)113のスレーブアドレス空間(64GB:アドレスが0x10_0000_0000~0x1F_FFFF_FFFF(16進表現))211と、
PCIe(Ch1)114のスレーブアドレス空間(64GB:アドレスが0x20_0000_0000~0x2F_FFFF_FFFF(16進表現))212と、
ICチップ10の32ビットで表現可能なメモリ空間(4GB:アドレスが0x0000_0000~0xFFFF_FFFF)213と、
リザーブ空間(何も割り当てられていないアドレス)214と、
を含む。また、32ビットで表現可能なメモリ空間213は、
メインメモリ空間でRAM12にアクセス可能なアドレス空間(1GB:アドレスが0x0000_0000~0x3FFF_FFFF(16進表現))215と、
CPU118がアクセス可能なPCIe(Ch0)113のスレーブアドレス空間の一部(256MB:アドレスが0x4000_0000~0x4FFF_FFFF(16進表現))216と、
CPU118がアクセス可能なPCIe(Ch1)114のスレーブアドレス空間の一部(256MB:0x5000_0000~0x5FFF_FFFF(16進表現))217と、
その他の内部ブロック119へアクセスするためのメモリ空間218と、
ROM11へアクセス可能なメモリ空間(256MB:0xF000_0000~0xFFFF_FFFF(16進表現))219と、
を含む。
【0038】
なお、CPU118は32ビットCPUであるため0x0000_0000から0xFFFF_FFFFまでのアドレス(4GB空間)にアクセスできる。
【0039】
図3は4つのICチップ10、20、30、40のメモリ空間のマッピングを示す図である。
【0040】
図3に示すように、ICチップ10はメモリ空間210を用い、ICチップ20はメモリ空間220を用い、ICチップ30はメモリ空間230を用い、ICチップ40はメモリ空間240を用いる。メモリ空間211、221、231、241は、PCIe(Ch0)113、123、133、143のスレーブアドレス空間であり、これらの空間を用いて上流チップへ(アップストリーム)アクセスを行う。つまり、メモリ空間211、221、231、241は、PCIe(Ch0)113、123、133、143を介してアップストリーム方向のICチップにアクセスするための領域である。同様に、メモリ空間212、222、232、242は、PCIe(Ch1)114、124、134、144のスレーブアドレス空間であり、これらの空間を用いて下流チップへ(ダウンストリーム)アクセスを行う。つまり、メモリ空間212、222、232、242は、PCIe(Ch1)114、124、134、144を介してダウンストリーム方向のICチップにアクセスするための領域である。
【0041】
次に、以上のような構成の記録装置におけるメモリアクセス制御のいくつかの実施例について説明する。
【実施例1】
【0042】
<ダウンストリームのメモリアクセス>
図4は、実施例1に従うダウンストリームのメモリ空間マッピング例を示した図である。なお、
図4において、
図2~
図3を用いて参照したのと同じ構成要素には同じ参照番号を付し、その説明は省略する。ここでは、ICチップ10から他のICチップへのダウンストリームについて説明する。ここでいうダウンストリームとはICチップ10からICチップ40の方向にアクセスを行うことをいう。
【0043】
図4に示すように、ICチップ10のPCIe(Ch1)のメモリ空間212の一部の空間412~414が下流チップ(ICチップ20~40)へアクセスするための空間として割り当てられる。空間412のアドレスは0x21_0000_0000~0x21_FFFF_FFFFの4GBである。空間413のアドレスは0x22_0000_0000~0x22_FFFF_FFFFの4GBである。空間414のアドレスは0x23_0000_0000~0x23_FFFF_FFFFの4GBである。
【0044】
また、ICチップ20のPCIe(Ch1)のメモリ空間222の一部の空間423、424が下流チップ(ICチップ30~40)へアクセスするための空間として割り当てられる。空間423のアドレスは0x22_0000_0000~0x22_FFFF_FFFFの4GBである。空間424のアドレスは0x23_0000_0000~0x23_FFFF_FFFFの4GBである。
【0045】
さらに、ICチップ30のPCIe(Ch1)のメモリ空間232の一部の空間434が下流チップ(ICチップ40)へアクセスするための空間として割り当てられる。空間434のアドレスは0x23_0000_0000~0x23_FFFF_FFFFの4GBである。
【0046】
以上のメモリ空間の割当てから分かるように、空間412~414、423~424、434すべての下位ビットである32ビットは同じアドレスをもっている。さらに、このようなアドレス割当てから分かるように、上位ビットのアドレス値により、アクセス先のICチップを特定することができる。即ち、上位ビットのアドレス値が0x21であればアクセス先はICチップ20、0x22であればアクセス先はICチップ30、0x23であればアクセス先はICチップ40である。
【0047】
各ICチップ(アクセス元)からその下流チップ(対象チップ:アクセス先)のメモリ空間へアクセスは以下の通りである。
【0048】
(1)ICチップ10
・ICチップ10からICチップ20へのアクセス
例えば、CPU118やDMAC115がICチップ10のメモリ空間210のうち空間412にアクセスするとICチップ20のPCIe(Ch0)123の空間422に到達する。ICチップ20のPCIe(Ch0)123は、例えば、空間422へのアクセスにおいて指定されたアドレスの上位ビットのアドレス値が0x21であるため、このアクセスがICチップ20へのアクセスであると特定できる。そのため、空間422へ到達したアクセスにおいて指定されたアドレスは、
図4の入力アドレス変換設定450のように、ICチップ20内のメモリ空間223を規定する32ビットアドレスに変換される。この変換では入力アドレス(38ビット)の上位側6ビットを削除し、下位側32ビットをそのまま保存する変換を行う。
【0049】
・ICチップ10からICチップ30へのアクセス
例えば、CPU118やDMAC115がICチップ10のメモリ空間210のうち空間413にアクセスするとICチップ20のPCIe(Ch0)123に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間423にアクセスされICチップ30のPCIe(Ch0)133の空間433に到達する。つまり、ICチップ20のPCIe(Ch0)123は、例えば、自身へのアクセスにおいて指定されたアドレスの上位ビットのアドレス値が0x22であるため、このアクセスがICチップ20へのアクセスではないと特定できる。そのため、このアクセスはスルーされて空間423にアクセスされて、ICチップ30のPCIe(Ch0)133の空間433に到達する。ICチップ30のPCIe(Ch0)133は、例えば、空間433へのアクセスにおいて指定されたアドレスの上位ビットのアドレス値が0x22であるため、このアクセスがICチップ30へのアクセスであると特定できる。そのため、空間433へ到達したアクセスにおいて指定されたアドレスは、
図4の入力アドレス変換設定460のように、ICチップ30内のメモリ空間233を規定する32ビットアドレスに変換される。この変換も、入力アドレス(38ビット)の上位側6ビットを削除し、下位側32ビットをそのまま保存する変換を行う。
【0050】
・ICチップ10からICチップ40へのアクセス
例えば、CPU118やDMAC115がICチップ10のメモリ空間210のうち空間414にアクセスするとICチップ20のPCIe(Ch0)123に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間424にアクセスされICチップ30のPCIe(Ch0)133に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間434にアクセスされICチップ40のPCIe(Ch0)143に到達する。なお、ICチップ20およびICチップ30においてスルーされる理由は、上述した通り、アクセスで指定された上位ビットのアドレスに基づく。ここで、空間444へ到達したアクセスは
図4の入力アドレス変換設定470のように、ICチップ40のPCIe(Ch0)143において規定されるアドレスを入力してICチップ40内のメモリ空間243を規定する32ビットアドレスに変換する。ICチップ40のPCIe(Ch0)143は、例えば、空間444へのアクセスにおいて指定されたアドレスの上位ビットのアドレス値が0x23であるため、このアクセスがICチップ40へのアクセスであると特定できる。この変換でも、入力アドレス(38ビット)の上位側6ビットを削除し、下位側32ビットをそのまま保存する変換を行う。
【0051】
(2)ICチップ20
・ICチップ20からICチップ30へのアクセス
例えば、CPU128やDMAC125がICチップ20のメモリ空間220のうち空間423にアクセスするとICチップ30のPCIe(Ch0)133に到達する。ここで、空間433へ到達したアクセスは
図4の入力アドレス変換設定460のように、ICチップ30のPCIe(Ch0)133において規定されるアドレスを入力してICチップ30内のメモリ空間233を規定する32ビットアドレスに変換する。この変換では入力アドレス(38ビット)の上位側6ビットをおとし(削除し)、下位側32ビットをそのまま保存する変換を行う。
【0052】
・ICチップ20からICチップ40へのアクセス
例えば、CPU128やDMAC125がICチップ20のメモリ空間220のうち空間424にアクセスするとICチップ30のPCIe(Ch0)133に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間434にアクセスされICチップ40のPCIe(Ch0)143に到達する。ここで、空間444へ到達したアクセスは
図4の入力アドレス変換設定470のように、ICチップ40のPCIe(Ch0)143において規定されるアドレスを入力してICチップ40内のメモリ空間243を規定する32ビットアドレスに変換する。この変換では入力アドレス(38ビット)の上位側6ビットをおとし(削除し)、下位側32ビットをそのまま保存する変換を行う。
【0053】
(3)ICチップ30
・ICチップ30からICチップ40へのアクセス
例えば、CPU138やDMAC135がICチップ30のメモリ空間230のうち空間434にアクセスするとICチップ40のPCIe(Ch0)143に到達する。ここで、空間444へ到達したアクセスは
図4の入力アドレス変換設定470のように、ICチップ40のPCIe(Ch0)143において規定されるアドレスを入力してICチップ40内のメモリ空間243を規定する32ビットアドレスに変換する。この変換では入力アドレス(38ビット)の上位側6ビットをおとし(削除し)、下位側32ビットをそのまま保存する変換を行う。
【0054】
図5は、実施例1に従う、ICチップ10のCPU118から他のICチップのメモリ空間へのアクセス方法を示す図である。
図5において、
図2~
図4において既に説明したのと同じ構成要素には同じ参照番号を付し、その説明は省略する。
【0055】
なお、
図5ではICチップ10を対象ICチップ10として説明するが、他のICチップが対象ICチップであっても構わない。
図5の右側は、ICチップ10のメモリ空間であり、38ビットのアドレス幅でアクセス可能なメモリ空間である。
図5の右側の38ビットのアドレス幅でアクセス可能なメモリ空間に含まれるメモリ空間213は、32ビットのアドレス幅でアクセス可能なメモリ空間である。なお、CPU118は、メモリ空間213を使って処理を行う。また、CPU118は、
図5の右側の38ビットのメモリ空間内にある32ビットのアドレス幅でアクセス可能なメモリ空間213を使ってPCIe(Ch0)113またはPCIe(Ch1)114にアクセスする。
【0056】
PCIe(Ch1)114のスレーブアドレス空間の一部である空間217のうち、空間512~514を他チップへアクセスするための空間として割り当てる。つまり、CPU118は、PCIe(Ch1)114にアクセスするために空間217にアクセスする。空間512~514のアドレスは夫々、0x5000_0000~0x51FF_FFFF(32MB)、0x5200_0000~0x53FF_FFFF(32MB)、0x5400_0000~0x55FF_FFFF(32MB)である。
【0057】
ここで、PCIe(Ch1)114の出力アドレスは
図5の出力アドレス変換設定500のように変換される。即ち、入力アドレス(32ビット)の下位25ビットはそのまま保存し、上位7ビットには0をつめ、さらに32ビットの上位側には領域412~414のアドレスを特定する6ビットを付加して、38ビットにする変換を行う。このようにして、ICチップ10のCPU118により指定された32MB分のメモリ空間のアドレス値は保存されつつ、他のICチップへメモリ空間にアクセスするためのアドレス値に変換される。
【0058】
図5に示すように、CPU118がメモリ空間512にアクセスする。この場合、PCIe(Ch1)114のアドレス変換機能によってPCIe(Ch1)114へのアクセスに使用されたアドレス値が38ビットのメモリ空間のダウンストリーム側の領域内のアドレス値に変換される。具体的には、PCIe(Ch1)114へのアクセスに使用されたアドレス値が出力アドレス変換設定500によりメモリ空間412に対応するアドレス値に変換される。そして、
図4を参照して説明した通り、ICチップ20のメモリ空間223にアクセスできる。また、CPU118がメモリ空間513にアクセスすると出力アドレス変換設定500によりメモリ空間413に変換される。そして、
図4を参照して説明した通り、ICチップ30のメモリ空間233にアクセスできる。さらに、CPU118がメモリ空間514にアクセスすると出力アドレス変換設定500によりメモリ空間414に変換される。そして、
図4を参照して説明した通り、ICチップ40のメモリ空間243にアクセスできる。
【0059】
出力アドレス変換設定500では
図5に示されるようにCPU118がアドレス可能な32ビットのアドレスをPCIeメモリ空間の38ビットアドレスに変換する。
【0060】
他のチップのCPUからのアクセス方法についても同様な方法で行う。また、仮にICチップの上流(アップストリーム)側(ダウンストリームと反対方向である左側)に他のICチップがある場合、CPU118は、PCIe(Ch0)113にアクセスするために空間216にアクセスする。この際のアドレス変換等は上述した処理と同じである。
【0061】
<アップストリームのメモリアクセス>
図6は、実施例1に従うアップストリームのメモリ空間マッピング例を示した図である。なお、
図6において、
図2~
図3を用いて参照したのと同じ構成要素には同じ参照番号を付し、その説明は省略する。ここでは、ICチップ40から他のICチップへのアップストリームについて説明する。ここでいうアップストリームとはICチップ40からICチップ10の方向にアクセスを行うことをいう。
【0062】
図6に示すように、ICチップ40のPCIe(Ch0)のメモリ空間241の一部の空間641~643を上流チップ(ICチップ10~30)へアクセスするための空間として割り当てる。空間641のアドレスは0x10_0000_0000~0x10_FFFF_FFFFの4GBである。空間642のアドレスは0x11_0000_0000~0x11_FFFF_FFFFの4GBである。空間643のアドレスは0x12_0000_0000~0x12_FFFF_FFFFの4GBである。
【0063】
また、ICチップ30のPCIe(Ch0)のメモリ空間231の一部の空間631、632を上流チップ(ICチップ10~20)へアクセスするための空間として割り当てる。空間631のアドレスは0x10_0000_0000~0x10_FFFF_FFFFの4GBである。空間632のアドレスは0x11_0000_0000~0x11_FFFF_FFFFの4GBである。
【0064】
さらに、ICチップ20のPCIe(Ch0)のメモリ空間221の一部の空間621を上流チップ(ICチップ10)へアクセスするための空間として割り当てる。空間621のアドレスは0x10_0000_0000~0x10_FFFF_FFFFの4GBである。
【0065】
以上のメモリ空間の割当てから分かるように、空間621、631~632、641~643すべての下位32ビットは同じアドレスをもっている。さらに、このようなアドレス割当てから分かるように、上位ビットのアドレス値により、アクセス先のICチップを特定することができる。即ち、上位ビットのアドレス値が0x10であればアクセス先はICチップ10、0x11であればアクセス先はICチップ20、0x12であればアクセス先はICチップ30である。
【0066】
各ICチップ(アクセス元)からその上流チップ(対象チップ:アクセス先)のメモリ空間へアクセスは以下の通りである。なお、アップストリームにおいてスルーされる理由は、ダウンストリームと同じ理由である。
【0067】
(1)ICチップ40
・ICチップ40からICチップ30へのアクセス
例えば、CPU148やDMAC145がICチップ40のメモリ空間240のうち空間643にアクセスするとICチップ30のPCIe(Ch1)134に到達する。ここで、空間633へ到達したアクセスは
図6の入力アドレス変換設定670のように、ICチップ30のPCIe(Ch1)134のメモリ空間633のアドレスを、CPU138がアドレス可能な空間233の32ビットアドレスに変換する。
【0068】
・ICチップ40からICチップ20へのアクセス
例えば、CPU148やDMAC145がICチップ40のメモリ空間240のうち空間642にアクセスするとICチップ30のPCIe(Ch1)134に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間632にアクセスされICチップ20のPCIe(Ch1)124に到達する。ここで、空間622へ到達したアクセスは
図6の入力アドレス変換設定660のように、ICチップ20のPCIe(Ch1)124のメモリ空間622のアドレスを、CPU128がアドレス可能な空間223の32ビットアドレスに変換する。
【0069】
・ICチップ40からICチップ10へのアクセス
例えば、CPU148やDMAC145がICチップ40のメモリ空間240のうち空間641にアクセスするとICチップ30のPCIe(Ch1)134に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間631にアクセスされICチップ20のPCIe(Ch1)124に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間621にアクセスされICチップ10のPCIe(Ch1)114に到達する。ここで、空間611へ到達したアクセスは
図6の入力アドレス変換設定650のように、ICチップ10のPCIe(Ch1)114のメモリ空間611のアドレスが、CPU118がアドレス可能な空間213の32ビットアドレスに変換される。
【0070】
つまり、ICチップ10に含まれるPCIe(114)が他のチップであるICチップ40から特定されたアドレス値でアクセスを受け付ける。そして、その特定されたアドレス値が、所定の範囲である空間611に含まれる場合、ICチップ40からのアクセスがICチップ10へのアクセスとして処理される。
【0071】
(2)ICチップ30
・ICチップ30からICチップ20へのアクセス
例えば、CPU138やDMAC135がICチップ30のメモリ空間230のうち空間632にアクセスするとICチップ20のPCIe(Ch1)124に到達する。ここで、空間622へ到達したアクセスは
図6の入力アドレス変換設定660のように、ICチップ20のPCIe(Ch1)124のメモリ空間622のアドレスが、CPU128がアドレス可能な空間223の32ビットアドレスに変換される。
【0072】
・ICチップ30からICチップ10へのアクセス
例えば、CPU138やDMAC135がICチップ30のメモリ空間230のうち空間631にアクセスするとICチップ20のPCIe(Ch1)124に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間621にアクセスされICチップ10のPCIe(Ch1)114に到達する。ここで、空間611へ到達したアクセスは
図6の入力アドレス変換設定650のように、ICチップ10のPCIe(Ch1)114のメモリ空間611のアドレスを、CPU118がアドレス可能な空間213の32ビットアドレスに変換する。
【0073】
(3)ICチップ20
・ICチップ20からICチップ10へのアクセス
例えば、CPU128やDMAC125がICチップ20のメモリ空間220のうち空間621にアクセスするとICチップ10のPCIe(Ch1)114に到達する。ここで、空間611へ到達したアクセスは
図6の入力アドレス変換設定650のように、ICチップ10のPCIe(Ch1)114のメモリ空間611のアドレスを、CPU118がアドレス可能な空間213の32ビットアドレスに変換する。
【0074】
ICチップのCPUが他のICチップのメモリ空間へアクセスする方法は
図5を参照して説明した方法と同様に行う。
【0075】
図7は、実施例1に従う記録装置の起動時に実行するメモリ空間設定処理を示すフローチャートである。
【0076】
図7に示すように、記録装置1を電源ONすると、ICチップ10はステップS711において、CPU118のリセットを解除する。次にステップS712では、ROM11からプログラムを読出しICチップ10を初期化する。さらにステップS713では、PCIe(Ch1)114の出力アドレス変換設定を行う。さらにステップS714では、PCIe(Ch1)114のリンク・トレーニングを開始する。
【0077】
そして、ステップS715では、ICチップ20との接続(リンクアップ)完了を待ち合わせ、リンクアップの完了を確認したら、処理はステップS716に進む。ステップS716では、リップアップしたPCIeを介してICチップ20のPCIe(Ch0)123の入力アドレス変換設定を行う。このようにして、初期化完了してICチップ10はスタンバイ状態となる。
【0078】
また、ICチップ20、30もそれぞれ、ステップS721~726、ステップS731~736において、ICチップ10と同様の起動処理を実行する。
【0079】
一方、ICチップ40では、ステップS741において、CPU148のリセットが解除されると、ステップS742では、RAM42から起動プログラムを読出しICチップ40を初期化する。
【0080】
従って以上説明した実施例に従えば、システムを構成する複数の集積回路(IC)チップ夫々は互いのメモリ空間の全領域にアクセスすることができる。これにより、高機能ではあるが高価な64ビットCPUを使用せずに、安価な32ビットCPUを用いても広いアドレス空間にアクセスすることを可能にし、装置全体のコストを抑えることができる。
【0081】
また、この実施例によれば、従来例と比較してシステム構成を簡素化でき、さらに起動時の処理も簡素化できる。さらに、この実施例では、チップ間の起動の同期も不要となり、システム全体の起動時間の高速化を図ることができる。またさらに、この実施例では、1つのICチップから他のICチップにプログラムを転送してから他のICチップの起動を行うシステムを実現することが可能となる。
【実施例2】
【0082】
この実施例では、実施例1と同様に、以下のような割当てを行う。即ち、ICチップ10のPCIe(Ch1)のメモリ空間212の一部の空間412~414を下流チップへアクセスするための空間として割当てる。また、ICチップ20のPCIe(Ch1)のメモリ空間222の一部の空間423、424を下流チップへアクセスするための空間として割当てる。さらに、ICチップ30のPCIe(Ch1)のメモリ空間232の一部の空間434を下流チップへアクセスするための空間として割当てる。
【0083】
さらに、この実施例2では、ICチップ20のメモリ空間223に直接アクセスするためのPCIeウインドウ822を設定する。同様に、ICチップ30のメモリ空間233に直接アクセスするためのPCIeウインドウ833を設定する。さらに、ICチップ40のメモリ空間243に直接アクセスするためのPCIeウインドウ844を設定する。
【0084】
また、ICチップ10のPCIe(Ch1)114の出力アドレス変換設定810を行う。さらに、ICチップ20のPCIe(Ch1)124の出力アドレス変換設定820を行う。またさらに、ICチップ30のPCIe(Ch1)134の出力アドレス変換設定830を行う。
【0085】
出力アドレス変換設定810、820、830により、各ICチップの38ビットアドレス空間で指定されたアドレスを各ICチップのCPUが扱う32ビットアドレス空間に変換し、容量4GBのメモリにアクセス可能なアドレスに変換する。具体的には、
図8に示されているように、出力アドレス変換設定810、820、830変換前のアドレスのうち下位ビットである32ビットはそのままに保存して変換後のアドレスを出力する。これにより、32ビットで表現可能な容量4GBのメモリ空間にアクセス可能になる。
【0086】
<ダウンストリームのメモリアクセス>
図8は実施例2に従う、ダウンストリームのメモリ空間マッピング例を示した図である。
【0087】
各ICチップ(アクセス元)からその下流チップのメモリ空間へアクセスは以下の通りである。
【0088】
(1)ICチップ10
・ICチップ10からICチップ20へのアクセス
例えば、CPU118やDMAC115がICチップ10のメモリ空間210のうち空間412にアクセスすると
図8の出力アドレス変換設定810によりICチップ20のPCIe(Ch0)123のPCIe空間のうち空間822に到達する。このアクセスはそのままICチップ20のメモリ空間223に到達する。
【0089】
・ICチップ10からICチップ30へのアクセス
例えば、CPU118やDMAC115がICチップ10のメモリ空間210のうち空間413にアクセスするとICチップ20のPCIe(Ch0)123に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間423にアクセスし、出力アドレス変換設定820によりICチップ30のPCIe(Ch0)133のPCIe空間のうち空間833に到達する。このアクセスはそのままICチップ30のメモリ空間233に到達する。
【0090】
・ICチップ10からICチップ40へのアクセス
例えば、CPU118やDMAC115がICチップ10のメモリ空間210のうち空間414にアクセスするとICチップ20のPCIe(Ch0)123に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間424にアクセスし、ICチップ30のPCIe(Ch0)133に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間434にアクセスし、出力アドレス変換設定830によりICチップ40のPCIe(Ch0)143のPCIe空間のうち空間844に到達する。このアクセスはそのままICチップ40のメモリ空間243に到達する。
【0091】
(2)ICチップ20
・ICチップ20からICチップ30へのアクセス
例えば、CPU128やDMAC125がICチップ20のメモリ空間220のうち空間423にアクセスすると、出力アドレス変換設定820によりICチップ30のPCIe(Ch0)133のPCIe空間のうち空間833に到達する。このアクセスはそのままICチップ30のメモリ空間233に到達する。
【0092】
・ICチップ20からICチップ40へのアクセス
例えば、CPU128やDMAC125がICチップ20のメモリ空間220のうち空間424にアクセスするとICチップ30のPCIe(Ch0)133に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間434にアクセスし、出力アドレス変換設定830によりICチップ40のPCIe(Ch0)143のPCIe空間のうち空間844に到達する。このアクセスはそのままICチップ40のメモリ空間243に到達する。
【0093】
(3)ICチップ30
・ICチップ30からICチップ40へのアクセス
例えば、CPU138やDMAC135がICチップ30のメモリ空間230のうち空間434にアクセスすると、出力アドレス変換設定830によりICチップ40のPCIe(Ch0)143のPCIe空間のうち空間844に到達する。このアクセスはそのままICチップ40のメモリ空間243に到達する。
【0094】
ICチップのCPUが他のICチップのメモリ空間へアクセスする方法は
図5で説明した方法と同様である。ただし、隣接チップへアクセスする場合のアドレス変換だけは実施例1で説明したのとは異なり、アクセスしようとするアドレスに直接変換されるようになる。
【0095】
<アップストリームのメモリアクセス>
アップストリームのメモリ空間へのアクセスの場合、実施例1と同様に、以下のような割当てを行う。即ち、ICチップ40のPCIe(Ch0)のメモリ空間241の一部の空間641~643を上流チップへアクセスするための空間として割当てる。また、ICチップ30のPCIe(Ch0)のメモリ空間231の一部の空間631、632を上流チップへアクセスするための空間として割当てる。さらに、ICチップ20のPCIe(Ch0)のメモリ空間221の一部の空間621を上流チップへアクセスするための空間として割当てる。
【0096】
さらに、この実施例では、ICチップ10のメモリ空間213に直接アクセスするためのPCIeウインドウ911を設定する。同様に、ICチップ20内のメモリ空間223に直接アクセスするためのPCIeウインドウ922を設定する。さらに、ICチップ30のメモリ空間233に直接アクセスするためのPCIeウインドウ933を設定する。
【0097】
また、ICチップ20のPCIe(Ch0)123の出力アドレス変換設定920を行う。同様に、ICチップ30のPCIe(Ch0)133の出力アドレス変換設定930を行う。さらに、ICチップ40のPCIe(Ch0)143の出力アドレス変換設定940を行う。
【0098】
出力アドレス変換設定920、930、940により、各ICチップの38ビットアドレス空間で指定されたアドレスを各ICチップのCPUが扱う32ビットアドレス空間に変換し、容量4GBのメモリ空間にアクセス可能なアドレスに変換する。具体的には、
図9に示されているように、出力アドレス変換設定920、930、940により変換前のアドレスのうち下位32ビットはそのままに保存して変換後のアドレスを出力する。これにより、32ビットで表現可能な容量4GBのメモリ空間にアクセス可能になる。
【0099】
図9は、実施例2に従うアップストリームのメモリ空間マッピング例を示した図である。
【0100】
各ICチップ(アクセス元)からその上流チップのメモリ空間へアクセスは以下の通りである。
【0101】
(1)ICチップ40
・ICチップ40からICチップ30へのアクセス
例えば、CPU148やDMAC145がICチップ40のメモリ空間240のうち空間643にアクセスすると出力アドレス変換設定940によりICチップ30のPCIe(Ch1)134のPCIe空間のうち空間933に到達する。このアクセスはそのままICチップ30のメモリ空間233に到達する。
【0102】
・ICチップ40からICチップ20へのアクセス
例えば、CPU148やDMAC145がICチップ40のメモリ空間240のうち空間642にアクセスするとICチップ30のPCIe(Ch1)134に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間230のうち空間632にアクセスし、出力アドレス変換設定930によりICチップ20のPCIe(Ch1)124のPCIe空間のうち空間922に到達する。このアクセスはそのままICチップ20のメモリ空間223に到達する。
【0103】
・ICチップ40からICチップ10へのアクセス
例えば、CPU148やDMAC145がICチップ40のメモリ空間240のうち空間641にアクセスするとICチップ30のPCIe(Ch1)134に到達する。このアクセスはアドレス変換されずメモリ空間230のうち空間631にアクセスし、ICチップ20のPCIe(Ch1)124に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間621にアクセスし、出力アドレス変換設定920によりICチップ10のPCIe(Ch1)114のPCIe空間のうち空間911に到達する。このアクセスはそのままICチップ10のメモリ空間213に到達する。
【0104】
(2)ICチップ30
・ICチップ30からICチップ20へのアクセス
例えば、CPU138やDMAC135がICチップ30のメモリ空間230のうち空間632にアクセスすると出力アドレス変換設定930によりICチップ20のPCIe(Ch0)124のPCIe空間のうち空間922に到達する。このアクセスはそのままICチップ20のメモリ空間223に到達する。
【0105】
・ICチップ30からICチップ10へのアクセス
例えば、CPU138やDMAC135がICチップ30のメモリ空間230のうち空間631にアクセスするとICチップ20のPCIe(Ch1)124に到達する。このアクセスはアドレス変換されずスルーされてメモリ空間220のうち空間621にアクセスし、出力アドレス変換設定920によりICチップ10のPCIe(Ch1)114のPCIe空間のうち空間911に到達する。このアクセスはそのままICチップ10のメモリ空間213に到達する。
【0106】
(3)ICチップ20
・ICチップ20からICチップ10へのアクセス
例えば、CPU128やDMAC125がICチップ20のメモリ空間220のうち空間621にアクセスすると出力アドレス変換設定920によりICチップ10のPCIe(Ch1)114のPCIe空間のうち空間911に到達する。このアクセスはそのままICチップ10のメモリ空間213に到達する。
【0107】
ICチップのCPUが他のICチップのメモリ空間へアクセスする方法は
図5で説明した方法と同様である。ただし、隣接するICチップへアクセスする場合のアドレス変換だけは実施例1で説明したのとは異なり、アクセスしようとするアドレスに直接変換されるようになる。
【0108】
以上説明した構成を実施例1と比較すると、
図7に示したフローチャートのうちステップS716、S726、S736の隣接するICチップへの入力アドレス変換設定が不要となる。これにより、実施例1と比較して、システム全体の起動をより速くすることができる。
【0109】
なお、実施例1、2に示したシステム構成、メモリ空間、メモリ空間マッピング、アドレス指定、アドレス変換設定等のパラメータは、本発明を説明するための一例に過ぎず、本発明を限定するものではない。上記実施例により明らかにされた内容により、パラメータを変更して応用することは、当業者にとって容易であり、本発明の範囲に含まれる。
【実施例3】
【0110】
図10は、実施例3に従うインクジェット記録装置の構成を示すブロック図である。
図10と
図1を比較して分かるように、
図10に示す構成では、
図1に示されていたROM21、31、41を省略している。その他の構成は、
図1に示したのと同じであり、その構成には同じ参照番号を付しており、ここでの説明は繰り返さない。
図10に示した構成によれば、
図1に示した構成と比較して、3つのROMが省略されており、その結果、部品点数が抑えられるのでコストダウンを図ることができる。ただし、記録装置の起動時のメモリ空間設定処理は
図7のそれと比較して次に説明するように変更される。
【0111】
図11は、実施例3に従う記録装置の起動時に実行するメモリ空間設定処理を示すフローチャートである。なお、
図7において既に説明したのと同じ処理ステップには同じステップ参照番号を付し、その説明は省略し、ここでは、この実施例に特有の処理についてのみ説明する。
【0112】
図11に示すように、記録装置1を電源ONすると、実施例1で説明したように、ステップS711~S716の処理を実行する。その後、ステップS717ではICチップ20の起動プログラムをROM11から読出し、これをICチップ20に接続したRAM22に転送する。ここで、転送する起動プログラムはICチップ20~40の初期化に用いられる。その後、ステップS718において、ICチップ20のCPU128のリセットを解除する指示をPCIeを経由してICチップ20に転送する。このようにして、初期化完了してICチップ10はスタンバイ状態となる。
【0113】
ICチップ20では、ステップS721’においてICチップ10からの指示を受信し、これに基づいてCPU128のリセットを解除すると、ステップS722’では、RAM22から起動プログラムを読出しICチップ20を初期化する。その後、
図7に示したのと同様に、ステップS723~S726を実行する。その後、ステップS727では、(ICチップ10から転送されてRAM22に格納された)ICチップ30の起動プログラムをICチップ30に接続したRAM32に転送する。その後、ステップS728において、ICチップ30のCPU138のリセットを解除する指示をPCIeを経由してICチップ30に転送する。このようにして、初期化完了してICチップ20はスタンバイ状態となる。
【0114】
ICチップ30では、ステップS731’においてICチップ20からの指示を受信し、これに基づいてCPU138のリセットを解除すると、ステップS732’では、RAM32から起動プログラムを読出しICチップ30の初期化する。その後、
図7に示したのと同様に、ステップS733~S736を実行する。その後、ステップS737では、
(ICチップ10~20から転送されてRAM32に格納された)ICチップ40の起動プログラムをICチップ40に接続したRAM42に転送する。その後、ステップS738において、ICチップ40のCPU148のリセットを解除する指示をPCIeを経由してICチップ40に転送する。このようにして、初期化完了してICチップ30はスタンバイ状態となる。
【0115】
一方、ICチップ40では、ステップS741’において、ICチップ30からの指示を受信し、これに基づいてCPU148のリセットを解除すると、ステップS742’では、RAM42から起動プログラムを読出しICチップ40を初期化する。
【0116】
以上説明した実施例に従えば、1つのICチップのROMに格納した起動プログラムを他のICチップに転送するとともに、そのタイミングで転送先のCPUのリセット解除の指示を行うようにする。これにより、記録装置全体の部品点数を削減してコスト削減を図ることが可能になる。
【0117】
またさらに、以上説明した実施例では記録装置を例として挙げたが、本発明を適用可能な装置は記録装置に限定されるものではない。例えば、パソコン等の情報処理装置やサーバ装置などデータ転送が必要な機器に、上記のような通信制御を行う構成が用いられているなら、本発明は適用可能である。
【0118】
またさらに、上述した実施例では、同じチップを直列に接続する形態で説明したが、その限りではない。例えば、ICチップ10が、他チップへのアクセスのみを実行するが、他のチップからのアクセスを受け付けないように動作する。つまりICチップ10は、処理対象となるデータを他のICチップ20-40に送信するチップとして動作しても良い。一方、その他のICチップ20-40が、アクセスを受けることはあるが、他のチップへアクセスすることがないように動作しても良い。つまりICチップ20-40は、処理対象となるデータをICチップ10から受信するチップとして動作しても良い。
【0119】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0120】
1 記録装置(画像処理装置)、2 ホストPC、
10、20、30、40 ICチップ、11、21、31、41 ROM、
12、22、32、42 RAM、13 ホストI/F、14 UI、
23、33、43 ヘッドI/F、50 記録ヘッド、
112、122、132、142 バスブリッジ、
113、114、123、124、133、134、143、144 PCIe、
115、125、135、145 DMAC、
118、128、138、148 CPU