[컴퓨터구조] 중앙처리장치-1
중앙처리장치의 개요
- 중앙처리장치 (CPU)
- 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치
- 프로그램이 수행되는 전반적인 과정을 제어
- 처리장치와 제어장치로 구성
- 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치
중앙처리장치의 내부 구조
- 구성요소
- 산술논리연산장치
- 레지스터 세트
- 제어장치
- 내부버스
- 산술논리연산장치
- 산술논리연산장치(ALU)
- 산술연산장치
- 논리연산장치
- 시프터
- 상태 레지스터
- 연산결과의 상태를 나타내는 플래그를 저장하는 레지스터
- 연산결과의 상태를 나타내는 플래그를 저장하는 레지스터
- 보수기
- ALU내의 데이터에 대해 보수 연산을 수행
- ALU내의 데이터에 대해 보수 연산을 수행
- 산술연산장치
- 레지스터 세트
- CPU내의 레지스터 집합
- 기억장치 중 액세스 속도가 가장 빠르다
- 따라서 CPU에서의 빠른 처리속도를 지원
- 빠른 속도를 갖지만 가격이 비싸므로, CPU내의 레지스터의 수는 제한된다
- CPU내의 레지스터 집합
- 제어장치
- 프로그램에 의한 연산의 순서대로 기억장치, 연산장치, 입출력장치에 제어신호를 발생한다
- 제어장치의 동작
- 명령어를 해독하고 명령어 레지스터에 저장
- 명령어 레지스터에 저장된 명령어 실행
- 명령어를 해독하고 명령어 레지스터에 저장
- 프로그램에 의한 연산의 순서대로 기억장치, 연산장치, 입출력장치에 제어신호를 발생한다
- 내부버스
- ALU와 레지스터 간의 데이터 전송을 위한 통로
- 데이터 버스와 제어버스로 구성
- 데이터 버스와 제어버스로 구성
- 외부장치(기억장치, 입출력장치)와 데이터 전송
- 시스템 버스와 연결
- 시스템 버스 : 데이터, 주소, 제어 버스로 구성
- 시스템 버스와 연결
- ALU와 레지스터 간의 데이터 전송을 위한 통로
레지스터
레지스터의 종류
- 범용 레지스터
- 데이터를 일시적으로 저장
- 데이터를 일시적으로 저장
- 특수 레지스터
- 특수한 기능을 수행
- 특수한 기능을 수행
- 범용 레지스터
- 데이터 저장과 같은 일반적인 목적을 위한 레지스터
- CPU 내부에 있는 소규모의 일시적인 기억장치로, 프로그램의 진행 도중 가까운 시간 내에 사용할 데이터나 연산결과를 일시적으로 기억시키는데 사용
-
데이터를 연산할 때 메모리로부터 데이터를 인출할 경우 호출시간이 많이 걸리기 때문에 CPU 내부의 레지스터에 데이터를 기억시켜두고 연산한다
- 범용 레지스터의 형태
- 데이터 저장과 같은 일반적인 목적을 위한 레지스터
- 특수 레지스터
- 주소를 기억하는 레지스터 (AR)
- 프로그램 카운터(PC)
- 다음에 수행되어질 명령어가 있는 주소를 갖고 있다
- 즉, 데이터가 저장되어 있는 기억장치의 주소를 지정
- 현재 처리하려고 하는 데이터를 인출한 후에는 자동적으로 1 증가
- 프로그램 카운터의 비트 수는 기억장치의 용량에 따라 결정된다
- 다음에 수행되어질 명령어가 있는 주소를 갖고 있다
- 기억장치 주소 레지스터 (MAR)
- 기억장치 주소를 임시 저장하는 레지스터
- 기억장치 주소를 임시 저장하는 레지스터
- 스택 포인터(SP)
- 스택 주소지정방식에서 사용
- 스택 영역의 번지를 지정해 주는 포인터
- 스택 영역은 실제로 데이터가 피신되는 기억장소로써 기억장치에 위치
- 프로그램 카운터와 같은 크기의 비트 수를 가짐
- 스택 주소지정방식에서 사용
- 제어 주소 레지스터 (CAR)
- 제어기억장치에 있는 마이크로명령어의 주소를 나타냄
- 제어기억장치에 있는 마이크로명령어의 주소를 나타냄
- 인텍스 레지스터 (XR)
- 인덱스된 주소지정방식에서 사용
- 명령어의 주소 영역에 대한 상대적인 변윗값을 저장하는데 사용
- 인덱스된 주소지정방식에서 사용
- 베이스 레지스터 (BR)
- 베이스 레지스터 주소지정방식에서 사용
- 명령어의 주소 부분에 저장된 변윗값에 더해질 기준주소를 저장하는데 사용
- 베이스 레지스터 주소지정방식에서 사용
- 프로그램 카운터(PC)
- 명령을 기억하는 레지스터 (IR)
- 명령어 레지스터 (IR)
- 프로그램의 수행 중 가장 최근에 기억장치로부터 인출되어진 명령어를 갖고 있다
- 명령어 레지스터의 비트 수는 명령어의 연산코드의 비트 수와 같다
- 명령어 레지스터에 있는 명령어는 명령어 해독기(디코더)에 의해 해독된 후 그 명령어에 해당되는 제어신호가 각 구성요소에 전달된다
- 프로그램의 수행 중 가장 최근에 기억장치로부터 인출되어진 명령어를 갖고 있다
- 명령어 레지스터 (IR)
- 데이터를 기억하는 레지스터 (DR)
- 기억장치 버퍼 레지스터 (MBR)
- 기억장치로 쓰여질 데이터나 혹은 기억장치로부터 읽혀질 데이터를 임시로 저장하는 레지스터
- 기억장치로 쓰여질 데이터나 혹은 기억장치로부터 읽혀질 데이터를 임시로 저장하는 레지스터
- 누산기 (AC)
- 데이터를 일시적으로 저장하는 레지스터
- 입력장치로부터 데이터를 받아들이거나, 출력장치로 데이터를 전송하는데 사용
- 산술 및 논리연산이 이루어질 경우에는 오퍼랜드나 연산 결과를 일시적으로 기억하는 레지스터
- CPU가 연산을 수행 한 후 그 결과는 반드시 누산기에 저장
- 데이터를 일시적으로 저장하는 레지스터
- 기억장치 버퍼 레지스터 (MBR)
- 주소를 기억하는 레지스터 (AR)