CS/컴퓨터 구조론

컴퓨터 구조론 6장 [보조저장장치-플래시메모리와 SSD]

devrabbit22 2025. 4. 8. 04:17

컴퓨터 시스템에서 주기억장치로 사용되고 있는 DRAM은 휘발성이며 용량에도 한계가 있다. 

CPU가 프로그램을 실행하는 중에 주기억장치와 영구저장 능력을 가진 보조저장장치 간에 빈번한 정보 전송이 발생하는 이유

  • 시스템 초기화 과정에서 운영체제(OS) 프로그램이 보조정장치로부터 주기억장치로 적재되어야 한다.
  • 응용 프로그램이 처음 수행될 때는 보조저장장치로부터 주기억장치로 적재되어야 한다.
  • 새로이 생성되거나 수정된 데이터는 보조저장장치에 영구 저장되어야 한다.
  • 주기억장치 공간이 부족한 경우에는 적재되어 있는 블록을 보조저장장치로 내보낸 다음에(Swap-Out), 새로운 블록을 읽어와서 그 공간에 적재한다(Swap-In)

따라서 보조저장장치의 액세스 속도는 CPU의 프로그램 처리 시간에 직접적인 영향을 미친다. 그러나 현재 보조저장장치로 가장 널리 사용되고 있는 하드 디스크는 기계장치를 많이 포함하고 있기 떄문에 속도가 매우 느리다. 

결과적으로 컴퓨터시스템은 하드웨어 초기화, 시스템 진단 및 프로그램을 처음 수행시킬 때와 다양한 프로그램들을 오랫동안 처리한 후에는 디스크 액세스 빈도가 높아져 시스템 성능이 급속히 저하된다.

디스크의 단점을 보완할 수 있는 보조저장장치

솔리드-스테이트 드라이브(SSD)

  • 플래시 메모리 칩들을 이용하여 구성한 대용량 저장장치이며, 반도체 드라이브라고도 부른다.
  • 이 장치에 사용되는 반도체 기억장치는 EEPROM의 한 유형인 플래시 메모리이다.

플래시 메모리(flash memory)

  • EEPROM의 일종으로서, 저장밀도가 높고 저전력 고신뢰성의 특징을 가진 반도체 기억장치
  • SSD도 여러 개의 플래시 메모리 칩들을 한 패키지 내에 배열로 설치하여 대용량 저장장치로 개발 한 것이다.
  • 플래시 메모리는 액세스 속도가 디스크에 비하여 훨씬 더 빠르기 떄문에 시스템 성능을 크게 높여줄 수 있지만, 읽기 및 쓰기 특성이 일반적인 반도체 기억장치와는 달라서 별도의 관리 방식이 필요하다.

플래시 메모리

  • 저장된 내용이 지워지지 않는 비휘발성 반도체 기억장치인 EPROM이 출현한 후에 자외선이 아닌 전기적으로 삭제 가능한 EEPROM도 개발되었으나, 각 비트를 저장하는 메모리 셀(memory cell)이 두 개의 트랜지스터로 만들어지기 떄문에 가격과 저장 밀도 면에서 디스크를 대체할 수 있는 대용량 저장장치로는 부각되지 못하고 있었다.
  • EEPROM의 개선된 변형으로서, 한 개의 트랜지스터를 이용하여 한 비트를 저장할 수 있고 전력 소모가 낮으며 신뢰성도 뛰어난 플래시 메모리(정확한 명칭 Flash EEPROM)가 개발되면서, 비휘발성 저장장치 분야가 활기를 띄게 되었다.

동작 원리

메모리 셀의 기호와 내부 구조

  • 플래시 메모리에서 셀(기억 소자)의 구현에는 NMOS 트랜지스터가 사용되며, 기호를 보면 드레인, 소스 및 게이트로 구성되는 일반적인 NMOS 트랜지스터와 별차이 없지만, 게이트가 두 개 표시되어 있다. 
  • 게이트는 제어 게이트(control gate)와 부동 게이트(float gate)로 이루어진다.
  • 부동 게이트는 정보 저장의 핵심적인 역할을 수행하게 되는데, 절연체인 산화막(SiO2)으로 둘러싸여 있어서 전자들이 쉽게 들어오거나 나가지 못하며, 초기에는 비어있는 상태이다.
  • NMOS 트랜지스터는 드레인 단자로 양의 전압(Vd)이 인가되고 소스는 접지(GND)로 접속된 상태에서 적절한 크기의 게이트 전압(Vg)이 인가되면, 드레인과 소스 사이의 N-채널을 통하여 전자들이 이동하면서 전류가 흐르게 된다.
  • 만약 제어 게이트로 충분히 높은 전압의 Vg를 인가한다면, 강력한 전기장이 발생하게 되어 N-채널을 통과하던 전자들의 일부가 절연체인 산화막을 통과하여 부동 게이트로 들어가게 된다. ->이와 같은 현상 : 터널링 효과, 부동 게이트로 전자들이 들어가는 현상을 터널 주입(tunnel injection)이라고 한다.

터널링 효과(tunneling effect)

  • N-채널의 전자들이 강력한 전기장의 영향을 받아 부동 게이트로 들어가는 현상
  • 그 후에 게이트 전압이 인가되지 않으면 터널링 효과는 사라지고 ,부동 게이트에 들어간 전자들은 그 안에 갇히게 된다.
  • 위의 설명들은 플래시 메모리에 대한 쓰기, 즉 '프로그래밍' 동작이다.
  • 이 과정에서 부동 게이트로 들어가는 전자들의 수는 인가하는 게이트 전압의 높이에 따라 달라지며, 그들은 전원 공급이 중단되어도 그대로 머물러 있음으로써 영구저장 기능을 수행하게 되는 것이다.
  • 정보가 저장된 상태에서, 하위의 p층(p-well)에 접속된 별도의 단자를 통하여 충분히 높은 전압(Vp)을 인가하면, 그 방향에서 발생한 전기장의 영향으로 인해 부동 게이트에 갇혀있던 전자들이 산화막을 통과하여 N-채널로 빠져나오게 되어 부동 게이트는 비게 된다. 이러한 과정을 터널 릴리스(tunnel release)라고 하는데, 메모리 셀에 대한 삭제 동작에 해당한다.
  • 즉, 셀에 대하여 삭제 동작이 수행되면, 그 셀은 '논리적 1' 상태가 되며, 그 후에 쓰기 동작에서 '0'을 저장한다면, 다시 부동게이트가 전자들로 채워진다. 반면에 '1'을 저장한다면 그대로 두면 된다.
  • 각 셀에 저장된 정보를 읽는 동작

셀의 읽기 동작 원리

  • 소스가 접지된 상태에서 드레인에 양의 전압을 인가하면 N-채널을 통해 전자가 흐를 수 있는 상태가 된다.
  • 그 상태에서 제어 게이트로 정상 전압을 인가하면 게이트 측으로부터(프로그래밍 동작에 비해 약한) 전기장이 발생하게 되는데, 그 때 만약 부동 게이트가 비어있는 상태라면 전기장의 영향때문에 p층에 있던 정공(hole)들이 아래로 밀려나서 N-채널이 되어 더 넓어진다.
  • 드레인과 소스 사이에 더 많은 전류가 흐를 수 있겓 되어 트랜지스터는 ON 상태가 되는데, 이것은 '1'을 읽은 결과에 해당한다.
  • 만약 b와 같이 부동 게이트가 전자들로 채워져 있다면('0' 저장 상태), 그 전자들이 전기장의 영향을 차단하게 되어 N0채널은 넓어지지 못하며, 결과적으로 전류가 매우 적게 흐르게 된다. 
  • 이것은 트랜지스터의 OFF 상태를 의미하며, '0'을 읽은 결과에 해당한다.

플래시 메모리의 내부 회로 구성방식에 따른 분류

  • NOR형과 NAND형으로 분류된다.

NOR형

