DOI QR코드

DOI QR Code

K-means clustering analysis and differential protection policy according to 3D NAND flash memory error rate to improve SSD reliability

  • Son, Seung-Woo (Dept. of Aerospace and Software Engineering, Gyeongsang National University) ;
  • Kim, Jae-Ho (Dept. of Aerospace and Software Engineering, Gyeongsang National University)
  • 투고 : 2021.09.06
  • 심사 : 2021.11.22
  • 발행 : 2021.11.30

초록

3D-NAND 플래시 메모리는 평면적 구조인 2D-NAND 셀을 적층하는 방식으로 단위 면적당 고용량을 제공한다. 하지만 적층 공정의 특성상 각 레이어별 또는 물리적인 셀 위치에 따라 오류 발생 빈도가 달라질 수 있는 문제가 있다. 이와 같은 현상은 플래시 메모리의 쓰기/지우기(P/E) 횟수가 증가할수록 두드러진다. SSD와 같은 대부분의 플래시 기반 저장장치는 오류 교정을 위하여 ECC를 사용한다. 이 방법은 모든 플래시 메모리 페이지에 대하여 고정된 데이터 보호 강도를 제공하므로 물리적 위치에 따라 오류 발생률이 각기 다르게 나타나는 3D NAND 플래시 메모리에서는 한계를 보인다. 따라서 본 논문에서는 오류 발생률 차이를 보이는 페이지와 레이어를 K-means 머신러닝 알고리즘을 통해 군집으로 분류하고, 각 군집마다 차별화된 데이터 보호강도를 적용한다. 본 논문에서는 페이지와 레이어별로 오류 발생률이 현저하게 달라지는 내구성 테스트가 끝난 시점에서 측정된 오류 발생 횟수를 바탕으로 페이지와 레이어를 분류하고 오류에 취약한 영역에 대해서는 스트라이프에 패리티 데이터를 추가하여 차별화된 데이터 보호 강도 제공을 예시로 보인다. 본 논문에서는 기존의 ECC 또는 RAID 방식의 데이터 보호 구조와 비교하여 제안하는 차별화된 데이터 보호정책이 3D NAND 플래시 메모리의 신뢰성과 수명향상에 기여할 수 있음을 보인다.

3D-NAND flash memory provides high capacity per unit area by stacking 2D-NAND cells having a planar structure. However, due to the nature of the lamination process, there is a problem that the frequency of error occurrence may vary depending on each layer or physical cell location. This phenomenon becomes more pronounced as the number of write/erase(P/E) operations of the flash memory increases. Most flash-based storage devices such as SSDs use ECC for error correction. Since this method provides a fixed strength of data protection for all flash memory pages, it has limitations in 3D NAND flash memory, where the error rate varies depending on the physical location. Therefore, in this paper, pages and layers with different error rates are classified into clusters through the K-means machine learning algorithm, and differentiated data protection strength is applied to each cluster. We classify pages and layers based on the number of errors measured after endurance test, where the error rate varies significantly for each page and layer, and add parity data to stripes for areas vulnerable to errors to provides differentiate data protection strength. We show the possibility that this differentiated data protection policy can contribute to the improvement of reliability and lifespan of 3D NAND flash memory compared to the protection techniques using RAID-like or ECC alone.

키워드

I. Introduction

최근 빅데이터와 AI 기술의 발전으로 대용량 저장장치의 수요가 급증함에 따라 3D-NAND 플래시 메모리는 SSD와 같은 저장장치의 주류 매체로 자리매김하고 있다. 3D-NAND 플래시 메모리는 기존의 평면적으로 셀을 집적하는 2D-NAND 구조의 집적도 한계를 극복하기 위하여 셀을 적층하는 방식으로 단위 면적당 고용량을 달성하였다. 하지만 적층 공정의 특성상 각 레이어별 또는 물리적인 셀 위치에 따라 오류 발생 빈도가 달라지는 현상이 발생하며, 플래시 메모리 쓰기/지우기(Program/Erasure) 횟수가 증가할수록 이와 같은 현상은 두드러진다[1].

즉, 3D-NAND 플래시 메모리를 매체로 채택한 SSD의 경우 단위 면적당 고용량을 제공할 수 있지만, 고밀도로 적층하는 구조 특성상 셀 위치에 따라 오류 발생 빈도가 달라질 수 있는 문제를 야기 할 수 있다[1, 2, 3].

따라서 본 논문에서는 기존의 2D가 아닌 3D-NAND 플래시의 P/E(Programed and Erase) 사이클에 따른 오류율 양상을 보여주고 3D-NAND 플래시의 레이어별 또는 셀 위치에 따라 오류 발생 빈도가 달라질 수 있는 특성에 맞게 신뢰성을 향상시킬 수 있는 방안을 소개한다[4].

대부분의 SSD는 오류 교정을 위하여 ECC를 채택하는데 이 방법은 모든 플래시 메모리 페이지에 대하여 고정된 보호 강도를 제공하므로 페이지 및 레이어별로 오류 발생 횟수가 비슷하게 나타나는 경우에는 적절하게 사용될 것이다. 하지만 플래시 메모리를 사용할수록 P/E 사이클 횟수가 증가하고 P/E 사이클 횟수가 증가할수록 레이어 및 페이지별로 오류 발생 횟수가 현저하게 차이가 발생하는 경우 일괄적으로 ECC로 오류를 교정하는 것이 적합하지 않다.

본 논문에서는 각 레이어 및 페이지별로 오류 발생 횟수가 현저하게 차이가 나는 시점인 내구성 테스트 직후에 측정된 오류 발생 횟수를 통해 오류 발생 빈도별로 K-Means 머신러닝 클러스터링 알고리즘을 이용하여 오류 발생 횟수에 따른 영역을 구분한다. 상대적으로 오류에 취약한 영역에 대해서는 패리티 데이터를 추가하여 높은 강도의 데이터 보호를 제공하고 상대적으로 오류에 덜 취약한 영역에 대해서는 패리티 데이터를 따로 추가하지 않아 차별화된 데이터 보호 강도를 제공하고 기존의 RAID 구조를 사용하는 SSD와의 오류율 측면에서의 비교를 통해 차별화된 데이터 보호정책이 3D NAND 플래시 메모리의 신뢰성과 수명향상에 기여할 수 있다는 가능성을 제시한다.

II. Background and Related work

1. Flash Memory characteristic

NAND 플래시 메모리는 오늘날 SSD의 기본 빌딩 블록을 형성하며 시장에 나와있는 대부분의 SSD는 많은 수의 NAND 플래시 메모리를 채널에 연결하고 이를 SSD 컨트롤러와 병렬화하여 고성능과 대용량을 제공한다 [5, 6, 7, 8, 9].

NAND 플래시 메모리 칩은 다수의 블록을 가진 여러 개의 다이와 플레인으로 구성되며 각 블록에는 고정된 여러 페이지가 있다[5, 7]. 플래시 메모리에서 가장 기본적인 작업은 읽기 및 쓰기 작업이며 페이지 단위로 수행된다. 일반적으로 페이지 쓰기에는 수백 마이크로초가 걸리는 반면 페이지 읽기는 일반적으로 수십 마이크로초가 소요되어 페이지 쓰기보다 훨씬 빠르다[10].

플래시 메모리의 고유한 특징은 한 번 데이터가 쓰여진페이지에는 새로운 데이터를 덮어쓸 수 없다는 점이다[11]. 이것은 데이터 덮어쓰기가 가능한 HDD 와는 다른 차이점으로 데이터가 쓰여진 페이지에 다시 데이터를 쓰려면 먼저 페이지를 포함하는 블록을 지워야 한다. 이 지우기 작업은페이지 쓰기 작업보다 느리며 일반적으로 P/E 주기 (Programed and Erasure cycle)라고 하는 쓰기 후 삭제 횟수는 플래시 메모리의 제조 기술에 따라 제한된다[12]. 오늘날에는 SLC(Single-Level Cell), MLC(Multi-Level Cell), TLC(Triple-Level Cell), QLC(Quad-Level Cell) 의네가지 기술이 널리 사용되는데[13] 그 중 TLC가 값이 싸고 대용량화하기 적합하여 많이 사용된다.

2. Structure of 3D-NAND Flash

Fig. 1은 2D 및 3D-NAND 플래시 메모리의 구조에 대해 나타낸 그림이다[2]. Fig. 1(a)는 2D-NAND 플래시 메모리 구조를 도시한 것으로, 기본적으로 데이터를 저장하는 Cell 과 전자가 이동하는 통로인 Channel, 셀에 전압이 인가 되기 위해 전자들이 이동하는 경로인 Drain 과 Source로 이루어져 있다. 반면 3D-NAND 플래시 메모리는 2D-NAND 플래시 메모리를 적층시켜 입체적인 구조로 만들어 지는데 하나의 층을 레이어라 한다. Fig. 1(b)의 파란색 원통형 모형이 기존의 2D-NAND 플래시 메모리를 수직으로 세워 회전시켜 만든 모형이다. 이렇게 입체적인 모양의 설계가 가능해져서 같은 설계 공간에서 확보하는 저장 용량이 2D-NAND 플래시 메모리에 비해 늘어났다. Fig. 1(b)에서 Wordline은 각 셀에 개별적으로 인가되는 전압이 지나가는 통로로 WordLine 과 BL은 서로 직교하는 형태로 구성되어 있음을 알 수 있다.

CPTSCQ_2021_v26n11_1_f0002.png 이미지

Fig. 1. 2D (a) and 3D-NAND Flash memory (b) structure [2]

