- RAM의 특징과 종류에 대해 학습한다.
- 논리 주소와 물리 주소의 차이를 이해한다.
- 논리 주소를 물리 주소로 변환하는 방법을 이해한다.
- 캐시 메모리와 저장 장치 계층 구조의 개념을 이해한다.
➡ RAM에는 실행할 프로그램의 명령어와 데이터가 저장됨
➡ RAM은 전원을 끄면 저장된 내용이 모두 삭제되는 휘발성 저장 장치임
| 저장장치 | |
|---|---|
| 휘발성 저장 장치 (volatile memory) | 전원을 끄면 저장된 내용이 모두 삭제됨 |
| 비휘발성 저장 장치 (non-volatile memory) | 전원을 꺼도 저장된 내용이 삭제 되지 않음 ➡ 예로 하드디스크나 SSD, CD-ROM,USB 메모리와 같은 보조기억장치가 있음 |
➡ CPU는 보조기억장치에 직접 접근하지 못 하고, 휘발성 저장 장치와 비휘발성 저장 장치의 특징때문에 보조기억장치에 '보관할 대상'을 저장하고, RAM에는 '실행할 대상'을 저장하여 프로그램을 실행할 때는 보조기억장치에서 RAM으로 복사하여 저장한 뒤 실행함
🔎 RAM의 용량이 크면 어떤 점이 좋을까?
➡ CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 되는데 RAM의 용량이 크다면 보조기억 장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있음
➡ 즉, 많은 프로그램을 동시에 실행하는 데 유리함
➡ RAM의 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않음.
DRAM (Dynamic RAM) : 저장된 데이터가 시간이 지나면 점차 사라짐
장점 : 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이함 ➡ 메모리로 사용됨단점 : 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다. SRAM (Static RAM) : 저장된 데이터가 시간이 지나도 사라지지 않음
장점 : 주기적으로 데이터를 재활성화할 필요가 없고, 일반적으로 DRAM보다 속도도 빠름단점 : DRAM보다 집적도가 낮고, 소비 전력도 크며, 가격이 더 비쌈 ➡ 대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장장치인 캐시 메모리에 사용됨SDRAM (Synchronous Dynamic RAM) : 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고 받을 수 있는 DRAM
DDR RAM (Double Data Rate RAM) : 최근 가장 흔히 사용되는 RAM . 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
대역폭 : 데이터를 주고 받는 길의 너비SDRAM을 SDR SDRAM이라고도 함DDR2 SDRAM은 DDR SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 두 배 넓음DDR3 SDRAM은 DDR2 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 네 배 넓음DDR4 SDRAM은 DDR3 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 열여섯 배 넓음메모리 하드웨어가 사용하는 주소. 실제로 저장된 하드웨어상의 주소
CPU와 실행 중인 프로그램이 사용하는 주소. 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
➡ CPU와 현재 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못함
➡ 논리 주소와 물리 주소간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU: Memory Management Unit)라는 하드웨어에 의해 수행됨
➡ MMU는 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환함
➡ 즉, 베이스 레지스터는 프로그램의 가장 작은 물리 주소(첫 물리 주소)를 저장
➡ 논리 주소는 프로그램의 시작점으로부터 떨어진 거리
◼ 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하다.
◼ 논리 주소 범위를 벗어나는 명령어 실행을 방지하고, 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법?
➡ 한계 레지스터가 담당함
➡ 한계 레지스터는 논리 주소의 최대 크기를 저장
➡ 즉, 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터 값) 미만
➡ CPU가 접근하려는 논리 주소가 한계 레지스터 값보다 크면 안 됨
➡ 검사결과 작지 않으면 인터럽트(트랩)을 발생시켜 실행을 중단함
저장 장치들을 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낸 것
➡ 저장장치는 일반적으로 아래와 같은 명제를 따름
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈
CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반 저장 장치
컴퓨터 내부에는 여러 개의 캐시 메모리가 있음
일반적으로 L1 cache , L2 cache는 코어 내부에, L3캐시는 코어 외부에 위치함

캐시 메모리의 용량은 L1,L2,L3 순으로 커지고, 속도는 L3,L2,L1 순으로 빨라지고, 가격은 L3,L2,L1 순으로 비싸짐
멀티 코어 프로세서인 경우 일반적으로 L1,L2 cache는 코어마다 할당되고, L3 cache는 공유함

분리형 캐시 : L1 cache의 속도를 조금이라도 높이고자 명령어만을 저장하는 L1캐시인 L1I 캐시와 데이터만을 저장하는 L1캐시인 L1D 캐시로 분리한 경우

| 캐시 히트 (cache hit) | 캐시 메모리 내 예측하여 저장한 데이터가 CPU에서 활용될 경우 |
| 캐시 미스 (cache miss) | 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야하는 경우 |
캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
◼ 캐시 메모리의 이점을 제대로 활용하려면 캐시 적중률을 높여야 한다.
CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리.
참조 지역성 원리에 입각해 CPU가 사용할 법한 데이터를예측함
시간 지역성 (temporal locality)
CPU는 최근에 접근했던 (변수가 저장된)메모리 공간에 다시 접근하려는 경향
공간 지역성 (spatial locality)
접근한 메로리 공간 근처를 접근하려는 경향