KR20120112965A - 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 - Google Patents

비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 Download PDF

Info

Publication number
KR20120112965A
KR20120112965A KR1020110030590A KR20110030590A KR20120112965A KR 20120112965 A KR20120112965 A KR 20120112965A KR 1020110030590 A KR1020110030590 A KR 1020110030590A KR 20110030590 A KR20110030590 A KR 20110030590A KR 20120112965 A KR20120112965 A KR 20120112965A
Authority
KR
South Korea
Prior art keywords
swap
memory
page
data processing
core
Prior art date
Application number
KR1020110030590A
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 KR1020110030590A priority Critical patent/KR20120112965A/ko
Priority to US13/439,349 priority patent/US9053019B2/en
Publication of KR20120112965A publication Critical patent/KR20120112965A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

다수의 코어들을 포함하는 프로세서를 포함하는 데이터 처리 장치(data processing device)에서 수행되는 스왑(swap) 방법이 개시된다. 상기 스왑 방법은 스왑 메모리가 상기 데이터 처리 장치에 접속된 후, 상기 다수의 코어들 중 적어도 하나의 코어가 상기 스왑 메모리의 빈 페이지를 찾는 단계, 상기 적어도 하나의 코어가 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여, 메인 메모리의 스왑할 페이지를 선택하는 단계, 및 상기 적어도 하나의 코어가 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑하는 단계를 포함한다.

Description

