KR20190120536A - Semiconductor memory module and memory system including semiconductor memory module - Google Patents

Semiconductor memory module and memory system including semiconductor memory module Download PDF

Info

Publication number
KR20190120536A
KR20190120536A KR1020180043848A KR20180043848A KR20190120536A KR 20190120536 A KR20190120536 A KR 20190120536A KR 1020180043848 A KR1020180043848 A KR 1020180043848A KR 20180043848 A KR20180043848 A KR 20180043848A KR 20190120536 A KR20190120536 A KR 20190120536A
Authority
KR
South Korea
Prior art keywords
memory
controller
data
processor
read
Prior art date
Application number
KR1020180043848A
Other languages
Korean (ko)
Other versions
KR102538253B1 (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 KR1020180043848A priority Critical patent/KR102538253B1/en
Priority to US16/218,720 priority patent/US10990463B2/en
Priority to CN201910166951.9A priority patent/CN110389721A/en
Publication of KR20190120536A publication Critical patent/KR20190120536A/en
Application granted granted Critical
Publication of KR102538253B1 publication Critical patent/KR102538253B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The present invention relates to a semiconductor memory module. According to an embodiment of the present invention, the semiconductor memory module comprises: a random access memory; a nonvolatile memory; a buffer memory; and a controller configured to perform a read operation on the buffer memory in response to the activation of a control signal. According to a result of the read operation, the controller is further configured to perform a flush operation of storing first data stored in the random access memory in the nonvolatile memory.

Description

반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템{SEMICONDUCTOR MEMORY MODULE AND MEMORY SYSTEM INCLUDING SEMICONDUCTOR MEMORY MODULE}A memory system including a semiconductor memory module and a semiconductor memory module {SEMICONDUCTOR MEMORY MODULE AND MEMORY SYSTEM INCLUDING SEMICONDUCTOR MEMORY MODULE}

본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템에 관한 것이다.The present invention relates to a semiconductor device, and more particularly, to a memory system including a semiconductor memory module and a semiconductor memory module.

반도체 메모리는 반도체 소자들을 이용하여 데이터를 저장하는 데에 사용된다. 반도체 메모리는 동적 랜덤 액세스 메모리 또는 정적 랜덤 액세스 메모리와 같은 휘발성 메모리, 그리고 플래시 메모리, 상 변화 메모리, 강유전체 메모리, 자기 메모리, 저항성 메모리 등과 같은 불휘발성 메모리를 포함한다.Semiconductor memories are used to store data using semiconductor elements. Semiconductor memory includes volatile memory such as dynamic random access memory or static random access memory, and nonvolatile memory such as flash memory, phase change memory, ferroelectric memory, magnetic memory, resistive memory, and the like.

통상적으로, 휘발성 메모리는 고속의 랜덤 액세스를 지원하며, 개인용 컴퓨터, 서버 또는 워크스테이션과 같은 컴퓨팅 시스템의 주 메모리로 사용된다. 불휘발성 메모리는 큰 저장 용량을 지원하며, 컴퓨팅 시스템의 보조 스토리지로 사용된다.Typically, volatile memory supports high speed random access and is used as the main memory of computing systems such as personal computers, servers or workstations. Nonvolatile memory supports large storage capacities and is used as secondary storage for computing systems.

근래에, 스토리지 클래스 메모리(SCM, Storage Class Memory)에 대한 연구 및 개발이 진행되고 있다. 스토리지 클래스 메모리는 불휘발성의 큰 저장 용량과 고속의 랜덤 액세스 모두를 지원하는 것을 목표로 개발되고 있다. 스토리지 클래스 메모리는 불휘발성 메모리를 이용하여 구현될 수 있다.In recent years, research and development on storage class memory (SCM) has been progressing. Storage class memory is being developed with the goal of supporting both large nonvolatile storage capacity and high speed random access. The storage class memory may be implemented using nonvolatile memory.

기존의 주 메모리와의 호환성을 위하여, 스토리지 클래스 메모리는 주 메모리의 메모리 모듈을 기반으로 연구 및 개발되고 있다. 그러나 기존의 주 메모리인 동적 랜덤 액세스 메모리(DRAM)의 동작 특성과 스토리지 클래스 메모리의 불휘발성 메모리의 동작 특성의 차이로 인해, 스토리지 클래스 메모리의 속도는 기존의 주 메모리의 속도보다 낮을 수 있다.For compatibility with the existing main memory, the storage class memory is researched and developed based on the memory module of the main memory. However, due to the difference between the operation characteristics of the conventional main memory, the dynamic random access memory (DRAM), and the operation characteristics of the nonvolatile memory of the storage class memory, the speed of the storage class memory may be lower than that of the existing main memory.

본 발명의 목적은 향상된 속도를 갖는 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템을 제공하는 데에 있다.An object of the present invention is to provide a memory system including a semiconductor memory module and a semiconductor memory module having an improved speed.

본 발명의 실시 예에 따른 반도체 메모리 모듈은 랜덤 액세스 메모리, 불휘발성 메모리, 버퍼 메모리, 그리고 제어 신호의 활성화에 응답하여 버퍼 메모리에 대해 읽기 동작을 수행하도록 구성되는 제어기를 포함한다. 읽기 동작의 결과에 따라, 제어기는 랜덤 액세스 메모리에 저장된 제1 데이터를 불휘발성 메모리에 저장하는 플러시 동작을 수행하도록 더 구성된다.A semiconductor memory module according to an embodiment of the present invention includes a random access memory, a nonvolatile memory, a buffer memory, and a controller configured to perform a read operation on a buffer memory in response to activation of a control signal. According to the result of the read operation, the controller is further configured to perform a flush operation of storing the first data stored in the random access memory in the nonvolatile memory.

본 발명의 실시 예에 따른 반도체 메모리 모듈은 랜덤 액세스 메모리, 불휘발성 메모리, 버퍼 메모리, 그리고 제어 신호의 활성화에 응답하여 버퍼 메모리 및 랜덤 액세스 메모리에 대해 읽기 동작을 수행하고, 버퍼 메모리로부터 읽은 제1 데이터를 불휘발성 메모리에 저장하고, 그리고 랜덤 액세스 메모리로부터 읽은 제2 데이터를 버퍼 메모리에 저장하는 플러시 동작을 수행하도록 구성되는 제어기를 포함한다.A semiconductor memory module according to an embodiment of the present invention performs a read operation on a buffer memory and a random access memory in response to activation of a random access memory, a nonvolatile memory, a buffer memory, and a control signal, and reads from the buffer memory And a controller configured to store data in a nonvolatile memory and to perform a flush operation of storing second data read from the random access memory into a buffer memory.

본 발명의 실시 예에 따른 메모리 시스템은 반도체 메모리 모듈 및 중앙 제어 블록을 포함한다. 반도체 메모리 모듈은 랜덤 액세스 메모리, 불휘발성 메모리, 그리고 제어기를 포함한다. 중앙 제어 블록은 반도체 메모리 모듈을 액세스할 때에 액세스 오류가 검출되면, 제어기에 전달되는 제어 신호를 활성화하도록 구성된다. 제어 신호가 활성화되는 것에 응답하여, 제어기는 랜덤 액세스 메모리에 저장된 데이터 중 제1 데이터를 읽고 그리고 제1 데이터를 불휘발성 메모리에 제2 데이터로서 저장하도록 구성된다.A memory system according to an embodiment of the present invention includes a semiconductor memory module and a central control block. The semiconductor memory module includes a random access memory, a nonvolatile memory, and a controller. The central control block is configured to activate a control signal transmitted to the controller if an access error is detected when accessing the semiconductor memory module. In response to the control signal being activated, the controller is configured to read the first of the data stored in the random access memory and to store the first data as the second data in the nonvolatile memory.

본 발명에 따르면, 반도체 메모리 모듈은 쓰기 테이블을 이용하여 랜덤 액세스 메모리의 데이터 중 일부를 불휘발성 메모리로 플러시한다. 또한, 반도체 메모리 모듈은 캐시 미스가 발생한 데이터를 버퍼 메모리에 저장할 수 있다. 따라서, 향상된 속도를 갖는 반도체 메모리 모듈이 제공된다. 또한, 본 발명에 따르면, 메모리 시스템은 액세스 에러가 발생할 때에 반도체 메모리 모듈에 플러시를 지시할 수 있다. 따라서, 향상된 속도를 갖는 메모리 시스템이 제공된다.According to the present invention, the semiconductor memory module uses a write table to flush some of the data of the random access memory to the nonvolatile memory. In addition, the semiconductor memory module may store data in which a cache miss occurs in the buffer memory. Thus, a semiconductor memory module with improved speed is provided. Further, according to the present invention, the memory system may instruct the semiconductor memory module to flush when an access error occurs. Thus, a memory system with improved speed is provided.

도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 보여주는 순서도이다.
도 3은 액세스 에러가 발생할 때에 플러시 동작을 지시하는 제1 예를 보여준다.
도 4는 허브가 제1 제어 신호를 활성화하는 다른 예를 보여준다.
도 5는 액세스 에러가 발생할 때에 플러시 동작을 지시하는 제2 예를 보여준다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 따른 제1 메모리 모듈 또는 제3 메모리 모듈의 동작 방법을 보여주는 순서도이다.
도 8은 제1 메모리 모듈에 데이터를 저장하는 제1 예를 보여준다.
도 9는 제1 메모리 모듈에서 버퍼 메모리를 이용하여 플러시 동작이 수행되는 제1 예를 보여준다.
도 10은 제1 메모리 모듈에서 버퍼 메모리를 이용하여 플러시 동작이 수행되는 제2 예를 보여준다.
도 11은 도 10에 후속하여 플러시 동작이 수행되는 예를 보여준다.
도 12는 제1 메모리 모듈이 버퍼 메모리를 이용하는 응용 예를 보여준다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 14는 프로세서가 제1 및 제3 메모리 모듈들을 액세스하는 예를 보여준다.
도 15는 본 발명의 제1 예에 따른 메모리 시스템의 동작 방법을 보여주는 순서도이다.
도 16은 제1 메모리 모듈로부터 데이터를 읽는 예를 보여준다.
도 17은 제1 메모리 모듈에 대해 예외 처리가 수행되는 예를 보여준다.
도 18은 본 발명의 제2 예에 따른 동작 방법을 보여주는 순서도이다.
도 19는 군주 코어가 할당되는 예를 보여준다.
도 20은 나머지 코어들이 관리되는 제1 예를 보여준다.
도 21은 본 발명의 실시 예에 따라 예외 처리를 위해 코어들이 관리되는 예를 보여준다.
도 22는 나머지 코어들이 관리되는 제2 예를 보여준다.
도 23은 제1 코어가 예외 처리를 수행하는 동안 다른 예외 처리가 발생하는 예를 보여준다.
도 24는 도 11의 상태에 후속하여 제1 코어가 예외 처리를 완료하는 예를 보여준다.
도 25는 코어들 또는 프로세서가 생성하는 에러 신호의 제1 예를 보여준다.
도 26은 본 발명의 실시 예에 따른 제1 타입 메모리 모듈을 보여주는 블록도이다.
도 27은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 28은 프로세서가 제1 및 제3 메모리 모듈들을 액세스하는 예를 보여준다.
도 29는 페이지 부재가 발생하는 예를 보여준다.
도 30은 부재 처리가 수행되는 예를 보여준다.
도 31은 제1 응용에 '01' 내지 '16'의 가상 주소들로 식별되는 가상 저장 공간이 할당되는 예를 보여준다.
도 32는 도 5에 후속하여 제1 실시 예에 따라 가상 주소들이 할당되는 예를 보여준다.
도 33은 페이지 부재 처리기가 제1 실시 예에 따라 '01' 내지 '16'의 가상 주소들에 대해 페이지 부재 처리를 수행한 예를 보여준다.
도 34는 본 발명의 제2 실시 예에 따른 부재 처리 방법을 보여준다.
도 35는 도 32에 후속하여 제2 실시 예에 따라 가상 주소들이 할당되는 예를 보여준다.
도 36은 도 35에 후속하여 제2 실시 예에 따라 가상 주소들이 할당되는 예를 보여준다.
도 37은 페이지 부재 처리기가 제2 실시 예에 따라 '01' 내지 '16'의 가상 주소들에 대해 페이지 부재 처리를 수행한 예를 보여준다.
도 38은 본 발명의 실시 예에 따라 페이지들의 수를 조절하는 예를 보여준다.
도 39는 부재 처리의 결과가 제1 메모리 모듈로 전달되는 예를 보여준다.
도 40은 본 발명의 실시 예에 따른 제1 타입 메모리 모듈을 보여주는 블록도이다.
도 41은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 42는 본 발명의 실시 예에 따른 제1 타입 메모리 모듈의 동작 방법을 보여주는 순서도이다.
도 43은 메모리 제어기가 제1 및 제3 메모리 모듈들과 초기화를 수행하는 예를 보여준다.
도 44는 초기화가 수행된 후에 트레이닝 시에, 매체 제어기가 메모리 제어기와 채널을 구성하는 예를 보여준다.
도 45는 트레이닝 시에 매체 제어기가 트레이닝 명령들을 제어하는 예를 보여준다.
도 46은 매체 제어기가 제2 타입 메모리와 채널을 수립하는 예를 보여준다.
도 47은 매체 제어기가 트레이닝의 완료를 검출하는 예를 보여준다.
도 48은 본 발명의 실시 예에 따른 제1 타입 메모리 모듈을 보여주는 블록도이다.
도 49는 본 발명의 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 50은 제1 제어기가 주 메모리에 대해 읽기 동작을 수행하는 예를 보여준다.
도 51은 도 50의 동작 방법에 따라 읽기 동작이 수행되는 제1 예를 보여준다.
도 52는 도 51의 읽기 동작의 변형 예를 보여준다.
도 53은 도 50의 동작 방법에 따라 읽기 동작이 수행되는 제2 예를 보여준다.
도 54는 본 발명의 실시 예에 따른 메모리 제어기의 동작 방법을 보여주는 순서도이다.
도 55는 도 54의 동작 방법에 따라 읽기 동작이 수행되는 제1 예를 보여준다.
도 56은 도 54의 동작 방법에 따라 읽기 동작이 수행되는 제2 예를 보여준다.
도 57은 도 56의 읽기 동작의 변형 예를 보여준다.
도 58은 도 54의 동작 방법의 응용 예를 보여준다.
도 59는 제3 시간을 측정하면서 읽기 동작을 수행하는 예를 보여준다.
도 60은 본 발명의 다른 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 61은 SPD 장치 및 레지스터 갱신기를 포함하는 주 메모리의 예를 보여준다.
도 62는 주 메모리가 레지스터를 갱신하는 방법을 보여주는 순서도이다.
도 63은 본 발명의 또 다른 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 64는 제1 제어기가 쓰기 동작을 수행하는 예를 보여주는 순서도이다.
도 65는 주 메모리가 쓰기 동작을 수행하는 예를 보여주는 순서도이다.
도 66 도 65의 동작 방법에 따라 쓰기 동작이 수행되는 제1 예를 보여준다.
도 67은 도 65의 동작 방법에 따라 쓰기 동작이 수행되는 제2 예를 보여준다.
도 68은 도 66의 동작 방법에 따라 쓰기 동작이 수행되는 제2 예를 보여준다.
도 69는 도 68의 읽기 동작의 변형 예를 보여준다.
도 70은 도 68의 읽기 동작의 다른 변형 예를 보여준다.
1 is a block diagram illustrating a memory system according to an example embodiment of the disclosure.
2 is a flowchart illustrating a method of operating a memory system according to an exemplary embodiment of the inventive concept.
3 shows a first example instructing a flush operation when an access error occurs.
4 shows another example in which the hub activates the first control signal.
5 shows a second example of instructing a flush operation when an access error occurs.
6 is a block diagram illustrating a memory system according to another example embodiment of the disclosure.
7 is a flowchart illustrating a method of operating a first memory module or a third memory module according to an embodiment of the present invention.
8 illustrates a first example of storing data in a first memory module.
9 illustrates a first example in which a flush operation is performed using a buffer memory in a first memory module.
10 illustrates a second example in which a flush operation is performed by using a buffer memory in a first memory module.
FIG. 11 shows an example in which a flush operation is performed following FIG. 10.
12 shows an application example in which the first memory module uses a buffer memory.
13 is a block diagram illustrating a memory system according to an example embodiment of the disclosure.
14 shows an example in which a processor accesses first and third memory modules.
15 is a flowchart illustrating a method of operating a memory system according to a first example of the present invention.
16 shows an example of reading data from a first memory module.
17 shows an example in which exception processing is performed on the first memory module.
18 is a flowchart illustrating an operating method according to a second example of the present invention.
19 shows an example where a monarch core is assigned.
20 shows a first example in which the remaining cores are managed.
21 shows an example of managing cores for exception handling according to an embodiment of the present invention.
22 shows a second example in which the remaining cores are managed.
23 shows an example in which other exception processing occurs while the first core performs exception processing.
24 shows an example in which the first core completes the exception processing following the state of FIG. 11.
25 shows a first example of an error signal generated by the cores or the processor.
26 is a block diagram illustrating a first type memory module according to an embodiment of the present invention.
27 is a block diagram illustrating a memory system according to an example embodiment of the disclosure.
28 shows an example of a processor accessing first and third memory modules.
29 shows an example in which a page member occurs.
30 shows an example in which the member processing is performed.
FIG. 31 shows an example in which a virtual storage space identified by virtual addresses of '01' to '16' is allocated to a first application.
32 shows an example in which virtual addresses are allocated according to the first embodiment subsequent to FIG. 5.
33 illustrates an example in which the page absence processor performs page absence processing on virtual addresses of '01' to '16' according to the first embodiment.
34 is a view illustrating a member processing method according to a second embodiment of the present invention.
FIG. 35 shows an example in which virtual addresses are allocated according to the second embodiment following FIG. 32.
FIG. 36 shows an example in which virtual addresses are allocated according to the second embodiment subsequent to FIG. 35.
FIG. 37 shows an example in which the page absence processor performs page absence processing on virtual addresses of '01' to '16' according to the second embodiment.
38 shows an example of adjusting the number of pages according to an embodiment of the present invention.
39 shows an example in which the result of the member processing is transferred to the first memory module.
40 is a block diagram illustrating a first type memory module according to an embodiment of the present invention.
41 is a block diagram illustrating a memory system according to an example embodiment of the disclosure.
42 is a flowchart illustrating a method of operating a first type memory module according to an embodiment of the present invention.
43 shows an example in which the memory controller performs initialization with the first and third memory modules.
44 shows an example in which a media controller configures a channel with a memory controller during training after initialization is performed.
45 shows an example in which the media controller controls training commands during training.
46 shows an example in which the media controller establishes a channel with the second type memory.
47 shows an example where the media controller detects completion of training.
48 is a block diagram illustrating a first type memory module according to an embodiment of the present invention.
49 is a block diagram illustrating a computing device according to an example embodiment.
50 shows an example in which the first controller performs a read operation on the main memory.
51 illustrates a first example in which a read operation is performed according to the operating method of FIG. 50.
52 is a view illustrating a modification of the read operation of FIG. 51.
53 illustrates a second example in which a read operation is performed according to the operating method of FIG. 50.
54 is a flowchart illustrating a method of operating a memory controller according to an embodiment of the present invention.
55 is a view illustrating a first example in which a read operation is performed according to the operating method of FIG. 54.
FIG. 56 shows a second example in which a read operation is performed according to the operating method of FIG. 54.
FIG. 57 shows a modification of the read operation of FIG. 56.
58 shows an application example of the operation method of FIG. 54.
59 shows an example of performing a read operation while measuring the third time.
60 is a block diagram illustrating a computing device according to another example of the inventive concept.
61 shows an example of a main memory including an SPD device and a register updater.
62 is a flowchart showing how the main memory updates registers.
63 is a block diagram illustrating a computing device according to another example of the present disclosure.
64 is a flowchart illustrating an example in which a first controller performs a write operation.
65 is a flowchart illustrating an example in which the main memory performs a write operation.
66 illustrates a first example in which a write operation is performed according to the operation method of FIG. 65.
67 is a view illustrating a second example in which a write operation is performed according to the operating method of FIG. 65.
FIG. 68 shows a second example in which a write operation is performed according to the operation method of FIG. 66.
69 is a view illustrating a modification of the read operation of FIG. 68.
70 shows another modified example of the read operation of FIG. 68.

이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail so that those skilled in the art can easily carry out the present invention.

도 1은 본 발명의 실시 예에 따른 메모리 시스템(100a)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(100a)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(100a)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.1 is a block diagram illustrating a memory system 100a according to an exemplary embodiment of the inventive concept. For example, the memory system 100a may include a server such as an application server, a client server, and a data server. As another example, memory system 100a may comprise a personal computer or workstation.

도 1을 참조하면, 메모리 시스템(100a)은 중앙 제어 블록(110), 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140), 제4 메모리 모듈(150), 루트 컴플렉스(160), 스토리지 장치(170), 전력 관리 블록(180), 그리고 주변 장치들(190)을 포함한다.Referring to FIG. 1, the memory system 100a may include a central control block 110, a first memory module 120a, a second memory module 130a, a third memory module 140, and a fourth memory module 150. , Root complex 160, storage device 170, power management block 180, and peripherals 190.

중앙 제어 블록(110)은 프로세서(111) 및 허브(114)를 포함한다. 프로세서(111)는 메모리 시스템(100a)의 구성 요소들 및 구성 요소들의 동작들을 제어할 수 있다. 프로세서(111)는 운영체제 및 응용들을 실행하고, 운영체제 또는 응용들을 이용하여 데이터를 처리할 수 있다.The central control block 110 includes a processor 111 and a hub 114. The processor 111 may control the components of the memory system 100a and the operations of the components. The processor 111 may execute an operating system and applications and process data using the operating system or applications.

프로세서(111)는 메모리 제어기(112) 및 캐시 메모리(113)를 포함할 수 있다. 메모리 제어기(112)는 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)을 액세스할 수 있다. 캐시 메모리(113)는 정적 랜덤 액세스 메모리(SRAM)와 같은 고속의 메모리를 포함할 수 있다.The processor 111 may include a memory controller 112 and a cache memory 113. The memory controller 112 may include the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module through the main channels MCH and the auxiliary channels SCH. 150 may be accessed. Cache memory 113 may include high speed memory, such as static random access memory (SRAM).

허브(114)는 전력 관리 블록(180)에 연결될 수 있다. 허브(114)는 프로세서(111)를 다양한 주변 장치들(190)과 연결할 수 있다. 허브(114)는 주변 장치들(190)을 제어하기 위한 다양한 제어기들을 포함할 수 있다. 예를 들어, 허브(114)는 플랫폼 제어기 허브(PCH, Platform Controller Hub)를 포함할 수 있다.Hub 114 may be connected to power management block 180. The hub 114 may connect the processor 111 with various peripheral devices 190. Hub 114 may include various controllers for controlling peripherals 190. For example, the hub 114 may include a platform controller hub (PCH).

허브(114)는 제1 타입 메모리 모듈들(120a, 130a)에 제1 제어 신호(CS1) 및 제2 제어 신호(CS2)를 각각 전송할 수 있다. 예를 들어, 제1 제어 신호(CS1) 및 제2 제어 신호(CS2)는 제1 메모리 모듈(120a) 및 제2 메모리 모듈(130a)에 플러시 동작을 수행할 것을 각각 요청하는 ADR(Asynchronous DRAM Refresh) 신호를 포함할 수 있다.The hub 114 may transmit the first control signal CS1 and the second control signal CS2 to the first type memory modules 120a and 130a, respectively. For example, the first control signal CS1 and the second control signal CS2 each request an ADR DRAM refresh requesting that the first memory module 120a and the second memory module 130a perform a flush operation. ) Signal may be included.

제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)은 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 메모리 제어기(112)에 연결될 수 있다. 메인 채널들(MCH)은 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)(예를 들어, 반도체 메모리 모듈들)에 데이터를 저장하거나 데이터를 읽기 위해 사용되는 채널들일 수 있다. 메인 채널들(MCH)은 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)에 대해 각각 제공되는 채널들을 포함할 수 있다.The first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 are connected to the memory controller through the main channels MCH and the auxiliary channels SCH. 112). The main channels MCH are data stored in the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 (eg, semiconductor memory modules). It may be channels used for storing or reading data. The main channels MCH may include channels provided for the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150, respectively.

보조 채널들(SCH)은 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)에 데이터를 저장하거나 읽는 것 외에, 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)과 연관된 추가적인 기능들을 제공할 수 있다.The auxiliary channels SCH may include a first memory in addition to storing or reading data in the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150. Additional functions associated with the module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may be provided.

예를 들어, 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(112)에 제공할 수 있다. 보조 채널들(SCH)은 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)에 대해 각각 제공되는 채널들을 포함할 수 있다.For example, the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may store their own information through the auxiliary channels SCH. Memory controller 112. The auxiliary channels SCH may include channels provided for the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150, respectively.

제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)은 메모리 시스템(100a)의 메인 메모리로 사용될 수 있다. 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)은 DIMM(Dual In-line Memory Module), RDIMM(Registered DIMM), LRDIMM(Load Reduced DIMM) 등과 같은 메모리 모듈의 표준들 중 하나에 따라 메모리 제어기(112)와 통신할 수 있다.The first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may be used as main memory of the memory system 100a. The first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may include a dual in-line memory module (DIMM), a registered DIMM (RDIMM), and an LRDIMM ( Communication with the memory controller 112 in accordance with one of the standards of a memory module, such as Load Reduced DIMM).

루트 컴플렉스(160)는 프로세서(111)와 직접 통신하거나 또는 허브(114)를 통해 프로세서(111)와 통신할 수 있다. 루트 컴플렉스(160)는 중앙 제어 블록(110)이 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(160)에 스토리지 장치(170)가 연결될 수 있다. 스토리지 장치(170)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.The root complex 160 may communicate directly with the processor 111 or with the processor 111 via the hub 114. The root complex 160 can provide channels through which the central control block 110 accesses various peripheral devices. For example, the storage device 170 may be connected to the root complex 160. The storage device 170 may include a hard disk drive, an optical disk drive, a solid state drive, and the like.

예시적으로, 루트 컴플렉스(160)에 연결되는 주변 장치들은 스토리지 장치(170)로 한정되지 않는다. 예를 들어, 루트 컴플렉스(160)는 모뎀, 그래픽 프로세싱 유닛(GPU), 뉴로모픽(Neuromorphic) 프로세서 등과 같은 다양한 장치들에 연결될 수 있다.In exemplary embodiments, peripheral devices connected to the root complex 160 are not limited to the storage device 170. For example, the root complex 160 can be connected to various devices such as a modem, graphics processing unit (GPU), neuromorphic processor, and the like.

전력 관리 블록(180)은 메모리 시스템(100a)에 공급되는 전력을 관찰하고, 메모리 시스템(100a)의 구성 요소들에 공급되는 전력을 제어할 수 있다. 전력 관리 블록(180)은 메모리 시스템(100a)에서 급작스런 전원 오프(SPO), Sudden Power Off)가 발생할 때에, SPO를 알리는 신호를 허브(114)에 제공할 수 있다.The power management block 180 may observe power supplied to the memory system 100a and control power supplied to components of the memory system 100a. The power management block 180 may provide a signal to the hub 114 to notify the SPO when a sudden power off (SPO) occurs in the memory system 100a.

프로세서(111)는 캐시 메모리(113), 메인 메모리인 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150), 그리고 스토리지 장치(170)를 계층적으로 관리할 수 있다. 예를 들어, 프로세서(111)는 스토리지 장치(170)에 저장된 데이터 중 필요한 데이터를 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)을 포함하는 메인 메모리에 로드할 수 있다. 프로세서(111)는 메인 메모리에 저장된 데이터 중 백업이 필요한 데이터를 스토리지 장치(170)로 플러시(flush)할 수 있다.The processor 111 may include a cache memory 113, a main memory first memory module 120a, a second memory module 130a, a third memory module 140 and a fourth memory module 150, and a storage device ( 170) can be managed hierarchically. For example, the processor 111 may store necessary data among the data stored in the storage device 170 in the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module ( 150) to the main memory including the. The processor 111 may flush data to be backed up from the data stored in the main memory to the storage device 170.

제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)을 포함하는 메인 메모리의 저장 영역 중 일부는 캐시 메모리(113)에 사상될 수 있다. 프로세서(111)는 메인 메모리의 특정한 저장 공간을 액세스할 필요가 있을 때, 특정한 저장 공간이 캐시 메모리(113)에 사상되어 있는지 판단할 수 있다.Some of the storage areas of the main memory including the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may be mapped to the cache memory 113. Can be. When the processor 111 needs to access a specific storage space of the main memory, the processor 111 may determine whether the specific storage space is mapped to the cache memory 113.

특정한 저장 공간이 캐시 메모리(113)에 사상되어 있으면, 프로세서(111)는 캐시 메모리(113)의 특정한 저장 공간을 액세스할 수 있다. 특정한 저장 공간이 캐시 메모리(113)에 사상되어 있지 않으면, 프로세서(111)는 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)의 특정한 저장 공간을 캐시 메모리(113)에 사상할(또는 가져올(fetch)) 수 있다.If a particular storage space is mapped to the cache memory 113, the processor 111 can access the particular storage space of the cache memory 113. If a specific storage space is not mapped in the cache memory 113, the processor 111 may include the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150. ) Can store (or fetch) certain storage spaces in cache memory 113.

캐시 메모리(113)의 저장 공간이 부족하면, 프로세서(111)는 기존에 캐시 메모리(113)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(111)는 갱신된 데이터를 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)로 플러시할 수 있다.If the storage space of the cache memory 113 is insufficient, the processor 111 may release the storage space previously mapped to the cache memory 113. When the data of the storage space to be released is updated, the processor 111 transmits the updated data to the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150. Can be flushed to

제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)은 이종의 메모리 모듈들을 포함할 수 있다. 예를 들어, 제1 및 제2 메모리 모듈들(120a, 130a)은 제1 타입 메모리 모듈들일 수 있다. 제3 및 제4 메모리 모듈들(140, 150)은 제2 타입 메모리 모듈들일 수 있다.The first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may include heterogeneous memory modules. For example, the first and second memory modules 120a and 130a may be first type memory modules. The third and fourth memory modules 140 and 150 may be second type memory modules.

제1 메모리 모듈(120a)은 제1 타입 메모리(121), 제2 타입 메모리(122), 매체 제어기(123), 그리고 직렬 프레즌스 검출(SPD)(Serial Presence Detect) 장치(125)를 포함할 수 있다. 제2 메모리 모듈(130a)은 제1 타입 메모리(131), 제2 타입 메모리(132), 매체 제어기(133), 그리고 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(135)를 포함할 수 있다. 이하에서, 제1 메모리 모듈(120a)을 참조하여 제1 타입 메모리 모듈들(120a, 130a)이 설명된다.The first memory module 120a may include a first type memory 121, a second type memory 122, a media controller 123, and a serial presence detection device (SPD) device 125. have. The second memory module 130a may include a first type memory 131, a second type memory 132, a media controller 133, and a serial presence detection (SPD) device 135. . Hereinafter, the first type memory modules 120a and 130a will be described with reference to the first memory module 120a.

제1 타입 메모리(121)는 고속의 휘발성 메모리, 예를 들어 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 제2 타입 메모리(122)는 제1 타입 메모리(121)보다 느린 속도를 갖고, 제1 타입 메모리(121)보다 큰 저장 용량을 갖는 불휘발성 메모리를 포함할 수 있다. 예를 들어, 제2 타입 메모리(122)는 플래시 메모리, 상 변화 메모리(Phase Change Memory), 강유전체 메모리(Ferroelectric Memory), 자기 메모리(Magnetic Memory), 저항성 메모리(Resistive Memory) 등을 포함할 수 있다.The first type memory 121 may include a high speed volatile memory, for example, a dynamic random access memory (DRAM). The second type memory 122 may include a nonvolatile memory having a slower speed than the first type memory 121 and having a larger storage capacity than the first type memory 121. For example, the second type memory 122 may include a flash memory, a phase change memory, a ferroelectric memory, a magnetic memory, a resistive memory, and the like. .

매체 제어기(123)는 메인 채널들(MCH) 중 대응하는 채널을 통해 전달되는 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)로부터의 액세스 명령을 제1 타입 메모리(121) 또는 제2 타입 메모리(122)에 전달할 수 있다. 액세스 명령에 따라, 매체 제어기(123)는 메인 채널들(MCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)와 데이터를 교환할 수 있다.The media controller 123 may receive an access command from an external host device, for example, the memory controller 112 or the processor 111, transmitted through a corresponding channel among the main channels MCH. Alternatively, the data may be transferred to the second type memory 122. According to the access command, the media controller 123 may exchange data with an external host device, for example, the memory controller 112 or the processor 111, through a corresponding channel among the main channels MCH.

매체 제어기(123)는 제2 타입 메모리(122)의 저장 용량 또는 저장 공간을 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공할 수 있다. 매체 제어기(123)는 제1 타입 메모리(121)를 제2 타입 메모리(122)의 캐시 메모리로 사용할 수 있다. The media controller 123 may provide a storage capacity or a storage space of the second type memory 122 to an external host device, for example, the memory controller 112 or the processor 111. The media controller 123 may use the first type memory 121 as a cache memory of the second type memory 122.

예를 들어, 매체 제어기(123)는 제2 타입 메모리(122)의 저장 공간 중 일부 저장 공간을 제1 타입 메모리(121)에 사상할 수 있다. 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(121)에 사상되어 있으면, 매체 제어기(123)는 액세스 명령을 제1 타입 메모리(121)로 전달할 수 있다.For example, the media controller 123 may map some of the storage spaces of the second type memory 122 to the first type memory 121. If the storage space associated with an access command from an external host device, for example, the memory controller 112 or the processor 111, is mapped to the first type memory 121, the media controller 123 issues the first access command. It may be transferred to the type memory 121.

외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(121)에 사상되어 있지 않으면, 매체 제어기(123)는 해당 저장 공간을 제2 타입 메모리(122)로부터 제1 타입 메모리(121)로 사상(또는 백업)할 수 있다.If the storage space associated with an access command from an external host device, for example, the memory controller 112 or the processor 111, is not mapped in the first type memory 121, the media controller 123 may store the storage space. Mapping (or backing up) from the second type memory 122 to the first type memory 121 may be performed.

제1 타입 메모리(121)의 저장 공간이 부족하면, 매체 제어기(123)는 기존에 제1 타입 메모리(121)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(123)는 갱신된 데이터를 제2 타입 메모리(122)로 플러시할 수 있다.If the storage space of the first type memory 121 is insufficient, the media controller 123 may release the storage space previously mapped to the first type memory 121. If data of the storage space to be released is updated, the media controller 123 may flush the updated data to the second type memory 122.

SPD 장치(125)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)와 통신할 수 있다. 예를 들어, 제1 메모리 모듈(120a)이 초기화될 때에, SPD 장치(125)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공할 수 있다.The SPD device 125 may communicate with an external host device, for example, the memory controller 112 or the processor 111 through a corresponding channel among the auxiliary channels SCH. For example, when the first memory module 120a is initialized, the SPD device 125 transmits the stored information to an external host device, for example, the memory controller 112, through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 111 may provide the processor 111.

예를 들어, SPD 장치(125)는 제1 메모리 모듈(120a)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(125)는 제2 타입 메모리(122)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(125)는 제2 타입 메모리(122)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공할 수 있다.For example, the SPD device 125 may store information about a storage capacity provided to an external host device, for example, the memory controller 112 or the processor 111 as a storage space of the first memory module 120a. have. For example, the SPD device 125 may store information about a storage capacity of the second type memory 122. Upon initialization, the SPD device 125 may provide information about the storage capacity of the second type memory 122 to an external host device, for example, the memory controller 112 or the processor 111.

예를 들어, SPD 장치(125)에 저장되는 용량 정보는 제2 타입 메모리(122)의 사용자 용량에 대한 정보를 포함할 수 있다. 제2 타입 메모리(122)의 저장 용량은 사용자 용량, 메타 용량, 그리고 예비 용량을 포함할 수 있다. 사용자 용량은 제2 타입 메모리(122)가 외부의 호스트 장치, 예를 들어 메모리 제어기(112)에 제공하는 저장 용량일 수 있다.For example, the capacity information stored in the SPD device 125 may include information about a user capacity of the second type memory 122. The storage capacity of the second type memory 122 may include a user capacity, a meta capacity, and a spare capacity. The user capacity may be a storage capacity provided by the second type memory 122 to an external host device, for example, the memory controller 112.

메타 용량은 제2 타입 메모리(122)를 관리하기 위한 다양한 메타 정보가 저장되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(112)에 공개되지 않는 저장 용량일 수 있다. 예비 용량은 제2 타입 메모리(122)를 관리하기 위해 확보되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(112)에 공개되지 않는 저장 용량일 수 있다.The meta capacity stores various meta information for managing the second type memory 122 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 112. The spare capacity is reserved for managing the second type memory 122 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 112.

SPD 장치(125)에 저장된 용량 정보는 제2 타입 메모리(122)의 사용자 용량에 대한 정보를 포함할 수 있다. 이하에서, 별도로 명시되지 않으면, 제2 타입 메모리(122)의 용량은 제2 타입 메모리(122)의 사용자 용량을 가리키는 것으로 이해될 수 있다.The capacity information stored in the SPD device 125 may include information about a user capacity of the second type memory 122. Hereinafter, unless otherwise specified, it may be understood that the capacity of the second type memory 122 refers to the user capacity of the second type memory 122.

제3 메모리 모듈(140)은 제1 타입 메모리(141) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(145)를 포함할 수 있다. 제4 메모리 모듈(150)은 제1 타입 메모리(151) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(155)를 포함할 수 있다. 이하에서, 제3 메모리 모듈(140)을 참조하여 제2 타입 메모리 모듈들(140, 150)이 설명된다.The third memory module 140 may include a first type memory 141 and a serial presence detection (SPD) device 145. The fourth memory module 150 may include a first type memory 151 and a serial presence detection (SPD) device 155. Hereinafter, the second type memory modules 140 and 150 will be described with reference to the third memory module 140.

제1 타입 메모리(141)는 제1 메모리 모듈(120a)의 제1 타입 메모리(121)와 마찬가지로 동적 랜덤 액세스 메모리를 포함할 수 있다. SPD 장치(145)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)와 통신할 수 있다. 예를 들어, 제3 메모리 모듈(140)이 초기화될 때에, SPD 장치(145)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공할 수 있다.The first type memory 141 may include a dynamic random access memory like the first type memory 121 of the first memory module 120a. The SPD device 145 may communicate with an external host device, for example, the memory controller 112 or the processor 111 through a corresponding channel among the auxiliary channels SCH. For example, when the third memory module 140 is initialized, the SPD device 145 transmits the stored information to an external host device, for example, the memory controller 112 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 111 may provide the processor 111.

예를 들어, SPD 장치(145)는 제3 메모리 모듈(140)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(145)는 제1 타입 메모리(141)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(145)는 제1 타입 메모리(141)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)에 제공할 수 있다.For example, the SPD device 145 may store information about a storage capacity provided to an external host device, for example, the memory controller 112 or the processor 111 as a storage space of the third memory module 140. have. For example, the SPD device 145 may store information about a storage capacity of the first type memory 141. At initialization, the SPD device 145 may provide information about a storage capacity of the first type memory 141 to an external host device, for example, the memory controller 112 or the processor 111.

메모리 시스템(100a)에 전원이 공급되면, 메모리 제어기(112)는 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)과 초기화를 수행할 수 있다. 예를 들어, 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)의 SPD 장치들(125~155)은 보조 채널들(SCH)을 통해 메모리 제어기(112)에 각각 용량 정보를 제공할 수 있다.When power is supplied to the memory system 100a, the memory controller 112 initializes with the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150. Can be performed. For example, the SPD devices 125 to 155 of the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150 may include auxiliary channels (SCH). The capacity information may be provided to the memory controller 112 through, respectively.

제1 타입 메모리 모듈들(120a, 130a)의 SPD 장치들(125, 135)은 각각 제2 타입 메모리들(122, 132)의 저장 용량들을 메모리 제어기(112)에 제공할 수 있다. 제2 타입 메모리 모듈들(140, 150)의 SPD 장치들(145, 155)은 각각 제1 타입 메모리들(141, 151)의 저장 용량들을 메모리 제어기(112)에 제공할 수 있다. 예를 들어, 메모리 제어기(112)는 SPD 장치들(125~155)로부터 저장 용량들을 각각 읽을 수 있다.The SPD devices 125 and 135 of the first type memory modules 120a and 130a may provide the storage controllers of the second type memories 122 and 132 to the memory controller 112, respectively. The SPD devices 145 and 155 of the second type memory modules 140 and 150 may provide the storage controllers of the first type memories 141 and 151 to the memory controller 112, respectively. For example, the memory controller 112 may read the storage capacities from the SPD devices 125 to 155, respectively.

도 2는 본 발명의 실시 예에 따른 메모리 시스템(100a)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S11 단계에서, 프로세서(111)는 제1 타입 메모리 모듈들(120a, 130a) 중 하나의 메모리 모듈, 예를 들어 제1 메모리 모듈(120a)을 액세스할 때에 액세스 에러가 발생하는 것을 검출할 수 있다.2 is a flowchart illustrating a method of operating a memory system 100a according to an exemplary embodiment of the inventive concept. 1 and 2, in step S11, the processor 111 accesses one of the first type memory modules 120a and 130a when accessing the memory module, for example, the first memory module 120a. It can detect that an error occurs.

S12 단계에서, 액세스 에러가 검출됨에 따라, 중앙 제어 블록(110)은 제1 메모리 모듈(120a)이 데이터를 플러시(flush)하도록 제어 신호(CS)를 활성화할 수 있다. 즉, 본 발명의 실시 예에 따른 메모리 시스템(100a)은 제1 타입 메모리 모듈들(120a, 130a)을 액세스할 때에 액세스 에러가 발생하면, 에러가 발생한 메모리 모듈에 플러시 동작을 지시할 수 있다.In operation S12, as the access error is detected, the central control block 110 may activate the control signal CS so that the first memory module 120a flushes the data. That is, if an access error occurs when the first memory module 120a or 130a accesses the memory system 100a, the memory system 100a may instruct a flush operation to the memory module in which the error occurs.

도 3은 액세스 에러가 발생할 때에 플러시 동작을 지시하는 제1 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 도 3에서 중앙 제어 블록(110), 제1 메모리 모듈(120a) 및 제3 메모리 모듈(140)만이 도시된다. 제1 메모리 모듈(120a)은 제1 메인 채널(MCH1)을 통해 메모리 제어기(112)와 통신하고, 제3 메모리 모듈(140)은 제2 메인 채널(MCH2)을 통해 메모리 제어기(112)와 통신할 수 있다.3 shows a first example instructing a flush operation when an access error occurs. In order to avoid unnecessary complexity of the drawings, only the central control block 110, the first memory module 120a and the third memory module 140 are shown in FIG. 3. The first memory module 120a communicates with the memory controller 112 through the first main channel MCH1, and the third memory module 140 communicates with the memory controller 112 through the second main channel MCH2. can do.

예시적으로, 제1 메모리 모듈(120a)을 액세스할 때에 액세스 에러가 발생하는 예가 도 3에 도시된다. 도 1 및 도 3을 참조하면, S21 단계에서, 프로세서(111)는 제1 메모리 모듈(120a)을 액세스할 때에 액세스 에러를 검출할 수 있다. 예를 들어, 액세스 에러는 페이지 부재(page fault) 또는 정정 불가능한 에러(uncorrectable error)를 포함할 수 있다.For example, an example in which an access error occurs when accessing the first memory module 120a is illustrated in FIG. 3. 1 and 3, in step S21, the processor 111 may detect an access error when accessing the first memory module 120a. For example, an access error may include a page fault or an uncorrectable error.

프로세서(111)에서 실행되는 운영체제 또는 응용은 가상 주소를 이용하여 제1 메모리 모듈(120a)에 대한 액세스 요청을 생성할 수 있다. 메모리 제어기(112)는 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150) 중 하나의 메모리 모듈에 저장된 페이지 테이블을 참조하여, 가상 주소를 물리 주소로 변환할 수 있다. 메모리 제어기(112)는 물리 주소를 이용하여 제1 메모리 모듈(120a)을 액세스할 수 있다.An operating system or an application running on the processor 111 may generate an access request for the first memory module 120a using the virtual address. The memory controller 112 may refer to a page table stored in one memory module of the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150. You can convert virtual addresses to physical addresses. The memory controller 112 may access the first memory module 120a using a physical address.

운영체제 또는 응용이 새로운 데이터를 저장할 것을 요청할 때, 또는 운영체제 또는 응용이 이미 해제된 저장 공간의 액세스를 요청할 때, 액세스 요청에 대응하는 페이지 테이블은 존재하지 않는다. 이때, 페이지 부재가 발생할 수 있다. 페이지 부재가 발생하면, 프로세서(111)는 예외 처리를 수행할 수 있다.When the operating system or application requests to store new data, or when the operating system or application requests access to storage space that has already been released, there is no page table corresponding to the access request. At this time, a page member may occur. When a page member occurs, the processor 111 may perform exception processing.

메모리 제어기(112)가 제1 메모리 모듈(120a)로 읽기 요청을 전송하면, 매체 제어기(123)는 요청된 데이터가 제1 타입 메모리(121)에 저장되어 있는지(즉, 캐시 히트인지) 또는 제2 타입 메모리(122)에 저장되어 있는지(즉, 캐시 미스인지) 판단할 수 있다.When the memory controller 112 sends a read request to the first memory module 120a, the media controller 123 determines whether the requested data is stored in the first type memory 121 (ie, whether it is a cache hit) or not. It may be determined whether it is stored in the two-type memory 122 (that is, whether it is a cache miss).

캐시 미스인 경우, 매체 제어기(123)는 읽기 요청된 데이터를 제2 타입 메모리(122)로부터 제1 타입 메모리(121)로 가져와야(fetch) 한다. 데이터를 가져올 때의 소요 시간으로 인해, 제1 메모리 모듈(120a)은 메모리 제어기(112)에 설정된 제한 시간 안에 읽기 요청된 데이터를 메모리 제어기(112)에 제공할 수 없다. 이때, 메모리 제어기(112)는 정정 불가능한 에러가 발생한 것으로 판단하고, 예외 처리를 수행할 수 있다.In the case of a cache miss, the media controller 123 must fetch the read requested data from the second type memory 122 to the first type memory 121. Due to the time required for retrieving data, the first memory module 120a cannot provide the memory controller 112 with the read requested data within the time limit set in the memory controller 112. In this case, the memory controller 112 may determine that an uncorrectable error has occurred and perform exception processing.

캐시 히트인 경우, 제1 타입 메모리(121)는 메모리 제어기(112)로부터의 읽기 요청에 따라 데이터를 메모리 제어기(112)로 전송할 수 있다. 전송된 데이터가 정정 불가능한 에러를 가지면, 메모리 제어기(112)는 정정 불가능한 에러가 발생한 것으로 판단하고, 예외 처리를 수행할 수 있다.In the case of a cache hit, the first type memory 121 may transmit data to the memory controller 112 according to a read request from the memory controller 112. If the transmitted data has an uncorrectable error, the memory controller 112 may determine that an uncorrectable error has occurred and perform exception processing.

상술된 바와 같이, 프로세서(111) 또는 메모리 제어기(112)가 제1 메모리 모듈(120a)을 액세스할 때에 액세스 에러가 발생하면, 프로세서(111)는 예외 처리를 수행할 수 있다. 예외 처리가 수행되는 동안, 프로세서(111) 또는 메모리 제어기(112)가 제1 메모리 모듈(120a)을 액세스하는 것은 금지된다.As described above, if an access error occurs when the processor 111 or the memory controller 112 accesses the first memory module 120a, the processor 111 may perform an exception process. While the exception processing is performed, the processor 111 or the memory controller 112 is prohibited from accessing the first memory module 120a.

즉, 예외 처리가 수행되는 동안, 프로세서(111) 또는 메모리 제어기(112)로부터 제1 메모리 모듈(120a)에 액세스 요청이 전달되지 않는 유휴 시간이 제1 메모리 모듈(120a)에 보장될 수 있다.That is, while the exception processing is performed, the idle time when the access request is not transmitted from the processor 111 or the memory controller 112 to the first memory module 120a may be guaranteed to the first memory module 120a.

본 발명의 실시 예에 따른 메모리 시스템(100a)은 예외 처리가 수행되는 것을 제1 메모리 모듈(120a)에 알릴 수 있다. 예를 들어, S22 단계에서, 프로세서(111)는 제1 제어 신호(CS1)를 활성화할 것을 허브(114)에 요청할 수 있다. S23 단계에서, 허브(114)는 제1 제어 신호(CS1)를 활성화할 수 있다.The memory system 100a according to an exemplary embodiment of the present disclosure may notify the first memory module 120a that exception processing is performed. For example, in step S22, the processor 111 may request the hub 114 to activate the first control signal CS1. In step S23, the hub 114 may activate the first control signal CS1.

제1 제어 신호(CS1)가 활성화됨에 따라, 매체 제어기(123)는 프로세서(111)가 예외 처리를 수행 중이고, 따라서 유휴 시간이 보장됨을 식별할 수 있다. 유휴 시간이 보장됨에 따라, 매체 제어기(123)는 제1 메모리 모듈(120a)이 동작하는 데에 필요한 배경 동작들을 수행할 수 있다.As the first control signal CS1 is activated, the media controller 123 may identify that the processor 111 is performing exception processing, and thus the idle time is guaranteed. As the idle time is guaranteed, the media controller 123 may perform background operations required for the first memory module 120a to operate.

예를 들어, 배경 동작은 중앙 제어 블록(110)이 요청하지 않고 중앙 제어 블록(110)에 의해 인식되지 않는 동작들일 수 있다. 제1 메모리 모듈(120a)은 중앙 제어 블록(110)으로부터의 액세스 요청이 없는 유휴시간 동안에 배경 동작을 수행할 수 있다. 제1 메모리 모듈(120a)은 중앙 제어 블록(110)으로부터의 액세스 요청들을 처리하는 사이에 배경 동작을 수행할 수 있다.For example, the background operations may be operations that are not requested by the central control block 110 and are not recognized by the central control block 110. The first memory module 120a may perform a background operation during an idle time in which there is no access request from the central control block 110. The first memory module 120a may perform a background operation between processing access requests from the central control block 110.

예를 들어, S24 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)에 저장된 데이터를 제2 타입 메모리(122)로 옮기는 플러시 동작(flush operation)을 수행할 수 있다. 예를 들어, 제1 타입 메모리(121)에 저장된 데이터의 전부 또는 일부가 플러시 동작을 통해 제2 타입 메모리(122)에 기입될 수 있다.For example, in operation S24, the media controller 123 may perform a flush operation for transferring data stored in the first type memory 121 to the second type memory 122. For example, all or part of data stored in the first type memory 121 may be written to the second type memory 122 through a flush operation.

제1 타입 메모리(121)는 제2 타입 메모리(122)의 캐시 메모리로 사용된다. 따라서, 제1 타입 메모리(121)에 저장된 데이터는 플러시 동작을 통해 제2 타입 메모리(122)로 옮겨져야 한다.The first type memory 121 is used as a cache memory of the second type memory 122. Therefore, data stored in the first type memory 121 must be transferred to the second type memory 122 through a flush operation.

예를 들어, 프로세서(111) 또는 메모리 제어기(112)의 액세스 요청에 따라 제1 타입 메모리(121)에 데이터를 기입하여야 할 때, 제1 타입 메모리(121)의 자유 저장 공간이 부족할 수 있다. 또는, 프로세서(111) 또는 메모리 제어기(112)의 액세스 요청에 따라 제2 타입 메모리(122)에 저장된 데이터를 제1 타입 메모리(121)로 가져와야(fetch) 할 때, 제1 타입 메모리(121)의 자유 저장 공간이 부족할 수 있다.For example, when data is to be written to the first type memory 121 according to an access request of the processor 111 or the memory controller 112, the free storage space of the first type memory 121 may be insufficient. Alternatively, when the data stored in the second type memory 122 should be fetched to the first type memory 121 according to an access request of the processor 111 or the memory controller 112, the first type memory 121 may be used. May run out of free storage space.

제1 타입 메모리(121)의 자유 저장 공간이 부족할 때, 제1 타입 메모리(121)의 자유 저장 공간을 확보하기 위하여 플러시 동작이 수행될 수 있다. 또한, 메모리 시스템(100a)의 전원이 꺼질 때, 제1 타입 메모리(121)에 저장된 데이터를 보존하기 위하여 제1 타입 메모리(121)에 저장된 데이터를 제2 타입 메모리(122)로 옮기는 플러시 동작이 수행될 수 있다.When the free storage space of the first type memory 121 is insufficient, a flush operation may be performed to secure the free storage space of the first type memory 121. In addition, when the power of the memory system 100a is turned off, a flush operation of transferring data stored in the first type memory 121 to the second type memory 122 to preserve the data stored in the first type memory 121 may be performed. Can be performed.

매체 제어기(123)가 프로세서(111) 또는 메모리 제어기(112)로부터 수신된 액세스 요청을 처리할 때에 플러시 동작이 수행되면, 플러시 동작으로 인해 제1 메모리 모듈(120a)의 액세스의 레이턴시가 증가한다. 본 발명의 실시 예에 따른 제1 메모리 모듈(120a)은 액세스 에러가 발생한 때에 플러시 동작을 수행한다. 따라서, 액세스 요청을 처리할 때에 플러시 동작을 수행하여야 하는 빈도가 감소하고, 제1 메모리 모듈(120a) 및 메모리 시스템(100a)의 액세스의 레이턴시가 감소한다.If a flush operation is performed when the media controller 123 processes the access request received from the processor 111 or the memory controller 112, the latency of the access of the first memory module 120a increases due to the flush operation. The first memory module 120a according to an embodiment of the present invention performs a flush operation when an access error occurs. Therefore, the frequency of performing the flush operation when processing the access request is reduced, and the latency of access of the first memory module 120a and the memory system 100a is reduced.

예시적으로, 제1 메모리 모듈(120a)을 참조하여 설명된 것과 동일하게, 제2 메모리 모듈(130a)에서 액세스 에러가 발생할 수 있다. 허브(114)는 제2 제어 신호(CS2)를 활성화하고, 제2 메모리 모듈(130a)은 배경 동작을 수행할 수 있다. 예시적으로, 제1 메모리 모듈(120a) 및 제2 메모리 모듈(130a)에서 수행되는 배경 동작은 플러시 동작에 한정되지 않는다.In exemplary embodiments, as described with reference to the first memory module 120a, an access error may occur in the second memory module 130a. The hub 114 may activate the second control signal CS2, and the second memory module 130a may perform a background operation. For example, the background operation performed by the first memory module 120a and the second memory module 130a is not limited to the flush operation.

배경 동작은 매체 제어기(123)가 제2 타입 메모리(122)를 관리하기 위해 수행하는 읽기 리클레임(read reclaim), 배드 블록 관리, 마모도 관리(wear leveling), 가비지 컬렉션(garbage collection), 소거 동작 등을 포함할 수 있다.Background operations include read reclaim, bad block management, wear leveling, garbage collection, and erase operations performed by the media controller 123 to manage the second type memory 122. And the like.

도 4는 허브(114)가 제1 제어 신호(CS1)를 활성화하는 다른 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 도 4에서 중앙 제어 블록(110), 제1 메모리 모듈(120a), 제3 메모리 모듈(140), 그리고 전력 관리 블록(180)만이 도시된다.4 shows another example in which the hub 114 activates the first control signal CS1. In order to avoid unnecessary complexity of the drawings, only the central control block 110, the first memory module 120a, the third memory module 140, and the power management block 180 are shown in FIG. 4.

도 1 및 도 4를 참조하면, S31 단계에서, 전력 관리 블록(180)은 급작스런 전원 오프(SPO, Sudden Power Off)를 검출할 수 있다. SPO가 발생한 때에, 메모리 시스템(100a)은 배터리, 슈퍼 커패시터 등과 같은 충전 소자에 충전된 전력을 이용하여 SPO에 대응한 후속 처리를 수행할 수 있다.1 and 4, in operation S31, the power management block 180 may detect a sudden power off (SPO). When the SPO occurs, the memory system 100a may perform subsequent processing corresponding to the SPO by using power charged in a charging element such as a battery, a super capacitor, or the like.

SPO가 검출됨에 따라, S32 단계에서, 전력 관리 블록(180)은 제1 제어 신호(CS1)를 활성화할 것을 허브(114)에 요청할 수 있다. 예를 들어, 전력 관리 블록(180)은 제1 타입 메모리 모듈들(120a, 130a)에 전달되는 제1 제어 신호(CS1) 및 제2 제어 신호(CS2) 모두를 활성화할 것을 허브(114)에 요청할 수 있다.As the SPO is detected, in step S32, the power management block 180 may request the hub 114 to activate the first control signal CS1. For example, the power management block 180 may instruct the hub 114 to activate both the first control signal CS1 and the second control signal CS2 transmitted to the first type memory modules 120a and 130a. You can request

전력 관리 블록(180)에서 SPO가 검출됨에 따라, S33 단계에서, 허브(114)는 제1 제어 신호(CS1)를 활성화할 수 있다. 제1 제어 신호(CS1)의 활성화에 응답하여, S34 단계에서, 제1 메모리 모듈(120a)은 제1 타입 메모리(121)에 저장된 데이터를 제2 타입 메모리(122)로 옮기는 플러시 동작을 수행할 수 있다. 예를 들어, 제1 타입 메모리(121)에 저장된 데이터의 전부 또는 일부가 플러시 동작을 통해 제2 타입 메모리(122)에 기입될 수 있다.As the SPO is detected in the power management block 180, in step S33, the hub 114 may activate the first control signal CS1. In response to the activation of the first control signal CS1, in operation S34, the first memory module 120a may perform a flush operation of transferring data stored in the first type memory 121 to the second type memory 122. Can be. For example, all or part of data stored in the first type memory 121 may be written to the second type memory 122 through a flush operation.

마찬가지로, 제2 제어 신호(CS2)가 활성화됨에 따라, 제2 메모리 모듈(130a)은 제1 타입 메모리(131)에 저장된 데이터를 제2 타입 메모리(132)로 옮기는 플러시 동작을 수행할 수 있다. 예를 들어, 제1 타입 메모리(131)에 저장된 데이터의 전부 또는 일부가 플러시 동작을 통해 제2 타입 메모리(132)에 기입될 수 있다.Similarly, as the second control signal CS2 is activated, the second memory module 130a may perform a flush operation for transferring data stored in the first type memory 131 to the second type memory 132. For example, all or part of data stored in the first type memory 131 may be written to the second type memory 132 through a flush operation.

도 5는 액세스 에러가 발생할 때에 플러시 동작을 지시하는 제2 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 도 5에서 중앙 제어 블록(110), 제1 메모리 모듈(120a) 및 제3 메모리 모듈(140)만이 도시된다. 예시적으로, 제1 메모리 모듈(120a)을 액세스할 때에 액세스 에러가 발생하는 예가 도 5에 도시된다.5 shows a second example of instructing a flush operation when an access error occurs. In order to avoid unnecessary complexity of the drawings, only the central control block 110, the first memory module 120a and the third memory module 140 are shown in FIG. 5. For example, an example in which an access error occurs when accessing the first memory module 120a is illustrated in FIG. 5.

도 1 및 도 5를 참조하면, S41 단계에서, 프로세서(111)는 제1 메모리 모듈(120a)을 액세스할 때에 액세스 에러를 검출할 수 있다. 액세스 에러가 검출됨에 따라, S42 단계에서, 프로세서(111)는 제1 메인 채널(MCH1)을 통해 제1 메모리 모듈(120a)로 전달되는 제3 제어 신호(CS3)를 활성화할 수 있다.1 and 5, in operation S41, the processor 111 may detect an access error when accessing the first memory module 120a. As the access error is detected, in operation S42, the processor 111 may activate the third control signal CS3 transmitted to the first memory module 120a through the first main channel MCH1.

제3 제어 신호(CS3)가 활성화됨에 따라, 매체 제어기(123)는 플러시 동작과 같은 배경 동작을 수행할 수 있다. 즉, 메모리 제어기(112)는 액세스 에러가 발생하였음을 허브(114)를 통하지 않고 제1 메모리 모듈(120a)로 직접 전달할 수 있다.As the third control signal CS3 is activated, the media controller 123 may perform a background operation such as a flush operation. That is, the memory controller 112 may directly transmit that the access error has occurred to the first memory module 120a without passing through the hub 114.

예시적으로, 도 3 및 도 4를 참조하여 설명된 바와 같이, 액세스 에러가 검출된 때에 또는 SPO가 검출된 때에, 허브(114)는 제1 제어 신호(CS1)를 활성화할 수 있다. 다른 예로서, 도 4 및 도 5를 참조하여 설명된 바와 같이, 액세스 에러가 검출된 때에 메모리 제어기(112)가 제3 제어 신호(CS3)를 활성화하고, 그리고 SPO가 검출된 때에 허브(114)가 제1 제어 신호(CS1)를 활성화할 수 있다.For example, as described with reference to FIGS. 3 and 4, when an access error is detected or when an SPO is detected, the hub 114 may activate the first control signal CS1. As another example, as described with reference to FIGS. 4 and 5, the memory controller 112 activates the third control signal CS3 when an access error is detected, and the hub 114 when the SPO is detected. May activate the first control signal CS1.

도 6은 본 발명의 다른 실시 예에 따른 메모리 시스템(100b)을 보여주는 블록도이다. 도 6을 참조하면, 메모리 시스템(100b)은 중앙 제어 블록(110), 제1 메모리 모듈(120b), 제2 메모리 모듈(130b), 제3 메모리 모듈(140), 제4 메모리 모듈(150), 루트 컴플렉스(160), 스토리지 장치(170), 전력 관리 블록(180), 그리고 주변 장치들(190)을 포함한다.6 is a block diagram illustrating a memory system 100b according to another exemplary embodiment. Referring to FIG. 6, the memory system 100b includes a central control block 110, a first memory module 120b, a second memory module 130b, a third memory module 140, and a fourth memory module 150. , Root complex 160, storage device 170, power management block 180, and peripherals 190.

중앙 제어 블록(110), 제3 메모리 모듈(140), 제4 메모리 모듈(150), 루트 컴플렉스(160), 스토리지 장치(170), 전력 관리 블록(180), 그리고 주변 장치들(190)은 도 1의 메모리 시스템(100a)과 동일하게 동작하고, 동일하게 구성될 수 있다.The central control block 110, the third memory module 140, the fourth memory module 150, the root complex 160, the storage device 170, the power management block 180, and the peripheral devices 190 may be It may operate in the same manner as the memory system 100a of FIG. 1 and may be configured in the same manner.

예를 들어, 중앙 제어 블록(110)은 액세스 에러가 검출될 때에 제1 제어 신호(CS1)(도 3 참조) 또는 제3 제어 신호(CS3)(도 5 참조)를 활성화할 수 있다. 중앙 제어 블록은 SPO가 검출될 때에 제1 제어 신호(CS1)를 활성화(도 4 참조)할 수 있다.For example, the central control block 110 may activate the first control signal CS1 (see FIG. 3) or the third control signal CS3 (see FIG. 5) when an access error is detected. The central control block may activate the first control signal CS1 (see FIG. 4) when the SPO is detected.

제1 메모리 모듈(120b)은 제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)에 응답하여 배경 동작, 예를 들어 플러시 동작을 수행할 수 있다. 제2 메모리 모듈(130b)은 제2 제어 신호(CS2) 또는 제3 제어 신호(CS3)에 응답하여 배경 동작, 예를 들어 플러시 동작을 수행할 수 있다.The first memory module 120b may perform a background operation, for example, a flush operation, in response to the first control signal CS1 or the third control signal CS3. The second memory module 130b may perform a background operation, for example, a flush operation, in response to the second control signal CS2 or the third control signal CS3.

제1 메모리 모듈(120b)은 버퍼 메모리(126)를 더 포함한다. 제2 메모리 모듈(130b)은 버퍼 메모리(136)를 더 포함한다. 제1 메모리 모듈(120b)은 버퍼 메모리(126)를 이용하여 플러시 동작을 수행할 수 있다. 제2 메모리 모듈(130b)은 버퍼 메모리(136)를 이용하여 플러시 동작을 수행할 수 있다.The first memory module 120b further includes a buffer memory 126. The second memory module 130b further includes a buffer memory 136. The first memory module 120b may perform a flush operation by using the buffer memory 126. The second memory module 130b may perform a flush operation by using the buffer memory 136.

도 7은 본 발명의 실시 예에 따른 제1 메모리 모듈(120b) 또는 제3 메모리 모듈(140b)의 동작 방법을 보여주는 순서도이다. 예시적으로, 제1 메모리 모듈(120b)을 참조하여 본 발명의 실시 예에 따른 동작 방법이 설명된다. 도 6 및 도 7을 참조하면, S51 단계에서, 제1 메모리 모듈(120b)의 매체 제어기(123)는 제어 신호(CS), 예를 들어 제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)의 활성화를 검출할 수 있다.7 is a flowchart illustrating a method of operating the first memory module 120b or the third memory module 140b according to an embodiment of the present invention. For example, an operating method according to an exemplary embodiment of the present invention will be described with reference to the first memory module 120b. 6 and 7, in step S51, the media controller 123 of the first memory module 120b may include a control signal CS, for example, a first control signal CS1 or a third control signal CS3. ) Activation can be detected.

S52 단계에서, 매체 제어기(123)는 버퍼 메모리(126)에 대해 읽기 동작을 수행할 수 있다. S53 단계에서, 매체 제어기(123)는 읽기 동작의 결과에 기반하여 플러시 동작을 수행할 수 있다. 즉, 매체 제어기(123)는 버퍼 메모리(126)로부터 읽은 정보를 이용하여, 제1 타입 메모리(121)에 저장된 데이터를 제2 타입 메모리(122)에 기입하는 플러시 동작을 수행할 수 있다.In operation S52, the media controller 123 may perform a read operation on the buffer memory 126. In operation S53, the media controller 123 may perform a flush operation based on the result of the read operation. That is, the media controller 123 may perform a flush operation to write data stored in the first type memory 121 to the second type memory 122 by using the information read from the buffer memory 126.

도 8은 제1 메모리 모듈(120b)에 데이터를 저장하는 제1 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 도 8에서 제1 타입 메모리(121), 제2 타입 메모리(122), 매체 제어기(123), 그리고 버퍼 메모리(126)만이 도시된다.8 illustrates a first example of storing data in the first memory module 120b. In order to avoid unnecessary complexity of the drawings, only the first type memory 121, the second type memory 122, the media controller 123, and the buffer memory 126 are shown in FIG. 8.

도 8에서, 제1 타입 메모리(121)의 제1 저장 공간(SC1)은 제1 내지 제8 페이지들(PAGE1~PAGE8)을 포함하는 것으로 도시된다. 페이지는 중앙 제어 블록(110)이 제1 메모리 모듈(120b)을 액세스하는 단위일 수 있다. 예를 들어, 중앙 제어 블록(110)은 페이지의 단위로 제1 메모리 모듈(120b)에 데이터를 저장하거나 제1 메모리 모듈(120b)로부터 데이터를 읽을 수 있다.In FIG. 8, the first storage space SC1 of the first type memory 121 is illustrated as including first to eighth pages PAGE1 to PAGE8. The page may be a unit in which the central control block 110 accesses the first memory module 120b. For example, the central control block 110 may store data in or read data from the first memory module 120b in units of pages.

도 8에서, 버퍼 메모리(126)의 제2 저장 공간(SC2)에 쓰기 테이블(WT)이 저장될 수 있다. 쓰기 테이블(WT)은 제1 타입 메모리(121)의 제1 내지 제8 페이지들(PAGE1~PAGE8)의 정보를 포함할 수 있다. 예를 들어, 쓰기 테이블(WT)은 제1 타입 메모리(121)의 제1 내지 제8 페이지들(PAGE1~PAGE8)에 저장된 데이터가 새로 기입된 데이터인지의 정보를 저장할 수 있다.In FIG. 8, the write table WT may be stored in the second storage space SC2 of the buffer memory 126. The write table WT may include information of first to eighth pages PAGE1 to PAGE8 of the first type memory 121. For example, the write table WT may store information on whether data stored in the first to eighth pages PAGE1 to PAGE8 of the first type memory 121 is newly written data.

도 6 및 도 8을 참조하면, S61 단계에서, 중앙 제어 블록(110)은 제1 메모리 모듈(120b)에 쓰기 요청을 전송할 수 있다. 매체 제어기(123)는 중앙 제어 블록(110)으로부터 쓰기 요청을 수신할 수 있다. 예를 들어, 쓰기 요청은 쓰기 데이터 및 주소를 포함할 수 있다. 주소는 제2 타입 메모리(122)의 저장 공간 중 특정한 저장 공간을 가리킬 수 있다.6 and 8, in step S61, the central control block 110 may transmit a write request to the first memory module 120b. The media controller 123 may receive a write request from the central control block 110. For example, the write request may include write data and an address. The address may indicate a specific storage space of the storage space of the second type memory 122.

S62 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)의 자유 저장 용량이 충분한지 판단할 수 있다. 예를 들어, 제1 타입 메모리(121)의 자유 저장 용량이 쓰기 데이터의 용량과 같거나 그보다 클 때, 매체 제어기(123)는 충분한 자유 저장 용량이 존재하는 것으로 판단할 수 있다.In operation S62, the media controller 123 may determine whether the free storage capacity of the first type memory 121 is sufficient. For example, when the free storage capacity of the first type memory 121 is equal to or larger than that of the write data, the media controller 123 may determine that there is sufficient free storage capacity.

제1 타입 메모리(121)의 자유 저장 용량이 충분함에 따라, S63 단계에서, 매체 제어기(123)는 중앙 제어 블록(110)으로부터의 쓰기 요청을 제1 타입 메모리(121)로 전달할 수 있다.As the free storage capacity of the first type memory 121 is sufficient, in step S63, the media controller 123 may transfer a write request from the central control block 110 to the first type memory 121.

쓰기 요청에 따라, S64 단계에서, 제1 타입 메모리(121)의 제1 페이지(PAGE1)에 쓰기 데이터가 기입될 수 있다. 제1 페이지(PAGE1)에 쓰기 데이터가 기입됨에 따라, S65 단계에서, 매체 제어기(123)는 쓰기 테이블(WT)을 갱신할 수 있다. S66 단계에서, 제1 타입 메모리(121)의 제1 페이지(PAGE1)에 새로운 데이터가 기입되었음을 알리는 더티(Dirty) 표시(또는 플래그)가 쓰기 테이블(WT)에 기록될 수 있다.According to the write request, in operation S64, write data may be written in the first page PAGE1 of the first type memory 121. As write data is written in the first page PAGE1, in operation S65, the media controller 123 may update the write table WT. In operation S66, a dirty indication (or a flag) indicating that new data is written in the first page PAGE1 of the first type memory 121 may be recorded in the write table WT.

도 9는 제1 메모리 모듈(120b)에서 버퍼 메모리(126)를 이용하여 플러시 동작이 수행되는 제1 예를 보여준다. 도 8에서, 제2 타입 메모리(122)의 제3 저장 용량(SC3)은 제1 내지 제4 메모리 블록들(BLK1~BLK4)로 분할될 수 있다. 제1 내지 제4 메모리 블록들(BLK1~BLK4) 각각은 제1 내지 제8 불휘발성 페이지들(NPAGE1~NPAGE8)로 분할될 수 있다.9 illustrates a first example in which a flush operation is performed by using the buffer memory 126 in the first memory module 120b. In FIG. 8, the third storage capacity SC3 of the second type memory 122 may be divided into first to fourth memory blocks BLK1 to BLK4. Each of the first to fourth memory blocks BLK1 to BLK4 may be divided into first to eighth nonvolatile pages NPAGE1 to NPAGE8.

불휘발성 페이지는 매체 제어기(123)가 제2 타입 메모리(122)를 액세스하는 단위일 수 있다. 예시적으로, 불휘발성 페이지의 용량은 페이지의 용량과 같거나 다를 수 있다. 도 6, 도 8 및 도 9를 참조하면, S71 단계에서, 매체 제어기(123)는 제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)가 활성화되는 것을 검출할 수 있다.The nonvolatile page may be a unit in which the media controller 123 accesses the second type memory 122. In exemplary embodiments, the capacity of the nonvolatile page may be the same as or different from the capacity of the page. 6, 8, and 9, in step S71, the media controller 123 may detect that the first control signal CS1 or the third control signal CS3 is activated.

제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)의 활성화에 응답하여, 매체 제어기(123)는 플러시 동작을 수행할 수 있다. 예를 들어, S72 단계에서, 매체 제어기(123)는 버퍼 메모리(126)에 저장된 쓰기 테이블(WT)을 읽을 수 있다. 쓰기 테이블(WT)에 따라, S73 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)의 제1 페이지(PAGE1)의 더티 플래그를 확인할 수 있다.In response to activation of the first control signal CS1 or the third control signal CS3, the media controller 123 may perform a flush operation. For example, in operation S72, the media controller 123 may read the write table WT stored in the buffer memory 126. According to the write table WT, in step S73, the media controller 123 may check the dirty flag of the first page PAGE1 of the first type memory 121.

예를 들어, 매체 제어기(123)는 이전 플러시 동작의 이후에 또는 메모리 시스템(100b)에 전원이 공급된 후에 제1 타입 메모리(121)의 제1 페이지(PAGE1)에 새로운 데이터가 기입된 것을 쓰기 테이블(WT)의 더티 테이블로부터 검출할 수 있다.For example, the media controller 123 writes that new data is written to the first page PAGE1 of the first type memory 121 after the previous flush operation or after power is supplied to the memory system 100b. It can detect from the dirty table of the table WT.

제1 타입 메모리(121)의 제1 페이지(PAGE1)에 새로 기입된 데이터는 제2 타입 메모리(122)에 저장되어야 하며, 따라서 플러시 동작이 필요한 데이터일 수 있다. 제1 타입 메모리(121)의 제2 내지 제8 페이지들(PAGE2~PAGE8)에 저장된 데이터는 제2 타입 메모리(122)에 저장된 데이터 또는 무효 데이터이며, 따라서 플러시 동작이 필요하지 않은 데이터일 수 있다.Data newly written in the first page PAGE1 of the first type memory 121 should be stored in the second type memory 122, and thus may be data requiring a flush operation. The data stored in the second to eighth pages PAGE2 to PAGE8 of the first type memory 121 may be data stored in the second type memory 122 or invalid data, and thus data that does not require a flush operation. .

S74 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)에 읽기 요청을 전송할 수 있다. 예를 들어, 매체 제어기(123)는 플러시 동작이 필요한 제1 페이지(PAGE1)의 읽기 요청을 제1 타입 메모리(121)로 전송할 수 있다. 읽기 요청에 따라, S75 단계에서, 제1 타입 메모리(121)의 제1 페이지(PAGE1)의 데이터가 읽혀질 수 있다.In operation S74, the media controller 123 may transmit a read request to the first type memory 121. For example, the media controller 123 may transmit a read request of the first page PAGE1 that requires a flush operation to the first type memory 121. According to the read request, in step S75, data of the first page PAGE1 of the first type memory 121 may be read.

S76 단계에서, 매체 제어기(123)는 제2 타입 메모리(122)에 쓰기 요청을 전송할 수 있다. 예를 들어, 매체 제어기(123)는 제1 타입 메모리(121)로부터 읽은 제1 페이지(PAGE1)의 데이터의 쓰기 요청을 제2 타입 메모리(122)로 전송할 수 있다.In operation S76, the media controller 123 may transmit a write request to the second type memory 122. For example, the media controller 123 may transmit a write request of data of the first page PAGE1 read from the first type memory 121 to the second type memory 122.

S77 단계에서, 제1 타입 메모리(121)에 새로 기입된 데이터가 제2 타입 메모리(122)의 제1 메모리 블록(BLK1)의 제3 불휘발성 페이지(NPAGE3)에 기입될 수 있다. 제1 타입 메모리(121)에 새로 기입된 데이터를 제2 타입 메모리(122)에 기입하는 것으로, 데이터의 이동이 종료될 수 있다.In operation S77, data newly written in the first type memory 121 may be written in the third nonvolatile page NPAGE3 of the first memory block BLK1 of the second type memory 122. By writing data newly written in the first type memory 121 to the second type memory 122, the movement of the data may be terminated.

S78 단계에서, 매체 제어기(123)는 쓰기 테이블(WT)의 더티 표시들을 제거(clear)할 수 있다. 또한, 매체 제어기(123)는 제1 타입 메모리(121)와 제2 타입 메모리(122)의 사상 관계를 제거(clear)할 수 있다. 플러시 동작이 수행되면, 제1 타입 메모리(121)에 새로 기입된 데이터가 제2 타입 메모리(122)로 옮겨지고(flushed), 제1 타입 메모리(121)가 비워질 수 있다.In operation S78, the media controller 123 may clear dirty indications of the write table WT. In addition, the media controller 123 may clear the mapping relationship between the first type memory 121 and the second type memory 122. When the flush operation is performed, data newly written in the first type memory 121 may be flushed to the second type memory 122, and the first type memory 121 may be empty.

본 발명의 실시 예에 따르면, 제1 타입 메모리(121)에 저장된 데이터 중에서 플러시 동작이 필요한 데이터, 즉 제1 타입 메모리(121)에 새로 기입된 데이터만이 플러시 동작을 통해 제2 타입 메모리(122)에 기입된다. 데이터의 이동이 감소하므로, 플러시 동작의 소요 시간이 감소하고, 제1 메모리 모듈(120b)의 레이턴시가 감소한다.According to an embodiment of the present disclosure, only data that requires a flush operation, that is, data newly written in the first type memory 121, from among data stored in the first type memory 121, is flushed through the second type memory 122. ). Since the movement of data is reduced, the time required for the flush operation is reduced, and the latency of the first memory module 120b is reduced.

예시적으로, 제1 타입 메모리(121)가 가득 찬 때에도 도 9를 참조하여 설명된 플러시 동작이 수행될 수 있다. 예시적으로, 제2 타입 메모리(122)의 제3 저장 용량(SC3)은 네 개의 메모리 블록들을 갖는 것으로 한정되지 않는다. 각 메모리 블록은 8개의 불휘발성 페이지들을 갖는 것으로 한정되지 않는다.For example, the flush operation described with reference to FIG. 9 may be performed even when the first type memory 121 is full. In exemplary embodiments, the third storage capacity SC3 of the second type memory 122 is not limited to four memory blocks. Each memory block is not limited to having eight nonvolatile pages.

도 10은 제1 메모리 모듈(120b)에서 버퍼 메모리를 이용하여 플러시 동작이 수행되는 제2 예를 보여준다. 도 10에서, 버퍼 메모리(126)의 제2 저장 공간(SC2)은 제1 내지 제8 페이지들(PAGE1~PAGE8)로 분할될 수 있다. 제2 저장 공간(SC2)의 페이지의 용량은 제1 저장 공간(SC1)의 페이지의 용량과 같거나 다를 수 있다.10 illustrates a second example in which the flush operation is performed by using the buffer memory in the first memory module 120b. In FIG. 10, the second storage space SC2 of the buffer memory 126 may be divided into first to eighth pages PAGE1 to PAGE8. The capacity of the page of the second storage space SC2 may be equal to or different from the capacity of the page of the first storage space SC1.

버퍼 메모리(126)의 용량은 제1 타입 메모리(121)의 용량과 같거나 다를 수 있다. 도 6 및 도 8을 참조하면, S81 단계에서, 매체 제어기(123)는 제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)의 활성화를 검출할 수 있다.The capacity of the buffer memory 126 may be the same as or different from that of the first type memory 121. 6 and 8, in step S81, the media controller 123 may detect activation of the first control signal CS1 or the third control signal CS3.

제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)의 활성화에 따라, S82 단계에서, 매체 제어기(123)는 버퍼 메모리(126)에 읽기 요청을 전송할 수 있다. 예시적으로, 매체 제어기(123)는 버퍼 메모리(126)에 저장된 데이터 중에서 제2 타입 메모리(122)에 기입되어야 할 유효 데이터의 읽기 요청을 전송할 수 있다.According to the activation of the first control signal CS1 or the third control signal CS3, in operation S82, the media controller 123 may transmit a read request to the buffer memory 126. In exemplary embodiments, the media controller 123 may transmit a read request of valid data to be written to the second type memory 122 among data stored in the buffer memory 126.

예를 들어, 버퍼 메모리(126)의 제1 페이지(PAGE1)의 데이터가 유효 데이터일 수 있다. 읽기 요청에 따라, S83 단계에서, 버퍼 메모리(126)의 제1 페이지(PAGE1)의 데이터가 읽힐 수 있다. S84 단계에서, 매체 제어기(123)는 제2 타입 메모리(122)에 쓰기 요청을 전송할 수 있다.For example, the data of the first page PAGE1 of the buffer memory 126 may be valid data. According to the read request, in step S83, data of the first page PAGE1 of the buffer memory 126 may be read. In operation S84, the media controller 123 may transmit a write request to the second type memory 122.

예를 들어, 매체 제어기(123)는 버퍼 메모리(126)로부터 읽은 제1 페이지(PAGE1)의 데이터의 쓰기 요청을 제2 타입 메모리(122)로 전송할 수 있다. 쓰기 요청에 따라, S85 단계에서, 제2 타입 메모리(122)의 제3 불휘발성 페이지(NPAGE3)에 데이터가 기입될 수 있다.For example, the media controller 123 may transmit a write request of data of the first page PAGE1 read from the buffer memory 126 to the second type memory 122. According to the write request, in operation S85, data may be written to the third nonvolatile page NPAGE3 of the second type memory 122.

도 11은 도 10에 후속하여 플러시 동작이 수행되는 예를 보여준다. 도 6, 도 10 및 도 11을 참조하면, S91 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)에 읽기 요청을 전송할 수 있다. 읽기 요청에 따라, S92 단계에서, 제1 타입 메모리(121)에 저장된 데이터가 읽힐 수 있다.FIG. 11 shows an example in which a flush operation is performed following FIG. 10. 6, 10, and 11, in step S91, the media controller 123 may transmit a read request to the first type memory 121. According to the read request, in operation S92, data stored in the first type memory 121 may be read.

S93 단계에서, 매체 제어기(123)는 버퍼 메모리(126)에 쓰기 요청을 전송할 수 있다. 예를 들어, 매체 제어기(123)는 제1 타입 메모리(121)로부터 읽은 데이터의 쓰기 요청을 버퍼 메모리(126)로 전송할 수 있다. 쓰기 요청에 따라, S94 단계에서, 데이터가 버퍼 메모리(126)에 저장될 수 있다.In operation S93, the media controller 123 may transmit a write request to the buffer memory 126. For example, the media controller 123 may transmit a write request of data read from the first type memory 121 to the buffer memory 126. According to the write request, in operation S94, data may be stored in the buffer memory 126.

제1 메모리 모듈(120b)은 버퍼 메모리(126)에 저장된 데이터를 제2 타입 메모리(122)에 기입하고, 그리고 제1 타입 메모리(121)에 저장된 데이터를 버퍼 메모리(126)에 기입함으로써 플러시 동작을 완료할 수 있다. 이후에, 매체 제어기(123)는 버퍼 메모리(126)에 저장된 데이터를 제2 타입 메모리(122)에 기입하는 배경 동작을 수행할 수 있다.The first memory module 120b writes the data stored in the buffer memory 126 to the second type memory 122 and writes the data stored in the first type memory 121 to the buffer memory 126 to perform a flush operation. You can complete Thereafter, the media controller 123 may perform a background operation of writing data stored in the buffer memory 126 into the second type memory 122.

예시적으로, 버퍼 메모리(126)의 자유 저장 용량이 제1 타입 메모리(121)로부터 읽은 데이터보다 클 때, 제1 메모리 모듈(120b)은 제1 타입 메모리(121)의 데이터를 버퍼 메모리(126)에 기입하는 것으로 플러시 동작을 완료할 수 있다. 즉, 플러시 동작은 도 10을 참조하여 설명된 단계들을 생략하고, 도 11을 참조하여 설명된 단계들을 통해 완료될 수 있다.For example, when the free storage capacity of the buffer memory 126 is greater than the data read from the first type memory 121, the first memory module 120b may store the data of the first type memory 121 in the buffer memory 126. ), The flush operation can be completed. That is, the flushing operation may be completed through the steps described with reference to FIG. 11 without the steps described with reference to FIG. 10.

제1 타입 메모리(121)의 데이터가 버퍼 메모리(126)에 저장되면, 매체 제어기(123)는 제1 타입 메모리(121)와 제2 타입 메모리(122)의 사상 정보를 참조 정보로 제거한 후에 제거(clear)할 수 있다. 매체 제어기(123)는 참조 정보를 이용하여 버퍼 메모리(126)에 저장된 데이터를 제2 타입 메모리(122)에 기입하는 배경 동작을 수행할 수 있다.When data of the first type memory 121 is stored in the buffer memory 126, the media controller 123 removes the mapping information of the first type memory 121 and the second type memory 122 as reference information and then removes the mapping information. Can be cleared. The media controller 123 may perform a background operation of writing data stored in the buffer memory 126 into the second type memory 122 using the reference information.

본 발명의 실시 예에 따르면, 플러시 동작 시에, 제1 타입 메모리(121)의 데이터는 버퍼 메모리(126)에 기입된다. 버퍼 메모리(126)에 기입된 데이터는 배경 동작을 통해 제2 타입 메모리(122)로 옮겨질 수 있다. 따라서, 플러시 동작의 레이턴시가 감소한다.According to an embodiment of the present disclosure, during the flush operation, data of the first type memory 121 is written to the buffer memory 126. Data written to the buffer memory 126 may be transferred to the second type memory 122 through a background operation. Thus, the latency of the flush operation is reduced.

예시적으로, 매체 제어기(123)는 제1 타입 메모리(121)의 자유 저장 용량을 관찰할 수 있다. 제1 타입 메모리(121)의 자유 저장 용량이 문턱 값보다 적어지면 또는 문턱 비율보다 감소하면, 매체 제어기(123)는 플러시 동작을 수행할 수 있다.In exemplary embodiments, the media controller 123 may observe the free storage capacity of the first type memory 121. When the free storage capacity of the first type memory 121 becomes less than the threshold value or decreases below the threshold ratio, the media controller 123 may perform a flush operation.

도 12는 제1 메모리 모듈(120b)이 버퍼 메모리(126)를 이용하는 응용 예를 보여준다. 도 12를 참조하면, 버퍼 메모리(126)의 제2 저장 공간(SC2)은 쓰기 테이블(WT) 및 버퍼 영역(BA)을 포함할 수 있다. 쓰기 테이블(WT)은 도 8 및 도 9를 참조하여 설명된 바와 같이 더티 표시들을 저장할 수 있다.12 shows an application example in which the first memory module 120b uses the buffer memory 126. Referring to FIG. 12, the second storage space SC2 of the buffer memory 126 may include a write table WT and a buffer area BA. The write table WT may store dirty indications as described with reference to FIGS. 8 and 9.

제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)가 활성화되면, 매체 제어기(123)는 쓰기 테이블(WT)을 참조할 수 있다. 매체 제어기(123)는 제1 타입 메모리(121)에 저장된 데이터 중 쓰기 테이블(WT)의 더티 표시와 연관된 데이터를 읽고, 읽은 데이터를 버퍼 메모리(126)의 버퍼 영역(BA)에 저장할 수 있다.When the first control signal CS1 or the third control signal CS3 is activated, the media controller 123 may refer to the write table WT. The media controller 123 may read data associated with a dirty display of the write table WT among data stored in the first type memory 121 and store the read data in the buffer area BA of the buffer memory 126.

버퍼 메모리(126)의 자유 저장 용량이 부족하면, 매체 제어기(123)는 버퍼 메모리(126)의 버퍼 영역(BA)으로부터 데이터를 읽고, 읽은 데이터를 제2 타입 메모리(122)에 기입하는 동작을 먼저 수행할 수 있다. 매체 제어기(123)는 플러시 동작이 완료된 후에 버퍼 메모리(126)에 존재하는 데이터를 배경 동작을 통해 제2 타입 메모리(122)로 옮길 수 있다.If the free storage capacity of the buffer memory 126 is insufficient, the media controller 123 reads data from the buffer area BA of the buffer memory 126 and writes the read data to the second type memory 122. You can do it first. After the flush operation is completed, the media controller 123 may move data existing in the buffer memory 126 to the second type memory 122 through a background operation.

예시적으로, 중앙 제어 블록(110)은 제1 타입 메모리(120a 또는 120b)의 자유 저장 용량을 관찰할 수 있다. 제1 타입 메모리(121)의 자유 저장 용량이 문턱 값보다 적어지면 또는 문턱 비율보다 감소하면, 중앙 제어 블록(110)은 제1 제어 신호(CS1) 또는 제3 제어 신호(CS3)를 활성화하여 플러시 동작을 유발할 수 있다.In exemplary embodiments, the central control block 110 may observe the free storage capacity of the first type memory 120a or 120b. When the free storage capacity of the first type memory 121 becomes less than the threshold value or decreases below the threshold ratio, the central control block 110 activates and flushes the first control signal CS1 or the third control signal CS3. May cause motion.

도 13은 본 발명의 실시 예에 따른 메모리 시스템(200)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(200)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(200)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.13 is a block diagram illustrating a memory system 200 according to an exemplary embodiment of the inventive concept. For example, the memory system 200 may include a server such as an application server, a client server, and a data server. As another example, memory system 200 may include a personal computer or workstation.

도 13을 참조하면, 메모리 시스템(200)은 프로세서(210), 제1 내지 제4 메모리 모듈들(220~250), 루트 컴플렉스(260), 그리고 스토리지 장치(270)를 포함한다. 프로세서(210)는 메모리 시스템(200)의 구성 요소들 및 구성 요소들의 동작들을 제어할 수 있다. 프로세서(210)는 운영체제 및 응용들을 실행하고, 운영체제 또는 응용들을 이용하여 데이터를 처리할 수 있다.Referring to FIG. 13, the memory system 200 includes a processor 210, first to fourth memory modules 220 to 250, a root complex 260, and a storage device 270. The processor 210 may control the components of the memory system 200 and the operations of the components. The processor 210 may execute an operating system and applications and process data using the operating system or applications.

프로세서(210)는 메모리 제어기(211) 및 캐시 메모리(212)를 포함할 수 있다. 메모리 제어기(211)는 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 제1 내지 제4 메모리 모듈들(220~250)을 액세스할 수 있다. 캐시 메모리(212)는 정적 랜덤 액세스 메모리(SRAM)와 같은 고속의 메모리를 포함할 수 있다.The processor 210 may include a memory controller 211 and a cache memory 212. The memory controller 211 may access the first through fourth memory modules 220 ˜ 250 through the main channels MCH and the auxiliary channels SCH. Cache memory 212 may include high speed memory, such as static random access memory (SRAM).

제1 내지 제4 메모리 모듈들(220~250)은 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 메모리 제어기(211)에 연결될 수 있다. 메인 채널들(MCH)은 메모리 모듈들(220~250)(예를 들어, 반도체 메모리 모듈들)에 데이터를 저장하거나 데이터를 읽기 위해 사용되는 채널들일 수 있다. 메인 채널들(MCH)은 제1 내지 제4 메모리 모듈들(220~250)에 대해 각각 제공되는 채널들을 포함할 수 있다.The first to fourth memory modules 220 to 250 may be connected to the memory controller 211 through the main channels MCH and the auxiliary channels SCH. The main channels MCH may be channels used to store data or read data in the memory modules 220 to 250 (eg, semiconductor memory modules). The main channels MCH may include channels provided for the first to fourth memory modules 220 to 250, respectively.

보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(220~250)에 데이터를 저장하거나 읽는 것 외에, 제1 내지 제4 메모리 모듈들(220~250)과 연관된 추가적인 기능들을 제공할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(220~250)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(211)에 제공할 수 있다. 보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(220~250)에 대해 각각 제공되는 채널들을 포함할 수 있다.The auxiliary channels SCH may provide additional functions associated with the first to fourth memory modules 220 to 250 in addition to storing or reading data in the first to fourth memory modules 220 to 250. have. For example, the first to fourth memory modules 220 to 250 may provide their own unique information to the memory controller 211 through the auxiliary channels SCH. The auxiliary channels SCH may include channels provided for the first to fourth memory modules 220 to 250, respectively.

제1 내지 제4 메모리 모듈들(220~250)은 메모리 시스템(200)의 메인 메모리로 사용될 수 있다. 제1 내지 제4 메모리 모듈들(220~250)은 DIMM(Dual In-line Memory Module), RDIMM(Registered DIMM), LRDIMM(Load Reduced DIMM) 등과 같은 메모리 모듈의 표준들 중 하나에 따라 메모리 제어기(211)와 통신할 수 있다.The first to fourth memory modules 220 to 250 may be used as main memory of the memory system 200. The first to fourth memory modules 220 to 250 may include a memory controller according to one of the standards of a memory module such as a dual in-line memory module (DIMM), a registered DIMM (RDIMM), a load reduced DIMM (LRDIMM), or the like. 211).

루트 컴플렉스(260)는 프로세서(210)가 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(260)에 스토리지 장치(270)가 연결될 수 있다. 스토리지 장치(270)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.Root complex 260 can provide channels through which processor 210 accesses various peripheral devices. For example, the storage device 270 may be connected to the root complex 260. The storage device 270 may include a hard disk drive, an optical disk drive, a solid state drive, and the like.

예시적으로, 루트 컴플렉스(260)에 연결되는 주변 장치들은 스토리지 장치(270)로 한정되지 않는다. 예를 들어, 루트 컴플렉스(260)는 모뎀, 그래픽 프로세싱 유닛(GPU), 뉴로모픽(Neuromorphic) 프로세서 등과 같은 다양한 장치들에 연결될 수 있다.In exemplary embodiments, peripheral devices connected to the root complex 260 are not limited to the storage device 270. For example, the root complex 260 can be connected to various devices, such as a modem, graphics processing unit (GPU), neuromorphic processor, and the like.

프로세서(210)는 캐시 메모리(212), 메인 메모리인 제1 내지 제4 메모리 모듈들(220~250), 그리고 스토리지 장치(270)를 계층적으로 관리할 수 있다. 예를 들어, 프로세서(210)는 스토리지 장치(270)에 저장된 데이터 중 필요한 데이터를 제1 내지 제4 메모리 모듈들(220~250)을 포함하는 메인 메모리에 로드할 수 있다. 프로세서(210)는 메인 메모리에 저장된 데이터 중 백업이 필요한 데이터를 스토리지 장치(270)로 플러시(flush)할 수 있다.The processor 210 may hierarchically manage the cache memory 212, the first to fourth memory modules 220 to 250, which are main memories, and the storage device 270. For example, the processor 210 may load necessary data among data stored in the storage device 270 into the main memory including the first to fourth memory modules 220 to 250. The processor 210 may flush data to be backed up from the data stored in the main memory to the storage device 270.

제1 내지 제4 메모리 모듈들(220~250)을 포함하는 메인 메모리의 저장 영역 중 일부는 캐시 메모리(212)에 사상될 수 있다. 프로세서(210)는 메인 메모리의 특정한 저장 공간을 액세스할 필요가 있을 때, 특정한 저장 공간이 캐시 메모리(212)에 사상되어 있는지 판단할 수 있다.Some of the storage areas of the main memory including the first to fourth memory modules 220 to 250 may be mapped to the cache memory 212. When the processor 210 needs to access a specific storage space of the main memory, the processor 210 may determine whether the specific storage space is mapped to the cache memory 212.

특정한 저장 공간이 캐시 메모리(212)에 사상되어 있으면, 프로세서(210)는 캐시 메모리(212)의 특정한 저장 공간을 액세스할 수 있다. 특정한 저장 공간이 캐시 메모리에 사상되어 있지 않으면, 프로세서(210)는 제1 내지 제4 메모리 모듈들(220~250)의 특정한 저장 공간을 캐시 메모리(212)에 사상할(또는 가져올(fetch)) 수 있다.If a particular storage space is mapped to the cache memory 212, the processor 210 can access the particular storage space of the cache memory 212. If a particular storage space is not mapped to the cache memory, the processor 210 maps (or fetches) the specific storage space of the first to fourth memory modules 220 to 250 to the cache memory 212. Can be.

캐시 메모리(212)의 저장 공간이 부족하면, 프로세서(210)는 기존에 캐시 메모리(212)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(210)는 갱신된 데이터를 제1 내지 제4 메모리 모듈들(220~250)로 플러시할 수 있다.If the storage space of the cache memory 212 is insufficient, the processor 210 may release the storage space previously mapped to the cache memory 212. If data of the storage space to be released is updated, the processor 210 may flush the updated data to the first to fourth memory modules 220 to 250.

제1 내지 제4 메모리 모듈들(220~250)은 이종의 메모리 모듈들을 포함할 수 있다. 예를 들어, 제1 및 제2 메모리 모듈들(220, 230)은 제1 타입 메모리 모듈들일 수 있다. 제3 및 제4 메모리 모듈들(240, 250)은 제2 타입 메모리 모듈들일 수 있다.The first to fourth memory modules 220 to 250 may include heterogeneous memory modules. For example, the first and second memory modules 220 and 230 may be first type memory modules. The third and fourth memory modules 240 and 250 may be second type memory modules.

제1 메모리 모듈(220)은 제1 타입 메모리(221), 제2 타입 메모리(222), 매체 제어기(223), 그리고 직렬 프레즌스 검출(SPD)(Serial Presence Detect) 장치(225)를 포함할 수 있다. 제2 메모리 모듈(230)은 제1 타입 메모리(231), 제2 타입 메모리(232), 매체 제어기(233), 그리고 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(235)를 포함할 수 있다. 이하에서, 제1 메모리 모듈(220)을 참조하여 제1 타입 메모리 모듈들(220, 230)이 설명된다.The first memory module 220 may include a first type memory 221, a second type memory 222, a media controller 223, and a serial presence detection (SPD) device 225. have. The second memory module 230 may include a first type memory 231, a second type memory 232, a media controller 233, and a serial presence detection (SPD) device 235. . Hereinafter, the first type memory modules 220 and 230 will be described with reference to the first memory module 220.

제1 타입 메모리(221)는 고속의 휘발성 메모리, 예를 들어 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 제2 타입 메모리(222)는 제1 타입 메모리(221)보다 느린 속도를 갖고, 제1 타입 메모리(221)보다 큰 저장 용량을 갖는 불휘발성 메모리를 포함할 수 있다. 예를 들어, 제2 타입 메모리(222)는 플래시 메모리, 상 변화 메모리(Phase Change Memory), 강유전체 메모리(Ferroelectric Memory), 자기 메모리(Magnetic Memory), 저항성 메모리(Resistive Memory) 등을 포함할 수 있다.The first type memory 221 may include a high speed volatile memory, for example, a dynamic random access memory (DRAM). The second type memory 222 may include a nonvolatile memory having a slower speed than the first type memory 221 and having a larger storage capacity than the first type memory 221. For example, the second type memory 222 may include a flash memory, a phase change memory, a ferroelectric memory, a magnetic memory, a resistive memory, and the like. .

매체 제어기(223)는 메인 채널들(MCH) 중 대응하는 채널을 통해 전달되는 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)로부터의 액세스 명령을 제1 타입 메모리(221) 또는 제2 타입 메모리(222)에 전달할 수 있다. 액세스 명령에 따라, 매체 제어기(223)는 메인 채널들(MCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)와 데이터를 교환할 수 있다.The media controller 223 receives the access command from an external host device, for example, the memory controller 211 or the processor 210, which is transmitted through a corresponding channel among the main channels MCH. Alternatively, the data may be transferred to the second type memory 222. According to the access command, the media controller 223 may exchange data with an external host device, for example, the memory controller 211 or the processor 210 through a corresponding channel among the main channels MCH.

매체 제어기(223)는 제2 타입 메모리(222)의 저장 용량 또는 저장 공간을 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공할 수 있다. 매체 제어기(223)는 제1 타입 메모리(221)를 제2 타입 메모리(222)의 캐시 메모리로 사용할 수 있다. The media controller 223 may provide a storage capacity or a storage space of the second type memory 222 to an external host device, for example, the memory controller 211 or the processor 210. The media controller 223 may use the first type memory 221 as a cache memory of the second type memory 222.

예를 들어, 매체 제어기(223)는 제2 타입 메모리(222)의 저장 공간 중 일부 저장 공간을 제1 타입 메모리(221)에 사상할 수 있다. 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(221)에 사상되어 있으면, 매체 제어기(223)는 액세스 명령을 제1 타입 메모리(221)로 전달할 수 있다.For example, the media controller 223 may map some of the storage spaces of the second type memory 222 to the first type memory 221. If the storage space associated with an access command from an external host device, for example, the memory controller 211 or the processor 210, is mapped to the first type memory 221, the media controller 223 issues the first access command. It may be transferred to the type memory 221.

외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(221)에 사상되어 있지 않으면, 매체 제어기(223)는 해당 저장 공간을 제2 타입 메모리(222)로부터 제1 타입 메모리(221)로 사상(또는 백업)할 수 있다.If the storage space associated with an access command from an external host device, for example, the memory controller 211 or the processor 210, is not mapped in the first type memory 221, the media controller 223 may be configured to store the storage space. Mapping (or backup) from the second type memory 222 to the first type memory 221 may be performed.

제1 타입 메모리(221)의 저장 공간이 부족하면, 매체 제어기(223)는 기존에 제1 타입 메모리(221)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(223)는 갱신된 데이터를 제2 타입 메모리(222)로 플러시할 수 있다.If the storage space of the first type memory 221 is insufficient, the media controller 223 may release the storage space previously mapped to the first type memory 221. If data of the storage space to be released is updated, the media controller 223 may flush the updated data to the second type memory 222.

SPD 장치(225)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)와 통신할 수 있다. 예를 들어, 제1 메모리 모듈(220)이 초기화될 때에, SPD 장치(225)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공할 수 있다.The SPD device 225 may communicate with an external host device, for example, the memory controller 211 or the processor 210 through a corresponding channel among the auxiliary channels SCH. For example, when the first memory module 220 is initialized, the SPD device 225 transmits the stored information to an external host device, for example, the memory controller 211 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 210 may provide the processor 210.

예를 들어, SPD 장치(225)는 제1 메모리 모듈(220)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(225)는 제2 타입 메모리(222)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(225)는 제2 타입 메모리(222)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공할 수 있다.For example, the SPD device 225 may store information about a storage capacity provided to an external host device, for example, the memory controller 211 or the processor 210 as a storage space of the first memory module 220. have. For example, the SPD device 225 may store information about a storage capacity of the second type memory 222. Upon initialization, the SPD device 225 may provide information about the storage capacity of the second type memory 222 to an external host device, for example, the memory controller 211 or the processor 210.

예를 들어, SPD 장치(225)에 저장되는 용량 정보는 제2 타입 메모리(222)의 사용자 용량에 대한 정보를 포함할 수 있다. 제2 타입 메모리(222)의 저장 용량은 사용자 용량, 메타 용량, 그리고 예비 용량을 포함할 수 있다. 사용자 용량은 제2 타입 메모리(222)가 외부의 호스트 장치, 예를 들어 메모리 제어기(211)에 제공하는 저장 용량일 수 있다.For example, the capacity information stored in the SPD device 225 may include information about a user capacity of the second type memory 222. The storage capacity of the second type memory 222 may include a user capacity, a meta capacity, and a spare capacity. The user capacity may be a storage capacity provided by the second type memory 222 to an external host device, for example, the memory controller 211.

메타 용량은 제2 타입 메모리(222)를 관리하기 위한 다양한 메타 정보가 저장되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(211)에 공개되지 않는 저장 용량일 수 있다. 예비 용량은 제2 타입 메모리(222)를 관리하기 위해 확보되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(211)에 공개되지 않는 저장 용량일 수 있다.The meta capacity stores various meta information for managing the second type memory 222 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 211. The spare capacity is reserved for managing the second type memory 222 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 211.

SPD 장치(225)에 저장된 용량 정보는 제2 타입 메모리(222)의 사용자 용량에 대한 정보를 포함할 수 있다. 이하에서, 별도로 명시되지 않으면, 제2 타입 메모리(222)의 용량은 제2 타입 메모리(222)의 사용자 용량을 가리키는 것으로 이해될 수 있다.The capacity information stored in the SPD device 225 may include information about a user capacity of the second type memory 222. Hereinafter, unless otherwise specified, the capacity of the second type memory 222 may be understood to indicate the user capacity of the second type memory 222.

제3 메모리 모듈(240)은 제1 타입 메모리(241) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(245)를 포함할 수 있다. 제4 메모리 모듈(250)은 제1 타입 메모리(251) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(255)를 포함할 수 있다. 이하에서, 제3 메모리 모듈(240)을 참조하여 제2 타입 메모리 모듈들(240, 250)이 설명된다.The third memory module 240 may include a first type memory 241 and a serial presence detection (SPD) device 245. The fourth memory module 250 may include a first type memory 251 and a serial presence detection (SPD) device 255. Hereinafter, the second type memory modules 240 and 250 will be described with reference to the third memory module 240.

제1 타입 메모리(241)는 제1 메모리 모듈(220)의 제1 타입 메모리(221)와 마찬가지로 동적 랜덤 액세스 메모리를 포함할 수 있다. SPD 장치(245)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)와 통신할 수 있다. 예를 들어, 제3 메모리 모듈(240)이 초기화될 때에, SPD 장치(245)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공할 수 있다.The first type memory 241 may include a dynamic random access memory like the first type memory 221 of the first memory module 220. The SPD device 245 may communicate with an external host device, for example, the memory controller 211 or the processor 210 through a corresponding channel among the auxiliary channels SCH. For example, when the third memory module 240 is initialized, the SPD device 245 transmits the stored information to an external host device, for example, the memory controller 211 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 210 may provide the processor 210.

예를 들어, SPD 장치(225)는 제3 메모리 모듈(240)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(245)는 제1 타입 메모리(241)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(245)는 제1 타입 메모리(241)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)에 제공할 수 있다.For example, the SPD device 225 may store information about a storage capacity provided to an external host device, for example, the memory controller 211 or the processor 210 as a storage space of the third memory module 240. have. For example, the SPD device 245 may store information about a storage capacity of the first type memory 241. At initialization, the SPD device 245 may provide information on the storage capacity of the first type memory 241 to an external host device, for example, the memory controller 211 or the processor 210.

메모리 시스템(200)에 전원이 공급되면, 메모리 제어기(211)는 제1 내지 제4 메모리 모듈들(220~250)과 초기화를 수행할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(220~250)의 SPD 장치들(225~255)은 보조 채널들(SCH)을 통해 메모리 제어기(211)에 각각 용량 정보를 제공할 수 있다.When power is supplied to the memory system 200, the memory controller 211 may perform initialization with the first to fourth memory modules 220 to 250. For example, the SPD devices 225 to 255 of the first to fourth memory modules 220 to 250 may provide capacity information to the memory controller 211 through auxiliary channels SCH, respectively.

제1 타입 메모리 모듈들(220, 230)의 SPD 장치들(225, 235)은 각각 제2 타입 메모리들(222, 232)의 저장 용량들을 메모리 제어기(211)에 제공할 수 있다. 제2 타입 메모리 모듈들(240, 250)의 SPD 장치들(245, 255)은 각각 제1 타입 메모리들(241, 251)의 저장 용량들을 메모리 제어기(211)에 제공할 수 있다. 예를 들어, 메모리 제어기(211)는 SPD 장치들(225~255)로부터 저장 용량들을 각각 읽을 수 있다.The SPD devices 225 and 235 of the first type memory modules 220 and 230 may provide the storage controllers of the second type memories 222 and 232 to the memory controller 211, respectively. The SPD devices 245 and 255 of the second type memory modules 240 and 250 may provide the storage controllers of the first type memories 241 and 251 to the memory controller 211, respectively. For example, the memory controller 211 may read storage capacities from the SPD devices 225 to 255, respectively.

도 14는 프로세서(210)가 제1 및 제3 메모리 모듈들(220, 240)을 액세스하는 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 프로세서(210), 제1 메모리 모듈(220), 그리고 제3 메모리 모듈(240) 외의 다른 구성 요소들은 생략된다.14 shows an example in which the processor 210 accesses the first and third memory modules 220 and 240. In order to avoid unnecessary complexity of the drawings, components other than the processor 210, the first memory module 220, and the third memory module 240 are omitted.

도 13 및 도 14를 참조하면, 프로세서(210)는 제1 내지 제n 코어들(CORE1~COREn)을 포함할 수 있다. 즉, 프로세서(210)는 다중 코어 프로세서일 수 있다. 제1 내지 제n 코어들(CORE1~COREn)에 의해 실행되는 개체들은 실행 영역(EA)에 도시된다.13 and 14, the processor 210 may include first to nth cores CORE1 to COREn. In other words, the processor 210 may be a multi-core processor. The entities executed by the first to nth cores CORE1 to COREn are shown in the execution area EA.

실행 영역(EA)을 참조하면, 프로세서(210)에서 운영체제(OS)가 실행될 수 있다. 또한, 운영체제(OS)의 지원을 바탕으로, 프로세서(210)에서 제1 내지 제3 응용들(APP1~APP3)이 실행될 수 있다. Referring to the execution region EA, an operating system (OS) may be executed in the processor 210. In addition, based on the support of the operating system (OS), the first to third applications APP1 to APP3 may be executed in the processor 210.

운영체제(OS)는 기계 검사 예외 처리기(MCEH)(Machine Check Exception Handler)를 포함할 수 있다. 기계 검사 예외 처리기(MCEH)는 메모리 제어기(211)가 제1 내지 제4 메모리 모듈들(220~250)을 액세스할 때에 발생하는 에러를 처리할 수 있다. 기계 검사 예외 처리기(MCEH)의 동작은 도 15를 참조하여 더 상세히 설명된다The operating system (OS) may include a machine check exception handler (MCEH). The machine check exception processor MCEH may handle an error that occurs when the memory controller 211 accesses the first to fourth memory modules 220 to 250. The operation of the machine check exception handler MCEH is described in more detail with reference to FIG. 15.

메모리 제어기(211)는 제1 내지 제n 코어들(CORE1~COREn)의 요청에 따라 제1 내지 제4 메모리 모듈들(220~250)을 액세스할 수 있다. 예를 들어, 메모리 제어기(211)는 제1 메인 채널(MCH1)을 통해 제1 메모리 모듈(220)을 액세스하고, 제2 메인 채널(MCH2)을 통해 제3 메모리 모듈(240)을 액세스할 수 있다.The memory controller 211 may access the first to fourth memory modules 220 to 250 according to a request of the first to nth cores CORE1 to COREn. For example, the memory controller 211 may access the first memory module 220 through the first main channel MCH1, and may access the third memory module 240 through the second main channel MCH2. have.

도 15는 본 발명의 제1 예에 따른 메모리 시스템(200)의 동작 방법을 보여주는 순서도이다. 도 13 내지 도 15를 참조하면, S110 단계에서, 메모리 제어기(211)는 제1 내지 제4 메모리 모듈들(220~250) 중 하나의 메모리 모듈로부터 데이터를 읽을 수 있다. 예를 들어, 메모리 제어기(211)는 제1 내지 제3 응용들(APP1~APP3) 또는 운영체제(OS)의 요청에 따라 데이터를 읽을 수 있다.15 is a flowchart illustrating a method of operating a memory system 200 according to a first example of the present invention. 13 to 15, in step S110, the memory controller 211 may read data from one of the first to fourth memory modules 220 to 250. For example, the memory controller 211 may read data at the request of the first to third applications APP1 to APP3 or the operating system OS.

S120 단계에서, 메모리 제어기(211)는 정정 불가능한 에러(uncorrectable error)를 검출할 수 있다. 예를 들어, 메모리 제어기(211)는 읽혀진 데이터에 대해 에러 정정 디코딩을 수행할 수 있다. 메모리 제어기(211)는 에러 정정 디코딩의 결과에 따라 에러를 정정하거나 정정 불가능한 에러를 검출할 수 있다.In operation S120, the memory controller 211 may detect an uncorrectable error. For example, the memory controller 211 may perform error correction decoding on the read data. The memory controller 211 may correct the error or detect an uncorrectable error according to the result of the error correction decoding.

예를 들어, 읽혀진 데이터가 에러 정정 디코딩에 의해 정정되는 에러 비트들의 수를 초과한 에러 비트들을 포함할 때, 정정 불가능한 에러가 검출될 수 있다. 예를 들어, 메모리 제어기(211)는 특정 횟수만큼 읽기 재시도를 수행할 수 있다. 읽기 재시도를 반복적으로 수행한 때에도 정정 불가능한 에러가 검출되면, 예외 처리(Exception Handling)가 수행될 수 있다.For example, when the read data includes error bits that exceed the number of error bits that are corrected by error correction decoding, an uncorrectable error may be detected. For example, the memory controller 211 may perform read retries a specific number of times. If an uncorrectable error is detected even when the read retry is repeatedly performed, exception handling may be performed.

예를 들어, 프로세서(210)의 제1 내지 제n 코어들(CORE1~COREn) 중 하나의 코어가 기계 검사 예외 처리기(MCEH)에 도달하고 실행함으로써, 예외 처리가 수행될 수 있다. 예외 처리는 S230 단계 내지 S180 단계를 포함할 수 있다.For example, exception processing may be performed by having one of the first to n th cores CORE1 to COREn of the processor 210 reach and execute the machine check exception handler MCEH. The exception processing may include steps S230 to S180.

S230 단계에서, 기계 검사 예외 처리기(MCEH)는 기계 검사를 수행할 수 있다. 예를 들어, 기계 검사는 메모리 제어기(211) 또는 제1 메모리 모듈(220)이 정상적으로 동작하는지 또는 오동작하는지 판단하는 것을 포함할 수 있다. 기계 검사는 검출된 에러가 치명적 에러(fatal error)인지 또는 재해적인 에러인지(catastrophic error) 판단하는 것을 포함할 수 있다.In operation S230, the machine check exception processor MCEH may perform a machine check. For example, the machine test may include determining whether the memory controller 211 or the first memory module 220 operates normally or malfunctions. Machine inspection may include determining whether the detected error is a fatal error or a catastrophic error.

예를 들어, 중요한 데이터에서 정정 불가능한 에러가 발생하면, 재해적 에러가 판단될 수 있다. 메모리 시스템(200)의 제어 또는 운용에 필요한 데이터는 중요한 데이터일 수 있다. 제1 내지 제3 응용들(APP1~APP3) 또는 운영체제(OS)가 요청하였고 제1 내지 제3 응용들(APP1~APP3) 또는 운영체제(OS)가 사용할 데이터는 중요한 데이터일 수 있다.For example, if an uncorrectable error occurs in critical data, a disaster error can be determined. Data necessary for controlling or operating the memory system 200 may be important data. Data requested by the first to third applications APP1 to APP3 or the operating system OS and used by the first to third applications APP1 to APP3 or the operating system OS may be important data.

예를 들어, 중요하지 않은 데이터에서 정정 불가능한 에러가 발생하면, 치명적 에러가 판단될 수 있다. 메모리 시스템(200)의 제어 또는 운용과 무관한 데이터는 중요하지 않은 데이터일 수 있다. 제1 내지 제3 응용들(APP1~APP3) 또는 운영체제(OS)가 요청하였고 제1 내지 제3 응용들(APP1~APP3) 또는 운영체제(OS)가 사용하지 않는 데이터는 중요하지 않은 데이터일 수 있다.For example, if an uncorrectable error occurs in noncritical data, a fatal error can be determined. Data unrelated to the control or operation of the memory system 200 may be insignificant data. Data requested by the first to third applications APP1 to APP3 or the operating system OS and not used by the first to third applications APP1 to APP3 or the operating system OS may be insignificant data. .

S240 단계에서, 정정 불가능한 데이터가 중요한 에러이면, 기계 검사 예외 처리기(MCEH)는 S250 단계를 수행한다. S240 단계에서, 기계 검사 예외 처리기(MCEH)는 재해적 에러(catastrophic error)가 발생하였음을 에러 로그에 기록할 수 있다. 이후에, S160 단계에서, 메모리 시스템(200)의 시스템 리부트(system reboot) 또는 커널 패닉(kernel panic)이 발생할 수 있다.In operation S240, if uncorrectable data is a significant error, the machine check exception processor MCEH performs operation S250. In operation S240, the machine check exception processor MCEH may record that a catastrophic error has occurred in the error log. Subsequently, in step S160, a system reboot or kernel panic of the memory system 200 may occur.

S240 단계에서, 정정 불가능한 데이터가 중요하지 않은 에러이면, 기계 검사 예외 처리기(MCEH)는 S170 단계를 수행한다. S170 단계에서, 기계 검사 예외 처리기(MCEH)는 치명적 에러(fatal error)가 발생하였음을 에러 로그에 기록할 수 있다.In operation S240, if the uncorrectable data is a non-critical error, the machine check exception processor MCEH performs operation S170. In operation S170, the machine check exception processor MCEH may record that a fatal error has occurred in the error log.

도 16은 제1 메모리 모듈(220)로부터 데이터를 읽는 예를 보여준다. 도 13 및 도 16을 참조하면, S111 단계에서, 예를 들어 제1 응용(APP1)이 제1 메모리 모듈(220)에 대한 읽기 요청을 메모리 제어기(211)로 전송할 수 있다. 읽기 요청은 운영체제(OS) 및 제1 내지 제n 코어들(CORE1~COREn)을 통해 메모리 제어기(211)로 전달될 수 있다.16 illustrates an example of reading data from the first memory module 220. 13 and 16, in operation S111, for example, the first application APP1 may transmit a read request for the first memory module 220 to the memory controller 211. The read request may be transmitted to the memory controller 211 through the operating system OS and the first to n th cores CORE1 to COREn.

S112 단계에서, 읽기 요청에 응답하여, 메모리 제어기(211)는 제1 메모리 모듈(220)에 읽기 명령을 전송할 수 있다. S113 단계에서, 읽기 명령은 제2 타입 메모리(222)에 대한 액세스를 유발할 수 있다. 예를 들어, 읽기 명령에 대응하는 데이터가 제1 타입 메모리(221)에 사상되어 있지 않을 때, 매체 제어기(223)는 해당 데이터를 제2 타입 메모리(222)로부터 읽어 제1 타입 메모리(221)에 사상할 수 있다.In operation S112, in response to the read request, the memory controller 211 may transmit a read command to the first memory module 220. In operation S113, the read command may cause access to the second type memory 222. For example, when the data corresponding to the read command is not mapped in the first type memory 221, the media controller 223 reads the corresponding data from the second type memory 222 and the first type memory 221. Can be mapped to

메모리 제어기(211)가 제1 메모리 모듈(220)을 액세스하는 절차는 제3 메모리 모듈(240)을 액세스하는 절차와 동일하다. 예를 들어, 메모리 제어기(211)가 제1 메모리 모듈(220)로 읽기 명령을 전송한 후에 데이터를 수신할 때까지의 시간 조건은 제1 타입 메모리(221 또는 241)의 액세스 속도에 맞추어져 있다.The procedure of accessing the first memory module 220 by the memory controller 211 is the same as the procedure of accessing the third memory module 240. For example, the time condition until the memory controller 211 receives the data after transmitting the read command to the first memory module 220 is adapted to the access speed of the first type memory 221 or 241. .

제2 타입 메모리(222)의 액세스 속도는 제1 타입 메모리(221)의 액세스 속도보다 느리다. 따라서, S114 단계에서, 메모리 제어기(211)의 시간 조건에 따른 시간이 경과할 때까지 제2 타입 메모리(222)로부터 데이터가 읽혀지지 않는 타임 아웃이 발생할 수 있다.The access speed of the second type memory 222 is slower than that of the first type memory 221. Therefore, in operation S114, a timeout may occur in which data is not read from the second type memory 222 until the time according to the time condition of the memory controller 211 elapses.

예를 들어, 제1 메모리 모듈(220)은 제1 메인 채널(MCH1)로 데이터를 전송하지 않음에도, 메모리 제어기(211)는 제1 메인 채널(MCH1)의 전압들로부터 데이터를 감지할 수 있다. 이때, 메모리 제어기(211)는 정정 불가능한 에러를 갖는 데이터를 수신한 것으로 판단할 수 있다.For example, although the first memory module 220 does not transmit data to the first main channel MCH1, the memory controller 211 may detect data from voltages of the first main channel MCH1. . In this case, the memory controller 211 may determine that data having an uncorrectable error has been received.

다른 예로서, 시간 조건에 따른 시간이 경과함에 따라, 제1 메모리 모듈(220)은 더미 데이터를 제1 메인 채널(MCH1)로 전송할 수 있다. 메모리 제어기(211)는 제1 메인 채널(MCH1)을 통해 더미 데이터를 수신할 수 있다. 메모리 제어기는 더미 데이터가 정정 불가능한 에러를 갖는 것으로 판단할 수 있다. 예를 들어, 더미 데이터는 특정한 패턴을 갖는 데이터 또는 임의 패턴을 갖는 데이터일 수 있다.As another example, as time passes according to a time condition, the first memory module 220 may transmit dummy data to the first main channel MCH1. The memory controller 211 may receive dummy data through the first main channel MCH1. The memory controller may determine that the dummy data has an uncorrectable error. For example, the dummy data may be data having a specific pattern or data having an arbitrary pattern.

도 17은 제1 메모리 모듈(220)에 대해 예외 처리가 수행되는 예를 보여준다. 예시적으로, 도 17은 도 16의 S114 단계에 후속하는 동작들을 보여준다. 도 13 및 도 17을 참조하면, S115 단계에서, 메모리 제어기(211)는 제1 메모리 모듈(220)로부터 정정 불가능한 에러(UE)를 갖는 데이터를 수신한다.17 shows an example in which exception processing is performed on the first memory module 220. By way of example, FIG. 17 shows operations subsequent to step S114 of FIG. 16. 13 and 17, in step S115, the memory controller 211 receives data having an uncorrectable error UE from the first memory module 220.

예를 들어, 위에서 언급된 바와 같이, 매체 제어기(223)는 메모리 제어기(211)로 데이터를 전송하지 않거나 또는 메모리 제어기(211)로 더미 데이터를 전송할 수 있다. 메모리 제어기(211)는 읽은 데이터에 대해 에러 정정 디코딩을 수행하고, 읽혀진 데이터가 정정 불가능한 에러를 가짐을 판단할 수 있다.For example, as mentioned above, the media controller 223 may not transmit data to the memory controller 211 or may transmit dummy data to the memory controller 211. The memory controller 211 may perform error correction decoding on the read data, and determine that the read data has an uncorrectable error.

정정 불가능한 에러가 검출되면, S116 단계에서, 메모리 제어기(211)는 인터럽트 신호(IRQ)를 출력할 수 있다. 인터럽트 신호(IRQ)는 제1 내지 제n 코어들(CORE1~COREn) 중 적어도 하나의 코어로 전달될 수 있다. 인터럽트 신호(IRQ)는 적어도 하나의 코어를 통해 실행 영역(EA)의 제1 응용(APP1) 또는 운영체제(OS)로 전달될 수 있다.If an uncorrectable error is detected, in operation S116, the memory controller 211 may output an interrupt signal IRQ. The interrupt signal IRQ may be transmitted to at least one core of the first to nth cores CORE1 to COREn. The interrupt signal IRQ may be transmitted to the first application APP1 or the operating system OS of the execution area EA through at least one core.

인터럽트 신호(IRQ)에 응답하여, S117 단계에서, 제1 응용(APP1)으로부터 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)로 콘텍스트 스위칭이 발생할 수 있다. 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 제1 내지 제n 코어들(CORE1~COREn)에 예외(exception)가 발생하여 예외 처리(exception handling)가 필요함을 알리는 예외 방송(exception broadcasting)을 수행할 수 있다.In response to the interrupt signal IRQ, in operation S117, context switching may occur from the first application APP1 to the operating system OS or the machine check exception processor MCEH. The operating system (OS) or the machine check exception handler (MCEH) generates an exception broadcast indicating that exception handling is required by generating an exception in the first to nth cores CORE1 to COREn. Can be done.

예를 들어, 예외 방송은 제1 내지 제n 코어들(CORE1~COREn)이 기계 검사 예외 처리기(MCEH)를 실행하도록 호출하는 호출일 수 있다. 예외 방송에 따라, 제1 내지 제n 코어들(CORE1~COREn)은 현재 수행하는 동작들을 중지하고, 기계 검사 예외 처리기(MCEH)에 접근할 수 있다.For example, the exception broadcast may be a call in which the first to nth cores CORE1 to COREn call to execute the machine check exception handler MCEH. According to the exception broadcast, the first to n th cores CORE1 to COREn may stop operations currently performed and access the machine check exception processor MCEH.

예를 들어, 현재 수행하는 동작들은 프로세스들, 쓰레드들, 작업들, 연산들, 일련의 코드들 또는 명령들을 포함할 수 있다. 각 동작은 하나 또는 그보다 많은 중지 포인트를 가질 수 있다. 각 중지 포인트에서, 해당 동작을 수행하는 코어는 동작의 수행을 중지 및 재개하도록 허용될 수 있다.For example, currently performing operations may include processes, threads, tasks, operations, series of codes or instructions. Each action may have one or more breakpoints. At each breakpoint, the core performing the action may be allowed to stop and resume performing the action.

제1 내지 제n 코어들(CORE1~COREn) 중 하나의 코어는 기계 검사 예외 처리기(MCEH)를 실행하여 예외 처리를 수행할 수 있다. 예외 처리를 수행하는 코어는 군주 코어(monarchy core)일 수 있다. 제1 내지 제n 코어들(CORE1~COREn) 중 군주 코어를 제외한 나머지 코어들은 기계 검사 예외 처리기(MCEH)를 실행하지 않을 수 있다.One core of the first to n th cores CORE1 to COREn may execute the machine check exception processor MCEH to perform exception processing. The core performing the exception processing may be a monarchy core. The cores other than the monarch core among the first to nth cores CORE1 to COREn may not execute the machine check exception processor MCEH.

메모리 제어기(211)는 제1 메모리 모듈(220)의 제1 타입 메모리(221)를 액세스한다. 제1 타입 메모리(221)는 제2 타입 메모리(222)의 캐시 메모리이다. 제1 메모리 모듈(220)로부터 읽혀진 데이터가 정정 불가능한 것은 제1 타입 메모리(221)에 저장된 해당 데이터가 정정 불가능한 에러를 갖거나 또는 해당 데이터가 제1 타입 메모리(221)에 사상되어 있지 않음을 의미한다.The memory controller 211 accesses the first type memory 221 of the first memory module 220. The first type memory 221 is a cache memory of the second type memory 222. Uncorrectable data read from the first memory module 220 means that the data stored in the first type memory 221 has an uncorrectable error or that the data is not mapped in the first type memory 221. do.

제1 타입 메모리(221)에 저장된 해당 데이터가 정정 불가능한 에러를 가지면, 제2 타입 메모리(222)에 저장된 해당 데이터를 제1 타입 메모리(221)에 재기입 함으로써 에러가 치유될 수 있다. 해당 데이터가 제1 타입 메모리(221)에 사상되어 있지 않으면, 제2 타입 메모리(222)에 저장된 해당 데이터를 제1 타입 메모리(221)에 사상함으로써 에러가 치유될 수 있다.If the corresponding data stored in the first type memory 221 has an uncorrectable error, the error may be healed by rewriting the corresponding data stored in the second type memory 222 into the first type memory 221. If the data is not mapped in the first type memory 221, the error may be healed by mapping the data stored in the second type memory 222 to the first type memory 221.

즉, 제2 타입 메모리(222)에 대한 액세스가 완료되면, 제1 메모리 모듈(220)로부터 정확한 데이터가 읽혀질 수 있다. 그러나 도 15를 참조하여 설명된 방법에 따르면, 제1 메모리 모듈(220)에서 제2 타입 메모리(222)에 대한 액세스가 발생한 때에 메모리 시스템(200, 도 1 참조)은 커널 패닉 또는 시스템 리부트에 진입할 수 있다.That is, when access to the second type memory 222 is completed, accurate data may be read from the first memory module 220. However, according to the method described with reference to FIG. 15, when an access to the second type memory 222 occurs in the first memory module 220, the memory system 200 (see FIG. 1) may enter a kernel panic or system reboot. You can enter.

제1 메모리 모듈(220)에서 제2 타입 메모리(222)에 대한 액세스가 발생한 때에 커널 패닉 또는 시스템 리부트가 발생하는 것을 방지하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(200)은 제1 메모리 모듈(220)에 대한 예외 처리를 제1 예와 다른 제2 예에 따라 수행할 수 있다.In order to prevent a kernel panic or a system reboot from occurring when an access to the second type memory 222 occurs in the first memory module 220, the memory system 200 according to an embodiment of the present invention may include a first memory module. Exception processing of the memory module 220 may be performed according to a second example different from the first example.

도 18은 본 발명의 제2 예에 따른 동작 방법을 보여주는 순서도이다. 도 1, 도 17 및 도 18을 참조하면, S121 단계 내지 S123 단계는 도 15의 S110 단계 내 S230 단계와 동일하게 수행될 수 있다. 따라서, S121 단계 내지 S123 단계에 대한 중복되는 설명은 생략된다.18 is a flowchart illustrating an operating method according to a second example of the present invention. 1, 17, and 18, steps S121 to S123 may be performed in the same manner as step S230 in step S110 of FIG. 15. Therefore, duplicate descriptions of the steps S121 to S123 are omitted.

S124 단계에서, 기계 검사 예외 처리기(MCEH)는 제1 메모리 모듈(220)과 연관된 에러가 발생하였음을 에러 로그에 기록할 수 있다. 예를 들어, 기계 검사 예외 처리기(MCEH)는 치명적 에러 또는 재해적 에러를 에러 로그에 기록할 수 있다. 예시적으로, S124 단계는 선택적으로 수행될 수 있다. S124 단계는 수행되거나 또는 수행되지 않고 생략될 수 있다. 예시적으로, S123 단계의 기계 검사에서, 검출된 에러가 치명적 에러인지 재해적 에러인지 판단하는 기능은 생략될 수 있다.In operation S124, the machine check exception processor MCEH may record that an error associated with the first memory module 220 has occurred in the error log. For example, the machine check exception handler (MCEH) can log fatal or disaster errors in the error log. For example, step S124 may be selectively performed. Step S124 may be performed or not performed and may be omitted. For example, in the machine inspection of step S123, the function of determining whether the detected error is a fatal error or a disaster error may be omitted.

예외 처리가 완료되면, 기계 검사 예외 처리기(MCEH)로부터 제1 응용(APP1)으로 콘텍스트 스위칭이 수행된다. 도 16의 S111 단계에서 설명된 바와 같이, 제1 응용(APP1)은 제1 메모리 모듈(220)에 대해 읽기 요청을 다시 전송할 수 있다.When the exception processing is completed, context switching is performed from the machine check exception processor MCEH to the first application APP1. As described in operation S111 of FIG. 16, the first application APP1 may transmit a read request to the first memory module 220 again.

제1 응용(APP1)으로부터 기계 검사 예외 처리기(MCEH)로의 콘텍스트 스위칭(도 17의 S117 단계)에 제1 시간이 소비될 수 있다. 기계 검사(S123 단계)에 제2 시간이 소비될 수 있다. 기계 검사 예외 처리기(MCEH)로부터 제1 응용(APP1)으로의 콘텍스트 스위칭에 제3 시간이 소비될 수 있다.A first time may be spent in context switching (step S117 of FIG. 17) from the first application APP1 to the machine check exception processor MCEH. The second time may be spent on the mechanical inspection (step S123). A third time may be spent switching the context from the machine check exception processor MCEH to the first application APP1.

제1 시간, 제2 시간, 그리고 제3 시간이 흐르는 동안, 매체 제어기(223)는 읽기 명령(도 16의 S112 단계 참조)에 해당하는 데이터를 제2 타입 메모리(222)로부터 제1 타입 메모리(221)로 사상할 수 있다. 따라서, 제1 응용(APP1)이 읽기 요청을 재전송함에 따라 메모리 제어기(211)가 제1 메모리 모듈(220)에 읽기 명령을 재전송하면, 메모리 제어기(211)는 제1 메모리 모듈(220)로부터 정확한 데이터를 읽을 수 있다.While the first time, the second time, and the third time pass, the media controller 223 reads data corresponding to the read command (see step S112 of FIG. 16) from the second type memory 222 to the first type memory ( 221). Therefore, when the memory controller 211 retransmits the read command to the first memory module 220 as the first application APP1 retransmits the read request, the memory controller 211 may correct the read command from the first memory module 220. The data can be read.

도 18을 참조하여 설명된 바와 같이, 기계 검사 예외 처리기(MCEH)는 제1 메모리 모듈(220)에 대한 예외 처리 시에, 치명적 에러 또는 재해적 에러를 판단하지 않고, 커널 패닉 또는 시스템 리부트로 진입하지 않는다. 따라서, 제1 메모리 모듈(220)에서 제2 타입 메모리(222)에 대한 액세스가 발생하여도, 메모리 시스템(200)은 커널 패닉 또는 시스템 리부트를 경험하지 않고 제1 메모리 모듈(220)로부터 정확한 데이터를 획득할 수 있다.As described with reference to FIG. 18, the machine check exception handler MCEH does not determine a fatal error or a catastrophic error at the time of exception processing for the first memory module 220, and as a kernel panic or system reboot. Do not enter. Thus, even if access to the second type memory 222 occurs in the first memory module 220, the memory system 200 does not experience a kernel panic or system reboot, and therefore the memory system 200 may correct the first memory module 220. Data can be obtained.

예시적으로, 제1 타입 메모리 모듈들(220, 230)에 대해 도 18을 참조하여 설명된 제2 예에 따른 예외 처리가 적용될 수 있다. 또한, 제2 타입 메모리 모듈들(240, 250)에 대해 도 15를 참조하여 설명된 제1 예에 따른 예외 처리가 적용될 수 있다.For example, exception processing according to the second example described with reference to FIG. 18 may be applied to the first type memory modules 220 and 230. Also, exception processing according to the first example described with reference to FIG. 15 may be applied to the second type memory modules 240 and 250.

도 19는 군주 코어가 할당되는 예를 보여준다. 예시적으로, 제1 내지 제4 코어들(CORE1~CORE4) 중 군주 코어가 할당되는 예가 도 19에 도시된다. 도 17 및 도 19를 참조하면, 제1 내지 제4 코어들(CORE1~CORE4)은 예외 방송(S118 단계)에 따라 현재 수행중인 동작들을 중지할 수 있다.19 shows an example where a monarch core is assigned. For example, an example in which the monarch core is allocated among the first to fourth cores CORE1 to CORE4 is illustrated in FIG. 19. 17 and 19, the first to fourth cores CORE1 to CORE4 may stop operations currently being performed according to the exception broadcast (step S118).

그러나 제1 내지 제4 코어들(CORE1~CORE4)이 수행중인 동작들의 종류에 따라, 제1 내지 제4 코어들(CORE1~CORE4)이 동작들을 중지할 수 있는 타이밍들은 다를 수 있다. 예를 들어, 제1 내지 제4 코어들(CORE1~CORE4)이 수행중인 쓰레드들의 중지 포인트들이 서로 다를 수 있다.However, timings at which the first to fourth cores CORE1 to CORE4 may stop the operations may vary according to the types of operations that the first to fourth cores CORE1 to CORE4 are performing. For example, the stopping points of the threads in which the first to fourth cores CORE1 to CORE4 are running may be different.

예시적으로, 제1 내지 제4 코어들(CORE1~CORE4) 중 제1 코어(CORE1)가 가장 먼저 수행중인 동작을 중지하고, 호출에 응답할 수 있다. 가장 먼저 호출에 응답하는 제1 코어(CORE1)는 기계 검사 예외 처리기(MCEH)에 가장 먼저 도달한 것으로 여겨질 수 있다.In exemplary embodiments, the first core CORE1 of the first to fourth cores CORE1 to CORE4 may stop an operation that is being performed first and respond to the call. The first core CORE1, which first responds to the call, may be considered to have reached the machine check exception handler MCEH first.

기계 검사 예외 처리기(MCEH)에 가장 먼저 도달한 제1 코어(CORE1)가 군주 코어(monarchy core)로 지정(또는 할당)될 수 있다. 제1 코어(CORE1)는 기계 검사 예외 처리기(MCEH)를 실행하여, 도 15 또는 도 18을 참조하여 설명된 예외 처리를 수행할 수 있다.The first core CORE1 that first reaches the machine check exception handler MCEH may be designated (or assigned) as a monarchy core. The first core CORE1 may execute the machine check exception processor MCEH to perform the exception processing described with reference to FIG. 15 or 18.

도 20은 나머지 코어들이 관리되는 제1 예를 보여준다. 도 20을 참조하면, 제2 내지 제4 코어들(CORE2~CORE4)은 제1 코어(CORE1)보다 늦게 기계 검사 예외 처리기(MCEH)에 도달할 수 있다. 예시적으로, 제2 내지 제4 코어들(CORE2~CORE4)은 제1 코어(CORE1)가 예외 처리를 완료할 때까지 대기할 수 있다.20 shows a first example in which the remaining cores are managed. Referring to FIG. 20, the second to fourth cores CORE2 to CORE4 may reach the machine check exception processor MCEH later than the first core CORE1. In exemplary embodiments, the second to fourth cores CORE2 to CORE4 may wait until the first core CORE1 completes the exception processing.

제2 내지 제4 코어들(CORE2~CORE4)은 대기하는 코어들일 수 있다. 제1 코어(CORE1)가 예외 처리를 완료하면, 제1 내지 제4 코어들(CORE1~CORE4)은 이전에 수행하던 동작들로 복귀(return)할 수 있다. 예를 들어, 예외 처리가 커널 패닉 또는 시스템 리부트 없이 완료된 때에, 제1 내지 제4 코어들(CORE1~CORE4)은 이전에 수행하던 동작들로 복귀할 수 있다.The second to fourth cores CORE2 to CORE4 may be waiting cores. When the first core CORE1 completes the exception processing, the first to fourth cores CORE1 to CORE4 may return to previously performed operations. For example, when the exception processing is completed without kernel panic or system reboot, the first to fourth cores CORE1 to CORE4 may return to operations previously performed.

도 18을 참조하여 설명된 예외 처리와 같이, 예외 처리가 커널 패닉 또는 시스템 리부트 없이 완료되면, 제2 내지 제4 코어들(CORE2~CORE4)이 대기하는 것은 자원들의 낭비를 초래한다. 이를 방지하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(200)은 대기하는 코어들을 제거하는 새로운 알고리즘을 제공한다.As with the exception handling described with reference to FIG. 18, if the exception handling is completed without a kernel panic or system reboot, waiting for the second to fourth cores CORE2 to CORE4 causes a waste of resources. To prevent this, the memory system 200 according to an embodiment of the present invention provides a new algorithm for removing waiting cores.

도 21은 본 발명의 실시 예에 따라 예외 처리를 위해 코어들이 관리되는 예를 보여준다. 도 17 및 도 21을 참조하면, S131 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 예외 방송(S118 단계)을 통해 코어들(CORE1~COREn)을 호출할 수 있다.21 shows an example of managing cores for exception handling according to an embodiment of the present invention. 17 and 21, in step S131, the operating system OS or the machine check exception processor MCEH may call cores CORE1 to COREn through an exception broadcast (step S118).

S232 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 코어의 도착을 검출할 수 있다. 예를 들어, 특정한 코어가 수행중인 동작을 중지하고 호출에 응답할 때, 특정한 코어가 도착한 것으로 여겨질 수 있다. S430 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 도착한 코어가 첫 번째 코어인지 판단할 수 있다.In step S232, the operating system (OS) or machine check exception handler (MCEH) may detect the arrival of the core. For example, when a particular core stops executing an action and responds to a call, it may be considered that the particular core has arrived. In operation S430, the operating system (OS) or the machine check exception processor (MCEH) may determine whether the arrived core is the first core.

S430 단계에서, 도착한 코어가 첫 번째 코어이면, S440 단계가 수행된다. S440 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 도착한 코어를 기계 검사 예외 처리에 할당(또는 지정)할 수 있다. 예를 들어, 도착한 코어는 기계 검사 예외 처리기(MCEH)의 코드들을 실행함으로써 예외 처리를 수행할 수 있다. 예를 들어, 도착한 코어는 도 15 또는 도 18을 참조하여 설명된 방법에 따라 예외 처리를 수행할 수 있다.In step S430, if the arrived core is the first core, step S440 is performed. In operation S440, the operating system (OS) or the machine check exception handler (MCEH) may allocate (or designate) the arrived core to the machine check exception processing. For example, the arriving core may perform exception handling by executing the code of the machine check exception handler (MCEH). For example, the arriving core may perform exception processing in accordance with the method described with reference to FIG. 15 or 18.

S430 단계에서, 도착한 코어가 첫 번째 코어가 아니면, S450 단계가 수행된다. S450 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 도착한 코어를 중지된 동작으로 복귀시킬 수 있다. 도착한 코어는 중지된 동작으로 복귀하여 중지된 동작을 재개할 수 있다.In step S430, if the arrived core is not the first core, step S450 is performed. In operation S450, the operating system OS or the machine check exception processor MCEH may return the arrived core to the stopped operation. The arriving core may return to the suspended operation and resume the suspended operation.

도 22는 나머지 코어들이 관리되는 제2 예를 보여준다. 예시적으로, 도 19에서 제1 코어(CORE1)가 군주 코어가 지정된 후에 나머지 코어들이 관리되는 예가 도 22에 도시된다. 도 13 및 도 22를 참조하면, 제2 내지 제4 코어들(CORE2~CORE4)은 제1 코어(CORE1)보다 늦게 기계 검사 예외 처리기(MCEH)에 도달할 수 있다.22 shows a second example in which the remaining cores are managed. For example, in FIG. 19, an example in which the remaining cores are managed after the first core CORE1 is designated as the monarch core is illustrated in FIG. 22. 13 and 22, the second to fourth cores CORE2 to CORE4 may reach the machine check exception processor MCEH later than the first core CORE1.

예시적으로, 제2 코어(CORE2)가 제1 코어(CORE1) 다음인 두 번째로 기계 검사 예외 처리기(MCEH)에 도달할 수 있다. 제1 코어(CORE1)가 이미 군주 코어로 지정되었음을 인식함에 따라, 제2 코어(CORE2)는 중지된 동작으로 복귀하고, 그리고 중지된 동작을 재개할 수 있다(도 21의 S450 단계 참조). 예를 들어, 제2 코어(CORE2)는 중지된 동작의 중지 포인트로부터, 중지된 동작의 코드들을 실행할 수 있다.In exemplary embodiments, the second core CORE2 may reach the second machine inspection exception handler MCEH after the first core CORE1. Recognizing that the first core CORE1 is already designated as the monarch core, the second core CORE2 may return to the stopped operation and resume the stopped operation (see step S450 of FIG. 21). For example, the second core CORE2 may execute codes of the stopped operation from the stop point of the stopped operation.

마찬가지로, 제3 및 제4 코어들(CORE3, CORE4)은 제1 코어(CORE1)보다 늦게 기계 검사 예외 처리기(MCEH)에 도달할 수 있다. 제1 코어(CORE1)가 이미 군주 코어로 지정되었음을 인식함에 따라, 제3 및 제4 코어들(CORE3, CORE4)은 중지된 동작들로 각각 복귀하고, 그리고 중지된 동작들을 각각 재개할 수 있다(도 21의 S450 단계 참조).Similarly, the third and fourth cores CORE3 and CORE4 may reach the machine check exception handler MCEH later than the first core CORE1. Recognizing that the first core CORE1 is already designated as the monarch core, the third and fourth cores CORE3 and CORE4 may return to the suspended operations, respectively, and resume the suspended operations, respectively ( See step S450 of FIG. 21).

도 18을 참조하여 설명된 바와 같이, 제1 메모리 모듈(220)에 대한 예외 처리 시에, 커널 패닉 또는 시스템 리부트는 발생하지 않는다. 제1 메모리 모듈(220)에 대한 예외 처리가 완료되면, 군주 코어는 중지된 동작으로 복귀한다. 제1 메모리 모듈(220)에 대한 예외 처리 시에 커널 패닉 또는 시스템 리부트가 발생하지 않으므로, 제2 내지 제4 코어들(CORE2~CORE4)이 예외 처리의 완료를 대기할 필요가 없다.As described with reference to FIG. 18, during exception processing for the first memory module 220, no kernel panic or system reboot occurs. When the exception processing for the first memory module 220 is completed, the monarch core returns to the stopped operation. Since the kernel panic or the system reboot does not occur during the exception processing for the first memory module 220, the second to fourth cores CORE2 to CORE4 need not wait for the completion of the exception processing.

따라서, 제1 코어(CORE1)가 예외 처리를 수행하는 동안 제2 내지 제4 코어들(CORE2~CORE4)은 중지된 동작들로 복귀할 수 있다. 제2 내지 제4 코어들(CORE2~CORE4)이 중지된 동작들로 더 일찍 복귀함으로써, 제2 내지 제4 코어들(CORE2~CORE4)의 자원들의 낭비가 방지되고, 메모리 시스템(200)의 성능이 향상된다.Therefore, the second to fourth cores CORE2 to CORE4 may return to suspended operations while the first core CORE1 performs the exception processing. By returning earlier to the stopped operations of the second to fourth cores CORE2 to CORE4, waste of resources of the second to fourth cores CORE2 to CORE4 is prevented, and the performance of the memory system 200 is reduced. This is improved.

예시적으로, 제1 타입 메모리 모듈들(220, 230)은 데이터를 제2 타입 메모리들(222, 232)에 저장(또는 백업)하며, 매체 제어기들(223, 233)은 제2 타입 메모리들(222, 232)에 대한 별도의 에러 정정 수단들을 구비한다. 따라서, 제1 타입 메모리 모듈들(220, 230)은 에러 없는 데이터를 보장할 수 있다. In exemplary embodiments, the first type memory modules 220 and 230 store (or back up) data in the second type memories 222 and 232, and the media controllers 223 and 233 may store the second type memories. Separate error correction means for 222, 232. Accordingly, the first type memory modules 220 and 230 may guarantee error free data.

즉, 도 18을 참조하여 설명된 바와 같이, 예외 처리 시에 커널 패닉 또는 시스템 리부트가 발생하지 않는 방법이 제1 타입 메모리 모듈들(220, 230)에 적용될 수 있다. 또한, 도 22를 참조하여 설명된 바와 같이, 제1 코어(CORE1)가 예외 처리를 수행하는 동안 제2 내지 제4 코어들(CORE2~CORE4)이 중지된 동작들로 복귀하는 방법이 제1 타입 메모리 모듈들(220, 230)에 적용될 수 있다.That is, as described with reference to FIG. 18, a method in which kernel panic or system reboot does not occur during exception handling may be applied to the first type memory modules 220 and 230. In addition, as described with reference to FIG. 22, the method of returning to the operations in which the second to fourth cores CORE2 to CORE4 are suspended while the first core CORE1 performs exception processing is the first type. It may be applied to the memory modules 220 and 230.

반면, 제2 타입 메모리 모듈들(240, 250)은 제1 타입 메모리들(241, 251)만을 구비하며, 제1 타입 메모리들(241, 251)에 대한 자체적인 에러 정정 수단을 구비하지 않을 수 있다. 따라서, 제2 타입 메모리들(241, 251)에 저장된 데이터에서 정정 불가능한 에러가 발생할 수 있다.On the other hand, the second type memory modules 240 and 250 may include only the first type memories 241 and 251 and may not include its own error correction means for the first type memories 241 and 251. have. Therefore, an uncorrectable error may occur in data stored in the second type memories 241 and 251.

즉, 도 15를 참조하여 설명된 바와 같이, 예외 처리 시에 커널 패닉 또는 시스템 리부트가 발생하는 방법이 제2 타입 메모리 모듈들(240, 250)에 적용될 수 있다. 또한, 도 20을 참조하여 설명된 바와 같이, 제1 코어(CORE1)가 예외 처리를 수행하는 동안 제2 내지 제4 코어들(CORE2~CORE4)은 커널 패닉 또는 시스템 리부트에 대비하여 대기하는 방법이 제1 타입 메모리 모듈들(220, 230)에 적용될 수 있다.That is, as described with reference to FIG. 15, a method of generating a kernel panic or a system reboot during exception handling may be applied to the second type memory modules 240 and 250. In addition, as described with reference to FIG. 20, the second to fourth cores CORE2 to CORE4 wait for a kernel panic or system reboot while the first core CORE1 performs an exception processing. The first type memory modules 220 and 230 may be applied.

도 23은 제1 코어(CORE1)가 예외 처리를 수행하는 동안 다른 예외 처리가 발생하는 예를 보여준다. 도 13 및 도 23을 참조하면, 제1 메모리 모듈(220)에서 발생한 정정 불가능한 제1 에러(UE1)에 대해 제1 코어(CORE1)가 예외 처리를 수행하는 동안, 제2 내지 제4 메모리 모듈들(230~250) 중 하나의 메모리 모듈에서 정정 불가능한 제2 에러(UE2)가 발생할 수 있다.FIG. 23 shows an example in which other exception processing occurs while the first core CORE1 performs exception processing. 13 and 23, while the first core CORE1 performs an exception process on the uncorrectable first error UE1 occurring in the first memory module 220, the second to fourth memory modules are processed. An uncorrectable second error UE2 may occur in one of the memory modules 230 to 250.

도 17을 참조하여 설명된 바와 같이, 정정 불가능한 제2 에러(UE2)에 대해 예외 방송(S118)이 수행되어, 코어들(CORE1~CORE4)이 호출될 수 있다. 예외 처리를 수행하는 제1 코어(CORE1)는 호출에 응답하지 않을 수 있다. 예외 처리를 수행하지 않는 제2 내지 제4 코어들(CORE2~CORE4)은 호출에 응답할 수 있다.As described with reference to FIG. 17, the exception broadcast S118 may be performed on the second non-correctable error UE2, and cores CORE1 to CORE4 may be called. The first core CORE1 that performs exception processing may not respond to the call. The second to fourth cores CORE2 to CORE4 that do not perform exception processing may respond to the call.

예를 들어, 제4 코어(CORE4)가 호출에 가장 먼저 응답함으로써, 기계 검사 예외 처리기(MCEH)에 가장 먼저 도달할 수 있다. 따라서, 제4 코어(CORE4)가 정정 불가능한 제2 에러(UE2)에 대한 군주 코어로 지정(또는 할당)될 수 있다. 제4 코어(CORE4)는 정정 불가능한 제2 에러(UE2)에 대해 예외 처리를 수행할 수 있다.For example, the fourth core CORE4 may respond first to the call, thereby reaching the machine check exception handler MCEH first. Therefore, the fourth core CORE4 may be designated (or assigned) as the monarch core for the second error UE2 that cannot be corrected. The fourth core CORE4 may perform exception processing on the second error UE2 that cannot be corrected.

도 24는 도 23의 상태에 후속하여 제1 코어(CORE1)가 예외 처리를 완료하는 예를 보여준다. 도 13 및 도 24를 참조하면, 제4 코어(CORE4)가 정정 불가능한 제2 에러(UE2)에 대해 예외 처리를 수행하는 동안, 제1 코어(CORE1)가 예외 처리를 완료할 수 있다. 예외 처리가 완료되면, 제1 코어(CORE1)는 제4 코어(CORE4)가 예외 처리를 수행하는 것과 무관하게 중지된 동작(또는 이전에 수행하던 동작)으로 복귀할 수 있다.FIG. 24 shows an example in which the first core CORE1 completes the exception processing following the state of FIG. 23. Referring to FIGS. 13 and 24, the first core CORE1 may complete the exception processing while the fourth core CORE4 performs exception processing on the second error UE2 that cannot be corrected. When the exception processing is completed, the first core CORE1 may return to the stopped operation (or an operation previously performed) regardless of whether the fourth core CORE4 performs the exception processing.

제4 코어(CORE4)의 예외 처리가 완료될 때까지 대기하지 않고 제1 코어(CORE1)가 중지된 동작으로 복귀하면, 메모리 시스템(200)의 자원 낭비가 더 방지되고 그리고 메모리 시스템(200)의 성능이 더 향상될 수 있다.If the first core CORE1 returns to the stopped operation without waiting until the exception processing of the fourth core CORE4 is completed, resource waste of the memory system 200 is further prevented, and Performance can be further improved.

도 25는 코어들(CORE1~COREn) 또는 프로세서(210)가 생성하는 에러 신호(CAT_ERR_N)의 제1 예를 보여준다. 도 13 및 도 25를 참조하면, 에러 신호(CAT_ERR_N)는 제1 선(C1) 또는 제2 선(C2)의 형태로 제어될 수 있다.FIG. 25 illustrates a first example of an error signal CAT_ERR_N generated by the cores CORE1 to COREn or the processor 210. 13 and 25, the error signal CAT_ERR_N may be controlled in the form of the first line C1 or the second line C2.

예를 들어, 메모리 제어기(211)가 정정 불가능한 에러를 검출한 때에, 에러 신호(CAT_ERR_N)는 하이 레벨로부터 로우 레벨로 천이할 수 있다. 정정 불가능한 에러가 재해적 에러가 아닌 치명적 에러이면, 에러 신호(CAT_ERR_N)는 제1 선(C1)과 같이 로우 레벨로부터 하이 레벨로 천이할 수 있다.For example, when the memory controller 211 detects an uncorrectable error, the error signal CAT_ERR_N may transition from the high level to the low level. If the uncorrectable error is a fatal error that is not a catastrophic error, the error signal CAT_ERR_N may transition from the low level to the high level like the first line C1.

정정 불가능한 에러가 재해적 에러이면, 제2 선(C2)과 같이 에러 신호(CAT_ERR_N)는 시스템 리부트가 수행될 때까지 로우 레벨로 유지될 수 있다. 정정 불가능한 에러가 제1 타입 메모리 모듈들(220, 230)에서 발생한 것이면, 도 18을 참조하여 설명된 바와 같이 커널 패닉 또는 시스템 리부트가 발생하지 않는다.If the uncorrectable error is a disaster, the error signal CAT_ERR_N, like the second line C2, may be maintained at a low level until a system reboot is performed. If an uncorrectable error occurs in the first type memory modules 220 and 230, no kernel panic or system reboot occurs as described with reference to FIG. 18.

예를 들어, 제1 타입 메모리 모듈들(220, 230)에 대한 정정 불가능한 에러는 치명적 에러 또는 에러 없음으로 처리될 수 있다. 따라서, 제1 선(C1)을 참조하여 설명된 바와 같이 에러 신호(CAT_ERR_N)는 로우 레벨로부터 하이 레벨로 천이할 수 있다.For example, an uncorrectable error for the first type memory modules 220 and 230 may be treated as a fatal error or no error. Therefore, as described with reference to the first line C1, the error signal CAT_ERR_N may transition from a low level to a high level.

도 26은 코어들(CORE1~COREn) 또는 프로세서(210)가 생성하는 에러 신호(CAT_ERR_N)의 제2 예를 보여준다. 도 13 및 도 26을 참조하면, 에러 신호(CAT_ERR_N)는 제3 선(C3) 또는 제4 선(C4)의 형태로 제어될 수 있다.FIG. 26 illustrates a second example of the error signals CAT_ERR_N generated by the cores CORE1 to COREn or the processor 210. 13 and 26, the error signal CAT_ERR_N may be controlled in the form of the third line C3 or the fourth line C4.

예를 들어, 메모리 제어기(211)가 정정 불가능한 에러를 검출하고 그리고 정정 불가능한 에러가 재해적인 에러가 아닌 치명적 에러일 때, 제3 선(C3)과 같이 에러 신호(CAT_ERR_N)는 하이 레벨을 유지할 수 있다.For example, when the memory controller 211 detects an uncorrectable error and the uncorrectable error is a fatal error rather than a catastrophic error, the error signal CAT_ERR_N, like the third line C3, may maintain a high level. have.

메모리 제어기(211)가 정정 불가능한 에러를 검출하고 그리고 정정 불가능한 에러가 재해적인 에러일 때, 제4 선(C4)과 같이 에러 신호(CAT_ERR_N)는 하이 레벨로부터 로우 레벨로 천이할 수 있다. 시스템 리부트가 수행되면, 에러 신호(CAT_ERR_N)는 하이 레벨로 복원될 수 있다.When the memory controller 211 detects an uncorrectable error and the uncorrectable error is a disaster, the error signal CAT_ERR_N may transition from the high level to the low level as in the fourth line C4. When the system reboot is performed, the error signal CAT_ERR_N may be restored to a high level.

예를 들어, 제1 타입 메모리 모듈들(220, 230)에 대한 정정 불가능한 에러는 치명적 에러 또는 에러 없음으로 처리될 수 있다. 따라서, 제3 선(C3)을 참조하여 설명된 바와 같이 에러 신호(CAT_ERR_N)는 하이 레벨을 유지할 수 있다.For example, an uncorrectable error for the first type memory modules 220 and 230 may be treated as a fatal error or no error. Therefore, as described with reference to the third line C3, the error signal CAT_ERR_N may maintain a high level.

도 27은 본 발명의 실시 예에 따른 메모리 시스템(300)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(300)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(300)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.27 is a block diagram illustrating a memory system 300 according to an exemplary embodiment of the inventive concept. For example, the memory system 300 may include a server such as an application server, a client server, and a data server. As another example, memory system 300 may include a personal computer or workstation.

도 27을 참조하면, 메모리 시스템(300)은 프로세서(310), 제1 내지 제4 메모리 모듈들(320~350), 루트 컴플렉스(360), 그리고 스토리지 장치(370)를 포함한다. 프로세서(310)는 메모리 시스템(300)의 구성 요소들 및 구성 요소들의 동작들을 제어할 수 있다. 프로세서(310)는 운영체제 및 응용들을 실행하고, 운영체제 또는 응용들을 이용하여 데이터를 처리할 수 있다.Referring to FIG. 27, the memory system 300 includes a processor 310, first to fourth memory modules 320 to 350, a root complex 360, and a storage device 370. The processor 310 may control the components of the memory system 300 and operations of the components. The processor 310 may execute an operating system and applications, and process data using the operating system or applications.

프로세서(310)는 메모리 제어기(311) 및 캐시 메모리(312)를 포함할 수 있다. 메모리 제어기(311)는 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 제1 내지 제4 메모리 모듈들(320~350)을 액세스할 수 있다. 캐시 메모리(312)는 정적 랜덤 액세스 메모리(SRAM)와 같은 고속의 메모리를 포함할 수 있다.The processor 310 may include a memory controller 311 and a cache memory 312. The memory controller 311 may access the first through fourth memory modules 320 ˜ 350 through the main channels MCH and the auxiliary channels SCH. Cache memory 312 may include high speed memory, such as static random access memory (SRAM).

메모리 제어기(311)는 레지스터(R)를 포함할 수 있다. 레지스터(R)는 메모리 제어기(311)가 제1 내지 제4 메모리 모듈들(320~350)을 액세스하는 데에 필요한 다양한 정보들을 저장할 수 있다. 메모리 제어기(311)는 레지스터(R)에 저장된 정보를 참조하여 제1 내지 제4 메모리 모듈들(320~350)을 액세스할 수 있다.The memory controller 311 may include a register R. The register R may store various information necessary for the memory controller 311 to access the first to fourth memory modules 320 to 350. The memory controller 311 may access the first to fourth memory modules 320 to 350 by referring to the information stored in the register R. Referring to FIG.

제1 내지 제4 메모리 모듈들(320~350)은 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 메모리 제어기(311)에 연결될 수 있다. 메인 채널들(MCH)은 메모리 모듈들(320~350)(예를 들어, 반도체 메모리 모듈들)에 데이터를 저장하거나 데이터를 읽기 위해 사용되는 채널들일 수 있다. 메인 채널들(MCH)은 제1 내지 제4 메모리 모듈들(320~350)에 대해 각각 제공되는 채널들을 포함할 수 있다.The first to fourth memory modules 320 to 350 may be connected to the memory controller 311 through the main channels MCH and the auxiliary channels SCH. The main channels MCH may be channels used to store data or read data in the memory modules 320 to 350 (eg, semiconductor memory modules). The main channels MCH may include channels provided for the first to fourth memory modules 320 to 350, respectively.

보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(320~350)에 데이터를 저장하거나 읽는 것 외에, 제1 내지 제4 메모리 모듈들(320~350)과 연관된 추가적인 기능들을 제공할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(320~350)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(311)에 제공할 수 있다. 보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(320~350)에 대해 각각 제공되는 채널들을 포함할 수 있다.The auxiliary channels SCH may provide additional functions associated with the first to fourth memory modules 320 to 350 in addition to storing or reading data in the first to fourth memory modules 320 to 350. have. For example, the first to fourth memory modules 320 to 350 may provide their own information to the memory controller 311 through the auxiliary channels SCH. The auxiliary channels SCH may include channels provided for the first to fourth memory modules 320 to 350, respectively.

제1 내지 제4 메모리 모듈들(320~350)은 메모리 시스템(300)의 메인 메모리로 사용될 수 있다. 제1 내지 제4 메모리 모듈들(320~350)은 DIMM(Dual In-line Memory Module), RDIMM(Registered DIMM), LRDIMM(Load Reduced DIMM) 등과 같은 메모리 모듈의 표준들 중 하나에 따라 메모리 제어기(311)와 통신할 수 있다.The first to fourth memory modules 320 to 350 may be used as a main memory of the memory system 300. The first to fourth memory modules 320 to 350 may include a memory controller according to one of standards of a memory module such as a dual in-line memory module (DIMM), a registered DIMM (RDIMM), a load reduced DIMM (LRDIMM), or the like. 311).

루트 컴플렉스(360)는 프로세서(310)가 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(360)에 스토리지 장치(370)가 연결될 수 있다. 스토리지 장치(370)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.The root complex 360 can provide channels through which the processor 310 accesses various peripheral devices. For example, the storage device 370 may be connected to the root complex 360. The storage device 370 may include a hard disk drive, an optical disk drive, a solid state drive, and the like.

예시적으로, 루트 컴플렉스(360)에 연결되는 주변 장치들은 스토리지 장치(370)로 한정되지 않는다. 예를 들어, 루트 컴플렉스(360)는 모뎀, 그래픽 프로세싱 유닛(GPU), 뉴로모픽(Neuromophic) 프로세서 등과 같은 다양한 장치들에 연결될 수 있다.In exemplary embodiments, peripheral devices connected to the root complex 360 are not limited to the storage device 370. For example, the root complex 360 can be connected to various devices, such as a modem, graphics processing unit (GPU), neuromorphic processor, and the like.

프로세서(310)는 캐시 메모리(312), 메인 메모리인 제1 내지 제4 메모리 모듈들(320~350), 그리고 스토리지 장치(370)를 계층적으로 관리할 수 있다. 예를 들어, 프로세서(310)는 스토리지 장치(370)에 저장된 데이터 중 필요한 데이터를 제1 내지 제4 메모리 모듈들(320~350)을 포함하는 메인 메모리에 로드할 수 있다. 프로세서(310)는 메인 메모리에 저장된 데이터 중 백업이 필요한 데이터를 스토리지 장치(370)로 플러시(flush)할 수 있다.The processor 310 may hierarchically manage the cache memory 312, the first to fourth memory modules 320 to 350, which are main memories, and the storage device 370. For example, the processor 310 may load necessary data among data stored in the storage device 370 into a main memory including the first to fourth memory modules 320 to 350. The processor 310 may flush data to be backed up to the storage device 370 among data stored in the main memory.

제1 내지 제4 메모리 모듈들(320~350)을 포함하는 메인 메모리의 저장 영역 중 일부는 캐시 메모리(312)에 사상될 수 있다. 프로세서(310)는 메인 메모리의 특정한 저장 공간을 액세스할 필요가 있을 때, 특정한 저장 공간이 캐시 메모리(312)에 사상되어 있는지 판단할 수 있다.Some of the storage areas of the main memory including the first to fourth memory modules 320 to 350 may be mapped to the cache memory 312. When the processor 310 needs to access a specific storage space of the main memory, the processor 310 may determine whether the specific storage space is mapped to the cache memory 312.

특정한 저장 공간이 캐시 메모리(312)에 사상되어 있으면, 프로세서(310)는 캐시 메모리(312)의 특정한 저장 공간을 액세스할 수 있다. 특정한 저장 공간이 캐시 메모리에 사상되어 있지 않으면, 프로세서(310)는 제1 내지 제4 메모리 모듈들(320~350)의 특정한 저장 공간을 캐시 메모리(312)에 사상할(또는 가져올(fetch)) 수 있다.If a particular storage space is mapped to the cache memory 312, the processor 310 can access the particular storage space of the cache memory 312. If a particular storage space is not mapped to the cache memory, the processor 310 maps (or fetches) the specific storage space of the first to fourth memory modules 320 to 350 to the cache memory 312. Can be.

캐시 메모리(312)의 저장 공간이 부족하면, 프로세서(310)는 기존에 캐시 메모리(312)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(310)는 갱신된 데이터를 제1 내지 제4 메모리 모듈들(320~350)로 플러시할 수 있다.If the storage space of the cache memory 312 is insufficient, the processor 310 may release the storage space previously mapped to the cache memory 312. When data of the storage space to be released is updated, the processor 310 may flush the updated data to the first to fourth memory modules 320 to 350.

제1 내지 제4 메모리 모듈들(320~350)은 이종의 메모리 모듈들을 포함할 수 있다. 예를 들어, 제1 및 제2 메모리 모듈들(320, 330)은 제1 타입 메모리 모듈들일 수 있다. 제3 및 제4 메모리 모듈들(340, 350)은 제2 타입 메모리 모듈들일 수 있다.The first to fourth memory modules 320 to 350 may include heterogeneous memory modules. For example, the first and second memory modules 320 and 330 may be first type memory modules. The third and fourth memory modules 340 and 350 may be second type memory modules.

제1 메모리 모듈(320)은 제1 타입 메모리(321), 제2 타입 메모리(322), 매체 제어기(323), 그리고 직렬 프레즌스 검출(SPD)(Serial Presence Detect) 장치(325)를 포함할 수 있다. 제2 메모리 모듈(330)은 제1 타입 메모리(331), 제2 타입 메모리(332), 매체 제어기(333), 그리고 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(335)를 포함할 수 있다. 이하에서, 제1 메모리 모듈(320)을 참조하여 제1 타입 메모리 모듈들(320, 330)이 설명된다.The first memory module 320 may include a first type memory 321, a second type memory 322, a media controller 323, and a serial presence detection (SPD) device 325. have. The second memory module 330 may include a first type memory 331, a second type memory 332, a media controller 333, and a serial presence detection (SPD) device 335. . Hereinafter, the first type memory modules 320 and 330 will be described with reference to the first memory module 320.

제1 타입 메모리(321)는 고속의 휘발성 메모리, 예를 들어 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 제2 타입 메모리(322)는 제1 타입 메모리(321)보다 느린 속도를 갖고, 제1 타입 메모리(321)보다 큰 저장 용량을 갖는 불휘발성 메모리를 포함할 수 있다. 예를 들어, 제2 타입 메모리(322)는 플래시 메모리, 상 변화 메모리(Phase Change Memory), 강유전체 메모리(Ferroelectric Memory), 자기 메모리(Magnetic Memory), 저항성 메모리(Resistive Memory) 등을 포함할 수 있다.The first type memory 321 may include high speed volatile memory, for example dynamic random access memory (DRAM). The second type memory 322 may include a nonvolatile memory having a slower speed than the first type memory 321 and having a larger storage capacity than the first type memory 321. For example, the second type memory 322 may include a flash memory, a phase change memory, a ferroelectric memory, a magnetic memory, a resistive memory, and the like. .

매체 제어기(323)는 메인 채널들(MCH) 중 대응하는 채널을 통해 전달되는 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)로부터의 액세스 명령을 제1 타입 메모리(321) 또는 제2 타입 메모리(322)에 전달할 수 있다. 액세스 명령에 따라, 매체 제어기(323)는 메인 채널들(MCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)와 데이터를 교환할 수 있다.The media controller 323 receives the access command from an external host device, for example, the memory controller 311 or the processor 310, transmitted through a corresponding one of the main channels MCH, and the first type memory 321. Alternatively, the data may be transferred to the second type memory 322. According to the access command, the media controller 323 may exchange data with an external host device, for example, the memory controller 311 or the processor 310 through a corresponding channel among the main channels MCH.

매체 제어기(323)는 제2 타입 메모리(322)의 저장 용량 또는 저장 공간을 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공할 수 있다. 매체 제어기(323)는 제1 타입 메모리(321)를 제2 타입 메모리(322)의 캐시 메모리로 사용할 수 있다. The media controller 323 may provide a storage capacity or a storage space of the second type memory 322 to an external host device, for example, the memory controller 311 or the processor 310. The media controller 323 may use the first type memory 321 as a cache memory of the second type memory 322.

예를 들어, 매체 제어기(323)는 제2 타입 메모리(322)의 저장 공간 중 일부 저장 공간을 제1 타입 메모리(321)에 사상할 수 있다. 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(321)에 사상되어 있으면, 매체 제어기(323)는 액세스 명령을 제1 타입 메모리(321)로 전달할 수 있다.For example, the media controller 323 may map some of the storage spaces of the second type memory 322 to the first type memory 321. If the storage space associated with an access command from an external host device, such as the memory controller 311 or the processor 310, is mapped to the first type memory 321, the media controller 323 issues the first access command. It may be transferred to the type memory 321.

외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(321)에 사상되어 있지 않으면, 매체 제어기(323)는 해당 저장 공간을 제2 타입 메모리(322)로부터 제1 타입 메모리(321)로 사상(또는 백업)할 수 있다.If the storage space associated with an access command from an external host device, for example, the memory controller 311 or the processor 310, is not mapped in the first type memory 321, the media controller 323 may not be able to store the storage space. Mapping (or backup) from the second type memory 322 to the first type memory 321 may be performed.

제1 타입 메모리(321)의 저장 공간이 부족하면, 매체 제어기(323)는 기존에 제1 타입 메모리(321)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(323)는 갱신된 데이터를 제2 타입 메모리(322)로 플러시할 수 있다.If the storage space of the first type memory 321 is insufficient, the media controller 323 may release the storage space previously mapped to the first type memory 321. If data of the storage space to be released is updated, the media controller 323 may flush the updated data to the second type memory 322.

SPD 장치(325)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)와 통신할 수 있다. 예를 들어, 제1 메모리 모듈(320)이 초기화될 때에, SPD 장치(325)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공할 수 있다.The SPD device 325 may communicate with an external host device, for example, the memory controller 311 or the processor 310 through a corresponding channel among the auxiliary channels SCH. For example, when the first memory module 320 is initialized, the SPD device 325 transmits the stored information to an external host device, for example, the memory controller 311 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 310 may provide the processor 310 with the processor 310.

예를 들어, SPD 장치(325)는 제1 메모리 모듈(320)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(325)는 제2 타입 메모리(322)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(325)는 제2 타입 메모리(322)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공할 수 있다.For example, the SPD device 325 may store information about a storage capacity provided to an external host device, for example, the memory controller 311 or the processor 310 as a storage space of the first memory module 320. have. For example, the SPD device 325 may store information about a storage capacity of the second type memory 322. Upon initialization, the SPD device 325 may provide information about the storage capacity of the second type memory 322 to an external host device, for example, the memory controller 311 or the processor 310.

예를 들어, SPD 장치(325)에 저장되는 용량 정보는 제2 타입 메모리(322)의 사용자 용량에 대한 정보를 포함할 수 있다. 제2 타입 메모리(322)의 저장 용량은 사용자 용량, 메타 용량, 그리고 예비 용량을 포함할 수 있다. 사용자 용량은 제2 타입 메모리(322)가 외부의 호스트 장치, 예를 들어 메모리 제어기(311)에 제공하는 저장 용량일 수 있다.For example, the capacity information stored in the SPD device 325 may include information about a user capacity of the second type memory 322. The storage capacity of the second type memory 322 may include a user capacity, a meta capacity, and a spare capacity. The user capacity may be a storage capacity provided by the second type memory 322 to an external host device, for example, the memory controller 311.

메타 용량은 제2 타입 메모리(322)를 관리하기 위한 다양한 메타 정보가 저장되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(311)에 공개되지 않는 저장 용량일 수 있다. 예비 용량은 제2 타입 메모리(322)를 관리하기 위해 확보되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(311)에 공개되지 않는 저장 용량일 수 있다.The meta capacity stores various meta information for managing the second type memory 322 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 311. The spare capacity is reserved for managing the second type memory 322 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 311.

SPD 장치(325)에 저장된 용량 정보는 제2 타입 메모리(322)의 사용자 용량에 대한 정보를 포함할 수 있다. 이하에서, 별도로 명시되지 않으면, 제2 타입 메모리(322)의 용량은 제2 타입 메모리(322)의 사용자 용량을 가리키는 것으로 이해될 수 있다.The capacity information stored in the SPD device 325 may include information about a user capacity of the second type memory 322. Hereinafter, unless otherwise specified, it may be understood that the capacity of the second type memory 322 refers to the user capacity of the second type memory 322.

제3 메모리 모듈(340)은 제1 타입 메모리(341) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(345)를 포함할 수 있다. 제4 메모리 모듈(350)은 제1 타입 메모리(351) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(355)를 포함할 수 있다. 이하에서, 제3 메모리 모듈(340)을 참조하여 제2 타입 메모리 모듈들(340, 350)이 설명된다.The third memory module 340 may include a first type memory 341 and a serial presence detection (SPD) device 345. The fourth memory module 350 may include a first type memory 351 and a serial presence detection (SPD) device 355. Hereinafter, the second type memory modules 340 and 350 will be described with reference to the third memory module 340.

제1 타입 메모리(341)는 제1 메모리 모듈(320)의 제1 타입 메모리(321)와 마찬가지로 동적 랜덤 액세스 메모리를 포함할 수 있다. SPD 장치(345)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)와 통신할 수 있다. 예를 들어, 제3 메모리 모듈(340)이 초기화될 때에, SPD 장치(345)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공할 수 있다.The first type memory 341 may include a dynamic random access memory like the first type memory 321 of the first memory module 320. The SPD device 345 may communicate with an external host device, for example, the memory controller 311 or the processor 310 through a corresponding channel among the auxiliary channels SCH. For example, when the third memory module 340 is initialized, the SPD device 345 transmits the stored information to an external host device, for example, the memory controller 311 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 310 may provide the processor 310 with the processor 310.

예를 들어, SPD 장치(325)는 제3 메모리 모듈(340)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(345)는 제1 타입 메모리(341)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(345)는 제1 타입 메모리(341)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(311) 또는 프로세서(310)에 제공할 수 있다.For example, the SPD device 325 may store information on a storage capacity provided to an external host device, for example, the memory controller 311 or the processor 310 as a storage space of the third memory module 340. have. For example, the SPD device 345 may store information about a storage capacity of the first type memory 341. Upon initialization, the SPD device 345 may provide information about the storage capacity of the first type memory 341 to an external host device, for example, the memory controller 311 or the processor 310.

메모리 시스템(300)에 전원이 공급되면, 메모리 제어기(311)는 제1 내지 제4 메모리 모듈들(320~350)과 초기화를 수행할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(320~350)의 SPD 장치들(325~355)은 보조 채널들(SCH)을 통해 메모리 제어기(311)에 각각 용량 정보를 제공할 수 있다.When power is supplied to the memory system 300, the memory controller 311 may perform initialization with the first to fourth memory modules 320 to 350. For example, the SPD devices 325 to 355 of the first to fourth memory modules 320 to 350 may provide capacity information to the memory controller 311 through auxiliary channels SCH, respectively.

제1 타입 메모리 모듈들(320, 330)의 SPD 장치들(325, 335)은 각각 제2 타입 메모리들(322, 332)의 저장 용량들을 메모리 제어기(311)에 제공할 수 있다. 제2 타입 메모리 모듈들(340, 350)의 SPD 장치들(345, 355)은 각각 제1 타입 메모리들(341, 351)의 저장 용량들을 메모리 제어기(311)에 제공할 수 있다. 예를 들어, 메모리 제어기(311)는 SPD 장치들(325~355)로부터 저장 용량들을 각각 읽을 수 있다.The SPD devices 325 and 335 of the first type memory modules 320 and 330 may provide the storage controllers of the second type memories 322 and 332 to the memory controller 311, respectively. The SPD devices 345 and 355 of the second type memory modules 340 and 350 may provide the storage controllers of the first type memories 341 and 351 to the memory controller 311, respectively. For example, the memory controller 311 may read storage capacities from the SPD devices 325 to 355, respectively.

상술된 실시 예에서, 루트 컴플렉스(360)에 스토리지 장치(370)가 연결되는 것으로 도시된다. 그러나 루트 컴플렉스(360)에 연결되는 장치는 스토리지 장치(370)로 한정되지 않는다.In the above-described embodiment, the storage device 370 is shown connected to the root complex 360. However, the device connected to the root complex 360 is not limited to the storage device 370.

도 28은 프로세서(310)가 제1 및 제3 메모리 모듈들(320, 340)을 액세스하는 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 프로세서(310), 제1 메모리 모듈(320), 그리고 제3 메모리 모듈(340) 외의 다른 구성 요소들은 생략된다.28 illustrates an example in which the processor 310 accesses the first and third memory modules 320 and 340. In order to prevent unnecessary drawings, components other than the processor 310, the first memory module 320, and the third memory module 340 are omitted.

도 27 및 도 27을 참조하면, 프로세서(310)에서 실행되는 개체들을 보여주는 실행 영역(EA)이 도시된다. 실행 영역(EA)을 참조하면, 프로세서(310)에서 운영체제(OS)가 실행될 수 있다. 또한, 운영체제(OS)의 지원을 바탕으로, 프로세서(310)에서 제1 내지 제3 응용들(APP1~APP3)이 실행될 수 있다.Referring to FIGS. 27 and 27, an execution area EA is shown that shows objects executed in the processor 310. Referring to the execution area EA, an operating system (OS) may be executed in the processor 310. In addition, based on the support of the operating system (OS), the first to third applications APP1 to APP3 may be executed in the processor 310.

운영체제(OS)는 페이지 부재 처리기(PFH)를 포함할 수 있다. 페이지 부재 처리기(PFH)는 제1 내지 제3 응용들(APP1~APP3)이 제1 및 제3 메모리 모듈들(320, 340)을 액세스할 때에 발생하는 페이지 부재(page fault)를 처리할 수 있다. 페이지 부재 처리기(PFH)의 동작은 도 29 및 도 30을 참조하여 더 상세히 설명된다.The operating system OS may include a page fault processor PFH. The page absence processor PFH may handle a page fault that occurs when the first to third applications APP1 to APP3 access the first and third memory modules 320 and 340. . The operation of the page member processor PFH is described in more detail with reference to FIGS. 29 and 30.

제1 메모리 모듈(320)은 제2 타입 메모리(322)의 저장 공간을 프로세서(310)에 제공한다. 제1 메모리 모듈(320)의 사용자 용량에 대응하는 저장 공간은 제1 저장 영역(SA1)으로 도시된다. 제1 저장 영역(SA1)은 제1 내지 제3 서브 저장 영역들(SA1_1~SA1_3)을 포함할 수 있다.The first memory module 320 provides a storage space of the second type memory 322 to the processor 310. The storage space corresponding to the user capacity of the first memory module 320 is shown as the first storage area SA1. The first storage area SA1 may include first to third sub storage areas SA1_1 to SA1_3.

제1 내지 제3 서브 저장 영역들(SA1_1~SA1_3)은 제2 타입 메모리(322)의 저장 공간에 속하며, 논리적 또는 물리적으로 구별되는 저장 영역들일 수 있다. 제1 내지 제3 서브 저장 영역들(SA1_1~SA1_3)은 서로 다른 주소들에 의해 액세스될 수 있다.The first to third sub storage areas SA1_1 to SA1_3 belong to a storage space of the second type memory 322, and may be logical or physically distinct storage areas. The first to third sub storage areas SA1_1 to SA1_3 may be accessed by different addresses.

제1 저장 영역(SA1)에 더하여, 제1 메모리 모듈(320)의 메타 용량에 대응하는 저장 공간은 제1 메타 저장 영역(SA1_M)으로 도시된다. 매체 제어기(323)는 제1 저장 영역(SA1)을 액세스하는 데에 필요한 다양한 정보들을 제1 메타 저장 영역(SA1_M)에 저장할 수 있다.In addition to the first storage area SA1, the storage space corresponding to the meta capacity of the first memory module 320 is illustrated as the first meta storage area SA1_M. The media controller 323 may store various information necessary for accessing the first storage area SA1 in the first meta storage area SA1_M.

제3 메모리 모듈(340)은 제1 타입 메모리(341)의 저장 공간을 프로세서(310)에 제공한다. 제3 메모리 모듈(340)의 저장 공간은 제2 저장 영역(SA2)으로 도시된다. 제2 저장 영역(SA2)은 제1 저장 영역(SA1)보다 작을 수 있다.The third memory module 340 provides the processor 310 with a storage space of the first type memory 341. The storage space of the third memory module 340 is illustrated as a second storage area SA2. The second storage area SA2 may be smaller than the first storage area SA1.

메모리 시스템(300)이 초기화되면, 프로세서(310)의 메모리 제어기(311)는 보조 채널들(SCH)을 통해 제1 내지 제4 메모리 모듈들(320~350)의 저장 공간들을 식별할 수 있다. 프로세서(310), 예를 들어 운영체제(OS)는 식별된 저장 공간들에 주소들, 예를 들어 가상 주소들(VA)을 할당할 수 있다.When the memory system 300 is initialized, the memory controller 311 of the processor 310 may identify storage spaces of the first through fourth memory modules 320 ˜ 350 through the auxiliary channels SCH. The processor 310, for example the operating system OS, may assign addresses, eg, virtual addresses VA, to the identified storage spaces.

프로세서(310), 예를 들어 운영체제(OS)는 가상 주소들(VA)을 이용하여 제1 저장 영역(SA1) 및 제2 저장 영역(SA2)을 액세스할 수 있다. 프로세서(310), 예를 들어 운영체제(OS)는 가상 주소들(VA)을 이용하여 제1 내지 제4 메모리 모듈들(320~350)의 저장 공간을 제1 내지 제3 응용들(APP1~APP3)에 할당할 수 있다.The processor 310, for example, the operating system OS, may access the first storage area SA1 and the second storage area SA2 using the virtual addresses VA. The processor 310, for example, the operating system OS, may store the storage space of the first to fourth memory modules 320 to 350 by using the virtual addresses VA. ) Can be assigned.

메모리 제어기(311)는 프로세서(310)로부터 가상 주소들(VA)에 기반한 액세스 명령을 수신할 수 있다. 메모리 제어기(311)는 가상 주소들(VA)을 제1 내지 제4 메모리 모듈들(320~350)의 실제 주소들로 변환할 수 있다. 메모리 제어기(311)는 실제 주소들에 기반하여 메인 채널들(MCH)을 통해 제1 내지 제4 메모리 모듈들(320~350)을 액세스할 수 있다. 예를 들어, 메모리 제어기(311)는 제1 및 제2 메인 채널들(MCH1, MCH2)을 통해 제1 및 제3 메모리 모듈들(320, 3400을 각각 액세스할 수 있다.The memory controller 311 may receive an access command based on the virtual addresses VA from the processor 310. The memory controller 311 may convert the virtual addresses VA into actual addresses of the first to fourth memory modules 320 to 350. The memory controller 311 may access the first through fourth memory modules 320 ˜ 350 through the main channels MCH based on actual addresses. For example, the memory controller 311 may access the first and third memory modules 320 and 3400 through the first and second main channels MCH1 and MCH2, respectively.

메모리 제어기(311)는 프로세서(310)에 의해 할당된 가상 주소들(VA)과 제1 내지 제4 메모리 모듈들(320~350)의 실제 주소들의 사상 정보를 페이지 테이블(PT)로서 제3 메모리 모듈(340)에 저장할 수 있다. 페이지 테이블(PT)은 제1 내지 제4 메모리 모듈들(320~350)에 각각 대응하는 제1 내지 제4 테이블들(T1~T4)을 포함할 수 있다.The memory controller 311 uses the mapping information of the virtual addresses VA allocated by the processor 310 and the actual addresses of the first to fourth memory modules 320 to 350 as a page table PT. May be stored in module 340. The page table PT may include first to fourth tables T1 to T4 corresponding to the first to fourth memory modules 320 to 350, respectively.

예시적으로, 메모리 제어기(311)는 페이지 테이블(PT)을 제2 타입 메모리 모듈들(340, 350) 중 하나에 저장할 수 있다. 다른 예로서, 메모리 제어기(311)는 페이지 테이블(PT)을 제1 내지 제4 메모리 모듈들(320~350) 중 하나에 저장할 수 있다. 예를 들어, 메모리 제어기(311)는 제1 내지 제4 메모리 모듈들(320~350)의 제1 내지 제4 테이블들(T1~T4)을 하나의 메모리 모듈에 저장할 수 있다.In exemplary embodiments, the memory controller 311 may store the page table PT in one of the second type memory modules 340 and 350. As another example, the memory controller 311 may store the page table PT in one of the first to fourth memory modules 320 to 350. For example, the memory controller 311 may store the first to fourth tables T1 to T4 of the first to fourth memory modules 320 to 350 in one memory module.

제2 타입 메모리 모듈들(340, 350)은 메모리 제어기(311)에 의해 직접 액세스된다. 메모리 제어기(311)가 제2 타입 메모리 모듈들(340, 350)을 액세스할 때에 사용하는 주소들은 제1 타입 메모리들(341, 351)의 물리 주소들(PA)일 수 있다. 따라서, 제2 타입 메모리 모듈들(340, 350)에 대한 제3 및 제4 테이블들(T3, T4)은 가상 주소들(VA) 및 제2 타입 메모리 모듈들(340, 350)의 물리 주소들(PA)의 사상 정보를 포함할 수 있다.The second type memory modules 340 and 350 are directly accessed by the memory controller 311. The addresses used by the memory controller 311 when accessing the second type memory modules 340 and 350 may be physical addresses PA of the first type memories 341 and 351. Thus, the third and fourth tables T3 and T4 for the second type memory modules 340 and 350 are the virtual addresses VA and the physical addresses of the second type memory modules 340 and 350. (PA) may include mapping information.

제1 타입 메모리 모듈들(320, 330)은 메모리 제어기(311)에 의해 직접 액세스되지 않는다. 메모리 제어기(311)는 매체 제어기(323, 333)를 통해 제1 타입 메모리 모듈들(320, 330)을 액세스한다. 메모리 제어기(311)가 제1 타입 메모리 모듈들(320, 330)을 액세스할 때에 사용하는 주소들은 제2 타입 메모리들(322, 332)의 물리 주소들(PA)이 아니며, 논리 주소들(LA)로 불릴 수 있다.The first type memory modules 320 and 330 are not directly accessed by the memory controller 311. The memory controller 311 accesses the first type memory modules 320 and 330 through the media controllers 323 and 333. The addresses used by the memory controller 311 when accessing the first type memory modules 320 and 330 are not the physical addresses PA of the second type memories 322 and 332, and the logical addresses LA. It can be called).

매체 제어기(323 또는 333)는 메모리 제어기(311)가 사용하는 논리 주소들(LA) 및 제2 타입 메모리(322 또는 332)의 물리 주소들(PA) 사이의 사상 정보를 제1 메타 저장 영역(SA1_M)에 저장할 수 있다. 제1 메타 저장 영역(SA1_M)에 저장된 사상 정보를 이용하여, 매체 제어기(323 또는 333)는 메모리 제어기(311)로부터의 액세스 명령을 제2 타입 메모리(322 또는 332)에 대한 액세스 명령으로 변환할 수 있다.The media controller 323 or 333 stores mapping information between the logical addresses LA used by the memory controller 311 and the physical addresses PA of the second type memory 322 or 332. SA1_M). Using the mapping information stored in the first meta storage area SA1_M, the media controller 323 or 333 may convert an access command from the memory controller 311 into an access command for the second type memory 322 or 332. Can be.

메모리 제어기(311)가 제1 타입 메모리 모듈들(320, 330)의 논리 주소들(LA)을 사용하므로, 제1 타입 메모리 모듈들(320, 330)에 대한 제1 및 제2 테이블들(T1, T2)은 가상 주소들(VA) 및 논리 주소들(LA) 사이의 사상 정보를 포함할 수 있다.Since the memory controller 311 uses the logical addresses LA of the first type memory modules 320 and 330, the first and second tables T1 for the first type memory modules 320 and 330 are used. , T2 may include mapping information between the virtual addresses VA and the logical addresses LA.

메모리 제어기(311)는 페이지 테이블(PT)이 저장된 제3 메모리 모듈(340)의 저장 공간의 시작 주소 및 페이지 테이블(PT)의 크기에 대한 정보를 레지스터(R)에 저장할 수 있다. 운영체제(OS) 또는 제1 내지 제3 응용들(APP1~APP3)이 가상 주소들(VA)에 기반하여 제1 내지 제4 메모리 모듈들(320~350)에 대한 액세스를 지시할 때, 메모리 제어기(311)는 레지스터(R)를 참조하여 페이지 테이블(PT)을 검색하고, 그리고 검색 결과에 따라 제1 내지 제4 메모리 모듈들(320~350)에 액세스 명령을 전송할 수 있다.The memory controller 311 may store information about the start address of the storage space of the third memory module 340 in which the page table PT is stored and the size of the page table PT in the register R. When the operating system OS or the first to third applications APP1 to APP3 instruct access to the first to fourth memory modules 320 to 350 based on the virtual addresses VA, a memory controller. 311 may search the page table PT with reference to the register R, and transmit an access command to the first to fourth memory modules 320 to 350 according to the search result.

도 29는 페이지 부재(page fault)가 발생하는 예를 보여준다. 도 27 및 도 29를 참조하면, S211 단계에서, 제1 응용(APP1)이 제1 메모리 모듈(320)에 대한 메모리 액세스를 지시할 수 있다. 제1 응용(APP1)의 지시는 운영체제(OS)를 통해 메모리 제어기(311)로 전달될 수 있다. S212 단계에서, 메모리 제어기(311)는 레지스터(R)를 참조하여 페이지 테이블(PT)을 검색할 수 있다.29 shows an example in which a page fault occurs. Referring to FIGS. 27 and 29, in operation S211, the first application APP1 may instruct a memory access to the first memory module 320. Instructions of the first application APP1 may be transmitted to the memory controller 311 through the operating system OS. In operation S212, the memory controller 311 may search the page table PT with reference to the register R. FIG.

메모리 액세스가 요청된 제1 메모리 모듈(320)의 가상 주소들(VA)의 사상 정보가 제1 테이블(T1)에 존재하지 않으면, S213 단계에서 페이지 부재(page fault)가 발생할 수 있다. 예를 들어, 제1 응용(APP1)이 새로운 메모리의 할당을 요청하면, 운영체제(OS)는 메모리의 할당을 위해 메모리 액세스를 메모리 제어기(311)에 지시할 수 있다.If the mapping information of the virtual addresses VA of the first memory module 320 requested for memory access does not exist in the first table T1, a page fault may occur in step S213. For example, when the first application APP1 requests allocation of a new memory, the operating system OS may instruct the memory controller 311 to access a memory for allocation of the memory.

이전에 사용되지 않은 새로운 메모리의 할당이 요청되었으므로, 사상 정보는 제1 테이블(T1)에 존재하지 않을 수 있다. 즉, 새로운 메모리의 할당이 수행될 때, 페이지 부재(page fault)가 발생할 수 있다. 예를 들어, 제1 응용(APP1)의 실행이 시작될 때, 새로운 메모리의 할당이 요청되고 페이지 부재가 발생할 수 있다. 페이지 부재가 발생하면, S214 단계에서, 제1 응용(APP1)으로부터 운영체제(OS)로 문맥 교환(context switching)이 수행될 수 있다.Since the allocation of a new memory that has not been used previously is requested, the mapping information may not exist in the first table T1. That is, when a new memory allocation is performed, a page fault may occur. For example, when execution of the first application APP1 starts, allocation of a new memory is requested and a page member may occur. When a page absence occurs, in operation S214, context switching may be performed from the first application APP1 to the operating system OS.

도 30은 부재 처리(fault handling)가 수행되는 예를 보여준다. 도 30을 참조하면, S215 단계에서, 운영체제(OS)의 페이지 부재 처리기(PFH)는 부재 처리를 수행할 수 있다. 예를 들어, 페이지 부재 처리기(PFH)는 제1 응용(APP1)이 요청한 가상 주소(VA)에 제1 메모리 모듈(320)의 자유 페이지의 논리 주소(LA)를 사상할 수 있다.30 shows an example in which fault handling is performed. Referring to FIG. 30, in operation S215, the page member processor PFH of the operating system OS may perform a member process. For example, the page absence processor PFH may map the logical address LA of the free page of the first memory module 320 to the virtual address VA requested by the first application APP1.

예를 들어, 제1 내지 제4 메모리 모듈들(320~350)의 자유 용량이 부족하면, 프로세서(310)는 제1 메모리 모듈(320)의 제1 저장 영역(SA1)에 저장된 데이터의 일부를 스토리지 장치(370)로 스왑하고, 스왑된 데이터의 저장 공간을 해제(release)함으로써 제1 저장 영역(SA1)에 자유 용량을 확보할 수 있다.For example, when the free capacity of the first to fourth memory modules 320 to 350 is insufficient, the processor 310 may delete a portion of data stored in the first storage area SA1 of the first memory module 320. By swapping the storage device 370 and releasing the storage space of the swapped data, free capacity can be secured in the first storage area SA1.

사상된 논리 주소(LA)는 제1 응용(APP1)에 대한 제1 응용 저장 영역(SA_APP1)으로서 제1 저장 영역(SA1)에 할당될 수 있다. S216 단계에서, 메모리 제어기(311)는 페이지 테이블(PT)의 제1 테이블(T1)에 제1 응용 저장 영역(SA_APP1)의 사상 정보를 기입함으로써 페이지 테이블을 갱신할 수 있다. S217 단계에서, 부재 처리가 완료된 후에 페이지 부재 처리기(PFH)로부터 제1 응용(APP1)으로 문맥 교환(context switching)이 수행될 수 있다.The mapped logical address LA may be allocated to the first storage area SA1 as the first application storage area SA_APP1 for the first application APP1. In operation S216, the memory controller 311 may update the page table by writing mapping information of the first application storage area SA_APP1 to the first table T1 of the page table PT. In operation S217, context switching may be performed from the page absence processor PFH to the first application APP1 after the absence processing is completed.

도 29 및 도 30을 참조하여 설명된 바와 같이, 페이지 부재가 발생하고 부재 처리가 수행되면, 두 번의 문맥 교환들이 수행된다. 문맥 교환들은 메모리 시스템(300)의 자원을 소모하고, 메모리 시스템(300)의 동작 속도를 저해할 수 있다.As described with reference to Figs. 29 and 30, when a page member occurs and the member processing is performed, two context exchanges are performed. Contextual exchanges consume resources of the memory system 300 and can hinder the speed of operation of the memory system 300.

도 31은 제1 응용(APP1)에 '01' 내지 '16'의 가상 주소들로 식별되는 가상 저장 영역(VSA)이 할당되는 예를 보여준다. 도 27 및 도 31을 참조하면, S221 단계에서, 제1 응용(APP1)은 가상 저장 영역(VSA)의 '01'의 가상 주소(VA)에 대한 액세스를 지시할 수 있다. 예를 들어, '01'의 가상 주소(VA)는 제1 메모리 모듈(320)에 대응할 수 있다.FIG. 31 shows an example in which a virtual storage area VSA identified by virtual addresses of '01' to '16' is allocated to the first application APP1. Referring to FIGS. 27 and 31, in operation S221, the first application APP1 may instruct access to the virtual address VA of '01' of the virtual storage area VSA. For example, the virtual address VA of '01' may correspond to the first memory module 320.

'01'의 가상 주소(VA)의 사상 정보가 제1 테이블(T1, 도 29 참조)에 존재하지 않으므로, S222 단계에서 페이지 부재가 발생할 수 있다. 이후에 문맥 교환이 수행되고 페이지 부재 처리기(PFH)가 활성화될 수 있다. S223 단계에서, 페이지 부재 처리기(PFH)는 부재 처리를 수행할 수 있다.Since the mapping information of the virtual address VA of '01' does not exist in the first table T1 (see FIG. 29), a page member may occur in step S222. The context exchange can then be performed and the page fault handler PFH can be activated. In step S223, the page member processor PFH may perform the member processing.

예를 들어, 페이지 부재 처리기(PFH)는 '01'의 가상 주소(VA)에 제1 응용 저장 영역(SA_APP1)의 '21'의 논리 주소(LA)를 사상할 수 있다. '21'의 논리 주소(LA)는 제1 메모리 모듈(320)에 대응할 수 있다. S224 단계에서, 페이지 부재 처리기(PFH)는 '01'의 가상 주소(VA)와 '21'의 논리 주소(LA)의 사상 정보를 포함하도록 제1 테이블(T1)에 대해 페이지 테이블 갱신을 수행할 수 있다.For example, the page member processor PFH may map a logical address LA of '21' of the first application storage area SA_APP1 to a virtual address VA of '01'. The logical address LA of '21' may correspond to the first memory module 320. In step S224, the page absence processor PFH may perform a page table update on the first table T1 to include mapping information of the virtual address VA of '01' and the logical address LA of '21'. Can be.

도 32는 도 31에 후속하여 제1 실시 예에 따라 가상 주소들(VA)이 할당되는 예를 보여준다. 도 32를 참조하면, S231 단계에서, 제1 응용(APP1)은 가상 저장 영역(VSA)의 '02'의 가상 주소(VA)를 갖는 다음 페이지를 액세스할 수 있다. S232 단계에서 페이지 부재가 발생하고, S233 단계에서 부재 처리가 수행될 수 있다.32 shows an example in which virtual addresses VA are allocated according to the first embodiment subsequent to FIG. 31. Referring to FIG. 32, in operation S231, the first application APP1 may access a next page having a virtual address VA of '02' of the virtual storage area VSA. The page member may occur in step S232, and the member processing may be performed in step S233.

페이지 부재 처리기(PFH)는 제1 응용 저장 영역(SA_APP1)의 '22'의 논리 주소(LA)를 '02'의 가상 주소(VA)에 할당할 수 있다. S234 단계에서, 페이지 부재 처리기(PFH)는 '02'의 가상 주소(VA)와 '22'의 논리 주소(LA)의 사상 정보를 포함하도록 제1 테이블(T1)에 대해 페이지 테이블 갱신을 수행할 수 있다. 도 31 및 도 32를 참조하여 설명된 바와 같이, 제1 응용(APP1)은 '01' 내지 '16'의 가상 주소들(VA)에 대한 액세스들을 순차적으로 요청할 수 있다.The page absence processor PFH may allocate a logical address LA of '22' of the first application storage area SA_APP1 to a virtual address VA of '02'. In step S234, the page absence processor PFH may perform a page table update on the first table T1 to include mapping information of the virtual address VA of '02' and the logical address LA of '22'. Can be. As described with reference to FIGS. 31 and 32, the first application APP1 may sequentially request access to virtual addresses VA of '01' to '16'.

도 33은 페이지 부재 처리기(PFH)가 제1 실시 예에 따라 '01' 내지 '16'의 가상 주소들(VA)에 대해 페이지 부재 처리를 수행한 예를 보여준다. 도 33을 참조하면, S241 단계, S242 단계 및 S243 단계를 통해, 페이지 부재 처리기(PFH)는 가상 저장 영역(VSA)의 '01' 내지 '16'의 가상 주소들(VA)에 제1 응용 저장 영역(SA_APP1)의 '21' 내지 '36'의 논리 주소들(LA)을 사상할 수 있다. 페이지 부재 처리기(PFH)는 '01' 내지 '16'의 가상 주소들(VA) 각각에 대해 페이지 부재 처리를 수행할 수 있다.33 illustrates an example in which the page absence processor PFH performs page absence processing on virtual addresses VA of '01' to '16' according to the first embodiment. Referring to FIG. 33, through step S241, step S242, and step S243, the page member processor PFH stores the first application in virtual addresses VA of '01' to '16' of the virtual storage area VSA. The logical addresses LA of '21' to '36' of the area SA_APP1 may be mapped. The page absence processor PFH may perform page absence processing for each of the virtual addresses VA of '01' to '16'.

통상적으로 페이지의 사이즈는 4KB일 수 있다. 제1 응용(APP1)이 사용하는 메모리 용량은 수 MB 내지 수 GB일 수 있다. 제1 타입 메모리 모듈들(320, 330)과 같은 대용량의 스토리지 클래스 메모리들이 도입됨에 따라, 제1 응용(APP1)이 사용하는 메모리 용량은 더 증가할 수 있다.Typically, the size of the page may be 4 KB. The memory capacity used by the first application APP1 may be several MB to several GB. As large storage class memories such as the first type memory modules 320 and 330 are introduced, the memory capacity used by the first application APP1 may be further increased.

제1 응용(APP1)이 대용량의 메모리를 할당할 때에 4KB의 페이지의 단위로 부재 처리를 수행하는 것은 프로세서(310)의 자원을 과도하게 소모하며 프로세서(310) 및 메모리 시스템(300)의 동작 속도를 현저히 저해할 수 있다. 이와 같은 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 프로세서(310)(또는 운영체제(OS))는 제1 응용(APP1)이 액세스를 요청하는 페이지들의 수보다 적은 수의 부재 처리를 수행할 수 있다.When the first application APP1 allocates a large memory, performing the absence processing in units of 4 KB pages consumes excessive resources of the processor 310 and speeds up the operation of the processor 310 and the memory system 300. Can be significantly inhibited. In order to solve such a problem, the processor 310 (or the operating system OS) according to an embodiment of the present invention may perform the absence processing of less than the number of pages for which the first application APP1 requests access. Can be.

도 34은 본 발명의 제2 실시 예에 따른 부재 처리 방법을 보여준다. 도 28 및 도 34을 참조하면, S251 단계에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 조절할 수 있다. S252 단계에서, 페이지 부재 처리기(PFH)는 조절된 페이지들의 수에 따라 페이지들을 할당할 수 있다. S253 단계에서, 페이지 부재 처리기(PFH)는 할당에 따라 페이지 테이블(PT)을 갱신할 수 있다.34 is a view illustrating a member treating method according to a second embodiment of the present invention. 28 and 34, in step S251, the page member processor PFH may adjust the number of pages. In step S252, the page absence processor PFH may allocate pages according to the adjusted number of pages. In operation S253, the page absence processor PFH may update the page table PT according to the allocation.

예를 들어, 페이지 부재 처리기(PFH)는 페이지 부재가 발생한 액세스의 특성에 따라 페이지들의 수를 조절할 수 있다. 페이지 부재 처리기(PFH)는 특정한 액세스와 연관된 부재 처리 시에 둘 이상의 가상 주소들(VA)과 둘 이상의 논리 주소들(LA)을 사상할 수 있다. For example, the page member processor PFH may adjust the number of pages according to the characteristics of the access where the page member has occurred. The page absence processor PFH may map two or more virtual addresses VA and two or more logical addresses LA in the absence processing associated with a particular access.

메모리 할당과 같은 연속적인 가상 주소들에 대한 액세스들에 의해 페이지 부재가 발생할 때, 페이지 부재 처리기(PFH)는 부재 처리 시에 사상되는 가상 주소들(VA)의 수 및 논리 주소들(LA)의 수를 순차적으로 증가할 수 있다.When a page fault occurs due to accesses to consecutive virtual addresses, such as memory allocation, the page fault handler PFH determines the number of virtual addresses VA and logical addresses LA that are mapped in the absence process. The number can be increased sequentially.

도 35는 도 31에 후속하여 제2 실시 예에 따라 가상 주소들(VA)이 할당되는 예를 보여준다. 도 35를 참조하면, S261 단계에서, 제1 응용(APP1)은 가상 저장 영역(VSA)의 '02'의 가상 주소(VA)를 갖는 다음 페이지를 액세스할 수 있다. S262 단계에서 페이지 부재가 발생하고, S263 단계에서 부재 처리가 수행될 수 있다.FIG. 35 illustrates an example in which virtual addresses VA are allocated according to the second embodiment subsequent to FIG. 31. Referring to FIG. 35, in operation S261, the first application APP1 may access a next page having a virtual address VA of '02' of the virtual storage area VSA. The page member may be generated in step S262, and the member processing may be performed in step S263.

페이지 부재 처리기(PFH)는 둘 이상의 논리 주소들을 둘 이상의 가상 주소들과 사상할 수 있다. 예를 들어, 페이지 부재 처리기(PFH)는 제1 응용 저장 영역(SA_APP1)의 '22'의 논리 주소(LA)를 '02'의 가상 주소(VA)에 할당하고, '23'의 논리 주소(LA)를 '03'의 가상 주소(VA)와 사상할 수 있다.The page fault handler PFH may map two or more logical addresses to two or more virtual addresses. For example, the page absence processor PFH assigns a logical address LA of '22' of the first application storage area SA_APP1 to a virtual address VA of '02', and a logical address of '23' ( LA) may be mapped to a virtual address VA of '03'.

S264 단계에서, 페이지 부재 처리기(PFH)는 '02'의 가상 주소(VA)와 '22'의 논리 주소(LA)의 사상 정보를 포함하도록, 그리고 '03'의 가상 주소(VA)와 '23'의 논리 주소(LA)의 사상 정보를 포함하도록 제1 테이블(T1)에 대해 페이지 테이블 갱신을 수행할 수 있다.In step S264, the page absence processor PFH includes mapping information of the virtual address VA of '02' and the logical address LA of '22', and the virtual address VA of '03' and '23'. A page table update may be performed on the first table T1 to include mapping information of the logical address LA of '.

도 36은 도 35에 후속하여 제2 실시 예에 따라 가상 주소들이 할당되는 예를 보여준다. 도 36을 참조하면, S271 단계에서, 제1 응용(APP1)은 가상 저장 영역(VSA)의 '02'의 가상 주소(VA)를 갖는 페이지 및 '03'의 가상 주소(VA)를 갖는 페이지를 순차적으로 액세스할 수 있다.FIG. 36 shows an example in which virtual addresses are allocated according to the second embodiment subsequent to FIG. 35. Referring to FIG. 36, in step S271, the first application APP1 may include a page having a virtual address VA of '02' of a virtual storage area VSA and a page having a virtual address VA of '03'. Can be accessed sequentially.

'03'의 가상 주소(VA)는 '23'의 논리 주소(LA)와 사상되어 있으므로, 제1 응용(APP1)이 '03'이 가상 주소(VA)를 액세스할 때에 페이지 부재는 발생하지 않는다. '04'의 가상 주소(VA)는 논리 주소(LA)와 사상되어 있지 않으므로, S272 단계에서, 제1 응용(APP1)이 '04'의 가상 주소(VA)를 액세스할 때에 페이지 부재가 발생할 수 있다. S273 단계에서 부재 처리가 수행될 수 있다.Since the virtual address VA of '03' is mapped to the logical address LA of '23', a page member does not occur when the first application APP1 accesses the virtual address VA of '03'. . Since the virtual address VA of '04' is not mapped with the logical address LA, in step S272, a page member may occur when the first application APP1 accesses the virtual address VA of '04'. have. In step S273, the member processing may be performed.

페이지 부재 처리기(PFH)는 둘 이상의 논리 주소들을 둘 이상의 가상 주소들과 사상할 수 있다. 예를 들어, 페이지 부재 처리기(PFH)는 제1 응용 저장 영역(SA_APP1)의 '24'의 논리 주소(LA)를 '04'의 가상 주소(VA)에 할당하고, '25'의 논리 주소(LA)를 '05'의 가상 주소(VA)와 사상하고, '26의 논리 주소(LA)를 '06'의 가상 주소(VA)에 할당하고, 그리고 '27'의 논리 주소(LA)를 '07'의 가상 주소(VA)와 사상할 수 있다.The page fault handler PFH may map two or more logical addresses to two or more virtual addresses. For example, the page absence processor PFH allocates a logical address LA of '24' of the first application storage area SA_APP1 to a virtual address VA of '04', and a logical address of '25' ( LA) maps to a virtual address (VA) of '05', assigns a logical address (LA) of '26' to a virtual address (VA) of '06', and assigns a logical address (LA) of '27' to ' It may map to 07 'virtual address (VA).

S274 단계에서, 페이지 부재 처리기(PFH)는 '04의 가상 주소(VA)와 '24'의 논리 주소(LA)의 사상 정보를 포함하도록, '05'의 가상 주소(VA)와 '25'의 논리 주소(LA)의 사상 정보를 포함하도록, '06'의 가상 주소(VA)와 '26'의 논리 주소(LA)의 사상 정보를 포함하도록, 그리고 '07'의 가상 주소(VA)와 '27'의 논리 주소(LA)의 사상 정보를 포함하도록 제1 테이블(T1)에 대해 페이지 테이블 갱신을 수행할 수 있다.In step S274, the page absence processor PFH includes the virtual address VA of '05' and the '25' to include mapping information of the virtual address VA of '04' and the logical address LA of '24'. To include mapping information of logical address LA, to include mapping information of virtual address VA of '06' and logical address LA of '26', and to the virtual address VA of '07' and ' A page table update may be performed on the first table T1 to include mapping information of the logical address LA of 27 '.

도 35 및 도 36을 참조하여 설명된 바와 같이, 제1 응용(APP1)은 부재 처리 시에 사상되는 논리 주소들(LA)의 수 및 가상 주소들(VA)의 수를 순차적으로 증가시킬 수 있다. As described with reference to FIGS. 35 and 36, the first application APP1 may sequentially increase the number of logical addresses LA and the virtual addresses VA mapped in the absence process. .

도 37은 페이지 부재 처리기(PFH)가 제2 실시 예에 따라 '01' 내지 '16'의 가상 주소들(VA)에 대해 페이지 부재 처리를 수행한 예를 보여준다. 도 37을 참조하면, S281 단계, S282 단계 및 S283 단계를 통해, 페이지 부재 처리기(PFH)는 가상 저장 영역(VSA)의 '01' 내의 '16'의 가상 주소들(VA)에 제1 응용 저장 영역(SA_APP1)의 '21' 내지 '36'의 논리 주소들(LA)을 사상할 수 있다. 페이지 부재 처리기(PFH)는 '01', '02', '04', '08', 그리고 '16'의 가상 주소들(VA) 각각에 대해 페이지 부재 처리를 수행할 수 있다.FIG. 37 illustrates an example in which the page absence processor PFH performs page absence processing on virtual addresses VA of '01' to '16' according to a second embodiment. Referring to FIG. 37, through step S281, S282, and S283, the page member processor PFH stores the first application in virtual addresses VA of '16' in '01' of the virtual storage area VSA. The logical addresses LA of '21' to '36' of the area SA_APP1 may be mapped. The page absence processor PFH may perform page absence processing for each of the virtual addresses VA of '01', '02', '04', '08', and '16'.

제1 실시 예에 따른 도 33과 비교하면, 제2 실시 예에 따른 도 31에서 부재 처리가 수행되는 횟수가 감소한다. 따라서, 문맥 교환이 수행되는 횟수가 감소하고, 부재 처리들을 더 빠르게 수행함으로써 향상된 속도를 갖는 프로세서(310) 및 메모리 시스템(300)의 속도가 향상된다.As compared with FIG. 33 according to the first embodiment, the number of times member processing is performed in FIG. 31 according to the second embodiment decreases. Thus, the number of times the context exchange is performed is reduced, and the speed of the processor 310 and the memory system 300 with improved speed is improved by performing the member processes faster.

도 38은 본 발명의 실시 예에 따라 페이지들의 수를 조절하는 예를 보여준다. 도 28 및 도 38을 참조하면, S291 단계에서, 페이지 부재 처리기(PFH)는 페이지 부재가 동일한 응용(예를 들어, APP1)으로부터의 연속적인 액세스들(예를 들어, 연속적인 가상 주소들(VA)에 대한 액세스들)에 대응하는지 판단할 수 있다.38 shows an example of adjusting the number of pages according to an embodiment of the present invention. Referring to FIGS. 28 and 38, in step S291, the page absence processor PFH may determine successive accesses (eg, consecutive virtual addresses VA) from an application (eg, APP1) in which the page absence is the same. ) Can be determined.

예를 들어, 페이지 부재를 유발한 액세스의 가상 주소가 이전 액세스의 이전 가상 주소와 연속인지 판단할 수 있다. 페이지 부재가 연속적인 액세스들에 대응하지 않으면, 즉 가상 주소가 이전 액세스의 가상 주소와 연속이 아니면, S292 단계가 수행된다. S292 단계에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 기본값, 예를 들어 '1'로 조절할 수 있다. 이후에 조절은 종료된다.For example, it may be determined whether the virtual address of the access that caused the page fault is contiguous with the previous virtual address of the previous access. If the page member does not correspond to successive accesses, that is, the virtual address is not contiguous with the virtual address of the previous access, step S292 is performed. In operation S292, the page absence processor PFH may adjust the number of pages to a default value, for example, '1'. The adjustment then ends.

페이지 부재가 연속적인 액세스들에 대응하면, 즉 가상 주소가 이전 액세스의 가상 주소와 연속이면, S293 단계가 수행된다. S293 단계에서, 페이지 부재 처리기(PFH)는 페이지들의 수가 문턱값에 도달했는지 판단할 수 있다. 페이지들의 수가 문턱값에 도달하지 않았으면, S294 단계가 수행된다. S294 단계에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 할당 페이지들의 수의 두 배로 조절할 수 있다. 이후에 조절은 종료된다.If the page member corresponds to consecutive accesses, that is, the virtual address is contiguous with the virtual address of the previous access, step S293 is performed. In operation S293, the page member processor PFH may determine whether the number of pages reaches a threshold. If the number of pages does not reach the threshold, step S294 is performed. In step S294, the page absence processor PFH may adjust the number of pages to twice the number of previous allocated pages. The adjustment then ends.

페이지들의 수가 문턱값에 도달하였으면, S295 단계가 수행된다. S295 단계에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 할당 페이지들의 수로 조절할 수 있다. 예를 들어, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 부재 처리에서와 동일하게 유지할 수 있다. 이후에 조절은 종료된다.If the number of pages has reached the threshold, step S295 is performed. In step S295, the page absence processor PFH may adjust the number of pages to the number of previous allocated pages. For example, the page member processor PFH can keep the number of pages the same as in previous member processing. The adjustment then ends.

예시적으로, 페이지 부재 처리기(PFH)는 페이지들의 수를 두 배로 조절하는 것으로 한정되지 않는다. 페이지 부재 처리기(PFH)는 미리 정해진 수만큼 페이지들의 수를 증가시킬 수 있다. 예를 들어, 페이지 부재 처리기(PFH)는 연속적인 액세스들과 연관되어 부재 처리들이 수행될 때에 페이지들의 수를 '2'씩 또는 '4'씩 증가시킬 수 있다.By way of example, the page member processor PFH is not limited to doubling the number of pages. The page member processor PFH may increase the number of pages by a predetermined number. For example, the page member processor PFH may increase the number of pages by '2' or '4' when member processing is performed in association with successive accesses.

예시적으로, 페이지 부재 처리기(PFH)는 연속적인 액세스들과 연관된 부채 처리들을 둘 이상의 페이즈들(phases)로 분할하여 수행할 수 있다. 제1 페이즈에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 할당 페이지들의 수의 K배(K는 양의 정수)로 조절할 수 있다. 제2 페이즈에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 할당 페이지들의 수에 I를(I는 양의 정수) 더한 값으로 조절할 수 있다.As an example, the page fault processor PFH may perform debt processing associated with successive accesses by splitting it into two or more phases. In the first phase, the page absence processor PFH may adjust the number of pages by K times the number of previous allocated pages (K is a positive integer). In the second phase, the page absence processor PFH may adjust the number of pages to the number of previous allocated pages plus I (I is a positive integer).

상술된 실시 예들에서, 페이지 부재 처리기(PFH)는 제1 메모리 모듈(320)에 대해 도 31, 도 35, 도 36 및 도 37을 참조하여 설명된 제2 실시 예에 따라 부재 처리가 수행되는 것으로 설명되었다. 그러나 도 31, 도 35, 도 36 및 도 37을 참조하여 설명된 제2 실시 예에 따른 부재 처리는 제1 내지 제4 메모리 모듈들(320~350)에 모두 적용될 수 있다.In the above-described embodiments, the page member processor PFH performs the member processing on the first memory module 320 according to the second embodiment described with reference to FIGS. 31, 35, 36, and 37. Was explained. However, the member processing according to the second embodiment described with reference to FIGS. 31, 35, 36, and 37 may be applied to all of the first to fourth memory modules 320 to 350.

예를 들어, 도 31, 도 35, 도 36 및 도 37을 참조하여 설명된 제2 실시 예에 따른 부재 처리가 제2 타입 메모리 모듈들(340, 350)에 적용될 때, 도 31, 도 35, 도 36 및 도 37에서 언급된 논리 주소들(LA)은 제3 메모리 모듈(340) 또는 제4 메모리 모듈(350)의 물리 주소들(PA)로 변경될 수 있다.For example, when the member processing according to the second embodiment described with reference to FIGS. 31, 35, 36, and 37 is applied to the second type memory modules 340 and 350, FIGS. The logical addresses LA mentioned in FIGS. 36 and 37 may be changed to physical addresses PA of the third memory module 340 or the fourth memory module 350.

예시적으로, 페이지 부재 처리기(PFH)는 메모리 모듈들의 타입에 따라 부재 처리의 방법을 다르게 설정할 수 있다. 예를 들어, 제1 타입 메모리 모듈들(320, 330)에서 페이지 부재가 발생하면, 페이지 부재 처리기(PFH)는 도 31, 도 35, 도 36 및 도 37을 참조하여 설명된 제2 실시 예에 따른 부재 처리를 수행할 수 있다.In exemplary embodiments, the page member processor PFH may set a method of member processing differently according to types of memory modules. For example, when a page member occurs in the first type memory modules 320 and 330, the page member processor PFH may be configured in the second embodiment described with reference to FIGS. 31, 35, 36, and 37. According to the member processing can be performed.

제2 타입 메모리 모듈들(340, 350)에서 페이지 부재가 발생하면, 페이지 부재 처리기(PFH)는 도 31, 도 32 및 도 33을 참조하여 설명된 제1 실시 예에 따른 부재 처리를 수행할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(320~350)의 타입들은 초기화 시에 SPD 장치들(325, 335, 345, 355)로부터 프로세서(310)로 제공될 수 있다.When a page member occurs in the second type memory modules 340 and 350, the page member processor PFH may perform the member processing according to the first embodiment described with reference to FIGS. 31, 32, and 33. have. For example, types of the first to fourth memory modules 320 to 350 may be provided from the SPD devices 325, 335, 345, and 355 to the processor 310 at initialization.

도 39는 부재 처리의 결과가 제1 메모리 모듈(320)로 전달되는 예를 보여준다. 예시적으로, 도 29 및 도 30을 참조하여 설명된 부재 처리가 완료된 후에, 도 39에 도시된 절차들이 수행될 수 있다. 도 27 및 도 39를 참조하면, S218 단계에서, 페이지 부재 처리기(PFH)는 부재 알림을 수행할 수 있다.39 shows an example in which the result of the member processing is transferred to the first memory module 320. By way of example, after the member processing described with reference to FIGS. 29 and 30 is completed, the procedures shown in FIG. 39 may be performed. Referring to FIGS. 27 and 39, in step S218, the page absence processor PFH may perform the absence notification.

예를 들어, 페이지 부재 처리기(PFH)는 부재 처리 과정에서 사상된 논리 주소(LA)를 해당 논리 주소(LA)와 연관된 제1 메모리 모듈(320)에 전송할 것을 메모리 제어기(311)에 지시할 수 있다. 메모리 제어기(311)는 사상된 논리 주소(LA)를 제1 메모리 모듈(320)의 매체 제어기(323)에 전송할 수 있다.For example, the page absence processor PFH may instruct the memory controller 311 to transmit the mapped logical address LA to the first memory module 320 associated with the logical address LA during the absence processing. have. The memory controller 311 may transmit the mapped logical address LA to the media controller 323 of the first memory module 320.

예를 들어, 메모리 제어기(311)는 읽기 명령 및 읽기 주소를 제1 메모리 모듈(320)에 전송함으로써 읽기 동작을 지시할 수 있다. 메모리 제어기(311)는 쓰기 명령 및 쓰기 주소를 제1 메모리 모듈(320)에 전송함으로써 쓰기 동작을 지시할 수 있다. 메모리 제어기(311)는 읽기 명령 및 읽기 주소와 다른 형태, 그리고 쓰기 명령 및 쓰기 주소와 다른 형태로 논리 주소(LA)를 제1 메모리 모듈(320)로 전송할 수 있다.For example, the memory controller 311 may instruct a read operation by transmitting a read command and a read address to the first memory module 320. The memory controller 311 may instruct a write operation by transmitting a write command and a write address to the first memory module 320. The memory controller 311 may transmit the logical address LA to the first memory module 320 in a form different from the read command and the read address and in a form different from the write command and the write address.

예시적으로, 페이지 부재 처리기(PFH)는 부재 처리가 수행될 때마다 부재 알림을 수행할 수 있다. 다른 예로서, 페이지 부재 처리기(PFH)는 연속적인 주소들과 연관된 부재 처리가 특정 횟수 수행되면 부재 알림을 수행할 수 있다. 다른 예로서, 페이지 부재 처리기(PFH)는 부재 처리가 수행된 후 특정 시간 동안 다른 부재 처리가 수행되지 않으면 부재 알림을 수행할 수 있다. 페이지 부재 처리기(PFH)가 부재 알림을 수행하는 조건은 다양하게 응용 및 수정될 수 있다.In exemplary embodiments, the page absence processor PFH may perform the absence notification whenever the absence processing is performed. As another example, the page absence processor PFH may perform an absence notification when the absence processing associated with consecutive addresses is performed a certain number of times. As another example, the page member processor PFH may perform an absence notification if no other member processing is performed for a specific time after the member processing is performed. The condition under which the page absence processor PFH performs the absence notification may be variously applied and modified.

위에서 언급된 바와 같이, 부재 처리는 제1 응용(APP1)이 새로운 메모리의 할당을 요청할 때에 발생할 수 있다. 요청한 메모리의 할당이 완료되면, 제1 응용(APP1)은 할당된 메모리를 이용할 수 있다. 즉, 특정한 논리 주소(LA)에 대해 부재 처리가 수행되면, 특정한 논리 주소(LA)는 액세스될 예정인 것으로 예측될 수 있다.As mentioned above, the absence process may occur when the first application APP1 requests the allocation of a new memory. When the allocation of the requested memory is completed, the first application APP1 may use the allocated memory. That is, if absence processing is performed for a particular logical address LA, the specific logical address LA can be expected to be accessed.

S219 단계에서, 매체 제어기(323)는 특정한 논리 주소(LA)에 대응하는 제2 타입 메모리(322)의 저장 공간을 제1 타입 메모리(321)에 사상하는 캐시 할당을 수행할 수 있다. 예를 들어, 제2 타입 메모리(322)의 제1 응용 저장 영역(SA_APP1)의 논리 주소들(LA)에 대해 부재 처리가 수행됨에 따라, 매체 제어기(323)는 제1 응용 저장 영역(SA_APP1)을 제1 타입 메모리(321)에 사상할 수 있다.In operation S219, the media controller 323 may perform cache allocation to map the storage space of the second type memory 322 corresponding to the specific logical address LA to the first type memory 321. For example, as absence processing is performed on the logical addresses LA of the first application storage area SA_APP1 of the second type memory 322, the media controller 323 may perform the first application storage area SA_APP1. May be mapped to the first type memory 321.

매체 제어기(323)가 제1 응용 저장 영역(SA_APP1)을 제1 타입 메모리(321)에 사상하면, 제1 응용(APP1)이 할당된 메모리를 액세스할 때에 제1 타입 메모리(321)에서 캐시 미스(cache miss)가 발생하지 않고 캐시 히트(cache hit)가 발생한다. 따라서, 메모리 시스템(300)의 속도가 향상된다.When the media controller 323 maps the first application storage area SA_APP1 to the first type memory 321, the cache misses in the first type memory 321 when the first application APP1 accesses the allocated memory. A cache hit does not occur and a cache hit occurs. Thus, the speed of the memory system 300 is improved.

도 40은 본 발명의 실시 예에 따른 제1 타입 메모리 모듈(1100)을 보여주는 블록도이다. 예시적으로, 제1 타입 메모리 모듈(1100)은 LRDIMM 표준에 기반한 메모리 모듈일 수 있다. 도 1 및 도 40 또는 도 27 및 도 40을 참조하면, 제1 타입 메모리 모듈(1100)은 휘발성 메모리 장치(1110), 불휘발성 메모리 장치(1120), 매체 제어기(1130), 그리고 제1 내지 제8 데이터 버퍼들(1141~1148)을 포함한다.40 is a block diagram illustrating a first type memory module 1100 according to an embodiment of the present invention. In exemplary embodiments, the first type memory module 1100 may be a memory module based on the LRDIMM standard. Referring to FIGS. 1 and 40 or 27 and 40, the first type memory module 1100 may include a volatile memory device 1110, a nonvolatile memory device 1120, a media controller 1130, and a first through a first through first memory modules. 8 data buffers 1141-1148.

휘발성 메모리 장치(1110)는 제1 내지 제4 휘발성 메모리들(1111~1114)을 포함한다. 제1 내지 제4 휘발성 메모리들(1111~1114)은 서로 분리된 패키지들로 형성될 수 있다. 제1 내지 제4 휘발성 메모리들(1111~1114)은 동적 랜덤 액세스 메모리들을 포함할 수 있다. 휘발성 메모리 장치(1110)는 제1 타입 메모리(321 또는 331)일 수 있다.The volatile memory device 1110 includes first to fourth volatile memories 1111 to 1114. The first to fourth volatile memories 1111 to 1114 may be formed as packages separated from each other. The first to fourth volatile memories 1111 to 1114 may include dynamic random access memories. The volatile memory device 1110 may be a first type memory 321 or 331.

불휘발성 메모리 장치(1120)는 제1 내지 제4 불휘발성 메모리들(1121~1124)을 포함할 수 있다. 제1 내지 제4 불휘발성 메모리들(1121~1124)은 서로 분리된 패키지들로 형성될 수 있다. 제1 내지 제4 불휘발성 메모리들(1121~1124)은 불휘발성 메모리 장치(1120) 내에서 서로 다른 어드레스들에 의해 식별되는 저장 영역들일 수 있다. 불휘발성 메모리 장치(1120)는 제2 타입 메모리(322 또는 332)일 수 있다.The nonvolatile memory device 1120 may include first to fourth nonvolatile memories 1121 to 1124. The first to fourth nonvolatile memories 1121 to 1124 may be formed as packages separated from each other. The first to fourth nonvolatile memories 1121 to 1124 may be storage areas identified by different addresses in the nonvolatile memory device 1120. The nonvolatile memory device 1120 may be a second type memory 322 or 332.

불휘발성 메모리 장치(1120)는 플래시 메모리 장치(Flash Memory Device), 상 변화 메모리 장치(Phase Change Memory Device), 강유전체 메모리 장치(Ferroelectric Memory Device), 저항성 메모리 장치(Resistive Memory Deice), 자기 메모리 장치(Magnetoregistive Memory Device)와 같은 다양한 불휘발성 메모리 장치들 중 적어도 하나를 포함할 수 있다.The nonvolatile memory device 1120 may be a flash memory device, a phase change memory device, a ferroelectric memory device, a resistive memory device, or a magnetic memory device. And at least one of various nonvolatile memory devices such as magnetoregistive memory devices.

매체 제어기(1130)는 메모리 제어기(311)로부터 제1 명령 및 주소(CA1), 제1 클럭 신호(CK1), 그리고 제1 제어 신호(CTRL1)를 수신할 수 있다. 매체 제어기(1130)는 제1 내지 제8 데이터 버퍼들(1141~1148)과 제2 데이터 신호들(DQ2)을 통신할 수 있다. 매체 제어기(1130)는 제1 명령 및 주소(CA1), 제1 클럭 신호(CK1), 그리고 제1 제어 신호(CTRL1)에 따라, 휘발성 메모리 장치(1110) 또는 불휘발성 메모리 장치(1120)를 액세스할 수 있다.The media controller 1130 may receive a first command and address CA1, a first clock signal CK1, and a first control signal CTRL1 from the memory controller 311. The media controller 1130 may communicate the first to eighth data buffers 1141 to 1148 and the second data signals DQ2. The media controller 1130 accesses the volatile memory device 1110 or the nonvolatile memory device 1120 according to the first command and address CA1, the first clock signal CK1, and the first control signal CTRL1. can do.

매체 제어기(1130)는 제2 명령 및 주소(CA2), 제2 클럭 신호(CK2), 그리고 제2 제어 신호(CTRL2)를 휘발성 메모리 장치(1110)로 전송하고, 휘발성 메모리 장치(1110)와 제3 데이터 신호들(DQ3)을 통신할 수 있다. 매체 제어기(1130)는 제3 명령 및 주소(CA3), 제3 클럭 신호(CK3), 그리고 제3 제어 신호(CTRL3)를 불휘발성 메모리 장치(1120)로 전송하고, 불휘발성 메모리 장치(1120)와 제4 데이터 신호들(DQ4)을 통신할 수 있다.The media controller 1130 transmits the second command and address CA2, the second clock signal CK2, and the second control signal CTRL2 to the volatile memory device 1110, and the volatile memory device 1110 and the first control signal CTRL2. The three data signals DQ3 may be communicated. The media controller 1130 transmits the third command and address CA3, the third clock signal CK3, and the third control signal CTRL3 to the nonvolatile memory device 1120, and transmits the nonvolatile memory device 1120. And the fourth data signals DQ4 may be communicated.

예시적으로, 제1 명령 및 주소(CA1), 제2 명령 및 주소(CA2), 그리고 제3 명령 및 주소(CA3)는 서로 다른 포맷들을 가질 수 있다. 다른 예로서, 제1 명령 및 주소(CA1), 제2 명령 및 주소(CA2), 그리고 제3 명령 및 주소(CA3) 중 적어도 두 개는 동일한 포맷들을 가질 수 있다. 예를 들어, 매체 제어기(1130)가 휘발성 메모리 장치(1110)와 통신하는 포맷과 불휘발성 메모리 장치(1120)와 통신하는 포맷은 서로 다를 수 있다.In exemplary embodiments, the first command and address CA1, the second command and address CA2, and the third command and address CA3 may have different formats. As another example, at least two of the first command and address CA1, the second command and address CA2, and the third command and address CA3 may have the same formats. For example, the format in which the media controller 1130 communicates with the volatile memory device 1110 and the format in which the media controller 1130 communicates with the nonvolatile memory device 1120 may be different.

매체 제어기(1130)는 제1 버퍼 명령(CMD_B1)을 전송하여 제1 내지 제4 데이터 버퍼들(1141~1144)을 제어할 수 있다. 매체 제어기(1130)는 제2 버퍼 명령(CMD_B2)을 전송하여 제5 내지 제8 데이터 버퍼들(1145~1148)을 제어할 수 있다.The media controller 1130 may control the first to fourth data buffers 1141 to 1144 by transmitting the first buffer command CMD_B1. The media controller 1130 may control the fifth to eighth data buffers 1145 to 1148 by transmitting the second buffer command CMD_B2.

제1 내지 제8 데이터 버퍼들(1141~1148)은 데이터 스트로브 신호들(DQS)과 동기되어 메모리 제어기(311)와 제1 데이터 신호들(DQ1)을 통신할 수 있다. 제1 내지 제8 데이터 버퍼들(1141~1148)은 메모리 제어기(311)로부터 수신되는 제1 데이터 신호들(DQ1)을 제2 데이터 신호들(DQ2)로서 매체 제어기(1130)로 전달할 수 있다.The first to eighth data buffers 1141 to 1148 may communicate with the memory controller 311 and the first data signals DQ1 in synchronization with the data strobe signals DQS. The first to eighth data buffers 1141 to 1148 may transfer the first data signals DQ1 received from the memory controller 311 to the media controller 1130 as the second data signals DQ2.

제1 내지 제8 데이터 버퍼들(1141~1148)은 매체 제어기(1130)로부터 수신되는 제2 데이터 신호들(DQ2)을 제1 데이터 신호들(DQ1)로서 메모리 제어기(311)로 전달할 수 있다. 제1 내지 제8 데이터 버퍼들(1141~1148)은 서로 분리된 패키지들로 형성될 수 있다.The first to eighth data buffers 1141 to 1148 may transfer the second data signals DQ2 received from the media controller 1130 to the memory controller 311 as the first data signals DQ1. The first to eighth data buffers 1141 to 1148 may be formed of packages separated from each other.

예시적으로, 휘발성 메모리 장치(1110)는 불휘발성 메모리 장치(1120)의 캐시 메모리로 사용될 수 있다. 불휘발성 메모리 장치(1120)의 저장 공간 중 일부가 휘발성 메모리 장치(1110)에 사상될 수 있다.In exemplary embodiments, the volatile memory device 1110 may be used as a cache memory of the nonvolatile memory device 1120. Some of the storage space of the nonvolatile memory device 1120 may be mapped to the volatile memory device 1110.

메모리 제어기(311)로부터 수신되는 제1 명령 및 주소(CA1)가 가리키는 제1 저장 공간이 휘발성 메모리 장치(1110)에 사상되어 있을 때, 즉 캐시 히트가 발생할 때, 매체 제어기(1130)는 휘발성 메모리 장치(1110)에 제2 명령 및 주소(CA2)를 전달할 수 있다. 휘발성 메모리 장치(1110)는 제2 명령 및 주소(CA2)에 따라 쓰기 또는 읽기를 수행할 수 있다.When the first storage space indicated by the first command and the address CA1 received from the memory controller 311 is mapped in the volatile memory device 1110, that is, when a cache hit occurs, the media controller 1130 may read the volatile memory. The second command and the address CA2 may be transmitted to the device 1110. The volatile memory device 1110 may write or read according to the second command and the address CA2.

메모리 제어기(311)로부터 수신되는 제1 명령 및 주소(CA1)가 가리키는 제1 저장 공간이 휘발성 메모리 장치(1110)에 사상되어 있지 않을 때, 즉 캐시 미스가 발생할 때, 매체 제어기(1130)는 제1 명령 및 주소(CA1)가 가리키는 제1 저장 공간을 휘발성 메모리 장치(1110)에 사상할 수 있다.When the first storage space indicated by the first command and the address CA1 received from the memory controller 311 is not mapped in the volatile memory device 1110, that is, when a cache miss occurs, the media controller 1130 may delete the first command. The first storage space indicated by the first command and the address CA1 may be mapped to the volatile memory device 1110.

예를 들어, 불휘발성 메모리 장치(1120)의 제1 저장 공간과 연관된 제2 저장 공간을 휘발성 메모리 장치(1110)에 확보할 수 있다. 휘발성 메모리 장치(1110)에 저장 공간이 부족하면, 매체 제어기(1130)는 휘발성 메모리 장치(1110)에 사상된 다른 저장 공간을 버리거나 또는 다른 저장 공간을 불휘발성 메모리 장치(1120)에 반환함으로써, 휘발성 메모리 장치(1110)에 저장 공간을 확보할 수 있다.For example, a second storage space associated with the first storage space of the nonvolatile memory device 1120 may be secured in the volatile memory device 1110. If the storage space is insufficient in the volatile memory device 1110, the media controller 1130 discards another storage space mapped to the volatile memory device 1110 or returns another storage space to the nonvolatile memory device 1120. A storage space may be secured in the memory device 1110.

불휘발성 메모리 장치(1120)의 제1 저장 공간에 데이터가 저장되어 있으면, 매체 제어기(1130)는 제1 저장 공간의 데이터를 휘발성 메모리 장치(1110)의 제2 저장 공간으로 복사할 수 있다. 이후에, 매체 제어기(1130)는 제2 명령 및 주소(CA2)를 휘발성 메모리 장치(1110)로 전달할 수 있다. 휘발성 메모리 장치(1110)는 제2 명령 및 주소(CA2)에 응답하여 제2 저장 공간에 대해 쓰기 또는 읽기를 수행할 수 있다.If data is stored in the first storage space of the nonvolatile memory device 1120, the media controller 1130 may copy the data of the first storage space to the second storage space of the volatile memory device 1110. Thereafter, the media controller 1130 can transfer the second command and address CA2 to the volatile memory device 1110. The volatile memory device 1110 may write or read the second storage space in response to the second command and the address CA2.

예시적으로, 제1 명령 및 주소(CA1)를 통해 부재 알림이 전달되면, 매체 제어기(1130)는 부재 알림에 포함된 논리 주소 또는 논리 주소들에 대응하는 불휘발성 메모리 장치(1120)의 저장 공간을 휘발성 메모리 장치(1110)에 사상할 수 있다. 부재 알림은 읽기 동작을 위한 제1 명령 및 주소(CA1) 또는 쓰기 동작을 위한 제1 명령 및 주소(CA1)와 다른 형태로 전달될 수 있다. 예를 들어, 매체 제어기(1130)는 부재 알림을 위한 제1 명령 및 주소(CA1)를 수신하고, 캐시 할당을 수행할 수 있다.In exemplary embodiments, when the absence notification is transmitted through the first command and address CA1, the media controller 1130 may store a storage space of the nonvolatile memory device 1120 corresponding to the logical address or logical addresses included in the absence notification. May be mapped to the volatile memory device 1110. The absence notification may be delivered in a different form from the first command and address CA1 for the read operation or the first command and address CA1 for the write operation. For example, the media controller 1130 may receive the first command and address CA1 for the absence notification and perform a cache allocation.

휘발성 메모리 장치(1110)에서 제2 저장 공간을 해제하고자 할 때, 매체 제어기(1130)는 제2 저장 공간이 오염되었는지(dirty) 체크할 수 있다. 예를 들어, 제2 저장 공간에 대해 쓰기가 수행된 때에, 제2 저장 공간은 오염된(dirty) 것으로 판단될 수 있다.When the second storage space is to be released in the volatile memory device 1110, the media controller 1130 may check whether the second storage space is dirty. For example, when writing to the second storage space is performed, the second storage space may be determined to be dirty.

제2 저장 공간이 오염되지 않았으면(not dirty), 매체 제어기(1130)는 제2 저장 공간의 데이터를 버림으로써 제2 저장 공간을 해제할 수 있다. 제2 저장 공간이 오염되었으면(dirty), 매체 제어기(1130)는 제2 저장 공간의 데이터를 불휘발성 메모리 장치(1120)에 기입함으로써 제2 저장 공간을 반환할 수 있다. 제2 저장 공간을 반환한 후에, 매체 제어기(1130)는 제2 저장 공간을 버림으로써 제2 저장 공간을 해제할 수 있다.If the second storage space is not dirty, the media controller 1130 may release the second storage space by discarding data in the second storage space. If the second storage space is dirty, the media controller 1130 may return the second storage space by writing data of the second storage space to the nonvolatile memory device 1120. After returning the second storage space, the media controller 1130 may release the second storage space by discarding the second storage space.

다른 예로서, 휘발성 메모리 장치(1110) 및 불휘발성 메모리 장치(1120)는 메모리 제어기(311)에 의해 직접 액세스될 수 있다. 예를 들어, 제1 명령 및 주소(CA1) 또는 제1 제어 신호(CTRL1)가 휘발성 메모리 장치(1110)를 가리킬 때, 매체 제어기(1130)는 제2 명령 및 주소(CA2), 제2 클럭 신호(CK2) 또는 제2 제어 신호(CTRL2)를 휘발성 메모리 장치(1110)에 전달할 수 있다.As another example, the volatile memory device 1110 and the nonvolatile memory device 1120 may be directly accessed by the memory controller 311. For example, when the first command and address CA1 or the first control signal CTRL1 points to the volatile memory device 1110, the media controller 1130 may include the second command and address CA2 and the second clock signal. The CK2 or the second control signal CTRL2 may be transmitted to the volatile memory device 1110.

제1 명령 및 주소(CA1) 또는 제1 제어 신호(CTRL1)가 불휘발성 메모리 장치(1120)를 가리킬 때, 매체 제어기(1130)는 제3 명령 및 주소(CA3), 제3 클럭 신호(CK3) 또는 제3 제어 신호(CTRL3)를 불휘발성 메모리 장치(1120)에 전달할 수 있다.When the first command and address CA1 or the first control signal CTRL1 points to the nonvolatile memory device 1120, the media controller 1130 may transmit the third command and address CA3 and the third clock signal CK3. Alternatively, the third control signal CTRL3 may be transmitted to the nonvolatile memory device 1120.

예시적으로, 휘발성 메모리들, 불휘발성 메모리들, 그리고 데이터 버퍼들의 수는 한정되지 않는다. 휘발성 메모리들 또는 불휘발성 메모리들의 수는 데이터 버퍼들의 수와 동일할 수 있다. 데이터 버퍼들의 수는 9개로 변경될 수 있다.In exemplary embodiments, the number of volatile memories, nonvolatile memories, and data buffers is not limited. The number of volatile memories or nonvolatile memories may be equal to the number of data buffers. The number of data buffers can be changed to nine.

매체 제어기(1130)는 불휘발성 메모리 장치(1120)의 제1 메타 저장 영역(SA1_M)(도 28 참조)에 논리 주소들(LA) 및 물리 주소들(PA) 사이의 사상 정보를 저장할 수 있다. 메모리 제어기(311)로부터 수신되는 제1 명령 및 주소(CA1)는 불휘발성 메모리 장치(1120)의 논리 주소들(LA)에 기반할 수 있다.The media controller 1130 may store mapping information between the logical addresses LA and the physical addresses PA in the first meta storage area SA1_M (see FIG. 28) of the nonvolatile memory device 1120. The first command and address CA1 received from the memory controller 311 may be based on logical addresses LA of the nonvolatile memory device 1120.

매체 제어기(1130)가 제1 명령 및 주소(CA1)에 따라 불휘발성 메모리 장치(1120)를 액세스할 때, 매체 제어기(1130)는 사상 정보에 따라 논리 주소들(LA)을 물리 주소들(PA)로 변환할 수 있다. 매체 제어기(1130)는 변환된 물리 주소들(PA)을 이용하여 불휘발성 메모리 장치(1120)를 액세스할 수 있다. 즉, 제3 명령 및 주소(CA3)는 물리 주소들(PA)에 기반할 수 있다.When the media controller 1130 accesses the nonvolatile memory device 1120 according to the first command and address CA1, the media controller 1130 converts the logical addresses LA according to the mapping information into the physical addresses PA. Can be converted to). The media controller 1130 can access the nonvolatile memory device 1120 using the translated physical addresses PA. That is, the third command and address CA3 may be based on the physical addresses PA.

불휘발성 메모리 장치(1120)의 휘발성 메모리 장치(1110)에 대한 캐시 할당은 논리 주소들(LA) 또는 물리 주소들(PA)에 따라 수행될 수 있다. 즉, 제2 명령 및 주소(CA2)는 논리 주소들(LA) 또는 물리 주소들(PA)에 기반할 수 있다. 매체 제어기(1130)는 논리 주소들(LA) 또는 물리 주소들(PA)을 이용하여 캐시 히트 또는 캐시 미스를 판단할 수 있다.Cache allocation of the volatile memory device 1110 of the nonvolatile memory device 1120 may be performed according to logical addresses LA or physical addresses PA. That is, the second command and address CA2 may be based on logical addresses LA or physical addresses PA. The media controller 1130 may determine a cache hit or a cache miss using the logical addresses LA or the physical addresses PA.

도 41은 본 발명의 실시 예에 따른 메모리 시스템(400)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(400)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(400)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.41 is a block diagram illustrating a memory system 400 according to an example embodiment. For example, the memory system 400 may include a server such as an application server, a client server, and a data server. As another example, memory system 400 may include a personal computer or workstation.

도 41을 참조하면, 메모리 시스템(400)은 프로세서(410), 제1 내지 제4 메모리 모듈들(420~450), 루트 컴플렉스(460), 그리고 스토리지 장치(470)를 포함한다. 프로세서(410)는 메모리 시스템(400)의 구성 요소들 및 구성 요소들의 동작들을 제어할 수 있다. 프로세서(410)는 운영체제 및 응용들을 실행하고, 운영체제 또는 응용들을 이용하여 데이터를 처리할 수 있다.Referring to FIG. 41, the memory system 400 includes a processor 410, first to fourth memory modules 420 to 450, a root complex 460, and a storage device 470. The processor 410 may control the components of the memory system 400 and the operations of the components. The processor 410 may execute an operating system and applications, and process data using the operating system or applications.

프로세서(410)는 메모리 제어기(411) 및 캐시 메모리(412)를 포함할 수 있다. 메모리 제어기(411)는 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 제1 내지 제4 메모리 모듈들(420~450)을 액세스할 수 있다. 캐시 메모리(412)는 정적 랜덤 액세스 메모리(SRAM)와 같은 고속의 메모리를 포함할 수 있다.The processor 410 may include a memory controller 411 and a cache memory 412. The memory controller 411 may access the first through fourth memory modules 420 ˜ 450 through the main channels MCH and the auxiliary channels SCH. Cache memory 412 may include high speed memory, such as static random access memory (SRAM).

제1 내지 제4 메모리 모듈들(420~450)은 메인 채널들(MCH) 및 보조 채널들(SCH)을 통해 메모리 제어기(411)에 연결될 수 있다. 메인 채널들(MCH)은 메모리 모듈들(420~450)에 데이터를 저장하거나 데이터를 읽기 위해 사용되는 채널들일 수 있다. 메인 채널들(MCH)은 제1 내지 제4 메모리 모듈들(420~450)에 대해 각각 제공되는 채널들을 포함할 수 있다.The first to fourth memory modules 420 to 450 may be connected to the memory controller 411 through the main channels MCH and the auxiliary channels SCH. The main channels MCH may be channels used to store data or read data in the memory modules 420 to 450. The main channels MCH may include channels provided for the first to fourth memory modules 420 to 450, respectively.

보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(420~450)에 데이터를 저장하거나 읽는 것 외에, 제1 내지 제4 메모리 모듈들(420~450)과 연관된 추가적인 기능들을 제공할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(420~450)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(411)에 제공할 수 있다. 보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(420~450)에 대해 각각 제공되는 채널들을 포함할 수 있다.The auxiliary channels SCH may provide additional functions associated with the first to fourth memory modules 420 to 450 in addition to storing or reading data in the first to fourth memory modules 420 to 450. have. For example, the first to fourth memory modules 420 to 450 may provide their own information to the memory controller 411 through the auxiliary channels SCH. The auxiliary channels SCH may include channels provided for the first to fourth memory modules 420 to 450, respectively.

제1 내지 제4 메모리 모듈들(420~450)은 메모리 시스템(400)의 메인 메모리로 사용될 수 있다. 제1 내지 제4 메모리 모듈들(420~450)은 DIMM(Dual In-line Memory Module), RDIMM(Registered DIMM), LRDIMM(Load Reduced DIMM) 등과 같은 메모리 모듈의 표준들 중 하나에 따라 메모리 제어기(411)와 통신할 수 있다.The first to fourth memory modules 420 to 450 may be used as a main memory of the memory system 400. The first to fourth memory modules 420 to 450 may include a memory controller according to one of standards of a memory module such as a dual in-line memory module (DIMM), a registered DIMM (RDIMM), a load reduced DIMM (LRDIMM), or the like. 411).

루트 컴플렉스(460)는 프로세서(410)가 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(460)에 스토리지 장치(470)가 연결될 수 있다. 스토리지 장치(470)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.The root complex 460 can provide channels through which the processor 410 accesses various peripheral devices. For example, the storage device 470 may be connected to the root complex 460. The storage device 470 may include a hard disk drive, an optical disk drive, a solid state drive, or the like.

프로세서(410)는 캐시 메모리(412), 메인 메모리인 제1 내지 제4 메모리 모듈들(420~450), 그리고 스토리지 장치(470)를 계층적으로 관리할 수 있다. 예를 들어, 프로세서(410)는 스토리지 장치(470)에 저장된 데이터 중 필요한 데이터를 제1 내지 제4 메모리 모듈들(420~450)을 포함하는 메인 메모리에 로드할 수 있다. 프로세서(410)는 메인 메모리에 저장된 데이터 중 백업이 필요한 데이터를 스토리지 장치(470)로 플러시(flush)할 수 있다.The processor 410 may hierarchically manage the cache memory 412, the first to fourth memory modules 420 to 450 which are main memories, and the storage device 470. For example, the processor 410 may load necessary data among data stored in the storage device 470 into the main memory including the first to fourth memory modules 420 to 450. The processor 410 may flush data to be backed up from the data stored in the main memory to the storage device 470.

제1 내지 제4 메모리 모듈들(420~450)을 포함하는 메인 메모리의 저장 영역 중 일부는 캐시 메모리(412)에 사상될 수 있다. 프로세서(410)는 메인 메모리의 특정한 저장 공간을 액세스할 필요가 있을 때, 특정한 저장 공간이 캐시 메모리(412)에 사상되어 있는지 판단할 수 있다.Some of the storage areas of the main memory including the first to fourth memory modules 420 to 450 may be mapped to the cache memory 412. When the processor 410 needs to access a specific storage space of the main memory, the processor 410 may determine whether the specific storage space is mapped to the cache memory 412.

특정한 저장 공간이 캐시 메모리(412)에 사상되어 있으면, 프로세서(410)는 캐시 메모리(412)의 특정한 저장 공간을 액세스할 수 있다. 특정한 저장 공간이 캐시 메모리에 사상되어 있지 않으면, 프로세서(410)는 제1 내지 제4 메모리 모듈들(420~450)의 특정한 저장 공간을 캐시 메모리(412)에 사상할(또는 가져올(fetch)) 수 있다.If a particular storage space is mapped to the cache memory 412, the processor 410 can access the specific storage space of the cache memory 412. If a particular storage space is not mapped to the cache memory, the processor 410 maps (or fetches) the specific storage space of the first to fourth memory modules 420 to 450 to the cache memory 412. Can be.

캐시 메모리(412)의 저장 공간이 부족하면, 프로세서(410)는 기존에 캐시 메모리(412)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(410)는 갱신된 데이터를 제1 내지 제4 메모리 모듈들(420~450)로 플러시할 수 있다.If the storage space of the cache memory 412 is insufficient, the processor 410 may release the storage space previously mapped to the cache memory 412. When data of the storage space to be released is updated, the processor 410 may flush the updated data to the first to fourth memory modules 420 to 450.

제1 내지 제4 메모리 모듈들(420~450)은 이종의 메모리 모듈들을 포함할 수 있다. 예를 들어, 제1 및 제2 메모리 모듈들(420, 430)은 제1 타입 메모리 모듈들일 수 있다. 제3 및 제4 메모리 모듈들(440, 450)은 제2 타입 메모리 모듈들일 수 있다.The first to fourth memory modules 420 to 450 may include heterogeneous memory modules. For example, the first and second memory modules 420 and 430 may be first type memory modules. The third and fourth memory modules 440 and 450 may be second type memory modules.

제1 메모리 모듈(420)은 제1 타입 메모리(421), 제2 타입 메모리(422), 매체 제어기(423), 그리고 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(425)를 포함할 수 있다. 제2 메모리 모듈(430)은 제1 타입 메모리(431), 제2 타입 메모리(432), 매체 제어기(433), 그리고 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(435)를 포함할 수 있다. 이하에서, 제1 메모리 모듈(420)을 참조하여 제1 타입 메모리 모듈들(420, 430)이 설명된다.The first memory module 420 may include a first type memory 421, a second type memory 422, a media controller 423, and a serial presence detection (SPD) device 425. . The second memory module 430 may include a first type memory 431, a second type memory 432, a media controller 433, and a serial presence detection (SPD) device 435. . Hereinafter, the first type memory modules 420 and 430 will be described with reference to the first memory module 420.

제1 타입 메모리(421)는 고속의 휘발성 메모리, 예를 들어 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 제2 타입 메모리(422)는 제1 타입 메모리(421)보다 느린 속도를 갖고, 제1 타입 메모리(421)보다 큰 저장 용량을 갖는 불휘발성 메모리를 포함할 수 있다. 예를 들어, 제2 타입 메모리(422)는 플래시 메모리, 상 변화 메모리(Phase Change Memory), 강유전체 메모리(Ferroelectric Memory), 자기 메모리(Magnetic Memory), 저항성 메모리(Resistive Memory) 등을 포함할 수 있다.The first type memory 421 may include a high speed volatile memory, for example, a dynamic random access memory (DRAM). The second type memory 422 may include a nonvolatile memory having a slower speed than the first type memory 421 and having a larger storage capacity than the first type memory 421. For example, the second type memory 422 may include a flash memory, a phase change memory, a ferroelectric memory, a magnetic memory, a resistive memory, and the like. .

매체 제어기(423)는 메인 채널들(MCH) 중 대응하는 채널을 통해 전달되는 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)로부터의 액세스 명령을 제1 타입 메모리(421) 또는 제2 타입 메모리(422)에 전달할 수 있다. 액세스 명령에 따라, 매체 제어기(423)는 메인 채널들(MCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)와 데이터를 교환할 수 있다.The media controller 423 may issue an access command from an external host device, eg, the memory controller 411 or the processor 410, transmitted through a corresponding one of the main channels MCH to the first type memory 421. Alternatively, the data may be transferred to the second type memory 422. According to the access command, the media controller 423 may exchange data with an external host device, for example, the memory controller 411 or the processor 410, through a corresponding one of the main channels MCH.

매체 제어기(423)는 제2 타입 메모리(422)의 저장 용량 또는 저장 공간을 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공할 수 있다. 매체 제어기(423)는 제1 타입 메모리(421)를 제2 타입 메모리(422)의 캐시 메모리로 사용할 수 있다. The media controller 423 may provide a storage capacity or storage space of the second type memory 422 to an external host device, for example, the memory controller 411 or the processor 410. The media controller 423 may use the first type memory 421 as a cache memory of the second type memory 422.

예를 들어, 매체 제어기(423)는 제2 타입 메모리(422)의 저장 공간 중 일부 저장 공간을 제1 타입 메모리(421)에 사상할 수 있다. 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(421)에 사상되어 있으면, 매체 제어기(423)는 액세스 명령을 제1 타입 메모리(421)로 전달할 수 있다.For example, the media controller 423 may map some of the storage spaces of the second type memory 422 to the first type memory 421. If the storage space associated with an access command from an external host device, such as the memory controller 411 or the processor 410, is mapped to the first type memory 421, the media controller 423 may issue the first access command. It may be transferred to the type memory 421.

외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(421)에 사상되어 있지 않으면, 매체 제어기(423)는 해당 저장 공간을 제2 타입 메모리(422)로부터 제1 타입 메모리(421)로 사상(또는 백업)할 수 있다.If the storage space associated with an access command from an external host device, for example, the memory controller 411 or the processor 410, is not mapped to the first type memory 421, the media controller 423 may not be able to store the storage space. Mapping (or backing up) from the second type memory 422 to the first type memory 421 may be performed.

제1 타입 메모리(421)의 저장 공간이 부족하면, 매체 제어기(423)는 기존에 제1 타입 메모리(421)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(423)는 갱신된 데이터를 제2 타입 메모리(422)로 플러시할 수 있다.If the storage space of the first type memory 421 is insufficient, the media controller 423 may release the storage space previously mapped to the first type memory 421. When the data of the storage space to be released is updated, the media controller 423 may flush the updated data to the second type memory 422.

매체 제어기(423)는 매체 스위치(MSW)를 포함할 수 있다. 매체 스위치(MSW)는 매체 제어기(423) 내에 집적 회로의 일부로 포함되는 하드웨어 또는 매체 제어기(423)에서 실행되는 펌웨어의 형태로 구현될 수 있다. 매체 스위치(MSW)는 제1 타입 메모리(421) 및 제2 타입 메모리(422)와의 통신을 제어할 수 있다.The media controller 423 can include a media switch (MSW). The media switch MSW may be implemented in the form of hardware included in the media controller 423 as part of an integrated circuit or firmware executed by the media controller 423. The media switch MSW may control communication with the first type memory 421 and the second type memory 422.

예를 들어, 트레이닝 시에, 매체 스위치(MSW)는 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)로부터의 트레이닝 명령을 제1 타입 메모리(421)로만 전달하도록 구성될 수 있다. 트레이닝이 완료된 후에, 매체 스위치(MSW)는 외부의 호스트 장치로부터의 액세스 명령에 따라, 제1 타입 메모리(421) 또는 제2 타입 메모리(422)로 액세스 명령을 전송할 수 있다.For example, in training, the media switch MSW may be configured to deliver training instructions from an external host device, such as the memory controller 411 or the processor 410, only to the first type memory 421. have. After the training is completed, the media switch MSW may transmit the access command to the first type memory 421 or the second type memory 422 according to an access command from an external host device.

SPD 장치(425)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)와 통신할 수 있다. 예를 들어, 제1 메모리 모듈(420)이 초기화될 때에, SPD 장치(425)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공할 수 있다.The SPD device 425 may communicate with an external host device such as the memory controller 411 or the processor 410 through a corresponding channel among the auxiliary channels SCH. For example, when the first memory module 420 is initialized, the SPD device 425 transmits the stored information to an external host device, for example, the memory controller 411 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 410 may provide the processor 410.

예를 들어, SPD 장치(425)는 제1 메모리 모듈(420)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(425)는 제2 타입 메모리(422)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(425)는 제2 타입 메모리(422)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공할 수 있다.For example, the SPD device 425 may store information about a storage capacity provided to an external host device, for example, the memory controller 411 or the processor 410 as a storage space of the first memory module 420. have. For example, the SPD device 425 may store information about a storage capacity of the second type memory 422. Upon initialization, the SPD device 425 may provide information about the storage capacity of the second type memory 422 to an external host device, for example, the memory controller 411 or the processor 410.

예를 들어, SPD 장치(425)에 저장되는 용량 정보는 제2 타입 메모리(422)의 사용자 용량에 대한 정보를 포함할 수 있다. 제2 타입 메모리(422)의 저장 용량은 사용자 용량, 메타 용량, 그리고 예비 용량을 포함할 수 있다. 사용자 용량은 제2 타입 메모리(422)가 외부의 호스트 장치, 예를 들어 메모리 제어기(411)에 제공하는 저장 용량일 수 있다.For example, the capacity information stored in the SPD device 425 may include information about a user capacity of the second type memory 422. The storage capacity of the second type memory 422 may include a user capacity, a meta capacity, and a spare capacity. The user capacity may be a storage capacity provided by the second type memory 422 to an external host device, for example, the memory controller 411.

메타 용량은 제2 타입 메모리(422)를 관리하기 위한 다양한 메타 정보가 저장되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(411)에 공개되지 않는 저장 용량일 수 있다. 예비 용량은 제2 타입 메모리(422)를 관리하기 위해 확보되며, 외부의 호스트 장치, 예를 들어 메모리 제어기(411)에 공개되지 않는 저장 용량일 수 있다.The meta capacity stores various meta information for managing the second type memory 422, and may be a storage capacity not disclosed to an external host device, for example, the memory controller 411. The spare capacity is reserved for managing the second type memory 422 and may be a storage capacity that is not disclosed to an external host device, for example, the memory controller 411.

SPD 장치(425)에 저장된 용량 정보는 제2 타입 메모리(422)의 사용자 용량에 대한 정보를 포함할 수 있다. 이하에서, 제2 타입 메모리(422)의 용량은 제2 타입 메모리(422)의 사용자 용량을 가리키는 것으로 이해될 수 있다.The capacity information stored in the SPD device 425 may include information about a user capacity of the second type memory 422. Hereinafter, the capacity of the second type memory 422 may be understood to indicate the user capacity of the second type memory 422.

제3 메모리 모듈(440)은 제1 타입 메모리(441) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(445)를 포함할 수 있다. 제4 메모리 모듈(450)은 제1 타입 메모리(451) 및 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치(455)를 포함할 수 있다. 이하에서, 제3 메모리 모듈(440)을 참조하여 제2 타입 메모리 모듈들(440, 450)이 설명된다.The third memory module 440 may include a first type memory 441 and a serial presence detection (SPD) device 445. The fourth memory module 450 may include a first type memory 451 and a serial presence detection (SPD) device 455. Hereinafter, the second type memory modules 440 and 450 will be described with reference to the third memory module 440.

제1 타입 메모리(441)는 제1 메모리 모듈(420)의 제1 타입 메모리(421)와 마찬가지로 동적 랜덤 액세스 메모리를 포함할 수 있다. SPD 장치(445)는 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)와 통신할 수 있다. 예를 들어, 제3 메모리 모듈(440)이 초기화될 때에, SPD 장치(445)는 저장된 정보를 보조 채널들(SCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공할 수 있다.The first type memory 441 may include a dynamic random access memory like the first type memory 421 of the first memory module 420. The SPD device 445 may communicate with an external host device such as the memory controller 411 or the processor 410 through a corresponding channel among the auxiliary channels SCH. For example, when the third memory module 440 is initialized, the SPD device 445 transmits the stored information to an external host device, for example, the memory controller 411 through a corresponding channel among the auxiliary channels SCH. Alternatively, the processor 410 may provide the processor 410.

예를 들어, SPD 장치(425)는 제3 메모리 모듈(440)의 저장 공간으로서 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공되는 저장 용량에 대한 정보를 저장할 수 있다. 예를 들어, SPD 장치(445)는 제1 타입 메모리(441)의 저장 용량에 대한 정보를 저장할 수 있다. 초기화 시에, SPD 장치(445)는 제1 타입 메모리(441)의 저장 용량에 대한 정보를 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공할 수 있다.For example, the SPD device 425 may store information about a storage capacity provided to an external host device, for example, the memory controller 411 or the processor 410 as a storage space of the third memory module 440. have. For example, the SPD device 445 may store information about a storage capacity of the first type memory 441. At initialization, the SPD device 445 may provide information about the storage capacity of the first type memory 441 to an external host device, for example, the memory controller 411 or the processor 410.

메모리 시스템(400)에 전원이 공급되면, 메모리 제어기(411)는 제1 내지 제4 메모리 모듈들(420~450)과 초기화를 수행할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(420~450)의 SPD 장치들(425~455)은 보조 채널들(SCH)을 통해 메모리 제어기(411)에 각각 용량 정보를 제공할 수 있다.When power is supplied to the memory system 400, the memory controller 411 may perform initialization with the first to fourth memory modules 420 to 450. For example, the SPD devices 425 to 455 of the first to fourth memory modules 420 to 450 may provide capacity information to the memory controller 411 through auxiliary channels SCH, respectively.

제1 타입 메모리 모듈들(420, 430)의 SPD 장치들(425, 435)은 각각 제2 타입 메모리들(422, 432)의 저장 용량들을 메모리 제어기(411)에 제공할 수 있다. 제2 타입 메모리 모듈들(440, 450)의 SPD 장치들(445, 455)은 각각 제1 타입 메모리들(441, 451)의 저장 용량들을 메모리 제어기(411)에 제공할 수 있다. 예를 들어, 메모리 제어기(411)는 SPD 장치들(425~455)로부터 저장 용량들을 각각 읽을 수 있다.The SPD devices 425 and 435 of the first type memory modules 420 and 430 may provide the storage controllers of the second type memories 422 and 432 to the memory controller 411, respectively. The SPD devices 445 and 455 of the second type memory modules 440 and 450 may provide the storage controllers of the first type memories 441 and 451 to the memory controller 411, respectively. For example, the memory controller 411 may read the storage capacities from the SPD devices 425 ˜ 455, respectively.

초기화가 수행된 후에, 메모리 제어기(411)는 제1 내지 제4 메모리 모듈들(420~450)과 트레이닝을 수행할 수 있다. 예를 들어, 메모리 제어기(411)는 제1 내지 제4 메모리 모듈들(420~450)로 트레이닝 명령을 전송함으로써 트레이닝을 수행할 수 있다.After the initialization is performed, the memory controller 411 may perform training with the first to fourth memory modules 420 to 450. For example, the memory controller 411 may perform training by transmitting a training command to the first to fourth memory modules 420 to 450.

트레이닝 명령은 둘 이상의 읽기 명령들 또는 둘 이상의 쓰기 명령들을 포함할 수 있다. 트레이닝 동안 메모리 제어기(411)는 제1 내지 제4 메모리 모듈들(420~450)에 명령들을 반복적으로 전송함으로써, 클럭 신호에 동기되어 명령들을 전송하는 타이밍들을 정렬하고, 그리고 제1 내지 제4 메모리 모듈들(420~450)의 저장 용량들의 무결성을 체크할 수 있다.The training command may include two or more read commands or two or more write commands. During training, the memory controller 411 repeatedly transmits instructions to the first to fourth memory modules 420 to 450, thereby aligning timings of transmitting instructions in synchronization with a clock signal, and first to fourth memory. The integrity of the storage capacities of the modules 420-450 may be checked.

메모리 제어기(411)가 식별하는 제2 타입 메모리 모듈들(440, 450)의 저장 공간들은 제1 타입 메모리들(441, 451)의 저장 공간들이다. 따라서, 메모리 제어기(411)의 트레이닝 명령은 제1 타입 메모리들(441, 451)로 전달된다.The storage spaces of the second type memory modules 440 and 450 identified by the memory controller 411 are the storage spaces of the first type memories 441 and 451. Accordingly, the training command of the memory controller 411 is transmitted to the first type memories 441 and 451.

메모리 제어기(411)가 식별하는 제1 타입 메모리 모듈들(420, 430)의 저장 공간들은 제2 타입 메모리들(422, 432)의 저장 공간들이다. 따라서, 메모리 제어기(411)는 제2 타입 메모리들(422, 432)의 저장 공간들에 대해 트레이닝 명령을 전송할 수 있다.The storage spaces of the first type memory modules 420 and 430 identified by the memory controller 411 are the storage spaces of the second type memories 422 and 432. Thus, the memory controller 411 may send a training command to storage spaces of the second type memories 422 and 432.

그러나 메인 메모리들을 제어하는 메모리 제어기(411)의 트레이닝 명령은 제1 타입 메모리, 즉 동적 랜덤 액세스에 부합하도록 정해져 있다. 메모리 제어기(411)가 제2 타입 메모리들(422, 432)의 저장 공간에 대해 트레이닝을 수행할 수 있도록 하려면, 메모리 제어기(411)의 구조 또는 기능이 변경되어야 한다. 그러나 기존에 사용되고 있는 메모리 제어기(411)를 변경하는 것은 큰 비용을 초래한다.However, the training instruction of the memory controller 411 controlling the main memories is determined to correspond to the first type memory, i.e., dynamic random access. In order for the memory controller 411 to be able to perform training on the storage space of the second type memories 422 and 432, the structure or function of the memory controller 411 must be changed. However, changing the memory controller 411 that is used in the past incurs a large cost.

이러한 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 제1 타입 메모리 모듈들(420, 430)은 제2 타입 메모리들(422, 432)의 저장 공간들을 메모리 제어기(411)에 제공하되, 트레이닝을 제1 타입 메모리(421)에게 전담시킨다. 따라서, 메모리 제어기(411)의 트레이닝에 영향을 주거나 오동작을 유발하지 않으면서, 제2 타입 메모리들(422, 432)의 저장 공간들을 메모리 제어기(411)에 제공할 수 있다.In order to solve this problem, the first type memory modules 420 and 430 according to an embodiment of the present invention provide storage space of the second type memories 422 and 432 to the memory controller 411, but do not provide training. To the first type memory 421. Accordingly, the storage spaces of the second type memories 422 and 432 may be provided to the memory controller 411 without affecting the training of the memory controller 411 or causing a malfunction.

상술된 실시 예에서, 루트 컴플렉스(460)에 스토리지 장치(470)가 연결되는 것으로 도시된다. 그러나 루트 컴플렉스(460)에 연결되는 장치는 스토리지 장치(470)로 한정되지 않는다.In the above-described embodiment, the storage device 470 is shown connected to the root complex 460. However, the device connected to the root complex 460 is not limited to the storage device 470.

도 42는 본 발명의 실시 예에 따른 제1 타입 메모리 모듈(420 또는 430)의 동작 방법을 보여주는 순서도이다. 예시적으로, 제1 메모리 모듈(420)을 참조하여 동작 방법이 설명된다. 그러나 제2 메모리 모듈(430) 또는 도 42를 참조하여 설명된 동작 방법을 수행할 수 있다.42 is a flowchart illustrating a method of operating a first type memory module 420 or 430 according to an embodiment of the present invention. For example, an operation method is described with reference to the first memory module 420. However, the operation method described with reference to FIG. 42 or the second memory module 430 may be performed.

도 41 및 도 42를 참조하면, S311 단계에서, 초기화 동안에, 제1 메모리 모듈(420)은 제2 타입 메모리(422)의 용량을 제1 메모리 모듈(420)의 전체 용량으로 보고한다. 예를 들어, 제1 메모리 모듈(420)은 SPD 장치(425)에 저장된 용량 정보를 메모리 제어기(411)에 전달할 수 있다. 용량 정보는 제2 타입 메모리(422)의 용량 정보를 포함할 수 있다.41 and 42, in operation S311, during initialization, the first memory module 420 reports the capacity of the second type memory 422 as the total capacity of the first memory module 420. For example, the first memory module 420 may transfer the capacity information stored in the SPD device 425 to the memory controller 411. The capacity information may include capacity information of the second type memory 422.

S312 단계에서, 트레이닝 동안에, 제1 메모리 모듈(420)은 메모리 제어기(411)로부터 수신되는 제2 타입 메모리(422)에 대한 트레이닝 명령을 제1 타입 메모리로 전송할 수 있다. 제1 타입 메모리(421)는 트레이닝 명령에 따라 메모리 제어기(411)와 트레이닝을 수행할 수 있다.In operation S312, during training, the first memory module 420 may transmit a training command for the second type memory 422 received from the memory controller 411 to the first type memory. The first type memory 421 may perform training with the memory controller 411 according to a training command.

제2 타입 메모리(422)에 대한 트레이닝 명령을 제2 타입 메모리(422)가 아닌 제1 타입 메모리(421)로 전송함으로써, 제1 메모리 모듈(420)은 트레이닝에 영향을 주지 않고 그리고 트레이닝에서 오동작을 유발하는 것이 방지된다.By sending a training command for the second type memory 422 to the first type memory 421 rather than the second type memory 422, the first memory module 420 does not affect training and malfunctions in the training. Causing is prevented.

도 43은 메모리 제어기(411)가 제1 및 제3 메모리 모듈들(420, 440)과 초기화를 수행하는 예를 보여준다. 도 43을 참조하면, 제1 및 제3 메모리 모듈들(420, 440)은 각각 제1 및 제2 보조 채널들(SCH1, SCH2)을 통해 제1 및 제2 용량 정보들(CI1, CI2)을 메모리 제어기(411)에 전송할 수 있다. 예를 들어, 메모리 제어기(411)는 SPD 장치들(425, 445)로부터 각각 제1 및 제2 용량 정보들(CI1, CI2)을 읽을 수 있다.43 shows an example in which the memory controller 411 performs initialization with the first and third memory modules 420 and 440. Referring to FIG. 43, the first and third memory modules 420 and 440 may receive the first and second capacity information CI1 and CI2 through the first and second auxiliary channels SCH1 and SCH2, respectively. And transmit it to the memory controller 411. For example, the memory controller 411 may read the first and second capacity information CI1 and CI2 from the SPD devices 425 and 445, respectively.

제1 용량 정보(CI1)는 제1 메모리 모듈(420)의 용량으로서 제2 타입 메모리(422)의 용량을 가리킬 수 있다. 제1 용량 정보(CI1)가 가리키는 제2 타입 메모리(422)의 용량은 제1 타입 메모리(421)의 용량(이하에서, 단위 용량)과 연관될 수 있다. 예를 들어, 제1 용량 정보(CI1)에 포함된 제2 타입 메모리(422)의 용량은 단위 용량의 N배(N은 양의 정수)일 수 있다.The first capacity information CI1 may indicate the capacity of the second type memory 422 as the capacity of the first memory module 420. The capacity of the second type memory 422 indicated by the first capacity information CI1 may be associated with the capacity (hereinafter, referred to as a unit capacity) of the first type memory 421. For example, the capacity of the second type memory 422 included in the first capacity information CI1 may be N times the unit capacity (N is a positive integer).

제1 용량 정보(CI1)는 단위 용량을 갖는 N개의 메모리들이 존재함을 가리킬 수 있다. 예를 들어, 제1 용량 정보(CI1)는 단위 용량을 갖는 N개의 랭크들이 존재함을 가리킬 수 있다. 예를 들어, 제1 용량 정보(CI1)는 제2 타입 메모리(422)의 저장 공간을 N개의 물리적 또는 논리적으로 구별되는 저장 공간들(예를 들어, 가상으로 구별된 메모리들)로 나타낼 수 있다.The first capacity information CI1 may indicate that there are N memories having a unit capacity. For example, the first capacity information CI1 may indicate that there are N ranks having a unit capacity. For example, the first capacity information CI1 may represent the storage space of the second type memory 422 as N physical or logically distinct storage spaces (eg, virtually distinct memories). .

메모리 제어기(411)는 제1 용량 정보(CI1)에 따라 제1 메모리 모듈(420)의 용량을 제1 식별된 용량(IC1)으로 식별할 수 있다. 메모리 제어기(411)는 단위 용량을 갖는 N개의 가상으로 구별된 메모리들에 식별자들을 부여할 수 있다. 예를 들어, N이 8인 경우, 메모리 제어기(411)는 단위 용량을 갖는 8개의 가상 메모리들에 제1 내지 제8 식별자들(CID1~CID8)을 부여할 수 있다.The memory controller 411 may identify the capacity of the first memory module 420 as the first identified capacity IC1 according to the first capacity information CI1. The memory controller 411 may assign identifiers to N virtually distinct memories having a unit capacity. For example, when N is 8, the memory controller 411 may assign first to eighth identifiers CID1 to CID8 to eight virtual memories having a unit capacity.

제1 용량 정보(CI1)에 따라, 메모리 제어기(411)는 N개의 메모리들(예를 들어, 가상으로 구별된 메모리들)이 제1 메모리 모듈(420)에 존재하는 것으로 식별할 수 있다. 초기화 및 트레이닝이 완료된 후에, 메모리 제어기(411)는 N개의 메모리들을 개별적으로 액세스할 수 있다. 초기화 및 트레이닝이 완료된 후에, 제1 메모리 모듈(420)의 매체 제어기(423)는 N개의 메모리들에 대한 액세스들을 제2 타입 메모리(422)의 물리적 또는 논리적으로 구별되는 저장 공간들에 대한 액세스들로 식별할 수 있다.According to the first capacity information CI1, the memory controller 411 may identify that N memories (eg, virtually distinguished memories) exist in the first memory module 420. After initialization and training are complete, the memory controller 411 can access the N memories individually. After initialization and training are complete, the media controller 423 of the first memory module 420 may access the accesses to the N memories to the physical or logically distinct storage spaces of the second type memory 422. Can be identified.

제2 용량 정보(CI2)는 제3 메모리 모듈(440)의 용량으로서 제1 타입 메모리(441)의 용량을 가리킬 수 있다. 제2 용량 정보(CI2)에 따라, 메모리 제어기(411)는 제3 메모리 모듈(440)의 용량을 제2 식별된 용량(IC2)으로 식별할 수 있다. 예를 들어, 제2 용량 정보(CI2)에 따라, 제2 식별된 용량(IC2)에 하나 또는 그보다 많은 식별자들이 할당될 수 있다.The second capacity information CI2 may indicate the capacity of the first type memory 441 as the capacity of the third memory module 440. According to the second capacity information CI2, the memory controller 411 may identify the capacity of the third memory module 440 as the second identified capacity IC2. For example, one or more identifiers may be assigned to the second identified capacity IC2 according to the second capacity information CI2.

도 44는 초기화가 수행된 후에 트레이닝 시에, 매체 제어기(423)가 메모리 제어기(411)와 채널을 구성하는 예를 보여준다. 도 44를 참조하면, 매체는 제1 메인 채널(MCH1)을 통해 메모리 제어기(411)와 통신할 수 있다. 매체 제어기(423)의 매체 스위치(MSW)는 제2 타입 메모리(422)와 채널을 구성하지 않고 제1 타입 메모리(421)와만 채널을 구성할 수 있다.44 shows an example in which the media controller 423 configures a channel with the memory controller 411 during training after initialization is performed. Referring to FIG. 44, the medium may communicate with the memory controller 411 through the first main channel MCH1. The media switch MSW of the media controller 423 may configure a channel only with the first type memory 421 without configuring a channel with the second type memory 422.

메모리 제어기(411)에 의해 식별된 제1 식별된 용량(IC1) 중에서 제1 타입 메모리(421)에 대응하는 용량, 예를 들어 제1 식별자(CID1)가 부여된 용량이 실제 저장 공간을 가질 수 있다. 제1 식별된 용량(IC1) 중에서 제1 타입 메모리(421)에 대응하지 않는 용량, 예를 들어 제2 내지 제8 식별자들(CID2~CID8)이 부여된 용량들은 실제 저장 공간을 갖지 않는 가상 용량일 수 있다.Among the first identified capacities IC1 identified by the memory controller 411, capacities corresponding to the first type memory 421, for example, capacities given with the first identifier CID1 may have actual storage spaces. have. Among the first identified capacities IC1, capacities that do not correspond to the first type memory 421, for example, capacities to which the second to eighth identifiers CID2 to CID8 are assigned, do not have a real storage space. Can be.

제1 메모리 모듈(420)과 달리, 제3 메모리 모듈(440)의 제1 타입 메모리(441)는 제2 메인 채널(MCH2)을 통해 메모리 제어기(411)와 직접 채널을 구성할 수 있다. 제2 식별된 용량(IC2)은 제3 메모리 모듈(440)의 제1 타입 메모리(441)의 저장 공간을 가질 수 있다.Unlike the first memory module 420, the first type memory 441 of the third memory module 440 may form a direct channel with the memory controller 411 through the second main channel MCH2. The second identified capacitor IC2 may have a storage space of the first type memory 441 of the third memory module 440.

도 45는 트레이닝 시에 매체 제어기(423)가 트레이닝 명령들을 제어하는 예를 보여준다. 도 45를 참조하면, 제1 식별된 용량(IC1)에 따라, 메모리 제어기(411)는 제1 내지 제8 식별자들(CID1~CID8)을 갖는 메모리들이 제1 메모리 모듈(420)에 존재하는 것으로 인식한다.45 shows an example in which the media controller 423 controls training commands during training. Referring to FIG. 45, according to the first identified capacity IC1, the memory controller 411 may determine that memories having the first to eighth identifiers CID1 to CID8 exist in the first memory module 420. Recognize.

따라서, 메모리 제어기(411)는 제1 내지 제8 식별자들(CID1~CID8)을 갖는 트레이닝 명령들(T_CMDs)을 제1 메모리 모듈(420)로 순차적으로 전송할 수 있다. 예를 들어, 메모리 제어기(411)는 제1 식별자(CID1)를 갖는 트레이닝 명령을 제1 메모리 모듈(420)로 전송하여, 제1 식별자(CID1)를 갖는 메모리에 대한 트레이닝을 시도할 수 있다.Therefore, the memory controller 411 may sequentially transmit the training commands T_CMDs having the first to eighth identifiers CID1 to CID8 to the first memory module 420. For example, the memory controller 411 may attempt to train the memory having the first identifier CID1 by transmitting a training command having the first identifier CID1 to the first memory module 420.

제1 식별자(CID1)를 갖는 메모리에 대한 트레이닝이 완료된 후에, 메모리 제어기(411)는 제2 식별자(CID2)를 갖는 트레이닝 명령을 제1 메모리 모듈(420)로 전송하여, 제2 식별자(CID2)를 갖는 메모리에 대한 트레이닝을 시도할 수 있다. 예를 들어, 트레이닝 명령은 적어도 하나의 쓰기 명령, 적어도 하나의 읽기 명령, 또는 적어도 하나의 리프레시 명령과 같은 다양한 명령들을 포함할 수 있다.After the training for the memory having the first identifier CID1 is completed, the memory controller 411 transmits a training command having the second identifier CID2 to the first memory module 420 so as to receive the second identifier CID2. You can try training on a memory with. For example, the training command may include various commands, such as at least one write command, at least one read command, or at least one refresh command.

매체 스위치(MSW)는 트레이닝 명령들(T_CMDs)을 모두 제1 타입 메모리(421)로 전달할 수 있다. 예를 들어, 트레이닝 명령들(T_CMDs)에 포함된 식별자들(CID1~CID8)에 관계없이, 매체 스위치(MSW)는 트레이닝 명령들(T_CMDs)을 제1 타입 메모리(421)로 반복적으로 전달할 수 있다. 예를 들어, 매체 스위치(MSW)는 트레이닝 명령들(T_CMDs)이 모두 제1 식별자(CID1)를 갖는 것으로 인식할 수 있다.The media switch MSW may transfer all of the training commands T_CMDs to the first type memory 421. For example, regardless of the identifiers CID1 to CID8 included in the training commands T_CMDs, the medium switch MSW may repeatedly transfer the training commands T_CMDs to the first type memory 421. . For example, the medium switch MSW may recognize that the training commands T_CMDs all have the first identifier CID1.

메모리 제어기(411)가 제1 내지 제8 식별자들(CID1~CID8)을 갖는 트레이닝 명령들(T_CMDs)을 순차적으로 전송함에 따라, 매체 스위치(MSW)는 제1 내지 제8 식별자들(CID1~CID8)에 대응하는 트레이닝 명령들(T_CMDs)을 제1 타입 메모리(421)로 반복적으로 전송할 수 있다.As the memory controller 411 sequentially transmits the training commands T_CMDs having the first to eighth identifiers CID1 to CID8, the medium switch MSW performs the first to eighth identifiers CID1 to CID8. ) May repeatedly transmit training commands T_CMDs corresponding to the first type memory 421.

즉, 제1 식별된 용량(IC1)에서, 제2 내지 제8 식별자들(CID2~CID8)을 갖는 가상 용량들은 트레이닝되지 않고, 제1 식별자(CID1)를 갖는 제1 타입 메모리(421)의 용량이 반복적으로 트레이닝될 수 있다.That is, in the first identified capacity IC1, the virtual capacities having the second to eighth identifiers CID2 to CID8 are not trained, but the capacity of the first type memory 421 having the first identifier CID1. This can be trained repeatedly.

제1 타입 메모리(421)는 제1 메인 채널(MCH1)의 트레이닝 절차에 부합한다. 따라서, 메모리 제어기(411)로부터의 트레이닝 명령들(T_CMDs)이 제1 타입 메모리(421)로 전달되면, 제1 메모리 모듈(420)이 메모리 제어기(411)와의 트레이닝에 영향을 주거나 오동작을 유발하는 것이 방지된다.The first type memory 421 corresponds to a training procedure of the first main channel MCH1. Accordingly, when training commands T_CMDs from the memory controller 411 are transmitted to the first type memory 421, the first memory module 420 may affect training with the memory controller 411 or cause malfunctions. Is prevented.

제2 타입 메모리(422)에 대한 초기화 또는 트레이닝은 매체 제어기(423)에 의해 수행될 수 있다. 따라서, 제1 타입 메모리(421)와 제2 타입 메모리(422)의 초기화 및 트레이닝이 오동작 없이 수행될 수 있다.Initialization or training for the second type memory 422 may be performed by the media controller 423. Thus, initialization and training of the first type memory 421 and the second type memory 422 may be performed without malfunction.

제1 메모리 모듈(420)과 달이, 제3 메모리 모듈(440)에 대한 트레이닝 명령(T_CMD)은 제1 타입 메모리(441)로 직접 전달된다. 제1 타입 메모리(441)는 제2 메인 채널(MCH2)의 트레이닝 절차에 부합한다. 따라서, 제3 메모리 모듈(440)에 대한 트레이닝이 오동작 없이 수행된다.A month from the first memory module 420, the training command T_CMD for the third memory module 440 is directly transmitted to the first type memory 441. The first type memory 441 corresponds to the training procedure of the second main channel MCH2. Thus, training for the third memory module 440 is performed without malfunction.

상술된 바와 같이, 트레이닝 시에 매체 스위치(MSW)는 메모리 제어기(411)로부터의 트레이닝 명령들(T_CMDs)이 제2 타입 메모리(422)로 전달되는 것을 차단할 수 있다. 트레이닝 시에, 매체 스위치(MSW)는 메모리 제어기(411)로부터의 트레이닝 명령들(T_CMDs)을 제1 타입 메모리(421)로 전달할 수 있다. 따라서, 제1 메인 채널(MCH1)의 트레이닝 절차에 부합하지 않는 제2 타입 메모리(422)를 저장 공간으로 제공하는 제1 메모리 모듈(420)에서 트레이닝이 오동작 없이 수행될 수 있다.As described above, upon training, the medium switch MSW may block the training commands T_CMDs from the memory controller 411 from being transferred to the second type memory 422. In training, the medium switch MSW may transfer training commands T_CMDs from the memory controller 411 to the first type memory 421. Therefore, the training may be performed without malfunction in the first memory module 420 that provides the second type memory 422 that does not correspond to the training procedure of the first main channel MCH1 as a storage space.

도 46은 매체 제어기(423)가 제2 타입 메모리(422)와 채널을 수립하는 예를 보여준다. 도 45 및 도 46을 참조하면, S321 단계에서, 매체 제어기(423)는 트레이닝의 완료를 검출할 수 있다. 트레이닝의 완료가 검출되면, S322 단계에서, 매체 제어기(423)는 제2 타입 메모리(422)를 메인 메모리로 그리고 제1 타입 메모리(421)를 캐시 메모리로 설정할 수 있다.46 shows an example in which the media controller 423 establishes a channel with the second type memory 422. 45 and 46, in step S321, the media controller 423 may detect the completion of training. When the completion of the training is detected, in step S322, the media controller 423 may set the second type memory 422 as the main memory and the first type memory 421 as the cache memory.

예를 들어, 제1 식별된 용량(IC1)에 따라, 메모리 제어기(411)는 제1 메모리 모듈(420)의 저장 용량을 제2 타입 메모리(422)의 저장 용량으로 식별한다. 제2 타입 메모리(422)의 저장 공간의 일부는 제1 타입 메모리(421)에 사상될 수 있다. 메모리 제어기(411)가 액세스하고자 하는 저장 공간이 제1 타입 메모리(421)에 사상되어 있을 때, 매체 제어기(423)는 메모리 제어기(411)로부터의 액세스 명령을 제1 타입 메모리(421)로 전달할 수 있다.For example, according to the first identified capacity IC1, the memory controller 411 identifies the storage capacity of the first memory module 420 as the storage capacity of the second type memory 422. A portion of the storage space of the second type memory 422 may be mapped to the first type memory 421. When the storage space to be accessed by the memory controller 411 is mapped to the first type memory 421, the media controller 423 transmits an access command from the memory controller 411 to the first type memory 421. Can be.

메모리 제어기(411)가 액세스하고자 하는 저장 공간이 제1 타입 메모리(421)에 사상되어 있지 않을 때, 매체 제어기(423)는 액세스 요청된 저장 공간을 제2 타입 메모리(422)로부터 제1 타입 메모리(421)로 사상할 수 있다. 이후에, 매체 제어기(423)는 메모리 제어기(411)로부터의 액세스 명령을 제1 타입 메모리(421)로 전달할 수 있다.When the storage space that the memory controller 411 attempts to access is not mapped to the first type memory 421, the media controller 423 stores the requested storage space from the second type memory 422 to the first type memory. Can be mapped to 421. Thereafter, the media controller 423 can transfer the access command from the memory controller 411 to the first type memory 421.

본 실시 예에 따르면, 제1 메모리 모듈(420)은 메모리 제어기(411)의 액세스 요청을 제1 타입 메모리(421)로 전달함으로써, 메모리 제어기(411)가 요구하는 높은 액세스 속도를 보장할 수 있다. 또한, 제1 메모리 모듈(420)은 제2 타입 메모리(422)의 저장 공간을 제1 타입 메모리(421)에 사상(예를 들어, 백업)하거나 또는 제1 타입 메모리(421)의 저장 공간을 제2 타입 메모리(422)에 플러시(flush) 함으로써, 제2 타입 메모리(422)의 큰 저장 용량 및 불휘발성 기능을 메모리 제어기(411)에 제공할 수 있다.According to the present embodiment, the first memory module 420 may ensure a high access speed required by the memory controller 411 by transferring an access request of the memory controller 411 to the first type memory 421. . In addition, the first memory module 420 maps (eg, backs up) the storage space of the second type memory 422 to the first type memory 421, or stores the storage space of the first type memory 421. By flushing the second type memory 422, the large storage capacity and the nonvolatile function of the second type memory 422 can be provided to the memory controller 411.

도 47은 매체 제어기(423)가 트레이닝의 완료를 검출하는 예를 보여준다. 도 47을 참조하면, 초기화 및 트레이닝은 바이오스(BIOS. Basic Input Output System)에 의해 수행된다. 초기화 및 트레이닝이 완료되면, 메모리 제어기(411)는 리프레시 명령(R_CMD)을 주기적으로 제1 메모리 모듈(420) 및 제3 메모리 모듈(440)로 전송할 수 있다.47 shows an example where the media controller 423 detects the completion of the training. Referring to FIG. 47, initialization and training are performed by a BIOS (Basic Input Output System). When initialization and training are completed, the memory controller 411 may periodically transmit the refresh command R_CMD to the first memory module 420 and the third memory module 440.

매체 제어기(423)는 리프레시 명령(R_CMD)이 주기적으로(또는 연속적으로) 수신될 때, 트레이닝이 완료된 것을 검출할 수 있다. 예를 들어, 매체 제어기(423)는 다른 명령이 끼어들지 않고 리프레시 명령(R_CMD)만이 특정 횟수 이상 주기적으로(또는 연속적으로) 수신될 때, 트레이닝이 완료된 것을 검출할 수 있다.The media controller 423 may detect that the training is complete when the refresh command R_CMD is received periodically (or continuously). For example, the media controller 423 may detect that training is complete when only the refresh command R_CMD is received periodically (or continuously) for a specific number of times without interrupting other commands.

트레이닝의 완료가 검출되면, 매체 스위치(MSW)는 제1 타입 메모리(421) 및 제2 타입 메모리(422) 모두와 채널을 수립할 수 있다. 예시적으로, 트레이닝이 수행되는 동안 리프레시 명령(R_CMD)이 잡음의 형태로 수신될 수 있다. 매체 제어기(423)는 리프레시 명령(R_CMD)만이 주기적으로 또는 연속적으로 수신되는지를 판단함으로써, 트레이닝 시에 잡음의 형태로 수신되는 리프레시 명령(R_CMD)과 트레이닝이 완료된 후에 수신되는 리프레시 명령(R_CMD)을 구별할 수 있다.When the completion of the training is detected, the medium switch MSW may establish a channel with both the first type memory 421 and the second type memory 422. In exemplary embodiments, the refresh command R_CMD may be received in the form of noise while training is performed. The media controller 423 determines whether only the refresh command R_CMD is received periodically or continuously, thereby performing a refresh command R_CMD received in the form of noise during training and a refresh command R_CMD received after the training is completed. Can be distinguished.

도 48은 본 발명의 실시 예에 따른 제1 타입 메모리 모듈(1200)을 보여주는 블록도이다. 예시적으로, 제1 타입 메모리 모듈(1200)은 LRDIMM 표준에 기반한 메모리 모듈일 수 있다. 예시적으로, 제1 메모리 모듈(420)을 참조하여 제1 타입 메모리 모듈(1200)이 도시된다.48 is a block diagram illustrating a first type memory module 1200 according to an embodiment of the present invention. In exemplary embodiments, the first type memory module 1200 may be a memory module based on the LRDIMM standard. For example, the first type memory module 1200 is illustrated with reference to the first memory module 420.

도 41 및 도 48을 참조하면, 제1 타입 메모리 모듈(1200)은 제1 타입 메모리(1210), 제2 타입 메모리(1220), 매체 제어기(1230), 제1 내지 제8 데이터 버퍼들(1241~1248), 그리고 직렬 프레즌스 검출(SPD) 장치(1250)를 포함한다.41 and 48, the first type memory module 1200 may include a first type memory 1210, a second type memory 1220, a media controller 1230, and first through eighth data buffers 1241. 1248), and a serial presence detection (SPD) device 1250.

제1 타입 메모리(1210), 제2 타입 메모리(1220), 제1 내지 제8 데이터 버퍼들(1241~1248), 그리고 직렬 프레즌스 검출(SPD) 장치(1250)는 도 40을 참조하여 설명된 제1 타입 메모리(1110), 제2 타입 메모리(1120), 제1 내지 제8 데이터 버퍼들(1141~1148), 그리고 직렬 프레즌스 검출(SPD) 장치(1150)와 동일하게 구성되고, 동일하게 동작한다. 따라서, 중복되는 설명은 생략된다.The first type memory 1210, the second type memory 1220, the first to eighth data buffers 1241 to 1248, and the serial presence detection (SPD) device 1250 are described with reference to FIG. 40. It is configured and operates in the same manner as the first type memory 1110, the second type memory 1120, the first to eighth data buffers 1141 to 1148, and the serial presence detection (SPD) device 1150. . Therefore, redundant description is omitted.

매체 제어기(1230)는 도 40을 참조하여 설명된 매체 제어기(1130)와 유사하게 구성되고 유사하게 동작할 수 있다. 도 40을 참조하여 설명된 매체 제어기(1130)와 달리, 매체 제어기(1230)는 매체 스위치(MSW)를 포함할 수 있다.The media controller 1230 can be configured and operate similarly to the media controller 1130 described with reference to FIG. 40. Unlike the media controller 1130 described with reference to FIG. 40, the media controller 1230 may include a media switch MSW.

위에서 설명된 바와 같이, 제1 타입 메모리 모듈(1200)이 초기화될 때, 매체 스위치(MSW)는 메모리 제어기(411)로부터의 제2 타입 메모리(1220)에 대한 트레이닝 명령을 제1 타입 메모리(1210)로 전달할 수 있다. 트레이닝이 종료되면, 매체 스위치(MSW)는 제2 타입 메모리(1220)를 제1 타입 메모리 모듈(1200)의 저장 공간으로서 메모리 제어기(411)에 제공할 수 있다.As described above, when the first type memory module 1200 is initialized, the media switch MSW sends a training command to the second type memory 1220 from the memory controller 411 to the first type memory 1210. ) Can be delivered. When the training ends, the media switch MSW may provide the second type memory 1220 to the memory controller 411 as a storage space of the first type memory module 1200.

도 49는 본 발명의 실시 예에 따른 컴퓨팅 장치(500a)를 보여주는 블록도이다. 예를 들어, 컴퓨팅 장치(500a)는 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 컴퓨팅 장치(500a)는 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.49 is a block diagram illustrating a computing device 500a according to an example embodiment. For example, computing device 500a may include a server such as an application server, a client server, and a data server. As another example, computing device 500a may include a personal computer or workstation.

도 49를 참조하면, 컴퓨팅 장치(500a)는 프로세서(510), 제2 캐시 메모리(520), 메모리 제어기(530a), 주 메모리(540a), 스토리지 인터페이스(550), 그리고 스토리지 장치(560)를 포함한다.Referring to FIG. 49, the computing device 500a may include a processor 510, a second cache memory 520, a memory controller 530a, a main memory 540a, a storage interface 550, and a storage device 560. Include.

프로세서(510)는 컴퓨팅 장치(500a)의 구성 요소들 및 구성 요소들의 동작들을 제어할 수 있다. 프로세서(510)는 운영체제 및 응용들을 실행하고, 운영체제 또는 응용들을 이용하여 데이터를 처리할 수 있다. 프로세서(510)는 제1 캐시 메모리(511)를 포함할 수 있다. 제1 캐시 메모리(511)는 정적 랜덤 액세스 메모리(SRAM)와 같은 고속의 메모리를 포함할 수 있다.The processor 510 may control the components of the computing device 500a and the operations of the components. The processor 510 may execute an operating system and applications, and process data using the operating system or applications. The processor 510 may include a first cache memory 511. The first cache memory 511 may include a high speed memory such as a static random access memory (SRAM).

제2 캐시 메모리(520)는 프로세서(510)와 통신할 수 있다. 제2 캐시 메모리(520)는 정적 랜덤 액세스 메모리(SRAM) 또는 동적 랜덤 액세스 메모리(DRAM)와 같은 고속의 랜덤 액세스 메모리를 포함할 수 있다.The second cache memory 520 may communicate with the processor 510. The second cache memory 520 may include fast random access memory, such as static random access memory (SRAM) or dynamic random access memory (DRAM).

메모리 제어기(530a)는 프로세서(510)의 요청에 따라 주 메모리(540a)를 액세스할 수 있다. 예를 들어, 메모리 제어기(530a)는 DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM)과 같은 메모리 모듈의 표준들 중 하나에 기반할 수 있다. 예시적으로, 메모리 제어기(530a)는 도 49에 도시된 바와 같이 프로세서(510)의 외부에 배치되거나 또는 프로세서(510)의 내부에 포함될 수 있다.The memory controller 530a may access the main memory 540a at the request of the processor 510. For example, the memory controller 530a may be based on one of memory standards such as a dual in-line memory module (DIMM), a registered DIMM (RDIMM), and a load reduced DIMM (LRDIMM). In exemplary embodiments, the memory controller 530a may be disposed outside the processor 510 or included in the processor 510 as illustrated in FIG. 49.

메모리 제어기(530a)는 타임아웃 제어기(531) 및 레지스터(532)를 포함한다. 타임아웃 제어기(531)는 메모리 제어기(530a)가 주 메모리(540a)를 액세스할 때에 시간을 측정할 수 있다. 레지스터(532)는 메모리 제어기(530a)와 연관된 다양한 파라미터들을 저장할 수 있다.Memory controller 530a includes a timeout controller 531 and a register 532. The timeout controller 531 may measure time when the memory controller 530a accesses the main memory 540a. Register 532 may store various parameters associated with memory controller 530a.

예를 들어, 레지스터(532)는 메모리 제어기(530a)가 주 메모리(540a)를 액세스할 때의 다양한 타임아웃 값들을 저장할 수 있다. 타임아웃 제어기(531)는 레지스터(532)에 저장된 타임아웃 값들에 기반하여, 메모리 제어기(530a)가 주 메모리(540a)를 액세스할 때의 타임아웃을 제어할 수 있다.For example, register 532 may store various timeout values when memory controller 530a accesses main memory 540a. The timeout controller 531 may control the timeout when the memory controller 530a accesses the main memory 540a based on the timeout values stored in the register 532.

주 메모리(540a)는 불휘발성 저장 능력 또는 대용량을 갖고, 그리고 동적 랜덤 액세스 메모리(DRAM)와 유사한 액세스 속도 및 랜덤 액세스 능력을 갖는 스토리지 클래스 메모리(SCM, Storage Class Memory)를 포함할 수 있다.The main memory 540a may include a storage class memory (SCM) having a nonvolatile storage capability or a large capacity, and having an access speed and random access capability similar to that of a dynamic random access memory (DRAM).

기존의 컴퓨팅 장치들과의 호환성을 지원하기 위하여, 주 메모리(540a)는 DIMM, RDIMM, LRDIMM과 같은 메모리 모듈의 표준들 중 하나에 기반하여 구현될 수 있다. 메모리 제어기(530a) 및 주 메모리(540a)를 메모리 시스템을 형성할 수 있다.In order to support compatibility with existing computing devices, main memory 540a may be implemented based on one of the standards of memory modules, such as DIMM, RDIMM, LRDIMM. The memory controller 530a and the main memory 540a may form a memory system.

스토리지 인터페이스(550)는 프로세서(510)로부터의 요청 또는 데이터를 스토리지 장치(560)로 전달할 수 있다. 스토리지 인터페이스(550)는 스토리지 장치(560)로부터 전달되는 데이터를 프로세서(510)로 전달할 수 있다. 스토리지 인터페이스(550)는 PCIe (Peripheral Component Interconnect express), NVMe (NonVolatile Memory express), SATA (Serial Advanced Technology Attachment) 등과 같은 다양한 표준들 중 하나에 기반할 수 있다.The storage interface 550 can transfer a request or data from the processor 510 to the storage device 560. The storage interface 550 can transfer data transferred from the storage device 560 to the processor 510. The storage interface 550 may be based on one of various standards such as Peripheral Component Interconnect Express (PCIe), NonVolatile Memory Express (NVMe), Serial Advanced Technology Attachment (SATA), and the like.

스토리지 장치(560)는 스토리지 인터페이스(550)를 통해 전달되는 요청에 따라, 스토리지 인터페이스(550)를 통해 전달되는 데이터를 저장할 수 있다. 스토리지 장치(560)는 스토리지 인터페이스(550)를 통해 전달되는 요청에 따라, 저장된 데이터를 스토리지 인터페이스(550)를 통해 전달할 수 있다.The storage device 560 may store data transferred through the storage interface 550 according to a request delivered through the storage interface 550. The storage device 560 may transfer the stored data through the storage interface 550 according to a request delivered through the storage interface 550.

스토리지 장치(560)는 불휘발성 저장 매체 및 불휘발성 저장 매체를 제어하는 제어기를 포함하도록 구현될 수 있다. 스토리지 장치(560)는 하드 디스크 드라이브(HDD, Hard Disk Drive), 솔리드 스테이트 드라이브(SSD, Solid Stat Drive) 등을 포함할 수 있다.The storage device 560 may be implemented to include a nonvolatile storage medium and a controller to control the nonvolatile storage medium. The storage device 560 may include a hard disk drive (HDD), a solid state drive (SSD), and the like.

프로세서(510)는 계층적으로 데이터를 처리할 수 있다. 예를 들어, 컴퓨팅 장치(500a)에서 사용되는 운영체제의 소스 데이터, 응용의 소스 데이터, 그리고 사용자 데이터는 스토리지 장치(560)에 저장될 수 있다. 사용자 데이터는 운영체제, 응용 또는 컴퓨팅 장치(500a)의 사용자에 의해 생성되는 데이터를 포함할 수 있다.The processor 510 may process data hierarchically. For example, source data of an operating system, source data of an application, and user data used in the computing device 500a may be stored in the storage device 560. User data may include data generated by a user of an operating system, application, or computing device 500a.

프로세서(510)가 필요로 하는 특정한 데이터(예를 들어, 소스 데이터 또는 사용자 데이터)가 스토리지 장치(560)에 저장되어 있을 때, 프로세서(510)는 특정한 데이터를 스토리지 장치(560)로부터 읽어 주 메모리(540a)에 저장할 수 있다. 프로세서(510)는 주 메모리(540a)에 저장된 특정한 데이터를 스토리지 장치(560)에 백업할 수 있다.When specific data (eg, source data or user data) needed by the processor 510 is stored in the storage device 560, the processor 510 reads the specific data from the storage device 560 in main memory. 540a. The processor 510 may back up specific data stored in the main memory 540a to the storage device 560.

주 메모리(540a)의 저장 영역들 중 일부는 제2 캐시 메모리(520)에 사상될 수 있다. 제2 캐시 메모리(520)의 저장 영역들 중 일부는 제1 캐시 메모리(511)에 사상될 수 있다. 예시적으로, 컴퓨팅 장치(500a)에서 제1 및 제2 캐시 메모리들(511, 520) 중 적어도 하나는 생략될 수 있다.Some of the storage areas of the main memory 540a may be mapped to the second cache memory 520. Some of the storage areas of the second cache memory 520 may be mapped to the first cache memory 511. In exemplary embodiments, at least one of the first and second cache memories 511 and 520 may be omitted from the computing device 500a.

예시적으로, 주 메모리(540a)는 도 26을 참조하여 설명된 구조를 갖고, 도 26을 참조하여 설명된 바에 따라 동작할 수 있다. 다른 예로서, 주 메모리(540a)는 도 40을 참조하여 설명된 구조를 갖고, 도 40을 참조하여 설명된 바에 따라 동작할 수 있다.In exemplary embodiments, the main memory 540a may have a structure described with reference to FIG. 26, and may operate as described with reference to FIG. 26. As another example, the main memory 540a has the structure described with reference to FIG. 40 and may operate as described with reference to FIG. 40.

도 50은 메모리 제어기(530a)가 주 메모리(540a)에 대해 읽기 동작을 수행하는 예를 보여준다. 도 49 내지 도 50을 참조하면, S411 단계에서, 메모리 제어기(530a)는 제1 읽기 요청을 수신할 수 있다. 예를 들어, 메모리 제어기(530a)는 프로세서(510)로부터 제1 읽기 요청을 수신할 수 있다.50 shows an example in which the memory controller 530a performs a read operation on the main memory 540a. 49 through 50, in operation S411, the memory controller 530a may receive a first read request. For example, the memory controller 530a may receive a first read request from the processor 510.

S412 단계에서, 메모리 제어기(530a)는 매체 제어기(1230)로 제2 읽기 요청을 전송할 수 있다. 예를 들어, 메모리 제어기(530a)는 제1 읽기 요청으로부터 제2 읽기 요청을 생성할 수 있다. 제1 읽기 요청의 포맷과 제2 읽기 요청의 포맷은 같거나 다를 수 있다. 하나의 제1 읽기 요청으로부터 하나 또는 그보다 많은 제2 읽기 요청들이 생성될 수 있다.In operation S412, the memory controller 530a may transmit a second read request to the media controller 1230. For example, the memory controller 530a may generate a second read request from the first read request. The format of the first read request and the format of the second read request may be the same or different. One or more second read requests may be generated from one first read request.

S413 단계에서, 메모리 제어기(530a)는 제1 시간(T1) 내에 정상 데이터가 수신되는지 판단할 수 있다. 예를 들어, 정상 데이터는 에러가 없는 데이터 또는 정정 가능한 범위 내의 에러를 갖는 데이터를 가리킬 수 있다. 정정 가능한 범위는 메모리 제어기(530a)와 매체 제어기(1230) 사이의 통신에 사용되는 에러 정정 코드의 종류에 따라 달리 정해질 수 있다.In operation S413, the memory controller 530a may determine whether normal data is received within the first time T1. For example, normal data may refer to data without errors or data with errors within a correctable range. The correctable range may be determined differently according to the type of error correction code used for communication between the memory controller 530a and the media controller 1230.

정상 데이터와 달리, 에러를 갖는 데이터 또는 정정 가능한 범위 밖의 에러를 갖는 데이터는 에러 데이터일 수 있다. 제1 시간(T1) 내에 정상 데이터가 수신되면, S414 단계에서, 읽기 성공이 판단된다. 메모리 제어기(530a)는 수신된 정상 데이터를 프로세서(510)로 전달할 수 있다.Unlike normal data, data with errors or data with errors outside the correctable range may be error data. If the normal data is received within the first time T1, in step S414, the read success is determined. The memory controller 530a may transfer the received normal data to the processor 510.

제1 시간(T1) 내에 정상 데이터가 수신되지 않으면, 또는 제1 시간(T1) 내에 에러 데이터가 수신되면, S415 단계에서, 메모리 제어기(530a)는 제2 읽기 요청을 매체 제어기(1230)로 다시 전송할 수 있다. 예를 들어, S415 단계에서 전송되는 제2 읽기 요청은 S412 단계에서 전송된 제2 읽기 요청과 동일할 수 있다. S415 단계는 읽기 재시도(read retry)로 표현될 수 있다.If normal data is not received within the first time T1, or if error data is received within the first time T1, the memory controller 530a sends the second read request back to the media controller 1230 at step S415. Can transmit For example, the second read request transmitted in step S415 may be the same as the second read request transmitted in step S412. The step S415 may be expressed as a read retry.

S416 단계에서, 메모리 제어기(530a)는 제2 시간(T2) 내에 정상 데이터가 수신되는지 판단할 수 있다. 제2 시간(T2)은 제1 시간(T1)과 같거나 다를 수 있다. 제2 시간(T2) 내에 정상 데이터가 수신되면, S414 단계에서 읽기 성공이 판단될 수 있다.In operation S416, the memory controller 530a may determine whether normal data is received within the second time T2. The second time T2 may be the same as or different from the first time T1. If normal data is received within the second time T2, the read success may be determined in operation S414.

제2 시간(T2) 내에 정상 데이터가 수신되지 않으면, S417 단계가 수행된다. S417 단계에서, 메모리 제어기(530a)는 제2 읽기 요청이 제1 값(N1)의 횟수(N1 times)만큼 재전송되었는지 판단할 수 있다. 예를 들어, 메모리 제어기(530a)는 읽기 재시도가 제1 값(N1)의 횟수만큼 수행되었는지 판단할 수 있다.If normal data is not received within the second time T2, step S417 is performed. In operation S417, the memory controller 530a may determine whether the second read request has been retransmitted by the number N1 times of the first value N1. For example, the memory controller 530a may determine whether read retries have been performed a number of times of the first value N1.

읽기 재시도가 제1 값(N1)의 횟수만큼 수행되지 않았으면, S415 단계에서 읽기 재시도가 수행될 수 있다. 읽기 재시도가 제1 값(N1)의 횟수만큼 수행되었으면, S418 단계가 수행된다. S418 단계에서, 메모리 제어기(530a)는 정정 불가능한 에러가 발생하였으면, 읽기 실패가 발생한 것을 판단할 수 있다.If the read retry has not been performed as many times as the first value N1, the read retry may be performed in operation S415. If the read retry has been performed the number of times of the first value N1, step S418 is performed. In operation S418, if an uncorrectable error occurs, the memory controller 530a may determine that a read failure occurs.

도 51은 도 50의 동작 방법에 따라 읽기 동작이 수행되는 제1 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 휘발성 메모리 장치(1210)와 연관되며, 휘발성 메모리 장치(1210)에서 읽기 동작이 수행되는 예가 도 51에 도시된다.51 illustrates a first example in which a read operation is performed according to the operating method of FIG. 50. For example, an example in which a first command and an address CA1 are associated with the volatile memory device 1210 and a read operation is performed in the volatile memory device 1210 is illustrated in FIG. 51.

도 49 내지 도 51을 참조하면, 프로세서(510)는 제1 읽기 요청(R1)을 생성할 수 있다. S421 단계에서, 프로세서(510)는 제1 읽기 요청(R1)을 메모리 제어기(530a)로 전달할 수 있다. 메모리 제어기(530a)는 제1 읽기 요청(R1)에 따라 제2 읽기 요청(R2)을 생성할 수 있다.49 to 51, the processor 510 may generate a first read request R1. In operation S421, the processor 510 may transmit a first read request R1 to the memory controller 530a. The memory controller 530a may generate a second read request R2 according to the first read request R1.

S422 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 전달할 수 있다. 제2 읽기 요청(R2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다. 제2 읽기 요청(R2)을 전송함에 따라, 타임아웃 제어기(531)는 제1 시간(T1)의 측정(또는 카운트)을 시작할 수 있다(도 50의 S413 단계).In operation S422, the memory controller 530a may transmit a second read request R2 to the media controller 1230. The second read request R2 may be transmitted to the media controller 1230 as the first command and the address CA1. As the second read request R2 is transmitted, the timeout controller 531 may start measuring (or counting) the first time T1 (step S413 of FIG. 50).

매체 제어기(1230)는 제2 읽기 요청(R2)에 따라 제3 읽기 요청(R3)을 생성할 수 있다. S423 단계에서, 매체 제어기(1230)는 제3 읽기 요청(R3)을 휘발성 메모리 장치(1210)로 전달할 수 있다. 제3 읽기 요청(R3)은 제2 커맨드 및 어드레스(CA2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다.The media controller 1230 may generate a third read request R3 according to the second read request R2. In operation S423, the media controller 1230 may transfer the third read request R3 to the volatile memory device 1210. The third read request R3 may be transmitted to the volatile memory device 1210 as a second command and address CA2.

예를 들어, 매체 제어기(1230)는 제2 읽기 요청(R2)을 가공하지 않고 제3 읽기 요청(R3)으로서 휘발성 메모리 장치(1210)로 전달할 수 있다. 다른 예로서, 매체 제어기(1230)는 제2 읽기 요청(R2)을 휘발성 메모리 장치(1210)에 적합한 형태로 가공하고, 가공된 결과를 제3 읽기 요청(R3)으로서 휘발성 메모리 장치(1210)로 전달할 수 있다.For example, the media controller 1230 may transfer the second read request R2 to the volatile memory device 1210 as the third read request R3 without processing the second read request R2. As another example, the media controller 1230 processes the second read request R2 into a form suitable for the volatile memory device 1210, and processes the processed result to the volatile memory device 1210 as the third read request R3. I can deliver it.

제3 읽기 요청(R3)에 응답하여, 휘발성 메모리 장치(1210)는 읽기 동작(RD)을 수행할 수 있다. 휘발성 메모리 장치(1210)로부터 읽혀지는 데이터는 매체 제어기(1230)로 전달될 수 있다. S424 단계에서, 읽기 동작이 완료될 수 있다.In response to the third read request R3, the volatile memory device 1210 may perform a read operation RD. Data read from the volatile memory device 1210 may be transferred to the media controller 1230. In operation S424, the read operation may be completed.

매체 제어기(1230)는 휘발성 메모리 장치(1210)로부터 읽혀진 데이터를 메모리 제어기(530a)로 전달하는 데이터 전송(DT)을 수행할 수 있다. S425 단계에서, 데이터 전송(DT)이 완료되고, 데이터는 메모리 제어기(530a)로 전달될 수 있다.The media controller 1230 may perform a data transfer DT that transfers data read from the volatile memory device 1210 to the memory controller 530a. In operation S425, the data transmission DT is completed, and the data may be transferred to the memory controller 530a.

메모리 제어기(530a)는 제2 읽기 요청(R2)을 전송한 후 제1 시간(T1)이 경과하기 전에 주 메모리(540a)로부터 데이터를 수신한다. 예를 들어, 수신된 데이터는 정상 데이터일 수 있다. 따라서, 메모리 제어기(530a)는 읽기 성공을 판단할 수 있다.The memory controller 530a receives data from the main memory 540a after transmitting the second read request R2 but before the first time T1 elapses. For example, the received data may be normal data. Therefore, the memory controller 530a may determine the read success.

메모리 제어기(530a)는 매체 제어기(1230)로부터 전달된 데이터를 프로세서(510)로 전달하는 데이터 전송(DT)을 수행할 수 있다. S426 단계에서, 데이터 전송(DT)이 완료되고, 데이터는 프로세서(510)로 전달될 수 있다. 프로세서(510)는 읽기 완료(RC, Read Complete)를 판단할 수 있다.The memory controller 530a may perform a data transfer DT that transfers data transferred from the media controller 1230 to the processor 510. In operation S426, the data transmission DT is completed, and the data may be transferred to the processor 510. The processor 510 may determine read completion (RC).

도 52는 도 51의 읽기 동작의 변형 예를 보여준다. 도 49 내지 도 50, 그리고 도 52를 참조하면, S431 단계 내지 S433 단계는 도 51의 S421 단계 내지 S423 단계와 동일하게 수행된다. 따라서, 중복되는 설명은 생략된다.52 is a view illustrating a modification of the read operation of FIG. 51. 49 to 50 and 52, steps S431 to S433 are performed in the same manner as steps S421 to S423 of FIG. 51. Therefore, redundant description is omitted.

휘발성 메모리 장치(1210)가 읽기 동작(RD)을 수행할 때, S434 단계에서, 읽혀진 데이터는 매체 제어기(1230)에 의해 제어되거나 버퍼링되지 않고, 매체 제어기(1230) 및 제1 내지 제8 데이터 버퍼들(1241~1248)을 통해 메모리 제어기(530a)로 직접 전달될 수 있다. LRDIMM은 동적 랜덤 액세스 메모리(DRAM)에 기반하므로, 휘발성 메모리 장치(1210)는 메모리 제어기(530a)와 직접 통신할 수 있다.When the volatile memory device 1210 performs the read operation RD, in operation S434, the read data is not controlled or buffered by the media controller 1230, and the media controller 1230 and the first to eighth data buffers are performed. It may be delivered directly to the memory controller 530a through the (1241 ~ 1248). Since the LRDIMM is based on dynamic random access memory (DRAM), the volatile memory device 1210 may directly communicate with the memory controller 530a.

이후에, S436 단계는 도 51의 S426 단계와 동일하게 수행될 수 있다. 휘발성 메모리 장치(1210)에서 읽혀진 데이터가 메모리 제어기(530a)로 직접 전달되면, 메모리 제어기(530a)가 제2 읽기 요청(R2)을 전송한 후에 데이터를 수신할 때까지의 시간이 단축될 수 있다.Thereafter, step S436 may be performed in the same manner as step S426 of FIG. 51. When data read from the volatile memory device 1210 is directly transferred to the memory controller 530a, the time until the memory controller 530a receives the data after transmitting the second read request R2 may be shortened. .

도 53은 도 50의 동작 방법에 따라 읽기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 불휘발성 메모리 장치(1220)에서 읽기 동작이 수행되는 예가 도 53에 도시된다.53 illustrates a second example in which a read operation is performed according to the operating method of FIG. 50. For example, an example in which the first command and the address CA1 are associated with the nonvolatile memory device 1220 and a read operation is performed in the nonvolatile memory device 1220 is illustrated in FIG. 53.

도 49 내지 도 50, 그리고 도 53을 참조하면, 프로세서(510)는 제1 읽기 요청(R1)을 생성할 수 있다. S441 단계에서, 프로세서(510)는 제1 읽기 요청(R1)을 메모리 제어기(530a)로 전달할 수 있다. 메모리 제어기(530a)는 제1 읽기 요청(R1)에 따라 제2 읽기 요청(R2)을 생성할 수 있다.49 to 50 and 53, the processor 510 may generate a first read request R1. In operation S441, the processor 510 may transmit a first read request R1 to the memory controller 530a. The memory controller 530a may generate a second read request R2 according to the first read request R1.

S442 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 전달할 수 있다. 제2 읽기 요청(R2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다. 제2 읽기 요청(R2)을 전송함에 따라, 타임아웃 제어기(531)는 제1 시간(T1)의 측정(또는 카운트)을 시작할 수 있다(도 50의 S413 단계).In operation S442, the memory controller 530a may transmit a second read request R2 to the media controller 1230. The second read request R2 may be transmitted to the media controller 1230 as the first command and the address CA1. As the second read request R2 is transmitted, the timeout controller 531 may start measuring (or counting) the first time T1 (step S413 of FIG. 50).

매체 제어기(1230)는 제2 읽기 요청(R2)에 따라 제3 읽기 요청(R3)을 생성할 수 있다. S443 단계에서, 매체 제어기(1230)는 제3 읽기 요청(R3)을 불휘발성 메모리 장치(1220)로 전달할 수 있다. 제3 읽기 요청(R3)은 제3 커맨드 및 어드레스(CA3)로서 불휘발성 메모리 장치(1220)로 전달될 수 있다.The media controller 1230 may generate a third read request R3 according to the second read request R2. In operation S443, the media controller 1230 may transfer the third read request R3 to the nonvolatile memory device 1220. The third read request R3 may be transmitted to the nonvolatile memory device 1220 as a third command and address CA3.

예를 들어, 매체 제어기(1230)는 제2 읽기 요청(R2)을 가공하지 않고 제3 읽기 요청(R3)으로서 불휘발성 메모리 장치(1220)로 전달할 수 있다. 다른 예로서, 매체 제어기(1230)는 제2 읽기 요청(R2)을 불휘발성 메모리 장치(1212)에 적합한 형태로 가공하고, 가공된 결과를 제3 읽기 요청(R3)으로서 불휘발성 메모리 장치(1220)로 전달할 수 있다.For example, the media controller 1230 may transfer the second read request R2 to the nonvolatile memory device 1220 as the third read request R3 without processing the second read request R2. As another example, the media controller 1230 processes the second read request R2 into a form suitable for the nonvolatile memory device 1212, and outputs the processed result as the third read request R3 to the nonvolatile memory device 1220. ) Can be delivered.

제3 읽기 요청(R3)에 응답하여, 불휘발성 메모리 장치(1220)는 읽기 동작(RD)을 수행할 수 있다. 불휘발성 메모리 장치(1220)로부터 읽혀지는 데이터는 매체 제어기(1230)로 전달될 수 있다.In response to the third read request R3, the nonvolatile memory device 1220 may perform a read operation RD. Data read from the nonvolatile memory device 1220 may be transferred to the media controller 1230.

예시적으로, 불휘발성 메모리 장치(1220)의 읽기 속도는 휘발성 메모리 장치(1210)의 읽기 속도보다 낮다. 불휘발성 메모리 장치(1220)로부터 데이터를 읽는 데에 필요한 시간은 휘발성 메모리 장치(1210)로부터 데이터를 읽는 데에 필요한 시간보다 길다.In exemplary embodiments, the read speed of the nonvolatile memory device 1220 is lower than the read speed of the volatile memory device 1210. The time required to read data from the nonvolatile memory device 1220 is longer than the time required to read data from the volatile memory device 1210.

앞서 언급된 바와 같이, LRDIMM은 동적 랜덤 액세스 메모리(DRAM)에 기반한다. 따라서, 통상적으로, 제1 시간(T1) 및 제2 시간(T2)은 동적 랜덤 액세스 메모리(DRAM)의 읽기 시간에 따라 정해져 있다. 제1 시간(T1) 및 제2 시간(T2)은 불휘발성 메모리 장치(1220)의 읽기 시간보다 짧다.As mentioned above, LRDIMMs are based on dynamic random access memory (DRAM). Therefore, typically, the first time T1 and the second time T2 are determined according to the read time of the dynamic random access memory DRAM. The first time T1 and the second time T2 are shorter than the read time of the nonvolatile memory device 1220.

메모리 제어기(530a)가 S442 단계에서 제2 읽기 요청(R2)을 전송한 후 제1 시간(T1)이 경과할 때까지, 불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료되지 않을 수 있다. S444 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 다시 전송하여 읽기 재시도(read retry)를 수행할 수 있다(도 50의 S415 단계).The read operation RD of the nonvolatile memory device 1220 may not be completed until the first time T1 elapses after the memory controller 530a transmits the second read request R2 in step S442. have. In operation S444, the memory controller 530a may transmit a second read request R2 back to the media controller 1230 to perform a read retry (operation S415 of FIG. 50).

메모리 제어기(530a)가 S444 단계에서 제2 읽기 요청(R2)을 전송한 후 제2 시간(T2)이 경과할 때까지, 불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료되지 않을 수 있다. S445 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 다시 전송하여 읽기 재시도(read retry)를 수행할 수 있다(도 50의 S415 단계).The read operation RD of the nonvolatile memory device 1220 may not be completed until the second time T2 elapses after the memory controller 530a transmits the second read request R2 in step S444. have. In operation S445, the memory controller 530a may transmit a second read request R2 back to the media controller 1230 to perform a read retry (operation S415 of FIG. 50).

메모리 제어기(530a)가 S445 단계에서 제2 읽기 요청(R2)을 전송한 후 제2 시간(T2)이 경과할 때까지, 불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료되지 않을 수 있다. S446 단계 및 S447 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 다시 전송하여 읽기 재시도(read retry)를 수행할 수 있다(도 50의 S415 단계).The read operation RD of the nonvolatile memory device 1220 may not be completed until the second time T2 elapses after the memory controller 530a transmits the second read request R2 in step S445. have. In operations S446 and S447, the memory controller 530a may transmit a second read request R2 back to the media controller 1230 to perform a read retry (operation S415 of FIG. 50).

읽기 재시도가 제1 값(N1)의 횟수만큼 수행될 때까지, 불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료되지 않을 수 있다. 메모리 제어기(530a)는 읽기 실패가 발생한 것을 판단할 수 있다. 메모리 제어기(530a)는 에러 보고(ER)를 생성하고, S448 단계에서 에러 보고(ER)를 프로세서(510)로 전달할 수 있다. 에러 보고(ER)에 따라, 프로세서(510)는 에러 핸들링(EH)을 수행할 수 있다.The read operation RD of the nonvolatile memory device 1220 may not be completed until the read retry is performed the number of times of the first value N1. The memory controller 530a may determine that a read failure has occurred. The memory controller 530a may generate an error report ER and transmit the error report ER to the processor 510 in operation S448. According to the error report ER, the processor 510 may perform error handling EH.

S449 단계에서, 불휘발성 메모리 장치(1220)의 읽기 동작이 완료되고, 데이터가 매체 제어기(1230)에 전달될 수 있다. 그러나 메모리 제어기(530a)는 이미 읽기 실패를 판단한 상태이다. 따라서, 주 메모리(540a)의 불휘발성 메모리 장치(1220)에 대한 읽기 동작이 발생하면, 불휘발성 메모리 장치(1220)와 휘발성 메모리 장치(1210)의 읽기 속도들의 차이에 의해, 주 메모리(540a)에 대한 읽기 동작이 실패할 수 있다.In operation S449, a read operation of the nonvolatile memory device 1220 may be completed, and data may be transferred to the media controller 1230. However, the memory controller 530a has already determined a read failure. Therefore, when a read operation of the nonvolatile memory device 1220 of the main memory 540a occurs, the main memory 540a may differ due to a difference between the read speeds of the nonvolatile memory device 1220 and the volatile memory device 1210. The read operation may fail.

이와 같은 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 메모리 제어기(530a)는 횟수 제한 없는 읽기 재시도를 수행할 수 있다. 예를 들어, 제1 값(N1)은 레지스터(532)에 저장될 수 있다. 본 발명의 실시 예에 다른 메모리 제어기(530a)는 레지스터(532)에 저장된 제1 값(N1)을 무효화하거나 또는 무한대로 설정할 수 있다.In order to solve such a problem, the memory controller 530a according to the embodiment of the present invention may perform an unlimited number of read retries. For example, the first value N1 may be stored in the register 532. According to an embodiment of the present disclosure, the memory controller 530a may invalidate the first value N1 stored in the register 532 or set it to infinity.

도 54는 본 발명의 실시 예에 따른 메모리 제어기(530a)의 동작 방법을 보여주는 순서도이다. 도 49, 도 50 및 도 54를 참조하면, S451 단계에서, 메모리 제어기(530a)는 제1 읽기 요청을 수신할 수 있다. 예를 들어, 메모리 제어기(530a)는 프로세서(510)로부터 제1 읽기 요청을 수신할 수 있다.54 is a flowchart illustrating a method of operating a memory controller 530a according to an embodiment of the present invention. 49, 50, and 54, in step S451, the memory controller 530a may receive a first read request. For example, the memory controller 530a may receive a first read request from the processor 510.

S452 단계에서, 메모리 제어기(530a)는 매체 제어기(1230)로 제2 읽기 요청을 전송할 수 있다. 예를 들어, 메모리 제어기(530a)는 제1 읽기 요청으로부터 제2 읽기 요청을 생성할 수 있다. 제1 읽기 요청의 포맷과 제2 읽기 요청의 포맷은 같거나 다를 수 있다. 하나의 제1 읽기 요청으로부터 하나 또는 그보다 많은 제2 읽기 요청들이 생성될 수 있다.In operation S452, the memory controller 530a may transmit a second read request to the media controller 1230. For example, the memory controller 530a may generate a second read request from the first read request. The format of the first read request and the format of the second read request may be the same or different. One or more second read requests may be generated from one first read request.

S453 단계에서, 메모리 제어기(530a)는 제1 시간(T1) 내에 정상 데이터가 수신되는지 판단할 수 있다. 제1 시간(T1) 내에 정상 데이터가 수신되면, S454 단계에서, 읽기 성공이 판단된다. 메모리 제어기(530a)는 수신된 정상 데이터를 프로세서(510)로 전달할 수 있다.In operation S453, the memory controller 530a may determine whether normal data is received within the first time T1. If normal data is received within the first time T1, in step S454, the read success is determined. The memory controller 530a may transfer the received normal data to the processor 510.

제1 시간(T1) 내에 정상 데이터가 수신되지 않으면, 또는 제1 시간(T1) 내에 에러 데이터가 수신되면, S455 단계에서, 메모리 제어기(530a)는 제2 읽기 요청을 매체 제어기(1230)로 다시 전송하여 읽기 재시도를 수행할 수 있다.If normal data is not received within the first time T1, or if error data is received within the first time T1, in operation S455, the memory controller 530a sends the second read request back to the media controller 1230. You can retry read by sending.

S456 단계에서, 메모리 제어기(530a)는 제2 시간(T2) 내에 정상 데이터가 수신되는지 판단할 수 있다. 제2 시간(T2)은 제1 시간(T1)보다 짧을 수 있다. 제2 시간(T2) 내에 정상 데이터가 수신되면, S454 단계에서 읽기 성공이 판단될 수 있다.In operation S456, the memory controller 530a may determine whether normal data is received within the second time T2. The second time T2 may be shorter than the first time T1. If normal data is received within the second time T2, the read success may be determined in operation S454.

제2 시간(T2) 내에 정상 데이터가 수신되지 않으면, 메모리 제어기(530a)는 S455 단계에서 읽기 재시도를 수행할 수 있다. 즉, 메모리 제어기(530a)는 읽기 요청을 횟수 제한 없이 재전송할 수 있다.If normal data is not received within the second time T2, the memory controller 530a may perform a read retry in operation S455. That is, the memory controller 530a may retransmit an unlimited number of read requests.

도 55는 도 54의 동작 방법에 따라 읽기 동작이 수행되는 제1 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 불휘발성 메모리 장치(1220)에서 읽기 동작이 수행되는 예가 도 55에 도시된다.55 is a view illustrating a first example in which a read operation is performed according to the operating method of FIG. 54. For example, an example in which the first command and the address CA1 are associated with the nonvolatile memory device 1220 and a read operation is performed in the nonvolatile memory device 1220 is illustrated in FIG. 55.

도 49, 도 50, 도 54 및 도 55를 참조하면, 프로세서(510)는 제1 읽기 요청(R1)을 생성할 수 있다. S461 단계에서, 프로세서(510)는 제1 읽기 요청(R1)을 메모리 제어기(530a)로 전달할 수 있다. 메모리 제어기(530a)는 제1 읽기 요청(R1)에 따라 제2 읽기 요청(R2)을 생성할 수 있다.49, 50, 54, and 55, the processor 510 may generate a first read request R1. In operation S461, the processor 510 may transmit a first read request R1 to the memory controller 530a. The memory controller 530a may generate a second read request R2 according to the first read request R1.

S462 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 전달할 수 있다. 제2 읽기 요청(R2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다. 제2 읽기 요청(R2)을 전송함에 따라, 타임아웃 제어기(531)는 제1 시간(T1)의 측정(또는 카운트)을 시작할 수 있다(도 54의 S453 단계).In operation S462, the memory controller 530a may transmit a second read request R2 to the media controller 1230. The second read request R2 may be transmitted to the media controller 1230 as the first command and the address CA1. As the second read request R2 is transmitted, the timeout controller 531 may start measuring (or counting) the first time T1 (step S453 of FIG. 54).

매체 제어기(1230)는 제2 읽기 요청(R2)에 따라 제3 읽기 요청(R3)을 생성할 수 있다. S463 단계에서, 매체 제어기(1230)는 제3 읽기 요청(R3)을 불휘발성 메모리 장치(1220)로 전달할 수 있다. 제3 읽기 요청(R3)은 제3 커맨드 및 어드레스(CA3)로서 불휘발성 메모리 장치(1220)로 전달될 수 있다.The media controller 1230 may generate a third read request R3 according to the second read request R2. In operation S463, the media controller 1230 may transfer the third read request R3 to the nonvolatile memory device 1220. The third read request R3 may be transmitted to the nonvolatile memory device 1220 as a third command and address CA3.

제3 읽기 요청(R3)에 응답하여, 불휘발성 메모리 장치(1220)는 읽기 동작(RD)을 수행할 수 있다. 불휘발성 메모리 장치(1220)로부터 읽혀지는 데이터는 매체 제어기(1230)로 전달될 수 있다.In response to the third read request R3, the nonvolatile memory device 1220 may perform a read operation RD. Data read from the nonvolatile memory device 1220 may be transferred to the media controller 1230.

메모리 제어기(530a)가 S412 단계에서 제2 읽기 요청(R2)을 전송한 후 제1 시간(T1)이 경과할 때까지, 불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료되지 않을 수 있다. S464 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 다시 전송하여 읽기 재시도(read retry)를 수행할 수 있다(도 54의 S455 단계).The read operation RD of the nonvolatile memory device 1220 may not be completed until the first time T1 elapses after the memory controller 530a transmits the second read request R2 in step S412. have. In operation S464, the memory controller 530a may transmit a second read request R2 back to the media controller 1230 to perform a read retry (operation S455 of FIG. 54).

메모리 제어기(530a)가 S464 단계에서 제2 읽기 요청(R2)을 전송한 후 제2 시간(T2)이 경과할 때까지, 불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료되지 않을 수 있다. S465 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 다시 전송하여 읽기 재시도(read retry)를 수행할 수 있다(도 54의 S455 단계).The read operation RD of the nonvolatile memory device 1220 may not be completed until the second time T2 elapses after the memory controller 530a transmits the second read request R2 in operation S464. have. In operation S465, the memory controller 530a may retransmit the second read request R2 to the media controller 1230 to perform a read retry (operation S455 of FIG. 54).

마찬가지로, 제2 시간(T2)이 경과함에 따라, 메모리 제어기(530a)는 S466 단계 내지 S468 단계에서 제2 읽기 요청(R2)을 매체 제어기(1230)로 다시 전송하여 읽기 재시도를 수행할 수 있다. 불휘발성 메모리 장치(1220)에서 읽기 동작(RD)이 수행되는 동안, 매체 제어기(1230)는 읽기 동작(RD)과 연관되어 수신되는 제2 읽기 요청들(예를 들어, S464 단계 내지 S468 단계에서 수신되는 제2 읽기 요청들(R2))을 무시할 수 있다.Similarly, as the second time T2 elapses, the memory controller 530a may retransmit the second read request R2 to the media controller 1230 in steps S466 to S468 to perform read retry. . While the read operation RD is performed in the nonvolatile memory device 1220, the media controller 1230 may receive the second read requests (eg, in steps S464 to S468 that are received in association with the read operation RD). Received second read requests R2) may be ignored.

S469 단계에서, 불휘발성 메모리 장치(1220)에서 읽기 동작(RD)이 완료되고, 읽혀진 데이터가 매체 제어기(1230)로 전달될 수 있다. 매체 제어기(1230)는 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터를 메모리 제어기(530a)로 전달하는 데이터 전송(DT)을 수행할 수 있다. S470 단계에서, 데이터 전송(DT)이 완료되고, 데이터는 메모리 제어기(530a)로 전달될 수 있다.In operation S469, the read operation RD is completed in the nonvolatile memory device 1220, and the read data may be transferred to the media controller 1230. The media controller 1230 may perform a data transfer DT that transfers data read from the nonvolatile memory device 1220 to the memory controller 530a. In operation S470, the data transfer DT is completed, and the data may be transferred to the memory controller 530a.

메모리 제어기(530a)는 S468 단계에서 제2 읽기 요청(R2)을 전송한 후 제2 시간(T2)이 경과하기 전에 주 메모리(540a)로부터 데이터를 수신한다. 예를 들어, 수신된 데이터는 정상 데이터일 수 있다. 따라서, 메모리 제어기(530a)는 읽기 성공을 판단할 수 있다.The memory controller 530a receives data from the main memory 540a after the second time T2 elapses after transmitting the second read request R2 in step S468. For example, the received data may be normal data. Therefore, the memory controller 530a may determine the read success.

메모리 제어기(530a)는 매체 제어기(1230)로부터 전달된 데이터를 프로세서(510)로 전달하는 데이터 전송(DT)을 수행할 수 있다. S471 단계에서, 데이터 전송(DT)이 완료되고, 데이터는 프로세서(510)로 전달될 수 있다. 프로세서(510)는 읽기 완료(RC, Read Complete)를 판단할 수 있다.The memory controller 530a may perform a data transfer DT that transfers data transferred from the media controller 1230 to the processor 510. In operation S471, the data transmission DT is completed, and the data may be transferred to the processor 510. The processor 510 may determine read completion (RC).

상술된 바와 같이, 메모리 제어기(530a)가 읽기 재시도를 수행하는 횟수를 제한하지 않음으로써, 불휘발성 메모리 장치(1220)로부터 정상 데이터가 읽혀질 수 있다.As described above, by not limiting the number of times that the memory controller 530a performs read retries, normal data may be read from the nonvolatile memory device 1220.

도 56은 도 54의 동작 방법에 따라 읽기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 휘발성 메모리 장치(1210)가 불휘발성 메모리 장치(1220)의 캐시 메모리로 사용되는 예가 도 56에 도시된다.FIG. 56 shows a second example in which a read operation is performed according to the operating method of FIG. 54. For example, an example in which the first command and the address CA1 are associated with the nonvolatile memory device 1220 and the volatile memory device 1210 is used as a cache memory of the nonvolatile memory device 1220 is illustrated in FIG. 56. .

도 40, 도 49, 도 54 및 도 56을 참조하면, S481 단계에서, 프로세서(510)는 제1 읽기 요청(R1)을 메모리 제어기(530a)로 전달할 수 있다. 메모리 제어기(530a)는 제1 읽기 요청(R1)에 따라 제2 읽기 요청(R2)을 생성할 수 있다.40, 49, 54, and 56, in step S481, the processor 510 may transmit a first read request R1 to the memory controller 530a. The memory controller 530a may generate a second read request R2 according to the first read request R1.

S482 단계에서, 메모리 제어기(530a)는 제2 읽기 요청(R2)을 매체 제어기(1230)로 전달할 수 있다. 제2 읽기 요청(R2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다. 제2 읽기 요청(R2)을 전송함에 따라, 타임아웃 제어기(531)는 제1 시간(T1)의 측정(또는 카운트)을 시작할 수 있다(도 54의 S453 단계).In operation S482, the memory controller 530a may transmit a second read request R2 to the media controller 1230. The second read request R2 may be transmitted to the media controller 1230 as the first command and the address CA1. As the second read request R2 is transmitted, the timeout controller 531 may start measuring (or counting) the first time T1 (step S453 of FIG. 54).

매체 제어기(1230)는 제2 읽기 요청(R2)과 연관된 저장 공간이 휘발성 메모리 장치(1210)에 사상되어 있는지(즉, 캐시 히트인지) 판단할 수 있다. 제2 읽기 요청(R2)과 연관된 저장 공간이 휘발성 메모리 장치(1210)에 사상되어 있으면, 즉 캐시 히트이면, 매체 제어기(1230)는 제3 읽기 요청(R3)을 제2 커맨드 및 어드레스(CA2) 또는 제2 제어 신호(CTRL2)로서 휘발성 메모리 장치(1210)로 전송할 수 있다.The media controller 1230 can determine whether the storage space associated with the second read request R2 is mapped to the volatile memory device 1210 (ie, a cache hit). If the storage space associated with the second read request R2 is mapped to the volatile memory device 1210, that is, a cache hit, the media controller 1230 issues a third read request R3 to the second command and address CA2. Alternatively, the second control signal CTRL2 may be transmitted to the volatile memory device 1210.

휘발성 메모리 장치(1210)에 대한 읽기 동작은 도 51 또는 도 52를 참조하여 설명된 것과 동일하게 수행될 수 있다. 따라서, 휘발성 메모리 장치(1210)에 대한 읽기 동작은 중복하여 설명되지 않는다.The read operation of the volatile memory device 1210 may be performed in the same manner as described with reference to FIG. 51 or 52. Therefore, the read operation for the volatile memory device 1210 will not be redundantly described.

제2 읽기 요청(R2)과 연관된 저장 공간이 휘발성 메모리 장치(1210)에 사상되어 있지 않으면, 즉 캐시 미스이면, 매체 제어기(1230)는 제2 읽기 요청(R2)과 연관된 저장 공간을 휘발성 메모리 장치(1210)에 사상할 수 있다.If the storage space associated with the second read request R2 is not mapped in the volatile memory device 1210, that is, if it is a cache miss, the media controller 1230 determines the storage space associated with the second read request R2. It may be mapped to 1210.

매체 제어기(1230)는 제2 읽기 요청(R2)과 연관된 저장 공간에 대한 제3 읽기 요청(R3)을 생성할 수 있다. S483 단계에서, 매체 제어기(1230)는 제3 읽기 요청(R3)을 불휘발성 메모리 장치(1220)로 전달할 수 있다. 제3 읽기 요청(R3)은 제3 커맨드 및 어드레스(CA3)로서 불휘발성 메모리 장치(1220)로 전달될 수 있다.The media controller 1230 can generate a third read request R3 for the storage space associated with the second read request R2. In operation S483, the media controller 1230 may transfer the third read request R3 to the nonvolatile memory device 1220. The third read request R3 may be transmitted to the nonvolatile memory device 1220 as a third command and address CA3.

제3 읽기 요청(R3)에 응답하여, 불휘발성 메모리 장치(1220)는 읽기 동작(RD)을 수행할 수 있다. 불휘발성 메모리 장치(1220)로부터 읽혀지는 데이터는 매체 제어기(1230)로 전달될 수 있다.In response to the third read request R3, the nonvolatile memory device 1220 may perform a read operation RD. Data read from the nonvolatile memory device 1220 may be transferred to the media controller 1230.

제1 시간(T1) 또는 제2 시간(T2)이 경과함에 따라, 메모리 제어기(530a)는 S484 단계 내지 S488 단계에서 제2 읽기 요청(R2)을 전송하여 읽기 재시도를 수행할 수 있다.As the first time T1 or the second time T2 elapses, the memory controller 530a may perform a read retry by transmitting a second read request R2 in steps S484 to S488.

불휘발성 메모리 장치(1220)의 읽기 동작(RD)이 완료됨에 따라, S489 단계에서, 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터는 매체 제어기(1230)로 전달된다.As the read operation RD of the nonvolatile memory device 1220 is completed, in operation S489, data read from the nonvolatile memory device 1220 is transferred to the media controller 1230.

불휘발성 메모리 장치(1220)로부터 데이터가 전달됨에 따라, S490 단계에서, 매체 제어기(1230)는 쓰기 요청(W)을 휘발성 메모리 장치(1210)로 전달할 수 있다. 쓰기 요청(W)은 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터를 포함하거나 데이터와 함께 전달될 수 있다.As data is transferred from the nonvolatile memory device 1220, in operation S490, the media controller 1230 may transfer a write request W to the volatile memory device 1210. The write request W may include data read from the nonvolatile memory device 1220 or may be transferred with the data.

예를 들어, 쓰기 요청(W)은 제2 커맨드 및 어드레스(CA2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다. 다른 예로서, 쓰기 요청(W)은 제2 제어 신호(CTRL2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다. 예를 들어, 매체 제어기(1230)는 특정한 제어 신호, 예를 들어 SAVEn을 활성화할 수 있다.For example, the write request W may be transmitted to the volatile memory device 1210 as the second command and the address CA2. As another example, the write request W may be transmitted to the volatile memory device 1210 as the second control signal CTRL2. For example, the media controller 1230 can activate a particular control signal, for example SAVEn.

특정한 제어 신호가 활성화된 동안, 매체 제어기(1230)는 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터를 휘발성 메모리 장치(1210)로 출력할 수 있다. 특정한 제어 신호의 활성화에 응답하여, 휘발성 메모리 장치(1210)는 매체 제어기(1230)로부터 전달되는 데이터를 기입할 수 있다.While the specific control signal is activated, the media controller 1230 may output data read from the nonvolatile memory device 1220 to the volatile memory device 1210. In response to the activation of a particular control signal, the volatile memory device 1210 may write data transferred from the media controller 1230.

쓰기 요청(W)에 따라, 휘발성 메모리 장치(1210)는 쓰기 동작(WR)을 수행할 수 있다. 휘발성 메모리 장치(1210)가 쓰기 동작(WR)을 수행함으로써, 제2 읽기 요청(R2)과 연관된 불휘발성 메모리 장치(1220)의 제1 저장 공간이 휘발성 메모리 장치의 제2 저장 공간으로 사상(또는 백업)될 수 있다.In response to the write request W, the volatile memory device 1210 may perform a write operation WR. When the volatile memory device 1210 performs a write operation WR, the first storage space of the nonvolatile memory device 1220 associated with the second read request R2 is mapped to (or stored in) the second storage space of the volatile memory device. Backup).

쓰기 동작(WR)이 완료된 후에, S491 단계에서, 메모리 제어기(530a)는 매체 제어기(1230)로 제2 읽기 요청(R2)을 전달할 수 있다. S492 단계에서, 매체 제어기(1230)는 읽기 동작(RD)이 완료된 후에 S441 단계에서 수신된 제2 읽기 요청(R2)에 응답하여, 휘발성 메모리 장치(1210)에 제3 읽기 요청(R3)을 전송할 수 있다. 제3 읽기 요청(R3)은 불휘발성 메모리 장치(1220)로부터 휘발성 메모리 장치(1210)로 사상된 데이터에 대한 읽기를 요청할 수 있다.After the write operation WR is completed, in operation S491, the memory controller 530a may transmit a second read request R2 to the media controller 1230. In operation S492, the media controller 1230 transmits a third read request R3 to the volatile memory device 1210 in response to the second read request R2 received in operation S441 after the read operation RD is completed. Can be. The third read request R3 may request to read data mapped from the nonvolatile memory device 1220 to the volatile memory device 1210.

제3 읽기 요청(R3)에 따라, 휘발성 메모리 장치(1210)는 읽기 동작(RD)을 수행할 수 있다. 읽기 동작(RD)이 완료되면, S493 단계에서, 제2 읽기 요청(R2)과 연관된 데이터가 매체 제어기(1230)에 전달된다. 매체 제어기(1230)는 데이터 전송(DT)을 수행할 수 있다.In response to the third read request R3, the volatile memory device 1210 may perform a read operation RD. When the read operation RD is completed, in operation S493, data associated with the second read request R2 is transferred to the media controller 1230. The media controller 1230 may perform data transfer DT.

데이터 전송(DT)이 수행됨에 따라, S494 단계에서, 데이터가 메모리 제어기(530a)로 전달된다. 메모리 제어기(530a)가 S491 단계에서 제2 읽기 요청(R2)을 전송한 후 제2 시간(T2)이 경과하기 전에, 메모리 제어기(530a)에 제2 읽기 요청(R2)과 연관된 데이터가 수신된다. 따라서, 메모리 제어기(530a)는 읽기 성공을 판단할 수 있다(도 54의 S454 단계).As the data transfer DT is performed, in operation S494, the data is transferred to the memory controller 530a. Before the second time T2 elapses after the memory controller 530a transmits the second read request R2 in step S491, data associated with the second read request R2 is received by the memory controller 530a. . Therefore, the memory controller 530a may determine the read success (step S454 of FIG. 54).

메모리 제어기(530a)는 데이터 전송(DT)을 수행하여, S495 단계에서 프로세서(510)로 데이터를 전달할 수 있다. 데이터가 전달됨에 따라, 프로세서(510)는 읽기 완료를 판단할 수 있다.The memory controller 530a may perform data transfer DT to transfer data to the processor 510 in operation S495. As the data is delivered, the processor 510 may determine the read completion.

도 57은 도 56의 읽기 동작의 변형 예를 보여준다. 도 40, 도 49, 도 54 및 도 57을 참조하면, S501 단계 내지 S510 단계는 도 56의 S481 단계 내지 S490 단계와 동일하게 수행된다. 따라서, 중복되는 설명은 생략된다.FIG. 57 shows a modification of the read operation of FIG. 56. 40, 49, 54 and 57, steps S501 to S510 are performed in the same manner as steps S481 to S490 of FIG. 56. Therefore, redundant description is omitted.

S511 단계에서, 메모리 제어기(530a)는 매체 제어기(1230)로 제2 읽기 요청(R2)을 전송할 수 있다. 제2 읽기 요청(R2)에 응답하여, S512 단계에서, 매체 제어기(1230)는 휘발성 메모리 장치(1210)로 제3 읽기 요청(R3)을 전송할 수 있다. 예를 들어, 매체 제어기(1230)는 메모리 제어기(530a)로부터 전달되는 제2 읽기 요청(R2)을 제3 읽기 요청(R3)으로서 휘발성 메모리 장치(1210)로 전달할 수 있다.In operation S511, the memory controller 530a may transmit a second read request R2 to the media controller 1230. In response to the second read request R2, in operation S512, the media controller 1230 may transmit a third read request R3 to the volatile memory device 1210. For example, the media controller 1230 may transfer the second read request R2 transmitted from the memory controller 530a as the third read request R3 to the volatile memory device 1210.

휘발성 메모리 장치(1210)가 읽기 동작(RD)을 수행할 때, S513 단계에서, 읽혀진 데이터는 매체 제어기(1230)에 의해 제어되거나 버퍼링되지 않고, 매체 제어기(1230) 및 제1 내지 제8 데이터 버퍼들(1241~1248)을 통해 메모리 제어기(530a)로 직접 전달될 수 있다. LRDIMM은 동적 랜덤 액세스 메모리(DRAM)에 기반하므로, 휘발성 메모리 장치(1210)는 메모리 제어기(530a)와 직접 통신할 수 있다.When the volatile memory device 1210 performs the read operation RD, in operation S513, the read data is not controlled or buffered by the media controller 1230, and the media controller 1230 and the first to eighth data buffers. It may be delivered directly to the memory controller 530a through the (1241 ~ 1248). Since the LRDIMM is based on dynamic random access memory (DRAM), the volatile memory device 1210 may communicate directly with the memory controller 530a.

이후에, S514 단계는 도 56의 S495 단계와 동일하게 수행될 수 있다. 휘발성 메모리 장치(1210)에서 읽혀진 데이터가 메모리 제어기(530a)로 직접 전달되면, 메모리 제어기(530a)가 제2 읽기 요청(R2)을 전송한 후에 데이터를 수신할 때까지의 시간이 단축될 수 있다.Thereafter, step S514 may be performed in the same manner as step S495 of FIG. 56. When data read from the volatile memory device 1210 is directly transferred to the memory controller 530a, the time until the memory controller 530a receives the data after transmitting the second read request R2 may be shortened. .

도 58은 도 54의 동작 방법의 응용 예를 보여준다. 도 40, 도 49 및 도 58을 참조하면, S521 단계 내지 S525 단계는 도 54를 참조하여 설명된 S451 단계 내지 S455 단계와 동일하게 수행된다. 즉, 메모리 제어기(530a)는 횟수 제한 없이 읽기 재시도를 반복적으로 수행할 수 있다.58 shows an application example of the operation method of FIG. 54. 40, 49, and 58, steps S521 to S525 are performed in the same manner as steps S451 to S455 described with reference to FIG. 54. That is, the memory controller 530a may repeatedly perform read retries without limiting the number of times.

S526 단계에서, 제2 시간(T2) 내에 정상 데이터가 수신되지 않았으면, S527 단계가 수행된다. S527 단계에서, 제2 읽기 요청을 최초로 전송(S522 단계)한 후 제3 시간(T3)이 경과했는지 판단된다. 제3 시간(T3)이 경과하지 않았으면, S525 단계에서 읽기 재시도가 횟수 제한 없이 수행된다.In operation S526, if normal data is not received within the second time T2, operation S527 is performed. In operation S527, it is determined whether a third time T3 has elapsed after the first transmission of the second read request (operation S522). If the third time T3 has not elapsed, the read retry is performed without limit in the number of steps S525.

제3 시간(T3)이 경과했으면, S528 단계에서, 메모리 제어기(530a)는 정정 불가능한 에러가 발생하였으면, 읽기 실패가 발생한 것을 판단할 수 있다. 예시적으로, 제3 시간(T3)의 정보는 레지스터(532)에 저장될 수 있다.If the third time T3 has elapsed, in operation S528, if an uncorrectable error occurs, the memory controller 530a may determine that a read failure has occurred. In exemplary embodiments, information of the third time T3 may be stored in the register 532.

제3 시간(T3)은 불휘발성 메모리 장치(1220)에서 읽기 동작을 수행하는 데에 필요한 시간(예를 들어, 읽기 시간)에 따라 결정될 수 있다. 예를 들어, 제3 시간(T3)은 읽기 시간보다 길게(예를 들어, 두 배 이상) 정해질 수 있다.The third time T3 may be determined according to a time required to perform a read operation in the nonvolatile memory device 1220 (eg, a read time). For example, the third time T3 may be determined to be longer than the read time (eg, more than twice).

도 59는 제3 시간(T3)을 측정하면서 읽기 동작을 수행하는 예를 보여준다. 도 56과 비교하면, S482 단계에서 메모리 제어기(530a)가 매체 제어기(1230)로 제2 읽기 요청(R2)을 전송함에 따라, 타임아웃 제어기(531)는 제3 시간(T3)의 측정을 시작할 수 있다.59 shows an example of performing a read operation while measuring the third time T3. In comparison with FIG. 56, as the memory controller 530a transmits the second read request R2 to the media controller 1230 in step S482, the timeout controller 531 starts measuring the third time T3. Can be.

예시적으로, 제3 시간(T3)은 불휘발성 메모리 장치(1220)에 대해 읽기 동작이 수행되는 시간보다 길게 설정될 수 있다. 제3 시간(T3)에 따라 타임아웃이 측정되면, 주 메모리(540a)에서 에러(예를 들어, 읽기 에러)가 발생하여 정상 데이터가 읽히지 않는 때에 메모리 제어기(530a)가 읽기 재시도를 반복하는 것이 방지된다. 즉, 메모리 제어기(530a) 및 주 메모리(540a)를 포함하는 메모리 시스템에서 행(hang)이 발생하는 것이 방지된다.In exemplary embodiments, the third time T3 may be set longer than a time when a read operation is performed on the nonvolatile memory device 1220. When the timeout is measured according to the third time T3, an error (for example, a read error) occurs in the main memory 540a and the memory controller 530a repeats the read retry when normal data is not read. Is prevented. That is, a hang is prevented from occurring in the memory system including the memory controller 530a and the main memory 540a.

도 60은 본 발명의 다른 예에 따른 컴퓨팅 장치(500b)를 보여주는 블록도이다. 도 60을 참조하면, 컴퓨팅 장치(500b)는 프로세서(510), 제2 캐시 메모리(520), 메모리 제어기(530b), 주 메모리(540b), 스토리지 인터페이스(550), 그리고 스토리지 장치(560)를 포함한다.60 is a block diagram illustrating a computing device 500b according to another example of the present disclosure. Referring to FIG. 60, the computing device 500b may include a processor 510, a second cache memory 520, a memory controller 530b, a main memory 540b, a storage interface 550, and a storage device 560. Include.

프로세서(510), 제2 캐시 메모리(520), 스토리지 인터페이스(550), 그리고 스토리지 장치(560)는 도 49를 참조하여 설명된 것과 동일하게 동작한다. 따라서, 중복되는 설명은 생략된다.The processor 510, the second cache memory 520, the storage interface 550, and the storage device 560 operate in the same manner as described with reference to FIG. 49. Therefore, redundant description is omitted.

도 49와 비교하면, 메모리 제어기(530b) 및 주 메모리(540b)는 시스템 관리 버스(SMBus, System Management Bus)를 통해 더 통신할 수 있다. 주 메모리(540b)는 직렬 프레즌스 검출(SPD, Serial Presence Detect) 장치 및 레지스터 갱신기(542)를 포함할 수 있다.Compared to FIG. 49, the memory controller 530b and the main memory 540b may further communicate through a system management bus (SMBus). Main memory 540b may include a Serial Presence Detect (SPD) device and a register updater 542.

SPD 장치(541)는 주 메모리(540b)에 대한 정보를 포함할 수 있다. 메모리 제어기(530b) 및 주 메모리(540b)에 전원이 공급될 때, 메모리 제어기(530b)는 주 메모리(540b)의 SPD 장치(541)를 액세스하여, 주 메모리(540b)에 대한 정보를 획득할 수 있다.The SPD device 541 may include information about the main memory 540b. When power is supplied to the memory controller 530b and the main memory 540b, the memory controller 530b accesses the SPD device 541 of the main memory 540b to obtain information about the main memory 540b. Can be.

획득된 정보를 기반으로, 메모리 제어기(530b)는 주 메모리(540b)를 액세스하는 방법들 또는 파라미터들을 설정 또는 조절할 수 있다. 예를 들어, 메모리 제어기(530b)는 시스템 관리 버스(SMBus)를 통해 SPD 장치(541)를 액세스할 수 있다.Based on the obtained information, the memory controller 530b may set or adjust methods or parameters for accessing the main memory 540b. For example, the memory controller 530b may access the SPD device 541 through the system management bus SMBus.

레지스터 갱신기(542)는 시스템 관리 버스(SMBus)를 통해 메모리 제어기(530b)의 레지스터(532)를 갱신할 수 있다. 예를 들어, 메모리 제어기(530b)가 주 메모리(540b)의 SPD 장치(541)를 액세스할 때에, 메모리 제어기(530b)는 주 메모리(540b)가 시스템 관리 버스(SMBus)를 통해 레지스터(532)를 액세스하는 것을 허용할 수 있다.The register updater 542 may update the register 532 of the memory controller 530b through the system management bus SMBus. For example, when the memory controller 530b accesses the SPD device 541 of the main memory 540b, the memory controller 530b causes the main memory 540b to register 532 through the system management bus SMBus. May allow access.

메모리 제어기(530b)가 SPD 장치(541)를 액세스하는 동안, 레지스터 갱신기(542)는 레지스터(532)에 저장된 정보 중 일부를 갱신할 수 있다. 예를 들어, 레지스터 갱신기(542)는 도 54 내지 도 59를 참조하여 설명된 동작들이 허용되도록, 레지스터(532)에 저장된 정보를 갱신할 수 있다.While the memory controller 530b accesses the SPD device 541, the register updater 542 may update some of the information stored in the register 532. For example, register updater 542 may update the information stored in register 532 such that the operations described with reference to FIGS. 54-59 are allowed.

도 61은 SPD 장치(541) 및 레지스터 갱신기(542)를 포함하는 주 메모리(1300)의 예를 보여준다. 도 40과 비교하면, 매체 제어기(1330)는 SPD 장치(541) 및 레지스터 갱신기(542)를 포함할 수 있다.61 shows an example of a main memory 1300 that includes an SPD device 541 and a register updater 542. Compared to FIG. 40, the media controller 1330 can include an SPD device 541 and a register updater 542.

SPD 장치(541)는 매체 제어기(1330)의 내부에 포함되거나 또는 매체 제어기(1330)의 외부에 매체 제어기(1330)와 구별되는 패키지도 제공될 수 있다. SPD 장치(541) 및 레지스터 갱신기(542)는 시스템 관리 버스(SMBus)를 통해 메모리 제어기(530b)와 통신할 수 있다.The SPD device 541 may be provided within the media controller 1330 or may be provided outside the media controller 1330 to be distinguished from the media controller 1330. The SPD device 541 and the register updater 542 may communicate with the memory controller 530b through the system management bus SMBus.

도 62는 주 메모리(540b)가 레지스터(532)를 갱신하는 방법을 보여주는 순서도이다. 도 60 내지 도 62를 참조하면, S531 단계에서, 매체 제어기(1330)는 파워 온을 검출할 수 있다. S532 단계에서, 매체 제어기(1330)의 레지스터 갱신기(542)는 시스템 관리 버스(SMBus)를 통해 레지스터(532)에 저장된 정보를 갱신할 수 있다.62 is a flow chart illustrating how main memory 540b updates register 532. 60 to 62, in operation S531, the media controller 1330 may detect power on. In operation S532, the register updater 542 of the media controller 1330 may update the information stored in the register 532 through the system management bus SMBus.

예를 들어, 레지스터 갱신기(542)는 레지스터(532)에 저장된 횟수 제한(times limit)을 무효화하거나 제거할 수 있다. 레지스터 갱신기(542)는 불휘발성 메모리 장치(1320)의 읽기 시간에 따라 레지스터(532)에 저장된 제3 시간(T3)을 갱신할 수 있다. 예를 들어, 레지스터 갱신기(542)는 제3 시간(T3)이 읽기 시간보다 길어지도록 레지스터(532)를 갱신할 수 있다.For example, register updater 542 may invalidate or remove the times limit stored in register 532. The register updater 542 may update the third time T3 stored in the register 532 according to the read time of the nonvolatile memory device 1320. For example, the register updater 542 may update the register 532 such that the third time T3 is longer than the read time.

도 63은 본 발명의 또 다른 예에 따른 컴퓨팅 장치(500c)를 보여주는 블록도이다. 도 40 및 도 63을 참조하면, 컴퓨팅 장치(500c)는 프로세서(510), 제2 캐시 메모리(520), 메모리 제어기(530c), 주 메모리(540c), 스토리지 인터페이스(550), 그리고 스토리지 장치(560)를 포함한다.63 is a block diagram illustrating a computing device 500c according to another example of the present invention. 40 and 63, the computing device 500c may include a processor 510, a second cache memory 520, a memory controller 530c, a main memory 540c, a storage interface 550, and a storage device ( 560).

프로세서(510), 제2 캐시 메모리(520), 스토리지 인터페이스(550), 그리고 스토리지 장치(560)는 도 49를 참조하여 설명된 것과 동일하게 동작한다. 따라서, 중복되는 설명은 생략된다.The processor 510, the second cache memory 520, the storage interface 550, and the storage device 560 operate in the same manner as described with reference to FIG. 49. Therefore, redundant description is omitted.

도 49와 비교하면, 주 메모리(540c)는 메모리 제어기(530c)로 쓰기 에러 신호(WRCRC)를 출력할 수 있다. 예를 들어, 메모리 제어기(530c)는 주 메모리(540c)로 쓰기 요청을 전달할 수 있다. 쓰기 요청의 쓰기 데이터는 에러 정정 코드에 의해 생성된 패리티와 함께 전송될 수 있다.Compared to FIG. 49, the main memory 540c may output the write error signal WRCRC to the memory controller 530c. For example, the memory controller 530c may transfer a write request to the main memory 540c. The write data of the write request may be sent with parity generated by the error correction code.

주 메모리(540c)는 패리티를 이용하여 쓰기 데이터에 에러가 존재하는지 체크할 수 있다. 쓰기 데이터에 에러가 존재하면, 주 메모리(540c)는 쓰기 에러 신호(WRCRC)를 활성화(예를 들어, 로우 레벨로 조절)할 수 있다. 쓰기 에러 신호(WRCRC)가 활성화되면, 메모리 제어기(530c)는 쓰기 요청을 재전송할 수 있다.The main memory 540c may use parity to check whether an error exists in the write data. If an error exists in the write data, the main memory 540c may activate (eg, adjust the low level) the write error signal WRCRC. When the write error signal WRCRC is activated, the memory controller 530c may resend the write request.

주 메모리(540c)는 쓰기 에러 제어기(543)를 포함할 수 있다. 도 61을 참조하여 설명된 바와 같이, 쓰기 에러 제어기(543)는 매체 제어기(1230)에 포함될 수 있다. 불휘발성 메모리 장치(1220)에 대한 쓰기가 수행될 때, 쓰기 에러 제어기(543)는 쓰기 에러 신호(WRCRC)를 제어할 수 있다. 예를 들어, 쓰기 에러 신호(WRCRC)는 ALERTn 신호를 포함할 수 있다.Main memory 540c may include a write error controller 543. As described with reference to FIG. 61, a write error controller 543 may be included in the media controller 1230. When writing to the nonvolatile memory device 1220 is performed, the write error controller 543 may control the write error signal WRCRC. For example, the write error signal WRCRC may include an ALERTn signal.

도 64는 메모리 제어기(530c)가 쓰기 동작을 수행하는 예를 보여주는 순서도이다. 도 40, 도 63 및 도 64를 참조하면, S541 단계에서, 메모리 제어기(530c)는 제1 쓰기 요청을 수신할 수 있다. 예를 들어, 메모리 제어기(530c)는 프로세서(510)로부터 제1 쓰기 요청을 수신할 수 있다.64 is a flowchart illustrating an example in which the memory controller 530c performs a write operation. 40, 63, and 64, in operation S541, the memory controller 530c may receive a first write request. For example, the memory controller 530c may receive a first write request from the processor 510.

S542 단계에서, 메모리 제어기(530c)는 매체 제어기(1230)로 제2 쓰기 요청을 전송할 수 있다. 예를 들어, 메모리 제어기(530c)는 제1 쓰기 요청으로부터 제2 쓰기 요청을 생성할 수 있다. 제1 쓰기 요청의 포맷과 제2 쓰기 요청의 포맷은 같거나 다를 수 있다. 하나의 제1 쓰기 요청으로부터 하나 또는 그보다 많은 제2 쓰기 요청들이 생성될 수 있다.In operation S542, the memory controller 530c may transmit a second write request to the media controller 1230. For example, the memory controller 530c may generate a second write request from the first write request. The format of the first write request and the format of the second write request may be the same or different. One or more second write requests may be generated from one first write request.

S543 단계에서, 메모리 제어기(530c)는 쓰기 에러 신호(WRCRC)가 활성화되는지 체크할 수 있다. 쓰기 에러 신호(WRCRC)가 활성화되지 않으면, S544 단계에서, 메모리 제어기(530c)는 쓰기가 성공한 것을 판단할 수 있다.In operation S543, the memory controller 530c may check whether the write error signal WRCRC is activated. If the write error signal WRCRC is not activated, in operation S544, the memory controller 530c may determine that writing is successful.

쓰기 에러 신호(WRCRC)가 활성화되면, S545 단계에서, 메모리 제어기(530c)는 복원을 수행할 수 있다. 예를 들어, 메모리 제어기(530c)는 메모리 제어기(530c)와 주 메모리(540c) 사이의 통신 링크(communication link)에 대한 복원을 수행할 수 있다. 복원은 ZQ 교정(ZQ calibration), 쓰기 트레이닝, 읽기 트레이닝 등을 포함할 수 있다.When the write error signal WRCRC is activated, in operation S545, the memory controller 530c may perform restoration. For example, the memory controller 530c may perform restoration of a communication link between the memory controller 530c and the main memory 540c. Restoration may include ZQ calibration, write training, read training, and the like.

이후에, S542 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청을 다시 전송할 수 있다. 즉, 메모리 제어기(530c)는 횟수 제한 없이 쓰기 재시도(write retry)를 반복할 수 있다.Thereafter, in operation S542, the memory controller 530c may transmit the second write request again. That is, the memory controller 530c may repeat the write retry without limiting the number of times.

도 65는 주 메모리(540c)가 쓰기 동작을 수행하는 예를 보여주는 순서도이다. 도 40, 도 63 및 도 65를 참조하면, S551 단계에서, 매체 제어기(1230)는 제2 쓰기 요청을 수신할 수 있다. 예를 들어, 매체 제어기(1230)는 메모리 제어기(530c)로부터 제1 커맨드 및 어드레스(CA1)로서 제2 쓰기 요청을 수신할 수 있다.65 is a flowchart illustrating an example in which the main memory 540c performs a write operation. 40, 63, and 65, in operation S551, the media controller 1230 may receive a second write request. For example, the media controller 1230 may receive a second write request as the first command and the address CA1 from the memory controller 530c.

S552 단계에서, 매체 제어기(1230)는 제2 쓰기 요청이 불휘발성 메모리 장치(1220)에 대한 쓰기를 유발하는지 판단할 수 있다. 제2 쓰기 요청이 불휘발성 메모리 장치(1220)에 대한 쓰기를 유발하지 않으면, S553 단계에서, 매체 제어기(1230)는 제2 쓰기 요청에 따라 휘발성 메모리 장치(1210)에 대해 쓰기 동작을 수행할 수 있다.In operation S552, the media controller 1230 may determine whether the second write request causes writing to the nonvolatile memory device 1220. If the second write request does not cause writing to the nonvolatile memory device 1220, in operation S553, the media controller 1230 may perform a write operation on the volatile memory device 1210 according to the second write request. have.

제2 쓰기 요청이 불휘발성 메모리 장치(1220)에 대한 쓰기를 유발하면, S554 단계가 수행된다. S554 단계에서, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 활성화할 수 있다. S555 단계에서, 매체 제어기(1230)는 불휘발성 메모리 장치(1220)에 대해 쓰기 동작을 수행할 수 있다.If the second write request causes writing to the nonvolatile memory device 1220, step S554 is performed. In operation S554, the media controller 1230 may activate the write error signal WRCRC. In operation S555, the media controller 1230 may perform a write operation on the nonvolatile memory device 1220.

불휘발성 메모리 장치(1220)에 대한 쓰기 동작이 완료된 후에, 제2 쓰기 요청이 수신되면(S556 단계), S557 단계에서, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 비활성화(예를 들어, 하이 레벨로 조절)할 수 있다.After the write operation to the nonvolatile memory device 1220 is completed, when a second write request is received (step S556), in step S557, the media controller 1230 disables the write error signal WRCRC (eg, High level).

도 53을 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(1220)에 대한 쓰기 동작은 휘발성 메모리 장치(1210)에 대한 쓰기 동작보다 긴 시간을 필요로 한다. 메모리 제어기(530c)는 휘발성 메모리 장치(1210)의 쓰기 속도에 기반하여 주 메모리(540c)를 제어하도록 구성된다.As described with reference to FIG. 53, a write operation on the nonvolatile memory device 1220 requires a longer time than a write operation on the volatile memory device 1210. The memory controller 530c is configured to control the main memory 540c based on the write speed of the volatile memory device 1210.

예를 들어, 메모리 제어기(530c)는 주 메모리(540c)로 제2 쓰기 요청(W2)을 전달하고, 주 메모리(540c)로부터 별도의 회신, 예를 들어 쓰기 에러 신호(WRCRC)의 활성화가 없으면 쓰기 동작이 완료된 것으로 판단할 수 있다.For example, the memory controller 530c forwards the second write request W2 to the main memory 540c, and if there is no separate reply from the main memory 540c, for example, activation of the write error signal WRCRC. It can be determined that the write operation is completed.

불휘발성 메모리 장치(1220)에 대한 쓰기 동작이 완료되지 않은 상태에서 메모리 제어기(530c)가 쓰기 완료를 판단하면, 쓰기 실패가 발생할 수 있다. 이러한 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 주 메모리(540c)는 불휘발성 메모리 장치(1220)에 대한 쓰기 동작이 완료될 때까지 쓰기 에러 신호(WRCRC)를 활성 상태(예를 들어, 로우 레벨)로 유지할 수 있다.If the memory controller 530c determines that the write is completed while the write operation to the nonvolatile memory device 1220 is not completed, a write failure may occur. In order to solve this problem, the main memory 540c according to an embodiment of the present invention may activate the write error signal WRCRC until the write operation of the nonvolatile memory device 1220 is completed. Low level).

도 66은 도 65의 동작 방법에 따라 쓰기 동작이 수행되는 제1 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되지 않으며, 휘발성 메모리 장치(1210)에서 쓰기 동작이 수행되는 예가 도 66에 도시된다.66 shows a first example in which a write operation is performed according to the operation method of FIG. 65. For example, an example in which the first command and the address CA1 are not associated with the nonvolatile memory device 1220 and a write operation is performed in the volatile memory device 1210 is illustrated in FIG. 66.

도 40, 도 63, 도 65 및 도 66을 참조하면, 프로세서(510)는 제1 쓰기 요청(W1)을 생성할 수 있다. S561 단계에서, 프로세서(510)는 제1 쓰기 요청(W1)을 제어기(530c)로 전달할 수 있다. 메모리 제어기(530c)는 제1 쓰기 요청(W1)에 따라 제2 쓰기 요청(W2)을 생성할 수 있다.40, 63, 65, and 66, the processor 510 may generate a first write request W1. In operation S561, the processor 510 may transmit the first write request W1 to the controller 530c. The memory controller 530c may generate a second write request W2 according to the first write request W1.

S562 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 매체 제어기(1230)로 전달할 수 있다. 제2 쓰기 요청(W2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다.In operation S562, the memory controller 530c may transfer the second write request W2 to the media controller 1230. The second write request W2 may be transmitted to the media controller 1230 as the first command and address CA1.

매체 제어기(1230)는 제2 쓰기 요청(W2)에 따라 제3 쓰기 요청(W3)을 생성할 수 있다. S563 단계에서, 매체 제어기(1230)는 제3 쓰기 요청(W3)을 휘발성 메모리 장치(1210)로 전달할 수 있다. 제3 쓰기 요청(W3)은 제2 커맨드 및 어드레스(CA2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다.The media controller 1230 may generate a third write request W3 according to the second write request W2. In operation S563, the media controller 1230 may transfer the third write request W3 to the volatile memory device 1210. The third write request W3 may be transmitted to the volatile memory device 1210 as a second command and address CA2.

예를 들어, 매체 제어기(1230)는 제2 쓰기 요청(W2)을 가공하지 않고 제3 쓰기 요청(W3)으로서 휘발성 메모리 장치(1210)로 전달할 수 있다. 다른 예로서, 매체 제어기(1230)는 제2 쓰기 요청(W2)을 휘발성 메모리 장치(1210)에 적합한 형태로 가공하고, 가공된 결과를 제3 쓰기 요청(W3)으로서 휘발성 메모리 장치(1210)로 전달할 수 있다.For example, the media controller 1230 may transfer the second write request W2 to the volatile memory device 1210 as the third write request W3 without processing the second write request W2. As another example, the media controller 1230 processes the second write request W2 into a form suitable for the volatile memory device 1210, and processes the processed result to the volatile memory device 1210 as the third write request W3. I can deliver it.

제3 쓰기 요청(W3)에 응답하여, 휘발성 메모리 장치(1210)는 쓰기 동작(WR)을 수행할 수 있다. 예시적으로, 도 52를 참조하여 설명된 바와 같이, 메모리 제어기(530c)는 매체 제어기(1230)의 제어를 거치지 않고 또는 매체 제어기(1230)의 버퍼링 없이, 제1 내지 제8 데이터 버퍼들(1241~1248) 및 매체 제어기(1230)를 통해 휘발성 메모리 장치(1210)에 데이터를 직접 기입할 수 있다.In response to the third write request W3, the volatile memory device 1210 may perform a write operation WR. For example, as described with reference to FIG. 52, the memory controller 530c may be configured to include the first to eighth data buffers 1241 without being controlled by the media controller 1230 or without buffering the media controller 1230. 1248) and the media controller 1230 may directly write data to the volatile memory device 1210.

쓰기 데이터에 에러가 없으면, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 하이 레벨의 비활성 상태로 유지할 수 있다. 쓰기 데이터에 에러가 있으면, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 로우 레벨의 활성 상태로 제어할 수 있다. 쓰기 에러 신호(WRCRC)의 활성화에 따라, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 재전송할 수 있다.If there is no error in the write data, the media controller 1230 may maintain the write error signal WRCRC in a high level inactive state. If there is an error in the write data, the media controller 1230 may control the write error signal WRCRC to a low level active state. In response to the activation of the write error signal WRCRC, the memory controller 530c may retransmit the second write request W2.

예시적으로, 쓰기 데이터에 에러가 존재하는지 체크하는 것은 매체 제어기(1230) 또는 휘발성 메모리 장치(1210)에 의해 수행될 수 있다. 매체 제어기(1230) 또는 휘발성 메모리 장치(1210)는 쓰기 데이터에 에러가 존재할 때에 쓰기 에러 신호(WRCRC)를 로우 레벨로 활성화할 수 있다.In exemplary embodiments, checking whether an error exists in the write data may be performed by the media controller 1230 or the volatile memory device 1210. The media controller 1230 or the volatile memory device 1210 may activate the write error signal WRCRC to a low level when an error exists in the write data.

예를 들어, 휘발성 메모리 장치(1210)가 출력하는 쓰기 에러 신호(WRCRC)는 제2 제어 신호(CTRL2)에 포함되어 매체 제어기(1230)로 전달될 수 있다. 매체 제어기(1230)는 휘발성 메모리 장치(1210)로부터 전달된 쓰기 에러 신호(WRCRC)를 메모리 제어기(530c)로 전달할 수 있다.For example, the write error signal WRCRC output by the volatile memory device 1210 may be included in the second control signal CTRL2 and transmitted to the media controller 1230. The media controller 1230 may transfer the write error signal WRCRC transmitted from the volatile memory device 1210 to the memory controller 530c.

도 67은 도 65의 동작 방법에 따라 쓰기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)에 대한 쓰기 동작을 유발하는 예가 도 67에 도시된다.67 is a view illustrating a second example in which a write operation is performed according to the operating method of FIG. 65. For example, an example in which the first command and the address CA1 cause a write operation to the nonvolatile memory device 1220 is illustrated in FIG. 67.

도 40, 도 63, 도 65 및 도 67을 참조하면, 프로세서(510)는 제1 쓰기 요청(W1)을 생성할 수 있다. S571 단계에서, 프로세서(510)는 제1 쓰기 요청(W1)을 제어기(530c)로 전달할 수 있다. 메모리 제어기(530c)는 제1 쓰기 요청(W1)에 따라 제2 쓰기 요청(W2)을 생성할 수 있다.40, 63, 65, and 67, the processor 510 may generate a first write request W1. In operation S571, the processor 510 may transmit the first write request W1 to the controller 530c. The memory controller 530c may generate a second write request W2 according to the first write request W1.

S572 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 매체 제어기(1230)로 전달할 수 있다. 제2 쓰기 요청(W2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다. 제2 쓰기 요청(W2)은 불휘발성 메모리 장치(1220)에 대한 쓰기 동작을 유발한다. 따라서, 제2 쓰기 요청(W2)이 수신됨에 따라, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 로우 레벨로 활성화할 수 있다.In operation S572, the memory controller 530c may transmit a second write request W2 to the media controller 1230. The second write request W2 may be transmitted to the media controller 1230 as the first command and address CA1. The second write request W2 causes a write operation on the nonvolatile memory device 1220. Accordingly, as the second write request W2 is received, the media controller 1230 may activate the write error signal WRCRC to a low level.

매체 제어기(1230)는 제2 쓰기 요청(W2)에 따라 제3 쓰기 요청(W3)을 생성할 수 있다. S573 단계에서, 매체 제어기(1230)는 제3 쓰기 요청(W3)을 불휘발성 메모리 장치(1220)로 전달할 수 있다. 제3 쓰기 요청(W3)은 제3 커맨드 및 어드레스(CA3)로서 불휘발성 메모리 장치(1220)로 전달될 수 있다.The media controller 1230 may generate a third write request W3 according to the second write request W2. In operation S573, the media controller 1230 may transfer the third write request W3 to the nonvolatile memory device 1220. The third write request W3 may be transferred to the nonvolatile memory device 1220 as a third command and address CA3.

예를 들어, 매체 제어기(1230)는 제2 쓰기 요청(W2)을 가공하지 않고 제3 쓰기 요청(W3)으로서 불휘발성 메모리 장치(1220)로 전달할 수 있다. 다른 예로서, 매체 제어기(1230)는 제2 쓰기 요청(W2)을 불휘발성 메모리 장치(1220)에 적합한 형태로 가공하고, 가공된 결과를 제3 쓰기 요청(W3)으로서 불휘발성 메모리 장치(1220)로 전달할 수 있다.For example, the media controller 1230 may transfer the second write request W2 to the nonvolatile memory device 1220 as the third write request W3 without processing the second write request W2. As another example, the media controller 1230 processes the second write request W2 into a form suitable for the nonvolatile memory device 1220, and processes the processed result as the third write request W3 as the nonvolatile memory device 1220. ) Can be delivered.

제3 쓰기 요청(W3)에 응답하여, 불휘발성 메모리 장치(1220)는 쓰기 동작(WR)을 수행할 수 있다. 쓰기 에러 신호(WRCRC)가 활성화됨에 따라, S574 단계에서, 메모리 제어기(530c)는 복원(RE)을 수행할 수 있다. 복원이 수행된 후에, S575 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(S565)을 다시 전송함으로써 쓰기 재시도를 수행할 수 있다.In response to the third write request W3, the nonvolatile memory device 1220 may perform a write operation WR. As the write error signal WRCRC is activated, in operation S574, the memory controller 530c may perform a recovery RE. After the restoration is performed, in operation S575, the memory controller 530c may perform a write retry by transmitting the second write request S565 again.

이후에, 불휘발성 메모리 장치(1220)에서 쓰기 동작(WR)이 수행되는 동안, 쓰기 에러 신호(WRCRC)의 활성화에 따라 S576 단계 내지 S578 단계에서 메모리 제어기(530c)는 복원 및 쓰기 재시도를 반복할 수 있다.Thereafter, while the write operation WR is performed in the nonvolatile memory device 1220, the memory controller 530c repeats the restoration and the write retry in steps S576 to S578 according to the activation of the write error signal WRCRC. can do.

S579 단계에서, 불휘발성 메모리 장치(1220)는 쓰기 동작(WR)이 완료 되었음을 매체 제어기(1230)에 알릴 수 있다. 예를 들어, 불휘발성 메모리 장치(1220)는 레디/비지(ready/busy) 신호(R/nB)가 레디(ready)를 가리키도록 제어함으로써, 쓰기 동작(WR)이 완료되었음을 매체 제어기(1230)에 알릴 수 있다.In operation S579, the nonvolatile memory device 1220 may notify the media controller 1230 that the write operation WR is completed. For example, the nonvolatile memory device 1220 controls the ready / busy signal R / nB to indicate ready, thereby indicating that the write operation WR is completed. ) Can be informed.

S580 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 매체 제어기(1230)로 전송함으로써 쓰기 재시도를 수행할 수 있다. S580 단계에서 제2 쓰기 요청(W2)이 수신됨에 따라, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 하이 레벨로 비활성화할 수 있다. 쓰기 에러 신호(WRCRC)가 비활성화됨에 따라, 메모리 제어기(530c)는 쓰기 동작(WR)이 완료되었음을 식별할 수 있다.In operation S580, the memory controller 530c may perform a write retry by transmitting the second write request W2 to the media controller 1230. As the second write request W2 is received in operation S580, the media controller 1230 may deactivate the write error signal WRCRC to a high level. As the write error signal WRCRC is deactivated, the memory controller 530c may identify that the write operation WR is completed.

상술된 바와 같이, 불휘발성 메모리 장치(1220)에 대해 쓰기 동작(WR)이 수행될 때, 매체 제어기(1230)는 에러가 발생하지 않았음에도 쓰기 에러 신호(WRCRC)를 활성화할 수 있다. 쓰기 에러 신호(WRCRC)를 활성화함에 따라, 메모리 제어기(530c)는 횟수 제한 없이 쓰기 동작을 재전송할 수 있다. 따라서, 불휘발성 메모리 장치(1220)에 대한 쓰기 동작(WR)이 완료될 때까지, 메모리 제어기(530c)가 홀드(hold) 되며, 쓰기 에러가 방지된다.As described above, when the write operation WR is performed on the nonvolatile memory device 1220, the media controller 1230 may activate the write error signal WRCRC even though no error occurs. By activating the write error signal WRCRC, the memory controller 530c may retransmit the write operation without limit. Therefore, the memory controller 530c is held until the write operation WR for the nonvolatile memory device 1220 is completed, and the write error is prevented.

도 68은 도 66의 동작 방법에 따라 쓰기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 휘발성 메모리 장치(1210)가 불휘발성 메모리 장치(1220)의 캐시 메모리로 사용되는 예가 도 68에 도시된다.FIG. 68 shows a second example in which a write operation is performed according to the operation method of FIG. 66. For example, an example in which the first command and the address CA1 are associated with the nonvolatile memory device 1220 and the volatile memory device 1210 is used as a cache memory of the nonvolatile memory device 1220 is illustrated in FIG. 68. .

도 40, 도 63, 도 66 및 도 68을 참조하면, 프로세서(510)는 제1 쓰기 요청(W1)을 생성할 수 있다. S591 단계에서, 프로세서(510)는 제1 쓰기 요청(W1)을 제어기(530c)로 전달할 수 있다. 메모리 제어기(530c)는 제1 쓰기 요청(W1)에 따라 제2 쓰기 요청(W2)을 생성할 수 있다.40, 63, 66, and 68, the processor 510 may generate a first write request W1. In operation S591, the processor 510 may transmit the first write request W1 to the controller 530c. The memory controller 530c may generate a second write request W2 according to the first write request W1.

S592 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 매체 제어기(1230)로 전달할 수 있다. 제2 쓰기 요청(W2)은 제1 커맨드 및 어드레스(CA1)로서 매체 제어기(1230)로 전달될 수 있다. 매체 제어기(1230)는 제1 커맨드 및 어드레스(CA1)와 연관된 저장 공간이 휘발성 메모리 장치(1210)에 사상되어 있는지 판단할 수 있다.In operation S592, the memory controller 530c may transmit a second write request W2 to the media controller 1230. The second write request W2 may be transmitted to the media controller 1230 as the first command and address CA1. The media controller 1230 may determine whether the storage space associated with the first command and the address CA1 is mapped to the volatile memory device 1210.

예를 들어, 제1 커맨드 및 어드레스(CA1)와 연관된 저장 공간은 휘발성 메모리 장치(1210)에 사상되어 있지 않을 수 있다. 또한, 휘발성 메모리 장치(1210)의 자유 저장 공간이 제1 커맨드 및 어드레스(CA1)와 연관된 저장 공간을 제공하기에 부족하여, 불휘발성 메모리 장치(1220)에 대한 쓰기 동작을 유발할 수 있다.For example, the storage space associated with the first command and the address CA1 may not be mapped in the volatile memory device 1210. In addition, the free storage space of the volatile memory device 1210 is insufficient to provide a storage space associated with the first command and the address CA1, which may cause a write operation to the nonvolatile memory device 1220.

매체 제어기(1230)는 휘발성 메모리 장치(1210)에 사상된 저장 공간들 중 특정한 저장 공간을 선택하고, 선택된 저장 공간을 제거할 수 있다. 예를 들어, 선택된 저장 공간은 오염된(dirty) 저장 공간일 수 있다. 매체 제어기(1230)는 선택된 저장 공간을 불휘발성 메모리 장치(1220)로 반환함으로써, 불휘발성 메모리 장치(1220)에 대한 쓰기 동작을 유발할 수 있다.The media controller 1230 may select a specific storage space among the storage spaces mapped in the volatile memory device 1210 and remove the selected storage space. For example, the selected storage space may be a dirty storage space. The media controller 1230 may return the selected storage space to the nonvolatile memory device 1220 to cause a write operation on the nonvolatile memory device 1220.

S593 단계에서, 매체 제어기(1230)는 선택된 저장 공간에 대한 읽기 요청(R)을 휘발성 메모리 장치(1210)로 전송할 수 있다. 읽기 요청(R)은 제2 커맨드 및 어드레스(CA2) 또는 제2 제어 신호(CTRL2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다.In operation S593, the media controller 1230 may transmit a read request R for the selected storage space to the volatile memory device 1210. The read request R may be transmitted to the volatile memory device 1210 as a second command and address CA2 or a second control signal CTRL2.

예를 들어, 읽기 요청(R)은 제2 커맨드 및 어드레스(CA2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다. 다른 예로서, 읽기 요청(R)은 제2 제어 신호(CTRL2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다. 예를 들어, 매체 제어기(1230)는 특정한 제어 신호, 예를 들어 SAVEn을 활성화할 수 있다.For example, the read request R may be transmitted to the volatile memory device 1210 as the second command and the address CA2. As another example, the read request R may be transmitted to the volatile memory device 1210 as the second control signal CTRL2. For example, the media controller 1230 can activate a particular control signal, for example SAVEn.

특정한 제어 신호가 활성화되면, 휘발성 메모리 장치(1210)는 저장된 데이터, 예를 들어 내부 스케줄에 의해 지정된 위치(예를 들어, 뱅크)의 데이터 또는 모든 데이터를 출력할 수 있다. 매체 제어기(1230)는 휘발성 메모리 장치(1210)로부터 전달되는 데이터를 저장할 수 있다.When a specific control signal is activated, the volatile memory device 1210 may output stored data, for example, data at a location (eg, a bank) designated by an internal schedule, or all data. The media controller 1230 may store data transferred from the volatile memory device 1210.

휘발성 메모리 장치(1210)는 읽기 요청(R)에 따라 읽기 동작(RD)을 수행할 수 있다. 휘발성 메모리 장치(1210)에서 읽혀진 데이터는 S594 단계에서 매체 제어기(1230)로 전달될 수 있다. 휘발성 메모리 장치(1210)로부터 선택된 저장 공간의 데이터가 읽혀짐에 따라, S594 단계에서, 매체 제어기(1230)는 불휘발성 메모리 장치(1220)로 제3 쓰기 요청(W3)을 전송할 수 있다. 제3 쓰기 요청(W3)은 제3 커맨드 및 어드레스(CA3) 또는 제3 제어 신호(CTRL3)로서 불휘발성 메모리 장치(1220)로 전달될 수 있다.The volatile memory device 1210 may perform a read operation RD according to a read request R. FIG. Data read from the volatile memory device 1210 may be transferred to the media controller 1230 at step S594. As data of the selected storage space is read from the volatile memory device 1210, in operation S594, the media controller 1230 may transmit a third write request W3 to the nonvolatile memory device 1220. The third write request W3 may be transmitted to the nonvolatile memory device 1220 as the third command and address CA3 or the third control signal CTRL3.

제3 쓰기 요청(W3)에 따라, 불휘발성 메모리 장치(1220)는 쓰기 동작(WR)을 수행할 수 있다. 불휘발성 메모리 장치(1220)가 쓰기 동작을 수행하는 동안, 쓰기 에러 신호(WRCRC)가 활성화되어 있다. 따라서, 불휘발성 메모리 장치(1220)가 쓰기 동작을 수행하는 동안, 메모리 제어기(530c)는 S596 단계 내지 S600 단계에서 복원(RE) 및 제2 쓰기 요청(W2)을 전송하는 쓰기 재시도를 반복할 수 있다.In response to the third write request W3, the nonvolatile memory device 1220 may perform a write operation WR. While the nonvolatile memory device 1220 performs the write operation, the write error signal WRCRC is activated. Accordingly, while the nonvolatile memory device 1220 performs the write operation, the memory controller 530c may repeat the write retry of transmitting the restore RE and the second write request W2 in steps S596 to S600. Can be.

S601 단계에서, 불휘발성 메모리 장치(1220)는 쓰기 동작(WR)이 완료 되었음을 매체 제어기(1230)에 알릴 수 있다. 쓰기 동작(WR)이 완료된 후에, S602 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 전송하여 쓰기 재시도를 수행할 수 있다.In operation S601, the nonvolatile memory device 1220 may notify the media controller 1230 that the write operation WR is completed. After the write operation WR is completed, in step S602, the memory controller 530c may transmit a second write request W2 to perform a write retry.

불휘발성 메모리 장치(1220)의 쓰기 동작이 완료된 후에 제2 쓰기 요청(W2)이 수신되면(S602 단계), 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 비활성화할 수 있다. 매체 제어기(1230)는 S602 단계의 제2 쓰기 요청(W2)에 따라, 휘발성 메모리 장치(1210)에 제1 커맨드 및 어드레스(CA1)와 연관된 저장 공간을 사상할 수 있다.When the second write request W2 is received after the write operation of the nonvolatile memory device 1220 is completed (operation S602), the media controller 1230 may inactivate the write error signal WRCRC. The media controller 1230 may map the storage space associated with the first command and the address CA1 to the volatile memory device 1210 according to the second write request W2 in step S602.

S603 단계에서, 매체 제어기(1230)는 휘발성 메모리 장치(1210)에 제3 쓰기 요청(W3)을 전송할 수 있다. 제3 쓰기 요청(W3)은 제2 커맨드 및 어드레스(CA2) 또는 제2 제어 신호(CTRL2)로서 전달될 수 있다. 제3 쓰기 요청(W3)에 따라, 휘발성 메모리 장치(1210)는 쓰기 동작(WR)을 수행할 수 있다.In operation S603, the media controller 1230 may transmit a third write request W3 to the volatile memory device 1210. The third write request W3 may be transmitted as the second command and address CA2 or the second control signal CTRL2. In response to the third write request W3, the volatile memory device 1210 may perform a write operation WR.

도 69는 도 68의 읽기 동작의 변형 예를 보여준다. 도 40, 도 63, 도 66 및 도 69를 참조하면, S611 단계 내지 S621 단계는 도 68의 S591 단계 내지 S601 단계와 동일하게 수행된다. 따라서, 중복되는 설명은 생략된다.69 is a view illustrating a modification of the read operation of FIG. 68. 40, 63, 66, and 69, steps S611 to S621 are performed in the same manner as steps S591 to S601 of FIG. 68. Therefore, redundant description is omitted.

불휘발성 메모리 장치(1220)에서 쓰기 동작(WR)이 완료된 후에, S622 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 매체 제어기(1230)로 전달할 수 있다. 매체 제어기(1230)는 제2 쓰기 요청(W2)을 제3 쓰기 요청(W3)으로서 휘발성 메모리 장치(1210)로 전달할 수 있다.After the write operation WR is completed in the nonvolatile memory device 1220, in operation S622, the memory controller 530c may transmit a second write request W2 to the media controller 1230. The media controller 1230 may transfer the second write request W2 as the third write request W3 to the volatile memory device 1210.

메모리 제어기(530c)로부터 전달되는 데이터는 매체 제어기(1230)에 의해 제어되거나 버퍼링되지 않고, 매체 제어기(1230) 및 제1 내지 제8 데이터 버퍼들(1241~1248)을 통해 휘발성 메모리 장치(1210)로 직접 전달될 수 있다. LRDIMM은 동적 랜덤 액세스 메모리(DRAM)에 기반하므로, 휘발성 메모리 장치(1210)는 메모리 제어기(530a)와 직접 통신할 수 있다.The data transferred from the memory controller 530c is not controlled or buffered by the media controller 1230, and the volatile memory device 1210 through the media controller 1230 and the first through eighth data buffers 1241-1248. Can be delivered directly. Since the LRDIMM is based on dynamic random access memory (DRAM), the volatile memory device 1210 may directly communicate with the memory controller 530a.

도 70은 도 68의 읽기 동작의 다른 변형 예를 보여준다. 도 40, 도 63, 도 66 및 도 70을 참조하면, 매체 제어기(1230)는 읽기 동작(RD)이 완료됨에 따라 제3 쓰기 요청(W3)을 불휘발성 메모리 장치(1220)로 전송하지 않고 대기할 수 있다. 읽기 동작(RD)이 완료된 후에, S597 단계에서 메모리 제어기(530c)로부터 제2 쓰기 요청(W2)이 전달될 수 있다. S597 단계의 제2 쓰기 요청(W2)에 응답하여, 매체 제어기(1230)는 불휘발성 메모리 장치(1220)로 제3 쓰기 요청(W3)을 전송할 수 있다(S604 단계).70 shows another modified example of the read operation of FIG. 68. 40, 63, 66, and 70, as the read operation RD is completed, the media controller 1230 waits without transmitting the third write request W3 to the nonvolatile memory device 1220. can do. After the read operation RD is completed, the second write request W2 may be transferred from the memory controller 530c in operation S597. In response to the second write request W2 in step S597, the media controller 1230 may transmit a third write request W3 to the nonvolatile memory device 1220 (step S604).

예시적으로, 도 60 및 도 61에서 매체 제어기(1230)는 SPD 장치(541) 및 레지스터 갱신기(542)를 포함하는 것으로 설명되었다. 또한, 도 63에서 매체 제어기(1230)는 쓰기 에러 제어기(543)를 포함하는 것으로 설명되었다. 본 발명의 실시 예에 따른 매체 제어기(1230)는 SPD 장치(541), 레지스터 갱신기(542), 그리고 쓰기 에러 제어기(543)를 모두 포함할 수 있다.For example, in FIG. 60 and FIG. 61, the media controller 1230 has been described as including an SPD device 541 and a register updater 542. In addition, the media controller 1230 has been described in FIG. 63 as including a write error controller 543. The media controller 1230 according to an embodiment of the present invention may include the SPD device 541, the register updater 542, and the write error controller 543.

레지스터 갱신기(542)는 횟수 제한 없이 읽기 재시도를 수행하도록, 메모리 제어기(530a, 530b 또는 530c)의 레지스터(532)를 갱신할 수 있다. 또한, 레지스터 갱신기(542)는 횟수 제한 없이 쓰기 재시도를 수행하도록, 메모리 제어기(530a, 530b 또는 530c)의 레지스터(532)를 갱신할 수 있다.The register updater 542 may update the register 532 of the memory controller 530a, 530b, or 530c to perform read retries without limit. In addition, the register updater 542 may update the register 532 of the memory controller 530a, 530b, or 530c to perform a write retry without limit.

상술된 실시 예들에서, "블록"의 용어를 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. "블록"은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, "블록"은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP (Intellectual Property)를 포함할 수 있다.In the above-described embodiments, the components according to the embodiments of the present invention are referred to using the term "block". A "block" can be a variety of hardware devices, such as integrated circuits (ICs), application specific ICs (ASICs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc., firmware running on hardware devices, applications, and the like. It may be implemented in software, or a combination of hardware devices and software. In addition, the "block" may include circuits or IP (Intellectual Property) composed of semiconductor elements in the IC.

상술된 실시 예들에서, 다양한 실시 예들 및 다양한 도면들을 참조하여 본 발명의 기술적 사상이 설명되었다. 그러나 분리하여 설명된 실시 예들 및 도면들은 본 발명의 기술적 사상을 이 분야에 숙련된 자들에게 용이하게 이해시키기 위한 것으로, 서로 분리되는 것으로 의도되지 않는다.In the above-described embodiments, the technical idea of the present invention has been described with reference to various embodiments and various drawings. However, the embodiments and the drawings separately described are intended to facilitate understanding of the spirit of the present invention by those skilled in the art, and are not intended to be separated from each other.

본 발명의 기술적 사상에 따른 상술된 실시 예들 및 상술된 도면들은 서로 조합될 수 있다. 도 1 내지 도 70 중 적어도 하나의 도면 또는 상술된 실시 예들 중 적어도 하나의 실시 예에 기재된 기술적 특징과 도 1 내지 도 70 중 적어도 다른 하나의 도면 또는 상술된 실시 예들 중 적어도 다른 하나의 실시 예에 기재된 기술적 특징이 조합되어 본 발명의 기술적 사상에 따른 실시 예를 구성할 수 있다.The above-described embodiments according to the spirit of the present invention and the above-described drawings may be combined with each other. Technical features described in at least one of FIGS. 1 to 70 or at least one of the above-described embodiments and at least another embodiment of at least another one of FIGS. 1 to 70 or the above-described embodiments. The described technical features may be combined to form an embodiment according to the spirit of the present invention.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The foregoing is specific embodiments for practicing the present invention. The present invention will include not only the above-described embodiments but also embodiments that can be simply changed in design or easily changed. In addition, the present invention will also include techniques that can be easily modified and practiced using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the equivalents of the claims of the present invention as well as the following claims.

100a: 메모리 시스템
110: 중앙 제어 블록
120: 제1 메모리 모듈
130: 제2 메모리 모듈
140: 제3 메모리 모듈
150: 제4 메모리 모듈
160: 루트 컴플렉스
170: 스토리지 장치
180: 전력 관리 블록
190: 주변 장치들
100a: memory system
110: central control block
120: first memory module
130: second memory module
140: third memory module
150: fourth memory module
160: root complex
170: storage device
180: power management block
190: peripherals

Claims (10)

랜덤 액세스 메모리;
불휘발성 메모리;
버퍼 메모리; 그리고
제어 신호의 활성화에 응답하여 상기 버퍼 메모리에 대해 읽기 동작을 수행하도록 구성되는 제어기를 포함하고,
상기 읽기 동작의 결과에 따라, 상기 제어기는 상기 랜덤 액세스 메모리에 저장된 제1 데이터를 상기 불휘발성 메모리에 저장하는 플러시 동작을 수행하도록 더 구성되는 반도체 메모리 모듈.
Random access memory;
Nonvolatile memory;
Buffer memory; And
A controller configured to perform a read operation on the buffer memory in response to activation of a control signal,
And in response to a result of the read operation, the controller is further configured to perform a flush operation of storing first data stored in the random access memory in the nonvolatile memory.
제1항에 있어서,
외부의 호스트 장치의 요청에 따라 상기 랜덤 액세스 메모리에 상기 제1 데이터를 기입할 때, 상기 제어기는 상기 제1 데이터의 정보를 상기 버퍼 메모리에 저장하도록 더 구성되는 반도체 메모리 모듈.
The method of claim 1,
And when writing the first data to the random access memory in response to a request of an external host device, the controller is further configured to store the information of the first data in the buffer memory.
제2항에 있어서,
상기 읽기 동작 시에 상기 제어기는 상기 버퍼 메모리로부터 상기 정보를 읽도록 더 구성되고, 그리고
상기 제1 데이터는 상기 랜덤 액세스 메모리에 저장된 데이터 중 상기 정보에 따라 선택되는 데이터인 반도체 메모리 모듈.
The method of claim 2,
The controller is further configured to read the information from the buffer memory in the read operation, and
And the first data is data selected according to the information among data stored in the random access memory.
제3항에 있어서,
상기 제1 데이터가 상기 불휘발성 메모리에 저장된 후에, 상기 제어기는 상기 정보를 상기 버퍼 메모리로부터 제거하도록 더 구성되는 반도체 메모리 모듈.
The method of claim 3,
And after the first data is stored in the nonvolatile memory, the controller is further configured to remove the information from the buffer memory.
제1항에 있어서,
상기 랜덤 액세스 메모리에 저장된 데이터 중 상기 외부의 호스트 장치에 의해 기입되지 않은 제2 데이터는 상기 플러시 동작 동안에 상기 불휘발성 메모리에 저장되지 않는 반도체 메모리 모듈.
The method of claim 1,
And second data not written by the external host device among the data stored in the random access memory are not stored in the nonvolatile memory during the flush operation.
제1항에 있어서,
상기 랜덤 액세스 메모리는 상기 불휘발성 메모리의 캐시 메모리로 사용되는 반도체 메모리 모듈.
The method of claim 1,
And the random access memory is used as a cache memory of the nonvolatile memory.
제1항에 있어서,
상기 플러시 동작은 상기 랜덤 액세스 메모리에 저장된 상기 제1 데이터를 읽어 상기 버퍼 메모리에 저장하는 제1 동작을 포함하는 반도체 메모리 모듈.
The method of claim 1,
The flush operation may include a first operation of reading the first data stored in the random access memory and storing the read first data in the buffer memory.
제7항에 있어서,
상기 플러시 동작은 상기 버퍼 메모리에 저장된 제2 데이터를 상기 불휘발성 메모리 장치에 기입하는 제2 동작들 더 포함하는 반도체 메모리 모듈.
The method of claim 7, wherein
The flush operation may further include second operations of writing second data stored in the buffer memory to the nonvolatile memory device.
랜덤 액세스 메모리;
불휘발성 메모리;
버퍼 메모리; 그리고
제어 신호의 활성화에 응답하여 상기 버퍼 메모리 및 상기 랜덤 액세스 메모리에 대해 읽기 동작을 수행하고, 상기 버퍼 메모리로부터 읽은 제1 데이터를 상기 불휘발성 메모리에 저장하고, 그리고 상기 랜덤 액세스 메모리로부터 읽은 제2 데이터를 상기 버퍼 메모리에 저장하는 플러시 동작을 수행하도록 구성되는 제어기를 포함하는 반도체 메모리 모듈.
Random access memory;
Nonvolatile memory;
Buffer memory; And
In response to activation of a control signal, a read operation is performed on the buffer memory and the random access memory, the first data read from the buffer memory is stored in the nonvolatile memory, and the second data read from the random access memory. And a controller configured to perform a flush operation to store a buffer in the buffer memory.
랜덤 액세스 메모리, 불휘발성 메모리, 그리고 제어기를 포함하는 반도체 메모리 모듈; 그리고
상기 반도체 메모리 모듈을 액세스할 때에 액세스 오류가 검출되면, 상기 제어기에 전달되는 제어 신호를 활성화하도록 구성되는 중앙 제어 블록을 포함하고,
상기 제어 신호가 활성화되는 것에 응답하여, 상기 제어기는 상기 랜덤 액세스 메모리에 저장된 데이터 중 제1 데이터를 읽고 그리고 상기 제1 데이터를 상기 불휘발성 메모리에 제2 데이터로서 저장하도록 구성되는 메모리 시스템.
A semiconductor memory module including a random access memory, a nonvolatile memory, and a controller; And
A central control block configured to activate a control signal transmitted to the controller if an access error is detected when accessing the semiconductor memory module,
In response to the control signal being activated, the controller is configured to read first data of the data stored in the random access memory and store the first data as second data in the nonvolatile memory.
KR1020180043848A 2018-03-27 2018-04-16 Semiconductor memory module and memory system including semiconductor memory module KR102538253B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180043848A KR102538253B1 (en) 2018-04-16 2018-04-16 Semiconductor memory module and memory system including semiconductor memory module
US16/218,720 US10990463B2 (en) 2018-03-27 2018-12-13 Semiconductor memory module and memory system including the same
CN201910166951.9A CN110389721A (en) 2018-04-16 2019-03-06 Semiconductor storage module and storage system including it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180043848A KR102538253B1 (en) 2018-04-16 2018-04-16 Semiconductor memory module and memory system including semiconductor memory module

Publications (2)

Publication Number Publication Date
KR20190120536A true KR20190120536A (en) 2019-10-24
KR102538253B1 KR102538253B1 (en) 2023-06-01

Family

ID=68284903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180043848A KR102538253B1 (en) 2018-03-27 2018-04-16 Semiconductor memory module and memory system including semiconductor memory module

Country Status (2)

Country Link
KR (1) KR102538253B1 (en)
CN (1) CN110389721A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880601B2 (en) 2021-05-20 2024-01-23 SK Hynix Inc. Data storage device for performing read operation and operating method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085248A (en) * 1997-02-11 2000-07-04 Xaqtu Corporation Media access control transmitter and parallel network management system
US6336174B1 (en) * 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
US20170153826A1 (en) * 2015-12-01 2017-06-01 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552175B2 (en) * 2011-02-08 2017-01-24 Diablo Technologies Inc. System and method for providing a command buffer in a memory system
US10223204B2 (en) * 2011-12-22 2019-03-05 Intel Corporation Apparatus and method for detecting and recovering from data fetch errors
KR101888074B1 (en) * 2012-01-09 2018-08-13 삼성전자주식회사 Storage device and nonvolatile memory device and operation method thererof
US10152413B2 (en) * 2015-06-08 2018-12-11 Samsung Electronics Co. Ltd. Nonvolatile memory module and operation method thereof
US9665423B2 (en) * 2015-06-15 2017-05-30 Nxp Usa, Inc. End-to-end error detection and correction
US9785563B1 (en) * 2015-08-13 2017-10-10 Western Digital Technologies, Inc. Read command processing for data storage system based on previous writes
KR102475547B1 (en) * 2015-12-01 2022-12-12 삼성전자주식회사 Nonvolatile memory device and operation method thereof
KR102491651B1 (en) * 2015-12-14 2023-01-26 삼성전자주식회사 Nonvolatile memory module, computing system having the same, and operating method thereof
US10810144B2 (en) * 2016-06-08 2020-10-20 Samsung Electronics Co., Ltd. System and method for operating a DRR-compatible asynchronous memory module
JP6675290B2 (en) * 2016-09-09 2020-04-01 キオクシア株式会社 Storage system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085248A (en) * 1997-02-11 2000-07-04 Xaqtu Corporation Media access control transmitter and parallel network management system
US6336174B1 (en) * 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
US20170153826A1 (en) * 2015-12-01 2017-06-01 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880601B2 (en) 2021-05-20 2024-01-23 SK Hynix Inc. Data storage device for performing read operation and operating method thereof

Also Published As

Publication number Publication date
CN110389721A (en) 2019-10-29
KR102538253B1 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
KR102505913B1 (en) Memory module and memory system including memory module)
US5640530A (en) Use of configuration registers to control access to multiple caches and nonvolatile stores
US6505305B1 (en) Fail-over of multiple memory blocks in multiple memory modules in computer system
EP2348413B1 (en) Controlling memory redundancy in a system
US7917805B2 (en) Storage system for restoring data stored in failed storage device
US10990463B2 (en) Semiconductor memory module and memory system including the same
US20090327608A1 (en) Accelerated resume from hibernation in a cached disk system
US6604171B1 (en) Managing a cache memory
CN105940386B (en) Method, system, and medium for moving data between memories
US6591335B1 (en) Fault tolerant dual cache system
US20150331624A1 (en) Host-controlled flash translation layer snapshot
JP6882662B2 (en) Migration program, information processing device and migration method
US20120023302A1 (en) Concurrent Atomic Operations with Page Migration in PCIe
TW201502781A (en) Replaying memory transactions while resolving memory access faults
CN105786400A (en) Heterogeneous hybrid memory module, system and storage method
US10642727B1 (en) Managing migration events performed by a memory controller
CN100373373C (en) Method and system for dynamic node partitioning utilizing sleep state
US20230251931A1 (en) System and device for data recovery for ephemeral storage
JP6123388B2 (en) Fault tolerant server
CN110347611B (en) Memory system and operating method of memory system
JP2005267111A (en) Storage control system and method for controlling storage control system
JP6028415B2 (en) Data migration control device, method and system for virtual server environment
JP7318367B2 (en) Storage control device and storage control program
KR102538253B1 (en) Semiconductor memory module and memory system including semiconductor memory module
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant