본문 바로가기

University Classes/Operating System

캐쉬(cache)

    캐쉬(cache)?


프로그램이 수행될 때 나타나는 지역성을 이용하여 메모리나 디스크에서 사용되었던 내용을 특별히 빠르게 

접근할 수 있는 곳에 보관하고 관리함으로써 이 내용을 다시 필요로 할 때 보다 빠르게 참조하도록 하는 제어장치

l  지역성 - 프로그램의 실행 패턴이 참조되었던 근처의 메모리를 다시 참조하는 특성

 

하드웨어적인 캐쉬

à CPU와 메인 메모리 사이에 빠른 캐시 메모리가 있는 경우

속도가 빠른 CPU가 속도가 느린 메인 메모리의 데이터에 접근 시 중간에  빠른 캐시 메모리를 두어 요청한 데이터를 보다 빠르게 돌려줄 수 있도록 하는 것.

 

 

 캐시의 성능

 

                         i.         작은 용량의 캐시 메모리에 CPU가 이후에 참조할 쓸모 있는 정보가 얼마나 있느냐에  의하여 좌우된다.

                       ii.         캐시히트(Cache Hit) :   CPU가 참조하고자 하는 메모리가 캐시에 존재하고 있을 경우.

캐시 히트 시 캐시의 데이터를 즉시 CPU에 돌려줌으로써 빠른 정보를 제공한다.

                      iii.         캐시 미스(Cache miss) : 캐시에 요청한 데이터가 없을 경우

캐시 미스 시 메인 메모리로부터 일정한 블록 사이즈의 데이터를 가져와서 캐시에 저장한 후 그 데이터에서 특정 워드 크기의 데이터만을 CPU에 전달하게 된다.

 

 

 블록의 사이즈가 클수록 캐시 히트율이 올라가는 사실을 보여주지만,

 블록의 크기가 커지면 이에 따른 전송 시의 부담과 캐시 데이터 교체 작업이

 자주 일어날 수 있다는 부담이 증가하기 때문에 쉽게 그 수치를 늘릴 수 없다.