NOR형 셀 조직(플래시 메모리의 내부 조직)

  • 트랜지스터들이 병렬로 접속된다. 여기서 병렬 접속이란 모든 트랜지스터들이 Vcc가 들어오는 비트선(bit line)과 접지 사이에 직접 연결되어 있는 형태를 말한다. 
  • 그와 같이 연결되면 모든 트랜지스터들은 독립적인 스위칭 동작을 수행할 수 있게 된다.
  • 트랜지스터의 게이트에 입력되는 신호는 단어 선(word line)을 통하여 인가된다.
  • 만약 셀 배열의 어느 한 트랜지스터에 '0'이 저장되어(부동 게이트가 전자들로 채워져)있다면, 게이트로 양의 전압이 인가되더라도 트랜지스터가 OFF 상태에 있게 되므로, 비트 선의 전압은 +5V를 그대로 유지하게 된다.
  • 반면에 '1'이 저장되어(부동게이트가 비어)있을 때 게이트 전압이 인가되면 트랜지스터는 ON 상태가 되어 전류가 흐르게 되므로, 비트 선의 전압은 0V로 떨어지게 된다.
  • 트랜지스터들이 병렬로 접속되고 있기 때문에, 선택된 어느 한 트랜지스터에 저장된 값만 '1'이라도 비트 선의 전압은 0V가 된다.
  • 즉, NOR 게이트와 같이 동작하며, 따라서 NOR형 플래시라고 불린다.
  • 그 비트 선의 값은 출력단의 감지 증폭기로 들어가 스위칭 회로에 의해 반전되어, 최종 출력 값으로는 원래 저장된 값인 '1'이 나가게 된다.
  • 이와 같은 구조로 인하여 NOR 형에서는 각 셀(비트) 단위로 선택 신호를 인가하여 저장된 값을 읽을 수 있다.

NAND형 셀 조직(플래시 메모리의 내부 조직)

  • NAND형의 내부 조직은 배여르이 모든 트랜지스터들이 직렬로 연결된다.
  • 즉, 비트 선은 첫 번째 트랜지스터의 드레인으로만 접속되고, 그 소스 단자는 두 번째 트랜지스터의 드레인으로 접속되는 방식이며, 가장 아래에 위치한 트랜지스터의 소스만 접지로 연결된다.
  • NAND형 플래시에서는 각 트랜지스터의 부동 게이트가 비어 있는('1' 저장) 상태에서는 전류가 흐르는 (ON) 상태가 되기 위한 문턱 전압(treshold voltage : Vth)이 -3V정도이다. 그리고 부동 게이트가 전자들로 채워져 있는('0' 저장) 상태에서는 Vth = +1V이다. 
  • 즉, Vg가 1V 이상이 되어야 트랜지스터가 ON 상태로 될 수 있는 것이다.

 

  • 초기 상태에서는 모든 게이트들로 인가되는 WL들의 전압이 +5V가 되어 (Vg = 5V), 트랜지스터들이 모두 ON되어 있다.
  • 따라서 비트 선의 전압은 0V가 된다. 그런데 그 중의 어느 한 셀이 선택되어 읽기가 수행될 때는 그 셀의 게이트 전압(Vg)은 0V가 된다. 그때 만약 셀에 저장되어 있는 값이 '1'이라면 Vth = -3V이므로 Vg > Vth가 되어 트랜지스터는 On이 된다.
  • 따라서 비트 선은 0V를 그대로 유지하고, 최종 출력 값은 '1'이 된다. 그런데 만약 그 트랜지스터에 저장된 값이 '0'이라면, Vth = +1V이므로 Vg < Vth 가 되어 트랜지스터는 OFF 상태에 있게 된다.
  • 따라서 트랜지스터들로 전류가 흐르지 못하기 때문에 비트 선은 5V를 유지하게 된다. 즉, 읽고자 하는 트랜지스터에 저장된 값이 '0'이라면, 직렬로 접속된 다른 트랜지스터들에 저장된 값에는 상관없이 비트 선의 전압은 5V(논리적 1)가 되는 것이다.
  • 그것은 NAND 게이트의 연산에 해당하므로 NAND형 플래시라고 불린다. 
  • 이 경우에도 비트 선의 전압은 감지 증폭기에 의해 반전되어, 최종 출력으로는 원래 저장된 값을 내보내게 된다.

