티스토리 뷰
부담 없이 배우는 컴퓨터 중요부품
CPU (Central Processing Unit) 에 대한 정보
이글에서는 컴퓨터 나 노트북을 구입을 하려면 Hardware 중요 부품 중
CPU (Central Processing Unit) 에 관한 정보를 정리 해보았습니다.
CPU 구매시 어떤점을 고려해봐야 할까?
컴퓨터중 가장 핵심적인 역할을 수행해내는 이 CPU (Central Processing Unit) 성능과 관련이 있다.
이것을 크게 네가지로 나눈다. 코어(Core), 쓰레드(Thread), 클럭(Clock) 그리고 캐쉬(Cache) 이다.
클럭(Clock)의 수치는 주파수 단위인 헤르츠(Hz)로 표기한다.
따라서 이 헤르츠가 높으면 높을수록 보다 더 빠른 성능을 보여주고 있다.
옛날과 같이 코어와 쓰레드의 개념이 없던 시절에는
CPU를 구매함에 있어 성능을 좌우하는것은 클럭(Clock)이 절대적인 기준치였지만,
오늘날 기술이 발전하여 1개의 CPU 내부에서 2개 또는 4개, 6개, 8개 등 의 코어를
여러개 집어넣은 멀티코어(Multi-Core) 제품군들이 출시됨으로써
이전과 같은 기준점으로 성능을 비교하기에는 문제가 있다.
CPU 의 선택 Clock? Core? Cache? 어떤점이 고려되어야 할까?
많은양의 연산처리량을 요구하는 컴퓨터의 경우에 멀티코어(Multi-Core)의 활용율은 굉장히 높지만
그렇지 않은 개인용에 웹서핑이나 게이밍 또는 동영상 재생이 전부인 경우에서는
코어(Core)가 무조건적으로 많다고 하여 해당 자원을 모두 활용할 수 있는것이 아니기 때문에
코어(Core)가 무조건 많다고 좋은것은 아니다,(컴퓨터에 돈 투자를 많이 하는 사람은 제외)
또한, 요즘나오는 온라인 게임에는 멀티코어(Multi-Core)와 멀티 쓰레드(Thread)가
적절히 잘 조합되어있는 구성에서 게이밍이 원활한 경우도 있겠지만, 옛날 게이밍의 경우에는
반대로 멀티코어(Multi-Core)보다 클럭(Clock)이 더 높은 경우 구동함에있어 더 원활하다는 평 또한 있기 때문에
자신이 컴퓨터 시스템을 사용함에 있어 어떤용도를 가지고 사용하는것인지 반드시 체크한 뒤,
코어(Core)와 클럭(Clock)을 체크해보는것이 가장 바람직하다.
CPU (Central Processing Unit) 란?
우리나라 전문용어로는 중앙정보처리장치 이다.
컴퓨터에서 구성 단위 중 기억, 연산, 제어의 3대 기능을 종합하는 장치인
Central Processing Unit(중앙 처리 장치)의 줄임말 이다.
컴퓨터의 대뇌라고 할 정도로 가장 중요한 부분이다.
프로그램의 명령어를 해석하고 데이터를 연산/처리를 하는 부분 및 기능을 내장한 칩을 말한다.
컴퓨터가 동작하는데 필요한 모든 계산을 처리한다.
컴퓨터를 사람의 뇌에 비유하면 단기기억 담당은 RAM, 장기기억은 하드디스크,
CPU는 사고를 담당하는 대뇌 피질 정도로 볼 수 있겠다.
[기억] Processor Register : ALU에 필요한 데이터 또는 오퍼랜드(Operand)를 제공하고 저장한다
[연산] ALU (산술 논리 장치) : 프로세서가 산술 및 비트 논리 연산을 수행할 수 있다
[제어] Control Unit (제어장치) : ALU, 레지스터 등 구성장치를 통해 명령을 수행한다
일반적으로 CPU는 명령 주기(Instruction Cycle)라고 알려진 일련의 단계
- Fetch(인출) : 메모리상의 프로그램 카운터가 가리키는 명령어를 CPU로 인출하여 적재
- Decode(해석) : 명령어의 해석. 이 단계에서 명령어의 종류와 타겟 등을 판단
- Execute(실행) : 해석된 명령어에 따라 데이터에 대한 연산을 수행
- Writeback(쓰기) : 명령어대로 처리 완료된 데이터를 메모리에 기록
대부분의 최신 CPU는 메모리, 마이크로컨트롤러(MCU) 또는 SoC(System on Chip)와 같은
다른 구성장치와 함께 집적회로 칩(IC, Integrated Chip)에 포함되어 있다.
또한 일부 CPU는 실행 중에 발생하는 열을 줄이고 프로그램 명령 실행 속도를 높이기 위해,
하나의 칩 안에 2개 이상의 CPU를 가지는 멀티 코어 프로세서(Multi-Core Processor)를 사용한다
Processor 란?
프로세서라는 용어는 현재는 CPU와 혼용되어 사용되고 있다
원래 프로세서는 프로그램 명령을 수행하기 위한 논리회로를 말한다.
프로세서는 프로그램의 명령을 수행하는 CPU 프로세서(Cpu Processor)와
이러한 CPU의 기능을 보조하는 보조 프로세서(Coprocessor)로 분류되며,
임베디드 시스템에 사용되는 프로세서를 마이크로프로세서라고 부른다
CPU 성능 표기 중 클럭(Clock)
CPU성능은 클럭(Clock)으로 나타내는데 1초당 내부에서 어느정도의 작업이 처리가 가능한지를 나타내는 수치입니다.
CPU 클럭이 높으면 성능이 좋아 지고 가각은 높아 집니다.
(클럭은 3.7Ghz, 2.2Ghz 이런식으로 표기)
단점 으로는 클럭이 높으면 CPU의 발렬량이 높아 지기 때문에 현재는 클럭은 그대로 두고 Core 갯수만 늘리는 것이다.
CPU 성능 표기 중 L1, L2, L3 Cache Memory
CPU내부에는 L1, L2, L3 Cache Memory 가 존재합니다.
이것은 한마디로 말하면 CPU 의 내장 메모리 입니다.
L1 Cache Memory, L2 Cache Memory, L3 Cache Memory는
컴퓨터의 메인보드(Main Board) 에 있는 메모리(Mamory)보다 빠릅니다.
이것은 CPU에 내장이 되어 있기 때문에 따로 업그레이드가 안되는 Cache Memory 입니다.
이 Cache Memory는 CPU에서 자주사용하는 데이터가 들어있어서 CPU의 속도를 빠르게 해주는 역활을 합니다.
L3 Cache 보다 L2 Cache, L2 Cache 보다 L1 Cache Memory 의 가격이 많이 비싸서 용량이 매우 적게 탑제 되어 었습니다.
CPU Cache Memory 에 있는 데이터는 아주 필요한 것만 들어있기 때문에 Cache Memory 용량이 많으면 더욱더 CPU 속도가 빨라 지지만, Cache Memory 용량이 적으면 나머지 데이터는 램(RAM)이나 하드디스크(HDD)에서 데이터를 불러들이기 때문에 CPU 반응 속도가 느려지게 되는 것입니다.
그래서 CPU의 L1, L2, L3 Cache Memory의 용량이 높아지면 그만큼 CPU의 가격 및 성능도 올라가게 됩니다.
CPU Core 란?
코어(Core)는 프로그램의 명령(Instruction)을 읽고 수행하는 독립적인 처리 장치(Processing Unit)이다.
기본적으로 CPU 또는 프로세서의 주요 구성 요소이다. 메모리에서 명령을 가져오거나 수행한다.
한 가지 고려해야 할 점은 코어는 CPU 내부에 위치하며,
아키텍처 설계에 따라 물리적 CPU 1개에 여러 개의 코어가 동시에 장착 되어 나오고 있다.
멀티 코어 프로세서 (Multi-Core Processor)
둘 이상의 코어(Core)를 가진 프로세서를 멀티 코어 프로세서(Multi-Core System)라고 부른다,
물리적으로 1개의 CPU에 싱글 코어를 가진 프로세서는 유니 코어 프로세서(Unicore Processor) 또는 유니 프로세서(Uniprocessor)라고 부른다.
오늘날 대부분의 시스템은 기술력이 많이 좋아져 물리적 프로세서 1개에 4개의 코어(쿼드 코어, Quad-Core) 또는 8개의 코어(옥타 코어, Octa-Core) 이상을 만들어 내고 있다.
2023년 현재 Intel 데카코어(10 Core)가 생산 되고 있다.
코어는 개별적으로 프로그램 명령(Instruction)을 읽고 실행할 수 있다.
프로그램에서는 여러 개의 코어 마치 컴퓨터 시스템에 여러 개의 CPU 프로세서가 있는 것처럼 느껴게 된다.
코어가 수행할 프로그램의 명령(Instruction)에는 계산(Calculation), 데이터 전송 명령(Data Transferring Instruction), 분기 명령(Branch Instruction) 등이 있을 수 있다.
프로세서 안에 있는 여러 개의 코어는 서로 다른 명령을 동시에 실행할 수 있다.
따라서 전체 시스템의 프로그램 실행 속도가 향상된다.
CPU 클럭(Clock)은 그대로 이지만, 멀티 코어 프로세서에 의해 발생하는 열은 감소되고
전반적인 시스템 실행 속도가 증가 되는 장점이 있다.
멀티 코어 시스템은 멀티 스레딩(Multi-Threading)과 병렬 컴퓨팅(Parallel Computing)을 지원한다.
멀티 코어 프로세서는 범용 및 임베디드, 네트워크, DSP, GPU를 포함한 많은 Application에서 널리 사용된다.
더 높은 성능을 달성하기 위해서는 코어 구현에 효율적인 소프트웨어 알고리즘을 구현하여 사용해야 한다.
여러 코어를 통해 병렬로 실행될 수 있는 소프트웨어가 선호된다
장점 (Advantages)
- 낮은 전력소모와 높은 성능을 발휘하기 때문에 효율적이다.
- 단일 칩 안에 있는 여러 개의 코어가 통합되어 있어서 높은 수준의 Cache Coherency을 허용한다.
- 물리적인 거리가 줄어 전체 트래픽이 감소한다.
단점 (Disadvantages)
- 듀얼 코어 프로세서는 단일 프로세서보다 두 배 빠른 속도로 작동하지는 않는다.
일반적으로 60-80%의 속도만 더 빨라진다. - 일부 운영 체제는 여전히 단일 코어 프로세서만을 사용하고 있다
- 멀티 코어 프로세서용으로 컴파일된 OS는 싱글 코어 프로세서에서 약간 느리게 실행된다
CPU vs Core 의 차이점은 무엇일까?
두 개의 장치 모두 컴퓨터의 컴퓨팅 구성장치로 기능을 수행하고 작동하지만,
컴퓨터의 속도와 효율성을 설명할 수 있는 몇 가지 차이점이 존재한다.
앞에서 언급한 바와 같이 CPU는 프로그램의 명령(Instruction)를 실행하는 것이며
대부분은 하나의 집적회로 칩(IC, Integrated Chip)에 포함되어 있다.
이 집적회로 내에 코어(Core), 입출력(IO) 관리 장치 및 기타 기본 구성요소 또한 포함되어 있다.
반면, 코어(Core)는 CPU의 하나의 구성요소로써 작동한다.
명령 주기(Instruction Cycle)를 따른다
일반적으로 멀티 코어 프로세서는 단일 코어에 비해 빠른 CPU로 설명되지만,
실제로는 실행 중인 프로그램에 따라 달라질 수 있다.
단일 코어 프로세서는 여전히 일부 프로그램의 멀티 코어 프로세서 보다 더 빠른 속도를 낼 수 있다.
이는 여전히 단계적으로 명령을 수행해야 하는 직렬방식(Serial)의 프로그램이 존재하기 때문이다.
Multi-Processor System
두 개 이상의 프로세서(Processor) 또는 CPU가 동일한 컴퓨터에 존재하며,
시스템 버스, 메모리 및 I/O를 공유하는 것을 멀티 프로세서 시스템(Multi-Processor System)이라고 한다.
여러 프로세서를 병렬로 실행할 수 있다.
단일 프로세서의 고장이 다른 프로세서에 영향을 미치지 않기 때문에 시스템이 안정적이다.
쿼드 프로세서 시스템은 한 번에 4개의 프로세스를 실행할 수 있으며,
옥타 프로세서는 한 번에 8개의 프로세스를 실행할 수 있다.
메모리를 비롯한 기타 하드웨어 리소스는 프로세스 간에 공유되거나 분류될 수 있다.
장점 (Advantages)
- 두 개 이상의 프로세서가 동시에 작동하므로 처리속도가 빨라진다.
- 한 CPU의 장애가 다른 CPU에 영향을 미치지 않음으로써 안정성이 더 높아진다.
- 복잡한 구성 작업이 거의 필요하지 않다.
- Parallel Processing(동시에 실행되는 두 개 이상의 프로세스)은 Multi Processing을 통해 달성된다
단점 (Disadvantages)
- 프로세서 간의 물리적인 거리로 인하여 트래픽이 더 많아진다
- 한 프로세서가 일부 I/O를 사용하는 경우 다른 프로세서가 순서를 기다려야 한다 따라서 공유 리소스 시스템에서 처리속도가 느려질 수 있다
- 복잡한 구성 작업이 거의 필요하지 않다.
- 하나 이상의 프로세서가 특정 순간마다 작동하고 있기 때문에, 조율이 매우 힘들다.
Difference
- Mutli-Core와 Multi-Processor 사이의 유일한 공통점은 처리 속도가 빨라진다는 것이다.
- 멀티 코어 시스템의 비용은 멀티프로세서 시스템의 비용에 비해 적다.
- 단일 프로그램을 실행하려면 멀티 코어 시스템이 더 빠르다.
- 그러나 여러 프로그램을 실행하는 경우 멀티 프로세서 시스템이 더 빠르다
- 최신 컴퓨터에는 일반적으로 여러 개의 코어가 있는 여러 개의 CPU가 들어간다
Implementation
최근 멀티 코어 시스템의 각 코어(Core)는 별도의 프로세서(Processor)로써 구현되어 사용되는 추세이다.
멀티 코어 시스템은 여러 개의 스레드를 병렬로 실행할 수 있는 반면에,
싱글 코어 시스템에서는 한 번에 하나의 스레드만 실행할 수 있다.
멀티 코어 시스템을 효율적으로 사용하는 상황은
시스템 내의 모든 프로세서를 통해 프로그램 명령을 계속 수행하는 것이다.
스케줄링 알고리즘은 여러개의 코어를 병렬 사용하도록 설계되어야 한다.
또한 멀티 코어 시스템을 활용하기 위해 멀티 쓰레딩 된 기존 프로그램을 수정해야 할 수도 있다.
멀티 코어 시스템을 구현하기 위해서는 다음과 같은 과제를 해결해야한다.
- Dividing Activity
여러 개의 코어를 완전히 사용하기 위해 프로그램을 병렬로 실행할 수 있는 단위로 나눈다 - Balance
나눠진 프로그램이 거의 동일한 양이 될 수 있도록 한다 - Data Splitting
해당 프로그램에 의해 사용되는 데이터도 나누어 프로세서가 가져간다 - Data Dependency
다양한 프로그램이 서로 다른 코어에서 실행되기 때문에,
하나의 프로그램이 다른 프로그램의 데이터에 의존할 수 있다.
따라서 전체 프로그램의 실행이 동기화되도록 데이터를 제대로 검사해야 한다
'IT Hardware 관련' 카테고리의 다른 글
Check each manufacturer's server product warranty period (각 제조사 서버 제품 보증 기간 확인) (0) | 2023.08.25 |
---|---|
겔럭시 Z 플립5 출시!..빠르게 휴대폰 스팩과 사전예약 선물을 알려드립니다. (0) | 2023.08.01 |
겔럭시 Z폴드5 출시!..빠르게 휴대폰 스팩과 사전예약 선물을 알려드립니다. (0) | 2023.08.01 |