KR101355105B1 - 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치 - Google Patents

캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치 Download PDF

Info

Publication number
KR101355105B1
KR101355105B1 KR1020120000612A KR20120000612A KR101355105B1 KR 101355105 B1 KR101355105 B1 KR 101355105B1 KR 1020120000612 A KR1020120000612 A KR 1020120000612A KR 20120000612 A KR20120000612 A KR 20120000612A KR 101355105 B1 KR101355105 B1 KR 101355105B1
Authority
KR
South Korea
Prior art keywords
shared virtual
virtual memory
memory
core
page
Prior art date
Application number
KR1020120000612A
Other languages
English (en)
Other versions
KR20130079865A (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 KR1020120000612A priority Critical patent/KR101355105B1/ko
Priority to US13/733,396 priority patent/US9208088B2/en
Publication of KR20130079865A publication Critical patent/KR20130079865A/ko
Application granted granted Critical
Publication of KR101355105B1 publication Critical patent/KR101355105B1/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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치에 관한 것으로, 두 개 이상의 코어가 하나의 가상 메모리 페이지에 동시에 쓰기 권한을 요청할 경우, 물리 메모리 페이지를 할당하여 그 물리 메모리 페이지에서 데이터를 수정한 뒤, 이후에 수정한 데이터만 원래의 물리 메모리 페이지에 업데이트함으로써 캐시 일관성을 제공하지 않는 멀티 코어 하드웨어 환경에서도 데이터 일관성을 보장할 수 있도록 한 것이다.

Description

캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치{Shared virtual memory management apparatus for securing cache-coherent}
본 발명은 공유 가상 메모리 관리 기술에 관련한 것으로, 특히 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치에 관한 것이다.
미국등록특허 제5,592,625호(1997. 01. 07)에서 입/출력 버퍼, 페이지 테이블 및 제어/상태 레지스터를 구비한 어댑터 카드에 의해 모든 주소 번역, 메모리 매핑, 패킷 발생이 수행되는 메모리 주소 번역에 기반한 공유 가상 메모리 관리 기술을 제안하고 있다.
소프트웨어 공유 가상 메모리는 가상 메모리의 페이징 기술을 이용하고 있다. 응용프로그램이 어떤 페이지에 처음 접근할 때 페이지 폴트가 발생하고 페이지 폴트 핸들러는 페이지 폴트 정보를 통해 응용프로그램이 원하는 페이지를 할당하게 된다. 소프트웨어 공유 가상 메모리는 이 페이지 폴트 핸들러를 수정하여 다수의 프로세서간 페이지 수준의 데이터 일관성을 보장할 수 있다.
캐시 일관성 프로토콜(cache coherence protocol)은 하드웨어적으로 데이터 일관성을 제공하기 위한 프로토콜이다. 현재 대부분의 멀티코어 칩에 포함되어 있어 프로그래머는 공유 메모리 프로그래밍 모델을 사용하여 쉽게 프로그래밍할 수 있다. 하지만 코어 수가 많아질 경우 확장성에 문제가 있어 대안 기술이 필요하다.
기존의 캐시 일관성 기술은 코어의 수가 많아지게 되면 코어간의 통신회수가 늘어 전체 시스템의 성능을 끌어올리는데 한계가 있다. 따라서, 캐시 일관성을 지원하지 않는 환경에서 데이터 일관성을 제공하기 위해 소프트웨어 공유 가상 메모리를 이용해 캐시 일관성 문제를 해결하고자 한다.
미국등록특허 제5,592,625호(1997. 01. 07)
본 발명은 상기한 취지하에 발명된 것으로, 캐시 일관성을 지원하지 않는 환경에서 데이터 일관성을 제공하기 위해 소프트웨어 공유 가상 메모리를 이용해 캐시 일관성 문제를 해결할 수 있는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치를 제공하는 것을 그 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일 양상에 따르면, 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치가 공유 가상 메모리 페이지에 복수의 코어가 동시에 접근할 경우 물리 메모리 페이지를 할당하고, 할당된 물리 메모리 페이지에 공유 가상 메모리 페이지에 기록을 수행한 코어의 공유 가상 메모리 페이지 기록내용이 업데이트된 경우, 물리 메모리 페이지를 공유 가상 메모리 페이지에 기록을 수행하지 않은 코어의 공유 가상 메모리 페이지 테이블과 매핑시켜 캐시 일관성을 보정하는 것을 특징으로 한다.
캐시 일관성을 지원하지 않는 환경에서 소프트웨어 공유 가상 메모리를 이용해 캐시 일관성 문제를 해결함으로써 캐시 일관성을 제공하지 않는 멀티 코어 하드웨어 환경에서도 데이터 일관성을 보장할 수 있는 유용한 효과가 있다.
도 1 은 칩 멀티 코어 하드웨어 환경의 메모리 구조를 예시한 도면이다.
도 2 는 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 일 실시예의 구성을 도시한 블럭도이다.
도 3 내지 도 5 는 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 물리 메모리 할당 절차를 도식화한 도면이다.
도 6 은 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 공유 가상 메모리 관리 동작의 일 예를 도시한 흐름도이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명 명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
캐시 일관성을 보장하지 않는 칩 멀티 코어(프로세서) 환경에서는 동일한 메모리 영역을 두 개 이상의 코어가 동시에 접근하면 데이터 일관성의 문제가 생길 수 있다.
예를 들어 코어1이 특정 물리 메모리 주소의 데이터를 읽어 캐시에 로드된 상태이고, 이후에 코어2가 해당 물리 메모리 주소에 새로운 값을 쓴다고 가정하자. 캐시 일관성이 보장되지 않으면, 코어2에 의해 쓰여진 값은 코어1에서 읽힐 수 없다.
그 이유는 이미 해당 물리 메모리 주소에 대한 데이터는 코어1의 캐시에 로드된 상태이기 때문에 코어2가 다시 해당 물리 메모리 주소의 값을 읽는다면 캐시에 이미 로드된 이전의 데이터가 읽히기 때문이다. 이 경우, 새로 코어2가 업데이트한 값을 코어1에서 읽기를 원한다면 코어1의 캐시 내용을 비워 코어1이 메인 메모리에서 데이터를 새로 가져와야 한다.
또 다른 예로, 코어1이 가상 메모리 주소 0x1000번지에 접근하여 데이터를 수정하고, 코어2가 가상 메모리 주소 0x1004번지에 접근하여 데이터를 수정했다고 가정하자. 캐시는 기본적으로 라이트백 정책(Writeback policy)을 가지고 있고, 캐시 라인은 32바이트라고 가정하자.
코어1이 가상 메모리 주소 0x1000번지에 업데이트 한 데이터는 일정 시간 후에 캐시 리플레이스먼트(cache replacement)에 의해 메인 메모리에 업데이트가 된다. 이후, 코어2가 가상 메모리 주소 0x1004번지에 업데이트한 데이터도 그 후에 캐시 리플레이스먼트(cache replacement)에 의해 메인 메모리에 업데이트가 된다.
이 때, 라이드백(writeback) 캐시는 해당 캐시라인을 모두 업데이트 하기 때문에 코어2의 캐시라인 전체를 메인 메모리에 업데이트하게 된다. 이 경우, 코어1에 의해 수정된 값은 코어2에 의해 수정된 값에 의해 지워지게 된다. 따라서, 이러한 문제점을 보완할 필요가 있다.
도 1 은 칩 멀티 코어 하드웨어 환경의 메모리 구조를 예시한 도면이다. 칩 멀티 코어 하드웨어 환경에서는 하드웨어 구조상 전체 물리 메모리 영역은 어떤 코어(프로세서)에서든지 접근할 수 있기 때문에, 페이지 테이블을 통해 특정 물리 주소영역을 특정 가상 주소 영역에 맵핑할 수 있다.
도 1 에서 코어1과 코어2의 가상 메모리 주소 영역의 0번 페이지는 물리 메모리 주소 영역의 0번 페이지에 동일하게 맵핑되어 있기 때문에 두 코어는 항상 같은 값을 읽고 쓸 수 있다. 하지만, 위에서 설명한 것과 같이 캐시 일관성 문제 때문에 두 코어 모두가 해당 물리 메모리 페이지를 수정할 경우에는 동일한 물리 메모리 페이지를 맵핑할 수 없다.
즉, 다수의 코어가 하나의 물리 메모리 페이지를 동시에 맵핑하려면 반드시 그 중 한 개 이하의 코어만 그 물리 메모리 페이지에 쓰기 권한을 획득할 수 있다. 다시 말해, 모든 코어가 읽기 권한으로 접근하거나 단 하나의 코어만이 쓰기 권한으로 해당 물리 메모리 페이지에 접근할 수 있다.
캐시 일관성을 보장하기 위해 본 발명은 두 개 이상의 코어가 하나의 가상 메모리 페이지에 동시에 쓰기 권한을 요청할 경우, 서로 다른 물리 메모리 페이지를 할당하여 그 물리 메모리 페이지에서 데이터를 수정한 뒤, 이후에 수정한 데이터만 원래의 물리 메모리 페이지에 업데이트 한다.
이 때, 해당 물리 메모리 페이지를 라이트백 정책(writeback policy) 설정하면, 캐시라인 단위로 업데이트 되어 데이터 일관성이 보장되지 않을 수 있으므로, 언캐시어블(uncacheable)로 물리 메모리 페이지를 설정하여 정확히 업데이트한 데이터만 물리 페이지에 반영한다.
도 2 는 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 일 실시예의 구성을 도시한 블럭도이다. 도 2 에 도시한 바와 같이, 이 실시예에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치(100)는 공유 가상 메모리 관리부(110)와, 물리 메모리 관리부(120)와, 메모리 매핑부(130)를 포함하여 이루어진다.
공유 가상 메모리 관리부(110)는 복수의 코어가 공유하는 공유 가상 메모리 페이지를 할당하고, 할당된 공유 가상 메모리 페이지에 대한 코어 접근을 관리한다.
캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치(100)는 멀티 코어 환경의 각 코어가 실제 물리 메모리 페이지에 데이터를 기록하기 전에 물리 메모리 페이지와 매핑되는 공유 가상 메모리 페이지를 공유 가상 메모리 관리부(110)를 통해 할당하고, 메모리 매핑 테이블을 이용해 할당된 공유 가상 메모리 페이지에 대한 코어 접근을 관리한다.
물리 메모리 관리부(120)는 공유 가상 메모리 관리부(110)에 의해 할당된 공유 가상 메모리 페이지에 복수의 코어가 동시에 접근할 경우, 물리 메모리 페이지를 할당하고 할당된 물리 메모리 페이지에 공유 가상 메모리 페이지에 기록을 수행한 코어의 공유 가상 메모리 페이지 기록내용을 업데이트한다.
이 때, 물리 메모리 관리부(120)가 공유 가상 메모리 관리부(110)에 의해 할당된 공유 가상 메모리 페이지에 하나의 코어가 쓰기 권한으로 접근한 상태에서, 동일한 공유 가상 메모리 페이지에 다른 코어가 쓰기 권한으로 접근할 경우, 물리 메모리 페이지를 할당하도록 구현할 수 있다.
메모리 매핑부(130)는 물리 메모리 관리부(120)에 의해 할당된 물리 메모리 페이지에 공유 가상 메모리 페이지에 기록을 수행한 코어의 공유 가상 메모리 페이지 기록내용이 업데이트된 경우, 물리 메모리 페이지를 공유 가상 메모리 페이지에 기록을 수행하지 않은 코어의 공유 가상 메모리 페이지 테이블과 매핑시킨다.
즉, 이렇게 함에 의해 본 발명은 두 개 이상의 코어가 하나의 가상 메모리 페이지에 동시에 쓰기 권한을 요청할 경우, 물리 메모리 페이지를 할당하여 그 물리 메모리 페이지에서 데이터를 수정한 뒤, 이후에 수정한 데이터만 원래의 물리 메모리 페이지에 업데이트함으로써 캐시 일관성을 제공하지 않는 멀티 코어 하드웨어 환경에서도 데이터 일관성을 보장할 수 있다.
이 때, 해당 물리 메모리 페이지를 라이트백 정책(writeback policy) 설정하면, 캐시라인 단위로 업데이트 되어 데이터 일관성이 보장되지 않을 수 있으므로, 언캐시어블(uncacheable)로 물리 메모리 페이지를 설정하여 정확히 업데이트한 데이터만 물리 페이지에 반영한다.
한편, 발명의 부가적인 양상에 따르면, 물리 메모리 관리부(120)가 메모리 언락(Unlock)인 상태의 코어가 존재하나 판단하여 존재할 경우, 메모리 언락(Unlock)을 마지막으로 수행한 코어의 공유 가상 메모리 페이지 기록내용을 할당된 물리 메모리 페이지에 업데이트하도록 구현할 수 있다.
이 때, 공유 가상 메모리 관리부(110)가 메모리 언락(Unlock)인 상태의 코어의 공유 가상 메모리 페이지 기록내용이 물리 메모리 페이지에 업데이트된 경우, 동일한 공유 가상 메모리 페이지에 대한 다른 코어의 쓰기 권한 접근을 허락하도록 구현할 수 있다.
도 3 내지 도 5 는 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 물리 메모리 할당 절차를 도식화한 도면이다. 예컨대, 할당된 공유 가상 메모리 페이지 A에 코어1이 맨 처음 접근한다면, 처음 접근이므로 읽기 페이지 폴트(page fault)가 발생되고, 메모리 언락(Unlock) 상태의 코어가 없으므로, 물리 메모리 관리부(120)는 일반 페이지 폴트 핸들러(handler)의 절차에 따라 도 3 에 도시한 바와 같이 공유 가상 메모리 페이지와 매핑되는 새로운 물리 메모리 페이지를 할당한다.
메모리 락(lock) 상태는 하나의 코어만 공유 가상 메모리 페이지에 접근할 수 있는 상태를 의미하고, 메모리 언락(Unlock) 상태는 복수의 코어가 공유 가상 메모리 페이지에 접근할 수 있는 상태를 의미한다.
이후, 코어1은 쓰기 페이지 폴트가 발생하면, 쓰기 권한을 획득한 후 공유 가상 메모리 페이지를 수정할 수 있다. 예컨대, 이 상태에서 릴리즈 일관성 모델(release consistency model)에 따라 코어1의 해당 공유 가상 메모리 페이지 쓰기 권한이 해제(release)되면, 코어1은 메모리 언락(Unlock) 상태가 된다.
이 후, 코어2가 해당 공유 가상 메모리 페이지 A에 접근을 요청하면, 코어1이 메모리 언락(Unlock) 상태이므로, 물리 메모리 관리부(120)가 도 4 에 도시한 바와 같이 새로운 물리 메모리 페이지를 할당하고, 코어1의 공유 가상 메모리 페이지 A를 할당된 물리 메모리 페이지에 업데이트한다.
이 때, 물리 메모리 관리부(120)가 새로운 물리 메모리 페이지를 할당 후, 코어1이 수정한 공유 가상 메모리 페이지의 내용을 복사하는 이유는 코어1이 수정한 내용이 캐시에만 반영되고 메인 메모리에는 반영되지 않을 수 있기 때문에, 새로운 물리 메모리 페이지를 할당 후, 할당된 물리 메모리 페이지에 캐시를 거치지 않고(uncacheable) 데이터를 기록함으로써 코어1이 수정한 모든 내용이 메인 메모리에 반영되어 캐시 일관성을 보장하도록 하기 위해서이다.
이후, 코어2는 새로운 물리 메모리 페이지를 자신의 공유 가상 메모리 페이지와 맵핑 한 후, 가상 메모리 페이지 영역을 읽으면 코어1에 의해 업데이트 된 내용을 읽을 수 있어 캐시 일관성이 보장된다.
한편, 발명의 부가적인 양상에 따르면, 물리 메모리 관리부(120)가 메모리 언락(Unlock) 상태의 코어가 복수일 경우, 메모리 언락(Unlock) 상태의 코어 각각에 물리 메모리 페이지를 할당하여, 각 메모리 언락(Unlock) 상태의 코어에 의해 기록이 수행되는 공유 가상 메모리 페이지 기록내용을 각 메모리 언락(Unlock) 상태의 코어에 할당된 물리 메모리 페이지로 업데이트하도록 구현할 수 있다.
이 때, 물리 메모리 관리부(120)가 각 메모리 언락(Unlock) 상태의 코어에 의해 기록이 수행되는 공유 가상 메모리 페이지 기록내용을 동시에 반영하기 위한 별도의 물리 메모리 페이지를 더 할당하도록 구현할 수 있다.
한편, 물리 메모리 관리부(120)가 별도로 할당된 물리 메모리 페이지에 각 메모리 언락(Unlock) 상태의 코어에 의해 기록이 수행되는 공유 가상 메모리 페이지 기록내용을 순차적으로 기록하여 캐시 일관성을 수행하도록 구현할 수 있다.
한편, 물리 메모리 관리부(120)가 별도로 할당된 물리 메모리 페이지에 기록된 캐시 일관성이 유지되는 기록내용을 공유 가상 메모리 페이지와 실제로 매핑된 물리 메모리 페이지에 기록하여 반영하도록 구현할 수 있다.
도 5 를 참조해 보면, 코어2가 공유 가상 메모리 페이지 A에 쓰기 접근 중인 상태에서, 다시 코어1에 공유 가상 메모리 페이지 A에 쓰기 접근을 하면, 두 코어에 의해 하나의 공유 가상 메모리 페이지가 동시에 수정되는 상태가 된다.
물리 메모리 관리부(120)는 코어1이 사용할 물리 메모리 페이지를 새로이 할당하고, 코어2의 공유 가상 메모리 페이지 A를 할당된 새로운 물리 메모리 페이지에 업데이트한다.
그리고, 물리 메모리 관리부(120)는 코어1과 코어2 각각에 의해 수정되는 각 공유 가상 메모리 페이지 A의 수정 사항을 동시에 반영하기 위한 별도의 물리 메모리 페이지를 더 할당하고, 릴리즈 시점(release point)에 코어1과 코어2는 자신에게 각각 할당된 물리 메모리 페이지에 업데이트되는 공유 가상 메모리 페이지 A 기록내용을 별도로 할당된 물리 메모리 페이지에 순차적으로 기록하여 반영함으로써 코어1과 코어2 각각에 의해 수정되는 각 공유 가상 메모리 페이지 A의 수정 사항을 동시에 반영한다.
그리고, 물리 메모리 관리부(120)가 별도로 할당된 물리 메모리 페이지에 기록된 캐시 일관성이 유지되는 기록내용을 공유 가상 메모리 페이지 A와 실제로 매핑된 물리 메모리 페이지에 기록함으로써 각 코어의 캐시에 기록되는 내용이 메인 메모리에 반영되게 된다.
이상에서 설명한 바와 같은 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 공유 가상 메모리 관리 동작을 도 6 을 통해 간략하게 알아본다. 도 6 은 본 발명에 따른 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치의 공유 가상 메모리 관리 동작의 일 예를 도시한 흐름도이다.
공유 가상 메모리 페이지에 특정 코어가 접근하면, 먼저, 단계 610에서 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치가 메모리 언락(Unlock) 상태인 코어가 있는지 판단하여, 없을 경우에는 통상의 페이지 폴트 핸들러 동작을 수행하여 공유 가상 메모리 페이지에 쓰기를 한다.
만약, 메모리 언락(Unlock) 상태인 코어가 있을 경우, 단계 620에서 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치가 메모리 언락(Unlock) 상태인 코어에 의해 수정된 공유 가상 메모리 기록내용이 업데이트되었는지 판단하여, 업데이트되지 않은 경우, 공유 가상 메모리 페이지에 접근한 코어의 공유 가상 메모리 페이지에 매핑되도록 할당된 물리 메모리 페이지에 메모리 언락(Unlock) 상태인 코어에 의해 수정된 공유 가상 메모리 기록내용을 업데이트 한다.
메모리 언락(Unlock) 상태인 코어에 의해 수정된 공유 가상 메모리 기록내용이 업데이트된 경우, 단계 630에서 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치가 공유 가상 메모리 페이지에 접근한 코어가 쓰기 권한 접근인지 판단하여, 쓰기 권한 접근이 아닌 경우 공유 가상 메모리에 읽기 접근한다.
만약, 공유 가상 메모리 페이지에 접근한 코어가 쓰기 권한 접근인 경우, 단계 640에서 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치가 다른 코어가 공유 가상 메모리 페이지에 기록중인지 판단하여, 기록 중이 아닐 경우 공유 가상 메모리 페이지에 쓰기 권한 접근한다.
만약, 다른 코어가 공유 가상 메모리 페이지에 기록중인 경우, 단계 650에서 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치가 쓰기 권한 접근한 해당 코어에 할당된 물리 메모리 페이지에 다른 코어가 기록중인 공유 가상 메모리 페이지 기록내용을 업데이트한 후 공유 가상 메모리 페이지에 쓰기 권한 접근한다.
이와 같이 구현함에 의해, 본 발명은 두 개 이상의 코어가 하나의 가상 메모리 페이지에 동시에 쓰기 권한을 요청할 경우, 물리 메모리 페이지를 할당하여 그 물리 메모리 페이지에서 데이터를 수정한 뒤, 이후에 수정한 데이터만 원래의 물리 메모리 페이지에 업데이트함으로써 캐시 일관성을 제공하지 않는 멀티 코어 하드웨어 환경에서도 데이터 일관성을 보장할 수 있으므로, 상기에서 제시한 본 발명의 목적을 달성할 수 있다.
본 발명은 첨부된 도면에 의해 참조되는 바람직한 실시예를 중심으로 기술되었지만, 이러한 기재로부터 후술하는 특허청구범위에 의해 포괄되는 범위내에서 본 발명의 범주를 벗어남이 없이 다양한 변형이 가능하다는 것은 명백하다.
본 발명은 공유 가상 메모리 관리 기술분야 및 이의 응용 기술분야에서 산업상으로 이용 가능하다.
100 : 공유 가상 메모리 관리 장치 110 : 공유 가상 메모리 관리부
120 : 물리 메모리 관리부 130 : 메모리 매핑부

Claims (8)

  1. 복수의 코어가 공유하는 공유 가상 메모리 페이지를 할당하고, 할당된 공유 가상 메모리 페이지에 대한 코어 접근을 관리하는 공유 가상 메모리 관리부와;
    공유 가상 메모리 관리부에 의해 할당된 공유 가상 메모리 페이지에 복수의 코어가 동시에 접근할 경우, 물리 메모리 페이지를 할당하고 할당된 물리 메모리 페이지에 공유 가상 메모리 페이지에 기록을 수행한 코어의 공유 가상 메모리 페이지 기록내용을 업데이트하는 물리 메모리 관리부와;
    물리 메모리 관리부에 의해 할당된 물리 메모리 페이지에 공유 가상 메모리 페이지에 기록을 수행한 코어의 공유 가상 메모리 페이지 기록내용이 업데이트된 경우, 물리 메모리 페이지를 공유 가상 메모리 페이지에 기록을 수행하지 않은 코어의 공유 가상 메모리 페이지 테이블과 매핑시키는 메모리 매핑부를;
    포함하여 이루어지는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  2. 제 1 항에 있어서,
    물리 메모리 관리부가:
    공유 가상 메모리 관리부에 의해 할당된 공유 가상 메모리 페이지에 하나의 코어가 쓰기 권한으로 접근한 상태에서, 동일한 공유 가상 메모리 페이지에 다른 코어가 쓰기 권한으로 접근할 경우, 물리 메모리 페이지를 할당하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  3. 제 2 항에 있어서,
    물리 메모리 관리부가:
    메모리 언락(Unlock)인 상태의 코어가 존재하는지 판단하여, 메모리 언락인 상태의 코어가 존재할 경우, 메모리 언락(Unlock)을 마지막으로 수행한 코어의 공유 가상 메모리 페이지 기록내용을 할당된 물리 메모리 페이지에 업데이트하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  4. 제 3 항에 있어서,
    공유 가상 메모리 관리부가:
    메모리 언락(Unlock)인 상태의 코어의 공유 가상 메모리 페이지 기록내용이 물리 메모리 페이지에 업데이트된 경우, 동일한 공유 가상 메모리 페이지에 대한 다른 코어의 쓰기 권한 접근을 허락하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  5. 제 3 항 또는 제 4 항에 있어서,
    물리 메모리 관리부가:
    메모리 언락(Unlock) 상태의 코어가 복수일 경우, 메모리 언락(Unlock) 상태의 코어 각각에 물리 메모리 페이지를 할당하여, 각 메모리 언락(Unlock) 상태의 코어에 의해 기록이 수행되는 공유 가상 메모리 페이지 기록내용을 각 메모리 언락(Unlock) 상태의 코어에 할당된 물리 메모리 페이지로 업데이트하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  6. 제 5 항에 있어서,
    물리 메모리 관리부가:
    각 메모리 언락(Unlock) 상태의 코어에 의해 기록이 수행되는 공유 가상 메모리 페이지 기록내용을 동시에 반영하기 위한 별도의 물리 메모리 페이지를 메모리 언락 상태의 코어들이 공유하도록 더 할당하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  7. 제 6 항에 있어서,
    물리 메모리 관리부가:
    별도로 할당된 물리 메모리 페이지에 각 메모리 언락(Unlock) 상태의 코어에 의해 기록이 수행되는 공유 가상 메모리 페이지 기록내용을 순차적으로 기록하여 캐시 일관성을 수행하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
  8. 제 7 항에 있어서,
    물리 메모리 관리부가:
    별도로 할당된 물리 메모리 페이지에 기록된 캐시 일관성이 유지되는 기록내용을 공유 가상 메모리 페이지와 실제로 매핑된 물리 메모리 페이지에 기록하여 반영하는 것을 특징으로 하는 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치.
KR1020120000612A 2012-01-03 2012-01-03 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치 KR101355105B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120000612A KR101355105B1 (ko) 2012-01-03 2012-01-03 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US13/733,396 US9208088B2 (en) 2012-01-03 2013-01-03 Shared virtual memory management apparatus for providing cache-coherence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120000612A KR101355105B1 (ko) 2012-01-03 2012-01-03 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치

Publications (2)

Publication Number Publication Date
KR20130079865A KR20130079865A (ko) 2013-07-11
KR101355105B1 true KR101355105B1 (ko) 2014-01-23

Family

ID=48992175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120000612A KR101355105B1 (ko) 2012-01-03 2012-01-03 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치

Country Status (2)

Country Link
US (1) US9208088B2 (ko)
KR (1) KR101355105B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021054749A1 (ko) 2019-09-20 2021-03-25 주식회사 엘지화학 배터리 관리 장치 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902459B (zh) * 2012-12-25 2017-07-28 华为技术有限公司 确定共享虚拟内存页面管理模式的方法和相关设备
US9471226B2 (en) * 2014-02-28 2016-10-18 Red Hat Israel, Ltd. Reverse copy on write for better cache utilization
WO2015156615A1 (en) * 2014-04-09 2015-10-15 Samsung Electronics Co., Ltd. Application execution method and apparatus
KR102262102B1 (ko) 2014-04-09 2021-06-09 삼성전자 주식회사 애플리케이션 실행 방법 및 장치
CN105988871B (zh) * 2015-01-27 2020-06-02 华为技术有限公司 一种远端内存分配方法、装置和系统
KR101701052B1 (ko) * 2015-08-26 2017-01-31 동국대학교 경주캠퍼스 산학협력단 사물인터넷에서의 정보 보안 방법 및 이를 이용한 정보 보안 시스템
CN107168894B (zh) * 2017-06-30 2020-08-25 联想(北京)有限公司 内存共享访问方法及电子设备
KR102292389B1 (ko) * 2018-01-17 2021-08-25 한국전자통신연구원 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법
WO2024117572A1 (ko) * 2022-11-29 2024-06-06 한국전자통신연구원 대용량 온칩 메모리를 갖는 인공지능 프로세서를 위한 가상주소 기반의 캐시 코헤런시 지원 방법 및 이를 위한 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
KR20030092101A (ko) * 2001-04-24 2003-12-03 어드밴스드 마이크로 디바이시즈, 인코포레이티드 공유 메모리를 이용하여 가상 메모리를 실시하는멀티프로세서 시스템, 및 페이징된 메모리 코히런시를유지하기 위한 페이지 교환 방법
KR20040032745A (ko) * 2002-10-10 2004-04-17 인터내셔널 비지네스 머신즈 코포레이션 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
KR20110073339A (ko) * 2009-12-21 2011-06-29 인텔 코포레이션 컴퓨터 플랫폼에서의 방법 및 컴퓨터 플랫폼

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US6496909B1 (en) * 1999-04-06 2002-12-17 Silicon Graphics, Inc. Method for managing concurrent access to virtual memory data structures
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6862608B2 (en) * 2001-07-17 2005-03-01 Storage Technology Corporation System and method for a distributed shared memory
US7457796B2 (en) * 2004-07-08 2008-11-25 International Business Machines Corporation Method using virtual replicated tables in a cluster database management system
US7996644B2 (en) * 2004-12-29 2011-08-09 Intel Corporation Fair sharing of a cache in a multi-core/multi-threaded processor by dynamically partitioning of the cache
US7680987B1 (en) * 2006-03-29 2010-03-16 Emc Corporation Sub-page-granular cache coherency using shared virtual memory mechanism
US8521919B2 (en) * 2009-06-30 2013-08-27 International Business Machines Corporation Direct memory access in a computing environment
EP2499576A2 (en) * 2009-11-13 2012-09-19 Richard S. Anderson Distributed symmetric multiprocessing computing architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
KR20030092101A (ko) * 2001-04-24 2003-12-03 어드밴스드 마이크로 디바이시즈, 인코포레이티드 공유 메모리를 이용하여 가상 메모리를 실시하는멀티프로세서 시스템, 및 페이징된 메모리 코히런시를유지하기 위한 페이지 교환 방법
KR20040032745A (ko) * 2002-10-10 2004-04-17 인터내셔널 비지네스 머신즈 코포레이션 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
KR20110073339A (ko) * 2009-12-21 2011-06-29 인텔 코포레이션 컴퓨터 플랫폼에서의 방법 및 컴퓨터 플랫폼

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021054749A1 (ko) 2019-09-20 2021-03-25 주식회사 엘지화학 배터리 관리 장치 및 방법
KR20210034372A (ko) 2019-09-20 2021-03-30 주식회사 엘지화학 배터리 관리 장치 및 방법
US12007894B2 (en) 2019-09-20 2024-06-11 Lg Energy Solution, Ltd. Battery management apparatus and method

Also Published As

Publication number Publication date
US20140040563A1 (en) 2014-02-06
KR20130079865A (ko) 2013-07-11
US9208088B2 (en) 2015-12-08

Similar Documents

Publication Publication Date Title
KR101355105B1 (ko) 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US10552337B2 (en) Memory management and device
US11893653B2 (en) Unified memory systems and methods
EP3382557B1 (en) Method and apparatus for persistently caching storage data in a page cache
US8301717B2 (en) Extended virtual memory system and method in a computer cluster
US10248322B2 (en) Memory system
EP2985702B1 (en) Data processing method and device, and computer system
US8370533B2 (en) Executing flash storage access requests
CN110362504A (zh) 对一致性链路和多级存储器的管理
JP5348429B2 (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
BR112013003850B1 (pt) aparelho e método de buffer de escrita de combinação com medidas de esvaziamento dinamicamente ajustáveis.
US20130091331A1 (en) Methods, apparatus, and articles of manufacture to manage memory
TW201017405A (en) Improved hybrid drive
KR20120068454A (ko) 원격 페이지 폴트 처리 장치 및 그 방법
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
US9448934B2 (en) Affinity group access to global data
CN103744799A (zh) 一种内存数据访问方法、装置和系统
US20160266793A1 (en) Memory system
US8335903B2 (en) Method and system for processing access to disk block
CN112100093B (zh) 保持多处理器共享内存数据一致性的方法和多处理器系统
US11237960B2 (en) Method and apparatus for asynchronous memory write-back in a data processing system
US20190286327A1 (en) Memory Objects
KR20210043001A (ko) 하이브리드 메모리 시스템 인터페이스
Giles et al. Software support for atomicity and persistence in non-volatile memory
Zhang et al. Toward Virtual Machine Image Management for Persistent Memory

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: 20160224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 7