RAM
실행할 프로그램의 명령어와 데이터가 저장되는 공간으로 전원이 꺼지면 저장된 내용도 사라짐
RAM을 조리대, CPU를 요리로 생각해서 이해해봅시다
조리대가 넓으면 넓을수록 조리 도구와 재료를 근처에 두고 더 빠르게 요리를 할 수 있습니다
만약 조리대에 올려 놓지 않았다면 조리 도구, 재료를 가지러 이동하는 시간이 걸립니다
단, 조리대가 일정 이상 넓어지면 어차피 더 놓을 조리 도구, 재료도 없어지므로 무한정 속도가 빨라지지는 않습니다
캐시 메모리
우선 저장장치의 특징에 대해 알아봅시다
- CPU와 저장장치가 가까울수록 빠르다
- CPU와 가까운 저장장치(빠른)는 가격이 비싸다(저장 용량이 작다)
CPU와 저장장치의 위치는 다음과 같습니다
- 코어 내부 : CPU - 레지스터
- 코어 외부 : 메모리 - 보조기억장치
CPU의 연산 속도에 비해 메모리에서 필요한 정보를 가져오는 속도가 느리다면 CPU의 효율을 다 낼 수 없습니다
각각의 속도는 평균적으로 다음과 같습니다
- CPU 연산 속도 : 단일 쿨럭 주기 3GHz인 CPU는 한 주기가 약 0.33나노초
- 레지스터 : CPU 쿨럭 주기와 비슷
- 메모리 : 약 100나노초
- SSD : 100,000나노초
- 하드디스크 : 10,000,000나노초
따라서 레지스터보다는 용량이 크면서도 메모리보다 빠른 캐시 메모리가 필요하게 됐습니다
- CPU 내부 : L1 캐시 메모리, L2 캐시 메모리
- CPU 외부 : L3 캐시 메모리
각각의 속도는 평균적으로 다음과 같습니다
- L1 캐시 메모리 : 약 1나노초
- L2 캐시 메모리 : 약 10나노초
- L3 캐시 메모리 : 약 30나노초
레지스터는 요리에 바로 사용되는 보울, 캐시 메모리는 조그만 조리통으로 생각해서 이해해봅시다
캐시 메모리는 그래도 메모리보다 용량이 작기 때문에 CPU가 사용할 정보를 예측해서 가져올 필요가 있습니다
- 시간 지역성 : 최근에 접근했던 메모리에 다시 접근하려는 경향
- 공간 지역성 : 접근한 메모리 근처를 접근하려는 경향
이렇게 캐시 메모리에 저장한 정보가 사용될 경우 캐시 히트라하고 메모리에서 필요한 데이터를 가져온다면 캐시 미스라 합니다
메모리의 종류
시간이 지나면 | 속도 | 가격 | 집적도 | 소비 전력 | 사용 용도 | |
DRAM | 데이터 소멸 | 느림 | 저렴 | 높음 | 적음 | RAM |
SRAM | 데이터 유지 | 빠름 | 비쌈 | 낮음 | 높음 | 캐시 메모리 |
- SDRAM : 클럭에 맞춰 동작하는 DRAM
- SDR SDRAM : 한 클럭당 하나씩 데이터를 주고 받는 SDRAM
- DDR SDRAM : 대역폭(주고받는 데이터 길)이 두 배 넓은 SDRAM, DDR뒤의 숫자가 1 늘어날수록 2배씩 증가
CPU의 메모리 접근
메모리에는 매번 같은 공간에 같은 프로그램이 적재되지 않고 여러 프로그램이 동시에 적재되기에 두 가지의 주소를 사용합니다
- 물리 주소 : 메모리의 실제 주소
- 논리 주소 : CPU가 사용하는 프로그램에게 부여된 주소
MMU(Memory Management Unit)를 통해서 논리 주소를 물리 주소로 변환하는데 한계 레지스터 보다 논리 주소가 작은지를 확인하여 다른 프로그램의 주소 공간을 침범하지 않게 하고 베이스 레지스터 + 논리 주소로 물리 주소의 위치를 찾습니다
예시) 논리 주소 : 100, 한계 레지스터 : 150, 베이스 레지스터 : 2000
프로그램은 2000 ~ 2150의 주소에 적재되어 있고 논리 주소가 한계 레지스터보다 작으므로 2000 + 100의 주소에 접근합니다
'CS > 운영체제' 카테고리의 다른 글
교착 상태란 무엇인가: 발생 조건과 해결 방안 (0) | 2024.11.10 |
---|---|
운영체제란 무엇인가 : 핵심 개념과 역할 (0) | 2024.11.03 |
프로세스와 스레드 (0) | 2024.10.20 |