**플래시 메모리**는 전기적으로 데이터를 지우고 다시 기록할 수 있는(electrically erased and reprogrammed) 비휘발성 컴퓨터 기억 장치를 말한다. EEPROM과 다르게 여러 구역으로 구성된 블록 안에서 지우고 쓸 수 있다. 이제는 플래시 메모리의 가격이 EEPROM 보다 훨씬 싸기 때문에, 비휘발성 고체 상태(solid-state) 저장 매체가 상당량 필요한 곳에서는 가장 많이 사용되는 메모리 종류가 되었다.

대표적인 활용 예로 디지털 음악 재생기 (MP3), 디지털 카메라, 휴대 전화를 들 수 있다. 일반적인 데이터를 저장하고 컴퓨터 사이에 데이터를 옮기는 용도로 USB 드라이브를 많이 사용하는데, 이때도 플래시 메모리가 쓰인다. 또한 게임 자료를 저장하기 위해 EEPROM 대신 플래시 메모리가 자주 사용되고 있어 게임 시장에서도 인기를 얻고 있다.

## 개요
일본기업 도시바가 개발한 플래시 메모리는 메모리 칩 안에 정보를 유지시키는 데에 전력이 필요 없는 비휘발성 메모리이다. 게다가 플래시 메모리는 읽기 속도가 빠르며 하드 디스크 보다 충격에 강하다. 이러한 특징으로 배터리로 동작하는 장치에서 저장 장치로 많이 사용한다. 플래시 메모리의 또 다른 장점은 강한 압력이나 끓는 물에도 견딜 만큼, 물리적인 힘으로 거의 파괴되지 않는다는 점이다.

## 동작 원리
플래시 메모리는 전통적으로 비트 정보를 저장하는 셀이라 부르는 플로팅 게이트 트랜지스터(floating gate transistors)로 구성된 배열 안에 정보를 저장한다. 요즘 등장하는 플래시 메모리의 경우는 하나의 셀에 존재하는 플로팅 게이트에 두 단계 보다 높은 전하를 저장하여 셀 하나에 1 비트 이상을 저장할 수 있기에 MLC(Multi Level Cell) 장치라고 일컫는다.

