[컴퓨터구조] 중앙처리장치-2
명령어 사이클
- 한 개의 명령어를 CPU에서 수행하는데 필요한 전체 수행 과정
명령어 사이클의 개념
- 컴퓨터의 기본적인 기능은 기억장치에 기억되어 있는 프로그램을 실행하는 것
- 실행되는 프로그램은 명령어로 구성
- 실행되는 프로그램은 명령어로 구성
-
따라서 중앙처리장치는 기억장치에 저장되어 있는 명령어를 인출하여 실행함으로써 프로그램을 수행
- 이러한 명령어의 수행과정을 명령어 사이클이라 함
명령어 사이클의 종류
- 인출 사이클
- 실행 사이클
- 간접 사이클
- 인터럽트 사이클
명령어 수행 과정
- 명령어 인출
- 기억장치로부터 명령어를 가져오는 과정
- 인출된 명령어의 주소는 PC에 들어있고, 인출된 명령어는 IR로 옮겨짐
- 기억장치로부터 명령어를 가져오는 과정
- 명령어 해석
- 명령어를 해독하는 과정
- 명령어의 종류에 따라 필요한 경우 오퍼랜드의 인출이 일어남
- 명령어를 해독하는 과정
- 명령어 실행
- 지정된 연산을 실행하는 과정
- 간접주소지정인 경우 기억장치로부터 데이터가 들어있는 유효주소를 인출
-
이 과정에서는 명령어 인출과정을 통하여 IR 레지스터에 실린 명령어를 해독하고, 해독한 명령어에 따라 필요한 연산이 수행 됨
- 수행되는 연산들의 기능
- 데이터의 이동 기능 : 기억장치와 CPU 혹은 입출력장치 사이에 데에터의 이동
- 데이터의 처리 기능 : 산술 혹은 논리연산을 통한 데이터 처리
- 데이터의 저장 기능 : 연산결과를 기억장치에 저장
- 제어 기능 : 프로그램의 실행 순서를 결정
- 데이터의 이동 기능 : 기억장치와 CPU 혹은 입출력장치 사이에 데에터의 이동
- LOAD 명령어
- 데이터 이동을 위한 명령어
- 원하는 기억장치의 데이터를 CPU의 내부 레지스터인 누산기로 가져오는 명령어
- 실행 사이클
- 누산기로 이동할 데이터가 들어있는 주소가 MAR에 실림
- MAR 레지스터에 있는 주소의 데이터가 MBR에 실림
- MBR에 들어있는 데이터를 누산기로 읽어옴
- 누산기로 이동할 데이터가 들어있는 주소가 MAR에 실림
- 데이터 이동을 위한 명령어
- ADD 명령어
- 데이터 처리 명령어
- 누산기에 있는 데이터와 기억장치에 있는 데이터를 더한 후, 그 결과를 누산기에 저장하는 명령어
- 실행 사이클
- 더해질 데이터가 들어있는 기억장치의 주소가 MAR에 실림
- MAR에 있는 기억장치 주소에 해당하는 데이터가 MBR에 실림
- 누산기에 있는 데이터와 MBR에 있는 데이터가 더해지고, 결과가 누산기에 저장됨
- 더해질 데이터가 들어있는 기억장치의 주소가 MAR에 실림
- 데이터 처리 명령어
- STORE 명령어
- 연산결과를 갖고 있는 누산기의 데이터를 기억장치에 저장하는 동작을 수행하는 명령어
- 실행 사이클
- 저장되어질 주소가 MAR에 실림
- 누산기에 있는 데이터가 MBR에 실림
- MBR에 있는 데이터가 MBR에 있는 주소로 저장됨
- 저장되어질 주소가 MAR에 실림
- 연산결과를 갖고 있는 누산기의 데이터를 기억장치에 저장하는 동작을 수행하는 명령어
- 분기 혹은 점프 명령어
- 제어기능을 수행하는 명령어
- 프로그램의 순서를 바꾸는 명령어
- 다음에 수행할 명령어는 PC가 가지는 주소의 명령어가 아니라, 분기 혹은 점프 명령어에 있는 주소에 해당하는 명령어
- 실행 사이클
- 분기 혹은 점프 명령어에 있는 주소가 PC에 실린다
- 분기 혹은 점프 명령어에 있는 주소가 PC에 실린다
- 제어기능을 수행하는 명령어
- 지정된 연산을 실행하는 과정
- 저장
- 명령어 실행단계에서 수행된 연산 결과가 레지스터 혹은 기억장치에 쓰여지는 과정
- 명령어 실행단계에서 수행된 연산 결과가 레지스터 혹은 기억장치에 쓰여지는 과정
- 인터럽트 처리
-
명령어 실행 도중에 입출력장치와 같은 다른 장치에 의해 인터럽트가 들어오면 그에 합당한 서비스를 제공하는 과정
- 인터럽트 사이클
- PCU의 정상적인 동작 중에 인터럽트 요청이 발생했을 때 실행되는 과정
- 실행 사이클이 끝난 직후에 인터럽트가 발생했는지를 검사
- 발생했다면 인터럽트 서비스 루틴(ISR)이 시작되도록 하는 것
- PCU의 정상적인 동작 중에 인터럽트 요청이 발생했을 때 실행되는 과정
- 인터럽트 발생
- 프로그램이 잘못 실행된 경우
- 하드웨어 결함
- I/O장치 등의 요청
- 프로그램이 잘못 실행된 경우
-