설명 정리

  • NOR형 플래시에서는 병렬로 접속된 트랜지스터들의 드레인과 소스 단자가 각각 비트 선과 접지로 직접 연결되어 있다. 따라서 각 셀(비트) 단위의 읽기와 쓰기가 가능하지만, 접속선들의 수가 트랜지스터 당 세 개(WL선, BL선, 접지선)씩이 필요하기 때문에 공간을 많이 차지하여 칩 당 저장용량이 줄어드는 단점이 있다.
  • 반면에, NAND형 플래시에서는 비트 선은 최상단 트랜지스터의 드레인 단자로만 접속되고 접지선은 최하위 트랜지스터의 소스 단자로만 접속되기 때문에 접속선의 수가 대폭 줄어들어, 칩 당 저장용량이 NOR 형보다 더 커질 수 있다.

내부 조직

  • NOR형 플래시는 내부 조직상의 특징으로 인하여 비트 혹은 바이트 단위의 일기와 쓰기(프로그램)가 가능하기 때문에, 고정된 프로그램 코드를 순차적으로 인출하거나 작은 크기의 데이터를 수시로 읽고 쓰는 응용에 사용될 수 있다.
  • 따라서 PC의 BIOS 프로그램 저장장치, 각종 PDA 및 스마트폰의 OS 저장장치 등으로 널리 사용되고 있다. 그러나 저장밀도가 높지 않기 때문에 SSD를 포함한 대용량 보조저장장치로는 칩 당 용량이 더 크고 가격이 저렴한 NAND형 플래시가 더 적합하다.

1Gbit 플래시 메모리의 내부 조직

  • 1Gbit 플래시 메모리는 y축 방향으로 1024개의 블록들로 이루어진다. 그리고 각 블록은 64개의 페이지들로 구성된다.
  • 즉, 64장의 페이지들이 위로 포개져 하나의 블록을 이루고, 그러한 블록들 1024개가 쌓여있는 형태이다. 각 페이지는 x축 방향으로 2048개의 셀들로 구성되어 있으며, z 방향으로는 8개의 셀들이 있기 때문에 페이지의 크기는 2KByte가 된다.
  • 우측에는 각 블록을 위한 NAND형 셀 배열을 좀 더 자세하게 보여주고 있는데, 수직 방향의 셀 배열은 직렬로 연결된 64개의 트랜지스터들로 이루어지며, 그러한 셀 배열들이 수평 방향으로 2048개가 나열된 형태이다. 이러한 칩에서 어떤 한 페이지에 대한 읽기 동작이 수행된다면, 그 우측의 페이지 선택 해독기의 한 출력이 수평 방향으로 위치한 2048개 트랜지스터들의 게이트로 동시에 인가된다.(이들이 하나의 페이지를 이룬다.)
  • 결과적으로 선택된 페이지의 모든 셀들이 동시에 읽혀진다. 이러한 동작은 z방향의 8개 배열들에 대하여 같은 방법으로 수행된다. 따라서 해당 페이지 내의 모든(2048 x 8) 비트들이 인출되어, 같은 크기의 페이지 레지스터에 적재된 다음에 외부 버스로 나가게 된다.
  • 이와 같은 구조로 인하여 읽기 및 쓰기 동작은 페이지 단위로 수행되며 바이트 단위의 동작이 가능한 NOR형에 비해 액세스 시간이 더 걸리는 것이다.
  • 그림과 같이 구성된 칩의 전체 용량은 {(2048 x 8비트) x 64페이지} x 1024블록 = 1Gbit = 128Mbyte가 됨. 그런데 많은 수의 비트들이 저장되는 칩인만큼 오류 발생의 가능성도 있기 때문에, ECC비트들이 함께 저장된다.
  • 이 칩의 경우에는 페이지마다 64Byte 크기의 ECC가 추가적으로 저장되어 실제로 각 페이지에는 (2K + 64)Byte씩 저장되며, 같은 비율로 계산하면 각 블록에는 (128K + 4K)Byte가 저장된다.
  • 플래시 메모리의 내부 조직의 유형으로는 여러 가지가 있는데, 블록 당 페이지의 수는 32개, 64개, 128개 등이며, 페이지의 크기도 2KByte, 4KByte, 16KByte 및 64KByte로 다양하다. 이와 같이 액세스 및 전송의 기본 단위인 페이지의 크기가 일정하지 않으며, 하드 디스크의 섹터 크기와도 다르다. 그리고 삭제 동작은 블록 단위로만 가능하다.

