본문 바로가기
지식창고/IT 지식

CPU 구조

by eteo 2023. 12. 18.
반응형

 

 

 

 

 

 

 

CPU 구조

 

ALU (Arithmetic logic unit) : 각종 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈)과 논리연산(AND, OR, NOT)을 수행하는 회로로 이루어진 하드웨어 모듈이다.

 

Register : CPU 내부에 위치한 기억장치로서, 액세스 속도가 컴퓨터의 기억장치들 중에서 가장 빠르다. 그러나 내부 회로가 복잡하여 비교적 큰 공간을 차지하기 때문에 지정된 용도로만 사용되는 특수 목적 레지스터들과 적은 수의 일반 목적용 레지스터들만이 포함된다.

 

Control Unit : 명령어를 해석하고, 그것을 실행하기 위한 다양한 제어 신호를 순차적으로 발생하는 하드웨어 모듈이다. CPU가 제공하는 명령어들의 수가 많아질수록 Control Unit의 내부 회로는 더 복잡해지므로 최근에는 명령어의 수를 가능한 한 줄이고 명령어 형식을 단순화한 RISC(Reduced Instruction Set Computer) 설계 개념이 많이 사용된다.

 

 

 

 

 

CPU 레지스터

 

CPU 레지스터의 유형은 매우 다양한데 대표적으로 몇개를 알아보면 다음과 같다.

 

PC (Program Counter) : 다음에 인출될 명령어의 주소를 가지고 있는 레지스터이다. 각 명령어가 인출된 이후에는 그 내용이 자동적으로 1 증가 또는 명령어 길이에 따라 주소 단위만큼 증가한다.

 

IR (Instruction Register) : 가장 최근에 인출되었던 명령어(현재 실행중인)가 저장되어있는 레지스터이다.

 

AC (Accumulator) : 연산 결과 데이터를 일시적으로 저장하는 레지스터이다. 이 누산기의 길이가 한번에 연산 처리하는 데이터의 비트 수와 같다.  

 

SR (Status Register) : 현재 CPU 의 상태를 가지고 있는 레지스터

 

MAR (Memory Address Register) : PC로부터 저장된 명령어 주소가 시스템 주소 버스로 출력 전에 일시적으로 저장된다.

 

MBR (Memory Buffer Register) : 기억장치로부터 읽혀진 데이터가 일시적으로 저장되는 버퍼 레지스터. 입출력 선들이 데이터 버스의 선과 동일하다.

 

 

 

 

 

CPU 명령어 사이클

 

CPU 명령어 사이클이란 CPU가 명령어 하나를 처리하기 위한 전체 흐름을 말한다.

인출(Fetch) → 해석(Decode) → 실행(Execute) → 기록(Writeback)

 

Fetch : 메모리상의 프로그램 카운터가 가리키는 주소의 명령어를 가져와 CPU의 IR에 적재한다. 

 

Decode : 명령어의 해석. 이 단계에서 명령어의 종류(Op-code)와 타겟(피연산자) 등을 분석한다. 

 

Execute : 해석된 명령어와 피연산자(Operand)에 따라 ALU에서 해당하는 연산을 수행한다.

 

Writeback : 처리 완료된 명령어 실행 결과(데이터)를 메모리에 기록한다.

 

명령어 사이클의 각 단계는 더 작고 세부적인 동작들로 구성되며, 이 세부 동작을 마이크로 연산(Micro-operations)이라고 부른다. 각 마이크로 연산은 CPU의 한 클럭 사이클에 실행되는 것이 일반적이다.

 

Ex. Fetch 단계의 마이크로 연산 예시

  • MAR ← PC (프로그램 카운터 내용을 메모리 주소 레지스터에 복사)
  • Memory read
  • IR ← MBR (메모리 버퍼 레지스터에 있는 명령어를 명령어 레지스터로 이동)
  • PC ← PC + 1 (다음 명령어를 위해 증가)

 

 

 

 

CPU 시스템 버스

 

주소버스 : CPU가 외부로부터 또는 외부로 발생하는 주소 정보를 전송하는 방식의 버스 형태로 선의 수는 최대 기억장치 용량을 의미한다. 예를 들어서 주소버스의 형식이 8비트 형식으로 구성되어 있다면, 해당 기억장치 요소도 2의 8승, 256개의 기억장소들의 주소지정이 가능하다. 주소가 CPU에서 기억장치(메모리 계통)또는 입출력 장치로 이동하므로, 단방향 통신을 한다.

 

데이터 버스 : 주소 버스를 사용하여 마이크로초 내에서 기억장치, 입출력 장치 등의 외부 장치들과의 데이터 통신을 하는 버스 형태로, 한번에 전송할 수 있는 비트의 수를 정의하며 양방향 통신을 한다. 폰 노이만 구조에서는 명령어와 데이터가 하나의 메모리 공간과 하나의 데이터 버스를 공유하지만, 하버드 구조에서는 명령어와 데이터가 물리적으로 분리된 메모리와 버스를 가진다.

 

제어버스 : CPU가 외부 구성 부품들을 제어하기 위한 제어 신호를 전달하는 버스로 양방향 통신을 한다.

 
 

 

 

 

CPU Pipeline

현대의 CPU는 명령어를 단계별로 나눠 동시에 실행하는 파이프라인 구조를 갖는다. 이는 명령어 처리의 효율을 높이기 위해 도입된 방식으로, 명령어들이 인출(Fetch), 해석(Decode), 실행(Execute), 기록(Writeback) 등의 단계를 병렬로 수행할 수 있게 하여 CPU의 처리량을 증가시킨다.

 

 

 

Cache Memory

CPU는 메인 메모리보다 훨씬 빠른 속도의 캐시(Cache)를 갖추고 있다. 캐시는 L1, L2, L3의 여러 단계로 구성되며, 자주 사용하는 데이터를 저장해 접근 시간을 줄인다. L1 캐시는 가장 작고 빠르며, L3는 가장 크고 느리지만 여전히 메인 메모리보다는 빠르다.

 

 

참고 :

https://velog.io/@kdh10806

https://technote.kr/310

https://namu.wiki/

반응형

'지식창고 > IT 지식' 카테고리의 다른 글

TCP/IP stack  (0) 2024.01.10
loop unroll  (0) 2023.12.19
스위치, 허브, 라우터, 공유기 차이점  (0) 2023.12.16
ISO 국가표준 규격서 무료 열람  (0) 2023.12.10
UTF-8, UTF-8(BOM) 차이  (0) 2023.11.27