user123 писал(а):Энтропия и тепловая смерть вселенной - страшная вешь...
. Со Вселенскими масштабами расстояний и времён, применением термодинамических законов к макротелам следует быть осторожнее... Правильнее сказать "тепловая смерть Земли" в рез-те человеческой деятельности...
. И уже не так страшно.
. Бывали в "Интеле" и нормальные идеи. Например, её исследовательский центр в Хайфе (видимо всё-таки умные евреи) предложил адресовать регистры сопроцессора напрямую, а не в виде стека (!). А так же добавить команды (сперва целочисленные), "заточенные" под параллельное выполнение, а не думать как распараллелить (на лету!) устаревшие 8086-подобные команды, имеющие зависимость от результата предыдущих (матричные операции у нас не в почёте). В результате появился процессор "Pentium-MMX" (4,5 млн. транзисторов против 3,3 мнл. у обычного "Pentium"). Большая часть добавочных транзисторов, кстати, ушла на увеличенный кеш "L1" в ядре. Для сравнения, "Пентиум-про" (прообраз "Пентиум-2") имел 5,5 млн. транзисторов и уступал по целочисленным операциям (на "плавающей запятой" "выезжал" в основном за счёт быстрого кеша "L2" рядом с ядром)... кто не согласен, что уступал, покажите, что "Pentium Pro 200" может сжать на лету видео 30 кадр/с в "MJPEG" хотя бы "704x288" 1,333 МеБ/с.
. Но чтобы всё было как всегда, дробночисленные команды оставили 8086-подобными, и по операциям с плавающей запятой "Пентиумы" ещё долго плелись в хвосте. Верх маразма - "Pentium-II 450 MHz" (7,5 млн. транзисторов): 500 "MFLOPS", "Sony playstation-2 300 MHz" (10 мнл. транзисторов): 6300 "MFLOPS"... Производители видеокарт быстро поняли ущербность процессора и стали устанавливать в свои изделия блоки расчёта геометрии, MPEG, физики и тому подобные. Дробночисленные расширения "третьих пней" и выше (SSE1/SSE2/SSE3/SSE4/SSE4.1/...) - довольно забавно...
. Из спец. литературы (не верьте, это пишут ламеры

интел - крутая фирма ):
.
Следует упомянуть об интересной уязвимости, связанной с «быстрым» возведением в степень. Об этом упоминается в исходниках libgcrypt, файл mpi-pow.c. Атака называется «Yarom/Falkner flush+reload cache side-channel attack» и позволяет с помощью манипуляций с кэшем второго уровня процессора (который общий для всех ядер) для неавторизованных приложений полностью выяснить значение d или его частей dp и dq. То и другое означает полное раскрытие секретного ключа, позволяющее злоумышленнику полностью прочитать все зашифрованные этим ключом сообщения или сгенерировать электронную подпись. То есть, допустим, ваша программа расшифровывает секретным ключом что-нибудь, а злоумышленная программа в этот момент работает в той же системе, но от имени другого пользователя, так что вы об этом не знаете. И в этот момент происходит утечка ключа.
.
.
. Фантазии
.
. Проект "Pentium 2", основанный на "Pentium Pro" отменён. Переменное отображение 16 регистров "IA32/FPU" на 40 универсальных "RISC"-подобных регистров, перекодировка и переупорядочивание потока команд признано нецелесообразным. Тесты показали, что грамотно написанный код практически не ускоряется, зато возрастает сложность схемы. Гораздо более необходимым признано увеличение скорости работы -кэша- тайника 2 уровня, добавление новых команд.
. Подготовлен проект 80686 на основе "Pentium MMX". Уменьшенный техпроцесс и удлинение конвейера позволило нарастить тактовую частоту до 333 МГц при той же потребляемой мощности. Шина данных оставлена прежней: 64 б , 66 МГц (примерно 500 МеБ/с). Тайник 2 уровня работает на половинной частоте ЦП (до 166 МГц) - как в проекте "Pentium 2". Добавлен 2 конвейерный блок вычислений с плавающей запятой двойной точности (64 б), поддерживающий команду "MAC" (перемножение с накоплением). Добавлены команды безтайникового чтения-записи. Разрядность шины адреса увеличена до 36 бит (64 ГиБ адресуемой памяти, как в проекте "Pentium 2") - программа может иметь несколько 4 гибибайтных сегментов кода, данных, -стека- стопки. Количество транзисторов - примерно 8 млн.
. В дальнейшем планируется уменьшить техпроцесс и нарастить частоту ЦП до 866 МГц, шину данных - до 133 МГц, применить технологию "DDR".
. Базовый комплект ОС (10 МеБайт, тоже фантазии):
.
. * Перевод ЦП в защищённый режим с сегменто-страничной адресацией ОЗУ.
. * Поддержка прикладного интерфейса системных вызовов. Сюда же -драйверы- водители фиктивных устройств типа "FAT32", переводящие имя файла в индекс ячейки накопителя.
. * -Менеджер- диспетчер памяти с обработчиками прерываний типа "исключение общей защиты".
. * Водители-трансляторы основных устройств: при запросах ввода-вывода ЦП переводится в реальный режим и вызываются водители "BIOS", после ЦП переводится назад.
. * Утилита установки-удаления ПО с псевдографическим интерфейсом.
. * Утилита установки-удаления драйверов с псевдографическим интерфейсом.
. * Утилита разбивки накопителя на разделы и создания файловой системы в разделах (форматирование раздела по "Windows"-терминологии).
. * Утилита форматирования накопителя (чем отличается форматирование по "Windows"-терминологии от простой записи данных в служебные структуры файловой системы не ясно...). При форматировании дискет, вроде, наносились метки дорожек, секторов, для позиционирования головок, в область данных записывался балласт. Для жёстких дисков давно устарело. Так что по нормальной терминологии - утилита форматирования дискет и других накопителей, поддерживающих команду "BIOS" "Format track".
. * Утилита трансляции команд пользователя в системные вызовы и работы с файлами с псевдографическим интерфейсом типа "Norton Commander".
. * Документация в текстовом формате с псевдографикой, позволяющая изучить основы ОС и вышеперечисленные утилиты.
. * Водители устройств компилируются отдельно от ядра в файлы "vxd", "dll" и "inf". При запуске ОС просматривает конфигурационные файлы и подключает машинные команды из "vxd", "dll"-файлов.
.
. Дополнение для поддержки сетей (10 МеБайт, можно ставить выборочно):
. * Водители виртуальных устройств "TCP/IP", "UDP/IP", расширяющие прикладной интерфейс системных вызовов.
. * Микропрограммы и драйверы для распространённых сетевых карт.
.
. Дополнение для поддержки графики
. * Водители "BIOS VESA", (медленно переключаются видеорежимы, но линейный видеобуфер быстр) подойдёт практически для всех видеоадаптеров, расширяет прикладной интерфейс системных вызовов.
. Дополнение для лучшего быстродействия (цель - заменить "BIOS"-драйвера):
. * Водители для распространённых таймеров (Intel ?).
. * Водители для распространённых "PCI IDE bus master"-контроллеров (Intel ?).
. * Водители для распространённых контроллеров "PCI" (Intel ?).
.
. * * *
. Но как и всякий невежда, "опровергающий" общеизвестное ("Intel" делает отличные ЦП) и достойный лишь сожаления, я не моргнув глазом сижу за "Pentium-3 Katmai 500 MHz", построенным по архитектуре "Pentium-2", к которой отношусь отрицательно (будь проклят тот день, когда я сел за баранку этого пылесоса...). Быстродействия "Pentium-MMX 200 MHz" на шине 66 МГц для моих задач не хватает. Одно из самых жёстких сообщений против меня выглядит примерно так: "Человек просто не имеет мозгов для того, чтобы адаптироваться к современному обществу. Если сказано, "для того, чтобы использовать компьютер как печатную машинку, интернет-клиент, видеомагнитофон и тому подобное нужно минимум 4 ГиБ ОЗУ и четырёхядерный ЦП 2 ГГц с мощнейшим графическим акселератором" - значит так надо. И не важно, что всё это вроде бы и не нужно, это нужно чтобы "доить" тех людей, которые считают себя выше других и назначают себе заоблачные зарплаты. Может он что-то и сделал, доказал, но другие смотрят на него и думают - глупец, изобретатель отсталых велосипедов, у меня уже аудиокарта - настоящие 24 бита, 96 кГц 5+1 каналов - дороже чем твой автомобиль." . Ну и конечно, обязательна жёсткая критика: скажите, а ваша программа может управляться по IP v6? А может по желанию пользователя менять расположение и цвет кнопок? А может использовать Intel AVX 2? ... Круто, мыльный пузырь какой-то...
. Построил подобие полёта на Луну. Массы Земли, Луны, гравитационную постоянную переписал из старого справочника, гравитация распространяется мгновенно, "Z"-компоненты у векторов не стал набирать - плоский случай, гравитационные поля - строго сферические. Солнца нет. Орбитальная на 200 км над Землёй получилась 7,8 км/с, Луны: 1 км/с.
. В точке 0:0 ЖРД не обеспечит точность по величине и направлению скорости. Орбиту нужно будет корректировать в процессе полёта и чем раньше - тем меньше топлива. В точке 95:18 проход Луны на минимальном расстоянии - нужно давать тормозной импульс или большой - для выхода на лунную орбиту, или мелкий - для возврата на Землю, иначе траектория продолжится как на рисунке.