कोई भी CISC क्यों चाहेगा?


42

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

यह उल्लेख किया गया था कि CISC एक अलग दर्शन का अनुसरण करता है। मैंने x86 निर्देश सेट पर संक्षेप में देखा और चौंक गया। मैं इमेज नहीं कर सकता कि कोई भी ऐसा प्रोसेसर कैसे बनाना चाहेगा जो इतने जटिल कमांड सेट का इस्तेमाल करे!

इसलिए मुझे लगता है कि अच्छे तर्क देने होंगे कि प्रोसेसर बाजार के बड़े हिस्से सीआईएससी आर्किटेक्चर का उपयोग क्यों करते हैं। वे क्या हैं?


जवाबों:


47

एक सामान्य ऐतिहासिक प्रवृत्ति है।

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

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

MIPS परम RISC वास्तुकला है, यही वजह है कि इसे अक्सर पढ़ाया जाता है।

86 परिवार थोड़ा अलग है। यह मूल रूप से एक CISC आर्किटेक्चर था, जो बहुत छोटी मेमोरी (बड़े निर्देशों के लिए कोई जगह नहीं) के साथ सिस्टम के लिए था, और कई क्रमिक संस्करणों से गुजरा है। आज का x86 निर्देश सेट केवल इसलिए जटिल नहीं है क्योंकि यह CISC है, बल्कि इसलिए कि यह वास्तव में 80386 वाला पेंटियम वाला x86_64 प्रोसेसर वाला है।

आज की दुनिया में, RISC और CISC अब एक समय के लिए हुए काले-सफेद भेद नहीं रह गए हैं। अधिकांश सीपीयू आर्किटेक्चर ग्रे के विभिन्न रंगों में विकसित हुए हैं।

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

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

तो सबसे तेज प्रोसेसर CISC के बाहर क्यों रहते हैं? इसका हिस्सा, x86 (32-बिट और 64-बिट) परिवार के मामले में, ऐतिहासिक संगतता है। लेकिन यह पूरी बात नहीं है। 2000 के दशक की शुरुआत में, इंटेल ने इटेनियम आर्किटेक्चर को आगे बढ़ाने की कोशिश की । इटेनियम जटिल निर्देशों का एक चरम मामला है (वास्तव में CISC नहीं, हालांकि: इसका डिज़ाइन EPIC करार दिया गया है )। यह अनुक्रम में निर्देशों को निष्पादित करने के पुराने जमाने के विचार के साथ भी दूर करता है: अगले बैरियर तक सभी निर्देशों को समानांतर में निष्पादित किया जाता है। इटेनियम नहीं लेने का एक कारण यह है कि इंटेल या अन्य जगहों पर कोई भी, इसके लिए एक सभ्य संकलक नहीं लिख सकता है। अब x86_64 की तरह एक अच्छा पुराना ज्यादातर अनुक्रमिक प्रोसेसर, यही कुछ हम समझते हैं।


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

ओह, और RISC के पीछे ड्राइविंग बलों में से एक दिन के CISC मशीनों पर निष्पादित निर्देशों का विश्लेषण था। वे अत्यधिक सरल निर्देश निकले, इसलिए जटिल निर्देशों को डिकोड करने का अतिरिक्त प्रयास (सर्किट- और टाइमवेज) ज्यादातर बर्बाद हो गया।
वॉनब्रांड

2
@vonbrand: ऐसे प्रोसेसर जिनमें निर्देश शामिल dec [address]होते हैं, वे बहुत कम उपयोग किए जाते हैं और ldr r0,[address] / sub r0,#1 / str r0,[address] आर्किटेक्चर पर एक महत्वपूर्ण लाभ प्रदान करते हैं जो उन्हें कुशलतापूर्वक लागू कर सकते हैं । आरआईएससी का उद्भव इस तथ्य से उपजा है कि जबकि एक गैर-पाइपलाइज्ड मशीन decएक load/sub/storeअनुक्रम के रूप में दो बार से अधिक तेजी से लागू कर सकती है, पाइपलाइनिंग बाद के अनुक्रम की गति में सुधार कर सकती है इससे अधिक यह रीड-संशोधित-राइट की गति में सुधार कर सकता है। अनुदेश।
19

