일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬
- KRAFTON JUNGLE
- 오블완
- 다익스트라
- 연결리스트
- BFS
- 크래프톤정글
- 4기
- 네트워크
- 핀토스
- pintos
- 이벤트 함수 실행 순서
- kraftonjungle
- 알고리즘수업-너비우선탐색2
- 전쟁-전투
- 크래프톤 정글
- TiL
- project3
- 백준
- Unity
- 크래프톤정글4기
- c#
- 크래프톤 정글 4기
- C
- 추상클래스와인터페이스
- 유니티
- anonymous page
- 알고리즘
- User Stack
- 티스토리챌린지
Archives
- Today
- Total
말감로그
CSAPP 6장 HDD, SDD 본문
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 |
---|