마이크로 프로세서의 모든것(PSW, SP, F플래그, ALU, 인터럽트)!!!
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 마이크로 프로세서의 구성
2. F 플래그 레지스터
3. PSW(Program Status Word)
4. SP(stack pointer)
5. 인터럽트 벡터 레지스터
6. CPU 타이밍
7. non-maskable 인터럽트
8. I / O 포트의 데이터 입출력
9. 인터럽트를 결정하는 명령어 모드
10. 인터럽트를 점검하는 방법

본문내용

-80에서 이 모드가 가장 많이 사용됨.
< mode 0의 동작과정 >
① 현재 수행중인 명령어의 마지막 T 사이클에서 인터럽트 요구 신호 INT를 조사한다.
② INT 신호가 LOW상태이고 인터럽트 요구가 받아들여지면 CPU는 IORQ와 M1 신호를 LOW 상태로 하여 인터럽트 확인 신호를 받는다.
③ 인터럽트를 요구한 외부 장치는 인터럽트 확인 신호를 받은 후 데이터 버스에 CPU가 수행할 명령어 코드를 싣는다. 이 명령어 코드는 대개 1바이트 Restart(RST) 명령어이다.
④ CPU는 이 명령어 코드를 읽어와 수행한다. 수행 과정에서 PC의 값을 스택에 저장하고 Restart 명령어가 지정하는 8개 주소 중 하나로 Jump한다.
⑤ 점프한 메모리 주소(page zero address)에는 대개 3바이트 점프 명령어가 저장되어 메모리의 다른 영역에 쓰여진 인터럽트 처리 루틴으로 이동한다. 인터럽트 처리 푸틴의 ㅅ작 부분에는 필요한 레지스터들을 스택에 push시키는 명령어들이나 교환명령이 사용되며 인터럽트 처리 루틴내에서 EI(enable interrupt) 명령어가 사용될 때까지 인터럽트는 계속 disable상태에 있다.
⑥ 인터럽트 처리 푸틴의 마지막 부분에 있는 RET1명령에 의해서 스택에 보존 된 레지스터와 복귀주소가 다시 CPU로 로드되고 중단되었던 프로그램의 수행이 계속 된다.
< mod11 인터럽트 >
가장 간단한 인터럽트 인데 INT신호의 검지와 인터럽트 응답 사이클에 들어가는 타이밍은 모드 0의 인터럽트와 같다. 응답 사이클에서 외부에서 아무것도 주어지지 않고 CPU는 더미사이클로서 아무것도 읽어넣지 못하며 복귀번지를 스택에 저장하기 위해 메모리 라이트사이클이 2회 계속된 후 0038H번지로 점프한다. 즉 모드1의 인터럽트에서는 외부에서 데이터 버스로 명령을 내보낼 필요는 없으며 외관상으로는 RST38H나 CALL 38H를 실행하는 셈이된다. 다만 이 경우는 점프번지가 하나밖에 없으므로 인터럽트 처리 프로그램은 1개만으로 된다.
< mode 2의 동작과정 >
모드 2 인터럽트는 세 개의 마스크 에이블 인터럽트 중에서 가장 강력한데 모드 2에서는 128개의 서로 다른 외부 장치로부터 인터럽트를 처리할 수 있으며 벡터 어드레스 방식에 의해서 메모리의 어느 위치에도 인터럽트 처리루틴이 시작될 수 있다.
① 사용자는 인터럽트가 발생하기 전에 CPU의 인터럽트 벡터 레지스터 I에 인터럽트 벡터 표의 상위 바이트 값을 저장한다.
② 사용자는 인터럽트가 발생하기 전에 인터럽트 벡터표에 각 외부장치의 인터럽트 루틴 시작 주소를 저장한다.
③ 외부 장치가 인터럽트를 요구한 후 CPU가 현재 수행중인 명령어의 마지막 T 사이클에서 인터럽트를 확인하면 다믐 머신 사이클의 시작 부분에서 M1과 IORD신호를 모드 LOW상태로 하여 인터럽트 확인 신호를 발생한다.
④ 인터럽트를 요구한 외부장치는 CPU로부터 인터럽트 확인 신호를 받은 후 미리 저장되어 있던 8비티 데이터를 데이터 버스에 싣는다. 이 8비트 데이터는 LSB가 항상 0이다.
⑤ CPU는 데이터 버스로부터 이 8비트 데이터를 읽어오고 인터럽트 베거 레지스터의 값과 결합하여 다음과 같이 하나의 16비트 주소를 형성한다.
외부장치가 보낸 데이터
I 레지스터
0
8 Bit
8 Bit
LSB
이 주소가 여러 외부장치의 인터럽트 처리 루틴의 시작 주소가 저장되어 있는 인터럽트 벡터 어드레스표에서 자기 자신의 시작 주소가 저장되어 있는 위치를 지시하는 것이다.
⑥ CPU는 현재 PC의 값을 스택에 저장한다.
⑦ ⑤번 과정에서 만들어진 16Bit 주소가 지시하는 인터럽트 벡터 어드레스표내의 위치로부터 데이터를 읽어온다. 이 데이터는 인터럽트 처리 푸틴 시작 주소의 하위 바이트이다.
⑧ 다음 번지에서 다시 데이터를 읽어온다. 이 데이터는 인터럽트 처리푸틴 시작 주소의 상위 바이트이다.
⑨ ⑦번과 ⑧번 과정에서 읽어온 시작 주소가 PC로 들어가서 이 번지부터 인터럽트 처리 루틴의 수행이 시작하고 인터럽트 처리 루틴 내에서 시작 부분에서는 CPU레지스터들을 스택이나 보조 레지스터에 저장하고 EI명령어를 사용하여 다시 인터럽트를 enable 시킨다.
10. 인터럽트를 점검하는 방법
인터럽트를 점검하는 방법에는 Polling Interrupt, Daisy chain, Vector Interrupt등 3가지가 있다.
Polling Interrupt는 I/O을 하나씩 순차적으로 점검하여 인터럽트를 요구한 I/O를 찾아내는 방법으로 이 경우 CPU는 I/o내부의 상태 레지스터를 읽음으로써 인터럽트를 요구한 I/O를 판별해 낼 수 있다. 폴링 인터럽트 방법은 최소한의 하드웨어로서 실현시킬 수 있으나 I/O를 일일이 점검해야 하므로 소프트웨어적으로 처리시간이 길어지는 단점이 있다.
Daisy chain은 인터럽트가 요구되면 외부회로를 부가시켜 I/O끼리 인터럽트를 요구한 I/O를 찾아내는 방법을 데이지체인이라 한다. I/o가 동일 인터럽트 선에 연결되어 있을 경우 그중 하나의 I/o가 CPU에게 인터럽트를 요구하면 CPU는 인터럽트를 바을 수 있는 상태가 되면 인터럽트 처리 확인 신호를 내보낸다. CPU에 보내진 인터럽트 확인 신호는 우선 순위가 높은 I/o부터 차례로 전달되며 인터럽트를 요구한 I/O에 인터럽트 확인 신호가 도착되면 I/O는 CPU에게 인터럽트 처리에 필요한 정보를 데이터 버스를 통해 알려주게 된다.
백터인터럽트는 인터럽트가 요구되면 인터럽트를 요구한 I/O에 관계없이 항상 일정한 번지의 인터럽트 써비스 루틴을 처리하도록 하는 방식인데 항상 일정한 번지로 이동하여 처리한다는 개념으로 예를 들면 주변장치에서 인터럽트가 요구되면 무저건 0038H번지의 프로그램을 수행하는 것이다.
목차
1. 마이크로 프로세서의 구성
2. F 플래그 레지스터
3. PSW(Program Status Word)
4. SP(stack pointer)
5. 인터럽트 벡터 레지스터
6. CPU 타이밍
7. non-maskable 인터럽트
8. I / O 포트의 데이터 입출력
9. 인터럽트를 결정하는 명령어 모드
10. 인터럽트를 점검하는 방법

키워드

  • 가격1,300
  • 페이지수10페이지
  • 등록일2005.01.02
  • 저작시기2005.01
  • 파일형식한글(hwp)
  • 자료번호#281226
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니