(57)【特許請求の範囲】
【請求項１】
少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップであって、
ファームウェアを受信する受信手段と、
前記ファームウェアの設定情報を参照する参照手段と、
前記設定情報に応じて前記ファームウェアを他のチップに転送する転送手段と、
前記設定情報が従属チップではないことおよび従属するチップが有ることを示す場合には、前記設定情報を従属チップであることを示すように変更する変更手段と、
を備え、
前記転送手段は、前記設定情報が変更されたファームウェアを前記従属チップに転送すること、
を特徴とするチップ。
【請求項２】
前記設定情報が従属するチップが無いことを示す場合には、前記転送手段はファームウェアの転送を行わない請求項１に記載のチップ。
【請求項３】
前記受信手段によるファームウェアの受信と並行して前記転送手段によるファームウェアの転送を行う請求項１に記載のチップ。
【請求項４】
少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップが行う方法であって、
ファームウェアを受信するステップと、
前記ファームウェアの設定情報を参照するステップと、
前記設定情報に応じて前記ファームウェアを他のチップに転送するステップと、
前記設定情報が従属チップではないことおよび従属するチップが有ることを示す場合には、前記設定情報を従属チップであることを示すように変更するステップと、
を備え、
前記転送するステップは、前記設定情報が変更されたファームウェアを前記従属チップに転送すること、
を特徴とするチップの起動方法。
【請求項５】
少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行う複数のチップを備え、
前記各チップが、
ファームウェアを受信する受信手段と、
前記ファームウェアの設定情報を参照する参照手段と、
前記設定情報に応じて前記ファームウェアを他のチップに転送する転送手段と、
前記設定情報が従属チップではないことおよび従属するチップが有ることを示す場合には、前記設定情報を従属チップであることを示すように変更する変更手段と、
を備え、
前記転送手段は、前記設定情報が変更されたファームウェアを前記従属チップに転送すること、
を特徴とする装置。
【請求項６】
少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行う複数のチップが行う方法であって、
ファームウェアを受信するステップと、
前記ファームウェアの設定情報を参照するステップと、
前記設定情報に応じて前記ファームウェアを他のチップに転送するステップと、
前記設定情報が従属チップではないことおよび従属するチップが有ることを示す場合には、前記設定情報を従属チップであることを示すように変更するステップと、
を備え、
前記転送するステップは、前記設定情報が変更されたファームウェアを前記従属チップに転送すること、
を特徴とする複数チップの起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のチップ（処理部）にファームウェアをダウンロードして起動させる技術に関する。
【背景技術】
【０００２】
近年、ＤＶＤレコーダや、ＰＣのＴＶキャプチャシステムでは、複数チャンネルの番組を同時に録画する装置の需要が増大している。一般的には、録画時にはＭＰＥＧ方式への圧縮を行い、記録媒体に記録するが、複数チャンネルを同時に記録したい場合には、この圧縮用のチップ（ＬＳＩ）を複数使用するか、一つのＬＳＩに複数チャンネルを圧縮する機能を持たせる必要がある。一方、市場要求としては、単一チャンネルの番組の録画機能のみの装置の需要も大きい。
【０００３】
また、本願発明に関連する先行技術として、例えば、下記の特許文献１，２に開示される技術がある。
【０００４】
【特許文献１】特開平４−３１８６５０号公報
【特許文献２】特開２００５−１３５１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、一つのチップに複数のチャンネルを圧縮する機能を持たせた場合、依然として市場要求の大きい単一チャンネルのみを圧縮する装置に適用する際には冗長である。
【０００６】
このため、一つのチャンネルを圧縮するチップを必要なチャンネル数に合わせて複数使用する方が汎用的である。しかしながら、複数のチップを備えた場合、各チップを起動させる際（電源投入時や機能を動作させる際）、各チップ用のファームウェアを複数ダウンロードすることになり、起動に時間がかかるという問題点があった。
【０００７】
そこで本発明は、複数のチップを備えた装置において、短い時間での起動を可能にする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明は、以下の構成を採用した。
即ち、本発明のチップは、少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップであって、ファームウェアを受信する受信手段と、設定情報を参照する参照手段と、前記設定情報に応じて前記ファームウェアを他のチップに転送する転送手段と、を備えた。
【０００９】
また、本発明の装置は、少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行う複数のチップを備え、
前記各チップが、
ファームウェアを受信する受信手段と、
設定情報を参照する参照手段と、
前記設定情報に応じて前記ファームウェアを他のチップに転送する転送手段と、
を備えた。
【００１０】
前記チップは、前記ファームウェアが前記設定情報を有する場合、該設定情報を所定処
理により、転送先のチップ用の設定情報に変更する変更手段を備えても良い。
【００１１】
前記設定情報が従属するチップの有無を示す場合、前記転送手段は、従属するチップが有る場合にはファームウェアを転送し、従属するチップが無い場合にはファームウェアの転送を行わなくても良い。
前記設定情報が従属するチップの数を示す場合、前記変更手段は、前記チップの数を減算しても良い。
【００１２】
前記受信手段によるファームウェアの受信と並行して前記転送手段によるファームウェアの転送を行っても良い。
前記参照手段は、前記設定情報を示すピンの状態を参照しても良い。
【００１３】
また、本発明のチップの起動方法は、少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップにて、ファームウェアを受信し、設定情報を参照し、前記設定情報に応じて前記ファームウェアを他のチップに転送する。
【００１４】
また、本発明の複数チップの起動方法は、少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行う複数のチップが行う方法であって、各チップがファームウェアを受信し、設定情報を参照し、前記設定情報に応じて前記ファームウェアを他のチップに転送する。
【００１５】
前記チップの起動方法は、ファームウェアが前記設定情報を有する場合、該設定情報を所定処理により、転送先のチップ用の設定情報に変更しても良い。
【００１６】
前記チップの起動方法は、前記設定情報が従属するチップの有無を示す場合、前記ファームウェアを転送する際、従属するチップが有る場合にはファームウェアを転送し、従属するチップが無い場合にはファームウェアの転送を行わなくても良い。
【００１７】
前記チップの起動方法は、前記設定情報が従属するチップの数を示す場合、前記設定情報を変更する際、前記チップの数を減算しても良い。
【００１８】
前記チップの起動方法は、前記ファームウェアの受信と並行して前記ファームウェアの転送を行っても良い。
【００１９】
前記チップの起動方法は、前記設定情報を参照する際、前記設定情報を示すピンの状態を参照しても良い。
【００２０】
また、本発明は、上記チップの起動方法を各チップに実行させるプログラム（ファームウェアやブートローダ）であっても良い。更に、本発明は、このプログラムをコンピュータが読み取り可能な記録媒体に記録したものであっても良い。コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００２１】
ここで、コンピュータが読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体の内コンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、DAT、８mmテープ、メモリカード等がある。
【００２２】
また、コンピュータに固定された記録媒体としてハードディスクやＲＯＭ（リードオン
リーメモリ）等がある。
【発明の効果】
【００２３】
本発明によれば、複数のチップを備えた装置において、短い時間での起動を可能にする技術を提供できる。
【発明を実施するための最良の形態】
【００２４】
〈本発明の原理〉
一般的なパーソナルコンピュータのアーキテクチャでは、単一チャンネルでも複数チャンネルでも、生成されたストリームはＰＣＩバス（もしくはＵＳＢ等）へ出力し、メインメモリやチップセットを介して記録媒体へ記録される。
【００２５】
複数チップで複数チャンネルを圧縮するシステムの場合、それぞれのチップに持っているＰＣＩインタフェースからストリームを流す構成にすると、ボードが複数に分かれてしまうのでコストアップとなり、さらにスロットも複数占有してしまうのであまり好ましくない。その解決方法の一つとしては、例えば図１のようなシステムが考えられる。
【００２６】
図１のシステム３０は、複数チャンネルのストリームを出力する拡張ボード１をコンピュータ（ホスト）２のＰＣＩスロットの１つに装着している。該拡張ボード１は、複数チャンネル分（図１では２つ）のチューナＴ１,Ｔ２とチップＣ１，Ｃ２を備え、各チュー
ナＴ１,Ｔ２からの映像信号及び音声信号を各チップＣ１，Ｃ２でそれぞれ圧縮して所定
形式のストリームを生成する。そして、チップＣ１はこのストリームをＰＣＩインタフェースから直接ホスト側のＰＣＩバス２４へ出力する。一方、チップＣ２は、自己のＰＣＩインタフェースを使用せず、チップＣ１へストリームを送り、チップＣ１のＰＣＩインタフェースからホスト側のＰＣＩバス２４へ出力する。
【００２７】
このシステム３０において、チップＣ１とチップＣ２とはストリームをＰＣＩインタフェースから出力するか他のチップに転送するかといった動作モードが異なるため、なんらかの手段でモードの指定が必要になる。このため、基本的な部分は同じで前記動作モードを異ならせたファームウェアをチップＣ１とチップＣ２にそれぞれダウンロードする。
【００２８】
しかし、各チップにそれぞれ前記ファームウェアを記憶したＲＯＭを接続して、該ＲＯＭからそれぞれファームウェアをダウンロードする構成にすると、２個のＲＯＭが必要になってしまう。
【００２９】
また、ホスト２からＰＣＩバス２４を介して２つのチップ用のファームウェアをダウンロードする構成では、ダウンロードに時間がかかり、起動までの時間が長くなってしまう。図１１は、この２つのチップ用のファームウェアをホスト２からＰＣＩバス２４を介してダウンロードする場合の説明図である。ここで１つのチップ用のファームウェアのダウンロードにかかる時間を便宜上１秒とした場合、ホスト２からチップＣ１へ２つのチップ用のファームウェアをダウンロードするのに２秒かかり（Ｓ１，Ｓ２）、チップＣ１のＣＰＵがチップＣ２用のファームウェアをチップＣ２へダウンロードするのに１秒かかるので（Ｓ３）、合計３秒ダウンロードにかかることになる。
【００３０】
そこで、本発明では、図１３に示すようにチップＣ１用のファームウェアをホスト２からチップＣ１へダウンロードし（Ｓ４）、チップＣ１が該ファームウェアをチップＣ２用の動作モードに変更してチップＣ２へダウンロードする（Ｓ５）。これにより、ダウンロードにかかる時間は、Ｓ４とＳ５の２秒で済むことになり、起動時間の短縮化が図れる。なお、上記のダウンロード時間は例示であり、現実にはファームウェアのサイズやローカルバス（ＰＣＩバス）の通信速度、チャンネル数（チップの数）等によって、その短縮の
効果は異なるが、同一の条件であれば、図１１に示した方式よりも図１３に示した本発明の方がダウンロード時間は短くなる。
【００３１】
〈実施形態１〉
【００３２】
以下、図面を参照して本発明を実施するための最良の形態について具体的に説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
本実施形態のシステム構成は、前述の図１と同じであり、ホスト２のＰＣＩスロットに拡張ボード（チューナカード）１を装着している。
【００３３】
ホスト２のマザーボード２１には、ＣＰＵ２０やメインメモリ（ＲＡＭ）、ＬＳＩ２２，２３、ＰＣＩバス２４等が備えられている。ＬＳＩ２２，２３は、ＣＰＵ２０やＲＡＭ、拡張ボードなどの間でのデータの受け渡しを管理する所謂チップセットである。該ＬＳＩ２２は、ＣＰＵ２０とローカルバスとを接続する機能や、映像信号をモニタ端子に出力するグラフィック機能を有している。また、ＬＳＩ２３は、ローカルバスの制御等を行う所謂ＰＣＩコントローラ、ＵＳＢコントローラ、ＩＤＥコントローラ、ＬＡＮコントローラ等の機能を有している。
【００３４】
図２は、拡張ボード１に備えたチップ等のブロック図である。該チップＣ１は、チューナＴ１からの映像信号及びオーディオ信号をディジタル信号に変換するディジタル変換部１１，１２や、該ディジタル信号を所定の圧縮形式（本例ではＭＰＥＧ）にエンコードするエンコーダ１３，１４、この所定形式とした映像信号及び音声信号を多重化してストリームを生成するＭＵＸ部１５、該ＭＵＸ部からのストリーム及び他のチップからのストリームを調停し、ＰＣＩインタフェース１７を介してホスト２へ出力するストリーム処理部１６を備えている。
【００３５】
また、チップＣ１は、ＣＰＵ１０や、シリアルインタフェース１８、メモリインタフェース１９を備えている。該メモリインタフェース１９にはＳＤＲＡＭ（記憶手段）３１が接続され、ＣＰＵ１０からＳＤＲＡＭ３１へのアクセス及びホスト２からＳＤＲＡＭ３１へのアクセスを可能にしている。また、シリアルインタフェース１８は、各ボード１のＣＰＵ１０の制御により、ファームウェア等の情報を他のチップ１へ転送する。該シリアルがデータを受信すると、１バイト受信するたびに内蔵ＣＰＵ１０へシリアル割込みが入る。
【００３６】
なお、上記ディジタル信号を処理する各部は、ハードウェアで構成しても良いが、ＣＰＵ１０がソフトウェアで実現する構成としても良い。本例では、ＣＰＵ１０がファームウェアに基づいて処理を行うことにより、上記エンコーダ１３，１４、ＭＵＸ部１５、ストリーム処理部１６（点線で示した範囲）の機能を実現している。
【００３７】
また、ＣＰＵ１０は、内蔵のブートローダやファームウェアに基づいて処理を実行することにより、受信手段や、参照手段、転送手段、変更手段の機能を実現している。
【００３８】
この受信手段としては、ホスト２からＰＣＩインタフェース１７を介して或は設定情報に基づいてマスタチップからシリアルインタフェース１８を介して転送された他のチップと共通のファームウェアを受信（ダウンロード）し、ＳＤＲＡＭ３１へ記憶させる。
【００３９】
参照手段としては、ファームウェアのヘッダ領域に含まれた設定情報を参照する。
転送手段としては、前記設定情報に応じて前記ファームウェアを他のチップに転送する。
変更手段としては、該設定情報を所定処理により、転送先のチップ用の設定情報に変更
する。
【００４０】
なお、本実施形態では、これらの手段の機能をＣＰＵがソフトウェアに基づいて実現したが、各手段をハードウェアで構成して各機能を達成しても良い。
【００４１】
チップＣ２は、上記チップＣ１と同一の構成であるが、動作モードを異ならせることにより、ストリームをＰＣＩインタフェース１７から出力せずにチップＣ１に出力（転送）している。なお、図２では、チップＣ２のＭＵＸ１５からチップＣ１のストリーム処理部１６へストリームを転送するように各部の機能を示したが、本例のチップＣ１，Ｃ２では、これらＭＵＸ１５，ストリーム処理部１６の機能をＣＰＵ１０がソフトウェアに従って実現しているので、実際にはチップＣ２のＣＰＵ１０がシリアルインタフェース１８を介してチップＣ１のＣＰＵ１０にストリームを転送している。
【００４２】
また、チップＣ１とチップＣ２は、ホスト２から受信したファームウェアを他のチップに送信するのか、他のチップから受信するのかを動作モードに応じて判断している。本例では、このファームウェアを送信する側のチップＣ１をマスターチップ、受け取る側のチップＣ２をスレーブチップとも称する。
【００４３】
図３は、ファームウェアのフォーマットを示す図である。該ファームウェアは、ヘッダ領域とデータ領域（ファームウェア本体）とからなり、このヘッダ領域には設定情報やファームウェアサイズ等を含んでいる。該設定情報は、動作モードを設定するための情報であり、ファームウェアのアドレス00hが00hであればマスターチップ、該アドレス00hが01hであればスレーブチップを示し、ファームウェアのアドレス01hが00hであればスレーブチップ無し、スレーブチップ有りを示す。
【００４４】
次に、これらのシステム３０にて実行する起動方法について、図４〜図５を用いて説明する。図４はシステム全体における起動処理のフローチャート、図５は各チップにおける起動処理のフローチャートである。
【００４５】
ホスト２は、電源の投入（起動）、再起動、スタンバイ状態からの復帰などにより、リセット状態が解除されると、拡張ボード１（チップＣ１、チップＣ２）の起動を開始させる（ステップ１１、以下Ｓ１１のように略記する）。
【００４６】
また、ホスト２はＰＣＩバス２４を介して拡張ボード１にアクセスし、チップＣ１のＳＤＲＡＭ３１にＢＡＲ１領域を割り当て、このＢＡＲ１領域の例えば80000h番地にファームウェアを書き込む（Ｓ１２）。
【００４７】
そしてホスト２は、ＰＣＩの所定のレジスタにフラグを立てる、例えばＰＣＩインタフェース１７内のメモリに１を書くことにより、ＰＣＩ割込みを行い、ファームウェアの展開を開始させる（Ｓ１３）。
【００４８】
一方、チップＣ１は、図５に示すように、ホスト２のリセット解除（電源の投入等）に応じてブートローダによる起動処理を開始する（Ｓ２１）。本例では、ＣＰＵ１０が、内蔵のＲＯＭからブートローダ（起動用のソフトウェア）を読み出し、このソフトウェアに従って起動処理を開始する。
【００４９】
先ずチップＣ１のＣＰＵ１０は、シリアル割込みが入ったか否かをチェックし（Ｓ２２）、シリアル割込みが無ければＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければステ
ップ２２に戻り、ＰＣＩ割込みが入れば、これを契機にＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００５０】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）。
【００５１】
このファームウェアに基づきＣＰＵ１０は、設定情報を参照して動作モードを認識する（Ｓ２６，Ｓ２７）。例えば、ＳＤＲＡＭ３１のアドレス00hを読み出し、この値が01hであればスレーブチップであることを認識して起動処理を中断し、この値が00hであればマ
スターチップであると認識し、スレーブチップの有無をチェックする。ここでアドレス01hの値が、00hであればスレーブチップ無し、01hであればスレーブチップ有りであること
を示している。
【００５２】
本例のチップＣ１は、マスターチップであり、スレーブチップ（チップＣ２）が接続されているので、ホスト２からの設定情報は、アドレス00hの値が00h、アドレス01hの値が01hとなっている。従ってＣＰＵ１０は、ステップ２７でスレーブチップ有りと判断し、該スレーブチップ用にＳＤＲＡＭ上の設定情報を変更する（Ｓ２８）。即ちＣＰＵ１０は、アドレス00hの値を01hに書き換える。
【００５３】
そして、チップＣ１のＣＰＵ１０は、書き換え後のファームウェアをＳＤＲＡＭ３１からシリアルインタフェース１８を介してチップＣ２へ送信する（Ｓ２９）。
【００５４】
また、チップＣ１は、ステップ２６でマスターチップであることを認識した場合、生成したストリームや他のチップＣ２から受信したストリームをＰＣＩインタフェース１７からホスト２へ出力するように動作モードを設定する。
【００５５】
一方、チップＣ２は、ホスト２のリセット解除（電源の投入等）に応じて、前述のチップＣ１と同じくブートローダによる起動処理を開始し（Ｓ２１）、シリアル割込み及びＰＣＩ割込みを順次チェックする（Ｓ２２，Ｓ２３）。なお、この起動処理に際し、チップＣ２は、設定情報以外チップＣ１と同一のプログラム（ブートローダ及びファームウェア）を使用しているが、動作モードの違いにより、発現するステップが異なっている。例えば、本例のチップＣ２は、スレーブチップであり、ＰＣＩインタフェース１７を使用しないので、ＰＣＩ割込みが入ることが無く、シリアル割込みが入るまで待機状態となる。
【００５６】
ここで、チップＣ１が前述の如くファームウェアをチップＣ２へ転送すると、チップ２のＣＰＵ１０にシリアル割込みが入る。このシリアル割込みを契機にＣＰＵ１０は、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【００５７】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００５８】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアに基づきＣＰＵ１０は、ＳＤＲＡＭ３１上の設定情報を参照して動作モードを認識する（Ｓ２６）。本例のチップＣ２は、スレーブチップであり、設定情報は、アドレス00hの値が01hとなっている。従ってＣＰＵ１０は、ステップ２６でスレーブチップと判断し、起動処理を完了する。
【００５９】
以上のように、本実施形態によれば、２チャンネルのストリームを生成する２つのチッ
プを備えた拡張ボードにおいて、２つのチップに対してホスト２から２つ分のファームウェアをダウンロードするのではなく、１つのファームウェアを転送させることにより、ダウンロード時間を短くし、拡張ボードの起動時間を短縮している。
【００６０】
また、起動処理を動作モードに応じて切替えるので、マスターチップであってもスレーブチップであっても同一構成のチップを用いることができるので、汎用性を維持しつつ上記起動時間の短縮化を達成できる。
【００６１】
〈実施形態２〉
図６は、実施形態２に係る拡張ボードのブロック図、図７は、実施形態２に係る起動処理のフローチャートである。本実施形態は、前述の実施形態１と比べ、チップを２つではなく、３つ以上のチップを備えた点が異なっている。なお、本実施形態において、前述の実施形態１と同一の要素には同符号を付すなどして、再度の説明を一部省略する。
【００６２】
本実施形態の拡張ボード１ａは、図６に示すように同一構成のチップＣ１，Ｃ２，Ｃ３を数珠繋ぎに備えている。該チップＣ２は、チップＣ１に対してはスレーブチップだが、チップ３に対してはマスターチップとなる。各チップＣ１，Ｃ２，Ｃ３は、実施形態１（図２）のチップと略同一であるが、本実施形態のチップは、上流側のチップ（マスターチップ）と接続するシリアルインタフェース１８ａと下流側のチップ（スレーブチップ）と接続するシリアルインタフェース１８ｂの複数系統のインタフェースを備えている。
【００６３】
ホスト２は、リセット状態が解除されると、拡張ボード１ａ（チップＣ１，Ｃ２，Ｃ３）の起動を開始させ（Ｓ１１）、ＰＣＩバス２４を介してチップＣ１のＳＤＲＡＭ３１にファームウェアを書き込む（Ｓ１２）。
【００６４】
そして、ホスト２は、ＰＣＩの所定のレジスタにフラグを立ててＰＣＩ割込みを行い、ファームウェアの展開を開始させる（Ｓ１３）。
【００６５】
一方、チップＣ１は、図７に示すように、ホスト２のリセット解除（電源の投入等）に応じてブートローダによる起動処理を開始する（Ｓ２１）。
【００６６】
先ずチップＣ１のＣＰＵ１０は、シリアル割込みが入ったか否かをチェックし（Ｓ２２）、シリアル割込みが無ければＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければステップ２２に戻り、ＰＣＩ割込みが入れば、これを契機にＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００６７】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）。
【００６８】
このファームウェアに基づきＣＰＵ１０は、設定情報を参照して動作モードを認識する（Ｓ２６，Ｓ２７）。例えば、ＳＤＲＡＭ３１のアドレス00hを読み出し、この値が01hであればマスターチップでない（ファームウェアを転送する必要がない）ことを認識して起動処理を中断し、この値が00hであればマスターチップであると認識し、スレーブチップ
の有無をチェックする。ここでＳＤＲＡＭ３１のアドレス01hの値は、スレーブチップの
数を示している。
【００６９】
本例のチップＣ１は、マスターチップであり、スレーブチップ（チップＣ２）が接続されているので、ホスト２からの設定情報は、アドレス00hの値が00h、アドレス01hの値が0
2hとなっている。従ってＣＰＵ１０は、ステップ２７でスレーブチップが２つ有ると判断し、該スレーブチップ用にＳＤＲＡＭ上の設定情報を変更する。具体的には、アドレス01hの値を減算し（Ｓ３２）、これによりアドレス01hの値が00hとなったか否かを判定する
（Ｓ３３）。チップＣ１の場合、ステップ３３において、アドレス01hの値は、02hから１を引いても01hとなるので、アドレス00hを変更せずにステップ３４へ移行し、ＳＤＲＡＭ上のファームウェアをシリアルインタフェース１８からスレーブチップＣ２へダウンロードして起動処理を完了する。
【００７０】
また、チップＣ１は、ステップ２３でＰＣＩ割込みが入ったことを認識した場合、生成したストリームや他のチップＣ２から受信したストリームをＰＣＩインタフェース１７からホスト２へ出力するように動作モードを設定する。
【００７１】
また、チップＣ２は、ホスト２のリセット解除（電源の投入等）に応じて、前述のチップＣ１と同じくブートローダによる起動処理を開始し（Ｓ２１）、シリアル割込み及びＰＣＩ割込みを順次チェックする（Ｓ２２，Ｓ２３）。
【００７２】
ここで、チップＣ１が前述の如くファームウェアをチップＣ２へ転送すると、チップ２のＣＰＵ１０にシリアル割込みが入る。このシリアル割込みを契機にチップＣ２のＣＰＵ１０は、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【００７３】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００７４】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアに基づきＣＰＵ１０は、ＳＤＲＡＭ３１上の設定情報を参照して動作モードを認識する（Ｓ２６）。本例のチップＣ２は、チップＣ３に対してはマスターチップであり、スレーブチップ（チップＣ２）が接続されているので、チップＣ１からの設定情報は、アドレス00hの値が00h、アドレス01hの値が02hとなっている。従ってＣＰＵ１０は、ステップ２７でスレーブチップが１つ有ると判断し、該スレーブチップ用にＳＤＲＡＭ上の設定情報を変更する。具体的には、アドレス01hの値を減算して上書きする（Ｓ
３２）。また、これによりアドレス01hの値が00hとなったか否かを判定する（Ｓ３３）。
【００７５】
チップＣ２の場合、ステップ３３において、アドレス01hの値は、01hから１を引いても00hとなるので、ステップ３５へ移行し、アドレス00hを01hに変更する。そして、ＣＰＵ
１０は、ＳＤＲＡＭ上のファームウェアをシリアルインタフェース１８からスレーブチップＣ２へダウンロードして（Ｓ３４）起動処理を完了する。
【００７６】
また、チップＣ３は、ホスト２のリセット解除（電源の投入等）に応じて、前述のチップＣ２と同じくブートローダによる起動処理を開始し（Ｓ２１）、シリアル割込み及びＰＣＩ割込みを順次チェックする（Ｓ２２，Ｓ２３）。
【００７７】
ここで、チップＣ２が前述の如くファームウェアをチップＣ３へ転送すると、チップ３のＣＰＵ１０にシリアル割込みが入る。このシリアル割込みを契機にチップＣ３のＣＰＵ１０は、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【００７８】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００７９】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアに基づきＣＰＵ１０は、ＳＤＲＡＭ３１上の設定情報を参照して動作モードを認識する（Ｓ２６）。本例のチップＣ３は、スレーブチップであるので、チップＣ２からの設定情報は、アドレス00hの値が00hとなっている。従ってＣＰＵ１０は、ステップ２７でスレーブチップが無いと判断し、起動処理を完了する。
【００８０】
以上のように本実施形態によれば、アドレス01hの値を順次減算してファームウェアを
スレーブチップに転送していくことで、３つ以上のチップを搭載した拡張ボードであっても起動時間の短縮化が図れる。
【００８１】
また、各チップは、チップＣ１〜Ｃ３若しくはそれ以上のどれなのかをＳＤＲＡＭ３１のアドレス00hで判断できる。
【００８２】
〈実施形態３〉
図８は、実施形態３に係る起動処理のフローチャートである。本実施形態は、前述の実施形態２と比べ、ファームウェアを完全にダウンロードする前にスレーブチップへの転送を開始する点が異なっており、その他の構成は同じである。なお、本実施形態において、前述の実施形態２と同一の要素には同符号を付すなどして、再度の説明を一部省略する。
【００８３】
本実施形態の拡張ボード１aは、図６に示したようにチップＣ１〜Ｃ３を備えている。
本実施形態における各チップＣ１〜Ｃ３のＣＰＵは、他のチップ（スレーブチップ）へファームウェアの主要部（データ部分）を転送する前、或はファームウェアの転送が完了する前に、前記設定情報を含むヘッダ領域を他のチップへ通知する設定情報通知手段としても機能している。
ホスト２は、リセット状態が解除されると、拡張ボード１ａ（チップＣ１，Ｃ２，Ｃ３）の起動を開始させ（Ｓ１１）、ＰＣＩバス２４を介してチップＣ１のＳＤＲＡＭ３１にファームウェアを書き込む（Ｓ１２）。
【００８４】
そして、ホスト２は、ファームウェアを２５６バイト書き込む度にＰＣＩの所定のレジスタにフラグを立ててＰＣＩ割込みを行う。なお、最後は２５６バイトに満たなくてもＰＣＩ割込みを行う（Ｓ１３）。
【００８５】
一方、チップＣ１は、図８に示すように、ホスト２のリセット解除（電源の投入等）に応じてブートローダによる起動処理を開始する（Ｓ２１）。
【００８６】
先ずチップＣ１のＣＰＵ１０は、ＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければＰＣＩ割込みが入るまで待機し、ＰＣＩ割込みが入ったらＳＤＲＡＭ３１にアクセスしてファームウェアのヘッダを解析する（Ｓ４１）。これによりＣＰＵ１０は、ファームウェアのサイズを取得し、このサイズをSIZE変数に代入する。
【００８７】
そしてＣＰＵ１０は、設定情報を参照して動作モードを認識する（Ｓ２６，Ｓ２７）。本例のチップＣ１は、マスターチップであり、スレーブチップ（チップＣ２）が接続されているので、ホスト２からの設定情報は、アドレス00hの値が00h、アドレス01hの値が02hとなっている。従ってＣＰＵ１０は、ステップ２７でスレーブチップが２つ有ると判断し
、該スレーブチップ用にＳＤＲＡＭ上の設定情報を変更する。具体的には、アドレス01h
の値を減算し（Ｓ３２）、これによりアドレス01hの値が00hとなったか否かを判定する（Ｓ３３）。チップＣ１の場合、ステップ３３において、アドレス01hの値は、02hから１を引いても01hとなるので、アドレス00hを変更せずにステップ３４へ移行し、ＳＤＲＡＭ上のファームウェアのヘッダ領域をシリアルインタフェース１８からスレーブチップＣ２へダウンロードする（Ｓ４２）。
【００８８】
ここでＣＰＵ１０は、次のＰＣＩ割込みが入るまで待機し（Ｓ４３）、ＰＣＩ割込みを契機に新たに受信した分のファームウェアをスレーブチップＣ３へ転送する。即ち、ステップ４４でSIZE変数が２５６バイトを超えていれば２５６バイトのファームウェアをチップＣ３へ転送し、チップＣ２の所定のレジスタにフラグをたててＰＣＩ割り込みし（Ｓ４５）、SIZE変数の値を２５６バイト減じてステップ４３に戻る（Ｓ４６）。また、ステップ４３でSIZE変数が２５６バイトを超えていなければSIZE変数分のファームウェアを転送し（Ｓ４７）、SIZE変数の値を０にし、チップＣ２の所定のレジスタにフラグをたててＰＣＩ割り込みし、ファームウェアの転送を完了する（Ｓ４８）。
【００８９】
このファームウェアの転送が完了した場合にＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００９０】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行して起動処理を完了する（Ｓ２５）。
【００９１】
また、チップＣ２は、ホスト２のリセット解除（電源の投入等）に応じてブートローダによる起動処理を開始する（Ｓ２１）。
【００９２】
先ずチップＣ２のＣＰＵ１０は、ＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければＰＣＩ割込みが入るまで待機し、ＰＣＩ割込みが入ったらＳＤＲＡＭ３１にアクセスしてファームウェアのヘッダを解析する（Ｓ４１）。これによりＣＰＵ１０は、ファームウェアのサイズを取得し、このサイズをSIZE変数に代入する。
【００９３】
そしてＣＰＵ１０は、設定情報を参照して動作モードを認識する（Ｓ２６，Ｓ２７）。本例のチップＣ２は、チップＣ３に対してマスターチップであり、スレーブチップ（チップＣ３）が接続されているので、チップＣ１からの設定情報は、アドレス00hの値が00h、アドレス01hの値が01hとなっている。従ってＣＰＵ１０は、ステップ２７でスレーブチップが１つ有ると判断し、該スレーブチップ用にＳＤＲＡＭ上の設定情報を変更する。具体的には、アドレス01hの値を減算し（Ｓ３２）、これによりアドレス01hの値が00hとなる
ので、アドレス00hの値を01hに変更し（Ｓ３５）、ＳＤＲＡＭ上のファームウェアのヘッダ領域をシリアルインタフェース１８からスレーブチップＣ３へダウンロードする（Ｓ４２）。
【００９４】
ここでＣＰＵ１０は、次のＰＣＩ割込みが入るまで待機し（Ｓ４３）、ＰＣＩ割込みを契機に新たに受信した分のファームウェアをスレーブチップＣ３へ転送する。即ち、ステップ４４でSIZE変数が２５６バイトを超えていれば２５６バイトのファームウェアをチップＣ３へ転送し、チップＣ３の所定のレジスタにフラグをたててＰＣＩ割り込みし（Ｓ４５）、SIZE変数の値を２５６バイト減じてステップ４３に戻る（Ｓ４６）。また、ステップ４３でSIZE変数が２５６バイトを超えていなければSIZE変数分のファームウェアを転送し（Ｓ４７）、SIZE変数の値を０にし、チップＣ３の所定のレジスタにフラグをたててＰＣＩ割り込みし、ファームウェアの転送を完了する（Ｓ４８）。
【００９５】
このファームウェアの転送が完了した場合にＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【００９６】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行して起動処理を完了する（Ｓ２５）。
【００９７】
また、チップＣ３は、ホスト２のリセット解除（電源の投入等）に応じてブートローダによる起動処理を開始する（Ｓ２１）。
【００９８】
先ずチップＣ３のＣＰＵ１０は、ＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければＰＣＩ割込みが入るまで待機し、ＰＣＩ割込みが入ったらＳＤＲＡＭ３１にアクセスしてファームウェアのヘッダを解析する（Ｓ４１）。これによりＣＰＵ１０は、ファームウェアのサイズを取得し、このサイズをSIZE変数に代入する。
【００９９】
そしてＣＰＵ１０は、設定情報を参照して動作モードを認識する（Ｓ２６，Ｓ２７）。本例のチップＣ３は、スレーブチップであるので、チップＣ２からの設定情報は、アドレス00hの値が01h、アドレス01hの値が00hとなっている。
【０１００】
従ってＣＰＵ１０は、ステップ２７でスレーブチップが無いと判断し、ファームウェアの転送をせずにダウンロードのみを行う（Ｓ４９〜Ｓ５２）。即ちＣＰＵ１０は、このＰＣＩ割込みが入った際、SIZE変数が２５６バイトを超えているか否かを判断し（Ｓ５０）、超えていればSIZE変数を２５６バイト減じてステップ４９に戻る（Ｓ５１）。また、ステップ５０でSIZE変数を超えていなければSIZE変数を０とし、ダウンロードを完了する（Ｓ５２）
このファームウェアのダウンロードが完了した場合にＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１０１】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行して起動処理を完了する（Ｓ２５）。
【０１０２】
以上のように本実施形態によれば、ファームウェアを完全にダウンロードする前に、スレーブチップへの転送を開始することができ、スレーブチップの起動を早くすることができる。
【０１０３】
〈実施形態４〉
図９は、実施形態４に係る拡張ボードのブロック図、図１０は、実施形態４に係る起動処理のフローチャートである。本実施形態は、前述の実施形態２と比べ、動作モードをヘッダ領域でなく各チップに設けたピンで設定する点が異なっており、その他の構成は同じである。なお、本実施形態において、前述の実施形態２と同一の要素には同符号を付すなどして、再度の説明を一部省略する。
【０１０４】
本実施形態の拡張ボード１ｂは、図９に示すように同一構成のチップＣ１，Ｃ２，Ｃ３を数珠繋ぎに備えている。該チップＣ２は、チップＣ１に対してはスレーブチップだが、チップ３に対してはマスターチップとなる。チップＣ１，Ｃ２，Ｃ３には、それぞれマスターチップか否かを示すピン３２を接続している。該ピン３２は、０や１の状態にセットでき、０の状態であればマスターチップであることを示し、１の状態であればスレーブチップであることを示す。
【０１０５】
ホスト２は、リセット状態が解除されると、拡張ボード１ｂ（チップＣ１，Ｃ２，Ｃ３）の起動を開始させ（Ｓ１１）、ＰＣＩバス２４を介してチップＣ１のＳＤＲＡＭ３１にファームウェアを書き込む（Ｓ１２）。
【０１０６】
そして、ホスト２は、ＰＣＩの所定のレジスタにフラグを立ててＰＣＩ割込みを行い、ファームウェアの展開を開始させる（Ｓ１３）。
【０１０７】
一方、チップＣ１は、図１０に示すように、ホスト２のリセット解除（電源の投入等）に応じてブートローダによる起動処理を開始する（Ｓ２１）。
【０１０８】
先ずチップＣ１のＣＰＵ１０は、シリアル割込みが入ったか否かをチェックし（Ｓ２２）、シリアル割込みが無ければＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければステップ２２に戻り、ＰＣＩ割込みが入れば、これを契機にＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１０９】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）。
【０１１０】
このファームウェアに基づきＣＰＵ１０は、ピン設定情報を参照して動作モードを認識する（Ｓ５１）。即ち、ピン３２の状態を参照し、ピン３２が１にセットされていればマスターチップでない（ファームウェアを転送する必要がない）ことを認識して起動処理を中断し、ピン３２が０にセットされていればマスターチップであると認識し、ファームウェアの転送を行う（Ｓ５２）。本例のチップＣ１は、マスターチップであり、スレーブチップ（チップＣ２）が接続されているので、ピン３２は０にセットされており、スレーブチップが有ると判断し、ＳＤＲＡＭ上のファームウェアをシリアルインタフェース１８からスレーブチップＣ２へ転送して起動処理を完了する。
【０１１１】
また、チップＣ１は、ステップ２３でＰＣＩ割込みが入ったことを認識した場合、生成したストリームや他のチップＣ２，Ｃ３から受信したストリームをＰＣＩインタフェース１７からホスト２へ出力するように動作モードを設定する。
【０１１２】
また、チップＣ２は、ホスト２のリセット解除（電源の投入等）に応じて、前述のチップＣ１と同じくブートローダによる起動処理を開始し（Ｓ２１）、シリアル割込み及びＰＣＩ割込みを順次チェックする（Ｓ２２，Ｓ２３）。
【０１１３】
ここで、チップＣ１が前述の如くファームウェアをチップＣ２へ転送すると、チップ２のＣＰＵ１０にシリアル割込みが入る。このシリアル割込みを契機にチップＣ２のＣＰＵ１０は、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【０１１４】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１１５】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアに基づきＣＰＵ１０は、ピン設定情報を参照して動作モードを認識
する（Ｓ５１）。本例のチップＣ２は、チップＣ３に対してマスターチップであるので、ピン３２は０にセットされており、スレーブチップが有ると判断し、ＳＤＲＡＭ上のファームウェアをシリアルインタフェース１８からスレーブチップＣ３へ転送して起動処理を完了する（Ｓ５２）。
【０１１６】
また、チップＣ３は、ホスト２のリセット解除（電源の投入等）に応じて、前述のチップＣ２と同じくブートローダによる起動処理を開始し（Ｓ２１）、シリアル割込み及びＰＣＩ割込みを順次チェックする（Ｓ２２，Ｓ２３）。
【０１１７】
ここで、チップＣ２が前述の如くファームウェアをチップＣ３へ転送すると、チップ３のＣＰＵ１０にシリアル割込みが入る。このシリアル割込みを契機にチップＣ３のＣＰＵ１０は、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【０１１８】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１１９】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアに基づきＣＰＵ１０は、ピン設定情報を参照して動作モードを認識する（Ｓ５１）。本例のチップＣ３は、スレーブチップであるので、ピン３２は１にセットされており、ファームウェアの転送をせずに起動処理を完了する。
【０１２０】
以上のように本実施形態によれば、ヘッダ領域の書換えをせずに、起動時間の短縮化が図れる。
【０１２１】
〈実施形態５〉
図１１は、実施形態５に係る起動処理のフローチャートである。本実施形態は、前述の実施形態４と比べ、各チップに設けたピンの設定に基づきスレーブチップがマスターチップに設定情報を伝える点が異なっており、その他の構成は同じである。本実施形態において、前述の実施形態４と同一の要素には同符号を付すなどして、再度の説明を一部省略する。本実施形態のハードウェア構成は、実施形態４の図９で示した構成と同じである。なお、本実施形態における各チップＣ１〜Ｃ３のＣＰＵは、他のチップ（マスターチップ）に設定情報（スレーブチップが接続されている旨の情報）を通知する手段としても機能している。
【０１２２】
本実施形態において、拡張ボード１ｂの各チップＣ１，Ｃ２，Ｃ３に設けたピン３２は、０や１の状態にセットでき、１の状態であればスレーブチップであることを示し、０の状態であればスレーブチップでないことを示す。
【０１２３】
ホスト２は、リセット状態が解除されると、拡張ボード１ｂ（チップＣ１，Ｃ２，Ｃ３）の起動を開始させ（Ｓ１１）、ＰＣＩバス２４を介してチップＣ１のＳＤＲＡＭ３１にファームウェアを書き込む（Ｓ１２）。
【０１２４】
そして、ホスト２は、ＰＣＩの所定のレジスタにフラグを立ててＰＣＩ割込みを行い、ファームウェアの展開を開始させる（Ｓ１３）。
【０１２５】
一方、各チップＣ１，Ｃ２，Ｃ３は、図１１に示すように、ホスト２のリセット解除に応じてブートローダによる起動処理を開始する（Ｓ２１）。
【０１２６】
各チップＣ１，Ｃ２，Ｃ３は、まず、ピン３２の状態を参照する（Ｓ６１）。本実施形態においてチップＣ３のピン３２は１にセットされているので、該チップＣ３のＣＰＵ１０は、スレーブチップであると認識して動作モードを設定すると共に、設定情報をマスターチップＣ２へ送信する（Ｓ６２）。そして、チップＣ３は、設定情報を受信しないので、ステップ６３をパスし、シリアル割込みがあるまで待機する（Ｓ２２，Ｓ２３）。
【０１２７】
また、チップＣ２のＣＰＵ１０は、ピン３２の状態を参照し（Ｓ６１）、該状態が１であるので動作モードをスレーブチップとして設定すると共に、設定情報をマスターチップＣ１に送信する（Ｓ６２）。そして、チップＣ２のＣＰＵ１０は、設定情報の受信が有ったか否かを判定し（Ｓ６３）、チップＣ３から受信しているので、動作モードをマスターチップとしても設定する（Ｓ６４）。その後、チップＣ２のＣＰＵ１０は、シリアル割込みがあるまで待機する（Ｓ２２，Ｓ２３）。
【０１２８】
一方、チップＣ１のＣＰＵ１０は、ピン３２の状態を参照し（Ｓ６１）、該状態が０であるので、ステップ６２をパスする。そしてチップＣ１のＣＰＵ１０は、設定情報の受信が有ったか否かを判定し（Ｓ６３）、チップＣ２から受信しているので、動作モードをマスターチップとして設定する（Ｓ６４）。
【０１２９】
次にチップＣ１のＣＰＵ１０は、シリアル割込みが入ったか否かをチェックし（Ｓ２２）、シリアル割込みが無ければＰＣＩ割込みが入ったか否かをチェックする（Ｓ２３）。即ち、ＣＰＵ１０は、ＰＣＩインタフェース１７のメモリにＰＣＩ割り込みのためのフラグが立っているか否かを参照する。ここで、ＣＰＵ１０は、ＰＣＩ割込みが無ければステップ２２に戻り、ＰＣＩ割込みが入れば、これを契機にＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１３０】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）。
【０１３１】
このファームウェアの制御によりＣＰＵ１０は、動作モードを参照し（Ｓ６５）、マスターチップでなければ起動処理を完了し、マスターチップであればファームウェアの転送を行う（Ｓ６６）。本例のチップＣ１は、マスターチップであり、スレーブチップ（チップＣ２）が接続されているので、ファームウェアをシリアルインタフェース１８からスレーブチップＣ２へ転送して起動処理を完了する。
【０１３２】
なお、チップＣ１は、ステップ６１でスレーブチップでないことを認識した場合、自身のＭＵＸ１５で生成したストリームや他のチップＣ２，Ｃ３から受信したストリームをＰＣＩインタフェース１７からホスト２へ出力するように動作モードを設定する。
【０１３３】
また、チップＣ２は、チップＣ１によりファームウェアが転送されて、シリアル割込みが入ると、このシリアル割込みを契機にＣＰＵ１０が、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【０１３４】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１３５】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアの制御によりＣＰＵ１０は、動作モードを参照する（Ｓ６５）。本
例のチップＣ２は、チップＣ３に対してマスターチップであるので、ＳＤＲＡＭ上のファームウェアをシリアルインタフェース１８からスレーブチップＣ３へ転送して起動処理を完了する（Ｓ６６）。
【０１３６】
また、チップＣ３は、チップＣ２によりファームウェアが転送されて、シリアル割込みが入ると、このシリアル割込みを契機にＣＰＵ１０が、ヘッダを受信して解析し、ファームウェアのサイズを認識する（Ｓ３０）。そしてＣＰＵ１０はこのサイズ分のファームウェアを受信し、ＳＤＲＡＭ３１に記憶させる（Ｓ３１）。
【０１３７】
該ファームウェアの受信を完了するとＣＰＵ１０は、ＳＤＲＡＭ３１からファームウェアを読み出してＣＰＵ１０内のローカルメモリに展開する（Ｓ２４）。
【０１３８】
該展開後、ＣＰＵ１０は、このローカルメモリ上のファームウェアを実行し、ブートローダからファームウェアへ制御を移行する（Ｓ２５）
このファームウェアの制御によりＣＰＵ１０は、動作モードを参照する（Ｓ６５）。本例のチップＣ３は、マスターチップではないので、ファームウェアの転送をせずに起動処理を完了する。
【０１３９】
以上のように本実施形態によれば、ヘッダ領域の書換えをせずに、起動時間の短縮化が図れる。
【０１４０】
〈その他〉
本発明は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１４１】
例えば、以下に付記した構成であっても上述の実施形態と同様の効果が得られる。また、これらの構成要素は可能な限り組み合わせることができる。
【０１４２】
（付記１）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップであって、
ファームウェアを受信する受信手段と、
設定情報を参照する参照手段と、
前記設定情報に応じて前記ファームウェアを他のチップに転送する転送手段と
を備えたチップ。
【０１４３】
（付記２）  前記ファームウェアが前記設定情報を有し、
該設定情報を所定処理により、転送先のチップ用の設定情報に変更する変更手段を備えた付記１に記載のチップ。
【０１４４】
（付記３）  前記設定情報が従属するチップの有無を示し、
前記転送手段は、従属するチップが有る場合にはファームウェアを転送し、従属するチップが無い場合にはファームウェアの転送を行わない付記１に記載のチップ。
【０１４５】
（付記４）  前記設定情報が従属するチップの数を示し、
前記変更手段が前記チップの数を減算する付記２に記載のチップ。
【０１４６】
（付記５）  前記受信手段によるファームウェアの受信と並行して前記転送手段によるファームウェアの転送を行う付記１に記載のチップ。
【０１４７】
（付記６）  前記参照手段が、前記設定情報を示すピンの状態を参照する付記１に記載
のチップ。
【０１４８】
（付記７）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップであって、
前記共通のファームウェアである他のチップから設定情報に基づき転送されたファームウェアを受信する受信手段
を備えたチップ。
【０１４９】
（付記８）  前記他のチップへファームウェアを転送する転送手段と、前記他のチップへファームウェアを転送する前に、前記設定情報を他のチップへ通知する設定情報通知手段を備えた請求項７に記載のチップ。
（付記９）  前記設定情報を前記他のチップに通知する手段を備えた付記７に記載のチップ
【０１５０】
（付記１０）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップが行う方法であって、
ファームウェアを受信するステップと、
設定情報を参照するステップと、
前記設定情報に応じて前記ファームウェアを他のチップに転送するステップと、
を行うチップの起動方法。
【０１５１】
（付記１１）  前記ファームウェアが前記設定情報を有し、
該設定情報を所定処理により、転送先のチップ用の設定情報に変更するステップを備えた付記１０に記載のチップの起動方法。
【０１５２】
（付記１２）  前記設定情報が従属するチップの有無を示し、
前記ファームウェアを転送するステップにて、従属するチップが有る場合にはファームウェアを転送し、従属するチップが無い場合にはファームウェアの転送を行わない付記１０に記載のチップの起動方法。
【０１５３】
（付記１３）  前記設定情報が従属するチップの数を示し、
前記設定情報を変更するステップにて、前記チップの数を減算する付記１１に記載のチップの起動方法。
【０１５４】
（付記１４）  前記ファームウェアの受信と並行して前記ファームウェアの転送を行う付記１０に記載のチップの起動方法。
【０１５５】
（付記１５）  前記設定情報を参照するステップにて、前記設定情報を示すピンの状態を参照する付記１０に記載のチップの起動方法。
【０１５６】
（付記１６）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップに実行されるプログラムであって、
ファームウェアを受信するステップと、
設定情報を参照するステップと、
前記設定情報に応じて前記ファームウェアを他のチップに転送するステップと、
を行うチップのプログラム。
【０１５７】
（付記１７）  前記ファームウェアが前記設定情報を有し、
該設定情報を所定処理により、転送先のチップ用の設定情報に変更するステップを備えた付記１６に記載のチップのプログラム。
【０１５８】
（付記１８）  前記設定情報が従属するチップの有無を示し、
前記ファームウェアを転送するステップにて、従属するチップが有る場合にはファームウェアを転送し、従属するチップが無い場合にはファームウェアの転送を行わない付記１６に記載のチップのプログラム。
【０１５９】
（付記１９）  前記設定情報が従属するチップの数を示し、
前記設定情報を変更するステップにて、前記チップの数を減算する付記１７に記載のチップのプログラム。
【０１６０】
（付記２０）  前記ファームウェアの受信と並行して前記ファームウェアの転送を行う付記１６に記載のチップのプログラム。
【０１６１】
（付記２１）  前記設定情報を参照するステップにて、前記設定情報を示すピンの状態を参照する付記１６に記載のチップのプログラム。
【０１６２】
（付記２２）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行う複数のチップを備え、
前記各チップが、
ファームウェアを受信する受信手段と、
設定情報を参照する参照手段と、
前記設定情報に応じて前記ファームウェアを他のチップに転送する転送手段と、
を備えた装置。
【０１６３】
（付記２３）  前記ファームウェアが前記設定情報を有し、
該設定情報を所定処理により、転送先のチップ用の設定情報に変更する変更手段を備えた付記２２に記載の装置。
【０１６４】
（付記２４）  前記設定情報が従属するチップの有無を示し、
前記転送手段は、従属するチップが有る場合にはファームウェアを転送し、従属するチップが無い場合にはファームウェアの転送を行わない付記２２に記載の装置。
【０１６５】
（付記２５）  前記設定情報が従属するチップの数を示し、
前記変更手段が前記チップの数を減算する付記２３に記載の装置。
【０１６６】
（付記２６）  前記受信手段によるファームウェアの受信と並行して前記転送手段によるファームウェアの転送を行う付記２２に記載の装置。
【０１６７】
（付記２７）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行う複数のチップが行う方法であって、
ファームウェアを受信するステップと、
設定情報を参照するステップと、
前記設定情報に応じて前記ファームウェアを他のチップに転送するステップと、
を行う複数チップの起動方法。
（付記２８）  少なくとも一部が他のチップと共通のファームウェアに基づいて情報処理を行うチップが実行する起動方法であって、
起動時に前記他のチップから設定情報に基づいて転送されたファームウェアを受信するチップの起動方法。
【０１６８】
（付記２９）  前記設定情報を他のチップへ通知してから、前記他のチップへファーム
ウェアを転送する付記２８に記載のチップの起動方法。
（付記３０）
前記他のチップに設定情報を通知する付記２８に記載のチップの起動方法。
【図面の簡単な説明】
【０１６９】
【図１】本発明に係る装置を備えたシステムの概略図
【図２】拡張ボードに備えたチップ等のブロック図
【図３】ファームウェアのフォーマットを示す図
【図４】システム全体における起動処理のフローチャート
【図５】各チップにおける起動処理のフローチャート
【図６】実施形態２に係る拡張ボードのブロック図
【図７】実施形態２に係る起動処理のフローチャート
【図８】実施形態３に係る起動処理のフローチャート
【図９】実施形態４に係る拡張ボードのブロック図
【図１０】実施形態４に係る起動処理のフローチャート
【図１１】実施形態５に係る起動処理のフローチャート
【図１２】ダウンロード時間の比較例を示す図
【図１３】本発明の原理説明図
【符号の説明】
【０１７０】
１  装置（拡張ボード、チューナカード）
を装着している。
１１，１２  ディジタル変換部
１３，１４  エンコーダ
１５  ＭＵＸ部
１６  ストリーム処理部
１７  ＰＣＩインタフェース
１０  ＣＰＵ
１８  シリアルインタフェース
１９  メモリインタフェース
２１  マザーボード
２０  ＣＰＵ
２２，２３  ＬＳＩ
２４  ＰＣＩバス
３１  ＳＤＲＡＭ（記憶手段）
【図１】
0004644569.tif 000002
【図２】
0004644569.tif 000003
【図３】
0004644569.tif 000004
【図４】
0004644569.tif 000005
【図５】
0004644569.tif 000006
【図６】
0004644569.tif 000007
【図７】
0004644569.tif 000008
【図８】
0004644569.tif 000009
【図９】
0004644569.tif 000010
【図１０】
0004644569.tif 000011
【図１１】
0004644569.tif 000012
【図１２】
0004644569.tif 000013
【図１３】
0004644569.tif 000014