SLC, MLC 및 TLC

SLC(Single-level cell)

  • 한 비트씩 저장하는 메모리 셀
  • NAND형 플래시 메모리는 표준 직렬버스인 USB 인터페이스를 가진 휴대용 저장장치를 비롯하여 SSD와 같은 대용량 저장장치의 구성요소로 사용되고 있는 만큼, 자장 밀도를 높여 더 많은 메모리 셀들을 집적시킴으로써 저장 용량을 늘리려는 시도가 계속되고 있다. 플래시 메모리에서는 기본적으로 셀당 한 비트씩 저장되며, 일정 크기의 반도체 칩 상에서 셀이 차지하는 면적에 따라 칩당 저장 용량이 결정된다. 그와 같이 한 비트씩 저장하는 셀들을 SLC라고 부른다.

MLC(multi-level cell)

  • 두 비트를 저장하여 네 가지 값들을 구분해주는 메모리 셀
  • 하나의 셀에 더 많은 비트들을 저장하는 기술이 개발되어 칩의 저장 용량을 대폭 눂ㅇ여주고 있다. 이 기술은 셀의 내부 구조를 변경하지 않고, 쓰기 동작에서 제어 게이트에 인가하는 전압의 크기에 따라 부동 게이트에 주입되는 전자들의 수를 조정함으로써 여러 비트들을 저장하는 방법을 사용한다.
  • 셀 당 두 비트씩 저장하는 MLC에서는 주입되는 전자들의 수를 네 단계로 구분하여 00, 01, 10, 11의 네 가지 값들을 각각 나타내도록 한다.
  • 부동 게이트만 확대하여 SLC와 LC에 대한 전자 수의 차이를 개념적으로 보여주는데, SLC에서는 부동 게이트가 전자들로 채워진 상태와 비어있는 상태로서 0과 1을 구분하는 반면에, MLC에서는 채워지는 전자들의 수를 네 단계로 구분하는 것을 볼 수 있다.

SLC 및 MLC의 원리

TLC(triple-level cell)

  • 세 비트를 저장하여 8가지 값들을 구분해주는 메모리 셀
  • 각 셀에 세 비트씩 저장하는 TLC에서는 주입되는 전자들의 수를 8단계로 구분하여 000부터 111까지 8가지의 값들을 구분하여 저장한다.
  • 이와 같이 MLC 혹은 TLC 기술을 사용하면 동일한 크기의 칩에 두 배 혹은 네 배의 정보를 저장할 수 있다.
  • SLC에서는 단순히 부동 게이트에 전자들을 채우거나 비움으로서 0과 1을 구분하지만, MLC와 TLC에서는 부동 게이트에 전자들을 얼마만큼 채우는지에 따라 2-비트 혹은 3-비트 데이터를 한꺼번에 저장하는 것이다. 그런데 주입되는 전자 수의 조정을 위하여 세밀한 작업이 필요하고, 읽은 후에도 구분이 쉽지 않기 때문에 속도가 느려지고 오류도 발생할 수 있다. 따라서 그러한 동작들은 오차 허용 범위를 두고 이루어지지만, 셀 당 저장 비트 수가 늘어날수록 오류 발생 빈도가 더 높아지고, 액세스 및 삭제 시간이 길어지며 수명도 줄어든다.

