JP2010117869A - メモリ制御装置、プログラム及び方法 - Google Patents
メモリ制御装置、プログラム及び方法 Download PDFInfo
- Publication number
- JP2010117869A JP2010117869A JP2008290387A JP2008290387A JP2010117869A JP 2010117869 A JP2010117869 A JP 2010117869A JP 2008290387 A JP2008290387 A JP 2008290387A JP 2008290387 A JP2008290387 A JP 2008290387A JP 2010117869 A JP2010117869 A JP 2010117869A
- Authority
- JP
- Japan
- Prior art keywords
- update
- transaction
- shared memory
- entry
- version
- 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
Images
Classifications
-
- 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/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】共有メモリに対するアクセスをトランザクション単位で制御するメモリ制御装置であって、共有メモリに記憶されたデータのバージョンを記憶する管理部と、トランザクションの処理中の共有メモリに対する更新処理の実行に応じて、当該更新処理をしたデータのバージョンを含む更新エントリを、トランザクション毎に記憶するログ記憶部と、トランザクションのコミット要求が与えられたことに応じて、更新エントリに含まれるバージョンと管理部に記憶されたバージョンとが一致する場合、当該更新処理の実行に応じた処理結果を共有メモリに書き込み、一致しない場合、当該更新処理を再実行して再実行結果を共有メモリに書き込む制御部と、を備えるメモリ制御装置を提供する。
【選択図】図3
Description
12 スレッド
14 共有メモリ
20 実行部
30 メモリ制御装置
32 管理部
34 ログ記憶部
36 制御部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM
Claims (13)
- 共有メモリに対するアクセスをトランザクション単位で制御するメモリ制御装置であって、
前記共有メモリに記憶されたデータのバージョンを記憶する管理部と、
トランザクションの処理中の前記共有メモリに対する更新処理の実行に応じて、当該更新処理をしたデータのバージョンを含む更新エントリを、トランザクション毎に記憶するログ記憶部と、
トランザクションのコミット要求が与えられたことに応じて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致する場合、当該更新処理の実行に応じた処理結果を前記共有メモリに書き込み、一致しない場合、当該更新処理を再実行して再実行結果を前記共有メモリに書き込む制御部と、
を備えるメモリ制御装置。 - 前記制御部は、トランザクションのコミット要求が与えられたことに応じて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致せず且つ当該更新処理の実行に応じた処理結果が読み出されている場合、再実行結果を前記共有メモリに書き込むことなく、当該トランザクションをロールバックさせる
請求項1に記載のメモリ制御装置。 - 前記制御部は、トランザクションのコミット要求が与えられたことに応じて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致せず且つ当該更新処理の処理結果が他の書込処理に応じて上書きされている場合、上書きされたデータを前記共有メモリに書き込む
請求項1から2の何れかに記載のメモリ制御装置。 - 前記管理部は、前記共有メモリに記憶されたデータのバージョンをアドレス毎に管理し、
前記ログ記憶部は、それぞれの更新エントリに、当該更新処理において更新するデータの共有メモリ上のアドレスおよび当該更新処理において更新するデータのバージョンを含めて記憶し、
前記制御部は、トランザクションのコミット要求が与えられたことに応じて、当該トランザクションの処理中において記憶された更新エントリのそれぞれについて、当該更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致する場合、当該更新処理の実行に応じた処理結果を前記共有メモリの当該更新エントリに含まれたアドレスに書き込み、一致しない場合、当該更新処理を再実行して再実行結果を前記共有メモリの当該更新エントリに含まれたアドレスに書き込む
請求項1から3の何れかに記載のメモリ制御装置。 - 前記ログ記憶部は、
トランザクションの処理中の前記共有メモリに対する読出処理の実行に応じて、当該読出処理において読み出すデータの共有メモリ上のアドレスおよび当該読出処理において読み出すデータのバージョンを含む読出エントリを、トランザクション毎に記憶し、
トランザクションの処理中の前記共有メモリに対する書込処理の実行に応じて、当該書込処理において書き込むデータの共有メモリ上のアドレスおよび当該書込処理において前記共有メモリに書き込むデータを含む書込エントリを、トランザクション毎に記憶し、
トランザクションの処理中の前記共有メモリに対する更新処理の実行に応じて、当該更新処理において読み出すデータの共有メモリ上のアドレスおよび当該更新処理において読み出すデータのバージョンを含む読出エントリを、トランザクション毎に記憶し、
トランザクションの処理中の前記共有メモリに対する更新処理の実行に応じて、当該更新処理において書き込むデータの共有メモリ上のアドレスおよび当該更新処理において前記共有メモリに書き込む当該更新処理の処理結果であるデータを含む書込エントリを、トランザクション毎に記憶する
請求項4に記載のメモリ制御装置。 - 前記ログ記憶部は、トランザクションの処理中の前記共有メモリに対する更新処理の実行において、当該更新処理において更新するデータの共有メモリ上のアドレスが既に何れかの書込エントリに含まれている場合、当該更新処理に対応する新たな更新エントリを記憶せずに、当該更新処理において更新するデータの共有メモリ上のアドレスを含む書込エントリに更新処理結果を格納する
請求項5に記載のメモリ制御装置。 - 前記ログ記憶部は、それぞれの更新エントリに、当該更新処理の処理結果を含む書込エントリへのポインタを含めて記憶し、
前記制御部は、
トランザクションのコミット要求が与えられたことに応じて、
当該トランザクションの処理中において記憶された更新エントリのそれぞれについて、当該更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致しない場合、当該更新処理を再実行し、
更新処理を再実行した再実行結果を、再実行対象となる更新処理に対応する更新エントリに含まれる前記ポインタにより示された書込エントリ内に上書きし、
当該トランザクションに対応するそれぞれの書込エントリに含まれるデータを、前記共有メモリの当該書込エントリに含まれたアドレスに書き込む
請求項5から6の何れかに記載のメモリ制御装置。 - 前記ログ記憶部は、更新処理の処理結果を含む書込エントリに、当該更新処理の内容を表わす内容情報を含めて記憶し、
前記制御部は、再実行対象となる更新処理に対応する更新エントリに含まれる前記ポインタにより示された書込エントリ内の内容情報に応じた更新処理を再実行する
請求項7に記載のメモリ制御装置。 - 前記ログ記憶部は、それぞれの書込エントリに、当該書込エントリに含まれるデータが読み出されたことを示す読出フラグを含めて記憶し、
前記制御部は、トランザクションの処理中の前記共有メモリに対する読出処理の実行に応じて、当該読出処理において読み出すデータの共有メモリ上のアドレスが当該トランザクションに対応する何れの書込エントリにも含まれていない場合、前記共有メモリからデータを読み出し、何れかの書込エントリに含まれていた場合、当該書込エントリからデータを読み出すとともに当該書込エントリに前記読出フラグを設定し、
前記制御部は、トランザクションのコミット要求が与えられたことに応じて、当該トランザクションの処理中において記憶された更新エントリの何れかについて、当該更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致せず且つ当該更新エントリに含まれる前記ポインタにより示された書込エントリに前記読出フラグが含まれる場合、書込エントリに含まれるデータを前記共有メモリに書き込むことなく、当該トランザクションをロールバックさせる
請求項7から8の何れかに記載のメモリ制御装置。 - 前記ログ記憶部は、それぞれの書込エントリに、当該書込エントリのデータが更新処理以外の処理に応じて書き込まれたことを示す上書フラグを含んで記憶し、
前記制御部は、トランザクションのコミット要求が与えられたことに応じて、当該トランザクションの処理中において記憶された更新エントリのそれぞれについて、当該更新エントリに含まれる前記ポインタにより示された書込エントリに前記上書フラグが含まれる場合、当該更新エントリに対応する更新処理を再実行せずに、当該書込エントリに含まれるデータを前記共有メモリの当該書込エントリに含まれたアドレスに書き込む
請求項7から9の何れかに記載のメモリ制御装置。 - 共有メモリに対するアクセスをトランザクション単位で制御するメモリ制御装置であって、
前記共有メモリに記憶されたデータのバージョンをアドレス毎に管理する管理部と、
トランザクションの処理中の前記共有メモリに対する更新処理の実行に応じて、当該更新処理において更新するデータの共有メモリ上のアドレスおよび当該更新処理をしたデータのバージョンを含む更新エントリを、トランザクション毎に記憶するログ記憶部と、
制御部と、
を備え、
前記制御部は、
トランザクションのコミット要求が与えられたことに応じて、
当該トランザクションの処理中において記憶された更新エントリのそれぞれについて、当該更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致する場合、当該更新処理の実行に応じた処理結果を前記共有メモリの当該更新エントリに含まれたアドレスに書き込み、一致しない場合、当該更新処理を再実行して再実行結果を前記共有メモリの当該更新エントリに含まれたアドレスに書き込み、
当該トランザクションの処理中において記憶された更新エントリの何れかについて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致せず且つ当該更新処理の実行に応じた処理結果が読み出されている場合、再実行結果を前記共有メモリに書き込むことなく、当該トランザクションをロールバックさせ、
当該トランザクションの処理中において記憶された更新エントリのそれぞれについて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致せず且つ当該更新処理の処理結果が他の書込処理に応じて上書きされている場合、上書きされたデータを前記共有メモリに書き込む
メモリ制御装置。 - 共有メモリに対するアクセスをトランザクション単位で制御するメモリ制御装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記共有メモリに記憶されたデータのバージョンを記憶する管理部と、
トランザクションの処理中の前記共有メモリに対する更新処理の実行に応じて、当該更新処理をしたデータのバージョンを含む更新エントリを、トランザクション毎に記憶するログ記憶部と、
トランザクションのコミット要求が与えられたことに応じて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致する場合、当該更新処理の実行に応じた処理結果を前記共有メモリに書き込み、一致しない場合、当該更新処理を再実行して再実行結果を前記共有メモリに書き込む制御部と、
して機能させるプログラム。 - 共有メモリに対するアクセスをトランザクション単位で制御するメモリ制御装置として、コンピュータを動作させる方法であって、
前記コンピュータは、
前記共有メモリに記憶されたデータのバージョンを記憶する管理部と、
トランザクションの処理中の前記共有メモリに対する更新処理の実行に応じて、当該更新処理をしたデータのバージョンを含む更新エントリを、トランザクション毎に記憶するログ記憶部と、
を備え、
トランザクションのコミット要求が与えられたことに応じて、更新エントリに含まれるバージョンと前記管理部に記憶されたバージョンとが一致する場合、当該更新処理の実行に応じた処理結果を前記共有メモリに書き込み、一致しない場合、当該更新処理を再実行して再実行結果を前記共有メモリに書き込む
方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290387A JP4702962B2 (ja) | 2008-11-12 | 2008-11-12 | メモリ制御装置、プログラム及び方法 |
US12/616,236 US8271739B2 (en) | 2008-11-12 | 2009-11-11 | Memory control apparatus, program, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290387A JP4702962B2 (ja) | 2008-11-12 | 2008-11-12 | メモリ制御装置、プログラム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010117869A true JP2010117869A (ja) | 2010-05-27 |
JP4702962B2 JP4702962B2 (ja) | 2011-06-15 |
Family
ID=42166242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008290387A Expired - Fee Related JP4702962B2 (ja) | 2008-11-12 | 2008-11-12 | メモリ制御装置、プログラム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8271739B2 (ja) |
JP (1) | JP4702962B2 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569254B2 (en) * | 2009-07-28 | 2017-02-14 | International Business Machines Corporation | Automatic checkpointing and partial rollback in software transaction memory |
JP2011134202A (ja) * | 2009-12-25 | 2011-07-07 | Internatl Business Mach Corp <Ibm> | メモリ管理装置、メモリ管理方法、及びメモリ管理プログラム |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US8688661B2 (en) * | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US11257271B2 (en) | 2013-09-26 | 2022-02-22 | Imagination Technologies Limited | Atomic memory update unit and methods |
US9466091B2 (en) * | 2013-09-26 | 2016-10-11 | Imagination Technologies Limited | Atomic memory update unit and methods |
CN110097492A (zh) * | 2013-09-26 | 2019-08-06 | 想象技术有限公司 | 原子存储器更新单元和方法 |
US10242042B2 (en) * | 2013-10-31 | 2019-03-26 | Hewlett Packard Enterprise Development Lp | Copy-on-write update-triggered consistency |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001527242A (ja) * | 1997-12-22 | 2001-12-25 | ティモシー アール リーモント | ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493668A (en) * | 1990-12-14 | 1996-02-20 | International Business Machines Corporation | Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation |
JPH0827755B2 (ja) * | 1991-02-15 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データの単位を高速度でアクセスする方法 |
US7917494B2 (en) * | 2008-07-11 | 2011-03-29 | Adobe Software Trading Company Limited | System and method for a log-based data storage |
-
2008
- 2008-11-12 JP JP2008290387A patent/JP4702962B2/ja not_active Expired - Fee Related
-
2009
- 2009-11-11 US US12/616,236 patent/US8271739B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001527242A (ja) * | 1997-12-22 | 2001-12-25 | ティモシー アール リーモント | ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み |
Non-Patent Citations (1)
Title |
---|
CSND200601415004, 鈴村 幸太郎, "アプリケーション開発の必修知識 トランザクション完全理解", 日経ソフトウエア 第9巻 第9号, 20060724, p.66−75, JP, 日経BP社 * |
Also Published As
Publication number | Publication date |
---|---|
JP4702962B2 (ja) | 2011-06-15 |
US8271739B2 (en) | 2012-09-18 |
US20100122041A1 (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4702962B2 (ja) | メモリ制御装置、プログラム及び方法 | |
US11386065B2 (en) | Database concurrency control through hash-bucket latching | |
JP4774056B2 (ja) | トランザクショナルなメモリアクセスのハイブリッドハードウェア・ソフトウェア実現のための方法及び装置 | |
US8484438B2 (en) | Hierarchical bloom filters for facilitating concurrency control | |
US8316366B2 (en) | Facilitating transactional execution in a processor that supports simultaneous speculative threading | |
US20110029490A1 (en) | Automatic Checkpointing and Partial Rollback in Software Transaction Memory | |
JP2008225693A (ja) | データベース管理方法、装置およびプログラム | |
US9652492B2 (en) | Out-of-order execution of strictly-ordered transactional workloads | |
US10007548B2 (en) | Transaction system | |
US8244682B2 (en) | Saving snapshot of a knowledge base without blocking | |
JP2004252986A (ja) | 複製コマンド配布のシステムおよび方法 | |
US20150019580A1 (en) | Efficiently searching and modifying a variable length queue | |
JPH08328933A (ja) | 並列処理システムのファイルアクセス制御方式 | |
US9442837B2 (en) | Accelerating multiversion concurrency control using hardware transactional memory | |
JP5181183B2 (ja) | 変換装置、サーバシステム、変換方法およびプログラム | |
US11126459B2 (en) | Filesystem using hardware transactional memory on non-volatile dual in-line memory module | |
Dong et al. | Fine-Grained Re-Execution for Efficient Batched Commit of Distributed Transactions | |
US10430287B2 (en) | Computer | |
JP5186334B2 (ja) | 変換装置、プログラムおよび変換方法 | |
Meng et al. | SwingDB: An embedded in-memory DBMS enabling instant snapshot sharing | |
WO2014064914A1 (ja) | データ格納装置、データ格納方法およびプログラム | |
WO2019198824A1 (ja) | 制御処理装置、制御処理方法および制御処理プログラム | |
KR20070096195A (ko) | 램 트랜잭션 버퍼를 이용한 트랜잭션 처리방법 | |
JP5832592B1 (ja) | データ管理装置 | |
KR101881039B1 (ko) | 비휘발성 메모리에 저장된 메모리 매핑 파일의 비동기식 원자적 업데이트 방법 및 제어 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110127 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110215 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20110216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110307 |
|
LAPS | Cancellation because of no payment of annual fees |