KR100772863B1 - 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 - Google Patents

요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 Download PDF

Info

Publication number
KR100772863B1
KR100772863B1 KR1020060004140A KR20060004140A KR100772863B1 KR 100772863 B1 KR100772863 B1 KR 100772863B1 KR 1020060004140 A KR1020060004140 A KR 1020060004140A KR 20060004140 A KR20060004140 A KR 20060004140A KR 100772863 B1 KR100772863 B1 KR 100772863B1
Authority
KR
South Korea
Prior art keywords
page
time
memory
data
fault
Prior art date
Application number
KR1020060004140A
Other languages
English (en)
Other versions
KR20070075640A (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 KR1020060004140A priority Critical patent/KR100772863B1/ko
Priority to US11/640,241 priority patent/US7953953B2/en
Priority to DE602007008484T priority patent/DE602007008484D1/de
Priority to EP07100076A priority patent/EP1818832B1/en
Priority to CNB2007100013069A priority patent/CN100541455C/zh
Priority to JP2007001991A priority patent/JP4481999B2/ja
Publication of KR20070075640A publication Critical patent/KR20070075640A/ko
Application granted granted Critical
Publication of KR100772863B1 publication Critical patent/KR100772863B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/12Replacement control
    • 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
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Abstract

본 발명은 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법 및 장치에 관한 발명으로서, 본 발명의 일 실시예에 따른 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법은 페이지 폴트의 발생을 알리는 신호를 수신하는 단계, 상기 페이지 폴트가 일어난 페이지를 비휘발성 메모리에서 읽어오는 단계, 및 상기 폴트가 일어난 페이지를 저장할 공간을 메모리에서 검색하여 확보하는 단계를 포함하며, 상기 (c) 단계는 미리 계산된 한계 시간 이내에 수행되며, 상기 시스템의 메모리에 로딩될 데이터의 일부는 상기 비휘발성 메모리에 저장되어 있는 요구 페이징 기법을 적용한다.
비휘발성 메모리, 플래시 메모리, 요구 페이징(demand paging), 가상 메모리

Description

요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법 및 장치{Method and apparatus for shortening operating time of page replacement in demand paging applied system}
도 1은 요구 페이징 처리 과정을 시간의 흐름에 따라 소프트웨어 처리과정과 디바이스 I/O와의 관계를 표현한 도면이다.
도 2는 본 발명의 일 실시예에 따른 상기 데이터 로딩 시간을 줄이면서 페이징을 처리하는 과정을 보여주는 시간 순서도이다.
도 3은 본 발명의 일 실시예에 따른 페이지 교체 시간을 줄이는 과정을 적용하는 클럭 알고리즘의 동작을 보여주는 도면이다.
도 4는 본 발명의 일 실시예에 따른 도 3의 클럭 알고리즘에 페이지 교체 시간을 줄이는 과정을 보여주는 도면이다.
도 5는 Mach 2.5 알고리즘에서 교체 페이지를 선정하는 과정을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 도 5의 Mach 2.5 알고리즘에서 교체 리스트의 이동 시점을 재편성하여 수행하는 과정을 보여주는 도면이다.
도 7은 본 발명의 일 실시예에 따른 읽기 명령을 송신하고 페이징을 위한 메모리 작업을 수행하는 순서도이다.
도 8은 본 발명의 일 실시예에 따른 요구 페이징의 수행 시간을 단축시키는 과정을 보여주는 순서도이다.
도 9는 본 발명의 일 실시예에 따른 시스템의 구성도이다.
<도면의 주요 부분에 대한 부호의 설명>
300: 시스템 310: 페이지 폴트 핸들러
320: 메모리 관리부 330: 페이지 캐시 관리자
340: 디바이스 드라이버 350: 메모리
400: 비휘발성 저장장치
본 발명은 요구 페이징 기법에 관한 것으로, 보다 상세하게는 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법 및 장치에 관한 것이다.
요구 페이징(Demand Paging)기법이란 가상 메모리(Virtual Memory) 시스템을 사용하는 운영체제에서 하드디스크와 같은 보조저장장치에 가상메모리를 할당하고 사용자의 요구에 따라 물리 메모리를 맵핑하여 제한된 메인 메모리를 더 효율적으로 사용할 수 있도록 하는 기법을 말한다. 플래시 메모리는 하드 디스크와 같이 비 휘발성과 빠른 접근 속도를 가지면서도 전력을 적게 소비하기 때문에 내장형 시스템 (embedded system)이나 이동 디바이스 (mobile device) 등의 응용에서 많이 사 용되고 있다.
요구 페이징을 수행하는 순서로는 페이지 폴트(page fault)가 발생했을 때, 먼저 폴트 핸들러는 폴트가 발생한 페이지를 적재할 물리 메모리 공간을 확보한다. 사용가능한 물리 메모리 공간이 없는 경우, 기존에 할당된 페이지와 교체시켜 확보한다. 폴트 핸들러는 물리 메모리 공간을 확보한 다음, 폴트가 발생한 페이지가 저장된 비 휘발성 저장장치의 주소를 알아낸 후, 비 휘발성 장치로부터 해당 페이지를 읽어 들인 후, 메모리 매핑 테이블을 갱신한다.
도 1은 요구 페이징 처리 과정을 시간의 흐름에 따라 소프트웨어 처리과정과 디바이스 I/O와의 관계를 표현한 도면이다.
디바이스에서 데이터를 읽어오는 경우는 페이지 폴트(page fault)가 발생한 경우이다. 페이지 폴트 핸들러(10)은 먼저 디바이스에서 데이터를 읽어와서 저장할 메모리의 공간을 확보한다. 그리고 페이지 폴트가 일어난 페이지의 주소를 알아내서, 해당 페이지의 데이터를 읽도록 디바이스에 READ_CMD라는 명령어를 생성한다. 이 명령어가 디바이스에 전달되면, 디바이스는 일정 시간동안 비지(busy) 시간을 거친 뒤 데이터를 전송하는데, 여기서 비지(busy) 시간은 해당 페이지에 저장된 데이터를 읽어오기위한 선행 작업을 수행하는 시간이다. 예를 들어, 플래시 메모리에서 데이터를 읽어올 경우, 해당 페이지가 저장된 영역에 컬럼(column) 신호와 로우(row) 신호를 보내어서 데이터를 읽어올 수 있다. 이러한 과정을 수행하기 위해 일정 시간이 소요된다. 이 시간 이후에 플래시 메모리에서 해당 페이지의 데이터를 보낼 수 있다. 디바이스에서 데이터를 전송하면, 페이지 폴트 핸들러는 매핑 테이 블을 갱신하고, 수신한 데이터를 저장한다.
도 1에서 살펴본 페이지 교체 작업은 디바이스에서 데이터를 읽어오고 페이지 폴트 결과를 정리하는 등의 여러 작업을 거쳐야 하므로 페이지 교체를 줄이는 것이 시스템의 성능에 많은 영향을 미칠 수 있다.
페이지 교체 알고리즘 중 가장 최적화된 알고리즘으로 LRU(Least Recently Used) 알고리즘을 꼽을 수 있다. 이는 가장 최근에 이용한 횟수가 가장 적은 페이지를 교체 대상으로 삼는 방식이다. 그런데, LRU 페이지 교체 정책을 요구 페이징에 적용하기 위해서는 하드웨어의 지원이 필요하지만, 대부분의 시스템에서는 진정한 의미의 LRU 페이지 교체 정책을 위한 하드웨어 지원이 없다. 따라서 통상적으로 클럭 알고리즘(clock algorithm), Mach 2.5 알고리즘 등 LRU 유사한 알고리즘을 적용하고 있다.
그런데, 종래의 페이징 기술은 하드디스크 등의 비 휘발성 저장장치를 기반으로 요구 페이징을 처리하여, 플래시 메모리와 같은 비 휘발성 저장장치의 특성을 고려하지 못하고 있다. 하드디스크에서 데이터를 읽는 방식과 플래시 메모리에서 데이터를 읽는 방식에는 차이가 존재하는데, 페이징 기술에 이러한 차이를 고려하지 않고 있다.
하드디스크의 경우, 물리 메모리 주소와 비 휘발성 저장장치의 주소를 통해 비 휘발성 저장 장치에서 물리 메모리로 데이터를 읽어 들일 수 있지만, 플래시 메모리와 같이 디바이스 내에 버퍼 (또는 레지스터)가 있는 비 휘발성 저장장치의 경우에는 물리 메모리(RAM)로 데이터를 읽어 들이기 전 비 휘발성 저장 장치내의 버 퍼 (또는 레지스터)까지 데이터를 로드한 다음 그 버퍼 또는 레지스터에서 물리 메모리로 데이터를 로드한다. 플래시 메모리에 비 휘발성 저장 장치의 주소(address)와 함께 읽기 명령(read command)를 제기(issue)하면, 읽기 명령어가 일어난 후 버퍼 (or 레지스터)로 데이터가 로딩되는데, 로딩되는 동안 디바이스는 비지(busy) 상태가 된다. 이 시간은 플래시 메모리에 따라 다르지만, 통상 23us ~ 35us의 시간이 소요된다.
상기의 경우 외에도, 페이징 기술을 적용시, 불필요한 반복적인 연산이 계속되는 경우가 있다. 따라서 요구 페이징에서 페이지를 교체시 소요되는 수행시간을 감축시키는 방법과 장치가 필요하다.
본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 본 발명은 플래시 메모리와 같은 비휘발성 저장장치의 특성을 고려하여 요구 페이징 기법을 적용하는데 목적이 있다.
또한 본 발명은 비휘발성 저장장치에서 데이터를 읽어들이는데 소요되는 시간동안 다른 작업을 수행하도록 하여 시스템의 성능을 향상시키는데 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법은 페이지 폴트의 발생을 알리는 신호를 수신하는 단계, 상기 페이지 폴트가 일어난 페이지를 비휘발성 메모리에서 읽어오는 단계, 및 상기 폴트가 일어난 페이지를 저장할 공간을 메모리에서 검색하여 확보하는 단계를 포함하며, 상기 (c) 단계는 미리 계산된 한계 시간 이내에 수행되며, 상기 시스템의 메모리에 로딩될 데이터의 일부는 상기 비휘발성 메모리에 저장되어 있는 요구 페이징 기법을 적용한다.
요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 장치는 전원의 공급 없이 저장된 데이터를 유지하는 비휘발성 저장장치, 상기 비휘발성 저장장치로부터 데이터를 수신하여 저장하며, 데이터 저장에 있어 전원의 공급을 필요로 하며, 요구 페이징을 통해 데이터를 관리하는 메모리, 상기 메모리에서 페이지 폴트가 발생함을 알리는 신호를 송신하는 메모리 관리부, 상기 페이지 폴트가 일어난 페이지의 정보를 추출하고, 상기 페이지를 저장할 상기 메모리의 공간을 검색하여 확보하는 페이지 폴트 핸들러, 및 상기 비휘발성 저장장치에 폴트가 발생한 페이지의 정보를 송신하며, 상기 비휘발성 저장장치로부터 데이터를 수신하는 디바이스 드라이버를 포함하며, 상기 페이지 폴트 핸들러는 미리 계산된 한계 시간 이내에 수행된다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발 명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다
이하, 본 발명의 실시예들에 의하여 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법 및 장치를 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
플래시 메모리와 같은 비 휘발성 저장 장치의 경우에는 저장 장치 내에서 버퍼 혹은 레지스터까지 데이터를 로딩하는 과정과 그 버퍼 혹은 레지스터에서 로딩된 데이터를 물리 메모리(RAM)로 전송하는 과정이 구분되므로, 셀에서 버퍼 (또는 레지스터)까지 데이터를 로딩하는 시간 동안 교체 페이지 선정 작업등의 작업을 함으로써 요구 페이징 처리 시간을 단축 하는 것이 가능하다. 물론 교체 페이지 선정 이외에 요구 페이징 작업을 위한 과정이면서, 디바이스가 비지(busy)인 시간 동안 수행이 가능한 메모리 매핑 테이블 업데이트, TLB와 캐시 인밸리데이션(cache invalidation) 등의 작업을 수행 하는 것도 가능하다.
전술한 바와 같이, 플래시 메모리가 장착된 디바이스에서 데이터를 읽기 위 해서는 읽기 명령(Read Command)과 주소(Address)를 발생시키고(issue), 일정 시간을 기다린 후 데이터를 디바이스에서 호스트로 전송하는 과정을 가진다. 일정시간을 기다리는 것은 플래시 메모리의 구조상, 데이터가 저장된 비휘발성 저장장치인 셀에서 휘발성 저장장치인 버퍼 또는 레지스터(register)로 데이터를 옮겨오는 시간이 소요되기 때문이다.
플래시 메모리의 셀에 저장된 데이터를 버퍼로 옮겨오는데 소요되는 시간을 효율적으로 활용하면 플래시 메모리에서의 데이터 로딩 시간을 줄일 수 있다.
도 2는 본 발명의 일 실시예에 따른 상기 데이터 로딩 시간을 줄이면서 페이징을 처리하는 과정을 보여주는 시간 순서도이다. 도 1과 비교해서, 물리 메모리의 공간을 확보하고, 매핑 테이블을 갱신하는 작업을 "Busy" 인 경우에 수행한다. 페이지 폴트 핸들러가 "READ CMD"를 생성하면, 플래시 메모리의 셀에서 버퍼 또는 레지스터로 데이터를 이동시킨다. 이때, 페이지 폴트 핸들러는 "Busy"인 시간(T)동안 독자적인 작업을 수행할 수 있다. 도 2에서는 물리 메모리의 공간을 확보하여 매핑 테이블을 갱신하는 작업을 병행하도록 하여 시간을 줄일 수 있다.
도 3은 본 발명의 일 실시예에 따른 페이지 교체 시간을 줄이는 과정을 적용하는 클럭 알고리즘의 동작을 보여주는 도면이다.
클럭 알고리즘(clock algorithm)은 일종의 FIFO 교체 알고리즘(First In First Out replacement algorithm) 이다. 백암(Back arm)은 포인터로, FIFO에서 가장 오래 전에 큐(queue)에 들어온 페이지를 가리키고 있다. 교체될 페이지(교체 페이지)를 선정할 때는 백암이 가리키고 있는 페이지의 참조비트(reference bit)를 확인하여, 그 페이지의 참조 비트가 참조하지 않음을 나타내는 'UR'(unreferenced)이면 교체 페이지로 선정하며, 참조함을 나타내는 'R'(referenced) 이면, 그 페이지에게는 한 번의 기회를 더 주며, 백암을 한 칸 이동시켜 백암이 가리키는 페이지의 참조 비트를 확인한다. 백암을 이동할 때, 포인터인 프론트암도 함께 이동하면서 프론트암이 가리키고 있던 페이지의 참조 비트를 'UR'로 변경시킨다. 이 같은 방식으로 백암과 프론트암을 이동시키면서, 백암이 'UR'를 가리키고 있는 페이지를 발견하면, 해당 페이지는 교체 페이지로 선정된다.
도 3은 클럭 알고리즘에서 교체 페이지를 선정하는 과정을 나타낸 도면이다. 51에서 백암이 가리키고 있는 페이지의 참조 비트는 'R" 이므로, 백암이 'UR' 페이지를 가리킬 때까지 백암과 프론트암을 이동한다. 그 결과 52와 같이 3회 이동 하여, 페이지 13번을 교체 페이지로 선정하였다. 또한, 백암을 3회 이동하면서, 프론트암도 마찬가지로 3회 이동하였으며, 프론트암이 이동하면서, 페이지 2, 11 그리고 7의 참조 비트를 'UR'로 설정하였다. 이렇게 교체 페이지를 선정한 후, 53과 같이 새로운 페이지 4번을 할당시키고, 백암과 프론트암을 각각 1회 이동시킨다. 54는 53에서 참조 비트가 'UR'인 페이지 7이 다시 참조 된 경우의 예이다. 클럭 알고리즘에서 'UR'인 페이지가 다시 참조되면 참조 비트를 'UR'에서 'R'로 변경한다. 그 결과 55와 같이 페이지 7의 참조 비트가 'R'로 변경된다.
도 4는 본 발명의 일 실시예에 따른 도 3의 클럭 알고리즘에 페이지 교체 시간을 줄이는 과정을 보여주는 도면이다. 도 3에서 살펴볼 때, 백암은 'UR' 페이지를 참조할 때까지 포인터가 이동되며, 프론트암은 백암의 이동에 따라 포인터를 이 동시키면서 참조 비트를 'R'에서 'UR'로 변경한다. 그런데, 백암과 프론트암 사이에 모든 페이지의 참조 비트가 'R'인 경우에는, 결국 백암과 프론트암의 차이만큼 포인터를 이동시키는 탐색 과정을 거친 후에 결국 프론트암이 'UR'로 변경한 페이지를 백암이 교체하게 된다. 도 4의 62에서 백암과 프론트암 사이에 존재하는 페이지가 모두 'R'인 경우, 백암은 페이지 25까지 이동해야 하며, 프론트암은 페이지 25부터 계속 참조 비트를 'UR'로 바꾸는 작업을 해야 하므로, 이는 시간적인 낭비가 될 수 있다. 따라서, 도 4에서는 일정 시간 T 이내에만 'UR'인 페이지를 백암이 검색하며, 백암이 'UR'인 페이지를 발견하지 못한 경우라도, 일정 시간 T가 지나면 'R'인 페이지를 교체페이지로 한다.
도 4의 63에서 백암은 일정시간 T 동안만 'UR'인 페이지를 검색하지만, 'UR'인 페이지를 찾지 못하게 되었다. 그리고 백암이 이동하는 동안 프론트암 역시 일정시간 T 동안 이동하면서 페이지의 참조 비트를 'UR'로 변경한다.
T 시간이 지나면 백암은 페이지 2를 가리키며, 프론트암은 페이지 26을 가리키며 둘다 'R'이다. 두 개의 암이 가리키는 페이지가 'R'이라 해도, 이들을 교체 페이지로 할 수 있다. 63에서는 프론트암이 가리키는 페이지 26을 교체페이지로 하였다. 물론, 백암이 가리키는 페이지 2를 교체 페이지로 할 수 있다.
상기 일정시간 T는 시스템에 따라 달리 설정될 수 있다. 이때, 도 2에서 플래시와 같은 비휘발성 저장장치에서 데이터를 읽어들이는 기간(Busy)중에 상기의 백암과 프론트암을 이동하면서 페이지를 검색할 수 있다. Busy인 기간 중에는 시스템이 비휘발성 저장장치로부터 데이터를 읽을 수 없는 기간이므로, 이때, 페이지 폴트를 처리하는 작업을 수행하면 소요되는 시간을 줄일 수 있다.
도 4에서 페이지 교체를 위해 백암과 프론트암을 이동시키는 시간을 줄이기 위해 한계 시간인 T를 두었으며, 일 실시예로 한계 시간 T를 비휘발성 저장 장치에서 데이터를 읽어들이는 시간과 중복되도록 하였다.
도 5는 Mach 2.5 알고리즘에서 교체 페이지를 선정하는 과정을 나타낸 도면이다.
Mach2.5 알고리즘은 스택 방식으로 페이지를 관리 한다. 최근에 참조된 페이지는 스택의 맨 위에 놓이며, 가장 오래 전에 참조된 페이지는 스택의 맨 아래에 놓여, 페이지 교체시에는 스택의 맨 아래에 있는 페이지를 선정함으로써 가장 오래 전에 참조된 페이지가 교체 페이지가 된다.
Mach2.5 알고리즘은 페이지를 유효 리스트(valid list)와 교체 리스트(invalid list)로 구분하여 관리 한다. 유효 리스트의 페이지를 참조할 때, 페이지 폴트가 발생하지 않으므로 참조 여부를 알 수 없는 리스트이며, 교체 리스트의 페이지는 실제로 페이지들이 물리 메모리에는 적재 되어 있으나, 페이지의 참조 여부를 알기 위해 가짜 페이지 폴트가 발생 할 수 있도록 페이지를 무효화(invalid)시켜놓은 것이다. 따라서, 유효 리스트에는 항상 최근에 참조된 페이지들이 스택되고, 유효 리스트에 새로운 페이지가 삽입될 때마다 가장 오래 전에 유효 리스트에 추가된 페이지가 교체 리스트에 스택된다. 교체 리스트에 있는 페이지가 참조되면, 해당 페이지는 유효 리스트의 맨 앞에 놓여 항상 최근 참조된 페이지로 관리 된다.
도 5의 Mach 2.5 알고리즘의 실시에서는 교체 페이지 선정과 새로 참조된 페 이지를 리스트에 추가하는 예이다. Mach2.5 알고리즘의 교체 페이지는 항상 교체 리스트의 마지막 페이지가 된다. 그리고, 새로 추가하는 페이지는 유효 리스트의 맨 앞으로 추가시키며, 이때 유효 리스트의 마지막 페이지를 교체 페이지로 옮기는 작업이 추가된다.
(a)에서 70은 유효 리스트이며 80은 교체 리스트이다. 가장 최근에 참조된 페이지는 4이며, 교체 리스트에서 가장 먼저 교체될 페이지는 20이다. 페이지 5를 참조하기 위해, 교체 리스트(80)의 페이지 20이 교체 페이지가 된다. (b)는 교체된 결과로, 교체 리스트(82)에는 페이지 20이 존재하지 않으며, 페이지 20의 메모리 영역이 페이지 5에 할당되며 페이지 5는 유효 리스트(71)에 존재한다.
교체 리스트(82)에는 유효 리스트(72)의 마지막 페이지인 페이지 2를 교체 페이지로 옮긴다. 따라서 (c)와 같이 페이지 2가 유효 리스트(74)에서 교체 리스트(84)로 이동하였다.
(c)의 교체 리스트(84)에 존재하는 페이지 7을 참조할 경우, 페이지 7은 유효 리스트로 이동한다. 그 결과 (d)와 같이 페이지 7은 교체 리스트(86)에서 제거되고, 유효 리스트(76)의 맨 앞으로 추가된다. 그리고 유효 리스트(76)의 페이지 9는 교체 리스트(86)으로 이동하는 작업이 필요하다. (e)는 페이지 9가 교체 리스트(88)로 이동하였음을 보여준다.
도 5의 Mach 2.5 알고리즘의 동작을 살펴보면, 페이지가 교체될 때마다 유효 리스트의 페이지를 교체 리스트로 이동시키는 작업을 수행한다. 즉, 교체 리스트에 있는 페이지가 참조된 경우, 해당 페이지를 유효 리스트의 맨 앞으로 삽입하고, 유 효 리스트의 하나의 페이지를 교체 리스트로 옮기는 작업으로 이루어 진다. Mach 2.5의 알고리즘은 페이지가 참조되었을 때 수행하는 리스트 관리 오버헤드가 발생한다.
이러한 작업을 매번 수행하는 것은 시간이 소요되므로, 시스템이 특정 작업을 수행하지 않는 시간에 교체 리스트를 이동시켜서 전체 작업 시간을 줄일 수 있다.
도 6은 본 발명의 일 실시예에 따른 도 5의 Mach 2.5 알고리즘에서 교체 리스트의 이동 시점을 재편성하여 수행하는 과정을 보여주는 도면이다.
도 6에서는 교체할 페이지를 선정하는 시간은 디바이스가 데이터를 읽어오기위해 대기하는 시간과 같이, 오퍼레이션을 수행하지 않는 시간 동안 수행 가능하며, 이 시간 내에 교체 페이지 선정과 교체 리스트, 유효 리스트의 갱신이 이루어 지지 않을 경우에는 일부 작업을 나중에 디바이스가 대기하는 시간에 작업을 하도록 하여, 요구 페이징 처리 성능을 향상시킬 수 있다.
(a)에서 교체 리스트(100)에 존재하는 페이지 7을 참조한다. 그 결과 (b)와 같이 페이지 7은 교체 리스트(102)에서 제거하고, 유효 리스트(92)의 맨 앞으로 삽입한다. 도 5에서는 유효 리스트의 마지막 페이지를 교체 리스트로 이동시키지만, 도 6에서는 이러한 이동 작업을 수행하지 않는다. 이는 추후 작업한다.
(c)는 (b)의 상태에서 새로운 페이지인 페이지 6을 참조하고, 그 결과 새로운 페이지를 할당하기 위해 교체 리스트(104)에서 교체 페이지를 유효 리스트(94)에 추가하여 페이지 6에 할당한다. 한편, 전술한 과정과 같이, 유효 리스트(94)의 페이지를 교체 페이지(104)로 이동시키지 않는다.
(d)는 새로운 페이지 22를 참조하게 되어, 그 결과 유효 리스트(96)에 새로운 페이지 22가 추가되며, 교체 리스트(106)에서 페이지가 제거된다. 마찬가지로 유효 리스트(96)에서 교체 리스트(106)로 페이지를 이동시키는 과정은 생략된다.
상기의 페이징 과정이 수행되는 중, 디바이스가 도 2에서 예로 든 'Busy' 기간인 경우, 디바이스는 유효 리스트(98)의 페이지를 교체 리스트(108)로 이동시킨다.
즉, 초기 유효 리스트의 개수에 비해 늘어난 페이지의 개수만큼을 유효 리스트의 마지막 부분에서 추출하여 교체 리스트로 옮긴다. 이때, 교체 리스트로 이동시켜야 할 페이지의 개수가 많은 경우, 디바이스의 'busy' 시간을 고려하여 특정 시간 내에 이동시키지 못한 페이지들은 다음 새로운 페이지 참조 시 처리할 수 있도록 한다. 따라서, 한번의 요구 페이징 처리 시간이 특정 시간 이상으로 증가하는 것을 방지할 수 있다.
도 7은 본 발명의 일 실시예에 따른 읽기 명령을 송신하고 페이징을 위한 메모리 작업을 수행하는 순서도이다. 도 2에서 물리 메모리 공간을 확보하고 매핑 테이블을 갱신하는 시점인 T 내에 도 4 또는 도 6에서 살펴본 페이징 처리 작업을 수행하는 경우의 순서도이다.
페이지 폴트가 발생하면 해당 페이지를 읽어와야 한다. 따라서 해당 페이지가 저장된 비휘발성 저장장치의 주소를 추출한다(S120). 매핑 테이블에 이러한 정보가 기록될 수 있다. 이 주소를 비휘발성 저장장치에 읽기 명령(Read Command)를 송신한다(S122). 읽기 명령을 비휘발성 저장장치에 송신하고, 다시 데이터를 수신하기 까지는 도 2에서 살펴본 바와 같이 일정 시간이 소요된다. 이 시간동안, 읽은 페이지를 저장할 물리 메모리의 공간 확보를 위해 교체 페이지를 선정한다(S124). 그리고 메모리 매핑 테이블을 갱신한다(S126). 그리고 비휘발성 저장장치로부터 페이지를 읽어서 물리 메모리에 저장한다(S128).
도 4의 클럭 알고리즘에서 한계시간 T 만큼 백암과 프론트암을 이동시키는 것, 또는 도 6의 Mach 2.5 알고리즘에서 한계시간 내에 유효 리스트와 교체 리스트를 관리하고, 완료되지 않은 부분은 다음 한계시간동안 실행하는 경우가 S104와 S106의 과정에 포함된다.
한편, 본 명세서에서는 도 4와 도 6의 한계시간은 반드시 도 2의 한계시간 T와 일치하는 것을 요구하는 것은 아니다. 도 4와 도 6에서 교체 페이지 선정과 교체 리스트 관리에 필요한 작업은 시스템이 휴지 상태(休止, idle)인 경우에 언제든지 수행할 수 있는 것이며, 휴지 상태의 일 예로, 비휘발성 메모리로부터 데이터를 읽기 위해 시스템이 대기하는 시간을 휴지 상태로 볼 수 있다.
도 8은 본 발명의 일 실시예에 따른 요구 페이징의 수행 시간을 단축시키는 과정을 보여주는 순서도이다. 요구 페이징에서는 일부 페이지만 메모리에 로딩 또는 저장하므로, 어플리케이션에서 메모리의 특정 페이지를 요청할 경우, 페이지 폴트가 발생할 수 있다. 페이지 폴트의 발생을 알리는 신호를 수신하면(S200), 페이지 폴트가 발생한 페이지에 관한 정보(information), 예를 들어, 논리적 또는 물리적 주소를 포함하는 정보를 비휘발성 메모리에 송신한다(S210). 도 8의 동작은 플 래시 메모리와 같이, 데이터를 읽어오기위해 버퍼 또는 레지스터를 거쳐서 시스템으로 데이터를 전송하는 비휘발성 메모리에 적용가능하다. S210 단계에서 비휘발성 메모리에 페이지에 관한 정보, 예를 들어 주소에 관한 정보를 송신하고, 해당 주소의 데이터를 읽어오는데 까지 시간이 소요되므로, 그 사이에 S230, S240 과정을 수행한다. 추후 비휘발성 메모리에서 읽어오게 되는 페이지를 저장할 수 있도록 메모리에서 교체 페이지를 선정한다(S230). 그리고 요구 페이징을 위한 리스트를 관리한다(S240).
그리고 페이지의 데이터를 비휘발성 메모리로부터 수신한다(S250). 수신한 데이터를 메모리에 저장하여 어플리케이션의 동작을 진행한다. 이때, S210과 S250 사이의 시간동안 S230과 S240 작업을 수행하게 된다.
전술한 클럭 알고리즘을 살펴보면, 교체 대상이 되는 다수의 페이지를 관리하는 포인터(백암, 프론트암)를 이동시키고, 이동한 포인터가 지시하는 페이지를 상기 폴트가 일어난 페이지를 저장할 공간으로 확보하는 단계가 S230과 S240이 될 수 있다. 물론, 상기의 S230과 S240은 반드시 S210과 S250 사이에 일어나야 하는 것은 아니다. 시스템이 휴지(idle)인 시간에 수행할 수 있다.
마찬가지로, Mach 2.5 알고리즘을 사용할 경우, 메모리 내의 페이지를 유효 리스트와 교체 리스트로 나누어서, 유효 리스트는 현재 참조된 페이지들의 리스트이며, 교체 리스트는 추후 교체될 페이지들의 리스트를 포함하게 하여, 이들 리스트간에 페이지를 이동시키는 과정이 필요하다. 이러한 리스트간의 페이지 교환등의 작업이 S230과 S240에서 수행되며, 시스템이 휴지(idle)인 시간에 수행할 수 있다. 상기 시스템의 휴지 기간은 S210과 S250 사이의 시간이 될 수 있다.
도 9는 본 발명의 일 실시예에 따른 시스템의 구성도이다. 본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA(Field Programmable Gate Array) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)와 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
시스템 또는 장치(300)은 휴대폰, MP3 플레이어, PMP, PDA, 노트북 등 비휘발성 저장 장치를 포함하는 기기를 포함한다. 비휘발성 저장장치(400)는 전술한 바와 같이 플래시 메모리와 같은 저장 매체를 사용할 수 있다. 비휘발성 저장장치(400), 즉 비휘발성 메모리는 전원의 공급 없이 저장된 데이터를 유지한다. 비휘발 성 저장장치(400)는 카드와 같은 형태로 착탈할 수 있으며, 장치 내에 내장될 수 있다.
메모리(350)는 비휘발성 저장장치(400)로부터 데이터를 수신하여 저장하며, 데이터 저장에 있어 전원의 공급을 필요로 한다. 메모리는 요구 페이징을 통해 원래 저장가능한 용량보다 더 많은 용량의 데이터를 관리할 수 있다. 이를 가능하게 하도록 메모리 관리부(320), 페이지 폴트 핸들러(310)이 존재한다. 메모리 관리부(320)는 페이지 폴트의 발생을 알리는 신호를 페이지 폴트 핸들러(310)에 송신한다. 페이지 폴트 핸들러(310)는 페이지 폴트가 일어난 페이지의 정보를 추출하고, 상기 페이지를 저장할 메모리(350)의 공간을 검색하여 확보한다. 페이지 폴트 핸들러(310)는 메모리(350)의 공간을 검색하고 확보하기 위한 방안으로 전술한 클럭 알고리즘, Mach 2.5 알고리즘 등을 적용할 수 있다.
디바이스 드라이버(340)는 비휘발성 저장장치(400)에 폴트가 발생한 페이지의 정보를 송신하며, 상기 비휘발성 메모리로부터 데이터를 수신한다. 이 시간 간격이 장치(300)의 측면에서 휴지 기간이 될 수 있다. 페이지 폴트 핸들러(310)는 상기 휴지기간 또는 미리 계산된 한계 시간 이내에 메모리(350)에 페이지를 저장하기 위한 공간을 검색하고 확보하는 작업을 수행한다.
페이지 캐시 관리자(330)는 페이지의 주소와 메모리에서의 위치 또는 비휘발성 저장장치에서의 정보를 일부 캐시하여 관리한다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다 는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 플래시 메모리와 같은 비휘발성 저장장치의 특성을 고려하여 요구 페이징 기법을 적용할 수 있다.
본 발명을 구현함으로써 비휘발성 저장장치에서 데이터를 읽어들이는데 소요되는 시간동안 다른 작업을 수행할 수 있다.

