(57)【要約】  複数のＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）と単一の共有された記憶装置とのインタフェースをとるためのシステム及び方法が提供される。本開示のシステム及び方法は、オペレーティングコードを有するメモリと共通の通信バスとを共有する２以上のＳｏＣコントローラ回路へのオペレーティングコードのダウンロードを制御する。各コントローラは、通常処理において通信バスのマスタコントローラである。システム及び方法は、各デバイスが共通のオペレーティングコードを別々にダウンロードすることを可能にするため、通信バスへの各コントローラ回路のアクセスを逐次的に制御することに関する。システム及び方法は、チェーンの前のコントローラがそれのコードダウンロードを終了するまで通信バスへのアクセスを禁止するため、各コントローラがリセット状態に維持されるように、コントローラを直列にチェーン化することと共に、別々の初期化回路又はデバイスを利用する。
2012527037.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのコントローラにより使用される命令コードセットを格納し、共通の通信バスを介し前記命令コードセットを提供するメモリと、
前記メモリに接続され、前記共通の通信バスを介し前記命令コードセットをダウンロードするプログラマブルな第１コントローラと、
前記メモリと前記第１コントローラとに接続され、前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、前記共通の通信バスを介し前記命令コードセットをダウンロードする第２コントローラと、
を有する装置。
【請求項２】
前記第１コントローラは、前記命令コードセットをダウンロードしているとき、前記第２コントローラによる前記通信バスへのアクセスを禁止する、請求項１記載の装置。
【請求項３】
前記第１コントローラは、前記第２コントローラをリセット状態に維持する信号を前記第２コントローラに提供することによってアクセスを禁止する、請求項２記載の装置。
【請求項４】
前記第１コントローラは、前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、前記通信バスから前記第１コントローラを切断する、請求項１記載の装置。
【請求項５】
スイッチング装置は、前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、前記通信バスから前記第１コントローラを切断する、請求項１記載の装置。
【請求項６】
前記スイッチング装置は、ＦＥＴ（Ｆｉｅｌｄ  Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）バススイッチである、請求項５記載の装置。
【請求項７】
前記スイッチング装置は、３状態可能なバッファである、請求項５記載の装置。
【請求項８】
前記第２コントローラは、前記第２コントローラへの前記命令コードセットのダウンロードが終了すると、前記第１コントローラを前記通信バスに接続する信号を前記第１コントローラに提供する、請求項１記載の装置。
【請求項９】
前記第１コントローラに接続され、前記第１及び第２コントローラへの前記命令コードセットの逐次的なダウンロードを開始するため、前記第１コントローラをリセットする信号を提供する初期化装置をさらに有する、請求項１記載の装置。
【請求項１０】
前記初期化装置は、当該装置の供給電圧が所定の電圧を超えると、前記信号を提供するよう構成される、請求項９記載の装置。
【請求項１１】
複数のコントローラと単一の共有メモリとのインタフェースをとる方法であって、
前記複数のコントローラにより使用される命令コードセットを格納するステップと、
共有の通信バスを介し第１コントローラに前記命令コードセットをダウンロードするステップと、
前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、前記共通の通信バスを介し第２コントローラに前記命令コードセットをダウンロードするステップと、
を有する方法。
【請求項１２】
前記第１コントローラが前記命令コードセットをダウンロードしているとき、前記第２コントローラによる前記通信バスへのアクセスを禁止するステップをさらに有する、請求項１１記載の方法。
【請求項１３】
前記アクセスを禁止するステップはさらに、前記第１コントローラが前記第２コントローラをリセット状態に維持する信号を前記第２コントローラに提供することを含む、請求項１２記載の方法。
【請求項１４】
前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、前記通信バスから前記第１コントローラを切断するステップをさらに有する、請求項１１記載の方法。
【請求項１５】
前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、スイッチング装置が前記通信バスから前記第１コントローラを切断するステップをさらに有する、請求項１１記載の方法。
【請求項１６】
前記スイッチング装置は、ＦＥＴ（Ｆｉｅｌｄ  Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）バススイッチ又は３状態可能なバッファである、請求項１５記載の方法。
【請求項１７】
前記第２コントローラへの前記命令コードセットのダウンロードが終了すると、前記第１コントローラを前記通信バスに接続する信号を前記第２コントローラから前記第１コントローラに提供するステップをさらに有する、請求項１１記載の方法。
【請求項１８】
前記第１及び第２コントローラへの前記命令コードセットの逐次的なダウンロードを開始するため、前記第１コントローラをリセットする初期化信号を提供するステップをさらに有する、請求項１１記載の方法。
【請求項１９】
前記初期化信号は、供給電圧が所定の電圧を超えると提供される、請求項１８記載の方法。
【請求項２０】
複数のコントローラにより使用される命令コードセットを格納する手段と、
共通の通信バスを介し第１コントローラに前記命令コードセットをダウンロードする手段と、
前記第１コントローラへの前記命令コードセットのダウンロードが終了すると、前記共通の通信バスを介し第２コントローラに前記命令コードセットをダウンロードする手段と、
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００９年５月１５日に出願された仮出願第６１／１７８，６８３号“Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｓｈａｒｉｎｇ  Ｍｅｍｏｒｙ  ｂｅｔｗｅｅｎ  Ｍａｓｔｅｒ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ”からの優先権を主張する。
【０００２】
本開示は、一般に集積回路及び記憶装置に関し、より詳細には、単一の共有化された記憶装置と複数のＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）とのインタフェースをとるシステム及び方法に関する。
【背景技術】
【０００３】
今日、ＳｏＣとして知られる複数の複合的な集積回路を内蔵することは、ビデオヘッドエンド信号配信システムやビデオセットトップボックスコントローラなど、デバイスに用いられる電子デザインにとって一般的である。ＳｏＣは、典型的には、信号処理チェーンにあるような信号変調又は復調、信号符号化又は復号化及び信号圧縮又は伸長を含む機能群を含む。ＳｏＣはまた、典型的には、これらの機能のそれぞれと、デバイスを実行させるのに必要な多数の外部インタフェース機能とを制御するためのプログラマブルコントローラ又はマイクロプロセッサを含む。
【０００４】
ＳｏＣのためのプログラミングコードは、フラッシュメモリデバイスなどの外部の記憶装置にしばしば格納される。ＳｏＣは、典型的には、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスを用いて、電源オン又はリセット時にソフトウェアイメージをダウンロードする。この処理中、ＳｏＣは、ＳＰＩマスタとして動作し、フラッシュメモリデバイスがＳＰＩスレーブとして応答することを期待する。各ＳｏＣは同一のコードイメージを実行可能であるため、単一のフラッシュメモリデバイスを利用することは、プリント回路基板スペース、材料コストの請求及び製造コストを節約する。各ＳｏＣは自律的に実行するため、セパレートメモリが、各ＳｏＣに接続されてもよい。しかしながら、この構成は、同一のコードイメージが複数のＳｏＣデバイスの各ＳｏＣに搭載される場合、非効率である。複数のマスタコントローラＳｏＣと単一の共有化された記憶装置とのインタフェースをとる問題を解決するシステム及び方法を有することが望ましい。
【発明の概要】
【０００５】
複数のプログラマブルコントローラと単一の共有メモリとをインタフェースをとるためのシステム及び方法が提供され、本方法は、複数のプログラマブルコントローラにより私用される命令コードセットを格納し、共通の通信バスを介し第１プログラマブルコントローラに命令コードセットをダウンロードし、第１プログラマブルコントローラへの命令コードセットのダウンロードが終了すると、共通の通信バスを介し第２プログラマブルコントローラに命令コードセットをダウンロードすることを含む。
【図面の簡単な説明】
【０００６】
本開示の上記及び他の態様、特徴及び効果は、添付された図面と共に参照される好適な実施例の以下の詳細な説明から明らかになるであろう。
【図１】図１は、本開示による一例となるビデオコントローラデバイスのブロック図である。
【図２】図２は、本開示による単一の共有化された記憶装置と複数のＳｏＣとのインタフェースをとる一例となるシステムのブロック図である。
【図３】図３は、本開示による単一の共有化された記憶装置と複数のＳｏＣとのインタフェースをとる一例となる方法のフローチャートである。
【図４】図４は、本開示の実施例による一例となる信号タイミング図を示す。  図面は本開示のコンセプトを示すためのものであり、本開示を示す唯一の可能な構成であるとは限らないことが理解されるべきである。
【発明を実施するための形態】
【０００７】
図面に示される要素はハードウェア、ソフトウェア又はこれらの組み合わせの各種形態により実現可能であることが理解されるべきである。好ましくは、これらの要素は、プロセッサ、メモリ及び入出力インタフェースを含む１以上の適切にプログラムされた汎用装置上においてハードウェアとソフトウェアとの組み合わせにより実現される。ここで、“接続される（ｃｏｕｐｌｅｄ）”という用語は、直接的な接続又は１以上の中間コンポーネントを介した間接的な接続を意味すると定義される。このような中間コンポーネントは、ハードウェアとソフトウェアの双方をベースとするコンポーネントを含むものであってもよい。
【０００８】
本説明は、本開示の原理を説明する。当業者は、ここに明示的に開示又は図示されないが、その趣旨及び範囲内に含まれる本開示の原理を実現する各種構成を創出可能であることが理解されるであろう。
【０００９】
ここに記載されるすべての具体例と条件付言語とは、読者が本開示の原理と技術の前進に本発明者が寄与するコンセプトとを理解するのに役立つ教育的な目的のためであり、このような具体的に記載される具体例と条件に限定することないものとして解釈されるべきである。
【００１０】
さらに、本開示の原理、態様及び実施例をこれらの具体的な具体例と共に記載するここでのすべての説明は、それの構造的及び機能的に均等なものを含むことが意図される。さらに、このような均等は現在知られている均等と共に将来に開発される均等との双方を含み、すなわち、構成に関わらず同一の機能を実行する開発された任意の要素を含むことが意図される。
【００１１】
従って、例えば、ここに提供されるブロック図は本開示の原理を実現する例示的な回路の概念図を表すことが、当業者に理解されるであろう。同様に、フローチャート、フロー図、状態遷移図、擬似コードなどは、コンピュータ可読媒体に実質的に表現され、明示的には図示されないコンピュータ又はプロセッサにより実行される各種プロセスを表すことが理解される。
【００１２】
図面に示される各種要素の機能は、専用ハードウェアと共に適切なソフトウェアと関連してソフトウェアを実行可能なハードウェアとを利用することにより提供されてもよい。プロセッサにより提供されると、これらの機能は、単一の専用プロセッサ、単一の共有プロセッサ又は一部が共有されてもよい複数の個別のプロセッサにより提供されてもよい。さらに、“プロセッサ”又は“コントローラ”という幼保の明示的な利用は、ソフトウェアを実行可能なハードウェアのみを表すよう解釈されるべきでなく、限定することなく、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ソフトウェアを格納するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及び不揮発性ストレージを非明示的に含むものであってもよい。
【００１３】
他の従来の及び／又はカスタムハードウェアがまた含まれてもよい。同様に、図面に示されるスイッチは、単なる概念的なものである。これらの機能は、プログラムロジックの実行を介し、専用ロジックを介し、プログラム制御と専用ロジックとのやりとりを介し、又は手動により実行されてもよく、コンテクストからより具体的に理解される実施者により特定の技術が選択可能である。
【００１４】
ここでの請求項では、指定された機能を実行する手段として説明される何れかの要素は、例えば、ａ）当該機能を実行する回路要素の組み合わせ、又はｂ）当該機能を実行するためソフトウェアを実行するのに適切な回路と組み合わされたファームウェア、マイクロコードなどを含む何れかの形態によるソフトウェアなどを含む、当該機能を実行する何れかの方法を含むことが意図される。このような請求項により規定されるような本開示は、記載された各種手段により提供される機能が、請求項が求める方法により組み合わされ、一緒にされるという事実にある。従って、これらの機能を提供可能な手段はここに示されるものと均等であるとみなされる。
【００１５】
開示される実施例は、複数のＳｏＣ集積回路と共有メモリとのインタフェースをとる問題に関する。より詳細には、これらの実施例は、各マスタ専用ＳｏＣがＳＰＩバスなどの単一の通信バスを用いて接続されるとき、ＳＰＩバスフラッシュメモリなどの単一の記憶装置から複数のＳｏＣがブートする問題に対処する。
【００１６】
本開示のシステム及び方法は、各コントローラが通常動作において通信バスのマスタコントローラである、共通メモリと共通通信バスとを共有する２以上のＳｏＣコントローラ回路への実行コードのダウンロードを制御することを提供する。本開示は、各デバイスが共通実行コードを別々にダウンロードすることを可能にするため、各ＳｏＣコントローラ回路による通信バスへの逐次的なアクセスに関する。本開示は、分離された初期化回路又はデバイスを利用すると共に、コントローラを直列的にチェーン化し、各コントローラがチェーンの前のコントローラがそれのコードのダウンロードを終了するまでに通信バスにアクセスすることを禁止するため、リセット状態に保持されることを求めるものであってもよい。
【００１７】
図１を参照して、本開示の一態様によるビデオコントローラデバイス１０の実施例のブロック図が示される。デバイス１０は、デジタルテレビやセットトップユニット若しくはボックスなどのディスプレイデバイスに統合されてもよい。一実施例では、ビデオコントローラデバイス１０は、パーソナルビデオレコーダ（ＰＶＲ）である。他の実施例では、ビデオコントローラデバイス１０は、デジタルビデオレコーダ（ＤＶＲ）である。さらなる実施例では、ビデオコントローラデバイス１０は、ビデオヘッドエンド信号配信デバイスの一部である。ビデオコントローラデバイス１０が、プログラムを再生及び／又は記録するのに利用される何れかの電子デバイスであってもよいことが理解されるべきであり、上述された具体例に限定されるものでない。
【００１８】
デバイス１０は、マルチメディアプログラムコンテンツを受信するレシーバ機能を有する。デバイス１０は、入力信号を受信するためのインタフェース１２を有する。インタフェース１２は、レシーバ／チューナを有し、マルチメディアプログラムコンテンツデータを含む出力信号をプロセッサ１４及び／又はメモリ１６に提供する。このようなデータは、アナログ又はデジタルフォーマットによりブロードキャスト信号１８の形式を有してもよい。ブロードキャスト信号がアナログ信号である場合、アナログ信号はデジタル信号に変換される。一実施例では、ブロードキャスト信号は、ケーブルテレビプロバイダからケーブルを介し受信されるＭＰＥＧデータストリームである。他の実施例では、ブロードキャスト信号は、衛星テレビプロバイダによる衛星ブロードキャストから受信される。さらなる他の実施例では、ブロードキャスト信号は、テレビ放送者（テレビ局など）により配信タワーから無線送信される。ブロードキャスト信号は、オーディオ／ビデオディスプレイデバイス上に再生するための何れかの信号とすることが可能であることが理解されるべきであり、上述した実施例により限定されるものでない。
【００１９】
図１に示されるように、ビデオコントローラデバイス１０はさらに、情報を通信するためのバス２０、情報及び命令を処理するためのバス２０に接続されたプロセッサ１４、及びプロセッサ１４のために情報及び命令を格納するためプロセッサ１４に接続されたメモリ１６（例えば、ＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、ＲＯＭ、プログラマブルＲＯＭ、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどを含む揮発性又は不揮発性メモリなど）を有する。データ記憶装置は、プログラムコンテンツデータを格納するため設けられ、磁気又は光ディスク及びディスクドライブなど、デジタルデータを格納する何れかのメモリ又は記憶媒体とすることができることが理解されるべきである。
【００２０】
一例となる構成では、ビデオコントローラデバイス１０は、プログラムコンテンツを含むブロードキャスト信号１８を受信し、再生及び／又は格納のためアナログ信号をデジタルフォーマットにデジタル化するよう構成されるビデオ信号を符号化及び復号化するシステム１００を有する。本実施例では、システム１００は、バス１１２を介し共有メモリ１１０に接続される少なくとも４つのＳｏＣ１０２〜１０４を有する。各ＳｏＣは、スタート時に実行コードが必要とされるとき、又はシステム若しくはデバイスがリブートされるとき、バス１１２を介しメモリ１１０に逐次的にアクセスする。システム１００の処理が、図２〜４を参照して以下において詳述される。ここでは、システム１００はシステム２００として他の実施例において表される。各ＳｏＣはまた、プロセッサ１４とＳｏＣとの間でデータを交換するための何れかの通信バスであってもよいバス２０に個別に接続されることが理解される（すなわち、バス２０は分離し、バス１１２に接続されない）。一実施例では、バス２０はイーサネット（登録商標）接続である。
【００２１】
デバイス１０はさらに、記録及び再生処理を実行するため、電源及び他の補助コンポーネント（図示せず）を有してもよい。ビデオコントローラデバイス１０はまた、システム１００からデジタルフォーマットにより記録されたプログラム又は処理されたデータを受信し、オーディオ／ビデオディスプレイデバイス２２に再生するため信号を復号化するためのインタフェース１２の一部としてデジタルビデオエンコーダ／デコーダを有する。オーディオ／ビデオディスプレイデバイス２２は、テレビ、ＰＶＲディスプレイスクリーン又は他のこのようなディスプレイであってもよい。あるいは、インタフェース１２のデジタルビデオエンコーダ／デコーダは、複数のディスプレイデバイスに配信するため、通信システムの一部としてデジタルビデオ信号を提供してもよい。
【００２２】
ビデオコントローラデバイス１０はさらに、インタフェース１２などのインタフェースを介しユーザコマンド２４を受信するよう動作する。ユーザコマンドは、無線接続によりデバイスに通信接続されるリモコンから発信されるか、又は手動により入力されてもよい。ユーザコマンドは、デバイス１０に統合されるか、それに外部接続されるオーディオ／ビデオディスプレイデバイス２２上に再生されるグラフィカルユーザインタフェースとのやりとりに応答して受信されることが理解されるべきである。
【００２３】
図２は、ビデオ信号を符号化及び復号化するのに利用されるシステム２００の実施例を示す。システム２００は、図１に記載されるビデオコントローラデバイス１０などの信号受信システムの一部として含まれてもよい。システム２００は、ＳｏＣ（１）２０２、ＳｏＣ（２）２０４、ＳｏＣ（３）２０６及びＳｏＣ（４）２０８とラベル付けされた４つのＳｏＣを含む。ＳＰＩフラッシュなどの記憶装置２１０は、共通ＳＰＩバス２１２を介し各ＳｏＣに接続される。各ＳｏＣは、共通ＳＰＩバス２１２に接続される少なくとも４つの信号ライン、すなわち、チップセレクト信号ＳＰＩ＿ＣＳ＿ｎ、クロック信号ＳＰＩ＿ＣＬＫ、デジタル入力信号ＳＰＩ＿ＤＩ及びデジタル出力信号ＳＰＩ＿ＤＯを有する。スーパーバイザＩＣ２１４は、ＳｏＣ（１）２０２に接続され、初期化のために利用される。各ＳｏＣが共有ＳＰＩフラッシュ２１０からプログラムされることを可能にするため、各ＳｏＣは、それのリセット入力信号を用いて現在のＳｏＣのアクセスの開始を制御するシーケンスの前のＳｏＣを有するシーケンスにおいて記憶装置にアクセスする。シーケンスの第１ＳｏＣ（ＳｏＣ（１）２０２など）に供給されるリセット信号は、システム若しくはローカルリセットの状態、スタートアップ状態、又は図１のビデオコントローラデバイス１０などのメインシステムデバイス又はシステム２００の電圧供給の測定をモニタするスーパーバイザＩＣ２１４によって、通常は制御される。ある形式のリセット制御が必要であることが理解されるであろう。スーパーバイザＩＣ２１４は、当該制御を提供し、システムの電圧供給レベルにのみ依存する。しかしながら、リセットは、図１に示されるプロセッサ１４などの他のプロセッサ又はデバイスからの信号によってシステム全体の他の部分から制御可能である。プログラミングヘッダ２２４は、ＳＰＩフラッシュデバイス２１０に自律的にリード／ライとするため、システム２００のリセットの制御のための代替を提供してもよい。
【００２４】
スーパーバイザＩＣ２１４が電圧供給が許容範囲内であると判断し、リセット信号を第１ＳｏＣにリリースすると、第１ＳｏＣ２０２は、ＳＰＩバス２１２を制御し、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎなどのリセットにおいてシーケンスの次のＳｏＣ（ＳｏＣ（２）２０４など）を保持する出力信号をアクティブ状態に維持しながら、記憶装置２１０からのコードのダウンロードを開始する。ここで、ＧＰＩＯは、Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔを表す。次のＳｏＣはまた、リセットにおいてシーケンスの次のＳｏＣを保持する出力信号を有する。
【００２５】
各ＳｏＣからの同一のリセット出力信号、すなわち、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎがまた、各ＳｏＣとインタフェースにおいてＳＰＩバス２１２に接続される図示されたＦＥＴ（Ｆｉｅｌｄ  Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）バススイッチ、すなわち、ＦＥＴ２１６，２１８，２２０，２２２などのスイッチングデバイスを制御してもよい。ＦＥＴバススイッチは、ＳｏＣがリセットに維持されている間、セレクト信号ＳＰＩ＿ＣＳ＿ｎ及びデジタル入力信号ＳＰＩ＿ＤＩなどのすべてのＳＰＩバス信号をトライステート又は３状態（ｔｒｉ−ｓｔａｔｅ）にしない場合に必要とされてもよい。ＳｏＣがリセット状態にある場合、それのＳＰＩバス信号のＦＥＴバススイッチはオフとなる。ＳｏＣがソフトウェアイメージのダウンロードを終了すると、ＳｏＣは、それのＳＰＩバス信号のモードをシーケンスの次のＳｏＣにより使用されるＳＰＩバスをリリースする汎用信号に変更する。ＳｏＣはもはやＳＰＩバス信号を駆動しないため、当該ＳｏＣのＳＰＩバス信号のＦＥＴバススイッチは、オンポジションに残すことができる。さらに、３状態可能なバッファが、ＦＥＴバススイッチの代わりに利用されてもよい。しかしながら、ＦＥＴバススイッチをオンポジションに残すことは、３状態可能なバッファをオフにすることが必要とされる別の信号を生成することを不要にすることによって、設計を簡単化する。制御信号の排除は、３状態可能なバッファの代わりにＦＥＴバススイッチを利用する効果がある。
【００２６】
ソフトウェアイメージのダウンロードを終了したＳｏＣ、このケースではＳｏＣ（１）２０２は、当該ＳｏＣのＦＥＴバススイッチ、すなわち、ＦＥＴ２１８をオンするシーケンスの次のＳｏＣであるＳｏＣ（２）２０４へのリセット信号をリリースし、当該ＳｏＣのソフトウェアダウンロード処理を開始する。これらと同じステップが繰り返され、シーケンスの各ＳｏＣに対して継続される。シーケンスの最後のＳｏＣがダウンロード処理を終了し、リセット信号をリリースすると、当該信号は、すべてのＳｏＣがダウンロード処理を終了しており、アプリケーションを実行中であることを示すシーケンスの最初のＳｏＣに送り返される。最初のＳｏＣ、すなわち、ＳｏＣ（１）２０２は、チェーンの他のすべてのＳｏＣがもはやＳＰＩバス２１２を駆動していないため、ＳＰＩバス２１２を用いてフラッシュメモリ２１０に再アタッチすることが可能となる。ＳＰＩバス２１２の最終的なリリースとターンオーバとは、フラッシュメモリ２１０がすべてのＳｏＣのインタフェースデバイスとしてＳｏＣ（１）２０２によるシステムの不揮発性ストレージのために利用されることを可能にするであろう。
【００２７】
図１のシステム１００と共に図２のシステム２００は４つのＳｏＣを有するが、その構成は異なる個数のＳｏＣを含むよう構成されてもよいことに留意することが重要である。例えば、２つのＳｏＣが含まれ、共有メモリから共通通信バスを介しダウンロード可能なコードイメージによりプログラムされてもよい。さらに、４個より多くのＳｏＣが含まれ、ダウンロード可能なコードイメージを含む共有メモリに共通通信を介し接続されてもよい。さらに、メモリの最も効率的な利用は各ＳｏＣに同一のソフトウェアコードイメージをダウンロードするときに行われるが、当該構成はまた、効果的には、各ＳｏＣのソフトウェアコードイメージが相違を有するときに利用されてもよい。例えば、別々のファイル又はコード部分が、各ＳｏＣの同一のコードイメージに加えられ、当該ファイル又はコード部分は、命令コードのスタートアドレスの変更などの各ＳｏＣの相違を含む。
【００２８】
図１及び２に説明されるように、メモリ１１０やメモリ２１０などのメモリは、複数のコントローラ又はＳｏＣの間で共有されてもよい。メモリのすべて又は一部が１以上のコントローラ又はＳｏＣの間で共有化及び共通化されてもよいことに留意することが重要である。さらに、メモリの実現形態は、単一の記憶装置又は共有若しくは共有メモリを形成するよう接続された複数のメモリ回路などの複数の可能な実施例を含む。さらに、メモリは、より大きな回路においてバス通信回路の一部などの他の回路と共に含まれてもよい。最後に、メモリは、限定することなく、ＳＲＡＭ、ＲＯＭ及びハードディスクドライブを含む命令コードを格納するのに適した何れか現在のストレージ技術を利用するものであってもよい。
【００２９】
図３〜４を参照して、図１及び２に示される実施例による単一の共有化された記憶装置と複数のＳｏＣとのインタフェースをとる方法が説明される。ここで、図３は一例となる方法を説明するフローチャートであり、図４は一例となる信号タイミング図を示す。
【００３０】
まず、ステップ３０２において、システム２００が電源を入れられ、スタートアップ又はブートアップを試み、スーパーバイザＩＣ２１４が、各種電圧をシステム２００に供給する電源をモニタする。ステップ３０４において、スーパーバイザＩＣ２１４は、供給された電圧が所定の許容範囲内であるか、例えば、供給された電圧が所定の電圧より高いか判断する。供給された電圧が所定の許容範囲内でない場合、スーパーバイザＩＣ２１４は、供給電圧をモニタし続ける。そうでない場合、スーパーバイザＩＣ２１４は、供給電圧が良好であり、例えば、ＶＣＣ４０２が図４に示されるように高いと判断し、それの出力信号をハイに設定する。例えば、図４に示されるように、ＳＵＰＥＲＶＩＳＯＲ信号４０４がハイとなる。スーパーバイザＩＣ２１４の出力は、ＳｏＣ（１）２０２のリセット入力（Ｒｅｓｅｔ＿ｎ）４０６に接続され、その後にステップ３０６において、ハイとなり、ＳｏＣ（１）２０２がメモリ２１０にアクセスし、通信バス２１２を介し必要なコードをダウンロードすることを可能にする。ＳｏＣ（１）２０２がＳＰＩフラッシュ２１０にアクセスしている間、ＳｏＣ（１）２０２の出力、すなわち、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎ４０８は、ＳｏＣ（２）２０４などの次のＳｏＣが記憶装置２１０にアクセスすることを禁止するように、次のＳｏＣのリセット入力をロー状態に維持する。
【００３１】
次にステップ３０８において、ＳｏＣ（１）２０２は、コードのダウンロードが終了したか判断し、終了していない場合、コードのダウンロードを継続する。一実施例では、ＳｏＣは、ダウンロードされたコードを実行することによって、ダウンロードが終了したと判断する。このコードの実行の開始近くにおいて、ＳＰＩバスインタフェースの駆動をストップし、次のＳｏＣのリセットをリリースするための命令がある。ステップ３０８において、ＳｏＣ（１）２０２がダウンロードが終了したと判断した場合、ＳｏＣ（１）２０２は、それの出力信号、すなわち、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎ４０８をハイ状態に設定し、以降においてＳｏＣ（２）２０４のリセット入力（Ｒｅｓｅｔ＿ｎ）４１０をハイ状態に移行させる。ＳｏＣ（２）２０４のリセット入力（Ｒｅｓｅｔ＿ｎ）４１０がハイ状態に移行すると、ステップ３１０において、ＳｏＣ（２）２０４は、リセットから抜け出し、記憶装置２１０にアクセスし、記憶装置２１０から必要なコードをダウンロードする。
【００３２】
本方法は、残りのＳｏＣがダウンロードされるまで継続される。例えば、ステップ３１２において、ＳｏＣ（２）２０４は、コードのダウンロードが終了したか判断し、終了していない場合、コードのダウンロードを継続する。ステップ３１２において、ＳｏＣ（２）２０４がダウンロードが終了したと判断した場合、ＳｏＣ（２）２０４は、それの出力信号、すなわち、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎ４１２をハイ状態に設定し、以降においてＳｏＣ（３）２０６のリセット入力（Ｒｅｓｅｔ＿ｎ）４１４をハイ状態に移行させる。ＳｏＣ（３）２０６のリセット入力（Ｒｅｓｅｔ＿ｎ）４１４がハイ状態にあることによって、ステップ３１４において、ＳｏＣ（３）２０６は、リセットから抜け出し、記憶装置２１０にアクセスし、記憶装置２１０から必要なコードをダウンロードする。
【００３３】
ステップ３１６〜３２０において、本方法は、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎ４１６とリセット入力（Ｒｅｓｅｔ＿ｎ）４１８とがハイ状態に移行すると、残りのＳｏＣ、すなわち、ＳｏＣ（４）２０８についてコードをダウンロードすることに進む。ステップ３２０において、最後のＳｏＣに対してコードのダウンロードが終了したと判断された場合、最後のＳｏＣの出力信号、すなわち、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎ４２０は、ステップ３２２において、最初のＳｏＣのＳｏＣ（１）ＩＮＴ＿ｎ４２２などの入力にフィードバックされる。最初のＳｏＣは、入力信号がハイ状態に移行すると、ＳＰＩバスなどの通信バス２１２に再アタッチするようプログラムされる。
【００３４】
処理３００におけるステップは４つのＳｏＣをプログラムするよう説明したが、これらのステップは異なる個数のＳｏＣをプログラムするのに適応されてもよいことに留意することが重要である。例えば、２つのＳｏＣは、ステップ３１４〜３２０を排除することによってプログラムされてもよい。さらに、４個より多くのＳｏＣが、追加的な各ＳｏＣについてステップ３１４〜３１６と同様のステップを追加することによって、処理３００を用いてプログラムされてもよい。
【００３５】
最初のＳｏＣ、すなわち、ＳｏＣ（１）２０２が、その他のＳｏＣのダウンロード処理の終了を知ることが重要であってもよい。なぜなら、当該最初のデバイスは、単一のメインコントローラになっており、当該設計の通常処理中に記憶装置への単一のアクセスポイントになっている可能性があるためである。すなわち、ＳｏＣ（１）２０２は、マスタコントローラになっていてもよい。その他のＳｏＣの１つが記憶装置へのリード又はライトアクセスを必要とする場合、例えば、標準的なシリアル通信バスを利用して、当該ＳｏＣと最初のＳｏＣとの間でコマンド／データ構造が通信される。一実施例では、ＳｏＣ間のシリアル通信は、ＳｏＣ（１）２０２上に示されるようなＵＡＲＴ０、ＵＡＲＴ１、ＵＡＲＴ２及びＵＡＲＴ３などのＵＡＲＴチャネルを介し実行される。記憶装置への単一のアクセスポイントとして１つのＳｏＣを利用することは、ＳｏＣのすべてが記憶装置へのアクセスをネゴシエートする必要を排除し、ＳｏＣ間の通信を簡単化し、記憶装置の通信バス２１２上のコンフリクトを排除する。また、何れかのＳｏＣがソフトリセットを受けた場合、最後のＳｏＣのリセット出力信号、すなわち、Ｒｅｓｅｔ＿ＧＰＩＯ＿ｎは、システムの完全なリセットを開始するよう最初のＳｏＣに示すアクティブ状態になる。
【００３６】
さらに、プログラミングツールを用いた記憶装置及びＳｏＣの内部回路によるシステム２００などの複数のマスタＳｏＣを有するシステムの記憶装置をプログラムする必要が、プログラミングツールがライン２２６を介しシステムのスーパーバイザＩＣ及びシーケンスの最初のＳｏＣ上のＦＥＴバススイッチへの入力を用いてそれの存在を示すことによって実現可能である。このプログラミングツールは、プログラミングヘッダ２２４を介しシステム２００に接続可能である。スーパーバイザＩＣ２１４がプログラミングツールから信号を取得すると、最初のＳｏＣは、シーケンスの次のＳｏＣからエンドまでをリセット状態に維持するリセット状態に維持される。すべてのＳｏＣがリセット状態に維持され、プログラミングツールが最初のＳｏＣのＦＥＴバススイッチをオフにしたため、当該ツールはコンフリクトなく記憶装置をプログラムすることが可能となる。
【００３７】
図２の実施例は、ビデオ信号を符号化及び復号化するシステムを説明する。図２に示される態様は複数のコントローラ又はＳｏＣが共通メモリを共有することに関する他のシステムに等しく適用可能であることに留意することが重要である。図２に示される態様は、より多くの又はより少ないＳｏＣが共通メモリを共有することに関する実施例に等しく適用されてもよい。
【００３８】
複数のＳｏＣが単一のＳＰＩフラッシュ記憶装置からデバイスのスタートアップ又はブートアップ時にコードをダウンロードすることを可能にし、すべてのＳｏＣの不揮発性ストレージのために当該単一の記憶装置を共有するシステム及び方法が提供される。本開示のシステム及び方法は、各コントローラが通常動作において通信バスのマスタコントローラとなる単一の共通メモリ及び共通通信バスを共有する２以上のＳｏＣコントローラ回路へのオペレーティングコードのダウンロードを制御することに関する。本開示は、各デバイスが共通のオペレーティングコードを別々にダウンロードすることを可能にするため、通信バスへの各ＳｏＣコントローラ回路のアクセスを逐次的に制御することに関する。本開示は、コントローラを直列にチェーン化することと共にセパレートな初期化回路又はデバイスを利用し、チェーンの前のコントローラがそれのコードダウンロードを終了するまで通信バスへのアクセスを禁止するため、各コントローラがリセット状態に維持されることを求めるようにしてもよい。各ＳｏＣがそれのＳＰＩピンを完全にオフにすることができないようにすることは、シーケンス化処理の一部として制御されるＦＥＴスイッチなどのスイッチを有することによって解決される。最後に、システム及び方法は、外部のプログラミングツールを用いてシステム内のフラッシュ記憶装置をプログラムする必要に対処する。
【００３９】
本開示の一態様によると、複数のコントローラ（例えば、少なくとも２つ）により使用される命令コードセットを格納し、通信バスを介し命令コードセットを提供する装置が提供され、メモリに接続された第１プログラマブルコントローラは、通信バスを介し命令コードセットをダウンロードし、メモリ及び第１コントローラに接続される第２コントローラは、第１コントローラへの命令コードセットのダウンロードが終了すると、共通の通信バスを介し命令コードセットをダウンロードする。
【００４０】
一態様では、第１コントローラは、第１コントローラが命令コードセットをダウンロードしていると、第２コントローラによる通信バスへのアクセスを禁止する。他の態様によると、第１コントローラは、第２コントローラをリセット状態に維持する信号を第２コントローラに提供することによってアクセスを禁止する。さらなる態様では、スイッチングデバイスは、第１コントローラへの命令コードセットのダウンロードが終了すると、通信バスから第１コントローラを切断する。さらなる他の態様によると、本装置はさらに、第１コントローラに接続される初期化装置を有し、当該初期化装置は、第１及び第２コントローラへの命令コードセットの逐次的なダウンロードを開始するため、第１コントローラをリセットするための信号を提供する。
【００４１】
上述された実施例は、複数のコントローラ又はＳｏＣを単一の共有化された記憶装置にインタフェースをとるためのシステム及び方法を開示する。各ＳｏＣが共有されるＳＰＩフラッシュからプログラムされることを可能にするため、各ＳｏＣは、シーケンスの前のＳｏＣがそれのリセット入力信号を用いて現在のＳｏＣのアクセスの開始を制御することによって、シーケンスの記憶装置にアクセスする。アプリケーションが各ＳｏＣ上で実行されている間、単一のＳｏＣは、複数のＳｏＣが不揮発性パラメータをリード又はライとする必要がある場合、コンフリクトを回避するため記憶装置とインタフェースをとる。各ＳｏＣがそれのＳＰＩピンを完全にオフすることができないことは、シーケンシング処理の一部として制御されるＦＥＴスイッチなどのスイッチを有することによって対処される。最後に、システム及び方法は、外部のプログラミングツールを利用して、システムのフラッシュ記憶装置をプログラムする必要に対処する。
【００４２】
本開示の教示を有する実施例が図示及び詳述されたが、当業者は、これらの教示を依然として有する他の多数の変更された実施例を容易に創出できる。複数のＳｏＣと共有メモリとのインタフェースをとるためのシステム及び方法の好適な実施例を説明したが（限定的でなく例示的である）、これらの教示に基づき当業者による改良及び変形が可能であることに留意されたい。従って、添付した請求項により画成される本開示の範囲内の変更が、本開示の特定の実施例において可能であることが理解されるべきである。
【図１】
2012527037.tif 000003
【図２】
2012527037.tif 000004
【図３】
2012527037.tif 000005
【図４】
2012527037.tif 000006
【国際調査報告】
2012527037.tif 000007
2012527037.tif 000008