JPH06103155A - 共有メモリ制御方法及び共有メモリ制御装置 - Google Patents

共有メモリ制御方法及び共有メモリ制御装置

Info

Publication number
JPH06103155A
JPH06103155A JP4112188A JP11218892A JPH06103155A JP H06103155 A JPH06103155 A JP H06103155A JP 4112188 A JP4112188 A JP 4112188A JP 11218892 A JP11218892 A JP 11218892A JP H06103155 A JPH06103155 A JP H06103155A
Authority
JP
Japan
Prior art keywords
data structure
memory
request
semaphore
start address
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.)
Granted
Application number
JP4112188A
Other languages
English (en)
Other versions
JP3010400B2 (ja
Inventor
Brian N Baker
ブライアン・ネイル・ベーカ
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.)
Nortel Networks Ltd
Original Assignee
Northern Telecom Ltd
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 Northern Telecom Ltd filed Critical Northern Telecom Ltd
Publication of JPH06103155A publication Critical patent/JPH06103155A/ja
Application granted granted Critical
Publication of JP3010400B2 publication Critical patent/JP3010400B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 共有メモリを有する多重プロセッサシステム
中のメモリブロックにアクセスを許可する方法と装置が
提供される。 【構成】 共有メモリ内の非連続なデータ構造をアクセ
スできる複数のプロセッサを有する共通メモリ制御装置
において、複数のアドレスをストアするメモリバンク
と、リクエストデータ構造のスタートアドレスをメモリ
バンク中のアドレスと比較する比較手段と、開放セマフ
ォアが閉鎖になるまで、リクエストデータ構造のスター
トアドレスを一時的にストアする記憶手段と、リクエス
トデータ構造スタートアドレスがバンクアドレスでない
ときはリクエストデータ構造にメモリアクセスを許可
し、開放セマフォアが閉鎖されたときはリクエストデー
タ構造にメモリアクセスを許可する論理回路手段とを有
し、プロセッサの1つが共有メモリ内のデータ構造への
アクセスを制御するように構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的に、電気通信シ
ステムの共有メモリのメモリアクセス制御に関するもの
であり、より詳細には共有メモリシステム中にセマフォ
ア(値を持つ部分とプロセスを待ち行列につなぐポイン
タ部を有する構造体をいう)を供給する方法と回路に関
するものである。
【0002】
【従来の技術】電気通信システムは同期動作している一
対の2重プロセッサをしばしば含んでいる。この2重化
構成は冗長システムであり、そこでは一方のプロセッサ
が故障すると、故障したプロセッサがサービスを止め入
れ替えられるまでの間、通常他方のプロセッサが全ての
動作を行う。
【0003】システムは通常大きなオブジェクトコード
から構成される大きなサイズのプログラムの実行に依存
している。このオブジェクトコードは電気通信システム
それ自身の呼処理及び保守の双方に関係している。これ
らのプログラムは通常高級手続き言語で記載され、その
後低級実行用オブジェクトコードにコンパイルされる。
プログラマのチームが何年もかかって開発した数百万行
のコードからなるようなプログラムは普通のものではな
い。
【0004】単一プロセッサ又は同期2重プロセッサシ
ステムにおいて、命令は一度に1ステップづつシーケン
シャルに実行される。しかしながら、そのようなシステ
ムでは、多くのコード行を含むタスクがスケジュールに
従って実行されるマルチタスクを用いると利益が大き
い。最初のタスクが完了する前に1つのタスクが取り換
えられ、一方、他のいくつかのタスクもシーケンシャル
に取り換えられる。しばしば「プロセス」と呼ばれるタ
スクは、各々が多くのコードの行からなるサブルーチン
を用いる。タスクが取り換えられるとき、スケジューラ
がそのタスクを他のタスクと取り換えるまで、プロセッ
サは所定の時間そのタスクを実行する。
【0005】「スワップ」と言う言葉はここでは「交
換」を意味する。タスクが特別なメモリ位置にデータを
読み書きするとき、他のタスクは同じメモリ位置に読み
出しアクセスを行うような場合が生じる。そのような場
合は、前のタスクが終了するまでメモリをアクセスしな
いような排他的な機構を設けることが必要である。その
場合は、タスクが終了する間の特定の手続き又はタスク
の終了に対して、その手続き又はタスクを実行するプロ
セッサは必然的に手続き又はタスクが終了するまで割り
込みできない状態に置かれる。この割り込みできない状
態は、実行タスクがプロセッサとそれに関係するメモリ
バンクに排他的にアクセスする間、グローバルロック機
構の表示によって達成され、その間他のバンクへの取り
換えは一時的に停止する。そのようなグローバルロック
は、単一プロセッサに対してはプロセッサが待ち状態に
ないので十分なものであると考えられてきた。単一プロ
セッサデータ処理システムが多重プロセッサシステムと
置き換えられるとき、すでに単一プロセッサシステム用
に開発されたコードを多重プロセッサシステム上で走ら
せることは好ましいことである。
【0006】
【発明が解決しようとする課題】しかしながら、タスク
がグローバルロック条件が表示される間、最初のプロセ
ッサによってタスクが実行される多重プロセッサシステ
ムでは、他のプロセッサは共有メモリからロックアウト
される。これらの他のプロセッサはメモリがアクセスさ
れる前にグローバルロックが再表示されるまで待たねば
ならない。その結果他のプロセッサはその間アイドル状
態となる。この問題は共有メモリの不連続部分をロッキ
ング及び非ロッキングする可能性を提供する機構を実行
することによって解決される。
【0007】従って、本発明の目的は、多重プロセッサ
基本システム中で読出可能、交換可能な共有メモリへの
アクセスを管理する方法を提供することにある。さら
に、本発明の目的は、同じメモリ空間をアクセスしょう
とするプロセッサ間で競合を避ける方法を供給する。
【0008】
【課題を解決するための手段】本発明の共通メモリ制御
方法は電気通信システム中で共有メモリ内の不連続なデ
ータ構造をアクセスできる複数のプロセッサを有し、
(a)各アドレスがデータ構造のスタートアドレスであ
りオープンセマフォアに対応する複数のアドレスをメモ
リバンク中にストアし、(b)リクエストデータ構造の
スタートアドレスをメモリバンク中のアドレスと比較
し、リクエストデータ構造に対するオープンセマフォア
の存在を決定し、(c)リクエストデータ構造のスター
トアドレスがメモリバンク中にない場合、及びセマフォ
アがリクエストされていない場合は、リクエストデータ
構造にメモリアクセスを許可し、(d)もしデータ構造
のスタートアドレスがメモリバンク中になく、セマフォ
アがリクエストされている場合は、リクエストデータ構
造のスタートアドレスをメモリバンク中にストアするこ
とによってセマフォアをオープンし、(e)もしリクエ
ストデータ構造のスタートアドレスがメモリバンク中の
オープンスタートアドレスと一致する場合は、リクエス
トデータ構造へのアクセスが許可された点で対応するオ
ープンセマフォアが閉鎖になるまで、一時的にリクエス
トデータ構造のスタートアドレスをストアするステップ
を有し、プロセッサの1つがメモリ内のデータ構造への
排他的なアクセスを制御するように構成される。
【0009】本発明の他の共通メモリ制御方法は電気通
信システム中で不連続なデータ構造を含む共有メモリを
アクセスできる複数のプロセッサを有し、(a)リクエ
ストデータ構造のスタートアドレスとメモリ中にストア
された複数のスタートアドレスとを比較し、各スタート
アドレスは共有メモリの各データ構造と関連し、(b)
もし、リクエストデータ構造のスタートアドレスがバン
クアドレス中のスタートアドレスのどれとも一致しない
ならば、リクエストデータ構造にメモリアクセスを許可
し、バンクアドレス中のリクエストデータ構造のスター
トアドレスをスタートし、(c)もし、メモリアドレス
がステップ(b)で許可されないならば、ステップ
(a)を繰り返すステップを有し、もし、データ構造が
他のプロセッサによってアクセスされないならば、プロ
セッサの1つが共有メモリ内のデータ構造へのアクセス
を制御するように構成される。
【0010】本発明の共通メモリ制御装置は電気通信シ
ステム中で共有メモリ内の不連続なデータ構造をアクセ
スできる複数のプロセッサを有し、(a)各アドレスが
データ構造のスタートアドレスでありオープンセマフォ
アに対応する複数のアドレスをストアするメモリバンク
と、(b)リクエストデータ構造に対するオープンセマ
フォアの存在を決定するために、リクエストデータ構造
のスタートアドレスをメモリバンク中のアドレスと比較
する比較手段と、(c)メモリバンクにストアされた対
応のオープンセマフォアが閉鎖になるまで、リクエスト
データ構造のスタートアドレスを一時的にストアする記
憶手段と、(d)もしリクエストデータ構造スタートア
ドレスがバンクアドレスでないときはリクエストデータ
構造にメモリアクセスを許可し、対応するオープンセマ
フォアが閉鎖されたときはリクエストデータ構造にメモ
リアクセスを許可する論理回路手段とを有し、プロセッ
サの1つがメモリ内のリクエストデータ構造へのメモリ
アクセスを制御するように構成される。
【0011】
【作用】メモリブロックに排他的にアクセスするメモリ
リクエストが許可されると、ブロックメモリのスタート
アドレスがレジスタバンク中に置かれ、それによってセ
マフォアがオープンされる。後続のメモリアクセスリク
エストのメモリブロックスタートアドレスはレジスタバ
ンク中のオープンセマフォアに対応するスタートアドレ
スと比較され、もし一致が検出されると、リクエストさ
れたメモリブロックへのアクセスは拒否される。アクセ
スが拒否されたリクエストに関連するスタートアドレス
は一時バッファに置かれ、そのリクエストは対応するオ
ープンセマフォアが閉鎖された後にアクセスが許可され
る。メモリアクセスがオープンセマフォアになったメモ
リブロックにメモリアクセスが許可されたリクエストは
セマフォアが閉鎖されるまでそのメモリブロックに排他
的にアクセスされる。
【0012】
【実施例】図1は本発明の一実施例の共有メモリを有す
る多重プロセッサシステムのブロック図である。図1に
おいて、M個のプロセッサ14はL×Mスイッチ13に
よってL個の共有メモリモジュール12に接続され、
(L+M)×Mスイッチ15を経由してN個のリンクハ
ンドラ16に接続される。このリンクハンドラ16はプ
ロセッサ14間のインタフェースと他の装置への伝送リ
ンクを供給する。
【0013】図2は図1に示される本発明の一実施例の
メモリモジュールのブロック図である。図2において、
各メモリモジュール12はセマフォアコントローラ2
0、メモリコントローラ21、入力待ち行列22及び出
力待ち行列23を含むメモリアクセス制御回路18に接
続されるメモリ17を含む。各入力待ち行列22と出力
待ち行列23はメモリリクエストをキュウイング及びス
トアする第1の先入れ先出し(FIFO)バッファと、
プロセッサ14との間でメモリリクエストの送受信を行
うインタフェース回路とを含んでいる。
【0014】セマフォアコントローラ20はオープンセ
マフォアと解除セマフォアに対する機構を有する。プロ
セッサが共有メモリモジュール12中のストアされたデ
ータ構造にアクセスをリクエストする場合は、セマフォ
アはデータ構造に排他的にアクセスするようにオープン
される。関連のオープンセマフォアを有する同じデータ
構造に対する他のプロセッサの1つからのリクエストは
競合状態にあると考えられ、中止される。セマフォアが
解除されるとそのデータ構造に対する他のリクエストは
許可される。
【0015】メモリコントローラ21はセマフォアコン
トローラ20から受信したメモリ読出コマンドとメモリ
書込みコマンドを実行する。メモリ読出コマンドの場合
は、メモリコントローラ21はリクエストデータを読出
し、読出リクエストを発信するプロセッサに読出れたデ
ータを送り返す。
【0016】図3は図2に示されるセマフォアコントロ
ーラ20の詳細ブロック図である。図3のセマフォアコ
ントローラ20はメモリアクセスリクエストを含む入力
待ち行列22からのフォーマットコマンドの受信に適応
するフォーマット回路30を含む。フォーマット回路3
0は、リクエスト処理回路によって要求される関連デー
タビットのみを含む1つのフォーマットリクエストをト
リガ回路31に送出する。トリガ回路31は単一リクエ
ストバッファ311、保持制御回路312及び保持レジ
スタバンク313を含む。
【0017】トリガ回路31の主な機能は1つの入力メ
モリリクエストと保持レジスタバンク313中にストア
された複数の前のリクエストとを比較することである。
単一リクエストバッファ311中の1つのフォーマット
リクエストは、もし保持レジスタバンク313中の対応
のアドレスと一致すれば、領域"H"中にビットをセット
することによってタグされる。保持レジスタバンク31
3中のアドレスとリクエストアドレスとの一致はオープ
ンセマフォアを有する競合に相当する。保持レジスタバ
ンク313に付加される(保持レジスタが満杯のときは
付加されない)オープンセマフォアリクエストはセマフ
ォアコントローラ20中の領域"F"にビットをセットす
ることによってタグされる。これらのリクエストは後
に、スペースが使用できるときに保持レジスタバンク3
13に付加される。
【0018】全てのタグされ及びタグされないリクエス
トは一時命令バッファ32中に一時的にストアされる。
単一リクエストバッファ311中に置かれフォーマット
された入力コマンドは、原リクエストワードに連結され
た2つの付加タグビットを有する一時命令バッファ32
送出される。これらのビットはアドレス一致又は保持レ
ジスタバンク313の満杯状態のいずれかに対応するタ
グ情報を含む。単一リクエストバッファ311は保持制
御回路312によって与えられる受信保持制御信号31
4及び保持レジスタバンク313によって与えられる信
号315に接続される。保持制御回路312と保持レジ
スタバンク313はそれぞれ、信号線316と信号線3
17を経由して単一リクエストバッファ311に接続さ
れ、それぞれ制御信号314と制御信号315によって
1つのリクエストを受信する。保持レジスタバンク31
3は、信号線33を経由して一時命令バッファ32から
信号を受信する。保持レジスタバンク313と一時命令
バッファ32は共に内容アドレスメモリバンクである。
一時命令バッファ32はリクエストの最大数を処理でき
るので決してオーバーフローしない。この最大数は共有
メモリをアクセスするプロセッサの数に等しい。一時命
令バッファ32のエントリの数は継続しているリクエス
トの数に等しい。各プロセッサ14は所定の時間で1つ
の継続中のリクエストによって制限される。このよう
に、入力リクエストに対してバッファ中には常に空きが
ある。
【0019】論理ゲートを有するバッファ制御回路34
は一時命令バッファ32中にストアされた情報を順序づ
けかつ制御する主な機能を有し、時命令バッファ32、
保持制御回路312及び解除制御回路35に制御信号を
与える。解除制御回路35はバッファ制御信号37に応
答して、かつ後に述べるように、一時命令バッファ32
中にストアされたビットの状態に応じて共有メモリにア
クセスする適応論理回路である。本発明の回路はここに
記述された内容によってこの分野の当業者ならば市販の
部品を用いて容易に実現できる。
【0020】図1から図4によて本発明の動作を説明す
る。図4はフォーマット回路30、保持レジスタバンク
313、単一リクエストバッファ311及び一時命令バ
ッファ32におけるデータフォーマットを示す。プロセ
ッサ14が共有メモリモジュール12の1つにストアさ
れたデータ構造にアクセスをリクエストする場合には、
共有メモリモジュール12の各入力待ち行列22にリク
エストを送出する。フォーマット回路30は先入れ先出
し(FIFO)によって各入力メモリアクセスリクエス
トを受信し、(バースト長のような)セマフォアコント
ローラ20に必須でない不要な情報を取り去って、その
リクエストを圧縮したリクエストに変換する。その不要
な情報が取り去られた情報は、後にメモリコントローラ
21によって処理するために、プロセッサの識別子と一
緒に小さなランダムアクセスメモリ(RAM)(図示さ
れていない)にストアされる。
【0021】メモリコントローラ21はメモリアクセス
が行われたときその後RAMをアクセスする。圧縮され
たフォーマットは3つの主要な情報領域を有する。これ
らの第1の領域はアクセスが行われるメモリブロックの
スタートアドレスに対応する。リクエストブロックの各
スタートアドレスは典型的にはデータ構造のスタートア
ドレスに対応する。メモリ読出及び書込はしばしば単一
ワードモードではなくバーストモードで実行される。メ
モリのバーストが全データ構造にアクセスするとき、バ
ーストモードは多重ワードがメモリに書込又はメモリか
ら読出されるようにする。第2の領域はリクエストのタ
イプに関する情報を含む。第3の領域は、共有メモリモ
ジュール12にストアされたデータ構造にアクセスをリ
クエストする特別のプロセッサ14の識別番号に対応す
る。
【0022】トリガ回路31は、セマフォアがオープン
される必要がないメモリ読出書込リクエスト、メモリ読
出及びオープンセマフォアリクエスト、セマフォアの閉
鎖を要求するメモリ書込リクエスト及びセマフォア解除
リクエストの形でフォーマット回路30から入力コマン
ドを受信する。データ構造に関するセマフォアが許可さ
れると、その許可が撤回されるまで他のリクエストはそ
のデータ構造又は共有メモリ内のブロックにアクセスす
ることができなくなる。
【0023】各入力フォーマットリクエストは単一リク
エストバッファ311にストアされる。保持制御回路3
12内の論理回路は単一リクエストバッファ311中の
共有メモリに置かれたリクエストメモリブロックのリク
エストスタートアドレスを保持レジスタバンク313中
の全てのアドレスと比較する。保持レジスタバンク31
3中にストアされた各アドレスはオープンセマフォア条
件と関係づけられる。特別のメモリブロックに対応する
オープンセマフォアが許可されたプロセッサはそのメモ
リブロックに排他的にアクセスする。もし、単一リクエ
ストバッファ311中のスタートアドレスが保持レジス
タバンク313中のアドレスの1つと一致し、そのリク
エストがオープンセマフォアに対応する書込リクエスト
であると、単一リクエストバッファ311は一致とされ
たものとしてタグされ、保持制御回路312は単一リク
エストバッファ311中の入力コマンドに続く2つのビ
ットの1つを表示する"H"領域にビットを設定する。"
H"ビット領域にビットを設定するということは、単一
リクエストバッファ311中の現在のリクエストが同じ
データ構造のオープンセマフォアと一致するデータ構造
にアクセスをリクエストすることに対応している。"H"
(保持)ビットが設定されると、バッファ制御回路34
は、少なくともオープンセマフォアが同じデータ構造に
対して解除されるまで、一時命令バッファ中の現在のリ
クエストを維持する。その時に中止されていた現在のリ
クエストは処理される。
【0024】セマフォアが解除されたとき、データ構造
の対応スタートアドレスは保持レジスタバンク313内
にストアされた複数のアドレスから取り除かれる。も
し、単一リクエストバッファ311中のスタートアドレ
スが保持レジスタバンク313中のアドレスと一致せ
ず、そのリクエストがオープンセマフォア条件に対応す
る書込リクエストであるときは、レジスタに空きがあれ
ば、このリクエストは保持レジスタバンク313にスト
アされた複数のアドレスに加えられる。この場合、"H"
ビットはクリアされ、リクエストは一時命令バッファ3
2に送出される。そのようなリクエストは一時命令バッ
ファ32中で中止されず、先入れ先出し(FIFO)の
順序で同じクラスの他のリクエストと一緒にバッファ制
御回路34によって処理される。一般に、どれかのリク
エストプロセッサによって発生された書込リクエスト
は、オープンセマフォア条件に対応する排他的アクセス
リクエストに先行する。前述のメカニズムによって全て
の書込リクエストがデータ構造のアクセスに対してクリ
アされるように保持レジスタバンク313中にリクエス
トをコピーする。排他的アクセスリクエストが先行する
という仮定はハードウエアを非常に簡単にする。これは
特別のデータ構造を制御するセマフォアを保持するプロ
セッサに属する書込リクエストのみの代わりに、一時命
令バッファ32を介して全ての書込リクエストが許可さ
れるからである。
【0025】全てのメモリ読出及びセマフォアリクエス
トは保持レジスタバンク313の現在のアドレスと比較
される。もし、アドレスの一致が検出されると(そのデ
ータと関連するデータ構造に対するオープンセマフォア
を示す)、リクエストに対する"H"ビットは設定され、
そのリクエストはそのリクエストが一時的に保持される
一時命令バッファ32に送出される。
【0026】もし保持レジスタバンク313が有効なエ
ントリで満たされ、レジスタに空きがなければ、単一リ
クエストバッファ311中のオープンセマフォアリクエ
ストは一時命令バッファ32にパスされ、"F"で表示さ
れる第2のタグビットが設定され、少なくとも保持レジ
スタバンク313中にレジスタが空きになるまでリクエ
ストは中止されねばならないことを表示する。レジスタ
が使用できるようになると、このリクエストは保持レジ
スタバンク313内にストアされた複数のアドレスに加
えられ、新たなセマフォアがオープンされる。
【0027】一時命令バッファ32は、リクエストセマ
フォアでなく保持レジスタバンク313中でオープンセ
マフォアと衝突するリクエストメモリ読出リクエストの
次のクラスにバッファリングを実行する。その後解除さ
れるセマフォアを待つ。セマフォアリクエストは保持レ
ジスタバンク313中にストアされたセマフォアリクエ
ストに対応するストアされたアドレスに加えられるべき
であるが、同じアドレスブロックをリクエストするオー
プンセマフォアが存在する故に保持レジスタバンク31
3に加えることができない。また、セマフォアリクエス
トは保持レジスタバンク313が一時的に満杯であると
きに保持レジスタバンク313中にストアされたセマフ
ォアリクエストに加えられない。さらに、メモリアクセ
スはFIFOの順序でコマンドと解除制御回路35によ
って一度に1つ処理され許可される。
【0028】一時命令バッファ32中のリクエストは保
持ビットをクリアする解除制御回路35によってのみ解
除される。データ構造にアクセスする許可の全ての条件
はそのリクエストがクリアされた両方のタグビットを有
するということである。一時命令バッファ32中のリク
エストは選択され、その後解除制御回路35によって一
度に1つ抽出され、もしタグビットがクリアされたなら
ば、メモリコントローラ21に送出される。リクエスト
データ構造のアドレス領域、関連するプロセッサの識別
番号、及び実行されるべきメモリコマンドのタイプを含
むワード形式でリクエストを受信しているメモリコント
ローラ21は、そのリクエストと関連する動作を実行す
る。
【0029】解除セマフォアコマンドは保持制御回路3
12で処理されない唯一の保持コマンドである。解除セ
マフォアコマンドはコマンドが一時命令バッファ32か
ら来た後、シーケンスの問題を避けるために解除制御回
路35によって処理される。もし、この解除が保持制御
回路312によって処理されるならば、書込コマンドの
ような同じコマンドに含まれる解除コマンドのようなコ
マンドは読出された関連のオープンセマフォアを有する
プロテクトデータ構造になる。オープンセマフォアの解
除と同時に保持レジスタバンク313からの各リクエス
トを取り除く。典型的には、継続中のオープンセマフォ
アリクエストが一時命令バッファ32中で待っており、
同じデータ構造のセマフォアが解除されたとき、その継
続中のセマフォアリクエストは保持レジスタバンク31
3内の他のアドレスと一緒にストアされ、一時命令バッ
ファ32中に"H"ビットはクリアされる。このように、
一時命令バッファ32は、条件が許可されるまで、結果
を一時的にストアするメカニズムを供給する。一時命令
バッファ32はさらに、許可を待っているプロセッサに
よるポーリングを中止する手段を有している。データ構
造へのメモリアクセスがオープンセマフォア又は保持レ
ジスタバンク313の満杯によって禁止されない時は、
リクエストは先入れ先出しの順序によって処理される。
【0030】本発明の回路において、タグ回路を含むが
一時命令バッファ32を含まない場合は、プロセッサが
セマフォアコントローラ20にポーリングを供給するシ
ステムでメリットが大きい。
【0031】もちろん、この発明は電気通信システムに
限定されることなく、プロセッサがデータ構造に排他的
アクセスをする必要がある他のデータシステムにおいて
も使用することができる。
【0032】本発明のクレームの範囲を逸脱することな
く、上述の実施例に多くの他の変形、追加をすることが
できる。
【0033】
【発明の効果】以上説明したように、本発明は、多重プ
ロセッサ基本システム中で読出可能、交換可能な共有メ
モリへのアクセスを管理できる。さらに、本発明は、同
じメモリ空間をアクセスしょうとするプロセッサ間で競
合を避けることができる。
【図面の簡単な説明】
【図1】図1は本発明の一実施例の共有メモリを有する
多重プロセッサシステムのブロック図である。
【図2】図2は図1に示される本発明の一実施例のメモ
リモジュールのブロック図である。
【図3】図3は図2に示されるセマフォアコントローラ
20の回路ブロック図である。
【図4】図4は図3に示され、コマンドとタグ領域を示
すセマフォアコントローラ20の回路ブロック図であ
る。
【符号の説明】
12 共通メモリモジュール 13 L×Mスイッチ 14 プロセッサ 15 (L+M)×Mスイッチ 16 リンクハンドラ 17 メモリ 18 メモリアクセス制御回路 20 セマフォアコントローラ 21 メモリコントローラ 22 入力待ち行列 23 出力待ち行列 30 フォーマット回路 31 トリガ回路 32 一時命令バッファ 34 バッファ制御回路 35 解除制御回路 311 単一リクエストバッファ 312 保持制御回路 313 保持レジスタバンク

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 共有メモリ内の不連続なデータ構造をア
    クセスできる複数のプロセッサを有するデータ処理シス
    テムにおいて、 (a)各アドレスがデータ構造のスタートアドレスであ
    りオープンセマフォアに対応する複数のアドレスをメモ
    リバンク中にストアし、 (b)リクエストデータ構造のスタートアドレスをメモ
    リバンク中のアドレスと比較し、リクエストデータ構造
    に対するオープンセマフォアの存在を決定し、 (c)リクエストデータ構造のスタートアドレスがメモ
    リバンク中にない場合、及びセマフォアがリクエストさ
    れていない場合は、リクエストデータ構造にメモリアク
    セスを許可し、 (d)もしデータ構造のスタートアドレスがメモリバン
    ク中になく、セマフォアがリクエストされている場合
    は、リクエストデータ構造のスタートアドレスをメモリ
    バンク中にストアすることによってセマフォアをオープ
    ンし、 (e)もしリクエストデータ構造のスタートアドレスが
    メモリバンク中のオープンスタートアドレスと一致する
    場合は、リクエストデータ構造へのアクセスが許可され
    た点で対応するオープンセマフォアが閉鎖になるまで、
    一時的にリクエストデータ構造のスタートアドレスをス
    トアする、ステップを有しプロセッサの1つがメモリ内
    のデータ構造への排他的なアクセスを制御することを特
    徴とする共有メモリ制御方法。
  2. 【請求項2】 請求項1において、対応するオープンセ
    マフォアを有しない一時的にストアされた複数のリクエ
    ストは、先入れ先出し順序で一度に1つづつ、アクセス
    が許可されることを特徴とする共有メモリ制御方法。
  3. 【請求項3】 不連続なデータ構造を含む共有メモリを
    アクセスできる複数のプロセッサを有するデータ処理シ
    ステムにおいて、 (a)各アドレスがデータ構造のスタートアドレスであ
    りオープンセマフォアに対応する複数のアドレスをメモ
    リバンク中にストアし、 (b)リクエストデータ構造のスタートアドレスを複数
    のストアされたアドレス、すなわち、リクエストデータ
    構造に対するオープンセマフォアの一致を比較し、 (c)最初のタグビットをリクエストデータ構造のスタ
    ートアドレスに関する指定ビット領域中に設定し、もし
    リクエストデータ構造のスタートアドレスがメモリバン
    ク中のアドレスに一致するならば、それによってオープ
    ンセマフォアの存在を示すメモリリクエストをタグし、 (d)もしセマフォアがリクエストデータ構造に対して
    必要ならば、ストアアドレスのフルバンクを表示するた
    めに2番目のタグビットをリクエストデータ構造のスタ
    ートアドレスに関する他の指定ビット領域中に設定し、 (e)バッファ中にタグリクエストをストアし、 (f)命令された方法によってバッファリクエストのど
    れかにメモリアクセスを許可し、タグビットのいずれも
    設定されない時のみリクエストが許可され、 (g)もし、セマフォアが必要であり、メモリバンクが
    満杯でなく、オープンセマフォアがリクエストデータ構
    造のメモリバンク内に存在しないならば、メモリバンク
    中のバッファ内にあるメモリリクエストをストアし、対
    応するリクエストに対するバッファ内のタグビット領域
    のタグビットを設定解除し、 (h)もし、セマフォアがそのリクエストに対して必要
    でなく、オープンセマフォアがメモリバンク内に存在し
    ないならば、バッファ内のリクエストに対応する第1の
    タグビットを設定解除し、 (i)ステップ(f)を繰り返す、ステップを有しプロ
    セッサの1つがメモリ内のデータ構造への排他的なアク
    セスを制御することを特徴とする共有メモリ制御方法。
  4. 【請求項4】 不連続なデータ構造を含む共有メモリを
    アクセスできる複数のプロセッサを有するデータ処理シ
    ステムにおいて、 (a)リクエストデータ構造のスタートアドレスとメモ
    リ中にストアされた複数のスタートアドレスとを比較
    し、各スタートアドレスは共有メモリの各データ構造と
    関連し、 (b)もし、リクエストデータ構造のスタートアドレス
    がバンクアドレス中のスタートアドレスのどれとも一致
    しないならば、リクエストデータ構造にメモリアクセス
    を許可し、バンクアドレス中のリクエストデータ構造の
    スタートアドレスをスタートし、 (c)もし、メモリアドレスがステップ(b)で許可さ
    れないならば、ステップ(a)を繰り返す、ステップを
    有し、もし、データ構造が他のプロセッサによってアク
    セスされないならば、プロセッサの1つが共有メモリ内
    のデータ構造へのアクセスを制御することを特徴とする
    共有メモリ制御方法。
  5. 【請求項5】 共有メモリ内の不連続なデータ構造をア
    クセスできる複数のプロセッサを有するデータ処理シス
    テムにおいて、 (a)各アドレスがデータ構造のスタートアドレスであ
    りオープンセマフォアに対応する複数のアドレスをスト
    アするメモリバンクと、 (b)リクエストデータ構造に対するオープンセマフォ
    アの存在を決定するために、リクエストデータ構造のス
    タートアドレスをメモリバンク中のアドレスと比較する
    比較手段と、 (c)メモリバンクにストアされた対応のオープンセマ
    フォアが閉鎖になるまで、リクエストデータ構造のスタ
    ートアドレスを一時的にストアする記憶手段と、 (d)もしリクエストデータ構造のスタートアドレスが
    バンクアドレスでないときはリクエストデータ構造にメ
    モリアクセスを許可し、対応するオープンセマフォアが
    閉鎖されたときは、リクエストデータ構造にメモリアク
    セスを許可する論理回路手段と、を有し、プロセッサの
    1つが共有メモリを制御し、メモリ内のデータ構造への
    アクセスを制御することを特徴とする共有メモリ制御装
    置。
  6. 【請求項6】 共有メモリ内の不連続なデータ構造をア
    クセスできる複数のプロセッサを有するデータ処理シス
    テムにおいて、 (a)各アドレスがデータ構造のスタートアドレスであ
    りオープンセマフォアに対応する複数のアドレスをスト
    アするメモリバンクと、 (b)リクエストデータ構造に対するオープンセマフォ
    アの存在を決定するために、リクエストデータ構造のス
    タートアドレスをメモリバンク中のアドレスと比較する
    比較手段と、 (c)もし、セマフォアがリクエストされ、データ構造
    のスタートアドレスがメモリバンク中にないときは、リ
    クエストデータ構造のスタートアドレスをメモリバンク
    とオープンセマフォアにストアする制御論理回路と、 (d)対応するオープンセマフォアが閉鎖になるまで、
    リクエストデータ構造のスタートアドレスを一時的にス
    トアするためのバッファと、 (e)バッファ内の所定の順序のリクエストを維持する
    ためのバッファ制御回路と、 (f)バッファ内のリクエストへのアクセスを許可する
    ための解除制御回路と、を有し、プロセッサの1つが共
    有メモリを制御し、メモリ内のデータ構造への排他的ア
    クセスを制御することを特徴とする共有メモリ制御装
    置。
  7. 【請求項7】 共有メモリ内の不連続なデータ構造をア
    クセスできる複数のプロセッサを有するデータ処理シス
    テムにおいて、 (a)リクエストデータ構造のスタートアドレスを一時
    的にストアするためのリクエストバッファと、 (b)オープンセマフォアに対応するデータ構造スター
    トアドレスをストアするためのリクエストバッファとカ
    ップルされたレジスタバンクと、 (c)リクエストバッファ、レジスタバンク、及びバッ
    ファ制御回路とカップルされ、リクエストバッファ内に
    複数のビットを設定する手段を含み、リクエストバッフ
    ァ内のリクエストデータ構造スタートアドレスとオープ
    ンセマフォアに対応するレジスタバンク内にストアされ
    たアドレスとを比較する手段を含む保持論理回路と、 (d)データ構造にリクエストを一時的にストアし、リ
    クエストバッファとバッファ内の所定の順序のリクエス
    トを維持するバッファ制御回路に応答するバッファと、 (e)バッファ制御回路及びバッファ中のリクエストに
    アクセスを許可するための一時命令バッファに応答する
    解除制御回路と、を有し、プロセッサの1つがメモリ内
    のデータ構造への排他的アクセスを制御することを特徴
    とする共有メモリ制御装置。
