CPU 향상 기법에는 여러 가지가 있습니다.
1. 오버클럭킹(Overclocking) : CPU의 클럭 속도를 높여 성능을 향상시키는 기술입니다. 그러나 이 방법은 CPU에 대한 부하와 열 문제가 발생할 수 있습니다.
https://www.intel.co.kr/content/www/kr/ko/gaming/resources/turbo-boost.html
최신 제품의 경우는 최대 초당 50억 번 이상 클럭이 반복하며, 작업을 구별합니다. 이렇게 구별된 작업 별로 클럭의 속도를 조절해서 전력량은 줄이고, 제품의 수명을 늘립니다.
그리고 최대 24개의 코어와 32개의 스레드를 통해 성능 향상이 가능하다고 합니다.!?
그리고 스레드는 CPU에서 사용되는 하드웨어 스레드와 프로그램에서 사용되는 소프트웨어 스레드로 구분되며, 하나의 코어에서 여러 명령어를 처리하는 멀티스레드 프로세서 ( 멀티스레드 CPU ) 라고 합니다.
정리하면
코어: 명령어를 실행할 수 있는 '하드웨어 부품'
스레드는: '명령어를 실행하는 단위'
멀티코어 프로세서: 명령어를 실행할 수 있는 하드웨어 부품이 CPU 안에 두 개 이상
멀티스레드 프로세서: 하나의 코어로 여러개의 명령어를 동시에 실행할 수 있는 CPU
2. CPU 쿨러(CPU Cooler) : CPU를 냉각하여 과열을 방지하고 성능을 향상시키는 기술입니다. 냉각 팬, 히트싱크, 물냉식 쿨러 등 다양한 유형이 있습니다.
3. Hyper-Threading : 인텔에서 멀티프로세서에 부여한 명칭으로, CPU에서 여러 개의 스레드를 동시에 처리할 수 있도록 하는 기술입니다. 이를 통해 CPU의 작업처리 능력을 향상시킬 수 있습니다.
4. 캐시 메모리(Cache Memory) : CPU에서 가장 빈번하게 사용되는 데이터를 미리 저장하여 더 빠르게 액세스할 수 있도록 하는 기술입니다. 이를 통해 CPU가 빠르게 데이터를 처리할 수 있습니다.
5. 메모리 업그레이드 : CPU가 메모리에 액세스하는 속도가 빨라지면 전반적인 성능이 향상됩니다. 메모리를 업그레이드하여 CPU가 사용할 수 있는 더 많은 메모리를 확보하면 성능을 향상시킬 수 있습니다
6. 코드 최적화 : 프로그램 코드를 최적화하여 CPU가 더 빠르게 처리할 수 있도록 하는 기술입니다. 이를 통해 CPU가 더 빠르게 작업을 처리할 수 있습니다.
7. SIMD : CPU에서 여러 개의 데이터를 한 번에 처리할 수 있도록 하는 기술입니다. SIMD 기술을 사용하면 CPU가 더 빠르게 계산을 수행할 수 있습니다.
명령어 병렬 처리 기법(Instruction-level parallelism, ILP)
명령어 병렬 처리 기법은 하나의 프로세서가 한번에 여러개의 명령어를 동시에 실행하는 기법입니다. 이 기법은 프로세서의 실행 속도를 향상시키며, 성능을 개선하는 데 중요한 역할을 합니다.
명령어 병렬 처리 기법은 다음과 같은 방법으로 동작합니다.
- 파이프라이닝(Pipelining) : 프로세서가 여러 단계로 이루어진 명령어를 동시에 처리하는 기법입니다. 명령어는 각 단계를 거치면서 실행되고, 이전 단계의 명령어가 다음 단계의 명령어를 실행하는 동안에도 새로운 명령어를 실행할 수 있습니다. 명령어 처리 과정을 클럭 단위로 나누어 보면 다음과 같습니다.
- 명령어 인출
- 명령어 해석
- 명령어 실행
- 결과 저장
⦿특정 상황에서 파이프라인 위험에 빠지며 데이터 위험, 제어 위험, 구조적 위험이 있습니다.- 데이터 위험:
데이터 처리에 순서가 필요한 작업에서 선행작업이 끝나기 전에 다음 명령어가 실행될 위험입니다. - 제어 위험:
프로세서가 분기 명령어(Branch Instruction)나 점프 명령어(Jump Instruction) 등으로 인해 명령어 실행 흐름이 변경되는 상황에서 발생합니다. 이 경우 프로세서는 분기 명령어의 조건을 계산하여 분기를 수행하거나, 점프 명령어에 따라 명령어 실행 흐름을 변경해야 합니다. 그러나 분기나 점프 명령어가 실행될 때까지 프로세서는 다음 명령어를 실행할 수 없기 때문에, 명령어의 병렬 처리 효과가 떨어지게 됩니다.따라서 명령어 병렬 처리 기법을 사용할 때는 제어위험 문제를 고려하여 분기 예측 등의 기술을 적용하여 최대한 병렬 처리 효과를 높이는 것이 중요합니다.
이러한 제어위험을 해결하기 위해서는 분기 예측(Branch Prediction)이나 분기 대기(Branch Delay) 기법 등의 기술을 사용하여 프로세서가 분기나 점프 명령어를 미리 예측하거나, 대기하는 방법을 사용할 수 있습니다. 예측이 정확하게 이루어지면 제어위험을 최소화할 수 있습니다. 그러나 분기 예측이 잘못된 경우 예측 실패(branch misprediction)라는 문제가 발생하여 실행 효율이 떨어지게 됩니다. - 구조적 위험(자원 위험):
명령어들을 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려 할 때 발생합니다.
- 데이터 위험:
- 슈퍼스칼라(Superscalar) : 하나의 명령어를 동시에 여러개의 실행 유닛에서 처리하는 기법입니다. 프로세서는 명령어를 분석하여 여러개의 실행 유닛에서 동시에 실행 가능한 부분을 찾아내어 실행합니다.
- 비순차적 명령어 처리, 아웃오브오더(Out-of-order) : 명령어의 실행 순서를 프로세서가 자유롭게 조정하여 실행하는 기법입니다. 이 방법은 실행이 지연되는 명령어가 있을 경우, 그와 관련 없는 다른 명령어를 먼저 실행하여 대기 시간을 최소화할 수 있습니다.
명령어 병렬 처리 기법은 여러 가지 방법으로 구현될 수 있으며, 이를 통해 프로세서의 성능을 향상시킬 수 있습니다. 하지만 이 기법은 명령어 간의 종속성 문제나 하드웨어 자원의 한계 등의 문제점도 가지고 있습니다. 따라서 이러한 문제들을 고려하여 최적의 명령어 병렬 처리 기법을 선택하고 구현하는 것이 중요합니다.
CISC와 RISC
CISC와 RISC는 ISA(CPU의 언어)를 기반으로 컴퓨터 아키텍처 디자인에서 사용되는 두 가지 다른 방법론입니다.
CISC는 "Complex Instruction Set Computing"의 약자로, 복잡한 명령어 집합 컴퓨팅을 의미합니다. CISC 프로세서는 매우 복잡한 명령어를 지원하며, 하나의 명령어가 여러 개의 기본 명령어를 수행하는 것이 일반적입니다. 이는 프로그래머가 한 번에 많은 작업을 수행할 수 있게 하므로, 코드를 작성하고 디버깅하기가 더 쉬워집니다. 그러나 CISC 프로세서는 많은 기능을 내장하기 때문에 하드웨어가 더 복잡해지고, 실행 속도가 느려질 수 있습니다.
반면에, RISC는 "Reduced Instruction Set Computing"의 약자로, 간소화된 명령어 집합 컴퓨팅을 의미합니다. RISC 프로세서는 간단한 명령어를 사용하며, 명령어 하나가 한 가지 기본 작업만을 수행합니다. 이는 명령어 해독과 실행 속도를 높이며, 하드웨어가 간단해지므로 비교적 저렴하게 제작할 수 있습니다. 그러나 RISC 프로세서에서는 여러 개의 명령어를 실행해야 하는 작업을 수행할 때 코드가 복잡해지고, 더 많은 명령어를 실행해야 하므로 전체적인 실행 시간이 느려질 수 있습니다.
결론적으로, CISC와 RISC는 각각의 장단점이 있으며, 어떤 방법론이 좋은지는 사용하는 컴퓨터의 용도와 목적에 따라 달라집니다. 일반적으로 RISC는 임베디드 시스템, 모바일 기기, 웹 서버 등과 같은 곳에서 많이 사용되고, CISC는 대규모 데이터베이스나 과학 계산 등과 같이 복잡한 작업을 수행해야 하는 곳에서 많이 사용됩니다.
'컴퓨터구조, 운영체제' 카테고리의 다른 글
보조기억장치 (0) | 2023.03.27 |
---|---|
메모리와 캐시메모리 (0) | 2023.03.23 |
CPU 작동 원리 (0) | 2023.03.20 |
명령어 (0) | 2023.03.20 |
데이터 (0) | 2023.03.12 |