-
클럭 주파수와 CPU와의 관계IT 2021. 6. 4. 12:35반응형
대부분의 CPU와 실제로 가장 순차적인 논리 장치는 본질적으로 동기입니다. 즉, 동기화 신호에 따라 설계 및 작동합니다. 시계 신호로 알려진 이 신호는 일반적으로 주기적인 제곱파의 형태를 취합니다. CPU의 여러 회로의 다양한 포크에서 전기 신호가 이동할 수 있는 최대 시간을 계산하여 설계자는 클럭 신호에 적합한 기간을 선택할 수 있습니다. 이 기간은 신호가 이동하거나 최악의 경우 확산하는데 걸리는 시간보다 길어야 합니다. 최악의 경우 전파 지연에 비해 클럭 기간을 다소 높은 값으로 설정하면 전체 CPU와 시계 신호 상승 및 하락의 "가장자리"를 중심으로 데이터를 이동하는 방법을 설계할 수 있습니다. 이는 설계 관점에서, 그리고 구성 요소 수량 관점에서 CPU를 크게 단순화할 수 있는 장점이 있습니다. 그러나, 이것은 또한 전체 CPU 그것의 느린 요소를 기다려야 하는 단점이 있다. 비록 그것의 일부 단위는 훨씬 빠르더라도 말이다. 이 제한은 CPU 병렬성을 높이는 여러 가지 방법으로 인해 크게 상쇄되었습니다.
그러나 건축 개선만으로는 전 세계적으로 동기적인 CPU의 모든 단점을 해결하지는 못합니다. 예를 들어, 시계 신호는 다른 전기 신호의 지연에 따라 달라질 수 있습니다. 점점 더 복잡해지는 CPU의 클럭 속도가 높을수록 전체 장치에 걸쳐 클럭 신호를 위상(동기화) 상태로 유지하는 것이 더 어려워집니다. 이로 인해 CPU가 오작동할 수 있을 만큼 단일 신호가 지연되는 것을 피하기 위해 여러 개의 동일한 클럭 신호를 제공해야 하는 많은 현대 CPU가 발생했습니다. 시계 속도가 급격히 증가할 때 또 다른 주요 문제는 CPU에 의해 방출되는 열의 양입니다. 클럭 신호가 지속적으로 변경되어 현재 사용 중인 부품 여부에 관계없이 많은 구성 요소가 전환(상태 변경)됩니다. 일반적으로 상태를 변경하는 구성 요소는 정적 상태의 요소보다 더 많은 에너지를 사용합니다. 따라서 클럭 속도가 증가함에 따라 열 방출도 CPU에 보다 효과적인 냉각 솔루션이 필요합니다.
불필요한 구성 요소를 전환하는 한 가지 방법은 클럭 게이팅이라고 하며, 여기에는 시계 신호를 불필요한 구성 요소로 끄고 효과적으로 끄는 것이 포함됩니다. 그러나 구현하기 어려운 경우가 많기 때문에 매우 낮은 전력 설계 외부에서는 일반적인 사용이 없습니다. 비디오 게임 콘솔의 전원 요구 사항을 줄이기 위해 넓은 시계 게이트를 사용하는 주목할만한 늦은 CPU 디자인은 IBM의 PowerPC를 기반으로 Xbox 360의 디자인입니다. 글로벌 클럭 신호의 몇 가지 문제를 처리하는 또 다른 방법은 완전히 제거됩니다. 시계에서 전체 신호를 제거하면 유사한 동기 설계에 비해 여러 가지 면에서 설계 프로세스가 훨씬 더 복잡하지만 비동기(또는 무시계) 설계는 전력 소비 및 열 방출에 있어 이점을 표시했습니다. 드물지만 전역 클럭 신호를 사용하지 않고 전체 CPU가 구축되었습니다. 이 것의 두 가지 주목할 만한 예는 ARM아키텍처를 구현하는 AMULET과 MIPS R3000과 호환되는 MiniMIPS입니다. 시계 신호를 완전히 제거하는 대신 일부 CPU 설계를 통해 장치의 특정 단위가 초스칼라 파이프라이닝과 함께 ALU를 사용하여 산술 성능의 일부 향상을 달성하는 등 비동기가 될 수 있습니다. 완전히 비동기 설계가 동기보다 비슷한 수준에서 수행될 수 있는지 또는 동기적인 디자인보다 더 잘 수행할 수 있는지 여부는 완전히 명확하지 않지만 적어도 가장 간단한 수학적 작업에서 탁월하다는 것이 분명합니다. 이는 우수한 에너지 소비 및 열 방출 특성과 결합되어 임베디드 시스템에 적합합니다.
일반적으로 하위 척도라고하는 이러한 유형의 CPU는 한 번에 하나 또는 두 개의 데이터로 단일 명령을 작동하고 실행합니다. 이 프로세스는 SUBSCALE CPU에서 고유한 비효율성을 초래합니다. 한 번에 하나의 명령만 실행되므로 전체 CPU는 다음 명령으로 진행하기 전에 해당 명령이 완료될 때까지 기다려야 합니다. 결과적으로 하위 축척 CPU는 실행을 완료하는 데 두 개 이상의 클럭 주기가 걸리는 지침에서 "마비"됩니다. 두 번째 실행 단위를 추가하더라도 성능이 크게 향상되지 않습니다. 한 도로가 얼어붙는 대신 두 개의 경로가 마비되고 사용하지 않은 트랜지스터의 수가 증가합니다. CPU 실행 리소스가 한 번에 하나의 명령으로만 작동할 수 있는 이 디자인은 확장기 성능(클럭 주기당 하나의 명령)만 달성할 수 있습니다. 그러나 성능은 거의 항상 하위 배율(주기당 하나 미만의 명령)입니다. 스칼라와 더 나은 성능을 달성하려는 시도는 CPU가 덜 선형적이고 병렬로 행동할 수 있도록 다양한 설계 방법론을 초래했습니다. CPU의 병렬을 참조할 때 일반적으로 이러한 설계 기술을 분류하는 데 두 가지 용어가 사용됩니다. 명령 수준 병렬성(ILP)은 태블릿에서 실행 리소스의 활용도를 높이기 위해 CPU 내에서 명령이 실행되는 속도를 높이고자 합니다. 스레드 수준 병렬성(TLP)은 CPU가 동시에 실행할 수 있는 스레드(효과적으로 개별 프로그램)의 수를 늘리는 것을 목표로 합니다. 각 방법론은 구현되는 방식과 응용 프로그램의 CPU 성능을 높이는 데 있어 상대적으로 효과적인 측면에서 모두 다릅니다.
'IT' 카테고리의 다른 글
병렬식 컴퓨터가 가지는 특징 (0) 2021.06.05 병렬 컴퓨팅의 기본 개념 (0) 2021.06.04 컴퓨터가 인식하는 숫자의 범위 (0) 2021.06.04 컴퓨터 CPU의 작업 순서 (0) 2021.06.04 마이크로 프로세서의 주 재료 (0) 2021.06.03