메모리 계층 구조

2024. 10. 10. 09:59·Computer Science/Operating System

메모리 계층 구조?

컴퓨터 시스템에서 데이터 저장과 접근을 최적화하기 위해 설계된 구조

 

메모리 계층 구조를 사용하는 이유

컴퓨터 시스템의 성능과 효율성을 최적화하기 위함

  1. 성능 최적화: CPU가 필요한 데이터에 빠르게 접근할 수 있도록 함
  2. 비용 효율성: 고가의 고속 메모리와 저가의 대용량 메모리를 적절히 조합함
  3. 데이터 관리 효율화: 자주 사용되는 데이터를 빠른 메모리에 저장하여 전체 시스템의 효율을 높임

레지스터

CPU 내부에서 데이터를 직접 처리하는 가장 빠른 메모리

  • 현재 실행중인 명령어
    • 명령어 레지스터(IR)가 처리하며 “LOAD A, 100”과 같은 현재 실행중인 명령어를 저장
  • 연산에 필요한 임시 데이터
  • 메모리 주소
  • 프로그램 카운터
    • 다음에 실행할 명령어의 주소 저장

캐시

CPU와 주 메모리 사이의 속도 차이를 줄이는 고속 버퍼

  • L1 캐시
    • 자주 사용되는 변수 값 저장
    • 명령어 캐시와 데이터 캐시로 분리되어 있음
  • L2 캐시
    • 작은 배열이나 자주 호출되는 함수의 코드 저장
  • L3 캐시
    • 더 큰 데이터 구조나 프로그램의 핫스팟 코드 저장
      • 핫스팟 코드?
        • 자주 실행되는 함수나 메서드
        • 반복문이 많은 알고리즘 코드
        • 자주 호출되는 라이브러리 함수

캐시의 데이터는 다음과 같이 관리됨

  1. 지역성 원리 활용
    • 시간적 지역성
      • 최근에 접근한 데이터는 가까운 미래에 다시 접근할 가능성이 높음
    • 공간적 지역성
      • 특정 데이터 주변의 데이터도 곧 접근할 가능성이 높음
  2. 캐시 교체 정책
    • LRU (Least Recently Used)
      • 가장 오래전에 사용된 데이터를 먼저 제거
    • LFU (Least Frequently Used)
      • 사용 빈도가 가장 낮은 데이터를 먼저 제거
    • FIFO (First In First Out)
      • 가장 먼저 들어온 데이터를 먼저 제거
  3. 프리페칭(prefetching)
    • 예측 알고리즘을 사용하여 앞으로 필요할 것 같은 데이터를 미리 캐시에 로드

주 기억장치

현재 실행중인 프로그램과 데이터를 저장

  • 현재 실행 중인 프로그램의 코드
  • 프로그램에서 사용하는 변수와 데이터 구조
  • 운영체제의 일부 구성 요소

보조 기억장치

  • 설치된 프로그램 파일
  • 문서, 이미지, 비디오 등의 사용자 데이터
  • 운영체제 파일
  • 가상 메모리용 페이징 파일

CPU가 데이터를 처리하는 과정

  1. 명령어 가져오기
    • L1I$ → L2 → L3 → 메모리 순으로 접근하며 실행할 명령어 탐색
  2. 명령어 해독
    • CPU 내부의 명령어 레지스터에 로드되며 명령어를 해독하여 어떤 연산을 수행해야하는지 파악
  3. 데이터 가져오기
    • L1D$ → L2 → L3 메모리 순으로 접근하며 명령어 실행에 필요한 데이터 탐색
  4. 연산 수행
    • 필요한 데이터를 CPU 내부의 레지스터에 로드
    • CPU의 산술 논리 장치(ALU)에서 실제 연산을 수행
  5. 결과 저장
    • 연산 결과가 다시 레지스터에 저장 (필요에 따라 캐시나 메모리에 기록)

결과적으로, 메모리 계층 구조와 CPU의 데이터 처리 과정은 상호 보완적으로 작용하여 컴퓨터 시스템의 전반적인 성능과 효율성을 최적화하는 데 중요한 역할을 수행함

'Computer Science > Operating System' 카테고리의 다른 글

캐시매핑  (0) 2024.10.31
캐시히트와 캐시미스  (0) 2024.10.30
PCB와 Context Switching  (2) 2024.10.23
컨텍스트 스위칭(context switching)  (0) 2024.09.20
프로세스와 스레드  (0) 2024.09.19
'Computer Science/Operating System' 카테고리의 다른 글
  • 캐시히트와 캐시미스
  • PCB와 Context Switching
  • 컨텍스트 스위칭(context switching)
  • 프로세스와 스레드
mint723dev
mint723dev
mint723dev 님의 블로그 입니다.
  • mint723dev
    mint723dev 님의 블로그
    mint723dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (90)
      • Computer Science (16)
        • Computer Architecture (0)
        • Data Structure (2)
        • Database (4)
        • Network (4)
        • Operating System (6)
        • Software Engineering (0)
      • Java (6)
      • 자료 구조 (0)
      • 코딩테스트 (64)
        • LeetCode (1)
        • 프로그래머스 (29)
        • 백준 (34)
      • Spring (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    DP
    탐욕법
    DFS
    BFS
    오블완
    deque
    JVM
    티스토리챌린지
  • 최근 댓글

  • 최근 글

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

티스토리툴바