KR100577384B1 - 페이지 정보를 이용한 페이지 대체 방법 - Google Patents

페이지 정보를 이용한 페이지 대체 방법 Download PDF

Info

Publication number
KR100577384B1
KR100577384B1 KR1020040059384A KR20040059384A KR100577384B1 KR 100577384 B1 KR100577384 B1 KR 100577384B1 KR 1020040059384 A KR1020040059384 A KR 1020040059384A KR 20040059384 A KR20040059384 A KR 20040059384A KR 100577384 B1 KR100577384 B1 KR 100577384B1
Authority
KR
South Korea
Prior art keywords
page
list
pages
storage medium
stored
Prior art date
Application number
KR1020040059384A
Other languages
English (en)
Other versions
KR20060010617A (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 KR1020040059384A priority Critical patent/KR100577384B1/ko
Priority to CNB2005100873155A priority patent/CN100382052C/zh
Priority to US11/191,074 priority patent/US7366855B2/en
Publication of KR20060010617A publication Critical patent/KR20060010617A/ko
Application granted granted Critical
Publication of KR100577384B1 publication Critical patent/KR100577384B1/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/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 페이지 대체(page replacement)에 관한 발명으로서, 본 발명의 실시에 따른 페이지 정보를 이용한 페이지 대체 방법은 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계와, 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계 및 상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 상기 순서의 역순으로 저장하는 (c) 단계를 포함한다.
페이지 대체(page replacement), LRU(Least Recently Used)

Description

페이지 정보를 이용한 페이지 대체 방법{Method for page replacement using information on page}
도 1은 종래의 기술에 따라 플래시 메모리를 저장 매체로 하는 시스템의 개략적인 블록도이다.
도 2는 종래의 LRU(Least Recently Used) 알고리즘의 구조를 나타내는 예시도이다.
도 3은 종래의 NRU(Not Recently Used) 알고리즘의 구조를 나타내는 예시도이다.
도 4는 본 발명의 실시예에 따른 CFLRU 리스트의 구조를 나타내는 예시도이다.
도 5는 본 발명의 실시예에 따른 CFLRU 리스트를 이용한 페이지 대체 방법을 나타내는 플로우차트이다.
도 6은 본 발명의 실시예에 따른 CFLRU-D 리스트의 구조를 나타내는 예시도이다.
도 7은 본 발명의 실시예에 따른 CFLRU-D 리스트의 페이지 정보를 나타내는 예시도이다.
도 8은 본 발명의 실시예에 따른 CFLRU-D 리스트를 이용한 페이지 대체 방법 을 나타내는 플로우차트이다.
본 발명은 플래시 메모리(flash memory)를 저장 매체로 사용하는 시스템에서 페이지 대체(page replacement)를 수행하는 방법에 관한 것으로, 보다 상세하게는 플래시 메모리의 쓰기 동작을 최소화하고, 메모리 적중률(memory hit-rate)을 높이는 페이지 대체 방법에 관한 것이다.
도 1은 종래의 기술에 따라 플래시 메모리를 저장 매체로 하는 시스템의 개략적인 블록도로서, 시스템(100)은 CPU(110), 주메모리(120) 그리고 저장 매체인 플래시 메모리(150)를 포함한다. 이 때, 주메모리(120)의 일부 영역에 운영체제(130)가 로딩된다. 주메모리(120)상의 메모리 공간 관리는 운영체제(130)에 있는 메모리 관리 모듈(140)이 수행한다. 즉, 메모리 관리 모듈(140)은 주메모리(120)상에서 사용되는 페이지(used page)와 사용되지 않는 페이지(free page)들을 관리한다. 이 때, '페이지(page)'란 한번에 옮겨지는 메모리 용량의 단위를 말한다.
메모리 관리 모듈(140)은 플래시 메모리(150)에 있는 데이터가 주메모리(120)로 이동할 때, 주메모리(120)에서 사용되지 않는 페이지를 할당하고, 플래시 메모리(150)로부터 필요한 데이터를 읽어 들인다.
그러나, 만일 주메모리(120)에 사용되지 않는 페이지가 없다면, 이미 주메모리(120)에서 사용되고 있는 페이지 중에 어느 하나를 선택하고 선택된 페이지로 플 래시 메모리(150)로부터 필요한 데이터를 읽어 들인다. 즉, 기존에 사용되고 있는 페이지를 새로운 페이지로 대체시키는 알고리즘을 페이지 대체 알고리즘(page replacement algorithm)이라고 한다. 한편, 주메모리(120)에서 대체될 페이지가 이미 수정된 경우에는 플래시 메모리(150)로 수정된 데이터를 쓰고 플래시 메모리(150)로부터 새로운 데이터를 읽어들여야 한다. 즉 플래시 메모리(150)에서 쓰기 동작이 발생하게 된다.
그러나, 주메모리(120)에서 대체될 페이지가 수정되지 않은 경우에는 플래시 메모리(150)에도 상기 수정되지 않은 페이지에 대한 이미지가 존재한다. 따라서, 플래시 메모리(150)에서는 쓰기 동작이 발생하지 않고 상기 수정되지 않은 페이지는 주메모리(120)로부터 삭제된다. 이 때, 상기 '이미지'란 상대적인 개념으로서 플래시 메모리(150)가 주메모리(120)에 있는 임의의 페이지에 있는 데이터와 동일한 데이터를 갖는 경우에 플래시 메모리(150)는 주메모리(120)에 있는 페이지의 이미지를 갖는다라고 하며, 그 역의 경우도 마찬가지이다.
페이지 대체 알고리즘과 관련하여 종래에는 다양한 알고리즘들이 있다.
예컨대, 가장 처음에 기록된 페이지를 교체하는 FIFO(First In First Out) 알고리즘, 가장 오랫동안 사용되지 않는 페이지를 교체하는 LRU(Least Recently Used) 알고리즘, 가장 적게 사용된 페이지를 교체하는 LFU(Least Frequently Used) 알고리즘, 최근 쓰이지 않는 페이지를 교체하는 NRU(Not Recently Used) 알고리즘 등이 그 예이다.
도 2는 종래의 LRU(Least Recently Used) 알고리즘의 구조를 나타내는 예시 도로서, 주메모리(120)의 바깥으로 내보내야할 페이지를 선정할 때, 최근에 사용되지 않은(읽혀지지 않거나 또는 기록되지 않거나) 페이지를 선택하는 알고리즘이다. 이와 같은 알고리즘은 캐시에도 적용될 수 있다.
LRU 알고리즘은 일반적으로 가장 오랫동안 액세스되지 않았던 페이지는, 조만 간에도 액세스되지 않을 확률이 가장 크다는 시간적 집약성(temporal locality)에 기반을 두고 있다.
종래의 LRU 알고리즘에서는 각각의 페이지들이 리스트로 관리되는데 헤드(head)에 가장 최근에 사용된 페이지가 위치한다. 즉, 특정 페이지가 액세스되면 리스트의 헤드(head)로 이동한다.
도 2에서는 페이지a(210)가 가장 최근에 사용되어 헤드에 위치하고 있으나, 페이지d(240)가 액세스되어 헤드로 이동하는 것을 나타내고 있다. 한편, 새로운 페이지를 위해서 기존의 페이지를 대체할 때는 리스트의 테일(tail)에 있는 페이지가 사용되며 도 2에서는 페이지e(250)가 대체될 페이지에 해당한다.
도 3은 종래의 NRU(Not Recently Used) 알고리즘의 구조를 나타내는 예시도이다.
각각의 페이지들의 위치는 고정되어 있으며 각각의 페이지마다 페이지 정보를 갖고 있는데, 이러한 페이지 정보는 2비트로 표현된다.
참조 비트(reference bit)(360)는 초기에 '0'으로 설정되며 해당하는 페이지가 사용되면 '1'로 변환된다. 수정 비트(modified bit)(370)는 초기에 '0'으로 설정되며 해당하는 페이지가 수정되면 '1'로 변환된다. 그리고 참조 비트(360)는 주 기적으로 '0'으로 리셋되는데, 이것은 시간이 오래 지난 페이지는 참조 의미가 적기 때문이다.
포인터(pointer)(380)는 대체될 페이지를 가리키는데, 대체될 페이지를 선택할 때에는 페이지a(310), 페이지b(320), 페이지c(330), 페이지d(340), 페이지e(350) 순서로 포인터(380)가 이동하면서 참조 비트(360)와 수정 비트(370)를 검사하게 된다. 포인터(380)가 리스트의 끝에 닿으면 다시 리스트의 앞으로 이동하여 이러한 과정을 반복하게 된다.
대체될 페이지를 선택하는 할 때에, 참조 비트(360)와 수정 비트(370)의 값이 모두 '0'인 페이지를 우선적으로 선택한다. 만일 리스트에 있는 모든 페이지를 검사하여도 해당되는 페이지가 존재하지 않는다면 참조 비트(360)의 값이 '1'이고 수정 비트(370)의 값이 '0'인 페이지를 선택한다. 마지막으로 해당되는 페이지가 존재하지 않는다면 참조 비트(360)와 수정 비트(370)의 값이 모두 '1'인 페이지를 선택한다.
포인터(380)는 상기와 같은 우선 순위를 기준으로 하여 대체될 페이지를 선택한다.
한편, 페이지 대체 알고리즘에 의해서 선택된 페이지가 이미 수정된 페이지인 경우에는 플래시 메모리로 쓰기 동작이 발생한다. 그런데, 일반적으로 플래시 메모리는 쓰기 동작을 수행하는 필요한 지연 시간이 읽기 동작을 수행하는 필요한 지연 시간보다 크므로, 쓰기 동작이 많이 발생할수록 지연 시간은 더욱 증가하게 된다.
따라서, 쓰기 동작을 줄임으로써 지연 시간을 감소시킬 수가 있는데, 종래의 LRU 알고리즘의 경우에는 주메모리에 있는 페이지가 수정되었는지 여부에 관계없이 테일(tail)에 위치한 페이지를 대체시킨다. 그런데, 종래의 LRU 알고리즘을 그대로 적용할 경우, 빈번한 쓰기 동작 때문에 플래시 메모리를 구비하고 있는 시스템의 전체적인 성능이 지연되는 문제가 발생될 수 있다.
또한, 종래의 NRU 알고리즘의 경우에는 수정되지 않은 페이지의 메모리 적중률(memory hit-rate)을 고려하지 않는다. 여기서 '메모리 적중률(memory hit-rate)'은 CPU(110)가 주메모리(120)에 행한 억세스 횟수 중에서 그 내용이 있어 성공한 횟수의 비율을 의미한다. 즉, 수정 비트(370)의 값이 '0'이고, 참조 비트(360)의 값이 동일한 페이지들은 메모리 적중률에 관계없이 동일한 우선 순위를 갖고 주메모리에서 대체된다.
따라서, 메모리 적중률을 고려하면서 플래시 메모리로의 쓰기 동작을 최소화시키는 페이지 대체 알고리즘이 필요하게 되었다.
본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 본 발명은 플래시 메모리로의 쓰기 동작을 최소화시킴으로써 데이터 입출력의 지연 시간을 감소시키고, 메모리 적중률을 높일 수 있는 페이지 대체 알고리즘을 제안하는데 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것 이다.
상기 목적을 달성하기 위하여, 본 발명의 실시에 따른 페이지 대체 방법은 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계와, 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계 및 상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 상기 순서의 역순으로 저장하는 (c) 단계를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시에 따른 페이지 대체 방법은 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계와, 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계와, 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장되지 않은 페이지들을 사용된 순서대로 연결한 제3 페이지 리스트를 형성하는 (c) 단계 및 상기 제2 페이지 리스트에 속하는 페이지가 존재하는 경우 상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 페이지가 사용된 순서의 역순으로 저장하고, 상기 제2 페이지 리스트에 속하는 페이지가 존재하지 않는 경우 상기 제3 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 페이지가 사용된 순서의 역순으로 저장하는 (d) 단계를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시에 따른 페이지 대체 방법은 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계와, 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장되지 않은 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계 및 상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 페이지가 상기 순서의 역순으로 저장하는 (c) 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다
이하, 본 발명의 실시예들에 의하여 페이지 대체(page replacement)를 수행하는 방법을 설명하기 위한 블록도 또는 처리 흐름도에 관한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도 면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
한편, 본 발명에 대한 설명을 용이하게 하기 위하여 본 명세서에서 사용되는 용어를 정의하도록 한다.
(1) 클린 페이지(clean page): 플래시 메모리에 동일한 페이지의 이미지가 존재하는 주메모리상의 페이지. 도면에서는 'C'로 표시하였다.
(2) 더티 페이지(dirty page): 플래시 메모리에 동일한 페이지의 이미지가 존재하지 않는 주메모리상의 페이지. 도면에서는 'D'로 표시하였다.
(3) 페이지 캐쉬(page cache): 운영체제의 메모리 관리 모듈이 관여하는 메모리 영역
(4) CFLRU(Clean First LRU) 리스트: 클린 페이지들 중에서 가장 최근에 사용된 페이지를 맨 앞에 두고 가장 최근에 사용되지 않은 페이지를 가장 뒤에 둔 클린 페이지들의 리스트
(5) CFLRU-D(Clean First LRU-Dirty related) 리스트: 소정의 조건을 만족하는 더티 페이지들 중에서 가장 최근에 사용된 페이지를 맨 앞에 두고 가장 최근에 사용되지 않은 페이지를 가장 뒤에 둔 더티 페이지들의 리스트
한편, 본 발명을 용이하게 설명하기 위하여 본 발명의 실시예에 따른 페이지 대체 방법은 도 1에서 도시한 종래의 시스템(100)을 예를 들어 설명하도록 하며, 본 발명의 실시예에 따른 페이지 대체 방법은 메모리 관리 모듈(140)에 의해 수행되는 것으로 한다.
도 4는 본 발명의 실시예에 따른 CFLRU 리스트의 구조를 나타내는 예시도이다.
운영체제(130)의 일부분인 메모리 관리 모듈(140)은 필요한 데이터를 주메모리(120) 상에 두고 상기 데이터를 빠르게 접근할 수 있는 기능을 제공한다. 메모리 관리 모듈(140)은 주메모리(120) 상에 주어진 특정한 메모리 공간에 필요한 데이터를 저장하고 운영체제 혹은 프로세스가 사용할 수 있도록 관리 한다. 이 때, 앞서 언급한 바와 같이 메모리 관리 모듈(140)이 관여하는 메모리 공간을 페이지 캐쉬(page cache)라고 하며 페이지 캐쉬는 동일한 크기의 페이지들로 구성된다.
메모리 관리 모듈(140)은 페이지 캐쉬에 여유 공간(free space)이 부족하면 특정 부분을 하드 디스크와 같은 느린 저장 장치에 저장하여 여유 공간을 만든다. 이러한 메모리 대체(memory replacement)에 사용되는 알고리즘은 특정 페이지를 선정하여 느린 저장 장치에 저장하고 이 페이지에 새로운 데이터를 저장하게 된다.
이 때, 본 명세서에서 제안하는 CFLRU(Clean First LRU) 알고리즘은 바람직하게는 NAND 플래시 메모리(flash memory)에 적용될 수 있고, 기존의 LRU 알고리즘을 수정하여 NAND 플래시 메모리의 특성에 맞게 적용될 수 있다.
도 4에서 도시한 바와 같이 페이지 캐쉬(400)에는 페이지a(410)부터 페이지e(450)까지 존재하며, 'C'로 표시된 페이지는 클린 페이지를, 'D'로 표시된 페이지는 더티 페이지를 나타낸다.
페이지 캐쉬(400) 내의 페이지들은 LRU 리스트(460)와 CFLRU 리스트(470)로 관리된다. CFLRU 리스트(470)는 도 4에서 도시한 바와 같이 클린 페이지들(410, 420, 440)에 대한 리스트로 관리된다.
앞서 언급한 바와 같이 LRU 리스트(460)는 가장 최근에 사용된 페이지를 헤드(head)에 위치시키고, 가장 최근에 사용되지 않는 페이지를 테일(tail)에 두는 방식으로 리스트를 관리한다. CFLRU 리스트(470)는 'C’로 표시된 페이지들 중에서 가장 최근에 사용된 페이지를 맨 앞에 두고 가장 최근에 사용되지 않은 페이지를 맨 뒤에 둔다.
클린 페이지가 메모리 대체 알고리즘에 의해서 플래시 메모리(150)로 보낼 페이지로 선정되면 쓰기 동작을 수행하지 않는다. 왜냐하면 이미 동일한 이미지가 플래시 메모리(150)에 존재하기 때문이다. 반대로 더티 페이지가 선정되면 플래시 메모리(150)에 동일한 이미지가 없기 때문에 쓰기 동작이 수행된다.
도 5는 본 발명의 실시예에 따른 CFLRU 리스트를 이용한 페이지 대체 방법을 나타내는 플로우차트이다.
주메모리(120)에서 플래시 메모리(150)로 보낼 페이지를 선정하기 위해서 우선 CFLRU 리스트(470)를 억세스한다(S510). 도 4에서 CFLRU 리스트(470)는 클린 페이지에 해당하는 페이지a(410), 페이지b(420), 페이지d(440)를 포함하고 있다.
만일, 도 4에서와 같이 CFLRU 리스트(470)가 비어 있지 않은 경우에는 CFLRU 리스트(470)의 테일(tail)에 있는 페이지d(440)가 대체될 페이지로 선택된다(S530). 그리고 나서, 선택된 페이지d(440)에 플래시 메모리(150)로부터 로드(load)한 새로운 데이터를 저장한다(S560). 이 때, 기존의 페이지d(440)에 대한 이미지가 플래시 메모리(150)에 저장되어 있기 때문에 페이지d(440)의 데이터의 플래 시 메모리(150)로의 쓰기 동작은 수행되지 않는다. 그리고 나서, LRU 리스트(460)와 CFLRU 리스트(470)의 헤더를 나타내는 포인터는 페이지d(440)를 가리키게 된다(S570). 즉, 페이지d(440)는 가장 최근에 사용된 페이지이므로 LRU 리스트(460)의 헤더에 위치하고, 플래시 메모리(150)에 페이지d(440)와 동일한 이미지가 저장되어 있으므로 CFLRU 리스트(470)의 헤더에 위치하는 것이다. 또한, 이후에 페이지d(440)에 저장된 데이터가 수정되면, 페이지d(440)는 CFLRU 리스트(470)에서 제거된다.
한편, 만일 CFLRU 리스트(470)가 비어 있는 경우에는 주메모리(120)에는 클린 페이지가 존재하지 않는다는 것을 의미하므로, 메모리 관리 모듈(140)은 LRU 리스트(460)를 억세스하고(S540), LRU 리스트(460)의 테일(tail)에서 더티 페이지를 선택한다(S550). 그리고 나서, 선택된 페이지에 플래시 메모리(150)로부터 로드(load)한 새로운 데이터를 저장한다(S560). 이 때, 상기 선택된 페이지에 대한 이미지가 플래시 메모리(150)에 저장되어 있지 않기 때문에 상기 선택된 페이지에 저장된 데이터의 플래시 메모리(150)로의 쓰기 동작이 수행되어야 한다. 그리고 나서, LRU 리스트(460)와 CFLRU 리스트(470)의 헤더를 나타내는 포인터는 앞서 설명한 것과 마찬가지로 상기 선택된 페이지를 가리키게 된다(S570). 이 경우에도 이후에 상기 선택된 페이지에 저장된 데이터가 수정되면, 상기 선택된 페이지는 CFLRU 리스트(470)에서 제거된다.
한편, 본 발명의 실시예에 따른 CFLRU 알고리즘이 ‘C’로 표시된 페이지를 무조건 버리면 메모리 적중률(memory hit rate)이 떨어질 수 있다. 따라서, 도 4에 서 도시한 '거리(distance)'(480) 개념을 도입하기로 한다. 이 때, 거리(480)는 LRU 리스트(460)의 테일(tail)로부터 일정 개수 떨어진 페이지의 개수를 나타낸다. 예컨대, 도 4에서는 거리(480)값이 4인 경우를 나타내고 있는데, LRU 리스트(460)의 테일(tail)로부터 4개의 페이지, 즉 페이지e(450), 페이지 d(440), 페이지c(430), 페이지b(420)가 대체 대상이 되는 페이지가 된다.
따라서, 본 발명의 실시예에 따른 CFLRU 알고리즘은 거리(480)값 내에 'C'로 표시된 페이지가 있다면 우선적으로 플래시 메모리(150)로 보내지만 그렇지 않은 경우에는 'D'로 표시된 페이지를 LRU 리스트(460)의 테일(tail)에서 찾아 플래시 메모리(150)로 보낸다.
예를 들어, 도 4에서 본 발명의 실시예에 따른 CFLRU 알고리즘을 이용하여 대체되는 페이지들의 순서는 페이지d(440), 페이지b(420), 페이지e(450), 페이지c(430)와 같다. 이 때, 페이지d(440)와 페이지b(420)는 플래시 메모리(150)에 대하여 쓰기 동작을 발생시키지 않는다. 여기에서 페이지a(410)는 'C'로 표시되었고, CFLRU 리스트(470)에는 존재하지만, 거리(480)값 내에 존재하지 않으므로 고려 대상이 되지 않는다.
[수학식 1]은 CFLRU의 거리(distance)를 구하기 위한 것으로서, 일정한 주기(예를 들어, 초 단위) 또는 특정한 시점(예를 들어, 새로운 프로세스의 시작 직후, 기존 프로세스의 종료 직후)에 플래시 메모리의 읽기 횟수와 쓰기 횟수를 측정하여 [수학식 1]에 대입하고, TCFLRU값이 작게되는 거리(distance)를 구하는 것이다. 이 때, TOUT과 TIN은 상수값으로서 각각 쓰기 동작과 읽기 동작에 소요되는 지연 시간을 나타내고, 미리 측정된 값을 이용하여 상수값으로 나타낼 수 있다.
TCFLRU = NOUT X TOUT + NIN X TIN
NOUT: 페이지 캐쉬에서 플래시 메모리로 쓰기 동작이 발생한 횟수
NIN: 플래시 메모리에서 페이지 캐쉬로 읽기 동작이 발생한 횟수
TOUT: 상수 값으로 쓰기 동작에 소요되는 지연 시간
TIN: 상수 값으로 읽기 동작에 소요되는 지연 시간
초기의 거리(distance)는 바람직하게는 0으로 시작하고 일정한 주기마다 또는 특정한 시점에 거리(distance)를 (메모리 크기 * 1/N)만큼 늘려서 읽기와 쓰기 횟수를 측정한다.
읽기 횟수와 쓰기 횟수의 합이 일정한 문턱값(threshold-value)을 넘고 TCFLRU값이 이전에 측정된 값보다 증가하면 거리(distance)를 (메모리 크기 * 1/N)만큼 이전에 행했던 거리(distance) 이동과 반대 방향의 거리(distance) 이동을 수행한다.
예를 들어, 이전에 거리(distance)를 증가 시킨후, 일정한 주기 또는 특정한 시점에 읽기 횟수와 쓰기 횟수를 측정해 보았더니, TCFLRU값이 증가 하였다면 거리(distance)를 감소시킨다.
그러나, TCFLRU값이 이전에 측정된 값보다 감소하면 거리(distance)를 (메모리 크기 * 1/N)만큼 이전에 행했던 거리(distance) 이동과 같은 방향의 거리(distance) 이동을 수행한다.
예를 들어, 이전에 거리(distance)를 증가시켰으면, 거리(distance)를 더 증가시키고, 이전에 거리(distance)를 감소시켰으면, 거리(distance)를 더 감소시키다.
이 때, '메모리 크기'는 LRU 리스트에 속한 페이지의 개수를 나타내고, 'N'은 기설정되거나 또는 동적으로 설정되는 임의의 정수값이 될 수 있다. 예컨대, 현재 30개의 페이지가 LRU 리스트에 속해 있고, N값이 6인 경우에 거리(distance)는 5개의 페이지 단위로 늘어나거나 감소하게 되는 것이다.
[수학식 1]에서 NOUT은 페이지 캐시에서 플래시 메모리로 일정한 주기마다 또는 특정한 시점 동안 쓰기 동작이 발생한 횟수이고 NIN은 낸드(NAND) 플래시 메모리에서 페이지 캐시로 일정한 주기마다 또는 특정한 시점 동안에 읽기 동작이 발생한 횟수로서 운영체제 내에서 특정할 수 있다. 이 때, '일정 주기'와 '문턱값(threshold-value)'은 시스템의 부하에 따라 달라지므로 시스템 관리자는 시스템에 적합하게 세팅할 수 있다.
한편, CFLRU 리스트(470)에서 대체될 페이지를 선택할 때, 바람직하게는 앞서 설명한 바와 같이 CFLRU 리스트(470)에서 가장 오랫동안 사용되지 않은 페이지부터 선택하지만, 반드시 여기에 한정할 필요는 없다. 즉, 가장 오랫동안 사용되지 않은 페이지의 다음 페이지를 선택할 수도 있다. 또한, CFLRU 리스트(470)의 테일(tail)에서부터 연속적인 순서로 하지 않고 불연속적인 순서로 대체될 페이지를 선택할 수도 있다.
도 6은 본 발명의 실시예에 따른 CFLRU-D 리스트의 구조를 나타내는 예시도이다.
우선, 본 발명의 실시예에 따른 CFLRU-D 알고리즘은 각각의 페이지들이 도 7에서 도시한 페이지 정보(700)를 갖는다.
페이지 정보(700)에서 'Image on Storage Device'는 플래시 메모리(150)에 주메모리(120)에 있는 페이지에 저장된 데이터의 이미지가 존재하는지 여부를 나타낸다. 즉, 주메모리(120)에 있는 페이지가 클린 페이지인지, 더티 페이지인지를 나타내는 것으로서, 'Image on Storage Device'의 값이 'C'이면 클린 페이지를 나타내고 'D'이면 더티 페이지를 나타낸다.
'The Number of Memory-outs'는 해당 페이지가 본 발명의 실시예에 따른 CFLRU-D 알고리즘에 의해서 대체되는 페이지로 선정된 횟수를 나타낸다. 상기 'The Number of Memory-outs'의 값은 클린 페이지로서 주메모리(120)에서 버려진 횟수와 더티 페이지로서 플래시 메모리(150)에 씌어진 횟수의 총 합을 나타낸다.
'The Number of Clean-outs'는 주메모리(120)에서 페이지가 대체될 때에 클린 페이지로서 주메모리(120)에서 버려진 횟수를 나타낸다.
'Page data'는 주메모리(120)에 저장된 페이지의 데이터를 가리키는 주소 또는 포인터의 역할을 한다.
한편, 본 발명의 실시예에 따른 CFLRU-D 알고리즘에서 페이지 캐쉬(600) 내의 페이지들은 LRU 리스트(640)와 CFLRU 리스트(650)와 CFLRU-D 리스트(660)로 관리된다. LRU 리스트(640)와 CFLRU 리스트(650)는 도 4에서 설명한 것과 동일하다. 그리고, CFLRU-D 리스트(660)는 'D’로 표시된 페이지들 중에서 가장 최근에 사용된 페이지를 맨 앞에 두고 가장 최근에 사용되지 않은 페이지를 맨 뒤에 둔다. 다만, 모든 더티 페이지들이 CFLRU-D 리스트(660)와 연결되는 것이 아니라 일정한 조건을 만족하는 더티 페이지들만이 CFLRU-D 리스트(660)와 연결된다.
CFLRU-D 리스트(660)에 연결되는 더티 페이지의 조건의 일실시예로서 'The Number of Memory-outs'의 값이 M 이상이고 'The Number of Clean-outs'의 값이 N 이상인 조건을 만족하는 더티 페이지가 CFLRU-D 리스트(660)에 연결될 수 있다. 즉, M번 이상 메모리에서 대체되었고 그 중에서 N번 이상 클린 페이지로 버려진 페이지들만 CFLRU-D 리스트(660)에 추가된다.
또한, 본 발명의 실시예에 따른 CFLRU-D 알고리즘에서 거리(distance)(670)은 도 4에서 도시한 거리(480)와 동일한 개념이다. 그리고, 'The Number of Memory-outs'의 값과 'The Number of Clean-outs'의 값은 초기 시스템의 작업량(workload)을 고려한 적당한 값으로 설정되어 사용하거나, 또는 거리(distance)(670)와 같이 메모리 관리 모듈(140)에 의해 동적으로 변경 가능하다.
도 8은 본 발명의 실시예에 따른 CFLRU-D 리스트를 이용한 페이지 대체 방법을 나타내는 플로우차트이다.
주메모리(120)에서 플래시 메모리(150)로 보낼 페이지를 선정하기 위해서 우 선 CFLRU 리스트(470)를 억세스한다(S805). 도 6에서 CFLRU 리스트(650)는 클린 페이지에 해당하는 페이지a(605), 페이지c(615), 페이지f(630)를 포함하고 있다.
만일, 도 6에서와 같이 CFLRU 리스트(650)가 비어 있지 않은 경우에는 CFLRU 리스트(650)의 테일(tail)에 있는 페이지f(630)가 대체될 페이지로 선택된다(S815). 그리고 나서, 선택된 페이지f(630)에 플래시 메모리(150)로부터 로드(load)한 새로운 데이터를 저장한다(S845). 이 때, 기존의 페이지f(630)에 대한 이미지가 플래시 메모리(150)에 저장되어 있기 때문에 페이지f(630)의 데이터의 플래시 메모리(150)로의 쓰기 동작은 수행되지 않는다.
그리고 나서, LRU 리스트(640)와 CFLRU 리스트(650)의 헤더를 나타내는 포인터는 페이지f(630)를 가리키게 된다(S850). 즉, 페이지f(630)는 가장 최근에 사용된 페이지이므로 LRU 리스트(640)의 헤더에 위치하고, 플래시 메모리(150)에 페이지f(630)와 동일한 이미지가 저장되어 있으므로 CFLRU 리스트(650)의 헤더에 위치하는 것이다. 또한, 이후에 페이지f(630)에 저장된 데이터가 수정되면, 페이지f(630)는 CFLRU 리스트(650)에서 제거된다. 페이지f(630)에 저장된 데이터가 수정되어 CFLRU 리스트(650)에서 제거될 때, 페이지f(630)에 대한 페이지 정보(700)의 'The Number of Memory-outs'의 값과 'The Number of Clean-outs'의 값이 일정 조건을 만족할 경우에는 CFLRU 리스트(650)에서 제거된 페이지f(630)는 CFLRU-D리스트(660)의 헤더와 연결된다.
한편, 만일 CFLRU 리스트(650)가 비어 있는 경우에는 주메모리(120)에는 메모리 관리 모듈(140)은 CFLRU-D 리스트(660)를 억세스한다(S820).
이 때, CFLRU-D 리스트(660)가 비어있지 않은 경우에는 CFLRU-D 리스트(660)의 테일(tail)에서 더티 페이지를 선택한다(S830). 그리고 나서, 선택된 페이지에 플래시 메모리(150)로부터 로드(load)한 새로운 데이터를 저장한다(S845). 이 때, 상기 선택된 페이지에 대한 이미지가 플래시 메모리(150)에 저장되어 있지 않기 때문에 상기 선택된 페이지에 저장된 데이터의 플래시 메모리(150)로의 쓰기 동작이 수행되어야 한다. 그리고 나서, LRU 리스트(640)와 CFLRU 리스트(650)의 헤더를 나타내는 포인터는 앞서 설명한 것과 마찬가지로 상기 선택된 페이지를 가리키게 된다(S850). 이 경우에도 이후에 상기 선택된 페이지에 저장된 데이터가 수정되면, 상기 선택된 페이지는 CFLRU 리스트(650)에서 제거된다. 페이지에 저장된 데이터가 수정되어 CFLRU 리스트(650)에서 제거될 때, 페이지 정보(700)의 'The Number of Memory-outs'의 값과 'The Number of Clean-outs'의 값이 일정 조건을 만족할 경우에는 CFLRU 리스트(650)에서 제거된 페이지는 CFLRU-D리스트(660)의 헤더와 연결된다.
한편, 만일 CFLRU 리스트(650)와 CFLRU-D리스트(660)가 비어 있는 경우에는 메모리 관리 모듈(140)은 LRU 리스트(640)를 억세스하고(S835), LRU 리스트(640)의 테일(tail)에서 더티 페이지를 선택한다(S840). 그리고 나서, 선택된 페이지에 플래시 메모리(150)로부터 로드(load)한 새로운 데이터를 저장한다(S845). 이 때, 상기 선택된 페이지에 대한 이미지가 플래시 메모리(150)에 저장되어 있지 않기 때문에 상기 선택된 페이지에 저장된 데이터의 플래시 메모리(150)로의 쓰기 동작이 수행되어야 한다. 그리고 나서, LRU 리스트(640)와 CFLRU 리스트(650)의 헤더를 나타 내는 포인터는 앞서 설명한 것과 마찬가지로 상기 선택된 페이지를 가리키게 된다(S850). 이 경우에도 이후에 상기 선택된 페이지에 저장된 데이터가 수정되면, 상기 선택된 페이지는 CFLRU 리스트(650)에서 제거된다. 페이지에 저장된 데이터가 수정되어 CFLRU 리스트(650)에서 제거될 때, 페이지 정보(700)의 'The Number of Memory-outs'의 값과 'The Number of Clean-outs'의 값이 일정 조건을 만족할 경우에는 CFLRU 리스트(650)에서 제거된 페이지는 CFLRU-D리스트(660)의 헤더와 연결된다.
예컨대, 도면 6에서 CFLRU-D 알고리즘으로 대체되는 페이지들의 순서는 다음과 같다. 페이지 캐쉬에 속한 페이지a(605) 내지 페이지g(635) 중에서 페이지f(630), 페이지c(615), 페이지e(625), 페이지d(620), 페이지g(635) 순으로 플래시 메모리(150)로 보내진다. 이 때, 페이지f(630)과 페이지c(615)는 플래시 메모리(150)에 쓰기 동작을 발생시키지 않는다. 그리고, 페이지a(605)와 페이지b(610)는 거리(670)값 내에 존재하지 않으므로 고려 대상이 되지 않는다.
한편, CFLRU-D 리스트(660)에서 대체될 페이지를 선택할 때, 바람직하게는 앞서 설명한 바와 같이 CFLRU 리스트(660)에서 가장 오랫동안 사용되지 않은 페이지부터 선택하지만, 반드시 여기에 한정할 필요는 없다. 즉, 가장 오랫동안 사용되지 않은 페이지의 다음 페이지를 선택할 수도 있다. 또한, CFLRU 리스트(660)의 테일(tail)에서부터 연속적인 순서로 하지 않고 불연속적인 순서로 대체될 페이지를 선택할 수도 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정하는 것은 아니다.
본 발명의 실시에 따라 플래시 메모리를 저장 매체로 하는 시스템에서 플래시 메모리에 대한 쓰기 동작을 최소화하여 데이터 입출력에 대한 지연 시간을 감소시키고, 주메모리에 대한 메모리 적중률을 높일 수 있는 효과가 있다.
또한, 본 발명의 실시에 따라 플래시 메모리로의 읽기 또는 쓰기 동작을 줄임으로써 전력의 소비를 최소화할 수 있는 효과가 있다.

Claims (22)

  1. 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계;
    상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계; 및
    상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 상기 순서의 역순으로 저장하는 (c) 단계를 포함하는 페이지 대체 방법.
  2. 제1항에 있어서,
    상기 저장 매체는 플래시 메모리를 포함하는 페이지 대체 방법.
  3. 제1항에 있어서,
    상기 제1 페이지 리스트는 상기 주메모리 영역에 있는 페이지들을 최근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  4. 제1항에 있어서,
    상기 제2 페이지 리스트는 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 최 근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  5. 제1항에 있어서,
    상기 저장 매체로부터 로딩된 데이터가 저장된 페이지를 상기 제2 페이지 리스트에 포함시키는 (d) 단계를 더 포함하는 페이지 대체 방법.
  6. 제1항에 있어서,
    상기 저장 매체로부터 로딩한 데이터가 저장되는 페이지는 기설정된 거리 내에 속하는 페이지인 페이지 대체 방법.
  7. 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계;
    상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계;
    상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장되지 않은 페이지들을 사용된 순서대로 연결한 제3 페이지 리스트를 형성하는 (c) 단계; 및
    상기 제2 페이지 리스트에 속하는 페이지가 존재하는 경우 상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 페이지가 사용된 순서의 역순으로 저장하고, 상기 제2 페이지 리스트에 속하는 페이지가 존재하지 않는 경우 상기 제3 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 페이지가 사용된 순서의 역순으로 저장하는 (d) 단계를 포함하는 페이지 대체 방법.
  8. 제7항에 있어서,
    상기 저장 매체는 플래시 메모리를 포함하는 페이지 대체 방법.
  9. 제7항에 있어서,
    상기 제1 페이지 리스트는 상기 주메모리 영역에 있는 페이지들을 최근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  10. 제7항에 있어서,
    상기 제2 페이지 리스트는 상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장된 페이지들을 최근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  11. 제7항에 있어서,
    상기 제3 페이지 리스트는 상기 제1 페이지 리스트 중에서 소정의 기준에 따라 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장되지 않은 페이지들을 최근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  12. 제7항에 있어서,
    상기 저장 매체로부터 로딩된 데이터가 저장된 페이지를 상기 제2 페이지 리스트에 포함시키는 (e) 단계를 더 포함하는 페이지 대체 방법.
  13. 제7항에 있어서,
    상기 저장 매체로부터 로딩한 데이터가 저장되는 페이지는 기설정된 거리 내에 속하는 페이지인 페이지 대체 방법.
  14. 제7항에 있어서,
    상기 제3 페이지 리스트는 각각의 페이지에 대하여 상기 주메모리 영역에서 상기 저장 매체로 페이지가 이동한 횟수가 기설정된 값을 초과하는 페이지들을 연결한 페이지 대체 방법.
  15. 제7항에 있어서,
    상기 제3 페이지 리스트는 각각의 페이지에 대하여 상기 주메모리 영역에서 상기 저장 매체로 페이지가 이동할 때 상기 이동한 페이지가 상기 저장 매체에 기록되지 않은 횟수가 기설정된 값을 초과하는 페이지들을 연결한 페이지 대체 방법.
  16. 주메모리 영역에서 페이지들을 사용된 순서대로 연결한 제1 페이지 리스트를 형성하는 (a) 단계;
    상기 제1 페이지 리스트 중에서 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장되지 않은 페이지들을 사용된 순서대로 연결한 제2 페이지 리스트를 형성하는 (b) 단계; 및
    상기 제2 페이지 리스트의 페이지에 상기 저장 매체로부터 로딩한 데이터를 페이지가 상기 순서의 역순으로 저장하는 (c) 단계를 포함하는 페이지 대체 방법.
  17. 제16항에 있어서,
    상기 저장 매체는 플래시 메모리를 포함하는 페이지 대체 방법.
  18. 제16항에 있어서,
    상기 제1 페이지 리스트는 상기 주메모리 영역에 있는 페이지들을 최근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  19. 제16항에 있어서,
    상기 제2 페이지 리스트는 상기 제1 페이지 리스트 중에서 소정의 기준에 따라 저장 매체에 상기 주메모리 영역의 페이지에 저장된 데이터와 동일한 이미지가 저장되지 않은 페이지들을 최근에 사용된 순서대로 연결한 리스트인 페이지 대체 방법.
  20. 제16항에 있어서,
    상기 저장 매체로부터 로딩한 데이터가 저장되는 페이지는 기설정된 거리 내에 속하는 페이지인 페이지 대체 방법.
  21. 제16항에 있어서,
    상기 제2 페이지 리스트는 각각의 페이지에 대하여 상기 주메모리 영역에서 상기 저장 매체로 페이지가 이동한 횟수가 기설정된 값을 초과하는 페이지들을 연결한 페이지 대체 방법.
  22. 제16항에 있어서,
    상기 제2 페이지 리스트는 각각의 페이지에 대하여 상기 주메모리 영역에서 상기 저장 매체로 페이지가 이동할 때 상기 이동한 페이지가 상기 저장 매체에 기록되지 않은 횟수가 기설정된 값을 초과하는 페이지들을 연결한 페이지 대체 방법.
KR1020040059384A 2004-07-28 2004-07-28 페이지 정보를 이용한 페이지 대체 방법 KR100577384B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040059384A KR100577384B1 (ko) 2004-07-28 2004-07-28 페이지 정보를 이용한 페이지 대체 방법
CNB2005100873155A CN100382052C (zh) 2004-07-28 2005-07-28 使用页信息的页替换方法
US11/191,074 US7366855B2 (en) 2004-07-28 2005-07-28 Page replacement method using page information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040059384A KR100577384B1 (ko) 2004-07-28 2004-07-28 페이지 정보를 이용한 페이지 대체 방법

Publications (2)

Publication Number Publication Date
KR20060010617A KR20060010617A (ko) 2006-02-02
KR100577384B1 true KR100577384B1 (ko) 2006-05-10

Family

ID=35733741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040059384A KR100577384B1 (ko) 2004-07-28 2004-07-28 페이지 정보를 이용한 페이지 대체 방법

Country Status (3)

Country Link
US (1) US7366855B2 (ko)
KR (1) KR100577384B1 (ko)
CN (1) CN100382052C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306006B2 (en) 2015-02-06 2019-05-28 Korea Advanced Institute Of Science And Technology Bio-inspired algorithm based P2P content caching method for wireless mesh networks and system thereof

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118695A1 (en) * 2005-11-18 2007-05-24 International Business Machines Corporation Decoupling storage controller cache read replacement from write retirement
KR100787856B1 (ko) * 2006-11-29 2007-12-27 한양대학교 산학협력단 플래시 메모리 저장장치의 페이지 교체 방법
JP5083757B2 (ja) * 2007-04-19 2012-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
US8671256B2 (en) * 2007-08-27 2014-03-11 International Business Machines Corporation Migrating contents of a memory on a virtual machine
US8661211B2 (en) * 2007-08-27 2014-02-25 International Business Machines Corporation Method for migrating contents of a memory on a virtual machine
US20090063752A1 (en) * 2007-08-27 2009-03-05 International Business Machines Corporation Utilizing data access patterns to determine a data migration order
US9274949B2 (en) * 2007-08-27 2016-03-01 International Business Machines Corporation Tracking data updates during memory migration
US20090063753A1 (en) * 2007-08-27 2009-03-05 International Business Machines Corporation Method for utilizing data access patterns to determine a data migration order
US8694990B2 (en) * 2007-08-27 2014-04-08 International Business Machines Corporation Utilizing system configuration information to determine a data migration order
TW200917277A (en) * 2007-10-15 2009-04-16 A Data Technology Co Ltd Adaptive hybrid density memory storage device and control method thereof
KR100941382B1 (ko) * 2008-07-10 2010-02-10 한양대학교 산학협력단 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법,그리고 플래시 메모리의 페이지 교체 장치 및 방법
KR101056460B1 (ko) * 2009-06-05 2011-08-11 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
US8949579B2 (en) * 2010-10-04 2015-02-03 International Business Machines Corporation Ineffective prefetch determination and latency optimization
KR20120109197A (ko) * 2011-03-28 2012-10-08 삼성전자주식회사 휴대용 장치 상의 데이터 스트림 관리 시스템에서 메모리를 관리하는 방법 및 이를 위한 휴대용 장치
CN102156753B (zh) * 2011-04-29 2012-11-14 中国人民解放军国防科学技术大学 面向固态硬盘文件系统的数据页缓存方法
US9092318B2 (en) * 2012-02-06 2015-07-28 Vmware, Inc. Method of allocating referenced memory pages from a free list
US8880806B2 (en) 2012-07-27 2014-11-04 International Business Machines Corporation Randomized page weights for optimizing buffer pool page reuse
KR101481633B1 (ko) * 2013-07-03 2015-01-15 아주대학교산학협력단 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
US9478274B1 (en) * 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9678670B2 (en) 2014-06-29 2017-06-13 Plexistor Ltd. Method for compute element state replication
US10140029B2 (en) * 2014-12-10 2018-11-27 Netapp, Inc. Method and apparatus for adaptively managing data in a memory based file system
US20160188490A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Cost-aware page swap and replacement in a memory
US9851919B2 (en) * 2014-12-31 2017-12-26 Netapp, Inc. Method for data placement in a memory based file system
US9952973B2 (en) 2015-10-29 2018-04-24 Western Digital Technologies, Inc. Reducing write-backs to memory by controlling the age of cache lines in lower level cache
CN112988388A (zh) * 2017-08-24 2021-06-18 华为技术有限公司 一种内存页管理方法及计算设备
US11093403B2 (en) 2018-12-04 2021-08-17 Vmware, Inc. System and methods of a self-tuning cache sizing system in a cache partitioning system
US11340822B2 (en) 2019-04-30 2022-05-24 EMC IP Holding Company LLC Movement of stored data based on occurrences of one or more n-gram strings in the stored data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020092487A (ko) * 2001-06-04 2002-12-12 삼성전자 주식회사 플래시 메모리 관리방법
JP2003131946A (ja) 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
JP3437852B2 (ja) * 1992-10-07 2003-08-18 富士通株式会社 ページング機能を持つデータ処理装置
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5125085A (en) * 1989-09-01 1992-06-23 Bull Hn Information Systems Inc. Least recently used replacement level generating apparatus and method
JP3104270B2 (ja) 1991-02-12 2000-10-30 富士ゼロックス株式会社 ページ置き換え制御装置
US5734861A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US6389513B1 (en) * 1998-05-13 2002-05-14 International Business Machines Corporation Disk block cache management for a distributed shared memory computer system
US6490654B2 (en) 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
US6327643B1 (en) * 1998-09-30 2001-12-04 International Business Machines Corp. System and method for cache line replacement
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
GB2366014B (en) * 2000-08-19 2004-10-13 Ibm Free space collection in information storage systems
US20020152361A1 (en) 2001-02-05 2002-10-17 International Business Machines Corporation Directed least recently used cache replacement method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3437852B2 (ja) * 1992-10-07 2003-08-18 富士通株式会社 ページング機能を持つデータ処理装置
KR20020092487A (ko) * 2001-06-04 2002-12-12 삼성전자 주식회사 플래시 메모리 관리방법
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
JP2003131946A (ja) 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306006B2 (en) 2015-02-06 2019-05-28 Korea Advanced Institute Of Science And Technology Bio-inspired algorithm based P2P content caching method for wireless mesh networks and system thereof

Also Published As

Publication number Publication date
CN1728114A (zh) 2006-02-01
US7366855B2 (en) 2008-04-29
KR20060010617A (ko) 2006-02-02
US20060026372A1 (en) 2006-02-02
CN100382052C (zh) 2008-04-16

Similar Documents

Publication Publication Date Title
KR100577384B1 (ko) 페이지 정보를 이용한 페이지 대체 방법
CN107066393B (zh) 提高地址映射表中映射信息密度的方法
US20230152969A1 (en) Memory system and method of controlling memory system
JP6613375B2 (ja) プロファイリングキャッシュ置換
US5895488A (en) Cache flushing methods and apparatus
US8176258B2 (en) System and method for cache management
US7856533B2 (en) Probabilistic method for performing memory prefetching
US7302543B2 (en) Compressed memory architecture for embedded systems
US20160217071A1 (en) Cache Allocation in a Computerized System
CN105389135B (zh) 一种固态盘内部缓存管理方法
JP2000090009A (ja) キャッシュメモリにおいてキャッシュラインを置き換えるための方法および装置
CN108984130A (zh) 一种分布式存储的缓存读取方法及其装置
KR101481633B1 (ko) 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
US20070088920A1 (en) Managing data for memory, a data store, and a storage device
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
JP4653830B2 (ja) 命令キャッシュシステム
KR100787856B1 (ko) 플래시 메모리 저장장치의 페이지 교체 방법
KR101105127B1 (ko) 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
JP2017162194A (ja) データ管理プログラム、データ管理装置、及びデータ管理方法
JP2006236239A (ja) データ処理システム及びデータ伸長方法
US8436866B2 (en) Inter-frame texel cache
JP5699854B2 (ja) 記憶制御システムおよび方法、置換方式および方法
CN107506139A (zh) 一种面向相变存储器的写请求优化装置
KR101179027B1 (ko) 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법
US20090077318A1 (en) Cache memory

Legal Events

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

Payment date: 20190329

Year of fee payment: 14