CPU = 컴퓨터의 두뇌
프로세서는?
중앙 처리 장치(CPU)는 명령어를 해석하는 컴퓨터의 한 부분이다.
제어장치, 연산장치, 레지스터, 데이터 버스로 구성된 디지털 시스템의 핵심 부분으로, 프로그램을 기억 장치로부터 읽어 연산 처리, 비교처리, 데이터 전송, 편집, 변환, 테스트와 분기 등의 데이터를 처리하고, 각종 장치를 구동하는 역할을 담당한다.
CPU는 기본적으로 모든 계산과 프로세싱을 수행하는데 사용되며, 이는 컴퓨터가 운영체제, 어플리케이션 등을 실행하는데 필요한 다양한 명령어를 해석하고 실행하는 역할
주로 컴퓨터가 소프트웨어와 하드웨어에서 받은 지시사항을 수행하며, 모든 계산과 데이터 처리를 담당
ex) 그래픽 프로세서 유닛(GPU)은 3D 그래픽 렌더링 같은 특정 작업에 특화
프로세서의 성능은 클럭 속도, 코어 수, 캐시 크기, 명령어 세트, 및 기타 요소에 의해 결정된다. 클럭 속도는 프로세서가 초당 얼마나 많은 명령을 처리할 수 있는지를 나타내며, 일반적으로 헤르츠(Hz) 단위로 측정된다. 코어 수는 프로세서가 동시에 수행할 수 있는 작업의 수를 결정한다. 캐시는 프로세서가 빠르게 접근할 수 있는 작은 메모리 영역으로, 프로세서 성능 향상에 중요한 역할
마이크로프로세서(micro-processor)
1개의 조그마한 IC 칩 속에 CPU의 모든 내용을 내장한 칩을 말한다. 이와 같이 CPU의 모든 내용이 하나의 칩 속에 내장됨으로써 가격이 훨씬 싸고, 부피가 줄어든다는 장점이 있다.
마이크로프로세서는 가격이 저렴하고 크기가 작아 이전에는 경제성이 없던 구조를 설계 할 수 있도록 해 주었고, 컴퓨터 설계 기법에 변혁을 가져왔다.
마이크로프로세서는 범용 컴퓨터의 CPU나 특수용 컴퓨터의 프로세서로뿐만 아니라, 교통 신호 제어, 개인 가정용 컴퓨터, 계측 제어기기, 사업용 업무 처리 등 다양한 방면에 응용되고 있다.
프로세서에는 수행할 수 있는 기본 연산들의 레퍼토리
- 산술 연산: 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 기본적인 산술 연산을 수행 고급 프로세서는 부동 소수점 연산이나 복소수 연산도 지원할 수 있다.
- 논리 연산: AND, OR, NOT, XOR과 같은 논리 연산을 수행 비트 수준에서 동작하며, 프로그램의 조건부 실행이나 데이터의 특정 부분을 조작하는 데 사용된다.
- 비교 연산: 두 값의 대소 비교를 수행 일반적으로 이 연산의 결과는 조건부 분기 명령어에서 사용되어 프로그램의 실행 흐름을 제어한다.
- 비트 연산: 비트 이동(shift), 회전(rotate), 그리고 비트의 설정이나 제거 등, 비트 수준에서 작동하는 연산을 수행
- 데이터 전송: 메모리와 프로세서 간에 데이터를 이동시키는 연산 LOAD와 STORE 명령어가 포함된다.
- 제어 흐름: 프로그램의 실행 흐름을 제어하는 연산 분기(jump), 조건부 분기(branch), 서브루틴 호출(call), 반환(return) 등이 포함됩니다.
프로세서와 계산기 모두 내부적으로 메모리를 사용하여 데이터를 저장하고 접근한다. 두 경우 모두, 메모리는 중간 결과를 저장하거나, 다음 연산에서 사용할 데이터를 저장하는 데 사용된다.
프로세서의 경우, 이 메모리는 주로 레지스터라는 형태로 존재한다. 레지스터는 CPU 내부에 위치하며 매우 빠른 접근 속도를 가지고 있다. 또한, 프로세서는 주 기억장치(예: RAM)로부터 데이터를 불러오거나, 결과를 주 기억장치로 다시 저장하는 등의 작업을 수행한다. "LOAD"와 "STORE" 연산을 통해 이루어진다.
계산기의 경우, 메모리는 보통 계산 결과를 저장하거나 재사용하기 위해 사용된다. 계산기에는 주로 단일 메모리 슬롯이 있지만, 고급 계산기는 여러 메모리 슬롯을 가질 수 있다. 이 메모리 슬롯은 특정 키를 눌러서 접근하고, 값을 저장하거나 불러올 수 있다.
따라서, 프로세서와 계산기 모두 데이터를 메모리에 저장하고 불러오는 데 메모리를 사용하지만, 그 용도와 구현 방식에서 차이가 있다.
프로세서는 컴퓨터의 나머지 부분을 제어한다.
버스로 전송되는 신호를 통해 마우스, 키보드, 디스플레이, 기타 전기적으로 연결된 모든 장치에 대한 입력과 출력을 조직화하고 조정한다.
입출력(I/O) 컨트롤러, 메모리 관리 장치, 그래픽 처리 장치 등 다양한 하드웨어와의 협업을 필요로 한다. 이들 각각의 장치는 컴퓨터 시스템의 서로 다른 부분을 담당하며, 프로세서는 이들 모든 부분을 조율한다.
예를 들어, 사용자가 키보드를 통해 입력을 하면, 해당 신호는 입력 장치에서 시스템 버스를 통해 프로세서로 전달된다. 프로세서는 이 입력을 처리하고, 필요에 따라 메모리에 저장하거나 다른 하드웨어 장치에 전달한다.
또한, 프로세서는 표시 장치로 데이터를 전송하여 사용자에게 결과를 보여준다. 이는 표시 장치에 대한 출력을 조직화하고 조정하는 과정을 포함된다.
따라서 프로세서는 마우스, 키보드, 디스플레이 등과 같은 다양한 입력/출력 장치와 상호 작용하며, 컴퓨터 시스템의 전반적인 작동을 제어한다.
프로세서가 단순하긴 해도 결정을 내릴 수 있다는것
수나 다른 종류의 데이터에 대해 ‘이 수가 저 수보다 큰지’, ‘이 정보가 저 정보와 동일한지’ 등 비교를 수행할 수 있고, 다음에 무슨 일을 할지 결정할 수 있다.
프로세서는 '비교'와 '분기'라는 두 가지 중요한 작업을 수행할 수 있다.
- 비교: 프로세서는 데이터를 비교할 수 있는 기능을 갖추고 있다. 주로 ALU(Arithmetic Logic Unit)에서 수행되며, 두 수가 같은지, 다른지, 하나가 다른 하나보다 큰지 또는 작은지를 결정할 수 있다. 비교 작업은 산술 연산, 논리 연산, 비트 연산 등의 일부이다.
- 분기: 비교 결과에 따라 프로세서는 다음에 수행될 명령을 결정합니다. 이를 '분기'라고 하며, 이는 프로그램의 제어 흐름을 변경하는 역할을 한다. 예를 들어, 'if' 문이나 'switch' 문과 같은 제어 구조는 프로세서의 이러한 분기 기능에 의존한다.
따라서, 비록 프로세서의 개별 연산들이 단순하긴 하지만, 이들을 조합하고 연속적으로 수행함으로써 복잡한 작업을 수행하고, 필요한 경우 제어 흐름을 변경할 수 있습니다. 이는 컴퓨터가 다양한 문제를 해결할 수 있게 만드는 핵심적인 요소입니다.
프로세서는 현재 처리 중인 데이터를 기반으로 다음에 무슨 일을 할지 결정할 수 있으므로 스스로 전체 시스템을 운영할 수 있다.
프로세서는 프로그램 카운터, 조건 코드 등의 상태 정보를 사용하여 현재 처리 중인 작업에 따라 다음에 수행할 작업을 결정한다. 이는 프로세서가 명령어들을 일련의 단계로 분할하고 이들을 적절한 순서로 처리하며, 필요에 따라 작업을 변경할 수 있게 한다.
특히, 프로세서는 분기명령이나 인터럽트와 같은 메커니즘을 통해 제어 흐름을 변경할 수 있다. 이는 프로세서가 다양한 상황에 대응하고, 필요에 따라 작업을 조정하거나 우선순위를 변경할 수 있게 한다. 예를 들어, 사용자의 입력을 처리하거나, 새로운 데이터를 메모리에 로드하거나, I/O 장치와의 통신을 수행하거나, 오류 상황을 처리하는 등의 작업을 수행할 수 있다.
따라서, 프로세서는 현재 처리 중인 작업과 전체 시스템 상태를 기반으로 다음에 무슨 일을 할지 결정하고, 이를 통해 전체 시스템을 자율적으로 운영할 수 있다. 이러한 기능은 프로세서를 컴퓨터 시스템의 '중앙 처리 장치'로 만들며, 이를 통해 복잡하고 다양한 작업을 처리할 수 있다.
기본 연산은 가짓수가 많거나 복잡하지 않지만, 프로세서는 초당 수십억번의 연산을 수행할 수 있어서 고도로 정교한 계산이 가능하다.
프로세서의 기본 연산들은 그 자체로는 단순할 수 있지만, 그들이 수백만, 심지어는 수십억 번도 넘는 속도로 수행될 수 있기 때문에, 그 결과로 나타나는 동작은 매우 복잡하고 정교할 수 있다.
이렇게 높은 연산 속도는 각각의 작은 연산들이 어떻게 조합되느냐에 따라 복잡한 프로그램이나 고성능의 애플리케이션을 구현하는 데 사용될 수 있다. 예를 들어, 그래픽 처리, 머신러닝, 복잡한 수학적 연산 등은 수많은 간단한 연산들이 초당 수십억 번도 넘게 일어나기 때문에 가능해진다.
또한, 이 높은 연산 속도는 프로세서가 다양한 요청에 신속하게 대응할 수 있게 해주므로, 사용자는 컴퓨터가 실시간으로 반응하는 것처럼 느낄 수 있다. 이는 컴퓨터가 우리의 일상생활에서 다양한 업무를 수행하는 데 필수적인 요소가 된다.
프로세서와 계산기의 차이점
- 연산 능력: 계산기는 기본적인 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행하는 반면, 프로세서는 이런 기본적인 산술 연산 외에도 논리 연산, 비트 연산, 제어 흐름 등 복잡한 연산을 수행할 수 있다.
- 복잡한 명령어 집합: 프로세서는 복잡한 명령어 집합(CPU instruction set)을 가지고 있어서, 다양한 프로그램을 실행할 수 있다. 반면에 계산기는 매우 제한된 명령어 집합을 가지고 있다.
- 멀티태스킹: 프로세서는 여러 프로그램이나 작업을 동시에 수행하는 멀티태스킹을 지원한다. 그러나 계산기는 한 번에 한 가지 작업만 수행할 수 있다.
- 입출력 장치와의 통신: 프로세서는 마우스, 키보드, 디스플레이 등 다양한 입력/출력 장치와 통신할 수 있다. 반면에 계산기는 제한된 입출력 기능만을 가지고 있다.
'CS > 1일 1로그 100일 완성 IT 지식' 카테고리의 다른 글
15로그 - 캐시가 뭔가요? (0) | 2023.05.25 |
---|---|
14로그 - 프로세서는 무조건 빠른 게 좋을까? (0) | 2023.05.25 |
10로그 - 비트 모아 데이터 (0) | 2023.05.23 |
9로그 - 0과 1의 세계 (0) | 2023.05.23 |
8로그 - 아날로그 정보를 디지털로 바꾸기 (0) | 2023.05.23 |