HyeM

[컴퓨터구조]3주차(1)_명령어 실행 기법 본문

Study/Computer Architecture

[컴퓨터구조]3주차(1)_명령어 실행 기법

Hailey_HyeM207 2020. 5. 19. 23:41

명령어를 효과적으로 실행하기 위한 기법

  • 주소 지정 방식
  • 명령어 파이프라인
  • 인터럽트

위의 3가지 방식을 하나하나 자세히 살펴보자.

 

--- 지난 시간 ---
 ' [컴퓨터구조] 2주차(2)_어셈블리 프로그램 예제 中 명령어 형식 ' 에 추가

연산코드 : 함수 연산 기능, 전달 기능, 제어기능, 입출력기능
모드 : 직접번지 인지 간접번지인지 나타냄 (1bit)

오퍼랜드 : 연산을 수행하는데 필요한 데이터 혹은 데이터의 주소

(컴퓨터 마다 명령어 형식에 차이가 있음)

 

 


주소 지정방식

주소지정방식

주소 : 주기억장치에서 데이터가 저장된 위치.

주소 지정 방식 (addressing mode) : 주소를 지정하는 방식. 

유효주소 :  데이터가 저장된 기억장치의 실제 주소

 

+ 주기억장치에는 프로그램 저장되어 있음. 프로그램을 실행하여 프로세스로 바뀌면 RAM에 저장됨.

 

주소지정방식 분류

  1. 즉치 주소 지정 방식

  2. 직접 주소지정방식

  3. 간접 주소지정 방식

  4. 레지스터 주소지정 방식

  5. 레지스터 간접 주소지정 방식

  6. 변위 주소지정 방식

 

주소지정 방식에 따른 자료 접근 속도

(빠름) 즉치 주소지정 > 레지스터 주소지정 > 직접주소지정 > 레지스터간접 주소지정 > 간접 주소지정 (느림)

 

 

분류1. 즉치 주소지정방식

주소필드에 실제 사용할 오퍼랜드(피연산자)지정

레지스터나 변수를 상수값으로 초기화하는데 유용함

 

 

 

 

 

(출처 : https://atoz-develop.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A3%BC%EC%86%8C%EC%A7%80%EC%A0%95%EB%B0%A9%EC%8B%9D%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%EC%9D%B4%ED%95%B4)

 

 

분류2. 직접 주소지정방식

오퍼랜드 (유효주소) -> 기억장치의 유효주소(데이터)

 

EA = A

:유효주소 = 기억장치 주소

 

- 가장 기본적인 간단한 주소방식

- 오퍼랜드 필드의 내용이 유효주소가 되는 방식

 

 

장점    1) 데이터 인출을 위해 오퍼랜드의 해당주소의 기억장치에 한번만 접근 ( 주기억장치에 한번만 접근하니, 효율적 )

            2) 명령어 형식 간단

단점    1)명령어 모든 코드가 주소가 아니라, 연산코드를 제외한 남은 비트들이 주소비트로 사용되어, 지정할 수 있는 기억장소 수가 제한됨. 

            2)많은 수의 주소를 지정 못함( 주소 길면 지정 x ) 

 

 

참고 ) 주소지정방식 표기

 

 

 

 

 

 

 

 

 

분류3. 간접 주소 지정 방식

오퍼랜드(유효주소주소) -> 기억장치주소(유효주소) -> 기억장치의 유효주소(데이터)

EA = (A)

: 유효주소 = 기억장치 A번지의 내용

 

-기억장치에 2번 액세스해야됨

1번째 : 유효주소의 주소값을 읽기위해 액세스

2번째 : 실제 유효 주소에 액세스하여 실질적인 데이터를 얻는것

 

 

 

 

장점    1)최대 기억 장치 용량은 CPU가 한 번에 접근할 수 있는 단어 길이에 의해 결정된다.  ex) n워드 이면, 2^n의 주소공간 활용가능

            2) 기억장치 구조 변경 등으로 확장 가능함

            3) 명령어의 오퍼랜드 길이가 제한되어 있어도, 긴 주소에 접근 가능함

단점    1) 기억장치에 두 번 액세스 해야됨. -> 속도 느림

            2) 명령어 형식에서 주소 지정 방식을 표시하는 간접 비트 필드  필요

I가 0이면 : 직접 주소지정방식,   I가 1이면 : 간접 주소지정방식

 

 

분류4. 레지스터 주소 지정 방식

오퍼랜드(레지스터번호(유효주소)) ->레지스터(데이터) 

EA = R

:유효주소 = 레지스터 번호 

 

- 주기억장치로 갈필요 없음. 레지스터에 데이터 있음

 

 

 

 

장점    1) 비트수가 적어도 되고, 데이터 인출을 위해 기억장치에 액세스할 필요 없음. ( 레지스터에 데이터가 있어 Fast )

단점    1) 데이터 저장공간이 CPU 내부의 레지스터로, 용량이 적다.

 

++ 용량 : cpu레지스터 < 캐시기억장치 < 주기억장치 < 보조기억장치

 

 

 

분류 5. 레지스터 간접 주소지정 방식

오퍼랜드(레지스터번호) -> 레지스터(유효주소) ->유효주소(데이터)

EA = (R)

: 유효주소 = 레지스터에 저장된 내용

 

- 레지스터의 길이에 따라 주소지정 영역이 결정됨. 레지스터의 길이:16비트 -> 주소지정영역 : 2의 16승 비트 (64K바이트)

 

장점    1) 많은 주소 공간 활용가능

단점    1) 간접 주소 방식 보다 메모리 참조가 적게 일어 나지만 여분의 메모리 참조가 필요함

('메모리참조' = 주기억장치 Access  // '여분의 메모리 참조' = 레지스터 참조)

     

 

+++   간접 주소 지정방식 VS 레지스터 간접 주소 지정방식  +++

   - 간접 주소 지정 방식 : 기억장치에 두번 액세스

   - 레지스터 간접 주소 지정방식 : 기억장치에 한번만 액세스 ( Access는 총2번이지만, 1번은 레지스터, 1번은 주기억장치)

 

 

 

분류6. 변위 주소 지정방식

{ 오퍼랜드1(레지스터번호필드)-> 레지스터(주소) } + { 오퍼랜드2(변위값필드) } => 유효주소(데이터)

EA = (R) + A

: 유효주소 = R이 가리키는 레지스터 내용 + 변위값 A

 

 

 

종류 (사용하는 레지스터에 따라)

  • 상대 주소 지정방식 ( 프로그램카운터PC )

  • 인덱스 주소지정방식 ( 인덱스 레지스터 )

  • 베이스 레지스터 주소지정방식 ( 베이스 레지스터 )

종류 1) 상대 주소 지정방식 

레지스터 : PC(프로그램 카운터)

EA= (PC) + A 

*프로그램 카운터 : 다음에 실행할 명령어들의 주소 저장

 

예시 )

431번지에 저장된 JUMP 명령어가 인출된 후에, PC 내용이 432이 된 경우에,

- A(변위값)=+21인경우: 분기 목적지 주소는 453(=432 + 21)번지

- A(변위값)=-50인경우: 분기 목적지 주소는 382(=432- 50)번지

 

 

종류 2) 인덱스 주소 지정방식

레지스터 :인덱스 레지스터

EA= (IX) + A 

*인덱스 레지스터 : index값을 저장하는 특수 레지스터

 

- 명령어 실행될때마다, IX의 내용이 자동적으로 증가 or 감소함

명령어 실행시, 아래의 두 연산 연속적 수행됨

 EA =(IX) + A,  IX <- IX +1

 

 

종류 3) 베이스 레지스터 주소 지정방식

레지스터 : 베이스 레지스터

EA = (BR) + A  

 

*베이스 레지스터 :  명령이 시작되는 시작번지를 기억하고 있는 레지스터

 

 

 

 

 

 


명령어 파이프 라인 (Pipeline)

동시에 여러개의 명령어를 실행하는 기법으로, 하나의 명령어가 실행되는 동안 다른 명령어를 실행하는 기법

- 하나의 명령어를 여러단계로 나누어서 처리하여, 처리 속도 향상됨

 

종류

2단계 명령어 파이프라인

4단계 명령어 파이프라인

6단계 명령어 파이프라인

 

 

종류1. 2단계 명령어 파이프라인

명령어를 실행하는 하드웨어를 1)인출단계2)실행단계 의 두개의 독립적인 파이프라인 모듈로 분리하여 수행하는 방법

2단계 명령어 파이프라인

- 명령어 처리 속도가 약 2배 향상되지만, 처리시간이 동일하지 않으면 2배의 속도 향상을 기대할 수 없다.

 

+ 클록주기 : 컴퓨터에서 각 구성요소의 모든 동작을 동기화 하기 위해 사용되는 클록펄스의 발생 주기

클록펄스는 클록 펄스는 수정 발진자의 규칙적인 진동에 의해 발생하는 일정한 간격을 갖는 전자적 펄스인데, 컴퓨터의 시스템 클록(CPU 클록)은 이 펄스를 타이밍 펄스또는 디지털 신호로 사용하여 시스템 내의 각 장치와 회로의 모든 동작을 동기화한다. 클록 펄스의 발생 주기(cycle)를 클록 속도 또는 클록주파수라고 한다.  (출처 : 정보통신용어사전)

 

 

종류2. 4단계 명령어 파이프라인

1)명령어 인출, 2)명령어 해독, 3)오퍼랜드 인출, 4)명령어 실행의 4단계로 구성된 파이프라인

4단계 명령어 파이프라인

1) 명령어 인출

명령어기억장치에서 인출

2) 명령어 해독

명령어 해독기로 1단계에서 인출된 명령어 해석

3) 오퍼랜드 인출

기억장치에서 오퍼랜드를 인출하는 단계

4) 명령어 실행

명령어에서 지정된 연산을 수행하는 단계

 

- 2단계 명령어 파이프 라인보다 더 빠르다. 

 

 

종류3. 6단계 명령어 파이프라인

1) FI, 2) DI, 3) CO 4) FO,  5) EI, 6) WO의 6단계로 구성된 파이프라인 

6단계 명령어 파이프라인

1)명령어 인출(Fetch Instruction) 

2)명령어 해독(Decode Instruction)

3)오퍼랜드 계산(Calculate Operand)   

   : 간접주소 또는 변위 주소 지정방식 은 유효주소를 찾는 계산이 필요함

4)오퍼랜드 인출(Fetch Operand)

5) 명령어 실행(Execute Instruction)

6)오퍼 랜드 저장(Write Operand)

  : 연산된 결과(오퍼랜드)를 저장하는 단계

 

 

 

파이프라인에 의한 속도 향상 

[ 명령어 실행 시간 계산 ]

k: 파이프라인의 단계 수 

N: 실행할 명령어들의 수 

각 파이프라인의 단계: 한 클록 주기씩 소요됨

 

파이프라인을 적용하지 않았을때, N개의 명령어를 실행하는데 소요되는 시간(T’)

 T’ = k * N

 

 

파이프라인을 적용했을때, N개의 명령어를 실행하는데 소요되는 시간(T)은

 T = k + (N – 1) 

 

예제를 들어 파이프라인에 의한 속도 향상을 알아보자.

파이프라인 단계수(k)는 4단계이고, 실행할 명령어들의 수(N)는 5라고 하자.

즉 , k=4, N=5라면,

파이프라인 적용 안했을때의 명령어 실행 소요시간은 T'는 4*5 = 20이다.

하지만, 파이프라인 적용했을때의 명령어 실행 소요시간은 T는 4+(5-1)= 8이다.

 

파이프라인에 의한 속도향상은 T'/T = 20 / 8 하여 약 2.5배이다. 

 

++  (식 이해하기) 그 이유는?

위의 예제로 더 자세히 이해해보자.

 

우선 파이프라인 적용 안했을 때의 명령어 실행 소요시간을 알아보자.(단, 단계 하나 실행시간을 1로 본다.)

파이프 라인을 적용 안하면 동시에 명령어를 수행하지 못하므로, 하나의 명령어를 처리한 후, 다음 명령어 처리가 가능하다. 그러므로 5개의 명령어를 실행하는데, 각 명령어당 단계는 4단계이므로 4*5 하여, 5개의 명령어 실행 소요시간은 20이다.

=> 파이프라인 적용 안 했을때의 명령어 실행 소요시간 : 20

 

 

그렇다면 파이프라인을 적용하면 어떻게 될까?

4단계의 파이프 라인을 실행하게 되면, 동시에 명령어 수행이 가능하다. 

위의 그림은 4단계의 파이프 라인 실행을 그림으로 나타낸 것이다.

명령어 5개를 실행하는데, 파이프라인이 실행되어 있으니, 동시적으로 명령 실행 가능하다. 클록 주기1에는 명령어1의 IF단계를, 클록주기2에는 명령어1의 ID단계와 명령어2의 IF단계를 동시에 실행하게 된다. (이는 각단계를 진행하는 하드웨어가 독립적이라 가능함.) 

마지막 명령어5의 EX단계까지 하면 클록주기8인걸 확인가능하다.

=> 파이프라인 적용했을때의 명령어 실행 소요시간 : 8

 

 

 

 

 

 


인터럽트

인터럽트

인터럽트란 CPU가 현재 실행 중인 프로그램의 처리를 강제적으로 중단시키고, 특정 주소에 위치한 프로그램을 수행하는 것이다.

인터럽트

동작원리

인터럽트 서비스루틴(ISR, Interrupt Service Routine)

: 인터럽트를 처리하기위해 실행되는 프로그램 루틴; 

인터럽트 시작되면, 현재 실행중인 프로그램의 중요 데이터는 주기억장치에 저장되고, 실행중인 프로그램은 중단된다.

(현재 실행중인 프로그램을 주기억장치에 저장함으로써, 인터럽트를 처리한 후 원래의 작업으로 돌아올 수 있다.)

실행중이였다가 중단된 프로그램은, ISR이 처리하는 프로그램(인터럽트)이 종료된 후에 실행된다. 

 

인터럽트 발생원인(종류)

  1. 기계 착오 인터럽트

  2. 슈퍼바이저 호출 인터럽트

  3. 외부 인터럽트

  4. 입출력 인터럽트

  5. 프로그램 검사 인터럽트

  6. 재시작 인터럽트

1. 기계 착오 인터럽트 : 프로그램 실행하고 있는 도중에,  정전이나 컴퓨터 자체 내의 기계적인 문제로 발생하는 인터럽트

2. 슈퍼바이저 호출 인터럽트 : 슈퍼바이저 호출(SVC) 명령어를 사용하여 운영체제에 서비스 요청할 때 발생하는 인터럽트

3. 외부 인터럽트 : 오퍼레이터나 타이머에 의해 의도적으로 프로그램이 중단된 경우 발생하는 인터럽트

4. 입출력 인터럽트 : 입출력 종료나 오류에 의해 CPU기능이 요청되는 경우 발생하는 인터럽트

     ex. I/O 제어기에 의한 프린터 출력, 키보드 입력

5. 프로그램 검사 인터럽트 : 프로그램 실행 중 보호된 기억공간 내에 접근하거나 불법적인 명령수행과 같은 프로그램의 문제로 인해 발생하는 인터럽트

     ex. 오버플로우, 0에 의한 나누기

6. 재시작 인터럽트 : 오퍼레이터 및 다른 프로세서에 의해 재시작 명령이 도착하였을 때 발생하는 인터럽트

 

 

 

인터럽트 처리

인터럽트 사이클

: 인터럽트 발생을 처리하기 위한 사이클로, CPU가 인터럽트 요구 존재 여부를 검사하는 과정이다

 

인터럽트 요구가 대기중이면, 인터럽트 사이클에 의해서,

현재 프로그램 중단 -> 프로그램상태 저장-> 프로그램 카운터(PC)를 인터럽트 처리 루틴의 시작 주소로 설정 -> 인터럽트 처리

 

 

 

 

 

다중 인터럽트 처리

다중 인터럽트 : 인터럽트 서비스 루틴을 수행하는 동안 또 다른 인터럽트가 발생하는 것

 

처리방식에 따라 2가지로 나뉨

1. 순차적인 다중 인터럽트 처리

인터럽트 서비스루틴 X를 처리하고 있는 도중에, 새로운 인터럽트 서비스 루틴Y가 들어오더라도, CPU는 새로운 인터럽트 사이클을 수행하지 않음.

나중에 들어온 인터럽트는 대기하고, 현재 인터럽트 처리가 종료되면, 순서대로 처리된다.

 

 

 

 

 

 

 

2. 우선순위 다중 인터럽트 처리

인터럽트의 우선순위를 정한다.

우선순위가 낮은 인터럽트 x가 처리되고 있는 동안, 우선순위가 더 높은 인터럽트 Y가 들어오면, 현재의 인터럽트 서비스 루틴x를 중단하고 새로운 인터럽트 Y를 처리한다. Y를 처리한 후에는, 진행중이였던, 인터럽트 x를 처리한다.

 

 

ex) 오버플로우 발생, 프로그램 다운시

 

 


출처 :

2019 컴퓨터 구조 호준원 교수님 강의노트

디지털논리와 컴퓨터 설계, Harris et al. (조영완 외 번역), 사이텍미디어, 2007, 

컴퓨터 구조와 원리 (비주얼 컴퓨터 아키텍처), 신종홍 저, 한빛미디어, 2011

 


문제 출제

 

1. 다음 중 옳지 않은 보기를 고르시오.

(1) 레지스터 간접 주소시정이 간접 주소지정보다 빠르다.
(2) 레지스터 주소 지정방식은 기억장치에 액세스하여 레지스터의 데이터를 가져온다.
(3) 변위 주소 지정방식은 더 큰 주소에 접근 가능하다.
(4) 명령어 형식에선 주소 지정 방식을 표기한는데, 0이면 직접주소방식이다.
(5) 직접 주소 지정방식은  오퍼랜드 안에 유효주소가 있다.

 

2. 다음 중 기호가 옳게 짝지어진 것은?

(1) EA =(R) , 즉치 주소지정방식
(2) EA =A ,  레지스터 주소지정방식
(3) EA=(IX) + A, 베이스 레지스터 주소 지정방식
(4) EA = R, 직접 주소 지정방식
(5) EA=(A) , 간접 주소 지정방식

 

 

3~4. 다음 그림에 해당하는 주소지정방식을  고르시오.

3.

4.

 

 

5. 다음 보기를 읽고, O,X 로 표기하시오

(1) 명령어 파이프라인 기법을 통해, 동시에 여러 개의 명령어를 실행할 수  있다. ( O ,X  )

(2) 2단계 명령어 파이프라인은 하드웨어를 인출단계외 실행단계로 두개의 파이프라인 모듈을 합쳐서 수행한다. ( O, X )

 

6. 4단계 명령어 파이프라인에 해당하는 단계 4가지를 보기에서 고르시오.

[ <보기> 명령어 실행, 명령어 해독, 오퍼랜드 계산, 오퍼핸드 인출, 오퍼랜드 저장, 명령어 인출 ]

 

