(57)【要約】【課題】調停用の信号線を用いずに、メモリを共有する。【解決手段】第一の判定部１１は、複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。バス権要求部１２は、第一の判定部１１によってバスが未使用であると判定された場合に、自装置が設けられているプロセッサがバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信する。第二の判定部１３は、第一の判定部１１によってバスが未使用であると判定され、かつ、バス権要求部１２によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。アクセス制御部１４は、第二の判定部１３によってバス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサがメモリにアクセスするよう制御する。【選択図】図１
2011108051.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定部と、
前記第一の判定部によって前記バスが未使用であると判定された場合に、自装置が設けられているプロセッサが前記バスを介して前記メモリへアクセスするためのバス権を要求するバス権要求信号を前記バスに送信するバス権要求部と、
前記第一の判定部によって前記バスが未使用であると判定され、かつ、前記バス権要求部によって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサが前記メモリにアクセスするよう制御するアクセス制御部と
を有することを特徴とするバス制御装置。
【請求項２】
自装置が設けられているプロセッサ以外の他のプロセッサによる前記メモリへのアクセスを優先させることを示す優先アクセス情報を記憶する優先設定記憶部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、前記他のプロセッサに設けられているバス制御装置の優先設定記憶部に前記優先アクセス情報を記憶させる優先設定更新部とをさらに有し、
前記第一の判定部は、前記他のプロセッサに設けられているバス制御装置よって自装置の前記優先設定記憶部に前記優先アクセス情報が記憶されていない場合に、バスが未使用であるか否かを判定し、
前記アクセス制御部は、前記優先設定更新部によって前記他のプロセッサに設けられているバス制御装置の前記優先設定記憶部に前記優先アクセス情報が記憶された場合には、自装置が設けられているプロセッサが優先的に前記メモリにアクセスするように制御することを特徴とする請求項１に記載のバス制御装置。
【請求項３】
自装置が設けられているプロセッサ以外の他のプロセッサが休止状態であることを示す休止状態情報を記憶する休止状態記憶部と、
自装置が設けられているプロセッサが休止状態となる際に、前記他のプロセッサに設けられているバス制御装置の休止状態記憶部に前記休止状態情報を記憶させる休止状態更新部とをさらに有し、
前記第一の判定部は、前記他のプロセッサに設けられているバス制御装置によって前記休止状態情報が記憶されていない場合には、バスが未使用であるか否かを判定し、
前記アクセス制御部は、前記他のプロセッサに設けられているバス制御装置によって前記休止状態情報が記憶された場合には、自装置が設けられているプロセッサが優先的に前記メモリにアクセスするよう制御することを特徴とする請求項１に記載のバス制御装置。
【請求項４】
複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定部と、
自プロセッサが前記バスを介して前記メモリへアクセスするためのバス権を要求するバス権要求信号を前記バスに送信するバス権要求部と、
前記第一の判定部によって前記バスが未使用であると判定され、かつ、前記バス権要求部によって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、自プロセッサが前記メモリにアクセスするよう制御するアクセス制御部と
を有することを特徴とするプロセッサ。
【請求項５】
複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定部と、
自装置に設けられているプロセッサが前記バスを介して前記メモリへアクセスするためのバス権を要求するバス権要求信号を前記バスに送信するバス権要求部と、
前記第一の判定部によって前記バスが未使用であると判定され、かつ、前記バス権要求部によって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、自装置に設けられているプロセッサが前記メモリにアクセスするよう制御するアクセス制御部と
を有することを特徴とする電子装置。
【請求項６】
複数のプロセッサによって共有される外部メモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定ステップと、
第一の判定ステップによって前記バスが未使用であると判定された場合に、自装置が設けられているプロセッサが前記バスを介して前記メモリへアクセスすることを要求するバス権要求信号を前記バスに送信するバス権要求ステップと、
前記バス権要求ステップによって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定ステップと、
前記第二の判定ステップによって前記バス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサが前記メモリにアクセスするよう制御するアクセス制御ステップと
を有することを特徴とするバス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御装置、プロセッサ、電子装置及びバス制御方法に関する。
【背景技術】
【０００２】
従来、マルチプロセッサシステムがある。マルチプロセッサシステムは、複数のプロセッサとメモリとを有する。かかるマルチプロセッサシステムでは、プロセッサごとに専用のメモリが設けられる。それぞれのプロセッサにメモリを設けた場合には、プロセッサの数に応じて、メモリの個数が増加する。そして、メモリの個数が増加すると、コストが増加したり、実装スペースが増大してしまう。
【０００３】
マルチプロセッサシステムは、メモリの個数を減らすことを目的として、プロセッサ間でメモリを共有する場合がある。その場合には、例えば、マルチプロセッサシステムは、プロセッサ間でマスタとスレーブの関係を構築する。マスタとスレーブの関係では、マスタ側のプロセッサのみがメモリに接続する。したがって、スレーブ側のプロセッサは、メモリへアクセスする場合には、マスタプロセッサに必要なデータを通信する。
【０００４】
また、マルチプロセッサシステムは、同一バス上で複数のプロセッサが、メモリを共有する場合がある。メモリを共有するマルチプロセッサシステムにおいて、各プロセッサは、メモリを用いて、演算処理に必要な各種のデータを受け渡す。ここで、各プロセッサが同時にメモリへアクセスした場合、データは、バス上で衝突し破壊される可能性がある。そのため、例えば、マルチプロセッサシステムは、調停機構を有する。調停機構は、特定のプロセッサに対してのみメモリへのアクセスを許可することで、アクセス順序を調停する。
【０００５】
調停機構では、各プロセッサは、メモリへアクセス要求できるタイミングを割り当てられる。そして、あるプロセッサがメモリへアクセスする場合には、当該プロセッサは、自身に割り当てられたタイミングでメモリへアクセス要求する。ここで、他のプロセッサがメモリへアクセスしていない場合には、当該プロセッサは、メモリへアクセスすることができる。一方、他のプロセッサが既にメモリへアクセスしていた場合には、当該プロセッサは、次のタイミングを待って再度メモリへアクセス要求する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６４−００２１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の技術では、調停用の信号線を用いずに、プロセッサ間でメモリを共有することはできなかった。
【０００８】
例えば、プロセッサ間でマスタとスレーブの関係を構築した場合には、マスタ側のプロセッサは、スレーブ側のプロセッサとの間でメモリアクセス信号を送受信するための信号線を用いる。また、従来の調停機構は、メモリへのアクセス状態を各プロセッサに通知するための専用信号を用いる。すなわち、従来の技術では、調停用の信号線を用いなければ、プロセッサ間でメモリを共有することはできなかった。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、調停用の信号線を用いずに、プロセッサ間でメモリを共有することができるバス制御装置、プロセッサ、電子装置及びバス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するバス制御装置、プロセッサ、電子装置及びバス制御方法は、複数のプロセッサによって共有される外部メモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。また、バス制御装置、プロセッサ、電子装置及びバス制御方法は、バスが未使用であると判定された場合に、バスを介してメモリへアクセスすることを要求するバス権要求信号をバスに送信する。そして、バス制御装置、プロセッサ、電子装置及びバス制御方法は、バス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定し、プロセッサがメモリにアクセスするよう制御する。
【発明の効果】
【００１１】
本願の開示するバス制御装置、プロセッサ、電子装置及びバス制御方法によれば、バス権調停用の信号線を用いなくても、プロセッサ間でメモリを共有することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るバス制御装置の構成を示す機能ブロック図である。
【図２】図２は、実施例２に係る電子装置の構成を示す機能ブロック図である。
【図３】図３は、実施例２に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。
【図４Ａ】図４Ａは、実施例２に係る電子装置によって行われる基本動作の状態変化を示す図（１）である。
【図４Ｂ】図４Ｂは、実施例２に係る電子装置によって行われる基本動作の状態変化を示す図（２）である。
【図５】図５は、実施例３に係る電子装置の構成を示す機能ブロック図である。
【図６Ａ】図６Ａは、実施例３に係る外部メモリが有するメモリ空間を説明するための図である。
【図６Ｂ】図６Ｂは、優先アクセス設定レジスタによって記憶されるデータの一例を示す図である。
【図７】図７は、実施例３に係る電子装置によって行われる優先アクセス設定処理の処理手順を示すフローチャートである。
【図８】図８は、実施例３に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。
【図９】図９は、実施例４に係る電子装置の構成を示す機能ブロック図である。
【図１０】図１０は、外部バス休止設定レジスタによって記憶されるデータの一例を示す図である。
【図１１】図１１は、実施例４に係る電子装置によって行われる休止状態設定処理の処理手順を示すフローチャートである。
【図１２】図１２は、実施例４に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するバス制御装置、プロセッサ、電子装置及びバス制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
まず、図１を用いて、実施例１に係るバス制御装置の構成について説明する。図１は、実施例１に係るバス制御装置の構成を示す機能ブロック図である。図１に示すように、実施例１に係るバス制御装置１０は、第一の判定部１１と、バス権要求部１２と、第二の判定部１３と、アクセス制御部１４とを有する。
【００１５】
第一の判定部１１は、複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。バス権要求部１２は、第一の判定部１１によってバスが未使用であると判定された場合に、自装置が設けられているプロセッサがバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信する。第二の判定部１３は、第一の判定部１１によってバスが未使用であると判定され、かつ、バス権要求部１２によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。アクセス制御部１４は、第二の判定部１３によってバス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサがメモリにアクセスするよう制御する。
【００１６】
すなわち、実施例１に係るバス制御装置１０では、メモリに接続されたバスの信号を監視して、バスの使用状態を判定する。そして、バス制御装置１０は、バスが未使用であれば、メモリにアクセスするためのバス権をバス経由で要求する。したがって、実施例１に係るバス制御装置１０によれば、調停用の信号線を用いずに、プロセッサ間でメモリを共有することができる。
【実施例２】
【００１７】
次に、実施例２として、電子装置のバス制御方法について説明する。実施例２に係る電子装置は、２台のプロセッサと外部メモリとを有する。各プロセッサと外部メモリとは、同一バス上で接続される。なお、実施例２に係る電子装置において、２台のプロセッサが実行する演算の優先度に差はないと仮定する。以下では、実施例２に係る電子装置の構成、電子装置の処理の流れを順に説明し、最後に実施例２の効果を説明する。
【００１８】
［実施例２に係る電子装置の構成］
図２を用いて、実施例２に係る電子装置の構成を説明する。図２は、実施例２に係る電子装置の構成を示す機能ブロック図である。図２に示すように、電子装置は、プロセッサ１００と、プロセッサ２００と、外部メモリ３００とを有する。また、プロセッサ１００と、プロセッサ２００と、外部メモリ３００とは、バスを介して接続される。
【００１９】
プロセッサ１００及び２００と外部メモリ３００とを接続するバスは、データバス、アドレスバス、制御バス、チップセレクトバスを有する。データバスは、外部メモリ３００に対して読み書きされるデータの伝送路である。アドレスバスは、外部メモリ３００のどの位置に対してデータの読み書きを行うかを指定する情報の伝送路である。また、チップセレクトバスは、データバスが特定のプロセッサに対して割り当てられたことを通知するチップセレクト信号の伝送路である。制御バスは、外部メモリ３００に対して、データの読み込み又はデータの書き込みのいずれを行うかを指示する伝送路である。
【００２０】
プロセッサ１００は、外部メモリ３００に格納されている情報に基づいて、各種の演算処理を実行する。また、プロセッサ１００は、演算処理した結果を外部メモリ３００に格納する。ここで、プロセッサ１００は、プロセッサコア１１０と、バス制御装置１２０と、ＩＯ（Input Output）バッファ１３０とを有する。
【００２１】
プロセッサコア１１０は、外部メモリ３００に格納されている情報に基づいて、演算を実行する。例えば、プロセッサコア１１０は、外部メモリ３００から情報を読み出す場合には、バス制御装置１２０に読み出し用のアクセス要求を転送する。また、プロセッサコア１１０は、演算結果を外部メモリ３００へ書き込む場合には、バス制御装置１２０に書き込み用のアクセス要求を転送する。
【００２２】
バス制御装置１２０は、プロセッサコア１１０から外部メモリ３００へのアクセス要求を受け取ると、外部メモリ３００へのバス権の調停を行う。ここで、バス権とは、外部メモリ３００と接続されたバスを使用する権利である。また、バス権の調停とは、特定のプロセッサに対してのみ、バス権を与え、外部メモリ３００へアクセスを許可することを意味する。また、バス制御装置１２０は、プロセッサコア１１０から転送されたアクセス要求を解析する。ここで、アクセス要求は、読み込み又は書き込みを行う外部メモリ３００のアドレスと、読み込み又は書き込みを指示する制御内容とを有する。
【００２３】
バス制御装置１２０は、バス権を取得した場合には、読み込み又は書き込みを行う外部メモリ３００のアドレス、読み込み又は書き込みを指示する制御内容及びデータを転送するために、バスを制御する。なお、バス制御装置１２０は、アドレスバスと、チップセレクトバスと、データバスと、制御バスとを制御する。バス制御装置１２０は、メモリバス監視制御回路１２１と、バスリクエスト付加回路１２２と、入出力制御回路１２３と、メモリ制御回路１２４とを有する。
【００２４】
メモリバス監視制御回路１２１は、プロセッサ１００及び２００によって共有される外部メモリ３００と各プロセッサとを接続するバスの信号を監視することで、バスが未使用であるか否かを判定する。また、メモリバス監視制御回路１２１は、後述するバスリクエスト付加回路１２２によってバス権要求信号がバスに送信された結果、バス権の取得が成功したか否かを判定する。
【００２５】
例えば、メモリバス監視制御回路１２１は、アドレスバス及びチップセレクト信号の論理状態に基づいて、バスが未使用であるか否かを判定する。なお、ここでいう論理状態は、信号を表す電圧レベルに対応する。つまり、信号の電圧レベルがＨｉｇｈの場合には、論理状態を「０」とし、信号の電圧レベルがＬｏｗの場合には、論理状態は「１」とする。
【００２６】
例えば、アドレスバスが有する複数のアドレス信号のうち、いずれのアドレス信号も使用されていない場合には、各アドレス信号の論理状態は、いずれも「１」となる。また、一部のアドレス信号のみが使用されている場合には、使用されているアドレス信号の論理状態は、「１」となり、他のアドレス信号は、全て「０」となる。また、いずれのプロセッサも外部メモリ３００にアクセスしていない場合には、チップセレクト信号の論理状態は、「１」となる。また、いずれかのプロセッサが外部メモリ３００にアクセスしている場合には、チップセレクト信号の論理状態は、「０」となる。
【００２７】
メモリバス監視制御回路１２１は、バスが未使用であると判定した場合には、バス権の要求を行う。具体的には、メモリバス監視制御回路１２１は、バスリクエスト付加回路１２２がバス権要求信号をバスに送信するように指示する。また、メモリバス監視制御回路１２１は、入出力制御回路１２３がバス権要求信号の出力を制御するように指示する。メモリバス監視制御回路１２１は、バス権を要求した後、バス権が取得できたか否かを判定する。
【００２８】
また、メモリバス監視制御回路１２１は、バス権を取得できなかった場合には、バス権要求信号をリセットする。なお、バス権を取得できなかった場合とは、プロセッサ１００とプロセッサ２００とが、同時にバス権取得要求を行った場合である。続いて、所定の時間の経過後に、メモリバス監視制御回路１２１は、バス権を再要求することを目的として、バスの使用状態を判定する。ここで、プロセッサ１００及び２００は、バス権を再要求するタイミングが同じであった場合には、バス権要求が重なり続けるため、バス権取得を失敗し続ける可能性がある。そこで、メモリバス監視制御回路１２１は、バス権の要求をリセットした後、バス権を再要求するまでの所定の時間をプロセッサ間で異なるように設定する。なお、メモリバス監視制御回路１２１に設定されるバス権要求のタイミングは、利用者によって任意に設定可能である。
【００２９】
バスリクエスト付加回路１２２は、外部メモリ３００へアクセスするためのバス権を要求する指示をメモリバス監視制御回路１２１から受付けると、バス権要求信号を送信する。バスリクエスト付加回路１２２は、アドレスバスと接続されており、アドレスバスが有するアドレスのうち一つをバス権の要求に使用する。なお、各プロセッサは、どのアドレスバスをバス権要求信号として使用するかはプロセッサごとに事前に決められていることとする。
【００３０】
入出力制御回路１２３は、ＩＯバッファ１３０を制御することで、バス権要求信号を出力させる。例えば、入出力制御回路１２３は、メモリバス監視制御回路１２１からバス権要求がない状態では、入力制御する。例えば、入出力制御回路１２３は、アドレスバスをハイインピーダンス状態に維持する。つまり、入出力制御回路１２３は、アドレスバスとＩＯバッファ１３０の出力信号線を導通させない。したがって、アドレスバス上にある情報は転送されない。また、入出力制御回路１２３は、メモリバス監視制御回路１２１によって、バスリクエストを受付けた場合には、アドレスバスのハイインピーダンス状態を解除する。つまり、入出力制御回路１２３は、アドレスバスとＩＯバッファ１３０の出力信号線を電気的に導通させる。その結果、バスリクエスト付加回路１２２は、バス権要求信号を送信することができる。
【００３１】
メモリ制御回路１２４は、プロセッサコア１１０から外部メモリ３００へのアクセス要求を受け取る。メモリ制御回路１２４は、アクセス要求に基づいて、転送先の外部メモリ３００のアドレスと、読み込み又は書き込みを指示する制御内容を解析する。また、メモリ制御回路１２４は、メモリバス監視制御回路１２１に対して、バス権を取得するように指示する。メモリ制御回路１２４は、メモリバス監視制御回路１２１によってバス権の取得が成功したと判定された場合には、バスを制御する。その結果、メモリ制御回路１２４は、プロセッサコア１１０から転送された、外部メモリ３００のアドレス及び、読み込み又は書き込みを指示する制御内容を転送することができる。
【００３２】
ＩＯバッファ１３０は、プロセッサ１００と外部メモリ３００との間を転送されるデータのインターフェースである。例えば、ＩＯバッファ１３０は、プロセッサコア１１０から入力された「１」と「０」からなる二値の情報を「High」と「Low」との２種類の電圧からなるデータに変換して、所定のタイミングで外部メモリ３００へ出力する。また、ＩＯバッファ１３０は、外部メモリ３００から入力される「High」と「Low」との２種類の電圧からなるデータを「１」と「０」からなる二値の情報に変換し、プロセッサコア１１０に入力する。
【００３３】
プロセッサ２００は、プロセッサ１００と同様の構成を有する。プロセッサ２００が内部に有する各構成要素についての重複する説明は省略する。プロセッサ２００は、プロセッサコア２１０と、バス制御装置２２０と、ＩＯバッファ２３０とを有する。また、バス制御装置２２０は、メモリバス監視制御回路２２１と、バスリクエスト付加回路２２２と、入出力制御回路２２３と、メモリ制御回路２２４とを有する。ここで、プロセッサコア２１０は、プロセッサコア１１０に対応する。バス制御装置２２０は、バス制御装置１２０に対応する。また、ＩＯバッファ２３０は、ＩＯバッファ１３０に対応する。メモリバス監視制御回路２２１は、メモリバス監視制御回路１２１に対応する。バスリクエスト付加回路２２２は、バスリクエスト付加回路１２２に対応する。入出力制御回路２２３は、入出力制御回路１２３に対応する。メモリ制御回路２２４は、メモリ制御回路１２４に対応する。
【００３４】
外部メモリ３００は、主記憶装置である。例えば、外部メモリ３００は、プロセッサが実行するプログラムやデータなどの情報を保存する。また、外部メモリ３００は、メモリ空間を有している。そして、外部メモリ３００が有するメモリ空間には、１バイトごとにアドレスが割り振られている。したがって、外部メモリ３００は、割り振られたアドレスに基づいて、プロセッサ１００及びプロセッサ２００からのアクセスを受付けることができる。外部メモリ３００は、プロセッサ１００及びプロセッサ２００によって指定されたアドレスへの読み出し要求及び書き込み要求に基づいて情報の読み出し及び情報の書き込みを行う。例えば、外部メモリ３００は、ＲＡＭ(Random Access Memory)やＲＯＭ（Read Only Memory）である。
【００３５】
［実施例２に係る電子装置によって行なわれるバス権取得処理の処理手順］
次に、図３を用いて、実施例２に係る電子装置によって行なわれるバス権取得処理の処理手順を説明する。図３の（Ａ）は、実施例２に係る電子装置によって行なわれるバス権取得処理の処理手順を示すフローチャートである。
【００３６】
メモリ制御回路１２４は、プロセッサコア１１０から外部メモリへのアクセス要求を受付けた場合（ステップＳ１０１、Ｙｅｓ）、メモリバス監視制御回路１２１に、アドレスバスとチップセレクト信号の論理状態を取得させる（ステップＳ１０２）。
【００３７】
メモリバス監視制御回路１２１は、取得したアドレスバスとチップセレクト信号の論理状態を判定する（ステップＳ１０３）。ここで、チップセレクト信号の論理状態が「１」であり、また、アドレスバスの論理状態も「１」であった場合（ステップＳ１０３、Ｙｅｓ）、メモリバス監視制御回路１２１は、バスリクエスト付加回路１２２に、バス権要求信号を出力するように指示する（ステップＳ１０４）。一方、メモリバス監視制御回路１２１は、チップセレクト信号とアドレスバスの論理状態のどちらか一方でも「１」でないと判定した場合、再度、アドレスバスとチップセレクト信号を取得する（ステップＳ１０３、Ｎｏ）。
【００３８】
メモリバス監視制御回路１２１は、バス権要求信号を出力した後に、再度、チップセレクト信号とアドレスバスの論理状態を取得する（ステップＳ１０５）。続いて、メモリバス監視制御回路１２１は、取得したチップセレクト信号とアドレスバスの論理状態を判定する（ステップＳ１０６）。ここで、チップセレクト信号の論理状態が「１」であり、バス権要求信号を出力したアドレスバスの論理状態のみが「０」であった場合には（ステップＳ１０６、Ｙｅｓ）、メモリバス監視制御回路１２１は、バス権を取得できたと判定する（ステップＳ１０７）。一方、バス権要求信号を出力したアドレスバスの論理状態以外のアドレスバスの論理状態も「０」であった場合には（ステップＳ１０６、Ｎｏ）、メモリバス監視制御回路１２１は、バス権取得要求を取り消し（ステップＳ１０８）、続いて、メモリバス監視制御回路１２１は、アドレスバスとチップセレクト信号を再取得する（ステップＳ１０２）。
【００３９】
また、図３の（Ｂ）は、フローチャートの各ステップにおける処理の状態を示す図である。まず、ステップＳ１０１とＳ１０８において、バス制御装置１２０は、バスの使用状態をチェックしておらず、またバス権の要求も取得もしていない。すなわち、ステップＳ１０１とＳ１０８において、バス制御装置１２０は、Ｉｄｌｅ状態である。また、ステップＳ１０２とＳ１０３は、アドレスバスとチップセレクト信号をチェックするＢｕｓＣｈｋ状態である。また、ステップＳ１０４は、バス権を要求する、Ｒｅｑ状態である。また、ステップＳ１０５とＳ１０６は、バス権を取得できたか否かを判定するＲｑｃｈｋ状態である。そして、ステップＳ１０７は、バス権を取得し、メモリへアクセスしているＡｃｃｅｓｓ状態である。
【００４０】
［実施例２に係る電子装置によって行われる動作タイミング］
次に、実施例２に係る電子装置によって行われる基本動作の状態変化を説明する。ここでは、プロセッサ１００が外部メモリ３００へアクセスした後に、プロセッサ２００が外部メモリ３００へアクセスする場合を説明する。
【００４１】
図４Ａは、実施例２に係る電子装置によって行われる基本動作の状態変化を示す図（１）である。図２に示す「バスアクセス」は、外部メモリ３００へアクセスするプロセッサを示す。また、「アドレスバス」は、アドレスバスの使用状態を示す。「チップセレクト信号」は、チップセレクト信号の論理状態を示す。また「バス制御装置１２０」は、プロセッサ１００のバス制御装置１２０の処理状態を示す。同様に、「バス制御装置２２０」は、プロセッサ２００のバス制御装置２２０の処理状態を示す。ここで、説明を容易にするために、時間経過に基づいて動作のタイミングをタイミング（１）からタイミング（９）の過程に分けて説明する。まず、図４Ａの基本動作について説明する。
【００４２】
タイミング（１）では、プロセッサ１００及びプロセッサ２００は、ともに外部メモリ３００へアクセスしておらず、ともにＩｄｌｅ状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。タイミング（２）では、プロセッサ１００は、バスの使用状態を判定するＢｕｓＣｈｋ状態である。また、プロセッサ２００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態はともに「１」である。
【００４３】
タイミング（３）では、プロセッサ１００が、バス権取得を要求するＲｅｑ状態、及びバス権を取得できたか否かを判定するＲｑｃｈｋ状態である。また、プロセッサ２００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ１００によって要求されたアドレスバスのみが「０」であり、チップセレクト信号の論理状態は「１」である。
【００４４】
タイミング（４）では、プロセッサ１００が、バス権を取得し、メモリへアクセスするＡｃｃｅｓｓ状態である。また、プロセッサ２００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ１００によって要求されたアドレスバスのみが「０」であり、チップセレクト信号の論理状態は「０」である。タイミング（５）では、プロセッサ１００が、メモリへのアクセスを終了しており、Ｉｄｌｅ状態である。また、プロセッサ２００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。
【００４５】
タイミング（６）では、プロセッサ２００は、バスの使用状態を判定するＢｕｓＣｈｋ状態である。また、プロセッサ１００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態はともに「１」である。
【００４６】
タイミング（７）では、プロセッサ２００が、バス権取得を要求するＲｅｑ状態、及びバス権を取得できたか否かを判定するＲｑｃｈｋ状態である。また、プロセッサ１００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ２００によって要求されたアドレスバスのみが「１」であり、チップセレクト信号の論理状態は、「１」である。
【００４７】
タイミング（８）では、プロセッサ２００が、バス権を取得し、メモリへアクセスするＡｃｃｅｓｓ状態である。また、プロセッサ１００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ２００によって要求されたアドレスバスのみが「０」であり、チップセレクト信号の論理状態は、「０」である。タイミング（９）では、プロセッサ２００が、メモリへのアクセスを終了しており、Ｉｄｌｅ状態である。また、プロセッサ１００は、Ｉｄｌｅ状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。
【００４８】
次に、プロセッサ１００とプロセッサ２００が同時に外部メモリへアクセスする場合の動作タイミングを説明する。図４Ｂは、実施例２に係る電子装置によって行われる基本動作の状態変化を示す図（２）である。なお、プロセッサ１００は、バス権要求をリセットした後、バス権を再要求するまでの時間を、プロセッサ２００よりも短く設定する。
【００４９】
図４Ｂのタイミング（１）では、プロセッサ１００及びプロセッサ２００は、ともにＩｄｌｅ状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。タイミング（２）において、プロセッサ１００及びプロセッサ２００は、同時に、バスの使用状態を判定するＢｕｓＣｈｋ状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。
【００５０】
タイミング（３）では、プロセッサ１００及びプロセッサ２００が、同時に、バス権を要求するＲｅｑ状態である。続いて、プロセッサ１００及びプロセッサ２００は、バス権を取得できたかを判定するＲｑｃｈｋ状態である。かかる状態では、アドレスバスの論理状態は、プロセッサ１００及び２００によって要求されたアドレスバスが「０」であり、チップセレクト信号の論理状態は、「１」である。
【００５１】
タイミング（４）では、バス権取得に失敗したプロセッサ１００とプロセッサ２００が、バス権取得要求をリセットする、Ｉｄｌｅ状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。続いて、タイミング（５）では、プロセッサ１００が、再度、バスの使用状態を判定するＢｕｓＣｈｋ状態である。一方、プロセッサ２００は、Ｉｄｌｅ状態のままである。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。なお、Ｉｄｌｅ状態から再び、バスの使用状態を判定するまでの待ち時間は、プロセッサごとに異なる値が設定されている。
【００５２】
タイミング（６）では、プロセッサ１００が、バス権取得を要求するＲｅｑ状態、及びバス権を取得できたか否かを判定するＲｑｃｈｋ状態である。一方、プロセッサ２００は、バスの使用状態を判定するＢｕｓＣｈｋ状態である。かかる状態において、アドレスバスの論理状態は、自装置のアドレスバスのみが「０」であり、チップセレクト信号の論理状態は、「１」である。タイミング（７）では、プロセッサ１００が、バス権を取得し、メモリへアクセスしているＡｃｃｅｓｓ状態である。一方、プロセッサ２００は、バスの使用状態を判定するＢｕｓＣｈｋ状態である。かかる状態において、アドレスバスの論理状態は、自装置のアドレスバスのみが「０」であり、チップセレクト信号の論理状態は、「０」である。
【００５３】
タイミング（８）では、プロセッサ１００が、メモリへのアクセスを終了しており、Ｉｄｌｅ状態である。また、プロセッサ２００は、引き続き、バスの使用状態を判定するＢｕｓＣｈｋ状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。
【００５４】
タイミング（９）では、プロセッサ２００が、バス権取得を要求するＲｅｑ状態、及びバス権を取得できたか否かを判定するＲｑｃｈｋ状態である。また、プロセッサ１００は、Ｉｄｌｅ状態である。この状態において、アドレスバスの論理状態は、プロセッサ２００によるアドレスバスのみが「０」であり、チップセレクト信号の論理状態は、「１」である。
【００５５】
タイミング（１０）では、プロセッサ２００は、バス権を取得し、メモリへアクセスしているＡｃｃｅｓｓ状態である。一方、プロセッサ１００は、Ｉｄｌｅ状態である。この状態において、アドレスバスの論理状態は、プロセッサ２００によるアドレスバスのみが「０」であり、チップセレクト信号の論理状態は、「０」である。
【００５６】
タイミング（１１）では、プロセッサ２００が、メモリへのアクセスを終了しており、Ｉｄｌｅ状態である。また、プロセッサ１００も、Ｉｄｌｅ状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「１」である。
【００５７】
［実施例２の効果］
上述してきたように、実施例２では、メモリバス監視制御回路１２１は、プロセッサ１００及び２００によって共有される外部メモリ３００と各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。メモリバス監視制御回路１２１は、バスが未使用であると判定した場合には、バスリクエスト付加回路１２２に、プロセッサ１００がバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信するように指示する。メモリバス監視制御回路１２１は、バスが未使用であり、かつ、バスリクエスト付加回路１２２によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。メモリ制御回路１２４は、メモリバス監視制御回路１２１によってバス権の取得が成功したと判定された場合に、プロセッサ１００がメモリにアクセスするよう制御する。したがって、実施例２では、調停用の信号線を用いなくても、プロセッサ間でメモリを共有することができる。
【００５８】
また、実施例２では、各プロセッサにおいて調停用のソフトウェアが不要である。したがって、実施例２に係る電子装置では、メモリドライバやソフトウェアの開発負担を低減することが可能である。
【００５９】
また、実施例２では、プロセッサ間でメモリを共有できるので、プロセッサごとにメモリを設けなくてもよい。したがって、実施例２によれば、プロセッサ数に応じてメモリの個数を増加させる必要がなく、コストや実装面積を減らすことが可能である。
【００６０】
また、実施例２における電子装置は、バス制御装置に回路を追加することで実現することができる。したがって、実施例２によれば、電子装置をマスタとスレーブの関係で構築する必要はない。すなわち、実施例２によれば、マスタとスレーブの関係で構築された電子装置において生じる、マスタプロセッサのへの負荷を解消することが可能である。
【００６１】
なお、実施例２で説明した電子装置は、プロセッサ１００とプロセッサ２００とでメモリを共有する構成として説明した。しかし、電子装置は、プロセッサの台数を２台に限定せず、３つ以上のプロセッサを有するように構成されてもよい。
【００６２】
また、実施例２で説明した電子装置は、例えば、マザーボードや携帯電話機として実現されてもよい。
【実施例３】
【００６３】
［実施例３に係る電子装置の概要］
実施例２では、プロセッサ１００及び２００からから外部メモリ３００へアクセスする場合における、外部メモリ３００へのバス権を調停する機構について説明した。また、実施例２に係る電子装置では、各プロセッサは、優先度に差がない演算を実行すると仮定した。ところで、電子装置において、各プロセッサは、優先度が異なる演算を実行する場合や順序に依存関係がある演算を実行する場合がある。そこで、実施例３では、電子装置において、特定のプロセッサが優先的に外部メモリへアクセスすることができるようにする調停機構について説明する。
【００６４】
［実施例３に係る電子装置の構成］
次に、図５を用いて、実施例３に係る電子装置の構成を説明する。図５は、実施例３に係る電子装置の構成を示す機能ブロック図である。図５に示すように、実施例３に係る電子装置は、プロセッサ４００と、プロセッサ５００と、外部メモリ６００とを有する。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【００６５】
プロセッサ４００は、プロセッサコア１１０と、バス制御装置４２０と、ＩＯバッファ１３０とを有する。バス制御装置４２０は、メモリバス監視制御回路４２１と、バスリクエスト付加回路１２２と、入出力制御回路１２３と、メモリ制御回路４２４とを有する。
【００６６】
メモリバス監視制御回路４２１は、実施例３で説明したメモリバス監視制御回路１２１が有する機能に加え、以下の機能をさらに有する。メモリバス監視制御回路４２１は、アドレスデコード回路４２１ａと、優先アクセス設定レジスタ４２１ｂとを有する。
【００６７】
優先アクセス設定レジスタ４２１ｂは、プロセッサ５００が外部メモリ６００へ優先的にアクセスすることを示す優先アクセス情報を記憶する。
【００６８】
図６Ｂは、優先アクセス設定レジスタ４２１ｂによって記憶されるデータの一例を示す図である。実施例３では、ｂｉｔ０に外部バス優先状態ビットを割り付けて使用する。ここで、外部バス優先状態ビットの値が「０」の場合には、外部バスが優先状態ではないことを示す。一方、外部バス優先状態ビットの値が「１」の場合には、外部バスが優先されていることを示す。
【００６９】
アドレスデコード回路４２１ａは、メモリバス監視制御回路４２１によってバス権の取得が成功したと判定された場合に、プロセッサ５００に設けられている優先アクセス設定レジスタ５２１ｂに優先アクセス情報を記憶させる。また、アドレスデコード回路４２１ａは、メモリバス監視制御回路４２１によって優先アクセスが終了したと判定された場合には、プロセッサ５００に設けられている優先アクセス設定レジスタ５２１ｂに記憶された優先アクセス情報を消去する。
【００７０】
図６Ａは、実施例３に係る外部メモリ６００が有するメモリ空間を説明するための図である。図６Ａに示すように、外部メモリ６００のメモリ空間は、プロセッサ４００によってデータを書き込まれた空間と、プロセッサ５００によってデータを書き込まれた空間と、未使用の空間と、プロセッサ５００の優先アクセス設定レジスタに対して書き込むことが可能な空間とを有する。また、各空間にはアドレスが割り振られている。例えば、プロセッサ４００の使用空間のアドレスは、「０ｘ００００＿００００」である。また、プロセッサ５００の使用空間のアドレスは、「０ｘ１０００＿００００」である。また、未使用の空間のアドレスは、「０ｘ２０００＿００００」である。さらに、優先アクセス設定レジスタの使用空間のアドレスは、「０ｘ３ＦＦＦ＿ＦＦＦＦ」である。
【００７１】
実施例２では、メモリバス監視制御回路４２１は、プロセッサ５００によって優先アクセス設定レジスタ４２１ｂにプロセッサ５００の優先アクセス情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。一方、メモリバス監視制御回路４２１は、優先アクセス設定レジスタ４２１ｂにプロセッサ５００の優先アクセス情報が記憶されている場合には、外部バス優先状態ビットの値が「１」に書き換えられるまで優先アクセス設定レジスタ４２１ｂを読み続ける。
【００７２】
メモリ制御回路４２４は、実施例２で説明したメモリ制御回路１２４が有する機能に加え、さらに以下の機能を有する。実施例３では、メモリ制御回路４２４は、優先アクセス状態である場合には、バスの使用状態を判定することなく、引き続き、外部メモリ６００へアクセスする。
【００７３】
プロセッサ５００は、プロセッサ４００と同様の構成を有する。プロセッサ５００は、プロセッサコア２１０と、バス制御装置５２０と、ＩＯバッファ２３０とを有する。また、バス制御装置５２０は、メモリバス監視制御回路５２１と、バスリクエスト付加回路２２２と、入出力制御回路２２３と、メモリ制御回路５２４とを有する。メモリバス監視制御回路５２１は、アドレスデコード回路５２１ａと、優先アクセス設定レジスタ５２１ｂとを有する。ここで、プロセッサコア２１０は、プロセッサコア１１０に対応する。バス制御装置５２０は、バス制御装置４２０に対応する。また、ＩＯバッファ２３０は、ＩＯバッファ１３０に対応する。メモリバス監視制御回路５２１は、メモリバス監視制御回路４２１に対応する。バスリクエスト付加回路２２２は、バスリクエスト付加回路１２２に対応する。入出力制御回路２２３は、入出力制御回路１２３に対応する。メモリ制御回路５２４は、メモリ制御回路４２４に対応する。アドレスデコード回路５２１ａは、アドレスデコード回路４２１ａに対応する。優先アクセス設定レジスタ５２１ｂは、優先アクセス設定レジスタ４２１ｂに対応する。
【００７４】
外部メモリ６００は、実施例２で説明した外部メモリ３００と同様の機能を有する。
【００７５】
［実施例３に係る電子装置によって行われる優先アクセス設定処理の処理手順］
次に、図７を用いて、実施例３に係る電子装置によって行われる優先アクセス設定処理の処理手順を説明する。図７は、実施例３に係る電子装置によって行われる優先アクセス設定処理の処理手順を示すフローチャートである。
【００７６】
メモリ制御回路４２４は、プロセッサコア１１０から外部メモリへのアクセス要求を受付けた場合（ステップＳ２０１、Ｙｅｓ）、メモリバス監視制御回路４２１に、バス権を取得させる（ステップＳ２０２）。バス権を取得できた場合、アドレスデコード回路４２１ａは、プロセッサ５００のメモリバス監視制御回路５２１にある優先アクセス設定レジスタ５２１ｂに自装置の優先状態を通知する書き込みを行う（ステップＳ２０３）。
【００７７】
続いて、メモリ制御回路４２４は、外部メモリへアクセスを行う（ステップＳ２０４）。ここで、メモリバス監視制御回路４２１は、優先アクセスが終了したか否かを判定する（ステップＳ２０５）。優先アクセスが終了したと判定した場合（ステップＳ２０５、Ｙｅｓ）、アドレスデコード回路４２１ａは、プロセッサ５００のメモリバス監視制御回路５２１にある優先アクセス設定レジスタ５２１ｂに自装置の優先状態が終了を通知する書き込みを行う（ステップＳ２０６）。一方、優先アクセスが終了していないと判定した場合（ステップＳ２０５、Ｎｏ）、メモリ制御回路４２４は、引き続き、外部メモリ６００へアクセスを行う。
【００７８】
［実施例３に係る電子装置によって行われるバス権取得処理の処理手順］
次に、実施例３に係る電子装置によって行われるバス権取得処理の処理手順について説明する。図８は、実施例３に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。なお、ここで説明する処理は、図７のステップＳ２０２に対応する。
【００７９】
メモリ制御回路４２４は、バス権取得要求を受付けた場合、メモリバス監視制御回路４２１に、優先アクセス設定レジスタ４２１ｂを読ませる（ステップＳ３０１）。メモリバス監視制御回路４２１は、外部プロセッサが優先アクセス状態であるか否か判定する（ステップＳ３０２）。ここで、メモリバス監視制御回路４２１は、外部プロセッサに優先アクセス権が設定されていると判定した場合には（ステップＳ３０２、Ｙｅｓ）、外部プロセッサの優先アクセス権が解除されるまで、優先アクセス設定レジスタ４２１ｂを繰り返し判定する。一方、外部プロセッサが優先アクセス状態ではないと判定した場合（ステップＳ３０２、Ｎｏ）、メモリバス監視制御回路４２１は、チップセレクト信号の論理状態とアドレスバスの論理状態を取得する（ステップＳ３０３）。ここで、ステップＳ３０１及びＳ３０２をＰｒｉＣｈｋ状態とする。
【００８０】
メモリバス監視制御回路４２１は、取得したアドレスバスとチップセレクト信号の論理状態を判定する（ステップＳ３０４）。ここで、チップセレクト信号の論理状態が１であり、かつ、アドレスバスの論理状態も「１」であった場合（ステップＳ３０４、Ｙｅｓ）、メモリバス監視制御回路４２１は、バスリクエスト付加回路１２２に、バス権要求信号を出力させる（ステップＳ３０５）。一方、メモリバス監視制御回路４２１は、チップセレクト信号とアドレスバスの論理状態のどちらか一方でも「１」ではないと判定した場合には、再度、アドレスバスとチップセレクト信号を取得する（ステップＳ３０４、Ｎｏ）。ここで、ステップＳ３０３及びＳ３０４をＢｕｓＣｈｋ状態とする。また、ステップＳ３０５をＲｅｑ状態とする。
【００８１】
メモリバス監視制御回路４２１は、バス権要求信号を出力した後に、再度、チップセレクト信号とアドレスバスの論理状態を取得する（ステップＳ３０６）。続いて、メモリバス監視制御回路４２１は、取得したチップセレクト信号とアドレスバスの論理状態を判定する（ステップＳ３０７）。ここで、チップセレクト信号の論理状態が「１」であり、バス権要求信号を出力したアドレスバスの論理状態のみが「０」であった場合（ステップＳ３０７、Ｙｅｓ）、メモリバス監視制御回路４２１は、バス権を取得できたと判定する（ステップＳ３０８）。一方、バス権要求信号を出力したアドレスバスの論理状態以外も「０」であった場合（ステップＳ３０７、Ｎｏ）、メモリバス監視制御回路４２１は、バス権取得要求を取り消し（ステップＳ３０９）、続いて、メモリバス監視制御回路４２１は、アドレスバスとチップセレクト信号を再取得する（ステップＳ３０３）。ここで、ステップＳ３０６及び３０７をＲｅｑｃｈｋ状態とする。また、ステップＳ３０８をＡｃｃｅｓｓ状態とする。また、ステップＳ３０９をＩｄｌｅ状態とする。
【００８２】
［実施例３の効果］
上述したように、実施例３に係る電子装置において、プロセッサ４００の優先アクセス設定レジスタ４２１ｂは、プロセッサ５００による外部メモリ６００へのアクセスを優先させることを示す優先アクセス情報を記憶する。また、メモリバス監視制御回路４２１は、バス権の取得が成功した場合には、プロセッサ５００に設けられている優先アクセス設定レジスタ５２１ｂに優先アクセス情報を記憶させるアドレスデコード回路４２１ａを有する。メモリバス監視制御回路４２１は、プロセッサ５００に設けられているバス制御装置５２０よって自装置の優先アクセス設定レジスタ４２１ｂに優先アクセス情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。メモリ制御回路４２４は、アドレスデコード回路４２１ａによってプロセッサ５００に設けられているバス制御装置５２０の優先アクセス設定レジスタ５２１ｂに前記優先アクセス情報が記憶された場合には、プロセッサ４００が優先的に外部メモリ６００にアクセスするように制御する。したがって、実施例３に係る電子装置において、プロセッサ４００及び５００は、優先アクセス情報が記憶されている場合には、外部メモリ６００の使用状態を判定することなく、優先的にバス権を取得することが可能である。
【００８３】
なお、本実施例では、プロセッサ４００とプロセッサ５００との２台で外部メモリ６００への優先アクセス設定について説明したが、３台以上で外部メモリ６００へアクセス権の優先状態を設定する場合にも適用可能である。かかる場合には、優先アクセス設定レジスタには、接続するプロセッサの台数分外部バス優先状態ビットを設ける。そして、バス権を取得したプロセッサは、その他の全てのプロセッサに対して、ビットの値が外部バス優先状態を示す「１」を書き込む。
【実施例４】
【００８４】
［実施例４に係る電子装置の概要］
次に、実施例４として、２台のプロセッサと外部メモリとを同一バス上で接続して構築される電子装置において、一方のプロセッサが休止状態になる際の、バス権調停機構について説明する。かかる場合には、休止状態にあるプロセッサは、動作状態にあるプロセッサに通知する。その結果、動作状態にあるプロセッサは、バスの使用状態を判定することなく、バス権を取得することができる。
【００８５】
［実施例４に係る電子装置の構成］
次に、図９を用いて、実施例４に係る電子装置の構成を説明する。図９は、実施例４に係る電子装置の構成を示す機能ブロック図である。図９に示すように、実施例４に係る電子装置は、プロセッサ７００と、プロセッサ８００と、外部メモリ９００とを有する。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【００８６】
プロセッサ７００は、プロセッサコア１１０と、バス制御装置７２０と、ＩＯバッファ１３０とを有する。バス制御装置７２０は、メモリバス監視制御回路７２１と、バスリクエスト付加回路１２２と、入出力制御回路１２３と、メモリ制御回路７２４とを有する。
【００８７】
メモリバス監視制御回路７２１は、実施例２で説明したメモリバス監視制御回路１２１が有する機能に加え、以下の機能をさらに有する。メモリバス監視制御回路７２１は、アドレスデコード回路７２１ａと、外部バス休止設定レジスタ７２１ｂとを有する。
【００８８】
外部バス休止設定レジスタ７２１ｂは、プロセッサ８００が休止状態であることを示す休止状態情報を記憶する。
【００８９】
図１０は、外部バス休止設定レジスタ７２１ｂによって記憶されるデータの一例を示す図である。図１０に示すように、外部バス休止設定レジスタ７２１ｂは、複数のビットを有する。実施例４では、ｂｉｔ０が、プロセッサ８００が休止状態であることを示す外部バス休止状態ビットとして用いられる。ここで、外部バスが動作状態である場合には、外部バス休止状態ビットには「０」が設定される。一方、外部バスが休止状態である場合には、外部バス休止状態ビットには「１」が設定される。
【００９０】
アドレスデコード回路７２１ａは、プロセッサ７００が休止状態となる際に、プロセッサ８００に設けられているバス制御装置８２０の外部バス休止設定レジスタ８２１ｂに休止状態情報を記憶させる。また、アドレスデコード回路７２１ａは、プロセッサ７００が休止状態を解除した場合には、外部バス休止設定レジスタ８２１ｂの休止状態情報を消去する。
【００９１】
実施例４では、メモリバス監視制御回路７２１は、他のプロセッサに設けられているバス制御装置によって休止状態情報が記憶されていない場合には、バスが未使用であるか否かを判定する。
【００９２】
プロセッサ８００は、プロセッサ７００と同様の構成を有する。プロセッサ８００が内部に有する各構成要素についての重複する説明は省略する。プロセッサ８００は、プロセッサコア２１０と、バス制御装置８２０と、ＩＯバッファ２３０とを有する。また、バス制御装置８２０は、メモリバス監視制御回路８２１と、バスリクエスト付加回路２２２と、入出力制御回路２２３と、メモリ制御回路８２４とを有する。メモリバス監視制御回路８２１は、アドレスデコード回路８２１ａと、外部バス休止設定レジスタ８２１ｂとを有する。ここで、プロセッサコア２１０は、プロセッサコア１１０に対応する。バス制御装置８２０は、バス制御装置７２０に対応する。また、ＩＯバッファ２３０は、ＩＯバッファ１３０に対応する。メモリバス監視制御回路８２１は、メモリバス監視制御回路７２１に対応する。バスリクエスト付加回路２２２は、バスリクエスト付加回路１２２に対応する。入出力制御回路２２３は、入出力制御回路１２３に対応する。メモリ制御回路８２４は、メモリ制御回路７２４に対応する。アドレスデコード回路８２１ａは、アドレスデコード回路７２１ａに対応する。外部バス休止設定レジスタ８２１ｂは、外部バス休止設定レジスタ７２１ｂに対応する。
【００９３】
外部メモリ９００は、実施例２で説明した外部メモリ３００と同様の機能を有する。
【００９４】
［実施例４に係る電子装置によって行われる休止状態設定処理の処理手順］
次に、図１１を用いて、実施例４に係る電子装置によって行われる休止状態設定処理の処理手順を説明する。図１１は、実施例４に係る電子装置によって行われる休止状態設定処理の処理手順を示すフローチャートである。
【００９５】
メモリ制御回路７２４は、プロセッサコア１１０から休止設定要求を受付けた場合（ステップＳ４０１、Ｙｅｓ）、メモリバス監視制御回路７２１に、外部バス休止設定レジスタ７２１ｂに自装置の休止設定を通知する書き込みを行わせる（ステップＳ４０２）。
【００９６】
メモリ制御回路７２４は、休止状態の解除を受付けたか否かを判定する（ステップＳ４０３）。ここで、メモリ制御回路７２４は、休止状態の解除を受付けたと判定した場合（ステップＳ４０３、Ｙｅｓ）、メモリバス監視制御回路７２１に、外部バス休止設定レジスタ７２１ｂに自装置の休止設定の解除を通知する書き込みを行わせる（ステップＳ４０４）。一方、休止状態が終了していないと判定した場合（ステップＳ４０３、Ｎｏ）、メモリ制御回路７２４は、引き続き、休止状態が解除されるのを判定する。
【００９７】
［実施例４に係る電子装置によって行われるバス権取得処理の処理手順］
次に、実施例４に係る電子装置によって行われるバス権取得処理の処理手順について説明する。図１２は、実施例４に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。
【００９８】
メモリ制御回路７２４は、バス権取得要求を受付けた場合（ステップＳ５０１、Ｙｅｓ）、メモリバス監視制御回路７２１に、外部バス休止設定レジスタ７２１ｂを読ませる（ステップＳ５０２）。続いて、メモリバス監視制御回路７２１は、外部プロセッサが休止状態であるか否か判定する（ステップＳ５０３）。ここで、メモリバス監視制御回路７２１は、外部プロセッサが休止状態に設定されていると判定した場合（ステップＳ５０３、Ｙｅｓ）、バス権を取得する（ステップＳ５０９）。一方、メモリバス監視制御回路７２１は、外部プロセッサが休止状態に設定されていないと判定した場合（ステップＳ５０３、Ｎｏ）、アドレスバスとチップセレクト信号の論理状態を取得する（ステップＳ５０４）。
【００９９】
メモリバス監視制御回路７２１は、取得したアドレスバスとチップセレクト信号の論理状態を判定する（ステップＳ５０５）。ここで、チップセレクト信号の論理状態が「１」であり、また、アドレスバスの論理状態も「１」であった場合（ステップＳ５０５、Ｙｅｓ）、メモリバス監視制御回路７２１は、バスリクエスト付加回路１２２に、バス権要求信号を出力させる（ステップＳ５０６）。一方、メモリバス監視制御回路７２１は、チップセレクト信号とアドレスバスの論理状態のどちらか一方でも「１」でないと判定した場合、再度、アドレスバスとチップセレクト信号を取得する（ステップＳ５０５、Ｎｏ）。
【０１００】
メモリバス監視制御回路７２１は、バス権要求信号を出力した後に、再度、チップセレクト信号とアドレスバスの論理状態を取得する（ステップＳ５０７）。続いて、メモリバス監視制御回路７２１は、取得したチップセレクト信号とアドレスバスの論理状態を判定する（ステップＳ５０８）。ここで、チップセレクト信号の論理状態が「１」であり、バス権要求信号を出力したアドレスバスの論理状態のみが「０」であった場合（ステップＳ５０８、Ｙｅｓ）、メモリバス監視制御回路７２１は、バス権を取得できたと判定する（ステップＳ５０９）。一方、バス権要求信号を出力したアドレスバスの論理状態以外も「０」であった場合（ステップＳ５０８、Ｎｏ）、メモリバス監視制御回路７２１は、バス権取得要求を取り消し（ステップＳ５１０）、続いて、メモリバス監視制御回路７２１は、アドレスバスとチップセレクト信号を再取得する（ステップＳ５０４）。
【０１０１】
［実施例４の効果］
上述したように、実施例４に係る電子装置において、プロセッサ７００の外部バス休止設定レジスタ７２１ｂは、プロセッサ８００が休止状態であることを示す休止状態情報を記憶する。プロセッサ７００のアドレスデコード回路７２１ａは、プロセッサ７００が休止状態となる際に、プロセッサ８００に設けられているバス制御装置の外部バス休止設定レジスタ８２１ｂに休止状態情報を記憶させる。メモリバス監視制御回路７２１は、外部バス休止設定レジスタ７２１ｂにプロセッサ８００の休止状態情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。メモリ制御回路７２４は、外部バス休止設定レジスタ７２１ｂにプロセッサ８００の休止状態情報が記憶された場合には、バスの使用状態を判定することなく、プロセッサ７００が優先的に外部メモリ９００にアクセスするよう制御する。したがって、実施例４に係る電子装置において、プロセッサ７００及び８００は、他のプロセッサの休止状態情報が記憶された場合には、バスの使用状態を判定することなく、バス権を取得することが可能である。
【０１０２】
また、マスタとスレーブの関係で構築された電子装置においては、スレーブプロセッサからのメモリアクセス要求を受付けるために、マスタプロセッサは、休止状態にすることができなかった。しかし、実施例４に係る電子装置では、プロセッサごとにバス権を調停することができるので、動作状態にないプロセッサについては、休止状態にすることができる。したがって、実施例４に係る電子装置は、消費電力を低減することが可能である。
【０１０３】
なお、実施例４では、プロセッサ７００とプロセッサ８００との２台での休止状態設定について説明したが、３台以上のプロセッサで休止状態を設定する場合にも適用可能である。この場合には、外部バス休止設定レジスタ７２１ｂの外部バス休止状態ビットを接続するプロセッサの台数分設ける。そして、動作状態にあるプロセッサの外部バス休止設定レジスタの全てのビットの値が外部バス休止状態を示す「１」である場合には、当該プロセッサは、バスの使用状態を判定することなく、バス権を取得することができる。
【符号の説明】
【０１０４】
１０  バス制御装置
１１  第一の判定部
１２  バス権要求部
１３  第二の判定部
１４  アクセス制御部
【図１】
2011108051.tif 000003
【図２】
2011108051.tif 000004
【図３】
2011108051.tif 000005
【図４Ａ】
2011108051.tif 000006
【図４Ｂ】
2011108051.tif 000007
【図５】
2011108051.tif 000008
【図６Ａ】
2011108051.tif 000009
【図６Ｂ】
2011108051.tif 000010
【図７】
2011108051.tif 000011
【図８】
2011108051.tif 000012
【図９】
2011108051.tif 000013
【図１０】
2011108051.tif 000014
【図１１】
2011108051.tif 000015
【図１２】
2011108051.tif 000016