KR101986355B1 - 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법 - Google Patents

임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법 Download PDF

Info

Publication number
KR101986355B1
KR101986355B1 KR1020120102480A KR20120102480A KR101986355B1 KR 101986355 B1 KR101986355 B1 KR 101986355B1 KR 1020120102480 A KR1020120102480 A KR 1020120102480A KR 20120102480 A KR20120102480 A KR 20120102480A KR 101986355 B1 KR101986355 B1 KR 101986355B1
Authority
KR
South Korea
Prior art keywords
command
vendor mode
vendor
mode
information
Prior art date
Application number
KR1020120102480A
Other languages
English (en)
Other versions
KR20140035772A (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 KR1020120102480A priority Critical patent/KR101986355B1/ko
Priority to US14/026,322 priority patent/US9411537B2/en
Publication of KR20140035772A publication Critical patent/KR20140035772A/ko
Application granted granted Critical
Publication of KR101986355B1 publication Critical patent/KR101986355B1/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices

Landscapes

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

Abstract

임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))가 개시된다. 본 발명의 일 실시예에 따른 eMMC는 호스트로부터 수신되는 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계, 상기 판단 결과에 따라 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계 및 상기 벤더 모드 속성 정보에 따라 결정된 상기 벤더 모드를 실행하는 단계를 포함한다.

Description

임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법{A embedded Multimedia Card(eMMC), eMMC system including the eMMC, and a method for operating the eMMC}
본 발명의 개념에 따른 실시예는 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))에 관한 것으로, 특히 벤더 모드(vendor mode)와 관련해 호스트와의 호환성을 높일 수 있는 eMMC, 상기 eMMC를 포함하는 eMMC 시스템 및 상기 eMMC의 동작 방법에 관한 것이다.
멀티미디어 카드(MultiMediaCard(MMC)는 플래시 메모리의 메모리 카드 표준이다.
eMMC는 JEDEC에서 표준으로 정한 내장형 MMC에 대한 표준이다. eMMC 통신은 10개의 신호 버스(10-signal bus)에 기반한다. eMMC은 스마트폰과 같은 이동 통신 장치에 삽입되어 사용될 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 호스트가 전송하는 커맨드 또는 데이터에 포함되는 벤더 모드 진입에 관련된 정보에 따라 벤더 모드를 수행할 수 있는 eMMC, 상기 eMMC를 포함하는 eMMC 시스템 및 상기 eMMC의 동작 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 eMMC는 호스트로부터 수신되는 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계, 상기 판단 결과에 따라 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계 및 상기 벤더 모드 속성 정보에 따라 결정된 상기 벤더 모드를 실행하는 단계를 포함할 수 있다.
실시예에 따라 상기 벤더 모드에 진입할지 여부를 판단하는 단계는 상기 명령 인자가 메모리 셀 어레이의 사이즈에 대응하는 유효 어드레스의 범위 밖의 값인지에 따라 유효한 값인지 판단하는 단계 및 상기 명령 인자가 무효한 값인 경우 특정 어드레스에 해당하는 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하는지 여부를 판단하는 단계를 포함할 수 있다.
실시예에 따라 상기 커맨드는 리드 커맨드 또는 라이트 커맨드일 수 있다.
실시예에 따라 상기 커맨드가 제1 라이트 커맨드이고, 상기 벤더 모드 속성 정보는 상기 제1 라이트 커맨드, 상기 제1 라이트 커맨드 이후에 수신되는 제2 라이트 커맨드 및 제1 리드 커맨드 중 어느 하나에 포함될 수 있다.
실시예에 따라 상기 커맨드가 제1 라이트 커맨드이고, 상기 벤더 모드 속성 정보는 상기 제1 라이트 커맨드 이후에 수신되는 제1 라이트 데이터에 포함될 수 있다.
실시예에 따라 상기 커맨드가 제1 리드 커맨드이고, 상기 벤더 모드 속성 정보는 상기 제1 리드 커맨드, 상기 제1 리드 커맨드 이후에 수신되는 제2 리드 커맨드 및 제1 라이트 커맨드 중 어느 하나에 포함될 수 있다.
실시예에 따라 상기 커맨드가 제1 리드 커맨드이고, 상기 벤더 모드 속성 정보는 상기 벤더 모드 속성 정보는 상기 제1 리드 커맨드 이후에 수신되는 제1 라이트 데이터에 포함될 수 있다.
실시예에 따라 상기 벤더 모드 속성 정보는 상기 벤더 모드의 타입 정보를 포함할 수 있다.
실시예에 따라 상기 벤더 모드가 패치 업데이트 모드이고, 상기 벤더 모드 속성 정보는 시작 주소 정보 및 데이터 사이즈 정보 중 적어도 하나를 더 포함하고, 상기 벤더 모드를 실행하는 단계는 상기 시작 주소 정보와 상기 데이터 사이즈 정보에 대응하는 메모리 셀 어레이에 패치 업데이트 데이터를 라이트하는 단계일 수 있다.
실시예에 따라 상기 벤더 모드가 덤프 데이터 모드이고, 상기 벤더 모드 속성 정보는 시작 주소 정보 및 데이터 사이즈 정보 중 적어도 하나를 더 포함하고, 상기 벤더 모드를 실행하는 단계는 상기 시작 주소 정보와 상기 데이터 사이즈 정보에 대응하는 메모리 셀 어레이로부터 덤프 데이터를 리드하는 단계일 수 있다.
본 발명의 다른 실시예에 따른 eMMC의 동작 방법은 호스트로부터 수신되는 라이트 데이터의 패턴을 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계, 상기 판단 결과에 따라 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계 및 상기 벤더 모드 속성 정보에 따라 결정된 상기 벤더 모드를 실행하는 단계를 포함할 수 있다.
실시예에 따라 상기 라이트 데이터는 제1 라이트 데이터이고, 상기 벤더 모드 속성 정보는 상기 제1 라이트 데이터 이후에 수신되는 제1 라이트 커맨드 및 제1 리드 커맨드 중 어느 하나에 포함될 수 있다.
실시예에 따라 상기 라이트 데이터는 제1 라이트 데이터이고, 상기 벤더 모드 속성 정보는 상기 제1 라이트 데이터 및 상기 제1 라이트 데이터 이후에 수신되는 제2 라이트 데이터 중 어느 하나에 포함될 수 있다.
실시예에 따라 상기 벤더 모드 속성 정보는 상기 벤더 모드의 타입 정보를 포함할 수 있다.
실시예에 따라 상기 벤더 모드가 패치 업데이트 모드이고, 상기 벤더 모드 속성 정보는 시작 주소 정보 및 데이터 사이즈 정보 중 적어도 하나를 더 포함하고, 상기 벤더 모드를 실행하는 단계는 상기 시작 주소 정보와 상기 데이터 사이즈 정보에 대응하는 메모리 셀 어레이에 패치 업데이트 데이터를 라이트하는 단계일 수 있다.
실시예에 따라 상기 벤더 모드가 덤프 데이터 모드이고, 상기 벤더 모드 속성 정보는 시작 주소 정보 및 데이터 사이즈 정보 중 적어도 하나를 더 포함하고, 상기 벤더 모드를 실행하는 단계는 상기 시작 주소 정보와 상기 데이터 사이즈 정보에 대응하는 메모리 셀 어레이로부터 덤프 데이터를 리드하는 단계일 수 있다.
본 발명의 일 실시예에 따른 eMMC는 복수의 메모리 셀들이 배열된 메모리 셀 어레이를 포함하는 메모리 및 호스트와 상기 메모리 사이에서 데이터의 입출력을 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 호스트로부터 수신되는 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성하는 커맨드 파싱 유닛 및 상기 벤더 모드 진입 정보에 따라 상기 메모리 컨트롤러의 모드를 변경하는 컨트롤 로직을 포함할 수 있다.
실시예에 따라 상기 메모리 컨트롤러는 상기 벤더 모드 진입 정보와 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 저장하는 휘발성 메모리를 더 포함할 수 있다.
실시예에 따라 상기 커맨드 파싱 유닛은 상기 명령 인자가 상기 메모리 셀 어레이의 사이즈에 대응하는 유효 어드레스의 범위 밖의 값인지에 따라 상기 명령 인자가 유효한 값인지 판단하고, 상기 명령 인자가 무효한 값인 경우 특정 어드레스에 해당하는 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하는지 여부를 판단하여 상기 벤더 모드 진입 정보를 생성할 수 있다.
실시예에 따라 상기 벤더 모드 속성 정보는 호스트로부터 수신되는 상기 커맨드 또는 데이터에 포함될 수 있다.
본 발명의 다른 실시예에 따른 eMMC는 복수의 메모리 셀들이 배열된 메모리 셀 어레이를 포함하는 메모리 및 호스트와 상기 메모리 사이에서 데이터의 입출력을 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 호스트로부터 수신되는 라이트 데이터의 패턴을 분석하여 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성하는 데이터 파싱 유닛 및 상기 벤더 모드 진입 정보에 따라 상기 메모리 컨트롤러의 모드를 변경하는 컨트롤 로직을 포함할 수 있다.
실시예에 따라 상기 메모리 컨트롤러는 상기 벤더 모드 진입 정보와 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 저장하는 휘발성 메모리를 더 포함할 수 있다.
실시예에 따라 상기 데이터 파싱 유닛은 하드웨어로 구현될 수 있다.
실시예에 따라 상기 벤더 모드 속성 정보는 호스트로부터 수신되는 상기 커맨드 또는 데이터에 포함될 수 있다.
본 발명의 일 실시예에 따른 eMMC 시스템은 상기 eMMC 및 상기 eMMC와 데이터를 교환하고, 상기 커맨드 및 상기 라이트 데이터 중 적어도 하나에 상기 벤더 모드 진입 정보를 포함시켜 전송하는 호스트를 포함할 수 있다.
본 발명의 일 실시예에 따른 eMMC 시스템에 의하면, 호스트가 별도의 벤더 커맨드가 아닌 커맨드 또는 라이트 데이터를 이용하여 eMMC의 벤더 모드를 제어할 수 있는 효과가 있다.
또한, 본 발명의 일 실시예에 따른 eMMC에 의하면, 호스트가 전송하는 커맨드 또는 라이트 데이터에 따라 해당 벤더 모드에 진입할 수 있어 호스트와의 호환성을 높일 수 있다.
도 1은 본 발명의 일 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC)) 시스템의 블록도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 eMMC 장치를 상세히 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 커맨드의 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 라이트 데이터의 일부를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 커맨드에 의한 벤더 모드 실행 방법을 나타내는 흐름도이다.
도 6은 도 5에 도시된 벤더 모드에 진입할지 여부를 판단하는 단계를 상세히 설명하기 위한 흐름도이다.
도 7 내지 14는 도 5에 도시된 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 커맨드에 의한 벤더 모드 실행 방법의 적용예 들을 나타내는 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 라이트 데이터에 의한 벤더 모드 실행 방법을 나타내는 흐름도이다.
도 16 내지 19는 도 15에 도시된 본 발명의 일 실시예에 따른 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의 용어들과 정의들과 동일하다.
본 발명의 개념에 따른 다양한 실시 예들은, 호스트(host)와 장치(device) 사이에서 주고받는 데이터의 전송 속도를 높이고 노이즈 면역성(noise immunity)을 높이기 위해, 기존의 10-와이어 버스(10-wire bus) 이외에 특별한 목적을 수행하기 위해 추가된 적어도 하나의 라인(또는 채널)을 더 포함한다.
상기 적어도 하나의 라인(또는 채널)의 기능과, 상기 적어도 하나의 라인을 통하여 전송되는 신호를 생성하는 회로들과 방법들이 본 명세서에서 상세히 설명될 것이다.
본 명세서에서는 특별한 의도를 가지고 명시적으로 구분하지 않는 한, 설명의 편의를 위해 기능 회로, 예컨대 버스(bus), 와이어(wire), 패드(또는 핀(pin)), 드라이버(driver), 수신기(receiver), 및/또는 차동 증폭기 등의 전송 지연 (propagation delay)은 고려하지 않는다.
또한, 본 명세서에서는 설명의 편의를 위해, 특별한 의도를 가지고 명시적으로 구분하지 않는 한, 특정한 기능 회로의 입력 신호와 출력 신호 각각은 동일한 명칭을 사용할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC)) 시스템의 블록도를 나타낸다.
도 1을 참조하면, eMMC 시스템(10)은 호스트(50)와 장치(100), 예컨대 eMMC 장치(100)를 포함한다.
호스트(50)는 eMMC 장치(100)의 데이터 처리 동작, 예컨대 데이터 리드 동작 또는 데이터 라이트 동작 등을 제어할 수 있다. 상기 데이터 처리 동작은 SDR (single data rate) 또는 DDR(dual data rate)로 수행될 수 있다. 특히, 상기 데이터 처리 동작이 DDR로 수행되는 경우 호스트(50) 또는 eMMC 장치(100)는 DDR 400 모드로 동작할 수 있다. 상기 DDR 400 모드는 호스트(50) 또는 eMMC 장치(100)의 입출력 동작 전압이 1.2V 또는 1.8V일 때, 200MHz DDR(dual date rate)로 데이터를 처리할 수 있는 동작 모드를 의미한다.
호스트(50)는 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 장치(100)는 호스트(50)와 데이터 통신을 위해 상기 전자 장치와 접속 수단들(예컨대, 패드들, 핀들, 버스, 또는 통신 라인들)을 통하여 전기적으로 접속될 수 있다. 호스트(50)는 상기 접속 수단들을 통해 커맨드(CMD), 클럭 신호(clock signal) 등을 eMMC 장치(100)로 전송할 수 있다. 호스트(50)는 상기 접속 수단들을 통해 데이터(Data)를 주고 받을 수 있다.
호스트(50)는 eMMC 장치(100)의 동작을 제어할 수 있는 커맨드(CMD)를 생성할 수 있다. 예컨대, 커맨드(CMD)는 데이터 리드 동작을 제어하기 위한 리드 커맨드(read command), 데이터 라이트 동작을 제어하기 위한 라이트 커맨드(write command), 데이터 이레이즈 동작을 제어하기 위한 이레이즈 커맨드(erase command), eMMC 장치(100)에 포함된 메모리 셀 어레이(미도시)의 특정 영역을 라이트 보호 영역으로 정의하기 위한 라이트 프로텍트 커맨드(write protect command), 또는 eMMC 장치(100)를 잠금/비잠금 상태로 세팅하기 위한 락/언락 커맨드(lock/unlock command) 등 일 수 있다.
eMMC 장치(100)가 호스트(50)로부터 커맨드(CMD)를 입력받고 상기 커맨드(CMD)에 따른 동작을 완료하기까지의 시간을 모드(mode)로 정의할 수 있다. 예컨대, eMMC 장치(100)가 호스트(50)로부터 리드 커맨드를 입력받아 요청된 데이터에 대한 전송을 완료하기까지의 시간을 리드 모드(read mode)로 정의할 수 있다.
실시예에 따라 두 가지 이상의 모드가 동시에 진행될 수 있다. 예컨대, 리드 커맨드 이후 리드 데이터(RD)가 eMMC 장치(100)로부터 호스트(50)로 전송되는 동안(리드 모드), eMMC 장치(100)는 라이트 커맨드를 수신할 수 있다(라이트 모드).
즉, 호스트(50)는 eMMC 장치(100)에 커맨드(CMD)를 달리하여 전송함으로써 eMMC 장치(100)의 모드를 변경할 수 있다. 예컨대, 호스트(50)가 라이트 커맨드를 전송하여 eMMC 장치(100)가 라이트 모드에 진입한 후, 라이트 데이터의 전송이 완료되고 호스트(50)로부터의 리드 커맨드에 따라 eMMC 장치(100)는 리드 모드에 진입할 수 있다.
또한, eMMC 장치(100)는 eMMC 장치(100)의 고유한 기능을 사용할 수 있는 벤더 모드(vendor mode)를 가질 수 있다. 예컨대, 벤더 모드는 eMMC 장치(100)의 메모리 셀 어레이(미도시)에 저장된 패치 파일(patch file)을 변경하기 위한 패치 업데이트 모드(patch update mode), 상기 메모리 셀 어레이(미도시)에 저장된 데이터 또는 프로그램 코드(program code)의 디버깅(debugging)을 위한 디버깅 모드(debugging mode), 또는 상기 메모리 셀 어레이(미도시)에 저장된 일부 데이터를 덤프하기 위한 덤프 데이터 모드(dump data mode) 등 일 수 있다. 상기 각각의 벤더 모드는 패치 업데이트 데이터를 상기 메모리 셀 어레이(미도시)에 라이트하거나, 디버깅 데이터 또는 덤프 데이터를 상기 메모리 셀 어레이(미도시)로부터 리드하는 동작을 포함할 수 있다.
eMMC 장치(100)는 별도의 벤더 커맨드(vendor command)에 의해 벤더 모드에 진입할 수 있다. 또는 eMMC 장치(100)는 벤더 커맨드가 아닌 일반적인 커맨드(예컨대, 라이트 커맨드, 리드 커맨드 등)나 라이트 데이터에 포함된 벤더 모드 진입 정보에 따라 특정 벤더 모드에 진입할 수 있다. 벤더 모드 진입 정보는 도 2 내지 4를 통해 상세히 설명된다.
본 발명의 일 실시예에 따른 eMMC 시스템에 의하면, 호스트가 별도의 벤더 커맨드가 아닌 커맨드 또는 라이트 데이터를 이용하여 eMMC 장치의 벤더 모드를 제어할 수 있는 효과가 있다.
도 2는 본 발명의 일 실시예에 따른 eMMC 장치를 상세히 나타내는 블록도이다. 도 3은 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 커맨드의 구성을 나타내는 도면이다. 도 4는 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 라이트 데이터의 일부를 나타내는 도면이다.
도 2 내지 도 4를 참조하면, 본 발명의 일 실시예에 따른 eMMC 장치(100)는 메모리 컨트롤러(memory controller, 200) 및 플래시 메모리(flash memory, 300)를 포함할 수 있다.
메모리 컨트롤러(200)는 eMMC 장치(100)의 전반적인 동작을 제어할 수 있으며, 특히 호스트(50)와 상기 플래시 메모리(300) 사이에서 라이트 데이터(WD)와 리드 데이터(RD)의 입출력을 제어할 수 있다. 메모리 컨트롤러(200)는 호스트 인터페이스(host interface, 210), 휘발성 메모리(volatile memory, 230), 컨트롤 로직(control logic, 250) 및 메모리 인터페이스(memory interface, 270)를 포함할 수 있다.
호스트 인터페이스(210)는 컨트롤 로직(250)의 제어에 따라 호스트(50)로부터 커맨드(CMD)와 클럭 신호(미도시)를 수신하고 데이터(WD, RD)의 입출력을 제어할 수 있다. 호스트 인터페이스(210)는 커맨드 블록(command block, 212), 커맨드 파싱 유닛(command parsing unit, 214), 데이터 블록(data block, 216) 및 데이터 파싱 유닛(data parsing unit, 218)를 포함할 수 있다.
커맨드 블록(212)은 클럭 신호에 따라 호스트(50)로부터 수신된 커맨드(CMD)를 해석하고 해석 결과를 휘발성 메모리(230)로 전송할 수 있다. 또한, 커맨드 블록(212)은 커맨드(CMD)를 버퍼링(buffering)하여 커맨드 파싱 유닛(214)으로 전송할 수 있다.
커맨드 파싱 유닛(214)은 커맨드 블록(212)으로부터 커맨드(CMD)를 수신하고 수신된 커맨드(CMD)의 명령 인자(command argument)를 추출할 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 eMMC 장치(100)가 수신하는 커맨드의 구성은 시작 비트(start bit), 전송 비트(transmission bit), 커맨드 인덱스(command index), 명령 인자(argument), CRC(Cyclical Redundancy Check), 종료 비트(end bit)를 포함할 수 있다.
시작 비트는 커맨드(CMD)의 시작을 알리는 비트로서 예컨대, 0으로 고정될 수 있다. 전송 비트는 커맨드(CMD)를 생성한 주체를 나타내는 비트로서 예컨대, 1일 경우 호스트(50)에 의해 생성된 커맨드임을 나타낼 수 있다. 커맨드 인덱스는 커맨드의 종류를 나타내는 복수의 비트들로서 eMMC 장치(100)가 수행할 수 있는 복수의 커맨드들 중 특정 커맨드임을 나타낼 수 있다. 예컨대, 커맨드 인덱스가 CMD 1일 경우 커맨드(CMD)가 라이트 커맨드임을, 커맨드 인덱스가 CMD 2일 경우 커맨드(CMD)가 리드 커맨드임을 각각 나타낼 수 있다. 따라서, eMMC 장치(100)는 커맨드 인덱스에 따라 어떠한 커맨드가 입력되는지 인식할 수 있고 해당 커맨드 인덱스에 따른 동작을 수행할 수 있다.
명령 인자는 커맨드(CMD)에 따른 동작을 수행함에 있어 필요한 정보들을 포함할 수 있다. 예컨대, 커맨드(CMD)가 리드 커맨드 또는 라이트 커맨드일 경우 명령 인자는 리드 또는 라이트할 플래시 메모리(300)의 메모리 셀 어레이(미도시)의 시작 주소 정보와 리드 데이터 또는 라이트 데이터의 데이터 사이즈 정보를 포함할 수 있다. 상기 명령 인자는 메모리 셀 어레이(미도시)의 사이즈에 대응하는 유효 어드레스 범위(address in range) 즉, 상기 시작 주소 정보와 상기 데이터 사이즈 정보를 포함하는 범위와 그 이외의 범위(address out of range)로 나뉠 수 있다.
CRC는 커맨드(CMD)의 전송 시에 발생할 수 있는 오류를 검출하기 위한 것으로 예컨대, 7 비트로 구현될 수 있다. 종료 비트는 커맨드(CMD)의 종료를 알리는 비트로서 예컨대, 1로 고정될 수 있다.
커맨드 파싱 유닛(214)은 추출된 명령 인자를 분석하여 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성할 수 있다. 커맨드 파싱 유닛(214)은 비트 단위로 순차적으로 수신되는 명령 인자를 분석하여 상기 명령 인자가 유효한 값인지 판단할 수 있다. 예컨대, 커맨드(CMD)가 리드 커맨드 또는 라이트 커맨드일 때 명령 인자가 유효 어드레스 범위(address in range) 내인 경우 상기 명령 인자를 유효한 값으로 판단할 수 있다. 반대로 명령 인자가 유효 어드레스 범위 이외의 범위(address out of range)일 경우 상기 명령 인자를 무효한 값으로 판단할 수 있다.
커맨드 파싱 유닛(214)은 명령 인자가 무효한 값인 경우 유효 어드레스 범위 이외의 범위(address out of range)의 특정 어드레스(specific address)에 해당하는 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하는지 여부를 판단할 수 있다. 이때, 상기 판단 결과 일치하지 않을 경우 커맨드 파싱 유닛(214)은 에러(error) 정보(EI)를 휘발성 메모리(230)로 전송할 수 있다. 달리 말하면, 호스트(50)가 플래시 메모리(300)의 메모리 셀 어레이(미도시)의 범위 밖을 액세스하는 경우 커맨드 파싱 유닛(214)이 에러(error) 정보(EI)를 휘발성 메모리(230)로 전송할 수 있다.
커맨드 파싱 유닛(214)은 상기 판단 결과에 따라 벤더 모드 진입 정보를 생성하여 휘발성 메모리(230)로 전송할 수 있다. 상기 특정 어드레스는 디폴트(default)로 정해지거나 호스트(50)의 요청 또는 컨트롤 로직(250)에 의해 변경될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
커맨드 파싱 유닛(214)은 eMMC 장치(100)가 벤더 모드에 진입할 경우 컨트롤 로직(250)의 제어에 따라 커맨드(CMD)에 포함된 벤더 모드 속성 정보를 추출할 수 있다. 상기 벤더 모드 속성 정보는 벤더 모드의 실행에 필요한 정보들을 포함할 수 있다. 실시예에 따라 벤더 모드 속성 정보는 해당 벤더 모드의 타입 정보(type information), 예컨대 커맨드 인덱스(command index)를 포함할 수 있다.
또한, 벤더 모드 속성 정보는 특정 벤더 모드의 실행에 필요한 각각의 정보들을 더 포함할 수 있다.
예컨대, 벤더 모드가 덤프 데이터 모드일 경우 벤더 모드 속성 정보는 덤프의 대상(예컨대, 휘발성 메모리(230), 레지스터(register), 플래시 메모리(300) 등), 시작 주소 정보, 데이터 사이즈 정보를 포함할 수 있다.
예컨대, 벤더 모드가 패치 업데이트 모드일 경우 벤더 모드 속성 정보는 패치 업데이트의 대상(예컨대, 휘발성 메모리(230), 레지스터(register), 플래시 메모리(300) 등), 시작 주소 정보, 데이터 사이즈 정보를 포함할 수 있다.
커맨드 파싱 유닛(214)에 의해 생성된 상기 벤더 모드 진입 정보와 상기 벤더 모드 속성 정보는 제1 벤더 모드 정보(VMI1)로서 휘발성 메모리(230)로 전송될 수 있다.
커맨드 파싱 유닛(214)은 하드웨어(hardware) 또는 펌웨어(firmware)로 구현될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
데이터 블록(216)은 클럭 신호에 따라 호스트(50)로부터 수신된 라이트 데이터(WD)를 수신하고, 수신된 라이트 데이터(WD)를 휘발성 메모리(230) 및 데이터 파싱 유닛(218)으로 전송할 수 있다. 데이터 블록(216)은 클럭 신호(미도시)에 따라 휘발성 메모리(230)로부터 수신된 리드 데이터(RD)를 수신하고, 수신된 리드 데이터(RD)를 호스트(50)로 전송할 수 있다.
데이터 파싱 유닛(218)은 수신된 라이트 데이터(WD)의 패턴(pattern)을 분석하여 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성할 수 있다.
도 4를 참조하면 데이터 파싱 유닛(218)이 수신하는 라이트 데이터(WD)의 일 예가 나타나 있다. 예컨대, 플래시 메모리(300)의 메모리 셀 어레이(미도시)가 하나의 로우 당 16 바이트(byte)를 저장할 수 있다고 가정한다. 데이터 파싱 유닛(218)은 하나의 로우 어드레스에 대응하는 라이트 데이터를 16 바이트씩 순차적으로 수신할 수 있다. 데이터 파싱 유닛(218)은 최초로 수신되는 24 바이트의 라이트 데이터(WD)가 각 바이트마다 모두 F의 값을 가질 경우 벤더 모드에 진입하는 것으로 판단할 수 있다. 데이터 파싱 유닛(218)은 판단 결과에 따라 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성하여 휘발성 메모리(230)로 전송할 수 있다.
데이터 파싱 유닛(218)이 라이트 데이터(WD)를 분석하여 벤더 모드에 진입하는 것으로 판단하는 방법은 임의의 로우 어드레스의 임의의 사이즈의 라이트 데이터(WD)를 기초로 판단할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
데이터 파싱 유닛(218)은 eMMC 장치(100)가 벤더 모드에 진입할 경우 컨트롤 로직(250)의 제어에 따라 라이트 데이터(WD)에 포함된 벤더 모드 속성 정보를 추출할 수 있다.
데이터 파싱 유닛(218)에 의해 생성된 상기 벤더 모드 진입 정보와 상기 벤더 모드 속성 정보는 제2 벤더 모드 정보(VMI2)로서 휘발성 메모리(230)로 전송될 수 있다.
데이터 파싱 유닛(218)은 하드웨어(hardware) 또는 펌웨어(firmware)로 구현될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다. 데이터 파싱 유닛(218)은 시스템 부하를 줄이고 보다 빠른 처리 속도를 얻기 위해 하드웨어로 구현되는 것이 바람직할 수 있다.
다른 실시예에 따라 eMMC 장치(100)는 커맨드 파싱 유닛(214)과 데이터 파싱 유닛(218) 중 어느 하나 만을 구비할 수 있다. 이때, 컨트롤 로직(250)은 제1 벤더 모드 정보(VMI1)와 제2 벤더 모드 정보(VMI2) 중 어느 하나에 따라 eMMC 장치(100)의 벤더 모드를 제어할 수 있다.
휘발성 메모리(230)는 예컨대, SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)로 구현될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 2에서는 설명의 편의를 위해 휘발성 메모리(230)가 SRAM으로 구현된다고 가정하고 설명하기로 한다. 휘발성 메모리(230)는 제1 SRAM(232), 제2 SRAM(234) 및 제3 SRAM(236)을 포함할 수 있다. 상기 제1 SRAM(232) 내지 상기 제3 SRAM(236)은 하나의 SRAM이 동작적으로 구분되거나 별도의 SRAM으로 구현될 수 있다.
제1 SRAM(232)은 eMMC 장치(100)의 동작에 필요한 프로그램 코드(program code)들 예컨대, 펌웨어(firmware) 또는 소프트웨어(software)가 저장될 수 있다. 상기 프로그램 코드들은 컨트롤 로직(250)의 제어에 따라 플래시 메모리(300)로부터 전송될 수 있다. 컨트롤 로직(250)은 상기 프로그램 코드들을 참조하여 eMMC 장치(100)의 동작을 제어할 수 있다.
제2 SRAM(234)은 제1 SRAM(232)에 저장된 프로그램 코드들이 이용하는 코드 데이터(code data)들이 저장될 수 있다. 또한, 제2 SRAM(234)은 호스트 인터페이스(210)로부터 전송되는 해석된 커맨드(CMD'), 에러 정보(EI), 제1 벤더 모드 정보(VMI1) 및 제2 벤더 모드 정보(VMI2)를 저장할 수 있다.
제3 SRAM(236)은 호스트 인터페이스(210)와 메모리 인터페이스(270) 사이에서 전송되는 리드 데이터(RD) 및 라이트 데이터(WD)를 임시 저장할 수 있다.
라이트 모드에서 호스트 인터페이스(210)는 컨트롤 로직(250)의 제어에 따라 라이트 데이터(WD)를 클럭 신호(미도시)를 이용하여 제3 SRAM(236)에 임시로 저장할 수 있다. 이때, 컨트롤 로직(250)의 제어에 따라 메모리 인터페이스(270)는 제3 SRAM(236)에 저장된 데이터를 리드하고 리드된 데이터를 플래시 메모리(300)에 라이트할 수 있다.
리드 모드에서 메모리 인터페이스(270)는 컨트롤 로직(250)의 제어에 따라 리드 데이터(RD)를 클럭 신호를 이용하여 제3 SRAM(236)에 임시로 저장할 수 있다. 이때, 컨트롤 로직(250)의 제어에 따라 호스트 인터페이스(210)는 제3 SRAM(236)에 저장된 데이터를 리드하고 리드된 데이터를 호스트(50)로 전송할 수 있다.
컨트롤 로직(250)은 호스트 인터페이스(210), 휘발성 메모리(230) 및 메모리 인터페이스(270)의 전반적인 동작을 제어할 수 있다. 컨트롤 로직(250)은 제2 SRAM에 저장된 해석된 커맨드(CMD')를 액세스하여 eMMC 장치(100)를 상기 해석된 커맨드(CMD')에 따른 모드로 동작시킬 수 있다.
예컨대, 제2 SRAM에 저장된 해석된 커맨드(CMD')를 참조한 결과 커맨드 인덱스가 리드 커맨드를 나타내고 메모리 셀 어레이(미도시)의 제1 로우 어드레스에 해당하는 16바이트의 데이터를 리드하도록 하는 명령 인자인 경우, 컨트롤 로직(250)은 eMMC 장치(100)를 리드 모드로 동작시켜 플래시 메모리(300)로부터 제1 로우 어드레스에 해당하는 16바이트의 데이터를 리드하여 호스트(50)로 전송하도록 메모리 컨트롤러(200)를 제어할 수 있다.
컨트롤 로직(250)은 제2 SRAM(234)를 액세스하여 제1 벤더 모드 정보(VMI1) 및 제2 벤더 모드 정보(VMI2)를 참조한 결과 벤더 모드 진입 정보 및 벤더 모드 속성 정보 모두를 디텍팅(detecting)한 경우 eMMC 장치(100)를 해당 벤더 모드에 진입시킬 수 있다.
예컨대, 제1 벤더 모드 정보(VMI1)에 벤더 모드 진입 정보가, 제2 벤더 모드 정보(VMI2)에 패치 업데이트 모드에 대한 벤더 모드 속성 정보가 각각 디텍팅된 경우, 컨트롤 로직(250)은 eMMC 장치(100)를 패치 업데이트 모드로 동작시킬 수 있다.
예컨대, 제2 벤더 모드 정보(VMI2)에 벤더 모드 진입 정보와 덤프 데이터 모드에 대한 벤더 모드 속성 정보가 모두 디텍팅된 경우, 컨트롤 로직(250)은 eMMC 장치(100)를 덤프 데이터 모드로 동작시킬 수 있다.
다른 실시예에 따라 컨트롤 로직(250)은 벤더 모드 진입 정보가 디텍팅된 이후 제3 SRAM(236)을 액세스하여 벤더 모드 속성 정보를 추출할 수 있다.
메모리 인터페이스(270)는 컨트롤 로직(250)의 제어에 따라 플래시 메모리(300)와 휘발성 메모리(230) 사이에서 프로그램 코드들, 상기 프로그램 코드들이 이용하는 코드 데이터 및 데이터의 전송을 제어할 수 있다.
플래시 메모리(300)는 NAND 플래시 메모리로 구현될 수 있으며, 데이터를 저장할 수 있는 복수의 메모리 셀들이 매트릭스(matrix) 형태로 배열된 메모리 셀 어레이(미도시), 상기 메모리 셀 어레이(미도시)를 액세스하기 위한 주변 회로(미도시) 및 페이지 버퍼(미도시) 등을 포함할 수 있다. 메모리 인터페이스(270)는 플래시 메모리(300)가 NAND 플래시 메모리로 구현될 경우 NAND 플래시 인터페이스로 구현될 수 있다.
도 5는 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 커맨드에 의한 벤더 모드 실행 방법을 나타내는 흐름도이다.
도 2 및 도 5를 참조하면, 커맨드 파싱 유닛(214)은 호스트(50)로부터 수신된 커맨드(CMD)의 명령 인자를 추출할 수 있다. 커맨드 파싱 유닛(214)은 추출된 명령 인자를 분석하여 벤더 모드에 진입할지 여부를 판단하고 상기 판단 결과에 따라 벤더 모드 진입 정보를 생성할 수 있다. 생성된 벤더 모드 진입 정보는 휘발성 메모리(230)에 저장될 수 있다(S410).
상기 벤더 모드 진입 정보에 따라 벤더 모드에 진입할 경우, 커맨드 파싱 유닛(214) 또는 데이터 파싱 유닛(218)은 호스트(50)로부터 전송되는 벤더 모드 속성 정보를 추출할 수 있다. 추출된 벤더 모드 속성 정보는 휘발성 메모리(230)에 저장될 수 있다(S420).
컨트롤 로직(250)은 휘발성 메모리(230)를 액세스하여 제1 벤더 모드 정보(VMI1) 및 제2 벤더 모드 정보(VMI2)를 참조한 결과 벤더 모드 진입 정보 및 벤더 모드 속성 정보 모두를 디텍팅한 경우 eMMC 장치(100)를 해당 벤더 모드에 진입시킬 수 있다(S430).
도 6은 도 5에 도시된 벤더 모드에 진입할지 여부를 판단하는 단계를 상세히 설명하기 위한 흐름도이다.
도 2, 도 5 및 도 6를 참조하면, 벤더 모드에 진입할지 여부를 판단하는 단계(S410)는 명령 인자가 플래시 메모리(300)의 메모리 셀 어레이(미도시)의 사이즈에 대응하는 유효 어드레스의 범위 밖의 값(address out of range)인지에 따라 유효한 값인지 판단하는 단계(S412) 및 상기 명령 인자가 무효한 값인 경우 특정 어드레스에 해당하는 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하는지 여부를 판단하는 단계(S414)를 포함할 수 있다.
다른 실시예에 따라 벤더 모드에 진입할지 여부를 판단하는 단계는 명령 인자 중 유효 어드레스의 범위 밖의 값(address out of range) 뿐만 아니라 커맨드(CMD)의 실행에 기여하지 않는 임의의 값에 의해 판단될 수 있다.
컨트롤 로직(250)은 명령 인자가 유효한 값일 경우 상기 명령 인자가 포함된 커맨드(CMD)에 따른 모드 예컨대, 리드 모드, 라이트 모드, 이레이즈 모드 등으로 eMMC 장치(100)를 동작시킬 수 있다(S413).
명령 인자가 무효한 값이고 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치할 경우, 커맨드 파싱 유닛(214)은 그에 따른 벤더 모드 진입 정보를 생성하여 생성된 벤더 모드 진입 정보를 휘발성 메모리(230)로 전송할 수 있다(S415).
명령 인자가 무효한 값이고 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하지 않을 경우, 커맨드 파싱 유닛(214)은 에러 정보(EI)를 휘발성 메모리(230)로 전송할 수 있다(S416).
도 7 내지 14는 도 5에 도시된 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 커맨드에 의한 벤더 모드 실행 방법의 적용예 들을 나타내는 흐름도이다.
도 2, 도 5 및 도 7 내지 도 14를 참조하면, 도 7 내지 14에 도시된 커맨드에 의한 벤더 모드 실행 방법의 적용예들의 각각의 단계(S410-1, S410-2, S420-1, S420-2, S420-3, S420-4, S430-1 및 S430-2)는 도 5에 도시된 각각의 단계들(S410 내지 S430)에 대응된다.
벤더 모드에 진입할지 여부를 판단하는 단계(S410)는 호스트(50)로부터 수신되는 제1 라이트 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계(S410-1) 또는 호스트(50)로부터 수신되는 제1 리드 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계(S410-1)에 적용될 수 있다.
벤더 모드 속성 정보를 수신하는 단계(S420)는 제1 라이트 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부가 판단된 경우(S410-1) 상기 판단 결과에 따라 상기 제1 라이트 커맨드, 상기 제1 라이트 커맨드 이후에 수신되는 제2 라이트 커맨드 및 제1 리드 커맨드 중 어느 하나에 포함되는 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계(S420-1) 또는 상기 판단 결과에 따라 상기 제1 라이트 커맨드 이후에 수신되는 제1 라이트 데이터에 포함되는 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계(S420-2)에 적용될 수 있다.
또한, 벤더 모드 속성 정보를 수신하는 단계(S420)는 제1 리드 커맨드의 명령 인자를 분석하여 벤더 모드에 진입할지 여부가 판단된 경우(S410-2) 상기 판단 결과에 따라 상기 제1 리드 커맨드, 상기 제1 리드 커맨드 이후에 수신되는 제2 리드 커맨드 및 제1 라이트 커맨드 중 어느 하나에 포함되는 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계(S420-3) 또는 상기 판단 결과에 따라 상기 제1 리드 커맨드 이후에 수신되는 제1 라이트 데이터에 포함되는 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계(S420-4)에 적용될 수 있다.
벤더 모드를 실행하는 단계(S430)는 커맨드들 또는 라이트 데이터에 포함된 벤더 모드 속성 정보를 수신한 이후(S420-1, S420-2, S420-3, S420-4) 상기 벤더 모드 속성 정보에 따라 결정된 패치 업데이트 모드를 실행하는 단계(S430-1) 또는 상기 벤더 모드 속성 정보에 따라 결정된 덤프 데이터 모드를 실행하는 단계(S430-2)에 적용될 수 있다.
따라서, 도 7 내지 14에 도시된 커맨드에 의한 벤더 모드 실행 방법의 적용예들은 도 5에 도시된 각각의 단계들(S410 내지 S430)에 대응되는 적용예들(S410-1, S410-2, S420-1, S420-2, S420-3, S420-4, S430-1 및 S430-2)의 조합을 나타낸다.
도 7 내지 14에 도시된 커맨드에 의한 벤더 모드 실행 방법의 적용예들은 예시적인 것이며, 본 발명의 범위는 이에 한정되지 않는다.
실시예에 따라, 벤더 모드의 종류에 따라 벤더 모드 속성 정보가 불필요한 경우 벤더 모드 속성 정보를 수신하는 단계(S420-1, S420-2, S420-3 및 S420-4)는 생략될 수 있다. 예컨대, 벤더 모드 진입 정보가 포함되는 커맨드의 종류에 따라 벤더 모드의 종류가 결정되는 경우 벤더 모드 속성 정보를 수신하는 단계(S420-1, S420-2, S420-3 및 S420-4)는 생략될 수 있다.
도 15는 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 라이트 데이터에 의한 벤더 모드 실행 방법을 나타내는 흐름도이다.
도 2 및 도 15를 참조하면, 데이터 파싱 유닛(218)은 호스트(50)로부터 수신된 라이트 데이터(WD)를 데이터 블록(216)으로부터 수신할 수 있다. 데이터 파싱 유닛(218)은 라이트 데이터(WD)의 패턴을 분석하여 벤더 모드에 진입할지 여부를 판단하고 상기 판단 결과에 따라 벤더 모드 진입 정보를 생성할 수 있다. 생성된 벤더 모드 진입 정보는 휘발성 메모리(230)에 저장될 수 있다(S510).
상기 벤더 모드 진입 정보에 따라 벤더 모드에 진입할 경우, 커맨드 파싱 유닛(214) 또는 데이터 파싱 유닛(218)은 호스트(50)로부터 전송되는 벤더 모드 속성 정보를 추출할 수 있다. 추출된 벤더 모드 속성 정보는 휘발성 메모리(230)에 저장될 수 있다(S520).
컨트롤 로직(250)은 휘발성 메모리(230)를 액세스하여 제1 벤더 모드 정보(VMI1) 및 제2 벤더 모드 정보(VMI2)를 참조한 결과 벤더 모드 진입 정보 및 벤더 모드 속성 정보 모두를 디텍팅한 경우 eMMC 장치(100)를 해당 벤더 모드에 진입시킬 수 있다(S530).
도 16 내지 19는 도 15에 도시된 본 발명의 일 실시예에 따른 eMMC 장치가 수신하는 라이트 데이터에 의한 벤더 모드 실행 방법의 적용예 들을 나타내는 흐름도이다.
도 2, 도 15 및 도 16 내지 도 19를 참조하면, 도 16 내지 19에 도시된 라이트 데이터에 의한 벤더 모드 실행 방법의 적용예들의 각각의 단계(S510-1, S520-1, S520-2, S530-1 및 S530-2)는 도 15에 도시된 각각의 단계들(S510 내지 S530)에 대응된다.
벤더 모드에 진입할지 여부를 판단하는 단계(S510)는 호스트(50)로부터 수신되는 제1 라이트 데이터의 패턴을 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계(S510-1)에 적용될 수 있다.
벤더 모드 속성 정보를 수신하는 단계(S520)는 제1 라이트 데이터의 패턴을 분석하여 벤더 모드에 진입할지 여부가 판단되는 경우(S510-1) 상기 판단 결과에 따라 상기 제1 라이트 데이터 이후에 수신되는 제1 라이트 커맨드 및 제1 리드 커맨드 중 어느 하나에 포함되는 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계(S520-1) 또는 상기 판단 결과에 따라 상기 제1 라이트 데이터 및 상기 제1 라이트 데이터 이후에 수신되는 제2 라이트 데이터 중 어느 하나에 포함되는 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계(S520-2)에 적용될 수 있다.
벤더 모드를 실행하는 단계(S530)는 커맨드들 또는 라이트 데이터에 포함된 벤더 모드 속성 정보를 수신한 이후(S520-1, S520-2) 상기 벤더 모드 속성 정보에 따라 결정된 패치 업데이트 모드를 실행하는 단계(S530-1) 또는 상기 벤더 모드 속성 정보에 따라 결정된 덤프 데이터 모드를 실행하는 단계(S530-2)에 적용될 수 있다.
따라서, 도 16 내지 19에 도시된 커맨드에 의한 벤더 모드 실행 방법의 적용예들은 도 15에 도시된 각각의 단계들(S510 내지 S530)에 대응되는 적용예들(S510-1, S520-1, S520-2, S530-1 및 S530-2)의 조합을 나타낸다.
도 16 내지 19에 도시된 커맨드에 의한 벤더 모드 실행 방법의 적용예들은 예시적인 것이며, 본 발명의 범위는 이에 한정되지 않는다.
실시예에 따라, 벤더 모드의 종류에 따라 벤더 모드 속성 정보가 불필요한 경우 벤더 모드 속성 정보를 수신하는 단계(S520-1 및 S520-2)는 생략될 수 있다. 예컨대, 벤더 모드 진입 정보가 포함되는 데이터의 종류에 따라 벤더 모드의 종류가 결정되는 경우 벤더 모드 속성 정보를 수신하는 단계(S520-1 및 S520-2)는 생략될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명에 따른 객체 정보 추정 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
eMMC 시스템(10)
호스트(50)
eMMC 장치(100)
호스트 인터페이스(210)
휘발성 메모리(230)
컨트롤 로직(250)
메모리 인터페이스(270)
플래시 메모리(300)

Claims (25)

  1. 호스트로부터 수신되는 커맨드(command)의 명령 인자(command argument)를 분석하여 벤더 모드에 진입할지 여부를 판단하는 단계;
    상기 판단 결과에 따라 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 수신하는 단계; 및
    상기 벤더 모드 속성 정보에 따라 결정된 상기 벤더 모드를 실행하는 단계를 포함하고,
    상기 벤더 모드에 진입할지 여부를 판단하는 단계는,
    상기 명령 인자가 메모리 셀 어레이의 사이즈에 대응하는 유효 어드레스의 범위 밖의 값인지에 따라 유효한 값인지 판단하는 단계;
    상기 명령 인자가 무효한 값인 경우 특정 어드레스에 해당하는 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하는지 여부를 판단하는 단계;
    상기 특정 어드레스에 해당하는 상기 명령 인자가 상기 벤더 모드 진입을 알리는 값과 일치하는 경우 벤더 모드 진입 정보를 생성하는 단계; 및
    상기 특정 어드레스에 해당하는 상기 명령 인자가 상기 벤더 모드 진입을 알리는 값과 일치하지 않는 경우 에러 정보를 생성하는 단계를 더 포함하는 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC))의 동작 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 커맨드는 리드 커맨드(read command) 또는 라이트 커맨드(write command)인 eMMC의 동작 방법.
  4. 제1항에 있어서,
    상기 커맨드가 제1 라이트 커맨드이고,
    상기 벤더 모드 속성 정보는 상기 제1 라이트 커맨드, 상기 제1 라이트 커맨드 이후에 수신되는 제2 라이트 커맨드 및 제1 리드 커맨드 중 어느 하나에 포함되는 eMMC의 동작 방법.
  5. 제1항에 있어서,
    상기 커맨드가 제1 라이트 커맨드이고,
    상기 벤더 모드 속성 정보는 상기 제1 라이트 커맨드 이후에 수신되는 제1 라이트 데이터에 포함되는 eMMC의 동작 방법.
  6. 제1항에 있어서,
    상기 커맨드가 제1 리드 커맨드이고,
    상기 벤더 모드 속성 정보는 상기 제1 리드 커맨드, 상기 제1 리드 커맨드 이후에 수신되는 제2 리드 커맨드 및 제1 라이트 커맨드 중 어느 하나에 포함되는 eMMC의 동작 방법.
  7. 제1항에 있어서,
    상기 커맨드가 제1 리드 커맨드이고,
    상기 벤더 모드 속성 정보는 상기 벤더 모드 속성 정보는 상기 제1 리드 커맨드 이후에 수신되는 제1 라이트 데이터에 포함되는 eMMC의 동작 방법.
  8. 제1항에 있어서,
    상기 벤더 모드 속성 정보는 상기 벤더 모드의 타입(type) 정보를 포함하는 eMMC의 동작 방법.
  9. 제8항에 있어서,
    상기 벤더 모드가 패치 업데이트 모드이고,
    상기 벤더 모드 속성 정보는 시작 주소 정보 및 데이터 사이즈 정보 중 적어도 하나를 더 포함하고,
    상기 벤더 모드를 실행하는 단계는 상기 시작 주소 정보와 상기 데이터 사이즈 정보에 대응하는 메모리 셀 어레이에 패치 업데이트 데이터를 라이트하는 단계인 eMMC의 동작 방법.
  10. 제8항에 있어서,
    상기 벤더 모드가 덤프 데이터 모드이고,
    상기 벤더 모드 속성 정보는 시작 주소 정보 및 데이터 사이즈 정보 중 적어도 하나를 더 포함하고,
    상기 벤더 모드를 실행하는 단계는 상기 시작 주소 정보와 상기 데이터 사이즈 정보에 대응하는 메모리 셀 어레이로부터 덤프 데이터를 리드하는 단계인 eMMC의 동작 방법.
  11. 복수의 메모리 셀들이 배열된 메모리 셀 어레이를 포함하는 메모리; 및
    호스트와 상기 메모리 사이에서 데이터의 입출력을 제어하는 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는
    상기 호스트로부터 수신되는 커맨드(command)의 명령 인자(command argument)를 분석하여 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성하는 커맨드 파싱 유닛(command parsing unit); 및
    상기 벤더 모드 진입 정보에 따라 상기 메모리 컨트롤러의 모드를 변경하는 컨트롤 로직을 포함하고,
    상기 커맨드 파싱 유닛은,
    상기 명령 인자가 상기 메모리 셀 어레이의 사이즈에 대응하는 유효 어드레스의 범위 밖의 값인지에 따라 유효한 값인지 판단하고, 상기 명령 인자가 무효한 값인 경우 특정 어드레스에 해당하는 상기 명령 인자가 벤더 모드 진입을 알리는 값과 일치하는지 여부를 판단하고, 상기 특정 어드레스에 해당하는 상기 명령 인자가 상기 벤더 모드 진입을 알리는 값과 일치하는 경우 벤더 모드 진입 정보를 생성하고, 상기 특정 어드레스에 해당하는 상기 명령 인자가 상기 벤더 모드 진입을 알리는 값과 일치하지 않는 경우 에러 정보를 생성하도록 더 구성되는 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC)).
  12. 제11항에 있어서,
    상기 메모리 컨트롤러는
    상기 벤더 모드 진입 정보와 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 저장하는 휘발성 메모리를 더 포함하는 eMMC.
  13. 삭제
  14. 제12항에 있어서,
    상기 벤더 모드 속성 정보는 호스트로부터 수신되는 상기 커맨드 또는 데이터에 포함되는 eMMC.
  15. 복수의 메모리 셀들이 배열된 메모리 셀 어레이를 포함하는 메모리; 및
    호스트와 상기 메모리 사이에서 데이터의 입출력을 제어하는 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는
    상기 호스트로부터 수신되는 라이트 데이터(write data)의 패턴(pattern)을 분석하여 벤더 모드에 진입할지 여부에 대한 벤더 모드 진입 정보를 생성하는 데이터 파싱 유닛(data parsing unit); 및
    상기 벤더 모드 진입 정보에 따라 상기 메모리 컨트롤러의 모드를 변경하는 컨트롤 로직을 포함하고,
    상기 라이트 데이터의 패턴은,
    상기 메모리 셀 어레이의 적어도 하나의 로우 어드레스에 포함되는 적어도 하나의 라이트 데이터가 상기 벤더 모드 진입을 알리는 특정 값에 상응하는 것을 포함하고,
    상기 데이터 파싱 유닛은,
    상기 라이트 데이터의 패턴이 상기 특정 값과 일치하는 경우 상기 벤더 모드 진입 정보를 생성하도록 더 구성되는 임베디드 멀티미디어 카드(embedded Multimedia Card(eMMC)).
  16. 제15항에 있어서,
    상기 메모리 컨트롤러는
    상기 벤더 모드 진입 정보와 상기 벤더 모드의 실행에 필요한 벤더 모드 속성 정보를 저장하는 휘발성 메모리를 더 포함하는 eMMC.
  17. 제15항에 있어서,
    상기 데이터 파싱 유닛은 하드웨어(hardware)로 구현되는 eMMC.
  18. 제16항에 있어서,
    상기 벤더 모드 속성 정보는 호스트로부터 수신되는 커맨드 또는 데이터에 포함되는 eMMC.
  19. 제11항 또는 제15항의 eMMC; 및
    상기 eMMC와 데이터를 교환하고, 커맨드 및 라이트 데이터 중 적어도 하나에 상기 벤더 모드 진입 정보를 포함시켜 전송하는 호스트를 포함하는 eMMC 시스템.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020120102480A 2012-09-14 2012-09-14 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법 KR101986355B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120102480A KR101986355B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
