KR20110138946A - 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 - Google Patents
변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
- G06F9/467—Transactional 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
본 발명은 데이터베이스에서도 변경된 메모리 주소를 추적할 수 있는 트랜잭션 메모리 시스템 및 방법에 관한 것이다.
소정 컴퓨터 시스템은 성능을 개선하기 위하여 동시에 다수의 스레드(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는 본 발명의 일 실시예에 따른 트랜잭션 메모리부의 동작을 설명하는 도면이다.
도 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: 디스크
120: 추적 주소 변환 계층부
130: 메인 메모리
140: 버퍼 관리기
150: 디스크
Claims (12)
- 트랜잭션 메모리 시스템에 있어서,
데이터를 저장하는 디스크와,
연산을 위해 데이터를 임시로 저장하는 메인 메모리와,
페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부와,
연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 담당하며, 상기 페이지 교체가 발생하면 상기 교체된 페이지의 주소를 상기 추적 주소 변환 계층부에 등록하는 버퍼 관리기와,
트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 트랜잭션 메모리부를 포함하는 것을 특징으로 하는 트랜잭션 메모리 시스템. - 제1항에 있어서,
상기 트랜잭션 메모리부는 상기 추적 주소 변환 계층부에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단하고, 상기 연산 대상이 되는 주소가 페이지 교체되었으면 상기 추적 주소 변환 계층부에 포함된 변경된 메모리 주소 정보에 따라 변경된 메모리 주소를 추적하는 것을 특징으로 하는 트랜잭션 메모리 시스템. - 제1항에 있어서,
상기 버퍼 관리기는 상기 페이지가 요청되면 상기 요청된 페이지가 상기 메인 메모리에 있는 지 확인하고, 상기 요청된 페이지가 메인 메모리 상에 없으면, 상기 메인 메모리 상에 프리 프레임이 있는 지를 확인하며, 상기 메인 메모리 상에 프리 프레임이 없으면 미리 결정된 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하고, 요청된 페이지를 상기 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행하는 것을 특징으로 하는 트랜잭션 메모리 시스템. - 제1항에 있어서,
상기 페이지 단위는 4 kbyte 및 8 kbyte의 단위 중 하나인 것을 특징으로 하는 트랜잭션 메모리 시스템. - 제3항에 있어서,
상기 교체 알고리즘은 최근에 다른 어떤 페이지보다도 적게 사용된 페이지를 고르는 LRU(Least Recently Used) 알고리즘 인 것을 특징으로 하는 트랜잭션 메모리 시스템. - 제1항에 있어서,
상기 페이지 번호는 상기 메인 메모리에 저장된 페이지들의 식별 정보인 것을 특징으로 하는 트랜잭션 메모리 시스템. - 데이터를 저장하는 디스크와, 연산을 위해 데이터를 임시로 저장하는 메인 메모리를 포함하는 트랜잭션 메모리 시스템에서 변경된 메모리 주소를 추적하는 방법에 있어서,
연산을 위해 페이지가 요청되면 상기 디스크와 메인 메모리 간의 페이지 교체를 수행하는 단계와,
상기 페이지 교체가 발생하면, 페이지 번호, 페이지들이 저장된 이전 메모리 주소 및 변경된 메모리 주소 정보를 포함하는 추적 주소 변환 계층부에 상기 교체된 페이지의 주소를 등록하는 단계와,
트랜잭션이 발생하면 상기 트랜잭션이 접근하는 상기 메인 메모리의 메모리 주소를 추적하여, 트랜잭션 간의 충돌 여부를 탐지하는 단계를 포함하는 것을 특징으로 하는 변경된 메모리 주소 추적 방법. - 제7항에 있어서,
상기 탐지 단계는
상기 추적 주소 변환 계층부에 기초하여 연산 대상이 되는 주소가 페이지 교체되었는 지를 판단하는 단계와,
상기 연산 대상이 되는 주소가 페이지 교체되었으면 상기 추적 주소 변환 계층부에 포함된 변경된 메모리 주소 정보에 따라 변경된 메모리 주소를 추적하는 단계를 포함하는 것을 특징으로 하는 변경된 메모리 주소 추적 방법. - 제7항에 있어서,
상기 페이지 교체 수행 단계는
상기 페이지가 요청되면 상기 요청된 페이지가 상기 메인 메모리에 있는 지 확인하는 단계와,
상기 요청된 페이지가 메인 메모리 상에 없으면, 상기 메인 메모리 상에 프리 프레임이 있는 지를 확인하는 단계와,
상기 메인 메모리 상에 프리 프레임이 없으면 미리 결정된 교체 알고리즘에 따라 교체(replacement)를 위한 프레임을 선택하는 단계와,
상기 요청된 페이지를 상기 메인 메모리의 선택된 프레임에 대해 페이지 교체를 수행하는 단계를 포함하는 것을 특징으로 하는 변경된 메모리 주소 추적 방법. - 제7항에 있어서,
상기 페이지 단위는 4 kbyte 및 8 kbyte의 단위 중 하나인 것을 특징으로 하는 변경된 메모리 주소 추적 방법. - 제9항에 있어서,
상기 교체 알고리즘은 최근에 다른 어떤 페이지보다도 적게 사용된 페이지를 고르는 LRU(Least Recently Used) 알고리즘 인 것을 특징으로 하는 변경된 메모리 주소 추적 방법. - 제7항에 있어서,
상기 페이지 번호는 상기 메인 메모리에 저장된 페이지들의 식별 정보인 것을 특징으로 하는 변경된 메모리 주소 추적 방법.
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)
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)
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 |
-
2010
- 2010-06-22 KR KR1020100059141A patent/KR101121902B1/ko not_active IP Right Cessation
Cited By (3)
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 |