CPU란 기억장치에 저장되어 있는 프로그램 코드인 명령어들을 실행함으로써 프로그램 수행이라는 컴퓨터의 기본적인 기능을 수행
1. 명령어 인출(Instruction fetch)
기억장치로부터 명령어를 읽어옴
2. 명령어 해독(Instruction decode)
수행해야 할 동작을 결정하기 위하여 명령어를 해독
3. 데이터 인출(Data fetch)
명령어 실행을 위하여 데이터가 필요한 경우 기억장치 혹은 I/O 장치로부터 데이터를 읽어옴
4. 데이터 처리(Data process)
데이터에 대한 산술적 혹은 논리적 연산을 수행
5. 데이터 저장(Data store)
수행한 결과를 저장
1~2는 모든 명령어들에 대하여 공통으로 수행, 3~5는 명령어에 따라 필요한 경우에만 수행
CPU의 구성요소는 다음과 같다.
1. 산술논리연산장치 (Arithmetic and Logical Unit: 이하 ALU라고 함)
곱셈, 뺄셈, 곱셈 및 나눗셈과 같은 산술 연산들과 AND, OR, NOT과 같은 논리 연산들을 수행하는 회로들로 이루어진 하드웨어모듈
2. 레지스터 세트(register set)
CPU 내부에 위치한 기억장치로써, 액세스 속도가 컴퓨터 기억장치중에 가장 빠름. 그러나 내부회로가 복잡하여 큰 공간을 차지하기 때문에 특수 목적용 레지스터들과 적은 수의 일반 목적용 레지스터만 포함
3. 제어 유니트(control unit)
프로그램 코드(명령어)를 해석하여 명령어 실행에 필요한 각종 정보들의 전송 통로와 방향을 지정해주고 CPU 내부 요소들과 시스템 구성 요소들의 동작 시간을 결정 이들을 조정하기 위한 제어 신호들의 종류와 발생시간이 명령어 마다 달라 CPU가 제공하는 명령어들이 많아질수록 제어 유니트의 내부 회로가 복잡해짐. 이를 소프트웨어로 해결하기 위해 마이크로프로그래밍(microprogramming)이 나왔으나 이 방법은 명령어 실행시간이 길어지는 단점이 있어 최근에는 명령어 수를 가능한 줄이고 하드웨어만으로 명령어를 실행할 수 있는 RISC(Reduced Instruction Set Computer) 설계 개념이 많이 이용되고 있음
CPU의 내부 버스
CPU의 내부 버스는 ALU와 레지스터들 간의 데이터 이동을 위한 데이터 선들과 주소 선들, 그리고 제어 유니트로부터 발생되는 제어 신호들을 전송하는 선들로 구성, 외부의 시스템 버스와 직접 연결되지 않아 반드시 버퍼 레지스터 혹은 인터페이스 회로를 통하여 시스템 버스와 접속
명령어 사이클(instruction cycle)
CPU가 한 개의 명령어를 실행하는 데 필요한 전체 과정 명령어 인출(instruction fetch) 단계와 명령어 실행(instruction execution) 단계로 이루어져 있고 이 두단계를 각각 부사이클로 구분하여 나타낼것 인출 사이클(fetch cycle)과 실행 사이클(execution cycle)이 있음
그렇군요