하나의 레이어에는 상단, 중단, 하단 페이지가 존재하는데 하나의 플래시 메모리는 여러개의 플래인 및 다이로 구성되어 있으며 하나의 다이는 다시 여러개의 블록으로, 하나의 블록은 여러개의 페이지로 구성되어 있다.

3. Reliability issues due to the process of 3D-NAND flash

3D NAND 플래시 메모리는 플래너(2D) NAND 셀을 적층하는 방식으로 제조 공정이 이루어진다. 하지만 이렇게 층을 쌓게 되면 적층 공정 특성상 각 레이어별 또는 셀 위치에 따라 오류 발생 빈도가 달라질 수 있는 문제가 생긴다[1]. 이러한 문제점에 영향을 미칠 수 있는 원인은 공정상 구조의 비틀림, 채널 구멍의 구부러짐, 상단 레이어에서 하단 레이어까지의 채널 구멍의 직경 변화를 예로 들 수 있다. 이러한 공정상의 문제점은 플래시 메모리의 신뢰성에 영향을 줄 수 있는 대표적인 요인이다[2, 3].

4. Error rate according to P/E cycle of 3D-NAND flash

Yuqian Pan 외 연구진은 Xilinx Zynq-7020으로 NAND 플래시 테스트플랫폼을 설계하였고 3D-TLC 플래시 메모리의 서로 다른 칩에서 블록을 테스트하였다[14].

Fig. 2는 Yuqian Pan 연구진이 논문에서 밝힌 오류율분포도 이다[15, 16]. 본 논문에서는 블록 넘버에 따른 평균 오류율을 50 P/E 사이클부터 5000 P/E 사이클까지만 그림에 나타내었다[4].

CPTSCQ_2021_v26n11_1_f0001.png 이미지

Fig. 2. Average bit error rate per block number in different P/E cycles[14]

Fig. 2에서 볼 수 있는 것처럼 1000 P/E 사이클 이하일 때는 블록 넘버별로 오류율이 크게 다르지 않다는 사실을 볼 수 있으며 P/E 사이클이 증가할수록 평균 오류율이 조금씩 증가한다는 것을 알 수 있다.

5. Number of errors per page and layer

Cristian Zambelli외 연구진은 3D TLC NAND 플래시의 오류 발생 횟수가 레이어와 페이지별로 다르다는 것을 나타내었다[1]. Fig. 3는 Cristian Zambelli 연구진이 논문에서 밝힌 오류율 분포도 이다.

CPTSCQ_2021_v26n11_1_f0003.png 이미지

Fig. 3. Number of error occurrences according to different layers and pages at the end of endurance test[1]

임의의 패턴으로 메모리 블록을 반복적으로 쓰고 지운 뒤, 페이지, 레이어별로 잘못된 비트 수를 확인하는 Endurance 테스트가 끝난 후에 오류 발생 횟수를 측정하게 되면 Fig. 3과 같이 나타낼 수 있다[1]. Fig. 3의 x축인 레이어는 0 ~ 1까지 나타내었는데 0에 가까울수록 하단 레이어이고 1에 가까울수록 상단 레이어이다. 또한 y축인 Fail bits 는 오류가 발생한 횟수로서 상대적인 값으로 0 에서 1까지 나타내었다. 그래프의 검은색 점은 상단 페이지를 나타내며 파란색 점은 중단 페이지, 빨간색 점은 하단 페이지를 각각 나타낸다.

Fig. 3을 보면 각 레이어마다 발생하는 오류들의 특징을 살펴 볼 수 있는데 하단 레이어에서는 하단 페이지가 가장 오류 발생 횟수가 많고 전체적으로 볼 때 페이지 종류에 상관없이 오류발생 횟수가 많은 반면 중단 레이어에서는 페이지별로 오류발생 횟수가 비슷하다는 특징을 살펴 볼 수 있다. 또한 상단 레이어에서는 상단 페이지가 가장 오류 발생 횟수가 많이 나타나고 하단 페이지의 오류 발생 횟수가 가장 적게 나타난 것을 볼 수 있다.

6. Error rate based K-means cluster analysis

Fig. 3에서 볼 수 있듯이 3D-NAND 플래시는 페이지, 레이어별로 오류 발생횟수가 다르다는 특성이 있다. 이 특성에 맞게 군집화 알고리즘을 적용하여 분류하고, 각 군집의 특성에 맞는 데이터 보호정책을 사용하면 3D-NAND 플래시 메모리의 신뢰성을 높일 수 있다.

클러스터링 알고리즘으로는 K-means, Mean Shift, Gaussian Mixture Model(GMM), DBSCAN 등 다양한 종류가 있다. 이 중 알고리즘이 쉽고 간결하며 일반적으로 자주 사용되는 K-means 알고리즘을 사용하여 Fig. 3의 그래프를 입력데이터로 하여 분류하였다(Fig. 4 참조)[18].

