zkvn99

[운영체제] CPU 본문

Computer Science/운영체제

[운영체제] CPU

zkvn1103 2023. 9. 10. 21:45

CPU (Core Processing Unit) 혹은 중앙 처리 장치라고 불리는 CPU는 하드웨어 구성 요소이다.

 

CPU의 4대 기능 (하드웨어)

  • 기억 기능(Register) : 고속의 메모리로 데이터와 중간 결과를 저장 (레지스터와 플래그)

 

  • 연산 기능(Arithmetic Logic Unit - ALU) : CPU의 연산을 처리 (산술 연산, 논리 연산 등을 수행)

ALU는 레지스터에 저장된 데이터를 가져와 연산을 수행하고 결과를 다시 레지스터에 저장함

 

  • 전달 기능(Bus) : 데이터와 명령어가 CPU 내,외부 장치 사이를 전달하는 통로 (연산 장치와 레지스터들 사이의 통로)

 

  • 제어 기능(Control unit - CU) : 명령을 해석하고 실행 순서를 관리하며, 명령어를 디코딩하여 해당하는 동작을 수행

 

CPU의 작동

 

1. 명령어 해석 (Fetch)

프로그램 카운터를 사용하여 다음에 실행할 명령어의 주소를 메모리에서 읽어옴 - 명령어 레지스터에 저장

 

2. 명령어 해독 (Decode)

IR에서 가져온 후, CPU는 명령어 디코더를 사용하여 명령어를 해석 (어떤 동작을 수행해야 하는지 결정, 필요한 레지스터나 메모리 위치를 확인) - 명령어의 오퍼랜드를 추출하고, 필요한 데이터를 로드하거나 저장하기 위한 준비

더보기

Register - ADD R1,R2,R3 (R1, R2, R3는 오퍼랜드 R2 + R3 를 R1에 저장)

Memory - LOAD R1, [0x1000] ([0x1000]는 메모리 주소이며 오퍼랜드, 메모리 주소에서 데이터를 읽어 R1에 저장)

 

3. 명령어 실행 (Execution)

명령어가 수행되는 단계로 명령어의 유형과 동작에 따라 다양한 하위 단계로 나뉜다

더보기

데이터 전송 명령어 (LOAD - 데이터를 메모리에서 레지스터로 로드, STORE - 데이터를 레지스터에서 메모리로 저장), 산술 연산 명령어 (ADD - 덧셈, SUB - 뺄셈), 논리 연산 명령어 (AND - 논리 AND 연산, OR - 논리 OR 연산),   

분기 명령어 (조건 분기, 무조건 분기)

 

주로 연산 결과나 중간 계산 결과와 같은 임시 데이터는 레지스터에 저장, 프로그램이나 데이터를 메모리에 영구적으로 저장하거나 읽을 때, 메모리에 저장 - 프로그래머가 작성한 코드와 명령어에 따라 달라짐

 

용어 정리

* 레지스터 : CPU 내부에 있는 고속 메모리 요소, 데이터를 일시적으로 저장하거나 중간 결과를 보관하는 데 사용

* 플래그 :  CPU의 상태를 나타내는 특수한 종류의 레지스터, 연산 결과를 평가하고 제어 명령을 실행할 때 사용

* 데이터 버스 : 데이터와 명령을 이동시키기 위한 공통 회선의 집합 (데이터 전송을 위한 통로)

* 주소 버스 : 메모리 또는 I/O의 특정 Port 번지를 지정하기 위한 주소값의 전달 통로

* 제어 버스 : 제어 신호를 전송하기 위한 통로

* 명령 레지스터 (IR - Instruction Register) : 현재 실행 중인 명령어를 저장하는 레지스터, 메모리에서 명령어를 읽어오면, IR에 해당 명령어를 저장 - 명령어 해석 단계에서 사용

* 디코더 (Decoder) : IR에 저장된 명령어를 해석하고, 어떤 동작을 수행해야 하는지 결정 -

* 순서 제어 회로 : CPU의 동작 순서를 제어하며, 명령어 실행 순서와 다른 하드웨어 구성 요소 간의 조율을 담당 - PC를 업데이트, 명령어의 실행을 시작하거나 중지하는 데 사용

* 프로그램 카운터 (PC - Program Counter) : CPU 내부의 레지스터, 현재 실행 중인 프로그램의 명령어 위치를 가리키는 역할 - 다음에 실행할 명령어의 주소를 저장하고 이를 순차적으로 업데이트하여 프로그램의 흐름을 제어

* 오퍼랜드 : 명령어에서 작업을 수행하기 위해 필요한 데이터나 값을 나타내는 요소 (피연산자)

'Computer Science > 운영체제' 카테고리의 다른 글

[운영체제] Memory  (0) 2023.09.13
[운영체제] 운영체제란?  (0) 2023.08.07