Operating Systemmedium면접 빈도: medium

Memory Hierarchy

#memory-hierarchy#cache#register#locality

📚먼저 읽어야 할 개념

이 문서를 이해하려면 아래 개념을 먼저 학습하는 것이 좋습니다.

Memory Hierarchy (메모리 계층 구조)

📝 메모리 (Memory)

CPU가 직접 접근할 수 있는 기억장치

프로그램 실행 시 필요한 주소, 정보 저장 및 사용


🔑 메모리의 특징

지역성 (Locality)

데이터 접근이 시간적/공간적으로 가깝게 일어남

시간적 지역성 (Temporal Locality)

특정 데이터가 한 번 접근되면 가까운 미래에 또 접근될 가능성 높음

공간적 지역성 (Spatial Locality)

접근된 기억장소와 인접한 기억장소가 접근될 가능성 높음


계층 구조

지역성 원리를 이용하여 계층으로 구성

위로 갈수록:
- 접근 시간 ↓
- 속도 ↑
- 비용 ↑
- 용량 ↓

📊 메모리 계층 구조

용량, 접근속도, 비용 간의 절충 관계

레지스터 (CPU 내부)
    ↓
캐시 (CPU 내부)
    ↓
메모리 (주기억장치, CPU 외부)
    ↓
하드 디스크 (보조기억장치, CPU 직접 접근 불가)

비교표

| 명칭 | 위치 | 접근속도 | 기억용량 | 휘발성 | |------|------|----------|----------|--------| | 레지스터 | CPU 내부 | 가장 빠름 | 가장 적음 | 휘발성 | | 캐시 | CPU 내부 | 빠름 | 적음 | 휘발성 | | 메모리 | CPU 외부 | 보통 | 보통 | 휘발성 | | 하드 디스크 | CPU 직접 접근 불가 | 낮음 | 많음 | 비휘발성 |


🚑 1. 레지스터 (Register)

CPU가 요청 처리에 필요한 데이터를 일시 저장

프로세서에 위치한 고속 메모리

특징

  • CPU는 자체적으로 데이터 저장 불가
  • 메모리로 직접 데이터 전송 불가
  • 연산을 위해 반드시 레지스터를 거쳐야 함

CPU 내부 레지스터 종류

| 종류 | 설명 | |------|------| | PC (Program Counter) | 다음 실행할 명령어 주소 | | AC (Accumulator) | 연산 결과 데이터 일시 저장 | | IR (Instruction Register) | 현재 수행 중인 명령어 | | SR (Status Register) | 현재 CPU 상태 | | MAR (Memory Address Register) | 메모리 읽기/쓰기 주소 | | MBR (Memory Buffer Register) | 메모리 읽기/쓰기 데이터 | | I/O AR | 입출력 모듈 주소 | | I/O BR | 입출력 모듈 데이터 교환 |


🚗 2. 캐시 (Cache)

사용된 데이터는 다시 사용될 가능성이 높다는 개념

데이터를 미리 복사해 놓는 임시 장소


목적

✅ CPU와 주기억장치 간 속도 차이 개선 ✅ 시스템 효율성 향상 ✅ 병목 현상 완화


캐시 사용 경우

  1. 캐시 접근 시간 << 원본 데이터 접근 시간
  2. 값을 다시 계산하는 시간 절약

CPU 캐시 종류

| 종류 | 설명 | CPU 성능 영향 | |------|------|---------------| | L1 캐시 | CPU 칩 내장, 가장 먼저 사용 | O | | L2 캐시 | L1과 비슷, 속도 느림 | O | | L3 캐시 | 메인보드에 내장 | X |

속도: L1 > L2 > RAM


캐시 히트 & 미스

캐시 히트 (Cache Hit)

캐시 메모리에 찾는 데이터 존재


캐시 미스 (Cache Miss)

캐시 메모리에 찾는 데이터 없음

→ 메모리에서 데이터 가져와 캐시에 로드

→ 시스템 버스 사용 → 속도 느림


기타 캐시

  • 디스크 캐시 (디스크 버퍼): 하드 디스크 내장 메모리
  • 페이지 캐시: OS 메인 메모리를 하드 디스크에 복사

관리: 소프트웨어적으로 관리


캐시 효율성

캐시가 저장할 데이터가 지역성을 가져야 효율적


🛵 3. 메인 메모리 (Main Memory)

주기억장치 (1차 기억장치)


RAM (Random Access Memory)

휘발성 기억 장치

특징:

  • 빠른 액세스를 위한 단기 저장
  • 전원 유지 중 모든 내용 저장
  • 전원 종료 시 삭제
  • Random Access: 어느 위치든 똑같은 속도로 접근

DRAM vs SRAM

DRAM (Dynamic RAM):

  • 동적 메모리
  • 주기적 재충전 필요
  • 대용량, 저렴
  • 주기억장치로 사용

SRAM (Static RAM):

  • 정적 메모리
  • 재충전 불필요
  • 빠름, 비쌈
  • 캐시/레지스터로 사용

ROM (Read Only Memory)

비휘발성 고정 기억 장치

특징:

  • 전원 종료 시에도 내용 유지
  • 변경 가능성 희박한 기능에 사용
  • BIOS, POST 등 시스템 소프트웨어 저장

🚲 4. 보조 기억장치 (Auxiliary Memory)

HDD, SSD

특징: ❌ CPU 직접 접근 불가 ✅ 비휘발성 ❌ 접근 시간 오래 걸림 ✅ 대용량


주기억장치 vs 보조기억장치

주기억장치 (메모리):

  • CPU 직접 접근 가능
  • 작업 공간 (책상, 메모지)

보조기억장치 (디스크):

  • CPU 직접 접근 불가 (메모리 거쳐야 함)
  • 저장 공간 (책장, 정리 노트)

💡 메모리 계층 구조의 필요성

1. 디코딩 속도

CPU가 빠르게 데이터 접근하려면 메모리가 작아야 함

이유:

  • 큰 메모리 → 디코딩 시간 증가
  • 작은 메모리 → 디코딩 시간 감소

2. 참조의 지역성

자주 쓰는 데이터는 계속 자주 쓰임

해결:

  • OS/CPU가 자주 쓰이는 데이터를 캐시로 읽어옴
  • 자주 쓰이는 데이터는 전체 데이터 양에 비해 작음
  • 캐시 < 메모리 < 하드디스크

3. 경제성

상층일수록 비쌈

전략:

  • 비싼 하드웨어: 필요한 만큼만
  • 싼 하드웨어: 넉넉하게

❓ 면접 질문 예시

Q1. 메모리 계층 구조에 대해 설명해주세요.

답변: 메모리 계층 구조는 레지스터, 캐시, 메인 메모리, 보조 기억장치로 구성됩니다. 위로 갈수록 접근 시간이 감소하고 속도가 증가하지만 비용이 비싸고 용량이 적습니다. 이는 용량, 접근속도, 비용 간의 절충 관계를 파악하여 최적의 효율을 내기 위한 구조입니다.

Q2. 캐시 메모리의 역할은?

답변: 캐시는 CPU와 주기억장치 간의 속도 차이를 개선하기 위한 고속 메모리입니다. 사용된 데이터는 다시 사용될 가능성이 높다는 지역성 원리를 이용하여 자주 사용되는 데이터를 미리 복사해 놓아 시스템 효율성을 향상시킵니다.

Q3. RAM과 ROM의 차이는?

답변: RAM은 휘발성 메모리로 전원이 유지되는 동안 데이터를 저장하며, 전원 종료 시 삭제됩니다. 빠른 액세스를 위한 단기 저장에 사용됩니다. ROM은 비휘발성 메모리로 전원 종료 시에도 내용이 유지되며, BIOS나 POST 같은 변경 가능성이 희박한 시스템 소프트웨어를 저장합니다.

Q4. 메모리 계층 구조가 필요한 이유는?

답변:

  1. 디코딩 속도: CPU가 빠르게 데이터에 접근하려면 메모리가 작아야 합니다.
  2. 참조의 지역성: 자주 쓰는 데이터는 계속 자주 쓰이므로 작은 캐시에 저장하면 됩니다.
  3. 경제성: 비싼 고속 메모리는 필요한 만큼만, 싼 저속 메모리는 넉넉하게 사용하여 비용 효율을 높입니다.

Q5. DRAM과 SRAM의 차이는?

답변: DRAM은 동적 메모리로 전원이 공급되어도 주기적으로 재충전이 필요하며, 대용량이고 가격이 저렴하여 주기억장치로 사용됩니다. SRAM은 정적 메모리로 전원 공급 중에는 재충전이 필요 없고, 접근 속도가 빠르지만 가격이 비싸 주로 캐시나 레지스터로 사용됩니다.


📚 원본 참고 자료

출처: 2023-CS-Study

추가 학습 자료

🔗관련 문서

이 개념과 함께 학습하면 좋은 문서들입니다.