본문 바로가기

CS/혼자 공부하는 컴퓨터구조와 운영체제

06 - 메모리와 캐시 메모리

주기억장치에 RAM과 ROM 있다고 했는데, 여기서는 RAM 에 대해 먼저 정리한다

그리고 캐시 메모리에 대해 정리한다.

 

06 - 1 RAM의 특징과 종류

RAM의 특징

 

RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다. RAM은 전원을 끄면 저장된 데이터와 명려어가 모두 날아간다. 그래서 휘발성 저장 장치라고 한다.

전원이 꺼져도 유지되는 저장 장치는 비휘발성 저장 장치라고 한다. HDD, SSD, CO-ROM, USB 등이 있다.

일반적으로 보조기억장치인 비휘할성 저장 장치에 보관을 하고 휘발성 장치에서 실행할 대상을 복사하여 저장한 뒤 그 데이터들을 가지고 프로그램을 실행한다.

RAM의 용량과 성능

RAM의 용량이 크면 저장할 수 있는 실행할 프로그램들의 데이터들이 많아 지기 때문에 그만큼 RAM이 보조기억장치에게 데이터를 복사하는 횟수가 줄어들어 성능이 좋아진다. 그렇다고 RAM 용량을 계속 늘린다고 성능이 비례 증가하는 것은 아니다. 데이터를 다 가져와도 그것을 적절하게 빠르게 처리 못하면 소용 없는 것이다.

RAM의 종류

  1. DRAM
  2. SRAM
  3. SDRAM
  4. DR SDRAM

DRAM - Dynamic RAM. 저장된 데이터가 동적으로 변하는 RAM 이다. DRAM은 시간이 지나면 데이터가 점차 사라진다. 그래서 일정 주기로 데이터를 재활성화 한다. 소비 전력이 낮고, 저렴하고, 집적도가 높아서 대용량으로 설계하기 용이하다.

SRAM - Static RAM. 저장된 데이터가 변하지 않는 RAM이다. 그래서 재활성화 안한다. DRAM 보다 빠르다.

SRAM은 비싸고 전력도 크게 들어 대용량으로 만들지 않는다. 대신 속도가 빨라야하는 저장 장치인 캐시 메모리에 사용된다.

 

DRAM SRAM

재충전 필요 필요 없
속도 느림 빠름
가격 저렴 비쌈
집적도 높음 낮음
전력 적음 높음
용도 RAM 캐시 메모리

 

SRAM - Synchronos Dynamic은 클럭 신호와 동기화된, 발전된 DRAM 이다. 클럭 타이밍에 맞춰 CPU 와 정보를 주고 받을 수 있다. 클럭에 맞춰 동작.

 

DDR SDRAM - 최근 가장 많이 사용하는 RAM. 대역폭을 넓힌 RAM이다. 대역폭은 자동차 도로와 비슷하다. DDR은 SDRAM 보다 너비가 2배인 도로다. 즉, 한 클럭에 한 번씩 CPU와 데이터를 주고 받을 수 있는 SDRAM에 비해 DDR SDRAM은 두 번씩 CPU와 데이터를 주고 받을 수 있다.

DDR2 는 DDR 의 2배. DDR3 는 DDR2 의 2배이다.

 

06 - 2 메모리의 주소 공간

 

주소에는 논리 주소와 물리 주소가 있다. 물리 주소는 메모리, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소다.

물리, 논리 주소

논리 주소는 실행 중인 프로그램이 각각에게 부여된 0번지부터 시작되는 주소이다.

메모리에 저장되는 데이터의 위치는 한 번씩 재활성화되면서 계속 바뀌기 때문에 처음 번지수를 0번지로하여 논리 주소에 저장해야 물리 주소로 변환시 쉽다.

 

이제 논리 >> 물리 로 주소 변환에 대해 알아보면 이것은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행된다.

 

MMU 는 CPU가 발생시킨 논리 주소와 베이스 레지스터 값을 더해서 논리 >> 물리 주소변환을 일으킨다. 이때, 베이스 레지스터에는 실행할 프로그램의 물리 시작 주소를 가지고 있는다. 따라서, 베이스 레지스터에 1000번지와 CPU의 120번째 논리 주소를 더하면 1120번째에 물리 주소에 접근할 수 있는 것이다

메모리 보호 기법

물리 주소에 어떤 프로그램이 지정된 영역에 저장되어 있을 때 만약 CPU가 해당 번지를 뛰어 넘어 저장하라는 명령을 하면 어떻게 될까? 가령 0에서 100번지에 1프로그램이 실행되는데 CPU는 논리 주소 150번지에 저장하라고 하면 0 + 150 해서 150 물리 주소에 접근하는 불상사가 생긴다. 이를 보호하기 위해 한계 레지스터가 존재한다.

 

한계 레지스터 - 한 프로그램의 논리 주소의 최대 크기를 저장한다. 그래서 프로그램의 물리 주소 범위는 베이스 레지스터 값 ~ 베이스 레지스터 값 + 한계 레지스터 값 사이이다.

만약 이 범위를 넘어서 다른 주소를 침범하면 인터럽트가 발생한다.

 

06 - 3 캐시 메모리

 

CPU 는 프로그램을 실행하면서 메모리에 저장된 데이터를 빈번히 사용한다. 근데 CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느려서 효율이 안좋다. 이를 극복하기 위한 것이 캐시 메모리 이다.

저장 장치 계층 구조

  1. CPU와 가까운 장치는 빠르고, 멀리 있으면 느리다.
  2. 속도가 빠른 저장 장치는 저장 용량이 적고, 비싸다

CPU 에 얼마나 가까운가를 계층으로 나타낸 것이 저장 장치 계층 구조이다.

위에 있을 수록 속도 빠르고 용량이 적고 비싸다.

 

캐시 메모리

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

CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생.

보통 코어 내에 L1, L2 캐시 메모리 그리고 코어 외부에 L3 캐시 메모리가 있다. 용량은 L3가 가장 크고 속도는 L1 가장 빠르고 가격은 L1이 제일 비싸다. CPU는 우선적으로 L1에 필요한 데이터가 있는지 확인한다. 그 뒤로 점차 뒤쪽으로 가면서 데이터 찾는다.

참조 지역성 원리

캐시 메모리는 CPU가 활용할 데이터를 예측해서 메모리에서 데이터를 가져와 저장한다. 이때, CPU가 활용될 데이터를 맞추는 것을 캐시 적중이라고 한다. 못맞추고 메모리에서 가져오면 캐시 미스라고 한다.

캐시 적중률 : 캐시 적중 / (캐시 적중 + 캐시 미스)

보통 캐시 적중률은 85 ~ 95 % 이상이다.

이때 어떤 기준으로 데이터를 예측할까? 참조 지역성 원리를 바탕으로 데이터를 예측한다.

참조 지역성 원리

  1. CPU는 최근에 접근한 메모리 공간에 다시 접근하려는 경향이 있다. - 시간 지역성
  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. - 공간 지역성

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'CS > 혼자 공부하는 컴퓨터구조와 운영체제' 카테고리의 다른 글

07 - 보조기억장치  (0) 2024.06.01
05 - CPU의 성능 향상 기법  (0) 2024.06.01
04 - CPU의 작동 원리  (1) 2024.05.30
03 - 2 명령어 2  (1) 2024.02.14
03 - 1 명령어  (0) 2024.02.14