Santos의 개발블로그

중앙처리장치(CPU) 본문

CS(Computer science)/컴퓨터 구조&운영체제

중앙처리장치(CPU)

Santos 2020. 1. 11. 13:37

- 중앙처리장치 도식화 -

중앙처리장치(CPU)

 1. 주기억장치에서 프로그램 명령어와 데이터를 읽어와서 처리하고, 명령어의 수행순서를 제어한다. 

 2. 크게 연산(처리)장치, 제어장치, 레지스터로 구성되어있다.

 3. 기억장치로부터 명령어를 인출하고, 인출된 명령어를 해독하여 필요한 연산을 수행하면서 기억장치를 통해 데이터에 접근하는데 필요한 기억장치 주소와 제어신호를 제공한다.

연산(처리)장치   

 1. 산술연산과 논리연산을 수행하는 장치이다. 

 2. 연산에 필요한 데이터를 레지스터에서 가져오고, 연산결과를 다시 레지스터로 보내는 역할을 수행한다. 

 3. 산술/논리 연산장치, 레지스터 세트(범용 레지스터, 특수 레지스터), 내부버스로 구성되어 있다.

제어장치

 1. 명령어를 순서대로 실행할 수 있도록 제어하는 장치이다. 

 2. 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 명령어 레지스터에 저장한다. 그 후 명령어 레지스터에 저장된 명령어를 실행하여 필요한 제어신호를 기억장치, 연산장치, 입출력장치로 보낸다. 

 3. 다른 장치들이 보낸 신호를 받아, 다음에 수행할 동작을 결정하는 역할을 수행한다.

 4. 프로그램 카운터, 명령어 레지스터, 명령어 해독기(타이밍 회로, 제어논리)로 구성되어 있다. 

내부버스

 1. CPU의 내부버스는 산술/논리장치(ALU)와 레지스터 간의 데이터 전송을 위한 데이터 버스와 제어장치로부터 발생하는 제어신호를 위한 버스로 구성된다. 

2. 내부버스는 입출력장치나 기억장치와 같은 외부장치에 데이터 전송을 하기 위해 시스템 버스인 주소버스, 데이터 버스, 제어버스를 이용한다. 

3. 내부버스는 시스템 버스와 직접 연결되지 않으며 버퍼 레지스터나 시스템 버스 인터페이스 회로를 통해 시스템 버스와 연결된다. 

레지스터

CPU에서는 주기억장치로부터 읽어 온 명령어와 데이터를 임시적으로 보관할 수 있는 장치가 필요하며, ALU에서 처리된 결과 데이터를 임시로 보관할 수 있는 저장장치도 필요한데, 이를 임시적으로 저장하는 장치 

1. 고속 기억장치로써, 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장하는 장치이다. 

2. 용도에 따라 범용레지스터와 특수목적 레지스터로 구분된다. 

 

  가. 범용 레지스터

연산에 필요한 데이터나 연산 결과를 임시로 저장한다. 

   1) 데이터를 연산할 때 메모리로부터 데이터를 인출할 경우 호출시간이 많이 걸리기 때문에 CPU 내부의 레지스터에 데이터를 기억시켜 두고 연산한다. 

 

  나. 특수목적 레지스터

특별한 용도로 사용하는 레지스터이다. 

   1) 주소를 기억하는 레지스터 

PC (Program counter): 다음에 수행 할 명령어의 주소를 저장한다. 즉, 데이터가 저장되어 있는 기억장치의 주소를 지정해 주는 레지스터이며, 현재 처리하려고 하는 데이터를 인출한 후에는 자동적으로 1 증가하여 다음에 수행해야 할 명령어가 저장된 기억장치 주소를 지정한다. 
MAR (Memory address register): 다음에 수행될 명령어를 인출하기 위하여 현재 프로그램 카운터에 들어 있는 내용(주소)이 시스템버스의 주소버스로 출력되기 전에 일시적으로 저장하는 주소 레지스터이다.
스택 포인터(SP): 스택 주소지정방식에서 사용되는데 스택의 최상위(TOP)을 지정한다. 스택은 스택 포인터와 스택 영역으로 나워지는데 스택 포인터는 CPU 내부에 있는 레지스터로서 스택 영역의 번지를 지정해 주는 포인터이고, 스택 영역은 실제로 데이터가 존재하는 장소로 기억장치에 있다.

  2) 데이터를 기억하는 레지스터

MBR (Memory buffer register): 주기억장치에서 읽어온 데이터를 임시로 저장한다. 
누산기(Accmulator): 산술 연산 및 논리연산이 이루어질 경우에는 오퍼랜드나 연산결과를 임시로 저장한다. CPU가 연산을 수행한 후 그 결과는 반드시 누산기에 저장한다.  
명령어 레지스터(Instruction register): 현재 실행 중인 명령어를 저장한다. 

중앙처리장치(CPU) 동작과정

- CPU 처리과정 -

(1) 보조기억장치에서 저장된 프로그램을 읽거나, 입력장치에서 입력받은 데이터를 주기억장치에서 읽는다. 

(2) 주기억장치가 읽어온 데이터를 중앙처리장치(CPU)가 읽고 처리한 후 다시 주기억장치로 보낸 후 저장한다. 

(3) 주기억장치는 연산된 데이터를 출력장치에 보내거나 보조기억장치에 저장한다. 

 * 제어장치는 (1)~(3) 과정에서 명령어가 순서대로 잘 실행되도록 제어하는 역할을 수행한다. 

명령어 세트 

 1. CPU가 실행 할 명령어들의 집합을 말한다. 

 2. 연산코드와 피 연산자로 구성된다. 

  가. 연산코드: 실행할 연산

  나. 피 연산자: 필요한 데이터 or 저장 위치 

 

 3. 연산코드는 연산, 제어, 데이터 전달, 입출력기능을 가진다. 

 4. 피연산자는 주소, 숫자, 문자, 논리데이터를 저장한다. 

 5. CPU가 주기억장치에서 한번에 하나의 명령어를 인출하여 실행하는데, 이러한 일련의 활동을 '명령어 사이클' 이라고 한다. 

 6. 명령어 사이클은 인출, 실행, 간접, 인터럽트 사이클로 나뉜다. 

명령어 사이클

 컴퓨터의 기본적인 기능은 기억장치에 기억되어 있는 프로그램을 실행하는 것이며, 실행된 프로그램은 명령어로 구성되어 있다. 따라서 CPU는 기억장치에 기억되어 있는 명령어를 인출하여 실행함으로써 프로그램을 수행한다. 이러한 CPU에서 명령어 수행과정을 살펴보면 다음과 같다. 

 

1. 명령어 인출 

2. 명령어 해석

3. 명령어 실행 

4. 저장

5. 명령어 처리 

명령어 인출 사이클

기억장치로부터 명령어를 가져오는 것을 말한다. 인출된 명령어의 주소는 프로그램 카운터(PC)에 들어 있고, 인출된 명령어는 명령어 레지스터(IR)로 옮겨진다. 

- 명령어 인출과정 도식화 -

1. 명령어 인출 과정 

 가. 프로그램 카운터는 다음에 실행될 명령어를 읽을 수 있도록 카운터의 내용을 1 증가시킨다. 

 나. 기억장치로부터 인출된 명령어는 기억장치 버퍼 레지스터를 경유하여 명령어 레지스터에 저장된다. 

 다. 명령어 레지스터에 저장된 명령어는 명령어 해독기를 통하여 해석하고 필요한 동작을 수행한다.  

 

2. 마이크로 연산 표현

 1. MAR <- PC

 2. MBR <- M[MAR], PC <- PC+1

 3. IR <- MBR

명령어 실행 사이클

명령어 실행 사이클은 명령어를 실행하는 단계이다. 명령어 레지스터에 실린 명령어를 해독하고, 해독한 명령어에 따라 필요한 연산을 수행한다. 

수행되는 연산의 종류 

 1. 데이터 이동 기능

 2. 데이터 처리 기능 

 3. 데이터 저장 기능 

 4. 제어기능

 

데이터 이동 기능  

기억장치와 CPU 혹은 입출력장치 사이에 데이터의 이동, LOAD 명령어를 사용한다.

- LOAD 과정 도식화 -

LOAD 명령어: 데이터 이동을 위한 명령어로서 원하는 기억장치의 데이터를 CPU의 내부레지스터인 누산기로 가져오는 명령어

1. 명령어 수행 과정 

 가. 누산기로 이동할 데이터가 들어 있는 주소가 MAR에 실린다. 

 나. MAR에 있는 주소의 데이터가 MBR에 실린다.

 다. MBR에 들어 있는 데이터를 누산기로 읽어온다. 

 

2. 마이크로 연산 표현 

 1. MAR <- IR(Address)

 2. MBR <- M[MAR]

 3. AC <- MBR

 

데이터 처리 기능

산술연산 또는 논리연산을 통한 데이터 처리 

- ADD과정 도식화 -

ADD 명령어: 데이터 처리 명령어로서 누산기에 있는 데이터와 기억장치에 있는 데이터를 더한 후 그 결과를 누산기에 저장하는 명령어이다. 

1. 명령어 수행 과정 

 가. 더해질 데이터가 들어 있는 기억장치의 주소가 MAR에 실린다. 

 나. MAR에 있는 기억장치주소에 해당하는 데이터가 MBR에 실린다. 

 다. 누산기에 있는 데이터와 MBR에 있는 데이터가 더해지고, 결과가 누산기에 저장된다. 

 

2. 마이크로 연산 표현

 1. MAR <- IR(Address)

 2. MBR <- M[MAR]

 3. AC <- AC+MBR

 

데이터 저장기능 

연산결과를 기억장치에 저장 

- STORE 도식화 -

STORE 명령어: 연산결과를 갖고 있는 누산기의 데이터를 기억장치에 저장하는 동작을 수행한다. 

1. 명령어 수행과정 

 가. 저장될 주소가 MAR에 실린다. 

 나. 누산기에 있는 데이터가 MBR에 실린다. 

 다. MBR에 있는 데이터가 MAR에 있는 주소로 저장된다. 

 

2. 마이크로 연산 표현

 1. MAR <- IR(Address)

 2. MBR <- AC

 3. M[MAR] <- MBR

 

제어 기능

프로그램의 실행순서를 결정 

- 점프 명령어 도식화 - 

분기(branch)혹은 점프(jump)명령어: 제어기능을 수행하는 명령어로서 프로그램 순서를 바꾸는 명령어이다. 

1. 명령어 수행과정

 가. 점프 명령어가 있는 주소가 PC에 실린다. 

 

2. 마이크로 연산

 1. PC<-IR(Address)


< 참고자료 >

 

https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4

[도서] 컴퓨터구조  - 김형근, 손진곤 지음 -

 

<Computer structures> chapter 2 중앙처리장치(CPU) end>


 

'CS(Computer science) > 컴퓨터 구조&운영체제' 카테고리의 다른 글

처리장치  (0) 2020.01.13
파이프라이닝  (0) 2020.01.11
폰 노이만 구조 vs 하버드 구조  (0) 2020.01.11
인터럽트  (0) 2020.01.06
Context Switch  (0) 2020.01.06
Comments