320x100
320x100

https://medium.com/@dudaji/ca-%EA%B6%8C%EC%88%9C%EC%9E%AC-2-cpu-ea8dd30eaaf

CPU (Central Processing Unit)

- 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치
- 구조
 : 산술논리연산장치(ALU, Arithmetic and Logical Unit)

 : 레지스터세트 (Register set)

 : 제어유니트(Control Unit)

 : 내부 버스 (BUS)

  ㆍ데이터 이동을 위한 통로

 

 

 

레지스터 세트

- PC (Program Counter, 프로그램 카운터) 

 : 다음에 인출될 명령어의 주소를 가지고 있는 레지스터

 : A주소의 명령어를 실행 중일 경우 PC내의 값은 A+1

 

- MAR (Memory Address Register, 메모리 주소 레지스터)

 : 프로그램 카운터에 저장된 명령어 주소가 주소 버스로 출력되기 전에 일시적으로 주소를 저장하는 레지스터

 

- MBR (Memory Buffer Register, 메모리 버퍼 레지스터)

 : 기억장치에 저장되거나 읽혀진 데이터를 일시적으로 저장하는 레지스터

 

- IR (Instruction Register, 명령어 레지스터)

 : 가장 최근에 인출된 명령어를 저장하는 레지스터

 

- AC (Accumulator, 누산기)

 : 연산 결과 데이터를 일시적으로 저장하는 레지스터

 

 

 

 

CPU의 연산

- 메모리에 저장된 명령어들을 순서대로 불러와서 실행하는 과정

 

- 연산의 종류 

 : 산술연산 = 사칙연산과 10진수 연산, 고정소수점 연산, 부동소수점 연산

 : 논리연산 = 크기 비교 및 참거짓에 대한 논리합, 논리곱 등의 연산

               = 논리연산, 시프트, 로테이트, 편집, 변환 

 

- 명령어 수행 단계

 1. 인출 (Fetch)

   1-1. 프로그램의 메모리 공간에서 명령어를 불러오는 단계

 

 2. 해독 (Decode)

   2-1. 불러온 명령어를 해독하여 명령어 내의 데이터 정보와 연산 정보 추출

   2-2. CPU내 각 장치에 적절한 제어 신호를 전송하여 연산 및 처리에 대해 준비

 

 3. 실행 (Execute)

   3-1. 명령어에서 추출한 데이터와 연상 정보를 이용하여 실제 연산 진행

   3-2-1. 메모리 단계로 진행

   3-2-2. 연산결과 데이터가 다음 명령어의 입력 데이터로 사용될 경우 라이트 백 단계로 진행   

 

 4. 메모리 (Memory)

   4-1. 연산결과 데이터를 메모리에 저장

 

 5. 라이트백 (Write-Back)

   5-1. 연산결과 데이터를 레지스터에 다시 적재

 

 

 

 

 

CPU의 성능 척도

- 클럭 (Clock)

 : CPU 내부의 주파수 신호로, 이 신호에 데이터가 동기화 되어 명령어 동작

 : ex) 2.0Ghz = 초당 20억개의 명령어 처리 가능

 

 

- 코어 (Core)

 : CPU의 역할을 수행하는 블럭

 

 : 싱글코어

  = 코어가 하나인 형태

  = 비용이 저렴하고 프로그래밍이 간단

  = 보수작업이나 고장이 발생할 경우 시스템이 멈춤

  = 수 많은 작업을 잘 분산시키지 못해 속도가 느림

 

 : 멀티코어

  = 여러개의 코어를 병렬적으로 가지는 형태

  = 프로그램 작성시 멀티코어를 활용하도록 작성 필요

  = 멀티코어의 종류

   ㆍ듀얼 / 트리플 / 쿼드 / 헥사 / 옥타 / 데카 / 도데카 / 헥사 데시멀

 

 

- MIPS (Million Instruction Per Second)

 : 1초 동안 처리할 수 있는 명령의 개수를 100만 단위로 표시

 

 

- FLOPS (Floating-point Operations Per Second)

 : 1초 동안 처리할 수 있는 부동 소수점 연산의 횟수

 

 

 

 

CPU의 명령어 수행과정

 https://velog.io/@ckstn0777/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-9htxi9jo

Fetch Cycle

1. PC -> MAR 

  1-1. PC에 저장된 인출될 명령어의 메모리 주소 값을 MAR에 저장

       (PC의 데이터를 외부의 주소버스로 전송하기 위해서는 MAR을 거쳐야함)

 

2. MAR -> MBR

  2-1. 버스를 통해 MAR에 저장된 메모리 주소에 접근하여 해당 주소의 데이터를 MBR에 저장

  2-2. PC내의 메모리 주소값에 +1

 

3. MBR -> IR

  3-1. MBR내의 데이터를 해석하기 위해 IR로 데이터 전송

 

 

 

 

 

https://velog.io/@ckstn0777/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-9htxi9jo

Execute Cycle

1-1. 데이터 이동 (memory)

  1-1-1. CPU와 기억장치 및 입출력 장치간 데이터 이동

   ex) LOAD addr

 

1-2. 데이터 처리

  1-2-1. 데이터에 대한 산술, 논리연산 수행

   ex) STA addr

 

1-3. 데이터 저장 (write back)

  1-3-1. 연산결과 데이터나 입력장치로 부터 읽어들인 데이터를 기억장치에 저장

   ex) ADD addr

 

1-4. 프로그램 제어

  1-4-1. 프로그램의 실행순서 결정

   ex) JUMP addr

 

 

 

 

 

Reference

 

CPU 명령어 수행 과정

Instruction Cycle = Fetch Cycle + Execute CycleFetch Cycle : 메모리로부터 명령어와 데이터를 processor로 가져오는 단계Execut Cycle : processor가 수행하는 단계Instruction Cycle를 좀

velog.io

 

 

2.CPU의 구조와 기능(1)

​CPU는 기억장치에 올라와 있는 프로그램의 명령어들을 실행함으로써 프로그램을 수행합니다. 프로그램...

blog.naver.com

 

 

[CA/권순재] #2 CPU

스터디 참가자가 스터디를 진행하며 학습한 내용을 정리한 내용입니다.

medium.com

 

300x250
728x90

'Computer Science > OS' 카테고리의 다른 글

CPU - 제어유닛 (Control Unit)  (0) 2021.02.05
CPU - 산술 연산 장치 (ALU)의 구조와 기능  (0) 2021.02.05
프로세스와 운영체제  (0) 2021.02.03
스레드  (0) 2021.02.03
프로세스와 메모리  (0) 2021.02.03