비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법{NONVOLATILE MEMORY DEVICE, DATA PROCESSING DEVICE USING THE SAME, AND SWAPPING METHOD USING THEM}
본 발명의 개념에 따른 실시 예는 데이터 처리 장치에서 수행되는 스왑 방법에 관한 것으로, 특히 다수의 코어들을 포함하는 프로세서를 포함하는 데이터 처리 장치 및 비휘발성 메모리 장치를 이용한 스왑 방법, 상기 스왑 방법이 수행되는 데이터 처리 장치, 스왑 메모리로 사용되는 비휘발성 메모리에 관한 것이다.
운영체제(operating system; OS)는 가상 메모리를 사용하여 메인 메모리의 메모리 용량의 한계를 극복한다. 이를 위해 상기 운영체계는 HDD(hard disk drive)를 스왑 메모리(swap memory)로 사용하고 있다. 즉, 메인 메모리(main memory)의 여유 공간이 부족한 경우, 상기 메인 메모리 내의 일부 데이터가 상기 HDD로 스왑된다.
그러나, 상기 방식으로 플래시 메모리 장치(flash memory device)와 같은 비휘발성 메모리 장치(nonvolatile memory device)를 스왑 메모리로 사용하는 것은 비효율적이다. 상기 플래시 메모리 장치는 HDD에 비해 빠른 접근 속도를 가지며, 웨어-레벨링(wear-leveling)이나 가비지 콜렉션(garbage collection) 등과 같은 복잡한 기능을 수행하기 때문이다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 프로세서에 포함된 다수의 코어들 각각이 스왑핑을 수행할 수 있는 스왑 방법, 상기 스왑 방법을 수행하기 위한 데이터 처리 장치, 및 상기 데이터 처리 장치의 스왑 메모리로써 사용되는 비휘발성 메모리 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 스왑 방법은, 다수의 코어들을 포함하는 프로세서를 포함하는 데이터 처리 장치(data processing device)에서 수행되는 스왑(swap) 방법으로써, 스왑 메모리가 상기 데이터 처리 장치에 접속된 후, 상기 다수의 코어들 중 적어도 하나의 코어가 상기 스왑 메모리의 빈 페이지를 찾는 단계, 상기 적어도 하나의 코어가 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여, 메인 메모리의 스왑할 페이지를 선택하는 단계, 및 상기 적어도 하나의 코어가 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑하는 단계를 포함한다.
또한, 상기 스왑 방법은 상기 적어도 하나의 코어가 상기 스왑할 페이지에 대한 정보를 저장하는 페이지 테이블을 업데이트하는 단계를 더 포함할 수 있다.
상기 다수의 메인 메모리 리스트들 각각은 라운드 로빈(round robin) 방식에 의해 업데이트 될 수 있다.
또한, 상기 다수의 메인 메모리 리스트들 각각은 LRU(least recently used) 리스트일 수 있다.
상기 스왑하는 단계는 상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하는 단계를 포함하고, 상기 리퀘스트를 전송하는 단계는 이미 전송된 다수의 리퀘스트들 각각에 포함된 스왑 메모리 주소의 연속성을 기준으로 다음 리퀘스트를 전송하기 위한 대기 시간을 조절할 수 있다.
또한, 상기 스왑하는 단계는 상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하는 단계를 포함하고, 상기 리퀘스트를 전송하는 단계는 상기 스왑 메모리로부터 출력된 예상 비지 타임(expected busy time)을 기준으로 다음 리퀘스트를 전송하기 위한 대기 시간을 조절할 수 있다.
상기 스왑 메모리는 상기 데이터 처리 장치로부터 착탈 가능(attachable or detachable)하다.
또한, 상기 스왑 메모리는 비휘발성 메모리(nonvolatile memory) 장치로 구현될 수 있고, 상기 데이터 처리 장치는 컴퓨터일 수 있다.
또한, 상기 스왑 메모리는 플래시 메모리(flash memory) 장치로 구현될 수 있다.
본 발명의 실시예에 따른 비휘발성 메모리 장치는, 데이터 처리 장치의 스왑 메모리(swap memory)로써 사용될 수 있고, 다수의 페이지들을 포함하는 메모리 셀 어레이, 예상 비지 타임을 저장하기 위한 레지스터, 및 상기 데이터 처리 장치로부터 수신한 제어 신호에 응답하여 상기 예상 비지 타임을 상기 데이터 처리 장치로 제공하는 제어기를 포함하고, 상기 데이터 처리 장치는, 상기 비휘발성 메모리 장치가 상기 데이터 처리 장치에 접속된 후, 상기 예상 비지 타임을 기준으로 리퀘스트를 전송하기 위한 대기 시간을 조절할 수 있다.
상기 비휘발성 메모리는 USB(universal serial bus) 메모리 장치일 수 있다.
또한, 상기 데이터 처리 장치는 컴퓨터일 수 있고, 상기 비휘발성 메모리 장치는 상기 컴퓨터로 착탈 가능하다.
본 발명의 실시예에 따른 데이터 처리 장치는 메인 메모리, 및 다수의 코어들을 포함하는 프로세서를 포함하고, 스왑 메모리가 접속된 후, 상기 다수의 코어들 중 적어도 하나의 코어는 상기 스왑 메모리의 빈 페이지를 찾고, 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여 상기 메인 메모리의 스왑할 페이지를 선택하고, 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑할 수 있다.
상기 메인 메모리 리스트는 LRU 리스트일 수 있다.
또한, 상기 다수의 메인 메모리 리스트들 각각은 라운드 로빈 방식에 의해 업데이트될 수 있다.
또한, 상기 데이터를 상기 빈 페이지로 스왑하기 위해 상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하기 위한 대기 시간은 이미 전송된 다수의 리퀘스트들 각각에 포함된 스왑 메모리 주소의 연속성을 기준으로 조절될 수 있다.
또한, 상기 데이터를 상기 빈 페이지로 스왑하기 위해 상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하기 위한 대기 시간은 상기 스왑 메모리로부터 출력되는 예상 비지 타임을 기준으로 조절될 수 있다.
또한, 상기 데이터 처리 장치는 컴퓨터일 수 있다.
본 발명의 실시 예에 따른 스왑 방법은 다수의 코어들 각각이 스왑할 페이지를 선택함으로써, 스왑 과정을 신속하게 수행할 수 있는 효과가 있다.
또한 본 발명의 실시 예에 따른 스왑 방법은 스왑 메모리의 상태를 예측하여 상기 스왑 메모리의 라이트 동작의 속도를 조절할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 블럭도이다.
도 2는 도 1에 도시된 제1 코어의 블럭도이다.
도 3은 도 1에 도시된 비휘발성 메모리 장치의 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 스왑 방법을 설명하기 위한 흐름도이다.
도 5는 도 4에 도시된 스왑 방법에 사용되는 라운드 로빈 방식을 설명하기 위한 LRU 테이블을 도시한다.
도 6은 도 4에 도시된 스왑 방법에서 대기 시간을 조절하는 과정을 설명하기 위한 일실시예이다.
도 7은 도 4에 도시된 스왑 방법에서 대기 시간을 조절하는 과정을 설명하기 위한 다른 실시예이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 블럭도이다.
도 1은 참조하면, 데이터 처리 시스템(10)은 데이터 처리 장치(100) 및 비휘발성 메모리 장치(300)를 포함한다.
비휘발성 메모리 장치(300)가 데이터 처리 시스템(10)에 접속된 후, 데이터 처리 시스템(10)은 비휘발성 메모리 장치(300)를 스왑 메모리로 사용할 수 있다.
데이터 처리 장치(100)는 프로세서(120), 메인 메모리(140), 및 HDD(hard disk drive; 160)를 포함한다.
프로세서(120)는 데이터를 처리하고 메인 메모리(140) 및 HDD(160)로부터 데이터를 리드하고, 메인 메모리(140) 및 HDD(160)로 데이터를 라이트한다.
프로세서(120)는 제1 코어와 제2 코어를 포함한다. 도 1에 도시된 프로세서(120)는 2 개의 코어를 포함하나, 본 발명이 이에 한정되는 것은 아니다. 실시예에 따라, 프로세서(120)는 2 이상의 코어를 포함할 수 있다.
상기 제1 코어와 상기 제2 코어 중 적어도 하나의 코어는 비휘발성 메모리(300), 즉 스왑 메모리의 빈 페이지를 찾고, 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여 메인 메모리(140)의 스왑할 페이지를 선택하고, 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑할 수 있다. 또한 상기 적어도 하나의 코어는 상기 스왑할 페이지에 대한 정보를 저장하는 페이지 테이블을 업데이트할 수 있다.
메인 메모리(140)는 프로세서(120)와 데이터를 교환할 수 있는 메모리로, 프로세서(120)에서 실행되는 운영체제(OS) 또는 애플리케이션의 실행 과정에서 이용되는 메모리이다. 메인 메모리(140)는 DRAM을 포함할 수 있다.
HDD(160)에 저장된 데이터는 전원 공급이 중단된 경우에도 소멸되지 않으며, HDD(160)에 저장된 데이터는 메인 메모리(140)에 로드된 후, 프로세서(120)에 의해 처리된다.
데이터 처리 장치(100)는 PC(personal computer), 태블릿(tablet) PC, 이동용 컴퓨팅 장치 (mobile computing device), 또는 넷-북(net-book)으로 구현될 수 있다.
비휘발성 메모리 장치(300)는, 데이터 처리 장치(100)에 접속된 후 데이터 처리 장치(100)의 스왑 메모리로써 사용될 수 있다. 즉, 비휘발성 메모리 장치(300)는 데이터 처리 장치(100)로부터 착탈 가능(attachable or detachable)하다.
비휘발성 메모리 장치(300)는 플래시(flash) 메모리 장치, 스마트 카드(smart card), 메모리 카드(memory card), 외장 HDD, 외장 SSD(solid state drive), 모바일 디바이스(mobile device), 네비게이터(navigator), USB(universal serial bus) 메모리 장치, 또는 상변화 메모리 장치(phase change memory device)로 구현될 수 있다.
도 2는 도 1에 도시된 제1 코어의 블럭도이다.
도 2를 참조하면, 상기 제1 코어는 페이지 검색 모듈(122), 스왑 페이지 선택 모듈(124), 및 스왑 제어 모듈(126)을 포함한다. 상기 제1 코어는 대기 시간 결정 모듈(128)을 더 포함할 수 있다.
페이지 검색 모듈(122)은, 비휘발성 메모리 장치(300)가 데이터 처리 장치(100)에 접속된 후, 비휘발성 메모리 장치(300), 즉 스왑 메모리의 빈 페이지를 찾는다.
스왑 페이지 선택 모듈(124)은 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여, 메인 메모리(140)의 스왑할 페이지를 선택한다. 이때, 상기 다수의 메인 메모리 리스트들 각각은 LRU(least recently used) 리스트일 수 있다.
또한 스왑 페이지 선택 모듈(124)은 메인 메모리 리스트를 관리하고, 새로운 페이지가 사용된 경우 상기 메인 메모리 리스트를 업데이트할 수 있다. 이때, 상기 메인 메모리 리스트는 라운드 로빈(round robin) 방식에 의해 업데이트된다.
스왑 제어 모듈(126)은 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑한다. 이를 위해, 스왑 제어 모듈(126)은 상기 스왑 메모리로 리퀘스트를 전송할 수 있다. 상기 리퀘스트는 상기 스왑할 페이지에 관한 정보 및 상기 빈 페이지에 관한 정보를 포함할 수 있다.
대기 시간 결정 모듈(128)은 상기 리퀘스트를 전송하기 위한 대기 시간을 결정할 수 있다. 즉, 대기 시간 결정 모듈(128)은 이미 전송된 다수의 리퀘스트들 각각에 포함된 스왑 메모리 주소의 연속성을 기준으로 리퀘스트를 전송하기 위한 대기 시간을 결정할 수 있다.
도 2에 도시된 제1 코어의 구성들 각각은 기능 및 논리적으로 분리될 수 있음으로 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것이 아니다..
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아니다.
도 1에 도시된 제2 코어의 구성 및 동작은 상기 제1 코어의 구조 및 동작과 동일하다.
도 3은 도 1에 도시된 비휘발성 메모리 장치의 블럭도이다.
도 3을 참조하면, 비휘발성 메모리 장치(300)는 데이터 처리 장치(100)의 스왑 메모리로써 사용될 수 있다.
비휘발성 메모리 장치(300)는 메모리 셀 어레이(320), 제어기(340), 억세스 회로(360)를 포함한다. 비휘발성 메모리 장치(300)는 레지스터(380)를 더 포함할 수 있다.
메모리 셀 어레이(320)는 다수의 페이지들을 포함한다.
제어기(340)는 비휘발성 메모리 장치(300)의 리드 동작 및 라이트 동작을 제어한다. 제어기(340)는 비휘발성 메모리 장치(300)가 중단할 수 없는 작업을 수행할 경우, 예상 비지 타임(expected busy time)을 예측하고, 예측된 예상 비지 타임을 레지스터(380)에 저장한다.
또한 제어기(340)는 데이터 처리 장치(100)로부터 수신한 제어 신호에 응답하여 예상 비지 타임(expected busy time)을 제공할 수 있다. 이에 따라, 데이터 처리 장치(100)는, 비휘발성 메모리 장치(300)가 데이터 처리 장치(100)에 접속된 후, 상기 예상 비지 타임을 기준으로 리퀘스트를 전송하기 위한 대기 시간을 조절할 수 있다.
억세스 회로(360)는 제어기(340)의 억세스 명령에 응답하여, 억세스 동작, 예컨대 리드 동작, 라이트 동작, 프로그램 동작, 또는 이레이즈 동작을 수행한다.
레지스터(380)에는 상기 예상 비지 타임이 저장된다. 이때, 상기 예상 비지 타임은 클럭에 동기되어 감소된다.
도 4는 본 발명의 일 실시예에 따른 스왑 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 상기 스왑 방법은 다수의 코어들을 포함하는 프로세서(120)를 포함하는 데이터 처리 장치(100)에서 수행되는 스왑 방법으로써, 스왑 메모리(300)가 데이터 처리 장치(100)에 접속된 후, 상기 다수의 코어들 중 적어도 하나의 코어가 스왑 메모리(300)의 빈 페이지를 찾는다(S10).
상기 적어도 하나의 코어가 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여, 메인 메모리(140)의 스왑할 페이지를 선택한다(S30).
상기 적어도 하나의 코어가 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑한다(S50). 이때, 스왑 메모리(300)는 데이터 처리 장치(100)로부터 착탈 가능하다.
상기 스왑 방법은, 상기 적어도 하나의 코어가 상기 스왑할 페이지에 대한 정보를 저장하는 페이지 테이블을 업데이트하는 단계를 더 포함할 수 있다. 여기서, 상기 페이지 테이블은 데이터 처리 시스템(100)에서 사용하는 가상 메모리 페이지가 어떤 물리 메모리 페이지에 매핑되는가를 기록하고 있는 테이블이다.
이를 위해, 상기 다수의 코어들 각각은 메모리 관리부를 더 포함할 수 있다. 상기 스왑할 페이지의 데이터가 상기 빈 페이지로 스왑된 경우, 상기 메모리 관리부는 이를 반영하여, 상기 페이지 테이블을 업데이트한다. 즉, 상기 메모리 관리부는 상기 스왑할 페이지의 정보를 포함하는 상기 페이지 테이블을 업데이트하여 상기 빈 페이지의 정보를 포함하도록 한다.
상기 다수의 메인 메모리 리스트들 각각은 LRU 리스트일 수 있다. 또한, 상기 다수의 메인 메모리 리스트들 각각은 라운드 로빈 방식에 의해 업데이트될 수 있다.
도 5는 도 4에 도시된 스왑 방법에 사용되는 라운드 로빈 방식을 설명하기 위한 LRU 테이블을 도시한다.
도 5를 참조하면, LRU 리스트의 개수는 프로세서에 포함된 코어의 개수와 일치한다. 즉, 2 개의 코어를 포함하는 프로세서를 포함하는 데이터 처리 시스템의 경우, 2 개의 LRU 리스트가 존재하게 된다.
이와 같이, 다수의 코어들 각각이 LRU 리스트를 작성, 관리함으로써, 하나의 LRU 리스트를 사용했을 때 발생할 수 있는 문제점을 해결할 수 있다. 하나의 LRU 리스트를 다수의 코어가 동시에 억세스하는 경우 이로 인한 LRU 리스트의 오류가 발생할 수 있기 때문이다.
제1 LRU 리스트(LRU1)는 제1 코어에 대응하는 LRU 리스트이고, 제2 LRU 리스트(LRU2)는 제2 코어에 대응하는 LRU 리스트이다. 즉, 상기 제1 코어는 상기 제1 LRU 리스트를 참조하여 스왑할 페이지를 선택하고, 상기 제2 코어는 상기 제2 LRU 리스트를 참조하여 스왑할 페이지를 선택한다.
상기 제1 LRU 리스트의 헤드(22)에는 상기 제1 LRU 리스트에 포함된 다수의 페이지들 중 가장 최근에 사용된 페이지가 위치하게 되고, 제1 LRU 리스트의 테일(24)에는 상기 제1 LRU 리스트에 포함된 다수의 페이지들 중 가장 최근에 사용되지 않은, 즉 가장 오래전에 사용된 페이지가 위치하게 된다.
마찬가지로, 상기 제2 LRU 리스트의 헤드(32)에는 상기 제2 LRU 리스트에 포함된 다수의 페이지들 중 가장 최근에 사용된 페이지가 위치하게 되고, 상기 제2 LRU 리스트의 테일(34)에는 상기 제2 LRU 리스트에 포함된 페이지 중 가장 최근에 사용되지 않은, 즉 가장 오래전에 사용된 페이지가 위치하게 된다.
상기 제1 LRU 리스트 및 상기 제2 LRU 리스트는 라운드 로빈 방식에 의해 업데이트 된다. 예를 들면, 메인 메모리(140) 상의 어떤 페이지가 사용된 경우, 상기 제1 LRU 리스트의 헤드(22)에 상기 어떤 페이지가 추가됨으로써, 상기 제1 LRU 리스트가 업데이트된다. 이후, 메인 메모리(140) 상의 또다른 어떤 페이지가 사용된 경우, 상기 제2 LRU 리스트의 헤드(32)에 상기 또다른 어떤 페이지가 추가됨으로써, 상기 제2 LRU 리스트가 업데이트된다. 이와 같이, 상기 제1 LRU 리스트와 상기 제2 LRU 리스트는 교대로 업데이트된다. 상기 제1 LRU 리스트는 상기 제1 코어에 포함된 스왑 페이지 선택부(124)에 의해 업데이트되고, 상기 제2 LRU 리스트는 상기 제2 코어에 포함된 스왑 페이지 선택부에 의해 업데이트된다.
다시 도 4를 참고하면, 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑하기 위해, 상기 적어도 하나의 코어는 스왑 메모리(300)로 리퀘스트를 전송한다. 그러나, 전송된 리퀘스트가 스왑 메모리(300)에 의해 처리되지 못하고, 상기 리퀘스트가 큐에 쌓이게 되면, 재차 추가되는 리퀘스트는 무시될 수 있다. 또는 스왑 메모리(300)의 동작 속도가 느려질 수 있다. 따라서, 새로운 리퀘스트는 스왑 메모리(300)의 데이터 처리 속도를 고려하여 적절한 대기 시간을 두고 전송되어야 한다.
도 6은 도 4에 도시된 스왑 방법에서 대기 시간을 조절하는 과정을 설명하기 위한 일실시예이다.
도 6을 참조하면, 제1 코어는 이미 전송된 리퀘스트들 각각에 포함된 스왑 메모리 주소의 연속성을 기준으로 대기 시간을 조절한다. 즉, 대기 시간 결정 모듈(128)은 상기 스왑 메모리 주소의 연속성을 기준으로 대기 시간을 결정하고, 스왑 제어 모듈(126)은 상기 대기 시간에 기초하여 다음 리퀘스트를 전송하게 된다. 스왑 메모리(300)의 라이트 속도는 주소 연속성에 영향을 받기 때문이다.
여기서 상기 스왑 메모리 주소는 섹터 번호, 페이지 주소, 또는 데이터가 라이트되는 곳의 물리 주소에 해당할 수 있다.
Case 1의 경우, 이미 전송된 리퀘스트들에 포함된 스왑 메모리 주소는 연속적이다. 가장 좌측에 위치한 리퀘스트가 가장 먼저 전송된 리퀘스트일 때, 이미 전송된 5 개의 리퀘스트들 각각에 포함된 스왑 메모리 주소는 연속적이다. 가정 먼저 전송된 리퀘스트는 스왑 메모리(300)의 섹터100에 데이터를 스왑할 것을 요청하고, 다음 리퀘스트는 스왑 메모리(300)의 섹터101에 데이터를 스왑할 것을 요청한다. 이처럼, 이미 전송된 다수의 리퀘스트들 각각에 포함된 스왑 메모리 주소는 연속적이다. 이 경우, 대기 시간 결정 모듈은 대기 시간(tl)을 0으로 결정할 수 있다. 데이터를 스왑할 스왑 메모리(300)의 주소가 연속적인 경우, 스왑 메모리(300)는 상기 다수의 리퀘스트들을 신속하게 처리할 수 있기 때문이다. 즉, 스왑 제어 모듈(126)은 대기 시간 없이 새로운 리퀘스트를 전송하게 된다.
Case 2의 경우, 이미 전송된 다수의 리퀘스트들에 포함된 스왑 메모리 주소는 부분적으로 불연속적인 것을 알 수 있다. 이 경우, 대기 시간 결정 모듈(128)은 대기 시간(tl)을 1ms으로 결정할 수 있다. 스왑 메모리(300)가 이미 전송된 다수의 리퀘스트들을 처리하기 위한 시간을 확보하기 위함이다. 즉, 스왑 제어 모들(126)은 1ms 후에 새로운 리퀘스트를 전송하게 된다.
Case 3의 경우, 이미 전송된 다수의 리퀘스트들에 포함된 스왑 메모리 주소는 불연속적임을 알 수 있다. 이 경우, 대기 시간 결정 모듈(128)은 대기 시간(tl)을 4ms으로 결정할 수 있다. 즉 스왑 제어 모듈(126)은 4ms 후에 새로운 리퀘스트를 전송하게 된다.
상기와 같이, 대기 시간 결정 모듈(128)은 스왑 메모리 주소의 연속성을 기준으로 상기 대기 시간을 결정할 수 있다.
도 7은 도 4에 도시된 스왑 방법에서 대기 시간을 조절하는 과정을 설명하기 위한 다른 실시예이다.
도 7을 참조하면, 제1 코어는 스왑 메모리로부터 출력되는 예상 비지 타임(extended busy time; ETB)을 기준으로 다음 리퀘스트를 전송하기 위한 대기 시간을 조절할 수 있다.
t0 시점에서 스왑 메모리(300)는 가비지 컬렉션(garbage collection)과 같은 중단할 수 없는 작업을 시작한다. 이때, 제어기(340)는 예상 비지 타임을 예측하고, 상기 예상 비지 타임을 레지스터(380)에 저장한다. 즉, 제어기(340)는 상기 가비지 컬렉션 과정 중 선택된 블록의 개수와 각각의 블록에 포함된 유효 페이지 개수를 기초로 예상 비지 타임을 예측할 수 있다. 따라서, t0 시점에서 레지스터(380)에는 예상 지연 시간(tB=500ms)이 저장된다. 상기 예상 지연 시간은 클럭에 동기되어 감소한다.
t0+200 시점에서 상기 제1 코어는 스왑 메모리(300)로부터 출력된 예상 지연 시간(tB=300ms)을 기준으로 다음 리퀘스트를 전송하기 위한 대기 시간을 조절한다. 즉, 스왑 제어부(126)는 300ms의 대기 시간 후에 새로운 리퀘스트를 전송한다.
t0+500 시점에서, 스왑 제어부(126)는 상기 새로운 리퀘스트를 스왑 메모리(300)로 전송하고, 스왑 메모리(300)는 상기 새로운 리퀘스트에 응답하여, 스왑할 페이지의 데이터를 빈 페이지로 라이트 또는 프로그램한다. 이때, 제어기(340)는 새로운 예상 비지 타임(tB=10ms)을 예측하고, 예측된 예상 비지 타임을 레지스터(380)에 저장한다.
본 발명의 실시예에 따른 스왑 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램으로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 프로그램이 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 데이터 처리 시스템
100 : 데이터 처리 장치
120 : 프로세서
122 : 페이지 검색 모듈
124 : 스왑 페이지 선택 모듈
126 : 스왑 제어 모듈
128 : 대기 시간 결정 모듈
140 : 메인 메모리
160 : HDD
300 : 비휘발성 메모리 장치
320 : 메모리 셀 어레이
340 : 제어기
360 : 레지스터

