KR20140035082A - 메모리 관리방법 - Google Patents

메모리 관리방법 Download PDF

Info

Publication number
KR20140035082A
KR20140035082A KR1020120101456A KR20120101456A KR20140035082A KR 20140035082 A KR20140035082 A KR 20140035082A KR 1020120101456 A KR1020120101456 A KR 1020120101456A KR 20120101456 A KR20120101456 A KR 20120101456A KR 20140035082 A KR20140035082 A KR 20140035082A
Authority
KR
South Korea
Prior art keywords
page
main memory
data
pages
recording
Prior art date
Application number
KR1020120101456A
Other languages
English (en)
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 KR1020120101456A priority Critical patent/KR20140035082A/ko
Priority to PCT/KR2013/008308 priority patent/WO2014042465A1/en
Priority to US14/026,250 priority patent/US20140075137A1/en
Priority to CN201380047868.0A priority patent/CN104620230A/zh
Priority to EP13184317.9A priority patent/EP2709018A1/en
Publication of KR20140035082A publication Critical patent/KR20140035082A/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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 메모리 관리방법에 관한 것으로, 특히 메모리의 가용공간을 빠르게 확보할 수 있는 메모리 관리방법에 관한 것이다.
이를 달성하기 위해 메모리 관리방법은, 주 메모리의 페이지에 저장된 데이터의 압축률을 기록하는 과정과; 상기 주기억장치에서 가용공간이 부족할 때, 상기 주기억장치의 페이지들 중 압축률이 기준 값 이상인 페이지의 데이터를 압축하여 상기 주기억장치에 저장함으로써, 상기 주기억장치의 가용공간을 확보하는 과정을 포함하는 것을 특징으로 한다.

Description

