트랜잭셔널 메모리

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

트랜잭셔널 메모리(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 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.
  6. The ATOMOΣ Transactional Programming Language.

바깥 고리[편집]