(57)【要約】【課題】従来のメモリアクセス装置は、一方のＣＰＵが共有メモリにアクセスしている間、他方のＣＰＵは、排他制御フラグを読み出し続けることになり、その都度、バスを専有するために、ＣＰＵの処理が停止する問題があった。【解決手段】ＣＰＵの一つによりメモリ３が使用されているか否かを示す値が書き込まれた排他制御フラグ５に加えて、メモリ３を使用中のＣＰＵ２ａによって読み書きされるデータ量の残容量を示す残容量カウンタ６を設け、残容量カウンタ６が０になることを０比較回路７により判定して、排他制御フラグ５を０にするようにし、メモリ３を使用中でない他のＣＰＵ２ｂは、この残容量カウンタ６を参照して、残容量カウンタ６の残容量に応じた時間経過後に排他制御フラグ５を読み出して、メモリ３の使用の可否を判定するようにした。【選択図】　　　　図１
2004110484.tif 000002
【特許請求の範囲】
【請求項１】
メモリを共有する複数の中央処理装置（以下ＣＰＵという）が上記メモリをアクセスするときの排他制御を行うメモリアクセス装置において、上記ＣＰＵの一つにより上記メモリが使用されているか否かを示す値が書き込まれた排他制御フラグ、上記メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタを備え、上記メモリを使用中でない他のＣＰＵは、上記残容量カウンタを参照して、上記残容量カウンタの残容量に応じた時間経過後に上記排他制御フラグを読み出すことにより、上記メモリの使用の可否を判定することを特徴とするメモリアクセス装置。
【請求項２】
メモリを共有する複数のＣＰＵが上記メモリをアクセスするときの排他制御を行うメモリアクセス装置において、上記ＣＰＵの一つにより上記メモリが使用されているか否かを示す値が書き込まれた排他制御フラグ、上記メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタを備え、上記排他制御フラグと上記残容量カウンタは、一回の読み出しで同時に読み出されるように構成され、上記メモリを使用中でない他のＣＰＵは、上記排他制御フラグの値により、上記メモリの使用の可否を判定すると共に、上記排他制御フラグの値により、上記メモリの使用が不可の場合は、上記読み出された上記残容量カウンタの残容量に応じた時間経過後に再度排他制御フラグ及び残容量カウンタを読み出し、上記判定を行うことを特徴とするメモリアクセス装置。
【請求項３】
メモリを共有する複数のＣＰＵが上記メモリをアクセスするときの排他制御を行うメモリアクセス装置において、上記ＣＰＵの一つにより上記メモリが使用されているか否かを示す値が書き込まれた排他制御フラグ、上記メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタ、この残容量カウンタを基にして算出され、上記メモリを使用中のＣＰＵの残り処理時間を示す待ち時間レジスタを備え、上記メモリを使用中でない他のＣＰＵは、上記待ち時間レジスタを参照して、上記待ち時間レジスタの残り処理時間経過後に上記排他制御フラグを読み出すことにより、上記メモリの使用の可否を判定することを特徴とするメモリアクセス装置。
【請求項４】
上記残容量カウンタが停止検出時間の間停止することにより、残容量カウンタの停止を検出する停止検出回路を備え、上記停止検出回路により、上記残容量カウンタの停止が検出されたとき、上記排他制御フラグは、使用中を示す値から使用中でない値に書き換えられることを特徴とする請求項１〜請求項３のいずれか一項記載のメモリアクセス装置。
【請求項５】
上記ＣＰＵの処理内容と処理時間の関係を示す処理時間テーブルを備え、この処理時間テーブルを参照して、上記停止検出回路による上記残容量カウンタの停止検出に要する停止検出時間をＣＰＵの処理内容に応じて可変にすることを特徴とする請求項４記載のメモリアクセス装置。
【請求項６】
メモリを共有する複数のＣＰＵが上記メモリをアクセスするときの排他制御を行うメモリアクセス装置において、上記メモリを使用中のＣＰＵによって書き込まれるデータ量の残容量を示す書き込み残容量カウンタを備え、上記メモリを使用中でない他のＣＰＵは、上記書き込み残容量カウンタを参照して、上記メモリからの読み出しの可否を判定することを特徴とするメモリアクセス装置。
【請求項７】
メモリを共有する複数のＣＰＵが上記メモリをアクセスするときの排他制御を行うメモリアクセス装置において、上記メモリを使用中のＣＰＵによって書き込まれるデータ量の残容量を示す書き込み残容量カウンタ、この書き込み残容量カウンタの値により、上記メモリを使用中でない他のＣＰＵに読み出しの許可を与える読み出し許可フラグを備えたことを特徴とするメモリアクセス装置。
【請求項８】
上記ＣＰＵの一つにより上記メモリが使用されているか否かを示す値が書き込まれた排他制御フラグ、上記書き込み残容量カウンタの停止を検出する停止検出回路を備え、上記停止検出回路により、上記書き込み残容量カウンタの停止が検出されたときから所定時間経過しても上記排他制御フラグが使用中を示す値のときは、上記排他制御フラグは、使用中でない値に書き換えられることを特徴とする請求項６または請求項７記載のメモリアクセス装置。
【請求項９】
上記メモリを使用中のＣＰＵが上記メモリを解放した後に、他のＣＰＵが上記メモリのアクセス権利を得る優先順位を予約するアクセス予約ＦＩＦＯを備えたことを特徴とする請求項１〜請求項８のいずれか一項記載のメモリアクセス装置。
【請求項１０】
上記アクセス予約ＦＩＦＯの順番によりアクセス権利を得たＣＰＵが、一定時間メモリを使用しない場合、上記アクセス予約ＦＩＦＯの次の順番のＣＰＵにアクセス権利を移行することを特徴とする請求項９記載のメモリアクセス装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数の中央処理装置（以下、ＣＰＵという）が共有メモリをアクセスするときの排他制御を行うメモリアクセス装置に関するものである。
【０００２】
【従来の技術】
図１１は、従来のメモリアクセス装置の構成を示すブロック図である（例えば，特許文献１参照）。
図１１において、１はメモリアクセス装置、２ａ、２ｂはそれぞれ同一のバスやメモリ等の資源を共有するＣＰＵである。３はＣＰＵ２ａ、２ｂによって共有されるメモリ、４はメモリマップＩ／Ｏである。５は共有資源を誰も使用していないことを示すフリー値と、使用者を示す識別子を持つ排他制御フラグである。メモリアクセス装置１は、排他制御フラグ５を基本構成としている。
【０００３】
次に、動作について説明する。
メモリ３を獲得したいＣＰＵ２ａは、排他制御フラグ５を読み出す。排他制御フラグ５がフリーを示す値ならば、ＣＰＵ２ａはメモリ３を獲得し、排他制御フラグ５は、ハードウェア的にフリー値からメモリ３を獲得したＣＰＵ２ａの識別子へ変化する。メモリ３を獲得したＣＰＵ２ａ（使用中のＣＰＵ）がメモリ３を開放する際に、排他制御フラグ５にフリー値を書込む。
ＣＰＵ２ａが、排他制御フラグ５を読み出した時、フリー値以外ならば、他のＣＰＵがメモリ３を使用していると判断し、排他制御フラグ５がフリー値になるのを読み出し続けて待つ。
【０００４】
【特許文献１】
特開平９−３２５８９３号公報
【０００５】
【発明が解決しようとする課題】
従来のメモリアクセス装置は、このように構成されているため、一方のＣＰＵ２ａがメモリ３にアクセスしている間、他方のＣＰＵ２ｂは、排他制御フラグ５を読み出し続けることになり、その都度、バスを専有するために、ＣＰＵの処理の一部または全部が停止するという問題点があった。
【０００６】
この発明は、上記のような課題を解決するためになされたものであり、効率的に排他制御を行うことが可能なメモリアクセス装置を得ることを目的にしている。
【０００７】
【課題を解決するための手段】
この発明に係わるメモリアクセス装置においては、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタを備え、メモリを使用中でない他のＣＰＵは、残容量カウンタを参照して、残容量カウンタの残容量に応じた時間経過後に排他制御フラグを読み出すことにより、メモリの使用の可否を判定するものである。
【０００８】
また、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタを備え、排他制御フラグと残容量カウンタは、一回の読み出しで同時に読み出されるように構成され、メモリを使用中でない他のＣＰＵは、排他制御フラグの値により、メモリの使用の可否を判定すると共に、排他制御フラグの値により、メモリの使用が不可の場合は、読み出された残容量カウンタの残容量に応じた時間経過後に再度排他制御フラグ及び残容量カウンタを読み出し、判定を行うものである。
【０００９】
また、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタと、この残容量カウンタを基にして算出され、メモリを使用中のＣＰＵの残り処理時間を示す待ち時間レジスタを備え、メモリを使用中でない他のＣＰＵは、待ち時間レジスタを参照して、待ち時間レジスタの残り処理時間経過後に排他制御フラグを読み出すことにより、メモリの使用の可否を判定するものである。
【００１０】
さらに、残容量カウンタが停止検出時間の間停止することにより、残容量カウンタの停止を検出する停止検出回路を備え、停止検出回路により、残容量カウンタの停止が検出されたとき、排他制御フラグは、使用中を示す値から使用中でない値に書き換えられるものである。
また、ＣＰＵの処理内容と処理時間の関係を示す処理時間テーブルを備え、この処理時間テーブルを参照して、停止検出回路による残容量カウンタの停止検出に要する停止検出時間をＣＰＵの処理内容に応じて可変にするものである。
【００１１】
また、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、メモリを使用中のＣＰＵによって書き込まれるデータ量の残容量を示す書き込み残容量カウンタを備え、メモリを使用中でない他のＣＰＵは、書き込み残容量カウンタを参照して、メモリからの読み出しの可否を判定するものである。
さらにまた、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、メモリを使用中のＣＰＵによって書き込まれるデータ量の残容量を示す書き込み残容量カウンタと、この書き込み残容量カウンタの値により、メモリを使用中でない他のＣＰＵに読み出しの許可を与える読み出し許可フラグを備えたものである。
また、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、書き込み残容量カウンタの停止を検出する停止検出回路を備え、停止検出回路により、書き込み残容量カウンタの停止が検出されたときから所定時間経過しても排他制御フラグが使用中を示す値のときは、排他制御フラグは、使用中でない値に書き換えられるものである。
【００１２】
また、メモリを使用中のＣＰＵがメモリを解放した後に、他のＣＰＵがメモリのアクセス権利を得る優先順位を予約するアクセス予約ＦＩＦＯを備えたものである。
加えて、アクセス予約ＦＩＦＯの順番によりアクセス権利を得たＣＰＵが、一定時間メモリを使用しない場合、アクセス予約ＦＩＦＯの次の順番のＣＰＵにアクセス権利を移行するものである。
【００１３】
【発明の実施の形態】
実施の形態１．
以下、この発明の実施の形態１について図を用いて説明する。
図１は、この発明の実施の形態１によるメモリアクセス装置の構成を示すブロック図である。
図１において、１はメモリアクセス装置、２ａ、２ｂは同一のバスやメモリ等の資源を共有するＣＰＵである。３はＣＰＵ２ａ、２ｂによって共有されるメモリ、４はメモリマップＩ／Ｏである。５はメモリ３を獲得しているＣＰＵの有無を示す値を有する排他制御フラグである。６はメモリ３を獲得したＣＰＵが読み書きするデータ量の残容量を示す残容量カウンタ、７は残容量カウンタ６が０になったことを検出する０比較回路である。メモリアクセス装置１は、排他制御フラグ５と残容量カウンタ６と０比較回路７によって構成されている。
【００１４】
次に、上記のように構成されたメモリアクセス装置の動作について説明する。
メモリ３を獲得したいＣＰＵ２ａは、排他制御フラグ５を読み出す。
排他制御フラグ５が、メモリ３を獲得しているＣＰＵが無いことを示す値（この場での説明では０とする）ならば、ＣＰＵ２ａはメモリ３を獲得できる。また、この時、排他制御フラグ５はハードウェア的に０からメモリ３を獲得しているＣＰＵ２ａが存在することを示す値（この場での説明では１とする）へ変化する。ＣＰＵ２ａが排他制御フラグ５を読み出したとき、１ならば、ＣＰＵ２ａはメモリ３を獲得できず、排他制御フラグ５に変化はない。
【００１５】
メモリ３を獲得したＣＰＵ２ａ（使用中のＣＰＵ）は、メモリ３を読み書きするデータ量を残容量カウンタ６に書き込み、読み書きの処理を開始する。
残容量カウンタ６は、メモリ３が読み書きされる度に、ハードウェア的に減算される。
【００１６】
使用中のＣＰＵ以外のＣＰＵが、メモリ３を獲得したいときには、残容量カウンタ６を参照する。各ＣＰＵには、あらかじめ内部に残容量と時間の関係を示す待ち時間テーブルを持たせることによって、後どれ位の時間、メモリ３が専有され続けるかを知ることができる。他のＣＰＵにメモリ３を専有されている場合でも、この専有時間後に排他制御フラグ５を参照すればよく、連続的に排他制御フラグ５を読み出す必要はない。
残容量カウンタ６が０になると、０比較回路７により、排他制御フラグ５はハードウェア的に１から０に変化する。
【００１７】
このように、実施の形態１によれば、使用中のＣＰＵ以外のＣＰＵが、残容量カウンタ６を参照することにより、使用中のＣＰＵ以外のＣＰＵの待ち時間を解消できる効果が得られる。また、メモリを専有しているＣＰＵの処理速度の影響を解消できる効果がある。
【００１８】
実施の形態２．
以下、この発明の実施の形態２について説明する。
図２は、この発明の実施の形態２によるメモリアクセス装置の構成を示すブロック図である。
図２において、１〜７は図１におけるものと同一のものである。
図２の実施の形態１との違いは、残容量カウンタ６を排他制御フラグ５と統合したことである。その他の構成は、実施の形態１と同じである。
【００１９】
次に、動作について説明する。
実施の形態１では、メモリ３が専有されている場合、１回目に排他制御フラグ５を、２回目に残容量カウンタ６をというように、２度読み出しの処理が必要であるが、実施の形態２では、残容量カウンタ６を排他制御フラグ５と統合したことにより、１度の読み出しで、残容量カウンタ６と排他制御フラグ５の両方を読み出し、その情報を参照することができる。
ただし、メモリの使用が不可の場合は、読み出された残容量カウンタの値に応じた時間経過後に再度、排他制御フラグ及び残容量カウンタの値を読み出して判定を行うようにする。
【００２０】
このように、実施の形態２によれば、使用中のＣＰＵ以外のＣＰＵは、１度の読み出しで、残容量カウンタ６と排他制御フラグ５の両方の情報が参照できるので、ＣＰＵの待ち時間を解消できる効果が得られる。
【００２１】
実施の形態３．
以下、この発明の実施の形態３について説明する。
図３は、この発明の実施の形態３によるメモリアクセス装置の構成を示すブロック図である。
図３において、１〜７は図１におけるものと同一のものである。８は残容量カウンタ６の残容量と時間の関係を示す待ち時間テーブル、９は待ち時間テーブル８によって得られる待ち時間を格納する待ち時間レジスタであり、８、９はメモリアクセス装置１内に設けられている。
【００２２】
次に、動作について説明する。
実施の形態１では、ＣＰＵ毎に待ち時間テーブルを用意していたが、実施の形態３は、待ち時間テーブル８及び待ち時間レジスタ９をメモリアクセス装置１内に設けている。この場合、使用中のＣＰＵ以外のＣＰＵは、待ち時間レジスタ９を参照することにより、待ち時間を知ることができる。
【００２３】
このように、実施の形態３によれば、待ち時間テーブル８をメモリアクセス装置内に１つ用意すればよく、システム全体のコストを削減する効果が得られる。
【００２４】
実施の形態４．
以下、この発明の実施の形態４について説明する。
図４は、この発明の実施の形態４によるメモリアクセス装置の構成を示すブロック図である。
図４において、１〜５は図１におけるものと同一のものである。１０は書き込み残容量を示す書き込み残容量カウンタである。
図４は、実施の形態１の残容量カウンタ６及び０比較回路７に代えて、メモリアクセス装置１内に、書き込み残容量カウンタ１０を有している。
【００２５】
次に、動作について説明する。
メモリ３を獲得したＣＰＵ２ａが、書き込み残容量カウンタ１０にメモリ３に書き込むデータ量を格納して、処理を開始する。書き込み残容量カウンタ１０は、ハードウェア的にメモリ３に使用中のＣＰＵからの書き込みがある度に減算され、書き込み残容量をカウントする。使用中のＣＰＵ以外のＣＰＵは、書き込み残容量カウンタ１０を参照することと、あらかじめＣＰＵ内部に待ち時間テーブルを持つことで、あとどれ位の時間メモリ３が使用中のＣＰＵの書き込みに専有され続けるかを知ることができる。
書き込み残容量カウンタ１０が０になれば、排他制御フラグ５が０にならなくても、読み出しだけは可能となり、使用中のＣＰＵ以外のＣＰＵは、メモリ３からの読み出しを行え、処理が進む。使用中のＣＰＵは読み出し処理を終了後、排他制御フラグ５に０を書き込む。
【００２６】
このように、実施の形態４によれば、排他制御フラグ５が０にならなくても、使用中のＣＰＵのメモリ３への書き込みが全て終了した時点で、使用中のＣＰＵ以外のＣＰＵがメモリ３からの読み出しを行えるので、ＣＰＵの待ち時間を解消できる効果が得られる。
【００２７】
実施の形態５．
以下、この発明の実施の形態５について説明する。
図５は、この発明の実施の形態５によるメモリアクセス装置の構成を示すブロック図である。
図５において、１〜５、１０は図４におけるものと同一のものである。１１は読み出し許可フラグである。
図５は、実施の形態４のメモリアクセス装置１内に、読み出し許可フラグ１１を追加したものである。その他の構成は、実施の形態４と同一である。
【００２８】
次に、動作について説明する。
実施の形態５は、メモリアクセス装置１内に読み出し許可フラグ１１を追加したことにより、使用中のＣＰＵ以外からのメモリ３への読み書きのうち、読み出しの許可を可能とする。こうすることで、使用中のＣＰＵ以外のＣＰＵも処理を続けることが可能となる。ただし、使用中のＣＰＵ以外のＣＰＵが大容量のデータをメモリ３から読み出すと、使用中のＣＰＵのメモリ３への読み書き速度が低下するため、その場合には、使用中のＣＰＵは、読み出しの許可を行わないことで、読み書き速度の低下を防ぐ。
【００２９】
このように、実施の形態５によれば、メモリ３への書き込みの排他制御は行いつつ、メモリ３からの読み出しは通常開放することで、全ＣＰＵの作業効率が向上する効果が得られる。
【００３０】
実施の形態６．
以下、この発明の実施の形態６について説明する。
【００３１】
図６は、この発明の実施の形態６によるメモリアクセス装置の構成を示すブロック図である。
図６において、１〜７は図１におけるものと同一のものである。１２はメモリアクセス装置１内に設けられ、残容量カウンタ６が停止検出時間の間停止することにより、残容量カウンタ６の停止を検出する停止検出回路である。
図６の構成は、実施の形態１のメモリアクセス装置１内に、停止検出回路１２を追加したものである。その他の構成は、実施の形態１と同一である。
【００３２】
次に、動作について説明する。
実施の形態１の動作で、残容量カウンタ６が一定時間停止していることを、停止検出回路１２によって検出した場合、使用中のＣＰＵが停止したと見なし、排他制御フラグ５をハードウェア的に０に戻す。
【００３３】
このように、実施の形態６によれば、ＣＰＵ停止対策として、メモリ３を使用中のＣＰＵが取りっぱなしになってシステム停止になることを防止する効果が得られる。
【００３４】
実施の形態７．
以下、この発明の実施の形態７について説明する。
図７は、この発明の実施の形態７によるメモリアクセス装置の構成を示すブロック図である。
図７において、１〜７、１２は図６におけるものと同一のものである。１３はメモリアクセス装置１内に設けられ、ＣＰＵの処理内容と処理時間の関係を示す処理時間テーブルである。
図７は、実施の形態６のメモリアクセス装置１内に、処理時間テーブル１３を追加した構成である。その他の構成は、実施の形態６と同一である。
【００３５】
次に、動作について説明する。
実施の形態６の動作に加えて、ＣＰＵの処理内容と処理時間の関係を示す処理時間テーブル１３を、メモリアクセス装置１内に持つことにより、使用中のＣＰＵの処理内容によって、停止検出回路１２の停止検出時間を可変にできるようにした。
【００３６】
このように、実施の形態７によれば、使用中のＣＰＵの停止検出時間を可変とすることにより、システム停止時間を短縮する効果が得られる。
【００３７】
実施の形態８．
以下、この発明の実施の形態８について説明する。
図８は、この発明の実施の形態８によるメモリアクセス装置の構成を示すブロック図である。
図８において、１〜５、１０は図４におけるものと同一のものである。１２はメモリアクセス装置１内に設けられ、書き込み残容量カウンタ１０の停止を検出する停止検出回路である。
図８の構成は、実施の形態４のメモリアクセス装置１内に、停止検出回路１２を追加した構成である。その他の構成は、実施の形態４と同一である。
【００３８】
次に、動作について説明する。
停止検出回路１２により、書き込み残容量カウンタ１０が０になった後、一定時間（所定時間）排他制御フラグ５が０にならない場合を検出したとき、使用中のＣＰＵが停止したと見なし、排他制御フラグ５をハードウェア的に０に戻す。
【００３９】
このように、実施の形態８によれば、ＣＰＵ停止対策として、メモリ３を使用中のＣＰＵが取りっぱなしになってシステム停止になることを防止する効果が得られる。
【００４０】
実施の形態９．
以下、この発明の実施の形態９について説明する。
図９は、この発明の実施の形態９によるメモリアクセス装置の構成を示すブロック図である。
図９において、１〜６は図１におけるものと同一のものである。７ａ、７ｂは０比較回路、１４はメモリへのアクセス予約が登録されたアクセス予約ＦＩＦＯ、１５はアクセス予約ＦＩＦＯ１４に登録された順にアクセス許可を与える許可レジスタである。
図９は、実施の形態１のメモリアクセス装置１内に、アクセス予約ＦＩＦＯ１４と許可レジスタ１５を追加し、０比較回路を２個に増やした構成である。その他の構成は、実施の形態１と同一である。
【００４１】
次に、動作について説明する。
実施の形態１の動作で、使用中のＣＰＵがメモリ３を専有している間に、使用中のＣＰＵ以外のＣＰＵは、あらかじめＣＰＵ内に用意している自分の識別ＩＤを、アクセス予約ＦＩＦＯ１４に登録しておく。使用中のＣＰＵがメモリ３を開放した時、排他制御フラグ５の０が０比較回路７ｂによって確認されると、アクセス予約ＦＩＦＯ１４に登録されているＣＰＵの順番に優先してメモリ３の獲得件が与えられる。アクセス予約ＦＩＦＯ１４には同一のＣＰＵの識別ＩＤを複数個登録することはできない。
【００４２】
このように、実施の形態９によれば、メモリ３のアクセス予約ができ、同一ＣＰＵの連続書き込みを防止する効果が得られる。
【００４３】
実施の形態１０．
以下、この発明の実施の形態１０について説明する。
図１０は、この発明の実施の形態１０によるメモリアクセス装置の構成を示すブロック図である。
図１０において、１〜７ｂ、１４、１５は図９におけるものと同一のものである。１６はメモリアクセス装置１内に設けられたタイマである。
図１０は、実施の形態９のメモリアクセス装置１内に、タイマ１６を追加した構成である。その他の構成は、実施の形態９と同一である。
【００４４】
次に、動作について説明する。
実施の形態９の動作で、メモリ３の獲得権を与えられたＣＰＵが、タイマ１６による一定時間、メモリ３にアクセスしようとしない場合、アクセス予約ＦＩＦＯ１４に登録されている、次の順番のＣＰＵにアクセス権が与えられる。
【００４５】
このように、実施の形態１０によれば、メモリ３のアクセス権を与えられたＣＰＵがアクセス権を取りっぱなしになってシステム停止になることを防止する効果が得られる。
また、残容量カウンタ６が０になったときに、使用中のＣＰＵ以外のＣＰＵが、排他制御フラグ５を読み込むことが集中するのを防ぐ効果が得られる。
【００４６】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタを備え、メモリを使用中でない他のＣＰＵは、残容量カウンタを参照して、残容量カウンタの残容量に応じた時間経過後に排他制御フラグを読み出すことにより、メモリの使用の可否を判定するので、使用中でない他のＣＰＵが、残容量カウンタを参照することにより、使用中でない他のＣＰＵの待ち時間を解消することができ、メモリを使用中のＣＰＵの処理速度への影響を解消することができる。
【００４７】
また、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタを備え、排他制御フラグと残容量カウンタは、一回の読み出しで同時に読み出されるように構成され、メモリを使用中でない他のＣＰＵは、排他制御フラグの値により、メモリの使用の可否を判定すると共に、排他制御フラグの値により、メモリの使用が不可の場合は、読み出された残容量カウンタの残容量に応じた時間経過後に再度排他制御フラグ及び残容量カウンタを読み出し、判定を行うので、使用中でない他のＣＰＵは、一度の読み出しで、残容量カウンタと排他制御フラグの両方の情報を参照でき、使用中でない他のＣＰＵの待ち時間を解消することができ、メモリを使用中のＣＰＵの処理速度への影響を解消することができる。
【００４８】
また、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、メモリを使用中のＣＰＵによって読み書きされるデータ量の残容量を示す残容量カウンタと、この残容量カウンタを基にして算出され、メモリを使用中のＣＰＵの残り処理時間を示す待ち時間レジスタを備え、メモリを使用中でない他のＣＰＵは、待ち時間レジスタを参照して、待ち時間レジスタの残り処理時間経過後に排他制御フラグを読み出すことにより、メモリの使用の可否を判定するので、待ち時間レジスタをメモリアクセス装置内に１つ用意すればよく、システム全体のコストを削減し、使用中でない他のＣＰＵの待ち時間を解消することができる。
【００４９】
さらに、残容量カウンタが停止検出時間の間停止することにより、残容量カウンタの停止を検出する停止検出回路を備え、停止検出回路により、残容量カウンタの停止が検出されたとき、排他制御フラグは、使用中を示す値から使用中でない値に書き換えられるので、メモリを使用中のＣＰＵの停止によるメモリの専有を防ぎ、システム停止になることを防止することができる。
また、ＣＰＵの処理内容と処理時間の関係を示す処理時間テーブルを備え、この処理時間テーブルを参照して、停止検出回路による残容量カウンタの停止検出に要する停止検出時間をＣＰＵの処理内容に応じて可変にするので、停止検出回路を弾力的に運用して、無駄なシステム停止を防ぐことができる。
【００５０】
また、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、メモリを使用中のＣＰＵによって書き込まれるデータ量の残容量を示す書き込み残容量カウンタを備え、メモリを使用中でない他のＣＰＵは、書き込み残容量カウンタを参照して、メモリからの読み出しの可否を判定するので、メモリを使用中のＣＰＵのメモリへの書き込みが全て終了した時点で、使用中でない他のＣＰＵがメモリからの読み出しを行え、使用中でない他のＣＰＵの待ち時間を解消することができる。
【００５１】
さらにまた、メモリを共有する複数のＣＰＵがメモリをアクセスするときの排他制御を行うメモリアクセス装置において、メモリを使用中のＣＰＵによって書き込まれるデータ量の残容量を示す書き込み残容量カウンタと、この書き込み残容量カウンタの値により、メモリを使用中でない他のＣＰＵに読み出しの許可を与える読み出し許可フラグを備えたので、メモリを使用中のＣＰＵによる書き込みが終了した時点で、使用中でない他のＣＰＵにメモリからの読み出しを許可することで、使用中でない他のＣＰＵの待ち時間を解消することができる。
【００５２】
また、ＣＰＵの一つによりメモリが使用されているか否かを示す値が書き込まれた排他制御フラグと、書き込み残容量カウンタの停止を検出する停止検出回路を備え、停止検出回路により、書き込み残容量カウンタの停止が検出されたときから所定時間経過しても排他制御フラグが使用中を示す値のときは、排他制御フラグは、使用中でない値に書き換えられるので、メモリを使用中のＣＰＵの停止によるメモリの専有を防ぎ、システム停止になることを防止することができる。
【００５３】
また、メモリを使用中のＣＰＵがメモリを解放した後に、他のＣＰＵがメモリのアクセス権利を得る優先順位を予約するアクセス予約ＦＩＦＯを備えたので、メモリへのアクセス予約ができる。
加えて、アクセス予約ＦＩＦＯの順番によりアクセス権利を得たＣＰＵが、一定時間メモリを使用しない場合、アクセス予約ＦＩＦＯの次の順番のＣＰＵにアクセス権利を移行するので、メモリへのアクセス権を与えられたＣＰＵが、アクセス権を取りっぱなしになってシステム停止になることを防止することができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるメモリアクセス装置の構成を示すブロック図である。
【図２】この発明の実施の形態２によるメモリアクセス装置の構成を示すブロック図である。
【図３】この発明の実施の形態３によるメモリアクセス装置の構成を示すブロック図である。
【図４】この発明の実施の形態４によるメモリアクセス装置の構成を示すブロック図である。
【図５】この発明の実施の形態５によるメモリアクセス装置の構成を示すブロック図である。
【図６】この発明の実施の形態６によるメモリアクセス装置の構成を示すブロック図である。
【図７】この発明の実施の形態７によるメモリアクセス装置の構成を示すブロック図である。
【図８】この発明の実施の形態８によるメモリアクセス装置の構成を示すブロック図である。
【図９】この発明の実施の形態９によるメモリアクセス装置の構成を示すブロック図である。
【図１０】この発明の実施の形態１０によるメモリアクセス装置の構成を示すブロック図である。
【図１１】従来のメモリアクセス装置の構成を示すブロック図である。
【符号の説明】
１　メモリアクセス装置、２ａ、２ｂ　ＣＰＵ、３　メモリ、
４　メモリマップＩ／Ｏ、５　排他制御フラグ、６　残容量カウンタ、
７　０比較回路、８　待ち時間テーブル、９　待ち時間レジスタ、
１０　書き込み残容量カウンタ、１１　読み出し許可フラグ、
１２　停止検出回路、１３　処理時間テーブル、
１４　アクセス予約ＦＩＦＯ、１５　許可レジスタ、１６　タイマ。
【図１】
2004110484.tif 000003
【図２】
2004110484.tif 000004
【図３】
2004110484.tif 000005
【図４】
2004110484.tif 000006
【図５】
2004110484.tif 000007
【図６】
2004110484.tif 000008
【図７】
2004110484.tif 000009
【図８】
2004110484.tif 000010
【図９】
2004110484.tif 000011
【図１０】
2004110484.tif 000012
【図１１】
2004110484.tif 000013