KR20130112210A - 메모리 시스템 및 그것의 페이지 교체 방법 - Google Patents
메모리 시스템 및 그것의 페이지 교체 방법 Download PDFInfo
- Publication number
- KR20130112210A KR20130112210A KR1020120034429A KR20120034429A KR20130112210A KR 20130112210 A KR20130112210 A KR 20130112210A KR 1020120034429 A KR1020120034429 A KR 1020120034429A KR 20120034429 A KR20120034429 A KR 20120034429A KR 20130112210 A KR20130112210 A KR 20130112210A
- Authority
- KR
- South Korea
- Prior art keywords
- page
- memory
- main memory
- central processing
- processing unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 메모리 시스템 및 그 페이지 교체 방법에 관한 것이다. 본 발명의 실시예에 의한 메모리 시스템은 중앙 처리 장치, 비휘발성 메모리 및 상기 중앙 처리 장치의 작업시 디스크 및 상기 비휘발성 메모리로부터 필요한 데이터가 로드되는 메인 메모리를 포함하며, 상기 비휘발성 메모리는 상기 메인 메모리의 스왑 장치로 이용되고, 상기 중앙 처리 장치는 상기 메인 메모리에서 교체 대상으로 선정된 코드 페이지를 상기 비휘발성 메모리로 스왑한다. 이를 통해 본 발명의 메모리 시스템 및 그 페이지 교체 방법은 단축된 지연 시간을 가진다.
Description
본 발명은 메모리 시스템 및 그 페이지 교체 방법에 관한 것이다.
일반적으로 메모리 시스템은 데이터를 저장하기 위한 메모리 장치와 메모리 장치의 동작을 제어하기 위한 호스트를 포함한다. 메모리 장치는 DRAM, SRAM 등과 같은 휘발성(volatile) 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 비휘발성(nonvolatile) 메모리로 분류된다.
휘발성 메모리에 저장된 데이터는 전원 공급이 중단되면 소멸된다. 반면, 비휘발성 메모리에 저장된 데이터는 전원 공급이 중단되더라도 소멸되지 않는다.
메모리 시스템에서 프로세스가 실행될 때 물리 메모리 용량의 한계를 극복하기 위하여 디스크의 일부가 가상 메모리로서 사용된다. 페이지 스왑(page swap)을 사용하는 메모리 시스템의 물리 메모리에는 현재 프로세스의 실행에 요구되는 페이지가 우선적으로 적재된다. 물리 메모리에 적재되어 있으나 현재 불필요하다 판단되는 페이지는 물리 메모리로부터 가상 메모리로 스왑 아웃(swap-out) 된다. 스왑 아웃 된 페이지는 후에 실행이 요구되면 가상 메모리로부터 물리 메모리로 다시 스왑 인(swap-in) 된다.
본 발명은 지연 시간이 단축되어 향상된 성능을 가지는 메모리 시스템 및 그 페이지 교체 방법을 제공하는 것에 그 목적이 있다.
본 발명의 실시예에 의한 메모리 시스템은 중앙 처리 장치, 비휘발성 메모리 및 상기 중앙 처리 장치의 작업시 디스크 및 상기 비휘발성 메모리로부터 필요한 데이터가 로드되는 메인 메모리를 포함하며, 상기 비휘발성 메모리는 상기 메인 메모리의 스왑 장치로 이용되고, 상기 중앙 처리 장치는 상기 메인 메모리에서 교체 대상으로 선정된 코드 페이지를 상기 비휘발성 메모리로 스왑한다.
실시예에 있어서, 상기 중앙 처리 장치는 상기 교체 대상으로 선정된 코드 페이지를 사용 빈도에 따라 스왑한다.
실시예에 있어서, 상기 메인 메모리는 상기 중앙 처리 장치에 의하여 참조되는 페이지 테이블을 포함하고, 상기 페이지 테이블은 상기 메인 메모리에 저장된 코드 페이지들의 교체 대상 선정 횟수를 저장하는 리폴트 비트를 포함한다.
실시예에 있어서, 상기 중앙 처리 장치는 상기 교체 대상으로 선정된 코드 페이지의 상기 리폴트 비트가 미리 지정된 값 이상이면 상기 교체 대상으로 선정된 코드 페이지를 스왑한다.
실시예에 있어서, 상기 중앙 처리 장치는 최소 최근 사용 정책(LRU)에 의하여 교체 대상을 선정한다.
실시예에 있어서, 상기 중앙 처리 장치는 교체 대상의 선정시 페이지의 종류 및 이미 스왑되었는지 여부에 따라 우선 순위를 부여한다.
실시예에 있어서, 상기 우선 순위는 이미 스왑된 코드 페이지를 가장 우선하여 부여된다.
실시예에 있어서, 프로세스 시작시 요구되는 코드 페이지가 상기 메인 메모리에 존재하지 않고 상기 비휘발성 메모리에 존재하는 경우에는 상기 비휘발성 메모리에 저장된 상기 코드 페이지가 상기 메인 메모리로 로드된다.
실시예에 있어서, 상기 비휘발성 메모리에 상기 코드 페이지가 존재하지 않으면 상기 디스크에 저장된 상기 코드 페이지가 상기 메인 메모리로 로드된다.
본 발명의 실시예에 의한 메모리 시스템의 페이지 교체 방법에 있어서, 상기 메모리 시스템은 중앙 처리 장치, 비휘발성 메모리 및 상기 중앙 처리 장치의 작업시 디스크 및 상기 비휘발성 메모리로부터 필요한 데이터가 로드되는 메인 메모리를 포함하며, 상기 메모리 시스템의 페이지 교체 방법은 페이지 교체 정책에 의하여 상기 메인 메모리의 교체 대상이 선정되는 단계, 상기 선정된 교체 대상이 코드 페이지이면 사용 빈도에 따라 상기 메인 메모리로부터 상기 비휘발성 메모리로의 스왑 여부가 결정되는 단계를 포함한다.
실시예에 있어서, 상기 선정된 교체 대상이 데이터 페이지이면 사용 빈도와 관계없이 스왑되는 단계를 더 포함한다.
실시예에 있어서, 상기 사용 빈도는 리폴트 비트에 의하여 판단되는 단계를 더 포함하며, 상기 리폴트 비트는 코드 페이지가 교체 대상으로 선정될 때마다 증가된다.
실시예에 있어서, 상기 교체 대상이 선정되는 단계는 페이지의 종류에 따라 우선 순위가 부여되는 단계를 더 포함한다.
실시예에 있어서, 상기 우선 순위는 페이지가 이미 스왑되었는지 여부를 더 고려하여 부여된다.
실시예에 있어서, 상기 우선 순위는 이미 스왑된 코드 페이지를 우선하여 부여된다.
본 발명의 메모리 시스템 및 그 페이지 교체 방법은 단축된 지연 시간을 가진다.
도 1은 본 발명의 실시예에 의한 메모리 시스템을 도시하는 블록도이다.
도 2는 본 발명의 메모리 시스템에서 데이터 페이지의 라이프 사이클에 대한 실시예를 도시하는 도면이다.
도 3은 본 발명의 메모리 시스템에서 코드 페이지의 라이프 사이클에 대한 실시예를 도시하는 도면이다.
도 4는 본 발명의 실시예에 의한 페이지 테이블의 일실시예를 도시하는 표이다.
도 5는 본 발명의 실시예에 의한 페이지 스왑 방법을 도시하는 순서도이다.
도 6은 본 발명의 실시예에 의한 페이지 교체 방법을 도시하는 순서도이다.
도 7은 본 발명의 실시예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 8은 본 발명의 실시예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 9는 도 8에 도시된 SSD 컨트롤러(2210)의 구성을 예시적으로 보여주는 블록도이다.
도 10은 본 발명의 실시예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
도 2는 본 발명의 메모리 시스템에서 데이터 페이지의 라이프 사이클에 대한 실시예를 도시하는 도면이다.
도 3은 본 발명의 메모리 시스템에서 코드 페이지의 라이프 사이클에 대한 실시예를 도시하는 도면이다.
도 4는 본 발명의 실시예에 의한 페이지 테이블의 일실시예를 도시하는 표이다.
도 5는 본 발명의 실시예에 의한 페이지 스왑 방법을 도시하는 순서도이다.
도 6은 본 발명의 실시예에 의한 페이지 교체 방법을 도시하는 순서도이다.
도 7은 본 발명의 실시예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 8은 본 발명의 실시예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 9는 도 8에 도시된 SSD 컨트롤러(2210)의 구성을 예시적으로 보여주는 블록도이다.
도 10은 본 발명의 실시예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 또한 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
도 1은 본 발명의 실시예에 의한 메모리 시스템을 도시하는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 컨트롤러(110) 및 디스크(120)를 포함한다. 컨트롤러(110)는 중앙 처리 장치(111), 메인 메모리(112), 코드 페이지(113) 및 비휘발성 메모리(113)를 포함한다.
본 발명의 실시예에 의한 메모리 시스템에서 데이터는 페이지 단위로 관리된다. 즉, 페이지는 데이터가 한 번에 이동되는 단위이다. 페이지는 코드 페이지(code page)와 데이터 페이지(data page)로 구분된다.
코드 페이지는 명령어를 보유하는 페이지이다. 코드 페이지의 원본은 디스크(120)에 저장되어 있다. 프로세스가 실행될 때 요청된 코드 페이지가 메인 메모리(112) 혹은 비휘발성 메모리(113)에 존재하지 않으면, 코드 페이지는 디스크(120)로부터 메인 메모리(112)로 로드되어 사용된다.
반면 데이터 페이지는 코드 페이지의 참조 대상이 되는 데이터를 보유하는 페이지이다. 데이터 페이지는 디스크(120)에 원본이 존재하지 않는다. 데이터 페이지는 메인 메모리(112)에서 처음 할당되고, 메인 메모리(112) 및 비휘발성 메모리(113)에만 존재한다.
중앙 처리 장치(111)는 메모리 시스템(100)의 전반적인 동작을 제어한다. 중앙 처리 장치(111)는 메인 메모리(112), 비휘발성 메모리(113) 및 디스크(120)에 대한 데이터 읽기 및 쓰기를 수행한다. 중앙 처리 장치(111)는 메인 메모리(112) 및 비휘발성 메모리(113)에 직접 억세스할 수 있다. 또한 중앙 처리 장치(111)는 디스크(120)에 간접 억세스할 수 있다.
중앙 처리 장치(111)는 프로세스의 실행에 의해 호스트로부터 페이지가 요청되면 페이지 테이블(113)을 참조하여 요청된 페이지의 현재 물리 주소를 얻는다.
페이지 테이블(113)은 페이지의 매핑 정보가 기록되는 테이블이다. 페이지 테이블(113)은 페이지의 논리 주소에 대한 물리 주소에 대한 정보를 포함한다. 또한 페이지 테이블(113)은 페이지가 쓰여진 적이 있는지 여부를 나타내는 더티 비트(Dirty Bit), 페이지가 현재 메인 메모리(112) 상에 존재하는지 여부를 나타내는 현존 비트(Present Bit) 등을 더 포함할 수 있다. 페이지 테이블(113)은 메인 메모리(112) 상에 존재할 수 있다.
중앙 처리 장치(111)는 먼저 메인 메모리(112)에 요청된 페이지가 저장되어 있는지 확인한다. 중앙 처리 장치(111)는 메인 메모리(112)에 요청된 페이지가 없으면 페이지 테이블(113)을 참조하여 페이지의 논리 주소로부터 물리 주소를 얻는다. 중앙 처리 장치(111)는 인터럽트를 발생시키고 요청된 페이지를 물리 주소가 지시하는 장소로부터 메인 메모리(112)로 로드한다.
중앙 처리 장치(111)는 프로세스가 진행됨에 따라 변경되는 페이지 테이블(113)의 정보를 갱신한다. 예를 들어, 중앙 처리 장치(111)는 페이지의 물리 주소가 변경되거나, 페이지가 클린 페이지(clean page)에서 더티 페이지(dirty page)로 변경되면 변경된 정보를 페이지 테이블(113)에 기록한다.
메인 메모리(112)는 중앙 처리 장치(111)와 직접 데이터를 교환한다. 메인 메모리(112)는 중앙 처리 장치(111)의 실행에 요구되는 페이지를 저장한다. 메인 메모리(112)는 휘발성 메모리일 수 있다. 예를 들어, 메인 메모리(112)는 디램(DRAM) 또는 에스램(SRAM)일 수 있다. 그러나 이는 예시적인 것으로 본 발명은 이에 한정되지 않는다.
본 발명의 실시예에 있어서, 메모리 시스템(100)은 비휘발성 메모리(113)를더 포함한다. 비휘발성 메모리(113)는 메인 메모리(112)의 스왑 장치로 사용된다. 비휘발성 메모리(113)는 중앙 처리 장치(111)와 직접 데이터를 교환할 수 있다. 따라서 비휘발성 메모리(113)의 속도는 메인 메모리(112)와 동일하다.
비휘발성 메모리(113)는 상변화 메모리(PCM: Phase Change Memory), 자기 메모리(MRAM: Magentic Random Access Memory), 강자성 메모리(FRAM: Ferromagentic Random Access Memory) 혹은 플래시 메모리(Flash memory)일 수 있다. 그러나 이는 예시적인 것으로 본 발명은 이에 한정되지 않는다.
디스크(120)는 데이터가 저장되는 저장 장치이다. 디스크는 전원 공급이 중단되어도 저장된 데이터가 소멸되지 않는 비휘발성 메모리로 구현된다. 디스크(120)는 플래시 메모리 저장장치, 하드 디스크(HDD: Hard Disk Drive) 혹은 솔리드 스테이트 드라이브(SSD: Solid State Drive)일 수 있다. 그러나 이는 예시적인 것으로 본 발명은 이에 한정되지 않는다.
디스크(120)는 중앙 처리 장치(111)와 간접적으로 데이터를 교환한다. 디스크(120)에 저장된 데이터는 메인 메모리(112)에 로드된 후 중앙 처리장치(110)에 의해 처리된다.
일반적인 메모리 시스템은 디스크의 일부 공간을 스왑 공간으로 사용한다. 따라서 일반적인 메모리 시스템에서 메인 메모리에서 스왑 아웃(swap-out) 된 페이지는 디스크에 저장된다. 반면 본 발명의 메모리 시스템(100)은 비휘발성 메모리(113)를 스왑 장치로 사용한다.
메인 메모리(112)와 비휘발성 메모리(113) 사이의 억세스 속도는 메인 메모리(112)와 디스크(120) 사이의 억세스 속도에 비해 빠르다. 따라서 본 발명의 메모리 시스템(100)은 디스크(120)로부터 데이터를 로드하는 대신 비휘발성 메모리(113)로부터 데이터를 로드하여 지연 시간(latency)을 단축할 수 있다.
또한 일반적인 메모리 시스템은 메모리가 부족한 경우 교체 대상(victim)이 된 코드 페이지는 스왑하지 않고 폐기(discard)한다. 반면 본 발명의 메모리 시스템(100)은 빈번하게 사용되는 코드 페이지는 스왑 아웃(swap-out) 하여 스왑 장치에 저장한다. 따라서 본 발명의 메모리 시스템(100)은 디스크(120)에 억세스하지 않고도 해당 페이지를 사용할 수 있다. 따라서 본 발명의 메모리 시스템(100)은 메모리 부족시 혹은 프로세스의 재시작시 지연 시간을 더욱 단축할 수 있다.
도 2는 본 발명의 메모리 시스템에서 데이터 페이지의 라이프 사이클에 대한 실시예를 도시하는 도면이다. 도 1 및 도 2를 참조하면, 메인 메모리에 저장되는 데이터 페이지의 라이프 사이클은 이하와 같다.
프로세스가 실행됨에 따라 호스트로부터 데이터 페이지가 처음 요청되면, 중앙 처리 장치(111)는 데이터 페이지에 대한 공간을 메인 메모리(112)에 할당한다(①). 메인 메모리(112)에 저장된 데이터 페이지는 프로세스의 진행에 따라 참조되어 사용된다.
프로세스가 진행됨에 따라 메인 메모리(112)에 지속적으로 페이지가 저장되면 메인 메모리(112)는 추가적인 페이지를 저장할 공간이 부족해진다. 중앙 처리 장치(111)는 메인 메모리(112)의 메모리가 부족해지면 메인 메모리(112)에 저장된 페이지에 대하여 페이지 교체(page replace) 동작을 실시한다.
페이지 교체 동작은 메인 페이지(120)에 저장된 특정 페이지를 교체 대상(victim)으로 지정하고, 새로 사용이 요구되는 페이지를 교체 대상이 된 페이지 대신 메인 메모리(112)에 저장하는 동작이다. 교체 대상이 된 페이지는 폐기(discard)되거나 비휘발성 메모리(113)로 스왑 아웃(swap-out) 된다.
데이터 페이지가 교체 대상으로 선택되면, 선택된 데이터 페이지는 폐기되지 않고 스왑 아웃 된다. 즉, 선택된 데이터 페이지는 메인 메모리(112)에서 제거되어 비휘발성 메모리(113)에 저장된다(②).
중앙 처리 장치(111)가 다시 데이터 페이지를 참조할 것을 요청하면, 데이터 페이지는 비활성화 메모리(130)로부터 메인 메모리(112)로 스왑 인(swap-in)된다(③). 즉, 비활성화 메모리(130)에 저장된 데이터 페이지가 메인 메모리(112)로 로드된다. 로드된 데이터 페이지는 다시 교체 대상이 될 때까지 메인 메모리에 잔존한다.
따라서, 데이터 페이지는 메인 메모리에 저장된 뒤, 교체 대상으로 지정되면 언제나 비휘발성 메모리(113)로 스왑 아웃(swap-out) 된다. 비휘발성 메모리는 CPU와 직접 데이터를 교환할 수 있어 디스크에 비하여 억세스 속도가 빠르므로, 본 발명의 메모리 시스템(100)은 일반적인 메모리 시스템에 비하여 데이터 페이지를 메인 메모리로 로드하기 위한 지연 시간이 단축된다.
도 3은 본 발명의 메모리 시스템에서 코드 페이지의 라이프 사이클에 대한 실시예를 도시하는 도면이다. 도 1 및 도 3를 참조하면, 메인 메모리에 저장되는 코드 페이지의 라이프 사이클은 이하와 같다.
프로세스가 실행됨에 따라 호스트로부터 코드 페이지가 처음 요청되면, 디스크(120)에 저장된 코드 페이지는 메인 메모리(112)로 로드된다(①). 메인 메모리(112)에 로드된 코드 페이지는 프로세스의 진행에 따라 참조되어 사용된다.
프로세스가 진행됨에 따라 메인 메모리(112)의 메모리가 부족해지면, 중앙 처리 장치(111)는 메인 메모리(112)에 저장된 페이지에 대하여 페이지 교체 동작을 실시한다.
코드 페이지가 교체 대상(victim)으로 선택되면, 선택된 코드 페이지는 폐기(discard)된다. 즉, 선택된 코드 페이지는 메인 메모리(112)에서 제거된다(②).
중앙 처리 장치(111)가 다시 코드 페이지를 참조할 것을 요청하면, 디스크(120)에 저장된 코드 페이지는 다시 메인 메모리로 로드된다(③).
코드 페이지의 사용 빈도를 확인하기 위하여, 본 실시예의 페이지 테이블은 2 비트로 구성된 리폴트(refault) 비트를 더 포함한다. 리폴트 비트는 코드 페이지가 교체 대상으로 선정되어 폐기될 때마다 1씩 증가된다.
도 4는 본 발명의 실시예에 의한 페이지 테이블의 일실시예를 도시하는 표이다. 도 4를 참조하면, 논리 주소 1 및 논리 주소 3을 가지는 페이지는 리폴트 비트가 0이므로 한 번도 교체 대상으로 선정되지 않은 페이지이다. 반면, 논리 주소 2를 가지는 페이지는 리폴트 비트가 11이므로 3번 교체 대상으로 선정된 페이지이다.
코드 페이지가 다시 교체 대상으로 선택되면, 선택된 코드 페이지의 리폴트 비트가 확인된다. 선택된 코드 페이지의 리폴트 비트가 3 미만이면 선택된 코드 페이지는 폐기(discard)된다(②). 도 4의 논리 주소 1 및 논리 주소 3을 가지는 페이지는 코드 페이지인 경우 교체 대상으로 선정되면 폐기될 것이다.
본 실시예에서 리폴트 비트가 3 이상이면 코드 페이지는 자주 사용되는 페이지로 판단된다. 이에 따라 코드 페이지는 폐기되지 않고 비휘발성 메모리(113)에 스왑 아웃(swap-out) 된다(④). 도 4의 논리 주소 2를 가지는 페이지는 코드 페이지인 경우 비휘발성 메모리(113)에 스왑 아웃 될 것이다. 페이지가 폐기되지 않고 스왑 아웃 되는 경우에는 리폴트 비트가 증가되지 않는다.
호스트가 스왑 아웃 된 코드 페이지를 참조할 것을 요청하면, 중앙 처리 장치(111)는 페이지 테이블을 참조하여 코드 페이지의 물리 주소를 탐색한다.
코드 페이지는 비휘발성 메모리(113)에 스왑 아웃 된 상태이므로 중앙 처리 장치(111)는 페이지 테이블에 저장된 물리 주소를 통해 비활성화 메모리(130)로부터 메인 메모리(112)로 코드 페이지를 스왑 인(swap-in)한다(⑤). 로드된 코드 페이지는 다시 교체 대상이 될 때까지 메인 메모리에 잔존한다. 로드된 코드 페이지는 다시 교체 대상이 되어도 이미 비휘발성 메모리에 저장되어 있으므로 폐기되지 않고 스왑 아웃(swap-out) 된다.
따라서, 코드 페이지는 디스크(120)로부터 로드된 뒤, 교체 대상으로 지정되면 그 사용 빈도수에 따라 비휘발성 메모리(113)로 스왑 아웃(swap-out) 된다. 비휘발성 메모리는 디스크에 비하여 억세스 속도가 빠르므로, 본 발명의 메모리 시스템(100)은 코드 페이지를 메인 메모리(110)로 로드하기 위한 지연 시간이 단축된다. 또한 모든 코드 페이지를 비휘발성 메모리(113)에 저장하는 것이 아니라 사용 빈도수가 높은 코드 페이지를 선택적으로 저장하므로 메모리 용량 및 관리 비용에 있어 효율적이다.
본 실시예에서는 각 코드 페이지의 사용 빈도수를 측정하기 위하여 페이지 테이블의 리폴트 비트를 정의하여 사용하었으나, 이는 예시적인 것이다. 본 발명에 있어 코드 페이지의 빈도수를 측정하는 방법은 이에 한정되지 않음은 충분히 이해될 것이다. 또한 본 실시예에서는 코드 페이지가 3회 폐기(discard)되었는지 여부가 빈도수의 판단 기준으로서 사용되었으나, 본 발명이 이에 한정되지 않음 역시 충분히 이해될 것이다.
또한 본 실시예에서는 메인 메모리(112)의 용량이 부족해진 경우에 코드 페이지 혹은 데이터 페이지가 교체 대상으로 선정되였으나, 본 발명에서 페이지가 교체 대상으로 지정되는 것은 메인 메모리(112)의 용량이 부족한 경우에 한정되지 않는다. 페이지는 메인 메모리(112)의 용량이 부족한 경우 이외의 미리 지정된 조건에 따라 교체 대상으로 지정될 수 있으며, 교체 대상이 된 페이지는 본 실시예에서 설명된 바와 같이 빈도수에 따라 비휘발성 메모리(113)로 스왑된다.
도 5는 본 발명의 실시예에 의한 페이지 스왑 방법을 도시하는 순서도이다. 도 5를 참조하면, 페이지 스왑 방법은 아래와 같이 진행될 것이다.
S100 단계에서, 프로세스가 시작되면 호스트는 프로세스의 실행에 요구되는 코드 페이지 및 데이터 페이지를 중앙 처리 장치로 요청한다.
S110 단계에서, 요청된 페이지가 메인 메모리에 저장되어 있는지 판별된다. 요청된 페이지가 메인 메모리에 존재하면 메인 메모리에 저장된 페이지를 참조하여 프로세스의 동작이 진행된다.
S120 단계에서, 메인 메모리에 요청된 페이지가 존재하지 않으면, 요청된 페이지가 비휘발성 메모리에 스왑되어 있는지 여부가 판별된다.
S130 단계에서, 비휘발성 메모리에 요청된 페이지가 존재하면 비휘발성 메모리에 저장된 페이지가 메인 메모리로 로드된다.
S135 단계에서, 반면 비휘발성 메모리에 요청된 페이지가 존재하지 않으면 디스크에 저장된 요청된 페이지가 메인 메모리로 로드된다.
S140 단계에서, 로드된 페이지를 메인 메모리에 저장하기 위하여 메인 메모리에 공간이 남아 있는지 판별된다. 메인 메모리에 페이지를 저장할 공간이 존재하면 로드된 페이지가 메인 메모리에 저장되어 사용된다.
S150 단계에서, 메인 메모리의 공간이 부족하여 로드된 페이지가 저장될 수 없으면, 페이지 교체 동작이 실행된다.
S160 단계에서, 교체 대상으로 선택된 페이지 대신 로드된 페이지가 메인 메모리에 저장되어 사용된다.
따라서 본 실시예에 의한 페이지 스왑 방법은 디스크 대신 비휘발성 메모리를 스왑 장치로 사용하므로 일반적인 페이지 스왑 방법에 비하여 지연 시간이 단축된다.
도 6은 본 발명의 실시예에 의한 페이지 교체 방법을 도시하는 순서도이다. 도 6을 참조하면, 페이지 교체 방법은 아래와 같이 진행될 것이다.
S200 단계에서, 메인 메모리의 메모리가 부족해지면, 중앙 처리 장치는 메인 메모리에 대한 페이지 교체 동작을 요청한다.
S210 단계에서, 페이지 교체 동작이 요청되면 페이지 교체 정책에 따라 교체 대상(victim)이 선택된다. 페이지 교체 정책은 교체 대상이 될 페이지를 선정하는 정책이다. 페이지 교체 정책의 종류는 다양하다. 예를 들어 페이지 교체 정책은 임의 페이지 교체 정책(RPR: Random Page Replacement), 선입 선출 정책(FIFO: First In First Out), 최소 최근 사용 정책(LRU: Least Recently Used) 등일 수 있다.
본 실시예에서는 페이지 교체 정책으로 최소 최근 사용 정책을 채택한다. 최소 최근 사용 정책은 메인 메모리에 저장된 페이지 중 가장 오랫동안 사용되지 않은 페이지를 교체 대상으로 선정하는 정책이다. 그러나 이는 예시적인 것으로 본 실시예는 이에 한정되지 않는다.
S220 단계에서, 교체 대상이 선정되면, 교체 대상으로 선정된 페이지가 데이터 페이지인지 코드 페이지인지 여부가 판별된다.
S235 단계에서, 선정된 페이지가 데이터 페이지이면 선정된 페이지는 비휘발성 메모리로 스왑 아웃 된다.
S230 단계에서, 선정된 페이지가 코드 페이지이면 페이지 테이블을 참조하여 선정된 페이지의 리폴트 비트(refault bit)가 판별된다. 리폴트 비트가 2보다 크면 선정된 페이지는 자주 사용되는 페이지라 판단되어 비휘발성 메모리로 스왑 아웃 된다.
스왑 아웃 동작이 수행될 때 비휘발성 메모리에 사용 가능한 페이지 프레임이 있는지 먼저 판별되어야 한다. 비휘발성 메모리의 용량이 부족한 경우, 비휘발성 메모리에 대하여 페이지 교체 정책에 따라 교체 대상으로 선정된 페이지가 제거된다.
본 실시예에서는 비휘발성 메모리에 대한 페이지 교체 정책 역시 최소 최근 사용 정책이 사용된다. 비휘발성 메모리에 대한 교체 대상으로 선정된 페이지가 코드 페이지인 경우, 선정된 코드 페이지는 비휘발성 메모리에서 폐기되고, 대응되는 리폴트 비트는 다시 0으로 세팅된다.
S240 단계에서, 선정된 페이지의 리폴트 비트가 2 이하이면 중앙 처리 장치는 선정된 페이지의 리폴트 비트를 1 증가시킨다.
S250 단계에서, 중앙 처리 장치는 변경된 페이지의 리폴트 비트에 대하여 페이지 테이블을 수정한다.
S260 단계에서, 교체 대상으로 선정된 페이지는 폐기된다.
더하여, 본 실시예에서는 교체 대상을 선정하는 과정에 대하여 각 페이지에 대한 우선 순위가 설정될 수 있다. 우선 순위는 페이지의 종류 및 이미 스왑되었는지 여부에 따라 부여될 수 있다. 최소 최근 사용 정책에 의한 교체 대상 선정시 사용 빈도가 동일한 페이지가 복수 존재하는 경우, 우선 순위가 높은 페이지부터 교체 대상으로 선정된다.
본 실시예에서 우선 순위는 비휘발성 메모리에 이미 스왑된 코드 페이지, 스왑되지 않은 코드 페이지 그리고 데이터 페이지 순으로 선정된다. 비휘발성 메모리에 이미 스왑된 코드 페이지가 우선적으로 교체 대상으로 선정되면 비휘발성 메모리에 데이터를 쓰는 횟수가 감소되어 효율적이다.
따라서 본 발명의 실시예에 의한 페이지 교체 방법은 교체 대상이 된 페이지를 코드 페이지와 데이터 페이지로 분류한다. 그리고 코드 페이지가 교체 대상으로 선정되면 페이지의 사용 빈도수에 따라 스왑 여부를 결정한다. 이를 통해 본 발명의 실시예에 의한 페이지 교체 방법은 프로세스 실행 중 요청된 코드 페이지가 메인 메모리에 적재되어 있지 않아도, 자주 사용되는 코드 페이지인 경우에는 스왑 장치에 스왑되어 있어 빠르게 로드될 수 있다.
도 7은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(1000)은 호스트(1100)와 메모리 카드(1200)를 포함한다. 호스트(1100)는 호스트 컨트롤러(1110), 호스트 접속 유닛(1120), 그리고 디램(1130)을 포함한다.
호스트(1100)는 메모리 카드(1200)에 데이터를 쓰거나, 메모리 카드(1200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(1110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(1100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(1120)을 통해 메모리 카드(1200)로 전송한다. 디램(1130)은 호스트(1100)의 메인 메모리이다.
메모리 카드(1200)는 카드 접속 유닛(1210), 카드 컨트롤러(1220), 그리고 플래시 메모리(1230)를 포함한다. 카드 컨트롤러(1220)는 카드 접속 유닛(1210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(1220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(1230)에 저장한다. 플래시 메모리(1230)는 호스트(1100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(1100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 7에 도시된 메모리 카드 시스템(1000)은 카드 컨트롤러(1220) 내에 비휘발성 메모리(도시되지 않음)를 스왑 장치로서 포함할 수 있다. 앞에서 설명한 바와 같이, 본 발명은 비휘발성 메모리를 스왑 장치로 사용하여 페이지 스왑에 요구되는 지연 시간을 단축시킨다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 8을 참조하면, SSD 시스템(2000)은 호스트(2100)와 SSD(2200)를 포함한다. 호스트(2100)는 호스트 인터페이스(2111), 호스트 컨트롤러(2120), 그리고 디램(2130)을 포함한다.
호스트(2100)는 SSD(2200)에 데이터를 쓰거나, SSD(2200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(2120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(2111)를 통해 SSD(2200)로 전송한다. 디램(2130)은 호스트(2100)의 메인 메모리이다.
SSD(2200)는 호스트 인터페이스(2211)를 통해 호스트(2100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 2221)를 통해 전원을 입력받는다. SSD(2200)는 복수의 불휘발성 메모리(2201~220n), SSD 컨트롤러(2210), 그리고 보조 전원 장치(2220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(2201~220n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(2201~220n)는 SSD(2200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(2201~220n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(2210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(2210)는 호스트 인터페이스(2211)를 통해 호스트(2100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(2210)는 호스트(2100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(2210)의 내부 구성은 도 9를 참조하여 상세하게 설명된다.
보조 전원 장치(2220)는 전원 커넥터(2221)를 통해 호스트(2100)와 연결된다. 보조 전원 장치(2220)는 호스트(2100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(2220)는 SSD(2200) 내에 위치할 수도 있고, SSD(2200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(2220)는 메인 보드에 위치하며, SSD(2200)에 보조 전원을 제공할 수도 있다.
도 9는 도 8에 도시된 SSD 컨트롤러(2210)의 구성을 예시적으로 보여주는 블록도이다. 도 9를 참조하면, SSD 컨트롤러(2210)는 NVM 인터페이스(2211), 호스트 인터페이스(2212), 제어 유닛(2213), 에스램(2214), 백업 비휘발성 메모리(2215)를 포함한다.
NVM 인터페이스(2211)는 호스트(2100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(2211)는 불휘발성 메모리(2201~220n)로부터 읽은 데이터를 호스트 인터페이스(2212)를 경유하여 호스트(2100)로 전달한다.
호스트 인터페이스(2212)는 호스트(2100)의 프로토콜에 대응하여 SSD(2200)와의 인터페이싱을 제공한다. 호스트 인터페이스(2212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(2100)와 통신할 수 있다. 또한, 호스트 인터페이스(2212)는 호스트(2100)가 SSD(2200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
제어 유닛(2213)은 호스트(2100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(2213)은 호스트 인터페이스(2212)나 NVM 인터페이스(2211)를 통해 호스트(2100)나 불휘발성 메모리(2201~220n)를 제어한다. 제어 유닛(2213)은 SSD(2200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(2201~220n)의 동작을 제어한다.
에스램(2214)은 불휘발성 메모리(2201~220n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(2214)은 호스트(2100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(2214)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(2220)를 이용하여 불휘발성 메모리(2201~220n)에 저장될 수 있다.
백업 불휘발성 메모리(2215)는 에스램(2214)의 스왑 장치로 사용된다. 백업 불휘발성 메모리(2215)는 에스램(2214)에 저장된 데이터 페이지를 저장하도록 구현될 수 있다. 또, 백업 불휘발성 메모리(2215)는 에스램(2214)에 저장된 코드 페이지를 사용 빈도수에 따라 저장하도록 구현될 수 있다.
다시 도 8을 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(2000)은 백업 비휘발성 메모리(2215)를 에스램(2214)의 스왑 장치로 사용하여 페이지 스왑에 요구되는 지연 시간을 단축시키므로 빠른 동작 속도를 가진다.
도 8 및 도 9에서 SRAM(2214)은 불휘발성 메모리로 대체될 수도 있다. 즉, 본 발명의 다른 실시 예에 따른 SSD 시스템(2000)은 SRAM(2214)의 역할을 플래시 메모리, PRAM, RRAM, MRAM 등의 불휘발성 메모리가 수행하도록 구현될 수도 있다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(3000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 10을 참조하면, 전자 장치(3000)는 메모리 시스템(3100), 전원 장치(3200), 보조 전원 장치(3250), 중앙처리장치(3300), 디램(3400), 그리고 사용자 인터페이스(3500)를 포함한다. 메모리 시스템(3100)은 플래시 메모리(3110) 및 메모리 컨트롤러(3120)를 포함한다. 메모리 시스템(3100)은 전자 장치(3000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(3000)는 백업 비휘발성 메모리를 스왑 장치로 사용하여 페이지 스왑에 요구되는 지연 시간을 단축시키므로 빠른 동작 속도를 가진다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형될 수 있다. 예를 들어, 중앙 제어 장치, 메인 메모리, 비휘발성 메모리 및 디스크의 세부적 구성은 사용 환경이나 용도에 따라 다양하게 변화 또는 변경될 수 있을 것이다. 본 발명에서 사용된 특정한 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이며 그 의미를 한정하거나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어서는 안되며 후술하는 특허 청구범위 뿐만 아니라 이 발명의 특허 청구범위와 균등한 범위에 대하여도 적용되어야 한다.
100: 메모리 시스템
110: 중앙 처리 장치
120: 메인 메모리
130: 비휘발성 메모리
140: 디스크
110: 중앙 처리 장치
120: 메인 메모리
130: 비휘발성 메모리
140: 디스크
Claims (10)
- 중앙 처리 장치;
상기 중앙 처리 장치와 직접 데이터를 교환하는 비휘발성 메모리; 및
상기 중앙 처리 장치의 작업시 디스크 및 상기 비휘발성 메모리로부터 필요한 데이터가 로드되는 메인 메모리를 포함하며,
상기 비휘발성 메모리는 상기 메인 메모리의 스왑 장치로 이용되고,
상기 중앙 처리 장치는 상기 메인 메모리에서 교체 대상으로 선정된 코드 페이지를 상기 비휘발성 메모리로 스왑하는 메모리 시스템. - 제 1항에 있어서,
상기 중앙 처리 장치는 상기 교체 대상으로 선정된 코드 페이지를 사용 빈도에 따라 스왑하는 메모리 시스템. - 제 2항에 있어서,
상기 메인 메모리는 상기 중앙 처리 장치에 의하여 참조되는 페이지 테이블을 포함하고,
상기 페이지 테이블은 상기 메인 메모리에 저장된 코드 페이지들의 교체 대상 선정 횟수를 저장하는 리폴트 비트를 포함하는 메모리 시스템. - 제 3항에 있어서,
상기 중앙 처리 장치는 상기 교체 대상으로 선정된 코드 페이지의 상기 리폴트 비트가 미리 지정된 값 이상이면 상기 교체 대상으로 선정된 코드 페이지를 스왑하는 메모리 시스템. - 제 1항에 있어서,
상기 중앙 처리 장치는 최소 최근 사용 정책(LRU)에 의하여 교체 대상을 선정하는 메모리 시스템. - 제 1항에 있어서,
상기 중앙 처리 장치는 교체 대상의 선정시 페이지의 종류 및 이미 스왑되었는지 여부에 따라 우선 순위를 부여하는 메모리 시스템. - 제 1항에 있어서,
프로세스 시작시 요구되는 코드 페이지가 상기 메인 메모리에 존재하지 않고 상기 비휘발성 메모리에 존재하는 경우에는 상기 비휘발성 메모리에 저장된 상기 코드 페이지가 상기 메인 메모리로 로드되는 메모리 시스템. - 제 7항에 있어서,
상기 비휘발성 메모리에 상기 코드 페이지가 존재하지 않으면 상기 디스크에 저장된 상기 코드 페이지가 상기 메인 메모리로 로드되는 메모리 시스템. - 메모리 시스템의 페이지 교체 방법에 있어서,
상기 메모리 시스템은 중앙 처리 장치;
상기 중앙 처리 장치와 직접 데이터를 교환하는 비휘발성 메모리; 및
상기 중앙 처리 장치의 작업시 디스크 및 상기 비휘발성 메모리로부터 필요한 데이터가 로드되는 메인 메모리를 포함하며,
상기 메모리 시스템의 페이지 교체 방법은
페이지 교체 정책에 의하여 상기 메인 메모리의 교체 대상이 선정되는 단계;
상기 선정된 교체 대상이 코드 페이지이면 사용 빈도에 따라 상기 메인 메모리로부터 상기 비휘발성 메모리로의 스왑 여부가 결정되는 단계를 포함하는 페이지 교체 방법. - 제 9항에 있어서,
상기 사용 빈도는 리폴트 비트에 의하여 판단되는 단계를 더 포함하며,
상기 리폴트 비트는 코드 페이지가 상기 교체 대상으로 선정될 때마다 증가되는 페이지 교체 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120034429A KR101924022B1 (ko) | 2012-04-03 | 2012-04-03 | 메모리 시스템 및 그것의 페이지 교체 방법 |
US13/754,161 US9195579B2 (en) | 2012-04-03 | 2013-01-30 | Page replacement method and memory system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120034429A KR101924022B1 (ko) | 2012-04-03 | 2012-04-03 | 메모리 시스템 및 그것의 페이지 교체 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130112210A true KR20130112210A (ko) | 2013-10-14 |
KR101924022B1 KR101924022B1 (ko) | 2019-02-22 |
Family
ID=49236624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120034429A KR101924022B1 (ko) | 2012-04-03 | 2012-04-03 | 메모리 시스템 및 그것의 페이지 교체 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9195579B2 (ko) |
KR (1) | KR101924022B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150042652A (ko) * | 2013-10-11 | 2015-04-21 | 삼성전자주식회사 | 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템 |
KR20200117032A (ko) * | 2018-03-21 | 2020-10-13 | 마이크론 테크놀로지, 인크. | 하이브리드 메모리 시스템 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9472248B2 (en) * | 2014-03-28 | 2016-10-18 | Intel Corporation | Method and apparatus for implementing a heterogeneous memory subsystem |
US20160098203A1 (en) * | 2014-12-18 | 2016-04-07 | Mediatek Inc. | Heterogeneous Swap Space With Dynamic Thresholds |
US10241683B2 (en) * | 2015-10-26 | 2019-03-26 | Nxp Usa, Inc. | Non-volatile RAM system |
KR102507743B1 (ko) * | 2016-02-04 | 2023-03-09 | 삼성전자주식회사 | 메모리 관리 방법 및 그 전자 장치 |
US9841921B2 (en) * | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
KR20180044095A (ko) | 2016-10-21 | 2018-05-02 | 삼성전자주식회사 | 전자 시스템 및 그것의 동작 방법 |
KR102500618B1 (ko) * | 2017-12-12 | 2023-02-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10528489B2 (en) | 2018-02-28 | 2020-01-07 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
EP4357903A1 (en) * | 2021-12-23 | 2024-04-24 | Samsung Electronics Co., Ltd. | Method for managing memory and electronic device using same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294304A1 (en) * | 2005-06-24 | 2006-12-28 | Research In Motion Limited | System and method for managing memory in a mobile device |
US20090083478A1 (en) * | 2007-03-28 | 2009-03-26 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
US20090216945A1 (en) * | 2008-02-27 | 2009-08-27 | Kentaro Shimada | Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493663A (en) | 1992-04-22 | 1996-02-20 | International Business Machines Corporation | Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses |
US8266367B2 (en) | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
US6683817B2 (en) | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
US6950919B2 (en) | 2003-03-26 | 2005-09-27 | Hewlett-Packard Development Company, L.P. | Computer system with operating system to dynamically adjust the main memory |
US7321966B2 (en) | 2003-05-29 | 2008-01-22 | Xerox Corporation | Machine post-launch configuration and option upgrade |
US7334261B2 (en) | 2003-07-30 | 2008-02-19 | Xerox Corporation | Machine post-launch configuration and option upgrade with master key |
US7197633B2 (en) | 2003-07-30 | 2007-03-27 | Xerox Corporation | Wireless machine post-launch configuration and option upgrade |
US20060041938A1 (en) | 2004-08-20 | 2006-02-23 | Axalto Inc. | Method of supporting SSL/TLS protocols in a resource-constrained device |
US7526059B1 (en) | 2007-12-27 | 2009-04-28 | Sandisk Il Ltd. | Balanced Grey code utilization to increase NVM endurance |
KR100992079B1 (ko) | 2008-12-11 | 2010-11-04 | 명지대학교 산학협력단 | 플래시 메모리를 사용하는 스왑 저장장치에서의 스왑공간 관리방법 |
KR101562973B1 (ko) | 2009-05-22 | 2015-10-26 | 삼성전자 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR101612922B1 (ko) | 2009-06-09 | 2016-04-15 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템 관리 방법 |
KR20100133710A (ko) | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 시스템 및 그것의 코드 데이터 로딩 방법 |
KR20120066198A (ko) * | 2010-12-14 | 2012-06-22 | 삼성전자주식회사 | 휘발성 메모리를 포함하는 저장 장치의 데이터 저장 방법 |
US9122631B2 (en) * | 2011-11-07 | 2015-09-01 | Peking University | Buffer management strategies for flash-based storage systems |
US9201810B2 (en) * | 2012-01-26 | 2015-12-01 | Microsoft Technology Licensing, Llc | Memory page eviction priority in mobile computing devices |
-
2012
- 2012-04-03 KR KR1020120034429A patent/KR101924022B1/ko active IP Right Grant
-
2013
- 2013-01-30 US US13/754,161 patent/US9195579B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294304A1 (en) * | 2005-06-24 | 2006-12-28 | Research In Motion Limited | System and method for managing memory in a mobile device |
US20090083478A1 (en) * | 2007-03-28 | 2009-03-26 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
US20090216945A1 (en) * | 2008-02-27 | 2009-08-27 | Kentaro Shimada | Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150042652A (ko) * | 2013-10-11 | 2015-04-21 | 삼성전자주식회사 | 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템 |
KR20200117032A (ko) * | 2018-03-21 | 2020-10-13 | 마이크론 테크놀로지, 인크. | 하이브리드 메모리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US9195579B2 (en) | 2015-11-24 |
KR101924022B1 (ko) | 2019-02-22 |
US20130262738A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101924022B1 (ko) | 메모리 시스템 및 그것의 페이지 교체 방법 | |
US20200194075A1 (en) | Memory system and control method | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US9128618B2 (en) | Non-volatile memory controller processing new request before completing current operation, system including same, and method | |
US20160231941A1 (en) | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US8195971B2 (en) | Solid state disk and method of managing power supply thereof and terminal including the same | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
US9436267B2 (en) | Data storage device | |
CN114442914B (zh) | 存储器*** | |
KR20140000751A (ko) | 데이터 저장 장치의 동작 방법 | |
KR20120112965A (ko) | 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
CN103838676B (zh) | 数据存储***、数据存储方法及pcm桥 | |
US10635356B2 (en) | Data management method and storage controller using the same | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US20200356491A1 (en) | Data storage device and method for loading logical-to-physical mapping table thereof | |
JP2011070365A (ja) | メモリシステム | |
KR20130024271A (ko) | 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템 | |
CN115617503A (zh) | 用于异构存储器***中的负载均衡的***和方法 | |
US20130173855A1 (en) | Method of operating storage device including volatile memory and nonvolatile memory | |
JP2020191055A (ja) | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 |
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 |