RAM
RAM의 특성과 종류
주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고, 메모리라는 용어는 그 중 RAM을 지칭하는 경우가 많다.
RAM은 실행할 대상을 저장한다. 전원이 꺼지면 저장한 내용이 사라진다. 이는 보조기억장치에 저장함.
RAM은 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치이다.
RAM 용량이 크면 좋은 점
RAM의 용량은 컴퓨터 성능에 어떤 영향을 미칠까
- 메모리 성능의 지표가 되는 요소는 메모리 레이턴시, 메모리 쓰루풋 및 대역폭, 메모리 레벨 병렬처리가 있다.
- 하지만 RAM 용량이 크면 많은 프로그램들을 동시에 실행하는 데 유리하다.
DRAM, SRAM, SDRAM, DDR SDRAM
DRAM (Dynamic RAM)
- Dynamic = '동적의'
- 저장된 데이터가 동적으로 사라지는 RAM
- 데이터의 소멸을 막기 위해 주기적으로 재활성화 해야한다.
- 일반적으로 메모리로 사용하는 RAM
- 상대적으로 소비전력이 낮고 저렴하고 집적도가 높아 대용량으로 설계하기 용이하기 때문이다.
SRAM (Static RAM)
- 'Static' = '정적의'
- 저장된 데이터가 정적인 (사라지지 않는) RAM -> 전원이 꺼지면 사라지는 건 변하지 않음
- DRAM보다 일반적으로 더 빠름
- 일반적으로 캐시 메모리에서 사용되는 RAM
- 상대적으로 소비전력이 높고 가격이 높고 집적도가 낮아 대용량으로 설계할 필요가 없으나 빨라야하는 장치에 사용된다.
SDRAM (Synchronous DRAM)
- 발전된 형태의 DRAM
- 클럭 신호와 동기화된 DRAM
DDR SDRAM (Double Data Rate SDARM)
- 발전된 형태의 DRAM
- 최근 가장 대중적으로 사용하는 RAM
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
- 대역폭은 데이터를 주고받는 길의 너비
DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, DDR5 SDRAM는 전단계보다 2배씩 길이 넓다고 생각하면 된다.
메모리의 주소 공간
논리 주소와 물리 주소가 있다.
CPU와 실행 중인 프로그램 입장에서 바라본 주소인 논리 주소
실제 하드웨어 주소 번지에 해당되는 물리 주소
- CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못한다.
- 메모리에 저장된 값들은 시시각각 변하기 때문이다.
- 새롭게 실행된 프로그램은 새롭게 메모리에 적재
- 실행이 끝난 프로그램은 메모리에서 삭제
- 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라진다.
물리 주소
- 메모리 입장에서 바라본 주소
- 정보가 실제로 저장된 하드웨어상의 주소
논리 주소
- CPU와 실행 중인 프로그램 입장에서 바라본 주소
- 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소
물리 주소와 논리 주소의 변환
- MMU (메모리 관리 장치)라는 하드웨어에 의해 변환
- MMU는 논리 주소와 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환
- 베이스 레지스터는 프로그램의 가장 작은 물리 주소 (프로그램의 첫 물리 주소)를 저장하는 셈
- 논리 주소는 프로그램의 시작점으로부터 떨어진 거리인 셈
메모리 보호
- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안됨
한계 레지스터 (Limit register)
- 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
- 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 크기를 저장
- 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값
- CPU는 메모리에 접근하기 전, 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다.
- 논리 주소가 한계 레지스터보다 크면 인터럽트가 발생한다.
- 실행 중인 프로그램의 독립적인 실행 공간을 확보하고 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호한다.
캐시메모리
CPU가 메모리에 접근하는 속도는 CPU 연산 속도보다 느리다.
저장 장치 계층 구조 (Memory hierarchy)
1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
레지스터 vs 메모리(RAM) vs USB 메모리
낮은 가격대의 대용량 저장장치를 원한다면 느린 속도는 감수해야 하고, 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야 한다.
- 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낼 수 있다.
- 저장 장치 계층 구조는 각기 다른 용량과 성능의 저장 장치들을 계층화하여 표현한 구조이다.
캐시 메모리
- CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
- CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생
- CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져와 사용하기 위해 존재
- CPU의 연산속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치이다.
- 메모리에 접근하는 것은 물건을 사러가는 것
- 메모리는 물건은 많지만 집과는 멀리 떨어져 있어 왕복이 오래 걸리는 대형마트
- 캐시 메모리는 물건이 많지는 않아도 집과 가까이 있는 편의점으로 비유 가능
계층적 캐시 메모리 (L1-L2-L3 캐시)
- 일반적으로 L1 캐시와 L2 캐시는 코어 내부에, L3캐시는 코어 외부에 위치
- 현대 CPU는 멀티코어로 설계, 따라서 각 캐시 메모리마다 다른 값이 저장될 수 있다. 따라서 멀티 코어 프로세서에서는 캐시 메모리가 동일한 내용을 갖게끔 싱크를 맞춰주는 것이 중요하다.
분리형 캐시: L1을 분리하는 경우도 있음
참조 지역성의 원리
- 캐시 메모리는 메모리보다 용량이 작다
- 당연하게도 메모리의 모든 내용을 저장할 수 없다.
- CPU가 자주 사용할 법한 내용을 예측해서 저장한다.
- 이를 캐시 히트라고 한다.
- 예측이 틀렸을 경우, 즉 CPU가 메모리에 접근해야 하는 경우를 캐시 미스라고 한다.
캐시 적중률
캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) => 높으면 성능이 좋다는 것, 현대는 약 80% 이상의 적중률을 보인다고 한다.
캐시 적중률을 높여야 한다! == CPU가 사용할 법한 데이터를 잘 예측해야 한다!
CPU가 사용할 법한 데이터를 예측하는 방법이 참조 지역성의 원리
참조 지역성의 원리
- CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. (공간 지역성, 사진 삽입)
'컴퓨터 구조' 카테고리의 다른 글
[컴퓨터구조] 입출력장치 (1) | 2024.03.29 |
---|---|
[컴퓨터구조] 보조기억장치 (1) | 2024.03.25 |
[컴퓨터구조] 빠른 CPU를 위한 설계 (0) | 2024.03.15 |
[컴퓨터구조] CPU (1) | 2024.03.14 |
[컴퓨터구조] 소스 코드와 명령어 (1) | 2024.03.08 |