कालद विचलन

क्लॉक स्क्यू (इसको कभी-कभी टाइमिंग स्क्यू कहा जाता है) सिंक्रोनस डिजिटल इलेक्ट्रॉनिक्स परिपथ प्रणाली (जैसे कंप्यूटर प्रणाली) में एक घटना है जिसमें एक ही स्रोत क्लॉक संकेत गेट के कारण अलग-अलग समय पर अलग-अलग घटकों पर आता है या अधिक उन्नत अर्धचालक उपकरण का निर्माण प्रौद्योगिकी में, वायर संकेत प्रसार विलंब किन्हीं दो घड़ियों के पाठ्यांकों के बीच तात्क्षणिक अंतर को उनका स्क्यू कहा जाता है।

अधिकांश डिजिटल परिपथ का संचालन एक आवधिक संकेत द्वारा सिंक्रनाइज़ किया जाता है जिसे क्लॉक संकेत के रूप में जाना जाता है जो परिपथ पर उपकरणों के अनुक्रम और पेसिंग को निर्देशित करता है। यह क्लॉक एक ही स्रोत से परिपथ के सभी मेमोरी तत्वों में वितरित की जाती है, जो उदाहरण के लिए हार्डवेयर रजिस्टर या फ्लिप-फ्लॉप (इलेक्ट्रॉनिक्स) हो सकता है। एज-ट्रिगर रजिस्टरों का उपयोग करने वाले एक परिपथ में, जब क्लॉक एज या टिक एक रजिस्टर पर आता है तो रजिस्टर इनपुट को रजिस्टर आउटपुट में स्थानांतरित करता है और ये नवीनतम आउटपुट वैल्यू अगली क्लॉक टिक के लिए रजिस्टर इनपुट पर मान प्रदान करने के लिए संयोजन तर्क के माध्यम से प्रवाहित होते हैं।

आदर्श रूप से, प्रत्येक मेमोरी तत्व का इनपुट अगली क्लॉक की टिक के लिए समय में अपने अंतिम मूल्य तक पहुँच जाता है ताकि पूरे परिपथ के व्यवहार का उपयुक्त अनुमान लगाया जा सके भौतिक संरचना, तापमान और पथ की लंबाई में अंतर के कारण परिपथ के विभिन्न तत्वों के बीच होने वाली भिन्नता के लिए अधिकतम गति जिस पर एक प्रणाली चल सकती है।

एक तुल्यकालिक परिपथ में, दो रजिस्टरों, या फ्लिप-फ्लॉप, को "अनुक्रमिक रूप से आसन्न" कहा जाता है यदि कोई तर्क पथ उन्हें जोड़ता है। स्रोत पर क्लॉक के आगमन के समय के साथ दो क्रमिक रूप से आसन्न रजिस्टरों Ri और Rj को देखते हुए क्रमशः TCi और TCj के बराबर क्लॉक पिन दर्ज करते हैं, क्लॉक स्क्यू को $T_{skew i, j} = T_{Ci} − T_{Cj}$ के रूप में परिभाषित किया जा सकता है।

परिपथ डिजाइन में
क्लॉक स्क्यू कई अलग-अलग चीजों के कारण हो सकता है, जैसे वायर-इंटरकनेक्ट की लंबाई, तापमान भिन्नता, मध्यवर्ती उपकरणों में भिन्नता, कैपेसिटिव कपलिंग, सामग्री की खामियां, और क्लॉक का उपयोग करने वाले उपकरणों के क्लॉक इनपुट पर इनपुट कैपेसिटेंस में अंतर जैसे ही परिपथ की क्लॉक की दर बढ़ती है, समय अधिक महत्वपूर्ण हो जाता है और यदि परिपथ को ठीक से काम करना है तो कम बदलाव को सहन किया जा सकता है।

क्लॉक का स्क्यू दो प्रकार का होता है: ऋणात्मक स्क्यू और धनात्मक स्क्यू। सकारात्मक स्क्यू तब होता है जब प्राप्त करने वाला रजिस्टर ट्रांसमिटिंग रजिस्टर की तुलना में बाद में क्लॉक की टिक प्राप्त करता है। नकारात्मक स्क्यू विपरीत है: प्रेषण रजिस्टर को बाद में प्राप्त करने वाले रजिस्टर की तुलना में क्लॉक की टिक मिलती है। जीरो क्लॉक स्क्यू का मतलब ट्रांसमिटिंग और रिसीविंग रजिस्टर के साथ-साथ क्लॉक टिक के आने से है।

