कंप्यूटर में घड़ियों का उपयोग क्यों किया जाता है?


22

जैसा कि मुझे पता है, एक घड़ी सभी लॉजिक ऑपरेशंस को नियंत्रित करती है, लेकिन यह कंप्यूटर की गति को भी सीमित करती है क्योंकि गेट्स को घटक के आधार पर कम से उच्च या उच्च से निम्न में बदलने के लिए घड़ी का इंतजार करना पड़ता है। यदि कोई घड़ी शामिल नहीं की गई थी, तो फाटक जितनी तेजी से बदल जाएगा, जब भी उन्हें आज्ञा दी जाएगी, इसलिए कंप्यूटर की गति को क्यों नहीं बढ़ाया जाएगा और घड़ियों का उपयोग क्यों किया जाता है?


एक उचित उत्तर के लिए समय नहीं है, लेकिन सबसे बुनियादी स्तर पर, इसलिए सभी डिजिटल चीजें एक ही ढोलकिया की ताल पर मार्च कर रही हैं। एसिंक्रोनस बनाम एसिंक्रोनस देखें।
मैट यंग

कंप्यूटर और मशीनों में घड़ी के संकेतों के संभावित डुप्लिकेट , (और यह प्रश्न एक वास्तविक प्रश्न के रूप में बंद नहीं किया गया था ...)
एमाद्यूस

कार्यों की एक संकीर्ण श्रेणी के लिए, एनालॉग कंप्यूटर डिजिटल कंप्यूटर की तुलना में तेज हो सकते हैं।
निक एलेक्सीव

1
इसलिए वे जानते हैं कि यह किस समय है! (क्षमा करें, विरोध नहीं कर सकता)
स्कॉट सीडमैन

जवाबों:


32

कंप्यूटर में घड़ियों का उपयोग इस सरल कारण के लिए किया जाता है कि सबसे अधिक नहीं तो सभी सर्कुलेटरी अनुक्रमिक तर्क है

एक तुल्यकालिक सर्किट में, एक इलेक्ट्रॉनिक थरथरानवाला जिसे घड़ी कहा जाता है, दोहरावदार दालों का एक क्रम उत्पन्न करता है जिसे घड़ी संकेत कहा जाता है जो सर्किट में सभी मेमोरी तत्वों को वितरित किया जाता है।

अब, यह संतोषजनक और मंजूर नहीं लग सकता है, आप यथोचित पूछेंगे कि "कंप्यूटर में सिंक्रोनस सर्किट का उपयोग क्यों किया जाता है?" लेकिन यह भी एक आसान सवाल का जवाब है:

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

अनुसंधान का एक सक्रिय क्षेत्र अतुल्यकालिक कंप्यूटिंग है जहाँ सबसे अधिक नहीं है यदि सभी सर्किट्री अतुल्यकालिक अनुक्रमिक तर्क है


अतुल्यकालिक अनुक्रमिक तर्क पर विकिपीडिया टुकड़ा बल्कि संक्षिप्त है; यह तर्क के बीच अंतर करने में मददगार हो सकता है, जिसमें एक भी घड़ी नहीं है, लेकिन यह गारंटी दे सकता है कि सर्किट के इनपुट रेस की स्थिति पैदा नहीं करेंगे या, कम से कम, कि किसी भी सर्किट के आउटपुट जिनके इनपुट में रेस की स्थिति नहीं होगी। उपयोग किया गया।
सुपरकैट

मुझे लगता है कि यह ध्यान देने योग्य है कि जेसेक करपीस्की द्वारा निर्मित एक पूरी तरह से अतुल्यकालिक कंप्यूटर था जिसे KAR-65 नाम दिया गया था। दुर्भाग्य से मुझे अंग्रेजी में इसके बारे में कुछ नहीं मिला।
इल्मो

6

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

यहाँ एक घड़ी का उपयोग यह सुनिश्चित करेगा कि 8 डेटा लाइनें एक घड़ी चक्र के लिए प्रस्तुत किए जा रहे पूर्णांक के लिए सही मान रखती हैं और यह कि ALU उसी घड़ी चक्र के भीतर उस डेटा को "एकत्रित" करेगी।

