본문 바로가기
반도체 강좌

낸드플래시(Nand Flash)에 대해 알아봅시다.

by gamma0burst 2013. 4. 10.
반응형

- 낸드플래시(Nand Flash)

메모리는 흔히 휘발성 저장매체로 알려져있습니다.
전원이 끊기면 저장된 내용이 없어지지요.
전자로 데이터를 저장하려는 시도는 필연적으로 있었고, 그 결과가 크게 두 가지 였습니다.
NOR 플래시, NAND 플래시.
(논리회로에서 볼 수 있는 NOR, NAND 입니다.)

NOR형은 읽기가 빠릅니다.
자료에 따라 다르지만 대략 NAND형의 6~7배.
하지만 NAND형에 비해 쓰기는 수십배, 쓰기는 수백~수천배 느렸습니다.
이는 대용량 데이터를 저장하는데 치명적인 단점으로 작용합니다.

이에 비해 NAND형은 읽기는 느렸으나 상대적 쓰기/지우기가 엄청나게 빨랐습니다.
게다가 제조단가가 NOR형보다 쌉니다.
이론적으로 한 셀당 면적이 NOR형의 40% 수준입니다.
수많은 셀을 집적해서 대용량을 구현하는 플래시 메모리에 있어서 작은 면적은 엄청난 장점이 됩니다.
면적 = 단가 인 반도체 세계에서 이 정도면 엄청난 가격 차이이기도 하고요.
세상이 낸드플래시 천지가 된 이유를 알 수 있습니다.




- 원리.
기본 형태는 아래 그림과 같습니다.




기본적인 모스펫 구조에 플로팅 게이트(부유 게이트)가 추가된 형태입니다.
저 플로팅 게이트에 전자를 저장함으로써 데이터를 저장하는겁니다.
플로팅 게이트에 전자가 있으면(많으면) 0 으로 인식합니다.(programmed)
플로팅 게이트에 전자가 없으면(적으면) 1 로 인식합니다.(erased, unprogrammed)

기본 구조은 이렇습니다만, 현재는 플로팅게이트가 아닌 산화막에 전자를 저장해버리고 플로팅게이트를
생략해버리는 식(삼성, CTF) 등의 발전된 방식이 많이 존재합니다
.

(1) 쓰기과정
그럼 저 플로팅 게이트에 어떻게 전자를 넣을까요.
간단합니다.
컨트롤 게이트에 강력한 (+)전압을 걸어주면 됩니다.
그러면 바디(P-well 이라고 쓰여진 영역)의 전자가 위쪽으로 모입니다.
음극인 전자가 양극인 게이트쪽으로 인력을 받는건 당연하겠지요.
그런데 중간에 절연층(산화막)이 버티고 있습니다.
산화막은 기본적으로 전자가 통과할 수 없습니다.
하지만 플래시메모리에서는 전자가 통과해야 데이터를 저장하든말든 하겠지요.
그래서 12~24V의 고전압을 걸어버립니다.
드레인 측에도 그 정도는 아니지만 높은 전압을 걸어줍니다.
이 정도의 강력한 전계가 형성되면 전자가 충분한 에너지를 얻어서 산화막을 통과해버립니다.
(Hot electron effect)

 

- 2015.11.19

NOR - Program : Hot Electron Effect (Impadt Ionization at Drain side) / Erase : Fowler-Nordheim Tunneling

NAND - Program, Erase : Fowler-Nordheim Tunneling


통과한 전자는 플로팅게이트에 저장되어 전계가 사라져도 산화막에 의해 외부로 유출되지 않습니다.
전원이 끊어져도 데이터가 사라지지 않는거지요.




(2) 읽기과정
아래는 낸드플래시 셀의 구조입니다.
하나의 비트라인(Bit Line)에 다수의 셀이 직렬로 연결되어 있습니다.
비트라인에 전압을 걸면 직렬로 연결된 모든 셀에 전압이 걸리고, 워드라인(Word Line), 즉 컨트롤 게이트에 전압을 걸린 셀에만 채널이 형성됩니다.
읽기 과정은 이 채널의 존재유무에 달려있습니다.



전자가 있는(Program) 된 셀의 문턱전압은 0V보다 크고, 전자가 없는(Erase) 된 셀의 문턱전압은 0V보다 작습니다.
비트라인에 전압을 걸고, 읽으려는 셀의 워드라인에는 0V, 그 외 셀의 워드라인에는 6~6.5V 정도를 인가합니다.
6~6.5V는 셀의 상태와 관계없이 채널을 형성할 수 있는 문턱전압입니다.

> 플로팅게이트에 전자가 저장된 경우.
읽으려는 셀에 전자가 있는 경우 워드라인에 0V를 인가해도 채널이 형성되지 않습니다.
나머지 셀에는 채널이 형성되었으니 선택된 셀에서 open되어 버린 것으로 볼 수 있습니다.
이러니 비트라인에 전압이 걸려도 전류가 잘 흐르지 않습니다.
open 상태이기때문에 비트라인을 통해 유입되는 전류는 빠져나가지 못 하고 charge가 됩니다.
비트라인의 전압강하가 적게 되고 이를 '0'으로 인식합니다.

> 플로팅게이트에 전자가 없는 경우
읽으려는 셀에 전자가 없으면 0V를 인가해도 채널이 잘 형성되고 전류가 잘 흐릅니다.
short 상태이니 비트라인을 통해 유입되는 전류가 charge되지 못 하고 비트라인의 전압강하는 커집니다.
이를 '1'로 인식합니다.


(3) 지우기 과정.
플래시메모리에 데이터를 저장하기위해서는 플로팅게이트를 비울 필요가 있습니다.
저장될 데이터가 0(전자저장필요)인지 1(전자저장불필요)인지 알 수 없는 상황에서 플로팅게이트에 전자가
남아있으면 제대로 데이터를 기록할 수 없습니다.

플로팅게이트를 완전히 비워야합니다.
방법은 쓰기의 반대입니다.
바디쪽에 12~24V의 강력한 전압을 걸어 쓰기때와 반대반향의 전계를 형성, 플로팅게이트 내의 전자를
바디쪽으로 끌어냅니다.
소스 측에도 (+)전압을 걸어 쓰기 때와 반대 현상이 일어나도록 유도합니다.

SSD의 경우 이렇게 각 셀의 데이터를 지우는 작업을 쓰기작업이 발생하기 전에 미리 진행해놓는데
이를 Trim이라고 합니다.
쓰기 속도 향상에 필수적인 과정입니다.


- MLC와 TLC
앞서 설명한 플래시메모리는 한 셀에 1비트만 저장이 가능했습니다.
0 아니면 1 이었으니까요.
이런 셀을 무수히 많이 집적해서 플래시 메모리를 만듭니다.
셀이 10억개 집적되어있으면 1Gb(=128MB)의 용량을 갖는 식으로요.

플래시메모리는 저장매체이니 더 많은 저장용량을 원하는건 당연한 요구입니다.
그래서 머리를 굴립니다.
한 셀이 2비트를 저장해보자. 라고요.
한 셀에 저장되는 용량이 2배면 셀의 개수(메모리 다이의 크기)를 늘리지 않아도 저장용량이 단숨에 2배로
늘어납니다.


그럼 이것을 어떻게 구현할 것인가.

전자있다.(0), 전자없다.(1) 의 단순한 구분을 뛰어넘어서,
전자없다(11) 전자적다(10) 전자많다(01) 전자아주많다(00) 로 구분을 세분화한 것입니다.
이를 기록하기위해서 쓰기 과정에서 각 신호별 컨트롤게이트 전압이 세분화됩니다.
컨트롤게이트의 전압에 따라 저장되는 전자의 양이 결정되고, 전자의 양으로 신호를 구분합니다.
(아래 그림처럼요.)
이렇게 한셀에 2비트를 저장하게된 제품을 MLC(Multi Level Cell)라고 합니다.
앞으로 한 셀에 3비트 4비트씩 저장하게 될줄 모르고 멀티라고 이름붙인듯 합니다.



