✍️ 기본 미션
p. 185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기
p. 185 확인 문제 3번
p. 205 확인 문제 1번
✍️ 선택미션
Ch.07(07-2) RAID의 정의와 종류를 간단히 정리해 보기
아래 내용 정리에서 확인하실 수 있습니다😊
🗒️내용 정리
Chap06. 메모리와 캐시 메모리
6.1 RAM의 종류와 특징
1) RAM의 특징
- 휘발성 저장 장치 (volatile memory)
- 전원을 끄면 저장된 명령어와 데이터가 모두 날아간다.
- ex) RAM
- 비휘발성 저장 장치 (non- volatile memory)
- 전원이 꺼져도 저장된 내용이 유지된다.
- ex) 보조기억장치(하드 디스크, SSD, CD-ROM, USB 메모리)
2) RAM의 용량과 성능
(1) RAM의 성능과 용량 사이 관계
- RAM 용량이 크면 많은 프로그램을 빠르게 실행하는 데 유리하다.
- RAM 용량이 커지면 프로그램 실행 속도가 증가하지만,필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지 않는다.
(2) RAM의 종류
- DRAM (Dynamic RAM)
- 저장된 메모리가 동적으로 변하는 RAM
- 시간이 지나면 저장된 메모리가 점차 사라진다.
- 데이터의 소멸을 막기 위해 일정주기로 데이터를 재활성화(다시 저장)해야 한다. -> 비교적 속도가 느림.
- 우리가 일반적으로 메모리로 사용하는 RAM은 DRAM이다.
- 소비전력이 비교적 낮고, 저렴하고, 집적도가 높다. -> 대용량으로 설계하기 용이하다.
- SRAM (Static RAM)
- 시간이 지나도 저장된 데이터가 사라지지 않는다. (비휘발성 메모리인 것은 아님.)
- 주기적으로 데이터를 재활성화할 필요가 없다. -> 비교적 속도가 빠름.
- 캐시메모리에서 사용된다.
- 소비전력이 크고, 집적도가 낮고, 가격이 비싸다.
- SDRAM (Synchronous Dynamic RAM)
- 클럭 신호와 동기화된(클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음), 발전된 형태의 DRAM
- 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
- SDR SDRAM(Single Data Rate SDRAM) 이라고 한다.
- DDR SDRAM (Double Data Rate SDRAM)
- 최근 가장 흔히 사용되는 RAM
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
- 대역폭(data rate) : 데이터를 주고받는 길의 너비
6.2 메모리의 주소 공간
1) 물리 주소와 논리 주소
- 물리 주소 (physical address)
- 메모리가 사용한다.
- 정보가 실제로 저장된 하드웨어 상의 주소
- 논리 주소 (logical address)
- CPU와 실행 중인 프로그램이 사용한다.
- 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소
- 메모리 관리 장치(MMU; Memory Management Unit)
- CPU와 주소 버스 사이에 위치한 하드웨어
- 논리주소 ↔ 물리주소 변환
- CPU가 발생시킨 논리주소 + 베이스레지스터 == 물리주소
- 베이스 레지스터 : 프로그램의 가장 작은 물리주소, 즉 프로그램의 첫 물리주소
- 논리 주소 : 프로그램의 시작점으로부터 떨어진 거리
2) 메모리 보호 기법 : 한계 레지스터
- 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하다.
- 따라서 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 방법이 필요함. -> 한계 레지스터가 담당
- 한계 레지스터(limit register)
- 논리주소의 최대 크기를 저장한다.
- 프로그램의 물리 주소 범위 : 베이스 레지스터 값 ≤ addr < 베이스 레지스터 + 한계 레지스터 값
- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 크면 안 된다.
- CPU가 한계 레지스터보다 높은 논리주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단한다.
6.3 캐시 메모리
1) 저장 장치 계층 구조 (memory hierarchy)
- 저장 장치의 특징
- CPU와 가까운 저장 장치는 빠르고 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 저장 용량이 작고,가격이 비싸다.
- 저장 장치 계층 구조 : 각기 다른 용량과 성능의 저장장치를 계층화하여 표현한 구조
2) 캐시메모리 (cache memory)
- CPU와 메모리 사이에 위치하고,레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
- CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 발생했다.
- 컴퓨터 내부에는 여러 캐시메모리가 있고 CPU(코어)와 가까운 순으로 계층(L1캐시, L2캐시, L3캐시)을 구성한다.
- 분리형 캐시(split cache)
- 목적 : 코어와 가장 가까운 L1캐시에 대해 접근 속도를 더욱 빠르게 만든다.
- 명령어만을 저장하는 L1 캐시와 데이터만을 저장하는 L1캐시인 L1D로 분리한다.
3) 참조 지역성 원리
(1) 캐시 히트와 캐시 미스
- 캐시메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다.
- 캐시 히트 (cache heat)
- 자주 사용될 것으로 예측한 데이터가 실제로 들어 맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
- 캐시 적중률 (cache hit ratio) : 캐시가 히트되는 비율
캐시 히트 횟수 / ( 캐시 히트 횟수 + 캐시 미스 횟수 )
- 캐시 미스 (cache miss)
- 자주 사용될 것으로 예측해 캐시메모리에저장했지만, 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
- 캐시 미스가 자주 발생하면 성능 저하
(2) 참조 지역성의 원리 (locality of reference, principle of location)
- 캐시 메모리가 메모리부터 가져올 데이터를 결정하는 원칙
- CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
- 시간 지역성(temporal locality) : CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- 공간 지역성(spatial locality) : CPU는 접근할 메모리 공간 근처를 접근하려는 경향이 있다.
Chap07. 보조기억장치
7.1 다양한 보조기억장치
1) 하드 디스크 (HDD; Hard Disk Drive)
: 자기적인 방식으로 데이터를 저장하는 보조기억장치
(1) 구조
- 플래터(platter) : 실질적으로 데이터가 저장되는 곳
- 스핀들(spindle) : 플래터를 회전시키는 구성 요소
- 분당 플래터를 돌리는 속도는 RPM 단위로 표현
- 헤드(head) : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
- 헤드는 원하는 위치로 헤드를 이동시키는 디스크 암(disk arm)에 부착되어 있다.
- 양면 플래터를 사용하면 플래터 당 두 개의 헤드가 사용된다.
- 모든 헤드는 디스크 암에 부착되어 이동한다.
- 다중 헤드 디스크(multiple-head disk) : 헤드가 트랙별로 여러 개 달려 있다.
- 탐색 시간이 0이다.
- 고정 헤드 디스크(fixed-head disk)라고도 한다.
- 단일 헤드 디스크(single -head disk ) : 헤드가 트랙별로 한 개 달려 있다.
- 이동 헤드 디스크(movable-head disk)라고도 한다.
(2) 데이터의 저장
- 플래터는 트랙(track)과 섹터(sector)라는 단위로 데이터를 저장한다.
- 트랙의 한 조각이 섹터(하드 디스크의 가장 작은 전송 단위)
- 실린더 (cylinder) : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
- 연속된 정보는 보통 한 실린더에 기록된다. ( ∵ 디스크 암을 움직이지 않고도 데이터에 접근 가능)
(3) 데이터에 접근하는 시간 : 탐색 시간, 회전 지연, 전송 시간
- 탐색 시간 (seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연 (rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간 (transfer time) : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
2) 플래시 메모리(flash memory)
(1) 플래시 메모리
- 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치
- 셀(cell) : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
- 하나의 셀에 몇 비트를 저장할 수 있느냐에 따라 종류가 나뉜다.
- 페이지(page) : 셀들이 모여 이루어진 단위
- 읽기/쓰기가 이루어지는 단위
- 페이지의 상태
- Free 상태 : 어떠한 데이터도저장하고 있지 않아 새로운 데이터 저장 가능
- Valid 상태 : 유효한데이터를 저장하고 있는 상태
- Invalid 상태 : 유효하지 않은 데이터를 저장하고 있는 상태
- 플래시 메모리는 덮어쓰기가 불가능 -> Valid 상태인 페이지에 새 데이터 저장 불가
- 가비지 컬렉션(garbage collection) : 유효한 페이지들만을 새 블록에 복사하고 기존의 블록을 삭제함으로써 쓰레기값을 정리
- 블록(block) : 페이지가 모여 이루어진 단위
- 삭제가 이루어진 단위
- 플레인(plane) : 블록이 모여 이루어진 단위
- 다이(die) : 플레인이 모여 이루어진 단위
(2) 플래시 메모리 종류
- SLC (Single Level Cell)
- 하나의 셀로 2개의 정보 표현 가능 (1bit)
- 비트의 빠른 입출력 가능
- 수명이 비교적 길지만 용량 대비 가격이 높다.
- MLC (Multiple Level Cell)
- 하나의 셀로 4개의 정보 표현 가능 (2bit)
- SLC 타입보다 대용화하기 유리하고, 용량 대비 가격이 저렴하다.
- 시중에서 사용되는 많은 플래시 메모리 셀이 MLC 타입이다.
- TLC (Triple-Level Cell)
- 하나의 셀로 8개의 정보 표현 가능(3bit)
- 일반적으로 SLC, MLC 타입보다 수명과 속도가 떨어지지만 용량 대비 가격이 저렴하다.
7.2 RAID의 정의와 종류
1) RAID의 정의
- RAID (Redundant Array of Independent Disks)
- 데이터의 안정성 또는 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술
- 주로 하드디스크와 SSD를 사용하는 기술
2) RAID의 종류
- RAID 레벨 : RAID 구성 방법
(1) RAID0
- 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
- 스트라입(stripe) : 분산되어 저장된 데이터
- 스트라이핑(striping) : 데이터를 분산하여 저장하는 것 -> 저장된 데이터를 읽고 쓰는 속도가 빨라진다.
- 저장된 정보가 안전하지 않다. (하나의 보조기억장치에 문제가 생기면 다른 모든 디스크의 정보를 읽는 데 문제 발생 가능)
(2) RAID1
- RAID0의 단점을 해결하기 위해 등장했다.
- 미러링(miroring) : 완전한 복사본을 만든다.
- 원본과 복사본에 데이터를 쓰기 때문에 속도가 RAID0보다 느리다.
- 복구가 간단하나 사용 가능한 용량이 적어진다(-> 비용의 증가)
(3) RAID4
- 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 둔다.
- 패리티 비트(parity bit) : 오류를 검출하고 복구하기 위한 정보
- RAID1보다 적은 하드 디스크로도 데이터를 안전하게 보관할 수 있다.
- 새 데이터를 저장할 때마다 패리티 비트를 저장하는 디스크에 데이터를 써야 하므로 패리티 비트를 저장하는 디스크에 병목 현상이 발생한다.
(4) RAID5
- 패리티 비트를 분산하여 저장한다.
(5) RAID6
- 구성은 RAID5과 기본적으로 동일하나, 서로 다른 두 개의 패리티 비트를 둔다.
Chap08. 입출력장치
8.1 장치컨트롤러와 장치 드라이버
1) 장치 컨트롤러 (device controller)
(1) 필요성
- 입출력장치의 종류가 매우 많다.
- 일반적으로 CPU와 메모리의 데이터 전송률은 높지만, 입출력 장치의 데이터 전송률은 낮다.
- 전송률(transfer rate) : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
(2) 장치 컨트롤러
- 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해 연결된다.
- 입출력 제어기(I/O controller), 입출력 모듈(I/O module)이라고 불리기도 한다.
- 장치 컨트롤러가 해결하는 문제
- CPU와 입출력 장치간의 통신 중개
- 오류 검출
- 데이터 버퍼링 : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼에 저장해 전송률을 비슷하게 맞춘다.
- 내부 구조
- 데이터 레지스터 (data register) : CPU와 입출력장치 사이에 주고받을 데이터가 담긴 레지스터
- 상태 레지스터 (status register) : 입출력장치에 대한 상태 정보를 저장한다.
- 제어 레지스터 (control register) : 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장한다.
2) 장치 드라이브 (device drive)
: 장치 컨트롤러의 동작을 감지하고 제어하여 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
8.2 다양한 입출력 방법
1) 프로그램 입출력 (programmed I/O)
- 프로그램 속 명령어로 입출력장치를 제어하는 방법
- CPU가 장치 컨트롤러의 레지스터의 값을 읽고 씀으로써 이루어진다.
- 폴링(polling) : 입출력장치의 상태와 처리할 데이터 유무를 주기적으로 확인한다.
(1) 메모리 맵 입출력 (memory-mapped I/O)
- 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주
- 메모리에 접근하는 명령어와 입출력장치에 접근하는 명령어가 다를 필요가 없다.
- 메모리 주소 공간이 축소된다.
(2) 고립형 입출력 (isolated I/O)
- 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리한다.
- 메모리에 접근하는 명령어와 입출력장치에 접근하는 명령어가 다르다. (입출력 전용 명령어 사용)
- 메모리 주소 공간이 축소되지 않는다.
2) 인터럽트 기반 입출력 (Interrupt-Driven I/O)
- 입출력 장치에 의한 하드웨어 인터럽트는 장치 컨트롤러에 의해 발생한다.
- 폴링 방식보다 CPU 부담이 적다. (인터럽트 요청을 받을 때까지 다른 일에만 집중할 수 있다.)
- 여러 입출력장치에서 인터럽트가 동시에 발생한 경우
- CPU가 플래그 레지스터 속 인터럽트 플래그를 비활성화한 채 인터럽트 처리 : 순차적 처리
- CPU가 플래그 레지스터 속 인터럽트 플래그가 활성화되어 있거나 무시할 수 없는 인터럽트(NMI; Non-Maskable Interrupt)가 발생한 경우 : 우선순위가 높은 인터럽트부터 처리
- 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별한 후 CPU에 지금 처리해야 할 하드웨어 인터럽트를 알려주는 프로그래머블 인터럽트 컨트롤러(PIC; Programmable Interrupt Controller)를 사용한다.
- 처리 과정
- PIC가 장치컨 트롤러에서 인터럽트 요청신호(들)를 받아들인다.
- PIC는 인터럽트 우선순위를 판단한 뒤 CPU에 처리해야 할 인터럽트 요청 신호를 보낸다.
- CPU는 PIC에 인터럽트 확인 신호를 보낸다.
- PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터를 보낸다.
- CPU는 인터럽트 벡터를 통해 인터럽트 요청의 주체를 파악하고 해당 장치의 인터럽트 서비스 루틴을 실행한다.
3) DMA 입출력 (Direct Memory Access I/O)
- 프로그램 기반 입출력, 인터럽트 기반 입출력의 특징
- 입출력장치와 메모리 간의 데이터 이동은 CPU가 주도하고 이동하는 데이터도 반드시 CPU를 거친다.
- CPU의 부담이 크다.
- DMA (Direct Memory Access)
- 직접 메모리에 접근할 수있는 입출력 기능
- DMA 입출력을 위해서는 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어가 필요하다.
- DMA 입출력 과정
- CPU는 DMA 컨트롤러에 입출력장치 주소, 수행할 연산(읽기/쓰기), 읽거나 쓸 메모리의 주소 등과 같은 정보로 입출력 장치 작업을 명령한다.
- DMA 컨트롤러는 CPU 대신 장치컨트롤러와 상호작용하며 입출력 작업을수행한다. 이때 DMA 컨트롤러는 필요한 경우 메모리에 직접 접근하여 정보를 읽거나 쓴다.
- 입출력 작업이 끝나면 DMA 컨트롤러는 CPU에 인터럽트를 걸어 작업이 끝났음을 알린다.
- DMA의 시스템 버스 이용 : 사이클 스틸링 (cycle stealing)
- 시스템 자원은 공용 자원이라 동시 사용이 불가능하다.
- DMA 컨트롤러는 CPU가 시스템 버스를 이용하지 않을 때마다 조금씩 시스템 버스를 이용하거나 일시적으로 CPU가 시스템 버스를 사용하지 않도록 한 후 집중적으로 이용한다.
- 입출력 버스(input/ouptput bus)
- CPU, 메모리, DMA 컨트롤러, 장치 컨트롤러가 모두 같은 버스를 공유하는 구성에서는 DMA를 위해 한 번 메모리에 접근할 때마다 시스템 버스를 두 번 사용하게 된다.
- DMA를 위해 시스템 버스를 너무 자주 사용하면 CPU가 시스템 버스를 이용하는 데 제한이 생긴다.
- DMA 컨트롤러와 장치 컨트롤러들을 입출력 버스라는 별도의 버스에 연결해 위의 문제를 해결할 수 있다.
- ex) PCI(Peripheral Component Interconnect) 버스, PCI Express(PCIe) 버스
🤔느낀 점
새로 배운 용어가 많아서 조금 힘들었습니다.. 그래도 벌써 책의 절반인 컴퓨터구조의 학습을 끝내서 뿌듯하네요!
'독학 > [책] 컴퓨터구조 + 운영체제' 카테고리의 다른 글
[혼공학습단 11기 혼공컴운💿] 컴퓨터구조+운영체제 week6 (2) | 2024.02.05 |
---|---|
[혼공학습단 11기 혼공컴운💿] 컴퓨터구조+운영체제 week5 (0) | 2024.01.31 |
[혼공학습단 11기 혼공컴운💿] 컴퓨터구조+운영체제 week4 (0) | 2024.01.22 |
[혼공학습단 11기 혼공컴운💿] 컴퓨터구조+운영체제 week2 (4) | 2024.01.08 |
[혼공학습단 11기 혼공컴운💿] 컴퓨터구조+운영체제 week1 (0) | 2024.01.03 |