
Неделя соцсетей прошла под спорами о популяризаторше средневековой музыки с помощью выдуманных баек о ней. Но надо сказать что популяризатор, который создает ошибочную картину мира у широких масс - это не такое редкое явление. Иногда в это оказываются вовлечены большие корпорации, например Микрософт. Я конечно же говорю про изданную Микрософтом книгу Чарльза Петзольда “Код”.
Вы скажете “но это же старая книга, она был издана еще в 2000 году, зачем откапывать стюардессу”. Я так сам думал, пока не увидел на этой же неделе пост бывшего топ-менеджера Сбербанка с кучей последователей. Топ-менеджер описывает внеземную радость, которую он испытал, когда понял из книги Петзольда как работает компьютер. Разумеется топ-менеджер взял AI и не отходя от кассы спроектировал свой 6502 процессор из симулированных AI-ем транзисторов. На мой коммент про Петзольда товарищ сказал что это неважно потому что Петзольд вызвал у него интерес к теме - точно как защитницы поп-музыковедки.
В принципе, я не против такого рода интеллектуально-стимулирующего досуга у взрослых состоявшихся людей - быть против в такой ситуации было бы маразмом. Я против использования такого рода материалов для обучения детей.
Это не абстрактная тревожность - я лично видел случай не так много лет назад, когда менеджерка образовательных программ крупной корпорации дала студенту задание реализовать процессор из Петзольда сначала в симуляции, а потом в FPGA. Мне потом пришлось ему объяснять что его код несинтезируем, и что ему нужно “undo” все “образование” по Петзольду и начать сначала, ну хоть по тому же Харрис & Харрис (хотя и к Харрисам у меня уже накопились претензии, например у них арбитры и FIFO не покрыты).
А менеджерка образовательных программ неназываемой крупной корпорации еще ругалась на меня, что я черствый чурбан и не понимаю, какой Петзолдьд хороший и как его D-защелки человечнее чем мои D-триггеры.
Короче вот мой коммент бывшему топ-менеджеру Сбербанка:
Одна из фич книги Петзольда - он сначала вводит D-защелки (level-triggered D-latch), комбинирует их с сумматорами и только потом вводит D-триггер (D-flip-flop). Что “естественно” для программиста (Петзольд прославился в конце 1980-х как автор книги по программированию Windows), но не соотвествует реальному проектированию в современных электронных компаниях (99%+ элементов состояния - это D-триггеры, а D-защелки используются в основном для clock gaters (такая штука для экономии энергопотребления), очень редко для latch arrays и time borrowing (неактуально для новичков).
Какие у вашего процессора элементы состояния - D-latch или D-flip-flop?
Также в картинках у Петзольда еще одна типичная программистская ошибка - плавающий вход (разомкнутый переключатель не означает 0 на входе), правда тут можно отбрыкаться “мы не хотели загромождать картинку”.
Вообще книжка Петзольда это ОК для развлечения, но детей по ней учить нельзя - там много сусанинских уводов молодежи в болото. Например рассусоливать адресацию по [HL] в Intel 8080 в 21 веке - это диверсия. Молодежь нужно учить по RISC-V - он и хорошо конвейеризуется (в том числе в качестве учебного примера) и привязан к актуальным технологиям, в отличие от аккумуляторного 6502 и от 8080.