미새문지

크래프톤 정글 week05, day36 - 디스크 저장 장치 본문

크래프톤 정글/TIL

크래프톤 정글 week05, day36 - 디스크 저장 장치

문미새 2024. 2. 21. 00:58
728x90

디스크

  • RAM 메모리의 수천 메가 바이트 단위에 비해 수백에서 수천 기가바이트 단위의 엄청난 양의 데이터를 저장하는 대표적인 저장 장치
  • 하지만 디스크에서 정보를 읽는 데에는 밀리 초 단위로 걸리며, 이것은 SRAM보다 백만 배 더 길고 DRAM보다 십만 배 더 걸리는 것이다.
  • 데이터를 영구적으로 저장 가능하며 일반적으로 하드디스크(HDD)를 사용한다.
  • 디스크의 구성 요소
    • 플래터(Platters)
      • 디스크의 주요 저장 매체로, 얇고 원판 모양의 금속 또는 유리 플레이트이며, 매우 미세한 페라마그네틱 재료 코팅이 되어 있어, 이를 통해 데이터를 저장한다.
      • 플래터의 개수가 많아질수록 용량이 늘어난다.
    • 리드/라이트 헤드(Read/Write Heads)  
      • 래터 위에 떠있는 소형 기기로, 플래터에 정보를 쓰거나 플래터에서 정보를 읽는 역할을 한다.
      • 플래터 면에 대해 한 개의 리드/라이트 헤드가 있다. 
    • ​스핀들(Spindle)
      • 플래터를 중심축으로 회전시키는 역할을 하며, 스핀들의 속도는 디스크 드라이브의 성능에 큰 영향을 미친다.
    •  액추에이터(Arm Actuator)
      • 리드/라이트 헤드를 플래터의 적절한 위치로 이동시키는 역할을 한다.
  •  

  • 데이터는 플래터의 표면에 미세한 자기장으로 저장되며, 이는 리드/라이트 헤드에 의해 읽혀지거나 쓰여진다. 디스크의 회전과 함께 헤드가 플래터 위를 움직이며 해당 위치의 데이터에 접근할 수 있다.
  • 이러한 구조 덕분에 디스크 저장장치는 대량의 데이터를 안정적으로 오랜 기간 동안 보관할 수 있다. 하지만 물리적인 움직임에 의존하기 때문에 솔리트 스테이트 드라이브(SSD)와 같은 플래시 기반 저장 장치에 비해 상대적으로 속도가 느리다.

디스크 용량

  • 디스크에 기록될 수 있는 최대 비트 수는 간단히 용량이라고 부르거나 디스크의 최대 용량이라고 한다.
  • 요소
    • 기록밀도(bits/in)
      • 1인치의 트랙에 집어넣을 수 있는 비트의 수
    • 트랙밀도(tracks/in)
      • 원판 중심에서 반지름의 1인치 길이에 넣을 수 있는 트랙의 수
    • 면적밀도(bits/in^2)
      • 기록밀도와 트랙밀도의 곱
  • 디스크의 용량 계산 식
  • 섹터 당 몇 바이트 * 트랙 당 평균 몇 섹터 * 표면 당 트랙 수 * 원판의 표면 수 * 디스크의 원판 수
  • 섹터(sector) 당 512byte * 트랙(track) 당 300개의 섹터 * 표면(surface) 마다 20,000개의 트랙 * 원판에 2개의 표면 * 5개의 원판(platters)으로 계산했을 때
    • 총 30,720,000,000 bytes(30.72GB)
    • B → KB → MB → GB → TB → PB…

디스크의 동작

  • 스핀들과 플래터의 회전
    • 디스크 내부의 스핀들 모터가 작동하면 이에 연결된 플래터들이 회전하기 시작하는데, 이 회전 속도는 디스크의 성능에 큰 영향을 미치며 일반적으로 초당 수천 회에서 수만 회 사이이다.
  • 리드/라이트 헤드의 이동
    • 데이터를 읽거나 쓸 위치가 결정되면 액추에이터가 리드/라이트 헤드를 해당 위치로 이동시키는데, 이 헤드는 플래터 위를 떠다니며 플래터와 미세한 거리를 유지한다.
  • 데이터의 쓰기
    • 데이터를 디스크에 쓸 때 리드/라이트 헤드는 플래터 표면의 미세한 영역에 자기장을 생성하는데, 이 자기장은 플래터 표면의 방향을 바꾸어, 이진 데이터(0과 1)를 표현한다.
  • 데이터의 읽기
    • 데이터를 읽을 때 리드/라이트 헤드는 플래터 표면에서 자기장을 감지하는데, 이 자기장의 방향에 따라 0 또는 1의 이진 데이터를 읽어들인다.

