메모리 계층 구조

2024. 10. 10. 09:59·Computer Science/Operating System
목차
  1. 메모리 계층 구조?
  2. 레지스터
  3. 캐시
  4. 주 기억장치
  5. 보조 기억장치
  6. CPU가 데이터를 처리하는 과정

메모리 계층 구조?

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

 

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

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

  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
  1. 메모리 계층 구조?
  2. 레지스터
  3. 캐시
  4. 주 기억장치
  5. 보조 기억장치
  6. CPU가 데이터를 처리하는 과정
'Computer Science/Operating System' 카테고리의 다른 글
  • 캐시히트와 캐시미스
  • PCB와 Context Switching
  • 컨텍스트 스위칭(context switching)
  • 프로세스와 스레드
mint723dev
mint723dev
mint723dev 님의 블로그 입니다.
  • mint723dev
    mint723dev 님의 블로그
    mint723dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • Computer Science (16)
        • Computer Architecture (0)
        • Data Structure (2)
        • Database (4)
        • Network (4)
        • Operating System (6)
        • Software Engineering (0)
      • Java (6)
      • 자료 구조 (0)
      • 코딩테스트 (62)
        • LeetCode (1)
        • 프로그래머스 (29)
        • 백준 (32)
      • Spring (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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