[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20110138946A - 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 - Google Patents

변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 Download PDF

Info

Publication number
KR20110138946A
KR20110138946A KR1020100059141A KR20100059141A KR20110138946A KR 20110138946 A KR20110138946 A KR 20110138946A KR 1020100059141 A KR1020100059141 A KR 1020100059141A KR 20100059141 A KR20100059141 A KR 20100059141A KR 20110138946 A KR20110138946 A KR 20110138946A
Authority
KR
South Korea
Prior art keywords
page
memory
address
main memory
transaction
Prior art date
Application number
KR1020100059141A
Other languages
English (en)
Other versions
KR101121902B1 (ko
Inventor
유정승
이상원
Original Assignee
성균관대학교산학협력단
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020100059141A priority Critical patent/KR101121902B1/ko
Publication of KR20110138946A publication Critical patent/KR20110138946A/ko
Application granted granted Critical
Publication of KR101121902B1 publication Critical patent/KR101121902B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법을 제공한다. 상기 트랜잭션 메모리 시스템은 데이터를 저장하는 디스크와, 연산을 위해 데이터를 임시로 저장하는 메인 메모리와, 페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부와, 연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 담당하며, 상기 페이지 교체가 발생하면 상기 교체된 페이지의 주소를 상기 추적 주소 변환 계층부에 등록하는 버퍼 관리기와, 트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 트랜잭션 메모리부를 포함한다. 이러한 본 발명에 따라, 데이터베이스 시스템에 적용된 트랜잭션 메모리 시스템에서 변경된 메모리 주소를 추적할 수 있다.

Description

변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법{Transactional memory system and method for tracking modified memory address}
본 발명은 데이터베이스에서도 변경된 메모리 주소를 추적할 수 있는 트랜잭션 메모리 시스템 및 방법에 관한 것이다.
소정 컴퓨터 시스템은 성능을 개선하기 위하여 동시에 다수의 스레드(thread)를 실행할 수 있다. 통상 스레드가 공유 자원을 액세스하기 전에 스레드는 공유 자원의 로크(lock)를 얻을 수 있다. 공유 자원이 메모리에 저장된 데이터 구조인 경우, 동일 자원을 액세스하려고 하는 모든 스레드는 록킹(locking) 메커니즘에 의해 상호 배타적으로 제공되며, 그에 따라 그들 동작 실행은 직렬화될 수 있다. 이것은 시스템 성능에 해로울 수 있으며, 예를 들면 데드록 버그(deadlock bugs)로 인해 프로그램 장애를 일으킬 수 있다.
록킹 메커니즘을 이용한 결과인 퍼포먼스 히트(performance hits)를 감소시키기 위하여, 소정 컴퓨터 시스템은 트랜잭션 메모리(transactional memory)를 사용할 수 있다.
트랜잭션 메모리는 통상적으로, 액세스가 충돌(conflict)하지 않는 한, 예를 들면 액세스가 공유 자원의 상이한 부분으로 향하는 한, 다수의 스레드가 로크를 획득하지 않고서도 (메모리에 저장된 데이터 구조와 같은) 공유 자원을 동시에 액세스할 수 있게 하는 동기화 모델을 말한다.
트랜잭션 메모리는 테이블 룩업(table lookup) 메커니즘을 통해 구현될 수 있다. 특히 스레드는 공유 자원을 액세스하기 위하여 먼저 메모리에 저장된 테이블을 검사하여, 다른 스레드가 공유 자원의 동일 부분을 액세스하는 중인지의 여부를 결정할 수 있다.
그런데, 데이터베이스의 경우 운영체제와는 별도의 버퍼 관리기(buffer manager)를 가지며, 이를 통해서 데이터 페이지를 관리한다. 버퍼 관리기에 의해 디스크와 메모리 사이의 페이지 교체가 일어나며, 이 결과에 따라 데이터 페이지 속의 같은 데이터도 이전과 다른 메모리 위치에 위치할 수 있다. 이 경우 트랜잭션 메모리의 경우 올바른 추적이 불가능하다.
따라서, 본 발명의 목적은 데이터베이스에서도 변경된 메모리 주소를 추적할 수 있는 트랜잭션 메모리 시스템 및 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따라, 트랜잭션 메모리 시스템은 데이터를 저장하는 디스크와, 연산을 위해 데이터를 임시로 저장하는 메인 메모리와, 페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부와, 연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 담당하며, 상기 페이지 교체가 발생하면 상기 교체된 페이지의 주소를 상기 추적 주소 변환 계층부에 등록하는 버퍼 관리기와, 트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 트랜잭션 메모리부를 포함한다.
여기에서, 상기 트랜잭션 메모리부는 상기 추적 주소 변환 계층부에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단하고, 상기 연산 대상이 되는 주소가 페이지 교체되었으면 상기 추적 주소 변환 계층부에 포함된 변경된 메모리 주소 정보에 따라 변경된 메모리 주소를 추적한다.
여기에서, 상기 버퍼 관리기는 상기 페이지가 요청되면 상기 요청된 페이지가 상기 메인 메모리에 있는 지 확인하고, 상기 요청된 페이지가 메인 메모리 상에 없으면, 상기 메인 메모리 상에 프리 프레임이 있는 지를 확인하며, 상기 메인 메모리 상에 프리 프레임이 없으면 미리 결정된 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하고, 요청된 페이지를 상기 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행한다.
여기에서, 상기 페이지 단위는 4 kbyte 및 8 kbyte의 단위 중 하나이다.
여기에서, 상기 교체 알고리즘은 최근에 다른 어떤 페이지보다도 적게 사용된 페이지를 고르는 LRU(Least Recently Used) 알고리즘이다.
여기에서, 상기 페이지 번호는 상기 메인 메모리에 저장된 페이지들의 식별 정보이다.
또한, 본 발명의 다른 측면에 따라, 데이터를 저장하는 디스크와, 연산을 위해 데이터를 임시로 저장하는 메인 메모리를 포함하는 트랜잭션 메모리 시스템에서 변경된 메모리 주소를 추적하는 방법은, 연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 수행하는 단계와, 상기 페이지 교체가 발생하면, 페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부에 상기 교체된 페이지의 주소를 등록하는 단계와, 트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 단계를 포함한다.
여기에서, 상기 탐지 단계는 상기 추적 주소 변환 계층부에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단하는 단계와, 상기 연산 대상이 되는 주소가 페이지 교체되었으면 상기 추적 주소 변환 계층부에 포함된 변경된 메모리 주소 정보에 따라 변경된 메모리 주소를 추적하는 단계를 포함한다.
여기에서, 상기 페이지 교체 수행 단계는 상기 페이지가 요청되면 상기 요청된 페이지가 상기 메인 메모리에 있는 지 확인하는 단계와, 상기 요청된 페이지가 메인 메모리 상에 없으면, 상기 메인 메모리 상에 프리 프레임이 있는 지를 확인하는 단계와, 상기 메인 메모리 상에 프리 프레임이 없으면 미리 결정된 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하는 단계와, 상기 요청된 페이지를 상기 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행하는 단계를 포함한다.
본 발명에 의하면, 데이터베이스 시스템에 적용된 트랜잭션 메모리 시스템에서 변경된 메모리 주소를 추적할 수 있다.
도 1은 본 발명의 일 실시예에 따라 데이터베이스에 적용되는 트랜잭션 메모리 시스템을 나타낸 도면이다.
도 2는 메인 메모리와 디스크 간의 페이지 교체를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 버퍼 관리기의 동작을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 트랜잭션 메모리부의 동작을 설명하는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따라 데이터베이스에 적용되는 트랜잭션 메모리 시스템을 나타낸 도면이다. 여기에서 데이터베이스 시스템은 대용량 데이터를 처리하기 위한 시스템이다.
도 1을 참조하면, 트랜잭션 메모리 시스템은 트랜잭션 메모리부(110), 추적 주소 변환 계층부(120), 메인 메모리(130), 버퍼 관리기(140) 및 디스크(150)를 포함한다.
트랜잭션 메모리부(110)는 트랜잭션이 발생하면 상기 트랜잭션이 접근하는 메모리 주소를 추적하여, 그 충돌 여부를 탐지한다. 트랜잭션이라고 정의된 구역 내에서 공유 메모리에 대한 연산(읽기, 쓰기)에 대해 그 내역을 추적하고, 다른 트랜잭션과의 충돌을 탐지한다. 트랜잭션 메모리부(110)는 공유 메모리 중 어느 부분에 연산이 이루어 졌는지 추적하기 위해, 연산 대상이 되는 메모리의 주소를 추적한다.
예컨대, 트랜잭션 메모리부(110)는 읽기 연산의 경우 read set에 자신이 읽은 메모리 주소를 등록하고, 쓰기 연산의 경우 write set에 자신이 쓴 메모리 주소를 등록한다. 또한, 트랜잭션 메모리부(110)는 읽거나 쓴 read set, write set을 유지하고 추후에 다른 트랜잭션의 read set, write set과 비교한다. 그리고 트랜잭션 메모리부(110)는 다른 트랜잭션의 read set, write set과 자신의 read set, write set에서 같은 대상을 읽거나 쓴 경우 충돌로 판단하게 된다. 이와 같이, 트랜잭션 메모리부(110)는 트랜잭션의 종료 시점에 충돌 여부를 검증하여 충돌이 발생하지 않았다면 완료(commit)를 수행하고, 충돌이 발생하였다면 복귀(abort) 후 재시작(restart)을 수행한다.
디스크(150)는 데이터를 보관하기 위해 사용되는 저장 장치이며, 일반적인 하드 디스크 등을 포함한다.
메인 메모리(130)는 데이터가 상위 레벨 장치,예컨대 CPU(도시 생략)에서 연산 되기 위해 임시로 저장 되는 장치로서 데이터 베이스의 버퍼 풀(buffer pool)로 사용된다. 메인 메모리는 페이지들의 집합으로 이루어져 있는데, 메인 메모리의 각 페이지는 프레임이라고 한다.
버퍼 관리기(140)는 페이지(Page) 단위로 메모리와 디스크간의 페이지 교체를 주관한다. 여기에서, 페이지 (page)는 데이터베이스 시스템에서 데이터를 관리하는 단위이며, 보통 4 kbyte 또는 8 kbyte의 단위를 의미한다.
구체적으로, 버퍼 관리기(140)는 디스크(150)로부터 페이지가 메인 메모리(130)로 프로세스들에 대해 이용 가능하도록 하는데, 즉 페이지 교체 전략을 구현함으로써 디스크에 대한 액세스를 최소화하면서 프로세스가 필요한 페이지들을 획득하게 한다. 다시 말해, 데이터베이스 시스템의 경우 버퍼 관리기(140)가 페이지 단위로 버퍼를 교체한다.
도 2는 메인 메모리와 디스크 간의 페이지 교체를 설명하기 위한 도면이다.
도 2를 참조하면, 연산을 위한 페이지가 요청되면, 버퍼 관리기(140)는 요청된 페이지가 메인 메모리(130)에 있는 지 확인한다. 버퍼 관리기(140)는 요청된 페이지가 메인 메모리(130) 상에 없으면, 메인 메모리(130) 상에 프리 프레임이 있는 지를 확인한다. 버퍼 관리기(140)는 메인 메모리(130) 상에 프리 프레임이 없으면 소정의 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하고, 요청된 페이지를 메인 메모리(130)의 선택된 프레임에 대해 페이지 교체를 수행한다.
페이지 교체 알고리즘의 일 예로서, 기억장치(메인 메모리) 바깥으로 내보낼 페이지를 선정할 때, 최근에 다른 어떤 페이지보다도 적게 사용된(읽혀지거나 기록되거나) 즉, 적은 횟수로 사용된 페이지를 고르는 LRU(Least Recently Used)가 있다.
이 결과에 따라 데이터 페이지 속의 같은 데이터도 이전과 다른 메모리 위치에 위치할 수 있다. 이 때, 버퍼 관리기(140)는 트랜잭션에 따라 접근한 모든 페이지들을 추적할 수 없다. 왜냐하면, 메인 메모리(130)에서 고정된(pinned) 페이지는 추후 고정되지 않기(unpinned) 때문이다.
페이지 교체가 일어나면 실제로 동일한 데이터의 경우에도 메모리 주소가 달라질 수 있다. 이 경우 트랜잭션 메모리는 그 바뀐 메모리 주소 값을 모를 경우 정상적으로 추적을 할 수 없다.
따라서 본 발명에 따라 버퍼 관리기(140)는 페이지 교체가 발생하는 경우 추적 주소 변환 계층부(120)에 교체된 페이지의 새로운 주소를 등록한다. 버퍼 관리기(140)는 페이지 교체가 발생하면 추적 주소 변환 계층부(120)에 교체된 페이지의 식별 정보와 그 주소 정보를 등록한다.
구체적으로, 버퍼 관리기(140)는 교체된 페이지가 트랜잭션 메모리부(110)에서 추적하는 주소를 포함하는 지를 판단한다. 교체된 페이지가 트랜잭션 메모리부(110)에서 추적하는 주소를 포함하면, 버퍼 관리기(140)는 교체된 페이지의 주소를 주소 변환 계층부(120)에 등록한다. 버퍼 관리기(140)가 페이지를 교체할 경우 이 교체된 페이지에 관련한 정보(타임 스탬프, 페이지 번호, 이전 메모리 주소, 변경된 메모리 주소) 즉, 추적 주소 변환 정보(TTL 정보)를 추적 주소 변환 계층부(120)에 등록한다.
추적 주소 변환 계층부(120)는 추적 주소 변환 정보를 가지고 있는데, 추적 주소 변환 정보는 전술한 바와 같이, 메인 메모리(140)에 저장된 페이지들의 식별 정보와 상기 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함한다. 예컨대, 추적 주소 변환 계층부(120)는 아래 표 1과 같은 정보를 가지고 있다.
타임 스탬프 페이지 번호 이전 메모리 주소 변경된 메모리 주소
10021 10 4096 32768
10022 421 233472 360448
10023 20421 45056 4096
10024 10 32768 8192
…. …. ….
여기에서, 타임 스탬프(Time stamp)는 논리적으로 1씩 증가하는 숫자이며, 숫자가 작을수록 이른 시간, 클수록 나중 시간을 의미한다. 페이지 번호(Page number)는 데이터베이스에서 페이지(4kb 또는 8kb등)를 구분하는 번호이다.
트랜잭션 메모리부(110)는 그 내역을 바탕으로 자신이 추적할 메모리 주소를 변경된 새로운 메모리 주소로 바꾸어 계속 추적할 수 있게 된다, 즉, 트랜잭션 메모리부(110)는 트랜잭션이 발생하면 추적 주소 변환 계층부(120)에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단한다. 트랜잭션 메모리부(110)는 연산 대상이 되는 주소가 페이지 교체되었으면 변경된 메모리 주소를 추적한다.
도 3은 본 발명의 일 실시예에 따른 버퍼 관리기의 동작을 나타낸 도면이다.
도 3을 참조하면, 버퍼 관리기는 단계 210에서 페이지 교체가 발생하였는 지를 판단한다. 전술한 바와 같이, 버퍼 관리기는 디스크로부터 페이지가 메인 메모리로 프로세스들에 대해 이용 가능하도록 하는데, 즉 페이지 교체 전략을 구현한다. 다시 말해, 버퍼 관리기(140)는 페이지 요청이 있으면, 요청된 페이지가 메인 메모리 상에 있는 지를 판단하고, 메인 메모리 상에 없으면, 메인 메모리 상에 프리 프레임이 있는 지를 확인한다. 버퍼 관리기는 메인 메모리 상에 프리 프레임이 없으면 소정의 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하고, 요청된 페이지를 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행한다.
버퍼 관리기는 페이지 교체가 발생하면, 단계 220으로 진행하여 교체된 페이지가 트랜잭션 메모리부에서 추적하는 주소를 포함하는 지를 판단한다. 즉, 버퍼 관리기는 교체된 페이지가 트랜잭션 메모리부가 추적하고 있는 주소를 가지는 지를 판단한다. 교체된 페이지가 트랜잭션 메모리부가 추적하는 주소를 포함하면 버퍼 관리기는 단계 230으로 진행하여, 추적 주소 변환 정보를 갱신한다. 다시 말해 버퍼 관리기는 단계 230에서 교체된 페이지에 관련한 내역(타임 스탬프, 페이지 번호, 이전 메모리 주소, 변경된 메모리 주소)를 추적 주소 변환 계층부에 등록한다.
이어서, 도 4를 참조하여 트랜잭션 메모리부의 동작을 설명한다.
도 4는 본 발명의 일 실시예에 따른 트랜잭션 메모리부의 동작을 설명하는 도면이다.
도 4를 참조하면, 트랜잭션 메모리부는 단계 310에서 상위 레벨, 예컨대, CPU로부터 트랜잭션이 발생하였는 지를 판단한다. 트랜잭션은 당업계에 공지된 바와 같이, 데이터베이스시스템 등에서 업무 처리 단위를 나타낸다.
트랜잭션이 발생하였으면 트랜잭션 메모리부는 단계 320으로 진행하여 추적 주소 변환 계층부가 가지고 있는 추적 주소 변환 정보를 확인한다. 여기에서 추적 주소 변환 정보는 메인 메모리에 저장된 페이지들의 식별 정보와 상기 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함한다.
트랜잭션 메모리부는 단계 330에서 추적 주소 변환 계층부(120)에 기초하여 트랜잭션에 따라 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단한다. 트랜잭션 메모리부는 단계 340에서 트랜잭션 메모리부(110)는 연산 대상이 되는 주소가 페이지 교체되었으면 변경된 메모리 주소를 추적한다.
이와 같이, 본 발명에 따른 트랜잭션 메모리 시스템은 페이지 교체에 따른 변경된 데이터 주소 정보를 계속적으로 추적하여 데이터베이스에서도 변경된 메모리 주소를 추적할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110: 트랜잭션 메모리부
120: 추적 주소 변환 계층부
130: 메인 메모리
140: 버퍼 관리기
150: 디스크

Claims (12)

  1. 트랜잭션 메모리 시스템에 있어서,
    데이터를 저장하는 디스크와,
    연산을 위해 데이터를 임시로 저장하는 메인 메모리와,
    페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부와,
    연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 담당하며, 상기 페이지 교체가 발생하면 상기 교체된 페이지의 주소를 상기 추적 주소 변환 계층부에 등록하는 버퍼 관리기와,
    트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 트랜잭션 메모리부를 포함하는 것을 특징으로 하는 트랜잭션 메모리 시스템.
  2. 제1항에 있어서,
    상기 트랜잭션 메모리부는 상기 추적 주소 변환 계층부에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단하고, 상기 연산 대상이 되는 주소가 페이지 교체되었으면 상기 추적 주소 변환 계층부에 포함된 변경된 메모리 주소 정보에 따라 변경된 메모리 주소를 추적하는 것을 특징으로 하는 트랜잭션 메모리 시스템.
  3. 제1항에 있어서,
    상기 버퍼 관리기는 상기 페이지가 요청되면 상기 요청된 페이지가 상기 메인 메모리에 있는 지 확인하고, 상기 요청된 페이지가 메인 메모리 상에 없으면, 상기 메인 메모리 상에 프리 프레임이 있는 지를 확인하며, 상기 메인 메모리 상에 프리 프레임이 없으면 미리 결정된 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하고, 요청된 페이지를 상기 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행하는 것을 특징으로 하는 트랜잭션 메모리 시스템.
  4. 제1항에 있어서,
    상기 페이지 단위는 4 kbyte 및 8 kbyte의 단위 중 하나인 것을 특징으로 하는 트랜잭션 메모리 시스템.
  5. 제3항에 있어서,
    상기 교체 알고리즘은 최근에 다른 어떤 페이지보다도 적게 사용된 페이지를 고르는 LRU(Least Recently Used) 알고리즘 인 것을 특징으로 하는 트랜잭션 메모리 시스템.
  6. 제1항에 있어서,
    상기 페이지 번호는 상기 메인 메모리에 저장된 페이지들의 식별 정보인 것을 특징으로 하는 트랜잭션 메모리 시스템.
  7. 데이터를 저장하는 디스크와, 연산을 위해 데이터를 임시로 저장하는 메인 메모리를 포함하는 트랜잭션 메모리 시스템에서 변경된 메모리 주소를 추적하는 방법에 있어서,
    연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 수행하는 단계와,
    상기 페이지 교체가 발생하면, 페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부에 상기 교체된 페이지의 주소를 등록하는 단계와,
    트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 단계를 포함하는 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
  8. 제7항에 있어서,
    상기 탐지 단계는
    상기 추적 주소 변환 계층부에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단하는 단계와,
    상기 연산 대상이 되는 주소가 페이지 교체되었으면 상기 추적 주소 변환 계층부에 포함된 변경된 메모리 주소 정보에 따라 변경된 메모리 주소를 추적하는 단계를 포함하는 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
  9. 제7항에 있어서,
    상기 페이지 교체 수행 단계는
    상기 페이지가 요청되면 상기 요청된 페이지가 상기 메인 메모리에 있는 지 확인하는 단계와,
    상기 요청된 페이지가 메인 메모리 상에 없으면, 상기 메인 메모리 상에 프리 프레임이 있는 지를 확인하는 단계와,
    상기 메인 메모리 상에 프리 프레임이 없으면 미리 결정된 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하는 단계와,
    상기 요청된 페이지를 상기 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행하는 단계를 포함하는 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
  10. 제7항에 있어서,
    상기 페이지 단위는 4 kbyte 및 8 kbyte의 단위 중 하나인 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
  11. 제9항에 있어서,
    상기 교체 알고리즘은 최근에 다른 어떤 페이지보다도 적게 사용된 페이지를 고르는 LRU(Least Recently Used) 알고리즘 인 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
  12. 제7항에 있어서,
    상기 페이지 번호는 상기 메인 메모리에 저장된 페이지들의 식별 정보인 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
KR1020100059141A 2010-06-22 2010-06-22 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 KR101121902B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100059141A KR101121902B1 (ko) 2010-06-22 2010-06-22 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100059141A KR101121902B1 (ko) 2010-06-22 2010-06-22 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110138946A true KR20110138946A (ko) 2011-12-28
KR101121902B1 KR101121902B1 (ko) 2012-03-20

Family

ID=45504676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100059141A KR101121902B1 (ko) 2010-06-22 2010-06-22 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101121902B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268723B2 (en) 2016-06-20 2019-04-23 TmaxData Co., Ltd. Method and apparatus for executing query and computer readable medium therefor
US10275491B2 (en) 2016-06-20 2019-04-30 TmaxData Co., Ltd. Method and apparatus for executing query and computer readable medium therefor
US10394797B2 (en) 2016-03-10 2019-08-27 TmaxData Co., Ltd. Method and computing apparatus for managing main memory database

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374323B1 (en) * 1998-11-16 2002-04-16 Infineon Technologies Ag Computer memory conflict avoidance using page registers
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394797B2 (en) 2016-03-10 2019-08-27 TmaxData Co., Ltd. Method and computing apparatus for managing main memory database
US10268723B2 (en) 2016-06-20 2019-04-23 TmaxData Co., Ltd. Method and apparatus for executing query and computer readable medium therefor
US10275491B2 (en) 2016-06-20 2019-04-30 TmaxData Co., Ltd. Method and apparatus for executing query and computer readable medium therefor

Also Published As

Publication number Publication date
KR101121902B1 (ko) 2012-03-20

Similar Documents

Publication Publication Date Title
US7809903B2 (en) Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions
KR101470713B1 (ko) 버퍼링된 저장을 이용하여 트랜잭션들을 가속화하기 위한 메커니즘들
CN102483704B (zh) 具有高效的高速缓存支持的事务内存系统
US8296518B2 (en) Arithmetic processing apparatus and method
US20080005504A1 (en) Global overflow method for virtualized transactional memory
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
US20090177847A1 (en) System and method for handling overflow in hardware transactional memory with locks
US9892039B2 (en) Non-temporal write combining using cache resources
TWI533201B (zh) 縮減交易回復的快取控制
US10545879B2 (en) Apparatus and method for handling access requests
CN101322103A (zh) 无约束事务存储器系统
US20080229011A1 (en) Cache memory unit and processing apparatus having cache memory unit, information processing apparatus and control method
US20080040549A1 (en) Direct Deposit Using Locking Cache
JP7096840B2 (ja) 能力メタデータを管理するための装置及び方法
US8327084B2 (en) Method and apparatus to trigger synchronization and validation actions upon memory access
US20080040548A1 (en) Method for Processor to Use Locking Cache as Part of System Memory
KR101121902B1 (ko) 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법
US20170262382A1 (en) Processing device, information processing apparatus, and control method of processing device
US8832376B2 (en) System and method for implementing a low-cost CPU cache using a single SRAM
US6892257B2 (en) Exclusive access control to a processing resource
JP2010128698A (ja) マルチプロセッサシステム
US20240330185A1 (en) Pseudo out-of-order store commit
US11138119B2 (en) Increasing effective cache associativity

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150115

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160113

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee