-
CPU 용어컴퓨터 공학 기초/용어 2020. 3. 12. 02:37
프로세서란 ?
프로세서란 어떤 것을 처리하는 기능을 가진 하드웨어 또는 소프트웨어를 뜻한다. 하드웨어의 프로세서는 기억, 연산, 제어의 3대 기능을 처리하는 장치 (칩)을 나타낸다. 따라서 CPU, MPU, MCU는 모두 프로세서의 일부이다.
CPU : 연산 기억, 제어등의 역할에 추가적으로 주변 하드웨어를 제어하는 역할을 한다. 범용적이고 큰 일을 처리하며 고속프로세서이다. 클럭 속도가 가장 높다.
MPU : 초소형 연산처리 장치이다. 주변 장치가 필요하며 가벼운 운영체제를 설치할 수 도있고 네트워크 통신 등을 할 수 있는 모델이 많이 출시 됨
ex 라즈베리파이
MCU : 집적 회로 ( 하나의 반도체 기판에 다수의 능동소자와 수동수자를 초소형으로 집적 시킨 구조, 즉 서로 분리 될 수 없는 구조로 만든 완전한 회로기능을 갖춘 기능소자를 이야기 한다. ) 안에 프로세서와 메모리 입출력 버스등의 최소한의 컴퓨팅 요소를 내장한 초소형 컨트롤러
쉽게 말해 MPU에 I/O와 메모리를 결합한 on chip 형태로 한 칩에 모든 기능을 넣은 대신 성능을 낮췄다고 생각하면 된다.
ex 아두이노
코어란 ?
각종 연산을 하는 CPU의 핵심요소이며, CPU 내부에는 코어 말고도 컨트롤러, 캐시메모리, 레지스터와 같은 것들이 들어있다. 코어는 CPU의 이러한 요소들중 매우 핵심이 되는 장치로 CPU안에서 일을 하는 부품을 말한다. 즉 CPU의 연산을 속도를 높이기 위해서는 코어의 기능을 향상시켜야 한다.
MCU : 회사
CPU : 임원진
코어 : 사장
과 같이 생각하면 이해가 쉽다. 회사라는 큰 조직이 잘 돌아 갈려면 그 아래에 있는 사장의 역할을 가진 임원진이 역할을 신속하고 효율적으로 처리하여야 한다.
그리고 이와 같이 MCU라는 장치가 빠르게 동작하기 위해서는 코어라는 요소가 신속하고 빠르게 일을 처리해야한다. 또한 코어라는 요소는 CPU에 포함 된다.
멀티코어 혹은 다중코어
것은 멀티코어(multi-core), 혹은 다중코어 CPU는 두 개 이상의 독립 코어를 단일 집적 회로로 이루어진 하나의 패키지로 통합한 것을 말합니다. 현재 데스크탑PC로는 헥사코어(hexa-core, 6개)까지 상용화되어 있다.
즉 쉽게 이야기하여 코어 하나가 엘레베이터 하나라고 가정했을 때 엘레베이터가 하나 임으로 해당 엘리베이터의 최대 탑승인원을 초과하게 되면 다음 사용자는 기다려야 한다. 하지만 멀티코어는 엘레베이터가 여러개 존재하는 것이다. 따라서 엘리베이터 하나가 탑승인원이 꽉 찬다 하더라도 사용자는 기다릴 필요없이 다른 엘레베이터에 탑승하면 되는 것이다.
옛날의 경우에는 코어 자체의 성능을 높이는 즉 CPU를 아파트로 보고 코어를 엘레베이터로 따지자면 엘레베이터의 최대 탑승인원수를 증가시키는 방법으로 CPU를 개발했다. 하지만 이러한 코어 자체 성능의 향상에는 한계가 있었고 이 한계를 대체할 수 있는 방법이 멀티코어가 된것이다. CPU라는 아파트 안에 코어라는 엘레베이터를 여러개 두는 방식이라고 이해하면 편할 것이다.
클럭
ARM , X86 등의 아키텍처에 대해서 이야기 할 때 클럭이라는 용어가 나온다. 이 클럭이라는 것은 단순한 주파수의 신호이다.
컴퓨터의 CPU 또는 디지털회로가 일정한 속도로 작동하기 위해서는 일정한 간격으로 전기적 진동(pulse)을 공급 받아야 한다. 즉 CPU를 비롯한 컴퓨터의 모든 부품들은 특정한 신호에 맞추어 동작을 하는데, 이 특정한 신호를 가리키는 말이 바로 '클럭'이라는 단어이다.
보통 한 신호 뒤에 다음 신호가 올 때까지의 간격을 한 단위로 잡으며, 클럭 스피드는 보통 Hz로 표시한다. Hz는 초당 몇 번의 신호가 있는지를 나타내는 단위이다. 즉 1초에 1번 작동하는 것을 1Hz라고 한다. 예를 들어 75MHz라면 초당 7천 5백만 번의 사이클로 0과 1의 디지털 신호를 발생한다는 것을 의미한다.
이는 현 PC의 CPU에 대한 상태를 나타낸 것이다. 위의 자료에서 그래프를 보면 일정한 크기의 주파수가 계속 흐르고 있다 이는 즉 CPU가 일정한 신호로 동작하고 있는 것이다. 따라서 해당 그래프에서 나오는 주파수 대역이 클럭인 것이다. 이때 만약 CPU의 사용량을 늘리면 어떻게 될까 ? 당연히 CPU가 동작하기 위해선 일정한 간격으로 전기적 진동(pulse)을 공급 받아야 하며 따라서 CPU 사용량의 증가에 요구하는 전기적 진동은 높아 질 것이며 당연히 그래프는 상승할 것이다.
이전 까지 일정하게 흐르고 있던 신호가 갑자기 확 올라가는 것을 확인 할 수 있다. 바로 이와 같이 CPU가 1초당 처리할 수 있는 연산의 속도를 주파수의 신호로써 나타낸 개념이 클럭이다.
CPU의 성능을 상승시킬 수 있는 방법은 크게 2가지 이다.
첫번 째 CPU 의 클럭을 늘린다 => CPU에게 공급 되는 전기적 신호의 수를 증가시키는 것이다. 하지만 클럭이 높아짐에 따라 발열과 같은 문제가 발생하게 되며 이러한 문제로 인해 더이상 CPU의 클럭을 높이기 보다는 CPU의 코어 구조를 효율적으로 짜서 CPU의 사용 (CPU 안에있는 코어의 구조를 변경) 효율을 극대화 하는 방법으로 개발하고 있다. 이와 같이 CPU 코어의 구조를 아키텍처라고 한다.
두번 째 CPU 안에 코어를 여러개 다는 경우 => CPU가 처리 할 수 있는 명령의 수를 늘린다. 기존의 싱글 코어는 1개의 명령 밖에 수행하지 못한다 따라서 다음번 명령은 첫번째 명령이 수행 될때 까지 기다려야한다. 이러한 문제점을 해결 할 수 있는 방법중 하나가 첫번 째 방법처럼 하나의 명령의 따른 수행 연산 속도를 증가시킨 것이다. 다른 방법으로는 명령을 처리할 수 있는 코어를 여러개 달아서 하나의 CPU가 명령을 여러개 수행할 수 있게 하는 것이다. 따라서 이와 같은 방법은 멀티태스킹에 아주 적합하다.