Claims (10)

  1. 다수의 코어들을 포함하는 프로세서를 포함하는 데이터 처리 장치(data processing device)에서 수행되는 스왑(swap) 방법에 있어서,
    스왑 메모리가 상기 데이터 처리 장치에 접속된 후, 상기 다수의 코어들 중 적어도 하나의 코어가 상기 스왑 메모리의 빈 페이지를 찾는 단계;
    상기 적어도 하나의 코어가 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여, 메인 메모리의 스왑할 페이지를 선택하는 단계; 및
    상기 적어도 하나의 코어가 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑하는 단계를 포함하는 스왑 방법.
  2. 제1항에 있어서,
    상기 다수의 메인 메모리 리스트들 각각은 라운드 로빈(round robin) 방식에 의해 업데이트 되는 스왑 방법.
  3. 제1항에 있어서,
    상기 다수의 메인 메모리 리스트들 각각은 LRU(least recently used) 리스트인 스왑 방법.
  4. 제1항에 있어서, 상기 스왑하는 단계는,
    상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하는 단계를 포함하고,
    상기 리퀘스트를 전송하는 단계는 이미 전송된 다수의 리퀘스트들 각각에 포함된 스왑 메모리 주소의 연속성을 기준으로 다음 리퀘스트를 전송하기 위한 대기 시간을 조절하는 스왑 방법.
  5. 제1항에 있어서, 상기 스왑하는 단계는,
    상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하는 단계를 포함하고,
    상기 리퀘스트를 전송하는 단계는 상기 스왑 메모리로부터 출력된 예상 비지 타임(expected busy time)을 기준으로 다음 리퀘스트를 전송하기 위한 대기 시간을 조절하는 스왑 방법.
  6. 데이터 처리 장치의 스왑 메모리(swap memory)로써 사용되는 비휘발성 메모리 장치에 있어서,
    다수의 페이지들을 포함하는 메모리 셀 어레이;
    예상 비지 타임을 저장하기 위한 레지스터; 및
    상기 데이터 처리 장치로부터 수신한 제어 신호에 응답하여 상기 예상 비지 타임을 상기 데이터 처리 장치로 제공하는 제어기를 포함하고,
    상기 데이터 처리 장치는, 상기 비휘발성 메모리 장치가 상기 데이터 처리 장치에 접속된 후, 상기 예상 비지 타임을 기준으로 리퀘스트를 전송하기 위한 대기 시간을 조절하는 비휘발성 메모리 장치.
  7. 제6항에 있어서,
    상기 비휘발성 메모리는 USB(universal serial bus) 메모리 장치인 비휘발성 메모리 장치.
  8. 메인 메모리; 및
    다수의 코어들을 포함하는 프로세서를 포함하고,
    스왑 메모리가 접속된 후, 상기 다수의 코어들 중 적어도 하나의 코어는 상기 스왑 메모리의 빈 페이지를 찾고, 다수의 메인 메모리 리스트들 중 대응되는 메인 메모리 리스트를 참조하여 상기 메인 메모리의 스왑할 페이지를 선택하고, 상기 스왑할 페이지의 데이터를 상기 빈 페이지로 스왑하는 데이터 처리 장치.
  9. 제8항에 있어서,
    상기 데이터를 상기 빈 페이지로 스왑하기 위해 상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하기 위한 대기 시간은 이미 전송된 다수의 리퀘스트들 각각에 포함된 스왑 메모리 주소의 연속성을 기준으로 조절되는 데이터 처리 장치.
  10. 제8항에 있어서,
    상기 데이터를 상기 빈 페이지로 스왑하기 위해 상기 적어도 하나의 코어가 상기 스왑 메모리로 리퀘스트를 전송하기 위한 대기 시간은 상기 스왑 메모리로부터 출력되는 예상 비지 타임을 기준으로 조절되는 데이터 처리 장치.
