* 입출력 제어방식 :
1. CPU관여 한다 : Program에 의한 I/O, Interrupt에 의한 I/O
2. CPU관여 안함다 : DMA에의한 I/O, Channerl에 의한 I/O
DMA (Direct Memory Access) : CPU와 직접 직통하여 하는것
무슨 말이냐면 데이타를 직접 CPU에게 전달하여 처리하는 것을 말한다
Channel : DMA를 하게 되니까 데이터가 서로 먼저 가서 처리하려고 싸워서 에러가 빈번하게 난다 그래서 나타난게 채널이다
사이클 스틸 | 인터럽트 |
CPU상태를 보존할 필요가 없음 | CPU 상태를 보존해야 함 |
잠시 CPU가 쉼 | CPU는 인터럽트를 처리해야 함 |
Fetch사이클 이외의 사이클은 상관없이 훔치는 것이 가능함 |
항상 실행 사이클 이후에만 인터럽트가 인지됨 |
그리고 인터럽트보다 DMA가 더 좋아요
* 인터럽트 : 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행중인 작업을 즉
시 중단하고 발생된 상황을 처리 한 후 이전 작업으로 돌아가서 다시 처리하는 것이다
* 인터럽트 기본 요소
1. 인터럽트 요청 신호
2. 인터럽트 취급 루턴
3. 인터럽트 처리 기능
인터럽트 우선순위
H/W | 정전 | 1 |
H/W | 기계검사 | 2 |
H/W | 외부 | 3 |
H/W | 입출력 | 4 |
S/W | 프로그램 | 5 |
S/W | SVC | 6 |
1) 외부인터럽트
- 전원 이상 인터럽트
- 외부신호 인터럽트(External Interrupt)
: 타이머에 의해 규정된 시간을 알리는 경우,
operaor의 console조작(표준입출력장치 모니터,키보드를 말함)
2) 내부인터럽트
- 트랩이라고도 함
*인터럽트 발생 순서
1. 인터럽트 요청 신호 발생
2. 현재 수행중인 명령을 완료하고 상태를 기억시킴
3. 어느 장치가 인터럽트 요청했는지 찾음
4. 인터럽트 취급 루틴을 수행
5. 복귀
* 소프트웨어적인 방법 : Polling
- 인터럽트 요청 신호를 플래그를 차례로 검사하여 인터럽트의 원인을 판별하는 방식
* 데이지 체인
- 직렬 우선순위 부여 방식
- 하드웨어를 이용하여 우선순위 지정함
capter10 과 capter11은 여러분들이 다 아시는 내용이라 따로 머 정리할게 없어서 쫌 소홀히 작성하게 되었답니다.....전자계산기는 capter11에서 끝!