मुझे लगता है कि यह संभवतः सबसे अच्छा विवरण नहीं था, अनिवार्य रूप से एक घड़ी के बिना डेटा स्थिरता सुनिश्चित करने की तुलना में बहुत अधिक कठिन होगा, गति में किसी भी संभावित वृद्धि से यह लायक हो जाएगा, आप दौड़ की बहुत सारी समस्याओं में भाग लेंगे।


6

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

एक "वैध" इनपुट और एक "वैध" आउटपुट के साथ ALU का निर्माण करना संभव होगा, और निर्दिष्ट करें कि "वैध" इनपुट प्रदान किया जाता है एक संगणना प्रदर्शन करने से पहले पर्याप्त मात्रा में समय के लिए कम है, और डेटा इनपुट में सम्‍मिलित है "मान्य" इनपुट उच्च होने से पहले वांछित मान, "वैध" आउटपुट उच्च तक नहीं जाएगा जब तक कि आउटपुट बिट वास्तव में सही नहीं होते। इस तरह के डिजाइन को संभवतः पारंपरिक ALU के रूप में लगभग दो बार सर्किटरी की आवश्यकता होगी [मूल रूप से यह ट्रैक रखना होगा कि क्या प्रत्येक बिट "शून्य" होने के लिए या "ज्ञात" एक होने के लिए है; एक बार हर आउटपुट बिट की स्थिति ज्ञात होने के बाद इसका "वैध" आउटपुट सही हो जाएगा]।

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

एक सामान्य घड़ी को चलाने से न केवल यह निर्धारित करने के लिए सर्किट्री की आवश्यकता समाप्त हो जाती है जब एक संगणना का आउटपुट मान्य होता है, यह समय "क्लोज़ कॉल" को भी समाप्त करने की अनुमति देता है। यदि सिस्टम में सब कुछ 100Mhz की घड़ी से चलता है, तो घड़ी की बढ़त के बाद 1ns तक कोई भी प्रतिक्रिया घड़ी में नहीं बदलती है, और घड़ी की बढ़त के जवाब में जो कुछ भी होने वाला है, वह 7ns के भीतर होता है, तो वह सब कुछ जो कुछ होने से पहले होने वाला है विशेष रूप से क्लॉक एज कम से कम 3ns से "जीत" जाएगा, और एक घड़ी की बढ़त के बाद कम से कम 1ns द्वारा "खो" जाने तक सब कुछ नहीं होगा। यह निर्धारित करने से पहले कि घड़ी के पहले या बाद में सिग्नल की संभावना क्या है, जब यह "बंद" नहीं होने की गारंटी है, यह निर्धारित करने की तुलना में बहुत आसान है कि कौन से दो मनमाने ढंग से सिग्नल पहले होते हैं।


4

डिजिटल सिस्टम या तो सिंक्रोनस या एसिंक्रोनस हो सकते हैं । एसिंक्रोनस सिस्टम पर, आउटपुट किसी भी समय बदल सकता है, सिंक्रोनस सिस्टम से अलग, जो अपने आउटपुट को बदलने के लिए घड़ी पर निर्भर करता है ।

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

मैं इस से बहुत नकल की है Digital Systems: Principles and Applications, 10th edition by R. J. Tocci et al.


3

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

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

यह उस मामले की भी पूरी तरह से उपेक्षा करता है जो कभी-कभी आपको समय के संदर्भ के लिए एक विशिष्ट एप्लिकेशन के लिए घड़ी की आवश्यकता होती है। उदाहरण के लिए, आपका साउंड कार्ड एसिंक्रोनस रूप से काम नहीं कर सकता है क्योंकि इसे ADC या DAC को एक विशिष्ट, सटीक नमूना दर पर अपडेट करने की आवश्यकता है या ऑडियो विकृत हो जाएगा।


1

