Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture #9 제7장 시스템 버스, I/O 및 인터럽트.

Similar presentations


Presentation on theme: "Lecture #9 제7장 시스템 버스, I/O 및 인터럽트."— Presentation transcript:

1 Lecture #9 제7장 시스템 버스, I/O 및 인터럽트

2 강의 목차 7.1 시스템 버스 7.2 버스 중재 7.3 I/O 장치의 접속 / 프로그램을 이용한 I/O
7.5 DMA를 이용한 I/O

3 7.1 시스템 버스(system bus) 컴퓨터시스템의 구성 요소들(CPU, 기억장치, I/O 장치들)을 상호 연결해주는 중심 통로 Computer Architecture

4 시스템 버스의 조직 버스(bus) 버스 선의 수 구성 요소들간에 교환할 각종 정보들을 전송하는 선(line) 들로 구성
한 번에 전송하는 데이터 비트들의 수, 기억장치 주소 비트들의 수 및 제어 신호들의 수에 따라 결정됨 소형 컴퓨터 : 50 ∼ 100 개의 신호선들 사용 중대형급 시스템 : 100 개 이상의 신호선들 사용 Computer Architecture

5 기능에 따른 버스의 종류 데이터 버스(data bus) 주소 버스(address bus) 제어 버스(control bus)
시스템 요소들 사이에 데이터를 전송하는 데 사용되는 선들의 집합 양방향 전송(bidirectional transfer) 버스 폭(선들의 수) = CPU와 기억장치 사이에 한 번에 전송되는 비트 수 주소 버스(address bus) CPU가 기억장치로 (또는 기억장치로부터) 데이터 쓰기 (또는 읽기) 동작을 할 때, 해당 기억장소를 지정하는 주소를 전송하기 위한 선들의 집합 단방향 전송(unidirectional transfer) : CPU  기억장치 및 I/O 제어기 주소 버스의 비트 수에 의해 시스템에 접속될 수 있는 전체 기억장치 용량이 결정됨 직접 주소지정 할 수 있는 기억장소의 단위 : 바이트(byte) 혹은 단어(word) 제어 버스(control bus) CPU와 기억장치 및 I/O 장치 사이에 제어 신호들을 전송하는 선들의 집합 Computer Architecture

6 주소 버스의 폭(비트 수)에 따른 기억장치 용량 예
주소 버스의 폭(비트 수)에 따른 기억장치 용량 예 주소 버스 = 16비트 인 경우 주소지정 가능한 최대 기억장소들의 수 = 216 = 65,536(64K) 개 바이트 단위 주소 지정일 경우 최대 기억장치 용량 = 64 Kbyte 주소 버스 = 24비트 인 경우 최대 224 = 16,777,216(16M) 개 바이트 단위 주소 지정일 경우 최대 기억장치 용량 = 16 Mbyte Computer Architecture

7 제어 버스의 주요 제어 신호들 기억장치 쓰기(memory write) 신호 기억장치 읽기(memory read) 신호
버스에 실린 데이터를 주소가 지정하는 기억장소에 저장되도록 하는 제어 신호 기억장치 읽기(memory read) 신호 주소가 지정하는 기억장소의 내용을 읽어서 버스에 실리게 하는 제어 신호 입출력 쓰기(I/O write) 신호 버스에 실린 데이터를 지정된 I/O 장치로 출력되게 하는 제어 신 호 입출력 읽기(I/O read) 신호 지정된 I/O 장치로부터 데이터를 읽어서 데이터 버스에 실리게 하 는 제어 신호 전송 확인(transfer acknowledge) 신호 데이터 전송 동작이 완료되었음을 알려주는 신호 Computer Architecture

8 중재 버스(arbitration bus)
버스 마스터(bus master) 시스템 버스에 접속되는 요소들 중에서 버스 사용의 주체가 되는 요소들 예: CPU, 기억장치 모듈, I/O 제어기 등 버스 중재 (bus arbitration) : 시스템 버스에 접속된 두 개 또는 그 이상의 버스 마스터들이 동시에 버스를 사용하고자 할 때 순서대로 한 개의 마스터씩 버스를 사용할 수 있게 해주는 동작 중재 버스(arbitration bus) : 버스 중재를 위한 신호 선들의 집합 버스 요구(bus request) 신호 : 버스 마스터가 버스 사용을 요구했음을 알리는 신호 버스 승인(bus grant) 신호 : 버스 사용을 요구한 마스터에게 사용을 허가하는 신호 버스 사용중(bus busy) 신호 : 현재 버스가 사용되고 있는 중임을 나타내는 신호 Computer Architecture

