6장. 컴퓨터의 I/O 장치 6.1 입출력 장치 6.2 기억장치, 입출력 장치 6.3 입출력에 필요한 기능 6.4 입출력 방식 6.5 인터럽트 체제와 동작원리
6.1 입출력 장치 입력장치 종류 구분 종류 비고 문자입력장치 키보드 문자 데이터 광학입력장치 카드리더 Paper Tape Reader 바코드 리더 Optical Mark Reader Optical Character Reader MICR 천공카드 판독 종이 테이프 판독 제품 바 코드 판독 시험 마크용 광학문자 판독 은행 수표 자기입력장치 Magnetic Stripe Reader 은행 통장, 신용카드 등 화면입력장치 터치 스크린 디지타이저 Light Pen 마우스 조이스틱 트랙 볼 메뉴선택 도표, 설계도면, 그림 입력 등 CAD, CAI 분야 메뉴 및 명령 선택 비디오 및 게임 마우스기능과 비슷 아날로그신호입력장치 Analog Digital Converter 온도, 습도, 전압 등 패턴인식 입력장치 문자인식 OCR 문자 자동식별 음성인식 아날로그 디지털 영상입력장치 Image Scanner 그림, 사진 등
터치 스크린 – 손으로 눌러 입력, 조작 (안내컴퓨터, 소형컴퓨터) Light Pen – 소형 장치(PDA, 휴대폰,카메라)의 입력장치로 이용 OMR – 종이에 마크되어 있는 표시나 기호를 광학원리를 이용해 읽어내는 장치 OCR – 종이에 쓰여진 문자를 광학원리를 이용해 읽는 장치 OCR 용지 Right 펜 터치 스크린 OMR 용지
MICR – 자기 잉크로 쓰여진 문자,기호, 숫자 등을 읽는 장치 스캐너 – 영상정보(사진, 그림 등)를 읽어 들여 그래픽정보로 바꿔주는 장치 캠코더, 디지털 카메라 – 동영상을 컴퓨터 동영상정보로 저장할 수 있다. 디지타이저 – 펜과 타블렛을 이용하여 그림, 설계도면등의 아날로그 정보를 디 지털 정보로 변환하여 입력해주는 장치 스캐너 디지타이저 MICR 캠코더
자기 스트라이프 판독기 – 예금통장, 신용카드 등에 쓰임 바코드 리더 – 백과 흑으로 된 막대의 굵기를 통해 문자나 숫자를 코드화 한 것 을 읽어 들이는 장치 바코드 원리 Magnetic Stripe Reader의 예
출력 장치 종류 구분 종류 비고 펀치 출력 장치 Card Punch Paper Tape Punch 프로그램 및 데이터 준비 수치 제어용 데이터 준비 영상 출력 장치 CRT (Cathod Ray Tube) – 브라운관 LCD (Liquid Crystal Display) Plasma Display 문자, 도형 출력 복잡한 화상, 각종 설계 시뮬레이션, 애니메이션 프린터 충격식 도트 메트릭스 방식 활자 방식 문자, 도형, 그림 등 인쇄 시리얼 프린터 : 1문자씩 인쇄(CPS) 라인 프린터 : 1줄씩 인쇄(LPM) 페이지 프린터 : 1페이지씩 인쇄(PPM) 비충격식 열전사 방식 감열 방식 잉크제트 방식 레이저 빔 방식 도형 출력 장치 X-Y Plptter 각종 구조물, 전자 회로, 설계도면 아날로그 신호 출력 장치 Digital Analog Converter 디지털 신호 아날로그 신호 음성 출력 장치 단어, 문구, 문장 녹음 재생 단어별 합성 방식 음소별 합성 방식 음성 출력
모니터 – TV와 같은 화면에 출력할 자료를 표시해주는 장치(CRT,LCD,PDP) 프린터 – 컴퓨터의 정보를 인쇄용지에 출력해주는 장치 – 도트 메트릭스, 레이저, 잉크젯, 열전사, 플로터 CRT(Cathode Ray Tube)는 음극선관을 말하며 일명 브라운관이라고도 한다. 전기신호를 전자빔의 작용에 의해 영상이나 도형, 문자 등의 광학적인 영상으로 변환하여 표시하는특수진공관이다. 이들은 전자총에서 나온 전자가 브라운관 유리에 칠해진 형광물질을 자극해 다양한 화면을 만들어내는 원리를 이용한다. CRT는 1897년, 독일 스트라스부르크대학 교수 칼 브라운의 발명이 있은 후 100년이 지난 지금까지 디스플레이장치의 대명사로 군림해왔다. CRT는 일반 TV과 데스크탑 컴퓨터 모니터 등에 사용되어 왔는데, 풍부한 색감과 넓은 시야각을 가지며 제조 공정과 구동방식이 간단하여 가격이 저렴하다. 그러나 전자빔 편향을 이용함에 따라 화상 왜곡 방지 및 포커스 향상을 위해 일정 두께가 필요하고 무겁우며 대형화에 어려움이 있다. 최근에 디스플레이의 휴대화, 저소비전력화, 경량화, 평면화가 요구되면서 CRT를 대신해 플라즈마 디스플레이 패널(PDP), 초박막액정표시장치(TFT-LCD), 유기EL 등 평판디스플레이(FPD)들이 주목받고있다. liquid crystal display(액정디스플레이) '액정(液晶 liquid crystal)'이란 액체의 유동성을 나타냄과 동시에 물리적 성질(특히 광학적·전기적)인 결정(結晶)과 마찬가지로 비등방성을 나타내는 상태의 물질이다. 비등방성액체라고도 하며, 고체에서 액체 또는 액체에서 고체로 되는 중간 상태를 가진다. 1888년 오스트리아의 F.Reinitzer에 의해 처음 발견된 액정은 1968년 미국 RCA사에 의해 디스플레이에 응용됐다. 'LCD(liquid crystal display)'는 액정의 광학적 성질이 전기적으로 변화하는 것(전압을 가함으로써 빛을 반사한다)을 이용하여 숫자·문자·화상 등을 표시하는 전자장치이다. 2개의 유리판 사이에 액정을 주입해 배열한 후 전기압력을 가해 각 액정분자의 배열을 변화시켜 이때 일어나는 광학적 굴절변화를 이용하여 문자나 영상을 나타낸다. 1973년에 전자계산기, 전자시계에 적용된 액정은 1986년 이후 STN-LCD와 소형 TFT-LCD가 실용화되었다. 1990년대 들어 10인치 TFT-LCD의 양산화가 실현되면서 노트북 컴퓨터의 대표적인 디스플레이로 자리잡았다. 또한 LCD TV는 PDP(플라스마 디스플레이패널), 유기EL 등과 함께 차세대 평판디스플레이(FDP) TV 중 하나이다. LCD는 낮은 전력소모, 저동작 전압, 가볍고 얇아 고해상도 풀컬러에 용이한 장점이 있으나, 시야각이 좁은 단점이 있다. PDP는 2장의 얇은 유리판 사이에 작은 셀을 다수 배치하고 그 상하에 장착된 전극(+와 -)사이에서 가스(네온과 아르곤)방전을 일으켜 거기서 발생하는 자외선에 의해 자기 발광시켜 컬러화상을 재현한다. PDP는 1927년 미국의 벨 시스템 사에서 개발된 단색 PDP가 세계 최초였으나 현재와 같은 PDP 개념의 원조는 지난 1964년 미국 일리노이대학에서 발표한 AC형 플라즈마 디스플레이다. 이 후 본격적인 연구개발이 시작돼 일본 후지쓰사가 91년에 21인치 컬러 PDP TV를 내놓았고 1994년에는 40인치급 PDP가 개발되었다. 1990년대 후반부터는 삼성SDI, LG전자 등 우리나라의 기업들이 PDP시장에서 두각을 나타내기 시작하였으며, 2004년 4월 현재 가장 큰 PDP는 삼성SDI가 개발한 80인치짜리이다. ■ PDP의 특징 PDP는 유리판 사이의 너비가 10㎝를 넘지 않아 긴 전자총을 사용하는 CRT(브라운관)와 달리 TV의 두께를 크게 줄일 수 있다는 장점이 있다. 이 때문에 PDP는 30인치에서 80인치까지의 초대형 TV용으로 적합하며, 차세대 TV로 각광 받고 있는 벽걸이TV의 핵심부품으로 사용된다. 특히 대(大)화면이면서도 고화질의 실현이 가능하며 프로젝션TV나 LCD 등과는 달리 자기발광형 표시소자이기 때문에 시야각이 매우 넓다. 이것은 어느 위치에서 보더라도 화상의 밝기나 선명도가 동일하다는 것이다. 그러나 PDP는 플라즈마 방전을 이용하기 때문에 전력소비량이 많으며, 열이 많이 발생한다는 단점이 있다.
6.2 기억장치, 입출력 장치 기억장치와 입출력 장치의 차이 구분 기억장치 입출력장치 동작속도 Ns 불규칙 처리정보단위 워드 바이트 오류발생률 적음 높음 기억장치와 입출력장치의 상호동작에 있어서 차이가 있다. 입출력장치를 기억장치에 직접 연결해서 입출력 할 수는 없다. 따라서 두 장치의 연결통로인 입출력 버스에는 이러한 차이점을 보완해주는 장치가 필요.
6.3 입출력에 필요한 기능 입출력에 필요한 기능 입출력 버스 주기억장치와 입출력 장치 사에는 데이터를 서로 전달하는 회로가 있어야 하는데, 버스를 사용하여 데이터를 전달하므로 입출력 버스라 한다 입출력 인터페이스 입출력 장치와 주기억장치는 속도와 단위 등에서 차이가 나므로, 각 장치를 구별하고 입출력 버스와 입출력 장치 사이에 있는 차이를 해결하기 위한 장치 입출력 제어기 입출력 장치가 자율적으로 동작하기 때문에 중앙 처리 장치로부터 입출력 지시를 받으면 해당 장치의 기계적 특성에 맞게 제어하여 기계적인 입출력 행위가 이루어지도록 한다
6.3.1 입출력 버스 버스란? 컴퓨터 시스템을 구성하는 중앙 처리 장치(CPU)와 비디오 카드, 각종 입출력 장치, 주변 기기 사이에 주고받는 정보가 전달되는 정보의 통로 또는 전송로 버스의 성능 버스의 규격, 즉 버스 폭과 버스의 동작 주파수 등에 따라 버스의 데이터 전송 능력(초당 데이터 전송 속도)이 결정 버스 규격들 ISA MCA EISA VESA PCI AGP 설명 어드레스 라인 24 24/32 32 메인 메모리의 주소를 지정하기 위한 라인 수 데이터 라인 8/16 16/32 정보를 보내기 위한 라인 수(일반적인 비트 수) 버스 클럭 8MHz 10MHz 33MHz 33/66 MHz 66/133 MHz 시간당 신호의 개수 버스 대역폭 8-16 MB/s 20~40 132 132/264 1x = 264 2x = 528 3x =1056 4x =2112 메모리와 CPU 사이의 전송 속도 DMA(Direct Memory Access) ~ 버스마스터링에서 사용되어 지며 CPU의 개입없이 직접적으로 메모리에 접근할 수 있는 기능 * 로컬버스 ~ 상대적으로 느린 I/O버스에 설치된 슬롯 중에서 특정한 카드를 CPU버스에 직접 빠르게 연결될 수 있는 슬롯으로 이동시키는 기술 그래픽 카드, 디스크 컨트롤러 네트워크 카드 등이 사용되어 진다. * PCI버스 (Peripheral Component Interconnet) ~ VL-Bus의 문제점을 해겨하고 프로세서와 독립적인 표준 로컬 버스로 개발된 것, PCI버스를 다른 버스 접속 방식으로 변환하여 주는 것을 브리지라고 하며 브리지는 각 버스간에 상이하게 동작하는 신호선 체계를 맞추어 주는 기능 수행 , PCI내부구조로서 CPU버스에서 노스브리지를 통해 PCI버스가 연결되고 사우스 브리지를 통해 ISA 혹은 EISA의 표준 확장 버스 및 모든 버스로 연결된다. PCI버스는 32비트, 64비트 대역폭을 지원 * AGP(Accelerated Graphics Port) ~ PCI 슬롯의 2배(66Mhz) 혹은 4배(133Mhz)의 속도, AGP는 메인보드에 있는 그래픽 전용슬롯이며 이 슬롯에 AGP를 지원하는 그래픽카드를 꼽을 수 있다, AGP는 그래픽칩이 PCI를 거치지 않고 시스템의 메인 메모리로 바로 연결된다. AGP버스 메인 메모리를 텍스처버퍼 등의 목적으로 사용할 수 있게 함으로써 텍스처 버퍼 등의 목적으로 사용할 수 있게 함으로써 텍스처 관리 능력을 대폭 강화 Bus Mastring ~ 주변 기기를 관리하는 컨트롤러가 CPU의 간섭을 받지 않고 독립적으로 버스 동작을 제어하는 것을 말한다 EISA버스 ~ 확장된 ISA, 특징으로 ISA와 호환, 32M/s 대역폭, 8.33MHz의 버스클럭, 32Bit I/O 구조 , 버스 마스터링 기법
미국 IBM이 AT방식의 PC에 채용한 8bit 및 16bit 데이터를 전송시키는 버스의 규격 일명 AT 버스라고도 한다 메인보드의 버스 종류 ISA 미국 IBM이 AT방식의 PC에 채용한 8bit 및 16bit 데이터를 전송시키는 버스의 규격 일명 AT 버스라고도 한다 PCI 인텔사를 중심으로 만든 로컬 버스 규격 PNP 기능 다양한 프로세서 지원(브릿지 개념 도입) 다중 버스 마스터링 (최대 10개의 슬롯지원) AGP 현재의 메인 보드에서는 ISA, PCI, AGP 확장 슬롯을 기본적으로 제공하고 있으며, EISA는 과거 웍스테이션 계열에서 사용되었지만 현재는 거의 사용되지 않고 있다. 또한, ISA 마져도 최근 출시된 메인 보드에서는 지원이 되지 않는 경우가 간혹 존재한다 AGP 그래픽 카드의 고속 데이터 전송을 위한 버스 VGA 카드 전용 포트 PCI
6.3.1 입출력 버스 버스의 구분 외부 버스 내부 버스 데이터의 이동이 CPU 외에서 이루어짐
버스의 구성 버스 종류 CPU가 메모리, 입출력 기기의 주소를 지정할 때 사용되는 전송로. 단방향(CPU 메모리, I/O), 주소선이 n개일 때 2n개의 주소지정가능 주소 버스 CPU가 메모리, 입출력 기기들과 데이터(워드)를 읽고 쓰기 위하여 사용 주소 버스가 먼저 인출이 된 후 사용, 양방향(CPU 메모리, I/O) 데이터 버스 CPU가 메모리, I/O장치와 데이터전송을 할 때나, CPU상태를 다른 장치들에게 알리기 위해 사용하는 신호전달을 위해 사용. 제어 버스
CPU와 입출력장치 사이 DMA나 채널로서 연결 ㅋ 입출력 버스의 연결 형태 그림 2 그림1 저속 입출력 장치의 접속형태 고속 입출력 장치의 접속형태 CPU 와 입출력장치 직접 연결 CPU가 입출력 담당 프로그램의 처리 시간 = 프로그램의 입출력 시간+실제의 실행 시간 CPU와 입출력장치 사이 DMA나 채널로서 연결 DMA, 채널 등이 입출력 담당 CPU는 DMA, 채널에게 입출력 명령을 주고 완성 신호가 올 때 까지 다른 프로그램 수행
기억장치와 입출력장치의 상호동작에 있어서 차이가 있다. 입출력장치를 기억장치에 직접 연결해서 입출력 할 수는 없다. 기억장치와 입출력 장치의 차이 구분 기억장치 입출력장치 동작속도 Ns 불규칙 처리정보단위 워드 바이트 오류발생률 적음 높음 기억장치와 입출력장치의 상호동작에 있어서 차이가 있다. 입출력장치를 기억장치에 직접 연결해서 입출력 할 수는 없다. 따라서 두 장치의 연결통로인 입출력 버스에는 이러한 차이점을 보완해주는 장치가 필요.
동작속도 차이의 해결 (보통 1바이트) 데이터 데이터 주기억 장치 버퍼 입출력 장치 상태 레지스터 (플래그)<B,D> 입력 과정 출력 과정 상태 레지스터 검사 B ← 1 B = 1? D = 0? R ← I/O버퍼 D ← 0 B ← 0 YES 상태 레지스터 검사 B ← 1 B = 1? D = 0? I/O버퍼 ← R D ← 0 B ← 0 YES NO 플래그 값과 입출력 장치의 상태 B D 입력장치 출력장치 유휴 1 입력가능 출력가능 입력준비 중 출력준비 중 -
입력의 경우 결합 레지스터출력의 경우 분해 레지스터 처리정보단위의 해결 주기억 장치 = 워드(보통 4바이트) 입출력 장치 = 문자로서 1바이트 입력의 경우 결합 레지스터출력의 경우 분해 레지스터 기억 장치 우측 시프트 바이트1 바이트2 바이트3 바이트4 입력 장치 출력 장치 결합/분해 레지스터를 CPU 내에 두면? ▷ 입출력 장치가 CPU에 종속되어 자율성이 없어지고 CPU도 입출력 동안에는 다른 일은 못함 ▷ CPU의 명령어를 통해서 제어 결합/분해 레지스터를 CPU 외에 두면? ▷ 입출력 장치가 자율성을 가져 CPU는 입출력 동안 다른 일을 할 수 있게 된다. 처리효율 향상▷디스크와 같은 속도가 빠른 입출력 장치를 기억장치 버스에 연결시킨 경우에 사용
패리티검사회로, 패리티 비트 사용(짝수, 홀수) P 오류발생 해결 1001101000 패리티검사회로, 패리티 비트 사용(짝수, 홀수) 기타 오류검출 코드 사용 가능 - 짝수 패리티 - 1 0100110100 - 홀수 패리티 - 되울림(Echo Back) 이용 CRT 터미널과 같은 입출력 겸용 장치의 경우
DMA 제어기 DMA? Direct Memory Access의 약자로 CPU를 통하지 않고 메모리와 입출력장치가 직접 데이터를 주고 받고 입출력에 관한 모두 자율적으로 수행하는 방식 DMA에게 전달되어야 할 정보 데이터 이동의 방향을 나타내는 제어 정보,즉 입력 혹은 출력 연산자 블록이 시작하는 주 기억 장치 주소블록 내의 단어 수 DMA 제어기 번호, 입·출력 장치 번호 입 · 출력 장치 내의 데이터 블록 주소 DMA동작이 행해지기 위해서는 CPU 주소버스와 데이터 버스를 사용해야 함 버스 사용을 위한 DMA 요구신호(DMA request signal) – DCRQ 필요 입출력할 데이터가 데이터 버퍼에 준비되어 있거나, 데이터 버퍼에 새로운 출력 데이터를 받아들일 준비가 되어 있을 때 주기억 장치에 접근을 요청하는 기능 입력과 출력 중 어느 동작을 수행할 것인지를 나타내는 기능 어디의 데이터를 얼마만큼 입출력할 것인지를 나타내는 기능 데이터의 입출력이 완료되었을 때 그 사실을 중앙 처리 장치에 보고하는 기능 DMA의 구성 데이타 CPU 메모리 DMA controller 입출력 장치 버스 요구 신호 버스 승인 신호 BUS RQ BUS GRANT
싸이클 훔침(CYCLE Stealing) DMA의 구성 싸이클 훔침(CYCLE Stealing) CPU가 주기억장치를 액세스하지 않는 시간(예를 들면 CPU가 내부적으로 명령어를 해독하거나 ALU 연산을 수행하는 시간) 동안에 시스템 버스 사용하는 것
7.4 입출력 방식 CPU에 의한 입출력 – 프로그램에 의한 입출력 외부 버스 연결 형태 – 7.1 그림 중앙 처리 장치가 입출력 장치의 상태를 감지하고, 읽기/쓰기 명령을 보내며, 데이터를 전송하는 등 입출력 동작의 직접적인 제어를 하는 프로그램을 수행 데이터 교환은 중앙 처리 장치와 입출력 인터페이스 사이에서 수행 B D 입력장치 출력장치 유휴 1 입력가능 출력가능 입력준비 중 출력준비 중 -
프로그램에 의한 입출력 방식처럼 CPU를 사용하지만!! 인터럽트 시스템을 사용해서 입출력 방식의 비효율성을 개선한 것! 인터럽트에 의한 입출력 프로그램에 의한 입출력 방식처럼 CPU를 사용하지만!! 인터럽트 시스템을 사용해서 입출력 방식의 비효율성을 개선한 것! 인터럽트 방식이란 프로그램 입출력방식은 CPU가 직접 상태 플래그를 계속 체크하는 형태인데 인터럽트 입출력은 입출력을 개시시켜놓고 더 이상 간섭하지 않고 D,B 플래그가 데이터이동을 할 수 있는 상태(B=0,D=1)가 되면 인터럽트를 CPU로 요청하여 인터럽트 취급 루틴에서 데이터이동이 이루어지는 방식 인터럽트 방식은 프로그램 방식보다 CPU 활용면에선 효율적이지만 인터럽트 요청신호의 수신으로부터 인터럽트를 요청한 장치를 찾아내어 그 장치에 해당하는 인터럽트 취급 루틴의 수행을 시작하는 데 걸리는 반응시간과 인터럽트를 당한 프로그램의 상태 보존 등에서 오는 시간적인 부담으로 인하여 평균 데이터 전송 속도는 느리다
DMA에 의한 입출력 앞에 설명 참조 19~ 20 슬라이드
CPU을 가진 소형 처리기(IOP)를 DMA 위치에 두고 입출력에 관한 제어 사항을 전담하도록 하는 방식 채널에 의한 입출력 CPU을 가진 소형 처리기(IOP)를 DMA 위치에 두고 입출력에 관한 제어 사항을 전담하도록 하는 방식 입출력 명령은 단지 데이터의 송수신을 개시 시키는 지시만을 하고 그 후 입출력 장치의 제어는 채널이 담당 채널과 CPU는 동시에 동작 가능하며, 가장 고성능의 입출력 방식 채널과 DMA 입출력장치 블록 기억장치 채널 블록 기억장치 DMA 입출력장치 - DMA 방식 - - 채널 방식 - 하나의 입출력 명령어에 DMA와는 달리 여러 개의 블록을 입출력 할 수 있다
채널이 여러 개 블록을 입출력 할 때 각 블록에 대한 채널 명령어의 모임을 채널 프로그램이라 한다. 채널 명령어(CCW : channel command word) : 주기억 장치 내에 기억된 각 블록들의 정보, 채널 제어기가 수행하는 명령어! 채널 번지 워드(CAW : channel address word) : 첫째 번 채널 명령어의 위치를 기억장치 내의 특정위치에 기억시켜 사용하는데 이 특정 위치를 CAW라 한다 채널 상태어(CSW : channel status word) : 입출력 동작이 이루어진 후 채널, 서브채널, 입출력 장치의 상태를 워드로 나타낸 것이다 채널 명령어(CCW) 채널, 입출력 장치가 채널 입출력을 위하여 사용이 가능한 상태일 때 채널 제어기에 의하여 채널 명령어를 수행하게 된다. 채널 명령어의 4요소 명령 – 여러가지 존재할 수 있으나, 입력(Input)과 출력(Output)이 있다. 입출력 데이터가 기억되어 있는 블록의 위치, 즉 첫 번째 단어의 주소 블록의 크기 – 블록을 구성하고 있는 단언의 수 플래그 – CCW 링크드 리스트의 링크 부분과 유사함
테이프 제어기, 디스크 제어기, 단말 장치 제어기, 등이 있다. 채널종류 - 고정 채널 제어기 - 입출력 장치가 특정 채널에 고정되어 있어서 다른 채널 휴지상태라도 사용이 불가 하드웨어 전체를 활용할 순 없으나 단일 종류의 장치인 경우 그들의 제어는 공통점이 많으므로 하드웨어 비용을 줄일 수 있다. 셀렉터 채널(selector channel) : 고속 입출력 장치에 사용한다. 채널의 동작 : 버스트 방식 (선택된 입·출력 장치의 지정된 블록이 모두 전송될 때까지 같은 채널에 연결된 다른 입·출력 장치의 데이터블록은 전송할 수 없음) 테이프 제어기, 디스크 제어기, 단말 장치 제어기, 등이 있다.
채널종류 - 가변 채널 제어기 - 장점 : 하드웨어 자원을 최대로 사용할 수 있다. 단점 : 회로의 비용이 비싸며 회로연결의 제어가 복잡하다. 멀티플렉서 채널(multiplexer channel) : 저속인 여러 장치를 동시에 제어하는 채널 비교적 저속(바이트단위)의 출력장치(입· 출력 단말기, 프린터, 카드판독기)를 제어 입·출력장치 여러 대를 하나의 채널에 연결해 두고, 시분할 방식에 의해서 매우 짧은 시간 단위로 하나씩 돌아가면서 입·출력 동작형태 블록 멀티플렉서 선택 채널과 바이트 멀티플렉서 채널의 장점을 결합. 블록 단위에 기초하여 다수의 고속 입·출력 작업을 다중화할 수 있음
7.5 인터럽트 체제와 동작원리 인터럽트 컴퓨터가 수행하는 동안에 응급 사태가 발생했을 때 CPU는 현재의 처리를 중단하고 응급사태를 처리하는 과정 발생원인 정전 혹은 데이터 전송 과정에서 오류의 발생과 같은 컴퓨터 자체 내에서의 기계적인 문제가 발생하는 경우 보호된 기억 공간에 접근 혹은 불법적인 명령어의 수행 등과 같은 프로그램 상의 문제가 발생하는 경우 컴퓨터 조작자가 의도적으로 중단시키는 경우 입출력 장치들의 동작에 CPU의 기능이 요청되는 경우 인터럽트 필요성 정전시 CPU상태의 보존 → 전원 회복 후 중단된 프로그램 재수행 가능 CPU와 I/O 장치의 독립적인 동작 가능 → 하드웨어 운영효율 증대(유휴(idle)현상 제거)
7.5.2 인터럽트 종류 내부적인 인터럽트 : 프로그램이나 데이터의 잘못, 입출력 인터럽트 등의 시스템 내부에서 발생되는 인터럽트 외부적인 인터럽트 : 조작원이 인터럽트 신호를 보내거나 정전, 정해진 시간이 도었을 때 타이머에서 요청하는 인터럽트, 기계적 고장 등의 시스템 외부의 요인으로 발생되는 인터럽트 인터럽트 종류 외부 인터럽트(external interrupt) - 타이머 종료, Operator의 키 조작, 전원 문제 기계 오류 인터럽트(machine check intrrupt) - 기계고장 프로그램 (검사) 인터럽트(program check interrupt) - 프로그램의 명령 사용법이나 지정법에 잘못이 있을 때 0으로 나누는 경우, 오버플로, 언더플로, 스택이 넘치는 경우 불법적인 명령어를 사용하는 경우 등 입출력 인터럽트(I/O interrupt) - 데이터의 I/O 감시 프로그램 호출 인터럽트(supervisor call interrupt) - 사용자 모드에서 감시 관리 모드로 CPU의 상태를 변화시킴
7.5.3 인터럽트 동작 인터럽트 처리과정 인터럽트 요청 신호 회로를 통해 인터럽트 요청 (1) 인터럽트 발생 장치로부터 인터럽트를 요청 받고 (2) 현재 수행 중인 프로그램의 상태를 안전한 장소에 기억 (3) 인터럽트의 원인을 찾은 후 인터럽트 취급 루틴을 수행 (4) 인터럽트 취급루틴 수행을 통해 인터럽트에 대한 조치 (5) 미리 보존한 프로그램의 상태를 복구 수행을 계속
7.5.4 인터럽트 체제 인터럽트 체제의 4가지 기본요소 중앙 처리 장치에 인터럽트를 요청하는 신호 인터럽트 처리 기능 인터럽트 처리 루틴 위에 기능들을 일정한 동작 원리에 의하여 활용하는 기능 ( 제어) 인터럽트를 요청하기 위해 각 장치에서 CPU에 회선을 연결하는 방식 단일 회선 방식 , 다중 회선 방식, 혼합 회선 방식이 있다
ㄱ) 단일 회선 체제 : (ㄱ) 와 같이 인터럽트 요청이 가능한 모든 장치들로부터의 인터럽트 요청 신호들을 모두 논리적으로 합하여 단일 회선으로 CPU 에 연결하는 체제. ㄷ) 혼합 체제 : (ㄷ) 와 같이 (ㄱ) 와 (ㄴ) 를 혼합한 체제
하드웨어에 의한 인터럽트 판별 요청 1) CPU에 인터럽트 요청 신호를 보냄. (IR=1) 2) CPU는 하드웨어에 의해 인터럽트 인정신호(INTACK)를 보냄. 3) 인터럽트를 요청한 장치 인터페이스는 INTACK 신호에 의해 장치번호를 전송 4) CPU가 인터럽트 요청 장치를 식별하여 인터럽트를 받아들이면 IR=0으로 함
소프트웨어에 의한 인터럽트 판별 요청 IR(Interrupt Request) 플래그: 해당 인터페이스가 인터럽트를 요청하였는가의 여부를 나타내는 플래그 D 플래그: 해당 인터페이스에 연결된 장치가 인터페이스로 하여금 인터럽트를 요청할 준비가 되어 있는가를 나타내는 플래그 폴링: 어떤 장치가 인터럽트를 요청하면 인터럽트 처리 루틴에서는 각 장치의 D 플래그를 시험하는 인스트럭션을 수행하여 인터럽트를 요청한 장치 판별
폴링에 의한 인터럽트 처리순서도
상태 보관 방법 인터럽트가 요청 되었을 때 인터럽트를 처리한 후 원래 프로그램을 계속 하기 위하여 프로그램 카운터(PC)를 보관하는 방법은 3가지가 있다 프로그램에서 사용하지 않은 주소 0에 기억시키는 방법 이 방법은 인터럽트가 발생하면 주소 0에 다시 기억시키므로 먼저 내용은 지워지게 된다 이러한 현상을 방지하기 위해 스택에 저장하는 방법 스택은 나중 입력된 것을 먼저 꺼내게 되므로 인터럽트 취급 루틴에서 다른 인터럽트를 발생시켰더라도 제어의 흐름이 달라지지 않는다 하지만 스택이 넘치면 더 이상 사용할 수 없으므로 프로그램 카운터의 내용과 인터럽트 취급 루틴을 하나의 쌍으로 하여 인터럽트 배열 내에 함께 기억 시키는 방법이 있다. 이 방법도 다른 인터럽트나 프로그램에 영향을 받지 않으므로 안전하게 프로그램 카운터의 내용을 보존가능
7.5.5 우선 순위 체제 인터럽트는 여러 장치에서 필요할 때마다 요청할 수 있다. 동시에 요청이 있을 수 있기 때문에 처리할 순서를 정하여 차례대로 처리하게 해줄 필요가 있다. 근착 우선방법 – 가장 최근에 발생한 것을 먼저 처리하는 방법 선착 우선방법 – 가장 먼저 요청한 것을 먼저 처리하는 방법 그리고 소프트웨어나 하드웨어에 의하여 미리 정해진 순위에 따라 처리되도록 할 수도 있다. 인터럽트를 처리하기 위한 운선 순위 체제 각 장치에 우선 순위를 부여하는 기능 인터럽트를 요청한 장치의 우선 순위를 판별하는 기능 우선 순위가 높은 것을 먼저 처리할 수 있는 기능 우선 순위를 부여하는 방법 정전, 전원공급의 차단 기계적인 고장 프로그램 오류 조작원의 인터럽트 지시 입출력 장치의 인터럽트 요청
하드웨어 방법 하드웨어에 의한 우선 순위 설정 방법 인터럽트 요청 체인(interrupt request chain) : 우선 순위 등급이 높은 장치가 인터럽트 요청을 할 때 등급이 낮은 장치로부터의 요청 불가 인터럽트 우선 순위 체인(interrupt priority chain) : 장치들이 인터럽트 요청 신호를 내보낸 후 슬라이드 33의 그림과 같이 인터럽트 요청 장치들이 장치 번호를 장치 번호 버스에 나타나도록 할 때 가장 우선 순위가 높은 장치만이 장치 번호 버스를 사용
인터럽트 요청 체인 인터럽트 요청 신호 발생시 폴링의 순서는 인터럽트 요청체인에서 설정한 우선 순위대로 해야 하며 인터럽트 처리 중에는 낮은 우선 순위의 장치들은 인터럽트 마스크를 통하여 인터럽트 요청을 하지 못하게 한다. 인터럽트 우선 순위 체인 체제는 인터럽트 요청 체인보다 인터럽트 반응 속도가 빠른 잇점이 있지만 추가적인 하드웨어가 필요하므로 비용이 크다.
우선 순위 회로 X : 등급 3(high) Y : 등급 2 Z : 등급 1(low)
소프트웨어 방법 프로그램 내에 각 장치 코드별로 부여된 우선 순위에 따라 선택할 수 있는 프로그램에서 수행하는 방법 하드웨어 의한 방법보다 속도 늦지만 추가적인 하드웨어가 필요 없으며, 우선 순위의 조정이 손쉽게 되는 장점이 있다 이 방법은 각 장치별로 우선순위를 나타내는 코드가 있어야 한다.
입출력 장치 입출력 장치 입출력 장치 주기억장치 …… 인터페이스 인터페이스 인터페이스 CPU DMA
현 현 프로그램 상태보관 상태복구 인터럽트 요청 신호 서비스 루틴 결정 프로그램이 중단된 곳부터 실행 프로그램 실행 프로그램 중단 인터럽트처리 인터럽트 루틴 현 프로그램 상태보관 상태복구 인터럽트 요청 신호 서비스 루틴 결정