KR20150015764A - 스토리지 디바이스 및 이를 포함하는 스토리지 시스템 - Google Patents

스토리지 디바이스 및 이를 포함하는 스토리지 시스템 Download PDF

Info

Publication number
KR20150015764A
KR20150015764A KR1020130091572A KR20130091572A KR20150015764A KR 20150015764 A KR20150015764 A KR 20150015764A KR 1020130091572 A KR1020130091572 A KR 1020130091572A KR 20130091572 A KR20130091572 A KR 20130091572A KR 20150015764 A KR20150015764 A KR 20150015764A
Authority
KR
South Korea
Prior art keywords
storage
index
memory
host device
request
Prior art date
Application number
KR1020130091572A
Other languages
English (en)
Inventor
임선영
이진화
김동휘
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130091572A priority Critical patent/KR20150015764A/ko
Priority to US14/449,343 priority patent/US20150039814A1/en
Publication of KR20150015764A publication Critical patent/KR20150015764A/ko

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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

스토리지 디바이스는 비휘발성 스토리지 및 스토리지 컨트롤러를 포함한다. 상기 비휘발성 스토리지는 논리 어드레스, 상기 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블을 구비한다. 상기 스토리지 컨트롤러는 상기 비휘발성 스토리지를 제어한다. 상기 스토리지 컨트롤러는 초기화 프로세스 동안에 상기 맵 테이블의 상기 컨텐츠를 외부의 호스트 디바이스에 전송하고, 상기 호스트 디바이스로부터 전송되는 리퀘스트, 논리 어드레스 및 인덱스에 기초하여 상기 비휘발성 스토리지를 직접 액세스한다.

Description

