[혼공학습단 12기] 혼자 공부하는 컴퓨터구조+운영체제

[혼공컴운] 3주차 / 더 열심히..!

예지S2 2024. 7. 21. 16:53

 

3주차 공부를 시작했다! 정보처리기사 실기 시험을 준비중인데, 시험이 얼마 안남아서 조금 힘들긴 하지만 미리미리 했다면 덜 힘들지 않았을까 싶긴 하다. 이번주 진도를 마치고 정처기 기출을 공부하는데 RAID가 첫번째 문제로 딱! 뭐든 공부하면 도움이 된다는걸 느꼈다. 이번주 진도까지 하니까 벌써 컴퓨터 구조가 끝났다..! 혼공학습단이 아니였으면 한달이 지나도 못 했을 것 같은데.. 신청하길 너무 잘했다는 생각이 든다! 담주까지하면 한 주 쉬니까 더 열심히 해야징 화이팅~~


 

Chapter 06 메모리와 캐시 메모리

06-1 RAM의 특징과 종류

RAM 용량이 컴퓨터 성능에 어떤 영향을 미치는지 그리고 DRAM, SRAM, SDRAM, DDR SDRAM에 대해서.

 

1. RAM의 특징

주기억장치에는 RAM(Read Access Memory)와 ROM(Read Only Memory) 두 가지가 존재하는데 그 중 RAM에 대해서 공부할 것이다. RAM은 전원이 꺼지면 저장되어있던 명령어와 데이터가 모두 날아가는 휘발성 저장 장치이다. 전원이 꺼져도 저장된 내용이 유지되는 저장장치는 비휘발성 저장 장치라고 한다. 대표적인 비휘발성 저장 장치로는 SSD, USB 메모리 같은 보조기억장치가 있다.

 

2. RAM의 용량과 성능

RAM의 용량이 컴퓨터 성능에 어떠한 영향을 미치는가? RAM의 용량이 작으면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아져 실행 시간이 길어진다. 예를들어 프로그램이 세가지가 존재하고, 한가지의 프로그램을 저장할 수 있는 RAM과 세가지의 프로그램을 저장할 수 있는 RAM이 있다면 전자는 다른 프로그램을 실행하고 싶으면 보조기억장치에서 프로그램을 가지고 와야하지만 후자는 RAM에 저장되어 있기 때문에 빠르게 실행할 수 있다.

 

3. RAM의 종류

DRAM Dynamic RAM의 준말로, 저장된 데이터가 동적으로 변하는 RAM을 의미한다.
시간이 지나면 저장된 데이터가 사라지는 RAM으로 데이터의 소멸을 막기 위해서 일정 주기로 데이터를 재활성화해야 한다.
소비전력이 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이하여 일반적으로 사용
SRAM Static RAM의 준말로, 저장된 데이터가 변하지 않는 RAM을 의미한다.
시간이 지나도 저장된 데이터가 사라지지 않아 주기적으로 데이터를 재활성화할 필요가 없으며 SRAM보다 속도도 더 빠르다.
DRAM보다 집적도가 낮고, 소비전력이 크며, 가격도 더 비싸 일반 메모리보다 캐시 메모리에서 사용
SDRAM 클럭 신호와 동기화된, 발전된 형태의 DRAM
클럭 타이밍에 맞춰 CPU와 정보를 주고 받는다.
DDR SDRAM 가장 흔히 사용되는 RAM으로 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
SDRAM은 한 클럭에 한 번씩 데이터를 주고 받을 수 있지만, DDR SDRAM은 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고받을 수 있다.

SDR SDRAM - 한 클럭 당 하나의 데이터를 주고 받는 SDRAM
DDR SDRAM - 한 클럭당 두개의 데이터
DDR2 SDRAM - DDR SDRAM보다 대역폭이 2배 넓은 SDRAM
DDR4 SDRAM -  DDR SDRAM보다 대역폭이 8배 넓은 SDRAM 

 

 

06-2 메모리의 주소 공간

메모리의 주소에는 두 종류가 있는데, 메모리의 하드웨어가 사용하는 물리 주소와 CPU와 실행 중인 프로그램이 사용하는 논리 주소가 있다.

 

1. 물리 주소와 논리주소

물리 주소란 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.논리 주소란 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.

 

메모장, 게임과 같은 프로그램을 예로 들었을 때 이 프로그램들은 0번지부터 시작하는 자신만을 위한 논리주소를 가지고 있다. 예를 들어 '10번지'라는 주소는 메모장에도 게임에도 논리 주소로써 존재할 수 있다. 물리 주소는 이 프로그램들이 메모리에 적재될 때마다 달라진다.

 

CPU가 이해하는 주소는 논리 주소인데. CPU가 메모리와 상호작용을 하기 위해서는 논리 주소와 물리 주소 간의 변환이 이루어져야 한다. 이는 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행된다.

 

MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다. 예를 들어 베이스 레지스터에 15000이 저장되어 있고 CPU가 발생시킨 논리 주소가 100번지라면 이 논리 주소는 15100번지로 변환이 된다. 물리 주소 15000번지부터 적재된 프로그램의 논리 주소 100번지에는 이렇게 접근을 하는 것이다.

 

베이스 레지스터는 프로그램의 가장 작은 물리 주소를 저장하고, 논리 주소는 프로그램의 시작점으로부터 떨어진 거리이다.

 

2. 메모리 보호 기법

메모장 프로그램의 논리주소는 0번지부터 999번지이고, 물리주소가 1000번지부터 1999번지, 인터넷 브라우저 프로그램의 물리 주소가 2000번지부터 2999번지일 때, 메모장 프로그램 명령어 중 '(논리주소) 1500번지에 숫자 100을 저장하라'와 같은 명령어가 있다면 이 명령어는 실행이 되도 되는 것일까? 해당 명령어는 실행이 되면 안된다. 프로그램의 논리 주소 영역을 벗어났기 때문이다.

 

다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법이 필요한데 이는 한계 레지스터라는 레지스터가 담당한다.

베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장한다.

 

CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다. 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단한다.

 

 

06-3 캐시 메모리

CPU가 메모리에 접근하는 시간은  CPU의 연산 속도보다 느리다. CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리면 CPU의 빠른 속도는 쓸모가 없다. 이를 극복하기 위한 저장 장치가 캐시 메모리이다.

 

1. 저장 장치 계층 구조

저장 장치는 일반적으로 아래와 같은 명제를 따른다.

 

① CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.

② 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

 

컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낼 수 있는데, 이를 저장 장치 계층 구조라고 한다.

 

위 계층으로 올라갈수록 CPU와 가깝고 용량은 작지만 빠른 저장 장치이다. 그리고 아래 계층으로 내려갈수록 CPU와 멀고 용량은 크지만 느린 저장 장치이다. 가격 또한 일반적으로 위 계층으로 올라갈수록 비싸고, 아래 계층으로 내려갈수록 저렴하다.

 

2. 캐시 메모리

캐시 메모리는 CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치이다. 캐시 메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생했다. 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져와서 활용하는 것이다. 캐시 메모리에 CPU가 필요로 하는 데이터가 있다면 필요한 데이터로의 접근 시간을 줄일 수 있다.

 

컴퓨터 내부에는 여러 개의 캐시 메모리가 있는데, CPU와 가까운 순서대로 계층을 구성한다. 가장 가까운 캐시메모리를 L1 캐시, 그 다음을 L2 캐시, L3 캐시라고 한다. 일반적으로 L1 캐시와 L2 캐시는 코어 내부에 , L3 캐시는 코어 외부에 위치해 있다.

 

 

3. 참조 지역성 원리

캐시 메모리는 메모리보다 용량이 작기 때문에 메모리의 모든 내용들을 가져다가 저장 할 수는 없기 때문에, 캐시 메모리는 메모리의 일부를 복사하여 저장한다. 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장하는데, 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우를 캐시 히트라고 한다. 반대로 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우를 캐시 미스하고 한다. 캐시 미스가 자주 발생하면 성능이 떨어진다.

 

캐시가 히트되는 비율을 캐시 적중률이라고 하고 다음과 같이 계산한다.

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

 

캐시 메모리는 참조 지역성의 원리에 따라 메모리로부터 가져올 데이터를 결정한다. 이는 CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리이다.

 

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