KR1020110030590A 2011-04-04 2011-04-04 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 KR20120112965A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110030590A KR20120112965A (ko) 2011-04-04 2011-04-04 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법
US13/439,349 US9053019B2 (en) 2011-04-04 2012-04-04 Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110030590A KR20120112965A (ko) 2011-04-04 2011-04-04 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법

Publications (1)

Publication Number Publication Date
KR20120112965A true KR20120112965A (ko) 2012-10-12

Family

ID=46928862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110030590A KR20120112965A (ko) 2011-04-04 2011-04-04 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법

Country Status (2)

Country Link
US (1) US9053019B2 (ko)
KR (1) KR20120112965A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594657B2 (en) 2013-11-11 2017-03-14 Teemstone Method of analysing memory usage and user terminal performing the same

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807161B2 (en) * 2013-09-16 2017-10-31 Axis Ab Distributed events in an access control system
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
KR102165460B1 (ko) 2013-11-27 2020-10-14 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
KR102116984B1 (ko) 2014-03-11 2020-05-29 삼성전자 주식회사 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
US9665296B2 (en) 2014-05-07 2017-05-30 Sandisk Technologies Llc Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US20150324132A1 (en) * 2014-05-07 2015-11-12 Sandisk Technologies Inc. Method and Computing Device for Fast Erase of Swap Memory
US9678670B2 (en) 2014-06-29 2017-06-13 Plexistor Ltd. Method for compute element state replication
US20160103431A1 (en) * 2014-10-14 2016-04-14 Honeywell International, Inc. System and method for point by point hot cutover of controllers and ios
US10140029B2 (en) * 2014-12-10 2018-11-27 Netapp, Inc. Method and apparatus for adaptively managing data in a memory based file system
US9851919B2 (en) * 2014-12-31 2017-12-26 Netapp, Inc. Method for data placement in a memory based file system
US9703492B2 (en) 2015-05-19 2017-07-11 International Business Machines Corporation Page replacement algorithms for use with solid-state drives
US10401816B2 (en) 2017-07-20 2019-09-03 Honeywell International Inc. Legacy control functions in newgen controllers alongside newgen control functions
KR102645142B1 (ko) * 2018-10-25 2024-03-07 삼성전자주식회사 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223266B1 (en) * 1997-08-20 2001-04-24 Cypress Semiconductor Corp. System and method for interfacing an input/output system memory to a host computer system memory
JP2004522235A (ja) 2001-07-18 2004-07-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多重プロセッサデバイスにおける不揮発性メモリ装置と方法
US7171516B2 (en) 2003-09-29 2007-01-30 International Business Machines Corporation Increasing through-put of a storage controller by autonomically adjusting host delay
US7624240B1 (en) * 2006-10-17 2009-11-24 Vmware, Inc. Separate swap files corresponding to different virtual machines in a host computer system
JP2009282603A (ja) 2008-05-20 2009-12-03 Panasonic Corp 不揮発性記憶モジュール、コンピュータ装置、及びコンピュータシステム
KR100992079B1 (ko) 2008-12-11 2010-11-04 명지대학교 산학협력단 플래시 메모리를 사용하는 스왑 저장장치에서의 스왑공간 관리방법
US8195891B2 (en) * 2009-03-30 2012-06-05 Intel Corporation Techniques to perform power fail-safe caching without atomic metadata
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
JP4966418B1 (ja) * 2011-01-26 2012-07-04 株式会社東芝 情報処理装置及び書き込み制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594657B2 (en) 2013-11-11 2017-03-14 Teemstone Method of analysing memory usage and user terminal performing the same

