티스토리 뷰

CS

[CS] 메모리 - RAM, 엔디안, 캐시

집사킴 2025. 11. 19. 22:27
728x90

메모리

RAM, Random Access Memory

  • 메인 메모리(주기억장치)
  • 현재 실행 중인 프로그램을 구성하는 데이터와 명령어를 저장하는 부품
  • 주소: 데이터 저장 위치
  • 휘발성: 전원이 공급되지 않을 때 저장하고 있는 정보가 지워지는 특성
  • RAM의 용량은 컴퓨터에 큰 영향을 끼침. 클 수록 보조기억장치의 데이터를 많이 가져와 미리 저장할 수 있어 많은 프로그램 동시 실행 시 유리
  • 특정 번지의 데이터에 직접 (directly) 접근할 수 있음. ↔ 순차 접근 (sequential access)

RAM의 종류

  • DRAM: 시간이 지나면 저장된 데이터가 점차 사라지는 RAM (Dynamic RAM)
  • SRAM: 시간이 지나도 저장된 데이터가 사라지지 않는 RAM (Static RAM). 휘발성은 여전히 있음. 전원 차단 시 내용 소실됨. 캐시 메모리 등에서 사용
  • SDRAM: 클럭 신호와 동기화된, 보다 발전된 형태의 DRAM
  • DDR SDRAM: 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
  • DDR2 SDRAM: DDR SDRAM보다 대역폭이 2배 넓은 SDRAM
  • DDR3 SDRAM: DDR2보다 2배. SDR SDRAM의 8배
  • DDR4 SDRAM: SDR SDRAM의 16배. 많이 사용됨.

엔디안 (endian): 메모리가 데이터에 저장되는 순서

  • 빅 엔디안: 낮은 번지의 주소에 상위 바이트부터 저장하는 방식
    • 장점: 인간 숫자체계와 동일하여 메모리 값을 직접 읽거나 디버깅 시 편함
  • 리틀 엔디안: 낮은 번지의 주소에 하위 바이트로부터 저장하는 방식
    • 장점: 수치 계산 시 1의 자릿수부터 계산하듯 작은 값부터 처리하므로 수치 계산이 편리
  • 바이 엔디안(bi-endian) : 빅 리틀 둘 중 하나를 선택할 수 있도록 설계된 경우

 


캐시 메모리 (cache memory)

  • CPU가 조금이라도 더 빨리 메모리에 저장된 값에 접근하기 위해 사용하는 저장장치
  • CPU와 메모리 사이에 위치한 SRAM 기반의 저장장치
  • L1 > L2 > L3 캐시 순으로 코어와 가깝고 빠름. L1 < L2 < L3 순으로 큼
  • 일반적으로 L1캐시와 L2캐시는 코어 내부에, L3 캐시는 코어 외부에 위치
  • 멀티코어 프로세서의 경우 일반적으로 L1, L2는 코어마다, L3는 여러 코어가 공유

 

캐시 히트 미스

  • 캐시 히트(hit): 캐시가 실제 사용되는 경우
  • 캐시 미스(miss): 캐시에 원하는 데이터가 없어 CPU가 메모리로부터 필요한 데이터를 직접 가져와야 하는 경우
  • 캐시 적중률(hit rate): 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
    • 범용 컴퓨터의 캐시 적중률 대략 85~95%

참조 지역성의 원리

  • 시간 지역성 (temporal locality): CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
    • ex) 프로그래밍 언어의 변수
  • 공간 지역성 (spatial locality): CPU는 접근한 메모리 공간의 근처에 접근하려는 경향이 있다
    • ex) 배열

 

 

RAM은 임의접근 가능한게 특징인데 왜 공간지역성이 있는가?

  • RAM이 Random Access Memory인 이유:
    • CPU가 어느 주소든 같은 논리적 시간에 읽고 쓸 수 있음 → 알고리즘 관점에서 접근 O(1)
  • 단, 이것은 논리적 시간복잡도이고
  • 실제 물리적 성능(latency) 은 메모리 계층 구조와 캐시, 버스 대역폭, DRAM 행/열 접근 방식에 따라 달라짐

캐시 일관성

  • 캐시 메모리와 메모리 간 데이터가 동일한 상태
  • 코어 간 캐시 메모리의 일관성도 신경써야 함

캐시 쓰기 정책

  • 즉시 쓰기 (write-through): 캐시 메모리와 메모리에 동시에 쓰는 방법
    • 장점: 메모리를 항상 최신 상태로 유지하여 캐시 메모리와 메모리 간의 일관성 깨지는 상황 방지
    • 단점: 데이터를 쓸 때마다 메모리 참조 필요. 버스 사용시간 및 쓰기 시간 늘어남
  • 지연 쓰기 (write-back0: 캐시 메모리에만 값을 써 두었다가 추후 수정된 데이터를 한 번에 메모리에 반영하는 방법
    • 장점: 메모리 접근 횟수 줄어듦. 속도 빠름.
    • 단점: 메모리와 캐시 메모리 간 일관성 깨질 수 있음

→ 데이터를 캐싱한다는 것은 데이터 접근 시 어느정도 빠른 성능을 보장하지만, 동시에 일관성 유지를 위한 책임이 따른다.


참고: 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접 (https://product.kyobobook.co.kr/detail/S000214014967)

728x90
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함