#79_입/출력 방식

 - Programmed I/O

  ㆍ원하는 I/O이 완료되었는지의 여부를 검사하기 위해서 CPU가 상태 Flag를 계속 조사하여 I/O가 완료 되었으면 MDR(MBR)과 AC 사이의 자료전송도 CPU가 직접 처리하는 I/O방식

  ㆍ입/출력에 필요한 대부분의 일을 CPU가 해주므로 Interface는 MDR, Flag, 장치번호 디코더로만 구성하면 됨

  ㆍI/O 작업시 CPU는 계속 I/O 작업에 관여해야 하기 때문에 다른 작업을 할 수 없다는 단점이 있음

 - Interrupt I/O

  ㆍ입/출력을 하기 위해 CPU가 계속 Flag를 검사하지 않고, 데이터를 전송할 준비가 되면 입/출력 인터페이스가 컴퓨터에게 알려 입/출력이 이루어지는 방식임

  ㆍ입/출력 인터페이스는 CPU에게 인터럽트 신호를 보내 입/출력이 있음을 알림

  ㆍCPU는 작업을 수행하던 중 입/출력 인터럽트가 발생하면 수행중인 프로그럄을 중단하고 입/출력을 처리한 후 원래의 작업으로 돌아와 작업을 계속 수행함

  ㆍCPU가 계속 Flag를 검사하지 않아도 되기 때문에 Programmed I/O보다 효율적임

 - DMA(Direct Memory Access에 의한 I/O)

  ㆍ입/출력장치가 직접 주기억장치를 접근(Access)하여 Data Block을 입/출력하는 방식으로 입/출력 전송이 CPU의 레지스터를 경유하지 않고 수행됨

  ㆍCPU는 I/O에 필요한 정보를 DMA제거기에 알려서 I/O동작을 개시 시킨 후 I/O동작에 대해 더 이상 간섭하지 않고 다른 프로그램을 할당하여 수행함

  ㆍ입/출력 자료 전송 시 CPU를 거치지 않기 때문에 CPU의 부담없이 보다 빠른 데이터의 전송이 가능함

  ㆍ인터럽트 신호를 발생시켜 CPU에게 입/출력 종료를 알림

  ㆍCycle Steal 방식을 이용하여 데이터를 전송함

 - Channel에 의한 I/O

  ㆍCPU를 대신하여 주기억장치와 입/출력장치 사이에서 입/출력을 제어하는 입/출력 전용 프로세서(IOP)임

  ㆍ채널 제어기는 채널명령어로 작성된 채널 프로그램을 해독하고 실행하여 입/출력 동작을 처리

  ㆍCPU로부터 입/출력 전송을 위한 명령어를 받으면 CPU와는 독립적으로 동작하여 입/출력을 완료함

  ㆍCPU와 인터럽트로 통신함

  ㆍ채널의 종류

Selector Channel 고속 입/출력장치(자기디스크, 자기테이프, 자기드럼) 1개와 입/출력하기위해 사용됨
Multiplexer Channel 저속 입/출력장치(카드리더, 프린터)를 여러개를 동시에 제어하는 채널
Block Multiplexer Channel 동시에 여러개의 고속 입/출력 장치를 제어함

 #80_인터럽트의 정의

 - 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후, 실행중이던 작업으로 복귀하여 계속 처리하는 것. 일명 "끼어들기"라고도 함

 - 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU나 하드웨어의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생함

 

