CPU의 주파수는 1 초 내에 몇 개의 클럭 틱이 있는지에 대한 평균값입니까, 아니면 물리적 안정성이 더 강합니까?
제 생각에는 안정적이거나 불안정해서는 안됩니다. CPU의 분산에 대한 정보가 있습니까?
CPU의 사이클 지속 시간이 수정 진동과 엄격하게 동기화되어 있습니까? 아니면 CPU가 다음 틱 전에주기를 달성해야합니까?
CPU의 주파수는 1 초 내에 몇 개의 클럭 틱이 있는지에 대한 평균값입니까, 아니면 물리적 안정성이 더 강합니까?
제 생각에는 안정적이거나 불안정해서는 안됩니다. CPU의 분산에 대한 정보가 있습니까?
CPU의 사이클 지속 시간이 수정 진동과 엄격하게 동기화되어 있습니까? 아니면 CPU가 다음 틱 전에주기를 달성해야합니까?
답변:
복잡한 것과 마찬가지로 CPU가 다양한 수준에서 작동하는 방식을 설명 할 수 있습니다.
가장 기본적인 수준에서 CPU는 정확한 클럭에 의해 구동됩니다. 시계의 주파수는 변할 수 있습니다. 인텔의 스피드 스텝을 생각하십시오. 그러나 항상 CPU는 클럭 신호에 100 % 고정 되어 있습니다.
CPU 명령어는 훨씬 높은 수준에서 작동합니다. 하나의 명령은 복잡한 일이며 여기에 Wikipedia에 설명 된 대로 완료하는 데 1 사이클 미만에서 수천 사이클 까지 소요될 수 있습니다 .
따라서 기본적으로 명령은 몇 개의 클럭 사이클을 소비 합니다. 최신 CPU에서는 다중 코어, 하이퍼 스레딩, 파이프 라이닝, 캐싱, 비 순차적 및 추론 적 실행과 같은 기술로 인해 단일 명령에 대한 정확한 클록주기 수가 보장되지 않으며 이러한 명령을 실행할 때마다 달라질 수 있습니다 !
편집하다
특정 CPU의 분산에 대한 정보가 있습니까?
예, 아니오 최종 사용자의 99.99 %가 전반적인 성능에 관심이 있으며 다양한 벤치 마크를 실행하여 수량화 할 수 있습니다.
당신이 요구하는 것은 고도의 기술 정보입니다. 인텔은 CPU 명령 대기 시간 / 처리량에 대한 완전하고 정확한 정보를 게시하지 않습니다 .
이것을 알아 내려고 시도한 연구원들이 있습니다. 다음은 관심을 가질만한 두 가지 PDF 파일입니다.
불행히도 분산 데이터 를 얻는 것은 어렵습니다 . 첫 번째 PDF에서 인용 :
나열된 숫자는 최소값입니다. 캐시 미스, 정렬 불량 및 예외는 클럭 수를 상당히 증가시킬 수 있습니다.
그럼에도 불구하고 재미있는 독서!
But at all times the CPU is absolutely 100% locked to the clock signal
동기 CPU에만 적용됩니다. 비동기 (시계가없는) CPU에서 진드기에 대해 이야기하는 것은 어리석은 일이지만 나에게는 빠진 것 같은 느낌이 들었습니다 :)
CPU 클럭 틱은 본질적으로 주기적입니까?
당연히 아니지. 아주 최고의 시계조차도주기적인 것은 아닙니다. 열역학 법칙은 다음과 같이 말합니다.
최고의 시계 개발자는 열역학의 법칙을 극복하기 위해 매우 열심히 노력합니다. 그들은 이길 수는 없지만 깨지기에는 매우 가깝습니다. CPU의 시계? 최고의 원자 시계와 비교하면 쓰레기입니다. 네트워크 시간 프로토콜 이 존재 하는 이유 입니다.
예측 : 세계 최고의 원자 시계가 2015 년 6 월 30 일 23:59:59 UTC에서 2015 년 6 월 30 일 23:59:60 UTC에서 2015 년 7 월 1 일 00:00:00으로 갈 때 약간의 혼란이 다시 나타납니다. UTC. 너무 많은 시스템은 윤초를 인식하지 못하고 보안 수준을 2로 설정합니다 (1 초 이상의 시간 변경을 방지). 이러한 시스템의 클럭 지터는 네트워크 시간 프로토콜 윤초가 거부됨을 의미합니다. 2012 년과 마찬가지로 많은 컴퓨터가 배를 belly습니다.
2000 년경, CPU의 클럭 속도가 휴대폰이 작동하는 범위에 도달하기 시작했을 때 실제 클럭 속도에 변화를주는 것이 일반적이되었습니다. 그 이유는 간단합니다. CPU 클록이 정확히 900Mhz이면 모든 전자 간섭이 해당 주파수에서 생성됩니다. 클럭 주파수를 895와 905Mhz 사이에서 조금씩 변경하면 간섭이 해당 범위에 분산됩니다.
최신 CPU는 열 제한이 있기 때문에 가능했습니다. 나중에 시계 속도가 느려질 때 냉각 될 수 있으므로 짧은 시간 동안 약간 빠르게 작동하는 데 아무런 문제가 없습니다.
여기에 디지털 로직 디자이너. 입력 신호에 응답하여 논리 네트워크가 변경되는 데 걸리는 실제 시간은 전파 지연 입니다. 시스템을 다음과 같이 생각하십시오.
registers A,B,C... ---> logic cloud ---> registers A',B',C'
"launch clock"은 첫 번째 레지스터 세트가 변경되는 시간입니다. "캡처 클록"은 한주기 후에 다음 클록 에지입니다. 시스템이 작동하려면 캡처 클럭이 도착하기 전에 로직 클라우드의 출력이 안정적이어야합니다.
이 작업을 수행하는 프로세스는 타이밍 분석입니다. 물리 기반 시스템 시뮬레이션을 사용 하여 모든 출력에 대한 최악의 도착 시간을 계산하십시오. 시스템 전체에서이 숫자 중 가장 큰 숫자가 최소 클럭주기를 설정합니다.
최악의 경우를 참고하십시오 . 실제 전파 시간은 짧아 지지만 제조 공정 변동, 현재 온도 및 칩 전압 ( PVT )에 따라 다릅니다 . 이는 실제 용어로 더 빠른 클럭 (오버 클로킹)을 적용 할 수 있으며 작동 할 수 있음을 의미합니다. 0x1fffffff + 1 = 0x1f000000
캐리 비트가 제 시간에 도착하지 않는지 를 결정하는 등의 오류가 발생할 수도 있습니다 .
칩에는 보드에 두 개 이상의 클럭이있을 수 있으며 (보통 FSB는 코어보다 느림) 실제 클럭은 열 제어 목적으로 증가 또는 감소하거나 다양 할 수 있습니다 (EMC 테스트 통과를 위해 확산 스펙트럼 사용에 대한 MSalter의 답변).
CPU의 명령 지속 시간이 수정 진동과 엄격하게 동기화됩니까? 아니면 다음 틱 전에 CPU가 지시를 달성해야합니까?
둘 다. 명령 지속 시간은 몇 가지 클럭 틱이지만,이 수는 명령 요구 사항에 따라 달라질 수 있습니다. 예를 들어, 특정 메모리 위치가 L1 캐시에있을 때까지 명령을 진행할 수없는 경우 다음 클럭 틱 전에 명령이 완료되지 않습니다. 해당 명령이 진행될 때까지 진행되지 않습니다.
그러나 CPU가 무언가를하기로 결정한 경우, 기본적인 방법은 특정 정보가 CPU의 특정 부분으로 이동하도록 내부 스위치를 설정하는 것입니다. 입력이 해당 부분에 도달하고 출력이 다음 부분에 도달 할 때까지 기다립니다. 이 대기 부분은 시계의 목적입니다.
두 개의 이진 입력을 취해 합산하여 세 번째 와이어 세트에 합을 출력하는 물리적 회로를 상상해보십시오. 더하기 위해 CPU는이 가산기에 도달하기 위해 두 개의 숫자를 추가하고 CPU 레지스터 래치로가는 출력을 정렬해야합니다. CPU는 입력이 가산기에 도달하고 가산기가 출력을 생성하고 출력이 래치에 도달 할 때까지 출력을 저장하도록 래치에 지시 할 수 없습니다. 이것은 클럭의 목적입니다. 입력을 어딘가에 배치하고 출력을 사용할 준비가되기를 기다리는 사이의 대기 시간을 설정하는 것입니다.