Also Published As

Publication number Publication date
US20120254520A1 (en) 2012-10-04
US9053019B2 (en) 2015-06-09

Similar Documents

Publication Publication Date Title
KR20120112965A (ko) 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법
EP2529308B1 (en) A system and method for read-while-write with nand memory device
US8341374B2 (en) Solid state drive and related method of scheduling operations
JP5296041B2 (ja) メモリシステムおよびメモリシステムの制御方法
US9058208B2 (en) Method of scheduling tasks for memories and memory system thereof
US8171239B2 (en) Storage management method and system using the same
KR100772863B1 (ko) 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
KR101924022B1 (ko) 메모리 시스템 및 그것의 페이지 교체 방법
EP1729218A1 (en) Nonvolatile storage system
JP6691669B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
US20130326113A1 (en) Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory
KR20170063332A (ko) 솔리드 스테이트 드라이브 및 그것의 동작 방법
JP2012128815A (ja) メモリシステム
CN106873904B (zh) 数据写入方法及固态硬盘
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
US20140075102A1 (en) Controller of a nonvolatile memory device and a command scheduling method thereof
US8914571B2 (en) Scheduler for memory
CN111813703B (zh) 数据储存装置及逻辑至物理地址映射表的更新方法
KR101135313B1 (ko) 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
TWI688864B (zh) 儲存設備及儲存方法
JP5334048B2 (ja) メモリ装置および計算機
US11023370B2 (en) Memory system having a plurality of memory chips and method for controlling power supplied to the memory chips
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
US20120131236A1 (en) Communication between a computer and a data storage device
KR20190033921A (ko) 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application