Claims (16)

  1. 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행 시간을 단축시키는 방법에 있어서,
    (a) 페이지 폴트의 발생을 알리는 신호를 수신하는 단계;
    (b) 상기 페이지 폴트가 일어난 페이지를 비휘발성 메모리에서 읽어오는 단계; 및
    (c) 상기 폴트가 일어난 페이지를 저장할 공간을 미리 계산된 한계 시간 이내에 메모리에서 검색하여 확보하는 단계를 포함하며,
    상기 시스템의 메모리에 로딩될 데이터의 일부는 상기 비휘발성 메모리에 저장되어 있는 요구 페이징 기법을 적용하는, 요구 페이징에서의 페이지 교체 방법.
  2. 제 1항에 있어서,
    상기 한계 시간은 상기 (b) 단계를 수행하는데 소요되는 시간 이하인, 요구 페이징에서의 페이지 교체 방법.
  3. 제 1항에 있어서,
    상기 (c) 단계는 상기 (b) 단계를 수행하기 위해 상기 시스템이 대기하고 있는 시간에 수행되는, 요구 페이징에서의 페이지 교체 방법.
  4. 제 1항에 있어서,
    상기 (b) 단계는
    폴트가 일어난 페이지의 정보를 상기 비휘발성 메모리에 송신하는 단계; 및
    상기 페이지의 데이터를 상기 비휘발성 메모리로부터 수신하는 단계를 포함하며,
    상기 시스템이 대기하고 있는 시간은 상기 송신하는 단계와 상기 수신하는 단계 사이에 존재하는 시간인, 요구 페이징에서의 페이지 교체 방법.
  5. 제 1항에 있어서,
    상기 (c) 단계는
    교체 대상이 되는 다수의 페이지를 관리하는 포인터를 이동시키는 단계; 및
    상기 이동한 포인터가 지시하는 페이지를 상기 폴트가 일어난 페이지를 저장할 공간으로 확보하는 단계를 포함하며,
    상기 이동시키는 단계는 상기 한계 시간 이하에서 수행되는, 요구 페이징에서의 페이지 교체 방법.
  6. 제 5항에 있어서,
    상기 한계 시간은 상기 (b) 단계를 수행하는데 소요되는 시간 이하인, 요구 페이징에서의 페이지 교체 방법.
  7. 제 1항에 있어서,
    상기 시스템은 상기 메모리를 관리함에 있어서, 메모리 내의 페이지를 두 개의 그룹으로 나누어, 제 1 그룹은 현재 참조된 페이지들의 리스트이며, 제 2 그룹은 추후 교체될 페이지들의 리스트이며,
    상기 (C) 단계는 상기 제 2 그룹에서 저장할 공간을 확보하는 단계를 포함하며,
    상기 제 1 그룹과 상기 제 2 그룹간에 교환 또는 정리될 페이지의 그룹 이동은 상기 한계 시간 이하에서 수행되는, 요구 페이징에서의 페이지 교체 방법.
  8. 제 7항에 있어서,
    상기 한계 시간은 상기 (b) 단계를 수행하는데 소요되는 시간 이하인, 요구 페이징에서의 페이지 교체 방법.
  9. 전원의 공급 없이 저장된 데이터를 유지하는 비휘발성 저장장치;
    상기 비휘발성 저장장치로부터 데이터를 수신하여 저장하며, 데이터 저장에 있어 전원의 공급을 필요로 하며, 요구 페이징을 통해 데이터를 관리하는 메모리;
    상기 메모리에서 페이지 폴트가 발생함을 알리는 신호를 송신하는 메모리 관리부;
    상기 페이지 폴트가 일어난 페이지의 정보를 추출하고, 상기 페이지를 저장할 상기 메모리의 공간을 미리 계산된 한계 시간 이내에 검색하여 확보하는 페이지 폴트 핸들러; 및
    상기 비휘발성 저장장치에 폴트가 발생한 페이지의 정보를 송신하며, 상기 비휘발성 저장장치로부터 데이터를 수신하는 디바이스 드라이버를 포함하는, 장치.
  10. 제 9항에 있어서,
    상기 한계 시간은 상기 디바이스 드라이브가 상기 메모리에 폴트가 발생한 페이지의 정보를 송신한 시점부터 상기 비휘발성 저장장치로부터 데이터를 수신하는 시점까지 소요되는 시간 이하인, 장치.
  11. 제 9항에 있어서,
    상기 페이지 폴트 핸들러는 상기 메모리의 공간을 검색하고 확보하는 작업을 상기 디바이스 드라이버가 비휘발성 저장장치로부터 데이터를 수신하기 위해 대기하고 있는 시간에 수행하는, 장치.
  12. 제 9항에 있어서,
    상기 페이지 폴트 핸들러는
    교체 대상이 되는 다수의 페이지를 관리하는 포인터를 이동시키고,
    상기 이동한 포인터가 지시하는 페이지를 상기 폴트가 일어난 페이지를 저장할 공간으로 확보하며,
    상기 이동시키는 작업은 상기 한계 시간 이내에 수행하는, 장치.
  13. 제 12항에 있어서,
    상기 한계 시간은 상기 상기 디바이스 드라이브가 상기 메모리에 폴트가 발생한 페이지의 정보를 송신한 시점부터 상기 비휘발성 저장장치로부터 데이터를 수신하는 시점까지 소요되는 시간 이하인, 장치.
  14. 제 9항에 있어서,
    상기 페이지 폴트 핸들러는 상기 메모리를 관리함에 있어서, 메모리 내의 페이지를 두 개의 그룹으로 나누어 관리하며, 제 1 그룹은 현재 참조된 페이지들의 리스트이며, 제 2 그룹은 추후 교체될 페이지들의 리스트이며,
    상기 메모리의 공간을 검색하여 확보하는 작업은 상기 제 2 그룹에서 저장할 공간을 확보하는 작업을 포함하며,
    상기 제 1 그룹과 상기 제 2 그룹간에 교환 또는 정리될 페이지의 그룹 이동은 상기 한계 시간 이하에서 수행되는, 장치.
  15. 제 14항에 있어서,
    상기 한계 시간은 상기 디바이스 드라이브가 상기 메모리에 폴트가 발생한 페이지의 정보를 송신한 시점부터 상기 비휘발성 저장장치로부터 데이터를 수신하는 시점까지 소요되는 시간 이하인, 장치.
  16. 제 9항에 있어서,
    상기 비휘발성 저장장치는 플래시 메모리와 상기 플래시 메모리의 데이터를 상기 장치로 전송하는 버퍼 또는 레지스터를 포함하는, 장치.
