KR102538253B1 - 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
KR102538253B1
KR102538253B1 KR1020180043848A KR20180043848A KR102538253B1 KR 102538253 B1 KR102538253 B1 KR 102538253B1 KR 1020180043848 A KR1020180043848 A KR 1020180043848A KR 20180043848 A KR20180043848 A KR 20180043848A KR 102538253 B1 KR102538253 B1 KR 102538253B1
Authority
KR
South Korea
Prior art keywords
memory
controller
data
read
type
Prior art date
Application number
KR1020180043848A
Other languages
Korean (ko)
Other versions
KR20190120536A (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

본 발명은 반도체 메모리 모듈에 관한 것이다. 본 발명의 실시 예에 따른 반도체 메모리 모듈은 랜덤 액세스 메모리, 불휘발성 메모리, 버퍼 메모리, 그리고 제어 신호의 활성화에 응답하여 버퍼 메모리에 대해 읽기 동작을 수행하도록 구성되는 제어기를 포함한다. 읽기 동작의 결과에 따라, 제어기는 랜덤 액세스 메모리에 저장된 제1 데이터를 불휘발성 메모리에 저장하는 플러시 동작을 수행하도록 더 구성된다.The present invention relates to a semiconductor memory module. 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 the buffer memory in response to 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 the first data stored in the random access memory to the non-volatile memory.

Figure R1020180043848
Figure R1020180043848

Description

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

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

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

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

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

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

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

본 발명의 실시 예에 따른 반도체 메모리 모듈은 랜덤 액세스 메모리, 불휘발성 메모리, 버퍼 메모리, 그리고 제어 신호의 활성화에 응답하여 버퍼 메모리에 대해 읽기 동작을 수행하도록 구성되는 제어기를 포함한다. 읽기 동작의 결과에 따라, 제어기는 랜덤 액세스 메모리에 저장된 제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 the buffer memory in response to 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 the first data stored in the random access memory to the non-volatile memory.

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

본 발명에 따르면, 반도체 메모리 모듈은 쓰기 테이블을 이용하여 랜덤 액세스 메모리의 데이터 중 일부를 불휘발성 메모리로 플러시한다. 또한, 반도체 메모리 모듈은 캐시 미스가 발생한 데이터를 버퍼 메모리에 저장할 수 있다. 따라서, 향상된 속도를 갖는 반도체 메모리 모듈이 제공된다. 또한, 본 발명에 따르면, 메모리 시스템은 액세스 에러가 발생할 때에 반도체 메모리 모듈에 플러시를 지시할 수 있다. 따라서, 향상된 속도를 갖는 메모리 시스템이 제공된다.According to the present invention, a semiconductor memory module flushes some data of a random access memory to a nonvolatile memory using a write table. Also, the semiconductor memory module may store data in which a cache miss occurs in a buffer memory. Thus, a semiconductor memory module with improved speed is provided. Also, 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 exemplary embodiment of the inventive concept.
2 is a flowchart illustrating a method of operating a memory system according to an exemplary embodiment of the present invention.
3 shows a first example of 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 exemplary embodiment of the inventive concept.
7 is a flowchart illustrating an operating method of a first memory module or a third memory module according to an embodiment of the present invention.
8 shows a first example of storing data in a first memory module.
9 shows a first example in which a flush operation is performed using a buffer memory in a first memory module.
10 shows a second example in which a flush operation is performed 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 embodiment of the inventive concept.
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 showing an operating method according to a second example of the present invention.
19 shows an example in which monarch cores are allocated.
20 shows a first example in which remaining cores are managed.
21 shows an example in which cores are managed 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 another exception processing occurs while the first core performs exception processing.
FIG. 24 shows an example in which the first core completes exception processing following the state of FIG. 11 .
25 shows a first example of an error signal generated by cores or processors.
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 embodiment of the inventive concept.
28 shows an example in which a processor accesses first and third memory modules.
29 shows an example in which a page fault occurs.
30 shows an example in which member processing is performed.
31 shows an example in which virtual storage spaces identified by virtual addresses of '01' to '16' are allocated to a first application.
FIG. 32 shows an example in which virtual addresses are allocated according to the first embodiment following FIG. 5 .
33 shows an example in which the page fault handler performs page fault processing on virtual addresses '01' to '16' according to the first embodiment.
34 shows 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 following FIG. 35 .
37 shows an example in which the page fault processor performs page fault processing on virtual addresses '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 member processing is transferred to the first memory module.
40 is a block diagram showing a first type memory module according to an embodiment of the present invention.
41 is a block diagram showing a memory system according to an embodiment of the inventive concept.
42 is a flowchart illustrating an operating method of 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 first and third memory modules.
44 shows an example in which the media controller configures a channel with the 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 a second type memory.
47 shows an example in which the media controller detects completion of training.
48 is a block diagram showing a first type memory module according to an embodiment of the present invention.
49 is a block diagram showing a computing device according to an embodiment of the present invention.
50 shows an example in which the first controller performs a read operation on the main memory.
51 shows a first example in which a read operation is performed according to the operation method of FIG. 50 .
52 shows a modified example of the read operation of FIG. 51 .
53 shows a second example in which a read operation is performed according to the operation method of FIG. 50 .
54 is a flowchart illustrating an operating method of a memory controller according to an embodiment of the present invention.
55 shows a first example in which a read operation is performed according to the operation method of FIG. 54 .
56 shows a second example in which a read operation is performed according to the operation method of FIG. 54 .
57 shows a modified example 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 a third time.
60 is a block diagram showing a computing device according to another example of the present invention.
61 shows an example of a main memory including an SPD device and a register updater.
62 is a flow chart showing how main memory updates registers.
63 is a block diagram showing a computing device according to another example of the present invention.
64 is a flowchart illustrating an example in which the first controller performs a write operation.
65 is a flowchart illustrating an example in which a main memory performs a write operation.
66 shows a first example in which a write operation is performed according to the operation method of FIG. 65 .
67 shows a second example in which a write operation is performed according to the operation method of FIG. 65 .
68 shows a second example in which a write operation is performed according to the operation method of FIG. 66 .
69 shows a modified example 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 to the extent that those skilled in the art can easily practice the present invention.

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

도 1을 참조하면, 메모리 시스템(100a)은 중앙 제어 블록(110), 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140), 제4 메모리 모듈(150), 루트 컴플렉스(160), 스토리지 장치(170), 전력 관리 블록(180), 그리고 주변 장치들(190)을 포함한다.Referring to FIG. 1 , a memory system 100a includes 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 . , a root complex 160 , a storage device 170 , a power management block 180 , and peripheral devices 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 components of the memory system 100a and 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 includes a first memory module 120a, a second memory module 130a, a third memory module 140, and a fourth memory module ( 150) can be accessed. The 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 coupled 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 peripheral devices 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 request an Asynchronous DRAM Refresh (ADR) request to perform a flush operation on the first memory module 120a and the second memory module 130a, respectively. ) signal.

제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 memory controllers ( 112) can be connected. The main channels MCH transmit data to 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). may be channels used to store or read data. The main channels MCH may include channels respectively provided for the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150.

보조 채널들(SCH)은 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)에 데이터를 저장하거나 읽는 것 외에, 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)과 연관된 추가적인 기능들을 제공할 수 있다.The auxiliary channels SCH store or read data in the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150, as well as the first memory module SCH. 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 transmit their own information through auxiliary channels SCH. to the memory controller 112. The auxiliary channels SCH may include channels respectively provided for the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150.

제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 a 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 include dual in-line memory modules (DIMMs), registered DIMMs (RDIMMs), and LRDIMMs ( Load Reduced DIMM) and the like.

루트 컴플렉스(160)는 프로세서(111)와 직접 통신하거나 또는 허브(114)를 통해 프로세서(111)와 통신할 수 있다. 루트 컴플렉스(160)는 중앙 제어 블록(110)이 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(160)에 스토리지 장치(170)가 연결될 수 있다. 스토리지 장치(170)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.The root complex 160 may communicate directly with the processor 111 or communicate with the processor 111 through a hub 114 . Root complex 160 may provide channels through which 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) 프로세서 등과 같은 다양한 장치들에 연결될 수 있다.As an example, peripheral devices connected to the root complex 160 are not limited to the storage device 170 . For example, the root complex 160 may be connected to various devices such as a modem, a graphic processing unit (GPU), a neuromorphic processor, and the like.

전력 관리 블록(180)은 메모리 시스템(100a)에 공급되는 전력을 관찰하고, 메모리 시스템(100a)의 구성 요소들에 공급되는 전력을 제어할 수 있다. 전력 관리 블록(180)은 메모리 시스템(100a)에서 급작스런 전원 오프(SPO), Sudden Power Off)가 발생할 때에, SPO를 알리는 신호를 허브(114)에 제공할 수 있다.The power management block 180 may monitor 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 informing of the SPO to the hub 114 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 includes a cache memory 113, a first memory module 120a as main memory, 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 transfers necessary data among data stored in the storage device 170 to the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module ( 150) can be loaded into the main memory. The processor 111 may flush data that needs to be backed up among 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 The processor 111 may determine whether a specific storage space is mapped to the cache memory 113 when it is necessary to access a specific storage space of the main memory.

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

캐시 메모리(113)의 저장 공간이 부족하면, 프로세서(111)는 기존에 캐시 메모리(113)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(111)는 갱신된 데이터를 제1 메모리 모듈(120a), 제2 메모리 모듈(130a), 제3 메모리 모듈(140) 및 제4 메모리 모듈(150)로 플러시할 수 있다.When 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 data in the storage space to be released is updated, the processor 111 transfers 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 with

제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 Detect (SPD) device 125. there is. 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 Detect (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 high-speed volatile memory, such as 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 a larger storage capacity than the first type memory 121 . For example, the second type memory 122 may include flash memory, phase change memory, ferroelectric memory, magnetic memory, resistive memory, and the like. .

매체 제어기(123)는 메인 채널들(MCH) 중 대응하는 채널을 통해 전달되는 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)로부터의 액세스 명령을 제1 타입 메모리(121) 또는 제2 타입 메모리(122)에 전달할 수 있다. 액세스 명령에 따라, 매체 제어기(123)는 메인 채널들(MCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)와 데이터를 교환할 수 있다.The medium controller 123 transmits 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, to the first type memory 121. Alternatively, it may be transferred to the second type memory 122 . According to the access command, the medium 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 medium controller 123 may provide the storage capacity or 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 medium controller 123 may map some of the storage spaces of the second type memory 122 to the first type memory 121 . If a 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 medium controller 123 sends the access command to the first type memory 121. It can be transferred to the type memory 121.

외부의 호스트 장치, 예를 들어 메모리 제어기(112) 또는 프로세서(111)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(121)에 사상되어 있지 않으면, 매체 제어기(123)는 해당 저장 공간을 제2 타입 메모리(122)로부터 제1 타입 메모리(121)로 사상(또는 백업)할 수 있다.If a 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 to the first type memory 121, the medium controller 123 stores the corresponding storage space. Mapping (or backup) from the second type memory 122 to the first type memory 121 is possible.

제1 타입 메모리(121)의 저장 공간이 부족하면, 매체 제어기(123)는 기존에 제1 타입 메모리(121)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(123)는 갱신된 데이터를 제2 타입 메모리(122)로 플러시할 수 있다.When the storage space of the first type memory 121 is insufficient, the medium controller 123 may release the storage space previously mapped to the first type memory 121 . When data in the storage space to be released is updated, the medium 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 one of the auxiliary channels SCH. For example, when the first memory module 120a is initialized, the SPD device 125 transfers stored information to an external host device, for example, the memory controller 112, through a corresponding channel among auxiliary channels SCH. Alternatively, it may be provided to 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 is a storage space of the first memory module 120a and may store information about storage capacity provided to an external host device, for example, the memory controller 112 or the processor 111. there is. For example, the SPD device 125 may store information about the 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, such as 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 the user capacity of the second type memory 122 . The storage capacity of the second type memory 122 may include user capacity, meta capacity, and reserve 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 may be a storage capacity in which various meta information for managing the second type memory 122 is stored and not disclosed to an external host device, for example, the memory controller 112 . The reserve 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 on the user capacity of the second type memory 122 . Hereinafter, unless otherwise specified, the capacity of the second type memory 122 may be understood as indicating 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 Detect (SPD) device 145 . The fourth memory module 150 may include a first type memory 151 and a Serial Presence Detect (SPD) device 155 . Hereinafter, the second type memory modules 140 and 150 are 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)에 제공할 수 있다.Like the first type memory 121 of the first memory module 120a, the first type memory 141 may include a dynamic random access memory. The SPD device 145 may communicate with an external host device, for example, the memory controller 112 or the processor 111 through a corresponding one of the auxiliary channels SCH. For example, when the third memory module 140 is initialized, the SPD device 145 transmits stored information to an external host device, for example, the memory controller 112 through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the third memory module 140 and may store information about storage capacity provided to an external host device, for example, the memory controller 112 or the processor 111. there is. For example, the SPD device 145 may store information about the storage capacity of the first type memory 141 . Upon initialization, the SPD device 145 may provide information about the storage capacity of the first type memory 141 to an external host device, such as 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 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 are auxiliary channels (SCH). ), capacity information may be provided to the memory controller 112, 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 storage capacities 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 storage capacities of the first type memories 141 and 151 to the memory controller 112 , respectively. For example, the memory controller 112 may read 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 an operating method of the memory system 100a according to an embodiment of the present invention. 1 and 2, in step S11, the processor 111 accesses one of the first type memory modules 120a and 130a, for example, the first memory module 120a. Errors can be detected.

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

도 3은 액세스 에러가 발생할 때에 플러시 동작을 지시하는 제1 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 도 3에서 중앙 제어 블록(110), 제1 메모리 모듈(120a) 및 제3 메모리 모듈(140)만이 도시된다. 제1 메모리 모듈(120a)은 제1 메인 채널(MCH1)을 통해 메모리 제어기(112)와 통신하고, 제3 메모리 모듈(140)은 제2 메인 채널(MCH2)을 통해 메모리 제어기(112)와 통신할 수 있다.3 shows a first example of instructing a flush operation when an access error occurs. To avoid unnecessarily complicating the drawing, in FIG. 3 only the central control block 110, the first memory module 120a and the third memory module 140 are shown. 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)를 포함할 수 있다.Illustratively, 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 application running on the processor 111 may generate an access request to the first memory module 120a using the virtual address. The memory controller 112 refers to a page table stored in one of the first memory module 120a, the second memory module 130a, the third memory module 140, and the fourth memory module 150, A virtual address can be translated into a physical address. The memory controller 112 may access the first memory module 120a using a physical address.

운영체제 또는 응용이 새로운 데이터를 저장할 것을 요청할 때, 또는 운영체제 또는 응용이 이미 해제된 저장 공간의 액세스를 요청할 때, 액세스 요청에 대응하는 페이지 테이블은 존재하지 않는다. 이때, 페이지 부재가 발생할 수 있다. 페이지 부재가 발생하면, 프로세서(111)는 예외 처리를 수행할 수 있다.When an operating system or application requests to store new data, or when an operating system or application requests access to a storage space that has already been released, a page table corresponding to the access request does not exist. At this time, a page fault may occur. When a page fault 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, a cache hit) or It may be determined whether the data is stored in the type 2 memory 122 (ie, 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 read-requested data from the second-type memory 122 to the first-type memory 121 . Due to the time taken to fetch data, the first memory module 120a cannot provide read-requested data to the memory controller 112 within the time limit set in the memory controller 112 . At this time, the memory controller 112 may determine that an uncorrectable error has occurred and perform exception processing.

캐시 히트인 경우, 제1 타입 메모리(121)는 메모리 제어기(112)로부터의 읽기 요청에 따라 데이터를 메모리 제어기(112)로 전송할 수 있다. 전송된 데이터가 정정 불가능한 에러를 가지면, 메모리 제어기(112)는 정정 불가능한 에러가 발생한 것으로 판단하고, 예외 처리를 수행할 수 있다.In 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 exception processing. While exception processing is being performed, the access of the processor 111 or the memory controller 112 to the first memory module 120a is prohibited.

즉, 예외 처리가 수행되는 동안, 프로세서(111) 또는 메모리 제어기(112)로부터 제1 메모리 모듈(120a)에 액세스 요청이 전달되지 않는 유휴 시간이 제1 메모리 모듈(120a)에 보장될 수 있다.That is, while exception processing is being performed, an idle time in which an 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 embodiment of the present invention may inform the first memory module 120a that exception processing is being 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 medium controller 123 can identify that the processor 111 is performing exception processing, and thus the idle time is guaranteed. As the idle time is guaranteed, the medium controller 123 may perform background operations necessary for the first memory module 120a to operate.

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

예를 들어, S24 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)에 저장된 데이터를 제2 타입 메모리(122)로 옮기는 플러시 동작(flush operation)을 수행할 수 있다. 예를 들어, 제1 타입 메모리(121)에 저장된 데이터의 전부 또는 일부가 플러시 동작을 통해 제2 타입 메모리(122)에 기입될 수 있다.For example, in step S24 , the medium controller 123 may perform a flush operation of moving the 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 moved 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 must be written into 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 data stored in the second type memory 122 needs to 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 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 the data stored in the first type memory 121 to the second type memory 122 is performed to preserve the data stored in the first type memory 121. can be performed

