오늘은 컴퓨터를 이루고 있는 요소 중에
비싸고 중요한 CPU를 살펴볼게요 ㅎㅎ
중앙처리장치란?
대략? 요렇게 생겼어요
너무 오랜만에 기초부터 다루는거라..ㅎㅎ 예전 포스팅을 수정하고 재업한건데
처음 컴퓨터를 배웠을 때가 새록새록 기억이나네요 ㅎㅎ
formal하게 정리해보면 CPU를 이렇게 설명할 수 있습니다.
# 중앙처리장치(CPU: Central Processing Unit)는 명령어의 해석과 자료의 연산, 비교 등의 처리를 제어하는 컴퓨터시스템의 핵심장치이다.
# 다양한 입력 장치로부터 자료를 받아서 처리한 후 그 결과를 출력장치로 보내는 일련의 과정을 제어하고 조정하는 일을 수행한다.
# 프로그램 명령어를 실행하는 일을 담당하는 중앙처리장치는 제어장치, 연산장치, 레지스터들의 세 부분으로 구성된다.
보면 다 '제어'라는 느낌의 단어가 다 들어가있죠?
즉 요아이는 컴퓨터의 두뇌예요. 내 머리가 내 팔, 다리, 행동, 생각 등을 제어하듯이
CPU가 컴퓨터한테 입력이 들어오면 처리해서 어떤 행동을 야기시키고, 명령을 해석해서 뭔가 작업을 하던가 제어하던가 !
핵심 두뇌라 생각하면 됩니다.
마치 머리가 인간의 가운데 있는거처럼~~
가운데 저 아이가 CPU고 컴퓨터는 대략 큰 요소로 생각하면 저렇게 구성되어있습니다.
우리가 키보드로 위아래버튼을 누르면 모니터로 캐릭터가 막 움직이는 일이 너무 당연했었잖아요?
그 입력들을 CPU가 다 받아서 판별하고 해석해서 모니터에 명령을 내리는거예요 ㅎㅎ
CPU는 센트럴프로세서라고 불리기도 하고 프로세서라고 간편하게 부르기도 해요
CPU는 인간의 몸에 비유하면 뇌에 해당하기 때문에 컴퓨터에서 모든 일을 맡고 있는 없어서는 안될 핵심 부품입니다.
CPU는 왜 두뇌에 해당된다는 별명을 갖게 되었을까~~?
-> 모든 컴퓨터의 작동 과정들은 CPU의 제어를 받아야만 이루어질 수 있어요
우리 몸이 뇌의 컨트롤을 받는 것과 같죠
친구가 나한테 심부름을 부탁하면 내가 그 부탁을 듣고 뇌가 명령을 내리는 것처럼 (뇌가 우리의 몸을 통제하고 명령하는 것처럼) CPU도 컴퓨터를 통제하고 사용자, 즉 우리가 명령을 내린 것을 해독해서 컴퓨터에게 명령을 내려요. 우리 뇌와 비슷하죠?!
아까 CPU가 제어장치, 연산장치, 레지스터들로 구성되어있다 언급했었죠?
우리 뇌가 기억능력이 있는 것처럼 CPU도 임시 기억 장소가 있습니다. --> 레지스터!
뇌는 명령을 이해할 뿐만 아니라 계산도 하고 문제도 풀고 수리능력도 있죠? --> 연산장치!
제어장치는 말 그대로 제어하는 역할을 담당합니다.
당연히, CPU의 성능이 좋으면 컴퓨터도 성능이 좋겠죠?
CPU 성능 평가 단위
MIPS (Million Instruction Per Second) |
1초 동안 처리할 수 있는 명령의 개수를 100만 단위로 표시함 |
FLOPS (FLoating-point Operations Per Second) |
1초 동안 처리할 수 있는 보동 소수점 연산의 횟수를 표시함 |
클럭 (Clock) |
1초 동안 발생하는 클럭 펄스의 주파수를 표시함 |
메가헤르츠 (MHz) |
중앙 처리 장치가 동작하는 클럭 속도의 단위로, 전기적 주파수의 단위를 표시함 |
중앙 처리 장치 구성
앞에서 다 설명했던 내용 복습하는 겁니당
CPU 내부 연결이 추가적으로 보이네요?
당연히 이 세개의 요소들이 왔다갔다 상호작용을 하면서 일을 해야겠죠? 서로 신호를 왔다갔다 전달해주는 회선(?)을 버스라고 해요. 이어주고 전달하는 연결 통로라고 생각하면 됩니다.
중앙처리장치 내부에 자료 버스와 제어 버스라는 것이 연결되어 있습니다.
그럼 각각 제어장치, 연산장치, 레지스터 하나하나 자세히 살펴볼게요
1. 제어 장치 (CU: Control Unit)
- 레지스터 사이의 데이터 전송을 감시하고 ALU(연산 장치)의 동작을 지시하는 장치
- 전체 컴퓨터 시스템의 작동을 통제 지시하는 장치로, 적잘한 순서로 명령을 꺼내고, 각 명령을 해석하여 그 해석에 따라서 산술논리 연산 장치나 기타 부분으로 적절한 신호를 보내는 장치이다.
- 기억 장치에 축적되어 있는 일련의 프로그램 명령을 순차적으로 꺼내 이것을 분석 해독하여 각 장치에 필요한 지령 신호를 주고, 장치 간의 정보 조작을 제어하는 역할을 수행한다.
♣♣♣
'control 제어하다 통제하다' 의 뜻을 가지고 있는
제어 장치는 말 그대로 컴퓨터의 모든 장치들을 제어 하고 통제 즉 감독! 하는 역할을 합니다.
해석하고 명령하고 그 것을 신호로 전달하고 등등~ 제어하고 말 그대로라 어려운게 없습니다.
제어 장치의 내부 구성 장치를 한 번 훑고 넘어갑시다
이 자세한 부분은 나중에 '컴퓨터 구조'과목에서 보게 될거예요.
- 구성 장치 -
프로그램 카운터 (Program Counter) : 다음에 수행할 명령어의 번지(주소)를 기억하는 레지스터
명령 해독기 (Instruction Decoder) : 수행해야 할 명령어를 해석하여 부호기로 전달하는 회로
부호기 (Encoder) : 명령 해독기에서 전송된 명령어를 제어 필요한 신호로 변환하는 회로
명령 레지스터 (IR : Instruction Register) : 현재 수행 중인 명령어를 기억하는 레지스터
번지 해독기 (Address Decoder) : 명령 레지스터로부터 보내온 번지(주소)를 해석하는 회로
번지 레지스터 (MAR : Memory Address Register) : 주소를 기억하는 레지스터
기억 레지스터 (MBR : Memory Buffer Register) : 내용(자료)을 기억하는 레지스터
2. 연산 장치 (ALU: Arithmetic and Logical Unit)
- 명령어를 실행하기 위한 마이크로 연산을 수행하는 장치
- 연산에 필요한 자료를 입력받아 산술, 논리, 관계, 이동(Shift), 연산 등 다양한 실제적 연산을 수행하는 장치
(덧셈, 뺄셈, 나눗셈,, 이런거가 산술 연산입니다. 논리는 둘이 같다, 다르다 등 여러개가 있는데.. )
Arithmetic : 산술 산수 Logical 논리적인 이라는 의미들로
제어 장치가 명령을 해주면 그것을 계산해주는 역할을 하는 똑똑이 입니다 :)
연산 장치의 내부 구성 장치를 한 번 훑고 넘어갑시다
이 자세한 부분 또한 역시 나중에 '컴퓨터 구조'과목에서 보게 될거예요.
- 구성 장치 -
가산기 (Adder) : 2진수 덧셈을 수행하는 회로
보수기 (Complementer) : 뺄셈을 수행하기 위하여 입력된 값을 보수로 변환하는 회로
누산기 (ACCumulator) : 중간 연산 결과를 일시적으로 기억하는 레지스터
데이터 레지스터 (Data Register) :연산한 데이터를 기억하는 레지스터
프로그램 상태 워드 (PSW : Program Status Word) : 명령어 실행 중에 발생하는 CPU의 상태 정보를 저장하는 상태 레지스터 (Status Register)
인덱스 레지스터 (Index Register) : 유효 번지를 상대적으로 계산할 때 사용하는 레지스터
베이스 레지스터 (Base Register) : 유효 번지를 절대적으로 계산할 때 사용하는 레지스터
3. 레지스터 (Register)
*한 비트를 저장할 수 있는 플립플롭의 모임으로, 중앙 처리 장치 내에 있는 소규모의 임시 기억 장소이다.
* 레지스터의 크기는 워드(Word) 크기 및 메모리 용량과 관계가 있다.
* 레지스터는 메모리 중에서 가장 속도가 빠르다.
내부 버스가 연산장치와 레지스터를 연결해줍니다.
영어 Register 란 기록, 명부라는 뜻이 있죠.
레지스터는 말그대로 임시 기억 장치 입니다. 임시 기억 장치는 뭐냐? 잠깐만 기억을 해주는 것이죠
그래서 컴퓨터를 끄면 날라가는 기억들이예요.
영구히 저장하는 기억장치들은 그러면 당연히 따로 있겠죠??
나중에 알겠지만 그것은 주기억 장치 ROM, 그것을 좀 보조해주는 보조기억 장치들이 있습니다.
기출 문제
1. 다음 중 컴퓨터의 연산 장치 (ALU)에 사용되는 레지스터로 옳지 않은 것은?
1) 상태 레지스터
2) 프로그램 카운터
3) 누산기
4) 보수기
정답: 2번
프로그램 카운터는 제어장치에 해당되는 레지스터이다.
2. 다음 중 컴퓨터가 현재 실행하고 있는 명령을 끝낸 후 다음에 실행할 명령의 주소를 기억하고 있는 레지스터는?
1) 명령 레지스터 (Instruction Register)
2) 프로그램 계수기 (Program Counter)
3) 부호기 (Encoder)
4) 명령 해독기 ( Instruction Decorder)
정답: 2번
1) 현재 수행중인 명령을 기억하는 레지스터
3) 명령해독기에서 전송된 명령어를 제어에 필요한 신호로 변환하는 회로
4) 수행해야 할 명령어를 해석하여 부호기로 전달하는 회로
CPU를 이해하는 데 조금이라도 도움이 되셨나요?!
시간 내서 열심히 작성한 포스팅입니다. 많이 얻어가셨으면 좋겠어요. 오늘 좋은 하루 보내세요 !
'별걸다하는 IT > 기타IT' 카테고리의 다른 글
.zi파일 확장자, ZI파일 무엇이고 어떻게 압축을 푸는가? ex파일? (0) | 2019.10.15 |
---|---|
[html/css] element 또는 요소(div) 가운데 정렬시키는 몇 가지 방법 (position, margin, flex 등등) (12) | 2019.10.09 |
개발자라면 알아야 하는 것들, 읽으면 좋은 글과 조언 (4) | 2019.02.16 |
프로그래밍 언어 종류(C. Java, php 등 10개)와 사용도, 순위 (2) | 2019.02.16 |
[자바, C/C++, C#, 파이썬, javascript, 리눅스 등등 언어관련] 웹 사이트에서 프로그래밍 연습하기, 코딩하기 (1) | 2019.02.13 |
최신 댓글