minyule.log
로그인
minyule.log
로그인
캐시의 지역성
김민영
·
2023년 2월 16일
팔로우
0
운영체제
0
CS 스터디
목록 보기
30/32
캐시 메모리
주기억장치에서 자주 사용하는 프로그램과 데이터를 저장하여 속도를 빠르게 하는 메모리
주기억장치보다 크기가 작음
캐시기억장치와 주기억장치 사이에서 정보를 옮기는 것 : 사상(Mapping 매핑)
직접 매핑(Direct Mapping), 연관 매핑(Associate Mapping), 집합 연관 매핑(Set Associate Mapping)
속도가 빠른 장치와 느린 장치간 속도차에 의한 병목현상을 줄이기 위한 범용 메모리
CPU가 어떤 데이터를 원하는지 예측할 수 있어야 함
캐시메모리에 CPU가 이후에 참조할 유효한 정보가 어느 정도 있는지가 캐시 성능을 좌우
주기억장치와 CPU 사이에 위치
메모리 계층 구조에서 가장 빠른 소자. CPU 속도와 비슷
캐시메모리를 사용하면 주기억장치를 접근하는 횟수가 줄어들어 컴퓨터 처리속도 향상
수십 kB ~ 수백 kB
캐시의 지역성 Locality
캐시의 적중률 (Hit-rate) 를 극대화 == 캐시 효율적 동작
캐시에 저장할 데이터가 지역성 locality 를 가져야 함
지역성 : 데이터 접근이 시간적, 공간적으로 가깝게 일어나는 것.
데이터를 기억장치 내에서 균일하게 사용하는 것이 아닌, 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성
지역성의 종류
시간적 지역성
특정 데이터에 한 번 접근하면, 가까운 미래에 다시 접근할 가능성이 높음
메모리 상 같은 주소에 여러 차례 읽기 쓰기를 수행하면
비교적 작은 크기의 캐시를 사용해도 효율성 o
공간적 지역성
특정 데이터에 가까운 주소가 순서대로 접근된 경우
CPU 캐시나 디스크 캐시의 경우, 한 메모리 주소에 접근할 때, 해당 블록 전부를 캐시에 가져오게 됨.
메모리 주소를 오름차순 또는 내림차순으로 접근하면
캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시 효율성 o
매핑 프로세스
주기억장치로부터 캐시메모리로 데이터를 전송하는 방법
직접 매핑 direct mapping
주기억장치의 블록들이 지정된 한 개의 캐시라인으로만 사상될 수 있는 매핑 방법
간단, 구현 비용 적음. 적중률 낮아질 수 있음
메모리 주소를 인덱스로 관리.
같은 인덱스를 갖는 메모리가 인접하여 액세스하면 cache miss 발생가능
데이터 블록 크기만큼 캐시되지 않고, 주소 부분만을 인덱스로 사용하므로 캐시되지않은 인접 데이터로 cache miss 발생
어소시에이티브 매핑 associative mapping
직접 매핑 방식 단점 보완
모든 태그를 병렬로 검사. 복잡, 비용 높음.
비어있는 캐시메모리가 있으면 그냥 주소 저장.
DRAM 이 아닌 SRAM 사용
저장시는 알고리즘이 필요없지만, 찾을 때 문제.
조건이나 규칙이 없으니 특정 캐쉬 set 내 모든 블럭을 한 번에 찾아 원하는 데이터가 있는지를 검사해야 함.
CAM (Content Addressable Memory) 라는 특수 형태로 메모리 구조 사용
인덱스 대신 index + tag 조합으로 된 태그 부분으로 구성
세트-어소시에이티브 매핑 set-associative mapping
직접매핑과 연관매핑의 장점만을 취함.
여러 개의 direct mapped 방식으로 나누어 사용
본래 메모리 주소의 일부만을 이용하여 태그로 사용.
여러개의 direct mapped 방식에 multiplexer와 OR gate 조합
캐시라인
캐시에 데이터를 저장하는 자료구조 묶음.
주메모리를 읽어들이는 최소 단위
캐시 : memory address + status bit + data block
김민영
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=
팔로우
이전 포스트
동기와 비동기의 차이 + 블록과 논블록
다음 포스트
페이지 교체 알고리즘
0개의 댓글
댓글 작성