참고한 강의
[인프런] 개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메모리와 캐시 메모리
RAM
보조기억장치
CPU는 보조기억장치에 접근하지 못함
➡️ RAM이 보조기억장치에서 복사하고 저장하면 실행 가능
RAM 용량이 크면 많은 프로그램을 동시에 실행하기 유리
✔️ RAM 종류
DRAM (Dynamic RAM)
- 시간이 지나면 저장된 데이터가 점차 사라짐
- 일정 주기로 데이터 재활성화(다시 저장) 필요
- 소비 전력 낮음, 저렴함, 집적도 높음 -> 대용량으로 설계하기 용이
- 일반적으로 많이 쓰는 RAM
SRAM (Static RAM)
- 시간이 지나도 저장된 데이터가 사라지지 않음
- DRAM보다 빠름
- 소비 전력 큼, 비쌈, 집적도 낮음 -> 대용량보다 속도가 우선
- 캐시 메모리에서 사용
(SDR)SDRAM ((Single) Synchronous Dynamic RAM)
- 클럭과 동기화된 DRAM
(SRAM과는 관계 없음)
- 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음
DDR SDRAM (Double Data Rate SDRAM)
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
- 한 클럭당 두 번씩 CPU와 데이터 주고받기 가능
- 전송 속도 두 배가량 빠름(SDRAM에 비해)
* 대역폭
: 데이터를 주고받는 길의 너비
SDR보다 너비가 두 배라고 생각하면 됨
✔️ 메모리 주소 공간
물리 주소
- 메모리 하드웨어가 사용하는 주소
- 정보가 실제로 저장된 하드웨어상 주소
논리 주소
- CPU와 실행 중인 프로그램이 사용하는 주소
- 실행중인 프로그램 각각에게 부여된 주소
메모리 관리 장치(MMU)
- 논리 주소와 물리 주소 간의 변환
- CPU와 주소 버스 사이에 위치
베이스 레지스터
- 프로그램의 첫 물리 주소 저장
- 논리 주소: 프로그램의 시작점으로부터 떨어진 거리
✔️ 메모리 보호
한계 레지스터
- 논리 주소의 최대 크기 저장
- 논리 주소 범위를 벗어나는 명령어 실행 방지
- 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호
베이스 레지스터 값
≤ 프로그램 물리 주소 범위
< 베이스 레지스터 + 한계 레지스터 값
메모리 보호
⭐ CPU는 메모리에 접근하기 전에 논리 주소
가 한계 레지스터
보다 작은지 항상 검사
✔️ 캐시 메모리
- 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
캐시 히트
: 캐시 메모리 내 데이터가 CPU에서 활용될 경우
캐시 미스
: 캐시 메모리에 없어 메모리에서 직접 가져와야 하는 경우
캐시 적중률이 높을 수록 성능이 높음
캐시 적중률
= 캐시 히트 횟수
/ (캐시 히트 횟수
+ 캐시 미스 횟수
)
저장 장치 계층 구조 [나무위키]
참조 지역성 원리
⭐ 캐시 메모리가 메모리부터 가져올 데이터를 참조 지역성의 원리에 따라 결정함
시간 지역성
: CPU가 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
공간 지역성
: CPU가 접근한 메모리 공간 근처를 접근하려는 경향
보조기억장치
✔️ 하드 디스크
위키백과
하드디스크
: 자기적인(magnetic) 방식으로 데이터 저장하는 보조기억장치
플래터
: 하드 디스크에서 데이터가 저장되는 곳(원판)
스핀들
: 플래터를 회전시키는 구성 요소
- 분당 회전수:
RPM
(Revolution Per Minute)
헤드
: 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
플래터의 데이터 저장 방법
트랙
, 섹터
단위로 저장
실린더
: 여러 겹의 플래터 상에 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
트랙의 한 조각이 섹터
, 트랙을 모은 게 실린더
!
- 연속된 정보를 하나의 실린더에 기록해, 디스크 암을 움직이지 않고도 바로 데이터에 접근 가능
데이터 접근 시간
탐색 시간
: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
회전 지연
: 헤드가 있는 곳으로 플래터를 회전시키는 시간
전송 시간
: 하드 디스크와 컴퓨터 간 데이터를 전송하는 시간
탐색 시간과 회전 지연 단축
- 플래터 빨리 돌려 RPM 높이기
- 참조 지역성 (헤드 위치)
✔️ 플래시 메모리
- 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치
USB
, SD카드
, SSD
타입 종류
SLC(Single-Level Cell)
- 각 셀 하나의 비트 저장
- 데이터 읽고 쓰기 반복이 잦고 고성능의 빠른 장치가 필요한 경우
- 용량 대비 가격 높음
MLC(Multi-Level Cell)
- 각 셀 일반적으로 2비트 저장
- 대량의 데이터를 저장해야 하는 경우
- 용량 대비 가격 저렴
TLC (Triple-Level Cell)
- 각 셀 세 비트 저장
- 속도와 내구성보다 대용량과 저렴한 가격이 중요한 경우
- 더 낮은 가격 대비 많은 용량
🚶🏻 기본 미션
p.185
- SRAM인지 DRAM인지
- 주로 캐시 메모리로 활용
SRAM
- 주로 주기억장치로 활용
DRAM
- 대용량화하기 유리
DRAM
- 집적도가 상대적으로 낮음
SRAM
p.205
- 저장 장치 계층 구조 도식도 채우기
메모리
보조기억장치
캐시 메모리
레지스터
🏃🏻 선택 미션
RAID 정의
- 하드 디스크와 SSD를 사용하는 기술
- 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술
- 데이터를 안전하게 관리하고 높은 성능을 위해 사용
- 여러 보조기억장치를 안전하고 빠르게 활용 가능
RAID 종류
RAID 0, 1, 2, 3, 4, 5, 6, 10, 50
부연 설명
RAID 0
스트라입(stripe)
: 분산되어 저장된 데이터
스트라이핑
: 데이터를 분산하여 저장하는 것
- 4TB 저장 장치 하나보다
RAID 0
으로 구성된 1TB 저장 장치 네 개의 속도가 네 배가량 빠름,,
RAID 4
패리티 비트
: 오류 검출용 정보일 뿐 복구는 불가능
➡️ 오류 복구는 RAID 4
에서