디지털 형태의 정보를 입력 받아 메모리(기억장치)에 저장된 명령어 목록(프로그램)에 따라 처리, 결과를 출력하는 일종의 고속 전자 계산기이다. 입력 장치를 통해 정보를 입력받아 메모리에 저장 -> 메모리에 저장한 정보를 프로그램에 제어에 따라 인출, 산술장치나 논리장치에서 처리 -> 처리한 정보를 출력장치에 표시하거나 디스크(보조기억장치)에 저장
정보: 명령어와 데이터로 구분
명령어: 실행할 산술, 논리 연산 동작을 명시하는 문장
프로그램: 작업 하나를 수행하기 위한 명령어 집합
명령어 구성
1 2 3
연산코드, 오퍼랜드로 구성 0, 1의 이진코드화 되어 있으며 프로세서에 따라 길이가 달라진다. 실행 전 메인 메모리에 저장, 한번에 하나씩 프로세서에 전송되어 해석 및 실행한다.
연산코드: 명령어의 가장 기본 부분, 프로세서가 실행할 연산을 지정
오퍼랜드: 명령어가 처리 할 데이터나 데이터가 저장된 주소에 관한 정보(레지스터, 메모리)를 표시
누산기: 메모리에서 읽은 오퍼랜드를 레지스터에 저장된 데이터와 연산 시 사용하는 프로세서 레지스터 프로그램의 명령어 수행 중에 산술 및 논리 연산의 결과를 일시적으로 저장한다.
실행 과정
메모리에서 명령어 레지스터로 이동 저장된 다음 명령어를 인출
인출한 명령어 해석 다음 명령어를 지정하기 위해 프로그램 카운터 변경
명령어가 메모리에 있는 워드 한 개 사용 하려면, 사용 장소를 결정하여 오퍼랜드를 인출, 필요 시 프로세서 레지스터로 보냄
명령어 실행
명령어 실행 과정 저장
다음 명령어를 실행하기 위해 1번으로 돌아감.
사이클
인출 사이클 -> 간접 사이클 -> 실행 사이클 -> 인터럽트 사이클
인출 사이클: 메인 메모리에서 명령어를 읽어 명령어 레지스터에 저장하기까지의 단계
실행 사이클: 명령어 레지스터의 명령어를 해석하고 필요한 신호를 발생시켜 실제로 명령어를 처리
인터럽트 사이클: 프로세스가 정상적인 순차 제어에서 벗어나면 인터럽트 사이클 발생
인터럽트
1 2 3
컴퓨터에 설정된 장치에서 프로세서로 보내는 하드웨어 신호로, 현재 실행 중인 프로그램의 수행을 미루고 다른 프로그램의 수행을 요구하는 명령 외부 장치의 동작과 자신의 동작을 조정할 수 있는 수단으로 인터럽트를 사용한다. 인터럽트는 크게 인터럽트 요청, 인터럽트 서브 루틴으로 구성한다.
단일 회선: 인터럽트 요청이 가능한 모든 장치를 공통으로 프로세서에 연결
다중 회선: 모든 장치가 서로 다른 고유 회선으로 프로세서와 연결 인터럽트 요청 시 어느 장치에서 요청하였는지 바로 판별 가능
인터럽트 처리과정
1 2
인터럽트 요청 신호 발생 시 실행 중인 프로그램을 메모리에 저장하고 인터러블 서비스 프로그램으로 분기한다. 인터럽트 루틴의 수행 완료 후 인터럽트 발생 시킨 프로그램에 제어를 돌려준다.