KR20100132837A - 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템 - Google Patents

플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20100132837A
KR20100132837A KR1020090051625A KR20090051625A KR20100132837A KR 20100132837 A KR20100132837 A KR 20100132837A KR 1020090051625 A KR1020090051625 A KR 1020090051625A KR 20090051625 A KR20090051625 A KR 20090051625A KR 20100132837 A KR20100132837 A KR 20100132837A
Authority
KR
South Korea
Prior art keywords
space
spare space
flash memory
location
storage device
Prior art date
Application number
KR1020090051625A
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 KR1020090051625A priority Critical patent/KR20100132837A/ko
Priority to US12/755,644 priority patent/US8412909B2/en
Publication of KR20100132837A publication Critical patent/KR20100132837A/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7206Reconfiguration of flash memory system

Landscapes

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

Abstract

여기에 제공되는 시스템은 사용자 어드레스 공간과 스페어 공간으로 구성된 순수 물리적인 공간을 갖는 저장 매체와; 그리고 상기 저장 매체를 제어하도록 구성된 장치를 포함하며, 상기 장치는 상기 순수 물리적인 공간에서 균일하게 사용되도록 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간으로 변경한다.

Description

플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템{FLASH MEMORY STORAGE DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템에 관한 것이다.
최근 기술 개발에 따르면, 사무용 데스크탑 컴퓨터와 이동 환경용 노트북 컴퓨터와 같은 다양항 형태의 개인용 컴퓨터가 개발되고 시장에 출시되고 있다. 일반적으로, 이러한 컴퓨터 시스템들은 메인 메모리와 외부 저장 장치를 포함한다. 외부 저장 장치가 저장 용량의 낮은 단위 가격의 큰 메모리 용량을 갖는 것이 바람직하다.
외부 저장 장치들은 디스크 저장 매체를 이용한 종래의 하드 디스크 드라이브(HDD) 또는 플로피 디스크 드라이브(FDD)일 것이다. 이러한 디스크 저장 장치들은 일반적으로 낮은 가격으로 큰 메모리 용량을 제공하지만, 마크네틱 헤드로 다양한 동작들(예를 들면, 디스크 탐색 동작)을 수행하기 위해 상당히 섬세한 기계적인 기술을 요구한다. 따라서, 디스크 저장 장치들은 물리적인 충격에 쉽게 손상될 수 있고 그러므로 다른 형태의 메모리 장치보다 신뢰성이 낮은 것으로 여겨질 수 있 다.
과거에, DRAM 또는 SRAM과 같은 저장 매체로서 반도체 메모리를 사용한 외부 메모리 장치들은 디스크 저장 장치들에 대한 실행가능한 대안을 제공하지 못하고 있다. 비록 반도체-타입 외부 메모리 장치들이 디스크 액세스 시간보다 빠른 처리 속도를 갖고 물리적인 충격에 대해 더 영향을 받더라도, DRAM과 SRAM 기술과 관련된 근본적인 단점은 대용량의 스토리지를 위해서 SRAM과 DRAM 기술의 사용을 막아왔다는 것이다.
일반적으로, SRAM의 메모리 용량 당 가격은 SRAM을 대용량 스토리지 용도로 비용 효과적으로(cost-effective) 사용하기에는 너무 비싸다. 게다가, DRAM 내의 데이터를 보존하기 위해 요구되는 추가적인 전력은 외부 저장 장치의 운용 비용을 증가시키고, DRAM 리프레쉬 동작과 관련된 전력 소모는 감소된 전력 소모가 바람직한 이동 환경에 DRAM을 구현하기 어렵게 만든다.
반면, 플래시 EEPROM과 같은 플래시 메모리로 구현된 외부 반도체 메모리 장치들은 임의의 환경에서 디스크 저장 장치들에 대한 실행 가능한 대안을 제공한다. 플래시 메모리 장치들은 한 번 이상 프로그램되는 불 휘발성 메모리 장치들이다. 게다가, 플래시 메모리 장치들은 쉽게 구현될 수 있는 간단한 구조를 갖는다. 플래시 메모리 장치들이 일반적으로 적은 전력을 소모하고, 콤팩트하고, 가볍고, 그리고 물리적인 충격에 덜 손상되기 때문에, 플래시 메모리 장치들은 플래시 메모리 장치와 관련된 트레이드-오프(trade-offs)에도 불구하고 종종 이동 환경에 적합하다.
반면, 플래시 메모리는 읽기, 쓰기, 지우기 작업을 할 경우 전자의 이동에 의해서 물리적인 마모가 발생할 수 있다. 물리적인 마모가 발생하면 전자의 트랩의 정확성이 떨어지면서 정확한 정보 저장이 어려워지는 경우가 발생하고 정보 저장이 일시적이든 영구적이든 불가능한 블록은 배드블록으로 지정하여 데이터 저장용으로 사용하지 않게 된다. 특정 블록의 마모가 편중되지 않게 블록별로 웨어레벨링을 통하여 고루게 마모가 되도록 하는 다양한 기술이 나와있다. 특정 블록의 마모도를 평가하기 위해 이레이즈카우터를 사용하여 지우기 횟수를 기록하는 기술도 나와있으나 이러한 경우 지우기 횟수를 기록하기 위한 용량을 따로 할당하기 때문에 많은 양의 용량이 사용자 용량으로 지원되지 않을 수 있다.
본 발명의 목적은 성능 향상을 위한 물리적인 공간(또는 저장 용량)의 위치및 용량(크기)를 조정할 수 있는 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템을 제공하는 것이다.
본 발명의 일 특징은 사용자 어드레스 공간과 스페어 공간으로 구성된 순수 물리적인 공간을 갖는 저장 매체와; 그리고 상기 저장 매체를 제어하도록 구성된 장치를 포함하며, 상기 장치는 상기 순수 물리적인 공간에서 균일하게 사용되도록 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간으로 변경하는 시스템을 제공하는 것이다. 스페어 공간의 위치는 특정한 물리적 위치로 일단 고정되면 위치를 변경하여 주기 전까지는 일정 범위로 고정하여 할당된다.
예시적인 실시예에 있어서, 상기 장치는 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간의 미사용 영역과 사용 영역 중 어느 하나로 변경한다.
예시적인 실시예에 있어서, 상기 스페어 공간의 위치를 변경하는 것은 상기 저장 매체의 포맷 절차를 선택적으로 수반한다.
예시적인 실시예에 있어서, 상기 스페어 공간은 상기 순수 물리적인 공간의 절반 이하로 설정된다.
예시적인 실시예에 있어서, 상기 장치는 외부의 요청에 응답하여 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간의 미사용 영역으로 변경하며, 상기 미사용 영역은 사용자 데이터가 저장되지 않은 영역이다.
예시적인 실시예에 있어서, 상기 스페어 공간의 위치가 변경될 때, 다음에 할당될 스페어 공간과 현재 사용된 스페어 공간은 위치적으로 중복되지 않는다.
예시적인 실시예에 있어서, 상기 스페어 공간의 위치가 변경될 때, 다음에 할당될 스페어 공간은 가장 오래전에 사용된 스페어 공간으로 변경된다.
예시적인 실시예에 있어서, 상기 장치는 상기 스페어 공간의 사용 조건이 기준 조건을 만족할 때 상기 스페어 공간의 위치를 변경한다.
예시적인 실시예에 있어서, 상기 장치는 외부의 요청에 응답하여 상기 저장 매체를 제어하도록 구성된 메모리 컨트롤러를 포함한다.
예시적인 실시예에 있어서, 상기 장치는 호스트 시스템과; 그리고 상기 호스트 시스템의 요청에 응답하여 상기 저장 매체를 제어하도록 구성된 메모리 컨트롤 러를 포함한다.
본 발명의 예시적인 실시예들에 의하면, 스페어 공간의 위치 조정을 통해 플래시 메모리 저장 장치의 수명을 연장하는 것이 가능하다.
이하, 본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 1은 예시적인 실시예에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이고, 도 2는 플래시 메모리 저장 장치의 용량과 쓰기 성능 사이의 상관 관계를 보여주는 도면이다.
도 1을 참조하면, 컴퓨팅 시스템은 호스트 시스템(1000)과 플래시 메모리 저장 장치(2000)를 포함한다. 플래시 메모리 저장 장치(2000)는 플래시 메모리를 이용한 저장 장치이며, 반도체 디스크/드라이브(Solid-State Disk/Drive: SSD), 메모리 카드, 등을 포함할 것이다. 하지만, 플래시 메모리 저장 장치(2000)가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 저장 장치로서 플래시 메모리를 이용한 전자 장치들에 본 발명이 적용될 수 있다. 플래시 메모리 저장 장치(2000)는 데이터 정보를 저장하기 위한 물리적인 공간(physical space)을 갖는다. 플래시 메모리 저장 장치(2000)의 물리적인 공간은 사용자에게 보여지는 저장 공간(또는, 사용자 주소 공간)을 의미한다. 플래시 메모리 저장 장치(2000)는, 또한, 스페어 공간(spare space)(또는, 여분의 공간 (extra space))을 갖는다. 즉, 플래시 메모리 저장 장치(2000)는 물리적인 공간인 사용자 주소 공간과 스페어 공간으로 구성된 순수 물리적인 공간(Raw Physical Space: RPS)(2001)포함할 것이다.
예시적인 실시예에 있어서, 순수 물리적인 공간에 포함된 스페어 공간의 위치 그리고/또는 용량(크기)은 호스트 시스템(1000)의 제어에 따라, 플래시 메모리 저장 장치(2000)의 제어에 따라, 또는 호스트 시스템(1000) 및 플래시 메모리 저장 징치(2000)의 제어에 따라 변경될 것이다. 이후 설명되는 바와 같이, 스페어 공간은 물리적인 공간 즉, 사용자 어드레스 공간의 미사용 영역으로 변경될 것이다. 하지만, 스페어 공간이 물리적인 공간 즉, 사용자 어드레스 공간의 사용 영역으로 변경될 수도 있다. 스페어 공간의 위치가 미사용 영역으로 변경될 때, 스페어 공간의 용량은 필요에 따라 가변될 수 있다. 스페어 공간의 위치를 변경함으로써 플래시 메모리 저장 장치(2000)의 수명을 연장하는 것이 가능하다.
플래시 메모리 저장 장치(2000)의 사용자 용량은 물리적인 공간(또는, 사용자 주소 공간)에 대응하며, 스페어 공간은 사용자 용량에 포함되지 않는다. 플래시 메모리 저장 장치(2000)의 쓰기 성능(write performance)은 플래시 메모리 저장 장치(2000)의 스페어 공간에 의존할 것이다. 다시 말해서, 스페어 공간의 용량(크기)에 따라 플래시 메모리 저장 장치(2000)의 쓰기 성능이 변화되며, 이는 이후 상세히 설명될 것이다.
예시적인 실시예에 있어서, 이후 설명되는 바와 같이, 플래시 메모리 저장 장치(2000)는 메모리 컨트롤러를 포함할 것이다. 메모리 컨트롤러는 순수 물리적인 공간에서 균일하게 사용되도록 스페어 공간의 위치를 사용자 어드레스 공간으로 변경하는 장치를 구성할 것이다. 또는, 호스트 시스템(1000)과 플래시 메모리 저장 장치(2000)는 순수 물리적인 공간에서 균일하게 사용되도록 스페어 공간의 위치를 사용자 어드레스 공간으로 변경하는 장치를 구성할 것이다.
호스트 시스템(1000)은 논리적인 어드레스를 지시함으로써 플래시 메모리 저장 장치(2000)를 액세스한다. 논리적인 어드레스는 물리적인 저장 위치와 비교하여 볼 때 호스트 소프트웨어(즉, 운영 시스템 또는 어플리케이션)가 인식하는 논리적인 메모리 공간 중 임의의 위치를 참조한다. 따라서, 논리적인 어드레스는 지정된 물리적인 메모리 공간을 액세스하기 위해서 플래시 메모리 저장 장치(2000)의 물리적인 메모리 공간에 대응하는 물리적인 어드레스로 변환된다.
플래시 메모리를 사용한 저장 장치는 액세스 동작 동안 호스트 시스템과의 호환성을 보장하기 위해서 디스크 에뮬레이션 소프트웨어(disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 액세스 동작 동안 호스트 시스템(1000)과 플래시 메모리 저장 장치(2000) 사이의 호환성은 펌웨어(firmware)로서 플래시 변환 레이어(Flash Translation Layer)(이하, 'FTL'이라 칭함)과 같은 파일 시스템을 운영함으로써 달성될 수 있다. 다시 말해서, 호스트 시스템(1000)은 플래시 메모리 저장 장치(2000)를 HDD으로서 인식하여 HDD와 동일한 방식으로 플래시 메모리 저장 장치(2000)를 액세스한다. FTL은 특정 컴퓨터 시스템의 운영 시스템에 의해서 사용되는 파일 시스템에 플래시 메모리 저장 장치를 연결하며, 동일한 어드레스에 소거없이 한번 이상의 쓰기를 허여하지 않는다.
FTL의 기능들은 논리 어드레스-물리 어드레스 사상 정보 관리, 배드 블럭 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리, 마모도 관리, 스페어 공간의 위치/용량 변경, 등을 포함한다. 플래시 메모리가 블록 단위로 액세스되는 경우에, 플래시 메모리는 복수의 블록들로 분할된다. 분할된 블록에 순차적으로 할당된 번호는 물리 블록 번호라 불리며, 사용자가 생각하는 분할된 블록의 가상 번호는 논리 블록 번호라 불린다. 논리 블록 번호와 물리 블록 번호 간의 사상을 제공하는 방법은 블록 사상 기법, 섹터 사상 기법, 로그 사상 기법, 그리고 그와 같은 것을 포함한다.
사상 기법을 이용한 FTL에서는 논리적으로 연속된 어드레스를 가지는 데이터가 물리적으로는 서로 상이한 위치에 기록되어 있을 수 있다. 플래시 메모리는 쓰기(또는 프로그램) 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블록을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 공간으로 모으는 작업을 필요로 하며, 이러한 과정을 머지 동작이라고 한다. 이러한 머지 동작의 발생은 복수의 프로그램 동작들과 블록 소거 동작을 수반하며, 이는 플래시 메모리 저장 장치(2000)의 쓰기 성능이 저하되게 한다. 머지 동작이 발생하는 횟수를 줄임으로써 쓰기 성능의 저하를 방지할 수 있다. 머지 동작이 발생하는 횟수는 쓰기 버퍼와 같은 스페어 공간의 용량을 크게 설정함으로써 감소될 수 있다. 즉, 쓰기 성능은, 도 2에 도시된 바와 같이, 스페어 공간의 용량을 크게 설정함으로써 향상될 수 있다.
도 3은 도 1에 도시된 플래시 메모리 저장 장치를 개략적으로 보여주는 블록 도이다.
도 3을 참조하면, 플래시 메모리 저장 장치(2000)는 CPU(2100), RAM(2200), 플래시 메모리 제어 블록(2300), 호스트 인터페이스 제어 블록(2400), 그리고 복수의 플래시 메모리 칩들로 구성된 저장 매체(2500)를 포함한다. CPU(2100), RAM(2200), 플래시 메모리 제어 블록(2300), 그리고 호스트 인터페이스 제어 블록(2400)은 저장 매체(2500)를 제어하기 위한 메모리 컨트롤러를 구성할 것이다.
CPU(2100)는 플래시 메모리 저장 장치(2000)의 동작을 전반적으로 제어하며, RAM(2200)은 데이터 메모리 그리고/또는 워크 메모리로 사용된다. RAM(2200)은, 예를 들면, SRAM, DRAM, 불 휘발성 메모리, 또는 그와 같은 것으로 구성될 수 있다. 플래시 메모리 제어 블록(2300)은 CPU(2100)의 제어에 따라 저장 매체(2500)의 액세스를 제어하며, 에러 정정을 위한 ECC 엔진(미도시됨)을 기본적으로 포함할 것이다. 또는, CPU(2100)가 고성능 처리 유니트로 구성되는 경우, 에러 정정은 CPU(2100)에 의해서 실행되는 에러 정정 프로그램을 통해 행해질 수 있다. 플래시 메모리 저장 장치(2000)가 메모리 카드인 경우, 호스트 인터페이스 제어 블록(2400)은 SD 카드 인터페이스나 MMC 카드 인터페이스를 통해 호스트 시스템(1000)과 인터페이스할 것이다. 예시적인 실시예에 있어서, 플래시 메모리 저장 장치(2000)가 SSD인 경우, 호스트 인터페이스 제어 블록(2400)은 PATA 인터페이스, SATA 인터페이스, SAS 인터페이스, PCI-express 인터페이스, 또는 그와 같은 것을 통해 호스트 시스템(1000)과 인터페이스할 것이다.
도 4는 도 2에 도시된 플래시 메모리 저장 장치의 소프트웨어 모듈 구성을 보여주는 도면이다.
도 4를 참조하면, 호스트 명령 핸들러(Host command handler)는 호스트 명령을 분석한다. 호스트가 요청하는 읽기/쓰기 위치는 플래시 메모리 저장 장치(2000)의 물리적 주소와는 1:1로 일치하지 않으며, 논리 주소를 물리 주소로 변환하는 소프트웨어 모듈인 FTL이 필요하다. FTL은 다시 논리 주소를 플래시 주소로 변환하는 주소 변환기(Address Translator)와 프로그램 소거 실패시 배드 블록으로 등록하고 배드 블록을 대체하는 역할을 수행하는 배드 블록 관리 모듈을 포함한다. 또한, FTL은 개별 플래시 메모리 칩에 대한 액세스(예를 들면, 읽기, 프로그램, 소거, 등)을 제어하는 플래시 메모리 제어기 인터페이스를 포함한다.
도 5 내지 도 10은 도 1에 도시된 플래시 메모리 저장 장치의 스페어 공간의 위치 및 크기가 변경되는 예들을 보여주는 도면들이다. 설명에 앞서, 플래시 메모리 저장 장치의 스페어 공간의 위치는 다음과 같은 조건들을 만족하도록 결정될 것이다.
기본적으로, 현재 할당된 스페어 공간의 위치가 변경될 때, 현재 할당된 스페어 공간의 위치는 물리적인 공간(또는, 사용자 어드레스 공간)의 미사용 영역으로 변경될 것이다. 이는 최근에 사용된(또는, 현재 할당된) 스페어 공간과 다음에 할당될 스페어 공간은 위치적으로 중복되지 않도록 할당됨을 의미한다. 이러한 조건에 따르면, 스페어 공간의 용량은 순수 물리적인 공간(RPS)의 절반(50%) 이하로 할당될 것이다. 여기서, 미사용 영역은 사용자 데이터가 저장되지 않은 영역을 의미한다. 현재 할당된 스페어 공간의 위치를 변경하고자 할 때, 다음에 할당될 스페 어 공간의 위치는 현재 할당된(또는, 최근 사용된) 스페어 공간을 제외한 사용자 어드레스 공간(예를 들면, 사용자 어드레스 공간의 사용 영역 또는 미사용 영역)으로 변경될 것이다. 또는, 다음에 할당될 스페어 공간의 위치가 현재 할당된 스페어 공간을 제외한 사용자 어드레스 공간으로 변경되는 경우, 현재 사용된 스페어 공간은 가장 나중에 사용되도록 할당될 것이다.
앞서 설명된 바와 같이, 최근에 사용된(또는, 현재 할당된) 스페어 공간과 다음에 할당될 스페어 공간은 위치적으로 중복되지 않도록 할당된다. 하지만, 다음에 할당될 스페어 공간의 위치는 최근에 사용된(또는, 현재 할당된) 스페어 공간의 위치와 부분적으로 중복될 수도 있다. 이 경우, 중복된 부분은 가장 나중에 할당될 것이다.
예시적인 실시예에 있어서, 스페어 공간의 위치가 변경될 때, 스페어 공간의 용량(크기)은 필요에 따라 조절될 수 있다. 또한, 스페어 공간에 속한 메모리 블록들은 물리적으로 연속적으로 또는 비연속적으로 배열될 것이다. 예를 들면, 하나의 시작 어드레스와 하나의 종료 어드레스 사이에 스페어 공간의 메모리 블록들이 배열됨은 스페어 공간에 속한 메모리 블록들은 물리적으로 연속적으로 배열됨을 의미한다. 이에 반해서, 하나의 시작 어드레스와 하나의 종료 어드레스 사이에 스페어 공간의 메모리 블록들이 배열되지 않음은 스페어 공간에 속한 메모리 블록들은 물리적으로 비연속적으로 배열됨을 의미한다. 즉, 스페어 공간은 물리적으로 비연속적인 복수의 영역들로 구성될 수 있다. 스페어 공간의 각 영역에 속한 메모리 블록들은 물리적으로 연속적으로 배열될 것이다.
순수 물리적인 공간(RPS)이 복수의 영역들로 균등하게, 예를 들면, 3개의 영역들로 균등하게 구분된다고 가정하자. 이러한 경우, 도 5에 도시된 바와 같이, 스페어 공간은 3개의 영역들 중 하나에 대응하도록 할당되고, 나머지 영역들은 사용자 어드레스 공간 즉, 물리적인 공간으로 사용될 것이다. 도 5에 도시된 예의 경우, 3개의 영역들은 스페어 공간으로 사용되도록 순차적으로 할당될 것이다. 즉, 현재 사용된 스페어 공간은 가장 나중에 사용되도록 할당될 것이다. 도 5에 도시된 예는 스페어 공간의 용량(크기)가 변경되지 않은 상태에서 스페어 공간의 위치가 변경됨을 보여준다. 도 6에 도시된 바와 같이, 스페어 공간의 용량(크기)가 변경되지 않은 상태에서 스페어 공간의 위치가 변경될 때, 스페어 공간의 용량(크기)에 따라 스페어 공간은 2개의 스페어 세그먼트들로 구성될 수 있다. 도 5 및 도 6에 도시된 예들은 스페어 공간의 용량(크기)이 변경되지 않은 상태에서 스페어 공간의 위치가 변경됨을 보여주고 있다. 이에 반해서, 스페어 공간의 위치가 변경될 때, 스페어 공간의 용량(크기)이 변경될 수 있다. 예를 들면, 도 7 및 도 8에 도시된 바와 같이, 다음에 할당될(사용될) 스페어 공간의 용량(크기)는 이전의 스페어 공간의 용량(크기)과 다르게 설정될 수 있다. 도 7 및 도 8에 도시된 스페어 공간의 위치 역시 앞서 언급된 조건들을 만족하도록 변경될 것이다.
도 5에 도시된 예는 순차적인 할당 방식을 보여주며, 도 6 내지 도 8에 도시된 예들은 비순차적인 할당 방식 즉, 랜덤 할당 방식을 보여준다. 순차적인 할당 방식과 비순차적인 할당 방식을 통해 스페어 공간의 위치를 변경함으로써 스페어 공간이 순수 물리적인 공간에서 고르게 사용될 수 있다. 즉, 스페어 공간에 대해서 웨어-레벨링이 행해질 것이다.
도 9를 참조하면, 순수 물리적인 공간(RPS)은 2개의 데이터 영역들(A, B)과 스페어 영역으로 구성될 수 있다. 데이터 영역은 하나의 칩으로 구성될 수도 있고 칩 안의 블록 단위(낸드 플래시 메모리의 지우기 작업을 하기 위한 최소 단위)로 구성될 될 수도 있다. 스페어 공간의 위치가 미사용 영역으로 변경되는 것과 달리, 도 9에 도시된 바와 같이, 스페어 공간의 위치가 사용자 데이터가 저장된 사용 영역으로 변경될 수 있다. 이러한 경우, 사용 영역에 저장된 사용자 데이터는 데이터 영역(B)의 미사용 영역으로 옮겨지고, 데이터 영역(A)의 사용 영역은 소거될 것이다. 미사용 영역은 여러 개의 칩이 묶여있는 사이즈를 하나의 단위로 볼 수도 있고 하나의 칩을 하나의 단위로 볼 수도 있고 칩 하나를 더 작게 나눈 영역을 하나의 영역으로 볼수도 있다. 이때 하나의 블록 단위로 봤을 때는 프리 블록이 될 수도 있다. 이후, 스페어 공간의 위치는 소거된 사용 영역 즉, 미사용 영역으로 변경될 것이다. 이때, 스페어 공간의 용량(크기)는 필요에 따라 변경될 수 있다. 도 9의 경우, 스페어 공간의 위치가 데이터 영역(B)으로 변경될 수도 있다. 또한, 스페어 공간의 위치가 데이터 영역들 중 어느 하나의 미사용 영역으로 변경될 수도 있다. 영역의 단위를 블록 단위로 봤을 때는 데이터가 적혀있는 영역은 유저 데이터 영역이 될 수 있고 미사용 영역은 프리 블록이 될 수 있다.
플래시 메모리 저장 장치(2000)는, 도 10에 도시된 바와 같이, 2개 또는 그 보다 많은 반도체 드라이브들(SSD)(2000A, 2000B)로 구성될 수 있다. 반도체 드라이브들(2000A, 2000B) 각각은 스페어 공간을 포함할 것이다. 도 9에서 설명된 것과 마찬가지로, 스페어 공간의 위치가 사용자 데이터가 저장된 사용 영역으로 변경될 수 있다. 이러한 경우, 반도체 드라이브(2000A)의 사용 영역에 저장된 사용자 데이터는 반도체 드라이브(2000B)의 미사용 영역으로 옮겨지고, 반도체 드라이브(2000A)의 사용 영역은 소거될 것이다. 이후, 도 10에 도시된 바와 같이, 스페어 공간의 위치는 소거된 사용 영역 즉, 미사용 영역(즉, 사용 가능 영역)으로 변경될 것이다. 도 10의 경우, 스페어 공간으로 사용될 사용 영역이 반도체 드라이브(2000A)으로 변경될 수도 있다.
예시적인 실시예에 있어서, 미사용 영역의 용량이 다음에 사용될 스페어 공간의 용량보다 작은 경우가 생길 수 있다. 이러한 경우, 다음에 사용될 스페어 공간의 용량은 변경될 것이다.
사용자 어드레스 공간과 비교하여 볼 때, 스페어 공간의 마모는 상대적으로 많은 프로그램 및 소거 동작들의 반복으로 인해 빠르게 진행될 것이다. 그러한 까닭에, 도 5 내지 도 10에서 설명된 바와 같이, 스페어 공간의 위치를 변경함으로써 플래시 메모리 저장 장치(2000)의 수명을 연장하는 것이 가능하다. 즉, 스페어 공간에 대해서 웨어-레벨링 동작을 행함으로써 플래시 메모리 저장 장치(2000)의 수명을 연장하는 것이 가능하다. 스페어 공간의 위치를 변경하는 것은 호스트 시스템(1000)의 제어에 따라 또는 플래시 메모리 저장 장치(2000)의 제어에 따라 행해질 수 있다. 스페어 공간의 위치를 변경하는 것은 필요에 따라 플래시 메모리 저장 장치(2000)의 포맷 절차를 수반할 것이다. 다시 말해서, 스페어 공간의 위치를 변경하는 것은 필요에 따라 플래시 메모리 저장 장치(2000)의 포맷 절차를 수반 하지 않을 것이다.
예시적인 실시예에 있어서, 스페어 공간의 위치 그리고/또는 용량(크기)는 플래시 메모리 저장 장치(2000)의 인터페이스(예를 들면, PATA 인터페이스, SATA 인터페이스, SAS 인터페이스, PCI-express 인터페이스, 또는 그와 같은 것)에서 사용되는 명령을 이용하여 또는 새롭게 정의된 명령을 이용하여 변경될 수 있다. 예를 들면, 스페어 공간의 위치 그리고/또는 용량(크기)의 변경이 사용자에 의해서 요청될 때, 호스트 시스템(1000)은 플래시 메모리 저장 장치(2000)의 인터페이스에서 사용되는 명령을 이용하여 또는 새롭게 정의된 명령을 이용하여 플래시 메모리 저장 장치(2000)에 그러한 요청을 지시할 것이다. 사용자는 사용자 인터페이스를 통해 스페어 공간의 위치 그리고/또는 용량(크기)의 변경을 지시할 수 있다. 또는, 사용자는 바이오스의 값을 설정함으로써 스페어 공간의 위치 그리고/또는 용량(크기)의 변경을 지시할 수 있다. 사용자의 요청에 따라 스페어 공간의 위치를 변경하는 것은 필요에 따라 포맷 절차를 수반할 수 있다.
예시적인 실시예에 있어서, 스페어 공간의 위치 그리고/또는 용량(크기)의 변경은 사용자의 요청과 관계없이 행해질 수도 있다. 예를 들면, 스페어 공간의 위치 그리고/또는 용량(크기)의 변경은 주기적으로 또는 설정된 조건에 따라 행해질 수 있다. 예를 들면, 스페어 공간의 사용 시간이 기준 시간을 초과할 때마다 스페어 공간의 위치 그리고/또는 용량(크기)의 변경이 행해질 수 있다. 이러한 경우 각각의 모든 블록마다 지우기 횟수를 저장하는 이레이즈카운터를 포함하지 않아도 되기 때문에 더많은 메모리 용량을 사용자에게 지원할 수 있다. 또한 마모도를 관리 하는 소프트웨어가 간단해지기 때문에 구동이 빨라지고 시간도 절약할 수 있다. 스페어 공간의 위치 그리고/또는 용량(크기)의 변경은 플래시 메모리 저장 장치(2000)의 FTL을 통해 또는 호스트 시스템(1000)을 통해 행해질 수 있다. 또는, 설정된 조건이 만족될 때마다 스페어 공간의 위치 그리고/또는 용량(크기)의 변경이 행해질 수 있다. 이는 플래시 메모리 저장 장치(2000)의 FTL을 통해 또는 호스트 시스템(1000)을 통해 행해질 수 있다. 여기서, 설정된 조건은 다양하게 결정될 수 있다. 예를 들면, 스페어 공간의 소거 횟수, 머지 횟수, 등과 같은 기준들이 설정된 조건으로 사용될 수 있다. 스페어 공간의 위치를 변경하는 것은 필요에 따라 포맷 절차를 수반할 수 있다.
스페어 공간의 위치를 변경하는 것이 도 5 내지 도 10에 도시된 것에 국한되지 않음은 잘 이해될 것이다.
도 11은 본 발명에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
본 발명에 따른 컴퓨팅 시스템은 버스(401)에 전기적으로 연결된 마이크로프로세서(3410), 사용자 인터페이스(3420), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(3430), 컨트롤러(3440), 그리고 저장 매체(3450)를 포함한다. 컨트롤러(3440)과 저장 매체(3450)는 도 3에 도시된 것과 실질적으로 동일하게 구성될 것이다. 저장 매체(3450)에는 마이크로프로세서(3410)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 컨트롤러(3440)를 통해 저장될 것이다. 앞서 언급된 바와 같이, 저장 매체(3450)는 스페어 공간을 포함할 것이다. 스페어 공간의 위치는 도 5 내지 도 10을 참조하여 설명된 예들에 의거하여 변경될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(3460)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
본 발명의 경우, '사용자'라는 용어는 저장 매체의 메이커, 플래시 메모리 저장 장치의 메이커(또는, 벤더), 플래시 메모리 저장 장치를 최종적으로 사용하는 사용자, 등에 모두 적용될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 예시적인 실시예에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 2는 플래시 메모리 저장 장치의 용량과 쓰기 성능 사이의 상관 관계를 보여주는 도면이다.
도 3은 도 1에 도시된 플래시 메모리 저장 장치를 개략적으로 보여주는 블록도이다.
도 4는 도 2에 도시된 플래시 메모리 저장 장치의 소프트웨어 모듈 구성을 보여주는 도면이다.
도 5 내지 도 10은 도 1에 도시된 플래시 메모리 저장 장치의 스페어 공간의 위치 및 크기가 변경되는 예들을 보여주는 도면들이다.
도 11은 본 발명에 따른 플래시 메모리 저장 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.

Claims (10)

  1. 사용자 어드레스 공간과 스페어 공간으로 구성된 순수 물리적인 공간을 갖는 저장 매체와; 그리고
    상기 저장 매체를 제어하도록 구성된 장치를 포함하며,
    상기 장치는 상기 순수 물리적인 공간에서 균일하게 사용되도록 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간으로 변경하는 시스템.
  2. 제 1 항에 있어서,
    상기 장치는 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간의 미사용 영역과 사용 영역 중 어느 하나로 변경하는 시스템.
  3. 제 2 항에 있어서,
    상기 스페어 공간의 위치를 변경하는 것은 상기 저장 매체의 포맷 절차를 선택적으로 수반하는 시스템.
  4. 제 1 항에 있어서,
    상기 스페어 공간은 상기 순수 물리적인 공간의 절반 이하로 설정되는 시스템.
  5. 제 1 항에 있어서,
    상기 장치는 외부의 요청에 응답하여 상기 스페어 공간의 위치를 상기 사용자 어드레스 공간의 미사용 영역으로 변경하며, 상기 미사용 영역은 사용자 데이터가 저장되지 않은 영역인 시스템.
  6. 제 1 항에 있어서,
    상기 스페어 공간의 위치가 변경될 때, 다음에 할당될 스페어 공간과 현재 사용된 스페어 공간은 위치적으로 중복되지 않는 시스템.
  7. 제 1 항에 있어서,
    상기 스페어 공간의 위치가 변경될 때, 다음에 할당될 스페어 공간은 가장 오래전에 사용된 스페어 공간으로 변경되는 시스템.
  8. 제 1 항에 있어서,
    상기 장치는 상기 스페어 공간의 사용 조건이 기준 조건을 만족할 때 상기 스페어 공간의 위치를 변경하는 시스템.
  9. 제 1 항에 있어서,
    상기 장치는 외부의 요청에 응답하여 상기 저장 매체를 제어하도록 구성된 메모리 컨트롤러를 포함하는 시스템.
  10. 제 1 항에 있어서,
    상기 장치는 호스트 시스템과; 그리고 상기 호스트 시스템의 요청에 응답하여 상기 저장 매체를 제어하도록 구성된 메모리 컨트롤러를 포함하는 시스템.
KR1020090051625A 2009-04-08 2009-06-10 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템 KR20100132837A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090051625A KR20100132837A (ko) 2009-06-10 2009-06-10 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
US12/755,644 US8412909B2 (en) 2009-04-08 2010-04-07 Defining and changing spare space and user space in a storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090051625A KR20100132837A (ko) 2009-06-10 2009-06-10 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20100132837A true KR20100132837A (ko) 2010-12-20

Family

ID=43508382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090051625A KR20100132837A (ko) 2009-04-08 2009-06-10 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템

Country Status (1)

Country Link
KR (1) KR20100132837A (ko)

Similar Documents

Publication Publication Date Title
US11593259B2 (en) Directed sanitization of memory
KR102610395B1 (ko) 비휘발성 메모리 장치를 포함하는 메모리 시스템
US9128618B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
KR101969883B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8332579B2 (en) Data storage apparatus and method of writing data
US20190278518A1 (en) Memory system and operating method thereof
US20090049234A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US20200089608A1 (en) High efficiency garbage collection method, associated data storage device and controller thereof
US20170206033A1 (en) Mechanism enabling the use of slow memory to achieve byte addressability and near-dram performance with page remapping scheme
US11249897B2 (en) Data storage device and operating method thereof
CN102915208A (zh) 信息处理装置、半导体存储装置及半导体存储装置的控制方法
KR20140000751A (ko) 데이터 저장 장치의 동작 방법
JP2013506903A (ja) 電源遮断管理
KR20140078893A (ko) 데이터 저장 장치의 동작 방법
KR20200086472A (ko) 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
KR20220077691A (ko) 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법
KR101515621B1 (ko) 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
TWI414940B (zh) 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR101629179B1 (ko) 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
KR101574747B1 (ko) 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
KR20140090416A (ko) 데이터 저장 장치의 동작 방법
KR20100132837A (ko) 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
KR101995034B1 (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration