ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 캐시 메모리
    CS/면접준비 2022. 9. 20. 01:37

    캐시 메모리


    속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다.

    코어 마다 독립된 L1캐시를 가진다.

    L1 = Cpu 내부

    L2 = Cpu - main memory

    L3 = Mainboard

     

    지역성


    데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생하는 것을 말한다. 
    • 캐시의 적중률(Hit rate)을 극대화하여 캐시가 효율적으로 동작하기 위해 사용되는 성질이다. 

     

    • 시간 지역성
      • 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성 
      • 반복문에서 조건 변수처럼 한번 된 사용된 변수는 잠시 후 다시 참조될 가능성이 높다.

     

    • 공간 지역성
      • 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성
      • List와 같이 연속된 접근 시, 참조된 근처 데이터와 연결될 가능성이 높다.

     

     

    캐시 Hit , Miss


    요청한 데이터가 캐시 메모리에 존재한다면 Cache hit , 없다면 miss

    1. Cold Miss

    • 메모리 주소를 처음 올려 나는 미스

     

    2. Conflict Miss

    • A와 B가 같은 Object를 보고 캐시메모리에 올라가 있다가, A가 값을 변경하여 B가 캐시메모리를 참고하여 접근하지만 없어서 나는 미스

     

    3. Capacity Miss

    • 캐시 메모리 공간 자체가 없어서 나는 미스

     

    캐시 Line


    • 캐시 메모리는 메인 메모리에 비해 크기가 매우 작기 때문에 메인 메모리와 1:1 매칭이 불가능하다.
      캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶음으로 저장하는데, 이를 캐싱 라인(Caching Line) Mapping Table과 유사하다고 보면 된다.

     

    1. Direct Mapping

    • 직접 매핑으로, 메인 메모리를 일정한 크기의 블록으로 나누어 각각의 블록을 캐시의 정해진 위치에 매핑하는 방식이다. 
    • 가장 간단하고 구현도 쉽다.
    • Cache는 8개의 공간 Memory는 32개의 공간으로 뒤의 3개의 bit로 Index Mapping하며, 앞의 값을 Tag 필드
      인덱스 + 태그 + 데이터로 구성

    2. Full Associative Mapping

    • 캐시 메모리의 빈 공간에 마음대로 주소를 저장하는 방식이다. 
      저장하는 것은 매우 간단하지만, 데이터가 있는지 찾기 위해서는 모든 태그를 병렬적으로 검사해야 한다.

    3. Set Associaive Mapping

    • 1,2번은 혼합한 것이다.
    • 빈 공간에 마음대로 주소를 저장하되, 미리 정해둔 특정 행에만 저장하는 방식이다. 
      Direct에 비해 검색 속도는 느리지만 저장이 빠르고 Full에 비해 저장이 느리지만 검색은 빠르다. 
      주로 사용하는 방식이다. 

    'CS > 면접준비' 카테고리의 다른 글

    [OS] - Process vs Thread  (1) 2022.09.29
    [Database] - Join  (1) 2022.09.21
    [Database] - Key  (0) 2022.09.20
    Virtual Memory란?  (0) 2022.07.18
    Dynamic Programming이란?  (0) 2022.07.18

    댓글

Designed by Tistory.