KR102288546B1 - 스토리지 장치 및 그 제어 방법 - Google Patents

스토리지 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102288546B1
KR102288546B1 KR1020150122630A KR20150122630A KR102288546B1 KR 102288546 B1 KR102288546 B1 KR 102288546B1 KR 1020150122630 A KR1020150122630 A KR 1020150122630A KR 20150122630 A KR20150122630 A KR 20150122630A KR 102288546 B1 KR102288546 B1 KR 102288546B1
Authority
KR
South Korea
Prior art keywords
storage device
performance information
target
maximum
memory cell
Prior art date
Application number
KR1020150122630A
Other languages
English (en)
Other versions
KR20170025738A (ko
Inventor
노강호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150122630A priority Critical patent/KR102288546B1/ko
Priority to US15/217,957 priority patent/US9904478B2/en
Publication of KR20170025738A publication Critical patent/KR20170025738A/ko
Application granted granted Critical
Publication of KR102288546B1 publication Critical patent/KR102288546B1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Abstract

스토리지 장치 및 그 제어 방법이 제공된다. 스토리지 장치의 제어 방법은, 외부 장치로부터 목표 성능 정보(Target Performance Information, TPI)를 수신하고, 상기 목표 성능 정보와 SSD 내부의 최대 성능 정보(Maximum Performance Information, MPI)를 비교하고, 상기 목표 성능 정보에서 요구하는 목표 처리량 값이 상기 최대 성능 정보의 최대 처리량 값보다 낮은 경우, 상기 SSD의 메모리 셀에 대한 ISPP(Incremental Step Pulse Program) 시간을 연장시키는 것을 포함한다.

Description

스토리지 장치 및 그 제어 방법{STORAGE DEVICE AND METHOD FOR CONTROLLNG THEREOF}
본 발명은 스토리지 장치 및 그 제어 방법에 관한 것이다.
스토리지 장치, 예컨대 SSD(Solid State Drive)의 성능은 계속 향상되고 있다. SSD의 저장 용량이 커지고 있을 뿐만 아니라 SSD가 데이터를 라이트(write)하거나 리드(read)하는 대역폭(bandwith) 역시 증가하고 있다. 그런데 SSD에 데이터를 저장하거나 읽어들이는 외부 장치, 예컨대 호스트 장치는 SSD의 최대 대역폭을 미지원하는 장치를 포함할 수 있고, 한편으로 필요에 따라 SSD의 대역폭을 전부 사용하지 않는 경우도 있다.
본 발명이 해결하려는 과제는 SSD의 대역폭을 제한적으로 사용하여 SSD의 수명 연장을 도모하는 스토리지 장치를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는 SSD의 대역폭을 제한적으로 사용하여 SSD의 수명 연장을 도모하는 스토리지 장치의 제어 방법을 제공하는 것이다.
본 발명이 해결하려는 과제는 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 스토리지 장치의 제어 방법은, 외부 장치로부터 목표 성능 정보(Target Performance Information, TPI)를 수신하고, 목표 성능 정보와 SSD 내부의 최대 성능 정보(Maximum Performance Information, MPI)를 비교하고, 목표 성능 정보에서 요구하는 목표 처리량 값이 최대 성능 정보의 최대 처리량 값보다 낮은 경우, SSD의 메모리 셀에 대한 ISPP(Incremental Step Pulse Program) 시간을 연장시키는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 처리량 값은 상기 SSD의 대역폭 값을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 ISPP 시간을 연장시키는 것은 상기 ISPP의 제1 스텝 내지 제2 스텝 간의 시간 간격을 증가시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 스텝 및 상기 제2 스텝은 각각 상기 ISPP의 프로그램 스텝 또는 검증 스텝을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 스텝은 최초 프로그램 스텝을 포함하고 상기 제2 스텝은 최후 검증 스텝을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 외부 장치로부터 상기 SSD에 기록되는 데이터의 패턴에 관한 데이터 패턴 정보(Data Pattern Information, DPI)를 수신하고, 상기 데이터 패턴 정보를 이용하여 가비지 컬렉팅 오버헤드(garbage collecting overhead)를 연산하는 것을 더 포함하고, 상기 ISPP 시간을 연장시키는 것은, 상기 목표 처리량 값이 상기 가비지 컬렉팅 오버헤드를 감안한 상기 최대 처리량보다 낮은 경우, 상기 ISPP 시간을 연장시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 데이터 패턴 정보는 순차적 액세스와 랜덤 액세스 간의 비율 정보를 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 랜덤 액세스가 행해지는 데이터 패턴에 대한 가비지 컬렉팅 오버헤드는 상기 순차적 액세스가 행해지는 데이터 패턴에 대한 가비지 컬렉팅 오버헤드보다 클 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 셀은 제1 레벨 메모리 셀을 포함하고, 상기 방법은, 상기 목표 처리량 값이 상기 최대 처리량 값보다 높은 경우, 상기 제1 레벨 메모리 셀을 상기 제1 레벨 메모리 셀과 다른 타입의 제2 레벨 메모리 셀의 대역폭으로 사용하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 레벨 메모리 셀의 단위 셀 당 저장 비트 수는 상기 제2 레벨 메모리 셀의 단위 셀 당 저장 비트 수보다 클 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 레벨 메모리 셀을 제2 레벨 메모리 셀의 대역폭으로 사용하는 것은 상기 제1 레벨 메모리 셀의 단위 셀 당 저장 비트 수의 일부만을 사용하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 레벨 메모리 셀은 MLC(Multiple Level Cell), TLC(Triple Level Cell), 및 QLC(Quad Level Cell) 중 적어도 하나을 포함하고, 상기 제2 레벨 메모리 셀은 SLC(Single Level Cell), MLC(Multiple Level Cell) 및 TLC(Triple Level Cell) 중 적어도 하나를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 스토리지 장치의 제어 방법은, 외부 장치로부터 목표 성능 정보(Target Performance Information, TPI)를 수신하고, 목표 성능 정보의 목표 대역폭과 SSD 내부의 최대 성능 정보(Maximum Performance Information, MPI)의 최대 대역폭을 비교하고, 비교 결과에 따라 SSD의 동작 모드를 미리 설정된 제1 모드 또는 제2 모드 중에서 선택하는 것을 포함하고, 제1 모드에서 동작하는 SSD의 메모리 셀에 대한 프로그램 시간은, 제2 모드에서 동작하는 메모리 셀에 대한 프로그램 시간보다 길다.
본 발명의 몇몇의 실시예에서, 상기 제1 모드는 수명 우선 모드이고, 상기 제2 모드는 성능 우선 모드일 수 있다.
본 발명의 몇몇의 실시예에서, 상기 프로그램 시간은 ISPP(Incremental Step Pulse Program) 시간을 포함하고, 상기 제1 모드의 ISPP 시간은 상기 제2 모드의 ISPP 시간보다 길 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 모드에서 상기 ISPP의 최초 프로그램 스텝 내지 최후 프로그램 스텝 간의 시간 간격은 상기 제2 모드에서 상기 ISPP의 최초 프로그램 스텝 내지 최후 프로그램 스텝 간의 시간 간격보다 길 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 셀은 제1 레벨 메모리 셀을 포함하고, 상기 방법은, 상기 SSD는 상기 제1 모드에서 상기 제1 레벨 메모리 셀의 대역폭으로 데이터를 액세스하고, 상기 제2 모드에서 상기 제1 레벨 메모리 셀과 다른 타입의 제2 레벨 메모리 셀의 대역폭으로 데이터를 액세스하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 제1 레벨 메모리 셀의 단위 셀 당 저장 비트 수는 상기 제2 레벨 메모리 셀의 단위 셀 당 저장 비트 수보다 클 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 스토리지 장치는, 외부 장치로부터 목표 성능 정보(Target Performance Information, TPI)를 수신하고, 목표 성능 정보와, 내부의 최대 성능 정보(Maximum Performance Information, MPI)를 비교하는 성능 평가 유닛(Performance Evaluation Unit)과, 목표 성능 정보에서 요구하는 목표 처리량 값이 최대 성능 정보의 최대 처리량 값보다 낮은 경우, SSD의 메모리 셀에 대한 ISPP(Incremental Step Pulse Program) 시간을 연장시키는 ISPP 제어 유닛(ISPP Control Unit)을 포함하는 스토리지 컨트롤러; 및 스토리지 컨트롤러에 의해 제어되고, 연장된 ISPP 시간으로 메모리 셀을 프로그램하는 플래시 메모리를 포함한다.
본 발명의 몇몇의 실시예에서, 상기 성능 평가 유닛은, 상기 외부 장치로부터 상기 스토리지 장치에 기록되는 데이터의 패턴에 관한 데이터 패턴 정보(Data Pattern Information, DPI)를 수신하고, 상기 데이터 패턴 정보를 이용하여 가비지 컬렉팅 오버헤드(garbage collecting overhead)를 연산하고, 상기 ISPP 제어 유닛은, 상기 목표 처리량 값이 상기 가비지 컬렉팅 오버헤드를 감안한 상기 최대 처리량보다 낮은 경우, 상기 ISPP 시간을 연장시킬 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 스토리지 컨트롤러를 설명하기 위한 개략도이다.
도 3은 본 발명의 일 실시예 따른 메모리 셀에 ISPP(Incremental Step Pulse Program)를 수행하는 것을 설명하기 위한 개략도이다.
도 4는 본 발명의 일 실시예 따른 ISPP 시간(TPROG)을 설명하기 위한 개략도이다.
도 5는 본 발명의 일 실시예에 따른 스토리지 장치의 동작 모드를 설명하기 위한 개략도이다.
도 6은 본 발명의 다른 실시예에 따른 스토리지 시스템을 설명하기 위한 개략도이다.
도 7은 본 발명의 다른 실시예에 따른 스토리지 컨트롤러를 설명하기 위한 개략도이다.
도 8은 본 발명의 다른 실시예에 따른 스토리지 장치의 동작 모드를 설명하기 위한 개략도이다.
도 9는 본 발명의 일 실시예에 따른 스토리지 장치의 제어 방법을 설명하기 위한 순서도이다.
도 10은 본 발명의 다른 실시예에 따른 스토리지 장치의 제어 방법을 설명하기 위한 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 설명하기 위한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템(1)은 호스트 장치(100)(또는 외부 장치) 및 스토리지 장치(200)를 포함한다.
호스트 장치(100)는 데이터 입출력 요청을 스토리지 장치(200)에 송신한다. 상기 데이터 입출력 요청은 데이터의 라이트(write), 리드(read), 이레이즈(erase) 등의 데이터 입출력 명령을 포함할 수 있다. 호스트(100)는 스토리지 장치(200)에 대한 상기 데이터 입출력 명령을 사용자로부터 입력받거나, 상기 호스트(100)에서 실행되는 소프트웨어로부터 수신할 수 있다. 본 발명의 몇몇의 실시예에서, 호스트(100)는 예를 들면 데스크탑을 비롯한 개인용 컴퓨터, 서버 컴퓨터, 노트북을 비롯한 휴대용 컴퓨터 및 셀룰러폰, 스마트폰, 태블릿, MP3, PMP(portable multimedia player), PDA(Personal Digital Assistant), 디지털 카메라, 캠코더 등을 비롯한 휴대용 장치를 포함할 수 있다.
스토리지 장치(200)는 스토리지 컨트롤러(210) 및 플래시 메모리(220)를 포함한다. 본 발명의 몇몇의 실시예에서, 스토리지 장치(200)는 SSD(Solid State Drive)일 수 있다. 스토리지 컨트롤러(210)는 플래시 메모리(220)를 전반적으로 제어한다. 플래시 메모리(220)는 스토리지 컨트롤러(210)의 제어에 따라, 데이터 입출력 동작, 예컨대, 라이트, 리드, 이레이즈 동작 등을 수행할 수 있다.
여기서 특히 주목할 점은, 호스트 장치(100)가 스토리지 컨트롤러(210)에 목표 성능 정보(Target Performance Information, TPI)를 제공한다는 점이다. 여기서 목표 성능 정보는 호스트 장치(100)가 요구하는 목표 처리량(throughput) 값을 말한다. 예를 들어, 목표 처리량 값은 스토리지 장치(200)의 대역폭(bandwidth), 예컨대 3 GB/s로 표현될 수 있다. 또 다른 예로, 목표 처리량 값은 데이터 리드(read)시 4 GB/s, 데이터 라이트(write)시 2 GB/s와 같이 복수의 값들을 포함할 수도 있다. 스토리지 컨트롤러(210)는 외부 장치, 즉, 호스트 장치(100)로부터 수신한 목표 성능 정보를 이용하여, 플래시 메모리(220)에 대한 프로그램(PM) 속도를 조절할 수 있다. 이에 관한 상세한 내용은 도 2와 관련하여 후술하도록 한다.
플래시 메모리(220)는 컨트롤러(210)로부터 제공받은 데이터를 메모리 셀에 저장할 수 있다. 구체적으로, 플래시 메모리(220)는 데이터를 저장하는 복수개의 셀 어레이를 포함할 수 있다. 셀 어레이는 복수개의 플레인(PL1~PLi)(단, i는 자연수)을 포함할 수 있다. 플레인(PL1~PLi)은 복수개의 블록(BLK11~BLnm)(단, n, m은 자연수)을 포함하며, 블록(BLK11~BLKnm)은 복수개의 페이지(PAGE1~PAGEk)(단, k는 자연수)를 포함한다. 블록(BLK11~BLKnm)은 이레이즈 명령어를 수행하는 단위, 즉 이레이즈 동작이 동시에 이루어지는 단위일 수 있다. 페이지(PAGE1~PAGEk)는 프로그램 및 리드 명령어를 수행하는 단위, 즉, 프로그램 및 리드 동작이 동시에 이루어지는 단위일 수 있다.
본 발명의 몇몇의 실시예에서, 플래시 메모리(220)는 EEPROM(Electrically Erasable Programmable Read-Only Memory), FRAM(Ferroelectrics Random Access Memory), PRAM(Phase-change Random Access Memory), MRAM(Magnetic Random Access Memory)를 포함하는 비휘발성 메모리 장치일 수 있다. 본 발명의 몇몇의 실시예에서 플래시 메모리(220)는 낸드(NAND) 플래시 메모리 장치일 수 있으나, 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 스토리지 컨트롤러를 설명하기 위한 개략도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 스토리지 컨트롤러(210)는 성능 평가 유닛(Performance Evaluation Unit, PEU)(212) 및 ISPP 제어 유닛(ISPP Control Unit, ISPP CTRL)(214)을 포함한다.
성능 평가 유닛(212)은 목표 성능 정보(TPI) 및 내부의 최대 성능 정보(Maximum Performance Information, MPI)를 수신하고, 목표 성능 정보(TPI)와 최대 성능 정보(MPI)를 비교한다. 여기서 목표 성능 정보(TPI)는 외부 장치, 즉 호스트 장치(100)로부터 수신한 것이고, 최대 성능 정보(MPI)는 스토리지 장치(200) 내에 미리 설정되어 있는 것일 수 있다.
ISPP 제어 유닛(214)은 목표 성능 정보(TPI)에서 요구하는 목표 처리량 값이 최대 성능 정보(MPI)의 최대 처리량 값보다 낮은 경우, 스토리지 장치(200)의 메모리 셀에 대한 ISPP(Incremental Step Pulse Program) 시간(TPROG)을 연장시킨다. 이하에서는 설명의 편의를 위해 처리량 값은 스토리지 장치(200)의 대역폭 값을 의미하는 것으로 가정하지만, 이에 한정되는 것은 아니다.
예를 들어, 호스트(100)의 목표 처리량 값이 6 GB/s이고 스토리지 장치(200)의 최대 처리량 값이 6 GB/s인 경우, 스토리지 컨트롤러(210)는 플래시 메모리(220)의 메모리 셀에 대한 ISPP 시간(TPROG)이 프로그램 가능한 최소한의 시간이 되도록, 최대 처리량 값에 대응하는 최대 속도로 메모리 셀을 프로그램(PM)한다.
이와 다르게, 예를 들어, 호스트(100)의 목표 처리량 값이 3 GB/s이고 스토리지 장치(200)의 최대 처리량 값이 6 GB/s인 경우, 스토리지 컨트롤러(210)는 플래시 메모리(220)의 메모리 셀에 대한 ISPP 시간(TPROG)을 연장시켜, 메모리 셀을 프로그램(PM)하는 속도를 감소시킨다. ISPP 시간(TPROG)을 연장시키는 상세한 내용에 대해서는 도 3 및 도 4와 관련하여 후술하도록 한다.
이와 같이 호스트(100)의 목표 처리량 값이 스토리지 장치(200)의 최대 처리량 값보다 낮은 경우, 스토리지 장치(200)의 대역폭을 제한적으로 사용하면 스토리지 장치(200)의 수명 연장을 꾀할 수 있다. 최대 속도로 메모리 셀을 프로그램하는 것은 메모리 셀의 수명을 단축시켜 결국 스토리지 장치(200)의 수명에 영향을 주기 때문이다. 특히 대규모의 스토리지 장치를 이용하는 데이터 센터와 같이, 데이터 입출력 속도보다 데이터 안정성을 확보하는 것이 중요한 경우에는 높은 데이터 입출력 속도가 가능한 스토리지 장치를 제한적으로 사용함으로써 스토리지 장치의 수명 연장을 도모할 수 있다.
도 3은 본 발명의 일 실시예 따른 메모리 셀에 ISPP(Incremental Step Pulse Program)를 수행하는 것을 설명하기 위한 개략도이고, 도 4는 본 발명의 일 실시예 따른 ISPP 시간(TPROG)을 설명하기 위한 개략도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메모리 셀이 프로그램하기 위한 ISPP 기법은 메모리 셀의 상태(state)를 변경할 때 복수 회의 스텝을 이용한다. 예를 들어, 제1 상태(300)에 해당하는 셀들의 전압을 변경하여 제2 상태(310)로 만들기 위해, 복수 회의 중간 스텝(302, 304, 306, 308)을 거친다. 각각의 스텝들 사이에 변화하는 전압(VISPP)은 비교적 일정하게 유지될 수 있다.
이어서 도 4를 참조하면, ISPP 기법에서의 스텝은 프로그램 스텝 또는 검증 스텝을 포함할 수 있다. 시간(t0)에서는 제1 프로그램 스텝을 수행하고, 시간(t1)에서는 제1 검증 스텝을 수행한다. 여기서 제1 프로그램 스텝은 전압(VS)에 해당되고 제1 검증 스텝은 전압(VVFY)에 해당한다. 다음으로 시간(t2)에서는 제2 프로그램 스텝을 수행하고, 시간(t3)에서는 제2 검증 스텝을 수행한다. 여기서 제2 프로그램 스텝은 전압(VS+VISPP)에 해당되고 제2 검증 스텝은 전압(VVFY)에 해당한다. 이와 같은 과정을 반복하여, 시간(t8)에서는 제5 프로그램 스텝을 수행하고, 시간(t9)에서는 제5 검증 스텝을 수행한다. 여기서 제5 프로그램 스텝은 전압(VS+4*VISPP)에 해당되고 제5 검증 스텝은 전압(VVFY)에 해당한다.
ISPP 제어 유닛(214)은 목표 성능 정보(TPI)에서 요구하는 목표 처리량 값이 최대 성능 정보(MPI)의 최대 처리량 값보다 낮은 경우, 스토리지 장치(200)의 메모리 셀에 대한 ISPP 시간(TPROG)을 연장하는데, 여기서 ISPP 시간(TPROG)은 예를 들어 시간(t0)의 제1 프로그램 스텝부터 시간(t9)의 제5 검증 스텝까지의 시간 간격을 의미할 수 있다.
그러나 본 발명의 범위는 이에 제한되지 않으며, ISPP 제어 유닛(214)이 제어하는 ISPP 시간(TPROG)은 임의의 제1 스텝 내지 제2 스텝까지의 시간 간격을 의미할 수 있다. 예를 들어, ISPP 시간(TPROG)은 시간(t0)의 제1 프로그램 스텝부터 시간(t8)의 제5 프로그램 스텝까지의 시간 간격을 의미할 수 있다. 또 다른 예로, ISPP 시간(TPROG)은 시간(t2)의 제2 프로그램 스텝부터 시간(t7)의 제4 검증 스텝까지의 시간 간격을 의미할 수도 있다.
이와 같은 방식으로, ISPP 제어 유닛(214)은 특정 스텝과 다른 특정 스텝 사이의 시간 간격을 증가시켜 스토리지 장치(200)의 메모리 셀에 대한 ISPP 시간(TPROG)을 연장할 수 있다.
도 5는 본 발명의 일 실시예에 따른 스토리지 장치의 동작 모드를 설명하기 위한 개략도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 스토리지 장치(200)는 미리 설정된 복수의 동작 모드 중 하나로 동작할 수 있다.
구체적으로, 스토리지 컨트롤러(210)의 성능 평가 유닛(212)은 목표 성능 정보(TPI) 및 내부의 최대 성능 정보(MPI)를 수신하고, 목표 성능 정보(TPI)와 최대 성능 정보(MPI)를 비교한다. 여기서 목표 성능 정보(TPI)는 외부 장치, 즉 호스트 장치(100)로부터 수신한 것이고, 최대 성능 정보(MPI)는 스토리지 장치(200) 내에 미리 설정되어 있는 것일 수 있다.
ISPP 제어 유닛(214)은 목표 성능 정보(TPI)에서 요구하는 목표 대역폭과 최대 성능 정보(MPI)의 최대 대역폭을 비교하고, 그 비교 결과에 따라 스토리지 장치(200)의 동작 모드를 미리 설정된 복수의 동작 모드 중 하나로 선택할 수 있다. 예를 들어, 복수의 동작 모드 중 제1 모드가 수명 우선 모드이고, 제2 모드가 성능 우선 모드인 경우, 제1 모드에서 동작하는 스토리지 장치(200)의 메모리 셀에 대한 프로그램 시간은 제2 모드에서 동작하는 메모리 셀에 대한 프로그램 시간보다 길 수 있다. 본 발명의 몇몇의 실시예에서, 상기 프로그램 시간은 스토리지 장치(200)의 메모리 셀에 대한 ISPP 시간(TPROG)일 수 있다. 이러한 경우, 제1 모드의 ISPP 시간(TPROG)은 제2 모드의 ISPP 시간(TPROG)보다 길 수 있다.
도 5를 다시 참조하면, 본 발명의 몇몇의 실시예에서 스토리지 장치(200)의 동작 모드는 2 가지 이상의 동작 모드, 즉 제1 모드 내지 제3 모드를 포함할 수 있다. 제1 모드는 스토리지 장치(200)의 성능을 최우선으로 하는 동작 모드로서 ISPP 시간(TPROG)은 T1값을 가진다. 다음으로, 제3 모드는 스토리지 장치(200)의 수명을 최우선으로 하는 동작 모드로서 ISPP 시간(TPROG)은 T1보다 큰 T3값을 가진다. 제2 모드는 제1 모드와 제2 모드의 절충적인 모드로서 ISPP 시간(TPROG)은 T1보다 크고 T3보다 작은 T2값을 가진다. 본 발명의 몇몇의 실시예에서, 이러한 복수의 동작 모드는 스토리지 장치(200)의 제조시에 결정될 수도 있고, 스토리지 장치(200)의 초기화 단계(예컨대, 펌웨어 업데이트)에서 결정될 수도 있다.
이와 같이 호스트(100)의 목표 대역폭과 스토리지 장치(200)의 최대 대역폭을 비교하여, 스토리지 장치(200)의 대역폭을 제한적으로 사용하는 미리 설정된 동작 모드를 선택함으로 해서 용이하게 스토리지 장치(200)의 수명 연장과 성능적인 측면을 모두 고려할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 스토리지 시스템을 설명하기 위한 개략도이다.
도 6을 참조하면, 본 발명의 다른 실시예에 따른 스토리지 시스템(2)은 호스트 장치(100)(또는 외부 장치) 및 스토리지 장치(200)를 포함한다. 도 1에 도시된 실시예와 다른 점은, 여기서 특히 주목할 점은, 호스트 장치(100)가 스토리지 컨트롤러(210)에 목표 성능 정보(TPI)뿐 아니라 데이터 패턴 정보(Data Pattern Information, DPI)를 제공한다는 점이다. 여기서 데이터 패턴 정보는 호스트 장치(100)로부터 스토리지 장치(200)에 기록되는 데이터의 패턴에 관한 정보를 말한다. 예를 들어, 데이터 패턴 정보는 순차적 액세스와 랜덤 액세스 간의 비율 정보를 포함할 수 있다. 스토리지 컨트롤러(210)는 외부 장치, 즉, 호스트 장치(100)로부터 수신한 데이터 패턴 정보를 이용하여 가비지 컬렉팅 오버헤드(garbage collecting overhead)를 연산하고, 가비지 컬렉팅 오버헤드를 감안한 목표 성능 정보(TPI)를 이용하여 플래시 메모리(220)에 대한 프로그램(PM) 속도를 조절할 수 있다.
예를 들어 랜덤 액세스가 행해지는 데이터 패턴에 대한 가비지 컬렉팅 오버헤드는 순차적 액세스가 행해지는 데이터 패턴에 대한 가비지 컬렉팅 오버헤드보다 클 수 있는데, 스토리지 장치(200)의 성능을 제한하면서 수명 연장을 도모하기 위한 프로그램(PM) 속도 조절에 있어서, 가비지 컬렉팅 오버헤드로 인한 성능 저하의 효과를 감안하는 것이다. 이에 관한 상세한 내용은 도 7와 관련하여 후술하도록 한다.
도 7은 본 발명의 다른 실시예에 따른 스토리지 컨트롤러를 설명하기 위한 개략도이다.
도 7을 참조하면, 본 발명의 다른 실시예에 따른 스토리지 컨트롤러(210)는 성능 평가 유닛(213) 및 ISPP 제어 유닛(214)을 포함한다.
성능 평가 유닛(213)은 목표 성능 정보(TPI), 데이터 패턴 정보(DPI) 및 내부의 최대 성능 정보(MPI)를 수신하고, 데이터 패턴 정보(DPI)를 이용하여 가비지 컬렉팅 오버헤드를 연산한다. 이후, 성능 평가 유닛(213)은 목표 성능 정보(TPI)와 가비지 컬렉팅 오버헤드를 감안한 최대 성능 정보(MPI)를 비교한다. 여기서 목표 성능 정보(TPI) 및 데이터 패턴 정보(DPI)는 외부 장치, 즉 호스트 장치(100)로부터 수신한 것이고, 최대 성능 정보(MPI)는 스토리지 장치(200) 내에 미리 설정되어 있는 것일 수 있다.
ISPP 제어 유닛(214)은 목표 성능 정보(TPI)에서 요구하는 목표 처리량 값이 데이터 패턴 정보(DPI)를 이용하여 연산된 가비지 컬렉팅 오버헤드를 감안한 최대 성능 정보(MPI)의 최대 처리량 값보다 낮은 경우, 스토리지 장치(200)의 메모리 셀에 대한 ISPP 시간(TPROG)을 연장시킨다.
예를 들어, ISPP 시간이 제1 시간인 경우 스토리지 장치(200)가 최대 성능으로 동작하고, ISPP 시간이, 예컨대 제1 시간의 2 배인 제2 시간인 경우 스토리지 장치(200)의 성능이 제한되며 수명이 연장된다고 가정하자. 만일 데이터 패턴 정보(DPI)로부터 순차적 액세스가 행해지는 데이터 패턴이 대부분이라는 정보를 알게 된 경우, 가비지 컬렉팅 오버헤드를 고려한 수명 연장을 위한 제2 시간은 가비지 컬렉팅 오버헤드로 인한 성능 저하를 감안하여, 예컨대 0.75 * 제2 시간으로 연산될 수 있다. 이와 다르게, 만일 데이터 패턴 정보(DPI)로부터 랜덤 액세스가 행해지는 데이터 패턴이 대부분이라는 정보를 알게 된 경우, 가비지 컬렉팅 오버헤드를 고려한 수명 연장을 위한 제2 시간은 가비지 컬렉팅 오버헤드로 인한 성능 저하를 감안하여, 예컨대 0.45 * 제2 시간으로 연산될 수 있다. 즉, 가비지 컬렉팅 오버헤드로 인한 성능 저하가 클 수록 ISPP 시간(TPROG)의 증가율은 감소할 수 있다.
이와 같이 호스트(100)의 목표 처리량 값이 스토리지 장치(200)의 최대 처리량 값보다 낮은 경우, 스토리지 장치(200)의 대역폭을 제한적으로 사용하면 스토리지 장치(200)의 수명 연장을 꾀할 수 있다. 최대 속도로 메모리 셀을 프로그램하는 것은 메모리 셀의 수명을 단축시켜 결국 스토리지 장치(200)의 수명에 영향을 주기 때문이다. 또한, 데이터 패턴을 분석하여 가비지 컬렉팅 오버헤드를 고려하여 스토리지 장치(200)의 대역폭을 제한함으로써 더 정교한 스토리지 장치(200)의 제어가 가능하다.
도 8은 본 발명의 다른 실시예에 따른 스토리지 장치의 동작 모드를 설명하기 위한 개략도이다.
도 8를 참조하면, 본 발명의 일 실시예에 따른 스토리지 장치(200)는 미리 설정된 복수의 동작 모드 중 하나로 동작할 수 있다.
구체적으로, 스토리지 컨트롤러(210)의 성능 평가 유닛(212)은 목표 성능 정보(TPI) 및 내부의 최대 성능 정보(MPI)를 수신하고, 목표 성능 정보(TPI)와 최대 성능 정보(MPI)를 비교한다. 여기서 목표 성능 정보(TPI)는 외부 장치, 즉 호스트 장치(100)로부터 수신한 것이고, 최대 성능 정보(MPI)는 스토리지 장치(200) 내에 미리 설정되어 있는 것일 수 있다.
ISPP 제어 유닛(214)은 목표 성능 정보(TPI)에서 요구하는 목표 대역폭과 최대 성능 정보(MPI)의 최대 대역폭을 비교하고, 그 비교 결과에 따라 스토리지 장치(200)의 동작 모드를 미리 설정된 복수의 동작 모드 중 하나로 선택할 수 있다. 예를 들어, 플래시 메모리(220)는 제1 레벨 메모리 셀로 이루어져 있다고 가정하자. 복수의 동작 모드 중 제1 모드가 수명 우선 모드이고, 제2 모드가 성능 우선 모드인 경우, 제1 모드에서 동작하는 스토리지 장치(200)의 메모리 셀에 대한 프로그램 시간은 제2 모드에서 동작하는 메모리 셀에 대한 프로그램 시간보다 길 수 있다.
이를 위해, 상기 제1 레벨 메모리 셀을 상기 제1 레벨 메모리 셀과 다른 타입의 제2 레벨 메모리 셀의 대역폭으로 사용할 수 있다. 여기서 상기 제1 레벨 메모리 셀(예컨대 TLC(Triple Level Cell))의 단위 셀 당 저장 비트 수는 상기 제2 레벨 메모리 셀(예컨대 MLC(Multiple Level Cell))의 단위 셀 당 저장 비트 수보다 클 수 있다. 본 발명의 몇몇의 실시예에서, 제1 레벨 메모리 셀을 제2 레벨 메모리 셀의 대역폭으로 사용하는 것은 제1 레벨 메모리 셀의 단위 셀 당 저장 비트 수의 일부만을 사용하는 것으로 구현될 수 있다.
본 발명의 몇몇의 실시예에서, 제1 레벨 메모리 셀이 MLC(Multiple Level Cell)인 경우, 제2 레벨 메모리 셀은 SLC(Single Level Cell)일 수 있다. 본 발명의 다른 몇몇의 실시예에서, 제1 레벨 메모리 셀이 TLC(Triple Level Cell)인 경우, 제2 레벨 메모리 셀은 SLC(Single Level Cell) 또는 MLC(Multiple Level Cell)일 수 있다. 본 발명의 또 다른 몇몇의 실시예에서, 제1 레벨 메모리 셀이 QLC(Quad Level Cell)인 경우, 제2 레벨 메모리 셀은 SLC(Single Level Cell), MLC(Multiple Level Cell) 또는 TLC(Triple Level Cell)일 수 있다.
도 5를 다시 참조하면, 본 발명의 몇몇의 실시예에서, 플래시 메모리(220)의 메모리 셀은 TLC(Triple Level Cell)이고, 스토리지 장치(200)의 동작 모드는 2 가지 이상의 동작 모드, 즉 제1 모드 내지 제3 모드를 포함할 수 있다. 제1 모드는 스토리지 장치(200)의 성능을 최우선으로 하는 동작 모드로서 메모리 셀 동작 모드는 SLC(Single Level Cell) 모드이다. 다음으로, 제3 모드는 스토리지 장치(200)의 수명을 최우선으로 하는 동작 모드로서 메모리 셀 동작 모드는 TLC(Triple Level Cell) 모드이다. 제2 모드는 제1 모드와 제2 모드의 절충적인 모드로서 메모리 셀 동작 모드는 MLC(Multiple Level Cell)이다. 본 발명의 몇몇의 실시예에서, 이러한 복수의 동작 모드는 스토리지 장치(200)의 제조시에 결정될 수도 있고, 스토리지 장치(200)의 초기화 단계(예컨대, 펌웨어 업데이트)에서 결정될 수도 있다.
이와 같이 호스트(100)의 목표 대역폭과 스토리지 장치(200)의 최대 대역폭을 비교하여, 스토리지 장치(200)의 대역폭을 제한적으로 사용하는 미리 설정된 동작 모드를 선택함으로 해서 용이하게 스토리지 장치(200)의 수명 연장과 성능적인 측면을 모두 고려할 수 있다.
도 9는 본 발명의 일 실시예에 따른 스토리지 장치의 제어 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 스토리지 장치의 제어 방법은 호스트 장치(100)로부터 목표 성능 정보(TPI)를 수신(S901)하고, 목표 성능 정보(TPI)와 내부의 최대 성능 정보(MPI)를 비교(S903)하는 것을 포함한다. 만일 목표 성능 정보(TPI)의 목표 처리량 값이 최대 성능 정보(MPI)의 처리량 값 이하인 경우, ISPP 시간을 연장(S905)시킨다.
도 10은 본 발명의 다른 실시예에 따른 스토리지 장치의 제어 방법을 설명하기 위한 순서도이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 스토리지 장치의 제어 방법은 호스트 장치(100)로부터 목표 성능 정보(TPI) 및 데이터 패턴 정보(DPI)를 수신(S1001)하고, 목표 성능 정보(TPI)와, 데이터 패턴 정보(DPI)를 이용하여 연산된 가비지 컬렉팅 오버헤드(GCO)를 감안한 내부의 최대 성능 정보(MPI)를 비교(S1003)하는 것을 포함한다. 만일 목표 성능 정보(TPI)의 목표 처리량 값이 가비지 컬렉팅 오버헤드(GCO)를 감안한 최대 성능 정보(MPI)의 처리량 값 이하인 경우, ISPP 시간을 연장(S1005)시킨다.
본 발명의 다양한 실시예에 따라, 이와 같이 호스트(100)의 목표 처리량 값이 스토리지 장치(200)의 최대 처리량 값보다 낮은 경우, 스토리지 장치(200)의 대역폭을 제한적으로 사용하면 스토리지 장치(200)의 수명 연장을 꾀할 수 있다. 최대 속도로 메모리 셀을 프로그램하는 것은 메모리 셀의 수명을 단축시켜 결국 스토리지 장치(200)의 수명에 영향을 주기 때문이다. 특히 대규모의 스토리지 장치를 이용하는 데이터 센터와 같이, 데이터 입출력 속도보다 데이터 안정성을 확보하는 것이 중요한 경우에는 높은 데이터 입출력 속도가 가능한 스토리지 장치를 제한적으로 사용함으로써 스토리지 장치의 수명 연장을 도모할 수 있다.
또한, 데이터 패턴을 분석하여 가비지 컬렉팅 오버헤드를 고려하여 스토리지 장치(200)의 대역폭을 제한함으로써 더 정교한 스토리지 장치(200)의 제어가 가능하다. 즉, 랜덤 액세스가 행해지는 데이터 패턴에 대한 가비지 컬렉팅 오버헤드는 순차적 액세스가 행해지는 데이터 패턴에 대한 가비지 컬렉팅 오버헤드보다 클 수 있는데, 스토리지 장치(200)의 성능을 제한하면서 수명 연장을 도모하기 위한 프로그램(PM) 속도 조절에 있어서, 가비지 컬렉팅 오버헤드로 인한 성능 저하의 효과를 감안하는 것이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1, 2: 스토리지 시스템 100: 호스트 장치
200: 스토리지 장치 210: 스토리지 컨트롤러
212, 213: 성능 평가 유닛 214: ISPP 제어 유닛
220: 플래시 메모리

Claims (10)

  1. 외부 장치에 연결된 스토리지 장치를 제공하고,
    상기 스토리지 장치는 상기 외부 장치로부터 목표 성능 정보(Target Performance Information, TPI)를 수신하고,
    상기 스토리지 장치는 상기 수신한 목표 성능 정보와 상기 스토리지 장치 내에 미리 설정된 최대 성능 정보(Maximum Performance Information, MPI)를 비교하고,
    상기 스토리지 장치는 상기 목표 성능 정보와 상기 최대 성능 정보를 비교한 것에 응답하여, 상기 스토리지 장치의 메모리 셀에서 수행되는 ISPP(Incremental Step Pulse Program) 동작을 조절하고,
    상기 스토리지 장치의 메모리 셀은 상기 ISPP 동작을 수행하는 것을 포함하는 스토리지 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 ISPP 동작은 제1 스텝 및 제2 스텝을 포함하고,
    상기 ISPP 동작을 조절하는 것은 상기 ISPP 동작의 상기 제1 스텝 내지 제2 스텝 간의 시간 간격을 증가시키는 것을 포함하는 스토리지 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 제1 스텝 및 상기 제2 스텝은 각각 상기 ISPP 동작의 프로그램 스텝 또는 검증 스텝을 포함하는 스토리지 장치의 동작 방법.
  4. 제1항에 있어서,
    상기 스토리지 장치가 상기 스토리지 장치에 의하여 저장되는 데이터의 패턴에 관한 데이터 패턴 정보(Data Pattern Information, DPI)를 수신하고,
    상기 데이터 패턴 정보를 이용하여 가비지 컬렉팅 오버헤드(garbage collecting overhead)를 연산하는 것을 더 포함하고,
    상기 ISPP 동작을 조절하는 것은, 상기 가비지 컬렉팅 오버헤드를 기초로 하는 상기 ISPP 동작을 조절하는 것을 포함하는 스토리지 장치의 동작 방법.
  5. 제1항에 있어서,
    상기 메모리 셀은 제1 레벨 메모리 셀을 포함하고,
    상기 스토리지 장치는, 상기 목표 성능 정보의 목표 처리량 값이 상기 최대 성능 정보의 최대 처리량 값보다 높은 경우, 상기 제1 레벨 메모리 셀을 상기 제1 레벨 메모리 셀과 다른 타입의 제2 레벨 메모리 셀의 대역폭으로 사용하는 것을 더 포함하는 스토리지 장치의 동작 방법.
  6. 외부 장치에 연결된 스토리지 장치를 제공하고,
    상기 스토리지 장치는 상기 외부 장치로부터 목표 성능 정보(Target Performance Information, TPI)를 수신하고,
    상기 스토리지 장치는 상기 수신한 목표 성능 정보의 목표 대역폭과 상기 스토리지 장치 내에 미리 설정된 최대 성능 정보(Maximum Performance Information, MPI)의 최대 대역폭을 비교하여 상기 목표 대역폭이 상기 최대 대역폭보다 큰지 결정하고,
    상기 스토리지 장치는 상기 목표 대역폭과 상기 최대 대역폭을 비교한 것에 기초하여, 상기 스토리지 장치의 메모리 셀의 프로그래밍 모드를 변환하는 것을 포함하는 스토리지 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 프로그래밍 모드를 변환하는 것은,
    상기 목표 대역폭이 상기 최대 대역폭보다 작을 경우, 수명 우선 모드로 변환하고,
    상기 목표 대역폭이 상기 최대 대역폭보다 클 경우, 성능 우선 모드로 변환하는 것을 포함하는 스토리지 장치의 동작 방법.
  8. 제6항에 있어서,
    상기 프로그래밍 모드를 변환하는 것은,
    ISPP(Incremental Step Pulse Program) 동작의 프로그램 시간을 변환하는 것을 포함하는 스토리지 장치의 동작 방법.
  9. 외부 장치에 연결된 스토리지 장치를 제공하고,
    상기 스토리지 장치는 상기 외부 장치로부터 목표 성능 정보를 수신하고,
    상기 스토리지 장치는 상기 수신한 목표 성능 정보와 상기 스토리지 장치 내에 미리 설정된 최대 성능 정보를 비교하여 상기 목표 성능 정보가 상기 최대 성능 정보보다 낮은지 결정하고,
    상기 목표 성능 정보와 상기 최대 성능 정보를 비교한 것이, 상기 스토리지 장치의 상기 최대 성능 정보와 관련된 성능 용량이 상기 목표 성능 정보와 관련된 성능 용량보다 큰 것을 나타내는 경우, 상기 스토리지 장치의 수명을 증가시키도록 상기 스토리지 장치의 메모리 셀에서 수행되는 ISPP 동작을 조절하는 것을 포함하는 스토리지 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 목표 성능 정보와 관련된 상기 성능 용량은 대역폭과 처리량 중 적어도 하나를 포함하는 스토리지 장치의 동작 방법.
KR1020150122630A 2015-08-31 2015-08-31 스토리지 장치 및 그 제어 방법 KR102288546B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150122630A KR102288546B1 (ko) 2015-08-31 2015-08-31 스토리지 장치 및 그 제어 방법
US15/217,957 US9904478B2 (en) 2015-08-31 2016-07-22 Storage device and method for controlling thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150122630A KR102288546B1 (ko) 2015-08-31 2015-08-31 스토리지 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20170025738A KR20170025738A (ko) 2017-03-08
KR102288546B1 true KR102288546B1 (ko) 2021-08-10

Family

ID=58095484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150122630A KR102288546B1 (ko) 2015-08-31 2015-08-31 스토리지 장치 및 그 제어 방법

Country Status (2)

Country Link
US (1) US9904478B2 (ko)
KR (1) KR102288546B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11016924B2 (en) * 2018-03-01 2021-05-25 Samsung Electronics Co., Ltd. System and method for supporting multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-oF) devices
US11397460B2 (en) * 2019-06-20 2022-07-26 Western Digital Technologies, Inc. Intelligent power saving mode for solid state drive (ssd) systems
KR20210083428A (ko) * 2019-12-26 2021-07-07 삼성전자주식회사 메모리 장치, 및 이를 포함하는 전자 기기
KR20210135376A (ko) 2020-05-04 2021-11-15 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 장치의 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050024941A1 (en) 2003-07-30 2005-02-03 M-Systems Flash Disk Pioneers, Ltd. Method of archiving data
JP2008041089A (ja) 2006-08-01 2008-02-21 Internatl Business Mach Corp <Ibm> パフォーマンス・モニタリングを提供するメモリ・システム・方法
US20080126686A1 (en) 2006-11-28 2008-05-29 Anobit Technologies Ltd. Memory power and performance management
JP2010534889A (ja) 2007-07-26 2010-11-11 マイクロン テクノロジー, インク. コントローラの性能要件に基づくプログラミング
US20120320679A1 (en) 2011-05-17 2012-12-20 Sprouse Steven T System and method for minimizing write amplification while maintaining sequential performance using logical group stripping in a multi-bank system
US20130182506A1 (en) 2012-01-13 2013-07-18 Stec, Inc. Programming algorithm for improved flash memory endurance and retention
WO2014033851A1 (ja) 2012-08-29 2014-03-06 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006006694A1 (en) 2004-07-12 2006-01-19 Kabushiki Kaisha Toshiba Storage device and host apparatus
US7502921B2 (en) * 2005-08-02 2009-03-10 Sandisk Corporation Situation sensitive memory performance
KR100909961B1 (ko) * 2006-10-10 2009-07-29 삼성전자주식회사 프로그램 전압 발생 회로 및 방법, 그리고 이를 이용한불휘발성 메모리 장치
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
JP5113433B2 (ja) 2007-06-11 2013-01-09 キヤノン株式会社 メモリコントローラ
KR101568718B1 (ko) 2009-01-15 2015-11-12 삼성전자주식회사 휴대용 단말기에서 버스 인터페이스를 이용한 전력 절감 장치 및 방법
JP2011197792A (ja) 2010-03-17 2011-10-06 Hitachi Ltd 管理装置及び管理方法
JP5159817B2 (ja) 2010-03-25 2013-03-13 株式会社東芝 メモリシステム
US8656088B2 (en) 2011-05-20 2014-02-18 International Business Machines Corporation Optimized flash based cache memory
US8850153B2 (en) 2011-09-30 2014-09-30 International Business Machines Corporation Enabling throttling on average write throughput for solid state storage devices
JP2013164821A (ja) 2012-02-13 2013-08-22 Fujitsu Ltd 評価支援プログラム、評価支援方法および評価支援装置
KR101480424B1 (ko) 2013-03-06 2015-01-13 서울시립대학교 산학협력단 하이브리드 플래시 메모리의 성능과 수명 최적화 장치 및 방법
KR20150014002A (ko) 2013-07-25 2015-02-06 삼성전자주식회사 데이터 전송 속도 관리자를 포함하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법
US8935463B1 (en) 2014-01-03 2015-01-13 Fastor Systems, Inc. Compute engine in a smart SSD exploiting locality of data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050024941A1 (en) 2003-07-30 2005-02-03 M-Systems Flash Disk Pioneers, Ltd. Method of archiving data
JP2008041089A (ja) 2006-08-01 2008-02-21 Internatl Business Mach Corp <Ibm> パフォーマンス・モニタリングを提供するメモリ・システム・方法
US20080126686A1 (en) 2006-11-28 2008-05-29 Anobit Technologies Ltd. Memory power and performance management
JP2010534889A (ja) 2007-07-26 2010-11-11 マイクロン テクノロジー, インク. コントローラの性能要件に基づくプログラミング
US20120320679A1 (en) 2011-05-17 2012-12-20 Sprouse Steven T System and method for minimizing write amplification while maintaining sequential performance using logical group stripping in a multi-bank system
US20130182506A1 (en) 2012-01-13 2013-07-18 Stec, Inc. Programming algorithm for improved flash memory endurance and retention
WO2014033851A1 (ja) 2012-08-29 2014-03-06 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
KR20170025738A (ko) 2017-03-08
US20170060443A1 (en) 2017-03-02
US9904478B2 (en) 2018-02-27

Similar Documents

Publication Publication Date Title
US11635899B2 (en) SLC cache management
CN111667868B (zh) 通过平衡格雷编码的多阶段编程的系统和方法
US11720489B2 (en) Scheme to improve efficiency of device garbage collection in memory devices
US9281068B2 (en) Nonvolatile memory and related reprogramming method
US11567682B2 (en) Temperature management for a memory device using memory trim sets
US11487612B2 (en) Multiple memory devices having parity protection
US10732856B2 (en) Erase health metric to rank memory portions
KR20140072118A (ko) 플래시 메모리 시스템
KR102288546B1 (ko) 스토리지 장치 및 그 제어 방법
CN107924700B (zh) 自适应多阶段擦除
US10430108B2 (en) Concurrent copying of first and second subsets of pages from media such as SLC NAND to media such as QLC or MLC NAND for completion of copying of data
US20230205628A1 (en) Read retry scratch space
EP3841455A1 (en) Memory sub-system for increasing bandwidth for command scheduling
US20120195118A1 (en) Semiconductor memory apparatus, data programming method thereof, and memory system including the same
US20130042051A1 (en) Program method for a non-volatile memory
US11887673B2 (en) Memory device for performing read operation and method of operating the same
CN115376596A (zh) 存储器设备和该存储器设备的操作方法
US11417402B2 (en) Storage device and operating method thereof
US20230133227A1 (en) Dynamic step voltage level adjustment
CN115620787A (zh) 用于执行编程操作的存储器装置及其操作方法
US20240061601A1 (en) Adaptive memory partition closure time
US20240152287A1 (en) Adaptive generation of memory partitions
CN117636971A (zh) 用于校正性编程及功率损耗管理的方法、系统及非暂时性计算机可读存储媒体
JP2012164072A (ja) メモリコントローラ

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