본문 바로가기
CS/혼공컴구운체

[혼공컴운] 혼공단 3주차: 06~08

by 동백05 2024. 1. 21.

06 메모리와 캐시 메모리

06-1 RAM의 특징과 종류

RAM

- 실행할 프로그램의 명령어와 데이터 저장

- 휘발성 저장장치: 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날라감, 실행할 대상 저장

- 비휘발성 저장장치: 전원이 꺼져도 저장된 내용 유지, 보관할 대상 저장

- CPU는 보조기억장치에 직접 접근하지 못함

- RAM 용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할수 있음 -> 많은 프로그램을 동시에 실행하는데 유리

- 용량이 필요 이상을 커졌을 때 속도가 그에 비례하여 증가하지 않음

 

DRAM

- Dynamic RAM

- 시간이 지나면 저장된 데이터가 점차 사라지는 RAM

- 일정 주기로 데이터를 재활성화 해야함

- 소비전력이 비교적 낮고, 저렴하고, 집적도가 높기 때문에 대용량으로 설계하기 용이

 

SRAM

- Static RAM

- 저장된 데이터가 변하지 않는 RAM

- 일반적으로 속도가 빠름

- 집적도가 낮고, 소비전력도 크며, 가격도 더 비쌈

- 대용량으로 만들어질 필요는 없지만 속도가 빨라야하는 저장장치 -> 주로 캐시 메모리

 

SDRAM

- 클럭 신호와 동기화된, 발전된 형태의 DRAM

- 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음

 

DDRAM

- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM

- 대역폭: 데이터를 주고받는 길의 너비

[ 기본 미션 ]
다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요
주로 캐시 메모리로 활용됩니다. -> SRAM
주로 주기억장치로 활용됩니다. -> DRAM
대용량화하기 유리합니다. -> DRAM
집적도가 상대적으로 낮습니다. -> SRAM

 

06-2 메모리의 주소 공간

물리주소

- 메모리 하드웨어가 사용하는 주소

- 정보가 실제로 저장된 하드웨어상의 주소

 

논리주소

- CPU와 실행중이 프로그램이 사용하는 주소

- 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

 

메모리 관리 장치 MMU

- CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환

- 베이스 레지스터: 프로그램의 가장 작은 물리 주소, 프로그램의 첫 물리주소 저장

 

한계 레지스터

- 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호 담당

- 논리 주소의 최대 크기 저장

- 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만

- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안됨

06-3 캐시 메모리

낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고, 빠른 메모리를 원한다면 적은 용량과 비싼 가격은 감수해야 한다

 

캐시 메모리

- CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치

- CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생

- 캐시메모리에 CPU가 필요로 하는 데이터가 있다면 필요한 데이터로의 접근 시간을 줄일 수 있음

- CPU가 사용할 법한 대상을 예측하여 저장

 

캐시 히트

- 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우

캐시 미스

- 자주 사용될 것으로 예측하여 캐시 메모리에 저장했지만, 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

캐시적중률

- 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

 

참조 지역성의 원리

- 시간지역성: 최근에 접근했던 메모리 공간에 다시 접근하려는 경향

- 공간지역성: 접근한 메모리 공간 근처에 접근하려는 경향

 

[ 기본미션 ]
다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요

1. 레지스터
2. 캐시 메모리
3. 메모리
4. 보조기억장치

07 보조기억장치

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

하드디스크

- 자기적인 방식으로 데이터를 저장하는 보조기억장치

- 대용량 저장 장치에 많이 쓰임

 

플래터

- 하드디스크에서 실질적으로 데이터가 저장되는 곳

- 스핀들: 플래터 회전시킴

- RPM: 스핀들이 플래터를 돌리는 속도, 분당 회전수

- 헤드: 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소

- 디스크 암: 헤드를 원하는 위치로 이동시키는 장치

- 일반적으로 여러 겹의 플래터로 이루어져 있고 플래터 양면을 모두 사용할 수 있음

- 트랙: 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원

- 섹터: 트랙을 여러 조각으로 나누었을 때 하나의 조각

- 실린더: 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위, 연속된 정보는 보통 한 실린더에 기록됨

- 탐색시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

- 회전지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간

- 전송시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

 

플래시메모리

- USB 메모리, SD 카드, SSD

- 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치

- 셀: 플래시 메모리에서 데이터를 저장하는 가장 작은 단위

1) SLC

  - 한 셀에 1비트 저장 가능 = 한 셀로 2개의 정보 표현 가능

  - 비트의 빠른 입출력 가능

  - 수명도 가장 긺

  - 용량 대비 가격이 높음

2) MLC

  - 한 셀에 2비트 저장 가능 = 한 셀로 4개의 정보 표현 가능

  - SLC 타입보다 속도와 수명은 떨어지지만 대용화하기 유리함

3) TLC

  - 한 셀에 3비트 저장 가능 = 한 셀로 8개의 정보 표현 가능

  - 용량 대비 가격이 저렴함

- 페이지: 셀들이 모여 만들어진 단위

- 블록: 페이지가 모여 만들어진 단위

- 플레인: 블록이 모여 만들어진 단위

- 다이: 플레인이 모여 만들어진 단위

- 플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어짐

- 삭제는 블록 단위로 이루어짐

- 페이지는 Free(어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태), Valid(이미 유효한 데이터를 저장하고 있는 상태), Invalid(쓰레기값이라 불리는 유효하지 않은 데이터를 저장하고 있는 상태) 상태를 가질 수 있음

- 가비지 컬렉션: 유효한 페이지들만 새로운 블록으로 복사한 후 기존 블록을 삭제하여 공간을 정리하는 기능

 

07-2 RAID의 정의와 종류

RAID

- 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술

 

RAID 0

- 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 방식

- 스트라입, 스트라이핑

- 저장된 데이터를 읽고 쓰는 속도가 빨라짐

- 저장된 정보가 안전하지 않음

 

RAID 1

- 복사본을 만드는 방식

- 미러링

- 복구가 매우 간단함

- 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어짐

 

RAID 4

- 완전한 복사본을 만든느 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식

- 패리트 비트: 오류를 검출하고 복구하기 위한 정보

- 데이터를 안전하게 보관 가능

- 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게되므로 패리티를 저장하는 장치에 병목 현상이 발생함

 

RAID 5

- 패리티 정보를 분산하여 저장하는 방식

- RAID 4의 문제인 병목 현상 해소

 

RAID 6

- 기본적으로 RAID 5와 같으나, 서로 다른 두 개의 패리티를 두는 방식

- RAID 4나 RAID 5보다 안전한 구성

- 새로운 정보를 저장할 때마다 함께 저장할 패리티가 두 개이므로, 쓰기 속도는 RAID 5보다 느림

- 저장 속도가 조금 느려도 데이터를 더욱 안전하게 보관하고 싶을 때 사용

 


08 입출력장치

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

전송률

- 데이터를 얼마나 빨리 교환할 수 있는지를 나타낸 지표

 

장치 컨트롤러

- 입출력 제어기, 입출력 모델

- 모든 입출력 장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받고, 장치 컨트롤러는 하나 이상의 입출력장치와 연결되어 있음

- 해결하는 문제

1) CPU와 입출력장치 간의 통신 중개

2) 오류 검출

3) 데이터 버퍼링

  - 버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법

- 내부 구조

1) 데이터 레지스터

  - CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터

  - 버퍼 역할

2) 상태 레지스터

  - 입출력장치가 입출력 작업을 할 준비가 되었느지, 입출력 작업이 완료되었는지, 입출력장치에 오류는 없는지 등의 상태 정보 저장

3) 제어 레지스터

  - 입출력장치가 수행할 내용에 대한 제어 정보와 명령 저장

 

장치드라이버

- 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램

 

08-2 다양한 입출력 방법

프로그램 입출력

- 기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법

1) 메모리 앱 입출력

  - 메모리에 접근하기 윟나 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법

  - 메모리 주소 공간이 축소됨

  - 메모리와 입출력장치에 같은 명령어 사용 가능

2) 고립형 입출력

  - 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법

  - 메모리 주소 공간이 축소되지 않음

  - 입출력 전용 명령어 사용

 

인터럽트 기반 입출력

- 인터럽트를 기반으로 하는 입출력

- 순차적으로 해결

- 우선순위 반영하여 해결

1) 프로그래머블 인터럽트 컨트롤러

  - PIC: 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤 CPU에 지금 처리해야할 하드웨어 인터럽트는 무엇인지 알려줌

 

DMA 입출력

- 입출력장치와 메모리가 CPU를 거치지 않고도 상호작용할 수 있는 입출력 방식

- 입출력 버스: 입출력장치와 컴퓨터 내부를 연결 짓는 통로로, 입출력 작업 과정에서 시스템 버스 사용 횟수를 줄여줌

 


현재 시각 1월 21일 일요일 오후 11시 7분... 해야할 일을 미루지 말고 미리미리 하자..

댓글