(57)【要約】【課題】専用の信号線を追加せずに、調停回路が備える調停制御用のレジスタを操作する車載情報端末を提供する。【解決手段】電源オン直後は、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂが、切替制御回路２４と通信を行えない状態となっている。切替制御回路２４は、メインＣＰＵ１０ＡおよびサブＣＰＵ１０ＢがＡＴＡバス上に送信する、ＨＤＤ５０のレジスタへの書き込み信号を常時監視している。所定のレジスタへの書き込みが検知されたとき、切替制御回路２４はブリッジ回路２５および２６を制御し、切替制御回路２４が備えるレジスタへの読み書きを行えるようにする。これにより、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂから切替制御回路２４が備えるレジスタへ、バス権の要求などを行えるようになる。【選択図】図２
2010039716.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶領域と、データ記憶の管理に用いるＡＴＡＰＩレジスタとを備えた記憶媒体と、
前記記憶媒体との間でデータ授受を行って第１の処理を行う第１のプロセッサと、
前記記憶媒体との間でデータ授受を行って第２の処理を行う第２のプロセッサと、
バス権の調停に用いるＡＴＡＰＩレジスタを備え、前記第１および第２のプロセッサの前記記憶媒体に対するバス権を調停する調停回路と、
前記第１および第２のプロセッサと前記記憶媒体とのＡＴＡバスによる接続の有無を切り替える切替手段とを備え、
前記第１および第２のプロセッサは、所定条件が成立すると、前記記憶媒体に設けたＤＥＶＩＣＥレジスタのビット７およびビット５のいずれか一方に対してＡＴＡバスを介して論理値を書込むための信号を出力し、
前記調停回路は、前記論理値を書込むための信号が出力されたことを判別すると、前記バス権の調停に用いるＡＴＡＰＩレジスタの状態に基づいて前記切替手段の状態を変更することを特徴とする車載情報端末。
【請求項２】
請求項１に記載の車載情報端末において、
前記所定条件は、前記第１および第２のプロセッサのいずれか一方、または双方が前記記憶媒体との間で前記データ授受を行うコマンドが生成されたときであることを特徴とする車載情報端末。
【請求項３】
請求項１または２に記載の車載情報端末において、
前記調停回路は、前記論理値を書込むための信号が出力されたことを判別すると、前記第１および第２のプロセッサのいずれか一方からの指示にしたがって、前記バス権の調停に用いるＡＴＡＰＩレジスタの状態を更新することを特徴とする車載情報端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクなどの記憶媒体にアクセスする複数のプロセッサのバス権調停に関する。
【背景技術】
【０００２】
車両を目的地まで誘導するナビゲーション機能と、音楽ＣＤからハードディスク（ＨＤＤ）にリッピングした音楽データを再生出力する機能を備えた車載ナビゲーション装置が知られている（非特許文献１）。
【０００３】
【非特許文献１】富士通テン技報  Vol.22  No.1  ３頁〜１１頁
【０００４】
非特許文献１の装置では、１台のハードディスクにナビゲーションに必要な地図データや地点データとともに、音楽ＣＤからリッピングした音楽データを記憶する。この装置では、ナビゲーション用ＣＰＵ（メインＣＰＵ）でナビゲーション処理を行い、ミュージック用ＣＰＵ（サブＣＰＵ）で音楽データを再生し、また、音楽データをエンコードしてＨＤＤに記憶するリッピング処理を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
非特許文献１に開示されている車載ナビゲーション装置においては、ＡＴＡ調停部が備える調停制御用のレジスタを操作するために、専用の信号線を追加する必要がある。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、データを記憶する記憶領域と、データ記憶の管理に用いるＡＴＡＰＩレジスタとを備えた記憶媒体と、前記記憶媒体との間でデータ授受を行って第１の処理を行う第１のプロセッサと、前記記憶媒体との間でデータ授受を行って第２の処理を行う第２のプロセッサと、バス権の調停に用いるＡＴＡＰＩレジスタを備え、前記第１および第２のプロセッサの前記記憶媒体に対するバス権を調停する調停回路と、前記第１および第２のプロセッサと前記記憶媒体とのＡＴＡバスによる接続の有無を切り替える切替手段とを備え、前記第１および第２のプロセッサは、所定条件が成立すると、前記記憶媒体に設けたＤＥＶＩＣＥレジスタのビット７およびビット５のいずれか一方に対してＡＴＡバスを介して論理値を書込むための信号を出力し、前記調停回路は、前記論理値を書込むための信号が出力されたことを判別すると、前記バス権の調停に用いるＡＴＡＰＩレジスタの状態に基づいて前記切替手段の状態を変更することを特徴とする車載情報端末である。
【発明の効果】
【０００７】
本発明によれば、データ授受に用いる既存の伝送路を用いて、調停回路に用意されたレジスタを操作することができるので、別途信号線を追加する必要がない。
【発明を実施するための最良の形態】
【０００８】
――第１の実施の形態――
本発明による車載情報端末をナビゲーション装置に適用した第１の実施形態の構成を図１に示す。図１のナビゲーション装置は、地図表示、経路誘導などの通常のナビゲーション機能の他に、音楽や映像再生機能を有する。この実施の形態では、音楽再生機能、音楽リッピング機能、地上デジタル放送視聴および録画機能をナビゲーション装置が備えているものとして説明する。なお、本明細書において、音楽データや地上デジタル放送映像データをストリーム系データまたはマルチメディア系データと呼び、これらのストリーム系データまたはマルチメディア系データは連続的に転送される。これに対して、ナビゲーション処理における地図スクロール時のスクロールデータやガイダンスデータは間欠的にデータ転送される。
【０００９】
ナビゲーション装置は、ナビゲーション用メインＣＰＵ（プロセッサ）１０Ａと、音楽／映像再生用サブＣＰＵ（プロセッサ）１０Ｂと、ＦＰＧＡ等で構成される調停回路２０を主要部とする制御回路１０とを備えている。制御回路１０には、ハードディスクドライブ（ＨＤＤ）５０と、装填されたＣＤやＤＶＤなどから音楽データや映像データを読み取るＤＶＤドライブ６０と、自車両の現在位置を検出する位置検出装置７１と、地上デジタル放送受信回路７２と、地図を表示したり地上デジタル放送の映像を表示する表示モニタ７３と、経路案内の音声を出力したり受信した地上デジタル放送の音声を出力するスピーカ７４と、各種入力装置７５とが接続されている。
【００１０】
制御回路１０のメインＣＰＵ１０Ａには、プログラムなどを書き込んだフラッシュメモリ１１と、ＣＰＵ１０Ａには含まれないが装置として必要な論理演算を実行するＡＳＩＣ１２と、メインＣＰＵ１０Ａの演算処理で使用する各種データを一時保存するＤＲＡＭ１３とがバスで接続されている。制御回路１０のサブＣＰＵ１０Ｂには、プログラムなどを書き込んだフラッシュメモリ１４と、音楽ＣＤから取得した音楽データを再生処理したりリッピング処理を行うＤＳＰ１５と、ＤＳＰ１５の信号処理で得られる各種データを一時保存するＤＲＡＭ１６と、サブＣＰＵ１０Ｂの演算処理で使用する各種データを一時保存するＤＲＡＭ１７とが接続されている。
【００１１】
調停回路２０には、サブＣＰＵ１０Ｂで取得したデータを一時記憶するバッファメモリ４１が接続されている。このバッファメモリ４１は、たとえばピンポンバッファ（サーキュラーバッファ）として構成することができる。サブＣＰＵ１０Ｂによりピンポンバッファの書き出しポインタをモニタして、バッファメモリ４１のデータ記憶容量を検出することができる。
【００１２】
ＨＤＤ５０は、内蔵する磁気ハードディスクに記憶した地図データおよび音楽データの読み出し／書き込みを行う高速大容量記憶媒体および読み取り装置である。ＨＤＤ５０の音楽データはリッピング処理によってエンコードされた音楽データである。ＤＶＤドライブ６０は、セットした音楽ＣＤに記憶されている音楽データあるいは映像ＤＶＤに記憶されている映像データの読み出し／書き込みを行う読み取り／書き込み装置である。音楽ＣＤや映像ＤＶＤはＨＤＤ５０に比べて低速小容量記憶媒体である。
【００１３】
ハードディスクドライブ（ＨＤＤ）５０およびＤＶＤドライブ６０は、ATAPI(AT Attachment Packet Interface)に準拠したIDE(Integrated Drive Electronics)インターフェースを使用してメインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂとの間でコマンド授受あるいはデータ授受を行う。ＨＤＤ５０およびＤＶＤドライブ６０は、バッファメモリ４１との間でも同様にしてデータ転送を行う。そして調停回路２０は、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂの、ＨＤＤ５０およびＤＶＤドライブ６０に対するバス権（アクセス権）を調停している。
【００１４】
メインＣＰＵ１０Ａは、フラッシュメモリ１１に格納された制御プログラムを実行して各種のナビゲーション処理を実行する。ＤＲＡＭ１３には、ナビゲーション処理で使用するデータや演算データが一時的に保存される。メインＣＰＵ１０Ａは、位置検出装置７１で検出された車両の現在位置を入力し、ＨＤＤ５０の地図データに基づいて自車位置周辺の地図を表示モニタ７３に表示する。あるいは、自車位置から目的地までの経路を探索し、推奨経路に沿って乗員を案内する経路誘導を行う。
【００１５】
サブＣＰＵ１０Ｂは、フラッシュメモリ１４に格納された制御プログラムを実行して音楽再生処理や映像再生処理などを行う。サブＣＰＵ１０Ｂは、ＤＶＤドライブ６０にセットされた音楽ＣＤに記憶された音楽データをＤＳＰ１５で再生してスピーカ７４から出力する。サブＣＰＵ１０Ｂの制御の下、ＤＳＰ１５は、ＤＶＤドライブ６０から読み込んだ音楽データをリッピング処理し、サブＣＰＵ１０Ｂは、リッピング処理によりエンコードされた音楽データなどのストリーム系データをバッファメモリ４１にいったん記憶し、後述するバス権設定処理の制御の下で決定されるタイミングでバッファメモリ４１からＨＤＤ５０に転送して記憶する。
【００１６】
サブＣＰＵ１０Ｂは、地上デジタル放送受信回路７２で受信した地上デジタル放送の映像を表示モニタ７３に表示し、スピーカ７４からその音声を出力することにより、いわゆる地デジ放送を視聴する処理を行う。地上デジタル放送を録画する処理もサブＣＰＵ１０Ｂにより行われる。この場合、受信した映像や音声はＤＲＡＭ１７に一時的に格納され、表示モニタ７３とスピーカ７４により乗員に提供する。ＤＲＡＭ１７には、音楽データや映像データの処理（エンターテイメント処理）で使用されるデータや演算データも一時的に保存される。また、地上デジタル放送の映像を録画する場合も、映像データをＤＲＡＭ１７からバッファメモリ４１にいったん転送し、後述するバス権設定処理の制御の下で決定されるタイミングでＨＤＤ５０に転送して録画する。
【００１７】
以上のように、メインＣＰＵ１０Ａはナビゲーション処理を実行するプロセッサであり、たとえば、経路探索処理、地図スクロール処理、地図データ読み出し処理などを実行する。また、サブＣＰＵ１０Ｂは、たとえば、音楽データのリッピング処理、ＣＤ／ＤＶＤデータ読み出し処理、地上デジタル放送録画処理などを実行するプロセッサである。
【００１８】
図２に詳細に示すように、調停回路２０は、Host I/F２１と、Device I/F２２および２３と、Arbiterと呼ばれる切替制御回路２４、第１および第２のブリッジ回路２５および２６とを備えたプログラマブルゲートアレイ回路として構成することができる。
【００１９】
Host I/F２１はＨＤＤ５０およびＤＶＤドライブ６０と接続され、Device I/F２２はメインＣＰＵ１０Ａと接続され、Device I/F２３はサブＣＰＵ１０Ｂと接続されている。メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂは、バス権要求信号をDevice I/F２２および２３を経由して切替制御回路２４へ送信する。ブリッジ回路２５および２６は、いずれか一方のＣＰＵをＨＤＤ５０またはＤＶＤドライブ６０と接続するスイッチ回路であり、Device I/F２２および２３とHost I/F２１との間にそれぞれ設けられる。切替制御回路２４は、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂから出力されるバス権要求信号に基づいてブリッジ回路２５，２６を制御してバス接続を切り替える。
【００２０】
切替制御回路２４によるバス権調停は次の通りである。
（１）メインＣＰＵ１０Ａからのみバス権を要求されている場合、切替制御回路２４は、バス権をメインＣＰＵ１０Ａに与えるようにブリッジ回路２５，２６を切替制御する。
【００２１】
（２）バッファメモリ４１のデータ記憶容量が最大記憶容量に対して所定の割合、たとえば８０パーセントを超えると、サブＣＰＵ１０Ｂからのバス権要求にしたがって、切替制御回路２４は、バス権をサブＣＰＵ１０Ｂに与えるようにブリッジ回路２５，２６を切替制御する。
【００２２】
（３）上記（２）で説明したようにバッファメモリ４１のデータ記憶容量が８０パーセントを越えてバッファメモリ４１からＨＤＤ５０へデータが転送されているとき、メインＣＰＵ１０Ａがバス権を要求すると、切替制御回路２４は、バス権をサブＣＰＵ１０ＢからメインＣＰＵ１０Ａに引き渡し、メインＣＰＵ１０Ａからのデータ転送が終了すると、サブＣＰＵ１０Ｂにバス権を与える。これにより、メインＣＰＵ１０Ａがデータを間欠的に転送する合間に、バッファメモリ４１のデータがＨＤＤ５０に転送される。また、バス権をサブＣＰＵ１０ＢからメインＣＰＵ１０Ａに引き渡す場合でも、サブＣＰＵ１０Ｂのデータ処理は続行され、得られたストリーム系データはバッファメモリ４１に一時記憶される。
【００２３】
本実施の形態では、バッファメモリ４１において、データ記憶容量の最大記憶容量に対する割合が８０パーセントを越えると割り込みをかけてバス権をサブＣＰＵ１０Ｂに引き渡すようにした。この割合は、メインＣＰＵ１０ＡがＨＤＤ５０へデータを間欠的に転送する転送間隔の最大時間に応じて決定することができる。
【００２４】
次に、本実施形態における、切替制御回路２４へのバス権要求方法について説明する。バス権の要求やバス権の状態確認は、切替制御回路２４が備えるレジスタへの読み書きにより行う。ナビゲーション装置の電源オン直後は、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂから、切替制御回路２４が備えるレジスタへの読み書きを行えない状態となっている。切替制御回路２４は、メインＣＰＵ１０ＡおよびサブＣＰＵ１０ＢがＡＴＡバス上に送信する、ＨＤＤ５０またはＤＶＤドライブ６０のレジスタへの書き込み信号を常時監視している。所定のレジスタへの書き込みが検知されたとき、切替制御回路２４はブリッジ回路２５および２６を制御すると共に、切替制御回路２４が備えるレジスタへの読み書きを行えるようにする。これにより、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂから切替制御回路２４が備えるレジスタへ、バス権の要求などを行えるようになる。
【００２５】
前述の通り、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂと、ＨＤＤ５０またはＤＶＤドライブ６０とは、ＡＴＡＰＩに準拠したインタフェースを用いて、データおよびコマンドの授受を行う。上記の通信を行うとき、通信の主体であるメインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂはホストと呼ばれ、記憶装置であるＨＤＤ５０およびＤＶＤドライブ６０はデバイスと呼ばれる。
【００２６】
各々のデバイスは、ＡＴＡＰＩによって規定される複数のレジスタを備えている。ホストはこれらのレジスタに対し読み書きを行うことで、各種の制御を行う。レジスタは１つにつき８ビットの大きさである。レジスタには、読み取り専用および書き込み専用であるものも存在する。図３は、本実施形態におけるレジスタの一覧を示す図である。
【００２７】
ホストが読み書きを行うレジスタは、列８１に示すChip Selectと呼ばれる２本の信号線と、列８２に示すDevice Addressと呼ばれる３本の信号線によって特定される。例えば、ＣＳ１、ＣＳ０、ＤＡ２、ＤＡ１、ＤＡ０がそれぞれＨｉｇｈ、Ｌｏｗ、Ｌｏｗ、Ｌｏｗ、Ｌｏｗであれば、ホストが読み書きを行うレジスタはＤＡＴＡレジスタである。
【００２８】
列８３に示すレジスタが、通常のデバイスが備えるレジスタである。これらとは別に、切替制御回路２４は、列８４に示したレジスタを備えている。列８４で示すレジスタは、ＡＴＡＰＩ規格では規定されていない、本実施形態独自のレジスタである。このレジスタへの読み書き方法については後に詳述する。
【００２９】
図３に示したレジスタのうち、ＤＥＶＩＣＥレジスタについてより詳細に説明する。図４は、ＤＥＶＩＣＥレジスタのビットごとの機能を示した図である。図中に「＃」で示されたビットは、使用されていないビットであり、どのような値を採ってもよい。ビット４は、アクセス対象のデバイスを選択するＤＥＶビットである。本実施形態においては、ＤＥＶビットが０の場合はＨＤＤ５０が、１の場合はＤＶＤドライブ６０が選択される。
【００３０】
ビット７およびビット５は、ＡＴＡＰＩ規格に準拠して、以前何らかの意味を与えられて使用されていたが、現在のＡＴＡＰＩ規格では使用されていないビットである。これらのビットへどのような値を書き込んでも、デバイスの動作には影響しない。
【００３１】
本実施形態では、ＤＥＶＩＣＥレジスタのビット７を用いて、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂから読み書き可能なレジスタの切り替えを行う。図５は、レジスタの切り替えの概略を示す図である。符号８６は切替制御回路２４が備えるレジスタを、符号８７はＨＤＤ５０が備えるレジスタを表す。以下、この図を基にレジスタの切り替え動作を説明する。なお、図５では、Device I/F２２およびHost I/F２１を省略した。
【００３２】
通常、切替制御回路２４およびブリッジ回路２５は図５（ａ）あるいは図５（ｂ）に示す状態となっている。図５（ａ）はメインＣＰＵ１０Ａにバス権が与えられている状態、図５（ｂ）はメインＣＰＵ１０Ａにバス権が与えられていない状態である。レジスタ８６の斜線は、レジスタ８６が読み書きできない状態となっていることを示す。
【００３３】
図５（ａ）に示す状態のとき、メインＣＰＵ１０ＡはＨＤＤ５０のレジスタ８７へ読み書きを行える。一方、図５（ｂ）に示す状態のときは、ブリッジ回路２５により信号が遮断されるため、ＨＤＤ５０のレジスタ８７へ読み書きを行うことはできない。いずれの状態であっても、切替制御回路２４は、メインＣＰＵ１０ＡからＡＴＡバスへ送信される信号を監視している。
【００３４】
ここでメインＣＰＵ１０Ａが、ＤＥＶＩＣＥレジスタのビット７へ１を書き込む信号を送信したとする。送信前の状態が図５（ａ）に示す状態であれば、図５（ｃ）に示すように、送信した信号はＨＤＤ５０に到達する。すなわち、レジスタ８７に含まれるＤＥＶＩＣＥレジスタのビット７へ１が書き込まれる。一方、送信前の状態が図５（ｂ）に示す状態であった場合は、図５（ｄ）に示すように、送信した信号はブリッジ回路２５により遮断され、ＨＤＤ５０へは到達しない。なお、ＤＥＶＩＣＥレジスタのビット７へ値を書き込んでも、前述の通りＨＤＤ５０の動作には何ら影響を与えない。
【００３５】
図５（ｃ）と図５（ｄ）のいずれの場合であっても、メインＣＰＵ１０Ａが送信した信号は切替制御回路２４へ到達する。そして、切替制御回路２４は、メインＣＰＵ１０ＡがＤＥＶＩＣＥレジスタのビット７へ１を書き込もうとしたことを検知し、メインＣＰＵ１０Ａから切替制御回路２４が備えるレジスタ８６へ読み書きができるようにする。その結果、図５（ｅ）に示す状態となる。
【００３６】
図５（ｅ）では、ブリッジ回路２５により遮断されているため、メインＣＰＵ１０Ａからの信号はＨＤＤ５０に到達しない。また、切替制御回路２４が備えるレジスタ８６は、読み書きが行える状態となっている。この状態でメインＣＰＵ１０Ａは、レジスタ８６へバス権要求などの必要な操作を行う。
【００３７】
必要な操作をすべて終えたメインＣＰＵ１０Ａは、図５（ｆ）に示すように、ＤＥＶＩＣＥレジスタのビット７へ０を書き込む信号を送信する。切替制御回路２４はこの信号を検知し、レジスタ８６へ読み書きを行えなくする。結果として、メインＣＰＵ１０Ａがバス権を取得していれば図５（ａ）に示す状態へ、そうでないなら図５（ｂ）に示す状態へ移る。
【００３８】
以上のようにして、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂは、読み書きを行うレジスタの切り替えを行う。そして各々のＣＰＵは、切替制御回路２４が備える、図３の列８４で示したレジスタを用いてバス権調停を行う。
【００３９】
以下、列８４の各レジスタについて説明する。バス権要求レジスタは、各ＣＰＵがバス権を要求する際に用いるレジスタであり、バス権を要求する際に１を書き込む。バス権状態レジスタＡおよびバス権状態レジスタＢは、バス権の獲得が完了したか否かを表すレジスタであり、値が１であった場合はバス権の獲得が完了している。バス権状態レジスタＡはメインＣＰＵ１０Ａの、バス権状態レジスタＢはサブＣＰＵ１０Ｂのバス権にそれぞれ対応している。中断指示レジスタは、他のＣＰＵによってバス権が要求されたか否かを表すレジスタであり、値が１であった場合は他のＣＰＵがバス権を要求している。
【００４０】
次に、制御回路１０の具体的な処理内容について、図面を用いて説明する。図６〜９は、制御回路１０による処理全体を説明するフローチャートである。なお、図６および図７はそれぞれメインＣＰＵ１０ＡおよびサブＣＰＵ１０ＢとＨＤＤ５０とのデータ転送処理を説明するフローチャートである。また、図８は、ゲートアレイで構成される切替制御回路２４で行われる調停ロジックを説明するフローチャートである。図６および図７において、切替制御回路２４のレジスタを読み書きする処理はすべて、図９に示す処理の呼び出しとなっている。図９は、切替制御回路２４のレジスタを読み書きする処理のフローチャートである。
【００４１】
図６を参照し、メインＣＰＵ１０Ａによるデータ転送処理を説明する。ステップＳ１１では、ＨＤＤ５０との間で転送するデータがあるか否かを判定する。転送データがあればステップＳ１２に進む。ステップＳ１２では、メインＣＰＵ１０Ａがバス権を要求するため、バス権要求レジスタに「１」を書き込む。ステップＳ１３では、バス権状態レジスタＡの値を読む。ステップＳ１４では、読み込んだ値が１であるか否かを判定する。バス権状態レジスタＡの値が１となるのは、後述するように、ブリッジ回路２５によるメインＣＰＵ１０Ａへのバス権の受け渡しが終了したことを示す。レジスタの値が１であることが確認されると、ステップＳ１５に進み、ＨＤＤ５０へ所定のコマンドを送信することにより、メインＣＰＵ１０ＡのＤＲＡＭ１３からＨＤＤ５０へデータ転送を開始する。
【００４２】
図７を参照し、サブＣＰＵ１０Ｂによるデータ転送処理を説明する。ステップＳ２１では、ＨＤＤ５０との間で転送するデータがあるか否かを判定する。転送データがあればステップＳ２２に進む。ステップＳ２２では、転送データをＤＲＡＭ１７からバッファメモリ４１に転送して一時記憶する。ステップＳ２３では、バッファメモリ４１のデータ記憶容量が８０パーセントを越えたか否かを判定する。ステップＳ２３が肯定判定されると、ステップＳ２４に進み、サブＣＰＵ１０Ｂがバス権を要求するため、バス権要求レジスタに「１」を書き込む。ステップＳ２５では、バス権状態レジスタＢの値を読む。ステップＳ２６では、読み込んだ値が１であるか否かを判定する。バス権状態レジスタＢの値が１となるのは、後述するように、ブリッジ回路２６によるバス切替が終了したことを示す。レジスタの値が１であることが確認されると、ステップＳ２７に進み、サブＣＰＵ１０Ｂからバッファメモリ４１へのデータ転送を中止する。そして、ＨＤＤ５０へ所定のコマンドを送信することにより、ステップＳ２８でバッファメモリ４１からＨＤＤ５０へのデータ転送を開始する。
【００４３】
その後、ステップＳ２９に進み、中断指示レジスタの値を読む。そして、ステップＳ３０で、メインＣＰＵ１０Ａがバス権を要求しているか、すなわち、中断指示レジスタから読み込んだ値が１であるか否かを判定する。ステップＳ３０が肯定されると、ステップＳ３１において、バッファメモリ４１からＨＤＤ５０へのデータ転送を中止してステップＳ２１へ戻る。ステップＳ３０が否定されると、ステップＳ３２へ進み、バッファメモリ４１のデータをすべて転送したか否かを判定する。ステップＳ３２が肯定されると、ステップＳ２１へ戻る。ステップＳ３２が否定されると、ステップＳ２８へ戻る。
【００４４】
図８を参照して、調停回路２０の調停ロジックについて説明する。ステップＳ４１において、メインＣＰＵ１０Ａがバス権を要求しているか、すなわちメインＣＰＵ１０Ａがバス権要求レジスタに「１」を書き込んだか否かを判定する。メインＣＰＵ１０Ａがバス権を要求している場合、ステップＳ４２で中断指示レジスタに１が、バス権状態レジスタＢに０が設定される。次に、ステップＳ４３でブリッジ回路２５が選択され、メインＣＰＵ１０ＡがＨＤＤ５０と接続される。そして、ステップＳ４４において、ブリッジ回路２５によるバス切替が終了したことを示すため、バス権状態レジスタＡを１に設定する。
【００４５】
ステップＳ４１が否定されるとステップＳ４５に進み、サブＣＰＵ１０Ｂがバス権を要求しているか、すなわちサブＣＰＵ１０Ｂがバス権要求レジスタに「１」を書き込んでいるか否かを判定する。肯定されるとステップＳ４６に進み、否定されるとステップＳ４１へ戻る。ステップＳ４６では中断指示レジスタに０が、バス権状態レジスタＡに０が設定される。ステップＳ４７ではブリッジ回路２６が選択され、サブＣＰＵ１０Ｂとバッファメモリ４１がＨＤＤ５０と接続される。そして、ステップＳ４８において、ブリッジ回路２６によるバス切替が終了したことを示すため、バス権状態レジスタＢを１に設定してステップＳ４１へ戻る。
【００４６】
図９を参照して、メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂによる、切替制御回路２４のレジスタへの読み書き処理を説明する。ステップＳ５１において、ＨＤＤ５０のＤＥＶＩＣＥレジスタに対し、ビット７が１となる値を書き込む。この操作により、切替制御回路２４が備えるレジスタの読み書きが可能になる。ステップＳ５２では、切替制御回路２４が備える目的のレジスタへ読み書きを行う。ステップＳ５３では、切替制御回路２４が備えるＤＥＶＩＣＥレジスタに対し、ビット７が０となる値を書き込む。この操作により、切替制御回路２４が備えるレジスタは再び読み書きできなくなる。
【００４７】
なお、切替制御回路２４が備えるレジスタの読み書きを繰り返し実行する場合は、読み書きの都度ＤＥＶＩＣＥレジスタの値を書き換えなくてもよい。すなわち、初めにＤＥＶＩＣＥレジスタのビット７へ１を書き込み、切替制御回路２４が備えるレジスタの読み書きを複数回行い、最後にＤＥＶＩＣＥレジスタのビット７へ０を書き込む、という手順としてもよい。
【００４８】
以上説明した第１の実施の形態によるナビゲーション装置によれば、次のような作用効果を奏することができる。
（１）既存のＡＴＡＰＩレジスタのＡＴＡＰＩ規格では使用されていないビットを用いて、操作対象のレジスタが切り替わるようにした。これにより、多数のレジスタを調停制御などのために割り当てることができる。
（２）調停制御のためのバス権要求などを、レジスタを通じて行うようにした。これにより、追加の信号線を用意することなく調停制御を行うことができる。
【００４９】
上述した第１の実施の形態では、拡張したレジスタの値を通じて調停制御を行っていた。以下に詳述する第２の実施の形態では、割り込みを発生させるレジスタを用意し、このレジスタへの操作により発生する割り込みを用いて調停制御を行う。
【００５０】
――第２の実施の形態――
本実施形態によるナビゲーション装置は、１つのＨＤＤに記録されたデータを、複数のＣＰＵによって共有する。すなわち、一方のＣＰＵが更新したデータを他方のＣＰＵが利用する。この場合、あるデータが一方のＣＰＵにより更新されたか否かを、他方のＣＰＵへ通知する手段が必要となる。
【００５１】
本実施形態におけるナビゲーション装置は、バス権調停に加えて上記の通知を行うため、図１０に示すレジスタを備える。列９３で示すレジスタは第１の実施形態と同様である。列９４で示す、切替制御回路２４が備えるレジスタには、MAILBOXレジスタおよびパーティションレジスタが含まれる。以下、これらのレジスタを順に説明する。
【００５２】
MAILBOXレジスタは、２つのＣＰＵが通信を行うために利用するレジスタである。図１１は、MAILBOXレジスタの詳細を示す図である。まず、図１１（ａ）を用いて、MAILBOXレジスタの動作を説明する。
【００５３】
メインＣＰＵ１０ＡおよびサブＣＰＵ１０Ｂから、切替制御回路２４のMAILBOXレジスタ９６へ何らかの値を書き込むと、書き込みと同時に、他方のＣＰＵに対して割り込みが発生する。割り込みが発生したＣＰＵは、MAILBOXレジスタの値を読むことで、割り込みを発生させたＣＰＵがMAILBOXへ書き込んだ値を知ることができる。
【００５４】
本実施形態におけるMAILBOXレジスタへの値の割り付けを図１１（ｂ）に示す。ビット０は、ＨＤＤへのアクセスが終了し、バス権を明け渡してもよいことを示すビットである。ビット１は、ビット０が１のとき、ＨＤＤのデータを更新したか否かを示すビットである。ビット１が１であった場合、ＨＤＤには何らかの変更が加えられている。ビット２は、バス権の要求を行う際に１にするビットである。ビット０とビット２が同時に１になることはない。
【００５５】
次に、パーティションレジスタの詳細を説明する。図１２は、パーティションレジスタの定義を示す図である。ＨＤＤ５０には６つのパーティションが存在し、地図データと，音楽データと，その他４種類のデータが記録されている。パーティションレジスタのビット０がパーティション０に対応し、ビット１がパーティション１に、ビット２がパーティション２に対応している。その他のビットも同様である。
【００５６】
パーティションに対して、何らかの変更が加えられた場合、変更を加えたＣＰＵは、パーティションレジスタの、パーティションに対応するビットを１にする。ＨＤＤへのアクセスを行う際、各ＣＰＵは、パーティションレジスタへ適切な値を書き込んだ後、MAILBOXレジスタを用いて他方のＣＰＵへＨＤＤアクセスを終えたことを通知する。通知を受け取ったＣＰＵは、まずMAILBOXレジスタを調べて、ＨＤＤのデータが更新されたか否かを判定する。更新されていた場合、パーティションレジスタを調べ、どのパーティションが更新されているのかを確認する。その後、必要に応じて、ＨＤＤから更新されたデータを読み込む。
【００５７】
次に、制御回路の具体的な処理内容について、図面を用いて説明する。図１３〜１５は、制御回路による処理全体を説明するフローチャートである。なお、図１３および図１４はそれぞれメインＣＰＵ１０ＡおよびサブＣＰＵ１０ＢとＨＤＤ５０とのデータ転送処理を説明するフローチャートである。また、図１５は、ゲートアレイで構成される切替制御回路で行われる調停ロジックを説明するフローチャートである。図１３および図１４において、切替制御回路２４のレジスタを読み書きする処理は第１の実施の形態と同様に、すべて図９に示す処理の呼び出しとなっている。
【００５８】
図１３を参照し、メインＣＰＵ１０Ａによるデータ転送処理を説明する。ステップＳ６１では、ＨＤＤ５０との間で転送するデータがあるか否かを判定する。転送データがなければ否定判定が行われ、ステップＳ６２に進む。転送データがある場合、ステップＳ６７へ進む。
【００５９】
ステップＳ６２では、割り込みが発生したか否かを判定する。割り込みが発生していなければ否定判定が行われ、ステップＳ６１へ戻る。割り込みが発生していた場合はステップＳ６３へ進み、パーティションレジスタの値を取得して、パーティション情報を確認する。ステップＳ６４では必要に応じてパーティションのデータを読み直す等の処理を実行する。ステップＳ６５では、MAILBOXレジスタのビット２が１であるか否かを判定する。すなわち、サブＣＰＵ１０Ｂによりバス権要求が行われたか否かを判定する。バス権要求が行われた場合、ステップＳ６６へ進み、MAILBOXレジスタへバス権を受け渡してよいことを示す値（二進数で００１）を書き込む。他方、バス権要求が行われていない場合は、ステップＳ６１へ戻る。
【００６０】
ステップＳ６７では、図１０に符号９５で示されている、ＨＤＤ５０のSTATUSレジスタの値を読み込む。STATUSレジスタには、ＨＤＤ５０へアクセス可能な場合はReadyが、アクセス不可能な場合はBusyが書き込まれている。ステップＳ６８では、STATUSレジスタの値がReadyであるか否かを判定する。Readyであった場合は肯定判定がなされ、ステップＳ７３へ進む。他方、Busyであった場合はステップＳ６９へ進み、MAILBOXへバス権要求を示す値（二進数で１００）を書き込む。
【００６１】
ステップＳ７０では、割り込みが発生したか否かを判定する。割り込みが発生していれば肯定判定が行われ、ステップＳ７１へ進む。サブＣＰＵ１０Ｂがバス権を明け渡しても状態になると、この割り込みが発生する。ステップＳ７１ではパーティションレジスタの値を取得して、パーティション情報を確認する。ステップＳ７２では必要に応じてパーティションのデータを読み直す等の処理を実行し、ステップＳ６７へ戻る。
【００６２】
ステップＳ７３では、ＨＤＤ５０へ所定のコマンドを送信することにより、メインＣＰＵ１０ＡのＤＲＡＭ１３とＨＤＤ５０とのデータ転送を開始する。データ転送が終了したらステップＳ７４へ進む。ステップＳ７４ではデータ転送の内容に応じてパーティションレジスタに記録されているパーティション情報を更新する。ステップＳ７５ではバス権を明け渡してもよいこと、および、ＨＤＤ５０のデータを更新したか否かを示す値をMAILBOXへ書き込み、ステップＳ６１へ戻る。
【００６３】
図１４を参照し、サブＣＰＵ１０Ｂによるデータ転送処理を説明する。ステップＳ８１では、ＨＤＤ５０との間で転送するデータがあるか否かを判定する。転送データがなければ否定判定が行われ、ステップＳ８２に進む。転送データがある場合、ステップＳ８７へ進む。
【００６４】
ステップＳ８２では、割り込みが発生したか否かを判定する。割り込みが発生していなければ否定判定が行われ、ステップＳ８１へ戻る。割り込みが発生していた場合はステップＳ８３へ進み、パーティションレジスタの値を取得し、ステップＳ８４では必要に応じてパーティションのデータを読み直す等の処理を実行する。ステップＳ８５では、MAILBOXレジスタのビット２が１であるか否かを判定する。すなわち、メインＣＰＵ１０Ａによりバス権要求が行われたか否かを判定する。バス権要求が行われた場合、ステップＳ８６へ進み、MAILBOXレジスタへバス権を受け渡してよいことを示す値（二進数で００１）を書き込む。他方、バス権要求が行われていない場合は、ステップＳ８１へ戻る。
【００６５】
ステップＳ８７では、ＨＤＤ５０のSTATUSレジスタの値を読み込む。ステップＳ６８では、STATUSレジスタの値がReadyであるか否かを判定する。Readyであった場合は肯定判定がなされ、ステップＳ９３へ進む。他方、Busyであった場合はステップＳ８９へ進み、MAILBOXへバス権要求を示す値（二進数で１００）を書き込む。
【００６６】
ステップＳ９０では、割り込みが発生したか否かを判定する。割り込みが発生していれば肯定判定が行われ、ステップＳ９１へ進む。メインＣＰＵ１０Ａがバス権を明け渡してもよい状態になると、この割り込みが発生する。ステップＳ９１ではパーティションレジスタの値を取得し、ステップＳ９２では必要に応じてパーティションのデータを読み直す等の処理を実行し、ステップＳ８７へ戻る。
【００６７】
ステップＳ９３では、ＨＤＤ５０へ所定のコマンドを送信することにより、サブＣＰＵ１０ＢのＤＲＡＭ１３とＨＤＤ５０との間でデータ転送を開始する。ステップＳ９４では、割り込みが発生したか否かを判定する。割り込みが発生していれば肯定判定が行われ、ステップＳ９５でデータ転送を中止してステップＳ９７へ進む。他方、ステップＳ８４で否定判定がなされた場合はステップＳ９６へ進む。ステップＳ９６では、ＨＤＤ５０との間のデータ転送が完了したか否かを判定する。データ転送が終了していれば肯定判定が行われ、ステップＳ９７へ進む。他方、転送すべきデータが残っていた場合は、ステップＳ８３へ戻る。ステップＳ９７ではデータ転送の内容に応じてパーティションレジスタを更新する。ステップＳ９８ではバス権を明け渡してもよいこと、および、ＨＤＤ５０のデータを更新したか否かを示す値をMAILBOXへ書き込み、ステップＳ８１へ戻る。
【００６８】
図１５を参照して、調停回路２０の調停ロジックについて説明する。ステップＳ１０１では、メインＣＰＵ１０ＡによりMAILBOXへの書き込みが行われたか否かを判定する。値が書き込まれていれば肯定判定がなされ、ステップＳ１０２へ進む。他方、否定判定がなされた場合はステップＳ１０７へ進む。
【００６９】
ステップＳ１０２では、サブＣＰＵ１０Ｂへ割り込みを発生させる。ステップＳ１０３では、メインＣＰＵ１０Ａがバス権を要求したか否かを判定する。すなわち、MAILBOXへ書き込んだ値のビット２が１であるか否かを判定する。ビット２が１であれば肯定判定が行われ、ステップＳ１０４へ進む。他方、否定判定がなされた場合はステップＳ１０１へ戻る。
【００７０】
ステップＳ１０４では、サブＣＰＵ１０ＢによりMAILBOXへの書き込みが行われたか否かを判定する。書き込みが行われていればステップＳ１０５へ進む。ステップＳ１０５では、ブリッジ回路２５を制御し、メインＣＰＵ１０ＡがＨＤＤ５０へアクセス可能な状態にする。ステップＳ１０６では、メインＣＰＵ１０Ａに対して割り込みを発生させ、ステップＳ１０１へ戻る。
【００７１】
ステップＳ１０７では、サブＣＰＵ１０ＢによりMAILBOXへの書き込みが行われたか否かを判定する。値が書き込まれていれば肯定判定がなされ、ステップＳ１０８へ進む。他方、否定判定がなされた場合はステップＳ９１へ戻る。ステップＳ１０８では、メインＣＰＵ１０Ａへ割り込みを発生させる。ステップＳ１０９では、サブＣＰＵ１０Ｂがバス権を要求したか否かを判定する。すなわち、MAILBOXへ書き込んだ値のビット２が１であるか否かを判定する。ビット２が１であれば肯定判定が行われ、ステップＳ１１０へ進む。他方、否定判定がなされた場合はステップＳ１０１へ戻る。
【００７２】
ステップＳ１１０では、メインＣＰＵ１０ＡによりMAILBOXへの書き込みが行われたか否かを判定する。書き込みが行われていればステップＳ１１１へ進む。ステップＳ１１１では、ブリッジ回路２６を制御し、サブＣＰＵ１０ＢがＨＤＤ５０へアクセス可能な状態にする。ステップＳ１１２では、サブＣＰＵ１０Ｂに対して割り込みを発生させ、ステップＳ１０１へ戻る。
【００７３】
以上説明した第２の実施の形態によるナビゲーション装置によれば、次のような作用効果を奏することができる。
（１）MAILBOXレジスタを用意し、割り込みを受けたＣＰＵが割り込みの要因を確認できるようにした。これにより、割り込みへの対処を容易に行うことができる。
（２）パーティションレジスタを用意し、データが更新されたパーティションを確認できるようにした。これにより、ＨＤＤに記録されているデータの再読込が必要か否かを容易に判定できる。
【００７４】
次のような変形も本発明の範囲内である。
（１）調停回路に用意されたレジスタには、調停制御以外の用途のものが含まれていてもよい。例えば、調停回路の表面温度などのセンサ値や、デバッグ用の統計情報などを取得できるようにしてもよい。
【００７５】
本発明の特徴を損なわない限り、本発明は上記実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。
【００７６】
なお、以上説明した実施の形態におけるナビゲーション装置の各構成要素と特許請求の範囲の各構成要素との対応関係は以下の通りである。本発明の記憶媒体はＨＤＤ５０に対応し、第１のプロセッサはメインＣＰＵ１０Ａに対応し、第２のプロセッサはサブＣＰＵ１０Ｂに対応し、切替手段はブリッジ回路２５および２６に対応し、調停回路は調停回路２０に対応する。なお、以上の対応関係の説明は一例であり、権利解釈に際して何ら拘束されるものではない。
【図面の簡単な説明】
【００７７】
【図１】第１の実施形態の構成を示すブロック図である。
【図２】調停回路２０の詳細な構成を示すブロック図である。
【図３】第１の実施形態におけるレジスタの一覧を示す図である。
【図４】ＤＥＶＩＣＥレジスタのビットごとの機能を示した図である。
【図５】レジスタの切り替えの概略を示す図である。
【図６】第１の実施形態における、メインＣＰＵ１０Ａによるデータ転送処理のフローチャートである。
【図７】第１の実施形態における、サブＣＰＵ１０Ｂによるデータ転送処理のフローチャートである。
【図８】第１の実施形態における、切替制御回路２４で行われる調停ロジックを説明するフローチャートである。
【図９】切替制御回路２４のレジスタを読み書きする処理のフローチャートである。
【図１０】第２の実施形態におけるレジスタの一覧を示す図である。
【図１１】MAILBOXレジスタの詳細を示す図である。
【図１２】パーティションレジスタの定義を示す図である。
【図１３】第２の実施形態における、メインＣＰＵ１０Ａによるデータ転送処理のフローチャートである。
【図１４】第２の実施形態における、サブＣＰＵ１０Ｂによるデータ転送処理のフローチャートである。
【図１５】第２の実施形態における、切替制御回路で行われる調停ロジックを説明するフローチャートである。
【符号の説明】
【００７８】
１０  制御回路
１０Ａ  メインＣＰＵ
１０Ｂ  サブＣＰＵ
２４  切替制御回路
５０  ＨＤＤ
【図１】
2010039716.tif 000003
【図２】
2010039716.tif 000004
【図３】
2010039716.tif 000005
【図４】
2010039716.tif 000006
【図５】
2010039716.tif 000007
【図６】
2010039716.tif 000008
【図７】
2010039716.tif 000009
【図８】
2010039716.tif 000010
【図９】
2010039716.tif 000011
【図１０】
2010039716.tif 000012
【図１１】
2010039716.tif 000013
【図１２】
2010039716.tif 000014
【図１３】
2010039716.tif 000015
【図１４】
2010039716.tif 000016
【図１５】
2010039716.tif 000017