KR101725691B1 - 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법 - Google Patents

발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법 Download PDF

Info

Publication number
KR101725691B1
KR101725691B1 KR1020150187539A KR20150187539A KR101725691B1 KR 101725691 B1 KR101725691 B1 KR 101725691B1 KR 1020150187539 A KR1020150187539 A KR 1020150187539A KR 20150187539 A KR20150187539 A KR 20150187539A KR 101725691 B1 KR101725691 B1 KR 101725691B1
Authority
KR
South Korea
Prior art keywords
input
output
thermal margin
output queue
state
Prior art date
Application number
KR1020150187539A
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 KR1020150187539A priority Critical patent/KR101725691B1/ko
Priority to US15/221,909 priority patent/US10120426B2/en
Application granted granted Critical
Publication of KR101725691B1 publication Critical patent/KR101725691B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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/26Sensing or reading circuits; Data output circuits

Abstract

본 발명의 실시예들에 따른 비휘발성 데이터 저장 장치는 비휘발성 메모리 모듈들, 입출력 명령들로 구성되는 입출력 큐들을 호스트로부터 수신하는 입출력 큐 수신부, 입출력 큐에 부여된 우선순위에 기초하여 입출력 큐의 열적 마진을 결정하는 열적 마진 결정부, 비휘발성 메모리 모듈의 현재 온도와 열적 마진에 기초하여 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부, 입출력 큐들 각각의 열적 마진 상태들에 기초하여 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정하는 실행 순서 조정부 및 조정된 실행 순서에 따라 입출력 명령들을 실행하는 입출력 명령 실행부를 포함할 수 있다. 이때, 열적 마진은 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의할 수 있다.

Description

