티스토리 뷰

https://techdifferences.com/difference-between-cache-memory-and-main-memory.html

6. 메모리와 캐시 메모리

  • 사람이 일을 하려면 사람, 책상, 책장, 공간이 필요하다.
  • 컴퓨터가 일을 하려면 CPU, 메모리, 보조기억장치, 메인보드가 필요하다.
  • 지난 4, 5장에서 CPU에 대해서 알아보았다.
  • 이번 장에서는 메모리에 대해 알아본다.
  • 컴퓨터에서 돌아가는 프로그램은 보조기억장치에 저장되어 있지만,
  • 보조기억장치는 저장고일 뿐, 그곳에서 실제로 프로그램이 실행되지는 않는다.
  • 보조기억장치의 프로그램은 메모리에 올라와야 실행될 수 있다.

6.1 RAM의 특징과 종류

  • 메모리는 책상이다.
  • CPU가 퇴근하면(전원을 내리면) 책상은 초기화된다(램이 초기화된다).
  • 그래서 하던 작업을 이어서 하려면 절전모드 또는 최대절전모드를 이용해야 한다.

출처: https://velog.io/@yeobi01/혼자-공부하는-컴퓨터구조

  • 보조기억장치(HDD, SSD)는 책장이다.
  • 책장은 치워지지 않는다. 보관만 한다.
  • 하지만 책장에서 일을 하지는 않는다.
  • 일은 책상에서 한다.
  • 그래서 책장에서 일할 것을 책상으로 가져와야 한다.
  • RAM이 커야 하는 이유가 바로 이것이다.
  • 책상이 작으면 작업이 바뀔 때마다 보조기억장치를 들락날락 해야 한다.
  • 보조기억장치는 느리다.
  • 책상이 커야 한번에 여러 작업을 올려놓고 동시에 진행할 수 있다.

6.1.1 RAM의 종류

  • DRAM
    • Dynamic RAM의 줄임말이다.
    • 시간이 지나면 저장된 데이터가 사라진다.
    • 데이터 소멸을 막으려면 일정 주기로 데이터를 다시 저장해야 한다.
    • 하지만 소비 전력이 낮고, 싸고, 집적도가 높은 장점이 단점을 메꾼다.
  • SRAM
    • Static RAM의 줄임말이다.
    • 저장된 데이터가 변하지 않는다. 그래도 전원 내리면 날아가는건 똑같다.
    • DRAM보다 빠르다.
    • 주기적으로 데이터를 다시 저장할 필요가 없어서 좋을 것 같지만,
    • 집적도가 낮고, 소비 전력도 크고, 비싸서 RAM에는 잘 쓰지 않는다.
    • 대용량 필요 없고, 소비 전력 커도 되고, 빠른 게 중요한 곳은?
    • 캐시 메모리이다. 캐시 메모리에 DRAM이 사용된다.
  • SDRAM
    • Synchronous Dynamic RAM의 줄임말이다.
    • 클럭과 동기화되었다는 뜻이다.
    • 클럭마다 CPU와 정보를 주고받는다.
  • DDR SDRAM
    • 아마 요즘 가장 많이 사용되는 RAM일 것이다.
    • DDR은 Double Data Rate를 뜻한다.
    • 폭이 넓은 도로를 생각하면 된다.
    • 한 클럭 당 주고받을 수 있는 데이터가 SDRAM의 2배이다.
    • DDR2는 DDR보다 2배 대역폭이 2배 넓다.
    • 지금 내 PC는 DDR4이므로, SDRAM보다 16배 넓다.

6.1.2 확인문제

  • SRAM, DRAM 중...
    • 주로 캐시 메모리로 활용되는 것은?
      • SRAM (속도가 빠름)
    • 주로 주기억장치로 활용되는 것은?
      • DRAM (집적도, 가격)
    • 대용량화하기에 유리한 것은?
      • DRAM (집적도)
    • 집적도가 상대적으로 낮은 것은?
      • SRAM (그래서 캐시에 사용함)

6.2 메모리의 주소 공간

  • 메모리의 주소에는 두 종류가 있다고 한다.
  • 물리 주소와 논리 주소라고 한다.
  • 아니 의사 양반 이게 무슨 소리요?!

6.2.1 물리 주소와 논리 주소

  • 메모리에는 프로그램들이 수시로 올라갔다 내려온다.
  • 실제로 메모장을 여러 개 띄우고 작업 관리자를 보면,
  • notepad.exe가 서로 다른 PID로 실행되고 있음을 알 수 있다.
  • 자세한 내용은 운영체제에서 알려줄 것이라 믿어 의심치 않는다고 나는 말을 하지 않을 수 없다고 언급해둠이 마땅할 것이다람쥐.
  • 여튼, 그러한 이유로 하나의 프로그램이 여러 프로세스가 되어
  • 메모리 상의 다른 곳에 올라갈 수 있다.
  • 물리 주소란 물리적, 즉 하드웨어 적으로 프로그램이 어디에 올라가 있는가이고,
  • 논리 주소란 프로그램 각각에게 부여된 주소로, 0부터 시작한다.
  • 각 프로그램은 0번지부터 시작하는 자신만의 논리 주소를 갖고 있다.

  • 그렇다면 논리 주소를 물리 주소로 변환하는 무언가가 필요하다.
  • 실제로 데이터를 가져오는 주소는 물리 주소여야 하기 때문이다.
  • 이 작업을 담당하는 것이 메모리 관리 장치, MMU(Memory Management Unit)이다.
  • MMU는 CPU와 주소 버스 사이에 위치한 장치이다.
  • CPU는 논리 주소를 발생시키는데, 여기에 어떤 값을 더하여 물리 주소로 만든다.
  • 당연히 논리 주소에 더하는 값은 프로그램마다 다를 것이다.
  • 논리 주소에 더하는 값은 베이스 레지스터에 들어 있다.

출처: https://velog.io/@yeobi01/혼자-공부하는-컴퓨터구조


6.2.2 메모리 보호 기법

  • 생각해보면, 논리 주소의 최대값을 정해두지 않으면
  • 엉뚱한 프로그램의 메모리를 건드릴 수 있다.
  • 따라서 논리 주소의 한계를 지정해야 한다.
  • 이 한계값을 관리하는 곳이 한계 레지스터(limit register)이다.
  • 한계 레지스터를 넘어서는 곳을 접근하려고 하면?
  • 인터럽트를 발생시켜서 실행을 중단한다.

6.3 캐시 메모리

  • RAM이 아무리 빠르다 한들, CPU 앞에선 굼벵이 같다.
  • CPU가 RAM 앞에서 자꾸 길막을 시전하게 둘 수 없다.
  • 자주 쓰는 것들은 가까운 곳에 두고 싶은 것이 인지상정이다.
  • 그래서 웹 브라우저에 즐겨찾기가 있고 휴대폰에는 바탕화면이 있다.

6.3.1 저장 장치 계층 구조

  • 컴퓨터에서 데이터를 저장하는 하드웨어에는 일종의 법칙이 있다.
  • CPU와 가까울수록, 비싸고, 빠르고, 작다.
  • CPU 내부에 있는 레지스터가 당연히 가장 가깝다. 내부니까.
  • 그 다음이 메모리, 그 다음이 보조기억장치이다.
  • 그런데 메모리도 느려! 즐겨찾기를 만들고 싶어!
  • 그래서 즐겨찾기를 만들었다. 이름은 캐시라고 지었다.
    • Cash가 아니다! Cache다.
  • 요즘은 L1, L2, L3 캐시가 있다.
    • 일반적으로 L1, L2는 코어 내부에, L3는 코어 외부에 있다.
  • 아래는 저장 장치의 계층 구조이다.

출처: https://velog.io/@yeobi01/혼자-공부하는-컴퓨터구조

6.3.2 참조 지역성 원리

  • 당연히 캐시는 좁다.
  • 그래서 자주 사용하는 것들만 두어야 한다.
  • 하지만 캐시 밖의 것도 쓸 일이 있을 것이다.
  • CPU는 필요한 정보를 캐시에서 먼저 찾는다.
  • 캐시에서 찾아지는 것을 캐시 히트(cache hit)라고 부른다.
  • 캐시에 없어서 메모리까지 가는 것을 캐시 미스(cache miss)라고 부른다.
  • 캐시 적중률이란 캐시 히트의 비율을 말한다.
    • (캐시 적중률) = (캐시 히트 횟수)/(캐시 히트 횟수 + 캐시 미스 횟수)
  • 우리가 쓰는 PC의 캐시 적중률은 90% 정도 된다.

  • 자주 사용하는 것의 기준을 참조 지역성의 원리라고 부른다.
    • Locality of reference, Principle of locality
  • 풀어서 설명하면 생각보다 간단하다.
  • 첫째, 최근에 접근했던 메모리 공간에 다시 접근할 가능성이 높다.
    • 시간 지역성(temporal locality)라고 부른다.
    • 반복문에서 하나의 변수에 반복적으로 접근하는 것을 생각하면 된다.
  • 둘째, 한번 접근했던 메모리 근처를 접근할 가능성이 높다.
    • 메모리에 올라간 프로그램들은 서로 붙어있다. (항상 그런가?)
    • 그래서 어떤 프로그램이 돌아가고 있을 때, 지금 당장 필요한 것들도 서로서로 붙어있을 것이다.
    • 이것을 공간 지역성(spatial locality)이라고 부른다.

6.3.3 확인 문제

  • 저장 장치 계층을, CPU와 가까운 것부터 4개 쓰시오.
    • 답: 레지스터 > 캐시 메모리 > 메모리 > 보조기억장치
댓글