# (2/2) Flash Memory and SSD: Exploring Secondary Memory in Computer Architecture week 11

**Goals**

1. 플래시 메모리를 이해하고 설명할 수 있다.
    
    (Understand and explain Flash Memory)
    
2. SSD를 이해하고 설명할 수 있다.
    
    (Understand and explain SSD, Solid-State Drive)
    

**Contents**

✏️플래시 메모리와 SSD (Flash Memory and SSD)

✏️플래시 메모리(Flash Memory)

✏️SSD(Solid-State-Drive)

---

  
In the first half, we learned about traditionally significant secondary storage devices, while in the second half, we will study recently acclaimed secondary memory called Flash Memory and SSD.

1/2에서는 전통적으로 중요한 보조기억장치를 배웠다면 2/2에서는 최근에 각광받고 있는 보조저장장치에 대해서 공부할 예정이다.

# ✏️플래시 메모리와 SSD (Flash Memory and SSD)

### **📍**플래시 메모리와 SSD의 등장배경

### (The emergence background of flash memory and SSD)

주기억장치와 보조저장장치 간의 정보 전송은 컴퓨터 시스템에서 중요한 역할을 한다. 보조기억장치의 성능이 중요한 이유를 알아보자.

1. **시스템 초기화 및 부팅(System Initialization and Booting)** 컴퓨터가 시작될 때, 운영 체제(OS) 및 필수 프로그램들은 주기억장치에 로드되어야 한다. 이를 위해 디스크의 데이터가 주기억장치로 이동되어야 한다.
    
2. **응용 프로그램 실행(Execution of Application Programs)** 사용자가 특정 응용 프로그램을 실행하면, 해당 프로그램과 관련된 데이터와 명령어들이 주기억장치에 적재되어야 합니다. 이를 위해 디스크에 저장된 프로그램과 데이터를 주기억장치로 전송해야 한다.
    
3. **데이터의 영구 저장(Permanent Storage of Data)** 새로 생성되거나 수정된 데이터는 보조저장장치에 영구 저장되어야 한다. 이를 통해 데이터의 지속성을 보장하고, 나중에 필요할 때 다시 불러올 수 있다.
    
4. **메모리 공간 관리(Memory Space Management)** 주기억장치 공간이 부족한 경우, 현재 주기억장치에 적재된 블록을 보조저장장치로 내보내고 새로운 블록을 가져와서 주기억장치에 적재함으로써 메모리 관리를 하는데 이를 스왑아웃(swap-out) 및 스왑인(swap-in)이라고 한다.
    

주기억장치는 CPU가 발전함에 따라 함께 성능이 향상되기 때문에 속도 격차가 증가할수록 보조저장장치의 성능 향상이 필요로 한다. 이는 데이터 전송 속도가 주기억장치와 보조저장장치 사이의 속도 차이로 인해 병목이 발생할 수 있기 때문이다. 또한, 디스크 드라이브의 성능 한계도 고려해야 한다. 기계장치가 포함된 디스크 드라이브의 성능 한계를 넘어서기 위해서는 보조저장장치 기술 및 속도를 개선해야 한다.

### **💡** SSD의 등장 (SSD, Solid-State Drive)

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715263886315/2556371d-012c-4d7e-a3a5-5f5a689a4b16.png align="center")](https://www.minitool.com/backup-tips/flash-storage-vs-ssd.html)

**📌 개요 (Overview)**

* SSD(Solid-State Drive)은 반도체칩이다. HDD(하드 디스크 드라이브)를 대체하기 위해 개발된 대용량 비휘발성 반도체 저장장치이다.
    
* 기존의 하드 디스크 드라이브(HDD)와는 달리 움직이는 부품이 없고, 대신 플래시 메모리 칩을 사용하여 데이터를 저장한다.
    
* SSD는 HDD보다 속도가 빠르며, 응답 시간이 더 빠르다. 주로 컴퓨터 및 노트북의 주 저장 장치로 사용되고 있다. 컴퓨터 시스템의 보조저장장치 분야를 혁신적으로 변화시켰다.
    

**📌장점(Pros of SSD)**

* **비휘발성 반도체 기억장치(Non-volatile semiconductor memory)** SSD는 휘발성이 아닌 반도체 메모리를 사용하여 데이터를 저장한다. 이는 전원이 꺼져도 데이터가 보존되는 장점을 제공한다.
    
* **대용량 보조저장장치(High-capacity secondary storage)** 다수의 플래시 메모리를 배열로 구성하여 대용량 저장 공간을 제공합니다. 이는 대용량 데이터의 저장 및 접근이 가능하게 합니다.
    
* **속도 및 신뢰도 향상(Speed and reliability improvement)** SSD는 기계장치를 사용하지 않아 충격이나 진동에 민감하지 않다. 전자적으로 데이터를 읽고 쓰기 때문에 HDD보다 훨씬 빠른 속도와 높은 신뢰성을 제공한다. 이는 컴퓨터 시스템의 부팅 속도 및 응용 프로그램의 실행 속도를 향상시킨다.
    
* **낮은 응답 시간(Low response time)** SSD는 물리적으로 디스크를 회전하거나 헤드를 이동시키는 과정이 없으므로 응답 시간이 매우 낮다.
    
* **낮은 에너지 소비(Low power consumption)** HDD보다 낮은 전력 소비로 인해 배터리 수명을 연장할 수 있으며, 에너지 비용을 절약할 수 있다.
    

**📌단점(Cons of SSD)**

* **고가 및 내구성(Cost and durability)** 하지만, SSD는 상대적으로 고가이다. 대용량 SSD는 특히 더 비싸다. 데이터 갱신 횟수에 제한이 있어 내구성에 대한 고려가 필요하다
    
* **데이터 갱신 횟수 제한(Limited data rewrite cycles)** SSD는 NAND 플래시 메모리를 사용하며, 이는 일정 횟수의 데이터 갱신이 제한되어 있다. 따라서 빈번한 쓰기 작업이 SSD의 수명을 단축시킬 수 있다.
    
* **블록 지우기 작업 필요(Block erasure required)** SSD는 데이터를 쓰기 전에 해당 블록을 먼저 지우고 다시 써야 한다. 이는 쓰기 작업의 추가 시간과 성능 저하를 가져올 수 있다.
    

따라서 SSD의 출현은 보조저장장치 기술의 발전과 함께 속도 및 신뢰성을 향상시켰지만, 가격 및 내구성과 같은 측면에서도 고려해야 한다.

**📌SSD의 내부 조직 (SSD Internal Structure)**

  
SSD의 내부 조직은 여러 요소로 구성되어 있으며, 이러한 요소들이 함께 작동하여 SSD의 성능과 기능을 제공한다.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715267175754/d191ae3d-8c7c-4228-9dd3-dc3a2b49f568.png align="center")

1. **플래시 메모리 배열(Flash Memory Array)**
    
    * PCB의 앞면과 뒷면에 각각 4개의 64층 QLC 플래시 칩이 장착되어 있다.
        
        * SLC ➡️ MLC ➡️ TLC ➡️ QLC (플래시 메모리에서 사용되는 다양한 셀 유형)
            
    * 인터리빙(interleaving) 방식을 사용하여 데이터를 분산 저장하고 병렬 입출력 채널을 구성한다. 이를 통해 동시 액세스와 병렬 데이터 전송이 가능하다.
        
2. **SSD 제어기(Controller)**
    
    * 핵심적인 기능인 데이터 저장과 인출, 칩 관리, 주소 변환 등을 수행한다.
        
    * 미들웨어인 <mark> FTL(Firmware Translation Layer)</mark> 프로그램을 수행하는 프로세서로 구현된다.
        
    * FTL은 물리적인 NAND 플래시 메모리의 특성을 관리하여 논리적인 블록으로의 매핑 및 가용성 관리를 수행한다.
        
3. **DRAM**
    
    * 컴퓨터와 플래시 메모리 사이의 데이터 버퍼로 사용된다. 이는 SSD 제어기와 NAND 플래시 메모리 간의 데이터 전송을 돕는다.
        
4. **외부 인터페이스(External Interfaces)**
    
    * SATA(Serial ATA), PCIe(Peripheral Component Interconnect Express) 등의 인터페이스를 사용하여 컴퓨터와의 직렬 전송을 가능하게 한다. 이를 통해 SSD는 컴퓨터 시스템에 연결되어 데이터를 주고받을 수 있다.
        

이러한 구성 요소들이 함께 작동하여 SSD는 빠른 성능과 안정성을 제공하며, 대용량 데이터를 신속하게 처리할 수 있다.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715267329945/1ac01567-0c61-4e10-9148-c210ae03d127.png align="center")

---

**📌** <mark>FTL(Flash Translation Layer)</mark>

SSD에서 기존의 파일 시스템과 운영 체제가 SSD를 HDD와 유사하게 사용할 수 있도록 지원하는 중요한 미들웨어(middleware)이다. 주로 SSD 제어기안에 위치해 있는데 이 말은 SSD에 의해 수행된다는 뜻이다. FTL은 다음과 같은 기능을 수행한다.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715267767922/473a1b1c-35df-4680-8dc5-7b381488be82.png align="center")

* 위의 예제처럼 모든 작업이 FTL을 거쳐간다.
    

1. **페이지 주소와 섹터 주소 간의 매핑(Mapping)**:
    
    * FTL은 물리적인 NAND 플래시 메모리의 페이지 주소와 논리적인 블록 주소 간의 매핑을 관리한다. 이것은 물리적인 NAND 플래시 메모리의 특성으로 인해 발생하는 제약을 운영 체제 및 파일 시스템에 숨김으로써 사용자가 편리하게 SSD를 사용할 수 있도록 한다.
        
2. **마모 평준화(Wear Leveling)**:
    
    * FTL은 NAND 플래시 메모리의 각 섹터가 고르게 마모되도록 보장한다. FTL이 없다면 지역성의 원리로 칩은 사용하는 칩만 사용하게 될 수도 있다. 이는 NAND 플래시 메모리의 쓰기 작업이 고르게 분산되어 모든 섹터가 동일한 횟수로 쓰여지도록 한다. 이는 SSD의 수명을 연장하고 데이터의 안정성을 보장하는 데 중요하다.
        
3. **쓰레기 수집(Garbage Collection)**:
    
    * FTL은 삭제된 데이터의 빈 공간을 식별하고, 이러한 공간을 재사용할 수 있도록 한번에 정리한다. 이것은 NAND 플래시 메모리의 특성 상 삭제된 데이터의 공간을 해제하고 새로운 데이터를 기록할 때 필요하다.
        
4. **초과 대비 공간(Over-Provisioning)**:
    
    * FTL은 일부 NAND 플래시 메모리 공간을 예약하여 사용하지 않는 영역으로 설정한다. 이를 통해 성능 향상과 데이터의 안정성을 강화할 수 있다. 이 공간은 쓰레기 수집 및 마모 평준화와 같은 작업을 수행하는 데 사용된다.
        

이러한 FTL의 기능은 SSD의 성능을 최적화하고 사용자가 SSD를 효과적으로 활용할 수 있도록 지원하기 때문에 중요한 개념이다.

---

### **💡플래쉬 메모리 (**Flash Memory)

![Free-Brand-USB-Flash-Drive-Mockup-PSD-600 | Usb flash drive, Flash drive, Graphic  design collection](https://i.pinimg.com/736x/1a/3f/4e/1a3f4e9452ac0ffb95ef1671227805b3.jpg align="left")

**📌 개요 (Overview)**

플래시 메모리는 컴퓨터와 전자 기기에서 데이터를 저장하는 비휘발성 메모리로, 전기적 신호를 사용하여 정보를 기억한다. 주로 디지털 카메라, USB 플래시 드라이브, SSD 등의 기기에 사용된다. 플래시 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory)의 발전된 형태로, 높은 저장 밀도와 빠른 접근 속도를 제공하면서도 비교적 저렴한 가격으로 제작된다. 플래시 메모리는 데이터를 읽고 쓰는 데 있어서 빠른 속도를 제공하며, 전원이 꺼져도 데이터를 보존할 수 있는 특성을 갖고 있다.

**📌 장점 (Pros of Flash memory)**

* **높은 저장 밀도(High storage density)** 플래시 메모리는 한 개의 트랜지스터만 사용하여 한 비트를 저장할 수 있다. 이는 EEPROM(전기적으로 소거 가능한 프로그래밍 읽기 전용 메모리)에서 발전된 형태이다. EEPROM에서 사용되는 두 개의 트랜지스터와 비교하여 저장 밀도를 향상시켰다.
    
* **낮은 전력 소모량, 높은 신뢰성, 속도 향상(Low power consumption, high reliability, speed improvement)** 플래시 메모리는 전력 소모가 적고, 데이터의 안정성과 신뢰성이 높으며, 읽기 및 쓰기 속도가 향상되었다.
    

**📌플래시 메모리의 동작원리 (How Flash Memory works)**

