말감로그

CSAPP 6장 HDD, SDD 본문

이론/CASPP

CSAPP 6장 HDD, SDD

habbn 2024. 2. 15. 19:59
728x90

디스크

  • 데이터를 저장하고, 읽고, 쓰는 역할을 하는 컴퓨터의 주요 저장장치 중 하나이다.
  • 디스크들은 원판들로 구성되어있다. 각 원판들은 두 개의 옆면, 즉 표면으로 이루어져 있으며, 이들은 자성을 띤 기억 물질로 코팅되어 있다. 원판의 중심부에 있는 회전하는 축은 원판을 고정된 회전율로 돌려주며, 이 비율은 대개 분당 5,400번에서 15,000번 회전하는 비율을 갖는다.
  • 디스크의 용량은 보통 바이트 단위로 표현된다.  1GB = 10^9바이트 , 1TB = 10^12바이트.
  • 하드 디스크(HDD)와 솔리드 스테이트 드라이브(SSD), CD나 DVD와 같은 광디스크, 플로피 디스크와 같은 휴대용 디스크 등 다양한 종류의 디스크가 있다.

HDD

  • 금속 플래터에 자기를 이용해 데이터를 저장하고 읽어내는 장치이다.
  • 플래터가 회전하면서 자기 헤드는 플래터의 특정 위치 위로 이동하여 데이터를 읽거나 쓴다. 데이터는 이진수 형태로 저장되며, 자기 헤드는 이 이진수를 자기 신호로 변환하여 플래터에 기록하거나, 플래터에서 자기 신호를 읽어 이진수로 변환한다.
  • 이는 큰 용량의 데이터를 저장할 수 있지만, 물리적인 움직임에 의존하기 때문에 속도가 상대적으로 느리다.

SSD

  • 플래시 메모리라는 전자적인 방법을 사용해 데이터를 저장한다.
  • 이는 물리적인 움직임이 없기 때문에 하드 디스크보다 빠르다. 전기 신호를 이용해 데이터를 이진수 형태로 저장하며, 이진수는 전기 신호로 변환한다.
  • 비용이 더 비싸다.

 

HDD vs SDD

  • 속도  - SSD  (빠름)  > HDD (느림)  
  • 내구성 - SSD (강함) >HDD  (약함)
  • 소음과 열 - SSD (소음X, 덜 발열) > HDD (소음 ,열 발생)
  • 가격 - SSD (비쌈) > HDD (쌈)
  • 용량 - SSD (작음) < HDD (큼)

 

디스크 접근하기

  • 직접 메모리 접근(DMA)로 데이터 전송을 한다.

 

6.2 지역성

  • 잘 작성한 컴퓨터 프로그램은 좋은 지역성을 보여준다.
  • 시간 지역성 - 한 번 참조된 메모리 위치는 가까운 미래에 다시 여러 번 참조될 가능성이 높다.
  • 공간 지역성 - 어떤 메모리 위치가 일단 참조되면, 이 프로그램은 가까운 미래에 근처의 메모리 위치를 참조할 가능성이 높다. 
  • 동일한 변수들을 반복적으로 참조하는 프로그램은 좋은 시간 지역성을 누린다.
  • stride-k 참조 패턴을 갖는 프로그램에 대해서 stride가 적으면 적을수록 공간 지역성도 좋아진다. stride -1 참조 패턴을 갖는 프로그램들은 좋은 공간 지역성을 가진다. 메모리를 큰 stride로 뛰어다니는 프로그램들은 나쁜 공간 지역성을 갖는다.
  • 루프틑 인스트럭션 선입에 대해 좋은 시간 및 공간 지역성을 가진다. 루프 본체가 작으면 작을수록 루프 반복실행의 수는 더 커지고 지역성도 더 좋다.

 

stride-k 참조 패턴

  • 연속적인 매 k번째 원소를 방문하는 것을 말한다.
  • stride-1 참조 패턴은 순차 참조 패턴이라고 부른다.
  • stride가 증가하면 공간 지역성은 떨어진다.
int sumvec(int v[N])
{
    int sum = 0;
    
    for(int i = 0; i<N; i++)
    	sum += v[i];
    return sum;
}

위 코드는 좋은 지역성을 가진다.

1. 공간 지역성 - 연속적으로 위치한 배열 원소를 순차적으로 참조 -> stride-1 참조 패턴

2. 시간 지역성 - 똑같은 sum 변수를 순회마다 매번 참조

 

int sumarraycols(int a[M][N])
{
    int sum = 0;
    
    for(int j = 0; j< N; j++)
    	for(int i = 0; i <M ;i++)
    		sum += a[i][j];
    return sum;
}

위 코드는 나쁜 공간 지역성을 가진다.

-> 이차원 배열이 행 방향으로 순차적으로 저장되어 있는 것을 참조하지 않고, 열 방향으로 매 N번째 원소를 방문 -> stride-N 참조 패턴

 

6.3 캐시 메모리

 

1. 캐시 적중

찾으려는 데이터가 이미 캐시되어 있다면, 이 경우 캐시 적중이라고 한다.

 

2. 캐시 미스

찾으려는 데이터가 캐시되어 있지 않다면, 이 경우 캐시 미스라고 한다.

 

  • 이미 가득찬 상태라면 기존 블록에 덮어쓰기도 한다.
  • 이와 같이 기존 블록을 덮어쓰는 과정은 블록을 교체하거나 축출하는 것으로 알려져있다. 축출되는 블록은 때로는 희생블록이라고 한다. 어떤 블록을 교체할지에 관한 결정은 캐시의 교체 정책에 의해 정해진다.
728x90

'이론 > CASPP' 카테고리의 다른 글

CSAPP 6-1 RAM/ROM  (0) 2024.02.12