CPTSCQ_2021_v26n11_1_f0004.png 이미지

Fig. 4. Number of error occurrences according to the layer that the K-means algorithm is applied

Fig. 4의 x축은 레이어로 0 ~ 1까지 나타내었으며 값이 0에 가까울수록 하단 레이어를 의미하고 값이 1에 가까울수록 상단 레이어를 나타낸다. y축은 Fail bits로 오류 발생 횟수를 나타내며 Fig. 3과 마찬가지로 0 ~ 1까지 상대적인 값으로 나타내었다.

K-means 알고리즘은 사용자가 정한 임의의 k값에 따라 군집의 개수가 정해지고 입력받은 데이터 간의 거리만으로 유사한 군집을 분류한다. K-means 알고리즘은 각 군집의 분산을 최소화하는 데이터들의 집합을 구하는 것이 목표라고 할 수 있는데, K-means 알고리즘이 군집을 분류하는 방법을 살펴보면 먼저 입력받은 데이터(여기서는 Fig. 3의 데이터)를 기준으로 사용자가 임의로 정한 k값 (군집의 개수)만큼 전체 데이터에서 군집의 중심점을 임의로 정한다. 그 다음 유클리디안 거리공식을 이용해 각 중심점에 가장가까운 거리에 있는 데이터들을 동일 군집으로 분류한다. 기존에 임의로 정해준 k개의 중심점을 새롭게 분류된 군집의 중심으로 다시 이동시킨다. 더 이상 중심점의 이동이 없을 때까지 각 중심점에서 가장 가까운 거리에 있는 데이터들을 동일 군집으로 새롭게 분류하고 중심점을 이동시키는 과정을 반복한다.

본 연구진은 적절한 k값을 찾기 위해 실험적인 방법으로 k값을 1부터 1씩 늘려가며 오류 발생 군집을 잘 구분할 수 있는 값을 찾았다. 분류 결과 k 값이 6일 때(군집의 개수가 6개 일 때) 데이터가 적절히 분류되는 것을 관찰하였다.

7. WAF(Write Amplification Factor)

각 군집의 특성에 맞게 차별화된 데이터 보호정책을 사용하는 또 다른 이유는 바로 SSD의 성능과 관련이 있다. 우리가 단순히 오류율만 낮추는 것이 목적이라면 모든 군집에 대해 최대 데이터 보호강도를 적용하도록 하면 될 것이다. 하지만 이렇게 하게 되면 무분별한 패리티 데이터 쓰기로 인한 WAF가 증가하게 되고 성능에 악영향을 줄 것이다.

WAF는 Write Amplification Factor의 줄임말로 사용자가 n 바이트 쓰기를 시도하면 플래시 메모리 내부에서는 n+a 바이트 쓰기가 발생하는 것을 의미하는데 단순히 데이터를 쓰는 작업뿐만 아니라 플래시 메모리 내부에서 데이터 읽기, 업데이트, 데이터를 다시 쓰기 위한 새로운 위치를 찾아서 쓰는 작업이 실제로 발생하기 때문에 사용자가 n 바이트 쓰기를 시도하더라도 플래시 메모리 내부에서 n+a 바이트 쓰기가 발생한다. WAF는 플래시 메모리의 I/O 성능에 영향을 주며 WAF가 증가할수록 I/O 성능은 떨어진다[10]. 패리티 데이터 쓰기 역시 WAF를 증가시키는 요인 중 하나이고 이로 인해 P/E 사이클 수를 증가 시켜 마모를 더 빠르게 하기 때문에[10] 오류율을 낮추기 위해 모든 군집에 패리티 데이터를 추가 하는 것 보다 각 군집의 오류 발생 횟수에 따라 선택적으로 패리티 데이터를 추가하여 차별화된 데이터 보호강도를 제공하는 것이 성능, 신뢰성의 측면에서 더욱 좋다.

섹션 V 에서 기존의 ECC만 사용하여 데이터를 보호하는 정책과 RAID방식을 이용한 차별화된 데이터 보호 정책 모델을 정량적으로 비교한다.

III. The Proposed Scheme

이번 장에서는 3D-NAND 플래시 메모리를 사용한 SSD 에 차별화된 데이터 보호 정책을 적용하는 방안에 대해 설명한다. 설명에 앞서 패리티 데이터에 대해 알아보면 사용자데이터가 스트라이프 내의 페이지에 저장될 때 함께 동일 스트라이프 내에 저장되는 오류 교정용 중복 데이터이다. 스트라이프 내 특정 데이터에서 오류가 발생하여 해당 데이터를 읽지 못하는 경우, 동일 스트라이프 내에 저장된 패리티를 이용하여 오류가 발생한 데이터를 복원할 수 있기 때문에 패리티 데이터를 추가하면 오류율을 낮출 수 있고 동시에 신뢰성 역시 높일 수 있다. 섹션 IV에서 SSD의 데이터 보호 방법에 따라 오류율을 분석하기 위한 수식을 소개하고 섹션 Ⅴ에서 수식이 적용된 모델들을 비교한다.

Fig. 5는 제안하는 구조를 설명하기 위하여 일반적인 SSD 내부 구조를 간략히 도시한 것이다. 5개의 플래시 메모리칩은 Channel에 의해 SSD 컨트롤러에 연결되고 블록은 4개의 페이지로 구성됨을 가정한다.

CPTSCQ_2021_v26n11_1_f0005.png 이미지

Fig. 5. Example of differentiated data protection in SSD[10]

앞서 Fig. 1과 3에서 알 수 있는 것처럼 하나의 층(레이어)에는 하단, 중단, 상단 페이지가 존재하고 페이지, 레이어별로 오류 발생 횟수가 다르다는 특징이 있다. 이러한 3D-NAND 플래시 메모리의 특성에 따라 오류 발생 횟수별로 차별화된 데이터 보호강도를 적용시키기 위해 데이터를 K-means 알고리즘으로 분류한 Fig. 4의 그래프를 보면 총 6개의 군집으로 분류하였는데 왼쪽의 오류 발생 횟수가 가장 높게 나타난 군집부터 레이어가 증가하는 순서로 번호를 매기면 오류 발생 횟수에 따라 첫 번째 군집의 Stripe에는 패리티를 n개, 2, 3, 6번 군집의 Stripe에는 패리티를 n-1개, 4, 5번 군집의 Stripe에는 패리티를 n-2 개로 설정하여 차별화된 보호강도를 지정해줄 수 있다 [12]. n1)을 2라고 가정하고 하나의 Stripe은 5개의 플래시 메모리 칩을 포함한다. 오류 발생 횟수가 가장 많은 첫 번째 군집에 해당하는 플래시 메모리 칩의 Stripe을 표현하면 Fig. 5의 (c)처럼 나타낼 수 있고 첫 번째 군집에 해당하는 하단 레이어의 상단 페이지에 적용 가능하다. 마찬가지로 2, 3, 6번 군집에 해당하는 플래시 메모리 칩의 Stripe을 표현하면 Fig. 5의 (a), (c)처럼 나타낼 수 있으며 2, 3, 6번 군집에 해당하는 하단 및 상단 레이어의 모든 페이지에 적용 가능하다. 가장 오류 발생 횟수가 낮게 나온 4, 5번 군집에 해당하는 플래시 메모리 칩의 Stripe을 표현하면 Fig. 5의 (b)처럼 나타낼 수 있으며 중단 레이어의 모든 페이지에 적용 가능하다.

가장 오류 발생 횟수가 많은 1번 군집에 대해서는 Stripe당 패리티 데이터의 개수를 가장 많게(n개의 패리티) 설정하여 데이터 보호강도를 가장 높인다. 중간 단계의 오류 발생 횟수가 나타난 2, 3, 6번 군집에 대해서는 Stripe당 패리티 데이터의 개수를 n-1개로 설정하여 중간단계의 데이터 보호강도로 설정한다. 마지막으로 가장 오류 발생 횟수가 적게 나타난 4, 5번 군집에 대해서는 Stripe당 패리티 데이터의 개수를n-2개로 설정하여 가장 낮은 단계의 데이터 보호강도로 설정하여 각 군집에 대하여 차별화된 데이터 보호강도를 지정하여 준다.

패리티에 대한 관리방식은 최근 소개된 효율적인 로그구조 쓰기 방식[10]을 따르며 부분 데이터에 대한 패리티 데이터인 PSP(Partial Stripe Parity)와 이에 대한 관리방식은 [12]을 따른다.

IV. Analytic Models of Reliability of SSDs

이번 섹션에서는 기존의 ECC만 사용하여 데이터를 보호하는 RAID 모델(ECC)과 차별화된 데이터 보호 강도를 제공하는 모델(Differentiated Protection)을 오류율 측면에서 분석하기 위해 사용된 수식을 설명하겠다.

플래시 메모리의 RBER(Raw Bit Error Rate)은 다음과 같이 P/E 사이클 주기에 대해 기하급수적으로 증가한다. 이방 정식에서 x는 블록의 P/E 사이클을 나타내고 A와 B는 플래시 메모리의 종류와 프로세스에 따라 일정한 값이다[12].

\(R B E R(x)=A \cdot e^{B x}\)       (1)

또한 ECC 코드는 특정 코드 워드 n당 최대 k비트 오류를 수정할 수 있는데 수정 가능한 페이지 오류율 CPER(Correctable Page Error Rate)과 수정 불가능한 페이지 오류율 UPER(Uncorrectable Page Error Rate) 는 다음과 같이 이진 분포로 계산 할 수 있다[12].

\(\begin{aligned} &\operatorname{CPER}(n, k, x)=\sum_{i=0}^{k}\left(\begin{array}{l} n \\ i \end{array}\right) \operatorname{RBER}(x)^{i}(1-\operatorname{RBER}(x))^{n-i} \\ &\operatorname{UPER}(n, k, x)=1-\operatorname{CPER}(n, k, x) \end{aligned}\)       (2)

그러나 ECC는 오류 비트 수가 k를 초과하면 ECC로 오류를 수정할 수 없다는 한계가 있고 ECC로 수정할 수 없는 오류는 RAID 패리티를 통해 수정된다. 하지만 RAID 패리티를 통해 오류를 수정하려면 먼저 ECC를 통해 오류를 감지해야 한다.

ECC는 최대 k비트의 오류를 수정하고 최대 2k 비트의 오류를 감지 할 수 있다. 따라서 수정할 수는 없지만 ECC 에서 감지할수 있는 페이지 오류율 DPER(Detectable Page Error Rate)은 다음과 같이 정의된다[12].

\(\begin{array}{r} \operatorname{DPER}(n, k, x)=\sum_{i=k+1}^{2 k}\left(\begin{array}{l} n \\ (i) \end{array}\right) R B E R(x)^{i} \\ (1-R B E R(x))^{n-i} \end{array}\)       (3)

스트라이프 당 패리티가 하나도 없는 경우(ECC만 제공하는 경우)는 스트라이프 페이지에 ECC에 의해서만 수정 가능한 오류 비트가 수정될 것이므로 ECC 모델에서 수정할 수 없는 페이지 오류율은 다음과 같다.

\(U P E R_{E C C}(n, k, x)=\frac{1}{N}\left(1-\left(\begin{array}{l} N \\ 0 \end{array}\right) \operatorname{CPER}(n, k, x)^{N}\right)\)       (4)

N은 스트라이프 사이즈를 의미하며 스프라이프 당 패리티가 하나인 경우는 (1)스트라이프의 페이지에 ECC에 의해 수정 가능한 비트 오류만이 발생했을 경우, (2) ECC에서 감지 할 수 있는 오류는 스트라이프의 한 페이지에서 발생하고 ECC에서 수정 가능한 오류는 나머지 페이지에서 발생한 경우, 이렇게 두 가지 경우에 오류를 수정 할 수 있으므로 수정할 수 없는 페이지 오류율은 다음과 같다[12].

\(\begin{aligned} \operatorname{UPER}_{P 1}(n, k, x)=& \frac{1}{N}\left(1-\left(\begin{array}{l} N \\ 0 \end{array}\right) \operatorname{CPER}(n, k, x)^{N}\right.\\ &-\left(\begin{array}{l} N \\ 1 \end{array}\right) \operatorname{CPER}(n, k, x)^{N-1} \\ &\operatorname{DPER}(n, k, x)) \end{aligned}\)       (5)

스트라이프 당 2개의 패리티가 유지되는 경우는 ECC에서 감지 할 수 있는 두 페이지의 오류가 동시에 발생하면 두 페이지를 동시에 수정할 수 있으므로 수정할 수 없는 페이지 오류율은 다음과 같다[12].

\(\begin{aligned} \operatorname{UPER}_{P 2}(n, k, x)=& \frac{1}{N}\left(1-\left(\begin{array}{l} N \\ 0 \end{array}\right) \operatorname{CPER}(n, k, x)^{N}\right.\\ &-\left(\begin{array}{l} N \\ 1 \end{array}\right) \operatorname{CPER}(n, k, x)^{N-1} \\ & \operatorname{DPER}(n, k, x) \\ &-\left(\begin{array}{l} N \\ 2 \end{array}\right) \operatorname{CPER}(n, k, x)^{N-2} \\ &\left.\operatorname{DPER}(n \cdot k \cdot x)^{2}\right) \end{aligned}\)       (6)

Ⅴ. Evaluation

Fig. 6은 수식(1) ~ (6)을 바탕으로 Fig. 4에서 분류한 각 군집별로 4가지 모델의 오류율을 나타내었는데 그림의 RBER은 3000 P/E 사이클에서 초기 비트 오류율을 나타내었으며 ECC는 ECC만 사용하여 데이터를 보호하는 기존 SSD의 비트 오류율을 나타낸다. 또한 Differentiated Protection은 본 논문에서 제시하는 모델인 차별화된 데이터 보호정책을 적용한 모델로 패리티 오버헤드가 적용되지 않은 모델(Differentiated Protection without parity overhead)과 적용된 모델(Differentiated Protection with parity overhead)로 나누어서 비트 오류율을 나타내었다. Fig. 6의 초기 비트 오류율은 참조논문[5]을 참고하였으며 Fig. 6에서 각 모델이 나타내는 오류율 값은 각 군집의 평균 오류율 값으로 생각하면 된다. 또한 그림의 오류율 10-15부근의 검은색 실선은 통상적인 SSD의 한계 오류율로 10-15 을 넘는 오류가 발생하면 SSD의 수명이 다했다고 볼 수 있다[19].

CPTSCQ_2021_v26n11_1_f0006.png 이미지

Fig. 6. Bit error rate by cluster and model at 3000 P/E cycles

패리티 오버헤드가 적용되지 않은 차별화된 데이터 보호 정책 모델과 ECC 모델은 식(1) ~ (6)을 이용하여 나타내었으며 그 절차는 다음과 같다.

1. RBER은 식(1)을 통해서 구할 수 있지만 본 논문에서는 참조논문[20]의 그래프의 값을 이용한다.

2. 참조논문[12]의 ECC 파라미터와 본 논문의 식(2), 식 (4)를 통하여 UPER을 구한다. 여기서 구한 식(4)의 UPER은 스트라이프당 패리티 데이터가 하나도 없는 ECC모델의 오류율과 차별화된 데이터 보호정책의 4, 5번 군집의 오류율을 구하는데 사용한다.

3. 차별화된 데이터 보호정책의 스트라이프당 패리티 데이터가 1개인 2, 3, 6번 군집은 패리티 1개에 의해 데이터 보호를 받을 수 있으므로 식(3), 식(5)를 통해 파생된다.

4. 1번 군집은 스트라이프당 2개의 패리티로 구성되며 2개의 패리티에 의해 데이터 보호를 받을 수 있으므로 식(6)을 통해 계산될 수 있다.

본 논문에서는 참조논문[12]의 128GB SSD에서 financial 워크로드로 실험한, 스트라이프당 패리티 데이터 개수가 0개인 경우에 비해 스트라이프당 패리티 데이터 개수가 1개인 경우 WAF 가 20%, 스트라이프당 패리티 데이터 개수가 2개인 경우 WAF가 50% 증가한 결과값을참고하여 Fig. 6의 패리티 오버헤드를 고려한 차별화된 보호 정책 모델을 나타내었다.

Fig. 6을 보면 기존의 ECC만 사용하여 데이터를 보호하는 기존의 RAID 모델에 비해 본 논문에서 제시하는 차별화된 데이터 보호정책(패리티 오버헤드가 포함된)을 적용한 모델(Differentiated Protection)이 모든 군집에서 동일하거나 낮은 오류율을 나타내는 것을 볼 수 있다. 또한 4번과 5번 군집에서는 ECC만을 사용하여 데이터를 보호하는 모델과 Differentiated Protection 모델이 동일한 비트 오류율을 나타내는 것을 볼 수 있는데 이는 Differentiated Protection 모델에서 4번, 5번 군집에는 패리티 데이터를 추가하여 주지 않았기 때문에 패리티 오버헤드가 없으며 기존의 ECC만 사용하여 데이터를 보호하는 모델과 동 일한보호 강도로 데이터를 보호하기 때문이다.

VI. Conclusions

본 논문에서는 3D NAND 플래시 메모리의 주요 신뢰성 문제 중 일부를 제시했다. 페이지 및 레이어 오류 발생 빈도가 달라지는 특성은 ECC를 일괄적으로 적용할 수 없으므로 플래시 메모리의 신뢰성 저하에 큰 영향을 미친다[1].

또한 페이지, 레이어별 오류율이 달라지는 특성이 잘 나타나는 내구성 테스트 이후의 오류 발생 횟수를 측정하여 플래시 메모리의 페이지에 동일한 데이터 보호강도를 제공하는 ECC 작업이 적합하지 않음을 보였다. 또한 K-means 클러스터링 알고리즘을 통해 데이터를 분류 하여 오류 발생 횟수에 따라 영역을 구분하고 패리티 데이터를 추가하여 차별화된 보호 강도를 적용하였고 기존의 ECC만을 이용하여 데이터를 보호하는 SSD모델과 논문에서 제시하는 Differentiated Protection 모델의 오류율 측면에서의 평가를 통해 논문에서 제시하는 모델이 3D NAND 플래시 메모리의 신뢰성 향상에 도움을 주는 것을 보였다.

ACKNOWLEDGEMENT

We would like to thank the anonymous reviewers for their constructive comments. This work was supported by the National Research Foundation of Korea(NRF) grant funded by the Korea government(MSIT) (No. 021R1F1A1063524).

