कंप्यूटर आर्किटेक्चर के विभिन्न प्रकार क्या हैं?


20

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

मुझे केवल दो के बारे में पता है, एक है वॉन न्यूमैन और दूसरा है हार्वर्ड। इसके अलावा मैं आरआईएससी के बारे में जानता हूं जो एवीआर के यूसी में उपयोग किया जाता है।


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

1
बड़ा सवाल।
बेनामी टाइप

जवाबों:


27

कंप्यूटर आर्किटेक्चर के कई अलग-अलग प्रकार हैं।

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

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

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

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

सीपीयू को वर्गीकृत करने का एक और तरीका उनकी घड़ी है। अधिकांश कंप्यूटर तुल्यकालिक हैं - उनके पास एक ही वैश्विक घड़ी है। कुछ सीपीयू अतुल्यकालिक हैं - उनके पास एक घड़ी नहीं है - इसमें ILLIAC I और ILLIAC II शामिल हैं, जो एक समय में पृथ्वी पर सबसे तेज सुपर कंप्यूटर थे।

कृपया http://en.wikibooks.org/wiki/Microprocessor_Design/Computer_Architecture पर सभी प्रकार के कंप्यूटर आर्किटेक्चर के विवरण को बेहतर बनाने में मदद करें ।


2
वाह, तुम पर रोक के लिए शर्म की बात है कि इतने लंबे समय के लिए ज्ञान मैंने सवाल पूछा।
रिक_2047 16

3
@ रिक - यह ऐसा लगता है कि उत्तर की रचना में एक लंबा समय लगा। आभारी रहें कि आपके प्रश्न का उत्तर देने के लिए davidcary ने समय लिया! कुछ लोग उसी कार्यक्रम पर काम नहीं कर रहे हैं जो आप कर रहे हैं।
केविन वर्मेकर

2
@reemrevnivek जो एक मजाक दोस्त के रूप में था।
रिक_2047

यह अच्छा होगा यदि इस उत्तर को एक समुदाय विकि उत्तर के रूप में चिह्नित किया जाए।
ट्राईवेग लॉगस्टोएल

8

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

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

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

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


1
यदि आप इसे पसंद करते हैं, तो इसे स्वीकार करें।
Kortuk

5

खैर, ENIAC जैसा कुछ है, जहाँ आपके पास अनिवार्य रूप से अलग-अलग ALU हैं और आपने उन्हें एक अन्य alu के इनपुट पर एक alu के आउटपुट को वायरिंग करके "क्रमादेशित" किया है, जो उस मध्यवर्ती चर पर अगला ऑपरेशन करने जा रहा था। आपके "रजिस्टर" और स्टोरेज, आलस को जोड़ने वाले तार हैं।

मैंने हाल ही में "द फर्स्ट कम्प्यूटर्स - हिस्ट्री एंड आर्किटेक्चर्स (हिस्ट्री ऑफ़ कम्प्यूटिंग)" पुस्तक खरीदी है, जो इस सटीक विषय पर केंद्रित है। मैं इस पुस्तक को खरीदने की सिफारिश नहीं करता हूं, हालांकि यह सिर्फ अकादमिक पत्रों का संग्रह है, पढ़ने में कठिन है और मुझे संदेह है कि शायद (स्वतंत्र रूप से) अन्यत्र प्रकाशित किया गया है। (मैंने परिचय समाप्त करने से पहले इसे छोड़ दिया)

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

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

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

दो लोकप्रिय मेमोरी आधारित आर्किटेक्चर मौजूदा कार्यान्वयन आईएमओ में भिन्न होने की तुलना में अधिक निकट हैं।

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


"क्या अच्छा है एक हार्वर्ड प्लेटफ़ॉर्म जहां प्रोसेसर नहीं कर सकता ... अगले प्रोग्राम को चलाने के लिए लोड करें?" कई CPU में एक निश्चित प्रोग्राम होता है जिसे उस CPU पर चल रहे सॉफ़्टवेयर द्वारा नहीं बदला जा सकता है। इस व्यवस्था के लिए एक फायदा यह है कि यह बग को सिस्टम को "ईंट" करना असंभव बनाता है जो यादृच्छिक मेमोरी, या खराब सॉफ़्टवेयर अपडेट, या यहां तक ​​कि एक अच्छे सॉफ़्टवेयर अपडेट और एक बीमार समयबद्ध बिजली विफल होने पर लिखता है। सॉफ़्टवेयर को अपडेट करना अधिक कठिन हो जाता है - लेकिन वास्तव में, आपने कितनी बार अपने माइक्रोवेव में सॉफ्टवेयर को बदला है?
दाविदसरी

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

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

4

वॉन न्यूमैन और हार्वर्ड दोनों आर्किटेक्चर का उपयोग आरआईएससी प्रोसेसर जैसे एवीआर और एआरएम के साथ किया जा सकता है। एवीआर हार्वर्ड का उपयोग करता है, जबकि कुछ एआरएम चिप्स वॉन न्यूमैन का उपयोग करते हैं और कुछ हार्वर्ड का उपयोग करते हैं।


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