발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법{NON-VOLATILE STORAGE APPARATUS FOR STORING DATA AND METHOD FOR CONTROLLING ACCESS TO NON-VOLATILE STORAGE APPARATUS CONSIDERING HEAT}
본 발명은 비휘발성 메모리 기술에 관한 것으로, 더욱 상세하게는, 비휘발성 메모리 저장 장치의 데이터 액세스 제어 기술에 관한 것이다.
기존의 플래시 메모리 기술을 이용한 메모리 장치는 읽기/쓰기 액세스 속도의 비대칭, 지우기를 해야 하는 점, 수명이 짧다는 점, 대역폭 및 저장 용량 사이에서 타협하여 블록(block) 단위로 읽고(read) 쓰며(program), 페이지(page) 단위로 지우기(erase)를 한다.
읽기 동작은 워드 라인들의 센싱을 위한 전력만 필요하므로 매우 작은 전력을 소비한다. 쓰기 동작은 블록 내의 셀들의 플로팅 게이트 전극에 전하들을 주입하여야 하므로 읽기 동작에 비해 약 10 배에서 20 배 정도의 전력을 소비한다. 지우기 동작은 페이지 내의 모든 셀들의 플로팅 게이트들에 주입된 전하들을 몰아 내야 하므로, 읽기 동작에 비해 약 100 배에서 250 배 정도의 전력을 소비한다.
최근에 대중화되고 있는 SSD(Solid State Drive)와 같은 대용량 저장 장치는 시스템의 주 저장 장치로서 전통적인 HDD(Hard Disk Drive)를 대체하고 있다. 대용량 저장 장치는 대량의 데이터들을 지속적으로 읽고 쓰고 갱신해야 하며, 높은 신뢰성과 수명을 가져야 한다.
고밀도이고 고성능인 대용량의 비휘발성 저장 장치는 대량의 갱신 데이터에 대응하기 위해 지우기 및 쓰기 동작을 수행하고 자체적인 가비지 컬렉션 동작을 수행해야 하며, 쓰기 동작과 지우기 동작의 전력 소비는 곧 발열을 의미하므로, 결국 무시하기 어려운 발열 문제를 안고 있다.
플래시 메모리는 읽기 동작 시에는 셀에서 읽어낸 신호를 기준 레벨에 비교하여 데이터를 판정하고, 쓰기 동작 시에는 소정의 정해진 양의 전하들을 플로팅 게이트 전극에 주입해야 하는데, 발열은 이러한 기준 레벨이나 정해진 전하량을 교란시킬 수 있다.
이렇듯 발열은 그 자체로도 비휘발성 데이터 저장 장치에 여러 즉각적인 읽기/쓰기 오류 문제들을 일으키지만, 장기적으로도 비휘발성 데이터 저장 장치의 수명을 단축시킬 수 있다.
최근에 비휘발성 대용량 저장 장치를 위한 인터페이스 표준으로 NVMHCI(Non-Volatile Memory Host Controller Interface) 또는 NVMe(Non-Voltatile Memory Express)가 등장하면서 대용량 비휘발성 저장 장치가 대응하여야 하는 동작 환경은 더욱 가혹해지고 있다.
발열을 해결하는 가장 쉬운 방법은 물리적으로 방열을 하는 것이지만, 이는 단순히 생산자 측에서 제조 비용의 상승을 의미할 뿐 아니라, 소비자 측에서도 더 크고 더 많은 냉각 설비들, 더 많은 운용 비용, 더 많은 에너지 소비, 더 많은 온실 가스 방출을 의미한다. 따라서, 비휘발성 데이터 저장 장치의 열적 관리를 위해, 물리적인 방열 수단에 의존하지 않고, 발열 자체를 줄이는 것은 의외로 중요할 수 있다.
본 발명이 해결하고자 하는 과제는 발열을 고려한 비휘발성 데이터 저장 장치 및 데이터 액세스 제어 방법을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 비휘발성 메모리 인터페이스 규격과 호환되면서 소프트웨어적으로 발열을 줄일 수 있는 비휘발성 데이터 저장 장치 및 데이터 액세스 제어 방법을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 전체적인 쓰기 성능을 저하시키지 않으면서 발열을 줄일 수 있는 비휘발성 데이터 저장 장치 및 데이터 액세스 제어 방법을 제공하는 데에 있다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.
본 발명의 일 측면에 따른 비휘발성 데이터 저장 장치는 하나 이상의 비휘발성 메모리 모듈들; 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐(queue)들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부; 상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진(thermal margin)을 결정하는 열적 마진 결정부; 상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부; 상기 입출력 큐들 각각의 열적 마진 상태들에 기초하여, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정(arbitration)하는 실행 순서 조정부; 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하고, 상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며, 상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
일 실시예에 따라, 상기 열적 마진 결정부는 상기 호스트에 의해 상기 입출력 큐에 부여된 우선순위가 높을수록, 상기 입출력 큐가 읽기 명령을 포함할 경우, 또는 상기 입출력 큐의 길이가 짧을수록 상기 입출력 큐의 상기 열적 마진을 작게 결정하도록 동작할 수 있다.
일 실시예에 따라, 상기 실행 순서 조정부는 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트(burst) 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄이며, 상기 버스트 길이에 따라 입출력 명령들의 실행 순서를 조정하도록 동작할 수 있다.
일 실시예에 따라, 상기 실행 순서 조정부는 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정하고, 상기 우선순위들에 기초하여 입출력 명령들의 실행 순서를 조정하도록 동작할 수 있다.
일 실시예에 따라, 상기 실행 순서 조정부는 상기 우선순위들에 기초하여, 가중 라운드 로빈 조정(weighted round robin arbitration)에 따라 적어도 하나의 입출력 큐들의 입출력 명령들의 실행 순서를 조정하도록 동작할 수 있다.
일 실시예에 따라, 상기 비휘발성 데이터 저장 장치는 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하고, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 성능 제한 감시부를 더 포함하고, 상기 입출력 명령 실행부는 상기 성능 제한 감시부로부터 상기 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 관한 입출력 명령들의 실행을 성능 제한 해제 요청이 수신될 때까지 지연하도록 동작할 수 있다.
일 실시예에 따라, 상기 입출력 큐에 관하여 액세스되는 비휘발성 메모리 모듈은, 상기 입출력 큐가 호스트에 의한 쓰기 명령, 플러시 명령 또는 가비지 컬렉션(garbage collection)에 따른 쓰기 명령에 상응하는 경우에는, 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정될 수 있다.
일 실시예에 따라, 상기 비휘발성 데이터 저장 장치는 상기 비휘발성 메모리 모듈들 중에서 가비지 컬렉션이 필요한 비휘발성 메모리 모듈들과 여유 공간이 있는 비휘발성 메모리 모듈들을 모니터링하고, 가비지 컬렉션이 필요하다고 판정되면, 가비지 컬렉션의 처리에 관한 입출력 명령들로 구성되는 가비지 컬렉션 입출력 큐를 소정의 우선순위를 가지고 생성하며, 상기 입출력 큐 수신부에 상기 가비지 컬렉션 입출력 큐를 송신하는 가비지 컬렉션 처리부를 더 포함할 수 있다.
본 발명의 다른 측면에 따른 비휘발성 데이터 저장 장치를 위한 열 관리 장치로서, 비휘발성 데이터 저장 장치는 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 버스트 길이에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하고, 상기 열 관리 장치는 상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 열적 마진 결정부; 상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부; 및 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄이는 동적 성능 제어부를 포함하며, 상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하고, 상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
본 발명의 또 다른 측면에 따른 비휘발성 데이터 저장 장치를 위한 열 관리 장치로서, 비휘발성 데이터 저장 장치는 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 우선순위들에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하고, 상기 열 관리 장치는 상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 열적 마진 결정부; 상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부; 및 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 설정하는 동적 성능 제어부를 포함하며, 상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하고, 상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
본 발명의 또 다른 측면에 따라 하나 이상의 비휘발성 메모리 모듈들을 포함하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법은, 상기 비휘발성 데이터 저장 장치가, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐를 하나 이상의 호스트로부터 수신하는 단계; 상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계; 상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 단계; 상기 입출력 큐들 각각의 열적 마진 상태들에 기초하여, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정하는 단계; 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 단계를 포함하고, 상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며, 상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
일 실시예에 따라, 상기 입출력 큐의 상기 열적 마진은 상기 호스트에 의해 상기 입출력 큐에 부여된 우선순위가 높을수록, 상기 입출력 큐가 읽기 명령을 포함할 경우, 또는 상기 입출력 큐의 길이가 짧을수록 작게 결정될 수 있다.
일 실시예에 따라, 상기 실행 순서를 조정하는 단계는 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄이며, 상기 버스트 길이에 따라 입출력 명령들의 실행 순서를 조정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 실행 순서를 조정하는 단계는 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정하고, 상기 우선순위들에 기초하여 입출력 명령들의 실행 순서를 조정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 실행 순서를 조정하는 단계는, 상기 우선순위들에 기초하여, 가중 라운드 로빈 조정에 따라 적어도 하나의 입출력 큐들의 입출력 명령들의 실행 순서를 조정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법은, 상기 비휘발성 데이터 저장 장치가, 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하고, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 단계를 더 포함하고, 상기 입출력 명령들을 실행하는 단계는 상기 성능 제한 감시부로부터 상기 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 관한 입출력 명령들의 실행을 성능 제한 해제 요청이 수신될 때까지 지연하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 입출력 큐에 관하여 액세스되는 비휘발성 메모리 모듈은, 상기 입출력 큐가 호스트에 의한 쓰기 명령, 플러시 명령 또는 가비지 컬렉션에 따른 쓰기 명령에 상응하는 경우에는, 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정될 수 있다.
일 실시예에 따라, 상기 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법은, 가비지 컬렉션이 필요하다고 판정될 경우에, 상기 비휘발성 데이터 저장 장치가, 가비지 컬렉션의 처리에 관한 입출력 명령들 및 소정의 우선순위를 가지고 가비지 컬렉션 입출력 큐를 생성하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따라, 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 버스트 길이에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법으로서, 열 관리 장치가, 상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계; 상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 단계; 및 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄임으로써 버스트 길이를 결정하는 단계를 포함할 수 있고, 상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며, 상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
일 실시예에 따라, 상기 비휘발성 데이터 저장 장치를 위한 열 관리 방법은 상기 열 관리 장치가 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하는 단계; 및 상기 열 관리 장치가 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따라, 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 우선순위들에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법으로서, 열 관리 장치가, 상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계; 상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 명령 그룹의 열적 마진 상태를 결정하는 단계; 및 상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정하는 단계를 포함하고, 상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며, 상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
본 발명의 비휘발성 데이터 저장 장치 및 데이터 액세스 제어 방법은 비휘발성 메모리 인터페이스 규격과 호환되면서 소프트웨어적으로 발열을 줄일 수 있다.
본 발명의 비휘발성 데이터 저장 장치 및 데이터 액세스 제어 방법은 전체적인 쓰기 성능을 저하시키지 않으면서 발열을 줄일 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따라 동적 발열 관리를 할 수 있는 열 관리 장치 및 이를 구비하는 비휘발성 데이터 저장 장치를 예시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치에서 열적 마진의 개념을 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법을 예시한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치를 위한 열 관리 방법을 예시한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치를 위한 열 관리 방법을 예시한 순서도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따라 동적 발열 관리를 할 수 있는 열 관리 장치 및 이를 구비하는 비휘발성 데이터 저장 장치를 예시한 블록도이다.
도 1을 참조하면, 비휘발성 데이터 저장 장치(10)는 하나 이상의 비휘발성 메모리 모듈들(11), 입출력 큐(I/O queue) 수신부(12), 실행 순서 조정부(13), 입출력 명령 실행부(14), 가비지 컬렉션 처리부(15), 온도 센서(16) 및 열 관리 장치(100)를 포함할 수 있다.
실시예에 따라, 열 관리 장치(100)는 비휘발성 데이터 저장 장치(10) 내의 일부로 구현될 수도 있고, 또는 비휘발성 데이터 저장 장치(10)와 독립되도록 구현될 수도 있으며, 호스트 내에 구현될 수도 있다.
하나 이상의 비휘발성 메모리 모듈들(11)은 하드웨어적으로는 서로 열적으로 독립되어 있고 개별적으로 열 관리가 수행될 수 있어서, 어느 한 비휘발성 메모리 모듈(11)이 과열되더라도 다른 비휘발성 메모리 모듈(11)은 정상 동작 범위 내에 있을 수 있다.
호스트는 하나 이상의 비휘발성 메모리 모듈들(11)의 각각을 구별하지 않고 논리적으로 하나의 큰 저장 장치처럼 인식한다. 이러한 하나의 큰 저장 장치는 내부에 적어도 하나의 논리적 저장 공간들을 가질 수 있다. NVMe 규격은 이러한 논리적 저장 공간을 네임스페이스(namespace)라 부른다. 네임스페이스는 네임스페이스 ID에 의해 고유하게 구별된다. NVMe 규격은 하나의 시스템 내에서 복수의 호스트들과 복수의 비휘발성 데이터 저장 장치들의 동적인 연결을 지원한다. 따라서 임의의 복수의 호스트들이 동일한 논리적 저장 공간에 접근할 수 있도록, 네임스페이스 ID들은 적어도 복수의 호스트들 사이에서는 서로 고유하게 식별되도록 부여되며, 이들 호스트들 사이에서 공유된다. 따라서, 어떤 호스트가 연결되거나 또는 연결 해제되더라도 호스트에서 구동되는 소프트웨어는 특정 네임스페이스에 접근할 수 있다. 또한 네임스페이스는 논리적 저장 공간이므로, 실제 데이터들을 저장하는 하드웨어들이 정비를 위해 교체된다거나 가비지 컬렉션이 수행되어 실제 데이터의 저장 위치가 이동하는 등의 물리적인 변동이 있더라도, 그러한 물리적 변동에 상관없이 어떠한 호스트들도 데이터에 접근할 수 있다.
호스트 측에서는 비휘발성 저장 장치들을 통제하는 컨트롤러 관리 모듈과 개별 코어들이 각각 비휘발성 저장 장치에 대해 입출력 큐들을 생성할 수 있다.
입출력 큐는 예를 들어, 특정 네임스페이스에 대한 읽기, 쓰기 또는 플러쉬(flush) 명령들이나, 또는 그 밖에 다양한 동작 제어를 위한 입출력 명령들로 구성될 수 있다. 입출력 큐는 하나의 쓰레드 또는 하나의 어플리케이션이 데이터 액세스를 요청하면 호스트의 프로세서 코어에 의해 생성된다. 하나의 코어가 여러 쓰레드들을 구동한다면 여러 개의 입출력 큐들이 생성될 수 있다. 입출력 큐들도 당해 시스템 내의 모든 호스트들과 모든 비휘발성 저장 장치들이 고유하게 식별할 수 있도록 입출력 큐 ID들이 고유하게 부여된다.
각 입출력 큐는 각각 고정된 크기를 가지는 복수의 연속하는(contiguous) 엘리먼트들로 구성되며, 각 엘리먼트마다 입출력 명령이 탑재될 수 있다. 입출력 큐는 헤드 포인터가 가리키는 엘리먼트에서 시작하고, 테일 포인터가 가리키는 엘리먼트에서 끝난다. 입출력 큐가 최대 길이까지 포화되지 않았다면 테일 포인터가 가리키는 엘리먼트의 다음 엘리먼트에 새로운 입출력 명령이 탑재될 수 있다.
한편, 입출력 큐에는 소정의 우선순위가 호스트에 의해 부여될 수 있다. 예를 들어, 우선순위는 "긴급(urgent)", "높음(high)", "중간(medium)" 및 "낮음(low)"과 같이 부여될 수 있다. 예를 들어, 컨트롤러 관리 모듈이 생성한 관리자 입출력 큐는 "긴급" 우선순위를 가질 수 있다. 우선순위가 높은 쓰레드의 입출력 요청에 의해 생성된 입출력 큐는 "높음" 우선순위를 가질 수 있다.
NVMe 규격은 최대 6만5천여 개의 입출력 큐들을 지원하며 각 입출력 큐마다 최대 64K 개까지 입출력 명령들을 탑재할 수 있다.
호스트는 각각의 입출력 큐들을 예를 들어 PCI-e 버스를 통해 프로세서 코어로부터 비휘발성 메모리 저장 장치(10)로 전송한다.
비휘발성 메모리 저장 장치(10)의 입출력 큐 수신부(12)는 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신할 수 있다.
실행 순서 조정부(13)는 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정(arbitration)할 수 있다.
실행 순서 조정부(13)는 예를 들어 라운드 로빈(round robin) 또는 가중 라운드 로빈(weighted round robin)과 같은 조정 기법에 따라 입출력 명령들의 실행 순서를 조정할 수 있다.
실행 순서는 버스트 길이(burst size) 또는 우선순위에 따라 영향을 받을 수 있다.
예를 들어, 버스트 길이는 한 번에 연속적으로 처리되는 입출력 명령들의 길이로서, NVMe 규격에서는 2^n으로, 예를 들어, 1, 2, 4, ..., 64 또는 무제한 중 하나의 값으로 지정될 수 있다.
입출력 명령들의 실행 순서는 하드웨어적으로 동시에 접근 가능한 단위인 메모리 뱅크마다 결정될 수 있다.
입출력 명령 실행부(14)는, 각 메모리 뱅크마다, 조정된 실행 순서에 따라 비휘발성 메모리 모듈들(11)에 대해 입출력 명령들을 실행할 수 있다.
한편, 입출력 명령들 중 읽기 명령은 읽기 명령의 대상이 되는 데이터가 저장된 논리적 저장 공간이 이미 정해져 있으므로, 온도와 상관없이, 그 논리적 저장 공간에 상응하는 비휘발성 메모리 모듈이 결정된다.
반면에, 입출력 명령들 중 쓰기 명령이나 플러시 명령, 내지 그밖에 쓰기 동작을 유발하는 명령들은 빈 공간에 쓰기 동작을 수행해야 하거나 또는 할 수 있다. 예를 들어 랜덤 액세스가 불가능한 방식의 비휘발성 메모리 모듈에서는 쓰기 동작은 반드시 빈 공간에 수행되어야 한다. 랜덤 액세스가 가능한 방식의 비휘발성 메모리 모듈에서는 쓰기 동작은 기존 데이터가 저장된 위치에 덮어쓰기로도 가능하고 또는 빈 공간에 새로 쓰기로도 수행될 수 있다.
이에 따라, 입출력 큐가 호스트에 의한 쓰기 명령 또는 플러시 명령을 포함하는 경우에는, 쓰기 명령 또는 플러시 명령에 의해 쓰기 동작이 수행될 비휘발성 메모리 모듈은 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정될 수 있다.
한편, 비휘발성 메모리 저장 장치(10)는 때때로 필요에 따라 가비지 컬렉션(garbage collection)을 수행할 수 있다. 이를 위해 가비지 컬렉션 처리부(15)는 비휘발성 메모리 모듈들(11) 중에서 가비지 컬렉션이 필요한 비휘발성 메모리 모듈들과 여유 공간이 있는 비휘발성 메모리 모듈들을 모니터링할 수 있다.
실시예에 따라, 가비지 컬렉션 처리부(15)는 액세스 요청이 없으면서 심하게 단편화된 페이지를 색출하고 적당한 빈 페이지에 독자적으로 가비지 컬렉션을 수행할 수 있다.
실시예에 따라, 가비지 컬렉션 처리부(15)는 가비지 컬렉션이 필요하다고 판정되면, 가비지 컬렉션의 처리에 관한 입출력 명령들로 구성되는 가비지 컬렉션 입출력 큐를 소정의 우선순위를 가지고 생성하며, 입출력 큐 수신부(11)가 수신하는 입출력 큐들 사이에 가비지 컬렉션 입출력 큐를 추가함으로써, 가비지 컬렉션을 다른 입출력 큐들과 동등하게 취급할 수 있다.
이러한 실시예에서는, 가비지 컬렉션도 아래에 설명된 본 발명의 동적 열 관리 기법에 따라 적절하게 처리될 수 있다.
또한, 가비지 컬렉션 입출력 큐에 관하여 액세스되는 비휘발성 메모리 모듈은, 가비지 컬렉션 입출력 큐가 가비지 컬렉션에 따른 쓰기 명령을 포함하므로, 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정될 수 있다.
이렇듯, NVMe 규격과 같은 고성능의 비휘발성 메모리 인터페이스는 비휘발성 메모리 모듈들(11)이 대량의 데이터들을 고속으로 처리하도록 요구하기 때문에 발열에 적극적으로 대처할 필요가 있다.
NVMe 규격은 단지 비휘발성 메모리 저장 장치(10) 전체에 관하여 온도 센서들(16)이 검출한 온도가 위험 상태인지 여부를 판정할 임계 온도 또는 한계 온도를 설정할 수 있게 하고, 검출된 온도가 임계 온도 또는 한계 온도를 초과하면 비휘발성 메모리 저장 장치(10)의 하드웨어 전체의 성능을 낮추거나 중단시키며 비동기 이벤트 발생(Asynchronous event)을 보고하는 정도의 대책만 정의할 뿐이다.
반면에, 본 발명은 비휘발성 메모리 저장 장치(10) 전체의 성능을 온도에 따라 일괄적으로 제한하는 대신에, 개별 입출력 큐마다 중요도에 따라 동적으로 성능 제한을 강제함으로써 발열 요인인 입출력 명령들의 실행을 시간적으로 또한 공간적으로 분산시킬 수 있다. 나아가 본 발명은 그러한 발열 요인들의 분산에도 불구하고 발열이 심각해질 경우에도, 일괄적으로 장치 전체의 동작을 중단하는 대신에, 입출력 명령들의 중요도에 따라 선별된 일부 입출력 명령들을 기어이 실행함으로써 체감 성능을 최대한 유지할 수 있다.
이러한 목적을 위한 본 발명의 실시예들에 따른 열 관리 장치(100)는 비휘발성 메모리 모듈들(11)의 동적인 온도 변화에도 불구하고 성능을 확보하기 위해, 열적 마진 결정부(110), 열적 마진 상태 결정부(120), 동적 성능 제어부(130) 및 성능 제한 감시부(140)를 포함할 수 있다.
열적 마진 결정부(110)는, 입출력 큐 수신부(11)에서 수신된 입출력 큐마다, 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 입출력 큐의 길이 중 어느 하나에 기초하여 입출력 큐의 열적 마진(thermal margin)을 결정할 수 있다.
열적 마진은 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의할 수 있다.
열적 마진 상태는 현재 온도가 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
도 2는 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치에서 열적 마진의 개념을 예시한 도면이다.
도 2는 입출력 명령들의 수행에 따라 온도가 상승하고 하강하는 시나리오에서 온도 변화를 대략적으로 예시한다.
한계 온도는 그 온도에서 비휘발성 메모리 모듈(11)이 즉각 고장나는 것은 아니지만 비휘발성 메모리 모듈(11)을 보호하기 위해서 또는 사용자에게 부상을 입히지 않도록 적극적으로 전력 관리(Power Management) 기능을 적용하여야 하는 온도이다.
문턱 온도는, 만약 현재 온도가 문턱 온도를 돌파하지 않는 한 강제로 전력 관리 기능을 적용하지 않지만, 현재 온도가 문턱 온도에 도달하면 전력 관리 기능을 고려할 필요가 있는 온도이다. 즉, 문턱 온도는 발열을 방지하기 위해 성능을 제한하기 시작하는 온도이다.
통상적으로, 문턱 온도는 하드웨어 전체에 대해 부여되지만, 본 발명의 실시예들에서는 입출력 큐들마다 다르게 결정될 수 있다.
본 발명의 열 관리 장치 및 방법에서 의미하는 열적 마진은 한계 온도부터 문턱 온도의 거리이다.
만약 어떤 비휘발성 메모리 모듈(11)의 한계 온도가 80℃이고, A 지점에서 수신된 제1 입출력 큐의 열적 마진이 15℃로 결정된 경우에, 제1 입출력 큐의 문턱 온도는 65℃이다. A 지점에서 현재 온도가 60℃라면, 제1 입출력 큐는 실행될 수 있다.
제1 입출력 큐의 실행에 따라 비휘발성 메모리 모듈(11)의 발열량이 방열량보다 많으면 열적 평형이 깨지고 온도가 상승하기 시작한다.
상승하는 온도가 문턱 온도를 돌파하기 전까지는, 제1 입출력 큐가 종료되기만 하면 온도는 낮아질 수 있으므로, 제1 입출력 큐의 실행을 제한할 필요는 없다.
만약 온도가 상승하면서 현재 온도가 문턱 온도에 도달한 후(B 지점)에 제1 입출력 큐의 실행을 제한하지 않으면, 온도는 계속 상승하여 C 지점에서 한계 온도에 도달할 것이다.
반면에, 온도가 B 지점을 돌파할 때에 제1 입출력 큐의 실행을 제한하는 어떤 조치가 취해지면, 온도는 상승 추세가 완화되고 하강 추세로 변하여 D 지점에서 문턱 온도보다 다시 낮아질 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 저장 장치는, 현재 온도 그 자체가 아닌, 각 입출력 큐마다 다른 문턱 온도에서 한계 온도까지 열적 마진과 현재 온도에 기초하여 실행 제한 조치를 결정한다. 따라서, 만약 열적 마진이 크게 결정되면, 상대적으로 낮은 온도인 예를 들어 60℃의 현재 온도에서도 발열을 줄이도록 입출력 큐의 실행이 제한될 수 있지만, 열적 마진이 작게 결정되면 상대적으로 높은 온도인 예를 들어 80℃에 도달했을 때에도 발열에도 불구하고 입출력 큐의 실행이 보장될 수 있다.
이렇듯, 본 발명은 입출력 큐마다 동적으로 조절되는 열적 마진과 현재 온도에 기초하여 동적으로 열적 관리를 수행할 수 있다.
예를 들어, 우선순위가 "긴급"이나 "높음"으로 높은 제2 입출력 큐가 A' 지점에 수신될 경우에, 제2 입출력 큐의 열적 마진은 5℃로 상대적으로 작게 결정될 수 있다. 이에 따라, 이러한 제2 입출력 큐는 비휘발성 메모리 모듈(11)의 현재 온도(A' 지점)가 70℃라고 하더라도 열적 마진에 따른 문턱 온도 75℃보다 현재 온도가 낮으므로 이러한 제2 입출력 큐의 실행은 보장될 수 있다.
반면에, A'' 지점에서 수신되고 우선순위가 "보통"인 제3 입출력 큐의 열적 마진은 20℃로 상대적으로 크게 결정될 수 있다. 이에 따라, 이러한 제3 입출력 큐가 액세스하려는 비휘발성 메모리 모듈(11)의 현재 온도(A'' 지점)가 위의 경우와 똑같이 70℃라면, 열적 마진에 따른 문턱 온도 60℃보다 현재 온도가 높으므로 이러한 제3 입출력 큐의 실행은 제한될 수 있다.
이렇듯, 본 발명의 실시예들에서는, 해당 비휘발성 메모리 모듈(11)의 현재 온도에 따라 모든 입출력 큐들의 액세스가 일괄적으로 제어되는 것이 아니라, 입출력 큐마다 다른 열적 마진과 현재 온도에 따라 액세스가 선택적으로 제어될 수 있다.
도 1로 돌아가서, 구체적으로, 열적 마진 결정부(110)는 입출력 큐의 우선순위가 높을수록 해당 입출력 큐의 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
실시예에 따라, 열적 마진 결정부(110)는 입출력 큐의 길이가 짧을수록 해당 입출력 큐의 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다. 입출력 큐의 길이가 짧다면 상대적으로 적은 발열을 일으킬 것이므로, 이러한 입출력 큐의 입출력 명령들은 실행하는 편이 바람직할 수 있다.
예를 들어, 한계 온도가 80℃이면, 입출력 큐의 길이가 100 개의 엘리먼트들에 불과한 짧은 입출력 큐의 열적 마진은 5℃로 상대적으로 작게 결정될 수 있다. 이에 따라, 이러한 짧은 입출력 큐가 액세스하려는 비휘발성 메모리 모듈(11)의 현재 온도가 70℃라고 하더라도 열적 마진에 따른 문턱 온도 75℃보다 현재 온도가 낮으므로 이러한 짧은 입출력 큐의 실행은 보장될 수 있다.
반면에, 입출력 큐의 길이가 10000 개의 엘리먼트들에 달하는 긴 입출력 큐의 열적 마진은 20℃로 상대적으로 크게 결정될 수 있다. 이에 따라, 이러한 입출력 큐가 액세스하려는 비휘발성 메모리 모듈(11)의 현재 온도가 위의 경우와 똑같이 70℃라면, 열적 마진에 따른 문턱 온도 60℃보다 현재 온도가 높으므로 이러한 입출력 큐의 실행은 제한될 수 있다.
또 다른 실시예에서, 열적 마진 결정부(110)는 입출력 큐의 우선순위를 수치화한 값(값이 낮을수록 높은 우선순위를 의미)과 길이의 가중 합산치가 작을수록 해당 입출력 큐의 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
또 다른 실시예에서, 열적 마진 결정부(110)는 입출력 큐에 포함된 입출력 명령이 읽기 명령인 경우에는 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
예를 들어, 한계 온도가 80℃이면, 입출력 큐가 모두 읽기 명령만 포함한다면 입출력 큐의 열적 마진은 5℃로 상대적으로 작게 결정될 수 있다. 이에 따라, 읽기 명령은 상대적으로 작은 발열을 유발하므로 입출력 큐가 읽기를 하려는 비휘발성 메모리 모듈(11)의 현재 온도가 70℃라고 하더라도 열적 마진에 따른 문턱 온도 75℃보다 현재 온도가 낮으므로 이러한 입출력 큐의 읽기 명령들의 실행은 보장될 수 있다.
반면에, 열적 마진 결정부(110)는 입출력 큐에 포함된 입출력 명령이 호스트로부터 쓰기 명령 또는 플러시 명령인 경우 또는 가비지 컬렉션의 처리를 위한 입출력 명령들인 경우에는 열적 마진의 크기를 크게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 낮게 설정할 수 있다.
예를 들어, 입출력 큐가 다수의 쓰기 명령들을 포함한다면 입출력 큐의 열적 마진은 20℃로 상대적으로 크게 결정될 수 있다. 이에 따라, 쓰기 명령은 상대적으로 많은 발열을 유발하므로 이러한 입출력 큐가 쓰기를 하려는 비휘발성 메모리 모듈(11)의 현재 온도가 위의 경우와 똑같이 70℃라면, 열적 마진에 따른 문턱 온도 60℃보다 현재 온도가 높으므로 이러한 입출력 큐의 쓰기 명령들의 실행은 제한될 수 있다.
열적 마진 상태 결정부(120)는 비휘발성 메모리 모듈들(11) 중에 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 열적 마진에 기초하여 입출력 큐의 열적 마진 상태를 결정할 수 있다.
예를 들어, 열적 마진 상태는 현재 온도가 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
동적 성능 제어부(130)는 다양한 실시예들에 따라 입출력 명령들의 전체적인 실행 속도를 조절할 수 있다.
실시예에 따라, 동적 성능 제어부(130)는 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄임으로써, 실행 속도를 조절할 수 있다.
예를 들어, 동적 성능 제어부(130)가 높은 우선순위 또는 짧은 길이로 열적 마진 상태가 정상 상태로 결정된 제1 입출력 큐에 대해서 버스트 길이를 무제한으로 설정한다면, 실행 순서 조정부(14)가 제1 입출력 큐를 구성하는 모든 입출력 명령들을 길이 제한 없이 실행 순서에 편입할 것이므로, 제1 입출력 큐는 높은 온도에도 불구하고 빠르게 처리될 수 있다.
반면에, 동적 성능 제어부(130)가 낮은 우선순위 또는 긴 길이로 열적 마진 상태가 제한 상태로 결정된 제2 입출력 큐에 대해서 버스트 길이를 16 정도로 짧게 설정한다면, 실행 순서 조정부(14)는 제2 입출력 큐를 구성하는 입출력 명령들을 16 개씩 실행 순서에 편입할 것이므로, 제2 입출력 큐는 높은 온도 때문에 느리게 처리될 것이고, 발열은 제한될 것이다.
실시예에 따라, 동적 성능 제어부(130)는 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정할 수 있다.
예를 들어, 같은 "보통" 우선순위를 갖는 제1 및 제2 입출력 큐들 중에서 제1 입출력 큐는 열적 마진 상태가 정상 상태이고 제2 입출력 큐는 열적 마진 상태가 제한 상태라면, 동적 성능 제어부(130)는 제1 입출력 큐의 우선순위를 "높음"으로, 제2 입출력 큐의 우선순위를 "낮음"으로 다시 설정할 수 있다.
이에 따라, 실행 순서 조정부(14)는 가중 라운드 로빈 조정 기법에 따라, 우선순위가 높아진 제1 입출력 큐의 입출력 명령들을 좀더 높은 빈도로, 우선순위가 낮아진 제2 입출력 큐의 입출력 명령들을 좀더 적은 빈도로, 각각 실행 순서에 편입할 수 있다. 제1 입출력 큐는 높은 온도에도 불구하고 빠르게 처리될 수 있고, 제2 입출력 큐는 높은 온도 때문에 느리게 처리되며 발열이 제한될 것이다.
성능 제한 감시부(140)는 온도 센서들(16)에 의해 감지되는 비휘발성 메모리 모듈들(11)의 현재 온도가 임계 온도 또는 한계 온도를 초과하는 위험 온도 상황의 발생을 감시할 수 있다.
성능 제한 감시부(140)는 위험 온도 상황이 발생한 비휘발성 메모리 모듈(11)에 대해 성능 제한 요청을 생성하거나, 또는 위험 온도 상황이 종료된 비휘발성 메모리 모듈(11)에 대한 성능 제한 해제 요청을 생성할 수 있다.
이 경우에, 입출력 명령 실행부(14)는 성능 제한 감시부(140)로부터 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈(11) 또는 전체 비휘발성 메모리 모듈들(11)에 관한 입출력 명령들의 실행을 지연할 수 있고, 성능 제한 해제 요청이 수신되면 입출력 명령들의 실행을 재개할 수 있다.
실시예에 따라, 실행 순서 조정부(14)가 성능 제한 요청에 응답할 수도 있다. 이 경우에, 실행 순서 조정부(14)는 성능 제한 감시부(140)로부터 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈(11) 또는 전체 비휘발성 메모리 모듈들(11)에 관한 입출력 명령들에 관한 실행 순서의 조정을 지연할 수 있고, 성능 제한 해제 요청이 수신되면 실행 순서의 조정을 재개할 수 있다.
실시예에 따라, 동적 성능 제어부(130)가 성능 제한 요청에 응답할 수도 있다. 이 경우에, 동적 성능 제어부(130)는 성능 제한 감시부(140)로부터 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈(11) 또는 전체 비휘발성 메모리 모듈들(11)에 관한 입출력 큐들의 버스트 길이를 최소화하거나 또는 관리자 입출력 큐를 제외하고 모든 입출력 큐들의 우선순위들을 최저로 설정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법을 예시한 순서도이다.
도 3을 참조하면, 하나 이상의 비휘발성 메모리 모듈들을 포함하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법은 단계(S31)에서 비휘발성 데이터 저장 장치가 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐를 하나 이상의 호스트로부터 수신하는 단계로부터 시작할 수 있다.
한편, 가비지 컬렉션이 필요하다고 판정될 경우에, 비휘발성 데이터 저장 장치는 가비지 컬렉션의 처리에 관한 입출력 명령들 및 소정의 우선순위를 가지고 가비지 컬렉션 입출력 큐를 생성할 수도 있다. 가비지 컬렉션 입출력 큐는 호스트로부터 수신되는 입출력 큐와 동등하게 취급될 수 있다.
단계(S32)에서, 비휘발성 데이터 저장 장치가 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 입출력 큐의 열적 마진을 결정할 수 있다.
열적 마진은 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이로서 정의될 수 있다.
실시예에 따라, 단계(S32)에서, 비휘발성 데이터 저장 장치는 입출력 큐의 우선순위가 높을수록 해당 입출력 큐의 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
실시예에 따라, 단계(S32)에서, 비휘발성 데이터 저장 장치는 입출력 큐의 길이가 짧을수록 해당 입출력 큐의 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
실시예에 따라, 단계(S32)에서, 비휘발성 데이터 저장 장치는 입출력 큐의 우선순위를 수치화한 값과 길이의 가중 합산치가 작을수록 해당 입출력 큐의 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
실시예에 따라, 단계(S32)에서, 비휘발성 데이터 저장 장치는 입출력 큐에 포함된 입출력 명령이 읽기 명령인 경우에는 열적 마진의 크기를 작게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 높게 설정할 수 있다.
실시예에 따라, 단계(S32)에서, 비휘발성 데이터 저장 장치는 입출력 큐에 포함된 입출력 명령이 쓰기 명령 또는 플러시 명령인 경우나, 가비지 컬렉션의 처리에 관련된 입출력 명령들인 경우에는 열적 마진의 크기를 크게 결정할 수 있고, 그에 따라 해당 입출력 큐의 문턱 온도를 낮게 설정할 수 있다.
이어서 단계(S33)에서, 비휘발성 데이터 저장 장치는 비휘발성 메모리 모듈들 중에 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 열적 마진에 기초하여 입출력 큐의 열적 마진 상태를 결정할 수 있다.
열적 마진 상태는 현재 온도가 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
한편, 입출력 큐에 관하여 선정되는 비휘발성 메모리 모듈은, 입출력 큐가 호스트에 의한 쓰기 명령, 플러시 명령 또는 가비지 컬렉션에 따른 쓰기 명령에 상응하는 경우에는, 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정될 수 있다.
단계(S34)에서, 비휘발성 데이터 저장 장치는 입출력 큐들 각각의 열적 마진 상태들에 기초하여, 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정할 수 있다.
실시예에 따라, 단계(S34)에서, 비휘발성 데이터 저장 장치는 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘릴 수 있고, 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄일 수 있다.
이에 따라, 비휘발성 데이터 저장 장치는 버스트 길이에 따라 입출력 명령들의 실행 순서를 조정할 수 있다.
실시예에 따라, 단계(S34)에서, 비휘발성 데이터 저장 장치는 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정할 수 있다.
이에 따라, 비휘발성 데이터 저장 장치는 우선순위들에 기초하여 입출력 명령들의 실행 순서를 조정할 수 있다.
실시예에 따라, 단계(S34)에서, 비휘발성 데이터 저장 장치는 우선순위들에 기초하여, 가중 라운드 로빈 조정에 따라 적어도 하나의 입출력 큐들의 입출력 명령들의 실행 순서를 조정할 수 있다.
단계(S35)에서, 비휘발성 데이터 저장 장치는 조정된 실행 순서에 따라 입출력 명령들을 실행할 수 있다.
한편, 실시예에 따라, 단계(S36)에서, 비휘발성 데이터 저장 장치는 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시할 수 있다.
또한 단계(S37)에서, 비휘발성 데이터 저장 장치는 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성할 수 있다.
이에 따라, 단계(S37)에서, 비휘발성 데이터 저장 장치는 성능 제한 요청이 생성되면, 단계(S35)에서, 비휘발성 데이터 저장 장치는 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 명령들의 실행을, 성능 제한 요청이 있은 때부터 성능 제한 해제 요청이 있을 때까지, 지연할 수 있다.
실시예에 따라, 성능 제한 요청에 의해 실행 순서의 조정이 지연될 수도 있다. 이 경우에, 단계(S37)에서 성능 제한 요청이 생성되면, 단계(S34)에서, 비휘발성 데이터 저장 장치는 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 명령들에 관한 실행 순서의 조정을, 성능 제한 요청이 있은 때부터 성능 제한 해제 요청이 생성될 때까지, 지연할 수 있다.
실시예에 따라, 단계(S36)에서 성능 제한 요청이 생성되면, 단계(S34)에서, 비휘발성 데이터 저장 장치는 위험 온도 상황이 발생한 비휘발성 메모리 모듈(11) 또는 전체 비휘발성 메모리 모듈들(11)에 관한 입출력 큐들의 버스트 길이를 최소화하거나 또는 관리자 입출력 큐를 제외하고 모든 입출력 큐들의 우선순위들을 최저로 설정할 수 있다.
도 4는 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치를 위한 열 관리 방법을 예시한 순서도이다.
도 4의 실시예에서 비휘발성 데이터 저장 장치는 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 입출력 큐들을 구성하는 입출력 명령들에 관하여 버스트 길이에 따라 실행 순서를 조정하는 실행 순서 조정부 및 조정된 실행 순서에 따라 입출력 명령들을 실행하는 입출력 명령 실행부를 포함한다.
이러한 비휘발성 데이터 저장 장치를 위한 열 관리 방법은, 단계(S41)에서, 열 관리 장치가 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계로부터 시작할 수 있다.
열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의할 수 있다.
단계(S42)에서, 열 관리 장치는 비휘발성 메모리 모듈들 중에 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 열적 마진에 기초하여 입출력 큐의 열적 마진 상태를 결정할 수 있다.
열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
단계(S43)에서, 열 관리 장치는 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄임으로써 버스트 길이를 결정할 수 있다.
이에 따라, 비휘발성 데이터 저장 장치의 실행 순서 조정부는 결정된 버스트 길이에 따라 실행 순서를 조정함으로써, 동적으로 발열을 관리할 수 있다.
한편, 실시예에 따라, 단계(S44)에서, 열 관리 장치는 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시할 수 있다.
단계(S45)에서, 열 관리 장치는 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성할 수 있다.
실시예에 따라, 열 관리 장치는 성능 제한 요청 또는 성능 제한 해제 요청을 비휘발성 데이터 저장 장치의 입출력 명령 실행부에 송신할 수 있다. 이 경우에, 입출력 명령 실행부는 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 명령들의 실행을, 성능 제한 요청이 있은 때부터 성능 제한 해제 요청이 있을 때까지 지연할 수 있다.
실시예에 따라, 열 관리 장치는 성능 제한 요청 또는 성능 제한 해제 요청을 비휘발성 데이터 저장 장치의 실행 순서 조정부에 송신할 수 있다.
이 경우에, 비휘발성 데이터 저장 장치의 실행 순서 조정부는 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 명령들에 관한 실행 순서의 조정을, 성능 제한 요청이 있은 때부터 성능 제한 해제 요청이 생성될 때까지 지연할 수 있다.
실시예에 따라, 열 관리 장치는 성능 제한 요청 또는 성능 제한 해제 요청이 있을 때에, 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 큐들의 버스트 길이를 최소화할 수 있다.
도 5는 본 발명의 일 실시예에 따른 동적 발열 관리를 할 수 있는 비휘발성 데이터 저장 장치를 위한 열 관리 방법을 예시한 순서도이다.
도 5의 실시예에서 비휘발성 데이터 저장 장치는 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 입출력 큐들을 구성하는 입출력 명령들에 관하여 우선순위들에 따라 실행 순서를 조정하는 실행 순서 조정부 및 조정된 실행 순서에 따라 입출력 명령들을 실행하는 입출력 명령 실행부를 포함할 수 있다.
이러한 비휘발성 데이터 저장 장치를 위한 열 관리 방법은, 단계(S51)에서, 열 관리 장치가 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계로부터 시작할 수 있다.
열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의할 수 있다.
단계(S52)에서, 열 관리 장치는 비휘발성 메모리 모듈들 중에 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 열적 마진에 기초하여 입출력 큐의 열적 마진 상태를 결정할 수 있다.
열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 문턱 온도보다 높은 제한 상태 중에서 결정될 수 있다.
단계(S53)에서, 열 관리 장치는 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정할 수 있다.
이에 따라, 비휘발성 데이터 저장 장치의 실행 순서 조정부는 설정된 우선순위들 따라 실행 순서를 조정함으로써, 동적으로 발열을 관리할 수 있다.
한편, 실시예에 따라, 단계(S54)에서, 열 관리 장치는 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시할 수 있다.
단계(S55)에서, 열 관리 장치는 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성할 수 있다.
실시예에 따라, 열 관리 장치는 성능 제한 요청 또는 성능 제한 해제 요청을 비휘발성 데이터 저장 장치의 입출력 명령 실행부에 송신할 수 있다. 이 경우에, 입출력 명령 실행부는 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 명령들의 실행을, 성능 제한 요청이 있은 때부터 성능 제한 해제 요청이 있을 때까지 지연할 수 있다.
실시예에 따라, 열 관리 장치는 성능 제한 요청 또는 성능 제한 해제 요청을 비휘발성 데이터 저장 장치의 실행 순서 조정부에 송신할 수 있다.
이 경우에, 비휘발성 데이터 저장 장치의 실행 순서 조정부는 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관한 입출력 명령들에 관한 실행 순서의 조정을, 성능 제한 요청이 있은 때부터 성능 제한 해제 요청이 생성될 때까지 지연할 수 있다.
실시예에 따라, 열 관리 장치는 성능 제한 요청 또는 성능 제한 해제 요청이 있을 때에, 위험 온도 상황이 발생한 비휘발성 메모리 모듈 또는 전체 비휘발성 메모리 모듈들에 관하여 관리자 입출력 큐를 제외하고 모든 입출력 큐들의 우선순위들을 최저로 설정할 수 있다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
10 비휘발성 데이터 저장 장치
11 비휘발성 메모리 모듈
12 입출력 큐 수신부
13 실행 순서 조정부
14 입출력 명령 실행부
15 가비지 컬렉션 처리부
16 온도 센서
100 열 관리 장치
110 열적 마진 결정부
120 열적 마진 상태 결정부
130 동적 성능 제어부
140 성능 제한 감시부

Claims (24)

  1. 하나 이상의 비휘발성 메모리 모듈들;
    하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐(queue)들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부;
    상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진(thermal margin)을 결정하는 열적 마진 결정부;
    상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부;
    상기 입출력 큐들 각각의 열적 마진 상태들에 기초하여, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정(arbitration)하는 실행 순서 조정부; 및
    상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하고,
    상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며,
    상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  2. 청구항 1에 있어서, 상기 열적 마진 결정부는
    상기 호스트에 의해 상기 입출력 큐에 부여된 우선순위가 높을수록, 상기 입출력 큐가 읽기 명령을 포함할 경우, 또는 상기 입출력 큐의 길이가 짧을수록 상기 입출력 큐의 상기 열적 마진을 작게 결정하도록 동작하는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  3. 청구항 1에 있어서, 상기 실행 순서 조정부는
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트(burst) 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄이며, 상기 버스트 길이에 따라 입출력 명령들의 실행 순서를 조정하도록 동작하는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  4. 청구항 1에 있어서, 상기 실행 순서 조정부는
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정하고, 상기 우선순위들에 기초하여 입출력 명령들의 실행 순서를 조정하도록 동작하는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  5. 청구항 4에 있어서, 상기 실행 순서 조정부는
    상기 우선순위들에 기초하여, 가중 라운드 로빈 조정(weighted round robin arbitration)에 따라 적어도 하나의 입출력 큐들의 입출력 명령들의 실행 순서를 조정하도록 동작하는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  6. 청구항 1에 있어서, 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하고, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 성능 제한 감시부를 더 포함하고,
    상기 입출력 명령 실행부는 상기 성능 제한 감시부로부터 상기 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 관한 입출력 명령들의 실행을 성능 제한 해제 요청이 수신될 때까지 지연하도록 동작하는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  7. 청구항 1에 있어서, 상기 입출력 큐에 관하여 액세스되는 비휘발성 메모리 모듈은, 상기 입출력 큐가 호스트에 의한 쓰기 명령, 플러시 명령 또는 가비지 컬렉션(garbage collection)에 따른 쓰기 명령에 상응하는 경우에는, 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  8. 청구항 7에 있어서,
    상기 비휘발성 메모리 모듈들 중에서 가비지 컬렉션이 필요한 비휘발성 메모리 모듈들과 여유 공간이 있는 비휘발성 메모리 모듈들을 모니터링하고, 가비지 컬렉션이 필요하다고 판정되면, 가비지 컬렉션의 처리에 관한 입출력 명령들로 구성되는 가비지 컬렉션 입출력 큐를 소정의 우선순위를 가지고 생성하며, 상기 입출력 큐 수신부에 상기 가비지 컬렉션 입출력 큐를 송신하는 가비지 컬렉션 처리부를 더 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치.
  9. 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 버스트 길이에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하는 비휘발성 데이터 저장 장치를 위한 열 관리 장치로서,
    상기 열 관리 장치는
    상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 열적 마진 결정부;
    상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부; 및
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄이는 동적 성능 제어부를 포함하고,
    상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며,
    상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 열 관리 장치.
  10. 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 우선순위들에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하는 비휘발성 데이터 저장 장치를 위한 열 관리 장치로서,
    상기 열 관리 장치는
    상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 열적 마진 결정부;
    상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 열적 마진 상태 결정부; 및
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 설정하는 동적 성능 제어부를 포함하고,
    상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며,
    상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 열 관리 장치.
  11. 하나 이상의 비휘발성 메모리 모듈들을 포함하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법으로서,
    상기 비휘발성 데이터 저장 장치가
    하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐를 하나 이상의 호스트로부터 수신하는 단계;
    상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계;
    상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 단계;
    상기 입출력 큐들 각각의 열적 마진 상태들에 기초하여, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 실행 순서를 조정하는 단계; 및
    상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 단계를 포함하고,
    상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며,
    상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  12. 청구항 11에 있어서, 상기 입출력 큐의 상기 열적 마진은 상기 호스트에 의해 상기 입출력 큐에 부여된 우선순위가 높을수록, 상기 입출력 큐가 읽기 명령을 포함할 경우, 또는 상기 입출력 큐의 길이가 짧을수록 작게 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  13. 청구항 11에 있어서, 상기 실행 순서를 조정하는 단계는
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄이며, 상기 버스트 길이에 따라 입출력 명령들의 실행 순서를 조정하는 단계를 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  14. 청구항 11에 있어서, 상기 실행 순서를 조정하는 단계는
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정하고, 상기 우선순위들에 기초하여 입출력 명령들의 실행 순서를 조정하는 단계를 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  15. 청구항 14에 있어서, 상기 실행 순서를 조정하는 단계는
    상기 우선순위들에 기초하여, 가중 라운드 로빈 조정에 따라 적어도 하나의 입출력 큐들의 입출력 명령들의 실행 순서를 조정하는 단계를 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  16. 청구항 11에 있어서,
    상기 입출력 큐의 열적 마진 상태를 결정하는 단계 이후에, 상기 비휘발성 데이터 저장 장치가, 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하고, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 단계를 더 포함하고,
    상기 입출력 명령들을 실행하는 단계는
    상기 성능 제한 감시부로부터 상기 성능 제한 요청이 수신되면, 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 관한 입출력 명령들의 실행을 성능 제한 해제 요청이 수신될 때까지 지연하는 단계를 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  17. 청구항 11에 있어서, 상기 입출력 큐에 관하여 액세스되는 비휘발성 메모리 모듈은, 상기 입출력 큐가 호스트에 의한 쓰기 명령, 플러시 명령 또는 가비지 컬렉션에 따른 쓰기 명령에 상응하는 경우에는, 현재 온도가 상대적으로 낮은 비휘발성 메모리 모듈들 중에서 우선적으로 선정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  18. 청구항 17에 있어서,
    가비지 컬렉션이 필요하다고 판정될 경우에, 하나 이상의 입출력 큐를 하나 이상의 호스트로부터 수신하는 단계 이후에 상기 비휘발성 데이터 저장 장치가, 가비지 컬렉션의 처리에 관한 입출력 명령들 및 소정의 우선순위를 가지고 가비지 컬렉션 입출력 큐를 생성하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법.
  19. 컴퓨터에서 청구항 11 내지 청구항 18 중 어느 한 청구항에 따른 비휘발성 데이터 저장 장치를 위한 데이터 액세스 제어 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
  20. 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 버스트 길이에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법으로서,
    열 관리 장치가,
    상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계;
    상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 큐의 열적 마진 상태를 결정하는 단계; 및
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 유지하거나 또는 늘리고, 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들을 위해서는 버스트 길이를 줄임으로써 버스트 길이를 결정하는 단계를 포함하고,
    상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며,
    상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법.
  21. 청구항 20에 있어서,
    상기 입출력 큐의 열적 마진 상태를 결정하는 단계 이후, 상기 열 관리 장치가 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하는 단계; 및
    상기 열 관리 장치가 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법.
  22. 하나 이상의 비휘발성 메모리 모듈들, 하나 이상의 논리적 저장 공간에 관한 입출력 명령들로 구성되는 하나 이상의 입출력 큐들을 하나 이상의 호스트로부터 수신하는 입출력 큐 수신부, 상기 입출력 큐들을 구성하는 입출력 명령들에 관하여 우선순위들에 따라 실행 순서를 조정하는 실행 순서 조정부 및 상기 조정된 실행 순서에 따라 상기 입출력 명령들을 실행하는 입출력 명령 실행부를 포함하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법으로서,
    열 관리 장치가,
    상기 입출력 큐에 부여된 우선순위, 입출력 명령의 종류 및 상기 입출력 큐의 길이 중 적어도 어느 하나에 기초하여 상기 입출력 큐의 열적 마진을 결정하는 단계;
    상기 비휘발성 메모리 모듈들 중에 상기 입출력 큐에 관하여 선정된 비휘발성 메모리 모듈의 현재 온도와 상기 열적 마진에 기초하여 상기 입출력 명령들의 열적 마진 상태를 결정하는 단계; 및
    상기 열적 마진 상태가 정상 상태인 입출력 큐에 속하는 입출력 명령들이 상기 열적 마진 상태가 제한 상태인 입출력 큐에 속하는 입출력 명령들에 우선하도록 입출력 큐들의 우선순위들을 각각 다시 설정하는 단계를 포함하고,
    상기 열적 마진은 상기 비휘발성 메모리 모듈들을 보호하기 위한 한계 온도와 상기 열적 마진 상태의 변동을 유발하는 문턱 온도 사이의 차이를 정의하며,
    상기 열적 마진 상태는 현재 온도가 상기 문턱 온도보다 낮은 정상 상태 또는 현재 온도가 상기 문턱 온도보다 높은 제한 상태 중에서 결정되는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법.
  23. 청구항 22에 있어서,
    상기 입출력 명령들의 열적 마진 상태를 결정하는 단계 이후, 상기 열 관리 장치가 상기 비휘발성 메모리 모듈들의 현재 온도가 한계 온도를 초과하는 위험 온도 상황의 발생을 감시하는 단계; 및
    상기 열 관리 장치가 위험 온도 상황이 발생한 비휘발성 메모리 모듈에 대한 성능 제한 요청 및 위험 온도 상황이 종료된 비휘발성 메모리 모듈에 대한 성능 제한 해제 요청을 각각 생성하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 데이터 저장 장치를 위한 열 관리 방법.
  24. 컴퓨터에서 청구항 20 내지 청구항 23 중 어느 한 청구항에 따른 비휘발성 데이터 저장 장치를 위한 열 관리 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
KR1020150187539A 2015-12-09 2015-12-28 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법 KR101725691B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150187539A KR101725691B1 (ko) 2015-12-28 2015-12-28 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법
US15/221,909 US10120426B2 (en) 2015-12-09 2016-07-28 Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150187539A KR101725691B1 (ko) 2015-12-28 2015-12-28 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법

Publications (1)

Publication Number Publication Date
KR101725691B1 true KR101725691B1 (ko) 2017-04-12

Family

ID=58580505

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150187539A KR101725691B1 (ko) 2015-12-09 2015-12-28 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법

Country Status (1)

Country Link
KR (1) KR101725691B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114610138A (zh) * 2022-03-10 2022-06-10 中国科学院计算技术研究所 带宽控制单元、处理器芯片以及访存流量控制方法
US11543871B2 (en) 2020-10-22 2023-01-03 Samsung Electronics Co., Ltd. Storage device, multi-component device and method of controlling operation of the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010099631A (ko) * 1998-09-01 2001-11-09 피터 엔. 데트킨 메모리 액세스 동작의 제어
KR20020025811A (ko) * 2000-09-29 2002-04-04 피터 엔. 데트킨 높은 성능을 유지하면서 메모리 컴포넌트의 전력을관리하기 위한 방법 및 장치
KR20070086503A (ko) * 2004-11-24 2007-08-27 콸콤 인코포레이티드 메모리 액세스 속도의 동적인 제어

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010099631A (ko) * 1998-09-01 2001-11-09 피터 엔. 데트킨 메모리 액세스 동작의 제어
KR20020025811A (ko) * 2000-09-29 2002-04-04 피터 엔. 데트킨 높은 성능을 유지하면서 메모리 컴포넌트의 전력을관리하기 위한 방법 및 장치
KR20070086503A (ko) * 2004-11-24 2007-08-27 콸콤 인코포레이티드 메모리 액세스 속도의 동적인 제어

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEVIN SKADRON 외 5명. 'Temperature-Aware Microarchitecture: Modeling and Implementation'. ACM Transactions on Architecture and Code Optimization, Vol. 1, No. 1, 2004.03., pp.94-125. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11543871B2 (en) 2020-10-22 2023-01-03 Samsung Electronics Co., Ltd. Storage device, multi-component device and method of controlling operation of the same
US11971764B2 (en) 2020-10-22 2024-04-30 Samsung Electronics Co., Ltd. Storage device, multi-component device and method of controlling operation of the same
CN114610138A (zh) * 2022-03-10 2022-06-10 中国科学院计算技术研究所 带宽控制单元、处理器芯片以及访存流量控制方法
CN114610138B (zh) * 2022-03-10 2023-08-08 中国科学院计算技术研究所 带宽控制单元、处理器芯片以及访存流量控制方法

