आपके पास प्रति चक्र और उच्च घड़ी की गति दोनों उच्च निर्देश क्यों नहीं हो सकते हैं?


37

PC के INTEL 8086 प्रोसेसर और Apple के रॉकवेल 6502 प्रोसेसर के बीच अंतर के कारण मेगाहर्ट्ज़ मिथक एक प्रचार रणनीति बन गई। 8086 4.77 मेगाहर्ट्ज पर जबकि 6502 1 मेगाहर्ट्ज पर चला। हालांकि, 6502 के निर्देशों में कम चक्रों की आवश्यकता थी; इतने कम, वास्तव में, कि यह 8086 की तुलना में तेजी से भाग गया। कुछ निर्देशों को कम चक्रों की आवश्यकता क्यों है? और 6502 के निर्देशों को कम चक्रों की आवश्यकता क्यों नहीं हो सकती है, इसे 8086 के तेज साइकिलिंग प्रोसेसर के साथ जोड़ा जाए?

प्रति चक्र निर्देशों के लिए विकिपीडिया का लेख (IPC) कहता है

IPC को नियंत्रित करने वाले कारक
प्रति सेकंड दिए गए निर्देशों का स्तर उच्च IPC और कम घड़ी की गति ... या कम IPC और उच्च घड़ी की गति से प्राप्त किया जा सकता है।

आपके पास प्रति चक्र और उच्च घड़ी की गति दोनों उच्च निर्देश क्यों नहीं हो सकते हैं?

शायद यह एक घड़ी चक्र के साथ क्या करना है? विकिपीडिया में सर्किट के तुल्यकालन का उल्लेख है? उसके अर्थ के बारे में सुनिश्चित रूप से नहीं पता है।

या हो सकता है कि पाइप लाइन कैसे काम करती है? मुझे यकीन नहीं है कि एक छोटी पाइपलाइन में निर्देश लंबी पाइपलाइन में निर्देशों से अलग क्यों हैं।

कोई भी जानकारी बहुत अच्छी रहेगी! बस मिथक के पीछे की वास्तुकला को समझने की कोशिश कर रहे हैं। धन्यवाद!

संदर्भ:

चक्र प्रति वृद्धि बनाम चक्र चक्र के अनुसार निर्देश

http://en.wikipedia.org/wiki/Instructions_per_cycle

http://en.wikipedia.org/wiki/Clock_cycle


1
> कुछ निर्देशों को कम चक्रों की आवश्यकता क्यों है? RISC / CISC (अच्छी तरह से )। और 6502 के निर्देशों को कम चक्रों की आवश्यकता क्यों नहीं हो सकती है, इसे 8086 के तेज साइकिलिंग प्रोसेसर के साथ जोड़ा जाए? वे कर सकते हैं और है। समस्या यह है कि एक बार जब आप पहले से ही एक आधार स्थापित कर लेते हैं, तो सब कुछ खोदना और खरोंच से अगला मॉडल शुरू करना मुश्किल है।
सिनेटेक

@Synetech, Intel kinda sorta ने प्रोग्रामर्स को CISC इंस्ट्रक्शन सेट पेश करके, फिर उस RISCier निर्देशों को चिप पर कन्वर्ट करते हुए
Soandos

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

जवाबों:


21

tl; डॉ

छोटी पाइपलाइनों का अर्थ है तेज गति, लेकिन थ्रूपुट को कम कर सकती है। इसके अलावा, नीचे उत्तर # 2 और 3 देखें (वे छोटे हैं, मैं वादा करता हूं)।

लंबा संस्करण:

यहाँ पर विचार करने के लिए कुछ चीजें हैं:

  1. सभी निर्देश समान समय नहीं लेते हैं
  2. सभी निर्देश उस पर निर्भर नहीं करते हैं जो तुरंत किया गया था (या यहां तक ​​कि दस या बीस) निर्देश वापस

एक बहुत ही सरलीकृत पाइपलाइन (आधुनिक इंटेल चिप्स में जो होता है वह जटिल से परे होता है) में कई चरण होते हैं:

Fetch -> Decode -> मेमोरी एक्सेस -> Execute -> Writeback -> प्रोग्राम काउंटर अपडेट

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

मान लें कि आपके पास 5 निर्देश हैं, और आप उन्हें निष्पादित करना चाहते हैं (विकिपीडिया से ली गई तस्वीर, यहां पीसी अपडेट नहीं किया गया है)। यह इस तरह दिखेगा:

यहाँ छवि विवरण दर्ज करें

भले ही प्रत्येक निर्देश को पूरा करने के लिए 5 घड़ी चक्र लगते हैं, लेकिन हर चक्र में एक समाप्त निर्देश पाइपलाइन से बाहर आता है। यदि प्रत्येक चरण के लिए समय 40 ns है, और मध्यवर्ती बिट्स (ऊपर मेरे छह चरण पाइपलाइन का उपयोग करके) के लिए 15 ns है, तो पहला निर्देश प्राप्त करने के लिए 40 * 6 + 5 * 15 = 315 ns लगेगा।

इसके विपरीत, अगर मुझे पाइपलाइन को पूरी तरह से खत्म करना था (लेकिन बाकी सभी चीजों को समान रखें), तो पहला निर्देश प्राप्त करने के लिए केवल 240 ns का समय लगेगा। ("पहले" निर्देश को प्राप्त करने की गति के इस अंतर को विलंबता कहा जाता है। यह सामान्यतः थ्रूपुट की तुलना में कम महत्वपूर्ण है, जो प्रति सेकंड निर्देशों की संख्या है)।

असली अलग हालांकि यह है कि पाइपलाइज्ड उदाहरण में, मुझे हर 60 एनएस में एक नया इंस्ट्रक्शन (पहले एक के बाद) किया जाता है। गैर-पिपली वाले एक में, हर बार 240 लगते हैं। इससे पता चलता है कि पाइपलाइन थ्रूपुट में सुधार करने में अच्छे हैं।

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

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

उत्तर # 2:

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

उत्तर # 3:

क्योंकि आप चक्र गणना को कृत्रिम रूप से "धोखा" दे सकते हैं ताकि आप हर चक्र में दो निर्देश कर सकें (बस घड़ी की गति को आधा कर दें)। यह भी संभव है कि केवल हर दो टिक्स को एक के विपरीत किया जाए (एक 2x घड़ी की गति देते हुए, लेकिन निर्देशों को एक सेकंड में नहीं बदला जाए)।


3
लघु पाइपलाइनों का अर्थ है धीमी घड़ी की धार! लंबी पाइपलाइनों के कारण पेंटियम 4 में उच्च घड़ियाँ थीं, यहाँ WP: "नेटबर्स्ट P6 (पेंटियम III, II, इत्यादि) से भिन्न है, जो बहुत ही उच्च घड़ी की गति को प्राप्त करने के लिए एक बहुत गहरी निर्देश पाइपलाइन की विशेषता है"। मुद्दा यह है कि आप उच्च गति प्राप्त करने के लिए प्रति चरण बहुत कम करते हैं। यह काम करने योग्य साबित नहीं हुआ, हालांकि, और इंटेल ने इसकी वजह से एएमडी को भारी गति खो दी। वे पेंटियम 3 वास्तुकला में वापस चले गए, और "कोर" के साथ आए।
स्टॉल्सविक जू

@stolsvik, आप यह समझा सकते हैं? इससे मुझे कोई मतलब नहीं है (कम अंतरालीय चरणों का मतलब है बाकी सभी बराबर हैं, घड़ी का चक्र छोटा होगा, एक उच्च घड़ी की गति देगा)
सोन्डोस

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

आपके उत्तर # 2 के लिए, CPU केवल डेटा को कैश के माध्यम से एक्सेस करता है (मेमोरी एक्सेस आमतौर पर निर्देश के दृष्टिकोण से पारदर्शी होता है)। घड़ी की आवृत्ति को धीमा करने से यह प्रभावित नहीं होगा कि रैम से डेटा आने में कितना समय लगेगा (यदि यह कैश में नहीं है)। इसके अलावा, बस की चौड़ाई केवल आपके संचालन के आकार के सापेक्ष SIMD संचालन की गति को प्रभावित करती है (यानी मैं एक समय में 64-बिट बस पर 8 8-बिट ऑपरेंड लोड कर सकता हूं, लेकिन मुझे अभी भी 8 64-बिट मानों को मैन्युअल रूप से लोड करना होगा अगर मेरे पास 64-बिट ऑपरेंड हैं)।
ब्रेकथ्रू

2
उत्तर # 1 के लिए भी, जब आप कहते हैं "यदि कोई निर्देश है जो उस चक्र के मेम चरण का उपयोग नहीं करता है, तो मैं एक और जोड़ सकता हूं", यह गलत है। आउट ऑफ ऑर्डर निष्पादन को निर्देश स्तर पर लागू किया जाता है, न कि माइक्रो-ऑपरेशन स्तर पर। यदि किसी निर्देश को पाइपलाइन में दो निष्पादन की आवश्यकता होती है, तो इससे पाइपलाइन में एक बुलबुला पैदा होगा । अंत में, x86 आर्किटेक्चर में मेमोरी रीड / राइट ( [EBX+ECX*4+100]स्टाइल एड्रेसिंग के लिए अनुमति ) के दौरान ऑन-द-फ्लाई में मेमोरी एड्रेस की गणना करने के लिए एक अलग ALU है ।
ब्रेकथ्रू

8

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

कई मामलों में, एक चक्र में बहुत सारे काम करने से आप पूरी पाइपलाइन को साफ कर सकते हैं। यदि सफल होता है, तो इसका मतलब है कि आपका अगला चक्र अन-अनुकूलित होने जा रहा है क्योंकि आपको फिर से पाइपलाइन भरना है, जिसमें कुछ समय लग सकता है।

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

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


यह वास्तव में उनके सवाल का जवाब नहीं देता (जिसका कुछ भी नहीं है कि चीजों को बस क्यों नहीं खत्म किया जा सकता है)। वह पूछ रहा है कि और अधिक चक्र! = हर समय अधिक काम
12:52

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

5

यहाँ एक बहुत ही सरल (शायद स्थूल रूप से ओवरसाइम्प्लिफ़ाइड) स्पष्टीकरण है: कहते हैं कि आपके पास करने के लिए एक विशेष काम है, कहते हैं कि दो 32-बिट संख्याएं जोड़ें। आप दो दृष्टिकोण ले सकते हैं। आप इसे बहुत बड़ी संख्या में बहुत छोटे चरणों में विभाजित कर सकते हैं या आप इसे बहुत बड़े चरणों में विभाजित कर सकते हैं।

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

आप वैकल्पिक रूप से कह सकते हैं, "पहले नंबर को एक रजिस्टर में लाएँ। फिर दूसरे नंबर को लाएँ। फिर कम से कम महत्वपूर्ण बिट्स जोड़ें। फिर पहले से कैरी के साथ दूसरे-सबसे कम महत्वपूर्ण बिट को जोड़ें। फिर तीसरे-कम से कम जोड़ें ... फिर सबसे महत्वपूर्ण बिट्स जोड़ें। यदि कोई कैरी था, तो ओवरफ्लो ध्वज सेट करें। फिर मेमोरी पर परिणाम लिखें। " अब आपके पास भारी संख्या में कदम हैं। लेकिन प्रत्येक चरण बेतुका तेजी से हो सकता है। तो आपके पास प्रति चक्र कम निर्देश हैं (1/36 या तो इस मामले में)। लेकिन आपकी घड़ी की गति बहुत अधिक हो सकती है क्योंकि प्रत्येक चक्र में केवल करने के लिए बहुत कम सा होता है।

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

वास्तविक विशिष्ट व्यापार-नापसंद और चक्र संख्याएं बहुत भिन्न हैं क्योंकि आधुनिक सीपीयू पाइपलाइड और ओवरलैप निर्देश हैं। लेकिन मूल विचार सही है।


2

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

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


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