프로그래밍에서 변수에 값을 저장하고 나면 언제든 변수에 다시 접근하여 변수에 저장된 값을 사용할 수 있는데, 이는 'CPU가 저장된 메모리 공간을 언제든 다시 참조할 수 있다'는 것을 의미한다. 그리고 변수에 저장된 값은 일반적으로 한 번만 사용되지 않고 프로그램이 실행되는 동안 여러 번 사용된다. 즉. CPU는 최근에 접근했던 메모리 공간을 여러 번 다시 접근할 수 있다.

 

② 접근한 메모리 공간 근처를 접근하려는 경향(공간 지역성)

CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 모여있다. 메모리 내에 게임 프로그램이 있다면 게임 프로그램 관련 데이터들이 모여 저장되고, 워드 프로세서 프로그램이 있다면 워드 프로세서 프로그램 관련 데이터 들이 모여 저장되는 것이다. 그리고 하나의 프로그램 내에서도 관련 있는 데이터들끼리 모여서 저장이 된다. 워드 프로세서 프로그램의 저장 기능, 입력 기능, 출력 기능이 있다고 하였을 때 각 기능과 관련한 데이터들은 모여서 저장이 된다.

 

캐시 메모리는 이렇듯 참조 지역성의 원리에 입각해 CPU가 사용할 법한 데이터를 예측한다.


 

Chapter 07 데이터

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

대중적인 보조기억장치로는 하드 디스크와 플래시 메모리가 있다.

 

1. 하드 디스크

자기적인 방식으로 데이터를 저장하는 보조기억장치이다. 대용량 저장 장치가 필요한 작업이나 서버실에서 자주 사용한다.

 

위의 사진이 하드디스크이다. CD와 유사하게 생겼는데, 실데로도 CD와 비슷하게 동작한다. 동그란 원판에 데이터를 저장하고, 원판을 회전시켜 뾰족한 리더기로 데이터를 읽는다.

 

데이터가 저장되는 곳은 동그란 원판 부분으로 플래터라고 한다.

플래터를 회전시키는 구성요소를 스핀들이라고 한다. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 타나내는 RPM 사용한다.

플래터 위에 바늘같이 생긴 부품은 플래터를 대상으로 데이터를 읽고 쓰는 구성요소로 헤드라고 한다.

헤드는 헤드를 원하는 위치로 이동시키는 디스크 암에 부착되어 있다.

 

플래터는 트랙과 섹터라는 단위로 데이터를 저장한다. 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원을 트랙이라고 부른다. 이 트랙을 피자처럼 여러 조각을 나누는데, 여러 조각 중 한 조각을 섹터라고 부른다.

여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더라고 부른다.

연속된 정보는 보통 한 실린더에 기록된다. 연속된 정보를 한 실린더에 기록하는 이유는 디스크 암을 움직이지 않고도 바로 데이터에 접근할 수 있기 때문이다.

 

하드 디스크가 저장된 데이터에 접근하는 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.탐색시간은 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간을 의미한다.회전 지연은 헤드가 있는 곳으로 플래터를 회전시키는 시간을 의미한다.전송 시간은 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간을 의미한다.

 

위의 시간들은 성능에 큰 영향을 끼치는 시간이다. 탐색 시간과 회전 지연 시간을 단축시키기 위해서는 플래터를 빨리 돌려  RPM을 높이는 것도 중요하지만, 접근하려는 데이터가 플래터 혹은 헤드를 조금만 옮겨도 접근할 수 있는 곳에 위치해 있는 것도 중요하다.

 

아래 링크는 하드 디스크 작동 영상이다.https://www.youtube.com/watch?v=cFRLXvihlU8

 

2. 플래시 메모리

우리가 흔히 사용하는 USB 메모리, SD 카드, SSD는 플래시 메모리 기반의 보조기억장치이다.

플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다. 플래시 메모리는 주기억장치 중 하나인 ROM에도 사용되고, 우리가 일상적으로 접하는 거의 모든 전자 제품 안에 플래시 메모리가 내장되어 있다.

 

플래시 메모리에는 이라는 단위가 있는데, 이는 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다. 이 셀들이 모여 MB, GB, TB 등의 용량을 갖는 저장 장치가 되는 것이다. 하나의 셀에 몇 비트를 저장할 수 있는지에 따라 플래시 메모리의 종류가 나뉜다.

