[TIL] 메모리 계층 구조

2025. 3. 13. 21:36·CS

메모리 계층 구조

 

"CPU에 얼마나 가까운가" 를 기준으로 각기 다른 용량과 성능의 저장 장치들을 계층적으로 나타낸 구조

각 계층은 성능, 용량, 가격 측면에서 차이가 있으며, 이를 효율적으로 활용하여 최적의 성능을 달성할 수 있음

메모리 계층 구조

 

메모리 계층 구조의 원리

  • CPU와 가까울수록 빠르다
    • CPU 바로 옆에 있는 레지스터와 캐시 메모리는 매우 빠른 속도를 제공하지만, 용량이 작고 가격이 비쌉니다.
    • 반면, RAM, SSD/HDD 등은 점점 CPU와 거리가 멀어지면서 속도가 느려지지만, 저장 용량이 커지고 가격이 저렴해집니다.
  • 고속 메모리는 비싸고 용량이 작다
    • 속도가 빠른 L1, L2, L3 캐시는 매우 비싸므로, CPU 내부에 소량만 탑재됩니다.
    • 대용량 데이터를 저장하려면 상대적으로 느린 RAM이나 SSD를 활용해야 합니다.
  • 느린 저장 장치는 용량이 크고 가격이 저렴하다
    • 하드디스크(HDD)나 SSD 같은 저장 장치는 속도가 느리지만, 대용량 데이터를 저렴한 비용으로 저장할 수 있습니다.
    • 클라우드 스토리지나 테이프 드라이브 같은 장치는 더욱 저렴한 비용으로 장기간 데이터를 보관하는 데 사용됩니다.

 

메모리 계층 구조의 단계

  1. 레지스터 (Register)
    • CPU 내부에 위치하며, 가장 빠르고 가장 적은 용량(몇 바이트 수준)을 가짐
    • 연산에 직접 사용되며, CPU 명령어를 처리하는 데 핵심 역할을 함
  2. 캐시 메모리 (Cache Memory - L1, L2, L3)
    • CPU와 RAM 사이에 위치하며, 자주 사용되는 데이터를 미리 저장하여 빠르게 접근할 수 있도록 함
    • L1 → L2 → L3 순으로 크기는 커지지만, 속도는 느려짐
  3. 메인 메모리 (RAM - Random Access Memory)
    • 실행 중인 프로그램과 데이터를 저장하는 공간
    • 캐시보다는 느리지만, 저장 용량이 크고 CPU와 직접 연결되어 빠르게 데이터 처리 가능
  4. 보조 저장 장치 (HDD, SSD)
    • 영구적으로 데이터를 저장하는 장치
    • RAM보다 속도가 훨씬 느리지만, 데이터가 전원이 꺼져도 유지됨
  5. 클라우드 스토리지, 테이프 드라이브
    • 속도는 가장 느리지만, 대용량 데이터를 장기간 보관하는 데 최적화됨
    • 백업 및 아카이빙 용도로 사용됨

 

참조 지역성 원리

참조 지역성(Locality of Reference)은 CPU가 메모리에 접근하는 패턴을 분석하여 최적의 성능을 이끌어내는 개념
이 원리를 기반으로 캐시 메모리가 동작하며, CPU가 자주 사용할 법한 데이터를 미리 로드하여 높은 캐시 적중률을 유지

 

참조 지역성은 크게 시간 지역성, 공간 지역성으로 구분함

 

  1. 시간 지역성 (Temporal Locality)
    • 한 번 접근한 데이터나 명령어는 가까운 미래에 다시 접근될 가능성이 높음
    • 이를 활용하여 캐시 메모리에 최근 사용한 데이터를 저장하여 성능을 향상시킴
    • ex) for 루프 내 동일한 변수를 반복적 사용, 함수 호출 시 같은 변수가 조회됨
  2. 공간 지역성 (Spatial Locality)
    • 특정 메모리 위치가 참조되면, 그 근처의 데이터도 곧 사용될 가능성이 높음
    • 이를 기반으로 캐시나 RAM이 인접한 메모리 블록을 미리 로드하여 처리 속도를 높임
    • ex 배열 순회, 코드 실행 등

 

참조 지역성 원리를 활용한 성능 최적화

  1. CPU 캐시 메모리 활용
    • L1, L2, L3 캐시는 참조 지역성 원리를 기반으로 자주 사용하는 데이터를 저장하여 처리 속도를 높임
    • 높은 캐시 적중률을 유지하면 CPU와 메모리 간 속도 차이를 해소할 수 있음
  2. 메모리 최적화 코딩 기법
    • 배열을 순차적으로 접근하여 공간 지역성을 활용 (ex: Row-Major Order 방식)
    • 자주 사용하는 변수를 캐시에 남도록 유지 (ex: 반복문에서 동일한 변수 활용)
  3. 운영체제의 페이지 캐싱 기법
    • 운영체제는 참조 지역성을 활용하여 자주 사용하는 페이지를 미리 메모리에 적재
    • 디스크 I/O를 최소화하여 성능을 개선

 

 

'CS' 카테고리의 다른 글

[TIL] 명령어 집합 구조(ISA), CISC vs RISC  (1) 2025.03.13
[TIL] 명령어 병렬 처리 기법 (파이프 라이닝, 슈퍼스칼라)  (0) 2025.03.13
'CS' 카테고리의 다른 글
  • [TIL] 명령어 집합 구조(ISA), CISC vs RISC
  • [TIL] 명령어 병렬 처리 기법 (파이프 라이닝, 슈퍼스칼라)
hongjeZZ
hongjeZZ
백엔드 개발자로서의 성장 과정을 기록합니다.
  • hongjeZZ
    Hong's Dev Note
    hongjeZZ
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • Back-End (9)
        • Java (0)
        • Spring (9)
        • Docker & Kubernetes (0)
      • Database (0)
        • MySQL (0)
        • Redis (0)
        • 데이터베이스 (0)
      • CS (4)
        • 운영체제 & 네트워크 (1)
        • 아키텍쳐 & 분산시스템 (0)
      • 회고 (0)
      • PS (27)
        • 백준 (16)
        • 알고리즘 (2)
        • 프로그래머스 (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    Stomp
    운영체제
    DP
    Spring
    dfs
    CS
    그리디
    Redis
    시뮬레이션
    웹소켓
    mongodb
    우선순위큐
    구현
    문자열
    spirng boot
    스택
    BFS
    큐
    그래프 이론
    컴퓨터구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hongjeZZ
[TIL] 메모리 계층 구조
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.