컴퓨터구조론#11

LeeMir, 17 May 2021

제6장 보조저장장치(이어서)


플래시 메모리와 SSD
  • 플래시 메모리
    • 비휘발성
    • 낮은 전력 소모량, 높은 신뢰성, 속도 향상
    • 동작 원리
      • 메모리 셀 구현(NMOS 트랜지스터 사용)
      • 구조
        • 소스 : 전자가 흘러 나오는 수도관
        • 드레인 : 전자가 빠져나가는 하수구
        • 게이트 : 수도꼭지
          • 제어 게이트
            • 일반 트랜지스터의 게이트와 동일
          • 부동 게이트
            • 정보 저장의 핵심적 역할 수행
            • 산화막으로 둘러싸여 전자들이 쉽게 들어오거나 나가지 못하며, 초기에는 비어있는 상태(1이 저장되어 있음)
      • 프로그래밍(쓰기) 동작 : 제어 게이트로 고전압이 인가될 시 N-채널의 전자들이 +1이 저장되어 있는 부동 게이트로 이동 => 터널링 효과로 인한 터널 주입 발생 => 0 쓰기
      • 삭제 동작 : p층에 고전압 인가 시, 부동 게이트에 갇힌 전자들이 N-채널로 빠져 나옴 => 1이 저장
      • 읽기 동작 : 드레인 전압(Vd) 인가 후 N-채널에 있는 전자의 수에 따라 전류가 많고 적게 흘러 트랜지스터가 ON / OFF 상태가 됨 => 각각 1과 0을 읽음
    • SLC, MLC 및 TLC
      • SLC : 두 가지 상태(0, 1)를 가짐으로써 한 비트를 저장하는 셀
        • 오류가 날 일이 없음
      • MLC : 셀의 상태를 4가지(00,01,10,11)로 구분해 메모리 셀 당 2비트씩 저장
      • TLC : 셀의 상태를 8가지로 구분해 셀 당 3비트씩 저장
      • MLC와 TLC는 세밀한 작업이 필요하고, 데이터 구분이 어려워 액세스 속도가 저하됨
        • 오류 발생 빈도도 증가, 수명도 단축
  • SSD
    • 비휘발성 반도체 기억장치들을 이용한 대용량 보조저장장치
      • 다수의 플래시 메모리들을 배열로 구성한 패키지
    • 속도 및 신뢰도 향상
    • 플래시 메모리 칩
      • 인터리빙 방식으로 데이터 분산 저장, 병렬 입출력 채널 구성
        • 동시 액세스 및 병렬 데이터 전송 지원
      • NAND형과 NOR형이 있음
    • SSD Controller(제어기)
      • 데이터 저장과 인출, 칩 관리, 주소 변환 등과 같은 핵심적 기능 수행
      • 펌웨어 수준의 프로그램을 수행하는 프로세서로 구현
    • DRAM
      • 컴퓨터와 플래시 메모리 사이의 데이터 버퍼(캐시 역할)
    • 외부 인터페이스
      • SATA, PCIe 등을 이용한 직렬 전송
  • FTL(Flash Translation Layer)
    • 기존의 파일 시스템과 OS로 하여금 SSD를 HDD와 같은 방법으로 사용할 수 있도록 지원해주는 미들웨어(middleware)
    • SSD 제어기가 수행
    • 페이지 주소와 섹터 주소간의 매핑 기능 지원
      • 그 외에도 SSD 성능 향상을 위해 마모 평준화, 쓰레기 수집, 초과 대비공간 기능 수행
    • 마모 평준화(wear leveling)
      • 플래시 메모리의 셀 수명 한계
      • SSD의 모든 페이지들이 고르게 사용되도록 저장 위치 조정
      • 각 페이지의 사용 횟수를 기록해 쓰기 동작 시 참고
      • 기록 횟수가 적은 페이지 우선 사용
    • 쓰레기 수집(garbage collection)
      • 삭제 동작이 블록 단위로만 가능
      • 페이지 내용은 수정되었지만 삭제하지 못한 원래 페이지는 쓰레기로 표시
      • 쓰레기로 표시된 페이지가 많이 축적된 블록을 한꺼번에 삭제
    • 초과 대비공간(over-provisioning)
      • 쓰레기 수집을 하기 위해서는 추가적 저장 공간이 필요해 SSD 내부에 여분의 저장 공간 마련