RAM은 명령어와 데이터를 저장하는 주기억장치로 전원을 끄면 저장된 명령어와 데이터가 모두 날아가는 휘발성 저장 장치입니다.
RAM | 보조기억장치(HDD, SSD, USB 등) |
---|---|
휘발성 저장 장치 | 비휘발성 저장 장치 |
CPU 접근 가능 | CPU 접근 불가능 |
실행할 대상 저장 | 보관할 대상 저장 |
CPU는 보조기억장치에 직접 접근하지못하므로, CPU가 실행하고 싶은 프로그램이 보조기억장치에 있는 경우 이를 RAM으로 복사하여 저장한 뒤 실행합니다.
따라서, RAM의 용량이 크다면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리합니다. 그렇지만 용량이 필요 이상으로 커지면 RAM의 용량이 커져도 속도가 크게 증가하지 않습니다.
DRAM과 SRAM을 비교해보겠습니다.
DRAM | SRAM | |
---|---|---|
재충전 | 필요함 | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴함 | 비쌈 |
집적도 | 높음 | 낮음 |
소비 전력 | 적음 | 높음 |
사용 용도 | RAM | 캐시 메모리 |
물리 주소 | 논리 주소 |
---|---|
메모리 하드웨어가 사용하는 주소 | CPU와 실행 중인 프로그램이 사용하는 주소 |
정보가 실제로 저장된 주소 | 프로그램에게 부여된 0번지부터 시작되는 주소 |
CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 합니다.
ex) 프로그램 A의 물리 주소: 15000번지, CPU 명령: 프로그램 A의 100번지 데이터 삭제
CPU가 발생시킨 논리 주소: 100, 베이스 레지스터 값: 15000 물리 주소: 15100
메모리에서 15100번지의 데이터를 삭제
다음 상황을 가정해보겠습니다.
메모장 프로그램의 물리 주소: 1000번지 ~ 1999번지, 인터넷 브라우저의 물리 주소: 2000번지 ~ 2999번지
CPU 명령: 메모장 1500번지에 숫자 100을 저장
이 명령어를 수행하게 되면 메모리의 2500(=1000+1500)번지, 즉 인터넷 브라우저 프로그램에 숫자 100을 저장하게 됩니다.
따라서 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 수 있는 방법이 필요합니다.
따라서, CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안됩니다. CPU가 한계 레지스터 값을 넘어서는 논리 주소에 접근하려고 하면 인터럽트를 발생시켜 실행을 중단합니다.
CPU가 메모리에 접근하는 시간 < CPU 연산 속도 이므로, 이를 극복하기 위한 저장 장치로 캐시 메모리가 고안되었습니다.
저장 장치는 일반적으로 아래와 같은 명제를 따릅니다.
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
- 속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비쌈
- CPU와의 거리: 레지스터 < RAM < USB 메모리
- 가격: USB 메모리 < RAM < 레지스터
- 속도: USB 메모리 < RAM < 레지스터
https://tvtropes.org/pmwiki/pmwiki.php/UsefulNotes/MemoryHierarchy
캐시 메모리는 CPU와 메모리 사이에 위치하고 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
CPU는 프로그램을 실행하는 과정에서 메모리에 빈번히 접근해야하지만 CPU가 메모리에 접근하는 속도 < CPU의 연산 속도이므로, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 이 속도 차이를 줄입니다.
- CPU와의 거리: L1 캐시 < L2 캐시 < L3 캐시
- 용량: L1 캐시 < L2 캐시 < L3 캐시
- 속도: L3 캐시 < L2 캐시 < L1 캐시
참조 지역성 원리는 캐시 메모리가 메모리로부터 가져올 데이터를 결정하는 원칙입니다.
보조기억장치 | 메모리 | 캐시 메모리 |
---|---|---|
전원이 꺼져도 기억할 대상을 저장 | 실행 중인 대상을 저장 | CPU가 사용할 법한 대상을 예측하여 데이터를 저장 |
참조 지역성의 원리
- 시간 지역성: CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
(변수에 값을 저장하고 나면 언제든 다시 접근하여 저장된 값을 사용할 수 있음)- 공간 지역성: CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다
(프로그램 내에서도 관련 데이터들은 모여서 저장됨)
확인문제
p.185, 3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰시오
p.205, 1. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.
1: 레지스터, 2: 캐시 메모리, 3: 메모리, 4: 보조기억장치
참고문헌
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299014282&start=slayer