-
(2) 캐시 메모리CS 지식/○ CA(Computer Architecture) 2021. 6. 7. 00:12
1. 캐시 메모리란?
1-1) 정의
속도가 빠른 장치와 느린 장치 사이에서의 병목현상을 줄이기 위한 메모리(방식)를 지칭
ex1) CPU 코어와 메모리 사이의 병목현상 완화
ex2) 웹 브라우저 캐시파일 - 하드디스크와 웹페이지 사이의 병목현상 완화1-2) 동작 원리
자주 사용하는 데이터를 캐시 메모리에 저장하고, 다음 사용시 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도 향상
1-3) CPU의 캐시 메모리
1) 보통 2~3개의 캐시 메모리가 사용된다
(L1, L2, L3 캐시 메모리라고 부름)
2) L1 캐시가 먼저 사용되고, 가장 빠른 순서로 L1 ~ L3까지 사용되며
L1에서 데이터를 찾지 못하면 L2, L3 차순으로 넘어감
1-4) 듀얼 코어 캐시 메모리
1) 각 코어마다 독립 L1 캐시 메모리가 있음
2) 코어들이 공유하는 L2 캐시 메모리가 내장된 점이 다름
> L1 캐시가 128kb일 시, 64/64kb로 나뉘어 각각 처리전-명령어/처리후-명령어 를 담음
(I-Cache / D-Cache)
1-5) L 캐시들의 위치
- L1 : CPU 내부에 존재
- L2 : CPU / RAM 주메모리 사이 존재
- L3 : 메인보드에 촌재
1-6) 디스크 캐시
주기억장치RAM 과 보조기억장치(SSD, HDD) 사이에 존재하는 캐시
2. 캐시 메모리 작동 원리
2-1) 시간 지역성
for / while 같은 반복문에 사용하는 조건 변수처럼 한번 참조된 데이터는 잠시 후 또 참조될 가능성이 높음
2-2) 공간 지역성
A[0], A[1] 과 같은 데이터 접근시 인접 데이터가 사용될 가능성이 높음
> 참조지역성(시간 + 공간 지역성) 최대한 활용하기 위함
요청 데이터가 CPU L캐시에 있음 : Cache Hit
위의 데이터가 L캐시에 없음 : Cache Miss
3. 캐시 미스 3가지
※ 타입 설명
1) Conflict miss : 주소 할당 문제
2) Capcity miss : 공간 부족 문제
3-1) Cold miss
해당 메모리 주소를 처음 access 해서 나는 미스
3-2) Conflict miss
A, B 데이터 두개를 캐시에 저장하려할 때, 같은 캐시 메모리 주소에 할당되어서 나는 미스
3-3) Capacity miss
캐시 메모리의 공간이 부족해서 나는 미스
> 위 문제들을 해결하기 위해
캐시의 크기를 키워서 문제를 해결하려 하면, 캐시 접근속도가 느려지고 파워를 많이 먹는 단점 존재
4. 구조 및 작동 방식
4-1) Direct Mapped Cache
가장 기본적인 구조
1) Dram의 여러 주소가 캐시매모리한 주소에 대응되는 다대일 방식
2) 방식
메모리 공간 : 32개(00000~11111)
캐시 메모리 공간 : 8개(000~111)인 상황
메모리의 2~0 index는 "인덱스 필드"로 캐시메모리 주소를 mapping 하고
나머지 4~3 자리수는 "태그 필드"로 활용
그 외의 자리수는 데이터 필드> 간단하고 빠르지만 Conflict miss가 발생하는 것이 단점
위 경우에는 문제가 같은 색의 데이터를 동시에 사용해야할 때 발생4-2) Fully Associative Cache
비어있는 캐시 메모리에 주소를 저장하는 방식
> 저장은 간단하나 찾을 때 문제
> CAM이라는 특수 메모리 사용해야 하여 가격이 비쌈4-3) Set Associative Cache
4-1) 4-2)에 설명된 Fully + Direct 방식을 혼합
> L 캐시들의 특정 행을 지정하고, 그 행의 어떤 열이 비어있으면 바로 저장하는 방식
> Direct에 비해 검색속도는 느리지만, 저장 에러가 감소하고, Fully에 비해 저장이 느린 대신 검색은 좀더 개선된 중간형
참조
반응형'CS 지식 > ○ CA(Computer Architecture)' 카테고리의 다른 글
(5) 패리티 비트 & 해밍 코드 (0) 2021.06.09 (4) 고정 소수점 & 부동 소수점 (0) 2021.06.09 (3) 중앙처리장치 작동 원리 (0) 2021.06.08 (1) 컴퓨터의 구성 (1) 2021.06.02