Nothing Special   »   [go: up one dir, main page]

KR102730625B1 - SSD buffer management technique that minimizes performance degradation in situations where the battery is limited - Google Patents

SSD buffer management technique that minimizes performance degradation in situations where the battery is limited Download PDF

Info

Publication number
KR102730625B1
KR102730625B1 KR1020230013753A KR20230013753A KR102730625B1 KR 102730625 B1 KR102730625 B1 KR 102730625B1 KR 1020230013753 A KR1020230013753 A KR 1020230013753A KR 20230013753 A KR20230013753 A KR 20230013753A KR 102730625 B1 KR102730625 B1 KR 102730625B1
Authority
KR
South Korea
Prior art keywords
ssd
mapping table
battery
buffer
write request
Prior art date
Application number
KR1020230013753A
Other languages
Korean (ko)
Other versions
KR20240076645A (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 숭실대학교 산학협력단
Publication of KR20240076645A publication Critical patent/KR20240076645A/en
Application granted granted Critical
Publication of KR102730625B1 publication Critical patent/KR102730625B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명의 일실시예는 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 있어서, 전원끊김 시 베터리가 기록 가능한 버퍼 상의 데이터의 양이 최대 보호 페이지 수로 제한되는 SSD에 있어서, 상기 DDS의 제어부가 일정시간 범위(Time Window) 내의 상기 SSD의 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 확인하는 단계; 상기 제어부가 상기 해당 사용자 쓰기 요청에 대응하여 상기 SSD의 플래시 메모리에 플러시할 경우 발생하는 변경된 맵핑 테이블 페이지의 수가 상기 최대 보호 페이지 수를 상한으로 하는 제1 설정값의 이하가 되도록 상기 사용자 쓰기 요청을 플러시하는 순서를 스케줄링하는 단계; 및 상기 제어부가 상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계;를 포함하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법을 제공한다.An embodiment of the present invention provides an SSD buffer management method for minimizing performance degradation in a battery-limited situation, the method comprising: a step in which a control unit of a DDS checks a user write request existing in a write buffer of the SSD within a certain time window in an SSD in which the amount of data on a buffer that the battery can write when power is cut off is limited to a maximum number of protected pages; a step in which the control unit schedules an order for flushing the user write request so that the number of changed mapping table pages generated when flushing to a flash memory of the SSD in response to the corresponding user write request becomes equal to or less than a first set value having the maximum number of protected pages as an upper limit; and a step in which the control unit processes the user write request to be flushed according to the scheduling.

Description

배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법{SSD buffer management technique that minimizes performance degradation in situations where the battery is limited}SSD buffer management technique that minimizes performance degradation in situations where the battery is limited

본 발명은 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 관한 것으로, 더욱 상세하게는 배터리가 제한적인 상황에서 SSD 내부 버퍼를 효율적으로 관리함으로써 성능 저하를 최소화하는 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 관한 것이다.The present invention relates to a method for managing an SSD buffer to minimize performance degradation in a battery-limited situation, and more specifically, to a method for managing an SSD buffer to minimize performance degradation in a battery-limited situation by efficiently managing an internal buffer of an SSD.

디지털 데이터의 지속적인 폭증과 함께 고용량 저장 장치에 대한 요구가 높다. SSD(Solid State Disk)는 고성능, 고신뢰성, 저전력이라는 특성에 기반하여 지속적으로 성장해 왔으며 HDD(Hard Disk Drive)를 대체하며 가장 널리 활용되는 2차 저장장치로 자리매김 하였다. 그러나 최근 클라우드 시스템에서 요구하는 고용량 SSD를 생산하는 데에 어려움이 있다. 엔터프라이즈 SSD는 고신뢰성과 고성능을 보장하기 위해 배터리를 사용해 SSD 내부 휘발성 버퍼에 있는 데이터를 전원끊김 상황에서도 소실되지 않도록 한다. 즉 베터리(커패시터)는 전원 차단시 휘발성 DRAM에 저장된 데이터를 NAND 플래시 메모리에 안전하게 저장할 수 있는 에너지를 제공하므로 SSD의 신뢰성과 데이터 무결성의 핵심이다. 그러나 SSD 내부에 탑재되는 배터리의 집적도 증가속도(40년간 약 10배)가 저장매체인 NAND 플래시 메모리의 집적도 향상 속도(10년간 100배)보다 현저히 낮아 고용량 SSD를 현재의 기술로 제조하는 것이 어려운 상황이다.With the continuous explosion of digital data, the demand for high-capacity storage devices is increasing. Solid State Disks (SSDs) have continuously grown based on their characteristics of high performance, high reliability, and low power consumption, and have established themselves as the most widely used secondary storage devices, replacing HDDs (Hard Disk Drives). However, there are difficulties in producing high-capacity SSDs required by recent cloud systems. In order to ensure high reliability and high performance, enterprise SSDs use batteries to prevent data in volatile buffers inside the SSD from being lost even when power is cut off. In other words, batteries (capacitors) provide energy to safely store data stored in volatile DRAM in NAND flash memory when power is cut off, and are thus key to the reliability and data integrity of SSDs. However, the rate of increase in the density of batteries installed inside SSDs (approximately 10 times over 40 years) is significantly lower than the rate of increase in the density of NAND flash memory, which is the storage medium (100 times over 10 years), making it difficult to manufacture high-capacity SSDs with current technology.

본 발명이 이루고자 하는 기술적 과제는 기존 보다 소량의 배터리를 사용하면서도 성능저하를 최소화할 수 있도록 SSD 내부 버퍼를 관리하는 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법을 제공하는 것이다.The technical problem to be achieved by the present invention is to provide an SSD buffer management method that minimizes performance degradation in a situation where the battery for managing the SSD internal buffer is limited, while using a smaller amount of battery than before and minimizing performance degradation.

본 발명이 이루고자 하는 기술적 과제는 배터리가 제한적인 상황에서 SSD 내부 버퍼를 효율적으로 관리함으로써 성능 저하를 최소화하기 때문에, 궁극적으로 고용량 SSD의 생산성을 향상시키는 한편 제조비용 절감 등에 기여할 수 있는 SSD 버퍼 관리 방법을 제공하는 것이다.The technical problem to be achieved by the present invention is to provide an SSD buffer management method that can ultimately contribute to improving the productivity of high-capacity SSDs while reducing manufacturing costs by efficiently managing the internal buffer of the SSD in a situation where the battery is limited, thereby minimizing performance degradation.

본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved by the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by a person having ordinary skill in the technical field to which the present invention belongs from the description below.

상기 기술적 과제를 달성하기 위하여, 본 발명의 일실시예는 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 있어서, 전원끊김 시 베터리가 기록 가능한 버퍼 상의 데이터의 양이 최대 보호 페이지 수로 제한되는 SSD에 있어서, 상기 DDS의 제어부가 일정시간 범위(Time Window) 내의 상기 SSD의 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 확인하는 단계; 상기 제어부가 상기 해당 사용자 쓰기 요청에 대응하여 상기 SSD의 플래시 메모리에 플러시할 경우 발생하는 변경된 맵핑 테이블 페이지의 수가 상기 최대 보호 페이지 수를 상한으로 하는 제1 설정값의 이하가 되도록 상기 사용자 쓰기 요청을 플러시하는 순서를 스케줄링하는 단계; 및 상기 제어부가 상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계;를 포함하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법을 제공한다.In order to achieve the above technical problem, an embodiment of the present invention provides an SSD buffer management method for minimizing performance degradation in a battery-limited situation, the method comprising: a step in which a control unit of the DDS checks a user write request existing in a write buffer of the SSD within a certain time window in an SSD in which the amount of data on a buffer that the battery can record when power is cut off is limited to a maximum number of protected pages; a step in which the control unit schedules an order for flushing the user write request so that the number of changed mapping table pages generated when flushing to a flash memory of the SSD in response to the corresponding user write request becomes equal to or less than a first set value having the maximum number of protected pages as an upper limit; and a step in which the control unit processes the user write request to be flushed according to the scheduling.

본 발명의 실시예에 있어서, 상기 플러시하는 순서를 스케줄링하는 단계는, 동일 맵핑 테이블 페이지를 업데이트하는 사용자 쓰기 요청들을 묶어 함께 처리하도록 맵핑 테이블의 데이터를 재정렬 하는 단계; 해당 사용자 쓰기 요청으로 변경될 맵핑 테이블의 페이지가 이미 변경된 경우(더티 상태) 제1 우선 순위로 처리하도록 스케줄링 하는 단계; 및 동일 맵핑 테이블 페이지의 엔트리를 수정할 사용자 쓰기 요청이 제2 설정값 이상인 경우 제2 우선 순위로 처리하도록 스케줄링 하는 단계;를 포함할 수 있다.In an embodiment of the present invention, the step of scheduling the flushing order may include the steps of: rearranging data of the mapping table so that user write requests that update the same mapping table page are grouped and processed together; scheduling the processing with a first priority if a page of the mapping table to be changed by the corresponding user write request has already been changed (dirty state); and scheduling the processing with a second priority if the number of user write requests to modify an entry of the same mapping table page is greater than or equal to a second set value.

본 발명의 실시예에 있어서, 상기 최대 보호 페이지 수는 상기 전원끊김시 PLP(Power-Loss Protection)를 사용하여 수행되는 플러시 작업시 상기 베터리의 제한으로 인해 상기 버퍼에 존재하는 사용자 쓰기 요청 및 일부의 맵핑 테이블을 보호하는 페이지 수일 수 있다.In an embodiment of the present invention, the maximum number of protected pages may be the number of pages that protect user write requests and some mapping tables existing in the buffer due to limitations of the battery during a flush operation performed using Power-Loss Protection (PLP) at the time of power-off.

본 발명의 실시예에 있어서, LRU(최소 최근 사용, Least-recently Used) 알고리즘을 기반으로 상기 해당 사용자 쓰기 요청에 대응하여 상기 플래시 메모리에 플러시할 경우 발생하는 변경된 맵핑 테이블 페이지의 수를 해당 페이지를 플러시하는 비용으로 할 때, 상기 제2 설정값은 상기 비용의 최솟값일 수 있다.In an embodiment of the present invention, when the number of changed mapping table pages that occur when flushing the flash memory in response to the corresponding user write request based on an LRU (Last-recently Used) algorithm is used as the cost of flushing the corresponding pages, the second set value may be the minimum value of the cost.

본 발명의 실시예에 있어서, 동일 맵핑 테이블 페이지의 엔트리를 수정할 사용자 쓰기 요청이 상기 제2 설정값 미만인 경우 해당 사용자 쓰기 요청을 처리하지 않고 버퍼링 상태로 두는 단계;를 포함할 수 있다.In an embodiment of the present invention, the method may include a step of not processing the user write request and leaving it in a buffering state when the number of user write requests to modify entries in the same mapping table page is less than the second setting value.

본 발명의 실시예에 있어서, 상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계를 수행함으로써, 지속적으로 변경된 맵핑 테이블 페이지의 수가 상기 제1 설정값 이하가 될 수 있다.In an embodiment of the present invention, by performing a step of processing to flush the user write request according to the scheduling, the number of continuously changed mapping table pages can be made less than or equal to the first set value.

본 발명의 실시예에 있어서, 상기 전원끊김시 상기 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 우선적으로 플러시하는 단계;를 포함할 수 있다.In an embodiment of the present invention, the step of preferentially flushing a user write request existing in the write buffer when the power is cut off may be included.

본 발명의 실시예에 있어서, 상기 전원끊김시 상기 사용자 쓰기 요청을 우선적으로 플러시 한 후, 상기 최대 보호 페이지 수에 포함되는 상기 일부의 매칭 테이블을 플러시하는 단계;를 포함할 수 있다.In an embodiment of the present invention, the step of flushing the user write request first when the power is cut off, and then flushing the matching table of a part included in the maximum number of protected pages may be included.

본 발명의 실시예에 있어서, 상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계에서, 상기 매칭 테이블은 복수의 블록을 포함하고, 각 상기 블록은 복수의 페이지를 포함하며, 상기 스케줄링에 의해 상기 제1 설정값 이상의 변경된 맵핑 테이블 페이지가 발생된 해당 블록을 플러시 처리할 수 있다.In an embodiment of the present invention, in the step of processing to flush the user write request according to the scheduling, the matching table includes a plurality of blocks, each of the blocks includes a plurality of pages, and a corresponding block in which a changed mapping table page exceeding the first set value is generated by the scheduling can be flushed.

본 발명의 실시예에 있어서, 상기 맵핑 테이블의 데이터를 재정렬 하는 단계는, LRU(최소 최근 사용, Least-recently Used) 알고리즘을 기반으로, 변경전 맵핑 테이블과 변경된 맵핑 테이블을 비교시에 더티 메모리 풋프린트의 증가를 최소화하도록 상기 변경전 맵핑 테이블의 페이지 엔트리를 재정렬을 하는 단계;를 포함할 수 있다.In an embodiment of the present invention, the step of rearranging data of the mapping table may include a step of rearranging page entries of the mapping table before the change so as to minimize an increase in dirty memory footprint when comparing the mapping table before the change and the changed mapping table based on an LRU (Last-recently Used) algorithm.

본 발명의 실시예에 있어서, 상기 맵핑 테이블의 데이터를 재정렬 하는 단계는, 상기 플래시 메모리의 물리 주소와 상기 사용자 쓰기 요청의 논리 주소 간에 재맵핑을 하는 단계;를 포함할 수 있다.In an embodiment of the present invention, the step of rearranging data of the mapping table may include a step of remapping between a physical address of the flash memory and a logical address of the user write request.

본 발명의 실시예에 의하면, 기존 보다 소량의 배터리를 사용하면서도 성능저하를 최소화할 수 있도록 SSD 내부 버퍼를 관리하는 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법을 제공할 수 있다.According to an embodiment of the present invention, a method for managing an SSD buffer can be provided to minimize performance degradation in a situation where a battery is limited to manage an SSD internal buffer while using a smaller amount of battery than before.

본 발명의 실시예에 의하면, 배터리가 제한적인 상황에서 SSD 내부 버퍼를 효율적으로 관리함으로써 성능 저하를 최소화하기 때문에, 궁극적으로 고용량 SSD의 생산성을 향상시키는 한편 제조비용 절감 등에 기여할 수 있는 SSD 버퍼 관리 방법을 제공할 수 있다.According to an embodiment of the present invention, an SSD buffer management method can be provided that can ultimately contribute to improving the productivity of high-capacity SSDs while reducing manufacturing costs, by efficiently managing the SSD internal buffer in a situation where the battery is limited, thereby minimizing performance degradation.

본 발명의 실시예에 의하면, 커패시터(베터리)의 느린 성장으로 인한 SSD 용량 확장의 제한을 해소하는 데 기여할 수 있는 SSD 내부 DRAM 관리의 새로운 체계인 Hexa-SSD(SSD 버퍼 관리 방법)를 제공할 수 있다. Hexa-SSD는 근본적으로 다른 접근 방식을 사용하여 SSD 내부 DRAM을 관리한다. 대부분의 맵핑 테이블을 캐싱하고 사용자 쓰기를 최소한으로 버퍼링하는 대신 더 많은 사용자 쓰기를 버퍼링하여 수정된 매핑 페이지의 수가 적다. 이는 맵핑 테이블 관련 쓰기 트래픽의 양을 크게 줄여 SSD 장치의 전반적인 성능을 향상시킬 수 있는 SSD 버퍼 관리 방법을 제공할 수 있다.According to an embodiment of the present invention, a new scheme for managing internal DRAM of an SSD, Hexa-SSD (SSD buffer management method), which can contribute to overcoming the limitation of SSD capacity expansion due to slow growth of a capacitor (battery) can be provided. Hexa-SSD manages internal DRAM of an SSD using a fundamentally different approach. Instead of caching most of the mapping tables and buffering minimal user writes, it buffers more user writes to reduce the number of modified mapping pages. This can provide an SSD buffer management method that can significantly reduce the amount of mapping table-related write traffic and improve the overall performance of an SSD device.

본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.The effects of the present invention are not limited to the effects described above, and should be understood to include all effects that can be inferred from the detailed description of the present invention or the composition of the invention described in the claims.

도 1은 SSD 구조의 일 예를 나타낸다.
도 2는 비교예의 SSD의 데이터 보호 동작을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 의한 보호 동작을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법을 나타내는 순서도이다.
도 5는 맵핑 테이블의 일 예를 나타내는 도면이다.
도 6은 비교예의 방법(FIFO)의 동작을 나타내는 도면이다.
도 7은 비교예의 방법의 동작을 시각적으로 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 SSD 버퍼 관리 방법(Hexa)을 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 SSD 버퍼 관리 방법(Hexa)을 시각적으로 도시한 도면이다.
Figure 1 shows an example of an SSD structure.
Figure 2 is a drawing showing the data protection operation of the SSD of the comparative example.
FIG. 3 illustrates a protective operation by an SSD buffer management method that minimizes performance degradation in a battery-limited situation according to one embodiment of the present invention.
FIG. 4 is a flowchart illustrating an SSD buffer management method for minimizing performance degradation in a battery-limited situation according to one embodiment of the present invention.
Figure 5 is a diagram showing an example of a mapping table.
Figure 6 is a diagram showing the operation of the comparative example method (FIFO).
Figure 7 is a drawing visually illustrating the operation of the method of the comparative example.
FIG. 8 is a diagram illustrating an SSD buffer management method (Hexa) according to one embodiment of the present invention.
FIG. 9 is a drawing visually illustrating an SSD buffer management method (Hexa) according to one embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.The present invention can be modified in various ways and can take various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to specific disclosed forms, but should be understood to include all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms defined in commonly used dictionaries, such as those defined in common dictionaries, should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense unless expressly defined in this application.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.Hereinafter, with reference to the attached drawings, a preferred embodiment of the present invention will be described in more detail.

본 발명의 일 실시예에 따른 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법은 베터리의 집적도 내지 용량의 제한이 있는 상황에서 SSD 내부 버퍼를 효율적으로 관리함으로써 성능 저하를 최소화하는 방법에 관한 것이다.A method for managing an SSD buffer to minimize performance degradation in a situation where a battery is limited according to one embodiment of the present invention relates to a method for minimizing performance degradation by efficiently managing an internal buffer of an SSD in a situation where the integration or capacity of a battery is limited.

도 1은 SSD 구조의 일 예를 나타낸다.Figure 1 shows an example of an SSD structure.

SSD 장치는 PC와 연결되는 인터페이스(연결 포트 등)와 데이터 저장용 플래시 메모리, 인터페이스와 플래시 메모리 사이의 데이터 교환 작업을 제어하는 마이크로 컨트롤러(controller, 제어부) 및 외부 장치와 SSD간의 처리 속도 차이를 줄여주는 휘발성 버퍼(buffer)를 포함할 수 있다. 도 1에는 NAND 플래시 메모리와 그 상위에 탑재된 휘발성 버퍼(통상 DRAM 또는 SRAM)가 도시되어 있다. 또한, SSD 장치는 다수의 플래시 메모리를 연결하는 여러 개의 데이터 버스가 구비되고, 전술된 마이크로 컨트롤러가 프로세서 역할을 할 수 있다. 또한, 엔터프라이즈 SSD는 내부에 탑재되는 베터리를 포함할 수 있다. 엔터프라이즈 SSD는 고신뢰성과 고성능을 보장하기 위해 이러한 내장 베터리를 사용해 SSD 내부 휘발성 버퍼에 있는 데이터를 전원끊김 상황에서도 소실되지 않도록 할 수 있다.An SSD device may include an interface (such as a connection port) connected to a PC, flash memory for data storage, a microcontroller (control unit) for controlling data exchange between the interface and the flash memory, and a volatile buffer for reducing a difference in processing speed between an external device and the SSD. FIG. 1 illustrates a NAND flash memory and a volatile buffer (typically DRAM or SRAM) mounted thereon. In addition, the SSD device may be equipped with multiple data buses for connecting multiple flash memories, and the aforementioned microcontroller may act as a processor. In addition, the enterprise SSD may include a battery mounted internally. In order to ensure high reliability and high performance, the enterprise SSD may use this built-in battery to prevent data in the volatile buffer inside the SSD from being lost even when power is cut off.

DRAM 버퍼는 크게 두 가지 용도로 사용된다. 첫째, 플래시 메모리에 저장된 데이터의 물리 주소와 운영체제로부터 요청된 논리 주소를 맵핑하는 정보를 가진 맵핑 테이블을 캐싱하는 용도로 사용된다. 둘째는 호스트(사용자)에서 도착하는 쓰기 요청을 빠르게 처리하여 응답속도를 높이기 위한 쓰기 버퍼(Write Buffer)로 사용된다. 배터리는 전원끊김 발생시 비상 전력을 제공하여 휘발성 버퍼에 있는 데이터를 플래시 메모리에 기록하도록 해준다.DRAM buffers are used for two main purposes. First, they are used to cache a mapping table that has information that maps the physical address of data stored in flash memory to the logical address requested by the operating system. Second, they are used as a write buffer to quickly process write requests arriving from the host (user) and increase the response speed. The battery provides emergency power in the event of a power outage, allowing data in the volatile buffer to be written to flash memory.

도 2는 비교예의 SSD의 데이터 보호 동작을 나타내는 도면이다.Figure 2 is a drawing showing the data protection operation of the SSD of the comparative example.

도 2에 도시된 비교예는 휘발성 버퍼에 있는 데이터를 모두 보호할 수 있는 양의 전력을 배터리가 가지고 있는 상황을 도시한다. 즉 휘발성 버퍼에 있는 맵핑 테이블과 사용자 데이터(사용자 쓰기 요청)가 모두 보호되는 방식을 나타낸다.The comparative example illustrated in Figure 2 illustrates a situation where the battery has enough power to protect all data in the volatile buffer. That is, it shows how both the mapping table and the user data (user write requests) in the volatile buffer are protected.

도 3은 본 발명의 일 실시예에 따른 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 의한 보호 동작을 나타낸다.FIG. 3 illustrates a protective operation by an SSD buffer management method that minimizes performance degradation in a battery-limited situation according to one embodiment of the present invention.

도 3은 배터리의 집적도 향상 속도가 낮아 SSD의 용량 증대에 따라 함께 증가하는 휘발성 버퍼에 있는 데이터를 모두 보호하기 어려운 상황을 도시한다. 즉, 본 실시예에 따른 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법(이하, SSD 버퍼 관리 방법)은, 도 3에 도시된 바와 같이, 버퍼의 일부만이 보호되어 전원끊김 시 기록이 가능한 데이터의 양이 제한적인 상황을 가정한다. 이러한 상황에서는 배터리가 기록 가능한 범위를 넘어 데이터의 업데이트가 버퍼에서 발생하면, 강제로 플래시 메모리에 변경 사항을 기록해야 한다. 이 때 성능 저하가 발생하게 된다. 본 실시예의 SSD 버퍼 관리 방법은 쓰기 버퍼에 유입된 데이터를 효율적으로 스케줄링하여 강제로 플래시에 기록되는 쓰기 트래픽을 최소화하는 전략을 취한다.FIG. 3 illustrates a situation in which it is difficult to protect all data in a volatile buffer that increases along with an increase in the capacity of an SSD due to a low speed of improvement in battery integration. That is, the SSD buffer management method (hereinafter, referred to as the SSD buffer management method) for minimizing performance degradation in a situation in which the battery is limited according to the present embodiment assumes a situation in which only a portion of the buffer is protected, as illustrated in FIG. 3, and the amount of data that can be written when the power is cut off is limited. In this situation, if an update of data occurs in the buffer beyond the range that the battery can write, the changes must be forcibly written to the flash memory. At this time, performance degradation occurs. The SSD buffer management method of the present embodiment adopts a strategy to minimize write traffic that is forcibly written to the flash by efficiently scheduling data flowing into the write buffer.

도 4는 본 발명의 일 실시예에 따른 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법을 나타내는 순서도이다.FIG. 4 is a flowchart illustrating an SSD buffer management method for minimizing performance degradation in a battery-limited situation according to one embodiment of the present invention.

전술된 본 실시예의 SSD 버퍼 관리 방법은 쓰기 버퍼에 존재하는 사용자 쓰기 요청 중 아래와 같은 순서로 처리 우선순위를 결정할 수 있다.The SSD buffer management method of the present embodiment described above can determine the processing priority in the following order among user write requests existing in the write buffer.

전원끊김 시 베터리가 기록 가능한 버퍼 상의 데이터의 양이 최대 보호 페이지 수로 제한되는 SSD에 있어서, DDS의 제어부가 일정시간 범위(Time Window) 내의 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 확인한다(S10). 상기 최대 보호 페이지 수는 전원끊김시 PLP(Power-Loss Protection)를 사용하여 수행되는 플러시 작업시 상기 베터리의 제한으로 인해 상기 버퍼에 존재하는 사용자 쓰기 요청 및 일부의 맵핑 테이블을 보호하는 페이지 수일 수 있다. 예를 들어, 전술된 마이크로 컨트롤러(제어부)는 일정시간 범위(Time Window) 내의 휘발성 버퍼로서 DRAM 버퍼에 존재하는 호스트로부터의 쓰기 요청(사용자 쓰기 요청)을 확인할 수 있다. 예를 들어, 후술되는 도 8에 도시된 바와 같이 장치 대기열에 호스트로부터 보내온 쓰기 요청을 확인할 수 있다.In an SSD in which the amount of data on a buffer that the battery can write when the power is cut off is limited by the maximum number of protected pages, the control unit of the DDS checks for a user write request existing in the write buffer within a certain time window (S10). The maximum number of protected pages may be the number of pages that protect the user write request existing in the buffer and some of the mapping tables due to the limitation of the battery during a flush operation performed using PLP (Power-Loss Protection) when the power is cut off. For example, the microcontroller (control unit) described above can check for a write request (user write request) from a host existing in the DRAM buffer as a volatile buffer within a certain time window. For example, as illustrated in FIG. 8 described below, it can check a write request sent from the host to the device queue.

제어부가 해당 사용자 쓰기 요청에 대응하여 SSD의 플래시 메모리에 플러시할 경우 발생하는 변경된 맵핑 테이블 페이지의 수가 상기 최대 보호 페이지 수를 상한으로 하는 제1 설정값의 이하가 되도록 상기 사용자 쓰기 요청을 플러시하는 순서를 스케줄링한다(S20). The control unit schedules the order of flushing the user write request so that the number of changed mapping table pages that occur when flushing to the flash memory of the SSD in response to the user write request is less than or equal to a first set value that sets the maximum number of protected pages as an upper limit (S20).

제어부가 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리한다(S30).The control unit processes the user write request to flush according to scheduling (S30).

이하, 각 과정을 더 상세히 설명한다.Below, each process is explained in more detail.

플러시하는 순서를 스케줄링하는 단계(20)에서, 동일 맵핑 테이블 페이지를 업데이트하는 사용자 쓰기 요청들을 묶어 함께 처리하도록 맵핑 테이블의 데이터를 재정렬 할 수 있다(S21). 해당 사용자 쓰기 요청으로 변경될 맵핑 테이블의 페이지가 이미 변경된 경우(더티 상태) 제1 우선 순위로 처리하도록 스케줄링 할 수 있다(S22). 해당 쓰기 요청의 수행은 맵핑 테이블의 변경 페이지 수를 증가시키지 않기 때문에 우선적으로 처리할 수 있다. 동일 맵핑 테이블 페이지의 엔트리를 수정할 사용자 쓰기 요청이 제2 설정값 이상인 경우 제2 우선 순위로 처리하도록 스케줄링할 수 있다(S23). 예를 들어, 해당 쓰기 요청으로 변경될 맵핑 테이블의 페이지가 이미 변경된 경우가 아닌 경우, 동일 맵핑 테이블 페이지의 엔트리를 수정할 쓰기 요청의 제2 설정값과 비교할 수 있다. 즉, 도 3에서 설명된 바와 같이, 버퍼의 일부만이 보호되어 전원끊김 시 기록이 가능한 데이터의 양이 제한적인 상황에서는 배터리가 기록 가능한 범위를 넘어 데이터의 업데이트가 버퍼에서 발생하면, 강제로 플래시 메모리에 변경 사항을 기록해야 한다. 즉, 본 실시예의 SSD 버퍼 관리 방법은 쓰기 버퍼에 유입된 데이터를 효율적으로 스케줄링하여 강제로 플래시에 기록되는 쓰기 트래픽을 최소화하는 전략을 취함에 있어서, 이러한 기준이 되는 제2 설정값을 설정할 수 있다.In the step (20) of scheduling the flushing order, the data of the mapping table can be rearranged so that user write requests that update the same mapping table page are grouped and processed together (S21). If the page of the mapping table to be changed by the corresponding user write request has already been changed (dirty state), it can be scheduled to be processed with the first priority (S22). Since the execution of the corresponding write request does not increase the number of changed pages of the mapping table, it can be processed with priority. If the user write request to modify the entry of the same mapping table page is greater than or equal to the second setting value, it can be scheduled to be processed with the second priority (S23). For example, if the page of the mapping table to be changed by the corresponding write request has not already been changed, it can be compared with the second setting value of the write request to modify the entry of the same mapping table page. That is, as described in Fig. 3, in a situation where only a part of the buffer is protected and the amount of data that can be written when the power is cut off is limited, if an update of data occurs in the buffer beyond the range that the battery can write, the changes must be forcibly written to the flash memory. That is, the SSD buffer management method of the present embodiment can set a second setting value that serves as a criterion in taking a strategy of efficiently scheduling data flowing into the write buffer to minimize write traffic that is forcibly written to flash.

본 실시예와 다르게 사용자의 요청이 도착한 순서대로 플래시 메모리에 기록하는 경우, 맵핑 테이블이 무작위로 업데이트되어 한 단위 시간에 많은 수의 더티(dirty) 페이지가 생성될 수 있다. 맵핑 테이블 페이지의 플러시 수가 많아질 수록 I/O 부하가 증가할 수 있기 때문에 이러한 무작위로 더티 페이지가 생성되는 것은 바람직하지 않다.Unlike the present embodiment, if the user's requests are written to the flash memory in the order in which they arrive, the mapping table may be randomly updated, which may result in a large number of dirty pages being generated in one unit of time. This random generation of dirty pages is not desirable because the I/O load may increase as the number of mapping table pages that are flushed increases.

본 실시예에서는 전술한 바와 같이, 제한된 베터리(커패시터) 용량의 상황에서 전원끊김시 사용자 데이터를 우선 보호하고 일부의 맵핑 테이블을 보호하되, 플래시 메모리로의 쓰기 트래픽을 최소화하는 전략을 사용한다. 즉, 평상시에 동일 맵핑 테이블 페이지의 엔트리를 수정할 쓰기 요청이 제2 설정값보다 많은 경우 해당 쓰기 요청을 처리한다. 즉, 강제로 플래시 메모리에 변경 사항을 기록하지만, 이 경우 맵핑 테이블 변경 페이지 수의 증가 비용이 설정값 이상의 다수의 쓰기 요청에 의해 공동 부담되기 때문에 성능저하를 최소화할 수 있다.In this embodiment, as described above, in a situation of limited battery (capacitor) capacity, a strategy is used to protect user data first and protect some mapping tables when power is cut off, while minimizing write traffic to flash memory. That is, if the number of write requests to modify entries in the same mapping table page exceeds the second setting value in normal times, the write requests are processed. That is, changes are forcibly written to flash memory, but in this case, the cost of increasing the number of mapping table change pages is shared by a number of write requests exceeding the setting value, so that performance degradation can be minimized.

LRU(최소 최근 사용, Least-recently Used) 알고리즘을 기반으로 해당 사용자 쓰기 요청에 대응하여 상기 플래시 메모리에 플러시할 경우 발생하는 변경된 맵핑 테이블 페이지의 수를 해당 페이지를 플러시하는 비용으로 할 때, 상기 제2 설정값은 상기 비용의 최솟값일 수 있다.When the number of changed mapping table pages that occur when flushing the flash memory in response to the user write request based on the LRU (Least-recently Used) algorithm is used as the cost of flushing the pages, the second setting value may be the minimum value of the cost.

동일 맵핑 테이블 페이지의 엔트리를 수정할 사용자 쓰기 요청이 상기 제2 설정값 미만인 경우 해당 사용자 쓰기 요청을 처리하지 않고 버퍼링 상태로 둘 수 있다(S24). 그 후에 그 해당 맵핑 테이블 페이지의 엔트리를 수정할 쓰기 요청이 다시 확인되는 경우 다시 제2 설정값과 비교하여 플러시 메모리로의 플러시 비용을 계산할 수 있다.If the number of user write requests to modify entries in the same mapping table page is less than the second setting value, the user write request may not be processed and may be left in a buffered state (S24). Afterwards, if a write request to modify entries in the corresponding mapping table page is confirmed again, the cost of flushing to the flush memory may be calculated by comparing it with the second setting value again.

상기 스케줄링에 따라 사용자 쓰기 요청을 플러시하도록 처리를 함으로써, 지속적으로 변경된 맵핑 테이블 페이지의 수가 제1 설정값 이하가 될 수 있다. 이와 같은 알고리즘에 의하면, PLP(Power-Loss Protection)를 사용하는 SSD에서는 전원끊김시 수행되어야할 플러시 작업이 발생하지 않거나 최소화 될 수 있기 때문에, 플러시의 부정적인 영향을 완화하는 것이 베터리 집접도(커패시턴스) 제약 조건에서 SSD 장치의 성능을 유지하는 데 중요하다. By processing to flush user write requests according to the above scheduling, the number of continuously changed mapping table pages can be made less than or equal to the first set value. According to this algorithm, in an SSD using Power-Loss Protection (PLP), the flushing operation that should be performed when the power is cut off can be avoided or minimized, so that mitigating the negative impact of the flushing is important for maintaining the performance of the SSD device under battery density (capacitance) constraints.

한편, 본 발명의 실시예의 SSD 버퍼 관리 방법은 전원끊김시 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 우선적으로 플러시할 수 있다(S40). 또한, 전원끊김시 상기 사용자 쓰기 요청을 우선적으로 플러시 한 후, 상기 최대 보호 페이지 수에 포함되는 상기 일부의 매칭 테이블을 플러시할 수 있다(S50).Meanwhile, the SSD buffer management method of the embodiment of the present invention can preferentially flush a user write request existing in a write buffer when power is cut off (S40). In addition, after preferentially flushing the user write request when power is cut off, the matching table of the part included in the maximum number of protected pages can be flushed (S50).

상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계에서, 상기 매칭 테이블은 복수의 블록을 포함하고, 각 상기 블록은 복수의 페이지를 포함하며, 상기 스케줄링에 의해 상기 제1 설정값 이상의 변경된 맵핑 테이블 페이지가 발생된 해당 블록을 플러시 처리할 수 있다.In the step of processing to flush the user write request according to the above scheduling, the matching table includes a plurality of blocks, each of the blocks includes a plurality of pages, and a corresponding block in which a changed mapping table page exceeding the first setting value is generated by the scheduling can be flushed.

맵핑 테이블의 데이터를 재정렬 하는 단계는, LRU(최소 최근 사용, Least-recently Used) 알고리즘을 기반으로, 변경전 맵핑 테이블과 변경된 맵핑 테이블을 비교시에 더티 메모리 풋프린트의 증가를 최소화하도록 상기 변경전 맵핑 테이블의 페이지 엔트리를 재정렬을 하는 과정을 포함할 수 있다. 맵핑 테이블의 데이터를 재정렬 하는 단계는, 상기 플래시 메모리의 물리 주소와 상기 사용자 쓰기 요청의 논리 주소 간에 재맵핑을 하는 과정을 포함할 수도 있다.The step of rearranging data in the mapping table may include a process of rearranging page entries of the mapping table before the change to minimize an increase in a dirty memory footprint when comparing the mapping table before the change and the changed mapping table based on an LRU (Least-recently Used) algorithm. The step of rearranging data in the mapping table may also include a process of remapping between a physical address of the flash memory and a logical address of the user write request.

이와 같이 , 본 실시예의 SSD 버퍼 관리 방법에 의하면 SSD 용량이 커진 상황에서 DRAM 사이즈를 무한정 키울 수 없고, DRAM 의 데이터는 휘발성이어서 갑자기 전원이 오프되면 데이터 보존이 어렵기 때문에 DRAM 의 일부 데이터 특히, USER DATA 항목에 우선순위를 두고 데이터를 보호하고, 맵핑 테이블의 일부만을 데이터 보호하는 아키텍쳐를 제공할 수 있다. 특히, 이와 같은 사용자 데이터(USER DATA )에 더 우선순위를 둔 상황에서, DRAM BUFFER 에서의 DRAM 의 요청을 FLUSH 횟수를 최소화하도록 그룹핑하여 NAND FLASH 로 FLUSH 하도록 하는 특징을 가진다.In this way, according to the SSD buffer management method of the present embodiment, when the SSD capacity increases, the DRAM size cannot be increased indefinitely, and since the data of DRAM is volatile, it is difficult to preserve the data when the power is suddenly turned off. Therefore, an architecture can be provided that gives priority to some data of DRAM, particularly USER DATA items, to protect the data, and protects only a part of the mapping table. In particular, in a situation where priority is given to such USER DATA, the DRAM requests in the DRAM BUFFER are grouped to minimize the number of FLUSH times and then FLUSHed to NAND FLASH.

이하, 본 실시예에 따른 SSD 버퍼 관리 방법을 더 구체적으로 설명한다. 비교예의 방법(FIFO-SSD)와 본 실시예의 SSD 버퍼 관리 방법(Hexa-SSD)의 플러시 오버헤드를 비교하여 설명한다.Hereinafter, the SSD buffer management method according to the present embodiment will be described in more detail. The flush overhead of the comparative example method (FIFO-SSD) and the SSD buffer management method of the present embodiment (Hexa-SSD) will be compared and explained.

도 5는 맵핑 테이블의 일 예를 나타내는 도면이다.Figure 5 is a diagram showing an example of a mapping table.

맵핑 테이블에는 초기 상태에서 하나의 더티 페이지(m0)가 있다. 접두사 m에 있는 숫자는 맵핑 테이블 페이지의 인덱스를 나타낸다. 맵핑 테이블의 5페이지 중 2페이지가 보호된다고 가정한다.The mapping table initially has one dirty page (m0). The number in the prefix m indicates the index of the mapping table page. Assume that two of the five pages in the mapping table are protected.

후술되는 도 6 및 도 7에 도시된 비교예의 방법(FIFO)과 도 8 및 도 9에서 후술될 본 실시예에 따른 SSD 버퍼 관리 방법(Hexa-SSD)은 모두 호스트의 요청을 버퍼링하는 용도인 쓰기 버퍼는 보호를 하고, 맵핑 테이블은 일부만 보호하는 구조이다.The comparative example method (FIFO) illustrated in FIGS. 6 and 7 described below and the SSD buffer management method (Hexa-SSD) according to the present embodiment described below in FIGS. 8 and 9 are both structures in which the write buffer, which is used to buffer the host's request, is protected and only a portion of the mapping table is protected.

도 6은 비교예의 방법(FIFO)의 동작을 나타내는 도면이다. 도 7은 비교예의 방법의 동작을 시각적으로 도시한 도면이다.Figure 6 is a diagram showing the operation of the method (FIFO) of the comparative example. Figure 7 is a diagram visually illustrating the operation of the method of the comparative example.

비교예의 방법(FIFO)은 사용자의 요청이 도착한 순서대로 플래시 메모리에 기록한다. 플래시 메모리는 기존 데이터에 대한 덮어쓰기를 허용하지 않기 때문에, 호스트의 쓰기를 플래시 메모리에 반영하는 것은 맵핑 테이블에도 업데이트를 발생시킨다. 맵핑 정보 업데이트는 하나의 엔트리만 수정하지만, 맵핑 테이블이 플래시에 기록될 때에는 페이지 단위로 쓰여질 수 있다.The method of comparison (FIFO) writes to flash memory in the order in which user requests arrive. Since flash memory does not allow overwriting of existing data, reflecting the host's write to flash memory also causes an update to the mapping table. Although the mapping information update modifies only one entry, when the mapping table is written to flash, it can be written in units of pages.

도 6에 도시된 FIFO에서는 다음 순서로 호스트에서 보낸 장치 대기열에 W(4), W(17), W(12), W(2), W(6), W(18 ), W(7)와 같은 7개의 쓰기 요청이 있다. 괄호 안의 숫자는 논리적 페이지 번호(LPN)를 나타낸다. FIFO-SSD는 버퍼에 있는 사용자 데이터를 도착 순서대로 플래시 메모리에 쓴다. 이 체계를 사용하면 맵핑 테이블이 무작위로 업데이트되어 한 단위 시간에 많은 수의 더티(dirty) 페이지가 생성될 수 있다. 도 7에 도시된 바와 같이, 결과적으로 FIFO-SSD는 쓰기 프로세스 중에 맵핑 테이블 페이지의 총 5번의 플러시를 발생시킨다. 맵핑 테이블 페이지의 플러시 수가 많아질 수록 I/O 부하가 증가할 수 있기 때문에 이러한 무작위로 더티 페이지가 생성되는 것은 바람직하지 않다.In the FIFO illustrated in Fig. 6, there are seven write requests in the device queue sent from the host in the following order: W(4), W(17), W(12), W(2), W(6), W(18), W(7). The numbers in the parentheses represent logical page numbers (LPNs). FIFO-SSD writes user data in the buffer to the flash memory in the order of arrival. This scheme may cause the mapping table to be randomly updated, which may generate a large number of dirty pages per unit time. As illustrated in Fig. 7, FIFO-SSD causes a total of five flushes of the mapping table pages during the write process. This random generation of dirty pages is not desirable because an increase in the number of flushes of the mapping table pages may increase the I/O load.

도 8은 본 발명의 일 실시예에 따른 SSD 버퍼 관리 방법(Hexa)을 나타내는 도면이다. 도 9는 본 발명의 일 실시예에 따른 SSD 버퍼 관리 방법(Hexa)을 시각적으로 도시한 도면이다.FIG. 8 is a drawing showing an SSD buffer management method (Hexa) according to one embodiment of the present invention. FIG. 9 is a drawing visually illustrating an SSD buffer management method (Hexa) according to one embodiment of the present invention.

도 8을 참조하면, 본 실시예의 SSD 버퍼 관리 방법은 일정 시간 범위(Time Window) 내에 발생하는 변경된 맵핑 테이블 페이지(dirty page)의 수를 최소화하는 방법으로 사용자 쓰기 요청을 스케줄링 한다. 특히, 핵심적으로는, 동일 맵핑 테이블 페이지를 업데이트하는 요청을 함께 처리하여 맵핑 테이블의 변경된 페이지 수의 증가를 막는 것이다. Referring to FIG. 8, the SSD buffer management method of the present embodiment schedules user write requests in a way that minimizes the number of changed mapping table pages (dirty pages) that occur within a certain time window. In particular, the key is to prevent an increase in the number of changed pages of the mapping table by processing requests that update the same mapping table page together.

도 6의 예시에서는 두 개의 맵핑 테이블 페이지만이 배터리로 보호가 가능할 때, 기존 FIFO 방법으로 처리하면 매시점 변경되는 맵핑 테이블 페이지의 수가 3이 되어 총5번의 플래시 메모리에 기록하는 현상이 발생한다. 반면, 본 실시예의 SSD 버퍼 관리 방법에서는 동일 맵핑 페이지를 업데이트 하는 요청끼리 묶어 함께 처리한다. 즉, 도 8및 도 9의 예시에서 본 실시예의 SSD 버퍼 관리 방법에 의하면 지속적으로 변경된 맵핑 페이지의 수가 2개 이하로 유지되어 총 2번의 플러쉬 만을 발생시킨다.In the example of Fig. 6, when only two mapping table pages can be protected by the battery, if the existing FIFO method is used, the number of mapping table pages that change at each point in time becomes 3, which causes a phenomenon in which a total of 5 flash memory writes occur. On the other hand, in the SSD buffer management method of the present embodiment, requests to update the same mapping page are grouped and processed together. That is, in the examples of Figs. 8 and 9, according to the SSD buffer management method of the present embodiment, the number of mapping pages that are continuously changed is maintained at 2 or less, so only a total of 2 flushes occur.

본 실시예의 SSD 버퍼 관리 방법이 적용되는 SSD(Hexa-SSD)는 제한된 용량으로 맵핑 테이블을 부분적으로 보호한다. 맵핑 테이블의 더티 페이지가 최대 보호 페이지 수보다 많은 경우 Hexa-SSD는 LRU(최소 최근 사용) 알고리즘을 기반으로 해당 페이지를 플래시 메모리로 플러시한다. PLP를 사용하는 SSD에서는 플러시 작업이 발생하지 않기 때문에 플러시의 부정적인 영향을 완화하는 것이 커패시턴스 제약 조건에서 성능을 유지하는 데 중요한다. The SSD (Hexa-SSD) to which the SSD buffer management method of this embodiment is applied partially protects the mapping table with a limited capacity. If the dirty page of the mapping table exceeds the maximum number of protected pages, Hexa-SSD flushes the page to the flash memory based on the LRU (Least Recently Used) algorithm. Since the flush operation does not occur in the SSD using PLP, mitigating the negative impact of the flush is important to maintain performance under capacitance constraints.

이를 위해 Hexa-SSD는 스토리지 내 버퍼에 대해 비용 효율적인 스케줄링 방식을 사용한다. Hexa-SSD는 선택적으로 사용자 데이터를 플래시 메모리에 강제로 저장하므로 맵핑 테이블의 더러움이 최소한으로 증가한다. 이 체계는 업데이트의 지역성을 향상시켜 주어진 순간에 맵핑 테이블의 더티 메모리 공간을 줄인다. 결과적으로 맵핑 테이블에 대한 플러시 작업 빈도를 크게 줄일 수 있다.To achieve this, Hexa-SSD uses a cost-effective scheduling scheme for buffers in storage. Hexa-SSD selectively forces user data to be stored in flash memory, which minimizes the increase in dirtyness of the mapping table. This scheme improves the locality of updates, reducing the dirty memory space of the mapping table at a given moment. As a result, the frequency of flush operations for the mapping table can be significantly reduced.

반면 Hexa-SSD는 맵핑 테이블이 플러시될 때 더티 페이지의 증가를 나타내는 데이터별 쓰기 비용을 계산하고 최소한의 비용으로 요청을 먼저 처리한다. 도 8의 예에서 쓰기 요청 W(2)는 연결된 맵핑 테이블 페이지(m0)가 이미 더티 상태이므로 더티 변환 페이지 수에 추가되지 않기 때문에 최우선 순위를 갖는다. 다음으로 쓰기 요청 W(4), W(6) 및 W(7)이 처리된다. 주소 매핑 항목이 맵핑 테이블의 동일한 페이지에 있기 때문에 플러시 비용이 1/3로 줄어든다. 이 체계를 사용하면 Hexa-SSD는 동일한 작업에 대해 맵핑 테이블의 플러시를 두 번만 제공한다.On the other hand, Hexa-SSD computes the write cost per data, which represents the increase of dirty pages when the mapping table is flushed, and processes the request with the least cost first. In the example of Fig. 8, the write request W(2) has the highest priority because its associated mapping table page (m0) is already dirty and is not added to the number of dirty translation pages. Next, write requests W(4), W(6), and W(7) are processed. The flush cost is reduced by 1/3 because the address mapping entries are in the same page of the mapping table. With this scheme, Hexa-SSD provides only two flushes of the mapping table for the same operation.

전술된 실시예들에 의하면, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법 및 이 방법이 적용되는 Hexa-SSD라는 새로운 SSD 설계를 제시했다. Hexa-SSD는 고용량 SSD의 커패시턴스 제약을 극복하기 위해 스토리지 내부 버퍼의 일부를 보호한다. Hexa-SSD는 비용 효율적인 재정렬을 통해 DRAM 내 데이터의 더티 메모리 풋프린트를 줄임으로써 성능을 높인다.According to the above-described embodiments, we propose a SSD buffer management method that minimizes performance degradation in a battery-limited situation and a novel SSD design called Hexa-SSD to which the method is applied. Hexa-SSD protects a portion of the internal storage buffer to overcome the capacitance constraints of high-capacity SSDs. Hexa-SSD improves performance by reducing the dirty memory footprint of data in DRAM through cost-effective reordering.

다양한 워크로드에 대한 성능 평가를 한 결과, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법은 커패시턴스가 매우 제한적일 때 최대 42.7% 더 높은 IOPS와 49% 더 적은 쓰기 트래픽을 제공한다. Hexa-SSD는 정전 용량 제약을 극복하기 위해 보호된 DRAM 용량을 최대한 활용하도록 설계되었지만 맵핑 테이블의 더 작은 더티 페이지는 충돌 방지 및 복구 프로세스를 향상시킬 수 있다.Performance evaluations for various workloads show that our SSD buffer management approach, which minimizes performance degradation under battery-constrained situations, delivers up to 42.7% higher IOPS and 49% less write traffic when capacitance is very limited. Hexa-SSD is designed to maximize the use of protected DRAM capacity to overcome capacitance constraints, while smaller dirty pages in the mapping table can improve crash avoidance and recovery processes.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustrative purposes, and those skilled in the art will understand that the present invention can be easily modified into other specific forms without changing the technical idea or essential characteristics of the present invention. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. For example, each component described as a single component may be implemented in a distributed manner, and likewise, components described as distributed may be implemented in a combined form.

본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the claims described below, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention.

Claims (11)

배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법에 있어서,
전원끊김 시 상기 SSD 내부에 탑재되는 배터리가 기록 가능한 버퍼 상의 데이터의 양이 최대 보호 페이지 수로 제한되는 SSD에 있어서, 상기 SSD의 제어부가 상기 SSD의 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 확인하는 단계;
상기 제어부가 상기 해당 사용자 쓰기 요청에 대응하여 상기 SSD의 플래시 메모리에 플러시할 경우 발생하는 변경된 맵핑 테이블 페이지의 수가 상기 최대 보호 페이지 수를 상한으로 하는 제1 설정값의 이하가 되도록 상기 사용자 쓰기 요청을 플러시하는 순서를 스케줄링하는 단계; 및
상기 제어부가 상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계;를 포함하는 것을 특징으로 하고,
상기 플러시하는 순서를 스케줄링하는 단계는,
동일 맵핑 테이블 페이지를 업데이트하는 사용자 쓰기 요청의 개수에 따라 맵핑 테이블의 페이지 엔트리를 재정렬 하는 단계;
해당 사용자 쓰기 요청으로 변경될 맵핑 테이블의 페이지가 이미 변경된 경우(더티 상태) 제1 우선 순위로 처리하도록 스케줄링 하는 단계; 및
동일 맵핑 테이블 페이지의 엔트리를 수정할 사용자 쓰기 요청이 제2 설정값 이상인 경우 제2 우선 순위로 처리하도록 스케줄링 하는 단계;를 포함하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In a method of SSD buffer management that minimizes performance degradation in battery-limited situations,
In an SSD, the amount of data on a buffer that can be written by a battery installed inside the SSD when power is cut off is limited to the maximum number of protected pages, wherein a step of a control unit of the SSD confirming a user write request existing in a write buffer of the SSD;
A step of scheduling the order of flushing the user write request so that the number of changed mapping table pages that occur when the control unit flushes the flash memory of the SSD in response to the corresponding user write request is less than or equal to a first set value that sets the maximum number of protected pages as an upper limit; and
characterized in that it includes a step of processing the control unit to flush the user write request according to the scheduling;
The step of scheduling the above flushing order is:
A step of reordering page entries in the mapping table based on the number of user write requests that update the same mapping table page;
A step of scheduling to process with the first priority if the page of the mapping table to be changed by the corresponding user write request has already been changed (dirty state); and
A method for managing an SSD buffer to minimize performance degradation in a battery-limited situation, characterized by comprising: a step of scheduling a user write request to modify an entry in the same mapping table page to be processed with a second priority if the number of user write requests to modify the entry in the same mapping table page is greater than or equal to a second setting value;
삭제delete 청구항 1에 있어서,
상기 최대 보호 페이지 수는 상기 전원끊김시 PLP(Power-Loss Protection)를 사용하여 수행되는 플러시 작업시 상기 배터리의 제한으로 인해 상기 버퍼에 존재하는 사용자 쓰기 요청 및 일부의 맵핑 테이블을 보호하는 페이지 수인 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In claim 1,
A method for managing an SSD buffer that minimizes performance degradation in a battery-limited situation, characterized in that the maximum number of protected pages is a number of pages that protect user write requests and some mapping tables existing in the buffer due to battery limitations during a flush operation performed using PLP (Power-Loss Protection) at the time of power-off.
삭제delete 청구항 3에 있어서,
동일 맵핑 테이블 페이지의 엔트리를 수정할 사용자 쓰기 요청이 상기 제2 설정값 미만인 경우 해당 사용자 쓰기 요청을 처리하지 않고 버퍼링 상태로 두는 단계;를 포함하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In claim 3,
A method for managing an SSD buffer to minimize performance degradation in a battery-limited situation, characterized in that it includes a step of not processing the user write request and leaving it in a buffered state when the number of user write requests to modify entries in the same mapping table page is less than the second setting value.
청구항 3에 있어서,
상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계를 수행함으로써, 지속적으로 변경된 맵핑 테이블 페이지의 수가 상기 제1 설정값 이하가 되는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In claim 3,
A method for managing an SSD buffer that minimizes performance degradation in a battery-limited situation, characterized in that the number of continuously changed mapping table pages becomes less than or equal to the first set value by performing a step of processing to flush the user write request according to the above scheduling.
청구항 6에 있어서,
상기 전원끊김시 상기 쓰기 버퍼에 존재하는 사용자 쓰기 요청을 우선적으로 플러시하는 단계;를 포함하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In claim 6,
A method for managing an SSD buffer to minimize performance degradation in a battery-limited situation, characterized by including a step of preferentially flushing a user write request existing in the write buffer when the power is cut off.
청구항 7에 있어서,
상기 전원끊김시 상기 사용자 쓰기 요청을 우선적으로 플러시 한 후, 상기 최대 보호 페이지 수에 포함되는 상기 일부의 매칭 테이블을 플러시하는 단계;를 포함하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In claim 7,
A method for managing an SSD buffer that minimizes performance degradation in a battery-limited situation, characterized by including a step of flushing a portion of a matching table included in the maximum number of protected pages after preferentially flushing the user write request when the power is cut off.
청구항 3에 있어서,
상기 스케줄링에 따라 상기 사용자 쓰기 요청을 플러시하도록 처리하는 단계에서,
상기 맵핑 테이블은 복수의 블록을 포함하고, 각 상기 블록은 복수의 페이지를 포함하며,
상기 스케줄링에 의해 상기 제1 설정값 이상의 변경된 맵핑 테이블 페이지가 발생된 해당 블록을 플러시 처리하는 것을 특징으로 하는, 배터리가 제한적인 상황에서 성능저하를 최소화하는 SSD 버퍼 관리 방법.
In claim 3,
In the step of processing to flush the user write request according to the above scheduling,
The above mapping table includes a plurality of blocks, each block including a plurality of pages,
A SSD buffer management method for minimizing performance degradation in a battery-limited situation, characterized in that a block in which a changed mapping table page exceeding the first setting value is flushed by the scheduling is generated.
삭제delete 삭제delete
KR1020230013753A 2022-11-22 2023-02-01 SSD buffer management technique that minimizes performance degradation in situations where the battery is limited KR102730625B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220156939 2022-11-22
KR1020220156939 2022-11-22

Publications (2)

Publication Number Publication Date
KR20240076645A KR20240076645A (en) 2024-05-30
KR102730625B1 true KR102730625B1 (en) 2024-11-15

Family

ID=91275668

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230013753A KR102730625B1 (en) 2022-11-22 2023-02-01 SSD buffer management technique that minimizes performance degradation in situations where the battery is limited

Country Status (1)

Country Link
KR (1) KR102730625B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100610730B1 (en) * 2001-09-27 2006-08-09 인텔 코오퍼레이션 Memory access scheduling method and apparatus for reducing memory access latency
KR101404580B1 (en) * 2012-10-24 2014-06-10 주식회사 리얼타임테크 Cost-based page replacement method in a flash memory
US20200242021A1 (en) * 2019-01-24 2020-07-30 Western Digital Technologies, Inc. Logical to physical mapping management using low-latency non-volatile memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102602990B1 (en) * 2018-06-27 2023-11-17 에스케이하이닉스 주식회사 Power supply device and electronic device including the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100610730B1 (en) * 2001-09-27 2006-08-09 인텔 코오퍼레이션 Memory access scheduling method and apparatus for reducing memory access latency
KR101404580B1 (en) * 2012-10-24 2014-06-10 주식회사 리얼타임테크 Cost-based page replacement method in a flash memory
US20200242021A1 (en) * 2019-01-24 2020-07-30 Western Digital Technologies, Inc. Logical to physical mapping management using low-latency non-volatile memory

Also Published As

Publication number Publication date
KR20240076645A (en) 2024-05-30

Similar Documents

Publication Publication Date Title
CN103885728B (en) A kind of disk buffering system based on solid-state disk
US8443134B2 (en) Apparatus, system, and method for graceful cache device degradation
US7149846B2 (en) RAID protected external secondary memory
US6243795B1 (en) Redundant, asymmetrically parallel disk cache for a data storage system
US7552286B2 (en) Performance of a cache by detecting cache lines that have been reused
EP1914757A2 (en) Storage device and storing method
US20030014568A1 (en) Method, system, and program for transferring data between storage devices
US20100332726A1 (en) Structure and method for managing writing operation on mlc flash memory
CN103838853B (en) Mixed file system based on different storage media
US11281594B2 (en) Maintaining ghost cache statistics for demoted data elements
CN109165321B (en) Consistent hash table construction method and system based on nonvolatile memory
US10430346B2 (en) DDR storage adapter
JP2018520420A (en) Cache architecture and algorithm for hybrid object storage devices
JP2012128815A (en) Memory system
WO2015081690A1 (en) Method and apparatus for improving disk array performance
CN110196818A (en) Data cached method, buffer memory device and storage system
KR101023877B1 (en) Cache and Disk Management Method and Controller Using the Method
CN109739696B (en) Double-control storage array solid state disk caching acceleration method
US20140237190A1 (en) Memory system and management method therof
CN110659305B (en) High-performance relational database service system based on nonvolatile storage system
KR102730625B1 (en) SSD buffer management technique that minimizes performance degradation in situations where the battery is limited
CN111597124A (en) Persistent memory file system data organization method, system and storage medium
US20110167214A1 (en) Method And Apparatus To Manage Non-Volatile Disk Cache
JP4734432B2 (en) Data storage system
CN118535089A (en) A hybrid storage read cache design method based on elastic memory

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20230201

PA0201 Request for examination
PG1501 Laying open of application
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240625

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241104

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20241112

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20241113

End annual number: 3

Start annual number: 1

PG1601 Publication of registration