⛳ 오늘은 메모리의 계층 중 주요한 메인 메모리, 캐시 메모리에 대해 알아보겠습니다.
CPU에서 어떤 작업을 처리하고자 한다.
가상주소에 있는 데이터를 메모리에 요청한다.
MMU(Memory Management Unit)이 가상주소를 물리주소로 번역한다.
물리주소를 캐시(or메인)메모리에 전달한다.
CPU에 전달된 명령을 처리한다.
메인 메모리는 CPU가 직접 접근할 수 있는 접근 장치로, 프로세스가 실행되려면 프로그램이 메모리에 올라와야 한다.
+) 🧐 가상주소 : 메모리 공간이 한정적이기 때문에, 사용자에게 더 많은 메모리를 제공하기 위해 도입. 따라서 프로세스의 크기가 실제 메모리 용량을 초과해도 실행 될 수 있음
프로세스는 독립적인 메모리 공간을 가져야 되고, 자신의 공간만 접근해야 함, 따라서 한 프로세스에게 합법적인 주소 영역을 설정하고, 잘못된 접근이 오면 trap을 발생시키며 보호함
주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치, CPU와 주기억장치 사이에 위치한 고속 버퍼 메모리
CPU에서 주소를 전달 → 캐시 기억장치에 명령이 존재하는지 확인
해당 명령어를 CPU로 전송 → 완료
명령어를 갖고 주기억장치로 접근 → 해당 명령어를 가진 데이터 인출 → 해당 명령어 데이터를 캐시에 저장 → 해당 명령어를 CPU로 전송 → 완료
(캐시에 많이 활용되는 쓸모 있는 정보가 들어있어야 성능이 높아짐)
: 적중률을 극대화시키기 위해 사용
+) 🧐 지역성 : 기억 장치 내의 정보를 균일하게 액세스 하는 것이 아니라 한 순간에 특정부분을 집중적으로 참조하는 특성
시간 지역성 : 최근에 참조된 주소의 내용은 곧 다음에도 참조되는 특성
공간 지역성 : 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성
목적 데이터를 바로 접근하여 출력할 수 있어야 캐시가 의미가 있기때문에, 특정 자료구조를 사용하여 묶음으로 저장
즉, 캐시 메모리의 매핑 프로세스라고 말할 수 있음
메모리 주소와 캐시의 순서를 일치 시켜 지정된 캐시 라인으로만 사상하는 방식으로
하지만 특정메모리 위치의 값을 자주 불러다 사용한다면 저장할 캐시 공간은 1개이므로 매번 캐시 교체가 일어남
즉 적중률과 성능이 낮지만 구현이 간단하고 쉬운 방법
순서를 일치시키지 않고 필요한 메모리 값을 캐시의 어디든 편하게 저장한다
찾는 과정은 복잡하고 느리지만 필요한 캐시 위주로 저장하기에 적중률은 높다.
연관매핑과 직접매핑을 합쳐놓은 방식.
순서를 일치시키면서 일정 그룹을 두지만, 그 그룹내에서는 편하게 저장하는 방식이다.
블록화가 되어있어 검색에 조금더 효율적이며 적중률이 많이 떨어지지도 않는다.