Written by coh at home
[혼공컴운] 3주차 본문
6장 메모리와 캐시메모리
6-1 RAM(Random Access Memory)
: volatile memory. ↔ 보조기억장치(non-volatile memory)
RAM 은 실행할 프로그램을 저장하는 역할이다. 따라서 실행할 프로그램이 많다면 램의 크기는 클수록 좋다.
렘의 종류
DRAM(Dynamic) : 우리가 아는 RAM. 시간이 지나면 저장된 데이터 사라짐. 소비전력 낮고, 저렴하고 집적도가 높다.
SRAM(Static) : 시간이 지나도 사라지지 않는다. 속도도 빠르다. 집적도 낮고, 소비전력 크고, 가격비싸다. → 캐시메모리로 사용.
SDRAM(Synchronous) : 클럭마다 CPU와 정보를 주고 받을 수 있는 RAM
DDR SDRAM(Double Date Rate) : 최근 사용되는 RAM. 대역폭을 넓혀 속도 증가. 대역폭이란 데이터를 주고받는 길의 너비. DDR4는 최근 가장 흔히 쓰는 RAM으로 SDR SDRAM보다 16배 빠르다.
6-2 메모리의 주소공간
물리주소 : 실제 메모리 하드웨어의 주소
논리주소 : CPU가 바라보는 실행중인 프로그램의 주소.
실행중인 프로그램의 논리주소는 0번지부터 할당된다.
MMU(Memory Management Unit)
메모리 관리장치. 논리주소 → 물리주소.
논리주소 값 + 베이스 레지스터 값(프로그램 물리주소의 시작주소)
메모리 보호 기법
프로그램 크기보다 큰 값을 CPU에서 접근할 때 → 문제 발생.
한계레지스터 : 프로그램의 크기를 저장.
CPU에서 메모리에 접근하기 전에 항상 논리주소 < 한계레지스터값을 검사한다.
6-3 캐시메모리
저장장치는 Trade off 가 있다.
레지스터와 DRAM의 병목현상을 해결하기 위해 캐시메모리(SRAM) 사용.
캐시메모리 종류
Core와 가까운 순으로 이름이 붙음. CPU는 데이터를 L1부터 순차적으로 L3까지 탐색 후 없으면 메모리에서 가져온다. 멀티코어 프로세서는 각각 L1, L2를 고유한 캐시메모리로 갖고 L3는 공유한다.
용량 : L1 < L2 < L3
속도, 가격 : L1 > L2 > L3
참조 지역성의 원리
캐시 히트와 캐시 미스
CPU의 캐시적중률은 보통 85-90%. 어떻게 가능할까?
- 최근 접근한 메모리를 다시 접근할 가능성이 높다. (Temporal Locality) → 변수
- 접근한 메모리 공간 근처를 접근할 가능성이 높다. (Spatial Locality) → 함수
7장 보조기억장치
7-1 보조기억장치의 종류
하드디스크와 플래시 메모리에 대해 살펴보자
하드디스크
자기적인 방식으로 저장. N극과 S극으로 0과 1을 저장한다.
플래터(platter) : 하드의 동그란 원판
스핀들(spindle) : 플래터를 회전 → RPM
헤드 : platter에 데이터를 읽고 쓰는 역할
플래터에 데이터가 저장되는 방식
트랙: 여러 동심원으로 나누었을 때 하나의 원.
섹터: 피자조각의 한 조각
실린더: 여러 개의 플래터에 동일한 트랙의 집합. 연속된 정보를 한 실린더에 저장한다.
데이터를 읽고 쓰는 방식
탐색시간: 트랙으로 헤드를 이동시키는 시간
회전시간: 헤드가 있는 곳으로 플래터를 회전시키는 시간
지연시간: 보조기억장치와 컴퓨터 간 데이터 전송 시간
하드디스크에서 데이터를 읽고 쓰는 것은 정말 많은 시간이 걸리는 작업이다.
플래시메모리
전기적으로 데이터를 읽고 쓸 수 있다. USB, SSD. (NAND기반)
셀: 데이터 저장의 가장 작은 단위이다.
Cell Type
SLC(Single level cell) : 1/1(bit/cell). 빠른 입출력 가능. 수명 높다. 용량대비 가격 높다.
MLC(Multiple level cell) : 2/1(bit/cell). SLC보다 저렴. 시중의 플래시메모리.
TLC(Triple level cell) : 3/1. SLC나 MLC에 비해 수명과 속도가 떨어지지만 용량대비 가격 저렴하다.
저장 단위
Cell → Page → block → plane → die
읽기와 쓰기의 단위는 page단위로 일어난다.
삭제는 block단위로 발생한다.
Page는 총 3개의 상태를 갖는다.
Free: 새로운 데이터 저장 가능.
Valid: 유효 데이터가 저장된 상태
Invalid: 쓰레기값을 저장한 상태
가비지 컬렉션
하나의 블록에 데이터를 수정하게 될때, 페이지 덮어쓰기가 불가능하므로
- 수정할 페이지의 내용을 입력
- 유효한 페이지를 새로운 블록으로 복사
- 기존의 블록을 삭제
7-2 RAID (Redundant Array of Independent Disk)
여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치로 사용하는 기술
RAID LEVEL
Stripe : 분산되어 저장된 데이터
Striping : 분산하여 저장하는 것
RAID0
각 보조기억 장치에 데이터를 분산하여 저장.
→ CPU가 보조기억장치를 동시에 읽고 쓸 수 있게 된다.
단점 : 하드디스크 문제 발생 시 복원 불가
RAID1
원본과 벡업본 하드디스크를 구분.
쓰기를 두 군데에 해야하므로 성능 다운. 복구는 쉽다. 사용가능 용량 적어진다.
RAID4
하나의 하드디스크에 패리티비트를 저장. 패리티 비트를 이용하여 오류를 검출하고 복원.
단점 : 패리티 비트 하드디스크에 병목현상 발생.
RAID5
패리티정보를 분산하여 저장.
단점: 패리티 비트에 오류 발생 시 복원불가
RAID6
서로 다른 패리티 정보를 두 개 저장하기. 저장 속도는 희생된다.
p. 185의 확인 문제 3번
SRAM
DRAM
DRAM
SRAM
p. 205의 확인 문제 1번
레지스터
캐시메모리
메모리
보조기억장치
'Etc > 도서' 카테고리의 다른 글
[혼공컴운]5주차 동기화와 교착상태 (0) | 2024.08.05 |
---|---|
[혼공컴운] 4주차 (0) | 2024.08.02 |
[혼공컴운] 2주차 (0) | 2024.07.15 |
[혼공컴운]1주차 정리 (0) | 2024.07.07 |
[부트캠프 QA] (0) | 2024.06.23 |