Сегодня я взял в руки книгу Эндрю Таненбаума «Компьютерная архитектура» (последнее издание на русском языке вышло в 2018 году).
Я пролистал его лет 10 назад, но сегодня решил перелистать еще раз, чтобы быть абсолютно уверенным в том, что напишу ниже.
А именно: эта книга была вредна для образования.
Здесь выпускались не инженеры-конструкторы, а потенциальные участники телевикторины «Что-Где-КогдаЭ» и всезнайки-спорщики на интернет-форумах, которые могли часами рассказывать о микрокоде и Java-процессорах, бья собеседников своей эрудицией об очередях микроопераций (стр.
291 4-го издания 2003 г.
) и защелках в путях данных ( с.
286), но при этом ничего не могли сделать своими руками.
Потому что (сначала мелкие придирки): 1. Микрокод, описанный Эндрю Таненбаумом, был популярен в 1970-х годах, но уже в 1980-х процессоры были жестко запрограммированы для упрощения конвейерной обработки.
Более того, сам Эндрю Таненбаум знал об этом (стр.
29), но все равно преподавал с помощью микрокода, показывая его не как частный случай, а как мейнстрим.
2. Термин «защелка» означает «уровнево-чувствительная D-защелка» и такие структуры не используются для хранения результатов в конвейере, и не использовались при написании этой книги (в 90-е годы, хотя вышло последнее русское издание в 2018 году).
Для регистров в конвейере используются D-триггеры/D-триггеры с переключением по фронту.
Хотя для них можно использовать слово latch, но только как глагол «зафиксировать значения».
В целом защелки используются в сто-тысячу раз реже, чем D-триггеры и, как правило, присутствуют в блоках тактового стробирования.
Еще более редкое применение — массив защелок и заимствование времени, но это не имеет ничего общего с книгой Таненбаума.
3. В книге не было вообще никакой информации, даже намека на это, как реализована упомянутая очередь, никаких указателей чтения/записи в fifo. Очередь была просто магическим предметом в контексте книги, соломенным пропеллером соломенного самолета.
И таких объектов было множество на каждой странице.
Для нормального образования инженера необходимо, чтобы после каждой главы учебника он мог идеально реализовать то, что описано в железе - или хотя бы представить, как бы он реализовал описанное в железе, если бы у него были свободные выходные/неделя/ лето.
Книга не содержала упоминаний о языках описания аппаратуры и статических таймингах.
Возможно, они появились в 6-м русском издании 2018 года, но судя по оглавлению — вряд ли.
Как можно понять необходимость конвейера или многоуровневого кэша, если из уравнения исключены тайминг и задержки внутри цикла? Получается не инженерия, а просто текст для демонстрации эрудиции.
В русской Википедии сказано: «Андрей Таненбаум также признан автором учебников для высшего образования по некоторым направлениям информатики и информатики, в своих областях книги считаются избранными эталонными».
Тогда, 10 лет назад, я подумал: «Если это правда, то использование подобных книг в качестве стандарта образования навсегда снизит дизайнерскую дисциплину в стране до уровня стран третьего мира – студенты смогут разговаривать, но они будут быть не в состоянии что-либо сделать».
Как и Пелевин, о дорогих часах и автомобилях больше всего говорят те, кто не может их купить.
В защиту Таненбаума можно сказать, что его специальностью были операционные системы, а о компьютерной архитектуре он просто писал со стороны (изначально он был физиком, а потом работал в программном обеспечении), и в России его, вероятно, продвигали люди, которые, вероятно, были сами находились в таком же положении, и Таненбаум был близок к ним.
К счастью, в России вышла книга Harris & Harris (Digital Circuit Design and Computer Architecture), опубликовано еще много материалов, и эта проблема 10-летней давности, наверное, решена.
Или нет?
UPD: Мне в комментариях написали «вы не осветили тему пользы учебника по архитектуре компьютеров не для электронщиков, а для программистов».
Я согласен и добавляю: К сожалению, Таненбаум и в этом месте не фонтан.
Возьмем, к примеру, его главу о тайниках.
Он не показывает в своей главе (по крайней мере, в 4-м издании) фрагментов программ, иллюстрирующих различные случаи временной и пространственной локальности.
В «Харрисе и Харрисе» есть такая штука, а в Принстонском курсе есть такая полезная картинка:
Вот страница Таненбаума.
Где эта картинка или кусочки кода?
Для сравнения — вот из книги Дэвида Харриса и Сары Харрис «Проектирование цифровых схем и компьютерная архитектура»:
Вообще по поводу Таненбаума, как указано в комментариях, напрашивается цитата Фейнмана по поводу физики в Бразилии.
Там можно всё процитировать, например вот небольшой кусочек: https://dcn.icc.spbstu.ru/index.phpЭid=337
«Я обнаружил кое-что еще», — продолжил я.В опросе могут участвовать только зарегистрированные пользователи.— Перелистывая наугад страницы и останавливаясь в любом случайно выбранном месте, я могу показать вам, почему это не наука, а запоминание во всех без исключения случаях.
Я рискну прямо сейчас, в этой аудитории, перелистать страницы, остановиться в любом месте, прочитать и показать вам.
Так я и сделал.
Трррр-ап – мой палец остановился на какой-то странице, и я начал читать: «Триболюминесценция.
Триболюминесценция — это излучение света измельченными кристаллами…».
Я сказал: «Вот. Есть ли здесь наука? Нет! Есть только толкование одного слова с помощью других слов.
О природе не сказано ни слова: какие кристаллы излучают свет, когда их измельчают? Почему они излучают свет? Вы можете себе представить, чтобы хотя бы один студент пошел домой и попытался это проверить? Они не могут. А если бы вместо этого вы написали: «Если вы возьмете кусок сахара и расколете его щипцами в темноте, вы увидите голубоватую вспышку.
То же самое происходит и с некоторыми другими кристаллами.
Никто не знает почему.
Это явление называется триболюминесценцией.
Тогда кто-нибудь делал бы это дома, и это было бы изучение природы».
В доказательство я использовал этот пример, но мог бы взять любой другой — вся книга была такой.
Войти , Пожалуйста.
Чего вы ожидаете от книги на русском языке под названием «Архитектура компьютера»? 51,14% Что поможет читателю стать компьютерным архитектором или микроархитектором процессора 179 16,29% Поможет затушить всех своей эрудицией о микрокоде и Java-процессорах на интернет-форумах 57 30,57% Научное чтение в самолете о непонятном, таком как книга Хокинга о черных дырах 107 23.43% Я думаю Россия не способна спроектировать процессор класса Apple или Intel, поэтому практические книги все равно не нужны и истории от Таненбаума пойдут 82 Проголосовали 350 пользователей.
199 пользователей воздержались.
В опросе могут участвовать только зарегистрированные пользователи.
Войти , Пожалуйста.
Что вы думаете о других книгах Таненбаума? 47,98% Он хорошо разбирается в операционных системах, поскольку это его специализация 107 24,22% В операционных системах - так же аморфно, как и в компьютерной архитектуре 54 27,8% И я думаю, что Таненбаум превосходно разбирается в компьютерной архитектуре.
Добавьте к этому Горовиц-Хилла – и никаких книг больше не понадобится! Проголосовали 62 223 пользователя.
298 пользователей воздержались.
Теги: #Процессоры #Электроника для начинающих #образование #Профессиональная литература #операционные системы #литература #кэширование #Системное программирование #ПЛИС #микроархитектура процессоров #переводы #критика #архитектура компьютеров #таненбаум
-
Создание Собственной Темы Usplash
19 Oct, 24 -
Невероятные Наркосубы Из Колумбии
19 Oct, 24 -
Хтк Тач. Пару Недель В Работе
19 Oct, 24