KR101203297B1 - 직접 업데이트 소프트웨어 트랜잭션 메모리 - Google Patents
직접 업데이트 소프트웨어 트랜잭션 메모리 Download PDFInfo
- Publication number
- KR101203297B1 KR101203297B1 KR1020087002433A KR20087002433A KR101203297B1 KR 101203297 B1 KR101203297 B1 KR 101203297B1 KR 1020087002433 A KR1020087002433 A KR 1020087002433A KR 20087002433 A KR20087002433 A KR 20087002433A KR 101203297 B1 KR101203297 B1 KR 101203297B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- thread
- memory location
- shared memory
- memory access
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (24)
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드(enlistment record)를 식별하는 단계 - 상기 인리스트먼트 레코드는 상기 공유 메모리 위치와 관련된 직접 업데이트 소프트웨어 트랜잭션 메모리 액세스에 대한 제어 구조임 - ;상기 인리스트먼트 레코드가 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌이 없음을 나타내는 경우, 상기 트랜잭션에 대해 상기 공유 메모리 위치를 예약하기 위해 상기 인리스트먼트 레코드를 마킹하는(makring) 단계;상기 공유 메모리 위치에 대한 참조 및 그 내용을 실행취소 로그(undo log)에 기록하는 단계; 및상기 트랜잭션의 종료 시, 상기 공유 메모리 위치의 인리스트먼트 레코드에 새 버전 값을 기입하는 단계를 포함하는 메모리 액세스 관리 방법.
- 제1항에 있어서, 상기 마킹하는 단계에 응답하여, 상기 트랜잭션 내에서 상기 공유 메모리 위치로의 기입 메모리 액세스를 수행하는 단계를 더 포함하는 메모리 액세스 관리 방법.
- 제1항에 있어서, 상기 마킹하는 단계는,상기 제1 쓰레드의 트랜잭션을 식별하는 트랜잭션 식별자를 상기 인리스트먼트 레코드에 기입하는 단계를 포함하는 메모리 액세스 관리 방법.
- 제1항에 있어서, 상기 인리스트먼트 레코드가 상기 제2 쓰레드에 의해 마킹되어 있는 경우, 상기 인리스트먼트 레코드는, 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌을 나타내는 메모리 액세스 관리 방법.
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드(enlistment record)를 식별하는 단계;상기 인리스트먼트 레코드가 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌이 없음을 나타내는 경우, 상기 트랜잭션에 대해 상기 공유 메모리 위치를 예약하기 위해 상기 인리스트먼트 레코드를 마킹하는(makring) 단계;상기 공유 메모리 위치에 대한 참조 및 그 내용을 실행취소 로그(undo log)에 기록하는 단계 - 상기 실행취소 로그는 공유 메모리 위치 참조들 및 관련된 내용들의 순서화된 시퀀스를 포함함 - ; 및관련된 상기 공유 메모리 위치에 상기 내용을 기입하는 단계 - 개개의 기입 액세스들은 상기 시퀀스의 역순으로 수행됨 -를 포함하는 메모리 액세스 관리 방법.
- 제1항에 있어서,상기 인리스트먼트 레코드에 대한 참조를 포함하는 트랜잭션 로그 엔트리를 기록하는 단계를 더 포함하고, 상기 트랜잭션 로그 엔트리는 상기 트랜잭션 내의 복수의 기입 메모리 액세스의 트랜잭션 로그 엔트리를 포함하는 트랜잭션 로그에 기록되는 메모리 액세스 관리 방법.
- 제1항에 있어서,상기 인리스트먼트 레코드가 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌을 나타내는 경우, 상기 제1 쓰레드의 트랜잭션 내에서 상기 공유 메모리 위치로의 기입 메모리 액세스를 허용하도록 상기 충돌을 해결하는 단계를 더 포함하는 메모리 액세스 관리 방법.
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드(enlistment record)를 식별하는 단계;상기 인리스트먼트 레코드로부터의 버전 값을 판독하는 단계;상기 인리스트먼트 레코드의 버전 값이 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌이 없음을 나타내는 경우, 상기 트랜잭션에 대해 상기 공유 메모리 위치를 예약하기 위해 상기 인리스트먼트 레코드를 마킹하는(makring) 단계; 및상기 공유 메모리 위치의 인리스트먼트 레코드에 새 버전 값을 기입하는 단계를 포함하는 메모리 액세스 관리 방법.
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드(enlistment record)를 식별하는 단계;상기 인리스트먼트 레코드로부터의 버전 필드의 내용(contents)을 판독하는 단계; 및상기 인리스트먼트 레코드의 버전 필드의 내용이 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌이 없음을 나타내는 경우, 상기 트랜잭션에 대해 상기 공유 메모리 위치를 예약하기 위해 상기 인리스트먼트 레코드를 마킹하는(makring) 단계 - 상기 마킹하는 단계는, 상기 버전 필드의 내용을 스크래치 필드(scratch field)에 기록하는 단계, 및 트랜잭션 식별자를 상기 버전 필드에 기입하는 단계를 포함함 -를 포함하는 메모리 액세스 관리 방법.
- 제1항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 기록 매체.
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드를 식별하는 단계;상기 인리스트먼트 레코드의 버전 필드의 내용을 판독하는 단계;상기 트랜잭션과 관련된 트랜잭션 로그 엔트리를 생성하는 단계 - 상기 트랜잭션 로그 엔트리는 상기 공유 메모리 위치와 관련된 상기 인리스트먼트 레코드를 참조함 - ;상기 제1 쓰레드에 의해 상기 트랜잭션 내에서 상기 공유 메모리 위치로의 판독 메모리 액세스를 실행하는 단계; 및상기 실행하는 단계에 응답하여, 상기 트랜잭션 로그 엔트리와 상기 참조된 인리스트먼트 레코드의 버전 필드의 내용이 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌을 나타내지 않는 경우, 상기 판독 메모리 액세스에 대하여 상기 트랜잭션을 커밋(commit)하는 단계를 포함하는 메모리 액세스 관리 방법.
- 제11항에 있어서,상기 내용이 상기 제1 쓰레드의 트랜잭션 식별자를 나타내는 경우, 상기 인리스트먼트 레코드에 대한 트랜잭션 로그 엔트리가 상기 트랜잭션 내에서 이미 생성되었음을 알리는(acknowledge) 단계를 더 포함하는 메모리 액세스 관리 방법.
- 제11항에 있어서,상기 내용이 상기 제2 쓰레드의 트랜잭션 식별자를 나타내는 경우, 상기 트랜잭션을 중단시키는(abort) 단계를 더 포함하는 메모리 액세스 관리 방법.
- 제11항에 있어서,상기 내용이 버전 값을 나타내는 경우, 상기 버전 값을 상기 트랜잭션 로그 엔트리에 기록하는 단계를 더 포함하는 메모리 액세스 관리 방법.
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드를 식별하는 단계;상기 트랜잭션과 관련된 트랜잭션 로그 엔트리를 생성하는 단계 - 상기 트랜잭션 로그 엔트리는 상기 공유 메모리 위치와 관련된 상기 인리스트먼트 레코드를 참조함 - ;상기 제1 쓰레드에 의해 상기 트랜잭션 내에서 상기 공유 메모리 위치로의 판독 메모리 액세스를 실행하는 단계;상기 실행하는 단계에 응답하여, 상기 트랜잭션 로그 엔트리와 상기 참조된 인리스트먼트 레코드가 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌을 나타내지 않는 경우, 상기 판독 메모리 액세스에 대하여 상기 트랜잭션을 커밋(commit)하는 단계; 및상기 트랜잭션 로그 엔트리에 기록된 버전 값이 커밋 시에 상기 인리스트먼트 레코드에 기록된 버전 값과 일치하지 않는 경우, 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와의 충돌을 식별하는 단계를 포함하는 메모리 액세스 관리 방법.
- 제15항에 있어서, 충돌이 식별되면 상기 트랜잭션을 중단시키는 단계를 더 포함하는 메모리 액세스 관리 방법.
- 제1 쓰레드의 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 공유 메모리 위치와 관련된 인리스트먼트 레코드를 식별하는 단계 - 상기 인리스트먼트 레코드는 버전 필드를 포함함 -상기 트랜잭션과 관련된 트랜잭션 로그 엔트리를 생성하는 단계 - 상기 트랜잭션 로그 엔트리는 상기 공유 메모리 위치와 관련된 상기 인리스트먼트 레코드를 참조함 - ;상기 제1 쓰레드에 의해 상기 트랜잭션 내에서 상기 공유 메모리 위치로의 판독 메모리 액세스를 실행하는 단계; 및상기 실행하는 단계에 응답하여, 상기 트랜잭션 로그 엔트리와 상기 참조된 인리스트먼트 레코드가 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와 충돌을 나타내지 않는 경우, 상기 판독 메모리 액세스에 대하여 상기 트랜잭션을 커밋(commit)하는 단계;상기 인리스트먼트 레코드와 관련된 스크래치 필드로부터 상기 인리스트먼트 레코드의 버전 필드에 이전에 저장된 버전 값을 판독하는 단계; 및상기 트랜잭션 로그 엔트리에 기록된 버전 값이 커밋 시에 상기 스크래치 필드에 기록된 버전 값과 일치하지 않는 경우, 상기 제2 쓰레드에 의한 상기 공유 메로리 위치로의 기입 메모리 액세스와의 충돌을 식별하는 단계를 포함하는 메모리 액세스 관리 방법.
- 제11항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 기록 매체.
- 제1 쓰레드의 한 트랜잭션 내에서 상기 제1 쓰레드와 제2 쓰레드에 의해 액세스가능한 공유 메모리 위치로의 메모리 액세스를 관리하는 방법으로서,상기 트랜잭션 내의 상기 공유 메모리 위치들을 인리스트(enlisting)하는 단계;상기 트랜잭션과 관련된 트랜잭션 로그 엔트리를 포함하는 트랜잭션 로그와 각각의 공유 메모리 위치에 대한 인리스트먼트 레코드를 유지하는 단계;상기 공유 메모리 위치로의 기입 메모리 액세스들의 엔트리들을 포함하는 실행취소 로그를 유지하는 단계 - 각각의 엔트리는 상기 기입 메모리 액세스의 공유 메모리 위치와 관련된 어드레스와 상기 공유 메모리 위치의 이전 내용을 포함함 - ;상기 공유 메모리 위치에 대해 직접 메모리 액세스를 수행하는 단계; 및상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와의 충돌이 탐지되지 않을 경우, 상기 수행하는 단계에 응답하여 상기 메모리 액세스에 대하여 상기 트랜잭션을 커밋하는 단계 - 상기 제2 쓰레드에 의한 상기 공유 메모리 위치로의 기입 메모리 액세스와의 충돌은, 상기 트랜잭션 로그 엔트리에 기록된 버전 값이 상기 인리스트먼트 레코드에 기록된 버전 값과 일치하지 않는 경우에 탐지됨 -를 포함하는 메모리 액세스 관리 방법.
- 제19항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 기록 매체.
- 제8항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 기록 매체.
- 제9항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 기록 매체.
- 제15항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 기록 매체.
- 제17항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 기록 매체.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/192,784 US7536517B2 (en) | 2005-07-29 | 2005-07-29 | Direct-update software transactional memory |
| US11/192,784 | 2005-07-29 | ||
| PCT/US2006/029327 WO2007016302A2 (en) | 2005-07-29 | 2006-07-28 | Direct-update software transactional memory |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20080031039A KR20080031039A (ko) | 2008-04-07 |
| KR101203297B1 true KR101203297B1 (ko) | 2012-11-20 |
Family
ID=37695711
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020087002433A Expired - Fee Related KR101203297B1 (ko) | 2005-07-29 | 2006-07-28 | 직접 업데이트 소프트웨어 트랜잭션 메모리 |
Country Status (13)
| Country | Link |
|---|---|
| US (1) | US7536517B2 (ko) |
| EP (1) | EP1910929B1 (ko) |
| JP (1) | JP5010601B2 (ko) |
| KR (1) | KR101203297B1 (ko) |
| CN (1) | CN101495976B (ko) |
| AU (1) | AU2006275736A1 (ko) |
| BR (1) | BRPI0613946A2 (ko) |
| CA (1) | CA2616422A1 (ko) |
| IL (1) | IL188665A0 (ko) |
| MX (1) | MX2008001159A (ko) |
| NO (1) | NO20080235L (ko) |
| RU (1) | RU2008103273A (ko) |
| WO (1) | WO2007016302A2 (ko) |
Families Citing this family (89)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7818513B2 (en) * | 2004-08-10 | 2010-10-19 | Oracle America, Inc. | Coordinating accesses to shared objects using transactional memory mechanisms and non-transactional software mechanisms |
| US8261024B1 (en) * | 2005-09-15 | 2012-09-04 | Oracle America, Inc. | Address level synchronization of shared data |
| US7630991B2 (en) * | 2005-10-27 | 2009-12-08 | Microsoft Corporation | Compiling join patterns using software transactional memories |
| US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
| US8099726B2 (en) * | 2005-12-07 | 2012-01-17 | Microsoft Corporation | Implementing strong atomicity in software transactional memory |
| US8271994B2 (en) * | 2006-02-11 | 2012-09-18 | International Business Machines Corporation | Reduced data transfer during processor context switching |
| US8028133B2 (en) * | 2006-02-22 | 2011-09-27 | Oracle America, Inc. | Globally incremented variable or clock based methods and apparatus to implement parallel transactions |
| US8065499B2 (en) * | 2006-02-22 | 2011-11-22 | Oracle America, Inc. | Methods and apparatus to implement parallel transactions |
| US8181158B2 (en) * | 2006-06-09 | 2012-05-15 | Oracle America, Inc. | Viewing and modifying transactional variables |
| US8316352B2 (en) * | 2006-06-09 | 2012-11-20 | Oracle America, Inc. | Watchpoints on transactional variables |
| US8601456B2 (en) * | 2006-08-04 | 2013-12-03 | Microsoft Corporation | Software transactional protection of managed pointers |
| US7788242B2 (en) * | 2006-08-23 | 2010-08-31 | Oracle America, Inc. | Method and system for implementing a concurrent set of objects |
| US7860847B2 (en) | 2006-11-17 | 2010-12-28 | Microsoft Corporation | Exception ordering in contention management to support speculative sequential semantics |
| US8010550B2 (en) | 2006-11-17 | 2011-08-30 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
| US8024714B2 (en) * | 2006-11-17 | 2011-09-20 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
| US8132158B2 (en) * | 2006-12-28 | 2012-03-06 | Cheng Wang | Mechanism for software transactional memory commit/abort in unmanaged runtime environment |
| US7908255B2 (en) * | 2007-04-11 | 2011-03-15 | Microsoft Corporation | Transactional memory using buffered writes and enforced serialization order |
| US8621468B2 (en) * | 2007-04-26 | 2013-12-31 | Microsoft Corporation | Multi core optimizations on a binary using static and run time analysis |
| US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
| US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
| US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
| US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
| US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
| US8688920B2 (en) | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
| US8719514B2 (en) * | 2007-06-27 | 2014-05-06 | Intel Corporation | Software filtering in a transactional memory system |
| US7890725B2 (en) * | 2007-07-09 | 2011-02-15 | International Business Machines Corporation | Bufferless transactional memory with runahead execution |
| US20090064141A1 (en) * | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Efficient utilization of transactions in computing tasks |
| US8245232B2 (en) * | 2007-11-27 | 2012-08-14 | Microsoft Corporation | Software-configurable and stall-time fair memory access scheduling mechanism for shared memory systems |
| US7793052B2 (en) * | 2007-12-31 | 2010-09-07 | Oracle America, Inc. | System and method for implementing hybrid single-compare-single-store operations |
| US8200914B2 (en) * | 2008-01-03 | 2012-06-12 | International Business Machines Corporation | Apparatus, system, and method for a read-before-write storage controller instruction |
| US8359437B2 (en) * | 2008-05-13 | 2013-01-22 | International Business Machines Corporation | Virtual computing memory stacking |
| US9047139B2 (en) * | 2008-06-27 | 2015-06-02 | Microsoft Technology Licensing, Llc | Primitives for software transactional memory |
| US8769514B2 (en) * | 2008-06-27 | 2014-07-01 | Microsoft Corporation | Detecting race conditions with a software transactional memory system |
| US8839213B2 (en) | 2008-06-27 | 2014-09-16 | Microsoft Corporation | Optimizing primitives in software transactional memory |
| US8341133B2 (en) | 2008-06-27 | 2012-12-25 | Microsoft Corporation | Compressed transactional locks in object headers |
| US20100017581A1 (en) * | 2008-07-18 | 2010-01-21 | Microsoft Corporation | Low overhead atomic memory operations |
| US8627292B2 (en) * | 2009-02-13 | 2014-01-07 | Microsoft Corporation | STM with global version overflow handling |
| CN102334102B (zh) * | 2009-02-24 | 2013-11-20 | 松下电器产业株式会社 | 处理器装置、多线程处理器装置 |
| US8688921B2 (en) * | 2009-03-03 | 2014-04-01 | Microsoft Corporation | STM with multiple global version counters |
| JP5338435B2 (ja) * | 2009-03-31 | 2013-11-13 | 富士通株式会社 | 情報処理プログラム、情報処理装置および情報処理方法 |
| JP5752686B2 (ja) | 2009-08-20 | 2015-07-22 | ラムバス・インコーポレーテッド | 原子メモリ装置 |
| US8566524B2 (en) | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
| US8239635B2 (en) | 2009-09-30 | 2012-08-07 | Oracle America, Inc. | System and method for performing visible and semi-visible read operations in a software transactional memory |
| US9104715B2 (en) * | 2010-06-23 | 2015-08-11 | Microsoft Technology Licensing, Llc | Shared data collections |
| US8595426B2 (en) * | 2011-04-11 | 2013-11-26 | Sandisk Il Ltd. | Handling commands within a write-once read-many storage device configuration |
| US9043363B2 (en) * | 2011-06-03 | 2015-05-26 | Oracle International Corporation | System and method for performing memory management using hardware transactions |
| US9164753B2 (en) | 2013-01-08 | 2015-10-20 | Sap Se | Generating software updates |
| US20160239372A1 (en) * | 2013-09-26 | 2016-08-18 | Hewlett Packard Enterprise Development Lp | Undoing changes made by threads |
| US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
| US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
| US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
| US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
| US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
| US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
| US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
| US9442853B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
| US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
| US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
| US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
| US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
| US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
| US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
| US9442775B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
| US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
| US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
| US9336047B2 (en) | 2014-06-30 | 2016-05-10 | International Business Machines Corporation | Prefetching of discontiguous storage locations in anticipation of transactional execution |
| US9348643B2 (en) | 2014-06-30 | 2016-05-24 | International Business Machines Corporation | Prefetching of discontiguous storage locations as part of transactional execution |
| US9710271B2 (en) | 2014-06-30 | 2017-07-18 | International Business Machines Corporation | Collecting transactional execution characteristics during transactional execution |
| US9448939B2 (en) | 2014-06-30 | 2016-09-20 | International Business Machines Corporation | Collecting memory operand access characteristics during transactional execution |
| US9600286B2 (en) | 2014-06-30 | 2017-03-21 | International Business Machines Corporation | Latent modification instruction for transactional execution |
| US9754001B2 (en) | 2014-08-18 | 2017-09-05 | Richard Banister | Method of integrating remote databases by automated client scoping of update requests prior to download via a communications network |
| US9665280B2 (en) * | 2014-09-30 | 2017-05-30 | International Business Machines Corporation | Cache coherency verification using ordered lists |
| US10540524B2 (en) * | 2014-12-31 | 2020-01-21 | Mcafee, Llc | Memory access protection using processor transactional memory support |
| US10838983B2 (en) | 2015-01-25 | 2020-11-17 | Richard Banister | Method of integrating remote databases by parallel update requests over a communications network |
| CN105045563B (zh) * | 2015-06-19 | 2017-10-10 | 陕西科技大学 | 一种推测嵌套软件事务存储的冲突管理方法 |
| US10990586B2 (en) | 2015-09-16 | 2021-04-27 | Richard Banister | System and method for revising record keys to coordinate record key changes within at least two databases |
| US10838827B2 (en) | 2015-09-16 | 2020-11-17 | Richard Banister | System and method for time parameter based database restoration |
| US10003634B2 (en) * | 2016-05-14 | 2018-06-19 | Richard Banister | Multi-threaded download with asynchronous writing |
| US10860246B2 (en) | 2016-12-21 | 2020-12-08 | Hewlett-Packard Development Company, L.P. | Persistent memory updating |
| EP3607443B1 (en) * | 2017-04-19 | 2024-08-21 | Huawei Technologies Co., Ltd. | Hardware transactional memory (htm) assisted database transactions |
| EP3610373B1 (en) | 2017-04-19 | 2022-03-30 | Huawei Technologies Co., Ltd. | Updating metadata in hardware transactional memory user aborts |
| US10521116B2 (en) * | 2018-01-23 | 2019-12-31 | Nutanix, Inc. | System and method for managing object store |
| US10445238B1 (en) * | 2018-04-24 | 2019-10-15 | Arm Limited | Robust transactional memory |
| US11086733B2 (en) * | 2018-12-19 | 2021-08-10 | Micron Technology, Inc. | Reporting control information errors |
| US11194769B2 (en) | 2020-04-27 | 2021-12-07 | Richard Banister | System and method for re-synchronizing a portion of or an entire source database and a target database |
| CN114817185B (zh) * | 2022-04-01 | 2026-01-06 | 中汽创智科技有限公司 | 一种基于消息驱动的异步日志处理方法 |
| US12118224B2 (en) | 2022-04-08 | 2024-10-15 | Micron Technology, Inc. | Fine grained resource management for rollback memory operations |
| US12242743B2 (en) * | 2022-10-20 | 2025-03-04 | Micron Technology, Inc. | Adaptive control for in-memory versioning |
| CN115994140A (zh) * | 2022-11-01 | 2023-04-21 | 北京百度网讯科技有限公司 | 分布式系统、数据处理方法、装置、设备和存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5983225A (en) * | 1998-01-26 | 1999-11-09 | Telenor As | Parameterized lock management system and method for conditional conflict serializability of transactions |
| US6856993B1 (en) * | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
| US6586993B2 (en) * | 2000-11-08 | 2003-07-01 | Research In Motion Limited | Impedance matching low noise amplifier having a bypass switch |
-
2005
- 2005-07-29 US US11/192,784 patent/US7536517B2/en not_active Expired - Fee Related
-
2006
- 2006-07-28 KR KR1020087002433A patent/KR101203297B1/ko not_active Expired - Fee Related
- 2006-07-28 CN CN200680026687XA patent/CN101495976B/zh not_active Expired - Fee Related
- 2006-07-28 WO PCT/US2006/029327 patent/WO2007016302A2/en not_active Ceased
- 2006-07-28 MX MX2008001159A patent/MX2008001159A/es not_active Application Discontinuation
- 2006-07-28 CA CA002616422A patent/CA2616422A1/en not_active Abandoned
- 2006-07-28 RU RU2008103273/09A patent/RU2008103273A/ru not_active Application Discontinuation
- 2006-07-28 BR BRPI0613946-9A patent/BRPI0613946A2/pt not_active IP Right Cessation
- 2006-07-28 JP JP2008524174A patent/JP5010601B2/ja not_active Expired - Fee Related
- 2006-07-28 AU AU2006275736A patent/AU2006275736A1/en not_active Abandoned
- 2006-07-28 EP EP06788738.0A patent/EP1910929B1/en not_active Not-in-force
-
2008
- 2008-01-08 IL IL188665A patent/IL188665A0/en unknown
- 2008-01-15 NO NO20080235A patent/NO20080235L/no not_active Application Discontinuation
Also Published As
| Publication number | Publication date |
|---|---|
| JP5010601B2 (ja) | 2012-08-29 |
| IL188665A0 (en) | 2008-08-07 |
| US7536517B2 (en) | 2009-05-19 |
| KR20080031039A (ko) | 2008-04-07 |
| AU2006275736A1 (en) | 2007-02-08 |
| CN101495976B (zh) | 2011-11-09 |
| EP1910929A2 (en) | 2008-04-16 |
| CN101495976A (zh) | 2009-07-29 |
| EP1910929B1 (en) | 2016-02-17 |
| EP1910929A4 (en) | 2010-12-08 |
| CA2616422A1 (en) | 2007-02-08 |
| JP2009506403A (ja) | 2009-02-12 |
| NO20080235L (no) | 2008-02-28 |
| BRPI0613946A2 (pt) | 2011-02-22 |
| WO2007016302A2 (en) | 2007-02-08 |
| US20070028056A1 (en) | 2007-02-01 |
| WO2007016302A3 (en) | 2009-04-16 |
| MX2008001159A (es) | 2008-03-13 |
| RU2008103273A (ru) | 2009-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101203297B1 (ko) | 직접 업데이트 소프트웨어 트랜잭션 메모리 | |
| US8627048B2 (en) | Mechanism for irrevocable transactions | |
| US7809903B2 (en) | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions | |
| US8700585B2 (en) | Optimistic locking method and system for committing transactions on a file system | |
| US8473950B2 (en) | Parallel nested transactions | |
| US8271739B2 (en) | Memory control apparatus, program, and method | |
| US8065490B2 (en) | Hardware acceleration of strongly atomic software transactional memory | |
| US8271465B2 (en) | Parallel nested transactions in transactional memory | |
| US20090183159A1 (en) | Managing concurrent transactions using bloom filters | |
| US8239635B2 (en) | System and method for performing visible and semi-visible read operations in a software transactional memory | |
| US9928265B2 (en) | Utilizing shared numeric locks | |
| WO2009039119A2 (en) | Parallel nested transactions in transactional memory | |
| US8095731B2 (en) | Mutable object caching | |
| US20100228927A1 (en) | Stm with multiple global version counters |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| A201 | Request for examination | ||
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R14-asn-PN2301 |
|
| FPAY | Annual fee payment |
Payment date: 20151016 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| FPAY | Annual fee payment |
Payment date: 20161019 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| FPAY | Annual fee payment |
Payment date: 20171018 Year of fee payment: 6 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20181018 Year of fee payment: 7 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-5-5-R10-R17-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20201115 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20201115 |