@vonbrand सही है, उस RAM में लगभग उतना कीमती नहीं है जितना कि था, लेकिन कैश है। हफ़मैन निर्देश सेट कोडिंग (जो इन दिनों CISC की तरह है) उस अर्थ में अभी भी मूल्यवान है।
छद्म नाम जूल

खैर, यह कुछ ऐसा है जो मैं कभी भी इटेनियम के बारे में नहीं जानता था! धन्यवाद। (यह भी, काश किसी ने अभी भी उच्च अंत MIPS सीपीयू बनाया - वे ध्वनि की तरह वे कार्यक्रम के लिए आकर्षक होगा। मुझे पता है कि डिजाइन मौजूद हैं, लेकिन किसी ने उन्हें FPGAs -_- से दूर नहीं किया है)
व्याट8740

15

X86 इंस्ट्रक्शन सेट एक विशेष केस का एक सा है। मुझे लगता है कि मोटोरोला का 68K और DEC का वैक्स CISC के कुछ बेहतर उदाहरण हैं। बहुत सारे असेंबली-भाषा कोड के दिनों में, लोगों ने सोचा कि एक बहुत ही नियमित, बहुत समावेशी ISA बेहतर था: मेरा मानना ​​है कि उन्होंने असेंबली कोड के बीच अंतर और जिस तरह से लोगों ने " सिमेंटिक गैप " सोचा था । सैद्धांतिक रूप से, आप एक निर्देश सेट चाहते थे जो आपके विचार के तरीके से मेल खाता हो।

CISC के लिए अन्य बड़े डिज़ाइन ड्राइवर "orthogonality" प्रतीत होता है: हर निर्देश हर एड्रेसिंग मोड (रजिस्टर, पूर्ण पता, सापेक्ष ऑफसेट, आदि) के साथ काम करेगा। आप वितरित कम्प्यूटिंग पर्यावरण (DCE) में और CORBA में एपीआई डिजाइन में ऑर्थोगोनलिटी के बोगी आदमी को देख सकते हैं। यह विचार निर्देश सेट डिज़ाइन तक सीमित नहीं है।


5
मजेदार है कि व्यवहार में ऑर्थोगोनलिटी का अर्थ सभी विकल्पों के मिलन से है
डेव क्लार्क 19

उस ऑर्थोगोनलिटी को निश्चित रूप से बहुत दूर ले जाया जा सकता है, लेकिन यह स्मृति के लिए एक उपयोगी सहायक है। मुझे मोटोरोला 6502 बहुत पसंद था, लेकिन उसके पास हर तरह की घुसपैठ थी "यह निर्देश एक्स लेता है, उसी तरह केवल वाई, तीसरा कोई भी नहीं" रजिस्टर उपयोग पर प्रतिबंध। VAX से मिलना था मुक्ति ...
vonbrand

@vonbrand: 6502 मोटोरोला नहीं था - यह एमओएस टेक्नोलॉजीज था, जिसने इसे मोटोरोला 6800 के लिए एक प्रतियोगी के रूप में निर्मित किया। मैंने कभी-कभी सोचा है कि क्या सभी गैर-शाखा निर्देशों के अनुसार 6502 सरल या अधिक जटिल होता? लिया ऑपरेंड्स ने एक ही एन्कोडिंग का उपयोग किया (24 निर्देश बार आठ एड्रेसिंग मोड काफी आसानी से डिकोड किए जा सकते हैं)। मुझे यह विशेष रूप से उत्सुक लगता है कि सीएमपी आठ एड्रेसिंग मोड्स के साथ काम करता है, और डीईसी केवल चार के साथ, लेकिन (6502 के एनएमओएस संस्करणों पर) अगर एक "ओआर" उन निर्देशों के लिए एक साथ ऑपकोड करता है, तो न केवल एक "एसीपी" मिलेगा निर्देश ...
सुपरकैट

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

