JPH04182858A - 共有メモリ管理方式 - Google Patents

共有メモリ管理方式

Info

Publication number
JPH04182858A
JPH04182858A JP31367590A JP31367590A JPH04182858A JP H04182858 A JPH04182858 A JP H04182858A JP 31367590 A JP31367590 A JP 31367590A JP 31367590 A JP31367590 A JP 31367590A JP H04182858 A JPH04182858 A JP H04182858A
Authority
JP
Japan
Prior art keywords
processor
semaphore
access
shared
shared memory
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.)
Pending
Application number
JP31367590A
Other languages
English (en)
Inventor
Takahiro Nishikawa
西川 隆博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP31367590A priority Critical patent/JPH04182858A/ja
Publication of JPH04182858A publication Critical patent/JPH04182858A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 【産業上の利用分野】
この発明は、複数のプロセッサまたはタスクなどが共有
する共有データの更新に際して、それが終了するまでの
間、他のプロセッサ等からの当該共有データの参照や更
新をセマフォ制御によって排除する共有メモリ管理方式
に関するものである。
【従来の技術】
第4図は例えば特開昭62−200449号公報に示さ
れた従来の共有メモリ管理方式を示す構成図である。図
において、11〜1□は複数のプロセッサ、2はこれら
各プロセッサ11〜17が接続されたメモリバスであり
、3はこのメモリバス2に接続されて前記各プロセッサ
II〜1゜にて共有される共有メモリである。41〜4
イはこの共有メモリ3内に格納され、前記各プロセッサ
11〜17にて共有される共有データであり、5I〜5
mは各共有データ41〜4.に対応して設けられ、対応
付けられた共有データ41〜41へのアクセスを排他的
に制御するためのセマフォである。 次に動作について説明する。ここで、第5図はその動作
を説明するためのセマフォの内容の遷移図である。 今、プロセッサ1□が共有メモリ3内の共有データ4□
を更新しようとする場合、プロセッサ1□は当該共有デ
ータ41に対応付けられたセマフォ5、の値を調べるた
めにまずその内容を読み出してくる。第5図(a)は読
み出されたセマフォ5□の内容を示している。 この時、そのセマフォ5.の排他制御ビットであるビッ
トD7が図示のように°“0′′であれば、第5図(b
)に示すように、当該ビットD7を“1”に更新すると
ともに、ビットDO〜D6にプロセッサまたはタスクを
識別するための値として、プロセッサ1□のプロセッサ
番号を付加してセマフォ5Iに書き込む。この場合には
、プロセッサが持っているセマフォ操作専用の命令(例
えばTes t& Set命令)が用いられる。第5図
(b)、 (C)中で斜線を施した部分がこのプロセッ
サまたはタスクを識別するための値である。 プロセッサ1□はセマフォ51に第5図(C)に示した
更新値を書き込んだ後、共有データ41へのアクセスを
開始する。この共有データ41へのアクセスが終了する
と、プロセッサ1□はセマフォ5Iの内容を、排他制御
ビットであるビットD7が0”の第5図(a)に示した
ものに戻す。 ここで、プロセッサ1□がセマフォの制御権を持ってい
る最中に、プロセッサ17がプロセッサ1□のアクセス
している共有データ3Iにアクセスしようとした場合、
以下のようにして排他制御が行われる。即ち、プロセッ
サ1.lがセマフオ5゜の内容を読み出してその排他制
御ビットを調べると、その値はプロセッサ1□によって
“1″に更新されているため、それが“0”に戻される
までこのセマフォ51の読み出し・チエツクの動作を継
続する。 プロセッサ1□による共有データ41へのアクセスが終
了して、セマフォ5.の排他制御ビットが“0パになる
と、プロセッサ1.lはプロセッサ1、の場合と同様に
してセマフォ制御権を獲得し、共有データ4.へのアク
セスを開始する。
【発明が解決しようとする課題】
従来の共有メモリ管理方式は以上のように構成されてい
るので、1つのプロセッサ1.〜17が共有メモリ3に
アクセス中に2つ以上のプロセッサ1□〜17がその共
有メモリ3にアクセスしようとした状況下で、その共有
メモリ3をアクセスしていたプロセッサ11〜IRがア
クセスを終了した場合、共有メモリ3にアクセスしよう
としている複数のプロセッサII〜1.1中のどれが共
有メモリ3へのアクセスを許可されるかは、専らそのプ
ロセッサII〜11.の動作タイミングに依存して予測
することができず、また、複数のプロセッサ1.〜1o
が共有メモリ3へのアクセスを待つ場合、メモリバス2
へのアクセスが多発してメモリバス2が無用に占有され
てシステムの性能が低下するばかりか、共有メモリ3へ
のアクセスを待つプロセッサl+〜1ゎは、共有メモリ
3へのアクセスを終了するまで他の処理が実行できず、
プロセッサl、〜lゎそのものの処理性能も低下するな
どの課題があった。 この発明は上記のような課題を解消するためになされた
もので、共有メモリへのアクセスを待っている複数のプ
ロセッサ中で、次にアクセスが許可されるものを判断す
ることができ、メモリバスへのアクセスが多発せず、待
ち合わせ中のプロセッサはアクセスが許可されるまで他
の処理を実行することのできる共有メモリ管理方式を得
ることを目的とする。
【課題を解決するための手段】
この発明に係る共有メモリ管理方式は、セマフォに共有
データへのアクセスの待ち合わせを管理するキュー領域
を付加し、各プロセッサに、バスロックした状態でセマ
フォの操作を行い、ハスロックを解除した状態で共有デ
ータへのアクセスを行う機能、および共有データへのア
クセス終了時にバスロックを行って、セマフォのキュー
領域の内容より次に共有メモリにアクセスすべきプロセ
ッサを決定し、当該プロセッサへの割り込みによって共
有メモリの解放を通知する機能を持たせたものである。
【作用】
この発明における各プロセッサは、ハスロックによって
共有メモリへの他のプロセッサからのアクセスを禁止し
た状態でセマフォの操作を行うとともに、バスロックを
解除した状態で前記共有データへのアクセスを行い、さ
らに、共有データへのアクセスが終了すると、再度バス
ロックを行ってセマフォのキュー領域を参照し、待ち合
わせているプロセッサあるいはタスクがある場合には、
当該キュー領域の内容に基づいて次に共有メモリにアク
セスすべきプロセッサを決定し、そのプロセッサに共有
メモリの解放を割り込みによって通知することにより、
共有メモリへのアクセスを待っている複数のプロセッサ
中の次にアクセスが許可されるものが判断でき、メモリ
バスへのアクセスが多発せず、待ち合わせ中のプロセッ
サはアクセスが許可されるまで他の処理を実行すること
が可能な共有メモリ管理方式を実現する。
【実施例】
以下、この発明の一実施例を図について説明する。第1
図において、1□〜1.、はプロセッサ、2はメモリバ
ス、3は共有メモリ、41〜4.は共有データであり、
第4図に同−符月をイ」シた従来のそれらと同一、ある
いは相当部分であるため詳細な説明は省略する。 また、61は共有データ4.〜4..へのアクセスを排
他的に制御するための、従来のセマフォ51〜51に相
当する排他制御管理領域、62は共有データ41〜4□
へのアクセスの待ち合わせを管理するキュー領域であり
、61〜6.はこのキュー領域62も備えている点で従
来のセマフォ51〜5.とは異なるセマフォである。7
は各プロセッサl、〜1.lが他のプロセッサ1□〜1
.、に対して割り込みの発生を通知する割り込み信号線
で、この場合、複数本で構成されている。 次に動作について説明する。ここで、第2図はその動作
を説明するためのセマフォの内容の遷移図であり、第3
図は処理の手順を示すフローチャートである。 今、あるプロセッサ、例えばプロセッサl、が共有メモ
リ3内の共有データ42にアクセスしようとする場合、
プロセッサ11はステップSTIにおいてメモリバス2
にハスロックをかけて、他のプロセッサ1□〜1.、か
らの共有メモリ3に対するアクセスを禁止する。次に、
ステップST2にてアクセスしようとする共有データ4
□に対応付けられたセマフォ6□の排他制御管理領域6
1のデータを読み出し、ステップST3にてその排他制
御ビットD7の内容を判定する。 その結果、当該排他制御ビットDわが第2図(a)に示
すように“′0パであれば、アクセス使用としている共
有データ4□が解放されていることを示しており、処理
はステップST4に渡される。ステップST4では共有
データ42がアクセスされていることを示すため、第2
図(t))に示すようにセマフォ62の排他制御管理領
域61の排他制御ビットに“l“をセットする。その後
、プロセッサ1、はステップST5にてバスロックの解
放を行い、さらにステップST6で共有データ4□にア
クセスする。 一方、ステップST3による判定の結果、セマフォ6□
の排他制御ビットが第2図(t))に示すように”′1
“′であった場合には、プロセンサ11はステップ5T
12において自身のプロセッサ番号とプライオリティを
セマフォ6□のキュー領域62に追加する。この時、そ
の追加位置は第2図(C)および(d)に示すように、
互いのプライオリティを比較してその順位に従って決定
される。なお、このキュー領域62への追加の方式とし
ては、先に茄んだものが優先されるファーストイン・フ
ァーストアウト方式を採用してもよい。その場合、プラ
イオリティの書き込みは無用となる。 このキュー領域62への追加の処理が終了すると、プロ
セッサIIはステップ5T13にてバスロックしていた
メモリバス2を解放してリターンする。このようにして
リターンしたプロセッサ11は、その後自由に他の処理
を実行することができる。 ステップST6にて共有データ4□にアクセスしたフ゛
ロセッサ1□は、そのアクセスが季冬了すると処理をス
テップST7に進めてメモリバス2を再度パスロックす
る。その後、ステップST8にて当該共有データ4□の
セマフォ6□のキュー領域62を参照し、待ち合わせを
しているプロセッサまたはタスクの有無をチエツクする
。その結果、待ち合わせがなければ処理をステップ5T
14に進めて、当該セマフォ6□の排他制御管理領域6
1の排他制御ビットD、、に0°′をセットしてリター
ンする。これによってセマフォ6□は共通データ4□が
アクセスされていないことを示す、第2図(a)に示し
た状態に戻る。 また、待ち合わせがあれば処理はステップST9に渡さ
れてキュー操作が実行され、セマフォ6□のキュー領域
62の先頭よりプロセッサ番号等のプロセッサまたはタ
スクを識別するための値が取り出される。この時のセマ
フォ6□の状況を第2図(d)および(e)に示す。プ
ロセッサ1.は取り出した値に基づいて次に動作すべき
プロセッサ、例えば、プロセッサ1.、を識別し、当=
亥プロセッサ1.。 に対して割り込みを発生させる。この割り込みは割り込
み信号線7を介してプロセッサ1□に送られ、共有メモ
リ3が解放されたことを当該プロセッサ1.lに伝える
。 その後、プロセッサ11はステップ5T11にてメモリ
バス2のハスロックを解除してリターン・する。一方、
割り込みを受けたプロセッサ1nはステップST6以降
の処理を実行することにより、共有データ4□へのアク
セスおよびセマフォの解放動作を行う。
【発明の効果】
以上のように、この発明によれば、セマフォに共有デー
タへのアクセスの待ち合わせを管理するキュー領域を持
たせ、ハスロックした状態でセマフォの操作を行うとと
もに、バスロックを解除した状態で共有データへのアク
セスを行い、さらに、共有データへのアクセスが終了す
ると、再度ハスロックを行ってセマフォのキュー領域を
参照し、待ち合わせているものがある場合には、当該キ
ュ?、N域の内容に基づいて次に共有メモリにアクセス
すべきプロセッサを決定して、当8亥プロセッサに共有
メモリの解放を割り込みによって通知するように構成し
たので、共有メモリへのアクセスを待っている複数のプ
ロセッサの中で、次にアクセスが許可されるものがどれ
であるかを判断でき、さらに、メモリバスの占有が防止
されてメモリバスへのアクセスが多発することもなくな
り、待ち合わせ中のプロセッサはアクセスが許可される
まで他の処理を実行することが可能となるため、システ
ムの性能を低下させることのない共有−メモリ管理方式
が得られる効果がある。
【図面の簡単な説明】
第1図はこの発明の一実施例による共有メモリ管理方式
を示す構成図、第2図はその動作を説明するためのセマ
フォの内容の遷移図、第3図は処理の手順を示すフロー
チャート、第4図は従来の共有メモリ管理方式を示す構
成図、第5図はその動作を説明するためのセマフォの内
容の遷移図である。 1、〜1..はプロセッサ、2はメモリバス、3は共有
メモリ、41〜4□は共有データ、6I〜6、はセマフ
ォ、61は排他制御管理領域、62はキュー領域、7は
割り込み信号線。 なお、図中、同一符号は同一、又は相当部分を示す。 (外2名) 2:すtリバス 61・・・6m:tマフオat:8M
e ’1?It!’II ’f!W %<62、キュー
曾I威 7・畜1り上Nき信号線 第6図 第4図

Claims (1)

    【特許請求の範囲】
  1. 複数のプロセッサまたはタスクが共有する共有データ、
    および前記共有データ対応のセマフォが格納された共有
    メモリに、メモリバスを介して複数のプロセッサを接続
    し、前記各プロセッサの前記共有データへのアクセスを
    前記セマフォによって排他的に制御する共有メモリ管理
    方式において、前記セマフォに前記共有データへのアク
    セスの排他的制御のための排他制御管理領域と、前記共
    有データへのアクセスの待ち合わせを管理するキュー領
    域を持たせ、前記各プロセッサは、バスロックにより前
    記共有メモリへの他のプロセッサからのアクセスを禁止
    した状態で前記セマフォの操作を行うとともに、前記バ
    スロックを解除した状態で前記共有データへのアクセス
    を行い、前記共有データへのアクセスが終了すると、再
    度前記バスロックをした状態で、前記セマフォのキュー
    領域を参照し、持ち合わせているプロセッサあるいはタ
    スクがある場合には、当該キュー領域の内容に基づいて
    次に共有メモリにアクセスすべきプロセッサを決定し、
    そのプロセッサに共有メモリの解放を割り込みによって
    通知することを特徴とする共有メモリ管理方式。
JP31367590A 1990-11-19 1990-11-19 共有メモリ管理方式 Pending JPH04182858A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31367590A JPH04182858A (ja) 1990-11-19 1990-11-19 共有メモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31367590A JPH04182858A (ja) 1990-11-19 1990-11-19 共有メモリ管理方式

Publications (1)

Publication Number Publication Date
JPH04182858A true JPH04182858A (ja) 1992-06-30

Family

ID=18044159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31367590A Pending JPH04182858A (ja) 1990-11-19 1990-11-19 共有メモリ管理方式

Country Status (1)

Country Link
JP (1) JPH04182858A (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8359454B2 (en) 2005-12-05 2013-01-22 Nvidia Corporation Memory access techniques providing for override of page table attributes
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8533425B1 (en) 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
JP2015072716A (ja) * 2014-12-16 2015-04-16 キヤノン株式会社 情報処理システム、情報処理システム制御方法、およびそのプログラム
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359454B2 (en) 2005-12-05 2013-01-22 Nvidia Corporation Memory access techniques providing for override of page table attributes
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8601235B2 (en) 2006-11-01 2013-12-03 Nvidia Corporation System and method for concurrently managing memory access requests
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8533425B1 (en) 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
JP2015072716A (ja) * 2014-12-16 2015-04-16 キヤノン株式会社 情報処理システム、情報処理システム制御方法、およびそのプログラム

Similar Documents

Publication Publication Date Title
JPH04182858A (ja) 共有メモリ管理方式
TW498281B (en) Interface system and method for asynchronously updating a shared resource
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US5251318A (en) Multiprocessing system comparing information copied from extended storage before and after processing for serializing access to shared resource
EP0145889B1 (en) Non-spinning task locking using compare and swap
US5287521A (en) Method and apparatus for releasing and obtaining shared and exclusive locks
US5896141A (en) System and method for virtual device access in a computer system
JP3010400B2 (ja) 共有メモリ制御方法及び共有メモリ制御装置
WO2011148553A1 (ja) 情報処理装置および情報処理方法
JPH04230550A (ja) 情報処理ネツトワーク及び情報処理方法
US5764922A (en) I/O system for off-loading operating system functions
JP3965784B2 (ja) 共有メモリ排他アクセス制御方法
US7748003B2 (en) Hard real-time response
US6366946B1 (en) Critical code processing management
JP5553685B2 (ja) 情報処理装置および情報処理方法
EP0206335B1 (en) Interruption method for a data processing system
CN111723250A (zh) 一种基于引用计数的链表管理方法
EP0297895A2 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JP2746189B2 (ja) ファイルアクセス制御システム
JPS62177653A (ja) 共有メモリ制御方式
JPH01195542A (ja) マルチプログラミング処理装置
JP2000003287A (ja) 共有リソースの排他制御装置、排他制御方法及び排他制御プログラムを記録した記録媒体
JP2926873B2 (ja) 計算機システム
JP3764282B2 (ja) プログラム制御システムの制御装置
CA1306311C (en) I/o system for off-loading operating system functions