- 디스크 저장 장치와 SSD (CSAPP)

김민우·2022년 5월 9일
2

메모리

목록 보기
1/2

6.1.2. 디스크 저장장치

📌 디스크 (Disk)

  • 수백~수천 GB 단위의 엄청난 양의 데이터를 저장하는 저장장치
  • 디스크에서 정보를 읽는 데는 ms 단위로 걸림
    - SRAM보다 백만 배 더 길고 DRAM보다는 십만 배 더 걸림

- 디스크의 구조

  1. 원판(Platter)
    • 각 원판들은 두 개의 옆면, 즉 표면으로 이루어져 있으며, 이들은 자성을 띤 기억 물질로 코딩되어 있다.
    • 디스크는 일반적으로 한 개 이상의 원판들을 가짐

  2. 축(Spindle)
    - 원판의 중심부에 위치하며, 원판을 고정된 회전율로 돌려줌
    (평균 5,400~15,000번 회전하는 비율(RPM)을 가짐)

  3. 트랙(Track)
    - 디스크 표면(Platter)에 있는 여러 개의 동심원
    - 각 트랙은 섹터1들의 집합으로 나누어지며
    - 섹터 위에 자성 물질로 인코딩된 동일한 수의 데이터 비트(일반적으로 512바이트)를 가짐

  4. 헤더
    - 구동 팔(Head Arm)끝에 연결되어 있으며 자성 표면에 저장된 비트를 읽거나 쓴다
    - 하나의 원판(Platter)당 2개 존재

  5. 실린더 (Cylinder) : 다중 원판 드라이브
    • 자기 디스크 장치에서, 디스크 팩의 각 장에 있는 트랙을 동일 순번으로 집합시킨 것
    • 축의 중심으로부터 동일한 거리를 갖는 모든 트랙들의 개수


- 디스크 용량

  • 하나의 디스크에 기록될 수 있는 최대 비트 수는 디스크의 최대 용량 또는 간단히 용량이라고 부름

  • 디스크 용량을 결정하는 기술 요소
    1. 기록밀도(bits/in) : 1인치의 트랙에 집어넣을 수 있는 비트의 수
    2. 트랙밀도(tracks/in) : 원판 중심에서 반지름의 1인치 길이에 넣을 수 있는 트랙의 수
    3. 면적밀도(bits/in2) : 기록밀도 * 트랙밀도

※ 디스크의 면적밀도(용량)를 높이기 위한 연구 동향

  • 과거의 방식
    - 모든 트랙을 같은 수의 섹터로 나누어 바깥쪽 트랙의 섹터들은 거리가 멀어지게 된다
    -> 만약 섹터에 결함이 생길 경우, 해당 섹터의 전부를 사용하지 못하는 상태가 된다.

  • ZBR 방식
    - 디스크 외곽의 헐거운 기록 밀도에서 오는 낭비를 없애기 위해 외곽에 더 많은 섹터를 배치

- 디스크 동작

  • 디스크가 동작하는 영상
    0:27 - 폴더 삭제, 0:55 - 복사/붙여넣기, 1:24 - Quick format
  • 디스크는 데이터를 섹터 크기의 블록으로 읽고 기록한다.

  • 섹터에 접근하는 시간은 3개의 주요 부분으로 이루어지며 다음과 같다.

    1. 탐색 시간 : 팔을 이동하기 위해 소요되는 시간
      - 특정 타깃 섹터의 내용을 읽기 위해서 팔은 먼저 헤드를 타깃 섹터를 보유 트랙 위로 위치시킨다.

    2. 회전 지연시간
      - 헤드가 트랙 위에 위치하면 드라이브는 타깃 섹터의 첫 번째 비트가 헤드 아래로 지나가는 것을 기다린다.

    3. 전송시간
      • 타깃 섹터의 첫 번째 비트가 헤드 아래에 있을 때, 드라이브는 섹터의 내용을 읽거나 쓰기를 시작할 수 있다.

- 논리적 디스크 블록

  • 과거의 디스크들은 다중 표면은 가지고, 표면에 여러 기록 영역을 가지는 복잡한 구조를 가진다.

  • OS로부터 이러한 복잡성을 감추기 위해 요즘의 디스크들은 0, 1, ... , B-1의 번호를 붙인 B 섹터크기의 논리블록의 배열로 구조를 좀 더 단순화시킨다.

  • 논리 블록 주소 지정(Logical block addressing, LBA)은 컴퓨터 기억 장치에 저장되는 데이터 블록의 위치를 지정하는데 쓰이는 공통 Scheme으로,
    일반적으로 하드 디스크 드라이브와 같은 보조 기억 장치에 쓰인다.

  • LBA는 특히 단순한 선형 주소 지정 스킴이며, 블록은 정수 색인에 의해 위치되며, 첫 블록은 LBA 0, 두 번째는 LBA 1로 된다.

  • IDE 표준은 22비트 LBA를 옵션으로 포함하였으며, 더 나아가 ATA-1 출시와 함께 28비트로 확장되었고 ATA-6 출시와 함께 48비트로 확장되었다.

  • 반면, 주소를 보유하고 있는 디스크와 메모리 내의 자료 구조의 엔트리들의 크기는 일반적으로 32비트나 64비트이다.

  • 1996년 이후에 출시된 대부분의 하드 디스크 드라이브들은 논리 블록 주소 지정을 구현하고 있다.

- 입출력장치 연결하기

  • 시스템 버스 (≒ 메모리 버스, 전면 버스, 호스트 버스)
    - CPU의 내부와 외부를 연결하는 것이 주요 목적
    - CPU, 메인메모리, 칩셋 사이의 정보 교환 통로
    - 주로 CPU와 메인메모리 사이의 메모리 버스
    • 메인메모리는 고속전송을 위해 주로 메모리 컨트롤러보다 시스템버스에 직접 동기 되도록 설계
  • 입출력버스 (I/O 버스)
    - I/O 컨트롤러와 입출력장치 사이의 버스
    • 시스템 버스에서 갈라져 나와 다양한 입출력장치 연결
  • 시스템 버스와 I/O 버스

- 디스크 접근하기

  1. CPU는 메모리 매핑 I/O라고 부르는 기술을 사용해서 I/O 디바이스에 명령들을 보낸다.
  2. 메모리 매핑 I/O를 사용하는 시스템에서 주소 공간에 있는 한 개의 주소 블록은 I/O 디바이스들과 통신하기 위해 예약되어 있다.
    (각각의 주소는 I/O라고 알려져 있다.)
  3. 각 디바이스는 버스에 연결될 때, 한 개 이상의 포트와 관련된다(또는 매핑된다)

※ 메모리 매핑 I/O
- CPU가 입출력 장치를 액세스할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식


6.1.3. SSD (Solid State Disks)

📌 SSD (Solid State Disks or Drive)

  • 일종의 저장장치 기술로 플래시 메모리2를 사용
  • Solid-State : 고정 상태와 소체(트랜지스터)를 뜻함

- SSD의 기본 동작 원리

  1. SSD패키지는 I/O 버스 (USB or SATA3)의 표준 디스크 슬롯에 삽입
  2. 논리 디스크 블록을 읽고 쓰기 위해 CPU로부터의 요청을 처리

    SSD패키지란?
    - 회전하는 디스크에서 기계적인 드라이브를 대체한 하나 이상의 플래시 메모리 칩, 디스크 컨트롤러4 같은 역할을 하는 하드웨어/펌웨어 장치
    - 논리블록들에 대한 요청들을 하부 물리 디바이스에 대한 접근으로 번역하는 플래시 번역 계층으로 이루어짐

  • SSD의 장점
    1. 반도체 메모리로 이루어져 움직이는 부품이 없으며, 더 견고함
    2. 회전하는 디스크보다 랜덤 접근시간이 훨씬 더 빠름
    3. 적은 전력을 소모함

  • SSD의 단점
    1. 플래시 블록의 반복적인 쓰기 작업으로 인해 노후할 가능성이 있음
    2. 회전하는 디스크에 비해 가격이 더 비싸고, 저장용량이 적음


6.1.4. 저장장치 기술 동향

  • 저장장치의 종류에 따라 Trade-off는 존재 (속도, 가격 등)

  • 저장장치의 발전은 선형적인 발전을 이뤄왔음에도 불구하고, CPU의 비약적인 발전에 뒤처짐 -> 병목현상으로 이어짐

  • 이를 극복하기 위해 SRAM-기반 캐시를 많이 사용하며,
    이 방법은 지역성(Locality)이라고 알려진 응용프로그램의 근본적인 특성 때문에 동작

  • 참고자료 : CPU와 메모리간 병목현상 극복





1. 섹터 : 하드디스크 등의 자기디스크의 저장공간을 나누는 단위들중 하나이며, 가장 최소단위

2. 플래시 메모리 : 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성 컴퓨터 기억 장치

3. 직렬 ATA(Serial ATA, SATA) : 하드 디스크 혹은 광학 드라이브와 데이터 전송을 주요 목적으로 만든 컴퓨터 버스
(컴퓨터 버스 : 컴퓨터 간에 데이터와 정보를 전송하는 통로)

4. 디스크 컨트롤러 : CPU가 하드 디스크, 플로피 디스크 또는 다른 종류의 디스크 드라이브와 통신할 수 있도록 하는 회로

5. 병목현상(bottleneck) : 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상

profile
Pay it forward.

0개의 댓글