컴퓨터 공학/컴퓨터 구조

[혼공컴운] chapter.07 보조기억장치

hhzinistic 2023. 7. 23. 01:56

2023.07.22 - [분류 전체보기] - [혼공컴운] chapter.06 메모리와 캐시 메모리

 

[혼공컴운] chapter.06 메모리와 캐시 메모리

2023.07.16 - [컴퓨터 공학/컴퓨터 구조] - [혼공컴운] chapter.05 CPU 성능 향상 기법 [혼공컴운] chapter.05 CPU 성능 향상 기법 2023.07.15 - [컴퓨터 공학/컴퓨터 구조] - [혼공컴운] chapter.04 CPU의 작동원리 [혼

zinistic.tistory.com

 

07-1 다양한 보조기억장치

  • 하드디스크(HDD: Hard Disk Drive)
    : 자기적인 방식으로 데이터를 저장하는 보조기억장치. 자기 디스크(magnetic disk)의 일종.

    - 플래터(platter): 동그란 원판. 하드디스크에서 실질적으로 데이터가 저장되는 공간.
    - 스핀들(spindle): 플래터를 회전시키는 구성 요소. 스핀들이 플래터를 돌리는 속도는 RPM 으로 표현.
    * RPM(Revolution Per Minute): 분당 회전수. 
    ex) RPM = 15,000 => 1분당 15,000 바퀴 회전
    - 헤드(Head): 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소. 디스크 암에 부착.
    - 디스크 암(disk arm): 헤드를 원하는 위치로 이동시키는 부품. 

자료 출처: https://commons.wikimedia.org/wiki/File:Laptop-hard-drive-exposed.jpg
자료 출처: https://commons.wikimedia.org/wiki/File:Laptop-hard-drive-exposed.jpg



  • 플래터에 데이터 저장되는 방식
    => 트랙(track)과 섹터(sector) 단위로 데이터를 저장

    - 트랙: 한 플래터를 동심원으로 나눈 공간.
    - 섹터: 트랙에서 나누어진 단위. 하드 디스크의 가장 작은 전송 단위.
    - 실린더(cylinder): 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위.

    - 트랙간 갭: 트랙 사이의 간격. 트랙간의 자기장 간섭을 방지하기 위한 간격.
    - 섹터간 갭: 섹터들을 구분하기 위한 간격.

