혼자 공부하는 컴퓨터 구조 + 운영체제 Section 6. 메모리와 캐시 메모리

jihyelee·2023년 7월 31일
0

achitecture-os

목록 보기
6/15
post-custom-banner

강의 링크

RAM의 특징과 종류

  • 주기억장치에는 크게 RAM, ROM이 있으며 메모리는 그 중 RAM을 지칭하는 경우가 많음

RAM의 특징

  • RAM
    • 휘발성 저장장치
      • 전원이 꺼지면 저장된 데이터가 사라짐
    • 실행할 대상을 저장
  • 보조기억장치
    • 비휘발성 저장장치
    • 보관할 대상을 저장

RAM의 용량과 성능

  • 메모리가 크면 많은 프로그램들을 동시에 실행하는 데에 유리

RAM의 종류

  • DRAM (Dynamic RAM)
    • 저장된 데이터가 동적으로 사라지는 RAM
    • 데이터 소멸을 막기 위해 주기적으로 재활성화해야(refresh)
    • 일반적으로 메모리로 사용되는 RAM
      • 상대적으로 소비전력이 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이
  • SRAM (Static RAM)
    • 저장된 데이터가 정적인 (사라지지 않는) RAM
    • DRAM보다 일반적으로 더 빠름
    • 일반적으로 캐시 메모리에 사용되는 RAM
      • 상대적으로 소비전력이 높고 가격이 높고 집적도가 낮아 대용량으로 설계할 필요는 없으나 빨라야 하는 장치에 사용
  • SDRAM (Synchronous DRAM)
    • 특별한 (발전된 형태의) DRAM
    • 클럭 신호와 동기화된 DRAM
      • 데이터를 한 번에 하나씩 주고받을 수 있음 (클럭 신호에 맞춰)
  • DDR SDRAM (Double Data Rate SDRAM)
    • 특별한 (발전된 형태의) SDRAM
    • 최근 가장 대중적으로 사용하는 RAM
    • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
      • 대역폭은 데이터를 주고받는 길의 너비
      • 주고받을 수 있는 데이터의 양이 많아짐
    • DDR2 SDRAM: DDR보다 대역폭 2배 (SDRAM보다 대역폭 4배)
    • DDR3 (DDR2보다 대역폭 2배), DDR4, ...

메모리와 주소 공간

물리 주소와 논리 주소

  • CPU와 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못함
    • 메모리에 저장된 값들은 시시각각 변하기 때문
      - 새롭게 실행되는 프로그램은 새롭게 메모리에 적재
      - 실행이 끝난 프로그램은 메모리에서 삭제
      - 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐
  • 물리 주소
    • 메모리 입장에서 바라본 주소
    • 정보가 실제로 저장된 하드웨어 상의 주소
  • 논리 주소
    • CPU와 실행 중인 프로그램 입장에서 바라본 주소
    • 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소

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

  • MMU(메모리 관리 장치)라는 하드웨어에 의해 변환
    • 논리 주소와 베이스 레지스터(=프로그램의 기준 주소) 값을 더하여 논리 주소를 물리 주소로 변환
  • 베이스 레지스터
    • 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소)를 저장하는 셈
  • 논리 주소
    • 프로그램의 시작점으로부터 떨어진 거리인 셈

메모리 보호

  • 한계 레지스터
    • 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
    • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장
    • 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값
  • e.g. 베이스 레지스터에 100, 한계 레지스터에 150이 저장되어 있다면
    • 물리 주소 시작점이 100번지, 프로그램의 크기(논리 주소의 최대 크기)는 150
  • CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 됨
    • CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사
    • 실행 중인 프로그램의 독립적인 실행 공간을 확보 & 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호

캐시 메모리

  • CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느림

저장 장치 계층 구조

  • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈
  • 레지스터 vs. 메모리 (RAM) vs. USB 메모리

캐시 메모리

  • CPU(레지스터)와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
  • CPU의 연산 속도와 메모리 접근 속도 차이를 줄이기 위해 탄생
    • 메모리에서 CPU가 사용할 일부 데이터를 캐시 데이터로 가져와 사용
  • 계층적 캐시 메모리 (L1-L2-L3 캐시)
    • 일반적으로 L1 캐시와 L2 캐시는 코어(CPU) 내부에, L3 캐시는 코어 외부에 위치
    • 멀티코어 프로세서의 경우 코어마다 L1, L2 캐시를 두고 L3 캐시는 공유하는 형태가 많음
    • L1 캐시를 더욱 빠르게 사용하기 위해 분리형 캐시 사용하기도 함
      • e.g. 명령어만을 담고 있는 L1I, 데이터만을 담고 있는 L1D를 분리하는 등

참조 지역성의 원리

  • 캐시 메모리는 메모리 용량이 작기 때문에 메모리의 모든 내용을 저장할 수 없음
  • CPU가 자주 사용할 법한 내용을 예측하여 저장
  • 캐시 히트
    • 예측이 들어맞을 경우 (CPU가 캐시 메모리에 저장된 값을 활용)
  • 캐시 미스
    • 예측이 틀렸을 경우 (CPU가 메모리에 접근해야 하는 경우)
    • 성능 하락
  • 캐시 적중률
    • 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
    • 캐시 적중률을 높여야 함 (CPU가 사용할 데이터를 잘 예측해야 함)
  • 참조 지역성의 원리
    • CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
      1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있음
      1. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있음 (공간 지역성)
profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab
post-custom-banner

0개의 댓글