KR1020060004140A 2006-01-13 2006-01-13 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 KR100772863B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020060004140A KR100772863B1 (ko) 2006-01-13 2006-01-13 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
US11/640,241 US7953953B2 (en) 2006-01-13 2006-12-18 Method and apparatus for reducing page replacement time in system using demand paging technique
DE602007008484T DE602007008484D1 (de) 2006-01-13 2007-01-03 Verfahren und Vorrichtung zur Reduzierung der Seitenersetzungszeit in einem System, das die Seitenabruf-Technik verwendet
EP07100076A EP1818832B1 (en) 2006-01-13 2007-01-03 Method and apparatus for reducing page replacement time in system using demand paging technique
CNB2007100013069A CN100541455C (zh) 2006-01-13 2007-01-09 使用请求调页技术的系统中减少页替换时间的方法和设备
JP2007001991A JP4481999B2 (ja) 2006-01-13 2007-01-10 デマンドページング技法を適用したシステムでページ置換実行時間を短縮させる方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060004140A KR100772863B1 (ko) 2006-01-13 2006-01-13 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20070075640A KR20070075640A (ko) 2007-07-24
KR100772863B1 true KR100772863B1 (ko) 2007-11-02

Family

ID=37898352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060004140A KR100772863B1 (ko) 2006-01-13 2006-01-13 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치

