[혼공컴운]3주차_Chap06 | 메모리와 캐시 메모리

곽나현·2024년 1월 15일
0

혼공컴운

목록 보기
6/16
post-thumbnail

<학습목표>

  • RAM의 특징과 종류에 대해 학습한다.
  • 논리 주소와 물리 주소의 차이를 이해한다.
  • 논리 주소를 물리 주소로 변환하는 방법을 이해한다.
  • 캐시 메모리와 저장 장치 계층 구조의 개념을 이해한다.

🎇 RAM의 특징과 종류

🔗 RAM의 특징

RAM에는 실행할 프로그램의 명령어와 데이터가 저장됨
RAM은 전원을 끄면 저장된 내용이 모두 삭제되는 휘발성 저장 장치임

저장장치
휘발성 저장 장치 (volatile memory)전원을 끄면 저장된 내용이 모두 삭제됨
비휘발성 저장 장치 (non-volatile memory)전원을 꺼도 저장된 내용이 삭제 되지 않음 ➡ 예로 하드디스크나 SSD, CD-ROM,USB 메모리와 같은 보조기억장치가 있음

CPU보조기억장치에 직접 접근하지 못 하고, 휘발성 저장 장치비휘발성 저장 장치의 특징때문에 보조기억장치'보관할 대상'을 저장하고, RAM에는 '실행할 대상'을 저장하여 프로그램을 실행할 때는 보조기억장치에서 RAM으로 복사하여 저장한 뒤 실행함

🔗 RAM의 용량과 성능

🔎 RAM의 용량이 크면 어떤 점이 좋을까?
CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 되는데 RAM용량크다면 보조기억 장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있음

➡ 즉, 많은 프로그램을 동시에 실행하는 데 유리함

◼ 프로그램 실행 속도가 RAM의 용량과 비례하게 빨라지는 것은 아니다.

➡ RAM의 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않음.

🔗 RAM의 종류

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

    • 장점 : 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이함 ➡ 메모리로 사용됨
    • 단점 : 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.
  • SRAM (Static RAM) : 저장된 데이터가 시간이 지나도 사라지지 않음

    • 장점 : 주기적으로 데이터를 재활성화할 필요가 없고, 일반적으로 DRAM보다 속도도 빠름
    • 단점 : DRAM보다 집적도가 낮고, 소비 전력도 크며, 가격이 더 비쌈 ➡ 대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장장치캐시 메모리에 사용됨
  • SDRAM (Synchronous Dynamic RAM) : 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고 받을 수 있는 DRAM

  • DDR RAM (Double Data Rate RAM) : 최근 가장 흔히 사용되는 RAM . 대역폭을 넓혀 속도를 빠르게 만든 SDRAM

    • 대역폭 : 데이터를 주고 받는 길의 너비
    • SDRAMSDR SDRAM이라고도 함
    • DDR2 SDRAM은 DDR SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 두 배 넓음
    • DDR3 SDRAM은 DDR2 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 네 배 넓음
    • DDR4 SDRAM은 DDR3 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 열여섯 배 넓음

🎇 메모리의 주소 공간

🔗 물리 주소 (Physical memory)

메모리 하드웨어가 사용하는 주소. 실제로 저장된 하드웨어상의 주소

🔗 논리 주소 (Logical memory)

CPU와 실행 중인 프로그램이 사용하는 주소. 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

➡ CPU와 현재 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못함

  • 메모리에 저장된 정보는 시시각각 변하기 때문

◼ CPU가 이해하는 주소가 논리 주소라고 해도 CPU가 메모리와 상호작용하려면 논리주소와 물리 주소 간의 변환이 이뤄져야 한다.

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

MMU논리 주소베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환함

➡ 즉, 베이스 레지스터는 프로그램의 가장 작은 물리 주소(첫 물리 주소)를 저장
논리 주소는 프로그램의 시작점으로부터 떨어진 거리

🔗 메모리 보호 기법

◼ 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하다.

◼ 논리 주소 범위를 벗어나는 명령어 실행을 방지하고, 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법?

한계 레지스터가 담당함
한계 레지스터는 논리 주소의 최대 크기를 저장
➡ 즉, 프로그램의 물리 주소 범위베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터 값) 미만
➡ CPU가 접근하려는 논리 주소한계 레지스터 값보다 크면 안 됨

😶 CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사

➡ 검사결과 작지 않으면 인터럽트(트랩)을 발생시켜 실행을 중단함

🎇 캐시 메모리

🔗 저장 장치 계층 구조

저장 장치들을 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낸 것

➡ 저장장치는 일반적으로 아래와 같은 명제를 따름

  1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
  2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈
  • CPU와 가까울수록 속도가 빠르고, 용량이 작고, 비싼 반면 CPU와 멀수록 속도가 느리고, 용량이 크고, 쌈

🔗 캐시 메모리 (cache memory)

CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반 저장 장치

  • 컴퓨터 내부에는 여러 개캐시 메모리가 있음

    • L1 cache : CPU(코어)와 가장 가까운 캐시 메모리
    • L2 cache : CPU(코어)와 L1 cache 다음으로 가까운 캐시 메모리
    • L3 cache : 캐시 메모리들 중 CPU(코어)와 가장 멀리 있는 캐시 메모리
  • 일반적으로 L1 cache , L2 cache는 코어 내부에, L3캐시는 코어 외부에 위치함

  • 캐시 메모리의 용량은 L1,L2,L3 순으로 커지고, 속도는 L3,L2,L1 순으로 빨라지고, 가격은 L3,L2,L1 순으로 비싸짐

  • 멀티 코어 프로세서인 경우 일반적으로 L1,L2 cache는 코어마다 할당되고, L3 cache는 공유함

  • 분리형 캐시 : L1 cache의 속도를 조금이라도 높이고자 명령어만을 저장하는 L1캐시인 L1I 캐시데이터만을 저장하는 L1캐시인 L1D 캐시로 분리한 경우

⚪ 저장 장치 계층 구조

🔗 참조 지역성 원리

캐시 히트 (cache hit)캐시 메모리 내 예측하여 저장한 데이터가 CPU에서 활용될 경우
캐시 미스 (cache miss)예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야하는 경우

⚪ 캐시 적중률

캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

◼ 캐시 메모리의 이점을 제대로 활용하려면 캐시 적중률을 높여야 한다.

✔ 참조 지역성 원리

CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리. 참조 지역성 원리에 입각해 CPU가 사용할 법한 데이터를 예측

  • 시간 지역성 (temporal locality)

    CPU는 최근에 접근했던 (변수가 저장된)메모리 공간에 다시 접근하려는 경향

  • 공간 지역성 (spatial locality)

    접근한 메로리 공간 근처를 접근하려는 경향

0개의 댓글