컴퓨터구조 (4) - 메모리

2025. 11. 22. 13:00·CS/컴퓨터구조

RAM

  • RAM(Random Access Memory)
  • 임의 접근(직접 접근): 저장된 요소에 순차적으로 접근할 필요 없이 임의의 위치에 곧장 접근 가능한 방식

DRAM(Dynamic)

  • 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
  • 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화 해야 함

SRAM(Static)

  • 시간이 지나도 저장된 데이터가 사라지지 않는 RAM
  • DRAM에 비해 속도 빠름
  • 주로 캐시 메모리에 사용

SDRAM(Synchronous)

  • 클럭 신호와 동기화된 발전된 DRAM
  • 클럭 타이밍에 맞춰 CPU와 정보를 주고받음

DDR SDRAM(Double Data Rate)

  • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
  • 두 배의 대역폭으로 한 클럭당 두번씩 CPU와 데이터 주고받음
  • DDR2(4배), DDR3(8배), DDR4(16배) …

메모리에 바이트를 밀어 넣는 순서 - 빅 엔디안, 리틀 엔디안

빅 엔디안

  • 낮은 번지의 주소에 상위 바이트부터 저장하는 방식

  • 일상적으로 숫자를 읽고 쓰는 순서와 동일
  • 메모리 값을 직접 읽거나 디버깅할 때 편리

리틀 엔디안

  • 낮은 번지의 주소에 하위 바이트부터 저장하는 방식

  • 수치 계산이 편리

캐시 메모리

  • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위함
  • SRAM 기반의 저장장치
  • 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져옴

  • 코어와 가까운 순으로 L1 캐시, L2 캐시, L3 캐시
  • 크기: L1 < L2 < L3
  • 속도: L3 < L2 < L1

  • 멀티코어 프로세서의 경우 L1, L2 캐시 메모리는 코어마다 고유한 캐시 메모리로 할당, L3 캐시는 여러 코어가 공유

  • 분리형 캐시: L1 캐시를 명령어만 저장하는 L1I 캐시와 데이터만 저장하는 L1D 캐시로 구분

캐시 히트와 캐시 미스

  • 캐시 메모리는 메모리보다 용량이 작기 때문에 모든 내용을 저장할 수는 없음
  • CPU가 사용할 법한 것을 저장
  • 캐시 히트: 캐시 메모리가 예측하여 저장한 데이터가 CPU에 의해 실제로 사용되는 경우
  • 캐시 미스: 자주 사용될 것으로 예측하여 저장했지만 틀려서 CPU가 메모리로부터 직접 데이터를 가져와야 하는 경우
  • 캐시 적중률: 캐시가 히트되는 비율, 일반적으로 85~95% 이상

참조 지역성의 원리

  • 시간 지역성: CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
    • 예) 변수
  • 공간 지역성: CPU는 접근한 메모리 공간 근처에 접근하려는 경향이 있다
    • 예) 배열

캐시 메모리의 쓰기 정책과 일관성

CPU가 캐시 메모리에 데이터를 쓸 때는 캐시 메모리에 새롭게 쓰여진 데이터와 메모리 상의 데이터가 일관성을 유지해야 함

  • 즉시 쓰기: 캐시 메모리와 메모리에 동시에 씀
    • 장점: 메모리를 항상 최신 상태로 유지
    • 단점: 데이터를 쓸 때마다 메모리를 참조해야 하므로 버스의 사용 시간과 쓰기 시간이 늘어남

  • 지연 쓰기: 캐시 메모리에만 값을 써 두었다가 추후 수정된 데이터를 한번에 메모리에 반영
    • 장점: 메모리 접근 횟수를 줄일 수 있어 속도 더 빠름
    • 단점: 메모리와 캐시 메모리 간의 일관성이 깨질 수 있음

'CS/컴퓨터구조' 카테고리의 다른 글
  • 컴퓨터구조(5) - 보조기억장치와 입출력장치
  • 컴퓨터구조 (3) - CPU
  • 컴퓨터구조 (2) - 컴퓨터가 이해하는 정보
  • 컴퓨터구조 (1) - 컴퓨터 구조의 큰 그림
KDH.dev
KDH.dev
  • KDH.dev
    CodingHard
    KDH.dev
  • 전체
    오늘
    어제
    • 전체글 (105)
      • 코딩테스트 (74)
        • 프로그래머스 (13)
        • 백준 (61)
      • CS (27)
        • 네트워크 (5)
        • 컴퓨터구조 (5)
        • 운영체제 (6)
        • 자료구조 (5)
        • 데이터베이스 (6)
      • Spring (1)
      • Java (3)
        • 자료구조 (3)
        • 알고리즘 (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    14940
    [LG유플러스] 유레카 백엔드 개발자
    컴퓨터구조
    프로그래머스
    21736
    자바
    백준
    CS
    네트워크
    멀티캠퍼스부트캠프
    운영체제
    30804
    멀티캠퍼스it부트캠프
    부트캠프후기
    데이터베이스
    자료구조
    코딩테스트
    13913
    프로그래머스 Lv.0
    16935
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
KDH.dev
컴퓨터구조 (4) - 메모리
상단으로

티스토리툴바