Country Status (6)

Country Link
US (1) US7953953B2 (ko)
EP (1) EP1818832B1 (ko)
JP (1) JP4481999B2 (ko)
KR (1) KR100772863B1 (ko)
CN (1) CN100541455C (ko)
DE (1) DE602007008484D1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100866627B1 (ko) * 2007-01-29 2008-11-03 삼성전자주식회사 컨트롤 플로우를 이용한 페이지 프리로드 방법 및 그시스템
KR101496325B1 (ko) * 2008-01-16 2015-03-04 삼성전자주식회사 가상 머신의 상태를 저장, 복원하는 방법 및 장치
CN101742688A (zh) * 2008-11-26 2010-06-16 三星电子株式会社 移动通信系统中发送寻呼的方法
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
US8356141B2 (en) * 2010-06-28 2013-01-15 Hewlett-Packard Development Company, L.P. Identifying replacement memory pages from three page record lists
JP4966418B1 (ja) * 2011-01-26 2012-07-04 株式会社東芝 情報処理装置及び書き込み制御方法
JP5664347B2 (ja) 2011-03-04 2015-02-04 ソニー株式会社 仮想メモリシステム、仮想メモリの制御方法、およびプログラム
US9069586B2 (en) * 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US20130219116A1 (en) * 2012-02-16 2013-08-22 Wenguang Wang Data migration for composite non-volatile storage device
US10073851B2 (en) 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US9129674B2 (en) * 2013-06-27 2015-09-08 Intel Corporation Hybrid memory device
KR101477776B1 (ko) * 2013-12-26 2014-12-30 성균관대학교산학협력단 플래시 메모리에서의 페이지 교체 방법
CN103839591A (zh) * 2014-03-05 2014-06-04 福州瑞芯微电子有限公司 存储器自动检错和容错电路及控制方法
EP3153971B1 (en) 2015-10-08 2018-05-23 Huawei Technologies Co., Ltd. A data processing apparatus and a method of operating a data processing apparatus
US9460011B1 (en) 2015-12-14 2016-10-04 International Business Machines Corporation Memory reference estimation method and device based on improved cache
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
KR102400977B1 (ko) 2020-05-29 2022-05-25 성균관대학교산학협력단 프로세서를 통한 페이지 폴트 처리 방법
CN113722246B (zh) * 2021-11-02 2022-02-08 超验信息科技(长沙)有限公司 处理器中物理内存保护机制的实现方法及装置
CN116661684B (zh) * 2023-05-10 2024-02-23 珠海妙存科技有限公司 一种闪存数据的读取方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131262A (ja) * 1992-10-19 1994-05-13 Oki Software Kk 複数ページテーブルによるページング方式
JPH07152574A (ja) * 1993-11-26 1995-06-16 Hitachi Ltd プログラムローディング方式
KR20030070119A (ko) * 2001-01-19 2003-08-27 쌘디스크 코포레이션 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동
JP2005141637A (ja) 2003-11-10 2005-06-02 Matsushita Electric Ind Co Ltd メモリ管理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868738A (en) * 1985-08-15 1989-09-19 Lanier Business Products, Inc. Operating system independent virtual memory computer system
US5016164A (en) * 1986-04-21 1991-05-14 Texas Instruments Incorporated Computer system having delayed save on procedure calls
US5394537A (en) * 1989-12-13 1995-02-28 Texas Instruments Incorporated Adaptive page placement memory management system
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems
JPH07114499A (ja) 1993-10-19 1995-05-02 Hitachi Ltd フラッシュメモリ仮想メモリシステム
US5606685A (en) * 1993-12-29 1997-02-25 Unisys Corporation Computer workstation having demand-paged virtual memory and enhanced prefaulting
JPH07244614A (ja) 1994-03-02 1995-09-19 Fanuc Ltd メモリアクセス方式
US5555399A (en) 1994-07-07 1996-09-10 International Business Machines Corporation Dynamic idle list size processing in a virtual memory management operating system
US5754817A (en) * 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
US6067068A (en) 1996-04-16 2000-05-23 Canon Business Machines, Inc. Scrollable display window
KR100454119B1 (ko) 2001-10-24 2004-10-26 삼성전자주식회사 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들
US7143412B2 (en) * 2002-07-25 2006-11-28 Hewlett-Packard Development Company, L.P. Method and apparatus for optimizing performance in a multi-processing system
KR20050075533A (ko) 2004-01-15 2005-07-21 엘지전자 주식회사 개인용 휴대단말기의 디멘드 페이징 방법 및 페이지 내에관련 페이지 정보를 입력하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131262A (ja) * 1992-10-19 1994-05-13 Oki Software Kk 複数ページテーブルによるページング方式
JPH07152574A (ja) * 1993-11-26 1995-06-16 Hitachi Ltd プログラムローディング方式
KR20030070119A (ko) * 2001-01-19 2003-08-27 쌘디스크 코포레이션 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동
JP2005141637A (ja) 2003-11-10 2005-06-02 Matsushita Electric Ind Co Ltd メモリ管理装置

