✓ RAM의 특징과 종류
1) 휘발성 저장 장치이다: 전원을 끄면 내용이 사라진다 (비휘발성 저장 장치: HDD, SSD, USB 메모리 등 보조기억장치)
✏️ CPU는 메모리(RAM)에만 접근 가능.
그래서 비휘발성 저장 장치에는 '보관할 대상'을 저장
휘발성 저장 장치에는 '실행할 대상'을 저장
2) RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다.
✓ RAM의 종류
1) DRAM (Dynamic RAM) : 시간이 지나면 저장된 데이터가 점차 사라지기 때문에 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장) 해야 한다. 일반적으로 사용되는 메모리
2) SRAM (Static RAM): 전원이 공급된다면 시간이 지나도 저장된 데이터가 사라지지 않는다.
DRAM | SRAM | |
재충전 | 필요 | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴 | 비쌈 |
집적도 | 높음 | 낮음 |
소비 전력 | 적음 | 높음 |
사용 용도 | 주기억장치(RAM) | 캐시 메모리 |
* 집적도: 더 작고 빽백하게 만들 수 있는 정도. 집적도가 높으면 대용량으로 설계하기 용이하다.
3) SDRAM (Synchronous Dynamic RAM / SDR SDRAM Single Data Rate SDRAM): 발전된 형태의 DRAM. 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있음
4) DDR SDRAM (Double Data Rate SDRAM): 최근 가장 흔히 사용되는 RAM. 대역폭(데이터를 주고받는 길의 너비)을 넓혀 속도를 높였다. (SDR보다 너비가 두 배, DDR2는 너비가 네 배, DDR3은 여덟배, DDR4는 열여섯배)
✓ 메모리의 주소 공간
1) 물리 주소: 하드웨어가 사용하는 주소. 정보가 실제로 저장된 하드웨어상의 주소
2) 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소
✏️ MMU Memory Management Unit 메모리 관리 장치
- 논리 주소와 물리 주소 간의 변환 (CPU와 주소 버스 사이에 위치)
- CPU가 발생시킨 논리 주소(프로그램의 시작점으로부터 떨어진 거리) + 레지스터 값(베이스 레지스터/프로그램의 첫 물리 주소) = 물리주소로 변환
❗️ 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터) 값 미만
* 베이스레지스터 : 물리 주소 시작점
* 한계 레지스터: 프로그램의 크기. 다른 프로그램의 영역을 침범할 수 있는 명령어를 막고 메모리를 보호한다.
CPU는 메모리에 접근하기 전에 접근하고자 하는 논리주소가 한계 레지스터보다 작은지를 항상 검사하고 논리주소가 범위를 넘어가는 경우 인터럽트(트랩)를 발생시켜 실행을 중단시킨다.
✓ 캐시 메모리
❗️ CPU가 메모리에 접근 하는 시간 < CPU의 연산 속도
이 차이를 극복하기 위한 저장장치가 캐시 메모리이다.
- 메모리 사이에 위치
- 레지스터 보다 용량이 크고 메모리보다 빠른 SRAM 기반
- CPU가 사용할 일부 데이터가 미리 저장됨
- CPU(코어)와 가까운 대로 L1 캐시, L2캐시, L3캐시 이렇게 부른다.
💡 메모리 - 집에서 멀리 있는 대형마트
캐시 메모리 - 집 근처에 있는 편의점
저장 장치 계층 구조 Memory Hierarchy : CPU에 얼마나 가까운지를 나타냄
캐시 메모리에는 CPU가 사용할 법한 대상을 예측하여 저장하는데, 그 예상이 맞아들었을 경우 '캐시 히트'라 부르고 반대의 경우 '캐시 미스'라 부른다.
✏️ 캐시 적중률 = 캐시 히트 횟수 / (캐시 해트 횟수 + 캐시 미스 횟수)
✅ 참조 지역성의 원리 locality of reference, principle of locality
CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
1) 시간 지역성 temporal locality: 최근에 접근했던 메모리 공간에 다시 접근하려는 경향. 변수에 값을 저장한 후 언제든 변수에 다시 접근하여 변수에 저장된 값을 사용.
2) 공간 지역성 spatial locality: 접근한 메모리 공간 근처를 접근하려는 경향. 보통 관련 데이터들끼리 한데 모여있음.
'컴퓨터 & 코딩 > CS' 카테고리의 다른 글
[혼공학습단 10기][혼공컴운] 입출력장치 (0) | 2023.07.07 |
---|---|
[혼공학습단 10기][혼공컴운] 보조기억장치 / RAID (0) | 2023.07.06 |
[혼공학습단 10기][혼공컴운] 2주차 미션 (0) | 2023.07.04 |
[혼공학습단 10기][혼공컴운] 빠른 CPU를 위한 설계 기법 (0) | 2023.07.04 |
[혼공학습단 10기][혼공컴운] CPU의 작동 원리 (0) | 2023.07.03 |