7. 다음을 계산하시오.

6단계로 명령어를 처리한다 가정할때, 명령어 10개를 실행할때 소요되는 시간을, 파이프라인을 적용했을때와, 적용하지 않았을 때 모두 구하시오. 

답 : 파이프라인 적용하지 않았을때  :  ____

파이프라인 적용 했을때: ____

 

8. 다음 빈칸을 완성하시오.

_____는 cpu가 현재 실행중인 프로그램 처리를 강제적으로 중단시키고, 특정 주소에 위치한 프로그램을 수행하는 것을 처리하기 위한 사이클로, 현재 프로그램을 중단하고 _____ 를 인터럽트 처리 루틴의 시작주소로 설정한다. 

 

9.  다음 보기를 읽고, O,X로 표기하시오.

(1) 인터럽트는 프로그램 처리 다하고 나서 처리한다. ( O, X )

(2) 오퍼레이터에 의해 재시작 명령이 도착하면 인터럽트가 발생할 수 있다. (O ,X )

 

10. 그림은 어떤 다중 인터럽트 처리인가?

 

답은 밑의 더보기 클릭 

 
 

더보기

문제 답

 

1. 다음 중 옳지 않은 보기를 고르시오.

(1) 레지스터 간접 주소시정이 간접 주소지정보다 빠르다.
간접 주소지정은 기억장치에 두번 엑세스 해야되지만,레지스터는 기억장치에 1번, 레지스터에 1번 접근하여,간접 주소지정방식보단 빠르다.
(2) 레지스터 주소 지정방식은 기억장치에 액세스하여 레지스터의 데이터를 가져온다.
레지스터 주소 지정방식은 기억장치에 접근하지 않는다. 오퍼랜드에는 레지스터번호가 있어, 바로 레지스터에 접근하여 안에 저장된 데이터에 접근한다.
(3) 변위 주소 지정방식은 더 큰 주소에 접근 가능하다.
변위 주소 지정방식은 오퍼랜드1에는 레지스터번호필드가 있고, 오퍼랜드2에는 변위값 필드가 있어, 레지스터 안의 주소값과 변위값을 +연산하여 더 큰 주소에 접근 가능하다. 
(4) 명령어 형식에선 주소 지정 방식을 표기한는데, 0이면 직접주소방식이다.
맞다. 1이면 간접 주소지정방식을 의미하여, 명령어가 어떤 주소 방식을 사용하고 있는지 알 수 있다.
(5) 직접 주소 지정방식은  오퍼랜드 안에 유효주소가 있다.
맞다. 가장 기본적인 간단한 주소 방식으로, EA = A로 표기가능하다. 

 

2. 다음 중 기호가 옳게 짝지어진 것은?

(1) EA =(R) , 즉치 주소지정방식   
레지스터 간접 주소지정방식이다. EA는 유효주소를, (R)은 레지스터 R번지의 내용을 의미한다. 즉치주소 지정방식은 명령어 오퍼랜드가 실제 사용할 데이터이다.
(2) EA =A ,  레지스터 주소지정방식
직접 주소지정방식이다. EA는 유효주소를 A는  기억장치 주소를 의미한다.  레지스터 주소지정방식은 EA=R이다.
(3) EA=(IX) + A, 베이스 레지스터 주소 지정방식
인덱스 주소지정방식이다. (IX)는 인덱스 레지스터이다.(Index값을 저장함). 베이스 레지스터는 (BR)로 표기한다.
(4) EA = R, 직접 주소 지정방식
레지스터 주소지정방식이다. R은 레지스터번호이고, 직접주소지정방식은 EA=A로 표기한다.
(5) EA=(A) , 간접 주소 지정방식
EA는 유효주소를 (A)는 기억장치 A번지의 내용을 의미한다. 간접주소 지정방식은 기억장치에 2번 액세스 하는데, 첫번째 접근은  유효주소가 저장된 기억장치주소로 액세스하는 것이다.

