Biyolojide yanlış olabilir, ancak bilgisayar biliminde, "ontogeni filogeni tekrar eder" neredeyse. İlk bilgisayarlardan bu yana bilgisayar mimarilerine tarihsel bir bakış, bilgisayar mimarisinin konusunu bir programcının bakış açısından anlamanın harika bir yoludur; bilgisayar tasarımları, önceki tasarımların neredeyse tüm ayrıntılandırmalarıdır.
Yani, size bilgisayar bilimlerinde verdikleri teorik "bilgisayar mimarisi" kitaplarına dayanan tam çalışan eski sistem tasarımlarını incelemenizi öneririm. Sistem tasarımını gerçekten anlamak ve yazılım yazmada gerçekten harika bir iş yapmak. Bilgisayar sistemlerinin mimarisinin sezgisel kavranması, birçok kavramın ustalığını gerektirir. Bilgisayar mimarileri boyut ve kapsam olarak daha yönetilebilir olduğunda yeniden başlarsanız, daha iyi kod yazma amacınız doğrultusunda babanla birlikte olabilirsiniz.
(Bu arada başka bir adamın bahsettiği "harika kod yaz" kitap serisi ve daha önce bir kitaptan öğrenmeye attığım herhangi bir engeli kaldırmak için sorumu düzenledim, çünkü harika görünüyor! )
Bilgisayar mimarisini gerçekten iyi öğreten bazı şeyler:
1980'lerden insanlara bir şeyler açıklamak ve göstermek için başlangıç yerleri olarak makineler seçmeyi seviyorum, çünkü o zaman bilgisayar kullanmaya başladım. Commodore 64 programcısının referans kılavuzunu, programlama bilgisinin ve bilgisayar mimarisi bilgisinin birbiriyle buluştuğu bir atlama yeri göstermek için kullandım. Böyle bir kitap ve belki de PC'nizde çalışan bir meta 64 emülatörü ile bir şeyler deneyebilirsiniz, klasik 1980'lerin bilgisayar mimarisinin enkarnasyonundaki bilgisayar sistemlerinin gerçekten nasıl inşa edildiğini öğreneceksiniz. Bana göre, somut bir örnek, işe yarayan gerçek dünya ayrıntılarını eksik olan bir düzine teorik modelden daha iyi bir başlangıç noktasıdır. Bir kaydın ne olduğunu, bir ALU'nun ne olduğunu, bir otobüsün ne olduğunu ve bir saatin ne olduğunu biliyorsanız, ve Intel'in "kumlu köprü mimarisi" gibi yeni bir şeyi anlamak için bilmeniz gereken temelleri verecek olan 1980'lerin eski bir tasarımında hangi sinyal sistemlerinin kullanıldığı. Tarihsel olarak, orijinallere bakın, örneğin wikipedia'da "Von neumann" mimarisine bakın.
Birkaç yıl içinde ilk noktamdan ilerlerken; Orijinal IBM PC mimarisi, 8086 montaj dili ve ISA veri yolu hakkında bilgi edinin. Bundan ve sınırlamalarından, bir "Intel COre i7" CPU'nun neler olduğunu ve PCI ve PCI-e veri yollarının ne yaptığını ve neden bunlara ihtiyacınız olduğunu anlamak daha doğal bir şekilde ilerleyebilir. PC mimarisi bugün hala orijinal IBM PC tasarımından biraz "akşamdan kalma" a sahiptir. İlk programın (işletim sistemi) yüklenmesinin (önyükleme) 2011 PC'de gerçekleşme şekli, orijinal IBM PC'nin ve ROM BIOS'unun mirasına ve orijinal bir PC'deki CMOS ayarlarına hala çok şey borçludur.
Bazı yerleşik PC olmayan aygıtlarda çalışan önceden yapılandırılmış bir Linux yapısını kullanın ve değiştirin; yalnızca teknik mimari değil, bazı özelliklerin neden orada bulunduğuna katıştırılmış bilgisayar mimarisi hakkında çok şey öğreneceksiniz. Ucuz olan güzel bir örnek TS-7200, güzel bir PC-104 (orijinal PC'de olduğu gibi) ISA Bus'a sahiptir. PC-104 (IBM PC / AT 80286 dönemi PC'leri ile pim uyumlu yerleşik 16 bit ISA-bus) bilgisayarlar, modüller istiflenebilir olduğu için kart tasarımcısının yerleşik bir sistem oluşturması için harika bir yoldur. Fazladan IO veya çevre birimleri mi istiyorsunuz? Sadece birkaç modül biriktirin. TS-7200, big-endian veya little-endian çalıştırabilen x86 olmayan bir çekirdeğe (ARM9 işlemci) sahiptir. Henüz mimarlık öğrenme yolculuğunuzda "endianness" ile karşılaşmadıysanız, bu onunla karşılaşmak için iyi bir yerdir.