매체 제어기(123)가 프로세서(111) 또는 메모리 제어기(112)로부터 수신된 액세스 요청을 처리할 때에 플러시 동작이 수행되면, 플러시 동작으로 인해 제1 메모리 모듈(120a)의 액세스의 레이턴시가 증가한다. 본 발명의 실시 예에 따른 제1 메모리 모듈(120a)은 액세스 에러가 발생한 때에 플러시 동작을 수행한다. 따라서, 액세스 요청을 처리할 때에 플러시 동작을 수행하여야 하는 빈도가 감소하고, 제1 메모리 모듈(120a) 및 메모리 시스템(100a)의 액세스의 레이턴시가 감소한다.If a flush operation is performed when the medium controller 123 processes an access request received from the processor 111 or the memory controller 112, the latency of 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. Accordingly, the frequency of performing a flush operation when processing an access request is reduced, and the latency of accesses 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)에서 수행되는 배경 동작은 플러시 동작에 한정되지 않는다.Illustratively, in the same manner 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. Illustratively, the background operation performed in the first memory module 120a and the second memory module 130a is not limited to a 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. etc. may be included.

도 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. To avoid unnecessarily complicating the drawing, in FIG. 4 only the central control block 110, the first memory module 120a, the third memory module 140, and the power management block 180 are shown.

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

SPO가 검출됨에 따라, S32 단계에서, 전력 관리 블록(180)은 제1 제어 신호(CS1)를 활성화할 것을 허브(114)에 요청할 수 있다. 예를 들어, 전력 관리 블록(180)은 제1 타입 메모리 모듈들(120a, 130a)에 전달되는 제1 제어 신호(CS1) 및 제2 제어 신호(CS2) 모두를 활성화할 것을 허브(114)에 요청할 수 있다.As 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 instructs 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. 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 by the power management block 180, the hub 114 may activate the first control signal CS1 in step S33. In response to the activation of the first control signal CS1, in step S34, the first memory module 120a performs a flush operation of transferring the data stored in the first type memory 121 to the second type memory 122. can 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, when the second control signal CS2 is activated, the second memory module 130a may perform a flush operation of 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. To avoid unnecessarily complicating the drawing, only the central control block 110, the first memory module 120a and the third memory module 140 are shown in FIG. 5 . Illustratively, 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 step S41, the processor 111 may detect an access error when accessing the first memory module 120a. As the access error is detected, in step 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 medium controller 123 may perform a background operation such as a flush operation. That is, the memory controller 112 may directly transmit the occurrence of an access error 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)를 활성화할 수 있다.Illustratively, 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 an 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 showing a memory system 100b according to another embodiment of the present invention. 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. , a root complex 160 , a storage device 170 , a power management block 180 , and peripheral devices 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 are It may operate and be configured the same as the memory system 100a of FIG. 1 .

예를 들어, 중앙 제어 블록(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 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, eg, 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, eg, 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 using the buffer memory 126 . The second memory module 130b may perform a flush operation 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 an operating method of the first memory module 120b or the third memory module 140b according to an embodiment of the present invention. As an example, an operating method according to an embodiment of the present invention will be described with reference to the first memory module 120b. 6 and 7, in step S51, the medium controller 123 of the first memory module 120b receives a control signal CS, for example, a first control signal CS1 or a third control signal CS3. ) can be detected.

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

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

도 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. A 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 the first memory module 120b 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 on the first to eighth pages PAGE1 to PAGE8 of the first type memory 121 . For example, the write table WT may store information indicating 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, a write request may include write data and an address. The address may indicate a specific storage space among storage spaces of the second type memory 122 .

S62 단계에서, 매체 제어기(123)는 제1 타입 메모리(121)의 자유 저장 용량이 충분한지 판단할 수 있다. 예를 들어, 제1 타입 메모리(121)의 자유 저장 용량이 쓰기 데이터의 용량과 같거나 그보다 클 때, 매체 제어기(123)는 충분한 자유 저장 용량이 존재하는 것으로 판단할 수 있다.In step 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 greater than the write data capacity, the medium controller 123 may determine that sufficient free storage capacity exists.

제1 타입 메모리(121)의 자유 저장 용량이 충분함에 따라, S63 단계에서, 매체 제어기(123)는 중앙 제어 블록(110)으로부터의 쓰기 요청을 제1 타입 메모리(121)로 전달할 수 있다.As the free storage capacity of the first type memory 121 is sufficient, in step S63, the medium controller 123 may transfer the 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, write data may be written to the first page PAGE1 of the first type memory 121 in step S64 . As write data is written in the first page PAGE1, the medium controller 123 may update the write table WT in step S65. In step S66 , a dirty indication (or flag) indicating that new data has been written to the first page PAGE1 of the first type memory 121 may be written to 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 shows a first example in which a flush operation is performed 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)가 활성화되는 것을 검출할 수 있다.A nonvolatile page may be a unit in which the medium controller 123 accesses the second type memory 122 . For example, the capacity of a nonvolatile page may be the same as or different from that of a page. Referring to FIGS. 6, 8, and 9 , in step S71, the medium controller 123 may detect activation of the first control signal CS1 or the third control signal CS3.

제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 medium controller 123 may perform a flush operation. For example, in step S72, the medium controller 123 may read the write table WT stored in the buffer memory 126. According to the write table WT, in step S73 , the medium 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 medium controller 123 writes that new data is written to the first page PAGE1 of the first type memory 121 after a previous flush operation or after power is supplied to the memory system 100b. It can be detected from the dirty table of 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 must be stored in the second-type memory 122, and thus may be data requiring a flush operation. Data stored in the second to eighth pages PAGE2 to PAGE8 of the first type memory 121 are data or invalid data stored in the second type memory 122, and thus may be data that does not require a flush operation. .

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

S76 단계에서, 매체 제어기(123)는 제2 타입 메모리(122)에 쓰기 요청을 전송할 수 있다. 예를 들어, 매체 제어기(123)는 제1 타입 메모리(121)로부터 읽은 제1 페이지(PAGE1)의 데이터의 쓰기 요청을 제2 타입 메모리(122)로 전송할 수 있다.In step S76, the medium controller 123 may transmit a write request to the second type memory 122. For example, the medium controller 123 may transmit a write request for 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 step 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 the data newly written in the first type memory 121 to the second type memory 122, data movement may be terminated.

S78 단계에서, 매체 제어기(123)는 쓰기 테이블(WT)의 더티 표시들을 제거(clear)할 수 있다. 또한, 매체 제어기(123)는 제1 타입 메모리(121)와 제2 타입 메모리(122)의 사상 관계를 제거(clear)할 수 있다. 플러시 동작이 수행되면, 제1 타입 메모리(121)에 새로 기입된 데이터가 제2 타입 메모리(122)로 옮겨지고(flushed), 제1 타입 메모리(121)가 비워질 수 있다.In step S78, the medium controller 123 may clear dirty marks of the write table WT. Also, the medium 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 is flushed to the second type memory 122 and the first type memory 121 may be emptied.

본 발명의 실시 예에 따르면, 제1 타입 메모리(121)에 저장된 데이터 중에서 플러시 동작이 필요한 데이터, 즉 제1 타입 메모리(121)에 새로 기입된 데이터만이 플러시 동작을 통해 제2 타입 메모리(122)에 기입된다. 데이터의 이동이 감소하므로, 플러시 동작의 소요 시간이 감소하고, 제1 메모리 모듈(120b)의 레이턴시가 감소한다.According to an embodiment of the present invention, among data stored in the first-type memory 121, only data requiring a flush operation, that is, data newly written in the first-type memory 121 is flushed to allow the second-type memory 122 ) is entered in 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개의 불휘발성 페이지들을 갖는 것으로 한정되지 않는다.Illustratively, the flush operation described with reference to FIG. 9 may be performed even when the first type memory 121 is full. For example, the third storage capacity SC3 of the second type memory 122 is not limited to having four memory blocks. Each memory block is not limited to having 8 non-volatile pages.

도 10은 제1 메모리 모듈(120b)에서 버퍼 메모리를 이용하여 플러시 동작이 수행되는 제2 예를 보여준다. 도 10에서, 버퍼 메모리(126)의 제2 저장 공간(SC2)은 제1 내지 제8 페이지들(PAGE1~PAGE8)로 분할될 수 있다. 제2 저장 공간(SC2)의 페이지의 용량은 제1 저장 공간(SC1)의 페이지의 용량과 같거나 다를 수 있다.10 shows a second example in which a flush operation is performed using a 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 page capacity of the second storage space SC2 may be the same as or different from that 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 . Referring to FIGS. 6 and 8 , in step S81, the medium 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 activation of the first control signal CS1 or the third control signal CS3 , the medium controller 123 may transmit a read request to the buffer memory 126 in step S82 . For example, the medium controller 123 may transmit a read request for valid data to be written to the second type memory 122 from among data stored in the buffer memory 126 .

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

도 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 . Referring to FIGS. 6 , 10 and 11 , in step S91 , the medium controller 123 may transmit a read request to the first type memory 121 . According to the read request, data stored in the first type memory 121 may be read in step S92.

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

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

예시적으로, 버퍼 메모리(126)의 자유 저장 용량이 제1 타입 메모리(121)로부터 읽은 데이터보다 클 때, 제1 메모리 모듈(120b)은 제1 타입 메모리(121)의 데이터를 버퍼 메모리(126)에 기입하는 것으로 플러시 동작을 완료할 수 있다. 즉, 플러시 동작은 도 10을 참조하여 설명된 단계들을 생략하고, 도 11을 참조하여 설명된 단계들을 통해 완료될 수 있다.Illustratively, 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 transfers data from the first type memory 121 to the buffer memory 126. ) to complete the flush operation. That is, the flush operation may be completed through the steps described with reference to FIG. 11 , omitting the steps described with reference to FIG. 10 .

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

본 발명의 실시 예에 따르면, 플러시 동작 시에, 제1 타입 메모리(121)의 데이터는 버퍼 메모리(126)에 기입된다. 버퍼 메모리(126)에 기입된 데이터는 배경 동작을 통해 제2 타입 메모리(122)로 옮겨질 수 있다. 따라서, 플러시 동작의 레이턴시가 감소한다.According to an embodiment of the present invention, during a flush operation, data of the first type memory 121 is written into the buffer memory 126 . Data written in 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)는 플러시 동작을 수행할 수 있다.Illustratively, the media controller 123 can observe the free storage capacity of the first type memory 121 . When the free storage capacity of the first type memory 121 is less than a threshold value or less than a threshold ratio, the medium 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 medium controller 123 may refer to the write table WT. The medium controller 123 may read data related to the dirty indication 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)로 옮길 수 있다.When the free storage capacity of the buffer memory 126 is insufficient, the medium 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. can be done first. After the flush operation is completed, the medium controller 123 may transfer 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)를 활성화하여 플러시 동작을 유발할 수 있다.Illustratively, 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 is less than the threshold value or less than the threshold ratio, the central control block 110 activates the first control signal CS1 or the third control signal CS3 to flush the data. action can be triggered.

도 13은 본 발명의 실시 예에 따른 메모리 시스템(200)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(200)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(200)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.13 is a block diagram showing a memory system 200 according to an embodiment of the inventive concept. For example, the memory system 200 may include servers such as an application server, a client server, and a data server. As another example, the 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 components of the memory system 200 and 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 to fourth memory modules 220 to 250 through main channels MCH and 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 main channels MCH and auxiliary channels SCH. The main channels MCH may be channels used to store or read data in the memory modules 220 to 250 (eg, semiconductor memory modules). The main channels MCH may include channels respectively provided for the first to fourth memory modules 220 to 250 .

보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(220~250)에 데이터를 저장하거나 읽는 것 외에, 제1 내지 제4 메모리 모듈들(220~250)과 연관된 추가적인 기능들을 제공할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(220~250)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(211)에 제공할 수 있다. 보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(220~250)에 대해 각각 제공되는 채널들을 포함할 수 있다.In addition to storing or reading data in the first to fourth memory modules 220 to 250, the auxiliary channels SCH may provide additional functions related to the first to fourth memory modules 220 to 250. there is. For example, the first to fourth memory modules 220 to 250 may provide their own information to the memory controller 211 through auxiliary channels (SCH). The auxiliary channels SCH may include channels provided to 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 are memory controllers (dual in-line memory modules (DIMMs), registered DIMMs (RDIMMs), and load reduced DIMMs (LRDIMMs) according to one of memory module standards. 211) can be communicated with.

루트 컴플렉스(260)는 프로세서(210)가 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(260)에 스토리지 장치(270)가 연결될 수 있다. 스토리지 장치(270)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.Root complex 260 may 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) 프로세서 등과 같은 다양한 장치들에 연결될 수 있다.For example, peripheral devices connected to the root complex 260 are not limited to the storage device 270 . For example, the root complex 260 may be connected to various devices such as a modem, a graphic processing unit (GPU), a 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 serving as main memory, and the storage device 270 . For example, the processor 210 may load necessary data among data stored in the storage device 270 into a main memory including the first to fourth memory modules 220 to 250 . The processor 210 may flush data that needs to be backed up among data stored in the main memory to the storage device 270 .

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

캐시 메모리(212)의 저장 공간이 부족하면, 프로세서(210)는 기존에 캐시 메모리(212)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(210)는 갱신된 데이터를 제1 내지 제4 메모리 모듈들(220~250)로 플러시할 수 있다.When 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 . When data in 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 Detect (SPD) device 225. there is. 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 Detect (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 high-speed volatile memory, such as 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 a larger storage capacity than the first type memory 221 . For example, the second type memory 222 may include flash memory, phase change memory, ferroelectric memory, magnetic memory, resistive memory, and the like. .

매체 제어기(223)는 메인 채널들(MCH) 중 대응하는 채널을 통해 전달되는 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)로부터의 액세스 명령을 제1 타입 메모리(221) 또는 제2 타입 메모리(222)에 전달할 수 있다. 액세스 명령에 따라, 매체 제어기(223)는 메인 채널들(MCH) 중 대응하는 채널을 통해 외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)와 데이터를 교환할 수 있다.The medium controller 223 transmits an access command from an external host device, for example, the memory controller 211 or the processor 210 through a corresponding channel among the main channels MCH to the first type memory 221. Alternatively, it may be transferred to the second type memory 222 . According to the access command, the medium 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 medium controller 223 may provide the storage capacity or 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 medium controller 223 may map some of the storage spaces of the second type memory 222 to the first type memory 221 . If a 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 medium controller 223 sends the access command to the first type memory 221. It can be transferred to the type memory 221.

외부의 호스트 장치, 예를 들어 메모리 제어기(211) 또는 프로세서(210)로부터의 액세스 명령과 연관된 저장 공간이 제1 타입 메모리(221)에 사상되어 있지 않으면, 매체 제어기(223)는 해당 저장 공간을 제2 타입 메모리(222)로부터 제1 타입 메모리(221)로 사상(또는 백업)할 수 있다.If a 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 to the first type memory 221, the medium controller 223 stores the corresponding storage space. The second type memory 222 may be mapped (or backed up) to the first type memory 221 .

제1 타입 메모리(221)의 저장 공간이 부족하면, 매체 제어기(223)는 기존에 제1 타입 메모리(221)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(223)는 갱신된 데이터를 제2 타입 메모리(222)로 플러시할 수 있다.When the storage space of the first type memory 221 is insufficient, the medium controller 223 may release the storage space previously mapped to the first type memory 221 . When data in the storage space to be released is updated, the medium 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 one of the auxiliary channels SCH. For example, when the first memory module 220 is initialized, the SPD device 225 transfers stored information to an external host device, for example, the memory controller 211 through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the first memory module 220 and may store information about storage capacity provided to an external host device, for example, the memory controller 211 or the processor 210. there is. For example, the SPD device 225 may store information about the 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 the user capacity of the second type memory 222 . The storage capacity of the second type memory 222 may include user capacity, meta capacity, and reserve 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 may be a storage capacity in which various meta information for managing the second type memory 222 is stored and not disclosed to an external host device, for example, the memory controller 211 . The reserve 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 the user capacity of the second type memory 222 . Hereinafter, unless otherwise specified, the capacity of the second type memory 222 may be understood as indicating a 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 Detect (SPD) device 245 . The fourth memory module 250 may include a first type memory 251 and a Serial Presence Detect (SPD) device 255 . Hereinafter, the second type memory modules 240 and 250 are 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)에 제공할 수 있다.Like the first type memory 221 of the first memory module 220 , the first type memory 241 may include a dynamic random access memory. The SPD device 245 may communicate with an external host device, for example, the memory controller 211 or the processor 210 through a corresponding one of the auxiliary channels SCH. For example, when the third memory module 240 is initialized, the SPD device 245 transfers stored information to an external host device, for example, the memory controller 211 through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the third memory module 240 and may store information about storage capacity provided to an external host device, for example, the memory controller 211 or the processor 210. there is. For example, the SPD device 245 may store information about the storage capacity of the first type memory 241 . Upon initialization, the SPD device 245 may provide information about 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 storage capacities 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 storage capacities 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 prevent the drawing from being unnecessarily complicated, 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)에 도시된다.Referring to FIGS. 13 and 14 , the processor 210 may include first to nth cores CORE1 to COREn. That is, the processor 210 may be a multi-core processor. Objects 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 area (EA), the operating system (OS) may be executed in the processor 210 . In addition, based on the support of the operating system (OS), the processor 210 may execute the first to third applications APP1 to APP3.

운영체제(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 handler (MCEH) may process an error occurring 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.

메모리 제어기(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 requests from 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 access the third memory module 240 through the second main channel MCH2. there is.

도 15는 본 발명의 제1 예에 따른 메모리 시스템(200)의 동작 방법을 보여주는 순서도이다. 도 13 내지 도 15를 참조하면, S110 단계에서, 메모리 제어기(211)는 제1 내지 제4 메모리 모듈들(220~250) 중 하나의 메모리 모듈로부터 데이터를 읽을 수 있다. 예를 들어, 메모리 제어기(211)는 제1 내지 제3 응용들(APP1~APP3) 또는 운영체제(OS)의 요청에 따라 데이터를 읽을 수 있다.15 is a flowchart illustrating an operating method of the memory system 200 according to the 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 according to a request of the first to third applications APP1 to APP3 or the operating system OS.

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

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

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

S230 단계에서, 기계 검사 예외 처리기(MCEH)는 기계 검사를 수행할 수 있다. 예를 들어, 기계 검사는 메모리 제어기(211) 또는 제1 메모리 모듈(220)이 정상적으로 동작하는지 또는 오동작하는지 판단하는 것을 포함할 수 있다. 기계 검사는 검출된 에러가 치명적 에러(fatal error)인지 또는 재해적인 에러인지(catastrophic error) 판단하는 것을 포함할 수 있다.In step S230, the machine check exception handler (MCEH) may perform 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 a 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 catastrophic error may 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 non-critical data, a fatal error may be determined. Data unrelated to the control or operation of the memory system 200 may be unimportant 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 unimportant data. .

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

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

도 16은 제1 메모리 모듈(220)로부터 데이터를 읽는 예를 보여준다. 도 13 및 도 16을 참조하면, S111 단계에서, 예를 들어 제1 응용(APP1)이 제1 메모리 모듈(220)에 대한 읽기 요청을 메모리 제어기(211)로 전송할 수 있다. 읽기 요청은 운영체제(OS) 및 제1 내지 제n 코어들(CORE1~COREn)을 통해 메모리 제어기(211)로 전달될 수 있다.16 shows an example of reading data from the first memory module 220 . Referring to FIGS. 13 and 16 , in step 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 transferred to the memory controller 211 through the operating system OS and the first to nth cores CORE1 to COREn.

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

메모리 제어기(211)가 제1 메모리 모듈(220)을 액세스하는 절차는 제3 메모리 모듈(240)을 액세스하는 절차와 동일하다. 예를 들어, 메모리 제어기(211)가 제1 메모리 모듈(220)로 읽기 명령을 전송한 후에 데이터를 수신할 때까지의 시간 조건은 제1 타입 메모리(221 또는 241)의 액세스 속도에 맞추어져 있다.A procedure for accessing the first memory module 220 by the memory controller 211 is the same as that for accessing the third memory module 240 . For example, a time condition from when the memory controller 211 transmits a read command to the first memory module 220 until data is received is matched 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 . Accordingly, in step S114, a timeout in which data is not read from the second type memory 222 may occur until the time according to the time condition of the memory controller 211 elapses.

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

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

도 17은 제1 메모리 모듈(220)에 대해 예외 처리가 수행되는 예를 보여준다. 예시적으로, 도 17은 도 16의 S114 단계에 후속하는 동작들을 보여준다. 도 13 및 도 17을 참조하면, S115 단계에서, 메모리 제어기(211)는 제1 메모리 모듈(220)로부터 정정 불가능한 에러(UE)를 갖는 데이터를 수신한다.17 shows an example in which exception processing is performed for the first memory module 220 . Illustratively, FIG. 17 shows operations subsequent to step S114 of FIG. 16 . Referring to FIGS. 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, media controller 223 may send no data to memory controller 211 or may send dummy data to 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)로 전달될 수 있다.When an uncorrectable error is detected, in step S116, the memory controller 211 may output an interrupt signal IRQ. The interrupt signal IRQ may be delivered to at least one 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, context switching may occur from the first application APP1 to the operating system OS or the machine check exception handler MCEH in step S117. The operating system (OS) or machine check exception handler (MCEH) broadcasts an exception notifying that exception handling is required because an exception has occurred 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 broadcasting may be a call for calling the first to nth cores CORE1 to COREn to execute the machine check exception handler MCEH. According to the exception broadcast, the first to nth cores CORE1 to COREn may stop currently performing operations and access the machine check exception handler MCEH.

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

제1 내지 제n 코어들(CORE1~COREn) 중 하나의 코어는 기계 검사 예외 처리기(MCEH)를 실행하여 예외 처리를 수행할 수 있다. 예외 처리를 수행하는 코어는 군주 코어(monarchy core)일 수 있다. 제1 내지 제n 코어들(CORE1~COREn) 중 군주 코어를 제외한 나머지 코어들은 기계 검사 예외 처리기(MCEH)를 실행하지 않을 수 있다.One of the first to nth cores CORE1 to COREn may perform exception processing by executing the machine check exception handler MCEH. The core that performs exception handling may be a monarchy core. Among the first to nth cores CORE1 to COREn, the cores other than the monarch core may not execute the machine check exception handler 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 . The fact that the data read from the first memory module 220 is uncorrectable means that the corresponding data stored in the first-type memory 221 has an uncorrectable error or the corresponding data is not mapped to 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 can be cured by rewriting the corresponding data stored in the second type memory 222 into the first type memory 221. If the corresponding data is not mapped to the first type memory 221, the error can be cured by mapping the corresponding 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 can be read from the first memory module 220 . However, according to the method described with reference to FIG. 15, when access to the second type memory 222 occurs in the first memory module 220, the memory system 200 (see FIG. 1) responds to a kernel panic or system reboot. can enter

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

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

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

예외 처리가 완료되면, 기계 검사 예외 처리기(MCEH)로부터 제1 응용(APP1)으로 콘텍스트 스위칭이 수행된다. 도 16의 S111 단계에서 설명된 바와 같이, 제1 응용(APP1)은 제1 메모리 모듈(220)에 대해 읽기 요청을 다시 전송할 수 있다.When exception processing is completed, context switching is performed from the machine check exception handler MCEH to the first application APP1. As described in step 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 consumed in context switching from the first application APP1 to the machine check exception handler MCEH (step S117 of FIG. 17 ). A second time may be consumed in the machine inspection (step S123). A third time may be spent in context switching from the machine check exception handler (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 medium controller 223 transfers data corresponding to the read command (see step S112 of FIG. 16) from the second type memory 222 to the first type memory ( 221) can be mapped. Accordingly, 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 retransmits the read command from the first memory module 220. 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 when processing an exception for the first memory module 220, but causes a kernel panic or system reboot. do not enter Accordingly, even when 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 the correct data is retrieved from the first memory module 220. data can be obtained.

예시적으로, 제1 타입 메모리 모듈들(220, 230)에 대해 도 18을 참조하여 설명된 제2 예에 따른 예외 처리가 적용될 수 있다. 또한, 제2 타입 메모리 모듈들(240, 250)에 대해 도 15를 참조하여 설명된 제1 예에 따른 예외 처리가 적용될 수 있다.Illustratively, 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 . In addition, 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 in which monarch cores are allocated. Illustratively, an example in which the monarch core is allocated among the first to fourth cores CORE1 to CORE4 is illustrated in FIG. 19 . Referring to FIGS. 17 and 19 , the first to fourth cores CORE1 to CORE4 may stop currently performing operations according to exception broadcasting (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 operations may be different depending on the types of operations being performed by the first to fourth cores CORE1 to CORE4 . For example, the stopping points of the threads being executed by the first to fourth cores CORE1 to CORE4 may be different from each other.

예시적으로, 제1 내지 제4 코어들(CORE1~CORE4) 중 제1 코어(CORE1)가 가장 먼저 수행중인 동작을 중지하고, 호출에 응답할 수 있다. 가장 먼저 호출에 응답하는 제1 코어(CORE1)는 기계 검사 예외 처리기(MCEH)에 가장 먼저 도달한 것으로 여겨질 수 있다.For example, a first core CORE1 among the first to fourth cores CORE1 to CORE4 may stop an operation being performed first and respond to a call. The first core (CORE1) that responds to the call first can 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 reaching the machine check exception handler MCEH first may be designated (or assigned) as a monarchy core. The first core CORE1 may execute the exception processing described with reference to FIG. 15 or FIG. 18 by executing the machine check exception handler MCEH.

도 20은 나머지 코어들이 관리되는 제1 예를 보여준다. 도 20을 참조하면, 제2 내지 제4 코어들(CORE2~CORE4)은 제1 코어(CORE1)보다 늦게 기계 검사 예외 처리기(MCEH)에 도달할 수 있다. 예시적으로, 제2 내지 제4 코어들(CORE2~CORE4)은 제1 코어(CORE1)가 예외 처리를 완료할 때까지 대기할 수 있다.20 shows a first example in which remaining cores are managed. Referring to FIG. 20 , the second to fourth cores CORE2 to CORE4 may reach the machine check exception handler MCEH later than the first core CORE1 . For example, the second to fourth cores CORE2 to CORE4 may wait until the first core CORE1 completes 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 standby cores. When the first core CORE1 completes exception handling, the first to fourth cores CORE1 to CORE4 may return to previously performed operations. For example, when exception processing is completed without a kernel panic or system reboot, the first to fourth cores CORE1 to CORE4 may return to previously performed operations.

도 18을 참조하여 설명된 예외 처리와 같이, 예외 처리가 커널 패닉 또는 시스템 리부트 없이 완료되면, 제2 내지 제4 코어들(CORE2~CORE4)이 대기하는 것은 자원들의 낭비를 초래한다. 이를 방지하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(200)은 대기하는 코어들을 제거하는 새로운 알고리즘을 제공한다.Like the exception processing described with reference to FIG. 18 , if the exception processing is completed without a kernel panic or system reboot, waiting of 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 standby cores.

도 21은 본 발명의 실시 예에 따라 예외 처리를 위해 코어들이 관리되는 예를 보여준다. 도 17 및 도 21을 참조하면, S131 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 예외 방송(S118 단계)을 통해 코어들(CORE1~COREn)을 호출할 수 있다.21 shows an example in which cores are managed 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 handler (MCEH) may call the cores CORE1 to COREn through exception broadcasting (step S118).

S232 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 코어의 도착을 검출할 수 있다. 예를 들어, 특정한 코어가 수행중인 동작을 중지하고 호출에 응답할 때, 특정한 코어가 도착한 것으로 여겨질 수 있다. S430 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 도착한 코어가 첫 번째 코어인지 판단할 수 있다.In step S232, the operating system (OS) or the machine check exception handler (MCEH) may detect the arrival of the core. For example, a particular core may be considered to have arrived when it stops performing operations and responds to a call. In step S430, the operating system (OS) or machine check exception handler (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 step S440, the operating system (OS) or machine check exception handler (MCEH) may assign (or designate) the arrived core to machine check exception processing. For example, an arriving core can perform exception handling by executing codes in a machine-checked exception handler (MCEH). For example, the arriving core may perform exception processing according to the method described with reference to FIG. 15 or FIG. 18 .

S430 단계에서, 도착한 코어가 첫 번째 코어가 아니면, S450 단계가 수행된다. S450 단계에서, 운영체제(OS) 또는 기계 검사 예외 처리기(MCEH)는 도착한 코어를 중지된 동작으로 복귀시킬 수 있다. 도착한 코어는 중지된 동작으로 복귀하여 중지된 동작을 재개할 수 있다.In step S430, if the arrived core is not the first core, step S450 is performed. In step S450, the operating system (OS) or the machine check exception handler (MCEH) may return the arrived core to the suspended operation. The arriving core can 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. Illustratively, an example in which the remaining cores are managed after the first core CORE1 is designated as the monarch core in FIG. 19 is illustrated in FIG. 22 . Referring to FIGS. 13 and 22 , the second to fourth cores CORE2 to CORE4 may reach the machine check exception handler MCEH later than the first core CORE1 .

예시적으로, 제2 코어(CORE2)가 제1 코어(CORE1) 다음인 두 번째로 기계 검사 예외 처리기(MCEH)에 도달할 수 있다. 제1 코어(CORE1)가 이미 군주 코어로 지정되었음을 인식함에 따라, 제2 코어(CORE2)는 중지된 동작으로 복귀하고, 그리고 중지된 동작을 재개할 수 있다(도 21의 S450 단계 참조). 예를 들어, 제2 코어(CORE2)는 중지된 동작의 중지 포인트로부터, 중지된 동작의 코드들을 실행할 수 있다.For example, the second core CORE2 may reach the machine check exception handler MCEH second after the first core CORE1. As the first core CORE1 recognizes that it has already been designated as the monarch core, the second core CORE2 returns to the suspended operation and resumes the suspended 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 . As the first core CORE1 recognizes that it has already been designated as the monarch core, the third and fourth cores CORE3 and CORE4 respectively return to the suspended operations, 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 , a kernel panic or system reboot does not occur when an exception is processed for the first memory module 220 . When the exception processing for the first memory module 220 is completed, the monarch core returns to the suspended operation. Since a kernel panic or system reboot does not occur when the exception is handled in the first memory module 220, the second to fourth cores CORE2 to CORE4 do not have to wait for exception processing to be completed.

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

예시적으로, 제1 타입 메모리 모듈들(220, 230)은 데이터를 제2 타입 메모리들(222, 232)에 저장(또는 백업)하며, 매체 제어기들(223, 233)은 제2 타입 메모리들(222, 232)에 대한 별도의 에러 정정 수단들을 구비한다. 따라서, 제1 타입 메모리 모듈들(220, 230)은 에러 없는 데이터를 보장할 수 있다. Illustratively, 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 store data in the second type memories 222 and 232. Separate error correction means for (222, 232) are provided. 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 a kernel panic or system reboot does not occur during exception processing may be applied to the first type memory modules 220 and 230 . Also, as described with reference to FIG. 22 , a method in which the second to fourth cores CORE2 to CORE4 return to suspended operations while the first core CORE1 performs exception handling is a first type method. 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 include only the first type memories 241 and 251 and may not have their own error correction means for the first type memories 241 and 251. there is. Accordingly, uncorrectable errors 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 in which a kernel panic or system reboot occurs when an exception is handled may be applied to the second type memory modules 240 and 250 . In addition, as described with reference to FIG. 20, a method in which the second to fourth cores CORE2 to CORE4 wait in preparation for a kernel panic or system reboot while the first core CORE1 performs exception handling. This may be applied to the first type memory modules 220 and 230 .

도 23은 제1 코어(CORE1)가 예외 처리를 수행하는 동안 다른 예외 처리가 발생하는 예를 보여준다. 도 13 및 도 23을 참조하면, 제1 메모리 모듈(220)에서 발생한 정정 불가능한 제1 에러(UE1)에 대해 제1 코어(CORE1)가 예외 처리를 수행하는 동안, 제2 내지 제4 메모리 모듈들(230~250) 중 하나의 메모리 모듈에서 정정 불가능한 제2 에러(UE2)가 발생할 수 있다.23 shows an example in which another exception processing occurs while the first core CORE1 performs exception processing. 13 and 23 , while the first core CORE1 performs exception processing for the first uncorrectable error UE1 generated in the first memory module 220, the second to fourth memory modules 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 , exception broadcasting ( S118 ) is performed for the uncorrectable second error UE2 , and thus the cores CORE1 to CORE4 may be called. The first core CORE1 performing exception handling 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 reach the machine check exception handler MCEH first by responding to the call first. Accordingly, the fourth core CORE4 may be designated (or assigned) as the monarch core for the second uncorrectable error UE2. The fourth core CORE4 may perform exception processing on the second uncorrectable error UE2.

도 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 exception processing following the state of FIG. 23 . Referring to FIGS. 13 and 24 , while the fourth core CORE4 performs exception processing on the second uncorrectable error UE2, the first core CORE1 may complete exception processing. When the exception handling is completed, the first core CORE1 may return to the suspended operation (or the previously performed operation) regardless of whether the fourth core CORE4 performs exception handling.

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

도 25는 코어들(CORE1~COREn) 또는 프로세서(210)가 생성하는 에러 신호(CAT_ERR_N)의 제1 예를 보여준다. 도 13 및 도 25를 참조하면, 에러 신호(CAT_ERR_N)는 제1 선(C1) 또는 제2 선(C2)의 형태로 제어될 수 있다.25 shows a first example of an error signal CAT_ERR_N generated by the cores CORE1 to COREn or the processor 210 . Referring to FIGS. 13 and 25 , the error signal CAT_ERR_N may be controlled in the form of a first line C1 or a 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 a high level to a low level. If the uncorrectable error is a fatal error rather than a catastrophic error, the error signal CAT_ERR_N may transition from a low level to a high level like the first line C1.

정정 불가능한 에러가 재해적 에러이면, 제2 선(C2)과 같이 에러 신호(CAT_ERR_N)는 시스템 리부트가 수행될 때까지 로우 레벨로 유지될 수 있다. 정정 불가능한 에러가 제1 타입 메모리 모듈들(220, 230)에서 발생한 것이면, 도 18을 참조하여 설명된 바와 같이 커널 패닉 또는 시스템 리부트가 발생하지 않는다.If the uncorrectable error is a catastrophic error, the error signal CAT_ERR_N, like the second line C2, may be maintained at a low level until system reboot is performed. If an uncorrectable error occurs in the first type memory modules 220 and 230, a kernel panic or system reboot does not occur 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. Accordingly, 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)의 형태로 제어될 수 있다.26 shows a second example of an error signal CAT_ERR_N generated by the cores CORE1 to COREn or the processor 210 . Referring to FIGS. 13 and 26 , the error signal CAT_ERR_N may be controlled in the form of a third line C3 or a 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 may maintain a high level as shown in the third line C3. there is.

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

도 27은 본 발명의 실시 예에 따른 메모리 시스템(300)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(300)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(300)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.27 is a block diagram showing a memory system 300 according to an embodiment of the inventive concept. For example, the memory system 300 may include servers such as application servers, client servers, and data servers. As another example, the 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 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 to fourth memory modules 320 to 350 through main channels MCH and 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 pieces of 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 information stored in the register R.

제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 main channels MCH and auxiliary channels SCH. The main channels MCH may be channels used to store or read data in the memory modules 320 to 350 (eg, semiconductor memory modules). The main channels MCH may include channels respectively provided for the first to fourth memory modules 320 to 350 .

보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(320~350)에 데이터를 저장하거나 읽는 것 외에, 제1 내지 제4 메모리 모듈들(320~350)과 연관된 추가적인 기능들을 제공할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(320~350)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(311)에 제공할 수 있다. 보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(320~350)에 대해 각각 제공되는 채널들을 포함할 수 있다.In addition to storing or reading data in the first to fourth memory modules 320 to 350, the auxiliary channels SCH may provide additional functions related to the first to fourth memory modules 320 to 350. there is. For example, the first to fourth memory modules 320 to 350 may provide their own information to the memory controller 311 through auxiliary channels (SCH). The auxiliary channels SCH may include channels provided to 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 main memory of the memory system 300 . The first to fourth memory modules 320 to 350 are memory controllers (dual in-line memory modules (DIMMs), registered DIMMs (RDIMMs), and load reduced DIMMs (LRDIMMs) according to one of memory module standards. 311) can communicate with.

루트 컴플렉스(360)는 프로세서(310)가 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(360)에 스토리지 장치(370)가 연결될 수 있다. 스토리지 장치(370)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.Root complex 360 may provide channels through which 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) 프로세서 등과 같은 다양한 장치들에 연결될 수 있다.As an example, peripheral devices connected to the root complex 360 are not limited to the storage device 370 . For example, the root complex 360 may be connected to various devices such as a modem, a graphics processing unit (GPU), a 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 that needs to be backed up among data stored in the main memory to the storage device 370 .

제1 내지 제4 메모리 모듈들(320~350)을 포함하는 메인 메모리의 저장 영역 중 일부는 캐시 메모리(312)에 사상될 수 있다. 프로세서(310)는 메인 메모리의 특정한 저장 공간을 액세스할 필요가 있을 때, 특정한 저장 공간이 캐시 메모리(312)에 사상되어 있는지 판단할 수 있다.A part of the storage area of the main memory including the first to fourth memory modules 320 to 350 may be mapped to the cache memory 312 . When it is necessary 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 specific storage space is mapped to the cache memory 312 , the processor 310 can access the specific storage space of the cache memory 312 . If the specific 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

캐시 메모리(312)의 저장 공간이 부족하면, 프로세서(310)는 기존에 캐시 메모리(312)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(310)는 갱신된 데이터를 제1 내지 제4 메모리 모듈들(320~350)로 플러시할 수 있다.When 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 in 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 Detect (SPD) device 325. there is. 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 Detect (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, such as 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 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 medium controller 323 transmits an access command from an external host device, for example, the memory controller 311 or the processor 310 transmitted through a corresponding channel among the main channels MCH, to the first type memory 321. Alternatively, it may be transferred to the second type memory 322 . According to the access command, the medium 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 medium controller 323 may provide the storage capacity or storage space of the second type memory 322 to an external host device, such as 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 medium controller 323 may map some of the storage spaces of the second type memory 322 to the first type memory 321 . If a storage space associated with an access command from an external host device, for example, the memory controller 311 or processor 310 is mapped to the first type memory 321, the medium controller 323 sends the access command to the first type memory 321. It can be transferred to the type memory 321.

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

제1 타입 메모리(321)의 저장 공간이 부족하면, 매체 제어기(323)는 기존에 제1 타입 메모리(321)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(323)는 갱신된 데이터를 제2 타입 메모리(322)로 플러시할 수 있다.When the storage space of the first type memory 321 is insufficient, the medium controller 323 may release the storage space previously mapped to the first type memory 321 . When data in the storage space to be released is updated, the medium 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, such as the memory controller 311 or the processor 310, through a corresponding one of the auxiliary channels SCH. For example, when the first memory module 320 is initialized, the SPD device 325 transfers stored information to an external host device, for example, the memory controller 311 through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the first memory module 320 and may store information about storage capacity provided to an external host device, for example, the memory controller 311 or the processor 310. there is. For example, the SPD device 325 may store information about the 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, such as 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 the user capacity of the second type memory 322 . The storage capacity of the second type memory 322 may include user capacity, meta capacity, and reserve 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 may be a storage capacity in which various meta information for managing the second type memory 322 is stored and not disclosed to an external host device, for example, the memory controller 311 . The reserve capacity is reserved for managing the second type memory 322 and may be 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 on the user capacity of the second type memory 322 . Hereinafter, unless otherwise specified, the capacity of the second type memory 322 may be understood as indicating 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 Detect (SPD) device 345 . The fourth memory module 350 may include a first type memory 351 and a Serial Presence Detect (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)에 제공할 수 있다.Like the first type memory 321 of the first memory module 320 , the first type memory 341 may include a dynamic random access memory. 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 stored information to an external host device, for example, the memory controller 311 through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the third memory module 340 and may store information about storage capacity provided to an external host device, for example, the memory controller 311 or the processor 310. there is. For example, the SPD device 345 may store information about the 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, such as 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.

제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 storage capacities 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 storage capacities 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 as being connected to the root complex 360 . However, devices connected to the root complex 360 are not limited to the storage device 370 .

도 28은 프로세서(310)가 제1 및 제3 메모리 모듈들(320, 340)을 액세스하는 예를 보여준다. 도면이 불필요하게 복잡해지는 것을 방지하기 위하여, 프로세서(310), 제1 메모리 모듈(320), 그리고 제3 메모리 모듈(340) 외의 다른 구성 요소들은 생략된다.28 shows an example in which the processor 310 accesses the first and third memory modules 320 and 340 . In order to prevent the drawing from being unnecessarily complicated, elements 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 showing objects executed in the processor 310 is shown. Referring to the execution area (EA), the operating system (OS) may be executed in the processor 310 . In addition, based on the support of the operating system (OS), the processor 310 may execute the first to third applications APP1 to APP3.

운영체제(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 Handler (PFH). The page fault handler PFH may process 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 fault handler (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 the storage space of the second type memory 322 to the processor 310 . A storage space corresponding to the user capacity of the first memory module 320 is shown as a 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 the storage space of the second type memory 322 and may be logically 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 , a storage space corresponding to the meta capacity of the first memory module 320 is shown as a first meta storage area SA1_M. The medium controller 323 may store various pieces of information required to access 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 storage space of the first type memory 341 to the processor 310 . The storage space of the third memory module 340 is shown 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 to fourth memory modules 320 to 350 through the auxiliary channels SCH. The processor 310, eg, an operating system (OS), may allocate 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), uses the virtual addresses VA to allocate storage spaces of the first to fourth memory modules 320 to 350 to the first to third applications APP1 to APP3. ) can be assigned to

메모리 제어기(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 virtual addresses VA from the processor 310 . The memory controller 311 may convert the virtual addresses VA into real addresses of the first to fourth memory modules 320 to 350 . The memory controller 311 may access the first to fourth memory modules 320 to 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 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 converts mapping information of the virtual addresses VA allocated by the processor 310 and the real addresses of the first to fourth memory modules 320 to 350 into a page table PT into the third memory. module 340. The page table PT may include first to fourth tables T1 to T4 respectively corresponding to the first to fourth memory modules 320 to 350 .

예시적으로, 메모리 제어기(311)는 페이지 테이블(PT)을 제2 타입 메모리 모듈들(340, 350) 중 하나에 저장할 수 있다. 다른 예로서, 메모리 제어기(311)는 페이지 테이블(PT)을 제1 내지 제4 메모리 모듈들(320~350) 중 하나에 저장할 수 있다. 예를 들어, 메모리 제어기(311)는 제1 내지 제4 메모리 모듈들(320~350)의 제1 내지 제4 테이블들(T1~T4)을 하나의 메모리 모듈에 저장할 수 있다.For example, 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 . Addresses used when the memory controller 311 accesses the second type memory modules 340 and 350 may be physical addresses PA of the first type memories 341 and 351 . Accordingly, the third and fourth tables T3 and T4 for the second type memory modules 340 and 350 are virtual addresses VA and physical addresses of the second type memory modules 340 and 350. (PA) mapping information may be included.

제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 . Addresses used when the memory controller 311 accesses the first type memory modules 320 and 330 are not physical addresses PA of the second type memories 322 and 332, but logical addresses LA. ) can be called.

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

메모리 제어기(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, first and second tables T1 for the first type memory modules 320 and 330 are provided. , T2) may include mapping information between virtual addresses VA and 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, the 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 step S211 , the first application APP1 may instruct memory access to the first memory module 320 . An instruction from the first application APP1 may be transmitted to the memory controller 311 through the operating system OS. In step S212, the memory controller 311 may search the page table PT by referring to the register R.

메모리 액세스가 요청된 제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 for which memory access is requested 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 the memory for allocation of the memory.

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

도 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 step S215 , the page fault handler PFH of the operating system OS may perform absence processing. For example, the page fault handler 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 store some of the data stored in the first storage area SA1 of the first memory module 320. Free capacity of the first storage area SA1 may be secured by swapping with the storage device 370 and releasing the storage space of the swapped data.

사상된 논리 주소(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 step S216, the memory controller 311 may update the page table by writing mapping information of the first application storage area SA_APP1 in the first table T1 of the page table PT. In step S217, context switching may be performed from the page fault handler PFH to the first application APP1 after the element processing is completed.

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

도 31은 제1 응용(APP1)에 '01' 내지 '16'의 가상 주소들로 식별되는 가상 저장 영역(VSA)이 할당되는 예를 보여준다. 도 27 및 도 31을 참조하면, S221 단계에서, 제1 응용(APP1)은 가상 저장 영역(VSA)의 '01'의 가상 주소(VA)에 대한 액세스를 지시할 수 있다. 예를 들어, '01'의 가상 주소(VA)는 제1 메모리 모듈(320)에 대응할 수 있다.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 step S221, the first application APP1 may instruct access to the virtual address VA of '01' of the virtual storage area VSA. For example, a virtual address VA of '01' may correspond to the first memory module 320 .

'01'의 가상 주소(VA)의 사상 정보가 제1 테이블(T1, 도 29 참조)에 존재하지 않으므로, S222 단계에서 페이지 부재가 발생할 수 있다. 이후에 문맥 교환이 수행되고 페이지 부재 처리기(PFH)가 활성화될 수 있다. S223 단계에서, 페이지 부재 처리기(PFH)는 부재 처리를 수행할 수 있다.Since mapping information of the virtual address VA of '01' does not exist in the first table (T1, see FIG. 29), a page fault may occur in step S222. A context switch is then performed and the Page Fault Handler (PFH) can be activated. In step S223, the page fault handler PFH may perform element 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 fault handler PFH may map the logical address LA of '21' of the first application storage area SA_APP1 to the virtual address VA of '01'. A logical address LA of '21' may correspond to the first memory module 320 . In step S224, the page fault handler PFH updates the first table T1 to include mapping information of the virtual address VA of '01' and the logical address LA of '21'. can

도 32는 도 31에 후속하여 제1 실시 예에 따라 가상 주소들(VA)이 할당되는 예를 보여준다. 도 32를 참조하면, S231 단계에서, 제1 응용(APP1)은 가상 저장 영역(VSA)의 '02'의 가상 주소(VA)를 갖는 다음 페이지를 액세스할 수 있다. S232 단계에서 페이지 부재가 발생하고, S233 단계에서 부재 처리가 수행될 수 있다.FIG. 32 shows an example in which virtual addresses VA are allocated according to the first embodiment following FIG. 31 . Referring to FIG. 32 , in step S231 , the first application APP1 may access the next page having the virtual address VA of '02' of the virtual storage area VSA. A page fault may occur in step S232, and the absence process 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 fault handler PFH may allocate the logical address LA of '22' of the first application storage area SA_APP1 to the virtual address VA of '02'. In step S234, the page fault handler PFH updates the first table T1 to include mapping information of the virtual address VA of '02' and the logical address LA of '22'. can As described with reference to FIGS. 31 and 32 , the first application APP1 may sequentially request access to the 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 shows an example in which the page fault handler PFH performs page fault processing for virtual addresses VA of '01' to '16' according to the first embodiment. Referring to FIG. 33, through steps S241, S242, and S243, the page fault handler PFH stores the first application at virtual addresses VA of '01' to '16' of the virtual storage area VSA. Logical addresses LA of '21' to '36' of the area SA_APP1 may be mapped. The page fault handler PFH may perform page fault 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 a page may be 4 KB. The memory capacity used by the first application APP1 may be several MB to several GB. As large-capacity 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 further increase.

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

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

예를 들어, 페이지 부재 처리기(PFH)는 페이지 부재가 발생한 액세스의 특성에 따라 페이지들의 수를 조절할 수 있다. 페이지 부재 처리기(PFH)는 특정한 액세스와 연관된 부재 처리 시에 둘 이상의 가상 주소들(VA)과 둘 이상의 논리 주소들(LA)을 사상할 수 있다. For example, the page fault handler (PFH) can adjust the number of pages depending on the nature of the access for which the page fault occurred. The Page Fault Handler (PFH) may map two or more virtual addresses (VA) and two or more logical addresses (LA) when processing a fault 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 the number of logical addresses (LA) mapped during fault processing. The number can be incrementally increased.

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

페이지 부재 처리기(PFH)는 둘 이상의 논리 주소들을 둘 이상의 가상 주소들과 사상할 수 있다. 예를 들어, 페이지 부재 처리기(PFH)는 제1 응용 저장 영역(SA_APP1)의 '22'의 논리 주소(LA)를 '02'의 가상 주소(VA)에 할당하고, '23'의 논리 주소(LA)를 '03'의 가상 주소(VA)와 사상할 수 있다.A page fault handler (PFH) can map two or more logical addresses to two or more virtual addresses. For example, the page fault handler PFH allocates the logical address LA of '22' of the first application storage area SA_APP1 to the virtual address VA of '02' and the logical address of '23' ( LA) can 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 fault handler (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 following FIG. 35 . Referring to FIG. 36, in step S271, the first application APP1 stores a page having a virtual address VA of '02' and a page having a virtual address VA of '03' in the virtual storage area VSA. 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', page fault 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 to the logical address LA, page fault may occur when the first application APP1 accesses the virtual address VA of '04' in step S272. there is. Member processing may be performed in step S273.

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

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 fault handler (PFH) maps the virtual address (VA) of '05' and the virtual address (VA) of '25' to include mapping information of the virtual address (VA) of '04 and the logical address (LA) of '24'. To include the mapping information of the logical address (LA), to include the mapping information of the virtual address (VA) of '06' and the logical address (LA) of '26', and the virtual address (VA) of '07' and ' 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 number of virtual addresses VA mapped during absence processing. .

도 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) 각각에 대해 페이지 부재 처리를 수행할 수 있다.37 shows an example in which the page fault handler PFH performs page fault processing for virtual addresses VA of '01' to '16' according to the second embodiment. Referring to FIG. 37, through steps S281, S282, and S283, the page fault handler PFH stores the first application at virtual addresses VA of '16' in '01' of the virtual storage area VSA. Logical addresses LA of '21' to '36' of the area SA_APP1 may be mapped. The page fault handler (PFH) may perform page fault processing for each of the virtual addresses (VA) of '01', '02', '04', '08', and '16'.

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

도 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. 28 and 38, in step S291, the page fault handler (PFH) performs successive accesses (eg, successive virtual addresses (VA) from an application (eg, APP1) for which the page fault is the same. ) It can be determined whether it corresponds to accesses to).

예를 들어, 페이지 부재를 유발한 액세스의 가상 주소가 이전 액세스의 이전 가상 주소와 연속인지 판단할 수 있다. 페이지 부재가 연속적인 액세스들에 대응하지 않으면, 즉 가상 주소가 이전 액세스의 가상 주소와 연속이 아니면, 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 fault does not correspond to successive accesses, that is, if the virtual address is not contiguous with the virtual address of the previous access, step S292 is performed. In step S292, the page fault handler (PFH) may adjust the number of pages to a default value, for example, '1'. The adjustment is then terminated.

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

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

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

예시적으로, 페이지 부재 처리기(PFH)는 연속적인 액세스들과 연관된 부채 처리들을 둘 이상의 페이즈들(phases)로 분할하여 수행할 수 있다. 제1 페이즈에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 할당 페이지들의 수의 K배(K는 양의 정수)로 조절할 수 있다. 제2 페이즈에서, 페이지 부재 처리기(PFH)는 페이지들의 수를 이전 할당 페이지들의 수에 I를(I는 양의 정수) 더한 값으로 조절할 수 있다.Illustratively, the page fault handler (PFH) may perform debt processing associated with successive accesses by dividing them into two or more phases. In the first phase, the page fault handler (PFH) may adjust the number of pages to K times the number of previously allocated pages, where K is a positive integer. In the second phase, the page fault handler (PFH) may adjust the number of pages to the number of previously allocated pages plus I (where 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 handler PFH assumes that member processing is performed for the first memory module 320 according to the second embodiment described with reference to FIGS. 31, 35, 36, and 37 explained However, 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 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. 31, 35, 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 실시 예에 따른 부재 처리를 수행할 수 있다.Illustratively, the page fault handler PFH may differently set a fault handling method according to the types of memory modules. For example, when a page fault occurs in the first type memory modules 320 and 330, the page fault handler PFH operates in the second embodiment described with reference to FIGS. 31, 35, 36, and 37. Depending on 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 fault occurs in the second type memory modules 340 and 350, the page fault handler PFH may perform fault processing according to the first embodiment described with reference to FIGS. 31, 32, and 33. there is. For example, types of the first to fourth memory modules 320 to 350 may be provided to the processor 310 from the SPD devices 325 , 335 , 345 , and 355 during initialization.

도 39는 부재 처리의 결과가 제1 메모리 모듈(320)로 전달되는 예를 보여준다. 예시적으로, 도 29 및 도 30을 참조하여 설명된 부재 처리가 완료된 후에, 도 39에 도시된 절차들이 수행될 수 있다. 도 27 및 도 39를 참조하면, S218 단계에서, 페이지 부재 처리기(PFH)는 부재 알림을 수행할 수 있다.39 shows an example in which the result of member processing is transmitted to the first memory module 320 . Illustratively, 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 fault handler PFH may perform absence notification.

예를 들어, 페이지 부재 처리기(PFH)는 부재 처리 과정에서 사상된 논리 주소(LA)를 해당 논리 주소(LA)와 연관된 제1 메모리 모듈(320)에 전송할 것을 메모리 제어기(311)에 지시할 수 있다. 메모리 제어기(311)는 사상된 논리 주소(LA)를 제1 메모리 모듈(320)의 매체 제어기(323)에 전송할 수 있다.For example, the page fault handler PFH may instruct the memory controller 311 to transmit the logical address LA mapped in the absence processing process to the first memory module 320 associated with the corresponding logical address LA. there is. 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 a read command and a read address, and a form different from a write command and a write address.

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

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

S219 단계에서, 매체 제어기(323)는 특정한 논리 주소(LA)에 대응하는 제2 타입 메모리(322)의 저장 공간을 제1 타입 메모리(321)에 사상하는 캐시 할당을 수행할 수 있다. 예를 들어, 제2 타입 메모리(322)의 제1 응용 저장 영역(SA_APP1)의 논리 주소들(LA)에 대해 부재 처리가 수행됨에 따라, 매체 제어기(323)는 제1 응용 저장 영역(SA_APP1)을 제1 타입 메모리(321)에 사상할 수 있다.In step S219 , the medium controller 323 may perform cache allocation by mapping 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 medium controller 323 stores 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)의 속도가 향상된다.If the medium controller 323 maps the first application storage area SA_APP1 to the first type memory 321, a cache miss occurs in the first type memory 321 when the first application APP1 accesses the allocated memory. (cache miss) does not occur, but cache hit (cache hit) occurs. Accordingly, 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 showing a first type memory module 1100 according to an embodiment of the present invention. For example, 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 includes a volatile memory device 1110, a nonvolatile memory device 1120, a media controller 1130, and first to th It includes 8 data buffers 1141 to 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 in separate packages. 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 in separate packages. The first to fourth nonvolatile memories 1121 to 1124 may be storage areas identified by different addresses within the nonvolatile memory device 1120 . The nonvolatile memory device 1120 may be the 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 includes a flash memory device, a phase change memory device, a ferroelectric memory device, a resistive memory device, a magnetic memory device ( It may include at least one of various nonvolatile memory devices such as a magnetoregistive memory device).

매체 제어기(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 medium 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 medium controller 1130 may communicate the second data signals DQ2 with the first to eighth data buffers 1141 to 1148 . 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 medium 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 3 data signals DQ3 can 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 and fourth data signals DQ4.

예시적으로, 제1 명령 및 주소(CA1), 제2 명령 및 주소(CA2), 그리고 제3 명령 및 주소(CA3)는 서로 다른 포맷들을 가질 수 있다. 다른 예로서, 제1 명령 및 주소(CA1), 제2 명령 및 주소(CA2), 그리고 제3 명령 및 주소(CA3) 중 적어도 두 개는 동일한 포맷들을 가질 수 있다. 예를 들어, 매체 제어기(1130)가 휘발성 메모리 장치(1110)와 통신하는 포맷과 불휘발성 메모리 장치(1120)와 통신하는 포맷은 서로 다를 수 있다.For example, 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, a format in which the media controller 1130 communicates with the volatile memory device 1110 and a format in which the nonvolatile memory device 1120 is communicated may be different from each other.

매체 제어기(1130)는 제1 버퍼 명령(CMD_B1)을 전송하여 제1 내지 제4 데이터 버퍼들(1141~1144)을 제어할 수 있다. 매체 제어기(1130)는 제2 버퍼 명령(CMD_B2)을 전송하여 제5 내지 제8 데이터 버퍼들(1145~1148)을 제어할 수 있다.The medium controller 1130 may control the first to fourth data buffers 1141 to 1144 by transmitting a first buffer command CMD_B1. The medium 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 first data signals DQ1 with the memory controller 311 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 medium controller 1130 as 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 medium controller 1130 to the memory controller 311 as first data signals DQ1. The first to eighth data buffers 1141 to 1148 may be formed in separate packages.

예시적으로, 휘발성 메모리 장치(1110)는 불휘발성 메모리 장치(1120)의 캐시 메모리로 사용될 수 있다. 불휘발성 메모리 장치(1120)의 저장 공간 중 일부가 휘발성 메모리 장치(1110)에 사상될 수 있다.For example, the volatile memory device 1110 may be used as a cache memory of the nonvolatile memory device 1120 . A portion 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 command received from the memory controller 311 and the first storage space indicated by the address CA1 are mapped to the volatile memory device 1110, that is, when a cache hit occurs, the medium controller 1130 converts the volatile memory The second command and address CA2 may be transferred to the device 1110 . The volatile memory device 1110 may perform writing or reading according to the second command and address CA2.

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

예를 들어, 불휘발성 메모리 장치(1120)의 제1 저장 공간과 연관된 제2 저장 공간을 휘발성 메모리 장치(1110)에 확보할 수 있다. 휘발성 메모리 장치(1110)에 저장 공간이 부족하면, 매체 제어기(1130)는 휘발성 메모리 장치(1110)에 사상된 다른 저장 공간을 버리거나 또는 다른 저장 공간을 불휘발성 메모리 장치(1120)에 반환함으로써, 휘발성 메모리 장치(1110)에 저장 공간을 확보할 수 있다.For example, the second storage space associated with the first storage space of the nonvolatile memory device 1120 may be secured in the volatile memory device 1110 . When the storage space in the volatile memory device 1110 is insufficient, the medium controller 1130 discards the other storage space mapped to the volatile memory device 1110 or returns the other storage space to the non-volatile memory device 1120, thereby reducing volatile memory. 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 medium controller 1130 may copy data from the first storage space to the second storage space of the volatile memory device 1110. After that, the medium controller 1130 may 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 address CA2 .

예시적으로, 제1 명령 및 주소(CA1)를 통해 부재 알림이 전달되면, 매체 제어기(1130)는 부재 알림에 포함된 논리 주소 또는 논리 주소들에 대응하는 불휘발성 메모리 장치(1120)의 저장 공간을 휘발성 메모리 장치(1110)에 사상할 수 있다. 부재 알림은 읽기 동작을 위한 제1 명령 및 주소(CA1) 또는 쓰기 동작을 위한 제1 명령 및 주소(CA1)와 다른 형태로 전달될 수 있다. 예를 들어, 매체 제어기(1130)는 부재 알림을 위한 제1 명령 및 주소(CA1)를 수신하고, 캐시 할당을 수행할 수 있다.Exemplarily, when the absence notification is transmitted through the first command and address CA1, the medium controller 1130 determines the 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 form different from the first command and address CA1 for a read operation or the first command and address CA1 for a write operation. For example, the medium controller 1130 may receive a first command and address CA1 for absence notification, and perform cache allocation.

휘발성 메모리 장치(1110)에서 제2 저장 공간을 해제하고자 할 때, 매체 제어기(1130)는 제2 저장 공간이 오염되었는지(dirty) 체크할 수 있다. 예를 들어, 제2 저장 공간에 대해 쓰기가 수행된 때에, 제2 저장 공간은 오염된(dirty) 것으로 판단될 수 있다.When trying to release the second storage space in the volatile memory device 1110, the medium controller 1130 may check whether the second storage space is dirty. For example, when writing is performed on the second storage space, 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 medium controller 1130 may release the second storage space by discarding data in the second storage space. If the second storage space is dirty, the medium 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 medium 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 outputs the second command and address CA2 and the second clock signal. (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 indicates the nonvolatile memory device 1120, the media controller 1130 generates the third command and address CA3 and the third clock signal CK3. Alternatively, the third control signal CTRL3 may be transferred to the nonvolatile memory device 1120 .

예시적으로, 휘발성 메모리들, 불휘발성 메모리들, 그리고 데이터 버퍼들의 수는 한정되지 않는다. 휘발성 메모리들 또는 불휘발성 메모리들의 수는 데이터 버퍼들의 수와 동일할 수 있다. 데이터 버퍼들의 수는 9개로 변경될 수 있다.By way of example, the number of volatile memories, non-volatile memories, and data buffers is not limited. The number of volatile memories or non-volatile memories may equal 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 medium 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 medium controller 1130 accesses the nonvolatile memory device 1120 according to the first command and address CA1, the medium controller 1130 converts logical addresses LA to physical addresses PA according to mapping information. ) can be converted to The media controller 1130 may access the nonvolatile memory device 1120 using the converted 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 nonvolatile memory device 1120 to the volatile memory device 1110 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 cache miss using the logical addresses LA or the physical addresses PA.

도 41은 본 발명의 실시 예에 따른 메모리 시스템(400)을 보여주는 블록도이다. 예를 들어, 메모리 시스템(400)은 응용 서버, 클라이언트 서버, 데이터 서버와 같은 서버를 포함할 수 있다. 다른 예로서, 메모리 시스템(400)은 개인용 컴퓨터 또는 워크 스테이션을 포함할 수 있다.41 is a block diagram showing a memory system 400 according to an embodiment of the inventive concept. For example, the memory system 400 may include servers such as application servers, client servers, and data servers. As another example, the 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 , a 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 components of the memory system 400 and 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 to fourth memory modules 420 to 450 through main channels MCH and 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 main channels MCH and auxiliary channels SCH. The main channels MCH may be channels used to store data in or read data from the memory modules 420 to 450 . The main channels MCH may include channels respectively provided for the first to fourth memory modules 420 to 450 .

보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(420~450)에 데이터를 저장하거나 읽는 것 외에, 제1 내지 제4 메모리 모듈들(420~450)과 연관된 추가적인 기능들을 제공할 수 있다. 예를 들어, 제1 내지 제4 메모리 모듈들(420~450)은 보조 채널들(SCH)을 통해 자신의 고유한 정보들을 메모리 제어기(411)에 제공할 수 있다. 보조 채널들(SCH)은 제1 내지 제4 메모리 모듈들(420~450)에 대해 각각 제공되는 채널들을 포함할 수 있다.In addition to storing or reading data in the first to fourth memory modules 420 to 450, the auxiliary channels SCH may provide additional functions related to the first to fourth memory modules 420 to 450. there is. For example, the first to fourth memory modules 420 to 450 may provide their own information to the memory controller 411 through auxiliary channels (SCH). The auxiliary channels SCH may include channels provided to 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 main memory of the memory system 400 . The first to fourth memory modules 420 to 450 are memory controllers (dual in-line memory modules (DIMMs), registered DIMMs (RDIMMs), and load reduced DIMMs (LRDIMMs) according to one of memory module standards. 411) can be communicated with.

루트 컴플렉스(460)는 프로세서(410)가 다양한 주변 장치들을 액세스하는 채널들을 제공할 수 있다. 예를 들어, 루트 컴플렉스(460)에 스토리지 장치(470)가 연결될 수 있다. 스토리지 장치(470)는 하드 디스크 드라이브, 광학 디스크 드라이브, 솔리드 스테이트 드라이브 등을 포함할 수 있다.Root complex 460 may provide channels through which 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, and 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 a main memory including the first to fourth memory modules 420 to 450 . The processor 410 may flush data that needs to be backed up among data stored in the main memory to the storage device 470 .

제1 내지 제4 메모리 모듈들(420~450)을 포함하는 메인 메모리의 저장 영역 중 일부는 캐시 메모리(412)에 사상될 수 있다. 프로세서(410)는 메인 메모리의 특정한 저장 공간을 액세스할 필요가 있을 때, 특정한 저장 공간이 캐시 메모리(412)에 사상되어 있는지 판단할 수 있다.A part of the storage area of the main memory including the first to fourth memory modules 420 to 450 may be mapped to the cache memory 412 . When it is necessary 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 specific storage space is mapped to the cache memory 412 , the processor 410 can access the specific storage space of the cache memory 412 . If the specific 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

캐시 메모리(412)의 저장 공간이 부족하면, 프로세서(410)는 기존에 캐시 메모리(412)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 프로세서(410)는 갱신된 데이터를 제1 내지 제4 메모리 모듈들(420~450)로 플러시할 수 있다.When 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 in 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 Detect (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 Detect (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 high-speed volatile memory, such as 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 a larger storage capacity than the first type memory 421 . For example, the second type memory 422 may include flash memory, phase change memory, ferroelectric memory, magnetic memory, resistive memory, and the like. .

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

매체 제어기(423)는 제2 타입 메모리(422)의 저장 용량 또는 저장 공간을 외부의 호스트 장치, 예를 들어 메모리 제어기(411) 또는 프로세서(410)에 제공할 수 있다. 매체 제어기(423)는 제1 타입 메모리(421)를 제2 타입 메모리(422)의 캐시 메모리로 사용할 수 있다. The medium controller 423 may provide the 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 medium controller 423 may map some of the storage spaces of the second type memory 422 to the first type memory 421 . If a storage space associated with an access command from an external host device, for example, the memory controller 411 or the processor 410 is mapped to the first type memory 421, the medium controller 423 sends the access command to the first type memory 421. It can be transferred to the type memory 421.

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

제1 타입 메모리(421)의 저장 공간이 부족하면, 매체 제어기(423)는 기존에 제1 타입 메모리(421)에 사상된 저장 공간을 해제할 수 있다. 해제 대상인 저장 공간의 데이터가 갱신되었으면, 매체 제어기(423)는 갱신된 데이터를 제2 타입 메모리(422)로 플러시할 수 있다.When the storage space of the first type memory 421 is insufficient, the medium controller 423 may release the storage space previously mapped to the first type memory 421 . When data in the storage space to be released is updated, the medium 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 may include a media switch MSW. The media switch MSW may be implemented in the form of hardware included as part of an integrated circuit in the media controller 423 or firmware executed in the media controller 423 . The medium 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, during training, the medium switch MSW may be configured to transfer a training command from an external host device, eg, the memory controller 411 or the processor 410, only to the first type memory 421. there is. After training is completed, the medium switch MSW may transmit an 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, for example, the memory controller 411 or the processor 410 through a corresponding one of the auxiliary channels SCH. For example, when the first memory module 420 is initialized, the SPD device 425 transfers stored information to an external host device, for example, the memory controller 411, through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the first memory module 420 and may store information about storage capacity provided to an external host device, for example, the memory controller 411 or the processor 410. there is. For example, the SPD device 425 may store information about the 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, such as 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 on the user capacity of the second type memory 422 . The storage capacity of the second type memory 422 may include user capacity, meta capacity, and reserve 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 may be a storage capacity in which various meta information for managing the second type memory 422 is stored and not disclosed to an external host device, for example, the memory controller 411 . The reserve capacity is reserved for managing the second type memory 422 and may be 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 on the user capacity of the second type memory 422 . Hereinafter, the capacity of the second type memory 422 may be understood as indicating 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 Detect (SPD) device 445 . The fourth memory module 450 may include a first type memory 451 and a Serial Presence Detect (SPD) device 455 . Hereinafter, the second type memory modules 440 and 450 are 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)에 제공할 수 있다.Like the first type memory 421 of the first memory module 420 , the first type memory 441 may include a dynamic random access memory. The SPD device 445 may communicate with an external host device, eg, the memory controller 411 or the processor 410, through a corresponding one of the auxiliary channels SCH. For example, when the third memory module 440 is initialized, the SPD device 445 transfers stored information to an external host device, for example, the memory controller 411, through a corresponding channel among auxiliary channels (SCH). Alternatively, it may be provided to 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 is a storage space of the third memory module 440 and may store information about storage capacity provided to an external host device, for example, the memory controller 411 or the processor 410. there is. For example, the SPD device 445 may store information about the storage capacity of the first type memory 441 . Upon 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.

제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 storage capacities 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 storage capacities of the first type memories 441 and 451 to the memory controller 411 , respectively. For example, the memory controller 411 may read storage capacities from the SPD devices 425 to 455, respectively.

초기화가 수행된 후에, 메모리 제어기(411)는 제1 내지 제4 메모리 모듈들(420~450)과 트레이닝을 수행할 수 있다. 예를 들어, 메모리 제어기(411)는 제1 내지 제4 메모리 모듈들(420~450)로 트레이닝 명령을 전송함으로써 트레이닝을 수행할 수 있다.After 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)의 저장 용량들의 무결성을 체크할 수 있다.A training command may include two or more read commands or two or more write commands. During training, the memory controller 411 repeatedly transmits commands to the first to fourth memory modules 420 to 450, aligning timings for transmitting commands in synchronization with a clock signal, and then arranging timings for transmitting commands to the first to fourth memory modules 420 to 450. The integrity of the storage capacities of the modules 420 to 450 may be checked.

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

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

그러나 메인 메모리들을 제어하는 메모리 제어기(411)의 트레이닝 명령은 제1 타입 메모리, 즉 동적 랜덤 액세스에 부합하도록 정해져 있다. 메모리 제어기(411)가 제2 타입 메모리들(422, 432)의 저장 공간에 대해 트레이닝을 수행할 수 있도록 하려면, 메모리 제어기(411)의 구조 또는 기능이 변경되어야 한다. 그러나 기존에 사용되고 있는 메모리 제어기(411)를 변경하는 것은 큰 비용을 초래한다.However, the training command of the memory controller 411 that controls the main memories is determined to conform to the first type memory, that is, dynamic random access. In order for the memory controller 411 to perform training on the storage spaces of the second type memories 422 and 432, the structure or function of the memory controller 411 needs to be changed. However, changing the memory controller 411 that is already being used 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 spaces of the second type memories 422 and 432 to the memory controller 411, but training is dedicated to the first type memory 421. Accordingly, the storage spaces of the second type memories 422 and 432 can be provided to the memory controller 411 without affecting training of the memory controller 411 or causing malfunction.

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

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

도 41 및 도 42를 참조하면, S311 단계에서, 초기화 동안에, 제1 메모리 모듈(420)은 제2 타입 메모리(422)의 용량을 제1 메모리 모듈(420)의 전체 용량으로 보고한다. 예를 들어, 제1 메모리 모듈(420)은 SPD 장치(425)에 저장된 용량 정보를 메모리 제어기(411)에 전달할 수 있다. 용량 정보는 제2 타입 메모리(422)의 용량 정보를 포함할 수 있다.41 and 42 , in step 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 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 the training command for the second type memory 422 to the first type memory 421 rather than to the second type memory 422, the first memory module 420 does not affect training and malfunctions in training. is prevented from causing

도 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 transmit first and second capacity information CI1 and CI2 through first and second auxiliary channels SCH1 and SCH2, respectively. to the memory controller 411. For example, the memory controller 411 may read 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 is the capacity of the first memory module 420 and may indicate the capacity of the second type memory 422 . The capacity of the second type memory 422 indicated by the first capacity information CI1 may be related to the capacity (hereinafter referred to as 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 being 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 unit capacities. For example, the first capacity information CI1 may indicate that there are N ranks having unit capacities. For example, the first capacity information CI1 may represent the storage space of the second type memory 422 as N physically or logically distinguished storage spaces (eg, virtually distinguished 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 divided memories having unit capacities. For example, when N is 8, the memory controller 411 may assign first to eighth identifiers CID1 to CID8 to 8 virtual memories each 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 differentiated memories) are present 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 completed, the media controller 423 of the first memory module 420 transfers accesses to the N memories to physically or logically distinct storage spaces of the second type memory 422. can be identified by

제2 용량 정보(CI2)는 제3 메모리 모듈(440)의 용량으로서 제1 타입 메모리(441)의 용량을 가리킬 수 있다. 제2 용량 정보(CI2)에 따라, 메모리 제어기(411)는 제3 메모리 모듈(440)의 용량을 제2 식별된 용량(IC2)으로 식별할 수 있다. 예를 들어, 제2 용량 정보(CI2)에 따라, 제2 식별된 용량(IC2)에 하나 또는 그보다 많은 식별자들이 할당될 수 있다.The second capacity information CI2 is the capacity of the third memory module 440 and may indicate the capacity of the first type memory 441 . 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 medium 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 medium switch MSW of the medium 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, a capacitance corresponding to the first type memory 421, for example, a capacitance assigned with the first identifier CID1 may have an actual storage space. there is. Among the first identified capacities IC1 , capacities that do not correspond to the first type memory 421 , for example, capacities assigned with second to eighth identifiers CID2 to CID8 do not have actual storage space, but virtual capacities. 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 capacity 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 assumes that memories having first to eighth identifiers CID1 to CID8 are present in the first memory module 420 . Recognize.

따라서, 메모리 제어기(411)는 제1 내지 제8 식별자들(CID1~CID8)을 갖는 트레이닝 명령들(T_CMDs)을 제1 메모리 모듈(420)로 순차적으로 전송할 수 있다. 예를 들어, 메모리 제어기(411)는 제1 식별자(CID1)를 갖는 트레이닝 명령을 제1 메모리 모듈(420)로 전송하여, 제1 식별자(CID1)를 갖는 메모리에 대한 트레이닝을 시도할 수 있다.Accordingly, 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 of 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 to generate 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 medium 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 transmit the training commands T_CMDs to the first type memory 421. . For example, the medium switch MSW may recognize that all of the training commands T_CMDs 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 transmits the first to eighth identifiers CID1 to CID8. ) may be repeatedly transmitted to the first type memory 421 .

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

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

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

제1 메모리 모듈(420)과 달이, 제3 메모리 모듈(440)에 대한 트레이닝 명령(T_CMD)은 제1 타입 메모리(441)로 직접 전달된다. 제1 타입 메모리(441)는 제2 메인 채널(MCH2)의 트레이닝 절차에 부합한다. 따라서, 제3 메모리 모듈(440)에 대한 트레이닝이 오동작 없이 수행된다.The training command T_CMD for the first memory module 420 and 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. Accordingly, training of 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, during training, the medium switch MSW may block transfer of training commands T_CMDs from the memory controller 411 to the second type memory 422 . During training, the medium switch MSW may transmit training commands T_CMDs from the memory controller 411 to the first type memory 421 . Therefore, training can be performed without malfunction in the first memory module 420 providing the second type memory 422 that does not conform 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 medium controller 423 establishes a channel with the second type memory 422. Referring to FIGS. 45 and 46 , in step S321, the media controller 423 may detect completion of training. When the completion of 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 part of the storage space of the second type memory 422 may be mapped to the first type memory 421 . When the storage space that the memory controller 411 wants to access is mapped to the first type memory 421, the medium controller 423 transfers an access command from the memory controller 411 to the first type memory 421. can

메모리 제어기(411)가 액세스하고자 하는 저장 공간이 제1 타입 메모리(421)에 사상되어 있지 않을 때, 매체 제어기(423)는 액세스 요청된 저장 공간을 제2 타입 메모리(422)로부터 제1 타입 메모리(421)로 사상할 수 있다. 이후에, 매체 제어기(423)는 메모리 제어기(411)로부터의 액세스 명령을 제1 타입 메모리(421)로 전달할 수 있다.When the storage space that the memory controller 411 wants to access is not mapped to the first-type memory 421, the medium controller 423 transfers the requested storage space from the second-type memory 422 to the first-type memory. (421). After that, the medium controller 423 may transmit an 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 this embodiment, the first memory module 420 transfers the access request of the memory controller 411 to the first type memory 421, thereby guaranteeing a high access speed required by the memory controller 411. . 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 converts the storage space of the first type memory 421 to the first type memory 421. By flushing the second type memory 422 , the large storage capacity and 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 in which the media controller 423 detects completion of training. Referring to FIG. 47 , initialization and training are performed by BIOS (Basic Input Output System). When initialization and training are completed, the memory controller 411 may periodically transmit a 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 can detect that training is complete when the refresh command (R_CMD) is received periodically (or continuously). For example, the medium controller 423 may detect that training is complete when only the refresh command (R_CMD) is received periodically (or continuously) a certain number of times or more without intervening other commands.

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

도 48은 본 발명의 실시 예에 따른 제1 타입 메모리 모듈(1200)을 보여주는 블록도이다. 예시적으로, 제1 타입 메모리 모듈(1200)은 LRDIMM 표준에 기반한 메모리 모듈일 수 있다. 예시적으로, 제1 메모리 모듈(420)을 참조하여 제1 타입 메모리 모듈(1200)이 도시된다.48 is a block diagram showing a first type memory module 1200 according to an embodiment of the present invention. For example, 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 includes a first type memory 1210, a second type memory 1220, a media controller 1230, and first to 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 the same as the type 1 memory 1110, the type 2 memory 1120, the first to eighth data buffers 1141 to 1148, and the serial presence detection (SPD) device 1150, and operates in the same way. . Therefore, redundant descriptions are omitted.

매체 제어기(1230)는 도 40을 참조하여 설명된 매체 제어기(1130)와 유사하게 구성되고 유사하게 동작할 수 있다. 도 40을 참조하여 설명된 매체 제어기(1130)와 달리, 매체 제어기(1230)는 매체 스위치(MSW)를 포함할 수 있다.The media controller 1230 may be configured similarly to and operate similarly to the media controller 1130 described with reference to FIG. 40 . Unlike the medium controller 1130 described with reference to FIG. 40 , the medium controller 1230 may include a medium 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 medium switch MSW sends a training command for the second type memory 1220 from the memory controller 411 to the first type memory 1210. ) can be transmitted. When the training is finished, the medium 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 showing a computing device 500a according to an embodiment of the present invention. For example, the computing device 500a may include servers 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 , a computing device 500a includes 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 components and operations of the components of the computing device 500a. 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 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 high-speed 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 according to a request of the processor 510 . For example, the memory controller 530a may be based on one of memory module standards such as dual in-line memory module (DIMM), registered DIMM (RDIMM), and load reduced DIMM (LRDIMM). Illustratively, the memory controller 530a may be disposed outside the processor 510 or included inside the processor 510 as shown in FIG. 49 .

메모리 제어기(530a)는 타임아웃 제어기(531) 및 레지스터(532)를 포함한다. 타임아웃 제어기(531)는 메모리 제어기(530a)가 주 메모리(540a)를 액세스할 때에 시간을 측정할 수 있다. 레지스터(532)는 메모리 제어기(530a)와 연관된 다양한 파라미터들을 저장할 수 있다.The memory controller 530a includes a timeout controller 531 and a register 532 . Timeout controller 531 can measure the time when memory controller 530a accesses 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 can store various timeout values when memory controller 530a accesses main memory 540a. The timeout controller 531 may control a timeout when the memory controller 530a accesses the main memory 540a based on 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 non-volatile storage capacity or a large capacity, and an access speed and random access capability similar to that of a dynamic random access memory (DRAM).

기존의 컴퓨팅 장치들과의 호환성을 지원하기 위하여, 주 메모리(540a)는 DIMM, RDIMM, LRDIMM과 같은 메모리 모듈의 표준들 중 하나에 기반하여 구현될 수 있다. 메모리 제어기(530a) 및 주 메모리(540a)를 메모리 시스템을 형성할 수 있다.To support compatibility with existing computing devices, the main memory 540a may be implemented based on one of memory module standards such as DIMM, RDIMM, and 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 may transfer a request or data from the processor 510 to the storage device 560 . The storage interface 550 may transfer data transmitted 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 transmitted through the storage interface 550 according to a request transmitted through the storage interface 550 . The storage device 560 may transmit stored data through the storage interface 550 according to a request transmitted 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 controlling 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 hierarchically process data. For example, source data of an operating system used in the computing device 500a, source data of an application, and user data may be stored in the storage device 560. User data may include data generated by an operating system, an application, or a user of the computing device 500a.

프로세서(510)가 필요로 하는 특정한 데이터(예를 들어, 소스 데이터 또는 사용자 데이터)가 스토리지 장치(560)에 저장되어 있을 때, 프로세서(510)는 특정한 데이터를 스토리지 장치(560)로부터 읽어 주 메모리(540a)에 저장할 수 있다. 프로세서(510)는 주 메모리(540a)에 저장된 특정한 데이터를 스토리지 장치(560)에 백업할 수 있다.When specific data (eg, source data or user data) required by the processor 510 is stored in the storage device 560, the processor 510 reads the specific data from the storage device 560 to the 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 . For example, in the computing device 500a, at least one of the first and second cache memories 511 and 520 may be omitted.

예시적으로, 주 메모리(540a)는 도 26을 참조하여 설명된 구조를 갖고, 도 26을 참조하여 설명된 바에 따라 동작할 수 있다. 다른 예로서, 주 메모리(540a)는 도 40을 참조하여 설명된 구조를 갖고, 도 40을 참조하여 설명된 바에 따라 동작할 수 있다.Illustratively, the main memory 540a may have the structure described with reference to FIG. 26 and operate as described with reference to FIG. 26 . As another example, the main memory 540a may have the structure described with reference to FIG. 40 and 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. Referring to FIGS. 49 to 50 , in step 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 step S412, the memory controller 530a may transmit a second read request to the medium controller 1230. For example, the memory controller 530a can generate a second read request from a 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 step S413, the memory controller 530a may determine whether normal data is received within the first time T1. For example, normal data may indicate data without errors or data with errors within a correctable range. The correctable range may be determined differently depending on 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 normal data is received within the first time period T1, in step S414, 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, in step S415, the memory controller 530a sends a second read request back to the medium controller 1230. 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. Step S415 may be expressed as a read retry.

S416 단계에서, 메모리 제어기(530a)는 제2 시간(T2) 내에 정상 데이터가 수신되는지 판단할 수 있다. 제2 시간(T2)은 제1 시간(T1)과 같거나 다를 수 있다. 제2 시간(T2) 내에 정상 데이터가 수신되면, S414 단계에서 읽기 성공이 판단될 수 있다.In step S416, the memory controller 530a may determine whether normal data is received within the second time period 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, read success may be determined in step 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 step S417, the memory controller 530a may determine whether the second read request has been retransmitted as many times (N1 times) as the first value (N1). For example, the memory controller 530a may determine whether read retries have been performed as many times as the first value N1.

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

도 51은 도 50의 동작 방법에 따라 읽기 동작이 수행되는 제1 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 휘발성 메모리 장치(1210)와 연관되며, 휘발성 메모리 장치(1210)에서 읽기 동작이 수행되는 예가 도 51에 도시된다.51 shows a first example in which a read operation is performed according to the operation method of FIG. 50 . For example, an example in which the first command and 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)을 생성할 수 있다.Referring to FIGS. 49 to 51 , the processor 510 may generate a first read request R1. In step S421, the processor 510 may transfer the 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 step S422, the memory controller 530a may transfer the second read request R2 to the medium controller 1230. The second read request R2 may be transferred to the medium controller 1230 as a first command and 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 medium controller 1230 may generate a third read request R3 according to the second read request R2. In step S423 , the medium controller 1230 may transfer the third read request R3 to the volatile memory device 1210 . The third read request R3 may be transferred to the volatile memory device 1210 as the 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 a third read request R3 without processing it. As another example, the medium controller 1230 processes the second read request R2 into a form suitable for the volatile memory device 1210 and transfers the processed result to the volatile memory device 1210 as a third read request R3. can be conveyed

제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 transmitted to the media controller 1230 . In step S424, the read operation may be completed.

매체 제어기(1230)는 휘발성 메모리 장치(1210)로부터 읽혀진 데이터를 메모리 제어기(530a)로 전달하는 데이터 전송(DT)을 수행할 수 있다. S425 단계에서, 데이터 전송(DT)이 완료되고, 데이터는 메모리 제어기(530a)로 전달될 수 있다.The medium controller 1230 may perform data transfer (DT) to transfer data read from the volatile memory device 1210 to the memory controller 530a. In step S425, data transfer (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 before a first time T1 elapses after transmitting the second read request R2. For example, the received data may be normal data. Accordingly, the memory controller 530a may determine read success.

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

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

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

도 53은 도 50의 동작 방법에 따라 읽기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 불휘발성 메모리 장치(1220)에서 읽기 동작이 수행되는 예가 도 53에 도시된다.53 shows a second example in which a read operation is performed according to the operation method of FIG. 50 . For example, an example in which the first command and 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)을 생성할 수 있다.Referring to FIGS. 49 to 50 and FIG. 53 , the processor 510 may generate a first read request R1. In step S441, the processor 510 may transfer the 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 step S442, the memory controller 530a may transmit the second read request R2 to the medium controller 1230. The second read request R2 may be transferred to the medium controller 1230 as a first command and 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 medium controller 1230 may generate a third read request R3 according to the second read request R2. In step 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 transferred 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 medium controller 1230 may transfer the second read request R2 to the nonvolatile memory device 1220 as a third read request R3 without processing it. As another example, the medium controller 1230 processes the second read request R2 into a form suitable for the nonvolatile memory device 1212, and converts the processed result into a third read request R3 to the nonvolatile memory device 1220. ) can be transmitted.

제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 transmitted to the media controller 1230 .

예시적으로, 불휘발성 메모리 장치(1220)의 읽기 속도는 휘발성 메모리 장치(1210)의 읽기 속도보다 낮다. 불휘발성 메모리 장치(1220)로부터 데이터를 읽는 데에 필요한 시간은 휘발성 메모리 장치(1210)로부터 데이터를 읽는 데에 필요한 시간보다 길다.For example, a read speed of the nonvolatile memory device 1220 is lower than a read speed of the volatile memory device 1210 . A time required to read data from the nonvolatile memory device 1220 is longer than a 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 earlier, 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. there is. In step S444, the memory controller 530a may transmit the second read request R2 to the medium controller 1230 to perform a read retry (step 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. there is. In step S445, the memory controller 530a may transmit the second read request R2 to the medium controller 1230 to perform a read retry (step 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. there is. In steps S446 and S447, the memory controller 530a may transmit the second read request R2 to the medium controller 1230 to perform a read retry (step 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 read retries are performed as many times as 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 transfer the error report (ER) to the processor 510 in step 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 step S449 , the read operation of the nonvolatile memory device 1220 is completed, and data may be transferred to the medium controller 1230 . However, the memory controller 530a has already determined read failure. Accordingly, when a read operation of the main memory 540a to the nonvolatile memory device 1220 occurs, the main memory 540a is read due to a difference in read speeds between the nonvolatile memory device 1220 and the volatile memory device 1210. A read operation on may fail.

이와 같은 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 메모리 제어기(530a)는 횟수 제한 없는 읽기 재시도를 수행할 수 있다. 예를 들어, 제1 값(N1)은 레지스터(532)에 저장될 수 있다. 본 발명의 실시 예에 다른 메모리 제어기(530a)는 레지스터(532)에 저장된 제1 값(N1)을 무효화하거나 또는 무한대로 설정할 수 있다.To solve this problem, the memory controller 530a according to an embodiment of the present invention may perform read retries without limiting the number of times. For example, the first value N1 may be stored in the register 532 . According to an embodiment of the present invention, 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 an operating method of the memory controller 530a according to an embodiment of the present invention. Referring to FIGS. 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 step S452, the memory controller 530a may transmit a second read request to the medium controller 1230. For example, the memory controller 530a can generate a second read request from a 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 step 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, 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 step S455, the memory controller 530a sends a second read request back to the medium controller 1230. You can perform read retries by sending

S456 단계에서, 메모리 제어기(530a)는 제2 시간(T2) 내에 정상 데이터가 수신되는지 판단할 수 있다. 제2 시간(T2)은 제1 시간(T1)보다 짧을 수 있다. 제2 시간(T2) 내에 정상 데이터가 수신되면, S454 단계에서 읽기 성공이 판단될 수 있다.In step S456, the memory controller 530a may determine whether normal data is received within the second time period T2. The second time T2 may be shorter than the first time T1. If normal data is received within the second time period T2, read success may be determined in step 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 step S455. That is, the memory controller 530a may retransmit the read request an unlimited number of times.

도 55는 도 54의 동작 방법에 따라 읽기 동작이 수행되는 제1 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 불휘발성 메모리 장치(1220)에서 읽기 동작이 수행되는 예가 도 55에 도시된다.55 shows a first example in which a read operation is performed according to the operation method of FIG. 54 . For example, an example in which the first command and 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)을 생성할 수 있다.Referring to FIGS. 49, 50, 54, and 55, the processor 510 may generate a first read request R1. In step S461, the processor 510 may transfer the 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 step S462, the memory controller 530a may transmit the second read request R2 to the medium controller 1230. The second read request R2 may be transferred to the medium controller 1230 as a first command and 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 medium controller 1230 may generate a third read request R3 according to the second read request R2. In step 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 transferred 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 transmitted 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. there is. In step S464, the memory controller 530a may transmit the second read request R2 to the medium controller 1230 to perform a read retry (step 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 step S464. there is. In step S465, the memory controller 530a may perform a read retry by transmitting the second read request R2 to the medium controller 1230 again (step 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 medium controller 1230 in steps S466 to S468 to perform a read retry. . While the read operation RD is being performed in the nonvolatile memory device 1220, the medium controller 1230 receives second read requests associated with the read operation RD (for example, in steps S464 to S468). Received second read requests R2 may be ignored.

S469 단계에서, 불휘발성 메모리 장치(1220)에서 읽기 동작(RD)이 완료되고, 읽혀진 데이터가 매체 제어기(1230)로 전달될 수 있다. 매체 제어기(1230)는 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터를 메모리 제어기(530a)로 전달하는 데이터 전송(DT)을 수행할 수 있다. S470 단계에서, 데이터 전송(DT)이 완료되고, 데이터는 메모리 제어기(530a)로 전달될 수 있다.In step S469, the read operation (RD) is completed in the nonvolatile memory device 1220, and the read data may be transferred to the medium controller 1230. The medium controller 1230 may perform data transfer (DT) to transfer data read from the nonvolatile memory device 1220 to the memory controller 530a. In step S470, 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 transmits the second read request R2 in step S468 and then receives data from the main memory 540a before the second time T2 elapses. For example, the received data may be normal data. Accordingly, the memory controller 530a may determine read success.

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

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

도 56은 도 54의 동작 방법에 따라 읽기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 휘발성 메모리 장치(1210)가 불휘발성 메모리 장치(1220)의 캐시 메모리로 사용되는 예가 도 56에 도시된다.56 shows a second example in which a read operation is performed according to the operation method of FIG. 54 . For example, an example in which the first command and 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)을 생성할 수 있다.Referring to FIGS. 40, 49, 54, and 56 , in step S481, the processor 510 may transfer the 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 step S482, the memory controller 530a may transmit the second read request R2 to the medium controller 1230. The second read request R2 may be transferred to the medium controller 1230 as a first command and 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 medium controller 1230 may determine whether the storage space associated with the second read request R2 is mapped to the volatile memory device 1210 (ie, whether it is a cache hit). If the storage space associated with the second read request R2 is mapped to the volatile memory device 1210, that is, if it is a cache hit, the medium controller 1230 sends the third read request R3 to the second command and address CA2. Alternatively, it may be transmitted to the volatile memory device 1210 as the second control signal CTRL2.

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

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

매체 제어기(1230)는 제2 읽기 요청(R2)과 연관된 저장 공간에 대한 제3 읽기 요청(R3)을 생성할 수 있다. S483 단계에서, 매체 제어기(1230)는 제3 읽기 요청(R3)을 불휘발성 메모리 장치(1220)로 전달할 수 있다. 제3 읽기 요청(R3)은 제3 커맨드 및 어드레스(CA3)로서 불휘발성 메모리 장치(1220)로 전달될 수 있다.The medium controller 1230 may generate a third read request R3 for the storage space associated with the second read request R2. In step 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 transferred 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 transmitted 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 transmit a second read request R2 to perform a read retry in steps S484 to S488.

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

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

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

특정한 제어 신호가 활성화된 동안, 매체 제어기(1230)는 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터를 휘발성 메모리 장치(1210)로 출력할 수 있다. 특정한 제어 신호의 활성화에 응답하여, 휘발성 메모리 장치(1210)는 매체 제어기(1230)로부터 전달되는 데이터를 기입할 수 있다.While a 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 activation of a specific control signal, the volatile memory device 1210 may write data transmitted from the media controller 1230 .

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

쓰기 동작(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 step S491 , the memory controller 530a may transmit a second read request R2 to the medium controller 1230 . In step S492, after the read operation RD is completed, the medium controller 1230 transmits a third read request R3 to the volatile memory device 1210 in response to the second read request R2 received in step S441. can The third read request R3 may request reading of 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)을 수행할 수 있다.According to the third read request R3, the volatile memory device 1210 may perform a read operation RD. When the read operation RD is completed, data related to the second read request R2 is transferred to the medium controller 1230 in step S493. The medium controller 1230 may perform data transmission (DT).

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

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

도 57은 도 56의 읽기 동작의 변형 예를 보여준다. 도 40, 도 49, 도 54 및 도 57을 참조하면, S501 단계 내지 S510 단계는 도 56의 S481 단계 내지 S490 단계와 동일하게 수행된다. 따라서, 중복되는 설명은 생략된다.57 shows a modified example of the read operation of FIG. 56 . Referring to FIGS. 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 descriptions are omitted.

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

휘발성 메모리 장치(1210)가 읽기 동작(RD)을 수행할 때, S513 단계에서, 읽혀진 데이터는 매체 제어기(1230)에 의해 제어되거나 버퍼링되지 않고, 매체 제어기(1230) 및 제1 내지 제8 데이터 버퍼들(1241~1248)을 통해 메모리 제어기(530a)로 직접 전달될 수 있다. LRDIMM은 동적 랜덤 액세스 메모리(DRAM)에 기반하므로, 휘발성 메모리 장치(1210)는 메모리 제어기(530a)와 직접 통신할 수 있다.When the volatile memory device 1210 performs a read operation (RD), in step S513, the read data is not controlled or buffered by the medium controller 1230, and the medium controller 1230 and the first to eighth data buffers It may be directly transmitted to the memory controller 530a through fields 1241 to 1248. Since the LRDIMM is based on dynamic random access memory (DRAM), the volatile memory device 1210 can 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 . If data read from the volatile memory device 1210 is directly transmitted to the memory controller 530a, the time from when the memory controller 530a transmits the second read request R2 to receiving data 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 . Referring to FIGS. 40 , 49 and 58 , steps S521 to S525 are performed identically to 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 step S526, if normal data is not received within the second time period T2, step S527 is performed. In step S527, it is determined whether the third time period T3 has elapsed after the first transmission of the second read request (step S522). If the third time period T3 has not elapsed, read retries are performed without limiting the number of times in step S525.

제3 시간(T3)이 경과했으면, S528 단계에서, 메모리 제어기(530a)는 정정 불가능한 에러가 발생하였으면, 읽기 실패가 발생한 것을 판단할 수 있다. 예시적으로, 제3 시간(T3)의 정보는 레지스터(532)에 저장될 수 있다.When the third time T3 has elapsed, in step S528, the memory controller 530a may determine that a read failure has occurred if an uncorrectable error has occurred. For example, 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 (eg, a read time) required to perform a read operation in the nonvolatile memory device 1220 . For example, the third time period T3 may be set to be longer (eg, twice or more) than the reading time period.

도 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. 56, as the memory controller 530a transmits the second read request R2 to the medium controller 1230 in step S482, the timeout controller 531 starts measuring the third time T3. can

예시적으로, 제3 시간(T3)은 불휘발성 메모리 장치(1220)에 대해 읽기 동작이 수행되는 시간보다 길게 설정될 수 있다. 제3 시간(T3)에 따라 타임아웃이 측정되면, 주 메모리(540a)에서 에러(예를 들어, 읽기 에러)가 발생하여 정상 데이터가 읽히지 않는 때에 메모리 제어기(530a)가 읽기 재시도를 반복하는 것이 방지된다. 즉, 메모리 제어기(530a) 및 주 메모리(540a)를 포함하는 메모리 시스템에서 행(hang)이 발생하는 것이 방지된다.For example, the third time T3 may be set longer than a time during which a read operation is performed on the nonvolatile memory device 1220 . When the timeout is measured according to the third time T3, when an error (eg, a read error) occurs in the main memory 540a and normal data is not read, the memory controller 530a repeats read retries. that is prevented That is, a hang may be 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 showing a computing device 500b according to another example of the present invention. Referring to FIG. 60 , a computing device 500b includes 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 descriptions are 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). The 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

획득된 정보를 기반으로, 메모리 제어기(530b)는 주 메모리(540b)를 액세스하는 방법들 또는 파라미터들을 설정 또는 조절할 수 있다. 예를 들어, 메모리 제어기(530b)는 시스템 관리 버스(SMBus)를 통해 SPD 장치(541)를 액세스할 수 있다.Based on the obtained information, the memory controller 530b may set or adjust parameters or methods for accessing the main memory 540b. For example, the memory controller 530b may access the SPD device 541 through a 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 determines that the main memory 540b is accessing the register 532 via the system management bus (SMBus). can be allowed to 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 information stored in register 532 such that the operations described with reference to FIGS. 54-59 are permitted.

도 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 may 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 included inside the media controller 1330 or may be provided outside the media controller 1330 in a package distinct from the media controller 1330 . The SPD device 541 and register updater 542 may communicate with the memory controller 530b through a system management bus (SMBus).

도 62는 주 메모리(540b)가 레지스터(532)를 갱신하는 방법을 보여주는 순서도이다. 도 60 내지 도 62를 참조하면, S531 단계에서, 매체 제어기(1330)는 파워 온을 검출할 수 있다. S532 단계에서, 매체 제어기(1330)의 레지스터 갱신기(542)는 시스템 관리 버스(SMBus)를 통해 레지스터(532)에 저장된 정보를 갱신할 수 있다.62 is a flow chart showing how main memory 540b updates register 532. Referring to FIGS. 60 to 62 , in step S531, the medium controller 1330 may detect power on. In step S532, the register updater 542 of the media controller 1330 may update 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 can 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 so 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 showing a computing device 500c according to another example of the present invention. 40 and 63 , the computing device 500c includes 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 descriptions are omitted.

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

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

주 메모리(540c)는 쓰기 에러 제어기(543)를 포함할 수 있다. 도 61을 참조하여 설명된 바와 같이, 쓰기 에러 제어기(543)는 매체 제어기(1230)에 포함될 수 있다. 불휘발성 메모리 장치(1220)에 대한 쓰기가 수행될 때, 쓰기 에러 제어기(543)는 쓰기 에러 신호(WRCRC)를 제어할 수 있다. 예를 들어, 쓰기 에러 신호(WRCRC)는 ALERTn 신호를 포함할 수 있다.The main memory 540c may include a write error controller 543 . As described with reference to FIG. 61 , the 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 WCRRC. 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. Referring to FIGS. 40, 63, and 64 , in step 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 step S542, the memory controller 530c may transmit a second write request to the medium controller 1230. For example, the memory controller 530c can 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 step 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 step 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 step S545, the memory controller 530c may perform restoration. For example, the memory controller 530c may restore a communication link between the memory controller 530c and the main memory 540c. Restoration may include ZQ calibration, writing training, reading training, and the like.

이후에, S542 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청을 다시 전송할 수 있다. 즉, 메모리 제어기(530c)는 횟수 제한 없이 쓰기 재시도(write retry)를 반복할 수 있다.Afterwards, in step S542, the memory controller 530c may transmit a second write request again. That is, the memory controller 530c may repeat 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. Referring to FIGS. 40, 63, and 65, in step S551, the medium controller 1230 may receive a second write request. For example, the medium controller 1230 may receive a second write request as a first command and address CA1 from the memory controller 530c.

S552 단계에서, 매체 제어기(1230)는 제2 쓰기 요청이 불휘발성 메모리 장치(1220)에 대한 쓰기를 유발하는지 판단할 수 있다. 제2 쓰기 요청이 불휘발성 메모리 장치(1220)에 대한 쓰기를 유발하지 않으면, S553 단계에서, 매체 제어기(1230)는 제2 쓰기 요청에 따라 휘발성 메모리 장치(1210)에 대해 쓰기 동작을 수행할 수 있다.In step S552 , the medium 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 step S553, the medium controller 1230 may perform a write operation to the volatile memory device 1210 according to the second write request. there is.

제2 쓰기 요청이 불휘발성 메모리 장치(1220)에 대한 쓰기를 유발하면, S554 단계가 수행된다. S554 단계에서, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 활성화할 수 있다. S555 단계에서, 매체 제어기(1230)는 불휘발성 메모리 장치(1220)에 대해 쓰기 동작을 수행할 수 있다.When the second write request causes writing to the nonvolatile memory device 1220, step S554 is performed. In step S554, the medium controller 1230 may activate the write error signal WRCRC. In step 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), the medium controller 1230 disables the write error signal WRCRC (for example, in step S557). can be adjusted to a high level).

도 53을 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(1220)에 대한 쓰기 동작은 휘발성 메모리 장치(1210)에 대한 쓰기 동작보다 긴 시간을 필요로 한다. 메모리 제어기(530c)는 휘발성 메모리 장치(1210)의 쓰기 속도에 기반하여 주 메모리(540c)를 제어하도록 구성된다.As described with reference to FIG. 53 , a write operation to the nonvolatile memory device 1220 requires a longer time than a write operation to 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 transmits the second write request W2 to the main memory 540c, and there is no separate response from the main memory 540c, for example activation of the write error signal WRCRC. It may be determined that the write operation is completed.

불휘발성 메모리 장치(1220)에 대한 쓰기 동작이 완료되지 않은 상태에서 메모리 제어기(530c)가 쓰기 완료를 판단하면, 쓰기 실패가 발생할 수 있다. 이러한 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 주 메모리(540c)는 불휘발성 메모리 장치(1220)에 대한 쓰기 동작이 완료될 때까지 쓰기 에러 신호(WRCRC)를 활성 상태(예를 들어, 로우 레벨)로 유지할 수 있다.If the memory controller 530c determines that the write is complete while the write operation to the nonvolatile memory device 1220 is not completed, a write failure may occur. To solve this problem, the main memory 540c according to an embodiment of the present invention keeps the write error signal WCRRC in an active state (eg, 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 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)을 생성할 수 있다.Referring to FIGS. 40, 63, 65, and 66, the processor 510 may generate a first write request W1. In step S561, the processor 510 may transfer 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 step S562, the memory controller 530c may transmit the second write request W2 to the medium controller 1230. The second write request W2 may be transferred to the medium controller 1230 as a first command and address CA1.

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

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

제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. Illustratively, as described with reference to FIG. 52 , the memory controller 530c may use the first to eighth data buffers 1241 without the control of the medium controller 1230 or buffering of the medium controller 1230 . ~ 1248) and the media controller 1230 may directly write data into the volatile memory device 1210.

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

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

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

