KR101978981B1 - 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 - Google Patents
임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 Download PDFInfo
- Publication number
- KR101978981B1 KR101978981B1 KR1020120102466A KR20120102466A KR101978981B1 KR 101978981 B1 KR101978981 B1 KR 101978981B1 KR 1020120102466 A KR1020120102466 A KR 1020120102466A KR 20120102466 A KR20120102466 A KR 20120102466A KR 101978981 B1 KR101978981 B1 KR 101978981B1
- Authority
- KR
- South Korea
- Prior art keywords
- emmc
- host
- clock signal
- command
- ext
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/077—Constructional details, e.g. mounting of circuits in the carrier
- G06K19/0772—Physical layout of the record carrier
- G06K19/07732—Physical layout of the record carrier the record carrier having a housing or construction similar to well-known portable memory devices, such as SD cards, USB or memory sticks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
Abstract
임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))가 개시된다. 상기 eMMC는 호스트로부터 SEND_EXT_CSD 명령(CMD8)을 수신하는 명령 채널, 상기 SEND_EXT_CSD 명령(CMD8)에 응답하여 상기 호스트로 eMMC의 최대 동작 주파수 정보를 전송하는 데이터 채널들, 및 상기 호스트로부터 상기 eMMC의 상기 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호를 수신하는 클락 신호 채널을 포함한다.
Description
본 발명의 개념에 따른 실시 예는 임베디드 멀티미디어 카드((embedded Multimedia Card(eMMC))에 관한 것으로, 특히 클락 스피드 튜닝 과정(clock speed tuning process) 수행 없이 클락 스피드를 변경할 수 있는 eMMC, 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법에 관한 것이다.
멀티미디어 카드(MultiMediaCard(MMC)는 플래시 메모리의 메모리 카드 표준이다.
eMMC는 JEDEC에서 표준으로 정한 내장형 MMC에 대한 표준이다. eMMC 통신은 10개의 신호 버스(10-signal bus)에 기반한다. eMMC은 스마트폰과 같은 이동 통신 장치에 삽입되어 사용될 수 있다.
eMMC 장치는 동작을 위해 호스트로부터 클락 신호를 공급받아야 한다. 상기 호스트는 상기 eMMC 장치의 성능 향상을 위해 클락 스피드를 증가시키고자 할 때, 클락 스피드 튜닝 과정(clock speed tuning process)이 요구될 수 있다. 상기 클락 스피드 튜닝 과정은 상기 호스트의 오버헤드(overhead)를 유발시킬 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 클락 스피드 튜닝 과정 수행 없이 클락 스피드를 변경할 수 있는 eMMC, 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))는 호스트로부터 SEND_EXT_CSD 명령(CMD8)을 수신하는 명령 채널, 상기 SEND_EXT_CSD 명령(CMD8)에 응답하여 상기 호스트로 eMMC의 최대 동작 주파수 정보를 전송하는 데이터 채널들, 및 상기 호스트로부터 상기 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호를 수신하는 클락 신호 채널을 포함한다.
상기 eMMC는 EXT_CSD 레지스터를 더 포함한다.
상기 최대 동작 주파수 정보는 상기 EXT_CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장된다.
본 발명의 실시 예에 따른 호스트는 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))의 최대 동작 주파수 정보를 리드하기 위한 SEND_EXT_CSD 명령(CMD8)을 상기 eMMC로 전송하는 명령 채널, 상기 최대 동작 주파수 정보를 상기 eMMC로부터 수신하는 데이터 채널들, 및 상기 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호를 상기 eMMC로 전송하는 클락 신호 채널을 포함한다.
상기 호스트는 상기 최대 동작 주파수 정보에 따라 상기 변경된 주파수를 갖는 클락 신호를 생성하는 클락 생성기를 더 포함할 수 있다.
본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))와 호스트를 포함하는 eMMC 시스템의 동작 방법은 상기 호스트는 상기 eMMC의 최대 동작 주파수 정보를 리드하기 위한 SEND_EXT_CSD 명령(CMD8)을 상기 eMMC로 전송하는 단계, 및 상기 SEND_EXT_CSD 명령(CMD8)에 응답하여 상기 eMMC는 최대 동작 주파수 정보를 상기 호스트로 전송하는 단계를 포함한다.
상기 최대 동작 주파수 정보는 상기 eMMC의 EXT_CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장된다.
상기 eMMC 시스템의 동작 방법은 상기 호스트는 상기 최대 동작 주파수 정보에 따라 클락 신호의 주파수를 변경하는 단계, 및 상기 호스트는 상기 eMMC로 상기 변경된 주파수를 갖는 클락 신호를 전송하는 단계를 더 포함할 수 있다.
상기 변경된 주파수를 갖는 클락 신호는 SEND_TUNIG_BLOCK 명령(CMD21)없이 생성된다.
상기 eMMC 시스템의 동작 방법은 상기 eMMC를 다른 버스 스피드 모드로 변경하기 위해 SWITCH 명령(CMD6)을 상기 eMMC로 전송하는 단계를 더 포함한다.
상기 다른 버스 스피드 모드는 HS200 모드 또는 DDR 400 모드이다.
본 발명의 실시 예에 따른 eMMC를 제어하는 호스트는 최대 동작 주파수 정보를 리드하여 클락 스피드 튜닝 과정 수행 없이 클락 스피드를 변경함으로써 호스트의 오버헤드를 최소화할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card)와 호스트를 포함하는 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 호스트에서 출력되는 명령들의 테이블을 나타낸다.
도 3은 도 1에 도시된 호스트의 리드 동작을 설명하기 위한 타이밍도를 나타낸다.
도 4는 도 1에 도시된 eMMC 장치의 상태 다이어그램을 나타낸다.
도 5는 본 발명의 다른 실시 예에 따른 임베디드 멀티미디어 카드와 호스트를 포함하는 시스템의 블록도를 나타낸다.
도 6은 본 발명의 다른 실시 예에 따른 장치 타입 필드의 정의를 나타낸다.
도 7은 본 발명의 다른 실시 예에 따른 HS_TIMING과 HS_TIMING 값들을 나타낸다.
도 8은 본 발명의 다른 실시 예에 따른 DDR 400 장치 입력 타이밍 도를 나타낸다.
도 9는 도 8에 도시된 DDR 400 장치 입력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 10은 본 발명의 다른 실시 예에 따른 DDR 400 장치 출력 타이밍 도를 나타낸다.
도 11은 도 10에 도시된 DDR 400 장치 출력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 12는 본 발명의 실시 예에 따라, Extended CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장되고 DDR 400 모드에서의 클락 신호의 최대 동작 주파수에 대한 정보를 나타낸다.
도 13은 도 1 또는 도 5에 도시된 eMMC 장치의 동작 방법을 설명하기 위한 흐름도를 나타낸다.
도 14는 도 1 또는 도 5에 도시된 호스트의 동작 방법을 설명하기 위한 흐름도를 나타낸다.
도 15는 도 1 또는 도 5에 도시된 호스트와 eMMC 장치 사이의 신호 흐름도를 나타낸다.
도 1은 본 발명의 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card)와 호스트를 포함하는 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 호스트에서 출력되는 명령들의 테이블을 나타낸다.
도 3은 도 1에 도시된 호스트의 리드 동작을 설명하기 위한 타이밍도를 나타낸다.
도 4는 도 1에 도시된 eMMC 장치의 상태 다이어그램을 나타낸다.
도 5는 본 발명의 다른 실시 예에 따른 임베디드 멀티미디어 카드와 호스트를 포함하는 시스템의 블록도를 나타낸다.
도 6은 본 발명의 다른 실시 예에 따른 장치 타입 필드의 정의를 나타낸다.
도 7은 본 발명의 다른 실시 예에 따른 HS_TIMING과 HS_TIMING 값들을 나타낸다.
도 8은 본 발명의 다른 실시 예에 따른 DDR 400 장치 입력 타이밍 도를 나타낸다.
도 9는 도 8에 도시된 DDR 400 장치 입력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 10은 본 발명의 다른 실시 예에 따른 DDR 400 장치 출력 타이밍 도를 나타낸다.
도 11은 도 10에 도시된 DDR 400 장치 출력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 12는 본 발명의 실시 예에 따라, Extended CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장되고 DDR 400 모드에서의 클락 신호의 최대 동작 주파수에 대한 정보를 나타낸다.
도 13은 도 1 또는 도 5에 도시된 eMMC 장치의 동작 방법을 설명하기 위한 흐름도를 나타낸다.
도 14는 도 1 또는 도 5에 도시된 호스트의 동작 방법을 설명하기 위한 흐름도를 나타낸다.
도 15는 도 1 또는 도 5에 도시된 호스트와 eMMC 장치 사이의 신호 흐름도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제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 패드, 버스, 라인, 드라이버(차동 증폭기를 포함), 수신기(차동 증폭기를 포함), 또는 이들 중에서 적어도 두 개의 조합을 의미할 수 있다.
도 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)와 호스트 컨트롤러(220)를 포함한다.
클락 생성기(210)는 호스트(200)와 eMMC 장치(300)에서 사용될 클락 신호(CLK)를 생성한다. eMMC 장치(300)는 호스트(200)로부터 클락 신호(CLK)를 공급받아야 한다. 클락 생성기(210)는 위상 동기 루프(phase locked loop(PLL))로 구현될 수 있다.
eMMC 장치(300)는 eMMC 장치(300)의 버스 스피드 모드(bus speed modes)에 따라 서로 다른 주파수를 가지는 클락 신호(CLK)를 전송받아야 한다. eMMC 장치(300)의 버스 스피드 모드는 표 1과 같이 나타낼 수 있다.
Mode Name | Data Rate | IO Voltage | Bus Width | Frequency | Max Data Transfer |
Backwards Compatibility with legacy MMC card | Single | 3/1.8/1.2V | 1, 4, 8 | 0-26MHz | 26MB/s |
High Speed SDR | Single | 3/1.8/1.2V | 4, 8 | 0-52MHz | 52MB/s |
High Speed DDR | Dual | 3/1.8/1.2V | 4, 8 | 0-52MHz | 104MB/s |
HS200 | Single | 1.8/1.2V | 4, 8 | 0-200MHz | 200MB/s |
예컨대, eMMC 장치(300)는 HS200모드에서 동작하기 위해 200MHz까지 주파수를 가지는 클락 신호(CLK)를 호스트(200)로부터 공급받아야 한다. eMMC 장치(300)가 HS200모드에서 동작하기 위해 클락 스피드 튜닝 과정이 요구될 수 있다. 상기 클락 스피드 튜닝 과정은 호스트(200)가 Send Tuning Block 명령(CMD21)을 eMMC 장치(300)로 전송함으로써 수행된다. 상기 클락 스피드 튜닝 과정은 호스트(200)의 오버헤드(overhead)를 유발시킬 수 있다.
호스트 컨트롤러(220)는 입력 회로(230), 출력 회로(240), 및 호스트 입출력 블록(250)을 포함한다.
데이터 리드 동작 동안, 입력 회로(230)는 플래시 메모리(370)로부터 출력된 리드 데이터를 호스트 입출력 블록(250)으로부터 수신한다. 예컨대, 입력 회로(230)는 EXT_CSD 레지스터(380)에 저장된 eMMC 장치(300)의 최대 동작 주파수 정보와 관련된 최대 동작 주파수 제어 신호(Fmax)를 호스트 입출력 블록(250)으로부터 수신한다. 입력 회로(230)는 수신된 최대 동작 주파수 정보와 관련된 최대 동작 주파수 제어 신호(Fmax)를 클락 생성기(210)로 전송한다. 클락 생성기(210)는 최대 동작 주파수 정보에 따라 결정되는 주파수를 갖는 클락 신호(CLK)를 생성한다.
데이터 라이트 동작 동안, 클락 신호(CLK)에 응답하여 출력 회로(240)는 eMMC 장치(300)의 플래시 메모리(370)에 라이트될 라이트 데이터를 호스트 입출력 블록(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)의 최대 동작 주파수 정보를 저장한다. 예컨대, 최대 동작 주파수 정보는 EXT_CSD 레지스터(380)의 VENDOR_SPECIFIC_FIELD 필드에 저장될 수 있다.
플래시 메모리(370)가 NAND 플래시 메모리로 구현될 때, 플래시 입출력 블록(340)은 NAND 플래시 입출력 블록으로 구현될 수 있다.
도 2는 도 1에 도시된 호스트에서 출력되는 명령들의 테이블을 나타낸다.
도 1과 도 2를 참조하면, 호스트(200)는 명령 버스(102)를 통해 명령(CMD)을 eMMC 장치(300)로 전송한다.
명령(CMD)은 48 비트들을 가질 수 있다. 명령 형식(command format)은 표 2와 같이 나타낼 수 있다.
Description | Start Bit | Transmission Bit | Command Index | Argument | CRC7 | End Bit |
Bit position | 47 | 46 | [45:40] | [39:8] | [7:1] | 0 |
Width(bits) | 1 | 1 | 6 | 32 | 7 | 1 |
Value | "0" | "1" | x | x | x | "1" |
명령(CMD)은 항상 시작 비트(항상 '0')와 시작한다. 전송의 방향을 나타내는 전송 비트가 뒤따른다. 다음 6비트들은 명령 인덱스를 나타내고, 상기 명령 인덱스의 값은 이진 코드 숫자(binary coded number;(0과 63 사이))로서 해석(interpreted)된다. 어떤 명령들은 32비트들로 코딩(coded)될 수 있는 알규먼트(argument (예컨대, 주소))를 필요로 한다. 표 2에서 'x'는 명령에 의존적인 변수(variable)를 나타낸다. 모든 명령들은 CRC(Cyclic redundancy codes)에 의해 보호된다. 각 명령은 종료 비트(end bit)에 의해 종료(terminate)된다.
호스트(200)는 eMMC 장치(300)를 대기 상태(stby)에서 전달 상태(trans)로 변경하기 위해 SELECT 명령(CMD7)을 eMMC 장치(300)로 전송한다.
SELECT 명령(CMD7)은 주소 명령(address command; ac)이다. SELECT 명령(CMD7)의 아규먼트 중 [31:16]은 RCA(Relative Device Address) 레지스터로 할당되며, [15:0]은 스터프 비트들(stuff bits)로 할당된다. 즉, [15:0]은 0 비트들로 채워진다.
SELECT 명령(CMD7)에 응답하여 eMMC 장치(300)는 제1응답(R1)을 호스트(200)로 전송한다. 제1응답(R1)은 48비트들을 가질 수 있다. 제1응답(R1) 형식은 표 3과 같이 나타낼 수 있다.
Description | Start Bit | Transmitter bit | CONTENT | CRC | End bit |
Bit position | 47 | 46 | [45:8] | [7:1] | 0 |
Width(bits) | 1 | 1 | 38 | 7 | 1 |
Value | "0" | "0" | x | x | "1" |
제1응답(R1)은 항상 시작 비트(항상 '0')와 시작한다. 전송의 방향을 나타내는 전송 비트가 뒤따른다. 다음 38비트들은 내용을 나타낸다. 예컨대, 상기 38 비트들은 상태 정보를 나타낼 수 있다. 표 3에서 'x'는 제1명령(R1)에 의존적인 변수(variable)를 나타낸다. 제1응답(R1)은 CRC에 의해 보호된다. 제1응답(R1)은 종료 비트(end bit)에 의해 종료(terminate)된다.
eMMC 장치(300)의 최대 동작 주파수 정보를 eMMC 장치(300)로부터 수신하기 위해 호스트(200)는 SEND_EXT_CSD 명령(CMD8)을 eMMC 장치(300)로 전송한다.
SEND_EXT_CSD 명령(CMD8)은 주소 데이터 전송 명령(address data transfer command; adtc)이다. SEND_EXT_CSD 명령(CMD8)의 아규먼트 중 [31:0]은 스터프 비트들(stuff bits)로 할당된다. 즉, [31:0]은 0비트들로 채워진다. eMMC 장치(300)는 SEND_EXT_CSD 명령(CMD8)에 응답하여 제1응답(R1)을 호스트(200)로 전송하고, EXT_CSD 레지스터(380)에 포함된 최대 동작 주파수 정보를 호스트(200)로 전송한다. 최대 동작 주파수는 eMMC 장치(300)에서 동작 가능한 최대 주파수를 의미한다. 최대 동작 주파수 정보는 1바이트일 수 있다. EXT_CSD 레지스터(380)는 바이트들을 저장할 수 있다. 상기 바이트들 각각은 장치 특성(Device properties)과 모드들을 정의할 수 있다. 상기 바이트들의 수는 512일 수 있다. 최대 동작 주파수 정보는 상기 바이트들 중 어느 하나에 저장될 수 있다. EXT_CSD 레지스터(380)는 플래시 메모리(370)에 저장될 수 있다.
호스트(200)는 SWITCH 명령(CMD6)을 eMMC 장치(300)로 전송한다. SWITCH 명령(CMD6)은 주소 명령(address command; ac)이다. SWITCH 명령(CMD6)에 응답하여 eMMC 장치(300)는 제2응답(R1b)을 호스트(200)로 전송한다. 제2응답(R1b)은 48비트들을 가질 수 있다. 제2응답(R1b) 형식은 제1응답(R1)의 형식과 같다.
EXT_CSD 레지스터(380)의 HS_TIMING[185] 필드는 표 4와 같이 나타낼 수 있다.
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
Selected Driver Strength | Timing Interface |
상기 타이밍 인터페이스(timing interface) 필드는 [0:3]으로 나타낼 수 있다. 호스트(200)는 다른 버스 스피드 모드(예컨대, HS200 모드)를 선택하기 위해 SWITCH 명령(CMD6)을 이용하여 상기 타이밍 인터페이스 필드의 비트 값을 2로 설정할 수 있다. 즉, SWITCH 명령(CMD6)의 알규먼트(argument)는 0x03B9_0100일 수 있다.
상기 선택된 드라이버 스트렝스(selected driver strength) 필드는 [4:7]으로 나타낼 수 있다. 상기 선택된 드라이버 스트렝스(selected driver strength) 필드에 대해서는 JESD84-B451에 자세히 설명되므로, 이에 대한 자세한 설명은 생략한다.
호스트(200)는 eMMC 장치(300)가 높은 주파수(예컨대, 200MHz)에서 동작할 수 있도록 높은 주파수를 가지는 클락 신호(CLK)를 eMMC 장치(300)로 공급하여야 한다.
호스트(200)는 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호(CLK)를 생성하고, eMMC 장치(300)로 전송한다. 예컨대, eMMC 장치(300)의 최대 동작 주파수가 200MHz일 때, 호스트(200)는 200MHz를 가지는 클락 신호(CLK)를 생성하고, eMMC 장치(300)로 전송한다. 호스트(200)는 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호(CLK)를 eMMC 장치(300)로 전송함으로서 SEND_TUNING_BLOCK 명령(CMD21)에 의해 수행되는 주파수 튜닝 동작을 생략할 수 있다. 즉, 호스트(200)의 오버헤드가 최소화될 수 있다.
도 3은 도 1에 도시된 호스트의 리드 동작을 설명하기 위한 타이밍도를 나타낸다.
도 1 내지 도 3을 참조하면, 호스트(200)는 양방향 명령 버스(102)를 통해 SEND_EXT_CSD 명령(CMD8)을 eMMC(300)로 전송한다. eMMC(300)는 SEND_EXT_CSD 명령에 응답하여 응답(R1)을 호스트(200)로 전송하고 나서, 양방향 데이터 버스(103)를 통해 EXT_CSD 레지스터(380)에 저장된 최대 동작 주파수 정보를 데이터 블록으로서 호스트(200)에 전송한다.
실시 예에 따라 eMMC(300)는 양방향 명령 버스(102)를 통해 최대 동작 주파수 정보를 응답으로서 호스트(200)로 전달할 수 있다.
도 4는 도 1에 도시된 eMMC 장치의 상태 다이어그램을 나타낸다.
도 1 내지 도 4를 참조하면, eMMC 장치(300)는 SELECT 명령(CMD7)에 응답하여, 대기 상태(stby)에서 전달 상태(trans)로 변환한다.
eMMC 장치(300)가 호스트(200)로부터 SEND_EXT_CSD 명령(CMD8)을 수신할 때, eMMC 장치(300)는 전달 상태(trans)이다. eMMC 장치(300)는 SEND_EXT_CSD 명령(CMD8)에 응답하여 전달 상태(trans)에서 데이터 전송 상태(data)로 변환하고, EXT_CSD 레지스터(380)에 포함된 eMMC 장치(300)의 최대 동작 주파수 정보를 호스트(200)로 전송한다. 호스트(200)는 전송을 멈추기 위해 명령(CMD12)을 eMMC 장치(300)로 전송할 때, eMMC 장치(300)는 데이터 전송 상태(data)에서 전달 상태(trans)로 변환한다.
호스트(200)는 eMMC 장치(300)를 다른 버스 스피드 모드(예컨대, HS200 모드)로 스위치하기 위해 SWITCH 명령(CMD6)을 eMMC 장치(300)로 전송한다. eMMC 장치(300)는 SWITCH 명령(CMD6)에 응답하여 전달 상태(trans)에서 프로그래밍 상태(prg)로 변환하고, 동작 완료 후 전달 상태(trans)로 다시 변환한다.
eMMC 장치(300)가 전달 상태(trans)일 때, 호스트(200)는 최대 동작 주파수 정보에 따라 클락 신호(CLK)의 주파수를 변환하고, 변환된 주파수를 갖는 클락 신호(CLK)를 eMMC 장치(300)로 전송한다.
도 5는 본 발명의 다른 실시 예에 따른 임베디드 멀티미디어 카드와 호스트를 포함하는 시스템의 블록도를 나타낸다.
도 5에서는 DDR 400 모드를 새롭게 정의하고, 새롭게 정의된 DDR 400 모드를 지원할 수 있는 호스트 또는 임베디드 멀티미디어 카드(eMMC)의 구조와 동작을 상세히 설명한다.
여기서, DDR 400 모드는 호스트 또는 장치의 입출력 동작 전압(VCCQ)이 1.2V 또는 1.8V일 때, 200MHz DDR(dual date rate)로 데이터를 처리할 수 있는 동작 모드를 의미한다.
도 5를 참조하면, eMMC 시스템(100A)은 호스트(200A)와 장치(300A), 예컨대 eMMC 장치(300A)를 포함한다. eMMC 시스템(100A)의 구조와 기능은 DDR 400 모드를 지원한다는 점을 제외하고는 도 1에 도시된 eMMC 시스템(100)의 구조와 기능은 유사하다.
호스트(200A)는 클락 생성기(210A), 처리 회로(212), 상태 제어 유닛(220A), 및 호스트 컨트롤러(230A)를 포함할 수 있다.
클락 생성기(210A)는 최대 동작 주파수 제어 신호(Fmax)에 기초하여 호스트 (200A)와 eMMC 장치(300A)에서 사용될 클락 신호(CLK)를 생성한다.
동작 모드, 명령(CMD), 및/또는 응답(RES)에 따라, 처리 회로(212)는 다양한 제어 신호들(DEC, Fmax, HSE, CTR, VEN, 및 VREF_ON) 중에서 적어도 하나를 생성할 수 있다.
처리 회로(212)는 명령(CMD)의 생성, 응답(RES)의 해석, Extended(EXT)_CSD 레지스터(371)에 저장된 데이터, 및/또는 데이터 처리 동작을 제어할 수 있는 하드웨어 또는 소프트웨어(또는 펌웨어)가 내장된 하드웨어를 의미할 수 있다. 처리 회로(212)는 각 구성 요소(component; 210A, 220A, 및 230A)의 동작을 제어할 수 있다.
여기서, DEC는 호스트 차동 클락 인에이블 신호이고, HSE는 제2선택 신호이고, CTR은 상태 제어 신호이고, VEN은 호스트 차동 증폭 인에이블 신호이고, VREF_ON은 호스트 기준 전압 인에이블 신호이다.
상태 제어 유닛(220A)은 상태 제어 신호(CTR)에 응답하여 제1선택 신호(SEL)를 생성할 수 있다.
호스트 컨트롤러(230A)는 데이터 입출력 회로(240A)와 호스트 입출력 블록 (250A)을 포함한다.
데이터 입출력 회로(240A)는 라이트 래치 회로(241), 리드 래치 회로(243), 및 제1선택 회로(245)를 포함한다.
라이트 래치 회로(241)는 제1라이트 래치들(241-O)과 제2라이트 래치들(241-E)을 포함한다.
클락 신호(CLK)의 상승 에지에 응답하여, 제1라이트 래치들(241-O)은 eMMC 장치(300A)에 라이트될 라이트 데이터 중에서 홀수 번째 데이터를 래치한다.
클락 신호(CLK)의 하강 에지에 응답하여, 제2라이트 래치들(241-E)은 상기 라이트 데이터 중에서 짝수 번째 데이터를 래치한다.
리드 래치 회로(243)는 제1리드 래치들(243-O)과 제2리드 래치들(243-E)을 포함한다.
제1선택 회로(245)의 출력 신호(CLK 또는 RCLK)의 상승 에지에 응답하여, 제1리드 래치들(243-O)은 eMMC 장치(300A)로부터 출력된 리드 데이터 중에서 홀수 번째 데이터를 래치한다.
제1선택 회로(245)의 출력 신호(CLK 또는 RCLK)의 하강 에지에 응답하여, 제2리드 래치들(243-E)은 상기 리드 데이터 중에서 짝수 번째 데이터를 래치한다.
예컨대, 제1선택 회로(245)는 멀티플렉서(multiplexer)로 구현될 수 있다. 이때, 상기 멀티플렉서는 제1레벨, 예컨대 로우 레벨을 갖는 제1선택 신호(SEL)에 응답하여 클락 신호(CLK)를 리드 래치 회로(243)로 전송하고, 상기 멀티플렉서는 제2레벨, 예컨대 하이 레벨을 갖는 제1선택 신호(SEL)에 응답하여 리턴 클락 신호 (RCLK)를 리드 래치 회로(243)로 전송한다.
도 5의 호스트(200A)는 상태 제어 유닛(220A)과 제1선택 회로 (245)를 포함하는 것으로 도시되어 있으나, 실시 예에 따라 호스트(200A)는 상태 제어 유닛(220A)과 제1선택 회로(245)를 포함하지 않을 수 있다. 이때, 리턴 클락 신호(RCLK)는 직접 리드 래치 회로(243)로 입력될 수 있다.
즉, 리턴 클락 신호(RCLK)의 상승 에지에 응답하여 제1리드 래치들(243-O)은 eMMC 장치(300A)로부터 출력된 리드 데이터 중에서 홀수 번째 데이터를 래치하고, 리턴 클락 신호(RCLK)의 하강 에지에 응답하여 제2리드 래치들(243-E)은 상기 리드 데이터 중에서 짝수 번째 데이터를 래치한다.
도 5에 도시된 eMMC 버스는 종래의 10개의 버스(101A, 102A, 및 103A) 이외에 상보 클락 신호(nCLK)를 eMMC 장치(300A)로 전송할 수 있는 단방향 (unidirectional) 상보 클락 버스(101-1), 리턴 클락 신호(RCLK)를 호스트(200A)로 전송할 수 있는 단방향 리턴 클락 버스(104), 및 상보 리턴 클락 신호(nRCLK)를 호스트(200A)로 전송할 수 있는 상보 리턴 클락 버스(104-1)를 더 포함한다.
클락 버스(101A)는 클락 신호(CLK)를 전송하고, 양방향(bidirectional) 명령 버스(102A)는 명령(CMD)을 eMMC 장치(300A)로 전송하고 명령(CMD)에 대한 응답(RES)을 호스트(200A)로 전송한다. 양방향 데이터 버스(103A)는 데이터 라이트 동작을 위한 라이트 데이터(DAT[7:0])를 eMMC 장치(300A)로 전송하거나 데이터 리드 동작을 위한 리드 데이터(DAT[7:0])를 호스트(200A)로 전송할 수 있다.
즉, eMMC 시스템(100A)은, 데이터 리드 동작의 전송 속도를 높이고 전체 데이터의 처리량(throughput)을 증가시키기 위해, 리턴 클락 신호(RCLK)와 상보 리턴 클락 신호(nRCLK) 중에서 적어도 하나를 사용할 수 있다.
호스트(200A)는 리셋 라인을 통하여 하드웨어 리셋 신호(RST_n)를 eMMC 장치 (300A)로 전송한다.
호스트(200A)는 각 입출력 블록(250A와 320A)에서 사용될 입출력 동작 전압들(VCCQ와 VSSQ)을 생성하고, 입출력 동작 전압들(VCCQ와 VSSQ)을 파워 라인들을 통하여 eMMC 장치(300A)로 전송한다. 이때, 각 입출력 블록(250A와 320A)에 구현된 드라이버(실시 예에 따라, 차동 증폭기를 포함)와 수신기(실시 예에 따라, 차동 증폭기를 포함)는 입출력 동작 전압들(VCCQ와 VSSQ)을 동작 전압들로서 사용한다.
eMMC 시스템(100A)은 입출력 동작 전압들(VCCQ와 VSSQ)을 이용하여 생성된 기준 전압(VREF)을 eMMC 장치(300A)로 전송할 수 있는 기준 전압 라인(105)을 더 포함한다.
호스트(200A)는 플래시 메모리(370A)로 공급될 코어 동작 전압들(VCC와 VSS)을 생성하고, 코어 동작 전압들(VCC와 VSS)을 코어 파워 라인들을 통하여 eMMC 장치(300A)로 전송한다. 이때, VSSQ와 VSS는 접지 전압이다.
eMMC 장치(300A)는 장치 컨트롤러, 예컨대 eMMC 컨트롤러(310A)와 플래시 메모리(370A)를 포함한다.
eMMC 컨트롤러(310A)는 호스트(200A)와 플래시 메모리(370A) 사이에서 데이터 통신을 제어한다.
eMMC 컨트롤러(310A)는 eMMC 입출력 블록(320A), eMMC 호스트 인터페이스 (330A), CPU(340A), 메모리(350A), 및 플래시 인터페이스(360A)를 포함한다.
eMMC 호스트 인터페이스(330A)는 eMMC 입출력 블록(320A)을 통하여 클락 신호(CLK)와 명령(CMD)을 수신하고, 수신된 클락 신호(CLK)에 기초하여 리턴 클락 신호 (RCLK)를 생성하고 생성된 리턴 클락 신호(RCLK)를 eMMC 입출력 블록(320A)으로 전송하고, 수신된 명령(CMD)을 해석하고 해석의 결과에 따라 응답(RES)을 생성하고 생성된 응답(RES)과 응답(RES)에 기초하여 생성된 데이터를 eMMC 입출력 블록 (320A)으로 전송한다.
CPU(340A)의 동작과 메모리(350A)의 동작은 도 1에 도시된 CPU(335)의 동작과 메모리(350)의 동작과 유사하다.
플래시 메모리(370A)는 장치 특성들(device properties)과 선택된 모드들을 저장할 수 있는 EXT_CSD 레지스터(371)를 포함한다.
플래시 메모리(370A)는 EXT_CSD 레지스터(371)를 포함할 수 있다. EXT_CSD 레지스터(371)는 eMMC 장치(300A)의 최대 동작 주파수 정보를 저장한다. 예컨대, 최대 동작 주파수 정보는 EXT_CSD 레지스터(380A)의 VENDOR_SPECIFIC_FIELD 필드에 저장될 수 있다.
호스트(200A)는 SEND_EXT_CSD 명령(=CMD8)을 이슈잉하여(by issuing) EXT_CSD 레지스터(371)를 읽을 수 있다. 예컨대, 호스트(200A)는 SEND_EXT_CSD 명령(=CMD8)을 이슈잉하여 상기 최대 동작 주파수 정보를 리드할 수 있다. 클락 생성기(210A)는 최대 동작 주파수 정보에 따라 호스트(200A)와 eMMC 장치(300A)에서 사용될 클락 신호(CLK)를 생성한다. eMMC 장치(300A)는 512 바이트 길이(bytes long)의 EXT_CSD 레지스터(371)를 데이터 블록으로서 전송한다.
도 6은 본 발명의 실시 예에 따른 장치 타입 필드의 정의를 나타낸다.
도 6을 참조하면, EXT_CSD 레지스터의 DEVICE_TYPE[196] 필드는 eMMC 장치 (300A)의 타입(type)을 정의한다. JESD84-B451에서는 DEVICE_TYPE[196] 필드의 각 비트(Bit 0~Bit 5)만이 정의되었으나, 본 발명의 실시 예에 따른 DEVICE_TYPE[196] 필드에는 eMMC 장치(300A)가 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 레지스터의 DEVICE_TYPE[196] 필드는 호스트(200A)로부터 전송된 SEND_EXT_CSD 명령(CMD8)에 따라 eMMC(300A)로부터 호스트(200A)로 전송된다. 따라서, 호스트(200A)는 EXT_CSD 레지스터의 DEVICE_TYPE[196] 필드에 저장된 각 비트(Bit 6 또는 Bit 7)에 기초하여 eMMC 장치(300A)가 DDR 400 모드를 지원하는지를 판단할 수 있다.
도 7은 본 발명의 실시 예에 따른 HS_TIMING과 HS_TIMING 값들을 나타낸다.
EXT_CSD 레지스터의 HS_TIMING[185] 필드는 타이밍 인터페이스(Timing Interface)와 드라이버 스트렝스(Driver Strength)를 선택하기 위해 호스트(200A)에 의해 사용된다. 본 발명의 실시 예에 따라 HS_TIMING[185] 필드에는 "0x3"가 추가된다.
만일, 호스트(200A)가 HS_TIMING[185] 필드를 "1"로 설정하면, eMMC 장치 (300A)는 eMMC 장치(300A)의 타이밍을 고속 인터페이스 타이밍(high speed interface timing)으로 변경한다. 만일, 호스트(200A)가 HS_TIMING[185] 필드를 "2"로 설정하면, eMMC 장치 (300A)는 eMMC 장치(300A)의 타이밍을 HS 200 인터페이스 타이밍으로 변경한다.
만일, 호스트(200A)가 HS_TIMING[185] 필드를 "3"으로 설정하면, eMMC 장치 (300A)는 eMMC 장치(300A)의 타이밍을 DDR 400 인터페이스 타이밍으로 변경한다. DDR 400 인터페이스 타이밍의 일 실시 예는 도 8부터 도 11에 도시된 바와 같다.
즉, 호스트(200A)는 SWITCH 명령(CMD6)을 이슈잉(issuing)하여 EXT_CSD 레지스터의 HS_TIMING[185] 필드에 DDR 400 비트와 드라이버 스트렝스 값을 설정한다.
도 8은 본 발명의 실시 예에 따른 DDR 400 장치 입력 타이밍(device input timing) 도를 나타내고, 도 9는 도 8에 도시된 DDR 400 장치 입력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 10은 본 발명의 실시 예에 따른 DDR 400 장치 출력 타이밍 도를 나타내고, 도 11은 도 10에 도시된 DDR 400 장치 출력 타이밍 도에 도시된 파라미터들을 포함하는 테이블을 나타낸다.
도 5 부터 도 11을 참조하면, DDR 400 모드에서 eMMC 장치(300A)를 기준으로 볼 때, 리턴 클락 신호(RCLK)의 에지와 출력 데이터(DAT[7:0] OUTPUT)의 에지는 서로 동기된다.
eMMC 호스트 인터페이스(330A)는 클락 신호(CLK)를 일정시간 지연시켜 출력 데이터(DAT[7:0] OUTPUT)와 동기된 리턴 클락 신호(RCLK)를 생성한다. 따라서, eMMC 장치(300A)는 출력 데이터(DAT[7:0] OUTPUT)와 리턴 클락 신호 (RCLK) 사이의 스큐(skew)를 감소시킬 수 있으므로, 데이터 유효 윈도우(data valid window)는 확보될 수 있다.
tRQ와 tRQH는 호스트(200A)로 출력되는 병렬 데이터(DAT[7:0])에 대한 AC 타이밍 파라미터(AC timing parameter)로써 출력 데이터(DAT[7:0] OUTPUT)와 리턴 클락 신호(RCLK) 사이의 스큐(skew)를 정의한다.
tRQ는 출력 홀드 스큐(output hold skew)를 의미하고, tRQH는 출력 홀드 시간(output hold time)을 의미한다.
tRQ는 리턴 클락 신호(RCLK)의 에지가 발생하기까지 데이터를 유지해야 하는 제약 사항이고, tRQH는 리턴 클락 신호(RCLK)의 에지가 발생한 후 데이터를 언제까지 정상 데이터로 만들어줘야 하는 제약 사항이다.
도 12는 본 발명의 실시 예에 따라, Extended CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장되고 DDR 400 모드에서의 클락 신호의 최대 동작 주파수에 대한 정보를 나타낸다.
도 1과 도 12를 참조하면, EXT_CSD 레지스터(371)의 VENDOR_SPECIFIC_FIELD 필드, 예컨대 CSD 슬라이스(CSD slice)[122]에는 DDR 400 모드에서 eMMC 장치(300A)가 지원할 수 있는 클락 신호(CLK)의 최대 동작 주파수에 대한 정보가 저장된다.
예컨대, 호스트(200A)는 클락 신호(CLK)의 최대 동작 주파수에 대한 정보를 요구하는 명령(CMD)을 eMMC 장치(300A)로 전송하고, eMMC 장치(300A)는 EXT_CSD 레지스터(371)의 VENDOR_SPECIFIC_FIELD 필드, CSD 슬라이스[122]에 저장된 정보를 호스트(200A)로 전송한다.
따라서, 호스트(200A)의 처리 장치(212)는 CSD 슬라이스[122]에 저장된 정보를 해석하고 해석의 결과에 따라 최대 동작 주파수 제어 신호(Fmax)를 클락 생성기 (210)로 전송한다. 따라서, 클락 생성기(210)는 도 12에 도시된 각 타입(Type 0~Type 4)에 대응되는 최대 동작 주파수(52MHz, 100MHz, 133MHz, 166MHz, 또는 200MHz)를 갖는 클락 신호(CLK)를 생성하고, 생성된 클락 신호(CLK)를 eMMC 장치 (300A)로 전송한다.
도 13은 도 1 또는 도 5에 도시된 eMMC 장치의 동작 방법을 설명하기 위한 흐름도를 나타낸다.
도 1 내지 도 13을 참조하면, eMMC 장치(300 또는 300A)는 호스트(200 또는 200A)로부터 전송받은 SELECT 명령(CMD7)에 응답하여 대기 상태(stby)에서 전달 상태(trans)로 변환한다(S10).
eMMC 장치(300 또는 300A)는 SEND_EXT_CSD 명령(CMD8)에 응답하여 EXT_CSD 레지스터(380 또는 371)를 데이터 블록으로서 호스트(200 또는 200A)로 전송한다(S20).
EXT_CSD 레지스터(380 또는 371)는 eMMC 장치(300 또는 300A)의 최대 동작 주파수 정보를 포함하며, 따라서 최대 동작 주파수 정보가 호스트(200 또는 200A)로 전송된다.
eMMC 장치(300 또는 300A)는 SWITCH 명령(CMD6)에 응답하여 인터페이스 타이밍(예컨대, HS200 모드)으로 변화시킬 수 있다(S30).
eMMC 장치(300 또는 300A)는 호스트(200 또는 200A)로부터 변경된 주파수를 갖는 클락 신호(CLK)를 수신한다(S40).
도 14는 도 1 또는 도 5에 도시된 호스트의 동작 방법을 설명하기 위한 흐름도를 나타낸다.
도 1 내지 도 12, 및 도 14를 참조하면, 호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)를 전달 상태(trans)로 변경하기 위해 SELECT 명령(CMD7)을 eMMC 장치(300 또는 300A)로 전송한다(S100).
호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)의 최대 동작 주파수 정보를 리드하기 위해 SEND_EXT_CSD 명령(CMD8)을 eMMC 장치(300 또는 300A)로 전송한다(S110). 호스트(200)는 eMMC 장치(300)로부터 최대 동작 주파수 정보를 리드한다(S120).
도 5에 도시된 호스트(200A)는 SEND_EXT_CSD 명령(CMD8)을 eMMC 장치(300A)로 전송하여 도 6에 도시된 EXT_CSD 레지스터(371)의 DEVICE_TYPE[196]에 저장된 정보, 예컨대 각 비트(Bit 6 또는 Bit 7)를 이용하여 eMMC(300A)가 고속 DDR 400 모드를 지원하는지의 여부를 판단한다.
eMMC(300A)가 고속 DDR 400 모드를 지원하지 않을 때 또는 DDR 400 모드의 데이터 라이트 동작을 수행할 때, eMMC(300A)는 고속 DDR 400 모드로 스위치할 수 없다.
그러나, eMMC(300A)가 고속 DDR 400 모드를 지원할 때, 호스트(200A)는 EXT_CSD 레지스터(371)의 VENDOR_SPECIFIC_FIELD 필드에 저장되고 DDR 400 모드에서의 클락 신호(CLK)의 최대 동작 주파수를 읽는다.
호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)를 다른 버스 스피드 모드(예컨대, HS200 모드 또는 DDR 400 모드)로 스위치하기 위해 SWITCH 명령(CMD6)을 eMMC 장치(300 또는 300A)로 전송한다(S130). 호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)를 HS200 모드 또는 DDR 400 모드로 스위치하기 위해 EXT_CSD 레지스터(380 또는 371)의 HS_TIMING[185] 필드의 값을 2(HS200 모드일 때) 또는 3(DDR 400 모드일 때)로 설정한다.
호스트(200 또는 200A)는 최대 동작 주파수 정보에 따라 클락 신호(CLK)의 주파수를 변경한다(S140). 호스트(200 또는 200A)는 변경된 주파수를 갖는 클락 신호(CLK)를 eMMC 장치(300 또는 300A)로 전송한다(S150).
도 15은 도 1 또는 도 5에 도시된 호스트와 eMMC 사이의 신호 흐름도를 나타낸다.
도 1 내지 도 15를 참조하면, 호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)를 전달 상태(trans)로 변경하기 위해 SELECT 명령(CMD7)을 eMMC 장치(300 또는 300A)로 전송한다(S1000). eMMC 장치(300 또는 300A)는 호스트(200 또는 200A)로부터 전송받은 SELECT 명령(CMD7)에 응답하여 대기 상태(stby)에서 전달 상태(trans)로 변환한다.
호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)의 최대 동작 주파수 정보를 리드하기 위해 SEND_EXT_CSD 명령(CMD8)을 eMMC 장치(300 또는 300A)로 전송한다(S1100).
호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)로부터 최대 동작 주파수 정보를 리드한다(S1200).
호스트(200 또는 200A)는 eMMC 장치(300 또는 300A)를 HS200 모드 또는 DDR 400 모드로 스위치하기 위해 SWITCH 명령(CMD6)을 eMMC 장치(300 또는 300A)로 전송한다(S1300).
호스트(200 또는 200A)는 최대 동작 주파수 정보에 따라 클락 신호(CLK)의 주파수를 변경하고, 변경된 주파수를 갖는 클락 신호(CLK)를 eMMC 장치(300 또는 300A)로 전송한다(S1400).
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; eMMC 시스템
200; 호스트
210; 클락 생성기
220; 호스트 컨트롤러
230; 입력 회로
240; 출력 회로
250; 호스트 입출력 블록
300; eMMC 장치
310; eMMC 컨트롤러
320; eMMC 입출력 블록
330; 제어 로직 블록
340; 플래시 입출력 블록
370; 플래시 메모리
380; EXT_CSD 레지스터
200; 호스트
210; 클락 생성기
220; 호스트 컨트롤러
230; 입력 회로
240; 출력 회로
250; 호스트 입출력 블록
300; eMMC 장치
310; eMMC 컨트롤러
320; eMMC 입출력 블록
330; 제어 로직 블록
340; 플래시 입출력 블록
370; 플래시 메모리
380; EXT_CSD 레지스터
Claims (10)
- 호스트로부터 SEND_EXT_CSD 명령을 수신하는 명령 채널;
상기 SEND_EXT_CSD 명령에 응답하여 상기 호스트로 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))의 최대 동작 주파수 정보를 전송하는 데이터 채널들; 및
상기 호스트로부터 상기 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호를 수신하는 클락 신호 채널을 포함하는 eMMC. - 제1항에 있어서, 상기 eMMC는,
EXT_CSD 레지스터를 더 포함하고,
상기 최대 동작 주파수 정보는,
상기 EXT_CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장되는 eMMC. - 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))의 최대 동작 주파수 정보를 리드하기 위한 SEND_EXT_CSD 명령(CMD8)을 상기 eMMC로 전송하는 명령 채널;
상기 최대 동작 주파수 정보를 상기 eMMC로부터 수신하는 데이터 채널들; 및
상기 최대 동작 주파수 정보에 따라 변경된 주파수를 갖는 클락 신호를 상기 eMMC로 전송하는 클락 신호 채널을 포함하는 호스트. - 제3항에 있어서, 상기 호스트는,
상기 최대 동작 주파수 정보에 따라 상기 변경된 주파수를 갖는 클락 신호를 생성하는 클락 생성기를 더 포함하는 호스트. - 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))와 호스트를 포함하는 eMMC 시스템의 동작 방법에 있어서,
상기 호스트는 상기 eMMC의 최대 동작 주파수 정보를 리드하기 위한 SEND_EXT_CSD 명령(CMD8)을 상기 eMMC로 전송하는 단계; 및
상기 SEND_EXT_CSD 명령(CMD8)에 응답하여 상기 eMMC는 최대 동작 주파수 정보를 상기 호스트로 전송하는 단계를 포함하는 eMMC 시스템의 동작 방법. - 제5항에 있어서, 상기 최대 동작 주파수 정보는,
상기 eMMC의 EXT_CSD 레지스터의 VENDOR_SPECIFIC_FIELD 필드에 저장되는 eMMC 시스템의 동작 방법. - 제5항에 있어서, 상기 eMMC 시스템의 동작 방법은, 상기 eMMC가 상기 최대 동작 주파수 정보를 상기 호스트로 전송하는 단계를 수행한 후에,
상기 호스트는 상기 최대 동작 주파수 정보에 따라 클락 신호의 주파수를 변경하는 단계; 및
상기 호스트는 상기 eMMC로 상기 변경된 주파수를 갖는 클락 신호를 전송하는 단계를 더 포함하는 eMMC 시스템의 동작 방법. - 제7항에 있어서, 상기 변경된 주파수를 갖는 클락 신호는,
SEND_TUNIG_BLOCK 명령(CMD21)없이 생성되는 eMMC 시스템의 동작 방법. - 제7항에 있어서, 상기 eMMC 시스템의 동작 방법은, 상기 최대 동작 주파수 정보에 따라 클락 신호의 주파수를 변경하는 단계가 수행되기 이전에,
상기 eMMC를 다른 버스 스피드 모드로 변경하기 위해 상기 호스트는 SWITCH 명령(CMD6)을 상기 eMMC로 전송하는 단계를 더 포함하는 eMMC 시스템의 동작 방법. - 제9항에 있어서, 상기 다른 버스 스피드 모드는,
HS200 모드 또는 DDR 400 모드인 eMMC 시스템의 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120102466A KR101978981B1 (ko) | 2012-09-14 | 2012-09-14 | 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 |
US14/025,909 US9430423B2 (en) | 2012-09-14 | 2013-09-13 | Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120102466A KR101978981B1 (ko) | 2012-09-14 | 2012-09-14 | 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140035764A KR20140035764A (ko) | 2014-03-24 |
KR101978981B1 true KR101978981B1 (ko) | 2019-05-16 |
Family
ID=50275689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120102466A KR101978981B1 (ko) | 2012-09-14 | 2012-09-14 | 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9430423B2 (ko) |
KR (1) | KR101978981B1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105898475A (zh) * | 2015-12-21 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 提高智能电视与嵌入式多媒体卡兼容性的方法、智能电视 |
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 |
US11069420B2 (en) | 2019-07-25 | 2021-07-20 | Micron Technology, Inc. | In-system test of a memory device |
CN110648716A (zh) * | 2019-08-05 | 2020-01-03 | 广州妙存科技有限公司 | 一种基于SOC的免拆卸的eMMC调试方法 |
CN111722670B (zh) * | 2020-06-23 | 2022-06-07 | 湖南国科微电子股份有限公司 | 一种eMMC时序调整方法、系统及eMMC主控芯片 |
CN112148649B (zh) * | 2020-09-03 | 2022-06-21 | 深圳市宏旺微电子有限公司 | 一种u-boot系统下的eMMCHS400传输模式实现方法及装置 |
US11429312B1 (en) | 2021-06-09 | 2022-08-30 | Hewlett-Packard Development Company, L.P. | Multiplexed storage accesses |
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090094678A1 (en) | 2007-10-05 | 2009-04-09 | Nokia Corporation | Mulimode device |
US8307151B1 (en) | 2009-11-30 | 2012-11-06 | Micron Technology, Inc. | Multi-partitioning feature on e-MMC |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4841069B2 (ja) | 2001-07-24 | 2011-12-21 | パナソニック株式会社 | 記憶装置 |
KR20050032365A (ko) | 2003-10-01 | 2005-04-07 | 삼성전자주식회사 | 플래시메모리카드 |
TW200604810A (en) | 2004-02-20 | 2006-02-01 | Renesas Tech Corp | Nonvolatile memory and data processing system |
JP2005275653A (ja) | 2004-03-24 | 2005-10-06 | Matsushita Electric Ind Co Ltd | 通信機能を搭載する通信カードと挿入・動作可能な電子機器及びそれらを含む通信処理システム |
KR100606577B1 (ko) | 2004-07-29 | 2006-07-28 | 삼성전자주식회사 | 직렬 에이티에이 인터페이스의 데이터 전송속도 조절장치및 그 방법 |
JP2006092266A (ja) | 2004-09-24 | 2006-04-06 | Matsushita Electric Ind Co Ltd | 小型カードアダプタ |
KR20060080388A (ko) | 2005-01-05 | 2006-07-10 | 삼성전자주식회사 | 스마트 카드와 메모리 카드간의 멀티 인터페이스 카드용클럭 제어 장치 및 방법 |
US20100274933A1 (en) | 2009-04-24 | 2010-10-28 | Mediatek Inc. | Method and apparatus for reducing memory size and bandwidth |
JP4772891B2 (ja) | 2009-06-30 | 2011-09-14 | 株式会社東芝 | ホストコントローラ、コンピュータ端末およびカードアクセス方法 |
KR20120098105A (ko) * | 2011-02-28 | 2012-09-05 | 에스케이하이닉스 주식회사 | 데이터 전송 회로 및 이를 포함하는 메모리 장치 |
KR101977663B1 (ko) * | 2012-09-14 | 2019-05-13 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 디바이스 및 그 동작방법 |
-
2012
- 2012-09-14 KR KR1020120102466A patent/KR101978981B1/ko active IP Right Grant
-
2013
- 2013-09-13 US US14/025,909 patent/US9430423B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090094678A1 (en) | 2007-10-05 | 2009-04-09 | Nokia Corporation | Mulimode device |
US8307151B1 (en) | 2009-11-30 | 2012-11-06 | Micron Technology, Inc. | Multi-partitioning feature on e-MMC |
Also Published As
Publication number | Publication date |
---|---|
US9430423B2 (en) | 2016-08-30 |
US20140082250A1 (en) | 2014-03-20 |
KR20140035764A (ko) | 2014-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101978981B1 (ko) | 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 | |
US9535451B2 (en) | Embedded multimedia card using unidirectional data strobe signal, host for controlling the same, and related methods of operation | |
US8176215B2 (en) | Semiconductor memory device and control method for semiconductor memory device | |
KR101852670B1 (ko) | I/o 드라이버 송신 스윙 제어 | |
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 | |
US9792072B2 (en) | Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system | |
US9389804B2 (en) | Host, system, and methods for transmitting commands to non-volatile memory card | |
KR101988260B1 (ko) | 임베디드 멀티미디어 카드, 및 이의 동작 방법 | |
KR101977664B1 (ko) | 임베디드 멀티미디어 카드와 이를 제어하는 호스트 | |
US8200862B2 (en) | Low-power USB flash card reader using bulk-pipe streaming with UAS command re-ordering and channel separation | |
US9218312B2 (en) | Memory device and memory system including the same | |
KR101977663B1 (ko) | 임베디드 멀티미디어 카드 디바이스 및 그 동작방법 | |
CN104239243A (zh) | 接口控制电路、存储系统和控制接口控制电路的方法 | |
JP2007011788A (ja) | メモリカード及びそのホスト機器 | |
US20220310137A1 (en) | Multi-mode compatible zq calibration circuit in memory device | |
US20160372171A1 (en) | Semiconductor device, semiconductor system, and method for use in operating the same based on operation mode information | |
US20140082269A1 (en) | EMBEDDED MULTIMEDIA CARD (eMMC), HOST CONTROLLING SAME, AND METHOD OF OPERATING eMMC SYSTEM | |
US9531365B1 (en) | Signal generator adjusting a duty cycle and semiconductor apparatus using the same | |
KR101978976B1 (ko) | 임베디드 멀티미디어 카드(eMMC)와 상기 eMMC를 제어하는 호스트 | |
CN110232937A (zh) | 数据输出缓冲器 | |
US20130227197A1 (en) | Multiple pre-driver logic for io high speed interfaces | |
CN210836074U (zh) | 一种基于门电路实现emmc单通道扩容的电路 | |
US20100169698A1 (en) | Recording medium control element, recording medium control circuit board, and recording medium control device | |
KR20140035768A (ko) | 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법 |
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 |