हानिकारक स्क्यू
क्लॉक के टेढ़े होने के कारण दो प्रकार के उल्लंघन हो सकते हैं। एक समस्या तब होती है जब क्लॉक पहले रजिस्टर तक पहुँचती है और दूसरे रजिस्टर की ओर क्लॉक का संकेत पहले रजिस्टर के आउटपुट की तुलना में दूसरे रजिस्टर में धीमी गति से यात्रा करता है - पहले रजिस्टर का आउटपुट दूसरे रजिस्टर इनपुट तक तेज़ी से पहुँचता है और इसलिए इसे बदलकर क्लॉक किया जाता है दूसरे रजिस्टर पर प्रारंभिक डेटा, या शायद लैच्ड डेटा की अखंडता को नष्ट करना। इसे होल्ड उल्लंघन कहा जाता है क्योंकि पिछले डेटा को गंतव्य फ़्लिप-फ़्लॉप पर ठीक से क्लॉक किए जाने के लिए पर्याप्त समय तक नहीं रखा जाता है। एक अन्य समस्या तब उत्पन्न होती है जब गंतव्य फ्लिप-फ्लॉप स्रोत फ्लिप-फ्लॉप की तुलना में पहले क्लॉक की टिक प्राप्त करता है - डेटा संकेत में अगली क्लॉक की टिक से पहले गंतव्य फ्लिप-फ्लॉप तक पहुंचने के लिए बहुत कम समय होता है। यदि यह ऐसा करने में विफल रहता है, तो एक सेटअप उल्लंघन होता है, तथाकथित क्योंकि नया डेटा सेट नहीं किया गया था और अगली क्लॉक के आने से पहले स्थिर था। सेटअप उल्लंघन की तुलना में होल्ड उल्लंघन अधिक गंभीर है क्योंकि इसे क्लॉक की अवधि बढ़ाकर ठीक नहीं किया जा सकता है। सकारात्मक स्क्यू और नकारात्मक स्क्यू सेटअप को नकारात्मक रूप से प्रभावित नहीं कर सकता है और क्रमशः समय की कमी को रोक सकता है (नीचे असमानताएं देखें)।

फायदेमंद स्क्यू
जहां एक संकेत मोटे तौर पर एक परिपथ को देखता है, इससे पहले कि यह शुरू होने वाले संकेतों / राज्य-संक्रमणों को स्थिर किया जाना चाहिए, इससे पहले कि यह राज्य संक्रमणों के एक और सेट को संकेत देता है - और यह क्लॉक की ऊपरी आवृत्ति को सीमित करता है। स्क्यू इस प्रकार क्लॉक की आवृत्ति कम हो जाती है जिस पर परिपथ सही ढंग से काम करता है। पथ से जुड़े प्रत्येक स्रोत रजिस्टर और गंतव्य रजिस्टर के लिए, निम्नलिखित सेटअप और होल्ड असमानताओं का पालन किया जाना चाहिए: जहाँ
 * 1) $$ T \ge reg + path_{max} + J + S - (s_d - s_s) $$
 * 2) $$ (s_d - s_s) \le reg + path_{min} - J - H $$
 * टी क्लॉक की अवधि है,
 * reg स्रोत रजिस्टर की क्यू देरी की क्लॉक है,
 * $$path_{max}$$ स्रोत से गंतव्य तक सबसे लंबी देरी वाला मार्ग है,
 * जे जिटर पर ऊपरी बाउंड है,
 * एस गंतव्य रजिस्टर का सेटअप समय है
 * $$(s_d - s_s)$$ स्रोत से गंतव्य रजिस्टरों तक क्लॉक स्क्यू प्रतिनिधित्व करता है,
 * $$path_{min}$$ स्रोत से गंतव्य तक सबसे कम विलंब वाला पथ है,
 * H डेस्टिनेशन रजिस्टर का होल्ड टाइम है,
 * $$s_d$$ गंतव्य रजिस्टर के लिए क्लॉक तिरछी है, और
 * $$s_s$$ स्रोत रजिस्टर के लिए क्लॉक तिरछी है।

