Информация об изменениях

Сообщение Re[8]: Конец интел? от 13.09.2024 1:44

Изменено 13.09.2024 1:52 Pavel Dvorkin

Re[8]: Конец интел?
Здравствуйте, netch80, Вы писали:

N>А посмотри на VAX. Там 4 кольца используются на полную. Или сейчас на ARM, то же самое (с поправкой, что одно из них это гипервизор) и плюс по другой оси ещё "реалмы". Или на RISC-V, там три кольца плюс резерв для гипервизора (но они в итоге сделали иначе и PL2 просто не нужен).


А они реально используются ? Драйверы там отделены от ОС ? Если нет — то для чего используются ?

N>А сами Intel сделали SMM, который по их нумерации получается номер -1.


Это да. Но это нельзя было реализовать в рамках Ring3-0, не получилось бы compatibility с 286.


N>Всё просто. Если ты посмотришь на такую пачку архитектур, как MIPS, POWER, и даже SystemZ, то там можно (а в некоторых (было) обязательно), что в режиме супервизора маппинг (трансляция) виртуальных адресов в физические просто идемпотентна! То есть этот уровень работает в физических адресах. Ну просто нафиг ему не сдалось заниматься ещё и тем, что самому себе обеспечивать страничные каталоги, искать где их размещать и как правильно управлять, чтобы самому себе не вышибить почву из-под ног...


N>Пока писал, вспомнил ещё один момент. В Intel его тоже могли знать, потому что уже был VAX в полную силу доступен. Корневой каталог страниц свой на каждый процесс. Но если меняется маппинг для ядерной половины, его надо менять у всех процессов, на это есть особый контроль при переключении процесса. Что мешало сделать раздельные корневые каталоги хотя бы на две половины адресного пространства, и верхнюю не менять лишний раз? В VAX таких каталогов 4. В ARM сделали два каталога и управляемую границу между ними. Зачем x86 создал трудности на ровном месте?


Все логично. Но это еще один регистр типа CR3. А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.


PD>>С другой стороны, когда Intel попробовала сделать с нуля "как следует" — получился Itanium.


N>Там другая история. Я уверен, что кому-то из топов хотелось, опять же, выстебнуться и зайти в историю. Иначе не объяснить, как заведомо нерабочая изначально концепция могла пойти в железо. А почему кто-то мог подумать, что она рабочая — потому что история с Rambus, которые пообещали избавление от основных причин, почему вообще нужен out-of-order.


Вот с этим объяснением не согласен. Itanium делали же Intel вместе с HP. В обеих компаниях топам захотелось ?
Re[8]: Конец интел?
Здравствуйте, netch80, Вы писали:

N>А посмотри на VAX. Там 4 кольца используются на полную. Или сейчас на ARM, то же самое (с поправкой, что одно из них это гипервизор) и плюс по другой оси ещё "реалмы". Или на RISC-V, там три кольца плюс резерв для гипервизора (но они в итоге сделали иначе и PL2 просто не нужен).


А они реально используются ? Драйверы там отделены от ОС ? Если нет — то для чего используются ?

N>А сами Intel сделали SMM, который по их нумерации получается номер -1.


Это да. Но это нельзя было реализовать в рамках Ring3-0, не получилось бы compatibility с 286.


N>Всё просто. Если ты посмотришь на такую пачку архитектур, как MIPS, POWER, и даже SystemZ, то там можно (а в некоторых (было) обязательно), что в режиме супервизора маппинг (трансляция) виртуальных адресов в физические просто идемпотентна! То есть этот уровень работает в физических адресах. Ну просто нафиг ему не сдалось заниматься ещё и тем, что самому себе обеспечивать страничные каталоги, искать где их размещать и как правильно управлять, чтобы самому себе не вышибить почву из-под ног...


N>Пока писал, вспомнил ещё один момент. В Intel его тоже могли знать, потому что уже был VAX в полную силу доступен. Корневой каталог страниц свой на каждый процесс. Но если меняется маппинг для ядерной половины, его надо менять у всех процессов, на это есть особый контроль при переключении процесса. Что мешало сделать раздельные корневые каталоги хотя бы на две половины адресного пространства, и верхнюю не менять лишний раз? В VAX таких каталогов 4. В ARM сделали два каталога и управляемую границу между ними. Зачем x86 создал трудности на ровном месте?


Все логично. Но это еще один регистр типа CR3. А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.

И еще вот что учти. В этих ARM и VAX нет никаких GDT/LDT, а тут надо было сделать, чтобы соответствовало требованиям сегментного механизма. Никто не стал делать ОС в формате 16:32, но вообще-то ее сделать было можно, и не могла фирма не обеспечить это.

Другое дело, что вообще-то можно было совсем отказаться от сегментных регистров в 32 битном режиме. Кстати, где-то я читал, что при переходе к 64-битному от них хотели отказаться, но возникли какие-то проблемы с виртуальными машинами. Пруф не дам.


PD>>С другой стороны, когда Intel попробовала сделать с нуля "как следует" — получился Itanium.


N>Там другая история. Я уверен, что кому-то из топов хотелось, опять же, выстебнуться и зайти в историю. Иначе не объяснить, как заведомо нерабочая изначально концепция могла пойти в железо. А почему кто-то мог подумать, что она рабочая — потому что история с Rambus, которые пообещали избавление от основных причин, почему вообще нужен out-of-order.


Вот с этим объяснением не согласен. Itanium делали же Intel вместе с HP. В обеих компаниях топам захотелось ?