9 인터럽트 버스(interrupt bus)
인터럽트 메카니즘을 위한 제어 신호선들의 집합 인터럽트 요구(interrupt request) 신호 I/O 장치가 인터럽트를 요구했음을 알리는 신호 인터럽트 확인(interrupt acknowledge) 신호 CPU가 인터럽트 요구를 인식했음을 알리는 신호 그 이외의 제어 신호들 버스 클럭(bus clock) : 동기식 버스에서 버스 동작들의 시작 시간을 일치시키기 위하여 제공되는 공통 클럭 신호 리셋(reset) : 모든 시스템 요소들의 동작을 초기화시키는 신호 Computer Architecture

10 버스 대역폭(bus bandwidth) 버스의 속도를 나타내는 척도 단위 시간당 전송할 수 있는 데이터 양을 나타냄
버스 클럭의 주기에 의해 결정 예: 버스 클럭 주기 : 50 nsec (클럭 주파수: 20 MHz), 데이터 버스 폭 : 64 비트(8 바이트) 라면, 버스 대역폭 = 8 byte / (50 × 10-9 sec) = 160 [Mbytes/sec] 즉, 이 버스를 통하여 초당 1억 6천 바이트의 데이터 전송 가능 Computer Architecture

11 시스템 버스의 기본 동작 쓰기 동작(write operation) 순서 읽기 동작(read operation) 순서
버스 마스터가 버스 사용권 획득 버스를 통하여 주소와 데이터 및 쓰기 신호 전송 읽기 동작(read operation) 순서 주소와 읽기 신호를 보내고, 데이터가 전송되어 올 때까지 대기 버스 동작의 타이밍에 따른 버스의 분류 동기식 버스(synchronous bus) : 시스템 버스에서 모든 버스 동작들이 공통의 버스 클럭을 기준으로 발생 비동기식 버스(asynchronous bus) : 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정 Computer Architecture

12 기억장치 읽기 동작의 시간 흐름도 Computer Architecture

13 동기식 / 비동기식 버스 동기식 버스 비동기식 버스
장점 - 인터페이스 회로 간단 단점 - 버스 클럭의 주기가 가장 오래 걸리는 버스 동작의 소요 시간을 기준으로 결정되므로, 클럭 주기보다 더 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작될 때까지 대기 비동기식 버스 장점 - 각 버스 동작이 완료 즉시 연관된 다음 동작이 발생하기 때문에 동기식 버스에서와 같이 낭비되는 시간이 없음 단점 - 연속적 동작을 처리하기 위한 인터페이스 회로가 복잡 소규모 컴퓨터시스템 : 비동기식 버스 사용 중형급 이상의 시스템 : 동기식 버스 사용 Computer Architecture

14 7.2 버스 중재 (bus arbitration)
버스 경합(bus contention) 한 개의 시스템 버스에 접속된 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 현상 버스 중재(bus arbitration) 버스 경합이 발생하는 경우, 어떤 기준에 따라 버스 마스터들 중에서 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작 버스 중재기(bus arbiter) 버스를 중재하는 하드웨어 모듈 Computer Architecture

15 버스 중재 방식의 분류 (1) 제어 신호들의 연결 구조에 따른 중재 방식의 분류
병렬 중재 방식(parallel arbitration scheme) 각 버스 마스터들이 독립적인 버스 요구 신호와 버스 승인 신호를 발생  버스 마스터들의 수와 같은 수의 버스 요구 선 및 승인 신호 선 필요 직렬 중재 방식(serial arbitration scheme) 버스 요구와 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선을 버스 마스터들 간에 직렬로 접속하는 방식 Computer Architecture

16 버스 중재 방식의 분류 (2) 버스 중재기의 위치에 따른 분류
중앙집중식 중재 방식(centralized arbitration scheme) 시스템 내에 버스 중재기가 한 개만 존재하는 방식 버스 마스터들이 발생하는 버스 요구 신호들은 하나의 중재기로 보내지고, 중재기는 정해진 중재원칙에 따라 선택한 버스마스터에게 승인신호를 발생 분산식 중재 방식(decentralized arbitration scheme) 여러 개의 버스 중재기들이 존재하며(일반적으로 각 버스 마스터가 중재기를 한 개씩 가짐), 버스 중재 동작이 각 마스터의 중재기에 의하여 이루어지는 방식 Computer Architecture

17 병렬 중재 방식 (1) 우선순위의 결정 방식에 따른 분류
고정-우선순위 방식(fixed-priority scheme) : 각 버스 마스터에 지정된 우선순위가 고정되어 있는 방식 가변-우선순위 방식(dynamic-priority scheme) : 우선순위를 변경할 수 있는 방식 Computer Architecture

18 병렬 중재 방식 (2) 중앙집중식 고정-우선순위 중재방식 모든 버스 마스터들이 버스 중재기에 접속
중재기와 가장 가까이 위치한 버스 마스터 1이 가장 높은 우선순위, 버스 마스터 4가 가장 낮은 우선순위를 가지는 것으로 가정 Computer Architecture

19 병렬 중재 방식 (3) 중앙집중식 고정-우선순위 중재방식 (계속)
[예] 버스 마스터 1이 버스 사용중일 때, 버스 마스터 3이 버스 사용을 요구  마스터 3이 BREQ3 신호를 세트 버스 중재기가 마스터 3에게 BGNT3 신호를 세트하여 버스 사용을 허가 마스터 1이 버스 사용을 끝내고 BBUSY 신호를 해제 마스터 3이 BBUSY 신호를 다시 세트하고 버스 사용을 시작. 이때 BREQ3와 BGNT3는 제거됨 Computer Architecture

20 병렬 중재 방식 (4) 중앙집중식 고정-우선순위 중재기의 구성도 Computer Architecture

21 병렬 중재 방식 (5) 분산식 고정-우선순위 방식 분산식 중재 방식의 장단점 모든 버스 마스터들이 중재기를 한 개씩 보유
중재 동작 각 중재기는 자신보다 더 높은 우선순위를 가진 마스터들의 버스 요구 신호들을 받아서 검사하여, 그들이 버스 사용 요구를 하지 않은 경우에만 자신의 버스 마스터로 버스 승인 신호 발생 승인 신호를 받은 버스 마스터는 BBUSY 신호를 검사하여서 해제된 상태(다른 마스터가 버스를 사용하지 않는 상태)일 때 버스 사용을 시작 분산식 중재 방식의 장단점 장점 - 중앙집중식에 비하여 중재 회로가 간단하므로 동작 속도가 빨라진다 단점 - 고장을 일으킨 중재기를 찾아내는 방법이 복잡하고, 한 중재기의 고장이 전체 시스템의 동작에 영향을 미칠 수가 있다 Computer Architecture

22 병렬 중재 방식 (6) 분산식 고정-우선순위 중재기의 구성도 Computer Architecture

23 병렬 중재 방식 (7) 가변 우선순위 방식 회전 우선순위(rotating priority) 방식
시스템의 상태(또는 조건)에 따라 각 버스 마스터들의 우선순위를 계속 변화시키는 방식 단점 - 중재 회로 복잡 장점 - 모든 마스터들이 공정하게 버스를 사용할 수 있게 해준다 회전 우선순위(rotating priority) 방식 방법1 - 중재 동작이 끝날 때마다 모든 마스터들의 우선순위가 한 단계씩 낮아지고, 가장 우선순위가 낮았던 마스터가 최상위 우선순위를 가지도록 하는 방법 방법2 - 일단 버스 사용 승인을 받은 마스터는 최하위 우선순위를 가지며, 바로 다음에 위치한 마스터가 최상위 우선순위를 가지도록 하는 방법  Acceptance-dependent식 회전 우선순위 방식 Computer Architecture

24 병렬 중재 방식 (8) 회전 우선순위(rotating priority) 방식 (계속) Computer Architecture

25 병렬 중재 방식 (9) 임의 우선순위 방식 동등 우선순위 방식
각 중재 동작이 끝날 때마다 우선순위를 임의로 결정. 동등 우선순위 방식 모든 마스터들이 동등한 우선순위를 가지며, FIFO(First-In First-Out) 알고리즘 사용 최소-최근 사용(Least-Recently Used: LRU) 방식 최근 가장 오랫동안 버스를 사용하지 않은 버스 마스터에게 최상위 우선순위 할당 단점 - 회로가 매우 복잡 Computer Architecture

