Skip to main content

Command Palette

Search for a command to run...

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

보조기억장치 플래시 메모리와 SSD, 컴퓨터구조 11강

Updated
9 min read
(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)

📌 개요 (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의 성능과 기능을 제공한다.

  1. 플래시 메모리 배열(Flash Memory Array)

    • PCB의 앞면과 뒷면에 각각 4개의 64층 QLC 플래시 칩이 장착되어 있다.

      • SLC ➡️ MLC ➡️ TLC ➡️ QLC (플래시 메모리에서 사용되는 다양한 셀 유형)
    • 인터리빙(interleaving) 방식을 사용하여 데이터를 분산 저장하고 병렬 입출력 채널을 구성한다. 이를 통해 동시 액세스와 병렬 데이터 전송이 가능하다.

  2. SSD 제어기(Controller)

    • 핵심적인 기능인 데이터 저장과 인출, 칩 관리, 주소 변환 등을 수행한다.

    • 미들웨어인 FTL(Firmware Translation Layer) 프로그램을 수행하는 프로세서로 구현된다.

    • FTL은 물리적인 NAND 플래시 메모리의 특성을 관리하여 논리적인 블록으로의 매핑 및 가용성 관리를 수행한다.

  3. DRAM

    • 컴퓨터와 플래시 메모리 사이의 데이터 버퍼로 사용된다. 이는 SSD 제어기와 NAND 플래시 메모리 간의 데이터 전송을 돕는다.
  4. 외부 인터페이스(External Interfaces)

    • SATA(Serial ATA), PCIe(Peripheral Component Interconnect Express) 등의 인터페이스를 사용하여 컴퓨터와의 직렬 전송을 가능하게 한다. 이를 통해 SSD는 컴퓨터 시스템에 연결되어 데이터를 주고받을 수 있다.

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


📌 FTL(Flash Translation Layer)

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

  • 위의 예제처럼 모든 작업이 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

📌 개요 (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): 이는 일반적인 트랜지스터의 게이트와 유사하게 작동하며, 읽기와 쓰기 작업을 제어한다.

    • 부동 게이트(Floating gate): 이는 정보를 저장하는 데 핵심적인 역할을 한다. 부동 게이트는 전자가 저장되는 곳으로, 이전에 저장된 데이터를 유지하고 새로운 데이터를 쓰는 데 사용된다.

📌플래시 메모리의 쓰기 동작 (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)

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

  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

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

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

  • 메모리 셀 배열(Cell Array) NMOS 트랜지스터들의 병렬 접속으로 구성된다.

  • 동작 방식(Operation) 전원(Vcc)이 비트 라인(BL)을 통해 모든 트랜지스터들의 드레인으로 직접 공급되며, 트랜지스터들의 소스는 접지(GND)로 접속된다.

  • 특징(Features) 각 트랜지스터의 독립적인 스위칭 동작이 가능하여(각 선이 병렬로 연결되어 있기 때문) 즉 셀 단위 액세스가 가능합니다. 이는 메모리의 임의의 위치에 있는 데이터를 읽거나 쓸 수 있도록 합니다.

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

  • 메모리 셀 배열(Cell Array) NMOS 트랜지스터들의 직렬 접속으로 구성된다.

  • 동작 방식(Operation) 전원(Vcc)이 첫 번째 트랜지스터의 드레인에만 접속된다. (다른곳은 X) 소스가 다음 트랜지스터의 드레인으로, 마지막 트랜지스터의 소스만 접지로 접속된다. (직렬이기 때문)

  • 특징(Features) 트랜지스터의 독립적인 스위칭 동작이 불가능하여 셀 단위 액세스가 불가능하다. 따라서 메모리를 읽거나 쓸 때는 블록 단위로 작업해야 한다.

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

📌Comparison NOR Flash and NAND Flash

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

NAND Flash vs NOR Flash

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

학습정리(Summary)

Computer architecture

Part 4 of 11

Study note in relation to Computer architecture (컴퓨터구조) at The cyber university of Korea

Up next

(1/2) Exploring Secondary Memory: The Role of HDD and RAID ~ Computer Architecture week 11

보조기억장치, 컴퓨터 구조, 11강