📢 본 글은 혼공학습단 미션과 함께 정리해보는 글 입니다.
메모리 중 RAM을 더 깊게 보면 다음과 같다.
휘발성 저장 장치
: 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아감일정 주기로 데이터를 재활성화
(다시 저장)해야 한다.대용량 설계에 용이
하다.캐시 메모리
에서 사용된다. 캐시 메모리는 속도가 중요하기 때문
이다.주소에는 논리 주소
와 물리 주소
가 있다.
CPU와 현재 실행 중인 프로그램은 현재 메모리의 특정 번지에 무엇이 저장되어 있는지 알지 못한다. 메모리에 저장된 정보는 시시각각 달라지기 때문이다.
메모리 입장에서 바라본 주소
를 뜻한다.하드웨어상의 주소
이다.프로그램 입장에서 바라본 주소
를 뜻한다.메모리 관리 장치 (MMU, Memory Management Unit)
라는 하드웨어에 의해 수행된다.논리 주소와 베이스 레지스터 값을 더하는 방식
으로 논리 주소를 물리 주소로 변환해준다.베이스 레지스터
에는 프로그램의 물리 주소상의 시작 주소
가 담긴다.논리 주소
는 실제로 저장되어있는 프로그램의 시작점으로부터 얼마나 떨어져있느냐
를 뜻한다.다른 프로그램의 주소에 접근하는 명령어와 같은 것들은 제한
될 필요가 있다. 프로그램의 논리 주소 영역을 벗어났기 때문이다.
이와 같이 논리 주소 범위를 벗어나는 명령어 실행을 방지
하면서 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 하는 것
으로는 한계 레지스터 (limit register)
가 쓰인다.
즉 프로그램의 물리 주소 범위는 베이스 레지스터 ≤ < 베이스 레지스터 + 한계 레지스터가 된다.
만약 범위를 벗어난다면 인터럽트를 발생
시켜 실행을 중단시킨다.
CPU의 메모리 접근 시간은 연산 속도보다 느리다. 이 문제를 개선할 때 쓰이는 장치가 캐시 메모리이다.
저장 장치의 특징
이를 구분하기 위해 CPU에 얼마나 가까운지를 기준으로 저장 장치들을 구분한 것
을 저장 장치 계층 구조
라고 한다.
지금까지 배운 것으로는 레지스터, 메모리, 보조기억장치 순으로 속도가 빠르며, 용량이 작고, 가격이 비싸다.
위의 순서에 따르면, CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 느리다.
그런데 메모리는 현재 실행 중인 프로그램의 데이터들이 저장되어 있는 곳이기 때문에 CPU가 자주 접근할 수 밖에 없다. 이때 부족한 속도를 극복시켜줄 때 캐시 메모리를 쓸 수 있다.
레지스터보다 용량이 크고 메모리보다 빠른
특징을 가지고 있다. SRAM 기반의 저장 장치이다.
캐시 메모리는 레지스터와 메모리 사이 계층에 존재한다. 캐시 메모리 또한 계층적으로 구성할 수 있다.
멀티 코어 프로세서에서 L1 캐시와 L2 캐시는 코어마다 고유하게 할당 (즉, 각 코어마다 L1 캐시와 L2 캐시의 내용은 서로 다를 수 있다. 그래서 이들의 싱크를 맞춰주는 것이 필요하다.)되고, L3 캐시는 여러 코어가 공유하는 형태로 사용된다.
분리형 캐시
L1 캐시에서는 접근 속도를 최대한 빠르게 만들기 위해 명령어만을 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시로 분리하는 경우가 있는데, 이를 분리형 캐시라고 한다.
캐시의 목적을 다시 보자.
캐시는 CPU가 메모리에 접근하는 횟수를 줄이기 위해 등장했다.
그렇다면 캐시에는 CPU가 자주 사용할법한 내용을 담아두어야 CPU가 실제 메모리에 접근하는 횟수를 줄일 수 있을 것이다.
이처럼 캐시 메모리가 담아둔 내용이 실제로 CPU가 찾고자 했던 내용일 경우 캐시 히트
라고 한다. 실패했다면 캐시 미스
라고 한다.
캐시 적중률은 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
로 계산한다.
이 캐시 적중률을 높이기 위해서는 메모리로부터 잘 가져와야 하는데, 이때 사용하는 원리가 참조 지역성의 원리
이다.
프로그래밍을 할 때 변수에 값을 담아두면 해당 변수는 다시 활용할 가능성이 높다. 이러한 경우를 뜻한다.
이는 공간 지역성
이라고 하기도 한다.
CPU가 실행하려는 프로그램은 관련된 데이터들이 한데 모인 경우가 많다.
따라서 CPU는 최근에 접근했던 공간과 그 근처를 다시 쓸 확률이 높다.
SRAM
이다.DRAM
이다.DRAM
이다.SRAM
이다.레지스터
- 캐시 메모리
- 메모리
- 보조기억장치
순서이다.부족하거나 보완할 점이 있다면 댓글 부탁드립니다 😃