Computing

[SSD] NAND Flash Memory Chip Architecture (String, Page, Block, Die, Page 단위 읽고 쓰기의 의미) 본문

Semiconductor/SSD

[SSD] NAND Flash Memory Chip Architecture (String, Page, Block, Die, Page 단위 읽고 쓰기의 의미)

jhson989 2023. 2. 13. 22:57

NAND Flash Memory Cell

NAND Flash Memory의 Cell은 "1" 혹은 "0"이라는 정보 하나(bit)를 저장하는 SSD의 가장 최소 단위이다. 이러한 Cell들이 수많이 모여 몇백GB짜리 SSD를 형성한다. Cell 하나에 대한 자세한 내용은 이전 글 1(Flash memory), 2(NAND vs. NOR)에서 정리하였다. 오늘은 이 Cell들이 어떻게 구조화되어 SSD를 형성하는 지에 대해서 정리하고자 한다.  

 

Fig 1. Flash memory cell 구조 [1]

 

 

 

NAND Flash Memory Architecture Overview

Fig 2. SSD Architecture [SK hynix]

 

Fig 2.는 SSD 디바이스의 내부 모습을 보여주는 그림이다.  Fig 2.에서 확인할 수 있듯이 SSD는 Controller, DRAM chip, NAND chip 등의 다양한 반도체 칩들을 포함한다. 이때 SSD에 설치된 수 개의 NAND chip들이 실제 데이터가 저장되는 장소이다. 각각의 Chip은 하나 이상의 Die로 구성되고, 각각의 Die는 여러개의 Planes로 구성된다. 계속해서 하나의 Plane은 Block 단위로 나눠지며, Block은 Page 단위로 나눠진다. 마지막으로 이 Page들은 여러 개의 Cell들로 구성된다.

 

 

 

NAND Flash Memory String & Page & Block

Fig 3. A String of Cells [2]

 

이전 포스터에서 정리하였듯 NAND Flash memory는 Fig 3.와 같이 여러 개의 Cell들을 직렬로 연결하여 Cell들이 Source line과 Bit line을 공유하도록 설계되었다. 이러한 Cell들의 직렬 연결을 String이라 하며 일반적으로 32개 혹은 64개의 Cell들이 하나의 String을 이룬다.

 

Fig 4. A Block of Strings [2]

 

String들 여러개가 모여 Fig 4.와 같은 Block(혹은 Array라고도 함)을 형성한다. Fig 4.의 노란 박스가 하나의 String을 의미한다. 그림을 보면 알 수 있는데, 한 Block 내에 있는 String들은 하나의 Source line을 공유하며, String 내 같은 순번의 Cell들끼리는 Word line()을 공유한다. Bit line은 String마다 따로 존재한다.

 

Block의 Row를 따라 같은 Word line을 공유하는 Cell들의 집합을 Page라고 한다. Fig 4.에서 파란 박스로 표시되었다. 이전 포스터에서 SSD에 데이터를 쓰거나 데이터를 읽을 때는 Page 단위로 한다고 정리하였다. 그림에서 보듯 Page 내의 모든 Cell들은 Word line을 공유하기에 Page 단위로 읽기, 쓰기 operation이 작동한다는 것을 알 수 있다. 

 

읽기를 예를 들면, 첫번째 Word line에만 다른 신호를 주면 첫번째 Page에 위치한 모든 Cell의 데이터를 한번에 읽을 수 있다. 구체적인 방식은 다음과 같다. 만약 7번째 Page를 읽고 싶다면, 7번째 Word line에는 약한 전압을 인가하고, 나머지 Word line에는 강한 전압을 인가한다. 나머지 Word line에 강한 전압을 인가하므로서, 나머지 Page들은 항상 switch on된다. 이제 7번째 Page에 집중하면, 만약 7번째 Page의 cell들중 Floating gate에 전자가 차 있지 않으면 약한 전압에 의해서도 switch on될 것이고, 차 있다면 switch off될 것이다. 이를 통해 해당 Page의 cell들의 Floating gate에 전압이 있는 지 아닌지를 알 수 있다[4].

 

쓰기 과정은 조금 더 복잡한데, [5]을 참고하면 좋을 것이다. Page 내 모든 cell은 word line을 공유하고 있다. 앞서 배우기에는 이 word line에 강한 전압을 인가하면 Floating gate에 전자가 쌓여 (tunneling 효과) 0의 값이 써진다. 이때 궁금한 것 Page의 cell들은 word line을 공유하기에 모든 cell에 동일한 값이 써지는 것이 아닌가 하는 것이다. [5]을 참고하면 다양한 방법이 있는 String selection line을 통해 "0"이 안 쓰여질 cell들을 선택할 수 있다. (Cell의 Drain 쪽 전압을 높혀서 tunneling 효과가 발생하는 것을 막는다.) (그런데, 여전히 String selection line도 공유하는 것이 아닌가? 좀 더 공부가 필요해 보인다.)

 

 

 

NAND Flash Memory Plane & Die

Fig 5. NAND Flash Memort Die [2]

 

이러한 Block들은 여러 개가 모여 Fig 5.와 같이 Plane을 형성한다. 또한 여러 개의 Plane들이 모여 하나의 Die를 구성한다. 앞서 말했듯 하나 이상의 Die가 모여 NAND Flash Chip을 구성한다.

 

이로써 SSD의 NAND Flash Chip들이 어떻게 구조화되는 지에 대하여 정리하였다.

 

 

 

Reference

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

[2] https://www.cactus-tech.com/resources/blog/details/solid-state-drives-101/

[3] https://www.red-gate.com/simple-talk/databases/sql-server/database-administration-sql-server/storage-101-understanding-the-nand-flash-solid-state-drive/

[4] https://itzbhushan.gitlab.io/files/Thesis.pdf

[5] https://electronics.stackexchange.com/questions/114726/how-do-nand-flash-memory-writes-work