Similar Documents

Publication Publication Date Title
US9846541B2 (en) Memory system for controlling perforamce by adjusting amount of parallel operations
KR102044610B1 (ko) 메모리 디바이스들에 대한 열 스로틀링
KR102283511B1 (ko) 솔리드 스테이트 드라이브들의 전력 소비를 컨트롤하기 위해 동적으로 불휘발성 메모리 오퍼레이션을 스케쥴링하는 메모리 장치 및 그것의 동작 방법
KR101876001B1 (ko) 장치 내의 전력 관리를 위한 자원 할당 및 할당해제
US9501413B2 (en) Storage apparatus, staging control method, and computer-readable recording medium having stored staging control program
JP6529941B2 (ja) メモリシステム
US20150206567A1 (en) Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (stt-mram)
KR102351660B1 (ko) 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법
EP2884396A1 (en) Storage control apparatus, storage control program, and storage control method
US10120426B2 (en) Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same
US11042322B2 (en) SSD supporting low latency operation
US10539988B2 (en) Memory system
CN101872288A (zh) 固态硬盘驱动器以及操作频率控制方法
US20080162855A1 (en) Memory Command Issue Rate Controller
US20170090755A1 (en) Data Storage Method, Data Storage Apparatus and Solid State Disk
US20210081115A1 (en) Ssd supporting low latency operation
KR20240004372A (ko) 고체 상태 드라이브에서의 호스트 제어 가비지 수집
KR101725691B1 (ko) 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법
US10552043B2 (en) Memory system
KR20200137981A (ko) 하드 기입 스로틀 다운을 갖는 nvram 메모리 모듈
US10481014B2 (en) Adaptive throttling
US10635154B2 (en) Intelligent SAS phy power management
US20190324658A1 (en) Dynamic maximization of drive throughput while maintaining latency qos
JP5949224B2 (ja) ストレージ制御装置、該プログラム及び該方法
KR20210060253A (ko) 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법

Legal Events

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

Payment date: 20200217

Year of fee payment: 4