निर्देश-स्तर समानांतरता
निर्देश-स्तर समानांतरता (ILP) एक ही प्रोग्राम से कई निर्देशों को एक साथ निष्पादित करने की क्षमता है, जिसका उपयोग सुपरस्केलर और वीएलआईडब्ल्यू प्रोसेसर द्वारा किया जाता है जो प्रति चक्र कई निर्देशों को जारी और पूरा करते हैं।
Definition
निर्देश-स्तर समानांतरता वह डिग्री है जिस तक एक ही प्रोग्राम के निर्देशों को समानांतर में निष्पादित किया जा सकता है; प्रोसेसर डेटा और नियंत्रण निर्भरताओं के अधीन, प्रति क्लॉक चक्र एक से अधिक निर्देश जारी करके, निष्पादित करके और पूरा करके इसका उपयोग करते हैं।
Scope
यह विषय एक निर्देश स्ट्रीम के भीतर उपलब्ध समानांतरता और हार्डवेयर तथा कंपाइलर द्वारा इसे कैसे निकाला जाता है, को शामिल करता है: प्रति चक्र कई निर्देशों का सुपरस्केलर जारी करना, बहुत लंबी निर्देश शब्द (VLIW) डिज़ाइन, निर्भरता विश्लेषण, रजिस्टर का नाम बदलना, और अटकलें। इसमें उपलब्ध आईएलपी की सीमाएं भी शामिल हैं। यह कोर और लेन (समानांतर और मल्टीकोर आर्किटेक्चर) में थ्रेड- और डेटा-स्तर समानांतरता और बुनियादी एकल-जारी पाइपलाइन (पाइपलाइनिंग और खतरे) को बाहर करता है।
Core questions
- एक विशिष्ट प्रोग्राम के निर्देशों के बीच स्वाभाविक रूप से कितनी समानांतरता उपलब्ध है?
- सुपरस्केलर प्रोसेसर कैसे तय करते हैं कि कौन से निर्देश एक साथ जारी हो सकते हैं?
- वीएलआईडब्ल्यू डिज़ाइन समानांतरता खोजने का बोझ कंपाइलर पर कैसे डालते हैं?
- कौन सी निर्भरताएं और खतरे यह सीमित करते हैं कि कितना आईएलपी प्राप्त किया जा सकता है?
Key concepts
- सुपरस्केलर जारी करना
- बहुत लंबी निर्देश शब्द (VLIW)
- डेटा और नाम निर्भरताएं
- रजिस्टर का नाम बदलना
- कई कार्यात्मक इकाइयां
- अटकलें
- आईएलपी सीमाएं
- प्रति चक्र निर्देश (IPC)
Key theories
- गतिशील निर्देश शेड्यूलिंग
- हार्डवेयर निर्भरताओं को ट्रैक करके और कई कार्यात्मक इकाइयों पर तैयार निर्देशों को शेड्यूल करके रन टाइम पर आईएलपी का पता लगा सकता है और उसका उपयोग कर सकता है; टोमासुलो का एल्गोरिथम, आरक्षण स्टेशनों और रजिस्टर के नाम बदलने के साथ, आउट-ऑफ-ऑर्डर, समानांतर जारी करने को सक्षम करने वाला विहित तंत्र है।
Mechanisms
सुपरस्केलर प्रोसेसर प्रति चक्र कई निर्देशों को प्राप्त और डिकोड करते हैं, उनकी निर्भरताओं की जांच करते हैं, गलत निर्भरताओं को हटाने के लिए रजिस्टरों का नाम बदलते हैं, और कई कार्यात्मक इकाइयों को स्वतंत्र निर्देश जारी करते हैं। वीएलआईडब्ल्यू डिज़ाइन इसके बजाय कंपाइलर पर निर्भर करते हैं कि वह स्वतंत्र ऑपरेशनों को विस्तृत निर्देश शब्दों में बंडल करे। वास्तविक डेटा निर्भरताएं और नियंत्रण प्रवाह प्राप्य समानांतरता पर एक ऊपरी सीमा निर्धारित करते हैं, जिसे अटकलें और बड़ी निर्देश विंडो विस्तारित करने का प्रयास करते हैं।
Clinical relevance
आईएलपी तकनीकों ने दशकों तक एकल-थ्रेड प्रदर्शन वृद्धि को बढ़ावा दिया और उच्च-प्रदर्शन सीपीयू कोर के लिए केंद्रीय बनी हुई हैं। उनकी घटती वापसी — जैसे ही उपलब्ध समानांतरता और जटिलता की सीमाएं पहुंच गईं — उद्योग के मल्टीकोर और स्पष्ट समानांतरता की ओर आगे बढ़ने का एक प्रमुख कारण था।
History
कई कार्यात्मक इकाइयां और गतिशील शेड्यूलिंग 1960 के दशक में सीडीसी 6600 और आईबीएम सिस्टम/360 मॉडल 91 में दिखाई दिए। सुपरस्केलर डिज़ाइन 1990 के दशक में मुख्यधारा बन गए, और इंटेल के इटानियम जैसे वीएलआईडब्ल्यू आर्किटेक्चर ने कंपाइलर-संचालित समानांतरता का पीछा किया। 1990 के दशक की शुरुआत में आईएलपी की सीमाओं के अध्ययनों ने स्पष्ट किया कि एक ही थ्रेड के भीतर समानांतरता क्यों सीमित है।
Debates
- हार्डवेयर-संचालित बनाम कंपाइलर-संचालित आईएलपी
- सुपरस्केलर आउट-ऑफ-ऑर्डर हार्डवेयर जटिलता और शक्ति की लागत पर गतिशील रूप से समानांतरता पाता है, जबकि वीएलआईडब्ल्यू कंपाइलर पर निर्भर करता है कि वह समानांतरता को स्थिर रूप से शेड्यूल करे; अनुभव से पता चला कि गतिशील दृष्टिकोण वर्कलोड में अधिक मजबूत होते हैं, जबकि स्थिर दृष्टिकोण अनुमानित, कम-शक्ति वाले डिज़ाइनों के लिए आकर्षक बने रहते हैं।
Key figures
- Robert Tomasulo
- Yale Patt
- John L. Hennessy
- Joseph A. Fisher
- James E. Smith
Related topics
Seminal works
- hennessy2019
- tomasulo1967
Frequently asked questions
- सुपरस्केलर और वीएलआईडब्ल्यू में क्या अंतर है?
- दोनों प्रति चक्र कई ऑपरेशन निष्पादित करते हैं। एक सुपरस्केलर प्रोसेसर हार्डवेयर में, रन टाइम पर तय करता है कि कौन से निर्देश एक साथ जारी हो सकते हैं; एक वीएलआईडब्ल्यू प्रोसेसर कंपाइलर पर निर्भर करता है कि वह स्वतंत्र ऑपरेशनों को समय से पहले विस्तृत निर्देशों में समूहित करे, जिससे हार्डवेयर सरल हो जाता है लेकिन कंपाइलर से अधिक मांग करता है।
- निर्देश-स्तर समानांतरता की सीमा क्यों है?
- वास्तविक प्रोग्रामों में वास्तविक डेटा निर्भरताएं और लगातार शाखाएं होती हैं जो यह सीमित करती हैं कि कितने निर्देश समानांतर में चल सकते हैं। एक निश्चित विंडो से परे, प्राप्य समानांतरता संतृप्त हो जाती है, इसलिए अधिक आईएलपी निकालने से अतिरिक्त हार्डवेयर जटिलता और शक्ति के सापेक्ष घटती वापसी मिलती है।