- 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)
접근한 메로리 공간 근처를 접근하려는 경향