메모리(Memory)
- 개요
- 현대 컴퓨터의 폰 노이만 구조에서는 프로그램의 코드와 데이터는 모두 메모리에 올라가서 실행됨
⇒ 프로그램 내장 방식(Von Neumann Stored Program Concept)이라고 부름
- 이 방식 덕분에 프로그램이 변경될 때마다 하드웨어를 바꾸지 않아도 됨
- 현대 컴퓨터의 폰 노이만 구조에서는 프로그램의 코드와 데이터는 모두 메모리에 올라가서 실행됨
- 메모리에는 메인 메모리와 보조 메모리가 있음
메모리의 구분
- 컴퓨터에서 사용하는 메모리는 크게 메인 메모리(Main Memory)와 보조 메모리(Secondary Memory)로 나눌 수 있음
1. 메인 메모리(Main Memory)
RAM (Random Access Memory)
: 어떤 데이터에 접근해도 접근 시간이 동일한 메모리
- 휘발성 메모리 → 전원이 끊기면 모든 데이터가 사라짐
- 그래서 대부분의 프로그램은 비휘발성 보조 메모리(하드 디스크, SSD)에 저장되어 있다가 실행할 때 RAM으로 불러옴
- CPU는 RAM에 적재된 프로그램 코드를 해석하고, 데이터를 처리함
ROM (Read Only Memory)
: 데이터를 영구적으로 저장할 수 있는 비휘발성 메모리
- 비휘발성 메모리 → 한 번 저장한 데이터는 수정할 수 없음
- 사용자 데이터 저장용으로는 쓰이지 않고, 컴퓨터 부팅을 담당하는 BIOS(부팅용 펌웨어) 같은 시스템 정보 저장에 사용됨
2. 보조 메모리(Secondary Memory)
CPU와 메모리의 협업 구조
- CPU가 프로그램을 실행할 때 코드와 데이터를 RAM에서 가져옴
- CPU는 가져온 코드를 해석해서 어떤 명령어인지 파악하고 데이터는 CPU의 최소 메모리 단위인 레지스터에 저장하여 연산을 수행함
- 연산이 끝나면 그 결과를 레지스터에 저장했다가 다시 RAM으로 복사함
레지스터 (Register)
: CPU 내부의 초고속 임시 저장소
자주 사용하는 데이터는 레지스터에 보관
- 레지스터는 RAM보다 훨씬 빠른 속도를 가진 메모리임
- 저장 용량은 작지만 CPU와 직접 연결되어 있어서 RAM보다 읽고 쓰는 속도가 훨씬 빠름
→ 자주 사용하는 데이터는 가능한 한 레지스터에 저장하는 것이 효율적임
캐시 메모리 (Cache Memory)
: 레지스터보다는 느리지만 RAM보단 빠른 장치
- CPU가 아무리 빨라도, RAM에서 데이터를 가져오는 시간 때문에 전체 속도가 느려질 수 있음
→ 이런 병목을 해결하기 위해 CPU 내부에 캐시 메모리(Cache Memory)를 둠 - 레지스터보단 느리지만, 저장할 수 있는 공간이 더 큼
- RAM보단 빠르지만, 저장할 수 있는 공간이 더 작음
- 프로그램 실행 중 자주 쓰일 것으로 예상되는 데이터를 미리 저장해둠
→ 결과적으로 전체적인 연산 속도와 시스템 성능 향상에 기여함