메모리와 캐시메모리
1. 휘발성 메모리(Volatile Memory)
- 휘발성 메모리는 전원이 꺼지면 저장된 데이터가 사라지는 메모리입니다.
- 대표적인 예로 RAM(Random Access Memory)이 있습니다.
- RAM은 CPU가 연산을 수행할 때 임시로 데이터를 저장하는 공간으로 사용됩니다.
- 하지만 RAM은 전원이 꺼지면 저장된 데이터가 모두 소멸되기 때문에, 컴퓨터를 재부팅하면 이전에 실행한 작업을 다시 시작해야 합니다.
- 이러한 특징 때문에, RAM은 실시간으로 처리되는 데이터나 작업에 주로 사용됩니다.
2. 비휘발성 메모리(Non-Volatile Memory)
- 비휘발성 메모리는 전원이 꺼져도 저장된 데이터가 유지되는 메모리입니다.
- 대표적인 예로 HDD(Hard Disk Drive), SSD(Solid State Drive), USB 메모리 등이 있습니다.
- 비휘발성 메모리는 데이터를 저장하는 데 사용되며, 저장된 데이터는 전원이 꺼져도 유지됩니다.
- 이러한 특징 때문에, 비휘발성 메모리는 컴퓨터를 재부팅해도 저장된 데이터를 유지할 수 있어서 중요한 데이터나 파일을 보관하는 데 사용됩니다.
*최근에는 NVRAM(Non-Volatile Random Access Memory)이라는 기술이 개발되어서 비휘발성이면서도 빠른 속도로 데이터를 읽고 쓸 수 있는 메모리가 등장하고 있습니다. 이러한 기술은 서버, 데이터베이스, 스토리지 등의 분야에서 널리 사용됩니다.
RAM 의 종류
DRAM
DRAM (Dynamic Random Access Memory)은 메모리 셀이 커패시터와 트랜지스터로 구성되어 있으며, 커패시터에 저장된 전하의 양을 사용하여 정보를 저장합니다. 주기적으로 새로고침을 해줘야 하기 때문에 "Dynamic"이라는 이름이 붙습니다. DRAM은 비교적 저렴한 가격으로 대용량 메모리를 구성할 수 있지만, 속도가 느리기 때문에 주로 시스템 메모리로 사용됩니다.
SRAM
SRAM (Static Random Access Memory)은 메모리 셀이 트랜지스터로만 구성되어 있으며, 커패시터와 같은 보조적인 장치가 필요하지 않습니다. 이로 인해 속도가 빠르지만, DRAM보다 비용이 더 비싸고 밀도가 낮습니다. SRAM은 캐시 메모리 등의 작은 용도로 사용됩니다.
SDRAM(Synchronous Dynamic RAM ) 또는 DDR SDRAM
SDRAM (Synchronous Dynamic Random Access Memory)은 DRAM의 속도 한계를 극복하기 위해 개발된 메모리입니다. CPU와 메모리 컨트롤러 간에 동기화된 클럭 신호를 사용하여 데이터를 전송하기 때문에 SDRAM이라는 이름이 붙습니다. 이로 인해 DRAM보다 높은 속도와 처리량을 제공할 수 있습니다.
SDR SDRAM (클럭당 하나씩 데이터를 주고받을 수 있는 SDRAM): 클럭 신호와 동기화된 DRAM
SDR SDRAM (Single Data Rate Synchronous Dynamic Random Access Memory)은 SDRAM의 초기 버전으로, 데이터가 한 번에 한 번만 전송됩니다. 이로 인해 처리 속도는 느리지만, 비교적 저렴한 가격으로 대용량 메모리를 구성할 수 있습니다.
DDR SDRAM
대역폭(데이터를 주고 받는 길의 넓이)을 넓혀 속도를 빠르게 만든 SDRAM
매모리의 주소 공간
물리주소: 정보가 실제로 저장된 하드웨어상의 주소
논리주소: 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
논리 주소와 물리 주소 간의 변환은 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행
베이스 레지스터 ( 프로그램의 가장 작은 물리주소, 프로그램의 첫 물리 주소를 저장 )
논리주소: 프로그램 시작점으로부터 떨어진 거리
메모리 보호 기법
논리 주소 범위를 벗어나는 명령어를 실행 방지하고 실행중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 방법으로 한계 레지스터를 사용함.
CPU 가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단.
캐시메모리
참조 지역성 원리
캐시히트: 캐시 메모리 내 데이터가 CPU 에서 활동될 경우
캐시미스: 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
캐시 적중률: 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
캐시 메모리는 참조 지역성의 원리에 따라 메모리로부터 가져올 데이터를 결정.
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다. (시간 지역성)
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. (공간 지역성)