एक पाइपलाइन किए गए सीपीयू में अतिरिक्त लाभ यह है कि आप अधिक जटिल डिजाइन की कीमत पर, प्रति यूनिट-समय निष्पादित किए गए निर्देशों की संख्या बढ़ा सकते हैं।

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

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


1

किसी विशेष कार्य को पूरा करने में आपका कंप्यूटर कितना समय लेता है, यह कंप्यूटर की घड़ी की गति पर निर्भर नहीं करता है ... यह इस बात पर निर्भर करता है कि कम्प्यूटेशनल इकाइयों को कैसे डिजाइन और इंजीनियर किया जाता है।

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

मान लीजिए कि किसी दिए गए सीपीयू में निर्देशों का एक मिश्रण है जो समाप्त होने के लिए 1 और 100 नैनोसेकंड (एनएस) के बीच लेता है। आप घड़ी की दर को ऐसे सेट कर सकते हैं कि 1 "टिक" 100 ns (10 मेगाहर्ट्ज) है, जिसका अर्थ है कि प्रत्येक निर्देश बिल्कुल 1 टिक में समाप्त होगा। हालाँकि, यदि निर्देश निष्पादन समय समान रूप से वितरित किया जाता है, तो इसका मतलब है कि आपकी कम्प्यूटेशनल इकाइयाँ 50% समय के लिए निष्क्रिय रहेंगी (औसत निष्पादन की गति 50ns होगी, जो टिक निष्क्रिय के अन्य 50ns को छोड़कर)। यदि, दूसरी ओर, आप अपने टिक को 10ns पर सेट करते हैं, तो निर्देश 1 और 10 टिक के बीच होते हैं, लेकिन यूनिट अगले निर्देश के शुरू होने से पहले कभी भी 9ns से अधिक बेकार नहीं होगी, और औसत निष्क्रिय 5ns होगा।

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

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

टी एल; डॉ

एक सीपीयू एक सेकंड में एक्स काम पूरा कर सकता है। यदि आप H घड़ी की गति और I IPC का उपयोग करते हैं, तो हमारे पास I = X / H है। एच बदलने से एक्स नहीं बदलता है, लेकिन यह आई को प्रभावित करता है।


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

मुझे लगता है कि आपने इस तथ्य को याद किया कि सीपीयू एक तुल्यकालिक डिजिटल सर्किट है । निर्देश एक्स नैनोसेकंड नहीं लेते हैं (यह मानते हुए कि आपकी घड़ी चक्र प्रचार देरी से कम है), सब कुछ एक बढ़ती या गिरती घड़ी के किनारे पर होता है - या दोनों। निर्देश एक्स चक्र लेते हैं, समय की एक्स इकाइयाँ नहीं । हां, आप यह संशोधित कर सकते हैं कि चक्र कितना लंबा है, लेकिन अंतर क्या है जब होता है। और अंत में, सीपीयू एक सेकंड में जितना काम कर सकता है, वह घड़ी की गति का एक कार्य है, इसलिए आपका सूत्र वास्तव में यहां जांच नहीं करता है।
cp2141

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

0

प्रति चक्र और उच्च घड़ी की गति दोनों में उच्च निर्देश नहीं हो सकते क्योंकि आवश्यकताएं विरोधाभासी हैं।

एक दिखा सकता है कि, पहले सन्निकटन में, IPC डिजाइन की जटिलता (A) पर निर्भर करता है

IPC = एक sqrt (A)

जबकि अधिकतम आवृत्ति (एफ) डिजाइन तराजू के द्वारा प्राप्त [1]

F = 1 / {b + c sqrt (A)}

एक, बी और सी मापदंडों के साथ।

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

  • मस्तिष्क डिजाइन: उच्च आईपीसी और कम आवृत्ति
  • स्पीड-दानव desing: उच्च आवृत्ति और कम IPC।

[१] कुछ लेखकों का दावा है कि फ्रीक्वेंसी के लिए अभिव्यक्ति "१ / {b + c A}" है, लेकिन दोनों ही मामलों में जटिलता बढ़ने से अधिकतम प्राप्त आवृत्ति घट जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.