< 단일 원판의 모습 >

< 다중 원판의 모습 >

  • 디스크 표면은 일정한 비율로 회전한다.
  • 읽기/쓰기 헤드는 팔의 끝 부분에 부착되어 있으며, 얇은 공기 쿠션 위에 디스크 표면 위를 날아간다.
  • 팔은 빠르게 이동하면서 읽기/쓰기 헤드를 모든 트랙 위에 놓을 수 있다.
  • 디스크는 데이터를 섹터 크기의 블록으로 읽고 기록하는데, 섹터에 접근하는 시간은 세 개의 주요 부분으로 이루어진다.
    • 탐색 시간
      • 리드/라이트 헤드가 디스크의 특정 트랙으로 이동하는데 걸리는 시간.
      • 헤드가 현재 위치에서 목표 트랙으로 이동하는데 얼마나 빠른지에 따라 결정된다.
    • 회전 지연 시간
      • 헤드가 원하는 섹터가 헤드 아래로 회전할 때까지 기다리는 시간.
      • 디스크의 회전 속도에 따라 결정되며, 일반적으로 평균 회전 지연 시간은 디스크의 회전 속도의 절반으로 계산된다.
    • 전송 시간
      • 실제로 데이터가 헤드를 통해 메모리로 이동하는데 걸리는 시간
      • 읽거나 쓸 데이터의 양과 디스크의 데이터 전송 속도에 따라 결정된다.

논리적 디스크 블록

  • 논리 블록 주소(Logical Block Addressing, LBA)라고도 불리며 컴퓨터 저장장치에서 데이터 블록을 참조하는 메소드이다.
  • CHS(Cylinder-Head-Sector) 주소 체계는 물리적 디스크 구조에 직접 매핑되지만, LBA는 물리적 세부 정보를 추상화한다. 대신 논리적 블록 번호만을 사용해 저장장치의 각 섹터를 일련의 연속적인 번호로 참조한다.
    • CHS
      • 디스크 드라이브에 저장된 데이터의 위치를 참조하는데 사용되는 물리적 주소 체계이다.
      • 실린더 번호, 헤드 번호, 섹터 번호의 세 가지 값으로 고유하게 식별될 수 있다.
        • ex) CHS(10, 2, 50) → 10번 째 실린더, 2번 째 헤드, 50번 째 섹터
      • 구조
        • Cylinder(실린더) : 여러 개의 플래터가 쌓여 형성되는 구조. 같은 반경에 위치한 트랙들이 하나의 실린더를 형성한다.
        • Head(헤드) : 헤드는 플래터의 각 면에 위치한 데이터를 읽고 쓰는 장치이다. 각 플래터 면마다 헤드가 하나씩 있다.
        • Sector(섹터) : 트랙을 일정한 크기로 나눈 영역으로, 디스크의 가장 작은 데이터 단위이다. 한 섹터는 일반적으로 512바이트 또는 4킬로 바이트의 데이터를 저장할 수 있다.

입출력 장치 연결

  • 그래픽 카드, 모니터, 마우스 등의 입출력 장치(I/O)들은 입출력 버스로 CPU와 메인 메모리에 연결된다.
    • 직접 메모리 접근(Direct Memory Access, DMA)
      • 입출력 장치가 시스템 메모리에 직접 접근할 수 있게 하며, CPU의 부하를 줄이고 데이터 전송 속도를 높일 수 있다.
      • 하드 디스크나 그래픽 카드 등이 이 방식을 사용
    • 폴링(Polling)
      • CPU는 주기적으로 입출력 장치의 상태를 확인(폴링)하여 데이터를 전송할 준비가 되었는지 확인한다.
      • 이 방식은 간단하지만, CPU의 계산 자원을 많이 사용하므로 효율적이지 않을 수 있다.
    • 인터럽트(Interrupt)
      • 입출력 장치는 데이터를 전송할 준비가 되면 CPU에 인터럽트 신호를 보낸다. CPU는 이 신호를 받으면 현재 작업을 일시 중단하고 입출력 작업을 처리한다.
      • 이 방식은 CPU 자원을 효율적으로 사용할 수 있지만, 너무 많은 인터럽트가 CPU의 성능을 저하시킬 수 있다.
    • 포트 매핑(Port-Mapped I/O)
      • 입출력 장치를 메모리의 일부분으로 취급하여, 메모리 주소를 통해 장치에 접근한다.
      • 이 방식은 주로 저수준 프로그래밍에서 사용되며, 입출력 장치의 통제를 더욱 유연하게 할 수 있다.
  • 이외에도 USB, HDMI 등의 표준화된 물리적 연결 방식이 존재한다.

학습 시간 : 10 ~ 25시

728x90