#81_인터럽트의 종류 및 발생원인

 - 외부 인터럽트

  ㆍ전원 이상 인터럽트(Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우

  ㆍ기계 착오 인터럽트(Machine Check Interrupt) : CPU의 기능적인 오류동작이 발생한 경우

  ㆍ외부 신호 인터럽트(External Interrupt)

   ① 타이머에 의해 규정된 시간(Time Slice)을 알리는 경우

   ② 키보드로 인터럽트 키를 누른 경우

   ③ 외부장치로부터 인터럽트 요청이 있는 경우

  ㆍ입/출력 인터럽트(input-output interrupt)

   ① 입/출력 Data의 오류나 이상 현상이 발생한 경우

   ② 입/출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우

 - 내부 인터럽트

  ㆍ잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩(Trap)이라고도 부름

  ㆍ명령어 잘못에 의한 인터럽트 : 프로그램에서 명령어를 잘못 사용한 경우

  ㆍ프로그램 인터럽트(Program Interrupt) : 0으로 나누거나, Overflow 또는 Underflow가 발생한 경우

 - 소프트웨어 인터럽트

  ㆍ프로그램 처리 중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 감시프로그램을 호출하는 SVC(SuperVisor Call) 인터럽트가 있음

  ㆍSVC(SuperVisor Call) 인터럽트 : 사용자가 SVC 명령을 써서 의도적으로 호출한 경우

 

#82_인터럽트 발생 시 CPU가 확인할 사항

 - 프로그램 카운터의 내용

 - 사용한 모든 레지스터의 내용

 - 상태 조건의 내용(PSW)

 

#83_인터럽트의 동작원리

 ① 인터럽트 요청 신호 발생

 ② 프로그램 실행을 중단함 : 현재 실행 중이던 명령어(Micro instruction)는 끝까지 실행함

 ③ 현재의 프로그램 상태를 보존함 : 프로그램 상태는 다음에 실행할 명령의 번지로서 PC가 가지고 있음

 ④ 인터럽트 처리 루틴을 실행함 : 인터럽트를 요청한 장치를 식별함

 ⑤ 인터럽트 서비스 루틴을 실행함 : 실질적인 인터럽트를 처리함

 ⑥ 상태복구 : 인터럽트 요청신호가 발생했을 때 보관한 PC의 값을 다시 PC에 저장함

 ⑦ 중단된 프로그램 실행 재개 : PC의 값을 이용하여 인터럽트 발생 이전에 수행 중이던 프로그램을 계속 실행함

 

#84_인터럽트 우선순위

 - 목적 : 여러 장치에서 동시에 언터럽트가 발생하였을 때 먼저 서비스할 장치를 결정하기 위해서임

 - 우선 순위 : 전원 이상 > 기계 착오 > 외부신호 > 입출력 > 명령어 잘못 > 프로그램 > SVC

 

#85_인터럽트 우선순위 판별 방법

 - 소프트웨어적인 인터럽트 우선순위 판별 방법 : Pollling

  ㆍInterrupt 발생 시 가장 높은 우선순위의 인터럽트 자원(Source)부터 차례로 검사해서, 우선순위가 가장 높은 Interrupt 자원(Source)을 찾아내어 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식

  ㆍ소프트웨어적인 방식을 폴링이라고 함

  ㆍ많은 인터럽트가 있을 때 그들을 모두 조사하는 데 많은 시간이 걸려 반응시간이 느리다는 단점이 있음

  ㆍ회로가 간단하고 융통성이 있으며 별도의 하드웨어가 필요 없으므로 경제적임

 - 하드웨어적인 인터럽트 우선순위 판별 방법

  ㆍCPU가 Interrupt를 요청할 수 있는 장치 사이에 장치 번호에 해당하는 버스를 병렬이나 직렬로 연결하여 요청장치의 번호를 CPU에 알리는 방식

  ㆍ장치 판별 과정이 간단해서 응답 속도가 빠름

  ㆍ회로가 복잡하고 융통성이 없으며, 추가적인 하드웨어가 필요하므로 비경제적임

  ㆍ직렬(Serial) 우선순위 부여방식 : 데이지 체인(Daisy-Chain)

   ① 인터럽트가 발생하는 모든 장치를 1개의 회선에 직렬로 연결함

   ② 우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결함

   ③ 직렬 우선순위 부여방식을 데이지 체인 방식이라고 함

  ㆍ병렬(Parallel) 우선순위 부여방식

   ① 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결함

   ② 각 장치의 인터럽트 요청에 따라 각 Bit가 개별적으로 Set될 수 있는 Mask Register를 사용함

   ③ 우선순위는 Mask Register를 사용함

   ④ 우선순위는 Mask Register의 Bit 위치에 의해서 결정됨

   ⑤ 우선순위가 높은 Interrupt는 낮은 Interrupt가 처리되는 중에도 우선 처리됨

 

#86_기억장치의 특성을 결정하는 요소

 - 기억용량

  ㆍ기억장치는 무조건 기억용량이 큰 것을 사용한다고 해서 좋은 것이 아니라, 사용목적에 따라 성능당 경비 비율이 적은 것을 사용하는 것이 바람직함

 - Access Time

  ㆍ기억장치에 읽기요청이 발생한 시간부터 요구한 정보를 꺼내서 사용 가능할 때까지의 시간

  ㆍ한 Word단위의 정보를 읽거나 기록하는데 걸리는 시간

  ㆍAccess time = Seek Time + Latency Time(또는 Search Time) + Transmission Time

 - Cycle Time

  ㆍ기억장치에 읽기신호를 보낸 후 다시 읽기 신호를 보낼 수 있을 때까지의 시간 간격

  ㆍCycle Time ≥ Access Time

 - Bandwidth(대역폭, 전송률)

  ㆍ메모리로부터 또는 메모리까지 1초 동안 전송되는 최대한의 정보량으로 기억장치의 자료처리 속도를 나타내는 단위

  ㆍ메모리 워드의 길이가 작을수록 대역폭이 좋음

 

#87_기억장치의 구분

 - 내용의 보존 여부

  ㆍ파괴성 메모리(Destructive Memory) : 판독 후 저장된 내용이 파괴되는 메모리로, 파괴된 내용을 재생시키기 위한 재저장 시간(Restoratiom Time)이 필요함 (예)자기 코어

  ㆍ비파괴성 메모리 : 판독 후에도 저장된 내용이 그대로 유지됨 (예)자기코어를 제외한 모든 기억장치

 - 전원단절 시 내용 소멸 여부

  ㆍ휘발성 메모리(Volatile Memory) : 전원이 단절되면 모든 정보가 지워지는 메모리 (예)RAM

  ㆍ비휘발성 메모리 : 전원이 단절되더라도 기억된 정보가 보존되는 메모리 (예)ROM, 자기코어, 보조기억장치

 - 재충전(Refresh) 여부

  ㆍ정적메모리(SRAM) : 전원이 공급되는 한 기억된 내용이 계속 유지되는 메모리

  ㆍ동적메모리(DRAM) : 전원이 공급되어도 일정시간이 지나면 내용이 지워지므로 재충전을 해야 하는 메모리

 - 접근 방식

  ㆍ간접접근방식(SASD, Sequential Access Storage Device) : 자료가 저장된 위치에 접근할 때, 처음부터 순서대로 접근하여 원하는 위치를 검색하는 메모리 (예)자기테이프

  ㆍ직접접근방식(DASD, Direct Access Storage Device) : 순서를 거치지 않고 자료가 저장된 위치를 직접 접근할 수 있는 메모리 (예)자기 테이프를 제외한 모든 기억장치

 

#88_ROM(Read Only Memory)

 - 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기는 불가능함

 - 전원이 꺼져도 기억된 내용이 지워지지 않는 비휘발성 메모리

 - 실제로 ROM은 주기억장치로 사용하기 보다는 주로 기본 입.출력시스템(BIOS), 자가 진단 프로그램(POST) 같은 변경가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용함

 - ROM의 종류와 특징

종류 특징
Mask ROM 제조공장에서 프로그램화하여 생산한 ROM으로, 사용자가 내용을 변경시킬 수 없음
PROM(Programmable ROM) PROM 프로그램장치라는 특수장치를 이용하여 비어있는 ROM에 사용자가 한번만 내용을 기입할 수 있으며, 이후엔 읽기만 가능함
EPROM(Erasable PROM)

ㆍ자외선을 쏘여서 기입한 내용을 지울 수도 있고, PROM프로그램장치로 기입할 수도 있음

ㆍ사용자가 여러 번 반복해서 지우거나 기입할 수 있음

EAROM(Erasable Alterable ROM) 전기적 특성을 이용하여 기록된 정보의 일부를 바꿀 수 있는 ROM
EEPROM(Eletronic EPROM) 전기적인 방법을 이용하여 기록된 내용을 여러 번 수정하거나 새로운 내용을 기록할 수 있는 ROM

 

#89_RAM(Random Access Memory)

 - 자유롭게 읽고 쓸 수 있는 기억장치로, RWM(Read Write Memory)라고도 함

 -  RAM에는 현재 사용 중인 프로그램이나 데이터가 저장되어 있음

 - 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리임

 - 일반적으로 '주기억장치' 또는 메모리라고 하면 램을 의미함

 - SRAM/DRAM의 특징

  동적 램(DRAM) 정적 램(SRAM)
구성 소자 콘덴서 플립플롭
특징 전원이 공급되어도 일정 시간이 지나면 전하가 방전되므로 주기적인 재충전(Refresh)이 필요함 전원이 공급되는 동안에는 기억 내용이 유지됨
전력 소모 적음 많음
접근 속도 느림 빠름
집적도(밀도) 높음 낮음
가격 저가 고가
용도 일반적인 주기억장치 캐시 메모리

+ Recent posts