NOR 플래시가 게이트를 하나 대신 두 개를 갖고 있는 것을 제외하면, 각 셀이 표준 MOSFET과 비슷하다. 하나의 게이트는 또 다른 MOS 트랜지스터처럼 콘트롤 게이트(CG)이지만, 두 번째 게이트는 산화물 층(oxid layer)에 의해 모든 주위가 절연된 플로팅 게이트(FG)이다. FG는 CG와 기판 사이에 위치한다. FG가 산화물층에 의해 절연되었기 때문에 그 곳에 위치한 전자는 갇히게 되고 따라서 정보가 저장된다. 전자가 FG에 있을 때, CG에서 나오는 전기장에 영향을 주어 셀의 문턱 전압(V이 다르기 때문에 전류가 흐르거나 흐르지 않는다. 이러한 전류의 흐름과 차단이 판독되고 이는 1과 0으로 해석이 되어, 데이터가 저장되어 만들어진다. 한 셀에 1 비트 이상의 정보가 저장되는 MLC(Multi-level cell) 장치에서는 FG에 저장된 전자의 수를 측정하기 위해 단순히 전류의 흐름을 판단하기보다 그 양을 판독한다.

시장에 플래시 메모리가 출시되었을 때, 모든 셀의 상태는 1로 되어 있다. 이런 셀의 정보를 0으로 변경하는 것을 프로그래밍이라고 한다. NOR 플래시 메모리를 프로그래밍하기 위해 EPROM처럼 hot-electron injection 방식을 사용한다. 먼저, NOR 플래시 셀의 소스에서 드레인으로 전류가 흐를 때, CG에 큰 전압을 가하면 FG에 전자를 끌어들일 정도의 강한 전기장이 생성되어 결국 전류가 흐르지 않게 된다. 결국, 셀의 상태는 0이 된다. NOR 플래시 셀을 지우기 위해 (다시 프로그래밍하기 위한 준비로 모든 셀을 1로 다시 설정하는 것) CG와 소스 사이에 강한 전압차를 주면 Fowler-Nordheim tunneling을 통해 FG는 전자를 잃는다. 최근에 개발된 대부분의 NOR 플래시 메모리는 한 번에 지워진다. 그러나 프로그래밍은 바이트 또는 워드 단위로 수행된다.

NAND 플래시는 쓰기 작업을 위해서 터널 주입을 사용하고, 지우기 위해 터널 릴리즈를 사용한다. NAND 플래시 메모리는 USB 메모리 드라이브로 알려진 USB 인터페이스 저장 장치에서 쓰이고 있다.

### V-NAND
V-NAND(Vertical NAND) 메모리는 메모리 셀들을 수직으로 쌓아올리며 차지 트랩 플래시 아키텍처를 사용한다. 이 수직 층들은 개개의 작은 셀들의 필요 없이 더 큰 면적의 비트 밀도를 가능케 한다.

## 역사
플래시 메모리는 1984년 당시 도시바에서 근무하고 있던 마스오카 후지오 박사가 발명했다. 도시바에 따르면, '플래시'라는 이름은 마스오카 박사의 동료인 아리스미 쇼자가 제안했다고 한다. 왜냐하면, 메모리 내용이 지워지는 과정이 마치 카메라의 플래시를 떠올렸기 때문이다. 마스오카 박사는 이 발명을 캘리포니아 새너제이에서 열렸던 IEEE 1984 International Electron Devices Meeting (IEDM)에서 발표하였다. 당시 인텔은 이 발명의 엄청난 잠재력을 보고 1988년 최초의 상업용 NOR 타입 플래시 메모리를 소개하였다.

NOR 기반 플래시는 지우기와 쓰기 시간이 긴 대신 어떤 위치에도 임의로 접근할 수 있게 주소/자료 인터페이스를 제공한다. 이 메모리는 컴퓨터 바이오스나 셋톱 박스의 펌웨어와 같이 자주 업데이트되지 않는 프로그램 코드를 저장하는 데에 알맞다. 플래시 메모리 특성상 10,000에서 1,000,000까지 지울 수 있다. NOR 기반 플래시는 초기 이동형 매체의 뿌리가 되어, 콤팩트 플래시에서 처음 사용되었으나 나중에 좀 더 싼 NAND 플래시가 쓰이기 시작했다.

NAND 플래시는 1989년에 도시바가 ISSCC에서 발표했다. NAND 플래시는 NOR 플래시에 비해 지우기와 쓰기 시간이 좀 더 빠르고 집적도가 높으며 비트당 제작비도 낮고 10배의 내구성을 자랑한다. 그러나 입출력 인터페이스는 자료에 대한 순차 접근만을 지원한다. 이것은 컴퓨터 메모리로는 조금 덜 유용하지만 개인용 컴퓨터 카드와 다양한 메모리 카드와 같은 대용량 저장 장치에 알맞다. 첫 NAND 기반 이동형 미디어 포맷은 스마트 미디어였지만, MMC, 시큐어 디지털(Secure Digital), 메모리 스틱과 XD-Picture 카드에서도 사용되고 있다. 그 밖에 RS-MMC (Reduced Size MultiMedia Card), TransFlash, miniSD 등이 다음 세대 저장 매체로 등장하고 있다. 이러한 새로운 포맷은 보통 크기가 4 제곱 센티미터 이하로 상당히 작다.

## 한계
플래시 메모리의 한계는 블록 내에서 특정 단위로 읽고 쓸 수 있지만, 블록 단위로 지워야 한다는 것이다. 또한 덮어 쓸 수 없으므로, 모든 블록을 지우기 전까지는 해당 자료를 변경할 수 없다.

NOR 플래시의 경우, 임의 접근 방식으로 바이트 또는 워드 단위로 읽기/쓰기 동작이 가능하지만 덮어 쓰기와 지우기 동작은 임의로 접근할 수 없다. NAND 플래시는 페이지 단위로 읽기/쓰기 동작이 가능하지만 해당 페이지를 덮어 쓰거나 지우려면 모든 블록을 지워야 한다.(NAND 플래시는 블록을 여러 페이지로 나누어 사용한다).

하드 디스크와 비교할 때, 더 큰 한계는 지우기 횟수가 제한되어 있다는 점이다. . 그래서 운영체제와 같이 하드 디스크를 기반으로 하는 응용 프로그램이 컴팩트 플래시와 같은 플래시 메모리 기반 장치를 사용할 때는 각별한 보호가 있어야 한다. 그래서 이러한 한계를 극복하기 위해 칩 펌웨어 또는 파일 시스템 드라이버에서 블록의 지우기 횟수를 세고 모든 블록이 고루 쓰이도록 블록을 유동적으로 다시 배치한다. 또한 쓰기 동작이 유효한지 확인하고, 전체 공간의 일부를 여유 블록으로 할당하여 불량 블록이 발생하면 여유 블록으로 대체하도록 한다.

플래시 메모리의 바이트 당 비용은 하드 디스크 드라이브에 견주어 상당히 높고 지우기 횟수가 제한된 상태여서 일반적으로 데스크톱 개인용 컴퓨터와 노트북에서 하드 디스크 대신 쓰지 못하고 있었다. 하드 디스크 대신 플래시 메모리로 제작된 솔리드 스테이트 드라이브 (SSD)가 특수 용도에 한해 사용되고 있었으나, 제조기술의 발달로 인한 가격 하락과 컨트롤러 개선, 적층 NAND 기술의 도입 및 용량 증가로 이러한 한계가 극복되면서 현재는 개인용 컴퓨터에서도 널리 사용되고 있다.