26 직렬 중재 방식 (1) 중앙집중식 직렬 중재 방식 분산식 직렬 중재 방식 Computer Architecture

27 직렬 중재 방식 (2) 중앙집중식 직렬 중재 방식 하나의 중재 신호선(BGNT)이 데이지-체인(daisy-chain)형태로 모든 버스 마스터들을 직렬로 연결 우선순위는 버스 승인 신호선이 연결된 순서대로 결정 동작 원리 한 개 또는 그 이상의 버스 마스터가 버스 사용을 요구하면 공통의 BREQ 신호가 세트 버스 중재기 : 데이지 체인의 첫 번째에 접속된 마스터로 승인 신호(BGNT) 전송 BGNT 신호를 받은 마스터는 만약 버스 사용을 요구한 상태라면, 버스 사용권을 가짐 만약 버스 사용을 요구하지 않은 상태라면, 승인 신호를 다음에 연결된 마스터로 통과 승인 신호는 버스를 요구한 마스터에게 도달할 때까지 계속 통과  버스 요구를 보낸 마스터들 중에서 중재기에 가장 가까이 위치한(우선순위가 가장 높은) 마스터에게 승인 신호가 전달되면 그 마스터가 버스 사용권을 획득 Computer Architecture

28 직렬 중재 방식 (3) 중앙집중식 직렬 중재 방식의 구성도 (데이지 체인) Computer Architecture

29 직렬 중재 방식 (4) 분산식 직렬 중재 방식 구성 동작 원리
데이지-체인 버스 승인 신호(daisy-chained bus grant signal: DBGNT)가 버스 중재기들을 순환형(circular)으로 접속 동작 원리 버스 사용권을 부여 받은 마스터가 버스 사용을 시작하는 순간에 (그 마스터의 중재기가) DBGNT 신호를 세트하여 자신의 바로 우측에 연결된 마스터의 중재기로 전송 만약 그 마스터가 버스 사용을 신청하고 기다리던 중이었다면, 중재기는 즉시DBGNT 신호를 받아들여서 BGNT 신호를 발생시켜 마스터로 전송 DBGNT 신호를 받은 마스터가 버스 요구를 하지 않은 상태라면, 그 신호를 우측의 다음 중재기로 통과시키고, 그러한 과정은 버스를 요구한 마스터에 도달할 때까지 반복 Computer Architecture

30 직렬 중재 방식 (5) 분산식 직렬 중재 방식 (계속) 특징
각 마스터의 우선순위가 계속 변화 버스 사용 승인을 받으면 다음 중재 동작에서는 최하위 우선 순위를 가짐 버스를 사용한 마스터의 바로 우측에 위치한 마스터가 최상 위 우선순위를 가짐 순환형 구조에서 DBGNT 신호가 연결된 순서대로 우선순위 가 하나씩 감소 단점 어느 한 지점에만 결함이 발생해도 전체 시스템의 동작 중단 Computer Architecture

31 직렬 중재 방식 (6) 분산식 직렬 중재 방식의 구성도 Computer Architecture

32 폴링 방식 (1) 폴링 방식(polling scheme)의 원리
버스 사용을 원하는 마스터가 있는지를 버스 중재기가 주기적으로 검사하여 사용 승인 여부를 결정 하드웨어 폴링 방식 소프트웨어 폴링 방식 버스 중재기와 각 버스 마스터 간에 별도의 폴링 선(polling line)이 존재 2진 코드화된 폴링 주소(binary encoded polling address)를 이용하면, 폴링 선의 수가 log2N 개로 감 공통의 BREQ 선과 BBUSY 선이 각각 한 개씩 존재 Computer Architecture

33 폴링 방식 (2) 하드웨어 폴링 방식 (계속) 동작 순서 우선순위 결정 방법
중재기는 폴링 주소를 발생하여 검사할 마스터를 지정한 다음에, 그 마스터가 버스 사용을 원하는지 묻는다 지정된 마스터가 버스 사용을 원하면 BREQ 신호를 세트 BREQ 신호가 세트되면, 중재기는 현재 검사 중인 마스터에게 버스 사용을 허가하고, 그렇지 않으면(지정된 마스터가 버스 사용을 원하지 않으면) 다음 마스터들에 대한 검사를 순서대로 진행 우선순위 결정 방법 중재기가 마스터를 검사하는 순서에 의하여 결정되며, 검사할 마스터의 번호는 2진 카운터(binary counter)를 이용하여 발생 Computer Architecture

34 폴링 방식 (3) 하드웨어 폴링 방식의 구성도 Computer Architecture

35 폴링 방식 (3) 소프트웨어 폴링 방식 동작 원리 단점 장점 폴링의 순서와 과정을 버스 중재기내의 프로세서가 관장하는 방식
프로그램을 실행해야 하므로 하드웨어 방식에 비하여 속도가 더 느림 장점 우선순위(폴링 순서)의 변경이 용이 Computer Architecture

36 7.3 I/O 장치의 접속 I/O 장치가 시스템 버스에 직접 접속되지 못하는 이유
 모든 장치 제어 회로들을 CPU 내부에 포함시키는 것이 불가능  CPU가 그들을 직접 제어할 수가 없음 I/O 장치들의 데이터 전송 속도가 CPU의 데이터 처리 속도에 비하여 훨씬 더 느림  고속의 시스템 버스와 I/O 장치들 사이에 직접 데이터를 교환하는 것은 불가능 I/O 장치들과 CPU가 사용하는 데이터 형식의 길이가 서로 다른 경우가 많음  인터페이스 장치인 I/O 제어기(I/O controller)를 사용 Computer Architecture

37 I/O 제어기의 주요 기능 I/O 장치의 제어와 타이밍 조정 CPU와의 통신 담당 I/O 장치와의 통신 담당
데이터 버퍼링(data buffering) 기능 수행 오류 검출 Computer Architecture

38 프린터 제어기의 내부 구성도 (1) Computer Architecture

39 프린터 제어기의 내부 구성도 (2) 상태/제어 레지스터 (status/control register)
내부적으로 두 개의 레지스터로 구성되지만 주소는 하나만 지정되는 레지스터들 상태 레지스터 : I/O 장치의 상태와 오류 검사 결과 등을 나타내는 비트들로 구성 제어 레지스터 : CPU가 보낸 I/O 명령 단어(I/O command word)를 저장 CPU가 프린터로 데이터를 출력하는 과정 CPU가 프린터 제어기에게 프린터의 상태를 검사하도록 요청 제어기는 프린터의 상태를 검사하여 CPU에게 통보 : 프린터의 상태란 데이터를 받아 프린트할 준비가 되었는지, 혹은 다른 데이터를 프린트하는 중인 지를 표시 데이터를 받을 준비가 된 상태면, CPU는 제어기에게 출력 명령과 데이터를 전송 제어기는 프린트 동작을 위한 제어 신호와 함께 데이터를 프린터로 전송 Computer Architecture

40 I/O 방식의 분류 컴퓨터 시스템에서 CPU와 I/O 장치사이의 데이터 전송 방식
프로그램을 이용한 I/O(Programmed I/O) 인터럽트를 이용한 I/O(Interrupt I/O) DMA를 이용한 I/O(DMA-based I/O) Computer Architecture

41 프로그램을 이용한 I/O (programmed I/O)
CPU가 반복적으로 I/O 장치의 상태를 검사하면서 I/O 동작을 처리하는 방식 장점 간단하며, 별도의 하드웨어가 필요하지 않음 단점 CPU가 I/O 동작에 직접 관여해야 하므로, 그 동안에 다른 일을 하지 못함 Computer Architecture

42 프로그램을 이용한 I/O의 흐름도 Computer Architecture

43 I/O 주소지정 각 I/O 장치당 두 개씩의 주소 할당 I/O 주소 지정 방법
데이터 레지스터 주소 및 상태/제어 레지스터 주소 I/O 주소 지정 방법 기억장치-사상 I/O(memory-mapped I/O) 분리형 I/O(isolated-I/O) Computer Architecture

44 기억장치-사상 I/O (1) 기억장치 주소 영역의 일부분을 I/O 제어기 내의 레지스터들의 주소로 할당하는 방식
[예] LOAD 명령어, STORE 명령어, 등 기억장치 읽기/쓰기 신호를 I/O 읽기/쓰기 신호로 사용 Motorola CPU, ARM-Core CPU 등에서 채택 Computer Architecture

45 기억장치-사상 I/O (2) 기억장치-사상 I/O의 주소 공간 할당의 예 주소 비트들이 10 비트인 경우 
전체 기억 장소들의 수 = 1024 0 번지∼511 번지(상위 512 개 주소) : 기억장치에 할당 512 번지∼1023 번지(하위 512 개 주소) : I/O 장치들에 할당 Computer Architecture

46 기억장치-사상 I/O (3) 기억장치-사상 I/O의 예 - 프린터 출력 프로그램 데이터 레지스터 주소 : 412 번지
상태/제어 레지스터 주소 : 413 번지 상태 레지스터 최하위 비트(b0) : RDY 비트로 사용 제어 레지스터 최상위 비트(b7) : 프린트 동작의 시작(start) 비트로 사용 Computer Architecture

47 기억장치-사상 I/O (4) 장점 프로그래밍이 용이 단점 기억장치 주소 공간이 감소 Computer Architecture

48 분리형 I/O(Isolated-I/O) (1)
I/O 제어를 위해서 별도의 I/O 명령어 사용 예: IN, OUT 명령어 별도의 I/O 읽기/쓰기 신호 필요 Intel x86 CPU 등에서 채택 Computer Architecture

49 분리형 I/O(Isolated-I/O) (2)
상태/제어 레지스터 주소 : 1 번지 Computer Architecture

50 분리형 I/O(Isolated-I/O) (3)
단점 - I/O 제어를 위해 I/O 명령어들만 이용할 수 있으므로, 프로그래밍이 불편 장점 - I/O 주소공간으로 인하여 기억장치 주소공간이 줄어들지 않음 Computer Architecture

51 7.4 인터럽트를 이용한 I/O (1) 인터럽트-구동 I/O(interrupt-driven I/O) 동작 순서
인터럽트 메커니즘을 이용함으로써, I/O 동작이 진행되는 동안에 CPU가 다른 작업을 처리할 수 있도록 하는 방식 동작 순서 CPU가 I/O 제어기에게 명령을 전송하고, CPU는 다른 작업을 수행 제어기는 I/O 장치를 제어하여 I/O 명령을 수행 I/O 명령 수행이 완료되면, 제어기는 CPU로 인터럽트 신호를 전송 CPU는 인터럽트 신호를 받는 즉시 원래의 프로그램으로 복귀하여 수행을 계속 Computer Architecture

52 인터럽트를 이용한 I/O (2) 인터럽트-구동 I/O 방식에서의 프린터 출력 흐름도
CPU는 데이터와 프린트 명령을 프린터 제어기로 전송하고, 다른 작업을 수행 그 데이터의 프린트가 종료되면, 제어기가 CPU로 인터럽트 요구 신호를 전송 프린트할 내용이 남아 있다면, CPU는 다음에 프린트할 데이터를 준비하여 위의 과정을 반복 Computer Architecture

53 인터럽트-구동 I/O의 구현 방법 다중-인터럽트 선들(multiple interrupt lines)을 사용하는 방식
데이지-체인(daisy-chain) 방식 소프트웨어 폴링(software polling) 방식 Computer Architecture

54 다중-인터럽트 선들을 사용하는 방식 (1) 각 I/O 제어기와 CPU 사이에 별도의 인터럽트 요구(interrupt request: INTR) 선과 인터럽트 확인(interrupt acknowledge: INTA) 선을 접속하는 방법 Computer Architecture

55 다중-인터럽트 선들을 사용하는 방식 (2) 다중-인터럽트 선들을 사용하는 방식의 예:
I/O 제어기 2가 인터럽트를 요구하는 경우의 동작 순서 I/O 제어기2가 INTR2 신호를 세트 CPU는 INTA2 신호를 세트함으로써 그 제어기에게 인터럽트 요구를 인식하였음을 알리고, 인터럽트를 위한 서비스를 시작 I/O 제어기2는 INTR2 신호를 해제(0으로 리셋) CPU도 INTA2 신호를 해제 Computer Architecture

56 다중-인터럽트 선들을 사용하는 방식 (3) 장점 단점 CPU가 인터럽트를 요구한 장치를 쉽게 찾아낼 수 있다
하드웨어가 복잡하고, 접속 가능한 I/O 장치들의 수가 CPU의 인터럽트 요구 입력 핀의 수에 의해 제한된다 Computer Architecture

