Re[9]: Конец интел?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.09.24 04:39
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

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


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


Ты о ком именно?
VAX? Да, отделены.
ARM? У Apple — да, но другими механизмами (те драйверы, что отделены, фактически user level). А дополнительные уровни — на гипервизора (понятно, почему отдельно) и EL3 — это близко к SMM в x86: суперпривилегированный уровень, который знает аппаратные тонкости. Вообще из-за secure mode и реалмов их сравнивать напрямую не получится.
Но в итоге то, что "драйвер", может быть разделено между всеми уровнями.

PD>Все логично. Но это еще один регистр типа CR3.


Да.

PD> А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1.


Вот и зафиксировали бы хотя бы на 1:1.

PD> Более того, формально ее просто нет, совсем нет деления на 2 части. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.


Скорее "быстро". Проще для железячников, да — ценой серьёзного усложнения для софта. Причём упрощение для железа небольшое, а вот усложнение для софта — серьёзное.

PD>И еще вот что учти. В этих ARM и VAX нет никаких GDT/LDT, а тут надо было сделать, чтобы соответствовало требованиям сегментного механизма.


Нет, конечно. Страничный и сегментный механизм в 386 никак не связаны. Даже тот факт, что страничный не включается без защиты, это просто волюнтаристское решение. Его можно было спокойно включать без защищённого режима, и это тоже бы работало.

Где есть связь — это в IBMовских SystemZ и POWER. Там в обоих одинаково (понятно, почему) аналог селектора сегмента используется для выбора конкретного корня страничной трансляции (из до 2^16 вариантов, что перегиб — реально редко кто использует больше 2). Вот если бы Intel подумал в эту сторону — было бы интереснее. Но они сделали так, что уже в 386 вся эта сегментация стала использоваться только для указания левых параметров типа в какой битности мы сейчас будем работать.

PD> Никто не стал делать ОС в формате 16:32, но вообще-то ее сделать было можно, и не могла фирма не обеспечить это. Представь себе, что кто-то бы сделал ОС, в которой небольшие сегменты Ring0 лежат в 32-битном пространстве вперемежку с сегментами Ring3 — в общем, 32-битный вариант Windows 3.1...


Я не понял, что именно мне представлять. Это явно уже было: в случае запуска 16-битных приложений в 32-битной среде, как нативных Windows, так и в DOS-режиме. Но от этого, как известно, старались быстро уйти ("быстро" это 5-10 лет, со стандартной инерцией IT).

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


Я тоже до такой степени не помню. Но вижу, что, например, 64-битный длинный режим нельзя включить в один заход: надо перейти сначала в 32 и потом переключаться флажком, который находится именно в CS (в его подробностях в GDT). А переключение в стиле loadall больше не делают.
Но интересно увидеть таки ссылку.

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


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


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


Причины могли быть разные. HP — например, чтобы сохранить инвестиции в уже сделанные и кое-как работавшие наработки, и надежда на долгое плодотворное сотрудничество со вполне себе сделавшим имя успешным партнёром. А вот для Intel попытка рывка в неизведанное — призрачный шанс вполне мог застить очевидные соображения.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.