3주차 (1/15 ~ 1/21)
Chapter 06 메모리와 케시메모리
Chapter 07 보조기억장치
Chapter 08 입출력장치
주기억장치의 종류에는 RAM(Ramdom Acess Memory) 과 ROM(Read Only Memory) 두가지가 있고, '메모리'라는 용어는 그 중 RAM을 지칭하는 경우가 많습니다.
RAM : 전원이 차단되면 RAM에 있던 데이터가 사라지는 '휘발성 메모리'
ROM : 전원이 차단되어도 데이터를 계속 가지고 있는 '비휘발성 메모리'
여기서는 RAM용량이 컴퓨터 성능에 어떤 영향 미치는지와 RAM의 종류에 대해 학습한다.
CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 할 텐데, RAM용량이 작다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.
하지만, RAM용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와서 미리 RAM에 저장할 수 있다.
📌이처럼, RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리함
✅ DRAM : Dynamic RAM
Dynamic(동적인)은 저장한 데이터가 사라지는
RAM을 의미.
재활성화(다시 저장)
해야 한다. 소비전력이 낮고
, 저렴
하고 집적도가 높음
(더 작고 빽빽하게 만들 수 있음)대용량
설계에 유리하여 주기억장치
로 이용✅ SRAM : Static RAM
Static(정적인)은 저장한 데이터가 변하지 않는
RAM을 의미.
소비전력이 높고
,비싸
고 집적도가 낮음
속도가 빨라야 하는 저장 장치
에 유리하여 캐시메모리
로 이용DRAM | SRAM | |
---|---|---|
재충전 | 필요함 | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴함 | 비쌈 |
집적도 | 높음 | 낮음 |
소비 전력 | 적음 | 높음 |
사용 용도 | 주기억장치(RAM) | 캐시메모리 |
✅ SDRAM
Synchronous(동기화된) + DRAM
클럭 신호와 동기화된
즉, 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM✅ DDR SDRAM
Double Data Rate + SDRAM
대역폭(데이터를 주고 받는 길의 너비)
를 넓혀 속도를 빠르게 만든 SDRAMSDRAM에 비해 전송 속도도 두 배
빠르다. 1. 메모리 주소의 종류
✅ 논리주소를 사용하는 이유?
메모리에는 새롭게 실행되는 프로그램이 시시때대로 적재되고, 실행이 끝나면 삭제되고, 다시 같은 프로그램 실행되면 적재되는 주소 달라질 수 있다.
그러므로 CPU와 실행프로그램 입장에서는 프로그램의 물리주소가 계속 바뀌는 것이나 마찬가지이다. 그래서 물리주소 대신에 프로그램에 0번지부터 부여되는 자신만을 위한 주소인(프로그램 각각을 구분할 수 있는 고유힌) 논리주소가 필요하다.
2. 논리주소와 물리주소 간의 변환
📌 CPU와 메모리가 상호작용하려면 CPU가 이해하는 논리주소를 메모리 상의 주소인 물리 주소로 변환하는 작업이 필요하다!!
메모리관리장치MMU
: MMU는 CPU가 발생시킨 논리 주소
에 베이스레지스터 값
을 더하여 논리 주소를 물리 주소로 변환한다.
✅ 베이스 레지스터 : 프로그램의 가장 작은 물리주소
✅ 한계 레지스터 : 논리주소의 최대 크기
➡️ 물리주소 범위 = 베이스레지스터 값 ~ 베이스레지스터 값+ 한계 레지스터 값
모든 사람들은 빠르고 동시에 용량이 큰 저장 장치를 원한다.
빠르다
: CPU가 메모리에 접근하는 속도가 빨라, 빠르게 메모리의 정보를 가져오거나 저장할 수 있다.용량이 크다
: 용량이 크면 여러 프로그램을 동시에 실행할 수 있다. 하지만, '빠른 저장 장치'와 '용량이 큰 저장 장치' 양립이 어렵다.
이유
1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
1. 저장 장치 계층 구조
컴퓨터가 사용하는 저장 장치들을 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타냄
2. 캐시 메모리의 등장
캐시메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해서 등장
3. 참조지역성 원리
CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할
일부 데이터를 미리 캐시 메모리에 가져와서
활용한다.
📌 어떤 데이터를 캐시 메모리로 가지고 올것인가? 데이터 가져오는 기준 ?
참조지역성의 원리
최근에
접근했던 메모리 공간에 다시 접근하려는 경향 공간 근처
를 접근하려는 경향 📌 캐시 적중률
캐시 히트 : 자주 사용할 것으로 예측한 데이터가 실제로 사용될 경우
캐시 미스 : 자주 사용할 것으로 예측한 데이터가 실제로 사용되지 않을 경우
캐시 적중률 : 캐시 히트 횟수 / (캐시히트 횟수 + 캐시미스 횟수)
보관할 프로그램을 저장
하는 장치비휘발성 저장장치
메모리 | 보조기억장치 | |
---|---|---|
저장 대상 | 실행할 프로그램 | 보관할 프로그램 |
속성 | 휘발성 | 비휘발성 |
1. 하드디스크 구성요소
📌 플래터(platter) : 실질적으로 데이터 저장되는 공간
트랙
과 섹터
로 나누어짐 실린더
를 이룸 2. 하드디스크 데이터 저장 및 읽기
✅ 데이터 저장
플래터는 트렉과 섹터 그리고 실린더라는 단위로 데이터를 저장
트렉
: 운동장 트렉과 같은 하나의 원
섹터
: 하드디스크의 가장 작은 (정보) 전송 단위,트렉은 여러 조각으로 나눠지는 데 그 한 조각이 섹터
실린더
: 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모야 연결한 논리적인 단위로 연속된 정보는 보통 한 실린더에 기록
✅ 저장된 데이터에 접근하는 과정
1. 플래시 메모리 종류
한 셀에 몇 비트를 저장
할 수 있냐에 따라
구분 | SLC | MLC | TLC |
---|---|---|---|
셀당 bit | 1bit | 2bit | 3bit |
수명 | 길다 | 보통 | 짧다 |
일기/쓰기 속도 | 빠르다 | 보통 | 느리다 |
용량 대비 가격 | 높다 | 보통 | 낮다 |
플래시 메모리 저장 단위
cell
: 플래시메모리에서 데이터를 저장하는 가장 작은 단위
page
: 셀들이 모여 만들어진 단위
block
: 페이지 모여 만들어진 단위
plane
: 블록이 모여 만들어진 단위
die
: 플레인이 모여 만들어진 단위
2. 플래시 메모리 데이터 저장 및 읽기
메모리 읽기와 쓰기 : 페이지 단위
로
페이지의 상태
메모리 삭제 : 블록 단위
로
플래시 메모리
die > plane > block(데이터 삭제) > page(데이터 읽기 쓰기) > cell
즉, 데이터 삭제하는 단위(block)가 저장하는 읽고 쓰는 단위(page)보다 더 크다.
여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술
입니다.
중복된 데이터를 나눠서 저장하는 제일 큰 이유는데이터를 안전하게 보호
하기 위함에 있습니다.
데이터를 나누는 여러개의 방법이 존재하며, 이 방법들을레벨
이라고 하는 데 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등의 다양한 목적을 만족시킬 수 있습니다.
📑 참고사이트
2 RAID의 종류
빠른 데이터의 입출력 위해 데이터를 여러 디스크에 분산
해서 저장복사본을 만드는 방식
으로 mirroring이라고도 한다.데이터 복구 능력이 좋음
오류 검출하고 복구하기 위한 정보(패리티 비트) 저장하는 장치
두는 방식패티리 정보를 분산하여 저장
하는 방식으로 RAID 4의 병목 현상 해결 두 개의 패리티
두는 방식으로 데이터를 안전하게 보관하고 싶을 때 사용안전하게 데이터 보관
입출력장치는 장치 컨트롤러(하드웨어)와 장치 드라이버(소프트웨어)를 통해 컴퓨터 내부와 연결되고 소통한다.
1. 장치 컨트롤러 등장 배경
- 입출력장치에는 종류가 너무나도 많다.
- 일반적으로 CPU와 메모리의
데이터 전송률
은 높지만 입출력장치의 데이터 전송률은 낮다.
데이터 전송률
: 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표
이 같은 이유로 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해연결 된다.
2. 장치 컨트롤러의 역할
📌 데이터 버퍼링
전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(Buffer)라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법
3. 장치 컨트롤러의 내부 구조
장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있도록 하는 프로그램
프로그램이므로 실행과정에서 메모리에 저장되어 있다.
📌 그렇다면 장치 컨트롤러는 CPU와 정보를 어떻게 주고 받는가?
장치컨트롤러가 CPU와 정보 주고 받는 방식
CPU는 어떻게 장치 컨트롤러 속 레지스터주소 값에 접근하고 데이터 읽거나 저장하는가?
📌 메모리 맵 입출력
메모리에 접근하기 위한 주소공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주 하는 방식
📌 고립형 입출력
메모리를 위한 주소공간과 입출력장치를 위한 주소 공간을 분리하는 방식
메모리 맴 입출력 | 고립형 입출력 | |
---|---|---|
다중 인터럽트 처리 과정
프로그램 입출력방식
과인터럽트 기반 입출력
방식은 입출력장치와 메모리 간의 데이터이동은 CPU가 주도, 이동하는 데이터도 반드시 CPU 거친다.
3-1. DMA 컨트롤러 등장 배경
📌 데이터간 이동에 반드시 CPU 거쳐야 한다면 CPU는 입출력장치 연산에 너무 많은 시간을 빼았김
-> 이런 문제를 보완하고자 DMA 입출력
등장
Direct Memory Access
입출력장치와 메모리가 CPU를 거치지 않고 메모리와 입출력장치간 직접 데이터 주고 받는 입출력 방식
DMA 입출력 과정
➡️ CPU는 시작과 끝에만 참여, 나머지 과정은 DMA가 주도
3-2. 입출력버스 등장 배경
📌 여전히 DMA와 CPU가 시스템 버스 공유하므로, DMA를 위해 시스템버스를 너무 자주 사용하면 그만큼 CPU가 시스템 버스 이요하지 못함 -> 이를 보안 입출력 버스
등장
입출력 버스
: 입출력장치와 컴퓨터 내부를 연결 짓는 별도의 버스(내부통로)로, 입출력 작업 과정에서 시스템 버스 사용 횟수를 줄여준다.
p. 185의 확인 문제 3번
SRAM : 주로 캐시메모리
로 활용
SRAM : 직접도가 상대적으로 낮다
.
DRAM : 주로 주기억장치
로 활용
DRAM : 대용량화하기 유리
p. 205의 확인 문제 1번 풀고 인증하기
인증하기 Ch.07(07-1) RAID의 정의와 종류를 간단히 정리해 보기
상단 07-2 RAID의 정의와 종류에서 정리