[전자계산기] 캐시 및 연관 기억 장치
캐시 기억 장치(Cache)
CPU와 주기억 장치의 속도 차이를 극복하기 위해 CPU와 주기억 장치 사이에 설치한 메모리
- CPU와 비슷한 액세스 속도를 가지고 가격이 비싸다
- 주기억 장치와 CPU 사이에서 일종의 버퍼 기능을 수행
- 기억 장치의 접근 시간을 줄이므로 컴퓨터의 처리 속도를 향상
- CPU에서 실행 중인 프로그램과 데이터를 기억
- 캐시 접근 시 충돌을 방지하기 위해 코드와 데이터를 분리해서 기억시키는 분리 캐시(Split Cache)를 사용한다
적중률(Ratio)
적중도 : $\frac{적중 횟수}{전체 접근 횟수}$
적중률(히트율) : $\frac{적중 횟수}{전체 접근 횟수} \times 100$
액세스 시간(Access Time)
평균 메모리 액세스 시간 = 히트 시간 + 미스도 + 미스 패널티
미스 패널티 : 캐시 미스가 발생했을 때 주기억 장치에서 데이터를 가져오기 위해 추가적으로 필요한 사이클 수를 의미
캐시 사상 방법
주기억 장치의 임의의 블록을 지정된 캐시 블록에 기억시키는 방법
- 직접 사상(Direct Mapping)
기억시킬 캐시 블록 결정 함수는 주기억 장치의 블록 번호를 캐시 전체의 블록 수로 나눈 나머지로 결정캐시 블록 번호 = 주기억 장치 블록 번호 MOD 캐시 전체의 블록 수
-
전체 연합 사상(Fully Associative Mapping)
주기억 장치 임의의 블록 하나를 캐시 전체 블록 중 아무 곳이나 하나를 정해서 기억시키는 방법메모리 워드의 번지와 함께 저장하는 방식으로 캐시 블록 모두 채워진 경우라면 보통 라운드 로빈 방식으로 메모리 워드 번지와 데이터를 교체한다
-
세트 연합 사상(Set Associative Mapping)
직접 사상과 전체 연합 사상 방식의 장점을 취한 방식캐시 블록을 몇 개의 블록으로 이루어진 세트 단위로 분리한 뒤 세트를 선택할 때는 직접 사상 방식을 따르고 세트 내에서 해당 블록을 지정할 때는 전체 연합 사상을 따르는 방식
Write Through
CPU가 데이터를 사용하면 캐시에 저장되게 되는데, 캐시와 주기억 장치를 동시에 갱신하는 방법
캐시와 메모리에 업데이트를 같이 하여 데이터 일관성을 유지할 수 있어 안정적이나 속도가 느린 주기억 장치 또는 보조기억장치에 데이터를 기록할 때 CPU가 대기하는 시간이 필요하기 때문에 성능이 낮아진다
주로 데이터 로스가 발생하면 안되는 상황에서 채택한다
Write Back
캐시의 내용에만 갱신이 일어나다가 해당 블록이 캐시에서 제거될 때 주기억 장치에 해당 블록을 복사해서 갱신하는 방법
Write Through 방식보다 속도가 빠르지만 캐시에 갱신하고 메모리에는 갱신하지 않기 때문에 캐시와 메모리가 서로 값이 다른 경우가 발생할 수 있다
빠른 서비스를 제공할 때 채택한다
참조의 국한성
주어진 시간 동안의 메모리 참조는 한정된 영역에서만 이루어지는 경향이 있다
-
시간 구역성(Temporal Locality)
최근에 참조된 기억 장소는 가까운 장래에도 계속 참조될 가능성이 높다서브루틴, Spool, 스택, 누산기, 집계 등
-
공간 구역성(Spatial Locality)
하나의 기억 장소가 참조되면 근처의 기억 장소가 참조될 가능성이 높다배열, 순차 명령어 실행 등
연관 기억 장치(Associative)
기억 장치 접근 시 주소에 의해 해당 위치에 접근하는 것이 아니라 찾고자 하는 내용 일부를 가지고 원하는 내용을 찾아 그 위치의 내용 모두를 제공하는 원리의 기억 장치로 내용 지정 메모리(CAM
, Content Addressable Memory)라고도 한다
- 기억된 정보의 내용에 따라 호출하는 기억 장치로 정보 검색에 유용
- 주소를 필요로 하지 않는다
- 병렬 판독 회로를 내장하고 있기 때문에 가격이 비싸다
- 작은 용량의 IC 메모리를 사용하며 캐시 메모리나 가상 메모리의 주소 탐색에 많이 이용
- 캐시 기억 장치보다 빠르다
구성 요소
-
검색 데이터 레지스터(Search Data Register)
찾고자 하는 내용의 일부분을 기억시키는 레지스터 -
마스크 레지스터(Mask Register)
검색 데이터 레지스터에 있는 데이터에서 검색에 필요 없는 부분을 마스크 비트로 세트(Set)시키는 역할을 하는 레지스터 -
일치 레지스터
검색하고자 하는 내용과 일치하는 단어를 포함하고 있는 내용이 있는 경우, 그것을 표시하는데 사용하는 레지스터
댓글남기기