티스토리 뷰

컴퓨터 구조론/CPU

CPU의 구조

로또_ 2019. 9. 22. 15:19

CPU란?

중앙처리장치(CPU: Cnetral Processing Unit)는 사람의 두뇌와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치입니다. 중앙 처리장치는 제어장치, 연산장치, 레지스터 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있습니다.

 

 


 

CPU의 구성장치

 

 

제어장치(control unit)

제어장치(Control Unit)는 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치입니다. 제어장치는 명령 레지스터에서 읽어들인 명령어를 해독하여 해당하는 장치에게 제어 신호를 보내 정확하게 수행하도록 지시합니다.

 

 

연산장치(ALU, Arithmetic)

연산장치(ALU, Artihmetic)는 제어장치의 명령에 따라 실제로 연산을 수행하는 장치입니다. 연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동등이 있으며 연산장치는 가산기, 누산기, 보수기, 데이터 레지스터, 오버플로 검출기, 시프트레지스터등으로 구성되어 있습니다.

 

 

레지스터(Register)

레지스터(Register)는 CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장소입니다.

 

 

버스(bus)

버스는  CPU, 메모리, I/O 장치 등과 상호 필요한 정보를 교환하기 위해 연결된 공동의 전송선입니다. 컴퓨터 내부 회로에서 버스선(Bus Lines)을 사용하는 목적은 결선수를 줄이기 위해서입니다. 메모리나 입 출력 장치가 제대로 동작하려면 버스를 통해 전달되는 제어 신호 어드레스 신호 및 데이터 신호의 상호 시간적 관계가 잘 유지되어야 합니다.

 


 

cpu의 구조 : 프론트엔드, 백엔드

위에서 CPU라고 표시한 부분은 크게 프론트엔드백엔드라는 두 부분으로 구분됩니다. CPU가 읽은 명령어를 연산장치가 해석할 수 있는 더 간단한 코드로 전환해주는 부분을 프론트엔드라 하고 프론트엔드가 해석해 준 코드와 데이터를 받아 실제로 연산을 수행하는 부분을 백엔드라고 합니다.

 

 

 

프론트엔드의 중요성


실제로 연산을 수행하는 것이 백엔드이기 때문에 CPU의 성능은 곧 백엔드의 성능일 꺼라 생각하기 쉽지만, 사실 CPU가 읽어들인 명령어가 가장 많이 시간을 보내는 곳은 프론트엔드의 '디코드' 단계입니다. 프론트엔드는 명령어 인출, 디코드, 제어(백엔드로 디코드된 명령어 코드를 이송)의 세 부분으로 나뉩니다. 저장 장치에서 명령어와 데이터를 인출(Fetch)해서 내부적으로 처리 가능한 포맷으로 변환(Decode)한 뒤 제어 유닛이 명령어를 정렬해 수행 유닛에 전달해 주고 수행 유닛이 이를 처리하는 것. 이것이 현대의 컴퓨터가 작업을 처리하는 방식입니다.

실질적으로 계산이 일어나는 수행 유닛(백엔드)은 CPU 성능이 절대적으로 중요하지만 백엔드가 아무리 빨라도 프론트엔드가 명령어를 제때 공급해주지 못하면 소용이 없습니다. 1999년 AMD 애슬론의 등장과 함께 현대 CPU의 백엔드는 충분한 대역폭을 갖게 되었고 이에 따라 오늘날의 CPU의 성능 차는 대개 프론트엔드에 의해 갈리게 됩니다. 또한 그 중에서도 파이프라인의 가장 많은 스테이지를 점유하는 디코딩 과정은 특히 중요합니다.


 

 

 

 

반응형