[혼공컴] 6장 메모리와 캐시 메모리

prana·2023년 12월 24일
0
post-thumbnail

📖 혼자 공부하는 컴퓨터구조 + 운영체제

  • 06-3 생략

06-1 RAM의 특징과 종류

시작하기 전에...

  • 주기억장치 종류 : 크게 RAM, ROM 👉 메모리는 RAM을 지칭

RAM의 특징

  • RAM: 실행할 프로그램의 명령어와 데이터 저장
  • RAM에 저장된 명령어와 데이터 모두 날아감 👉 휘발성 저장 장치

  • 전원이 꺼져도 저장된 내용이 유지되는 저장 장치 👉 비휘발성 저장 장치
    • 하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조 기억 장치

- 보조기억장치는 전원을 꺼도 내용 유지하지만, CPU는 보조기억장치에 직접 접근 불가
  • 비휘발성
    저장장치
    휘발성
    저장장치
    ex) 보조기억장치ex) RAM
    보관할 대상 저장실행할 대상 저장
  • CPU가 실행하고 싶은 프로그램이 보조 기억장치에 있다면, 이를 RAM으로 복사하여 저장한 뒤 실행

RAM의 용량과 성능

  • RAM의 용량이 크면, 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장 가능하다.

  • 보조기억장치 : 책이 꽂혀있는 책장

  • RAM : 책을 읽을 수 있는 책상

    • 책상이 크면 책장으로부터 많은 책을 미리 책상으로 가져와 여러 권을 동시에 읽을 수 있다.
    • 많은 프로그램들을 동시에 실행하는 데에 유리하나,
      👉 그렇다고 용량이 필요 이상으로 커졌을 때 속도가 비례하여 증가하지는 않는다.

RAM의 종류

1) DRAM(Dynamic RAM)

저장된 데이터가 동적으로 변하는(사라지는) RAM

  • 시간이 지나면 저장된 데이터가 점차 사라짐
  • 소비전력이 비교적 낮고, 저렴, 집적도가 높으므로 대용량 설계에 용이

2) SRAM(Static RAM)

저장된 데이터가 변하지 않는 RAM

  • 주기적으로 데이터를 재활성화할 필요도 없다.
    • 전원이 공급되지 않으면 저장된 내용이 날아간다. 비휘발성 메모리인 것은 아니다.
  • DRAM보다 속도도 빠름
  • 일반적으로 사용되는 RAM 👉 DRAM

SRAM 특징

  • 집적도 낮음
  • 소비전력 큼
  • 가격 비쌈

[⚠️용어 주의] 3) SDRAM(Synchronous Dynamic RAM)

  • 클럭 신호가 동기화된, 발전된 형태의 DRAM
  • 클럭 신호와 동기화되었다 👉 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음을 의미
  • SDRAM은 클럭에 맞춰 동작, 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM

4) DDR SDRAM(Double Data Rate SDRAM)

  • *대역폭을 넓혀 속도를 빠르게 만든 SDRAM
  • 대역폭: 데이터를 주고 받는 길의 너비

  • (왼쪽 그림) 한 클럭당 하나씩 데이터를 주고받ㅇ르 수 있는 SDRAM 👉 SDR SDRAM
    • Single Data Rate SDRAM
  • DDR SDRAM은 SDR SDRAM에 비해 대역폭이 두 배 넓다.

06-2 메모리의 주소 공간

시작하기 전에...

  • 물리 주소 : 메모리 하드웨어가 사용하는 주소
  • 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소

물리 주소와 논리 주소

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

  • 메모리에 새롭게 실행되는 프로그램이 시시때때로 적재, 실행이 끝나면 삭제된다.
  • 실행할 때마다 적재되는 주소가 달라질 수 있다.
물리 주소논리 주소
정보가 실제로 저장된 하드웨어상의 주소CPU와 실행 중인 프로그램이 각각에게 부여된 0번지부터 시작되는 주소를 의미

  • ex) 메모장, 게임, 인터넷 브라우저는 모두 물리 주소가 아닌 0번지부터 시작하는 자신만의 논리 주소를 가지고 있다.
  • 프로그램마다 같은 논리주소가 얼마든지 있을 수 있다는 뜻,
    • 💡CPU는 논리 주소를 받아들이고, 해석, 연습한다.
  • 물리 주소: 메모리가 사용하는 주소는 하드웨어상의 실제 주소
  • 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소, 각각의 프로그램에 부여됨

🤔 CPU가 메모리와 상호작용 하려면 논리주소와 물리 주소 간의 변환이 이루어져야 할텐데?

  • 메모리 관리 장치(MMU; Memroy Management Unit)
  • 논리 주소와 물리 주소간의 변환

  • MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터값을 더하여 논리주소를 물리 주소로 변환

  • 베이스 레지스터: 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소를 저장)

  • 논리 주소: 프로그램의 시작점으로부터 떨어진 거리인 셈이다.

메모리 보호 기법

🤔 만약 논리주소 1500번지에, 숫자 100을 저장하라는 명령어가 있다면 숫자 100은 어떤 물리 주소에 저장될까?

  • 명령이 실행되어서는 안 된다.
  • 프로그램의 논리 주소 영역을 벗어났다.

한계 레지스터

  • 논리 주소 범위를 벗어나는 명령어 실행을 방지, 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호 담당
  • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장하는 역할이라면,
  • 👉 한계 레지스터는 논리 주소의 최대 크기를 저장한다.

물리 주소 범위 : 베이스 레지스터 값 이상 ~ 베이스 레지스터 값+한계 레지스터값 미만

  • 한계 레지스터가 저장한 값보다 CPU가 접근하려는 논리 주소가 커서는 안 된다.
  • 곧 프로그램 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문이다.
  • CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다.

0개의 댓글