본문 바로가기
CS/OS

컴퓨터의 요소 - 메모리

by KDGdev 2023. 2. 6.

메모리


프로그램 실행 시 필요한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간입니다.

 

메모리계층은 레지스터, 캐시, RAM과 같은 주기억장치, 하드디스크와 같은 저장장치로 구성되어 있습니다.

 

  • 레지스터
    • CPU 안에 있는 작은 메모리입니다.
    • 속도 가장 빠르고 기억 용량이 가장 적습니다.
    • 휘발성 메모리입니다.
  • 캐시
    • 자주 사용하는 데이터를 미리 복사해 놓는 임시 저장소입니다. 
    • CPU안에 있는 L1, L2 캐시는 빠른 장치인 CPU와 상대적으로 느린 장치인 주기억장치(RAM) 사이의 속도 차이에 따른 병목현상을 줄여주기 위해 존재합니다.
      • CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상합니다.
    • 이렇게 속도 차이를 해결하기 위해 계층과 계층 사이에 있는 계층을 캐싱 계층이라고 합니다.
    • 휘발성 메모리입니다.
  • 주기억장치
    • 속도와 기억 용량이 보통입니다.
    • 휘발성 메모리입니다.
  • 보조기억장치
    • 속도는 느리고 기억 용량이 많습니다.
    • 위의 메모리들과 달리 비휘발성입니다. 

메모리계층의 속도를 비교해 보자면

레지스터 > 캐시 > 주기억장치 > 보조기억장치

이고 용량을 비교하면

보조기억장치 > 주기억장치 > 캐시 > 레지스터

입니다.

 

  •  

캐시

캐시에는 3가지 동작이 있습니다.

 

  • 캐시동작
    • 캐시히트
      • 캐시에서 원하는 데이터를 찾은 것
    • 캐시미스
      • 해당 데이터가 캐시에 없어 주메모리로 가서 데이터를 찾아오는 것
    • 캐시매핑
      • 캐시가 히트되기 위해 매핑하는 방법

 

  • 캐시미스 원인
    • Cold miss
      • 캐시에 데이터가 저장되려면 메모리를 적어도 한번 거쳐야 합니다. Cold miss는 해당하는 메모리에 처음 접근하여 발생하는 미스입니다.
    • Conflict miss
      • 캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스입니다.
      • 예를 들어 캐시의 공간이 1,2,3,4,5가 있다고 할 때 메모리의 A와 B데이터가 똑같이 2번 데이터에 넣는다고 미리 약속을 했을 때 2번 자리에 두 개의 데이터가 들어갈 수 없어서 미스가 발생합니다.
    • Capacity miss
      • 사용하려는 프로그램의 데이터양이 캐시 용량보다 클 시 발생하는 미스입니다.

 

  • 캐시 타입 종류
    • Direct Mapped Cache
      • 하나의 캐시 엔트리(캐시 공간)를 가지는 여러 개의 세트(메모리) 구성합니다.
      • A는 1번 캐시자리, B는 2번 캐시자리, C는 3번 캐시자리, D는 1번 캐시자리처럼 미리 정해둡니다.
      • Conflict miss가 발생합니다.
    • Fully Associative Cache
      • 모든 캐시 엔트리를 하나의 세트에 포함시킵니다.
      • 1번 캐시자리에 A, B, C, D 2번, 3번 캐시자리도 마찬가지로 모두 포함시킵니다.
      • Conflict miss를 줄일 수 있으나 매번 모든 캐시 엔트리를 확인해야 하기 때문에 많은 전력을 소비합니다.
    • Set Associative Cache
      • 적절한 개수의 엔트리를 하나의 세트에 포함

'CS > OS' 카테고리의 다른 글

메모리 할당  (0) 2023.02.13
가상 메모리 - 페이지 교체 알고리즘  (0) 2023.02.12
가상 메모리  (0) 2023.02.11
컴퓨터의 요소 - CPU  (0) 2023.01.26
운영체제의 역할과 구조  (1) 2023.01.26