-
CPU 클락 속도 및 전압 레귤레이터 모듈카테고리 없음 2023. 5. 25. 17:15
CPU 클락 속도
대부분의 CPU는 동기 회로입니다.즉, 클럭 신호를 사용하여 시퀀셜 동작의 페이스를 조정합니다. 클럭 신호는 주기적인 사각파 형태로 초당 일정 수의 펄스를 생성하는 외부 발진 회로에 의해 생성됩니다. 클럭펄스 주파수에 따라 CPU가 명령을 실행하는 속도가 결정되며, 그 결과 클럭이 빠를수록 CPU가 초당 실행하는 명령이 많아집니다.
CPU를 적절하게 작동시키기 위해 클럭 기간은 모든 신호가 CPU를 통과하는 데 필요한 최대 시간보다 길어집니다. 클럭 주기를 최악의 전파 지연을 훨씬 웃도는 값으로 설정할 경우 CPU 전체와 기립 클럭 신호와 하향 클럭 신호의 '엣지'를 중심으로 데이터를 이동하는 방법을 설계할 수 있습니다.
이를 통해 설계 측면에서도, 컴포넌트 수의 관점에서도 CPU를 대폭 간소화할 수 있다는 이점이 있습니다. 그러나 CPU 전체가 가장 저속한 요소를 대기해야 한다는 단점도 있습니다.그러나 일부 요소는 훨씬 빠릅니다. 이 제한은 CPU의 병렬성을 높이는 다양한 방법에 의해 크게 보완되고 있습니다.
다만 아키텍처 개선만으로는 글로벌 동기 CPU의 모든 단점을 해결할 수 있는 것은 아닙니다. 예를 들어 클럭 신호는 다른 전기 신호 지연의 영향을 받습니다. 복잡해지는 CPU의 클럭 레이트가 높아지면, 장치 전체에서 클럭 신호를 위상(동기)으로 유지하는 것이 어려워집니다.
따라서, 많은 최신 CPU에서는 CPU의 오동작을 일으킬 정도로 1개의 신호를 대폭 지연시키지 않기 위해 여러 개의 동일 클럭 신호를 제공해야 합니다. 클럭 레이트가 극적으로 증가하는 또 다른 큰 문제는 CPU에 의해 소비되는 열량입니다. 클럭이 항상 변화하면 그 시점에서 사용되고 있는지 여부에 관계없이 많은 컴포넌트가 전환됩니다.
일반적으로 스위칭하는 컴포넌트는 정적 상태의 요소보다 더 많은 에너지를 사용합니다. 따라서 클럭 레이트가 증가하면 에너지 소비도 증가하므로 CPU 냉각 솔루션 형태로 더 많은 방열이 필요합니다.
불필요한 컴포넌트의 스위칭에 대처하는 한 가지 방법은 클럭 게이트라고 불리며 클럭 신호를 불필요한 컴포넌트로 끕니다(실질적으로 비활성화합니다). 그러나 이는 구현이 어렵다고 간주되는 경우가 많으며, 따라서 매우 저소비전력 설계 이외에는 일반적인 사용 방법이 보이지 않습니다.
광범위한 클럭 게이팅을 사용하는 최근 주목할 만한 CPU 설계 중 하나는 Xbox 360에서 사용되는 IBM PowerPC 기반의 Xenon입니다.따라서 Xbox 360의 소비 전력이 대폭 절감됩니다.
클럭리스 CPU
글로벌 클럭 신호 문제의 일부에 대처하는 또 다른 방법은 클럭 신호를 완전히 제거하는 것입니다. 글로벌 클럭 신호를 제거하면 설계 프로세스가 여러 면에서 매우 복잡해지지만 비동기(또는 클럭리스) 설계는 유사한 동기 설계와 비교하여 소비전력과 방열에 현저한 이점을 가져옵니다.
일반적이지 않지만 비동기 CPU 전체는 글로벌 클럭 신호를 사용하지 않고 구축되어 있습니다. 이것의 현저한 예로서 ARM 준거의 AMULET와 MIPSR3000 호환되는 MiniMIPS가 있습니다.
일부 CPU 설계에서는 클럭 신호를 완전히 제거하는 것이 아니라 장치의 특정 부분을 비동기화할 수 있습니다.예를 들어, 슈퍼 스칼라 파이프라인과 조합하여 비동기 ALU를 사용함으로써 연산 성능이 향상됩니다.
완전한 비동기 설계가 동기 설계와 동등한지 그 이상의 수준에서 실행될 수 있는지는 완전히 명확하지 않지만 적어도 단순한 산술 연산에서는 우수하다는 것은 분명합니다. 이러한 뛰어난 소비 전력과 방열 특성을 조합하여 임베디드 컴퓨터에 매우 적합합니다.
전압 레귤레이터 모듈
최근 많은 CPU에는 CPU 회로에 대한 온 디맨드 전압 공급을 조정하는 다이 통합형 전원 관리 모듈이 탑재되어 있어 성능과 소비 전력의 균형을 유지할 수 있습니다.
정수 범위
각 CPU는 특정 방법으로 수치를 나타냅니다. 예를 들어 초기 디지털 컴퓨터 중에는 10진수(베이스 10)의 수치 시스템 값으로서 수치를 나타내는 것도 있고, 3진수(베이스 3)와 같은 보다 비정상적인 표현을 채용하는 것도 있었습니다. 거의 모든 최신 CPU는 이진 형식으로 수치를 나타내며, 각 자릿수는 '고' 또는 '저' 전압 등 2치의 물리량으로 나타납니다.
10진수 값 40의 이진 부호화 표현을 포함한 6비트 단어입니다. 대부분의 최신 CPU에서는 8비트, 16비트, 32비트, 64비트 등의 제곱 워드 크기가 채용되고 있습니다. 수치 표현과 관련된 것은 CPU가 나타낼 수 있는 정수 값의 크기와 정확도입니다.
이진 CPU의 경우 이는 CPU가 하나의 동작으로 처리할 수 있는 비트수(바이너리 부호화 정수의 중요한 자릿수)에 의해 측정됩니다.이것은 일반적으로 워드 크기, 비트 폭, 데이터 패스 폭, 정수 정밀도 또는 정수 크기라고 불립니다. CPU의 정수 크기에 따라 CPU가 직접 작동할 수 있는 정수 값의 범위가 결정됩니다.
예를 들어, 8비트 CPU는 256(28)의 이산 정수값 범위를 갖는 8비트로 표시되는 정수를 직접 조작할 수 있습니다. 정수 범위는 CPU가 직접 주소 지정할 수 있는 메모리 로케이션의 수에도 영향을 미칠 가능성이 있습니다(주소는 특정 메모리 로케이션을 나타내는 정수값입니다).
예를 들어 이진 CPU가 메모리 주소를 나타내기 위해 32비트를 사용하는 경우 232개의 메모리 위치에 직접 주소 지정할 수 있습니다. 이 제한을 피하기 위해 및 기타 다양한 이유로 일부 CPU에서는 추가 메모리에 대한 대응을 가능하게 하는 메커니즘(뱅크 스위칭 등)을 사용하고 있습니다.
워드 크기가 큰 CPU는 더 많은 회로를 필요로 하며, 그 결과 물리적으로 더 커지고 비용과 소비 전력이 증가합니다(따라서 발열량이 증가합니다). 그 결과 더 큰 워드 크기(16, 32, 64, 128비트 등)의 CPU가 이용 가능하더라도 더 작은 4비트 또는 8비트 마이크로컨트롤러가 현대 애플리케이션에서 일반적으로 사용되고 있습니다.
다만, 보다 높은 퍼포먼스가 필요한 경우는, 큰 워드 사이즈(데이터 범위와 주소 스페이스)의 이점이 단점을 웃돌 가능성이 있습니다. CPU는 내부 데이터 경로를 워드 크기보다 짧게 하여 크기와 비용을 절감할 수 있습니다.
예를 들어 IBM System/360 명령 세트가 32비트 명령 세트였다고 해도 System/360 Model 30과 Model 40은 산술논리 유닛에 8비트 데이터 패스를 가지고 있었기 때문에 32비트 추가에는 오퍼랜드의 8비트마다 1개씩 4사이클이 필요했습니다.
Motorola 68000 시리즈의 명령 세트는 32비트 명령 세트였다고 해도, Motorola 68000 및 Motorola 68010은 산술 논리 유닛에 16비트 데이터 경로를 가지고 있었기 때문에 32비트 추가에는 2사이클이 필요했습니다.
낮은 비트 길이와 높은 비트 길이 모두에 의해 얻을 수 있는 이점 중 몇 가지를 얻기 위해, 많은 명령 세트는 정수 데이터와 부동 소수점 데이터의 비트 폭이 다르기 때문에, 그 명령 세트를 구현하는 CPU는 디바이스의 다른 부분에 대해 다른 비트 폭을 가질 수 있습니다.
예를 들어 IBM System/360 명령 세트는 주로 32비트였지만 부동소수 점수의 정확도와 범위를 향상시키기 위해 64비트 부동소수점 값이 지원되고 있습니다.
System/360 Model 65에는 10진수 및 고정소수점의 2진수 연산용으로 8비트 가산기, 부동소수점 연산용으로 60비트 가산기가 있었습니다. 후의 많은 CPU 디자인에서는 특히 프로세서가 범용 목적으로 사용되는 경우, 정수와 부동 소수점의 적절한 균형이 필요한 경우에 비슷한 혼합 비트 폭이 사용됩니다.