KR101872177B1 - 지연 보상 - Google Patents

지연 보상 Download PDF

Info

Publication number
KR101872177B1
KR101872177B1 KR1020177026012A KR20177026012A KR101872177B1 KR 101872177 B1 KR101872177 B1 KR 101872177B1 KR 1020177026012 A KR1020177026012 A KR 1020177026012A KR 20177026012 A KR20177026012 A KR 20177026012A KR 101872177 B1 KR101872177 B1 KR 101872177B1
Authority
KR
South Korea
Prior art keywords
data
clock
bus
delay
peripheral
Prior art date
Application number
KR1020177026012A
Other languages
English (en)
Other versions
KR20170137063A (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 샌디스크 테크놀로지스 엘엘씨
Publication of KR20170137063A publication Critical patent/KR20170137063A/ko
Application granted granted Critical
Publication of KR101872177B1 publication Critical patent/KR101872177B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/081Details of the phase-locked loop provided with an additional controlled phase shifter
    • H03L7/0812Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • H03L7/091Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal the phase or frequency detector using a sampling device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Pulse Circuits (AREA)

Abstract

지연 보상을 위한 방법 및 회로가 제공된다. 데이터 클록은 주변 클록으로부터 생성될 수 있다. 샘플 데이터는 데이터 클록의 에지에 응답하여 버스상에 데이터 신호로 제공될 수 있으며, 여기서 데이터 클록의 에지는 주변 클록의 초기 에지에 의해 트리거된다. 주변 클록에 대한 데이터 클록의 지연은 주변 클록의 초기 에지와 샘플 데이터가 버스상에서 검출되는 시간 사이의 시간차에 기초하여 선택될 수 있다. 주변 클록에 대해 선택된 지연을 갖는 지연된 데이터 클록이 생성될 수 있다. 요청된 데이터는 지연된 데이터 클록의 에지에 응답하여 버스상에 제공될 수 있다.

Description

지연 보상
시큐어 디지털(SD: Secure Digital)은 모바일 전화 및 태블릿 컴퓨터와 같은 휴대용 디바이스에 사용될 수 있는 비휘발성 메모리 카드를 위한 표준이다. 시큐어 디지털 표준은 SD 협회(SDA)에 의해 관리된다.
SD 표준은 SDHC(Secure Digital High-Capacity) 카드 및 SDXC(Secure Digital eXtended-Capacity) 카드를 위한 UHS-I(Ultra High Speed, Phase I) 버스 디자인을 포함한다. UHS-I는 SDHC 및/또는 SDXC 카드의 성능을 증가시키기 위한 디자인 개선이다.
UHS-I 사양은 50MB/s(UHS-50) 및 104MB/s(UHS-104)까지의 데이터 전송률을 각각 지원하는 두 개의 버스 아키텍처 옵션을 정의한다. UHS-I 사양에 따르면, 호스트는 주변 클록(peripheral clock)을 메모리 카드에 제공한다. UHS-50은 100 MHz의 주변 클록 주파수를 지원하고, UHS104는 208 MHz까지의 주변 클록 주파수를 지원한다. 적어도 하나의 모드에서, 데이터 클록 신호가 상승할 때 네 개의 비트가 네 개의 라인을 거쳐 전달되고, 데이터 클록 신호가 하강할 때 동일한 네 개의 라인 상에서 다른 네 개의 비트가 전달되어, 각각의 전체 클록 주기에 전체 바이트를 전달한다. UHS-II는 추가적 핀의 행을 사용하여 156 MB/s(풀 듀플렉스) 또는 312 MB/s(하프 듀플렉스)의 이론적 최대치까지 데이터 전송률을 추가로 상승시킨다.
다양한 지원 클록 주파수는 이론적 최대치들이다. 실제 클록 주파수들은 예로서 프로세스, 전압 및 온도(PVT)에 기초하여 추가적으로 변한다.
제어기는 호스트와 비휘발성 메모리 카드 사이의 통신을 취급할 수 있다. 제어기 내의 루프 지연(loop delay)은 데이터에 대한 요청이 제어기에 의해 수신되는 시기와 데이터가 호스트로의 버스 상에 최초 제공되는 시기 사이의 시간일 수 있다. 루프 지연은 비휘발성 메모리 카드로부터 데이터를 검색하기 위한 시간, 제어기의 로직 컴포넌트들로부터의 지연 및 심지어 버스와의 인터페이스에서의 패드 지연들을 포함할 수 있다.
루프 지연은 현저히 변할 수 있다. 예로서, 루프 지연은 PVT(프로세스, 전압 및 온도)에 걸쳐 현저히 변할 수 있다. 추가적으로, 상이한 호스트들은 상이한 주파수들에서 동작하는 주변 클록들을 제공할 수 있다. 루프 지연 및 주변 클록 주파수들의 변동으로 인해, 데이터는 주변 클록의 천이점에서 또는 그 부근에서 버스 상에 제공될 수 있으며, 이는 호스트가 데이터를 부정확하게 판독하게 한다.
실시예들은 후속하는 도면들 및 설명을 참조하여 더 잘 이해될 수 있다. 도면들 내의 컴포넌트들은 반드시 축척에 맞는 것은 아니다. 또한, 도면들에서, 동일한 참조 번호들은 상이한 도면 전반에 걸쳐 대응하는 부분들을 지정한다.
도 1a는 실시예의 비휘발성 메모리 시스템의 블록도이다.
도 1b는 실시예의 예시적 스토리지 모듈을 예시하는 블록도이다.
도 1c는 실시예의 계층적 스토리지 시스템을 예시하는 블록도이다.
도 2는 실시예에 따라 도 1a에 예시된 비휘발성 메모리 시스템의 제어기의 예시적 컴포넌트를 예시하는 블록도이다.
도 3은 지연 보상 회로의 예의 블록도이다.
도 4는 주변 클록, 데이터 신호, 및 데이터 클록 사이의 타이밍 관계의 예를 예시한다.
도 5는 주변 클록으로부터 도출된 주파수 분주 클록에 기초하여 교정하는 지연 보상 회로의 실시예의 블록도이다.
도 6은 샘플링된 데이터가 정확하게 판독되는 시기에 대한 결정에 기초하여 교정하는 지연 보상 회로의 실시예의 블록도이다.
도 7은 주변 클록의 두 개의 주기를 예시한다.
도 8은 비휘발성 메모리 시스템 및/또는 지연 보상 회로의 예시적 로직을 예시하는 흐름도이다.
개요
소개로서, 이하의 실시예는 지연 보상을 위한 회로 및 방법에 관련한다. 일 실시예에서, 지연 보상을 위한 방법이 수행된다. 데이터 클록은 호스트로부터 버스를 거쳐 수신되는 주변 클록으로부터 생성될 수 있다. 샘플 데이터는 데이터 클록의 에지에 응답하여 버스 상에 데이터 신호로 제공될 수 있으며, 여기서 데이터 클록의 에지는 주변 클록의 초기 에지에 의해 트리거된다. 주변 클록에 대한 데이터 클록의 지연은 샘플 데이터가 버스 상에서 검출되는 시간과 주변 클록의 초기 에지 사이의 시간 차에 기초하여 선택될 수 있다. 주변 클록에 대한 선택된 지연을 갖는 지연된 데이터 클록이 생성될 수 있다. 데이터에 대한 요청은 버스를 거쳐 호스트로부터 수신될 수 있다. 요청된 데이터는 지연된 데이터 클록의 에지에 응답하여 버스 상에 제공될 수 있다.
다른 실시예에서, 메모리 및 메모리와 통신 상태에 있는 제어기를 포함하는 메모리 시스템이 제공된다. 제어기는 버스로부터 주변 클록을 수신하고, 데이터 클록의 에지에 응답하여 데이터 신호로 버스 상에 데이터를 제공하도록 구성될 수 있다. 제어기는 주변 클록의 미리 결정된 에지에서 데이터가 버스 상에서 판독될 수 있도록 버스에 제공된 데이터 신호에 기초하여 주변 클록에 대해 데이터 클록을 시프트시키도록 추가로 구성될 수 있다.
또 다른 실시예에서, 데이터 지연 회로와 데이터 클록 회로를 포함하는 지연 보상 회로가 제공된다. 데이터 지연 회로는 데이터 신호로 버스 상에서 데이터를 전송하도록 구성될 수 있고, 데이터의 전송은 데이터 클록의 에지에 의해 트리거된다. 데이터 클록 회로는 버스 상의 데이터 신호로부터의 피드백에 따라 주변 클록에 대해 데이터 클록의 위상을 조정하도록 구성될 수 있다. 데이터 지연 회로는 데이터 클록의 위상이 데이터 클록 회로에 의해 조정된 이후 주변 클록의 전체 클록 주기의 타깃 부분에서 데이터 신호로 버스 상에서 데이터를 전송하도록 추가로 구성될 수 있다. 타깃 부분은 전체 클록 주기의 분수(fraction)일 수 있고, 주변 클록은 버스 상에서 수신될 수 있다.
일부 실시예에서, 데이터 클록 회로는 버스 상의 데이터 신호로부터의 피드백 클록에 따라 주변 클록에 대해 데이터 클록의 위상을 조정하도록 구성된 지연 고정 루프를 포함할 수 있고, 데이터 클록의 위상은 주변 클록과는 상이한 주파수를 갖는 기준 클록에 대한 피드백 클록의 미리 결정된 지연을 형성하도록 조정된다.
일부 실시예에서, 데이터 클록 회로는 샘플링 모듈 및 판정 모듈을 포함할 수 있다. 샘플링 모듈은 주변 클록으로부터 위상-시프트된 데이터 클록들에 의해 클로킹된(clocked) 샘플링 플립-플롭들을 포함할 수 있고, 여기서 플립-플롭들은 데이터 신호를 샘플링하도록 구성된다. 판정 모듈은 데이터의 전송을 트리거하기 위해 데이터 클록들로부터 데이터 클록을 선택하도록 구성될 수 있고, 여기서 선택된 데이터 클록은 샘플링 플립-플롭들의 출력들에 기초한다.
다른 실시예가 가능하며, 실시예 각각은 단독으로 또는 조합하여 함께 사용될 수 있다. 따라서, 이제, 다양한 실시예를 첨부 도면을 참조하여 설명한다.
예시적 실시예
전술한 배경 부분에서 언급한 바와 같이, 데이터는 루프 지연들 및 주변 클록의 변하는 주파수들에 기인하여 주변 클록의 천이점에서 또는 그 부근에서 호스트에 대한 전송을 위해 버스 상에 제공될 수 있다. 데이터 클록(308)과 같은 본 명세서에서의 "클록"에 대한 언급은 클록 디바이스에 의해 생성된 전기 신호를 언급하며, 클록 디바이스를 언급하는 것은 아니다. 결과적으로, 호스트는 데이터를 부정확하게 판독할 수 있다. 루프 지연을 해결하는 것을 돕기 위해 UHS-I 표준에 튜닝 절차가 설명되어 있지만, 호스트는 종종 튜닝 절차의 이행에 실패한다.
이하의 실시예는 호스트가 버스로부터 데이터를 정확하게 판독할 가능성을 증가시키기 위해 주변 클록의 천이점에서 또는 그 부근에서 버스 상에 데이터를 제공하는 것을 피하는 것을 돕기 위해 사용될 수 있다. 이들 및 다른 실시예를 참조하기 이전에, 이하의 문단은 이들 실시예와 함께 사용될 수 있는 예시적 메모리 시스템에 대한 논의를 제공한다. 물론, 이들은 단지 예일 뿐이며, 다른 적절한 유형의 스토리지 모듈이 사용될 수 있다.
이들 실시예의 양태 이행에 사용하기에 적합한 메모리 시스템이 도 1a 내지 도 1c에 도시되어 있다. 도 1a는 본 명세서에 설명된 주제의 실시예에 따른 비휘발성 메모리 시스템을 예시하는 블록도이다. 도 1a를 참조하면, 비휘발성 메모리 시스템(100)은 하나 이상의 비휘발성 메모리 다이(104)로 구성될 수 있는 비휘발성 메모리 및 제어기(102)를 포함한다. 본 명세서에서 사용될 때, 용어 다이는 비휘발성 메모리 셀과 이들 비휘발성 메모리 셀의 물리적 동작을 관리하기 위한 연계 회로의 집단을 지칭하며, 이들은 단일 반도체 기판 상에 형성된다. 제어기(102)는 호스트 시스템과 인터페이싱하며, 비휘발성 메모리 다이(104)에 대한 판독, 프로그래밍 및 소거 동작을 위한 명령 시퀀스들을 전송한다. 호스트 시스템의 예들은, 예를 들어, 모바일 전화, 태블릿 컴퓨터, 디지털 미디어 플레이어, 게임 디바이스, 퍼스널 디지털 어시스턴트(PDA), 모바일(예로서, 노트북, 랩탑) 퍼스널 컴퓨터(PC), 북 리더(book reader), 또는 임의의 다른 처리 디바이스를 포함할 수 있다.
제어기(102)(플래시 메모리 제어기일 수 있음)는 처리 회로, 예컨대, 마이크로프로세서 또는 프로세서, 및 처리 회로에 의해 실행가능한 컴퓨터-판독가능 프로그램 코드(예로서, 펌웨어)를 저장하는 컴퓨터 판독가능 매체의 형태일 수 있다. 제어기(102)는 예로서 (마이크로)프로세서, 로직 게이트, 스위치, 주문형 집적 회로(ASIC), 프로그램가능 로직 제어기, 및/또는 내장 마이크로컨트롤러를 포함할 수 있다. 제어기(102)는 흐름도에 도시되고 후술될 다양한 기능을 수행하기 위해 하드웨어 및/또는 펌웨어로 구성될 수 있다. 제어기(102)는 지연 보상 회로(106)를 포함할 수 있다. 대안적으로 또는 추가적으로, 제어기(102) 내부에 있는 것으로서 도시되어 있는 지연 보상 회로(106)와 같은 일부 컴포넌트는 제어기 외부에 있을 수도 있다.
본 명세서에서 사용될 때, 플래시 메모리 제어기는 플래시 메모리 상에 저장된 데이터를 관리하고 또한 컴퓨터 또는 전자 디바이스와 같은 호스트 시스템(대안적으로 본 명세서에서 호스트라고 지칭됨)과 통신하는 디바이스이다. 플래시 메모리 제어기는 본 명세서에 설명된 특정 기능성에 추가하여 기능성을 가질 수 있다. 예로서, 플래시 메모리 제어기는 메모리가 적절히 동작하는 것을 보증하고, 불량 플래시 메모리 셀을 맵으로부터 제거하고, 장래의 고장 셀을 대체하도록 스페어 메모리 셀을 할당하기 위해 플래시 메모리를 포맷할 수 있다. 스페어 셀의 일부 부분은 플래시 메모리 제어기를 동작시키고 다른 특징을 이행하도록 펌웨어를 유지하기 위해 사용될 수 있다. 동작시, 호스트가 플래시 메모리로부터 데이터를 판독하거나, 플래시 메모리에 데이터를 기입할 필요가 있을 때, 호스트는 플래시 메모리 제어기와 통신할 것이다. 호스트가 데이터가 판독/기입될 논리적 어드레스를 제공하는 경우, 플래시 메모리 제어기는 호스트로부터 수신된 논리적 어드레스를 플래시 메모리 내의 물리적 어드레스로 변환할 수 있다. (대안적으로, 호스트는 물리적 어드레스를 제공할 수 있다.) 플래시 메모리 제어기는 또한 마모 평준화(마모 평준화가 이루어지지 않는 경우 반복적으로 기입되게 되는 메모리의 특정 블록이 마모되는 것을 피하도록 기입들을 분배함) 및 가비지 수집(블록이 가득찬 이후 데이터의 유효 페이지만을 새로운 블록으로 이동시켜, 전체 블록이 소거 및 재사용될 수 있게 함)과 같은, 그러나 이들에만 한정되지는 않는 다양한 메모리 관리 기능을 수행할 수 있다.
비휘발성 메모리 다이(104)는 NAND 플래시 메모리 셀 및/또는 NOR 플래시 메모리 셀을 포함하는 임의의 적절한 비휘발성 스토리지 매체를 포함할 수 있다. 메모리 셀은 고체-상태(예컨대, 플래시) 메모리 셀의 형태를 취할 수 있으며, 1회 프로그램가능, 소수 회 프로그램가능 또는 다수 회 프로그램가능 할 수 있다. 메모리 셀은 또한 단일-레벨 셀(SLC), 다중-레벨 셀(MLC), 삼중-레벨 셀(TLC)일 수 있거나, 현재 공지된 또는 추후 개발될 다른 메모리 셀 레벨 기술을 사용할 수 있다. 또한, 메모리 셀은 이차원 또는 삼차원 형태로 제조될 수 있다.
제어기(102)와 비휘발성 메모리 다이(104) 사이의 인터페이스는 임의의 적절한 플래시 인터페이스, 예컨대, 토글 모드 200, 400 또는 800일 수 있다. 일 실시예에서, 메모리 시스템(100)은 카드 기반 시스템, 예컨대, 시큐어 디지털(SD) 또는 마이크로 시큐어 디지털(마이크로-SD) 카드일 수 있다. 대안 실시예에서, 메모리 시스템(100)은 내장 메모리 시스템의 일부일 수 있다.
비록, 도 1a에 예시된 실시예에서, 비휘발성 메모리 시스템(100)(대안적으로, 스토리지 모듈이라 본 명세서에서 지칭됨)은 제어기(102)와 비휘발성 메모리 다이(104) 사이에 단일 채널을 포함하지만, 본 명세서에 설명된 주제는 단일 메모리 채널을 갖는 것에만 한정되지는 않는다. 예로서, 도 1b, 도 1c 및 도 2의 것들과 같은 일부 NAND 메모리 시스템 아키텍처에서, 제어기 성능에 좌우되어 더 많은 NAND 채널이 제어기(102)와 비휘발성 메모리 다이(104) 사이에 존재할 수 있다. 본 명세서에 설명된 임의의 실시예에서, 도면에 단일 채널이 도시되어 있기는 하지만, 단일 채널보다 많은 채널이 제어기(102)와 메모리 다이(104) 사이에 존재할 수 있다.
제어기(102)는 버스(134)를 거쳐 호스트 시스템과 통신 상태에 동작 가능하게 있을 수 있다. 어구 "~와 통신 상태에 작동 가능하게"는 그와 직접적으로 통신하는 것 또는 본 명세서에 도시 또는 설명될 수 있거나 그렇지 않을 수 있는 하나 이상의 컴포넌트를 통해 그와 간접적으로(유선 또는 무선) 통신하는 것을 의미할 수 있다.
버스(134)는 제어기(102)와 호스트 사이에서와 같이, 컴포넌트들 사이에서 데이터를 전달하는 시스템일 수 있다. 일부 예에서, 버스(134)는 관련 하드웨어 컴포넌트, 예컨대, 배선 및/또는 광섬유와 소프트웨어를 포함할 수 있다. 버스(134)는 전기 신호가 그를 통해 전파되는 병렬 전기 배선을 포함할 수 있다. 버스(134)의 예는 UHS(Ultra High Speed) 버스, UHS-I(Ultra High Speed, Phase I) 버스, UHS-II(Ultra High Speed, Phase II) 버스, SD(Secure Digital) 버스, SDHC(Secure Digital High Capacity) 버스, SDXC(Secure Digital eXtended Capacity) 버스, USB(Universal Serial Bus), SATA(serial advanced technology attachment) 버스, PCIe(peripheral component interface express) 버스 또는 임의의 다른 유형의 버스를 포함할 수 있다.
도 1b는 다수의 비휘발성 메모리 시스템(100)을 포함하는 스토리지 모듈(200)을 예시한다. 이처럼, 스토리지 모듈(200)은 다수의 비휘발성 메모리 시스템(100)을 포함하는 스토리지 시스템(204) 및 호스트와 인터페이싱하는 스토리지 제어기(202)를 포함할 수 있다. 다수의 비휘발성 메모리 시스템(100)은 버스(134)를 거쳐 스토리지 모듈(200)과 통신 상태에 작동 가능하게 있을 수 있다. 스토리지 제어기(202)와 비휘발성 메모리 시스템(100) 사이의 인터페이스는 버스 인터페이스, 예컨대, SATA(serial advanced technology attachment) 또는 PCIe(peripheral component interface express) 인터페이스일 수 있다. 스토리지 모듈(200)은 일 실시예에서 고체 상태 드라이브(SSD)로서 구성될 수 있고, 이는 휴대용 컴퓨팅 디바이스, 예컨대, 랩탑 컴퓨터 및 태블릿 컴퓨터에 구성될 수 있다.
도 1b에 예시된 바와 같이, 비휘발성 메모리 시스템(100)의 제어기들(102) 각각은 지연 보상 회로(106)를 포함할 수 있다. 대안적으로 또는 추가적으로, 호스트와 인터페이싱하는 스토리지 제어기(202)가 지연 보상 회로(106)를 포함할 수 있다.
도 1c는 실시예의 계층적 스토리지 시스템(250)을 예시하는 블록도이다. 계층적 스토리지 시스템(250)은 다수의 스토리지 제어기(202)를 포함할 수 있고, 이들 각각은 각각의 스토리지 시스템(204)을 제어한다. 호스트 시스템들(252)은 버스 인터페이스를 경유해 스토리지 시스템(250) 내의 메모리에 액세스할 수 있다. 일 실시예에서, 버스 인터페이스는 NVMe 또는 FCoE(fiber channel over Ethernet) 인터페이스일 수 있다. 일 실시예에서, 도 1c에 예시된 시스템(250)은 데이터 센터나 대용량 스토리지가 필요한 다른 장소에 설치되는 것과 같이, 다수의 호스트 컴퓨터에 의해 액세스될 수 있는 래크(rack) 장착형 대용량 스토리지 시스템일 수 있다.
각각의 스토리지 제어기(202)는 대응하는 지연 보상 회로(106)를 포함할 수 있다. 대안적으로 또는 추가적으로, 각각의 제각기 스토리지 시스템(204)은 도 1b에 도시된 바와 같이 대응하는 지연 보상 회로(106)를 포함할 수 있다.
도 2는 제어기(102)의 예시적 컴포넌트를 더 상세히 예시하는 블록도이다. 제어기(102)는 버스(134)를 거쳐 호스트와 인터페이싱하는 프론트 엔드 모듈(108), 하나 이상의 비휘발성 메모리 다이(104)와 인터페이싱하는 백 엔드 모듈(110), 및 이제 상세히 설명될 기능을 수행하는 다양한 다른 모듈을 포함한다.
제어기(102)의 모듈들은 지연 보상 회로(106)를 포함할 수 있다. 도 3 내지 도 8과 연계하여 더 상세히 후술되는 바와 같이, 지연 보상 회로(106)는 호스트로부터 수신된 주변 클록에 및 피드백에 기초하여 버스(134) 상의 데이터 신호의 형태로 버스(134) 상에 데이터를 제공하는 것을 지연시키기 위한 동작을 수행할 수 있다. 데이터 신호는 지연 보상 회로(106) 또는 제어기(102)의 소정의 다른 회로 또는 비휘발성 메모리 시스템(100)의 소정의 다른 컴포넌트에 의해 버스(134) 상에 제공될 수 있다.
제어기(102)의 모듈을 다시 참조하면, 버퍼 관리자/버스 제어기(114)는 랜덤 액세스 메모리(RAM)(116) 내의 버퍼를 관리하고, 제어기(102)의 내부 버스 중재를 제어한다. 판독 전용 메모리(ROM)(118)는 시스템 부트 코드를 저장한다. 도 2에는 제어기(102)로부터 분리되어 위치되어 있는 것으로 예시되어 있지만, 다른 실시예에서, RAM(116) 및 ROM(118) 중 하나 또는 양자 모두는 제어기 내에 위치될 수 있다. 또 다른 실시예에서, RAM 및 ROM의 부분들이 제어기(102)의 내부에 및 제어기의 외부에 양자 모두에 위치될 수 있다.
프론트 엔드 모듈(108)은 호스트 인터페이스(120) 및 물리적 계층 인터페이스(PHY)(122)를 포함하며, 이들은 호스트와의 또는 다음 레벨 스토리지 제어기와의 전기적 인터페이스를 제공한다. 호스트 인터페이스(120)의 유형의 선택은 사용되는 메모리의 유형에 의존할 수 있다. 호스트 인터페이스(120)의 예는 SATA, SATA Express, SAS, 파이버 채널(Fibre Channel), USB, PCIe, 및 NVMe를 포함하지만 이에 한정되지는 않는다. 호스트 인터페이스(120)는 통상적으로 데이터, 제어 신호 및 타이밍 신호에 대한 전달을 용이하게 한다.
지연 보상 회로(106)는 논리적으로 물리적 계층 인터페이스(122)와 버스(134) 사이에 위치될 수 있다. 대안적으로, 지연 보상 회로(106)는 논리적으로 물리적 계층 인터페이스(122) 내에 포함될 수 있다. 일부 예에서, 지연 보상 회로(106)는 호스트 인터페이스(120) 내에 포함될 수 있다. 또 다른 예에서, 지연 보상 회로(106)는 제어기(102)와 버스(134) 사이에 또는 비휘발성 메모리 시스템(100)의 소정의 다른 부분에 존재할 수 있다.
백 엔드 모듈(110)은 오류 정정 제어기(ECC) 엔진(124)을 포함하며, 이는 호스트로부터 수신된 데이터 바이트를 인코딩하고, 비휘발성 메모리로부터 판독된 데이터 바이트를 디코딩하고 오류 정정한다. 명령 시퀀서(126)는 비휘발성 메모리 다이(104)에 전송될 명령 시퀀스, 예컨대, 프로그램 및 소거 명령 시퀀스를 생성한다. 메모리 인터페이스(130)는 비휘발성 메모리 다이(104)에 명령 시퀀스를 제공하고, 비휘발성 메모리 다이(104)로부터 상태 정보를 수신한다. 일 실시예에서, 메모리 인터페이스(130)는 더블 데이터 레이트(DDR) 인터페이스, 예컨대, 토글 모드 200, 400 또는 800 인터페이스일 수 있다. 플래시 제어 계층(132)은 백 엔드 모듈(110)의 전체 동작을 제어한다.
비휘발성 메모리 시스템(100)은 다른 이산 컴포넌트(140), 예컨대, 외부 전기적 인터페이스, 외부 RAM, 저항기, 커패시터, 또는 제어기(102)와 인터페이싱할 수 있는 다른 컴포넌트를 포함할 수 있다. 대안 실시예에서, 하나 이상의 물리적 계층 인터페이스(122) 및 버퍼 관리/버스 제어기(114)는 제어기(102)에 필수적이지 않은 선택적 컴포넌트이다.
도 3은 지연 보상 회로(106)의 예의 블록도이다. 지연 보상 회로(106)는 데이터 지연 회로(302), 데이터 클록 회로(304), 및 패드 인터페이스(306)를 포함할 수 있다.
패드 인터페이스(306)는 지연 보상 회로의 라인들에 버스(134)의 라인들이 전기적으로 결합하는 접점들을 제공하는 임의의 컴포넌트일 수 있다. 패드 인터페이스(306)는 예로서, 각각의 라인에 대한 플립-플롭을 포함할 수 있다.
데이터 지연 회로(302)는 데이터(320)를 수신하고 이후 데이터 클록(308)의 에지에서 버스(134) 상에 데이터(320)를 제공하는 컴포넌트일 수 있다. 달리 말하면, 데이터 지연 회로(302)는 데이터 클록(308)의 위상에 의해 결정된 지연 이후에 버스(134) 상에 데이터(320)를 제공하는 컴포넌트일 수 있다. 데이터 지연 회로(302)는 데이터 신호(310)로 버스(134) 상에 데이터(320)를 제공할 수 있다. 데이터 신호(310)는 각각이 비트를 나타내는 하나 이상의 디지털 신호를 포함할 수 있다.
데이터 클록 회로(304)는 버스(134)에 제공된 데이터 신호(310)에 기초하여 데이터 클록(308)을 생성하는 컴포넌트일 수 있다. 더 상세히 후술되는 바와 같이, 데이터 클록 회로(304)는 호스트로부터 버스(134) 상에서 수신되는 주변 클록(312)에 대해 데이터 클록(308)의 위상을 조정하여 데이터(320)가 주변 클록(312)의 미리 결정된 에지에서 버스(134) 상에서 판독가능하게 되도록 하는 컴포넌트일 수 있다.
데이터 지연 회로(302)를 포함하는 비휘발성 메모리 시스템(100)의 동작 동안, 호스트는 주변 클록(312)을 제어기(102)에 제공할 것이다. 호스트는 호스트가 데이터를 판독 또는 기입하지 않는 경우에도 버스(134) 상에 주변 클록(312)을 제공할 것이다. 주변 클록(312)은 타이밍 목적을 위해, 제어기(102)와 지연 회로(302)에 의해 사용된다.
도 4는 주변 클록(312), 데이터 신호(310), 및 데이터 클록(308) 사이의 타이밍 관계의 예를 예시한다. 도 4에 예시된 예는, 데이터(320)가 호스트에 의해 요청될 때, 신호들(312, 310 및 308) 사이의 한 가지 양호한 관계를 설명한다. 신호들(312, 310, 308) 사이의 다른 관계가 가능 및/또는 바람직할 수 있다.
제어기(102)는 시간 T1에 버스(134)를 통해 데이터(320)에 대한 요청을 수신할 수 있다. 요청은 예를 들어 판독 요청일 수 있다. 요청의 시간 T1 은 주변 클록(312)의 초기 에지(402)에 대응한다. 호스트는 미리 결정된 시간 기간 내에, 예컨대, 2 기간의 주변 클록(312) 내에 버스(134) 상에 데이터(320)가 제공될 것으로 예상할 수 있다. 따라서, 호스트는 초기 에지(402) 이후의 주변 클록(312)의 제1 에지(404) 상에서 버스(134)로부터 데이터(320)의 판독을 시도할 수 있다. 호스트가 주변 클록의 제1 에지(404)에서 버스(134)로부터 데이터(320)를 성공적으로 판독하는 데 실패하는 경우, 이후, 호스트는 주변 클록(312)의 제2 에지(406) 상에서 버스(134)로부터 데이터(320)를 판독하는 것을 시도할 수 있다. 호스트가 제2 에지(406) 상에서 데이터(320)를 판독하는 데 실패하는 경우, 이후, 호스트는 판독 요청을 시간-초과 요청으로서 취급할 수 있다.
호스트의 거동의 견지에서, 제어기(102)는 주변 클록(312)의 제1 에지(404) 이전에 또는 주변 클록(312)의 제2 에지(406) 이전에 버스(134) 상에 데이터(320)를 제공할 것이다. 예로서, 제어기(102)는, 호스트가 주변 클록(312)의 제2 에지(406)에서 데이터(320)를 판독하는 시간 T3 이전인 시간 T2에서 데이터 신호(310)로 버스(134) 상에 데이터(320)를 제공하기 시작할 수 있다. 제어기(102)가 버스(134) 상에 데이터(320)를 최초 제공할 때 데이터 신호(310)가 초기에 불안정할 수 있기 때문에, 시간 T2는 시간 T3 이전에 충분한 시간을 확보하여서 데이터 신호(310)가 안정적이고 시간 T3에 여전히 데이터(320)를 포함하도록 해야 한다. 다른 한편, 호스트가 데이터(320)를 판독하는 것과 동일한 시간인 시간 T3에 제어기(102)가 버스(134) 상에 데이터(320)를 최초 제공하는 경우, 이후 데이터(320)는 호스트에 의해 판독 가능하지 않을 수 있다.
제어기(102)에서의 루프 지연은 요청이 수신되는 시점의 시간 T1과 데이터(320)가 버스(134) 상에 최초 제공되는 시점의 시간 T2 사이의 시간이다. 루프 지연은 로직 컴포넌트로부터의 지연과 심지어 패드 인터페이스(306)에 의해 도입되는 패드 지연을 포함할 수 있다.
지연 보상 회로(106)가 없으면, 루프 지연은 크게 변할 수 있다. 예로서, 루프 지연은 PVT(프로세스, 전압 및 온도)에 걸쳐 현저히 변할 수 있다. 추가적으로, 서로 다른 호스트들은 서로 다른 주파수들에서 동작할 수 있다. 예로서, 비휘발성 메모리 시스템(100)이 UHS-104 표준을 준수하는 경우, 이후 호스트에 의해 제공되는 주변 클록(312)은 호스트에 의존하여 100 메가헤르쯔 내지 208 메가헤르쯔의 범위일 수 있다. 루프 지연의 변동에 기인하여, 데이터(320)는 주변 클록(312)의 천이점에서 또는 그 부근에서(제1 또는 제2 에지(404 또는 406) 부근과 같음) 버스(134) 상에 제공될 수 있고, 이는 호스트가 데이터(320)를 부정확하게 판독하게 할 수 있다.
지연 보상 회로(106)는 루프 지연의 변동을 보상할 수 있다. 특히, 데이터 클록 회로(304)는, 데이터 지연 회로(302)가 주변 클록(312)의 미리 결정된 에지(시간 T3) 이전에 (시간 T2에) 버스(134) 상의 데이터 신호(310)로 데이터(320)를 제공하도록 하는 양(D) 만큼 주변 클록(312)에 대해 데이터 클록(308)을 지연시킨다.
데이터 클록 회로(304)는 호스트가 데이터를 판독하거나 기입하지 않을 때 데이터 클록(208)을 교정할 수 있다. 대안적으로 또는 추가적으로, 데이터 클록 회로(304)는 호스트가 유휴 상태 및/또는 비휘발성 메모리 시스템(100)을 사용하지 않을 때 데이터 클록(208)을 교정할 수 있다. 데이터 클록 회로(304)가 데이터 클록(308)을 교정하는 동안, 지연 보상 회로(106)는 교정 모드(calibration mode)에 있다고 말할 수 있다.
교정 동안, 데이터 지연 회로(302)는 데이터 클록(308)의 천이점에 응답하여 버스(134) 상에 데이터 신호(310)로 샘플 데이터를 제공할 수 있다. 데이터 클록 회로(304)는 데이터 신호(310)를 주변 클록(312)과 비교하고 및/또는 데이터 신호(310)의 속성을 주변 클록(312)과 비교할 수 있다. 데이터 클록 회로(304)는 데이터 클록(308)의 지연(D)을 조정할 수 있고, 샘플 데이터가 주변 클록(312)의 미리 결정된 에지(404 또는 406) 충분히 이전에 버스(134) 상에 제공되어 샘플 데이터가 미리 결정된 에지(404 또는 406)에서 판독 가능해질 때까지 반복할 수 있다.
주변 클록(312)의 초기 에지(402)가 도 4에서 주변 클록(312)의 제1 에지인 것으로 나타나 있지만, 주변 클록(312)의 더 이른 에지가 존재할 수 있다. 초기 에지(402)는 단순히 에지(402)가 데이터(320)에 대한 요청의 수신과 일치하기 때문에 "초기"인 것으로 간주될 수 있다. 더 일반적으로, 초기 에지(402)는 버스(134) 상에 데이터를 제공하는 프로세스가 에지(402)에 응답하여 개시될 수 있기 때문에 "초기"인 것으로 간주될 수 있다. 대안적으로 또는 추가적으로, 초기 에지(402)는, 버스(134) 상에 데이터가 제공되는 것에 응답하여, 데이터 클록(308)의 에지(408)를 에지(402)가 트리거하기 때문에 "초기"인 것으로 간주될 수 있다.
도 5는 주변 클록(312)으로부터 도출된 주파수 분주 클록(501)에 기초하여 교정하는 지연 보상 회로(106)의 실시예의 블록도이다. 지연 보상 회로(106)는 데이터 지연 회로(302) 및 데이터 클록 회로(304)를 포함한다.
데이터 지연 회로(302)는 트레인 신호(510)가 인에이블되는지 여부에 따라 데이터(320) 또는 데이터 클록(308)의 지연된 버전을 선택적으로 출력하도록 구성될 수 있다. 데이터 지연 회로(302)는 플립-플롭(502), 데이터 멀티플렉서(504), 리셋 멀티플렉서(506) 및 펄스 생성 회로(508)를 포함할 수 있다.
플립-플롭(502)은 임의의 유형의 플립-플롭 또는 래치일 수 있다. 예로서, 플립-플롭(502)은 데이터 입력(D), 출력(Q), 클록 입력(CK) 및 리셋(CLR)을 포함하는 D 플립-플롭일 수 있다.
데이터 멀티플렉서(504)는 트레인 신호(510)가 로우 상태일 때 데이터(320)를 출력하고, 트레인 신호(510)가 하이 상태일 때 1을 출력하는 임의의 컴포넌트일 수 있다. 데이터 멀티플렉서(504)의 출력은 플립-플롭(502)의 데이터 입력(D)에 전기적으로 결합될 수 있다.
펄스 생성 회로(508)는 펄스 생성 회로(508)의 입력(520)이 하이로부터 로우로 천이할 때 출력(518) 상에 펄스를 생성하는 임의의 컴포넌트일 수 있다. 예로서, 펄스 생성 회로(508)는 OR 게이트(522), 인버터(526) 및 지연 컴포넌트(524)를 포함할 수 있다. 펄스 생성 회로(508)의 입력(520)은 OR 게이트(522)의 제1 입력 및 지연 컴포넌트(524)의 입력에 결합될 수 있다. 지연 컴포넌트(524)의 출력은 인버터(526)를 통해 OR 게이트(522)의 제2 입력으로 나아갈 수 있다. OR 게이트(522)의 출력은 펄스 생성 회로(508)의 출력(518)일 수 있다.
리셋 멀티플렉서(506)는 트레인 신호(510)가 로우 상태일 때 시스템 리셋 값을 출력하고, 트레인 신호(510)가 하이 상태일 때 펄스 생성 회로(508)의 출력을 출력하는 임의의 컴포넌트일 수 있다. 리셋 멀티플렉서(506)의 출력은 플립-플롭(502)의 리셋(CLR)에 전기적으로 결합될 수 있다.
데이터 클록 회로(304)는 버스(134) 상의 데이터 신호(310)로부터의 피드백 및 주변 클록(312)으로부터 도출된 주파수 분주 클록(501)에 기초하여 데이터 클록(308)을 생성하도록 구성될 수 있다. 데이터 클록 회로(304)는 지연 고정 루프(DLL)(512), 클록 멀티플렉서(514), 및 주파수 분주기(516)를 포함할 수 있다.
DLL(512)은 기준 클록(528)에 가변 지연을 적용함으로써 마스터 클록(532)을 생성하고, 피드백 클록(530)과 기준 클록(528) 사이의 차이가 미리 결정된 지연이 되도록 가변 지연을 조정하는 컴포넌트일 수 있다. 미리 결정된 지연은 예로서, 360도 위상 시프트일 수 있다. 가변 지연이 적절히 조정된 이후, DLL(512)은 슬레이브 입력(536)에 조정된 가변 지연을 적용함으로써 슬레이브 클록(534)을 생성할 수 있다.
클록 멀티플렉서(514)는 트레인 신호(510)가 하이 상태일 때 마스터 클록(532)을 출력하고, 트레인 신호(510)가 로우 상태일 때 슬레이브 클록(534)을 출력하는 임의의 컴포넌트일 수 있다. 클록 멀티플렉서(514)의 출력은 데이터 클록(308)일 수 있다.
주파수 분주기(516)는 주파수 fin의 입력 신호를 취하고, 주파수 fout의 출력 신호를 생성하는 임의의 컴포넌트일 수 있으며, 여기서, fout = (fin * c)이며, 여기서 c는 분수(fraction)이다. 주파수 분주기(516)는 예로서, 프랙셔널-n 주파수 합성기(fractional-n frequency synthesizer)일 수 있다. 분수는 2/3일 수 있고, 그래서, 주파수 분주기(516)의 출력에서의 클록의 주파수가 (2/3)F의 주파수를 가지며, 여기서, F는 주파수 분주기(516)의 입력에서의 클록의 주파수이다. 분수는 a/b로서 기재되는 유리수일 수 있고, 여기서, a 및 b는 정수이고, a는 b로 이븐(even)하게 나누어지지 않는다.
주파수 분주기(516)에 대한 입력은 주변 클록(312)일 수 있다. 주파수 분주기(516)의 출력은 주파수 분주 클록(501)일 수 있다.
DLL(512)의 기준 클록(528)은 주파수 분주기(516)에 의해 생성된 주파수 분주 클록(501)일 수 있다. DLL의 피드백 클록(530)은 데이터 신호(310)일 수 있다. DLL(512)의 슬레이브 입력(536)은 주변 클록(312)일 수 있다. 마스터 클록(532) 및 슬레이브 클록(534)은 클록 멀티플렉서(514)의 두 개의 제각기 입력일 수 있다.
지연 보상 회로(106)의 교정 동안, 트레인 신호(510)는 지연 보상 회로(106)가 교정 모드에 있다는 것을 나타내는 하이 상태이다. 따라서, 데이터 클록 회로(304)에 의해 생성된 데이터 클록(308)은 교정 동안 DLL(512)의 마스터 클록(532)이다. 플립-플롭(502)의 출력은 마스터 클록(532)의 지연된 버전인, 데이터 클록(308)의 지연된 버전이다. 한편으로, 데이터 클록(308)이 하이로 진행할 때, 플립-플롭(502)의 출력(Q)은 이진수 1인 데이터 입력(D)이다. 다른 한편, 데이터 클록(308)이 로우로 진행할 때, 펄스 생성 회로(508)는 플립-플롭(502)의 리셋(CLR)에게 펄스를 생성하고, 플립-플롭(502)의 출력(Q)은 0으로 떨어진다. 따라서, 버스 상의 데이터 신호(310)는 DLL(512)의 마스터 클록(532)의 지연된 버전이다.
DLL(512)은 피드백 클록(530)에 가변 지연을 적용하여 마스터 클록(532)을 생성하는데, 이것은 데이터 신호(310)의 미소하게 지연된 버전이다. DLL(512)은 기준 클록(528)과 피드백 클록(530) 사이의 차이가 미리 결정된 지연이 될 때까지 가변 지연을 조정한다. 미리 결정된 지연이 360도 위상 시프트이고, 주파수 분주 클록이 주변 클록(312)의 주파수의 2/3인 경우, 이때 가변 지연은 피드백 클록(530)이 주변 클록(312)의 1.5 주기만큼 지연되게 할 것이다. DLL(512)은 또한 주변 클록(312)인 슬레이브 입력(536)에 가변 지연을 적용하여 슬레이브 클록(534)을 생성할 수 있다.
일단 DLL(512)이 원하는 가변 지연을 결정하면, 교정이 종료될 수 있다. 지연 보상 회로(106)의 교정이 종료될 때, 트레인 신호(510)는 로우 상태일 수 있다. 플립-플롭(502)은 이 때 슬레이브 클록(534)에 의해 클로킹된다. 플립-플롭(502)의 데이터 입력은 데이터(320)이다. 따라서, 플립-플롭(502)의 출력(Q)은 주변 클록(312)의 약 1.5 주기의 지연을 갖는 데이터 신호(310)로 버스(134) 상에 데이터(320)를 제공한다.
도 6은 샘플링된 데이터가 정확하게 판독되는 시기에 대한 결정에 기초하여 교정하는 지연 보상 회로(106)의 실시예의 블록도이다. 지연 보상 회로(106)는 데이터 지연 회로(302) 및 데이터 클록 회로(304)를 포함한다.
데이터 지연 회로(302)는 패턴 신호(604)의 표시에 기초한 튜닝 패턴(602) 상에 또는 데이터(320) 상에 지연을 부여하도록 구성된 임의의 회로일 수 있으며, 데이터 지연 회로(302)에 의해 부여되는 지연은 데이터 클록(608A, 608B 또는 608C)의 위상에 의존하고, 데이터 클록들(608A, 608B 또는 608C) 중 하나는 사실상 지연 선택 신호(610)에 의해 선택된다. 대안적으로 또는 추가적으로, 데이터 지연 회로(302)는, 사실상 지연 선택 신호(610)에 의해 선택된 데이터 클록(608A, 608B 또는 608C)의 위상에 의해 결정된 지연의 부과 이후에 버스(134) 상에 데이터(320)를 제공하도록 구성된 임의의 회로일 수 있다. 데이터 지연 회로(302)는 데이터 선택기(612), 지연 선택기(614), 및 데이터 플립-플롭들(616, 618, 620, 622)을 포함할 수 있다.
데이터 선택기(612)는 멀티플렉서와 같이 데이터를 선택적으로 출력하는 임의의 컴포넌트일 수 있다. 데이터 선택기(612)에 대한 입력은 데이터(320) 및 튜닝 패턴(602)일 수 있다. 튜닝 패턴(602)은 비트들의 임의의 미리 결정된 패턴일 수 있다. 패턴 신호(604)는 데이터(320) 또는 튜닝 패턴(602) 중 어느 쪽을 선택하는지를 데이터 선택기(612)에 표시할 수 있다. 데이터 선택기(612)의 출력은 선택된 데이터(624)이다. 예로서, 선택된 데이터(624)는 패턴 신호(604)가 로우 상태일 때 데이터(320)일 수 있고, 패턴 신호(604)가 하이 상태일 때 튜닝 패턴(602)일 수 있다.
지연 선택기(614)는 멀티플렉서와 같이 데이터를 선택적으로 출력하는 임의의 컴포넌트일 수 있다. 지연 선택 신호(610)는 지연 선택기(614)에게 지연 선택기(614)의 어떤 입력이 출력될지를 나타낼 수 있다. 지연 선택기(614)의 출력은 데이터 신호(310)일 수 있다. 지연 선택기(614)에 대한 입력들은 데이터 플립-플롭들(616-622)의 출력들일 수 있다.
데이터 플립-플롭들(616-622) 각각은 임의 유형의 플립-플롭 또는 래치일 수 있다. 예로서, 각각의 데이터 플립-플롭(616, 618, 620 또는 622)은 입력(D), 출력(Q), 및 클록 입력(CK)을 포함하는 D 플립-플롭일 수 있다.
데이터 플립-플롭들 중 제1 데이터 플립-플롭(616)은 주변 클록(312)에 의해 클로킹될 수 있고, 그 데이터 입력으로서 선택된 데이터(624)를 수신할 수 있다. 데이터 플립-플롭들 중 제1 데이터 플립-플롭(616)의 출력은 지연 선택기(614)에 대한 선택가능한 입력들 중 하나일 수 있다. 데이터 플립-플롭들 중 제1 데이터 플립-플롭(616)의 출력은 나머지 데이터 플립-플롭들(618, 620, 622)에 대한 입력일 수 있다. 나머지 데이터 플립-플롭들(618, 620, 622) 중 각각의 플립-플롭은 데이터 클록들(608A, 608B 또는 608C) 중 대응하는 데이터 클록에 의해 클로킹될 수 있다. 데이터 클록들(608A, 608B 또는 608C) 각각은 주변 클록(312)으로부터 제각기 90도, 180도 및 270도 시프트된 클록이다. 나머지 데이터 플립-플롭들(618, 620, 622)의 출력들은 지연 선택기(614)의 입력들에 공급된다.
데이터 클록 회로(304)는 시간 경과에 따라 데이터 신호(310)를 샘플링하고 주변 클록(312)에 대한 데이터 클록(608A, 608B 또는 608C)의 지연을 결정하여 데이터(320)가 주변 클록(312)의 미리 결정된 에지에서 버스(134) 상에서 판독 가능하도록 구성된 임의의 회로일 수 있다. 데이터 클록 회로(304)는 지연 고정 루프(DLL)(630), 샘플링 모듈(632), 및 판정 모듈(634)을 포함할 수 있다.
DLL(630)은 미리 결정된 위상 시프트만큼 유입 클록과 위상 어긋남을 갖는 클록들을 생성하는 임의의 컴포넌트일 수 있다. 도 6에 예시된 예에서, DLL(630)은 주변 클록(312)으로부터 제각기 90도, 180도, 270도 및 360도 시프트된 클록인 네 개의 데이터 클록(608A, 608B, 608C, 608D)을 생성하도록 구성된다.
샘플링 모듈(632)은 주변 클록(312)의 미리 결정된 위상 시프트들에서 데이터 신호(310)를 샘플링하는 임의의 회로일 수 있다. 도 6에 예시된 샘플링 모듈(632)의 예는 샘플링 플립-플롭들(636-650)의 두 개의 스테이지(652, 654)를 포함한다. 샘플링 플립-플롭들(636-650) 각각은 임의 유형의 플립-플롭 또는 래치일 수 있다. 샘플링 플립-플롭들(636-650) 각각의 입력은 데이터 신호(310)일 수 있다. 샘플링 플립-플롭들(636-650) 각각의 출력은 미리 결정된 위상 시프트들 중 제각기 위상 시프트에서 샘플링된, 샘플링된 값일 수 있다.
샘플링 플립-플롭들(636, 638, 640, 642)은 제1 스테이지(652)에서, 제각기 데이터 클록들(608A, 608B, 608C, 608D)에 의해 클로킹될 수 있고, 이 데이터 클록들 각각은 주변 클록(312)으로부터 제각기 90도, 180도, 270도, 및 360도 시프트되어 있다. 따라서, 제1 스테이지(652)에서의 샘플링 플립-플롭들(636, 638, 640, 642)은 제각기 90도, 180도, 270도, 및 360도의 미리 결정된 위상 시프트들에서 데이터 신호(310)를 샘플링하도록 구성된다.
제1 스테이지(652)에서의 샘플링 플립-플롭들(636-642)과는 달리, 제2 스테이지(654)에서의 샘플링 플립-플롭들(644-650)은 주변 클록(312)의 제1 전체 클록 주기 동안 디스에이블되고, 주변 클록(312)의 제2 전체 클록 주기 동안 인에이블될 수 있다. 샘플링 플립-플롭들(644, 646, 648, 650)은 제2 스테이지(654)에서, 제각기 데이터 클록들(608A, 608B, 608C, 608D)에 의해 클로킹될 수 있고, 이 데이터 클록들 각각은 주변 클록(312)으로부터 제각기 90도, 180도, 270도, 및 360도 시프트되어 있다. 따라서, 제2 스테이지(654)에서의 샘플링 플립-플롭들(644, 646, 648, 650)은 제각기 450도, 540도, 630도 및 720도의 미리 결정된 위상 시프트들에서 데이터 신호(310)를 샘플링하도록 구성된다.
판정 모듈(634)은 주변 클록(312)에 대한 어떠한 미리 결정된 위상 시프트가 데이터 신호(310)로부터 버스(134) 상에서 판독가능한 튜닝 패턴(602) 또는 데이터(320)인지를 결정하도록 구성되는 임의의 회로일 수 있다. 대안적으로 또는 추가적으로, 판정 모듈(634)은 버스(134) 상에서 데이터 신호(310)로 데이터(320) 또는 튜닝 패턴(602)을 제공하기 위한 시기를 데이터 지연 회로(302)에 표시하도록 구성된 임의의 회로일 수 있다. 도 6에 예시된 예에서, 판정 모듈(634)은 지연 회로(302)에 데이터 클록들(608A, 608B, 608C) 및 지연 선택 신호(610)를 제공함으로써 버스(134) 상에 데이터(320) 및/또는 튜닝 패턴(602)을 제공하기 위한 시기를 지연 회로(302)에 표시하도록 구성된다.
일 실시예에서, 판정 모듈(634)은 비교기들(도시되지 않음) 및 지연 선택 회로(도시되지 않음)를 포함할 수 있다. 비교기들 중 각각의 비교기는 샘플링 플립-플롭들(636-650) 중 대응하는 샘플링 플립-플롭을 위한 것이다. 각각의 비교기는 대응 샘플링 플립-플롭의 출력을 튜닝 패턴(602)과 비교할 수 있다. 비교기들의 출력들은 지연 선택 회로에 제공될 수 있다. 지연 선택 회로는 지연 선택 신호(610)를 나타내는 이진수에 대해 비교기의 출력들 -이 출력들은 함께 이진수 입력을 나타낼 수 있음- 을 맵핑하는 로직을 구현할 수 있다.
아래의 표 1은 지연 선택 신호(610)의 예시적 값들을 예시한다.
Figure 112017089569346-pct00001
아래의 표 2는 비교기들의 출력들과 대응하는 원하는 지연으로부터 형성될 수 있는 이진수 입력의 예를 예시한다. 이진수 입력은 숫자 R1R2R3R4R5R6R7R8로부터 형성될 수 있고, 여기서 Rn은 n번째 비교기의 출력을 나타내고, n이 높을수록 지연(위상 시프트)이 더 커진다. 숫자 Rn은 대응하는 샘플링 플립-플롭(636-650)의 출력이 n번째 비교기에 대한 튜닝 패턴(602)과 매칭될 때 "1"일 수 있고, 그 이외의 경우에는 "0"일 수 있다.
Figure 112017089569346-pct00002
표 2에 나열된 것들 이외의 이진수 입력의 값이 가능하다. 이들 다른 값들 각각은 표 2에 나열된 차순위 더 높은 값처럼 각각의 값을 처리함으로써 취급될 수 있고, 가장 오른쪽의 숫자가 최상위 숫자이다. 예로서, 00011100의 이진수 입력 값은 0001 1110 지연 값으로 맵핑될 수 있고, 이는 표 2에 따라서 180 도 시프트이다.
표 2의 값은 또한 응답 윈도우들을 검사함으로써 가시화될 수 있다. 도 7은 주변 클록(312)의 두 개의 주기를 예시한다. 두 개의 주기는 8개 응답 윈도우(R1-R8)로 분할되고, 이 윈도우 각각은 주기의 1/4를 나타낸다. 튜닝 패턴(602)의 비트는 주변 클록(312)의 초기 에지(402)에 응답하여 버스(134) 상에 데이터 신호(310)로 제공될 수 있다. 제1 스테이지(652)에서 제1 샘플링 플립-플롭(636)이 튜닝 패턴(602)을 검출하는 경우, 이 때, 튜닝 패턴(602)은 제1 응답 윈도우(R1)에서 검출되고, 표 2의 이진 입력 수의 R1 비트는 "1"이다. 유사하게, 제1 스테이지(652)에서, 제2 샘플링 플립-플롭(638)이 튜닝 패턴(602)을 검출하는 경우, 이 때, 튜닝 패턴(602)은 제2 응답 윈도우(R2)에서 검출되고, 표 2의 이진 입력 수의 R2 비트는 "1"이다. 더 일반적으로, n번째 샘플링 플립-플롭(636, 638, 640, 642, 644, 646, 648 또는 650)이 튜닝 패턴(602)을 검출하는 경우, 이 때, 튜닝 패턴(602)은 n번째 응답 윈도우(Rn)에서 검출되고, 표 2의 이진 입력 수의 Rn 비트는 "1"이다.
튜닝 패턴(602)이 응답 윈도우 R4 또는 R5에서 검출되는 경우, 이 때, 데이터 지연 회로(302)가 추가적 지연을 부과하도록 지연 선택 신호(610)가 설정되지 않는 한, 데이터(320)도 응답 윈도우 R4 또는 R5에서 버스(134) 상에 제공될 것이다. 이는 응답 윈도우들 R4 및 R5가 주변 클록(312)의 제1 에지(404)를 둘러싸고 있어서 주변 클록(312)의 제1 에지(404) 상에서 호스트에 의해 판독되는 경우 데이터 신호(310)가 잠재적으로 불확정 상태에 있을 수 있기 때문에 문제가 될 수 있다. 이러한 가능성을 피하기 위해, 지연 선택 신호(610)는 데이터(320)가 지연되어야 한다는 것을 나타내도록 설정될 수 있다. 예로서, 튜닝 패턴(602)이 응답 윈도우 R4에서 검출되는 경우(표 2의 이진 입력 수 "0001 1110"), 이 때, 지연 선택 신호(610)는 데이터 지연 회로(302)가 270 도 시프트를 부여한다는 것을 나타내기 위해 "11"에 설정될 수 있다. 이러한 지연이 부여된 상태에서, 데이터(320)는 R4 대신 응답 윈도우 R7에서 버스(134) 상에 제공될 것이다.
표 1 및 표 2로부터의 정보는 조합되어 각각의 이진 입력 수와 지연 선택 신호(610)를 위한 대응 값 사이의 맵을 형성할 수 있다. 지연 선택 회로는 맵핑을 이행하는 하드웨어와 소프트웨어의 조합 및/또는 로직 게이트들을 포함할 수 있다. 대안적으로 또는 추가적으로, 제어기(102)는 지연 선택 신호(610)를 위한 적절한 값을 결정하기 위해 튜닝 패턴(602)의 다수의 비트로부터의 결과들을 평균화할 수 있다.
교정 동안, 판정 모듈(634) 또는 다른 회로는 패턴 신호(604)를 적절하게 설정함으로써 데이터 선택기(612)가 튜닝 패턴(602)을 선택하도록 지도할 수 있다. 튜닝 패턴(602)의 각각의 비트는 튜닝 패턴(602)의 다음 비트로 이동하기 전에 주변 클록(312)의 두 개의 전체 주기에 대해 데이터 선택기(612)에 제공될 수 있다. 이는 샘플링 모듈(632)이 주변 클록(312)의 하나의 주기에 걸쳐 데이터 신호(310)를 샘플링하기 때문이다. 다른 예에서, 튜닝 패턴(602)의 각각의 비트는 적어도 샘플링 모듈(632)이 그에 걸쳐 데이터 신호(310)를 샘플링하는 시간인 한은 데이터 선택기(612)에 제공될 수 있다. 일부 예에서, 튜닝 패턴(602)은 단 하나의 비트를 포함할 수 있다.
교정이 시작될 때, 판정 모듈(634)은 어떠한 지연도 부여되지 않을 것을 지연 선택기(614)에 나타낼 수 있다. 결과적으로, 샘플링 모듈(632) 및 판정 모듈(634)이 샘플링 플립-플롭들(636-650) 중 어느 것이 튜닝 패턴(602)의 비트를 적절하게 판독할 수 있는지를 결정할 때, 이후, 지연은 결정되어 있다. 결정된 지연은 튜닝 패턴(602) 및/또는 데이터(320)가 버스(134) 상에 제공되는 시간과 주변 클록의 초기 에지(402) 사이의 지연이다. 이 지연은 사실상 지연 보상 회로(106)의 루프 지연의 측정일 수 있다.
이진 입력 수에 의해 표시된 검출된 루프 지연에 기초하여, 판정 모듈(634)은 원하는 지연을 결정할 수 있고, 원하는 지연의 표시를 지연 선택 신호(610)를 통해 데이터 지연 회로(302)에 제공할 수 있다. 교정이 이루어지고 나면, 판정 모듈(634)은 지연 선택 신호(610)를 통해 데이터 지연 회로(302)에 원하는 지연의 표시를 제공하는 것을 계속할 수 있다. 따라서, 데이터 클록은 사실상 데이터 신호(310)의 데이터의 검출에 기초하여 그리고 튜닝 패턴(602)에 대한 검출된 데이터의 비교에 기초하여 주변 클록(312)에 대해 시프트될 수 있다.
응답 윈도우(R1-R8)와, 표 1 및 표 2의 값들은 단지 하나의 가능한 구성일 뿐이다. 예로서, 임의의 수의 응답 윈도우가 선택될 수 있다. 각각의 응답 윈도우의 크기는 예시된 실시예에서 서로 다를 수 있다. 비록 예시된 이진 입력 수에서의 하이 비트가 튜닝 패턴(602)의 검출을 나타내지만, 다른 예에서 로우 비트가 튜닝 패턴(602)의 검출을 나타낼 수 있다. 다른 예로서, 각각의 응답 윈도우에 대한 원하는 지연들은 표 1에 나열된 것들과 다를 수 있다.
도 8은 비휘발성 메모리 시스템(100) 및/또는 지연 보상 회로(106)의 예시적 로직을 예시하는 흐름도이다. 로직은 추가적인, 상이한, 또는 더 적은 수의 동작을 포함할 수 있다. 이 동작들은 도 8에 예시된 것과는 다른 순서로 실행될 수 있다.
동작들은 데이터 클록(308)이 주변 클록(312)으로부터 생성될 수 있는 동작(802)에서 시작될 수 있다. 샘플 데이터는 데이터 클록(308)의 에지에 응답하여 버스(134) 상에 데이터 신호(310)로 제공(804)될 수 있으며, 여기서 데이터 클록의 에지는 주변 클록(312)의 초기 에지에 의해 트리거된다. 제1 예에서, 샘플 데이터는 도 5에 예시된 플립-플롭(502)에 의해 생성된 데이터 클록(308)의 지연된 버전일 수 있다. 제2 예에서, 샘플 데이터는 도 6에 예시된 튜닝 패턴(602)일 수 있다.
주변 클록(312)에 대한 데이터 클록(308)의 지연은 샘플 데이터가 버스(134) 상에서 검출되는 시간과 주변 클록(312)의 초기 에지(402) 사이의 시간 차에 기초하여 선택(806)될 수 있다. 제1 예에서, 지연을 선택하는 것은 피드백 클록(530)으로서의 버스(134) 상의 데이터 신호(310)를 갖는 지연 고정 루프(512)에 의한 마스터 클록(532) 및 기준 클록(528)으로서의 주변 클록(312)으로부터 도출된 주파수 분주 클록(501)을 생성하는 것을 포함할 수 있다. 제2 예에서, 지연을 선택하는 것은 복수의 데이터 클록(608A-C)으로부터 지연된 데이터 클록을 선택하는 것을 포함할 수 있으며, 데이터 클록들(608A-C) 각각은 복수의 데이터 클록(608A-C)의 다른 데이터 클록과는 상이한 미리 결정된 위상 시프트를 갖는다.
주변 클록(312)에 대한 선택된 지연을 갖는 지연된 데이터 클록이 생성(808)될 수 있는 동작들이 계속될 수 있다. 예로서, 지연된 데이터 클록은 DLL(512 또는 630)에 의해 생성될 수 있다.
데이터에 대한 요청은 버스(134)를 거쳐 호스트로부터 수신(810)될 수 있다. 예로서, 요청은 판독 요청일 수 있다.
요청된 데이터는 지연된 데이터 클록의 에지에 응답하여 버스(134) 상에 제공(812)될 수 있다. 예로서, 도 5에 예시된 플립-플롭(502) 또는 도 6에 예시된 데이터 플립-플롭들(616-622) 중 선택된 데이터 플립-플롭이 버스(134) 상에 요청된 데이터를 제공할 수 있다.
시스템(100) 및/또는 지연 보상 회로(106)는 추가적인, 상이한, 또는 더 소수의 컴포넌트로 구현될 수 있다. 예로서, 시스템(100)은 지연 보상 회로(106)만을 포함할 수 있다.
각각의 컴포넌트는 추가적인, 상이한, 또는 더 소수의 컴포넌트를 포함할 수 있다. 예로서, 지연 보상 회로(106)는 패드 인터페이스(306)를 포함하거나 포함하지 않을 수 있다. 다른 예에서, 샘플링 모듈은 도 6에 도시된 것에 추가적인 또는 더 소수의 샘플링 플립-플롭들(636-650)을 포함할 수 있다.
시스템(100) 및/또는 지연 보상 회로(106)는 다수의 상이한 방식으로 구현될 수 있다. 각각의 모듈, 회로, 또는 컴포넌트, 예컨대, 판정 모듈(634)은 하드웨어 또는 하드웨어와 소프트웨어의 조합일 수 있다. 예로서, 각각의 모듈은 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 회로, 디지털 로직 회로, 아날로그 회로, 이산 회로의 조합, 게이트, 또는 임의의 다른 유형의 하드웨어 또는 그 조합을 포함할 수 있다. 대안적으로 또는 추가적으로, 각각의 모듈은 예로서, 모듈의 특징 중 하나 이상을 이행하도록 프로세서에 의해 실행될 수 있는 명령어들을 포함하는 메모리 하드웨어를 포함할 수 있다. 모듈 중 임의의 하나가 프로세서에 의해 실행될 수 있는 명령어들을 포함하는 메모리의 부분을 포함할 때, 모듈은 프로세서를 포함하거나 그렇지 않을 수 있다. 일부 예에서, 각각의 모듈은 임의의 다른 하드웨어를 포함하는 모듈 없이 대응 모듈의 특징을 이행하도록 프로세서에 의해 실행가능한 명령어들을 포함하는 메모리의 부분만일 수 있다. 포함된 하드웨어가 소프트웨어를 포함하는 경우에도 각각의 모듈이 적어도 일부 하드웨어를 포함하기 때문에, 각각의 모듈은 판정 하드웨어 모듈과 같이 하드웨어 모듈이라고 교환 가능하게 지칭될 수 있다.
마지막으로, 전술한 바와 같이, 임의의 적절한 유형의 메모리가 사용될 수 있다. 반도체 메모리 디바이스는 휘발성 메모리 디바이스, 예컨대, 동적 랜덤 액세스 메모리("DRAM") 또는 정적 랜덤 액세스 메모리("SRAM") 디바이스, 비휘발성 메모리 디바이스, 예컨대, 저항성 랜덤 액세스 메모리("ReRAM"), 전기적 소거가능 프로그램가능 판독 전용 메모리("EEPROM"), 플래시 메모리(또한 EEPROM의 부분집합으로 고려될 수 있음), 강유전성 랜덤 액세스 메모리("FRAM") 및 자기저항성 랜덤 액세스 메모리("MRAM") 및 정보를 저장할 수 있는 기타 반도체 요소를 포함한다. 각각의 유형의 메모리 디바이스는 상이한 구성들을 가질 수 있다. 예를 들어, 플래시 메모리 디바이스들은 NAND 또는 NOR 구성으로 구성될 수 있다.
메모리 디바이스들은 임의의 조합으로 수동 및/또는 능동 요소로부터 형성될 수 있다. 비제한적인 예로서, 수동 반도체 메모리 요소는 ReRAM 디바이스 요소를 포함하고, 이는 일부 실시예에서, 저항성 스위칭 저장 요소, 예컨대, 안티-퓨즈, 상 변화 재료 등 및 선택적으로 스티어링 요소, 예컨대, 다이오드 등을 포함한다. 또한, 비제한적인 예로서, 능동 반도체 메모리 요소는 EEPROM 및 플래시 메모리 디바이스 요소를 포함하고, 이는 일부 실시예에서, 전하 저장 영역을 포함하는 요소, 예컨대, 플로팅 게이트, 도전성 나노입자, 또는 전하 저장 유전체 재료를 포함한다.
다수의 메모리 요소들은, 이들이 직렬로 접속되도록 또는 각각의 요소가 개별적으로 액세스 가능하도록 구성될 수 있다. 비제한적인 예로서, NAND 구성(NAND 메모리) 내의 플래시 메모리 디바이스들은 전형적으로 직렬로 접속되는 메모리 요소를 포함한다. NAND 메모리 어레이는, 스트링이 단일 비트 라인을 공유하고 그룹으로서 액세스되는 다수의 메모리 요소로 이루어지는 메모리의 다수의 스트링으로 어레이가 이루어지도록 구성될 수 있다. 대안적으로, 메모리 요소들은 각각의 요소가 개별적으로 액세스 가능하도록 구성될 수 있다(예를 들어, NOR 메모리 어레이). NAND 및 NOR 메모리 구성들은 예시적인 것이고, 메모리 요소들은 달리 구성될 수 있다.
기판 내에 및/또는 기판 위에 위치된 반도체 메모리 요소는 2차원 또는 3차원으로, 예컨대, 이차원 메모리 구조 또는 삼차원 메모리 구조로서 배열될 수 있다.
2차원 메모리 구조에서, 반도체 메모리 요소들은 단일 평면 또는 단일 메모리 디바이스 레벨로 배열된다. 전형적으로, 2차원 메모리 구조에서, 메모리 요소들은 메모리 요소들을 지지하는 기판의 주 표면에 실질적으로 평행하게 연장하는 평면(예를 들어, x-z 방향 평면) 내에 배열된다. 기판은 그 위에 또는 그 안에 메모리 요소들의 층이 형성되는 웨이퍼일 수 있거나 또는 기판은 메모리 요소들이 형성된 후에 메모리 요소들에 부착되는 캐리어 기판일 수 있다. 비제한적인 예로서, 기판은 실리콘 같은 반도체를 포함할 수 있다.
메모리 요소들은 복수의 행 및/또는 열과 같이 정렬된 어레이로 단일 메모리 디바이스 레벨로 배열될 수 있다. 그러나, 메모리 요소들은 비 규칙적 또는 비 직교 구성들로 배열될 수 있다. 메모리 요소들은 각각 둘 이상의 전극 또는 접촉 라인, 예컨대, 비트 라인 및 워드 라인을 가질 수 있다.
3차원 메모리 어레이는 메모리 요소들이 다수의 평면 또는 다수의 메모리 디바이스 레벨을 차지하도록 배열되어, 3개의 차원에서(즉, x, y 및 z 방향에서 - 여기서 y 방향은 기판의 주 표면에 실질적으로 수직이고 x 및 z 방향들은 기판의 주 표면에 실질적으로 평행함) 구조를 형성한다.
비제한적인 예로서, 3차원 메모리 구조는 다수의 2차원 메모리 디바이스 레벨의 적층체로서 수직으로 배열될 수 있다. 또 다른 비제한적인 예로서, 3차원 메모리 어레이는 다수의 수직 열들(예를 들어, 기판의 주 표면에 실질적으로 수직으로, 즉 y 방향으로 연장되는 열들)로서 배열될 수 있고, 각각의 열은 각각의 열에 다수의 메모리 요소를 갖는다. 열들은 2차원 구성, 예를 들어, x-z 평면에 배열될 수 있고, 결과적으로 다중의 수직으로 적층된 메모리 평면들 상의 요소들을 가진 메모리 요소들의 3차원 배열을 이룬다. 3차원에서의 메모리 요소의 다른 구성이 또한 3차원 메모리 어레이를 구성할 수 있다.
비제한적인 예로서, 3차원 NAND 메모리 어레이에서, 메모리 요소들이 단일의 수평(예컨대, x-z) 메모리 디바이스 레벨 내에 NAND 스트링을 형성하기 위해 서로 결합될 수 있다. 대안적으로, 메모리 요소들은 다수의 수평 메모리 디바이스 레벨들에 걸쳐서 가로지르는 수직 NAND 스트링을 형성하기 위해 함께 결합될 수 있다. 일부 NAND 스트링이 단일 메모리 레벨에서 메모리 요소를 포함하고, 다른 스트링이 다수의 메모리 레벨을 통해 걸쳐 있는 메모리 요소를 포함하는 다른 3차원 구성이 안출될 수 있다. 3차원 메모리 어레이들은 NOR 구성으로 및 ReRAM 구성으로 설계될 수도 있다.
전형적으로, 모놀리식 3차원 메모리 어레이에서는, 하나 이상의 메모리 디바이스 레벨이 단일 기판 위에 형성된다. 선택적으로, 모놀리식 3차원 메모리 어레이는 또한 적어도 부분적으로 단일 기판 내에 하나 이상의 메모리 층을 구비할 수 있다. 비제한적인 예로서, 기판은 실리콘 같은 반도체를 포함할 수 있다. 모놀리식 3차원 어레이에서, 어레이의 각각의 메모리 디바이스 레벨을 구성하는 층들은 전형적으로 어레이의 하위 메모리 디바이스 레벨들(underlying memory device levels)의 층들 상에 형성된다. 그러나, 모놀리식 3차원 메모리 어레이의 인접한 메모리 디바이스 레벨들의 층들은 메모리 디바이스 레벨들 사이에서 공유될 수 있거나 개재 층들을 가질 수 있다.
한편, 2차원 어레이들이 별개로 형성된 후에 함께 패키징되어 다수의 메모리 층을 갖는 비 모놀리식 메모리 디바이스를 형성할 수 있다. 예로서, 비 모놀리식 적층 메모리는 별개의 기판 상에 메모리 레벨들을 형성하고, 그후 메모리 레벨들을 서로 상하로 적층함으로써 구축될 수 있다. 기판들은 적층 전에 메모리 디바이스 레벨들로부터 박막화되거나 제거될 수 있지만, 메모리 디바이스 레벨들이 별개의 기판들 위에 초기에 형성됨에 따라, 결과적인 메모리 어레이들은 모놀리식 3차원 메모리 어레이들이 아니다. 또한, 다수의 2차원 메모리 어레이 또는 3차원 메모리 어레이(모놀리식 또는 비 모놀리식)는 별개의 칩들 상에 형성된 다음 적층형 칩 메모리 디바이스를 형성하기 위해 함께 패키징될 수 있다.
연관된 회로는 전형적으로 메모리 요소들의 동작을 위해 그리고 메모리 요소들과의 통신을 위해 필요하다. 비제한적인 예로서, 메모리 디바이스는 프로그래밍 및 판독과 같은 기능을 달성하기 위해 메모리 요소를 제어 및 구동하기 위해 사용되는 회로를 가질 수 있다. 이 연관된 회로는 메모리 요소들과 동일한 기판 상에 및/또는 별개의 기판 상에 있을 수 있다. 예를 들어, 메모리 판독-기입 동작들을 위한 제어기는 별개의 제어기 칩 상에 및/또는 메모리 요소들과 동일한 기판 상에 위치할 수 있다.
통상의 기술자는 본 개시내용이 설명된 2차원 및 3차원 예시적 구조에 한정되지 않으며, 통상의 기술자가 이해하고 본 명세서에 설명되어 있는 실시예의 개념 및 범주 이내의 모든 관련 메모리 구조를 포함한다는 것을 알 수 있을 것이다.
또한, 특정 컴포넌트들이 전술되었지만, 본원에 기술되는 방법들, 시스템들 또는 제조 물품들은 추가적인, 더 소수의, 또는 상이한 컴포넌트들을 포함할 수 있다. 예로서, 프로세서는 마이크로프로세서, 마이크로컨트롤러, 주문형 집적 회로(ASIC), 이산 로직 또는 다른 유형의 회로나 로직의 조합으로서 구현될 수 있다. 유사하게, 메모리들은 DRAM, SRAM, 플래시 또는 임의의 다른 타입의 메모리일 수 있다. 플래그, 데이터, 데이터베이스, 표, 엔티티, 및 다른 데이터 구조들이 별도로 저장되고 관리될 수 있고, 단일 메모리 또는 데이터베이스 내에 포함될 수 있고, 분산될 수 있거나, 또는 많은 상이한 방식들로 논리적으로 또는 물리적으로 조직될 수 있다. 컴포넌트들은 독립적으로 동작하거나, 동일한 프로그램 또는 장치의 일부일 수 있다. 컴포넌트는 분리된 제거가능한 회로 기판 같이 분리된 하드웨어 상에 존재할 수 있거나, 동일한 메모리 및 메모리로부터의 명령어를 이행하기 위한 프로세서 같이 공통 하드웨어를 공유할 수 있다.
제2 작용은 제2 작용이 제1 작용으로부터 직접적으로 초래되든 간접적으로 초래되든 무관하게 제1 작용에 "응답하여" 이루어지는 것으로 말할 수 있다. 제2 작용은 실질적으로 제1 작용보다 뒤늦은 시간에 발생할 수 있으며, 여전히 제1 작용에 응답하여 이루어질 수 있다. 유사하게, 제2 작용은 제1 작용과 제2 작용 사이에 개입 작용이 이루어지는 경우에도, 그리고, 하나 이상의 개입 작용이 직접적으로 제2 작용이 수행되게 하는 경우에도 제1 작용에 응답하여 이루어지는 것으로 말할 수 있다. 예로서, 제2 작용은 제1 작용이 플래그를 설정하고 또한 제3 작용이 추후 플래그가 설정될 때마다 제2 작용을 개시하는 경우 제1 작용에 응답하여 이루어지는 것일 수 있다.
공중의 사용을 명료화하고 이에 의해 공중에 통지를 제공하기 위해, 구문들 "<A>, <B>,..., 및 <N> 중 적어도 하나" 또는 "<A>, <B>,..., <N> 중 적어도 하나 또는 이들의 조합" 또는 "<A>, <B>,..., 및/또는 <N>"은, 출원인에 의해 반대로 명시적으로 단언되지 않는 한 상기에서 또는 하기에서 임의의 다른 내포된 정의들을 대체하여, A, B,..., 및 N을 포함하는 그룹으로부터 선택되는 하나 이상의 요소들을 의미하도록 가장 넓은 의미로 출원인에 의해 정의된다. 다시 말해, 구문들은, 임의의 하나의 요소를 단독으로 포함하는, 또는 열거되지 않은 추가적인 요소들을 조합하여 또한 포함할 수 있는 다른 요소들 중 하나 이상과 조합하는 하나의 요소를 포함하는, 요소들 A, B,..., 또는 N 중 하나 이상의 임의의 조합을 의미한다.
전술한 설명은 실시예가 취할 수 있는 선택된 형태에 대한 예시로서 이해되어야 하며, 모든 실시예에 대한 정의로서 이해되지 않아야 한다. 마지막으로, 본 명세서에 설명된 실시예 중 임의의 것의 임의의 양태는 단독으로 또는 서로 조합하여 사용될 수 있음을 유의하여야 한다.

Claims (20)

  1. 메모리 시스템으로서,
    메모리; 및
    상기 메모리와 통신 상태에 있는 제어기
    를 포함하고, 상기 제어기는,
    버스로부터 주변 클록을 수신하고;
    데이터 클록의 에지에 응답하여 데이터를 상기 버스상에 데이터 신호로 제공하고; 및
    상기 버스에 제공된 상기 데이터 신호에 기초하여 상기 주변 클록에 대하여 상기 데이터 클록을 시프트하여 상기 데이터가 상기 주변 클록의 미리 결정된 에지에서 상기 버스상에서 판독 가능하도록 구성되는
    메모리 시스템.
  2. 제1항에 있어서, 상기 제어기는 복수의 데이터 클록으로부터 상기 데이터 클록의 선택을 통해 상기 데이터 클록을 시프트하도록 구성되고, 상기 데이터 클록들 각각은 상기 복수의 데이터 클록 중 임의의 다른 데이터 클록과 상이한, 상기 주변 클록에 대한 위상을 갖는
    메모리 시스템.
  3. 제1항에 있어서, 상기 제어기는 상기 데이터 신호 내의 상기 데이터의 검출에 기초하여 그리고 튜닝 패턴에 대한 검출된 상기 데이터의 비교에 기초하여 상기 주변 클록에 대해 상기 데이터 클록을 시프트하도록 추가로 구성되는
    메모리 시스템.
  4. 제1항에 있어서, 상기 제어기는, 상기 주변 클록에 대하여 상기 버스상의 상기 데이터 신호에서 데이터가 검출된 시기의 결정에 기초하여 상기 데이터 클록을 시프트하도록 추가로 구성되는
    메모리 시스템.
  5. 제1항에 있어서, 상기 제어기는 상기 주변 클록의 제1 에지의 1/4 클록 주기 내에서의 상기 버스상의 상기 데이터의 검출에 응답하여 상기 데이터 클록을 시프트하도록 구성되고, 상기 제1 에지는 상기 주변 클록의 초기 에지 후의 1 클록 주기이고, 상기 데이터 클록의 에지는 상기 주변 클록의 초기 에지에 응답하는 것인
    메모리 시스템.
  6. 제1항에 있어서, 상기 버스상에 제공된 상기 데이터는 상기 데이터 클록에 대응하고, 상기 데이터 클록은 상기 버스상의 상기 데이터 신호로부터의 피드백에 기초하여 그리고 상기 주변 클록으로부터 도출된 주파수 분주 클록으로 설정된 기준 클록에 기초하여 상기 데이터 클록을 생성하도록 구성된 지연 고정 루프에 의해 시프트되는
    메모리 시스템.
  7. 지연 보상 회로로서,
    데이터를 버스상에 데이터 신호로 전송하도록 구성된 데이터 지연 회로 - 상기 데이터의 전송은 데이터 클록의 에지에 의해 트리거됨 -; 및
    상기 버스상의 데이터 신호로부터의 피드백에 따라 주변 클록에 대해 상기 데이터 클록의 위상을 조정하도록 구성된 데이터 클록 회로 - 상기 데이터 지연 회로는 상기 데이터 클록 회로에 의해 상기 데이터 클록의 위상이 조정된 후 데이터를 상기 버스상에 상기 데이터 신호로 상기 주변 클록의 전체 클록 주기의 타깃 부분에서 전송하도록 추가로 구성되고, 상기 타깃 부분은 상기 전체 클록 주기의 분수(fraction)이고, 상기 주변 클록은 상기 버스상에서 수신되는
    지연 보상 회로.
  8. 제7항에 있어서, 상기 데이터 클록 회로는 상기 데이터 클록을 기준 클록 및 피드백 클록으로부터의 마스터 클록으로서 생성하도록 구성된 지연 고정 루프를 포함하고, 상기 버스상의 데이터 신호는 상기 데이터 클록의 지연된 버전을 포함하고, 상기 피드백 클록은 상기 버스상의 데이터 신호인
    지연 보상 회로.
  9. 제8항에 있어서, 상기 기준 클록은 상기 주변 클록으로부터 도출된 주파수 분주 클록인
    지연 보상 회로.
  10. 제9항에 있어서, 상기 주파수 분주 클록은 상기 주변 클록의 주파수의 3분의 2이고, 상기 지연 고정 루프는 상기 기준 클록과 상기 피드백 클록 간의 차이가 상기 기준 클록의 전체 클록 주기가 될 때까지 상기 데이터 클록의 위상을 조정하도록 구성되는
    지연 보상 회로.
  11. 제7항에 있어서, 상기 데이터 지연 회로는 상기 지연 보상 회로가 교정 모드에 있는지에 의존하여 데이터 또는 데이터 클록을 상기 버스상에 상기 데이터 신호로 선택적으로 전송하도록 추가로 구성되는
    지연 보상 회로.
  12. 제7항에 있어서, 상기 데이터 클록 회로는 상기 버스상의 데이터 신호로부터의 피드백 클록에 따라 상기 주변 클록에 대해 상기 데이터 클록의 위상을 조정하도록 구성된 지연 고정 루프를 포함하고, 상기 데이터 클록의 위상은 상기 주변 클록과 상이한 주파수를 갖는 기준 클록에 대해 상기 피드백 클록의 미리 결정된 지연을 형성하도록 조정되는
    지연 보상 회로.
  13. 제7항에 있어서, 상기 데이터 클록 회로는 샘플링 모듈 및 판정 모듈을 포함하고, 상기 샘플링 모듈은 상기 주변 클록으로부터 위상 시프트된 데이터 클록들에 의해 클로킹된 샘플링 플립-플롭들을 포함하고, 상기 플립-플롭들은 상기 데이터 신호를 샘플링하도록 구성되고, 상기 판정 모듈은 상기 데이터 클록들로부터 상기 데이터의 전송을 트리거하기 위한 상기 데이터 클록을 선택하도록 구성되고, 상기 데이터 클록은 상기 샘플링 플립-플롭들의 출력들에 기초하여 선택되는
    지연 보상 회로.
  14. 방법으로서,
    호스트로부터 버스를 통해 수신된 주변 클록으로부터 데이터 클록을 생성하는 단계;
    상기 데이터 클록의 에지에 응답하여 샘플 데이터를 상기 버스상에 데이터 신호로 제공하는 단계 - 상기 데이터 클록의 에지는 상기 주변 클록의 초기 에지에 의해 트리거됨 -;
    상기 주변 클록의 초기 에지와 상기 샘플 데이터가 상기 버스상에서 검출되는 시간 사이의 시간차에 기초하여 상기 주변 클록에 대하여 상기 데이터 클록의 지연을 선택하는 단계;
    상기 주변 클록에 대하여 상기 선택된 지연을 갖는 지연된 데이터 클록을 생성하는 단계;
    상기 버스를 통해 상기 호스트로부터 요청된 데이터에 대한 요청을 수신하는 단계; 및
    상기 지연된 데이터 클록의 에지에 응답하여 상기 요청된 데이터를 상기 버스상에 제공하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서, 상기 지연을 선택하는 단계는, 상기 버스상의 상기 데이터 신호를 피드백 클록으로서 갖고 또한 상기 주변 클록으로부터 도출된 클록을 기준 클록으로서 갖는 지연 고정 루프에 의해 마스터 클록을 생성하는 단계를 포함하는
    방법.
  16. 제15항에 있어서, 상기 지연된 데이터 클록을 생성하는 단계는 상기 지연된 데이터 클록을 상기 지연 고정 루프의 슬레이브 클록으로서 생성하는 단계를 포함하고, 상기 지연 고정 루프는 상기 주변 클록을 슬레이브 입력으로서 갖는
    방법.
  17. 제14항에 있어서, 상기 지연을 선택하는 단계는 상기 주변 클록에 대해 위상 시프트된 데이터 클록들로 클로킹된 샘플링 플립-플롭들의 출력들로부터 상기 샘플 데이터가 상기 버스상에서 검출되는 시간을 결정하는 단계를 포함하는
    방법.
  18. 제14항에 있어서, 상기 지연을 선택하는 단계는, 상기 주변 클록의 초기 에지와 상기 샘플 데이터가 상기 버스상에서 검출되는 시간 사이의 시간차가 상기 주변 클록의 하나의 전체 기간의 75 % 및 125 % 내에 든다면 미리 결정된 위상 시프트를 상기 데이터 클록의 위상에 추가하는 단계를 포함하는
    방법.
  19. 제14항에 있어서, 상기 지연을 선택하는 단계는 복수의 데이터 클록으로부터 상기 지연된 데이터 클록을 선택하는 단계를 포함하고, 상기 데이터 클록들 각각은 상기 복수의 데이터 클록 중 다른 데이터 클록들과는 상이한 미리 결정된 위상 시프트를 갖는
    방법.
  20. 제19항에 있어서, 상기 복수의 데이터 클록으로부터 상기 지연된 데이터 클록을 선택하는 단계는 상기 요청된 데이터를 출력하기 위해 복수의 데이터 플립-플롭으로부터 한 데이터 플립-플롭을 선택하는 단계를 포함하고, 상기 데이터 플립-플롭들 각각은 상기 데이터 클록들 중 대응하는 데이터 클록에 의해 클로킹되는
    방법.
KR1020177026012A 2015-04-15 2016-04-06 지연 보상 KR101872177B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/687,586 2015-04-15
US14/687,586 US9660656B2 (en) 2015-04-15 2015-04-15 Delay compensation
PCT/US2016/026096 WO2016168012A1 (en) 2015-04-15 2016-04-06 Delay compensation

Publications (2)

Publication Number Publication Date
KR20170137063A KR20170137063A (ko) 2017-12-12
KR101872177B1 true KR101872177B1 (ko) 2018-06-27

Family

ID=55754465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177026012A KR101872177B1 (ko) 2015-04-15 2016-04-06 지연 보상

Country Status (6)

Country Link
US (1) US9660656B2 (ko)
JP (1) JP6322774B2 (ko)
KR (1) KR101872177B1 (ko)
CN (1) CN107430568B (ko)
DE (1) DE112016000777B4 (ko)
WO (1) WO2016168012A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811112B2 (en) * 2016-01-18 2017-11-07 Texas Instruments Incorporated Adaptive clock delay compensation
US10445270B2 (en) 2017-06-09 2019-10-15 Qualcomm Incorporated Configuring optimal bus turnaround cycles for master-driven serial buses
CN107329923B (zh) * 2017-06-26 2020-12-22 南京鼎越信息科技有限公司 一种调整总线时序的方法、存储介质和终端
US10204668B1 (en) 2017-10-09 2019-02-12 Sandisk Technologies Llc On die delay range calibration
US10908636B2 (en) 2017-10-31 2021-02-02 Sandisk Technologies Llc Skew correction for source synchronous systems
TWI640901B (zh) * 2018-02-21 2018-11-11 友達光電股份有限公司 資料擷取方法及裝置
US11157635B2 (en) * 2018-04-08 2021-10-26 Qualcomm Incorporated Secure interface disablement
US10713185B2 (en) * 2018-07-16 2020-07-14 Logitech Europe S.A. Wireless communication with peripheral device
US10593383B1 (en) 2018-09-04 2020-03-17 Micron Technology, Inc. System-level timing budget improvements
US10642512B2 (en) 2018-09-04 2020-05-05 Micron Technology, Inc. Low-speed memory operation
US11031939B1 (en) * 2020-03-19 2021-06-08 Mellanox Technologies, Ltd. Phase detector command propagation between lanes in MCM USR serdes
KR20210153407A (ko) * 2020-06-10 2021-12-17 에스케이하이닉스 주식회사 에러정정동작 및 에러체크동작을 수행하기 위한 전자장치
US11520940B2 (en) * 2020-06-21 2022-12-06 Nuvoton Technology Corporation Secured communication by monitoring bus transactions using selectively delayed clock signal
CN111949589B (zh) 2020-07-22 2022-05-24 浪潮(北京)电子信息产业有限公司 一种时钟控制方法、装置、设备及存储介质
US11360143B2 (en) * 2020-10-29 2022-06-14 Stmicroelectronics International N.V. High speed debug-delay compensation in external tool
CN112698683A (zh) * 2020-12-28 2021-04-23 深圳市合信自动化技术有限公司 一种可配置总线解决传输延时数据出错的方法、装置及plc

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872959A (en) 1996-09-10 1999-02-16 Lsi Logic Corporation Method and apparatus for parallel high speed data transfer
US7463075B2 (en) 2006-06-23 2008-12-09 Texas Instruments Incorporated Method and delay circuit with accurately controlled duty cycle
EP2223227A2 (en) 2007-10-22 2010-09-01 Rambus Inc. Low-power source-synchronous signaling
US20100309744A1 (en) 2009-06-04 2010-12-09 Mun-Phil Park Semiconductor memory device for guaranteeing reliability of data transmission and semiconductor system including the same

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948083A (en) 1997-09-30 1999-09-07 S3 Incorporated System and method for self-adjusting data strobe
CN1901439B (zh) * 2001-02-24 2011-04-20 国际商业机器公司 用于高速信令的数据捕获技术
US6720810B1 (en) 2002-06-14 2004-04-13 Xilinx, Inc. Dual-edge-correcting clock synchronization circuit
US6995590B1 (en) 2003-09-22 2006-02-07 Altera Corporation Hybrid phase/delay locked loop circuits and methods
US7464284B2 (en) * 2005-03-22 2008-12-09 Hewlett-Packard Development Company, L.P. Systems and methods for driving data over a bus where the systems employ a bus clock that is derived from a system clock and a data clock designed to lead the bus clock
JP2007164697A (ja) * 2005-12-16 2007-06-28 Shinko Electric Ind Co Ltd 半導体集積回路およびメモリシステム並びにクロック信号設定方法
US20070288716A1 (en) 2006-06-09 2007-12-13 Infineon Technologies Ag Memory system with a retiming circuit and a method of exchanging data and timing signals between a memory controller and a memory device
JP2008141013A (ja) * 2006-12-01 2008-06-19 Matsushita Electric Ind Co Ltd 半導体装置
TWI379569B (en) * 2007-03-08 2012-12-11 Sandisk Il Ltd Bias and random delay cancellation
CN102667732A (zh) * 2009-12-25 2012-09-12 富士通株式会社 信号接收电路、存储器控制器、处理器、计算机以及相位控制方法
US8106692B2 (en) 2010-03-03 2012-01-31 Elite Semiconductor Memory Technology Inc. Method for tracking delay locked loop clock
US8248124B2 (en) * 2010-06-03 2012-08-21 Intel Corporation Methods and apparatuses for delay-locked loops and phase-locked loops
US8187936B2 (en) 2010-06-30 2012-05-29 SanDisk Technologies, Inc. Ultrahigh density vertical NAND memory device and method of making thereof
KR101791456B1 (ko) 2010-10-11 2017-11-21 삼성전자주식회사 라이트 트레이닝 방법 및 이를 수행하는 반도체 장치
US8782460B2 (en) * 2011-06-21 2014-07-15 Via Technologies, Inc. Apparatus and method for delayed synchronous data reception
US8928383B2 (en) 2013-03-15 2015-01-06 Analog Devices, Inc. Integrated delayed clock for high speed isolated SPI communication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872959A (en) 1996-09-10 1999-02-16 Lsi Logic Corporation Method and apparatus for parallel high speed data transfer
US7463075B2 (en) 2006-06-23 2008-12-09 Texas Instruments Incorporated Method and delay circuit with accurately controlled duty cycle
EP2223227A2 (en) 2007-10-22 2010-09-01 Rambus Inc. Low-power source-synchronous signaling
US20100309744A1 (en) 2009-06-04 2010-12-09 Mun-Phil Park Semiconductor memory device for guaranteeing reliability of data transmission and semiconductor system including the same

Also Published As

Publication number Publication date
CN107430568B (zh) 2020-07-07
JP2018511872A (ja) 2018-04-26
CN107430568A (zh) 2017-12-01
US20160308540A1 (en) 2016-10-20
US9660656B2 (en) 2017-05-23
WO2016168012A1 (en) 2016-10-20
JP6322774B2 (ja) 2018-05-09
KR20170137063A (ko) 2017-12-12
DE112016000777T5 (de) 2017-11-30
DE112016000777B4 (de) 2023-05-17
WO2016168012A8 (en) 2017-07-13

Similar Documents

Publication Publication Date Title
KR101872177B1 (ko) 지연 보상
US9530491B1 (en) System and method for direct write to MLC memory
US9927986B2 (en) Data storage device with temperature sensor and temperature calibration circuitry and method of operating same
CN106663073B (zh) 用于适应性突发模式的储存设备和方法
US10437472B2 (en) Storage system and method for dynamic duty cycle correction
US9741444B2 (en) Proxy wordline stress for read disturb detection
US10635131B2 (en) Interface adjustment processes for a data storage device
US10629260B2 (en) Dynamic management of programming states to improve endurance
US9865360B2 (en) Burn-in memory testing
US9824760B2 (en) Systems and methods of generating shaped random bits
US11620050B2 (en) Soft data compression for non-volatile memory
US20180189211A1 (en) Systems and methods of adjusting an interface bus speed
CN113535612A (zh) 动态存储器控制器及其使用方法
US11437104B2 (en) Storage system and method for a hybrid quad-level cell (QLC) write scheme for reduced random access memory (RAM) footprint
US9558009B1 (en) Expedited find sector to decrease boot time
US11915772B1 (en) Data storage device and method for power on reset and read error handling
US11921653B2 (en) Data storage device and method for lane detection and configuration
US11646067B2 (en) Data storage device and operating method thereof
US20220406364A1 (en) Hetero-Plane Data Storage Structures For Non-Volatile Memory
US20240134537A1 (en) Data Storage Device and Method for Reducing Read Disturbs When Reading Redundantly-Stored Data
US20230385068A1 (en) Data Storage Device and Method for Storage-Class-Memory-Accelerated Boot Partition Optimization
WO2023239508A1 (en) Data storage device and method for host buffer management

Legal Events

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