도 67은 도 65의 동작 방법에 따라 쓰기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)에 대한 쓰기 동작을 유발하는 예가 도 67에 도시된다.67 shows a second 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 address CA1 triggers a write operation on 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)을 생성할 수 있다.Referring to FIGS. 40, 63, 65, and 67, the processor 510 may generate a first write request W1. In step S571, the processor 510 may transfer 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 step S572, the memory controller 530c may transmit the second write request W2 to the medium controller 1230. The second write request W2 may be transferred to the medium controller 1230 as a first command and address CA1. The second write request W2 triggers a write operation on the nonvolatile memory device 1220 . Accordingly, when the second write request W2 is received, the medium 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 medium controller 1230 may generate a third write request W3 according to the second write request W2. In step S573, the medium 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 medium controller 1230 may transfer the second write request W2 to the nonvolatile memory device 1220 as a third write request W3 without processing it. As another example, the medium controller 1230 processes the second write request W2 into a form suitable for the nonvolatile memory device 1220, and converts the processed result into a third write request W3 to the nonvolatile memory device 1220. ) can be transmitted.

제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 step S574, the memory controller 530c may perform recovery (RE). After restoration is performed, in step S575, the memory controller 530c may perform a write retry by transmitting a second write request (S565) again.

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

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

S580 단계에서, 메모리 제어기(530c)는 제2 쓰기 요청(W2)을 매체 제어기(1230)로 전송함으로써 쓰기 재시도를 수행할 수 있다. S580 단계에서 제2 쓰기 요청(W2)이 수신됨에 따라, 매체 제어기(1230)는 쓰기 에러 신호(WRCRC)를 하이 레벨로 비활성화할 수 있다. 쓰기 에러 신호(WRCRC)가 비활성화됨에 따라, 메모리 제어기(530c)는 쓰기 동작(WR)이 완료되었음을 식별할 수 있다.In step S580, the memory controller 530c may perform a write retry by transmitting a second write request W2 to the medium controller 1230. As the second write request W2 is received in step S580, the medium 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 has been completed.

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

도 68은 도 66의 동작 방법에 따라 쓰기 동작이 수행되는 제2 예를 보여준다. 예를 들어, 제1 커맨드 및 어드레스(CA1)가 불휘발성 메모리 장치(1220)와 연관되며, 휘발성 메모리 장치(1210)가 불휘발성 메모리 장치(1220)의 캐시 메모리로 사용되는 예가 도 68에 도시된다.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 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 shown in FIG. 68 . .

도 40, 도 63, 도 66 및 도 68을 참조하면, 프로세서(510)는 제1 쓰기 요청(W1)을 생성할 수 있다. S591 단계에서, 프로세서(510)는 제1 쓰기 요청(W1)을 제어기(530c)로 전달할 수 있다. 메모리 제어기(530c)는 제1 쓰기 요청(W1)에 따라 제2 쓰기 요청(W2)을 생성할 수 있다.Referring to FIGS. 40, 63, 66, and 68, the processor 510 may generate a first write request W1. In step S591, the processor 510 may transfer 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 step S592, the memory controller 530c may transmit the second write request W2 to the medium controller 1230. The second write request W2 may be transferred to the medium controller 1230 as a first command and address CA1. The medium controller 1230 may determine whether a storage space associated with the first command and 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 address CA1 may not be mapped to the volatile memory device 1210 . Also, since the free storage space of the volatile memory device 1210 is insufficient to provide a storage space related to the first command and address CA1 , a write operation to the nonvolatile memory device 1220 may be triggered.

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

