Mungkin keliru dalam biologi, tetapi dalam ilmu komputer, "ontogeni merekapitulasi filogeni" hampir. Tinjauan historis arsitektur komputer sejak komputer pertama adalah cara yang bagus untuk memahami subjek arsitektur komputer dari perspektif programmer; desain komputer hampir semua merupakan penyempurnaan dari desain sebelumnya.
Yaitu, saya sarankan untuk mempelajari desain sistem lama yang sudah lengkap, insted buku "arsitektur komputer" teoritis yang mereka berikan kepada Anda dalam ilmu komputer. Untuk benar-benar memahami desain sistem, dan untuk melakukan pekerjaan yang sangat hebat dalam menulis perangkat lunak. Pemahaman intuitif arsitektur sistem komputer membutuhkan penguasaan banyak konsep. Saya pikir jika Anda memulai kembali ketika arsitektur komputer lebih mudah dikelola dalam ukuran dan ruang lingkup, Anda mungkin dapat membantu ayah dalam tujuan Anda untuk menulis kode yang lebih baik.
(Seri buku "tulis kode hebat" yang oleh orang lain sebutkan tampak hebat, omong-omong, dan saya telah mengedit pertanyaan saya untuk menghilangkan aspersi apa pun yang sebelumnya saya gambarkan untuk belajar dari buku, karena itu terlihat hebat! )
Beberapa hal yang mengajarkan arsitektur komputer dengan sangat baik:
Saya suka memilih mesin dari tahun 1980-an sebagai tempat awal untuk menjelaskan dan menunjukkan hal kepada orang-orang, karena saat itulah saya mulai menggunakan komputer. Saya telah menggunakan panduan referensi programmeromodore 64, untuk menunjukkan kepada orang-orang tempat melompat di mana pengetahuan pemrograman, dan pengetahuan arsitektur komputer bertemu satu sama lain. Dengan buku semacam itu, dan mungkin emulator komoditas yang berjalan di PC Anda sehingga Anda dapat mencoba berbagai hal, Anda akan belajar tentang bagaimana sistem komputer dalam inkarnasi arsitektur komputer era 1980-an klasik, benar-benar dibangun. Dalam pandangan saya, satu contoh konkret adalah tempat yang lebih baik untuk memulai, daripada selusin model teoretis yang tidak memiliki perincian dunia nyata yang membuat berbagai hal bekerja. Jika Anda tahu apa itu register, apa itu ALU, apa itu bus, dan apa jam itu, dan sistem pensinyalan apa yang digunakan dalam desain tahun 1980-an, yang akan memberi Anda dasar-dasar yang perlu Anda ketahui untuk memahami sesuatu yang baru-baru ini, seperti "arsitektur jembatan berpasir" Intel. Secara historis, lihat kembali aslinya, misalnya mencari arsitektur "Von neumann", di wikipedia.
Bergerak maju dari poin pertama saya beberapa tahun; Pelajari tentang arsitektur PC IBM asli, bahasa rakitan 8086, dan bus ISA. Dari sini, dan keterbatasannya, pemahaman tentang apa yang terkandung dalam CPU "Intel COre i7", dan apa yang dilakukan oleh PCI dan PCI-e bus dan mengapa Anda membutuhkannya, dapat berjalan lebih alami. Arsitektur PC saat ini masih memiliki sedikit "mabuk" dari desain PC IBM asli. Cara pemuatan program awal (sistem operasi) (boot-up) terjadi pada PC 2011 masih banyak berutang pada warisan PC IBM asli dan ROM BIOS-nya, dan pengaturan CMOS pada PC asli.
Gunakan dan modifikasi Linux yang telah dikonfigurasikan sebelumnya yang bekerja pada beberapa perangkat non-PC tertanam, dan Anda akan belajar banyak tentang arsitektur komputer tertanam, tidak hanya arsitektur teknis, tetapi mengapa beberapa fitur ada di sana. Contoh bagus yang tersedia murah adalah TS-7200, yang memiliki PC-104 yang bagus (ISA Bus, seperti pada PC asli). PC-104 (tertanam 16 bit ISA-bus yang pin kompatibel dengan komputer IBM PC / AT 80286 era) adalah cara yang bagus untuk desainer non-papan untuk membangun sistem tertanam, karena modul dapat ditumpuk. Ingin beberapa IO atau peripheral tambahan? Cukup susun beberapa modul. TS-7200 memiliki inti non-x86 (cpu ARM9) yang mampu menjalankan big-endian atau little-endian. Jika Anda belum mengalami "endianness" dalam perjalanan pembelajaran arsitektur Anda, itu adalah tempat yang bagus untuk menjumpainya.