6. 메모리와 캐시메모리
메인메모리로 사용되는 두 하드웨어
- RAM (Random Access Memory)
- ROM (Read Only Memory)
흔히 “(메인) 메모리”라는 용어는 RAM을 지칭하는 경우가 많다.
RAM의 특징과 종류
RAM 특징
- 휘발성 저장장치 : 전원을 끄면 저장된 내용이 사라지는 저장장치
비휘발성 저장장치 : 저원이 꺼져도 저장된 내용이 유지되는 장치,
- 하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조기억장치
보조기억장치 : 비휘발성 저장 장치지만, CPU가 보조기억 장치로 직접 접근하지 못함
- 실행하고 싶은 프로그램을 RAM에 복사하여 저장한 뒤 실행
즉, 보조기억장치(ROM)에는 ‘보관할 대상’을 저장하고 휘발성장치(RAM)에는 ‘실행할 대상’을 저장한다.
RAM의 크기와 성능 간의 관계
많은 프로그램을 동시에, 빠르게 실행하는 데에 유리
- 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아진다.
- RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다.
부품 | 비유 |
---|
보조기억장치 | 책이 꽂혀있는 책장 |
RAM | 책을 읽을 수 잇는 책상 |
- RAM용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 필요이상으로 커졌을 때는 속도가 그에 비례하여 증가하지않는다.
- 책을 얼마나 읽던 간에 책장을 오가는 시간이는 별 차이가 없기 때문이다.
RAM의 종류
-
DRAM(Dynamic RAM) : 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
- 데이터 소멸을 막기위해 일정 주기로 데이터를 재활성화(다시 저장)해야한다.
-
SRAM(Static RAM) : 시간이 지나도 저장된 데이터가 사라지지 않는 RAM
- 전원이 공급되지않으면 저장된 내용이 날아가는 휘발성 메모리인것은 동일하다.
- 직접도가 높다 = 더 작고 빽빽하게 만들 수 있다.
| DRAM | SRAM |
---|
재충전 | 필요함 | 필요 없음 |
속도 | 느림 | 빠름 |
가격 | 저렴함 | 비쌈 |
직접도 | 높음 (대용량화 하기 유리) | 낮음 |
소비전력 | 적음 | 높음 |
사용용도 | 주기억장치 (RAM) | 캐시메모리 |
-
SDRAM(Synchronous Dynamic RAM) : 클럭 신호와 동기화된, 발전된 형태의 DRAM
- 클럭 신호화 동기화 : 클럭 신호 타이밍에 맞춰서 CPU와 정보를 주고받을 수 있는 RAM
-
DDRSDRAM(Double Data Rate SDRAM) : 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
- 대역폭(date rate): 데이터를 주고받는 길의 너비
- DDR SDRAM = SDRAM의 두 배 넓음
- DDR3 SDRAM = DDR2 SDRAM의 두 배 넓음
ROM
- 비석과도 같은 정치로 비휘발성 저장장치
- 냉장고, 전자렌인지, 게임기, 텔레비전과 같은 가전제품에서도 많이 사용한다.
ROM의 종류
- Mask ROM : 가장 기본적인 형태의 ROM
- 제조과 정에서 저장할 내용을 미리 기록
- 전자레인지, 텔레비전, 게임기 등
- PROM (Programmable ROM)
- 데이터를 한 번 새길 수 있는 ROM
- 한 번에 한해 사용자가 직접 원하는 데이터를 써넣을 수 있는 ROM
- EPROM (Erassable PROM) : 지우고 다시 저장가능한 ROM
- 플래시 메모리 : EEPROM의 발전된, 저렴한 형태, 반도체 기반의 저장장치
- 범용성 넓은 저장장치로 대부분의 가전제품이나 보조기억장치로도 사용한다.
물리 주소와 논리 주소
물리 주소 : 실메 메모리의 하드웨어 상의 주소
논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소 (0번지 부터 시작)
- 모든 프로그램은 0번지 부터 시작하는 각자의 논리 주소를 사용한다.
- CPU는 0번지 부터 시작하는 각 프로그램의 논리 주소를 인출, 해석, 실행 한다.
주소 변환
CPU, 프로그램이 사용하는 주소 체계(논리 주소)와 메모리가 사용하는 주소 체계(물리 주소)가 다를때 부품은 주소 변환을 통해 통신한다.
MMU(Memory Manangement Unut)
- 논리 주소와 물리 주소 간의 변환을 담당하는 장치로 베이스 레지스터를 활용한 주소 변환
- 베이스 레지스터 : 프로그램의 첫 물리 주소를 저장한다.
-
베이스 레지스터 = 기준 주소
-
논리 주소 = 기준 주소로부터 떨어진 거리
한계 레지스터 : 실행 중인 프로그램의 논리 주소의 최대 크기를 저장한다.
저장 장치 계층 구조
CPU와 가까운 순으로 각기 다른 용량과 성능의 저장 장치들을 계층화하여 표현한 구조
- CPU와 가까운 저장장치는 빠르고, 멀리있는 저장장치는 느림
- 속도가 빠른 저장 장치는 용량이 작고, 가격이 비싸다.
캐시 메모리
CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치
- CPU와 메모리 사이에 위치, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반
- CPU에서 사용할 법한 정보를 미리 가져와 저장
캐시 메모리에 데이터가 있을 때와 없을 때
- 캐시 히트 (메모리 접근 안함) : 캐시 메모리가 CPU가 요구하는 정보를 저장한 경우
- 캐시 미스 (메모리 접근 함) : 캐시 메모리가 CPU가 요구하는 정보를 저장하지않은 경우
- 캐시 적중률 : 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.
- 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다.
- 시간 지역성 : CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- 공간 지역성 : CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.
7. 보조기억장치
하드 디스크
구성요소에는 플래터 스핀들, 헤드, 디스크 암이 있다.
- 플래터 : 하드 디스크 상에서 실직적으로 데이터가 저장되는 부분
- 트랙과 섹터로 나뉜다. 여러 플래터와 동일한 트랙이 모여 실린더를 이룬다.
- 스핀들 : 플래터를 회전시키는 부분
- 하드 디스크의 데이터 접근 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.
플래시메모리
반도체 기반의 저장장치
- 매우 범용성이 넓은 저장장치
- NAND 플래시 메모리와 NOR 플래시 메모리가 있으며, 일반적으로 사용되는 것은 NAND 플래시 메모리
- 한 셀에 몇 비트를 저장할 수 있느냐에 따라 SLC, MLC, TLC로 나뉜다.
- 읽기와 쓰기 : 페이지 단위
- 삭제 : 블록 단위
RAID
데이터의 안전성 혹은 높은 성능을 위해 여러 보조기억장치를 마치 하나의 장치처럼 사용하는 기술
RAID 레벨 : RAID를 구성하는 방법
- RAID 0 : 데이터를 단순히 병렬로 분산하여 저장하는 구성 방식(스트라이핑)
- RAID 1 : 완전한 복사본을 만드는 방식(미러링)
- 쓰기 성능 감소 / 저장 공간 감소 / 신뢰성 증가(복구 용이함)
- RAID 4 : 패리티 비트(Parity bit)라는 오류 검출용 비트를 저장하는 장치를 따로 두는 방식
- RAID 1에 비해 적은 하드 디스크로도 신뢰성 증가 가능
- 패리티 비트를 저장한 디스크에 병목 현상이 증가
- RAID 5 : 패리티를 분산하여 저장하는 방식
- RAID 6 : 서로 다른 두 개의 패리티를 두는 방식
- Nested RAID : 여러 RAID 레벨을 혼합한 방식
8. 입출력 장치
- 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받는다.
- 보조기억장치도 입출력 장치의 일부로 볼 수 있다.
- 입출력 장치는 CPU 입장에서 메모리, 레지스터에 비해 다루기 까다롭다.
- 매우 다양한 입출력 장치의 종류
- CPU와 입출력 장치 간의 전송류 차이 존재
장치 컨트롤러 (입출력 제어기, 입출력 모듈)
장치 컨트롤러를 사용하여 위의 문제를 해결한다.
- CPU와 입출력장치 간의 통신 중계
- 오류 검출
- 데이터 버퍼링을 통한 전송률 차이 완화
장치 드라이버
장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
- 운영체제의 일부로 포함되어 있는 경우가 많다.
CPU와 장치 컨트롤러가 정보를 주고받는 방법
- 프로그램 입출력 : 프로그램 속 명령어를 기반으로 입출력을 수행하는 방법
- 인터럽트 기반 입출력 : 인터럽트를 기반으로 입출력을 수행하는 방법
입출력장치와 메모리 간의 데이터 이동을 CPU가 주도하고 이동하는 데이터도 CPU가 거치는 문제점 발생
- DMA 입출력 : DMA를 기반으로 입출력을 수행하는 방법
- CPU를 거치지 않고 메모리와 입출력장치 간의 데이터를 주고받는 입출력 방식
- 직접 메모리에 접근 가능한 입출력 가능하며 DMA컨트롤러가 필요
입출력 작업 전달 | 메모리로부터 백업할 정보를 읽얻오고, 이를 하드 디스크의 장치 컨트롤러에 내보낸다. | 입출력 작업이 끝났다면 인터럽트를 통해 작업이 끝났음을 알림 - 사이클 스틸링 : CPU입장에서는 시스템 버스를 사용할 사이클을 도둑맞는다 | 입출력 전용 버스인 입출력 버스 를 만들어서 시스템버스와 분리한다. |
---|
| | | |
- 메모리 맵 입출력 : 메모리에 접근하기 위한 주소 공간과 입출력 장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 입출력 방식
- 고립형 입출력 : 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 별도로 분리하는 입출력 방식
- 입출력 버스 : 입출력장치와 컴퓨터 내부를 연결 짓는 통로로, 입출력 작업 과정에서 시스템버스 사용 횟수를 줄여준다.
3주차 미션
진도: Chapter 06 ~ 08
기본 미션: p.185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기
선택 미션: Ch.07(07-1) RAID의 정의와 종류를 간단히 정리해 보기
기본 미션 : p.185의 확인 문제 3번 풀고 인증하기
기본 미션 : p. 205의 확인 문제 1번 풀고 인증하기
선택 미션: Ch.07(07-1) RAID의 정의와 종류를 간단히 정리해 보기
RAID : 데이터 안전성, 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용 가능한 기술
RAID를 구성하는 방법은 여러가지가 있으며 이런 구성 방법을 RAID 레벨 이라고 한다.
대표적으로 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4,RAID 5, RAID 6 이 대중적으로 사용된다.
RAID레벨 | 특징 |
---|
RAID 0 | 데이터를 단순히 병렬로 분산하여 저장하는 구성 방식(스트라이핑) : 성능 개선 / 신뢰성 감소 |
RAID 1 | 완전한 복사본을 만드는 방식(미러링) : 쓰기 성능 감소 / 저장 공간 감소 / 신뢰성 증가(복구 용이함) |
RAID 4 | 패리티 비트(Parity bit)라는 오류 검출용 비트를 저장하는 장치를 따로 두는 방식 : RAID 1에 비해 적은 하드 디스크로도 신뢰성 증가 가능 - 패리티 비트를 저장한 디스크에 병목 현상이 증가 |
RAID 5 | 패리티를 분산하여 저장하는 방식 : RAID 4 병목 해결 |
RAID 6 | 서로 다른 두 개의 패리티를 두는 방식 |
Nested RAID | 여러 RAID 레벨을 혼합한 방식 |
3주 회고
강의를 보고 미션을 다 했지만, 전체적인 내용정리를 일요일안에 다 하지 못한 점이 아쉽다.
일단 제출을 하고 천천히 공부내용을 정리 해야겠다.