JP4112188A 1991-04-04 1992-04-04 共有メモリ制御方法及び共有メモリ制御装置 Expired - Fee Related JP3010400B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68044891A 1991-04-04 1991-04-04
US680,448 1991-04-04

Publications (2)

Publication Number Publication Date
JPH06103155A true JPH06103155A (ja) 1994-04-15
JP3010400B2 JP3010400B2 (ja) 2000-02-21

Family

ID=24731155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4112188A Expired - Fee Related JP3010400B2 (ja) 1991-04-04 1992-04-04 共有メモリ制御方法及び共有メモリ制御装置

Country Status (5)

Country Link
US (1) US5485593A (ja)
JP (1) JP3010400B2 (ja)
CA (1) CA2057446C (ja)
DE (1) DE4207158A1 (ja)
GB (1) GB2254457B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530679A (ja) * 2012-10-04 2015-10-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高効率アトミック演算を使用した方法および装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2570969B2 (ja) * 1993-07-05 1997-01-16 日本電気株式会社 メモリ管理システム及び方法
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
DE69630126T2 (de) * 1995-07-27 2004-06-17 Intel Corporation, Santa Clara Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
JP2731761B2 (ja) * 1995-08-29 1998-03-25 甲府日本電気株式会社 ネットワーク制御装置
US5721871A (en) * 1996-02-09 1998-02-24 Motorola, Inc. Memory system ensuring coherency for memory buffers in a data communication system
JPH1027150A (ja) * 1996-07-09 1998-01-27 Murata Mach Ltd 情報処理装置及び外部装置
US5760836A (en) * 1996-08-22 1998-06-02 International Business Machines Corporation FIFO feedback and control for digital video encoder
US6418517B1 (en) * 1997-08-29 2002-07-09 International Business Machines Corporation Optimized function execution for a multiprocessor computer system
US6345324B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Apparatus for transferring data using an interface element and a queued direct input-output device
US6345329B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Method and apparatus for exchanging data using a queued direct input-output device
US6339803B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Computer program product used for exchange and transfer of data having a queuing mechanism and utilizing a queued direct input-output device
US6401145B1 (en) * 1999-02-19 2002-06-04 International Business Machines Corporation Method of transferring data using an interface element and a queued direct input-output device
WO2001033374A1 (de) * 1999-11-02 2001-05-10 Siemens Aktiengesellschaft Burst-konzentrator zur effektiven unterstützung eines burstfähigen bussystems bei sequentiellen einzelwort-zugriffen
GB2370131C (en) * 2000-12-12 2006-09-06 Advanced Risc Mach Ltd Exclusive access control to a processing resource
DE10063982A1 (de) 2000-12-14 2002-07-04 Ifak Inst Fuer Automation Und Feldgerät für Automatisierungssysteme
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
CA2461500A1 (en) 2001-09-26 2003-04-03 Siemens Aktiengesellschaft Method for processing consistent data sets
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US10839478B2 (en) * 2019-04-08 2020-11-17 Intel Corporation Accumulator pooling mechanism

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52140237A (en) * 1976-05-18 1977-11-22 Nec Corp Lock control system
JPS5621260A (en) * 1979-07-27 1981-02-27 Nec Corp Access unit
JPS56149657A (en) * 1980-04-22 1981-11-19 Fujitsu Ltd Exclusive control system for shared external storage
JPS6073771A (ja) * 1983-09-29 1985-04-25 Fujitsu Ltd 直接アクセス記憶装置の逐次化方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3435418A (en) * 1965-05-27 1969-03-25 Ibm Record retrieval and record hold system
CA929272A (en) * 1969-03-05 1973-06-26 R. Bennett James Data processing system having status indicating and storage means
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
US4951193A (en) * 1986-09-05 1990-08-21 Hitachi, Ltd. Parallel computer with distributed shared memories and distributed task activating circuits
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
US4910656A (en) * 1987-09-21 1990-03-20 Motorola, Inc. Bus master having selective burst initiation
US4985831A (en) * 1988-10-31 1991-01-15 Evans & Sutherland Computer Corp. Multiprocessor task scheduling system
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52140237A (en) * 1976-05-18 1977-11-22 Nec Corp Lock control system
JPS5621260A (en) * 1979-07-27 1981-02-27 Nec Corp Access unit
JPS56149657A (en) * 1980-04-22 1981-11-19 Fujitsu Ltd Exclusive control system for shared external storage
JPS6073771A (ja) * 1983-09-29 1985-04-25 Fujitsu Ltd 直接アクセス記憶装置の逐次化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530679A (ja) * 2012-10-04 2015-10-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高効率アトミック演算を使用した方法および装置

