KR100810013B1 - 다단 가상 메모리 페이징 시스템 - Google Patents

다단 가상 메모리 페이징 시스템 Download PDF

Info

Publication number
KR100810013B1
KR100810013B1 KR1020060104845A KR20060104845A KR100810013B1 KR 100810013 B1 KR100810013 B1 KR 100810013B1 KR 1020060104845 A KR1020060104845 A KR 1020060104845A KR 20060104845 A KR20060104845 A KR 20060104845A KR 100810013 B1 KR100810013 B1 KR 100810013B1
Authority
KR
South Korea
Prior art keywords
page
memory
data
paging
evicted
Prior art date
Application number
KR1020060104845A
Other languages
English (en)
Other versions
KR20070049062A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20070049062A publication Critical patent/KR20070049062A/ko
Application granted granted Critical
Publication of KR100810013B1 publication Critical patent/KR100810013B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

컴퓨터 시스템의 주 기억 장치로부터 데이터 페이지를 축출할 경우, 데이터를 페이징하기 위한 컴퓨터 실행 계층적 방법은 페이지를 제1 페이징 기억 장치(바람직하게는 NVRAM)로 축출한다. 제1 페이징 기억 장치로부터 데이터 페이지를 축출할 경우, 페이지를 (디스크와 같은) 제2 페이징 기억 장치에 축출한다. 주 기억 장치가 이 주 기억 장치에 없는 데이터 페이지를 필요로 하고, 데이터 페이지가 제1 페이징 기억 장치에서 이용할 수 있다면, 제3 데이터 페이지를 제1 페이징 기억 장치로부터 주 기억 장치로 로딩한다. 제1 페이징 기억 장치에서 데이터 페이지가 이용할 수 없는 경우, 제3 데이터 페이지를 제2 기억 장치로부터 주 기억 장치로 로딩한다. 선택적으로, 이벤트의 파워-다운, 파워-업 시퀀스 도중에, 주 기억 장치의 페이지는 NVRAM에 저장되고 NVRAM으로부터 반환된다.

Description

다단 가상 메모리 페이징 시스템{MULTISTAGE VIRTUAL MEMORY PAGING SYSTEM}
도 1은 종래 기술의 컴퓨터 시스템의 구성요소를 도시하는 도면이다.
도 2는 종래 기술의 컴퓨터 시스템의 네트워크를 도시하는 도면이다.
도 3a 및 도 3b는 페이지가 지나가는 개념적인 데이터 경로를 도시하는 도면이다.
도 4는 페이지가 지나가는 물리적인 데이터 경로를 도시하는 도면이다.
도 5는 페이지 오류 처리를 도시하는 도면이다.
도 6은 비휘발성 메모리로부터 페이지를 판독하는 처리를 도시하는 도면이다.
도 7은 하드 디스크 드라이브로부터 페이지를 판독하는 처리를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
301, 405 : 주 메모리
302 : 비휘발성 메모리
303, 404 : 하드 디스크
401 : 프로세서
402 : 메모리 제어기
403 : 디스크 제어기
본 발명은 컴퓨터의 가상 스토리지(storage) 분야에 관한 것으로, 더욱 상세하게는 기억 장치의 레벨들 사이에서 데이터 페이지의 이동을 관리하는 것에 관한 것이다.
"주 메모리" 또는 "주 기억 장치"로 종종 불리는 1차 스토리지와 통신하는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템은 프로그램을 실행하고 주 기억 장치에 상주하는 데이터를 처리한다. 컴퓨터 시스템은 가상 기억 장치를 제공함으로써 주 기억 장치에서 떨어져서 소량을 보상하며, 가상 기억 장치의 "페이지(page)"라고 불리는 데이터 컨테이너(data container)는 하드 디스크 드라이브 상의 "페이지 파일(page file)"에서 지원된다. 가상 기억 장치가 프로세서에서 이용 가능하게 하기 위하여, 가상 기억 장치의 현재 페이지는 프로세서에서 이용 가능한 주 기억 장치의 페이지에 의해 지원된다. 주 메모리가 완전히 채워지면, 페이지는 주 메모리로부터 밀려 나오며, 수정될 경우에는, 필요하다면, 나중의 검색을 위해 2차 스토리지 시스템에 저장된다. 페이지가 수정되지 않으면, 페이지에 대한 레퍼런스만 업데이트되어 2차 기억 장치에 위치하고 있음을 반영한다. 이 프로세스는 "페이지 스왑핑(page swapping)"이라고 불리며, 빈번하다면, 심각한 성능 열화가 발생한다. 프로세서의 주 메모리(주 기억 장치)에 상주하지 않는 오퍼레이팅 시 스템(operating system) 또는 어플리케이션에 의해 페이지가 요구될 경우에는, "페이지 오류(page fault)"가 발생한다. 이 문제에 대한 대표적인 해결책은 메모리 관리와, 프로세서에서 이용 가능한 주 메모리의 양의 더욱 간단한 증가를 위한 더 나은, 더욱 진보된 알고리즘이다.
하드 디스크 페이지 파일로부터 페이지를 공급하는 것은 시스템 성능을 열화시키며, 전력 보호가 중요한 휴대용 장치에서 특히 그러하다. 하드 디스크 드라이브를 갖는 현재의 휴대용 장치는 대부분 종래의 가상 메모리 시스템을 용인하고 있다. 본 명세서의 디스크 드라이브는, 기계적으로 동작되는 자기 스토리지 장치(디스크, 테이프)에 한정되지 않지만, CD, DVD 등을 포함하는 각종 영구 스토리지 장치를 언급하기 위해 사용될 것이다. 휴대용 장치는 시스템의 불필요한 부품에 전류 공급을 차단하여 전력을 보호한다. 장기간 디스크가 비활성화이면, 접속이 해제된 동작을 연장시키고 배터리 전력을 보호하기 위하여 하드 디스크 드라이브의 전력 공급이 차단될 수도 있다. 드라이브의 전력 공급이 차단될 때, 페이지 오류가 발생하면, 전력 소비의 증가와 함께, 이전의 페이지가 드라이브에 "페이징 아웃(paged out)"되는 동안, 또는 새로운 페이지가 드라이브로부터 로딩되는 동안에 현저한 지연이 일어난다. 로딩할 페이지의 탐색시에 상당한 기계적 지연이 있기 때문에, 기계적인 영구 기억 장치는 전력이 공급될 때에도 느리다. 페이지가 빈번하게 페이징되면, 전력을 공급하기 위해, 또는 페이지를 탐색하기 위해, 기계적인 디스크를 대기하는 성능 효과가 더욱 민감하게 느껴진다.
참조를 위해 본 명세서에 포함되는 2002년 9월 30일에 출원된 미국 특허 제 6,438,668호의 "Method and apparatus for reducing power consumption in a digital processing system(디지털 처리 시스템의 전력 소비를 감소시키기 위한 방법 및 장치)"는 디지털 처리 시스템의 전력 소비를 제어하기 위한 방법 및 장치를 논의한 것이다. 상기 발명의 하나의 특징으로는, 예시적인 방법은, DPS(Digital Processing System)의 휘발성 랜덤 액세스 메모리(RAM : Random Access Memory)로서 디지털 처리 시스템의 비휘발성 메모리를 이용하는 단계와, 전력 소비가 감소된 상태의 선택을 판정하는 단계와, 이 선택에 응답하여, 그리고 가상 메모리 프로세스를 통해, 휘발성 RAM으로부터의 데이터를 비휘발성 메모리에 기억하는 단계와, 기억하는 단계 이후에 데이터 처리 시스템의 적어도 하나의 구성요소에 대한 전력을 감소시키는 단계를 포함하며, 상기 기억하는 단계는, 상기 선택 이후에 비휘발성 메모리에서 가상 메모리로서 이전에 기억된 첫 번째 데이터가 유효한지(오염되지 않았는지)를 판정함으로써, 비휘발성 메모리에 데이터를 기억할지를 판정하는 단계를 포함한다.
참조를 위해 본 명세서에 포함되는 1994년 12월 14일에 출원된 미국 특허 제5,778,443호의 "Method and apparatus for conserving power and system resources in a computer system employing a virtual memory(가상 메모리를 채용한 컴퓨터 시스템의 전력 및 시스템 자원을 보호하기 위한 방법 및 장치)"는 휘발성 랜덤 액세스 메모리("RAM") 및 비휘발성 보조 기억 장치를 갖는 컴퓨터 시스템과, 가상 메모리의 일부 페이지가 RAM에 상주하고 다른 페이지는 보조 기억 장치의 페이징 공간에 상주하는 가상 메모리 동작 시스템을 개시한 것이다. 시간에 따라 변동하는 컴퓨터의 동작 상태는 참조를 위해 메모리의 내용으로 한정될 수 있다. 보조 기억 장치의 공간("하이버네이션 공간(hibernation space")은 하이버네이션 이미지로서 RAM의 일부를 기억하기 위해 할당된다. RAM-상주 가상 메모리 페이지의 제1 그룹은 페이징 공간에 기억된다. RAM-상주 가상 메모리 페이지의 제2 그룹은 하이버네이션 공간에 기억된다. 특정한 동작 상태에서 컴퓨터 시스템의 전원 공급이 차단될 경우에 하이버네이션 상태에 돌입한다. 컴퓨터 시스템은 특정한 동작 상태의 동작으로 복귀하며, 이것은 컴퓨터 시스템에 전원을 공급하는 것과, 제2 그룹의 페이지를 RAM에 판독하는 것을 포함한다.
참조를 위해 본 명세서에 포함되는 1996년 6월 12일에 출원된 미국 특허 제5,732,238호의 "Non-volatile cache for providing data integrity in operation with a volatile demand paging cache in a data storage system(데이터 기억 시스템에서 휘발성 요구 페이징 캐시와의 동작시에 데이터 무결성을 제공하기 위한 비휘발성 캐시)"는 호스트 컴퓨터로부터의 기록 어드레스 및 데이터를 대용량 기억 장치 및 휘발성 캐시에 안내하기 위해 접속된 버스에 접속된 비휘발성 캐시 메커니즘을 개시한 것이며, 각각의 기록 동작은 기록 어드레스 및 적어도 하나의 데이터 워드를 포함한다. 비휘발성 캐시 메커니즘은 데이터 워드를 기억하기 위해 중첩하는 판독/기록 사이클을 갖는 복수의 서브-메모리로 구성된 비휘발성 메모리와, 기록 동작에 응답하여, 휘발성 캐시로의 데이터 워드의 수신과 함께, 비휘발성 메모리로 데이터 워드를 기록하기 위한 캐시 제어와, 비휘발성 메모리의 데이터 워드에 대응하는 기억 어드레스를 갖는 버스 상의 기록 동작의 기록 어드레스에 관한 인덱 스 엔트리를 기억하기 위한 캐시 인덱스를 포함한다. 캐시 제어는, 기록 동작에 응답하여, 인덱스 엔트리를 판독하여 비휘발성 메모리에서 적어도 하나의 이용 가능한 기억 어드레스를 식별 및 선택하고, 현재의 기록 동작의 기록 어드레스와, 비휘발성 메모리에서 선택된 기억 어드레스에 관한 적어도 하나의 인덱스 엔트리를 발생하며, 데이터 워드를 비휘발성 메모리에 기록한다. 캐시 제어는, 휘발성 캐시에 대한 플러쉬(flush) 어드레스에 응답하여, 캐시 인덱스를 인덱싱하여 플러쉬 어드레스에 대응하는 캐시 엔트리를 식별하고, 대응하는 캐시 엔트리를 무효화한다.
참조를 위해 본 명세서에 포함되는 1992년 11월 9일에 출원된 미국 특허 제5,390,334호의 "Workstation power management by page placement control(페이지 배치 제어에 의한 워크스테이션 전력 관리)"는 컴퓨터 메모리를 관리하기 위한 전력 보호 방법 및 장치를 개시한 것이다. 제1 메모리 뱅크는 일반적인 RAM을 포함한다. 제2 메모리 뱅크는 저전력 RAM을 포함한다. 더욱 빈번하게 사용되는 가상 페이지는 제1 메모리 뱅크에 매핑(mapping)되는 반면, 덜 빈번하게 사용되는 가상 페이지는 제2 메모리 뱅크에 매핑된다. 제2 메모리 뱅크가 참조되고 있지 않을 경우, 제2 메모리 뱅크를 위한 메모리 제어기의 구동 회로로부터 전력을 제거함으로써, 추가적인 전력 절감이 달성된다.
특히, 휴대용 장치에서는, 영구적인 기억 장치와 시스템의 주 메모리 사이의 전통적인 데이터의 페이징으로 인한 성능 열화가 컴퓨터 시스템의 실용성에 악영향을 미친다. 따라서, 페이징 성능을 개선시키기 위한 방법이 필요하다.
본 발명에 따르면, 주 메모리에서 축출(evict)된 페이지를 유지하기 위한 기억 장치로서, 비휘발성 랜덤 액세스 메모리(NVRAM : Non-Volatile Random Access Memory)에 의해 지원되는 페이지 파일을 이용하는 추가적인 단계가 가상 메모리 시스템에서 제공된다. NVRAM에 의해 지원되는 페이지 파일은 디렉토리와 페이지 기억 영역을 포함하는 단순한 포맷으로 구성된다. 디렉토리는 NVRAM의 페이지 기억 영역에서 페이지가 기억되는 장소를 기록하기 위해 사용된다. NVRAM 페이지 파일에서 페이지를 액세스하거나 기억하기 이전에, 요구된 페이지의 위치를 찾거나 페이지를 기억할 이용 가능한 공간의 위치를 찾기 위해서는, 디렉토리를 참조해야 한다. 주 메모리로부터 페이지를 스왑(swap)해야 할 경우, 하드 디스크 드라이브와 같은 영구 기억 장치에 위치된 페이지 파일보다 더 빠른 NVRAM 페이지 파일에 배치된다. NVRAM 페이지 파일이 가득 차 있으면, 주 메모리로부터 최근에 옮겨진 페이지를 위하여, NVRAM 페이지 파일로부터 하드 디스크에 의해 지원되는 페이지 파일로 페이지가 밀려난다. 주 메모리에 페이지가 존재하지 않으면, 시스템은 우선, NVRAM 페이지 파일에서 탐색한 다음, 하드 디스크 페이지 파일에서 탐색한다. 특히, 전력 보호가 중요한 휴대용 장치에서는, NVRAM으로부터 페이지를 공급하는 것이 하드 디스크 페이지 파일로부터 페이지를 공급하는 것보다 더 빠르며 전력을 더 적게 필요로 한다. 하드 디스크 드라이브를 갖는 현재의 휴대용 장치는 대부분 종래의 가상 메모리 시스템을 용인하고 있다. 휴대용 장치는 시스템의 불필요한 부품에 전류 공급을 차단하여 전력을 보호한다. 장기간 디스크가 비활성화이면, 접속이 해제된 동 작을 연장시키기 위하여, 하드 디스크 드라이브의 전력 공급이 차단될 수도 있다. 드라이브의 전력 공급이 차단될 때, 하드 디스크에 의해 지원되는 페이지 파일에 위치한 페이지가 필요하면, 전력 소비의 증가와 함께, 드라이브로부터 페이지가 로딩되는 동안 현저한 지연이 발생한다. 가상 메모리에 대한 NVRAM 방법은 휴대용 장치의 긴 접속 해제 동작과 그 반응성에 매우 유익하다.
그러므로, 본 발명의 목적은 컴퓨터 시스템의 주 기억 장치로부터 제1 데이터 페이지가 축출되어야 하는지를 판정하고, 주 기억 장치로부터 제1 데이터 페이지를 축출할 경우, 축출된 제1 페이지를 제1 페이징 기억 장치에 기억하고, 제1 페이징 기억 장치로부터 제2 데이터 페이지를 축출할 경우, 축출된 제2 페이지를 제2 기억 장치에 기억하며, 주 기억 장치가 이 주 기억 장치에 존재하지 않는 제3 데이터 페이지를 요구하며 제3 데이터 페이지가 제1 페이징 기억 장치에서 이용할 수 있는 경우, 제1 페이징 기억 장치로부터 주 기억 장치로 제3 데이터 페이지를 로딩하며, 주 기억 장치가 이 주 기억 장치에 존재하지 않는 제3 데이터 페이지를 요구하며 제3 데이터 페이지가 제1 페이징 기억 장치에서 이용할 수 없는 경우, 제2 기억 장치로부터 주 기억 장치로 제3 데이터 페이지를 로딩하는 것이다.
본 발명의 또 다른 목적은 비휘발성 랜덤 액세스 메모리(NVRAM), 휘발성 랜덤 액세스 메모리 또는 영구 기억 장치 중 어느 하나로 구성된 제1 페이징 기억 장치 또는 제2 기억 장치의 어느 하나를 제공하는 것이며, 영구 기억 장치는 하드 디스크, CD, DVD 또는 자기 테이프 중 어느 하나를 포함한다.
본 발명의 또 다른 목적은 제1 페이징 기억 장치를 비휘발성 랜덤 액세스 메 모리(NVRAM)로서 제공하고 제2 기억 장치를 영구 기억 장치로서 제공하는 것이며, 영구 기억 장치는 하드 디스크, CD, DVD, 또는 자기 테이프 중 어느 하나를 포함하는 기계적으로 작동되는 기억 장치이다.
본 발명의 또 다른 목적은 제1 페이징 기억 장치의 제2 데이터 페이지가 제1 페이징 기억 장치로부터 축출되어야 하는 것으로 판정될 경우, 주 기억 장치로부터 축출되는 제1 데이터 페이지를 위하여, 제1 페이징 기억 장치에 공간을 만드는 것이다.
본 발명의 또 다른 목적은 주 기억 장치로부터 제4 데이터 페이지를 축출할 경우, 제4 데이터 페이지가 제2 기억 장치로 축출되어야 하는 것으로 판정한 다음, 제4 데이터 페이지를 제2 기억 장치에 기억하는 것이다.
본 발명의 또 다른 목적은 제1 데이터 페이지가 컴퓨터 시스템의 주 기억 장치로부터 축출되어야 하는 것으로 판정한 후, 축출된 제1 데이터 페이지를 폐기하도록 판정하거나, 축출된 제1 데이터 페이지를 제1 페이징 기억 장치에 기억하도록 판정하거나, 축출된 제1 데이터 페이지를 제2 기억 장치에 기억하도록 판정하는 것이다.
본 발명의 또 다른 목적은 제1 데이터 페이지가 컴퓨터 시스템의 주 기억 장치로부터 축출되어야 하는 것으로 판정될 경우, 축출된 제2 데이터 페이지를 폐기하도록 판정하거나, 축출된 제2 데이터 페이지를 제2 기억 장치에 기억하도록 판정하는 것이다.
본 발명의 또 다른 목적은 제1 데이터 페이지가 컴퓨터 시스템의 주 기억 장 치로부터 축출되어야 하는 것으로 판정될 경우, 제1 페이지가 제2 기억 장치로부터 로딩되었으므로 상기 제1 페이지가 수정되었는지를 판정하고, 제1 페이지가 수정된 것으로 판정될 경우, 축출된 제2 데이터 페이지를 폐기하도록 판정하고, 제1 페이지가 수정되지 않은 것으로 판정될 경우, 축출된 제2 데이터 페이지를 제2 기억 장치에 기억하도록 판정하는 것이다.
본 발명의 또 다른 목적은 제1 데이터 페이지가 컴퓨터 시스템의 주 기억 장치로부터 축출되어야 하는 것으로 판정될 경우, 엘알유(LRU : Least Recently Used) 알고리즘, 피포(FIFO : First In First Out) 알고리즘 또는 해싱(hashing) 알고리즘 중 어느 하나에 따라 제1 페이징 기억 장치로부터 제2 페이지를 축출하도록 판정하는 것이다.
본 발명의 또 다른 목적은 제1 페이징 기억 장치는 NVRAM이고, 파워-다운 이벤트(power-down event)가 검출될 경우 주 기억 장치로부터 NVRAM 제1 페이징 기억 장치로 복수의 데이터 페이지를 축출하여 전력 차단을 진행하는 것이다.
본 발명의 또 다른 목적은, 파워-업 이벤트가 검출될 경우, NVRAM 제1 페이징 기억 장치로부터 주 기억 장치로 복수의 데이터 페이지를 로딩하고, 복수의 데이터 페이지가 로딩되었을 경우, 파워-업 이벤트를 완료하는 것이다.
추가적인 특징 및 장점은 본 발명의 기술을 통해 실현된다. 발명의 다른 실시예 및 특징은 여기서 상세하게 논의하며, 청구된 발명의 일부로서 간주한다. 장점 및 특징들을 갖는 본 발명을 더욱 잘 이해하기 위해서는, 상세한 설명 및 도면을 참조해야 한다.
본 발명으로서 간주되는 요지는 명세서의 결론 부분의 청구범위에서 구체적으로 지적되고 분명하게 청구되어 있다. 본 발명의 전술한 다른 목적, 특징 및 장점은 첨부한 도면을 참조하여 행해지는 아래의 상세한 설명으로부터 명백하다.
상세한 설명은 도면을 참조한 예에 의하여, 그 장점 및 특징과 함께, 본 발명의 바람직한 실시예를 기술한 것이다.
(실시예)
도 1은 본 발명이 실시될 수 있는 대표적인 워크스테이션 또는 서버 하드웨어 시스템을 예시한 것이다. 도 1의 시스템(100)은 퍼스널 컴퓨터, 워크스테이션 또는 서버와 같이, 광 주변 장치를 포함하는 대표적인 컴퓨터 시스템(101)을 포함한다. 워크스테이션(101)은 하나 이상의 프로세서(106)와, 공지된 기술에 따라 프로세서(106)와 시스템(101)의 다른 구성요소 사이를 접속하여 통신을 가능하게 하도록 채용된 버스를 포함한다. 버스는 프로세서(106)를 메모리(105)와, 예를 들어, 하드 드라이브, 디스켓 드라이브 또는 테이프 드라이브를 포함할 수 있는 대용량 기억 장치(107)에 접속한다. 시스템(101)은 사용자 인터페이스 어댑터를 포함할 수도 있고, 이 사용자 인터페이스 어댑터는 버스를 통해 마이크로프로세서(106)를, 키보드(104), 마우스(103), 프린터/스캐너(110), 및/또는 다른 인터페이스 장치와 같은 하나 이상의 인터페이스 장치에 접속하며, 상기 다른 인터페이스 장치는 터치식 스크린, 디지털화된 엔트리 패드 등과 같은 임의의 사용자 인터페이스 장치일 수 있다. 또한, 버스는 디스플레이 어댑터를 통해, LCD 스크린 또는 모니터와 같은 디스플레이 장치(102)를 마이크로프로세서(106)에 접속한다.
시스템(101)은 네트워크(109)와 통신할 수 있는 네트워크 어댑터에 의하여 다른 컴퓨터 또는 컴퓨터 네트워크와 통신할 수도 있다. 예시할 네트워크 어댑터는 통신 채널, 토큰 링(token ring), 이더넷(Ethernet) 또는 모뎀이다. 이와 달리, 워크스테이션(101)은 CDPD(Cellular digital packet data) 카드와 같은 무선 인터페이스를 이용하여 통신할 수도 있다. 워크스테이션(101)은 근거리 통신망(LAN : Local Area Network) 또는 광역 통신망(WAN : Wide Area Network)의 다른 컴퓨터와 연관되거나, 워크스테이션(101)이 다른 컴퓨터 등과의 클라이언트/서버 배치에 있어서 클라이언트일 수 있다. 이러한 모든 구성뿐만 아니라 적절한 통신 하드웨어 및 소프트웨어도 당업계에서 공지되어 있다.
도 2는 본 발명이 실시될 수도 있는 데이터 프로세싱 네트워크(200)를 예시한 것이다. 데이터 프로세싱 네트워크(200)는 무선 네트워크 및 유선 네트워크와 같은 복수의 개별 네트워크를 포함할 수도 있고, 이들 각각은 복수의 개별 워크스테이션(101)을 포함할 수도 있다. 또한, 당업자가 이해할 수 있는 것과 같이, 하나 이상의 LAN이 포함될 수도 있고, LAN은 호스트 프로세서에 결합된 복수의 지능형 워크스테이션을 포함할 수도 있다.
도 2를 여전히 참조하면, 네트워크는 게이트웨이 컴퓨터[클라이언트 서버(206)] 또는 어플리케이션 서버[데이터 저장소를 액세스할 수 있는 원격 서버(208)]와 같은 메인프레임 컴퓨터 또는 서버를 포함할 수도 있다. 게이트웨이 컴퓨터(206)는 각 네트워크(207)로의 엔트리 포인트로서 작용한다. 하나의 네트워킹 프로토콜을 다른 네트워킹 프로토콜에 접속할 경우에 게이트웨이가 필요하다. 바람 직하게는, 게이트웨이(206)가 통신 링크에 의하여 다른 네트워크[예를 들어, 인터넷(207)]에 결합될 수도 있다. 게이트웨이(206)는 통신 링크를 이용하여 하나 이상의 워크스테이션(101)에 직접 결합될 수도 있다. 게이트웨이 컴퓨터는 IBM사로부터 입수 가능한 IBM eServer zSeries®900 서버를 활용하여 구현될 수도 있다.
본 발명의 소프트웨어 프로그래밍 코드는 상호 접속된 네트워크에 의하여, 또는 CD나 자기 테이프와 같은 휴대용 매체에 의하여 서버 및 클라이언트에 설치되는 것이 바람직하다. 네트워크는 유선(광섬유 케이블을 포함) 또는 무선 네트워크를 포함한다. 서버는 코드를 다른 서버에 설치하거나 클라이언트에게 직접 설치하는 것이 바람직하다.
본 발명을 구현하는 소프트웨어 프로그래밍 코드는 CD-ROM 드라이브 또는 하드 드라이브와 같은 장기 기억 매체(107)로부터 시스템(101)의 프로세서(106)에 의해 대표적으로 액세스된다. 소프트웨어 프로그래밍 코드는 디스켓, 하드 드라이브 또는 CD-ROM과 같은 데이터 프로세싱 시스템에서의 사용을 위한 각종 공지된 매체 중의 임의의 매체 상에서 구현될 수도 있다. 코드는 이러한 매체를 통해 배포되거나, 네트워크 상의 하나의 컴퓨터 시스템의 메모리 또는 기억 장치로부터 다른 컴퓨터 시스템의 사용자가 사용하기 위한 다른 컴퓨터 시스템으로 배포될 수도 있다.
다른 방안으로서, 프로그래밍 코드(111)는 메모리(105)에서 구현되어, 프로세서 버스를 이용하여 프로세서(106)에 의해 액세스될 수도 있다. 이러한 프로그래밍 코드는 각종 컴퓨터 구성요소의 기능 및 상호 작용을 제어하는 오퍼레이팅 시스템과, 하나 이상의 어플리케이션 프로그램을 포함한다. 일반적으로, 프로그램 코드 는 밀집된 기억 매체(107)로부터 프로세서(106)에 의한 프로세싱을 위해 이용 가능한 고속 메모리(105)로 페이징된다. 소프트웨어 프로그래밍 코드를 물리 매체 상에서 메모리에 구현하고, 및/또는 네트워크를 통해 소프트웨어 코드를 배포하기 위한 기술 및 방법은 잘 알려져 있으며, 여기서는 더 논의하지 않는다.
아래의 상세한 설명에서는, 본 발명을 완전하게 이해시키기 위하여, 본 발명의 다수의 특정한 구체적 예에 대해 서술한다. 그러나, 본 발명은 이러한 특정한 구체예가 없이도 실시될 수 있음은 당업자에게 자명할 것이다. 다른 예에서는, 본 발명의 특징을 불필요하게 감추지 않을 정도로, 잘 알려진 방법, 절차, 부품 및 회로를 상세하게 설명하지 않는다.
뒤따르는 상세한 설명의 일부분은 절차, 로직 블록, 프로세싱, 및 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 다른 기호 표시의 관점에서 제시되어 있다. 이들 설명 및 표시는 당해 기술분야의 다른 사람들에게 그 작동의 실체를 가장 효과적으로 전달하기 위하여 당업자에 의해 사용되는 수단들이다. 여기에서의 절차, 로직 블록, 프로세스, 단계 등은 일반적으로 원하는 결과에 도달하는 자체 모순이 없이 단계 또는 명령의 시퀀스로 인식된다. 단계는 물리량의 물리적 처리를 필요로 하는 것이다. 보통, 반드시 그렇지는 않지만, 이들 물리량은 컴퓨터 시스템에서 기억, 전달, 합성, 비교 및 처리될 수 있는 전기 또는 진폭 신호의 형태를 취한다. 때때로, 주로 통상적인 사용을 위하여, 이들 신호를 비트, 값, 요소, 기호, 문자, 기간, 수 등이라 하는 것이 편리한 것으로 입증된다.
그러나, 이들 모두 및 유사한 용어는 적절한 물리량과 연관되어 있으며, 이 들 물리량에 부가된 편리한 표식일 뿐이라는 점을 유의해야 한다. 아래의 논의로부터 명백한 바와 같이, 구체적으로 다르게 기술되지 않으면, 본 발명의 전반에 걸쳐, "프로세싱" 또는 "연산" 또는 "계산" 또는 "판정" 또는 "표시" 등과 같은 용어를 이용한 논의는 컴퓨터 시스템의 레지스터 및 메모리 내에서 물리(전기)량으로 표현된 데이터를, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 정보 기억 장치, 전송 또는 디스플레이 장치 내에서 물리량으로 유사하게 표현된 다른 데이터로 처리 및 변환하는 컴퓨터 시스템 또는 유사한 전기 연산 장치의 작용 및 처리를 칭한다는 점을 이해해야 한다.
도 3a는 본 발명에 따른 페이지 배치 전략의 실시예를 예시한 것이다. 프로세서, 주 메모리, NVRAM 및 영구 기억 장치(디스크 드라이브)를 포함하는 장치는 메모리 체계를 가지고 있다. 프로세서는 프로그램 명령을 실행하고 주 메모리에서 데이터를 처리한다. 프로세서 오퍼레이팅 시스템(OS)은 가상 어드레스를 관리하고, 주 메모리와, NVRAM 및 영구 기억 장치 사이에서 가상 메모리의 페이지의 페이징을 용이하게 한다. 바람직하게는, 주 메모리로부터 축출된 페이지는 NVRAM으로 페이징된다. 장치가 동작하는 동안, 축출된 페이지의 흐름은 축출 처리(305)에 의하여 주 메모리(301)로부터 비휘발성 메모리(302)까지이며, 다음으로, 바람직하게는, 축출 처리(306)에 의하여 비휘발성 메모리로부터 하드 디스크(303)까지이다. 누락된 페이지가 비휘발성 메모리(302)에 위치되어 있으면, 페이지는 비휘발성 메모리(302)로부터 주 메모리(301)로 반환된다(308). 누락된 페이지가 휘발성 메모리에는 없지만, 하드 디스크(303)에 위치되어 있으면, 그 페이지는 하드 디스크(303)로부터 직 접 주 메모리(301)로 반환된다(307).
도 3b는 페이지(311)를 주 메모리(301)로부터 직접 하드 디스크(303)로 축출하기 위한 광 경로를 제공한 것이다. 실시예에서, 어드레스 변환 메커니즘(312)은 키(K) 필드(315) 및 주 기억 장치(301)의 가상 메모리 페이지(상주한다면)의 어드레스를 포함하는 엔트리(314)를 보유한 페이지 디렉토리(313)를 액세스한다. K 필드는 수정 필드 M 및 유효 필드 V를 포함한다. 유효 필드는 엔트리(314)가 메모리(301)에 상주하는 페이지(311)를 가리키고 있는지 아닌지를 나타낸다. M 필드는 메모리(301)의 페이지(311)가 메모리에 상주하는 동안 수정되었는지를 나타낸다.
페이지 테이블(316)은 페이지의 위치에 대한 정보를 포함한다. 페이지 테이블(316)의 엔트리(317)는 페이지가 주 기억 장치에 있는지를 나타내는 "S" 필드, 페이지가 NVRAM에 있는지를 나타내는 "N" 필드, 및 페이지가 하드 디스크 상에 있는지를 나타내는 "D" 필드를 포함하는 것이 바람직하다. 실시예에서, 각 필드("S", "N", "D")는 연관된 기억 장치의 페이지가 수정되었는지에 대한 지시자를 부가적으로 포함하며, 선택적으로, 그 페이지가 수정되었는지를 나타내는 하나의 수정된 지시자 "M"이 존재한다. 바람직하게는, 엔트리(317)는 이 엔트리(317)의 내용이 유효한지를 나타내는 유효 비트 "V"를 포함한다. 바람직하게는, 페이지 테이블(316)은 페이지를 NVRAM에 위치시키기 위한 어드레스의 디렉토리를 포함하고, 페이지 테이블(316) 자체는 NVRAM(305)에 상주하는 것이 바람직하다. 엔트리(317)는 대응하는 페이지를 NVRAM에 위치시키기 위한 가상 어드레스 "VA" 및 실제 어드레스 "RA"를 제공하는 것이 바람직하다.
도 4는 컴퓨터 시스템의 구성요소간의 물리적 접속의 측면에서의 페이지 배치 전략을 예시한 것이다. 프로세서가 동작할 때, 주 메모리에서 동작하기에 충분한 데이터를 가질 때까지, 데이터는 주 메모리(405)에 기억된 페이지에 로딩된다. 약간의 시간 후에, 주 메모리에 존재하지 않는 새로운 페이지가 요구된다. 주 메모리(405)의 페이지는 축출을 위해 선택되고, 메모리 제어기(402)로의 종래의 페이지 축출 경로(408)와, 부가적인 축출 경로(409)에 따라 비휘발성 메모리 뱅크(406)에 보내진다. 비휘발성 메모리 뱅크(406)가 가득 차 있으면, 페이지는 비휘발성 메모리(406)로부터 하드 디스크(404)로의 축출을 위해 선택되며, 축출 경로(409)를 통해 디스크 제어기(403)에 보내지며, 하드 디스크(404)에 기억된다. 축출된 페이지는 비휘발성 메모리에서 비워진 위치에 기억된다. 하드 디스크(404)로부터 페이지를 반환하는 것은 페이지를 하드 디스크 제어기(403), 메모리 제어기(402), 그리고 최종적으로 주 메모리(405)로 수송하는 것이다. 페이지를 비휘발성 메모리 뱅크(406)로부터 반환하는 것은 페이지(409)를 메모리 제어기(402), 최종적으로 주 메모리(405)로 수송하는 것이다.
도 5는 전체적인 페이지 배치 전략을 예시한 것이다. 시작(500) 및 종료(507) 단계는 편의 항목이며 본 발명의 물리적 구성요소에 관한 것이 아니다. 페이지가 어디에 위치되어 있는지를 판정하기 위하여 페이지 테이블을 액세스함으로써(501), 페이지 프로세스가 시작된다. 다음으로, 시스템은 페이지가 주 메모리에 있는지를 판정한다(501). "예"이면, 프로세서는 페이지의 물리적 메모리 어드레스를 생성하고(503), 그 프로세스는 종료된다(507). "아니오"이면, 시스템은 페이지 가 비휘발성 메모리(VNRAM)에 있는지 아닌지를 판정한다(504). "예"이면, 페이지는 NVRAM으로부터 판독되어, 도 6에 예시된 프로세스를 이용하여 주 메모리에 배치된다(505). 그 다음, 페이지 테이블이 다시 판독되고(501), 시스템은 페이지가 주 메모리에 있는지를 판정한다(502). 이때, 페이지는 주 메모리에서 페이지를 발견하도록 보장되므로, 프로세서는 페이지의 물리 어드레스를 생성하고(503), 프로세스가 종료된다(507). "아니오"이면, 페이지는 하드 디스크 드라이브로부터 판독되고 주 메모리에 배치된다(506). 다음으로, 페이지 테이블이 다시 판독되고(501). 시스템은 페이지가 메모리에 있는지를 판정한다. 이때, 페이지는 주 메모리에서 페이지를 발견하도록 보장되므로, 프로세서는 페이지의 물리 어드레스를 생성하고(503), 프로세스가 종료된다(507).
도 6은 비휘발성 메모리(NVRAM)로부터 주 메모리로 페이지를 판독하기 위해 행해지는 단계를 예시한 것이다. 시작(600) 및 종료(608) 단계는 편의 항목이며, 본 발명의 물리적 구성요소에 관한 것이 아니다. 페이지 배치 프로세스는, 오퍼레이팅 시스템이 NVRAM에게 요구된 페이지를 페이지 파일로부터 판독할 것을 지시(601)할 경우에 시작된다. 다음으로, 시스템에 의한 사용을 위해 페이지가 주 메모리에 배치되기 이전에, 페이지는 NVRAM으로부터 주 메모리의 임시 위치로 판독된다(602). 다음으로, 오퍼레이팅 시스템은 주 메모리가 가득 차 있는지 아닌지를 판정한다(603). "아니오"이면, 새롭게 판독된 페이지가 주 메모리의 임시 메모리 위치로부터 영구적인 위치로 전달되고(604), 프로세스는 종료된다(608). "예"이면, 오퍼레이팅 시스템은 NVRAM이 가득 차 있는지 아닌지를 판정한다(605). "아니오"이 면, 페이지가 소정의 기준(FIFO, LRU 등)을 이용하여 주 메모리로부터 선택되고, NVRAM으로 복사된다(606). 다음으로, 단계 601에서 NVRAM으로부터 판독된 페이지는 주 메모리의 임시 위치로부터 영구적인 위치로 전달되고(604), 프로세스가 종료된다(608). "예"이면, 페이지는 소정의 기준을 이용하여 NVRAM으로부터 선택되고, 하드 디스크로 복사된다(607). 다음으로, 페이지는 소정의 기준을 이용하여 주 메모리로부터 선택되고, NVRAM으로 복사된다(606). 마지막으로, 단계 601에서 NVRAM으로부터 판독된 페이지는 주 메모리의 임시 위치에서 영구적인 위치로 전달되고(604), 프로세스는 종료된다(608).
도 7은 하드 디스크 드라이브로부터 주 메모리로 페이지를 판독하기 위해 행해지는 단계를 예시한 것이다. 시작(700) 및 종료(708) 단계는 편의 항목이며, 본 발명의 물리적 구성요소에 관한 것이 아니다. 페이지 배치 프로세스는 오퍼레이팅 시스템이 하드 디스크에게 요구된 페이지를 페이지 파일로부터 판독할 것을 지시(701)할 경우에 시작된다. 다음으로, 시스템에 의한 사용을 위해 페이지가 주 메모리에 배치되기 이전에, 페이지는 하드 디스크로부터 주 메모리의 임시 위치로 판독된다(702). 다음으로, 오퍼레이팅 시스템은 주 메모리가 가득 차 있는지 아닌지를 판정한다(703). "아니오"이면, 새롭게 판독된 페이지는 주 메모리의 임시 메모리 위치에서 영구적인 위치로 전달되고(704), 프로세스는 종료된다(708). "예"이면, 오퍼레이팅 시스템은 NVRAM이 가득 차 있는지 아닌지를 판정한다(705). "아니오"이면, 소정의 기준을 이용하여 페이지가 주 메모리로부터 선택되고, 비휘발성 메모리(NVRAM)에 복사된다(706). 다음으로, 단계 701에서 하드 디스크로부터 판독 된 페이지는 주 메모리의 임시 위치로부터 영구적인 위치로 전달되고(704), 프로세스는 종료된다(708). "예"이면, 소정의 기준을 이용하여 페이지가 NVRAM으로부터 선택되고, 하드 디스크에 복사된다(707). 다음으로, 소정의 기준을 이용하여 페이지가 주 메모리로부터 선택되고, NVRAM에 복사된다(706). 최종적으로, 단계 701에서 하드 디스크로부터 판독된 페이지는 주 메모리의 임시 위치로부터 영구적인 위치로 전달되고(704), 프로세스는 종료된다(708).
가상 메모리 시스템에 일반적인 중요한 최적화는 주 메모리와 페이지 파일 사이의 페이지의 전달 도중에 행해진다. 페이지가 "수정"이라고 표시되지 않았으면, 주 메모리로부터 페이지 파일로의 이동을 반영하기 위하여, 페이지의 물리적 위치를 추종하는 디렉토리만 업데이트 되어야 한다. 본 발명과 관련하여, 주 메모리로부터 NVRAM으로, 또는 NVRAM으로부터 하드 디스크로 페이지가 축출될 경우, 수정에 대해 먼저 검사된다. 페이지가 수정되지 않았고, NVRAM 페이지 파일 또는 하드 디스크 페이지 파일에 이전에 기억되어 있었으면, 페이지의 위치는 페이지 테이블에서 업데이트 되어야 한다. 페이지가 정말로 수정되었으면, 페이지는 목적지 페이지 파일 NVRAM 또는 하드 디스크뿐만 아니라, 업데이트 할 페이지 테이블의 위치에도 복사되어야 한다. 미국 특허 제5,778,443호의 "Method and apparatus for conserving power and system resources in a computer system employing a virtual memory(가상 메모리를 채용한 컴퓨터 시스템의 전력 및 시스템 자원을 보호하기 위한 방법 및 장치)"는 당해 기술분야에서 잘 알려진 수정된 페이지를 취급하기 위한 예시적인 방법을 논의하고 있다.
본 발명은 시스템이 데이터를 주 메모리에 그리고 주 메모리로부터 페이징해야 할 경우의 성능 향상과 함께, 다른 이점을 가진다. 우선, 휴대용 장치에서는, 장치의 주 메모리의 전체 용량을 증가시키는 것이 항상 가능하지는 않다. 주 메모리의 용량을 증가시키는 것은 장치를 동작시키기 위해 필요한 전력의 양도 증가시키며, 이것은 배터리 전력이 켜진 동안의 예상 사용시간을 감소시킨다. 비휘발성 메모리는 판독 또는 기록 동작시에 액세스될 때에만 전력을 사용한다. 추가적인 전력으로 인한 또 다른 결과는, 장치를 통해 메모리 칩으로부터 더 많은 열이 발산되어야 한다는 것이며, 이것은 원래의 형태 요인에 의해 포장하는 것을 비실용적 또는 불가능하게 한다는 것이다. 밀집되게 포장한 블레이드 컴퓨터 시스템은 본 발명으로부터 도움이 될 수도 있다. 블레이드 컴퓨터 시스템에서는, 전력 및 열 발산도 중요한 고려 사항이다. 휴대용 장치에서와 같이, 추가적인 주 메모리는 연속적인 전력을 필요로 하고, 더 적은 주 메모리를 갖는 시스템에 비해 더 많은 열을 발산한다. 페이징을 위해 비휘발성 메모리 뱅크를 추가하는 것은 이 형태의 시스템이 열 및 전력에 의해 제한을 받지 않고도 성능 향상을 실현할 수 있도록 한다.
또 다른 이점은, 비휘발성 메모리를 갖는 블레이드 컴퓨터 시스템은 최근에 사용된 데이터가 그것을 필요로 하는 곳에서 더 가까이에 보존될 수 있도록 한다는 것이다. 종종, 블레이드 컴퓨터 시스템에서는, 하드 디스크가 데이터 버스 또는 네트워크 접속의 어느 하나와 같은 공유 매체를 중간에 두고 위치되어 있다. 블레이드 컴퓨터 시스템이 폐기된 페이지를 기억하기 위한 하드 디스크를 너무 빈번하게 사용한다면, 전체 시스템은 공유 매체의 과도한 사용으로 인한 어려움을 겪게 될 것이다. 마지막으로, 주 메모리는 매우 빨라야 하므로, 일반적으로, 주 메모리는 비휘발성 메모리보다 값이 더 비싸다. 페이징은 본래 느린 동작이므로, 더 느리고 값이 싼 비휘발성 메모리를 사용하는 것은 더 많은 주 메모리를 추가하는 것이나, 더 느린 하드 디스크 페이징 메커니즘을 사용하는 것 중의 어느 하나 보다도 유리하다.
최적의 구현예에서는, NVRAM이 접속 가능한 상태이며, 임의의 휴대용 매체로서 제공될 수 있다.
여기에서 도시된 순서도는 단지 예시이다. 본 발명의 취지를 벗어나지 않고도, 여기에서 설명된 이들 도면 또는 단계(또는 동작)에 대해 많은 변형이 있을 수도 있다. 예를 들어, 차별화된 순서에 따라 단계가 수행되거나, 단계가 추가되거나, 삭제되거나, 수정될 수도 있다. 이러한 모든 변형은 청구된 발명의 일부로서 간주된다.
본 발명의 바람직한 실시예가 이상과 같이 예시 및 설명되었지만, 본 발명은 여기서 개시한 정확한 구성에 한정되지 않으며, 후술하는 청구범위에서 정의된 발명의 범위 내의 모든 변화 및 변형에 대해 권리가 "보유"되고 있음을 이해해야 한다.
이상과 같이 설명된 본 발명에 따르면, 특히 휴대용 장치에서 영구적인 기억 장치와 시스템의 주 메모리 사이의 종래의 데이터의 페이징으로 인한 성능 열화를 개선할 수 있다.

Claims (36)

  1. 컴퓨터 시스템의 주 기억 장치로부터 제1 데이터 페이지가 축출되어야 하는지를 판정하는 단계와;
    주 기억 장치로부터 제1 데이터 페이지를 축출할 경우, 축출된 제1 페이지를 제1 페이징 기억 장치에 기억하는 단계와;
    제1 페이징 기억 장치로부터 제2 데이터 페이지를 축출할 경우, 축출된 제2 페이지를 제2 기억 장치에 기억하는 단계와;
    주 기억 장치가 이 주 기억 장치에 존재하지 않는 제3 데이터 페이지를 요구하고, 제3 데이터 페이지가 제1 페이징 기억 장치에서 이용할 수 있는 경우, 제1 페이징 기억 장치로부터 주 기억 장치로 제3 데이터 페이지를 로딩하는 단계와;
    주 기억 장치가 이 주 기억 장치에 존재하지 않는 제3 데이터 페이지를 요구하고, 제3 데이터 페이지가 제1 페이징 기억 장치에서 이용할 수 없는 경우, 제2 기억 장치로부터 주 기억 장치로 제3 데이터 페이지를 로딩하는 단계를 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  2. 청구항 2은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 제1 페이징 기억 장치 또는 제2 기억 장치 중 어느 하나는 비휘발성 랜덤 액세스 메모리(NVRAM), 휘발성 랜덤 액세스 메모리 또는 영구 기억 장치 중 어느 하나로 구성된 기억 장치이고, 상기 영구 기억 장치는 하드 디스크, CD, DVD 또 는 자기 테이프 중 어느 하나를 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 제1 페이징 기억 장치는 비휘발성 랜덤 액세스 메모리(NVRAM)이고, 상기 제2 기억 장치는 영구 기억 장치이며, 상기 영구 기억 장치는 하드 디스크, CD, DVD, 또는 자기 테이프 중 어느 하나를 포함하는 기계적으로 작동되는 기억 장치인, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  4. 제1항에 있어서,
    상기 제1 페이징 기억 장치의 제2 데이터 페이지가 상기 제1 페이징 기억 장치로부터 축출되어야 하는 것으로 판정하여, 주 기억 장치로부터 축출되는 제1 데이터 페이지를 위해, 상기 제1 페이징 기억 장치에 공간을 만드는 단계를 더 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  5. 제1항에 있어서,
    상기 주 기억 장치로부터 제4 데이터 페이지를 축출할 경우, 상기 제4 데이터 페이지가 상기 제2 기억 장치로 축출되어야 하는 것으로 판정하는 단계와;
    상기 제4 데이터 페이지를 상기 제2 기억 장치에 기억하는 단계를 더 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  6. 제1항에 있어서,
    상기 판정 단계는,
    상기 축출된 제1 데이터 페이지를 폐기하도록 판정하는 단계와;
    상기 축출된 제1 데이터 페이지를 제1 페이징 기억 장치에 기억하도록 판정하는 단계와;
    상기 축출된 제1 데이터 페이지를 제2 기억 장치에 기억하도록 판정하는 단계로 구성되는 추가적인 단계들 중 어느 하나를 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  7. 제1항에 있어서,
    상기 판정 단계는,
    상기 축출된 제2 데이터 페이지를 폐기하도록 판정하는 단계와;
    상기 축출된 제2 데이터 페이지를 제2 기억 장치에 기억하도록 판정하는 단계로 구성되는 추가적인 단계들 중 어느 하나를 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  8. 제1항에 있어서,
    상기 판정 단계는,
    상기 제1 페이지가 제2 기억 장치로부터 로딩되었으므로 상기 제1 페이지가 수정되었는지를 판정하는 단계와;
    상기 제1 페이지가 수정된 것으로 판정될 경우, 상기 축출된 제2 데이터 페이지를 폐기하도록 판정하는 단계와;
    상기 제1 페이지가 수정되지 않은 것으로 판정될 경우, 상기 축출된 제2 데이터 페이지를 제2 기억 장치에 기억하도록 판정하는 단계로 구성되는 추가적인 단계들 중 어느 하나를 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  9. 제1항에 있어서,
    상기 판정 단계는, 엘알유(LRU: Least Recently Used) 알고리즘, 피포(FIFO: First In First Out) 알고리즘 또는 해싱 알고리즘 중 어느 하나에 따라 상기 제1 페이징 기억 장치로부터 상기 제2 페이지를 축출하도록 판정하는 단계를 더 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  10. 제1항에 있어서,
    상기 제1 페이징 기억 장치는 NVRAM이고,
    파워-다운 이벤트가 검출될 경우, 상기 주 기억 장치로부터 NVRAM 제1 페이징 기억 장치로 복수의 데이터 페이지를 축출하는 단계와;
    상기 복수의 데이터 페이지가 축출되었을 경우, 파워-다운 이벤트를 완료하는 단계를 더 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    파워-업 이벤트가 검출될 경우, 상기 NVRAM 제1 페이징 기억 장치로부터 상기 주 기억 장치로 복수의 데이터 페이지를 로딩하는 단계와;
    상기 복수의 데이터 페이지가 로딩되었을 경우, 상기 파워-업 이벤트를 완료하는 단계를 더 포함하는, 데이터를 페이징하기 위한 컴퓨터 실행 방법.
  12. 청구항 제1항 내지 제11항 중 어느 하나의 청구항에 기재된 방법의 각 단계들을 컴퓨터에서 구현 가능하게 하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 주 기억 장치와;
    제1 페이징 기억 장치와;
    제2 기억 장치와;
    상기 주 기억 장치, 상기 제1 페이징 기억 장치 및 상기 제2 기억 장치와 통신하는 프로세서
    를 포함하는 데이터를 페이징하기 위한 시스템으로서,
    청구항 제1항 내지 제11항 중 어느 하나의 청구항에 기재된 방법의 각 단계들을 실행하기 위한 명령을 포함하는 데이터 페이징 시스템.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020060104845A 2005-11-07 2006-10-27 다단 가상 메모리 페이징 시스템 KR100810013B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/268,075 2005-11-07