참고문헌

  1. Cristian Zambelli, Rino Micheloni and Piero Olivo, "Reliability challenges in 3D NAND Flash memories", IEEE 11th International Memory Workshop(IMW), May 2019.
  2. R. Micheloni et al., "Array Architectures for 3-D NAND Flash Memories," Proceedings of the IEEE, vol. 105, no. 9, pp. 1634-1649, Sep. 2017, DOI. 10.1109/JPROC.2017.2697000.
  3. H. Kim et al., "Evolution of NAND Flash Memory: From 2D to 3D as a Storage Market Leader," in IEEE International Memory Workshop (IMW), May 2017, pp. 1-4, DOI. 10.1109/IMW.2017.7939081.
  4. Seung woo Son, Min jin oh, Jaeho Kim. "Improve reliability of SSD through cluster analysis based on error rate of 3D-NAND flash and application of differentiated protection policy". 64th Proceedings of KSCI Conference 2021. 16 July 2021.
  5. Agrawal, N.; Prabhakaran, V.; Wobber, T.; Davis, J.D.; Manasse, M.; Panigrahy, R. Design tradeoffs for SSD performance. In 2008 USENIX ATC; USENIX Association: Berkeley, CA, USA, 2008; pp. 57-70.
  6. Seong, Y.J.; Nam, E.H.; Yoon, J.H.; Kim, H.; yong Choi, J.; Lee, S.; Bae, Y.H.; Lee, J.; Cho, Y.; Min, S.L. Hydra: A Block-Mapped Parallel Flash Memory Solid-State Disk Architecture. IEEE Trans. Comput. 2010, 59, 905-921. https://doi.org/10.1109/TC.2010.63
  7. Chen, F.; Koufaty, D.A.; Zhang, X. Understanding Intrinsic Characteristics and System Implications of Flash Memory Based Solid State Drives. In Proceedings of the Eleventh International Joint Conference on Measurement and Modeling of Computer Systems, Seattle, WA, USA, 15-19 June 2009; pp. 181-192.
  8. Jung, M.; Kandemir, M. An Evaluation of Different Page Allocation Strategies on High-speed SSDs. In Proceedings of the USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage), Boston, MA, USA, 13-14 June 2012.
  9. Lee, J.; Byun, E.; Park, H.; Choi, J.; Lee, D.; Noh, S.H. CPS-SIM: Configurable and accurate clock precision solid state drive simulator. In Proceedings of the 2009 ACM Symposium on Applied Computing, Honolulu, HI, USA, 15-19 March 2009; pp. 318-325.
  10. Jaeho Kim, Jongmin Lee, Jongmoo Choi, Donghee Lee and Sam H. Noh, "Improving SSD Reliability with RAID via Elastic Striping and Anywhere Parity", 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 08 August 2013.
  11. Kim, J.; Kim, J.M.; Noh, S.; Min, S.L.; Cho, Y. A space-efficient flash translation layer for CompactFlash systems. IEEE Trans. Consum. Electron. 2002, 48, 366-375. https://doi.org/10.1109/TCE.2002.1010143
  12. Jaeho Kim and Jung Kyu Park, "Building Reliable Massive Capacity SSDs through a Flash Aware RAID-Like Protection",IEEE International Conference on Consumer Electronics (ICCE) 2020, Las Vegas, NV, USA, 4-6 January 2020.
  13. Wikipedia. Flash Memory. 2019. Available online: https://en.wikipedia.org/wiki/Flash_memory (accessed on 20 November 2020).
  14. Yuqian Pan, Haichun Zhang, Mingyang Gong and Zhenglin Liu, "Process-variation Effects on 3D TLC Flash Reliability: Characterization and Mitigation Scheme", 2020 IEEE 20th International Conference on Software Quality, Reliability and Security (QRS)
  15. L. Shi et al.,"Exploiting process variation for write performance improvement on nand flash memory storage systems," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 24, pp. 334-337, February 2015. https://doi.org/10.1109/TVLSI.2015.2393299
  16. Yejia Di et al., "Minimizing Retention Induced Refresh Through Exploiting Process Variation of Flash Memory," in IEEE Transactions on Computers, vol. 68, pp. 83-98, July 2018. https://doi.org/10.1109/TC.2018.2858771
  17. C. Zambelli et al., "Characterization of TLC 3D-NAND Flash Endurance through Machine Learning for LDPC Code Rate Optimization," in IEEE International Memory Workshop (IMW), May 2017, pp. 1-4, DOI. 10.1109/IMW.2017.7939074.
  18. J. MacQueen, "Some methods for classification and analysis of multi- variate observations," in Proc. of Berkeley Symp. on Math. Statistics and Prob.
  19. Gary, J.; van Ingen, C. Empirical Measurements of Disk Failure Rates and Error Rates; Technical Report MSR-TR-2005-166; Microsoft: Redmond, WA, USA, December 2005.
  20. Nikolaos Papandreou, Haralmpos Pozidis, Thomas Parnell et. al, "Characterization and Analysis of Bit Errors in 3D TLC NAND Flash Memory", 2019 IEEE International Reliability Physics Symposium (IRPS), 23 May 2019.