ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 7장. 보조기억장치
    CS/컴퓨터구조 2023. 9. 3. 22:42

    7-1. 다양한 보조기억장치

    하드디스크 HDD

    자기적인 방식으로 데이터를 저장하는 보조기억장치

    구성 요소

    출처:  Storage (velog.io)

    플래터: 실질적으로 데이터가 저장되는 곳. 보통 HDD는 여러 겹의 플래터가 세로로 쌓여있는 형태. 데이터는 플래터 앞 면과 뒷면에 각각 저장됨.

    스핀들: 플레터를 돌려 헤드가 원하는 데이터가 저장된 플래터에 닿을 수 있게 해주는 부품. RPM (Revolution Per Minutes): 스핀들이 1분동안 플래터를 돌리는 횟수.

    헤드: 플래터에서 데이터를 읽어들이는 장치. 플래터 앞/뒷 면마다 있음.

    디스크암: 헤드를 원하는 위치로 이동하는 장치. 헤드는 디스크암에 부착되어 있음.

    트랙: 플레터를 중심원(스핀들)을 기준으로 원 모양으로 한 줄씩 나눈 공간

    섹터: 트랙을 조각낸 것. HDD에서 가장 작은 전송 단위.

    실린더: 같은 열의 트랙 모음. 연속된 데이터는 한 실린더 내에 순서대로 저장된다. (탐색 시간을 줄이기 위해)

     

    DATA를 읽는데 걸리는 총 시간

    탐색 시간 seek time: 디스크 암이 헤드를 원하는 트랙으로 이동하는 시간.

    회전 지연 rotational latency: 스핀들이 플래터를 회전시켜 헤드 위치에 원하는 섹터를 맞추는 시간

    전송 지연 transfer time: HDD로부터 데이터를 입/출력하는 시간

    cf) 단일 헤드 디스크 Singlie-Head Disk: 데이터를 읽는 헤드가 1개,

         다중 헤드 디스크 Multiple-Head Disk: 헤드가 트랙 별로 장착된 디스크. → 탐색 시간 없음.

     

    ⇒ HDD로부터 데이터를 읽어 들이는 시간은 생각보다 큼.

     

    플래시 메모리

    전기적인 방식으로 데이터를 저장하는 반도체 기반의 보조기억장치 ex) USB, SSD, SD카드 등

    플래시 메모리에는 크게 NAND 플래시 메모리와 NOR 플래시 메모리가 있다. 대부분은 NAND 플래시 메모리이며 책에서도 NAND 플래시 메모리를 기준으로 설명함.

     

    저장 단위

    셀 Cell: 플래시 메모리에서 데이터가 저장되는 가장 작은 단위.

      SLC: 1셀에 1 bit씩 저장. 2^1 개 정보 표현 가능. (상대적으로) 수명이 길고, 입출력 속도 빠르고 비용 높음.

      MLC: 1셀에 2bit 저장.

      TLC: 1셀에 3bit 저장

      QLC: 1셀에 4bit 저장

    셀이 모여 → 페이지 가 모여 → 블록이 모여 → 플레인 이 모여 → 다이

     

    데이터 입출력

    입력은 페이지 단위, 삭제는 블록 단위.

    페이지 상태

    • free: 비어 있음.=데이터 저장 가능
    • valid: 유효한 값 저장된 상태
    • invalid: 유효하지 않은 쓰레기 값이 저장된 상태

    플래시 메모리는 덮어쓰기를 할 수 없다. 갱신은 무조건 ‘새로 쓰기 + 이전 값은 invalid로 전환’

    가비지 컬렉션 garbage collection: 플래시 메모리의 저장 공간을 효율적으로 관리하는 방법. invalid 페이지가 있는 블록 중 valid 페이지만 다른 블록으로 복사, 기존의 블록은 삭제.

     

     

    7-2. RAID의 정의와 종류

    RAID란, 여러 개의 디스크(HDD, SDD 등의 보조기억장치) 를 논리적으로 하나의 보조기억장치처럼 사용하여 데이터의 읽기/쓰기 성능을 올리고 안전성을 확보하는 방법이다.

    현대에서 자주 쓰이는 RAID 레벨에는 0, 1, 4, 5, 6이 있다.

    RAID0

    여러 개의 디스크에 데이터를 분산 저장하고 읽어 들이는 방식.

    디스크가 한 개 뿐일 때에는 한 데이터를 완전히 읽거나 쓰기 위해 여러 번에 나누어 수행해야 함. 디스크가 여러 개이면 읽기 or 쓰기 동작을 동시에 진행할 수 있어 전체적인 읽기/쓰기 속도가 향상된다.

    stripe: 여러 개의 디스크에 분산 되어 저장된 데이터 / striping: 데이터를 여러 디스크에 분산 저장하는 것.

    전체 디스크를 데이터 저장에만 사용하므로 저장장치 용량을 최대로 활용할 수 있음.

    디스크 중 하나만 문제가 생겨도 모든 데이터를 사용할 수 없게 됨. 백업 및 복구에 불리.

     

    RAID1

    저장 공간을 둘로 나누고 데이터를 한 곳에 저장한 후 나머지 공간에 복사본을 만드는 방식 = 미러링.

    똑같은 디스크가 2개 존재 → 복구 간단.

    데이터를 저장할 수 있는 저장장치 용량이 절반으로 줄어 듦.

     

    RAID4

    패리티 비트: 오류를 검출하고 복구하기 위한 정보(원래 패리티 비트는 오류 검출만 가능한 정보. 그러나 RAID에서는 패리티 비트로 오류 복구까지 수행 함.)

    한 디스크에는 패리티 비트만 작성, 나머지 디스크에 striping하여 저장하는 방식. 패리티 비트를 이용하여 나머지 디스크의 오류를 검출하고 복구함.

    RAID1 보다 저장 용량 늘어남.

    그러나 데이터를 저장할 때마다 패리티 비트가 저장된 디스크에서도 쓰기 동작이 발생해야 하므로 병목 현상이 발생하여 쓰기 속도 저하될 수 있음.

     

    RAID5

    패리티 비트도 striping 하여 저장하는 방식. → 패리티 병목 현상을 해결

     

    RAID6

    RAID5 + 패리티비트를 두 번씩 striping. → 쓰기 속도는 RAID5 보다 느리지만 안정성은 높음.

     

     

     

     

    'CS > 컴퓨터구조' 카테고리의 다른 글

    8장. 입출력장치  (0) 2023.09.05
    6장. 메모리와 캐시메모리  (0) 2023.08.31
    5장. CPU 성능 향상 기법  (0) 2023.08.26
    4장. CPU  (0) 2023.08.26
    3장. 명령어  (0) 2023.08.24

    댓글

Designed by Tistory.