* **메모리 셀(기억 소자) 구현(Memory cell implementation)** 플래시 메모리의 기본 단위인 메모리 셀은 NMOS 트랜지스터를 사용하여 구현된다.
    
* **구조적 특징(Structural features)** 플래시 메모리의 특징 중 하나는 두 개의 게이트를 가지고 있다는 것이다.
    
    * **제어 게이트(Control gate)**: 이는 일반적인 트랜지스터의 게이트와 유사하게 작동하며, 읽기와 쓰기 작업을 제어한다.
        
    * **<mark>부동 게이트(Floating gate)</mark>**: 이는 정보를 저장하는 데 핵심적인 역할을 한다. 부동 게이트는 전자가 저장되는 곳으로, 이전에 저장된 데이터를 유지하고 새로운 데이터를 쓰는 데 사용된다.
        

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715265195381/710338c2-5905-4449-bfea-bd15b7a1c66c.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715265206793/e88c378f-5436-422a-bb98-d41319f6b718.png align="center")

**📌플래시 메모리의 쓰기 동작 (Writing in Flash Memory)**

플래시 메모리의 프로그래밍(쓰기) 및 삭제(erase) 동작은 다음과 같이 이루어진다.

1. 제어 게이트에 고전압(예: +12V)을 인가한다.
    
2. 이로 인해 강력한 전기장이 발생하며, N-채널의 전자들이 부동 게이트로 이동한다. (부동 게이트에 변화가 생긴다는 뜻) 이는 터널링 효과로 인한 터널 주입 현상으로 일어난다.
    
3. 이 과정에서 '0'이 쓰여지게 된다. 아래처 0 일때와 1일때의 구분이 가능해진다.
    
    * '0' 저장: 제어 게이트에 +12V를 인가한다.
        
    * '1' 저장: 제어 게이트에 0V를 인가하여 전자들이 이동하지 않고 부동 게이트의 empty 상태를 유지한다.
        

**📌플래시 메모리의 삭제 동작 (Erase in Flash Memory)**

* **삭제(erase) 동작:**
    
    1. p층(p-well)에 고전압(Vp)을 인가한다.
        
    2. 이로 인해 부동 게이트에 갇힌 전자들이 N-채널로 빠져나오게 되는데 이 과정을 터널 릴리스 현상이라고 한다. (터널링 효과와 반대)
        
    3. 이로 인해 셀에 저장된 값은 원래 값('1')으로 변경된다.
        

이러한 동작을 통해 플래시 메모리는 데이터를 쓰고 삭제하여 저장할 수 있습니다.

**📌플래시 메모리의 읽기 동작 (Reading in Flash Memory)**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715265735173/18e329ad-f0f3-4c10-b814-e83a1ff2a342.png align="center")

읽기 동작은 플래시 메모리에서 저장된 데이터를 읽어오는 과정을 나타낸다. 아래는 읽기 동작의 과정이다.

1. **드레인 전압(Vd: 5V) 인가(When drain voltage (Vd: 5V) is applied)**
    
    * 드레인(Drain) 전압이 인가되면 N-채널을 통해 전자 흐름이 발생한다.
        
2. **게이트 전압(Vg: 5V) 인가(When gate voltage (Vg: 5V) is applied)**
    
    * 게이트(Gate) 전압이 인가되면 전기장이 발생한다.
        
3. **저장된 데이터 = '1' (부동 게이트가 빈 상태)인 경우(Stored data = '1' (floating gate is empty)**
    
    * 저장된 데이터가 '1'인 경우, 부동 게이트가 비어있는 상태이다.
        
    * 이때, N-채널이 확장되어 많은 전류가 흐르게 된다.
        
    * 전류의 흐름으로 인해 트랜지스터가 'ON' 상태가 되며, 이는 '1'을 읽었음을 나타낸다.
        
4. **저장된 데이터 = '0' (부동 게이트가 채워진 상태)인 경우 (When the stored data is '0', the floating gate is filled.)**
    
    * 저장된 데이터가 '0'인 경우, 부동 게이트가 채워진 상태이다.
        
    * 부동 게이트 내의 전자들이 전기장을 차단하므로 N-채널은 유지된다.
        
    * 이 때, 매우 적은 전류가 흐르게 되어 트랜지스터는 'OFF' 상태가 되며, 이는 '0'을 읽었음을 나타낸다.
        

**📌 플래시 메모리의 셀 배열 조직(Organization of flash memory cells**) **- NOR Flash & NAND Flash**

![Nand Vs Nor Flash Memory: Analysing Best Features », 41% OFF](https://quicklearncomputer.com/wp-content/uploads/2023/05/Types-of-Flash-Memory.webp align="left")

플래시 메모리의 셀 배열 조직은 주로 NOR형과 NAND형으로 구분된다. 각각의 형태에 따라 메모리 셀의 구성과 액세스 방법이 다르다.

**NOR형 플래시 메모리(NOR Flash Memory)  
**

* **메모리 셀 배열(Cell Array)** NMOS 트랜지스터들의 <mark>병렬 접속</mark>으로 구성된다.
    
* **동작 방식(Operation)** 전원(Vcc)이 비트 라인(BL)을 통해 모든 트랜지스터들의 드레인으로 직접 공급되며, 트랜지스터들의 소스는 접지(GND)로 접속된다.
    
* **특징(Features)** 각 트랜지스터의 독립적인 스위칭 동작이 가능하여(각 선이 병렬로 연결되어 있기 때문) 즉 셀 단위 액세스가 가능합니다. 이는 메모리의 임의의 위치에 있는 데이터를 읽거나 쓸 수 있도록 합니다.
    

**NAND형 플래시 메모리(NAND Flash Memory)**

* **메모리 셀 배열(Cell Array)** NMOS 트랜지스터들의 <mark>직렬 접속</mark>으로 구성된다.
    
* **동작 방식(Operation**) 전원(Vcc)이 첫 번째 트랜지스터의 드레인에만 접속된다. (다른곳은 X) 소스가 다음 트랜지스터의 드레인으로, 마지막 트랜지스터의 소스만 접지로 접속된다. (직렬이기 때문)
    
* **특징(Features)** 트랜지스터의 독립적인 스위칭 동작이 불가능하여 셀 단위 액세스가 불가능하다. 따라서 메모리를 읽거나 쓸 때는 블록 단위로 작업해야 한다.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715266337024/1876917c-d8fe-4683-9ca4-4bffcb955b89.png align="center")

* 위의 비교사진을 보듯이 NOR형이 더 연결된 것을 볼 수 있다.
    

**📌Comparison NOR Flash and NAND Flash**

NOR형과 NAND형 플래시 메모리는 각각의 특성에 따라 다른 용도와 장점을 가지고 있다.

![NAND Flash vs NOR Flash](https://electronoobs.com/images/Blogs/Uploads/64d4d109928878.71919715.png align="left")

**NOR형 플래시 메모리(NOR Flash Memory)**

* **셀 단위 읽기/쓰기 가능(Cell-level read/write capability)** NOR형 플래시 메모리는 셀 단위로 읽기와 쓰기가 가능하다. 이는 프로그램 코드 저장이나 작은 데이터의 수시 인출 및 변경과 응용분야에 적합하다.
    
* **접속 선의 수(Number of connection lines)** NOR형 플래시 메모리의 각 셀은 3개의 접속 선을 가진다. 이는 칩 당 저장용량이 감소하는 결과를 가져오는데 이 말은 즉슨 사업성에서는 안좋을 수 있다.
    
* **주요 용도 (Main applications)** PC-BIOS 저장장치, PDA/스마트폰 OS 저장장치 등과 같은 작은 용량의 저장장치에 주로 사용된다.
    

**NAND형 플래시 메모리(NAND Flash Memory)**

* **셀 단위 읽기/쓰기 불가능(Cell-level read/write not possible)** NAND형 플래시 메모리는 셀 단위로 읽기와 쓰기가 불가능하며, 페이지 단위로만 가능하다.
    
* **접속 선의 수(Number of connection lines)** NAND형 플래시 메모리의 각 셀은 1개의 접속 선을 가진다. 이는 높은 저장 밀도를 가능하게 하며, 대용량 저장장치에 적합하다. 접속선이 줄어든다는 것은 제작 비용도 줄어든다는 뜻이다.
    
* **주요 용도(Main applications)** 백업 저장장치(USB 플래시 메모리), SSD 등과 같이 대용량 저장장치에 주로 사용된다.
    

이러한 차이로 인해 각각의 플래시 메모리 유형은 서로 다른 용도와 응용 분야에 적합하게 사용된다.

---

**Quiz**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715268032659/02332d57-4e7c-493f-8cb2-60112e2e24d1.png align="center")

**학습정리(Summary)**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1715268039936/39317176-a921-4164-95b6-e2320517a081.png align="center")