1
मैंने जो पढ़ा है, उससे आरआईएससी में "आर" का मतलब यह नहीं है कि प्रोसेसर के पास निर्देशों का एक कम सेट है, बल्कि यह है कि इसमें कम निर्देशों का एक सेट है; इसका सबसे बड़ा पहलू यह है कि मेमोरी लोड और स्टोर को अन्य ऑपरेशन के साथ नहीं जोड़ा जाना चाहिए।
सुपरकैट

7

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


1
मेमोरी क्षमता अभी भी कुछ एम्बेडेड सिस्टम, विशेष रूप से माइक्रोकंट्रोलर, जहां सभी मेमोरी / स्टोरेज प्रोसेसर चिप पर है, में महत्वपूर्ण है। यह शायद रेनेसा के नए CISC ISA - RX-- के परिचय के लिए एक महत्वपूर्ण कारक था, यानी, प्रदर्शन के लिए कोड घनत्व ही नहीं, बल्कि (मुख्य रूप से?) कम भंडारण के लिए।
पॉल ए। क्लेटन

मैं जो समझता हूं, उससे आरआईएससी के "आर" ने निर्देश के सेट को कम नहीं किया, बल्कि निर्देशों के अनुसार खुद को कम किया जा रहा है। सबसे विशेष रूप से, 8086 जैसे CISC प्रोसेसर में, कोई सीधे मेमोरी में एक मूल्य जोड़ सकता है, लेकिन RISC में लोड, ऐड और स्टोर को अलग-अलग चरणों के रूप में किया जाना चाहिए। कई मामलों में, CISC मशीनों में RISC मशीनों की तुलना में चर-लंबाई अनुदेश सेट और सघन अनुदेश कोडिंग हैं, लेकिन नए ARM प्रोसेसर चर-लंबाई निर्देशों का उपयोग करते हैं और फिर भी अलग-अलग लोड और स्टोर करते हैं।
सुपरकैट

@ PaulA.Clayton यह सही है, लेकिन मैं पांडित्यपूर्ण होने जा रहा हूं और इंगित करता हूं कि आप बाहरी रैम (या तो SRAM या DDR को एक नियंत्रक के माध्यम से) इंटरफ़ेस कर सकते हैं और अतिरिक्त जटिलता और कम व्यावहारिकता की कीमत पर अपनी मेमोरी क्षमता का विस्तार कर सकते हैं।
व्याट8740

3

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

उदाहरण के लिए, R1 = R2 + R3 + R4 + R5 + R6परिणाम को स्टैक पर करने और पुश करने के लिए, RISC कोड के रूप में लिखा गया है,

ADD  R1, R2, R3 (4-byte)
ADD  R1, R4, R5 (4-byte)
ADD  R1, R6, R0 (4-byte, R0=0)
PUSH R1         (4-byte)

और जैसे कि अंतरिक्ष के 16-बाइट्स की आवश्यकता होती है।

CISC में आ रहा है, एन्कोडिंग की विभिन्न शैलियों की संभावना के कारण, एक ही जानकारी को निम्नानुसार दर्शाया जा सकता है ...

ADD R1, R2, R3 (4-byte)
ADD R1, R4, R5 (4-byte)
ADD R1, R6     (2-byte)
PUSH R1        (1-byte) 

जो केवल 12 बाइट्स की मेमोरी लेता है। इस प्रकार, मेमोरी उपयोग में सुधार किया जाता है जिससे प्रोसेसर अधिक निर्देश देख सकता है और इस तरह निष्क्रिय चक्र को कम कर सकता है।


1
यह एक उपयोगी दृष्टिकोण प्रदान करता है, लेकिन विशेषण के उपयोग में संभवतः थोड़ा अधिक बताया गया है। "विशाल प्रदर्शन लाभ" - क्या आप इसे परिमाणित करना चाहेंगे? क्या आप "विशाल" भाग को सही ठहरा सकते हैं? इसी तरह "बहुत अधिक जानकारी के लिए"।
DW

मेरा मानना ​​है कि लिनस टॉर्वाल्ड्स ने इसी तरह का बयान दिया था। विशेषण वैसे भी हटा दिए गए।
रेवंत कामराज

यह बिल्कुल सच नहीं है। CISC मेमोरी बैंडविड्थ को कम नहीं करता है। शायद दबाव दर्ज करें।
जेफ

जेफ़, स्टीव फ़र्बर की एआरएम सामाजिक वास्तुकला का संदर्भ देते हैं।
रेवंत कामराज

चिप वास्तुकला पर पृष्ठ 27 2 संस्करण एआरएम सिस्टम।
रेवंत कामराज

2

एक महत्वपूर्ण पहलू जो किसी ने भी नहीं लाया है वह यह है कि लगभग सभी CISC CPU माइक्रोकोडेड आर्किटेक्चर हैं। एक माइक्रोडेंसेर और एक कंट्रोल स्टोर हार्डवेयर्ड कंट्रोलर की तुलना में बहुत कम रियल एस्टेट की खपत करता है, और हार्डवेयर को संशोधित किए बिना इंस्ट्रक्शन सेट को संशोधित किया जा सकता है।

जब मैंने मैदान में प्रवेश किया तब माइक्रोप्रोसेसर नवीनता वाले उपकरण थे। सत्तर और अस्सी के दशक की शुरुआत में एक बहुत ही सामान्य प्रचलन था, एक बिट-स्लाइस ALUs, एक माइक्रोडेंसर-आधारित नियंत्रण इकाई, और एक नियंत्रण स्टोर का उपयोग करके एक सीपीयू को इकट्ठा करना था जिसमें माइक्रोकोड निर्देश अनुदेश सेट या तो लोड किया गया था या उड़ा दिया गया था। ये कंप्यूटर 7400 श्रृंखला ट्रांजिस्टर-ट्रांजिस्टर लॉजिक (TTL) पर आधारित थे। 78181 4-बिट ALU का उपयोग बहुत सारे प्रोसेसर बनाने के लिए किया गया था, जिसमें DEC PDP-11 और शुरुआती VAX 11 कंप्यूटर, डेटा जनरल नोवा, ज़ेरॉक्स ऑल्टो और वांग डेस्कटॉप कंप्यूटर शामिल हैं।


"एक महत्वपूर्ण पहलू जिसे किसी ने नहीं लाया है, वह यह है कि लगभग सभी CISC CPU माइक्रोकोडेड आर्किटेक्चर हैं।" हां और ना। निर्देश निर्धारण के लिए, आधुनिक CISC CPU आमतौर पर केवल कठोर विरासत CISC निर्देशों (जैसे x87 ट्रान्सेंडैंटल निर्देश) के लिए माइक्रोकोडेड नियंत्रण का सहारा लेते हैं। दूसरी ओर, यहां तक ​​कि RISC चिप्स भी कभी-कभी कुछ सबसिस्टम (जैसे कुछ विशिष्ट इकाई को नियंत्रित करने के लिए) के लिए राज्य मशीनों के विकल्प के रूप में माइक्रोकोड नियंत्रण का उपयोग करते हैं। दरअसल, माइक्रोकोड और एक स्टेट टेबल के बीच की रेखा फजी हो सकती है।
छद्म नाम जूल

2

आपके पास किसी भी डेस्कटॉप कंप्यूटर को खोजने में एक कठिन समय होगा जो x86 संगत प्रोसेसर का उपयोग नहीं कर रहा है। उस निर्देश सेट ने MIPS को हराया है, इसने Sparc को हराया है, उसने अल्फा को हराया है, उसने Titanic को हराया है (मैंने उस नाम को गलत ठहराया होगा)। दूसरी ओर MIPS आज मुश्किल से मौजूद है। तो कोई फर्क नहीं पड़ता कि आप आज क्या सोचते हैं, बहुत चालाक लोगों ने सोचा कि x86 निर्देश सेट वास्तव में एक अच्छा विचार था, और उन्होंने इसके साथ एक टन पैसा कमाया है।

कंप्यूटर आरआईएससी के रूप में शुरू हुआ क्योंकि एक जटिल निर्देश सेट लागूकर्ताओं की क्षमताओं से परे था। यदि आप RISC निर्देश सेट देखना चाहते हैं, तो CDC 6400-6600 और CDC साइबर 170-175 निर्देश सेट देखें। यह उचित है RISC। लगभग 10 साल पहले मैंने कुछ चिप डिजाइनरों से पूछा कि कितनी जगह की आवश्यकता होगी (एक उचित उन्नत जीपीयू चिप के कोने में)। उन्होंने मुझे 1 मिमी 2 के बारे में बताया - जिसमें मशीन की रैम शामिल थी, जो उस स्थान का 99% हिस्सा लेती थी।

जब लोग CISC मशीनों का निर्माण कर सकते थे, तो वे वास्तव में एक फायदे में थे। याद रखें कि M86, 1978 बनाम 1985 से बहुत पहले x86 जारी किया गया था। उस समय आपको निर्देश पढ़ने, उन्हें डिकोड करने, उनका प्रदर्शन करने के लिए प्रोसेसर चक्रों की आवश्यकता थी। 1978 में MIPS ने प्रति निर्देश और प्रति ऑपरेशन चार चक्र लिए होंगे। यदि आप "मेमोरी में रजिस्टर जोड़ें" जैसे x86 निर्देश लेते हैं, तो निर्देश के लिए 7 चक्र हो सकते हैं, लेकिन 3 ऑपरेशन कर रहे हैं। यह एक बड़ा फायदा था। और आपके पास जितने अधिक अलग-अलग निर्देश होंगे, और प्रत्येक निर्देश उतना ही अधिक शक्तिशाली होगा, उतना ही अधिक लाभ होगा।

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


1

यह सवाल बहुत हालिया रुझानों के साथ कंप्यूटिंग में है, जो मोबाइल और टैबलेट कंप्यूटिंग के लिए एक बड़ी पारी का पक्ष लेते हैं, जिससे RISC cpus के पक्ष में है, और इसने तथाकथित "विभक्ति" के नुकसान में Intel (शायद दुनिया का सबसे बड़ा CISC purveyor) पकड़ा है। बिंदु " बिल्कुल जिस तरह से ग्रोव ने ध्यान आकर्षित किया और चेतावनी दी। लघुकथा यह है कि CISC अपनी व्यापक रूप से आंतरिक ऊर्जा खपत के कारण मोबाइल कंप्यूटिंग के बड़े पैमाने पर प्रतिमान-स्थानांतरण / गमचेंजिंग हमले के तहत पिघलना शुरू कर रहा है ।

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

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


परिशिष्ट। व्यवसाय-आधारित विभक्ति बिंदुओं पर एक लेख का हवाला देते हैं, जो गणितीय अवधारणा से संबंधित हैं। उदाहरण के लिए एंडी ग्रोव और विभक्ति बिंदु के रहस्य देखें
vzn

0