스토리지 디바이스 및 이를 포함하는 스토리지 시스템{Memory sub-system and computing system including the same}
본 발명은 스토리지 분야에 관한 것으로 보다 상세하게는 스토리지 디바이스 및 이를 포함하는 스토리지 시스템에 관한 것이다.
현대의 많은 데이터 처리 시스템들은 메인 메모리로 동작하는 DRAM과 저전력 데이터 보유를 위한 비휘발성 플래시 메모리 장치를 포함한다. 플래시 메모리 장치로 구성되는 스토리지 디바이스에 DRAM을 추가하는 경우에 비용 증가와 대기 전류가 증가하는 문제점이 발생한다.
본 발명의 일 목적은 동작 속도를 향상시킬 수 있는 스토리지 디바이스를 제공하는데 있다.
본 발명의 일 목적은 상기 스토리지 디바이스를 포함하는 스토리지 시스템을 제공하는데 있다.
상술한 본 발명의 일 목적을 달성하기 위한 스토리지 디바이스는 비휘발성 스토리지 및 스토리지 컨트롤러를 포함한다. 상기 비휘발성 스토리지는 논리 어드레스, 상기 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블을 구비한다. 상기 스토리지 컨트롤러는 상기 비휘발성 스토리지를 제어한다. 상기 스토리지 컨트롤러는 초기화 프로세스 동안에 상기 맵 테이블의 상기 컨텐츠를 외부의 호스트 디바이스에 전송하고, 상기 호스트 디바이스로부터 전송되는 리퀘스트, 논리 어드레스 및 인덱스에 기초하여 상기 비휘발성 스토리지를 직접 액세스한다.
예시적인 실시예에 있어서, 상기 스토리지 컨트롤러는 상기 인덱스에 상응하는 상기 비휘발성 스토리지의 물리 페이지를 직접 액세스할 수 있다.
예시적인 실시예에 있어서, 상기 리퀘스트가 상기 비휘발성 스토리지에 대한 기입 리퀘스트인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 프리 페이지의 인덱스일 수 있다.
예시적인 실시예에 있어서, 상기 리퀘스트가 상기 비휘발성 스토리지에 대한 독출 인덱스인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 데이터 페이지의 인덱스일 수 있다.
예시적인 실시예에 있어서, 상기 스토리지 컨트롤러는 상기 호스트 디바이스로부터의 리퀘스트에 상응하는 커맨드를 저장하는 커맨드 큐 및 상기 인덱스를 저장하는 갱신 테이블을 구비하는 레지스터부를 포함할 수 있다. 상기 갱신 테이블은 상기 인덱스에 상응하는 물리 어드레스의 갱신 여부 및 유효 여부를 나타내는 유효 태그를 저장할 수 있다. 상기 스토리지 컨트롤러는 상기 갱신 테이블을 참조하여 상기 인덱스에 상응하는 상기 비휘발성 스토리지의 물리 페이지를 직접 액세스할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 스토리지 시스템은 스토리지 디바이스 및 호스트 디바이스를 포함한다. 상기 스토리지 디바이스는 논리 어드레스, 상기 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블을 구비하는 비휘발성 스토리지를 구비한다. 상기 호스트 디바이스는 상기 스토리지 디바이스를 제어한다. 상기 호스트 디바이스는 상기 스토리지 디바이스의 초기화 프로세스 동안에 상기 스토리지 디바이스로부터 전송받은 상기 컨텐츠를 저장하는 메인 메모리를 포함한다.
예시적인 실시예에 있어서, 상기 호스트 디바이스는 상기 메인 메모리에 저장된 상기 컨텐츠에 기초하여 리퀘스트, 논리 어드레스 및 인덱스를 상기 스토리지 디바이스에 전송하고, 상기 스토리지 디바이스는 상기 리퀘스트 및 상기 인덱스에 기초하여 상기 비휘발성 스토리지를 직접 액세스하는 스토리지 컨트롤러를 더 포함할 수 있다.
상기 스토리지 컨트롤러는 상기 스토리지 디바이스의 전반적인 동작을 제어하는 프로세서; 상기 리퀘스트에 상응하는 커맨드, 상기 논리 어드레스 및 상기 인덱스를 저장하는 레지스터부; 상기 호스트 디바이스와 전기적으로 연결되는 호스트 인터페이스; 및 상기 비휘발성 스토리지와 전기적으로 연결되는 메모리 인터페이스를 포함할 수 있다.
상기 레지스터부는 상기 커맨드를 저장하는 커맨드 큐 및 상기 인덱스를 저장하는 갱신 테이블을 포함할 수 있다. 상기 갱신 테이블은 상기 인덱스에 상응하는 물리 어드레스의 갱신 여부 및 유효 여부를 나타내는 유효 태그를 저장하고, 상기 스토리지 컨트롤러는 상기 갱신 테이블을 참조하여 상기 인덱스에 상응하는 상기 비휘발성 스토리지의 물리 페이지를 직접 액세스할 수 있다.
예시적인 실시예에 있어서, 상기 리퀘스트가 상기 비휘발성 스토리지에 대한 기입 리퀘스트인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 프리 페이지의 인덱스일 수 있다.
예시적인 실시예에 있어서, 상기 호스트 디바이스는 상기 호스트 디바이스의 전반적인 동작을 제어하는 중앙 처리 장치를 더 포함하고, 상기 중앙 처리 장치는 상기 메인 메모리와 상기 스토리지 디바이스와 개별적인 인터페이스들을 통하여 서로 연결될 수 있다.
예시적인 실시예에 있어서, 기 호스트 디바이스는 상기 호스트 디바이스의 전반적인 동작을 제어하는 중앙 처리 장치를 더 포함하고,
상기 중앙 처리 장치는 상기 메인 메모리와 상기 스토리지 디바이스와 하나의 공통 인터페이스를 통하여 서로 연결될 수 있다.
예시적인 실시예에 있어서, 상기 메인 메모리는 DRAM이고 상기 비휘발성 스토리지는 낸드 플래시 메모리일 수 있다.
본 발명의 실시예들에 따르면 초기화 프로세스 동안에 논리 어드레스와 상응하는 물리 어드레스의 인덱스를 호스트 디바이스의 메인 메모리에 전송하고, 호스트 디바이스가 스토리지 디바이스를 액세스하는 경우에는 논리 어드레스와 인덱스를 스토리지 디바이스에 전송하고, 스토리지 디바이스의 스토리지 컨트롤러는 상기 인덱스에 기초하여 스비휘발성 스토리지를 직접 액세스함으로 동작 속도를 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 도 1의 호스트 디바이스의 구성을 보다 상세히 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 도 1의 스토리지 컨트롤러 일 예를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 도 3의 레지스터부의 일 예를 나타낸다.
도 5는 본 발명의 실시예들에 따른 도 1의 맵 테이블의 일 예를 나타낸다.
도 6은 본 발명의 실시예들에 따른 도 1의 스토리지 시스템의 동작을 나타낸다.
도 7은 본 발명의 실시예들에 따른 도 4의 갱신 테이블의 일 예를 나타낸다.
도 8은 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 기입 동작이 수행되는 것을 나타낸다.
도 9는 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 독출 동작이 수행되는 것을 나타낸다.
도 10은 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 중앙 처리 장치, 메인 메모리 및 스토리지 디바이스 사이의 연결 관계의 일 예를 나타낸다.
도 11은 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 중앙 처리 장치, 메인 메모리 및 스토리지 디바이스 사이의 연결 관계의 다른 예를 나타낸다.
도 12는 본 발명의 실시예들에 따른 도 1의 비휘발성 스토리지를 나타내는 블록도이다.
도 13은 NOR형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이다.
도 14는 NAND형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이다.
도 15는 수직형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이다.
도 16은 저항성 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이다.
도 17은 도 16의 저항성 메모리 셀들이 STT-MRAM 셀로 구현되는 일 예를 나타내는 입체도이다.
도 18은 본 발명의 실시예들에 따른 스토리지 디바이스가 메모리 카드에 응용된 예를 나타내는 도면이다.
도 19는 본 발명의 실시예들에 따른 스토리지 디바이스가 솔리드 스테이트 드라이브에 응용된 예를 나타내는 도면이다.
도 20은 본 발명의 실시예들에 따른 스토리지 시스템의 동작 방법을 나타내는 흐름도이다.
도 21 및 도 22은 본 발명의 실시예들에 따른 스토리지 디바이스를 컴퓨팅 시스템에 응용한 예를 나타내는 블록도들이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일하거나 유사한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(10)은 호스트 디바이스(100) 및 스토리지 디바이스(200)를 포함할 수 있다.
호스트 디바이스(100)는 중앙 처리 장치(CPU, 110) 및 메인 메모리(130)를 포함할 수 있다. 중앙 처리 장치(110)는 호스트 디바이스(100)의 전반적인 동작을 제어한다. 중앙 처리 장치(110)는 어드레스 버스, 제어 버스 및/또는 데이터 버스를 포함하는 통하여 메인 메모리(130)에 연결될 수 있다. 예를 들어, 메인 메모리(130)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)를 포함할 수 있다. 다른 예에서, 메인 메모리(130)는 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM), 플래시 메모리(Flash Memory), 상변화 랜덤 액세스 메모리(Phase change Random Access Memory; PRAM), 강유전체 랜덤 액세스 메모리(Ferroelectric Random Access Memory; FRAM), 저항 랜덤 액세스 메모리(Resistive Random Access Memory; RRAM), 또는 강자성 랜덤 액세스 메모리(Magnetic Random Access Memory; MRAM)를 포함할 수 있다. 중앙 처리 장치(110)는 스토리지 디바이스(200)를 액세스할 때, 스토리지 디바이스(200)로부터 전송되어 메인 메모리(130)에 저장된 맵 테이블(500a)의 컨텐츠에 기초하여 논리 어드레스 및 인덱스를 스토리지 디바이스(200)에 전송할 수 있다.
스토리지 디바이스(200)는 스토리지 컨트롤러(300) 및 비휘발성 스토리지(또는 비휘발성 메모리 장치, 400)를 포함할 수 있다. 비휘발성 스토리지(400)는 맵 테이블(500)을 저장할 수 있다. 스토리지 컨트롤러(300)는 호스트 디바이스(100)로부터의 리퀘스트를 수신하고, 상기 리퀘스트에 응답하여 스토리지 디바이스(200)의 동작을 제어할 수 있다.
비휘발성 스토리지(400)는 호스트 디바이스(100)로부터 제공된 데이터를 저장하거나 저장된 데이터를 호스트 디바이스(100)로 제공할 수 있다. 비휘발성 스토리지(400)는 전원 공급이 차단되더라도 저장된 데이터를 유지할 수 있다. 예를 들어, 비휘발성 스토리지(400)는 NAND 플래시 메모리, NOR 플래시 메모리, PRAM, FRAM, RRAM, 또는 MRAM을 포함할 수 있다.
비휘발성 스토리지(400)는 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블(500)을 구비할 수 있다. 스토리지 디바이스(200)의 초기화 프로세스 동안에 맵 테이블(500)의 컨텐츠는 스토리지 컨트롤러(300)를 통하여 호스트 디바이스(100)의 메인 메모리의 맵 테이블(500a)에 저장될 수 있다. 호스트 디바이스(100)는 스토리지 디바이스(200)를 액세스하는 경우, 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스를 스토리지 디바이스(200)에 전송하고, 스토리지 디바이스(200)의 스토리지 컨트롤러(300)는 상기 인덱스에 기초하여 비휘발성 스토리지(400)에 저장된 상기 맵 테이블(500)을 액세스하여 논리 어드레스를 물리 어드레스로 변환하는 과정을 거치지 않고도 비휘발성 스토리지(400)의 물리 페이지를 직접 액세스하여 동작 속도를 향상시킬 수 있다.
도 2는 본 발명의 일 실시예에 따른 도 1의 호스트 디바이스의 구성을 보다 상세히 나타내는 블록도이다.
도 2를 참조하면, 호스트 디바이스(100)는 CPU(110), ROM(read only memory, 120), 메인 메모리(130), 스토리지 인터페이스(140), 사용자 인터페이스(150) 및 버스(160)를 포함할 수 있다.
버스(160)는 호스트 디바이스(100)의 CPU(110), 롬(120), 메인 메모리(130), 스토리지 인터페이스(140) 및 사용자 인터페이스(150) 간의 데이터를 전송하는 전송로를 의미한다.
롬(120)에는 다양한 어플리케이션(application) 프로그램들이 저장되어 있다. 실시예에 있어서, ATA(Advanced Technology Attachment), SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card), UFS(Unix File System) 등과 같은 스토리지 프로토콜을 지원하는 애플리케이션 프로그램들이 롬(120)에 저장될 수 있다.
메인 메모리(130)에는 데이터 또는 프로그램이 일시적으로 저장되고, 또한 스토리지 디바이스(200)의 초기화 프로세스 동안에 비휘발성 스토리지(500)에 저장된 맵 테이블(500)의 컨텐츠가 로딩되어 맵 테이블(500a)에 저장될 수 있다.
스토리지 인터페이스(140)는 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 또는 SAS(Serial Attached Small Computer System) 인터페이스, SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card) 인터페이스, UFS(Unix File System) 인터페이스 등과 같은 스토리지 프로토콜을 지원하는 인터페이스를 포함할 수 있다.
사용자 인터페이스(150)는 사용자와 호스트 기기, 컴퓨터 프로그램 등 사이에서 정보를 주고받을 수 있는 물리적 또는 가상적 매개체로서 물리적인 하드웨어와 논리적인 소프트웨어를 포함한다. 즉, UI(150)는 사용자가 호스트 디바이스(100)를 조작할 수 있는 입력 장치와 사용자 입력에 대한 처리 결과를 표시하는 출력 장치를 포함할 수 있다.
중앙 처리 장치(110)는 호스트 디바이스(100)의 전반적인 동작을 제어한다. 중앙 처리 장치(110)는 ROM(120)에 저장된 어플리케이션(application) 또는 툴(tool)을 이용하여 스토리지 디바이스(200)에 데이터를 저장하기 위한 리퀘스트(또는 커맨드) 또는 스토리지 디바이스(200)로부터 데이터를 읽어내기 위한 커맨드를 생성시켜 스토리지 인터페이스(140)를 통하여 스토리지 디바이스(200)로 전달하도록 제어할 수 있다.
도 3은 본 발명의 실시예에 따른 도 1의 스토리지 컨트롤러 일 예를 나타내는 블록도이다.
스토리지 컨트롤러(300)는 중앙 처리 장치(CPU)와 같은 프로세서(310), 레지스터부(320), ECC(Error check code) 블록(330), 호스트 인터페이스(340), 메모리 인터페이스(350) 및 버스(360)를 포함하여 구성될 수 있다. 버스(360)는 프로세서(310), 레지스터부(320), ECC 블록(330), 호스트 인터페이스(340), 및 메모리 인터페이스(350) 사이의 데이터를 전송하는 전송로를 의미한다. 프로세서(1011)는 호스트 디바이스(100)와 비휘발성 스토리지(400) 사이의 데이터 교환을 위한 동작을 수행할 수 있다.
호스트 인터페이스(340)는 홋흐트 디바이스(100)와 연결되고, 메모리 인터페이스(350)는 비휘발성 스토리지(400)와 연결된다. 프로세서(310)는 호스트 인터페이스(340)를 통하여 상기 호스트 디바이스(100) 통신할 수 있다. 예를 들어, 호스트 인터페이스(340)는 USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트와 통신하도록 구성될 수 있다. 또한, 프로세서(310)는 메모리 인터페이스(350)를 통하여 비휘발성 스토리지(400)와 통신할 수 있다.
ECC 블록(330)은 상기 호스트 디바이스(100)로부터 제공된 데이터를 ECC 인코딩하여 비휘발성 스토리지(400)에 제공하고, 비휘발성 스토리지(400)로부터 독출된 데이터를 ECC 디코딩하여 호스트 디바이스(100)에 제공할 수 있다. 일 실시예에서, ECC 블록(330)은 BCH(Bose-Chaudhuri-Hocquenghem) 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다. 다른 실시예에서, ECC 블록(330)은 LDPC(Low Density Parity Check) 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다. 또 다른 실시예에서, ECC 블록(330)은 터보 코드(Turbo Code), 리드-솔로몬 코드(Reed-Solomon Code), 컨벌류션 코드(Convolution Code), RSC(Recursive Systematic Code), TCM(Trellis-Coded Modulation), BCM(Block Coded Modulation) 등의 부호화된 변조(Coded Modulation), 또는 다른 에러 정정 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다.
실시예에 따라, 스토리지 컨트롤러(310)가 비휘발성 스토리지(400)에 빌트-인(built-in)되어 구현되거나, 스토리지 컨트롤러(310) 및 비휘발성 스토리지(400)가 각각 별도의 칩으로 구현될 수 있다. 실시예에 따라, 비휘발성 스토리지(400)와 스토리지 컨트롤러(310) 사이의 데이터 전송량을 감소하기 위해 ECC 블록(330)은 비휘발성 스토리지(400)에 포함될 수도 있다.
레지스터부(320)는 호스트 디바이스(320)로부터의 리퀘스트에 상응하는 커맨드, 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스의 인덱스 및 데이터를 저장할 수 있다. 프로세서(310)는 비휘발성 스토리지(310)에 대한 액세스시 레지스터부(320)에 저장된 내용을 참조할 수 있다.
스토리지 디바이스(200)는 메모리 카드(memory card), 솔리드 스테이트 드라이브(solid state drive) 등과 같은 형태로 구현될 수 있다. 비휘발성 스토리지(400), 스토리지 컨트롤러(300), 및/또는 스토리지 디바이스(200)은 다양한 형태들의 패키지를 이용하여 구현될 수 있는데, 예를 들어, PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지를 이용하여 구현될 수 있다.
프로세서(310)는 스토리지 디바이스(200)에 전원이 공급되면, 초기화 프로세스 동안에 비휘발성 스토리지(400)의 맵 테이블(500)의 컨텐츠가 레지스터부(320)에 저장되도록 스토리지 디바이스(200)를 제어한다. 또한 프로세서(310)는 레지스터부(320)에 저장된 맵 테이블의 컨텐츠가 호스트 디바이스(100)의 메인 메모리(130)에 로딩되도록 호스트 디바이스(100)에 메시지를 전송한다. 또한 프로세서(310)는 비휘발성 스토리지(400)가 맵 테이블의 컨텐츠를 변경시키는 동작에 따라서 레지스터부(320)에 저장된 상응하는 컨텐츠를 갱신하도록 스토리지 디바이스(200)를 제어한다. 또한 프로세서(310)는 스토리지 디바이스(200)에서 전원이 차단되기 전에 레지스터부(320)에 저장된 맵 테이블의 컨텐츠가 비휘발성 스토리지(400)에 기입되도록 제어한다. 프로세서(310)에는 일련의 동작을 수행하기 위한 펌웨어가 내장되어 있다.
도 4는 본 발명의 실시예들에 따른 도 3의 레지스터부의 일 예를 나타낸다.
도 4를 참조하면, 레지스터부(320)는 커맨드 큐(321), 갱신 테이블(322) 및 데이터 영역(323)을 포함하여 구성될 수 있다.
커맨드 큐(321)에는 호스트 디바이스(100)로부터의 리퀘스트에 상응하는 커맨드들이 순차적으로 또는 우선순위에 따라 저장될 수 있다. 데이터 영역(323)에는 호스트 디바이스(100)로부터의 기입 데이터 또는 비휘발성 스토리지(400)로부터의 독출 데이터가 임시적으로 저장될 수 있다. 갱신 테이블(322)에는 호스트 디바이스(100)로부터의 논리 어드레스에 상응하는 물리 어드레스, 물리 어드레스의 인덱스 및 물리 어드레스의 유효 여부 및/또는 갱신 여부를 나타내는 유효 플래그가 저장될 수 있다.
도 5는 본 발명의 실시예들에 따른 도 1의 맵 테이블의 일 예를 나타낸다.
도 5에서는 설명의 편의를 위하여 도 1의 비휘발성 스토리지(400)의 메모리 블록을 같이 도시하였다. 또한 도 5에서는 페이지 매핑 기법에 따라 맵 테이블(500) 또는 맵 테이블(500a)이 구성되는 일 예를 도시하였다.
호스트 디바이스(100)가 논리적 페이지 어드레스 "5"에 대응하는 물리적 페이지 어드레스를 액세스하고자 하는 경우가 도시된다. 호스트 디바이스(100)가 논리적 페이지 주소 "5"에 대하여 액세스(510)에 하면, 중앙 처리 장치(110)는 메인 메모리(130)의 맵 테이블(500a)에서 논리적 페이지 어드레스 "5"를 저장하는 엔트리(520)에 대응하는 엔트리(530)를 검색하고, 엔트리에 저장된 논리적 페이지 어드레스 "5"에 대응되는 물리적 페이지 "2"의 인덱스 "2"를 논리적 페이지 어드레스 "5"와 함께 스토리지 디바이스(300)에 전송한다. 스토리지 컨트롤러(400)는 논리적 페이지 어드레스 "5"에 대응되는 물리적 페이지 "2"의 인덱스 "2"에 기초하여 비휘발성 스토리지의 물리적 페이지 어드레스 "2"가 가리키는 물리적 페이지(540)에 액세스한다.
도 5에서는 설명의 편의를 위하여, 비휘발성 스토리지(400)가 32개의 블록(PBN)으로 구성되고 하나의 페이지 블록은 4 개의 물리적 페이지로 구성되는 경우를 설명하였으나, 비휘발성 스토리지(400)는 64개 이상의 페이지 블록으로 구성될 수 있고, 하나의 페이지 블록은 8 , 16, 32, 64 개의 물리적 페이지들을 포함할 수 있다. 또한 도 5에서는 설명의 편의를 위하여 맵 테이블(500) 또는 맵 테이블(500a)이 페이지 매핑 기법에 따라 구성되는 경우를 설명하였으나 실시예에 따라 맵 테이블(500) 또는 맵 테이블(500a)은 블록 매핑 기법 또는 하이브리드 매핑 기법에 따라 구성될 수 있다.
맵 테이블(500) 또는 맵 테이블(500a)이 블록 매핑 기법에 따라 구성되는 경우에 하나의 논리적 블록에 대응하는 물리적 블록은 동적으로 변하는 반면, 각각의 블록 내에서의 페이지의 위치, 즉 페이지 오프셋은 변하지 않도록 매핑된다. 이 경우에 호스트 디바이스(100)는 논리적 블록 어드레스, 페이지 오프셋 및 인덱스를 스토리지 디바이스(300)에 제공할 수 있고, 스토리지 컨트롤러(400)는 페이지 오프셋 및 인덱스에 기초하여 비휘발성 스토리지(400)를 직접 액세스할 수 있다.
도 6은 본 발명의 실시예들에 따른 도 1의 스토리지 시스템의 동작을 나타낸다.
도 1 내지 도 3 및 도 6을 참조하면, 프로세서(310)는 스토리지 디바이스(200)에 전원이 공급되면, 참조번호(①)가 나타내는 바와 같이, 초기화 프로세스 동안에 비휘발성 스토리지(400)의 맵 테이블(500)의 컨텐츠가 레지스터부(320)에 저장되도록 스토리지 디바이스(200)를 제어한다. 프로세서(310)는 참조번호(②)가 나타내는 바와 같이, 레지스터부(320)에 저장된 맵 테이블의 컨텐츠가 호스트 디바이스(100)의 메인 메모리(130)에 로딩되도록 호스트 디바이스(100)에 메시지(MSG)를 전송한다. 호스트 디바이스(100)는 스토리지 디바이스(200)에 대한 액세스시에 메인 메모리(130)의 맵 테이블(500a)을 참조하여, 참조번호(③)가 나타내는 바와 같이, 스토리지 디바이스(200)를 액세스하기 위한 리퀘스트(REQ), 논리 어드레스(ADDR) 및 논리 어드레스(ADDR)에 상응하는 물리 어드레스의 인덱스(INX)를 스토리지 디바이스(200)에 전송한다. 스토리지 컨트롤러(300)는 논리 어드레스(ADDR)에 상응하는 물리 어드레스의 인덱스(INX)에 기초하여 비휘발성 스토리지의 물리 페이지를 직접 액세스할 수 있다.
도 7은 본 발명의 실시예들에 따른 도 4의 갱신 테이블의 일 예를 나타낸다.
도 7을 참조하면, 갱신 테이블(322)은 인덱스(INX), 물리 페이지 번호(PPN) 및 물리 페이지 번호(PPN)의 유효 여부 및/또는 갱신 여부를 나타내는 유효 플래그(VF)를 엔트리로서 포함할 수 있다.
참조 번호(371)가 나타내는 바와 같이 인덱스(INX) "1"은 물리 페이지 번호(PPN) "1"에 상응하는 물리 페이지를 나타낼 수 있고, 물리 페이지 번호(PPN)는 "1"은 유효 플래그(VF)가 "1"이므로 유효하다. 참조 번호(372)가 나타내는 바와 같이, 인덱스(INX) "2"는 물리 페이지 번호(PPN) "2"에 상응하는 물리 페이지를 나타낼 수 있으나, 물리 페이지 번호(PPN)는 "2"는 유효 플래그(VF)가 "0"이므로 유효하지 않다. 참조 번호(373)가 나타내는 바와 같이 인덱스(INX) "3"에 상응하는 물리 페이지 번호는 "3"에서 "4"로 갱신되었고 유효 플래그(VF)가 "1"이므로 유효하다. 갱신 테이블(322)에 대한 갱신은 프로세서(310)에 의하여 수행될 수 있다.
도 8은 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 기입 동작이 수행되는 것을 나타낸다.
도 1 및 도 8을 참조하면, 호스트 디바이스(100)가 스토리지 디바이스(200)에 기입 동작을 수행하는 경우, 호스트 디바이스(100)는 맵 테이블(500a)을 참조하여 기입 리퀘스트(REQ_WR), 데이터(DTA) 및 프리 페이지의 인덱스(INX_FP)를 스토리지 디바이스(200)에 제공하고, 스토리지 디바이스(200)의 스토리지 컨트롤러(300)는 프리 페이지의 인덱스(INX_FP)에 해당하는 물리적 페이지에 데이터(DTA)를 기입한다.
도 9는 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 독출 동작이 수행되는 것을 나타낸다.
도 1 및 도 9를 참조하면, 호스트 디바이스(100)가 스토리지 디바이스(200)에 독출 동작을 수행하는 경우, 호스트 디바이스(100)는 맵 테이블(500a)을 참조하여 독출 리퀘스트(REQ_RD), 및 데이터 페이지의 인덱스(INX_DP)를 스토리지 디바이스(200)에 제공하고, 스토리지 디바이스(200)의 스토리지 컨트롤러(300)는 데이터 페이지의 인덱스(INX_DP)에 해당하는 물리적 페이지로부터 데이터(DTA)를 독출하여 호스트 디바이스(100)에 제공할 수 있다.
도 10은 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 중앙 처리 장치, 메인 메모리 및 스토리지 디바이스 사이의 연결 관계의 일 예를 나타낸다.
도 1 및 도 10을 참조하면, 호스트 디바이스(100)의 중앙 처리 장치(110)는 스토리지 디바이스(200)와는 제1 인터페이스(111)를 통하여 연결되고, 메인 메모리(130)와는 제2 인터페이스(113)를 통하여 연결될 수 있다. 즉 중앙 처리 장치(110)는 스토리지 디바이스(200) 및 메인 메모리(130)와 개별적인 인터페이스들을 통하여 연결될 수 있다. 이 경우에 스토리지 디바이스(200)에 저장된 맵 테이블(500)의 컨텐츠는 제1 인터페이스(111), CPU(110) 및 제2 인터페이스(113)를 통하여 메인 메모리(130)의 맵 테이블(500a)에 로딩되고, CPU(110)는 스토리지 디바이스(200)를 액세스하는 경우에 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스를 스토리지 디바이스(200)에 제공하고, 스토리지 디바이스(200)의 스토리지 컨트롤러(300)는 물리 어드레스의 인덱스에 기초하여 비휘발성 스토리지(400)를 직접 액세스할 수 있다.
도 11은 본 발명의 실시예들에 따른 도 1의 컴퓨팅 장치에서 중앙 처리 장치, 메인 메모리 및 스토리지 디바이스 사이의 연결 관계의 다른 예를 나타낸다.
도 1 및 도 11을 참조하면, 호스트 디바이스(100)의 중앙 처리 장치(110)는 스토리지 디바이스(200) 및 메인 메모리(130)와 하나의 공통 인터페이스(115)를 통하여 연결될 수 있다. 즉 중앙 처리 장치(110)는 스토리지 디바이스(200) 및 메인 메모리(130)와 공통 인터페이스를 통하여 연결될 수 있다. 이 경우에 스토리지 디바이스(200)에 저장된 맵 테이블(500)의 컨텐츠는 공통 인터페이스(115), CPU(110) 및 공통 인터페이스(115)를 통하여 메인 메모리(130)의 맵 테이블(500a)에 로딩되고, CPU(110)는 스토리지 디바이스(200)를 액세스하는 경우에 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스를 스토리지 디바이스(200)에 제공하고, 스토리지 디바이스(200)의 스토리지 컨트롤러(300)는 물리 어드레스의 인덱스에 기초하여 비휘발성 스토리지(400)를 직접 액세스할 수 있다.
도 12는 본 발명의 실시예들에 따른 도 1의 비휘발성 스토리지를 나타내는 블록도이다.
도 12를 참조하면, 비휘발성 스토리지(400)는 메모리 셀 어레이(410), 페이지 버퍼 회로(420), 로우 디코더(430), 전압 발생기(440), 입출력 버퍼 회로(460), 및 제어 회로(450)를 포함한다. 일 실시예에서, 비휘발성 메모리 장치(400)는 플래시 메모리 장치일 수 있다. 다른 실시예에서, 비휘발성 메모리 장치(400)는 PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), MRAM(Magneto-resistive Random Access Memory), FRAM(Ferroelectric random access memory) 등과 같은 임의의 비휘발성 메모리 장치일 수 있다.
메모리 셀 어레이(410)는 복수의 워드 라인들 및 복수의 비트 라인들에 각각 연결되는 복수의 메모리 셀들을 포함한다. 도 25 내지 도 28을 참조하여 후술하는 바와 같이, 상기 복수의 메모리 셀들은 NAND 플래시 메모리 셀, NOR 플래시 메모리 셀 또는 저항성 메모리 셀일 수 있으며, 2차원 어레이(array) 구조 또는 3차원 수직 어레이 구조로 배열될 수 있다.
일 실시예에서, 상기 복수의 메모리 셀들은 각각 하나의 데이터 비트를 저장하는 싱글 레벨 셀(Single Level Cell; SLC)들 또는 복수의 데이터 비트들을 저장하는 멀티 레벨 셀(Multi Level Cell; MLC)들일 수 있다.
각각의 멀티 레벨 셀은 2N (N은 2 이상의 자연수)개의 상태들 중 하나로 프로그램되어 N 비트 데이터를 저장할 수 있다. 멀티 레벨 셀의 경우에 기입 모드에서의 프로그램 방식은 쉐도우 프로그램 방식, 리프로그램 방식 또는 온칩 버퍼드 프로그램 방식과 같은 다양한 프로그램 방식이 적용될 수 있다.
페이지 버퍼 회로(420)는 상기 복수의 비트 라인들에 연결되고, 메모리 셀 어레이(410)에 프로그램될 기입 데이터를 저장하거나 혹은 메모리 셀 어레이(410)로부터 감지된 독출 데이터를 저장한다. 즉, 페이지 버퍼 회로(420)는 플래시 메모리 장치(400)의 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 페이지 버퍼 회로(420)는 기입 모드에서 기입 드라이버로서 동작하고, 독출 모드에서 감지 증폭기로서 동작할 수 있다. 입출력 버퍼 회로(460)는 외부의 메모리 콘트롤러부터 메모리 셀 어레이(410)에 기입된 데이터를 수신하고, 메모리 셀 어레이(410)로부터 독출된 데이터를 상기 메모리 콘트롤러로 전송할 수 있다.
로우 디코더(430)는 상기 복수의 워드 라인들에 연결되고, 로우 어드레스에 응답하여 상기 복수의 워드 라인들 중 적어도 하나를 선택할 수 있다. 전압 발생기(440)는 제어 회로(450)의 제어에 따라 프로그램 전압, 패스 전압, 검증 전압, 소거 전압 및 독출 전압과 같은 워드 라인 전압들을 생성할 수 있다. 제어 회로(450)는 메모리 셀 어레이(410)에 대한 데이터 저장, 소거 및 독출 동작을 수행하도록 페이지 버퍼 회로(420), 로우 디코더(430), 전압 발생기(440) 및 입출력 버퍼 회로(460)를 제어할 수 있다.
도 13, 도 14, 도 15 및 도 16은 도 12의 비휘발성 스토리지에 포함되는 메모리 셀 어레이의 예들을 나타내는 도면들이다.
도 13은 NOR형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이고, 도 14는 NAND형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이며, 도 15는 수직형 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이고, 도 16은 저항성 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 회로도이다.
도 13을 참조하면, 메모리 셀 어레이(410a)는 복수의 메모리 셀(MC1)들을 포함할 수 있다. 동일한 열에 배열된 메모리 셀(MC1)들은 비트 라인들(BL(1), ..., BL(m)) 중 하나와 공통 소스 라인(CSL) 사이에 병렬로 배치될 수 있으며, 동일한 행에 배열된 메모리 셀(MC1)들은 워드 라인들(WL(1), WL(2), ..., WL(n)) 중 하나에 공통으로 연결될 수 있다. 예를 들어, 제1 열에 배열된 메모리 셀들은 제1 비트 라인(WL(1))과 공통 소스 라인(CSL) 사이에 병렬로 배치될 수 있다. 제1 행에 배열된 메모리 셀들의 게이트 전극들은 제1 워드 라인(WL(1))에 공통으로 연결될 수 있다. 메모리 셀(MC1)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다. 메모리 셀 어레이(410a)를 포함하는 NOR형 플래시 메모리 장치는 바이트(byte) 단위 또는 워드(word) 단위로 기입 동작 및 독출 동작을 수행하며, 블록(block, 412a) 단위로 소거 동작을 수행할 수 있다.
메모리 셀 어레이(410a)의 일부에 맵 테이블(500)이 저장되고, 맵 테이블(500)의 컨텐츠가 호스트 디바이스(100)의 메인 메모리(130)로 전송될 수 있다.
도 14를 참조하면, 메모리 셀 어레이(410b)는 스트링 선택 트랜지스터(SST)들, 접지 선택 트랜지스터(GST)들 및 메모리 셀(MC2)들을 포함할 수 있다. 스트링 선택 트랜지스터(SST)들은 비트 라인들(BL(1), ..., BL(m))에 연결되고, 접지 선택 트랜지스터(GST)들은 공통 소스 라인(CSL)에 연결될 수 있다. 동일한 열에 배열된 메모리 셀(MC2)들은 비트 라인들(BL(1), ..., BL(m)) 중 하나와 공통 소스 라인(CSL) 사이에 직렬로 배치될 수 있으며, 동일한 행에 배열된 메모리 셀(MC2)들은 워드 라인들(WL(1), WL(2), WL(3), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 즉, 스트링 선택 트랜지스터(SST)들과 접지 선택 트랜지스터(GST)들 사이에 메모리 셀(MC2)들이 직렬로 연결될 수 있으며, 스트링 선택 라인(SSL)과 접지 선택 라인(GSL) 사이에는 16개, 32개 또는 64개 등의 복수의 워드 라인들이 배열될 수 있다.
스트링 선택 트랜지스터(SST)들은 스트링 선택 라인(SSL)에 연결되어, 스트링 선택 라인(SSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있고, 접지 선택 트랜지스터(GST)들은 접지 선택 라인(GSL)에 연결되어, 접지 선택 라인(GSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있다. 메모리 셀(MC2)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
메모리 셀 어레이(410b)를 포함하는 NAND형 플래시 메모리 장치는 페이지(page, 411b) 단위로 기입 동작 및 독출 동작을 수행하며, 블록(412b) 단위로 소거 동작을 수행할 수 있다. 한편, 실시예에 따라서, 페이지 버퍼들은 각각 짝수 비트 라인과 홀수 비트 라인이 하나씩 연결될 수 있다. 이 경우, 짝수 비트 라인들은 짝수 페이지를 형성하고, 홀수 비트 라인들은 홀수 페이지를 형성하며, 메모리 셀(MC2)들에 대한 기입 동작은 짝수 페이지와 홀수 페이지가 번갈아 가며 순차적으로 수행될 수 있다.
메모리 셀 어레이(410b)의 일부에 맵 테이블(500)이 저장되고, 맵 테이블(500)의 컨텐츠가 호스트 디바이스(100)의 메인 메모리(130)로 전송될 수 있다.
도 15를 참조하면, 메모리 셀 어레이(410c)는 수직 구조를 가지는 복수의 스트링(413c)들을 포함할 수 있다. 스트링(413c)은 제2 방향을 따라 복수 개로 형성되어 스트링 열을 형성할 수 있으며, 상기 스트링 열은 제3 방향을 따라 복수 개로 형성되어 스트링 어레이를 형성할 수 있다. 복수의 스트링(413c)들은 비트 라인들(BL(1), ..., BL(m))과 공통 소스 라인(CSL) 사이에 제1 방향을 따라 직렬로 배치되는 접지 선택 트랜지스터(GSTV)들, 메모리 셀(MC3)들 및 스트링 선택 트랜지스터(SSTV)들을 각각 포함할 수 있다.
접지 선택 트랜지스터(GSTV)들은 접지 선택 라인들(GSL11, GSL12, ..., GSLi1, GSLi2)에 각각 연결되고, 스트링 선택 트랜지스터(SSTV)들은 스트링 선택 라인들(SSL11, SSL12, ..., SSLi1, SSLi2)에 각각 연결될 수 있다. 동일한 층에 배열되는 메모리 셀(MC3)들은 워드 라인들(WL(1), WL(2), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 접지 선택 라인들(GSL11, ..., GSLi2) 및 스트링 선택 라인들(SSL11, ..., SSLi2)은 상기 제2 방향으로 연장되며 상기 제3 방향을 따라 복수 개로 형성될 수 있다. 워드 라인들(WL(1), ..., WL(n))은 상기 제2 방향으로 연장되며 상기 제1 방향 및 상기 제3 방향을 따라 복수 개로 형성될 수 있다. 비트 라인들(BL(1), ..., BL(m))은 상기 제3 방향으로 연장되며 상기 제2 방향을 따라 복수 개로 형성될 수 있다. 메모리 셀(MC3)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
메모리 셀 어레이(410c)를 포함하는 수직형 플래시 메모리 장치는 NAND 플래시 메모리 셀들을 포함하므로, NAND형 플래시 메모리 장치와 마찬가지로 페이지 단위로 기입 동작 및 독출 동작을 수행하며, 블록 단위로 소거 동작을 수행한다.
실시예에 따라서, 하나의 스트링(413c)에 포함되는 두 개의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 연결되고 하나의 스트링에 포함되는 두 개의 접지 선택 트랜지스터들은 하나의 접지 선택 라인에 연결되도록 구현될 수도 있다. 또한, 실시예에 따라서, 하나의 스트링은 하나의 스트링 선택 트랜지스터 및 하나의 접지 선택 트랜지스터를 포함하여 구현될 수도 있다.
메모리 셀 어레이(410c)의 일부에 맵 테이블(500)이 저장되고, 맵 테이블(500)의 컨텐츠가 호스트 디바이스(100)의 메인 메모리(130)로 전송될 수 있다.
도 16을 참조하면, 메모리 셀 어레이(410d)는 복수의 워드라인들(WL0~WLn)과 복수의 비트라인들(BL0~BLm)이 교차하는 영역에 배치되는 복수의 메모리 셀(MC)들을 포함한다. 각각의 메모리 셀(MC)은 도 28에 도시된 바와 같이 셀 트랜지스터(CT) 및 저항성 소자(CR)를 포함할 수 있다.
각각의 메모리 셀(MC)의 셀 트랜지스터(CT)와 저항성 소자(CR)는 비트라인들(BL0~BLm) 중 각각의 비트라인과 소스라인(SL) 사이에 연결될 수 있다. 복수의 메모리 셀(MC)은 동일한 소스 라인(SL)에 공통으로 연결될 수도 있다. 한편, 메모리 셀 어레이(410d)는 두 개 이상의 셀 영역들로 구분될 수 있고, 각각의 셀 영역마다 서로 다른 소스 라인(SL)이 연결될 수 있다.
메모리 셀 어레이(410d)의 일부에 맵 테이블(500)이 저장되고, 맵 테이블(500)의 컨텐츠가 호스트 디바이스(100)의 메인 메모리(130)로 전송될 수 있다.
도 17은 도 16의 저항성 메모리 셀들이 STT-MRAM 셀로 구현되는 일 예를 나타내는 입체도이다.
도 17을 참조하면, STT-MRAM(spin transfer torque magneto-resistive random access memory) 셀은 MTJ(Magnetic Tunnel Junction) 소자 및 셀 트랜지스터(CT)를 포함할 수 있다. 셀 트랜지스터(CT)의 게이트는 워드라인(예컨대, 제 1 워드라인 WL0)에 연결되고, 셀 트랜지스터(CT)의 일 전극은 MTJ 소자를 통해 비트라인(예컨대, 제 1 비트라인 BL0)에 연결된다. 또한 셀 트랜지스터(CT)의 다른 전극은 소스 라인(SL0)에 연결된다.
MTJ 소자는 고정 층(Pinned layer, 13)과 자유 층(free layer, 11) 및 이들 사이에 터널 층(Barrier layer, 12)을 포함할 수 있다. 고정 층(13)의 자화 방향은 고정되어 있으며, 자유 층(11)의 자화 방향은 조건에 따라 고정 층(13)의 자화 방향과 같거나 역 방향이 될 수 있다. 고정 층(13)의 자화 방향을 고정시켜 주기 위하여, 예컨대, 반강자성층(anti-ferromagnetic layer, 미도시)이 더 구비될 수 있다.
STT-MRAM의 기입 동작을 위해서는, 워드라인(WL0)에 로직 하이의 전압을 주어 셀 트랜지스터(CT)를 턴온시키고, 비트라인(BL0)과 소스 라인(SL) 사이에 라이트 전류를 인가한다.
STT-MRAM의 독출 동작을 위해서는, 워드라인(WL0)에 로직 하이의 전압을 인가하여 셀 트랜지스터(CT)를 턴온시키고, 비트라인(BL0)으로부터 소스 라인(SL) 방향으로 리드 전류를 인가하여, 측정되는 저항 값에 따라 MTJ 소자에 저장된 데이터를 판별할 수 있다.
도 18은 본 발명의 실시예들에 따른 스토리지 디바이스가 메모리 카드에 응용된 예를 나타내는 도면이다.
도 18을 참조하면, 메모리 카드(600)는 복수의 접속 핀들(610), 스토리지 컨트롤러(620) 및 비휘발성 스토리지(630)를 포함한다.
호스트 디바이스(100)와 메모리 카드(600) 사이의 신호들이 송수신되도록 복수의 접속 핀들(610)은 상기 호스트에 연결될 수 있다. 복수의 접속 핀들(610)은 클록 핀, 커맨드 핀, 데이터 핀 및/또는 리셋 핀을 포함할 수 있다.
스토리지 컨트롤러(620)는, 호스트 디바이스(100)로부터 데이터를 수신하고, 상기 수신된 데이터를 비휘발성 스토리지(630)에 저장할 수 있다. 비휘발성 스토리지(630)는 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블(500)을 구비할 수 있다. 스토리지 디바이스(630)의 초기화 프로세스 동안에 맵 테이블의 컨텐츠는 스토리지 컨트롤러(620)를 통하여 호스트 디바이스(100)의 메인 메모리의 맵 테이블(500a)에 저장될 수 있다. 호스트 디바이스(100)는 메모리 카드(600)를 액세스하는 경우, 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스를 메모리 카드(200)에 전송하고, 스토리지 컨트롤러(620)는 상기 인덱스에 기초하여 비휘발성 스토리지(630)에 저장된 상기 맵 테이블을 액세스하여 논리 어드레스를 물리 어드레스로 변환하는 과정을 거치지 않고도 비휘발성 스토리지(630)의 물리 페이지를 직접 액세스하여 동작 속도를 향상시킬 수 있다.
예를 들어, 메모리 카드(600)는 멀티미디어 카드(MultiMedia Card; MMC), 임베디드 멀티미디어 카드(embedded MultiMedia Card; eMMC), 하이브리드 임베디드 멀티미디어 카드(hybrid embedded MultiMedia Card; hybrid eMMC), SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA(Personal Computer Memory Card International Association) 카드, 칩 카드(Chip Card), USB 카드, 스마트카드(Smart Card), CF 카드(Compact Flash Card)등과 같은 메모리 카드일 수 있다.
실시예에 따라서, 메모리 카드(600)는 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 호스트에 장착될 수 있다.
도 19는 본 발명의 실시예들에 따른 스토리지 디바이스가 솔리드 스테이트 드라이브에 응용된 예를 나타내는 도면이다.
도 19를 참조하면, 솔리드 스테이트 드라이브(Solid State Drive; SSD, 700)는 스토리지 컨트롤러(710), 및 복수의 비휘발성 메모리 스토리지들(750)을 포함한다.
스토리지 컨트롤러(710)는, 호스트 디바이스(100)로부터 데이터를 수신하고, 상기 수신된 데이터를 비휘발성 스토리지들(750)에 저장할 수 있다. 비휘발성 스토리지들(750) 각각은 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블을 구비할 수 있다.
솔리드 스테이트 드라이브(700)의 초기화 프로세스 동안에 맵 테이블의 컨텐츠는 스토리지 컨트롤러(710)를 통하여 호스트 디바이스(100)의 메인 메모리의 맵 테이블(500a)에 저장될 수 있다. 호스트 디바이스(100)는 솔리드 스테이트 드라이브(700)를 액세스하는 경우, 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스를 솔리드 스테이트 드라이브(700)에 전송하고, 스토리지 컨트롤러(710)는 상기 인덱스에 기초하여 비휘발성 스토리지들(750) 각각에 저장된 상기 맵 테이블을 액세스하여 논리 어드레스를 물리 어드레스로 변환하는 과정을 거치지 않고도 비휘발성 스토리지들(750) 각각의 물리 페이지를 직접 액세스하여 동작 속도를 향상시킬 수 있다.
실시예에 따라서, 솔리드 스테이트 드라이브(700)는 컴퓨터, 노트북, 핸드폰, 스마트 폰, MP3 플레이어, 피디에이, 피엠피, 디지털 TV, 디지털 카메라, 포터블 게임 콘솔 등과 같은 호스트에 장착될 수 있다.
도 20은 본 발명의 실시예들에 따른 스토리지 시스템의 동작 방법을 나타내는 흐름도이다.
도 1 및 도 20을 참조하면, 스토리지 디바이스(200)의 초기화 프로세스 동안에 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 저장하는 맵 테이블(500)의 컨텐츠는 스토리지 컨트롤러(300)를 통하여 호스트 디바이스(100)의 메인 메모리의 맵 테이블(500a)에 로딩된다(S110). 호스트 디바이스(100)는 스토리지 디바이스(200)를 액세스하는 경우, 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스를 스토리지 디바이스(200)에 전송한다(S130). 스토리지 디바이스(200)의 스토리지 컨트롤러(300)는 상기 인덱스에 기초하여 비휘발성 스토리지(400)의 물리 페이지를 직접 액세스한다(S150). 따라서 스토리지 컨트롤러(300)는 상기 인덱스에 기초하여 비휘발성 스토리지(400)에 저장된 상기 맵 테이블(500)을 액세스하여 논리 어드레스를 물리 어드레스로 변환하는 과정을 거치지 않고도 비휘발성 스토리지(400)의 물리 페이지를 직접 액세스하므로 동작 속도를 향상시킬 수 있다.
도 21 및 도 22은 본 발명의 실시예들에 따른 스토리지 디바이스를 컴퓨팅 시스템에 응용한 예를 나타내는 블록도들이다.
도 21을 참조하면, 컴퓨팅 시스템(800)은 프로세서(810), 입출력 허브(820), 입출력 콘트롤러 허브(830), 적어도 하나의 메모리 모듈(840), 그래픽 카드(850) 및 메인 메모리(860)를 포함한다. 실시예에 따라, 컴퓨팅 시스템(800)은 개인용 컴퓨터(Personal Computer; PC), 서버 컴퓨터(Server Computer), 워크스테이션(Workstation), 노트북(Laptop), 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 디지털 TV(Digital Television), 셋-탑 박스(Set-Top Box), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 시스템 등과 같은 임의의 컴퓨팅 시스템일 수 있다.
프로세서(810)는 특정 계산들 또는 태스크들과 같은 다양한 컴퓨팅 기능들을 실행할 수 있다. 예를 들어, 프로세서(810)는 마이크로프로세서 또는 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 실시예에 따라서, 프로세서(810)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(810)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 도 35에는 하나의 프로세서(810)를 포함하는 컴퓨팅 시스템(800)이 도시되어 있으나, 실시예에 따라서, 컴퓨팅 시스템(800)은 복수의 프로세서들을 포함할 수 있다. 또한, 실시예에 따라서, 프로세서(810)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
프로세서(810)는 메모리 모듈(840)의 동작을 제어하는 메모리 컨트롤러(811)를 포함할 수 있다. 프로세서(810)에 포함된 메모리 컨트롤러(811)는 집적 메모리 콘트롤러(Integrated Memory Controller; IMC)라 불릴 수 있다. 메모리 콘트롤러(811)와 메모리 모듈(840) 사이의 메모리 인터페이스는 복수의 신호선들을 포함하는 하나의 채널로 구현되거나, 복수의 채널들로 구현될 수 있다. 또한, 각 채널에는 하나 이상의 메모리 모듈(840)이 연결될 수 있다. 실시예에 따라서, 메모리 콘트롤러(811)는 입출력 허브(820) 내에 위치할 수 있다. 메모리 컨트롤러(811)를 포함하는 입출력 허브(820)는 메모리 콘트롤러 허브(Memory Controller Hub; MCH)라 불릴 수 있다.
메모리 모듈(840)은 메모리 컨트롤러(811)로부터 제공된 데이터를 저장하는 복수의 비휘발성 메모리 장치들을 포함할 수 있다. 상기 비휘발성 메모리 장치들은 각각 메모리 셀 어레이를 포함하며, 메모리 콘트롤러(811)는 메모리 셀 어레이에 대하여 페이지 단위로 독출 동작을 수행하고, 독출된 데이터에 대하여 섹터 단위로 에러 체크 및 정정(ECC) 디코딩을 수행할 수 있다.
또한 복수의 비휘발성 메모리 장치들은 본 발명의 실시예들에 따른 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블(500)을 구비할 수 있다. 메모리 모듈(840)의 초기화 프로세스 동안에 맵 테이블의 컨텐츠는 메모리 컨트롤러(860)를 통하여 메인 메모리의 맵 테이블에 저장될 수 있다. 프로세서(810)는 메모리 모듈(840)을 액세스하는 경우, 리퀘스트(REQ)와 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스(INX)를 메모리 컨트롤러(811)에 전송하고 메모리 컨트롤러(811)는 상기 인덱스에 기초하여 메모리 모듈(840)에 저장된 상기 맵 테이블을 액세스하여 논리 어드레스를 물리 어드레스로 변환하는 과정을 거치지 않고도 메모리 모듈(840)에 포함되는 비휘발성 메모리 장치의 물리 페이지를 직접 액세스하여 동작 속도를 향상시킬 수 있다.
입출력 허브(820)는 그래픽 카드(850)와 같은 장치들과 프로세서(810) 사이의 데이터 전송을 관리할 수 있다. 입출력 허브(820)는 다양한 방식의 인터페이스를 통하여 프로세서(810)에 연결될 수 있다. 예를 들어, 입출력 허브(820)와 프로세서(810)는, 프론트 사이드 버스(Front Side Bus; FSB), 시스템 버스(System Bus), 하이퍼트랜스포트(HyperTransport), 라이트닝 데이터 트랜스포트(Lightning Data Transport; LDT), 퀵패스 인터커넥트(QuickPath Interconnect; QPI), 공통 시스템 인터페이스(Common System Interface; CSI) 등의 다양한 표준의 인터페이스로 연결될 수 있다. 도 36에는 하나의 입출력 허브(820)를 포함하는 컴퓨팅 시스템(800)이 도시되어 있으나, 실시예에 따라서, 컴퓨팅 시스템(800)은 복수의 입출력 허브들을 포함할 수 있다.
입출력 허브(820)는 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 허브(820)는 가속 그래픽 포트(Accelerated Graphics Port; AGP) 인터페이스, 주변 구성요소 인터페이스-익스프레스(Peripheral Component Interface-Express; PCIe), 통신 스트리밍 구조(Communications Streaming Architecture; CSA) 인터페이스 등을 제공할 수 있다.
그래픽 카드(850)는 AGP 또는 PCIe를 통하여 입출력 허브(820)와 연결될 수 있다. 그래픽 카드(850)는 영상을 표시하기 위한 디스플레이 장치(미도시)를 제어할 수 있다. 그래픽 카드(850)는 이미지 데이터 처리를 위한 내부 프로세서 및 내부 반도체 메모리 장치를 포함할 수 있다. 실시예에 따라, 입출력 허브(820)는, 입출력 허브(820)의 외부에 위치한 그래픽 카드(850)와 함께, 또는 그래픽 카드(850) 대신에 입출력 허브(820)의 내부에 그래픽 장치를 포함할 수 있다. 입출력 허브(820)에 포함된 그래픽 장치는 집적 그래픽(Integrated Graphics)이라 불릴 수 있다. 또한, 메모리 콘트롤러 및 그래픽 장치를 포함하는 입출력 허브(820)는 그래픽 및 메모리 콘트롤러 허브(Graphics and Memory Controller Hub; GMCH)라 불릴 수 있다.
입출력 컨트롤러 허브(830)는 다양한 시스템 인터페이스들이 효율적으로 동작하도록 데이터 버퍼링 및 인터페이스 중재를 수행할 수 있다. 입출력 컨트롤러 허브(830)는 내부 버스를 통하여 입출력 허브(820)와 연결될 수 있다. 예를 들어, 입출력 허브(820)와 입출력 콘트롤러 허브(830)는 다이렉트 미디어 인터페이스(Direct Media Interface; DMI), 허브 인터페이스, 엔터프라이즈 사우스브릿지 인터페이스(Enterprise Southbridge Interface; ESI), PCIe 등을 통하여 연결될 수 있다.
입출력 컨트롤러 허브(830)는 주변 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 컨트롤러 허브(830)는 범용 직렬 버스(Universal Serial Bus; USB) 포트, 직렬 ATA(Serial Advanced Technology Attachment; SATA) 포트, 범용 입출력(General Purpose Input/Output; GPIO), 로우 핀 카운트(Low Pin Count; LPC) 버스, 직렬 주변 인터페이스(Serial Peripheral Interface; SPI), PCI, PCIe 등을 제공할 수 있다.
실시예에 따라서, 프로세서(810), 입출력 허브(820) 및 입출력 컨트롤러 허브(830)는 각각 분리된 칩셋들 또는 집적 회로들로 구현되거나, 프로세서(810), 입출력 허브(820) 또는 입출력 컨트롤러 허브(830) 중 2 이상의 구성요소들이 하나의 칩셋으로 구현될 수 있다.
도 22를 참조하면, 컴퓨팅 시스템(900)은 프로세서(910), 메모리 장치(920), 사용자 인터페이스(930), 버스(950) 및 메모리 시스템(960)을 포함한다. 실시예에 따라, 컴퓨팅 시스템(900)은 베이스밴드 칩 셋(baseband chipset)과 같은 모뎀(940)을 더 포함할 수 있다.
프로세서(910)는 특정 계산들 또는 태스크들을 실행할 수 있다. 예를 들어, 프로세서(910)는 마이크로프로세서 또는 중앙 처리 장치(CPU)일 수 있다. 프로세서(910)는 어드레스 버스, 제어 버스 및/또는 데이터 버스와 같은 버스(950)를 통하여 메모리 시스템(960)에 연결될 수 있다. 예를 들어, 메모리 장치(920)는 DRAM, 모바일 DRAM, SRAM, PRAM, FRAM, RRAM 및/또는 MRAM으로 구현될 수 있다. 또한, 프로세서(910)는 주변 구성요소 상호연결(peripheral component interconnect, PCI) 버스와 같은 확장 버스에 연결될 수 있다. 이에 따라, 프로세서(910)는 키보드 또는 마우스와 같은 하나 이상의 입력 장치, 프린터 또는 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함하는 사용자 인터페이스(930)를 제어할 수 있다. 모뎀(940)은 외부 장치와 무선으로 데이터를 송수신할 수 있다. 메모리 시스템(960)의 비휘발성 메모리 장치(980)에는 프로세서(910)에 의해 처리된 데이터 또는 모뎀(940)을 통하여 수신된 데이터 등이 메모리 컨트롤러(970)를 통해 저장될 수 있다.
또한 비휘발성 메모리 장치(980)에는 본 발명의 실시예들에 따른 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블(500)을 구비할 수 있다. 메모리 시스템(860)의 초기화 프로세스 동안에 맵 테이블의 컨텐츠는 메모리 컨트롤러(970)를 통하여 메모리 장치(920)의 맵 테이블에 저장될 수 있다. 프로세서(910)는 메모리 시스템(960)을 액세스하는 경우, 리퀘스트(REQ)와 논리 어드레스와 논리 어드레스에 상응하는 물리 어드레스의 인덱스(INX)를 메모리 컨트롤러(970)에 전송하고 메모리 컨트롤러(970)는 상기 인덱스에 기초하여 비휘발성 메모리 장치(980)에 저장된 상기 맵 테이블을 액세스하여 논리 어드레스를 물리 어드레스로 변환하는 과정을 거치지 않고도 비휘발성 메모리 장치(980)의 물리 페이지를 직접 액세스하여 동작 속도를 향상시킬 수 있다.
컴퓨팅 시스템(900)은 동작 전압을 공급하기 위한 파워 서플라이를 더 포함할 수 있다. 또한, 컴퓨팅 시스템(900)은, 실시예에 따라서, 응용 칩셋(application chipset), 카메라 이미지 프로세서(camera image processor, CIS) 등을 더 포함할 수 있다.
상술한 바와 같이, 본 발명의 실시예들에 따르면, 초기화 프로세스 동안에 논리 어드레스와 상응하는 물리 어드레스의 인덱스를 호스트 디바이스의 메인 메모리에 전송하고, 호스트 디바이스가 스토리지 디바이스를 액세스하는 경우에는 논리 어드레스와 인덱스를 스토리지 디바이스에 전송하고, 스토리지 디바이스의 스토리지 컨트롤러는 상기 인덱스에 기초하여 스비휘발성 스토리지를 직접 액세스함으로 동작 속도를 향상시킬 수 있다.
본 발명의 실시예들은 래시 메모리와 같은 비휘발성 메모리 장치, 및 이를 포함하는 다양한 장치 및 시스템에 적용될 수 있다. 따라서, 본 발명은 비휘발성 메모리 장치를 구비하는 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 전자 기기에 확대 적용될 수 있을 것이다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블을 구비하는 비휘발성 스토리지; 및
    상기 불휘발성 스토리지를 제어하는 스토리지 컨트롤러를 포함하고,
    상기 스토리지 컨트롤러는 초기화 프로세스 동안에 상기 맵 테이블의 상기 컨텐츠를 외부의 호스트 디바이스에 전송하고, 상기 호스트 디바이스로부터 전송되는 리퀘스트, 논리 어드레스 및 인덱스에 기초하여 상기 비휘발성 스토리지를 직접 액세스하는 스토리지 디바이스.
  2. 제1항에 있어서,
    상기 스토리지 컨트롤러는 상기 인덱스에 상응하는 상기 비휘발성 스토리지의 물리 페이지를 직접 액세스하는 것을 특징으로 하는 스토리지 디바이스.
  3. 제1항에 있어서,
    상기 리퀘스트가 상기 비휘발성 스토리지에 대한 독출 인덱스인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 데이터 페이지의 인덱스이고.
    상기 리퀘스트가 상기 비휘발성 스토리지에 대한 기입 리퀘스트인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 프리 페이지의 인덱스인 것을 특징으로 하는 스토리지 디바이스.
  4. 제1항에 있어서,
    상기 스토리지 컨트롤러는 상기 호스트 디바이스로부터의 리퀘스트에 상응하는 커맨드를 저장하는 커맨드 큐 및 상기 인덱스를 저장하는 갱신 테이블을 구비하는 레지스터부를 포함하고,
    상기 갱신 테이블은 상기 인덱스의 갱신 여부를 나타내는 갱신 태그를 저장하고,
    상기 스토리지 컨트롤러는 상기 갱신 테이블을 참조하여 상기 인덱스에 상응하는 상기 비휘발성 스토리지의 물리 페이지를 직접 액세스하는 것을 특징으로 하는 스토리지 디바이스.
  5. 논리 어드레스, 논리 어드레스에 상응하는 물리 어드레스 및 상기 물리 어드레스를 지정하는 인덱스를 컨텐츠로서 저장하는 맵 테이블을 구비하는 비휘발성 스토리지를 구비하는 스토리지 디바이스; 및
    상기 스토리지 디바이스를 제어하는 호스트 디바이스를 포함하고,
    상기 호스트 디바이스는 상기 스토리지 디바이스의 초기화 프로세스 동안에 상기 스토리지 디바이스로부터 전송받은 상기 컨텐츠를 저장하는 메인 메모리를 포함하는 것을 스토리지 시스템.
  6. 제5항에 있어서,
    상기 호스트 디바이스는 상기 메인 메모리에 저장된 상기 컨텐츠에 기초하여 리퀘스트, 논리 어드레스 및 인덱스를 상기 스토리지 디바이스에 전송하고,
    상기 스토리지 디바이스는 상기 리퀘스트 및 상기 인덱스에 기초하여 상기 비휘발성 스토리지를 직접 액세스하는 스토리지 컨트롤러를 더 포함하는 것을 특징으로 하는 스토리지 시스템.
  7. 제6항에 있어서, 상기 스토리지 컨트롤러는
    상기 스토리지 디바이스의 전반적인 동작을 제어하는 프로세서;
    상기 리퀘스트에 상응하는 커맨드, 상기 논리 어드레스 및 상기 인덱스를 저장하는 레지스터부;
    상기 호스트 디바이스와 전기적으로 연결되는 호스트 인터페이스; 및
    상기 비휘발성 스토리지와 전기적으로 연결되는 메모리 인터페이스를 포함하고,
    상기 프로세서는 상기 초기화 프로세스 동안에 상기 비휘발성 스토리지에 저장된 상기 맵 테이블의 컨텐츠를 상기 레지스터부에 로딩하고, 상기 호스트에 메시지를 전송하고,
    상기 호스트 디바이스는 상기 메시지에 응답하여 상기 컨텐츠를 상기 메인 메모리에 저장하는 것을 특징으로 하는 스토리지 시스템.
  8. 제7항에 있어서, 상기 레지스터부는
    상기 커맨드를 저장하는 커맨드 큐; 및
    상기 인덱스를 저장하는 갱신 테이블을 포함하고,
    상기 갱신 테이블은 상기 인덱스의 갱신 여부를 나타내는 갱신 태그를 저장하고,
    상기 스토리지 컨트롤러는 상기 갱신 테이블을 참조하여 상기 인덱스에 상응하는 상기 비휘발성 스토리지의 물리 페이지를 직접 액세스하는 것을 특징으로 하는 스토리지 시스템.
  9. 제5항에 있어서,
    상기 리퀘스트가 상기 비휘발성 스토리지에 대한 기입 리퀘스트인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 프리 페이지의 인덱스이고,
    상기 리퀘스트가 상기 비휘발성 스토리지에 대한 독출 인덱스인 경우에 상기 인덱스는 상기 비휘발성 스토리지의 데이터 페이지의 인덱스이고,
    상기 메인 메모리는 DRAM이고 상기 비휘발성 스토리지는 낸드 플래시 메모리인 것을 특징으로 하는 스토리지 시스템.
  10. 제5항에 있어서,
    상기 호스트 디바이스는 상기 메인 메모리와 연결되고, 상기 호스트 디바이스의 전반적인 동작을 제어하는 중앙 처리 장치를 더 포함하고,
    상기 중앙 처리 장치는 상기 메인 메모리와 상기 스토리지 디바이스와 개별적인 인터페이스들을 통하여 서로 연결되거나,
    상기 중앙 처리 장치는 상기 메인 메모리와 상기 스토리지 디바이스와 하나의 공통 인터페이스를 통하여 서로 연결되는 것을 특징으로 하는 스토리지 시스템.
KR1020130091572A 2013-08-01 2013-08-01 스토리지 디바이스 및 이를 포함하는 스토리지 시스템 KR20150015764A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130091572A KR20150015764A (ko) 2013-08-01 2013-08-01 스토리지 디바이스 및 이를 포함하는 스토리지 시스템
US14/449,343 US20150039814A1 (en) 2013-08-01 2014-08-01 Storage device and storage system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130091572A KR20150015764A (ko) 2013-08-01 2013-08-01 스토리지 디바이스 및 이를 포함하는 스토리지 시스템

Publications (1)

Publication Number Publication Date
KR20150015764A true KR20150015764A (ko) 2015-02-11

Family

ID=52428748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130091572A KR20150015764A (ko) 2013-08-01 2013-08-01 스토리지 디바이스 및 이를 포함하는 스토리지 시스템

Country Status (2)

Country Link
US (1) US20150039814A1 (ko)
KR (1) KR20150015764A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170099618A (ko) * 2016-02-24 2017-09-01 에스케이하이닉스 주식회사 데이터 저장 장치
US10402102B2 (en) 2017-03-31 2019-09-03 SK Hynix Inc. Memory system and operating method thereof
US10922222B2 (en) 2018-01-19 2021-02-16 SK Hynix Inc. Data processing system and operating method for generating physical address update history
US11886361B2 (en) 2019-01-31 2024-01-30 SK Hynix Inc. Memory controller and operating method thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310740B2 (en) * 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10866737B2 (en) * 2015-09-17 2020-12-15 Intel Corporation Apparatus, method and system to store information for a solid state drive
US20170300422A1 (en) 2016-04-14 2017-10-19 Micron Technology, Inc. Memory device with direct read access
CN106250416B (zh) * 2016-07-22 2020-08-21 努比亚技术有限公司 一种处理分页数据的方法、装置和服务器
KR102385921B1 (ko) * 2017-06-07 2022-04-14 삼성전자주식회사 반도체 소자
US10521343B2 (en) * 2017-06-12 2019-12-31 Western Digital Technologies, Inc. Storage system with a controller having a persistent memory interface to local memory
CN109582599B (zh) * 2017-09-29 2023-12-22 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法
US10970226B2 (en) * 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
KR20190052441A (ko) * 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN109697037A (zh) * 2019-01-22 2019-04-30 深圳忆联信息系统有限公司 节省本地dram的方法、装置、计算机设备及存储介质
TWI697779B (zh) * 2019-02-20 2020-07-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11237953B2 (en) * 2019-05-21 2022-02-01 Micron Technology, Inc. Host device physical address encoding

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100880425B1 (ko) * 2007-02-13 2009-01-29 삼성전자주식회사 메모리 맵 테이블 서치 타임을 최소화 또는 줄일 수 있는방법 및 그에 따른 반도체 메모리 장치
US8977805B2 (en) * 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
US8782327B1 (en) * 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US10013354B2 (en) * 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
TWI579692B (zh) * 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
CN102789427B (zh) * 2012-07-17 2015-11-25 威盛电子股份有限公司 数据储存装置与其操作方法
KR20140057454A (ko) * 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170099618A (ko) * 2016-02-24 2017-09-01 에스케이하이닉스 주식회사 데이터 저장 장치
US10402102B2 (en) 2017-03-31 2019-09-03 SK Hynix Inc. Memory system and operating method thereof
US10922222B2 (en) 2018-01-19 2021-02-16 SK Hynix Inc. Data processing system and operating method for generating physical address update history
US11886361B2 (en) 2019-01-31 2024-01-30 SK Hynix Inc. Memory controller and operating method thereof

Also Published As

Publication number Publication date
US20150039814A1 (en) 2015-02-05

Similar Documents

Publication Publication Date Title
US10466902B2 (en) Memory system and operation method for the same
KR20150015764A (ko) 스토리지 디바이스 및 이를 포함하는 스토리지 시스템
CN107766257B (zh) 存储器系统及其操作方法
US10311920B2 (en) Apparatus and method for controlling memory device
KR102219451B1 (ko) 스토리지 컨트롤러, 이의 동작 방법 및 이를 포함하는 솔리드 스테이트 디스크
US20180011527A1 (en) Memory system and operating method thereof
US11204846B2 (en) Memory system and method for operating the same
US10514863B2 (en) Memory system and operation method for the same
CN109390003B (zh) 存储器系统及其操作方法
KR102468751B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US11163646B2 (en) Memory system for detecting erased page including memory cells with distorted threshold voltages, and operation method thereof
US10877883B2 (en) Memory system, controller for performing read reclaim operation, and method for operating the controller
US20180059937A1 (en) Memory system and operating method thereof
US11675543B2 (en) Apparatus and method for processing data in memory system
US9946586B2 (en) Memory system and operating method thereof
CN110751972A (zh) 存储器系统及该存储器系统的操作方法
CN107728932B (zh) 存储器系统及其操作方法
US10614890B2 (en) Memory system and operating method thereof
US10460809B2 (en) Memory system and operating method thereof
KR102178833B1 (ko) 메모리 시스템 및 이를 포함하는 컴퓨팅 시스템
KR20180058327A (ko) 컨트롤러, 메모리 시스템 및 그의 동작 방법
KR20170133090A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid