일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 알고리즘트레이닝
- 다독
- algorithmtraining
- 돈
- algorithmTest
- 알고리즘공부
- 서평
- 성분
- 채권
- C
- 투자
- 자바
- 백준알고리즘
- 프로그래머스 알고리즘 공부
- 주식
- 경제
- 책을알려주는남자
- 지혜를가진흑곰
- 책알남
- 화장품
- algorithmStudy
- 알고리즘 공부
- 자바스크립트
- JavaScript
- Java
- C++
- 독서
- 독후감
- 프로그래밍언어
- 재테크
- Today
- Total
탁월함은 어떻게 나오는가?
중앙처리장치(CPU) 작동 원리와 기능에 대해서 공부해보자 본문
중앙처리장치(CPU) 작동 원리와 기능에 대해서 공부해보자
Snow-ball 2022. 5. 10. 21:47CPU란?
CPU는 컴퓨터에서 가장 핵심적인 역할을 수행하는 부분이다.
프로그램을 실행하기 위해 메인 메모리에서 명령어를 인출하여 해독하고 실행한다.
'인간의 두뇌'에 해당되며 크게 3가지로 구성된다.
1) 연산 : 덧셈, 뺄셈, 곱셈 등의 산술 연산과 논리곱, 논리합, 부정 등의 논리 연산을 수행한다. 두 가지 연산을 모두 수행하기에 산술논리연산장치라고도 불린다. 연산장치는 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보내 저장한다.
2) 제어 : 명령어를 순서대로 실행할 수 있도록 제어장치이다. 주기억장치에서 프로그램 명령어를 꺼내 해독한 다음, 해독한 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다. 또한 이들 장치가 보낸 신호를 받아 다음에 수행할 동작을 결정한다.
3) 저장 : 연산에 필요한 데이터, 연산 결과, 명령어 주소,명령어 코드 등을 임시로 저장한다. 용도에 따라 범용 레지스터와 특수 목적 레지스터로 구분된다. 중앙처리장치의 종류에 따라 사용할 수 있는 레지스터의 개수와 크기가 다른 것도 기억해두면 좋다. 범용 레지스터란 '연산에 필요한 데이터나 연산 결과를 임시로 저장'하는 레지스터이다. 반면에 특수 목적 레지스터란 '특별한 용도로 사용하는 레지스터로, 용도와 기능에 따라 구분'되는 레지스터이다.
- 연산장치
산술연산과 논리연산 수행(따라서 산술논리연산장치라고도 불린다)
연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보낸다.
- 제어 장치
명령어를 순서대로 실행할 수 있도록 제어하는 장치
주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다.
또한 이들 장치가 보낸 신호를 받아, 다음에 수행할 동작을 결정함
- 레지스터
고속 기억장치이다.
명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장
용도에 따라 범용 레지스터와 특수목적 레지스터로 구분된다.
중앙처리장치 종류에 따라 사용할 수 있는 레지스터 개수와 크기가 다름
1. 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장
2. 특수목적 레지스터 : 특별할 용도로 사용하는 레지스터
특수 목적 레지스터 중 중요한 것들
- MAR(메모리 주소 레지스터) : 읽기와 쓰기 연산을 수행할 주기억장치 주소 저장
- PC(프로그램 카운터) : 다음에 수행할 명령어 주소 저장
- IR(명령어 레지스터) : 현재 실행 중인 먀명령어 저장
- MBR(메모리 버퍼 레지스터) : 주기억장치에서 읽어온 데이터 or 저장할 데이터 임시 저장
- AC(누산기) : 연산 결과 임시 저장
CPU의 동작 과정
1. 주기억장치는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램 읽어온다
2. CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장
3. 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다.
4. 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어
명령어 세트란?
CPU가 실행할 명령어의 집합으로 중앙처리장치에 따라 형식과 종류가 서로 다르다.
- 명령어 = 연산 코드(Operation Code) + 피연산자(Operand)로 이루어짐
- 연산 코드 : 실행할 연산을 나타낸다.
- 피연산자 : 필요한 데이터 or 데이터의 저장 위치를 나타낸다.
연산 코드는 4가지 기능인 연산, 제어, 데이터 전달, 입출력 기능을 가진다.
1. 연산기능 : 사칙연산, 시프트, 보수 등의 산술연산과 논리곱, 논리합, 부정 등의 논리연산을 수행한다.
2. 제어기능 : 조건 분기와 무조건 분기 등을 사용하여 명령어의 실행 순서를 제어한다.
3. 데이터 전달 기능 : 레지스터와 레지스터 사이, 레지스터와 주기억장치 사이에서 데이터를 전달한다.
4. 입출력 기능 : 프로그램과 데이터를 주기억장치에 전달하고, 연산 결과는 출력장치로 전달한다.
피연산자는 주소, 숫자, 문자, 논리 데이터 등을 저장한다.
1. 주소 : 기억장치 혹은 레지스터의 주소가 저장된다.
2. 숫자/문자 : 숫자는 정수, 고정 소수점 수, 부동 소수점 수 및 각각의 코드로 저장되고 문자는 아스키 코드로 저장된다.
3. 논리 데이터 : 참 또는 거짓을 표현할 때 사용하며 비트나 플래그 등으로 저장된다.
CPU의 동작 과정
주기억장치는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다.
CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장한다.
주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다.
제어장치는 명령어가 순서대로 실행되도록 각 장치를 제어한다.
'[Snow-ball]프로그래밍(컴퓨터) > 프로그래밍 및 컴퓨터 개론 이론' 카테고리의 다른 글
동기(Synchronous)vs비동기(Asynchronous), 블로킹(Blocking)vs논블로킹(Non-blocking) (0) | 2022.06.06 |
---|---|
캐시(Cache)에 대해서 알아보자! (0) | 2022.06.03 |
프론트엔드(Front-End)로써 기본적으로 알면 좋을 16가지 지식 (0) | 2022.03.03 |
백준 알고리즘 답안지 제출할 때 error: class Factorial is public, should be declared in a file named 에러 발생 해결방법 (0) | 2022.01.17 |
라이브러리(Library)와 프레임워크(Framework)의 차이에 대해서 (0) | 2022.01.08 |