본문 바로가기

CS공부🖥️/운영체제

혼공 컴+운 chapter6. 메모리와 캐시 메모리

06-1. RAM의 특징과 종류

RAM의 특징

전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아간다. 

  • 휘발성 저장 장치 : RAM과 같이 전원을 끄면 저장된 내용이 사라지는 저장장치
  • 비휘발성 저장 장치 : 전원이 꺼져도 저장된 내용이 유지되는 저장 장치. ex) 하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조 기억 장치.

보조 기억 장치는 전원을 꺼도 내용을 유지하지만, CPU는 보조 기억장치에 직접 접근하지 못한다. 

-> 비휘발성 저장 장치에는 '보관할 대상'을 저장. 휘발성 저장 장치인 RAM에는 '실행할 대상'을 저장. 

RAM의 용량과 성능

RAM용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다. 

RAM용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있다. 

RAM의 종류

DRAM, SRAM, SDRAM, DDRSDRAM이 있다.

  • DRAM: 시간이 지나면 저장된 데이터가 점차 사라지는 RAM. 소비전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 일반적으로 메모리로써 사용한다. 
  • SRAM : 시간이 지나도 저장된 데이터가 사라지지 않는다. DRAM보다도 일반적으로 속도도 더 빠르다. 하지만, 집적도가 낮고, 소비 전력도 크며, 가격도 더 비싸다. 
    • 집적도 : 칩 당 구성되는 소자의 수. 집적도가 높을 수록 전력소모량↓
    •  
  DRAM SRAM
재충전 필요함 필요 없음
속도 느림 빠름
가격 저렴함 비쌈
집적도 높음 낮음
소비 전력 적음 높음
사용 용도 주기억장치(RAM) 캐시 메모리
  • SDRAM : 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM. 
  • DDR SDRAM : 최근 가장 흔히 사용되는 RAM. DDR SDRAM은 대역폭을 넓혀 속도를 빠르게 만든 SDRAM. 
    • 대역폭 : 데이터를 주고받는 길의 너비. DDR3 SDRAM은 DDR2 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 여덟 배 넓은 SDRAM이다. 최근 흔히 사용하는 메모리는 DDR4 SDRAM으로, SDR SDRAM보다 열여섯 배 넓은 대역폭을 가진다. 

필수문제

3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.

보기 ) SRAM, DRAM

  • 주로 캐시 메모리로 활용됩니다.(SRAM)
  • 주로 주기억장치로 활용됩니다.(DRAM)
  • 대용량화하기 유리합니다.(DRAM)
  • 집적도가 상대적으로 낮습니다.(SRAM)

6-2 메모리의 주소 공간

- 물리 주소 : 메모리 하드웨어가 사용되는 주소

- 논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소.

물리 주소와 논리주소

 

  • 물리 주소 : 정보가 실제로 저장된 하드웨어상의 주소.
  • 논리 주소 : CPU와 실행 중인 프로그램이 사용. 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소.
    • 현재 메모리에 메모장, 게임, 인터넷 브라우저 프로그램이 적재되어 있다 가정. 다른 프로그램들의 물리 주소가 무엇인지 굳이 알 필요가 없다. 새로운 프로그램이 언제든 적재될 수 있고, 실행되지 않는 프로그램은 언제든 메모리에서 사라질 수 있기 때문이다. 그래서, 메모장, 게임, 인터넷 브라우저는 모두 물리 주소가 아닌 0번지부터 시작하는 자신만을 위한 주소인 논리 주소를 가지고 있다. 
    • 메모리가 사용하는 주소는 하드웨어상의 실제 주소인 물리 주소이고, CPU와 실행 중인 프로그램이 사용하는 주소는 각각의 프로그램에 부여된 논리 주소이다. 
    • CPU가 이해하는 주소가 논리주소라고는 해도 CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소간의 변환이 이루어져야 한다. 

논리 주소는 어떻게 물리 주소로 변환되나?

논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행.

EX) 베이스 레지스터에 45000이 저장되어 있고 CPU가 발생시킨 논리 주소가 100번지라면 이 논리 주소는 물리 주소 45100(100+45000)번지로 변환.

- 베이스 레지스터 : 프로그램의 가장 작은 물리 주소. 즉, 프로그램의 첫 물리 주소를 저장

- 논리 주소 : 프로그램의 시작점으로부터 떨어진 거리

메모리 보호 기법

    • 다른 프로그램의 영역을 침법할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 방법이 필요. 이는 한계 레지스터라는 레지스터가 담당. 
    • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장. 즉, 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 된다. 
    • CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 된다. 한계 레지스터 보다 높은 주소 값에 접근하는 것은 곧 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문이다. 
    • CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다. 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트를 발생시켜 실행을 중단.
    •  

6-3. 캐시 메모리

- CPU가 메모리에 접근하는 시간은 CPU의 연산속도보다 느리다. CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리면 CPU의 빠른 연산 속도는 아무런 쓸모가 없다. 이를 극복하기 위한 저장장치가 캐시메모리이다. 

저장 장치 계층 구조

저장장치 명제

  1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
    • CPU와 가장 가가운 레지스터는 일반적으로 RAM보다 용량은 작지만, 접근 시간이 압도적으로 빠르고 가격이 비싸다. USB메모리보다 CPU에 더 가까운 RAM은 접근 시간이 훨씬 빠르지만, 같은 용량이라 할지라도 가격은 더 비싸다. 

저장 장치 계층 구조

위 계층으로 올라갈수록 속도가 빠르고, 용량이 작고 , 가격이 비싸다. 

캐시 메모리

  • SRAM 기반의 저장 장치
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생
  • 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용.

  • 캐시 메모리들은 CPU(코어)와 가까운 순서대로 계층을 구성. 코어와 가장 가까운 캐시 메모리를 L1캐시, 그다음 가까운 캐시 메모리를 L2캐시, 그다음 가까운 캐시 메모리를 L3캐시라고 부른다.

  • 캐시 메모리의 용량은 L1, L2, L3 순으로 커지고, 속도는 L3, L2, L1 순으로 빨라진다. 가격은 L3, L2, L1순으로 비싸진다. 
  • CPU가 메모리 내에 데이터가 필요하다고 판단하면 우선 L1 캐시에 해당 데이터가 있는 지를 알아보고, 없다면 L2, L3 캐시 순으로 데이터를 검색.

참조 지역성 원리

- 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다. 

  • 캐시히트 : 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우.
  • 캐시 미스 : 자주 사용될 것으로 예측하여 캐시 메모리에 저장했지만, 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우. 
  • 캐시 적중률 : 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

참조 지역성의 원리

  1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
      • CPU는 변수가 저장된 메모리 공간을 언제든 다시 참조할 수 있다. 그리고 변수에 저장된 값은 일반적으로 한 번만 사용되지 않고 프로그램이 실행되는 동안 여러 번 사용된다. 즉, CPU는 최근에 접근했던 메모리 공간을 여려 번 다시 접근할 수 있다. 
      • 시간 지역성 : 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. 
    • CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 한데 모여 있다.
    • 공간 지역성 : 접근한 메모리 공간 근처를 접근하려는 경향. 

필수 문제

1. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.

보기) 메모리, 보조기억장치, 캐시메모리, 레지스터