[혼공학습단 9기] 혼공컴운 3주차 챕터6 : 메모리와 캐시 메모리

낙원·2023년 1월 20일
0
post-thumbnail

🎀RAM의 특징과 종류

🧶RAM의 특징

  • 휘발성 저장 장치 : RAM
    전원을 끄면 저장된 내용이 사라지는 저장 장치

  • 비휘발성 저장 장치 : 메모리
    전원이 꺼져도 저장된 내용이 유지되는 저장 장치

🚀RAM의 용량과 성능

  • 용량이 충분히 크면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있다.
    -> 많은 프로그램을 동시에 실행하는 데 유리하다.

🚩RAM의 종류

DRAM (Dynamic RAM)

  • Dynamic = '동적의'
  • 저장된 - 데이터가 동적으로 사라지는 RAM
  • 데이터 소멸을 막기 위해 주기적으로 재활성화 해야한다.
  • 일반적으로 메모리에 사용된다.
    상대적으로 소비전력이 낮고, 저렴, 집적도가 높아 대용량으로 설계가 용이하기 때문이다.

SRAM (Static RAM)

  • Static = ‘정적의’
  • 저장된 데이터가 정적인(사라지지 않는)RAM
  • DRAM보다 일반적으로 빠르다.
  • 상대적으로 소비전력 높고, 비싸고, 집적도가 높아 캐시 메모리에 사용

SDRAM (Synchronous DRAM)

  • 클럭 신호와 동기화된, 발전된 형태의 DRAM

DDR SDRAM(Double Data Rate SDRAM)

  • 가장 흔히 사용되는 RAM
  • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
    • 대역폭 : 데이터를 주고받는 길의 너비
  • SDR SDRAM : 한 클럭당 하나의 데이터 주고받는 SDRAM
  • DDR2 SDRAM : DDR SDRAM 보다 대역폭이 두 배 넓은 SDRAM
  • DDR3 SDRAM : DDR2 SDRAM 보다 대역폭 두 배
  • DDR4 SDRAM : DDR3 SDRAM 보다 대역폭 두 배

⚡메모리와 주소 공간

🌈물리 주소와 논리 주소

  • CPU와 메모리에 저장되어 실행중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 알지 못한다.
    -> 메모리에 저장된 정보는 시시각각 변하기 때문

물리 주소

  • 메모리 입장에서 바라본 주소
  • 정보가 실제로 저장된 하드웨어상의 주소

논리 주소

  • CPU, 실행 중인 프로그램 입장에서 바라본 주소
  • 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소

논리 주소와 물리 주소의 변환

  • CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 필요
  • MMU(메모리 관리 장치)라는 하드웨어에 의해 변환
    논리 주소와 베이스 레지스터 값을 더해 논리 주소를 물리 주소로 변환
  • 베이스 레지스터
    프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장
  • 논리 주소
    프로그램의 시작점으로부터 떨어진 거리

📣메모리 보호 기법

위 예시처럼 명령어를 실행할 경우 영역을 벗어날 수 있다.

한계 레지스터

  • 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막는다.
  • 논리 주소의 최대 크기를 저장
  • 베이스 값 ≤ 프로그램 물리 주소 범위 < 베이스 + 한계 레지스터 값
  • CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다.
  • CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트를 발생시켜 실행을 중단한다.
  • 이러한 방식으로 실행 중인 프로그램의 독립적인 실행 공간을 확보하고 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호 가능

💰캐시 메모리

🧱저장 장치 계층 구조

  • CPU에 얼마나 가까운가를 기준으로 계층적으로 나타내는 것을 말한다.

  • 저장 장치는 2가지 명제를 따른다.
    1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
    2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

🎡캐시 메모리

  • CPU와 메모리 사이에 위치

  • 레지스터보다 용량 크고, 메모리보다 빠른 SRAM 기반의 저장 장치

  • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 탄생

  • 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 쓰는 방식

  • 캐시 메모리 들은 CPU와 가까운 순서대로 계층을 구성한다.
    가장 가까우면 L1, 그 다음이 L2….
    일반적으로 L1, L2는 CPU 내부에, L3는 외부에 위치한다.

  • 멀티코어 프로세서의 캐시 메모리
    L1, L2는 고유 캐시 메모리로 할당, L3는 공유하는 형태

  • 분리형 캐시
    L1의 속도를 빠르게 하기 위해 명령어, 데이터만을 저장하는 각각의 캐시로 분리하기도 한다.

  • 계층적 캐시 메모리까지 반영한 저장 장치 계층 구조

참조 지역성의 원리

  • 캐시 메모리는 메모리보다 용량이 작다.
    당연히 메모리의 모든 내용을 저장할 수 없다.
    → CPU가 사용할 법한 대상을 예측하여 저장한다.

  • 캐시 히트
    예측이 맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우

  • 캐시 미스
    예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

  • 캐시 적중률
    캐시가 히트되는 비율
    캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

  • 참조 지역성의 원리에 따라 메모리로부터 가져올 데이터를 결정한다.

참조 지역성의 원리란?

  • CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
    1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
    2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

  • 1번 원칙 : 시간 지역성
    위 코드에서 num, i라는 변수는 여러 번 사용된다.
  • 2번 원칙 : 공간 지역성
    하나의 프로그램 내에서도 관련있는 데이터들은 모여서 저장된다.

0개의 댓글