The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Линус Торвальдс: "
Отправлено Aleksey Salow, 24-Сен-09 13:57 
>Не, там покруче на пару порядков. Грубо говоря - это такой идеальный
>неймановец.Настолько идеальный что даже у general purpose регистров CPU есть ...
>адрес (да, это вам не х86).

Вах. Аппаратное переименование регистров появилось аж в Pentium-е, если мне склероз не изменяет, для его суперскалярной архитектуры с двумя конвеерами это было полезно, а он появился аж в 1993 году.

>Крыша еще на хлопает в ладоши?

С какого это перепугу?

>Не вижу проблем чуть доразвить эту идею и сделать по образу и
>подобию но с переключением привилегий и полного состояния CPU, буквально еще
>пара-тройка регистров к контексту (Program Counter, mode, flags, ...).Тогда проц мог
>бы спокойно прыгать между пачкой процессов и режимов характерных для микроядра
>за буквально время выполнения 1 команды пишущей указатель, т.е. несколько тактов.
>Если б кого приперло микроядра всерьез и много юзать - давно
>б сделали.

Бла-бла-бла. Понимаете, разница между мной и вами в том, что у меня был курс микроэлектроники и я умею пользоваться калькулятором, а у вас всего этого не было.

Давайте посчитаем, сколько же памяти занимает контекст. Забегая вперёд скажу что в самом распоследнем Core i7 всего 32K L1 кеша данных, тобишь самой быстрой памяти с низким latency у нас всего кот наплакал. Но давайте посчитаем размер контекста:
16 x  64bit (регистры общего назначения) = 128b
8 x  80bit (FPU) = 80b
16 x 128bit (SSE) = 256b
64bit RIP   = 8b
64bit RFLAGS = 8b
5 x 32bit (CRx) = 20b
1 x 64bit (EFER) = 8b
тобишь только один контекст уже занимает 508b. Тобишь в L1 кеш влезет аж 64 контекста, а ведь там ещё данные хранить нужно. Добавьте в контекст каталоги страниц, чтобы за ними в память не лазить и не тормозить (одна PDPT, на которую cr3 указывает, занимает 512 x 48bit = 3kb). В общем на такой идее можно смело ставить крест.

>А вот немцам оказалось не слабо - в конкретном
>железе при том.Немолодом весьма.Забавно, а?

Ещё раз - у немцев задача была на порядки проще.

>Немцы в их добре наверное могли бы поддерживать сколько угодно наборов регистров,
>ограничиваясь только адресным пространством. По факту оно у них ограничено объемом
>накристальной RAM.И ничем более.Это явно не 2 задачи а, гм, довольно-таки
>неплохая кучка.

Ещё раз - 80C167, который конкурент 8051, поддерживал только основную программу и два прерывания: итого 3 контекста и в общей сложности < 48b на всё про всё.

>Если вспомнить про размер кешей у современных топовых CPU и предусмотреть на
>пиковый случай сброс добра в обычную оперативу (уже с потерей скорости
>ессно) можно понять что таким манером вполне реально очень быстро переключать
>контексты всех процессов и потоков в ОС. Если б кому зудело
>- давно б сделали уже.

Вы просто с реальностью не дружите, вот и всё. Контекст в современном проце это намного больше чем десяток восьми битных регистров. Даже если не учитывать каталоги страниц, то уже набегает пол килобайта, при этом их прийдётся вытаскивать из памяти и никакого одного такта не получится.

>Просто всем и так хорошо -
>вот и не дергаются. Но в теории это не запрещается. И
>даже как видите на практике в минимальном варианте существовало, блин.

Просто на практике это нереализуемо. Или вы думаете что разрабы добавляют L3 кеш на много мегабайт просто из лени нарастить на столько же L1?

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

Потому что нет этой резвой локальной, а та что есть - мало. Вы в своих познаниях относительно архитектуры процессоров застряли в районе конца 80-х начала 90-х.

>Дык разговор вроде был не о том как все паршиво может быть
>(у какойнить унылой байды типа х86 уродца) а о том как
>в принципе можно было сделать если б задаться целью. Проц похожий
>на это (хоть и отдаленно) я даже показал.

Давайте возьмём какой-нить RISC. У них регистров ещё больше и контекст занимает ещё больше. Можно всё сделать, если захотеть, только это никому не нужно будет, банально не взлетит ибо нет софта, который бы на нём работал.

>Это все не столь уж принципиально, т.к. буфером в случае накристальной памяти
>она может быть сама себе.

Ещё как принципиально. На размер контекста влияет.

>Но в обычной ситуации оно вообще юзаться не должно - этакая
>запасная фича, по аналогии с свопом :).

У меня сейчас на машинке запущено 245 процессов, сколько там потоков (тех самых execution context) - бог знает, считать лень. Тобишь уже места не хватает.

> И, собссно, зачем привязываться к тому как у х86 урода сделано?

потому что это сделано, это работает, под это написано много кода.

>Можно ведь и иначе.
>Просто и изящно приделать это к новой архитектурке, заранее предусмотрев какойнить
>обработчик исключений по этому поводу, отливая в заведомо non-pageable память и
>прочая (да, читать контекст проца из свопа - не рулит как
>бы, ни разу! :D).

Делайте, кто вам мешает?

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру