KR20240032362A - 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20240032362A
KR20240032362A KR1020220111249A KR20220111249A KR20240032362A KR 20240032362 A KR20240032362 A KR 20240032362A KR 1020220111249 A KR1020220111249 A KR 1020220111249A KR 20220111249 A KR20220111249 A KR 20220111249A KR 20240032362 A KR20240032362 A KR 20240032362A
Authority
KR
South Korea
Prior art keywords
input
data
toggling
memory device
signal
Prior art date
Application number
KR1020220111249A
Other languages
English (en)
Inventor
이현욱
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020220111249A priority Critical patent/KR20240032362A/ko
Priority to US18/159,685 priority patent/US20240079037A1/en
Publication of KR20240032362A publication Critical patent/KR20240032362A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load

Landscapes

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

Abstract

본 기술은 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것으로서, 데이터를 저장하기 위한 메모리 영역과, 제1구간동안 토글링 기준주기 및 기준횟수를 결정하며, 제1구간 이후 제2구간동안 기준주기 및 기준횟수에 기초하여 메모리 영역의 데이터를 입/출력하기 위해 외부에서 인가되는 외부제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하고, 판단결과에 따라 입력방어모드의 진입여부를 결정하는 동작제어부, 및 제2구간동안, 외부제어신호에 응답하여 설정된 동작을 수행한 뒤, 동작제어부의 출력신호에 응답하여 입력방어모드에 진입하는 경우 입력방어모드에 미리 정의된 방어동작을 수행하는 동작수행부를 포함한다.

Description

안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템{MEMORY DEVICE FOR SUPPORTING STABLE DATA TRANSFER AND MEMORY SYSTEM THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로서, 구체적으로 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
일반적으로 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 여러가지 반도체 장치 중 메모리 시스템(memory system)을 저장 매체로 사용하는 장치들, 예컨대, 디지털 카메라와 스마트폰 및 태블릿 피씨 등과 같은 이동형 디지털 전자 장치에서는 데이터를 저장하기 위해 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리(Nonvolatile memory device)를 포함할 수 있다. 휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터가 유지되는 메모리 장치이다.
한편, 메모리 시스템에는 메모리 장치와 함께 메모리 장치의 동작을 제어하기 위한 메모리 컨트롤러가 포함된다. 또한, 메모리 장치와 메모리 컨트롤러 사이에서 고속으로 데이터를 전송하기 위해 타이밍 레퍼런스 신호로서 데이터 스트로브 신호(Data Strobe Signal: DQS)를 사용한다. 그러나, 데이터 스트로브 신호의 일부 토글링이 손실되는 등의 오류가 발생할 경우, 안정적인 데이터 전송이 어려울 수 있다.
본 발명의 실시예는 외부에서 입력되는 데이터 전송을 위한 제어신호의 오류 발생 여부를 내부에서 확인하여 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템을 제공한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 메모리 장치는, 데이터를 저장하기 위한 메모리 영역; 제1구간동안 토글링 기준주기 및 기준횟수를 결정하며, 상기 제1구간 이후 제2구간동안 상기 기준주기 및 상기 기준횟수에 기초하여 상기 메모리 영역에 대한 데이터 입/출력 동작을 제어하기 위해 외부에서 인가되는 외부제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하고, 판단결과에 따라 입력방어모드의 진입여부를 결정하는 동작제어부; 및 상기 제2구간동안, 상기 외부제어신호에 응답하여 설정된 동작을 수행한 뒤, 상기 동작제어부의 출력신호에 응답하여 상기 입력방어모드에 진입하는 경우 상기 입력방어모드에 미리 정의된 방어동작을 수행하는 동작수행부를 포함할 수 있다.
본 발명의 다른 실시예에 따른 메모리 시스템은, 제1구간동안 토글링 기준주기 및 기준횟수를 결정하고, 상기 제1구간 이후 제2구간동안 외부에서 인가되는 제어신호에 응답하여 설정된 동작을 수행하며, 상기 설정된 동작의 수행구간에서 상기 기준주기 및 상기 기준횟수에 기초하여 상기 제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생여부를 판단하고, 판단결과에 따라 상기 설정된 동작의 수행이후 방어동작의 수행여부를 결정하는 메모리 장치; 및 상기 제2구간동안 상기 메모리 장치와의 사이에서 데이터를 입/출력하기 위해, 상기 기준주기에 기초하여 결정된 동작주기로 상기 기준횟수에 기초하여 결정된 동작횟수만큼 토글링하는 상기 제어신호를 생성하여 상기 메모리 장치로 출력하는 메모리 컨트롤러를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 장치의 동작방법은, 제1구간동안 토글링 기준주기 및 기준횟수를 결정하는 단계; 상기 제1구간 이후 제2구간동안 외부에서 인가되는 리드 인에이블 신호의 토글링 입력횟수만큼 데이터 스트로브 신호를 토글링시켜 메모리 영역으로부터 리드된 단위 데이터를 상기 입력횟수에 대응하는 개수만큼 외부로 출력하는 리드동작단계; 상기 리드동작단계의 수행구간에서 상기 기준주기 및 상기 기준횟수에 기초하여 상기 리드 인에이블 신호의 토글링 입력주기 및 상기 입력횟수에 대한 오류 발생 여부를 판단하는 리드판단단계; 및 상기 리드 인에이블 신호에서 오류가 발생한 경우 상기 리드동작단계의 수행구간 이후 방어횟수만큼 추가로 데이터 스트로브 신호를 토글링시켜 메모리 영역으로부터 리드된 단위 데이터를 상기 방어횟수에 대응하는 개수만큼 외부로 출력하는 리드방어단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 장치의 동작방법은, 제1구간동안 토글링 기준주기 및 기준횟수를 결정하는 단계; 상기 제1구간 이후 제2구간동안 외부에서 인가되는 데이터 스트로브 신호가 토글링하는 것에 응답하여 외부에서 입력되는 데이터를 버퍼영역에 저장하는 라이트동작단계; 상기 라이트동작단계의 수행구간에서 상기 데이터 스트로브 신호와 함께 외부에서 인가되며 토글링하는 라이트 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 상기 기준주기 및 상기 기준횟수에 기초하여 판단하는 라이트판단단계; 상기 라이트 인에이블 신호에서 오류가 발생한 경우 상기 라이트동작단계의 수행구간 이후 상기 버퍼영역에 저장된 데이터를 폐기(discard)한 뒤 라이트 실패를 나타내는 신호를 외부로 출력하는 단계; 및 상기 라이트 인에이블 신호에서 오류가 발생하지 않은 경우 상기 라이트동작단계의 수행구간 이후 상기 버퍼영역에 저장된 데이터를 메모리 영역에 저장하는 단계를 포함를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 장치는, 제1구간동안 결정된 토글링 기준주기 및 기준횟수를 저장하기 위한 제1저장영역; 데이터를 저장하기 위한 제2저장영역; 상기 제1구간 이후 제2구간동안 상기 제1저장영역에 저장된 상기 기준주기 및 상기 기준횟수에 기초하여 상기 제2저장영역에 대한 데이터 입/출력 동작을 제어하기 위해 외부에서 인가되는 외부제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하기 위한 판단부; 상기 판단부에서 상기 외부제어신호에 대해 적어도 한 번 이상의 오류가 발생하였다고 판단하는 것에 응답하여, 상기 외부제어신호의 종류에 따라 기 설정된 방어동작을 제어하기 위해 입력방어모드에 진입하는 방어모드 제어부; 및 상기 제2구간동안, 상기 외부제어신호에 응답하여 설정된 동작을 수행한 뒤, 상기 방어모드 제어부의 출력신호에 응답하여 상기 입력방어모드에 진입하는 경우 상기 방어동작을 수행하는 동작수행부를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 장치는, 제1구간동안 결정된 토글링 기준주기 및 기준횟수를 저장하기 위한 제1저장영역; 데이터를 저장하기 위한 제2저장영역; 상기 제1구간 이후 제2구간동안, 외부에서 인가되는 리드 인에이블 신호의 토글링 입력횟수만큼 데이터 스트로브 신호를 토글링시킨 뒤, 입력방어모드에 진입하는 경우 방어횟수만큼 상기 데이터 스트로브 신호를 토글링 시키는 토글링 생성부; 상기 제2구간동안 상기 제2저장영역에서 리드된 단위 데이터를 내부에 버퍼링한 뒤, 상기 데이터 스트로브 신호의 토글링에 응답하여 내부에 버퍼링된 단위 데이터를 외부로 출력하는 버퍼영역; 상기 제2구간동안 상기 제1저장영역에 저장된 상기 기준주기 및 상기 기준횟수에 기초하여 상기 리드 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하기 위한 판단부; 상기 판단부에서 상기 리드 인에이블 신호에 대해 적어도 한 번 이상의 오류가 발생하였다고 판단하는 것에 응답하여, 상기 방어횟수를 결정하고 상기 토글링 생성부를 상기 입력방어모드에 진입시키는 방어모드 제어부를 포함할 수 있다.
본 기술은 데이터 전송을 위한 제어신호가 메모리 장치로 입력될 때, 메모리 장치 내부에서 입력된 제어신호의 오류 발생 여부를 확인하고, 확인결과에 따라 오류 발생에 따른 피해를 최소화하기 위한 방어동작을 수행할 수 있다. 이를 통해, 메모리 장치에서 데이터를 안정적으로 전송할 수 있다.
도 1a 및 도 1b은 본 발명의 실시예에 따른 메모리 장치의 일 예를 설명한다.
도 2a는 본 발명의 실시예에 따른 메모리 장치가 포함된 메모리 시스템의 일 예를 설명한다.
도 2b는 본 발명의 실시예에 따른 메모리 장치가 포함된 데이터 처리장치의 일 예를 설명한다.
도 3a 및 도 3b는 본 발명의 실시예에 따른 메모리 장치에서 데이터 리드 동작의 일 예를 설명한다.
도 4a 및 도 4b는 본 발명의 실시예에 따른 메모리 장치에서 데이터 라이트 동작의 일 예를 설명한다.
도 5는 본 발명의 실시예에 따른 메모리 장치에서 데이터 리드 동작을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 메모리 장치에서 데이터 라이트 동작을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1a 및 도 1b는 본 발명의 실시예에 따른 메모리 장치의 일 예를 설명한다.
도 1a를 참조하면, 본 발명의 실시예에 따른 메모리 장치(10)는, 메모리 영역(20), 제어영역(30), 및 버퍼영역(60)을 포함할 수 있다. 제어영역(30)은, 동작제어부(40), 및 동작수행부(50)를 포함할 수 있다. 동작제어부(40)는, 트레이닝 동작제어부(41), 노말 동작제어부(42), 및 트레이닝 저장영역(43)을 포함할 수 있다. 동작수행부(50)는, 토글생성부(51), 및 버퍼제어부(52)를 포함할 수 있다.
도 1b를 참조하면, 동작제어부(40)에 포함된 노말 동작제어부(42)는, 방어모드 제어부(421)와, 판단부(422)와, 리드 동작부(423), 및 라이트 동작부(424)를 포함할 수 있다.
도 1a 및 도 1b를 함께 참조하면, 메모리 장치(10)는, 라이트(write) 동작을 통해 외부에서 제공된 데이터를 내부에 저장하고, 리드(read) 동작을 통해 내부에 저장된 데이터를 외부로 제공할 수 있다.
실시 예에 따라, 메모리 장치(10)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR), RDRAM(Rambus Dynamic Random Access Memory), 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND), 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory: RRAM), 상변화 메모리(phase-change random access memory: PRAM), 자기저항 메모리(magnetoresistive random access memory: MRAM), 강유전체 메모리(ferroelectric random access memory: FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory: STT-RAM) 등이 될 수 있다. 본 명세서에서는 설명의 편의를 위해, 메모리 장치(10)가 낸드 플래시 메모리인 경우를 가정하여 설명한다.
메모리 장치(10)는 외부로부터 커맨드 및 어드레스를 수신하고, 메모리 영역(20) 중 어드레스에 의해 선택된 영역을 액세스하도록 구성될 수 있다. 메모리 장치(10)는 어드레스에 의해 선택된 영역에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 예를 들면, 메모리 장치(10)는 쓰기 동작 (프로그램 동작), 리드 동작 및 소거 동작을 수행할 수 있다. 프로그램 동작 시에, 메모리 장치(10)는 어드레스에 의해 선택된 영역에 데이터를 프로그램 할 것이다. 리드 동작 시에, 메모리 장치(10)는 어드레스에 의해 선택된 영역으로부터 데이터를 읽을 것이다. 소거 동작 시에, 메모리 장치(10)는 어드레스에 의해 선택된 영역에 저장된 데이터를 소거할 것이다.
구체적으로, 메모리 장치(10)에 포함된 제어영역(30)은, 메모리 장치(10)의 전반적인 동작을 제어하기 위한 구성요소일 수 있다. 예컨대, 제어영역(30)은, 외부에서 인가된 라이트 커맨드 및 어드레스에 응답하여 외부에서 인가된 라이트 데이터를 버퍼영역(60)을 거쳐 메모리 영역(20)에 저장할 수 있다. 또한, 제어영역(30)은, 외부에서 인가된 리드 커맨드 및 어드레스에 응답하여 메모리 영역(20)에 저장되어 있는 데이터를 리드하여 버퍼영역(60)을 거쳐 외부로 출력할 수 있다.
그리고, 메모리 장치(10)에 포함된 메모리 영역(20)은, 데이터를 저장하기 위한 영역이다. 메모리 영역(20)은, 제어영역(30)의 출력신호(MSIG)에 응답하여 프로그램 동작이 수행될 때, 메모리 장치(10) 외부에서 버퍼영역(60)을 통해 입력되는 데이터를 전달받아 내부에 저장할 수 있다. 메모리 영역(20)은, 제어영역(30)의 출력신호(MSIG)에 응답하여 리드 동작이 수행될 때, 내부에 저장된 데이터를 리드한 뒤 리드된 데이터(IDATA)를 버퍼영역(60)을 통해 메모리 장치(10) 외부로 출력(EDATA)할 수 있다. 메모리 영역(20)은, 각각 데이터를 저장할 수 있는 다수의 메모리 셀을 포함할 수 있다. 다수의 메모리 셀은 각각 하나의 데이터 비트를 저장하는 싱글 레벨 셀(Single Level Cell; SLC), 두 개의 데이터 비트들을 저장하는 멀티 레벨 셀(Multi Level Cell; MLC), 세 개의 데이터 비트들을 저장하는 트리플 레벨 셀(Triple Level Cell; TLC) 또는 네 개의 데이터 비트를 저장할 수 있는 쿼드 레벨 셀(Quad Level Cell; QLC)로 구성될 수 있다.
또한, 메모리 영역(20)은, 다수의 메모리 블록을 포함할 수 있다. 각각의 메모리 블록은 다수의 메모리 셀들을 포함할 수 있다. 하나의 메모리 블록은 다수의 페이지들을 포함할 수 있다. 실시 예에서, 페이지는 메모리 장치(10)에 데이터를 저장하거나, 메모리 장치(10)에 저장된 데이터를 리드하는 단위일 수 있다. 메모리 블록은 데이터를 지우는 단위일 수 있다.
그리고, 메모리 장치(10)에 포함된 버퍼영역(60)은, 메모리 장치(10) 외부와 메모리 영역(20) 사이에서 입/출력되는 데이터(EDATA, IDATA)를 버퍼링할 수 있다.
한편, 본 발명의 실시예에 따른 메모리 장치(10)는, 제1구간동안 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)를 결정할 수 있다. 또한, 메모리 장치(10)는, 제1구간 이후 제2구간동안 외부에서 인가되는 외부제어신호(CSIG)에 응답하여 '설정된 동작'을 수행할 수 있다. 또한, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 외부제어신호(CSIG)의 토글링 입력주기 및 입력횟수에 대한 오류 발생여부를 판단하고, 판단결과에 따라 '설정된 동작'의 수행이후 '방어동작'을 수행할지 여부를 결정할 수 있다. 즉, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 외부제어신호(CSIG)에 오류가 발생한 것을 확인하는 경우, '설정된 동작'의 수행완료 이후 추가로 '방어동작'을 수행할 수 있다. 반대로, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 외부제어신호(CSIG)에 오류가 발생하지 않은 것을 확인하는 경우, '설정된 동작'의 수행완료 이후 '방어동작'을 수행하지 않을 수 있다.
참고로, 외부제어신호(CSIG)의 토글링 '입력주기'가 의미하는 것은, 외부에서 입력되는 외부제어신호(CSIG)의 특정 에지(edge)와 다른 특정 에지 사이의 간격을 의미할 수 있다. 특정 에지가 상승 에지(rising edge)를 의미하는 경우, 외부제어신호(CSIG)의 토글링이 시작된 후 외부제어신호(CSIG)의 앞선 상승 에지부터 이어지는 뒤선 상승 에지까지의 간격, 예컨대, 첫 번째 상승 에지부터 두 번째 상승 에지까지의 간격을 의미할 수 있다. 특정 에지가 하강 에지(falling edge)를 의미하는 경우, 외부제어신호(CSIG)의 토글링이 시작된 후 외부제어신호(CSIG)의 앞선 하강 에지부터 이어지는 뒤선 하강 에지까지의 간격, 예컨대, 두 번째 하강 에지부터 세 번째 하강 에지까지의 간격을 의미할 수 있다.
또한, 외부제어신호(CSIG)의 토글링 '입력횟수'가 의미하는 것은, 외부에서 입력되는 외부제어신호(CSIG)의 특정 에지가 반복되는 횟수를 의미할 수 있다. 특정 에지가 상승 에지를 의미하는 경우, 특정 크기의 데이터를 입/출력하기 위해 토글링하는 외부제어신호(CSIG)의 토글링 시작시점부터 토글링 완료시점까지 상승 에지가 반복되는 횟수를 의미할 수 있다. 특정 에지가 하강 에지를 의미하는 경우, 특정 크기의 데이터를 입/출력하기 위해 토글링하는 외부제어신호(CSIG)의 토글링 시작시점부터 토글링 완료시점까지 하강 에지가 반복되는 횟수를 의미할 수 있다.
구체적으로, 메모리 장치(10)의 제어영역(30)에 포함된 동작제어부(40)는, 제1구간동안 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)를 결정할 수 있다. 여기서, 제1구간은, 메모리 장치(10)에 전원이 공급되어 부팅(booting)하는 구간과, 외부에서 메모리 장치(10)로 인가되는 초기화 신호에 응답하여 초기화 동작을 수행하는 구간 중 어느 하나의 구간을 의미할 수 있다. 즉, 동작제어부(40)는, 부팅 구간과 초기화 구간 중 어느 하나의 구간에서 트레이닝 동작을 수행하여 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)를 결정할 수 있다.
동작제어부(40)는, 제1구간에서 결정된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)를 내부의 트레이닝 저장영역(43)에 저장할 수 있다.
동작제어부(40)는, 제1구간 이후 제2구간동안 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 외부제어신호(CSIG)의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하고, 판단결과에 따라 입력방어모드의 진입여부를 결정할 수 있다. 여기서, 제2구간은, 부팅 구간 또는 초기화 구간 이후 노말 동작, 예컨대, 리드/라이트 등의 동작을 수행하는 구간을 의미할 수 있다. 즉, 동작제어부(40)는, 노말 동작 구간에서 리드/라이트 등의 동작을 수행하기 위해 외부에서 인가되는 외부제어신호(CSIG)의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하고, 판단결과에 따라 입력방어모드의 진입여부를 결정할 수 있다.
동작제어부(40)는, 외부에서 입력되는 외부제어신호(CSIG)의 토글링 입력주기가 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY)와 적어도 한 번 이상 다른 경우, 외부제어신호(CSIG)에 오류가 발생하였다고 판단할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 판단부(422)는, 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 외부제어신호(CSIG)의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단할 수 있다. 판단부(422)는, 외부에서 입력되는 외부제어신호(CSIG)의 토글링 입력횟수가 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준횟수(REF_CNT)의 배수가 아닌 경우, 외부제어신호(CSIG)에 오류가 발생하였다고 판단할 수 있다. 판단부(422)는, 외부제어신호(CSIG)의 토글링 입력주기가 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY)와 적어도 한 번 이상 다른 경우 및 외부제어신호(CSIG)의 토글링 입력횟수가 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준횟수(REF_CNT)의 배수가 아닌 경우 중 적어도 어느 하나의 경우일 때, 외부제어신호(CSIG)에 오류가 발생하였다고 판단할 수 있다.
그리고, 메모리 장치(10)의 제어영역(30)에 포함된 동작수행부(50)는, 외부제어신호(CSIG)에 응답하여 '설정된 동작'을 수행할 수 있다. 또한, 동작수행부(50)는, '설정된 동작'을 수행한 뒤, 동작제어부(40)의 출력신호(DSIG)에 응답하여 입력방어모드에 진입할 수 있다. 입력방어모드에 진입하는 경우, 동작수행부(50)는, 입력방어모드에 미리 정의된 '방어동작'을 수행할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 방어모드 제어부(421)는, 판단부(422)에서 외부제어신호(CSIG)에 대해 적어도 한 번 이상 오류가 발생하였다고 판단하는 것에 응답하여 외부제어신호(CSIG)의 종류에 따라 기 설정된 '방어동작'을 제어하기 위해 입력방어모드에 진입할 수 있다. 방어모드 제어부(421)는, 판단부(422)의 출력신호(DF_SEL)에 응답하여 외부제어신호(CSIG)의 종류에 따라 기 설정된 '방어동작'을 제어하기 위해 입력방어모드에 진입할 수 있다. 방어모드 제어부(421)는, 입력방어모드에 진입하여 '방어동작'을 제어하기 위한 신호(DSIG)를 생성하여 동작수행부(50)로 출력할 수 있다. 즉, 동작수행부(50)는, 제2구간동안 외부제어신호(CSIG)에 응답하여 '설정된 동작'을 수행한 뒤, 방어모드 제어부(421)의 출력신호(DSIG)에 응답하여 입력방어모드에 진입하는 경우 '방어동작'을 수행할 수 있다. 이때, 동작수행부(50)는, 외부제어신호(CSIG)의 종류에 따라 입력방어모드에서 수행하는 '방어동작'의 종류를 다르게 설정할 수 있다.
한편, 외부제어신호(CSIG)는, 메모리 영역(20)의 데이터를 입/출력하기 위해 외부에서 인가되는 신호일 수 있다. 실시예에 따라, 외부제어신호(CSIG)는, 리드 동작시 메모리 영역(20)에서 리드된 리드 데이터(IDATA)가 메모리 장치(10) 외부로 출력되는 동작을 제어하기 위한 리드 인에이블 신호일 수 있다. 다른 실시예에 따라, 외부제어신호(CSIG)는, 라이트 동작시 메모리 장치(10) 외부에서 메모리 장치(10) 내부로 라이트 데이터(EDATA)가 입력되는 동작을 제어하기 위한 라이트 인에이블 신호일 수 있다.
좀 더 구체적으로, 외부제어신호(CSIG)가 리드 인에이블 신호인 리드 동작시, 동작제어부(40)는, 동작수행부(50)에서 '설정된 동작'을 수행하기 이전에 메모리 영역(20)에서 데이터(IDATA)를 리드하여 버퍼영역(60)에 저장할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 리드 동작부(423)는, 리드 동작시, 리드 인에이블 신호보다 먼저 입력된 리드 커맨드에 응답하여 메모리 영역(20)의 데이터를 리드하고, 리드된 데이터를 버퍼영역(60)에 저장할 수 있다.
동작수행부(50)는, 리드 인에이블 신호에 응답하여 데이터 스트로브 신호(DQS)를 생성하는 동작을 '설정된 동작'으로 수행할 수 있다. 즉, 동작수행부(50)는, 리드 인에이블 신호의 토글링 입력횟수만큼 토글링하는 데이터 스트로브 신호(DQS)를 생성하는 동작을 '설정된 동작'으로 수행할 수 있다. 동작수행부(50) 내부에 포함된 토글생성부(51)는, 리드 인에이블 신호의 토글링 입력횟수만큼 토글링하는 데이터 스트로브 신호(DQS)를 생성하는 동작을 '설정된 동작'으로 수행할 수 있다.
동작수행부(50)의 '설정된 동작'을 통해, 동작제어부(40)의 제어에 따라 버퍼영역(60)에 저장된 데이터 중 데이터 스트로브 신호(DQS)의 토글링 횟수에 대응하는 개수의 '단위 데이터'가 메모리 장치(10) 외부로 출력될 수 있다.
동작수행부(50)에서 '설정된 동작'을 수행하는 동안, 동작제어부(40)는, 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 리드 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 판단부(422)는, 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 리드 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단할 수 있다. 즉, 판단부(422)는, 동작수행부(50)에서 '설정된 동작'을 수행하는 동안, 외부에서 입력되는 리드 인에이블 신호의 토글링 입력횟수가 토글링 기준횟수의 배수가 아닌 경우와, 토글링 입력주기가 적어도 한 번 이상 토글링 기준주기와 다른 경우 중 어느 하나의 경우에 해당하면, 리드 인에이블 신호에 오류가 발생하였다고 판단할 수 있다.
이와 같은 경우, 동작제어부(40)는, 동작수행부(50)가 '설정된 동작'의 수행을 완료한 후 추가로 '방어동작'을 수행하도록 동작수행부(50)를 입력방어모드에 진입시킬 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 방어모드 제어부(421)는, 판단부(422)에서 리드 인에이블 신호에 대해 적어도 한 번 이상 오류가 발생하였다고 판단하는 것에 응답하여 리드 인에이블 신호에 대응하는 '방어동작'을 제어하기 위해 입력방어모드에 진입할 수 있다. 방어모드 제어부(421)는, 판단부(422)의 출력신호(DF_SEL)에 응답하여 리드 인에이블 신호에 대응하는 '방어동작'을 제어하기 위해 입력방어모드에 진입할 수 있다.
리드 동작시, 입력방어모드에 정의된 '방어동작'은, 데이터 스트로브 신호(DQS)를 방어횟수만큼 토글링시키는 동작일 수 있다. 즉, 동작수행부(50)는, 입력방어모드의 진입구간에서 데이터 스트로브 신호(DQS)를 방어횟수만큼 토글링시키는 동작을 리드 인에이블 신호에 대응하는 '방어동작'으로 수행할 수 있다. 동작수행부(50)에 포함된 토글생성부(51)는, 입력방어모드의 진입구간에서 데이터 스트로브 신호(DQS)를 방어횟수만큼 토글링시키는 동작을 '방어동작'으로 수행할 수 있다. 토글생성부(51)는, 방어모드 제어부(421)의 출력신호(DSIG)에 따라 입력방어모드에 진입하여 데이터 스트로브 신호(DQS)를 방어횟수만큼 토글링시키는 동작을 '방어동작'으로 수행할 수 있다. 토글생성부(51)는, 방어모드 제어부(421)의 출력신호(DSIG)에 응답하여 '방어동작'의 수행을 완료한 후, 입력방어모드에서 탈출할 수 있다.
동작제어부(40)는, 리드 동작에서 동작수행부(50)를 입력방어모드에 진입시킬 때, 리드 인에이블 신호의 토글링 입력횟수와 방어횟수를 합친 횟수가 트레이닝 저장영역(43)에 저장된 토글링 기준횟수(REF_CNT)의 배수가 되도록 방어횟수의 값을 결정할 수 있다. 동작제어부(40)는, 결정된 방어횟수만큼 데이터 스트로브 신호(DQS)를 토글링시키기 위한 신호(DSIG)를 생성하여 토글생성부(51)로 출력할 수 있다. 판단부(422)는, 리드 인에이블 신호의 토글링 입력횟수가 트레이닝 저장영역(43)에 저장된 토글링 기준횟수(REF_CNT)의 배수가 되기 위해 필요한 방어횟수의 값을 결정하고, 결정된 방어횟수의 값을 전달하기 위한 신호(DF_SIG)를 생성하여 방어모드 제어부(421)로 출력할 수 있다. 방어모드 제어부(421)는, 판단부(422)에서 결정된 방어횟수에 기초하여 토글생성부(51)를 제어하기 위한, 즉, 방어횟수만큼 데이터 스트로브 신호(DQS)를 토글링시키기 위한 신호(DSIG)를 생성하여 토글생성부(51)로 출력할 수 있다.
동작수행부(50)는, '설정된 동작'을 수행하는 동안 외부에서 입력되는 리드 인에이블 신호의 토글링 주파수와 동일한 주파수로 데이터 스트로브 신호(DQS)를 토글링시킬 수 있다. 동작수행부(50)에 포함된 토글생성부(51)는, '설정된 동작'을 수행하는 동안 외부에서 입력되는 리드 인에이블 신호의 토글링 주파수와 동일한 주파수로 데이터 스트로브 신호(DQS)를 토글링시킬 수 있다. 동작수행부(50)는, '방어동작'을 수행하는 동안 토글링시키는 데이터 스트로브 신호(DQS)의 주파수를 '설정된 동작'을 수행하는 동작 토글링시키는 데이터 스트로브 신호(DQS)의 주파수보다 작거나 같게 설정할 수 있다. 동작수행부(50)에 포함된 토글생성부(51)는, '방어동작'을 수행하는 동안 토글링시키는 데이터 스트로브 신호(DQS)의 주파수를 '설정된 동작'을 수행하는 동작 토글링시키는 데이터 스트로브 신호(DQS)의 주파수보다 작거나 같게 설정할 수 있다.
동작제어부(40)는, 제2구간 중 동작수행부(50)에서 '설정된 동작'을 수행하는 동안 외부에서 입력되는 리드 인에이블 신호에 오류가 발생하지 않았다고 판단할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 판단부(422)는, 제2구간 중 동작수행부(50)에서 '설정된 동작'을 수행하는 동안 외부에서 입력되는 리드 인에이블 신호에 오류가 발생하지 않았다고 판단할 수 있다. 즉, 판단부(422)는, 제2구간 중 동작수행부(50)에서 '설정된 동작'을 수행하는 동안, 외부에서 입력되는 리드 인에이블 신호의 토글링 입력횟수가 토글링 기준횟수의 배수이고, 동시에 토글링 입력횟수에 대응하는 모든 토글링 입력주기가 토글링 기준주기와 동일한 경우에 해당하면, 리드 인에이블 신호에 오류가 발생하지 않았다고 판단할 수 있다. 이와 같은 경우, 동작제어부(40)는, 동작수행부(50)가 '설정된 동작'의 수행을 완료한 후 추가로 '방어동작'을 수행하지 않도록 동작수행부(50)를 입력방어모드에 진입시키지 않을 수 있다. 즉, 방어모드 제어부(421)는, 판단부(422)의 출력신호(DF_SEL)에 응답하여 입력방어모드에 진입하지 않을 수 있으며, 동작수행부(50)가 입력방어모드에 진입하지 않도록 신호(DSIG)를 생성하여 동작수행부(50)로 출력할 수 있다.
좀 더 구체적으로, 외부제어신호(CSIG)가 라이트 인에이블 신호인 라이트 동작시, 동작수행부(50)는, 라이트 인에이블 신호와 함께 메모리 장치(10) 외부에서 입력되는 데이터 스트로브 신호(DQS)에 응답하여 라이트 데이터(EDATA)를 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다. 즉, 버퍼영역(60)은, 동작수행부(50)에서 출력되는 신호(BSIG) 및 외부에서 입력되는 데이터 스트로브 신호(DQS)에 응답하여 외부에서 입력되는 데이터(EDATA)를 내부에 저장할 수 있다. 이때, 동작수행부(50)는, 메모리 장치(10) 외부에서 입력되는 라이트 데이터(EDATA) 중 데이터 스트로브 신호(DQS)의 토글링 횟수에 대응하는 개수의 '단위 데이터'를 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다. 외부에서 입력되는 데이터 스트로브 신호(DQS)의 토글링 횟수는, 외부에서 입력되는 라이트 인에이블 신호의 토글링 입력횟수와 동일할 수 있다.
동작수행부(50)에서 '설정된 동작'을 수행하는 동안, 동작제어부(40)는, 내부의 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 라이트 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 판단부(422)는, 트레이닝 저장영역(43)에 저장된 토글링 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 라이트 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단할 수 있다.판단부(422)는, 동작수행부(50)에서 '설정된 동작'을 수행하는 동안, 외부에서 입력되는 라이트 인에이블 신호의 토글링 입력횟수가 토글링 기준횟수의 배수가 아닌 경우와, 토글링 입력주기가 적어도 한 번 이상 토글링 기준주기와 다른 경우 중 어느 하나의 경우에 해당하면, 라이트 인에이블 신호에 오류가 발생하였다고 판단할 수 있다.
이와 같은 경우, 동작제어부(40)는, 동작수행부(50)가 '설정된 동작'의 수행을 완료한 후 추가로 '방어동작'을 수행하도록 동작수행부(50)를 입력방어모드에 진입시킬 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 방어모드 제어부(421)는, 판단부(422)에서 라이트 인에이블 신호에 대해 적어도 한 번 이상 오류가 발생하였다고 판단하는 것에 응답하여 라이트 인에이블 신호에 대응하는 '방어동작'을 제어하기 위해 입력방어모드에 진입할 수 있다. 방어모드 제어부(421)는, 판단부(422)의 출력신호(DF_SEL)에 응답하여 라이트 인에이블 신호에 대응하는 '방어동작'을 제어하기 위해 입력방어모드에 진입할 수 있다.
라이트 동작시, 입력방어모드에 정의된 '방어동작'은, 버퍼영역(60)에 저장된 데이터를 폐기(discard)하는 동작일 수 있다. 즉, 동작수행부(50)는, 입력방어모드의 진입구간에서 버퍼영역(60)에 저장된 데이터를 폐기시키는 동작을 '방어동작'으로 수행할 수 있다. 동작수행부(50)에 포함된 버퍼제어부(52)는, 입력방어모드의 진입구간에서 버퍼영역(60)에 저장된 데이터를 폐기시키는 동작을 '방어동작'으로 수행할 수 있다. 버퍼제어부(52)는, 방어모드 제어부(421)의 출력신호(DSIG)에 따라 입력방어모드에 진입하여 버퍼영역(60)에 저장된 데이터를 폐기시키는 동작을 '방어동작'으로 수행할 수 있다. 이때, 버퍼영역(60)은, 버퍼제어부(52)에서 출력되는 신호(BSIG)에 응답하여 내부에 저장된 데이터를 폐기시킬 수 있다. 버퍼제어부(52)는, 방어모드 제어부(421)의 출력신호(DSIG)에 응답하여 '방어동작'의 수행을 완료한 후, 입력방어모드에서 탈출할 수 있다.
동작제어부(40)는, 라이트 동작에서 동작수행부(50)를 입력방어모드에 진입시키는 경우, 라이트 실패를 나타내는 신호(CACK)를 메모리 장치(10) 외부로 출력할 수 있다. 방어모드 제어부(421)는, 라이트 동작에서 버퍼제어부(52)를 입력방어모드에 진입시키는 경우, 라이트 실패를 나타내는 신호(CACK)를 메모리 장치(10) 외부로 출력할 수 있다.
동작제어부(40)는, 라이트 동작에서 '설정된 동작'의 수행 이후 동작수행부(50)를 입력방어모드에 진입시키지 않는 경우, 버퍼영역(60)에 저장된 데이터를 메모리 영역(20)에 프로그램할 수 있다. 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 판단부(422)는, 제2구간 중 동작수행부(50)에서 '설정된 동작'을 수행하는 동안 외부에서 입력되는 라이트 인에이블 신호에 오류가 발생하지 않았다고 판단할 수 있다. 즉, 동작제어부(40)는, 제2구간 중 동작수행부(50)에서 '설정된 동작'을 수행하는 동안, 외부에서 입력되는 라이트 인에이블 신호의 토글링 입력횟수가 토글링 기준횟수의 배수이고, 동시에 토글링 입력횟수에 대응하는 모든 토글링 입력주기가 토글링 기준주기와 동일한 경우에 해당하면, 라이트 인에이블 신호에 오류가 발생하지 않았다고 판단할 수 있다. 이와 같은 경우, 동작제어부(40)는, 동작수행부(50)가 '설정된 동작'의 수행을 완료한 후 버퍼영역(60)에 저장된 데이터를 메모리 영역(20)에 프로그램할 수 있다. 즉, 동작제어부(40)에 포함된 노말 동작제어부(40)의 구성요소 중 라이트 동작부(424)는, 버퍼영역(60)에 저장된 데이터를 메모리 영역(20)에 프로그램할 수 있다. 라이트 동작부(424)는, 라이트 인에이블 신호보다 먼저 입력된 라이트 커맨드에 응답하여 동작하지만, 라이트를 위한 데이터가 버퍼영역(60)에 저장되는 것을 기다린 후, 버퍼영역(60)에 저장된 데이터를 메모리 영역(20)에 프로그램할 수 있다. 동작수행부(50)의 '방어동작'을 통해 버퍼영역(60)에 저장된 데이터가 폐기된 경우, 라이트할 데이터가 버퍼영역(60)에 없는 상태이므로, 라이트 동작부(424)는, 프로그램 동작을 수행하지 않을 수 있다.
참고로, 외부제어신호(CSIG)의 실시예로서 설명된 리드 인에이블 신호 또는 라이트 인에이블 신호는, 일반적으로 메모리 장치(10) 외부에서 커맨드 및 어드레스가 입력되는 동작과 메모리 장치(10)에서 데이터가 입/출력되는 동작을 제어하기 위한 신호를 의미할 수 있다. 다만, 메모리 장치(10)의 종류에 따라 데이터가 입/출력되는 동작을 제어하기 위한 신호로, 외부제어신호(CSIG)를 직접 사용하는 대신 데이터 스트로브 신호(DQS)를 사용하는 것도 가능하다. 이와 같은 경우, 외부제어신호(CSIG)에 기초하여 데이터 스트로브 신호(DQS)가 생성될 수 있다. 예컨대, 데이터 스트로브 신호(DQS)의 토글링 동작은 외부제어신호(CSIG)의 토글링 동작에 연관되는 형태로 설정될 수 있다.
전술한 실시예에서는, 데이터 입/출력 동작을 제어하기 위해 외부제어신호(CSIG)인 리드 인에이블 신호 또는 라이트 인에이블 신호가 직접 사용되는 대신 데이터 스트로브 신호(DQS)가 사용되는 것을 예시하고 있다. 또한, 전술한 실시예에서는, 데이터 입/출력 동작을 제어하기 위해 외부제어신호(CSIG)에 기초하여 데이터 스트로브 신호(DQS)가 생성되는 경우, 외부제어신호(CSIG)의 토글링 주기 및 토글링 횟수가 데이터 스트로브 신호(DQS)의 토글링 주기 및 토글링 횟수와 항상 같은 값을 갖도록 설정되는 것을 예시하고 있다.
참고로, 데이터 스트로브 신호(DQS)가 한 번 토글링하는 것에 응답하여 메모리 장치(10)에서 입/출력되는 특정 크기를 갖는 데이터를 '단위 데이터'라고 정의할 수 있다. 예컨대, 데이터 스트로브 신호(DQS)가 한 번 토글링하는 것에 응답하여 메모리 장치(10)에서 1바이트(byte) 크기를 갖는 데이터가 입/출력되는 경우, '단위 데이터'는 1바이트 크기를 갖는 데이터를 의미할 수 있다.
그리고, 동작제어부(40)에 포함된 트레이닝 동작제어부(40)는, 제1구간동안 메모리 장치(10)에 대한 트레이닝 동작을 수행하고, 트레이닝 동작의 수행결과로서 토글링 기준주기(REF_DUTY)의 값을 결정할 수 있다. 트레이닝 동작제어부(40)는, 트레이닝 동작을 수행하여 결정된 토글링 기준주기(REF_DUTY)를 트레이닝 저장영역(43)에 저장할 수 있다.
트레이닝 동작은 DCC(duty cycle correction) 트레이닝 동작, 읽기 트레이닝 동작 또는 쓰기 트레이닝 동작일 수 있다. 트레이닝 동작은 메모리 장치(10)로 입/출력되는 신호의 위상, 진폭 등을 최적화하는 동작일 수 있다. 특히, DCC 트레이닝 동작을 통해, 토글링 기준주기(REF_DUTY)의 값을 결정할 수 있다.
또한, 트레이닝 동작제어부(40)는, 제1구간동안 메모리 장치(10) 외부에서 입력되는 토글링 기준횟수(REF_CNT)의 값을 트레이닝 저장영역(43)에 저장할 수 있다.
도 2a는 본 발명의 실시예에 따른 메모리 장치가 포함된 메모리 시스템의 일 예를 설명한다.
도 2a를 참조하면, 메모리 시스템(1)은, 메모리 장치(10), 및 메모리 컨트롤러(70)를 포함할 수 있다.
여기서, 도 2a의 메모리 시스템(1)에 포함된 메모리 장치(10)는, 전술한 도 1a에서 설명된 메모리 장치(10)를 의미할 수 있다. 따라서, 도 1a 및 도 2a에서 메모리 장치는 도면부호 '10'을 동일하게 사용하는 것을 알 수 있다. 도 1a 및 도 1b에서 메모리 장치(10)에 포함된 구성요소(20, 30, 40, 50, 60)와, 도 2a에서 메모리 장치(10)에 포함된 구성요소(20, 30, 40, 50, 60)도 완전히 동일한 것을 알 수 있다. 따라서, 도 2a에 대한 설명에서는, 도 1a 및 도 1b에서 설명된 내용과 중복되는 내용을 포함시키지 않도록 하겠다.구체적으로, 메모리 시스템(1)은 메모리 장치(10)와 컨트롤러(70)를 포함할 수 있다. 메모리 시스템(1) 내 메모리 장치(10)와 컨트롤러(70)는 물리적으로 구분되는 구성요소일 수 있다. 메모리 장치(10)와 컨트롤러(70)는 적어도 하나의 데이터 패스(data path)로 연결될 수 있다. 예를 들면, 데이터 패스는 채널(channel) 및/또는 웨이(way) 등으로 구성될 수 있다.
실시예에 따라, 메모리 장치(10)와 컨트롤러(70)는 기능적으로 구분되는 구성요소일 수 있다. 또한, 실시예에 따라, 메모리 장치(10)와 컨트롤러(70)는 하나의 반도체 장치 칩(chip) 혹은 복수의 반도체 장치 칩(chip)을 통해 구현될 수 있다. 실시예에 따라, 높은 집적도가 요구되는 메모리 시스템(1)의 경우, 메모리 장치(10)와 컨트롤러(70)는 하나의 반도체 장치 칩(chip)으로 구성될 수도 있다.
메모리 장치(10)는 데이터를 저장할 수 있다. 메모리 장치(10)는 메모리 컨트롤러(70)의 제어에 응답하여 동작한다.
메모리 장치(10)는 메모리 컨트롤러(70)로부터 커맨드 및 어드레스를 수신할 수 있다. 메모리 장치(10)는 메모리 영역(20) 중 수신된 어드레스에 의해 선택된 영역을 액세스하도록 구성된다. 선택된 영역을 엑세스 한다는 것은 선택된 영역에 대해서 수신된 커맨드에 해당하는 동작을 수행함을 의미한다. 예를 들면, 메모리 장치(10)는 쓰기 동작 (프로그램 동작), 리드 동작 및 소거 동작을 수행할 수 있다. 프로그램 동작 시에, 메모리 장치(10)는 어드레스에 의해 선택된 영역에 데이터를 프로그램 할 것이다. 리드 동작 시에, 메모리 장치(10)는 어드레스에 의해 선택된 영역으로부터 데이터를 읽을 것이다. 소거 동작 시에, 메모리 장치(10)는 어드레스에 의해 선택된 영역에 저장된 데이터를 소거할 것이다.
메모리 시스템(1)에 전원이 인가되면, 메모리 컨트롤러(70)는 펌웨어(firmware, FW)를 실행할 수 있다. 펌웨어(FW)는 호스트로부터 입력된 요청을 수신하거나 호스트로 응답을 출력하는 호스트 인터페이스 레이어(Host Interface Layer, HIL), 호스트의 인터페이스와 메모리 장치(10)의 인터페이스 사이의 동작의 관리하는 플래시 변환 레이어(Flash Translation Layer, FTL) 및 메모리 장치(10)에 커맨드를 제공하거나, 메모리 장치(10)로부터 응답을 수신하는 플래시 인터페이스 레이어(Flash Interface Layer, FIL)를 포함할 수 있다.
메모리 컨트롤러(70)는 호스트로부터 데이터와 논리 어드레스(Logical Address, LA)를 입력 받고, 논리 어드레스를 메모리 장치(10)에 포함된 데이터가 저장될 메모리 셀들의 주소를 나타내는 물리 어드레스(Physical Address, PA)로 변환할 수 있다. 논리 어드레스는 논리 블록 어드레스(Logical Block Address, LBA)일 수 있고, 물리 어드레스는 물리 블록 어드레스(Physical Block Address, PBA)일 수 있다.
메모리 컨트롤러(70)는 호스트의 요청에 따라 프로그램 동작, 리드 동작 또는 소거 동작 등을 수행하도록 메모리 장치(10)를 제어할 수 있다. 프로그램 동작 시, 메모리 컨트롤러(70)는 프로그램 커맨드, 물리 블록 어드레스 및 데이터를 메모리 장치(10)에 제공할 수 있다. 리드 동작 시, 메모리 컨트롤러(70)는 리드 커맨드 및 물리 블록 어드레스를 메모리 장치(10)에 제공할 수 있다. 소거 동작 시, 메모리 컨트롤러(70)는 소거 커맨드 및 물리 블록 어드레스를 메모리 장치(10)에 제공할 수 있다.
메모리 컨트롤러(70)는 호스트로부터의 요청과 무관하게 자체적으로 프로그램 동작, 리드 동작 또는 소거 동작을 수행하도록 메모리 장치(10)를 제어할 수 있다. 예를 들면, 메모리 컨트롤러(70)는 웨어 레벨링(wear leveling), 가비지 컬렉션(garbage collection), 리드 리클레임(read reclaim) 등의 배경 동작(background operation)을 수행하기 위해 사용되는 프로그램 동작, 리드 동작 또는 소거 동작을 수행하도록 메모리 장치(10)를 제어할 수 있다.
한편, 본 발명의 실시예에 따른 메모리 컨트롤러(70)는, 제1구간동안 메모리 장치와 트레이닝 동작을 수행하여 토글링 기준주기(REF_DUTY)의 값을 결정할 수 있다. 메모리 컨트롤러(70)는, 공정(Process), 전압(Voltage) 및 온도(Temperature)에 따른 변수에 관계없이 메모리 장치(10)와의 사이에서 데이터를 정상적으로 전송시키기 위해 제1구간동안 트레이닝 동작을 수행할 수 있다. 트레이닝 동작은 메모리 장치(10)와 메모리 컨트롤러(70)가 정확한 데이터를 교환하기 위해 메모리 장치(10) 및 메모리 컨트롤러(70)가 주고받는 신호의 위상, 진폭 등을 최적화하는 동작일 수 있다. 여기서, 제1구간은, 메모리 컨트롤러(70) 및 메모리 장치(10)에 전원이 공급되어 부팅(booting)하는 구간과, 메모리 컨트롤러(70)에서 메모리 장치(10)로 인가되는 초기화 신호에 응답하여 메모리 장치(10)가 초기화 동작을 수행하는 구간 중 어느 하나의 구간을 의미할 수 있다.
또한, 메모리 컨트롤러(70)는, 메모리 시스템(1)의 동작환경에 따라 기 설정된 토글링 기준횟수(REF_CNT)의 값을 메모리 장치(10)로 출력할 수 있다. 이때, 토글링 기준횟수(REF_CNT)는, 메모리 컨트롤러(70)와 메모리 장치(10) 사이에서 전달되는 신호의 최소 토글링 횟수를 의미할 수 있다. 예컨대, 메모리 컨트롤러(70)와 메모리 장치(10)는, 서로 간에 신호를 전송할 때 최소 8번을 토글링시킬 수 있으며, 그에 따라 토글링 기준횟수(REF_CNT)는 '8'이 될 수 있다. 여기서, 메모리 컨트롤러(70)는, 토글링 기준횟수(REF_CNT)로서 선택될 수 있는 다수의 토글링 횟수 값이 저장된 테이블을 포함할 수 있으며, 메모리 시스템(1)의 동작환경에 따라 다수의 토글링 횟수 값 중 어느 하나의 값을 토글링 기준횟수(REF_CNT)로서 선택할 수 있다. 또한, 메모리 시스템(1)의 동작환경은, 메모리 시스템(1)에 포함된 메모리 장치(10)의 종류, 메모리 시스템(1)에 포함된 메모리 컨트롤러(70)와 메모리 장치(10) 사이의 연결 인터페이스 방식 등을 의미할 수 있다.
메모리 장치(10)는, 제1구간동안 메모리 컨트롤러(70)의 제어에 따라 트레이닝 동작을 수행하여 결정된 토글링 기준주기(REF_DUTY)의 값을 트레이닝 저장영역(43)에 저장할 수 있다. 또한, 메모리 장치(10)는, 제1구간동안 메모리 컨트롤러(70)로부터 입력되는 토글링 기준횟수(REF_CNT)의 값을 트레이닝 저장영역(43)에 저장할 수 있다.
메모리 컨트롤러(70)는, 제1구간 이후 제2구간동안 메모리 장치(10)와의 사이에서 데이터를 입/출력하기 위해, 토글링 기준주기(REF_DUTY)에 기초하여 결정된 동작주기로 토글링 기준횟수(REF_CNT)에 기초하여 결정된 동작횟수만큼 토글링하는 제어신호(CSIG)를 생성하여 메모리 장치(10)로 출력할 수 있다. 즉, 메모리 컨트롤러(70)에서 메모리 장치(10)로 전달되는 제어신호(CSIG)는, 토글링 기준주기(REF_DUTY)로 토글링하도록 설정될 수 있다. 또한, 메모리 컨트롤러(70)에서 메모리 장치(10)로 전달되는 제어신호(CSIG)는, 토글링 기준횟수(REF_CNT)의 배수에 대응하는 횟수만큼 토글링하도록 설정될 수 있다. 여기서, 제2구간은, 부팅 구간 또는 초기화 구간 이후 노말 동작, 예컨대, 메모리 컨트롤러(70)의 요청에 따라 메모리 장치(10)에서 리드/라이트 등의 동작을 수행하는 구간을 의미할 수 있다.
메모리 장치(10)는, 제1구간 이후 제2구간동안 메모리 컨트롤러(70)에서 인가되는 제어신호(CSIG)에 응답하여 '설정된 동작'을 수행할 수 있다. 또한, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 기준주기(REF_DUTY) 및 기준횟수(REF_CNT)에 기초하여 제어신호(CSIG)의 토글링 입력주기 및 입력횟수에 대한 오류 발생여부를 판단하고, 판단결과에 따라 '설정된 동작'의 수행이후 '방어동작'을 수행할지 여부를 결정할 수 있다. 즉, 제어신호(CSIG)가 메모리 컨트롤러(70)에서 메모리 장치(10)로 전달되는 중에 예측하지 못한 오류로 인해 일부가 소실될 수 있다. 메모리 장치(10)는, 메모리 컨트롤러(70)로부터 입력되는 제어신호(CSIG)의 토글링 입력주기 및 입력횟수에 대한 오류 발생여부를 제1구간에서 결정된 토글링 기준주기(REF_DUTY) 및 토글링 기준횟수(REF_CNT)에 기초하여 판단할 수 있다. 메모리 장치(10)는, '설정된 동작'의 수행구간에서 제어신호(CSIG)에 오류가 발생한 것을 확인하는 경우, '설정된 동작'의 수행완료 이후 추가로 '방어동작'을 수행할 수 있다. 반대로, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 제어신호(CSIG)에 오류가 발생하지 않은 것을 확인하는 경우, '설정된 동작'의 수행완료 이후 '방어동작'을 수행하지 않을 수 있다.
제2구간에서 리드 동작시, 메모리 컨트롤러(70)는, 제어신호(CSIG)로서 리드 인에이블 신호를 생성하여 메모리 장치(10)로 출력할 수 있다. 이때, 리드 인에이블 신호는, 토글링 기준주기(REF_DUTY)로 토글링하고, 토글링 기준횟수(REF_CNT)의 배수에 대응하는 횟수만큼 토글링할 수 있다. 메모리 장치(10)는 리드 인에이블 신호에 응답하여 데이터 스트로브 신호(DQS)를 생성하는 동작을 '설정된 동작'으로 수행할 수 있다. 메모리 장치(10)는, '설정된 동작'의 수행구간에서 리드 인에이블 신호에 오류가 발생한 것으로 판단되는 경우, '설정된 동작'의 수행구간 이어서 '방어동작'을 통해 데이터 스트로브 신호(DQS)를 추가로 더 토글링시킬 수 있다. 메모리 장치(10)는, 메모리 영역(20)에서 리드된 데이터를 버퍼영역(60)에 저장한 뒤, 버퍼영역(60)에 저장된 데이터(EDATA)를 데이터 스트로브 신호(DQS)의 상승 에지(rising edge) 또는 하강 에지(falling edge)에 동기화시켜 메모리 컨트롤러(70)로 출력할 수 있다.
제2구간에서 라이트 동작시, 메모리 컨트롤러(70)는, 제어신호(CSIG)로서 라이트 인에이블 신호를 생성하여 메모리 장치(10)로 출력할 수 있다. 이때, 라이트 인에이블 신호는, 토글링 기준주기(REF_DUTY)로 토글링하고, 토글링 기준횟수(REF_CNT)의 배수에 대응하는 횟수만큼 토글링할 수 있다. 또한, 메모리 컨트롤러(70)는, 호스트로부터 입력되거나 내부에서 생성된 라이트 데이터를 메모리 장치(10)로 출력할 수 있다. 메모리 컨트롤러(70)는, 데이터 스트로브 신호(DQS)를 생성하여 메모리 장치(10)로 출력할 수 있다. 이때, 메모리 컨트롤러(70)는, 라이트 인에이블 신호의 토글링 횟수 및 토글링 주기에 기초하여 데이터 스트로브 신호(DQS)의 토글링 주기 및 토글링 횟수를 결정할 수 있다. 메모리 컨트롤러(70)는, 데이터 스트로브 신호(DQS)의 상승 에지(rising edge) 또는 하강 에지(falling edge)에 라이트 데이터를 동기화시켜 메모리 장치(10)로 전송할 수 있다. 메모리 장치(10)는, 메모리 컨트롤러(70)로부터 인가되는 라이트 데이터(EDATA)를 데이터 스트로브 신호(DQS)의 토글링에 응답하여 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다. 메모리 장치(10)는, '설정된 동작'의 수행구간에서 라이트 인에이블 신호에 오류가 발생하지 않은 것으로 판단되는 경우, 버퍼영역(60)에 저장된 데이터를 메모리 영역(20)에 프로그램할 수 있다. 메모리 장치(10)는, '설정된 동작'의 수행구간에서 라이트 인에이블 신호에 오류가 발생한 것으로 판단되는 경우, 버퍼영역(60)에 저장된 데이터를 폐기하고, 라이트 실패를 나타내는 신호(CACK)를 메모리 컨트롤러(70)로 출력할 수 있다. 제2구간에서 수행되는 메모리 장치(10)의 더 상세한 구체적인 동작은, 전술한 도 1a 및 도 1b에서 설명한 바 있으므로, 여기에서는 더 이상 설명하지 않도록 하겠다.
좀 더 구체적으로, 메모리 컨트롤러(70)는, 트레이닝 관리부(80), 및 신호 생성부(90)를 포함할 수 있다.
트레이닝 관리부(80)는, 제1구간동안 트레이닝 관리부(80)는 트레이닝 데이터를 생성하고, 생성한 트레이닝 데이터를 사용하여 트레이닝 동작을 수행할 수 있다. 예컨대, 트레이닝 관리부(80)는, 메모리 장치(10)와 DCC 트레이닝 동작, 읽기 트레이닝 동작 또는 쓰기 트레이닝 동작을 수행할 수 있다. 특히, 트레이닝 관리부(80)는, 메모리 장치(10)와 DCC 트레이닝 동작을 수행하여 토글링 기준주기(REF_DUTY)의 값을 결정할 수 있다.
트레이닝 관리부(80)는, 제1구간동안 토글링 기준횟수(REF_CNT)의 값을 결정하고, 결정된 토글링 기준횟수(REF_CNT)를 메모리 장치(10)로 전송할 수 있다.
신호 생성부(90)는, 제1구간 이후 제2구간동안 메모리 장치(10)와의 사이에서 데이터를 입/출력하기 위해, 토글링 기준주기(REF_DUTY)에 기초하여 결정된 동작주기로 토글링 기준횟수(REF_CNT)에 기초하여 결정된 동작횟수만큼 토글링하는 제어신호(CSIG)를 생성하여 메모리 장치(10)로 출력할 수 있다. 즉, 메모리 컨트롤러(70)에서 메모리 장치(10)로 전달되는 제어신호(CSIG)는, 토글링 기준주기(REF_DUTY)로 토글링하도록 설정될 수 있다. 또한, 메모리 컨트롤러(70)에서 메모리 장치(10)로 전달되는 제어신호(CSIG)는, 토글링 기준횟수(REF_CNT)의 배수에 대응하는 횟수만큼 토글링하도록 설정될 수 있다.
메모리 시스템(1)은 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 인터페이스 방식들 중 적어도 하나를 이용하여 호스트와 통신할 수 있다.
도 2b는 본 발명의 실시예에 따른 메모리 장치가 포함된 데이터 처리장치의 일 예를 설명한다.
도 2b를 참조하면, 데이터 처리 시스템은, 호스트(100) 및 메모리 시스템(1)을 포함할 수 있다.
여기서, 도 2b의 데이터 처리 시스템에 포함된 메모리 시스템(1)과 그에 포함된 메모리 컨트롤러(70) 및 메모리 장치(10)는, 전술한 도 2a에서 설명한 메모리 시스템(1)과 그에 포함된 메모리 컨트롤러(70) 및 메모리 장치(10)를 의미할 수 있다. 따라서, 도 2a 및 도 2b에서 메모리 시스템은 도면부호 '1'을 동일하게 사용하고, 메모리 컨트롤러는 도면부호 '70'을 동일하게 사용하며, 메모리 장치는 도면부호 '10'을 동일하게 사용하는 것을 알 수 있다.
그리고, 도 2a와 도 2b의 차이점은, 도 2a의 경우 메모리 컨트롤러(70)에 포함된 구성요소가 기능적인 동작의 관점에서 구분된 반면, 도 2b의 경우 메모리 컨트롤러(70)에 포함된 구성요소가 물리적인 장치의 관점에서 구분되었다는 점이다. 따라서, 도 2b에 대한 설명에서는, 물리적인 장치에 대한 설명과 함께, 도 2a에 개시된 메모리 컨트롤러(70)의 기능적인 동작이 물리적인 장치의 관점에서 어떻게 구현될 수 있는지를 개시하고, 중복되는 내용을 포함시키지 않도록 하겠다.
구체적으로, 데이터 처리 시스템에 포함된 호스트(100)와 메모리 시스템(70)은 데이터 버스(data bus), 호스트 케이블(host cable) 등과 같은 데이터 전달 수단을 통해 연결되어, 데이터를 송수신할 수 있다.
메모리 시스템(1)과 연동하는 호스트(100) 혹은 메모리 시스템(1)을 포함하는 데이터 처리 시스템은 오토모티브 등과 같은 모빌리티(mobility) 전자 장치, 전자 장치, 예컨대 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 비휴대용 전자 장치를 포함할 수 있다. 호스트(100)는, 적어도 하나의 운영 시스템(OS: operating system)을 통해 데이터 처리 시스템 또는 메모리 시스템(1)을 사용하는 사용자와 호스트(100) 간에 상호 동작을 제공할 수 있다. 호스트(100)는 사용자 요청에 해당하는 복수의 커맨드들을 메모리 시스템(1)으로 전송하며, 메모리 시스템(1)에서는 복수의 커맨드들에 해당하는 동작들(즉, 사용자 요청에 상응하는 동작들)을 수행할 수 있다.
메모리 시스템(1)은 솔리드 스테이트 드라이브(SSD: Solid State Drive), MMC, eMMC(embedded MMC), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(SD: Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다. 실시예에 따라, 컨트롤러(70)는 호스트 인터페이스(71), 프로세서(74), 메모리 인터페이스(72), 및 메모리(73)를 포함할 수 있다. 도 2b에서 설명한 컨트롤러(70)에 포함된 구성 요소들은 메모리 시스템(1)의 구현 형태, 동작 성능 등에 따라 달라질 수 있다. 컨트롤러(70)의 내부에 포함되는 구성 요소들은 메모리 시스템(1)의 구현 형태에 따라 추가되거나 제거될 수 있다.
호스트(100)와 메모리 시스템(1)은 약속된 규격에 대응하여 신호, 데이터 등을 송수신하기 위한 컨트롤러 혹은 인터페이스를 포함할 수 있다. 예를 들면, 메모리 시스템(1) 내 호스트 인터페이스(71)는 호스트(100)에 신호, 데이터 등을 송신하거나 호스트(100)로부터 전달되는 신호, 데이터 등을 수신할 수 있는 장치를 포함할 수 있다. 실시예에 따라, 호스트 인터페이스(71)는 호스트(100)와 데이터를 주고받는 영역으로 호스트 인터페이스 계층(HIL: Host Interface Layer, 이하 'HIL'이라 칭하기로 함)이라 불리는 펌웨어(firmware)를 통해 구현되거나 구동될 수 있다.
호스트(100)와 메모리 시스템(1)은 서로 약속된 규격을 통해 데이터를 송수신할 수 있다. 데이터를 송수신하기 위한 약속된 규격의 예로서 USB(Universal Serial Bus), MMC(Multi-Media Card), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), PCIE(Peripheral Component Interconnect Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), MIPI(Mobile Industry Processor Interface) 등과 같은 다양한 인터페이스 프로토콜이 있다. 실시예에 따라, 호스트(100)와 메모리 시스템(1)은 범용 직렬 버스(Universal Serial Bus, USB)를 통해 연결될 수 있다. 범용 직렬 버스(USB)는 키보드, 마우스, 조이스틱, 프린터, 스캐너, 저장 장치, 모뎀, 화상 회의 카메라 등과 같은 주변 장치에 대한 경제적인 표준 연결을 보장하는 확장성이 뛰어난 핫 플러그형 플러그 앤 플레이 직렬 인터페이스를 포함할 수 있다.
메모리 시스템(1)이 지원하는 NVMe(Non-volatile memory express)는 비휘발성 메모리 시스템(1)을 탑재한 서버, 컴퓨팅 장치 등의 호스트(100)의 성능 향상과 설계 유연성을 높일 수 있도록 만든 PCIe(Peripheral Component Interconnect Express, PCI Express) 인터페이스 기반의 프로토콜을 가리킬 수 있다. 여기서, PCIe는 컴퓨팅 장치와 같은 호스트(100)와 컴퓨팅 장치와 연결되는 주변 장치와 같은 메모리 시스템(1)을 연결하기 위한 슬롯(slot) 혹은 특정 케이블을 이용하여, 복수의 핀(예, 18개, 32개, 49개, 82개 등)과 적어도 하나의 배선(예, x1, x4, x8, x16 등)을 통해 배선 당 초당 수백 MB이상의 대역폭을 가질 수 있다. 이를 통해, PCIe는 초당 수십~수백 Gbit의 대역폭을 구현할 수 있다.
메모리 인터페이스(72)는, 컨트롤러(70)가 호스트(100)로부터의 요청에 응답하여 메모리 장치(10)를 제어하기 위해, 컨트롤러(70)와 메모리 장치(10) 간의 신호, 데이터를 송수신할 수 있다. 메모리 장치(10)가 플래시 메모리(예, NAND 플래시 메모리)일 경우, 메모리 인터페이스(72)는 NAND 플래시 컨트롤러(NAND Flash Controller, NFC)를 포함할 수 있다. 실시예에 따라, 메모리 인터페이스(72)는 메모리 장치(10) 간 데이터 입출력을 지원하며, 메모리 장치(10)와 데이터를 주고받는 영역으로 플래시 인터페이스 계층(FIL: Flash Interface Layer, 이하 'FIL'이라 칭하기로 함)이라 불리는 펌웨어(firmware)를 통해 구현되거나 구동될 수 있다. 실시예에 따라, 메모리 인터페이스(72)는 메모리 장치(10) 간 데이터 입출력을 위해 Open NAND Flash Interface(ONFi), 토글(toggle) 모드 등을 지원할 수 있다. 예를 들면, ONFi는 8-비트 혹은 16-비트의 단위 데이터에 대한 양방향(bidirectional) 송수신을 지원할 수 있는 신호선을 포함하는 데이터 경로(예, 채널, 웨이 등)를 사용할 수 있다. 컨트롤러(70)와 메모리 장치(10) 사이의 데이터 통신은 비동기식 SDR(Asynchronous Single Data Rate), 동기식 DDR(Synchronous Double Data Rate) 및 토글 DDR(Toggle Double Data Rate) 중 적어도 하나에 대한 인터페이스(interface)를 지원하는 장치를 통해 수행될 수 있다.
메모리(73)는 메모리 시스템(1) 및 컨트롤러(70)의 동작 메모리(working memory)로서, 메모리 시스템(1) 및 컨트롤러(70)의 구동을 위해 필요한 데이터 혹은 구동 중 발생한 데이터를 저장하거나 컨트롤러(70)가 수행하는 동작에 대한 정보를 저장할 수 있다. 실시예에 따라, 메모리(73)는 휘발성 메모리로 구현될 수 있으며, 예컨대 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 또는 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 등으로 구현될 수 있다. 실시예에 따라, 메모리(73)는 컨트롤러(70)의 내부에 존재하거나, 또는 컨트롤러(70)의 외부에 존재할 수 있으며, 이때 메모리 인터페이스를 통해 컨트롤러(70)로부터 데이터가 입출력 되는 외부 휘발성 메모리로 구현될 수도 있다.
프로세서(74)는 컨트롤러(70)의 동작을 제어할 수 있다. 호스트(100)로부터의 라이트 요청 또는 읽기 요청에 응답하여, 프로세서(74)는 메모리 장치(10)에 대한 프로그램 동작 또는 읽기 동작을 수행할 수 있다. 프로세서(74)는, 컨트롤러(70)의 데이터 입출력 동작을 제어하기 위해 호스트 인터페이스 계층(HIL), 플래시 변환 계층(FTL: Flash Translation Layer, 이하 'FTL'이라 칭하기로 함), 플래시 인터페이스 계층(FIL)이라 불리는 펌웨어(firmware)를 구동할 수 있다. 실시예에 따라, 프로세서(74)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현될 수 있다. 또한, 실시예에 따라, 프로세서(74)는 서로 구별되는 연산 처리 영역인 코어(core)가 두 개 이상이 집적된 회로인 멀티 코어(multi-core) 프로세서로 구현될 수도 있다.
한편, 도 2a에 개시된 메모리 컨트롤러(70)의 구성요소 중 트레이닝 관리부(80) 및 신호생성부(90)의 동작은, 도 2b에 개시된 프로세서(74)와 메모리 인터페이스(72) 및 메모리(73)의 동작을 통해 구현될 수 있다. 예컨대, 트레이닝 관리부(80)에서 수행하는 트레이닝 동작은, 프로세서와 메모리 인터페이스(72)를 통해 구현될 수 있다. 또한, 트레이닝 동작결과 생성된 토글링 기준주기(REF_DUTY) 및 토글링 기준횟수(REF_CNT)는, 메모리(73)에 저장될 수 있다.
도 3a 및 도 3b는 본 발명의 실시예에 따른 메모리 장치에서 데이터 리드 동작의 일 예를 설명한다.
도 3a를 참조하면, 본 발명의 실시예에 따른 메모리 장치(10)에서 리드 동작을 수행할 때, '설정된 동작'만 수행하고, '방어동작'을 수행하지 않는 경우를 알 수 있다.
구체적으로, 리드 인에이블 신호(RE#)가 토글링 기준주기(REF_DUTY)로 토글링하면서 메모리 장치(10)로 입력될 수 있다. 리드 인에이블 신호(RE#)의 토글링 횟수는 토글링 기준횟수(REF_CNT)의 배수로 설정될 수 있다.
도면에서는, 토글링 기준횟수(REF_CNT)가 5번으로 결정된 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 토글링 기준횟수(REF_CNT)인 5의 배수가 아닌 경우와, 리드 인에이블 신호(RE#)의 입력주기(IN_DUTY)가 적어도 한 번 이상 토글링 기준주기(REF_DUTY)와 다른 경우 중 어느 하나의 경우에 해당하면, 리드 인에이블 신호(RE#)에 오류가 발생하였다고 판단할 수 있다.
도면에서는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 5번으로써 토글링 기준횟수(REF_CNT)의 1배수인 것을 예시하고 있다. 또한, 리드 인에이블 신호(RE#)의 토글링 입력주기(IN_DUTY)가 모두 토글링 기준주기(REF_DUTY)와 동일한 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 리드 인에이블 신호(RE#)에 오류가 발생하지 않은 것으로 판단할 수 있으며, '설정된 동작'을 수행한 후, '방어동작'을 수행하지 않을 수 있다.
메모리 장치(10)는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)만큼 데이터 스트로브 신호(DQS)를 토글링시키는 동작을 '설정된 동작'으로 수행할 수 있다. 도면에서는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 5번인 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 데이터 스트로브 신호(DQS)를 총 5번 토글링시키는 동작을 '설정된 동작'으로 수행할 수 있다. 메모리 장치(10)는, 메모리 영역(20)으로부터 리드된 다수의 '단위 데이터'를 버퍼영역(60)에 저장한 뒤, 데이터 스트로브 신호(DQS)가 한 번 토글링하는 것에 대응하여 2개의 '단위 데이터'를 출력하는 방식, 즉, 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지 각각에서 하나의 '단위 데이터'를 출력하는 방식으로 동작하여 버퍼영역(60)에서 총 10개의 '단위 데이터'(D<1:10>)를 출력할 수 있다.
도 3b를 참조하면, 본 발명의 실시예에 따른 메모리 장치(10)에서 리드 동작을 수행할 때, '설정된 동작'을 수행한 후 이어서 '방어동작'을 수행하는 경우를 알 수 있다.
구체적으로, 리드 인에이블 신호(RE#)가 토글링 기준주기(REF_DUTY)로 토글링하면서 메모리 장치(10)로 입력될 수 있다. 리드 인에이블 신호(RE#)의 토글링 횟수는 토글링 기준횟수(REF_CNT)의 배수로 설정될 수 있다.
도면에서는, 토글링 기준횟수(REF_CNT)가 5번으로 결정된 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 토글링 기준횟수(REF_CNT)인 5의 배수가 아닌 경우와, 리드 인에이블 신호(RE#)의 입력주기(IN_DUTY)가 적어도 한 번 이상 토글링 기준주기(REF_DUTY)와 다른 경우 중 어느 하나의 경우에 해당하면, 리드 인에이블 신호(RE#)에 오류가 발생하였다고 판단할 수 있다.
도면에서는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 4번으로써 토글링 기준횟수(REF_CNT)의 배수가 아닌 것을 예시하고 있다. 또한, 리드 인에이블 신호(RE#)의 토글링 입력주기(IN_DUTY) 중 일부가 토글링 기준주기(REF_DUTY)보다 긴 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 리드 인에이블 신호(RE#)에 오류가 발생한 것으로 판단할 수 있으며, '설정된 동작'을 수행한 후, '방어동작'을 수행할 수 있다. 참고로, 리드 인에이블 신호(RE#) 중 점선으로 토글링된 도시된 부분은 토글링하지 않고 소실된 상태를 의미한다.
메모리 장치(10)는, '설정된 동작'구간에서 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 4번인 것을 확인하고, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)와 방어횟수(D_CNT)를 합한 횟수가 토글링 기준횟수(REF_CNT)인 5의 배수가 될 수 있도록, 방어횟수(D_CNT)를 1번으로 결정할 수 있다. 즉, 메모리 장치(10)는, '설정된 동작'의 수행이 완료된 후 수행되는 '방어동작'에서 메모리 컨트롤러(70)로부터 인가된 리드 인에이블 신호(RE#)가 토글링하지 않은 상태임에도 내부적으로는 리드 인에이블 신호(RE#)를 1번 더 토글링시키는 동작을 수행할 수 있다.
메모리 장치(10)는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)만큼 데이터 스트로브 신호(DQS)를 토글링시키는 동작을 '설정된 동작'으로 수행할 수 있다. 또한, 메모리 장치(10)는, '설정된 동작'의 수행이 완료된 후 리드 인에이블 신호(RE#)를 방어횟수(D_CNT)만큼 추가로 토글링시켜 데이터 스트로브 신호(DQS)를 방어횟수(D_CNT)만큼 추가로 토글링시키는 동작을 '방어동작'으로 수행할 수 있다. 도면에서는, 리드 인에이블 신호(RE#)의 토글링 입력횟수(IN_CNT)가 4번이고, 방어횟수(D_CNT)가 1번인 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 데이터 스트로브 신호(DQS)를 4번 토글링시키는 동작을 '설정된 동작'으로 수행한 뒤, 데이터 스트로브 신호(DQS)를 1번 토글링시키는 동작을 '방어동작'으로 수행할 수 있다.
메모리 장치(10)는, 메모리 영역(20)으로부터 리드된 다수의 '단위 데이터'를 버퍼영역(60)에 저장한 뒤, 데이터 스트로브 신호(DQS)가 한 번 토글링하는 것에 대응하여 2개의 '단위 데이터'를 출력하는 방식, 즉, 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지 각각에서 하나의 '단위 데이터'를 출력하는 방식으로 동작하여 버퍼영역(60)에서 총 10개의 '단위 데이터'(D<1:10>)를 출력할 수 있다. 이와 같이, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 리드 인에이블 신호(RE#)에 오류가 발생한 경우 '방어동작'을 수행함으로써, 리드 동작의 목표로 제시된 개수의 '단위 데이터'가 소실되지 않고 메모리 장치(10)에서 출력되도록 할 수 있다.
도 4a 및 도 4b는 본 발명의 실시예에 따른 메모리 장치에서 데이터 라이트 동작의 일 예를 설명한다.
도 4a를 참조하면, 본 발명의 실시예에 따른 메모리 장치(10)에서 라이트 동작을 수행할 때, '설정된 동작'만 수행하고, '방어동작'을 수행하지 않는 경우를 알 수 있다.
구체적으로, 라이트 인에이블 신호(WE#)가 토글링 기준주기(REF_DUTY)로 토글링하면서 메모리 장치(10)로 입력될 수 있다. 라이트 인에이블 신호(WE#)의 토글링 횟수는 토글링 기준횟수(REF_CNT)의 배수로 설정될 수 있다. 또한, 라이트 인에이블 신호(WE#)의 토글링 주기 및 토글링 횟수에 기초하여 생성된 데이터 스트로브 신호(DQS)가 메모리 장치(10)로 입력될 수 있다. 따라서, 데이터 스트로브 신호(DQS)의 토글링 횟수는 토글링 기준횟수(REF_CNT)의 배수로 설정될 수 있다. 즉, 라이트 인에이블 신호(WE#) 및 데이터 스트로브 신호(DQS)는, 메모리 컨트롤러(70)에서 생성될 때 토글링 입력주기(IN_DUTY) 및 토글링 입력횟수(IN_CNT)가 이미 결정된 상태에서 메모리 장치(10)로 입력될 수 있다. 또한, 데이터 스트로브 신호(DQS)에 동기화되어 메모리 장치(10)로 입력되는 라이트 데이터에 포함된 '단위 데이터'의 개수도 미리 결정된 상태일 수 있다.
도면에서는, 토글링 기준횟수(REF_CNT)가 5번으로 결정된 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 토글링 기준횟수(REF_CNT)인 5의 배수가 아닌 경우와, 라이트 인에이블 신호(WE#)의 입력주기(IN_DUTY)가 적어도 한 번 이상 토글링 기준주기(REF_DUTY)와 다른 경우 중 어느 하나의 경우에 해당하면, 라이트 인에이블 신호(WE#)에 오류가 발생하였다고 판단할 수 있다.
도면에서는, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 5번으로써 토글링 기준횟수(REF_CNT)의 1배수인 것을 예시하고 있다. 또한, 라이트 인에이블 신호(WE#)의 토글링 입력주기(IN_DUTY)가 모두 토글링 기준주기(REF_DUTY)와 동일한 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 라이트 인에이블 신호(WE#)에 오류가 발생하지 않은 것으로 판단할 수 있으며, '설정된 동작'을 수행한 후, '방어동작'을 수행하지 않을 수 있다.
메모리 장치(10)는, 라이트 인에이블 신호(WE#)와 함께 입력되며, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)만큼 토글링하는 데이터 스트로브 신호(DQS)에 응답하여 라이트 데이터를 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다.
도면에서는, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 5번인 것을 예시하고 있다. 또한, 데이터 스트로브 신호(DQS)의 토글링 횟수도 5번인 것을 예시하고 있다. 또한, 데이터 스트로브 신호(DQS)가 한 번 토글링하는 것에 대응하여 2개의 '단위 데이터'가 입력되는 방식, 즉, 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지 각각에서 하나의 '단위 데이터'를 입력받는 방식으로 총 10개의 '단위 데이터'가 라이트 데이터로서 메모리 장치(10)로 입력되는 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 총 5번 토글링하는 데이터 스트로브 신호(DQS)에 응답하여 총 10개의 '단위 데이터'를 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다.
도 4b를 참조하면, 본 발명의 실시예에 따른 메모리 장치(10)에서 라이트 동작을 수행할 때, '설정된 동작'을 수행한 후 이어서 '방어동작'을 수행하는 경우를 알 수 있다.
구체적으로, 라이트 인에이블 신호(WE#)가 토글링 기준주기(REF_DUTY)로 토글링하면서 메모리 장치(10)로 입력될 수 있다. 라이트 인에이블 신호(WE#)의 토글링 횟수는 토글링 기준횟수(REF_CNT)의 배수로 설정될 수 있다. 또한, 라이트 인에이블 신호(WE#)의 토글링 주기 및 토글링 횟수에 기초하여 생성된 데이터 스트로브 신호(DQS)가 메모리 장치(10)로 입력될 수 있다. 따라서, 데이터 스트로브 신호(DQS)의 토글링 횟수는 토글링 기준횟수(REF_CNT)의 배수로 설정될 수 있다. 즉, 라이트 인에이블 신호(WE#) 및 데이터 스트로브 신호(DQS)는, 메모리 컨트롤러(70)에서 생성될 때 토글링 입력주기(IN_DUTY) 및 토글링 입력횟수(IN_CNT)가 이미 결정된 상태에서 메모리 장치(10)로 입력될 수 있다. 또한, 데이터 스트로브 신호(DQS)에 동기화되어 메모리 장치(10)로 입력되는 라이트 데이터에 포함된 '단위 데이터'의 개수도 미리 결정된 상태일 수 있다.
도면에서는, 토글링 기준횟수(REF_CNT)가 5번으로 결정된 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 토글링 기준횟수(REF_CNT)인 5의 배수가 아닌 경우와, 라이트 인에이블 신호(WE#)의 입력주기(IN_DUTY)가 적어도 한 번 이상 토글링 기준주기(REF_DUTY)와 다른 경우 중 어느 하나의 경우에 해당하면, 라이트 인에이블 신호(WE#)에 오류가 발생하였다고 판단할 수 있다.
도면에서는, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 4번으로써 토글링 기준횟수(REF_CNT)의 배수가 아닌 것을 예시하고 있다. 또한, 라이트 인에이블 신호(WE#)의 토글링 입력주기(IN_DUTY) 중 일부가 토글링 기준주기(REF_DUTY)보다 긴 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 라이트 인에이블 신호(WE#)에 오류가 발생한 것으로 판단할 수 있으며, '설정된 동작'을 수행한 후, '방어동작'을 수행할 수 있다. 참고로, 라이트 인에이블 신호(WE#) 중 점선으로 토글링된 도시된 부분은 토글링하지 않고 소실된 상태를 의미한다.
메모리 장치(10)는, 라이트 인에이블 신호(WE#)와 함께 입력되며, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)만큼 토글링하는 데이터 스트로브 신호(DQS)에 응답하여 라이트 데이터를 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다.
도면에서는, 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 4번인 것을 예시하고 있다. 또한, 데이터 스트로브 신호(DQS)의 토글링 횟수도 4번인 것을 예시하고 있다. 또한, 데이터 스트로브 신호(DQS)가 한 번 토글링하는 것에 대응하여 2개의 '단위 데이터'가 입력되는 방식, 즉, 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지 각각에서 하나의 '단위 데이터'를 입력받는 방식으로 총 8개의 '단위 데이터'(D<1:6, 9:10>)가 라이트 데이터로서 메모리 장치(10)로 입력되는 것을 예시하고 있다. 따라서, 메모리 장치(10)는, 총 4번 토글링하는 데이터 스트로브 신호(DQS)에 응답하여 총 8개의 '단위 데이터' (D<1:6, 9:10>)를 버퍼영역(60)에 저장하는 동작을 '설정된 동작'으로 수행할 수 있다. 이렇게, 라이트 동작을 통해 메모리 장치(10)의 메모리 영역(20)에 저장하고자 하는 '단위 데이터' 개수의 목표는 총 10개(D<1:10>)로 결정된 상태이지만, 라이트 인에이블 신호(WE#)에 오류가 발생하면서, 실제 메모리 장치(10)로 입력되는 '단위 데이터'의 총 개수는 8개(D<1:6, 9:10>)가 될 수 있다.
메모리 장치(10)는, '설정된 동작'구간에서 라이트 인에이블 신호(WE#)의 토글링 입력횟수(IN_CNT)가 4번인 것을 확인하고, 라이트 인에이블 신호(WE#)에 오류가 발생하였다고 판단할 수 있다. 이렇게, 라이트 인에이블 신호(WE#)의 토글링 횟수가 목표로 했던 횟수인 5번보다 부족하기 때문에, 목표로 했던 10개(D<1:10>)가 아닌 8개의 '단위 데이터' (D<1:6, 9:10>)만 버퍼영역(60)에 저장될 수 있다. 따라서, 메모리 장치(10)는, '설정된 동작'의 수행을 완료한 후, '방어동작'을 수행하여 버퍼영역(60)에 저장된 데이터(D<1:6, 9:10>)를 폐기할 수 있다. 메모리 장치(10)는, '방어동작'을 수행할 때, 라이트 동작이 실패하였음을 나타내는 신호를 메모리 컨트롤러(70)로 출력할 수 있다. 이렇게, '방어동작'을 통해 버퍼영역(60)에 저장된 데이터를 폐기하였으므로, 메모리 장치(10)는, 버퍼영역(60)에 저장된 데이터(D<1:6, 9:10>)를 메모리 영역(20)에 프로그램하는 동작을 수행하지 않을 수 있다. 이와 같이, 메모리 장치(10)는, '설정된 동작'의 수행구간에서 라이트 인에이블 신호(WE#)에 오류가 발생한 경우 '방어동작'을 수행함으로써, 라이트 동작의 목표로 제시된 개수와는 다른 개수의 '단위 데이터', 즉, 불완전한 데이터가 메모리 영역(20)에 프로그램되는 것을 방지할 수 있다.
도 5는 본 발명의 실시예에 따른 메모리 장치에서 데이터 리드 동작을 설명하기 위한 순서도이다.
도 5를 참조하면, 전원이 공급되어 부팅하는 구간 및 초기화 동작을 수행하는 구간 중 어느 하나의 구간에 대응하는 제1구간동안, 트레이닝 동작을 통해 토글링 기준주기 및 기준횟수를 결정할 수 있다(S51).
S51에서 결정된 토글링 기준주기 및 토글링 기준횟수는, 메모리 장치 내부의 임의의 저장공간에 저장될 수 있다.
제1구간 이후 리드 동작을 수행하는 구간에 대응하는 제2구간동안, 외부에서 인가되는 리드 커맨드에 응답하여 메모리 영역에서 데이터를 리드하고, 리드된 데이터를 버퍼영역에 저장할 수 있다(S52).
제2구간에서 S52이후 외부에서 인가되는 리드 인에이블 신호의 토글링에 응답하여 데이터 스트로브 신호를 토글링시킬 수 있다(S53).
S53에서 데이터 스트로브 신호가 토글링하는 것에 응답하여 버퍼영역에 저장된 데이터가 외부로 출력될 수 있다(S54).
S52이후 외부에서 인가되는 리드 인에이블 신호에 오류가 발생하였는지 여부를 확인할 수 있다(S55). S55에서는 메모리 장치 내부의 임의의 저장된 토글링 기준주기 및 토글링 기준횟수에 기초하여 리드 인에이블 신호에 오류가 발행하였는지 여부를 판단할 수 있다.
이때, S55는 S52이후 외부에서 인가되는 리드 인에이블 신호에 응답하여 진행되는 동작이고, S53 및 S54도 S52이후 외부에서 인가되는 리드 인에이블 신호에 응답하여 진행되는 동작이기 때문에, S55과 S53 및 S54는 동시에 진행될 수 있다.
S55에서 리드 인에이블 신호에 오류가 발생하지 않은 경우(S55의 NO), 입력방어모드에 진입하지 않으며, 외부에서 인가되는 리드 인에이블 신호의 토글링이 완료된 후 '방어동작'을 수행하지 않을 수 있다. 이와 같은 경우, S54는, S53에서 토글링된 데이터 스트로브 신호에 응답하여 버퍼영역에 저장된 데이터를 모두 외부로 출력할 수 있다.
S55에서 리드 인에이블 신호에 오류가 발생한 경우(S55의 YES), 입력방어모드에 진입하여 외부에서 인가되는 리드 인에이블 신호의 토글링이 완료된 후 데이터 스트로브 신호를 방어횟수만큼 추가로 토글링시키는 '방어동작'을 수행할 수 있다(S56). 이와 같은 경우, S54는, S53에서 토글링된 데이터 스트로브 신호에 응답하여 버퍼영역에 저장된 데이터를 출력한 뒤, 이어서 S56에서 토글링된 데이터 스트로브 신호에 응답하여 버퍼영역에 저장된 데이터를 출력함으로써, 버퍼영역에 저장된 데이터를 모두 외부로 출력할 수 있다.
도 6은 본 발명의 실시예에 따른 메모리 장치에서 데이터 라이트 동작을 설명하기 위한 순서도이다.
도 6을 참조하면, 전원이 공급되어 부팅하는 구간 및 초기화 동작을 수행하는 구간 중 어느 하나의 구간에 대응하는 제1구간동안, 트레이닝 동작을 통해 토글링 기준주기 및 기준횟수를 결정할 수 있다(S61).
S61에서 결정된 토글링 기준주기 및 토글링 기준횟수는, 메모리 장치 내부의 임의의 저장공간에 저장될 수 있다.
제1구간 이후 라이트 동작을 수행하는 구간에 대응하는 제2구간동안, 라이트 커맨드가 입력된 후 이어서 라이트 인에이블 신호가 외부에서 입력되고, 그에 따라 라이트 인에이블 신호와 토글링 입력횟수 및 입력주기가 동일한 데이터 스트로브 신호가 함께 입력될 수 있다(S62).
S62을 통해 외부에서 입력되는 데이터 스트로브 신호의 토글링에 응답하여 외부에서 입력되는 데이터를 버퍼영역에 저장할 수 있다(S63).
S62를 통해 외부에서 입력되는 라이트 인에이블 신호에 오류가 발생하였는지 여부를 확인할 수 있다(S64). S64에서는 메모리 장치 내부의 임의의 저장된 토글링 기준주기 및 토글링 기준횟수에 기초하여 라이트 인에이블 신호에 오류가 발행하였는지 여부를 판단할 수 있다.
이때, S64는 S62를 통해 외부에서 입력되는 라이트 인에이블 신호에 응답하여 진행되는 동작이고, S63도 S62를 통해 외부에서 입력되는 라이트 인에이블 신호와 함께 입력되는 데이터 스트로브 신호에 응답하여 진행되는 동작이므로, S63과 S64는 동시에 진행될 수 있다.
S64에서 라이트 인에이블 신호에 오류가 발생하지 않은 경우(S64의 NO), 입력방어모드에 진입하지 않으며, 외부에서 인가되는 라이트 인에이블 신호의 토글링이 완료된 후 '방어동작'을 수행하지 않고, 버퍼영역에 저장된 데이터를 메모리 영역에 프로그램할 수 있다(S67).
S64에서 라이트 인에이블 신호에 오류가 발생한 경우(S64의 YES), 입력방어모드에 진입하여 외부에서 인가되는 라이트 인에이블 신호의 토글링이 완료된 후에 버퍼영역에 저장된 데이터를 폐기하는 수행할 수 있다(S65). 또한, S65에서 버퍼영역의 데이터를 폐기한 후, 라이트 실패를 나타내는 신호를 외부로 출력할 수 있다(S66). 이와 같은, S65와 S66을 통해 입력방어모드에서 '방어동작'을 수행할 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속한 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.

Claims (21)

  1. 데이터를 저장하기 위한 메모리 영역;
    제1구간동안 토글링 기준주기 및 기준횟수를 결정하며, 상기 제1구간 이후 제2구간동안 상기 기준주기 및 상기 기준횟수에 기초하여 상기 메모리 영역에 대한 데이터 입/출력 동작을 제어하기 위해 외부에서 인가되는 외부제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하고, 판단결과에 따라 입력방어모드의 진입여부를 결정하는 동작제어부; 및
    상기 제2구간동안, 상기 외부제어신호에 응답하여 설정된 동작을 수행한 뒤, 상기 동작제어부의 출력신호에 응답하여 상기 입력방어모드에 진입하는 경우 상기 입력방어모드에 미리 정의된 방어동작을 수행하는 동작수행부
    를 포함하는 메모리 장치.
  2. 제1항에 있어서,
    상기 동작제어부는,
    적어도 한 번 이상 상기 입력주기가 상기 기준주기와 다른 경우 및 상기 입력횟수가 상기 기준횟수의 배수가 아닌 경우 중 적어도 어느 하나의 경우일 때, 상기 동작수행부를 상기 입력방어모드에 진입시키는 메모리 장치.
  3. 제2항에 있어서,
    상기 외부제어신호가 리드 인에이블 신호인 경우,
    상기 동작수행부는, 상기 설정된 동작으로 데이터 스트로브 신호를 상기 입력횟수만큼 토글링시켜 상기 메모리 영역에서 버퍼영역으로 리드된 단위 데이터를 상기 입력횟수에 대응하는 개수만큼 외부로 출력하는 동작을 수행하고,
    상기 동작제어부는, 상기 방어동작으로 상기 데이터 스트로브 신호를 방어횟수만큼 토글링시켜 상기 메모리 영역에서 상기 버퍼영역으로 리드된 단위 데이터를 상기 방어횟수에 대응하는 개수만큼 외부로 출력하는 동작을 수행하도록 상기 동작수행부를 제어하는 메모리 장치.
  4. 제3항에 있어서,
    상기 동작제어부는,
    상기 입력횟수와 상기 방어횟수를 합친 횟수가 상기 기준횟수의 배수가 되도록 상기 방어횟수의 값을 결정하는 메모리 장치.
  5. 제3항에 있어서,
    상기 동작수행부는,
    상기 설정된 동작으로 제1주파수의 상기 데이터 스트로브 신호를 상기 입력횟수만큼 토글링시키고, 상기 방어동작으로 상기 제1주파수보다 작거나 같은 제2주파수의 상기 데이터 스트로브 신호를 상기 방어횟수만큼 토글링시키는 토글생성부를 포함하는 메모리 장치.
  6. 제2항에 있어서,
    상기 외부제어신호가 라이트 인에이블 신호인 경우,
    상기 동작수행부는, 상기 설정된 동작으로 상기 라이트 인에이블 신호와 함께 외부에서 입력되며 상기 입력횟수만큼 토글링하는 데이터 스트로브 신호에 응답하여 외부에서 입력되는 단위 데이터를 상기 입력횟수에 대응하는 개수만큼 버퍼영역에 저장하는 동작을 수행하고,
    상기 동작제어부는, 상기 방어동작으로 상기 버퍼영역에 저장된 데이터를 폐기(discard)하는 동작을 수행하도록 상기 동작수행부를 제어하고, 라이트 실패를 나타내는 신호를 외부로 출력하는 메모리 장치.
  7. 제6항에 있어서,
    상기 동작제어부는,
    상기 입력방어모드에 진입하지 않는 경우, 상기 설정된 동작 이후 상기 버퍼영역에 저장된 데이터를 상기 메모리 영역에 프로그램하는 메모리 장치.
  8. 제1항에 있어서,
    상기 동작제어부는,
    상기 제1구간동안 트레이닝 동작을 수행하여 결정된 상기 기준주기의 값 및 외부에서 인가되는 상기 기준횟수의 값을 트레이닝 저장영역에 저장한 뒤, 상기 제2구간동안 상기 트레이닝 저장영역을 참조하여 상기 외부제어신호의 오류 발생 여부를 판단하는 메모리 장치.
  9. 제1구간동안 토글링 기준주기 및 기준횟수를 결정하고, 상기 제1구간 이후 제2구간동안 외부에서 인가되는 제어신호에 응답하여 설정된 동작을 수행하며, 상기 설정된 동작의 수행구간에서 상기 기준주기 및 상기 기준횟수에 기초하여 상기 제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생여부를 판단하고, 판단결과에 따라 상기 설정된 동작의 수행이후 방어동작의 수행여부를 결정하는 메모리 장치; 및
    상기 제2구간동안 상기 메모리 장치와의 사이에서 데이터를 입/출력하기 위해, 상기 기준주기에 기초하여 결정된 동작주기로 상기 기준횟수에 기초하여 결정된 동작횟수만큼 토글링하는 상기 제어신호를 생성하여 상기 메모리 장치로 출력하는 메모리 컨트롤러
    를 포함하는 메모리 시스템.

  10. 제9항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제1구간동안, 상기 메모리 장치와 트레이닝 동작을 수행하여 상기 기준주기의 값을 결정하고, 동작환경에 따라 기 설정된 상기 기준횟수의 값을 상기 메모리 장치로 출력하는 메모리 시스템.
  11. 제10항에 있어서,
    상기 메모리 장치는,
    상기 제1구간동안, 상기 메모리 컨트롤러의 제어에 따라 상기 트레이닝 동작을 수행하여 결정된 상기 기준주기의 값 및 상기 메모리 컨트롤러로부터 입력되는 상기 기준횟수의 값을 트레이닝 저장영역에 저장한 뒤, 상기 제2구간동안 상기 트레이닝 저장영역을 참조하여 상기 제어신호의 오류 발생 여부를 판단하는 메모리 시스템.
  12. 제1구간동안 토글링 기준주기 및 기준횟수를 결정하는 단계;
    상기 제1구간 이후 제2구간동안 외부에서 인가되는 리드 인에이블 신호의 토글링 입력횟수만큼 데이터 스트로브 신호를 토글링시켜 메모리 영역으로부터 리드된 단위 데이터를 상기 입력횟수에 대응하는 개수만큼 외부로 출력하는 리드동작단계;
    상기 리드동작단계의 수행구간에서 상기 기준주기 및 상기 기준횟수에 기초하여 상기 리드 인에이블 신호의 토글링 입력주기 및 상기 입력횟수에 대한 오류 발생 여부를 판단하는 리드판단단계; 및
    상기 리드 인에이블 신호에서 오류가 발생한 경우 상기 리드동작단계의 수행구간 이후 방어횟수만큼 추가로 데이터 스트로브 신호를 토글링시켜 메모리 영역으로부터 리드된 단위 데이터를 상기 방어횟수에 대응하는 개수만큼 외부로 출력하는 리드방어단계
    를 포함하는 메모리 장치의 동작방법.
  13. 제1구간동안 토글링 기준주기 및 기준횟수를 결정하는 단계;
    상기 제1구간 이후 제2구간동안 외부에서 인가되는 데이터 스트로브 신호가 토글링하는 것에 응답하여 외부에서 입력되는 데이터를 버퍼영역에 저장하는 라이트동작단계;
    상기 라이트동작단계의 수행구간에서 상기 데이터 스트로브 신호와 함께 외부에서 인가되며 토글링하는 라이트 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 상기 기준주기 및 상기 기준횟수에 기초하여 판단하는 라이트판단단계;
    상기 라이트 인에이블 신호에서 오류가 발생한 경우 상기 라이트동작단계의 수행구간 이후 상기 버퍼영역에 저장된 데이터를 폐기(discard)한 뒤 라이트 실패를 나타내는 신호를 외부로 출력하는 단계; 및
    상기 라이트 인에이블 신호에서 오류가 발생하지 않은 경우 상기 라이트동작단계의 수행구간 이후 상기 버퍼영역에 저장된 데이터를 메모리 영역에 저장하는 단계
    를 포함하는 메모리 장치의 동작방법.
  14. 제1구간동안 결정된 토글링 기준주기 및 기준횟수를 저장하기 위한 제1저장영역;
    데이터를 저장하기 위한 제2저장영역;
    상기 제1구간 이후 제2구간동안 상기 제1저장영역에 저장된 상기 기준주기 및 상기 기준횟수에 기초하여 상기 제2저장영역에 대한 데이터 입/출력 동작을 제어하기 위해 외부에서 인가되는 외부제어신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하기 위한 판단부;
    상기 판단부에서 상기 외부제어신호에 대해 적어도 한 번 이상의 오류가 발생하였다고 판단하는 것에 응답하여, 상기 외부제어신호의 종류에 따라 기 설정된 방어동작을 제어하기 위해 입력방어모드에 진입하는 방어모드 제어부; 및
    상기 제2구간동안, 상기 외부제어신호에 응답하여 설정된 동작을 수행한 뒤, 상기 방어모드 제어부의 출력신호에 응답하여 상기 입력방어모드에 진입하는 경우 상기 방어동작을 수행하는 동작수행부
    를 포함하는 메모리 장치.
  15. 제14항에 있어서,
    상기 외부제어신호가 리드 인에이블 신호인 경우,
    상기 설정된 동작은, 제1주파수의 데이터 스트로브 신호를 상기 입력횟수만큼 토글링시켜 상기 제2저장영역에서 버퍼영역으로 리드된 단위 데이터를 상기 입력횟수에 대응하는 개수만큼 외부로 출력하는 동작이고,
    상기 방어동작은, 상기 제1주파수보다 작거나 같은 제2주파수의 상기 데이터 스트로브 신호를 상기 방어모드 제어부에서 결정된 방어횟수만큼 토글링시켜 상기 제2저장영역에서 버퍼영역으로 리드된 단위 데이터를 상기 방어횟수에 대응하는 개수만큼 외부로 출력하는 동작인 메모리 장치.
  16. 제15항에 있어서,
    상기 동작수행부는,
    상기 리드 인에이블 신호가 상기 입력횟수만큼 토글링하는 것에 응답하여 상기 데이터 스트로브 신호를 상기 입력횟수만큼 토글링시킨 후, 상기 방어모드 제어부에서 출력되는 신호에 응답하여 상기 데이터 스트로브 신호를 상기 방어횟수만큼 토글링시키는 토글생성부를 포함하는 메모리 장치.
  17. 제16항에 있어서,
    상기 판단부는, 상기 입력횟수가 상기 기준횟수의 배수가 되기 위해 필요한 방어횟수의 값을 결정하고, 결정된 방어횟수의 값을 전달하기 위한 신호를 생성하여 상기 방어모드 제어부로 출력하며,
    상기 방어모드 제어부는, 상기 판단부에서 결정된 방어횟수만큼 상기 데이터 스트로브 신호를 토글링시키기 위한 신호를 생성하여 상기 토글생성부로 출력하는 메모리 장치.
  18. 제14항에 있어서,
    상기 외부제어신호가 라이트 인에이블 신호인 경우,
    상기 설정된 동작은, 상기 라이트 인에이블 신호와 함께 외부에서 입력되며 상기 입력횟수만큼 토글링하는 데이터 스트로브 신호에 응답하여 외부에서 입력되는 단위 데이터를 상기 입력횟수에 대응하는 개수만큼 버퍼영역에 저장하는 동작이고,
    상기 방어동작은, 상기 버퍼영역에 저장된 데이터를 폐기(discard)한 뒤 라이트 실패를 나타내는 신호를 외부로 출력하는 동작인 메모리 장치.
  19. 제18항에 있어서,
    상기 동작수행부는,
    상기 방어모드 제어부에서 출력되는 신호에 응답하여 상기 버퍼영역의 동작을 제어하기 위한 신호를 생성하는 버퍼제어부를 포함하는 메모리 장치.
  20. 제14항에 있어서,
    상기 제1구간동안, 트레이닝 동작을 수행하여 상기 기준주기의 값을 결정하고, 외부에서 인가되는 상기 기준횟수의 값을 상기 제1저장영역에 저장하기 위한 트레이닝 동작제어부;
    상기 제2구간동안, 리드 동작시 상기 제2저장영역의 데이터를 리드하여 버퍼영역에 저장하는 리드 동작부; 및
    상기 제2구간동안, 라이트 동작시 상기 버퍼영역에 저장된 데이터를 상기 제2저장영역에 프로그램하는 라이트 동작부를 더 포함하는 메모리 장치.
  21. 제1구간동안 결정된 토글링 기준주기 및 기준횟수를 저장하기 위한 제1저장영역;
    데이터를 저장하기 위한 제2저장영역;
    상기 제1구간 이후 제2구간동안, 외부에서 인가되는 리드 인에이블 신호의 토글링 입력횟수만큼 데이터 스트로브 신호를 토글링시킨 뒤, 입력방어모드에 진입하는 경우 방어횟수만큼 상기 데이터 스트로브 신호를 토글링 시키는 토글링 생성부;
    상기 제2구간동안 상기 제2저장영역에서 리드된 단위 데이터를 내부에 버퍼링한 뒤, 상기 데이터 스트로브 신호의 토글링에 응답하여 내부에 버퍼링된 단위 데이터를 외부로 출력하는 버퍼영역;
    상기 제2구간동안 상기 제1저장영역에 저장된 상기 기준주기 및 상기 기준횟수에 기초하여 상기 리드 인에이블 신호의 토글링 입력주기 및 입력횟수에 대한 오류 발생 여부를 판단하기 위한 판단부;
    상기 판단부에서 상기 리드 인에이블 신호에 대해 적어도 한 번 이상의 오류가 발생하였다고 판단하는 것에 응답하여, 상기 방어횟수를 결정하고 상기 토글링 생성부를 상기 입력방어모드에 진입시키는 방어모드 제어부
    를 포함하는 메모리 장치.
KR1020220111249A 2022-09-02 2022-09-02 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템 KR20240032362A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220111249A KR20240032362A (ko) 2022-09-02 2022-09-02 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템
US18/159,685 US20240079037A1 (en) 2022-09-02 2023-01-26 Memory device for supporting stable data transfer and memory system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220111249A KR20240032362A (ko) 2022-09-02 2022-09-02 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20240032362A true KR20240032362A (ko) 2024-03-12

Family

ID=90061122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220111249A KR20240032362A (ko) 2022-09-02 2022-09-02 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US20240079037A1 (ko)
KR (1) KR20240032362A (ko)

Also Published As

Publication number Publication date
US20240079037A1 (en) 2024-03-07

Similar Documents

Publication Publication Date Title
US9189397B2 (en) Data storage device including buffer memory
KR20170053278A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11494118B2 (en) Storage device and operating method thereof
KR20160097657A (ko) 데이터 저장 장치 그리고 그것의 동작 방법
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR20190090268A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN114518843A (zh) 存储控制器和包括存储控制器的存储设备
US11294780B2 (en) Memory controller and operating method thereof
KR20170094674A (ko) 데이터 저장 장치
KR20190051530A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
US11748025B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
KR20210031266A (ko) 인터페이스 회로, 메모리 장치, 저장 장치 및 메모리 장치의 동작 방법
CN115461731A (zh) 存储器装置的多个引脚配置
KR20210156010A (ko) 저장 장치 및 그 동작 방법
US20230096111A1 (en) Memory controller, storage device, and host device
KR102561095B1 (ko) 반도체 메모리 장치의 동작 방법
US20210397558A1 (en) Storage device and operating method thereof
KR20240032362A (ko) 안정적인 데이터 전송을 지원하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR20160025377A (ko) 반도체 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20230165580A (ko) 동작 속도를 제어하기 위한 메모리 시스템 및 이를 포함하는 데이터 처리 시스템
KR20190110732A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치
KR20190041082A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20150102329A (ko) 데이터 저장 장치
KR20220149117A (ko) 복수의 비휘발성 메모리 장치와 메모리 컨트롤러 간 데이터 통신을 개선하기 위한 장치 및 방법
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts