ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Cache Memory 란 무엇인가 ?
    CS-Theory/OS 2023. 9. 6. 12:23

     

    하드디스크에서 데이터 파일을 불러와 cpu 에서 연산을 수행을 하는 상황을 이해해보자 .

     

    1. Main Memory 의 등장 배경  , DRAM   Dyanmic Random Access Memory 

     

    CPU 의 연산 속도 차이와  HDD/SDD(외장메모리) 의 연산 속도 , 데이터 I/O로 인하여 발생하는 속도의 차이로 인하여 병목 현상이 발생하고 이러한 문제점을 해결하기 위하여 cpu 가 작업할  데이터와 명령들을 저장하는 Main Memory 를 두게 되었다. 

     

    https://www.nextree.co.kr/p7292/

     

    Main Memory 는 보통 DRAM 을 사용한다.  In Memory DB  Redis 도 DRAM 을 기본으로 동작한다.

     

     

     

    2. Cache Memory 의 등장  ,SRAM : Static  Random Access Memory 

     

    기술의 발전에 따라 프로세서의 클럭 속도가 매우 빨라짐에 따라 프로세서 밖에 있는 Main Memory 와 CPU 사이에서 데이터를 빠르게 

    CPU 에게 제공을 해주는 데이터 지역성의 원리를 이용한 캐시메모리가 등장한다 .

     

    Cache Memory 는 자주 사용하는 데이터를 CPU에 먼 외장 메모리/메인 메모리 에 저장하지 말고 가까운 곳에 저장을 하여 조회에 성능을 높이는 기능을 한다.

     

    Cache Memory 는 보통 SRAM 을 사용한다.

     

    6T SRAM 이라는 단어를 종종 볼 것인데 여기서 말하는 6T 랑 통상적으로 SRAM 셀은 6 개의 트랜지스터가 들어간다.

     

    3.  멀티 레벨 캐시 메모리

    오늘 날의 SRAM을 이용한 캐시 메모리는  CPU 내부 또는 외부에 여러겹의 층과 같이 설계를 한다.

    레이어의 숫자가 높아 질수록 저장할 수 있는 데이터 공간의 크기가 증가하며 액세스 속도는 하락 한다.

     

     

    L1 Cache : cpu 내부에 있다.

     

    - 명령어를 저장하는 부분과 데이터를 저장하는 부분이 서로 분리 되어 있다.

     

    명령어 : 공간 지역성을 가진다.  => 한번 호출한 데이터의 인근 메모리주소를 참조할 확률이 높다.

     

    데이터 : 시간 지역성을 가진다.   => 한번 호출한 데이터가 가까운 시일에 다시 참조될 확률이 높다.

     

    L2 Cache : cpu 내부 또는 외부에 있다.

     

    - L1 Cache 에서  찾고자 하는 데이터가 없으면 L2 에서 데이터를 찾는다.

     

    L3 Cache .....

     

    L1 ~L3 까지 프로세서(cpu) 내부의 존재하는 설계도 있고 (인텔의 i7,i5) ,,   아닌 것도 있다. 

     

    공개된 애플의 m1 칩 아키텍처의 경우 각 프로세스 마다 L1 캐시가 존재하며

    프로세스(코어) 전부가 공유가능한  L2 캐시로 설계가 되어있는것을 확인 할수 있다.

     

     

     

     

    정리하면 데이터는 다음과 같은 과정들을 거친다.

     

    CPU Register <- > SRAM {L1 - > L2 -> L3} <-> DRAM <-> SDD/HDD

     

     

     

    캐시 메모리의 관한 정보를 다뤘지만 ,  캐싱을 할 수 있는 장소는 여러 곳이다라고 설명하고 글을 마치고자 한다.

     

    DB 에서 캐싱이  클라이언트 서버 ,브라우  캐싱등 다양한  곳에 캐싱이 가능하다.

     

     

     

     

     

     

     

     

     

    출처 :

    1. Redis 

    https://redis.com/glossary/cache-memory/

     

    Cache Memory - Definition and general information | Redis

    Discover the importance and workings of cache memory in computer systems, its types, mapping techniques, real-world examples, and future trends

    redis.com

    2. Google patents 

    https://patents.google.com/patent/KR100634183B1/ko

     

    KR100634183B1 - Sram 셀, 6t sram 셀 및 이를 구비한 메모리시스템 - Google Patents

    본 발명은 높은 안정도 및/또는 작은 셀 크기를 가지는 6T SRAM 셀의 설계 방법을 제공한다. 6T SRAM 셀은 한 쌍의 액세스 트랜지스터(NFET), 한 쌍의 풀업 트랜지스터(PFET) 및 한 쌍의 풀다운 트랜지스

    patents.google.com

     

     

Designed by Tistory.