컴퓨터 구조 &운영체제/컴퓨터구조 + 운영체제

메모리와 캐시 메모리

busy맨 2024. 2. 7. 14:22

1. RAM의 특징과 종류

1) RAM의 특징

  • RAM
    • 실행할 프로그램의 명령어와 데이터가 저장됨
    • 휘발성 장치로 전원을 종료하면 RAM에 저장된 명령어와 데이터가 삭제됨
      • 전원이 꺼져도 저장된 내용이 유지되는 장치는 비휘발성 장치로 ROM이나 보조기억장치가 해당
      • 비휘발성 저장 장치에는 보관할 대상을 저장
      • 휘발성 저장 장치에는 실행할 대상을 저장
      • CPU가 실행하려는 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행

 

2) RAM의 용량과 성능

  • RAM 용량이 적다면, 보조기억장치에 있는  실행하려는 프로그램을 RAM으로 복사하기까지 걸리는 시간이 길어짐

  • RAM의 용량이 크다면 많은 프로그램을 동시에 실행하는 데에 유리
  • RAM 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하다 일정 수준 이상부터는 비례하지 않음

3) RAM의 종류

  1. DRAM(Dynamic RAM)
    • 시간이 지나면 저장된 데이터가 사라지는 RAM
      • DRAM을 사용할 때는 데이터의 소멸을 막기 위해 일정 주기로 데이터를 다시 저장해야함
    • 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 대용량 설계가 용이하여 가장 많이 사용됨
  2. SRAM(Static RAM)
    • 시간이 지나면 점차 저장된 내용이 소실되는 DRAM과 달리 시간이 지나도 저장된 데이터가 사라지지 않음
    • 주기적으로 데이터를 저장할 필요 X
    • 일반적으로 SRAM은 DRAM보다 속도가 빠름
    • DRAM보다 집적도가 낮고, 소비전력도 크고, 가격도 더 비싸서 캐시 메모리에 사용됨
  3. SDRAM(Synchronous Dynamic RAM)
    • 클럭 신호와 동기화된 DRAM
      • DRAM의 발전된 형태
    • 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음
  4. DDR SDRAM(Double Data Rate SDRAM)
    • 최근에 가장 흔히 사용되는 RAM
    • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
      • SDRAM보다 대역폭이 2배 넓음
      • 전송속도가 SDRAM보다 두 배 가량 빠름

 

2. 메모리의 주소 공간

1) 물리 주소와 논리 주소

  • 물리 주소(physical address)
    • 정보가 실제로 저장된 메모리 하드웨어 상의 주소
    • 메모리가 사용
  • 논리 주소(logical address)
    • 실행 중인 프로그램에게 부여된 0번지부터 시작된는 주소
    • CPU와 실행 중인 프로그램이 사용
  • 프로그램의 물리 주소는 알 필요가 없음
    • 새로운 프로그램이 언제든지 적재되고, 실행되지 않는 프로그램은 메모리에서 사라지기 때문
  • CPU가 메모리와 상호작용하기 위해서는 논리 주소와 물리 주소 간의 변환이 이루어져야함
    • CPU와 메모리는 서로 이해 불가능한 주소 체계를 사용하기 때문
  • 논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치에 의해 수행
  • 메모리 관리 장치(MMU: Memory Management Unit)
    • 논리 주소에 베이스 레지스터 값 더하여 물리 주소로 변환
  • 베이스 레지스터
    • 프로그램의 가장 작은 물리 주소
    • 프로그램의 첫 물리 주소를 저장
  • 논리 주소는 프로그램의 시작점으로부터 떨어진 거리

3) 메모리 보호 기법

  • 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 검사함으로써 메모리 내의 프로그램을 보호
  • 한계 레지스터(limit register)
    • 실행 중인 프로그램 논리 주소의 최대 크기를 저장
  • 프로그램의 물리 주소 범위
    • 베이스 레지스터 값 이상
    • 베이스 레지스터 값 + 한계 레지스터 값 미만 

 

  • CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 클 수 없음
    • 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것이기 때문
  • 만약 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트를 발생시켜 실행을 중단함
  • 실행 중인 프로그램의 독립적인 실행 공간을 확보하고, 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호함

 

3. 캐시 메모리

1) 저장 장치 계층 구조

  • 저장 장치
    1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
    2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈
  • CPU와 얼마나 가까운가를 계층적으로 표현한 것이 저장 장치 계층 구조(memory hierarchy)
  • 저장 장치 계층 구조는 각기 다른 용량과 성능의 저장 장치들을 계층화하여 표현한 구조
    • 위로 올라갈 수록 CPU와 가깝고 용량은 작지만 빠른 저장 장치

2) 캐시 메모리

  • 캐시 메모리(cache memory)
    • CPU와 메모리 사이에 위치
    • 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
    • CPU 연산 속도와 메모리 접근 속도의 차이를 줄여줌
  • 캐시 메모리에 CPU가 필요로 하는 데이터가 있다면 필요한 데이터로의 접근 시간을 줄일 수 있음
    • 굳이 보조 저장 장치에 접근할 필요가 없기 때문
      캐시 메모리를 반영한 저장 장치 계층 구조
  • 캐시 메모리는 CPU(=코어)와 가까운 순서대로 계층을 구성

  • L1 캐시
    • 코어와 가장 가까운 캐시 메모리
  • L2 캐시
    • L1 캐시 다음으로 코어와 가까운 캐시 메모리
  • L3 캐시
    • L2 캐시 다음으로 코어와 가까운 캐시 메모리
  • 일반적으로 L1 캐시와 L2 캐시는 CPU 내부에, L3 캐시는 외부에 위치
  • 캐시 메모리 용량
    • L1 < L2 < L3
  • 속도
    • L3 < L2 < L1
  • 가격
    • L3 < L2 < L1
  • 데이터 검색
    • L1 -> L2 -> L3

3) 참조 지역성 원리

  • 캐시 메모리는 CPU가 사용할 법한 데이터를 예측하여 저장
  • 데이터는 참조 지역성의 원리에 따라 메모리로부터 가져올 데이터를 결정
  • 이때 자주 사용될 것으로 예측한 데이터가 실제로 CPU에서 활용될 경우 캐시 히트(cache hit)라고 함
    • 반대의 경우, 캐시 미스(cache miss)

  • 캐시 적중률(cache hit ratio)
    • 캐시가 히트되는 비율
    • 캐시 히트 횟수/(캐시 히트 횟수 + 캐시 미스 횟수)
  • 참조 지역성의 원리(locality of reference)
    1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향 -> 시간 지역성(temporal locality)
      • CPU는 최근에 접근했던 메모리 공간을 여러 번 다시 접근할 수 있음
    2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향 -> 공간 지역성(spatial locality)
      • 같은 프로그램은 메모리 내에 모여서 저장됨

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

운영체제  (0) 2024.02.15
입출력장치  (0) 2024.02.13
CPU 성능 향상 기법  (1) 2024.02.06
CPU의 작동 원리  (0) 2024.02.05
명령어  (0) 2024.02.02