S593 단계에서, 매체 제어기(1230)는 선택된 저장 공간에 대한 읽기 요청(R)을 휘발성 메모리 장치(1210)로 전송할 수 있다. 읽기 요청(R)은 제2 커맨드 및 어드레스(CA2) 또는 제2 제어 신호(CTRL2)로서 휘발성 메모리 장치(1210)로 전달될 수 있다.In step S593, the medium 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 transferred to the volatile memory device 1210 as the second command and address CA2 or the second control signal CTRL2.

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

특정한 제어 신호가 활성화되면, 휘발성 메모리 장치(1210)는 저장된 데이터, 예를 들어 내부 스케줄에 의해 지정된 위치(예를 들어, 뱅크)의 데이터 또는 모든 데이터를 출력할 수 있다. 매체 제어기(1230)는 휘발성 메모리 장치(1210)로부터 전달되는 데이터를 저장할 수 있다.When a specific control signal is activated, the volatile memory device 1210 may output stored data, eg, data of a location (eg, bank) designated by an internal schedule or all data. The media controller 1230 may store data transmitted 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 the read request R. Data read from the volatile memory device 1210 may be transferred to the media controller 1230 in step S594. As data of the selected storage space is read from the volatile memory device 1210 , the medium controller 1230 may transmit a third write request W3 to the nonvolatile memory device 1220 in step S594 . The third write request W3 may be transmitted to the nonvolatile memory device 1220 as a third command and address CA3 or a 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 is performing a write operation, the write error signal WCRRC is activated. Therefore, while the nonvolatile memory device 1220 is performing a write operation, the memory controller 530c may repeat write retries of transmitting the restore RE and the second write request W2 in steps S596 to S600. can

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

불휘발성 메모리 장치(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 (step S602), the medium controller 1230 may deactivate the write error signal WCRRC. The medium controller 1230 may map the storage space associated with the first command and address CA1 to the volatile memory device 1210 according to the second write request W2 of step S602.

S603 단계에서, 매체 제어기(1230)는 휘발성 메모리 장치(1210)에 제3 쓰기 요청(W3)을 전송할 수 있다. 제3 쓰기 요청(W3)은 제2 커맨드 및 어드레스(CA2) 또는 제2 제어 신호(CTRL2)로서 전달될 수 있다. 제3 쓰기 요청(W3)에 따라, 휘발성 메모리 장치(1210)는 쓰기 동작(WR)을 수행할 수 있다.In step S603 , the medium 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. According 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 shows a modified example of the read operation of FIG. 68 . Referring to FIGS. 40 , 63 , 66 and 69 , steps S611 to S621 are performed identically to steps S591 to S601 of FIG. 68 . Therefore, redundant descriptions are 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 , the memory controller 530c may transfer the second write request W2 to the medium controller 1230 in step S622 . The medium controller 1230 may transfer the second write request W2 to the volatile memory device 1210 as a third write request W3.

메모리 제어기(530c)로부터 전달되는 데이터는 매체 제어기(1230)에 의해 제어되거나 버퍼링되지 않고, 매체 제어기(1230) 및 제1 내지 제8 데이터 버퍼들(1241~1248)을 통해 휘발성 메모리 장치(1210)로 직접 전달될 수 있다. LRDIMM은 동적 랜덤 액세스 메모리(DRAM)에 기반하므로, 휘발성 메모리 장치(1210)는 메모리 제어기(530a)와 직접 통신할 수 있다.Data transferred from the memory controller 530c is not controlled or buffered by the media controller 1230, but is stored in the volatile memory device 1210 through the media controller 1230 and the first to eighth data buffers 1241 to 1248. can be passed directly to Since the LRDIMM is based on dynamic random access memory (DRAM), the volatile memory device 1210 can communicate directly 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, the medium controller 1230 waits without transmitting the third write request W3 to the nonvolatile memory device 1220 as the read operation RD is completed. can do. After the read operation RD is completed, a second write request W2 may be transmitted from the memory controller 530c in step S597. In response to the second write request W2 of step S597, the medium 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)를 모두 포함할 수 있다.Illustratively, in FIGS. 60 and 61 , the media controller 1230 has been described as including an SPD device 541 and a register updater 542 . Also, in FIG. 63, the medium controller 1230 has been described as including the write error controller 543. The medium controller 1230 according to an embodiment of the present invention may include an SPD device 541, a register updater 542, and a 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 limiting the number of times. Also, the register updater 542 may update the register 532 of the memory controller 530a, 530b or 530c to perform write retries without limiting the number of times.

상술된 실시 예들에서, "블록"의 용어를 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. "블록"은 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, components according to embodiments of the present invention are referred to using the term “block”. "Block" refers to various hardware devices such as IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device), firmware running on hardware devices, applications such as It may be implemented in software or a combination of a hardware device and software. In addition, a “block” may include circuits or IP (Intellectual Property) composed of semiconductor elements in an 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 separately described embodiments and drawings are intended to easily understand the technical spirit of the present invention to those skilled in the art, and are not intended to be separated from each other.

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

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

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220157155A (en) 2021-05-20 2022-11-29 에스케이하이닉스 주식회사 Storage device and operating method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170153826A1 (en) 2015-12-01 2017-06-01 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof

Family Cites Families (6)

* 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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170153826A1 (en) 2015-12-01 2017-06-01 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof

Also Published As

Publication number Publication date
CN110389721A (en) 2019-10-29
KR20190120536A (en) 2019-10-24

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
US20200151104A1 (en) System having persistent memory
EP2348413B1 (en) Controlling memory redundancy in a system
US10990463B2 (en) Semiconductor memory module and memory system including the same
CN105940386B (en) Method, system, and medium for moving data between memories
US7596657B2 (en) Increased storage capacity for solid state disks using data compression
US7574537B2 (en) Method, apparatus, and computer program product for migrating data pages by disabling selected DMA operations in a physical I/O adapter
US10049004B2 (en) Electronic system with memory data protection mechanism and method of operation thereof
US6604171B1 (en) Managing a cache memory
US20040073829A1 (en) Fail-over of multiple memory blocks in multiple memory modules in computer system
US6591335B1 (en) Fault tolerant dual cache system
US20120023302A1 (en) Concurrent Atomic Operations with Page Migration in PCIe
CN104520932A (en) Flash memory controller
TW201502781A (en) Replaying memory transactions while resolving memory access faults
US20050185496A1 (en) Intelligent solid state disk
CN105786400A (en) Heterogeneous hybrid memory module, system and storage method
US8407389B2 (en) Atomic operations with page migration in PCIe
KR102538679B1 (en) Memory system and operating method of memory system
CN100373373C (en) Method and system for dynamic node partitioning utilizing sleep state
JP2005267111A (en) Storage control system and method for controlling storage control system
US20230251931A1 (en) System and device for data recovery for ephemeral storage
US10642727B1 (en) Managing migration events performed by a memory controller
KR102538253B1 (en) Semiconductor memory module and memory system including semiconductor memory module
JP2014010540A (en) Data migration control device, method and system in virtual server environment

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