💻 컴퓨터 개론

중앙처리장치

ji-hyun 2020. 5. 11. 19:46
  • 중앙처리장치 CPU

중앙처리장치는 메모리에 저장된 프로그램과 자료를 이용하여 실제 작업을 수행하는 전자회로 장치이다. 이 중앙처리장치는 자료의 연산을 수행하는 연산장치와 컴퓨터의 작동을 제어하는 제어장치, 그러고 연산에 필요한 자료를 임시로 저장하는 레지스터로 구성된다.

 

중앙처리장치 내부에도 자료 버스와 제어 버스가 연결되어 있다. 자료 버스는 연산장치와 레지스터 간 연결 경로이다. 이 자료 버스는 외부 버스와 구별하여 내부 버스 또는 시스템 버스라고 한다. 제어 버스는 레지스터와 연산장치에 읽기, 쓰기 또는 여러 종류의 명령 제어 신호를 전달하는 경로이다. 

 

 

 

 

 

1. 연산장치 ALU

 

산술연산과 논리연산

연산장치(ALU)는 더하기, 빼기, 나누기, 곱하기 등의 산술연산 모듈과 NOT, OR, XOR 등의 논리연산 모듈로 구성된 회로이다.

 

 

레지스터 연산

연산장치에서 이용하는 피연산자 하나 또는 두 개일 수 있으며, 중앙처리장치의 임시 기억장소인 누산 레지스터와 자료 레지스터에 저장된 자료연산에 참여할 피연산자로 이용한다. 연산장치의 결과는 다시 누산 레지스터에 저장되어 필요하면 주기억장치에 저장되거나 다른 연산에 이용될 수 있다. 두 수의 더하기를 수행한다면 다음과 같이 두 레지스터 피연자의 연산을 연산장치가 제어장치의 신호를 받아 실행한다. 다음은 누산 레지스터와 자료 레지스터의 합을 연산장치에서 더하여 그 결과를 다시 누산 레지스터에 저장하는 표현 방식이다.

 

 

 

 

 

 

2. 제어장치

제어장치는 중앙처리장치를 구성하는 요소이다. 산술 및 논리 연산에 요구되는 작업을 연속적으로 수행하는 신호를 보냄으로써 연산장치와 레지스터가 명령을 수행하게 하는 장치이다. 이 제어장치는 여러 개의 해독기와 제어기로 구성되며 명령어의 실행에 필요한 연산 순서와 연산 종류 등을 종합적으로 제어한다. 즉 제어장치는 실행할 명령어를 해석하여 해석된 명령어에 해당되는 제어 신호를 발생/처리한다. 신체에 비유하자면 '뇌'와 같은 역할을 하므로 제어장치는 중앙처리장치에서 매우 중요한 요소이다.

 

 

 

 

 

 

3. 레지스터

 

중앙처리장치 내부의 저장장소

중앙처리장치도 주기억장치로부터 읽어 온 명령어와 자료를 저장할 임시 저장장소가 필요하다. 또한 연산장치에서 처리 결과를 저장할 임시 저장소도 필요하며, 다음에 실행ㅎㄹ 명령어의 주소값을 저장할 장소도 필요하다.

중앙처리장치는 컴퓨터가 명령을 수행하는 과정을 처리하기 위해 여러 개의 레지스터를 갖는다. 중앙처리장치 내부의 레지스터는 어떠한 저장장치보다 참조 속도가 빠르며 가격이 비싸므로 그 수가 제한적이다. 

 

 

주요 레지스터의 종류와 기능

  • DR(Data Register) 자료 레지스터: 연산에 필요한 피연산자를 저장하는 레지스터
  • AR(Address) 주소 레지스터: 현재 접근할 기억장소의 주소를 기억하는 레지스터
  • AC(Accumulator) 누산 레지스터: 연산장치의 입출력 데이터를 임시적으로 기억하는 기억하는 레지스터(연산의 중간결과를 저장)
  • IR(Instruction) 명령어 레지스터: 현재 수행 중인 명령어를 저장하고 있는 레지스터
  • PC(Program Counter) 프로그램 카운터: 다음에 실행할 명령어의 메모리 주소가 저장된 레지스터
  • TR(Temporary) 임시 레지스터: 임시로 자료를 저장하는 레지스터로 범용 레지스터라고도 부름

 

 

 

 

 

4. 명령어 처리 과정

 

CPU와 주기억장치 간의 자료 전송

명령어 처리과정에서 다음과 같이 CPU와 주기억장치 간의 다양한 자료 전송이 발생한다. 즉 주기억장치의 명령어와 자료가 중앙처리장치의 여러 임시 저장장소인 레지스터로 전송되어 명령어를 처리한 후, 처리 결과가 다시 주기억장치로 전송되는 과정을 거친다.

 

 

인출, 해독 실행의 기계 주기

중앙처리장치는 하나의 명령어를 실행하기 위하여 인출, 해독, 실행의 세 과정을 거친다. 그러므로 명령어의 집합인 프로그램을 실행하려면 이러한 세 과정을 반복해야 한다. 이러한 과정을 기계 주기라 한다.

 

인출 단계에서 제어 장치가 프로그램 카운터에 있는 주소로 다음에 수행할 명령어를 명령 레지스터에 저장한다. 이후 다음 명령어를 수행하기 위해서 프로그램 카운터를 하나 증가시킨다.

 

해독 단계에서 제어 장치는 레지스터에 있는 명령어를 연산 부분과 피연산 부분으로 해독한다. 만일 피연산 부분이 있는 명령어라면 피연산 부분의 메모리 주소를 주소 레지스터에 저장한다.

 

실행단계에서 중앙처리장치는 각 구성요소에게 작업 지시를 내린다. 작업 내용이 메모리의 자료를 레지스터로 가져오는 내용이라면 이러한 작업을 수행하는 회로를 작동시킨다. 또한 산술 논리 연산이 필요한 작업 내용이면 이에 적합한 연산장치의 회로를 작동시켜 실행 과정을 수행한다. 작업에 따라 연산 결과인 레지스터의 내용을 메모리에 저장하기도 한다.

하나의 명령어 실행이 종료되면 프로그램 카운터가 가리키는 다음 명령어를 가지고 다시 기계 주기를 반복한다. 이러한 과정을 반복하는 것이 프로그램을 실행하는 과정이다. 

 

 

 

 

 

'소프트웨어 중심사회의 컴퓨터 개론- 강환수, 조진형, 신용현, 강환일'이라는 책을 읽고 개인적으로 공부하며 정리해서 올린 글입니다.

 

 

 

 

 

 

 

 

 

'💻 컴퓨터 개론' 카테고리의 다른 글

ASP, PHP, JSP 가 무엇인지 모르겠는 사람들을 위해  (0) 2020.06.19
TCP/IP 에 대하여  (0) 2020.06.17
OSI 모델과 네트워크 장치  (0) 2020.06.17
데이터베이스  (0) 2020.06.02
컴퓨터 구성요소  (0) 2020.05.11