메모리 관리방법{METHOD FOR MANAGING MEMORY}
본 발명은 메모리 관리방법에 관한 것으로, 특히 메모리의 가용공간을 빠르게 확보할 수 있는 메모리 관리방법에 관한 것이다.
운영체제는 주 메모리의 가용공간 확보를 위해 주 메모리의 데이터를 하드디스크와 같은 보조 메모리로 이동하여 저장하고, 상기 보조 메모리에 저장된 데이터는 필요한 경우 다시 주 메모리로 적재시키는 기능을 페이지 교체(page swap)라고 한다.
상기 페이지 교체(Page swapping)를 통해, 상기 운영체제는 주 메모리의 가용공간이 부족한 경우, 최근에 빈번하게 접근되지 않았던 즉, 접근 빈도가 떨어지는 페이지의 데이터를 상기 보조 메모리로 내보내고, 상기 데이터가 저장되었던 페이지에 다른 데이터를 저장할 수 있다.
상기 운영체제는 해당 페이지의 데이터를 상기 보조 메모리로 내보낼 때, 가상주소를 물리주소로 변환할 때 사용되는 변환테이블의 페이지 테이블 엔트리들 중 상기 해당 페이지에 대응하는 페이지 테이블 엔트리(page table entry)를 수정하여, 해당 페이지의 데이터가 상기 보조메모리로 이동 되었다는 표시를 기록한다.
따라서서, 해당 페이지가 향후에 다시 접근될 때 상기 보조 메모리로 이동되었음을 인지하고 상기 보조 메모리로부터 다시 읽어 들일 수 있게 한다.
그러나 일반적으로 상기 보조 메모리로 사용되는 하드디스크는 물리적 특성상 반응 속도가 매우 느리다. 회전식 플래터와 움직이는 헤드로 구성된 하드디스크 장치는, 플래터를 회전시키고 기록될 물리적 위치까지 헤드를 움직이는 시간이 매우 길다. 때문에, 하드 디스크를 페이지 교체(swap) 공간으로 사용하게 되면, 상기 교체 공간에 소량의 페이지의 데이터를 기록하기 위해서 시스템이 장시간 대기하게 되므로 전반적인 시스템의 성능이 떨어진다.
상기와 같은 문제점을 해소하기 위해, 상기 주 메모리의 데이터를 압축하여 가용공간을 확보하는 기술이 압축 페이지 교체(compressed page swapping)기법 이다.
상기 압축 페이지 교체(compressed page swapping)기법은 페이지 단위로 분류되는 상기 주 메모리의 페이지들 중 페이지의 접근빈도가 낮은 페이지를 교체대상으로 선정하고, 이후 선정된 페이지의 데이터를 압축한다. 그리고 압축전의 데이터와 상기 압축 후의 데이터 크기를 비교하여, 압축률이 높으면 상기 주 메모리에 저장한다. 그러나 압축 결과 압축 전보다 오히려 크기가 증가하거나 미리 정한 수준만큼의 압축 이득이 없는 경우 보조 기억장치로 내보내어 저장한다.
메모리상에 존재하는 대부분의 페이지들은 비교적 압축이 잘 되므로, 압축으로 인한 이득만큼의 메모리 공간을 손쉽게 확보할 수 있으며, 뿐만 아니라 불필요한 디스크 접근이 감소하게 되므로 페이지 교체로 인한 성능 저하를 줄일 수 있게 된다.
그러나 상기 압축 페이지 교체(compressed page swapping)기법의 경우, 압축 수행에 따른 프로세싱 오버헤드를 수반한다. 압축 대상 페이지는 오직 페이지의 접근 빈도에 따라 계산된 중요도에 따라 선정되고, 압축을 수행하여 발생할 이득은 압축을 실제 수행하기 전까지는 알 수가 없다. 따라서 압축 결과 크게 이득이 없는 압축을 하는 경우가 발생하게 된다. 즉, 압축이 잘 되지 않는 페이지에 대하여 불필요한 압축을 시도하게 됨으로써, 결과적으로 프로세서의 불필요한 동작을 유발하여 소모전류 증가, 프로세싱 시간의 증가를 야기한다. 또한, 상기 주 메모리의 가용공간 확보가 필요한 시점에서 이러한 불필요한 동작은 상기 주 메모리의 가용공간 확보를 지연시키게 되므로 시스템의 성능을 떨어뜨리게 된다.
따라서 본 발명의 목적은, 주 메모리의 가용공간을 빠르게 확보할 수 있는 메모리 관리방법에 관한 것이다.
본 발명의 다른 목적은, 압축결과에 따라 교체 대상 페이지로 선정할 지 판단하는 과정 없이, 교체대상 페이지를 빠르게 선정하여 주 메모리의 가용공간을 확보할 수 있는 메모리 관리방법을 제공하는 것이다.
상기 목적을 달성하기 위한 메모리 관리방법은, 주 메모리의 페이지에 저장된 데이터의 압축률을 기록하는 과정과; 상기 주 메모리에서 가용공간이 부족할 때, 상기 주 메모리의 페이지들 중 압축률이 기준 값 이상인 페이지의 데이터를 압축하여 상기 주 메모리에 저장함으로써, 상기 주 메모리의 가용공간을 확보하는 과정을 포함하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 메모리 관리방법은, 페이지 교체가 발생된 데이터가 주 메모리로 복원될 때, 상기 복원된 데이터의 압축률을 검출하여 기록하는 과정과; 상기 주 메모리에 데이터를 기록하기 위한 가용공간이 부족할 때, 상기 주 메모리의 페이지들 중 압축률이 기준 값 이상인 페이지를 교체대상 페이지로 선정하여, 상기 주기억장치의 가용공간을 확보하는 과정을 포함하는 것을 특징으로 한다.
본 발명은 메모리 관리방법을 제공함으로써, 압축률이 낮은 데이터가 저장된 페이지에 대해 압축을 시도하는 단계를 생략할 수 있으며, 압축률이 높은 데이터가 저장된 페이지만을 골라 교체대상 페이지로 선정함에 따라 보다 빠르게 메모리의 가용공간을 확보할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따라 주 메모리의 페이지에 저장된 데이터의 압축률을 기록하는 과정을 도시한 흐름도.
도 2는 페이지 기법에서의 주소변환 절차를 설명하기 위한 도면.
도 3은 변환테이블에 의해 물리메모리에 접근하는 동작을 설명하기 위한 도면.
도 4는 제2 레벨 변환테이블(2nd level translation table)을 구성하는 페이지 테이블 엔트리를 나타내는 도면.
도 5는 제2 레벨 변환테이블의 페이지 테이블 엔트리에 설정된 값에 따라 해당 데이터가 저장된 위치와 매핑되는 동작을 도시한 도면.
도 6은 페이지정보 자료구조를 설명하기 위한 도면.
도 7은 본 발명의 실시 예에 따라 압축률 기록표시를 위한 쓰기금지가 설정된 해당 페이지에서 압축률 정보를 재설정하는 과정을 도시한 흐름도.
도 8은 본 발명의 실시 예에 따라 주 메모리에서 가용 공간 확보를 위해 페이지 교체대상을 선정하는 과정을 도시한 흐름도.
도 9는 주 메모리의 페이지를 접근빈도에 따라 나열한 리스트를 도시한 도면.
이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의하여야 한다.
도 1은 본 발명의 실시 예에 따라 주 메모리의 페이지에 저장된 데이터의 압축률을 기록하는 과정을 도시한 흐름도이고, 도 2는 페이지 기법에서의 주소변환 절차를 설명하기 위한 도면이며, 도 3은 변환테이블에 의해 물리메모리에 접근하는 동작을 설명하기 위한 도면이며, 도 4는 제2 레벨 변환테이블(2nd level translation table)을 구성하는 페이지 테이블 엔트리를 나타내는 도면이며, 도 5는 제2 레벨 변환테이블의 페이지 테이블 엔트리에 설정된 값에 따라 해당 데이터가 저장된 위치와 매핑되는 동작을 도시한 도면이며, 도 6은 페이지정보 자료구조를 설명하기 위한 도면이다.
상기 도 1을 참조하면, 해당 프로세서에게 상기 주 메모리의 페이지를 할당하기 위해, 변환테이블을 이용하여 가상주소를 물리주소로 변환하는 가상주소변환을 수행하는 동안, 상기 변환테이블의 특정 페이지 테이블 엔트리에서, 상기 물리주소 즉 상기 주 메모리의 페이지 주소가 존재하지 않음을 알리는 페이지 폴트 예외(page fault exception)가 발생되면, CPU는 101단계에서 이를 감지하고 상기 페이지 폴트 예외 발생을 운영체제에게 알린다.
상기 도 2 및 상기 도 3을 통해 상기 주소변환을 수행동작을 살펴보면, 먼저 상기 도 2에서, 변환 기초주소(Translation Base Address)는 해당 프로세스의 제1 레벨 변환테이블(1st level translation table)을 가리키고 있다.
해당 프로세서가 가지는 32비트의 가상주소(virtual address)는 제1 레벨 인덱스(1st level index), 제2 레벨 인덱스(2nd level index) 및 옵셋(offset)의 3부분으로 나누어지며, 상기 제1 레벨 인덱스(1st level index) 및 상기 제2 레벨 인덱스(2nd level index) 각각은 제1 레벨 변환테이블(1st level translation table) 및 제2 레벨 변환테이블(2nd level translation table)에 의해 변환되어 최종적으로 32비트의 물리주소를 얻게 된다.
상기 도 3은 상기 도 2와 같은 변환테이블을 통해, 가상주소를 물리주소로 변환하여 물리메모리 즉, 상기 주 메모리의 해당 페이지에 접근하는 동작을 도시하고 있다.
상기 제2 레벨 변환테이블(2nd level translation table)은 상기 도 4와 같은 페이지 테이블 엔트리로 구성된다.
상기 페이지 테이블 엔트리는 상기 도 2의 (a)와 같이,복수의 필드로 구성되며, 상기 복수의 필드 중 페이지 주소(Page Address) 필드는 주 메모리의 페이지 프레임의 주소를 나타내며, 상기 페이지 프레임의 주소는 가상주소의 옵셋과 결합하여 하나의 완성된 물리주소를 구성하게 된다. 그리고 R / W 필드는 해당 페이지에 접근 가능한 권한 (읽기 혹은 쓰기) 을 나타낸다. 만약, 쓰기 권한이 없는 페이지에 쓰기 모드로 접근한다면 권한 오류를 나타내는 예외 (exception)가 발생하게 될 것이다. U / S 필드는 페이지를 접근하려고 하는 현재 프로세서 모드를 나타낸다. 프로세서의 모드는 슈퍼바이저(Supervisor) 혹은 유저(User) 모드로 나뉠 수 있는데, 운영체제에 의해 프로세서가 수행될 때 프로세서의 모드는 슈퍼바이저 모드가 된다. 만약, U/S 필드가 S로 설정된 페이지를 유저모드 프로세스가 접근하고자 할 경우, 권한 오류를 나타내는 예외(exception)가 발생하게 될 것이다. 그리고 P 필드는 현재 페이지 테이블 엔트리가 주 메모리의 페이지 프레임의 주소를 기록하는지 여부를 알 수 있도록 설정된다.
예를 들어, 현재 페이지 테이블 엔트리의 페이지 주소(Page Address) 필드에 주 메모리의 페이지 프레임의 주소가 기록되면, 상기 P필드는 “1”로 설정된다.
그러나 현재 페이지 테이블 엔트리에 주 메모리의 페이지 프레임의 주소가 기록되지 않으면, 즉 프로세서가 접근하려고 한 페이지의 데이터가 상기 주 메모리의 해당 페이지에 저장되지 않고 페이지 아웃(page out)되어서, 보조 메모리 또는 상기 주 메모리의 압축 페이지 풀(compressed page pool)로 이동되어 저장되었으면, 상기 도 4의 (b)와 같이 상기 P필드는 “0”으로 설정된다.
상기 도 4의 (b)와 같이, P필드(402)가 “0”으로 설정될 때, 페이지 테이블 엔트리는 어벨러블(Available) 필드(401)와 P필드(402)로 구성되고, 상기 어벨러블(Available) 필드(401)에는 해당 데이터가 저장된 저장위치정보 예를 들어, 상기 보조 메모리에서 상기 데이터가 저장된 위치정보, 또는 상기 주 메모리의 소정영역인 압축 페이지 풀에서 상기 데이터가 압축되어 저장된 위치정보가 기록된다.
상기 도 5는 제2 레벨 변환테이블의 페이지 테이블 엔트리에 설정된 값에 따라 해당 데이터가 저장된 위치와 매핑되는 동작을 도시하고 있다.
상기 도 5에 따르면, 상기 제2 레벨 변환테이블(2nd level translation table)을 구성하는 각 페이지 테이블 엔트리의 P필드에 설정된 값에 따라, P필드가 “1‘로 설정되어 있으면 해당 프로세서가 접근하려는 데이터가 저장된 주 메모리의 해당 페이지로 매핑되고, P필드가 “0‘으로 설정되어 있으면 해당 프로세서가 접근하려는 데이터가 저장된 보조 기억장치의 위치로(Disk storage)로 매핑될 수 있다.
따라서, 상기 CPU가 상기 변환테이블을 통해 가상주소를 물리주소로 변환하는 주소변환을 수행하는 동안, 상기 제2 레벨 변환테이블의 특정 페이지 테이블 엔트리의 P필드가 상기 도 2의 (b)와 같이 “0”으로 설정되어 있으면, 페이지 폴트 예외(page fault exception)가 발생되고, 상기 CPU는 이를 상기 운영체제에게 알린다. 그러면 상기 운영체제는 특정 페이지 테이블 엔트리에 주 메모리의 페이지 주소가 존재하지 않음을 알리는 페이지 폴트 예외 발생을 처리하기 위해 미리 지정된 예외 처리기(exception handler)를 실행시킨다.
상기 예외 처리기(exception handler)는 상기 특정 페이지 테이블 엔트리의 어벨러블 필드(402)에 기록된 데이터의 저장위치정보를 검출한다.
상기 예외 처리기는 상기 어벨러블 필드(402)에 기록된 데이터의 저장위치정보를 통해, 상기 페이지 폴트 예외가 발생된 데이터가 상기 주 메모리의 소정영역인 압축 페이지 풀에 저장되어 있는지 또는 상기 보조 메모리에 저장되었는지 검출할 수 있다.
본 발명의 실 시 예에서 상기 주 메모리는 DRAM이며, 상기 주 메모리의 소정영역인 압축 페이지 풀(compressed page pool)은 상기 주 메모리의 램 디스크(RAM Disk)로써 페이지 단위로 분류되지 않은 영역이다.
또한 상기 주 메모리의 소정영역인 압축 페이지 풀(compressed page pool)에는 상기 주 메모리의 가용 공간 확보를 위해, 상기 주 메모리에서 교체대상으로 선정된 페이지의 데이터가 압축되어 저장된다.
상기 페이지 폴트 예외가 발생된 데이터가 상기 주 메모리의 소정영역인 압축 페이지 풀에 저장되어 있으면, 상기 예외 처리기는 상기 도 1의 102단계에서 이를 감지하고 상기 압축 페이지 풀에서 상기 데이터를 리드하고 압축해제한 후, 상기 압축해제 된 데이터를 상기 주 메모리의 빈 페이지에 복원하는 페이지 인(page in)동작을 103단계에서 진행한다.
그리고, 상기 압축 페이지 풀에서 상기 주 메모리의 빈 페이지로 상기 데이터가 복원되면, 상기 운영체제는 상기 103단계에서 발생된 상기 데이터의 압축해제 결과를 기반으로 상기 데이터의 압축률을 검출하고, 상기 데이터가 복원된 페이지에 대응되는 페이지정보 자료구조에 상기 데이터의 압축률을 기록하는 104단계를 진행한다.
상기 도 6을 통해 상기 페이지정보 자료구조를 살펴보면, 상기 운영체제는 페이지 프레임으로 분류된 물리 메모리에서 각각의 페이지 프레임의 현재 상태에 대하여 기록해두는 페이지정보 자료구조를 포함하고 있다. 예를 들어 상기 도 4의 (b)와 같이, 물리 메모리에 #n 개의 페이지 프레임이 있다고 가정하면, 상기 운영체제는 상기 도 4의 (a)와 같이 #0 번부터 #n-1 번 페이지 프레임에 대응하는 페이지정보(page information) 자료구조를 가지게 된다.
그리고, 상기 주 메모리의 빈 페이지로 상기 데이터가 복원되면, 상기 운영체제는 상기 페이지 폴트 예외가 발생된 특정 페이지 테이블 엔트리의 P필드를 “1”로 설정하고, 페이지 주소필드에 상기 데이터가 복원된 페이지 프레임의 주소를 기록하고, R/W필드에 일반적인 쓰기금지와는 구분되는 압축률 기록표시를 위한 쓰기금지를 설정하는 105단계를 진행한다. 상기 압축률 기록표시를 위한 쓰기금지를 설정은 상기 데이터가 복원된 페이지에 대응되는 페이지정보 자료구조에 기록될 수 있다.
상기 주 메모리에서 페이지의 데이터는 변경될 수 있음으로, 해당 페이지에 대해 상기 압축률 기록표시를 위한 쓰기금지를 설정함으로써, 해당 페이지의 데이터가 변경되는 시점에 압축률 정보를 재설정할 수 있다.
이후 하기 도 7에서 해당 페이지의 쓰기모드가 접근될 때 상기 압축률 기록표시를 위한 쓰기금지가 설정된 해당 페이지에서 압축률 정보를 재설정하는 동작을 설명한다.
또는, 상기 페이지 폴트 예외가 발생된 데이터가 상기 보조 메모리에 저장되어 있으면, 상기 예외 처리기는 106단계에서 이를 감지하고 상기 보조 메모리에서 상기 데이터를 리드하여 상기 주 메모리의 빈 페이지에 복원하는 페이지 인(page in)동작을 107단계에서 진행한다.
그리고, 상기 보조 메모리에서 상기 주 메모리의 빈 페이지로 상기 데이터가 복원되면, 상기 운영체제는 상기 데이터가 복원된 페이지에 대응되는 페이지정보 자료구조에 상기 데이터의 압축률을 0%로 기록하는 108단계를 진행한다.
상기 보조 메모리에는 상기 주 메모리의 가용 공간 확보를 위해, 상기 주 메모리에서 교체대상으로 선정된 페이지의 데이터가 저장되는 것으로, 대부분 압축률이 낮을 경우 상기 보조 메모리로 페이지 아웃된다. 따라서 상기 보조 메모리로 페이지 교체가 발생되었다는 것은 압축률이 낮다는 것으로 판단됨으로, 압축률을 0%로 기록하는 것이다
상기 보조 메모리로 페이지 아웃(page out)된 데이터가 상기 주 메모리의 빈 페이지로 페이지 인(page in)되어 복원되면, 상기 운영체제는 상기 페이지 폴트 예외가 발생된 상기 특정 페이지 테이블 엔트리의 P필드를 “1”로 설정하고, 페이지 주소필드에 상기 데이터가 복원된 페이지 프레임의 주소를 기록하고, R/W필드에 일반적인 쓰기금지와는 구분되는 압축률 기록표시를 위한 쓰기금지를 설정하는 상기 105단계를 진행한다. 상기 압축률 기록표시를 위한 쓰기금지를 설정은 상기 데이터가 복원된 페이지에 대응되는 페이지정보 자료구조에 기록될 수 있다.
상기 도 1의 과정을 통해 운영체제는 상기 주 메모리의 페이지에 데이터에 대한 압축률을 미리 기록할 수 있다.
상기 도 7은 본 발명의 실시 예에 따라 압축률 기록표시를 위한 쓰기금지가 설정된 해당 페이지에서 압축률 정보를 재설정하는 과정을 도시한 흐름도이다.
상기 도 7을 참조하면, 해당 프로세서에 의해 상기 주 메모리의 특정 페이지에 대해 쓰기모드가 접근되면, 상기 CPU는 701단계에서 이를 감지하고 상기 제2 레벨 변환테이블에서 상기 특정 페이지에 대응되는 페이지 테이블 엔트리의 R/W 필드에 쓰기금지(write protection)가 설정되어 있는지 판단한다.
상기 페이지 테이블 엔트리의 R/W 필드에 쓰기금지가 설정되어 있으면, 상기 CPU는 702단계에서 이를 판단하고 상기 R/W 필드에 설정된 쓰기금지가 압축률 기록표시를 위한 쓰기금지로 설정되어 있는지 판단한다. 이때, 상기 R/W 필드에는 일반적인 쓰기금지 설정을 위해 “W"가 설정되고, 압축률 기록표시를 위한 쓰기금지 설정을 위해 ”W1"이 설정될 수 있다.
따라서, 상기 R/W 필드에 압축률 기록표시를 위한 쓰기금지로 설정되어 있으면, 상기 CPU는 703단계에서 이를 감지하고, 상기 페이지 테이블 엔트리의 R/W 필드에 설정된 압축률 기록표시를 위한 쓰기금지를 해제하는 704단계를 진행한다.
그리고 상기 쓰기모드가 접근된 해당 페이지에 대응되는 페이지정보 자료구조에서 기록된 상기 페이지의 데이터에 대한 압축률을 제거하고, 상기 페이지의 압축률을 알지 못함으로 재설정하는 705단계를 진행한다. 따라서 상기 페이지는 쓰기모드를 통해 새로운 데이터가 기록될 수 있다.
그러나, 상기 R/W 필드에 일반적인 쓰기금지가 설정되어 있으면 상기 CPU는 상기 503단계에서 이를 감지하고, 이를 상기 운영체제에게 알리며, 상기 운영체제는 해당 예외 처리기를 통해 권한오류를 나타내는 페이지 폴트 예외를 발생시키는 706단계를 진행한다.
또는 상기 CPU는 상기 주 메모리의 특정 페이지에 대해 쓰기모드가 접근되면, 이를 상기 운영체제에게 알리고, 상기 운영체제는 특정 페이지에 대응되는 페이지 자료구조에 기록된 쓰기금지의 종류를 검출하여, 상기 특정 페이지에 설정된 쓰기금지가 압축률기록 표시를 위한 쓰기금지인지 또는 일반적인 쓰기금지인지 상기 CPU에게 알릴 수 있다.
상기 도 1과 같은 동작을 통해 주 메모리의 페이지에 저장된 데이터 압축률을 미리 기록한 이후, 상기 주 메모리에서 가용 공간 확보가 필요할 때, 페이지 교체대상을 선정하는 동작을 도 8을 통해 살펴본다.
상기 도 8은 본 발명의 실시 예에 따라 주 메모리에서 가용 공간 확보를 위해 페이지 교체대상을 선정하는 과정을 도시한 흐름도이다.
상기 도 8을 참조하면, 상기 주 메모리에 데이터를 기록하기 위한 가용공간이 부족하면, 상기 운영체제는 801단계에서 이를 감지하고, 상기 도 6의 (a)와 같은 페이지정보 자료구조에서 LRU 정보를 통해, 먼저 상기 주 메모리의 페이지에 저장된 데이터 중 접근빈도가 낮은 순서대로 임의 개수의 페이지를 검출한다. 상기 LRU에는 접근빈도에 따른 해당 페이지의 서열이 기록되어 있다.
그리고, 상기 운영체제는 다시 상기 페이지정보 자료구조에서 압축률(compression ratio)정보를 통해 상기 임의 개수의 페이지 각각에 저장된 데이터 압축률을 검출하고, 802단계에서 상기 검출된 데이터들의 압축률들 중 기준값 예를 들어 50% 이상의 압축률을 가지는 페이지의 데이터를 페이지 교체대상으로 선정한다. 상기 운영체제는 상기 50% 이상의 압축률을 가지는 페이지의 데이터를 압축하여 상기 주 메모리의 압축 페이지 풀로 이동하여 저장하는 803단계를 진행한다.
따라서 상기 주 메모리의 가용공간 확보를 위한 페이지 교체대상을 선정함에 있어서, 압축률이 기준값 이하로 검출된 페이지에 대해서는 스킵 될 수 있다.
이때, 상기 운영체제는 상기 주 메모리의 압축 페이지 풀에 저장된 상기 데이터에 대응되는 페이지 테이블 엔트리에서 P필드를 “0”으로 설정하고, 어벨러블 필드에 상기 압축 페이지 풀에서 상기 데이터가 저장된 저장위치정보를 기록함으로써, 상기 페이지에 대응되는 페이지 테이블 엔트리를 업데이트한다.
또한 상기 운영체제는 상기 50% 이상의 압축률을 가지는 페이지의 데이터가 복수 개일 때, 상기 주 메모리의 가용공간이 확보될 때까지 압축률이 높은 순서대로 해당 페이지의 데이터를 페이지 교체대상으로 선정하여 압축 후 상기 주 메모리의 압축 페이지 풀로 이동하여 저장한다.
만약 상기 802단계에서 상기 검출된 데이터들의 압축률들 중 기준값 예를 들어 50% 이상의 압축률을 가지는 페이지의 데이터가 존재하지 않으면, 상기 운영체제는 접근빈도가 가장 낮은 페이지의 데이터를 교체 페이지 대상으로 선정하여 상기 보조 메모리로 이동하여 저장시킬 수 있다.
이때 또한 상기 운영체제는 상기 보조 메모리에 저장된 상기 데이터에 대응되는 페이지 테이블 엔트리에서 P필드를 “0”으로 설정하고, 어벨러블 필드에 상기 보조 메모리에서 상기 데이터가 저장된 저장위치정보를 기록함으로써, 상기 페이지에 대응되는 페이지 테이블 엔트리를 업데이트한다.
상기 도 8의 동작에 대한 실시 예를 하기 도 9를 통해 설명한다.
먼저, 상기 도 9는 주 메모리의 페이지를 접근빈도에 따라 나열한 리스트를 도시하고 있다.
상기 운영체제 가지고 있는 상기 도 6의 (a)와 같은 페이지정보 자료구조에서 “LRU"정보를 통해 상기 주 메모리의 각 페이지의 데이터에 대한 접근빈도를 검출할 수 있다. 따라서 상기 운영체제는 상기 페이지정보 자료구조에서 “LRU"정보를 통해 상기 주 메모리의 페이지를 접근빈도에 따라, 상기 도 9의 (a)와 같은 리스트로 나열할 수 있다.
상기 도 9의 (a)에서 “Active List"에서 마지막 번째 위치된 페이지에 접근빈도가 낮아지면 ”Inactive List"의 첫 번째 위치로 이동되고,”Inactive List"의 페이지 중 접근빈도가 증가하면 상기 “Active List"에서 마지막 번째 위치로 이동된다.
따라서, 상기 주 메모리에 가용공간이 부족할 때, 먼저 상기 페이지정보의 자료구조에서 “LRU”정보를 통해, 상기 도 9의 (b)와 같이 접근빈도 낮은 “Inactive List"가 나열될 수 있다. 그리고 상기 “Inactive List"에 포함된 페이지들 중 기준 값인 50%이상의 압축률을 가지는 페이지들 ”#5020, #231221, #20“가 순서적으로 선정될 수 있다. 상기 교체대상으로 선정된 페이지들은 운영체제는 상기 주 메모리의 가용공간이 확보될 때까지, 압축률이 높은 순서대로 해당 데이터를 압축한 후 상기 주 메모리의 압축 페이지 풀로 이동하여 저장시킬 수 있다.
본 발명의 실시 예에서는 페이지 아웃된 페이지의 데이터를 다시 주 메모리의 페이지로 복원하는 페이지 인 동작을 수행할 때 해당 데이터의 압축률을 검출하여 기록하는 것을 예로 설명하고 있다.
그러나, 메모리가 구비된 단말기의 대기모드 즉, 단말기의 전원은 온(ON)되어 있으나, 메모리를 사용하지 않고 있는 메모리의 비활성된 상태에서, 상기 주 메모리의 페이지에 저장된 데이터를 압축하여 검출된 압축률을 미리 기록할 수 있다.
또는 상기 단말기는 압축률을 검출할 수 있는 별도의 하드웨어를 구비함으로써, 상기 주 메모리의 페이지에 저장된 데이터를 압축하여 검출된 압축률을 미리 기록할 수 있다.
본 발명의 메모리 관리방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (22)

  1. 메모리 관리방법에 있어서,
    주 메모리의 페이지에 저장된 데이터의 압축률을 기록하는 과정과;
    상기 주 메모리에서 가용공간이 부족할 때, 상기 주 메모리의 페이지들 중 압축률이 기준 값 이상인 페이지의 데이터를 압축하여 상기 주 메모리에 저장함으로써, 상기 주 메모리의 가용공간을 확보하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  2. 제1 항에 있어서, 상기 기록하는 과정은,
    프로세서에게 상기 주 메모리의 페이지 할당을 위해, 변환테이블을 이용하여 가상주소를 물리주소로 변환하는 주소변환을 수행하는 과정과,
    상기 주소변환을 수행하는 동안 상기 변환테이블의 특정 페이지 테이블 엔트리에서, 페이지주소가 존재하지 않음을 알리는 페이지 폴트 예외가 발생되면, 상기 특정 페이지 테이블 엔트리에 기록된 저장위치정보를 통해 상기 페이지 폴트 예외가 발생된 해당 데이터의 저장위치를 검출하는 과정과,
    상기 페이지 폴트 예외가 발생된 해당 데이터가 상기 주 메모리의 압축 페이지 풀에 저장되어 있으면, 상기 압축 페이지 풀에서 리드된 상기 해당 데이터를 압축해제하여 복원한 후 상기 압축해제 결과에 따른 압축률을 상기 해당 페이지의 압축률로 기록하는 과정과,
    상기 페이지 폴트 예외가 발생된 해당 데이터가 보조 메모리에 저장되어 있으면, 상기 보조 메모리에서 해당 데이터를 리드하여 복원한 후 상기 해당 데이터의 압축률을 0%로 기록하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  3. 제2 항에 있어서, 상기 검출하는 과정은,
    상기 특정 페이지 테이블 엔트리의 P필드에 ”0“이 기록되어 있으면, 페이지주소가 존재하지 않음을 알리는 페이지 폴트 예외가 발생되는 과정과,
    상기 페이지 폴트 예외가 발생되면, 상기 특정 페이지 테이블 엔트리의 나머지 필드인 어벨러블 필드에 기록된 해당 데이터의 저장위치정보를 통해, 상기 페이지 폴트 예외가 발생된 해당 데이터의 저장위치를 검출하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  4. 제2 항에 있어서, 상기 압축률 결과에 따라 해당 데이터의 압축률을 기록하는 과정은,
    상기 주 메모리의 압축 페이지 풀에서 상기 해당 데이터를 리드하여 압축해제한 후 상기 주 메모리의 빈 페이지에 복원하는 과정과,
    상기 압축해제결과를 기반으로 상기 복원된 해당 데이터의 압축률을 검출하는 과정과,
    상기 검출된 해당 데이터의 압축률을 상기 해당 데이터가 복원된 상기 주 메모리의 페이지에 대응되는 페이지정보 자료구조에 기록하는 과정과,
    상기 페이지 폴트 예외가 발생된 상기 특정 페이지 테이블 엔트리에 상기 해당 데이터가 복원된 페이지주소 기록 및 압축률 기록표시를 위한 쓰기금지를 설정하는 업데이트를 수행하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  5. 제4 항에 있어서,
    상기 페이지정보 자료구조의 수는 상기 주 메모리를 구성하는 페이지의 수와 대응되며,
    상기 페이지정보 자료구조는 대응되는 페이지에 대한 현재 상태정보를 기록하는 것을 특징으로 하는 메모리 관리방법.
  6. 제2 항에 있어서, 상기 해당 데이터의 압축률을 0%로 기록하는 과정은,

    상기 보조 메모리에서 해당데이터를 리드하여 상기 주 메모리의 빈 페이지에 복원하는 과정과,
    상기 해당 데이터가 복원된 상기 주 메모리의 페이지에 대응되는 페이지정보 자료구조에 상기 해당데이터의 압축률을 0%로 기록하는 과정과,
    상기 페이지 폴트 예외가 발생된 상기 특정 페이지 테이블 엔트리에 상기 해당 데이터가 복원된 페이지주소 기록 및 압축률 기록표시를 위한 쓰기금지를 설정하는 업데이트를 수행하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  7. 제2 항에 있어서,
    상기 주 메모리는 DRAM이며, 상기 주 메모리의 압축 페이지 풀은 램 디스크인 것을 특징으로 하는 메모리 관리방법.
  8. 제1 항에 있어서,
    상기 주 메모리의 특정 페이지에 대해 쓰기모드가 접근되면, 상기 변환테이블 중 상기 특정 페이지의 주소가 기록된 페이지 테이블 엔트리에 쓰기금지가 설정되어 있는지 판단하는 과정과,
    상기 페이지 테이블 엔트리에 쓰기금지가 설정되어 있으면, 상기 설정된 쓰기금지의 종류를 판단하는 과정과,
    상기 쓰기금지의 종류가 상기 페이지의 데이터에 대한 압축률 기록표시를 위한 쓰기금지이면, 상기 페이지 테이블 엔트리에서 상기 페이지에 대한 쓰기금지를 설정을 해제하고, 상기 페이지에 대응되는 페이지정보 자료구조에서 상기 페이지의 압축률 기록을 삭제함으로써, 상기 페이지에 상기 쓰기모드를 통해 기록되는 새로운 데이터를 저장하는 과정을 더 포함하는 것을 특징으로 하는 메모리 관리방법.
  9. 제8 항에 있어서,
    상기 쓰기금지의 종류가 해당 페이지에 대한 쓰기금지이면, 권한오류를 알리는 페이지 폴트 예외를 발생하는 과정을 더 포함하는 것을 특징으로 하는 메모리 관리방법.
  10. 제1 항에 있어서, 상기 주 메로리의 가용공간을 확보하는 과정은,
    상기 주 메모리의 페이지에 대한 현재 상태정보를 저장하는 페이지정보 자료구조를 통해, 상기 주 메모리의 페이지들에 각각에 대한 압축률을 검출하는 과정과,
    상기 주 메모리의 페이지들 중 압축률이 임계값 이상인 페이지를 선정하는 과정과,
    상기 선정된 페이지의 데이터를 압축하여 상기 주 메모리의 압축 페이지 풀에 저장하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  11. 제10 항에 있어서, 상기 압축률을 검출하는 과정은,
    상기 주 메모리에서 접근빈도가 낮은 임의 개수의 페이지들을 검출하는 과정과,
    상기 주 메모리의 페이지에 대한 현재 상태정보를 저장하는 페이지정보 자료구조를 통해, 상기 접근빈도가 낮은 임의 개수의 페이지들 각각에 대한 데이터 압축률을 검출하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  12. 제10 항에 있어서,
    상기 선정된 페이지가 복수 개일 때, 압축률이 큰 순서대로 상기 주 메모리의 가용공간이 확보될 때까지 압축하여, 상기 주 메모리의 압축 페이지 풀에 저장하는 과정을 더 포함하는 것을 특징으로 하는 메모리 관리방법.
  13. 메모리 관리방법에 있어서,
    페이지 교체가 발생된 데이터가 주 메모리로 복원될 때, 상기 복원된 데이터의 압축률을 검출하여 기록하는 과정과,
    상기 주 메모리에 데이터를 기록하기 위한 가용공간이 부족할 때, 상기 주 메모리의 페이지들 중 압축률이 기준 값 이상인 페이지를 교체대상 페이지로 선정하여, 상기 주기억장치의 가용공간을 확보하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  14. 제13 항에 있어서, 상기 기록하는 과정은,
    주소변환 동안 변환테이블의 특정 페이지 테이블 엔트리에서, 페이지주소가 존재하지 않음을 알리는 페이지 폴트 예외가 발생되면, 상기 페이지 교체가 발생된 특정 데이터가 주 메모리로 복원되는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  15. 제13 항에 있어서, 상기 기록하는 과정은,
    상기 주 메모리의 소정영역에 저장된 압축데이터를 압축해제하여 상기 주 메모리의 빈 페이지에 복원할 때, 상기 압축해제결과를 기반으로 상기 데이터가 복원된 페이지에 대응되는 페이지정보 자료구조에 기록하는 과정과,
    보조 메모리에 저장된 압축데이터를 상기 주 메모리의 빈 페이지에 복원할 때, 상기 데이터가 복원된 페이지에 대응되는 페이지정보 자료구조에 상기 데이터의 압축률을 0%로 기록하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  16. 제13 항에 있어서,
    상기 복원된 데이터의 압축률을 기록한 후, 상기 페이지 교체가 발생된 데이터를 기록한 변환테이블의 페이지 테이블 엔트리에, 상기 데이터가 복원된 페이지주소 기록 및 압축률 기록표시를 위한 쓰기금지를 설정하는 업데이트를 수행하는 과정을 더 포함하는 것을 특징으로 하는 메모리 관리방법.
  17. 제13 항에 있어서,
    상기 주 메모리는 DRAM이며, 상기 주 메모리의 소정영역은 상기 주 메모리에서 페이지로 분류되지 않은 램 디스크인 것을 특징으로 하는 메모리 관리방법.
  18. 제13 항에 있어서,
    상기 주 메모리의 특정 페이지에 대해 쓰기모드가 접근될 때, 상기 변환테이블 중 상기 특정 페이지의 주소가 기록된 페이지 테이블 엔트리에, 압축률 기록표시를 위한 쓰기금지가 설정되어 있으면, 상기 페이지 테이블 엔트리에서 상기 페이지에 대한 쓰기금지를 설정을 해제하고, 상기 페이지에 대응되는 페이지정보 자료구조에서 상기 페이지의 압축률 기록을 삭제함으로써, 상기 페이지에 상기 쓰기모드를 통해 기록되는 새로운 데이터를 저장하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  19. 제13 항에 있어서, 상기 주 메모리의 가용공간을 확보하는 과정은,
    상기 주 메모리의 페이지에 대한 현재 상태정보를 저장하는 페이지정보 자료구조를 통해, 상기 주 메모리의 페이지들에 각각에 대한 압축률을 검출하는 과정과,
    상기 주 메모리의 페이지들 중 압축률이 임계값 이상인 페이지를 교체 페이지 대상으로 선정하는 과정과,
    상기 교체 페이지 대상으로 선정된 페이지의 데이터를 압축하여 상기 주 메모리의 소정영역에 저장하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  20. 제19 항에 있어서, 상기 압축률을 검출하는 과정은,
    상기 주 메모리에서 접근빈도가 낮은 임의 개수의 페이지들을 검출하는 과정과,
    상기 주 메모리의 페이지에 대한 현재 상태정보를 저장하는 페이지정보 자료구조를 통해, 상기 접근빈도가 낮은 임의 개수의 페이지들 각각에 대한 데이터 압축률을 검출하는 과정을 포함하는 것을 특징으로 하는 메모리 관리방법.
  21. 제19 항에 있어서,
    상기 교체페이지 대상으로 선정된 페이지가 복수 개일 때, 압축률이 큰 순서대로 상기 주 메모리의 가용공간이 확보될 때까지 압축하여, 상기 주 메모리의 소정영역에 저장하는 과정을 더 포함하는 것을 특징으로 하는 메모리 관리방법.
  22. 제13 항 내지 제21 항 중 어느 한 항에 따른 방법을 수행하기 위 한 프로그램이 기록된 프로세서가 판독 가능한 기록매체.
KR1020120101456A 2012-09-13 2012-09-13 메모리 관리방법 KR20140035082A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120101456A KR20140035082A (ko) 2012-09-13 2012-09-13 메모리 관리방법
PCT/KR2013/008308 WO2014042465A1 (en) 2012-09-13 2013-09-13 Method of managing memory
US14/026,250 US20140075137A1 (en) 2012-09-13 2013-09-13 Method of managing memory
CN201380047868.0A CN104620230A (zh) 2012-09-13 2013-09-13 管理存储器的方法
EP13184317.9A EP2709018A1 (en) 2012-09-13 2013-09-13 Method of managing main memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120101456A KR20140035082A (ko) 2012-09-13 2012-09-13 메모리 관리방법

Publications (1)

Publication Number Publication Date
KR20140035082A true KR20140035082A (ko) 2014-03-21

Family

ID=49165597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120101456A KR20140035082A (ko) 2012-09-13 2012-09-13 메모리 관리방법

Country Status (5)

Country Link
US (1) US20140075137A1 (ko)
EP (1) EP2709018A1 (ko)
KR (1) KR20140035082A (ko)
CN (1) CN104620230A (ko)
WO (1) WO2014042465A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150052326A1 (en) * 2013-08-19 2015-02-19 International Business Machines Corporation User-controlled paging
KR102114388B1 (ko) * 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
US9472248B2 (en) * 2014-03-28 2016-10-18 Intel Corporation Method and apparatus for implementing a heterogeneous memory subsystem
EP3204860A1 (en) * 2014-10-07 2017-08-16 Google, Inc. Hardware-assisted memory compression management using page filter and system mmu
US9892054B2 (en) 2014-10-07 2018-02-13 Google Llc Method and apparatus for monitoring system performance and dynamically updating memory sub-system settings using software to optimize performance and power consumption
US10489309B2 (en) 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
US9483184B2 (en) 2014-12-19 2016-11-01 International Business Machines Corporation Method to improve page out mechanism with compressed memory pools
CN107885666B (zh) 2016-09-28 2021-07-20 华为技术有限公司 一种内存管理方法和装置
US10268543B2 (en) * 2017-01-27 2019-04-23 Hewlett Packard Enterprise Development Lp Online volume repair
CN107465413B (zh) * 2017-07-07 2020-11-17 南京城市职业学院 一种自适应数据压缩系统及其方法
CN109445693A (zh) * 2018-10-19 2019-03-08 郑州云海信息技术有限公司 一种数据压缩方法和装置
SE543649C2 (en) * 2018-11-14 2021-05-18 Zeropoint Tech Ab Managing free space in a compressed memory system
KR20210049602A (ko) 2019-10-25 2021-05-06 삼성전자주식회사 컴퓨팅 장치 및 그 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3512910B2 (ja) * 1995-07-06 2004-03-31 株式会社東芝 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US7024512B1 (en) * 1998-02-10 2006-04-04 International Business Machines Corporation Compression store free-space management
US6681305B1 (en) * 2000-05-30 2004-01-20 International Business Machines Corporation Method for operating system support for memory compression
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US6516397B2 (en) * 2001-04-09 2003-02-04 Hewlett-Packard Company Virtual memory system utilizing data compression implemented through a device
US6775751B2 (en) * 2002-08-06 2004-08-10 International Business Machines Corporation System and method for using a compressed main memory based on degree of compressibility
US6981119B1 (en) * 2002-08-29 2005-12-27 Advanced Micro Devices, Inc. System and method for storing performance-enhancing data in memory space freed by data compression
US7188227B2 (en) * 2003-09-30 2007-03-06 International Business Machines Corporation Adaptive memory compression
US7636810B2 (en) * 2003-11-26 2009-12-22 Intel Corporation Method, system, and apparatus for memory compression with flexible in-memory cache
US7587572B1 (en) * 2004-08-31 2009-09-08 Sun Microsystems, Inc. Method and system for managing process memory configured in resizable uncompressed and compressed regions
US20070088920A1 (en) * 2005-10-19 2007-04-19 Philip Garcia Managing data for memory, a data store, and a storage device
KR100849305B1 (ko) * 2006-11-24 2008-07-29 삼성전자주식회사 데이터를 압축하여 관리하는 메모리 및 그 방법
JP5139786B2 (ja) * 2007-12-07 2013-02-06 キヤノン株式会社 画像処理装置、画像処理方法、及び、画像処理プログラム
US8898413B2 (en) * 2011-06-21 2014-11-25 International Business Machines Corporation Point-in-time copying of virtual storage

Also Published As

Publication number Publication date
WO2014042465A1 (en) 2014-03-20
CN104620230A (zh) 2015-05-13
EP2709018A1 (en) 2014-03-19
US20140075137A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
KR20140035082A (ko) 메모리 관리방법
CN106716386B (zh) 使用页面过滤器和系统mmu的硬件辅助存储器压缩管理
US6446145B1 (en) Computer memory compression abort and bypass mechanism when cache write back buffer is full
US20100332730A1 (en) Method and system for managing a nand flash memory
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US8825946B2 (en) Memory system and data writing method
KR20100114535A (ko) 메모리 맵핑 기술
US10853199B2 (en) Techniques for managing context information for a storage device while maintaining responsiveness
US20170046261A1 (en) Storage device and method for saving write cache data
US9983826B2 (en) Data storage device deferred secure delete
US20190370009A1 (en) Intelligent swap for fatigable storage mediums
CN114207571B (zh) 计算装置及其操作方法
US20130304972A1 (en) Control device, storage device, and storage control method
US10585592B2 (en) Disk area isolation method and device
US20230142948A1 (en) Techniques for managing context information for a storage device
EP2381354A2 (en) Data recording device
KR101365704B1 (ko) 플래시 기반 메모리를 관리하기 위한 방법
CN110737395A (zh) I/o管理方法、电子设备和计算机可读存储介质
CN113986604A (zh) 数据存储方法和数据存储装置
US11221773B2 (en) Method and apparatus for performing mapping information management regarding redundant array of independent disks
KR101608623B1 (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
CN107608626B (zh) 一种基于ssd raid阵列的多级缓存及缓存方法
KR20190005135A (ko) 비휘발성 메모리의 데이터 스와핑 방법 및 장치
US20210263648A1 (en) Method for managing performance of logical disk and storage array
US10366724B2 (en) Storage control device, storage system and method of controlling a storage device

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid