JP2011108051A - バス制御装置、プロセッサ、電子装置及びバス制御方法 - Google Patents
バス制御装置、プロセッサ、電子装置及びバス制御方法 Download PDFInfo
- Publication number
- JP2011108051A JP2011108051A JP2009263382A JP2009263382A JP2011108051A JP 2011108051 A JP2011108051 A JP 2011108051A JP 2009263382 A JP2009263382 A JP 2009263382A JP 2009263382 A JP2009263382 A JP 2009263382A JP 2011108051 A JP2011108051 A JP 2011108051A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- processor
- memory
- access
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】調停用の信号線を用いずに、メモリを共有する。
【解決手段】第一の判定部11は、複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。バス権要求部12は、第一の判定部11によってバスが未使用であると判定された場合に、自装置が設けられているプロセッサがバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信する。第二の判定部13は、第一の判定部11によってバスが未使用であると判定され、かつ、バス権要求部12によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。アクセス制御部14は、第二の判定部13によってバス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサがメモリにアクセスするよう制御する。
【選択図】図1
【解決手段】第一の判定部11は、複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。バス権要求部12は、第一の判定部11によってバスが未使用であると判定された場合に、自装置が設けられているプロセッサがバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信する。第二の判定部13は、第一の判定部11によってバスが未使用であると判定され、かつ、バス権要求部12によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。アクセス制御部14は、第二の判定部13によってバス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサがメモリにアクセスするよう制御する。
【選択図】図1
Description
本発明は、バス制御装置、プロセッサ、電子装置及びバス制御方法に関する。
従来、マルチプロセッサシステムがある。マルチプロセッサシステムは、複数のプロセッサとメモリとを有する。かかるマルチプロセッサシステムでは、プロセッサごとに専用のメモリが設けられる。それぞれのプロセッサにメモリを設けた場合には、プロセッサの数に応じて、メモリの個数が増加する。そして、メモリの個数が増加すると、コストが増加したり、実装スペースが増大してしまう。
マルチプロセッサシステムは、メモリの個数を減らすことを目的として、プロセッサ間でメモリを共有する場合がある。その場合には、例えば、マルチプロセッサシステムは、プロセッサ間でマスタとスレーブの関係を構築する。マスタとスレーブの関係では、マスタ側のプロセッサのみがメモリに接続する。したがって、スレーブ側のプロセッサは、メモリへアクセスする場合には、マスタプロセッサに必要なデータを通信する。
また、マルチプロセッサシステムは、同一バス上で複数のプロセッサが、メモリを共有する場合がある。メモリを共有するマルチプロセッサシステムにおいて、各プロセッサは、メモリを用いて、演算処理に必要な各種のデータを受け渡す。ここで、各プロセッサが同時にメモリへアクセスした場合、データは、バス上で衝突し破壊される可能性がある。そのため、例えば、マルチプロセッサシステムは、調停機構を有する。調停機構は、特定のプロセッサに対してのみメモリへのアクセスを許可することで、アクセス順序を調停する。
調停機構では、各プロセッサは、メモリへアクセス要求できるタイミングを割り当てられる。そして、あるプロセッサがメモリへアクセスする場合には、当該プロセッサは、自身に割り当てられたタイミングでメモリへアクセス要求する。ここで、他のプロセッサがメモリへアクセスしていない場合には、当該プロセッサは、メモリへアクセスすることができる。一方、他のプロセッサが既にメモリへアクセスしていた場合には、当該プロセッサは、次のタイミングを待って再度メモリへアクセス要求する。
しかしながら、上述した従来の技術では、調停用の信号線を用いずに、プロセッサ間でメモリを共有することはできなかった。
例えば、プロセッサ間でマスタとスレーブの関係を構築した場合には、マスタ側のプロセッサは、スレーブ側のプロセッサとの間でメモリアクセス信号を送受信するための信号線を用いる。また、従来の調停機構は、メモリへのアクセス状態を各プロセッサに通知するための専用信号を用いる。すなわち、従来の技術では、調停用の信号線を用いなければ、プロセッサ間でメモリを共有することはできなかった。
開示の技術は、上記に鑑みてなされたものであって、調停用の信号線を用いずに、プロセッサ間でメモリを共有することができるバス制御装置、プロセッサ、電子装置及びバス制御方法を提供することを目的とする。
本願の開示するバス制御装置、プロセッサ、電子装置及びバス制御方法は、複数のプロセッサによって共有される外部メモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。また、バス制御装置、プロセッサ、電子装置及びバス制御方法は、バスが未使用であると判定された場合に、バスを介してメモリへアクセスすることを要求するバス権要求信号をバスに送信する。そして、バス制御装置、プロセッサ、電子装置及びバス制御方法は、バス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定し、プロセッサがメモリにアクセスするよう制御する。
本願の開示するバス制御装置、プロセッサ、電子装置及びバス制御方法によれば、バス権調停用の信号線を用いなくても、プロセッサ間でメモリを共有することができるという効果を奏する。
以下に、本願の開示するバス制御装置、プロセッサ、電子装置及びバス制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、図1を用いて、実施例1に係るバス制御装置の構成について説明する。図1は、実施例1に係るバス制御装置の構成を示す機能ブロック図である。図1に示すように、実施例1に係るバス制御装置10は、第一の判定部11と、バス権要求部12と、第二の判定部13と、アクセス制御部14とを有する。
第一の判定部11は、複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。バス権要求部12は、第一の判定部11によってバスが未使用であると判定された場合に、自装置が設けられているプロセッサがバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信する。第二の判定部13は、第一の判定部11によってバスが未使用であると判定され、かつ、バス権要求部12によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。アクセス制御部14は、第二の判定部13によってバス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサがメモリにアクセスするよう制御する。
すなわち、実施例1に係るバス制御装置10では、メモリに接続されたバスの信号を監視して、バスの使用状態を判定する。そして、バス制御装置10は、バスが未使用であれば、メモリにアクセスするためのバス権をバス経由で要求する。したがって、実施例1に係るバス制御装置10によれば、調停用の信号線を用いずに、プロセッサ間でメモリを共有することができる。
次に、実施例2として、電子装置のバス制御方法について説明する。実施例2に係る電子装置は、2台のプロセッサと外部メモリとを有する。各プロセッサと外部メモリとは、同一バス上で接続される。なお、実施例2に係る電子装置において、2台のプロセッサが実行する演算の優先度に差はないと仮定する。以下では、実施例2に係る電子装置の構成、電子装置の処理の流れを順に説明し、最後に実施例2の効果を説明する。
[実施例2に係る電子装置の構成]
図2を用いて、実施例2に係る電子装置の構成を説明する。図2は、実施例2に係る電子装置の構成を示す機能ブロック図である。図2に示すように、電子装置は、プロセッサ100と、プロセッサ200と、外部メモリ300とを有する。また、プロセッサ100と、プロセッサ200と、外部メモリ300とは、バスを介して接続される。
図2を用いて、実施例2に係る電子装置の構成を説明する。図2は、実施例2に係る電子装置の構成を示す機能ブロック図である。図2に示すように、電子装置は、プロセッサ100と、プロセッサ200と、外部メモリ300とを有する。また、プロセッサ100と、プロセッサ200と、外部メモリ300とは、バスを介して接続される。
プロセッサ100及び200と外部メモリ300とを接続するバスは、データバス、アドレスバス、制御バス、チップセレクトバスを有する。データバスは、外部メモリ300に対して読み書きされるデータの伝送路である。アドレスバスは、外部メモリ300のどの位置に対してデータの読み書きを行うかを指定する情報の伝送路である。また、チップセレクトバスは、データバスが特定のプロセッサに対して割り当てられたことを通知するチップセレクト信号の伝送路である。制御バスは、外部メモリ300に対して、データの読み込み又はデータの書き込みのいずれを行うかを指示する伝送路である。
プロセッサ100は、外部メモリ300に格納されている情報に基づいて、各種の演算処理を実行する。また、プロセッサ100は、演算処理した結果を外部メモリ300に格納する。ここで、プロセッサ100は、プロセッサコア110と、バス制御装置120と、IO(Input Output)バッファ130とを有する。
プロセッサコア110は、外部メモリ300に格納されている情報に基づいて、演算を実行する。例えば、プロセッサコア110は、外部メモリ300から情報を読み出す場合には、バス制御装置120に読み出し用のアクセス要求を転送する。また、プロセッサコア110は、演算結果を外部メモリ300へ書き込む場合には、バス制御装置120に書き込み用のアクセス要求を転送する。
バス制御装置120は、プロセッサコア110から外部メモリ300へのアクセス要求を受け取ると、外部メモリ300へのバス権の調停を行う。ここで、バス権とは、外部メモリ300と接続されたバスを使用する権利である。また、バス権の調停とは、特定のプロセッサに対してのみ、バス権を与え、外部メモリ300へアクセスを許可することを意味する。また、バス制御装置120は、プロセッサコア110から転送されたアクセス要求を解析する。ここで、アクセス要求は、読み込み又は書き込みを行う外部メモリ300のアドレスと、読み込み又は書き込みを指示する制御内容とを有する。
バス制御装置120は、バス権を取得した場合には、読み込み又は書き込みを行う外部メモリ300のアドレス、読み込み又は書き込みを指示する制御内容及びデータを転送するために、バスを制御する。なお、バス制御装置120は、アドレスバスと、チップセレクトバスと、データバスと、制御バスとを制御する。バス制御装置120は、メモリバス監視制御回路121と、バスリクエスト付加回路122と、入出力制御回路123と、メモリ制御回路124とを有する。
メモリバス監視制御回路121は、プロセッサ100及び200によって共有される外部メモリ300と各プロセッサとを接続するバスの信号を監視することで、バスが未使用であるか否かを判定する。また、メモリバス監視制御回路121は、後述するバスリクエスト付加回路122によってバス権要求信号がバスに送信された結果、バス権の取得が成功したか否かを判定する。
例えば、メモリバス監視制御回路121は、アドレスバス及びチップセレクト信号の論理状態に基づいて、バスが未使用であるか否かを判定する。なお、ここでいう論理状態は、信号を表す電圧レベルに対応する。つまり、信号の電圧レベルがHighの場合には、論理状態を「0」とし、信号の電圧レベルがLowの場合には、論理状態は「1」とする。
例えば、アドレスバスが有する複数のアドレス信号のうち、いずれのアドレス信号も使用されていない場合には、各アドレス信号の論理状態は、いずれも「1」となる。また、一部のアドレス信号のみが使用されている場合には、使用されているアドレス信号の論理状態は、「1」となり、他のアドレス信号は、全て「0」となる。また、いずれのプロセッサも外部メモリ300にアクセスしていない場合には、チップセレクト信号の論理状態は、「1」となる。また、いずれかのプロセッサが外部メモリ300にアクセスしている場合には、チップセレクト信号の論理状態は、「0」となる。
メモリバス監視制御回路121は、バスが未使用であると判定した場合には、バス権の要求を行う。具体的には、メモリバス監視制御回路121は、バスリクエスト付加回路122がバス権要求信号をバスに送信するように指示する。また、メモリバス監視制御回路121は、入出力制御回路123がバス権要求信号の出力を制御するように指示する。メモリバス監視制御回路121は、バス権を要求した後、バス権が取得できたか否かを判定する。
また、メモリバス監視制御回路121は、バス権を取得できなかった場合には、バス権要求信号をリセットする。なお、バス権を取得できなかった場合とは、プロセッサ100とプロセッサ200とが、同時にバス権取得要求を行った場合である。続いて、所定の時間の経過後に、メモリバス監視制御回路121は、バス権を再要求することを目的として、バスの使用状態を判定する。ここで、プロセッサ100及び200は、バス権を再要求するタイミングが同じであった場合には、バス権要求が重なり続けるため、バス権取得を失敗し続ける可能性がある。そこで、メモリバス監視制御回路121は、バス権の要求をリセットした後、バス権を再要求するまでの所定の時間をプロセッサ間で異なるように設定する。なお、メモリバス監視制御回路121に設定されるバス権要求のタイミングは、利用者によって任意に設定可能である。
バスリクエスト付加回路122は、外部メモリ300へアクセスするためのバス権を要求する指示をメモリバス監視制御回路121から受付けると、バス権要求信号を送信する。バスリクエスト付加回路122は、アドレスバスと接続されており、アドレスバスが有するアドレスのうち一つをバス権の要求に使用する。なお、各プロセッサは、どのアドレスバスをバス権要求信号として使用するかはプロセッサごとに事前に決められていることとする。
入出力制御回路123は、IOバッファ130を制御することで、バス権要求信号を出力させる。例えば、入出力制御回路123は、メモリバス監視制御回路121からバス権要求がない状態では、入力制御する。例えば、入出力制御回路123は、アドレスバスをハイインピーダンス状態に維持する。つまり、入出力制御回路123は、アドレスバスとIOバッファ130の出力信号線を導通させない。したがって、アドレスバス上にある情報は転送されない。また、入出力制御回路123は、メモリバス監視制御回路121によって、バスリクエストを受付けた場合には、アドレスバスのハイインピーダンス状態を解除する。つまり、入出力制御回路123は、アドレスバスとIOバッファ130の出力信号線を電気的に導通させる。その結果、バスリクエスト付加回路122は、バス権要求信号を送信することができる。
メモリ制御回路124は、プロセッサコア110から外部メモリ300へのアクセス要求を受け取る。メモリ制御回路124は、アクセス要求に基づいて、転送先の外部メモリ300のアドレスと、読み込み又は書き込みを指示する制御内容を解析する。また、メモリ制御回路124は、メモリバス監視制御回路121に対して、バス権を取得するように指示する。メモリ制御回路124は、メモリバス監視制御回路121によってバス権の取得が成功したと判定された場合には、バスを制御する。その結果、メモリ制御回路124は、プロセッサコア110から転送された、外部メモリ300のアドレス及び、読み込み又は書き込みを指示する制御内容を転送することができる。
IOバッファ130は、プロセッサ100と外部メモリ300との間を転送されるデータのインターフェースである。例えば、IOバッファ130は、プロセッサコア110から入力された「1」と「0」からなる二値の情報を「High」と「Low」との2種類の電圧からなるデータに変換して、所定のタイミングで外部メモリ300へ出力する。また、IOバッファ130は、外部メモリ300から入力される「High」と「Low」との2種類の電圧からなるデータを「1」と「0」からなる二値の情報に変換し、プロセッサコア110に入力する。
プロセッサ200は、プロセッサ100と同様の構成を有する。プロセッサ200が内部に有する各構成要素についての重複する説明は省略する。プロセッサ200は、プロセッサコア210と、バス制御装置220と、IOバッファ230とを有する。また、バス制御装置220は、メモリバス監視制御回路221と、バスリクエスト付加回路222と、入出力制御回路223と、メモリ制御回路224とを有する。ここで、プロセッサコア210は、プロセッサコア110に対応する。バス制御装置220は、バス制御装置120に対応する。また、IOバッファ230は、IOバッファ130に対応する。メモリバス監視制御回路221は、メモリバス監視制御回路121に対応する。バスリクエスト付加回路222は、バスリクエスト付加回路122に対応する。入出力制御回路223は、入出力制御回路123に対応する。メモリ制御回路224は、メモリ制御回路124に対応する。
外部メモリ300は、主記憶装置である。例えば、外部メモリ300は、プロセッサが実行するプログラムやデータなどの情報を保存する。また、外部メモリ300は、メモリ空間を有している。そして、外部メモリ300が有するメモリ空間には、1バイトごとにアドレスが割り振られている。したがって、外部メモリ300は、割り振られたアドレスに基づいて、プロセッサ100及びプロセッサ200からのアクセスを受付けることができる。外部メモリ300は、プロセッサ100及びプロセッサ200によって指定されたアドレスへの読み出し要求及び書き込み要求に基づいて情報の読み出し及び情報の書き込みを行う。例えば、外部メモリ300は、RAM(Random Access Memory)やROM(Read Only Memory)である。
[実施例2に係る電子装置によって行なわれるバス権取得処理の処理手順]
次に、図3を用いて、実施例2に係る電子装置によって行なわれるバス権取得処理の処理手順を説明する。図3の(A)は、実施例2に係る電子装置によって行なわれるバス権取得処理の処理手順を示すフローチャートである。
次に、図3を用いて、実施例2に係る電子装置によって行なわれるバス権取得処理の処理手順を説明する。図3の(A)は、実施例2に係る電子装置によって行なわれるバス権取得処理の処理手順を示すフローチャートである。
メモリ制御回路124は、プロセッサコア110から外部メモリへのアクセス要求を受付けた場合(ステップS101、Yes)、メモリバス監視制御回路121に、アドレスバスとチップセレクト信号の論理状態を取得させる(ステップS102)。
メモリバス監視制御回路121は、取得したアドレスバスとチップセレクト信号の論理状態を判定する(ステップS103)。ここで、チップセレクト信号の論理状態が「1」であり、また、アドレスバスの論理状態も「1」であった場合(ステップS103、Yes)、メモリバス監視制御回路121は、バスリクエスト付加回路122に、バス権要求信号を出力するように指示する(ステップS104)。一方、メモリバス監視制御回路121は、チップセレクト信号とアドレスバスの論理状態のどちらか一方でも「1」でないと判定した場合、再度、アドレスバスとチップセレクト信号を取得する(ステップS103、No)。
メモリバス監視制御回路121は、バス権要求信号を出力した後に、再度、チップセレクト信号とアドレスバスの論理状態を取得する(ステップS105)。続いて、メモリバス監視制御回路121は、取得したチップセレクト信号とアドレスバスの論理状態を判定する(ステップS106)。ここで、チップセレクト信号の論理状態が「1」であり、バス権要求信号を出力したアドレスバスの論理状態のみが「0」であった場合には(ステップS106、Yes)、メモリバス監視制御回路121は、バス権を取得できたと判定する(ステップS107)。一方、バス権要求信号を出力したアドレスバスの論理状態以外のアドレスバスの論理状態も「0」であった場合には(ステップS106、No)、メモリバス監視制御回路121は、バス権取得要求を取り消し(ステップS108)、続いて、メモリバス監視制御回路121は、アドレスバスとチップセレクト信号を再取得する(ステップS102)。
また、図3の(B)は、フローチャートの各ステップにおける処理の状態を示す図である。まず、ステップS101とS108において、バス制御装置120は、バスの使用状態をチェックしておらず、またバス権の要求も取得もしていない。すなわち、ステップS101とS108において、バス制御装置120は、Idle状態である。また、ステップS102とS103は、アドレスバスとチップセレクト信号をチェックするBusChk状態である。また、ステップS104は、バス権を要求する、Req状態である。また、ステップS105とS106は、バス権を取得できたか否かを判定するRqchk状態である。そして、ステップS107は、バス権を取得し、メモリへアクセスしているAccess状態である。
[実施例2に係る電子装置によって行われる動作タイミング]
次に、実施例2に係る電子装置によって行われる基本動作の状態変化を説明する。ここでは、プロセッサ100が外部メモリ300へアクセスした後に、プロセッサ200が外部メモリ300へアクセスする場合を説明する。
次に、実施例2に係る電子装置によって行われる基本動作の状態変化を説明する。ここでは、プロセッサ100が外部メモリ300へアクセスした後に、プロセッサ200が外部メモリ300へアクセスする場合を説明する。
図4Aは、実施例2に係る電子装置によって行われる基本動作の状態変化を示す図(1)である。図2に示す「バスアクセス」は、外部メモリ300へアクセスするプロセッサを示す。また、「アドレスバス」は、アドレスバスの使用状態を示す。「チップセレクト信号」は、チップセレクト信号の論理状態を示す。また「バス制御装置120」は、プロセッサ100のバス制御装置120の処理状態を示す。同様に、「バス制御装置220」は、プロセッサ200のバス制御装置220の処理状態を示す。ここで、説明を容易にするために、時間経過に基づいて動作のタイミングをタイミング(1)からタイミング(9)の過程に分けて説明する。まず、図4Aの基本動作について説明する。
タイミング(1)では、プロセッサ100及びプロセッサ200は、ともに外部メモリ300へアクセスしておらず、ともにIdle状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。タイミング(2)では、プロセッサ100は、バスの使用状態を判定するBusChk状態である。また、プロセッサ200は、Idle状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態はともに「1」である。
タイミング(3)では、プロセッサ100が、バス権取得を要求するReq状態、及びバス権を取得できたか否かを判定するRqchk状態である。また、プロセッサ200は、Idle状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ100によって要求されたアドレスバスのみが「0」であり、チップセレクト信号の論理状態は「1」である。
タイミング(4)では、プロセッサ100が、バス権を取得し、メモリへアクセスするAccess状態である。また、プロセッサ200は、Idle状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ100によって要求されたアドレスバスのみが「0」であり、チップセレクト信号の論理状態は「0」である。タイミング(5)では、プロセッサ100が、メモリへのアクセスを終了しており、Idle状態である。また、プロセッサ200は、Idle状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。
タイミング(6)では、プロセッサ200は、バスの使用状態を判定するBusChk状態である。また、プロセッサ100は、Idle状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態はともに「1」である。
タイミング(7)では、プロセッサ200が、バス権取得を要求するReq状態、及びバス権を取得できたか否かを判定するRqchk状態である。また、プロセッサ100は、Idle状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ200によって要求されたアドレスバスのみが「1」であり、チップセレクト信号の論理状態は、「1」である。
タイミング(8)では、プロセッサ200が、バス権を取得し、メモリへアクセスするAccess状態である。また、プロセッサ100は、Idle状態である。かかる状態において、アドレスバスの論理状態は、プロセッサ200によって要求されたアドレスバスのみが「0」であり、チップセレクト信号の論理状態は、「0」である。タイミング(9)では、プロセッサ200が、メモリへのアクセスを終了しており、Idle状態である。また、プロセッサ100は、Idle状態である。かかる状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。
次に、プロセッサ100とプロセッサ200が同時に外部メモリへアクセスする場合の動作タイミングを説明する。図4Bは、実施例2に係る電子装置によって行われる基本動作の状態変化を示す図(2)である。なお、プロセッサ100は、バス権要求をリセットした後、バス権を再要求するまでの時間を、プロセッサ200よりも短く設定する。
図4Bのタイミング(1)では、プロセッサ100及びプロセッサ200は、ともにIdle状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。タイミング(2)において、プロセッサ100及びプロセッサ200は、同時に、バスの使用状態を判定するBusChk状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。
タイミング(3)では、プロセッサ100及びプロセッサ200が、同時に、バス権を要求するReq状態である。続いて、プロセッサ100及びプロセッサ200は、バス権を取得できたかを判定するRqchk状態である。かかる状態では、アドレスバスの論理状態は、プロセッサ100及び200によって要求されたアドレスバスが「0」であり、チップセレクト信号の論理状態は、「1」である。
タイミング(4)では、バス権取得に失敗したプロセッサ100とプロセッサ200が、バス権取得要求をリセットする、Idle状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。続いて、タイミング(5)では、プロセッサ100が、再度、バスの使用状態を判定するBusChk状態である。一方、プロセッサ200は、Idle状態のままである。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。なお、Idle状態から再び、バスの使用状態を判定するまでの待ち時間は、プロセッサごとに異なる値が設定されている。
タイミング(6)では、プロセッサ100が、バス権取得を要求するReq状態、及びバス権を取得できたか否かを判定するRqchk状態である。一方、プロセッサ200は、バスの使用状態を判定するBusChk状態である。かかる状態において、アドレスバスの論理状態は、自装置のアドレスバスのみが「0」であり、チップセレクト信号の論理状態は、「1」である。タイミング(7)では、プロセッサ100が、バス権を取得し、メモリへアクセスしているAccess状態である。一方、プロセッサ200は、バスの使用状態を判定するBusChk状態である。かかる状態において、アドレスバスの論理状態は、自装置のアドレスバスのみが「0」であり、チップセレクト信号の論理状態は、「0」である。
タイミング(8)では、プロセッサ100が、メモリへのアクセスを終了しており、Idle状態である。また、プロセッサ200は、引き続き、バスの使用状態を判定するBusChk状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。
タイミング(9)では、プロセッサ200が、バス権取得を要求するReq状態、及びバス権を取得できたか否かを判定するRqchk状態である。また、プロセッサ100は、Idle状態である。この状態において、アドレスバスの論理状態は、プロセッサ200によるアドレスバスのみが「0」であり、チップセレクト信号の論理状態は、「1」である。
タイミング(10)では、プロセッサ200は、バス権を取得し、メモリへアクセスしているAccess状態である。一方、プロセッサ100は、Idle状態である。この状態において、アドレスバスの論理状態は、プロセッサ200によるアドレスバスのみが「0」であり、チップセレクト信号の論理状態は、「0」である。
タイミング(11)では、プロセッサ200が、メモリへのアクセスを終了しており、Idle状態である。また、プロセッサ100も、Idle状態である。この状態において、アドレスバスとチップセレクト信号の論理状態は、ともに「1」である。
[実施例2の効果]
上述してきたように、実施例2では、メモリバス監視制御回路121は、プロセッサ100及び200によって共有される外部メモリ300と各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。メモリバス監視制御回路121は、バスが未使用であると判定した場合には、バスリクエスト付加回路122に、プロセッサ100がバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信するように指示する。メモリバス監視制御回路121は、バスが未使用であり、かつ、バスリクエスト付加回路122によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。メモリ制御回路124は、メモリバス監視制御回路121によってバス権の取得が成功したと判定された場合に、プロセッサ100がメモリにアクセスするよう制御する。したがって、実施例2では、調停用の信号線を用いなくても、プロセッサ間でメモリを共有することができる。
上述してきたように、実施例2では、メモリバス監視制御回路121は、プロセッサ100及び200によって共有される外部メモリ300と各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する。メモリバス監視制御回路121は、バスが未使用であると判定した場合には、バスリクエスト付加回路122に、プロセッサ100がバスを介してメモリへアクセスするためのバス権を要求するバス権要求信号をバスに送信するように指示する。メモリバス監視制御回路121は、バスが未使用であり、かつ、バスリクエスト付加回路122によって送信されたバス権要求信号のみがバスに送信されている場合に、バス権の取得が成功したと判定する。メモリ制御回路124は、メモリバス監視制御回路121によってバス権の取得が成功したと判定された場合に、プロセッサ100がメモリにアクセスするよう制御する。したがって、実施例2では、調停用の信号線を用いなくても、プロセッサ間でメモリを共有することができる。
また、実施例2では、各プロセッサにおいて調停用のソフトウェアが不要である。したがって、実施例2に係る電子装置では、メモリドライバやソフトウェアの開発負担を低減することが可能である。
また、実施例2では、プロセッサ間でメモリを共有できるので、プロセッサごとにメモリを設けなくてもよい。したがって、実施例2によれば、プロセッサ数に応じてメモリの個数を増加させる必要がなく、コストや実装面積を減らすことが可能である。
また、実施例2における電子装置は、バス制御装置に回路を追加することで実現することができる。したがって、実施例2によれば、電子装置をマスタとスレーブの関係で構築する必要はない。すなわち、実施例2によれば、マスタとスレーブの関係で構築された電子装置において生じる、マスタプロセッサのへの負荷を解消することが可能である。
なお、実施例2で説明した電子装置は、プロセッサ100とプロセッサ200とでメモリを共有する構成として説明した。しかし、電子装置は、プロセッサの台数を2台に限定せず、3つ以上のプロセッサを有するように構成されてもよい。
また、実施例2で説明した電子装置は、例えば、マザーボードや携帯電話機として実現されてもよい。
[実施例3に係る電子装置の概要]
実施例2では、プロセッサ100及び200からから外部メモリ300へアクセスする場合における、外部メモリ300へのバス権を調停する機構について説明した。また、実施例2に係る電子装置では、各プロセッサは、優先度に差がない演算を実行すると仮定した。ところで、電子装置において、各プロセッサは、優先度が異なる演算を実行する場合や順序に依存関係がある演算を実行する場合がある。そこで、実施例3では、電子装置において、特定のプロセッサが優先的に外部メモリへアクセスすることができるようにする調停機構について説明する。
実施例2では、プロセッサ100及び200からから外部メモリ300へアクセスする場合における、外部メモリ300へのバス権を調停する機構について説明した。また、実施例2に係る電子装置では、各プロセッサは、優先度に差がない演算を実行すると仮定した。ところで、電子装置において、各プロセッサは、優先度が異なる演算を実行する場合や順序に依存関係がある演算を実行する場合がある。そこで、実施例3では、電子装置において、特定のプロセッサが優先的に外部メモリへアクセスすることができるようにする調停機構について説明する。
[実施例3に係る電子装置の構成]
次に、図5を用いて、実施例3に係る電子装置の構成を説明する。図5は、実施例3に係る電子装置の構成を示す機能ブロック図である。図5に示すように、実施例3に係る電子装置は、プロセッサ400と、プロセッサ500と、外部メモリ600とを有する。なお、ここでは説明の便宜上、図2に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
次に、図5を用いて、実施例3に係る電子装置の構成を説明する。図5は、実施例3に係る電子装置の構成を示す機能ブロック図である。図5に示すように、実施例3に係る電子装置は、プロセッサ400と、プロセッサ500と、外部メモリ600とを有する。なお、ここでは説明の便宜上、図2に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
プロセッサ400は、プロセッサコア110と、バス制御装置420と、IOバッファ130とを有する。バス制御装置420は、メモリバス監視制御回路421と、バスリクエスト付加回路122と、入出力制御回路123と、メモリ制御回路424とを有する。
メモリバス監視制御回路421は、実施例3で説明したメモリバス監視制御回路121が有する機能に加え、以下の機能をさらに有する。メモリバス監視制御回路421は、アドレスデコード回路421aと、優先アクセス設定レジスタ421bとを有する。
優先アクセス設定レジスタ421bは、プロセッサ500が外部メモリ600へ優先的にアクセスすることを示す優先アクセス情報を記憶する。
図6Bは、優先アクセス設定レジスタ421bによって記憶されるデータの一例を示す図である。実施例3では、bit0に外部バス優先状態ビットを割り付けて使用する。ここで、外部バス優先状態ビットの値が「0」の場合には、外部バスが優先状態ではないことを示す。一方、外部バス優先状態ビットの値が「1」の場合には、外部バスが優先されていることを示す。
アドレスデコード回路421aは、メモリバス監視制御回路421によってバス権の取得が成功したと判定された場合に、プロセッサ500に設けられている優先アクセス設定レジスタ521bに優先アクセス情報を記憶させる。また、アドレスデコード回路421aは、メモリバス監視制御回路421によって優先アクセスが終了したと判定された場合には、プロセッサ500に設けられている優先アクセス設定レジスタ521bに記憶された優先アクセス情報を消去する。
図6Aは、実施例3に係る外部メモリ600が有するメモリ空間を説明するための図である。図6Aに示すように、外部メモリ600のメモリ空間は、プロセッサ400によってデータを書き込まれた空間と、プロセッサ500によってデータを書き込まれた空間と、未使用の空間と、プロセッサ500の優先アクセス設定レジスタに対して書き込むことが可能な空間とを有する。また、各空間にはアドレスが割り振られている。例えば、プロセッサ400の使用空間のアドレスは、「0x0000_0000」である。また、プロセッサ500の使用空間のアドレスは、「0x1000_0000」である。また、未使用の空間のアドレスは、「0x2000_0000」である。さらに、優先アクセス設定レジスタの使用空間のアドレスは、「0x3FFF_FFFF」である。
実施例2では、メモリバス監視制御回路421は、プロセッサ500によって優先アクセス設定レジスタ421bにプロセッサ500の優先アクセス情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。一方、メモリバス監視制御回路421は、優先アクセス設定レジスタ421bにプロセッサ500の優先アクセス情報が記憶されている場合には、外部バス優先状態ビットの値が「1」に書き換えられるまで優先アクセス設定レジスタ421bを読み続ける。
メモリ制御回路424は、実施例2で説明したメモリ制御回路124が有する機能に加え、さらに以下の機能を有する。実施例3では、メモリ制御回路424は、優先アクセス状態である場合には、バスの使用状態を判定することなく、引き続き、外部メモリ600へアクセスする。
プロセッサ500は、プロセッサ400と同様の構成を有する。プロセッサ500は、プロセッサコア210と、バス制御装置520と、IOバッファ230とを有する。また、バス制御装置520は、メモリバス監視制御回路521と、バスリクエスト付加回路222と、入出力制御回路223と、メモリ制御回路524とを有する。メモリバス監視制御回路521は、アドレスデコード回路521aと、優先アクセス設定レジスタ521bとを有する。ここで、プロセッサコア210は、プロセッサコア110に対応する。バス制御装置520は、バス制御装置420に対応する。また、IOバッファ230は、IOバッファ130に対応する。メモリバス監視制御回路521は、メモリバス監視制御回路421に対応する。バスリクエスト付加回路222は、バスリクエスト付加回路122に対応する。入出力制御回路223は、入出力制御回路123に対応する。メモリ制御回路524は、メモリ制御回路424に対応する。アドレスデコード回路521aは、アドレスデコード回路421aに対応する。優先アクセス設定レジスタ521bは、優先アクセス設定レジスタ421bに対応する。
外部メモリ600は、実施例2で説明した外部メモリ300と同様の機能を有する。
[実施例3に係る電子装置によって行われる優先アクセス設定処理の処理手順]
次に、図7を用いて、実施例3に係る電子装置によって行われる優先アクセス設定処理の処理手順を説明する。図7は、実施例3に係る電子装置によって行われる優先アクセス設定処理の処理手順を示すフローチャートである。
次に、図7を用いて、実施例3に係る電子装置によって行われる優先アクセス設定処理の処理手順を説明する。図7は、実施例3に係る電子装置によって行われる優先アクセス設定処理の処理手順を示すフローチャートである。
メモリ制御回路424は、プロセッサコア110から外部メモリへのアクセス要求を受付けた場合(ステップS201、Yes)、メモリバス監視制御回路421に、バス権を取得させる(ステップS202)。バス権を取得できた場合、アドレスデコード回路421aは、プロセッサ500のメモリバス監視制御回路521にある優先アクセス設定レジスタ521bに自装置の優先状態を通知する書き込みを行う(ステップS203)。
続いて、メモリ制御回路424は、外部メモリへアクセスを行う(ステップS204)。ここで、メモリバス監視制御回路421は、優先アクセスが終了したか否かを判定する(ステップS205)。優先アクセスが終了したと判定した場合(ステップS205、Yes)、アドレスデコード回路421aは、プロセッサ500のメモリバス監視制御回路521にある優先アクセス設定レジスタ521bに自装置の優先状態が終了を通知する書き込みを行う(ステップS206)。一方、優先アクセスが終了していないと判定した場合(ステップS205、No)、メモリ制御回路424は、引き続き、外部メモリ600へアクセスを行う。
[実施例3に係る電子装置によって行われるバス権取得処理の処理手順]
次に、実施例3に係る電子装置によって行われるバス権取得処理の処理手順について説明する。図8は、実施例3に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。なお、ここで説明する処理は、図7のステップS202に対応する。
次に、実施例3に係る電子装置によって行われるバス権取得処理の処理手順について説明する。図8は、実施例3に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。なお、ここで説明する処理は、図7のステップS202に対応する。
メモリ制御回路424は、バス権取得要求を受付けた場合、メモリバス監視制御回路421に、優先アクセス設定レジスタ421bを読ませる(ステップS301)。メモリバス監視制御回路421は、外部プロセッサが優先アクセス状態であるか否か判定する(ステップS302)。ここで、メモリバス監視制御回路421は、外部プロセッサに優先アクセス権が設定されていると判定した場合には(ステップS302、Yes)、外部プロセッサの優先アクセス権が解除されるまで、優先アクセス設定レジスタ421bを繰り返し判定する。一方、外部プロセッサが優先アクセス状態ではないと判定した場合(ステップS302、No)、メモリバス監視制御回路421は、チップセレクト信号の論理状態とアドレスバスの論理状態を取得する(ステップS303)。ここで、ステップS301及びS302をPriChk状態とする。
メモリバス監視制御回路421は、取得したアドレスバスとチップセレクト信号の論理状態を判定する(ステップS304)。ここで、チップセレクト信号の論理状態が1であり、かつ、アドレスバスの論理状態も「1」であった場合(ステップS304、Yes)、メモリバス監視制御回路421は、バスリクエスト付加回路122に、バス権要求信号を出力させる(ステップS305)。一方、メモリバス監視制御回路421は、チップセレクト信号とアドレスバスの論理状態のどちらか一方でも「1」ではないと判定した場合には、再度、アドレスバスとチップセレクト信号を取得する(ステップS304、No)。ここで、ステップS303及びS304をBusChk状態とする。また、ステップS305をReq状態とする。
メモリバス監視制御回路421は、バス権要求信号を出力した後に、再度、チップセレクト信号とアドレスバスの論理状態を取得する(ステップS306)。続いて、メモリバス監視制御回路421は、取得したチップセレクト信号とアドレスバスの論理状態を判定する(ステップS307)。ここで、チップセレクト信号の論理状態が「1」であり、バス権要求信号を出力したアドレスバスの論理状態のみが「0」であった場合(ステップS307、Yes)、メモリバス監視制御回路421は、バス権を取得できたと判定する(ステップS308)。一方、バス権要求信号を出力したアドレスバスの論理状態以外も「0」であった場合(ステップS307、No)、メモリバス監視制御回路421は、バス権取得要求を取り消し(ステップS309)、続いて、メモリバス監視制御回路421は、アドレスバスとチップセレクト信号を再取得する(ステップS303)。ここで、ステップS306及び307をReqchk状態とする。また、ステップS308をAccess状態とする。また、ステップS309をIdle状態とする。
[実施例3の効果]
上述したように、実施例3に係る電子装置において、プロセッサ400の優先アクセス設定レジスタ421bは、プロセッサ500による外部メモリ600へのアクセスを優先させることを示す優先アクセス情報を記憶する。また、メモリバス監視制御回路421は、バス権の取得が成功した場合には、プロセッサ500に設けられている優先アクセス設定レジスタ521bに優先アクセス情報を記憶させるアドレスデコード回路421aを有する。メモリバス監視制御回路421は、プロセッサ500に設けられているバス制御装置520よって自装置の優先アクセス設定レジスタ421bに優先アクセス情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。メモリ制御回路424は、アドレスデコード回路421aによってプロセッサ500に設けられているバス制御装置520の優先アクセス設定レジスタ521bに前記優先アクセス情報が記憶された場合には、プロセッサ400が優先的に外部メモリ600にアクセスするように制御する。したがって、実施例3に係る電子装置において、プロセッサ400及び500は、優先アクセス情報が記憶されている場合には、外部メモリ600の使用状態を判定することなく、優先的にバス権を取得することが可能である。
上述したように、実施例3に係る電子装置において、プロセッサ400の優先アクセス設定レジスタ421bは、プロセッサ500による外部メモリ600へのアクセスを優先させることを示す優先アクセス情報を記憶する。また、メモリバス監視制御回路421は、バス権の取得が成功した場合には、プロセッサ500に設けられている優先アクセス設定レジスタ521bに優先アクセス情報を記憶させるアドレスデコード回路421aを有する。メモリバス監視制御回路421は、プロセッサ500に設けられているバス制御装置520よって自装置の優先アクセス設定レジスタ421bに優先アクセス情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。メモリ制御回路424は、アドレスデコード回路421aによってプロセッサ500に設けられているバス制御装置520の優先アクセス設定レジスタ521bに前記優先アクセス情報が記憶された場合には、プロセッサ400が優先的に外部メモリ600にアクセスするように制御する。したがって、実施例3に係る電子装置において、プロセッサ400及び500は、優先アクセス情報が記憶されている場合には、外部メモリ600の使用状態を判定することなく、優先的にバス権を取得することが可能である。
なお、本実施例では、プロセッサ400とプロセッサ500との2台で外部メモリ600への優先アクセス設定について説明したが、3台以上で外部メモリ600へアクセス権の優先状態を設定する場合にも適用可能である。かかる場合には、優先アクセス設定レジスタには、接続するプロセッサの台数分外部バス優先状態ビットを設ける。そして、バス権を取得したプロセッサは、その他の全てのプロセッサに対して、ビットの値が外部バス優先状態を示す「1」を書き込む。
[実施例4に係る電子装置の概要]
次に、実施例4として、2台のプロセッサと外部メモリとを同一バス上で接続して構築される電子装置において、一方のプロセッサが休止状態になる際の、バス権調停機構について説明する。かかる場合には、休止状態にあるプロセッサは、動作状態にあるプロセッサに通知する。その結果、動作状態にあるプロセッサは、バスの使用状態を判定することなく、バス権を取得することができる。
次に、実施例4として、2台のプロセッサと外部メモリとを同一バス上で接続して構築される電子装置において、一方のプロセッサが休止状態になる際の、バス権調停機構について説明する。かかる場合には、休止状態にあるプロセッサは、動作状態にあるプロセッサに通知する。その結果、動作状態にあるプロセッサは、バスの使用状態を判定することなく、バス権を取得することができる。
[実施例4に係る電子装置の構成]
次に、図9を用いて、実施例4に係る電子装置の構成を説明する。図9は、実施例4に係る電子装置の構成を示す機能ブロック図である。図9に示すように、実施例4に係る電子装置は、プロセッサ700と、プロセッサ800と、外部メモリ900とを有する。なお、ここでは説明の便宜上、図2に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
次に、図9を用いて、実施例4に係る電子装置の構成を説明する。図9は、実施例4に係る電子装置の構成を示す機能ブロック図である。図9に示すように、実施例4に係る電子装置は、プロセッサ700と、プロセッサ800と、外部メモリ900とを有する。なお、ここでは説明の便宜上、図2に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
プロセッサ700は、プロセッサコア110と、バス制御装置720と、IOバッファ130とを有する。バス制御装置720は、メモリバス監視制御回路721と、バスリクエスト付加回路122と、入出力制御回路123と、メモリ制御回路724とを有する。
メモリバス監視制御回路721は、実施例2で説明したメモリバス監視制御回路121が有する機能に加え、以下の機能をさらに有する。メモリバス監視制御回路721は、アドレスデコード回路721aと、外部バス休止設定レジスタ721bとを有する。
外部バス休止設定レジスタ721bは、プロセッサ800が休止状態であることを示す休止状態情報を記憶する。
図10は、外部バス休止設定レジスタ721bによって記憶されるデータの一例を示す図である。図10に示すように、外部バス休止設定レジスタ721bは、複数のビットを有する。実施例4では、bit0が、プロセッサ800が休止状態であることを示す外部バス休止状態ビットとして用いられる。ここで、外部バスが動作状態である場合には、外部バス休止状態ビットには「0」が設定される。一方、外部バスが休止状態である場合には、外部バス休止状態ビットには「1」が設定される。
アドレスデコード回路721aは、プロセッサ700が休止状態となる際に、プロセッサ800に設けられているバス制御装置820の外部バス休止設定レジスタ821bに休止状態情報を記憶させる。また、アドレスデコード回路721aは、プロセッサ700が休止状態を解除した場合には、外部バス休止設定レジスタ821bの休止状態情報を消去する。
実施例4では、メモリバス監視制御回路721は、他のプロセッサに設けられているバス制御装置によって休止状態情報が記憶されていない場合には、バスが未使用であるか否かを判定する。
プロセッサ800は、プロセッサ700と同様の構成を有する。プロセッサ800が内部に有する各構成要素についての重複する説明は省略する。プロセッサ800は、プロセッサコア210と、バス制御装置820と、IOバッファ230とを有する。また、バス制御装置820は、メモリバス監視制御回路821と、バスリクエスト付加回路222と、入出力制御回路223と、メモリ制御回路824とを有する。メモリバス監視制御回路821は、アドレスデコード回路821aと、外部バス休止設定レジスタ821bとを有する。ここで、プロセッサコア210は、プロセッサコア110に対応する。バス制御装置820は、バス制御装置720に対応する。また、IOバッファ230は、IOバッファ130に対応する。メモリバス監視制御回路821は、メモリバス監視制御回路721に対応する。バスリクエスト付加回路222は、バスリクエスト付加回路122に対応する。入出力制御回路223は、入出力制御回路123に対応する。メモリ制御回路824は、メモリ制御回路724に対応する。アドレスデコード回路821aは、アドレスデコード回路721aに対応する。外部バス休止設定レジスタ821bは、外部バス休止設定レジスタ721bに対応する。
外部メモリ900は、実施例2で説明した外部メモリ300と同様の機能を有する。
[実施例4に係る電子装置によって行われる休止状態設定処理の処理手順]
次に、図11を用いて、実施例4に係る電子装置によって行われる休止状態設定処理の処理手順を説明する。図11は、実施例4に係る電子装置によって行われる休止状態設定処理の処理手順を示すフローチャートである。
次に、図11を用いて、実施例4に係る電子装置によって行われる休止状態設定処理の処理手順を説明する。図11は、実施例4に係る電子装置によって行われる休止状態設定処理の処理手順を示すフローチャートである。
メモリ制御回路724は、プロセッサコア110から休止設定要求を受付けた場合(ステップS401、Yes)、メモリバス監視制御回路721に、外部バス休止設定レジスタ721bに自装置の休止設定を通知する書き込みを行わせる(ステップS402)。
メモリ制御回路724は、休止状態の解除を受付けたか否かを判定する(ステップS403)。ここで、メモリ制御回路724は、休止状態の解除を受付けたと判定した場合(ステップS403、Yes)、メモリバス監視制御回路721に、外部バス休止設定レジスタ721bに自装置の休止設定の解除を通知する書き込みを行わせる(ステップS404)。一方、休止状態が終了していないと判定した場合(ステップS403、No)、メモリ制御回路724は、引き続き、休止状態が解除されるのを判定する。
[実施例4に係る電子装置によって行われるバス権取得処理の処理手順]
次に、実施例4に係る電子装置によって行われるバス権取得処理の処理手順について説明する。図12は、実施例4に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。
次に、実施例4に係る電子装置によって行われるバス権取得処理の処理手順について説明する。図12は、実施例4に係る電子装置によって行われるバス権取得処理の処理手順を示すフローチャートである。
メモリ制御回路724は、バス権取得要求を受付けた場合(ステップS501、Yes)、メモリバス監視制御回路721に、外部バス休止設定レジスタ721bを読ませる(ステップS502)。続いて、メモリバス監視制御回路721は、外部プロセッサが休止状態であるか否か判定する(ステップS503)。ここで、メモリバス監視制御回路721は、外部プロセッサが休止状態に設定されていると判定した場合(ステップS503、Yes)、バス権を取得する(ステップS509)。一方、メモリバス監視制御回路721は、外部プロセッサが休止状態に設定されていないと判定した場合(ステップS503、No)、アドレスバスとチップセレクト信号の論理状態を取得する(ステップS504)。
メモリバス監視制御回路721は、取得したアドレスバスとチップセレクト信号の論理状態を判定する(ステップS505)。ここで、チップセレクト信号の論理状態が「1」であり、また、アドレスバスの論理状態も「1」であった場合(ステップS505、Yes)、メモリバス監視制御回路721は、バスリクエスト付加回路122に、バス権要求信号を出力させる(ステップS506)。一方、メモリバス監視制御回路721は、チップセレクト信号とアドレスバスの論理状態のどちらか一方でも「1」でないと判定した場合、再度、アドレスバスとチップセレクト信号を取得する(ステップS505、No)。
メモリバス監視制御回路721は、バス権要求信号を出力した後に、再度、チップセレクト信号とアドレスバスの論理状態を取得する(ステップS507)。続いて、メモリバス監視制御回路721は、取得したチップセレクト信号とアドレスバスの論理状態を判定する(ステップS508)。ここで、チップセレクト信号の論理状態が「1」であり、バス権要求信号を出力したアドレスバスの論理状態のみが「0」であった場合(ステップS508、Yes)、メモリバス監視制御回路721は、バス権を取得できたと判定する(ステップS509)。一方、バス権要求信号を出力したアドレスバスの論理状態以外も「0」であった場合(ステップS508、No)、メモリバス監視制御回路721は、バス権取得要求を取り消し(ステップS510)、続いて、メモリバス監視制御回路721は、アドレスバスとチップセレクト信号を再取得する(ステップS504)。
[実施例4の効果]
上述したように、実施例4に係る電子装置において、プロセッサ700の外部バス休止設定レジスタ721bは、プロセッサ800が休止状態であることを示す休止状態情報を記憶する。プロセッサ700のアドレスデコード回路721aは、プロセッサ700が休止状態となる際に、プロセッサ800に設けられているバス制御装置の外部バス休止設定レジスタ821bに休止状態情報を記憶させる。メモリバス監視制御回路721は、外部バス休止設定レジスタ721bにプロセッサ800の休止状態情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。メモリ制御回路724は、外部バス休止設定レジスタ721bにプロセッサ800の休止状態情報が記憶された場合には、バスの使用状態を判定することなく、プロセッサ700が優先的に外部メモリ900にアクセスするよう制御する。したがって、実施例4に係る電子装置において、プロセッサ700及び800は、他のプロセッサの休止状態情報が記憶された場合には、バスの使用状態を判定することなく、バス権を取得することが可能である。
上述したように、実施例4に係る電子装置において、プロセッサ700の外部バス休止設定レジスタ721bは、プロセッサ800が休止状態であることを示す休止状態情報を記憶する。プロセッサ700のアドレスデコード回路721aは、プロセッサ700が休止状態となる際に、プロセッサ800に設けられているバス制御装置の外部バス休止設定レジスタ821bに休止状態情報を記憶させる。メモリバス監視制御回路721は、外部バス休止設定レジスタ721bにプロセッサ800の休止状態情報が記憶されていない場合には、バス権を取得する目的で、バスが未使用であるか否かを判定する。メモリ制御回路724は、外部バス休止設定レジスタ721bにプロセッサ800の休止状態情報が記憶された場合には、バスの使用状態を判定することなく、プロセッサ700が優先的に外部メモリ900にアクセスするよう制御する。したがって、実施例4に係る電子装置において、プロセッサ700及び800は、他のプロセッサの休止状態情報が記憶された場合には、バスの使用状態を判定することなく、バス権を取得することが可能である。
また、マスタとスレーブの関係で構築された電子装置においては、スレーブプロセッサからのメモリアクセス要求を受付けるために、マスタプロセッサは、休止状態にすることができなかった。しかし、実施例4に係る電子装置では、プロセッサごとにバス権を調停することができるので、動作状態にないプロセッサについては、休止状態にすることができる。したがって、実施例4に係る電子装置は、消費電力を低減することが可能である。
なお、実施例4では、プロセッサ700とプロセッサ800との2台での休止状態設定について説明したが、3台以上のプロセッサで休止状態を設定する場合にも適用可能である。この場合には、外部バス休止設定レジスタ721bの外部バス休止状態ビットを接続するプロセッサの台数分設ける。そして、動作状態にあるプロセッサの外部バス休止設定レジスタの全てのビットの値が外部バス休止状態を示す「1」である場合には、当該プロセッサは、バスの使用状態を判定することなく、バス権を取得することができる。
10 バス制御装置
11 第一の判定部
12 バス権要求部
13 第二の判定部
14 アクセス制御部
11 第一の判定部
12 バス権要求部
13 第二の判定部
14 アクセス制御部
Claims (6)
- 複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定部と、
前記第一の判定部によって前記バスが未使用であると判定された場合に、自装置が設けられているプロセッサが前記バスを介して前記メモリへアクセスするためのバス権を要求するバス権要求信号を前記バスに送信するバス権要求部と、
前記第一の判定部によって前記バスが未使用であると判定され、かつ、前記バス権要求部によって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサが前記メモリにアクセスするよう制御するアクセス制御部と
を有することを特徴とするバス制御装置。 - 自装置が設けられているプロセッサ以外の他のプロセッサによる前記メモリへのアクセスを優先させることを示す優先アクセス情報を記憶する優先設定記憶部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、前記他のプロセッサに設けられているバス制御装置の優先設定記憶部に前記優先アクセス情報を記憶させる優先設定更新部とをさらに有し、
前記第一の判定部は、前記他のプロセッサに設けられているバス制御装置よって自装置の前記優先設定記憶部に前記優先アクセス情報が記憶されていない場合に、バスが未使用であるか否かを判定し、
前記アクセス制御部は、前記優先設定更新部によって前記他のプロセッサに設けられているバス制御装置の前記優先設定記憶部に前記優先アクセス情報が記憶された場合には、自装置が設けられているプロセッサが優先的に前記メモリにアクセスするように制御することを特徴とする請求項1に記載のバス制御装置。 - 自装置が設けられているプロセッサ以外の他のプロセッサが休止状態であることを示す休止状態情報を記憶する休止状態記憶部と、
自装置が設けられているプロセッサが休止状態となる際に、前記他のプロセッサに設けられているバス制御装置の休止状態記憶部に前記休止状態情報を記憶させる休止状態更新部とをさらに有し、
前記第一の判定部は、前記他のプロセッサに設けられているバス制御装置によって前記休止状態情報が記憶されていない場合には、バスが未使用であるか否かを判定し、
前記アクセス制御部は、前記他のプロセッサに設けられているバス制御装置によって前記休止状態情報が記憶された場合には、自装置が設けられているプロセッサが優先的に前記メモリにアクセスするよう制御することを特徴とする請求項1に記載のバス制御装置。 - 複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定部と、
自プロセッサが前記バスを介して前記メモリへアクセスするためのバス権を要求するバス権要求信号を前記バスに送信するバス権要求部と、
前記第一の判定部によって前記バスが未使用であると判定され、かつ、前記バス権要求部によって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、自プロセッサが前記メモリにアクセスするよう制御するアクセス制御部と
を有することを特徴とするプロセッサ。 - 複数のプロセッサによって共有されるメモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定部と、
自装置に設けられているプロセッサが前記バスを介して前記メモリへアクセスするためのバス権を要求するバス権要求信号を前記バスに送信するバス権要求部と、
前記第一の判定部によって前記バスが未使用であると判定され、かつ、前記バス権要求部によって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定部と、
前記第二の判定部によって前記バス権の取得が成功したと判定された場合に、自装置に設けられているプロセッサが前記メモリにアクセスするよう制御するアクセス制御部と
を有することを特徴とする電子装置。 - 複数のプロセッサによって共有される外部メモリと各プロセッサとを接続するバスの信号を監視することで当該バスが未使用であるか否かを判定する第一の判定ステップと、
第一の判定ステップによって前記バスが未使用であると判定された場合に、自装置が設けられているプロセッサが前記バスを介して前記メモリへアクセスすることを要求するバス権要求信号を前記バスに送信するバス権要求ステップと、
前記バス権要求ステップによって送信されたバス権要求信号のみが前記バスに送信されている場合に、前記バス権の取得が成功したと判定する第二の判定ステップと、
前記第二の判定ステップによって前記バス権の取得が成功したと判定された場合に、自装置が設けられているプロセッサが前記メモリにアクセスするよう制御するアクセス制御ステップと
を有することを特徴とするバス制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009263382A JP2011108051A (ja) | 2009-11-18 | 2009-11-18 | バス制御装置、プロセッサ、電子装置及びバス制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009263382A JP2011108051A (ja) | 2009-11-18 | 2009-11-18 | バス制御装置、プロセッサ、電子装置及びバス制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011108051A true JP2011108051A (ja) | 2011-06-02 |
Family
ID=44231435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009263382A Withdrawn JP2011108051A (ja) | 2009-11-18 | 2009-11-18 | バス制御装置、プロセッサ、電子装置及びバス制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011108051A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2416323A1 (en) | 2010-08-06 | 2012-02-08 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and driving method thereof |
-
2009
- 2009-11-18 JP JP2009263382A patent/JP2011108051A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2416323A1 (en) | 2010-08-06 | 2012-02-08 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and driving method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7934029B2 (en) | Data transfer between devices within an integrated circuit | |
US7581054B2 (en) | Data processing system | |
US20080059683A1 (en) | Method and Apparatus for Conditional Broadcast of Barrier Operations | |
JP2007219816A (ja) | マルチプロセッサシステム | |
JP4198376B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
KR100630071B1 (ko) | 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치 | |
US20070156937A1 (en) | Data transfer in multiprocessor system | |
US8359419B2 (en) | System LSI having plural buses | |
KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
US8074033B1 (en) | Cooperating memory controllers that share data bus terminals for accessing wide external devices | |
JP2011108051A (ja) | バス制御装置、プロセッサ、電子装置及びバス制御方法 | |
US9152588B2 (en) | Race-free level-sensitive interrupt delivery using fabric delivered interrupts | |
US20070186026A1 (en) | System having bus architecture for improving CPU performance and method thereof | |
JP2004194014A (ja) | バス制御装置及び情報処理システム | |
JP5805546B2 (ja) | 半導体装置 | |
JP2009116467A (ja) | データ転送装置及び半導体試験装置 | |
CN107025190B (zh) | 系统及其操作方法 | |
JP4249741B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
CN115017093B (zh) | 一种片上外部总线通信的方法以及装置 | |
KR100825663B1 (ko) | 시스템 버스를 점유하지 않는 디바이스/메모리 전용디엠에이 전송 방법 및 장치 | |
KR100604569B1 (ko) | 멀티 프로세서간 데이터 통신장치와 그 장치를 포함하는이동 통신 단말기 | |
JP2007328539A (ja) | バスシステムおよびバススレーブならびにバス制御方法 | |
JP4642398B2 (ja) | 共有バス調停システム | |
JP2015194900A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130205 |