Ты только что доказал мою мысль. Целых три микросхемы. Которые можно было бы не ставить. Не тратить на них деньги, не размещать их на плате, не разводить связи (а разводка узла процессора на Спектрумах на двух слоях всегда была трудной задачей). Не паять их. Не тратить энергию на их питание. Они не выходят из строя. Не надо держать их запас на складе и бояться, что в один прекрасный день их снимут с производства или разберут у поставщиков, так что ты не сможешь производить и поставлять свои компьютеры. И так далее.
Особенно 155ИД3 - она же огромная. Ладно еще КР1533ИД3 - у нее корпус хотя бы узкий был.
Есть такая инженерная пословица: "Самая лучшая деталь машины - это та, которой нет". По соображениям, аналогичным приведенным выше. Чем больше опыт разработки и наблюдения за производством твоих приборов - тем больше я с этой мыслью соглашаюсь. Добавление деталей в схему, которых там могло не быть, добавляет в целом больше проблем, чем решает.
Там однозначно. Тогдашние БМК имели очень мало ресурсов. Что-то типа 8х8 (всего 64) базовых логических элементов. Там каждый был на счету.
Ну, сейчас ресурсов стало больше, вот их и не экономят. Кроме случаев, когда экономия себя оправдывает (типа ASIC-майнеров). Благодаря этому мне часто удается найти в какой-нибудь системе большое поле для оптимизации, "обработав" которое, получаешь результат на гораздо меньших вычислительных и схемотехнических ресурсах, чем у конкурентов. На серийной продукции это дает преимущество.
Взять еще одну простую вещь. В Спектрумах были порты ввода-вывода, доступные только на запись. Тот же порт #FE. Туда можно было записать цвет бордюра, но обратно его считать из программы было невозможно. В нынешних микроконтроллерах, SoC и IP-блоках на FPGA обычно делают "дружественные для программистов" порты, доступные на запись и на чтение. А вдруг кому-нибудь понадобится. Но, если подумать - то считывание из подобных портов нужно крайне редко, а затраты ресурсов нешуточные. Нужен дополнительный мультиплексор на 8 или более разрядов, связи к нему, и логика управления. Затраты ресурсов кристалла на реализацию двунаправленного порта в 2 и более раз выше, чем однонаправленного. Я в своих IP-блоках на FPGA не занимался подобными растратами, в результате они получались по ресурсам в разы компактнее тех, что поставляет производитель FPGA.
Еще один пример - инициализация аппаратных регистров при сбросе. Выглядит красиво на бумаге. Но для этого требуется развести к каждому регистру и триггеру сигнал сброса, и чтобы этот регистр дополнительно имел вход сброса. Но оправданы ли траты ресурсов разводки связей, если регистры можно при старте инициализировать программно?
Иногда такая оптимизация отделяла победу от поражения - когда в противном случае из-за плотности разводки не удавалось достичь нужной тактовой частоты, на которой работоспособна вся схема.






Ответить с цитированием