프로그래밍/TIL(Today I Learned)

7강 중앙처리장치(1)

가라멜 2018. 11. 8. 15:14
반응형

1. 중앙처리장치의 개요

- 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치

- 프로그램이 수행되는 전반적인 과정을 제어

- 처리장치와 제어장치로 구성

- 산술논리연산장치 , 레지스터세트, 제어장치, 내부버스로 구성


2. 중앙처리장치의 내부 구조

- 산술논리연산장치(ALU)

- 구성요소 : 산술연산장치, 논리연산장치, 시프터, 상태 레지스터, 보수기

- 상태레지스터 : 연산결과의 상태를 나타내는 플래그를 저장하는 레지스터

- 보수기 : ALU 내의 데이터에 대해 보수연산을 수행

- 레지스터 세트

- CUP내의 레지스터 집합

- 기억장치 중 속도가 가장 빠름 > CUP 내에서의 빠른 처리속도를 지원

- 빠른 속도를 갖지만 가격이 비쌈 > CPU 내의 레지스터 수 제한

- 제어장치

- 프로그램에 의한 연산의 순서대로 기억장치, 연산장치, 입출력장치에 제어신호 발생

- 동작 

- 1단계 : 명령어를 해독하고 , 명령어 레지스터에 저장

- 2단계 : 명령어 레지스터에 저장된 명령어 실행

- 내부버스

- ALU와 레지스터 간의 데이터 전송을 위한 통로

- 데이터 버스와 제어 버스로 구성

- 외부장치와 데이터 전송

- 시스템 버스와 연결

- 시스템 버스 : 데이터, 주소, 제어 버스로 구성


3. 레지스터

- 레지스터의 종류

- 범용 레지스터(general)

- 데이터를 일시적으로 저장 > R1, R2 로 표현

- 특수 레지스터(special)

- 특수한 기능을 수행 >PC, SP, IR, XR 등

<범용 레지스터>

- 데이터 저장과 같은 일반적인 목적

- CPU 내부에 있는 소규모의 일시적인 기억장치, 프로그램의 진행 도중 가까운 시간 내에 사용할 데이터나 연산 결과를 일시적으로 기억시키는데 사용

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

- 형태 : 일반적인 구조 / 스크래치패드 메모리 구조

<특수 레지스터>

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

- 다음에 수행되어질 명령어가 있는 주소를 갖고 있음 > 즉, 데이터가 저장되어 있는 기억장치의 주소를 지정

- 현재 처리하려고 하는 데이터를 인출한 후에는 자동적으로 1 증가(다음 주소)

- 프로그램 카운터의 비트 수는 기억장치의 용량에 따라 결정 

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

- 프로그램의 수행 중 가장 최근에 기억장치로부터 인출되어진 명령어를 갖고 있음

- 명령어 레지스터의 비트 수는 명령어의 연산코드의 비트 수와 같다.

- 누산지(AC : Accumulator)

- 데이터를 일시적으로 저장하는 레지스터

- 입력장치로부터 데이터를 받아들이거나, 출력장치로 데이터를 전송하는데 사용

- 산술 및 논리연산이 이루어질 경우에는 오퍼랜드나 연산 결과를 일시적으로 기억하는 레지스터

- CPU가 연산을 수행 한 후 그 결과는 반드시 누산기에 저장

-기억장치 주소 레지스터(MAR : Memory Address Register)

- 기억장치 주소를 임시 저장하는 레지스터

- 기억장치 버퍼 레지스터(MBR : MEmory Buffer Register)

- 기억장치로 쓰여질 데이터나 혹은 기억장치로부터 읽혀질 데이터를 임시로 저장

- 스택 포인터(SP : Stack Pointer)

- 스택 주소 지정방식에서 사용

- 스택 영역의 번지를 지정해주는 포인터

- 스택 영역은 실제로 데이터가 피신되는 기억장소로써 기억장치에 위치

- 프로그램 카운터와 같은 크기의 비트수를 가짐


4. 명령어 사이클의 개념

- 컴퓨터의 기본적인 기능을 기억장치에  기억되어 있는 프로그램을 실행하는 것

> 실행되는 프로그램은 명령어로 구성

- 중앙처리장치는 기억장치에 저장되어 있는 명령어를 인출하여 실행함으로써 프로그램을 수행

> 이러한 명령어의 수행과정을 명령어 사이클이라 함


> 중앙처리장치에서의 명령어 수행과정은

- 기억장치와 중앙처리장치의 레지스터들의 동작을 통해 살펴볼 수 있음


>> 한 개의 명령어를 CPU에서 수행하는데 필요한 전체 수행과정

명렁어 사이클의 종류

- 인출 사이클 / 실행 사이클 / 간접 사이클 / 인터럽트 사이클


반응형

'프로그래밍 > TIL(Today I Learned)' 카테고리의 다른 글

9강 중앙처리장치(3)  (0) 2018.11.08
8강 중앙처리장치(2)  (0) 2018.11.08
13강 표준 태그 라이브러리(1)  (0) 2018.11.08
12강 표현언어  (0) 2018.11.06
15강 예외처리  (0) 2018.11.06