KR20230083974A - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
KR20230083974A
KR20230083974A KR1020220042010A KR20220042010A KR20230083974A KR 20230083974 A KR20230083974 A KR 20230083974A KR 1020220042010 A KR1020220042010 A KR 1020220042010A KR 20220042010 A KR20220042010 A KR 20220042010A KR 20230083974 A KR20230083974 A KR 20230083974A
Authority
KR
South Korea
Prior art keywords
memory
temperature
memory controller
storage device
volatile
Prior art date
Application number
KR1020220042010A
Other languages
Korean (ko)
Inventor
이경덕
천윤수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/932,073 priority Critical patent/US20230176788A1/en
Priority to EP22211099.1A priority patent/EP4191589A1/en
Priority to CN202211539848.2A priority patent/CN116230033A/en
Publication of KR20230083974A publication Critical patent/KR20230083974A/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0653Monitoring storage devices or systems
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Abstract

스토리지 장치는, 내부 온도 센서를 포함하는 복수의 비휘발성 메모리들; 상기 복수의 비휘발성 메모리들과 제1 인터페이스를 통해 통신하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러; 및 상기 메모리 컨트롤러와 제2 인터페이스를 통해 통신하는 하나 이상의 외부 온도 센서를 포함하고, 상기 메모리 컨트롤러는 상기 하나 이상의 외부 온도 센서로부터 온도 값을 제1 주기로 획득하고, 상기 내부 온도 센서의 온도 값을 상기 제1 주기와 다른 제2 주기로 획득하며, 상기 하나 이상의 외부 온도 센서의 온도 값과 상기 내부 온도 센서의 온도 값의 차이가 제1 임계값 이하인 비휘발성 메모리의 온도 범위를 상기 외부 온도 센서의 온도 값에 기초하여 결정하고, 상기 온도 값의 차이가 상기 제1 임계값을 넘는 비휘발성 메모리의 온도 범위를 상기 내부 온도 센서의 온도 값에 기초하여 결정하며, 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리에 상기 복수의 동작 커맨드들 중에서 상기 타겟 비휘발성 메모리의 온도 범위에 대응하는 동작 커맨드를 제공한다.The storage device includes a plurality of non-volatile memories including an internal temperature sensor; a memory controller communicating with the plurality of nonvolatile memories through a first interface and having a plurality of operation commands defined for each temperature range of the nonvolatile memories; and one or more external temperature sensors communicating with the memory controller through a second interface, wherein the memory controller obtains a temperature value from the one or more external temperature sensors in a first cycle, and transmits a temperature value of the internal temperature sensor to the external temperature sensor. The temperature range of the non-volatile memory is obtained at a second cycle different from the first cycle, and the difference between the temperature value of the at least one external temperature sensor and the temperature value of the internal temperature sensor is equal to or less than a first threshold value, the temperature value of the external temperature sensor Determines a temperature range of the non-volatile memory in which the difference between the temperature values exceeds the first threshold value based on the temperature value of the internal temperature sensor, and determines a target non-volatile memory among the plurality of non-volatile memories. An operation command corresponding to a temperature range of the target nonvolatile memory is provided to the memory from among the plurality of operation commands.

Figure P1020220042010
Figure P1020220042010

Description

스토리지 장치{STORAGE DEVICE}Storage device {STORAGE DEVICE}

본 발명은 비휘발성 메모리를 포함하는 스토리지 장치에 관한 것이다.The present invention relates to a storage device including a non-volatile memory.

반도체 메모리는 휘발성 메모리 장치 및 비휘발성 메모리 장치로 구분된다. 휘발성 메모리 장치는 파워가 차단되면 저장된 데이터를 잃지만, 비휘발성 메모리는 파워가 차단되더라도 저장된 데이터를 보존할 수 있다. 비휘발성 메모리는 ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함한다.Semiconductor memories are classified into volatile memory devices and non-volatile memory devices. A volatile memory device loses stored data when power is cut off, but a non-volatile memory device can preserve stored data even when power is cut off. Non-volatile memory includes read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), flash memory, phase-change RAM (PRAM), magnetic RAM (MRAM), Resistive RAM (RRAM), Ferroelectric RAM (FRAM), and the like.

비휘발성 메모리의 온도에 따라 비휘발성 메모리의 동작 특성이 달라질 수 있다. 비휘발성 메모리의 이상적인 온도와 실장 환경에서의 온도가 다른 경우나, 데이터를 프로그램할 당시의 온도와 상기 데이터를 리드할 때의 온도가 다른 경우 등에서 비휘발성 메모리에서 오류가 빈번하게 발생할 수 있다.Operating characteristics of the non-volatile memory may vary depending on the temperature of the non-volatile memory. Errors may frequently occur in the non-volatile memory when the ideal temperature of the non-volatile memory is different from the temperature in the mounting environment or when the temperature at the time of programming data and the temperature at the time of reading the data are different.

본 발명은 비휘발성 메모리의 온도에 따라 달라지는 동작 특성을 보상할 수 있는 스토리지 장치를 제공하고자 한다.An object of the present invention is to provide a storage device capable of compensating for operating characteristics that vary depending on the temperature of a non-volatile memory.

본 발명은 스토리지 장치의 성능 감소를 최소화하면서 비휘발성 메모리의 온도 값을 결정할 수 있는 스토리지 장치를 제공하고자 한다.An object of the present invention is to provide a storage device capable of determining a temperature value of a non-volatile memory while minimizing performance degradation of the storage device.

본 발명의 실시 예에 따른 스토리지 장치는, 내부 온도 센서를 포함하는 복수의 비휘발성 메모리들; 상기 복수의 비휘발성 메모리들과 제1 인터페이스를 통해 통신하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러; 및 상기 메모리 컨트롤러와 제2 인터페이스를 통해 통신하는 하나 이상의 외부 온도 센서를 포함하고, 상기 메모리 컨트롤러는 상기 하나 이상의 외부 온도 센서로부터 온도 값을 제1 주기로 획득하고, 상기 내부 온도 센서의 온도 값을 상기 제1 주기와 다른 제2 주기로 획득하며, 상기 하나 이상의 외부 온도 센서의 온도 값과 상기 내부 온도 센서의 온도 값의 차이가 제1 임계값 이하인 비휘발성 메모리의 온도 범위를 상기 외부 온도 센서의 온도 값에 기초하여 결정하고, 상기 온도 값의 차이가 상기 제1 임계값을 넘는 비휘발성 메모리의 온도 범위를 상기 내부 온도 센서의 온도 값에 기초하여 결정하며, 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리에 상기 복수의 동작 커맨드들 중에서 상기 타겟 비휘발성 메모리의 온도 범위에 대응하는 동작 커맨드를 제공한다.A storage device according to an embodiment of the present invention includes a plurality of non-volatile memories including an internal temperature sensor; a memory controller communicating with the plurality of nonvolatile memories through a first interface and having a plurality of operation commands defined for each temperature range of the nonvolatile memories; and one or more external temperature sensors communicating with the memory controller through a second interface, wherein the memory controller obtains a temperature value from the one or more external temperature sensors in a first cycle, and transmits a temperature value of the internal temperature sensor to the external temperature sensor. The temperature range of the non-volatile memory is obtained at a second cycle different from the first cycle, and the difference between the temperature value of the at least one external temperature sensor and the temperature value of the internal temperature sensor is equal to or less than a first threshold value, the temperature value of the external temperature sensor Determines a temperature range of the non-volatile memory in which the difference between the temperature values exceeds the first threshold value based on the temperature value of the internal temperature sensor, and determines a target non-volatile memory among the plurality of non-volatile memories. An operation command corresponding to a temperature range of the target nonvolatile memory is provided to the memory from among the plurality of operation commands.

본 발명의 실시 예에 따른 스토리지 장치는, 내부 온도 센서를 포함하는 복수의 비휘발성 메모리들; 및 상기 복수의 비휘발성 메모리들을 제어하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 내부 온도 센서의 온도 값을 참조하여 상기 비휘발성 메모리들 각각의 온도 범위를 결정하고, 주기적으로 상기 비휘발성 메모리들 각각의 입출력 워크로드를 모니터링하고, 정해진 시구간에서 상기 입출력 워크로드의 양이 정해진 범위를 벗어난 제1 비휘발성 메모리의 상기 내부 온도 센서를 참조하여 상기 제1 비휘발성 메모리의 온도 범위를 업데이트하며, 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리에 상기 복수의 동작 커맨드들 중 상기 타겟 비휘발성 메모리의 온도 범위에 대응하는 동작 커맨드를 제공한다.A storage device according to an embodiment of the present invention includes a plurality of non-volatile memories including an internal temperature sensor; and a memory controller that controls the plurality of nonvolatile memories and has a plurality of operation commands defined for each temperature section of the nonvolatile memories, wherein the memory controller refers to the temperature value of the internal temperature sensor to determine the temperature of the nonvolatile memories. determine the temperature range of each of the non-volatile memories, periodically monitor the input/output workload of each of the non-volatile memories, and the internal temperature sensor of the first non-volatile memory when the amount of the input/output workload exceeds the predetermined range in a predetermined time period The temperature range of the first nonvolatile memory is updated with reference to, and an operation command corresponding to the temperature range of the target nonvolatile memory among the plurality of operation commands is sent to a target nonvolatile memory among the plurality of nonvolatile memories. to provide.

본 발명의 실시 예에 따른 스토리지 장치는, 복수의 비휘발성 메모리들; 상기 복수의 비휘발성 메모리들을 제어하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러; 및 상기 메모리 컨트롤러로부터 출력되는 CLE(Command Latch Enable) 신호 및 ALE(Address Latch Enable) 신호를 상기 복수의 비휘발성 메모리들 중 어느 하나로 제공하고, 상기 메모리 컨트롤러와 상기 복수의 비휘발성 메모리들 간 데이터 신호를 송수신하는 채널을 포함하고, 상기 메모리 컨트롤러는 상기 CLE 신호가 인에이블되는 제1 시구간에 상기 복수의 동작 커맨드들 중에서 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리의 온도 값이 속하는 온도 범위에 대응하는 동작 커맨드를 포함하는 데이터 신호를 상기 타겟 비휘발성 메모리로 제공하고, 상기 ALE 신호가 인에이블되는 제2 시구간에 실질 어드레스를 포함하는 데이터 신호를 상기 타겟 비휘발성 메모리로 제공하며, 상기 CLE 신호가 인에이블되는 제3 시구간에 컨펌 커맨드를 포함하는 데이터 신호를 상기 타겟 비휘발성 메모리로 제공한다.A storage device according to an embodiment of the present invention includes a plurality of non-volatile memories; a memory controller that controls the plurality of nonvolatile memories and has a plurality of operation commands defined for each temperature range of the nonvolatile memories; and providing a Command Latch Enable (CLE) signal and an Address Latch Enable (ALE) signal output from the memory controller to one of the plurality of non-volatile memories, and a data signal between the memory controller and the plurality of non-volatile memories. and a channel through which the CLE signal is enabled, wherein the memory controller controls a temperature range in which a temperature value of a target nonvolatile memory among the plurality of nonvolatile memories among the plurality of operation commands belongs in a first time period during which the CLE signal is enabled. A data signal including a corresponding operation command is provided to the target nonvolatile memory, a data signal including a real address is provided to the target nonvolatile memory during a second time period during which the ALE signal is enabled, and the CLE signal A data signal including a confirm command is provided to the target nonvolatile memory during a third time period in which is enabled.

본 발명의 실시 예에 따른 스토리지 장치는, 비휘발성 메모리의 온도 범위별 동작 커맨드를 정의함으로써 비휘발성 메모리의 온도에 따라 달라지는 동작 특성을 보상할 수 있다.The storage device according to an embodiment of the present invention may compensate for operating characteristics that vary depending on the temperature of the nonvolatile memory by defining an operation command for each temperature range of the nonvolatile memory.

본 발명의 실시 예에 따른 스토리지 장치는, 메모리 컨트롤러가 비휘발성 메모리의 온도 값이 속하는 동작 구간에 따라서 결정되는 동작 커맨드를 상기 비휘발성 메모리로 제공하도록 함으로써, 별도의 동작 파라미터를 전달하기 위한 시간을 절감할 수 있다.In a storage device according to an embodiment of the present invention, a time for transmitting a separate operating parameter is reduced by allowing a memory controller to provide an operation command determined according to an operation period to which a temperature value of the non-volatile memory belongs to the non-volatile memory. savings can be made

본 발명의 실시 예에 따른 스토리지 장치는, 메모리 컨트롤러가 비휘발성 메모리의 온도 값을 결정하기 위해 비휘발성 메모리 내부의 온도 센서를 참조하기 위한 입출력 부담을 줄일 수 있으므로, 스토리지 장치의 성능 감소가 최소화될 수 있다. In the storage device according to an embodiment of the present invention, an input/output burden for a memory controller to refer to a temperature sensor inside a non-volatile memory to determine a temperature value of the non-volatile memory can be reduced, thereby minimizing performance degradation of the storage device. can

본 발명이 해결하려는 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명의 실시 예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2 내지 도 4는 비휘발성 메모리를 더욱 자세히 설명하기 위한 도면들이다
도 5는 비휘발성 메모리의 현재 온도에 따라 보상되는 리드 전압을 설명하기 위한 도면이다.
도 6은 메모리 컨트롤러와 비휘발성 메모리를 연결하는 채널을 자세히 설명하기 위한 도면이다.
도 7a 및 도 7b는 비교예와 본 발명의 실시 예에 따른 커맨드 전송 방법을 나타내는 타이밍도들이다.
도 8a 및 도 8b는 본 발명의 실시 예에 따른 동작 커맨드들을 예시하는 도면들이다.
도 9는 본 발명의 실시 예에 따른 비휘발성 메모리별 온도 범위를 예시하는 도면이다.
도 10 내지 도 12는 본 발명의 실시 예들에 따른 스토리지 장치의 동작을 나타내는 흐름도이다.
도 13 및 도 14는 본 발명의 실시 예에 따른 스토리지 장치의 구조를 나타내는 도면들이다.
도 15는 본 발명의 실시 예에 따른 스토리지 장치가 적용된 시스템을 나타내는 도면들이다.
1 is a block diagram illustrating a storage device according to an exemplary embodiment of the present invention.
2 to 4 are diagrams for explaining a non-volatile memory in more detail.
5 is a diagram for explaining a read voltage compensated according to a current temperature of a nonvolatile memory.
6 is a diagram for explaining in detail a channel connecting a memory controller and a nonvolatile memory.
7A and 7B are timing diagrams illustrating a command transmission method according to a comparative example and an embodiment of the present invention.
8A and 8B are diagrams illustrating operation commands according to an embodiment of the present invention.
9 is a diagram illustrating a temperature range for each nonvolatile memory according to an embodiment of the present invention.
10 to 12 are flowcharts illustrating operations of a storage device according to example embodiments.
13 and 14 are diagrams illustrating the structure of a storage device according to an embodiment of the present invention.
15 are diagrams illustrating a system to which a storage device according to an embodiment of the present invention is applied.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 스토리지 장치를 나타내는 블록도이다.1 is a block diagram illustrating a storage device according to an exemplary embodiment of the present invention.

도 1을 참조하면, 스토리지 장치(100)는 메모리 컨트롤러(110), 메모리 장치(120), 외부 온도 센서(130), 제1 인터페이스(101) 및 제2 인터페이스(102)를 포함할 수 있다. 메모리 컨트롤러(110)와 메모리 장치(120)는 제1 인터페이스(101)를 통해 연결될 수 있다. 그리고, 메모리 컨트롤러(110)와 외부 온도 센서(130)는 제2 인터페이스(102)를 통해 연결될 수 있다.Referring to FIG. 1 , a storage device 100 may include a memory controller 110 , a memory device 120 , an external temperature sensor 130 , a first interface 101 and a second interface 102 . The memory controller 110 and the memory device 120 may be connected through the first interface 101 . Also, the memory controller 110 and the external temperature sensor 130 may be connected through the second interface 102 .

메모리 장치(120)는 복수의 비휘발성 메모리들(NVM11-NVM24)을 포함할 수 있다. 비휘발성 메모리들(NVM11-NVM24) 각각은 대응하는 웨이(way)를 통해 복수의 채널들(CH1, CH2) 중 하나에 연결될 수 있다. 예를 들어, 비휘발성 메모리들(NVM11-NVM14)은 웨이들(W11-W14)을 통해 제1 채널(CH1)에 연결되고, 비휘발성 메모리들(NVM21-NVM24)은 웨이들(W21-W24)을 통해 제2 채널(CH2)에 연결될 수 있다. 예시적인 실시 예에서, 비휘발성 메모리들(NVM11-NVM24) 각각은 메모리 컨트롤러(110)로부터의 개별적인 커맨드에 따라 동작할 수 있는 임의의 메모리 단위로 구현될 수 있다. 예를 들어, 비휘발성 메모리들(NVM11-NVM24) 각각은 칩(chip) 또는 다이(die)로 구현될 수 있으나, 본 발명이 이에 제한되는 것은 아니다. 그리고, 스토리지 장치(100)에 포함되는 채널들의 개수 및 각 채널에 연결되는 비휘발성 메모리들의 개수 또한 제한되지 않는다.The memory device 120 may include a plurality of non-volatile memories NVM11 to NVM24. Each of the nonvolatile memories NVM11 to NVM24 may be connected to one of the plurality of channels CH1 and CH2 through a corresponding way. For example, the non-volatile memories NVM11-NVM14 are connected to the first channel CH1 through ways W11-W14, and the non-volatile memories NVM21-NVM24 are connected to ways W21-W24. It can be connected to the second channel (CH2) through. In an exemplary embodiment, each of the nonvolatile memories NVM11 to NVM24 may be implemented as an arbitrary memory unit capable of operating according to individual commands from the memory controller 110 . For example, each of the nonvolatile memories NVM11 to NVM24 may be implemented as a chip or die, but the present invention is not limited thereto. Also, the number of channels included in the storage device 100 and the number of non-volatile memories connected to each channel are not limited.

메모리 컨트롤러(110)는 복수의 채널들(CH1, CH2)을 통해 메모리 장치(120)와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 채널들(CH1, CH2)을 통해 메모리 장치(120)로 커맨드들, 어드레스들 및 데이터를 전송하거나, 메모리 장치(120)로부터 데이터를 수신할 수 있다.The memory controller 110 may transmit and receive signals to and from the memory device 120 through a plurality of channels CH1 and CH2. For example, the memory controller 110 may transmit commands, addresses, and data to the memory device 120 or receive data from the memory device 120 through channels CH1 and CH2 .

메모리 컨트롤러(110)는 각각의 채널을 통해 해당 채널에 연결된 비휘발성 메모리들(NVM11-NVM24) 중 하나를 선택하고, 선택된 비휘발성 메모리와 신호들을 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제1 채널(CH1)에 연결된 비휘발성 메모리들(NVM11-NVM24) 중 비휘발성 메모리(NVM11)를 선택할 수 있다. 메모리 컨트롤러(110)는 제1 채널(CH1)을 통해 선택된 비휘발성 메모리(NVM11)로 커맨드, 어드레스 및 데이터를 전송하거나, 선택된 비휘발성 메모리(NVM11)로부터 데이터를 수신할 수 있다.The memory controller 110 may select one of the nonvolatile memories (NVM11 to NVM24) connected to the corresponding channel through each channel and transmit/receive signals with the selected nonvolatile memory. For example, the memory controller 110 may select the nonvolatile memory NVM11 among the nonvolatile memories NVM11 to NVM24 connected to the first channel CH1 . The memory controller 110 may transmit commands, addresses, and data to the selected non-volatile memory NVM11 or receive data from the selected non-volatile memory NVM11 through the first channel CH1.

메모리 컨트롤러(110)는 서로 다른 채널들을 통해 메모리 장치(120)와 신호들을 병렬적으로 송수신할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제1 채널(CH1)을 통해 메모리 장치(120)로 커맨드를 전송하는 동안 제2 채널(CH2)을 통해 메모리 장치(120)로 다른 커맨드를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제1 채널(CH1)을 통해 메모리 장치(120)로부터 데이터를 수신하는 동안, 제2 채널(CH2)을 통해 메모리 장치(120)로부터 다른 데이터를 수신할 수 있다.The memory controller 110 may transmit and receive signals to and from the memory device 120 in parallel through different channels. For example, while transmitting a command to the memory device 120 through a first channel CH1 , the memory controller 110 may transmit another command to the memory device 120 through a second channel CH2 . For example, while receiving data from the memory device 120 through a first channel CH1, the memory controller 110 may receive other data from the memory device 120 through a second channel CH2. there is.

동일한 채널을 통해 메모리 컨트롤러(110)와 연결된 비휘발성 메모리들 각각은 병렬적으로 내부 동작을 수행할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제1 채널(CH1)을 통해 비휘발성 메모리들(NVM11-NVM14)로 커맨드 및 어드레스를 순차적으로 전송할 수 있다. 비휘발성 메모리들(NVM11-NVM14)로 커맨드 및 어드레스가 전송되면, 비휘발성 메모리들(NVM11-NVM14) 각각은 상기 커맨드에 따른 동작을 병렬적으로 수행할 수 있다.Each of the non-volatile memories connected to the memory controller 110 through the same channel may perform internal operations in parallel. For example, the memory controller 110 may sequentially transmit commands and addresses to the nonvolatile memories NVM11 to NVM14 through the first channel CH1. When a command and an address are transmitted to the nonvolatile memories NVM11 to NVM14, each of the nonvolatile memories NVM11 to NVM14 may perform an operation according to the command in parallel.

메모리 컨트롤러(110)는 메모리 장치(120)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(110)는 채널들(CH1, CH2)로 신호를 전송하여 채널들(CH1, CH2)에 연결된 비휘발성 메모리들(NVM11-NVM24) 각각을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제1 채널(CH1)로 커맨드 및 어드레스를 전송함으로써 비휘발성 메모리들(NVM11-NVM14) 중 선택된 하나를 제어할 수 있다.The memory controller 110 may control overall operations of the memory device 120 . The memory controller 110 may control each of the nonvolatile memories NVM11 to NVM24 connected to the channels CH1 and CH2 by transmitting signals to the channels CH1 and CH2. For example, the memory controller 110 may control a selected one of the nonvolatile memories NVM11 to NVM14 by transmitting a command and an address through the first channel CH1.

비휘발성 메모리들(NVM11-NVM24) 각각은 메모리 컨트롤러(110)의 제어에 응하여 동작할 수 있다. 예를 들어, 비휘발성 메모리(NVM11)는 제1 채널(CH1)로 제공되는 커맨드 및 어드레스에 따라 데이터를 프로그램할 수 있다. 예를 들어, 비휘발성 메모리(NVM21)는 제2 채널(CH2)로 제공되는 커맨드 및 어드레스에 따라 데이터를 독출하고, 독출된 데이터를 메모리 컨트롤러(110)로 전송할 수 있다.Each of the nonvolatile memories NVM11 to NVM24 may operate in response to control of the memory controller 110 . For example, the nonvolatile memory NVM11 may program data according to a command and an address provided through the first channel CH1. For example, the nonvolatile memory NVM21 may read data according to a command and an address provided through the second channel CH2 and transmit the read data to the memory controller 110 .

비휘발성 메모리들(NVM11-NVM24)은 비휘발성 메모리들(NVM11-NVM24)의 온도 값에 따라 다른 동작 특성을 가질 수 있다. 예를 들어, 비휘발성 메모리들(NVM11-NVM24)에 동일한 동작 파라미터를 사용하여 메모리 셀들에 대한 프로그램 동작을 수행하더라도, 메모리 셀들의 문턱 전압 분포들은 프로그램 동작 시의 비휘발성 메모리들(NVM11-NVM24)의 온도 값에 따라 달라질 수 있다. 그리고, 비휘발성 메모리들(NVM11-NVM24)에 동일한 동작 파라미터를 사용하여 동일한 문턱 전압을 갖는 메모리 셀들에 대한 리드 동작을 수행하더라도, 비휘발성 메모리들(NVM11-NVM24)의 프로그램 동작 당시의 온도 값과 리드 동작 시의 온도 값의 차이에 따라 리드 동작 결과가 달라질 수 있다. The nonvolatile memories NVM11 to NVM24 may have different operating characteristics according to temperature values of the nonvolatile memories NVM11 to NVM24. For example, even if a program operation is performed on memory cells using the same operating parameters for the nonvolatile memories (NVM11 to NVM24), the threshold voltage distributions of the memory cells are different from those of the nonvolatile memories (NVM11 to NVM24) during the program operation. may vary depending on the temperature value of In addition, even if a read operation is performed on memory cells having the same threshold voltage using the same operating parameter for the nonvolatile memories (NVM11 to NVM24), the temperature value at the time of the program operation of the nonvolatile memories (NVM11 to NVM24) A read operation result may vary according to a difference in temperature value during the read operation.

비휘발성 메모리들(NVM11-NVM24)에 프로그램 동작 또는 리드 동작이 수행될 때 온도 센서를 통해 측정된 비휘발성 메모리들(NVM11-NVM24)의 온도 값에 따라 동작 특성을 보상할 수 있다면, 비휘발성 메모리들(NVM11-NVM24)의 에러 발생이 감소할 수 있다. 비휘발성 메모리들(NVM11-NVM24) 각각은 내부 온도 센서(NTS)를 포함할 수 있으며, 내부 온도 센서(NTS)에서 측정된 온도는 비휘발성 메모리들(NVM11-NVM24)의 온도 값을 결정하기 위해 이용될 수 있다.If the operating characteristics of the nonvolatile memories (NVM11 to NVM24) can be compensated according to the temperature values of the nonvolatile memories (NVM11 to NVM24) measured by the temperature sensor when a program operation or a read operation is performed on the nonvolatile memories (NVM11 to NVM24), the nonvolatile memory Error occurrence of NVM11-NVM24 may be reduced. Each of the non-volatile memories NVM11-NVM24 may include an internal temperature sensor NTS, and the temperature measured by the internal temperature sensor NTS is used to determine the temperature value of the non-volatile memories NVM11-NVM24. can be used

한편, 비휘발성 메모리들(NVM11-NVM24)의 온도 값에 따른 동작 특성을 보상하기 위해서 메모리 컨트롤러(110)와 메모리 장치(120) 간 다량의 통신이 유발된다면 스토리지 장치(100)의 성능이 저하될 수 있다. 예를 들어, 메모리 컨트롤러(110)가 내부 온도 센서(NTS)에서 측정된 비휘발성 메모리들(NVM11-NVM24)의 온도 값을 획득하기 위해서, 채널들(CH1, CH2)을 이용하여 비휘발성 메모리들(NVM11-NVM24)과 통신해야 할 수 있다. 그리고, 메모리 컨트롤러(110)가 채널들(CH1, CH2)을 통해 비휘발성 메모리들(NVM11-NVM24)로 커맨드들 및 어드레스들을 전송할 때 비휘발성 메모리들(NVM11-NVM24)의 온도 값에 따라 결정된 동작 파라미터들을 함께 전송해야 할 수 있다. 채널들(CH1, CH2)을 통해 온도 값을 전송하고, 동작 파라미터들을 전송하기 위해 소요되는 시간만큼 커맨드에 대한 처리 시간이 지연될 수 있다. 즉, 온도 값을 전송하고 동작 파라미터들을 전송하기 위해 채널들(CH1, CH2)이 점유되는 시간만큼, 메모리 컨트롤러(110)에서 요청되는 커맨드에 대한 처리 시간이 지연될 수 있다.Meanwhile, if a large amount of communication is induced between the memory controller 110 and the memory device 120 to compensate for the operating characteristics of the non-volatile memories NVM11 to NVM24 according to temperature values, the performance of the storage device 100 may deteriorate. can For example, the memory controller 110 uses the channels CH1 and CH2 to acquire the temperature values of the nonvolatile memories NVM11 to NVM24 measured by the internal temperature sensor NTS. (NVM11-NVM24). Also, when the memory controller 110 transmits commands and addresses to the nonvolatile memories NVM11-NVM24 through the channels CH1 and CH2, an operation determined according to the temperature values of the nonvolatile memories NVM11-NVM24. Parameters may need to be sent together. The processing time for the command may be delayed by the time required to transmit the temperature value and the operating parameters through the channels CH1 and CH2. That is, the processing time for the command requested by the memory controller 110 may be delayed by the time during which the channels CH1 and CH2 are occupied for transmitting the temperature value and operating parameters.

따라서, 스토리지 장치(100)는 성능 저하를 최소화하면서 비휘발성 메모리들(NVM11-NVM24)의 온도 값에 따른 동작 특성을 보상할 수 있을 것이 요구된다.Accordingly, the storage device 100 is required to be able to compensate operating characteristics according to temperature values of the nonvolatile memories NVM11 to NVM24 while minimizing performance degradation.

본 발명의 실시 예에 따르면, 온도 범위별로 다른 동작 커맨드들이 정의될 수 있다. 메모리 컨트롤러(110)는 상기 동작 커맨드들 중에서, 커맨드 동작을 지시할 대상이 되는 타겟 비휘발성 메모리의 온도 값이 속하는 온도 범위에 따라 정해진 동작 커맨드를 상기 타겟 비휘발성 메모리로 제공할 수 있다. 상기 타겟 비휘발성 메모리는 상기 동작 커맨드에 따라 다른 동작 파라미터를 이용하여 커맨드 동작을 수행할 수 있다. 본 발명의 실시 예에 따르면, 메모리 컨트롤러(110)가 동작 커맨드를 전송할 때 현재 온도에 따라 별도의 동작 파라미터들을 전송하지 않을 수 있으므로, 커맨드에 대한 처리 시간이 단축될 수 있다. According to an embodiment of the present invention, different operation commands may be defined for each temperature range. Among the operation commands, the memory controller 110 may provide an operation command determined according to a temperature range to which a temperature value of the target non-volatile memory to which a command operation is to be instructed belongs to the target non-volatile memory. The target nonvolatile memory may perform a command operation using different operating parameters according to the operation command. According to an embodiment of the present invention, when the memory controller 110 transmits an operating command, separate operating parameters may not be transmitted according to the current temperature, and thus the command processing time may be reduced.

본 발명의 실시 예에 따르면, 스토리지 장치(100)는 비휘발성 메모리들(NVM11-NVM24) 외부에 위치한 외부 온도 센서(130)를 포함할 수 있다. 메모리 컨트롤러(110)가 내부 온도 센서(NTS)로부터 온도 값을 획득하기 위해서는, 채널을 통해 비휘발성 메모리와 통신해야 할 수 있다. 메모리 컨트롤러(110)가 채널을 통해 비휘발성 메모리로부터 온도 값을 획득하는 동안에는, 비휘발성 메모리와 신호를 송수신할 수 없기 때문에 스토리지 장치(100)의 성능이 저하될 수 있다. According to an embodiment of the present invention, the storage device 100 may include an external temperature sensor 130 located outside the nonvolatile memories NVM11 to NVM24. In order for the memory controller 110 to obtain a temperature value from the internal temperature sensor NTS, it may need to communicate with the non-volatile memory through a channel. While the memory controller 110 acquires a temperature value from the nonvolatile memory through a channel, performance of the storage device 100 may be degraded because signals cannot be transmitted and received to and from the nonvolatile memory.

반면에, 메모리 컨트롤러(110)는 채널과는 별개의 제2 인터페이스(102)를 통해서 외부 온도 센서(130)로부터 온도 값을 획득할 수 있다. 예를 들어, 제2 인터페이스(102)는 I2C(Inter-Integrated Circuit) 통신을 통해 메모리 컨트롤러(110)와 외부 온도 센서(130) 간 신호를 송수신할 수 있다. 메모리 컨트롤러(110)가 외부 온도 센서(130)로부터 온도 값을 획득하는 동안에도 비휘발성 메모리와 신호를 송수신할 수 있기 때문에, 외부 온도 센서(130)로부터 온도 값을 획득하는 것은 스토리지 장치(100)의 성능에 영향을 거의 미치지 않을 수 있다. On the other hand, the memory controller 110 may obtain a temperature value from the external temperature sensor 130 through the second interface 102 separate from the channel. For example, the second interface 102 may transmit and receive signals between the memory controller 110 and the external temperature sensor 130 through inter-integrated circuit (I2C) communication. Since the memory controller 110 can transmit/receive signals to and from the non-volatile memory even while acquiring the temperature value from the external temperature sensor 130, acquiring the temperature value from the external temperature sensor 130 is may have little effect on performance.

본 발명의 실시 예에 따르면, 메모리 컨트롤러(110)는 외부 온도 센서(130)의 온도 값에 기초하여 비휘발성 메모리들(NVM11-NVM24)의 온도 값을 추정하거나, 메모리 컨트롤러(110)와 비휘발성 메모리들(NVM11-NVM24)간의 입출력 워크로드에 기초하여 비휘발성 메모리들(NVM11-NVM24)의 온도 값을 추정할 수 있다. 채널들(CH1-CH2)을 통해 내부 온도 센서(NTS)로부터 비휘발성 메모리들(NVM11-NVM24)의 온도 값을 획득하기 위해 소요되는 시간이 절감될 수 있으므로, 스토리지 장치(100)의 성능이 개선될 수 있다.According to an embodiment of the present invention, the memory controller 110 estimates the temperature values of the non-volatile memories NVM11 to NVM24 based on the temperature values of the external temperature sensor 130 or the memory controller 110 and the non-volatile memories. Temperature values of the non-volatile memories NVM11 to NVM24 may be estimated based on an input/output workload between the memories NVM11 to NVM24. The performance of the storage device 100 is improved because the time required to acquire the temperature values of the nonvolatile memories NVM11 to NVM24 from the internal temperature sensor NTS through the channels CH1 to CH2 can be reduced. It can be.

도 2 내지 도 4는 비휘발성 메모리를 더욱 자세히 설명하기 위한 도면들이다2 to 4 are diagrams for explaining a non-volatile memory in more detail.

도 2는 비휘발성 메모리를 나타내는 예시적인 블록도이다. 도 2를 참조하면, 비휘발성 메모리(300)는 제어 로직 회로(320), 메모리 셀 어레이(330), 페이지 버퍼(340), 전압 생성기(350), 및 로우 디코더(360)를 포함할 수 있다. 도 2에는 도시되지 않았으나, 비휘발성 메모리(300)는 외부로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 외부와 데이터(DATA)를 주고받기 위한 메모리 인터페이스 회로를 더 포함할 수 있고, 또한 컬럼 로직, 프리-디코더, 온도 센서, 커맨드 디코더, 어드레스 디코더 등을 더 포함할 수 있다.2 is an exemplary block diagram illustrating a non-volatile memory. Referring to FIG. 2 , the nonvolatile memory 300 may include a control logic circuit 320, a memory cell array 330, a page buffer 340, a voltage generator 350, and a row decoder 360. . Although not shown in FIG. 2 , the nonvolatile memory 300 may further include a memory interface circuit for receiving a command CMD and an address ADDR from the outside and exchanging data DATA with the outside. Column logic, a pre-decoder, a temperature sensor, a command decoder, an address decoder, and the like may be further included.

제어 로직 회로(320)는 비휘발성 메모리(300) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(320)는 메모리 인터페이스 회로(310)로부터의 커맨드(CMD) 및/또는 어드레스(ADDR)에 응답하여 각종 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(320)는 전압 제어 신호(CTRL_vol), 로우 어드레스(X-ADDR), 및 컬럼 어드레스(Y-ADDR)를 출력할 수 있다.The control logic circuit 320 may generally control various operations within the nonvolatile memory 300 . The control logic circuit 320 may output various control signals in response to the command CMD and/or the address ADDR from the memory interface circuit 310 . For example, the control logic circuit 320 may output a voltage control signal CTRL_vol, a row address X-ADDR, and a column address Y-ADDR.

메모리 셀 어레이(330)는 복수의 메모리 블록들(BLK1 내지 BLKz)을 포함할 수 있고(z는 양의 정수), 복수의 메모리 블록들(BLK1 내지 BLKz) 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(330)는 비트 라인들(BL)을 통해 페이지 버퍼부(340)에 연결될 수 있고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(360)에 연결될 수 있다.The memory cell array 330 may include a plurality of memory blocks BLK1 to BLKz (where z is a positive integer), and each of the plurality of memory blocks BLK1 to BLKz may include a plurality of memory cells. there is. The memory cell array 330 may be connected to the page buffer unit 340 through bit lines BL, and may include word lines WL, string select lines SSL, and ground select lines GSL. It can be connected to the row decoder 360 through

예시적인 실시 예에서, 메모리 셀 어레이(330)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있다. 각 낸드 스트링은 기판 위에 수직으로 적층된 워드 라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 본 명세서에 인용 형식으로 결합된다. 예시적인 실시 예에서, 메모리 셀 어레이(330)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.In an exemplary embodiment, the memory cell array 330 may include a 3D memory cell array, and the 3D memory cell array may include a plurality of NAND strings. Each NAND string may include memory cells respectively connected to word lines vertically stacked on a substrate. U.S. Patent Publication No. 7,679,133, U.S. Patent Publication No. 8,553,466, U.S. Patent Publication No. 8,654,587, U.S. Patent Publication No. 8,559,235, and U.S. Patent Application Publication No. 2011/0233648 are incorporated herein by reference. are combined In an exemplary embodiment, the memory cell array 330 may include a 2D memory cell array, and the 2D memory cell array may include a plurality of NAND strings disposed along row and column directions.

페이지 버퍼(340)는 복수의 페이지 버퍼들(PB1 내지 PBn)을 포함할 수 있고(n은 3 이상의 정수), 복수의 페이지 버퍼들(PB1 내지 PBn)은 복수의 비트 라인들(BL)을 통해 메모리 셀들과 각각 연결될 수 있다. 페이지 버퍼(340)는 컬럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 적어도 하나의 비트 라인을 선택할 수 있다. 페이지 버퍼(340)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 프로그램 동작 시, 페이지 버퍼(340)는 선택된 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 독출 동작 시, 페이지 버퍼(340)는 선택된 비트 라인의 전류 또는 전압을 감지하여 메모리 셀에 저장된 데이터를 감지할 수 있다.The page buffer 340 may include a plurality of page buffers PB1 to PBn (n is an integer greater than or equal to 3), and the plurality of page buffers PB1 to PBn may include a plurality of bit lines BL. Each of the memory cells may be connected. The page buffer 340 may select at least one bit line from among the bit lines BL in response to the column address Y-ADDR. The page buffer 340 may operate as a write driver or a sense amplifier according to an operation mode. For example, during a program operation, the page buffer 340 may apply a bit line voltage corresponding to data to be programmed to a selected bit line. During a read operation, the page buffer 340 may detect data stored in a memory cell by sensing a current or voltage of a selected bit line.

전압 생성기(350)는 전압 제어 신호(CTRL_vol)를 기반으로 프로그램, 독출, 및 소거 동작들을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(350)는 워드 라인 전압(VWL)으로서 프로그램 전압, 독출 전압, 프로그램 검증 전압, 소거 전압 등을 생성할 수 있다.The voltage generator 350 may generate various types of voltages for performing program, read, and erase operations based on the voltage control signal CTRL_vol. For example, the voltage generator 350 may generate a program voltage, a read voltage, a program verify voltage, an erase voltage, and the like as the word line voltage VWL.

로우 디코더(360)는 로우 어드레스(X-ADDR)에 응답하여 복수의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다. 예를 들어, 프로그램 동작 시, 로우 디코더(360)는 선택된 워드 라인으로 프로그램 전압 및 프로그램 검증 전압을 인가하고, 독출 동작 시, 선택된 워드 라인으로 독출 전압을 인가할 수 있다.The row decoder 360 may select one of the plurality of word lines WL and select one of the plurality of string select lines SSL in response to the row address X-ADDR. For example, during a program operation, the row decoder 360 may apply a program voltage and a program verify voltage to the selected word line, and during a read operation, may apply a read voltage to the selected word line.

도 3은 본 발명의 일 실시 예에 따른 스토리지 장치에 적용될 수 있는 3D V-NAND 구조에 대해 설명하기 위한 도면이다. 스토리지 장치의 비휘발성 메모리가 3D V-NAND 타입의 플래시 메모리로 구현될 경우, 비휘발성 메모리를 구성하는 복수의 메모리 블록 각각은 도 3에 도시된 바와 같은 등가 회로로 표현될 수 있다.3 is a diagram for explaining a 3D V-NAND structure applicable to a storage device according to an embodiment of the present invention. When the non-volatile memory of the storage device is implemented as a 3D V-NAND type flash memory, each of a plurality of memory blocks constituting the non-volatile memory may be expressed as an equivalent circuit as shown in FIG. 3 .

도 3에 도시된 메모리 블록(BLKi)은 기판 상에 삼차원 구조로 형성되는 삼차원 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 낸드 스트링들은 상기 기판과 수직한 방향으로 형성될 수 있다.The memory block BLKi shown in FIG. 3 represents a three-dimensional memory block formed in a three-dimensional structure on a substrate. For example, a plurality of memory NAND strings included in the memory block BLKi may be formed in a direction perpendicular to the substrate.

도 3을 참조하면, 메모리 블록(BLKi)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링들(NS11~NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 도 3에는 복수의 메모리 낸드 스트링들(NS11~NS33) 각각이 8개의 메모리 셀들(MC1, MC2, ..., MC8)을 포함하는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.Referring to FIG. 3 , the memory block BLKi may include a plurality of memory NAND strings NS11 to NS33 connected between the bit lines BL1 , BL2 , and BL3 and the common source line CSL. Each of the plurality of memory NAND strings NS11 to NS33 may include a string select transistor SST, a plurality of memory cells MC1, MC2, ..., MC8, and a ground select transistor GST. 3 illustrates that each of the plurality of memory NAND strings NS11 to NS33 includes eight memory cells MC1, MC2, ..., MC8, but is not necessarily limited thereto.

스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 상응하는 게이트 라인(GTL1, GTL2, ..., GTL8)에 연결될 수 있다. 게이트 라인(GTL1, GTL2, ..., GTL8)은 워드 라인들에 해당할 수 있으며, 게이트 라인(GTL1, GTL2, ..., GTL8)의 일부는 더미 워드 라인에 해당할 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인들(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다.The string select transistor SST may be connected to corresponding string select lines SSL1 , SSL2 , and SSL3 . The plurality of memory cells MC1 , MC2 , ..., MC8 may be connected to corresponding gate lines GTL1 , GTL2 , ... , and GTL8 , respectively. The gate lines GTL1 , GTL2 , ..., GTL8 may correspond to word lines, and some of the gate lines GTL1 , GTL2 , ... , GTL8 may correspond to dummy word lines. The ground select transistor GST may be connected to corresponding ground select lines GSL1 , GSL2 , and GSL3 . The string select transistor SST may be connected to corresponding bit lines BL1 , BL2 , and BL3 , and the ground select transistor GST may be connected to the common source line CSL.

동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 각각 분리될 수 있다. 도 3에는 메모리 블록(BLKi)이 여덟 개의 게이트 라인(GTL1, GTL2, ..., GTL8) 및 세 개의 비트 라인들(BL1, BL2, BL3)에 연결되는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.Word lines (eg, WL1) having the same height may be commonly connected, and ground select lines GSL1, GSL2, and GSL3 and string select lines SSL1, SSL2, and SSL3 may be separated from each other. 3 shows that the memory block BLKi is connected to eight gate lines GTL1, GTL2, ..., GTL8 and three bit lines BL1, BL2, BL3, but is not necessarily limited thereto. no.

메모리 블록(BLKi)에 포함되는 메모리 셀들이 저장하는 비트 수에 따라 메모리 블록(BLKi)은 서로 다른 비트 밀도를 가질 수 있다.The memory block BLKi may have different bit densities according to the number of bits stored in the memory cells included in the memory block BLKi.

도 4는 메모리 셀의 문턱전압 분포들을 설명하기 위한 그래프이다.4 is a graph for explaining threshold voltage distributions of a memory cell.

다수의 메모리 셀들 간의 미세한 전기적 특성의 차이로 인해, 동일한 데이터가 프로그램된 메모리 셀들 각각의 문턱전압은 일정한 범위의 문턱전압 분포를 형성한다. 도 4는 메모리 셀들이 3비트 데이터를 저장하는 TLC(Triple Level Cell)인 경우에, 메모리 셀들이 가질 수 있는 문턱전압 분포를 예시한다. 도 4를 참조하면, 그래프의 가로 축은 문턱전압의 크기, 세로 축은 메모리 셀들의 개수를 나타낸다.Due to minute differences in electrical characteristics between a plurality of memory cells, the threshold voltage of each memory cell programmed with the same data forms a threshold voltage distribution within a certain range. 4 illustrates a threshold voltage distribution that memory cells may have when the memory cells are triple level cells (TLCs) that store 3-bit data. Referring to FIG. 4 , the horizontal axis of the graph represents the magnitude of the threshold voltage, and the vertical axis represents the number of memory cells.

메모리 셀은 이레이즈 상태(E) 및 제1 내지 제7 프로그램 상태들(P1-P7) 중 어느 하나의 상태에 해당하는 문턱전압을 가질 수 있다. 제1 내지 제7 리드 전압들(Vc1~Vc7)은 각각의 상태들을 구분하기 위한 리드 전압들일 수 있다. 예를 들어, 메모리 셀들이 연결된 워드라인에 제1 리드 전압(Vc1)을 인가하면, 제1 리드 전압(Vc1)보다 낮은 문턱전압을 갖는 제1 메모리 셀들이 연결된 비트라인에는 전류가 원활하게 흐를 수 있다. 즉, 상기 제1 메모리 셀들은 온 셀(on cell)로 리드될 수 있다. 반면에, 제1 리드 전압(Vc1)보다 높은 문턱전압을 갖는 제2 메모리 셀들이 연결된 비트라인에는 전류가 흐르지 않을 수 있다. 즉, 상기 제2 메모리 셀들은 오프 셀(off cell)로 리드될 수 있다. The memory cell may have a threshold voltage corresponding to one of the erase state E and the first to seventh program states P1 to P7. The first to seventh read voltages Vc1 to Vc7 may be read voltages for distinguishing respective states. For example, when a first read voltage Vc1 is applied to a word line to which memory cells are connected, a current having a lower threshold voltage than the first read voltage Vc1 may flow smoothly to a bit line to which the first memory cells are connected. there is. That is, the first memory cells may be read on-cell. On the other hand, current may not flow in the bit line to which the second memory cells having a threshold voltage higher than the first read voltage Vc1 are connected. That is, the second memory cells may be read as off cells.

메모리 셀들에 제1 리드 전압(Vc1)을 인가하면 이레이즈 상태(E)와 나머지 상태들이 구분될 수 있다. 마찬가지로, 제2 내지 제7 리드 전압들(Vc2-Vc7)을 더 인가하면, 이레이즈 상태(E)와 프로그램 상태들(P1-P7)이 모두 구분될 수 있다.When the first read voltage Vc1 is applied to the memory cells, the erase state E and other states can be distinguished. Similarly, when the second to seventh read voltages Vc2 to Vc7 are further applied, both the erase state E and the program states P1 to P7 can be distinguished.

한편, 비휘발성 메모리의 온도에 따라 메모리 셀들의 동작 특성이 달라질 수 있다. 예를 들어, 동일한 문턱 전압을 갖는 메모리 셀들을 리드하기 위해 워드라인에 동일한 레벨을 갖는 리드 전압을 인가하는 경우, 비휘발성 메모리의 온도가 더 높을수록 비트라인에 더 많은 양의 전류가 흐를 수 있다. 이와 같은 동작 특성의 변화는 비휘발성 메모리의 리드 동작 결과에 영향을 줄 수 있으며, 리드 동작과 유사한 방법으로 수행되는 검증(Verify) 동작을 수반하는 프로그램 동작 결과에도 영향을 줄 수 있다.Meanwhile, operating characteristics of memory cells may vary depending on the temperature of the nonvolatile memory. For example, when a read voltage having the same level is applied to a word line in order to read memory cells having the same threshold voltage, a higher amount of current may flow through the bit line as the temperature of the nonvolatile memory increases. . Such a change in operating characteristics may affect a read operation result of the non-volatile memory, and may also affect a program operation result accompanying a verify operation performed in a similar manner to the read operation.

도 5는 비휘발성 메모리의 현재 온도에 따라 보상되는 리드 전압을 설명하기 위한 도면이다.5 is a diagram for explaining a read voltage compensated according to a current temperature of a nonvolatile memory.

도 5를 참조하면, 그래프의 가로 축은 문턱전압의 크기, 세로 축은 메모리 셀들의 개수를 나타낸다. 도 5는 서로 인접한 임의의 두 개의 문턱전압 상태(PA, PB) 및 문턱전압 상태(PA, PB)를 구분하기 위한 리드 전압(Vc)의 디폴트 레벨을 도시한다.Referring to FIG. 5 , the horizontal axis of the graph represents the magnitude of the threshold voltage, and the vertical axis represents the number of memory cells. 5 illustrates a default level of a read voltage Vc for distinguishing two arbitrary threshold voltage states PA and PB adjacent to each other and threshold voltage states PA and PB.

비휘발성 메모리의 온도가 디폴트 온도보다 높아지면 비트라인에 더 많은 양의 전류가 흐를 수 있으며, 문턱전압이 리드 전압(Vc)의 디폴트 레벨보다 높은 메모리 셀들이 온 셀로 잘못 리드될 수 있다. 따라서, 비휘발성 메모리의 온도가 디폴트 온도보다 높은 경우 디폴트 레벨에 제1 오프셋(O1)이 반영된 리드 전압(Vc)을 인가함으로써 비휘발성 메모리의 온도에 따라 달라지는 동작 특성을 보상할 수 있다. 반면에, 비휘발성 메모리의 온도가 디폴트 온도보다 낮아지면 비트라인에 더 적은 양의 전류가 흐를 수 있으며, 문턱전압이 리드 전압(Vc)의 디폴트 레벨보다 낮은 메모리 셀들이 오프 셀로 잘못 리드될 수 있다. 따라서, 비휘발성 메모리의 온도가 디폴트 온도보다 낮은 경우 디폴트 레벨에 제2 오프셋(O2)이 반영된 리드 전압(Vc)을 인가함으로써 동작 특성을 보상할 수 있다.If the temperature of the nonvolatile memory is higher than the default temperature, a larger amount of current may flow through the bit line, and memory cells having a threshold voltage higher than the default level of the read voltage Vc may be incorrectly read as on-cell. Accordingly, when the temperature of the nonvolatile memory is higher than the default temperature, operating characteristics that vary depending on the temperature of the nonvolatile memory may be compensated for by applying the read voltage Vc to which the first offset O1 is reflected at the default level. On the other hand, if the temperature of the non-volatile memory is lower than the default temperature, a smaller amount of current may flow through the bit line, and memory cells having a threshold voltage lower than the default level of the read voltage Vc may be incorrectly read as off cells. . Accordingly, when the temperature of the non-volatile memory is lower than the default temperature, operating characteristics may be compensated by applying the read voltage Vc to which the second offset O2 is reflected at the default level.

본 발명의 실시 예에 따르면, 온도 범위에 따라 달라지는 동작 커맨드들이 정의될 수 있다. 메모리 컨트롤러는 타겟 비휘발성 메모리의 온도 값이 속하는 온도 범위에 대응하는 동작 커맨드를 상기 타겟 비휘발성 메모리로 전송할 수 있다. 상기 타겟 비휘발성 메모리는, 상기 동작 커맨드를 해석함으로써 온도에 따라 다른 동작 파라미터를 이용하여 동작을 수행할 수 있다. 따라서, 온도에 따라 달라지는 비휘발성 메모리의 동작 특성이 보상될 수 있다. 예를 들어, 비휘발성 메모리의 메모리 셀들이 프로그램될 당시의 온도에 관계없이, 메모리 셀들은 고른 문턱전압 분포를 가질 수 있다. 그리고, 메모리 컨트롤러는 타겟 비휘발성 메모리로 리드 동작을 지시할 때, 메모리 셀들이 프로그램될 당시의 온도와 리드될 때의 온도 차이를 매번 연산하는 대신, 메모리 셀들을 리드할 때의 비휘발성 메모리의 온도를 기준으로 결정된 동작 커맨드를 타겟 비휘발성 메모리로 전송함으로써 오류 없이 데이터를 리드할 수 있다.According to an embodiment of the present invention, operation commands that vary according to a temperature range may be defined. The memory controller may transmit an operation command corresponding to a temperature range to which a temperature value of the target nonvolatile memory belongs to the target nonvolatile memory. The target nonvolatile memory may perform an operation using different operating parameters according to temperature by interpreting the operating command. Accordingly, operating characteristics of the non-volatile memory that vary depending on temperature can be compensated for. For example, memory cells of a nonvolatile memory may have a uniform threshold voltage distribution regardless of a temperature at which memory cells are programmed. Also, when the memory controller instructs a read operation to the target nonvolatile memory, the temperature of the nonvolatile memory when the memory cells are read, instead of calculating the difference between the temperature when the memory cells are programmed and the temperature when the memory cells are read each time. Data can be read without error by transmitting the operation command determined based on the target non-volatile memory to the target non-volatile memory.

이하에서, 도 6 내지 도 8b를 참조하여 본 발명의 실시 예에 따라 메모리 컨트롤러가 비휘발성 메모리로 동작 커맨드를 전송하는 방법이 자세히 설명된다.Hereinafter, a method of transmitting an operation command to a non-volatile memory by a memory controller according to an embodiment of the present invention will be described in detail with reference to FIGS. 6 to 8B.

도 6은 메모리 컨트롤러와 비휘발성 메모리를 연결하는 채널을 자세히 설명하기 위한 도면이다.6 is a diagram for explaining in detail a channel connecting a memory controller and a nonvolatile memory.

도 6을 참조하면, 스토리지 장치(100)는 메모리 컨트롤러(110), 타겟 비휘발성 메모리(121) 및 채널(CH)을 포함할 수 있다. 도 6의 메모리 컨트롤러(110)는 도 1을 참조하여 설명된 메모리 컨트롤러(110)에 대응할 수 있다. 그리고, 도 6의 타겟 비휘발성 메모리(121)는 메모리 컨트롤러(110)가 동작을 지시하려는 대상이 되는 비휘발성 메모리로서, 도 1의 비휘발성 메모리들(NVM11-NVM24) 중 어느 하나에 대응할 수 있다. 그리고, 도 6의 채널(CH)은 도 1의 채널들(CH1, CH2) 중 어느 하나에 대응할 수 있다.Referring to FIG. 6 , the storage device 100 may include a memory controller 110 , a target nonvolatile memory 121 and a channel CH. The memory controller 110 of FIG. 6 may correspond to the memory controller 110 described with reference to FIG. 1 . Also, the target nonvolatile memory 121 of FIG. 6 is a nonvolatile memory to which the memory controller 110 intends to instruct an operation, and may correspond to any one of the nonvolatile memories NVM11 to NVM24 of FIG. 1 . . Also, the channel CH of FIG. 6 may correspond to any one of the channels CH1 and CH2 of FIG. 1 .

메모리 컨트롤러(110)는 제11 내지 제14 핀(P11-P14)을 포함할 수 있다. 타겟 비휘발성 메모리(121)는 제21 내지 제24 핀(P21-P24)을 포함할 수 있다. 제11 내지 제14 핀(P11-P14)과 제21 내지 제24 핀(P21-P24)은 서로 대응할 수 있다. 메모리 컨트롤러(110)와 타겟 비휘발성 메모리(121)은 제11 내지 제14 핀(P11-P14)과 제21 내지 제24 핀(P21-P24)을 통해 신호를 송수신할 수 있다.The memory controller 110 may include eleventh to fourteenth pins P11 to P14. The target nonvolatile memory 121 may include twenty-first to twenty-fourth pins P21 to P24. The 11th to 14th pins P11 to P14 and the 21st to 24th pins P21 to P24 may correspond to each other. The memory controller 110 and the target nonvolatile memory 121 may transmit and receive signals through the 11th to 14th pins P11 to P14 and the 21st to 24th pins P21 to P24.

메모리 컨트롤러(110)는 제11 내지 제13핀(P11-P13)을 통해 타겟 비휘발성 메모리(121)로 CLE(Command Latch Enable) 신호, ALE(Address Latch Enable) 신호 및 nWE(Write Enable) 신호를 전송할 수 있다. 그리고, 메모리 컨트롤러(110)는 제14핀(P14)을 통해 타겟 비휘발성 메모리(121)로 데이터 신호(DQ[7:0])를 전송하거나, 타겟 비휘발성 메모리(121)로부터 데이터 신호(DQ[7:0])를 수신할 수 있다.The memory controller 110 transmits a command latch enable (CLE) signal, an address latch enable (ALE) signal, and a write enable (nWE) signal to the target nonvolatile memory 121 through eleventh to thirteenth pins P11 to P13. can transmit The memory controller 110 transmits the data signal DQ[7:0] to the target nonvolatile memory 121 through the fourteenth pin P14 or transmits the data signal DQ from the target nonvolatile memory 121. [7:0]) can be received.

타겟 비휘발성 메모리(121)는 제21 내지 제23핀(P21-P23)을 통해 메모리 컨트롤러(110)로부터 CLE 신호, ALE 신호 및 nWE 신호를 수신할 수 있다. 타겟 비휘발성 메모리(121)는 제24핀(P24)을 통해 메모리 컨트롤러(110)로부터 데이터 신호(DQ[7:0])를 수신하거나, 메모리 컨트롤러(110)로 데이터 신호(DQ[7:0])를 전송할 수 있다. 데이터 신호(DQ[7:0])를 통해 커맨드(CMD), 어드레스(ADDR) 및 데이터(DATA)가 전달될 수 있다. 데이터 신호(DQ[7:0])는 복수의 데이터 신호 라인들을 통해 전달될 수 있다. 이 경우, 제24핀(P24)은 복수의 데이터 신호 라인들에 대응하는 복수의 핀들을 포함할 수 있다.The target nonvolatile memory 121 may receive the CLE signal, the ALE signal, and the nWE signal from the memory controller 110 through the twenty-first to twenty-third pins P21 to P23. The target nonvolatile memory 121 receives the data signal DQ[7:0] from the memory controller 110 through the 24th pin P24 or the data signal DQ[7:0] to the memory controller 110. ]) can be transmitted. The command CMD, address ADDR, and data DATA may be transferred through the data signal DQ[7:0]. The data signal DQ[7:0] may be transmitted through a plurality of data signal lines. In this case, the twenty-fourth pin P24 may include a plurality of pins corresponding to a plurality of data signal lines.

타겟 비휘발성 메모리(121)는 nWE 신호의 토글 타이밍들에 기초하여 CLE 신호의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ[7:0])로부터 커맨드(CMD)를 획득할 수 있다. 타겟 비휘발성 메모리(121)는 nWE 신호의 토글 타이밍들에 기초하여 ALE 신호의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ[7:0])로부터 어드레스(ADDR)를 획득할 수 있다.The target nonvolatile memory 121 receives a command CMD from a data signal DQ[7:0] received in an enable period of the CLE signal (eg, a high level state) based on the toggle timings of the nWE signal. can be obtained. The target nonvolatile memory 121 receives the address ADDR from the data signal DQ[7:0] received during the enable period of the ALE signal (eg, high level state) based on the toggle timings of the nWE signal. can be obtained.

예시적인 실시 예에서, nWE 신호는 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)를 유지하다가 하이 레벨과 로우 레벨 사이에서 토글할 수 있다. 예를 들어, nWE 신호는 커맨드(CMD) 또는 어드레스(ADDR)가 전송되는 구간에서 토글할 수 있다. 이에 따라, 타겟 비휘발성 메모리(121)는 nWE 신호의 토글 타이밍들에 기초하여 커맨드(CMD) 또는 어드레스(ADDR)를 획득할 수 있다.In an exemplary embodiment, the nWE signal can toggle between a high level and a low level while maintaining a fixed state (eg, high level or low level). For example, the nWE signal may toggle in a section in which a command CMD or an address ADDR is transmitted. Accordingly, the target nonvolatile memory 121 may obtain the command CMD or the address ADDR based on the toggle timings of the nWE signal.

메모리 컨트롤러(110)는 토글하는 nWE 신호와 함께 커맨드(CMD) 또는 어드레스(ADDR)를 포함하는 데이터 신호(DQ[7:0])를 타겟 비휘발성 메모리(121)로 전송할 수 있다. 메모리 컨트롤러(110)는 인에이블 상태를 갖는 CLE 신호를 전송함에 따라 커맨드(CMD)를 포함하는 데이터 신호(DQ[7:0])를 타겟 비휘발성 메모리(121)로 전송하고, 인에이블 신호를 갖는 ALE 신호를 전송함에 따라 어드레스(ADDR)를 포함하는 데이터 신호(DQ[7:0])를 타겟 비휘발성 메모리(121)로 전송할 수 있다.The memory controller 110 may transmit the data signal DQ[7:0] including the command CMD or the address ADDR to the target nonvolatile memory 121 together with the nWE signal for toggling. As the CLE signal having an enable state is transmitted, the memory controller 110 transmits the data signal DQ[7:0] including the command CMD to the target nonvolatile memory 121, and transmits the enable signal to the target nonvolatile memory 121. As the ALE signal having is transmitted, the data signal DQ[7:0] including the address ADDR may be transmitted to the target nonvolatile memory 121 .

도 7a 및 도 7b는 비교예와 본 발명의 실시 예에 따른 커맨드 전송 방법을 나타내는 타이밍도들이다.7A and 7B are timing diagrams illustrating a command transmission method according to a comparative example and an embodiment of the present invention.

도 7a는 본 발명의 실시 예와는 다른 비교예에 따른 커맨드 전송 방법을 나타낸다. 비교예에 따르면, 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)로부터 온도 값을 획득한 후 상기 온도 값에 기초하여 동작 파라미터를 결정할 수 있다. 그리고, 메모리 컨트롤러(110)는 타겟 비휘발성 메모리(121)에 커맨드 및 어드레스와 함께 동작 파라미터를 제공할 수 있다. 도 7a의 타이밍도는 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)로 커맨드, 어드레스 및 동작 파라미터를 제공하는 타이밍을 나타낸다.7A shows a command transmission method according to a comparative example different from the embodiment of the present invention. According to the comparative example, the memory controller 110 may obtain a temperature value from the target nonvolatile memory 121 and then determine an operating parameter based on the temperature value. Also, the memory controller 110 may provide operation parameters together with commands and addresses to the target nonvolatile memory 121 . The timing diagram of FIG. 7A shows timing at which the memory controller 110 provides commands, addresses, and operation parameters to the target nonvolatile memory 121 .

도 7a를 참조하면, 메모리 컨트롤러(110)는 CLE 신호가 인에이블되는 제1 시구간(PR1)에서 타겟 비휘발성 메모리(121)로 동작 커맨드(OPCMD)를 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. 예를 들어, 동작 커맨드(OPCMD)는 프로그램 커맨드, 리드 커맨드 및 이레이즈 커맨드 중 하나일 수 있다. Referring to FIG. 7A , the memory controller 110 sends a data signal (DQ[7:0) including an operation command OPCMD to the target nonvolatile memory 121 in a first time period PR1 in which the CLE signal is enabled. ]) can be transmitted. For example, the operation command OPCMD may be one of a program command, a read command, and an erase command.

메모리 컨트롤러(110)는 ALE 신호가 인에이블되는 제2 시구간(PR2)에서 타겟 비휘발성 메모리(121)로 실질 어드레스를 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. 예를 들어, 실질 어드레스는 5개의 클럭 사이클에 걸쳐 전송될 수 있으며, 컬럼 어드레스(C1, C2) 및 로우 어드레스(R1-R3)를 포함할 수 있다.The memory controller 110 may transmit the data signal DQ[7:0] including the real address to the target nonvolatile memory 121 in the second time period PR2 when the ALE signal is enabled. For example, the real address may be transmitted over 5 clock cycles and may include column addresses C1 and C2 and row addresses R1-R3.

메모리 컨트롤러(110)는 ALE 신호가 인에이블되는 제3 시구간(PR3)에 타겟 비휘발성 메모리(121)로 동작 파라미터(Z1-Z10)를 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. 동작 커맨드(CMD)가 리드 커맨드인 경우, 동작 파라미터(Z1-Z10)는 리드 전압의 오프셋 레벨을 포함할 수 있다.The memory controller 110 transmits the data signal DQ[7:0] including the operation parameters Z1-Z10 to the target nonvolatile memory 121 in the third time period PR3 when the ALE signal is enabled. can When the operation command CMD is a read command, the operation parameters Z1 to Z10 may include offset levels of read voltages.

메모리 컨트롤러(110)는 CLE 신호가 인에이블되는 제4 시구간(PR4)에 타겟 비휘발성 메모리(121)로 컨펌 커맨드(CFCMD) 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. 컨펌 커맨드(CFCMD)는 동작 커맨드(OPCMD)에 연관된 실질 어드레스, 동작 파라미터 등이 모두 전송되었다는 것을 타겟 비휘발성 메모리(121)로 알리기 위한 커맨드일 수 있다. The memory controller 110 may transmit the data signal DQ[7:0] including the confirm command CFCMD to the target nonvolatile memory 121 during the fourth time period PR4 when the CLE signal is enabled. The confirm command CFCMD may be a command for notifying the target nonvolatile memory 121 that all real addresses and operation parameters related to the operation command OPCMD have been transmitted.

타겟 비휘발성 메모리(121)는 nWE신호의 상승 에지들에서 데이터 신호(DQ[7:0])를 샘플링하여 동작 커맨드(OPCMD), 실질 어드레스(C1, C2, R1-R3), 동작 파라미터(Z1-Z10) 및 컨펌 커맨드(CFCMD)를 획득할 수 있다. 동작 커맨드(OPCMD)는 제1 시점(t1)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다. 실질 어드레스(C1, C2, R1-R3)는 제2 내지 제6 시점(t2-t6)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다. 동작 파라미터(Z1-Z10)는 제7 내지 제16 시점(t7-t16)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다. 그리고, 컨펌 커맨드(CFCMD)는 제17 시점(t17)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다.The target nonvolatile memory 121 samples the data signal DQ[7:0] at the rising edges of the nWE signal to generate an operation command OPCMD, real addresses C1, C2, R1-R3, and an operation parameter Z1. -Z10) and confirm command (CFCMD). The operation command OPCMD may include signal values of the data signal DQ[7:0] at the first time point t1. The real addresses C1, C2, and R1-R3 may include signal values of the data signal DQ[7:0] at the second to sixth points in time t2 to t6. The operating parameters Z1 to Z10 may include signal values of the data signal DQ[7:0] at the seventh to sixteenth time points t7 to t16. Also, the confirm command CFCMD may include signal values of the data signal DQ[7:0] at the seventeenth time point t17.

타겟 비휘발성 메모리(121)는 컨펌 커맨드(CFCMD)를 획득하면, 앞서 수신된 동작 파라미터(Z1-Z10)에 기초하여 동작 커맨드(OPCMD)의 동작 파라미터를 설정하고, 실질 어드레스(C1, C2, R1-R3)에 대해 동작 커맨드(OPCMD)가 지시하는 동작을 수행할 수 있다.When the target nonvolatile memory 121 obtains the confirm command CFCMD, it sets the operation parameters of the operation command OPCMD based on the operation parameters Z1 to Z10 previously received, and the real addresses C1, C2, and R1. For -R3), the operation indicated by the operation command (OPCMD) can be performed.

비교예에 따르면, 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)의 온도에 따른 동작 파라미터(Z1-Z10)를 전송함으로써 타겟 비휘발성 메모리(121)의 온도에 따른 동작 특성을 보상할 수 있다. 메모리 컨트롤러(110)가 동작 파라미터(Z1-Z10)를 별도로 전송하는 경우, 타겟 비휘발성 메모리(121)에 커맨드를 전송하기 위해서 10개의 클럭 사이클에 해당하는 시간이 더 걸릴 수 있다. 메모리 컨트롤러(110)가 하나의 채널에 연결된 복수의 비휘발성 메모리들에 순차적으로 복수의 커맨드들을 전송하는 경우 커맨드 전송 시간이 더욱 지연될 수 있다.According to the comparative example, the memory controller 110 may compensate for the temperature-dependent operating characteristics of the target non-volatile memory 121 by transmitting operating parameters Z1 to Z10 according to the temperature of the target non-volatile memory 121 . . When the memory controller 110 transmits the operating parameters Z1 to Z10 separately, it may take an additional time corresponding to 10 clock cycles to transmit a command to the target nonvolatile memory 121 . When the memory controller 110 sequentially transmits a plurality of commands to a plurality of nonvolatile memories connected to one channel, the command transmission time may be further delayed.

도 7b는 본 발명의 실시 예에 따른 커맨드 전송 방법을 나타낸다. 본 발명의 실시 예에 따르면, 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)로부터 온도 값을 매번 획득하지 않고, 외부 온도 센서(130)나 타겟 비휘발성 메모리(121)의 입출력 워크로드 등을 이용하여 타겟 비휘발성 메모리(121)의 온도 값을 결정할 수 있다. 그리고, 메모리 컨트롤러(110)는 타겟 비휘발성 메모리(121)의 온도 값이 속한 온도 범위에 대응하는 동작 커맨드를 결정하고, 타겟 비휘발성 메모리(121)에 동작 커맨드 및 어드레스를 제공할 수 있다. 7B shows a command transmission method according to an embodiment of the present invention. According to an embodiment of the present invention, the memory controller 110 does not acquire a temperature value from the target nonvolatile memory 121 every time, and monitors the external temperature sensor 130 or the input/output workload of the target nonvolatile memory 121. A temperature value of the target non-volatile memory 121 may be determined by using. Also, the memory controller 110 may determine an operation command corresponding to a temperature range to which the temperature value of the target nonvolatile memory 121 belongs, and provide the operation command and address to the target nonvolatile memory 121 .

도 7b의 타이밍도는 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)로 동작 커맨드 및 어드레스를 제공하는 타이밍을 나타낸다. 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)의 온도 값을 결정하는 방법은 도 10 내지 도 12를 참조하여 자세히 설명된다.The timing diagram of FIG. 7B shows timing at which the memory controller 110 provides operation commands and addresses to the target nonvolatile memory 121 . A method of determining the temperature value of the target nonvolatile memory 121 by the memory controller 110 will be described in detail with reference to FIGS. 10 to 12 .

도 7b를 참조하면, 메모리 컨트롤러(110)는 CLE 신호가 인에이블되는 제1 시구간(PR1)에서 타겟 비휘발성 메모리(121)로 동작 커맨드(OPCMD)를 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. 동작 커맨드(OPCMD)는 타겟 비휘발성 메모리(121)의 온도 값이 속한 온도 범위에서의 프로그램 동작, 리드 동작 및 이레이즈 동작 중 하나를 지시할 수 있다. 동일한 유형의 동작을 지시하기 위한 커맨드라도, 온도 범위에 따라 다른 신호 값을 가질 수 있다.Referring to FIG. 7B , the memory controller 110 sends a data signal (DQ[7:0) including an operation command OPCMD to the target nonvolatile memory 121 in a first time period PR1 in which the CLE signal is enabled. ]) can be transmitted. The operation command OPCMD may indicate one of a program operation, a read operation, and an erase operation within a temperature range to which the temperature value of the target nonvolatile memory 121 belongs. Even commands for instructing the same type of operation may have different signal values according to temperature ranges.

메모리 컨트롤러(110)는 ALE 신호가 인에이블되는 제2 시구간(PR2)에서 타겟 비휘발성 메모리(121)로 실질 어드레스를 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. 예를 들어, 실질 어드레스는 5개의 클럭 사이클에 걸쳐 전송될 수 있으며, 컬럼 어드레스(C1, C2) 및 로우 어드레스(R1-R3)를 포함할 수 있다.The memory controller 110 may transmit the data signal DQ[7:0] including the real address to the target nonvolatile memory 121 in the second time period PR2 when the ALE signal is enabled. For example, the real address may be transmitted over 5 clock cycles and may include column addresses C1 and C2 and row addresses R1-R3.

메모리 컨트롤러(110)는 CLE 신호가 인에이블되는 제3 시구간(PR3)에 타겟 비휘발성 메모리(121)로 컨펌 커맨드(CFCMD) 포함하는 데이터 신호(DQ[7:0])를 전송할 수 있다. The memory controller 110 may transmit the data signal DQ[7:0] including the confirm command CFCMD to the target nonvolatile memory 121 during the third time period PR3 when the CLE signal is enabled.

타겟 비휘발성 메모리(121)는 nWE신호의 상승 에지들에서 데이터 신호(DQ[7:0])를 샘플링하여 동작 커맨드(OPCMD), 실질 어드레스(C1, C2, R1-R3) 및 컨펌 커맨드(CFCMD)를 획득할 수 있다. 동작 커맨드(OPCMD)는 제1 시점(t1)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다. 실질 어드레스(C1, C2, R1-R3)는 제2 내지 제6 시점(t2-t6)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다. 그리고, 컨펌 커맨드(CFCMD)는 제7 시점(t7)에서 데이터 신호(DQ[7:0])가 갖는 신호 값들을 포함할 수 있다.The target nonvolatile memory 121 samples the data signal DQ[7:0] at rising edges of the nWE signal to generate an operation command OPCMD, real addresses C1, C2, R1-R3, and a confirm command CFCMD. ) can be obtained. The operation command OPCMD may include signal values of the data signal DQ[7:0] at the first time point t1. The real addresses C1, C2, and R1-R3 may include signal values of the data signal DQ[7:0] at the second to sixth points in time t2 to t6. Also, the confirm command CFCMD may include signal values of the data signal DQ[7:0] at the seventh time point t7.

타겟 비휘발성 메모리(121)는 컨펌 커맨드(CFCMD)를 획득하면, 동작 커맨드(OPCMD)에 의해 정의된 유형의 동작을, 동작 커맨드(OPCMD)에 의해 정의된 동작 파라미터에 따라 실질 어드레스(C1, C2, R1-R3)에 대해 수행할 수 있다.When the target nonvolatile memory 121 obtains the confirm command CFCMD, the type of operation defined by the operation command OPCMD is performed according to the operation parameter defined by the operation command OPCMD, and the real addresses C1 and C2 , R1-R3).

본 발명의 실시 예에 따르면, 메모리 컨트롤러(110)는 온도에 따른 동작 특성이 보상될 수 있는 동작 커맨드를 하나의 클럭 사이클 내에 타겟 비휘발성 메모리(121)로 전송할 수 있다. 비교예와 본 발명의 실시 예를 비교하면, 하나의 커맨드를 전송하기 위해 10개의 클럭 사이클에 해당하는 시간이 절감될 수 있다. 따라서, 커맨드 처리 시간이 감소될 수 있으며, 스토리지 장치(100)의 성능이 개선될 수 있다.According to an embodiment of the present invention, the memory controller 110 may transmit an operating command for which operating characteristics according to temperature may be compensated for to the target nonvolatile memory 121 within one clock cycle. Comparing the comparative example with the embodiment of the present invention, time corresponding to 10 clock cycles can be saved to transmit one command. Accordingly, command processing time may be reduced, and performance of the storage device 100 may be improved.

도 8a 및 도 8b는 본 발명의 실시 예에 따른 동작 커맨드들을 예시하는 도면들이다.8A and 8B are diagrams illustrating operation commands according to an embodiment of the present invention.

도 8a는 동작 유형들 각각에서 정의된 온도 범위별 동작 커맨드들의 제1 예를 나타낸다. 도 8a를 참조하면, 동작 유형은 프로그램 동작, 리드 동작 및 이레이즈 동작을 포함할 수 있다. 그리고, 온도 범위는 제1 내지 제5 온도 범위(R1-R5)를 포함할 수 있다. 프로그램 동작, 리드 동작 및 이레이즈 동작 각각에 대해서, 제1 내지 제5 온도 범위(R1-R5)에 대응하는 동작 커맨드들이 정의될 수 있다.8A illustrates a first example of operation commands for each temperature range defined in each operation type. Referring to FIG. 8A , the operation type may include a program operation, a read operation, and an erase operation. And, the temperature range may include the first to fifth temperature ranges R1 to R5. For each of the program operation, read operation, and erase operation, operation commands corresponding to the first to fifth temperature ranges R1 to R5 may be defined.

도 8a에서 동작 유형 및 온도 범위별로 예시된'61h', '81h', '01h' 등의 값은, 상기 동작 유형 및 온도 범위에 해당하는 동작 커맨드를 제공하기 위해 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)로 전송할 명령어를 나타낸다. 예를 들어, 타겟 비휘발성 메모리(121)의 현재 온도가 '-5℃'일 때 메모리 컨트롤러(110)가 리드 동작을 지시하려면, CLE 신호의 인에이블 구간에'-5℃'를 포함하는 제1 온도 범위(R1)에 해당하는 '81h'값을 동작 커맨드(OPCMD)로서 타겟 비휘발성 메모리(121)로 전송할 수 있다. Values such as '61h', '81h', and '01h' exemplified for each operation type and temperature range in FIG. Indicates a command to be transmitted to the volatile memory 121. For example, if the memory controller 110 instructs a read operation when the current temperature of the target nonvolatile memory 121 is '-5°C', the enable period of the CLE signal includes '-5°C'. A value of '81h' corresponding to one temperature range R1 may be transmitted to the target nonvolatile memory 121 as an operation command OPCMD.

타겟 비휘발성 메모리(121)는 메모리 컨트롤러(110)로부터 명령어를 수신하면, 상기 명령어가 가리키는 동작 커맨드에 대응하는 동작 파라미터를 설정하고, 상기 동작 커맨드에 정의된 동작을 수행할 수 있다. 예를 들어, 타겟 비휘발성 메모리(121)는 명령어 '81h'를 수신하는 경우와 '82h'를 수신하는 경우에 서로 다른 레벨을 갖는 리드 전압을 인가하여 리드 동작을 수행할 수 있다.When receiving a command from the memory controller 110, the target nonvolatile memory 121 may set an operating parameter corresponding to an operation command indicated by the command and perform an operation defined in the operation command. For example, the target nonvolatile memory 121 may perform a read operation by applying read voltages having different levels when receiving the command '81h' and when receiving the command '82h'.

한편, 도 8a를 참조하면, 동작 유형들 각각에 대해 정의된 동작 커맨드들 중에서 디폴트 커맨드가 결정될 수 있다. 디폴트 커맨드는, 메모리 컨트롤러(110)가 타겟 비휘발성 메모리(121)의 온도 값을 결정할 수 없거나, 결정하지 않는 경우에 각 유형의 동작을 지시하기 위해 타겟 비휘발성 메모리(121)로 전송할 수 있는 커맨드를 지칭할 수 있다. 디폴트 커맨드는 사전에 정의될 수 있다. 도 8a는, 제4 온도 범위(R4)에 해당하는 커맨드인 '60h', '80h', '00h'가 디폴트 커맨드로 설정된 경우를 예시한다.Meanwhile, referring to FIG. 8A , a default command may be determined among operation commands defined for each operation type. The default command is a command that can be transmitted to the target nonvolatile memory 121 to indicate each type of operation when the memory controller 110 cannot or does not determine the temperature value of the target nonvolatile memory 121. can refer to Default commands may be defined in advance. 8A illustrates a case where '60h', '80h', and '00h', which are commands corresponding to the fourth temperature range R4, are set as default commands.

본 발명의 실시 예에 따르면, 디폴트 커맨드는 호스트의 요청에 의해서 설정될 수 있다. 예를 들어, 호스트는 스토리지 장치(100)와의 통신을 위한 인터페이스를 통해, 스토리지 장치(100)의 평균 외부 온도 값을 스토리지 장치(100)로 제공할 수 있다. 스토리지 장치(100)는 상기 평균 외부 온도 값이 포함된 온도 범위의 커맨드들을 디폴트 커맨드로 설정할 수 있다. 스토리지 장치(100)가 서버 등의 고정적인 위치에 장착되는 경우 스토리지 장치(100)의 온도가 일정한 범위에서 유지될 수 있다. 외부 온도 값에 기초하여 디폴트 커맨드가 설정되는 경우, 메모리 컨트롤러(110)는 타겟 비휘발성 메모리(121)의 온도 값을 결정할 수 없는 경우에도 온도에 따른 비휘발성 메모리의 동작 특성을 보상할 수 있다. 따라서, 스토리지 장치(100)의 신뢰성이 향상될 수 있다.According to an embodiment of the present invention, a default command may be set according to a request of a host. For example, the host may provide the average external temperature value of the storage device 100 to the storage device 100 through an interface for communication with the storage device 100 . The storage device 100 may set commands in the temperature range including the average external temperature value as default commands. When the storage device 100 is mounted in a fixed location, such as a server, the temperature of the storage device 100 may be maintained within a certain range. When a default command is set based on an external temperature value, the memory controller 110 may compensate for operating characteristics of the nonvolatile memory according to temperature even when the temperature value of the target nonvolatile memory 121 cannot be determined. Accordingly, reliability of the storage device 100 may be improved.

도 8a는 동작 유형별로 동일한 개수의 동작 커맨드들이 사전에 정의된 경우를 예시한다. 그러나, 본 발명은 이에 제한되지 않는다. 도 8b는 동작 유형들 각각에서 정의된 온도 범위별 동작 커맨드들의 제2 예를 나타낸다.8A illustrates a case in which the same number of operation commands are defined in advance for each operation type. However, the present invention is not limited thereto. 8B illustrates a second example of operation commands for each temperature range defined in each operation type.

도 8b를 참조하면, 프로그램 동작, 리드 동작 및 이레이즈 동작에 대해서 서로 다른 수의 동작 커맨드들이 정의된 경우를 예시한다. 예를 들어, 온도에 따른 비휘발성 메모리의 동작 특성 차이가 프로그램 동작보다는 리드 동작에 더 큰 영향을 줄 수 있다. 도 8b의 예에서 프로그램 동작을 위한 동작 커맨드로는 '61h' 및 '60h'의 2개만을 정의하고, 리드 동작을 위한 동작 커맨드로는 5개의 커맨드를 정의함으로써 리드 동작을 위한 동작 파라미터를 더욱 미세하게 조정할 수 있다.Referring to FIG. 8B , a case in which different numbers of operation commands are defined for a program operation, a read operation, and an erase operation is exemplified. For example, a difference in operating characteristics of a nonvolatile memory according to temperature may have a greater effect on a read operation than a program operation. In the example of FIG. 8B , operation parameters for read operation are further refined by defining only two commands, '61h' and '60h', as operation commands for program operation and 5 commands as operation commands for read operation. can be adjusted accordingly.

한편, 스토리지 장치(100)에 포함된 비휘발성 메모리들(NVM11-NVM24) 간에도 서로 다른 온도를 가질 수 있다. 예를 들어, 스토리지 장치(100)의 외곽에 배치된 비휘발성 메모리는 스토리지 장치(100) 내부에 배치된 비휘발성 메모리에 비해 열이 신속하게 배출될 수 있으므로, 상대적으로 낮은 온도를 가질 수 있다. Meanwhile, the nonvolatile memories (NVM11 to NVM24) included in the storage device 100 may have different temperatures. For example, a nonvolatile memory disposed outside the storage device 100 may have a relatively low temperature since heat may be rapidly discharged compared to a nonvolatile memory disposed inside the storage device 100 .

본 발명의 실시 예에 따르면, 메모리 컨트롤러(110)가 비휘발성 메모리들(NVM11-NVM24)별로 온도 값을 결정함으로써 비휘발성 메모리별 동작 특성을 효과적으로 보상할 수 있다. According to an embodiment of the present invention, the memory controller 110 can effectively compensate for operating characteristics of each non-volatile memory by determining a temperature value for each of the non-volatile memories (NVM11 to NVM24).

도 9는 본 발명의 실시 예에 따른 비휘발성 메모리별 온도 범위를 예시하는 도면이다.9 is a diagram illustrating a temperature range for each nonvolatile memory according to an embodiment of the present invention.

메모리 컨트롤러(110)는 비휘발성 메모리들(NVM11-NVM24)별로 온도 정보를 저장할 수 있다. 도 9는 메모리 컨트롤러(110)가 비휘발성 메모리들(NVM11-NVM24)의 온도 값이 속하는 온도 범위를 테이블 형식으로 관리하는 경우를 예시한다. 메모리 컨트롤러(110)는 타겟 비휘발성 메모리로 동작 커맨드를 제공하기 위해 상기 테이블을 참조하여 상기 타겟 비휘발성 메모리의 온도 범위를 획득하고, 상기 온도 범위에 대응하는 동작 커맨드를 상기 타겟 비휘발성 메모리로 제공할 수 있다.The memory controller 110 may store temperature information for each of the nonvolatile memories NVM11 to NVM24. 9 illustrates a case in which the memory controller 110 manages a temperature range to which temperature values of the nonvolatile memories NVM11 to NVM24 belong in a table format. The memory controller 110 obtains a temperature range of the target nonvolatile memory by referring to the table to provide an operation command to the target nonvolatile memory, and provides an operation command corresponding to the temperature range to the target nonvolatile memory. can do.

한편, 비휘발성 메모리들(NVM11-NVM24)의 온도는 시간에 따라 변동할 수 있다. 메모리 컨트롤러(110)가 비휘발성 메모리들(NVM11-NVM24) 각각의 내부 온도 센서(NTS)로부터 온도 값을 획득하기 위해서는 채널(CH1, CH2)을 통해 비휘발성 메모리들(NVM11-NVM24)과 통신해야 할 수 있다. 메모리 컨트롤러(110)가 온도 값을 획득하는 동안에는 비휘발성 메모리들(NVM11-NVM24)과 다른 신호의 입출력을 수행할 수 없으므로, 메모리 컨트롤러(110)가 너무 잦은 주기로 온도 값을 획득하는 것은 스토리지 장치(100)의 성능 저하의 원인이 될 수 있다.Meanwhile, temperatures of the non-volatile memories NVM11 to NVM24 may vary according to time. In order for the memory controller 110 to obtain a temperature value from the internal temperature sensor NTS of each of the nonvolatile memories NVM11 to NVM24, it must communicate with the nonvolatile memories NVM11 to NVM24 through channels CH1 and CH2. can do. Since the memory controller 110 cannot perform input/output of signals different from those of the non-volatile memories NVM11-NVM24 while acquiring the temperature value, the memory controller 110 acquiring the temperature value at too frequent cycles may cause the storage device ( 100) may cause performance degradation.

이하에서, 도 10 내지 도 12를 참조하여 본 발명의 실시 예들에 따라 메모리 컨트롤러(110)가 비휘발성 메모리들(NVM11-NVM24)의 온도 값을 결정하는 다양한 방법들이 설명된다.Hereinafter, various methods for the memory controller 110 to determine temperature values of the nonvolatile memories NVM11 to NVM24 according to example embodiments will be described with reference to FIGS. 10 to 12 .

도 10 내지 도 12는 본 발명의 실시 예들에 따른 스토리지 장치의 동작을 나타내는 흐름도이다.10 to 12 are flowcharts illustrating operations of a storage device according to example embodiments.

도 10은 본 발명의 제1 실시 예에 따른 스토리지 장치의 동작을 나타낸다.10 illustrates an operation of a storage device according to a first embodiment of the present invention.

단계 S11에서, 메모리 컨트롤러는 비휘발성 메모리(NVM)별 온도 범위를 결정할 수 있다. 예를 들어, 메모리 컨트롤러는 비휘발성 메모리들(NVM)의 내부 온도 센서로부터 온도 값을 획득하고, 상기 온도 값이 속하는 온도 범위를 비휘발성 메모리들(NVM)별 온도 범위로 결정할 수 있다.In step S11, the memory controller may determine a temperature range for each nonvolatile memory (NVM). For example, the memory controller may obtain a temperature value from an internal temperature sensor of the nonvolatile memories (NVM), and determine a temperature range to which the temperature value belongs as a temperature range for each nonvolatile memory (NVM).

단계 S12에서, 메모리 컨트롤러는 비휘발성 메모리(NVM)별 입출력 워크로드를 모니터링할 수 있다. In step S12, the memory controller may monitor the input/output workload for each non-volatile memory (NVM).

제1 예로, 메모리 컨트롤러는 정해진 시구간에서의 비휘발성 메모리(NVM) 각각의 마모도(degree of wearout)를 모니터링할 수 있다. 여기서, 마모도는 상기 비휘발성 메모리에 포함된 메모리 블록들의 P/E(Program/Erase) 사이클, 상기 메모리 블록들의 이레이즈 카운트, 및 상기 비휘발성 메모리에서 프로그램된 페이지의 개수 중 적어도 어느 하나일 수 있다. P/E 사이클은 비휘발성 메모리(NVM)에 포함된 메모리 블록들이 프로그램 및 이레이즈된 횟수의 평균값을 가리킬 수 있다. As a first example, the memory controller may monitor a degree of wearout of each non-volatile memory (NVM) in a predetermined time period. Here, the degree of wear may be at least one of a program/erase (P/E) cycle of memory blocks included in the non-volatile memory, an erase count of the memory blocks, and the number of pages programmed in the non-volatile memory. . The P/E cycle may refer to an average value of the number of times that memory blocks included in the non-volatile memory (NVM) are programmed and erased.

제2 예로, 메모리 컨트롤러는 정해진 시구간에서의 비휘발성 메모리(NVM) 각각에서 리드된 데이터의 양을 모니터링할 수 있다.As a second example, the memory controller may monitor the amount of data read from each non-volatile memory (NVM) in a predetermined time period.

단계 S13에서, 메모리 컨트롤러는 입출력 워크로드의 양이 정해진 범위를 벗어나는 비휘발성 메모리(NVM)를 검출할 수 있다. 입출력 워크로드의 양이 정해진 범위보다 많은 비휘발성 메모리(NVM)에는 열이 많이 발생할 것으로 예측될 수 있으며, 입출력 워크로드의 양이 정해진 범위보다 적은 비휘발성 메모리(NVM)의 온도는 내려갈 것으로 예측될 수 있다. 반면에, 입출력 워크로드의 양이 정해진 범위 내에 속하는 비휘발성 메모리(NVM)의 온도는 이전과 비슷한 수준으로 유지될 것으로 예측될 수 있다. 따라서, 메모리 컨트롤러는 입출력 워크로드의 양이 정해진 범위 내에 속하는 비휘발성 메모리(NVM)의 현재 온도 범위를 업데이트하지 않고 유지함으로써 비휘발성 메모리(NVM)의 내부 온도 센서로부터 온도 값을 획득하기 위한 신호 송수신 시간을 줄일 수 있다.In step S13, the memory controller may detect the non-volatile memory (NVM) in which the amount of input/output workload exceeds a predetermined range. It can be predicted that a lot of heat will be generated in the non-volatile memory (NVM) where the amount of I/O workload is greater than the specified range, and the temperature of the non-volatile memory (NVM) where the amount of I/O workload is less than the specified range is expected to drop. can On the other hand, it can be predicted that the temperature of the non-volatile memory (NVM), where the amount of I/O workload falls within the specified range, will be maintained at a similar level to the previous one. Accordingly, the memory controller transmits/receives a signal for obtaining a temperature value from an internal temperature sensor of the non-volatile memory (NVM) by maintaining the current temperature range of the non-volatile memory (NVM) within a predetermined range of the amount of input/output workload without updating. can save time

단계 S14에서, 메모리 컨트롤러는 상기 검출된 비휘발성 메모리(NVM)의 현재 온도 범위를 업데이트할 수 있다. 예를 들어, 메모리 컨트롤러는 상기 검출된 비휘발성 메모리(NVM)의 내부 온도 센서로부터 온도 값을 획득하고, 상기 온도 값이 속하는 온도 범위를 상기 검출된 비휘발성 메모리(NVM)의 온도 범위로 결정할 수 있다.In step S14, the memory controller may update the current temperature range of the detected non-volatile memory (NVM). For example, the memory controller may obtain a temperature value from an internal temperature sensor of the detected nonvolatile memory (NVM), and determine a temperature range to which the temperature value belongs as the detected temperature range of the nonvolatile memory (NVM). there is.

단계 S15에서, 메모리 컨트롤러는 타겟 비휘발성 메모리(NVM)의 온도 범위에 대응하는 동작 커맨드를 타겟 비휘발성 메모리(NVM)로 제공할 수 있다.In step S15 , the memory controller may provide an operation command corresponding to a temperature range of the target nonvolatile memory (NVM) to the target nonvolatile memory (NVM).

본 발명의 제1 실시 예에 따르면, 메모리 컨트롤러가 온도 범위를 업데이트하기 위해 채널을 통해 내부 온도 센서로부터 온도를 획득하기 위해 소요되는 시간이 감소될 수 있다. 따라서, 메모리 컨트롤러는 온도 범위를 결정하기 위한 채널의 송수신 시간 소요를 최소화하면서 비휘발성 메모리(NVM)의 온도에 따른 동작 특성을 보상할 수 있다.According to the first embodiment of the present invention, the time required for the memory controller to acquire the temperature from the internal temperature sensor through the channel to update the temperature range can be reduced. Accordingly, the memory controller can compensate for the operating characteristics of the non-volatile memory (NVM) according to the temperature while minimizing the transmission/reception time required for the channel to determine the temperature range.

도 11은 본 발명의 제2 실시 예에 따른 스토리지 장치의 동작을 나타낸다.11 illustrates an operation of a storage device according to a second embodiment of the present invention.

단계 S21에서, 메모리 컨트롤러는 비휘발성 메모리(NVM)별 온도 범위를 결정할 수 있다. 예를 들어, 메모리 컨트롤러는 비휘발성 메모리들(NVM)의 내부 온도 센서로부터의 온도 값에 기초하여 비휘발성 메모리(NVM)별 온도 범위를 결정할 수 있다.In step S21, the memory controller may determine a temperature range for each nonvolatile memory (NVM). For example, the memory controller may determine a temperature range for each nonvolatile memory (NVM) based on a temperature value from an internal temperature sensor of the nonvolatile memory (NVM).

단계 S22에서, 메모리 컨트롤러는 복수의 외부 온도 센서들(EST)로부터 온도 값을 획득할 수 있다. 구현에 따라, 메모리 컨트롤러는 스토리지 장치에서 서로 다른 위치에 배치된 복수의 외부 온도 센서들(EST)로부터 온도 값을 획득할 수 있다. 한편, 메모리 컨트롤러는 비휘발성 메모리들(NVM)과 연결된 채널들과는 별개의 인터페이스를 통해 외부 온도 센서들(EST)로부터 온도 값을 획득할 수 있다.In step S22, the memory controller may acquire temperature values from the plurality of external temperature sensors EST. Depending on implementation, the memory controller may obtain temperature values from a plurality of external temperature sensors EST disposed at different locations in the storage device. Meanwhile, the memory controller may obtain temperature values from the external temperature sensors EST through an interface separate from channels connected to the nonvolatile memories NVM.

단계 S23에서, 메모리 컨트롤러는 외부 온도 센서(ETS)들 간의 온도 값의 차이가 임계값을 넘는지 여부를 판단할 수 있다. 서로 다른 위치에 배치된 외부 온도 센서(ETS)들의 온도 값의 차이가 임계값을 넘는 경우, 스토리지 장치에서 급격한 온도 변동이 발생한 것으로 예측될 수 있다. 반면에, 상기 온도 값의 차이가 임계값을 넘지 않는 경우, 스토리지 장치의 온도가 비교적 일정하게 유지되는 것으로 예측될 수 있다.In step S23, the memory controller may determine whether a temperature difference between the external temperature sensors (ETS) exceeds a threshold value. When the difference between the temperature values of the external temperature sensors (ETS) disposed at different locations exceeds a critical value, it may be predicted that a sudden temperature change occurs in the storage device. On the other hand, when the difference between the temperature values does not exceed the threshold value, it may be predicted that the temperature of the storage device is maintained relatively constant.

온도 값의 차이가 임계값을 넘는 경우(단계 S23에서, "예"), 메모리 컨트롤러는 비휘발성 메모리(NVM)별 온도 범위를 업데이트할 수 있다. 예를 들어, 메모리 컨트롤러는 비휘발성 메모리들(NVM)의 내부 온도 센서로부터의 온도 값에 기초하여 비휘발성 메모리(NVM)별 온도 범위를 결정할 수 있다.When the temperature difference exceeds the threshold value (Yes in step S23), the memory controller may update the temperature range for each nonvolatile memory (NVM). For example, the memory controller may determine a temperature range for each nonvolatile memory (NVM) based on a temperature value from an internal temperature sensor of the nonvolatile memory (NVM).

반면에, 온도 값의 차이가 임계값을 넘지 않는 경우(단계 S23에서, "아니오"), 메모리 컨트롤러는 비휘발성 메모리(NVM)별 온도 범위를 업데이트하지 않고, 기존에 결정된 온도 범위를 그대로 사용할 수 있다. On the other hand, if the difference between the temperature values does not exceed the threshold value (“No” in step S23), the memory controller may use the previously determined temperature range as it is without updating the temperature range for each non-volatile memory (NVM). there is.

단계 S26에서, 메모리 컨트롤러는 타겟 비휘발성 메모리(NVM)의 온도 범위에 대응하는 동작 커맨드를 타겟 비휘발성 메모리(NVM)로 제공할 수 있다.In step S26 , the memory controller may provide an operation command corresponding to a temperature range of the target nonvolatile memory (NVM) to the target nonvolatile memory (NVM).

본 발명의 제2 실시 예에 따르면, 스토리지 장치의 온도에 급격한 변화가 없는 것으로 예측되는 경우 비휘발성 메모리(NVM)의 온도 범위의 업데이트를 생략할 수 있다. 따라서, 메모리 컨트롤러는 비휘발성 메모리(NVM)의 온도 범위를 결정하기 위한 채널의 송수신 시간 소요를 최소화하면서 비휘발성 메모리(NVM)의 온도에 따른 동작 특성을 보상할 수 있다.According to the second embodiment of the present invention, when it is predicted that there is no sudden change in the temperature of the storage device, the update of the temperature range of the non-volatile memory (NVM) may be omitted. Accordingly, the memory controller can compensate for the temperature-dependent operating characteristics of the non-volatile memory (NVM) while minimizing the transmission/reception time required for the channel to determine the temperature range of the non-volatile memory (NVM).

도 12는 본 발명의 제3 실시 예에 따른 스토리지 장치의 동작을 나타낸다.12 illustrates an operation of a storage device according to a third embodiment of the present invention.

단계 S31에서, 메모리 컨트롤러는 제1 주기로 외부 온도 센서(ETS)의 온도 값을 획득할 수 있다.In step S31 , the memory controller may obtain a temperature value of the external temperature sensor ETS in a first cycle.

단계 S32에서, 메모리 컨트롤러는 제2 주기로 비휘발성 메모리(NVM)별 내부 온도 센서(NTS)의 온도 값을 획득할 수 있다. In step S32 , the memory controller may obtain the temperature value of the internal temperature sensor (NTS) for each nonvolatile memory (NVM) in a second cycle.

상기 제1 주기 및 제2 주기의 비율은 동적으로 결정될 수 있다. 예를 들어, 메모리 컨트롤러는 비휘발성 메모리(NVM)에서 수행될 커맨드들을 큐잉하는 커맨드 큐에서, 큐잉된 커맨드의 수가 적을수록 제1 주기 대비 제2 주기의 비율을 높임으로써 내부 온도 센서(NTS)의 온도 값을 자주 획득할 수 있다. 메모리 컨트롤러는 커맨드 처리 속도에 미치는 영향을 최소화하면서, 비휘발성 메모리(NVM)별 내부 온도 센서(NTS)로부터 온도 값을 획득할 수 있다. A ratio of the first period and the second period may be dynamically determined. For example, in a command queue for queuing commands to be executed in the non-volatile memory (NVM), the memory controller increases the ratio of the second cycle to the first cycle as the number of queued commands decreases, thereby increasing the temperature of the internal temperature sensor NTS. Temperature values can often be acquired. The memory controller may obtain a temperature value from an internal temperature sensor (NTS) for each non-volatile memory (NVM) while minimizing an effect on command processing speed.

구현에 따라, 상기 제2 주기는 상기 제1 주기보다 드문 주기일 수 있다. 즉, 메모리 컨트롤러는 내부 온도 센서(NTS)는 상대적으로 가끔씩 확인하고, 외부 온도 센서(ETS)는 상대적으로 자주 확인할 수 있다. 메모리 컨트롤러가 외부 온도 센서(ETS)를 확인할 때는 메모리 컨트롤러와 비휘발성 메모리(NVM)를 연결하는 채널들을 점유하지 않으므로, 메모리 컨트롤러가 외부 온도 센서(ETS)를 자주 확인하는 것은 커맨드 처리 속도에 영향을 거의 미치지 않을 수 있다.Depending on implementation, the second period may be less frequent than the first period. That is, the memory controller can check the internal temperature sensor (NTS) relatively occasionally and the external temperature sensor (ETS) relatively frequently. When the memory controller checks the external temperature sensor (ETS), it does not occupy the channels connecting the memory controller and non-volatile memory (NVM), so that the memory controller frequently checks the external temperature sensor (ETS) affects the command processing speed. may be almost out of reach.

단계 S33에서, 메모리 컨트롤러는 비휘발성 메모리(NVM)별로 내부 온도 센서(NTS)의 온도 값과 외부 온도 센서(ETS)의 온도 값의 차이가 임계값을 넘는지 여부를 판단할 수 있다.In step S33 , the memory controller may determine whether a difference between the temperature value of the internal temperature sensor NTS and the temperature value of the external temperature sensor ETS exceeds a threshold value for each nonvolatile memory (NVM).

단계 S34에서, 메모리 컨트롤러는 온도 값의 차이가 임계값을 넘지 않는 비휘발성 메모리(NVM)에 대해서는 외부 온도 센서(ETS)의 온도 값을 상기 비휘발성 메모리(NVM)의 온도 값으로 결정할 수 있다. 외부 온도 센서(ETS)의 온도 값을 비휘발성 메모리(NVM)의 현재 온도 값으로 결정하는 경우, 채널을 통해 내부 온도 센서(NTS)에 액세스하지 않고도 비휘발성 메모리(NVM)의 온도 값을 업데이트할 수 있다.In step S34, the memory controller may determine the temperature value of the external temperature sensor ETS as the temperature value of the nonvolatile memory (NVM) for the nonvolatile memory (NVM) in which the temperature difference does not exceed the threshold value. If the temperature value of the external temperature sensor (ETS) is determined as the current temperature value of the non-volatile memory (NVM), the temperature value of the non-volatile memory (NVM) can be updated without accessing the internal temperature sensor (NVM) through a channel. can

반면에, 단계 S35에서 메모리 컨트롤러는 온도 값의 차이가 임계값을 넘는 비휘발성 메모리(NVM)에 대해서는 내부 온도 센서(NTS)의 온도 값을 이용하여 비휘발성 메모리(NVM)의 온도 값을 결정할 수 있다. On the other hand, in step S35, the memory controller may determine the temperature value of the non-volatile memory (NVM) using the temperature value of the internal temperature sensor (NTS) for the non-volatile memory (NVM) where the temperature difference exceeds the threshold value. there is.

제1 예로, 메모리 컨트롤러는 비휘발성 메모리(NVM)의 내부 온도 센서(NTS)의 온도 값을 그대로 비휘발성 메모리(NVM)의 온도 값으로 결정할 수 있다. 그러나, 본 발명은 이에 제한되지 않는다. 내부 온도 센서(NTS)의 측정 오류로 인해 내부 온도 센서(NTS)와 외부 온도 센서(ETS)의 온도 차가 임계값을 벗어나는 경우가 있으므로, 메모리 컨트롤러는 아래의 제2 예 및 제3 예에 따라 현재 온도 값을 결정할 수도 있다.As a first example, the memory controller may determine the temperature value of the internal temperature sensor (NTS) of the nonvolatile memory (NVM) as the temperature value of the nonvolatile memory (NVM). However, the present invention is not limited thereto. Since there is a case where the temperature difference between the internal temperature sensor (NTS) and the external temperature sensor (ETS) is out of the threshold value due to a measurement error of the internal temperature sensor (NTS), the memory controller is currently configured according to the second and third examples below. You can also determine the temperature value.

제2 예로, 메모리 컨트롤러는 온도 값의 차이가 임계값을 넘는 비휘발성 메모리(NVM)의 온도 값을 복수의 비휘발성 메모리들(NVM)의 평균 온도 값으로 결정할 수 있다. As a second example, the memory controller may determine a temperature value of the nonvolatile memory (NVM) in which a temperature difference exceeds a threshold value as an average temperature value of the plurality of nonvolatile memories (NVM).

제3 예로, 메모리 컨트롤러는 온도 값의 차이가 임계값을 넘는 비휘발성 메모리(NVM)의 내부 온도 센서(NTS)의 온도 값을 다시 획득하고, 다시 획득된 온도 값에 기초하여 상기 비휘발성 메모리(NVM)의 온도 값을 결정할 수도 있다.As a third example, the memory controller re-acquires a temperature value of an internal temperature sensor (NTS) of a non-volatile memory (NVM) in which a temperature difference exceeds a threshold value, and based on the re-obtained temperature value, the non-volatile memory (NVM) NVM) can also determine the temperature value.

단계 S36에서, 메모리 컨트롤러는 비휘발성 메모리(NVM)별 온도 값에 기초하여 비휘발성 메모리(NVM)별 온도 범위를 결정할 수 있다.In step S36, the memory controller may determine a temperature range for each non-volatile memory (NVM) based on the temperature value for each non-volatile memory (NVM).

단계 S37에서, 메모리 컨트롤러는 타겟 비휘발성 메모리(NVM)의 온도 범위에 대응하는 동작 커맨드를 타겟 비휘발성 메모리(NVM)로 제공할 수 있다.In step S37 , the memory controller may provide an operation command corresponding to a temperature range of the target nonvolatile memory (NVM) to the target nonvolatile memory (NVM).

본 발명의 제3 실시 예에 따르면, 비휘발성 메모리(NVM)의 내부 온도 값과 외부 온도 센서(ETS)의 온도 값이 비슷한 것으로 판단되는 경우, 외부 온도 센서(ETS)의 온도 값을 이용하여 비휘발성 메모리(NVM)의 온도 범위를 결정할 수 있다. 따라서, 메모리 컨트롤러는 비휘발성 메모리(NVM)의 온도 범위를 결정하기 위한 채널의 입출력 시간 소요를 최소화하면서 비휘발성 메모리(NVM)의 온도에 따른 동작 특성을 보상할 수 있다.According to the third embodiment of the present invention, when it is determined that the internal temperature value of the non-volatile memory (NVM) and the temperature value of the external temperature sensor (ETS) are similar, the temperature value of the external temperature sensor (ETS) is used to compare the The temperature range of the volatile memory (NVM) can be determined. Accordingly, the memory controller can compensate for operating characteristics of the non-volatile memory (NVM) depending on the temperature while minimizing the input/output time of the channel for determining the temperature range of the non-volatile memory (NVM).

도 13 및 도 14는 본 발명의 실시 예에 따른 스토리지 장치의 구조를 나타내는 도면들이다.13 and 14 are diagrams illustrating the structure of a storage device according to an embodiment of the present invention.

도 13을 참조하면, 스토리지 장치(400)는 메모리 컨트롤러(410), 비휘발성 메모리들(NVM11-NVM42) 및 채널들(CH1-CH4)을 포함할 수 있다. 메모리 컨트롤러(410) 및 비휘발성 메모리들(NVM11-NVM42)은 기판(401) 상에 적층되어 하나의 패키지를 구성할 수 있다.Referring to FIG. 13 , the storage device 400 may include a memory controller 410 , nonvolatile memories NVM11 to NVM42 , and channels CH1 to CH4 . The memory controller 410 and the nonvolatile memories NVM11 - NVM42 may be stacked on the board 401 to form one package.

도 13의 예에서, 메모리 컨트롤러(410)는 제1 채널(CH1)을 통해 비휘발성 메모리들(NVM11-NVM12)과 신호를 송수신하고, 제2 채널(CH2)을 통해 비휘발성 메모리들(NVM21-NVM22)과 신호를 송수신하고, 제3 채널(CH3)을 통해 비휘발성 메모리들(NVM31-NVM32)과 신호를 송수신하며, 제4 채널(CH4)을 통해 비휘발성 메모리들(NVM41-NVM42)과 신호를 송수신할 수 있다. 도 13의 예에서 스토리지 장치(400)는 4개의 채널(CH1-CH4)에 연결된 비휘발성 메모리들(NVM11-NVM42)을 포함할 수 있으나, 비휘발성 메모리들의 개수 및 채널의 개수는 제한되지 않는다.In the example of FIG. 13 , the memory controller 410 transmits and receives signals to and from the nonvolatile memories NVM11 to NVM12 through a first channel CH1 and transmits and receives signals to and from the nonvolatile memories NVM21 to NVM21 through a second channel CH2. NVM22), transmits and receives signals with non-volatile memories (NVM31-NVM32) through the third channel (CH3), and transmits and receives signals with the non-volatile memories (NVM41-NVM42) through the fourth channel (CH4). can send and receive. In the example of FIG. 13 , the storage device 400 may include nonvolatile memories (NVM11 to NVM42) connected to four channels (CH1 to CH4), but the number of nonvolatile memories and the number of channels are not limited.

비휘발성 메모리들(NVM11-NVM42) 각각은 내부 온도 센서(NTS)를 포함할 수 있다. 그리고, 메모리 컨트롤러(410)는 외부 온도 센서(ETS)를 포함할 수 있다. 메모리 컨트롤러(410)는 비휘발성 메모리들(NVM11-NVM42)의 내부 온도 센서(NTS)로부터 온도 값을 획득하기 위해서는 채널들(CH1-CH4)을 통해야 할 수 있다. 반면에, 메모리 컨트롤러(410)는 채널들(CH1-CH4)과는 별개의 인터페이스를 통해 외부 온도 센서(ETS)에 접근할 수 있다. 따라서, 메모리 컨트롤러(410)가 외부 온도 센서(ETS)를 통해 온도 값을 획득하는 것은 메모리 컨트롤러(410) 및 비휘발성 메모리들(NVM11-NVM42)의 데이터 전송 성능에 영향을 미치지 않을 수 있다.Each of the nonvolatile memories NVM11 to NVM42 may include an internal temperature sensor NTS. Also, the memory controller 410 may include an external temperature sensor (ETS). The memory controller 410 may have to use channels CH1 to CH4 to acquire temperature values from the internal temperature sensors NTS of the nonvolatile memories NVM11 to NVM42. On the other hand, the memory controller 410 may access the external temperature sensor ETS through an interface separate from the channels CH1 to CH4. Accordingly, when the memory controller 410 obtains a temperature value through the external temperature sensor ETS, data transmission performance of the memory controller 410 and the nonvolatile memories NVM11 to NVM42 may not be affected.

본 발명의 실시 예에 따르면, 메모리 컨트롤러(410)는 비휘발성 메모리들(NVM11-NVM42)의 온도 값이 속하는 온도 범위에 대응하는 동작 커맨드를 제공함으로써 비휘발성 메모리들(NVM11-NVM42)의 온도에 따라 달라지는 동작 특성을 보상할 수 있다.According to an embodiment of the present invention, the memory controller 410 controls the temperature of the non-volatile memories NVM11-NVM42 by providing an operation command corresponding to a temperature range to which the temperature values of the non-volatile memories NVM11-NVM42 belong. It is possible to compensate for operating characteristics that vary according to the

메모리 컨트롤러(410)는 외부 온도 센서(ETS)의 온도 값을 제1 주기로 획득하고, 채널들(CH1-CH4)을 통해 비휘발성 메모리들(NVM11-NVM42)의 내부 온도 센서(NTS)의 온도 값을 상기 제1 주기보다 드문 제2 주기로 획득할 수 있다. The memory controller 410 acquires the temperature value of the external temperature sensor ETS in a first cycle, and the temperature value of the internal temperature sensor NTS of the non-volatile memories NVM11-NVM42 through the channels CH1-CH4. may be obtained in a second period that is rarer than the first period.

메모리 컨트롤러(410)는 외부 온도 센서(ETS)와 내부 온도 센서(NTS)의 온도 차이가 제1 임계값 이하인 비휘발성 메모리에 대해서, 외부 온도 센서(ETS)의 온도 값을 비휘발성 메모리의 온도 값으로 결정할 수 있다. 도 13의 예에서, 메모리 컨트롤러(410)에 인접한 비휘발성 메모리(NVM41)는 메모리 컨트롤러(410)의 온도 변화에 큰 영향을 받을 수 있으며, 내부 온도 센서(NTS)의 온도 값과 외부 온도 센서(ETS)의 온도 값의 차이가 제1 임계값 이하일 수 있다. 메모리 컨트롤러(410)는 자주 접근되어도 데이터 전송 성능에 거의 영향을 미치지 않는 외부 온도 센서(ETS)의 온도 값을 이용하여 비휘발성 메모리(NVM41)의 온도 값을 결정할 수 있다. The memory controller 410 converts the temperature value of the external temperature sensor (ETS) to the temperature value of the non-volatile memory for the non-volatile memory in which the temperature difference between the external temperature sensor (ETS) and the internal temperature sensor (NTS) is equal to or less than the first threshold value. can be determined by In the example of FIG. 13 , the nonvolatile memory NVM41 adjacent to the memory controller 410 may be greatly affected by the temperature change of the memory controller 410, and the temperature value of the internal temperature sensor NTS and the external temperature sensor ( ETS) may be less than or equal to the first threshold value. The memory controller 410 may determine the temperature value of the non-volatile memory NVM41 using the temperature value of the external temperature sensor ETS, which has little effect on data transmission performance even when frequently accessed.

반면에, 메모리 컨트롤러(410)는 상기 온도 차이가 제1 임계값을 넘는 비휘발성 메모리에 대해서, 상기 내부 온도 센서(NTS)의 온도 값을 비휘발성 메모리의 온도 값으로 결정할 수 있다. 예를 들어, 메모리 컨트롤러(410)로부터 멀리 떨어진 비휘발성 메모리(NVM12)는 메모리 컨트롤러(410)의 온도 변화에 적은 영향을 받을 수 있으며, 내부 온도 센서(NTS)의 온도 값과 외부 온도 센서(ETS)의 온도 값의 차이가 제1 임계값 이상일 수 있다. 메모리 컨트롤러(410)는 비휘발성 메모리(NVM12)의 내부 온도 센서(NTS)의 온도 값을 이용하여 비휘발성 메모리(NVM12)의 온도 값을 결정할 수 있다.On the other hand, the memory controller 410 may determine the temperature value of the internal temperature sensor NTS as the temperature value of the nonvolatile memory with respect to the nonvolatile memory in which the temperature difference exceeds the first threshold. For example, the non-volatile memory (NVM12) far from the memory controller 410 may be less affected by the temperature change of the memory controller 410, and the temperature value of the internal temperature sensor (NTS) and the external temperature sensor (ETS) ) may be greater than or equal to the first threshold value. The memory controller 410 may determine the temperature value of the nonvolatile memory NVM12 by using the temperature value of the internal temperature sensor NTS of the nonvolatile memory NVM12.

도 14를 참조하면, 스토리지 장치(500)는 컨트롤러 영역(502) 및 비휘발성 메모리 영역(503)이 정의된 기판(501)을 포함할 수 있다. 기판(501)의 컨트롤러 영역(502)에는 메모리 컨트롤러(510)가 배치될 수 있으며, 비휘발성 메모리 영역(503)에는 복수의 비휘발성 메모리 패키지들(NVMPKG)들이 배치될 수 있다. 비휘발성 메모리 패키지들(NVMPKG)은 복수의 적층된 비휘발성 메모리들(도시되지 않음)을 포함할 수 있으며, 비휘발성 메모리들 각각은 내부 온도 센서를 포함할 수 있다. 메모리 컨트롤러(510)와 비휘발성 메모리들은 채널들(도시되지 않음)을 통해 신호를 송수신할 수 있다. 메모리 컨트롤러(510)는 채널들을 통해 내부 온도 센서로부터 비휘발성 메모리들의 온도 값을 획득할 수 있다.Referring to FIG. 14 , a storage device 500 may include a substrate 501 in which a controller area 502 and a nonvolatile memory area 503 are defined. A memory controller 510 may be disposed in the controller area 502 of the substrate 501 , and a plurality of nonvolatile memory packages NVMPKG may be disposed in the nonvolatile memory area 503 . The nonvolatile memory packages NVMPKG may include a plurality of stacked nonvolatile memories (not shown), and each of the nonvolatile memories may include an internal temperature sensor. The memory controller 510 and the non-volatile memories may transmit and receive signals through channels (not shown). The memory controller 510 may obtain temperature values of non-volatile memories from an internal temperature sensor through channels.

스토리지 장치(500)는 하나 이상의 외부 온도 센서를 더 포함할 수 있다. 예를 들어, 제1 외부 온도 센서(531)는 기판(501)에서 비휘발성 메모리 영역(503) 바깥에 배치될 수 있으며, 제2 외부 온도 센서(532)는 비휘발성 메모리 영역(503) 내에 배치될 수 있다. 메모리 컨트롤러(510)는 비휘발성 메모리들과 신호를 송수신하는 채널들과는 별개의 인터페이스를 통해 제1 및 제2 외부 온도 센서(531, 532)로부터 온도 값을 획득할 수 있다.The storage device 500 may further include one or more external temperature sensors. For example, the first external temperature sensor 531 may be disposed outside the nonvolatile memory area 503 on the substrate 501, and the second external temperature sensor 532 may be disposed within the nonvolatile memory area 503. It can be. The memory controller 510 may obtain temperature values from the first and second external temperature sensors 531 and 532 through an interface separate from channels for transmitting and receiving signals to and from the nonvolatile memories.

본 발명의 실시 예에 따르면, 메모리 컨트롤러(510)는 비휘발성 메모리들의 내부 온도 센서로부터 온도 값들을 획득하고, 획득한 온도 값들 각각을 비휘발성 메모리들의 온도 값으로 결정할 수 있다. 메모리 컨트롤러(510)는 비휘발성 메모리들 중 타겟 비휘발성 메모리의 현재 온도 값에 기초하여 결정된 동작 커맨드를 상기 타겟 비휘발성 메모리로 제공할 수 있다.According to an embodiment of the present invention, the memory controller 510 may obtain temperature values from internal temperature sensors of non-volatile memories and determine each of the obtained temperature values as the temperature values of the non-volatile memories. The memory controller 510 may provide an operation command determined based on a current temperature value of a target nonvolatile memory among nonvolatile memories to the target nonvolatile memory.

메모리 컨트롤러(510)는 제1 외부 온도 센서(531)의 온도 값과 제2 외부 온도 센서(532)의 온도 값의 차이가 임계값 이상인 경우, 상기 복수의 비휘발성 메모리들의 내부 온도 센서로부터 온도 값을 획득하고, 현재 온도 값을 획득한 온도 값으로 업데이트할 수 있다. 반면에, 상기 온도 값의 차이가 임계값보다 작은 경우, 메모리 컨트롤러(510)는 비휘발성 메모리들의 온도 값을 업데이트하지 않고 유지할 수 있다.When the difference between the temperature value of the first external temperature sensor 531 and the temperature value of the second external temperature sensor 532 is greater than or equal to a threshold value, the memory controller 510 receives a temperature value from the internal temperature sensors of the plurality of non-volatile memories. may be obtained, and the current temperature value may be updated with the obtained temperature value. On the other hand, when the difference between the temperature values is smaller than the threshold value, the memory controller 510 may maintain the temperature values of the non-volatile memories without updating them.

비휘발성 메모리 영역(503)의 내부 온도나 외부 온도가 급격히 변하는 경우, 제1 및 제2 외부 온도 센서(531, 532)의 임계값 이상의 온도 차이가 검출될 수 있다. 메모리 컨트롤러(510)는 임계값 이상의 온도 차이가 검출되기 전까지는 비휘발성 메모리들의 내부 온도가 크게 변하지 않는 것으로 판단하고, 기존에 결정된 온도 값을 그대로 이용하여 비휘발성 메모리들로 동작 커맨드를 제공할 수 있다. 본 발명의 실시 예에 따르면, 비휘발성 메모리들의 온도 값을 결정하기 위해 요구되는 채널들의 입출력 워크로드가 감소될 수 있으므로, 스토리지 장치(500)의 성능이 개선될 수 있다.When the internal temperature or the external temperature of the nonvolatile memory area 503 changes rapidly, a temperature difference equal to or greater than a threshold value between the first and second external temperature sensors 531 and 532 may be detected. The memory controller 510 determines that the internal temperatures of the non-volatile memories do not significantly change until a temperature difference equal to or greater than a threshold value is detected, and may provide an operation command to the non-volatile memories using the previously determined temperature values. there is. According to an embodiment of the present invention, the performance of the storage device 500 can be improved because the input/output workload of the channels required to determine the temperature values of the non-volatile memories can be reduced.

도 15는 본 발명의 실시 예에 따른 스토리지 장치가 적용된 시스템을 나타내는 도면들이다.15 are diagrams illustrating a system to which a storage device according to an embodiment of the present invention is applied.

도 15는 본 발명의 일 실시예에 따른 스토리지(storage) 장치가 적용된 시스템(1000)을 도시한 도면이다. 도 15의 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 15의 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.15 is a diagram illustrating a system 1000 to which a storage device according to an embodiment of the present invention is applied. The system 1000 of FIG. 15 is basically a mobile phone such as a mobile phone, a smart phone, a tablet personal computer (PC), a wearable device, a healthcare device, or an internet of things (IOT) device. (mobile) system. However, the system 1000 of FIG. 15 is not necessarily limited to a mobile system, and can be used for vehicles such as a personal computer, a laptop computer, a server, a media player, or a navigation system. It may be an automotive device or the like.

도 15를 참조하면, 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.Referring to FIG. 15 , the system 1000 may include a main processor 1100, memories 1200a and 1200b, and storage devices 1300a and 1300b, and additionally includes an image capturing device. 1410, user input device 1420, sensor 1430, communication device 1440, display 1450, speaker 1460, power supplying device 1470 and connections It may include one or more of the connecting interfaces 1480 .

메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The main processor 1100 may control the overall operation of the system 1000, and more specifically, the operation of other components constituting the system 1000. The main processor 1100 may be implemented as a general-purpose processor, a dedicated processor, or an application processor.

메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(1130)를 더 포함할 수 있다. 이와 같은 가속기(1130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The main processor 1100 may include one or more CPU cores 1110 and may further include a controller 1120 for controlling the memories 1200a and 1200b and/or the storage devices 1300a and 1300b. Depending on embodiments, the main processor 1100 may further include an accelerator 1130 that is a dedicated circuit for high-speed data operations such as artificial intelligence (AI) data operations. Such an accelerator 1130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and/or a data processing unit (DPU), and may be physically independent from other components of the main processor 1100. It may be implemented as a separate chip.

메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.The memories 1200a and 1200b may be used as main memory devices of the system 1000 and may include volatile memories such as SRAM and/or DRAM, but may include non-volatile memories such as flash memory, PRAM, and/or RRAM. may be The memories 1200a and 1200b may also be implemented in the same package as the main processor 1100 .

스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. The storage devices 1300a and 1300b may function as non-volatile storage devices that store data regardless of whether or not power is supplied, and may have a relatively large storage capacity compared to the memories 1200a and 1200b. The storage devices 1300a and 1300b may include storage controllers 1310a and 1310b and non-volatile memories (NVMs) 1320a and 1320b that store data under the control of the storage controllers 1310a and 1310b. can Non-volatile memory (1320a, 1320b) may include a flash memory of a 2-dimensional (2D) structure or a 3-dimensional (3D) V-NAND (Vertical NAND) structure, but other types of PRAM and / or RRAM, etc. It may also include non-volatile memory.

스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.The storage devices 1300a and 1300b may be included in the system 1000 while being physically separated from the main processor 1100 or may be implemented in the same package as the main processor 1100 . In addition, the storage devices 1300a and 1300b have a form such as a solid state device (SSD) or a memory card, so that other components of the system 1000 can be accessed through an interface such as a connection interface 1480 to be described later. It may also be coupled to be detachable with the . The storage devices 1300a and 1300b may be devices to which standard rules such as UFS (Universal Flash Storage), eMMC (embedded multi-media card), or NVMe (non-volatile memory express) are applied, but are not necessarily limited thereto. It's not.

촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다. The photographing device 1410 may capture a still image or a video, and may be a camera, a camcorder, and/or a webcam.

사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.The user input device 1420 may receive various types of data input from a user of the system 1000, and may use a touch pad, a keypad, a keyboard, a mouse, and/or It may be a microphone or the like.

센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다. The sensor 1430 can detect various types of physical quantities that can be acquired from the outside of the system 1000 and convert the detected physical quantities into electrical signals. The sensor 1430 may be a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope sensor.

통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The communication device 1440 may transmit and receive signals with other devices outside the system 1000 according to various communication protocols. Such a communication device 1440 may be implemented by including an antenna, a transceiver, and/or a modem (MODEM).

디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The display 1450 and the speaker 1460 may function as output devices that output visual information and auditory information to the user of the system 1000, respectively.

전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리(도시되지 않음) 및/또는외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.The power supply device 1470 may appropriately convert power supplied from a battery (not shown) and/or an external power source built into the system 1000 and supply the power to each component of the system 1000 .

연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다. The connection interface 1480 may provide a connection between the system 1000 and an external device connected to the system 1000 and capable of exchanging data with the system 1000. The connection interface 1480 is an Advanced Technology (ATA) Attachment), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCI express (PCIe), NVMe, IEEE 1394, It can be implemented in various interface methods such as USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC, UFS, eUFS (embedded universal flash storage), CF (compact flash) card interface, etc. there is.

본 발명의 실시 예에 따르면, 스토리지 컨트롤러(1310a, 1310b)는 비휘발성 메모리(1320a, 1320b)의 온도 값이 속하는 온도 범위에 대응하는 동작 커맨드를 포함하는 데이터 신호를, CLE 신호가 인에이블되는 시구간에 비휘발성 메모리(1320a, 1320b)로 제공할 수 있다. 비휘발성 메모리(1320a, 1320b)는 상기 동작 커맨드에 정의된 유형의 동작을, 상기 동작 커맨드에 정의된 동작 파라미터를 이용하여 수행할 수 있다. 스토리지 컨트롤러(1310a, 1310b)는 상기 온도 값에 따른 별도의 동작 파라미터를 전송하지 않을 수 있으므로, 커맨드 전송 시간을 증가시키지 않고도 비휘발성 메모리(1320a, 1320b)의 온도 조건에 따른 동작 특성을 보상할 수 있다.According to an embodiment of the present invention, the storage controllers 1310a and 1310b transmit a data signal including an operation command corresponding to a temperature range to which the temperature value of the nonvolatile memory 1320a and 1320b belongs, and transmits a data signal at a time when the CLE signal is enabled. It can be provided as non-volatile memory (1320a, 1320b) between. The nonvolatile memories 1320a and 1320b may perform an operation of the type defined in the operation command using an operation parameter defined in the operation command. Since the storage controllers 1310a and 1310b may not transmit a separate operating parameter according to the temperature value, the operating characteristics of the nonvolatile memories 1320a and 1320b according to the temperature condition can be compensated without increasing the command transmission time. there is.

본 발명의 실시 예에 따르면, 스토리지 컨트롤러(1310a, 1310b)는 비휘발성 메모리(1320a, 1320b)의 온도 값을 결정하기 위해, 비휘발성 메모리(1320a, 1320b)에 연결된 채널들을 통해 비휘발성 메모리(1320a, 1320b)의 내부 온도 센서로부터 온도 값을 획득할 수 있다. 스토리지 컨트롤러(1310a, 1310b)는 비휘발성 메모리(1320a, 1320b)의 입출력 워크로드의 양에 따라서 비휘발성 메모리(1320a, 1320b)의 온도 값의 업데이트를 생략할 수 있다. 그리고, 스토리지 컨트롤러(1310a, 1310b)는 조건에 따라서 상기 채널들과는 별개의 인터페이스를 통해 연결되는 외부 온도 센서로부터의 온도 값에 기초하여 비휘발성 메모리(1320a, 1320b)의 온도 값의 업데이트를 수행할 수 있다. 스토리지 컨트롤러(1310a, 1310b)는 상기 현재 온도 값을 결정하기 위해 상기 내부 온도 센서로부터 온도 값을 획득하는 빈도를 줄임으로써, 채널의 입출력 워크로드의 양을 줄일 수 있다. 따라서, 현재 온도 값의 결정으로 인한 스토리지 장치(1300a, 1300b)의 성능 저하가 최소화될 수 있다.According to an embodiment of the present invention, the storage controllers 1310a and 1310b may determine the temperature values of the nonvolatile memories 1320a and 1320b through channels connected to the nonvolatile memories 1320a and 1320b. , a temperature value may be obtained from the internal temperature sensor of 1320b). The storage controllers 1310a and 1310b may omit updating the temperature values of the nonvolatile memories 1320a and 1320b according to the amount of I/O workload of the nonvolatile memories 1320a and 1320b. Also, the storage controllers 1310a and 1310b may update the temperature values of the nonvolatile memories 1320a and 1320b based on the temperature values from the external temperature sensor connected through an interface separate from the channels according to conditions. there is. The storage controllers 1310a and 1310b may reduce the amount of I/O workload of the channel by reducing the frequency of acquiring the temperature value from the internal temperature sensor to determine the current temperature value. Accordingly, performance degradation of the storage devices 1300a and 1300b due to the determination of the current temperature value may be minimized.

본 발명의 실시 예에 따르면, 메인 프로세서(1100)는 스토리지 장치(1300a, 1300b) 외부 온도 정보를 스토리지 컨트롤러(1310a, 1310b)로 제공할 수 있다. 예를 들어, 상기 외부 온도 정보는 스토리지 장치(1300a, 1300b)가 실장된 서버의 평균 온도 정보 등을 포함할 수 있다. 스토리지 컨트롤러(1310a, 1310b)는 상기 외부 온도 정보를 이용하여, 복수의 동작 유형들에 대해 제공되는 온도 범위별 동작 커맨드들 중에서 디폴트 커맨드를 결정할 수 있다. 스토리지 컨트롤러(1310a, 1310b)는 내부 온도 센서 등을 이용하여 비휘발성 메모리(1320a, 1320b)의 온도 값을 결정할 수 없는 경우에도, 상기 디폴트 커맨드를 이용하여 비휘발성 메모리(1320a, 1320b)의 온도에 따른 동작 특성을 보상할 수 있다.According to an embodiment of the present invention, the main processor 1100 may provide external temperature information of the storage devices 1300a and 1300b to the storage controllers 1310a and 1310b. For example, the external temperature information may include average temperature information of a server in which the storage devices 1300a and 1300b are mounted. The storage controllers 1310a and 1310b may use the external temperature information to determine a default command among operation commands for each temperature range provided for a plurality of operation types. Even if the storage controller 1310a or 1310b cannot determine the temperature value of the nonvolatile memory 1320a or 1320b using an internal temperature sensor or the like, the storage controller 1310a or 1310b uses the default command to determine the temperature of the nonvolatile memory 1320a or 1320b. According to the operating characteristics can be compensated.

본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.The present invention is not limited by the above-described embodiments and accompanying drawings, but is intended to be limited by the appended claims. Therefore, various forms of substitution, modification, and change will be possible by those skilled in the art within the scope of the technical spirit of the present invention described in the claims, which also falls within the scope of the present invention. something to do.

100, 400, 500: 스토리지 장치
110, 410, 510: 메모리 컨트롤러
NVM: 비휘발성 메모리
NTS: 내부 온도 센서
ETS, 431, 432: 외부 온도 센서
100, 400, 500: storage device
110, 410, 510: memory controller
NVM: non-volatile memory
NTS: internal temperature sensor
ETS, 431, 432: External temperature sensor

Claims (20)

내부 온도 센서를 포함하는 복수의 비휘발성 메모리들;
상기 복수의 비휘발성 메모리들과 제1 인터페이스를 통해 통신하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러; 및
상기 메모리 컨트롤러와 제2 인터페이스를 통해 통신하는 하나 이상의 외부 온도 센서를 포함하고,
상기 메모리 컨트롤러는
상기 하나 이상의 외부 온도 센서로부터 온도 값을 제1 주기로 획득하고, 상기 내부 온도 센서의 온도 값을 상기 제1 주기와 다른 제2 주기로 획득하며, 상기 하나 이상의 외부 온도 센서의 온도 값과 상기 내부 온도 센서의 온도 값의 차이가 제1 임계값 이하인 비휘발성 메모리의 온도 범위를 상기 외부 온도 센서의 온도 값에 기초하여 결정하고, 상기 온도 값의 차이가 상기 제1 임계값을 넘는 비휘발성 메모리의 온도 범위를 상기 내부 온도 센서의 온도 값을 이용하여 결정하며, 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리에 상기 복수의 동작 커맨드들 중에서 상기 타겟 비휘발성 메모리의 온도 범위에 대응하는 동작 커맨드를 제공하는
스토리지 장치.
a plurality of non-volatile memories including an internal temperature sensor;
a memory controller communicating with the plurality of nonvolatile memories through a first interface and having a plurality of operation commands defined for each temperature range of the nonvolatile memories; and
one or more external temperature sensors communicating with the memory controller through a second interface;
The memory controller
obtaining a temperature value from the one or more external temperature sensors in a first cycle, obtaining a temperature value of the internal temperature sensor in a second cycle different from the first cycle, and obtaining a temperature value of the one or more external temperature sensors and the internal temperature sensor A temperature range of the nonvolatile memory in which the difference between the temperature values of is less than or equal to a first threshold is determined based on the temperature value of the external temperature sensor, and the temperature range of the nonvolatile memory in which the difference between the temperature values exceeds the first threshold is determined. Determines using the temperature value of the internal temperature sensor, and provides an operation command corresponding to the temperature range of the target non-volatile memory among the plurality of operation commands to a target non-volatile memory among the plurality of non-volatile memories.
storage device.
제1항에 있어서,
상기 메모리 컨트롤러는
프로그램 동작, 리드 동작 및 이레이즈 동작을 포함하는 동작 유형들 각각에서 정의된 온도 범위별 동작 커맨드들 중에서 상기 타겟 비휘발성 메모리의 온도 범위 및 지시하려는 동작 유형에 대응하는 동작 커맨드를 선택하는
스토리지 장치.
According to claim 1,
The memory controller
Selecting an operation command corresponding to a temperature range of the target nonvolatile memory and an operation type to be instructed among operation commands for each temperature range defined in each operation type including program operation, read operation, and erase operation
storage device.
제1항에 있어서,
상기 메모리 컨트롤러는
상기 하나 이상의 외부 온도 센서의 온도 값과 상기 내부 온도 센서의 온도 값의 차이가 상기 제1 임계값을 넘는 비휘발성 메모리의 온도 범위를, 상기 복수의 비휘발성 메모리들의 평균 온도 값에 기초하여 결정하는
스토리지 장치.
According to claim 1,
The memory controller
Determining a temperature range of a nonvolatile memory in which a difference between a temperature value of the one or more external temperature sensors and a temperature value of the internal temperature sensor exceeds the first threshold value based on an average temperature value of the plurality of nonvolatile memories
storage device.
제1항에 있어서,
상기 하나 이상의 외부 온도 센서의 온도 값과 상기 내부 온도 센서의 온도 값의 차이가 상기 제1 임계값을 넘는 비휘발성 메모리의 온도 값을 상기 제1 인터페이스를 통해 다시 획득하고, 다시 획득된 온도 값에 기초하여 상기 비휘발성 메모리의 온도 범위를 결정하는
스토리지 장치.
According to claim 1,
A temperature value of the non-volatile memory in which a difference between a temperature value of the at least one external temperature sensor and a temperature value of the internal temperature sensor exceeds the first threshold value is acquired again through the first interface, and the obtained temperature value is Based on determining the temperature range of the non-volatile memory
storage device.
제4항에 있어서,
상기 메모리 컨트롤러는
호스트로부터 상기 스토리지 장치 외부의 온도 값을 수신하고, 상기 동작 유형들 각각에서 상기 수신된 온도 값이 속하는 온도 범위에 대응하는 커맨드를 디폴트 커맨드로 결정하는
스토리지 장치.
According to claim 4,
The memory controller
Receiving a temperature value outside the storage device from a host, and determining a command corresponding to a temperature range to which the received temperature value belongs as a default command in each of the operation types.
storage device.
제1항에 있어서,
상기 스토리지 장치는
상기 복수의 비휘발성 메모리들이 배치되는 비휘발성 메모리 영역, 및 상기 메모리 컨트롤러가 배치되는 메모리 컨트롤러 영역을 제공하는 기판을 더 포함하고,
상기 하나 이상의 외부 온도 센서는
상기 비휘발성 메모리 영역 내에 배치되는 제1 외부 온도 센서 및 상기 비휘발성 메모리 영역 밖에 배치되는 제2 외부 온도 센서를 포함하는
스토리지 장치.
According to claim 1,
the storage device
a substrate providing a nonvolatile memory area in which the plurality of nonvolatile memories are disposed and a memory controller area in which the memory controller is disposed;
The one or more external temperature sensors
A first external temperature sensor disposed within the non-volatile memory area and a second external temperature sensor disposed outside the non-volatile memory area.
storage device.
제6항에 있어서,
상기 메모리 컨트롤러는
상기 제1 외부 온도 센서의 온도 값과 상기 제2 외부 온도 센서의 온도 값의 차이가 제2 임계값 이상인 경우, 상기 내부 온도 센서의 온도 값에 기초하여 상기 복수의 비휘발성 메모리들의 온도 범위를 업데이트하는
스토리지 장치.
According to claim 6,
The memory controller
When the difference between the temperature value of the first external temperature sensor and the temperature value of the second external temperature sensor is greater than or equal to a second threshold value, the temperature ranges of the plurality of nonvolatile memories are updated based on the temperature value of the internal temperature sensor. doing
storage device.
제1항에 있어서,
상기 스토리지 장치는
상기 메모리 컨트롤러 및 상기 복수의 비휘발성 메모리들이 스택되는 기판을 더 포함하는
스토리지 장치.
According to claim 1,
the storage device
Further comprising a substrate on which the memory controller and the plurality of non-volatile memories are stacked
storage device.
제1항에 있어서,
상기 메모리 컨트롤러는
상기 복수의 비휘발성 메모리들로 제공될 동작 커맨드들을 큐잉하는 커맨드 큐를 더 포함하고, 상기 제1 주기 및 제2 주기의 비율은 상기 커맨드 큐에 큐잉된 커맨드의 개수에 따라 결정되는
스토리지 장치.
According to claim 1,
The memory controller
Further comprising a command queue for queuing operation commands to be provided to the plurality of non-volatile memories, wherein a ratio of the first cycle and the second cycle is determined according to the number of commands queued in the command queue
storage device.
제9항에 있어서,
상기 메모리 컨트롤러는
상기 커맨드 큐에 큐잉된 동작 커맨드들에 큐잉된 커맨드의 개수가 임계값 이하인 경우, 상기 제1 주기에 대한 상기 제2 주기의 비율을 증가시키는
스토리지 장치.
According to claim 9,
The memory controller
increasing the ratio of the second cycle to the first cycle when the number of commands queued in the operation commands queued in the command queue is less than or equal to a threshold value;
storage device.
제1항에 있어서,
상기 제2 인터페이스는
I2C(Inter-Integrated Circuit) 인터페이스인
스토리지 장치.
According to claim 1,
The second interface is
Inter-Integrated Circuit (I2C) interface
storage device.
내부 온도 센서를 포함하는 복수의 비휘발성 메모리들; 및
상기 복수의 비휘발성 메모리들을 제어하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는
상기 내부 온도 센서의 온도 값을 참조하여 상기 비휘발성 메모리들 각각의 온도 범위를 결정하고, 주기적으로 상기 비휘발성 메모리들 각각의 입출력 워크로드를 모니터링하고, 정해진 시구간에서 상기 입출력 워크로드의 양이 정해진 범위를 벗어난 제1 비휘발성 메모리의 상기 내부 온도 센서를 참조하여 상기 제1 비휘발성 메모리의 온도 범위를 업데이트하며, 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리에 상기 복수의 동작 커맨드들 중 상기 타겟 비휘발성 메모리의 온도 범위에 대응하는 동작 커맨드를 제공하는
스토리지 장치.
a plurality of non-volatile memories including an internal temperature sensor; and
A memory controller controlling the plurality of non-volatile memories and having a plurality of operation commands defined for each temperature range of the non-volatile memories;
The memory controller
The temperature range of each of the non-volatile memories is determined by referring to the temperature value of the internal temperature sensor, the input/output workload of each of the non-volatile memories is periodically monitored, and the amount of the input/output workload in a predetermined time period is determined. A temperature range of the first non-volatile memory is updated with reference to the internal temperature sensor of the first non-volatile memory out of a predetermined range, and among the plurality of operation commands is applied to a target non-volatile memory among the plurality of non-volatile memories. Providing an operation command corresponding to the temperature range of the target non-volatile memory
storage device.
제12항에 있어서,
상기 메모리 컨트롤러는
상기 입출력 워크로드의 양이 정해진 범위에 속하는 제2 비휘발성 메모리의 온도 범위를 유지하는
스토리지 장치.
According to claim 12,
The memory controller
Maintaining a temperature range of a second non-volatile memory belonging to a range in which the amount of the input/output workload is determined
storage device.
제12항에 있어서,
상기 비휘발성 메모리들 각각의 입출력 워크로드는
상기 정해진 시구간에서 상기 비휘발성 메모리들의 마모도(degree of wearout)의 증가량에 기초하여 결정되는
스토리지 장치.
According to claim 12,
The I/O workload of each of the non-volatile memories is
Determined based on the increase in the degree of wearout of the non-volatile memories in the predetermined time period
storage device.
제12항에 있어서,
상기 비휘발성 메모리들 각각의 입출력 워크로드는
상기 정해진 시구간에서 상기 비휘발성 메모리들 각각에서 리드된 데이터의 양에 기초하여 결정되는
스토리지 장치.
According to claim 12,
The I/O workload of each of the non-volatile memories is
Determined based on the amount of data read from each of the non-volatile memories in the predetermined time period
storage device.
제12항에 있어서,
상기 스토리지 장치는
상기 복수의 비휘발성 메모리들이 배치되는 비휘발성 메모리 영역, 및 상기 메모리 컨트롤러가 배치되는 메모리 컨트롤러 영역을 제공하는 기판;
상기 비휘발성 메모리 영역 내에 배치되는 제1 외부 온도 센서; 및
상기 비휘발성 메모리 영역 밖에 배치되는 제2 외부 온도 센서
를 더 포함하는 스토리지 장치.
According to claim 12,
the storage device
a substrate providing a nonvolatile memory area on which the plurality of nonvolatile memories are disposed and a memory controller area on which the memory controller is disposed;
a first external temperature sensor disposed in the non-volatile memory area; and
A second external temperature sensor disposed outside the non-volatile memory area
A storage device further comprising a.
제16항에 있어서,
상기 메모리 컨트롤러는 상기 제1 외부 온도 센서의 온도 값과 상기 제2 외부 온도 센서의 온도 값의 차이가 임계값 이상인 경우, 상기 내부 온도 센서의 온도 값을 참조하여 상기 복수의 비휘발성 메모리들의 온도 범위를 업데이트하는
스토리지 장치.
According to claim 16,
When the difference between the temperature value of the first external temperature sensor and the temperature value of the second external temperature sensor is greater than or equal to a threshold value, the memory controller refers to the temperature value of the internal temperature sensor to determine the temperature range of the plurality of nonvolatile memories. to update
storage device.
복수의 비휘발성 메모리들;
상기 복수의 비휘발성 메모리들을 제어하고, 비휘발성 메모리들의 온도 구간별로 정의된 복수의 동작 커맨드들을 갖는 메모리 컨트롤러; 및
상기 메모리 컨트롤러로부터 출력되는 CLE(Command Latch Enable) 신호 및 ALE(Address Latch Enable) 신호를 상기 복수의 비휘발성 메모리들 중 어느 하나로 제공하고, 상기 메모리 컨트롤러와 상기 복수의 비휘발성 메모리들 간 데이터 신호를 송수신하는 채널을 포함하고,
상기 메모리 컨트롤러는
상기 CLE 신호가 인에이블되는 제1 시구간에 상기 복수의 동작 커맨드들 중에서 상기 복수의 비휘발성 메모리들 중 타겟 비휘발성 메모리의 온도 값이 속하는 온도 범위에 대응하는 동작 커맨드를 포함하는 데이터 신호를 상기 타겟 비휘발성 메모리로 제공하고, 상기 ALE 신호가 인에이블되는 제2 시구간에 실질 어드레스를 포함하는 데이터 신호를 상기 타겟 비휘발성 메모리로 제공하며, 상기 CLE 신호가 인에이블되는 제3 시구간에 컨펌 커맨드를 포함하는 데이터 신호를 상기 타겟 비휘발성 메모리로 제공하는
스토리지 장치.
a plurality of non-volatile memories;
a memory controller that controls the plurality of nonvolatile memories and has a plurality of operation commands defined for each temperature range of the nonvolatile memories; and
Provides a CLE (Command Latch Enable) signal and ALE (Address Latch Enable) signal output from the memory controller to one of the plurality of non-volatile memories, and transmits a data signal between the memory controller and the plurality of non-volatile memories. Including transmission and reception channels,
The memory controller
During a first time period during which the CLE signal is enabled, a data signal including an operation command corresponding to a temperature range to which a temperature value of a target nonvolatile memory belongs among the plurality of nonvolatile memories among the plurality of operation commands is transmitted to the target A data signal including a real address is provided to the nonvolatile memory during a second time period when the ALE signal is enabled, and a confirm command is provided during a third time period when the CLE signal is enabled. To provide a data signal to the target non-volatile memory
storage device.
제18항에 있어서,
상기 제2 시구간은 상기 제1 시구간 이후의 시구간이며,
상기 제3 시구간은 상기 제2 시구간 이후의 시구간인
스토리지 장치.
According to claim 18,
The second time period is a time period after the first time period,
The third time period is a time period after the second time period.
storage device.
제18항에 있어서,
상기 메모리 컨트롤러는
상기 타겟 비휘발성 메모리에 지시하려는 동작의 유형 및 상기 온도 범위에 기초하여, 사전에 정의된 복수의 동작 커맨드들 중 상기 동작 커맨드를 선택하는
스토리지 장치.
According to claim 18,
The memory controller
Selecting the operation command from among a plurality of predefined operation commands based on the type of operation to be instructed to the target nonvolatile memory and the temperature range.
storage device.
KR1020220042010A 2021-12-03 2022-04-05 Storage device KR20230083974A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/932,073 US20230176788A1 (en) 2021-12-03 2022-09-14 Storage device
EP22211099.1A EP4191589A1 (en) 2021-12-03 2022-12-02 Storage device
CN202211539848.2A CN116230033A (en) 2021-12-03 2022-12-02 Storage device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210172043 2021-12-03
KR20210172043 2021-12-03

Publications (1)

Publication Number Publication Date
KR20230083974A true KR20230083974A (en) 2023-06-12

Family

ID=86770313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220042010A KR20230083974A (en) 2021-12-03 2022-04-05 Storage device

Country Status (1)

Country Link
KR (1) KR20230083974A (en)

Similar Documents

Publication Publication Date Title
US9666249B1 (en) Data storage device with temperature compensation and operating method thereof
KR102340446B1 (en) Storage device and data training method thereof
KR20190043022A (en) Storage device having parameter calibration function and method of operating the storage device
US10001827B2 (en) Power management method using fabric network and fabric network system using power management method
US10878924B2 (en) Data storage device intergrating host read commands and method of operating the same
US11023138B2 (en) Management operations in predictable latency mode
KR20210098717A (en) Controller, operating method thereof and storage device including the same
EP4191589A1 (en) Storage device
US10629275B2 (en) Data storage device and operating method thereof
KR20200144389A (en) Storage device and operation method thereof
US11269528B2 (en) Data storage device with reduced memory access operation method thereof and controller therefor
US20230195324A1 (en) Storage device
US20230084601A1 (en) Memory controller, memory system and operating method of the memory system
EP4180977A1 (en) Parameter change command for storage device interface tuning
KR20210006556A (en) Controller, memory system and operating method thereof
US20230069656A1 (en) Data storage device for refreshing data and operating method thereof
US11586379B2 (en) Memory system and method of operating the same
US11726871B2 (en) Storage controller for selecting a gear level of a storage device and storage system including the same
KR20230083974A (en) Storage device
KR20230094110A (en) Storage device
US10929055B2 (en) Memory system and operating method thereof
KR20230018215A (en) Storage device, storage controller and operating method of storage controller
KR20230018216A (en) Storage device and operating method of storage controller
KR102557992B1 (en) Memory controller, storage device, and operating method of storage device
EP4174663A1 (en) Storage device and operation method thereof