KR101552207B1 - 예비 영역을 가지는 반도체 메모리 장치 - Google Patents
예비 영역을 가지는 반도체 메모리 장치 Download PDFInfo
- Publication number
- KR101552207B1 KR101552207B1 KR1020080101097A KR20080101097A KR101552207B1 KR 101552207 B1 KR101552207 B1 KR 101552207B1 KR 1020080101097 A KR1020080101097 A KR 1020080101097A KR 20080101097 A KR20080101097 A KR 20080101097A KR 101552207 B1 KR101552207 B1 KR 101552207B1
- Authority
- KR
- South Korea
- Prior art keywords
- blocks
- spare
- block
- solid state
- state drive
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
본 발명은 반도체 메모리 장치에 관한 것으로, 더욱 상세하게는 예비 영역을 가지는 반도체 메모리 장치에 관한 것이다.
본 발명에 따른 반도체 메모리 장치는 사용자 영역 및 예비 영역으로 구분되는 메모리 셀 어레이를 포함하고, 상기 예비 영역은 상기 사용자 영역 내의 결함 있는 메모리 블록을 교체하기 위하여 구비되며, 상기 예비 영역 내의 사용 가능한 예비 블록의 개수가 기준 개수 미만인 경우, 상기 사용자 영역 내의 메모리 블록과 상기 예비 영역 내의 결함있는 예비 블록을 교체한다.
본 발명에 따른 반도체 메모리 장치는 결함 있는 예비 블록 대신, 사용자 영역 내의 사용 가능한 메모리 블록을 예비 블록으로 사용한다. 따라서, 사용 가능한 예비 블록의 수가 적절하게 유지될 수 있다. 본 발명에 따르면, 메모리 시스템의 신뢰성 및 수명이 향상된다.
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 더욱 상세하게는 예비 영역을 가지는 반도체 메모리 장치에 관한 것이다.
반도체 메모리 장치는 데이터를 저장해 두고 필요할 때 읽어볼 수 있는 기억장치이다. 반도체 메모리 장치는 크게 램(Random Access Memory: RAM)과 롬(Read Only Memory: ROM)으로 나뉠 수 있다. 램에 저장된 데이터는 전원 공급이 중단되면 소멸된다. 이러한 타입의 메모리를 휘발성(volatile) 메모리라고 한다. 반면에, 롬에 저장된 데이터는 전원 공급이 중단되더라도 소멸되지 않는다. 이러한 타입의 메모리를 불휘발성(nonvolatile) 메모리라고 한다.
불휘발성 메모리 장치의 일종으로 플래시(flash) 메모리 장치가 있다. 최근 디지털 카메라, MP3 플레이어, 핸드폰, PDA 등과 같은 휴대용 전자 장치가 많이 사용되고 있다. 이러한 휴대용 전자 장치에는 플래시 메모리가 주로 사용되고 있다. 이는 플래시 메모리가 저전력 및 고집적 등의 특성을 갖는 불휘발성 소자이기 때문이다. 플래시 메모리는 휴대용 전자 장치에 사용되기 때문에 플래시 메모리의 신뢰성 및 수명은 휴대용 전자 장치의 신뢰성 및 수명과 밀접한 관계를 가진다. 따라서, 플래시 메모리의 신뢰성 및 수명을 향상시키는 것이 중요하다.
본 발명은 상술한 기술적 과제를 해결하기 위해 제안된 것으로, 본 발명의 목적은 적절한 수의 예비 블록을 확보하는 데 있다. 본 발명의 다른 목적은 결함있는 예비 블록을 대신하여 사용자 영역 내의 메모리 블록을 예비 블록으로 사용하는 데 있다.
본 발명에 따른 반도체 메모리 장치는 사용자 영역 및 예비 영역으로 구분되는 메모리 셀 어레이를 포함하고, 상기 예비 영역은 상기 사용자 영역 내의 결함 있는 메모리 블록을 교체하기 위하여 구비되며, 상기 예비 영역 내의 사용 가능한 예비 블록의 개수가 기준 개수 미만인 경우, 상기 사용자 영역 내의 메모리 블록과 상기 예비 영역 내의 결함있는 예비 블록을 교체한다.
실시 예로서, 상기 예비 영역 내의 사용 가능한 예비 블록의 개수가 기준 개수 미만인 경우, 상기 사용자 영역 내의 데이터를 저장하고 있지 않거나 무효한 데이터를 저장하고 있는 메모리 블록과 상기 예비 영역 내의 결함있는 예비 블록을 교체한다. 교체 동작에 의해 예비 블록이 된 메모리 블록은 배드 블록으로 처리된다.
실시 예로서, 상기 사용자 영역 내에 사용 가능한 메모리 블록이 존재하지 않는 경우, 상기 사용자 영역에 저장된 데이터를 다른 저장 매체에 백업한다. 상기 백업 동작을 수행하기 위한 펌웨어를 호스트로부터 로드한다. 상기 백업 동작을 수행하기 위한 펌웨어를 상기 호스트의 바이오스로부터 로드한다. 상기 백업 동작을 수행하기 위한 펌웨어를 메모리 컨트롤러로부터 로드한다. 상기 메모리 셀 어레이는 호스트 보호 영역(HPA)을 포함하고, 상기 호스트 보호 영역에 상기 백업 동작을 수행하기 위한 펌웨어를 저장한다.
실시 예로서, 상기 메모리 셀 어레이는 호스트 보호 영역(HPA)을 포함하고, 상기 호스트 보호 영역에 호스트의 부팅을 위한 부팅 이미지를 저장한다. 상기 사용자 영역 내의 부팅 이미지가 손상된 경우, 상기 호스트의 부팅을 위해 상기 호스트 보호 영역에 저장된 부팅 이미지를 상기 호스트에 제공한다.
본 발명에 따른 반도체 메모리 장치는 결함 있는 예비 블록 대신, 사용자 영역 내의 사용 가능한 메모리 블록을 예비 블록으로 사용한다. 따라서, 사용 가능한 예비 블록의 수가 적절하게 유지될 수 있다. 본 발명에 따르면, 메모리 시스템의 신뢰성 및 수명이 향상된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되 어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
도 1은 본 발명에 따른 메모리 시스템을 보여주는 도면이다. 도 1을 참조하면, 본 발명에 따른 메모리 시스템(100)은 호스트(110), 메모리 컨트롤러(120), 그리고 플래시 메모리(130)를 포함한다.
플래시 메모리(130)는 메모리 셀 어레이(131) 및 페이지 버퍼(132)를 포함한다. 도 1에 도시되어 있지는 않지만, 플래시 메모리(130)에는 디코더(decoder), 데이터 버퍼(data buffer), 그리고 제어 유닛(control unit)이 포함되어 있다. 메모리 컨트롤러(120)는 호스트(110)로부터 입력되는 데이터(data)와 쓰기 커맨드(write command)에 응답하여, 데이터(data)가 메모리 셀 어레이(131)에 쓰여지도록 플래시 메모리(130)를 제어한다. 또한, 메모리 컨트롤러(120)는 호스트(110)로부터 입력되는 읽기 커맨드(read command)에 응답하여, 메모리 셀 어레이(131)에 저장되어 있는 데이터가 읽혀지도록 플래시 메모리(130)를 제어한다.
플래시 메모리(130)의 메모리 셀 어레이(131)는 복수의 메모리 셀(memory cell)로 구성된다. 메모리 셀은 불휘발성(nonvolatile)으로서, 데이터를 저장한 후 전원이 꺼져도 데이터가 지워지지 않는다. 페이지 버퍼(132)는 메모리 셀 어레이(131)의 선택된 페이지(page)에 쓰여질 데이터 또는 선택된 페이지로부터 읽은 데이터를 저장하는 버퍼이다.
그런데 플래시 메모리는 데이터 덮어쓰기(overwrite)가 가능한 하드 디스크와 달리, 데이터 덮어쓰기가 자유롭지 못하다. 플래시 메모리에 데이터를 덮어쓰기 위해서는 데이터를 쓰기 전에 지워야 한다. 이를 쓰기 전 소거 동작(erase-before-write)이라 한다. 즉, 플래시 메모리는 데이터를 쓰기 전에, 초기 상태 또는 소거 상태로 되돌려 놓아야 한다.
플래시 메모리의 소거 동작은 일반적으로 쓰기 동작에 비해 매우 긴 시간이 소요된다. 또한, 플래시 메모리의 소거 단위는 쓰기 단위보다 훨씬 큰 블록 단위로 수행되기 때문에, 소거되지 않아도 되는 부분까지 함께 지워지는 결과를 초래할 수 있다. 원치않게 지워진 부분은 다시 쓰기 동작을 통해 복원해야 한다. 이와 같이 플래시 메모리는 소거와 쓰기 동작의 단위가 일치하지 않기 때문에, 쓰기 동작의 수행 성능은 읽기 동작에 비해 떨어진다. 또한, 플래시 메모리는 동일한 블록에 대해 10만 번 정도의 소거 동작을 수행하면, 더 이상 사용할 수 없게 된다. 플래시 메모리는 특정 블록에 대해 소거 동작이 반복되는 것을 피하기 위해 웨어 레벨링(wear leveling) 동작을 수행한다.
도 2는 도 1에 도시된 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다. 도 2를 참조하면, 메모리 시스템은 애플리케이션(205), 파일 시스템(210), 플래시 변환 레이어(220), 그리고 플래시 메모리(230) 순으로 소프트웨어 계층 구조를 갖는다.
플래시 변환 레이어(FTL; Flash Translation Layer)는 상술한 플래시 메모리의 단점들을 극복하고, 플래시 메모리를 효율적으로 관리하기 위한 소프트웨어이 다. 플래시 변환 레이어(220)는 애플리케이션(205) 또는 파일 시스템(210)으로부터 논리 어드레스(LA; Logical Address)를 입력받는다. 플래시 변환 레이어(220)는 논리 어드레스(LA)를 입력받고, 이를 물리 어드레스(PA; Physical Address)로 변환한다. 물리 어드레스(PA)는 플래시 메모리(230)로 제공된다.
플래시 변환 레이어(220)는 위와 같은 어드레스 맵핑 동작을 관리하기 위해 어드레스 맵핑 테이블(Address Mapping Table)을 가지고 있다. 어드레스 맵핑 테이블에는 논리 어드레스(Logical Address) 및 이에 대응하는 물리 어드레스(Physical Address)가 기록되어 있다. 어드레스 맵핑 테이블은 맵핑 단위에 따라 그 크기가 달라질 수 있으며, 맵핑 단위에 따라 다양한 맵핑 방법을 갖는다. 어드레스 맵핑 테이블은 도 1에 도시된 메모리 컨트롤러 상에서 구동된다.
대표적인 맵핑 방법으로, 페이지 맵핑 방법(page mapping method), 블록 맵핑 방법(block mapping method), 그리고 혼합 맵핑 방법(hybrid mapping method) 등이 있다. 페이지 맵핑 방법에는 페이지 맵핑 테이블이 사용된다. 페이지 맵핑 테이블은 페이지 단위로 맵핑 동작을 수행하기 위한 것이며, 논리 페이지 및 이에 대응하는 물리 페이지를 저장한다. 블록 맵핑 방법에는 블록 맵핑 테이블이 사용된다. 블록 맵핑 테이블은 블록 단위로 맵핑 동작을 수행하기 위한 것이며, 논리 블록 및 이에 대응하는 물리 블록을 저장한다. 혼합 맵핑 방법은 페이지 맵핑 방법과 블록 맵핑 방법을 동시에 사용하는 방법이다.
그런데, 플래시 메모리의 메모리 블록에는 결함이 생길 수 있다. 결함이 있는 블록은 배드 블록(bad block)으로 불린다. 배드 블록은 다양한 원인에 의해 발 생할 수 있다. 예를 들어, 열 페일(column fail), 간섭 문제(disturbance), 마모(wear-out) 등에 의해 정상 블록이 배드 블록이 될 수 있다.
배드 블록에는 데이터가 저장될 수 없기 때문에 배드 블록은 정상 블록으로 교체되어야 한다. 따라서, 플래시 메모리에는 배드 블록을 교체하기 위한 예비 블록(reserved block)이 구비된다. 본 발명에 따른 실시 예에 있어서, 배드 블록을 교체하기 위한 예비 블록들은 예비 영역(reserved area)을 구성한다. 또한, 예비 영역을 제외한 영역은 사용자 영역(user area)으로 정의된다. 즉, 플래시 메모리의 메모리 셀 어레이는 사용자 영역과 예비 영역으로 구분된다. 예비 영역에 포함된 예비 블록들은 사용자 영역 내의 데이터 블록이 배드 블록이 된 경우를 대비하여 구비된다. 예비 영역은 사용자에 의해 인식되지 않기 때문에 사용자는 데이터의 저장을 위해 사용자 영역만을 사용할 수 있다.
도 3은 도 1의 메모리 셀 어레이를 자세하게 보여주는 도면이다. 도 3을 참조하면, 메모리 셀 어레이는 사용자 영역(user area)과 예비 영역(reserved area)으로 구분된다. 사용자 영역은 하나 이상의 메모리 블록을 포함한다. 사용자 영역 내의 메모리 블록은 용도에 따라 구분될 수 있다. 예를 들어, 혼합 맵핑 스킴의 경우, 메모리 블록들은 데이터 블록(data block), 로그 블록(log block), 및 프리 블록(free block)으로 구분될 수 있다. 데이터 블록에는 사용자 데이터가 저장된다. 로그 블록은 데이터 블록에 저장된 데이터를 수정하기 위해서 사용된다. 프리 블록 중 일부는 로그 블록으로 할당된다.
그런데 데이터 블록, 로그 블록, 및 프리 블록에는 다양한 원인에 의해 결함 이 발생할 수 있다. 예를 들어, 열 페일(column fail), 간섭 문제(disturbance), 마모(wear-out) 등에 의해 결함이 발생할 수 있다. 예비 영역은 사용자 영역 내의 결함있는 메모리 블록을 대체하기 위해 구비된다. 예비 영역은 하나 이상의 예비 블록을 포함한다. 예비 영역은 메모리 셀 어레이의 일정 비율을 차지하도록 설정된다. 예를 들어, 예비 영역은 메모리 셀 어레이의 약 5 퍼센트를 차지할 수 있다.
도 4는 사용자 영역 내의 메모리 블록에 결함이 발생한 경우, 예비 블록으로 결함있는 메모리 블록을 대체하는 방법을 설명하는 도면이다. 도 4(a)를 참조하면, 사용자 영역 내의 일부 데이터 블록에 결함이 발생한 경우가 가정된다. 데이터 블록에 결함이 생긴 경우, 데이터 블록에 저장된 데이터가 소실될 수 있다. 데이터의 소실을 방지하기 위해서 결함이 발생한 데이터 블록에 저장된 데이터는 예비 영역 내의 예비 블록에 저장된다.
그 이후에 예비 블록은 데이터 블록으로 변경되고, 데이터 블록은 예비 블록으로 변경된다. 이러한 변경은 논리 주소와 물리 주소 사이의 대응 관계를 갱신함으로써 수행된다. 대응 관계의 갱신은 맵핑 테이블의 갱신에 의해 수행된다. 즉, 결함이 발생한 데이터 블록에 대응되었던 논리 주소가 결함이 없는 데이터 블록에 대응되도록 변경된다. 따라서, 외부(예를 들어, 호스트)로부터 액세스 요청이 있는 경우, 플래시 변환 계층은 맵핑 테이블을 참조하여 요청된 논리 블록 주소에 대응하는 결함이 없는 물리 블록 주소를 플래시 메모리에 제공한다.
그런데 예비 블록으로 결함이 있는 메모리 블록을 대체함에 따라 사용 가능한 예비 블록의 개수는 줄어든다. 또한, 예비 블록에 자체적인 결함이 발생할 수도 있다. 만약, 모든 예비 블록이 배드 블록이 되는 경우, 호스트로부터의 쓰기 요청에 대응할 수 없게 된다. 이러한 반도체 메모리 장치는 더 이상 사용될 수 없다. 이는 반도체 메모리 장치의 신뢰성 및 수명을 저하시킨다. 따라서, 적절한 수의 예비 블록을 확보하는 것이 중요하다.
본 발명에 따른 실시 예에 있어서, 사용 가능한 예비 블록의 개수가 기준 개수 미만인 경우, 사용자 영역 내의 메모리 블록을 예비 블록으로 전용(轉用, diversion)한다. 따라서, 예비 블록이 기준 개수 이상으로 유지될 수 있다. 이는 반도체 메모리 장치의 신뢰성 및 수명을 향상시킨다. 이하, 본 발명에 따른 예비 영역 확보 방법이 후술될 도면을 참조하여 자세히 설명될 것이다.
도 5는 본 발명에 따른 예비 영역 확보 방법을 설명하기 위한 순서도이다. 본 발명에 따른 실시 예에 있어서, 사용 가능한 예비 블록의 수가 기준 개수 미만인 경우, 예비 블록을 확보하기 위한 동작이 수행된다. 그런데, 사용자 영역에 사용 가능한 메모리 블록이 존재하지 않는 경우 예비 블록을 확보하는 것이 곤란할 수 있다. 본 실시 예에 있어서, 예비 블록을 확보하는 것이 곤란한 경우에는 플래시 메모리에 저장된 데이터를 다른 저장 매체에 백업(backup)하는 동작이 수행된다.
도 5를 참조하면, S110 단계에서 예비 블록의 개수가 기준 개수보다 작은지 여부가 판단된다. 기준 개수는 임의의 개수로 설정될 수 있다. 예를 들어, 기준 개수가 클수록 확보되는 예비 블록의 개수는 증가하고, 기준 개수가 작을수록 확보되는 예비 블록의 개수는 감소할 것이다. 상술한 바와 같이 예비 블록의 개수는 배드 블록 교체에 의해 감소될 수 있다.
이 판단 동작은 메모리 컨트롤러 또는 호스트에 의해 수행될 수 있다. 메모리 컨트롤러는 플래시 메모리로부터 예비 블록의 개수 정보를 전달받고 상기 판단동작을 할 수 있다. 또는, 호스트가 메모리 컨트롤러로부터 예비 블록의 개수 정보를 전달받고 상기 판단 동작을 할 수 있다. 판단 결과 예비 블록의 개수가 기준 개수 이상인 경우 예비 블록을 확보하기 위한 동작은 불필요하다. 따라서, 본 발명에 따른 예비 블록 확보 동작은 종료된다. 반면에, 예비 블록의 개수가 기준 개수보다 작은 경우 S120 단계가 수행된다.
S120 단계에서, 예비 블록 확보 동작이 수행될 수 있는지 여부가 판단된다. 본 실시 예에서, 예비 블록 확보 동작은 재구성(reformatting)으로 불릴 수 있다. 재구성에 의해 사용자 영역 내의 메모리 블록과 예비 영역 내의 예비 블록이 전환되기 때문이다. 그런데 예비 블록 확보 동작은 사용자 영역 내에 사용 가능한 메모리 블록이 존재하는 경우에만 수행될 수 있다. 본 실시 예에서 사용 가능한 메모리 블록이라 함은 데이터가 저장되어 있지 않은 메모리 블록 또는 유효하지 않은 데이터가 저장되어 있는 메모리 블록을 의미한다.
판단 결과, 예비 블록 확보 동작이 수행될 수 있는 경우에는 S130 단계가 수행된다. 반면에, 판단 결과, 예비 블록 확보 동작이 수행될 수 없는 경우에는 S140 단계가 수행된다. S130 단계에서 예비 블록 확보 동작이 수행된다. 예비 블록을 확보하기 위해서 사용자 영역 내의 사용 가능한 메모리 블록이 선택된다. 우선적으로 사용자 영역 내의 데이터를 저장하고 있지 않거나 무효 데이터를 저장하고 있는 메 모리 블록이 교체를 위해 선택될 수 있다. 예비 블록 확보 동작은 후술될 도면을 참조하여 자세히 설명될 것이다.
예비 블록 확보 동작이 수행될 수 없는 경우에는 반도체 메모리 장치에 저장된 데이터가 백업(backup) 될 것이 요구된다. 결함 있는 메모리 블록에 저장된 데이터는 소실될 수 있기 때문이다. 데이터의 백업을 위해서는 백업을 위한 펌웨어(firmware)가 요구된다. S140 단계에서 백업을 위한 펌웨어가 호스트로부터 플래시 메모리로 다운로드 된다. 예를 들어, 백업을 위한 펌웨어는 호스트의 바이오스(BIOS)에 저장될 수 있다. 일반적으로 바이오스는 불휘발성 메모리 장치에 저장된다. 따라서, 전원이 공급되지 않는 경우에도 바이오스 정보는 유지된다. 만약, 플래시 메모리가 내부에 백업을 위한 펌웨어를 구비하는 경우에는 별도의 펌웨어 다운로드가 요구되지 않는다. 따라서, S140 단계는 생략될 수 있다. 예를 들어, 메모리 컨트롤러 내에 펌웨어가 저장될 수 있다. 또는 플래시 메모리 내에 펌웨어가 저장될 수 있다.
특히, 백업을 위한 펌웨어는 플래시 메모리의 호스트 보호 영역(Host protected area; HPA)에 저장될 수 있다. 호스트 보호 영역은 hidden protected area로도 불린다. 호스트 보호 영역은 운영 체제가 인식하지 못하는 하드 디스크의 영역이다. 호스트 보호 영역은 ATA-4 표준에서 처음 소개되었다. 하드 디스크는 운영 체제로부터의 장치 인식 명령어(identify device command)에 응답하여 호스트 보호 영역을 제외한 용량을 호스트에 알려준다. 또한, 고유 최대 어드레스 읽기(read native max address) 명령어는 호스트 보호 영역을 포함한 크기를 알려준 다. 결국, 상기 명령어들을 활용하여 호스트 보호 영역의 존재 여부를 알 수 있게 된다.
일반적으로 호스트 보호 영역은 바이오스와 결합하여 부팅 및 진단 등을 위해 활용될 수 있다. 또한, 호스트 보호 영역은 분실 등의 경우를 대비하기 위해서도 사용된다. 하드 디스크가 포맷된 경우에도 호스트 보호 영역에 저장된 데이터는 유지되기 때문이다.
본 발명에 따른 실시 예에 있어 플래시 메모리는 호스트 보호 영역을 포함한다. 그리고, 호스트 보호 영역에 백업용 펌웨어가 미리 저장된다. 따라서, 플래시 메모리의 백업을 위한 펌웨어를 호스트 또는 메모리 컨트롤러로부터 로드할 필요가 없게 된다. 백업을 위한 펌웨어의 구동에 의해 플래시 메모리에 저장된 데이터는 다른 저장 매체에 저장될 수 있다. 백업을 위한 저장 매체로서 다른 정상적인 플래시 메모리 또는 하드 디스크 등이 사용될 수 있다.
또한, 호스트 보호 영역 내에 부팅 이미지(booting image)가 저장될 수 있다. 만약, 플래시 메모리에 저장된 부팅 이미지에 이상이 생긴 경우 메모리 시스템이 부팅 되지 않을 수 있다. 따라서, 메모리 시스템이 부팅되지 않는 경우 호스트 보호 영역의 부팅 이미지를 이용하여 시스템이 부팅될 수 있다.
도 6은 본 발명의 일 실시 예에 따른 예비 영역 확보 방법을 보여준다. 도 6(a)를 참조하면, 예비 영역 내의 모든 예비 블록들이 배드 블록인 것으로 가정된다. 배드 블록은 빗금으로 표시된다. 예비 블록은 사용자 영역 내의 배드 블록과의 교체 또는 자체적인 결함 발생 등으로 배드 블록으로 될 수 있다. 모든 예비 블록 들이 배드 블록으로 된 경우, 외부(호스트)로부터의 쓰기 요청에 대응할 수 없다. 따라서, 일정 개수 이상의 예비 블록이 확보될 것이 요구된다. 본 발명에 따른 실시 예에서, 사용자 영역 내의 메모리 블록이 예비 블록으로 전용(轉用)된다. 특히, 데이터를 저장하고 있지 않거나 유효하지 않은 데이터를 저장하고 있는 메모리 블록이 우선적으로 예비 블록으로 사용될 수 있다.
도 6(b)를 참조하면, 사용자 영역 내의 일부 메모리 블록들이 예비 블록으로 변경된다. 예비 블록은 사용자 영역 내의 메모리 블록을 교체하기 위해 사용될 것이다. 본 실시 예에서, 프리 블록이 예비 블록으로 전환되었으나, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 데이터 블록 또는 로그 블록이 예비 블록으로 전환될 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 예비 영역 확보 방법을 보여준다. 상술한 바와 같이, 예비 영역은 운영 체제(또는 사용자)에 의해 인식되지 않는다. 따라서, 사용자 영역 내의 일부 메모리 블록이 예비 블록으로 전환됨에 따라 사용자는 사용자 영역의 용량이 감소하는 것으로 인식할 수 있다. 이러한 문제를 해결하기 위하여, 본 실시 예에 있어서는 예비 블록으로 사용되는 사용자 영역 내의 메모리 블록을 배드 블록으로 표시한다. 배드 블록으로 표시된 메모리 블록은 운영 체제에 의해 인식되기 때문에 사용자 영역의 용량이 감소되지 않는다.
도 7(a)를 참조하면, 예비 영역 내의 모든 예비 블록들이 배드 블록인 것으로 가정된다. 예비 블록은 사용자 영역 내의 배드 블록과의 교체 또는 자체적인 결함 발생 등으로 배드 블록으로 될 수 있다. 모든 예비 블록들이 배드 블록으로 된 경우, 외부(호스트)로부터의 쓰기 요청에 대응할 수 없다. 따라서, 예비 블록이 확보될 것이 요구된다. 본 발명에 따른 실시 예에서, 사용자 영역 내의 메모리 블록이 예비 블록으로 전용(diversion)된다. 특히, 데이터를 저장하고 있지 않거나 유효하지 않은 데이터를 저장하고 있는 메모리 블록이 우선적으로 예비 블록으로 사용된다.
도 7(b)를 참조하면, 사용자 영역 내의 일부 메모리 블록들이 예비 블록으로 변경되었음을 알 수 있다. 본 실시 예에서, 예비 블록으로 전용(diversion)되는 메모리 블록은 배드 블록으로 설정된다. 사용자 영역 내의 예비 블록들이 배드 블록으로 표시됨에 따라 사용자 영역의 용량이 감소되지 않는다. 예비 블록은 사용자 영역 내의 메모리 블록을 교체하기 위해 사용될 것이다. 본 실시 예에서, 프리 블록이 예비 블록으로 전환되었으나, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 데이터 블록 또는 로그 블록이 예비 블록으로 전환될 수 있다.
도 8은 본 발명에 따른 플래시 메모리를 포함한 컴퓨팅 시스템(300)을 개략적으로 보여주는 블록도이다. 도 8을 참조하면, 컴퓨팅 시스템(300)은 프로세서(310), 메모리 컨트롤러(320), 입력 장치들(330), 출력 장치들(340), 플래시 메모리(350), 그리고 주 기억 장치(360)를 포함한다. 도면에서 실선은 데이터 또는 명령이 이동하는 시스템 버스(System bus)를 나타낸다.
메모리 컨트롤러(320)와 플래시 메모리(350)는 메모리 카드를 구성할 수 있다. 그리고, 프로세서(310), 입력 장치들(330), 출력 장치들(340), 그리고 주 기억 장치(360)는 메모리 카드를 기억 장치로 사용하는 호스트를 구성할 수 있다. 본 발 명에 따른 컴퓨팅 시스템(300)은 입력 장치들(330)(키보드, 카메라 등)을 통해 외부로부터 데이터를 입력받는다. 입력된 데이터는 사용자에 의한 명령이거나 카메라 등에 의한 영상 데이터 등의 멀티 미디어 데이터일 수 있다. 입력된 데이터는 플래시 메모리(350) 또는 주 기억 장치(360)에 저장된다.
프로세서(310)에 의한 처리 결과는 플래시 메모리(350) 또는 주 기억 장치(360)에 저장된다. 출력 장치들(340)은 플래시 메모리(350) 또는 주 기억 장치(360)에 저장된 데이터를 출력한다. 출력 장치들(340)은 디지털 데이터를 인간이 감지 가능한 형태로 출력한다. 예를 들어, 출력 장치(340)는 디스플레이 또는 스피커 등을 포함한다. 플래시 메모리(350)에는 본 발명에 따른 예비 블록 확보 방법이 적용될 것이다. 플래시 메모리(350)의 신뢰성 및 수명이 향상됨에 따라 컴퓨팅 시스템(300)의 신뢰성 및 수명도 이에 비례하여 향상될 것이다.
플래시 메모리(350), 그리고/또는 메모리 컨트롤러(320)는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 플래시 메모리(350) 그리고/또는 컨트롤러(320)는 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) 등과 같은 패키지들을 이용하여 실장될 수 있다.
비록 도면에는 도시되지 않았지만 컴퓨팅 시스템(300)의 동작에 필요한 전원을 공급하기 위한 전원 공급부(Power supply)가 요구됨은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 그리고, 컴퓨팅 시스템(300)이 휴대용 기기(mobile device)인 경우, 컴퓨팅 시스템(300)의 동작 전원을 공급하기 위한 배터리(battery)가 추가로 요구될 것이다.
도 9는 본 발명에 따른 SSD 시스템의 구성을 간략히 보여주는 블록도이다. 도 9를 참조하면, SSD 시스템(400)은 SSD 컨트롤러(410)와 플래시 메모리들(420~423)을 포함한다.
본 발명에 따른 반도체 메모리 시스템은 SSD(Solid State Drive)에도 적용될 수 있다. 최근 하드디스크 드라이브(HDD)를 교체해 나갈 것으로 예상되는 SSD 제품이 차세대 메모리 시장에서 각광을 받고 있다. SSD는 일반적인 하드 디스크 드라이브에서 사용되는 회전 접시 대신에 데이터를 저장하는데 플래시 메모리와 같은 메모리 칩들을 사용한 데이터 저장 장치이다. SSD는 기계적으로 움직이는 하드디스크 드라이브에 비해 속도가 빠르고 외부 충격에 강하며, 소비전력도 낮다는 장점을 가진다.
다시 도 9를 참조하면, 중앙처리장치(411)는 호스트로부터 명령어를 전달받아 호스트로부터의 데이터를 플래시 메모리에 저장할지 혹은 플래시 메모리의 저장 데이터를 독출하여 호스트로 전송할지의 여부를 결정하고 제어한다. ATA 인터페이 스(412)는 상술한 중앙처리장치(411)의 제어에 따라 호스트 측과 데이터를 교환한다. ATA 인터페이스(412)는 호스트 측으로부터 명령어 및 어드레스를 패치하여 CPU 버스를 통해서 중앙처리장치(411)로 전달한다. ATA 인터페이스(412)를 통해 호스트로부터 입력되는 데이터나 호스트로 전송되어야 할 데이터는 중앙처리장치(411)의 제어에 따라 CPU 버스를 경유하지 않고 SRAM 캐시(413)를 통해 전달된다.
SRAM 캐시(413)는 호스트와 플래시 메모리들(420~423) 간의 이동 데이터를 일시 저장한다. 또한 SRAM 캐시(413)는 중앙처리장치(411)에 의해서 운용될 프로그램을 저장하는 데에도 사용된다. SRAM 캐시(413)는 일종의 버퍼 메모리로 간주할 수 있으며, 반드시 SRAM으로 구성할 필요는 없다. 플래시 인터페이스(414)는 저장 장치로 사용되는 불 휘발성 메모리들과 데이터를 주고받는다. 플래시 인터페이스(414)는 낸드 플래시 메모리, One-NAND 플래시 메모리, 혹은 멀티-레벨 플래시 메모리를 지원하도록 구성될 수 있다. 본 발명에 따른 반도체 메모리 시스템은 이동형 저장 장치로서 사용될 수 있다. 따라서, MP3, 디지털 카메라, PDA, e-Book의 저장 장치로서 사용될 수 있다. 또한, 디지털 TV나 컴퓨터 등의 저장 장치로서 사용될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 본 발명에 따른 메모리 시스템을 보여주는 도면이다.
도 2는 도 1에 도시된 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다.
도 3은 도 1의 메모리 셀 어레이를 자세하게 보여주는 도면이다.
도 4는 사용자 영역 내의 메모리 블록에 결함이 발생한 경우, 예비 블록으로 결함있는 메모리 블록을 대체하는 방법을 설명하는 도면이다.
도 5는 본 발명에 따른 예비 영역 확보 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 예비 영역 확보 방법을 보여준다.
도 7은 본 발명의 다른 실시 예에 따른 예비 영역 확보 방법을 보여준다.
도 8은 본 발명에 따른 플래시 메모리를 포함한 컴퓨팅 시스템(300)을 개략적으로 보여주는 블록도이다.
도 9는 본 발명에 따른 SSD 시스템의 구성을 간략히 보여주는 블록도이다.
Claims (33)
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 복수의 블록들로 분할되는 하나 또는 그 이상의 메모리 셀 어레이들을 포함하고, 상기 블록들의 제 1 부분은 사용자 데이터를 저장하도록 지정되고, 상기 블록들의 제 2 부분은 상기 제 1 부분의 결함 블록들을 대체하기 위한 예비 블록들로 할당되는 솔리드 스테이트 드라이브의 관리 방법에 있어서:메모리 컨트롤러에 의해, 복수의 채널들을 통해 상기 제 1 부분에 대한 적어도 하나의 읽기 동작 및 적어도 하나의 쓰기 동작 중 하나를 수행하는 단계; 그리고상기 메모리 컨트롤러에 의해, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하도록 상기 솔리드 스테이트 드라이브를 선택적으로 재구성하는 단계를 포함하고,상기 선택적으로 재구성하는 단계에서, 상기 솔리드 스테이트 드라이브를 액세스하는 호스트는 상기 제 1 부분의 사이즈가 변화하지 않은 것으로 해석하는 관리 방법.
- 제 11 항에 있어서,상기 메모리 컨트롤러에 의해, 상기 솔리드 스테이트 드라이브의 사용 가능한 예비 블록들의 수가 기준개수보다 적은지 판별하는 제 1 판별 단계를 더 포함하고,상기 사용 가능한 예비 블록들은 상기 제 1 부분의 블록들을 대체하도록 사용될 수 있는 예비 블록들이고,상기 재구성하는 단계는, 상기 제 1 판별 단계에서 상기 솔리드 스테이트 드라이브의 상기 사용 가능한 예비 블록들의 수가 상기 기준개수보다 적은 것으로 판별되면, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하도록 상기 솔리드 스테이트 드라이브를 재구성하는 관리 방법.
- 제 12 항에 있어서,상기 제 1 판별 단계에서 상기 솔리드 스테이트 드라이브의 상기 사용 가능한 예비 블록들의 수가 상기 기준개수보다 적은 것으로 판별되면, 상기 제 1 부분에서 충분한 사용 가능한 공간이 존재하여 상기 솔리드 스테이트 드라이브의 재구성이 허용되는지를 판별하는 제 2 판별 단계를 더 포함하고,상기 재구성하는 단계는, 상기 제 1 판별 단계에서 상기 솔리드 스테이트 드라이브의 상기 사용 가능한 예비 블록들의 수가 기준개수보다 적은 것으로 판별되고, 그리고 상기 제 2 판별 단계에서 상기 제 1 부분에 충분한 사용 가능한 공간이 존재하여 상기 솔리드 스테이트 드라이브의 재구성이 허용되는 것으로 판별되면, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 사용 가능한 예비 블록들로 변환하도록 상기 솔리드 스테이트 드라이브를 재구성하는 관리 방법.
- 제 13 항에 있어서,상기 제 2 판별 단계는, 상기 제 1 부분에서 충분한 수의 자유 블록들이 존재하고 생성될 수 있으며, 변환이 수행되면 상기 사용 가능한 예비 블록들의 수가 상기 기준개수에 도달하는지의 여부를 판별하는 관리 방법.
- 제 14 항에 있어서,상기 예비 블록들은 상기 솔리드 스테이트 드라이브의 복수의 메모리 칩들에 분산되어 존재하는 관리 방법.
- 청구항 16은(는) 설정등록료 납부시 포기되었습니다.제 15 항에 있어서,상기 솔리드 스테이트 드라이브를 관리하기 위해, 상기 복수의 메모리 칩들 중 적어도 하나로부터 코드 데이터를 랜덤 액세스 메모리로 로딩하는 단계를 더 포함하는 관리 방법.
- 제 13 항에 있어서,상기 제 2 판별 단계에서, 상기 제 1 부분에 상기 솔리드 스테이트 드라이브의 재구성을 허용하기에 불충분한 사용 가능한 공간이 존재하는 것으로 판별되면, 상기 솔리드 스테이트 드라이브의 데이터를 백업하기 위한 펌웨어를 다운로드하는 단계를 더 포함하는 관리 방법.
- 제 13 항에 있어서,상기 제 2 판별 단계에서, 상기 제 1 부분에 상기 솔리드 스테이트 드라이브의 재구성을 허용하기에 불충분한 사용 가능한 공간이 존재하는 것으로 판별되면, 상기 솔리드 스테이트 드라이브의 데이터를 백업하는 단계를 더 포함하는 관리 방법.
- 제 11 항에 있어서,상기 재구성하는 단계는,상기 제 1 부분의 적어도 하나의 자유 블록을 사용 가능한 예비 블록으로 변환하는 단계를 포함하는 관리 방법.
- 제 11 항에 있어서,상기 재구성하는 단계는,무효 데이터를 저장하는 적어도 하나의 무효 블록을 자유 블록으로 변환하는 단계; 그리고상기 변환된 자유 블록들 중 적어도 하나를 사용 가능한 예비 블록으로 변환하는 단계를 포함하는 관리 방법.
- 복수의 블록들로 분할되는 하나 또는 그 이상의 메모리 셀 어레이들을 포함하고, 상기 블록들의 제 1 부분은 사용자 데이터를 저장하도록 지정되고, 상기 블록들의 제 2 부분들은 상기 제 1 부분의 결함 블록들을 대체하기 위한 예비 블록들로 할당되는 솔리드 스테이트 드라이브의 관리 방법에 있어서:메모리 컨트롤러에 의해, 복수의 채널들을 통해 상기 제 1 부분에 대해 적어도 하나의 읽기 동작 및 적어도 하나의 쓰기 동작 중 하나를 수행하는 단계; 그리고상기 메모리 컨트롤러에 의해, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하도록 상기 솔리드 스테이트 드라이브를 선택적으로 재구성하는 단계를 포함하고,상기 선택적으로 재구성하는 단계는,상기 제1 부분의 적어도 하나의 자유 블록을 하이브리드 상태로 설정하는 단계를 포함하고,상기 하이브리드 상태는, 상기 솔리드 스테이트 드라이브를 액세스하는 호스트에 의해 배드 블록으로 식별되고 상기 솔리드 스테이트 드라이브에 의해 사용 가능한 예비 블록으로 식별되어, 상기 호스트는 상기 제 1 부분의 사이즈가 변화하지 않는 것으로 해석하는 관리 방법.
- 복수의 블록들로 분할되는 하나 또는 그 이상의 메모리 셀 어레이들을 포함하고, 상기 블록들의 제 1 부분은 사용자 데이터를 저장하도록 지정되고, 상기 블록들의 제 2 부분들은 상기 제 1 부분의 결함 블록들을 대체하기 위한 예비 블록들로 할당되는 솔리드 스테이트 드라이브의 관리 방법에 있어서:메모리 컨트롤러에 의해, 복수의 채널들을 통해 상기 제 1 부분에 대해 적어도 하나의 읽기 동작 및 적어도 하나의 쓰기 동작 중 하나를 수행하는 단계; 그리고상기 메모리 컨트롤러에 의해, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하도록 상기 솔리드 스테이트 드라이브를 선택적으로 재구성하는 단계를 포함하고,상기 선택적으로 재구성하는 단계는,무효 데이터를 저장하는 적어도 하나의 무효 블록을 자유 블록으로 변환하는 단계; 그리고상기 변환된 자유 블록들 중 적어도 하나를 하이브리드 상태로 설정하는 단계를 포함하고,상기 하이브리드 상태는, 상기 솔리드 스테이트 드라이브를 액세스하는 호스트에 의해 배드 블록으로 식별되고 상기 솔리드 스테이트 드라이브에 의해 사용 가능한 예비 블록으로 식별되어, 상기 호스트는 상기 제 1 부분의 사이즈가 변화하지 않는 것으로 해석하는 관리 방법.
- 복수의 블록들로 분할되는 하나 또는 그 이상의 메모리 셀 어레이들을 포함하고, 상기 블록들의 제 1 부분은 사용자 데이터를 저장하도록 지정되고, 상기 블록들의 제 2 부분들은 상기 제 1 부분의 결함 블록들을 대체하기 위한 예비 블록들로 할당되는 메모리 장치; 그리고복수의 채널들을 통해 상기 제 1 부분의 읽기 및 쓰기를 관리하고, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 선택적으로 변환하도록 구성되는 메모리 컨트롤러를 포함하고,호스트는 상기 제 1 부분의 사이즈가 변화하지 않은 것으로 해석하는 시스템.
- 제 23 항에 있어서,상기 메모리 컨트롤러는, 상기 메모리 장치의 사용 가능한 예비 블록들의 수가 기준개수보다 적은지 판별하도록 구성되고,사용 가능한 예비 블록은 상기 제 1 부분의 블록을 대체하도록 사용될 수 있는 예비 블록이고,상기 메모리 컨트롤러는, 상기 사용 가능한 예비 블록들의 수가 상기 기준개수보다 적은 경우 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하도록 구성되는 시스템.
- 제 23 항에 있어서,상기 메모리 컨트롤러는, 상기 제 1 부분의 적어도 하나의 블록 어드레스의 매핑 관계를 제거하여, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하는 시스템.
- 제 23 항에 있어서,상기 메모리 컨트롤러는, 상기 제 1 부분의 적어도 하나의 블록 어드레스의 매핑 관계를 상기 제 2 부분으로 변환하여, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하는 시스템.
- 청구항 27은(는) 설정등록료 납부시 포기되었습니다.제 23 항에 있어서,상기 메모리 컨트롤러는, 어드레스 변환 테이블의 적어도 하나의 블록 어드레스의 매핑 관계를 변환하여, 상기 제 1 부분의 하나 또는 그 이상의 블록들을 예비 블록들로 변환하는 시스템.
- 복수의 블록들로 분할되는 하나 또는 그 이상의 메모리 셀 어레이들을 포함하고, 상기 블록들의 제 1 부분은 사용자 데이터를 저장하도록 지정되고, 상기 블록들의 제 2 부분들은 상기 제 1 부분의 결함 블록들을 대체하기 위한 예비 블록들로 할당되는 솔리드 스테이트 드라이브의 관리 방법에 있어서:메모리 컨트롤러에 의해, 복수의 채널들을 통해 상기 제 1 부분에 대해 적어도 하나의 읽기 동작 및 적어도 하나의 쓰기 동작 중 하나를 수행하는 단계; 그리고상기 메모리 컨트롤러에 의해, 상기 솔리드 스테이트 드라이브의 사용 가능한 예비 블록들의 수를 선택적으로 증가시키는 단계를 포함하고,사용 가능한 예비 블록은 상기 제 1 부분의 블록을 대체하도록 사용될 수 있는 예비 블록이고,상기 선택적으로 증가시키는 단계에서, 상기 솔리드 스테이트 드라이브를 액세스하는 호스트에 의해 상기 제 1 부분의 사이즈가 변화하지 않은 것으로 해석되는 관리 방법.
- 제 28 항에 있어서,상기 증가시키는 단계는, 상기 제 1 부분의 블록들의 수를 감소시키는 관리 방법.
- 제 28 항에 있어서,상기 증가시키는 단계는, 상기 제 1 부분의 블록들의 수를 감소시키지 않는 관리 방법.
- 청구항 31은(는) 설정등록료 납부시 포기되었습니다.제 28 항에 있어서,상기 증가시키는 단계는, 상기 사용 가능한 예비 블록들의 수를 적어도 필요한 수로 증가시키는 관리 방법.
- 복수의 블록들로 분할되는 하나 또는 그 이상의 메모리 셀 어레이들을 포함하고, 상기 블록들의 제 1 부분은 사용자 데이터를 저장하도록 지정되고, 상기 블록들의 제 2 부분들은 상기 제 1 부분의 결함 블록들을 대체하기 위한 예비 블록들로 할당되는 솔리드 스테이트 드라이브의 관리 방법에 있어서:메모리 컨트롤러에 의해, 복수의 채널들을 통해 상기 제 1 부분에 대해 적어도 하나의 읽기 동작 및 적어도 하나의 쓰기 동작 중 하나를 수행하는 단계; 그리고상기 메모리 컨트롤러에 의해, 상기 제 1 부분의 적어도 하나의 블록을 하이브리드 상태로 선택적으로 설정하는 단계를 포함하고,상기 하이브리드 상태는, 상기 솔리드 스테이트 드라이브를 액세스하는 호스트에 의해 배드 블록으로 식별되고 상기 솔리드 스테이트 드라이브에 의해 사용 가능한 예비 블록으로 식별되어, 상기 호스트는 상기 제 1 부분의 사이즈가 변화하지 않는 것으로 해석하고,사용 가능한 예비 블록은 상기 제 1 부분의 블록을 대체하도록 사용될 수 있는 예비 블록인 관리 방법.
- 제 32 항에 있어서,상기 설정하는 단계는, 메모리 컨트롤러의 플래시 변환 계층에서 적어도 하나의 블록이 하이브리드 상태를 가리키도록 설정하는 관리 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/585,935 US8327066B2 (en) | 2008-09-30 | 2009-09-29 | Method of managing a solid state drive, associated systems and implementations |
US13/067,434 US8904088B2 (en) | 2008-09-30 | 2011-06-01 | Method of managing a solid state drive, associated systems and implementations |
US13/067,436 US20110238900A1 (en) | 2008-09-30 | 2011-06-01 | Method of managing a solid state drive, associated systems and implementations |
US14/508,393 US9542199B2 (en) | 2008-09-30 | 2014-10-07 | Method of managing a solid state drive, associated systems and implementations |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13682208P | 2008-10-07 | 2008-10-07 | |
US61/136,822 | 2008-10-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100039181A KR20100039181A (ko) | 2010-04-15 |
KR101552207B1 true KR101552207B1 (ko) | 2015-09-14 |
Family
ID=42215784
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080101093A KR20100039179A (ko) | 2008-09-30 | 2008-10-15 | 메모리 장치의 상태를 검사하는 메모리 시스템, 저장 장치,그리고 메모리 컨트롤러 |
KR1020080101098A KR101546072B1 (ko) | 2008-09-30 | 2008-10-15 | 반도체 디스크 장치, 그것을 포함하는 컴퓨팅 시스템, 그리고 그것의 동작 방법 |
KR1020080101095A KR101522402B1 (ko) | 2008-09-30 | 2008-10-15 | 반도체 디스크 장치 및 그것의 데이터 관리 방법 |
KR1020080101097A KR101552207B1 (ko) | 2008-09-30 | 2008-10-15 | 예비 영역을 가지는 반도체 메모리 장치 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080101093A KR20100039179A (ko) | 2008-09-30 | 2008-10-15 | 메모리 장치의 상태를 검사하는 메모리 시스템, 저장 장치,그리고 메모리 컨트롤러 |
KR1020080101098A KR101546072B1 (ko) | 2008-09-30 | 2008-10-15 | 반도체 디스크 장치, 그것을 포함하는 컴퓨팅 시스템, 그리고 그것의 동작 방법 |
KR1020080101095A KR101522402B1 (ko) | 2008-09-30 | 2008-10-15 | 반도체 디스크 장치 및 그것의 데이터 관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (4) | KR20100039179A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11543984B2 (en) | 2020-09-16 | 2023-01-03 | SK Hynix Inc. | Memory controller, storage device and operating method thereof |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101678571B1 (ko) * | 2010-10-05 | 2016-11-22 | 삼성전자주식회사 | 컴퓨팅 시스템의 부팅방법 |
KR101300443B1 (ko) * | 2011-09-22 | 2013-08-27 | 서울대학교산학협력단 | 바이패스 경로를 이용하여 신뢰성 검증을 할 수 있는 플래시 메모리 저장 장치, 및 이를 이용한 플래시 메모리 저장 장치의 신뢰성 검증 시스템 및 방법 |
KR20140066391A (ko) | 2012-11-23 | 2014-06-02 | 삼성전자주식회사 | 서든 파워 오프 감지 회로를 포함하는 불휘발성 메모리 장치 및 그것의 서든 파워 오프 감지 방법 |
KR102147628B1 (ko) * | 2013-01-21 | 2020-08-26 | 삼성전자 주식회사 | 메모리 시스템 |
KR102098697B1 (ko) | 2013-03-15 | 2020-04-08 | 삼성전자주식회사 | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 |
KR102291507B1 (ko) * | 2014-05-20 | 2021-08-20 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 |
US9766818B2 (en) * | 2014-12-31 | 2017-09-19 | Samsung Electronics Co., Ltd. | Electronic system with learning mechanism and method of operation thereof |
WO2017026861A1 (ko) * | 2015-08-13 | 2017-02-16 | 주식회사 바른전자 | 온도에 따라 색깔이 가변되는 메모리카드 |
KR101708236B1 (ko) | 2015-10-23 | 2017-02-20 | 전자부품연구원 | 로컬 처리 장치 및 그 데이터 송수신 방법 |
KR102450555B1 (ko) * | 2015-11-09 | 2022-10-05 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
KR102656190B1 (ko) * | 2016-11-24 | 2024-04-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 |
US10445195B2 (en) * | 2017-08-07 | 2019-10-15 | Micron Technology, Inc. | Performing data restore operations in memory |
KR102568896B1 (ko) * | 2018-04-19 | 2023-08-21 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR102518095B1 (ko) | 2018-09-12 | 2023-04-04 | 삼성전자주식회사 | 스토리지 장치 및 시스템 |
KR20200072854A (ko) | 2018-12-13 | 2020-06-23 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
KR102211122B1 (ko) | 2018-12-20 | 2021-02-02 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260156B1 (en) | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
US20080082726A1 (en) | 2006-09-28 | 2008-04-03 | Reuven Elhamias | Memory Cards with End of Life Recovery and Resizing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549226B2 (en) * | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
JP4151977B2 (ja) * | 2005-03-16 | 2008-09-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 先読み装置、先読み方法、および先読みプログラム |
-
2008
- 2008-10-15 KR KR1020080101093A patent/KR20100039179A/ko not_active Application Discontinuation
- 2008-10-15 KR KR1020080101098A patent/KR101546072B1/ko active IP Right Grant
- 2008-10-15 KR KR1020080101095A patent/KR101522402B1/ko active IP Right Grant
- 2008-10-15 KR KR1020080101097A patent/KR101552207B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260156B1 (en) | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
US20080082726A1 (en) | 2006-09-28 | 2008-04-03 | Reuven Elhamias | Memory Cards with End of Life Recovery and Resizing |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11543984B2 (en) | 2020-09-16 | 2023-01-03 | SK Hynix Inc. | Memory controller, storage device and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20100039181A (ko) | 2010-04-15 |
KR20100039180A (ko) | 2010-04-15 |
KR101546072B1 (ko) | 2015-08-21 |
KR20100039182A (ko) | 2010-04-15 |
KR20100039179A (ko) | 2010-04-15 |
KR101522402B1 (ko) | 2015-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101552207B1 (ko) | 예비 영역을 가지는 반도체 메모리 장치 | |
JP5376983B2 (ja) | メモリシステム | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
JP5823875B2 (ja) | 固体メモリフォーマッティング | |
KR101303524B1 (ko) | 불휘발성 메모리에 대한 메타데이터 리던던시 스킴 | |
JP5198245B2 (ja) | メモリシステム | |
US10216578B2 (en) | Data storage device for increasing lifetime and RAID system including the same | |
JP5317689B2 (ja) | メモリシステム | |
US8327066B2 (en) | Method of managing a solid state drive, associated systems and implementations | |
US8737148B2 (en) | Selective retirement of blocks | |
US8463986B2 (en) | Memory system and method of controlling memory system | |
US8069284B2 (en) | Semiconductor memory device, memory system and data recovery methods thereof | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
US8296504B2 (en) | Data management method and flash memory storage system and controller using the same | |
KR101581859B1 (ko) | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 | |
KR20080096228A (ko) | 플래쉬 메모리 장치 및 플래쉬 메모리 시스템 | |
US8819350B2 (en) | Memory system | |
KR20100097456A (ko) | 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법 | |
KR20100094241A (ko) | 예비 블록을 포함하지 않는 불휘발성 메모리 장치 | |
US20150058531A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US11714656B2 (en) | Memory system executing loading of software at startup and control method | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
JP7443418B2 (ja) | 情報処理装置の製造方法、及び情報処理装置 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180831 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190830 Year of fee payment: 5 |