기본 미션
p. 185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기
선택 미션
Ch.07(07-2) RAID의 정의와 종류를 간단히 정리해 보기
Chapter 0️⃣6️⃣
1) RAM의 특징과 종류
휘발성 저장 장치: 전원을 끄면 저장된 명령어와 데이터가 모두 날아감
e.g. 메모리(RAM) - 현재 "실행되는" 프로그램의 명령어 + 데이터 저장 [Chapter 01]
비휘발성 저장 장치: 전원이 꺼져도 저장된 내용 유지 but CPU가 직접 접근하지 못함 ➡️ RAM으로 복사하여 저장한 뒤 실행
e.g. 보조기억장치(하드 디스크, SSD, CD-ROM, USB 메모리) - "보관할" 프로그램의 명령어 + 데이터 저장 [Chapter 01]
RAM 용량 ⬆️ ➡️ 프로그램 실행 시간 ⬆️
RAM 종류
DRAM(Dynamic RAM): 시간이 지나면 저장된 데이터 소멸 ➡️ 일정 주기로 데이터 재활성화(다시 저장)
SRAM(Static RAM): 시간이 지나도 저장된 데이터 소멸 ❌
DRAM | SRAM | |
재충전 | 필요 | 필요 ❌ |
속도 | ⬇️ | ⬆️ |
가격 | ⬇️ | ⬆️ |
집적도 | ⬆️ | ⬇️ |
소비 전력 | ⬇️ | ⬆️ |
사용 용도 | 주기억장치(RAM) | 캐시 메모리 [Chapter 06 -3] |
SDRAM(Synchronous Dynamic RAM): 클럭에 맞춰 동작하며 클럭마다 CPU와 정보 교환하는 DRAM
DDR SDRAM(Double Data Rate SDRAM): 대역폭 * 2 ➡️ 속도를 빠르게 만든 SDRAM
DDR2 SDRAM: 대역폭 * 4, DDR3 SDRAM: 대역폭 * 8 ...
↕️
SDR SDRAM(Single Data Rate SDRAM)
❓기본 미션
Q. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요
- 주로 캐시 메모리로 활용됩니다. ( )
- 주로 주기억장치로 활동됩니다. ( )
- 대용량화하기 유리합니다. ( )
- 집적도가 상대적으로 낮습니다. ( )
A. SRAM, DRAM, DRAM, SRAM
2) 메모리의 주소 공간
물리 주소: 메모리 사용, 정보가 실제로 저장된 하드웨어상의 주소
논리 주소: CPU&실행 중인 프로그램 사용, 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소, 프로그램의 시작점(베이스 레지스터)로부터 떨어진 거리
메모리 관리 장치 :CPU가 발생시킨 논리 주소 + 베이스 레지스터 값(= 프로그램의 최소 물리 주소)
➡️ 논리 주소 ↔️ 물리 주소 변환 ➡️ CPU ↔️ 메모리 상호작용
❗ 다른 프로그램의 영역을 침범할 수 있는 명령어
➡️ 한계 레지스터: 논리 주소의 최대 크기, 명령어 실행 방지(트랩 인터럽트 발생)&실행 중인 프로그램이 다른 프로그램에 영향 받지 않도록 보호
∴ 베이스 레지스터 값 ≤ 프로그램의 물리 주소 < 베이스 레지스터 값 + 한계 레지스터 값
3) 캐시 메모리
<저장장치>
- CPU와 거리⬇️ → 속도 ⬆️ / 거리 ⬆️ → 속도 ⬇️
- 속도 ⬆️: 용량 ⬇️ 가격 ⬆️
저장 장치 계층 구조: 'CPU에 얼마나 가까운가'
CPU: 프로그램을 실행하는 과정에서 빈번히 메모리 접근 ➡️ 메모리에 접근하는 속도도 빨라야 함 ➡️ 캐시 메모리 등장
캐시 메모리: 메모리에서 CPU가 사용할 데이터를 예측하여 미리 캐시 메모리로 가지고 와서 활용
코어와의 거리: L1 캐시 ➡️ L2 캐시 ➡️ L3 캐시
➕ 분리형 캐시
L1I 캐시(명령어 저장) / L1D 캐시(데이터 저장) ➡️ 접근 속도 ⬆️
캐시 히트: 자주 사용될 것으로 예측한 데이터가 실제로 들어맞음 ➡️ 캐시 메모리 내 데이터 CPU에서 활용
↕️
캐시 미스: 예측이 틀림 ➡️ 메모리에서 필요한 데이터를 직접 가져옴 ➡️ 성능 ⬇️
캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
<참조 지역성의 원리> ➡️ CPU가 사용할 법한 데이터 예측
- 시간 지역성: CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- 공간 지역성: CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. ( ∵ 관련 있는 데이터끼리 모여서 저장됨)
❓기본 미션
Q. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.
A. 레지스터, 캐시 메모리, 메모리, 보조기억장치
Chapter 0️⃣7️⃣
1) 다양한 보조기억장치
하드 디스크(자기 디스크): 자기적인 방식으로 데이터 저장
플래터: 하드 디스크에서 실질적으로 데이터가 저장되는 곳
스핀들: 플래터를 회전시키는 구성 요소 (RPM 15,000 = 1분에 15,000바퀴를 회전하는 하드 디스크)
헤드: 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
디스크 암: 원하는 위치로 헤드를 이동
트랙: 플래터를 동신원으로 나누었을 때 그중 하나의 원
섹터(= 하드 디스크의 가장 작은 전송 단위): 트랙의 한 조각, 일반적으로 512byte
실린더: 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
연속된 정보를 한 실린더에 기록 ➡️ 디스크 암을 움직이지 않고도 바로 데이터에 접근 가능
저장된 데이터에 접근하는 시간
- 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
➕ 단일 헤드 디스크 = 고정 헤드 디스크, 다중 헤드 디스크 = 이동 헤드 디스크
플래시 메모리: 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치
➕ NAND 플래시 메모리(대용량 저장 장치로 많이 사용됨), NOR 플래시 메모리
셀: 플래시 메모리에서 데이터를 저장하는 가장 작은 단위 ➡️ MB, GB, TB 용량을 갖는 저장 장치
- SLC 타입: 한 셀에 1비트를 저장할 수 있는 플래시 메모리 ➡️ 빠른 입출력, 수명 ⬆️, 가격 ⬆️
✅고성능의 빠른 저장 장치가 필요한 경우
- MLC 타입: 한 셀에 2비트(정보 4개)를 저장할 수 있는 플래시 메모리 ➡️ 대용량화 유리, 속도 ⬇️, 수명 ⬇️, 가격 ⬇️
- TLC 타입: 한 셀에 3비트(정보 8개)를 저장할 수 있는 플래시 메모리 ➡️ 대용량화 유리, 속도 ⬇️⬇️, 수명 ⬇️⬇️, 가격 ⬇️⬇️
구분 | SLC | MLC | TLC |
셀당 bit | 1 bit | 2 bit | 3 bit |
수명 | ⬆️ | 보통 | ⬇️ |
읽기/쓰기 속도 | ⬆️ | 보통 | ⬇️ |
용량 대비 가격 | ⬆️ | 보통 | ⬇️ |
셀 ➡️ 페이지(읽기/쓰기 단위) ➡️ 블록(삭제 단위) ➡️ 플레인 ➡️ 다이
페이지
- Free 상태: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid 상태: 이미 유효한 데이터를 저장하고 있는 상태 ➡️ 새 데이터 저장 불가능
- Invalid 상태: 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태
가비지 컬렉션 ➡️ 쓰레기값 정리
1. 유효한 페이지들만을 새로운 블록으로 복사
2. 기존의 블록 삭제
2) RAID의 정의와 종류
RAID: 하드 디스크&SSD 사용 ➡️ 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술 ➡️ 데이터 안정성, 높은 성능
RAID 0: 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식(스트라이핑) ➡️ 데이터 읽고 쓰는 속도 ⬆️ (속도 = nTB 저장 장치 * n)
❗ 저장된 정보 안정성 문제
⬇️
RAID 1: 완전한 복사본 생성(미러링) ➡️ RAID 0보다 쓰기 속도 ⬇️, 복구 간단
❗ 사용 가능 용량 감소 ➡️ 비용 증가 문제
⬇️
RAID 4: 오류를 검출하고 복구하기 위한 정보를 저장한 장치(패리티 비트)를 두는 구성 방식 ➡️ RAID 1보다 적은 하드 디스크로도 데이터를 안전하게 보관
➕ 패리티 비트: RAID에선 오류 복구 가능
❗ 새로운 데이터가 저장될 때마다 패리티 저장 디스크 데이터 사용 ➡️ 패리티 저장 장치 병목 현상 발생
⬇️
RAID 5: 패리티 정보를 분산하여 저장하는 방식 ➡️ 병목 현상 해소
RAID 6: 서로 다른 두 개의 패리티를 두는 방식 ➡️ 오류를 검출하고 복구할 수 있는 수단 두 개 ➡️ 안정성 ⬆️
❗ 저장할 패리티 2개 ➡️ 쓰기 속도 ⬇️
+) Nested RAID
e.g. RAID 10(= RAID 0 + RAID 1), RAID 50(= RAID 0 + RAID 5)
❗ 선택 미션
Q. RAID의 정의와 종류를 간단히 정리해 보기
A.
장점 단점 RAID 0 스트라이핑 ➡️ 속도 ⬆️ 정보 안정성 문제 RAID 1 미러링 ➡️ 복구 간편 사용 가능 용량 감소 ➡️ 비용 증가 문제 RAID 4 패리티 비트 ➡️ 적은 하드 디스크로 안전하게 보관 패리티 저장 장치 병목 현상 RAID 5 패리티 정보 분산 저장 ➡️ 병목 현상 해소 - RAID 6 서로 다른 두 개의 패리티 ➡️ 안정성 ⬆️ 저장할 패리티 2개 ➡️ 쓰기 속도 ⬇️
Chapter 0️⃣8️⃣
1) 장치 컨트롤러와 장치 드라이버
입출력 장치: 종류 多 + 전송률 ⬇️ ➡️ CPU, 메모리, 입출력장치 통신 어려움 ➡️ 장치 컨트롤러 연결
장치 컨트롤러: 입출력 장치 연결 하드웨어적 통로 - 입출력 버스 이용(CPU와 입출력장치 간 통신 중개, 오류 검출, 데이터 버퍼링)
- 버퍼링: 전송률 ⬆️ 장치(CPU) & 전송률 ⬇️ 장치(입출력장치) 교환 데이터 임시 저장공간(버퍼)에 저장 ➡️ 전송률 비슷하게 맞춤
데이터 레지스터: CPU와 입출력장치 사이에 주고받을 데이터 저장 ➡️ 버퍼 역할 (if 데이터 ⬆️ ➡️ RAM 사용)
상태 레지스터: 상태 정보(입출력장치 입출력 작업 준비/완료 여부, 오류 여부) 저장
제어 레지스터: 입출력 장치가 수행할 내용에 대한 제어 정보 & 명령 저장
장치 드라이버: 입출력 장치 연결 소프트웨어적 통로(장치 컨트롤러 동작 감지, 제어 ➡️ 장치 컨트롤러 컴퓨터 내부와 정보 교환)
➕ 장치 드라이버 인식, 실행 주체: 운영체제
2) 다양한 입출력 방법
프로그램 입출력: 프로그램 속 명령어 ➡️ 입출력장치 제어
1. CPU ➡️(명령)➡️ 하드 디스크 컨트롤러의 제어 레지스터
2. 하드 디스크 컨트롤러: 하드 디스크 상태 확인 ➡️ 상태 레지스터 준비 표시
3. CPU: 상태 레지스터 주기적으로 읽으며(폴링) 하드 디스크 준비 여부 확인 ➡️ 백업할 메모리의 정보 데이터 레지스터에 작성
➕ 폴링: 입출력 장치의 상태 주기적으로 확인 ➡️ CPU 부담 ⬆️
장치 컨트롤러의 레지스터 값 저장 방법
- 메모리 앱 입출력: 메모리에 접근하기 위한 주소 공간 & 입출력장치에 접근하기 위한 주소 공간 ➡️ 하나의 주소 공간으로 간주
- 고립형 입출력: 메모리를 위한 주소 공간 & 입출력장치를 위한 주소 공간 분리
메모리 앱 입출력 | 고립형 입출력 |
메모리와 입출력장치 같은 주소 공간 사용 | 메모리와 입출력장치 분리된 주소 공간 사용 |
메모리 주소 공간 ⬇️ | 메모리 주소 공간 그대로 |
메모리와 입출력장치 같은 명령어 | 입출력 전용 명령어 |
인터럽트 기반 입출력 [Chapter 04]
1. CPU: 장치 컨트롤러에 입출력 작업 명령
2. 장치 컨트롤러: 입출력장치 제어 & 입출력 수행 ➡️ CPU: 다른 작업
3. 장치 컨트롤러: 입출력 완료 ➡️ CPU에 인터럽트 요청 신호 송신 ➡️ CPU: 하던 일 백업, 인터럽트 서비스 루틴
인터럽트 비트 활성화 or NMI(무시할 수 없는 인터럽트) 발생 ➡️ 우선순위 높은 인터럽트부터 처리
프로그래머블 인터럽트 컨트롤러(PIC): 여러 장치 컨트롤러에 연결 ➡️ 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청 우선순위 판별(NMI 제외) ➡️ CPU에 지금 처리해야할 하드웨어 인터럽트 알려줌
1. PIC: 장치 컨트롤러에서 인터럽트 요청 신호 수신
2. PIC: 인터럽트 우선순위 판단 ➡️ CPU에 인터럽트 요청 신호 송신
3. CPU: PIC에 인터럽트 확인 신호 송신
4. PIC: 데이터 버스 ➡️ CPU에 인터럽트 벡터
5. CPU: 인터럽트 서비스 루틴 실행
DMA 입출력: 직접 메모리에 접근할 수 있는 입출력 기능(CPU 접근 ❌) ➡️ CPU 부담 ⬇️
시스템 버스에 하드웨어(DMA 컨트롤러) 필요
1. CPU: DMA 컨트롤러에 입출력 작업 명령
2. DMA 컨트롤러: CPU 대신 장치 컨트롤러와 상호작용(+필요한 경우 메모리 직접 접근) ➡️ 작업 수행
3. DMA 컨트롤러 ➡️(인터럽트)➡️ CPU
+) 사이클 스틸링: DMA가 CPU가 쓸 시스템 버스를 이용함
입출력 버스: DMA 컨트롤러 & 장치 컨트롤러 별도로 연결 ➡️ 시스템 버스 사용 빈도 ⬇️
'Computer Science > Computer Architecture, Operating System' 카테고리의 다른 글
[혼공컴운] 4주차_Chapter 09~11 (1) | 2024.02.09 |
---|---|
[혼공컴운] 2주차_Chapter 04~05 (0) | 2024.01.14 |
[혼공컴운] 1주차_Chapter 01~03 (1) | 2024.01.07 |