सेटअप उल्लंघनों को ठीक करने के लिए पॉज़िटिव क्लॉक स्क्यू अच्छे हैं, लेकिन होल्ड उल्लंघन का कारण बन सकते हैं। निगेटिव क्लॉक स्क्यू होल्ड उल्लंघन से बचाव कर सकता है, लेकिन सेटअप उल्लंघन का कारण बन सकता है।

उपरोक्त असमानताओं में, एकल पैरामीटर, J, का उपयोग घबराना  के लिए किया जाता है। यह पैरामीटर सभी स्रोत रजिस्टर/गंतव्य रजिस्टर जोड़े पर जिटर में अंतर के लिए ऊपरी और निचली सीमा होनी चाहिए। हालाँकि, यदि क्लॉक वितरण नेटवर्क की संरचना ज्ञात है, तो विभिन्न स्रोत रजिस्टर/गंतव्य रजिस्टर जोड़े में अलग-अलग जिटर पैरामीटर हो सकते हैं, और सेटअप बाधा के मान के विपरीत होल्ड बाधा के लिए एक अलग जिटर मान का उपयोग किया जा सकता है। उदाहरण के लिए, यदि स्रोत रजिस्टर और गंतव्य रजिस्टर एक सामान्य पास के क्लॉक डिजिटल बफर से अपने क्लॉक संकेत प्राप्त करते हैं, तो उस होल्ड कंस्ट्रेंट के लिए जिटर बाउंड बहुत छोटा हो सकता है, क्योंकि उस क्लॉक संकेत में कोई भी बदलाव दो रजिस्टरों को समान रूप से प्रभावित करेगा। उसी उदाहरण के लिए, सेटअप बाधा के लिए बाध्य जिटर होल्ड बाधा से बड़ा होना चाहिए, क्योंकि जिटर क्लॉक टिक से क्लॉक टिक तक भिन्न हो सकता है। यदि स्रोत रजिस्टर क्लॉक डिस्ट्रीब्यूशन नेटवर्क के लीफ बफर से अपना क्लॉक संकेत प्राप्त करता है, जो डेस्टिनेशन रजिस्टर को फीड करने वाले लीफ बफर से बहुत दूर है, तो दो रजिस्टरों के लिए अलग-अलग क्लॉक पाथ को ध्यान में रखते हुए जिटर बाउंड बड़ा होना चाहिए।, जिसमें अलग-अलग शोर स्रोत हो सकते हैं।

फाइल: लॉन्ग एंड शिफ्ट पाथ2.pdf|थंब|फिगर 1. जीरो स्क्यू के खतरे। FF2 -> FF3 पथ होल्ड उल्लंघन के साथ खराब हो जाएगा यदि FF3 में थोड़ी सी अतिरिक्त क्लॉक देरी, जैसे क्लॉक जिटर, होती है।

फ़ाइल:लंबा और शिफ्ट पथ स्क्यू2.pdf|अंगूठा|चित्र 2. FF2 के क्लॉक इनपुट पर डाली गई देरी की एक छोटी मात्रा FF2 -> FF3 पथ में होल्ड उल्लंघन के विरुद्ध सुरक्षा करती है, और उसी समय FF1 -> की अनुमति देती है कम क्लॉक अवधि में संचालित करने के लिए FF2 पथ। यह जानबूझकर स्क्यू परिपथ चित्र 1 के शून्य स्क्यू परिपथ की तुलना में अधिक सुरक्षित और तेज़ है।

आंकड़े 1 और 2 एक ऐसी स्थिति का वर्णन करते हैं जहां जानबूझकर क्लॉक स्क्यू करना एक तुल्यकालिक परिपथ को लाभ पहुंचा सकता है। चित्र 1 के शून्य स्क्यू परिपथ में, एक लंबा रास्ता फ्लिप-फ्लॉप FF1 से फ्लिप-फ्लॉप FF2 तक जाता है, और एक छोटा रास्ता, जैसे शिफ्ट-रजिस्टर पथ, FF2 से FF3 तक। FF2 -> FF3 पथ खतरनाक रूप से होल्ड उल्लंघन के करीब है: यदि FF3 पर थोड़ी सी अतिरिक्त क्लॉक की देरी भी होती है, तो यह FF3 के D इनपुट पर डेटा को नष्ट कर सकता है, इससे पहले कि क्लॉक FF3 के क्यू के माध्यम से इसे देखने के लिए आती है आउटपुट। यह तब भी हो सकता है जब FF2 और FF3 शारीरिक रूप से एक-दूसरे के करीब हों, अगर उनका क्लॉक इनपुट क्लॉक डिस्ट्रीब्यूशन नेटवर्क के अलग-अलग लीफ बफ़र्स से आया हो।

चित्रा 2 दिखाता है कि जानबूझकर क्लॉक के झुकाव के साथ समस्या को कैसे ठीक किया जा सकता है। FF2 के क्लॉक इनपुट से पहले थोड़ी सी अतिरिक्त देरी को रोका जाता है, जो तब सुरक्षित रूप से FF2 -> FF3 पथ को उसके होल्ड उल्लंघन से दूर रखता है। एक अतिरिक्त लाभ के रूप में, यह वही अतिरिक्त क्लॉक विलंब FF1 -> FF2 पथ के लिए सेटअप बाधा को आराम देता है। FF1 -> FF2 पथ एक क्लॉक की अवधि में सही ढंग से काम कर सकता है जो कि शून्य क्लॉक स्क्यू मामले के लिए आवश्यक से कम है, अतिरिक्त क्लॉक विलंब बफर की देरी के बराबर राशि से।

जानबूझकर क्लॉक स्क्यू करने के बारे में एक आम गलत धारणा यह है कि यह शून्य क्लॉक स्क्यू से अधिक खतरनाक है, या यह कि क्लॉक वितरण नेटवर्क में देरी के अधिक उपयुक्त नियंत्रण की आवश्यकता है। हालाँकि यह चित्र 1 का शून्य स्क्यू परिपथ है जो खराबी के करीब है - FF2 -> FF3 जोड़ी के लिए थोड़ी मात्रा में सकारात्मक क्लॉक स्क्यू होने से पकड़ का उल्लंघन होगा, जबकि चित्र 2 का जानबूझकर स्क्यू परिपथ अनपेक्षित देरी के प्रति अधिक सहिष्णु है क्लॉक वितरण में बदलाव।

इष्टतम स्क्यू
यदि अलग-अलग रजिस्टरों पर क्लॉक के आगमन के समय को चर के रूप में देखा जाता है ताकि सेटअप को संतुष्ट करते हुए क्लॉक की अवधि को कम करने के लिए समायोजित किया जा सके और परिपथ के माध्यम से सभी पथों के लिए असमानताएं पकड़ सकें, तो परिणाम एक रैखिक प्रोग्रामिंग समस्या है। इस रेखीय कार्यक्रम में, शून्य क्लॉक स्क्यू केवल एक व्यवहार्य बिंदु है - रैखिक कार्यक्रम का समाधान आम तौर पर एक क्लॉक की अवधि देता है जो कि शून्य स्क्यू द्वारा प्राप्त की गई अवधि से कम है। इसके अलावा, शून्य स्क्यू मामले से अधिक या उसके बराबर सुरक्षा मार्जिन की गारंटी लीनियर प्रोग्राम में उचित रूप से सेटअप और होल्ड समय और जिटर बाउंड करके दी जा सकती है।

इस रेखीय कार्यक्रम के सरल रूप के कारण, समाधान पर पहुंचने के लिए आसानी से क्रमादेशित एल्गोरिथम उपलब्ध है। वीएलएसआई और एफपीजीए डिजाइन के लिए अधिकांश सीएडी प्रणाली में क्लॉक स्क्यू को अनुकूलित करने की सुविधाएं हैं।

क्लॉक स्क्यू और क्लॉक जिटर
के बीच भ्रम

क्लॉक स्रोत से प्रत्येक क्लॉक किए गए रजिस्टर में क्लॉक लेटेंसी में स्थिर अंतर के कारण क्लॉक स्क्यू होने के अलावा, कोई भी क्लॉक संकेत पूरी तरह से आवधिक नहीं है, ताकि क्लॉक अवधि या क्लॉक चक्र का समय एक घटक पर भी भिन्न हो, और यह भिन्नता ज्ञात हो क्लॉक जिटर के रूप में। क्लॉक डिस्ट्रीब्यूशन नेटवर्क में एक विशेष बिंदु पर, क्लॉक टाइमिंग अनिश्चितता के लिए जिटर एकमात्र योगदानकर्ता है।

सन्निकटन के रूप में, दो रजिस्टरों के बीच कुल क्लॉक टाइमिंग अनिश्चितता पर चर्चा करना अक्सर उपयोगी होता है, जैसे कि स्पेसियल क्लॉक स्क्यू (क्लॉक स्रोत से क्लॉक लेटेंसी में स्थानिक अंतर), और क्लॉक जिटर (अर्थात् क्लॉक की गैर-आवधिकता) नेटवर्क में एक विशेष बिंदु पर)। दुर्भाग्य से, बिजली की आपूर्ति, स्थानीय तापमान, और अन्य संकेतों के लिए शोर युग्मन में स्थानीय समय-निर्भर भिन्नताओं के कारण स्थानिक क्लॉक स्क्यू समय एक चक्र से दूसरे चक्र में भिन्न होता है।

इस प्रकार, विभिन्न स्थानों पर रजिस्टर भेजने और प्राप्त करने के सामान्य मामले में, कुल क्लॉक समय अनिश्चितता को स्थानिक स्क्यू और घबराहट में अलग करने का कोई स्पष्ट तरीका नहीं है। इस प्रकार कुछ लेखक स्थानिक क्लॉक स्क्यू और क्लॉक जिटर के योग का वर्णन करने के लिए क्लॉक स्क्यू शब्द का उपयोग करते हैं। इसका निश्चित रूप से मतलब है कि दो बिंदुओं के बीच की क्लॉक स्क्यू चक्र से चक्र में भिन्न होती है, जो कि एक जटिलता है जिसका उल्लेख शायद ही कभी किया जाता है। कई अन्य लेखक क्लॉक स्क्यू शब्द का उपयोग केवल क्लॉक के समय की स्थानिक भिन्नता के लिए करते हैं, और क्लॉक जिटर शब्द का उपयोग कुल क्लॉक टाइमिंग अनिश्चितता के बाकी हिस्सों का प्रतिनिधित्व करने के लिए करते हैं। इसका निश्चित रूप से मतलब है कि प्रत्येक घटक पर क्लॉक का कंपन अलग होना चाहिए, जिस पर फिर से शायद ही कभी चर्चा की जाती है।

सौभाग्य से, कई मामलों में, स्थानिक क्लॉक स्क्यू चक्र से चक्र तक काफी स्थिर रहता है, जिससे कि कुल क्लॉक समय की अनिश्चितता के बाकी हिस्सों को एक सामान्य क्लॉक घबराना मान से अच्छी तरह अनुमानित किया जा सकता है।

एक नेटवर्क पर
इंटरनेट जैसे नेटवर्क पर, क्लॉक स्क्यू नेटवर्क के भीतर विभिन्न घड़ियों की आवृत्ति (समय के साथ चरण (तरंगों) का पहला व्युत्पन्न) में अंतर का वर्णन करता है। नेटवर्क ऑपरेशंस जिन्हें TIMESTAMP  की आवश्यकता होती है जो मेजबानों में तुलनीय हैं, क्लॉक स्क्यू से प्रभावित हो सकते हैं। कई प्रोटोकॉल (जैसे नेटवर्क टाइम प्रोटोकॉल) क्लॉक के झुकाव को कम करने और अधिक स्थिर कार्यों का उत्पादन करने के लिए डिज़ाइन किए गए हैं। कुछ एप्लिकेशन (जैसे कि  खेल सर्वर ) क्लॉक स्क्यू के कारण विश्वसनीयता की समस्याओं से बचने के लिए अपने स्वयं के तुल्यकालन तंत्र का उपयोग कर सकते हैं।

इंटरफेस
क्लॉक स्क्यू यही कारण है कि तेज गति या लंबी दूरी पर, समानांतर इंटरफेस (जैसे समानांतर एससीएसआई) पर सीरियल इंटरफेस (जैसे सीरियल संलग्न एससीएसआई  या  USB ) को प्राथमिकता दी जाती है।

यह भी देखें

 * क्लॉक का बहाव
 * घबराना
 * स्क्यूपन