세 가지 기술들에 대한 특성 비교

SLT, MLC 및 TLC의 특성 비교

3차원 V-NAND 플래시 메모리

  • 플래시 메모리 제조회사들은 제한된 크기의 반도체 칩에 가능한 많은 셀들을 넣어 대용량화 시키려는 노력을 해왔다.
  • 반도체 제조 공정이 더욱 미세화 됨에 따라, 셀이 점차 더 작아지고 셀 간의 간격도 더 좁아지게 되면서 전자들이 누설되는 간섭 현상이 심화되었다. 그 결과, 저장된 데이터를 판독하기 어려워지는 물리적인 한계에 도달했고 이러한 문제를 극복하기 위해 단층 구조의 주택을 수 십층 쌓아 올리는 아파트와 같은 원리로 셀들을 수직 방향으로 적측하는 3차원 수직구조 낸드 플래시 메모리(3-dimension vertical NAND flash : 3d V-NAND 플래시)기술이 새로이 개발되었다.

3D V-NAND 플래시 메모리의 내부 구조

  • 그림은 3D V-NAND 플래시의 설계 원리를 단계적으로 보여주고 있다. 먼저 그림 (a)는 2차원 메모리 셀의 내부 구조인 그림 (b)와 같은 것이다. 3차원 구조 설계의 첫 번째 단계로서, 원래 구조 하단의 사각형 부분을 그림 (b)의 중심부와 같이 원통관으로 만든다. 그런 다음에, 청색으로 표시된 부동 게이트를 원통형으로 변경하여 그 주위를 둘러싸도록 제조하며, 남아 있는 제어 게이트도 부동 게이트의 바깥을 둘러싸는 형태로 하나의 3차원 구조 셀을 완성함.
  • 두 번째 단계는 수직 적층 기술을 사용하여 그림 (c)와 같이 메모리 셀들을 위로 계속 쌓아 올리는 것임. 이 때 그림에서 보는 바와 같이 셀과 셀 사이에 약간의 공간을 확보하면 셀들 간의 데이터 간섭 현상을 감소시킬 수 있음. 이 그림은 32개의 셀들을 적층시킨 모습을 보여주고 있다.
  • 3D V-NAND 플래시 메모리를 위한 최종 공정은 그림 (d)와 같이 다수의 실리콘 다이들을 아래위로 겹쳐 부착시킨 다음에 미세 크기의 홀들을 만드록, (c)와 같은 수직 다층 구조의 셀들을 그 홀 내부에 삽입 제조하는 것임. 이와 같은 공정은 수억 개의 홀들을 뚫고 각 층마다 전극을 연결하는 에칭 기술 및 수직 셀을 만드는 게이트 패턴 기술과 같은 첨단 반도체공정 기술들이 필요하다.
  • 그림 (b)와 같은 3차원 셀에서는 부동 게이트의 공간이 확장되기 때문에 더 많은 수의 전자들을 주입시킬 수 있어서, 전자 수를 기준으로 데이터의 값을 구분하는 과정이 용이해져 오류가 줄어들게 됨. 즉, 앞에서 언급한 TLC의 결점이 보완되는 것이다. 더 나아가서, 부동 게이트 내 전자들의 수를 16가지 등급으로 구분하여 4-비트 데이터를 저장하는 QLC(quadruple-level cell)를 제조하는 것도 가능해진다. 그 결과, 플래시 메모리의 저장 용량이 더욱 증가하여 테라비트급의 칩들도 출현하고 있다.
  • 최근에는 부동 게이트 대신에 두께가 얇은 부도체를 이용하여 전자들을 저장하는 CTF 방식이 개발되어 셀의 높이가 더욱 낮아짐에 따라, 적층 구조의 층수가 96층 혹은 그 이상으로 계속 높아지고 있음. 또한 칩 내부에서 셀 배열의 옆에 위치하던 주변부를 아래 부분에 위치시키는 PUC(peripheral under cell) 기술을 적용하는 4D NAND플래시도 개발된다.