यदि कोई घड़ी शामिल नहीं की गई थी, तो फाटक जितनी तेजी से बदल जाएगा, जब भी उन्हें आज्ञा दी जाएगी, इसलिए कंप्यूटर की गति को क्यों नहीं बढ़ाया जाएगा और घड़ियों का उपयोग क्यों किया जाता है?

इसे सीधे शब्दों में कहें: क्योंकि मनुष्य सुपर-इंटेलिजेंट प्राणी नहीं हैं, और डिजाइनिंग बिलियन-एलिमेंट सर्किट को संभव बनाने के लिए शॉर्टकट लेना है।

जब हमारी मशीन ओवरलेड्स चढ़ती है, तो वे बहुत अच्छी तरह से घड़ी से छुटकारा पा सकते हैं, प्रक्रिया की भिन्नता के बावजूद घड़ी-कम सर्किट बनाने योग्य की तरह नक़्क़ाशी करने वाले मिनुते को दूर कर सकते हैं, और कुछ गति लाभ का लाभ उठा सकते हैं।

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


इस तथ्य से परे भी कि सिंक्रोनस लॉजिक को डिजाइन करना आसान है, एक ऐसा कंप्यूटर जो 10MHz क्लॉक से चलता है, आम तौर पर डिज़ाइन किया जाएगा ताकि कहीं भी यह निर्धारित किया जा सके कि क्या X के Y से पहले इवेंट X होता है, एक या दोनों इवेंट में देरी होगी मास्टर घड़ी के लिए एक विशेष संबंध बनाने के लिए आवश्यक है ताकि घटनाओं को एक साथ कभी नहीं होगा। इसके अलावा, कुछ मामलों में जहां एक साथ कार्रवाई की संभावना संभव होगी, एक निश्चित घड़ी के संबंध में एक या दोनों संकेतों को एक साथ करने के लिए दो या तीन चक्र निश्चित देरी को जोड़ना स्वीकार्य होगा।
सुपरकाट

यदि डिजाइन अतुल्यकालिक थे, तो कोई यह देख सकता है कि 99% निर्देश 5ns लेते हैं, 0.9% यादृच्छिक रूप से 10ns लेते हैं, 0.09% 30ns, 0.009% 100ns, 0.0009% 300ns, 0.00009% 1us, 0.000009% 3us इत्यादि लेते हैं। एक समय की अस्पष्टता को हल करने में सिस्टम को कितना समय लग सकता है, इसकी गारंटी। ज्यादातर मामलों में, प्रदर्शन होना जो उप-इष्टतम है, लेकिन पूर्वानुमान के प्रदर्शन से बेहतर है जो औसतन तेज़ है, लेकिन अप्रत्याशित विविधताएं हैं जो कभी-कभी गंभीर होती हैं।
सुपरकैट

@supercat 1) क्या ऐसा सर्किट नहीं बनाया जा सकता जहाँ एक साथ कोई घटना घटित न हो? (कम से कम अगर इनपुट पर्याप्त रूप से नियमित हैं) 2) एक सर्किट नहीं बनाया जा सकता है जहां एक साथ होने वाली घटनाओं से कोई फर्क नहीं पड़ता?
अलेक्सांद्र डबिन्सकी

यदि दो घटनाओं के सापेक्ष समय का पता चलता है, तो एक या दूसरे को देरी करके उन्हें एक साथ होने से रोका जा सकता है। उनके सापेक्ष समय को जितना सही ढंग से जाना जाता है, उतनी ही कम देरी की आवश्यकता होगी। यदि सापेक्ष समय ज्ञात नहीं है, तो दो घटनाओं को हल करना संभव है जो एक साथ एक संकेत में हो सकते हैं, जो पहले हुआ, लेकिन सबसे खराब स्थिति वाले व्यवहार को कम करने के लिए, किसी को सर्वश्रेष्ठ-केस व्यवहार में कुछ बहुत गंभीर समझौता करना चाहिए। समझौता जो घड़ी-कम काम करने वाले कंप्यूटर के लिए आवश्यक होगा, वह घड़ी का उपयोग करने से भी बदतर होगा।
सुपरकैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.