KR20130048389A - 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 - Google Patents
스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 Download PDFInfo
- Publication number
- KR20130048389A KR20130048389A KR1020110113217A KR20110113217A KR20130048389A KR 20130048389 A KR20130048389 A KR 20130048389A KR 1020110113217 A KR1020110113217 A KR 1020110113217A KR 20110113217 A KR20110113217 A KR 20110113217A KR 20130048389 A KR20130048389 A KR 20130048389A
- Authority
- KR
- South Korea
- Prior art keywords
- storage
- data throughput
- average data
- cycle
- performance
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
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
본 발명은 데이터를 반도체 메모리에 저장하는 반도체 저장 장치에 관한 것으로, 보다 구체적으로 반도체 메모리로 이루어진 스토리지의 수명 보장을 관리하기 위해 스토리지의 동작 성능을 조절할 수 있는 방법 및 그에 따른 반도체 저장장치에 관한 것이다.
불휘발성 메모리들 중에서도 플래시 메모리는, 전기적으로 메모리 셀의 데이터를 일괄적으로 소거하는 기능을 가지기 때문에, 컴퓨터, SSD(solid state drive/disk), 메모리 카드 등에 스토리지 소자로서 널리 사용되고 있다.
최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 플래시 메모리가 반도체 저장장치에 주로 채용되고 있다.
반도체 저장장치는 스토리지의 엔듀런스(endurance)의 한계에 기인하여 정상적인 동작을 보장할 수 있는 수명이 미리 정해져 있다.
그러나, 스토리지에 과도한 워크로드(workload)가 가해지면 보장 수명까지 반도체 저장장치를 사용하는 것이 어렵게 될 수 있다. 예를 들어 스토리지를 구성하는 플래시 메모리의 한 블록에 대하여 일정 시간 동안에 프로그램-소거 사이클(PE-사이클)이 과도하게 수행되었다면, 스토리지를 포함하는 반도체 저장장치의 수명은 해당 블럭의 엔듀런스 한계에 기인하여 단축될 수 있다. 또한, 스토리지에 과도한 워크로드가 단기간에 가해지면 런-타임 배드 블록(run-time bad block)이 갑자기 다량으로 발생될 수 있으므로 반도체 저장장치의 수명이 보장 수명보다 짧아질 수 있다.
본 발명이 해결하고자 하는 기술적 과제는, 반도체 저장장치의 보장 수명을 보장 또는 늘일 수 있는 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치를 제공함에 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 스토리지의 워크로드에 따라 스토리지의 동작 성능을 적절히 조절하거나 제한할 수 있는 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치를 제공함에 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 실시 예의 일 양상에 따른 스토리지의 동작 성능 조절방법은:
현재 주기에서 인가된 워크로드에 따라 스토리지가 동작될 때 상기 스토리지의 한 주기 동안의 평균 데이터 처리량을 계산하고,
상기 계산된 평균 데이터 처리량과 상기 스토리지의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량을 서로 비교하고,
상기 비교 결과에 따라 다음 주기에서 상기 스토리지의 동작 성능을 조절한다.
본 발명의 실시 예에서, 상기 워크로드는 상기 스토리지의 프로그램-소거 사이클 횟수일 수 있다.
본 발명의 실시 예에서, 상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 많은 경우에 상기 스토리지의 동작 성능은 다음 주기에서 다운될 수 있다.
본 발명의 실시 예에서, 상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 적은 경우에 상기 스토리지의 동작 성능은 다음 주기에서 업될 수 있다.
본 발명의 실시 예에서, 상기 스토리지는 낸드 플래시 메모리를 메인 데이터 저장 소자로서 사용할 수 있다.
본 발명의 실시 예에서, 상기 스토리지의 동작 성능 조절은 상기 스토리지로 인가되는 동작 코멘드의 딜레이량을 조절하는 것일 수 있다.
본 발명의 실시 예에서, 상기 동작 코멘드의 딜레이량을 조절하기 위한 딜레이 팩터는 매 주기마다 구해지며, 한주기의 엔드 타임 포인트 값에서 조절 터닝 타임 포인트 값을 뺀 결과를 상기 조절 터닝 타임 포인트까지 인가된 동작 리퀘스트 개수로써 나눔에 의해 상기 딜레이 팩터를 얻을 수 있다.
본 발명의 실시 예에서, 상기 스토리지의 동작 성능 조절은 상기 워크로드의 변화시에도 단위 시간당 최대 기준 데이터 처리량을 초과하지 않는 범위 내에서 수행될 수 있다.
본 발명의 실시 예에서, 상기 스토리지의 동작 성능 조절은 상기 워크로드의 변화시에도 수명 보장을 위한 기준 데이터 처리량을 초과하지 않는 범위 내에서 수행될 수 있다.
본 발명의 실시 예에서, 상기 다음 주기에서 상기 스토리지의 동작 성능을 조절할 때 가중치가 적용될 수 있다.
본 발명의 실시 예에서, 상기 가중치는 진행되는 주기별로 서로 다르게 적용될 수 있다.
본 발명의 실시 예에서, 상기 프로그램-소거 사이클 횟수가 미리 설정된 기준 값 이상으로 되거나 미리 설정된 기준 편차 값 이상으로 변할 경우에 복수 주기에 대한 평균 데이터 처리량과 같도록 상기 한주기의 타임이 늘어날 수 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 실시 예의 다른 양상에 따른 반도체 저장 장치는:
동작 코멘드에 응답하여 데이터를 불휘발적으로 저장하는 스토리지; 및
이전 주기에서 계산된 평균 데이터 처리량과 미리 설정된 기준의 평균 데이터 처리량을 비교하여 얻은 딜레이 팩터에 따라 현재 주기에서 상기 동작 코멘드를 지연하는 콘트롤러를 구비한다.
본 발명의 실시 예에서, 상기 딜레이 팩터는 한주기의 엔드 타임 포인트 값에서 조절 터닝 타임 포인트 값을 뺀 결과를 상기 조절 터닝 타임 포인트까지 인가된 동작 리퀘스트 개수로써 나눔에 의해 얻을 수 있다.
본 발명의 실시 예에서, 상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 많은 경우에 상기 동작 코멘드를 지연하는 지연량은 현재 주기에서 증가할 수 있다.
본 발명의 실시예적인 구성에 따르면, 스토리지의 동작 성능이 워크로드의 변화에 따라 예측적으로 조절되므로, 스토리지 또는 반도체 저장장치의 수명이 미리 정해진 수명까지 보장되거나 증가된다.
도 1은 본 발명의 실시 예에 따른 반도체 저장장치의 블록도,
도 2는 도 1중 콘트롤러의 예시를 보인 구체 블록도,
도 3은 도 1중 스토리지의 예시를 보인 구체 블록도,
도 4는 도 2중 퍼포먼스 콘트롤러의 상세 구현 블록도,
도 5는 도 4에 의해 수행되는 주기별 딜레이 팩터의 산출 예를 설명하기 위해 제시된 도면
도 6은 도 5의 딜레이 팩터 적용에 따른 데이터 처리량 변화를 예시적으로 보여주는 도면,
도 7은 본 발명의 실시 예에 따른 반도체 저장장치의 동작 성능 조절의 플로우 챠트,
도 8은 데이터 처리 장치에 적용된 본 발명의 응용 예를 도시한 블록도,
도 9는 퓨젼 메모리 시스템에 적용된 본 발명의 다른 응용 예를 도시한 블록도, 및
도 10은 컴퓨팅 시스템에 적용된 본 발명의 또 다른 응용 예를 도시한 블록도.
도 2는 도 1중 콘트롤러의 예시를 보인 구체 블록도,
도 3은 도 1중 스토리지의 예시를 보인 구체 블록도,
도 4는 도 2중 퍼포먼스 콘트롤러의 상세 구현 블록도,
도 5는 도 4에 의해 수행되는 주기별 딜레이 팩터의 산출 예를 설명하기 위해 제시된 도면
도 6은 도 5의 딜레이 팩터 적용에 따른 데이터 처리량 변화를 예시적으로 보여주는 도면,
도 7은 본 발명의 실시 예에 따른 반도체 저장장치의 동작 성능 조절의 플로우 챠트,
도 8은 데이터 처리 장치에 적용된 본 발명의 응용 예를 도시한 블록도,
도 9는 퓨젼 메모리 시스템에 적용된 본 발명의 다른 응용 예를 도시한 블록도, 및
도 10은 컴퓨팅 시스템에 적용된 본 발명의 또 다른 응용 예를 도시한 블록도.
위와 같은 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시 예들은, 이해의 편의를 제공할 의도 이외에는 다른 의도 없이, 개시된 내용이 보다 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 소자 또는 라인들이 대상 소자 블록에 연결된다 라고 언급된 경우에 그것은 직접적인 연결뿐만 아니라 어떤 다른 소자를 통해 대상 소자 블록에 간접적으로 연결된 의미까지도 포함한다.
또한, 각 도면에서 제시된 동일 또는 유사한 참조 부호는 동일 또는 유사한 구성 요소를 가급적 나타내고 있다. 일부 도면들에 있어서, 소자 및 라인들의 연결관계는 기술적 내용의 효과적인 설명을 위해 나타나 있을 뿐, 타의 소자나 회로블록들이 더 구비될 수 있다.
여기에 설명되고 예시되는 각 실시 예는 그것의 상보적인 실시 예도 포함될 수 있으며, 플래시 메모리 장치에 대한 기본적 동작과 페이지 프로그램 및 블록 소거 동작에 관한 세부는 본 발명의 요지를 모호하지 않도록 하기 위해 상세히 설명되지 않음을 유의(note)하라.
도 1은 본 발명의 실시 예에 따른 반도체 저장장치의 블록도이다.
도면을 참조하면, 반도체 저장장치는, 동작 코멘드에 응답하여 데이터를 불휘발적으로 저장하는 스토리지(1000)와, 이전 주기에서 계산된 평균 데이터 처리량과 미리 설정된 기준의 평균 데이터 처리량을 비교하여 얻은 딜레이 팩터에 따라 현재 주기에서 상기 동작 코멘드를 지연하는 콘트롤러(2000)를 포함한다.
상기 콘트롤러(2000)는 이전 주기에서 인가된 워크로드에 따라 스토리지가 동작될 때 상기 스토리지의 한 주기 동안의 평균 데이터 처리량을 계산하고, 상기 계산된 평균 데이터 처리량과 상기 스토리지의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량을 서로 비교한다. 상기 콘트롤러(2000)는 상기 비교 결과에 따라 현재 주기에서 상기 스토리지의 동작 성능을 조절한다.
시간적으로 다른 관점에서 다시 설명하면, 상기 콘트롤러(2000)는 현재 주기에서 인가된 워크로드에 따라 스토리지가 동작될 때 상기 스토리지(1000)의 한 주기 동안의 평균 데이터 처리량을 계산하고, 상기 계산된 평균 데이터 처리량과 상기 스토리지(1000)의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량을 서로 비교한다. 상기 콘트롤러(2000)는 상기 비교 결과에 따라 다음 주기에서 상기 동작 코멘드의 지연을 결정한다.
상기 스토리지(1000)는 텍스트, 그래픽, 소프트웨어 코드 등과 같은 다양한 데이터 형태들을 갖는 데이터 정보를 저장하는 데 사용될 수 있다. 상기 스토리지(1000)는, 예를 들면, 낸드 플래시 메모리, 노어 플래시 메모리, 상변화 메모리 장치(PRAM), 강유전체 메모리 장치(FeRAM), 자기 저항램 장치(MRAM) 등과 같은 다양한 불휘발성 메모리들을 이용하여 구성될 수 있다. 그렇지만, 스토리지(1000)에 적용되는 불휘발성 메모리들이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
또한, 상기 콘트롤러(2000)는 호스트 등에서 제공되는 외부 요청에 응답하여 스토리지(1000)를 제어할 수 있다. 콘트롤러(2000)는 외부로부터 제공되는 데이터를 압축할 수 있으며 그 압축된 데이터가 상기 스토리지(1000)에 저장되도록 할 수 있다. 데이터 압축 방식은 스토리지(1000)의 효과적인 사용(예를 들면, 낮은 비용으로 많은 양의 데이터를 저장하는 것)을 가능하게 한다. 또한, 데이터 압축 방식은 스토리지(1000)와 콘트롤러(2000) 사이에 연결된 버스(B1)의 트래픽을 감소시킨다.
상기 스토리지(1000)의 동작 성능 조절을 위해 상기 콘트롤러(2000)는 도 2와 같이 구성될 수 있다.
도 2는 도 1중 콘트롤러의 예시를 보인 구체 블록도이다.
도면을 참조하면, 콘트롤러(2000)는 호스트 인터페이싱을 담당하기 위한 제1 인터페이스(2100), 메모리 인터페이싱을 담당하기 위한 제2 인터페이스(2200), 처리 유니트로서 CPU(2300), 작업용 메모리로서의 버퍼(2400), 압축 블록(2500), 데비에이션 검출부(2700), 본 발명의 실시 예에 따른 동작 성능 조절을 담당하는 퍼포먼스 콘트롤러(2800), 그리고 롬(2600)을 포함할 수 있다.
상기 제1 인터페이스(HI:2100)는 콘트롤러의 외부(또는, 호스트)와 인터페이스하도록 구성되며, 상기 제2 인터페이스(MI:2200)는 도 1의 스토리지(1000)와 인터페이스하도록 구성될 수 있다. 처리 유니트 즉, CPU(2300)는 콘트롤러(2000)의 전반적인 동작을 제어하도록 구성될 수 있다. 예를 들면, CPU(2300)는 롬(2600)에 저장된 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성될 수 있다. 상기 플래시 변환 계층(FTL)은 맵핑 정보를 관리하는 데 사용될 수 있다. 하지만, 플래시 변환 계층(FTL)의 역할이 여기에 개시된 것에 제한되지 않음은 잘 이해될 것이다. 예를 들면, 플래시 변환 계층(FTL)은 스토리지(1000)의 웨어-레벨링(wear-leveling) 관리, 배드 블록 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리 등을 관리하는 데 사용될 수 있다.
상기 버퍼(2400)는 제1 인터페이스(2100)를 통해 외부로부터 전송되어질 데이터를 임시로 저장하는 데 사용될 수 있다. 또한, 상기 버퍼(2400)는 제2 인터페이스(2200)를 통해 스토리지(1000)로부터 전송되어질 데이터를 임시로 저장하는 데 사용될 수 있다.
압축 블록(2500)은 CPU(2300)의 제어(또는, CPU(2300)에 의해서 운용되는 플래시 변환 계층(FTL)의 제어)에 응답하여 버퍼(2400)의 데이터를 압축하도록 구성될 수 있다. 압축된 데이터는 제2 인터페이스(2200)를 통해 스토리지(1000)에 저장될 것이다. 또한, 압축 블록(2500)은 CPU(2300)의 제어(또는, CPU(2300)에 의해서 운용되는 플래시 변환 계층(FTL)의 제어)에 응답하여, 스토리지(1000)로부터 읽혀진 데이터의 압축을 해제하도록 구성될 수 있다. 상기 압축 블록(2500)의 압축 기능은 선택적으로 행해질 수 있다. 이러한 경우, 입력 데이터는 데이터 압축 없이 버퍼(2400)를 통해 스토리지(1000)에 저장될 것이다. 예를 들면, 압축 블록(2500)의 온/오프는 입력되는 데이터에 따라 행해질 것이다. 압축된 데이터인 멀티미디어 데이터가 반도체 저장장치에 제공되는 경우, 또는 데이터의 크기가 현저히 작아 데이터 압축을 위해 소모되는 에너지가 상대적으로 큰 경우, 압축 블록(2500)의 동작은 오프될 수 있다. 상기 압축 블록(3500)의 온/오프는 하드웨어(예를 들면, 레지스터) 또는 소프트웨어적으로 행해질 수 있다. 외부로부터 제공되는 데이터는 버퍼(2400)를 경유하지 않고 제1 및 제2 인터페이스들(2100, 2200)을 통해 스토리지(1000)에 직접적으로 저장될 수 있다.
도 2에서 상기 퍼포먼스 콘트롤러(2800)는 버스를 통해 상기 CPU(2300)와 연결된다. 상기 퍼포먼스 콘트롤러(2800)는 현재 주기에서 인가된 워크로드에 따라 스토리지(1000)가 동작될 때 상기 스토리지(1000)의 한 주기 동안의 평균 데이터 처리량을 계산하고, 상기 계산된 평균 데이터 처리량과 상기 스토리지의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량을 서로 비교한다. 상기 퍼포먼스 콘트롤러(2800)는 상기 비교 결과에 따라 다음 주기에서 상기 스토리지의 동작 성능이 조절되도록 하기 위해 상기 동작 코멘드를 지연한다.
도 2에서 상기 퍼포먼스 콘트롤러(2800)의 기능은 상기 CPU(2300)의 기능에 추가적으로 합체될 수도 있다. 상기 퍼포먼스 콘트롤러(2800)에 대한 구체적인 설명은 도 4에서 후술될 것이다.
도 3은 도 1중 스토리지(1000)의 예시를 보인 구체 블록도이다.
도면을 참조하면, 상기 스토리지(1000)가 다양한 불휘발성 메모리 장치(NVM)들중 낸드(NAND)타입 플래시 메모리로 구성된 예가 나타나 있다.
플래시 메모리는, 메모리 셀 어레이(210), 로우 디코더(220), 페이지 버퍼(230), I/O 버퍼(240), 콘트롤 로직(250), 및 전압 발생기(260)를 개략적으로 포함한다.
상기 메모리 셀 어레이(210)는 비트 라인(BL) 및 워드 라인(WL)에 연결되는 복수의 메모리 셀들을 포함한다. 상기 메모리 셀 어레이(210)는 스트링 선택 트랜지스터(SST)와 그라운드 선택 트랜지스터(GST)간에 메모리 셀 트랜지스터들의 채널이 서로 직렬로 연결된 낸드 셀 스트링을 복수로 포함한다.
상기 로우 디코더(220)는 일반적으로 행 어드레스(Row Address)에 응답하여 워드 라인을 선택한다. 로우 디코더(220)는 전압 발생기(260)로부터 제공되는 각종 워드 라인 전압(Vpgm, Vrd 등)을 선택된 워드 라인들로 전달한다. 프로그램 동작시, 선택 워드 라인(Selected WL)으로는 프로그램 전압(Vpgm; 약 15~20V)과 검증 전압(Vfy)을, 비선택 워드 라인(Unselected WL)으로는 패스 전압(Vpass)을 전달한다. 리드 동작 시, 로우 디코더(220)는 전압 발생기(260)로부터 제공되는 읽기 전압(Vrd)을 선택된 워드 라인으로, 읽기 전압(Vread, 약 5V)를 비선택 워드 라인으로 제공한다.
상기 페이지 버퍼(230)는 동작 모드에 따라 기입 드라이버(Write driver)로서 또는 감지 증폭기(Sense amplifier)로서 동작한다. 예를 들면, 페이지 버퍼(230)는 읽기 동작 모드에서 감지 증폭기로서 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다. 상기 페이지 버퍼(230)는 프로그램 동작시 하나의 페이지 단위의 데이터를 로드할 수 있다. 즉, 페이지 버퍼(230)는 프로그램될 데이터를 입출력 버퍼(240)를 통해 수신하여 내부의 래치에 저장할 수 있다. 페이지 버퍼(230)는 로드된 데이터를 라이트(프로그램)하는 동작시, 프로그램되는 메모리 셀들의 비트 라인으로 접지 전압(예를 들면, 0V)을 제공한다. 그리고 페이지 버퍼(230)는 프로그램 금지(Program inhibit)되는 메모리 셀들의 비트 라인으로 프리차지 전압(예를 들면, Vcc)을 공급한다.
I/O 버퍼(240)는 입출력 핀(I/O Pin)을 통해서 입력되는 어드레스 또는 라이트 데이터 등을 일시 저장한다. I/O 버퍼(240)는 저장된 어드레스를 어드레스 버퍼(미도시됨)로, 프로그램 데이터는 페이지 버퍼(230)로, 그리고 명령어(코멘드)는 명령어 레지스터(미도시됨)로 전달한다. 읽기 동작시, 페이지 버퍼(230)로부터 제공되는 리드 데이터는 I/O 버퍼(240)를 통해서 외부로 출력된다.
콘트롤 로직(250)은 프로그램 동작시, 콘트롤러(2000)로부터 제공된 명령어(CMDi)를 수신하고 프로그램 데이터가 선택된 메모리 셀에 기입되도록 하기 위해 상기 페이지 버퍼(230) 및 전압 발생기(260)를 제어한다. 또한, 콘트롤 로직(250)은 콘트롤러(2000)의 명령어에 응답하여 선택된 셀 영역의 데이터가 독출(리드)될 수 있도록 상기 페이지 버퍼(230) 및 전압 발생기(260)를 제어한다.
본 발명의 실시 예의 달성을 위해 상기 콘트롤 로직(250)은 상기 I/O 버퍼(240)를 통해서 또는 직접적으로 상기 콘트롤러(2000)로부터 동작 성능 딜레이 제어신호(PDC)를 수신할 수 있다.
상기 동작 성능 딜레이 제어신호(PDC)는 도 4에서 보여지는 바와 같은 퍼포먼스 콘트롤러에 의해 생성될 수 있다.
도 4는 도 2중 퍼포먼스 콘트롤러(2800)의 상세 구현 블록도이다.
도면을 참조하면, 퍼포먼스 콘트롤러(2800)는, 리퀘스트 리시버(410), 리퀘스트 모니터(420), 주기 로드부(430), 예측 딜레이 유닛(450), 콘스탄트 딜레이 유닛(440), 딜레이 셀렉터(460), 딜레이 조절기(470)를 포함한다.
리드(R), 라이트(W), 또는 소거 동작을 위한 리퀘스트(또는 코멘드)는 상기 리퀘스트 리시버(410)를 통해 상기 리퀘스트 모니터(420) 및 딜레이 조절기(470)로 인가된다. 상기 딜레이 조절기(470)는 상기 딜레이 셀렉터(460)의 딜레이 선택 출력에 응답하여 상기 동작 성능 딜레이 제어신호(PDC)를 생성한다.
상기 딜레이 셀렉터(460)는 상기 딜레이 선택 출력을 상기 딜레이 조절기(470)로 인가하기 위해 상기 예측 딜레이 유닛(450)의 딜레이 출력과 콘스탄트 딜레이 유닛(440)의 딜레이 출력 중의 하나를 선택할 수 있다.
상기 예측 딜레이 유닛(450)은 현재 주기에서의 인가된 워크로드에 따라 딜레이 팩터를 산출하여 다음 주기에서의 스토리지의 동작 코멘드를 지연하는 지연량을 예측한다.
상기 주기 로드부(430)는 상기 스토리지의 한 주기 동안의 평균 데이터 처리량을 계산한다.
상기 예측 딜레이 유닛(450)은 상기 계산된 평균 데이터 처리량과 상기 스토리지의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량을 서로 비교함에 의해 상기 딜레이 팩터를 산출할 수 있다.
상기 리퀘스트 모니터(420)는 상기 리퀘스트(또는 코멘드)가 상기 리퀘스트 리시버(410)에 수신될 경우에 이를 모니터링한다.
상기 워크로드를 상기 스토리지(1000)의 프로그램-소거 사이클 횟수라고 할 경우에, 워크로드는 상기 스토리지가 서버 시스템에 채용되거나 처리해야할 데이터 처리량이 급작스럽게 많아지는 경우에 미리 설정된 기준의 평균 데이터 처리량을 도 5에서와 같이 오버할 수 있다.
도 5는 도 4에 의해 수행되는 주기별 딜레이 팩터의 산출 예를 설명하기 위해 제시된 도면이다.
도 5의 그래프에서 가로축은 시간을 세로축은 처리량을 가리킨다. 구간 A는 임의의 한 주기를 나타낸다. 상기 한 주기 동안에 수십 내지 수만번의 PE 사이클이 수행될 수 있다. 파선으로 보여지는 그래프 G1는 한주기 동안의 미리 설정된 기준의 평균 데이터 처리 비율을 나타내는 그래프이다. 즉 구간 A 동안에 처리량 MT 만큼의 평균 데이터 처리량이 설정된 경우에 상기 그래프 G1와 같은 비율에 따라 데이터가 처리되어야 하나, 한 주기에서의 워크로드가 과도한 경우에 그래프 G2와 같은 처리 비율이 나타날 수 있다. 이와 같은 경우에 엔드 타임 포인트(T3)가 아니라, 조절 터닝 타임 포인트(T2)에서 이미 한 주기 동안에 처리해야할 평균 데이터 처리량이 소진되어 버린 것이다. 결국, 그래프 G2와 같은 워크로드 상황이 발생되는 경우에 스토리지의 보장 수명이 단축될 수 있으므로 다음 주기에서는 그래프 G3와 같이 평균 데이터 처리 비율이 조절된다. 이를 위해 동작 코멘드의 딜레이량을 조절하기 위한 딜레이 팩터 DF는 상기 구간 A에서 T3-T2/NR로 얻어진다.
여기서, 상기 NR은 시작 타임 포인트(T1)에서 상기 조절 터닝 타임 포인트(T2)까지 발생된 리퀘스트의 수이다. 예를 들어, 조절 터닝 타임 포인트(T2)의 값이 70이고, 엔드 타임 포인트(T3)의 값이 100이고, 상기 처리량 MT의 값이 10이라고 하면, 상기 DF = (100-70)/10 으로 된다. 따라서 상기 DF는 3이 된다. 이와 같이 구하여진 딜레이 팩터는 다음 주기에서 동작 코멘드의 딜레이량을 증가시키는데 사용된다.
도 5의 경우에 딜레이 팩터는 한 주기의 엔드 타임 포인트 값에서 조절 터닝 타임 포인트 값을 뺀 결과를 상기 조절 터닝 타임 포인트까지 인가된 동작 리퀘스트 개수로써 나눔에 의해 도출되었으나, 이와는 다른 방법에 의해서도 도출될 수 있다. 도 5에서와 같이 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 많은 경우에 상기 스토리지의 동작 성능은 다음 주기에서 다운된다.
한편, 도 5의 경우와는 반대로 한주기 동안 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 적은 경우에 상기 스토리지의 동작 성능은 다음 주기에서 업된다.
상기 스토리지가 낸드 플래시 메모리를 메인 데이터 저장 소자로서 구성할 경우에, 상기 미리 설정된 기준의 평균 데이터 처리량은 메모리 셀의 타입에 따라 달라질 수 있다.
낸드 플래시 메모리(NAND Flash Memory)의 메모리 셀 어레이는 블록(block)단위로 구별되어 있으며, 하나의 블록 내에는 복수의 페이지(Page)가 존재한다. 낸드 플래시 메모리의 활용 시에 블록 단위의 소거가 수행되고, 프로그램 동작 즉 라이트 동작은 페이지 단위로 수행된다. 모든 페이지가 프로그램된 블록을 새로운 데이터로 프로그램하기 위해서는 해당 블록에 대한 소거가 다시 진행된다.
이러한 일련의 동작 과정은 program erase cycle (PE-cycle)이라고 불려진다. 낸드 플래시 메모리의 경우에 한 블록이 견딜 수 있는 PE-cycle 횟수가 제한되어 있는데 이를 낸드 플래시 메모리의 엔듀런스(endurance)하고 한다. 그러므로, Single-Level Cell (SLC) type NAND Flash의 경우 typically 100,000회, Multi-Level Cell (MLC) type NAND Flash의 경우 typically 3,000~5,000회의 PE-cycle이 보장된다.
한 블록이 경험한 PE-cycle의 횟수가 상기 엔듀런스 한계(endurance limit)를 초과할 경우 그 블록은 오동작할 확률이 추후에 높아진다. 그러므로, 그러한 블록은 반도체 저장장치의 데이터 인테그리티(data integrity)를 위해서 더 이상 사용되어서는 안된다. 이 때문에 낸드 플래시 메모리를 응용하는 반도체 저장장치는 그 수명에 있어서 제한을 갖게 된다.
수명 제한이 있게 되는 또 다른 이유로서, 배드 블록(bad block)의 개수와 관련된 이슈가 존재한다. 낸드 플래시 메모리내에 존재하는 블록은 프로그램 페일(fail)이나 소거 페일(erase fail)등에 기인하여 오동작을 일으킬 수 있다.
이 경우에 해당 블록은 런 타임 배드 블록(run-time bad block)으로 간주되어, 이미 리저브(reserve)해둔 다른 블록과 대체된다.
또한 런 타임 배드 블록이외에도, 낸드 플래시 메모리가 공장에서 출하될 시 이미 배드 블록이라고 알려져 있는 초기 배드 블록(initial bad block)도 있다.
런 타임 배드 블록의 경우에 낸드 플래시 메모리를 사용함에 있어서 장기간에 걸쳐 소량 발생하는 것이 일반적이다. 그리고 초기 배드 블록의 경우에도, 공장에서 출하될 시 소량 존재하는 것이 정상이다.
그러나 런 타임 배드 블록이 단기간에 많이 발생할 경우, 혹은 초기 배드 블록이 초기부터 많을 경우에, 모든 리저브드 블록(reserved block)이 고갈되어 버릴 수 있으므로 반도체 저장장치는 더 이상 쓸 수 없게 된다. 이러한 이유 때문에도 반도체 저장장치의 수명은 제한받는다.
반도체 저장장치에 과도한 워크로드가 가해지면 위와 같은 이유들에 기인하여 수명이 보장 수명보다 단축될 수 있다. 특히 서버 어플리케이션(Server Application)을 겨냥하여 MLC NAND Flash Memory로 구성된 SSD의 경우에 수명 보장에 어려움이 뒤따른다. 서버 향 반도체 저장장치에서는 높은 성능, 즉 초당 높은 입출력(I/O per second)이 요구되고, 인가되는 워크로드의 양이 상대적으로 크다.
이와 같은 응용 처에 엔듀런스 한계(endurance limit)가 상대적으로 낮은 MLC NAND Flash Memory를 적용하면 SSD의 수명 보장은 신뢰성이 떨어질 수 있다. 더구나, 과도한 워크로드에 의해 런 타임 배드 블록이 단기간에 다량으로 발생하면 보장 수명은 예기치 않게 단축될 수 있다.
결국, 본 발명의 실시 예에서는 이전 주기에서 딜레이 팩터를 구하여 현재 주기에서 동작 코멘드를 지연하는 퍼포먼스 콘트롤러(2800)를 구비함에 의해, 스토리지의 동작 성능이 워크로드의 변화에 따라 예측적으로 조절된다. 이에 따라, 스토리지 또는 반도체 저장장치의 수명이 미리 정해진 수명까지 보장되거나 증가된다.
상기 스토리지로 인가되는 동작 코멘드의 딜레이량을 조절함에 의해 상기 스토리지의 동작 성능은 조절된다.
상기 스토리지의 동작 성능 조절은 상기 워크로드의 변화시에도 단위 시간당 최대 기준 데이터 처리량을 초과하지 않는 범위 내에서 수행될 수 있다. 여기서 최대 기준 데이터 처리량은 미리 정해져 있다. 예를 들어, 보장해야 할 수명이 최소 3년이고, 처리 가능한 쓰기 명령의 최고 처리 속도가 100MB/sec 라고 조건이 정해 져 있는 경우에, 콘트롤러는 명령 처리를 지연하여 데이터 처리 속도를 100MB/sec 를 넘지 않게 제한한다.
또 다른 경우에, 상기 스토리지의 동작 성능 조절은 상기 워크로드의 변화시에도 수명 보장을 위한 기준 데이터 처리량을 초과하지 않는 범위 내에서 수행될 수 있다. 수명 보장을 위해 데이터가 시간당 일정한 비율로 처리된다고 가정할 때 누적되는 데이터량이 상기 수명 보장을 위한 기준 데이터 처리량이라고 정의된다. 수명 보장을 위한 기준 데이터 처리량은 시간에 따라 일정하게 증가된다. 따라서, 콘트롤러는 수명 보장을 위한 기준 데이터 처리량을 초과하지 못하도록 동작 성능 조절을 수행한다.
더구나, 상기 스토리지의 동작 성능을 조절할 때 가중치가 적용될 수 있으며, 상기 가중치는 진행되는 주기별로 서로 다르게 적용될 수 있다. 즉, 주기 마다 다른 가중치를 적용하면, 딜레이 량의 예측에 미치는 영향이 주기별로 다르게 될 수 있다. 가중치를 배분하는 방법은 여러 가지 방법이 사용될 수 있다.
가중치를 적용하는 경우에 평균 데이터 처리량은 {W(1)*C(1)+W(2)*C(2)+ ....+W(n)*C(n)}/ n 으로 주어질 수 있다.
여기서, W(x)는 현재 주기로부터 x 번째의 앞 주기의 가중치이고, C(x)는 현재 주기로부터 x 번째의 앞 주기의 평균 데이터 처리량이다. n과 x는 모두 양의 정수이다.
예외적인 경우의 적응적 대처를 위해, 상기 프로그램-소거 사이클 횟수가 미리 설정된 기준 값 이상으로 되거나 미리 설정된 기준 편차 값 이상으로 변할 경우에 복수 주기에 대한 평균 데이터 처리량과 같도록 상기 한주기의 타임이 늘어날 수 있다. 결국, 특정한 경우에는 한 주기 마다 지연 시간을 조절하는 것이 아니라, 여러 주기에 걸쳐 지연 시간을 조절할 경우에 보다 효과적인 수명 보장의 결과가 얻어질 수 있다.
도 6은 도 5의 딜레이 팩터 적용에 따른 데이터 처리량 변화를 예시적으로 보여주는 도면이다.
도면에서 가로축은 시간을 세로축은 누적 처리량을 나타낸다. 도 5에서 설명된 바와 같이, 현재 주기에서 딜레이 팩터를 구한 후 다음 주기에서 딜레이 량을 결정하여 시간별로 데이터를 처리한 결과는 그래프 GW로서 나타난다. 도 5에서 보여지는 한 구간 A는 도 6에서 P1,P2,P3,P4, 및 P5 중 하나에 대응될 수 있다.
이와 같이, 한 주기 동안 계산된 평균 데이터 처리량과 미리 설정된 기준의 평균 데이터 처리량을 서로 비교하여 스토리지의 동작 성능을 예측적으로 조절하면, 스토리지 또는 반도체 저장장치의 수명이 미리 정해진 수명까지 보장되거나 증가된다.
도 7은 본 발명의 실시 예에 따른 반도체 저장장치의 동작 성능 조절의 플로우 챠트이다.
도면을 참조하면, 도 2의 퍼포먼스 콘트롤러(2800)는 S70 단계에서 성능 제어 모드 인지의 여부를 체크한다. 성능 제어 모드가 아닌 경우에는 도 4의 딜레이 셀렉터(460)는 콘스탄트 딜레이 유닛(440)의 출력을 선택할 수 있다. 이 경우에는 워크로드의 변화에도 무관하게 수명 보장을 위한 동작 성능 조절이 일정하게 수행된다. S70 단계에서 성능 제어 모드 이면 S71 단계가 수행된다.
S71 단계는 현 주기 동안에 데이터 평균 처리량을 계산하는 단계이다. 이는 전술한 바와 같이 상기 주기 로드부(430)에 의해 수행된다.
S72 단계에서는 상기 계산된 평균 데이터 처리량과 상기 스토리지의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량(Ref. value)이 서로 비교된다.
비교의 결과로서 상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 많은 경우에는 S73 단계가 수행된다. 상기 S73 단계는 상기 스토리지의 동작 성능을 다음 주기에서 다운시키기 위해 동작 코멘드를 지연하는 딜레이 값을 증가시키는 단계이다.
비교의 결과로서 상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 적은 경우에는 S75 단계가 수행된다. 상기 S75 단계는 상기 스토리지의 동작 성능을 다음 주기에서 업시키기 위해 동작 코멘드를 지연하는 딜레이 값을 감소시키는 단계이다.
S74 단계에서 선택된 딜레이 값이 출력된다.
이와 같이 지연 시간을 조절하여 스토리지의 동작 선능을 적절히 제한하면 스토리지의 보장 수명에 대한 신뢰성이 높아진다.
도 8은 데이터 처리 장치에 적용된 본 발명의 응용 예를 도시한 블록도이다. 도면을 참조하면, 데이터 처리 장치(500)은 불휘발성 메모리 장치(520)와 메모리 콘트롤러(510)를 포함한다.
불휘발성 메모리 장치(520)는 도 3에서 설명된 바와 같은 플래시 메모리로 구현될 수 있다. 메모리 콘트롤러(510)는 메모리 인터페이스(515)를 통해 불휘발성 메모리 장치(520)를 제어한다. 상기 불휘발성 메모리 장치(520)와 메모리 콘트롤러(510)의 결합 구성에 의해 메모리 카드 또는 반도체 디스크 장치(Solid State Disk: SSD)가 제공될 수 있다.
메모리 콘트롤러(510)내의 SRAM(511)은 센트럴 프로세싱 유닛(512)의 동작 메모리로서 사용된다. 호스트 인터페이스(513)는 데이터 처리 장치(500)와 호스트간의 인터페이싱을 담당하며, 데이터 교환 프로토콜을 구비할 수 있다.
에러 정정 블록(514)은 불휘발성 메모리 장치(520)로부터 리드된 데이터에 포함될 수 있는 에러를 검출 및 정정한다.
메모리 인터페이스(515)는 데이터 처리 장치(500)와 불휘발성 메모리 장치(520)간의 인터페이싱을 담당한다.
상기 센트럴 프로세싱 유닛(512)은 메모리 콘트롤러(510)의 데이터 교환을 위한 제반 제어 동작을 수행한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(500)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 이나 불휘발성 RAM 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
상기 센트럴 프로세싱 유닛(512)은 도 2에서 설명된 바와 같은 퍼포먼스 콘트롤러(2800)를 구비하여, 불휘발성 메모리 장치(520)의 동작 성능이 워크로드의 변화에 따라 예측적으로 조절되도록 할 수 있다. 그러므로, 데이터 처리 장치(500)의 수명이 미리 정해진 수명까지 보장되거나 증가된다.
한편, 상기 불휘발성 메모리 장치(520)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다.
상기 데이터 처리 장치(500)는 불휘발성 메모리 장치(520)의 수명을 연장할 수 있음은 물론, 에러의 발생 확률이 낮은 고신뢰성의 저장 매체로서 기능할 수 있다. 특히, 최근 활발히 연구되고 있는 반도체 디스크 장치(Solid State Disk: 이하 SSD)와 같은 데이터 처리 장치는 퍼포먼스 콘트롤러(2800)를 포함하는 메모리 콘트롤러(510)를 구비할 수 있다.
상기 메모리 콘트롤러(510)는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
도 9는 퓨젼 메모리 시스템에 적용된 본 발명의 다른 응용 예를 도시한 블록도이다. 퓨젼 메모리 장치나 퓨젼 메모리 시스템으로서 원(one)낸드 플래시 메모리 장치(600)가 적용될 수 있다.
원낸드 플래시 메모리 장치(600)는 서로 다른 프로토콜을 사용하는 장치와의 각종 정보 교환을 위한 호스트 인터페이스(610)와, 메모리 장치를 구동하기 위한 코드를 내장하거나 데이터를 일시적으로 저장하는 버퍼 램(620)과, 외부에서 주어지는 제어 신호와 명령어에 응답하여 읽기와 프로그램 및 모든 상태를 제어하는 콘트롤러(630)와, 명령어와 어드레스, 메모리 장치 내부의 시스템 동작 환경을 정의하는 설정(Configuration) 등의 데이터가 저장되는 레지스터(640), 및 불휘발성 메모리 셀과 페이지 버퍼를 포함하는 낸드 플래시 셀 어레이(650)를 포함할 수 있다.
여기서, 상기 콘트롤러(630)는 도 2에서 설명된 바와 같은 퍼포먼스 콘트롤러(2800)를 구비하여, 낸드 플래시 셀 어레이(650)의 동작 성능이 워크로드의 변화에 따라 예측적으로 조절되도록 할 수 있다. 그러므로, 원낸드 플래시 메모리 장치(600)의 수명이 미리 정해진 수명까지 보장되거나 증가된다.
호스트로부터의 리퀘스트가 존재할 때 원낸드 플래시 메모리 장치(600)는 본 발명의 실시 예에 따른 동작 성능 조절을 수행한다.
이와 같이 도 9와 같은 퓨젼(fusion)메모리 시스템은 동작 코멘드를 지연하는 동작을 수명 보장을 위해 수행한다. 상기 동작 코멘드를 지연하는 동작은 이전 주기에서 계산된 평균 데이터 처리량과 미리 설정된 기준의 평균 데이터 처리량을 비교하여 얻은 딜레이 팩터에 의존한다.
도 10은 컴퓨팅 시스템에 적용된 본 발명의 또 다른 응용 예를 도시한 블록도이다.
도면을 참조하면, 컴퓨팅 시스템(700)은 시스템 버스에 전기적으로 연결된 CPU(720), RAM(730), 사용자 인터페이스(740), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(750), 및 메모리 콘트롤러(711)와 플래시 메모리(712)를 구비하는 메모리 시스템(710)을 포함할 수 있다.
상기 컴퓨팅 시스템(700)이 모바일 장치인 경우, 컴퓨팅 시스템(700)의 동작 전압을 자체적으로 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 수 있다.
모바일 장치의 경우에 듀얼 프로세싱동작을 위해 상기 CPU(720)는 듀얼 프로세서의 타입으로서 탑재될 수 있다. 그러한 경우에 각 프로세서마다 RAM(730)을 각기 대응 설치하는 것은 회피된다. 따라서, RAM(730)은 프로세서들에 의해 공유적으로 사용될 수 있도록 듀얼 포트 및 공유 메모리 영역을 내부적으로 가질 수 있다. 이러한 것은 단말기의 콤팩트화가 제품 경쟁력에 큰 영향을 미치는 요인들 중의 하나이기 때문이다.
도 10에서 상기 CPU(720)는 도 2에서 설명된 바와 같은 퍼포먼스 콘트롤러(2800)를 구비할 수 있다. 상기 CPU(720)는 플래시 메모리(712)의 동작 성능이 워크로드의 변화에 따라 예측적으로 조절되도록 할 수 있다. 그러므로, 컴퓨팅 시스템(700)의 수명이 미리 정해진 수명까지 보장되거나 증가된다.
비록 도면에는 도시되지 않았지만, 상기 컴퓨팅 시스템(700)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 시스템(710)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 시스템(710)은, 퓨젼 플래시 메모리(예를 들면, 원낸드 플래시 메모리)로 제공될 수 있다.
상기 플래시 메모리(712), 상기 메모리 콘트롤러(711), 또는 상기 CPU(720)는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 상기 메모리 콘트롤러나 상기 CPU는 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) 등의 패키지로서 패키지화될 수 있다.
이상에서와 같이 도면과 명세서를 통해 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 사안이 다른 경우에 본 발명의 기술적 사상을 벗어남이 없이, 반도체 저장장치의 수명을 보장하기 위한 방법이나 테크닉을 다양하게 변경 또는 변형할 수 있을 것이다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
*도면의 주요 부분에 대한 부호의 설명*
1000: 스토리지
2000: 콘트롤러
280: 퍼포먼스 콘트롤러
1000: 스토리지
2000: 콘트롤러
280: 퍼포먼스 콘트롤러
Claims (10)
- 현재 주기에서 인가된 워크로드에 따라 스토리지가 동작될 때 상기 스토리지의 한 주기 동안의 평균 데이터 처리량을 계산하고,
상기 계산된 평균 데이터 처리량과 상기 스토리지의 수명을 일정기간 보장하기 위해 미리 설정된 기준의 평균 데이터 처리량을 서로 비교하고,
상기 비교 결과에 따라 다음 주기에서 상기 스토리지의 동작 성능을 조절하는 것을 특징으로 하는 동작 성능 조절방법.
- 제1항에 있어서,
상기 워크로드는 상기 스토리지의 프로그램-소거 사이클 횟수임을 특징으로 하는 동작 성능 조절방법.
- 제2항에 있어서,
상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 많은 경우에 상기 스토리지의 동작 성능은 다음 주기에서 다운됨을 특징으로 하는 동작 성능 조절방법.
- 제2항에 있어서,
상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 적은 경우에 상기 스토리지의 동작 성능은 다음 주기에서 업됨을 특징으로 하는 동작 성능 조절방법.
- 제2항에 있어서, 상기 스토리지는 낸드 플래시 메모리를 메인 데이터 저장 소자로서 사용함을 특징으로 하는 동작 성능 조절방법.
- 제2항에 있어서, 상기 스토리지의 동작 성능 조절은 상기 스토리지로 인가되는 동작 코멘드의 딜레이량을 조절하는 것임을 특징으로 하는 동작 성능 조절방법.
- 제6항에 있어서, 상기 동작 코멘드의 딜레이량을 조절하기 위한 딜레이 팩터는 매 주기마다 구해지며, 한주기의 엔드 타임 포인트 값에서 조절 터닝 타임 포인트 값을 뺀 결과를 상기 조절 터닝 타임 포인트까지 인가된 동작 리퀘스트 개수로써 나눔에 의해 상기 딜레이 팩터를 얻는 것을 특징으로 하는 동작 성능 조절방법.
- 동작 코멘드에 응답하여 데이터를 불휘발적으로 저장하는 스토리지; 및
이전 주기에서 계산된 평균 데이터 처리량과 미리 설정된 기준의 평균 데이터 처리량을 비교하여 얻은 딜레이 팩터에 따라 현재 주기에서 상기 동작 코멘드를 지연하는 콘트롤러를 구비함을 특징으로 하는 반도체 저장 장치.
- 제8항에 있어서, 상기 딜레이 팩터는 한주기의 엔드 타임 포인트 값에서 조절 터닝 타임 포인트 값을 뺀 결과를 상기 조절 터닝 타임 포인트까지 인가된 동작 리퀘스트 개수로써 나눔에 의해 얻는 것을 특징으로 하는 반도체 저장 장치.
- 제8항에 있어서, 상기 계산된 평균 데이터 처리량이 상기 미리 설정된 기준의 평균 데이터 처리량보다 많은 경우에 상기 동작 코멘드를 지연하는 지연량은 현재 주기에서 증가함을 특징으로 하는 반도체 저장 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110113217A KR101861184B1 (ko) | 2011-11-02 | 2011-11-02 | 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 |
US13/534,830 US9015403B2 (en) | 2011-11-02 | 2012-06-27 | Method for adjusting performance of a storage device and a semiconductor storage device therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110113217A KR101861184B1 (ko) | 2011-11-02 | 2011-11-02 | 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130048389A true KR20130048389A (ko) | 2013-05-10 |
KR101861184B1 KR101861184B1 (ko) | 2018-05-28 |
Family
ID=48173635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110113217A KR101861184B1 (ko) | 2011-11-02 | 2011-11-02 | 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9015403B2 (ko) |
KR (1) | KR101861184B1 (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102289919B1 (ko) * | 2014-04-15 | 2021-08-12 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법 |
US9652415B2 (en) | 2014-07-09 | 2017-05-16 | Sandisk Technologies Llc | Atomic non-volatile memory data transfer |
US9904621B2 (en) | 2014-07-15 | 2018-02-27 | Sandisk Technologies Llc | Methods and systems for flash buffer sizing |
US9645744B2 (en) | 2014-07-22 | 2017-05-09 | Sandisk Technologies Llc | Suspending and resuming non-volatile memory operations |
US9753649B2 (en) | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US9952978B2 (en) | 2014-10-27 | 2018-04-24 | Sandisk Technologies, Llc | Method for improving mixed random performance in low queue depth workloads |
US9824007B2 (en) | 2014-11-21 | 2017-11-21 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9817752B2 (en) | 2014-11-21 | 2017-11-14 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9645765B2 (en) | 2015-04-09 | 2017-05-09 | Sandisk Technologies Llc | Reading and writing data at multiple, individual non-volatile memory portions in response to data transfer sent to single relative memory address |
US10372529B2 (en) | 2015-04-20 | 2019-08-06 | Sandisk Technologies Llc | Iterative soft information correction and decoding |
US9778878B2 (en) * | 2015-04-22 | 2017-10-03 | Sandisk Technologies Llc | Method and system for limiting write command execution |
US9870149B2 (en) | 2015-07-08 | 2018-01-16 | Sandisk Technologies Llc | Scheduling operations in non-volatile memory devices using preference values |
US9715939B2 (en) | 2015-08-10 | 2017-07-25 | Sandisk Technologies Llc | Low read data storage management |
US10228990B2 (en) | 2015-11-12 | 2019-03-12 | Sandisk Technologies Llc | Variable-term error metrics adjustment |
US10126970B2 (en) | 2015-12-11 | 2018-11-13 | Sandisk Technologies Llc | Paired metablocks in non-volatile storage device |
US9837146B2 (en) | 2016-01-08 | 2017-12-05 | Sandisk Technologies Llc | Memory system temperature management |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
CN107526532B (zh) * | 2016-06-21 | 2020-07-10 | 伊姆西Ip控股有限责任公司 | 调节存储设备的吞吐量的方法和装置 |
US10481830B2 (en) | 2016-07-25 | 2019-11-19 | Sandisk Technologies Llc | Selectively throttling host reads for read disturbs in non-volatile memory system |
JP6171066B1 (ja) * | 2016-09-01 | 2017-07-26 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US11196512B2 (en) * | 2018-06-29 | 2021-12-07 | Qualcomm Incorporated | Resolving decodability for subsequent transmissions whose throughput exceeds a threshold |
JP2020046752A (ja) * | 2018-09-14 | 2020-03-26 | キオクシア株式会社 | 記憶装置及び情報処理システム |
KR102669517B1 (ko) * | 2018-12-14 | 2024-05-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20210016201A (ko) | 2019-08-02 | 2021-02-15 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US11204883B1 (en) * | 2020-06-22 | 2021-12-21 | Seagate Technology Llc | Data storage system with access completion uniformity |
KR20230023477A (ko) | 2021-08-10 | 2023-02-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622168B1 (en) * | 2000-04-10 | 2003-09-16 | Chutney Technologies, Inc. | Dynamic page generation acceleration using component-level caching |
US7716332B1 (en) * | 2001-06-20 | 2010-05-11 | At&T Intellectual Property I, L.P. | System and method for server-based predictive caching of back-end system data |
US7548982B2 (en) * | 2002-10-31 | 2009-06-16 | Hewlett-Packard Development Company, L.P. | Predictive branching and caching method and apparatus for applications |
US7809900B2 (en) | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
WO2008106686A1 (en) | 2007-03-01 | 2008-09-04 | Douglas Dumitru | Fast block device and methodology |
US20080288863A1 (en) * | 2007-05-15 | 2008-11-20 | Mypoints.Com Inc. | System and method of personalizing web pages by pre-fetching subsets of individual member data |
US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US8554983B2 (en) | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
US8504411B1 (en) * | 2009-09-14 | 2013-08-06 | Aol Advertising Inc. | Systems and methods for online user profiling and segmentation |
KR101702392B1 (ko) | 2010-08-20 | 2017-02-06 | 삼성전자주식회사 | 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 |
US8862807B2 (en) * | 2010-08-20 | 2014-10-14 | Samsung Electronics Co., Ltd. | Semiconductor storage device and method of throttling performance of the same |
KR101756130B1 (ko) | 2010-08-20 | 2017-07-27 | 삼성전자주식회사 | 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 |
KR101824067B1 (ko) | 2010-08-20 | 2018-01-31 | 삼성전자주식회사 | 반도체 저장 장치의 성능 조절을 위한 반도체 저장장치와 호스트간 인터페이스 방법 및 그 장치 |
KR101702393B1 (ko) | 2010-08-20 | 2017-02-23 | 삼성전자주식회사 | 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 |
US8676741B2 (en) * | 2011-06-16 | 2014-03-18 | Xerox Corporation | Dynamic heuristic web page caching based on the user's recent page visits |
US8850153B2 (en) * | 2011-09-30 | 2014-09-30 | International Business Machines Corporation | Enabling throttling on average write throughput for solid state storage devices |
-
2011
- 2011-11-02 KR KR1020110113217A patent/KR101861184B1/ko active IP Right Grant
-
2012
- 2012-06-27 US US13/534,830 patent/US9015403B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9015403B2 (en) | 2015-04-21 |
US20130111112A1 (en) | 2013-05-02 |
KR101861184B1 (ko) | 2018-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101861184B1 (ko) | 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 | |
US11860774B2 (en) | User device including a nonvolatile memory device and a data write method thereof | |
US9741441B2 (en) | Nonvolatile memory system including nonvolatile memory device and memory controller and operating method of memory controller | |
US8621266B2 (en) | Nonvolatile memory system and related method of performing erase refresh operation | |
US8254181B2 (en) | Nonvolatile memory device and programming method | |
US8539138B2 (en) | Flash memory device and method of programming flash memory device | |
KR102005888B1 (ko) | 불휘발성 메모리 장치 및 그것의 읽기 방법 | |
US9880605B2 (en) | Method and system for throttling power consumption | |
US8611150B2 (en) | Flash memory device including flag cells and method of programming the same | |
US11210004B2 (en) | Controller memory system to perform a single level cell (SLC), or multi level cell (MLC) or triple level cell (TLC) program operation on a memory block | |
US11099745B2 (en) | Storage device and operating method thereof | |
KR20130023984A (ko) | 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치 | |
KR20140103755A (ko) | 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템 | |
KR20090055314A (ko) | 읽기 디스터번스를 줄일 수 있는 불휘발성 메모리 장치 | |
US20220093183A1 (en) | Memory device and method of operating the memory device | |
US20220051745A1 (en) | Memory device and method of operating the memory device | |
KR20210017181A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
US11923014B2 (en) | Memory system compensating for performance deterioration of a memory device | |
US20210132804A1 (en) | Storage device and method of operating the storage device | |
US11640263B2 (en) | Memory system and operating method thereof | |
CN111916142B (zh) | 存储器控制器以及操作存储器控制器的方法 | |
US11561853B2 (en) | Memory system and memory controller determining a magnitude of a power supplied to the memory controller when error has occurred in target data | |
US11581050B2 (en) | Memory device and method of operating the memory device | |
KR20230034524A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20160017401A (ko) | 메모리 장치의 프로그램 방법 |
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 |