SSD

  • SSD는 기계적 장치라는 단점을 가진 하드 디스크를 대체하기 위하여 개발된 대용량 비휘발성 반도체 저장장치이다. 그 주요 구성 요소는 NAND형 플래시 메모리이다. 그런데 저장 용량이 하드 디스크 드라이브에 비하여 여전히 적기 때문에 보조저장장치로 사용되기 위해서는 여러 개의 플래시 메모리들을 하나의 패키지에 넣어배열로 구성해야 한다. 
  • 저장 용량 대비 가격은 HDD에 비하여 높지만 계속 낮아지고 있고, 기계 장치가 없기 때문에 안정성과 신뢰도가 높다는 장점을 가지고 있다.

SSD 제어기

  • SSD에서 데이터 데이터 저장과 인출, 칩 관리 등과 같은 핵심적인 기능을 수행하는 전자회로 모듈
  • SSD 제어기는 펌웨어 수준의 프로그램 코드를 수행하는 임베디드 프로세서로 구현되며, SSD의 성능을 결정해주는 중요한 장치이다.
  • DRAM은 컴퓨터와 메모리 사이에서 캐시 및 쓰기 버퍼로서 동작한다.

플래시 변환 계층(FTL)

  • 플래시 메모리의 블록/페이지 구조를 논리적으로 HDD의 섹터와 같은 구조로 변환해주는 S/W
  • FTL은 플래시 메모리의 블록과 페이지를 논리적으로 HDD의 섹터와 같은 구조로 변환해줌으로써 섹터 기반의 파일 시스템이나 운영체제와 같은 소프트웨어들이 SSD를 HDD와 같은 방법으로 액세스할 수 있게 해주는 것이다.

플래시 변환 계층(FTL)을 포함한 SSD 구성

FTL은 페이지 주소와 섹터 주소간의 매핑(mapping) 외에도, SSD의 성능 향상을 위하여 아래와 같은 중요한 기능들을 수행한다.

  • 마모 평준화(wear leveling)
  • 쓰레기 수집(garbage collection)
  • 초과 대비공간(over-provisioning)

마모 평준화

  • 플래시 메모리의 모든 페이지들이 균등하게 사용되도록 관리함으로써 수명을 연장시키는 기술
  • SSD를 구성하는 플래시 메모리들의 셀은 수명을 나타내는 재기록 반복횟수에 한계가 있고, MLC 및 TLC는 그 횟수가 더욱 줄어든다.
  • 삭제와 쓰기 동작이 일부 블록이나 페이지들에만 집중된다면, 그 부분이 일찍 마모되어 다른 블록이나 페이지에 비해 수명이 현저히 단축되고, 결과적으로 해당 메모리 칩 전체를 사용하지 못하게 된다.
  • FTL에서 수행하는 마모 평준화는 모든 페이지들이 고르게 사용되도록 함으로써 그러한 현상을 방지하여 SSD의 수명을 연장시키기 위해 사용되는 기술이다.

쓰레기 수집

  • 수정되었으나 삭제되지 않은 무효 페이지들을 모아두었다가 한꺼번에 삭제하는 작업
  • SSD에서 마모 평준화를 위해 일반적으로 사용하는 방법은 페이지 레지스터를 이용하여 각 페이지의 재기록 횟수를 카운트하고, 쓰기 작업 때마다 그 정보를 참고하여 주소 변환 기능을 수행하는 것이다.
  • FTL이 사용된 횟수가 더 적은 페이지들을 우선적으로 선택하여 쓰기 작업을 진행한다. 
  • 어떤 페이지를 수정하는 경우에 기존의 페이지를 즉시 지우지는 않고 그대로 두게 되는데, 그 이유는 삭제가 블록 단위로만 이루어질 수 있기 때문이다.
  • 이미 수정되었지만 지우지는 않는 무효 페이지를 쓰레기라고 부르며, 일단 표시만 해둔다. 나중에 그러한 페이지들이 많이 축적된 블록이 있으면 한꺼번에 삭제하게 되는데, 이 작업을 쓰레기 수집이라고 한다.
  • 이 과정에서 삭제할 블록에 유효한 페이지가 남아 있다면, 먼저 그들을 다른 블록으로 이동시켜야 한다.

