코딩자율학습단/컴퓨터구조와 운영체제

[컴구&OS] 4장. 메모리

binary는 호남선 2025. 7. 10. 18:24

Preview

  • 메모리 역할과 특징
  • 메모리 계층 구조
  • 메모리 구성 요소
  • 메모리 접근 과정
  • 메모리 유형
  • 캐시 메모리 구조
  • 캐시 작동 방식
  • 캐시 데이터 전송 단위
  • 캐시 성능 관리

 

본 게시물은 기술노트알렉, 「코딩 자율학습 컴퓨터 구조와 운영체제」, 길벗출판사, 2025 를 학습하고 작성되었습니다.


메모리 역할과 특징

  • CPU와 프로그램 실행 지원: CPU가 처리할 데이터 빠르게 제공해 시스템 성능 최적화
  • 중간 저장소 역할: 연산 과정에서 중간 결과를 저장해 처리 속도 향상
  • 멀티태스킹 지원: 여러 프로그램 동시 실행할 수 있도록 독립적 메모리 공간 할당

메모리 계층 구조

  1. 레지스터: CPU 내부에 위치한 초고속 메모리, CPU가 직접 연산에 사용하는 데이터와 명령어 저장
  2. 캐시 메모리: CPU와 주 기억 장치 사이에 위치, CPU가 자주 사용하는 데이터와 명령어 임시 저장
  3. 주 기억 장치: 시스템 주요 작업 공간, 실행 중인 프로그램과 데이터 저장
  4. 보조 기억 장치: 데이터 영구 저장

- CPU에 가까울수록 속도 빠르고, 용량 작고, 비용 높음

메모리 구성 요소

  • 메모리 셀(memory cell): 데이터 저장하는 기본 단위, 1비트 데이터 저장
    트랜지스터(transistor): 전류의 흐름 제어해 메모리 셀 상태를 0 또는 1로 설정
    커패시터(capacitor): 전하 저장하는 소자
  • 주소 디코더: 메모리 셀에 접근 시 필요한 주소 해석하는 회로
    행 주소 스트로브(RAS, Row Address Strobe): 메모리의 특정 행 선택하는 신호
    열 주소 스트로브(CAS, Column Address Strobe): 선택된 행 내 특정 열 선택하는 신호
  • 데이터 버스: CPU와 메모리 간 데이터 전송 통로
  • 제어 회로: 메모리 읽기/쓰기 작업 제어, 리프레시 주기 관리
    제어 단자: 메모리 셀이 읽을지 쓸지 작업 종류 지정
    선택 단자: 읽거나 쓰는 작업 실행할 메모리 셀 선택
    감지 단자: 메모리 셀에서 데이터 읽어옴
    입력 단자: 데이터 입력 받아 메모리 셀에 저장
  • 감지 증폭기: 메모리 셀 데이터 읽을 때 신호 감지하고 증폭
  • 클럭 회로: 주기적으로 클럭 신호 발생시켜 메모리와 전체 시스템 동작 동기화

메모리 접근 과정

  1. 명령 전송: CPU가 메모리 컨트롤러에 어떤 주소에 접근해 데이터 읽을지 쓸지 전달
  2. 주소 지정: 메모리 컨트롤러가 요청되 데이터 주소 기반으로 특정 메모리 셀 선택
  3. 데이터 전송: 읽기 작업이면 선택된 메모리 셀에서 데이터 가져와 CPU로 전송하고, 쓰기 작업이면 CPU에서 데이터 받아 메모리에 저장

메모리 유형

저장 방식에 따른 분류

  • 휘발성 메모리: 전원 공급되는 동안만 데이터 유지, 데이터 임시 저장에 사용
