KR20140035767A - 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법 - Google Patents

입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법 Download PDF

Info

Publication number
KR20140035767A
KR20140035767A KR1020120102469A KR20120102469A KR20140035767A KR 20140035767 A KR20140035767 A KR 20140035767A KR 1020120102469 A KR1020120102469 A KR 1020120102469A KR 20120102469 A KR20120102469 A KR 20120102469A KR 20140035767 A KR20140035767 A KR 20140035767A
Authority
KR
South Korea
Prior art keywords
emmc
data
delay
data signals
clock
Prior art date
Application number
KR1020120102469A
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 KR1020120102469A priority Critical patent/KR20140035767A/ko
Priority to US14/025,948 priority patent/US9772651B2/en
Publication of KR20140035767A publication Critical patent/KR20140035767A/ko

Links

Images

Classifications

    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2272Latency related aspects

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)

Abstract

입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드는 클락 조절 코드에 기초하여, 클락 채널을 통해 입력된 클락 신호의 지연을 조절하는 클락 지연 회로와, 데이터 조절 코드들 각각에 기초하여, 각각이 데이터 채널들을 통해 입력된 데이터 신호들 각각의 지연을 조절하는 데이터 지연 회로들을 포함한다.

Description

입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법{EMBEDDED MULTIMEDIA CARD(eMMC) FOR PERFORMING INPUT/OUTPUT TUNING PROCESS, METHOD THEREOF, AND METHODS FOR OPERATING HOST CONTROLLING THE eMMC}
본 발명의 개념에 따른 실시 예는 임베디드 멀티미디어 카드((embedded Multimedia Card(eMMC))에 관한 것으로, 특히 데이터 라이트 동작 동안 최적의 샘플링 포인트(optimal sampling point)를 찾기 위해 새롭게 정의된 입출력 튜닝 과정을 수행할 수 있는 eMMC, 상기 eMMC를 제어하는 호스트, 및 상기 eMMC의 동작 방법에 관한 것이다.
멀티미디어 카드(MultiMediaCard(MMC)는 플래시(flash) 메모리의 메모리 카드 표준이다.
eMMC는 JEDEC에서 표준으로 정한 내장형 MMC에 대한 표준이다. eMMC 통신은 10개의 신호 버스(10-signal bus)에 기반한다. eMMC은 스마트폰과 같은 이동 통신 장치에 삽입되어 사용될 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 HS200 모드 또는 DDR400 모드로 스위칭된 후 데이터 라이트 동작이 수행되지 전에 최적의 샘플링 포인트를 찾기 위해 새롭게 정의된 입출력 튜닝 과정을 수행할 수 있는 eMMC, 상기 eMMC를 제어하는 호스트, 및 상기 eMMC의 동작 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)는 클락 조절 코드에 기초하여, 클락 채널을 통해 입력된 클락 신호의 지연을 조절하는 클락 지연 회로와, 데이터 조절 코드들 각각에 기초하여, 각각이 데이터 채널들을 통해 입력된 데이터 신호들 각각의 지연을 조절하는 데이터 지연 회로들을 포함한다.
실시 예에 따라, 상기 eMMC는 상기 클락 조절 코드와 상기 데이터 조절 코드들을 결정하는 CPU(central processing unit)와, 상기 CPU에 의해 결정된 상기 클락 조절 코드와 상기 데이터 조절 코드들을 저장하는 프로그램가능한 메모리들을 더 포함한다.
다른 실시 예에 따라, 상기 eMMC는 각각이 상기 클락 지연 회로의 출력 신호에 기초하여 상기 데이터 지연 회로들 각각의 출력 신호를 래치하는 래치 회로들과, 기준 데이터 신호들과 상기 래치 회로들의 출력 데이터 신호들을 비교하고, 비교의 결과에 기초하여 상기 클락 조절 코드와 상기 데이터 조절 코드들을 생성하는 코드 생성 회로를 더 포함한다.
상기 코드 생성 회로는 IO 튜닝 과정 동안에만 인에이블된다.
상기 코드 생성 회로는 상기 출력 데이터 신호들과 상기 기준 데이터 신호들을 저장하는 메모리와, 상기 메모리로부터 출력된 상기 출력 데이터 신호들과 상기 기준 데이터 신호들을 비교하고 비교 신호들을 출력하는 데이터 비교 회로와, 상기 비교 신호들에 기초하여 상기 클락 조절 코드와 상기 데이터 조절 코드들을 생성하는 CPU와, 상기 CPU로부터 출력된 상기 클락 조절 코드와 상기 데이터 조절 코드들을 저장하는 프로그램가능한 메모리들을 포함한다.
상기 eMMC가 초기화된 때, 상기 eMMC가 HS200 모드로 전환된 후, 또는 상기 eMMC가 DDR400 모드로 전환된 후, 상기 메모리들에 저장된 상기 클락 조절 코드와 상기 데이터 조절 코드들은 초기화된다.
상기 클락 지연 회로는 각각이 상기 클락 신호에 기초하여 서로 다른 지연을 갖는 지연 클락 신호를 생성하는 제1지연 회로들과, 상기 클락 조절 코드에 기초하여 상기 제1지연 회로들의 출력 신호들 중에서 어느 하나를 출력하는 제1선택 회로를 포함한다.
상기 데이터 지연 회로들 각각은 각각이 상기 데이터 신호들 중에서 대응되는 데이터 신호에 기초하여 서로 다른 지연을 갖는 지연 데이터 신호를 생성하는 제2지연 회로들과, 상기 데이터 조절 코드들 중에서 대응되는 데이터 조절 코드에 기초하여 상기 제2지연 회로들의 출력 신호들 중에서 어느 하나를 출력하는 제2선택 회로를 포함한다.
본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(eMMC)의 동작을 제어하는 호스트의 동작 방법은 IO 튜닝 명령을 상기 eMMC로 전송하는 단계와, 상기 IO 튜닝 명령에 대한 응답을 상기 eMMC로부터 수신하는 단계와, 상기 응답에 기초하여, 클락 신호에 동기된 튜닝 블록 데이터 신호들을 상기 eMMC로 전송하는 단계를 포함한다.
상기 호스트의 동작 방법은, CRC 패스 응답이 상기 eMMC로부터 수신될 때까지, CRC 페일 응답이 상기 eMMC로부터 수신될 때마다 상기 클락 신호에 동기된 상기 튜닝 블록 데이터 신호들을 상기 eMMC로 전송하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(eMMC)의 동작 방법은 IO 튜닝 동작 동안, 기준 데이터 신호들과 호스트로부터 수신된 튜닝 블록 데이터 신호들의 비교 결과를 이용하여 클락 패스의 지연과 데이터 패스들 각각의 지연을 조절하는 단계와, 데이터 라이트 동작 동안, 지연 조절된 상기 클락 패스를 통해 출력된 클락 신호에 응답하여, 지연 조절된 상기 데이터 패스들 각각을 통해 출력된 데이터 신호들 각각을 래치하는 단계를 포함한다.
상기 지연을 조절하는 단계는 HS200 모드로 스위칭된 후 또는 DDR400 모드로 스위칭된 후에 수행된다.
본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(eMMC)의 동작 방법은 호스트로부터 수신된 IO 튜닝 명령에 기초하여 응답을 상기 호스트로 전송하는 단계와, 상기 호스트로부터 클락 신호와 튜닝 블록 데이터 신호들을 수신하는 단계와, 상기 클락 신호에 기초하여 상기 튜닝 블록 데이터 신호들을 복원하는 단계와, 기준 데이터 신호들과 복원된 튜닝 블록 데이터 신호들을 비교하는 단계와, 상기 비교의 결과에 기초하여, IO 튜닝 과정의 완료 여부를 지시하는 CRC 응답을 상기 호스트로 전송하는 단계를 포함한다.
상기 eMMC의 동작 방법은 조절 코드들을 결정하는 단계와, 상기 조절 코드들 각각을 이용하여 상기 클락 신호와 상기 튜닝 블록 데이터 신호들 각각의 지연을 조절하는 단계와, 지연 조절된 클락 신호에 응답하여 지연 조절된 튜닝 블록 데이터 신호들 각각을 복원하는 단계와, 상기 CRC 응답을 생성하기 위해, 상기 기준 데이터 신호들과 상기 복원된 튜닝 블록 데이터 신호들을 비교하는 단계를 더 포함한다.
상기 eMMC가 초기화된 때, 상기 eMMC가 HS200 모드로 전환된 후, 또는 상기 eMMC가 DDR400 모드로 전환된 후, 상기 조절 코드들 각각은 초기값으로 초기화된다.
실시 예에 따라, 상기 조절 코드들은 상기 기준 데이터 신호들과 상기 복원된 튜닝 블록 데이터 신호들의 비교 결과에 기초하여 결정된다.
다른 실시 예에 따라, 상기 조절 코드들은 상기 기준 데이터 신호들과 상기 지연 조절된 튜닝 블록 데이터 신호들의 비교 결과에 기초하여 결정된다.
본 발명의 실시 예에 따른 eMMC 장치는 데이터 라이트 동작이 수행되기 전에 상기 eMMC 장치 내부에서 IO 튜닝 과정을 수행할 수 있는 효과가 있다.
본 발명의 실시 예에 따른 eMMC 장치는 상기 IO 튜닝 과정을 통하여 클락 패스의 지연 및/또는 데이터 패스들 각각의 지연을 조절하여 클락 신호와 데이터 신호들 사이의 스큐를 줄일 수 있는 효과가 있다.
따라서, 상기 eMMC 장치는 데이터 유효 윈도우를 확보하고 최대 전송 속도로 라이트 데이터 신호들을 처리할 수 있으므로, 전체 데이터 신호들의 처리량을 증가시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따라 데이터 라이트 동작 동안 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)를 포함하는 eMMC 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 eMMC의 일부를 나타낸다.
도 3은 도 2에 도시된 지연 회로들의 회로도들을 나타낸다.
도 4부터 도 6은 도 1에 도시된 eMMC에서 수행되는 입출력 튜닝 과정을 설명하기 위한 실시 예들에 따른 타이밍 도들을 나타낸다.
도 7은 도 1에 도시된 eMMC 시스템의 입출력 튜닝 과정을 나타내는 플로우차트이다.
도 8은 도 1에 도시된 eMMC 시스템에서 데이터 유효 윈도우를 찾는 시퀀스를 나타낸다.
도 9는 본 발명의 실시 예에 따른 입출력 튜닝 명령 동작을 나타낸다.
도 10은 DDR400 모드를 수행할 수 있는 eMMC에 대한 장치 타입 필드의 정의를 나타낸다.
도 11은 DDR400 모드를 수행할 수 있는 eMMC에 대한 HS_TIMING과 HS_TIMING 값들을 나타낸다.
도 12는 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도를 나타낸다.
도 13은 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 명세서는 JEDEC(http://www.jedec.org)에 의해 2011년 6월에 공개된 Embedded Multimedia Card(eMMC), Electrical Standard 4.51, 즉 JESD84-B451을 레퍼런스(reference)로 포함한다.
따라서, 본 명세서의 용어들과 정의들(terms and definitions)이 JESD84-B451의 용어들과 정의들과 다르게 정의되지 않는 한, 본 명세서의 용어들과 정의들은 JESD84-B451의 용어들과 정의들과 동일하다.
본 명세서에서 신호 또는 전압을 전송하는 채널(channel)은 호스트 패드, eMMC 패드, 버스, 라인, 드라이버(실시 예에 따라, 차동 증폭기를 포함), 수신기(실시 예에 따라, 차동 증폭기를 포함), 또는 이들 중에서 적어도 두 개의 조합을 의미할 수 있다.
본 명세서에서는 특별한 의도를 가지고 명시적으로 구분하지 않는 한, 설명의 편의를 위해 기능 회로, 예컨대 버스(bus), 와이어(wire), 패드(또는 핀(pin)), 드라이버(driver), 수신기(receiver), 및/또는 차동 증폭기 등의 전송 지연 (propagation delay)은 고려하지 않는다.
본 명세서에서는 도 10에 도시된 바와 같이 DDR 400 모드를 새롭게 정의하고, 새롭게 정의된 DDR 4000 모드를 지원할 수 있는 호스트 또는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC))의 동작을 상세히 설명한다.
여기서, DDR 400 모드는 호스트 또는 장치의 입출력 동작 전압(VCCQ)이 1.2V 또는 1.8V일 때, 200MHz DDR(dual date rate)로 데이터를 처리할 수 있는 동작 모드를 의미한다.
도 1은 본 발명의 실시 예에 따라 데이터 라이트 동작 동안 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)를 포함하는 eMMC 시스템의 블록도를 나타낸다.
도 1을 참조하면, eMMC 시스템(100)은 호스트(200)와 장치(300), 예컨대 eMMC 장치(또는 eMMC; 300)를 포함한다.
호스트(200)는 eMMC 장치(300)의 데이터 처리 동작, 예컨대 데이터 리드 동작 또는 데이터 라이트 동작 등을 제어할 수 있다. 상기 데이터 처리 동작은 SDR (single data rate) 또는 DDR로 수행될 수 있다.
호스트(200)는 CPU(central processing unit), 프로세서, 마이크로프로세서 (microprocessor) 또는 애플리케이션 프로세서(application processor) 등과 같이 데이터를 처리할 수 있는 데이터 처리 장치 그 자체를 의미할 수 있다.
또한, 상기 데이터 처리 장치는 전자 장치에 내장(embedded) 또는 구현될 수 있다.
상기 전자 장치는 PC(personal computer), 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트폰(smartphone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), 오디오 장치(audio device), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
eMMC 장치(300)는 호스트(200)와 통신을 위해 상기 전자 장치와 접속 수단들 (예컨대, 패드들(pads), 핀들(pins), 버스(bus), 또는 통신 라인들)을 통하여 전기적으로 접속될 수 있다.
호스트(200)는 클락 생성기(210), 처리 회로(211), 및 호스트 컨트롤러 (230)를 포함할 수 있다.
클락 생성기(210)는 호스트(200)와 eMMC 장치(300)에서 사용될 클락 신호 (CLK)를 생성한다. 예컨대, 클락 생성기(210)는 위상 동기 루프(phase locked loop(PLL))로 구현될 수 있다.
처리 회로(211)는 명령(CMD)의 생성, 응답(RES)의 해석, Extended(EXT)_CSD 레지스터(371)에 저장된 데이터의 처리, 및/또는 입출력 데이터의 처리 동작을 제어할 수 있는 하드웨어 또는 소프트웨어(또는 펌웨어)가 내장된 하드웨어를 의미할 수 있다. 처리 회로(211)는 각 구성 요소(component; 210과 230)의 동작을 제어할 수 있다.
처리 회로(211)는 본 발명에서 새롭게 정의된 입출력 튜닝(input/output(IO) tuning) 명령(CMD)을 eMMC 장치(300)로 전송하고, eMMC 장치(300)로부터 전송된 응답(RES), 즉 IO 튜닝 명령에 대한 응답에 기초하여 튜닝 블록 데이터 신호들, 예컨대 튜닝 블록 패턴을 eMMC 장치(300)로 전송할 수 있다.
eMMC 장치(300)는 호스트(200)로부터 전송된 IO 튜닝 명령(CMD)과 튜닝 블록 데이터 신호들에 기초하여 데이터 신호들의 최적의 샘플링 포인트를 찾는 IO 튜닝 과정(IO tuning process)을 수행할 수 있다.
즉, 상기 IO 튜닝 과정은 호스트(200)에 의해서 수행되는 것이 아니라 eMMC 장치(300)에 의해서 수행된다. 상기 IO 튜닝 과정은 HS200 모드로 스위칭된 후 또는 DDR400 모드로 스위칭된 후 수행될 수 있다. 상기 IO 튜닝 과정이 종료된 후, 데이터 라이트 동작이 수행될 수 있다.
호스트 컨트롤러(230)는 데이터 출력 회로(240)와 호스트 입출력 블록(250)을 포함한다.
데이터 라이트 동작 동안, 클락 신호(CLK)에 응답하여 데이터 출력 회로 (240)는 eMMC 장치(300)의 플래시 메모리(370)에 라이트될 데이터 신호들 (DAT[7:0])을 호스트 입출력 블록(250)으로 전송한다.
데이터 출력 회로(240)는 제1라이트 래치들(241-O)과 제2라이트 래치들(241-E)을 포함한다.
클락 신호(CLK)의 상승 에지에 응답하여, 제1라이트 래치들(241-O)은 eMMC 장치(300)에 라이트될 데이터 신호들 중에서 홀수 번째 데이터 신호들을 래치한다.
클락 신호(CLK)의 하강 에지에 응답하여, 제2라이트 래치들(241-E)은 상기 데이터 신호들 중에서 짝수 번째 데이터 신호들을 래치한다.
호스트(200)는 클락 버스(101)를 통하여 클락 신호(CLK)를 eMMC 장치(300)로 전송한다.
명령 버스(102)를 통하여, 호스트(200)는 명령(CMD)을 eMMC 장치(300)로 전송하고 eMMC 장치(300)로부터 전송된 응답(RES)을 수신한다.
데이터 버스(103)를 통하여, 호스트(200)는 데이터 신호들(DAT[7:0])을 eMMC 장치(300)로 전송하고 eMMC 장치(300)로부터 전송된 리드 데이터 신호들(DAT[7:0])을 수신한다. 도 4부터 도 6에 도시된 바와 같이 데이터 신호들(DAT[7:0])은 클락 신호(CLK)에 동기되어 eMMC 장치(300)로 전송된다.
호스트(200)는 리셋 라인을 통하여 하드웨어 리셋 신호(RST_n)를 eMMC 장치 (300)로 전송한다.
호스트(200)는 각 입출력 블록(250과 320)에서 사용될 입출력 동작 전압들 (VCCQ와 VSSQ)을 생성하고, 입출력 동작 전압들(VCCQ와 VSSQ)을 파워 라인들을 통하여 eMMC 장치(300)로 전송한다.
호스트(200)는 플래시 메모리(370)로 공급될 코어 동작 전압들(VCC와 VSS)을 생성하고, 코어 동작 전압들(VCC와 VSS)을 코어 파워 라인들을 통하여 eMMC 장치 (300)로 전송한다. 이때, VSSQ와 VSS는 접지 전압이다.
eMMC 장치(300)는 장치 컨트롤러, 예컨대 eMMC 컨트롤러(310)와 플래시 메모리(370)를 포함한다.
eMMC 컨트롤러(310)는 호스트(200)와 플래시 메모리(370) 사이에서 데이터 통신을 제어한다.
eMMC 컨트롤러(310)는 eMMC 입출력 블록(320), eMMC 호스트 인터페이스 (330), CPU(340), 데이터 비교 회로(345), 메모리(350), 및 플래시 인터페이스 (360)를 포함한다.
eMMC 호스트 인터페이스(330)는 eMMC 입출력 블록(320)을 통하여 명령(CMD)을 수신하고, 수신된 명령(CMD)을 해석하고, 해석의 결과에 따라 응답(RES)을 생성하고, 생성된 응답(RES)을 eMMC 입출력 블록(320)으로 전송한다.
IO 튜닝 과정 동안, eMMC 호스트 인터페이스(330)는 eMMC 입출력 블록(320)을 통하여 수신된 튜닝 블록 데이터 신호들을 메모리(350)에 저장할 수 있다.
데이터 라이트 동작 동안, CPU(340)의 제어에 따라 eMMC 호스트 인터페이스 (330)는 eMMC 입출력 블록(320)을 통하여 수신된 데이터 신호들(DAT[7:0])을 클락 신호(CLK)를 이용하여 메모리(350), 예컨대 버퍼(buffer)에 저장한다. 이때, CPU (340)의 제어에 따라 플래시 인터페이스(360)는 메모리(350)에 저장된 데이터 신호들을 리드하고 리드된 데이터 신호들을 플래시 메모리(370)에 라이트한다.
데이터 리드 동작 동안, CPU(340)의 제어에 따라 플래시 인터페이스(360)는 플래시 메모리(370)로부터 출력된 데이터 신호들을 메모리(350)에 저장한다. 이때, CPU(340)의 제어에 따라 eMMC 호스트 인터페이스(330)는 메모리(350)에 저장된 데이터 신호들을 리드하고 리드된 데이터 신호들(DAT[7:0])을 eMMC 입출력 블록(320)으로 전송한다.
CPU(340)는 각 인터페이스(330과 360)의 동작을 제어하고, eMMC 장치(300)의 동작을 전반적으로 제어한다.
IO 튜닝 과정 동안, 데이터 비교 회로(345)는 메모리(350)로부터 출력된 기준 데이터 신호들과 지연 조절된 튜닝 블록 데이터 신호들을 서로 비교하고, 비교의 결과에 대응되는 비교 신호들을 CPU(340)로 전송한다. 이때, CPU(340)는 상기 비교 신호들을 해석하고, 해석의 결과에 기초하여 클락 조절 코드와 데이터 조절 코드들을 생성한다. CPU(340)의 제어에 따라, 데이터 비교 회로(345)는 IO 튜닝 과정 동안에만 인에이블된다.
데이터 리드 동작 동안 또는 데이터 라이트 동작 동안, 메모리(350)는 인터페이스들(330과 360) 사이에서 주거나 받는 데이터 신호들을 일시적으로 저장한다.
그러나, IO 튜닝 과정 동안, 메모리(350)는 플래시 인터페이스(360)를 통해 수신된 기준 데이터 신호들과 eMMC 호스트 인터페이스(330)를 통해 수신된 지연 조절된 튜닝 블록 데이터 신호들을 저장하고, 이들을 데이터 비교 회로(345)로 전송한다. 메모리(350)는 버퍼와 같은 휘발성 메모리로 구현될 수 있다.
플래시 메모리(370)는 데이터 신호들, 예컨대 기준 데이터 신호들을 저장한다. 플래시 메모리(370)가 NAND 플래시 메모리로 구현될 때, 플래시 인터페이스(360)는 NAND 플래시 인터페이스로 구현될 수 있다. 플래시 메모리(370)는 장치 특성들(device properties)과 선택된 모드들을 저장할 수 있는 EXT_CSD 레지스터 (371)를 포함한다.
호스트(200)는 SEND_EXT_CSD 명령(CMD8)을 이슈잉하여(by issuing) EXT_CSD 레지스터(371)에 저장된 데이터를 읽을 수 있다.
도 2는 도 1에 도시된 eMMC의 일부를 나타내고, 도 3은 도 2에 도시된 지연 회로들의 회로도들을 나타낸다.
도 1부터 도 3을 참조하면, eMMC 입출력 블록(320)은 eMMC 패드들(31~33-8)과 수신기들(41~43-8)을 포함한다.
eMMC 호스트 인터페이스(330)는 클락 지연 회로(331-1), 데이터 지연 회로들 (333-1~333-8), 프로그램가능한 메모리들(331-2, 및 335-1~335-8), 및 래치 회로들 (337-1~337-8)을 포함한다.
클락 지연 회로(331-1)는 클락 채널을 통해 입력된 클락 신호(CLK)의 지연을 클락 조절 코드(SELC)에 기초하여 조절하고 지연 조절된 클락 신호(DCLK)를 출력한다. 클락 지연 회로(331-1)는 지연 조절가능한 클락 패스(delay adjustable clock path)로 불릴 수 있다.
데이터 지연 회로들(333-1~333-8) 각각은 데이터 채널들 각각을 통해 입력된 데이터 신호들(DAT[0]~DAT[7]) 각각의 지연을 데이터 조절 코드들(SEL1~SEL8) 각각에 기초하여 조절하고, 지연 조절된 데이터 신호들(DDAT[0]~DDAT[7]) 각각을 출력한다. 데이터 지연 회로들(333-1~333-8) 각각은 지연 조절가능한 데이터 패스로 불릴 수 있다.
각 조절 코드(SELC, 및 SEL1~SEL8)는 1-비트 또는 그 이상의 비트들을 포함한다.
각 프로그램가능한 메모리(331-2, 및 335-1~335-8)는 CPU(340)로부터 출력된 각 조절 코드(SELC, 및 SEL1~SEL8)를 저장할 수 있다. 예컨대, 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)는 SFR(specific function register)로 구현될 수 있다.
eMMC 시스템(100)이 초기화될 때, eMMC 장치(300)가 초기화될 때, eMMC 장치 (300)가 스탠바이 모드(standby mode)로부터 액시트(exit)할 때, eMMC 장치(300)가 HS200 모드로 전환된 후, 또는 eMMC 장치(300)가 DDR400 모드로 전환된 후, 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)는 초기화된다. 즉, eMMC 장치(300)는 동작 모드가 스위칭될 때마다, 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)에 저장된 각 조절 코드(SELC, 및 SEL1~SEL8)를 초기화해야 한다.
래치 회로들(337-1~337-8) 각각은 클락 지연 회로(331-1)에 의해 지연 조절된 클락 신호(DCLK)에 응답하여 데이터 지연 회로들(333-1~333-8) 각각의 출력 신호(DDAT[0]~DDAT[7])를 래치한다.
각 래치 회로(337-1~337-8)은 각 제1래치(1O~8O)와 각 제2래치(1E~8E)를 포함한다.
각 제1래치(1O~8O)는 클락 지연 회로(331-1)의 출력 신호(DCLK)의 상승 에지에 응답하여 데이터 지연 회로들(333-1~333-8) 각각의 출력 신호(DDAT[0]~DDAT[7])를 래치한다.
각 제2래치(1E~8E)는 클락 지연 회로(331-1)의 출력 신호(DCLK)의 하승 에지에 응답하여 데이터 지연 회로들(333-1~333-8) 각각의 출력 신호(DDAT[0]~DDAT[7])를 래치한다.
IO 튜닝 과정 동안, CPU(340)는 데이터 비교 회로(345)로부터 출력된 비교 신호들(INF)에 기초하여 클락 조절 코드(SELC)와 데이터 조절 코드들(SEL1~SEL8)을 생성하고, 생성된 각 조절 코드(SELC, 및 SEL1~SEL8)를 각 프로그램가능한 메모리 (331-2, 및 335-1~335-8)에 프로그램 또는 업데이트한다.
IO 튜닝 과정 동안, 데이터 비교 회로(345)는 메모리(350)로부터 출력된 지연 조절된 튜닝 블록 데이터 신호들(DWDATA)과 기준 데이터 신호들(REFD)을 서로 비교하고, 비교의 결과에 기초하여 비교 신호들(INF)을 생성한다.
비교 신호들(INF)에 기초하여 CPU(340)는 데이터 신호들에 대한 최적의 샘플링 포인트를 찾고, 데이터 유효 윈도우를 확보하기 위해 각 조절 코드(SELC, 및 SEL1~SEL8)를 각 프로그램가능한 메모리 (331-2, 및 335-1~335-8)에 프로그램 또는 업데이트한다.
IO 튜닝 과정 동안, 메모리(350)는 지연 조절된 클락 신호(DCLK)에 응답하여 복원된(restored) 튜닝 블록 데이터 신호들(DWDATA)과 기준 데이터 신호들(REFD)을 저장한다.
코드 생성 회로는 기준 데이터 신호들(REFD)과 래치 회로들(337-1~337-8)의 출력 데이터 신호들(DWDATA)을 서로 비교하고, 비교의 결과에 기초하여 클락 조절 코드(SELC)와 데이터 조절 코드들(SEL1~SEL8)을 생성할 수 있다.
상기 코드 생성 회로는 프로그램가능한 메모리들(331-2, 및 335-1~335-8), CPU(340), 데이터 비교 회로(345), 및 메모리(350)를 포함한다.
도 3에 도시된 바와 같이, 클락 지연 회로(331-1)는 클락 지연 소자들 (DB11~DB1t, t는 자연수), 예컨대 지연 버퍼들과 클락 선택 회로(322-C)를 포함한다.
클락 지연 소자들(DB11~DB1t) 각각은 클락 신호(CLK)에 기초하여 서로 다른 지연을 갖는 지연 클락 신호를 생성한다. 클락 선택 회로(322-C)는 클락 조절 코드 (SELC)에 기초하여 클락 지연 소자들(DB11~DB1t)의 출력 신호들 중에서 어느 하나를 지연 조절된 클락 신호(DCLK)로서 출력할 수 있다.
제1데이터 지연 회로(333-1)는 제1지연 소자들(DB21~DB2t), 예컨대 지연 버퍼들과 제1데이터 선택 회로(322-1)를 포함한다.
제1지연 소자들(DB21~DB2t) 각각은 제1데이터 신호(DAT[0])에 기초하여 서로 다른 지연을 갖는 제1지연 데이터 신호를 생성한다. 제1데이터 선택 회로(322-1)는 제1데이터 조절 코드(SEL1)에 기초하여 제1지연 소자들(DB21~DB2t)의 출력 신호들 중에서 어느 하나를 지연 조절된 제1데이터 신호(DDAT[0])로서 출력할 수 있다.
제2데이터 지연 회로(333-2)는 제2지연 소자들(DB31~DB3t), 예컨대 지연 버퍼들과 제2데이터 선택 회로(322-2)를 포함한다.
제2지연 소자들(DB31~DB3t) 각각은 제2데이터 신호(DAT[1])에 기초하여 서로 다른 지연을 갖는 제2지연 데이터 신호를 생성한다. 제2데이터 선택 회로(322-2)는 제2데이터 조절 코드(SEL2)에 기초하여 제2지연 소자들(DB31~DB3t)의 출력 신호들 중에서 어느 하나를 지연 조절된 제2데이터 신호(DDAT[1])로서 출력할 수 있다.
마찬가지로, 제8데이터 지연 회로(333-8)는 제8지연 소자들(DB91~DB9t), 예컨대 지연 버퍼들과 제8데이터 선택 회로(322-8)를 포함한다.
제8지연 소자들(DB91~DB9t) 각각은 제8데이터 신호(DAT[7])에 기초하여 서로 다른 지연을 갖는 제8지연 데이터 신호를 생성한다. 제8데이터 선택 회로(322-8)는 제8데이터 조절 코드(SEL8)에 기초하여 제8지연 소자들(DB91~DB9t)의 출력 신호들 중에서 어느 하나를 지연 조절된 제8데이터 신호(DDAT[7])로서 출력할 수 있다.
각 선택 회로(322-C, 및 322-1~322-8)는 멀티플렉서로 구현될 수 있다.
예컨대, 각 선택 회로(322-C, 및 322-1~322-8)가 초기화된 각 조절 코드 (SELC, 및 SEL1~SEL8)에 기초하여 대응되는 지연 소자들 중에서 가운데 지연 소자(예컨대, t=5일 때, DB13, DB23, ..., DB93)의 출력 신호를 디폴트로 출력할 때, 각 지연 회로(331-1, 및 333-1~333-8)는 CPU(340)에 의해 설정된 각 조절 코드 (SELC, 및 SEL1~SEL8)에 기초하여 각 지연 회로(331-1, 및 333-1~333-8)의 지연을 감소시키거나 또는 증가시킬 수 있다.
도 4부터 도 6은 도 1에 도시된 eMMC에서 수행되는 입출력 튜닝 과정을 설명하기 위한 실시 예들에 따른 타이밍 도들을 나타낸다.
우선, CLK_HOST는 호스트(200)로부터 출력된 클락 신호이고, DAT_HOST[7:0]는 호스트(200)로부터 출력된 데이터 신호들이고, CLK_eMMC는 클락 버스(101)를 통해 eMMC 장치(300)로 입력되는 클락 신호 또는 수신기(41)로부터 출력된 클락 신호이고, DAT_eMMC[6:0]는 데이터 버스(103) 중에서 제1라인부터 제7라인을 통해 eMMC 장치(300)로 입력되는 데이터 신호들 또는 수신기들(43-1~43-7)로부터 출력된 데이터 신호들이고, DAT_eMMC[7]은 데이터 버스(103) 중에서 제8라인을 통해 eMMC 장치 (300)로 입력되는 데이터 신호 또는 수신기(43-8)로부터 출력된 데이터 신호를 의미한다.
설명의 편의를 위해, 클락 버스(101)의 RLC 로드(RLC load, 이하, "제1로드"라 한다)는 상기 제8라인의 RLC 로드(이하, "제2로드"라 한다)보다 작고, 상기 제1라인 내지 상기 제7라인 각각의 RLC 로드는 상기 제1로드와 같고, tDL1은 상기 제1로드에 의한 지연이고, 상기 tDL2는 상기 제2로드에 의한 지연이라고 가정한다.
본 발명의 실시 예에 따른 IO 튜닝 과정을 통해 클락 신호(CLK)의 지연을 조절하는 방법은 도 4의 (a)와 도 4의 (b)를 참조하여 설명된다.
도 4의 (a)에 도시된 바와 같이, 제2로드에 의해 DAT_eMMC[7]에 대한 지연이 증가하면, 각 데이터(DAT[0]~DAT[7]) 사이에서 스큐(skew)가 발생한다. 따라서, DAT_eMMC[7]에 대한 셋업 시간(setup time)은 (tDL2-tDL1) 만큼 감소한다.
따라서, 클락 지연 회로(331-1)는 IO 튜닝 과정을 통해 CPU(340)에 의해 설정된 클락 조절 코드(SELC)에 기초하여 클락 신호(CLK)의 지연을 증가시켜 지연 조절된 클락 신호(DCLK)를 출력한다.
예컨대, 클락 지연 회로(331-1)는 CPU(340)에 의해 설정된 클락 조절 코드 (SELC)에 기초하여 클락 신호(CLK)의 지연을 tDL2로 설정하고 지연 조절된 클락 신호(DCLK)를 출력한다.
도 4의 (b)에 도시된 바와 같이, 지연 조절된 클락 신호(DCLK)의 상승 에지는 DAT_eMMC[7]의 중앙에 위치한다. 도 4의 (a)와 (b)를 참조하면, IO 튜닝 과정을 통해 DAT_eMMC[7]에 대한 셋업 시간은 증가하고 DAT_eMMC[7]에 대한 홀드 시간 (hold time)은 감소한다.
예컨대, 증가된 셋업 시간이 (tDL2-tDL1)/2로 설정되고, 감소된 홀드 시간이 (tDL2-tDL1)/2로 설정되면, 데이터 유효 윈도우(data valid window)는 확보될 수 있다.
본 발명의 실시 예에 따른 IO 튜닝 과정을 통해 제8데이터 신호 (DAT_eMMC[7])의 지연을 감소시키는 방법은 도 5의 (a)와 도 5의 (b)를 참조하여 설명된다.
제8데이터 지연 회로(333-8)는 IO 튜닝 과정을 통해 CPU(340)에 의해 설정된제8데이터 조절 코드(SEL8)에 기초하여 제8데이터(DAT_eMMC[7])의 지연을 감소시켜 지연 조절된 제8데이터(DDAT[7])를 출력한다.
예컨대, 제8데이터 지연 회로(333-8)는 CPU(340)에 의해 설정된 제8데이터 조절 코드(SEL8)에 기초하여 제8데이터 신호(DAT_eMMC[7])의 지연을 tDL1로 설정하고 지연 조절된 제8데이터 신호(DDAT[7])를 출력한다.
도 5의 (b)에 도시된 바와 같이, 데이터 신호들(DDAT[7:0])의 지연과 클락 신호(DCLK)의 지연 모두가 tDL1으로 조절되면, 지연 조절된 데이터 신호들 (DDAT[7:0])의 유효 윈도우는 데이터 신호들(DAT_HOST[7:0])의 유효 윈도우와 동일하게 확보된다.
본 발명의 실시 예에 따른 IO 튜닝 과정을 통해 클락 신호(CLK)의 지연과 DAT_eMMC[6:0]의 지연을 조절하는 방법은 도 6의 (a)와 도 6의 (b)를 참조하여 설명된다.
클락 지연 회로(331-1)는 IO 튜닝 과정을 통해 CPU(340)에 의해 설정된 클락 조절 코드(SELC)에 기초하여 클락 신호(CLK)의 지연을 증가시켜 지연 조절된 클락 신호(DCLK)를 출력한다.
예컨대, 클락 지연 회로(331-1)는 CPU(340)에 의해 설정된 클락 조절 코드 (SELC)에 기초하여 클락 신호(CLK)의 지연을 tDL2로 설정하고 지연 조절된 클락 신호(DCLK)를 출력한다.
제8데이터 지연 회로(333-8)를 제외한 나머지 데이터 지연 회로들 각각은 IO 튜닝 과정을 통해 CPU(340)에 의해 설정된 데이터 조절 코드들 각각에 기초하여 데이터 신호들(DAT_eMMC[6:0]) 각각의 지연을 증가시켜 지연 조절된 데이터 신호들 (DDAT[6:0]) 각각을 출력한다.
예컨대, 상기 나머지 데이터 지연 회로들 각각은 CPU(340)에 의해 설정된 데이터 조절 코드들 각각에 기초하여 데이터 신호들(DAT_eMMC[6:0]) 각각의 지연을 tDL2로 설정하고 지연 조절된 데이터 신호들(DDAT[6:0]) 각각을 출력한다.
도 6의 (b)에 도시된 바와 같이, 지연 조절된 데이터 신호들(DDAT[7:0]) 각각의 지연과 클락 신호(DCLK)의 지연 모두가 tDL2으로 조절되면, 지연 조절된 데이터 신호들(DDAT[7:0])의 유효 윈도우는 데이터 신호들(DAT_HOST[7:0])의 유효 윈도우와 동일하게 확보된다.
도 1부터 도 6을 참조하여 상술한 바와 같이, 데이터 라이트 동작이 수행되기 전의 IO 튜닝 과정 동안, eMMC 장치(300)는 데이터 신호들(DAT[7:0] 또는 DAT_eMMC[7;0]) 각각의 지연 및/또는 클락 신호(CLK 또는 CLK_eMMC)의 지연을 조절하여 데이터 신호들(DAT[7:0] 또는 DAT_eMMC[7;0])과 클락 신호(CLK 또는 CLK_eMMC) 사이의 스큐를 감소시킬 수 있다.
따라서, eMMC 장치(300)는 최대 데이터 전송 속도를 높일 수 있고, 전체 데이터 처리량(throughput)을 높일 수 있는 효과가 있다.
도 7은 도 1에 도시된 eMMC 시스템의 입출력 튜닝 과정을 나타내는 플로우차트이다.
IO 튜닝 시퀀스(sequence)는 도 1부터 도 7을 참조하여 설명된다.
호스트(200)는 데이터의 유효 윈도우를 확보하기 위해 또는 eMMC 장치(300)가 초기화되어 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)에 저장된 각 조절 코드(SELC, 및 SEL1~SEL8)가 초기화될 때 IO 튜닝 과정을 수행한다.
상술한 바와 같이, eMMC 시스템(100)이 초기화될 때, eMMC 장치(300)가 초기화될 때, eMMC 장치(300)가 스탠바이 모드로부터 액시트(exit)할 때, eMMC 장치 (300)가 HS200 모드로 전환된 후, eMMC 장치(300)가 DDR400 모드로 전환된 후, 또는 eMMC 장치(300)의 동작 모드가 스위칭된 후, IO 튜닝 과정 또는 IO 튜닝 동작이 시작된다.
호스트(200)는 IO 튜닝 명령을 eMMC 장치(300)로 전송한다(S10).
eMMC 장치(300)는 IO 튜닝 명령에 기초하여 IO 튜닝 과정 또는 IO 튜닝 동작을 수행할 수 있을 때(S20), 정상적인 응답을 호스트(200)로 전송한다.
그러나, eMMC 장치(300)가 IO 튜닝 과정 또는 IO 튜닝 동작을 수행할 수 없을 때, eMMC 장치(300)는 IO 튜닝 과정을 지원하지 못한다는 응답을 호스트(200)로 전송한다(S21).
정상적인 응답을 수신한 호스트(200)는 데이터 버스(103)를 통하여 튜닝 블록 데이터 신호들(또는 튜닝 블록 데이터)을 eMMC 장치(300)로 전송한다(S30).
eMMC 장치(300)는 기준 데이터 신호들(또는 기준 데이터)을 플래시 메모리 (370)로부터 리드하고 리드된 기준 데이터를 메모리(350)에 저장하고, 지연 조절된 튜닝 블록 데이터를 메모리(350)에 저장한다.
그리고, eMMC 장치(300)는 메모리(350)로부터 출력된 지연 조절된 튜닝 블록 데이터와 기준 데이터를 비교하고 비교 신호들(INF)을 생성한다(S40).
eMMC 장치(300)는 비교 신호들(INF)에 기초하여 데이터 유효 윈도우를 찾는다(S50). 상기 데이터 유효 윈도우가 찾아진 경우, 즉, IO 튜닝 과정이 종료될 때, eMMC 장치(300)는 CRC(cyclic redundancy check) 패스(pass) 응답을 호스트(200)로 전송한다(S61).
그러나, 상기 데이터 유효 윈도우가 찾아지지 않은 경우, 즉, IO 튜닝 과정이 종료되지 않을 때, eMMC 장치(300)는 CRC 페일(fail) 응답을 호스트(200)로 전송한다 (S62). 따라서, 호스트(200)는 상기 CRC 페일 응답에 기초하여 데이터 버스(103)를 통하여 튜닝 블록 데이터를 eMMC 장치(300)로 전송한다(S30).
도 8은 도 1에 도시된 eMMC 시스템에서 데이터 유효 윈도우를 찾는 시퀀스를 나타낸다.
도 1부터 도 8을 참조하면, 호스트(200)가 IO 튜닝 과정을 수행하기 위해 IO 튜닝 모드로 진입하면(S110), 호스트(200)는 IO 튜닝 명령(CMD)을 명령 버스(102)를 통하여 eMMC 장치(300)로 전송한다(S112).
eMMC 장치(300)는 IO 튜닝 명령(CMD)에 응답하여 IO 튜닝 과정을 수행할 수 있는 IO 튜닝 모드로 진입한다(S114).
상기 IO 튜닝 모드로 진입한 eMMC 장치(300), 예컨대 CPU(340)는 기준 데이터 리드 명령을 플래시 인터페이스(360)로 전송한다. 플래시 인터페이스(360)는 상기 기준 데이터 리드 명령에 응답하여 플래시 메모리(370)에 저장된 기준 데이터 신호들(REFD)을 리드하고 리드된 기준 데이터 신호들(REFD)을 메모리(350)에 저장한다(S116).
그리고, eMMC 장치(300), 예컨대 CPU(340)는 각 조절 코드(SELC, 및 SEL1~SEL8)를 초기값 또는 디폴트 값으로 설정한다(S116). 실시 예에 따라, 이 과정은 생략될 수 있다.
eMMC 장치(300)는 응답(RES), 예컨대 준비(ready) 응답을 명령 버스(102)를 통하여 호스트(200)로 전송한다(S118).
호스트(200), 예컨대 처리 장치(211)는, 준비 응답(RES)에 응답하여, 클락 신호(CLK)에 동기된 튜닝 블록 데이터 신호들을 eMMC 장치(300)로 전송한다(S120).
튜닝 블록 데이터 신호들(DAT_HOST[7:0])와 클락 신호(CLK_HOST)에 대한 타이밍도는 도 4부터 도 6에 도시된 바와 같다.
클락 지연 회로(331-1)는 클락 신호(CLK)를 수신하고 디폴트 값으로 설정된 클락 조절 코드(SELC)에 기초하여 지연 조절된 클락 신호(DCLK)를 출력한다.
각 데이터 지연 회로(333-1~333-8)는 각 튜닝 블록 데이터 신호 (DAT[0]~DAT[7])를 수신하고, 각 디폴트 값으로 설정된 각 데이터 조절 코드 (SEL1~SEL8)에 기초하여 지연 조절된 각 데이터 신호(DDAT[0]~DDAT[7])를 출력한다.
각 래치 회로(337-1~337-8)는 지연 조절된 클락 신호(DCLK)에 응답하여 각 데이터 지연 회로(333-1~333-8)로부터 출력된 각 데이터 신호(DDAT[0]~DDAT[7])를 래치한다.
래치 회로들(337-1~337-8)로부터 출력된 지연 조절된 데이터 신호들(DWDATA)은 메모리(350)에 저장된다.
데이터 비교 회로(345)는 메모리(350)로부터 출력된 지연 조절된 데이터 신호들(DWDATA)과 기준 신호들(REFD)을 서로 비교하고 비교 신호들(INF)을 CPU(340)로 출력한다(S122).
CPU(340)는 비교 신호들(INF)에 기초하여 각 조절 코드(SELC, 및 SEL1~SEL8)를 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)에 설정한다(S124).
CPU(340)가 비교 신호들(INF)에 기초하여 최적의 샘플링 포인트를 찾지 못한 경우, CPU(340)는 CRC 페일 응답(RES)을 호스트(200)로 출력한다(S126).
호스트(200), 예컨대 처리 장치(211)는, CRC 페일 응답(RES)에 응답하여, 클락 신호(CLK)에 동기된 튜닝 블록 데이터 신호들을 eMMC 장치(300)로 전송한다 (S128).
클락 지연 회로(331-1)는 클락 신호(CLK)를 수신하고 S124에서 설정된 클락 조절 코드(SELC)에 기초하여 지연 조절된 클락 신호(DCLK)를 출력한다.
각 데이터 지연 회로(333-1~333-8)는 각 튜닝 블록 데이터 신호 (DAT[0]~DAT[7])를 수신하고, S124에서 설정된 각 데이터 조절 코드(SEL1~SEL8)에 기초하여 지연 조절된 각 데이터 신호(DDAT[0]~DDAT[7])를 출력한다.
각 래치 회로(337-1~337-8)는 지연 조절된 클락 신호(DCLK)에 응답하여 각 데이터 지연 회로(333-1~333-8)로부터 출력된 각 데이터 신호(DDAT[0]~DDAT[7])를 래치한다.
래치 회로들(337-1~337-8)로부터 출력된 지연 조절된 데이터 신호들(DWDATA)은 메모리(350)에 저장된다.
데이터 비교 회로(345)는 메모리(350)로부터 출력된 지연 조절된 데이터 신호들(DWDATA)과 기준 신호들(REFD)을 서로 비교하고 비교 신호들(INF)을 CPU(340)로 출력한다(S130).
CPU(340)는 비교 신호들(INF)에 기초하여 각 조절 코드(SELC, 및 SEL1~SEL8)를 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)에 설정한다(S132).
CPU(340)가 비교 신호들(INF)에 기초하여 최적의 샘플링 포인트를 찾지 못한 경우, CPU(340)는 CRC 페일 응답(RES)으로서 호스트(200)로 출력한다(S134).
CPU(340)가 비교 신호들(INF)에 기초하여 최적의 샘플링 포인트를 찾을 때까지, 루프들(Loop1~Loopm; m은 자연수)은 반복된다.
CPU(340)가 비교 신호들(INF)에 기초하여 최적의 샘플링 포인트를 찾았을 때, CPU(340)는 비교 신호들(INF)에 기초하여 각 조절 코드(SELC, 및 SEL1~SEL8)를 각 프로그램가능한 메모리(331-2, 및 335-1~335-8)에 설정한다.
그리고, CPU(340)는 CRC 페일 응답(RES)을 호스트(200)로 출력한다.
호스트(200), 예컨대 처리 장치(211)는, CRC 페일 응답(RES)에 응답하여, 클락 신호(CLK)에 동기된 튜닝 블록 데이터 신호들을 마지막으로 eMMC 장치(300)로 전송한다.
클락 지연 회로(331-1)는 클락 신호(CLK)를 수신하고 직전 루프에서 설정된 클락 조절 코드(SELC)에 기초하여 지연 조절된 클락 신호(DCLK)를 출력한다.
각 데이터 지연 회로(333-1~333-8)는 각 튜닝 블록 데이터 신호 (DAT[0]~DAT[7])를 수신하고, 직전 루프에서 설정된 각 데이터 조절 코드 (SEL1~SEL8)에 기초하여 지연 조절된 각 데이터 신호(DDAT[0]~DDAT[7])를 출력한다.
각 래치 회로(337-1~337-8)는 지연 조절된 클락 신호(DCLK)에 응답하여 각 데이터 지연 회로(333-1~333-8)로부터 출력된 각 데이터 신호(DDAT[0]~DDAT[7])를 래치한다.
래치 회로들(337-1~337-8)로부터 출력된 지연 조절된 데이터 신호들(DWDATA)은 메모리(350)에 저장된다.
데이터 비교 회로(345)는 메모리(350)로부터 출력된 지연 조절된 데이터 신호들(DWDATA)과 기준 신호들(REFD)을 서로 비교하고 비교 신호들(INF)을 CPU(340)로 출력한다(S130).
IO 튜닝 과정이 완료되면, CPU(340)는 비교 신호들(INF)에 응답하여 CRC 패스 응답(RES)을 호스트(200)로 전송한다(S150). 호스트(200)는 CRC 패스 응답(RES)에 기초하여 IO 튜닝 모드를 완료한다(S152).
도 9는 본 발명의 실시 예에 따른 입출력 튜닝 명령 동작을 나타낸다.
도 1부터 도 9를 참조하면, 호스트(200)로부터 출력된 IO 튜닝 명령에 응답하여 eMMC 장치(300)는 정상적인 응답을 호스트(200)로 전송한다.
호스트(200)는 상기 응답에 기초하여 튜닝 블록 데이터 신호들을 eMMC 장치(300)로 전송한다.
eMMC 장치(300)는 도 8을 참조하여 설명한 바와 같이 첫 번째 데이터 버스를 통하여 IO 튜닝 과정의 완료 여부를 나타내는 CRC 상태를 호스트(200)로 전송한다.
CRC 상태가 상태 페일(Status Fail)을 나타내는 CRC 페일 응답을 때, 호스트 (200)는 CRC 패스 응답이 eMMC 장치(300)로부터 수신될 때까지, CRC 페일 응답이 eMMC 장치(300)로부터 수신될 때마다 클락 신호(CLK)에 동기된 튜닝 블록 데이터 신호들을 eMMC 장치(300)로 전송한다.
상기 CRC 패스 응답은 상태 패스(Status Pass)를 포함하는 CRC 상태일 수 있다.
도 10은 DDR400 모드를 수행할 수 있는 eMMC에 대한 장치 타입 필드의 정의를 나타낸다.
도 1과 도 10을 참조하면, EXT_CSD 레지스터(371)의 DEVICE_TYPE[196] 필드는 eMMC 장치 (300)의 타입(type)을 정의한다.
JESD84-B451에서는 DEVICE_TYPE[196] 필드의 각 비트(Bit 0~Bit 5)만이 정의되었으나, 본 발명의 실시 예에 따른 DEVICE_TYPE[196] 필드에는 eMMC 장치(300)가 DDR 400 모드를 지원하는지를 나타내는 정보가 저장된다.
예컨대, 비트 6(Bit 6)에는 1.8V(VCCQ=1.8V)에서 200MHz DDR 모드를 지원하는지에 대한 정보가 저장되고, 비트 7(Bit 7)에는 1.2V(VCCQ=1.2V)에서 200 MHz DDR 모드를 지원하는지에 대한 정보가 저장된다.
EXT_CSD 레지스터(371)의 DEVICE_TYPE[196] 필드는 호스트(200)로부터 전송된 SEND_EXT_CSD 명령(CMD8)에 따라 eMMC(300)로부터 호스트(200)로 전송된다. 따라서, 호스트(200)는 EXT_CSD 레지스터(371)의 DEVICE_TYPE[196] 필드에 저장된 각 비트(Bit 6 또는 Bit 7)에 기초하여 eMMC 장치(300)가 DDR 400 모드를 지원하는지를 판단할 수 있다.
도 11은 DDR400 모드를 수행할 수 있는 eMMC에 대한 HS_TIMING과 HS_TIMING 값들을 나타낸다.
EXT_CSD 레지스터(371)의 HS_TIMING[185] 필드는 타이밍 인터페이스(Timing Interface)와 드라이버 스트렝스(Driver Strength)를 선택하기 위해 호스트(200)에 의해 사용된다. 본 발명의 실시 예에 따라 HS_TIMING[185] 필드에는 "0x3"가 추가된다.
만일, 호스트(200)가 HS_TIMING[185] 필드를 "1"로 설정하면, eMMC 장치 (300)는 eMMC 장치(300)의 타이밍을 고속 인터페이스 타이밍(high speed interface timing)으로 변경한다. 만일, 호스트(200)가 HS_TIMING[185] 필드를 "2"로 설정하면, eMMC 장치(300)는 eMMC 장치(300)의 타이밍을 HS 200 인터페이스 타이밍으로 변경한다.
만일, 호스트(200)가 HS_TIMING[185] 필드를 "3"으로 설정하면, eMMC 장치 (300)는 eMMC 장치(300)의 타이밍을 DDR 400 인터페이스 타이밍으로 변경한다. DDR 400 인터페이스 타이밍의 일 실시 예는 도 12부터 도 13에 도시된 바와 같다.
즉, 호스트(200)는 SWITCH 명령(CMD6)을 이슈잉(issuing)하여 EXT_CSD 레지스터(371)의 HS_TIMING[185] 필드에 DDR 400 비트와 드라이버 스트렝스 값을 설정한다.
도 12는 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도를 나타내고, 도 13은 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 1부터 도 12를 참조하면, 각 래치(337-1~337-8)의 관점에서 지연 조절된 클락 신호(DCLK=CLOCK INPUT)와 지연 조절된 각 데이터 신호(DDAT[7:0]=DAT[7:0] INPUT)의 타이밍이 도 12와 도 13에 도시된 조건들을 만족시킬 때, 지연 조절된 클락 신호(DCLK=CLOCK INPUT)와 지연 조절된 각 데이터 신호(DDAT[7:0]=DAT[7:0] INPUT) 사이의 스큐가 감소한다. 이에 따라 데이터 유효 윈도우가 확보되고, 최대 전송 속도가 증가한다.
본 발명의 실시 예에 따른 eMMC 장치는 데이터 라이트 성능을 증가시킬 수 있는 효과가 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; eMMC 시스템
200; 호스트
210; 클락 생성기
211; 처리 회로
230; 호스트 컨트롤러
240; 데이터 출력 회로
250; 호스트 입출력 블록
300; eMMC 장치
320; eMMC 입출력 블록
330; eMMC 호스트 인터페이스
340; CPU
345; 데이터 비교 회로
350; 메모리(버퍼)
360; 플래시 인터페이스
370; 플래시 메모리

Claims (16)

  1. 클락 조절 코드에 기초하여, 클락 채널을 통해 입력된 클락 신호의 지연을 조절하는 클락 지연 회로; 및
    데이터 조절 코드들 각각에 기초하여, 각각이 데이터 채널들을 통해 입력된 데이터 신호들 각각의 지연을 조절하는 데이터 지연 회로들을 포함하는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC).
  2. 제1항에 있어서, 상기 eMMC는,
    상기 클락 조절 코드와 상기 데이터 조절 코드들을 결정하는 CPU(central processing unit); 및
    상기 CPU에 의해 결정된 상기 클락 조절 코드와 상기 데이터 조절 코드들을 저장하는 프로그램가능한 메모리들을 더 포함하는 eMMC.
  3. 제1항에 있어서, 상기 eMMC는,
    각각이 상기 클락 지연 회로의 출력 신호에 기초하여 상기 데이터 지연 회로들 각각의 출력 신호를 래치하는 래치 회로들; 및
    기준 데이터 신호들과 상기 래치 회로들의 출력 데이터 신호들을 비교하고, 비교의 결과에 기초하여 상기 클락 조절 코드와 상기 데이터 조절 코드들을 생성하는 코드 생성 회로를 더 포함하는 eMMC.
  4. 제3항에 있어서,
    상기 코드 생성 회로는 IO 튜닝 과정 동안에만 인에이블되는 eMMC.
  5. 제3항에 있어서, 상기 코드 생성 회로는,
    상기 출력 데이터 신호들과 상기 기준 데이터 신호들을 저장하는 메모리;
    상기 메모리로부터 출력된 상기 출력 데이터 신호들과 상기 기준 데이터 신호들을 비교하고 비교 신호들을 출력하는 데이터 비교 회로;
    상기 비교 신호들에 기초하여 상기 클락 조절 코드와 상기 데이터 조절 코드들을 생성하는 CPU(central processing unit); 및
    상기 CPU로부터 출력된 상기 클락 조절 코드와 상기 데이터 조절 코드들을 저장하는 프로그램가능한 메모리들을 포함하는 eMMC.
  6. 제1항에 있어서,
    상기 eMMC가 초기화된 때, 상기 eMMC가 HS200 모드로 전환된 후, 또는 상기 eMMC가 DDR400 모드로 전환된 후,
    상기 메모리들에 저장된 상기 클락 조절 코드와 상기 데이터 조절 코드들은 초기화되는 eMMC.
  7. 제1항에 있어서,
    상기 클락 지연 회로는,
    각각이 상기 클락 신호에 기초하여 서로 다른 지연을 갖는 지연 클락 신호를 생성하는 제1지연 회로들; 및
    상기 클락 조절 코드에 기초하여 상기 제1지연 회로들의 출력 신호들 중에서 어느 하나를 출력하는 제1선택 회로를 포함하며,
    상기 데이터 지연 회로들 각각은,
    각각이 상기 데이터 신호들 중에서 대응되는 데이터 신호에 기초하여 서로 다른 지연을 갖는 지연 데이터 신호를 생성하는 제2지연 회로들; 및
    상기 데이터 조절 코드들 중에서 대응되는 데이터 조절 코드에 기초하여 상기 제2지연 회로들의 출력 신호들 중에서 어느 하나를 출력하는 제2선택 회로를 포함하는 eMMC.
  8. 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)의 동작을 제어하는 호스트의 동작 방법에 있어서,
    IO 튜닝 명령을 상기 eMMC로 전송하는 단계;
    상기 IO 튜닝 명령에 대한 응답을 상기 eMMC로부터 수신하는 단계; 및
    상기 응답에 기초하여, 클락 신호에 동기된 튜닝 블록 데이터 신호들을 상기 eMMC로 전송하는 단계를 포함하는 호스트의 동작 방법.
  9. 제8항에 있어서, 상기 호스트의 동작 방법은,
    CRC 패스 응답이 상기 eMMC로부터 수신될 때까지, CRC 페일 응답이 상기 eMMC로부터 수신될 때마다 상기 클락 신호에 동기된 상기 튜닝 블록 데이터 신호들을 상기 eMMC로 전송하는 단계를 더 포함하는 호스트의 동작 방법.
  10. IO 튜닝 동작 동안, 기준 데이터 신호들과 호스트로부터 수신된 튜닝 블록 데이터 신호들의 비교 결과를 이용하여 클락 패스의 지연과 데이터 패스들 각각의 지연을 조절하는 단계; 및
    데이터 라이트 동작 동안, 지연 조절된 상기 클락 패스를 통해 출력된 클락 신호에 응답하여, 지연 조절된 상기 데이터 패스들 각각을 통해 출력된 데이터 신호들 각각을 래치하는 단계를 포함하는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)의 동작 방법.
  11. 제10항에 있어서, 상기 지연을 조절하는 단계는,
    HS200 모드로 스위칭된 후 또는 DDR400 모드로 스위칭된 후에 수행되는 eMMC의 동작 방법.
  12. 호스트로부터 수신된 IO 튜닝 명령에 기초하여 응답을 상기 호스트로 전송하는 단계;
    상기 호스트로부터 클락 신호와 튜닝 블록 데이터 신호들을 수신하는 단계;
    상기 클락 신호에 기초하여 상기 튜닝 블록 데이터 신호들을 복원하는 단계;
    기준 데이터 신호들과 복원된 튜닝 블록 데이터 신호들을 비교하는 단계; 및
    상기 비교의 결과에 기초하여, IO 튜닝 과정의 완료 여부를 지시하는 CRC 응답을 상기 호스트로 전송하는 단계를 포함하는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)의 동작 방법.
  13. 제12항에 있어서, 상기 eMMC의 동작 방법은,
    조절 코드들을 결정하는 단계;
    상기 조절 코드들 각각을 이용하여 상기 클락 신호와 상기 튜닝 블록 데이터 신호들 각각의 지연을 조절하는 단계;
    지연 조절된 클락 신호에 응답하여 지연 조절된 튜닝 블록 데이터 신호들 각각을 복원하는 단계; 및
    상기 CRC 응답을 생성하기 위해, 상기 기준 데이터 신호들과 상기 복원된 튜닝 블록 데이터 신호들을 비교하는 단계를 더 포함하는 eMMC의 동작 방법.
  14. 제13항에 있어서,
    상기 eMMC가 초기화된 때, 상기 eMMC가 HS200 모드로 전환된 후, 또는 상기 eMMC가 DDR400 모드로 전환된 후,
    상기 조절 코드들 각각은 초기값으로 초기화되는 eMMC의 동작 방법.
  15. 제13항에 있어서,
    상기 조절 코드들은 상기 기준 데이터 신호들과 상기 복원된 튜닝 블록 데이터 신호들의 비교 결과에 기초하여 결정되는 eMMC의 동작 방법.
  16. 제13항에 있어서,
    상기 조절 코드들은 상기 기준 데이터 신호들과 상기 지연 조절된 튜닝 블록 데이터 신호들의 비교 결과에 기초하여 결정되는 eMMC의 동작 방법.
KR1020120102469A 2012-09-14 2012-09-14 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법 KR20140035767A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120102469A KR20140035767A (ko) 2012-09-14 2012-09-14 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법
US14/025,948 US9772651B2 (en) 2012-09-14 2013-09-13 Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system including the use of a switch command defining an adjustment delay for a data signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120102469A KR20140035767A (ko) 2012-09-14 2012-09-14 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법

Publications (1)

Publication Number Publication Date
KR20140035767A true KR20140035767A (ko) 2014-03-24

Family

ID=50645516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120102469A KR20140035767A (ko) 2012-09-14 2012-09-14 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법

Country Status (1)

Country Link
KR (1) KR20140035767A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170040732A (ko) * 2015-10-05 2017-04-13 삼성전자주식회사 듀얼 에지를 이용하여 스큐 캘리브레이션을 수행하는 시스템 온 칩과 집적 회로 및 이들을 포함하는 모바일 장치
CN109144938A (zh) * 2018-11-12 2019-01-04 成都傅立叶电子科技有限公司 一种实现eMMC芯片HS400高速接口通信的方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170040732A (ko) * 2015-10-05 2017-04-13 삼성전자주식회사 듀얼 에지를 이용하여 스큐 캘리브레이션을 수행하는 시스템 온 칩과 집적 회로 및 이들을 포함하는 모바일 장치
CN109144938A (zh) * 2018-11-12 2019-01-04 成都傅立叶电子科技有限公司 一种实现eMMC芯片HS400高速接口通信的方法及系统
CN109144938B (zh) * 2018-11-12 2023-11-03 成都傅立叶电子科技有限公司 一种实现eMMC芯片HS400高速接口通信的方法及系统

Similar Documents

Publication Publication Date Title
US9535451B2 (en) Embedded multimedia card using unidirectional data strobe signal, host for controlling the same, and related methods of operation
CN110097906B (zh) 调节占空比的存储器装置和具有存储器装置的存储器系统
US9772651B2 (en) Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system including the use of a switch command defining an adjustment delay for a data signal
CN107735836B (zh) 采用可编程跟踪斜率的数字相位控制
US7827431B2 (en) Memory card having memory device and host apparatus accessing memory card
US9477259B2 (en) Calibration of clock signal for data transmission
US10734983B1 (en) Duty cycle correction with read and write calibration
US9401721B1 (en) Reference voltage generation and tuning
US10347347B1 (en) Link training mechanism by controlling delay in data path
US9146579B2 (en) Embedded multimedia card (eMMC), host for controlling eMMC method operating eMMC system
KR102473661B1 (ko) 듀티 사이클을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템
US9209961B1 (en) Method and apparatus for delay compensation in data transmission
US10242723B1 (en) Method and apparatus for background memory subsystem calibration
KR20140035767A (ko) 입출력 튜닝 과정을 수행할 수 있는 임베디드 멀티미디어 카드와 그 동작 방법, 및 상기 임베디드 멀티미디어 카드를 제어하는 호스트의 동작 방법
CN109815173B (zh) 信号接收器的操作方法、脉冲宽度控制器及电子装置
US10991403B2 (en) Memory calibration with end point replay
KR101978976B1 (ko) 임베디드 멀티미디어 카드(eMMC)와 상기 eMMC를 제어하는 호스트
CN109243506B (zh) 半导体器件
US7995365B1 (en) Method and apparatuses for managing double data rate in non-volatile memory
US9691454B2 (en) Memory controller with phase adjusted clock for performing memory operations
EP4174860A1 (en) Memory device performing offset calibration and operating method thereof
US20240071443A1 (en) Semiconductor device and semiconductor system
KR20140035768A (ko) 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법
KR20210003618A (ko) 메모리 장치 및 이의 동작 방법
CN117953932A (zh) 存储器件、存储控制器以及存储器件的操作方法

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination