यह जीव विज्ञान में गलत हो सकता है, लेकिन कंप्यूटर-विज्ञान में, "ओटोजनी ने फ्योग्लॉनी को फिर से तैयार किया" बहुत सुंदर है। कंप्यूटर आर्किटेक्चर का एक ऐतिहासिक अवलोकन चूंकि पहला कंप्यूटर प्रोग्रामर के दृष्टिकोण से कंप्यूटर आर्किटेक्चर के विषय को समझने का एक शानदार तरीका है; कंप्यूटर डिजाइन लगभग सभी पूर्व डिजाइनों के परिशोधन हैं।
यही है, मैं पूरी तरह से काम कर रहे पुराने सिस्टम डिजाइनों का अध्ययन करने की सलाह देता हूं, सैद्धांतिक "कंप्यूटर आर्किटेक्चर" पुस्तकों के लिए जो वे आपको कंप्यूटर विज्ञान में देते हैं। वास्तव में सिस्टम डिज़ाइन को समझने के लिए, और सॉफ्टवेयर लिखने में वास्तव में बहुत अच्छा काम करने के लिए। कंप्यूटर सिस्टम की वास्तुकला की सहज समझ को कई अवधारणाओं की महारत की आवश्यकता होती है। मुझे लगता है कि जब आप कंप्यूटर आर्किटेक्चर आकार और दायरे में अधिक प्रबंधनीय थे, तो आप शुरू करते हैं, तो बेहतर कोड लिखने के लिए आपको अपने लक्ष्य में पिता मिल सकता है।
(वह महान कोड लिखें "पुस्तक श्रृंखला, जिस पर उल्लेख किया गया है कि एक और लड़का बहुत अच्छा लग रहा है, और मैंने अपने प्रश्न को संपादित किया है, जो कि मैंने पहले सीखने-से-किताब पर डाली थी, क्योंकि यह बहुत अच्छा लग रहा है!" )
कंप्यूटर आर्किटेक्चर सिखाने वाली कुछ चीजें वास्तव में अच्छी हैं:
मुझे लोगों को चीजों को समझाने और प्रदर्शित करने के लिए शुरुआती स्थानों के रूप में 1980 के दशक से मशीनों को चुनना पसंद है, क्योंकि जब मैंने कंप्यूटर का उपयोग करना शुरू किया था। मैंने लोगों को एक कूदने की जगह दिखाने के लिए, जहां प्रोग्रामिंग का ज्ञान, और कंप्यूटर आर्किटेक्चर का ज्ञान एक-दूसरे से मिलता है, को दिखाने के लिए 64 प्रोग्रामर के संदर्भ गाइड का उपयोग किया है। इस तरह की एक किताब के साथ, और शायद एक पीसीओआर 64 एमुलेटर आपके पीसी पर चल रहा है ताकि आप सामान की कोशिश कर सकें, आप इस बारे में जानेंगे कि 1980 के दशक के कंप्यूटर सिस्टम में कंप्यूटर आर्किटेक्चर के अवतार कैसे होते हैं। मेरे विचार में, एक ठोस उदाहरण शुरू करने के लिए एक बेहतर जगह है, एक दर्जन सैद्धांतिक मॉडल हैं जो वास्तविक दुनिया के विवरणों को याद कर रहे हैं जो चीजों को काम करते हैं। यदि आप जानते हैं कि एक रजिस्टर क्या है, एक ALU क्या है, एक बस क्या है, और एक घड़ी क्या है, और एक पुराने 1980 के दशक के डिजाइन में कौन से सिग्नलिंग सिस्टम का उपयोग किया जाता है, जो आपको उन बुनियादी बातों को देगा जो आपको हाल ही में समझने के लिए जानने की जरूरत है, जैसे कि इंटेल के "रेतीले पुल आर्किटेक्चर"। ऐतिहासिक रूप से, मूल को देखें, उदाहरण के लिए विकिपीडिया पर "वॉन न्यूमैन" वास्तुकला को देखें।
कुछ साल मेरे पहले बिंदु से आगे बढ़ना; मूल आईबीएम पीसी वास्तुकला, 8086 विधानसभा भाषा और आईएसए बस के बारे में जानें। इस से, और इसकी सीमाओं से, "इंटेल कोरे आई 7" सीपीयू की समझ और पीसीआई और पीसीआई-ई बसें क्या करती हैं और आपको उनकी आवश्यकता क्यों है, यह स्वाभाविक रूप से आगे बढ़ सकता है। पीसी आर्किटेक्चर आज भी मूल आईबीएम पीसी डिजाइन से थोड़ा "हैंगओवर" है। जिस तरह से प्रारंभिक कार्यक्रम (ऑपरेटिंग सिस्टम) लोडिंग (बूट-अप) 2011 पीसी पर होता है वह अभी भी मूल आईबीएम पीसी और इसकी ROM BIOS की विरासत के लिए बहुत अधिक है, और एक मूल पीसी में इसकी CMOS सेटिंग्स।
लिनक्स के एक पूर्व-कॉन्फ़िगर किए गए निर्माण का उपयोग करें और संशोधित करें जो कुछ एम्बेडेड गैर-पीसी डिवाइस पर काम करता है, और आप एम्बेडेड कंप्यूटर आर्किटेक्चर के बारे में बहुत कुछ सीखेंगे, न केवल तकनीकी वास्तुकला, बल्कि कुछ विशेषताएं क्यों हैं। एक अच्छा उदाहरण जो सस्ते में उपलब्ध है वह TS-7200 है, जिसके पास एक अच्छा PC-104 (ISA Bus, जैसा कि मूल PC में है) है। PC-104 (एम्बेडेड 16 बिट ISA- बस जो IBM PC / AT 80286 युग के PC के साथ संगत है) कंप्यूटर एक गैर-बोर्ड-डिजाइनर के लिए एक शानदार तरीका है जो एक एम्बेडेड सिस्टम का निर्माण करता है, क्योंकि मॉड्यूल स्टैकेबल हैं। कुछ अतिरिक्त IO या परिधीय चाहते हैं? बस कुछ मॉड्यूल को स्टैक करें। TS-7200 में एक नॉन-x86 कोर (ARM9 cpu) है जो बड़े-एंडियन या छोटे-एंडियन को चलाने में सक्षम है। यदि आप अभी तक अपनी वास्तुकला सीखने की यात्रा में "एंडियननेस" में नहीं आए हैं, तो यह मुठभेड़ करने के लिए एक अच्छी जगह है।