Also Published As

Publication number Publication date
EP1818832B1 (en) 2010-08-18
JP4481999B2 (ja) 2010-06-16
EP1818832A3 (en) 2008-01-23
CN100541455C (zh) 2009-09-16
EP1818832A2 (en) 2007-08-15
US20070168627A1 (en) 2007-07-19
JP2007188499A (ja) 2007-07-26
US7953953B2 (en) 2011-05-31
DE602007008484D1 (de) 2010-09-30
KR20070075640A (ko) 2007-07-24
CN101000581A (zh) 2007-07-18

Similar Documents

Publication Publication Date Title
KR100772863B1 (ko) 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
JP6832187B2 (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
CN101784993B (zh) 使用闪存作为存储器的设备及其操作方法
US10152428B1 (en) Virtual memory service levels
US8417913B2 (en) Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US9390020B2 (en) Hybrid memory with associative cache
JP6139381B2 (ja) メモリシステムおよび方法
US9639481B2 (en) Systems and methods to manage cache data storage in working memory of computing system
US20210157746A1 (en) Key-value storage device and system including the same
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
US11237979B2 (en) Method for management of multi-core solid state drive
US20140223072A1 (en) Tiered Caching Using Single Level Cell and Multi-Level Cell Flash Technology
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
CN109478164B (zh) 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法
US8898423B1 (en) High performance caching architecture for data storage systems
US8856468B2 (en) Memory device capable of improving write processing speed and memory control method
US11836092B2 (en) Non-volatile storage controller with partial logical-to-physical (L2P) address translation table
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
JP4734432B2 (ja) データ記憶システム
US8812782B2 (en) Memory management system and memory management method
CN111480151A (zh) 将高速缓存线从共用存储器页面冲洗到存储器

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160930

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 12