panotnapПрежде временная оптимизация вредит разработки. А именно это и наблюдается у вас.
panotnap писал(а):
Тем более если учесть, что переключение задач, помноженное на сегментирование процессов - это не такое уж и маленькое число.
Суммарное время переключение процессов это 0.001 от вычислительной мощности компьютера. Так что число это маленькое. И пока оно не будет хотя бы 0.1 задумываться даже не стоит.
А вот мултипроцесность и защищенность гораздо важнее. А то будет как с win98 на которой нормально работать нельзя было, так как она раз в пару часов падала. Из за ошибок в прикладном ПО.
panotnap писал(а):
Говоря про mov, я имею в виду время, допустим, 1 миллиона mov-ов, идущих один за другим, разделённое на их количество, в пределах одного А) сегментированного, или Б) одним сегментом/страницей во всю RAM, процесса (пункт Б немного более предпочтительней, так как там планируется основная вычислительная нагрузка).
Нужен предельно быстый перебор массивов "двордов" с их обработкой в регистрах. Я правильно пониаю, что наиболее производительный вариант для 32бит будет минимальнейшее количество страниц, распределённых по всей памяти? То есть, всё-таки страничный вариант в таком случае будет работать быстрее, чем сегментный?
Это очень специфичный подход. Так как такая потребность крайне низкая из-за наличия алгоритмов который учитывают наличие кэша. Так что никто вам не скажет. Тут проще как в любой оптимизации сделать программу, а потом промерить её и найти узкие места. А затем их оптимизировать. Собственно так все делают.
panotnap писал(а):
В идеале хотелось бы адресовать всё одним 32-разрядником. Почему нет такого режима? Это так странно...
Ничего странного. В старые времена. В ПК было предусмотренно наличие дополнительных плат - карты расширения PCI. Так вот в каждой плате может быть своя память. Куда её деть? Поэтому 4ГБ поделили поровну половину отдали под основную память, половину для карт расширения 2ГБ.
А если вспомнить ещё раньше, то там были EISA карты. И там деление было 15 МБ основной памяти 1 МБ резервной.
А ещё раньше ОЗУ было меньше, всего 32Кб. И под ISA расширения отводилось 4*64 кБ и 10*64 под основную память.
Плюс БИОСу тоже нужна ОЗУ, так что он тоже откусывает кусочек от основной памяти - причем в самом неожиданном месте(местах).