1. RAM의 특징
- 휘발성 저장장치
- CPU의 명령에 의해 보조기억장치에서 데이터를 가져와서 실행
- RAM의 용량이 클수록 많은 프로그램들을 동시에 실행하는 데에 유리
2. RAM의 종류
1) DRAM(Dynamic RAM)
- Dynamic = '동적의'
- 저장된 데이터가 동적으로 사라지는 RAM
- 데이터 소멸을 막기 위해 주기적으로 재활성화 해야 함
- 상대적으로 소비전력이 낮고 저렴하며 집적도가 높아 대용량으로 설계하기 용이함
-> 일반적으로 메모리로 사용되는 RAM
2) SRAM(Static RAM)
- Static = '정적의'
- 저장된 데이터가 사라지지 않는 RAM(전원 끄면 사라짐)
- DRAM보다 일반적으로 더 빠름
- 상대적으로 소비전력이 높고 비싸며 집적도가 낮아 '대용량으로 설계할 필요가 없으나 빨라야하는 장치'에 사용
->일반적으로 캐시 메모리에 사용되는 RAM
DRAM VS SRAM 차이(상대적)
DRAM | SRAM | |
재충전 | 필요함(재활성화) | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴함 | 비쌈 |
집적도 | 높음 | 낮음 |
소비전력 | 적음 | 높음 |
사용 용도 | 주기억장치(RAM) | 캐시 메모리 |
3) SDRAM(Synchronous DRAM)
- 발전된 형태의 DRAM
- 클럭신호와 동기화된 DRAM
4)DDR SDRAM(Double Data Rate SDRAM)
- 발전된 형태의 SDRAM
- 최근 대중적으로 사용하는 RAM
- 대역폭을 두배로 넓혀 속도를 빠르게 만든 SDRAM
* 대역폭 : 데이터를 주고받는 길의 너비
3. 메모리의 주소 공간
1) 논리 주소
- CPU와 실행중인 프로그램 입장에서 바라본 주소
- 실행중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소
2) 물리 주소
- 메모리 입장에서 바라본 주소
- 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소
3) 물리주소와 논리주소의 변환
- MMU(메모리 관리 장치)라는 하드웨어에 의해 변환
- MMU는 '논리주소'와 '베이스 레지스터(프로그램의 기준주소)' 값을 더하여 논리 주소를 물리 주소로 변환
베이스 레지스터 : 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소)를 저장하는 셈
논리 주소 : 프로그램의 시작점으로부터 떨어진 거리인 셈
4) 메모리 보호
* 다른 프로그램의 영역을 침범하는 명령어를 실행하면 안됨!
▶ 한계 레지스터(Limit Register)
- 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
- 베이스 레지스터가 실행중인 프로그램의 가장 작은 물리주소를 저장한다면,
한계 레지스터는 논리 주소의 최대크기를 저장
- 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값
- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 됨
4. 캐시 메모리
- CPU와 메모리 사이에 위치한, 레지스터보다는 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
- CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느림
- CPU의 연산속도와 메모리 접근 속도의 차이름 조금이나마 줄이기 위해 탄생
* 참조 지역성의 원리
- CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
(1) CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
(2) CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.(공간 지역성)
- 캐시 메모리는 메모리보다 용량이 작기 때문에 모든 내용을 저장할 수 없다
- CPU가 자주 사용할 법한 내용을 예측하여 저장
캐시히트 : 예측이 들어맞을 경우
캐시미스 : 예측이 틀렸을 경우 -> 성능 하락
+ 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
'CS 공부' 카테고리의 다른 글
[CS] {컴퓨터 구조} 입출력장치 (1) | 2025.04.15 |
---|---|
[CS] {컴퓨터 구조} 보조기억장치 (0) | 2025.04.13 |
[CS] 프로세스와 스레드의 차이, 멀티 스레드 VS 멀티 프로세스 (0) | 2025.04.10 |
[CS] {컴퓨터 구조} CPU 심화 (0) | 2025.04.09 |
[CS] {컴퓨터 구조} CPU 구조 (0) | 2025.04.08 |