본문 바로가기
컴퓨터구조

[혼자 공부하는 컴퓨터구조] 06. 메모리와 캐시 메모리

by Lizardee 2023. 7. 29.

※ 주기억장치(main memory)

  • RAM = '메모리'
  • ROM

 

06-1. RAM의 특징과 종류

▷ RAM의 특징

  • RAM: 휘발성 저장 장치(volatile memory)
  • 보조기억장치: 비휘발성 저장 장치(non-volatile memory)

 

▷ RAM의 용량과 성능

: CPU <--> RAM <--> 보조기억장치

 

▷ RAM의 종류

  • DRAM(Dynamic RAM): 시간이 지나면 저장된 데이터가 점차 사라지는 RAM --> 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장) 해야 한다.
  • SRAM(Static RAM): 저장된 데이터가 변하지 않는 RAM, DRAM보다 일반적으로 속도가 더 빠르다.
  • SDRAM(Synchronous DRAM): 클럭 신호와 동기화된 DRAM, 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있다.
  • DDR SDRAM(Double Data Rate SDRAM): 대역폭을 넓혀 속도를 빠르게 만든 DRAM, 데이터 전송 속도가 빠르다.

 


06-2. 메모리의 주소 공간
물리 주소와 논리 주소
  • 물리 주소(physical address): 말 그대로 정보다 실제로 저장된 하드웨어상의 주소
  • 논리 주소(logical address): 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

--> 프로그램마다 같은 논리 주소는 얼마든지 있을 수 있다.

 

▷ 논리 주소와 물리 주소 간의 변환: 메모리 관리 장치(MMU; Memory Management Unit)

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

  • 베이스 레지스터: 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 것
  • 논리 주소: 프로그램의 시작점으로부터 떨어진 거리

논리 주소 --> MMU(베이스 레지스터) --> 물리 주소

 

메모리 보호 기법

▶ 한계 레지스터(limit register)

: 논리 주소의 최대 크기를 저장한다.

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

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

 


06-3. 캐시 메모리
저장 장치 계층 구조(memory hierarchy)
  • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다. 
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

저장 장치 계층 구조(memory hierarchy)

 

▶ 캐시 메모리(cache memory)

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

--> CPU의 연산 속도와 메모리 접근 속도 차이를 줄이기 위한 목적이다.

  • L1 캐시
  • L2 캐시
  • L3 캐시

캐시 메모리(cache memory)

 

참조 지역성의 원리(locality of reference, principle of locality)
  • 캐시 히트(cache hit): 자주 사용될 것으로 예측하여 캐시 메모리에 저장해둔 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
  • 캐시 미스(cache miss): 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
  • 캐시 적중률(cache hit rate) = 캐시 히드 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

▶ 참조 지역성의 원리(locality of reference, principle of locality)

  • CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
  • CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. --> 공간 지역성(spatial locality)