Це може бути помилковим у біології, але в інформатиці "онтогенез рекапітулює філогенез" майже майже. Історичний огляд архітектури комп’ютерів з перших комп’ютерів - це чудовий спосіб зрозуміти тему комп'ютерної архітектури з точки зору програміста; комп'ютерні конструкції - це майже всі уточнення попередніх конструкцій.
Тобто, я рекомендую вивчити повністю працюючі старі дизайни системи, засновані на теоретичних книгах «архітектури комп’ютера», які вони дають вам з інформатики. Справді зрозуміти дизайн систем і зробити справді чудову роботу над написанням програмного забезпечення. Інтуїтивне розуміння архітектури комп'ютерних систем вимагає оволодіння багатьма концепціями. Я думаю, якщо ви почнете ще тоді, коли архітектури комп’ютерів були більш керованими за розміром та масштабом, ви могли б змусити батька в своїй меті написати кращий код.
(До речі, ця серія книг "Пишіть великий код", яку згадував інший хлопець, виглядає чудово, і я відредагував своє запитання, щоб видалити будь-які роздуми, які я раніше кидав на навчання з книги, тому що це виглядає чудово! )
Деякі речі, які дуже добре навчають архітектуру комп’ютера:
Мені подобається вибирати машини з 1980-х років як вихідні місця для пояснення та демонстрації речей людям, адже саме тоді я почав користуватися комп’ютерами. Я використав довідник програміста commodore 64, щоб показати людям місце, де знаходяться місця, де знаходяться програми програмування та знання комп'ютерної архітектури. Маючи таку книгу і, можливо, емулятор commodore 64, що працює на вашому ПК, щоб ви могли спробувати речі, ви дізнаєтесь про те, як насправді будуються комп'ютерні системи в класичному втіленні комп’ютерної архітектури 1980-х років. На мою думку, один конкретний приклад - це краще місце для початку, ніж десяток теоретичних моделей, у яких відсутні відсутні деталі реального світу, які змушують роботу працювати. Якщо ви знаєте, що таке регістр, що таке АЛУ, що таке шина і що таке годинник, і які сигнальні системи використовуються в старому дизайні 1980-х років, це дасть вам основи, які вам потрібно знати, щоб зрозуміти щось недавнє, як, наприклад, "архітектура піщаних мостів" від Intel. Історично огляньтесь на оригінали, наприклад, пошукайте архітектуру "Von neumann" на Вікіпедії.
Просування вперед від моєї першої точки на кілька років; Дізнайтеся про оригінальну архітектуру IBM PC, мову складання 8086 та шину ISA. Виходячи з цього та його обмежень, розуміння того, що містить процесор "Intel COre i7" та що роблять шини PCI та PCI-e і для чого вони потрібні, може виходити природніше. Архітектура ПК на сьогоднішній день все ще має трохи «похмілля» від оригінального дизайну IBM PC. Спосіб завантаження (завантаження) початкового програмного забезпечення (операційної системи) на ПК 2011 року все ще належить спадщині оригінального комп'ютера IBM та його BIOS BI, а також його налаштуванням CMOS в оригінальному ПК.
Використовуйте та змінюйте попередньо налаштовану збірку Linux, яка працює на якомусь вбудованому пристрої, який не є ПК, і ви дізнаєтесь багато про вбудовану комп'ютерну архітектуру, а не лише технічну архітектуру, але чому деякі функції є. Гарний приклад, який доступний дешево - це TS-7200, на якому є гарний ПК-104 (шина ISA, як і в оригінальному ПК). Комп'ютери PC-104 (вбудована 16-бітна ISA-шина, яка сумісна з комп'ютерами IBM PC / AT 80286 епохи) - це відмінний спосіб для недизайнерського дизайнера побудувати вбудовану систему, оскільки модулі можуть бути складимими. Хочете отримати додатковий IO або периферійні пристрої? Просто складіть кілька модулів. TS-7200 має ядро без x86 (процесор ARM9), здатний запускати або big-endian, або little-endian. Якщо ви ще не зіткнулися з "витримкою" у своїй навчальній подорожі з архітектури, це гарне місце, щоб зіткнутися з цим.