(57)【要約】【課題】複数のプロセッサ間でディスク記憶装置を安全に共有することが可能な電子機器を実現する。【解決手段】ホームネットワークサーバにおいては、ＣＰＵ９が稼動している時は、ＨＤＤ２５が常にＩＤＥコントローラ１２と接続されるようにバススイッチ１８およびバススイッチ２３が制御される。この場合、ＨＤＤ２５へのアクセスは全てＣＰＵ９が行う。ＣＰＵ１は、ＣＰＵ９にＨＤＤ２５へディスクアクセス要求を発行することによって、ＣＰＵ９およびＩＤＥコントローラ１２経由で間接的にＨＤＤ２５をアクセスする。さらに、ＣＰＵ１は、バススイッチ１８およびバススイッチ２３によってＨＤＤ２５の接続先をＩＤＥコントローラ２１に切り替えることにより、ＣＰＵ９を経由せずにＨＤＤ２５を直接的にアクセスすることもできる。【選択図】      図１
2005135269.tif 000002
【特許請求の範囲】
【請求項１】
ディスク記憶装置と、
第１のオペレーティングシステムを実行する第１のプロセッサと、
前記第１のプロセッサからのディスクアクセス要求に応じて前記ディスク記憶装置をアクセスする第１のディスクコントローラと、
第２のオペレーティングシステムを実行する第２のプロセッサと、
前記第２のプロセッサからのディスクアクセス要求に応じて前記ディスク記憶装置をアクセスする第２のディスクコントローラと、
前記ディスク記憶装置が接続されるディスクコントローラを前記第１のディスクコントローラと前記第２のディスクコントローラとの間で切り替えるスイッチデバイスと、
前記第１のプロセッサが前記ディスク記憶装置をアクセスするために使用するアクセス経路を、前記スイッチデバイスによって前記ディスク記憶装置が前記第２のコントローラに接続されている状態で前記第１のプロセッサが前記第２のプロセッサを経由して前記ディスク記憶装置に対するアクセスを実行する第１のアクセス経路と、前記スイッチデバイスによって前記ディスク記憶装置が前記第１のコントローラに接続されている状態で前記第１のプロセッサが前記第２のプロセッサを経由せずに前記ディスク記憶装置に対するアクセスを実行する第２のアクセス経路との間で切り替える手段とを具備することを特徴とする電子機器。
【請求項２】
前記スイッチデバイスは、前記第１のプロセッサからのコマンドに応じて、前記ディスク記憶装置が接続されるディスクコントローラを前記第１のディスクコントローラと前記第２のディスクコントローラとの間で切り替えるように構成されていることを特徴とする請求項１記載の電子機器。
【請求項３】
前記アクセス経路を切り替える手段は、前記ディスク記憶装置が接続されるディスクコントローラが前記第１のディスクコントローラと前記第２のディスクコントローラとの間で切り替えられるように、前記スイッチデバイスを制御する手段を含むことを特徴とする請求項１記載の電子機器。
【請求項４】
前記ディスク記憶装置は、前記第１のオペレーティングシステムによって使用される第１のデータ記憶領域、および前記第２のオペレーティングシステムによって使用される第２のデータ記憶領域を含むことを特徴とする請求項１記載の電子機器。
【請求項５】
前記第２のプロセッサの状態を動作状態から非動作状態に切り替える手段をさらに具備し、
前記アクセス経路を切り替える手段は、前記第２のプロセッサの状態が前記動作状態から前記非動作状態へ切替えられる時に、前記第１のプロセッサが前記ディスク記憶装置をアクセスするために使用するアクセス経路を、前記第１のアクセス経路から前記第２のアクセス経路に切り替える手段を含むことを特徴とする請求項１記載の電子機器。
【請求項６】
前記アクセス経路を切り替える手段は、前記第１のアクセス経路を介して前記ディスク記憶装置が前記第１のプロセッサによってアクセスされるように、前記第１のプロセッサからのディスクアクセス要求を前記第２のプロセッサに発行する手段を含むことを特徴とする請求項１記載の電子機器。
【請求項７】
前記アクセス経路を切り替える手段は、前記第２のプロセッサが動作状態である期間中は前記第１のアクセス経路が選択され、且つ前記第２のプロセッサが非動作状態である期間中は前記第２のアクセス経路が選択されるように、前記第２のプロセッサの状態に応じて、前記スイッチデバイスを制御する手段を含むことを特徴とする請求項１記載の電子機器。
【請求項８】
前記第１のプロセッサおよび前記第２のプロセッサがそれぞれ動作する第１動作モードと、前記第１のプロセッサが動作し、前記第２のプロセッサが動作しない第２動作モードの一方を選択する操作スイッチをさらに具備し、
前記アクセス経路を切り替える手段は、前記操作スイッチによって前記第１動作モードが選択された時に前記第１のアクセス経路を選択し、前記操作スイッチによって前記第２動作モードが選択された時に前記第２のアクセス経路を選択する手段を含むことを特徴とする請求項１記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のプロセッサを含む電子機器に関し、特に複数のプロセッサとこれらプロセッサによって共有されるディスク記憶装置とを含む電子機器に関する。
【背景技術】
【０００２】
近年、ビデオレコーダ、ＴＶ、ネットワーク機器のような様々な電子機器がいわゆる情報家電として開発されている。計算機システムのみならず、これら電子機器においても、様々な機能を効率良く実行する目的で、複数のプロセッサを含むシステムアーキテクチャが採用され始めている。
【０００３】
複数のプロセッサによって１台のディスク記憶装置を共有するための技術としては、２つのポートを有するデュアルポートハードディスクが知られている（例えば、特許文献１参照。）。このデュアルポートハードディスクは、別個のＣＰＵからそれぞれ独立にアクセス可能な２本のポートｃｈ１，ｃｈ２を有している。
【特許文献１】特開平５−２１６８０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、互いに異なるオペレーティングシステムをそれぞれ実行する２つのＣＰＵを有するシステムにおいては、もしそれらＣＰＵが個々にハードディスクをアクセスできるようにすると、ハードディスクに対するアクセスの競合が発生し、これによりそれらオペレーティングシステムのファイルシステム間でデータの整合性を維持することが難しくなる場合がある。
【０００５】
さらに、もし一方のＣＰＵによって実行されるオペレーティングシステムが破壊されると、そのＣＰＵが誤ってハードディスクを専有し続けてしまい、他方のＣＰＵがハードディスクをアクセスできなくなるという事態が発生する危険もある。
【０００６】
本発明は上述の事情を考慮してなされたものであり、複数のプロセッサ間でディスク記憶装置を安全に共有することが可能な電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明の電子機器は、ディスク記憶装置と、第１のオペレーティングシステムを実行する第１のプロセッサと、前記第１のプロセッサからのディスクアクセス要求に応じて前記ディスク記憶装置をアクセスする第１のディスクコントローラと、第２のオペレーティングシステムを実行する第２のプロセッサと、前記第２のプロセッサからのディスクアクセス要求に応じて前記ディスク記憶装置をアクセスする第２のディスクコントローラと、前記ディスク記憶装置が接続されるディスクコントローラを前記第１のディスクコントローラと前記第２のディスクコントローラとの間で切り替えるスイッチデバイスと、前記第１のプロセッサが前記ディスク記憶装置をアクセスするために使用するアクセス経路を、前記スイッチデバイスによって前記ディスク記憶装置が前記第２のコントローラに接続されている状態で前記第１のプロセッサが前記第２のプロセッサを経由して前記ディスク記憶装置に対するアクセスを実行する第１のアクセス経路と、前記スイッチデバイスによって前記ディスク記憶装置が前記第１のコントローラに接続されている状態で前記第１のプロセッサが前記第２のプロセッサを経由せずに前記ディスク記憶装置に対するアクセスを実行する第２のアクセス経路との間で切り替える手段とを具備することを特徴とする。
【０００８】
この構成においては、例えば、通常動作時は、第１のアクセス経路を用いて第１のプロセッサが第２のプロセッサを経由してディスク記憶装置を間接的にアクセスすることで、アクセスの競合による問題の発生を防止することができる。また、第１のプロセッサは第２のアクセス経路を用いて直接的にディスク記憶装置をアクセスすることもできる。よって、第２のプロセッサによって実行されるオペレーティングシステムのファイルの破壊などの異常が発生しても、第１のプロセッサはディスク記憶装置に対するアクセスを正常に実行することができる。
【発明の効果】
【０００９】
本発明によれば、複数のプロセッサ間でディスク記憶装置を安全に共有することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係る電子機器の構成が示されている。この電子機器はホームネットワークサーバとして実現されている。
【００１１】
このホームネットワークサーバは、ルータ機能とビデオレコーダ機能とを搭載した電子機器である。ホームネットワークサーバは、ルータ機能およびビデオレコーダ機能をそれぞれ効率よく実行するために、第１のＣＰＵ（ＣＰＵ＃１）１と第２のＣＰＵ（ＣＰＵ＃２）９とを備えている。第１のＣＰＵ１は、本ホームネットワークサーバの動作を制御するプロセッサであり、ルータ機能を実行するために常時稼動している。第２のＣＰＵ９はビデオレコーダ機能を実行するためのプロセッサであり、ＴＶ番組のような放送番組データを記録する必要がある時にのみ、そのための処理を実行する。第２のＣＰＵ９の電力消費を低減するために、第１のＣＰＵ１は、必要に応じて、第２のＣＰＵ９の状態をスリープ状態、電源オフ状態のような非動作状態（動作停止状態）に設定する機能を有している。
【００１２】
以下、ホームネットワークサーバのシステム構成を具体的に説明する。  
ホームネットワークサーバは、上述のＣＰＵ１に加え、図１に示されているように、ノースブリッジ２、メモリ３、サウスブリッジ４、ＬＡＮ（Local Area Network）コントローラ５、ＰＣＩ（Peripheral Component Interconnect）バス６、ストリーム処理モジュール７、ＭＰＲＧ２エンコーダ１４、ＮＴＳＣデコーダ１５、ＴＶチューナ１６、第１の３ステートバススイッチ１８、インバータ１９、第２の３ステートバススイッチ２３、ＤＶＤ−ＲＯＭドライブ２４、ハードディスクドライブ（ＨＤＤ）２５、ＢＩＯＳ−ＲＯＭ４３、およびシステムコントローラ（ＳＣ）４４等を備えている。
【００１３】
ＣＰＵ１は、ハードディスクドライブ（ＨＤＤ）２５からメモリ３にロードされる第１のオペレーティングシステムおよびアプリケーションプログラムを実行する。アプリケーションプログラムはルータ機能を実行するために、ＬＡＮコントローラ５を介して外部機器との間の通信を制御するルーチンを含む。また、ＣＰＵ１は、ＢＩＯＳ−ＲＯＭ４３に格納されたＢＩＯＳ（Basic Input Output System）も実行する。
【００１４】
サウスブリッジ４は、図示のように、汎用Ｉ／Ｏポート（ＧＰＩＯ）２０、ＩＤＥ（Integrated Drive Electronics）コントローラ２１、ＩＤＥコントローラ２２、汎用Ｉ／Ｏポート（ＧＰＩＯ）３８、ＬＰＣ（Low Pin Count）バスインタフェース４１を有している。ＩＤＥコントローラ２１は、ＣＰＵ１からのディスクアクセス要求に応じてＨＤＤ２５をＩＤＥバス４０を介してアクセスするディスクコントローラである。ＩＤＥコントローラ２２は、ＣＰＵ１からのディスクアクセス要求に応じて、ＤＶＤ−ＲＯＭドライブ２４をアクセスする。ＬＰＣバスインタフェース４１は、ＬＰＣバス４２にそれぞれ接続されているＢＩＯＳ−ＲＯＭ４３およびシステムコントローラ（ＳＣ）４４との通信を実行するためのインタフェースユニットである。
【００１５】
システムコントローラ（ＳＣ）４４は、ユーザによる電源スイッチ（Ｐ−ＳＷ）４５の操作に応答してホームネットワークサーバをパワーオン／パワーオフする電源コントローラであり、１チップマイクロコンピュータから構成されている。
【００１６】
ストリーム処理モジュール７は、放送番組データのようなＡＶ（オーディオ・ビデオ）ストリームを処理するためのデバイスである。ストリーム処理モジュール７はＰＣＩデバイスとして実現されている。ストリーム処理モジュール７は上述の第２のＣＰＵ（ＣＰＵ＃２）９を含んでいる。ストリーム処理モジュール７は、さらに、ＡＶ（オーディオ・ビデオ）ストリームを処理するストリームコントローラ８、ローカルバス１０、内部バス−ＰＣＩブリッジ１１、およびＩＤＥコントローラ１２を含んでいる。第２のＣＰＵ９は、ストリームコントローラ８、内部バス−ＰＣＩブリッジ１１、およびＩＤＥコントローラ１２を制御するためのプロセッサである。第２のＣＰＵ９は、ＨＤＤ２５に格納されている第２のオペレーティングシステムを実行することによって、ＡＶストリームをファイルとしてＨＤＤ２５に書き込む処理を実行する。
【００１７】
内部バス−ＰＣＩブリッジ１１は、ローカルバス１０とＰＣＩバス６との間を接続するブリッジデバイスである。内部バス−ＰＣＩブリッジ１１は、第１のＣＰＵ１との通信のためのレジスタセットを含んでいる。ＩＤＥコントローラ１２は、第２のＣＰＵ９からのディスクアクセス要求に応じてＨＤＤ２５をＩＤＥバス１７を介してアクセスするディスクコントローラである。
【００１８】
ＴＶチューナ１６は、ＴＶ番組のような放送番組データを受信及び局選択するためのデバイスである。ＴＶチューナ１６は、ユーザによって指定されたチャネル番号の放送番組データを受信する。ＴＶチューナ１６によって受信された放送番組データに含まれるオーディオデータおよびビデオデータはＮＴＳＣ（National TV Standards Committee）デコーダ１５を介してＭＰＥＧ２エンコーダ１４に送られる。ＭＰＥＧ２エンコーダ１４はオーディオデータおよびビデオデータをそれぞれ圧縮符号化し、ＭＰＥＧ２トラスポートストリーム（ＭＰＥＧ２  ＴＳ）を生成する。
【００１９】
第１の３ステートバススイッチ１８、第２の３ステートバススイッチ２３、およびインバータ１９は、ＨＤＤ２５が接続されるＩＤＥコントローラを、サウスブリッジ４内のＩＤＥコントローラ２１とストリーム処理モジュール７内のＩＤＥコントローラ１２との間で切り替えるスイッチデバイスを構成する。
【００２０】
第２のＣＰＵ９は、ＩＤＥコントローラ１２と３ステートバススイッチ１８を経由してＨＤＤ２５に接続されている。また、第１のＣＰＵ１はＩＤＥコントローラ２１と３ステートバススイッチ２３を経由してＨＤＤ２５に接続されている。３ステートバススイッチ１８はＩＤＥコントローラ１２とＨＤＤ２５との間に挿入されており、ＩＤＥコントローラ１２とＨＤＤ２５との間を電気的に接続または電気的に遮断する。同様に、３ステートバススイッチ２３はＩＤＥコントローラ２１とＨＤＤ２５との間に挿入されており、ＩＤＥコントローラ２１とＨＤＤ２５との間を電気的に接続または電気的に遮断する。
【００２１】
バススイッチ１８およびバススイッチ２３の動作は、第１のＣＰＵ１によってＧＰＩＯ２０にセットされるコマンドに応じて制御される。ＧＰＩＯ２０から出力されるスイッチ制御信号はバススイッチ２３に直接供給されるとともに、インバータ１９を介してバススイッチ１８に供給される。バススイッチ１８およびバススイッチ２３の一方がＯＮした時、他方はＯＦＦする。これにより、ＩＤＥコントローラ１２とＩＤＥコントローラ２１のうち、どちらか一方だけがＨＤＤ２５と接続される。
【００２２】
このホームネットワークサーバでは、ＣＰＵ９が稼動している時は、ＨＤＤ２５が常にＩＤＥコントローラ１２と接続されるようにバススイッチ１８およびバススイッチ２３が制御される。この場合、ＨＤＤ２５へのアクセスは全てＣＰＵ９が行う。ＣＰＵ１は、ＣＰＵ９にＨＤＤ２５へディスクアクセス要求を発行することによって、ＣＰＵ９およびＩＤＥコントローラ１２経由で間接的にＨＤＤ２５をアクセスする。
【００２３】
さらに、ホームネットワークサーバでは、ＤＶＤ−ＲＯＭドライブ２４を用いてＨＤＤ２５を初期状態にリカバリーする場合や、省電力制御のためにＣＰＵ９の状態を動作状態からスタンバイ状態や電源ＯＦＦ状態のような非動作状態に切り替える時には、ＨＤＤ２５がＩＤＥコントローラ２１に接続されるようにバススイッチ１８およびバススイッチ２３が制御される。ＣＰＵ１はＩＤＥコントローラ２１を用いてＨＤＤ２５を直接的にアクセスすることができる。
【００２４】
起動モードスイッチ３９はユーザが操作可能な操作スイッチである。起動モードスイッチ３９は、ＣＰＵ１およびＣＰＵ９の双方を起動する通常起動モード、およびＣＰＵ１のみを起動してＨＤＤ２５のリカバリー処理を実行するリカバリーモードの一方を指定するために用いられる。
【００２５】
ホームネットワークサーバの電源オン時に起動モードスイッチ３９が押されたならば、リカバリーモードが選択される。この場合、ＣＰＵ１は起動されるが、ＣＰＵ９は電源ＯＦＦのまま維持される。さらに、ＨＤＤ２５がＩＤＥコントローラ２１に接続されるように、バススイッチ１８，２３が制御される。
【００２６】
一方、ホームネットワークサーバの電源オン時に起動モードスイッチ３９が押されなかったならば、通常起動モードが選択される。この場合、ＣＰＵ１およびＣＰＵ９がそれぞれ起動される。さらに、ＨＤＤ２５がＩＤＥコントローラ１２に接続されるように、バススイッチ１８，２３が制御される。
【００２７】
このように、このホームネットワークサーバにおいては、ＣＰＵ１は２種類のアクセス経路を選択的に用いてＨＤＤ２５をアクセスすることができる。通常動作時は、ＣＰＵ１はバススイッチ１８，２３によってＨＤＤ２５をＩＤＥコントローラ１２に接続し、そしてＣＰＵ９を経由してＨＤＤ２５を間接的にアクセスする。これにより、アクセスの競合による問題の発生を防止することができる。また、ＨＤＤ２５のリカバリー処理を実行する場合や、パワーセーブのためにＣＰＵ９を非動作状態に設定する場合には、ＣＰＵ１はバススイッチ１８，２３によってＨＤＤ２５をＩＤＥコントローラ２１に接続し、ＣＰＵ９を経由せずにＨＤＤ２５を直接的にアクセスする。
【００２８】
次に、図２および図３を参照して、ＣＰＵ１がＨＤＤ２５をアクセスするために使用する２種類のアクセス経路それぞれにおいて、データがどのようなソフトウェアモジュールを介して流れるかについて説明する。
【００２９】
このシステムでは、第１のＣＰＵ（ＣＰＵ＃１）１と第２のＣＰＵ（ＣＰＵ＃２）９は互いに異なるオペレーティングシステム（ＯＳ）を実行する。第１のＣＰＵ（ＣＰＵ＃１）１はＣＰＵ＃１用ＯＳを実行し、第２のＣＰＵ（ＣＰＵ＃２）９はＣＰＵ＃２用ＯＳを実行する。ＨＤＤ２５は、ＣＰＵ＃２用ＯＳ領域２６、ＣＰＵ＃１用ＯＳ領域２７、ＣＰＵ＃２用スワップ領域２８、ＣＰＵ＃１用スワップ領域２８、ＣＰＵ＃２用データ領域３０、ＣＰＵ＃１用データ領域３１の６個のパーティションに分割されている。
【００３０】
第２のバススイッチ２３がＯＮの時には、ＨＤＤ２５はＩＤＥコントローラ２１のみに接続される。このため、図２に示すように、第１のＣＰＵ（ＣＰＵ＃１）１は普通のパーソナルコンピュータと同じように、ＣＰＵ＃１用ＯＳ２７とＩＤＥコントロールドライバ３６を経由してＨＤＤ２５をアクセスすることができる。
【００３１】
第１のバススイッチ１８がＯＮになった場合は、図３に示すように、使用されるソフトウェアモジュールは、ＣＰＵ＃１用ＯＳ２７が起動する前と後で異なってくる。ただし、第２のＣＰＵ（ＣＰＵ＃２）９がＩＤＥコントローラ１２経由でＨＤＤ２５をアクセスするために使用するソフトウェアモジュールは、ＣＰＵ＃１用ＯＳ２７が起動する前と後とで共通になる。
【００３２】
第２のＣＰＵ（ＣＰＵ＃２）９は、ＣＰＵ＃２用ＯＳ２６上で動作する。このＣＰＵ＃２用ＯＳ２６には、第２のＣＰＵ（ＣＰＵ＃２）９がＩＤＥコントローラ１２を介してＨＤＤ２５をアクセスするためのソフトウェアモジュールとしてＩＤＥコントローラドライバ３２が組み込まれている。さらに、ＣＰＵ＃２用ＯＳ２６には、第１のＣＰＵ（ＣＰＵ＃１）１からＰＣＩバス６経由でストリーム処理モジュール７のＣＰＵ９に発行されるディスクアクセス要求を受信するためのＰＣＩバスブリッジ・ＤＭＡドライバ３４も組み込まれている。このＰＣＩバスブリッジ・ＤＭＡドライバ３４は、ＰＣＩバス６経由で第１のＣＰＵ（ＣＰＵ＃１）１との通信を行うソフトウェアモジュールであり、ＰＣＩバス６経由で第１のＣＰＵ（ＣＰＵ＃１）１からのディスクアクセス要求を受信するとともに、ＨＤＤ２５から読んだデータをＰＣＩバス６経由で第１のＣＰＵ（ＣＰＵ＃１）１に送信する処理を実行する。ストリーム処理モジュール７の各コンポーネントはＣＰＵ１からはＰＣＩデバイスとして見えるようになっている。このため、ＣＰＵ１はＨＤＤ２５をアクセスする時には、このストリーム処理モジュール７との通信を行う。
【００３３】
この通信は、ＣＰＵ１の起動時においては、ＣＰＵ１によって実行されるＢＩＯＳ３７を経由して行われる。ＢＩＯＳ３７は、ＧＰＩＯ２０に設定された値を参照して、ＨＤＤ２５がＩＤＥコントローラ１２およびＩＤＥコントローラ２１のどちらに接続されているかを判断する。ＨＤＤ２５がＩＤコントローラ１２に接続されているならば、ＢＩＯＳ３７は、ストリーム処理モジュール７内の内部バス−ＰＣＩブリッジ１１を通じて第２のＣＰＵ（ＣＰＵ＃２）９にディスクアクセス要求を発行することにより、ＰＣＩバスブリッジ・ＤＭＡドライバ３４を通じてＨＤＤ２５をアクセスする。一方、ＨＤＤ２５がＩＤＥコントローラ２１に接続されているならば、ＢＩＯＳ３７は、ＩＤＥコントローラ２１を通じてＨＤＤ２５をアクセスする。ＢＩＯＳ３７の中には２種類のＨＤＤアクセスプログラムが存在し、上位ソフトウェアはＨＤＤ２５がＩＤＥコントローラ１２およびＩＤＥコントローラ２１のどちらに接続されているかを意識する必要はない。
【００３４】
ＢＩＯＳ３７によってＣＰＵ＃１用ＯＳ２７がブートアップされた後は、ＣＰＵ＃１用ＯＳ２７に組み込まれた仮想ドライブドライバ３５が起動される。仮想ドライブドライバ３５はストリーム処理モジュール７を通じてＨＤＤ２５をアクセスするためのソフトウェアモジュールであり、例えば、ＨＤＤ２５を仮想ドライブとして制御するためのドライバとして実現されている。仮想ドライブには、ＨＤＤ２５内のほとんどすべてのディレクトリ（ＣＰＵ＃１用ＯＳ領域、ＣＰＵ＃１用スワップ領域、ＣＰＵ＃１用データ領域、ＣＰＵ＃２用データ領域）がマウントされる。これにより、仮想ドライブにマウントされた各ディレクトリに対するＣＰＵ１からのディスクアクセス要求は、仮想ドライブドライバ３５に送られる。仮想ドライブドライバ３５は、ＣＰＵ１からのディスクアクセス要求を、ストリーム処理モジュール７内の内部バス−ＰＣＩブリッジ１１を通じて第２のＣＰＵ（ＣＰＵ＃２）９に発行する。これにより、ストリーム処理モジュール７経由でのＨＤＤ２５のアクセスが可能になる。ＣＰＵ＃２用データ領域はＣＰＵ１とＣＰＵ９によって共有される。ＣＰＵ１は、ＣＰＵ９によってＣＰＵ＃２用データ領域に格納された放送番組データを読み出し、ＬＡＮコントローラ５を介してネットワーク上のパーソナルコンピュータに送信することができる。
【００３５】
仮想ドライブドライバ３５はストリーム処理モジュール７を制御してＨＤＤ２５にアクセスするドライバであるが、仮想ドライブドライバ３５の上位インターフェースは標準のＩＤＥドライバと同じである。よって上位ソフトウェアからは、仮想ドライブドライバ３５は通常のＩＤＥドライブとして見えるようになっている。
【００３６】
次に、図４のフローチャートを参照して、ホームネットワークサーバが電源オンされたときに実行される処理の手順について説明する。
【００３７】
電源スイッチ４５がオンされると、システムコントローラ４４から第１のＣＰＵ１に電源ＶＣＣ１が供給され、第１のＣＰＵ１がパワーオンされる（ステップＳ１１）。第１のＣＰＵ１はまずＢＩＯＳ３７を実行する（ステップＳ１２）。ＢＩＯＳ３７は、ＧＰＩＯ３８を通じて起動モードスイッチ３９の状態をチェックし、起動モードスイッチ３９がオン状態であるかどうかを判別する（ステップＳ１３）。
【００３８】
起動モードスイッチ３９がオフ状態であれば（ステップＳ１３のＮＯ）、ＢＩＯＳ３７は、第１のＣＰＵ１および第２のＣＰＵ９の双方を起動する通常起動モードが選択されたと判断し、第１のバススイッチ（＃１）１８をＯＮ、第２のバススイッチ（＃２）２３をＯＦＦに設定して、ＨＤＤ２５をＩＤＥコントローラ１２に接続する（ステップＳ１４）。この後、ＢＩＯＳ３７は、システムコントローラ４４に対して、第２のＣＰＵ９に電源ＶＣＣ２を供給すべきことを指示する（ステップＳ１５）。これによって第２のＣＰＵ９がパワーオンされ、第２のＣＰＵ９によってＣＰＵ＃２用ＯＳを起動する処理が開始される。ＢＩＯＳ３７は、ＣＰＵ＃２用ＯＳの起動が完了するのを待つ（ステップＳ１６）。ＢＩＯＳ３７は、ストリーム処理モジュール７との通信によって、ＣＰＵ＃２用ＯＳの起動が完了したことを確認すると、ＣＰＵ＃１用ＯＳを起動する処理を開始する（ステップＳ１７）。このステップＳ１７においては、ＢＩＯＳ３７は、ＣＰＵ＃１用ＯＳをＨＤＤ２５からロードするためのディスクアクセス要求を第２のＣＰＵ９に発行する。これにより、ＣＰＵ＃１用ＯＳはＩＤＥコントローラ１２を介してＨＤＤ２５からリードされ、メモリ３にロードされる。
【００３９】
一方、起動モードスイッチ３９がオン状態であれば（ステップＳ１３のＹＥＳ）、ＢＩＯＳ３７は、第１のＣＰＵ１のみを起動してＨＤＤ２５のリカバリー処理を実行するリカバリーモード（ＨＤＤ復旧モード）が選択されたと判断し、第１のバススイッチ（＃１）１８をＯＦＦ、第２のバススイッチ（＃２）２３をＯＮに設定して、ＨＤＤ２５をＩＤＥコントローラ２１に接続する（ステップＳ１８）。そして、ＢＩＯＳ３７は、ＤＶＤ−ＲＯＭドライブ２４に挿入されたリカバリー用メディアを用いてＨＤＤ２５の内容を初期状態に復元するＨＤＤリカバリー処理を実行する（ステップＳ１９）。このステップＳ１９においては、ＢＩＯＳ３７は、リカバリー用メディアに格納されたリカバリーイメージをセクタ単位でＨＤＤ２５に書き込む。この書き込みは、ＩＤＥコントローラ２１を通じて実行される。
【００４０】
次に、図５のフローチャートを参照して、ＣＰＵ＃１用ＯＳの起動時に実行される処理の手順を説明する。
【００４１】
ＣＰＵ＃１用ＯＳがＢＩＯＳ３７によって起動され（ステップＳ２１）、そしてＩＤＥコントローラドライバ３６および仮想ドライブドライバ３５がロードされた後（ステップＳ２２，Ｓ２３）、ＣＰＵ＃１用ＯＳは、ＧＰＩＯ２０の設定値に基づいて、ＨＤＤ２５がＩＤＥコントローラ１２およびＩＤＥコントローラ２１のどちらに接続されているか、つまり第１のバススイッチ（＃１）１８および第２のバススイッチ（＃２）２３のどちらがオンされているかを判別する（ステップＳ２４）。第２のバススイッチ（＃２）２３がオンされていれば、ＣＰＵ＃１用ＯＳは、ＩＤＥコントローラ２１を介してアプリケーションプログラムなどをＨＤＤ２５からロードする処理を実行する（ステップＳ２５）。一方、第１のバススイッチ（＃１）１８がオンされていれば、ＣＰＵ＃１用ＯＳは、ＨＤＤ２５に対するアクセスがストリームモジュール７のＣＰＵ９を介して実行されるように、ＨＤＤ２５内のほとんどすべてのディレクトリ（ＣＰＵ＃１用ＯＳ領域、ＣＰＵ＃１用スワップ領域、ＣＰＵ＃１用データ領域、ＣＰＵ＃２用データ領域）を仮想ドライブにマウントする（ステップＳ２６）。これにより、ＣＰＵ＃１用ＯＳ領域、ＣＰＵ＃１用スワップ領域、ＣＰＵ＃１用データ領域、またはＣＰＵ＃２用データ領域に対する上位ソフトウェアからのディスクアクセス要求は、全て仮想ドライブドライバ３５に送られる。仮想ドライブドライバ３５は上位ソフトウェアからのディスクアクセス要求をＰＣＩバス６を介してストリーム処理モジュール７の第２のＣＰＵ９に発行するので、第１のＣＰＵ１は第２のＣＰＵ９およびＩＤＥコントローラ１２を介してＨＤＤ２５をアクセスすることが出来る。
【００４２】
次に、図６のフローチャートを参照して、第２のＣＰＵ９をスリープ状態のような動作停止状態に設定する時に第１のＣＰＵ１によって実行される処理の手順について説明する。
【００４３】
ホームネットワークサーバにおいては、第２のＣＰＵ９が稼動している間は、第１のＣＰＵ１は第２のＣＰＵ９を経由して間接的にＨＤＤ２５をアクセスする。このため、第２のＣＰＵ９をスリープ状態のような動作停止状態に設定する場合には、第１のＣＰＵ１は、ＨＤＤ２５が接続されるＩＤＥコントローラをＩＤＥコントローラ１２からＩＤＥコントローラ２１に切り替える処理を実行する。
【００４４】
第１のＣＰＵ１は、第２のＣＰＵ９がアイドル状態であることを検知すると、第２のＣＰＵ９をスリープ状態のような動作停止状態に設定する処理を開始する（ステップＳ３１）。この場合、第１のＣＰＵ１は、まず、ＧＰＩＯ２０の設定値に基づいて、ＨＤＤ２５がＩＤＥコントローラ１２およびＩＤＥコントローラ２１のどちらに接続されているか、つまり第１のバススイッチ（＃１）１８および第２のバススイッチ（＃２）２３のどちらがオンされているかを判別する（ステップＳ３２）。第２のバススイッチ（＃２）２３がオンであれば、第１のＣＰＵ１は、ＣＰＵ９にコマンドを発行してＣＰＵ９をスリープ状態のような動作停止状態に設定する（ステップＳ３３）。このステップＳ３３では、第２のＣＰＵ９に対する電源供給を停止してもよい。
【００４５】
一方、第１のバススイッチ（＃１）１８がオンであれば、第１のＣＰＵ１は、第１のバススイッチ（＃１）１８をＯＦＦ、第２のバススイッチ（＃２）２３をＯＮに設定して、ＨＤＤ２５をＩＤＥコントローラ２１に接続する（ステップＳ３４）。この後、第１のＣＰＵ１は、ＨＤＤ２５に対するアクセスがＩＤＥコントローラドライバ３６およびＩＤＥコントローラ２１を介して実行されるように、仮想ドライブにマウントされている全てのディレクトリを仮想ドライブからアンマウントする（ステップＳ３５）。そして、第１のＣＰＵ１は、第２のＣＰＵ９にコマンドを発行してＣＰＵ９をスリープ状態のような動作停止状態に設定する（ステップＳ３３）。
【００４６】
次に、図７のフローチャートを参照して、第２のＣＰＵ９をスリープ状態のような動作停止状態から動作状態に復帰する時に第１のＣＰＵ１によって実行される処理の手順について説明する。
【００４７】
第１のＣＰＵ１は、ユーザによって放送番組データの録画が要求されるなどのイベントが発生すると、第２のＣＰＵ９をスリープ状態から起こす処理を開始する（ステップＳ４１）。この場合、第１のＣＰＵ１は、第２のバススイッチ（＃２）２３をＯＦＦ、第１のバススイッチ（＃１）１８をＯＮに設定して、ＨＤＤ２５をＩＤＥコントローラ１２に接続する（ステップＳ４２）。この後、第１のＣＰＵ１は、例えば第２のＣＰＵ９へのコマンド発行や、システムコントローラ４４を用いて第２のＣＰＵ９への電源供給を開始する事によって、第２のＣＰＵ９をスリープ状態から起こす（ステップＳ４３）。そして、第１のＣＰＵ１は、ＨＤＤ２５に対するアクセスがＣＰＵ９を経由して実行されるように、ＨＤＤ２５内のほとんどすべてのディレクトリ（ＣＰＵ＃１用ＯＳ領域、ＣＰＵ＃１用スワップ領域、ＣＰＵ＃１用データ領域、ＣＰＵ＃２用データ領域）を仮想ドライブにマウントする（ステップＳ４４）。
【００４８】
このように、第１のＣＰＵ１がＨＤＤ２５をアクセスするための経路は、第２のＣＰＵ９の動作状態であるか非動作状態（動作停止状態）であるかに応じて、自動的に切り替えられる。よって、第２のＣＰＵ９の電力消費を低減するために第２のＣＰＵ９をスリープ状態に設定しても、第１のＣＰＵ１はＨＤＤ２５を正常にアクセスし続けることができる。
【００４９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態に係る電子機器のシステム構成を示すブロック図。
【図２】図１のシステムにおいて第１のＣＰＵがＨＤＤをアクセスするためのアクセス経路を説明するための図。
【図３】図１のシステムにおいて第１のＣＰＵが第２のＣＰＵを経由してＨＤＤをアクセスするためのアクセス経路を説明するための図。
【図４】図１のシステムが電源オンされたときに実行される処理の手順を説明するフローチャート。
【図５】図１のシステムにおいて第１のＣＰＵによって実行されるオペレーティングシステムの起動時に実行される処理の手順を説明するフローチャート。
【図６】図１のシステムにおいて第２のＣＰＵをスリープ状態に設定する時に第１のＣＰＵによって実行される処理の手順を示すフローチャート。
【図７】図１のシステムにおいて第２のＣＰＵをスリープ状態から起こす時に第１のＣＰＵによって実行される処理の手順を示すフローチャート。
【符号の説明】
【００５１】
１…第１のＣＰＵ、４…サウスブリッジ、７…ストリーム処理モジュール、９…第２のＣＰＵ、１２，２１…ＩＤＥコントローラ、１８…第１のバススイッチ、２３…第２のバススイッチ、２５…ハードディスクドライブ、３９…起動モードスイッチ。
【図１】
2005135269.tif 000003
【図２】
2005135269.tif 000004
【図３】
2005135269.tif 000005
【図４】
2005135269.tif 000006
【図５】
2005135269.tif 000007
【図６】
2005135269.tif 000008
【図７】
2005135269.tif 000009