✅ RAM의 특징과 종류
📦 RAM의 특징
실행할 프로그램의 명령어와 데이터가 저장되는 메모리로 전원을 끄면 저장된 명령어와 데이터가 날아가는 휘발성 저장 장치로 CPU는 보조기억장치에 직접 접근을 하지 못하기에 실행하고 싶은 프로그램이 보조기억장치에 있다면 RAM으로 복사하여 저장한 뒤 실행한다 즉 실행할 대상이 저장되는 공간이다.
📌 비휘발성 저장 장치
하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조 기억장치로 전원이 꺼져도 저장된 내용이 유지된다.
📦 RAM의 용량과 성능
RAM의 용량이 작다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어지기에 RAM의 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는데 유리하다.
- RAM의 용량에 비례해서 실행 속도가 증가하는 것은 아니기에 어느 정도 증가한다는 것을 알아두자
📦 RAM의 종류
DRAM (Dymanic RAM)
- 우리가 일반적으로 사용하는 RAM으로 시간이 흐름에 따라 저장된 데이터가 변하(사라지)는 특징이 있다.
- 데이터가 변하기에 이를 막기 위해 주기적으로 데이터를 재활성화(다시 저장) 해야한다.
- 소비전력이 비교적 낮고, 저렴하며, 집적도가 높기에 대용량으로 설계하기 용이하다는 점으로 위의 단점에도 불구하고 많이 사용된다.
SRAM (Static RAM)
- 저장된 데이터가 변하지(사라지)지 않는 RAM으로 주기적으로 데이터를 재활성화할 필요가 없다. (비휘발성이 아니다! 전원 끄면 데이터 사라진다.)
- DRAM보다 일반적으로 속도가 더 빠르다.
- DRAM에 비해 집적도가 낮고, 소비 전력도 크며, 가격도 비싸기에 속도가 빨라야 하는 저장장치(캐시 메모리)에 사용된다.
SDRAM (Synchronous Dynamic RAM)
- 클럭 신호와 동기화된, 발전된 형태의 DRAM으로 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있다.
- DRAM과 SRAM의 합성어라 오해하기 쉽지만 연관이 없다.
DDR SDRAM(Double Data Rate SDRAM)
- 최근 가장 흔히 사용되는 RAM으로 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
📌 대역폭에 따른 SDRAM 비교
SDRAM의 2배를 제공하는 DDR SDRAM의 2배를 제공하는 DDR2 SDRAM의 2배를 제공하는 DDR3 SDRAM의 2배를 제공하는 DDR4 SDRAM 즉 기본 SDRAM의 16배를 제공하는 DDR4 SDRAM
✅ 메모리의 주소 공간
📦 물리 주소와 논리 주소
메모리에 저장된 정보는 시시각각 변하기에 CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 어떤 데이터가 저장되어 있는지 모두 알 수 없다. 그렇기에 메모리가 사용하는 물리 주소가 아닌 CPU와 실행 중인 프로그램 각각에서 사용하는 논리 주소를 받아들이고, 해석하고, 연산한다.
- 물리 주소: 메모리가 사용하는 주소로 실제 데이터가 저장된 하드웨어상의 주소
- 논리 주소: 메모리에 새로운 프로그램이 언제든 적재될 수 있고, 사라질 수도 있기에 물리 주소를 사용하는 것이 아닌 0번지부터 시작하는 주소로 프로그램과 CPU가 각각 가지고 있다.
논리주소가 물리주소로 변환되는 방법
- 논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU라는 하드웨어)에 의해 수행된다.
- MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 물리 주소로 변환한다.
- 베이스 레지스터: 프로그램의 가장 작은 물리 주소로 프로그램의 첫 물리 주소를 저장한다.
📦 메모리 보호 기법
다른 프로그램의 영역을 침범할 수 있는 명령어(논리 주소를 벗어난 명령어)는 위험하기에 이러한 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램의 영향을 받지 않도록 보호하는 방법으로 한계 레지스터가 이러한 역할을 담당한다.
- 논리 주소의 최대 크기를 한계 레지스터에 저장하여 프로그램의 물리 주소 범위를 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만으로 만든다.
- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안된다.
- CPU는 메모리에 접근하기 전 접근하고자 하는 값이 한계 레지스터보다 큰지를 항상 검사하여 클 시 인터럽트를 발생시켜 중단한다.
✅ 캐시 메모리
📦 저장 장치 계층 구조
사용자는 빠르고 용량이 큰 저장장치를 원하지만 이러한 개념은 양립하기 힘든 개념이다. 저장장치는 아래의 2가지 명제를 일반적으로 따르기 때문이다.
- CPU와 가까울수록 빠르고, 멀수록 느리다.
- 속도가 빠른 저장 장치는 용량이 작고, 가격이 비싸다.
레지스터, 메모리, 보조기억장치 비교
📦 캐시 메모리
CPU가 메모리에 접근하는 속도가 CPU의 연산 속도를 따라가지 못한다면 CPU의 성능이 좋아도 소용이 없다. 그렇기에 CPU와 메모리 사이에 위치하며, 레지스터보다 용량이 큰 SRAM 기반의 저장 장치인 캐시 메모리가 등장하였다.
- CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와 활용한다.
- 메모리까지 접근을 하지 않아도 되니 데이터에 접근 시간을 줄일 수 있다.
- CPU(코어)에 가까운 순서대로 계층을 구성하며 L1 캐시, L2 캐시, L3 캐시(메모리와 가까움)라고 부른다.
- 용량는 L1 캐시, L2 캐시, L3 캐시 순으로 커지고, L3 캐시, L2 캐시, L2 캐시 순으로 빨라지고, L3 캐시, L2 캐시, L2 캐시 순으로 비싸진다.
- CPU가 메모리 내에 데이터가 필요하다면 L1 캐시, L2 캐시, L3 캐시 순으로 검색한다.
📌 멀티코어 프로세서의 캐시 메모리
가장 흔히 사용되는 형태로 공유하는 캐시 메모리에 각각의 코어(CPU)마다 캐시 메모리를 가지고 있다.
그렇기에 이 코어마다 가지고 있는 캐시 메모리의 Sync를 맞추는 것 또한 멀티 코어 프로세서의 중요한 요소이다.
분리형 캐시
이는 조금이라도 더 빠르게 만들기 위해 구상된 방법으로 명령어만을 담고 있는 L1D 캐시와 L1I 캐시와 같이 분리해서 관리하기도 한다.
📦 참조 지역성의 원리
캐시 메모리에는 모든 내용을 저장할 수 없기에 CPU가 사용할 법한 데이터를 가져와 저장해야하는데 이 때 사용되는 원리로 CPU가 메모리에 접근할 때 주된 경향을 바탕으로 만들어진다.
- 캐시히트: 예측이 성공해 캐시 메모리를 내 데이터가 CPU에서 활용된 경우
- 캐시미스: 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
- 우리가 사용하는 컴퓨터의 적중률은 대략 85 ~ 95% 정도이다 (적중률: 캐시 히트 횟수 / 캐시 히트 횟수 + 캐시 미스 횟수)
CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
자주 사용할만한 데이터에 대해 변수로 만들어서 사용하 듯 최근에 접근했던 메모리 공간에 다시 접근하려하는 경향이다. 이를 시간 지역성이라고 한다.
CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.
CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 한 데 모여 있는 경향이 있다. 그렇기에 워드 프로세서 프로그램을 실행할 때에는 워드 프로세서 프로그램이 모여 있는 공간 근처를 집중적으로 접근하게 된다. 이를 공간 지역성이라고 한다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
메모리 관리 (0) | 2024.03.10 |
---|---|
메모리 (0) | 2024.03.02 |
CPU의 작동 원리 (1) | 2024.03.02 |
CPU, 메모리 개념 (0) | 2024.03.02 |