Re[2]: Откуда такая неизбывная приверженность к константам?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.10.24 16:00
Оценка:
Здравствуйте, netch80, Вы писали:

N>Я плохо представляю себе процессор (особенно в то время) с неограниченными размерами адресных регистров и количеством проводов на внешней шине.


Пока смена архитектуры влекла за собой смену программной модели, и программы с 8-разрядных ПК не переносились автоматически на 16-разрядные, а с 16-разрядных — на 32-разрядные, разумно было исходить из разрядности архитектуры.

N>А если мы имеем 20 бит, то потеря примерно половины из них на разные ROM, I/O и прочее — вполне естественна.


Господь с Вами, где там естественность? Половина от мегабайта — 512 кб, а на "разные ROM, I/O и прочее" попервости уходило чуть больше сотни.

N>то, что BIOS запускался с опять же константного адреса F000:FFF0, ты уже не считаешь? Что IDT реального режима сидела по адресу 0:0?


Это все жалкие копейки, какой смысл их вообще упоминать? Коню понятно, что ряд основных параметров неизбежно приходится фиксировать. Но этих параметров очень немного, подавляющее большинство остальных выбирается произвольно.

N>злоупотребляли фиксацией типа "MDA память на 0xB80000", но конфликты происходили в других местах.


Я не о конфликтах, а о фиксации без явной необходимости, как таковой.

N>Я не вижу твёрдых причин делать эти параметры переменными и требовать извлекать из какого-то справочника, если нет нескольких таких устройств (ресурсов, в общем случае). Там, где было (как компорты, в количестве от 1 до 8), BIOS таки давал такие данные по запросу.


То есть, протокол PnP Вы считаете стратегической ошибкой, и адреса/порты/прерывания до сих пор следовало настраивать перемычками?

N>Всегда есть какие-то постоянные параметры. Начиная с кодов команд процессора


Боюсь, Вы не поняли исходной идеи. Или поняли, но из природного упрямства решили довести ее до абсурда.

EM>>в 32-разрядной винде было 2+2 Гб, которые героическими усилиями переделали в 3+1.


N>Эта переделка вообще потребовалась, потому что на 64 бита не успели быстро перейти.


А если бы изначально, вместо фиксации 2+2, определили M+N, то переделки не потребовалось бы вовсе, а реализация запроса M и N была бы, наверное, в тысячи раз дешевле той переделки.

N>В остальном от неё проблем больше, чем пользы.


Как практически от любого костыля, призванного исправить последствия грубой непродуманности.

N>то, что в автомобиле конкретные габариты и диаметр колёс, ты тоже будешь считать неоправданно зафиксированной константой?


Если Вы о габаритах кузова, то они соответствуют как раз исходным константам архитектуры — разрядности магистрали и адресного пространства. Неоправданной фиксацией было бы, например, искусственное, произвольное разделение багажника на секции, из-за которого невозможно было бы загрузить предмет, не помещающийся в секцию.

А параметры колес как раз почти везде плавающие — на многие автомобили можно ставить диски трех-четырех смежных диаметров, а на каждый из таких дисков — шины разной высоты и профиля. Но диски/шины — физические объекты, поэтому их разумно выпускать в ограниченном наборе стандартных размеров, а не бесконечное количество любых возможных вариаций.

N>А питающее напряжение в электросети?


Это тоже исходный параметр. Неоправданной фиксацией константы было бы, например, произвольное ограничение величины тока, потребляемого из одной розетки.

Вторичный источник питания, по большому счету, способен выдавать произвольное напряжение ниже максимально возможного, поэтому фиксацию тех же 5 В в источниках для USB можно было бы тоже считать произвольной, но на момент стандартизации USB, источники с напряжением и током, управляемыми по цифровой шине, были чрезмерно дороги, и фиксация 5 В была разумным компромиссом. А вот если бы сейчас, в разгар дешевых цифровых интерфейсов и микросхем на все случаи жизни, для нового массового универсального интерфейса зафиксировали напряжение, скажем в 10 В, это стало бы неоправданным ограничением.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.