지역성: 프로그램은 최근에 사용한 주소와 같거나 비슷한 데이터나 명령어를 사용하려는 경향
- 시간 지역성: 최근에 참조된 데이터는 가까운 미래에 다시 참조될 가능성이 높다
- 공간 지역성: 어떤 메모리 위치에서 참조된다면 그 주변 메모리를 참조할 가능성이 높다
예)2x2 int 배열 arr가 있을 때,
이때 sum1은 순차적으로 메모리를 참조 (arr+4*i+j에서 j가 더 자주 바뀜)int sum1(*arr){ //행 우선 int i, j; int sum = 0; for (i=0; i<2;i++){ for (j=0;j<2;j++) sum += arr[i][j]; } int sum2(*arr){ //열 우선 int i, j; int sum = 0; for (j=0; j<2;j++){ for (i=0;i<2;i++) sum += arr[i][j]; } }
sum2는 왔다갔다 메모리 참조 (arr+4i+j에서 i가 더 자주 바뀜)
따라서 지역성이 좋은 것은 sum1이고, 실제로 성능도 sum1이 더 좋다.
(컴퓨터 구조 7 참고)
캐시 메모리: 주기억장치보다 빠르게 엑세스 할 수 있는 저장 장치(더 작고 더 빠르고 더 비싸다)
미리 주기억장치에서 쓸만한 데이터들을 읽고 저장해놓음
SRAM기반 저장장치이다
L1, L2, L3 등 보통 한 CPU에 여러개의 캐시가 있다 (그 중 L1이 제일 빠름)
캐시 메모리의 동작: 지역성에 따라 CPU가 쓸만한 것들을 주기억장치에서 찾아와 저장해놓고
- 만약 CPU가 요청하는 것이 캐시에 있다면?(hit): CPU에게 바로 준다.
- CPU가 요청하는 것이 캐시에 없다면?(miss): 얼른 요청하는 데이터를 메인 메모리에서 캐시로, 다시 캐시에서 CPU로 데이터 전달
- 캐시 miss의 종류
- cold 미스/compulsory 미스: 캐시가 비어있음
- 충돌 미스: 한 캣에 여러개의 데이터가 들어있음 (충돌해서 이전 데이터 덮어써짐)
- 용량 미스: 프로그램에 필요한 데이터가 캐시 용량보다 큼
- 캐시 miss의 종류
728x90
반응형
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조](20)[링킹] (0) | 2025.02.14 |
---|---|
[컴퓨터 구조](19)[캐시 구조 & 원리] (0) | 2025.02.13 |
[컴퓨터 구조](17)[버퍼 오버플로우] (0) | 2025.01.31 |
[컴퓨터 구조 번외](2)[어셈블리 문제 풀어보기 2] (0) | 2025.01.30 |
[컴퓨터 구조 번외](1)[어셈블리 문제 풀어보기 1] (0) | 2025.01.29 |