쓰레기 수집 과정의 예

  • 그림은 쓰레기 수집 과정의 한 예를 보여주고 있다. 그림에는 블록 X와 블록 Y가 각각 12개씩 페이지씩으로 구성되어 있고  먼저 (a)에서는 네 개의 페이지들 A, B, C, D가 블록 X에 저장된 상태이다. 그 후에 새로운 페이지들인 E, F, G, H를 추가로 저장하고, 기존의 페이지들은 각각 A', B', C', D'로 수정하려고 한다. 그런데 새로운 페이지들은 그림 (b)에서 보는 바와 같이 그 다음 위치의 페이지들에 저장되지만, 수정될 페이지들은 원래 페이지의 위치에 덧쓰기를 할 수가 없기 때문에 각각 다른 위치에 저장된다.
  • 그 결과로서, 그림에서 청색으로 표시된 네 개의 원래 페이지들은 무효 상태가 되었지만, 페이지 단위로는 삭제할 수가 없으므로 그대로 둘 수밖에 없다. 즉, 이 페이지들은 쓰레기인 것이다. 그런데 이 상태에서는 무효 페이지들이 저장되어 있는 공간을 다른 용도로도 사용할 수 없기 때문에 그들을 삭제해야 하는데, 그 동작을 위해서는 먼저 그림 (c)와 같이 블록 X에 있는 유효 페이지들을 다른 블록인 Y로 이동시켜야 한다. 그런 다음에 블록 X에 남아있는 무효 페이지들을 포함한 블록 전체를 삭제하면 된다.
  • 이와 같이 유효한 페이지들을 다른 블록으로 이동시키고, 기존 블록 전체를 삭제하는 과정을 쓰레기 수집이라고 한다.
  • 위의 과정에서 블록 X로부터 Y로 페이지들을 복사하는 동작에 많은 시간이 걸리기 때문에, 복사할 필요가 없는 무효 페이지들을 선별할 수 있어야 한다. 이를 위하여 무효 페이지들이 발생할 때마다 운영체제가 SSD 제어기에게 그 사실을 알려주도록 할 수 있는데, 이 동작은 TRIM이라고 불리는 명령에 의해 이루어진다. 즉, TRIM 명령은 OS로 하여금 SSD 제어기에게 무효가 된 페이지들을 통보해줌으로써 쓰레기 수집의 효율을 높여 SSD의 성능을 향상시켜주는 보조 기능임. 쓰레기 수집과 TRIM 명령은 삭제 횟수를 최소화시키는 데도 도움이 된다.

TRIM명령

  • SSD 제어기에 무효가 된 페이지들을 알려주는 OS의 명령

초과 대비공간

  • 마모 평준화의 효과를 높이기 위하여 SSD 내부에 추가해주는 여유 저장 공간

필요성

  • 마모 평준화 및 쓰레기 수집의 효율을 높이기 위해서는 (수정된 페이지와 원래 페이지의 일시적 중복 저장을 위한) 여유 저장 공간 필요

Reference

컴퓨터 구조론 개정 5판

https://velog.io/@chocaprio/06%EC%9E%A5-%EB%B3%B4%EC%A1%B0%EC%A0%80%EC%9E%A5%EC%9E%A5%EC%B9%98#63-%ED%94%8C%EB%9E%98%EC%8B%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%99%80-ssd

 

06장 보조저장장치

6.1 하드 디스크 하드디스크 : 자화될 수 있는 물질로 코팅된 플라스틱이나 금속을 이용한 원형 평판으로 만들어지는데, 그 평판 위에 헤드라고 불리는 전도성 코일을 통하여 표면을 자화시킴으

velog.io