Written by coh at home

[혼공컴운] 3주차 본문

Etc/도서

[혼공컴운] 3주차

och 2024. 7. 21. 23:22

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%. 어떻게 가능할까?

  1. 최근 접근한 메모리를 다시 접근할 가능성이 높다. (Temporal Locality) → 변수
  2. 접근한 메모리 공간 근처를 접근할 가능성이 높다. (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: 쓰레기값을 저장한 상태

가비지 컬렉션

하나의 블록에 데이터를 수정하게 될때, 페이지 덮어쓰기가 불가능하므로

  1. 수정할 페이지의 내용을 입력
  2. 유효한 페이지를 새로운 블록으로 복사
  3. 기존의 블록을 삭제

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