US14/026,322 US9411537B2 (en) 2012-09-14 2013-09-13 Embedded multimedia card (EMMC), EMMC system including the EMMC, and method of operating the EMMC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120102480A KR101986355B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법

Publications (2)

Publication Number Publication Date
KR20140035772A KR20140035772A (ko) 2014-03-24
KR101986355B1 true KR101986355B1 (ko) 2019-06-05

Family

ID=50275675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120102480A KR101986355B1 (ko) 2012-09-14 2012-09-14 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법

Country Status (2)

Country Link
US (1) US9411537B2 (ko)
KR (1) KR101986355B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102192198B1 (ko) * 2014-02-24 2020-12-17 삼성전자주식회사 전자 장치 및 그것의 통신 방법
US20160057267A1 (en) * 2014-08-22 2016-02-25 Microsoft Technology Licensing, Llc Unified command protocol for different communication interfaces
KR101678933B1 (ko) * 2014-11-18 2016-12-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102291505B1 (ko) 2014-11-24 2021-08-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10466916B2 (en) * 2015-04-28 2019-11-05 American Megatrends International, Llc System and method of dynamic write protect of storage devices exposed by baseboard management controller (BMC)
JP6843508B2 (ja) * 2016-03-01 2021-03-17 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
US10817363B2 (en) 2018-03-19 2020-10-27 Micron Technology, Inc. Health characteristics of a memory device
US10949278B2 (en) * 2018-06-26 2021-03-16 Qualcomm Incorporated Early detection of execution errors
JP7234567B2 (ja) * 2018-10-22 2023-03-08 大日本印刷株式会社 電子情報記憶媒体、電子情報記憶媒体における処理方法、及びプログラム
CN111370053A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC测试方法和装置
US11069420B2 (en) 2019-07-25 2021-07-20 Micron Technology, Inc. In-system test of a memory device
CN110673988A (zh) * 2019-08-05 2020-01-10 广州妙存科技有限公司 一种不依赖其自带固件的eMMC调试方法
US11182312B2 (en) * 2020-04-02 2021-11-23 Micron Technology, Inc. Memory sub-system manufacturing mode

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210637A1 (en) * 2008-02-15 2009-08-20 Ka Ian Yung Providing device parameters
US20120110214A1 (en) * 2010-10-27 2012-05-03 Judah Gamliel Hahn Routing Commands within a Multifunctional Device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130958B2 (en) 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7155590B2 (en) * 2000-04-11 2006-12-26 Mathis Richard M Method and apparatus for computer memory protection and verification
KR100425692B1 (ko) 2002-01-23 2004-04-01 엘지전자 주식회사 프로세서의 외부 메모리 억세스 장치
US7032039B2 (en) 2002-10-30 2006-04-18 Atmel Corporation Method for identification of SPI compatible serial memory devices
US7243193B2 (en) * 2004-05-27 2007-07-10 Silverbrook Research Pty Ltd Storage of program code in arbitrary locations in memory
JP4828816B2 (ja) 2004-10-25 2011-11-30 株式会社東芝 メモリカード、半導体装置、及びメモリカードの制御方法
US7743202B2 (en) 2006-03-09 2010-06-22 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US7900012B2 (en) * 2007-04-13 2011-03-01 Phison Electronics Corp. Secure storage apparatus and method for controlling the same
US8478928B2 (en) * 2009-04-23 2013-07-02 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
US8356131B2 (en) * 2009-10-25 2013-01-15 Sony Mobile Communications Ab System and method for controlling interruption of a process in electronic equipment based on priority of the process, and program
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
KR101740679B1 (ko) 2010-08-03 2017-05-26 삼성전자주식회사 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210637A1 (en) * 2008-02-15 2009-08-20 Ka Ian Yung Providing device parameters
US20120110214A1 (en) * 2010-10-27 2012-05-03 Judah Gamliel Hahn Routing Commands within a Multifunctional Device

Also Published As

Publication number Publication date
KR20140035772A (ko) 2014-03-24
US9411537B2 (en) 2016-08-09
US20140082224A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
KR101986355B1 (ko) 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
US9043549B2 (en) Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
KR101988260B1 (ko) 임베디드 멀티미디어 카드, 및 이의 동작 방법
EP2973572B1 (en) System and method of reading data from memory concurrently with sending write data to the memory
US9176865B2 (en) Data writing method, memory controller, and memory storage device
KR20160006709A (ko) 고성능 및 저비용 플래시 변환 계층을 위한 시스템 및 방법
TW201732597A (zh) 資料儲存裝置和其操作方法
US8775760B2 (en) Modifying a host interface setting for a non-volatile memory module
US20160062659A1 (en) Virtual memory module
TWI492054B (zh) 快閃記憶體的模擬方法與模擬器
KR20190022933A (ko) 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법
KR20170110810A (ko) 데이터 처리 시스템 및 그것의 동작 방법
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20170094674A (ko) 데이터 저장 장치
KR20210025836A (ko) 메모리 컨트롤러, 이를 포함하는 저장 장치 및 메모리 컨트롤러의 동작 방법
KR102330394B1 (ko) 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법
KR102475688B1 (ko) 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법
KR102350644B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102583592B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11526454B2 (en) Data storage device with an exclusive channel for flag checking of read data, and non-volatile memory control method
TWI494944B (zh) 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置
KR20170031311A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN113918081B (zh) 计算机可读取存储介质、配置可靠命令的方法及装置
TWI503841B (zh) 寫入方法、記憶體控制器與記憶體儲存裝置
KR20220045342A (ko) 호스트 장치, 데이터 저장 장치, 데이터 처리 시스템 및 데이터 처리 방법

Legal Events

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