답 __5번__

 

3~4. 다음 그림에 해당하는 주소지정방식을  고르시오.

3.

레지스터 간접 주소지정방식;  레지스터 간접 주소지정방식은 오퍼랜드에는 레지스터 번호가 있고, 레지스터안에는 실제 유효주소가 있어서, 2번의 접근이 필요하다.

4.

 직접 주소지정방식; 직접 주소지정방식은 가장 기본적인 간단한 주소방식으로, 오퍼랜드안에는 유효주소가 있는 형태이다.

 

5. 다음 보기를 읽고, O,X 로 표기하시오

(1) 명령어 파이프라인 기법을 통해, 동시에 여러 개의 명령어를 실행할 수  있다. ( O ,X  )

맞다하나의 명령어를 여러단계로 나누어 동시에 실행할 수 있다.

(2) 2단계 명령어 파이프라인은 하드웨어를 인출단계외 실행단계로 두개의 파이프라인 모듈을 합쳐서 수행한다. ( O, X )

아니다. 합쳐서 수행하는것이 아니라, 하드웨어를 독립적으로 구성하여, 동시에 실행할 수 있게 한다.

 

6. 4단계 명령어 파이프라인에 해당하는 단계 4가지를 보기에서 고르시오.

[ <보기> 명령어 실행, 명령어 해독, 오퍼랜드 계산, 오퍼핸드 인출, 오퍼랜드 저장, 명령어 인출 ]

 답 : 명령어 인출, 명령어 해독, 오퍼랜드 인출, 명령어 실행

 

7. 다음을 계산하시오.

6단계로 명령어를 처리한다 가정할때, 명령어 10개를 실행할때 소요되는 시간을, 파이프라인을 적용했을때와, 적용하지 않았을 때 모두 구하시오. 

답 : 파이프라인 적용하지 않았을 때 :  _60__

적용하지 않았을때는 (파이프라인 단계수)*(실행할 명령어들수)이므로, 6*10 = 60이다.

파이프라인 적용 했을때 : _15_

적용했을 때는 (파이프라인의 단계수)+(실행할명령어들 수 -1)이므로, 6+(10-1)=15이다.

 

8. 다음 빈칸을 완성하시오.

__인터럽트 사이클__은 cpu가 현재 실행중인 프로그램 처리를 강제적으로 중단시키고, 특정 주소에 위치한 프로그램을 수행하는 것을 처리하기 위한 사이클로, 현재 프로그램을 중단하고 _ PC_ 를 인터럽트 처리 루틴의 시작주소로 설정한다. 

 인터럽트 발생시, 인터럽트 사이클에 의해서 현재 프로그램은 중단되고 저장되는데, PC(프로그램카운터)를  인터럽트 처리루틴의 시작 주소로 설정하여 인터럽트를 처리한다.

 

9.  다음 보기를 읽고, O,X로 표기하시오.

(1) 인터럽트는 프로그램 처리 다하고 나서 처리한다. ( O , X )

아니다. 인터럽트가 발생하면 CPU는 현재 실행중인 프로그램 처리를 강제적으로 중단시키고, 인터럽트를 먼저 수행한다.

(2) 오퍼레이터에 의해 재시작 명령이 도착하면 인터럽트가 발생할 수 있다.( O , X )

맞다.  그 외에도, 슈퍼바이터 호출로 운영체제에 서비스를 요청하거나, 입출력 인터럽트, 오버플로우, 0에 의한 나누기등으로 인터럽트가 발생할 수 있다.

 

10. 그림은 어떤 다중 인터럽트 처리인가?

 우선순위 다중 인터럽트 처리

우선순위 다중 인터럽트 처리는 낮은 인터럽트가 처리되고 있는동안, 우선순위가 더 높은 인터럽트가 들어오면, 진행중이던 인터럽트 서비스 루린을 중단하고, 새로운 인터럽트를 처리한다. 

 

 

 

Comments