티스토리 뷰
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
'CS' 카테고리의 다른 글
| [CS] 보조기억장치, 입출력장치 (0) | 2025.11.26 |
|---|---|
| [CS] CPU - 레지스터, 인터럽트, 멀티코어/멀티스레드 (0) | 2025.11.12 |
| [컴퓨터 구조] 문자 인코딩 - ASCII, EUR-KR, 유니코드, Base64 (0) | 2025.11.05 |
| [컴퓨터 구조] 데이터, 명령어, 부동 소수점, 핵심 부품 (0) | 2025.11.02 |
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 캐시
- laravel
- 분산처리
- springboot
- mongoDB
- devops
- 쿠버네티스
- database
- kubernetes
- index
- 대규모 데이터 처리
- 몽고디비
- Spring
- 카프카
- Infra
- NoSQL
- 라라벨
- kafka
- 샤딩
- phpUnit
- php
- JUnit
- docker
- MySQL
- java
- Container
- 스프링
- k8s
- CS
- AOP
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함