[혼공컴운] 혼공단 11기 - 3주차 (6장)

shyn26·2024년 1월 21일
0

혼공학습단

목록 보기
6/20

6. 메모리와 캐시 메모리

6-1. RAM의 특징과 종류

  • 메모리에는 'RAM'과 'ROM'이 있지만, 메모리 대신 'RAM'이라고 부르겠음
  • RAM 용량이 컴퓨터 성능에 어떤 영향을 미치는지 알아보자
  • DRAM, SRAM, SDRAM, DDR SDRAM 이 뭔지 알아보자

RAM의 특징

⚠️ Ram에 실행할 프로그램의 명령어와 데이터가 저장
⚠️ 전원을 끄면 다 날아감... (조심!!)

  • 휘발성 저장 장치 (volatile memory) : 전원을 끄면 저장된 내용이 사라지는 저장 장치
    • 실행할 대상을 저장함
  • 비휘발성 저장 장치 (non-volatile memory) : 전원을 꺼도 저장된 내용이 유지되는 저장 장치
    • 하드디스크, SSD, CD-ROM, USB 메모리 : 보조기억장치
    • 보관할 대상을 저장

RAM의 용량과 성능

  • RAM 용량이 적으면, 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아진다. 조금씩 여러번 가져와야 하니까.. 그래서 실행시간이 길어짐
  • 실행할 프로그램을 책에 비유하면,
    • 보조기억장치는 책이 꽂혀 있는 책장
    • RAM은 책을 읽을 수 있는 책상
  • RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리함
  • RAM의 용량과 프로그램 실행 속도는 비례하여 빨라지나?
    • NOPE! 100권이상 읽을 수 있는 책상에 50권이든 100권이든 책장에 오가는 시간은 별 차이가 없다!

RAM 종류

1. DRAM(Dynamic RAM) : 시간이 지나면 저장된 데이터가 점차 사라지는 RAM

  • 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 함
  • 우리가 일반적으로 메모리로써 사용하는 RAM
  • 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 대용량으로 설계하기가 용이

2. SRAM(Static RAM) : 저장된 데이터가 변하지 않는 RAM

  • 시간이 지나도 저장된 데이터가 사라지지 않는다고 해서 SRAM이 비휘발성 메모리인 것은 아님
  • SRAM도 전원이 공급되지 않으면 저장된 내용이 날아감
  • DRAM보다 집적도가 낮고, 소비 전력도 크며, 가격도 더 비싸기 때문에 장점이 많아도 일반적으로 사용하지 않음

3. SDRAM(Synchronous Dynamic RAM) : 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM

4. DDR SDRAM(Double Data Rate SDRAM) : 대역폭을 넓혀 속도를 빠르게 만든 SDRAM

  • 최근 가장 흔히 사용되는 RAM

  • 대역폭(data rate) : 데이터를 주고받는 길의 너비

  • 한 클럭에 하나씩 정보를 주고받을 수 있는 SDRAM(SDR SDRAM, Single Data Rate SDRAM)과 비교했을 때 DDR SDRAM은 너비가 두 배인 도로

    • DDR2 SDRAM : 도로 너비가 싱글의 222^2
    • DDR3 SDRAM : 도로 너비가 싱글의 232^3
    • DDR4 SDRAM : 도로 너비가 싱글의 242^4


[⭐혼공단 미션 인증!⭐]

p.185-3번

  • 주로 캐시메모리로 활용되는 (SRAM)
  • 주로 주기억장치로 활용되는 (DRAM)
  • 대용량화하기 유리한 (DRAM)
  • 집적도가 상대적으로 낮은 (SRAM)

6-2. 메모리의 주소 공간

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

물리 주소와 논리 주소

  • 물리 주소(physical address) : 메모리가 사용하는 주소
    • 정보가 실제로 저장된 하드웨어상의 주소
  • 논리 주소(logical address) : CPU와 실행 중인 프로그램이 사용하는 주소
    • 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

논리 주소는 어떻게 물리 주소로 변환될까?!

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


메모리 보호 기법

  • 프로그램의 크기를 넘어가는 주소의 명령어를 실행하게 될 수 있는데, 그것을 방지해주고 막아주는 것을 한계 레지스터(limit register)가 담당
  • CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사
    → 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)를 발생시켜 실행을 중단

6-3. 캐시 메모리

  • CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느린데, CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리면 CPU의 빠른 연산 속도는 아무런 쓸모가 없게 됨...
    → 그래서 캐시 메모리 사용함

저장 장치 계층 구조(memory hierarchy)

  • 컴퓨터가 사용하는 저장 장치들은 ‘CPU에 얼마나 가까운가’를 기준으로 계층적으로 나타냄
  • 빠르고 용량이 큰 저장 장치를 원하지만, 동시에 만족하기 어려움..
    • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
    • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈

캐시 메모리(cache memory)

  • CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
  • 저장 장치 계층 구조 : 레지스터 > 캐시메모리 > 메모리 > 보조기억장치
    • [비유]
      CPU : 집
      필요한 데이터 : 물건
      메모리(RAM) : 물건이 많지만 거리가 먼 대형마트
      캐시메모리 : 물건이 많지 않지만 거리가 가까운 편의점
  • 컴퓨터 내부에 여러개의 캐시 메모리가 존재하는데, CPU와 가까운 순서대로 계층을 구성함
  • CPU < L1(level 1) 캐시 < L2 캐시 << L3 캐시
    • 보통 L1,L2는 코어 내부, L3는 코어 외부에 있음

참조 지역성 원리(locality of reference, principle of locality)

  • CPU가 사용할 법한 대상을 예측하여 저장

  • 캐시 히트(cache hit) : 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우

  • 캐시 미스(cache miss) : 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

  • 캐시 적중률(cache hit ratio) : 캐시가 히트되는 비율

    캐시적중률=(캐시히트)(캐시히트)+(캐시미스)캐시 적중률 = \cfrac{(캐시 히트)}{(캐시 히트)+(캐시미스)}

  • 캐시 적중률을 높여야 하는데, 그럼 CPU가 사용할 법한 데이터는 어떻게 알 수 있을까?

    • 참조 지역성의 원리로 알 수 있음
    • CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
      1. 시간 지역성(temporal locality) : CPU는 <최근>에 접근했던 메모리 공간에 다시 접근하려는 경향
      2. 공간 지역성(spatial locality) : CPU는 접근한 메모리 <공간 근처>를 접근하려는 경향

[⭐혼공단 미션 인증!⭐]

p.205-1번
저장 장치 계층 구조 도식도 순서대로 빈칸 채우기
1. 레지스터
2. 캐시 메모리
3. 메모리
4. 보조기억장치

profile
Without haste, but without rest - J.W. von Goethe

0개의 댓글