클럭 스큐

Clock skew

클럭 스큐(타이밍 스큐라고도 함)는 동기 디지털 회로 시스템(컴퓨터 시스템 )에서 동일한 소스의 클럭 신호가 게이트 또는 더 진보된 반도체 기술에서는 와이어 신호 전파 지연으로 인해 다른 시간에 다른 컴포넌트에 도달하는 현상입니다.두 클럭의 판독치 사이의 순간적인 차이를 스큐라고 합니다.

대부분의 디지털 회선의 동작은, 회로상의 디바이스의 순서와 페이싱을 지시하는 「클럭」이라고 불리는 주기적인 신호에 의해서 동기화됩니다.이 클럭은 단일 소스에서 레지스터나 플립 플랍 의 회선의 모든 메모리 소자로 분배됩니다.엣지 트리거 레지스터를 사용하는 회로에서 클럭 에지 또는 틱이 레지스터에 도달하면 레지스터는 레지스터 입력을 레지스터 출력으로 전송하고 이들 새로운 출력값은 조합 로직을 통해 흘러 다음 클럭 틱의 레지스터 입력에 값을 제공한다.

각 메모리 소자에 대한 입력은 회로 전체의 동작을 정확하게 예측할 수 있도록 다음 클럭 틱에 맞춰 최종값에 도달하는 것이 이상적이다.시스템을 가동할 수 있는 최대 속도는 물리 구성, 온도 및 패스 길이의 차이로 인해 회선의 다양한 요소 간에 발생하는 차이를 고려해야 합니다.

동기회로에서 2개의 레지스터, 즉 플립플랍은 논리패스가 이들을 접속하면 "순차적으로 인접"하다고 한다.소스 및 수신처 레지스터 클럭 핀에서 클럭 도착 시간이 각각 T Ci TCiCjCj 순차적으로 인접한 2개의 레지스터i R 및j R이 주어졌을 때 클럭 스큐는 다음skew i, j 같이 정의할 수 있습니다.

회로 설계 중

클럭 스큐는 와이어 인터커넥트 길이, 온도 변화, 중간 디바이스의 변화, 커패시티브 커플링, 재료 결함, 클럭을 사용하는 디바이스의 클럭 입력용량 차이 등 여러 가지 원인으로 발생할 수 있습니다.회로의 클럭 레이트가 증가함에 따라 타이밍이 더욱 중요해지고 회로가 올바르게 기능하려면 변동이 적어집니다.

클럭 스큐에는 네거티브 스큐와 포지티브 스큐의 2종류가 있습니다.양의 스큐는 수신 레지스터가 클럭틱을 송신 레지스터보다 늦게 수신했을 때 발생합니다.마이너스 스큐는 그 반대입니다.송신 레지스터는 수신 레지스터보다 클럭틱을 늦게 가져옵니다.제로 클럭스큐는, 송신 레지스터와 수신 레지스터에 동시에 클럭틱이 도착하는 것을 의미합니다.[1]

유해 스큐

클럭 스큐에 의해 발생할 수 있는 위반에는 두 가지 유형이 있습니다.하나의 문제는 클럭이 첫 번째 레지스터에 도달하여 두 번째 레지스터로 향하는 클럭 신호가 첫 번째 레지스터의 출력보다 느리게 이동할 때 발생합니다. 첫 번째 레지스터의 출력은 두 번째 레지스터 입력에 더 빨리 도달하므로 두 번째 레지스터의 초기 데이터를 대체하여 클럭킹됩니다.래치된 데이터의 무결성을 파괴합니다.이것은, 행선지 플립 플랍으로 이전 데이터가 적절히 클럭 스루 될 때까지 보관 유지되지 않기 때문에, 보류 위반이라고 불립니다.행선지 플립 플랍이 송신원 플립 플랍보다 빨리 클럭틱을 수신하면 또 다른 문제가 발생합니다.데이터 신호는 다음 클럭틱 전에 행선지 플립 플랍에 도달하는 데 걸리는 시간이 그만큼 짧습니다.그렇지 않으면 셋업 위반이 발생합니다.다음 클럭틱이 도착하기 전에 새로운 데이터가 셋업되어 안정되지 않았기 때문입니다.홀드 위반은 설정 위반보다 심각합니다.클럭 기간을 늘리는 것으로 해결할 수 없기 때문입니다.양의 스큐와 음의 스큐는 각각 설정 및 보류 타이밍 제약에 부정적인 영향을 줄 수 없습니다(아래의 부등식 참조).

유익한 스큐

클럭 스큐는 회선이 정상적으로 동작하는 클럭 주기를 로컬로 단축함으로써 회선에 유리할 수도 있습니다.경로로 연결된 각 소스 레지스터 및 대상 레지스터에 대해 다음과 같은 설정 및 보류 부등식을 준수해야 합니다.

어디에

  • T는 클럭 주기입니다.
  • reg는 Q 지연에 대한 소스 레지스터의 클럭입니다.
  • t x {\ 발신기지에서 수신처로 지연이 가장 긴 경로입니다.
  • J는 지터의 상한입니다.
  • S는 대상 레지스터의 설정 시간입니다.
  • ( -) { ( _ { } - s { } 소스 레지스터에서 수신처 레지스터로의 클럭스큐를 나타냅니다.
  • t n { style _ { } 、 발신기지에서 수신처에 대한 지연이 가장 짧은 경로입니다.
  • H는 행선지 레지스터의 홀드 타임입니다.
  • d 수신처 레지스터에 대한 클럭스큐입니다
  • 소스 레지스터에 대한 클럭 스큐입니다.

양의 클럭 스큐는 셋업 위반을 수정하는 데 도움이 되지만 보류 위반의 원인이 될 수 있습니다.마이너스 클럭스큐는 홀드 위반을 방지할 수 있지만 셋업 위반의 원인이 될 수 있습니다.

위의 부등식에서는 지터를 설명하기 위해 단일 파라미터 J가 사용됩니다.이 파라미터는, 모든 송신원레지스터/행선지 레지스터 쌍에 대한 지터 차이의 상한치여야 합니다.단, 클럭 분배 네트워크의 구조를 알고 있는 경우, 다른 소스 레지스터/행선지 레지스터 쌍은 다른 지터 파라미터를 가질 수 있으며, 설정 제약의 값과 대조적으로 다른 지터 값을 홀드 제약에 사용할 수 있다.예를 들어 소스 레지스터와 수신처 레지스터가 근처의 공통 클럭버퍼로부터 클럭신호를 수신했을 경우, 그 클럭신호의 변동은 2개의 레지스터에 균등하게 영향을 미치기 때문에 그 홀드 제약에 대한 지터는 매우 작을 수 있습니다.같은 예에서는 클럭틱마다 지터가 다를 수 있기 때문에 셋업 제약의 지터바운드는 홀드 제약보다 커야 합니다.소스 레지스터가 수신처 레지스터에 공급되는 리프 버퍼에서 멀리 떨어진 클럭 분배 네트워크의 리프 버퍼로부터 클럭 신호를 수신하는 경우, 지터 바운드는 2개의 레지스터에 대한 다른 클럭 경로를 고려하기 위해 더 커야 하며, 이들 레지스터에 서로 다른 노이즈 소스가 결합될 수 있습니다.

그림 1제로 스큐의 위험성.FF2 -> FF3 패스는 클럭지터 등 FF3에 대한 소량의 추가 클럭 지연이 발생하면 홀드 위반으로 오동작합니다.
그림 2FF2의 클럭 입력에 삽입된 소량의 지연에 의해 FF2 -> FF3 패스의 홀드 위반으로부터 보호되며, 동시에 FF1 -> FF2 패스를 보다 낮은 클럭 주기로 동작시킬 수 있습니다.이 의도적인 스큐 회로는 그림 1의 제로 스큐 회로보다 안전하고 빠릅니다.

그림 1과 그림 2는 의도적인 클럭스큐가 동기회선에 [2]유리할 가능성이 있는 상황을 나타내고 있습니다.그림 1의 제로 스큐 회로는 플립 플랍 FF1에서 플립 플랍 FF2로, 시프트 레지스터 패스 등의 쇼트 패스를 FF2에서 FF3으로 이동한다.FF2 -> FF3 패스는 홀드 위반에 위험할 정도로 가깝습니다.FF3에서 소량의 추가 클럭 지연이 발생할 경우 클럭이 도착하기 전에 FF3의 D 입력 데이터가 파괴되어 FF3의 Q 출력에 클럭이 도달할 수 있습니다.이 문제는 FF2와 FF3가 물리적으로 서로 가까운 경우에도 클럭 디스트리뷰션네트워크의 다른 리프버퍼에서 클럭 입력이 온 경우 발생할 수 있습니다.

그림 2는 의도적인 클럭 스큐로 문제를 해결하는 방법을 나타내고 있습니다.FF2의 클럭 입력 전에 소량의 추가 지연이 개입되어 FF2 -> FF3 패스가 홀드 위반으로부터 안전하게 배치됩니다.또, 이 같은 추가 클럭 지연에 의해서, FF1-> FF2 패스의 셋업 제약이 완화됩니다.FF1 -> FF2 패스는 제로 클럭스큐 케이스에 필요한 클럭 주기보다 적은 클럭 지연 버퍼의 지연과 같은 양으로 올바르게 동작할 수 있습니다.

의도적인 클럭스큐에 대한 일반적인 오해는 클럭스큐가 제로 클럭스큐보다 반드시 위험하다는 점 또는 클럭 분산 네트워크에서의 지연을 보다 정밀하게 제어해야 한다는 점입니다.단, 오동작에 가까운 것은 그림1의 제로 스큐 회선입니다.즉, FF2-> FF3 쌍의 플러스 클럭스큐를 소량만 사용해도 홀드 위반이 발생합니다.단, 그림2의 의도적인 스큐 회선은 의도하지 않은 클럭 분포의 지연 변동에 대해 내성이 있습니다.

최적의 스큐

개별 레지스터의 클럭 도착 시간이 클럭 주기를 최소화하면서 회로를 통과하는 모든 경로의 부등식을 유지하기 위해 조정되는 변수로 간주되면 결과는 선형 프로그래밍 문제가 됩니다.[3]이 선형 프로그램에서 제로 클럭 스큐는 실현 가능한 포인트일 뿐입니다.이 선형 프로그램에 대한 솔루션은 일반적으로 제로 스큐에 의해 달성되는 것보다 적은 클럭 주기를 제공합니다.또, 리니어 프로그램에서의 셋업과 홀드 타임과 지터 바인드를 적절히 설정함으로써 제로 스큐 케이스 이상의 안전 마진을 확보할 수 있다.

이 선형 프로그램의 단순한 형태 때문에 솔루션에 [2]도달하기 위해 쉽게 프로그래밍된 알고리즘을 사용할 수 있습니다.VLSI 및 FPGA 설계를 위한 대부분의 CAD 시스템에는 클럭스큐를 최적화하는 기능이 포함되어 있습니다.

클럭 스큐와 클럭 지터의 혼동

클럭 소스에서 각 클럭 레지스터까지의 클럭 레이텐시의 정적 차이에 의한 클럭 스큐와 더불어 클럭 신호는 완전히 주기적이지 않기 때문에 클럭 주기 또는 클럭 사이클 시간이 단일 컴포넌트에서도 변화합니다.이 변화를 클럭 지터라고 부릅니다.클럭 분배 네트워크의 특정 시점에서 지터는 클럭 타이밍의 불확실성의 유일한 원인입니다.

근사치로서 2개의 레지스터간의 클럭 타이밍의 불확실성의 합계를 클럭스큐(클럭소스로부터의 클럭 지연의 공간적 차이)와 클럭지터(네트워크의 특정 포인트에서 클럭의 비주기성을 의미)의 합계로서 설명하는 것이 도움이 되는 경우가 많습니다.불행히도 공간 클럭스큐는 전원장치, 로컬 온도 및 다른 신호와의 노이즈 커플링의 시간에 따라 달라지기 때문에 사이클마다 시간이 달라집니다.

따라서 다른 장소에서 레지스터를 송수신하는 일반적인 경우 클럭타이밍의 불확실성을 공간 스큐와 지터로 구분할 수 있는 명확한 방법은 없습니다.따라서 일부 저자는 공간 클럭 스큐와 클럭 지터의 합계를 설명하기 위해 클럭 스큐라는 용어를 사용합니다.이는 물론 두 지점 간의 클럭 스큐가 사이클마다 다르다는 것을 의미하며, 이는 거의 언급되지 않는 복잡성입니다.다른 많은 저자들은 클럭 시간의 공간적 변화에 대해서만 클럭스큐라는 용어를 사용하며 클럭지터라는 용어를 사용하여 전체 클럭 타이밍의 불확실성을 나타냅니다.이는 물론 클럭지터가 각 컴포넌트에서 달라야 함을 의미하며, 이는 다시 거의 설명되지 않습니다.

다행히 대부분의 경우 공간 클럭스큐는 사이클마다 상당히 일정하게 유지되기 때문에 나머지 클럭 타이밍의 불확실성은 단일 공통 클럭지터 값으로 충분히 근사할 수 있습니다.

네트워크상

인터넷 등의 네트워크에서는 클럭스큐는 네트워크 [4]내의 다른 클럭의 주파수 차이(시간에 따른 오프셋의 첫 번째 파생)를 나타냅니다.호스트간에 비교 가능한 타임스탬프가 필요한 네트워크 조작은, 클럭 스큐의 영향을 받을 가능성이 있습니다.다수의 프로토콜(예: Network Time Protocol)은 클럭 스큐를 줄이고 보다 안정적인 기능을 생성하도록 설계되었습니다.일부 애플리케이션(게임 서버 등)은 클럭 스큐로 인한 신뢰성 문제를 피하기 위해 자체 동기화 메커니즘을 사용할 수도 있습니다.

인터페이스

클럭 스큐는 고속 또는 장거리에서는 시리얼 인터페이스(Serial Attached SCSI 또는 USB 등)가 패럴렐 인터페이스(패럴렐 SCSI [citation needed]등)보다 선호되는 이유입니다.

「 」를 참조해 주세요.

레퍼런스

  • Friedman, Eby G. (1995). Clock Distribution Networks in VLSI Circuits and Systems. IEEE Press. ISBN 978-0780310582.
  • Friedman, Eby G. (May 2001). "Clock Distribution Networks in Synchronous Digital Integrated Circuits" (PDF). Proceedings of the IEEE. 89 (5): 665–692. CiteSeerX 10.1.1.7.7824. doi:10.1109/5.929649. Archived from the original (PDF) on 2015-06-01. Retrieved 2017-01-09.
  • Tam, S., Limaye, D.L., and Desai, U.N. (April 2004). "Clock Generation and Distribution for the 130-nm Itanium 2 Processor with 6-MB On-Die L3 Cache". IEEE Journal of Solid-State Circuits. 39 (4).{{cite journal}}: CS1 maint: 작성자 파라미터 사용(링크)
  1. ^ Friedman, E. G. VLSI 회로의 클럭 분포 설계 개요, 1993 IEEE 회로 및 시스템에 관한 국제 심포지엄 (p. 1475-1478)IEEE, 1993.
  2. ^ a b Maheshwari, N. 및 S.S.의 Sapatnekar, Timing Analysis and Optimization of Sequential Circuits, Kluwer, 1999.
  3. ^ Fishburn, J.P. (July 1990). "Clock skew optimization" (PDF). IEEE Transactions on Computers. 39 (7): 945–951. doi:10.1109/12.55696.
  4. ^ Mills, D. "Network Time Protocol (Version 3) Specification, Implementation and Analysis". tools.ietf.org. Retrieved 2017-10-30.