KR102374637B1 - 컴퓨팅 시스템 및 그것의 메모리 관리 방법 - Google Patents

컴퓨팅 시스템 및 그것의 메모리 관리 방법 Download PDF

Info

Publication number
KR102374637B1
KR102374637B1 KR1020150097297A KR20150097297A KR102374637B1 KR 102374637 B1 KR102374637 B1 KR 102374637B1 KR 1020150097297 A KR1020150097297 A KR 1020150097297A KR 20150097297 A KR20150097297 A KR 20150097297A KR 102374637 B1 KR102374637 B1 KR 102374637B1
Authority
KR
South Korea
Prior art keywords
memory module
volatile memory
data
dram
read
Prior art date
Application number
KR1020150097297A
Other languages
English (en)
Other versions
KR20170007584A (ko
Inventor
임선영
김택수
김인동
손한구
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150097297A priority Critical patent/KR102374637B1/ko
Priority to US15/196,726 priority patent/US10078448B2/en
Publication of KR20170007584A publication Critical patent/KR20170007584A/ko
Application granted granted Critical
Publication of KR102374637B1 publication Critical patent/KR102374637B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/0877Cache access modes
    • G06F12/0882Page mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

본 발명에 따른 컴퓨팅 시스템의 메모리 관리 방법은, 비휘발성 메모리의 페이지 데이터를 읽기 쓰기 모드로 할당하는 단계, 상기 비휘발성 메모리의 상기 페이지 데이터를 디램에 복사하는 단계, 및 상기 디램의 상기 복사된 페이지 데이터를 읽기 전용 모드로 할당하는 단계를 포함한다.

Description

컴퓨팅 시스템 및 그것의 메모리 관리 방법{COMPUTING SYSTEM AND MEMORY MANAGEMENT METHOD THERFOF}
본 발명은 컴퓨팅 시스템 및 그것의 메모리 관리 방법에 관한 것이다.
현재 사용되는 컴퓨팅 시스템의 다양한 인터페이스와 호환 가능한 비휘발성 메모리에 대한 연구가 이루어지고 있다. 즉, 플래시 메모리를 메인 메모리(또는, 워킹 메모리)와 동일한 슬롯이나 채널에 장착하여 데이터 저장 장치나 메모리로 사용하려는 시도들이 이루어지고 있다. 이 경우에는 종래에 사용하던 휘발성 램(예를 들면, DRAM)과의 호환성이 고려되어야 한다. 휘발성 램과의 호환성을 유지하면서도 최상의 데이터 신뢰성(data integrity), 저전력 특성을 제공할 수 있는 기술이 필요한 실정이다.
본 발명의 목적은 신규한 컴퓨팅 시스템 및 그것의 메모리 관리 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법은, 비휘발성 메모리의 페이지 데이터를 읽기 쓰기 모드로 할당하는 단계, 상기 비휘발성 메모리의 상기 페이지 데이터를 디램에 복사하는 단계, 및 상기 디램의 상기 복사된 페이지 데이터를 읽기 전용 모드로 할당하는 단계를 포함한다.
실시 예에 있어서, 상기 비휘발성 메모리의 페이지 데이터는 어플리케이션 데이터이다.
실시 예에 있어서, 상기 컴퓨팅 시스템은, 프로세서; 상기 프로세서에 DDR(double data rate) 인터페이스를 통하여 연결되고, 상기 디램을 포함하는 메모리 모듈; 및 상기 프로세서에 상기 DDR 인터페이스를 통하여 연결되고, 상기 비휘발성 메모리를 포함하는 비휘발성 메모리 모듈을 포함한다.
실시 예에 있어서, 상기 비휘발성 메모리의 페이지 데이터를 상기 디램에 복사하는 단계는, 상기 프로세서에서 어플리케이션으로부터 메모리 할당 요청을 입력받는 단계; 및 상기 메모리 할당 요청에 응답하여 상기 비휘발성 메모리의 페이지 데이터를 상기 디램으로 복사하는 단계를 포함한다.
실시 예에 있어서, 상기 프로세서에서 어플리케이션으로부터 읽기 요청을 입력받는 단계; 및 상기 읽기 요청에 응답하여 상기 디램의 상기 페이지 데이터를 읽는 단계를 더 포함한다.
실시 예에 있어서, 상기 프로세서에서 어플리케이션으로부터 쓰기 요청을 입력받는 단계; 및 상기 쓰기 요청에 응답하여 상기 비휘발성 메모리에 데이터를 쓰는 단계를 더 포함한다.
실시 예에 있어서, 상기 비휘발성 메모리에 데이터를 쓰는 단계는, 상기 쓰기 요청에 응답하여 상기 디램에 쓰기 동작을 시도하는 단계; 상기 디램으로부터 쓰기 실패 정보를 입력받는 단계; 및 상기 쓰기 실패 정보에 응답하여 상기 비휘발성 메모리에 상기 데이터를 쓰는 단계를 포함한다.
실시 예에 있어서, 상기 비휘발성 메모리에 데이터를 쓰는 단계는, 상기 비휘발성 메모리에 포함된 SRAM(static random access memory)를 지시하는 어드레스를 할당하는 단계; 상기 SRAM에 상기 데이터를 쓰는 단계; 및 상기 데이터를 상기 읽기 쓰기 모드로 할당하는 단계를 포함한다.
실시 예에 있어서, 상기 프로세서에서 어플리케이션으로부터 상기 디램에 저장된 복수의 페이지 데이터들 중 적어도 하나의 업데이트 요청을 입력받는 단계; 및 상기 업데이트 요청에 응답하여 상기 디램의 상기 적어도 하나의 페이지 데이터에 업데이트할 데이터를 상기 비휘발성 메모리에 쓰는 단계를 포함한다.
실시 예에 있어서, 상기 비휘발성 메모리에 저장된 페이지 데이터들의 개수가 사전에 결정된 값을 초과할 때, 사전에 결정된 정책에 따라 상기 비휘발성 메모리에 저장된 상기 페이지 데이터들 중 적어도 하나를 백 그라운드 방식으로 상기 디램으로 복사하는 단계를 포함한다.
실시 예에 있어서, 상기 컴퓨팅 시스템은, 프로세서; 및 상기 프로세서에 DDR(double data rate) 인터페이스를 통하여 연결되고, 상기 디램 및 상기 비휘발성 메모리를 포함하는 비휘발성 메모리 모듈을 포함한다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 프로세서; 상기 프로세서와 DDR(double data rate) 인터페이스 통하여 통신하는 적어도 하나의 메모리 모듈; 및 상기 프로세서와 상기 DDR 인터페이스를 통하여 통신하는 적어도 하나의 비휘발성 메모리 모듈을 포함하고, 상기 프로세서는, 어플리케이션의 메모리 할당 요청에 응답하여 상기 적어도 하나의 비휘발성 메모리 모듈의 어플리케이션 데이터를 상기 적어도 하나의 메모리 모듈로 복사하고, 상기 메모리 모듈에 상기 복사된 어플리케이션 데이터를 읽기 전용 모드로 할당한다.
실시 예에 있어서, 상기 프로세서는, 상기 어플리케이션의 읽기 요청에 응답하여 상기 적어도 하나의 메모리 모듈로부터 상기 어플리케이션 데이터를 읽고, 상기 어플리케이션의 쓰기 요청에 응답하여 상기 적어도 하나의 비휘발성 메모리 모듈의 SRAM(static random access memory)에 상기 어플리케이션 데이터를 쓰고, 상기 SRAM에 쓰여진 어플리케이션 데이터를 읽기 쓰기 모드로 할당한다.
실시 예에 있어서, 상기 프로세서는, 상기 적어도 하나의 메모리 모듈의 페이지 데이터를 읽기 전용 모드로 관리하고, 상기 적어도 하나의 비휘발성 메모리 모듈의 페이지 데이터를 읽기 쓰기 모드로 관리하는 메모리 관리 유닛을 포함한다.
실시 예에 있어서, 상기 적어도 하나의 비휘발성 메모리 모듈은, 복수의 비휘발성 메모리들; 구동에 필요한 데이터를 임시로 저장하는 버퍼 메모리; 및 상기 복수의 비휘발성 메모리들 및 상기 버퍼 메모리를 제어하는 비휘발성 메모리 모듈 제어기를 포함하고, 상기 비휘발성 메모리 모듈 제어기는, 상기 프로세서와 상기 DDR 인터페이스를 통하여 데이터를 입출력하는 램을 포함한다.
실시 예에 있어서, 상기 적어도 하나의 비휘발성 메모리 모듈은, 복수의 비휘발성 메모리들; 상기 프로세서와 데이터를 입출력하는 복수의 디램들(dynamic random access memories); 및 상기 복수의 비휘발성 메모리들과 상기 복수의 디램들을 제어하고, 상기 프로세서가 상기 복수의 비휘발성 메모리들에 대한 억세스를 가능하게 하는 비휘발성 메모리 모듈 제어기를 포함한다.
실시 예에 있어서, 상기 프로세서와 상기 복수의 디램들 사이에 상기 데이터를 입출력 하도록 버퍼링하는 데이터 버퍼들을 더 포함한다.
본 발명의 실시 예에 따른 프로세서, 메모리 모듈, 및 비휘발성 메모리 모듈을 포함하는 컴퓨팅 시스템의 메모리 관리 방법은, 어플리케이션으로부터 메모리 할당 요청을 입력받는 단계; 상기 메모리 할당 요청에 응답하여 상기 비휘발성 메모리 모듈에 저장된 어플리케이션 데이터를 상기 메모리 모듈로 복사하는 단계; 및 상기 메모리 모듈의 상기 복사된 어플리케이션 데이터를 읽기 전용 모드로 할당하는 단계를 포함한다.
실시 예에 있어서, 상기 비휘발성 메모리 모듈의 상기 저장된 어플리케이션 데이터를 읽기 쓰기 모드로 할당하는 단계를 더 포함한다.
실시 예에 있어서, 상기 어플리케이션으로부터 쓰기 요청을 입력받는 단계; 상기 쓰기 요청에 응답하여 상기 메모리 모듈에 쓰기 동작을 시작하는 단계; 상기 메모리 모듈에 쓰기 동작이 실패할 때, 상기 비휘발성 메모리 모듈의 SRAM(static random access memory)에 쓰기 동작을 수행하는 단계; 및 상기 SRAM에 저장된 데이터를 읽기 쓰기 모드로 할당하는 단계를 더 포함한다.
상술한 바와 같이 본 발명에 따른 컴퓨팅 시스템 및 그것의 메모리 관리 방법은, 디램의 페이지 데이터를 읽기 전용 모드로 할당하고, 비휘발성 메모리의 페이지 데이터를 읽기 쓰기 모드로 할당함으로써, 시스템 전체적인 성능 개선을 꾀할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 할당을 개념적으로 설명하는 도면이다.
도 2는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법에 대한 제 1 실시 예를 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법에 대한 제 2 실시 예를 보여주는 도면이다.
도 4는 도 3에 도시된 쓰기 동작에 대한 실시 예를 예시적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법에 대한 제 3 실시 예를 보여주는 도면이다.
도 6은 도 5에 도시된 백 그라운드 복사 방법에 대한 실시 예를 예시적으로 보여주는 도면이다.
도 7은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법에 대한 제 1 실시 예를 보여주는 도면이다.
도 8은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법에 대한 제 2 실시 예를 보여주는 도면이다.
도 9는 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법에 대한 제 3 실시 예를 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법을 예시적으로 보여주는 흐름도이다.
도 11은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 12는 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 1 실시 예를 예시적으로 보여주는 블록도이다.
도 13은 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 2 실시 예를 예시적으로 보여주는 블록도이다.
도 14는 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 3 실시 예를 예시적으로 보여주는 블록도이다.
도 15는 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 4 실시 예를 예시적으로 보여주는 블록도이다.
도 16은 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 5 실시 예를 예시적으로 보여주는 블록도이다.
도 17은 본 발명의 실시 예에 따른 비휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 메모리 할당을 개념적으로 설명하는 도면이다. 도 1을 참조하면, 메인 메모리(main memory)의 메모리 할당은, OS(operating system) 영역과 어플리케이션 영역으로 구분된다. 본 발명의 메인 메모리는 DRAM(dynamic random access memory) 및 NVM(non volatile memory)로 구성된다.
OS 영역은 메인 메모리를 관리하기 위한 메모리 관리 유닛을 저장할 수 있다. 어플리케이션 영역은, 제 1 어플리케이션 데이터(APPD_DRAM)와 제 2 어플리케이션 데이터(ADDP_NVM)을 저장할 수 있다. 여기서, 제 1 어플리케이션 데이터(APPD_DRAM)는 DRAM 에 저장되는 어플리케이션 데이터이고, 제 2 어플리케이션 데이터(ADDP_NVM)는 NVM에 저장되는 어플리케이션 데이터이다.
실시 예에 있어서, 메모리 관리 유닛은, 제 1 어플리케이션 데이터(APPD_DRAM)는 RO(read only, "읽기 전용") 모드로 관리하고, 제 2 어플리케이션 데이터(APPD_NVM)는 RW(read write, "읽기 쓰기") 모드로 관리할 수 있다.
실시 예에 있어서, 메모리 관리 유닛은, 제 2 어플리케이션 데이터(APPD_NVM) 을 제 1 어플리케이션 데이터(APPD_DRAM)로 변환할 수 있다. 다른 실시 예에 있어서, 메모리 관리 유닛은, 제 1 어플리케이션 데이터(ADDP_DRAM)을 제 2 어플리케이션 데이터(APPD_NVM)로 변환할 수 있다.
본 발명의 NVM는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리 장치(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
본 발명의 실시 예에 따른 메모리 할당 방법은, 어플리케이션 데이터를 저장하는 DRAM을 읽기 전용(RO) 모드로 할당하고, NVM을 읽기 쓰기(RW) 모드로 할당함으로써, 컴퓨팅 시스템(computing system) 성능의 최적화를 꾀할 수 있다.
도 2는 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)의 메모리 관리 방법에 대한 제 1 실시 예를 보여주는 도면이다. 도 2를 참조하면, 컴퓨팅 시스템(10)은, 프로세서(MCH/CPU, 100), 메모리 모듈(DIMM, 200), 및 비휘발성 메모리 모듈(NVDIMM, 300)을 포함할 수 있다.
프로세서(100)는 CPU(central processing unit), 코프로세서(co-processor), APU(arithmethic processing unit), GPU(graphic processing unit), DSP(digital signal processor), MCH(memory controller hurb) 등 일 수 있다. 메모리 모듈(200)은 DDR(double data rate) 인터페이스를 통하여 프로세서(100)와 데이터를 송수신할 수 있다. 도시되지 않았지만, 프로세서(100)는 메모리 모듈(200) 및 비휘발성 메모리 모듈(300)을 관리하기 위한 메모리 관리 유닛(MMU, memory management unit)을 더 포함할 수 있다.
메모리 모듈(200)은, 도시되지 않았지만, 적어도 하나의 DRAM(dynamic random access memory)을 포함할 수 있다. 실시 예에 있어서, 메모리 모듈(200)은 듀얼 인-라인 메모리 모듈(dual ln-line memory module)로 구현될 수 있다.
비휘발성 메모리 모듈(300)은 DDR 인터페이스를 통하여 프로세서(100)와 데이터를 송수신할 수 있다. 비휘발성 메모리 모듈(300)은, 도시되지 않았지만, 적어도 하나의 NVM(non volatile memory)를 포함할 수 있다. 실시 예에 있어서, 비휘발성 메모리 모듈(300)은 듀얼 인-라인 메모리 모듈로 구현될 수 있다. 실시 예에 있어서, 비휘발성 메모리 모듈(300)은 NVDIMM-N 타입 혹은 NVDIMM-F 타입으로 구현될 수 있다. 여기서 NVDIMM-N은, DRAM와 DRAM의 백업용으로 이용하는 플래시 메모리를 포함한다. NVDIMM-F는 블록 지향 대용량 저장 장치로 억세스 가능한 플래시 메모리를 포함한다.
또한, 도시되지 않았지만, 메모리 모듈(200)과 비휘발성 메모리 모듈(300) 각각은 동일한 통신 인터페이스 규격의 물리적인 슬롯에 의하여 프로세서(100)에 연결될 수 있다. 예를 들어, 통신 인터페이스는 DDR 시리즈(DDR2, DDR3, DDR4, DDR5, ...등) 규격에 적합할 수 있다.
도 2에 도시된 바와 같이, 프로세서(100)에서 관리하는 메인 메모리는 메모리 모듈(200)과 비휘발성 메모리 모듈(300)을 포함할 수 있다. 프로세서(100)는 메모리 관리 유닛에 의하여 메인 메모리를 할당 및/혹 해제 등 관리할 수 있다.
한편, 다시 도 2를 참조하면, 컴퓨팅 시스템(10)의 메모리 할당 방법은 다음과 같이 진행된다.
어플리케이션은 프로세서(100)에 어플리케이션 데이터(APPD)에 대한 휘발성 메모리(VMEM) 할당을 요청한다(①). 설명의 편의를 위하여 어플리케이션 데이터(APPD)는 비휘발성 메모리 모듈(300)에 저장(혹은 백업backup)되어 있다고 가정하겠다. 하지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다. 어플리케이션 데이터(APPD)는 도시되지 않았지만, 프로세서(100)에 연결된 비휘발성 메모리 모듈(300)이 아니라, 프로세서(100)에 연결된 주변 제어기 허브(peripheral controller hub, HCH)을 경유한 저장 장치(storage device, HDD, SDD, HSSD 등)에 저장되어 있다고 이해될 수도 있다. 여기서 주변 제어기 허브(HCH)는 칩셋(chip set) 혹은 노스 브릿지(north bridge)라고 불릴 수 있다.
실시 예에 있어서, 어플리케이션의 휘발성 메모리(VMEM) 할당 요청은 C 언어를 이용할 수 있다. 예를 들어, malloc() 함수를 이용하여 휘발성 메모리(VMEM) 할당 요청이 수행될 수 있다.
프로세서(100)는 휘발성 메모리(VMEM) 할당 요청을 입력받고, 휘발성 메모리(VMEM) 할당 요청에 응답하여 비휘발성 메모리 모듈(300)의 어플리케이션 데이터(APPD)를 메모리 모듈(200)로 복사할 수 있다. 이때, 프로세서(100)는 메모리 모듈(200)에 복사된 어플리케이션 데이터(APPD)에 대한 속성을 읽기 전용(read only, RO) 모드로 할당(혹, 설정)할 수 있다. 즉, 휘발성 메모리 모듈(200)의 어플리케이션 데이터(APPD)는 어플리케이션에 읽기 전용(RO)로 할당될 수 있다(②).
이후, 어플리케이션은 휘발성 메모리 모듈(200)로부터 어플리케이션 데이터(APPD)를 읽을 수만(read only) 있다(③).
본 발명의 실시 예에 따른 컴퓨팅 시스템(10)의 메모리 관리 방법은, 메모리 모듈(100)에 저장하는 어플리케이션 데이터(APPD)를 읽기 전용(RO) 모드로 할당할 수 있다.
도 3은 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)의 메모리 관리 방법에 대한 제 2 실시 예를 보여주는 도면이다. 도 3을 참조하면, 컴퓨팅 시스템(10)의 메인 메모리 읽기 방법과 쓰기 방법은 다음과 같이 진행된다.
메인 메모리 읽기 방법은 다음과 같이 진행된다. 어플리케이션은 메인 메모리, 특히 메모리 모듈(200)에 저장된 어플리케이션 데이터(APPD)에 대한 읽기 요청을 프로세서(100)에 전송한다. 프로세서(100)는 이러한 읽기 요청에 응답하여 메모리 모듈(200)에 저장된 어플리케이션 데이터(APPD_R)를 읽고, 이를 어플리케이션으로 전송한다. 여기서 메모리 모듈(200)에 저장된 어플리케이션 데이터(APPD_R)는 읽기 전용(RO) 모드이기 때문에, 어플리케이션의 읽기 요청에 따라 정상적으로 일기 동작이 진행될 수 있다(①).
반면에, 메인 메모리 쓰기 방법은 다음과 같이 진행된다. 어플리케이션은 메인 메모리, 특히 메모리 모듈(200)에 어플리케이션 데이터(APPD_W)를 쓰기 요청한다. 프로세서(100)는 이러한 쓰기 요청에 응답하여 메모리 모듈(200)에 어플리케이션 데이터(APPD_W)에 대한 쓰기 동작을 수행한다. 하지만, 메모리 모듈(200)은 읽기 전용(RO) 모드이기 때문에 쓰기 동작의 실패를 발생할 것이다. 예를 들어, 메모리 모듈(200)은 쓰기 요청에 응답하여 메모리 쓰기 억세스 실패(memory write access fault)을 발생할 수 있다(②). 프로세서(100)는 메모리 모듈(200)의 쓰기 동작 실패 확인에 응답하여 비휘발성 메모리 모듈(300)에 어플리케이션 데이터(APPD_W)에 대한 쓰기 동작을 수행한다. 비휘발성 메모리 모듈(200)은 읽기 쓰기(RW) 모드이기 때문에, 쓰기 동작의 실패를 발생하지 않을 것이다. 실시 예에 있어서, 상술 된 비휘발성 메모리 모듈(200)의 쓰기 동작은 비휘발성 메모리 모듈(200)의 SRAM(static random access memory, 미도시)에 수행될 수 있다. 이러한 쓰기 동작 이후부터, 어플리케이션은 어플리케이션 데이터(APPD_W)를 읽기 위하여 비휘발성 메모리 모듈(300)을 억세스할 수 있다(③).
한편, 본 발명의 컴퓨팅 시스템(10)의 쓰기 동작이 상술한 것에 제한되지 않는다고 이해되어야 할 것이다. 프로세서(100)는 어플리케이션의 쓰기 요청에 응답하여, 저장될 메인 메모리의 모드(RO 혹은 RW)를 우선적으로 판별하고, 이러한 판별 정보에 따라 쓰기 동작을 수행할 수도 있다. 예를 들어, 프로세서(100)는 읽기 전용(RO) 모드의 메모리 모듈(200)에 대한 쓰기 요청이라고 판별될 경우, 비휘발성 메모리 모듈(300)에 곧바로 어플리케이션 데이터(APPD_W)를 저장하도록 할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템(10)의 메모리 관리 방법은, 메모리 모듈(200)로부터는 읽기 동작을 수행하고, 비휘발성 메모리 모듈(300)에는 쓰기 동작을 수행할 수 있다.
도 4는 도 3에 도시된 쓰기 동작에 대한 실시 예를 예시적으로 보여주는 도면이다. 도 3 및 도 4를 참조하면, 메모리 모듈(200)에 제 1 페이지 데이터(APPD_R_1), 제 2 페이지 데이터(APPD_R_2), 및 제 3 페이지 데이터(APPD_R_3)에 저장되어 있다. 메모리 모듈(200)은 읽기 전용(RO) 이기 때문에 읽기 동작만 수행할 수 있다. 도 4에서는 제 2 페이지 데이터(APPD_R_2)에 대한 업데이트가 필요하다고 가정하겠다. 어플리케이션은 우선적으로 메모리 모듈(200)의 제 2 페이지 데이터(APPD_R_2)에 대한 업데이트를 프로세서(100)에 요청한다.
프로세서(100)는 이렇나 업데이트 요청에 응답하여 우선적으로 메모리 모듈(200)에 제 2 페이지 데이터(APPD_R_2)가 저장된 어드레스가 지정하는 곳으로 새로운 페이지 데이터(APPD_W_2)를 쓰도록 메모리 모듈(200)을 제어한다. 메모리 모듈(200)은 읽기 전용(R0) 모드이기 때문에 이러한 쓰기 요청이 실패하였다고 프로세서(100)에 알린다. 프로세서(100)는 이러한 쓰기 요청 실패에 응답하여 새로운 페이지 데이터(APPD_W_2)를 비휘발성 메모리 모듈(300)의 SRAM에 저장되도록 비휘발성 메모리 모듈(300)을 제어한다. 이로써, 메인 메모리에 대한 페이지 데이터 업데이트가 완료된다.
도 5는 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)의 메모리 관리 방법에 대한 제 3 실시 예를 보여주는 도면이다. 도 1 내지 도 5를 참조하면, 비휘발성 메모리 모듈(300)에 저장된 페이지 데이터가 기준 값을 초과할 때, 메모리 관리 유닛(120)은 비휘발성 메모리 모듈(300)에 저장된 어플리케이션 데이터(APPD)를 메모리 모듈(200))으로 복사할 수 있다. 어플리케이션의 별도의 요청 없이, 백-그라운드(back ground)로 비휘발성 메모리 모듈(300)의 어플리케이션 데이터(APPD)가 메모리 모듈(200)로 복사되는 것이다. 여기서, 메모리 모듈(200)에 복사된 어플리케이션 데이터(APPD)는 읽기 전용(RO) 모드로 할당될 것이다.
도 6은 도 5에 도시된 백 그라운드 복사 방법에 대한 실시 예를 예시적으로 보여주는 도면이다. 도 5 및 도 6을 참조하면, 백 그라운드 복사 방법은 다음과 같이 진행된다.
설명의 편의를 위하여 비휘발성 메모리 모듈(300)에 제 1 페이지 데이터(APPD_1_NVM), 제 2 페이지 데이터(APPD_2_NVM), 및 제 3 페이지 데이터(APPD_3_NVM)가 저장되어 있다고 가정하겠다. 비휘발성 메모리 모듈(300)에 저장된 페이지 데이터의 개수가 사전에 결정된 값을 초과할 때, 제 1 페이지 데이터(APPD_1_NVM), 제 2 페이지 데이터(APPD_2_NVM), 및 제 3 페이지 데이터(APPD_3_NVM) 중 사전에 결정된 방법으로 선택된 적어도 하나의 페이지 데이터(제 1 페이지 데이터(APPD_1_NVM), 제 2 페이지 데이터(APPD_2_NVM))가 메모리 모듈(200)로 복사된다. 이때, 메모리 모듈(200)은 복사된 제 1 페이지 데이터(APPD_1_DRAM), 제 2 페이지 데이터(APPD_2_DRAM)를 저장할 것이다.
결과적으로, 어플리케이션에 할당되어 있는 비휘발성 메모리 모듈(300)의 페이지 데이터들(APPD_1_NVM, APPD_2_NVM)은 읽기 전용(RO) 모드에서, 읽기 전용(RO) 모드의 메모리 모듈(200)의 페이지 데이터들(APPD_1_DRAM, APPD_2_DRAM)으로 변경될 수 있다. 즉, 상술된 바와 같이, 비휘발성 메모리 모듈(300)의 읽기 쓰기(RW) 모드의 페이지 데이터가 읽기 전용(RO) 모드의 페이지 데이터로 회수될 수 있다.
한편, 도 2 내지 도 6에서는 메모리 모듈(200)과 비휘발성 메모리 모듈(300) 사이의 메모리 관리를 설명하였다. 하지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다. 본 발명의 메모리 관리 방법은, 비휘발성 메모리 모듈 내에 존재하는 적어도 하나의 DRAM과 적어도 하나의 비휘발성 메모리 사이에도 적용될 수 있다. 물론 프로세서는 비휘발성 메모리 모듈 내의 DRAM과 비휘발성 메모리를 모두 억세스할 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(20)의 메모리 관리 방법에 대한 제 1 실시 예를 보여주는 도면이다. 도 7을 참조하면, 비휘발성 메모리 모듈(400)은 적어도 하나의 DRAM(dynamic random access memory, 420)과 적어도 하나의 NVM(nonvolatile memory, 440)를 포함할 수 있다.
컴퓨팅 시스템(20)의 메모리 할당 방법은 다음과 같이 진행된다. 어플리케이션은 프로세서(100a)에 어플리케이션 데이터(APPD)에 대한 휘발성 메모리(VMEM) 할당을 요청한다(①). 프로세서(100a)는 휘발성 메모리(VMEM) 할당 요청을 입력받고, 휘발성 메모리(VMEM) 할당 요청에 응답하여 NVM(440)의 어플리케이션 데이터(APPD)를 DRAM(420)로 복사할 수 있다. 이때, DRAM(420)의 어플리케이션 데이터(APPD)는 어플리케이션에 읽기 전용(RO)로 할당될 수 있다(②). 이후, 어플리케이션은 DRAM(420)로부터 어플리케이션 데이터(APPD)를 읽을 수만(read only) 있다(③).
도 8은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(20)의 메모리 관리 방법에 대한 제 2 실시 예를 보여주는 도면이다. 도 8을 참조하면, 컴퓨팅 시스템(10)의 메인 메모리, 즉 비휘발성 메모리 모듈(400)에 대한 읽기 방법과 쓰기 방법은 다음과 같이 진행된다.
메모리 읽기 방법은 다음과 같이 진행된다. 어플리케이션은 DRAM(420)에 저장된 어플리케이션 데이터(APPD)에 대한 읽기 요청을 프로세서(100a)에 전송한다. 프로세서(100a)는 이러한 읽기 요청에 응답하여 DRAM(420)에 저장된 어플리케이션 데이터(APPD_R)를 읽고, 이를 어플리케이션으로 전송한다(①).
반면에, 메모리 쓰기 방법은 다음과 같이 진행된다. 어플리케이션은 DRAM(420)에 어플리케이션 데이터(APPD_W)를 쓰기 요청한다. 프로세서(100a)는 이러한 쓰기 요청에 응답하여 DRAM(420)에 어플리케이션 데이터(APPD_W)에 대한 쓰기 동작을 수행한다. 하지만, DRAM(420)은 읽기 전용(RO) 모드이기 때문에 쓰기 동작의 실패를 발생할 것이다(②). 프로세서(100a)는 DRAM(420)의 쓰기 동작 실패 확인에 응답하여 NVM(440)에 어플리케이션 데이터(APPD_W)에 대한 쓰기 동작을 수행한다. 이러한 쓰기 동작 이후부터, 어플리케이션은 어플리케이션 데이터(APPD_W)를 읽기 위하여 NVM(440)을 억세스할 수 있다(③).
도 9는 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(20)의 메모리 관리 방법에 대한 제 3 실시 예를 보여주는 도면이다. 도 7 내지 도 9를 참조하면, NVM(440)에 저장된 페이지 데이터가 기준 값을 초과할 때, 메모리 관리 유닛(120a)은 NVM(440)에 저장된 어플리케이션 데이터(APPD)를 DRAM(420))으로 백-그라운드로 방식으로 복사할 수 있다.
도 10은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 메모리 관리 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 10을 참조하면, 메모리 관리 방법은 다음과 같다.
NVM에 저장된 페이지 데이터는 RW(read write) 모드로 할당된다. 이는 NVM의 페이지 데이터는 자유롭게 읽기 쓰기를 할 수 있다(S110). 백 그라운드 방식에 따라, NVM의 페이지 데이터는 DRAM에 복사될 수 있다. 여기서 백 그라운드 방식은, 메모리 관리 유닛의 정책에 따라 다양하게 활성화될 수 있다(S120). DRAM의 쓰기 동작이 백-그라운드 방식에 의해 진행되지만, 본 발명이 여기에 제안된다고 이해되지 않을 것이다. DRAM에 할당된 페이지 데이터는 RO(read only) 모드로 할당된다. 즉, 어플리케이션은 DRAM의 페이지 데이터를 읽기만 할 수 있다(S130).
본 발명의 컴퓨팅 시스템의 메모리 관리 방법은, NVM의 페이지 데이터를 백 그라운드 방식으로 DARM으로 복사하고, 복사된 DRAM의 페이지 데이터를 읽기 모드로 할당할 수 있다.
한편, 도 1 내지 도 10에서는 어플리케이션 데이터에 메모리 관리 방법을 설명하였다. 하지만, 본 발명이 여기에 제한된다고 이해되지 않아야 할 것이다. 본 발명의 메모리 관리 방법은, 변경 가능한 OS(operating system) 데이터에 대하여도 적용될 수도 있다.
도 11은 본 발명의 실시 예에 따른 컴퓨팅 시스템(1000)을 예시적으로 보여주는 블록도이다. 도 11을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100), 메모리 모듈들(DIMM, 1200, 1250), 비휘발성 메모리 모듈들(NVDIMM, 1300, 1305), 칩셋(1400), GPU(1500), 입출력 장치(1600), 그리고 스토리지 장치(1700)를 포함한다.
프로세서(1100)는 컴퓨팅 시스템(1000)의 제반 동작을 제어할 수 있다. 프로세서(1100)는 컴퓨팅 시스템(1000)에서 수행되는 다양한 연산을 수행할 수 있다. 프로세서(1100)는, 도 1 내지 도 10에 설명된 프로세서(100, 100a)로 구현될 수 있다.
메모리 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305)은 프로세서(1100)와 직접적으로 연결될 수 있다. 예를 들어, 메모리 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305) 각각은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 가질 수 있다. 또는, 메모리 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305) 각각은 프로세서(1100)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
비휘발성 메모리 모듈들(1300, 1305) 각각은 도 1 내지 도 10을 참조하여 설명된 비휘발성 메모리 모듈(300, 400)일 수 있다.
메모리 모듈들(1200, 1250), 비휘발성 메모리 모듈들(1300, 1305)은 동일한 인터페이스(1150)를 통해 프로세서(1100)와 통신할 수 있다. 예를 들어, 비휘발성 메모리 모듈들(1300, 1305) 및 메모리 모듈들(1200, 1250)은 DDR(Double Data Rate) 방식의 인터페이스(1150)를 통해 통신할 수 있다. 예시적으로, 프로세서(1100)는 메모리 모듈들(1200, 1250)을 컴퓨팅 시스템(1000)의 동작 메모리, 버퍼 메모리, 또는 캐시 메모리로서 사용할 수 있다.
칩셋(1400)은 프로세서(1100)와 전기적으로 연결되고, 프로세서(1100)의 제어에 따라 컴퓨팅 시스템(1000)의 하드웨어를 제어할 수 있다. 예를 들어, 칩셋(1400)은 주요 버스들을 통해 GPU(1500), 입출력 장치(1600), 및 스토리지 장치(1700) 각각과 연결되고, 주요 버스들에 대한 브릿지 역할을 수행할 수 있다.
GPU(1500)는 컴퓨팅 시스템(1000)의 영상 데이터를 출력하기 위한 일련의 연산 동작을 수행할 수 있다. 예시적으로 GPU(1500)는 시스템-온-칩 형태로 프로세서(1100) 내에 실장 될 수 있다.
입출력 장치(1600)는 컴퓨팅 시스템(1000)으로 데이터 또는 커맨드를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 예를 들어, 입출력 장치(1600)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 장치들 및 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 장치들을 포함할 수 있다.
스토리지 장치(1700)는 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 스토리지 장치(1600)는 하드 디스크 드라이브, SSD, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.
예시적으로, 비휘발성 메모리 모듈들(1300, 1305)은 프로세서(1100)에 의해 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 비휘발성 메모리 모듈들(1300, 1305) 및 프로세서(1100) 사이의 인터페이스(1150)는 스토리지 장치(1700) 및 프로세서(1100) 사이의 인터페이스보다 고속 인터페이스일 수 있다. 즉, 프로세서(1100)가 비휘발성 메모리 모듈들(1300, 1305)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다.
도 12는 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 1 실시 예를 예시적으로 보여주는 블록도이다. 예시적으로, 도 9는 LRDIMM(Load Reduced DIMM) 형태를 갖는 비휘발성 메모리 모듈(1300)을 보여준다. 예시적으로, 도 9에 도시된 비휘발성 메모리 모듈(1300)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 12를 참조하면, 비휘발성 메모리 모듈(1300)은 비휘발성 메모리 모듈 제어기(1310), 버퍼 메모리(1320), 비휘발성 메모리 장치(1330), 및 직렬 프레즌스 검출 칩(1340)(SPD; Serial Presence Detect chip)를 포함한다. 비휘발성 메모리 모듈 제어기(1310)는 램(1311)을 포함할 수 있다. 예시적으로, 비휘발성 메모리 장치(1330)는 복수의 비휘발성 메모리들(NVM)을 포함할 수 있다. 비휘발성 메모리 장치(1330)에 포함된 복수의 비휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 비휘발성 메모리 장치(1330)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.
예시적으로, 비휘발성 메모리 모듈 제어기(1310)는 프로세서(1100)와 복수의 데이터 신호들(DQ) 및 복수의 데이터 스트로브 신호들(DQS)을 송수신할 수 있고, 별도의 신호 라인들을 통해 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록(CK)을 수신할 수 있다.
SPD(1340)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1340)는 비휘발성 메모리 모듈(1300)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1340)는 비휘발성 메모리 모듈(1300)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 비휘발성 메모리 모듈(1300)이 포함된 컴퓨팅 시스템이 부팅 될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1340)를 읽고, 이를 기반으로 비휘발성 메모리 모듈(1300)을 인식할 수 있다. 프로세서(1100)는 SPD(1340)를 기반으로 비휘발성 메모리 모듈(1300)을 저장 매체로서 사용할 수 있다.
예시적으로, SPD(1340)는 부가 통신 채널(Side-Band Communication Channel)을 통해 프로세서(1100)와 통신할 수 있다. 프로세서(1100)는 부가 통신 채널을 통해 SPD(1340)와 부가 신호(SBS; Side-Band Signal)을 주고받을 수 있다. 예시적으로, SPD(1340)는 부가 통신 채널을 통해 비휘발성 메모리 모듈 제어기(1310)와 통신할 수 있다. 예시적으로, 부가 통신 채널은 I2C 통신에 기반된 채널일 수 있다. 예시적으로, SPD(1340), 비휘발성 메모리 모듈 제어기(1310), 및 프로세서(1100)는 I2C 통신을 기반으로 서로 통신하거나 또는 정보를 주고받을 수 있다.
도 13은 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 2 실시 예를 예시적으로 보여주는 블록도이다. 예시적으로, 도 10은 RDIMM(Registered DIMM) 형태를 갖는 비휘발성 메모리 모듈(2300)의 블록도이다. 예시적으로, 도 10에 도시된 비휘발성 메모리 모듈(2300)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 13을 참조하면, 비휘발성 메모리 모듈(2300)은 비휘발성 메모리 모듈 제어기(2310), 버퍼 메모리(2320), 비휘발성 메모리 장치(2330), 직렬 프레즌스 검출 칩(2340)(SPD; Serial Presence Detect chip), 및 데이터 버퍼 회로(2350)를 포함한다. 비휘발성 메모리 모듈 제어기(2310)는 램(2311)을 포함한다.
데이터 버퍼 회로(2350)는 프로세서(1100, 도 9 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 비휘발성 메모리 모듈 제어기(2350)로 전달할 수 있다. 또는 데이터 버퍼 회로(2350)는 비휘발성 메모리 모듈 제어기(2310)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.
예시적으로, 데이터 버퍼 회로(2350)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 비휘발성 메모리 모듈 제어기(2310)와 신호를 주고받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 비휘발성 메모리 모듈 제어기(2310)의 제어에 따라 동작할 수 있다.
도 14는 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 3 실시 예를 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 비휘발성 메모리 모듈(3200)은 제어 회로(3210), 비휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함할 수 있다. 예시적으로, 비휘발성 메모리 장치(3220)는 복수의 비휘발성 메모리들을 포함할 수 있고, 램 장치(3230)는 복수의 DRAM들을 포함할 수 있다. 예시적으로, 복수의 비휘발성 메모리들은 프로세서(1100)에 의해 컴퓨팅 시스템(3000)의 스토리지로 사용될 수 있다. 예시적으로, 복수의 비휘발성 메모리들(NVM) 각각은 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 비휘발성 메모리 소자들을 포함할 수 있다.
복수의 DRAM들은 프로세서(1100)에 의해 컴퓨팅 시스템(3000)의 메인 메모리로서 사용될 수 있다. 예시적으로, 램 장치(3230)는 DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, MRAM 등과 같은 랜덤 엑세스 메모리 소자들을 포함할 수 있다.
제어 회로(3210)는 비휘발성 메모리 모듈 제어기(3211) 및 SPD(3212)를 포함한다. 비휘발성 메모리 모듈 제어기(3211)는 프로세서(1100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 수신할 수 있다. 비휘발성 메모리 모듈 제어기(3211)는 프로세서(1100)로부터 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 비휘발성 메모리 장치(3220) 또는 램 장치(3230)에 선택적으로 저장할 수 있다. 또는 비휘발성 메모리 모듈 제어기(3211)는 프로세서(1100)로부터 수신된 신호들에 응답하여, 비휘발성 메모리 장치(3220) 또는 램 장치(3230)에 저장된 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 선택적으로 전송할 수 있다.
예시적으로, 프로세서(1100)는 커맨드(CMD), 어드레스(ADDR), 또는 별도의 신호 또는 별도의 정보를 통해 비휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. 즉, 프로세서(1100)는 비휘발성 메모리 모듈(3200)에 포함된 비휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다.
도 15는 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 4 실시 예를 예시적으로 보여주는 블록도이다. 도 15를 참조하면, 비휘발성 메모리 모듈(4200)은 제어 회로(4100), 비휘발성 메모리 장치(4220), 및 램 장치(4230)를 포함한다. 제어 회로(4210)는 비휘발성 메모리 모듈 제어기(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다.
비휘발성 메모리 모듈 제어기(4211)는 프로세서(1100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 수신한다. 비휘발성 메모리 모듈 제어기(4211)는 수신된 신호들에 응답하여 비휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다. 예를 들어, 프로세서(1100)는 비휘발성 메모리 장치(4220) 또는 램 장치(4230) 각각을 선택적으로 엑세스할 수 있다. 비휘발성 메모리 모듈 제어기(4231)는 프로세서(4100)의 제어에 따라 비휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다.
데이터 버퍼 회로(4213)는 프로세서(1100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 수신된 신호들을 비휘발성 메모리 모듈 제어기(4211) 및 램 장치(4230)로 제공할 수 있다. 또는 데이터 버퍼 회로(4213)는 비휘발성 메모리 모듈 제어기(4211) 또는 램 장치(4230)로부터 수신된 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(1100)로 제공할 수 있다.
예시적으로, 프로세서(1100)가 비휘발성 메모리 장치(4220)에 데이터를 저장하는 경우, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신되는 데이터는 비휘발성 메모리 모듈 제어기(4211)로 제공되고, 비휘발성 메모리 모듈 제어기(4211)는 수신된 데이터를 가공하여 비휘발성 메모리 장치(4220)로 제공할 수 있다. 또는 프로세서(1100)가 비휘발성 메모리 장치(4220)에 저장된 데이터를 읽는 경우, 데이터 버퍼 회로(4213)는 비휘발성 메모리 모듈 제어기(4211)로부터 제공되는 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(1100)로 제공할 수 있다. 또는 프로세서(1100)가 램 장치(4230)에 데이터를 저장하는 경우, 데이터 버퍼 회로(4213)로 수신된 데이터는 램 장치(4230)로 제공되고, 비휘발성 메모리 모듈 제어기(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 램 장치(4230)로 전달할 수 있다. 또는 프로세서(1100)가 램 장치(4230)에 저장된 데이터를 읽는 경우, 비휘발성 메모리 모듈 제어기(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 램 장치(4230)로 전달하고, 램 장치(4230)는 전달된 신호들에 응답하여, 데이터를 데이터 버퍼 회로(4213)로 제공하고, 데이터 버퍼 회로(4213)는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 데이터를 프로세서(1100)로 제공할 수 있다.
도 16은 도 11의 비휘발성 메모리 모듈들 중 어느 하나에 대한 제 5 실시 예를 예시적으로 보여주는 블록도이다. 도 16을 참조하면, 비휘발성 메모리 모듈(5200)은 제어 회로(5210), 비휘발성 메모리 장치(5220), 및 램 장치(5230)를 포함한다. 제어 회로(5210)는 비휘발성 메모리 모듈 제어기(5211) 및 SPD(5212)를 포함한다. 비휘발성 메모리 모듈(5200)은 도 15의 비휘발성 메모리 모듈(4200)과 유사하게 동작할 수 있다. 하지만, 비휘발성 메모리 모듈(5200)은 도 15의 비휘발성 메모리 모듈(4200)과 달리 데이터 버퍼 회로(4213)를 포함하지 않는다. 즉, 도 13의 비휘발성 메모리 모듈(5200)은 프로세서(1100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 비휘발성 메모리 모듈 제어기(5211) 또는 램 장치(5230)로 직접 제공할 수 있다. 또는, 도 16의 비휘발성 메모리 모듈(5200)의 비휘발성 메모리 모듈 제어기(5211)로부터의 데이터 또는 램 장치(5230)로부터의 데이터는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(1100)로 직접 제공할 수 있다.
예시적으로, 도 15의 비휘발성 메모리 모듈(4200)은 LRDIMM(Load Reduced DIMM) 형태의 메모리 모듈이고, 도 16의 비휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.
도 17은 본 발명의 실시 예에 따른 비휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다. 도 17을 참조하면, 서버 시스템(6000)은 복수의 서버 랙들(6100)을 포함할 수 있다. 복수의 서버 랙들(6100) 각각은 복수의 비휘발성 메모리 모듈들(6200)을 포함할 수 있다. 복수의 비휘발성 메모리 모듈들(6200)은 복수의 서버 랙들(6100) 각각에 포함된 프로세서들과 직접적으로 연결될 수 있다. 예를 들어, 복수의 비휘발성 메모리 모듈들(6200)은 듀얼 인-라인 메모리 모듈의 형태를 갖고, 프로세서와 전기적으로 연결된 DIMM 소켓에 장착되어 프로세서와 서로 통신할 수 있다. 예시적으로, 복수의 비휘발성 메모리 모듈들(6200)은 서버 시스템(6000)의 스토리지로서 사용될 수 있다.
본 발명에 따른 비휘발성 메모리 그리고/또는 비휘발성 메모리 모듈 제어기 등은 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 예를 들면, 본 발명에 따른 비휘발성 메모리 그리고/또는 비휘발성 메모리 모듈 제어기는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20: 컴퓨팅 시스템
100, 100a: 프로세서
200: 메모리 모듈
300, 400: 비휘발성 메모리 모듈
120: 메모리 관리 유닛
RO: 읽기 전용
RW: 읽기 쓰기
APPD: 어플리케이션 데이터

Claims (10)

  1. 컴퓨팅 시스템의 메모리 관리 방법에 있어서:
    비휘발성 메모리의 페이지 데이터를 읽기 쓰기 모드로 할당하는 단계;
    상기 비휘발성 메모리의 상기 페이지 데이터를 DRAM(dynamic random access memory)에 복사하는 단계;
    상기 비휘발성 메모리로부터 복사된 상기 DRAM의 상기 페이지 데이터를 읽기 전용 모드로 할당하는 단계;
    쓰기 요청에 응답하여 상기 DRAM에서 쓰기 동작을 수행하는 단계;
    상기 DRAM에 의해, 상기 비휘발성 메모리로부터 복사된 상기 DRAM의 상기 페이지 데이터를 상기 읽기 전용 모드로 할당한 것에 기초한 상기 쓰기 동작을 실패하는 단계;
    상기 DRAM으로부터 쓰기 실패 정보를 수신하는 단계; 및
    상기 쓰기 실패 정보에 응답하여 상기 비휘발성 메모리에 데이터를 쓰는 단계를 포함하되,
    상기 컴퓨팅 시스템은:
    프로세서;
    DDR(double data rate) 인터페이스를 통해 상기 프로세서에 연결되고, 상기 DRAM을 포함하는 메모리 모듈; 및
    상기 DDR 인터페이스를 통해 상기 프로세서에 연결되고, 상기 비휘발성 메모리를 포함하는 비휘발성 메모리 모듈을 포함하고,
    상기 프로세서는:
    상기 비휘발성 메모리의 상기 페이지 데이터를 상기 읽기 쓰기 모드로 할당하고,
    상기 비휘발성 메모리의 상기 페이지 데이터를 상기 DRAM에 복사하고, 그리고
    상기 비휘발성 메모리로부터 복사된 상기 DRAM의 상기 페이지 데이터를 상기 읽기 전용 모드로 할당하도록 구성된 방법.
  2. 제 1 항에 있어서,
    상기 비휘발성 메모리의 상기 페이지 데이터를 복사하는 단계는:
    상기 프로세서의 제1 어플리케이션으로부터 메모리 할당 요청을 수신하는 단계; 및
    상기 메모리 할당 요청에 응답하여 상기 비휘발성 메모리의 상기 페이지 데이터를 상기 DRAM으로 복사하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 프로세서의 제2 어플리케이션으로부터 상기 쓰기 요청을 수신하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 비휘발성 메모리에 상기 데이터를 쓰는 단계는:
    상기 비휘발성 메모리에 포함된 SRAM(static random access memory)의 어드레스를 할당하는 단계;
    상기 SRAM에 상기 데이터를 쓰는 단계; 및
    상기 SRAM의 상기 데이터를 상기 읽기 쓰기 모드로 할당하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 프로세서의 제3 어플리케이션으로부터 상기 DRAM에 저장된 복수의 페이지 데이터 중 적어도 하나의 업데이트 요청을 수신하는 단계; 및
    상기 업데이트 요청에 응답하여, 상기 DRAM의 상기 복수의 페이지 데이터 중 상기 적어도 하나에 업데이트될 데이터를 상기 비휘발성 메모리의 적어도 하나의 페이지 데이터에 쓰는 단계를 더 포함하되,
    상기 DRAM의 상기 페이지 데이터는 상기 DRAM에 저장된 상기 복수의 페이지 데이터 중 하나인 방법.
  6. 제 1 항에 있어서,
    상기 비휘발성 메모리로부터 복사된 상기 DRAM의 상기 페이지 데이터를 상기 읽기 전용 모드로 할당하는 단계는:
    상기 쓰기 요청에 응답하여 메모리 쓰기 억세스 실패(memory write access fault)를 발생시키도록 상기 DRAM을 구성하는 단계를 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 비휘발성 메모리로부터 복사된 상기 DRAM의 상기 페이지 데이터를 상기 읽기 전용 모드로 할당하는 단계는:
    상기 비휘발성 메모리의 상기 페이지 데이터가 상기 읽기 쓰기 모드에 있는 동안, 상기 비휘발성 메모리로부터 복사된 상기 DRAM의 상기 페이지 데이터를 상기 읽기 전용 모드로 할당하는 단계를 포함하는 방법.
  8. 프로세서, 메모리 모듈, 및 비휘발성 메모리 모듈을 포함하는 컴퓨팅 시스템의 관리 방법에 있어서:
    어플리케이션으로부터 메모리 할당 요청을 수신하는 단계;
    상기 메모리 할당 요청에 응답하여 상기 비휘발성 메모리 모듈에 저장된 어플리케이션 데이터를 상기 메모리 모듈로 복사하는 단계;
    상기 비휘발성 메모리 모듈로부터 복사된 상기 메모리 모듈의 상기 어플리케이션 데이터를 읽기 전용 모드로 할당하는 단계;
    상기 어플리케이션으로부터 쓰기 요청을 수신하는 단계;
    상기 쓰기 요청에 응답하여 상기 메모리 모듈에서 쓰기 동작을 수행하는 단계;
    상기 메모리 모듈에 의해, 상기 비휘발성 메모리 모듈로부터 복사된 상기 메모리 모듈의 상기 어플리케이션 데이터를 상기 읽기 전용 모드로 할당한 것에 기초한 상기 쓰기 동작을 실패하는 단계; 및
    상기 메모리 모듈에서 상기 쓰기 동작이 실패한 후, 상기 비휘발성 메모리 모듈의 SRAM(static random access memory)에서 상기 쓰기 동작을 수행하는 단계를 포함하는 방법.
  9. 제 8 항에 있어서,
    상기 비휘발성 메모리 모듈에 저장된 상기 어플리케이션 데이터를 읽기 쓰기 모드로 할당하는 단계를 더 포함하는 방법.
  10. 제 8 항에 있어서,
    상기 어플리케이션으로부터 쓰기 요청을 수신하는 단계;
    상기 비휘발성 메모리 모듈로부터 복사된 상기 메모리 모듈의 상기 어플리케이션 데이터가 상기 읽기 전용 모드로 할당되었는지 여부를 판별하는 단계; 및
    상기 비휘발성 메모리 모듈로부터 복사된 상기 메모리 모듈의 상기 어플리케이션 데이터가 상기 읽기 전용 모드로 할당되었다고 판별한 것에 기초하여 상기 비휘발성 메모리 모듈에서 상기 쓰기 동작을 수행하는 단계를 더 포함하는 방법.
KR1020150097297A 2015-07-08 2015-07-08 컴퓨팅 시스템 및 그것의 메모리 관리 방법 KR102374637B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150097297A KR102374637B1 (ko) 2015-07-08 2015-07-08 컴퓨팅 시스템 및 그것의 메모리 관리 방법
US15/196,726 US10078448B2 (en) 2015-07-08 2016-06-29 Electronic devices and memory management methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150097297A KR102374637B1 (ko) 2015-07-08 2015-07-08 컴퓨팅 시스템 및 그것의 메모리 관리 방법

Publications (2)

Publication Number Publication Date
KR20170007584A KR20170007584A (ko) 2017-01-19
KR102374637B1 true KR102374637B1 (ko) 2022-03-17

Family

ID=57990779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150097297A KR102374637B1 (ko) 2015-07-08 2015-07-08 컴퓨팅 시스템 및 그것의 메모리 관리 방법

Country Status (1)

Country Link
KR (1) KR102374637B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102417696B1 (ko) * 2018-03-20 2022-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN109634785B (zh) * 2018-12-29 2024-08-06 西安紫光国芯半导体股份有限公司 一种兼容nvdimm-p的nvdimm-n装置和方法
KR20220053973A (ko) 2020-10-23 2022-05-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199056A1 (en) 2001-06-20 2002-12-26 Hitachi, Ltd. And Hitachi Ulsi Systems Co., Ltd. Semiconductor device with non-volatile memory and random access memory
US20060224820A1 (en) 2005-04-01 2006-10-05 Hyun-Duk Cho Flash memory device supporting cache read operation
US20080235468A1 (en) 2007-03-19 2008-09-25 A-Data Technology Co., Ltd. Hybrid density memory storage device
US20160259726A1 (en) 2014-03-13 2016-09-08 Hitachi, Ltd. Storage system and method for controlling the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199056A1 (en) 2001-06-20 2002-12-26 Hitachi, Ltd. And Hitachi Ulsi Systems Co., Ltd. Semiconductor device with non-volatile memory and random access memory
US20060224820A1 (en) 2005-04-01 2006-10-05 Hyun-Duk Cho Flash memory device supporting cache read operation
US20080235468A1 (en) 2007-03-19 2008-09-25 A-Data Technology Co., Ltd. Hybrid density memory storage device
US20160259726A1 (en) 2014-03-13 2016-09-08 Hitachi, Ltd. Storage system and method for controlling the same

Also Published As

Publication number Publication date
KR20170007584A (ko) 2017-01-19

Similar Documents

Publication Publication Date Title
US10078448B2 (en) Electronic devices and memory management methods thereof
US11614866B2 (en) Nonvolatile memory device and operation method thereof
US9767903B2 (en) Nonvolatile memory module having dual-port DRAM
KR102491651B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US10671299B2 (en) Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module
KR102593379B1 (ko) 메모리 패키지, 그것을 포함하는 메모리 모듈, 및 그것의 동작 방법
US10649894B2 (en) Nonvolatile memory module and operation method thereof
US9824734B2 (en) Nonvolatile memory module having backup function
US10203909B2 (en) Nonvolatile memory modules comprising volatile memory devices and nonvolatile memory devices
JP7007102B2 (ja) 不揮発性メモリモジュール、及び格納装置の動作方法
US10929064B2 (en) Methods of operating mixed device type memory modules, and processors and systems configured for operating the same
US20210157525A1 (en) Memory controller and operating method thereof
KR102374637B1 (ko) 컴퓨팅 시스템 및 그것의 메모리 관리 방법
KR102646721B1 (ko) 컴퓨팅 시스템, 비휘발성 메모리 모듈, 및 저장 장치의 동작 방법
KR102513903B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
KR102548574B1 (ko) 불휘발성 메모리 모듈
KR102290988B1 (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR102473206B1 (ko) 컴퓨팅 시스템 및 그것의 쓰기 방법
KR20160144574A (ko) 불휘발성 메모리 모듈 및 그것의 데이터 쓰기 방법
KR102461460B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 pvt 보상 방법
KR102482901B1 (ko) 불휘발성 메모리 모듈 및 그것을 포함하는 스토리지 시스템
KR20160144576A (ko) 불휘발성 메모리 모듈 및 그것의 포함하는 사용자 장치
TW202338622A (zh) 儲存裝置及其操作方法
TW202307664A (zh) 記憶體裝置及其操作方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant