트랜잭셔널 메모리

트랜잭셔널 메모리(transactional memory)는 불러오기와 저장하기 명령의 집합이 원자적 방법으로 실행할 수 있게 함으로써 병행성 프로그래밍을 단순하게 하는 방식이다. 병행 컴퓨팅에서 공유 메모리로의 접근을 제어하기 위한 병행성 제어 방식으로, 데이터베이스 트랜잭션과 유사한 동시성 제어 구조이다.

하드웨어 및 소프트웨어 트랜잭션 구현

하드웨어 트랜잭션 메모리(Hardware transactional memory) 시스템은 트랜잭션 지원을 위해 프로세서, 캐시, 버스 프로토콜의 수정을 포함하고 있다.[1][2][3][4][5]

소프트웨어 트랜잭셔널 메모리는 소프트웨어 런타임 라이브러리나 프로그래밍 언어에서 트랜잭셔널 메모리 시맨틱(semantic)을 제공하며[6] 최소 하드웨어 지원(일반적으로 원자적 compare-and-swap 명령이나 이와 동일한 명령)을 요구한다.

수많은 RISC 프로세서가 제공하는 load-link/store-conditional (LL/SC)은 가장 기본적인 트랜잭셔널 메모리 지원으로 간주할 수 있다. 그러나 LL/SC는 일반적으로 순수 기계어 크기인 데이터 상에서 동작한다.

같이 보기

각주

  1. Herlihy, Maurice; Moss, J. Eliot B. (1993). “Transactional memory: Architectural support for lock-free data structures” (PDF). 289–300쪽. 
  2. “Multiple Reservations and the Oklahoma Update”. doi:10.1109/88.260295. 
  3. Hammond, L.; Wong, V.; Chen, M.; Carlstrom, B.D.; Davis, J.D.; Hertzberg, B.; Prabhu, M.K.; Honggo Wijaya; Kozyrakis, C.; Olukotun, K. (2004). “Transactional memory coherence and consistency”. 102–113쪽. 
  4. “Unbounded transactional memory”. 
  5. “LogTM: Log-based transactional memory” (PDF). 
  6. “The ATOMOΣ Transactional Programming Language” (PDF). 2008년 5월 21일에 원본 문서 (PDF)에서 보존된 문서. 2012년 3월 3일에 확인함. 

외부 링크