"साइकिल प्रति निर्देश" क्या हैं?


23

मैं थोड़ा और अधिक सीख रहा हूं कि प्रोसेसर कैसे काम करते हैं, लेकिन मैं प्रति चक्र निर्देशों के बारे में सीधा उत्तर नहीं दे पाया हूं।

उदाहरण के लिए, मैं इस धारणा के तहत था कि एक चार कोर सीपीयू प्रति चक्र चार निर्देशों को निष्पादित कर सकता है, इसलिए 2Ghz पर चलने वाला चार कोर सीपीयू प्रति सेकंड 8 बिलियन ऑपरेशन निष्पादित करेगा। क्या यह मामला है?

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


नहीं, ऐसी बात नहीं है। आधुनिक x86 CPU आदर्श परिस्थितियों में प्रति चक्र तीन निर्देश प्रति चक्र बनाए रख सकते हैं जबकि कुछ निर्देशों में दर्जनों चक्रों की आवश्यकता हो सकती है।
डेविड श्वार्ट्ज

जवाबों:


22

आपको जिन कीवर्ड को देखना चाहिए , वे हैं CISC , RISC और सुपरस्क्लेर आर्किटेक्चर

CISC

CISC आर्किटेक्चर (x86, 68000, VAX) में एक निर्देश शक्तिशाली है, लेकिन इसे प्रोसेस करने के लिए कई चक्र लगते हैं। पुराने आर्किटेक्चर में, चक्रों की संख्या तय की गई थी, आजकल प्रति निर्देश चक्र की संख्या आमतौर पर विभिन्न कारकों (कैश हिट / मिस, शाखा भविष्यवाणी, आदि) पर निर्भर करती है। उस सामान को देखने के लिए टेबल हैं । अक्सर वहाँ वास्तव में यह मापने की सुविधा भी होती है कि कुछ परिस्थितियों में एक निश्चित निर्देश के तहत कितने चक्र चक्र ( प्रदर्शन काउंटर देखें )।

यदि आप इंटेल के लिए विवरण में रुचि रखते हैं, तो इंटेल 64 और आईए -32 ऑप्टिमाइज़ेशन रेफरेंस मैनुअल बहुत अच्छा है।

RISC

RISC (ARM, PowerPC, SPARC) आर्किटेक्चर का अर्थ है आमतौर पर एक बहुत ही सरल निर्देश केवल कुछ (अक्सर केवल एक) चक्र लेता है।

superscalar

लेकिन सीआईएससी या आरआईएससी की परवाह किए बिना सुपरस्कॉलर वास्तुकला है। सीपीयू एक के बाद एक निर्देश को संसाधित नहीं कर रहा है, लेकिन एक साथ कई निर्देशों पर काम कर रहा है, एक विधानसभा लाइन की तरह।

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


9
मेरे लिए, "असेंबली लाइन" सादृश्य केवल सरल पाइपलाइनिंग का सुझाव देता है, न कि सुपरस्क्लेर आर्किटेक्चर। Superscalar में सीपीयू हार्डवेयर (जैसे पाइपलाइन का एक चरण जो एक अड़चन है) के हिस्सों की प्रतिकृति को थ्रूपुट में सुधार करना शामिल है।
२१:

2
मैं संक्षिप्तता के लिए जोड़ रहा हूँ: RISC = कम अनुदेश सेट; CISC = जटिल अनुदेश सेट। अच्छा स्पष्टीकरण, कैश हिट / मिस अनुपात और (अंततः) टीएलबी को इंगित करने के लिए लुडविग। माइक्रोप्रोसेसर वास्तुकला की व्याख्या करना आसान नहीं है, विशेष रूप से यह सब एक (काफी कॉम्पैक्ट) पोस्ट में रटना है! :)
osij2is

1
जो मैं सुनता हूं, इन दिनों सीपीयू मुख्य स्मृति से दिखाने के लिए काम पर इंतजार कर अपना बहुत समय बिताते हैं। कम से कम यह प्रतिक्रिया मुझे तब मिली जब मैंने पूछा कि सीपीयू में अधिक निष्पादन कोर क्यों नहीं हैं।
सर्फ़स

32

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

पाइपलाइनिंग: एक पाइपलाइन तब होती है जब आप एक ही समय में दोनों का उपयोग करते हैं - आप एक लोड धोते हैं, फिर जब यह सूख जाता है, तो आप अगले लोड को धोते हैं। पहला भार समाप्त होने में 2 चक्र लगते हैं, लेकिन दूसरा भार 1 चक्र के बाद समाप्त हो जाता है। तो, पहले लोड को छोड़कर, ज्यादातर लोड को केवल 1 चक्र की आवश्यकता होती है।

superscalar: सभी कपड़े धोने को लॉन्ड्रोमैट पर ले जाएं। 2 वाशर लें और उन दोनों को लोड करें। जब वे हो जाएं, तो 2 ड्रायर्स ढूंढें और उन दोनों का उपयोग करें। अब आप 60 मिनट में 2 भार धो सकते हैं और सूख सकते हैं। 2 चक्रों में 2 भार है। प्रत्येक लोड में अभी भी 2 चक्र लगते हैं, लेकिन आप उनमें से अधिक अब कर सकते हैं। औसत समय अब ​​प्रति चक्र 1 लोड है।

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

एकाधिक कोर: अपनी मां को कपड़े धोने का आधा हिस्सा दें, जिसमें 2 वाशर और 2 ड्रायर भी हैं। आप दोनों एक साथ काम करने के साथ, आप दोगुना काम कर सकते हैं। यह सुपरसेलकर के समान है, लेकिन थोड़ा अलग है। इसके बजाय आपको प्रत्येक मशीन से और सभी लॉन्ड्री को अपने आप से स्थानांतरित करने की आवश्यकता होती है, वह आपके जैसे ही समय पर कर सकती है।

यह बहुत अच्छा है, हम तेजी से मशीनों को बनाने के बिना, उसी समय में पहले की तुलना में आठ गुना अधिक कपड़े धोने कर सकते हैं । (घड़ी की गति को दोगुना करें: वाशिंग मशीन जिन्हें चलाने के लिए केवल 15 मिनट की आवश्यकता होती है।)

अब, चलिए बताते हैं कि कैसे चीजें गलत होती हैं:

पाइपलाइन बुलबुला: आपके पास एक दाग है जो धोने में नहीं निकला था, इसलिए आप इसे फिर से धोने का फैसला करते हैं। अब ड्रायर वहीं बैठा है, कुछ करने का इंतजार कर रहा है।

कैश मिस: गंदा कपड़े धोने वाला ट्रक ट्रैफ़िक में फंस गया है। अब आपके पास 2 वाशर और 2 ड्रायर हैं, लेकिन आपको कोई काम नहीं मिल रहा है क्योंकि आपको इंतजार करना होगा।

कितनी बार चीजें गलत हो जाती हैं, इस पर निर्भर करते हुए, हम हमेशा हर चक्र को 4 लोड नहीं कर पाएंगे, इसलिए किए गए कार्य की वास्तविक मात्रा भिन्न हो सकती है।

शाखा भविष्यवाणी: ठीक है, आप अपने साफ कपड़े पर कपड़े धोने शुरू करते हैं यदि आप उन्हें बाद में दाग देते हैं तो वे पहले से ही साफ हो जाएंगे ... ठीक है, यह वह जगह है जहां सादृश्य टूट जाता है ...


अच्छा सादृश्य। मैं इसे चोरी करने जा रहा हूं।
dmckee

6
और हाइपरथ्रेडिंग कई लोगों को एक ही लॉन्ड्रोमैट पर अपनी धुलाई करने जैसा है।
रोनाल्ड पोटोल

1
शाखा भविष्यवाणी: आप कपड़े धोना शुरू करते हैं जो आपको लगता है कि आपको अगले सप्ताह में आवश्यकता होगी
आकाश

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

@ आकाश तुम ऐसे कपड़े धोते हो जिनमें अभी तक दाग भी नहीं है, बस?
केविन पैंको

3

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

क्षमा करें, यह सीधे उत्तर के लिए बहुत जटिल है। जॉन स्टोक्स इस लेख के साथ इसे समझाने का अच्छा काम करते हैं ।


2

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

तो संक्षिप्त उत्तर है: अधिक कोर का अर्थ है कि चीजों को प्राप्त करने की अधिक क्षमता, लेकिन एक अच्छा, अनुमानित तरीके से नहीं


1

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


0

चक्र प्रति मूल अवधारणा से अधिक है। प्रत्येक कोर समानांतर में अपने चक्र करते हैं।

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