(57)【要約】  信号ＣＰＵ＿ＲＥＱの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、ＣＰＵ１，２により信号ＣＰＵ＿ＲＥＱが同時にアサートされると前回の出力値を維持するＤ−ＦＦ１６と、Ｄ−ＦＦ１６の出力を論理反転するインバータ回路１７とを備え、ＣＰＵ１，２に対して、信号ＣＰＵ＿ＲＥＱをアサートした順に、Ｄ−ＦＦ１６及びインバータ回路１７の出力のうち、バス使用可を示す論理値を出力し、ＣＰＵ１，２のバス使用要求が重なると、Ｄ−ＦＦ１６に維持された前回の出力値を用いて、先に信号ＣＰＵ＿ＲＥＱをアサートしたＣＰＵ１（２）に対して、当該信号ＣＰＵ＿ＲＥＱがネゲートされるまで、バス使用可を示す論理値を出力する。
2010001515.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続する２つのＣＰＵ間のバス使用を調停するバス調停装置において、
前記２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有し、前記２つのＣＰＵに対して、前記バス使用要求信号をアサートした順に、前記論理回路及び前記インバータ回路の出力のうち、バス使用可を示す論理値を出力する調停回路部と、
前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備えたことを特徴とするバス調停装置。
【請求項２】
論理回路は、２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記２つのＣＰＵからバス使用要求信号のアサート状態を示す論理値が同時に入力されると前回の出力値を維持し、
調停回路部は、前記２つのＣＰＵに対し、前記バス使用要求信号をアサートした順に、前記論理回路及びインバータ回路の出力のうち、バス使用可を示す論理値を出力し、前記２つのＣＰＵのバス使用要求が重なると、前記論理回路で維持された前回の出力値を用いて、先にバス使用要求信号をアサートしていたＣＰＵに対して、当該バス使用要求信号がネゲートされるまで前記バス使用可を示す論理値を出力することを特徴とする請求項１記載のバス調停装置。
【請求項３】
バスに接続する３個以上のＣＰＵ間のバス使用を調停するバス調停装置において、
バス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有する複数の調停回路部と、
前記複数の調停回路部の前記論理回路及び前記インバータ回路の出力値に応じて、前記複数のＣＰＵに対し、前記バス使用要求信号をアサートした順にバス使用可を示す論理値を出力する出力選択部と、
前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備えたことを特徴とするバス調停装置。
【請求項４】
論理回路は、バス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記バス使用要求信号のアサート状態を示す論理値が同時に複数入力されると前回の出力値を維持し、
出力選択部は、複数の調停回路部の前記論理回路及びインバータ回路の出力値に応じて、複数のＣＰＵに対し、前記バス使用要求信号をアサートした順にバス使用可を示す論理値を出力し、前記３個以上のＣＰＵの全てのバス使用要求が重なると、前記複数の調停回路部の前記論理回路で維持された前回の出力値を用いて、先にバス使用要求信号をアサートしていたＣＰＵに対し、当該バス使用要求信号がネゲートされるまで前記バス使用可を示す論理値を出力することを特徴とする請求項３記載のバス調停装置
【請求項５】
調停回路部は、ＣＰＵの動作クロックに依らずに動作することを特徴とする請求項１記載のバス調停装置。
【請求項６】
調停回路部は、ＣＰＵの動作クロックに依らずに動作することを特徴とする請求項３記載のバス調停装置。
【請求項７】
調停回路部は、ＣＰＵからのバス使用要求信号を入力する第１及び第２のインバータ回路と、前記第１のインバータ回路の入力と前記第２のインバータ回路の出力との否定論理積演算を行う第１のＮＡＮＤ回路と、前記第２のインバータ回路の入力と前記第１のインバータ回路の出力との否定論理積演算を行う第２のＮＡＮＤ回路とを備え、
論理回路は、前記入力部の前記第１及び前記第２のＮＡＮＤ回路から入力した否定論理積演算された論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記第１及び前記第２のＮＡＮＤ回路から前記バス使用要求信号のアサート状態を示す論理値が同時に入力されると、前回の出力値を維持するフリップフロップ回路であることを特徴とする請求項１記載のバス調停装置。
【請求項８】
調停回路部は、ＣＰＵからのバス使用要求信号を入力する第１及び第２のインバータ回路と、前記第１のインバータ回路の入力と前記第２のインバータ回路の出力との否定論理積演算を行う第１のＮＡＮＤ回路と、前記第２のインバータ回路の入力と前記第１のインバータ回路の出力との否定論理積演算を行う第２のＮＡＮＤ回路とを備え、
論理回路は、前記入力部の前記第１及び前記第２のＮＡＮＤ回路から入力した否定論理積演算された論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記第１及び前記第２のＮＡＮＤ回路から前記バス使用要求信号のアサート状態を示す論理値が同時に入力されると、前回の出力値を維持するフリップフロップ回路であることを特徴とする請求項３記載のバス調停装置。
【請求項９】
バスに接続する複数のＣＰＵと、
前記複数のＣＰＵ間のバス使用を調停する請求項１記載のバス調停装置とを備えたナビゲーション装置。
【請求項１０】
バスに接続する複数のＣＰＵと、
前記複数のＣＰＵ間のバス使用を調停する請求項３記載のバス調停装置とを備えたナビゲーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のＣＰＵ（Central Processing Unit）のバス使用要求を調停するバス調停装置、及びこれを用いたナビゲーション装置に関するものである。
【背景技術】
【０００２】
近年、各種の情報機器が開発され、各々にＩ／Ｏ（Input/Output）装置が搭載されて使用されている。Ｉ／Ｏ装置の種類は非常に多岐にわたり、ＨＤＤ（Hard Disk Drive）、ＤＶＤ（Digital Versatile Disk）、メモリカード等が一般的である。これらは大容量のストレージ機能を有し、ソフトウェアや、映像、音楽、地図、その他各種データの格納に使用され、ユーザの利便性に大いに貢献している。【０００３】
上述のようなＩ／Ｏ機器に搭載される書き込み又は読み出しのポートは、１ポートが一般的であり、１個のＣＰＵと１対１で接続される。図９は、従来のシングルポートでのＣＰＵとＩ／Ｏ機器との接続を示す図である。図９に示すように、ＣＰＵ１００とＩ／Ｏ機器１０１とは、データバス１０２及びコントロール線１０３を介して１対１に接続している。【０００４】
この場合、ＣＰＵ１００からＩ／Ｏ機器１０１への書き込み又は読み出しは、衝突等の問題が生じることがない。なお、図９において、ＣＰＵ１００が、構成要素を動作させるために必要となるプログラムやデータを格納する記憶装置として、フラッシュメモリ１０４やＤＲＡＭ（Dynamic Random Access Memory）１０５も配置されている。【０００５】
一方、近年、情報機器システムが複雑化、高度化し、情報機器において、複数のＣＰＵを搭載して情報処理を分担することが一般化している。このため、複数のＣＰＵの各々が１個のＩ／Ｏ機器にアクセスする必要性が生じている。【０００６】
例えば、近年の車載用のナビゲーション装置には、音楽データや地図データを格納するストレージとしてＨＤＤを搭載し、さらに映像や音楽データを処理するＣＰＵと地図データを処理するＣＰＵとに分かれているものがある。このようなナビゲーション装置では、１台のＨＤＤを、２個のＣＰＵから時分割で書き込み、読み出し可能であれば非常に便利である。【０００７】
しかしながら、現行の標準的なＩ／Ｏ機器は、１個のＣＰＵからのアクセスを前提としたシングルポート対応のものが一般的であり、２個以上のＣＰＵからのアクセスに同時に対応することは考慮されていない。また、非常に希にデュアルポートを搭載したＩ／Ｏ機器も存在するが、現状では高価であり、安易に使用できるものではない。【０００８】
このような不具合を解決するため、例えば特許文献１にはシングルポートのＩ／Ｏ機器をあたかもデュアルポートのＩ／Ｏ機器のように動作させるマルチＣＰＵ装置が開示されている。この装置には、デジタル回路技術を利用して２個のＣＰＵから１個のＩ／Ｏ機器へのアクセスを調停する調停回路が設けられている。【０００９】
一方のＣＰＵ側からのアクセス信号が調停回路に入力されると、他方のＣＰＵ側が非アクセス状態であれば、調停回路では、上記一方のＣＰＵがアクセス可能であると判断し、Ｉ／Ｏ機器の仕様に合致したタイミングでアクセス信号を生成して、上記一方のＣＰＵによるデータの読み出しや書き込みを実行させる。上記他方のＣＰＵ側からアクセス信号が発生した場合も同様である。【００１０】
なお、双方のＣＰＵによるアクセスが重なった場合、調停回路は、いずれか一方のＣＰＵにウェイト信号を出力して待機させ、２個のＣＰＵが同時にＩ／Ｏ機器にアクセスすることがないように調整している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平９−２５９０３０号公報
【００１２】
しかしながら、従来のバス調停装置では、ＣＰＵからのバス信号（データバス、アドレスバス、ライトパス、リードパス、チップセレクト）を全て取り込み、さらにＩ／Ｏ機器に合致したタイミングにてバス信号を出力する。この回路構成を実現するには、ステートマシン等のタイミング生成回路を搭載した専用ＬＳＩを使用する必要があり、基板面積が増大し、小型化の制限になるという課題がある。【００１３】
図１０は、従来のマルチＣＰＵ装置の構成を示す図である。図１０において、ＬＳＩ１０６は、上述したタイミング生成回路を搭載した専用ＬＳＩであり、信号線を介してＣＰＵ１００−１，１００−２とＨＤＤ１０１とに接続されている。この構成において、ＬＳＩ１０６は、ＣＰＵ１００−１，１００−２からのバス信号を全て取り込むので、図１０に示すように、バス信号をそれぞれ伝送する多数の信号線による接続が必要であり、不可避的に基板面積が増大する。【００１４】
また、従来では、複数のＣＰＵの各々のタイミング仕様やＩ／Ｏ機器が要求するタイミング仕様に合致させる必要がある。このため、ＣＰＵやＩ／Ｏ機器が変更されると、複雑なタイミングを再設計しなければならず、構成要素の変更に対する設計の柔軟性がない。【００１５】
さらに、近年のナビゲーション装置は、大容量の高速データ通信が可能となり、本来のカーナビゲーション機能の他、映像や音楽等のマルチメディア情報を扱う処理機能が付加されるようになっている。このようなナビゲーション装置では、処理負荷を軽減するために、複数のＣＰＵを用いて処理を分担する構成が望まれている。また、車載用情報機器の省スペース化される傾向にあるため、上記のような複数のＣＰＵを搭載したナビゲーション装置の小型化も望まれている。【００１６】
この発明は、上記のような課題を解決するためになされたもので、簡易な構成で小型化が可能であり、かつＣＰＵの種類、動作速度、数量に依存しないバス調停装置及びこれを用いたナビゲーション装置を得ることを目的とする。
【発明の概要】
【００１７】
この発明に係るバス調停装置は、バスに接続する２つのＣＰＵ間のバス使用を調停するバス調停装置において、前記２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有し、前記２つのＣＰＵに対して、前記バス使用要求信号をアサートした順に、前記論理回路及び前記インバータ回路の出力のうち、バス使用可を示す論理値を出力する調停回路部と、前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備えるものである。
【００１８】
この発明によれば、バス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、この論理回路の出力を分岐入力して論理反転するインバータ回路とを備え、複数のＣＰＵに対して、バス使用要求信号をアサートした順に、論理回路及びインバータ回路の出力のうち、バス使用可を示す論理値を出力するので、専用ＬＳＩやＦＰＧＡなどを用いることなく、実用的なバス調停装置を簡易な構成で実現することができるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】この発明の実施の形態１によるバス調停装置の構成を示す図である。
【図２】図１中の調停回路部の構成を示す図である。
【図３】図２中の調停回路部の入出力とＣＰＵのアクセス権との関係を示すファンクションテーブルである。
【図４】図１中のゲート部の構成を示す図である。
【図５】図４中のゲート部の入出力の関係を示すファンクションテーブルである。
【図６】実施の形態１による調停動作のシーケンスの一例を示す図である。
【図７】ＣＰＵによるＩ／Ｏ機器へのアクセス動作のタイミングチャートである。
【図８】この発明の実施の形態２によるバス調停装置の調停回路部の構成を示す図である。
【図９】従来のシングルポートでのＣＰＵとＩ／Ｏ機器との接続を示す図である。
【図１０】従来のマルチＣＰＵ装置の構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１によるバス調停装置の構成を示す図であり、Ｉ／Ｏ機器として代表的なデバイスであるＨＤＤを２個のＣＰＵからアクセスする場合を例として挙げる。図１において、ＣＰＵ１，２には、各々が動作する際に必要となるプログラムやデータを格納するためのメモリであるフラッシュメモリ４−１，４−２やＤＲＡＭ５−１，５−２が配置されている。また、ＣＰＵ１，２は、動作クロック信号を生成する水晶発振器６−１，６−２及びリセットＩＣ７−１，７−２をそれぞれ有しており、互いに異なる動作クロック周波数で動作することができる。
【００２１】
Ｉ／Ｏ機器（アクセス対象機器）３は、ＣＰＵ１，２からアクセスされるＨＤＤであり（以下、ＨＤＤ３と適宜記載する）、ＡＴＡＰＩ（AT Attachment Packet Interface）規格のバスＩ／Ｆ回路を搭載している。ＨＤＤ３は、通常そのＩ／Ｆ規格に合致したタイミングで動作するＣＰＵ１，２の外部バスに接続しており、ＣＰＵ１，２のプログラム実行により、読み出し又は書き込みが実行される。なお、ＨＤＤ３は、シングルポートの記憶装置であり、ＣＰＵ１，２がそれぞれ１系統のバスラインを通じてアクセスする。
【００２２】
実施の形態１によるバス調停装置は、２個のＣＰＵ１，２とＩ／Ｏ機器３との間に設けられ、一方のＣＰＵ（ＣＰＵ１若しくはＣＰＵ２）から排他的にアクセスされるように、バス使用要求を調停する。その構成としては、調停回路部８及びゲート部９−１，９−２を備える。
【００２３】
調停回路部８は、２個のＣＰＵ１，２からＩ／Ｏ機器３へのアクセスを調停する回路部であり、ＣＰＵ１との間で２本の信号線１０−１，１１−１を介して接続しており、ＣＰＵ２との間で２本の信号線１０−２，１１−２を介して接続している。信号線１０−１，１０−２は、ＣＰＵ１，２へアクセス可否（バス使用可）を通知する信号ＣＰＵ＿ＡＣＫを伝送する信号線である。一方、信号線１１−１，１１−２は、ＣＰＵ１，２からＩ／Ｏ機器３へのアクセスをリクエスト（バス使用要求）するための信号ＣＰＵ＿ＲＥＱ（バス使用要求信号）を伝送する信号線である。
【００２４】
ゲート部９−１，９−２は、調停回路部８から信号ＣＰＵ＿ＡＣＫの入力を受け付け、信号ＣＰＵ＿ＡＣＫに応じてバス信号の接続や遮断を行うゲートＩＣである。例えば、調停回路部８からの信号ＣＰＵ１＿ＡＣＫがアサート（アクセス可）されると、ゲート部９−１は、コントロール線１２−１及びデータバス１３−１をＨＤＤ３に接続し、信号ＣＰＵ１＿ＡＣＫがネゲート（アクセス不可）されると遮断する。なお、コントロール線１２−１，１２−２は、ＣＰＵ１，２からの制御情報を伝送する信号線であり、データバス１３−１，１３−２は、ＣＰＵ１，２とＨＤＤ３との間でやり取りされるデータを伝送する信号線である。
【００２５】
図２は、図１中の調停回路部の構成を示す図である。図２に示すように、調停回路部８は、例えば７４シリーズのロジックＩＣであるインバータ回路１４−１，１４−２，１７、ＮＡＮＤ回路１５−１，１５−２及びＤ−ＦＦ（Delay-Flip Flop）１６から構成される。調停回路部８と外部との間は、信号線１０−１，１０−２及び信号線１１−１，１１−２、の合計４本の信号線で接続されている。
【００２６】
また、ＣＰＵ１へ信号ＣＰＵ１＿ＡＣＫを伝送する信号線１０−１は、インバータ回路（インバータ回路）１７の出力に接続しており、ＣＰＵ２へ信号ＣＰＵ２＿ＡＣＫを伝送する信号線１０−２は、インバータ回路１７の入力に接続している。
【００２７】
ＣＰＵ１からの信号ＣＰＵ１＿ＲＥＱを伝送する信号線１１−１は、インバータ回路１４−１の反転入力とＮＡＮＤ回路１５−２の入力とに接続する。同様に、ＣＰＵ２からの信号ＣＰＵ２＿ＲＥＱを伝送する信号線１１−２は、インバータ回路１４−２の反転入力とＮＡＮＤ回路１５−１の入力とに接続している。
【００２８】
ＮＡＮＤ回路１５−１は、インバータ回路１４−１の出力と信号線１１−２に入力側が接続しており、出力がＤ−ＦＦ１６のプリセット端子ＰＲに接続している。また、ＮＡＮＤ回路１５−２は、インバータ回路１４−２の出力と信号線１１−１に入力側が接続しており、出力がＤ−ＦＦ１６のクリア端子ＣＬに接続している。
【００２９】
Ｄ−ＦＦ（論理回路）１６は、入力端子Ｄ（不図示）に入力されるデジタル値を、クロック端子ＣＫ（不図示）に入力される動作クロック信号に応じて保持するフリップフロップであるが、この発明では、動作クロック信号を用いず、端子ＰＲと端子ＣＬに入力される値に応じて信号ＣＰＵ＿ＡＣＫを生成する。なお、ＣＰＵの動作クロック信号を用いないため、ＣＰＵ１，２が互いに異なる動作速度であっても、調停動作は影響を受けない。
【００３０】
具体的には、Ｄ−ＦＦ１６の出力端子がインバータ回路１７の入力と信号線１０−２とに分岐して接続しており、Ｄ−ＦＦ１６の出力値が信号ＣＰＵ２＿ＡＣＫとして信号線１０−２上に伝送され、インバータ回路１７で反転されたＤ−ＦＦ１６の出力値が信号ＣＰＵ１＿ＡＣＫとして信号線１０−１上に伝送される。なお、入力端子Ｄとクロック端子ＣＫは、所定電圧値にプルアップするか若しくはプルダウンしておく。
【００３１】
このように構成することで、ＣＰＵ１，２によるアクセスが衝突することなく、ＣＰＵ１，２のいずれか一方に信号ＣＰＵ＿ＡＣＫをアサートすることができる。従って、ＣＰＵ１，２は、信号ＣＰＵ＿ＲＥＱをアサートした後、調停回路部８で信号ＣＰＵ＿ＡＣＫがアサートされるのを待ち、信号ＣＰＵ＿ＡＣＫがアサートされるとＩ／Ｏ機器へのアクセスを開始する。
【００３２】
図３は、図２中の調停回路部の入出力とＣＰＵのアクセス権との関係を示すファンクションテーブルであり、テーブル中の矢印方向に時間が経過する場合を示している。図３に示すように、調停回路部８は、ＣＰＵ１，２からの信号ＣＰＵ＿ＲＥＱの値（ハイ又はロウの論理値）の組み合わせに応じて、ＣＰＵ１，２への信号ＣＰＵ＿ＡＣＫをアサート又はネゲートし、Ｉ／Ｏ機器３に対するアクセス権を与える。なお、以降の説明では、各信号ＣＰＵ＿ＲＥＱ，ＣＰＵ＿ＡＣＫは、ロウレベル（Ｌ）をアサートと定義し、ハイレベル（Ｈ）をネゲートとする。
【００３３】
例えば、信号ＣＰＵ１＿ＲＥＱがＬレベルで、かつ信号ＣＰＵ２＿ＲＥＱがＨレベルであると、Ｄ−ＦＦ１６の端子ＰＲがＬレベル、端子ＣＬがＨレベルになるので、Ｄ−ＦＦ１６の出力はＨレベルとなり、Ｌレベルの信号ＣＰＵ１＿ＡＣＫ、Ｈレベルの信号ＣＰＵ２＿ＡＣＫが即座に出力される。つまり、ＣＰＵ１にアクセスが許可される。
【００３４】
この状態から図中の矢印方向に時間が経過して、信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＨレベルになっても、Ｄ−ＦＦ１６の出力値は維持され、Ｌレベルの信号ＣＰＵ１＿ＡＣＫ、Ｈレベルの信号ＣＰＵ２＿ＡＣＫが継続して出力される。これにより、ＣＰＵ１のアクセス許可が維持される。
【００３５】
ここで、信号ＣＰＵ１＿ＲＥＱがＨレベルで、かつ信号ＣＰＵ２＿ＲＥＱがＬレベルになると、Ｄ−ＦＦ１６の端子ＰＲがＨレベル、端子ＣＬがＬレベルになるので、Ｄ−ＦＦ１６の出力はＬレベルとなり、Ｈレベルの信号ＣＰＵ１＿ＡＣＫ、Ｌレベルの信号ＣＰＵ２＿ＡＣＫが即座に出力される。これにより、ＣＰＵ２にアクセス権が与えられる。同様に、この状態から信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＨレベルになっても、ＣＰＵ２のアクセス許可が維持される。
【００３６】
また、ＣＰＵ１がアクセスしている期間、つまりＤ−ＦＦ１６の出力がＨレベルで、Ｌレベルの信号ＣＰＵ１＿ＡＣＫ、Ｈレベルの信号ＣＰＵ２＿ＡＣＫが出力されている状態において、信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＬレベルになった場合、Ｄ−ＦＦ１６の出力値が維持され、Ｌレベルの信号ＣＰＵ１＿ＡＣＫとＨレベルの信号ＣＰＵ２＿ＡＣＫが継続して出力される。これにより、ＣＰＵ１のアクセス許可が維持される。
【００３７】
反対に、ＣＰＵ２がアクセスしている期間、つまりＤ−ＦＦ１６の出力がＬレベルで、Ｈレベルの信号ＣＰＵ１＿ＡＣＫ、Ｌレベルの信号ＣＰＵ２＿ＡＣＫが出力されている状態において、信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＬレベルになった場合、Ｄ−ＦＦ１６の出力値が維持され、Ｈレベルの信号ＣＰＵ１＿ＡＣＫとＬレベルの信号ＣＰＵ２＿ＡＣＫが継続して出力される。これにより、ＣＰＵ２のアクセス許可が維持される。
【００３８】
なお、上述の説明は、ＣＰＵ１，２からのリクエストが全く同時の場合であるが、このような場合は希で、通常はリクエストに若干の時間差が生じる。この場合、ＣＰＵ１，２によるリクエストの順序に応じて、調停回路部８からＬレベルの信号ＣＰＵ１＿ＡＣＫ，ＣＰＵ２＿ＡＣＫが出力されるため、調停動作を正常に行うことができる。
【００３９】
図４は、図１中のゲート部の構成を示す図である。図４に示すように、ゲート部９−１，９−２についても、調停回路部８と同様に７４シリーズの汎用ロジックＩＣであるバッファＩＣ１８，１９，２０で構成することができる。バッファＩＣ１８，１９，２０は、端子ＥＮＡＢＬＥを搭載し、端子ＥＮＡＢＬＥのレベルに応じてゲートのオン、オフを決定する。さらに、バッファＩＣ１８，１９，２０には、ゲートオフの場合に、出力端子をハイインピーダンスにできる３ステートのＩＣを使用する。
【００４０】
ゲート部９−１（若しくはゲート部９−２）のバッファＩＣ１８は、ＣＰＵ１（若しくはＣＰＵ２）との間でデータバス１３−１（若しくはデータバス１３−２）を介して接続しており、ＣＰＵ１＿ＡＣＫ（若しくはＣＰＵ２＿ＡＣＫ）の値に応じてデータバス１３−１（若しくはデータバス１３−２）の接続又は遮断を行う。
【００４１】
また、ゲート部９−１（若しくはゲート部９−２）のバッファＩＣ１９は、ＣＰＵ１（若しくはＣＰＵ２）からＩ／Ｏ機器３へ出力される制御信号を伝送するコントロール線１２−１（若しくはコントロール線１２−２）（以下、コントロール線（出力）と称す）を介して接続しており、ＣＰＵ１＿ＡＣＫ（若しくはＣＰＵ２＿ＡＣＫ）の値に応じてコントロール線（出力）の接続又は遮断を行う。
【００４２】
さらに、ゲート部９−１（若しくはゲート部９−２）のバッファＩＣ２０は、Ｉ／Ｏ機器３からＣＰＵ１（若しくはＣＰＵ２）へ入力される信号を伝送するコントロール線１２−１（若しくはコントロール線１２−２）（以下、コントロール線（入力）と称す）を介して接続しており、ＣＰＵ１＿ＡＣＫ（若しくはＣＰＵ２＿ＡＣＫ）の値に応じてコントロール線（入力）の接続又は遮断を行う。
【００４３】
図５は、図４中のゲート部の入出力の関係を示すファンクションテーブルである。例えば、ゲート部９−１のバッファＩＣ１８において、データバス１３−１から入力端子ＡにＬレベル（若しくはＨレベル）のデジタル信号が入力され、かつ端子ＥＮＡＢＬＥにＬレベル（アサート）の信号ＣＰＵ１＿ＡＣＫが入力されると、バッファＩＣ１８は、Ｌレベル（若しくはＨレベル）の出力値Ｙ、つまりデータバス１３−１で伝送されてきた値を、そのままＩ／Ｏ機器３側へ出力する。
【００４４】
上記の状態で信号ＣＰＵ１＿ＡＣＫをネゲート（Ｈレベル）すると、端子ＥＮＡＢＬＥはＨレベルとなるので、バッファＩＣ１８は、データバス１３−１から入力端子ＡにＬレベル（若しくはＨレベル）のデジタル信号が入力されても、出力値Ｙをハイインピーダンス（Ｚ）に設定して、データバス１３−１とＩ／Ｏ機器３との間を遮断する。
【００４５】
このように、ゲート部９−１，９−２のバッファＩＣは、調停回路部８から出力される信号ＣＰＵ＿ＡＣＫを端子ＥＮＡＢＬＥに入力することにより、ＣＰＵ１，２との間でデータバスやコントロール線を接続又は遮断でき、信号線の衝突を回避することが可能となる。
【００４６】
次に動作について説明する。
図６は、実施の形態１による調停動作のシーケンスの一例を示す図であり、図１に示すＣＰＵ２に先だってＣＰＵ１がリクエストした場合を示している。
先ず、ＣＰＵ１が、信号ＣＰＵ１＿ＲＥＱをアサート（Ｌレベル）し、Ｉ／Ｏ機器３に対するアクセス権を調停回路部８に要求する（ステップＳＴ１）。調停回路部８は、信号線１０−１を介してＣＰＵ１から信号ＣＰＵ１＿ＲＥＱを入力すると、この時点で信号ＣＰＵ１＿ＡＣＫがＬレベルでなければ、ＣＰＵ１にアクセス許可がないため、ＣＰＵ１は待ち状態となる（ステップＳＴ２）。
【００４７】
一方、信号ＣＰＵ１＿ＡＣＫがＬレベルであると、ＣＰＵ１がアクセス許可されており、ゲート部９−１が、コントロール線１２−１及びデータバス１３−１を接続している。これにより、ＣＰＵ１は、ＨＤＤであるＩ／Ｏ機器３に対して読み出し又は書き込みを実行することができる（ステップＳＴ３）。
【００４８】
同様に、ＣＰＵ２側においても、信号ＣＰＵ２＿ＲＥＱをアサート（Ｌレベル）し、Ｉ／Ｏ機器３へのアクセスを調停回路部８に要求する（ステップＳＴ１ａ）。調停回路部８が、信号線１０−２を介してＣＰＵ２から信号ＣＰＵ２＿ＲＥＱを入力すると、この時点で信号ＣＰＵ２＿ＡＣＫがＬレベルでなければ、ＣＰＵ２にはアクセス許可されていないため、ＣＰＵ２は待ち状態となる（ステップＳＴ２ａ）。
【００４９】
Ｉ／Ｏ機器３に対する読み出しや書き込みが完了すると、ＣＰＵ１は、信号ＣＰＵ１＿ＲＥＱをネゲート（Ｈレベル）する（ステップＳＴ４）。調停回路部８では、信号線１０−１を介してＣＰＵ１からＨレベルの信号ＣＰＵ１＿ＲＥＱを入力すると、即座に信号ＣＰＵ２＿ＡＣＫがＬレベルとなる。これにより、ゲート部９−２が、コントロール線１２−２及びデータバス１３−２を接続し、ＣＰＵ２が、Ｉ／Ｏ機器３に対して読み出し又は書き込みを実行することができる（ステップＳＴ３ａ）。この読み出しや書き込みが完了すると、ＣＰＵ２は、信号ＣＰＵ２＿ＲＥＱをネゲート（Ｈレベル）する（ステップＳＴ４ａ）。
【００５０】
ここで、各ＣＰＵ１，２がＩ／Ｏ機器３にアクセスする様子を、図７に示すタイミングチャートに従って説明する。
図７（ａ）に示すように、ＣＰＵ１がリクエストした後にＣＰＵ２がリクエストする場合（ＣＰＵ１リクエスト→ＣＰＵ２リクエスト）、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱがＨレベルであると、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとし、ＣＰＵ１に対して即座にアクセスを許可する。
【００５１】
ＣＰＵ１がＩ／Ｏ機器３に対するアクセス処理を完了し、信号ＣＰＵ１＿ＲＥＱをネゲートした後に、ＣＰＵ２が信号ＣＰＵ２＿ＲＥＱをアサート（Ｌレベル）すると、調停回路部８は、信号ＣＰＵ２＿ＡＣＫをＬレベルとして、ＣＰＵ２に対して即座にアクセスを許可する。
【００５２】
また、図７（ｂ）に示すように、ＣＰＵ１がリクエストした後に再びＣＰＵ１がリクエストする場合（ＣＰＵ１リクエスト→ＣＰＵ１リクエスト）、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱがＨレベルであれば、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとしてアクセスを許可する。
【００５３】
次に、アクセス処理の完了により、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをネゲートした後に再び信号ＣＰＵ１＿ＲＥＱをＬレベルにすると、調停回路部８は、信号ＣＰＵ２＿ＲＥＱがＨレベルであれば、信号ＣＰＵ１＿ＡＣＫを再びＬレベルとして、ＣＰＵ１にアクセスを許可する。同様に、ＣＰＵ２がリクエストした後に再びＣＰＵ２がリクエストする場合（ＣＰＵ２リクエスト→ＣＰＵ２リクエスト）であっても、ＣＰＵ２にアクセスが許可される（図７（ｃ）参照）。
【００５４】
図７（ｄ）に示すように、ＣＰＵ１によるＩ／Ｏ機器３へのアクセス中にＣＰＵ２によるリクエストが発生した場合、調停回路部８は、信号ＣＰＵ１＿ＲＥＱがＬレベルであると、これに続いて信号ＣＰＵ２＿ＲＥＱがＬレベルとなっても、信号ＣＰＵ１＿ＡＣＫのＬレベルを維持し、信号ＣＰＵ２＿ＡＣＫをＬレベルにしない。このため、ＣＰＵ２のアクセスは待たされるが、信号ＣＰＵ１＿ＲＥＱがＨレベルになると即座に信号ＣＰＵ２＿ＡＣＫがＬレベルになり、ＣＰＵ２のアクセスが許可される。
【００５５】
反対に、図７（ｅ）に示すように、ＣＰＵ２によるＩ／Ｏ機器３へのアクセス中にＣＰＵ１がアクセスを試みた場合であっても、調停回路部８は、信号ＣＰＵ２＿ＲＥＱがＬレベルであれば、これに続いて信号ＣＰＵ１＿ＲＥＱがＬレベルとなっても、信号ＣＰＵ２＿ＡＣＫのＬレベルを維持し、信号ＣＰＵ２＿ＲＥＱがネゲートされた時点で、ＣＰＵ１にアクセスを許可する。
【００５６】
このように、調停回路部８は、ＣＰＵ１，２からのリクエストが重ならない場合、リクエストしたＣＰＵに対して即座にアクノリッジを与え、またリクエストが重なった場合であっても、先にリクエストしていたＣＰＵにアクノリッジを与えて、もう一方のＣＰＵを待機させ、先にリクエストしていたＣＰＵのアクセス処理が完了した後に、もう一方のＣＰＵにアクノリッジを与える回路構成となっている。この回路構成とすることで、複雑なタイミング処理を行うことなく、ＣＰＵ１，２間の調停における時間待ちを最小限に短縮することができる。
【００５７】
また、信号ＣＰＵ＿ＲＥＱは、ＣＰＵの汎用の出力ポートＯＵＴＰＵＴのレベルをハイ又はロウにすることによって実現できる。信号ＣＰＵ＿ＡＣＫについては、ＣＰＵの汎用の入力ポートＩＮＰＵＴを入力とし、ＣＰＵがポーリングで入力ポートの極性を確認することにより実現できるが、より処理を急ぐ場合には、ＣＰＵの割り込みポートを入力とし、割り込みポートの極性変化に応じて発生する割り込みイベントを基にアクノリッジ確認を行うようにしてもよい。
【００５８】
割り込みを使用する場合の方がより高速に処理することが可能であるが、いずれの場合であっても、一方のＣＰＵが信号ＣＰＵ＿ＲＥＱをアサートした時点で、もう一方のＣＰＵの信号ＣＰＵ＿ＲＥＱがＬレベルでなければ、数ナノ秒単位の遅延時間で信号ＣＰＵ＿ＡＣＫをＬレベルにすることができる。この時間差はＣＰＵの処理サイクルで１サイクル以下であり、他の処理演算に与える影響は、ほぼ無視できる。
【００５９】
上述のように、信号ＣＰＵ＿ＲＥＱと信号ＣＰＵ＿ＡＣＫは、ＣＰＵが搭載する汎用の出力ポートＯＵＴＰＵＴ、入力ポートＩＮＰＵＴ若しくは割り込みポートのレベル変化で実現することができる。このため、マルチＣＰＵシステムにおいて、ＣＰＵの種類に依らず、本発明によるバス調停装置を組み込むことが可能である。
【００６０】
なお、Ｉ／Ｏ機器３としてＨＤＤを例として説明したが、これに限定されるものではない。例えば、ＤＶＤ再生装置、ＣＦ（Compact Flash）カード、ＳＤカード等の汎用メモリカードであってもよい。また、ＰＣＩバス、特殊な専用バスを搭載した機器であっても使用可能であり、シリアルバス形式のＩ／Ｆにおいても適用可能である。
【００６１】
本発明のバス調停装置は、複数のＣＰＵを搭載して、マルチＣＰＵによる処理が可能なナビゲーション装置に有効に適用できる。例えば、映像や音楽データ等を処理するマルチメディアデータ用ＣＰＵと地図データ等を処理するナビゲーション用ＣＰＵとを搭載したナビゲーション装置が挙げられる。つまり、図１中の構成において、ＣＰＵ１，２としてマルチメディアデータ用ＣＰＵとナビゲーション用ＣＰＵを設け、これらＣＰＵの処理に必要なデータを格納するＨＤＤ等をＩ／Ｏ機器３とすることにより実現可能である。
【００６２】
このようなナビゲーション装置に本発明のバス調停装置を適用することにより、マルチメディアデータ用ＣＰＵとナビゲーション用ＣＰＵが１つのＩ／Ｏ機器（例えば、ＨＤＤ）にアクセスする場合であっても、バスの競合が発生することなく、処理が可能である。また、上述したように、汎用ロジックＩＣを組み合わせた回路規模の小さい簡易な構成で基板面積を小さくでき、ナビゲーション装置自体の小型化も図ることができる。
【００６３】
さらに、本発明のバス調停装置は、調停動作においてＣＰＵの動作クロック信号が不要で、ＣＰＵの種類に依らず標準的に搭載された汎用ポートを介して信号のやり取りが可能であり、ナビゲーション装置等の機器に容易に適用可能である。
【００６４】
以上のように、この実施の形態１によれば、信号ＣＰＵ＿ＲＥＱのアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、信号ＣＰＵ＿ＲＥＱのアサート状態を示す論理値が同時に複数入力されると前回の出力値を維持するＤ−ＦＦ１６と、このＤ−ＦＦ１６の出力を分岐入力して論理反転するインバータ回路１７とを備え、ＣＰＵ１，２に対して、信号ＣＰＵ＿ＲＥＱをアサートした順に、Ｄ−ＦＦ１６及びインバータ回路１７の出力のうち、バス使用可を示す論理値を出力し、ＣＰＵ１，２のバス使用要求が重なると、Ｄ−ＦＦ１６で維持された前回の出力値を用いて、先に信号ＣＰＵ＿ＲＥＱをアサートしたＣＰＵに対し、当該信号ＣＰＵ＿ＲＥＱがネゲートされるまでバス使用可を示す論理値を出力する。このように構成することにより、実用的なバス調停装置を簡易な構成で実現することができる。
【００６５】
また、この実施の形態１によれば、調停回路部８による調停動作が、ＣＰＵの動作クロック信号に依存せず、また信号ＣＰＵ＿ＲＥＱの入力と信号ＣＰＵ＿ＡＣＫの出力のみでよいことから、信号のやり取りにＣＰＵの汎用ポートを使用できる。これにより、ＣＰＵの種類や動作速度に制限されることなく、マルチＣＰＵ機器に容易に適用することができる。
【００６６】
実施の形態２．
上記実施の形態１では２個のＣＰＵのバス調停を行う場合を示したが、この実施の形態２は３個以上のＣＰＵのバス調停を行う構成を示す。
【００６７】
図８は、この発明の実施の形態２によるバス調停装置の調停回路部の構成を示す図であり、４個のＣＰＵ１〜４のバス調停を行う回路構成を示している。図８に示す調停回路部８も、汎用のロジックＩＣであるインバータ回路１４−１〜１４−６，１７−１〜１７−３、ＮＡＮＤ回路１５−１〜１５−６，Ｄ−ＦＦ１６−１〜１６−３及びＮＯＲ回路２１−１，２１−２、２２−１〜２２−４から構成される。調停回路部８と外部との間は、信号ＣＰＵ＿ＲＥＱを伝送する４本の信号線と信号ＣＰＵ＿ＡＣＫを伝送する４本の信号線との合計８本の信号線で接続されている。
【００６８】
インバータ回路１４−１，１４−２，１７−１、ＮＡＮＤ回路１５−１，１５−２及びＤ−ＦＦ１６−１から構成される第１の構成部（調停回路部）、インバータ回路１４−３，１４−４，１７−２、ＮＡＮＤ回路１５−３，１５−４及びＤ−ＦＦ１６−２から構成される第２の構成部（調停回路部）、インバータ回路１４−５，１４−６，１７−３、ＮＡＮＤ回路１５−５，１５−６及びＤ−ＦＦ１６−３から構成される第３の構成部（調停回路部）は、それぞれ上記実施の形態１の図２に示した構成と同様に動作する。
【００６９】
また、ＮＯＲ回路２１−１は、ＣＰＵ１，２からの信号ＣＰＵ＿ＲＥＱを反転入力し、ＮＯＲ回路２１−２は、ＣＰＵ３，４からの信号ＣＰＵ＿ＲＥＱを反転入力する。これにより、ＮＯＲ回路２１−１，２１−２は、信号ＣＰＵ＿ＲＥＱがアサートされると、これに応じた値をインバータ回路１４−３，１４−４及びＮＡＮＤ回路１５−３，１５−４に出力する。
【００７０】
ＮＯＲ回路（出力選択部）２２−１，２２−２は、第１の構成部における各出力値と第２の構成部におけるインバータ回路１７−２を介した出力値とを入力し、ＮＯＲ回路（出力選択部）２２−３，２２−４は、第３の構成部における各出力値と第２の構成部におけるＤ−ＦＦ１６−２の出力値とを入力する。この接続関係により、ＮＯＲ回路２２−１〜２２−４は、第１〜第３の構成部の出力値に応じて、ＣＰＵ１〜４への信号ＣＰＵ＿ＡＣＫを生成する。
【００７１】
なお、図８の構成においても、Ｄ−ＦＦ１６−１〜１６−３は、動作クロック信号を用いず、端子ＰＲと端子ＣＬに入力される値に応じた出力値を利用する。従って、ＣＰＵ１〜４が互いに異なる動作速度であっても、調停動作が影響を受けることがない。
【００７２】
次に動作について説明する。
（１）ＣＰＵ１リクエスト→ＣＰＵ２〜４リクエスト
ＣＰＵ１がリクエストした後にＣＰＵ２〜４がリクエストする場合、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱがＨレベルであると、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとし、ＣＰＵ１に対して即座にアクセスを許可する。
【００７３】
例えば、信号ＣＰＵ１＿ＲＥＱがＬレベルであり、信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱがＨレベルであると、第１の構成部におけるＤ−ＦＦ１６−１がＨレベルの信号を出力し、第３の構成部におけるＤ−ＦＦ１６−３は前回の出力レベルを維持する。一方、第２の構成部は、ＮＯＲ回路２１−１からＬレベルの信号とＮＯＲ回路２１−２からＨレベルの信号を入力し、Ｄ−ＦＦ１６−２がＨレベルの信号を出力する。
【００７４】
ＮＯＲ回路２２−１は、第１の構成部におけるインバータ回路１７−１からのＬレベルの信号と第２の構成部におけるインバータ回路１７−２からのＬレベルの信号とを反転入力し、Ｌレベルの信号ＣＰＵ１＿ＡＣＫを生成して出力する。一方、ＮＯＲ回路２２−２は、第１の構成部におけるＤ−ＦＦ１６−１からのＨレベルの信号と第２の構成部におけるインバータ回路１７−２からのＬレベルの信号とを反転入力し、Ｈレベルの信号ＣＰＵ２＿ＡＣＫを生成して出力する。
【００７５】
また、ＮＯＲ回路２２−３は、第３の構成部におけるインバータ回路１７−３からのＬレベル又はＨレベルの信号と第２の構成部におけるＤ−ＦＦ１６−２からのＨレベルの信号とを反転入力し、Ｈレベルの信号ＣＰＵ３＿ＡＣＫを生成して出力する。同様に、ＮＯＲ回路２２−４は、第３の構成部におけるＤ−ＦＦ１６−３からのＬレベル又はＨレベルの信号と第２の構成部におけるＤ−ＦＦ１６−２からのＨレベルの信号とを反転入力し、Ｈレベルの信号ＣＰＵ４＿ＡＣＫを生成して出力する。これにより、ＣＰＵ１にのみアクセスが許可される。
【００７６】
なお、ＣＰＵ１がＩ／Ｏ機器３に対するアクセス処理を完了し、信号ＣＰＵ１＿ＲＥＱをネゲートすると、調停回路部８は、ＣＰＵ２〜４のうち、信号ＣＰＵ＿ＲＥＱをアサート（Ｌレベル）した順に、調停回路部８は、信号ＣＰＵ＿ＡＣＫをＬレベルとしてアクセスを許可する。
【００７７】
（２）ＣＰＵ１リクエスト→ＣＰＵ１リクエスト
ＣＰＵ１がリクエストした後に再びＣＰＵ１がリクエストする場合、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱがＨレベルであれば、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとしてアクセスを許可する。なお、ＣＰＵ２〜４においても同様である。
【００７８】
（３）ＣＰＵ１のアクセス中にＣＰＵ２〜４によるリクエストが発生した場合
調停回路部８は、信号ＣＰＵ１＿ＲＥＱがＬレベルであると、これに続いて信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱのいずれがＬレベルとなっても、信号ＣＰＵ１＿ＡＣＫのＬレベルを維持し、信号ＣＰＵ２＿ＡＣＫ〜ＣＰＵ４＿ＡＣＫをＬレベルにしない。このため、ＣＰＵ２〜４のアクセスは待たされるが、信号ＣＰＵ１＿ＲＥＱがＨレベルになると、リクエストの順序でＣＰＵ２〜４の信号ＣＰＵ＿ＡＣＫをＬレベルとしてアクセスを許可する。
【００７９】
上述の説明ではＣＰＵが４個の場合を示したが、ＣＰＵが３個の場合は、上述した第１の構成部及び第２の構成部を設け、第２の構成部におけるＤ−ＦＦ１６−２の出力を信号ＣＰＵ３＿ＡＣＫとすればよい。また、ｎ（５以上）個の場合は、第１〜第（ｎ−１）の構成部を設け、図８と同様に各ＣＰＵに対する信号ＣＰＵ＿ＡＣＫを生成するＮＯＲ回路を接続することにより実現することができる。
【００８０】
以上のように、この実施の形態２によれば、信号ＣＰＵ＿ＲＥＱのアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、信号ＣＰＵ＿ＲＥＱのアサート状態を示す論理値が同時に複数入力されると前回の出力値を維持するＤ−ＦＦ１６−１〜１６−３と、Ｄ−ＦＦ１６−１〜１６−３の出力を分岐入力して論理反転するインバータ回路１７−１〜１７−３とをそれぞれ有する第１〜３の構成部と、第１〜３の構成部のＤ−ＦＦ１６−１〜１６−３及びインバータ回路１７−１〜１７−３の出力値に応じて、ＣＰＵ１〜４に対し、信号ＣＰＵ＿ＲＥＱをアサートした順に、Ｄ−ＦＦ１６−１〜１６−３及びインバータ回路１７−１〜１７−３の出力のうち、バス使用可を示す論理値を出力し、ＣＰＵ１〜４の全てのバス使用要求が重なると、Ｄ−ＦＦ１６−１〜１６−３で維持された前回の出力値を用いて、先に信号ＣＰＵ＿ＲＥＱをアサートしたＣＰＵに対し、当該信号ＣＰＵ＿ＲＥＱがネゲートされるまでバス使用可を示す論理値を出力するＮＯＲ回路２２−１〜２２−４と、ＣＰＵ１〜４とＩ／Ｏ機器３とを接続するバス上に設けられ、調停回路部８の出力値に応じて、バス使用可のＣＰＵとＩ／Ｏ機器３とのバスを介したやり取りを中継し、バス使用不可なＣＰＵをバスから遮断するゲート部９−１，９−２とを備える。
このように構成することにより、上記実施の形態１と同様に、実用的なバス調停装置を簡易な構成で実現することができる。また、ＣＰＵの種類や動作速度、数量に制限されることなく、マルチＣＰＵ機器に容易に適用することができる。
【００８１】
なお、上記実施の形態１，２では、信号ＣＰＵ＿ＡＣＫを生成する構成としてＤ−ＦＦを用いる場合を示したが、Ｄ−ＦＦに限定されるものではない。つまり、ＣＰＵのクロック信号を使用せず、２入力の各デジタル値に応じて、上記Ｄ−ＦＦと同様のデジタル値を出力、維持する回路であればよい。
【産業上の利用可能性】
【００８２】
以上のように、この発明に係るバス調停装置は、簡易な構成で小型化が可能であり、かつＣＰＵの種類、動作速度、数量に依存しないバス調停装置を得るために、バスに接続する２つのＣＰＵ間のバス使用を調停するバス調停装置において、前記２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有し、前記２つのＣＰＵに対して、前記バス使用要求信号をアサートした順に、前記論理回路及び前記インバータ回路の出力のうち、バス使用可を示す論理値を出力する調停回路部と、前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備えるよう構成したので、近年の情報機器システムに搭載され、複数のＣＰＵのバス使用要求を調停するバス調停装置などに用いるのに適している。
【図１】
2010001515.tif 000003
【図２】
2010001515.tif 000004
【図３】
2010001515.tif 000005
【図４】
2010001515.tif 000006
【図５】
2010001515.tif 000007
【図６】
2010001515.tif 000008
【図７】
2010001515.tif 000009
【図８】
2010001515.tif 000010
【図９】
2010001515.tif 000011
【図１０】
2010001515.tif 000012
【手続補正書】
【提出日】平成22年7月13日(2010.7.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のＣＰＵ（Central Processing Unit）のバス使用要求を調停するバス調停装置、及びこれを用いたナビゲーション装置に関するものである。
【背景技術】
【０００２】
近年、各種の情報機器が開発され、各々にＩ／Ｏ（Input/Output）装置が搭載されて使用されている。Ｉ／Ｏ装置の種類は非常に多岐にわたり、ＨＤＤ（Hard Disk Drive）、ＤＶＤ（Digital Versatile Disk）、メモリカード等が一般的である。これらは大容量のストレージ機能を有し、ソフトウェアや、映像、音楽、地図、その他各種データの格納に使用され、ユーザの利便性に大いに貢献している。
【０００３】
上述のようなＩ／Ｏ機器に搭載される書き込み又は読み出しのポートは、１ポートが一般的であり、１個のＣＰＵと１対１で接続される。図９は、従来のシングルポートでのＣＰＵとＩ／Ｏ機器との接続を示す図である。図９に示すように、ＣＰＵ１００とＩ／Ｏ機器１０１とは、データバス１０２及びコントロール線１０３を介して１対１に接続している。
【０００４】
この場合、ＣＰＵ１００からＩ／Ｏ機器１０１への書き込み又は読み出しは、衝突等の問題が生じることがない。なお、図９において、ＣＰＵ１００が、構成要素を動作させるために必要となるプログラムやデータを格納する記憶装置として、フラッシュメモリ１０４やＤＲＡＭ（Dynamic Random Access Memory）１０５も配置されている。
【０００５】
一方、近年、情報機器システムが複雑化、高度化し、情報機器において、複数のＣＰＵを搭載して情報処理を分担することが一般化している。このため、複数のＣＰＵの各々が１個のＩ／Ｏ機器にアクセスする必要性が生じている。
【０００６】
例えば、近年の車載用のナビゲーション装置には、音楽データや地図データを格納するストレージとしてＨＤＤを搭載し、さらに映像や音楽データを処理するＣＰＵと地図データを処理するＣＰＵとに分かれているものがある。このようなナビゲーション装置では、１台のＨＤＤを、２個のＣＰＵから時分割で書き込み、読み出し可能であれば非常に便利である。
【０００７】
しかしながら、現行の標準的なＩ／Ｏ機器は、１個のＣＰＵからのアクセスを前提としたシングルポート対応のものが一般的であり、２個以上のＣＰＵからのアクセスに同時に対応することは考慮されていない。また、非常に希にデュアルポートを搭載したＩ／Ｏ機器も存在するが、現状では高価であり、安易に使用できるものではない。
【０００８】
このような不具合を解決するため、例えば特許文献１にはシングルポートのＩ／Ｏ機器をあたかもデュアルポートのＩ／Ｏ機器のように動作させるマルチＣＰＵ装置が開示されている。この装置には、デジタル回路技術を利用して２個のＣＰＵから１個のＩ／Ｏ機器へのアクセスを調停する調停回路が設けられている。
【０００９】
一方のＣＰＵ側からのアクセス信号が調停回路に入力されると、他方のＣＰＵ側が非アクセス状態であれば、調停回路では、上記一方のＣＰＵがアクセス可能であると判断し、Ｉ／Ｏ機器の仕様に合致したタイミングでアクセス信号を生成して、上記一方のＣＰＵによるデータの読み出しや書き込みを実行させる。上記他方のＣＰＵ側からアクセス信号が発生した場合も同様である。
【００１０】
なお、双方のＣＰＵによるアクセスが重なった場合、調停回路は、いずれか一方のＣＰＵにウェイト信号を出力して待機させ、２個のＣＰＵが同時にＩ／Ｏ機器にアクセスすることがないように調整している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平９−２５９０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来のバス調停装置では、ＣＰＵからのバス信号（データバス、アドレスバス、ライトパス、リードパス、チップセレクト）を全て取り込み、さらにＩ／Ｏ機器に合致したタイミングにてバス信号を出力する。この回路構成を実現するには、ステートマシン等のタイミング生成回路を搭載した専用ＬＳＩを使用する必要があり、基板面積が増大し、小型化の制限になるという課題がある。
【００１３】
図１０は、従来のマルチＣＰＵ装置の構成を示す図である。図１０において、ＬＳＩ１０６は、上述したタイミング生成回路を搭載した専用ＬＳＩであり、信号線を介してＣＰＵ１００−１，１００−２とＨＤＤ１０１とに接続されている。この構成において、ＬＳＩ１０６は、ＣＰＵ１００−１，１００−２からのバス信号を全て取り込むので、図１０に示すように、バス信号をそれぞれ伝送する多数の信号線による接続が必要であり、不可避的に基板面積が増大する。
【００１４】
また、従来では、複数のＣＰＵの各々のタイミング仕様やＩ／Ｏ機器が要求するタイミング仕様に合致させる必要がある。このため、ＣＰＵやＩ／Ｏ機器が変更されると、複雑なタイミングを再設計しなければならず、構成要素の変更に対する設計の柔軟性がない。
【００１５】
さらに、近年のナビゲーション装置は、大容量の高速データ通信が可能となり、本来のカーナビゲーション機能の他、映像や音楽等のマルチメディア情報を扱う処理機能が付加されるようになっている。このようなナビゲーション装置では、処理負荷を軽減するために、複数のＣＰＵを用いて処理を分担する構成が望まれている。また、車載用情報機器の省スペース化される傾向にあるため、上記のような複数のＣＰＵを搭載したナビゲーション装置の小型化も望まれている。
【００１６】
この発明は、上記のような課題を解決するためになされたもので、簡易な構成で小型化が可能であり、かつＣＰＵの種類、動作速度、数量に依存しないバス調停装置及びこれを用いたナビゲーション装置を得ることを目的とする。
【課題を解決するための手段】
【００１７】
この発明に係るバス調停装置は、バスに接続する２つのＣＰＵ間のバス使用を調停するバス調停装置において、前記２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有し、前記２つのＣＰＵに対して、前記バス使用要求信号をアサートした順に、前記論理回路及び前記インバータ回路の出力のうち、バス使用可を示す論理値を出力する調停回路部と、前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備え、前記調停回路部は、前記２つのＣＰＵからのリクエストが重ならない場合、リクエストしたＣＰＵに対して即座にアクノリッジを与えることを特徴とするバス調停装置。
【発明の効果】
【００１８】
この発明によれば、バス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、この論理回路の出力を分岐入力して論理反転するインバータ回路とを備え、複数のＣＰＵに対して、バス使用要求信号をアサートした順に、論理回路及びインバータ回路の出力のうち、バス使用可を示す論理値を出力するので、専用ＬＳＩやＦＰＧＡなどを用いることなく、実用的なバス調停装置を簡易な構成で実現することができるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】この発明の実施の形態１によるバス調停装置の構成を示す図である。
【図２】図１中の調停回路部の構成を示す図である。
【図３】図２中の調停回路部の入出力とＣＰＵのアクセス権との関係を示すファンクションテーブルである。
【図４】図１中のゲート部の構成を示す図である。
【図５】図４中のゲート部の入出力の関係を示すファンクションテーブルである。
【図６】実施の形態１による調停動作のシーケンスの一例を示す図である。
【図７】ＣＰＵによるＩ／Ｏ機器へのアクセス動作のタイミングチャートである。
【図８】この発明の実施の形態２によるバス調停装置の調停回路部の構成を示す図である。
【図９】従来のシングルポートでのＣＰＵとＩ／Ｏ機器との接続を示す図である。
【図１０】従来のマルチＣＰＵ装置の構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１によるバス調停装置の構成を示す図であり、Ｉ／Ｏ機器として代表的なデバイスであるＨＤＤを２個のＣＰＵからアクセスする場合を例として挙げる。図１において、ＣＰＵ１，２には、各々が動作する際に必要となるプログラムやデータを格納するためのメモリであるフラッシュメモリ４−１，４−２やＤＲＡＭ５−１，５−２が配置されている。また、ＣＰＵ１，２は、動作クロック信号を生成する水晶発振器６−１，６−２及びリセットＩＣ７−１，７−２をそれぞれ有しており、互いに異なる動作クロック周波数で動作することができる。
【００２１】
Ｉ／Ｏ機器（アクセス対象機器）３は、ＣＰＵ１，２からアクセスされるＨＤＤであり（以下、ＨＤＤ３と適宜記載する）、ＡＴＡＰＩ（AT Attachment Packet Interface）規格のバスＩ／Ｆ回路を搭載している。ＨＤＤ３は、通常そのＩ／Ｆ規格に合致したタイミングで動作するＣＰＵ１，２の外部バスに接続しており、ＣＰＵ１，２のプログラム実行により、読み出し又は書き込みが実行される。なお、ＨＤＤ３は、シングルポートの記憶装置であり、ＣＰＵ１，２がそれぞれ１系統のバスラインを通じてアクセスする。
【００２２】
実施の形態１によるバス調停装置は、２個のＣＰＵ１，２とＩ／Ｏ機器３との間に設けられ、一方のＣＰＵ（ＣＰＵ１若しくはＣＰＵ２）から排他的にアクセスされるように、バス使用要求を調停する。その構成としては、調停回路部８及びゲート部９−１，９−２を備える。
【００２３】
調停回路部８は、２個のＣＰＵ１，２からＩ／Ｏ機器３へのアクセスを調停する回路部であり、ＣＰＵ１との間で２本の信号線１０−１，１１−１を介して接続しており、ＣＰＵ２との間で２本の信号線１０−２，１１−２を介して接続している。信号線１０−１，１０−２は、ＣＰＵ１，２へアクセス可否（バス使用可）を通知する信号ＣＰＵ＿ＡＣＫを伝送する信号線である。一方、信号線１１−１，１１−２は、ＣＰＵ１，２からＩ／Ｏ機器３へのアクセスをリクエスト（バス使用要求）するための信号ＣＰＵ＿ＲＥＱ（バス使用要求信号）を伝送する信号線である。
【００２４】
ゲート部９−１，９−２は、調停回路部８から信号ＣＰＵ＿ＡＣＫの入力を受け付け、信号ＣＰＵ＿ＡＣＫに応じてバス信号の接続や遮断を行うゲートＩＣである。例えば、調停回路部８からの信号ＣＰＵ１＿ＡＣＫがアサート（アクセス可）されると、ゲート部９−１は、コントロール線１２−１及びデータバス１３−１をＨＤＤ３に接続し、信号ＣＰＵ１＿ＡＣＫがネゲート（アクセス不可）されると遮断する。なお、コントロール線１２−１，１２−２は、ＣＰＵ１，２からの制御情報を伝送する信号線であり、データバス１３−１，１３−２は、ＣＰＵ１，２とＨＤＤ３との間でやり取りされるデータを伝送する信号線である。
【００２５】
図２は、図１中の調停回路部の構成を示す図である。図２に示すように、調停回路部８は、例えば７４シリーズのロジックＩＣであるインバータ回路１４−１，１４−２，１７、ＮＡＮＤ回路１５−１，１５−２及びＤ−ＦＦ（Delay-Flip Flop）１６から構成される。調停回路部８と外部との間は、信号線１０−１，１０−２及び信号線１１−１，１１−２、の合計４本の信号線で接続されている。
【００２６】
また、ＣＰＵ１へ信号ＣＰＵ１＿ＡＣＫを伝送する信号線１０−１は、インバータ回路（インバータ回路）１７の出力に接続しており、ＣＰＵ２へ信号ＣＰＵ２＿ＡＣＫを伝送する信号線１０−２は、インバータ回路１７の入力に接続している。
【００２７】
ＣＰＵ１からの信号ＣＰＵ１＿ＲＥＱを伝送する信号線１１−１は、インバータ回路１４−１の反転入力とＮＡＮＤ回路１５−２の入力とに接続する。同様に、ＣＰＵ２からの信号ＣＰＵ２＿ＲＥＱを伝送する信号線１１−２は、インバータ回路１４−２の反転入力とＮＡＮＤ回路１５−１の入力とに接続している。
【００２８】
ＮＡＮＤ回路１５−１は、インバータ回路１４−１の出力と信号線１１−２に入力側が接続しており、出力がＤ−ＦＦ１６のプリセット端子ＰＲに接続している。また、ＮＡＮＤ回路１５−２は、インバータ回路１４−２の出力と信号線１１−１に入力側が接続しており、出力がＤ−ＦＦ１６のクリア端子ＣＬに接続している。
【００２９】
Ｄ−ＦＦ（論理回路）１６は、入力端子Ｄ（不図示）に入力されるデジタル値を、クロック端子ＣＫ（不図示）に入力される動作クロック信号に応じて保持するフリップフロップであるが、この発明では、動作クロック信号を用いず、端子ＰＲと端子ＣＬに入力される値に応じて信号ＣＰＵ＿ＡＣＫを生成する。なお、ＣＰＵの動作クロック信号を用いないため、ＣＰＵ１，２が互いに異なる動作速度であっても、調停動作は影響を受けない。
【００３０】
具体的には、Ｄ−ＦＦ１６の出力端子がインバータ回路１７の入力と信号線１０−２とに分岐して接続しており、Ｄ−ＦＦ１６の出力値が信号ＣＰＵ２＿ＡＣＫとして信号線１０−２上に伝送され、インバータ回路１７で反転されたＤ−ＦＦ１６の出力値が信号ＣＰＵ１＿ＡＣＫとして信号線１０−１上に伝送される。なお、入力端子Ｄとクロック端子ＣＫは、所定電圧値にプルアップするか若しくはプルダウンしておく。
【００３１】
このように構成することで、ＣＰＵ１，２によるアクセスが衝突することなく、ＣＰＵ１，２のいずれか一方に信号ＣＰＵ＿ＡＣＫをアサートすることができる。従って、ＣＰＵ１，２は、信号ＣＰＵ＿ＲＥＱをアサートした後、調停回路部８で信号ＣＰＵ＿ＡＣＫがアサートされるのを待ち、信号ＣＰＵ＿ＡＣＫがアサートされるとＩ／Ｏ機器へのアクセスを開始する。
【００３２】
図３は、図２中の調停回路部の入出力とＣＰＵのアクセス権との関係を示すファンクションテーブルであり、テーブル中の矢印方向に時間が経過する場合を示している。図３に示すように、調停回路部８は、ＣＰＵ１，２からの信号ＣＰＵ＿ＲＥＱの値（ハイ又はロウの論理値）の組み合わせに応じて、ＣＰＵ１，２への信号ＣＰＵ＿ＡＣＫをアサート又はネゲートし、Ｉ／Ｏ機器３に対するアクセス権を与える。なお、以降の説明では、各信号ＣＰＵ＿ＲＥＱ，ＣＰＵ＿ＡＣＫは、ロウレベル（Ｌ）をアサートと定義し、ハイレベル（Ｈ）をネゲートとする。
【００３３】
例えば、信号ＣＰＵ１＿ＲＥＱがＬレベルで、かつ信号ＣＰＵ２＿ＲＥＱがＨレベルであると、Ｄ−ＦＦ１６の端子ＰＲがＬレベル、端子ＣＬがＨレベルになるので、Ｄ−ＦＦ１６の出力はＨレベルとなり、Ｌレベルの信号ＣＰＵ１＿ＡＣＫ、Ｈレベルの信号ＣＰＵ２＿ＡＣＫが即座に出力される。つまり、ＣＰＵ１にアクセスが許可される。
【００３４】
この状態から図中の矢印方向に時間が経過して、信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＨレベルになっても、Ｄ−ＦＦ１６の出力値は維持され、Ｌレベルの信号ＣＰＵ１＿ＡＣＫ、Ｈレベルの信号ＣＰＵ２＿ＡＣＫが継続して出力される。これにより、ＣＰＵ１のアクセス許可が維持される。
【００３５】
ここで、信号ＣＰＵ１＿ＲＥＱがＨレベルで、かつ信号ＣＰＵ２＿ＲＥＱがＬレベルになると、Ｄ−ＦＦ１６の端子ＰＲがＨレベル、端子ＣＬがＬレベルになるので、Ｄ−ＦＦ１６の出力はＬレベルとなり、Ｈレベルの信号ＣＰＵ１＿ＡＣＫ、Ｌレベルの信号ＣＰＵ２＿ＡＣＫが即座に出力される。これにより、ＣＰＵ２にアクセス権が与えられる。同様に、この状態から信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＨレベルになっても、ＣＰＵ２のアクセス許可が維持される。
【００３６】
また、ＣＰＵ１がアクセスしている期間、つまりＤ−ＦＦ１６の出力がＨレベルで、Ｌレベルの信号ＣＰＵ１＿ＡＣＫ、Ｈレベルの信号ＣＰＵ２＿ＡＣＫが出力されている状態において、信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＬレベルになった場合、Ｄ−ＦＦ１６の出力値が維持され、Ｌレベルの信号ＣＰＵ１＿ＡＣＫとＨレベルの信号ＣＰＵ２＿ＡＣＫが継続して出力される。これにより、ＣＰＵ１のアクセス許可が維持される。
【００３７】
反対に、ＣＰＵ２がアクセスしている期間、つまりＤ−ＦＦ１６の出力がＬレベルで、Ｈレベルの信号ＣＰＵ１＿ＡＣＫ、Ｌレベルの信号ＣＰＵ２＿ＡＣＫが出力されている状態において、信号ＣＰＵ１＿ＲＥＱと信号ＣＰＵ２＿ＲＥＱの双方がＬレベルになった場合、Ｄ−ＦＦ１６の出力値が維持され、Ｈレベルの信号ＣＰＵ１＿ＡＣＫとＬレベルの信号ＣＰＵ２＿ＡＣＫが継続して出力される。これにより、ＣＰＵ２のアクセス許可が維持される。
【００３８】
なお、上述の説明は、ＣＰＵ１，２からのリクエストが全く同時の場合であるが、このような場合は希で、通常はリクエストに若干の時間差が生じる。この場合、ＣＰＵ１，２によるリクエストの順序に応じて、調停回路部８からＬレベルの信号ＣＰＵ１＿ＡＣＫ，ＣＰＵ２＿ＡＣＫが出力されるため、調停動作を正常に行うことができる。
【００３９】
図４は、図１中のゲート部の構成を示す図である。図４に示すように、ゲート部９−１，９−２についても、調停回路部８と同様に７４シリーズの汎用ロジックＩＣであるバッファＩＣ１８，１９，２０で構成することができる。バッファＩＣ１８，１９，２０は、端子ＥＮＡＢＬＥを搭載し、端子ＥＮＡＢＬＥのレベルに応じてゲートのオン、オフを決定する。さらに、バッファＩＣ１８，１９，２０には、ゲートオフの場合に、出力端子をハイインピーダンスにできる３ステートのＩＣを使用する。
【００４０】
ゲート部９−１（若しくはゲート部９−２）のバッファＩＣ１８は、ＣＰＵ１（若しくはＣＰＵ２）との間でデータバス１３−１（若しくはデータバス１３−２）を介して接続しており、ＣＰＵ１＿ＡＣＫ（若しくはＣＰＵ２＿ＡＣＫ）の値に応じてデータバス１３−１（若しくはデータバス１３−２）の接続又は遮断を行う。
【００４１】
また、ゲート部９−１（若しくはゲート部９−２）のバッファＩＣ１９は、ＣＰＵ１（若しくはＣＰＵ２）からＩ／Ｏ機器３へ出力される制御信号を伝送するコントロール線１２−１（若しくはコントロール線１２−２）（以下、コントロール線（出力）と称す）を介して接続しており、ＣＰＵ１＿ＡＣＫ（若しくはＣＰＵ２＿ＡＣＫ）の値に応じてコントロール線（出力）の接続又は遮断を行う。
【００４２】
さらに、ゲート部９−１（若しくはゲート部９−２）のバッファＩＣ２０は、Ｉ／Ｏ機器３からＣＰＵ１（若しくはＣＰＵ２）へ入力される信号を伝送するコントロール線１２−１（若しくはコントロール線１２−２）（以下、コントロール線（入力）と称す）を介して接続しており、ＣＰＵ１＿ＡＣＫ（若しくはＣＰＵ２＿ＡＣＫ）の値に応じてコントロール線（入力）の接続又は遮断を行う。
【００４３】
図５は、図４中のゲート部の入出力の関係を示すファンクションテーブルである。例えば、ゲート部９−１のバッファＩＣ１８において、データバス１３−１から入力端子ＡにＬレベル（若しくはＨレベル）のデジタル信号が入力され、かつ端子ＥＮＡＢＬＥにＬレベル（アサート）の信号ＣＰＵ１＿ＡＣＫが入力されると、バッファＩＣ１８は、Ｌレベル（若しくはＨレベル）の出力値Ｙ、つまりデータバス１３−１で伝送されてきた値を、そのままＩ／Ｏ機器３側へ出力する。
【００４４】
上記の状態で信号ＣＰＵ１＿ＡＣＫをネゲート（Ｈレベル）すると、端子ＥＮＡＢＬＥはＨレベルとなるので、バッファＩＣ１８は、データバス１３−１から入力端子ＡにＬレベル（若しくはＨレベル）のデジタル信号が入力されても、出力値Ｙをハイインピーダンス（Ｚ）に設定して、データバス１３−１とＩ／Ｏ機器３との間を遮断する。
【００４５】
このように、ゲート部９−１，９−２のバッファＩＣは、調停回路部８から出力される信号ＣＰＵ＿ＡＣＫを端子ＥＮＡＢＬＥに入力することにより、ＣＰＵ１，２との間でデータバスやコントロール線を接続又は遮断でき、信号線の衝突を回避することが可能となる。
【００４６】
次に動作について説明する。
図６は、実施の形態１による調停動作のシーケンスの一例を示す図であり、図１に示すＣＰＵ２に先だってＣＰＵ１がリクエストした場合を示している。
先ず、ＣＰＵ１が、信号ＣＰＵ１＿ＲＥＱをアサート（Ｌレベル）し、Ｉ／Ｏ機器３に対するアクセス権を調停回路部８に要求する（ステップＳＴ１）。調停回路部８は、信号線１０−１を介してＣＰＵ１から信号ＣＰＵ１＿ＲＥＱを入力すると、この時点で信号ＣＰＵ１＿ＡＣＫがＬレベルでなければ、ＣＰＵ１にアクセス許可がないため、ＣＰＵ１は待ち状態となる（ステップＳＴ２）。
【００４７】
一方、信号ＣＰＵ１＿ＡＣＫがＬレベルであると、ＣＰＵ１がアクセス許可されており、ゲート部９−１が、コントロール線１２−１及びデータバス１３−１を接続している。これにより、ＣＰＵ１は、ＨＤＤであるＩ／Ｏ機器３に対して読み出し又は書き込みを実行することができる（ステップＳＴ３）。
【００４８】
同様に、ＣＰＵ２側においても、信号ＣＰＵ２＿ＲＥＱをアサート（Ｌレベル）し、Ｉ／Ｏ機器３へのアクセスを調停回路部８に要求する（ステップＳＴ１ａ）。調停回路部８が、信号線１０−２を介してＣＰＵ２から信号ＣＰＵ２＿ＲＥＱを入力すると、この時点で信号ＣＰＵ２＿ＡＣＫがＬレベルでなければ、ＣＰＵ２にはアクセス許可されていないため、ＣＰＵ２は待ち状態となる（ステップＳＴ２ａ）。
【００４９】
Ｉ／Ｏ機器３に対する読み出しや書き込みが完了すると、ＣＰＵ１は、信号ＣＰＵ１＿ＲＥＱをネゲート（Ｈレベル）する（ステップＳＴ４）。調停回路部８では、信号線１０−１を介してＣＰＵ１からＨレベルの信号ＣＰＵ１＿ＲＥＱを入力すると、即座に信号ＣＰＵ２＿ＡＣＫがＬレベルとなる。これにより、ゲート部９−２が、コントロール線１２−２及びデータバス１３−２を接続し、ＣＰＵ２が、Ｉ／Ｏ機器３に対して読み出し又は書き込みを実行することができる（ステップＳＴ３ａ）。この読み出しや書き込みが完了すると、ＣＰＵ２は、信号ＣＰＵ２＿ＲＥＱをネゲート（Ｈレベル）する（ステップＳＴ４ａ）。
【００５０】
ここで、各ＣＰＵ１，２がＩ／Ｏ機器３にアクセスする様子を、図７に示すタイミングチャートに従って説明する。
図７（ａ）に示すように、ＣＰＵ１がリクエストした後にＣＰＵ２がリクエストする場合（ＣＰＵ１リクエスト→ＣＰＵ２リクエスト）、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱがＨレベルであると、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとし、ＣＰＵ１に対して即座にアクセスを許可する。
【００５１】
ＣＰＵ１がＩ／Ｏ機器３に対するアクセス処理を完了し、信号ＣＰＵ１＿ＲＥＱをネゲートした後に、ＣＰＵ２が信号ＣＰＵ２＿ＲＥＱをアサート（Ｌレベル）すると、調停回路部８は、信号ＣＰＵ２＿ＡＣＫをＬレベルとして、ＣＰＵ２に対して即座にアクセスを許可する。
【００５２】
また、図７（ｂ）に示すように、ＣＰＵ１がリクエストした後に再びＣＰＵ１がリクエストする場合（ＣＰＵ１リクエスト→ＣＰＵ１リクエスト）、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱがＨレベルであれば、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとしてアクセスを許可する。
【００５３】
次に、アクセス処理の完了により、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをネゲートした後に再び信号ＣＰＵ１＿ＲＥＱをＬレベルにすると、調停回路部８は、信号ＣＰＵ２＿ＲＥＱがＨレベルであれば、信号ＣＰＵ１＿ＡＣＫを再びＬレベルとして、ＣＰＵ１にアクセスを許可する。同様に、ＣＰＵ２がリクエストした後に再びＣＰＵ２がリクエストする場合（ＣＰＵ２リクエスト→ＣＰＵ２リクエスト）であっても、ＣＰＵ２にアクセスが許可される（図７（ｃ）参照）。
【００５４】
図７（ｄ）に示すように、ＣＰＵ１によるＩ／Ｏ機器３へのアクセス中にＣＰＵ２によるリクエストが発生した場合、調停回路部８は、信号ＣＰＵ１＿ＲＥＱがＬレベルであると、これに続いて信号ＣＰＵ２＿ＲＥＱがＬレベルとなっても、信号ＣＰＵ１＿ＡＣＫのＬレベルを維持し、信号ＣＰＵ２＿ＡＣＫをＬレベルにしない。このため、ＣＰＵ２のアクセスは待たされるが、信号ＣＰＵ１＿ＲＥＱがＨレベルになると即座に信号ＣＰＵ２＿ＡＣＫがＬレベルになり、ＣＰＵ２のアクセスが許可される。
【００５５】
反対に、図７（ｅ）に示すように、ＣＰＵ２によるＩ／Ｏ機器３へのアクセス中にＣＰＵ１がアクセスを試みた場合であっても、調停回路部８は、信号ＣＰＵ２＿ＲＥＱがＬレベルであれば、これに続いて信号ＣＰＵ１＿ＲＥＱがＬレベルとなっても、信号ＣＰＵ２＿ＡＣＫのＬレベルを維持し、信号ＣＰＵ２＿ＲＥＱがネゲートされた時点で、ＣＰＵ１にアクセスを許可する。
【００５６】
このように、調停回路部８は、ＣＰＵ１，２からのリクエストが重ならない場合、リクエストしたＣＰＵに対して即座にアクノリッジを与え、またリクエストが重なった場合であっても、先にリクエストしていたＣＰＵにアクノリッジを与えて、もう一方のＣＰＵを待機させ、先にリクエストしていたＣＰＵのアクセス処理が完了した後に、もう一方のＣＰＵにアクノリッジを与える回路構成となっている。この回路構成とすることで、複雑なタイミング処理を行うことなく、ＣＰＵ１，２間の調停における時間待ちを最小限に短縮することができる。
【００５７】
また、信号ＣＰＵ＿ＲＥＱは、ＣＰＵの汎用の出力ポートＯＵＴＰＵＴのレベルをハイ又はロウにすることによって実現できる。信号ＣＰＵ＿ＡＣＫについては、ＣＰＵの汎用の入力ポートＩＮＰＵＴを入力とし、ＣＰＵがポーリングで入力ポートの極性を確認することにより実現できるが、より処理を急ぐ場合には、ＣＰＵの割り込みポートを入力とし、割り込みポートの極性変化に応じて発生する割り込みイベントを基にアクノリッジ確認を行うようにしてもよい。
【００５８】
割り込みを使用する場合の方がより高速に処理することが可能であるが、いずれの場合であっても、一方のＣＰＵが信号ＣＰＵ＿ＲＥＱをアサートした時点で、もう一方のＣＰＵの信号ＣＰＵ＿ＲＥＱがＬレベルでなければ、数ナノ秒単位の遅延時間で信号ＣＰＵ＿ＡＣＫをＬレベルにすることができる。この時間差はＣＰＵの処理サイクルで１サイクル以下であり、他の処理演算に与える影響は、ほぼ無視できる。
【００５９】
上述のように、信号ＣＰＵ＿ＲＥＱと信号ＣＰＵ＿ＡＣＫは、ＣＰＵが搭載する汎用の出力ポートＯＵＴＰＵＴ、入力ポートＩＮＰＵＴ若しくは割り込みポートのレベル変化で実現することができる。このため、マルチＣＰＵシステムにおいて、ＣＰＵの種類に依らず、本発明によるバス調停装置を組み込むことが可能である。
【００６０】
なお、Ｉ／Ｏ機器３としてＨＤＤを例として説明したが、これに限定されるものではない。例えば、ＤＶＤ再生装置、ＣＦ（Compact Flash）カード、ＳＤカード等の汎用メモリカードであってもよい。また、ＰＣＩバス、特殊な専用バスを搭載した機器であっても使用可能であり、シリアルバス形式のＩ／Ｆにおいても適用可能である。
【００６１】
本発明のバス調停装置は、複数のＣＰＵを搭載して、マルチＣＰＵによる処理が可能なナビゲーション装置に有効に適用できる。例えば、映像や音楽データ等を処理するマルチメディアデータ用ＣＰＵと地図データ等を処理するナビゲーション用ＣＰＵとを搭載したナビゲーション装置が挙げられる。つまり、図１中の構成において、ＣＰＵ１，２としてマルチメディアデータ用ＣＰＵとナビゲーション用ＣＰＵを設け、これらＣＰＵの処理に必要なデータを格納するＨＤＤ等をＩ／Ｏ機器３とすることにより実現可能である。
【００６２】
このようなナビゲーション装置に本発明のバス調停装置を適用することにより、マルチメディアデータ用ＣＰＵとナビゲーション用ＣＰＵが１つのＩ／Ｏ機器（例えば、ＨＤＤ）にアクセスする場合であっても、バスの競合が発生することなく、処理が可能である。また、上述したように、汎用ロジックＩＣを組み合わせた回路規模の小さい簡易な構成で基板面積を小さくでき、ナビゲーション装置自体の小型化も図ることができる。
【００６３】
さらに、本発明のバス調停装置は、調停動作においてＣＰＵの動作クロック信号が不要で、ＣＰＵの種類に依らず標準的に搭載された汎用ポートを介して信号のやり取りが可能であり、ナビゲーション装置等の機器に容易に適用可能である。
【００６４】
以上のように、この実施の形態１によれば、信号ＣＰＵ＿ＲＥＱのアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、信号ＣＰＵ＿ＲＥＱのアサート状態を示す論理値が同時に複数入力されると前回の出力値を維持するＤ−ＦＦ１６と、このＤ−ＦＦ１６の出力を分岐入力して論理反転するインバータ回路１７とを備え、ＣＰＵ１，２に対して、信号ＣＰＵ＿ＲＥＱをアサートした順に、Ｄ−ＦＦ１６及びインバータ回路１７の出力のうち、バス使用可を示す論理値を出力し、ＣＰＵ１，２のバス使用要求が重なると、Ｄ−ＦＦ１６で維持された前回の出力値を用いて、先に信号ＣＰＵ＿ＲＥＱをアサートしたＣＰＵに対し、当該信号ＣＰＵ＿ＲＥＱがネゲートされるまでバス使用可を示す論理値を出力する。このように構成することにより、実用的なバス調停装置を簡易な構成で実現することができる。
【００６５】
また、この実施の形態１によれば、調停回路部８による調停動作が、ＣＰＵの動作クロック信号に依存せず、また信号ＣＰＵ＿ＲＥＱの入力と信号ＣＰＵ＿ＡＣＫの出力のみでよいことから、信号のやり取りにＣＰＵの汎用ポートを使用できる。これにより、ＣＰＵの種類や動作速度に制限されることなく、マルチＣＰＵ機器に容易に適用することができる。
【００６６】
実施の形態２．
上記実施の形態１では２個のＣＰＵのバス調停を行う場合を示したが、この実施の形態２は３個以上のＣＰＵのバス調停を行う構成を示す。
【００６７】
図８は、この発明の実施の形態２によるバス調停装置の調停回路部の構成を示す図であり、４個のＣＰＵ１〜４のバス調停を行う回路構成を示している。図８に示す調停回路部８も、汎用のロジックＩＣであるインバータ回路１４−１〜１４−６，１７−１〜１７−３、ＮＡＮＤ回路１５−１〜１５−６，Ｄ−ＦＦ１６−１〜１６−３及びＮＯＲ回路２１−１，２１−２、２２−１〜２２−４から構成される。調停回路部８と外部との間は、信号ＣＰＵ＿ＲＥＱを伝送する４本の信号線と信号ＣＰＵ＿ＡＣＫを伝送する４本の信号線との合計８本の信号線で接続されている。
【００６８】
インバータ回路１４−１，１４−２，１７−１、ＮＡＮＤ回路１５−１，１５−２及びＤ−ＦＦ１６−１から構成される第１の構成部（調停回路部）、インバータ回路１４−３，１４−４，１７−２、ＮＡＮＤ回路１５−３，１５−４及びＤ−ＦＦ１６−２から構成される第２の構成部（調停回路部）、インバータ回路１４−５，１４−６，１７−３、ＮＡＮＤ回路１５−５，１５−６及びＤ−ＦＦ１６−３から構成される第３の構成部（調停回路部）は、それぞれ上記実施の形態１の図２に示した構成と同様に動作する。
【００６９】
また、ＮＯＲ回路２１−１は、ＣＰＵ１，２からの信号ＣＰＵ＿ＲＥＱを反転入力し、ＮＯＲ回路２１−２は、ＣＰＵ３，４からの信号ＣＰＵ＿ＲＥＱを反転入力する。これにより、ＮＯＲ回路２１−１，２１−２は、信号ＣＰＵ＿ＲＥＱがアサートされると、これに応じた値をインバータ回路１４−３，１４−４及びＮＡＮＤ回路１５−３，１５−４に出力する。
【００７０】
ＮＯＲ回路（出力選択部）２２−１，２２−２は、第１の構成部における各出力値と第２の構成部におけるインバータ回路１７−２を介した出力値とを入力し、ＮＯＲ回路（出力選択部）２２−３，２２−４は、第３の構成部における各出力値と第２の構成部におけるＤ−ＦＦ１６−２の出力値とを入力する。この接続関係により、ＮＯＲ回路２２−１〜２２−４は、第１〜第３の構成部の出力値に応じて、ＣＰＵ１〜４への信号ＣＰＵ＿ＡＣＫを生成する。
【００７１】
なお、図８の構成においても、Ｄ−ＦＦ１６−１〜１６−３は、動作クロック信号を用いず、端子ＰＲと端子ＣＬに入力される値に応じた出力値を利用する。従って、ＣＰＵ１〜４が互いに異なる動作速度であっても、調停動作が影響を受けることがない。
【００７２】
次に動作について説明する。
（１）ＣＰＵ１リクエスト→ＣＰＵ２〜４リクエスト
ＣＰＵ１がリクエストした後にＣＰＵ２〜４がリクエストする場合、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱがＨレベルであると、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとし、ＣＰＵ１に対して即座にアクセスを許可する。
【００７３】
例えば、信号ＣＰＵ１＿ＲＥＱがＬレベルであり、信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱがＨレベルであると、第１の構成部におけるＤ−ＦＦ１６−１がＨレベルの信号を出力し、第３の構成部におけるＤ−ＦＦ１６−３は前回の出力レベルを維持する。一方、第２の構成部は、ＮＯＲ回路２１−１からＬレベルの信号とＮＯＲ回路２１−２からＨレベルの信号を入力し、Ｄ−ＦＦ１６−２がＨレベルの信号を出力する。
【００７４】
ＮＯＲ回路２２−１は、第１の構成部におけるインバータ回路１７−１からのＬレベルの信号と第２の構成部におけるインバータ回路１７−２からのＬレベルの信号とを反転入力し、Ｌレベルの信号ＣＰＵ１＿ＡＣＫを生成して出力する。一方、ＮＯＲ回路２２−２は、第１の構成部におけるＤ−ＦＦ１６−１からのＨレベルの信号と第２の構成部におけるインバータ回路１７−２からのＬレベルの信号とを反転入力し、Ｈレベルの信号ＣＰＵ２＿ＡＣＫを生成して出力する。
【００７５】
また、ＮＯＲ回路２２−３は、第３の構成部におけるインバータ回路１７−３からのＬレベル又はＨレベルの信号と第２の構成部におけるＤ−ＦＦ１６−２からのＨレベルの信号とを反転入力し、Ｈレベルの信号ＣＰＵ３＿ＡＣＫを生成して出力する。同様に、ＮＯＲ回路２２−４は、第３の構成部におけるＤ−ＦＦ１６−３からのＬレベル又はＨレベルの信号と第２の構成部におけるＤ−ＦＦ１６−２からのＨレベルの信号とを反転入力し、Ｈレベルの信号ＣＰＵ４＿ＡＣＫを生成して出力する。これにより、ＣＰＵ１にのみアクセスが許可される。
【００７６】
なお、ＣＰＵ１がＩ／Ｏ機器３に対するアクセス処理を完了し、信号ＣＰＵ１＿ＲＥＱをネゲートすると、調停回路部８は、ＣＰＵ２〜４のうち、信号ＣＰＵ＿ＲＥＱをアサート（Ｌレベル）した順に、調停回路部８は、信号ＣＰＵ＿ＡＣＫをＬレベルとしてアクセスを許可する。
【００７７】
（２）ＣＰＵ１リクエスト→ＣＰＵ１リクエスト
ＣＰＵ１がリクエストした後に再びＣＰＵ１がリクエストする場合、ＣＰＵ１が信号ＣＰＵ１＿ＲＥＱをＬレベルとした時点で、信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱがＨレベルであれば、調停回路部８は、信号ＣＰＵ１＿ＡＣＫをＬレベルとしてアクセスを許可する。なお、ＣＰＵ２〜４においても同様である。
【００７８】
（３）ＣＰＵ１のアクセス中にＣＰＵ２〜４によるリクエストが発生した場合
調停回路部８は、信号ＣＰＵ１＿ＲＥＱがＬレベルであると、これに続いて信号ＣＰＵ２＿ＲＥＱ〜ＣＰＵ４＿ＲＥＱのいずれがＬレベルとなっても、信号ＣＰＵ１＿ＡＣＫのＬレベルを維持し、信号ＣＰＵ２＿ＡＣＫ〜ＣＰＵ４＿ＡＣＫをＬレベルにしない。このため、ＣＰＵ２〜４のアクセスは待たされるが、信号ＣＰＵ１＿ＲＥＱがＨレベルになると、リクエストの順序でＣＰＵ２〜４の信号ＣＰＵ＿ＡＣＫをＬレベルとしてアクセスを許可する。
【００７９】
上述の説明ではＣＰＵが４個の場合を示したが、ＣＰＵが３個の場合は、上述した第１の構成部及び第２の構成部を設け、第２の構成部におけるＤ−ＦＦ１６−２の出力を信号ＣＰＵ３＿ＡＣＫとすればよい。また、ｎ（５以上）個の場合は、第１〜第（ｎ−１）の構成部を設け、図８と同様に各ＣＰＵに対する信号ＣＰＵ＿ＡＣＫを生成するＮＯＲ回路を接続することにより実現することができる。
【００８０】
以上のように、この実施の形態２によれば、信号ＣＰＵ＿ＲＥＱのアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、信号ＣＰＵ＿ＲＥＱのアサート状態を示す論理値が同時に複数入力されると前回の出力値を維持するＤ−ＦＦ１６−１〜１６−３と、Ｄ−ＦＦ１６−１〜１６−３の出力を分岐入力して論理反転するインバータ回路１７−１〜１７−３とをそれぞれ有する第１〜３の構成部と、第１〜３の構成部のＤ−ＦＦ１６−１〜１６−３及びインバータ回路１７−１〜１７−３の出力値に応じて、ＣＰＵ１〜４に対し、信号ＣＰＵ＿ＲＥＱをアサートした順に、Ｄ−ＦＦ１６−１〜１６−３及びインバータ回路１７−１〜１７−３の出力のうち、バス使用可を示す論理値を出力し、ＣＰＵ１〜４の全てのバス使用要求が重なると、Ｄ−ＦＦ１６−１〜１６−３で維持された前回の出力値を用いて、先に信号ＣＰＵ＿ＲＥＱをアサートしたＣＰＵに対し、当該信号ＣＰＵ＿ＲＥＱがネゲートされるまでバス使用可を示す論理値を出力するＮＯＲ回路２２−１〜２２−４と、ＣＰＵ１〜４とＩ／Ｏ機器３とを接続するバス上に設けられ、調停回路部８の出力値に応じて、バス使用可のＣＰＵとＩ／Ｏ機器３とのバスを介したやり取りを中継し、バス使用不可なＣＰＵをバスから遮断するゲート部９−１，９−２とを備える。
このように構成することにより、上記実施の形態１と同様に、実用的なバス調停装置を簡易な構成で実現することができる。また、ＣＰＵの種類や動作速度、数量に制限されることなく、マルチＣＰＵ機器に容易に適用することができる。
【００８１】
なお、上記実施の形態１，２では、信号ＣＰＵ＿ＡＣＫを生成する構成としてＤ−ＦＦを用いる場合を示したが、Ｄ−ＦＦに限定されるものではない。つまり、ＣＰＵのクロック信号を使用せず、２入力の各デジタル値に応じて、上記Ｄ−ＦＦと同様のデジタル値を出力、維持する回路であればよい。
【符号の説明】
【００８２】
１  ＣＰＵ、２  ＣＰＵ、３  Ｉ／Ｏ機器、４  フラッシュメモリ、５  ＤＲＡＭ、６  水晶発振器、７  リセットＩＣ、８  調停回路部、９  ゲート部、１０  ＣＰＵ＿ＡＣＫ、１１  ＣＰＵ＿ＲＥＱ、１２  コントロール線、１３  データバス、１４  インバータ回路、１５  ＮＡＮＤ回路、１６  Ｄ−ＦＦ、１７  インバータ回路、１８  バッファＩＣ、１９  バッファＩＣ、２０  バッファＩＣ、２１  ＮＯＲ回路、２２  ＮＯＲ回路、１００  ＣＰＵ、１０１  Ｉ／Ｏ機器、１０２  データバス、１０３  コントロール線、１０４  フラッシュメモリ、１０５  ＤＲＡＭ、１０６  ＬＳＩ。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
バスに接続する２つのＣＰＵ間のバス使用を調停するバス調停装置において、
前記２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有し、前記２つのＣＰＵに対して、前記バス使用要求信号をアサートした順に、前記論理回路及び前記インバータ回路の出力のうち、バス使用可を示す論理値を出力する調停回路部と、
前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備え、
前記調停回路部は、前記２つのＣＰＵからのリクエストが重ならない場合、リクエストしたＣＰＵに対して即座にアクノリッジを与える
ことを特徴とするバス調停装置。
【請求項２】
論理回路は、２つのＣＰＵから入力したバス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記２つのＣＰＵからバス使用要求信号のアサート状態を示す論理値が同時に入力されると前回の出力値を維持し、
調停回路部は、前記２つのＣＰＵに対し、前記バス使用要求信号をアサートした順に、前記論理回路及びインバータ回路の出力のうち、バス使用可を示す論理値を出力し、前記２つのＣＰＵのバス使用要求が重なると、前記論理回路で維持された前回の出力値を用いて、先にバス使用要求信号をアサートしていたＣＰＵに対して、当該バス使用要求信号がネゲートされるまで前記バス使用可を示す論理値を出力し、前記２つのＣＰＵからのリクエストが重なった場合、先にリクエストしていたＣＰＵにアクノリッジを与え、別のＣＰＵを待機させ、前記先にリクエストしていたＣＰＵのアクセス処理が完了した後に、前記別のＣＰＵにアクノリッジを与える
ことを特徴とする請求項１記載のバス調停装置。
【請求項３】
バスに接続する３個以上のＣＰＵ間のバス使用を調停するバス調停装置において、
バス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力する論理回路と、前記論理回路の出力を分岐入力して論理反転するインバータ回路とを有する複数の調停回路部と、
前記複数の調停回路部の前記論理回路及び前記インバータ回路の出力値に応じて、前記複数のＣＰＵに対し、前記バス使用要求信号をアサートした順にバス使用可を示す論理値を出力する出力選択部と、
前記ＣＰＵとアクセス対象機器とを接続するバス上に設けられ、前記調停回路部の出力値に応じて、バス使用可のＣＰＵと前記アクセス対象機器との前記バスを介したやり取りを中継し、バス使用不可のＣＰＵを前記バスから遮断するゲート部とを備えた、
前記調停回路部は、前記３個以上のＣＰＵからのリクエストが重ならない場合、リクエストしたＣＰＵに対して即座にアクノリッジを与える
ことを特徴とするバス調停装置。
【請求項４】
論理回路は、バス使用要求信号のアサート及びネゲートの状態を示す論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記バス使用要求信号のアサート状態を示す論理値が同時に複数入力されると前回の出力値を維持し、
出力選択部は、複数の調停回路部の前記論理回路及びインバータ回路の出力値に応じて、複数のＣＰＵに対し、前記バス使用要求信号をアサートした順にバス使用可を示す論理値を出力し、前記３個以上のＣＰＵの全てのバス使用要求が重なると、前記複数の調停回路部の前記論理回路で維持された前回の出力値を用いて、先にバス使用要求信号をアサートしていたＣＰＵに対し、当該バス使用要求信号がネゲートされるまで前記バス使用可を示す論理値を出力し、前記３個以上のＣＰＵからのリクエストが重なった場合、先にリクエストしていたＣＰＵにアクノリッジを与え、別のＣＰＵを待機させ、前記先にリクエストしていたＣＰＵのアクセス処理が完了した後に、前記別のＣＰＵに対してリクエストの順序でアクノリッジを与えることを特徴とする請求項３記載のバス調停装置。
【請求項５】
調停回路部は、ＣＰＵの動作クロックに依らずに動作することを特徴とする請求項１記載のバス調停装置。
【請求項６】
調停回路部は、ＣＰＵの動作クロックに依らずに動作することを特徴とする請求項３記載のバス調停装置。
【請求項７】
調停回路部は、ＣＰＵからのバス使用要求信号を入力する第１及び第２のインバータ回路と、前記第１のインバータ回路の入力と前記第２のインバータ回路の出力との否定論理積演算を行う第１のＮＡＮＤ回路と、前記第２のインバータ回路の入力と前記第１のインバータ回路の出力との否定論理積演算を行う第２のＮＡＮＤ回路とを備え、
論理回路は、前記入力部の前記第１及び前記第２のＮＡＮＤ回路から入力した否定論理積演算された論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記第１及び前記第２のＮＡＮＤ回路から前記バス使用要求信号のアサート状態を示す論理値が同時に入力されると、前回の出力値を維持するフリップフロップ回路であることを特徴とする請求項１記載のバス調停装置。
【請求項８】
調停回路部は、ＣＰＵからのバス使用要求信号を入力する第１及び第２のインバータ回路と、前記第１のインバータ回路の入力と前記第２のインバータ回路の出力との否定論理積演算を行う第１のＮＡＮＤ回路と、前記第２のインバータ回路の入力と前記第１のインバータ回路の出力との否定論理積演算を行う第２のＮＡＮＤ回路とを備え、
論理回路は、前記入力部の前記第１及び前記第２のＮＡＮＤ回路から入力した否定論理積演算された論理値の組み合わせに応じて、バス使用の可否を示す論理値を出力するとともに、前記第１及び前記第２のＮＡＮＤ回路から前記バス使用要求信号のアサート状態を示す論理値が同時に入力されると、前回の出力値を維持するフリップフロップ回路であることを特徴とする請求項３記載のバス調停装置。
【請求項９】
バスに接続する複数のＣＰＵと、
前記複数のＣＰＵ間のバス使用を調停する請求項１記載のバス調停装置とを備えたナビゲーション装置。
【請求項１０】
バスに接続する複数のＣＰＵと、
前記複数のＣＰＵ間のバス使用を調停する請求項３記載のバス調停装置とを備えたナビゲーション装置。
【国際調査報告】
2010001515.tif 000013
2010001515.tif 000014
2010001515.tif 000015
2010001515.tif 000016