SLC 한 셀에 1비트로 두 개의 정보를 표현할 수 있다.
다른 타입에 비해 빠른 입출력 가능, 수명이 길다
용량 대비 가격이 높음
 기업에서 데이터를 읽고 쓰기가 매우 많이 반복되며 고성능의 빠른 저장장치가 필요한 경우 사용
MLC 한 셀에 2비트로 네 개의 정볼르 표현할 수 있다.
SLC 타입보다 속도와 수명을 떨어지지만 대용량화하기 유리하고, 용량 대비 가격이 저렴하다.
→ 시중에서 사용되는 많은 플래시 메모리 저장 장치들에서 사용
TLC 한 셀에 3비트로 여덟 개의 정보를 표현할 수 있다.
SLC, MLC에 비해 수명과 속도가 떨어지지만 용량 대비 가격도 저렴하다.
→ MLC와 같이 시중에서 많이 사용됨

 

셀들이 모여 만들어진 단위를 페이지, 페이지가 모여 만들어진 단위를 블록, 블록이 모여 플레인, 플레인이 모여 다이가 된다.

플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어지지만, 삭제는 페이지보다 큰 블록단위로 이루어진다. 읽기/쓰기 단위와 삭제 단위가 다르다는 것이 플래시 메모리의 가장 큰 특징이다.

 

페이지는 Free, Valid, Invaild 세 가지 상태를 가질 수 있다.

- Free 상태는 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태를 의미

- Valid 상태는 유효한 데이터를 저장하고 있는 상태를 의미

- Invalid 상태는 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태를 의미

플래시 메모리는 하드 디스크와는 달리 덮어쓰기가 불가능하여 Valid 상태인 페이지에는 새 데이터를 저장할 수 없다.

 

플래시 메모리에서 삭제는 블록 단위로 수행되기 때문에 쓰레기값으로 인해 용량 낭비가 생기는데, 이런 쓰레기 값을 정리하기 위해 가비지 컬렉션이 제공된다. 가비지 컬렉션은 유효한 페이지들만을 새로운 블록으로 복사한 뒤, 기존의 블록을 삭제하는 기능이다. 이를 사용하여 용량의 낭비를 줄일 수 있다.

 

07-2 RAID의 정의와 종류

 

아래 추가 숙제에서 정리


 

Chapter 08 입출력 장치

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

다양한 외부 장치가 컴퓨터 내부와 어떻게 연결되고 소통하는지에 대해서 알아본다.

 

1. 장치 컨트롤러

입출력장치에는 종류가 매우 다양하다. 장치마다 속도, 데이터 전송 형식 등도 다양하기 때문에 정보를 주고 받는 방식을 규격화하기가 어렵다. 그리고 일반적으로 CPU와 메모리의 데이터 전송률을 높지만 입출력장치의 데이터 전송률은 낮다. 전송률의 차이가 크면  CPU와 메모리, 입출력장치 간의 통신을 어렵게 한다. 이러한 이유들로 입출력 장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해 연결된다. 장치 컨트롤러는 입출력 제어기, 입출력 모듈 등으로 다양하게 불리기도 한다.

 

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

 

장치 컨트롤러의 역할은 대표적으로 다음과 같다

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

- 오류 검출

- 데이터 버퍼링

 

입출력장치의 종류가 많아 정보 규격화가 어려웠던 문제는 장치 컨트롤러가 번역가 역할을 함으로써 해결할 수 있다. 그 과정에서 장치 컨트롤러는 자신과 연결된 입출력장치에 문제는 없는지 오류를 검출하기도 한다.

버퍼링이란 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법이다. 즉 버퍼링은 '버퍼에 데이터를 조금씩 모았다가 한꺼번에 내보내거나, 데이터를 한 번에 많이 받아 조금씩 내보내는 방법'이다. 장치 컨트롤러는 전송률의 차이를 데이터 버퍼링으로 완화한다.

 

장치 컨트롤러의 내부에는 데이터 레지스터, 상태 레지스터, 제어 레지스터 세 가지가 존재한다.

- 데이터 레지스터는 CPU와 입출력 장치 사이에 주고받은 데이터가 담기는 레지스터이다(버퍼의 역할).

- 상태 레지스터는 작업을 할 준비가 되었는지, 작업이 완료되었는지, 오류는 없는지 등의 상태 정보가 저장된다.

