RAM의 특징
- RAM은 컴퓨터에서 실행할 대상에 관한 정보를 저장하고, CPU는 이를 읽어 프로그램을 실행함
- RAM은 전원이 꺼지면 데이터가 날라가기 때문에 보관이 필요한 대상은 보조기억장치에 저장함
RAM의 용량과 성능
- RAM의 용량이 적으면 프로그램을 실행할때마다 보조기억장치에서 프로그램 정보를 가져와야함 => 성능저하
- 반대로 RAM의 용량이 충분하면 프로그램을 실행할 때 정보를 RAM에서 가져오면 됨
- 따라서 RAM의 용량이 크면 많은 프로그램들을 동시에 실행하는데 유리함
RAM의 종류
1. DRAM (Dynamic RAM)
- 저장된 데이터가 동적으로 사라지는 RAM
- 소비전력이 상대적으로 낮고 집적도가 높아 대용량으로 설계하기 편함
- 데이터의 소멸을 막기위해서는 주기적으로 refresh해줘야함
- 컴퓨터의 주기억장치로 사용됨
2. SRAM (Static RAM)
- 저장된 데이터가 전원이 있는한 사라지지 않는 RAM
- DRAM보다 일반적으로 더 빠르지만, 소비전력이 높고, 가격이 높고, 집적도가 낮음
- 캐시메모리에서 주로 사용됨
3.SDRAM (Synchronous DRAM)
- 클럭 신호와 동기화되어 데이터를 주고받는 DRAM
- 대역폭을 2배로 높인 DDR(Double Data Rate) SDRAM을 현재 사용함
- DDR2, DDR3, DDR4등은 DDR SDRAM의 대역폭을 2배 단위로 확장한 것
메모리와 주소
- 메모리에 저장된 값들은 계속해서 변하게 됨
- CPU와 프로그램은 메모리의 몇번지에 무엇이 저장되어 있는지 전부 알 수 없음
- 메모리의 주소는 물리 주소와 논리 주소로 구분됨
물리 주소: 메모리 관점에서의 주소로, 정보가 실제로 저장된 하드웨어상의 주소
논리 주소: CPU와 프로그램 관점에서의 주소로, 프로그램 각각에게 부여된 가상의 메모리 주소
물리 주소와 논리 주소의 변환
- 물리 주소와 논리 주소는 MMU(메모리 관리 장치)라는 하드웨어에 의해 변환됨
- MMU는 논리 주소와 베이스 레지스터 값을 더해 논리 주소를 물리 주소로 변환함
베이스 레지스터에는 프로그램이 시작되는 가장 작은 주소값이 들어가있음
메모리 보호
- 논리 주소 범위를 벗어나는 명령어를 실행하면 다른 프로그램의 RAM데이터를 침범할 위험이 있음
- 메모리 보호를 위해 한계 레지스터를 사용함
한계 레지스터
- 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막는 레지스터
- 한계 레지스터에 논리 주소의 최대 크기값을 저장 => 프로그램의 물리 주소 범위는 베이스 레지스터보다는 크거나 같아야하고 베이스 레지스터 + 한계 레지스터값보다는 작아야 함
- CPU는 메모리에 접근하기 전 한계 레지스터보다 논리 주소가 작은지를 검사해, 메모리 값이 범위를 벗어나는 경우 인터럽트를 발생시켜 명령어 발생을 막음
캐시 메모리
- CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느림 => 메모리의 접근을 줄이기 위해 사용됨
- CPU와 메모리 사이에 위치하며, 레지스터보다 용량이 크고 메모리보다는 용량이 큰 SRAM기반 저장 장치
- 캐시 메모리는 계층적으로 구성되어 있음
L1, L2, L3 캐시로 구성되며, L1, L2 캐시는 코어 내부, L3캐시는 코어 외부에 위치해 있음
멀티코어 프로세서에서는 L1, L2 캐시를 따로 쓰는 편
L1 캐시에서 명령어를 받는 캐시와 데이터를 받는 캐시를 구분하는 분리형 캐시가 있음
캐시 미스/ 캐시 히드
- 캐시 메모리는 메모리보다 용량이 작음 -> CPU가 자주 사용할만한 내용을 예측해 저장해야함
- 캐시메모리에 저장된 값을 활용하는 경우를 캐시 히트, 예측이 틀려 메모리에 접근하는 경우를 캐시 미스라고 함
- 캐시 적중률은 CPU가 캐시 키트한 횟수를 메모리에 접근하려 하는 전체 횟수 (캐시 히트 + 캐시 미스)로 나누어 계산함
참조 지역성의 원리
- CPU가 메모리 접근에서 보이는 2가지 특성을 참조 지역성의 원리라고 함
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있음
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있음 (공간 지역성이라고도 함)
출처:
https://www.youtube.com/watch?v=Lvf-Su8eEDc&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=17&t=1s
혼자 공부하는 컴퓨터 구조+운영체제, 강민철, 한빛미디어