컴퓨터구조+운영체제

메모리의 주소, 캐시 메모리

chojdsj 2023. 12. 1. 12:14
728x90

 

 

 

물리주소와 논리주소

 

 

- 메모리가 사용하는 물리주소는 말 그대로 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.

 

- CPU와 실행중인 프로그램이 사용하는 논리주소는 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.

 

 

 

- CPU가 이해하는 주소가 논리 주소라고는 해도 메모리와 상호작용하려면 논리주소와 물리주소 간의 변환이 이루어져야 한다.

 

- 논리주소와 물리주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리장치(MMU)라는 하드웨어에 의해 수행된다.

 

- MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.

 

 

 

 

 

- 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하고, 논리주소는 프로그램의 사작점으로부터 떨어진 거리인 셈이다.

 

 

 

 

 

 

* 한계 레지스터

 

 

- 베이스 레지스터가 실행중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터논리 주소의 최대 크기를 저장한다.

 

- 즉, 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이서 레지스터 값 + 한계 레지스터 값 미만이 된다.

 

- CPU가 접근하려는 논리 주소한계 레지스터가 저장한 값보다 커서는 안된다. 한계 레지스터보다 높은 주소값에 접근하는 것은 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것이기 때문이다.

 

 

-> 베이스 레지스터에 1500, 한계 레지스터에 1000이 저장되어 있다.

 

-> 1500 ~ 2500번지까지가 프로그램B의 물리 주소 범위이기 때문에 위의 결과는 실행될 수 없다.

 

 

- CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다. 만약 한계 레지스터 보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)를 발생시켜 실행을 중단한다.

 

 

 

 

 

 

 

 

캐시 메모리

 

 

 

- 캐시 메모리는 CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치이다.

 

- CPU가 매번 메모리에 왔다갔다 하는 건 시간이 오래걸리기 때문에, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용하는 것이다.

 

 

 

 

-> 데이터의 접근 시간을 줄일 수 있다.

 

 

 

 

- 코어와 가장 가까운 캐시 메모리를 L1캐시, 그 다음 가까운 캐시 메모리를 L2, L3캐시 라고 부른다.

 

 

 

-> 멀티 코어 프로세서에서 L1-L2-L3 캐시는 일반적으로 다음과 같이 구현된다.

 

-> L1 캐시와 L2 캐시는 코어마다 고유한 캐시 메모리로 할당되고, L3 캐시는 여러 코어가 공유하는 형태로 사용된다.

 

 

- 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다. 이 때 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에 활용될 경우를 캐시 히트라고 한다.

-> 일반적인 컴퓨터의 캐시 적중률은 85~95% 이상이라고 한다.

 

- 반대로 예측이 틀리는 경우를 캐시 미스라고 한다.

 

 

 

 

 

 

 

'컴퓨터구조+운영체제' 카테고리의 다른 글

RAID의 정의와 종류  (2) 2023.12.05
보조기억장치  (1) 2023.12.05
RAM의 특징과 종류  (1) 2023.12.01
CISC와 RI  (0) 2023.11.29
명령어 병렬 처리 기법  (0) 2023.11.29