- 제어 레지스터는 입출력 장치가 수행할 내용에 대한 제어 정보와 명령을 저장한다.

 

위의 레지스터들에 담긴 값들은 버스를 타고 CPU나 다른 입출력장치로 전달되기도 하고, 장치 컨트롤러에 연결된 입출력장치로 전달된다.

 

2. 장치 드라이버

새로운 장치를 컴퓨터에 연결하려면 장치 드라이버를 설치해야 한다. 장치 드라이버란 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램이다. 장치 컨트롤러가 입출력장치는 연결하기 위한 하드웨어적인 통로라면, 장치 드라이버는 입출력장치를 연결하기 위한 소프트웨어적인 통로이다.

 

장치 드라이버를 인식하고 실행하는 주체는 운영체제이다. 즉 운영체제가 장치 드라이버를 인식하고 실행할 수 있다면 그 장치는 컴퓨터 내부와 정보를 주고받을 수 있다. 장치 드라이버는 운영체제가 기본으로 제공하는 것도 있지만, 장치 제작자가 따로 제공하기도 한다.

 

 

08-2 다양한 입출력 방법

장치 컨트롤러가 CPU와 정보를 주고 받는 방법은 크게 세 가지가 있다. 프로그램 입출력, 인터럽트 기반 입출력, DMZ 입출력이다.

 

1. 프로그램 입출력

기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법이다. CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력장치에 연결된 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다.

프로그램 입출력 방식에서의 입출력 작업은 CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다. CPU는 여러 장치 컨트롤러 속 레지스터들을 모두 알고 있기는 어려운데 명령어들은 어떻게 명령어로 표현되고, 메모리에 어떻게 저장되어 있는가?

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

1024개의 주소를 가진 컴퓨터 → 512개는 메모리 주소를 표현, 512개는 장치 컨트롤러의 레지스터 표현

CPU는 메모리의 주소들이나 장치 컨트롤러의 레지스터들이나 모두 똑같이 메모리 주소를 대하듯 하면 된다.
고립형 입출력 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법

제어 버스에 '메모리 읽기/쓰기', '입출력장치 읽기/쓰기' 선이 따로 있다면
1024개의 주소를 가진 컴퓨터 → 메모리와 입출력장치 모두 1024개의 주소 공간 활용 (분리된 주소 공간 사용)

CPU는 입출력장치에 접근하기 위해 메모리에 접근하는 명령어와는 다른 입출력 명령어를 사용한다.

 

 

2. 인터럽트 기반 입출력

장치 컨트롤러가 입출력 작업을 끝낸 뒤 CPU에게 인터럽트 요청 신호를 보내면 CPU는 하던 일을 잠시 백업하고 인터럽트 서비스 루틴을 실행하는데, 이렇게 인터럽트를 기반으로 하는 입출력을 인터럽트 기반 입출력이라고 한다.

여러 입출력장치에서 인터럽트가 동시에 발생한 경우에는 인터럽트를 어떻게 처리해야 하는가? 간단하게는 인터럽트가 발생한 순서대로 인터럽트를 처리하는 방법이 있다. 하지만 현실적으로는 인터럽트 중에서도 더 빨리 처리해야하는 인터럽트가 있다. 즉, CPU는 인터럽트 간의 우선순위를 고려하여 우선순위가 높은 인터럽트 순으로 여러 인터럽트를 처리한다.

많은 컴퓨터에서는 프로그래머블 인터럽트 컨트롤러(PIC)라는 하드웨어를 사용하여 인터럽트 요청들의 우선순위를 판별한 뒤 CPU에 지금 처리해야 할 하드웨어 인터럽트는 무엇인지 알려준다. 참고로 PIC가 무시할 수 없는 인터럽트인 NMI까지 우선순위를 판별하지는 않는다.

 

 

3. DMA 입출력

입출력장치와 메모리가 CPU를 거치지 않고도 상호작용할 수 있는 입출력 방식인 DMA가 등장하였다. DMA는 직접 메모리에 접근할 수 있는 입출력 기능이다. DMA 입출력을 하기 위해서는 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어가 필요하다.

 

DMA 입출력 과정은 아래와 같다.

① CPU는 DMA 컨트롤러에 입출력장치의 주소, 수행할 연산, 읽거나 쓸 메모리의 주소 등과 같은 정보로 입출력 작업을 명령한다.

② DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다. 이때 DMA 컨트롤러는 필요한 경우 메모리에 직접 접근하여 정보를 읽거나 쓴다.

③ 입출력 작업이 끝나면 DMA 컨트롤러는 CPU에 인터럽트를 걸어 작업이 끝났음을 알린다.

 

CPU는 DMA 컨트롤러에게 입출력 작업 명령을 내리고, 인터럽트를 받으면 되기 때문에 작업 부담을 훨씬 줄일 수 있다. 즉 CPU는 입출력의 시작과 끝에만 관여하면 된다.

 

시스템 버스는 동시 사용이 불가능하다. 그래서 DMA 컨트롤러는 CPU가 시스템 버스를 이용하지 않을 때마다 조금씩 시스템 버스를 이용하거나, CPU가 일시적으로 시스템 버스를 이용하지 않도록 허락을 구하고 시스템 버스를 집중적으로 이용한다.

 

DMA를 위해 시스템 버스를 너무 자주 사용하면 그만큼 CPU가 시스템 버스를 이용하지 못한다. 이 문제는 DMA 컨트롤러와 장치 컨트롤러들을 입출력 버스라는 별도의 버스에 연결하여 해결할 수 있다. 장치 컨트롤러들이 시스템 버스가 아닌 입출력 버스로 DMA 컨트롤러에 연결된다면 DMA 컨트롤러와 장치 컨트롤러가 서로 데이터를 전송할 때는 시스템 버스를 이용할 필요가 없으므로 시스템 버스의 사용 빈도를 줄일 수 있다.


 

숙제

185p. 확인문제 3번

주로 캐시 메모리로 활용됩니다. SRAM주로 주기억 장치로 활용됩니다. DRAM대용량화하기 유리합니다. DRAM집적도가 상대적으로 낮습니다. SRAM

 

205p. 확인문제 1번

레지스터

캐시 메모리

메모리

보조기억장치

 


 

추가숙제

RAID

RAID는 주로 하드디스크와 SSD를 사용하는 기술로, 데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다.

 

RAID를 구성하는 방법

RAID 0 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
어떠한 데이터를 저장할 때 각 하드 디스크에 번갈아 가며 데이터를 저장한다.
줄무늬처럼 분산되어 저장된 데이터를 스트라입이라 하고, 분산하여 저장하는 것을 스트라이핑이라고 한다.

장) 데이터가 분산되어 저장되면 데이터를 읽고 쓰는 속도가 빨라진다.
단) 저장된 정보가 안전하지 않음. 하드디스크 중 하나에 문제   다른 하드디스크의 정보를 읽는데 문제가 생김
RAID 1 RAID 0의 발전된 형태로 복사본을 만드는 방식
거울처럼 완전한 복사본을 만드는 구성이기에 미러링이라고도 부른다.
데이터를 쓸 때 원본과 복사본 두 곳에 쓰기 때문에 쓰기 속도는 RAID 0보다 느리다.

장) 복구가 매우 간단하다.
단) 하드디스크의 개수가 한정되었을 때 사용 가능한 용량이 적어짐  → 비용이 증가
RAID 4 RAID 1처럼 완전한 복사본은 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식
오류를 검출하고 복구하기 위한 정보를 패리티 비트라고 한다.
내용을 저장하는 디스크와 패리티비트를 저장하는 디스크가 따로 존재한다.

장) RAID 1보다 적은 하드 디스크로도 데이터를 안전하게 보관할 수 있다.
단) 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에서도 데이터를 사용 → 병목현상 발생

추가) 원래 패리티 비트는 오류 검출만 가능할 뿐 오류 복구는 불가능하다. 하지만 RAID에서는 패리티 값으로 오류 수정도 가능하다.
RAID 5 RAID 4의 발전형태로 패리티 정보를 분산하여 저장하는 방식으로 병목 현상을 해소 
RAID 6 RAID 5와 기본적은 구성은 동일, 서로 다른 두 개의 패리티를 두는 방식
오류를 검출하고 복구할 수 있는 수단이 두 개가 생긴 것이다.

장)  RAID 4나 RAID 5 보다 안전한 구성
단) 새로운 정보를 저장할 때마다 함께 저장할 패리티가 두 개 → 쓰기 속도가 느리다.