अन्य उत्तरों में उल्लेखित एक कारक आर्थिक नहीं है। यह इंटेल के बारे में भी है। CISC आर्किटेक्चर काफी हद तक x86 और x64 परिवारों द्वारा दर्शाया गया है। ये सभी मूल आईबीएम पीसी में इस्तेमाल किए गए विनम्र 8088 से उतरते हैं। कंप्यूटर की उस श्रृंखला के शुरुआती बाजार प्रभुत्व का मतलब था कि इंटेल के पास आरएंडडी के लिए एक ठोस राजस्व धारा थी। इस तथ्य के साथ युग्मित किया गया कि इंटेल प्रतिस्पर्धा को रोकने के लिए सक्षम था / दूसरे स्रोत समझौतों को रद्द करने से सीपीयू की कीमतें चरम स्तर तक बढ़ सकती हैं, जो कि बहुत समृद्ध सकल लाभ मार्जिन सुनिश्चित करती हैं।

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

DEC अल्फा, फेयरचाइल्ड क्लिपर, AMD 29000, SPARC, MIPS, पावर (पीसी उपयोग के लिए), हिताची सुपरह ...

मुझे याद है कि उस समय के पंडितों ने घोषणा की थी कि RISC बनाम CISC युद्ध समाप्त हो गया था और CISC जीत गया था। यह नहीं था। यह सिर्फ बाकी सभी को पछाड़ता है।

क्या यह गतिशील कभी बदल सकता है? यह पहले से ही है। कोई भी आर्थिक लाभ निरपेक्ष नहीं है।

X86 की एक अकिलीस एड़ी यह शक्ति के लिए प्रचंड भूख है। इसने एक छोटे, अधिक फुर्तीला प्रतियोगी (एआरएम) को बाजारों (जैसे फोन / टैबलेट / आदि) में पनपने की अनुमति दी है, जहां ऊर्जा की बचत में तेजी आई है।

एआरएम टीम के एक सदस्य से इसके बारे में एक महान वीडियो एआरएम प्रोसेसर है - सफलता के बीज बोना - लगभग 30:30

X86 के लिए दूसरी समस्या इंटेल की रणनीति की सफलता है। वे लगभग सभी प्रतियोगिता को खत्म करने में कामयाब रहे। वे धीमे हो गए। अब के वर्षों के लिए, नए इंटेल प्रोसेसर ने केवल बहुत ही मामूली सुधार दिया है। इससे भी बुरी बात यह है कि किसी भी निगम के लिए सुपर रिच मार्जिन एक कठिन आहार है।

आज, एआरएम चिप पर आधारित सिस्टम (एसओसी) और एएमडी से प्रतिस्पर्धा वाले x64 चिप्स फिर से सीपीयू बाजार को एक दिलचस्प जगह बना रहे हैं। (IMHO)


0

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

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

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

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

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

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

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

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

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

जटिल निर्देश विशेषाधिकार प्राप्त राज्य तक पहरा दे सकते हैं। उदाहरण के लिए, जटिल निर्देश अक्सर रुकावट के संबंध में परमाणु होते हैं। हालांकि एक RISC निर्देश सेट उपयोगकर्ता-स्तरीय तंत्र को अस्थायी रूप से रुकावटों को स्थगित करने के लिए प्रदान कर सकता है, संभवत: लिंक-लोड जैसी कोई चीज भी ताकि सॉफ्टवेयर स्पष्ट रूप से ऑपरेशन को फिर से कर सके यदि बाधित हो, तो ऐसा करना RISCs के लिए विशिष्ट नहीं है।

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

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


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

कई मामलों में एक RISC ऐसे मुद्दों का सामना नहीं करेगा क्योंकि निर्देश अत्यधिक ओर्थोगोनल और आदिम हैं। कुछ मामलों में एक आरआईएससी को नई प्राथमिकताओं को जोड़ने की आवश्यकता हो सकती है, लेकिन यह आमतौर पर एक से अधिक उपयोग के लिए लागू होगा।

