KR101135313B1 - 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법 - Google Patents

요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법 Download PDF

Info

Publication number
KR101135313B1
KR101135313B1 KR1020100037809A KR20100037809A KR101135313B1 KR 101135313 B1 KR101135313 B1 KR 101135313B1 KR 1020100037809 A KR1020100037809 A KR 1020100037809A KR 20100037809 A KR20100037809 A KR 20100037809A KR 101135313 B1 KR101135313 B1 KR 101135313B1
Authority
KR
South Korea
Prior art keywords
flash memory
request
power
operations
nand flash
Prior art date
Application number
KR1020100037809A
Other languages
English (en)
Other versions
KR20110118296A (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 KR1020100037809A priority Critical patent/KR101135313B1/ko
Publication of KR20110118296A publication Critical patent/KR20110118296A/ko
Application granted granted Critical
Publication of KR101135313B1 publication Critical patent/KR101135313B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

본 발명은 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법 및 그 낸드 플래시 메모리 장치를 제공한다. 상기 낸드 플래시 메모리 장치는 복수개의 플래시 메모리 칩들을 포함하는 메모리부와, 상기 복수개의 플래시 메모리 칩들에 대해 현재 동시에 수행될 요청 동작들에 소모되는 전력을 계산하고, 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면, 요청 동작들을 스케줄링하는 프로세서를 포함한다. 본 발명에 따르면, 요청 동작들을 즉, 읽기 요청과 쓰기 요청을 재배열하여 최대 전력 소비량을 제어할 수 있다.

Description

요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법{NAND FLASH MEMORY APPARATUS AND METHOD FOR SCHEDULING REQUESTED OPERATIONS}
본 발명은 요청 동작들을 스케줄링하는 낸드 플래시 메모리 장치 및 방법에 관한 것이다.
NAND 플래시 메모리는 하드디스크처럼 전력공급이 없어도 저장된 데이터가 지워지지 않는 비휘발성 저장매체이다. NAND 플래시 메모리는 여러 개의 블록들로 구성되어 있으며 하나의 블록은 여러 개의 페이지로 구성되어 있다. 일반적으로 블록의 크기는 128KB ~ 512KB이며 페이지 크기는 2KB ~ 4KB 이다. 그러므로 하나의 블록에는 64개에서 128개의 페이지가 저장된다. 만약 1GB의 용량을 가진 NAND 플래시 메모리일 경우 페이지 크기가 4KB라고 가정하면 1GB / 4KB / 128(개) = 2048 로 2048개의 블록을 갖고 있다. 또한 NAND 플래시 메모리에서는 플래시 메모리 특성으로 인해 읽기와 쓰기는 페이지 단위로 동작하고 삭제는 블록 단위로 동작한다.
NAND 플래시 메모리는 하드디스크와 달리 덮어쓰기 연산을 지원하지 않는다. 따라서 업데이트가 발생하게 되면 대부분의 NAND 플래시 메모리는 빈 공간에 업데이트 데이터를 기록한다. 그리고 기존에 기록되어 있던 데이터는 무효화(invalid) 시킨다. 그러나 무효화된 페이지들은 플래시 메모리 공간을 차지하고 있으며 사용이 불가능한 공간이다. 이러한 공간을 다시 사용하기 위해서는 삭제 연산이 필요하다. 무효화 된 페이지 공간을 다시 사용 가능하도록 해주는 동작을 가비지 컬렉션이라고 한다.
가비지 컬렉션은 NAND 플래시 메모리에서 특정 블록을 선택하여 해당 블록의 유효한 페이지를 다른 빈 공간에 복사하고 해당 블록은 삭제하는 동작을 하게 된다. 그러므로 삭제된 블록 공간내의 모든 페이지 들은 모두 빈 페이지가 되어 쓰기가 가능해지는 공간이 된다.
동시에 접근이 가능한 여러 개의 플래시 메모리를 사용하는 장치는 멀티미디어 카드 같은 SD 카드(Secure Digital Card) 와 SSD(Solid State Drive) 등 여러 저장 매체가 있다.
플래시 메모리는 한 번에 하나의 칩에 쓰기나 읽기 명령을 수행할 수 있기 때문에 SSD에서 이러한 플래시 메모리의 낮은 성능을 향상시키기 위하여 여러 플래시 메모리를 병렬적으로 동작시켜 전체적인 성능을 높인다.
구체적으로, NAND 플래시 컨트롤러에 하나의 버스 채널에 여러 개의 플래시 메모리 칩들이 연결되고 여러 개의 플래시 메모리 칩들이 연결된 버스 채널이 여러 개 있는 구조를 갖고 있다. 이러한 구조에서 여러 개의 버스가 동시에 사용되고 여러 개의 칩들이 병렬적으로 사용되기 때문에 전제적인 성능이 높아 진다. 그러므로 예컨대, 16개의 플래시 메모리 칩들은 동시에 동작이 수행 될 수 있고 페이지가 4KB 일 경우 총 64KB의 데이터를 한 번에 처리 할 수 있다. 이와 같이 버스에 연결되는 칩들이 증가하면 동시에 쓸 수 있는 칩의 개수가 증가하여 성능이 증가하며 버스 채널의 수가 증가하여도 성능이 높아진다. 이와 같이 병렬적으로 플래시 메모리를 쓰는 방법을 인터리빙 기법이라고 한다.
도 1은 SSD의 한 제품인 상표명 OCZ vertex SSD에서 순차 읽기와 쓰기 동작의 평균 전력을 IO 크기에 따라 측정한 그래프이다.
도 1의 전력 소비 그래프에서 쓰기나 읽기 동작이 발생하지 않는 대기 상태일 때는 평균 0.8W의 전력을 소비 하고 있다. 하지만 쓰기 요청 처리시 IO(Input/Output) 크기가 점차 커지면서 최고 1.9W까지 전력 소비량을 보여준다. 이것은 64KB 이상의 IO 크기를 처리할 때 1.9W의 전력 소비량을 나타내고 있는 것으로 SSD가 병렬적으로 플래시 메모리를 처리할 때, 동시에 동작하는 플래시 메모리 개수가 정해져 있다는 것을 뜻한다.
그러므로 페이지 크기가 4KB 일 때 한번에 16개의 칩을 동시에 사용할 수 있다는 것을 말하고 64KB 이상의 IO크기를 처리 할 때에도 동시에 동작하는 플래시 메모리 개수가 같기 때문에 최대 1.9W 이상 전력 소비 이상 증가하지 않는다. 따라서 이 SSD의 최대 전력 소비량은 1.9W라고 말할 수 있고 병렬적으로 쓰기 가능한 최대크기는 64KB이라는 것을 알 수 있다.
SSD의 대기 상태에서 소비되는 전력은 0.8W 정도이다. 이 때는 컨트롤러와 SDRAM 등 SSD를 구성하는 장치에서 전력을 소비하는 상태의 전력이다. 쓰기 요청이나 읽기 요청을 처리할 때는 대기 상태의 전력과 쓰기나 읽기 요청을 처리하는 전력이 추가로 소비된다.
컨트롤러와 SDRAM의 전력을 제외하고 나머지 전력이 플래시 메모리에 쓰기 요청을 처리하기 위해 소비된다고 가정하면 1.9W - 0.8W = 1.1W로 약 1.1W 전력이 플래시 메모리에 데이터를 기록하기 위해 소비한다. 예를 들어 16개의 칩이 한 번에 쓰기 동작을 수행해서 1.1W의 전력을 소비한다고 가정하면 하나의 쓰기 요청을 처리하기 위해 소비되는 전력은 1.1W / 16 (개) = 약 0.07W 이다.
마찬가지로 읽기 요청을 수행 할 때 소비되는 전력을 1.0W로 가정하면 1.0W - 0.8W = 0.2W 로 읽기 요청을 처리하기 위해 소비되는 전력은 0.2W 이다. 그러므로 하나의 읽기 요청을 처리하기 위해 소비되는 전력은 0.2W / 16(개) = 약 0.01W 이다.
이와 같이, 여러 개의 플래시 메모리를 동시에 사용하면서 데이터를 처리하는 저장매체에서 쓰기 요청을 처리 할 때 많은 전력을 사용하고 있다. 앞서 기술한대로 쓰기 연산의 경우 64KB 이상 IO 크기를 처리할 때 최대 전력을 소비하고 있다. 이것은 동시에 동작하는 플래시 메모리 개수가 정해져 있기 때문에 64KB 이상 IO크기를 처리해도 소비하는 최대 전력 값이 일정하다.
만약 에너지 소비량 및 발열 문제로 인해 낸드 플래시 메모리 장치에서 요구되는 허용 최대 전력이 낸드 플래시 메모리 장치의 최대 전력보다 낮을 경우에는 낸드 플래시 메모리 장치에서 최대 전력을 조절해야 할 필요성이 있다.
따라서, 본 발명의 목적은 낸드 플래시 메모리 장치에서 최대 전력을 제어하기 위하여 요청 동작들을 스케줄링 하는 방법 및 그 낸드 플래시 메모리 장치를 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따라, 요청 동작들을 스케줄링하는 낸드 플래시 메모리 장치는 복수개의 플래시 메모리 칩들을 포함하는 메모리부와, 상기 복수개의 플래시 메모리 칩들에 대해 현재 동시에 수행될 요청 동작들에 소모되는 전력을 계산하고, 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면, 요청 동작들을 스케줄링하는 프로세서를 포함한다.
또한, 본 발명의 다른 측면에 따라, 복수개의 플래시 메모리 칩들을 포함하는 메모리부를 포함하는 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법은 상기 복수개의 플래시 메모리 칩들에 대해 현재 동시에 수행될 요청 동작들에 소모되는 전력을 계산하는 단계와, 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면, 요청 동작들을 스케줄링하는 단계를 포함한다.
본 발명에 의하면, 요청 동작들을 즉, 읽기 요청과 쓰기 요청을 재배열하여 최대 전력 소비량을 제어할 수 있다.
도 1은 SSD의 한 제품인 상표명 OCZ vertex SSD에서 순차 읽기와 쓰기 동작의 평균 전력을 IO 크기에 따라 측정한 그래프이다.
도 2는 본 발명의 일 실시예에 따른 낸드 플래시 메모리 장치의 블록 구성도를 나타낸 도면이다.
도 3은 본 발명의 개념을 설명하기 위해 전력을 줄이는 요청 동작들에 대한 스케줄링의 예시를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법을 나타낸 흐름도이다.
도 5는 16개의 각각의 플래시 메모리 칩에서 동시에 수행되는 요청 동작들의 실행 순서를 변경하는 스케줄링을 나타낸다.
도 6는 16개의 각각의 플래시 메모리 칩에서 동시에 수행되는 요청 동작들중 일부를 제외시키는 스케줄링을 나타낸다.
도 7은 본 발명의 다른 실시예에 따른 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법을 나타낸 흐름도이다.
도 8는 가비지 컬렉션과 관련하여 16개의 각각의 플래시 메모리 칩에서 동시에 수행되는 요청 동작들의 실행 순서를 변경하는 스케줄링을 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 낸드 플래시 메모리 장치의 블록 구성도를 나타낸 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 낸드 플래시 메모리 장치(100)는 프로세서(110), 호스트 인터페이스(120), 낸드 플래시 컨트롤러(130), SDRAM(140), 및 메모리부(150)를 포함하며, 멀티채널(multi-channel) 및 멀티웨이(multi-way) 구조를 가진다. 메모리부(150)는 복수의 플래시 메모리 칩(10~25)를 포함한다.
호스트 인터페이스(120)는 호스트 장치(미도시)와 낸드 플래시 메모리 장치(100) 사이의 인터페이스 기능을 수행하며, 고속의 데이터 전송을 지원하는 규격이 채용될 수 있다. 예를 들어, 호스트 인터페이스(110)는 Ultra DMA 모드 6, SATA 1 또는 SATA 2 등의 규격을 지원하도록 구성될 수 있다.
SDRAM(120)는 호스트 인터페이스(120)를 통해 호스트 장치로부터 제공된 데이터가 해당 플래시 메모리 칩에 기록되기 전까지 일시적으로 저장되는 쓰기 버퍼(Write Buffer)로 사용될 수 있다.
제어부(110)는 호스트 장치로부터 제공된 읽기 또는 쓰기 명령을 해석하여 플래시 메모리의 동작에 상응하도록 변환하여 처리하는 FTL(Flash Tranlation Layer) 기능을 수행하고, 낸드 플래시 메모리 장치(100)의 각 구성 요소에 대한 최상위 제어를 수행한다.
특히, 제어부(110)는 낸드 플래시 메모리 장치(100)의 최대 소비 전력을 최대 허용 전력 이하로 제어하기 위해 요청 동작을 스케줄링한다.
도 3은 본 발명의 개념을 설명하기 위해 전력을 줄이는 요청 동작들에 대한 스케줄링의 예시를 나타낸 도면이다.
복수개의 플래시 메모리 칩들을 포함하는 낸드 플래시 메모리 장치는 복수개의 플래시 메모리 칩들에 대해 병렬적으로 읽기 동작 및 쓰기 동작을 수행할 수 있다. 복수개의 메모리 칩들에 대한 요청 동작들은 동작 대기 열로 스케줄링되어 복수개의 메모리 칩들에 대해 동시에 수행될 수 있다.
도 3을 참조하면, R은 읽기를 뜻하고 W는 쓰기를 뜻한다. 도 3의 기존 방법에서는 대기 열에 수행하기 위한 읽기와 쓰기의 요청동작이 수행 되는 칩에 따라 차례로 나열되어 있다. 동작 대기 열(200)은 낸드 플래시 메모리 장치(100)의 각 메모리 칩에 수행되는 요청 동작들이 그 실행 순서에 따라 나열된 것이다. 예컨대, 낸드 플래시 메모리 장치(100)가 16개의 메모리 칩을 포함하는 경우,도 3에 도시된 바와 같이, 16개의 메모리 칩에 수행되는 각 요청 동작들(201~216)이 동시에 수행될 수 있다.
이 경우, 기존 방법에서는 16개의 쓰기 명령이 각각의 칩에 동시에 수행된다면, 최대 전력이 소모된다. 예컨대, 낸드 플래시 메모리 장치의 최대 허용 전력 또는 최적의 소모 전력이 16개의 쓰기 동작을 수행하는 경우 소모되는 전력보다 작은 경우가 발생하여, 발열 또는 전력 효율 저하 등의 문제점이 발생할 수도 있다. 하지만 본 발명에 따른 개선 방법에서는 한 번에 수행되는 쓰기와 읽기의 요청을 대기 열에서 수행되는 칩에 맞춰 재배열하는 방법을 통해 최대 전력을 줄일 수 있다.
이를 위해, 프로세서(110)는 현재 동시에 수행될 요청 동작들에 소모되는 전력을 계산하고, 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면, 요청 동작들을 재배열한다. 요청 동작들의 재배열은 요청 동작들의 소모 전력에 기초하여 이루어지는데, 즉 동작 대기 열 상에서 전력 소모가 큰 쓰기 요청의 순서를 변경하는 것에 기반한다. 도 3에서는 현재 수행될 요청 동작들(201~216) 중 예컨대, 메모리 칩 2에 대한 쓰기 요청(203) 및 메모리 칩 15에 대한 쓰기 요청(216)의 수행 순서가 변경된 것이 나타나 있다.
제1 실시예에 따라, 프로세서(110)는 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면 차후 수행되는 요청 동작들 중 읽기 요청이 있는 지를 판단한다. 차후 수행되는 동작 대기 열에서 읽기 요청이 존재하면, 프로세서(110)는 상기 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 읽기 요청과 교환하도록 스케줄링한다. 다시 말해 프로세서(110)는 차후에 수행될 읽기 요청이 미리 수행되도록 그리고, 현재 수행될 쓰기 요청을 차후에 수행되도록 요청 동작들을 스케줄링하여 현재 소모되는 전력의 크기를 감소시키는 것이다.
또한, 제2 실시예에 따라, 프로세서(110)는 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면 현재 수행될 요청 동작들 중 일부를 최대 허용 전력에 기초하여 차후 수행되도록 동작 대기 열의 요청 동작들을 스케줄링한다. 예컨대, 프로세서(110)는 현재 수행될 요청 동작들 중 전력 소모가 큰 쓰기 요청들의 일부를 현재 수행될 동작 그룹의 요청 동작들에서 제외한다. 이에 따라 현재 수행될 동작 그룹에 따른 소모 전력은 낸드 플래시 메모리 장치의 최대 허용 전력 이하로 감소될 수 있다. 한편, 프로세서(110)는 제외된 요청 동작들을 다음 수행될 동작 그룹에 삽입할 수 있다.
또, 제3 실시예에 따라, 프로세서(110)는 계산된 소모 전력이 최대 허용 전력 또는 최적의 소모 전력보다 크면 가비지 컬렉션이 필요한 메모리 칩이 존재하는 지를 판단한다. 가비지 컬렉션은, 전술한 바와 같이, 여유공간을 확보하기 위해 특정 블록을 삭제하는데 이를 위해 블록 안에 있는 유효한 데이터를 읽고 다른 빈 공간 블록에 데이터를 기록한다. 이와 같이, 가비지 컬렉션이 수행되면, 반드시 읽기 동작이 수행되어야 한다.
그러므로, 프로세서(110)는 가비지 컬렉션이 필요한 메모리 칩이 있다면 해당 메모리 칩에 대해 가비지 컬렉션을 수행하도록 하여 읽기 요청이 발생되도록 한다. 프로세서(110)는 읽기 요청이 발생되면 상기 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 읽기 요청과 교환하도록 스케줄링한다. 다시 말해 프로세서(110)는 가비지 컬렉션에 따른 읽기 요청을 현재 수행될 쓰기 요청과 교환하여 소모되는 전력의 크기를 감소시킨다.
NAND 플래시 컨트롤러(130)는 프로세서(110)의 제어에 상응하여 SDRAM(140)로부터 데이터를 제공받고 제공받은 데이터를 낸드 플래시 메모리 장치에 상응하는 저수준의 명령으로 변환하여 플래시 메모리 칩(150)에 전달한다. NAND 플래시 컨트롤러(130)에서 처리되는 명령어는 예를 들어, 페이지 읽기(write page), 페이지 읽기(read page), 페이지 소거(erase page), 페이지 복사(copyback page 등이 될 수 있다.
플래시 메모리 칩(150)은 각각 낸드 플래시 메모리로 구성될 수 있고, 예를 들어, 낸드 플래시 메모리 장치(100)의 전체 용량이 32GB인 경우 각각의 플래시 메모리 칩(150)은 2048개의 블록을 포함할 수 있고, 각 블록은 128개의 페이지를 포함할 수 있고, 각 페이지는 4kB의 크기를 가질 수 있다.
이러한 구성을 가진 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법을 도 4 내지 도 8을 참조하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법을 나타낸 흐름도이다.
도 4를 참조하면, 낸드 플래시 메모리 장치는 먼저 단계 310에서 요청 동작들이 존재하는 지를 판단한다. 즉, 낸드 플래시 메모리 장치는 실행될 동작들이 대기하는 지를 판단한다. 요청 동작이 존재하면, 낸드 플래시 메모리 장치는 단계 320에서 동작 대기 열에서 현재 동시에 수행되는 요청 동작들에 소모되는 전력을 계산한다. 예컨대, 요청 동작들 중 쓰기 동작에는 0.07 와트(W)가 소모될 수 있고 읽기 동작에는 0.01 와트(W)가 소모될 수 있다. 이러한 요청 동작들의 소모 전력과 낸드 플래시 메모리 장치에 포함된 구성요소들의 소모 전력을 고려하면 전체 소모 전력이 계산될 수 있다.
낸드 플래시 메모리 장치는 단계 330에서 계산된 소모 전력이 낸드 플래시 메모리 장치의 최대 허용 전력 또는 최적의 소모 전력 보다 큰 지를 판단한다. 계산된 소모 전력이 최대 허용 전력보다 크다면, 낸드 플래시 메모리 장치는 단계 340에서 차후 수행될 요청 동작들 중 읽기 요청이 있는 지를 판단한다. 만약 차후 수행될 요청 동작들 중 읽기 요청이 있다면 낸드 플래시 메모리 장치는 단계 350에서 상기 동시에 수행되는 요청 동작들 중 상기 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 동작 대기 열 상에서 상기 읽기 요청과 교환하는데, 이를 도 5를 참조하여 상세히 설명한다.
도 5는 16개의 각각의 플래시 메모리 칩에서 동시에 수행되는 요청 동작들의 실행 순서를 변경하는 스케줄링을 나타낸다.
도 5에 도시된 바와 같이, 한 번에 16개 쓰기 요청을 수행 할 때 1.9W 전력을 소비한다고 가정하고 시스템에서 허용되는 최대 전력 소비량이 1.7W이라고 가정한다. 1.7W 이하로 최대 전력을 소비하게 하려면 스케줄링을 통해 쓰기 요청 12개와 읽기 요청 4개를 16개의 칩에 각각 동시에 수행하도록 처리한다. 스케줄링에서 각각의 칩에 쓰여지는 읽기 요청이 쓰기 요청과 변경될 수 있는 경우 읽기 요청을 쓰기 요청과 재배열하여 먼저 수행하게 된다.
도 5에서는 12부터 15번 칩의 읽기 요청이 대기 열이 있다는 가정하고 읽기 요청과 쓰기 요청을 재배열 하였다. 이러한 방법으로 쓰기 요청 12개와 읽기 요청 4개를 동시에 수행하게 되면 최대 전력은 0.8 W + (0.07W x 12) + (0.01W x 4) = 약 1.68W이 되어 약1.68W 의 최대 전력을 소비하게 하게 된다. 이와 같이 대기 열에 읽기와 쓰기 요청이 있는 경우 스케줄러에 의해 동시에 수행되는 읽기와 쓰기 요청의 개수를 제어하여 설정된 전력 소비량 이하의 전력을 소비할 수 있다.
다시 도 4를 참조하면, 차후 수행될 요청 동작들 중 읽기 요청이 존재하지 않으면 낸드 플래시 메모리 장치는 단계 360에서 상기 요청 동작들 중 일부를 최대 허용 전력에 기초하여 차후에 수행되도록 요청 동작들의 동작 대기 열을 스케줄링하는데, 이를 도 6을 참조하여 상세히 설명한다.
도 6는 16개의 각각의 플래시 메모리 칩에서 동시에 수행되는 요청 동작들중 일부를 제외시키는 스케줄링을 나타낸다.
도 6을 참조하면, 한 번에 16개의 요청을 수행 할 수 있기 때문에 읽기 요청과 쓰기 요청이 대기 열에 있는 경우 혼합하여 데이터를 처리 했다. 대기 열에 읽기 요청만 있는 경우 16개의 읽기 요청을 한 번에 처리 해도 1.0W의 전력을 소비하여 1.7W이하로 전력을 소모한다. 하지만 대기 열에 읽기요청이 없고 쓰기 요청만 있을 때 허용되는 최대 전력 값인 1.7W이하로 전력을 소비하기 위해서는 동시에 수행되는 요청의 개수를 줄여야 한다.
쓰기 요청 당 소비되는 전력량이 0.07W이므로 1.7W를 넘지 않기 위해 그림 6과 같이 동시에 수행되는 요청이 16개가 아닌 12개로 설정하게 되면 0.8W + (0.07W x 12) = 약 1.64W 로 1.7W이하의 전력을 소비하게 된다. 그러므로 대기 열에 쓰기 요청만 있는 환경에서 최대 전력을 줄이기 위해서는 동시에 수행되는 쓰기 요청 수를 제어하여 전력 소비량을 줄일 수 있다.
도 7은 본 발명의 다른 실시예에 따른 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법을 나타낸 흐름도이다.
도 7을 참조하면, 낸드 플래시 메모리 장치는 먼저 단계 410에서 요청 동작들이 존재하는 지를 판단한다. 요청 동작이 존재하면, 낸드 플래시 메모리 장치는 단계 420에서 동작 대기 열에서 현재 동시에 수행되는 요청 동작들에 소모되는 전력을 계산한다.
낸드 플래시 메모리 장치는 단계 430에서 계산된 소모 전력이 낸드 플래시 메모리 장치의 최대 허용 전력 또는 최적의 소모 전력 보다 큰 지를 판단한다. 계산된 소모 전력이 최대 허용 전력보다 크다면, 낸드 플래시 메모리 장치는 단계 440에서 가비지 컬렉션이 필요한 메모리 칩이 존재하는 지를 판단한다. 가비지 컬렉션은 메모리 칩의 가용 용량이 미리 결정된 값보다 작아지면 수행된다. 즉, 가비지 컬렉션은 메모리 칩에서 데이터가 기록된 용량이 상기 미리 결정된 값보다 커지면 수행된다. 따라서, 낸드 플래시 메모리 장치는 각 메모리 칩의 가용 용량이 미리 결정된 값보다 작은 지를 판단함으로써 가비지 컬렉션이 필요한 메모리 칩을 식별할 수 있다.
낸드 플래시 메모리 장치는 가비지 컬렉션이 필요한 메모리 칩이 존재하면, 단계 450에서 해당 메모리 칩에 대해 가비지 컬렉션을 수행한다. 그에 따라 가비지 컬렉션에 따라 수행될 읽기 동작들이 발생하게 된다. 전술한 바와 같이, 가비지 컬렉션은 여유공간을 확보하기 위해 특정 블록을 삭제하는데 이를 위해 블록 안에 있는 유효한 데이터를 읽고 다른 빈 공간 블록에 데이터를 하므로, 반드시 읽기 요청을 발생시킨다.
그에 따라 낸드 플래시 메모리 장치는 단계 470에서 현재 동시에 수행되는 요청 동작들 중 가비지 컬렉션이 수행되는 메모리 칩에 대한 쓰기 요청을 가비지 컬렉션에 다른 읽기 요청과 그 동작 순서를 교환하는데,이를 도 8을 참조하여 상세히 설명한다.
도 8는 가비지 컬렉션과 관련하여 16개의 각각의 플래시 메모리 칩에서 동시에 수행되는 요청 동작들의 실행 순서를 변경하는 스케줄링을 나타낸다.
도 8을 참조하면, 최대전력을 줄이기 위해 16개의 플래시 메모리 중 12개만 쓰기 동작을 수행하여 나머지 4개의 플래시 메모리는 최대 전력을 줄이기 위해 아무 동작도 발생되지 않고 있다. 도 8의 예에서는 가비지 컬렉션 대상 블록이 8개의 페이지를 갖고 있고, 그 중 4개의 유효한 페이지와 4개의 무효한 페이지를 갖고 있다고 가정한다. 이러한 상황에서 도 6과 같이 쓰기 요청만 있는 경우, 가비지 컬렉션이 발생 할 때 읽어야 하는 유효한 4개의 페이지를 동작하지 않는 플래시 메모리에서 함께 읽는 동작을 수행한다. 이에 따라 동작하지 않는 플래시 메모리를 가비지 컬렉션에 따른 읽기 요청을 처리하게 하여 동시에 사용할 수 있는 플래시 메모리를 모두 동작하게 하여 효율성을 높인다.
위와 같은 방법을 사용하여 가비지 컬렉션 시 발생되는 읽기 동작을 미리 수행하게 되어 시간 및 전력을 줄일 수 있다.
한편, 다시 도 7을 참조하면, 가비지 컬렉션이 필요한 메모리 칩이 존재하지 않으면, 낸드 플래시 메모리 장치는 단계 460에서 상기 요청 동작들 중 일부를 최대 허용 전력에 기초하여 차후에 수행되도록 요청 동작들의 동작 대기 열을 스케줄링한다. 이 460 단계는 도 4의 360 단계와 유사하므로 그 관련 설명을 참조한다.
상기 도 4 및 도 7의 스케줄링 방법은 전술한 본 발명의 제1 내지 제3 실시예를 병합한 것으로 각 실시예는 단독으로 실행될 수 있고, 또는 모두 함께 수행될 수 있으므로, 본 발명은 이에 한정되지 않음은 당업자에 의해 자명하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (12)

  1. 삭제
  2. 요청 동작들을 스케줄링하는 낸드 플래시 메모리 장치에 있어서,
    복수개의 플래시 메모리 칩들을 포함하는 메모리부와,
    상기 복수개의 플래시 메모리 칩들에 대해 동시에 수행될 요청 동작들에 소모되는 전력을 계산하고, 계산된 소모되는 전력이 최대 허용 전력보다 크면, 상기 동시에 수행될 요청 동작들이 수행된 이후에 수행되는 요청 동작들 중 읽기 요청이 있는 지를 판단하고, 상기 읽기 요청이 있으면, 상기 동시에 수행될 요청 동작들 중, 상기 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 읽기 요청과 그 실행 순서를 교환하는 프로세서를 포함하는 낸드 플래시 메모리 장치.
  3. 요청 동작들을 스케줄링하는 낸드 플래시 메모리 장치에 있어서,
    복수개의 플래시 메모리 칩들을 포함하는 메모리부와,
    상기 복수개의 플래시 메모리 칩들에 대해 동시에 수행될 요청 동작들에 소모되는 전력을 계산하고, 계산된 소모되는 전력이 최대 허용 전력보다 크면, 상기 소모되는 전력이 상기 낸드 플래시 메모리 장치의 최대 허용 전력 이하가 되도록 상기 동시에 수행될 요청 동작들 중 일부 요청 동작들을 제외시키는 프로세서를 포함하는 낸드 플래시 메모리 장치.
  4. 삭제
  5. 요청 동작들을 스케줄링하는 낸드 플래시 메모리 장치에 있어서,
    복수개의 플래시 메모리 칩들을 포함하는 메모리부와,
    상기 복수개의 플래시 메모리 칩들에 대해 동시에 수행될 요청 동작들에 소모되는 전력을 계산하고, 계산된 소모되는 전력이 최대 허용 전력보다 크면, 가비지 컬렉션이 필요한 메모리 칩이 존재하는 지를 판단하고, 상기 가비지 컬렉션이 필요한 메모리 칩이 존재하면 가비지 컬렉션을 수행하고, 상기 동시에 수행될 요청 동작들 중, 상기 가비지 컬렉션에 따른 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 읽기 요청과 그 실행 순서를 교환하는 프로세서를 포함하는 낸드 플래시 메모리 장치.
  6. 제5항에 있어서,
    상기 프로세서는 각 메모리 칩의 가용 용량이 미리 결정된 값보다 작은 지를 판단함으로써 상기 가비지 컬렉션이 필요한 메모리 칩을 식별하는 것을 특징으로 하는 낸드 플래시 메모리 장치.
  7. 삭제
  8. 복수개의 플래시 메모리 칩들을 포함하는 메모리부를 포함하는 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법에 있어서,
    상기 복수개의 플래시 메모리 칩들에 대해 동시에 수행될 요청 동작들에 소모되는 전력을 계산하는 단계와,
    계산된 소모되는 전력이 최대 허용 전력보다 크면, 상기 동시에 수행될 요청 동작들이 수행된 이후에 수행되는 요청 동작들 중 읽기 요청이 있는 지를 판단하는 단계와,
    상기 읽기 요청이 있으면, 상기 동시에 수행될 요청 동작들 중, 상기 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 읽기 요청과 그 실행 순서를 교환하는 단계를 포함하는 스케줄링 방법.
  9. 복수개의 플래시 메모리 칩들을 포함하는 메모리부를 포함하는 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법에 있어서,
    상기 복수개의 플래시 메모리 칩들에 대해 동시에 수행될 요청 동작들에 소모되는 전력을 계산하는 단계와,
    계산된 소모되는 전력이 최대 허용 전력보다 크면, 상기 소모되는 전력이 상기 낸드 플래시 메모리 장치의 최대 허용 전력 이하가 되도록 상기 동시에 수행될 요청 동작들 중 일부 요청 동작들을 제외시키는 단계를 포함하는 스케줄링 방법.
  10. 삭제
  11. 복수개의 플래시 메모리 칩들을 포함하는 메모리부를 포함하는 낸드 플래시 메모리 장치에서 요청 동작들을 스케줄링하는 방법에 있어서,
    상기 복수개의 플래시 메모리 칩들에 대해 동시에 수행될 요청 동작들에 소모되는 전력을 계산하는 단계와,
    계산된 소모되는 전력이 최대 허용 전력보다 크면, 가비지 컬렉션이 필요한 메모리 칩이 존재하는 지를 판단하는 단계와,
    상기 가비지 컬렉션이 필요한 메모리 칩이 존재하면 가비지 컬렉션을 수행하는 단계와,
    상기 동시에 수행될 요청 동작들 중, 상기 가비지 컬렉션에 따른 읽기 요청에 대응하는 메모리 칩에 대한 쓰기 요청을 상기 읽기 요청과 그 실행 순서를 교환하는 단계를 포함하는 스케줄링 방법.
  12. 제11항에 있어서,
    상기 판단하는 단계는 각 메모리 칩의 가용 용량이 미리 결정된 값보다 작은 지를 판단함으로써 상기 가비지 컬렉션이 필요한 메모리 칩을 식별하는 단계를 포함하는 특징으로 하는 스케줄링 방법.
KR1020100037809A 2010-04-23 2010-04-23 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법 KR101135313B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100037809A KR101135313B1 (ko) 2010-04-23 2010-04-23 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100037809A KR101135313B1 (ko) 2010-04-23 2010-04-23 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110118296A KR20110118296A (ko) 2011-10-31
KR101135313B1 true KR101135313B1 (ko) 2012-04-17

Family

ID=45031917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100037809A KR101135313B1 (ko) 2010-04-23 2010-04-23 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101135313B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331366B2 (en) 2015-04-17 2019-06-25 Samsung Electronics Co., Ltd. Method of operating data storage device and method of operating system including the same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102526104B1 (ko) 2016-03-25 2023-04-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102278337B1 (ko) 2017-04-21 2021-07-19 에스케이하이닉스 주식회사 메모리장치의 스케줄러 및 스케줄링 방법
KR102491068B1 (ko) 2017-11-17 2023-01-19 에스케이하이닉스 주식회사 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049628A1 (en) * 2002-09-10 2004-03-11 Fong-Long Lin Multi-tasking non-volatile memory subsystem
KR20050035836A (ko) * 2005-01-24 2005-04-19 주식회사 퍼스터 다중 낸드 플래시 메모리 인터페이스 장치
KR20080070993A (ko) * 2007-01-29 2008-08-01 삼성전자주식회사 플래시 메모리 카드
KR20100115090A (ko) * 2009-04-17 2010-10-27 서울대학교산학협력단 버퍼를 고려한 가비지 컬렉션 기법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049628A1 (en) * 2002-09-10 2004-03-11 Fong-Long Lin Multi-tasking non-volatile memory subsystem
KR20050035836A (ko) * 2005-01-24 2005-04-19 주식회사 퍼스터 다중 낸드 플래시 메모리 인터페이스 장치
KR20080070993A (ko) * 2007-01-29 2008-08-01 삼성전자주식회사 플래시 메모리 카드
KR20100115090A (ko) * 2009-04-17 2010-10-27 서울대학교산학협력단 버퍼를 고려한 가비지 컬렉션 기법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331366B2 (en) 2015-04-17 2019-06-25 Samsung Electronics Co., Ltd. Method of operating data storage device and method of operating system including the same

Also Published As

Publication number Publication date
KR20110118296A (ko) 2011-10-31

Similar Documents

Publication Publication Date Title
US8341374B2 (en) Solid state drive and related method of scheduling operations
KR102283511B1 (ko) 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법
US9110669B2 (en) Power management of a storage device including multiple processing cores
US9417961B2 (en) Resource allocation and deallocation for power management in devices
US10540116B2 (en) Method of scheduling requests to banks in a flash controller
US6529416B2 (en) Parallel erase operations in memory systems
US8832333B2 (en) Memory system and data transfer method
US10761772B2 (en) Memory system including a plurality of chips and a selectively-connecting bus
KR102351668B1 (ko) 저장 장치 및 그것의 동작 방법
US10572379B2 (en) Data accessing method and data accessing apparatus
US8171239B2 (en) Storage management method and system using the same
US9804787B2 (en) Mitigating GC effect in a raid configuration
US20120079172A1 (en) Memory system
KR101752117B1 (ko) 단일 채널 내에서의 dram 공간적 통합을 위한 방법 및 장치
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
CN103809917A (zh) 用于存储器的工作调度方法及其存储系统
KR20120112965A (ko) 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법
US9977602B2 (en) Storage system, storage device, and control method of storage system
US20150081953A1 (en) Ssd (solid state drive) device
CN113924545A (zh) 基于存储器子系统中的媒体单元的可用性的预测性数据传输
JP2011070365A (ja) メモリシステム
KR20140032789A (ko) 불휘발성 메모리 장치의 컨트롤러 및 그것의 커멘드 스케줄링 방법
KR101135313B1 (ko) 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
KR20240004372A (ko) 고체 상태 드라이브에서의 호스트 제어 가비지 수집
US9075606B2 (en) Storage apparatus and method of determining device to be activated

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160328

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee