KR102025088B1 - 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치 - Google Patents

메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치 Download PDF

Info

Publication number
KR102025088B1
KR102025088B1 KR1020120097254A KR20120097254A KR102025088B1 KR 102025088 B1 KR102025088 B1 KR 102025088B1 KR 1020120097254 A KR1020120097254 A KR 1020120097254A KR 20120097254 A KR20120097254 A KR 20120097254A KR 102025088 B1 KR102025088 B1 KR 102025088B1
Authority
KR
South Korea
Prior art keywords
address
command
instruction
host
interface
Prior art date
Application number
KR1020120097254A
Other languages
English (en)
Other versions
KR20140030733A (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 KR1020120097254A priority Critical patent/KR102025088B1/ko
Priority to US14/016,167 priority patent/US9405673B2/en
Publication of KR20140030733A publication Critical patent/KR20140030733A/ko
Application granted granted Critical
Publication of KR102025088B1 publication Critical patent/KR102025088B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리 장치의 복수개의 어드레스를 제공받아, 비휘발성 메모리 장치의 복수개의 플래인들이 동시에 동작 명령어를 수행하도록 제어 하는 메모리 컨트롤러가 제공된다. 메모리 컨트롤러는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 상기 제 2 어드레스에서 동시에 수행하는지 여부를 판단하는 메모리 컨트롤러.

Description

메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치{Memory controller and electronic device having the memory controller}
본 발명의 개념에 따른 실시예는 비휘발성 메모리를 제어하는 메모리 컨트롤러의 구동 방법 및 상기 메모리 컨트롤러를 포함하는 전자 장치.
메모리 장치는 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 분류된다. 휘발성 메모리 장치는 전원(power)이 제거될 때 데이터는 유지되지 않는다. 그러나, 비휘발성 메모리 장치는 전원이 제거되더라도 데이터는 유지된다.
비휘발성 메모리 장치의 예들로서 ROM(read only memory), 또는 EEPROM (Electrically Erasable Programmable Read-Only Memory) 등이 있다.
플래시(flash) EEPROM으로 소개된 플래시 메모리 장치의 구조와 동작은 종래의 EEPROM의 구조와 동작과 서로 다르다. 플래시 메모리 장치는 블락(block) 단위로 전기적 소거(electric erase) 동작을 수행하고 비트 단위로 프로그램 동작을 수행할 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 호스트로부터 제 1 어드레스 및 제 2 어드레스를 제공받고, 제 1 어드레스 및 제 2 어드레스를 분리하는 어드레스 상태 분리 명령어를 제공받아 제 1 어드레스와 제 2 어드레스에서 동시에 명령어를 수행하는 것 여부를 판단하는 메모리 컨트롤러를 제공하는 것이다.
본 발명의 몇몇 실시예에 따른 메모리 컨트롤러는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스, 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스를 포함하고, 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리에서 수행하도록 제어하고, 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 제 1 어드레스와 제 2 어드레스와의 상관 관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는 것 여부를 판단하는 것이다. 제 1 인터페이스는 호스트와 교신하는 호스트 인터페이스이다. 또한, 어드레스 상태 분리 명령어는 상기 제 1 어드레스와 상기 2어드레스 사이에 제공되다. 제 1 인터페이스는 상기 제 2 명령어를 제공받고, 제 3 어드레스를 순서대로 제공받는다.
본 발명의 다른 실시예에 따르면, 제 1 명령어는 프로그램 명령어이며, 제 1 인터페이스는 제 1 명령어, 제 2 어드레스 및 제 1 명령어에 대응되고 프로그램 될 제 1 데이터를 순서대로 제공받는다. 제 1 프로그램 명령어 수행시, 상기 제 2 어드레스 정보를 제 1 어드레스의 메타 데이터 영역에 프로그램한다.
본 발명의 또 다른 실시예에 따른 메모리 컨트롤러에 있어서, 제 1 명령어는 리드 또는 이레이즈 명령어이다.
본 발명의 또 다른 실시예에 따른 전자 장치는 호스트 및 호스트와 교신하고, 적어도 하나 이상의 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는, 호스트와 연결되어 있으며, 제 1 명령어, 제 1 어드레스, 제 2 어드레스, 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어를 제공받는 호스트 인터페이스를 포함하고, 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하며, 제 1 어드레스와 제 2 어드레스의 상관 관계를 판단하는 마이크로프로세서를 포함한다. 또한, 디코딩된 명령어 및 맵핑된 어드레스를 제공하는 메모리 인터페이스를 포함한다.
메모리 컨트롤러는 비휘발성 메모리 장치의 호스트로부터 어드레스 분리 커맨드를 제공받아, 복수개의 플래인이 동시에 동작 할 수 있는지 여부를 결정하여, 비휘발성 메모리 장치의 멀티 플래인 동작 속도를 증가시킬 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 시스템을 포함하는 전자장치의 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 메모리 시스템을 보여주는 블록도이다.
도 3는 다른 실시예에 따라 비휘발성 메모리 시스템을 포함하는 전자장치를 도시하고 있다.
도 4는 본 발명의 일 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다.
도 5는 본 발명의 다른 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다.
도 6는 본 발명의 다른 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다.
도 7는 본 발명의 다른 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다.
도 8는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 9은 본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 10는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 11 내지 도 13은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 시스템을 포함하는 전자장치의 블록도이다.
도 1을 참조하면, 전자 장치(1000)는 호스트(1200)와 비휘발성 메모리 시스템(1100)을 포함한다. 호스트(1200)는 예를 들면 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, 스마트 폰, 포터블 디바이스, MP3, PMP, PSP, PDA, 이메일 송수신 장치 등과 같은 전자 장치가 될 수 있다. 비휘발성 메모리 시스템(1100)은 메모리 컨트롤러(1120) 및 비휘발성 메모리 장치(1110)를 포함한다. 메모리 컨트롤러(1120)는 비휘발성 메모리 장치(1110)를 전반적으로 제어 한다. 비휘발성 메모리 장치(1100)는 메모리 컨트롤러(1120)의 제어에 따라 소거, 쓰기 또는 읽기 동작 등을 수행할 수 있다. 이를 위해 비휘발성 메모리 장치(1100)는 입출력 라인을 통해 커맨드(CMD), 어드레스(ADDR), 그리고 데이터(DATA)를 입력받는다. 또한, 비휘발성 메모리 장치(1100)는 전원 라인을 통해 전원(PWR)을 입력받고, 제어 라인을 통해 제어 신호(CTRL)를 입력받는다. 제어 신호(CTRL)은 예를 들어, 커맨드 래치 인에이블(CLE), 어드레스 래치 인에이블(ALE), 칩 인에이블(nCE), 쓰기 인에이블(nWE), 읽기 인에이블(nRE) 등이 포함할 수 있다.
비휘발성 메모리 장치(1110)는 플래시 메모리(Flash Memory), EEPROM(electrically Erasable Programmable Read-Only Memory), FRAM(ferroelectrics random access memory), PRAM(phase change random access memory), MRAM(magnetoresistive random access memory)를 포함한다. 도 1에서는 예시적으로 낸드 플래시 메모리 장치를 도시하였으나, 이에 한정된 것은 아니다. 도 1을 참조하면, 비휘발성 메모리 장치(1110)는 메모리 컨트롤러(1120)부터 제공받은 데이터를 저장하는 스토리지 유닛(storage unit) 역할을 할 수 있다. 비휘발성 메모리 장치(1110)는 데이터를 저장하는 복수개의 셀 어레이를 포함할 수 있다. 셀 어레이는 복수개의 플래인(PL1~PLn)(단, n은 자연수)을 포함할 수 있다. 플래인(PL1~PLn)은 복수개의 블락(BLK1~BLKm)(단, m은 자연수)을 포함하며, 블락(BLK1~BLKm)은 복수개의 페이지(PAGE1~PAGEk)(단, k는 자연수)를 포함한다. 블락(BLK1~BLKm)은 이레이즈 명령어를 수행하는 단위, 즉 이레이즈 동작이 동시에 이루어지는 단위일 수 있다. 페이지(PAGE1~PAGEk)는 프로그램 및 리드 명령어를 수행하는 단위, 즉, 프로그램 및 리드 동작이 동시에 이루어지는 단위일 수 있다.
본 발명의 실시 예에 따라서, 메모리 컨트롤러(1120)는 호스트와 비휘발성 메모리 장치(1110)와 연결되어 있다. 메모리 컨트롤러(1120)는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 호스트 인터페이스를 포함한다. 또한, 메모리 컨트롤러(1120)는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는 것 여부를 판단한다. 이에 대해서는 후술하도록 한다.
도 2는 본 발명의 다른 실시예에 따른 메모리 시스템(2000)을 보여주는 블록도이다.
도 2을 참조하면, 메모리 시스템(2000)은 비휘발성 메모리 장치(2200) 및 메모리 컨트롤러(2100)를 포함한다.
비휘발성 메모리 장치(2200)는 도 1에서 도시한 것과 같이 플래시 메모리(Flash Memory), EEPROM(electrically Erasable Programmable Read-Only Memory), FRAM(ferroelectrics random access memory), PRAM(phase change random access memory), MRAM(magnetoresistive random access memory)를 포함한다. 또한, 도 2를 참조하면, 비휘발성 메모리 장치(2200)는 메모리 컨트롤러(2100)부터 제공받은 데이터를 저장하는 스토리지 유닛(storage unit) 역할을 할 수 있다. 비휘발성 메모리 장치(2200)는 예를 들면, 낸드 플래시 메모리 장치일 수 있다. 비휘발성 메모리 장치(2200)는 데이터를 저장하는 복수개의 셀 어레이를 포함할 수 있다. 셀 어레이는 복수개의 플래인을 포함할 수 있다. 플래인은 복수개의 블락을 포함하며, 블락은 복수개의 페이지를 포함한다.
컨트롤러(2100)는 마이크로 프로세서(microprocessor;2110), 램(RAM;2130), 롬(ROM;2140), ECC 유닛(2150), 호스트 인터페이스(2120)(2120) 및 메모리 인터페이스(memory interface)(2160), 플래인 제어 유닛(2170), 레지스터(2180) 등을 포함할 수 있다. 컨트롤러(2100)의 구성요소들(2110, 2120, 2130, 2140, 2150, 2160, 2170, 2180)은 버스(bus)를 통해서 전기적으로 연결될 수 있다.
호스트 인터페이스(2120)는 컨트롤러(1200)를 포함한 메모리 시스템(2000)과 호스트 사이의 인터페이스를 수행할 수 있다. 도 2를 참조하면, 호스트 인터페이스(2120)는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는다. 호스트 인터페이스(2120)는 호스트로부터 제 1 어드레스와 제 2 어드레스 사이에 어드레스 상태 분리 명령어를 제공받을 수 있다. 그리고 실시 예에 따라서, 제 2 어드레스를 받은 후에, 제 2 어드레스에 대응되는 제 2 명령어를 제공받고, 제 3 어드레스를 순서대로 받을 수 있다. 제 3 어드레스는 제 2 어드레스와 연속되는 어드레스이며, 제 1 명령어 및 제 2 명령어에 대응되지 않는다. 호스트 인터페이스(2120)는 예를 들어, 호스트로부터 로지컬 어드레스(logical address), 커맨드 래치 인에이블 (CLE) 시그널, 어드레스 래치 인에이블(ALE), 레디 및 비지(R/B) 시그널, 칩 인에이블(CE) 시그널을 컨트롤러로 제공해 줄 수 있다. 또한, 호스트 인터페이스(2120)는 미리 결정된 프로토콜에 의해서 호스트와 통신할 수 있다. 예를 들어, 미리 결정된 프로토콜은 USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) 등일 수 있으나, 이에 한정되지 않는다.
롬(ROM;2140)은 메모리 시스템(2000)의 구동 펌웨어 코드를 저장할 수 있으며, 본 발명의 범위가 이에 한정되는 것은 아니다. 펌웨어 코드는 롬(2140)이외의 다양한 비휘발성 메모리 장치(1100), 예를 들면, 낸드 플래시 메모리 장치에 저장될 수도 있다. 따라서, 마이크로 프로세서(2110)의 제어 또는 개입이란, 마이크로 프로세서(1210)의 하드웨어적인 직접적 제어뿐만 아니라, 마이크로 프로세서(1210)에의해서 구동되는 소프트웨어인 펌웨어의 간섭도 포함 할 수 있다.
램(RAM; random access memory;2130)은 버퍼(buffer)역할을 하는 메모리로, 호스트 인터페이스(2120)를 통하여 입력되는 제 1 및 제 2 명령어, 제 1, 및 제 2 어드레스, 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 각종 변수들 또는 비휘발성 메모리 장치(2100)로부터 출력되는 데이터들을 저장할 수 있다. 그리고, 비휘발성 메모리 장치(2100)로 입력되고 출력되는 데이터, 각종 파라미터 및 변수들을 저장할 수 있다.
마이크로 프로세서(2110)는 회로, 로직, 코드 또는 이들의 조합으로 구현가능하며, 마이크로 컨트롤러(1200)를 포함한 메모리 시스템(2000)의 동작을 전반적으로 제어한다. 메모리 시스템(2000)에 전원이 인가되면, 마이크로 프로세서는 롬()에 저장된 메모리 시스템(2000) 동작을 위한 펌웨어(firmware)를 램()상에서 구동시킴으로써 메모리 시스템(2000)의 전반적인 동작을 제어할 수 있다.
또한, 마이크로프로세서(2110)는 호스트 인터페이스(2120)를 통해 인가되는 명령어를 해석하고, 해석 결과에 따라 비휘발성 메모리 장치(2200) 의 전반적인 동작을 제어할 수 있다. 구체적으로 도 2를 참조하면, 마이크로프로세서(2110)는 호스트 인터페이스(2120)를 통하여 제공된 제 1 명령어를 디코딩하며, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리에서 수행하도록 제어한다. 또한, 마이크로프로세서(2110)는 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정한다. 다시 말해서, 마이크로프로세서는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는 것 여부를 판단한다.
메모리 인터페이스(2160)는 컨트롤러(2100)와 비휘발성 메모리 장치(2200) 사이에 신호를 교신할 수 있다. 메모리 인터페이스(2160)를 통해서 마이크로프로세서(2110)가 요구하는 명령어가 비휘발성 메모리 장치(2200)로 제공될 수 있으며, 또한 컨트롤러(2100)로부터 비휘발성 메모리 장치(2200)로 데이터가 전송될 수 있다. 또한, 비휘발성 메모리 장치(2200) 로부터 출력되는 데이터는 메모리 인터페이스(2160)를 통해서 컨트롤러(2100)로 제공된다.
또한, 마이크로프로세서(2110)는 램에 저장된 제 1 명령어 및 파라미터들을 사용하여, 호스트로부터 제공된 파라미터들을 비휘발성 메모리에 최적화되도록 맵핑된다. 예를 들면, 호스트로부터 제공된 제 1 명령어가 리드 명령에 해당하는 경우, 마이크로프로세서(2110)는 제 1 명령어를 비휘발성 메모리 인터페이스(2160)를 통해서 제공될 제 2 명령어, 즉 메모리 리드 명령어 또는 메모리 이레이즈 명령어로 맵핑 할 수 있다. 또한, 마이크로프로세서는 램(2130)에 저장된 호스트로부터 제공된 로직컬 어드레스를 비휘발성 메모리에 대응되는 물리적 어드레스로 맵핑 할 수 있다.
레지스터(2180)는 호스트 인터페이스(2160)를 통해서 제공된 제 1 명령어, 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 명령어를 저장 할 수 있다. 또한, 레지스터는 마이크로 프로세서의 제어에 따라, 디코딩된 제 1 및 제 2 명령어와 맵핑된 제 1 및 제 2 어드레스를 저장할 수 있다. 레지스터(2180)는 실시예에 따라, 미이크로 프로세서(2110) 내부에 위치할 수 있고, 별도의 레지스터로 버스에 해서, 컨트롤러의 다른 구성요소들과 전기적으로 연결될 수 있다.
실시 예들에 따라서, 제 1 명령어는 리드 또는 이레이즈 명령어가 될 수 있다. 또한, 실시예들에 따라서, 제 1 명령어는 프로그램 명령어가 될 수 있다. 제 1 명령어가 제 1 명령어인 때에는, 호스트 인터페이스(2120)는 제 1 명령어, 제 2 어드레스 및 프로그램될 제 1 데이터 순서로 제공받을 수 있다. 또한, 제 1 프로그램 명령어 수행시, 제 2 어드레스 정보를 제 1 어드레스의 메타 데이터 영역에 프로그램 하여, 비정상적으로 공급 전원이 오프된 상태(sudden power off)에서, 프로그램 동작 종료 어드레스를 추적할 수 있다. 따라서, 비정성적으로 공급 전원이 오프로 인한 데이터 손실을 최소화 할 수 있다.
ECC 유닛(error correction code unit; 2150)은 에러 비트 정정을 수행한다. 도 2를 참조하면, ECC 유닛(2150)은 ECC 인코더(2151)와 ECC 디코더(2152)를 포함한다.
ECC 인코더(2151)는 메모리 시스템(2000)의 호스트 인터페이스(2120)를 통해 입력되는 데이터의 오류정정 인코딩을 하여, 패리티(parity) 비트가 부가된 코드워드(codeword)를 생성한다. 코드워드는 비휘발성 메모리 장치(1100)에 저장될 수 있다.
ECC 디코더(2152)는 출력된 데이터에 대하여 에러 정정 디코딩을 수행하고 수행 결과에 따라 에러 정정 디코딩의 성공 여부를 판단하고 판단 결과에 따라 지시 신호를 출력한다. 리드한 데이터는 ECC 디코더로 전송되고, ECC 디코더는 페리티(parity) 비트를 사용하여 데이터의 에러 비트를 정정 할 수 있다. 에러 비트 개수가 정정 가능한 에러 비트 한계치 이상 발생하면, ECC 디코더는 에러 비트를 정정할 수 없고, 에러 정정 실패(fail)가 발생한다.
ECC 인코더(2151)와 ECC 디코더(2152)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 할 수 있으며 이에 한정되는 것은 아니다.
ECC 인코더(2151) 및 ECC 디코더(2152)는 오류정정화를 위한 회로, 시스템 또는 장치를 모두 포함할 수 있다.
도 3는 다른 실시예에 따라 비휘발성 메모리 시스템(3100)을 포함하는 전자장치(3000)를 도시하고 있다.
도 3를 참조하면, 비휘발성 메모리 시스템(3100)을 포함하는 전자 장치(3000)는 예를 들면, 모바일 폰, 디지털 카메라, 이동 음악 장치, 장난감, 이메일 송수신 장치 와 같은 어떠한 비휘발성 메모리 장치를 포함하는 다양한 장치로 사용될 수 있다. 호스트(3200)는 호스트 프로세서를 포함하며, 호스트 채널을 통해서, 호스트와 비휘발성 메모리 시스템은 초기 동작 명령어(예;제 1 명령어), 로직컬 어드레스, 입출력 데이터 등 정보를 교신(communication)한다. 또한, 호스트는 비휘발성 메모리 시스템에 칩 인에이블 (CE) 시그널, 로지컬 어드레스, 레디 또는 비지(R/B)시그널을 제공할 수 있다.
도 3를 참조하면, 메모리 시스템(3100)은 복수개의 메모리 장치(3110n) 및 메모리 컨트롤러(3110)를 포함한다. 설명의 편의상, 메모리는 비휘발성 메모리 장치는 낸드 플래시 메모리로 도시하고 있으나, 이에 제한되는 것은 아니다. 메모리 컨트롤러는 호스트로부터 제 1 명령어, 제 1 어드레스, 제 2 어드레스 및 제 1 어드레스와 제 2 어드레스 사이에 어드레스 상태 분리 명령어를 제공받는다.
호스트 인터페이스는 호스트로부터 제 1 어드레스와 제 2 어드레스 사이에 어드레스 상태 분리 명령어를 제공받을 수 있다. 그리고 실시 예에 따라서, 제 2 어드레스를 받은 후에, 제 2 어드레스에 대응되는 제 2 명령어를 제공받고, 제 3 어드레스를 순서대로 받을 수 있다. 제 3 어드레스는 제 2 어드레스와 연속되는 어드레스이며, 제 1 명령어 및 제 2 명령어에 대응되지 않는다. 마이크로프로세서는 호스트 인터페이스를 통하여 제공된 제 1 명령어를 디코딩하며, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리에서 수행하도록 제어한다. 또한, 마이크로프로세서는 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정한다. 다시 말해서, 마이크로프로세서는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는 것 여부를 판단한다.
도 4는 본 발명의 일 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다. 도 4를 참조하면, C1 단계는 호스트로부터 프로그램 수행을 위한 명령어 및 어드레스를 제공받는 것을 보여주고 있다. 도 4를 참조하면, C1 및 C2 단계는 제 1 인터페이스인 호스트 인터페이스는 호스트로부터 제 1 명령어, 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어를 제공받는다. C1 단계를 참조하면, 어드레스 상태 분리 명령어는 제 1 어드레스 및 제 2 어드레스 사이에 제공된 제 1 어드레스 및 제 2 어드레스를 구분 할 수 있는 정보를 제공한다. C1 단계에서, 호스트로부터 제공받는 제 1 명령어는 제 1 어드레스에 대응된다.
도 4를 참조하면, 제 1 명령어는 프로그램 명령어이고, 호스트 인터페이스는 제 2 어드레스를 제공받은 후에, 제 1 명령어에 대응되고, 프로그램 될 제 1 데이터를 제공받는다. 또한, 호스트 인터페이스는 제 2 어드레스에 대응되는 제 2 명령어를 제공받고, 제 2 어드레스, 어드레스 상태 분리 명령어 및, 제 3 어드레스를 제공받는다.
도 4의 C2 단계를 참조하면, 컨트롤러는 마이크로프로세서의 제어 하에, 제 1 명령어를 디코딩하고, 제 1 어드레스를 비휘발성 메모리의 블락 및 페이지 어드레스로 맵핑하여, 제 1 명령어가 비휘발성 메모리 장치에서 수행될 수 있도록 제어한다. 또한, 컨트롤러는 제 1 명령어를 비휘발성 메모리에 수행시, 제 2 어드레스를 메타 데이터 영역 또는 스페어 페이지에 프로그램 하도록 제어한다. 제 2 어드레스는 제 1 어드레스와 순차적인 어드레스로서, 전자 장치가 서든 파워 오프(sudden power off) 현상 발생시에, 파워 오프기가 될 시기에 프로그램 동작이 수행되는 페이지 어드레스를 추적하여, 서든 파워 오프 현상에 따른 손실을 최소화 할 수 있다.
도 4의 C2 단계를 참조하면, 마이크로프로세서는 어드레스 상태 분리 명령어를 참조하여, 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정한다. 또한, 제 1 인터페이스는 제 2 어드레스와 대응되는 제 2 명령어를 제 2 어드레스 수신 후에 제공받는다. 제 2 명령어는 프로그램 명령어이다. 제 1 어드레스와 제 2 어드레스의 상관 관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 1 어드레스에서 동시에 수행하는 여부를 판단하는 것이다. 따라서, 마이크로프로세서가 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정한 결과를 참조하여, 제 1 명령어 수행을 제 2 명령어를 제공 받은 후에 수행하여, 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행 될 수 있도록 제어할 수 있다.
도 4의 C1 단계를 참조하면, 호스트 인터페이스는 제 2 명령어를 수신한 이후에, 제 2 어드레스 및 제 3 어드레스를 수신 할 수 있다. 그리고, 호스트 인터페이스는 제 3 어드레스를 수신한 후에, 제 2 명령어에 대응되는 프로그램될 제 2 데이터를 제공받는다. 제 3 어드레스는 제 1 명령어 및 제 2 명령어에 대응되지 않고, 제 2 어드레스와 연속된 어드레스이다.
도 5는 본 발명의 다른 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다. 도 5를 참조하면, D1 단계는 호스트로부터 프로그램 수행을 위한 명령어 및 어드레스를 제공받는 것을 보여주고 있다. 도 5를 참조하면, D1 및 D2 단계는 제 1 인터페이스인 호스트 인터페이스는 호스트로부터 제 1 명령어, 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어를 제공받는다. D1 단계를 참조하면, 어드레스 상태 분리 명령어는 제 1 어드레스 및 제 2 어드레스 사이에 제공된되 제 1 어드레스 및 제 2 어드레스를 구분 할 수 있는 정보를 제공한다. D1 단계에서, 호스트로부터 제공받는 제 1 명령어는 제 1 어드레스에 대응된다.
도 5를 참조하면, 제 1 명령어는 프로그램 명령어이고, 호스트 인터페이스는 제 2 어드레스를 제공받은 후에, 제 1 명령어에 대응되고, 프로그램 될 제 1 데이터를 제공받는다. 또한, 호스트 인터페이스는 제 2 어드레스에 대응되는 제 2 명령어를 제공받고, 어드레스 분리 명령어 및, 제 3 어드레스를 제공받는다. 호스트 인터페이스는 제 2 명령어 제공시에는 별도의 대응되는 제 2 어드레스를 제공받지 않고, 제 1 명령어 수신시에 제공된 제 2 어드레스를 사용하여, 제 2 명령어 동작을 수행한다.
도 5의 D2 단계를 참조하면, 컨트롤러는 마이크로프로세서의 제어 하에, 제 1 명령어를 디코딩하고, 제 1 어드레스를 비휘발성 메모리의 블락 및 페이지 어드레스로 맵핑하여, 제 1 명령어가 비휘발성 메모리 장치에서 수행될 수 있도록 제어한다. 또한, 컨트롤러는 제 1 명령어를 비휘발성 메모리에 수행시, 제 2 어드레스를 메타 데이터 영역 또는 스페어 페이지에 프로그램 하도록 제어한다. 제 2 어드레스는 제 1 어드레스와 순차적인 어드레스로서, 전자 장치가 서든 파워 오프(sudden power off) 현상 발생시에, 파워 오프기가 될 시기에 프로그램 동작이 수행되는 페이지 어드레스를 추적하여, 서든 파워 오프 현상에 따른 손실을 최소화 할 수 있다.
도 5의 D2 단계를 참조하면, 마이크로프로세서는 어드레스 상태 분리 명령어를 참조하여, 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정한다. 또한, 제 1 인터페이스는 제 2 어드레스와 대응되는 제 2 명령어를 제 2 어드레스 수신 후에 제공받는다. 제 2 명령어는 프로그램 명령어이다. 제 1 어드레스와 제 2 어드레스의 상관 관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 1 어드레스에서 동시에 수행하는 여부를 판단하는 것이다. 따라서, 마이크로프로세서가 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정한 결과를 참조하여, 제 1 명령어 수행을 제 2 명령어를 제공 받은 후에 수행하여, 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행 될 수 있도록 제어할 수 있다.
도 5의 D1 단계를 참조하면, 호스트 인터페이스는 제 2 명령어를 수신한 이후에, 제 2 어드레스 및 제 3 어드레스를 수신 할 수 있다. 그리고, 호스트 인터페이스는 제 3 어드레스를 수신한 후에, 제 2 명령어에 대응되는 프로그램될 제 2 데이터를 제공받는다. 제 3 어드레스는 제 1 명령어 및 제 2 명령어에 대응되지 않고, 제 2 어드레스와 연속된 어드레스이다.
도 6는 본 발명의 다른 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다.
도 6를 참조하면, E1 및 E2 단계는 제 1 인터페이스인 호스트 인터페이스는 호스트로부터 제 1 명령어, 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어를 제공받는다. E1 단계를 참조하면, 어드레스 상태 분리 명령어는 제 1 어드레스 및 제 2 어드레스 사이에 제공된 제 1 어드레스 및 제 2 어드레스를 구분 할 수 있는 정보를 제공한다. E1 단계에서, 호스트로부터 제공받는 제 1 명령어는 제 1 어드레스에 대응된다.
도 6를 참조하면, 제 1 명령어는 리드 또는 이레이즈 명령어이고, 제 2 어드레스를 제공받은 후에, 호스트 인터페이스는 제 2 어드레스에 대응되는 제 2 명령어를 제공받고, 제 2 어드레스, 어드레스 상태 분리 명령어 및, 제 3 어드레스를 제공받는다. 제 3 어드레스는 제 1 명령어 및 제 2 명령어에 대응되지 않고, 제 2 어드레스와 연속된 어드레스이다.
도 7 호스트 인터페이스는 제 2 명령어 제공시에는 별도의 대응되는 제 2 어드레스를 제공받지 않고, 제 1 명령어 수신시에 제공된 제 2 어드레스를 사용하여, 제 2 명령어 동작을 수행한다.
도 6의 E2 단계를 참조하면, 컨트롤러는 마이크로프로세서의 제어 하에, 제 1 명령어를 디코딩하고, 제 1 어드레스를 비휘발성 메모리의 블락 및 페이지 어드레스로 맵핑하여, 제 1 명령어가 비휘발성 메모리 장치에서 수행될 수 있도록 제어한다.
도 6의 E2 단계를 참조하면, 마이크로프로세서는 어드레스 상태 분리 명령어를 참조하여, 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정한다. 또한, 제 1 인터페이스는 제 2 어드레스와 대응되는 제 2 명령어를 제 2 어드레스 수신 후에 제공받는다. 도 6을 참조하면, 제 1 및 제 2 명령어는 리드 또는 이레이즈 명령어가 될 수 있다. 제 1 어드레스와 제 2 어드레스의 상관 관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는 여부를 판단하는 것이다. 따라서, 마이크로프로세서가 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정한 결과를 참조하여, 제 1 명령어 수행을 제 2 명령어를 제공 받은 후에 수행하여, 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행 될 수 있도록 제어할 수 있다.
도 7는 본 발명의 다른 실시예에 따른 호스트로부터 메모리 컨트롤러에 제공되는 명령어 및 어드레스 전송 순서를 도시하고 있다.
도 7를 참조하면, F2 및 F2 단계는 제 1 인터페이스인 호스트 인터페이스는 호스트로부터 제 1 명령어, 제 1 어드레스, 제 2 어드레스 및 제 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어를 제공받는다. F2 단계를 참조하면, 어드레스 상태 분리 명령어는 제 1 어드레스 및 제 2 어드레스 사이에 제공된 제 1 어드레스 및 제 2 어드레스를 구분 할 수 있는 정보를 제공한다. F2 단계에서, 호스트로부터 제공받는 제 1 명령어는 제 1 어드레스에 대응된다.
도 7를 참조하면, 제 1 명령어는 리드 또는 이레이즈 명령어이고, 제 2 어드레스를 제공받은 후에, 호스트 인터페이스는 제 2 어드레스에 대응되는 제 2 명령어를 제공받고, 어드레스 상태 분리 명령어 및, 제 3 어드레스를 제공받는다. 제 3 어드레스는 제 1 명령어 및 제 2 명령어에 대응되지 않고, 제 2 어드레스와 연속된 어드레스이다.
도 7을 참조하면, 호스트 인터페이스는 제 2 명령어 제공시에는 별도의 대응되는 제 2 어드레스를 제공받지 않고, 제 1 명령어 수신시에 제공된 제 2 어드레스를 사용하여, 제 2 명령어 동작을 수행한다.
도 7의 F2 단계를 참조하면, 컨트롤러는 마이크로프로세서의 제어 하에, 제 1 명령어를 디코딩하고, 제 1 어드레스를 비휘발성 메모리의 블락 및 페이지 어드레스로 맵핑하여, 제 1 명령어가 비휘발성 메모리 장치에서 수행될 수 있도록 제어한다.
도 7의 F2 단계를 참조하면, 마이크로프로세서는 어드레스 상태 분리 명령어를 참조하여, 제 2 어드레스와 제 1 어드레스의 상관 관계를 결정한다. 또한, 제 1 인터페이스는 제 2 어드레스와 대응되는 제 2 명령어를 제 2 어드레스 수신 후에 제공받는다. 도 7을 참조하면, 제 1 및 제 2 명령어는 리드 또는 이레이즈 명령어가 될 수 있다. 제 1 어드레스와 제 2 어드레스의 상관 관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는 여부를 판단하는 것이다. 따라서, 마이크로프로세서가 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정한 결과를 참조하여, 제 1 명령어 수행을 제 2 명령어를 제공 받은 후에 수행하여, 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행 될 수 있도록 제어할 수 있다.
도 8는 본 발명의 실시 예에 따른 메모리 컨트롤러(15000) 및 비휘발성 메모리 장치(16000)를 포함하는 전자 장치(10000)의 블록도를 나타낸다.
도 8를 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 태블릿(tablet) PC와 같은 전자 장치(10000)는 플래시 메모리 장치로 구현될 수 있는 비휘발성 메모리 장치(16000)와, 비휘발성 메모리 장치(16000)의 동작을 제어할 수 있는 메모리 컨트롤러(15000)를 포함할 수 있다.
비휘발성 메모리 장치(16000)는 도 1 및 도 2에서 도시한 비휘발성 메모리 장치를 의미할 수 있다.
메모리 컨트롤러(15000)는 전자 장치의 전반적인 동작을 제어하는 프로세서(11000)에 의하여 제어된다.
비휘발성 메모리 장치(16000)에 저장된 데이터는 프로세서(11000)의 제어에 따라 동작하는 메모리 컨트롤러(15000)의 제어에 따라 디스플레이(13000)를 통하여 디스플레이될 수 있다.
메모리 컨트롤러(15000)는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치(16000)에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 그리고, 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는지 여부를 판단한다.
무선 송수신기(12000)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(12000)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(11000)가 처리할 수 있는 신호로 변환할 수 있다. 따라서 프로세서(11000)는 무선 송수신기(12000)로부터 출력된 신호를 처리하고, 처리된 신호를 메모리 컨트롤러(15000)를 통하여 비휘발성 메모리 장치(16000)에 저장하거나 또는 디스플레이(13000)를 통하여 디스플레이할 수 있다.
무선 송수신기(12000)는 프로세서(11000)로부터 출력된 신호를 무선 신호로 변환하고, 변환된 무선 신호를 안테나(ANT)를 통하여 외부로 출력할 수 있다.
입력 장치(14000)는 프로세서(11000)의 동작을 제어하기 위한 제어 신호 또는 프로세서(11000)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(11000)는 비휘발성 메모리 장치(16000)로부터 출력된 데이터, 무선 송수신기(12000)로부터 출력된 무선 신호, 또는 입력 장치(14000)로부터 출력된 데이터가 디스플레이(13000)를 통하여 디스플레이될 수 있도록 디스플레이(13000)를 제어할 수 있다.
도 9은 본 발명의 다른 실시 예에 따른 메모리 컨트롤러(24000)및 비휘발성 메모리 장치(25000)를 포함하는 전자 장치(20000)의 블록도를 나타낸다.
도 9을 참조하면, PC(personal computer), 태블릿 컴퓨터(tablet computer), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(20000)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(25000)와, 비휘발성 메모리 장치(25000)의 동작을 제어할 수 있는 메모리 컨트롤러(24000)를 포함한다.
비휘발성 메모리 장치(25000)는 도 1 및 도 2에서 도시한 비휘발성 메모리 장치를 의미할 수 있다.
전자 장치(20000)는 전자 장치(20000)의 전반적인 동작을 제어하기 위한 프로세서(21000)를 포함할 수 있다. 메모리 컨트롤러(24000)는 프로세서(21000)에 의하여 제어된다.
메모리 컨트롤러(24000)는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치(25000)에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 그리고, 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는지 여부를 판단한다.
프로세서(21000)는 입력 장치(22000)에 의하여 발생한 입력 신호에 따라 비휘발성 메모리 장치에 저장된 데이터를 디스플레이를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(22000)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
도 10는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치(34000)를 포함하는 전자 장치(30000)의 블록도를 나타낸다.
도 10를 참조하면, 전자 장치(30000)는 카드 인터페이스(31000), 메모리 컨트롤러(32000), 및 비휘발성 메모리 장치(34000), 예컨대 플래시 메모리 장치를 포함한다.
전자 장치(30000)는 카드 인터페이스(31000)를 통하여 호스트(HOST)와 데이터를 주거나 받을 수 있다. 실시 예에 따라, 카드 인터페이스(31000)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(31000)는 전자 장치(30000)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(32000) 사이에서 데이터 교환을 인터페이스할 수 있다.
메모리 컨트롤러(32000)는 전자 장치(30000)의 전반적인 동작을 제어하며, 카드 인터페이스(31000)와 비휘발성 메모리 장치(34000) 사이에서 데이터의 교환을 제어할 수 있다. 또한 메모리 컨트롤러(32000)의 버퍼 메모리(325)는 카드 인터페이스(31000)와 비휘발성 메모리 장치(34000) 사이에서 주고받는 데이터를 버퍼링할 수 있다.
메모리 컨트롤러(32000)는 데이터 버스(DATA) 및 어드레스 버스(ADDRESS)를 통하여 카드 인터페이스(31000)와 비휘발성 메모리 장치(34000)와 접속된다. 실시 예에 따라 메모리 컨트롤러(32000)는 카드 인터페이스(31000)로부터 리드 또는 라이트하고자 하는 데이터의 어드레스를 어드레스 버스(ADDRESS)를 통하여 수신하고 이를 비휘발성 메모리 장치(34000)로 전송한다.
또한, 메모리 컨트롤러(32000)는 카드 인터페이스(31000) 또는 비휘발성 메모리 장치(34000) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 또는 라이트하고자 하는 데이터를 수신하거나 전송한다.
메모리 컨트롤러(32000)는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치(34000)에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 그리고, 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는지 여부를 판단한다.
비휘발성 메모리 장치(34000)는 도 1 및 도 2에서 도시한 비휘발성 메모리 장치를 의미할 수 있다.
도 10의 전자 장치(30000)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(31000)와 메모리 컨트롤러(32000)를 통하여 비휘발성 메모리 장치(34000)에 저장된 데이터를 주거나 받을 수 있다.
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 11을 참조하면, 전자 장치(40000)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(45000), 비휘발성 메모리 장치(45000)의 데이터 처리 동작을 제어하기 위한 메모리 컨트롤러(44000), 및 전자 장치(40000)의 전반적인 동작을 제어할 수 있는 이미지 센서(41000)를 포함한다.
비휘발성 메모리 장치(45000)는 도 1 및 도 2에서 도시한 비휘발성 메모리 장치를 의미할 수 있다.
메모리 컨트롤러(44000)는 호스트(41000)로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치(45000)에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 그리고, 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는지 여부를 판단한다.
또한, 메모리 컨트롤러(44000)는 도 1에서 도시한 씨드 컨트롤러(1260)을 포함한 메모리 컨트롤러를 의미할 수 있다. 메모리 컨트롤러(44000)는 제 1 파라미터를 사용하여 제 1 시클릭 시프트를 수행하기 위한 제 1 레지스터 블록, 제 2 파라미터를 사용하여 제 2 시클릭 시프트를 수행하기 위한 제 2 레지스터 블록, 및 제 1 및 제 2 레지스터 블록에서 수행된 시클릭 시프트 결과를 사용하여 씨드를 형성하는 씨드 생성 블록을 포함하고, 생성된 씨드를 사용하여 오리지널 데이터를 랜덤데이터로 랜덤화 할 수 있다.
전자 장치(40000)의 이미지 센서(42000)는 광학 신호를 디지털 신호로 변환하고, 변환된 디지털 신호는 이미지 센서(41000)의 제어하에 비휘발성 메모리 장치(45000)에 저장되거나 또는 디스플레이(43000)를 통하여 디스플레이된다. 또한, 비휘발성 메모리 장치(45000)에 저장된 디지털 신호는 이미지 센서(41000)의 제어하에 디스플레이(43000)를 통하여 디스플레이된다.
도 12은 본 발명의 또 다른 실시 예에 따른 메모리 컨트롤러(61000) 및 비휘발성 메모리 장치(62000A, 62000B, 62000C)를 포함하는 전자 장치(60000)의 블록도를 나타낸다.
도 12을 참조하면, 전자 장치(60000)는 SSD(solid state drive)와 같은 데이터 저장 장치로 구현될 수 있다.
전자 장치(60000)는 다수개의 비휘발성 메모리 장치들(62000A, 62000B, 62000C)과, 다수개의 비휘발성 메모리 장치들(62000A, 62000B, 62000C) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(61000)를 포함할 수 있다.
전자 장치(60000)는 메모리 시스템 또는 메모리 모듈로 구현될 수 있다.
비휘발성 메모리 장치(62000A, 62000B, 62000C)는 도 1 및 도 7에서 도시한 비휘발성 메모리 장치를 의미할 수 있다. 비휘발성 메모리 장치(62000A, 62000B, 62000C)는 랜덤 데이터를 저장 할 수 있다.
실시 예에 따라 메모리 컨트롤러(61000)는 전자 장치(60000)의 내부 또는 외부에 구현될 수 있다. 메모리 컨트롤러(61000)는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치(62000A, 62000B, 62000C)에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 그리고, 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는지 여부를 판단한다.
도 13는 도 12에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
도 12(도 22)과 도 13(도 23)을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(70000)는 RAID 컨트롤러(71000)와, 다수개의 메모리 시스템들(72000A, 72999B ~72000N; N는 자연수)을 포함할 수 있다.
다수개의 메모리 시스템들(72000A, 72999B ~72000N) 각각은 도 19에 도시된 전자 장치 (700)일 수 있다. 다수개의 메모리 시스템들(72000A, 72999B ~72000N)은 RAID 어레이를 구성할 수 있다. 데이터 저장 장치(70000)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작 동안, RAID 컨트롤러(71000)는 호스트로부터 출력된 프로그램 데이터를 다수개의 RAID 레벨들 중에서 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라 다수개의 메모리 시스템들(72000A, 72999B ~72000N) 중에서 어느 하나의 메모리 시스템으로 출력할 수 있다.
또한, 리드 동작 동안, RAID 컨트롤러(71000)는 다수개의 RAID 레벨들 중에서 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라서 다수개의 메모리 시스템중(72000A, 72999B ~72000N)에서 어느 하나의 메모리 시스템으로부터 리드된 데이터를 호스트로 전송할 수 있다.
다수개의 메모리 시스템 각각의(72000A, 72999B ~72000N) 메모리 컨트롤러는 도 1 및 도 2에서 도시한 메모리 컨트롤러를 의미할 수 있다. 메모리 컨트롤러는 호스트로부터 제 1 명령어, 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스 및 1 및 제 2 어드레스를 구분하는 어드레스 상태 분리 명령어 및 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스 및 제 1 명령어를 디코딩 하고, 제 1 어드레스를 맵핑하고, 디코딩된 제 1 명령어가 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치에서 수행하도록 제어하고, 어드레스 상태 분리 명령어를 참조하여, 제 1 어드레스와 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함한다. 그리고, 상관관계는 제 1 명령어 및 제 2 명령어가 제 1 어드레스 및 제 2 어드레스에서 동시에 수행하는지 여부를 판단한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 전자 장치
1100: 비휘발성 메모리 시스템
1200: 호스트

Claims (20)

  1. 호스트로부터 제 1 명령어, 상기 제 1 명령어에 대응되는 제 1 어드레스, 제 2 어드레스, 어드레스 상태 분리 명령어 및 상기 제 2 어드레스에 대응되는 제 2 명령어를 제공받는 제 1 인터페이스로서, 상기 어드레스 상태 분리 명령어는, 상기 제 1 인터페이스에 의해 수신되는 통신에서, 상기 제 1 어드레스 및 상기 제 2 어드레스를 구분하는 제1 인터페이스; 및
    상기 제 1 명령어를 디코딩 하고, 상기 제 1 어드레스를 맵핑하고, 상기 디코딩된 제 1 명령어가 상기 맵핑된 제 1 어드레스를 사용하여 비휘발성 메모리 장치에서 수행하도록 제어하고, 상기 어드레스 상태 분리 명령어를 참조하여, 상기 어드레스 상태 분리 명령어에 의해 구분되는 상기 제 1 어드레스와 상기 제 2 어드레스의 상관 관계를 결정하는 마이크로 프로세서를 포함하며,
    상기 상관 관계는, 상기 제 1 명령어 및 상기 제 2 명령어가 상기 어드레스 상태 분리 명령어에 의해 구분되는 상기 제 1 어드레스 및 상기 제 2 어드레스에서 동시에 수행하는지 여부를 판단하는 메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 제 1 인터페이스는 상기 호스트와 교신하는 호스트 인터페이스인 메모리 컨트롤러.
  3. 제1항에 있어서,
    상기 제 1 명령어는 리드 또는 이레이즈 명령어인 메모리 컨트롤러.
  4. 제1항에 있어서,
    상기 제 1 명령어는 프로그램 명령어고, 상기 제 1 인터페이스는 상기 제 1 명령어, 상기 제 2 어드레스 및 상기 제 1 명령어에 대응되고 프로그램 될 제 1 데이터 순서로 제공받는 메모리 컨트롤러.
  5. 제 4항에 있어서,
    상기 제 1 명령어 수행시, 상기 제 2 어드레스 정보를 제 1 어드레스의 메타 데이터 영역에 프로그램 하는 메모리 컨트롤러.
  6. 제1항에 있어서,
    상기 어드레스 상태 분리 명령어는 상기 제 1 어드레스와 상기 제 2 어드레스 사이에 제공되는 메모리 컨트롤러.
  7. 제 1 항에 있어서,
    상기 제 1 인터페이스는 상기 제 2 명령어를 제공받고, 제 3 어드레스를 순서대로 제공받는 메모리 컨트롤러.
  8. 제 7 항 있어서,
    상기 제 3 어드레스는 제 2 어드레스와 연속되며, 상기 제 1 명령어 및 상기 제 2 명령어에 대응되지 않는 메모리 컨트롤러.
  9. 제 1항에 있어서,
    상기 메모리 컨트롤러는 상기 디코딩된 제 1 명령어 및 상기 맵핑된 제 1 어드레스를 비휘발성 메모리 장치로 제공하는 메모리 인터페이스를 더 포함하는 메모리 컨트롤러.
  10. 호스트; 및
    상기 호스트와 교신하고, 적어도 하나 이상의 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하는 전자 장치에 있어서,
    상기 메모리 컨트롤러는,
    상기 호스트와 연결되어 있으며, 제 1 명령어, 제 1 어드레스, 제 2 어드레스, 및 어드레스 상태 분리 명령어를 제공받는 호스트 인터페이스로서, 상기 어드레스 상태 분리 명령어는, 상기 호스트 인터페이스에 의해 수신되는 통신에서, 상기 제 1 어드레스 및 상기 제 2 어드레스를 구분하는 호스트 인터페이스;
    상기 제 1 명령어를 디코딩 하고, 상기 제 1 어드레스를 맵핑하며, 상기 어드레스 상태 분리 명령어에 의해 구분되는 상기 제 1 어드레스와 상기 제 2 어드레스의 상관 관계를 판단하는 마이크로프로세서; 및
    상기 디코딩된 명령어 및 상기 맵핑된 어드레스를 제공하는 메모리 인터페이스를 포함하는 전자 장치.
  11. 제 10 항에 있어서,
    상기 호스트 인터페이스는 상기 제 2 어드레스에 대응되는 제 2 명령어 그리고 상기 제 2 어드레스에 순차적인 어드레스인 제 3 어드레스를 제공받는 전자 장치.
  12. 제 10 항에 있어서,
    상기 어드레스 상태 분리 명령어는 상기 제 1 어드레스와 상기 제 2 어드레스 사이에 제공되는 전자 장치.
  13. 제 10 항에 있어서,
    상기 제 1 명령어는 프로그램 명령어인 전자 장치.
  14. 제 13 항에 있어서,
    상기 제 2 어드레스가 제공된 후에, 상기 제 1 명령어에 대응되는 데이터가 제공되는 전자 장치.
  15. 제 14 항에 있어서,
    상기 제 1 명령어를 수행하여, 프로그램 동작 수행시에, 상기 제 2 어드레스 정보를 메타 데이터영역에 프로그램하는 전자장치.
  16. 제 10 항에 있어서,
    상기 제 1 명령어는 이레이즈 또는 리드 명령어인 전자 장치.
  17. 호스트로부터, 제 1 프로그램 명령어, 제 1 어드레스, 제 2 어드레스, 및 어드레스 상태 분리 명령어를 수신하고, 상기 어드레스 상태 분리 명령어는 상기 제 1 어드레스와 상기 제 2 어드레스 사이에서 수신하고, 상기 어드레스 상태 분리 명령어는 상기 호스트로부터의 통신에서 상기 제 1 어드레스와 상기 제 2 어드레스를 구분하고,
    상기 제 2 어드레스 및 상기 제1 프로그램 명령어에 대응되는 데이터 순서로 제공받으며,
    상기 제 1 프로그램 명령어를 비휘발성 메모리가 상기 제 1 어드레스에서 수행 할 수 있도록 제어하며,
    상기 제 2 어드레스와 대응되는 제 2 프로그램 명령어 및 제 3 어드레스를 제공받고, 상기 비휘발성 메모리가 상기 제 2 프로그램 명령어를 상기 제 2 어드레스에서 수행하도록 제어하는 메모리 컨트롤러 동작방법.
  18. 제 17 항에 있어서,
    상기 제 1 프로그램 명령어를 디코딩하고, 상기 제 1 어드레스를 상기 비휘발성 메모리에 적합하도록 맵핑하는 것을 더 포함하는 메모리 컨트롤러 동작방법.
  19. 호스트로부터 제1 명령어, 제1 어드레스, 제2 어드레스, 상기 제1 어드레스와 상기 제2 어드레스 사이에 제공되고, 상기 제1 어드레스와 상기 제2 어드레스를 구분하는 어드레스 상태 분리 명령어를 제공받은 후, 제2 명령어와, 제3 어드레스를 제공받는 제1 인터페이스; 및
    상기 제1 명령어와 상기 제1 어드레스를 이용하여 제1 동작을 수행하고, 상기 제2 명령어와 상기 제2 어드레스를 이용하여 제2 동작을 수행하는 마이크로 프로세서를 포함하는 메모리 컨트롤러.
  20. 삭제
KR1020120097254A 2012-09-03 2012-09-03 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치 KR102025088B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120097254A KR102025088B1 (ko) 2012-09-03 2012-09-03 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
US14/016,167 US9405673B2 (en) 2012-09-03 2013-09-02 Memory controller, and electronic device having the same and method for operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120097254A KR102025088B1 (ko) 2012-09-03 2012-09-03 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치

Publications (2)

Publication Number Publication Date
KR20140030733A KR20140030733A (ko) 2014-03-12
KR102025088B1 true KR102025088B1 (ko) 2019-09-25

Family

ID=50189104

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120097254A KR102025088B1 (ko) 2012-09-03 2012-09-03 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치

Country Status (2)

Country Link
US (1) US9405673B2 (ko)
KR (1) KR102025088B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102249810B1 (ko) * 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11017838B2 (en) 2016-08-04 2021-05-25 Samsung Electronics Co., Ltd. Nonvolatile memory devices
KR102620562B1 (ko) 2016-08-04 2024-01-03 삼성전자주식회사 비휘발성 메모리 장치
US10838637B2 (en) 2018-02-08 2020-11-17 Micron Technology, Inc. Status management in storage backed memory package
KR20210054365A (ko) * 2019-11-05 2021-05-13 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 컨트롤러의 동작 방법
US11010099B1 (en) * 2019-11-19 2021-05-18 Western Digital Technologies, Inc. Data storage device executing access commands based on leapfrog sort

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175891B1 (en) * 1997-04-23 2001-01-16 Micron Technology, Inc. System and method for assigning addresses to memory devices
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US6182189B1 (en) * 1998-01-05 2001-01-30 Intel Corporation Method and apparatus for placing a memory in a read-while-write mode
JP3712567B2 (ja) * 1999-07-23 2005-11-02 富士通株式会社 記憶装置
KR100463197B1 (ko) 2001-12-24 2004-12-23 삼성전자주식회사 멀티-페이지 프로그램 동작, 멀티-페이지 읽기 동작,그리고 멀티-블록 소거 동작을 갖는 낸드 플래시 메모리장치
JP4061272B2 (ja) * 2002-01-09 2008-03-12 株式会社ルネサステクノロジ メモリシステム及びメモリカード
JP4012150B2 (ja) 2002-02-28 2007-11-21 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
KR100672992B1 (ko) * 2005-01-04 2007-01-24 삼성전자주식회사 반도체 메모리 장치의 동작 방법
KR100694968B1 (ko) 2005-06-30 2007-03-14 주식회사 하이닉스반도체 비휘발성 메모리 장치와 그것의 멀티-페이지 프로그램,독출 및 카피백 프로그램 방법
US7644224B2 (en) 2005-11-15 2010-01-05 Sandisk Il Ltd. Flash memory device and method
US7673111B2 (en) * 2005-12-23 2010-03-02 Intel Corporation Memory system with both single and consolidated commands
US7966469B2 (en) * 2006-08-14 2011-06-21 Qimonda Ag Memory system and method for operating a memory system
KR100837274B1 (ko) 2006-08-28 2008-06-11 삼성전자주식회사 오토 멀티-페이지 카피백 기능을 갖는 플래시 메모리 장치및 그것의 블록 대체 방법
US7280398B1 (en) 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
KR100819102B1 (ko) 2007-02-06 2008-04-03 삼성전자주식회사 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치
US7577059B2 (en) 2007-02-27 2009-08-18 Mosaid Technologies Incorporated Decoding control with address transition detection in page erase function
JP2008310841A (ja) * 2007-06-12 2008-12-25 Panasonic Corp 半導体記憶装置及び電子装置
KR100888823B1 (ko) 2007-06-27 2009-03-17 삼성전자주식회사 비휘발성 메모리 시스템, 및 비휘발성 메모리 시스템의프로그램 방법
KR20100114086A (ko) 2008-01-25 2010-10-22 램버스 인코포레이티드 다중-페이지 병렬 프로그램 플래시 메모리
US9773557B2 (en) 2008-09-03 2017-09-26 Marvell World Trade Ltd. Multi-plane data order
US8370603B2 (en) 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
US8543756B2 (en) * 2009-02-02 2013-09-24 Marvell World Trade Ltd. Solid-state drive command grouping
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
CN103155044A (zh) 2010-07-21 2013-06-12 莫塞德技术公司 用于闪速存储器的多页编程方案
US20150095551A1 (en) * 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
US9842630B2 (en) * 2013-10-16 2017-12-12 Rambus Inc. Memory component with adjustable core-to-interface data rate ratio

Also Published As

Publication number Publication date
US9405673B2 (en) 2016-08-02
US20140068161A1 (en) 2014-03-06
KR20140030733A (ko) 2014-03-12

Similar Documents

Publication Publication Date Title
KR102081588B1 (ko) Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
CN108304141B (zh) 存储器系统及其操作方法
CN108733595B (zh) 存储器系统、包括其的数据处理系统及其操作方法
CN107229577B (zh) 存储系统及其操作方法
CN108388525B (zh) 存储器系统及其操作方法
KR20140031515A (ko) 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
CN108694096B (zh) 控制器、存储系统及其操作方法
CN106372004B (zh) 用于ssd控制器的可编程协议独立bar存储器
CN108694138B (zh) 控制器及其操作方法
CN110473582B (zh) 存储器系统及其操作方法
KR101811298B1 (ko) 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러
US9812224B2 (en) Data storage system, data storage device and RAID controller
CN108108308B (zh) 存储器系统及其操作方法
KR102025088B1 (ko) 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
CN109032501B (zh) 存储器系统及其操作方法
KR102068030B1 (ko) 메모리 컨트롤러 및 그 동작방법
CN107797855B (zh) 存储器系统及其操作方法
CN110532194B (zh) 存储器系统及其操作方法
CN107807887B (zh) 存储器系统及其操作方法
CN107977283B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN108694970B (zh) 控制器及其操作方法
CN106372011B (zh) 用于pcie ssd控制器的高性能主机队列监控器
CN105718383A (zh) 存储系统及其操作方法
CN110489271B (zh) 存储器系统及其操作方法
CN108628755B (zh) 存储器系统

Legal Events

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