DRAM(Dynamic RAM) SRAM(Static RAM)
동적 메모리, 주기적으로 데이터 리프레시 정적 메모리, 전원 공급되는 동안 데이터 유지
커패시터 사용해 데이터 저장 플립플롭 사용해 데이터 저장
대용량 데이터 비교적 소규모 데이터
비교적 저렴한 비용 비싼 가격
적은 소비 전력 큰 소비 전력
느린 속도 속도 빠름
주 기억 장치 캐시 메모리
  • 비휘발성 메모리: 전원 꺼져도 데이터 유지하는 메모리, ROM(Read-Only Memory)

사용 목적에 따른 유형

  • 시스템 메모리: 운영체제와 프로그램 실행하는 데 사용
  • 캐시 메모리: CPU에서 자주 사용하는 데이터 임시 저장
  • 비디오 메모리: GPU에서 사용, 화면에 출력하는 그래픽 데이터 저장하고 처리
  • 버퍼 메모리: 장치 간 데이터 전송 속도 차이 조정하는 임시 저장소
  • 가상 메모리: 물리 메모리(RAM) 부족 시 보조 기억 장치 일부를 사용
  • 영구 저장소: 전원 꺼져도 데이터 영구 저장

캐시 메모리

캐시 구조

L1 캐시(Level 1) L2 캐시(Level 2) L3 캐시(Level 3)
CPU 내부에 위치 CPU 내부 또는 외부에 위치 CPU 외부에 위치, 여러 CPU가 공유
매우 빠른 속도 보통 속도 느린 속도
작은 용량(수십 KB) 보통 용량(수백 KB~수 MB) 큰 용량(수 MB~수십 MB)

캐시 작동 방식

  • 캐시 히트(cache hit): CPU가 찾고 있는 데이터가 캐시에 존재
  • 캐시 미스(cache miss): CPU가 찾고 있는 데이터가 캐시에 없음, 메인 메모리나 상위 메모리에서 데이터 로드
  • 히트율(hit ratio): 전체 데이터 요청 중 캐시에서 데이터 성공적으로 찾은 비율, 높을수록 CPU 대기 시간 감소하고 성능 향상

캐시의 데이터 전송 단위

  • 워드(word): CPU에서 한번에 처리하는 데이터 크기
  • 블록(block): 캐시와 RAM 간 데이터 전송 단위

캐시 성능 관리

지역성

  • 지역성: CPU가 메모리 특정 부분을 집중적으로 사용하는 경향성 나타냄
  • 공간 지역성(spatial locality): 특정 데이터 접근하면 인접한 데이터도 접근할 가능성 높음
  • 시간 지역성(temporal locality): 최근 접근한 데이터 다시 접근할 가능성 높음

교체 정책

  • 교체 정책: 캐시 가득 찼을 때 새로운 데이터 저장 위해 기존 데이터 삭제하는 방법 결정하는 규칙
  • LRU(Least Recently Used): 가장 오래 사용하지 않은 데이터 삭제
  • FIFO(First-In, First-Out): 가장 먼저 들어온 데이터 삭제
  • LFU(Least Frequently Used): 가장 적게 사용한 데이터 삭제
  • ARC(Adaptive Replacement Cache): LRU + LFU. 자주 사용하는 데이터와 최근에 사용한 데이터 동적으로 관리
  • Random: 무작위 선정

쓰기 정책

  • 쓰기 정책: CPU에서 데이터를 캐시에 저장 시 RAM과 동기화하는 방법
  • Write-Back: 데이터를  캐시에만 저장, RAM에는 나중에 저장
  • Write-Around: 데이터를 RAM에만 저장
  • Write-Through: 데이터를 캐시와 RAM에 동시 저장

캐시 주소 매핑

  • 캐시 주소 매핑: 어떤 데이터를 캐시에 저장할지 결정하는 방식
  • 직접 매핑: RAM을 일정 크기 블록으로 나눠 캐시의 특정 위치에 할당
  • 완전 연관 매핑: RAM 블록을 캐시에 저장 시 태그도 함께 저장
  • 집합 연관 매핑: 캐시를 여러 집합으로 나누고, 각 집합에서 완전 연관 매핑 사용