JPWO2006057208A1 - マルチプロセッサシステム及びそれにおける排他制御方法 - Google Patents
マルチプロセッサシステム及びそれにおける排他制御方法 Download PDFInfo
- Publication number
- JPWO2006057208A1 JPWO2006057208A1 JP2006547760A JP2006547760A JPWO2006057208A1 JP WO2006057208 A1 JPWO2006057208 A1 JP WO2006057208A1 JP 2006547760 A JP2006547760 A JP 2006547760A JP 2006547760 A JP2006547760 A JP 2006547760A JP WO2006057208 A1 JPWO2006057208 A1 JP WO2006057208A1
- Authority
- JP
- Japan
- Prior art keywords
- lock
- variable
- read
- signal
- register
- 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
Links
- 238000000034 method Methods 0.000 title claims description 16
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
Description
11,12 CPU
15,16 クロスバーバス
17 システムメモリ
18 ロックレジスタ
LOCK メインロック変数
lock サブロック変数
READ 読出信号
WRITE 書込信号
BUSRetry バスリトライ信号
READdatabus 読出データバス信号
【技術分野】
[0001]
本発明は、マルチプロセッサシステムに関し、さらに詳しくは、排他制御を実行する前にロックを獲得し、排他制御を実行した後にロックを解放するマルチプロセッサシステムに関する。
【背景技術】
[0002]
従来、マルチスレッドプログラミングの実行環境として、MESI(Modified Exclusive Shared Invalid)のようなキャッシュコヒーレンシプロトコルと、不可分(アトミック)転送をサポートするバスとが必要である。しかし、これらを実装したCPU(Central Processing Unit)及びバスは高価である。
[0003]
今日、安価なCPUであっても、Linuxサポートの必要性からTLB(Translation Look−aside Buffer)を持っている。このようなCPUを用いた場合、アトミック転送をサポートするバスさえ実装すれば、マルチプロセッサシステムを構築することができる。この場合、バススヌープのハードウェアサポートがなくても、NUMA(Non−Uniform Memory Access)と同じOS(Operating System)を利用すれば、TLBのサポートを使ってキャッシュコヒーレンシを維持することは可能である。
[0004]
ここで、アトミック転送をサポートするバスが必要なのは、CPU間の排他制御を可能にするためである。たとえば各CPUのTLBを排他的に書き換えるためには、ロック変数をアトミックにリードモディファイライトする必要がある。しかし、ユニプロセッサを意図して設計された安価な組み込みプロセッサ及びそのバス規約は、アトミックリードモディファイライトをサポートしていない。
[0005]
以下、アトミックリードモディファイライトの必要性を図5を参照して説明する。ここでは、ロック変数lockをメモリ上にアロケートしている。
[0006]
まずCPUはメモリからロック変数lockを読み出し(S1)、lock=1か否かを判断する(S2)。lock=1、つまりロック変数がロック状態になっている限り(S2でYES)、CPUは繰り返しロック変数lockを読み出す(S1)。一方、lock=0、つまりロック変数が非ロ
【発明が解決しようとする課題】
[0012]
本発明の目的は、ロック変数のアトミックリードモディファイライト機能を有する高価なシステムと同等の機能を簡単な構成で実現可能なマルチプロセッサシステムを提供することである。
課題を解決するための手段及び発明の効果
[0013]
本発明によるマルチプロセッサシステムは、複数のプロセッサと、ロックレジスタとを備える。プロセッサの各々は、排他制御を実行する前にロックを獲得するために読出信号をアサートし、かつ排他制御を実行した後にロックを解放するために書込信号をアサートする。ロックレジスタは、複数のプロセッサに接続される。ロックレジスタは、保持手段と、ロック変数出力手段と、ロック変数入力手段とを含む。保持手段は、ロック状態又は非ロック状態の第1のロック変数を保持する。ロック変数出力手段は、プロセッサの1つが読出信号をアサートすると、それ以前に保持手段に保持されていた第1のロック変数を出力する。ロック変数入力手段は、プロセッサの1つが読出信号をアサートすると、ロック状態の第1のロック変数を保持手段に設定し、プロセッサの1つが書込信号をアサートすると、非ロック状態の第1のロック変数を保持手段に設定する。
[0014]
上記マルチプロセッサシステムでは、あるプロセッサが読出信号をアサートすると、ロックレジスタから第1のロック変数が読み出されるとともに、ロックレジスタにロック状態の第1のロック変数が書き込まれる。読み出された第1のロック変数が非ロック状態の場合、そのプロセッサはロックを獲得することができる。第1のロック変数が読み出されるとともに、ロック状態の第1のロック変数が書き込まれるので、その直後に、別のプロセッサが読出信号をアサートしても、ロックレジスタからロック状態の第1のロック変数が読み出されるため、その別のプロセッサはロックを獲得することができない。このように、本発明によるマルチプロセッサシステムは、ロックレジスタを設けるだけで、ロック変数のアトミックリードモディファイライト機能を有する高価なシステムと同等の機能を実現することができる。
[0015]
好ましくは、ロックレジスタはさらに、バスリトライ手段を含む。バスリトライ手段は、第1のロック変数がロック状態に設定されている間にプロセッサの1つが読出信号をアサートすると、プロセッサに供給するためのバスリトライ信号を発生する。
[0016]
この場合、プロセッサはバスリトライ信号を受け、これによりロックの獲得が不可能なことを認識するので、むやみに読出信号をアサートしないようにすることができる。
[0017]
好ましくは、マルチプロセッサシステムはさらに、第1のバスと、メモリと、2のバスとを備える。第1のバスは、複数のプロセッサに共通に接続される。メモリは、第1のバスに接続される。第2のバスは、複数のプロセッサに共通に接続される。ロックレジスタは第2のバスに接続される。
[0018]
この場合、あるプロセッサがロックを獲得しているために、別のプロセッサがそのロックの解放を待っているとき、その別のプロセッサは第2のバス経由で読出信号をアサートしてロックレジスタから第1のロック変数を読み出し、その一方で、ロックを獲得しているプロセッサは第1のバス経由でメモリにアクセスする。したがって、ロックを獲得しているプロセッサからメモリへのアクセスは妨げられない。
[0019]
さらに好ましくは、メモリは1又は2以上の第2のロック変数を記憶する。プロセッサの各々は、読出信号をアサートしてロックレジスタから第1のロック変数を読み出し、読み出した第1のロック変数が非ロック状態の場合、メモリから第2のロック変数を読み出し、読み出した第2のロック変数が非ロック状態の場合、第2のロック変数をロック状態に書き換える。
[0020]
この場合、プロセッサはまずロックレジスタから第1のロック変数を読み出してロックを獲得し、続いてメモリから第2のロック変数を読み出してロックを獲得する。このようにロックを階層的に獲得するようにしているので、多数のロック変数を設定することができる。
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
【発明を実施するための最良の形態】
[0027]
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当
Claims (7)
- 各々が、排他制御を実行する前にロックを獲得するために読出信号をアサートし、かつ排他制御を実行した後にロックを解放するために書込信号をアサートする複数のプロセッサと、
前記複数のプロセッサに接続されたロックレジスタとを備え、
前記ロックレジスタは、
ロック状態又は非ロック状態の第1のロック変数を保持する保持手段と、
前記プロセッサの1つが読出信号をアサートすると、それ以前に前記保持手段に保持されていた第1のロック変数を出力するロック変数出力手段と、
前記プロセッサの1つが読出信号をアサートすると、ロック状態の第1のロック変数を前記保持手段に設定し、前記プロセッサの1つが書込信号をアサートすると、非ロック状態の第1のロック変数を前記保持手段に設定するロック変数入力手段とを含むことを特徴とするマルチプロセッサシステム。 - 請求項1に記載のマルチプロセッサシステムであって、
前記ロックレジスタはさらに、
前記第1のロック変数がロック状態に設定されている間に前記プロセッサの1つが読出信号をアサートすると、前記プロセッサに供給するためのバスリトライ信号を発生するバスリトライ手段を含むことを特徴とするマルチプロセッサシステム。 - 請求項1に記載のマルチプロセッサシステムであってさらに、
前記複数のプロセッサに共通に接続された第1のバスと、
前記第1のバスに接続されたメモリと、
前記複数のプロセッサに共通に接続された第2のバスとを備え、
前記ロックレジスタは前記第2のバスに接続されたことを特徴とするマルチプロセッサシステム。 - 請求項1に記載のマルチプロセッサシステムであってさらに、
1又は2以上の第2のロック変数を記憶するメモリを備え、
前記プロセッサの各々は、読出信号をアサートして前記ロックレジスタから第1のロック変数を読み出し、読み出した第1のロック変数が非ロック状態の場合、前記メモリから第2のロック変数を読み出し、読み出した第2のロック変数が非ロック状態の場合、第2のロック変数をロック状態に書き換えることを特徴とするマルチプロセッサシステム。 - 複数のプロセッサと、前記複数のプロセッサに接続されたロック状態又は非ロック状態の第1のロック変数を保持するロックレジスタとを備えたマルチプロセッサにおける排他制御方法であって、
前記プロセッサの1つがロックを獲得するために読出信号をアサートすると、前記ロックレジスタから第1のロック変数を読み出すとともに、ロック状態の第1のロック変数を前記ロックレジスタに書き込むステップと、
読み出した第1のロック変数が非ロック状態の場合、当該1つのプロセッサによって排他制御を実行する排他制御ステップと、
排他制御を実行した後、当該1つのプロセッサがロックを解放するために書込信号をアサートすると、非ロック状態の第1のロック変数を前記ロックレジスタに書き込むステップとを含むことを特徴とするマルチプロセッサシステムにおける排他制御方法。 - 請求項5に記載の排他制御方法であってさらに、
前記第1のロック変数がロック状態の間に前記プロセッサの1つが読出信号をアサートすると、前記プロセッサに供給するためのバスリトライ信号を発生するステップを含むことを特徴とするマルチプロセッサシステムにおける排他制御方法。 - 請求項5に記載の排他制御方法であって、前記マルチプロセッサシステムはさらに、1又は2以上の第2のロック変数を記憶するメモリを備え、
前記排他制御ステップは、
読み出した第1のロック変数が非ロック状態の場合、前記メモリから第2のロック変数を読み出すステップと、
読み出した第2のロック変数が非ロック状態の場合、第2のロック変数をロック状態に書き換えるステップと、
第2のロック変数をロック状態に書き換えた後、排他制御を実行するステップとを含むことを特徴とするマルチプロセッサシステムにおける排他制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006547760A JP4852427B2 (ja) | 2004-11-26 | 2005-11-21 | マルチプロセッサシステム及びそれにおける排他制御方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004341466 | 2004-11-26 | ||
JP2004341466 | 2004-11-26 | ||
JP2006547760A JP4852427B2 (ja) | 2004-11-26 | 2005-11-21 | マルチプロセッサシステム及びそれにおける排他制御方法 |
PCT/JP2005/021336 WO2006057208A1 (ja) | 2004-11-26 | 2005-11-21 | マルチプロセッサシステム及びそれにおける排他制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2006057208A1 true JPWO2006057208A1 (ja) | 2008-08-07 |
JP4852427B2 JP4852427B2 (ja) | 2012-01-11 |
Family
ID=36497945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006547760A Expired - Fee Related JP4852427B2 (ja) | 2004-11-26 | 2005-11-21 | マルチプロセッサシステム及びそれにおける排他制御方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080270723A1 (ja) |
EP (1) | EP1832980B1 (ja) |
JP (1) | JP4852427B2 (ja) |
CN (1) | CN101061462B (ja) |
AT (1) | ATE555437T1 (ja) |
WO (1) | WO2006057208A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080133858A1 (en) * | 2004-11-04 | 2008-06-05 | Board Of Trustees Of Michigan State University | Secure Bit |
JP4874165B2 (ja) * | 2006-07-07 | 2012-02-15 | ルネサスエレクトロニクス株式会社 | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
CN104508645B (zh) * | 2012-07-31 | 2017-08-18 | 慧与发展有限责任合伙企业 | 用于使用多个子锁来控制对具有读取器‑写入器锁的共享数据结构的访问的系统和方法 |
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
CN104268105B (zh) * | 2014-09-23 | 2017-06-30 | 天津国芯科技有限公司 | 处理器局部总线互斥存取的扩展结构及操作方法 |
CN106980544B (zh) * | 2017-03-31 | 2020-03-03 | 北京奇艺世纪科技有限公司 | 一种线程同步方法及线程同步系统 |
CN114036091B (zh) * | 2021-10-30 | 2023-06-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多处理器外设复用电路及其复用方法 |
US12039339B1 (en) * | 2022-06-28 | 2024-07-16 | Amazon Technologies, Inc. | System configuration control through locking of control registers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0680497B2 (ja) * | 1989-12-15 | 1994-10-12 | 富士通株式会社 | 排他記憶域制御方式 |
JPH06348661A (ja) * | 1993-06-11 | 1994-12-22 | Fujitsu Ltd | マルチプロセッサ間排他制御方式 |
JPH07113909B2 (ja) * | 1992-11-27 | 1995-12-06 | 工業技術院長 | 並列計算機 |
JP3381733B2 (ja) * | 1991-09-27 | 2003-03-04 | サン・マイクロシステムズ・インコーポレイテッド | 原子アクセス制御レジスタ装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01286070A (ja) * | 1988-05-13 | 1989-11-17 | Nec Corp | データ処理システム |
US5175829A (en) * | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
US5669002A (en) * | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
JPH07191944A (ja) * | 1991-09-11 | 1995-07-28 | Internatl Business Mach Corp <Ibm> | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 |
US5666515A (en) * | 1993-02-18 | 1997-09-09 | Unisys Corporation | Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address |
US5535365A (en) * | 1993-10-22 | 1996-07-09 | Cray Research, Inc. | Method and apparatus for locking shared memory locations in multiprocessing systems |
US6226717B1 (en) * | 1999-02-04 | 2001-05-01 | Compaq Computer Corporation | System and method for exclusive access to shared storage |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
JP3963372B2 (ja) * | 2001-02-24 | 2007-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システム |
US6986005B2 (en) * | 2001-12-31 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Low latency lock for multiprocessor computer system |
JP6080497B2 (ja) * | 2012-10-31 | 2017-02-15 | ルネサスエレクトロニクス株式会社 | 抵抗補正回路、抵抗補正方法、及び半導体装置 |
JP7113909B2 (ja) * | 2018-11-15 | 2022-08-05 | 株式会社Fuji | プラズマ照射装置 |
-
2005
- 2005-11-21 JP JP2006547760A patent/JP4852427B2/ja not_active Expired - Fee Related
- 2005-11-21 WO PCT/JP2005/021336 patent/WO2006057208A1/ja active Application Filing
- 2005-11-21 CN CN2005800400253A patent/CN101061462B/zh not_active Expired - Fee Related
- 2005-11-21 AT AT05809751T patent/ATE555437T1/de active
- 2005-11-21 US US11/720,204 patent/US20080270723A1/en not_active Abandoned
- 2005-11-21 EP EP05809751A patent/EP1832980B1/en not_active Not-in-force
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0680497B2 (ja) * | 1989-12-15 | 1994-10-12 | 富士通株式会社 | 排他記憶域制御方式 |
JP3381733B2 (ja) * | 1991-09-27 | 2003-03-04 | サン・マイクロシステムズ・インコーポレイテッド | 原子アクセス制御レジスタ装置 |
JPH07113909B2 (ja) * | 1992-11-27 | 1995-12-06 | 工業技術院長 | 並列計算機 |
JPH06348661A (ja) * | 1993-06-11 | 1994-12-22 | Fujitsu Ltd | マルチプロセッサ間排他制御方式 |
Also Published As
Publication number | Publication date |
---|---|
EP1832980B1 (en) | 2012-04-25 |
EP1832980A1 (en) | 2007-09-12 |
CN101061462A (zh) | 2007-10-24 |
CN101061462B (zh) | 2010-10-06 |
ATE555437T1 (de) | 2012-05-15 |
EP1832980A4 (en) | 2011-02-23 |
JP4852427B2 (ja) | 2012-01-11 |
WO2006057208A1 (ja) | 2006-06-01 |
US20080270723A1 (en) | 2008-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4852427B2 (ja) | マルチプロセッサシステム及びそれにおける排他制御方法 | |
TWI434214B (zh) | 用以延伸快取一致性以保持緩衝資料之裝置,處理器,系統及方法 | |
JP6342970B2 (ja) | トランザクショナルメモリ(tm)システムにおける読み出し及び書き込み監視属性 | |
US8364911B2 (en) | Efficient non-transactional write barriers for strong atomicity | |
US7007108B2 (en) | System method for use of hardware semaphores for resource release notification wherein messages comprises read-modify-write operation and address | |
JP5366802B2 (ja) | 仮想化されたトランザクショナルメモリのグローバルオーバーフロー方法 | |
US5550988A (en) | Apparatus and method for performing error correction in a multi-processor system | |
US9052947B2 (en) | Unified optimistic and pessimistic concurrency control for a software transactional memory (STM) system | |
US8706982B2 (en) | Mechanisms for strong atomicity in a transactional memory system | |
US8209689B2 (en) | Live lock free priority scheme for memory transactions in transactional memory | |
TWI461912B (zh) | 用於交易式記憶體系統中之硬體屬性之記憶體模式 | |
US20020078307A1 (en) | Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes | |
US8296524B2 (en) | Supporting efficient spin-locks and other types of synchronization in a cache-coherent multiprocessor system | |
KR20020097145A (ko) | 라운드 로빈 및 로킹 캐시 대체 수행 방법 및 장치 | |
JP2007058493A (ja) | マルチプロセッサシステム及びそれにおける排他制御方法 | |
US6484272B1 (en) | Gate close balking for fair gating in a nonuniform memory architecture data processing system | |
US6480973B1 (en) | Gate close failure notification for fair gating in a nonuniform memory architecture data processing system | |
JP2005327086A (ja) | 半導体集積回路装置 | |
JPH05143454A (ja) | キヤツシユ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100629 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20100709 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100709 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100909 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110720 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110725 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111004 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20111004 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111024 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141028 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |