Computing

Flash Memory (플래시 메모리) 본문

Semiconductor/SSD

Flash Memory (플래시 메모리)

jhson989 2022. 7. 25. 22:27

Flash memory는 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성(Non-volatile) 컴퓨터 기억 장치[1]이다. 즉 전원 공급이 중단되더라도 메모리 칩 안에 정보를 유지할 수 있다. 물리적으로 헤더와 암을 움직여 저장된 데이터에 접근하는 하드디스크에 비해 전기 신호에 따라 제어되기에 데이터 접근(검색)이 빠르다. 다만 RAM(DRAM, SRAM)에 비해서는 읽기, 쓰기 속도가 매우 느리다.

 

오늘 포스터에서는 비휘발성 특징을 가져 데이터 저장장치에 사용되는 Flash memory에 대하여 간략히 정리해보고자 한다.

 

 

 

Flash Memory 원리 및 구조

Flash memory 또한 RAM과 비슷하게 cell들의 배열로 이루어지며, 각 cell에 1 또는 0 bit 정보가 저장된다. Fig 1.은 기본적인 flash memory cell 구조를 나타낸 것으로 floating gate 방식이다. 2000년대부터는 floating gate 방식이 아닌 charge trap 방식으로 flash memory를 생산한다[3]고 한다.

 

Fig 1. Flash memory cell 구조

 

Fig 1.은 floating gate 방식의 flash memory cell 구조로, 일반적인 MOSFET에 float gate가 추가된 형태이다. MOSFET은 switch 역할을 하는 소자로, control gate에 일정 이상의 전압(threshold voltage, Vth라고 함)을 가하면 n-type 반도체 사이에 channel이 형성되어 source에서 drain으로 전자가 흐를 수 있다. 반대로 Vth보다 낮은 전압을 control gate에 가하면 전류가 흐르지 않는다. 

 

이러한 Switch 기능을 하는 MOSFET의 산화물 내에 float gate를 추가한 것이 floating gate 방식의 flash memory cell이다. float gate는 도체로 전자를 저장할 수 있다. 그러나 float gate는 절연체인 산화물에 감싸져 있기에 전자가 float gate에서 빠져 나오거나 들어가지 못한다. 

 

FIg 2. Cell program과 erase [4]

 

하지만 control gate에 큰 (+)전압을 가하면 터널 효과에 의해 P 기판에 있는 전자가 절연체(tunnel oxide)를 통과해 float gate에 들어갈 수 있다. 한번 들어간 전자는 float gate에 계속 위치해 있다. 이러한 과정을 tunnel injection 혹은 programming한다고 한다. 반대로 기판에 큰 (+)전압을 가하면 float gate에 있는 전자가 절연체를 통과해 P기판으로 이동한다. 이러한 과정을 erase한다고 한다. 이처럼 flash memory cell 속 float gate는 전자를 영구적으로 저장할 수 있다. Fig 2.는 이러한 flash memory cell program과 erase 과정을 정리한 그림이다.

 

앞서 말했듯 MOSFET은 control gate에 Vth 보다 큰 전압을 줄 경우 전류가 흐를 수 있다. 그런데 만약 float gate에 전자가 채워지게 된다면 이 Vth가 커지게 된다. 반대로 float gate에 추가 전자가 채워져 있지 않게 된다면 Vth는 변함없이 그대로 유지된다. Float gate에 전자가 채워지게 된다면 P 기판에 전자에 의한 channel 형성을 방해하게 된다. 따라서 control gate에 더 큰 전압을 주어야만이 channel이 형성된다. 

 

예를 들어 float gate에 추가적인 전자가 채워져 있지 않을 때의 Vth를 10V, 전자가 채워져 있을 때의 Vth를 20V이라고 하자. control gate에 일정하게 15V를 가할 때 전류가 흐르면(15V > Vth = 10V) 전자가 채워져 있지 않음을 알 수 있고, 전류가 흐르지 않으면(15V < Vth = 20V)전자가 채워져 있음을 알 수 있게 된다.

 

이러한 원리를 이용해 cell에 1bit 정보를 저장할 수 있다. Flash memory cell은 전류가 흐를 때(=float gate에 추가적인 전자가 없을때)를 1로, 전류가 흐르지 않을 때(=float gate에 추가 전가가 가득차 있을 때)를 0으로 해석한다.

 

Fig 3. Flash memory layout [4]

 

앞서 flash memory chip은 cell들의 배열로 구성된다고 하였다. Fig 3.은 flash memory layout을 나타낸 것이다. Flash memory chip은 여러 개의 blocks로 구성되며, block은 여러 개의 pages로 구성(32~128개)된다. 하나의 page는 cell의 배열을 의미하며 일반적으로 512~2048개의 cell들로 구성된다. 

 

 

 

Flash Memory 기본 동작 (Read, Write=Program, Erase)

Flash memory를 조작하는 가장 기본이 되는 3가지 operation이 read, write(program), erase이다. Read는 말 그대로 cell의 데이터를 읽는 것을 의미한다. 일반적인 저장 장치에는 read & write 동작만 있는 것에 비해, flash memory는 write가 write와 erase로 나뉜다. Flash memory에서 write는 cell 정보를 1에서 0으로 바꾸는 operation을 의미하며, erase는 0에서 1로 바꾸는 operation을 의미한다.

 

Flash memory는 기본적으로(float gate에 아무런 작동도 하지 않을 시) 1의 정보를 저장하고 있다. 이러한 cell에 program(=write)를 할 시, float gate에 전자가 쌓이게 되고 cell은 0 정보를 저장하게 된다. 반대로 float gate 내 추가 전자를 없앨 경우(=erase), 다시 1 정보를 저장하게 된다. 

 

Flash memory에서 Read와 Write는 page단위로 작동하는 operation이다. 그에 비해 erase는 block 단위로 작동한다. 따라서 erase는 매우 비싼 operation이다. Fig 4.는 각 operation별 수행시간을 보여주는 그림이다. Program과 read가 microsecond 단위인데 비해, block erase는 millisecond단위임을 알 수 있다.

 

Fig 4. Operation별 수행 시간 [5]

 

 

 

Reference

[1] https://ko.wikipedia.org/wiki/%ED%94%8C%EB%9E%98%EC%8B%9C_%EB%A9%94%EB%AA%A8%EB%A6%AC

[2] https://www.iue.tuwien.ac.at/phd/windbacher/node14.html

[3] https://www.samsungsemiconstory.com/kr/플래시메모리-어디까지-알고-있니-플래시메모리-no-1

[4] Jihong Kim, Overview of Flash and SSDs, Dept. of CSE, SNU [PDF]

[5] https://www.edn.com/flash-memory-101-an-introduction-to-nand-flash/