US11/268,075 US7543123B2 (en) 2005-11-07 2005-11-07 Multistage virtual memory paging system

Publications (2)

Publication Number Publication Date
KR20070049062A KR20070049062A (ko) 2007-05-10
KR100810013B1 true KR100810013B1 (ko) 2008-03-10

Family

ID=38005154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060104845A KR100810013B1 (ko) 2005-11-07 2006-10-27 다단 가상 메모리 페이징 시스템

Country Status (4)

Country Link
US (2) US7543123B2 (ko)
KR (1) KR100810013B1 (ko)
CN (1) CN100412824C (ko)
TW (1) TW200741455A (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543123B2 (en) * 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
WO2009048707A1 (en) * 2007-10-12 2009-04-16 Rambus Inc. Managing flash memory in computer systems
US7962684B2 (en) * 2008-02-14 2011-06-14 Sandisk Corporation Overlay management in a flash memory storage device
US7979638B2 (en) * 2008-04-01 2011-07-12 Oracle America, Inc. Method and system for accessing data using an asymmetric cache device
US8825700B2 (en) * 2008-05-26 2014-09-02 Microsoft Corporation Paging hierarchical data
GB2460464A (en) * 2008-05-30 2009-12-02 Symbian Software Ltd Memory paging control method using two cache parts, each maintained using a FIFO algorithm
US8171206B2 (en) * 2008-07-22 2012-05-01 Sandisk Technologies Inc. Avoidance of self eviction caused by dynamic memory allocation in a flash memory storage device
US8499174B2 (en) * 2008-09-08 2013-07-30 Via Technologies, Inc. Method and controller for power management
US8504850B2 (en) * 2008-09-08 2013-08-06 Via Technologies, Inc. Method and controller for power management
US8966181B2 (en) * 2008-12-11 2015-02-24 Seagate Technology Llc Memory hierarchy with non-volatile filter and victim caches
WO2010106692A1 (en) * 2009-03-17 2010-09-23 Hitachi, Ltd. Storage system and its controlling method
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 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
US8788739B2 (en) * 2009-06-29 2014-07-22 Hewlett-Packard Development Company, L.P. Hypervisor-based management of local and remote virtual memory pages
US20120102273A1 (en) * 2009-06-29 2012-04-26 Jichuan Chang Memory agent to access memory blade as part of the cache coherency domain
US9208084B2 (en) * 2009-06-29 2015-12-08 Oracle America, Inc. Extended main memory hierarchy having flash memory for page fault handling
US8661189B2 (en) * 2010-08-31 2014-02-25 Apple Inc. Systems and methods for trimming logical block addresses corresponding to a data structure residing in non-volatile memory
US8683169B2 (en) 2011-05-05 2014-03-25 International Business Machines Corporation Selecting an auxiliary storage medium for writing data of real storage pages
US8793444B2 (en) 2011-05-05 2014-07-29 International Business Machines Corporation Managing large page memory pools
US8656133B2 (en) 2011-05-05 2014-02-18 International Business Machines Corporation Managing storage extents and the obtaining of storage blocks within the extents
US8799611B2 (en) 2011-05-05 2014-08-05 International Business Machines Corporation Managing allocation of memory pages
US8868876B2 (en) 2011-12-28 2014-10-21 International Business Machines Corporation Dedicated large page memory pools
CN102567216B (zh) * 2011-12-29 2015-07-29 北京交控科技有限公司 提高闪存寿命的可靠性存储方法
US8949512B2 (en) 2012-02-17 2015-02-03 Apple Inc. Trim token journaling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890005614A (ko) * 1987-09-29 1989-05-16 아오이 죠이치 가상기억 제어 관리 시스템
KR950033840A (ko) * 1994-01-12 1995-12-26 리 패츠 다중 페이지 크기를 지원하는 가상메모리 컴퓨터시스템에 대한 논리적 주소지정가능 실제메모리
KR20010055981A (ko) * 1999-12-13 2001-07-04 오길록 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
KR100365891B1 (ko) 2000-12-13 2002-12-27 한국전자통신연구원 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230508A (ja) * 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
AU1447295A (en) * 1993-12-30 1995-08-01 Connectix Corporation Virtual memory management system and method using data compression
US5778441A (en) 1994-03-01 1998-07-07 Intel Corporation Method and apparatus for accessing split lock variables in a computer system
US5778443A (en) * 1994-12-14 1998-07-07 International Business Machines Corp. Method and apparatus for conserving power and system resources in a computer system employing a virtual memory
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US5732238A (en) * 1996-06-12 1998-03-24 Storage Computer Corporation Non-volatile cache for providing data integrity in operation with a volatile demand paging cache in a data storage system
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6438668B1 (en) * 1999-09-30 2002-08-20 Apple Computer, Inc. Method and apparatus for reducing power consumption in a digital processing system
US6671786B2 (en) 2001-06-07 2003-12-30 Microsoft Corporation System and method for mirroring memory with restricted access to main physical mirrored memory
JP2003345520A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ディスクアレイ・システム及びディスクアレイ・システムにおけるキャッシュ制御方法
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
US20040117587A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corp. Hardware managed virtual-to-physical address translation mechanism
JP4244716B2 (ja) * 2003-06-13 2009-03-25 日本電気株式会社 多重仮想記憶システムの二次記憶管理方式および方法
US7315852B2 (en) 2003-10-31 2008-01-01 International Business Machines Corporation XPath containment for index and materialized view matching
US7130960B1 (en) * 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
US7424577B2 (en) * 2005-08-26 2008-09-09 Network Appliance, Inc. Dynamic optimization of cache memory
US7543123B2 (en) 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890005614A (ko) * 1987-09-29 1989-05-16 아오이 죠이치 가상기억 제어 관리 시스템
KR950033840A (ko) * 1994-01-12 1995-12-26 리 패츠 다중 페이지 크기를 지원하는 가상메모리 컴퓨터시스템에 대한 논리적 주소지정가능 실제메모리
KR20010055981A (ko) * 1999-12-13 2001-07-04 오길록 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
KR100365891B1 (ko) 2000-12-13 2002-12-27 한국전자통신연구원 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법

Also Published As

Publication number Publication date
TW200741455A (en) 2007-11-01
KR20070049062A (ko) 2007-05-10
CN100412824C (zh) 2008-08-20
CN1963790A (zh) 2007-05-16
US20070106853A1 (en) 2007-05-10
US7543123B2 (en) 2009-06-02
US7827364B2 (en) 2010-11-02
US20090150625A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
KR100810013B1 (ko) 다단 가상 메모리 페이징 시스템
US6725342B1 (en) Non-volatile mass storage cache coherency apparatus
US6078992A (en) Dirty line cache
US7698508B2 (en) System and method for reducing unnecessary cache operations
US10417141B2 (en) Method and apparatus for hardware management of multiple memory pools
US9256527B2 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
RU2427892C2 (ru) Способ и устройство для установки политики кэширования в процессоре
JP2018163659A (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
US6782453B2 (en) Storing data in memory
TW576966B (en) Non-volatile cache integrated with mass storage device
CN111858404B (zh) 地址转换的方法和系统、以及计算机可读介质
EP2416251B1 (en) A method of managing computer memory, corresponding computer program product, and data storage device therefor
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US6609177B1 (en) Method and apparatus for extending cache history
JP7160792B2 (ja) キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
JP4727800B2 (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ・サブシステム
US20110167214A1 (en) Method And Apparatus To Manage Non-Volatile Disk Cache
JP2001154895A (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ記憶サブシステム
US7805572B2 (en) Cache pollution avoidance
JP4664586B2 (ja) キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム
JPH044617B2 (ko)
WO2002017084A2 (en) Method and apparatus for invalidation of data in computer systems
JP3335919B2 (ja) ディスクキャッシュ制御装置
JP2003228462A (ja) Sanキャッシュ装置

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

Payment date: 20120201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130124

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee