[혼공학습단 9기] 혼공컴운: 3주차

오늘은·2023년 1월 16일
0

혼공학습단

목록 보기
7/14

기본미션

선택미션

07-1 RAID 정의, 종류 간단 정리

Chapter 06 메모리와 캐시 메모리

06-1 RAM의 특징과 종류

RAM의 특징

휘발성 저장 장치: 전원을 끄면 내용이 사라진다. (RAM)
비휘발성 저장 장치: 전원을 꺼도 저장된 내용이 유지된다. (SSD, CD-ROM, USB)
비휘발성 저장 장치인 보조기억장치에 보관 대상을 저장. 휘발성 저장 장치인 RAM에 실행 대상을 저장. (CPU가 보조기억장치에 직접 접근이 불가능하기 때문)

RAM의 용량과 성능

RAM이 크면 좋은 점? 여러 프로그램을 동시에 실행하는데 유리하다.
클 수록 좋은건 아님. 동시에 실행하는데 유리할 뿐 사용량 이상이라면 이점이 없다.

RAM의 종류

DRAM (Dynamic RAM) 저장 데이터가 동적으로 변하는 RAM을 의미. 시간이 지나면 저장 데이터가 점점 사라진다. (일정 주기로 데이터를 다시 저장하는 과정이 필요)
전력소비가 낮고 저렴하며 집적도가 높아 대용량 설계에 유리함.
SRAM (Static RAM) 저장 데이터가 변하지 않는 RAM을 의미. DRAM보다 속도가 빠름.
집적도가 낮고 소비전력이 크며 비싸다. 캐시메모리같은 속도가 빠르되 대용량은 요구되지 않는 곳에 사용.
SDRAM (Synchronous Dynamic RAM) 클럭 신호에 맞춰 CPU와 정보를 주고 받을 수 있는 DRAM
DDR SDRAM (Double Data Rate SDRAM) 대역폭을 넓혀 속도를 빠르게 만든 SDRAM. 두 배의 대역폭으로 클럭당 2번씩 CPU와 데이터를 주고받을 수 있다.
DDR3 SDRAM, DDR4 SDRAM가 있으며 이는 2배씩 넓어진다.
* 대역폭: 데이터를 주고받는 길의 너비.

06-2 메모리의 주소 공간

물리 주소와 논리 주소

물리 주소: 메모리 하드웨어가 사용하는 주소. 실제 정보가 저장된 하드웨어상의 주소를 말한다.
논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소. 실행 중인 프로그램 각각에 부여된 0번지부터의 주소

메모리 관리 장치 (MMU): 논리주소를 물리주소로 변환하기 위한 장치. 논리 주소의 베이스 레지스터 값에 더하여 변환한다. ➡ 베이스 레지스터 + 물리주소
베이스 레지스터: 프로그램의 가장 작은 물리 주소. 첫 물리 주소를 저장하며 논리 주소는 시작 점에서 떨어진 거리를 의미한다.

메모리 보호기법

한계 레지스터: 논리 주소의 최대크기 저장.
➡ 물리주소 영역은 베이스 레지스터 < 물리 주소 < 베이스 레지스터 + 한계 레지스터
CPU가 접근하는 논리주소는 이 영역 이내여야함. 프로그램의 범위를 벗어난 공간에 접근할 수 없기 때문.

06-3 캐시 메모리

저장 장치 계층 구조

저장 장치란
1. CPU와 가까운 저장 장치는 빠르다.
2. 속도가 빠른 저장 장치는 저장 용량이 작고 가격은 비싸다.

레지스터 - 메모리 - 보조기억장치 순으로 CPU에 가깝다.
CPU와 가깝다는 것은? 속도가 빠르다. 용량이 적다. 가격이 비싸다. 를 의미한다.

캐시 메모리

캐시 메모리: CPU와 메모리 사이에 위치한다. 레지스터보다 용량이 크고 메모리보다 빠른 저장장치 (SRAM 기반).
CPU 연산 속도와 메모리 접근 속도 차이를 줄이기 위해 탄생. 일부 데이터를 캐시 메모리로 불러와 활용하는 것.
CPU와 가장 가까운 캐시 메모리를 L1 캐시 (L2, L3 캐시도 존재, 1,2 는 CPU내부에 L3은 외부에 위치.)
용량: L1 < L2 < L3 속도: L3 < L2 < L1 가격: L3, L2, L1
사용법: L1 캐시에 데이터가 있는지 파악 없다면 L2에서 검색, L3에서 검색.

참조 지역성 원리

캐시 히트: 자주 사용할 것으로 예측한 데이터가 실제 사용하여 CPU에 활용될 경우
캐시 미스: 자주 사용할 것으로 예측하였으나 실제로 사용하지 않아 메모리에서 가져올 경우
캐시 적중률: 전체 횟수 / (캐시 히트 수 + 캐시 미스 수) 대략 85 ~ 95% 이상
참조 지역성의 원리
1. CPU는 최근 접근한 메모리 공간에 다시 접근하려 한다. (시간 지역성)
CPU는 변수에 값을 저장한 메모리 공간에 여러 번 다시 접근할 수 있다.
2. CPU는 접근한 메모리 공간 근처를 접근하려 한다. (공간 지역성)
CPU가 실행하는 프로그램은 관련 데이터가 모여있다. 접근한 메모리 공간 근처를 집중적으로 접근하게 된다.

Chapter 07 보조기억장치

07-1 다양한 보조기억장치

하드 디스크

하드 디스크 (HDD): 자기적인 방식으로 데이터를 저장하는 보조기억장치 (자기 디스크의 일종으로 지칭한다.)
플래터: HDD 내 원형판. 실질적으로 데이터가 저장되는 곳. N극과 S극이 있으며 0, 1의 역할을 수행.
스핀들: 플래터 회전의 구성 요소 분당 회전수를 나타내는 RPM 단위로 표현된다.
헤더: 플래터의 데이터를 읽고 쓰는 구성 요소. 미세하게 떠있는 상태로 데이터를 읽고 쓰는 부품.
디스크 암: 헤드를 원하는 위치로 옮기는 장치
트랙: 플래터를 동심원 형태로 나눌 때 하나의 도넛 모양의 영역
섹터: 선형으로 나눌 때의 하나의 조각. 가장 작은 전송 단위
블록: 하나이상의 섹터를 모음.
실린더: 같은 트랙을 여러 겹의 플래터의 같은 위치에 있는 트랙의 모음의 단위

연속 정보는 한 실린더에 기록된다. ➡ 디스크 암을 움직이지 않고 바로 데이터에 접근하기 위함.

저장된 데이터에 접근하는 과정.
탐색 시간: 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
회전 지연: 헤드가 있는 곳까지 플래터를 회전하는 시간
전송시간: 하드 디스크와 컴퓨터 간 데이터를 전송하는 시간

다중 헤드 디스크 & 고정 헤드 디스크
한면에 하나의 헤드가 달리면 단일 헤드 디스크
헤드가 데이터 위치 공간까지 움직여야 하여 이동 헤드 디스크라고도 부름
트랙별로 헤드가 달리면 다중 헤드 디스크 (탐색시간 0)
헤드를 움직일 필요가 없어 고정 헤드 디스크라고도 부름

플래시 메모리

USB, SD, SSD 모두 플래시 메모리 기반의 보조기억장치.
NAND 연산을 기반으로 만들어진 메모리가 대용량에 사용되며 대중적이다.
NOR 연산을 기반으로 제작된 플래시 메모리도 있다.

셀: 플래시 메모리에서 데이터를 저장하는 최소단위. (GB, GB, TG로 발전하게 됨)

구분SLCTLCMLC
셀당1bit2bit3bit
수명길다보통짧다
속도빠름보통느림
가격비쌈보통

QLC: 한 셀에 4비트 저장 가능

셀 - 페이지 - 블록 - 플레인 - 다이
* 각각의 단위를 모아 새로운 단위가 된다.

데이터 읽고 쓰기는 페이지 단위로, 삭제는 블록 단위로 이뤄진다.

페이지 상태
Free: 데이터를 저장하지 않아 새로운 데이터 저장이 가능한 상태
Valid: 유효한 데이터를 저장하고 있는 상태
Invalid: 유효하지 않은 데이터를 저장하고 있는 상태

가비지 컬렉션: 유효한 페이지를 새로운 블록으로 복사, 기존 블록을 삭제하는 것.
(삭제는 블록 단위로 가능하기 때문)

07-2 RAID의 정의와 종류

RAID의 정의

RAID의 종류

RAID 0
여러 보조기억 장치에 데이터를 단순히 나눠 저장하는 구성
스트라입: 줄무늬처럼 분산하여 저장한 데이터
스트라이핑: 분산하여 저장하는 것
장점: 데이터 읽고 쓰는 속도가 하나의 대용량 저장 장치에서 여러번 읽고 쓰는 것보다 빠름.
단점: 저장 정보가 안전하지 않을 수 있음. 분산 디스크 중 하나에 문제가 생긴다면 모든 정보를 읽는 곳에 문제가 발생

RAID 1
기존 정보와 완전히 같은 복사본을 만드는 미러링 과정이 포함
장점: 복구가 간단하다. 하나에 문제가 발생하여도 백업하여 잃어버린 정보를 찾을 수 있음.
단점: 하드디스크 개수가 한정적일 때 사용가능 용량이 적어진다. 추가 하드디스크는 추가비용

RAID 4
오류를 검출하고 복구하기 위한 정보가 담긴 패러티 비트를 포함
RAID1 보다 적은 하드 디스크로도 데이터를 안전히 보관할 수 있다.
패러티 비트 특징
1. 패러티 정보를 저장한 장치로 나머지 장치의 오류를 검출하며 복구한다.
2. 본래 오류 검출용 정보이나, RAID에서는 오류 복구도 가능하다.

RAID 5: 패러티 정보를 분산하여 저장. RAID는 하나의 디스크에서 수행하여 병목현상을 방지
RAID 6: 서로다른 두개의 패러티를 두는 방식. 오류 검출, 복구 수단이 2개로 늘어남.
저장시 새로운 정보를 2개로 나눠 저장하여 쓰기 속도가 느린편이나 안정성이 높다.

* RAID1 + RAID0 = RAID10, RAID5 + RAID0 = RAID50

Chapter 08 입출력장치

08-1 장치 컨트롤러와 장치 드라이버

장치 컨트롤러

입출력장치는 CPU, 메모리보다 다루기 까다롭다.
1. 입출력장치에는 종류가 너무나 많다. (+ 속도, 데이터 전송 형식도 다양함)
2. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.
전송률: 데이터를 얼마나 빠르게 교환 가능한지를 나타내는 지표

장치 컨트롤러의 역할

  • CPU와 입출력장치 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링

데이터 버퍼링이란? 전송률이 높은 장치와 낮은 장치 사이의 데이터를 버퍼에 임시저장하여 전송률을 비슷하게 맞추는 방식.

데이터 레지스터: CPU - 입출력장치 사이 주고받을 데이터가 담기는 레지스터, 버퍼역할 수행 최근 RAM을 사용하기도 한다.
상태 레지스터: 입출력장치가 입출력 작업 준비, 입출력 작업 완료여부, 오류 여부의 상태값이 저장
제어 레지스터: 입출력장치가 수행할 내용에 대한 제어 정보 및 명령 저장.

장치 드라이버

장치 드라이버: 장치 컨트롤러의 동작을 감지, 제어하여 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램.

08-2 다양한 입출력 방법

프로그램 입출력

프로그램 입출력: 프로그램 속 명령어로 입출력장치를 제어하는 방법. CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력장치에 연결된 장치 컨트롤러와 상호작용하며 입출력 작업을 수행.

CPU에서 입출력 작업을 하는 과정
1. CPU가 하드 디스크 컨트롤러 - 제어 레지스터에 쓰기 명령을 보냄.
2. 하드 디스크 컨트롤러는 하드 디스크 상태 레지스터를 확인
3. CPU는 상태 레지스터를 주기적으로 읽고 준비 여부를 확인. 준비될 경우 백업할 메모리 정보를 데이터 레지스터에 쓰며 작업이 끝나면 작업을 종료

CPU 내부의 레지스터는 어떻게 명령어로 표현되고 메모리에 저장될까?

  • 프린터 컨트롤러의 상태 레지스터를 읽는다.
  • 프린터 컨트롤러의 데이터에 100을 쓴다.
  • 키보드 컨트롤러의 상태 레지스터를 읽는다.
  • 하드 디스크 컨트롤러의 데이터 레지스터에 'a'를 쓴다.

메모리 맵 입출력: 메모리, 입출력 장치에 접근하기 위한 주소공간을 하나의 주소공간으로 간주하여 메모리 주소 공간은 줄어드나 같은 명령어를 사용할 수 있다.
고립형 입출력: 메모리의 주소공간과 입출력장치의 주소 공간을 분리하는 방법. 입출력 전용 명령어를 사용하지만 메모리 주소 공간을 보장할 수 있게된다.

인터럽트 기반 입출력

인터럽트 기반 입출력: 인터럽트를 기반으로 입출력을 수행.

폴링
입출력장치의 상태가 어떤지, 처리할 데이터가 있는지 주기적으로 확인하는 방식.
인터럽트보다 CPU 부담이 크나, 인터럽트 활용시 CPU가 인터럽트 요청을 받을때까지 다른 일을 수행할 수 있다.

CPU가 인터럽트를 만나 처리중 또 다른 인터럽트 방생시 우선순위를 파악하여 우선순위가 높은 인터럽트를 먼저 수행한다.

프로그래머블 인터럽트 컨트롤러 (PIC): 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청의 우선순위를 판별, CPU에 처리할 하드웨어 인터럽트를 알려주는 장치

PIC의 다중 인터럽트 처리과정
1. PIC가 장치 컨트롤러에서 인터럽트 요청 신호를 받아들인다.
2. PIC는 인터럽트 우선순위를 판단. CPU에 처리해야 할 인터럽트 신호를 보낸다.
3. CPU는 PIC에 인터럽트 확인 신호를 보낸다.
4. PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터를 보낸다.
5. CPU는 인터럽트 벡터를 통해 인터럽트 요청의 주체를 알게 되고, 해당 장치의 인터럽트 서비스 루틴을 실행한다.

DMA 입출력

DMA: 입출력장치와 메모리가 CPU를 거치지 않고 상호작용이 되는 입출력 방식.
DMA 컨트롤러: DMA 입출력을 위해 시스템 버스에 연결된 하드웨어

DMA 입출력 과정
1. CPU는 DMA 컨트롤러에 입출력장치의 주소, 수행할 연산, 읽거나 쓸 메모리의 주소 등과 같은 입출력 작업 명령
2. DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다. 이때 DMA컨트롤러는 필요시 메모리에 직접 접근하여 정보를 읽거나 쓴다.
3. 입출력 작업이 끝나면 DMA 컨트롤러는 CPU에 인터럽트를 걸어 작업이 끝났음을 알린다.

DMA를 위해 시스템 버스를 자주 사용하면 CPU가 시스템 버스를 이용하지 못한다.
입출력버스: PCI버스, PCI Express 버스등 여러 종류가 있으며 입출력장치를 컴퓨터 내부와 연결짓는 통로
PCIe 슬롯: 여러 입출력장치를 PCIe 버스와 연결하는 통로

profile
게으르지만 기록은 하고싶어!

0개의 댓글