여기서 더 나아간 것이 TLC(Triple Level Cell) 입니다.
한 셀에 3비트를 저장하는거지요.
구분해야한 신호가 8개로 늘었습니다.
그만큼 신호별 컨트롤게이트 전압은 더 촘촘해졌습니다.




- 왜 MLC, TLC로 갈수록 쓰기 속도가 느린가.
쓰기를 위한 컨트롤 게이트 전압이 한방에 구현되지 않기때문입니다.
아래 그림을 보면 이해가 쉽겠네요.


(도시바 자료.)

TLC에서 요구하는 8가지 상태를 기록하기위해서는 7개의 전압이 필요합니다.
(전자가 없는 상태는 컨트롤게이트 전압이 필요없으니까 하나가 빠지는겁니다.)
그런데 이 7가지 단계가 한번에 기록되는 것이 아닙니다.
위 자료를 보면 3단계에 걸쳐서 이루어집니다.
1단계에서 erased 상태를 벗어나고,
2단계에서 7개의 상태로 대략적으로 조정하고,
3단계에서 다른 신호와 겹치지 않게 더 정밀하게 조정합니다.

SLC에 비해 기록단계를 더 거치기때문에 쓰기에 더 긴 시간이 걸리고 쓰기 속도가 느려지는겁니다.
읽기 속도에서 SLC, MLC, TLC 모두 큰 차이가 없는건 읽기원리를 보면 답이 나옵니다.
3가지 모두 읽기 과정은 비슷하지요.


- 낸드플래시의 수명.
낸드플래시의 읽기, 쓰기, 지우기 과정을 보면 왜 낸드플래시에 수명이 존재하는지 알 수 있습니다.
플로팅게이트 내의 전자가 외부로 유출되지 않고, 외부 전자가 플로팅게이트로 유입되지 않도록 막는 것이
산화막의 역할임을 생각했을 때,
산화막의 수명이 곧 플래시메모리셀의 수명입니다.
읽기, 쓰기 과정에서 전자는 산화막을 통과하는데 앞서 말했듯이 산화막은 본래 전자가 통과할 수 없는 장벽입니다.
이를 억지로 통과했으니 통과할 때마다 산화막에 손상이 발생합니다.
그리고 읽기,쓰기 횟수가 늘어날수록 전자의 통과 횟수는 증가할 것이고 산화막의 손상도 누적됩니다.
그러다가 손상이 어느 수준을 넘어서면 더 이상 산화막이 제 역할을 못 하겠지요.
즉, 읽기/쓰기 횟수가 제한되는겁니다.
수명이 있는거지요.

읽기 과정을 보면 전자가 산화막을 통과하지 않습니다.
읽기는 플래시메모리의 수명과 무관한겁니다.
읽기 과정에서 전자가 유출될 수 있고, 셀의 열화가 진행된 상태에서 읽기만으로 데이터가 유실되면 그걸 복구학위한 재기록 과정에서 열화가 가중되고, 그 과정에서 전압의 영향을 일부지만 다른 셀도 받기때문에 읽기와 수명이 완전히 연관이 없다고 볼 수는 없지만, 읽기 과정이 수명 감소에 끼치는 영향이 쓰기/지우기에 비해 적은건 사실.


- 왜 MLC, TLC로 갈수록 수명이 급격히 줄어드는가.
상황을 가정해보겠습니다.
산화막의 손상이 발생했습니다.

SLC에서 0 을 기록하기위해 전압을 안 걸었습니다.

산화막 손상때문에 약간 전자가 들어왔지만 어차피 신호는 전자가 많다. 전자가 없다(적다) 상태만 구분하면
되기때문에 읽기 과정에서 문제없이 0으로 인식되었습니다.


MLC에서 01 을 기록하기위한 전압을 걸었습니다.

산화막 손상때문에 예상보다 많은 전자가 들어오긴했지만 10 상태의 전자량보다 적습니다.
읽기과정에서 정상적으로 01 이라고 인식되었습니다.

TLC 에서 001 이라는 내용을 기록하기위한 전압을 걸었습니다.

그런데 산화막이 손상되어서 예상보다 많은 전자가 플로팅게이트에 저장되었습니다.
늘어난 전자량때문에 읽기 과정에서 001 이 아닌 010 으로 인식되었습니다.
오류가 생기게되는거지요.
특별한 조치가 없는 한 이 셀은 수명을 다 했습니다.

SLC, MLC, TLC로 갈수록 각 신호의 구분은 더 촘촘해지고, 더 정밀하게 전자의 수가 조절되어야합니다.
산화막의 손상으로 인해 전자의 수가 컨트롤되지 않았을 때
가장 민감하게 반응하는 것이 TLC일 수 밖에 없는 이유입니다.

이 때문에 MLC, TLC로 갈수록 수명이 기하급수 이상으로 빠르게 감소하는 것입니다.


- 공정미세화가 진행될수록 수명이 줄어드는 이유.
다이 크기를 줄이기위해 공정미세화는 필수불가결한 요소입니다만,
문제는 그에 따라 수명이 감소한다는겁니다.

제조공정이 발전할수록 셀의 크기는 줄어들고 한 셀에 저장할 수 있는 전자의 수도 줄어듭니다.
더욱더 미세하게 각 신호별 전자 수를 조절해야하는 겁니다.
누설로 인한 전자 수의 변화에 더욱 민감해질 수 밖에 없고요.
TLC처럼 산화막 손상의 영향을 더 많이 받게 됩니다.


- 생명연장의 꿈.

물론 그렇다고 손놓고 있을 엔지니어들이 아닙니다.
대용량이라는 절대 무적의 메리트를 쉽게 포기할 수는 없지요.
갖가지 수명연장 대책이 나옵니다.
여기서는 그 일부만 소개하겠습니다.

(1) 웨어레벨링(Wear-Leveling)

각 셀의 산화막의 수명은 대부분 비슷합니다.
이런 상황에서 특정 셀만 집중적으로 사용하면 그 셀의 산화막만 집중적으로 손상받게되고,
그 셀만 먼저 수명을 다하겠지요.

이러면 전체 용량이 감소되는 것이기때문에 달갑지 않습니다.
이런 사태를 예방하는 것이 웨어레벨링입니다.
쉽게 말하면 각 셀을 골고루 사용해서 전체 셀의 수명을 일정하게 관리해주는겁니다.
전체적인 수명을 최대로 사용할 수 있는거지요.

(2) ECC (Error Check and Correct : 에러 수정 기능.)
컨트롤러의 에러 수정 기능을 강화합니다.
공정이 작거나, TLC인 경우같이 수명이 짧을수록 더 높은 정밀도의 ECC가 필요해집니다.
현재는 16~24bit ECC를 사용하는 것으로 알려져있습니다.




(3) 디지털신호처리(DSP)
기록전압에 따라 전자저장량이 달라지는걸 감지해서 각 신호별 기록전압을 셀 상태에 맞춰 변화시켜주는겁니다.
산화막 손상으로 이전보다 전자가 더 많이 저장되면 기록전압을 낮춰서 저장되는 전자수를 줄여서 원래 수준으로 맞추는 식으로 쓰기/지우기 전압을 변화시킵니다.



(4) 오버 프로비저닝(Over provisioning)
이 방법은 셀의 수명연장이라기보다는 제품의 수명연장이라고 할 수 있습니다.

위의 방식을 사용한다해도 결국 메모리셀의 사망은 피할 수 없습니다.
오버 프로비저닝은 여분의 메모리셀을 확보해놓고 사망하는 셀을 대체하는 기술입니다.
예비용량을 확보해뒀다가 수명이 다해서 배드블록이 발생한 셀이 나타나면 예비 셀로 대체해서 전체 용량을 일정하게 유지하는겁니다.


- 2013.04.13. 일부 내용 수정.
- 2013.04.30. 일부 내용 수정.




반응형

댓글