본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터 구조] 입출력과 인터럽트

이 글은 www.youtube.com/watch?v=BxiaL0Hsn2M&list=PLc8fQ-m7b1hD4jqccMlfQpWgDVdalXFbH&index=24 보고 공부한 글입니다.

 

입출력이 가능했을 때 어떻게 동작 하나

PC1,2,3,4… 쭉 시작하면 255를 실행하면 인터럽터가 걸렸다. 255가 걸린순간 PC256번이다.
인터럽터의 주소를 0번지에 저장한다. => PC = PC +1 =>1번 주소를 실행 =>1120번지로 무조건 점프한다. BIOS 프로그램이다. => IO프로그램 마지막에 간접주소 0번지로 가게끔 돼있다.  => 256번지로 다시 옴

 

입출력이 있는지 없는지 확인 => FGI, FGO1

 

R1이면 입출력이 발생했다 => 오른쪽으로 간다. =>return address0번지에 저장 => PC = 1로 바꿈 => 1120번지로 가서 IO프로그램 실행

 

IO프로그램 중간에 인터럽터가 걸렸다. => FGI, FGO1이되면 => 0번지에 주소 저장 => PC= 1로 바꿈 =>1120번지로 가서 IO프로그램 실행  하면 중간에 중복 될 수 있다.
그래서 IEN0으로 바꿈 = 인터럽터를 안받는다.

 

, 한번에 한 개의 인터럽터를 받는다.

 

R = 0명령어 사이클
R =1
인터럽터 사이클

●프로그램 인터럽트 장치가 준비되었을 때 cpu에게 알림


인터럽트 발생시 BSA명령어처럼 동작
FGI, FGO
플래그 사용


플래그가 set되면R=1
R=1
이면 다음 명령어 사이클에 인터럽트 사이클 실행


IEN –
인터럽트 enable/disable 제어

 

IO Promgram – 입출력 인터럽트 처리 루틴의 집합


BIOS –
컴퓨터를 돌아가게하는 중요한 시스템


Basic IO system

 

IVT(interrup Vector table)
각 인터럽트에 벡터번호 부여
벡터번호와 인터럽트 처리 루틴 시작번지를 Table로 유지
시스템 부팅시에 IVT0segmentload
현대의 대부분 cpuIVT 사용

 

ex)메인메모리에0~250까지 테이블로 잡아두고 인터럽트1, 인터럽트2… 번호를 붙힌다.
0
번지는 비어있다. 1번지는 0번지에 해당하는 IO프로그램으로 바로 가는 명령이 있다.

 

인터럽트 사이클(IC)

IC로 분기되는 조건

(오른쪽으로 넘어가는)

T3여야 한다. T0,T1,T2가 모두 아닌T3이후인 경우

 

인터럽트 사이클의 실행

cpu는 명령어 사이클, 인터럽터 사이클이 있다. 기준은 R값이다.

728x90