57 데이지-체인 방식 (1) CPU로부터 발생되는 INTA 출력 선을 I/O 제어기들에 직렬로 접속하는 방식
인터럽트를 요구한 I/O 장치는 AIn 입력을 받는 즉시 자신의 고유(ID) 번호, 즉 인터럽트 벡터(interrupt vector)를 데이터 버스를 통하여 CPU로 전송 인터럽트 벡터는 해당 I/O 장치를 위한 인터럽트 서비스 루틴의 시작 주소를 결정하는데 사용 Computer Architecture

58 데이지-체인 방식 (2) 데이지-체인 방식의 구성도 장점 - 하드웨어가 간단
단점 - 우선순위가 낮은 장치들이 서비스를 받지 못하고 매우 오랫동안 기다려야 하는 경우가 발생 가능 (starvation) Computer Architecture

59 소프트웨어 폴링 방식 CPU가 모든 I/O 제어기들에 접속된 TEST I/O 선을 이용하여 인터럽트를 요구한 장치를 검사하는 방식 장점 - 우선순위의 변경이 용이 단점 - 처리 시간이 오래 걸림 Computer Architecture

60 7.5 직접기억장치액세스(DMA) (1) Direct Memory Access (DMA) 구현 방법
CPU의 개입 없이 I/O 장치와 기억장치 사이에 데이터를 전송하는 방식 = 사이클 훔침(cycle stealing) 구현 방법 CPU가 주기억장치를 액세스하지 않는 시간(CPU가 내부적으로 명령어를 해독하거나 ALU 연산을 수행하는 시간) 동안에 시스템 버스를 사용 Computer Architecture

61 직접기억장치액세스(DMA) (2) DMA 제어기가 포함된 시스템 구성도 Computer Architecture

62 직접기억장치액세스(DMA) (3) DMA 처리 순서
CPU가 DMA 제어기(DMA controller)로 다음 정보를 포함한 명령을 전송 I/O 장치의 주소 연산(쓰기 혹은 읽기) 지정자 데이터가 읽혀지거나 쓰여질 주기억장치 영역의 시작 주소 전송될 데이터 단어들의 수 DMA 제어기는 CPU로 버스 요구(BUS REQ) 신호를 전송 CPU가 DMA 제어기로 버스 승인(BUS GRANT) 신호를 전송 DMA 제어기가 주기억장치로부터 데이터를 읽어서 디스크에 저장 전송할 데이터가 남아있으면, 2번부터 4번까지를 다시 반복 모든 데이터들의 전송이 완료되면 CPU로 INTR 신호를 전송 Computer Architecture

63 직접기억장치액세스(DMA) (4) DMA 제어기의 내부 구조 Computer Architecture

64 직접기억장치액세스(DMA) (5) DMA의 문제점-1
각 데이터 전송 때마다 시스템 버스를 두 번씩 사용  버스 사용량 증가로 인한 시스템 성능 저하 해결책 I/O 장치들을 DMA 제어기에 접속 I/O 버스 사용 Computer Architecture

65 직접기억장치액세스(DMA) (6) DMA 제어기를 이용한 I/O 접속 방법 Computer Architecture

66 직접기억장치액세스(DMA) (7) I/O 버스를 이용한 DMA 구성도 Computer Architecture

67 직접기억장치액세스(DMA) (8) DMA의 문제점 -2
I/O 장치들은 종류와 속도가 다양하고 제어 방법도 복잡하기 때문에, 간단한 구조를 가진 DMA 제어기로 지원하는 데는 한계가 있음 디스크 쓰기 혹은 읽기 동작의 경우에는 데이터 블록의 크기가 512 바이트 이상이기 때문에 그 데이터들을 버퍼링(임시 저장)하기 위한 내부 기억장치가 필요 해결책 : I/O 프로세서(I/O processor: IOP)의 사용 - I/O 채널(I/O channel)이라고도 함 I/O 명령어들을 실행할 수 있는 프로세서 데이터 블록(들)을 임시 저장할 수 있는 용량의 지역 기억장치(local memory) 시스템 버스에 대한 인터페이스 및 버스 마스터 회로 I/O 버스 중재 회로 Computer Architecture

68 직접기억장치액세스(DMA) (9) I/O 프로세서가 사용된 시스템의 구성도 Computer Architecture


Download ppt "Lecture #9 제7장 시스템 버스, I/O 및 인터럽트."

Similar presentations


Ads by Google