섹터와 트랙
실린더
섹터간 갭, 트래간 갭. 트랙들의 간격은 일정하다. (블로그 주인의 시각자료 구현 한계로 일정하지 않아 보일 수 있음. 하지만 일정함.)

 

 

  • 하드 디스크가 저장된 데이터에 접근하는 시간
    => 탐색 시간 + 회전 지연 시간 + 전송 시간
    • 탐색 시간(seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간.
    • 회전 지연(rotational latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간.
    • 전송 시간(transfer time): 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간.


  • 다중 헤드 디스크와 고정 헤드 디스크
    • 단일 헤드 디스크(single-head disk): 플래터의 한 면당 헤드가 하나씩 달려있는 하드 디스크.
      → 헤드를 움직일 필요 X. 고정 헤드 디스크(fixed-head disk) 라고도 함.
    • 다중 헤드 디스크(multiple-head disk): 헤드가 트랙별로 여러 개 달려있는 하드 디스크.
      → 헤드를 데이터가 있는 곳 까지 이동 필요. 이동 헤드 디스크(movable-head disk) 라고도 함.



  • 플래시 메모리(flash memory)
    : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치.
    ex) USB, SD카드, SSD 등

    - 셀(cell): 플래시 메모리에서 데이터를 저장하는 가장 작은 단위.
    - 페이지(page): 셀들이 모여 만들어진 단위. 플래시 메모리에서 읽기와 쓰기에서 사용되는 단위.
    - 블록(block): 페이지들이 모여 만들어진 단위. 플래시 메모리에서 삭제에서 사용되는 단위.
    - 플레인(plane): 블록이 모여 만들어진 단위.
    - 다이(die): 플레인이 모여 만들어진 단위.
    * 플래시 메모리는 읽기/쓰기와 삭제 단위가 다름.

           < 내부 회로 구성방식에 따른 플래시 구분 >
    • NOR형 플래시: 트랜지스터들이 병렬로 접속된 형태. 어느 한 트랜지스터에 저장된 값만 '1' 이어도 비트 선의 전압은 0V가 되는 NOR 게이트와 같이 동작하는 플래시 메모리.
    • NAND형 플래시: 모든 트랜지스터들이 직렬로 접속된 형태. 읽고자 하는 트랜지스터에 저장된 값이 '0' 일 경우에 직렬로 접속된 다른 트랜지스터들과는 상관없이 비트 선의 전압은 논리적으로 1이 되는 NAND 게이트와 같이 동작하는 플래시 메모리.


      < 셀 당 저장하는 비트 수에 따른 플래시 구분 >
    • SLC(single-level cell): 한 셀당 한 비트씩 저장하는 셀.
      → 0 또는 1 저장 가능.
    • MLC(multiple-level cell): 한 셀에 2비트씩 저장할 수 있는 셀.
      → 00, 01, 10, 11 총 4 가지 저장 가능.
    • TLC(triple-level cell): 한 셀에 3비트씩 저장할 수 있는 셀.
      → 000, 001, 010, 011, 100, 101, 110, 111 총 8 가지 저장 가능.

SLC, MLC, TLC 특성 비교
플래시의 여러 단위

  • 플래시 작동 과정
    < 페이지가 가질 수 있는 상태 >
    1. Free 상태: 새로운 데이터를 저장할 수 있는 상태.
    2. Valid 상태: 이미 유효한 데이터를 저장하고 있는 상태.
    3. Invalid 상태: 유효하지 않은 값(쓰레기 값)을 가지고 있는 상태.

    * 플래시는 덮어쓰기가 불가능하여 Vaild 상태의 페이지에는 저장할 수 없음.

< 플래시 작동 예시 ①: 새로운 데이터 저장>

→ A와 B가 저장되어 있는 페이지는 Valid 상태. Free 상태인 페이지에 데이터 C 저장.

< 플래시 작동 예시 ②: 가비지 콜렉터 >

→ Vaild 페이지만 새로운 블록으로 복사한 후 기존의 블록 전체를 삭제하는 과정. 
플래시 메모리의 읽기/쓰기 단위는 페이지, 삭제 단위는 블록인 특성으로 인한 과정.


 

 


 

 

07-2 RAID의 정의와 종류

  • RAID(Redundant Array or Independent Disks)
    : 다수의 작은 디스크들을 배열로 연결하여 용량, 신뢰성을 높인 대용량 디스크 시스템.

  • RAID-0: 여러 개의 디스크에 데이터를 분산하여 저장하는 방식.

RAID-0 데이터 저장 예시

→ 구성된 하드 디스크 중 1개라도 문제가 생기면 다른 하드 디스크의 정보를 읽는데 문제가 발생하는 구조.

 

  • RAID-1: 데이터를 두 개의 디스크들에 중복 저장하여 RAID-0 의 단점을 보완한 방식.
    - 거울처럼 완벽한 복사본을 만드는 구성으로 디스크 미러링(disk mirroring)방식 이라고도 함.

RAID-1 데이터 저장 예시

→ 미러 디스크가 존재하기 때문에 복구가 매우 쉬움. 하지만 많은 양의 하드 디스크가 필요하다는 단점 존재.

 

  • RAID-4: 오류를 검출하고 복구하기 위한 정보를 저장하는 디스크를 추가한 방식.
    - 패리티 디스크(parrity disk): 패리티 비트가 저장되어 있는 디스크
    - 패리티 비트(parrity bit): 오류를 검출하고 복구하기 위한 정보

RAID-4 데이터 저장 예시

→ 적은 하드 디스크로 데이터를 안전하게 보관할 수 있는 방식. 패리티 디스크를 통해서 오류 검출과 복구가 가능하다. 
하지만 새로운 데이터를 저장할 때마다 패리티 디스크에 접근함으로 병목현상 발생.

  • RAID-5: 패리티 정보를 분산하여 저장하는 방식으로 병목현상을 해소한 방식.

RAID-5 데이터 저장 예시

→ 패리티 비트를 여러 디스크에 분산배치 하여 병목현상을 해소함.

  • RAID-6: 서로 다른 두 개의 패리티를 배치하여 데이터의 신뢰성을 높인 방식.

RAID-6 데이터 저장 예시

→ 패리티가 각 데이터마다 2개씩 존재하여 데이터의 신뢰성이 높음. 하지만 데이터를 저장할 때 각 패리티에 접근해야 함으로 쓰기 속도가 저하됨.


*  RAID-2와 RAID-3은 현재 잘 활용되지 않음.






* 오류 지적은 환영입니다.^^ *