4.4.3 인터럽트 처리 과정
① 현재 실행 중인 명령어의 실행을 끝낸다. 만약 그렇지 않고 그대로 하던 일을 중단하고 저장만 한다면 되돌아와서 다시 실행할 때 인터럽트가 걸리기 전에 실행하던 명령어가 실행되지 않을 수가 있다.
② 현재의 중요한 정보를 메모리 또는 스택에 저장한다.
③ 되돌아올 명령어의 세그먼트 주소와 변위를 스택에 저장한다.
④ 인터럽트를 건 장치에 맞는 인터럽트 처리 루틴의 주소를 결정한다.
⑤ 인터럽트 처리 루틴을 실행한다.
4.4.4 우선순위 인터럽트
(1) 소프트웨어에 의한 우선순위
※ 특성
① 우선순위는 프로그램상에서 결정하므로 융통성이 있다.
② 우선순위를 결정하는 하드웨어가 없으므로 경제적이다.
③ 인터럽트 반응 속도가 느리다.
※ 단점
많은 인터럽트가 있을 때 그들을 모두 조사해야 하므로 많은 시간이 소비된다.
(2) 하드웨어에 의한 인터럽트
시스템 타이머, 키보드, 하드디스크, 프린터 등에 의해서 발생하는 인터럽트이다. 키보드에 의해서 발생하는 인터럽트는 키보드의 키가 눌러지면 이 사실을 프로세서에 알려 입력된 값을 프로세서가 저장하도록 하는 것이다.
(3) 인터럽트 벡터
외부 장치에 의한 인터럽트든지 DOS 함수 호출에 의한 인터럽트든, 인터럽트가 걸리면 프로 세서는 하던 일을 중단하고 인터럽트 처리한다. 이때 인터럽트의 처리 프로그램이 저장된 주소를 가진 곳이 인터럽트 벡터 테이블이다(Interrupt Vector Table). 어떤 인터럽트든 걸리면 이 처리 루틴의 번지를 알기 위해 이 테이블을 참조해야 한다. 이 테이블은 세그먼트와 오프셋(Offset)의 정보를 갖는다.
4.4.5 인터럽트와 서브루틴의 차이점
(1) 인터럽트
프로그램을 수행할 동안 컴퓨터의 내부나 주의에서 응급 사태가 발생하여 현재 수행되는 프로그램이 중단되는 상태를 말한다.
(2) 서브루틴
한 프로그램 내에서 특정한 일이 여러 번 실행될 필요가 있을 때 이를 서브루틴으로 작성하여 프로그램의 여러 곳에서 사용할 수 있다. 이렇게 함으로써 프로그래밍에 드는 시간과 프로그램이 지하는 기억 장소를 절약할 수 있다.
5장 명령 실행과 제어
5.1 마이크로 오퍼레이션
컴퓨터에서 명령어의 수행은 중앙 처리장치(CPU) 내의 레지스터들의 내용을 변경시키는 것으로 중앙 처리 장치가 일련의 상태 변화하도록 제어함으로써 이루어진다. 중앙 처리 장치의 상태 변환하도록 하는 동작을 원시적 오퍼레이션 (Primitive Operation) 혹은 마이크로 오퍼레이션 (Micro-Operation)이라고 부른다.
5.2 마이크로 사이클
마이크로 오퍼레이션을 수행하는 데 필요한 시간(CPU Cycle Time)으로서 중앙 처리 장치의 속도를 표시한다. 가능한 모든 마이크로 오퍼레이션 중 수행 시간이 가장 긴 것을 중앙 처리 장치의 클럭 주기로 설정하여 마이크로 오퍼레이션의 동작 시간을 같다고 가정하는 동기 고정식(Synchronous Fixed)과 그 수행 시간이 유사한 것끼리 모아 한 개의 군을 형성하여, 전체 마이크로 오퍼레이션을 몇 개의 군으로 나누어 각 군에 대하여 서로 다른 마이크로 사이클 타임을 주는 동기 가변식(Synchronous Variable )이 있다.
5.3 메이저 상태와 타이밍 상태
(1) 메이저 상태(Maior State)
메이저 상태란 중앙 처리 장치가 무엇을 하고 있는가를 나타내는 상태로서, 기억 장치의 사이클을 단위로 하여 해당 사이클 동안에 무엇을 위해 기억 장치에 접근하는가를 나타내 준다. 따라서 중앙 처리 장치의 메이저 스테이트는 기억 장치에 접근할 때마다 변화한다. 다음 표는 각 메이저 상태에서 행하는 일들을 나타내고 있다.
(2) 타이밍 상태(Timing State)
각 타이밍 상태에 머무는 동안은 마이크로 사이클과 같으며, 하나의 마이크로 오퍼레이션을 수행할 수 있다.
5.4 제어 데이터
메이저 상태 간의 변천이나, 중앙 처리 장치의 제어점을 제어하거나, 명령의 수행 순서를 결정하는데 필요한 데이터를 제어 데이터라 부른다.
PETCH 상태에서 상태 변전을 위한 데이터는 기억 장치에서 읽은 명령으로서 주소 지정 방식에 따라 INDIRECT 상태나 EXECUTE 상태로 변천한다.
제어점을 제어하기 위한 제어 데이터는 주소 부분이 직접 주소라면 명령의 연산자가 되며.
계산에 의한 주소를 사용할 경우에는 계산에 의한 주소를 제어 데이터로 사용하며, 제어 명령의 수행을 위해서는 연산자와 연산 결과의 상태 레지스터값을 제어 데이터로 사용한다. 다음에 수행할 명령의 주소를 결정하기 위한 제어 데이터는 명령과 상태 레지스터값에 따라 PC를 제어함으로써 사용된다.
INDIRECT 상태에서는 간접 주소와 직접 주소를 구별하는 비트가 상태 변천을 제어하기 위한 제어 데이터가 된다.
EXECUTE 상태에서 다음 상태로 변천하는 것은 인터럽트 요청 신호에 의해서만 가능하다.
요청 신호를 받으면 그 상태가 끝난 후 INTERRUPT 상태로 변천하는데 FETCH, INDIRECT 상태에서도 마찬가지로 그 상태의 수행이 완료된 후, INTERRUPT 상태로 변천한다. EXECUTE 상태에서 제어점의 제어는 명령의 연산자이고, 프로그램 카운터 (PC) 에 의해서 다음 주소가 결정된다.
5.5 제어 규칙
각 메이저 상태와 타이밍 상태에서 어떤 특정한 데이터를 받았을 때 어떤 마이크로 오퍼레이션을 실행하도록 제어 신호를 발생시키는 것으로 대개 컴퓨터 기종마다 다르다.
'컴퓨터 구조' 카테고리의 다른 글
입력 및 출력 (0) | 2022.12.28 |
---|---|
기억 장치 - 메모리 (0) | 2022.12.27 |
프로세스 - 중앙처리 장치 (CPU) (0) | 2022.12.27 |
논리 회로 - 순차 논리 회로의 설계 (0) | 2022.12.27 |
논리 회로 - 논리 게이트 (0) | 2022.12.27 |
댓글