2008/02/19 20:41
인터럽트 사이클 General Tech.2008/02/19 20:41
Interrupt - 컴퓨터에서 프로그램 실행중에 CPU의 정상적인 처리를 방해하는 매커니즘
인터럽트의 예)
1,2,3,4,5,6,7,8,9, 순서로 프로그램을 실행한다고 가정한다.
1,2,3,4,5 까지 실행했는데 중간에 다른 프로그램을 실행한다.
그래서 1,2,3,4,5 -> 다른 프로그램실행 -> 6,7,8,9 순으로 실행되야 한다.
6,7,8,9 로 복귀하기 위해선 서비스 프로그램이 필요하며 우린 이것을 Interrupt Service Routine(ISR)이라 부른다.
인터럽트가 요구되었을 때 CPU의 동작 수행
1. 현재의 명령어 실행을 즉시 중단.
2. 다음에 실행할 명령어의 주소를 Stack에 저장.
3. 인터럽트 서비스 루틴을 호출하기 위해 루틴의 시작 주소를 PC에 적재
t0 : MBR ,- PC (PC의 내용을 MBR로 전송)
t1: MAR <- SP,PC <- ISR의 시작주소 (SP의 내용이 MAR로 전송)
t2: M[MAR] <-MBR (MBR에 저장된 원래의 PC 내용을 스택에 저장)
SP: 스택포인터
인터럽트의 예)
1,2,3,4,5,6,7,8,9, 순서로 프로그램을 실행한다고 가정한다.
1,2,3,4,5 까지 실행했는데 중간에 다른 프로그램을 실행한다.
그래서 1,2,3,4,5 -> 다른 프로그램실행 -> 6,7,8,9 순으로 실행되야 한다.
6,7,8,9 로 복귀하기 위해선 서비스 프로그램이 필요하며 우린 이것을 Interrupt Service Routine(ISR)이라 부른다.
인터럽트가 요구되었을 때 CPU의 동작 수행
1. 현재의 명령어 실행을 즉시 중단.
2. 다음에 실행할 명령어의 주소를 Stack에 저장.
3. 인터럽트 서비스 루틴을 호출하기 위해 루틴의 시작 주소를 PC에 적재
t0 : MBR ,- PC (PC의 내용을 MBR로 전송)
t1: MAR <- SP,PC <- ISR의 시작주소 (SP의 내용이 MAR로 전송)
t2: M[MAR] <-MBR (MBR에 저장된 원래의 PC 내용을 스택에 저장)
SP: 스택포인터
'General Tech.' 카테고리의 다른 글
| Google Analytics Interface Tutorial (0) | 2008/02/22 |
|---|---|
| Semantic Web Interface (0) | 2008/02/20 |
| 인터럽트 사이클 (0) | 2008/02/19 |
| 간접사이클과 명령어 파이프라이닝 (0) | 2008/02/19 |
| 명령어 인출 사이클과 실행 사이클 (0) | 2008/02/18 |
| SOA란? (0) | 2008/02/17 |
TAG interrupt
