효율적 메모리 관리(Associative 메모리, Cache 메모리)
메모리 장치 : 자료(data)의 저장(store)과 접근(access)을 용이하게 하기위해 필요로 하는 장치
Associative 메모리
: 주소에 의해서만 접근하는 것만 아니라 내용에 의해 접근하는 메모리 장치를 이르는 용어
CPU는 필요한 자료를 얻기 위해 메모리 장치에 탐색을 해야하는데, 좀 더 효율적 탐색이 가능할 수 있는 저장 공간의 필요에 의해 만들어진 저장 형태 CAM (content addressable memory) 내용지정 메모리 라고 한다.
- 데이터의 내용으로 병렬 탐색하기에 적합한 구성
- 각 셀이 저장 능력 뿐 아니라 외부의 인자와 내용을 비교하기 위한 논리회로를 갖고 있기 때문에 RAM 보다 값이 비싸다
read process
write process
-참조의 국한성(locality of reference)
: 프로그램이 수행되는 동안 메모리 참조는 국한된 영역에서만 이루어지는 경향이 있음을 확인할 수 있다.
ex)
프로그램 루프와 서브루틴의 빈번한 활용
순차적 프로그램의 실행
데이터 메모리 참조에서도 동일한 경향이 있음을 확인 할 수 있다.
(테이블-룩업 절차, 공통 메모리와 배열 사용)
Cache 메모리 : 컴퓨터의 성능을 좌지우지하는 요소
(주기억장치와 CPU 사이에 위치, CPU와 비교하였을 때 속도는 1:1 비율(메인메모리(RAM)와 비교하였을 때 1/7)
: 참조의 국한성을 이용하여 속도는 빠르고 작은 메모리를 이용하여 프로그램 수행 시킬 경우 평균 메모리 접근 시간의 단축과 그에 따른 전체 프로그램 수행 시간의 절약을 담보 할 수 있다.
cache메모리의 동작과 성능
: CPU가 프로그램을 진행하면서 메모리에 접근할 필요가 있을 경우 첫번째로 Cache를 체크한다.
cache를 체크하여 워드(word)가 cache에서 발견되면 hit -> cache메모리에 있는 데이터를 읽는다.
발견되지 않으면 miss-> 주 기억장치에 접근한다. 그리고 이 워드를 포함한 블록(1~16)을 cache로 전송
hit ratio (성능을 높이려면 miss 를 줄이는 것이 중요하다, hit ratio를 높여야한다.)
cache 메모리의 매핑 프로세스
: 효율적 메모리 관리를 위하여 효과적으로 cache를 구성하는 방법이 중요(어떤것 삭제, 어떤것 추가 할 것인가)
방법들
- associative mapping(주소 뿐 아니라 내용으로 정보를 찾는 방법 CAM)
- direct mapping (sRAM에 하나의 공간에 하나의 데이터를 저장)
- Set-associative mapping (sRAM에 하나의 공간에 병렬로 여러개 씩 저장하는 것이 가능하도록 하는 방법 direct mapping 극복하기 위해)