KR20150121560A - 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법 - Google Patents

스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법 Download PDF

Info

Publication number
KR20150121560A
KR20150121560A KR1020140047599A KR20140047599A KR20150121560A KR 20150121560 A KR20150121560 A KR 20150121560A KR 1020140047599 A KR1020140047599 A KR 1020140047599A KR 20140047599 A KR20140047599 A KR 20140047599A KR 20150121560 A KR20150121560 A KR 20150121560A
Authority
KR
South Korea
Prior art keywords
storage
flash memory
unit storage
unit
memory chip
Prior art date
Application number
KR1020140047599A
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 KR1020140047599A priority Critical patent/KR20150121560A/ko
Priority to US14/682,223 priority patent/US20150301748A1/en
Publication of KR20150121560A publication Critical patent/KR20150121560A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration

Landscapes

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

Abstract

스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법이 개시된다. 본 발명의 일 실시예에 따른 스토리지 시스템의 동작 방법은, 각각, 적어도 하나의 플래시 메모리 칩(flash memory chip)을 포함하는 다수의 단위 스토리지를 갖는 스토리지 시스템(storage system)의 동작 방법으로, 상기 다수의 단위 스토리지 중 제1 단위 스토리지에 대한 성능을 모니터링(monitoring) 하는 단계; 모니터링 된 상기 제1 단위 스토리지의 성능이 기준 값을 초과하는 경우, 상기 제1 단위 스토리지가 성능에 대한 제1 상태인 것으로 판단하는 단계; 및 상기 제1 단위 스토리지가 제1 상태로 판단된 경우, 상기 제1 단위 스토리지에 대한 서로 다른 유형의 요청들 중 제1 요청을, 제2 단위 스토리지에서 처리하는 단계를 포함한다.

Description

스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법{Storage device, storage system and operating method of storage system}
본 발명의 기술적 사상은, 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 관한 것으로, 자세하게는 효율적으로 성능을 유지할 수 있는 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 관한 것이다.
고성능 또는 고용량의 스토리지 장치 또는 스토리지 시스템에 대한 요구되는 한편, 스토리지 장치 또는 스토리지 시스템에 저장된 데이터 등에 대한 신뢰성도 요구되고 있다. 이때, 스토리지 장치 또는 스토리지 시스템 중 일부에 페일(fail)이 발생하는 경우, 페일된 부분에 대한 교체 또는 대체 등의 스킴(scheme)이 사용될 수 있다.
본 발명의 기술적 사상은 효율적으로 성능을 유지할 수 있는 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법을 제공하는데 있다.
본 발명의 일 실시예에 따른 스토리지 시스템의 동작 방법은, 각각, 적어도 하나의 플래시 메모리 칩(flash memory chip)을 포함하는 다수의 단위 스토리지를 갖는 스토리지 시스템(storage system)의 동작 방법으로, 상기 다수의 단위 스토리지 중 제1 단위 스토리지에 대한 성능을 모니터링(monitoring) 하는 단계; 모니터링 된 상기 제1 단위 스토리지의 성능이 기준 값을 초과하는 경우, 상기 제1 단위 스토리지가 성능에 대한 제1 상태인 것으로 판단하는 단계; 및 상기 제1 단위 스토리지가 제1 상태로 판단된 경우, 상기 제1 단위 스토리지에 대한 서로 다른 유형의 요청들 중 제1 요청을, 제2 단위 스토리지에서 처리하는 단계를 포함한다.
상기 다수의 단위 스토리지는 각각, 하나의 플래시 메모리 칩으로 구현될 수 있다.
상기 다수의 단위 스토리지는 각각, SSD(Solid State Driver)로 구현될 수 있다.
상기 사용 횟수에 대응되는 성능을 모니터링하는 단계는, 상기 제1 단위 스토리지의 배드 블록(bad block)의 개수, 배드 블록에 대한 리저브드 블록(reserved block)으로의 리맵핑(remapping) 횟수, 및 소거 횟수 중 적어도 하나 이상을 모니터링 하는 단계를 포함할 수 있다.
상기 제1 단위 스토리지의 소거 횟수는, 상기 제1 단위 스토리지에 포함된 적어도 하나 이상의 플래시 메모리 칩의 전부 또는 일부에 대한 평균 소거 횟수를 포함할 수 있다.
상기 사용 횟수에 대응되는 성능을 모니터링하는 단계는, 상기 제1 단위 스토리지의 지연(latency) 및 입출력 속도를 측정하는 단계를 포함할 수 있다.
상기 제1 단위 스토리지가 성능에 대한 제1 상태인 것으로 판단하는 단계는, 상기 제1 단위 스토리지가 EOL(End Of Life) 상태에 있는지 판단하는 단계를 포함할 수 있다.
상기 제1 단위 스토리지에 대한 제1 요청을 제2 단위 스토리지에서 처리하는 단계는, 상기 제1 단위 스토리지에 대한 제1 요청에 포함되는 논리 어드레스(address)를 상기 스토리지 시스템의 스페어 스토리지(spare storage)인 상기 제2 단위 스토리지에 대한 물리 어드레스로 맵핑하는 단계를 포함할 수 있다.
상기 제1 단위 스토리지에 대한 제1 요청을 제2 단위 스토리지에서 처리하는 단계는, 상기 제1 요청이 기입 요청인지를 확인하는 단계; 및 상기 제1 요청이 기입 요청인 경우, 상기 제1 요청에 응답하여 상기 제2 단위 스토리지에서 기입 동작을 수행하는 단계를 포함할 수 있다.
상기 제1 요청이 기입 요청인 아닌 독출 요청인 경우, 상기 제1 단위 스토리지에서 독출 동작을 수행하는 단계를 더 포함할 수 있다.
상기 제1 단위 스토리지에 저장된 데이터가 상기 제1 요청에 의해 상기 제2 단위 스토리지로 모두 업데이트(update) 되었는지를 판단하는 단계; 및 상기 제1 단위 스토리지에 저장된 데이터가 상기 제2 단위 스토리지로 모두 업데이트된 경우, 상기 제1 단위 스토리지에 대한 모든 요청에 포함되는 논리 어드레스를 상기 제2 단위 스토리지에 대한 물리 어드레스로 맵핑시키는 단계를 더 포함할 수 있다.
상기 스토리지 시스템이 아이들(idle) 상태일 때, 상기 제1 단위 스토리지에 대한 모든 요청에 포함되는 논리 어드레스를 상기 제2 단위 스토리지에 대한 물리 어드레스로 맵핑시키는 단계를 더 포함할 수 있다.
상기 제1 단위 스토리지가 제1 상태로 판단된 경우, 상기 제1 단위 스토리지에 대한 서로 다른 유형의 요청들 중 상기 제1 요청과 상이한 제2 요청은, 상기 제1 단위 스토리지에서 처리하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 SSD(Solid State Drive)의 동작 방법에 의하면, 다수의 플래시 메모리 칩(flash memory chip) 각각에 대한 성능을 모니터링(monitoring) 하는 단계; 상기 모니터링 결과, 상기 다수의 플래시 메모리 칩 중 제1 플래시 메모리 칩이 EOL(End Of Life) 상태에 있는 것으로 판단하는 단계; 상기 제1 플래시 메모리 칩이 EOL 상태로 판단된 후, 상기 제1 플래시 메모리 칩에 대한 기입 요청을 수신하여, 상기 다수의 플래시 메모리 칩 중 제2 플래시 메모리 칩에서 상기 기입 요청에 대응되는 기입 동작을 수행하는 단계; 및 상기 제1 플래시 메모리 칩이 EOL 상태로 판단된 후, 상기 제1 플래시 메모리 칩에 대한 독출 요청을 수신하여, 상기 제1 플래시 메모리 칩에서 상기 독출 요청에 대응되는 독출 동작을 수행하는 단계를 포함한다.
상기 제1 플래시 메모리 칩이 EOL 상태로 판단된 후, 적어도 하나 이상의, 상기 제1 플래시 메모리 칩에 대한 기입 요청에 응답하여, 상기 제1 플래시 메모리 칩의 데이터가 상기 제2 플래시 메모리 칩으로 모두 카피(copy)되었는지를 판단하는 단계; 및 상기 제1 플래시 메모리 칩의 데이터가 상기 제2 플래시 메모리 칩으로 모두 카피된 것으로 판단되면, 상기 제1 플래시 메모리 칩을 상기 제2 플래시 메모리 칩으로 대체하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 스토리지 장치 또는 스토리지 시스템의 성능 저하를 예측하고 페일(fail)이 발생하기 전에 다른 스토리지 장치 또는 다른 스토리지 시스템으로 교체함으로써, 스토리지 장치 또는 스토리지 시스템의 성능을 유지할 수 있다.
본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 스토리지 장치 또는 스토리지 시스템의 성능 저하를 예측하고 페일(fail)이 발생하기 전에 다른 스토리지 장치 또는 다른 스토리지 시스템으로 교체함으로써, 스토리지 장치 또는 스토리지 시스템의 성능을 유지하기 위해 요구되는 리저브드 블록(reserved block)의 개수를 줄여, 생산 단가 및 레이아웃 면적을 줄일 수 있다.
본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 스토리지 장치 또는 스토리지 시스템의 성능 저하를 예측하고 페일(fail)이 발생하기 전에 다른 스토리지 장치 또는 다른 스토리지 시스템으로 교체 또는 대체되더라도, 교체 또는 대체에 소요되는 지연(latency) 등이 방지되어, 스토리지 장치 또는 스토리지 시스템의 동작 속도를 향상시킬 수 있다.
본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 스토리지 장치 또는 스토리지 시스템의 성능이 유지될 수 있으므로, 스토리지 장치 또는 스토리지 시스템의 신뢰성이 확보될 수 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템의 동작 방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 3은 도 2의 스토리지 시스템에 포함되는 SSD(Solid State Driver)의 일 예를 나타내는 도면이다.
도 4는 도 3의 SSD에서의 동작을 좀더 자세히 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 모바일 장치(mobile device)를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 SSD 또는 플래시 메모리 칩의 시간에 따른 성능의 변화를 나타내는 그래프이다.
도 7은 본 발명의 실시예에 따른 플래시 메모리 칩에 구비되는 메모리 블록(memory block)의 예를 나타내는 도면이다.
도 8a 및 도 8b는 각각, 도 1의 제1 단위 스토리지가 제2 단위 스토리지로 물리적 대체되는 방법의 예를 나타내는 도면이다.
도 9 내지 도 12는 각각, 도 2의 스토리지 시스템의 예를 나타내는 도면이다.
도 13 및 도 14는 각각, 도 1의 제1 단위 스토리지에 대한 제1 요청을 제2 단위의 스토리지에서 처리하는 동작의 일 예를 나타내는 순서도이다.
도 15는 본 발명의 실시예에 따른 플래시 메모리 칩의 셀 어레이의 일 예를 나타내는 도면이다.
도 16은 도 3의 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템의 동작 방법을 나타내는 순서도이고, 도 2는 본 발명의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(200)의 동작 방법은, 다수의 단위 스토리지(UST1, UST2 … USTN) 중 제1 단위 스토리지에 대한, 사용 횟수에 대응되는 성능을 모니터링(monitoring) 하는 단계(S120), 모니터링 된 제1 단위 스토리지의 성능이 기준 값을 초과하는 경우 제1 단위 스토리지가 성능에 대한 제1 상태에 있는 것으로 판단하는 단계(S140) 및 제1 단위 스토리지가 제1 상태로 판단된 경우 제1 단위 스토리지에 대한 서로 다른 유형의 요청 중 제1 요청을, 제2 단위 스토리지에서 처리하는 단계(S160)를 포함한다.
본 발명의 일 실시예에 따른 스토리지 시스템(200)은 다수의 단위 스토리지(UST1, UST2 … USTN)을 포함하고, 각 단위 스토리지(UST1, UST2 … USTN)은 적어도 하나의 플래시 메모리 칩을 포함한다. 도 2는 스토리지 시스템(200)이 N개의 단위 스토리지(UST1, UST2 … USTN)을 포함하는 예를 도시한다. 단위 스토리지(UST1, UST2 … USTN)은, 본 발명의 실시예에 따른 스토리지 시스템(200)의 동작 방법에서, 페일(fail)에 대한 제어의 단위로 이해될 수 있다. 이때, 페일은 단위 스토리지(UST1, UST2 … USTN)에 대한 신뢰성이 확보되지 아니하는 상태를 나타낼 수 있다. 예를 들어, 단위 스토리지 1(UST1)에 포함되는 플래시 메모리 칩에 대한 P/E 사이클(Program/Erase cycle)이 임계 값 이상일 경우, 단위 스토리지 1(UST1)은 페일로 처리될 수 있다. 각 단위 스토리지(UST1, UST2 … USTN)은 다양한 형태로 규정될 수 있다. 각 단위 스토리지(UST1, UST2 … USTN)에 대한 좀더 자세한 예는 후술된다. 각 단위 스토리지(UST1, UST2 … USTN)에 포함되는 플래시 메모리 칩은 낸드 플래시 메모리(NAND flash memory)일 수 있다.
도 3은 도 2의 스토리지 시스템에 포함되는 SSD(Solid State Driver)의 일 예를 나타내는 도면이다. 본 발명의 일 실시예에 따른 스토리지 시스템(200)에 포함되는 SSD(300)는 SSD 컨트롤러(320) 및 적어도 하나 이상의 플래시 메모리 칩(FC)을 포함한다. SSD 컨트롤러(320)는 제1 포트(PT1)를 통해 호스트(400)로부터 수신되는 신호(SIG)에 응답하여 플래시 메모리 칩(FC)를 제어한다. SSD 컨트롤러(320)는 다수의 채널(CH1~CHM)을 통해 플래시 메모리 칩(FC)와 연결될 수 있다. SSD(MSYS)는 보조 전원 장치(DSP)를 더 구비하여 제2 포트(PT2)를 통해 호스트 장치(400)로부터 전원(PWR)을 입력 받을 수 있다. 다만, 이에 한정되는 것은 아니고, SSD(MSYS)는 호스트(400) 이외의 외부 장치로부터 전원을 공급받을 수 있다. SSD(MSYS)는 제1 포트(PT1)를 통해 호스트(400)의 요청을 처리한 결과(SIG)를 출력할 수 있다.
도 4는 도 3의 SSD에서의 동작을 좀더 자세히 설명하기 위한 도면이다. 도 4를 참조하면, 호스트(400)의 파일 시스템(422)은 섹터(sector)에 대한 단위로 SSD(300)에 대한 요청을 수행한다. SSD(300)의 SSD 컨트롤러(320)에 포함될 수 있는 FTL(Flash Translation Layer, 322)는 호스트(400)의 요청에 대응되는 섹터 단위의 논리적 주소를 페이지 단위의 물리적 주소로 변환할 수 있다. FTL(322)은 맵핑 테이블(mapping table, 324)을 참조하여, 논리적 주소를 물리적 주소로 변환할 수 있다. FTL(322)은 SSD 컨트롤러(320)의 RAM(미도시)에 로딩될 수 있다. SSD 컨트롤러(320)에 의해 변환된 페이지 단위의 물리적 주소를 수신하여, 플래시 메모리 칩(FC)의 드라이버(DRV)는 셀 어레이(CAR)에 대한 물리적 접근을 수행한다. 셀 어레이(CAR)에서 수행된 요청의 결과는 페이지 단위로 호스트(400)에 제공될 수 있다.
도 5는 본 발명의 실시예에 따른 모바일 장치(mobile device)를 나타내는 도면이다. 도 5를 참조하면, 본 발명의 실시예에 따른 모바일 장치(500)는 어플리케이션 프로세서(520), 및 어플리케이션 프로세서(520)와 인터커넥터(interconnector, 540)로 통신하는 SSD(300)를 포함할 수 있다. 어플리케이션 프로세서(520) 및 SSD(300)는 각각, 도 4의 호스트(400)와 SSD(300)일 수 있다. 또한, 도 5의 어플리케이션 프로세서(520)에 포함되는 플래시 파일 시스템(522)은 도 4의 파일 시스템(422)과 동일한 기능을 수행할 수 있다. 다만, 도 5의 플래시 파일 시스템(522)은 일반적인 파일 시스템의 기능을 수행하면서, 안정성 및 성능 향상을 위해 플래시 메모리의 인-플레이스 업데이트(in-place update)가 불가능한 특징을 고려한 로그(log) 구조 기반의 파일 시스템 기능을 지원할 수도 있다.
이상에서 설명된 SSD(300)에 포함되는 플래시 메모리 칩(FC)의 성능은 다양한 측면에서 평가 또는 측정될 수 있다. 플래시 메모리 칩(FC)은 사용 횟수, 예를 들어, 프로그램 및 소거 횟수(P/E 사이클)에 의해 성능이 평가될 수 있다. 따라서, SSD(300)도 포함하는 플래시 메모리 칩(FC)의 P/E 사이클의 카운트(count) 값에 의해, 성능이 평가 또는 측정될 수 있다.
도 6은 본 발명의 실시예에 따른 SSD 또는 플래시 메모리 칩의 시간에 따른 성능의 변화를 나타내는 그래프이다. 도 3 및 도 6을 참조하면, SSD(300) 또는 플래시 메모리 칩(FC)은 구간 t1에서 일정한 성능으로 동작한다. P/E 사이클이 많아질수록 플래시 메모리 칩(FC)의 성능, 예를 들어 데이터 보유력 등이 떨어질 수 있는데, SSD 컨트롤러(320)는 특정 플래시 메모리 칩(FC)에 대한 프로그램 및 소거가 집중적으로 발생되는 것을 방지하기 위해 웨어-레벨링(wear-leveling)을 수행함으로써, 구간 t1에서는 성능이 유지될 수 있다. 그러나, 구간 t1이 종료되고 구간 t2로 진입하면 급격히 성능이 떨어진다. 이는 플래시 메모리 칩(FC)이 P/E 사이클이 기준 값(임계 값)에 도달할 경우 성능이 급감하는 특성을 갖고 있기 때문이다. 성능이 급감하는 구간 t2에서의 상태를 EOL(End Of Life) 상태로 명명할 수 있다. 본 발명의 실시예에 따른 스토리지 시스템(200)은 임의의 단위 스토리지(제1 단위 스토리지)가 EOL 상태로 진입하기 전에 스토리지 시스템(200)의 성능 저하 없이 이를 처리할 수 있다. 이에 대하여 자세히 설명한다.
도 7은 본 발명의 실시예에 따른 플래시 메모리 칩에 구비되는 메모리 블록(memory block)의 예를 나타내는 도면이다. 플래시 메모리 칩(FC)은 도 7과 같이, 다수의 메모리 블록(memory block)을 포함할 수 있다. 이때, 일부의 메모리 블록을 하나의 플랜(Plane)으로 하여, 각 플랜에 대해 동시에 연산이 수행될 수 있다. 다만, 플래시 메모리 칩(FC)은 하나의 플랜으로 구현될 수 있다. 플래시 메모리 칩(FC)의 다수의 메모리 블록들 중 임의의 메모리 블록이 페일되면 배드 블록(bad block)으로 처리되어 해당 메모리 블록은 리저브드 블록(reserved block) 중 하나로 대체(또는 리맵핑(remapping))되어, 해당 메모리 블록에 대한 요청은 리맵핑된 리저브드 블록에서 처리된다. 리저브드 블록의 개수는 플래시 메모리 칩(FC)에 요구되는 성능의 정도에 따라 달라질 수 있다. 그런데, 플래시 메모리 칩(FC)이 구간 t2로 진입하려 하는 때에, 배드 블록의 발생 횟수 또는 리저브드 블록의 사용 횟수가 급격히 증가하게 된다.
다시 도 1 및 도 2를 참조하면, 본 발명의 실시예에 따른 스토리지 시스템(200)은 단위 스토리지(UST1, UST2 … USTN) 중 제1 단위 스토리지에 대한 성능을 모니터링 하여(S120), 제1 단위 스토리지의 배드 블록의 개수나 비율을 확인하거나, 배드 블록을 리맵핑(remapping)하기 위해 사용되거나 사용하는 리저브드 블록(reserved block)의 개수를 확인할 수 있다. 또는 본 발명의 실시예에 따른 스토리지 시스템(200)은 단위 스토리지(UST1, UST2 … USTN) 중 제1 단위 스토리지에 대한 성능을 모니터링 하여(S120), 제1 단위 스토리지의 소거 횟수를 확인할 수 있다. 이때, 제1 단위 스토리지에 포함된 다수의 메모리 블록(memory block)의 전부 또는 일부의 메모리 블록에 대한 소거 횟수의 평균값으로, 제1 단위 스토리지의 소거 횟수를 확인할 수 있다. 일부의 메모리 블록에 대한 소거 횟수의 평균값을 사용하는 경우, 일부의 메모리 블록은 임의의 영역에 밀접하여 위치하는 메모리 블록이거나, 랜덤하게 또는 규칙적으로 분산되어 위치하는 메모리 블록일 수 있다.
본 발명의 실시예에 따른 스토리지 시스템(200)은 상기와 같은 모니터링에 의해, 제1 단위 스토리지가 제1 상태, 즉 EOL 상태로 진입된 상태에 있는 것으로 판단할 수 있다(S140). 본 발명의 실시예에 따른 스토리지 시스템(200)은, 각 단위 스토리지(UST1, UST2 … USTN)에 대해, 동시에 또는 별개로 상기와 같은 모니터링 및 판단 동작을 수행할 수 있다. 본 발명의 실시예에 따른 스토리지 시스템(200)은, 제1 상태로 판단된 제1 단위 스토리지에 대한 제1 요청이 수신되면, 제1 요청을 제2 단위 스토리지에서 처리한다(S160). 이에 대하여 자세히 설명한다.
도 8a 및 도 8b는 각각, 도 1의 제1 단위 스토리지가 제2 단위 스토리지로 물리적 대체되는 방법의 예를 나타내는 도면이다. 먼저 도 8a를 참조하면, 예를 들어 제1 상태로 판단된 제1 단위 스토리지가 단위 스토리지 2(UST2)라면 단위 스토리지 2(UST2)는 스토리지 시스템(200)에서 제거되고, 새로운 단위 스토리지 2'(UST2') 가 스토리지 시스템(200)에 삽입될 수 있다. 그리고, 단위 스토리지 2(UST2)에 대해 요구되는 제1 요청, 예를 들어, 단위 스토리지 2(UST2)에 대해 스토리지 시스템(200)으로 수신되는 제1 요청은 단위 스토리지 2'(UST2')에서 수행될 수 있다. 이때, 단위 스토리지 2'(UST2')에 단위 스토리지 2(UST2)와 동일한 물리 주소가 할당되므로, 전술된 맵핑 테이블(324) 등의 업데이트(update)는 요구되지 아니할 수 있다.
또는, 도 8b에 도시되는 바와 같이, 예를 들어 제1 상태로 판단된 제1 단위 스토리지가 단위 스토리지 2(UST2)라면, 단위 스토리지 2(UST2)에 대해 요구되는 제1 요청은 스페어 스토리지(spare storage, SST)에서 수행될 수 있다. 스페어 스토리지(SPS)는 각각의 단위 스토리지(UST1, UST2 … USTN)와 동일한 구조로 구현될 수 있고, 스토리지 시스템(200)이 요구하는 성능에 따라 구비되는 개수가 달라질 수 있다. 이때, 스페어 스토리지(SPS)에는 단위 스토리지 2(UST2)와 상이한 물리 주소가 할당되므로, 전술된 맵핑 테이블(324) 등에서 업데이트 또는 리맵핑(remapping)이 수행된다. 스페어 스토리지(SPS)는 다수로 구비될 수 있다.
도 9는 도 2의 스토리지 시스템의 예를 나타내는 도면이다. 도 2 및 도 9를 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(200)에 포함되는 N개의 단위 스토리지(UST1, UST2 … USTN)은 각각, 하나의 플래시 메모리 칩(flash memory chip)으로 구현될 수 있다. 플래시 메모리 칩(FC1, FC2 … FCN)은 각각, 도 3의 각 채널(CH1, CH2 … CHM)에 연결되어 대응되는 칩 인에이블 신호(chip enable signal)에 응답하여 활성화될 수 있다. 플래시 메모리 칩(FC1, FC2 … FCN)은 각각, 하나의 플래시 메모리 다이(die)를 포함하거나 둘 이상의 플래시 메모리 다이를 포함할 수 있다. 본 발명의 일 실시예에 따른 스토리지 시스템(200)의 동작 방법은, 각 단위 스토리지(UST1, UST2 … USTN)의 단위로 페일에 대한 제어가 수행하므로, 예를 들어, 플래시 메모리 칩 1(FC1)에 대한 사용 횟수에 대응되는 성능을 모니터링하고, 모니터링 된 성능이 임계 값(기준 값)을 초과하는 경우, 플래시 메모리 칩 1(FC1)에 대한 제1 요청을, 플래시 메모리 칩 1(FC1)이 아닌, 제1 상태에 있지 아니한, 예를 들어 플래시 메모리 칩 2(FC2)에서 처리한다.
각 단위 스토리지(UST1, UST2 … USTN)가 도 9와 같이, 플래시 메모리 칩(FC1, FC2 … FCN)으로 구현되는 경우, 스토리지 시스템(200)의 내부에 위치할 수 있는 페일 처리부(360)에 의해, 플래시 메모리 칩(FC1, FC2 … FCN)의 성능이 모니터링 되고(S120), 모니터링 결과에 의해 어떤 플래시 메모리 칩이 제1 상태에 있는지 판단(S140)될 수 있다.
플래시 메모리 칩(FC1, FC2 … FCN)의 성능에 대한 모니터링은 전술된 바와 같이, 각 플래시 메모리 칩(FC1, FC2 … FCN)의 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등을 모니터링 하여 수행될 수 있다. 이때, 페일 처리부(360)는 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등을 플래시 메모리 칩(FC1, FC2 … FCN)으로부터 직접 모니터링하거나, SSD 컨트롤러(320)가 플래시 메모리 칩들(FC1, FC2 … FCN)에 대한 제어를 모니터링하여 수행할 수 있다. 그리고, 페일 처리부(360)는 모니터링 결과에 의해 어떤 플래시 메모리 칩이 제1 상태에 있는지를 판단함에 있어서, 저장하고 있는 해당 플래시 메모리 칩의 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등에 대해 설정된 기준 값과 모니터링 결과를 비교하여 판단할 수 있다.
페일 처리부(360)는 또한, 임의의 플래시 메모리 칩이 제1 상태에 있는 것으로 판단되면 해당 플래시 메모리 칩에 대한 제1 요청을 다른 플래시 메모리 칩에서 수행되도록 제어(S160)할 수 있다. 다만, 이에 한정되는 것은 아니고, 모니터링 동작(S120), 판단 동작(S140) 및 처리 동작(S160) 중 적어도 하나 이상이 SSD 컨트롤러(320)에 의해 수행될 수도 있다. 또한, 페일 처리부(360)는 스토리지 시스템(200)의 외부에 위치할 수도 있다. 페일 처리부(360)가 스토리지 시스템(200)의 외부에 위치하는 경우, 페일 처리부(360)는 스토리지 시스템(200)의 각 플래시 메모리 칩(FC1, FC2 … FCN)에 대한 요청에 대한 처리의 지연 정도 또는 입출력 속도 등에 근거하여, 각 플래시 메모리 칩(FC1, FC2 … FCN)에 대한 성능을 모니터링하고 평가할 수 있다.
도 10은 도 2의 스토리지 시스템의 다른 예를 나타내는 도면이다. 도 2 및 도 10를 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(200)에 포함되는 N개의 단위 스토리지(UST1, UST2 … USTN)은 각각, 하나의 SSD(300_1, 300_2 … 300_N)로 구현될 수 있다. 도 10의 SSD들(300_1, 300_2 … 300_N)은 각각, 도 3에서 설명된 SSD(300)와 동일할 수 있다. 본 발명의 일 실시예에 따른 스토리지 시스템(200)의 동작 방법은, 각 단위 스토리지(UST1, UST2 … USTN)의 단위로 페일에 대한 제어가 수행하므로, 예를 들어, SSD 1(300_1)에 대한 사용 횟수에 대응되는 성능을 모니터링하고, 모니터링 된 성능이 임계 값(기준 값)을 초과하는 경우, SSD 1(300_1)에 대한 제1 요청을 SSD 1(300_1)이 아닌, 제1 상태에 있지 않는 다른 SSD, 예를 들어, SSD 2(300_2)에서 처리한다.
각 단위 스토리지(UST1, UST2 … USTN)가 도 10과 같이, SSD(300_1, 300_2 … 300_N)로 구현되는 경우, 스토리지 시스템(200)의 외부에 위치하는 호스트(400)에 의해, SSD(300_1, 300_2 … 300_N)의 성능이 모니터링 되고(S120), 모니터링 결과에 의해 어떤 SSD가 제1 상태에 있는지 판단(S140)될 수 있다.
각 SSD(300_1, 300_2 … 300_N)의 성능에 대한 모니터링은 전술된 바와 같이, 각 SSD(300_1, 300_2 … 300_N)의 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등을 모니터링 하여 수행될 수 있다. 이때, 호스트(400)는 각 SSD(300_1, 300_2 … 300_N)에서의 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등을 각 SSD(300_1, 300_2 … 300_N)로부터 직접 모니터링할 수 있다. 이때, 각 SSD(300_1, 300_2 … 300_N)에서의 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등은 각 SSD(300_1, 300_2 … 300_N)에 포함된 다수의 플래시 메모리 칩의 전부 또는 일부에 대한 평균값, 또는 각 SSD(300_1, 300_2 … 300_N)에 포함된 다수의 플래시 메모리 칩 각각에 대한 값으로 모니터링 될 수 있다.
또는 호스트(400)는 각 SSD(300_1, 300_2 … 300_N)에 대한 요청의 지연 정도 및 각 SSD(300_1, 300_2 … 300_N)에 대한 입출력 속도를 모니터링하여 수행할 수 있다. 각 SSD(300_1, 300_2 … 300_N)에 대한 입출력 속도는 임의의 주기, 예를 들어 해당 SSD에 대한 IO가 발생될 때마다 측정되거나, 임의의 개수의 IO가 발생될 때마다 측정될 수 있다. 또한, 각 SSD(300_1, 300_2 … 300_N)에 대한 입출력 속도는 랜덤한 주기에 대해 발생된 IO의 개수로 측정될 수도 있다. 호스트(400)는 어떤 SSD가 제1 상태에 있는지를 판단함에 있어서, 저장하고 있는 해당 SSD의 배드 블록의 발생 개수, 리저브드 블록의 사용 개수, 소거 횟수 또는 리맵핑 횟수 등에 대해 설정된 기준 값, 또는 해당 SSD에 대한 입출력 속도에 대해 설정된 기준 값과 모니터링 결과를 비교하여 판단할 수 있다.
호스트(400)는 또한, 임의의 SSD가 제1 상태에 있는 것으로 판단되면 해당 SSD에 대한 제1 요청을 다른 SSD에서 수행되도록 제어(S160)할 수 있다. 예를 들어, 호스트(400)는 제1 상태의 SSD에 대한 제1 요청을 제1 상태가 아닌 다른 SSD에서 수행되도록 제어 신호를 해당 SSD에 전송함으로써, 상기의 제어를 수행할 수 있다. 다만, 이에 한정되는 것은 아니고, 모니터링 동작(S120), 판단 동작(S140) 및 처리 동작(S160) 중 적어도 하나 이상이 호스트(400)가 아닌 임의의 SSD에서 수행될 수도 있다. 또한, 도 11에 도시되는 바와 같이, 호스트(400)가 아닌, 각 단위 스토리지(UST1, UST2 … USTN)인 각 SSD(300_1, 300_2 … 300_N)에 대한 모니터링 동작(S120), 판단 동작(S140) 및 처리 동작(S160)은 RAID 컨트롤러()에 의해, 수행될 수 있다.
도 9 내지 도 11에서 설명된 실시예 이외에, 본 발명의 실시예에 따른 각 단위 스토리지(UST1, UST2 … USTN)는 다양한 단위로 설정될 수 있다. 예를 들어, 본 발명의 다른 실시예에 따른 스토리지 시스템을 나타내는 도 12에 도시된 바와 같이, 스토리지 시스템(200)에 포함되는 N개의 단위 스토리지(UST1, UST2 … USTN)은 각각, 도 3의 각 채널(CH1, CH2 … CHM)에 연결되는 다수의 플래시 메모리 칩들일 수 있다. 예를 들어, 단위 스토리지 1(UST1)은 채널 1(CH1)에 연결되는 다수 플래시 메모리 칩들이고, 단위 스토리지 2(UST2)는 채널 2(CH2)에 연결되는 다수 플래시 메모리 칩들일 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템(200)의 동작 방법은, 각 단위 스토리지(UST1, UST2 … USTN)의 단위로 페일에 대한 제어가 수행하므로, 예를 들어, 채널 1(CH1)에 연결된 플래시 메모리 칩들에 대한 사용 횟수에 대응되는 성능을 모니터링하고, 모니터링 된 성능이 임계 값(기준 값)을 초과하는 경우, 채널 1(CH1)에 연결된 플래시 메모리 칩들에 대한 처리를 제1 상태가 아닌 다른 채널, 예를 들어 채널 2(CH2)에서 수행한다. 도 12와 같은 경우, 도 9와 마찬가지로, 페일 처리부(360) 또는 SSD 컨트롤러(320)에 의해서 상기의 동작이 수행되거나, 각 채널(CH1, CH2 … CHM)마다 별도로 구비되는 채널 제어부(미도시)에 의해 수행될 수도 있다.
이렇듯, 본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 스토리지 장치 또는 스토리지 시스템의 성능 저하를 예측하고 페일(fail)이 발생하기 전에 다른 스토리지 장치 또는 다른 스토리지 시스템으로 교체함으로써, 스토리지 장치 또는 스토리지 시스템의 성능을 유지할 수 있다. 또한, 본 발명의 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 스토리지 장치 또는 스토리지 시스템에 대해 요구되는 성능 및 스토리지 장치 또는 스토리지 시스템이 포함하는 자원을 고려하여, 최적화된 단위 스토리지의 단위를 설정하고, 단위 스토리지의 단위로 성능을 모니터링 하여, 단위 스토리지의 성능을 유지시키여, 스토리지 장치 또는 스토리지 시스템의 성능을 향상 시킬 수 있다. 나아가, 불시에 발생할 수 있는 페일에 대비하기 위해 충분한 개수로 구비되어야 했던 리저브드 블록의 개수를 줄임으로써, 스토리지 장치 또는 스토리지 시스템의 생산 단가 및 레이아웃 면적을 줄일 수 있다.
도 13은 도 1의 제1 단위 스토리지에 대한 제1 요청을 제2 단위의 스토리지에서 처리하는 동작의 일 예를 나타내는 순서도이다. 도 13을 참조하면, 제1 상태로 판단된 제1 단위 스토리지에 대한 제1 요청이 수신되면(S1310), 제1 요청이 기입 요청인지를 판단한다(S1320). 제1 상태로 판단된 단위 스토리지에 대한 리스트는 스토리지 시스템 내의 임의의 저장 공간(예를 들어, 레지스터(register), 캐시(cache))에 저장될 수 있다. 그리고, 외부로부터 제1 요청 수신되면, 제1 요청에 대응되는 어드레스가 해당 리스트에 포함된 단위 스토리지에 대한 것인지를 확인함으로써, 제1 요청이 기입 요청인지를 판단할 수 있다.
제1 요청이 기입 요청인 경우(S1320의 YES), 제2 단위 스토리지에 대해 제1 요청을 수행한다(S1330). 반면, 제1 요청이 기입 요청이 아닌 독출 요청인 경우(S1320의 NO), 제1 단위 스토리지에서 제1 요청이 수행될 수 있다. 제1 요청이 독출 요청인 경우, 제1 단위 스토리지에서 데이터를 독출한다(S1340). 제1 단위 스토리지에 대한 기입 동작은 제1 단위 스토리지의 P/E 사이클 횟수를 증가시켜, 제1 단위 스토리지의 성능을 열화시킬 수 있다. 따라서, 제1 상태(EOL 상태)의 제1 단위 스토리지는 페일될 수 있다.
반면, 기입 요청이 아닌 독출 요청인 경우, 제1 단위 스토리지의 P/E 사이클 횟수를 증가시키지 아니하므로, 제1 단위 스토리지의 성능의 열화를 야기하지 아니하므로, 여전히 제1 단위 스토리지에서 수행될 수 있다. 제2 단위 스토리지에서 기입 동작이 수행되거나 제1 단위 스토리지에서 독출 동작이 수행되면, 제1 단위 스토리지에서 제2 단위 스토리지로 카피(copy)가 완료되었는지 확인한다(S1350). 즉, 제1 단위 스토리지에 기입되었던 데이터가 제2 단위 스토리지로 모두 업데이트되었는지를 확인한다. 예를 들어, 단위 스토리지가 도 9와 같이 플래시 메모리 칩이고 플래시 메모리 칩 1(FC1)이 제1 상태인 것으로 판단된 경우, 플래시 메모리 칩 1(FC1)에 기입되어 있던 데이터가, 플래시 메모리 칩 1(FC1)이 제1 상태인 것으로 판단된 이후에 수신된 기입 요청에 의해, 모두 제1 상태가 아닌 다른 플래시 메모리 칩(예를 들어, 플래시 메모리 칩 2(FC2))에 기입되었는지를 확인한다.
제1 단위 스토리지에서 제2 단위 스토리지로 카피가 완료된 경우(S1350의 YES), 제1 단위 스토리지를 제2 단위 스토리지로 대체하고(S1360), 이후 제1 단위 스토리지에 대한 모든 제1 요청은 제2 스토리지에서 수행한다. 반면, 제1 단위 스토리지에서 제2 단위 스토리지로 카피가 완료되지 아니하는 경우(S1350의 NO), 제1 단위 스토리지에 대한 다른 제1 요청을 수신한다(S1370).
상기의 각 동작은 SSD 컨트롤러(320) 또는 페일 처리부(360)에서 수행될 수 있다. 또는 외부의 호스트(400) 또는 RAID 컨트롤러()의 제어에 의해 수행될 수도 있다. 예를 들어, 제1 단위 스토리지에서 제2 단위 스토리지로 카피가 완료되기 전까지(S1350의 NO), 제1 요청에 대응되는 어드레스에 대한 맵핑 정보가 제1 단위 스토리지 및 제2 단위 스토리지 둘 다에 대해 설정될 수 있다. 반면, 제1 단위 스토리지에서 제2 단위 스토리지로 카피가 완료되면(S1350의 YES), 제1 요청에 대응되는 어드레스에 대한 맵핑 정보가 제2 단위 스토리지에 대해서만 설정될 수 있다. 상기의 맵핑 정보는, 예를 들어, 도 4의 맵핑 테이블(324)에 저장되고 업데이트 될 수 있다.
본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, EOL 상태의 단위 스토리지에 대한 새로운 기입 요청은 다른 단위 스토리지에서 수행하고, 독출 요청은 기존의 단위 스토리지에서 수행함으로써, 하나의 단위 스토리지를 다른 단위 스토리지로 물리적으로 대체하기 위해 소요되는 지연을 최소화할 수 있다. 다만, 본 발명의 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, 비록 제1 단위 스토리지에서 제2 단위 스토리지로 카피가 완전히 완료되지 아니하는 경우에도 제1 단위 스토리지를 제2 단위 스토리지로 대체할 수 있다.
도 13은 도 1의 제1 단위 스토리지에 대한 제1 요청을 제2 단위의 스토리지에서 처리하는 동작의 다른 예를 나타내는 순서도이다. 도 14의 방법에 의하면, 도 13의 S1310 내지 S1370과 동일한 단계를 포함한다. 다만, 도 14의 방법에 의하면, 제1 단위 스토리지에 대한 기입 요청을 제2 단위 스토리지에서 처리()하거나, 제1 단위 스토리지에서 독출 요청을 처리()하고, 제1 모드로 동작할지 여부를 판단한다(). 제1 모드, 즉 제1 단위 스토리지를 제2 단위 스토리지로 물리적 대체를, 스토리지 시스템의 아이들(IDLE) 상태에서 수행하는 제1 모드인 경우(S1445의 YES), 스토리지 시스템이 아이들(IDLE) 상태인지를 판단한다(S1455의 YES). 스토리지 시스템이 제1 모드이고(S1445의 YES), 아이들(IDLE) 상태(S1455의 YES)이면, 제1 단위 스토리지를 제2 단위 스토리지로 대체시켜(S1360), 이후 제1 단위 스토리지에 대한 모든 요청을 제2 단위 스토리지에서 수행한다.
반면, 스토리지 시스템이 제1 모드이나(S1445의 YES), 아이들(IDLE) 상태가 아니면(S1455의 NO), 스토리지 시스템이 아이들(IDLE) 상태가 될 때까지 기다릴지를 결정한다(S1465). 스토리지 시스템이 아이들(IDLE) 상태가 될 때까지 기다릴지를 결정하면(S1465의 YES), 스토리지 시스템이 아이들(IDLE) 상태인지 체크하는 단계(S1455)를 반복한다. 반면, 스토리지 시스템이 아이들(IDLE) 상태가 될 때까지 기다리지 않기로 결정하거나(S1465의 NO), 스토리지 시스템이 제1 모드가 아니면(S1445의 NO), 도 13과 같이 제1 단위 스토리지에서 제2 단위 스토리지로 카피(copy)가 완료(S1350의 YES)된 후 제1 단위 스토리지를 제2 단위 스토리지로 대체시켜(S1360), 이후 제1 단위 스토리지에 대한 모든 요청을 제2 단위 스토리지에서 수행한다. 스토리지 시스템이 제1 모드가 아니고(S1445의 NO), 제1 단위 스토리지에서 제2 단위 스토리지로 카피(copy)가 완료되지 아니하면(S1350의 NO), 제1 단위 스토리지에 대한 다음 제1 요청을 처리한다(S1370).
이렇듯 본 발명의 실시예에 따른 본 발명의 일 실시예에 따른 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법에 의하면, EOL 상태의 단위 스토리지에 대한 새로운 기입 요청은 다른 단위 스토리지에서 수행하고, 성능 열화를 야기하지 아니하는 독출 요청은 기존의 단위 스토리지에서 수행함으로써, 하나의 단위 스토리지를 다른 단위 스토리지로 물리적으로 대체하기 위해 소요되는 지연을 최소화하면서도, 스토리지 시스템의 상황에 맞게 성능 열화된 단위 스토리지를 대체할 수 있다.
도 15는 본 발명의 실시예에 따른 플래시 메모리 칩의 셀 어레이의 일 예를 나타내는 도면이다. 도 3 등의 플래시 메모리 칩(FC)에 포함되는 셀 어레이는 2차원의 NAND 플래시 메모리일 수 있다. 또는, 도 15에 도시되는 바와 같이, 도 3의 플래시 메모리 칩(FC)에 포함되는 셀 어레이(440)는 3차원으로 적층된 수직 NAND(Vertical NAND) 플래시 메모리 셀 어레이로 구현될 수 있다. 3차원의 셀 어레이(440)는 기판(SUB), 복수의 메모리 셀 스트링(ST), 워드 라인(WL<0> 내지 WL<3>), 및 비트 라인(BL<0> 내지 BL<3>)을 포함할 수 있다. 메모리 셀 스트링(ST)은 기판(110)으로부터 돌출된 방향(예를 들어, 수직 방향(Z))으로 신장될 수 있다. 메모리 셀 스트링(ST) 각각은 Z축 방향으로 메모리 셀들(MC), 소스 선택 트랜지스터(SST), 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다. 소스 선택 트랜지스터(SST)는 열의 방향(Y)으로 연장된 소스 선택 라인(SSL<0> 내지 SSL<3>)과 연결되어 제어될 수 있고, 그라운드 선택 트랜지스터(GST)는 행의 방향(X) 및 열의 방향(Y)으로 연장된 그라운드 선택 라인(GSL)과 연결되어 제어될 수 있다.
워드 라인(WL<0> 내지 WL<3>)은 기판(110)과 수직한 방향(Z)으로 배열된다. 워드 라인(WL<0> 내지 WL<3>) 각각은 메모리 셀 스트링(ST) 내 메모리 셀들(MC) 각각이 존재하는 층의 일부에 위치한다. 워드 라인(WL<0> 내지 WL<3>) 각각은 기판(110) 상의 X축 및 Y축의 매트릭스로 배열된 메모리 셀들(MC)과 결합된다. 비트 라인(BL<0> 내지 BL<3>)은 행의 방향(X)으로 배열된 메모리 셀 스트링과 연결될 수 있다. 메모리 셀 스트링(ST) 내 메모리 셀들(MC), 소스 선택 트랜지스터(SST), 및 그라운드 선택 트랜지스터(GST)는 동일한 채널을 공유할 수 있다. 상기 채널은 기판(110)과 수직한 방향(Z)으로 연장되도록 형성될 수 있다.
워드 라인(WL<0> 내지 WL<3>) 및 비트 라인(BL<0> 내지 BL<3>)에 적절한 전압이 인가되어 메모리 셀들(MC)에 대한 프로그램 동작 및/또는 검증 동작이 수행되도록 제어될 수 있다. 예를 들어, 선택 트랜지스터(SST)와 연결된 소스 선택 라인(SSL<0> 내지 SSL<3>) 및 비트 라인(BL<0> 내지 BL<3>)에 설정된 전압이 인가되어 임의의 메모리 셀 스트링(ST)이 선택될 수 있고, 워드 라인(WL<0> 내지 WL<3>)에 설정된 전압이 인가되여 선택된 메모리 셀 스트링(ST) 중 임의의 메모리 셀(MC)을 선택됨으로써, 선택된 메모리 셀(MC)에 대한 독출, 프로그램 및/또는 검증 동작이 수행될 수 있다.
도 16은 도 3의 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다. 도 16을 참조하면, 일 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SVSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 일 실시예에 따른 서버 시스템(SVSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함하는 구비할 수 있다. 따라서, 일 실시예에 따른 네트워크 시스템(NSYS) 및 서버 시스템(SVSYS)은 SSD의 컨트롤러와 메모리 사이의 인증 등을 신뢰성 있게 수행함으로써, 시스템에 대한 신뢰성을 확보할 수 있다.
이상에서와 같이 도면과 명세서에서 실시예가 개시되었다. 다만, 이는 의미 한정이나 특허청구범위에 기재된 범위를 제한하기 위하여 사용된 것은 아니다. 예를 들어, 이상에서 스토리지 장치가 플래시 스토리지 장치인 예만 기술되었으나, 이에 한정되는 것은 아니고, 플래시 스토리지 장치 이외에 다양한 비휘발성 스토리지 장치인 경우도 본 발명의 기술적 사상이 적용될 수 있다. 예를 들어, 전술된 모니터링 동작은 스토리지 시스템에서 주기적 또는 랜덤하게 수행되거나, 외부의 호스트로부터 스토리지 시스템의 상태에 대한 리포팅(reporting) 요청이 수신되는 때에 수행될 수 있다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
200: 스토리지 시스템
UST1, UST2 … USTN: 단위 스토리지
300: SSD
320: SSD 컨트롤러
CH1, CH2 … CHM: 채널
FC: 플래시 메모리 칩
340: 보조 전원 장치
400: 호스트

Claims (10)

  1. 각각, 적어도 하나의 플래시 메모리 칩(flash memory chip)을 포함하는 다수의 단위 스토리지를 갖는 스토리지 시스템(storage system)의 동작 방법에 있어서,
    상기 다수의 단위 스토리지 중 제1 단위 스토리지에 대한 성능을 모니터링(monitoring) 하는 단계;
    모니터링 된 상기 제1 단위 스토리지의 성능이 기준 값을 초과하는 경우, 상기 제1 단위 스토리지가 성능에 대한 제1 상태인 것으로 판단하는 단계; 및
    상기 제1 단위 스토리지가 제1 상태로 판단된 경우, 상기 제1 단위 스토리지에 대한 서로 다른 유형의 요청들 중 제1 요청을, 제2 단위 스토리지에서 처리하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 다수의 단위 스토리지는 각각, 하나의 플래시 메모리 칩으로 구현되는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  3. 제1항에 있어서,
    상기 다수의 단위 스토리지는 각각, SSD(Solid State Driver)로 구현되는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  4. 제1항에 있어서, 상기 제1 단위 스토리지에 대한 성능을 모니터링하는 단계는
    상기 제1 단위 스토리지의 배드 블록(bad block)의 개수, 배드 블록에 대한 리저브드 블록(reserved block)으로의 리맵핑(remapping) 횟수, 및 소거 횟수 중 적어도 하나 이상을 모니터링 하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템.
  5. 제1항에 있어서, 상기 제1 단위 스토리지에 대한 성능을 모니터링하는 단계는,
    상기 제1 단위 스토리지의 지연(latency) 및 입출력 속도를 측정하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  6. 제1항에 있어서, 상기 제1 단위 스토리지에 대한 제1 요청을 제2 단위 스토리지에서 처리하는 단계는,
    상기 제1 요청이 기입 요청인지를 확인하는 단계; 및
    상기 제1 요청이 기입 요청인 경우, 상기 제1 요청에 응답하여 상기 제2 단위 스토리지에서 기입 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  7. 제6항에 있어서,
    상기 제1 요청이 기입 요청인 아닌 독출 요청인 경우, 상기 제1 단위 스토리지에서 독출 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  8. 제6항에 있어서,
    상기 제1 단위 스토리지에 저장된 데이터가 상기 제1 요청에 의해 상기 제2 단위 스토리지로 모두 업데이트(update) 되었는지를 판단하는 단계; 및
    상기 제1 단위 스토리지에 저장된 데이터가 상기 제2 단위 스토리지로 모두 업데이트된 경우, 상기 제1 단위 스토리지에 대한 모든 요청에 포함되는 논리 어드레스를 상기 제2 단위 스토리지에 대한 물리 어드레스로 맵핑시키는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
  9. 다수의 플래시 메모리 칩(flash memory chip) 각각에 대한 성능을 모니터링(monitoring) 하는 단계;
    상기 모니터링 결과, 상기 다수의 플래시 메모리 칩 중 제1 플래시 메모리 칩이 EOL(End Of Life) 상태에 있는 것으로 판단하는 단계;
    상기 제1 플래시 메모리 칩이 EOL 상태로 판단된 후, 상기 제1 플래시 메모리 칩에 대한 기입 요청을 수신하여, 상기 다수의 플래시 메모리 칩 중 제2 플래시 메모리 칩에서 상기 기입 요청에 대응되는 기입 동작을 수행하는 단계; 및
    상기 제1 플래시 메모리 칩이 EOL 상태로 판단된 후, 상기 제1 플래시 메모리 칩에 대한 독출 요청을 수신하여, 상기 제1 플래시 메모리 칩에서 상기 독출 요청에 대응되는 독출 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 SSD(Solid State Drive)의 동작 방법.
  10. 제9항에 있어서,
    상기 제1 플래시 메모리 칩이 EOL 상태로 판단된 후, 적어도 하나 이상의, 상기 제1 플래시 메모리 칩에 대한 기입 요청에 응답하여, 상기 제1 플래시 메모리 칩의 데이터가 상기 제2 플래시 메모리 칩으로 모두 카피(copy)되었는지를 판단하는 단계; 및
    상기 제1 플래시 메모리 칩의 데이터가 상기 제2 플래시 메모리 칩으로 모두 카피된 것으로 판단되면, 상기 제1 플래시 메모리 칩을 상기 제2 플래시 메모리 칩으로 대체하는 것을 특징으로 하는 SSD(Solid State Drive)의 동작 방법.
KR1020140047599A 2014-04-21 2014-04-21 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법 KR20150121560A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140047599A KR20150121560A (ko) 2014-04-21 2014-04-21 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법
US14/682,223 US20150301748A1 (en) 2014-04-21 2015-04-09 Storage operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140047599A KR20150121560A (ko) 2014-04-21 2014-04-21 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150121560A true KR20150121560A (ko) 2015-10-29

Family

ID=54322066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140047599A KR20150121560A (ko) 2014-04-21 2014-04-21 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법

Country Status (2)

Country Link
US (1) US20150301748A1 (ko)
KR (1) KR20150121560A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180102480A (ko) * 2017-03-07 2018-09-17 삼성전자주식회사 성능 능력들을 자기-보고할 수 있는 불휘발성 메모리 저장 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189167B2 (en) 2012-05-31 2015-11-17 Commvault Systems, Inc. Shared library in a data storage system
KR102506135B1 (ko) 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10192065B2 (en) * 2015-08-31 2019-01-29 Commvault Systems, Inc. Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system
US10409514B2 (en) * 2015-11-30 2019-09-10 International Business Machines Corporation IP multicast message transmission for event notifications
US10256981B2 (en) * 2016-09-27 2019-04-09 International Business Machines Corporation Secure logging for host security module
US10261897B2 (en) 2017-01-20 2019-04-16 Samsung Electronics Co., Ltd. Tail latency aware foreground garbage collection algorithm
US10795598B1 (en) * 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
CN115098023B (zh) * 2022-06-22 2023-08-15 浙江威固信息技术有限责任公司 一种阵列式存储器及存储器单元控制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255613B2 (en) * 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
US8984216B2 (en) * 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9026863B2 (en) * 2013-01-17 2015-05-05 Dell Products, L.P. Replacement of storage responsive to remaining life parameter
US10073626B2 (en) * 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9619381B2 (en) * 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180102480A (ko) * 2017-03-07 2018-09-17 삼성전자주식회사 성능 능력들을 자기-보고할 수 있는 불휘발성 메모리 저장 장치

Also Published As

Publication number Publication date
US20150301748A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
KR20150121560A (ko) 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법
US10372558B2 (en) Storage device, an operating method of the storage device and an operating method of a computing system including the storage device and a host device
US10090044B2 (en) System and method for burst programming directly to MLC memory
KR102533207B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20210125774A (ko) 데이터 저장 장치 및 그 동작 방법
KR20150121562A (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
US10409683B2 (en) Data storage system configured to perform data rebuild operation via reduced read requests
US10388395B2 (en) Storage device and bad block assigning method thereof
US20200152274A1 (en) Data storage apparatus, operating method thereof, and storage system including data storage apparatus
KR20210001414A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
US9990158B2 (en) Storage system and method for burst mode management using transfer RAM
CN109960466B (zh) 存储器系统及其操作方法
KR20210038753A (ko) 데이터 저장 장치 및 그 동작 방법
KR20220124318A (ko) 쓰기 동작을 리디렉션하는 스토리지 컨트롤러 및 이의 동작 방법
CN114664342A (zh) Ufs装置及其操作方法
KR20220089868A (ko) 데이터 저장 장치 및 그 동작 방법
KR102306853B1 (ko) 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
US11626183B2 (en) Method and storage system with a non-volatile bad block read cache using partial blocks
CN117055802A (zh) 存储器系统
US9548105B1 (en) Enhanced post-write read for 3-D memory
CN114446379A (zh) 基于各种定时容限参数设定的性能度量来对存储器装置进行评级
US11334256B2 (en) Storage system and method for boundary wordline data retention handling
KR20230031617A (ko) 데이터를 리프레쉬하는 데이터 저장 장치 및 그 동작 방법
CN114791787A (zh) 数据存储设备及其操作方法
US11756637B2 (en) Block erase type detection using bit count check

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