इसके अलावा, एक बार जटिल निर्देशों का समर्थन करने के लिए बुनियादी ढाँचा होने के बाद, अतिरिक्त जटिल निर्देशों के लिए बाधाएँ कम हो जाती हैं। यही है, गैर-आवर्ती में जटिल निर्देशों की लागत। मजबूत रूप से RISC ISAs CISCy सुविधाओं को पेश करने के लिए एक पूरक बाधा है।

X86 के विस्तार की आवृत्ति को आंशिक रूप से सामान्य प्रयोजन कंप्यूटिंग और व्यापारी प्रोसेसर मॉडल के लिए इसकी लोकप्रियता के लिए जिम्मेदार ठहराया जा सकता है (ये बाइनरी संगतता के महत्व को भी बढ़ाते हैं)। RISC ISAs अक्सर sysem विक्रेताओं के लिए बंधे होते हैं जो अनुप्रयोगों पर एक संकीर्ण ध्यान केंद्रित करने और एक विशिष्ट RISC ISA के कार्यान्वयन के लिए प्रतिस्पर्धा की कमी कुछ हद तक विपणन के लिए निर्देश सेट एक्सटेंशन के उपयोग को हतोत्साहित करता है। लोकप्रियता नए एक्सटेंशन को विकसित करने की लागत को कम महत्वपूर्ण बनाती है (गैर-आवर्ती व्यय उच्च मात्रा में कम महत्वपूर्ण हैं)।

X86 संगतता दर्शन संभवतः अधिक साफ ब्रेक प्रदान करने के बजाय मौजूदा तंत्र को विस्तारित करने की ओर अग्रसर करता है, जिसका अर्थ है कि नई सुविधाएँ मौजूदा सुविधाओं से अधिक प्रभावित हैं। विस्तार की उच्च आवृत्ति भी अधिक वृद्धिशील परिवर्तनों को प्रोत्साहित करती है, जो पुन: उपयोग तंत्र को प्रोत्साहित करती है, रूढ़िवादिता को कम करने के लिए प्रवृत्त होती है।

क्लासिक MIPS की एक अकादमिक प्रस्तुति की तुलना (जो MIPS के आधुनिक संस्करणों का एक सबसेट है और विभिन्न वैकल्पिक ISA एक्सटेंशन को छोड़कर) आधुनिक x86 के लिए (जो कि बाइनरी संगतता को 16-बिट 8086 तक वापस ले जाता है और विधानसभा-स्तरीय अर्ध-संगतता आगे वापस हो जाती है) अपने सभी ऐतिहासिक सामान के साथ CISC के लिए सबसे अच्छा मामला पेश नहीं करता है और न ही RISC के लिए कोई यथार्थवादी मामला।


-1

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


-2

CISC सीपीयू में RISC की तुलना में अधिक फायदे हैं। क्योंकि CISC कई बार RISC की तुलना में कम हार्डवेयर रजिस्टर और XNOR / XOR गेट का उपयोग करता है !!!! कल्पना करें कि CISC में निर्देश बाइट निष्पादित-अनुक्रम होगा, केवल एक लॉजिक गेट है और रजिस्टर का उपयोग किया जाता है। यदि 1 बिलियन ट्रांजिस्टर लगभग 300 मिलियन तर्क गेट्स का उत्पादन कर सकता है, तो आप 300 मिलियन ऑपरेटरों या प्रक्रियाओं (यदि, समान, गणित, चर, पता ... आदि) को संसाधित कर सकते हैं और CISC में अधिक प्रोग्राम चला सकते हैं। लेकिन आरआईएससी में, पाइपलाइज्ड डिज़ाइन में प्रोग्राम चलाने के लिए दर्जनों बार लॉजिक गेट लगते हैं। तो 300 मीलियन x 50 बार (50 निर्देश) + 15000000000 बिट काउंटर !!! तथाकथित आरआईएससी में। CISC सॉफ्टवेयर को कम करने के लिए अधिक हार्डवेयर का उपयोग करता है जो cpu को धीमा करता है।

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