Also Published As

Publication number Publication date
CA2057446A1 (en) 1992-10-05
JP3010400B2 (ja) 2000-02-21
DE4207158A1 (de) 1992-10-08
GB9204453D0 (en) 1992-04-15
GB2254457B (en) 1995-05-31
US5485593A (en) 1996-01-16
GB2254457A (en) 1992-10-07
CA2057446C (en) 1998-02-17

Similar Documents

Publication Publication Date Title
JP3010400B2 (ja) 共有メモリ制御方法及び共有メモリ制御装置
RU2182356C2 (ru) Способ и устройство для поддержания упорядочения транзакций и разрешения конфликтных ситуаций в мостовой схеме шин
US6782440B2 (en) Resource locking and thread synchronization in a multiprocessor environment
US5263161A (en) Non-busy waiting resource control
US3560935A (en) Interrupt apparatus for a modular data processing system
EP0682312A2 (en) Hardware implemented locking mechanism for parallel/distributed computer system
US5918055A (en) Apparatus and method for managing digital resources by passing digital resource tokens between queues
JPH09128351A (ja) 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
JPH01147647A (ja) データ処理装置
CA2007737C (en) Data transfer operations between two asynchronous buses
JPH06119297A (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
US6108757A (en) Method for locking a shared resource in multiprocessor system
US20020078269A1 (en) Active ports in a transfer controller with hub and ports
WO1991002310A1 (en) Non-busy-waiting resource control
JP3536219B2 (ja) 分散メモリ保護管理装置
JP3467188B2 (ja) 多重化バスの順序保証システム
JPH05257903A (ja) マルチプロセッサシステム
JPH03241442A (ja) ストアバッファ制御方式
JPH0619855A (ja) メッセージのキューイング方法とその装置
JPS601656B2 (ja) 緩衝記憶回路
JP3126129B2 (ja) プライオリティ制御装置
JP2856709B2 (ja) バス間結合システム
JPH0512219A (ja) プロセス転送方式
JPH064462A (ja) バス結合方式
JPH01276355A (ja) マルチバスへの主記憶データ転送方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees