KR20140035770A - 임베디드 멀티미디어 카드 디바이스, 그 시스템 및 그 동작방법 - Google Patents

임베디드 멀티미디어 카드 디바이스, 그 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR20140035770A
KR20140035770A KR1020120102475A KR20120102475A KR20140035770A KR 20140035770 A KR20140035770 A KR 20140035770A KR 1020120102475 A KR1020120102475 A KR 1020120102475A KR 20120102475 A KR20120102475 A KR 20120102475A KR 20140035770 A KR20140035770 A KR 20140035770A
Authority
KR
South Korea
Prior art keywords
emmc
clock signal
host
data
data signal
Prior art date
Application number
KR1020120102475A
Other languages
English (en)
Other versions
KR101977663B1 (ko
Inventor
강영규
서성호
신명섭
유경필
이정필
최준호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120102475A priority Critical patent/KR101977663B1/ko
Priority to US14/026,094 priority patent/US9134750B2/en
Publication of KR20140035770A publication Critical patent/KR20140035770A/ko
Application granted granted Critical
Publication of KR101977663B1 publication Critical patent/KR101977663B1/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
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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
    • 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 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • 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/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

Landscapes

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

Abstract

본 발명은 호스트와 통신하는 eMMC(Embeded MuliMediaCard) 장치, 그 시스템 및 그 동작방법에 대한 것이다. eMMC 장치는 클락신호의 제1 에지 또는 제2 에지 중 어느 하나에 따라 데이터신호를 수신하는 캐치회로 및 상기 캐치회로에서 출력된 상기 데이터신호를 모니터링하다 스타트비트를 검출하면 상기 스타트비트 이후의 데이터신호부터 유효 데이터신호를 인에이블하는 스타트비트 검출회로를 포함한다.

Description

임베디드 멀티미디어 카드 디바이스, 그 시스템 및 그 동작방법{EMBEDED MULTIMEDIA CARD DEVICE, SYSTEM THEREOF AND OPERATING METHOD THEREOF}
본 발명은 임베디드 멀티미디어 카드 시스템에 관한 것으로서, 보다 상세하게는 클락 신호 상에서 데이터 신호 중 스타트 비트의 인식되는 위치를 조정함으로써 데이터 전송시 클락 신호 왜곡으로 인한 데이터 손실을 방지할 수 있는 시스템에 관한 것이다. 또한 클락 신호의 위상을 조정함으로써 데이터 전송시 로드 성분으로 인한 데이터 손실을 방지할 수 있는 시스템에 관한 것이다.
eMMC™ (Multi Media Card)는 JEDEC(http://www.jedec.org)에서 표준으로 정한 카드 인터페이스(I/F) 규약이다.eMMC를 포함하는 데이터 처리 시스템은 짧은 시간 동안 빠르게 데이터를 처리해야 할 필요가 있다.
eMMC 시스템은 호스트와 디바이스를 포함하고, 호스트와 디바이스 간에는 클락신호, 데이터 신호 및 제어명령으로 통신한다.
데이터 신호(DAT[7:0])는 스타트 비트(start bit), 데이터 비트들, CRC비트들 및 앤드 비트(end bit)를 포함하는데, 저속 모드의 디바이스에서 어느 정도 왜곡된 클락신호(예를 들면 신호 레벨이 낮은 경우)가 수신되더라도 스타트 비트를 인식하거나 클락신호의 위상이 흔들려도 데이터 신호를 인식하는데 큰 어려움이 없었다. 그러나 고속 모드의 디바이스에서는 데이터 신호의 유효 윈도우가 작아져서 왜곡된 클락 신호를 복원하는데 충분한 시간이 보장되지 않을 뿐 아니라 클락신호의 위상이 흔들릴 경우 데이터 신호를 인식하지 못하는 경우가 많아졌다. 그 결과 디바이스가 고속 모드로 갈수록 왜곡된 클락 신호로 인한 데이터 손실 확률이 높아진다.
본 발명이 이루고자 하는 기술적 과제는 왜곡되거나 위상이 달라지는 클락 신호에서도 안정적으로 동작하는 eMMC(embeded MultiMediaCard) 호스트, 디바이스, 이를 포함하는 eMMC 시스템 및 그 동작방법을 제공함에 있다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 호스트와 통신하는 eMMC(Embeded MuliMediaCard)는 클락신호의 제1 에지 또는 제2 에지 중 어느 하나에 따라 데이터신호를 수신하는 캐치회로 및 상기 캐치회로에서 출력된 상기 데이터신호를 모니터링하다 스타트비트를 검출하면 상기 스타트비트 이후의 데이터신호부터 유효 데이터신호를 인에이블하는 스타트비트 검출회로를 포함한다.
상기 캐치회로는 상기 클락신호의 상기 제1에지마다 상기 데이터신호를 캐치(catch)하는 제1 캐치회로 및 상기 클락신호의 상기 제2에지마다 상기 데이터신호를 캐치하는 제2 캐치회로를 포함하고, 상기 eMMC는 상기 호스트와 상기 eMMC간 채널특성에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로를 인에이블하여 상기 캐치된 데이터신호를 상기 스타트비트 검출회로로 출력한다.
상기 eMMC는 상기 호스트가 전송하는 제1클락 신호와 상기 eMMC가 수신하는 제2클락 신호를 비교하여 상기 채널특성을 판단하고, 판단 결과에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로를 인에이블할 수 있다.
상기 eMMC는 상기 판단 결과에 기초하여 상기 EXT_CSD의 Startbit_Option 필드를 설정하고, 상기 호스트의 SEND_EXT_CSD(CMD 8) 명령에 따라 상기 EXT_CSD를 전송할 수 있다.
상기 eMMC는 상기 호스트의 상기 Startbit_Option 필드를 반영한 SWITCH(CMD6) 명령에 따라 상기 제1 캐치회로 또는 상기 제2 캐치회로 중 어느 하나를 인에이블할 수 있다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 다른 일 실시예에 따른 호스트와 통신하는 eMMC(Embeded MultiMediaCard)의 동작방법은 클락신호의 채널 특성을 평가하고, 상기 채널 특성을 EXT_CSD에 기입하는 단계, 상기 호스트로부터 상기 EXT_CSD를 반영한 SWITCH(CMD6) 명령을 수신하여 선택신호를 생성하는 단계, 상기 선택신호에 따라 상기 클락신호의 제1에지 또는 제2에지에서 상기 eMMC가 상기 호스트로부터 수신한 데이터신호를 캐치하는 단계 및 캐치된 상기 데이터신호를 모니터링하다 스타트비트가 검출되면, 상기 스타트비트 이후의 첫번째 데이터프레임부터 상기 데이터 신호를 유효 데이터로 처리하는 단계를 포함한다.
일 예로, 상기 캐치하는 단계는 상기 클락신호 첫번째 사이클 이후의 폴링 에지(falling edge)를 상기 제1에지로 인식하여, 상기 제1에지마다 상기 데이터신호를 캐치할 수 있다.
일 예로, 상기 캐치하는 단계는 상기 클락신호의 첫번째 사이클은 더미 사이클로 패스하고 상기 클락신호의 두번째 사이클 이후의 라이징 에지(rising edge)를 상기 제2에지로 인식하여, 상기 제2에지마다 상기 데이터신호를 캐치할 수 있다.
상기 채널 특성은 상기 호스트가 전송하는 제1클락 신호와 상기 eMMC가 수신하는 제2 클락 신호를 비교하여 상기 채널특성을 판단하고, 판단 결과에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로를 인에이블할 수 있다.
상기 채널 특성은 상기 클락신호의 왜곡정도를 반영하여 상기 EXT_CSD의 Startbit_Option 필드에 기입할 수 있다.
상기 선택신호는 상기 eMMC가 HS200 이상의 고속 모드(High Speed Mode)에서 상기 클락신호의 제1 에지 또는 제2 에지 중 어느 하나에 따라 상기 데이터 신호를 캐치하도록 선택할 수 있다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 또다른 일 실시예에 따른 eMMC(Embeded MultiMediaCard)는 호스트로부터 수신된 클락신호의 제1 에지에 따라 호스트로부터 수신된 데이터를 캐치하는 제1캐치회로, 상기 클락신호의 제2 에지에 따라 상기 데이터를 캐치하는 제2캐치회로, 선택신호에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로 중 어느 하나를 인에이블하는 선택회로 및 상기 선택회로에서 출력된 상기 데이터를 모니터링하다 스타트비트를 검출하면 상기 스타트비트 이후의 첫번째 데이터프레임부터 유효한 데이터(DATA Valid)로 인식하는 스타트비트 검출회로를 포함한다.
상기 제1캐치회로는 상기 클락신호의 첫번째 사이클 이후의 폴링 에지(falling edge)마다 상기 데이터를 캐치한다.
상기 제2캐치회로는 상기 클락신호의 첫번째 사이클은 더미 사이클로 패스하고 상기 클락신호의 두번째 사이클 이후의 라이징 에지(rising edge)마다 상기 데이터신호를 캐치한다.
상기 선택신호는 상기 eMMC가 HS200 모드 이상의 고속 모드(High Speed Mode)에서 상기 호스트가 전송하는 제1 클락 신호와 상기 eMMC가 수신하는 제2 클락 신호를 비교하여 상기 채널특성을 판단하고, 판단 결과에 따라 상기 제1캐치회로 또는 상기 제2캐치회로 중 어느 하나를 선택할 수 있다.
상기 채널특성은 상기 eMMC가 상기 HS200 모드 이하의 저속모드로 동작할 때 상기 클락신호의 왜곡정도를 반영하여 EXT_CSD의 Startbit_Option 필드에 기입하고, 상기 호스트로부터 상기 EXT_CSD를 반영한 SWITCH(CMD 6) 명령을 수신하여, 상기 제1캐치회로 또는 상기 제2캐치회로 중 어느 하나를 선택할 수 있다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 또다른 일 실시예에 따른 eMMC(Embeded MultiMediaCard)의 동작방법은 (a)호스트로부터 제1클락신호, 튜닝 명령 및 튜닝 블록 데이터 신호를 수신하는 단계, (b)상기 튜닝 블록 데이터 신호에 따라 상기 제1 클락신호를 튜닝하여 유효 윈도우를 찾는 단계 및 (c)상기 유효 윈도우에 대한 정보를 상기 호스트로 전송하는 단계를 포함한다.
상기 eMMC의 동작방법은 (d) 상기 유효 윈도우 정보에 기초하여 튜닝된 제2 클락신호를 상기 호스트로부터 수신하는 단계 및 (e) 상기 (a)단계 내지 상기 (c)단계를 다시 반복하여 상기 제2 클락신호가 상기 유효 윈도우 범위 내인지 확인하는 단계를 더 포함한다.
상기 (b)단계는 상기 튜닝 블록 데이터 신호의 위상을 고정시키고, 상기 튜닝 블록 데이터 신호가 변형(corruption)될 때까지 상기 클락신호의 위상을 앞뒤로 쉬프트하여 상기 유효 윈도우를 찾을 수 있다.
상기 (c)단계는상기 유효 윈도우 정보를 EXT_CSD의 DEVICE_TUN_CLK 필드에 기입하는 것을 특징으로 할 수 있다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 또다른 일 실시예에 따른 호스트와 eMMC(embedded multimedia card)를 포함하는 eMMC 시스템의 동작방법은 상기 호스트가 튜닝 명령을 상기 eMMC로 전송하여, 상기 eMMC로부터 응답을 회신받는 단계, 상기 호스트가 상기 eMMC로 클락신호와 튜닝 블록 데이터 신호를 전송하는 단계, 상기 eMMC가 상기 튜닝 블록 데이터 신호를 기준으로 상기 클락신호를 쉬프트하여 유효 윈도우를 찾는 단계, 상기 eMMC가 상기 유효 윈도우에 대한 정보를 상기 호스트로 전송하는 단계 및 상기 호스트는 상기 eMMC로부터 상기 유효 윈도우에 대한 정보를 수신하여, 상기 클락신호의 위상을 조절하는 단계를 포함한다.
상기 유효 윈도우를 찾는 단계는 상기 eMMC가 상기 튜닝 블록 데이터 신호의 위상을 고정시키고, 상기 튜닝 블록 데이터 신호가 변형(corruption)될 때까지 상기 클락신호의 위상을 앞뒤로 쉬프트하여 상기 유효 윈도우를 찾을 수 있다.
상기 eMMC는 상기 유효 윈도우에 대한 정보를 기초로 EXT_CSD의 DEVICE_TUN_CLK 필드를 기입하여 상기 호스트로 전송할 수 있다.
상기 호스트는 상기 eMMC로부터 수신받은 상기 EXT_CSD의 DEVICE_TUN_CLK 필드를 기초로 상기 클락신호의 위상을 조절할 수 있다.
상기 동작방법은 상기 호스트가 상기 조절된 클락신호 및 상기 튜닝 블록 데이터 신호를 상기 eMMC로 전송하는 단계 및 상기 eMMC는 상기 튜닝 블록 데이터 신호를 이용하여 상기 조절된 클락신호가 상기 유효 윈도우 범위 내인지 확인하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따른 eMMC(Embeded MultiMedia Card) 및 그 동작방법에 따르면, 고속모드에서 동작하는 경우 발생하는 클락 신호의 에지를 사용하여 데이터를 캐치하도록 함으로써 클락신호 왜곡으로 인한 데이터 손실율을 줄일 수 있다.
또한 본 발명의 실시예들에 따른 eMMC(Embeded MultiMedia Card) 및 그 동작방법은 호스트에서 유효 윈도우 정보를 반영하여 클락신호의 위상을 조정함으로써 채널 로드성분으로 인한 데이터 손실율을 줄일 수 있다.
도 1은 본 발명의 실시예들에 따른 eMMC 시스템을 나타낸 블럭도이다.
도 2는 본 발명의 실시예에 따른 스타트 비트 검출회로를 나타낸 블럭도이다.
도 3은 본 발명의 일 실시예에 따른 eMMC eMMC의 동작방법을 설명하기 위한 타이밍도이다.
도 4는 본 발명의 다른 실시예에 따른 eMMC eMMC의 동작방법을 설명하기 위한 타이밍도이다.
도 5는 본 발명의 실시예들에 따른 eMMC의 동작방법을 설명하기 위한 흐름도이다.
도 6은 JESD84-B451에 정의된 eMMC 시스템의 클락신호 및 데이터신호를 나타낸 타이밍도이다.
도 7은 본 발명의 또다른 일실시예에 따른 eMMC의 동작방법을 설명하기 위한 개념도이다.
도 8은 도 7의 실시예에 따른 튜닝 명령을 정의한 표이다.
도 9는 도 7의 실시예에 따른 EXT_CSD의 DEVICE_TUN_CLK 필드를 정의한 표이다.
도 10은 도 7의 실시예에 따른 튜닝 블록 데이터 신호에 대한 EXT_CSD의 결과를 정의한 표이다.
도 11은 도 7에 도시된 eMMC의 동작방법을 설명하기 위한 개념도이다.
도 12는 도 11에 도시된 eMMC의 동작방법의 일 실시예를 설명하기 위한 개념도이다.
도 13은 도 11에 도시된 eMMC의 동작방법의 다른 실시예를 설명하기 위한 개념도이다.
도 14는 도 12 및 도 13에 도시된 따른 eMMC의 동작방법을 설명하기 위한 타이밍도이다.
도 15는 도 11에 도시된 eMMC의 동작방법을 설명하기 위한 흐름도이다.
도 16은 DDR400 모드를 수행할 수 있는 eMMC에 대한 장치 타입 필드의 정의를 나타낸다.
도 17은 DDR400 모드를 수행할 수 있는 eMMC에 대한 HS_TIMING과 HS_TIMING 값들을 나타낸다.
도 18은 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도를 나타낸다.
도 19는 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)은 고려하지 않는다.
또한, 본 명세서에서는 설명의 편의를 위해, 특별한 의도를 가지고 명시적으로 구분하지 않는 한, 특정한 기능 회로의 입력 신호와 출력 신호 각각은 동일한 명칭을 사용할 수 있다.
또한, 본 명세서에서는 DDR 400 모드를 새롭게 정의하고, 새롭게 정의된 DDR 4000 모드를 지원할 수 있는 호스트 또는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC))의 구조와 동작을 상세히 설명한다.
여기서, DDR 400 모드는 표 1에 도시된 바와 같이 호스트 또는 장치의 입출력 동작 전압(VCCQ)이 1.2V 또는 1.8V일 때, 200MHz DDR(dual date rate)로 데이터를 처리할 수 있는 동작 모드를 의미한다.본 명세서에 기재된 기술적 사상이 적용된 MMC 또는 eMMC에 대해서 각 동작 속도는 다음과 같다. 본 명세서에서 최대 데이터 전송속도(Max Data Transfer)가 200MB/s 이하는 저속 모드라 하고, 200MB/s 초과되는 데이터 전송속도를 고속 모드라 하자.
Mode Name Data Rate IO Voltage Frequency Max Data Transfer(x8)
Backwards Compatibility with legacy MMC Card Single 3/1.8V/1.2V 0-26MHz 26MB/s
High Speed SDR Single 3/1.8V/1.2V 0-52MHz 52MB/s
High Speed DDR Dual 3/1.8V/1.2V 0-52MHz 104MB/s
HS200 Single 1.8V/1.2V 0-200MHz 200MB/s
DDR400 Dual 1.8V/1.2V 0-200MHz 400MB/s
도 1은 본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card)와 호스트를 포함하는 시스템의 블록도를 나타낸다.
도 1을 참조하면, eMMC 시스템(100)은 호스트(200)와 장치(300), 예컨대, eMMC 장치(300)를 포함한다.
호스트(200)는 eMMC 장치(300)의 데이터 처리 동작, 예컨대, 데이터 리드 동작 또는 데이터 라이트 동작 등을 제어할 수 있다. 상기 데이터 처리 동작은 SDR(single data rate) 또는 DDR(double data rate)로 수행될 수 있다.
호스트(200)는 마이크로프로세서(microprocessor) 또는 어플리케이션 프로세서(application processor)를 의미할 수 있고, 상기 마이크로프로세서 또는 상기 애플리케이션 프로세서는 전자 장치에 내장 또는 구현될 수 있다.
상기 전자 장치는 PC(personal computer), 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트폰(smartphone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 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) 및 호스트 컨트롤러(220)를 포함한다.
클락 생성기(210)는 호스트(200)와 eMMC 장치(300)에서 사용될 클락 신호(CLK)를 생성한다. eMMC 장치(300)는 호스트(200)로부터 클락 신호(CLK)를 공급받아야 한다. 클락 생성기(210)는 위상 동기 루프(phase locked loop(PLL)) 또는 지연 동기 루프(Delayed locked loop(DLL))로 구현될 수 있다.
프로세싱 회로(211)는 명령(CMD)의 생성, 응답(RES)의 해석, Extended(EXT)_CSD 레지스터(380)에 저장된 데이터의 처리, 및/또는 입출력 데이터의 처리 동작을 제어할 수 있는 하드웨어 또는 소프트웨어(또는 펌웨어)가 내장된 하드웨어를 의미할 수 있다. 프로세싱 회로(211)는 각 구성 요소(component; 210과 220)의 동작을 제어할 수 있다.
프로세싱 회로(211)는 본 발명에서 새롭게 정의된 튜닝(tuning) 명령(CMD)을 eMMC 장치(300)로 전송하고, eMMC 장치(300)로부터 전송된 응답(RES), 즉 튜닝 명령에 대한 응답에 기초하여 튜닝 블록 데이터 신호들, 예컨대 튜닝 블록 패턴을 eMMC 장치(300)로 전송할 수 있다.
eMMC 장치(300)는 호스트(200)로부터 전송된 튜닝 명령(CMD)과 튜닝 블록 데이터 신호들에 기초하여 데이터 신호들을 기준으로 클락 신호가 최적의 유효 윈도우를 찾는 튜닝 과정(tuning process)을 수행할 수 있다.
즉, 상기 튜닝 과정은 eMMC 장치(300)에 의해서 수행되고, 호스트(200)는 eMMC 장치(300)로부터 수신된 유효 윈도우에 대한 정보를 반영하여 클락 신호의 위상을 조정한다. 상기 튜닝 과정은 HS200 모드 이상의 고속 모드에서 데이터 에러율을 줄이기 위한 것으로, HS200 모드 미만의 저속모드에서 튜닝하고, 상기 튜닝 과정이 종료된 후, 고속 모드의 데이터 라이트 동작이 수행될 수 있다.
호스트 컨트롤러(220)는 입력 회로(230), 출력 회로(240), 및 호스트 입출력 블록(250)을 포함한다.
데이터 리드 동작 동안, 입력 회로(230)는 플래시 메모리(370)로부터 출력된 리드 데이터를 호스트 입출력 블록(250)으로부터 수신한다. 예컨대, 입력 회로(230)는 EXT_CSD 레지스터(380)에 저장된 스타트비트 옵션 정보 또는 유효 윈도우에 대한 정보를 호스트 입출력 블록(250)으로부터 수신한다. 출력 회로(230)는 수신된 스타트비트 옵션 정보 또는 유효 윈도우에 대한 정보에 기초한 명령을 호스트 입출력 블록(250)으로 전송한다. 호스트 입출력 블록(250)은 상기 명령(CMD)을 eMMC 장치(300)로 출력한다.
데이터 라이트 동작 동안, 클락 신호(CLK)에 응답하여 출력 회로(240)는 eMMC 장치(300)의 플래시 메모리(370)에 라이트될 라이트 데이터(Write Data)를 호스트 입출력 블록(250)으로 전송한다.
eMMC 버스는 10개의 버스(또는, 10개의 통신 라인들)(101, 102, 및 103)을 포함한다. 10개의 버스(101, 102, 및 103)는 클락 신호(CLK)를 전송하는 단방향(unidirectional) 클락 버스(101), 명령(CMD)과 응답을 전송하는 양방향(bidirectional) 명령 버스(102), 및 데이터(DAT[7:0])를 전송하는 양방향 데이터 버스(103)를 포함한다.
호스트(200)는 입력 회로(230)와 출력 회로(240)에서 사용될 입출력 동작 전압(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), 제어 로직 블록(330) 및 플래시 입출력 블록(340)을 포함한다.
데이터 라이트 동작 동안, CPU(335)의 제어에 따라 eMMC 입출력 블록(320)을 통하여 수신된 데이터(DAT[7:0])는 메모리(350), 예컨대, 버퍼(buffer)에 임시적으로 저장된다. 이 때, CPU(335)의 제어에 따라 플래시 입출력 블록(340)은 메모리(350)에 저장된 데이터를 리드하고 리드된 데이터를 플래시 메모리(370)에 라이트한다.
데이터 리드 동작 동안, CPU(335)의 제어에 따라 플래시 입출력 블록(340)은 플래시 메모리(370)로부터 출력된 데이터를 메모리(350)에 저장한다. 예컨대, CPU(335)의 제어에 따라 플래시 입출력 블록(340)은 EXT_CSD 레지스터(380)로부터 출력된 스타트비트 옵션 정보 또는 유효 윈도우에 대한 정보를 메모리(350)에 저장한다.
CPU(335)는 입출력 블록들(320과 340)의 동작을 제어한다.
메모리(350)는 입출력 블록들(320과 340) 사이에서 주거나 받는 데이터를 저장한다. 메모리(350)는 휘발성 메모리로 구현될 수 있다.
플래시 메모리(370)는 EXT_CSD 레지스터(380)를 포함할 수 있다. EXT_CSD 레지스터(380)는 전원 온오프에 상관없이 기입된 값이 유지되는 비휘발성 메모리로, eMMC 장치(300) 성능(capability) 및 선택모드 등에 대한 정보가 기입된다. 일례로 EXT_CSD 레지스터(380)는 eMMC 장치(300)의 클락 신호 정보, 예컨대 스타트비트 옵션 정보 또는 유효 윈도우에 대한 정보를 저장한다. 이때 스타트비트 옵션 정보는 EXT_CSD 레지스터(380)의 Startbit_Option 필드에 저장될 수 있고, 유효 윈도우에 대한 정보는 EXT_CSD 레지스터(380)의 DEVICE_TUN_CLK 필드에 저장될 수 있다.
플래시 메모리(370)가 NAND 플래시 메모리로 구현될 때, 플래시 입출력 블록(340)은 NAND 플래시 입출력 블록으로 구현될 수 있다.
도 2는 본 발명의 실시예에 따른 유효 데이터 인식회로를 나타낸 블럭도이다.
도 2를 참조하면, 유효 데이터 인식회로(400)는 도 1의 eMMC 입출력 블록(320)에 포함될 수 있다.
유효 데이터 인식회로(400)는 캐치회로(401,402) 및 스타트비트 검출회로(420)를 포함한다.
캐치회로(401,402)는 호스트(200)로부터 수신되는 클락신호(CLK)의 제1 에지(예를 들면 폴링 에지(Falling edge)) 또는 제2 에지(예를 들면 라이징 에지(Rising edge)) 중 어느 하나에 따라 호스트(200)로부터 수신되는 데이터신호를 수신하여 캐치한다. 캐치회로는 예를 들면, 플립플롭 또는 래치회로로 구현될 수 있다.
캐치회로는 클락신호의 제1에지마다(예를 들면 폴링 에지(Falling edge)) 데이터신호를 캐치하는 제1 캐치회로(401) 및 클락신호의 제2에지(예를 들면 라이징 에지(Rising edge))마다 데이터신호를 캐치하는 제2 캐치회로(402)를 포함할 수 있다. eMMC 장치(300)는 호스트(200)와 eMMC 장치(300) 간 채널특성에 따라 제1 캐치회로(401) 또는 제2캐치회로(402)를 인에이블하여 데이터신호를 스타트비트 검출회로(420)로 출력한다.
예를 들어 제1 캐치회로(401)가 인에이블된 경우 클락신호의 첫번째 사이클의 폴링 에지(falling edge)를 제1에지로 하여, 폴링 에지마다 데이터신호를 기설정된 단위(예를 들면 비트(bit) 단위)로 캐치하여 출력한다.
예를 들어 제2 캐치회로(402)가 인에이블된 경우 클락신호(CLK)의 첫번째 사이클은 더미 사이클(dummy cycle)로 패스하고 클락신호(CLK)의 두번째 사이클 이후의 라이징 에지(rising edge)를 제2에지로 하여, 라이징 에지마다 데이터신호를 기설정된 단위(예를 들면 비트(bit) 단위)로 캐치하여 출력한다.
유효 데이터 인식회로(400)는 선택블럭(410)을 더 포함할 수 있다.
선택블럭(410)은 선택신호(SEL)에 따라 제1 캐치회로(401) 또는 제2 캐치회로(402)에서 각각 캐치된 데이터 신호들 중 어느 하나의 데이터 신호(cDATA)를 출력할 수 있다.
또한 eMMC 장치(300)는, 데이터 라이트 동작시 선택신호에 따라 고속 모드(High Speed Mode)에서는 클락신호(CLK)의 제1 에지 또는 제2 에지 중 어느 하나에 따라 데이터 신호를 인식하고, 저속 모드(Low Speed Mode)에서는 클락신호(CLK)가 인에이블될 때마다 상기 데이터 신호를 인식할 수 있다.
선택신호(SEL)는 EXT_CSD(Extended CSD)에 저장된 정보를 반영하여 생성될 수 있다.
먼저 eMMC 장치(300)는 호스트(200)와 eMMC 장치(300) 간 채널특성을 평가한다. 예를 들면, 호스트(200)로부터의 출력 클락신호(또는 제1 클락신호)와 eMMC 장치(300)에의 입력 클락신호(또는 제2 클락신호)를 비교하여 전송상 왜곡이 발생했는지 판단하여, 그 판단결과에 기초한 정보를 EXT_CSD 레지스터(380) 내 해당 필드에 기입한다.
eMMC 장치(300)는 정보를 기입한 EXT_CSD를 호스트(200)로 전송하고, 호스트(200)는 상기 EXT_CSD를 반영한 명령을 eMMC 장치(300)로 전송한다.
즉, 일 실시예로 eMMC 장치(300)는 상기 명령에 기초하여 선택신호(SEL)를 생성할 수 있다. 다른 일실시예로 eMMC 장치(300)는 상기 판단결과에 기초하여 자체적으로 선택신호(SEL)를 생성할 수도 있다
스타트비트 검출회로(120)는 캐치된 신호(cDATA) 중에서 스타트 비트(start bit)를 검출한다. 캐치된 신호(cDATA) 중 스타트 비트(Start bit)가 검출되면 스타트 비트 이후의 데이터 신호를 유효 데이터(DATA Valid)로 출력한다. 유효데이터(DATA Valid)는 호스트 데이터 입출력 컨트롤 유닛(22)이 데이터 채널을 통해 수신되는 데이터 프레임들을 인식하여 데이터를 입력받도록 제어한다.
도 3은 본 발명의 일 실시예에 따른 eMMC 장치의 동작방법을 설명하기 위한 타이밍도이다.
도 1 및 도 3을 참조하면, 호스트(200)가 eMMC 장치(300)로부터 응답(response)을 수신하면, 호스트(200)는 eMMC 장치(300)로 클락 신호(CLK) 및 데이터 신호(DAT[7:0])를 전송한다. (이때 NWR은 호스트(200)가 응답을 수신한 시점부터 데이터 신호에서 스타트 비트가 검출될 때까지 클락 신호가 토글(toggle)되는 기간, tPERIOD는 데이터 신호에서 스타트 비트가 검출된 때부터 첫번째 데이터프레임(예를 들면, 도 3의 D0(odd))가 출력될 때까지의 기간을 말한다.)
eMMC 시스템(100)에 대해 먼저 채널 특성 평가를 수행한다. 채널 특성 평가란 호스트(200)와 eMMC 장치(300) 각각의 인터페이스로부터 출력되는 제1 클락신호와 제2 클락신호를 오실로스코프를 통해 관찰하여, 제1클락신호를 기준으로 제2 클락신호에 왜곡정도를 평가하는 것을 말한다. 채널 특성 평가 결과에 따라 eMMC 장치(300)가 HS 200 모드 이상의 고속 모드에서 동작할 때 클락 신호가 인에이블되는 동안 데이터 신호를 캐치할지, 클락 신호의 에지에서 데이터신호를 캐치할지 결정한다.
eMMC 장치(300)는 채널 특성의 판단 결과를 EXT_CSD의 Startbit Option필드에 기입한다. 고속 모드(High speed)에서 클락 신호의 심한 왜곡으로 인해 데이터 신호를 캐치하기 어려울 경우, eMMC 장치(300)는 EXT_CSD의 Startbit Option 필드를 분석하여 클락 신호(CLK)의 폴링 에지(edge)에서 스타트 비트(Start bit)를 인식하도록 셋팅한다.
상기 셋팅에 따라 데이터 신호를 캐치하다가(cDATA), 캐치된 데이터 신호에서 스타트 비트(S)가 검출되면, eMMC 장치(300)는 스타트 비트(S) 이후 첫번째 데이터 프레임부터 엔드 비트(E)에 이르기까지 데이터 신호를 유효 데이터(DATA Valid)로 인식한다.
도 4는 본 발명의 다른 실시예에 따른 eMMC의 동작방법을 설명하기 위한 타이밍도이다. 설명의 편의를 위하여 도 3과의 차이점을 위주로 설명한다.
도 3과 달리 도 4의 eMMC 장치(300)는 EXT_CSD에 기초하여 클락 신호(CLK)의 첫번째 사이클을 더미 클락 신호(dummy clock signal)로 처리하고, 두번째 사이클의 라이징 에지(rising edge)에서 스타트 비트(Start bit)를 인식하도록 셋팅한다.
상기 셋팅에 따라 데이터 신호를 캐치하다가(cDATA), 캐치된 신호에서 스타트 비트(S)가 검출되면, eMMC 장치(300)는 데이터 신호의 첫번째 사이클(X)은 더미 데이터(dummy data)로 무시하고, 다음 사이클(D0)부터 엔드 비트(E)에 이르기까지의 데이터 신호를 유효 데이터(DATA Valid)로 인식한다.
도 5는 본 발명의 일 실시예들에 따른 eMMC의 동작방법을 설명하기 위한 흐름도이다.
도 2 내지 도 5을 참조하면, 먼저 eMMC 장치(300)는 호스트(200)와 eMMC 장치(300)간의 채널특성을 평가한다(S10). eMMC 장치(300)는 각 채널특성의 판단 결과에 기초하여 EXT_CSD 레지스터(380)의 Startbit_Option 필드를 기입한다(S11).
호스트(200)는 eMMC 장치(300)에 SEND_EXT_CSD(CMD8) 명령을 전송하고(S20) eMMC 장치(300)는 호스트(200)로 상기 명령에 상응하여 EXT_CSD를 전송한다(S12). SEND_EXT_CSD(CMD8) 명령은 eMMC 장치(300)가 호스트(200)로 상기 eMMC 장치(300)에 저장되어 있는 EXT_CSD에 기입된 값을 전송하라는 제어명령이다.
호스트(200)는 상기 EXT_CSD를 수신하여 분석한다(S21). 예를 들면, 호스트(200)가 eMMC 장치(300)로부터 수신한 EXT_CSD의 Startbit_Option 필드를 분석할 수 있다. 그리고 상기 EXT_CSD에 기초하여 eMMC 장치(300)를 셋팅하기 위한 SWITCH(CMD6)명령을 eMMC 장치(300)로 전송한다(S22). SWITCH(CMD6)명령은 상기 채널특성에 따라 eMMC 장치(300)를 셋팅하라는 제어명령이다.
eMMC 장치(300)는 SWITCH(CMD6)에 따라 선택신호(Sel)를 생성한다(S13). 선택신호(Sel)가 클락신호(CLK)의 제1에지(예를 들면 폴링 에지)에 기초하도록 선택하면(S14), eMMC 장치(300)는 클락신호(CLK)의 첫번째 사이클 이후, 즉, 첫번째 사이클의 폴링 에지부터 폴링 에지가 반복되는 동안 데이터 신호를 캐치한다(S15). eMMC 장치(300)는 캐치된 데이터(cDATA)에서 스타트 비트(S)가 검출되면, 스타트 비트(S) 이후 첫 데이터 프레임이 출력되는 때부터 유효 데이터 신호(DATA Valid)로서 인식한다(S18).
선택신호(Sel)가 클락신호(CLK)의 제2에지(예를 들면 라이징 에지)에 기초하도록 선택하면(S14), eMMC 장치(300)는 클락신호(CLK)의 첫번째 사이클은 패스하고, 두번째 사이클의 라이징 에지부터 라이징 에지가 반복되는 동안 데이터 신호를 캐치한다(S16). eMMC 장치(300)는 캐치된 데이터(cDATA)에서 스타트 비트(S)가 검출되면, 스타트 비트(S) 이후 첫 데이터 프레임이 출력되는 때부터 유효 데이터(DATA Valid)로서 인식한다(S18). 이때 스타트 비트(S)와 첫 데이터 프레임 사이에 더미 데이터(dummy data, X)가 포함될 수 있다.
도 6은 JESD84-B451에 정의된 eMMC 시스템의 클락신호 및 데이터신호를 나타낸 타이밍도이다. 설명에 앞서 클락신호는 tperiod의 주기 내에서 클락신호가 인에이블되는 시간이 tWH, 인에이블되지 않는 시간이 tWL이라 하고, 데이터 신호를 기준으로 클락 신호가 셋업되는 시간(Setup time)을 tISU, 클락 신호가 홀드되는 시간(Hold time)을 tIH라 한다.
도 6을 참조하면, 데이터 라이트 동작 수행시 호스트(200)는 예를 들면, 클락신호(CLK)를 데이터 프레임(D)의 센터(center)에 위치하도록 셋팅하여(①), eMMC 장치(300)로 데이터 신호(DAT[7:0])를 전송할 수 있다.
호스트(200)는 클락신호를 데이터프레임의 중앙(Center)에 위치시켜 각 신호를 eMMC 장치(300)로 전송함으로써 상기 tISU와 상기 tIH를 보다 여유있게 확보할 수 있다. 즉, 클락신호 채널 또는 데이터 채널 각각에 로드(load) 성분이 존재하여 클락신호(CLK) 또는 데이터신호(DAT)의 지연(② 또는 ③)이 있더라도, eMMC 장치(300)는 JESD84-B451에 정의된 마진(margin) 조건 내에서 수신된 데이터 신호를 인식할 수 있다.
한편 로드(load) 성분에 의한 클락신호(CLK) 또는 데이터신호(DAT)의 지연(② 또는 ③)이 JESD84-B451에 정의된 마진(margin) 조건을 벗어날 경우, 즉, 클락신호(CLK)가 데이터프레임의 중앙에서 많이 벗어나도록 위치할 경우 eMMC 장치(300)는 데이터를 제대로 인식할 수 없다. 따라서, eMMC 시스템(100)은 eMMC 장치(300)가 튜닝을 수행하여 알아낸 각 채널의 로드 성분 정보를 호스트(200)로 전달하고, 호스트(200)는 상기 로드 성분 정보를 반영하여 클락신호(CLK)와 데이터 신호(DATA) 간 배치(align)을 조정한다.
즉, eMMC 장치(300)는 스스로 튜닝동작을 수행함으로써 클락신호 채널 및 데이터 채널에서 생기는 로드 성분을 고려한 유효 윈도우를 직접 판단한다. 그리고 호스트(200) 내 eMMC 장치(300)에 관한 셋팅 정보에 상기 유효 윈도우 정보를 반영하여, 호스트(200)로부터 수신되는 클락 신호의 위상을 조정하도록 함으로써 eMMC 장치(300)는 호스트(200)로부터 수신하는 데이터 신호의 손실을 줄일 수 있다. 보다 구체적인 설명은 도 7 내지 도 16에서 한다.
도 7은 도 6의 실시예에 따른 eMMC의 동작방법을 설명하기 위한 개념도이다.
도 7을 참조하면, eMMC 장치(300)에서 데이터 쓰기 동작을 수행하기 위해 호스트(200)는 eMMC 장치(300)에 튜닝 명령(Get Tunning block)을 전송하고 eMMC 장치(300)는 상기 명령을 받았다는 응답(R1)을 회신한다(Hand-Shaking).
이어서 호스트(200)는 튜닝 블록 데이터 신호(Tunning Block Pattern)를 eMMC 장치(300)로 전송한다. eMMC 장치(300)는 상기 튜닝 블록 데이터 신호 를 이용하여 eMMC 장치(300)의 입력신호들 각각에 대한 튜닝(tunning)을 수행한다. 일례로 상기 튜닝 블록 데이터 신호는 SEND_TUNING_BLOCK(CMD21)명령의 튜닝 블록 데이터 신호와 동일할 수 있다.
eMMC 장치(300)는 튜닝 결과 채널 로드 성분을 EXT_CSD 내 DEVICE_TUN_CLK 필드에 기입한다.
호스트(200)가 SEND_EXT_CSD(CMD8)명령을 eMMC 장치(300)에 전송하면, eMMC 장치(300)는 상기 명령을 받았다는 응답(R1)을 회신하고(Hand-Shaking), 상기 EXT_CSD를 호스트(200)로 전송한다.
호스트(200)는 EXT_CSD 내 DEVICE_TUN_CLK 필드를 분석하여 eMMC 장치(300)로 전송할 클락신호(CLK)의 위상을 조정한다. 그리고 호스트(200)와 eMMC 장치(300)는 조정된 클락신호(CLK)에 기초하여 상기 전반적인 튜닝 동작을 재수행함(Loop)으로써 eMMC 장치(300)에 조정된 클락신호(CLK)가 데이터 신호(DAT)의 유효 윈도우에 적합하게 적용되었는지(예를 들면 도 6의 ①이 규격에 정의된 마진(margin) 조건 내인지) 확인한다.
도 8은 도 7의 실시예에 따른 튜닝 명령을 정의한 표이다.
도 8의 튜닝 명령은 JESD84-B451에 정의된 명령 외에 본 발명에서 새롭게 정의되는 것으로써, 튜닝 명령(Get Tuning Block)은 도시된 바와 같이, DDR400 모드에 적합한 샘플링 포인트 결정을 위해 128 개 클락 신호의 튜닝 패턴(4비트 모드에서는 64바이트, 8비트 모드에서는 128바이트)을 데이터 신호 채널(DAT[7:0])을 통해 보내는 것이다.
도 9는 도 7의 실시예에 따른 EXT_CSD의 DEVICE_TUN_CLK 필드를 정의한 표이다.
eMMC 장치(300)는 튜닝 결과 채널 로드 성분을 EXT_CSD 내 DEVICE_TUN_CLK 필드에 기입한다. DEVICE_TUN_CLK 필드는 JESD84-B451에 정의된 EXT_CSD의 필드들 외에 본 발명에서 새롭게 정의되는 필드로써 그 정의는 도시된 바와 같다.
도 10은 도 7의 실시예에 따른 튜닝 블록 데이터 신호에 대한 EXT_CSD의 결과를 정의한 표이다.
호스트(200)는 튜닝 블록 데이터 신호(Tunning Block Pattern)를 eMMC 장치(300)로 전송한다. 일례로 상기 튜닝 블록 데이터 신호는 SEND_TUNING_BLOCK(CMD21)명령의 튜닝 블록 데이터 신호와 동일할 수 있다.
eMMC 장치(300)는 상기 튜닝 블록 데이터 신호를 이용하여 eMMC 장치(300)의 입력신호들 각각에 대한 튜닝(tunning)을 수행한다. eMMC 장치(300)는 튜닝 동작 수행 결과를 EXT_CSD에 기입하여 호스트(200)로 전송한다.
4비트 모드에서 도 10에 도시된 바와 같이 클락신호가 데이터 신호의 중간(center)에서 얼마나 벗어나있는지 알 수 있다. 예를 들어, eMMC 장치(300)가 EXT_CSD로 4'b1111을 호스트(200)로 리턴하면, 클락신호가 데이터신호의 중앙(center)에서 700ps이상 앞서있다는 의미이다.
호스트(200)는 상기 유효 윈도우 정보를 반영하여 클락 신호의 위상을 조정한다.
도 11은 도 7에 도시된 eMMC의 동작방법을 설명하기 위한 개념도이다. 도 12는 도 11에 도시된 eMMC의 동작방법의 일 실시예를 설명하기 위한 개념도이고, 도 13은 도 11에 도시된 eMMC의 동작방법의 다른 실시예를 설명하기 위한 개념도이다.
eMMC 장치(300)는 도 11과 같이 데이터 신호의 위상을 고정시키고 클락신호(CLK)의 위상을 쉬프트 하여 튜닝 동작을 수행할 수 있다.
즉, eMMC 장치(300)는 eMMC 호스트로부터 데이터프레임(DAT[7:0])이 입력되면, 데이터신호에 대한 딜레이 체인(delay chain)과 클락 신호에 대한 딜레이 체인(delay chain)을 이용하여 데이터 프레임을 기준으로 클락 신호의 위상을 조정하여 유효 윈도우를 찾는다.
이때 데이터 신호 또는 클락 신호 각각에 대한 딜레이(또는 위상)을 조정하는데 튜닝 블록 데이터 신호가 사용된다.
도 10 및 도 12를 참고하여 보다 구체적으로 설명하면, eMMC 장치(300)는 데이터 신호(DAT[7:0])의 위상을 고정시키고 데이터 신호가 변형될 때까지 클락신호(CLK)의 위상을 오른쪽으로 쉬프트하도록 지연(delay)하여 홀드타임에 대한 유효 윈도우의 범위를 찾을 수 있다.
도 10 및 도 13을 참고하여 보다 구체적으로 설명하면, eMMC 장치(300)는 데이터 신호(DAT[7:0])의 위상을 고정시키고 데이터 신호가 변형될 때까지 클락신호(CLK)의 위상을 왼쪽으로 쉬프트하도록 앞당겨 셋업타임에 대한 유효 윈도우의 범위를 찾을 수 있다.
상기와 같이 클락신호(CLK)를 앞으로 당기거나 뒤로 미루다 보면, 어느 순간에 데이터프레임이 깨지는(corrupt) 순간이 있는데, 그 범위를 데이터프레임(DAT[7:0])의 유효 윈도우(Valid Window)로 판단한다.
도 14는 도 12 및 도 13에 도시된 따른 eMMC의 동작방법을 설명하기 위한 타이밍도이다.
도 14를 참고하면, 호스트 클락신호(Untuned HOST CLK)는 소정의 지연시간 경과 후 데이터 신호(AA,BB,CC,DD,EE,FF)와 함께 두번째 사이클(Untuned HOST CLK 2)부터 P1과 같이 전송된다.
이어서, eMMC 장치(300)는 튜닝 블록 데이터 신호를 이용하여 상기 데이터 신호를 고정하고, 클락신호를 튜닝한다. 상기 지연시간(Delay 1) 경과 후부터 클락신호가 eMMC 장치(300) 내 딜레이 체인을 통과할 때마다 데이터신호를 캐치하는 클락신호의 위상이 쉬프트 된다. 그 결과 튜닝된 클락신호(Tuned Host CLK)은 데이터 신호와 P2와 같이 셋팅되어야 유효 윈도우 범위 내가 되므로, eMMC 장치(300)는 유효 윈도우에 대한 정보를 얻을 수 있다.
eMMC 장치(300)는 P2에 도시된 바와 같은 유효 윈도우에 대한 정보를 EXT_CSD의 DEVICE_TUN_CLK에 기입하여 호스트(200)에 전송한다. 호스트(200)는 클락신호의 위상을 P2의 튜닝된 클락신호(Tuned Host CLK)와 같이 조정하여 eMMC 장치(300)로 전송한다.
eMMC 장치(300)는 도 7에 도시된 바와 같은 튜닝 동작(Loop)을 재수행한다. 그 결과, 데이터신호를 캐치하는 클락신호의 위상이 쉬프트 된다. 그 결과 최종 튜닝된 클락신호(Final Tuned Host CLK)은 데이터 신호와 P3와 같이 셋팅되어야 유효 윈도우 범위(Data Setup/Hold Time)를 충분히 커버한다.
eMMC 장치(300)는 P3에 도시된 바와 같은 유효 윈도우에 대한 정보를 EXT_CSD의 DEVICE_TUN_CLK에 기입하여 호스트(200)에 전송하고, 호스트(200)는 클락신호의 위상을 P3의 최종 튜닝된 클락신호(Final Tuned Host CLK)와 같이 조정하여 eMMC 장치(300)로 전송한다. 그 결과, eMMC 장치(300)는 고속모드에서 최종 튜닝된 클락신호(Final Tuned Host CLK)에 따라 동작하도록 셋팅하고, 이는 채널 로드성분으로 인한 데이터 손실율이 줄어들게 한다.
도 15는 도 11에 도시된 eMMC의 동작방법을 설명하기 위한 흐름도이다.
eMMC 장치(300)에서 데이터 쓰기 동작을 수행하기 위해 호스트(200)는 eMMC 장치(300)에 튜닝 명령(Get Tunning block)을 전송하고(S30) eMMC 장치(300)는 상기 명령을 받았다는 응답(R1)을 회신한다(S40).
이어서 호스트(200)는 튜닝 블록 데이터 신호(Tunning Pattern)를 eMMC 장치(300)로 전송한다(S31). eMMC 장치(300)는 상기 튜닝 블록 데이터 신호를 이용하여 eMMC 장치(300)의 입력신호들 각각에 대한 튜닝(tunning)을 수행한다(S41). 일례로 상기 튜닝 블록 데이터 신호는 CMD21의 튜닝 블록 데이터 신호와 동일할 수 있다.
eMMC 장치(300)는 튜닝 결과 채널 로드 성분을 반영한 유효 윈도우를 찾는다(S41). eMMC 장치(300)에서 판단된 유효 윈도우 정보는 EXT_CSD 내 DEVICE_TUN_CLK에 기입된다(S42).
호스트(200)가 제어명령 SEND_EXT_CSD(CMD8)을 eMMC 장치(300)에 전송하면(S32), eMMC 장치(300)는 상기 명령을 받았다는 응답(R1)을 회신하고(S43)), 이어서 업데이트된 EXT_CSD를 호스트(200)로 전송한다(S44).
호스트(200)는 수신된 EXT_CSD로부터 상기 유효 윈도우 정보를 반영하여 eMMC 장치(300)로 전송할 클락신호(CLK)의 위상을 조정한다(S34). 이렇게 하여 1차적으로 eMMC 장치(300)는 채널 로드 성분을 반영한 튜닝 동작을 수행한다(P1).
그리고 호스트(200)와 eMMC 장치(300)는 상기 튜닝 동작으로 클락신호가 데이터 신호의 센터에 적합하게 맞추어졌는지 확인하기 위해 조정된 클락신호(CLK)에 기초하여 튜닝 동작을 재수행한다(Pk). 즉, 호스트(200)가 eMMC 장치(300)에 튜닝명령(Get Tunning block)을 전송하고(S35) eMMC 장치(300)는 상기 명령을 받았다는 응답(R1)을 회신한다(S45).
호스트(200)는 조정된 클락신호과 함께 튜닝 패턴(Tunning Pattern)을 eMMC 장치(300)로 전송한다(S36). eMMC 장치(300)는 상기 튜닝 패턴을 이용하여 eMMC 장치(300)의 입력신호들 각각에 대한 튜닝(tunning)을 수행한다. eMMC 장치(300)는 튜닝 결과 채널 로드 성분을 반영한 유효 윈도우를 찾는다(S46). eMMC 장치(300)에서 판단된 유효 윈도우 정보는 EXT_CSD 내 DEVICE_TUN_CLK 필드에 기입된다(S47).
호스트(200)의 SEND_EXT_CSD(CMD8) 명령에 따라(S37), eMMC 장치(300)는 상기 명령을 받았다는 응답(R1)(S48) 및 이어서 업데이트된 EXT_CSD를 회신한다(S49). 호스트(200)는 EXT_CSD의 상기 DEVICE_TUN_CLK 필드를 분석하여 클락신호의 위상이 데이터신호의 중앙(center)에 맞추어져 있는지 확인하고, 규격 내 마진(margin)의 유효 데이터 범위 내가 될 때까지 eMMC 장치(300)로 전송할 클락신호(CLK)의 위상을 재조정한다(S39)(Pn).
도 16은 DDR400 모드를 수행할 수 있는 eMMC에 대한 장치 타입 필드의 정의를 나타낸다.
도 1과 도 16을 참조하면, EXT_CSD 레지스터(380)의 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 레지스터(380)의 DEVICE_TYPE[196] 필드는 호스트(200)로부터 전송된 SEND_EXT_CSD 명령(CMD8)에 따라 eMMC 장치(300)로부터 호스트(200)로 전송된다. 따라서, 호스트(200)는 EXT_CSD 레지스터(380)의 DEVICE_TYPE[196] 필드에 저장된 각 비트(Bit 6 또는 Bit 7)에 기초하여 eMMC 장치(300)가 DDR 400 모드를 지원하는지를 판단할 수 있다.
도 17은 DDR400 모드를 수행할 수 있는 eMMC에 대한 HS_TIMING과 HS_TIMING 값들을 나타낸다.
EXT_CSD 레지스터(380)의 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 레지스터(380)의 HS_TIMING[185] 필드에 DDR 400 비트와 드라이버 스트렝스 값을 설정한다.
도 18은 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도를 나타내고, 도 19는 DDR400 모드를 수행할 수 있는 eMMC에 대한 DDR 400 장치 입력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 1부터 도 19를 참조하면, 튜닝된 클락 신호(Tuned Host CLK)와 지연 조절된 각 데이터 신호(DDAT[7:0]=DAT[7:0] INPUT)의 타이밍이 도 18와 도 19에 도시된 조건들을 만족시킬 때, 지연 조절된 클락 신호(DCLK=CLOCK INPUT)와 지연 조절된 각 데이터 신호(DDAT[7:0]=DAT[7:0] INPUT) 사이의 스큐가 감소한다. 이에 따라 데이터 유효 윈도우가 확보된다.
본 발명의 실시 예에 따른 eMMC 장치는 데이터 송수신 성능을 증가시킬 수 있는 효과가 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1 : eMMC 시스템
10 : 호스트 20 : eMMC
11 : clock control unit 12 : CMD/Resp Unit
13 : DATA In/Out Unit
21 : HOST CMD Decoding Unit 22 : HOST DATA In/Out Control Unit
23 : Host Interface Control Unit
24 : eMMC State Control Unit 25 : Internal DATA Buffer
26 : Memory Interface Unit 27 : Memory
100 : eMMC External Interface Unit
200 : DATA Pattern Control Unit

Claims (31)

  1. 호스트와 통신하는 eMMC(Embeded MuliMediaCard) 장치에 있어서,
    클락신호의 제1 에지 또는 제2 에지 중 어느 하나에 따라 데이터신호를 수신하는 캐치회로; 및
    상기 캐치회로에서 출력된 상기 데이터신호를 모니터링하다 스타트비트를 검출하면 상기 스타트비트 이후의 데이터신호부터 유효 데이터신호를 인에이블하는 스타트비트 검출회로를 포함하는 eMMC 장치.
  2. 제1항에 있어서, 상기 캐치회로는
    상기 클락신호의 상기 제1에지마다 상기 데이터신호를 캐치(catch)하는 제1 캐치회로; 및
    상기 클락신호의 상기 제2에지마다 상기 데이터신호를 캐치하는 제2 캐치회로를 포함하고,
    상기 eMMC 장치는
    상기 호스트와 상기 eMMC 장치 간 채널특성에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로를 인에이블하여 상기 캐치된 데이터신호를 상기 스타트비트 검출회로로 출력하는 eMMC 장치.
  3. 제2항에 있어서, 상기 제1 캐치회로가 인에이블된 경우
    상기 클락신호의 첫번째 사이클의 폴링 에지를 상기 제1에지로 인식하여, 상기 제1에지마다 캐치된 상기 데이터신호를 상기 스타트비트 검출회로로 출력하는 eMMC 장치.
  4. 제2항에 있어서, 상기 제2 캐치회로가 인에이블된 경우
    상기 클락신호의 첫번째 사이클은 더미 사이클로 패스하고 상기 클락신호의 두번째 사이클 이후의 라이징 에지를 상기 제2에지로 인식하여, 상기 제2에지마다 캐치된 상기 데이터신호를 상기 스타트비트 검출회로로 출력하는 eMMC 장치.
  5. 제2항에 있어서, 상기 eMMC 장치는
    상기 호스트가 전송하는 제1클락 신호와 상기 eMMC 장치가 수신하는 제2클락 신호를 비교하여 상기 채널특성을 판단하고, 판단 결과에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로를 인에이블하는 eMMC 장치.
  6. 제5항에 있어서, 상기 eMMC 장치는
    상기 판단 결과에 기초하여 상기 EXT_CSD의 Startbit_Option 필드를 설정하고, 상기 호스트의 SEND_EXT_CSD 명령에 따라 상기 EXT_CSD를 전송하는 eMMC 장치.
  7. 제6항에 있어서, 상기 eMMC 장치는
    상기 호스트의 상기 Startbit_Option 필드를 반영한 SWITCH 명령에 따라 상기 제1 캐치회로 또는 상기 제2 캐치회로 중 어느 하나를 인에이블하는 eMMC 장치.
  8. 제1항에 있어서, 상기 eMMC 장치는
    상기 eMMC 장치가 HS200 모드 이상의 고속모드로 전환된 후, 상기 클락신호의 제1 에지 또는 제2 에지 중 어느 하나에 따라 상기 데이터 신호를 인식하는 eMMC 장치.
  9. 호스트와 통신하는 eMMC(Embeded MultiMediaCard) 장치의 동작방법에 있어서,
    클락신호의 채널 특성을 평가하고, 상기 채널 특성을 EXT_CSD에 기입하는 단계;
    상기 호스트로부터 상기 EXT_CSD를 반영한 SWITCH 명령을 수신하여 선택신호를 생성하는 단계;
    상기 선택신호에 따라 상기 클락신호의 제1에지 또는 제2에지에서 상기 eMMC가 상기 호스트로부터 수신한 데이터신호를 캐치하는 단계; 및
    캐치된 상기 데이터신호를 모니터링하다 스타트비트가 검출되면, 상기 스타트비트 이후의 첫번째 데이터프레임부터 상기 데이터 신호를 유효 데이터로 처리하는 단계를 포함하는 eMMC 장치의 동작방법.
  10. 제9항에 있어서, 상기 캐치하는 단계는
    상기 클락신호 첫번째 사이클 이후의 폴링 에지를 상기 제1에지로 인식하여, 상기 제1에지마다 상기 데이터신호를 캐치하는 eMMC 장치의 동작방법.
  11. 제9항에 있어서, 상기 캐치하는 단계는
    상기 클락신호의 첫번째 사이클은 더미 사이클로 패스하고 상기 클락신호의 두번째 사이클 이후의 라이징 에지를 상기 제2에지로 인식하여, 상기 제2에지마다 상기 데이터신호를 캐치하는 eMMC 장치의 동작방법.
  12. 제9항에 있어서, 상기 데이터신호는
    상기 스타트신호와 상기 첫번째 데이터프레임 사이에 적어도 하나의 더미 데이터프레임을 더 포함하는 eMMC 장치의 동작방법.
  13. 제9항에 있어서, 상기 채널 특성은
    상기 호스트가 전송하는 제1클락 신호와 상기 eMMC 장치가 수신하는 제2 클락 신호를 비교하여 상기 채널특성을 판단하고, 판단 결과에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로를 인에이블하는 eMMC 장치의 동작방법.
  14. 제13항에 있어서, 상기 채널 특성은
    상기 클락신호의 왜곡정도를 반영하여 상기 EXT_CSD의 Startbit_Option 필드에 기입하는 eMMC 장치의 동작방법.
  15. 제9항에 있어서, 상기 선택신호는
    상기 eMMC 장치가 HS200 이상의 고속 모드에서 상기 클락신호의 제1 에지 또는 제2 에지 중 어느 하나에 따라 상기 데이터 신호를 캐치하도록 선택하는 eMMC 장치의 동작방법.
  16. 제9항의 eMMC 장치의 동작방법을 실행하기 위한 코드를 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
  17. 호스트로부터 수신된 클락신호의 제1 에지에 따라 호스트로부터 수신된 데이터를 캐치하는 제1캐치회로;
    상기 클락신호의 제2 에지에 따라 상기 데이터를 캐치하는 제2캐치회로;
    선택신호에 따라 상기 제1 캐치회로 또는 상기 제2캐치회로 중 어느 하나를 인에이블하는 선택회로; 및
    상기 선택회로에서 출력된 상기 데이터를 모니터링하다 스타트비트를 검출하면 상기 스타트비트 이후의 첫번째 데이터프레임부터 유효한 데이터로 인식하는 스타트비트 검출회로를 포함하는 eMMC(Embeded MuliMediaCard) 장치.
  18. 제17항에 있어서, 상기 제1캐치회로는
    상기 클락신호의 첫번째 사이클 이후의 폴링 에지마다 상기 데이터를 캐치하는 eMMC 장치.
  19. 제17항에 있어서, 상기 제2캐치회로는
    상기 클락신호의 첫번째 사이클은 더미 사이클로 패스하고 상기 클락신호의 두번째 사이클 이후의 라이징 에지마다 상기 데이터신호를 캐치하는 eMMC 장치.
  20. 제17항에 있어서, 상기 선택신호는
    상기 eMMC 장치가 HS200 모드 이상의 고속 모드인 경우 상기 호스트가 전송하는 제1 클락 신호와 상기 eMMC 장치가 수신하는 제2 클락 신호를 비교하여 상기 채널특성을 판단하고, 판단 결과에 따라 상기 제1캐치회로 또는 상기 제2캐치회로 중 어느 하나를 선택하는 eMMC 장치.
  21. 제17항에 있어서, 상기 선택신호는
    상기 eMMC 장치가 상기 HS200 모드 미만의 저속 모드인 경우 상기 클락신호가 인에이블되는 동안 상기 데이터 신호를 캐치하도록 선택하는 eMMC 장치.
  22. 제20항에 있어서, 상기 채널특성은
    상기 eMMC 장치가 상기 HS200 모드 이하의 저속모드로 동작할 때 상기 클락신호의 왜곡정도를 반영하여 EXT_CSD의 Startbit_Option 필드에 기입하고,
    상기 호스트로부터 상기 EXT_CSD를 반영한 SWITCH 명령을 수신하여, 상기 제1캐치회로 또는 상기 제2캐치회로 중 어느 하나를 선택하는 eMMC 장치.
  23. (a)호스트로부터 제1클락신호, 튜닝 명령 및 튜닝 블록 데이터 신호를 수신하는 단계;
    (b)상기 튜닝 블록 데이터 신호에 따라 상기 제1 클락신호를 튜닝하여 유효 윈도우를 찾는 단계; 및
    (c)상기 유효 윈도우에 대한 정보를 상기 호스트로 전송하는 단계를 포함하는 eMMC(embedded multimedia card) 장치의 동작방법.
  24. 제23항에 있어서, 상기 eMMC 장치의 동작방법은
    (d) 상기 유효 윈도우 정보에 기초하여 튜닝된 제2 클락신호를 상기 호스트로부터 수신하는 단계; 및
    (e) 상기 (a)단계 내지 상기 (c)단계를 다시 반복하여 상기 제2 클락신호가 상기 유효 윈도우 범위 내인지 확인하는 단계를 더 포함하는 eMMC 장치의 동작방법.
  25. 제23항에 있어서, 상기 (b)단계는
    상기 튜닝 블록 데이터 신호의 위상을 고정시키고, 상기 튜닝 블록 데이터 신호가 변형(corruption)될 때까지 상기 클락신호의 위상을 앞뒤로 쉬프트하여 상기 유효 윈도우를 찾는 eMMC 장치의 동작방법.
  26. 제23항에 있어서, 상기 (c)단계는
    상기 유효 윈도우 정보를 EXT_CSD의 DEVICE_TUN_CLK 필드에 기입하는 것을 특징으로 하는 eMMC 장치의 동작방법.
  27. 호스트와 eMMC(embedded multimedia card) 장치를 포함하는 eMMC 시스템의 동작방법에 있어서,
    상기 호스트가 튜닝 명령을 상기 eMMC 장치로 전송하여, 상기 eMMC 장치로부터 응답을 회신받는 단계;
    상기 호스트가 상기 eMMC 장치로 클락신호와 튜닝 블록 데이터 신호를 전송하는 단계;
    상기 eMMC 장치가 상기 튜닝 블록 데이터 신호를 기준으로 상기 클락신호를 쉬프트하여 유효 윈도우를 찾는 단계;
    상기 eMMC 장치가 상기 유효 윈도우에 대한 정보를 상기 호스트로 전송하는 단계; 및
    상기 호스트는 상기 eMMC 장치로부터 상기 유효 윈도우에 대한 정보를 수신하여, 상기 클락신호의 위상을 조절하는 단계를 포함하는 eMMC 시스템의 동작 방법.
  28. 제27항에 있어서, 상기 유효 윈도우를 찾는 단계는
    상기 eMMC 장치가 상기 튜닝 블록 데이터 신호의 위상을 고정시키고, 상기 튜닝 블록 데이터 신호가 변형(corruption)될 때까지 상기 클락신호의 위상을 앞뒤로 쉬프트하여 상기 유효 윈도우를 찾는 eMMC 시스템의 동작 방법.
  29. 제27항에 있어서, 상기 eMMC 장치는
    상기 유효 윈도우에 대한 정보를 기초로 EXT_CSD의 DEVICE_TUN_CLK 필드를 기입하여 상기 호스트로 전송하는 eMMC 시스템의 동작 방법.
  30. 제29항에 있어서, 상기 호스트는
    상기 eMMC 장치로부터 수신받은 상기 EXT_CSD의 DEVICE_TUN_CLK 필드를 기초로 상기 클락신호의 위상을 조절하는 eMMC 시스템의 동작 방법.
  31. 제27항에 있어서, 상기 동작방법은
    상기 호스트가 상기 조절된 클락신호 및 상기 튜닝 블록 데이터 신호를 상기 eMMC 장치로 전송하는 단계; 및
    상기 eMMC 장치는 상기 튜닝 블록 데이터 신호를 이용하여 상기 조절된 클락신호가 상기 유효 윈도우 범위 내인지 확인하는 단계를 더 포함하는 eMMC 시스템의 동작 방법.
KR1020120102475A 2012-09-14 2012-09-14 임베디드 멀티미디어 카드 디바이스 및 그 동작방법 KR101977663B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120102475A KR101977663B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드 디바이스 및 그 동작방법
US14/026,094 US9134750B2 (en) 2012-09-14 2013-09-13 Embedded multimedia card (eMMC), eMMC system, and methods of operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120102475A KR101977663B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드 디바이스 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20140035770A true KR20140035770A (ko) 2014-03-24
KR101977663B1 KR101977663B1 (ko) 2019-05-13

Family

ID=50275766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120102475A KR101977663B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드 디바이스 및 그 동작방법

Country Status (2)

Country Link
US (1) US9134750B2 (ko)
KR (1) KR101977663B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101978981B1 (ko) * 2012-09-14 2019-05-16 삼성전자주식회사 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법
CN104217768B (zh) * 2014-09-04 2017-12-08 青岛海信电器股份有限公司 一种eMMC内嵌式存储器的检测方法和装置
US20170180796A1 (en) * 2015-12-21 2017-06-22 Le Holdings (Beijing) Co., Ltd. Method for improving compatibility between smart television and embedded multi media card, and electronic device
CN107329923B (zh) * 2017-06-26 2020-12-22 南京鼎越信息科技有限公司 一种调整总线时序的方法、存储介质和终端
US10817363B2 (en) 2018-03-19 2020-10-27 Micron Technology, Inc. Health characteristics of a memory device
CN110289039B (zh) * 2018-03-19 2021-07-27 北京兆易创新科技股份有限公司 一种eMMC的调试方法和装置
US11069420B2 (en) 2019-07-25 2021-07-20 Micron Technology, Inc. In-system test of a memory device
US12067233B2 (en) * 2022-07-14 2024-08-20 Samsung Electronics Co., Ltd. Method and system for tuning a memory device for high-speed transitions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080267301A1 (en) * 2004-06-03 2008-10-30 Silicon Laboratories Inc. Bidirectional multiplexed rf isolator
US7679401B1 (en) * 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US8140778B1 (en) * 2010-09-10 2012-03-20 Spansion Llc Apparatus and method for data capture using a read preamble
US20120098567A1 (en) * 2005-07-15 2012-04-26 Brad Hutchings Runtime loading of configuration data in a configurable ic

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08194664A (ja) 1995-01-19 1996-07-30 Hitachi Ltd データ転送装置
US6691214B1 (en) 2000-08-29 2004-02-10 Micron Technology, Inc. DDR II write data capture calibration
JP4682485B2 (ja) 2001-09-06 2011-05-11 株式会社デンソー メモリ制御装置及びシリアルメモリ
US7076678B2 (en) 2002-02-11 2006-07-11 Micron Technology, Inc. Method and apparatus for data transfer
KR100442372B1 (ko) 2002-10-28 2004-07-30 엘지전자 주식회사 데이터 전송 장치 및 방법
US7036053B2 (en) 2002-12-19 2006-04-25 Intel Corporation Two dimensional data eye centering for source synchronous data transfers
US7739487B2 (en) 2006-01-17 2010-06-15 Nokia Corporation Method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may booted from
TWI432964B (zh) * 2011-08-15 2014-04-01 Phison Electronics Corp 金鑰傳送方法、記憶體控制器與記憶體儲存裝置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080267301A1 (en) * 2004-06-03 2008-10-30 Silicon Laboratories Inc. Bidirectional multiplexed rf isolator
US20120098567A1 (en) * 2005-07-15 2012-04-26 Brad Hutchings Runtime loading of configuration data in a configurable ic
US7679401B1 (en) * 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US8140778B1 (en) * 2010-09-10 2012-03-20 Spansion Llc Apparatus and method for data capture using a read preamble

Also Published As

Publication number Publication date
KR101977663B1 (ko) 2019-05-13
US9134750B2 (en) 2015-09-15
US20140082404A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
KR101977663B1 (ko) 임베디드 멀티미디어 카드 디바이스 및 그 동작방법
US9535451B2 (en) Embedded multimedia card using unidirectional data strobe signal, host for controlling the same, and related methods of operation
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
US10496332B2 (en) Data path training and timing signal compensation for non-volatile memory device interface
WO2019218753A1 (zh) 一种dqs位置调整方法和装置
US9811273B1 (en) System and method for reliable high-speed data transfer in multiple data rate nonvolatile memory
KR101617374B1 (ko) 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정
KR20160075094A (ko) 메모리 컨트롤러와 이를 포함하는 메모리 시스템
US10481676B2 (en) Systems and methods for frequency mode detection and implementation
US9430423B2 (en) Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system
US9576627B2 (en) Semiconductor device, semiconductor system, and method for use in operating the same based on operation mode information
US9348356B2 (en) Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system
US11561923B2 (en) Method for training multichannel data receiver timing
US10847194B2 (en) Input/output circuit and memory device having the same
US8671304B2 (en) Adjustment of write timing based on a training signal
US10783939B1 (en) Training of communication interfaces on printed circuit board
US9741443B2 (en) Memory controller and system including the same
US11996162B2 (en) Synchronous input buffer enable for DFE operation
TW201926353A (zh) 校正記憶體模組之讀/寫資料的時序的方法及其系統
CN112447210B (zh) 连接接口电路、存储器存储装置及信号产生方法
US20240310870A1 (en) Clock control circuit module, memory storage device and clock control method
US20240071443A1 (en) Semiconductor device and semiconductor system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant