The OpenNET Project / Index page

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



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

Исходное сообщение
"Прогресс в разработке компилятора для языка Rust на базе GCC"
Отправлено Аноним, 01-Июл-22 23:09 
> 1) Это не только ОС пытается.

Естественно, совместные усилия процессора и софта. Так конфигурабельнее, чем железно прошивать что-то неизменяемое.

> 2) Изначально таки равноценны.

Да, на одних и тех же физических законах работают. Или ты про то, что они сделаны на транзисторах?

> 3) Кто и какие права в MMU страницам прописывает это вообще к нейман vs гарвард не относится напрямую.

Если ты задашься вопросом зачем придумали такие абстракции как "нейман" и "гарвард", а потом это "зачем" применишь к современности, то ты увидишь, что они сегодня элементарно не работают, не выполняют своих функций. Бывают MCU или недо-процы которые следуют нейману или гарварду, но все топовые процессоры давно такие гибриды всех всевозможных идей из прошлого, что классификациями из XX века можно подтереться.

Так же как и с языками программирования. Нам достались некоторые языки из прошлого, которые чисто императивны, или функциональны, или декларативны, или интерпретируемы, или ещё что. Но все языки XXI века не вписываются ни в одну парадигму, потому что тащат из всех парадигм то, что им удобно, и отбрасывают то, что не удобно.

> Это попытка и рыбку съесть (не иметь гребли с гарвардом) и косточкой не подавиться (одновременно гонять инструкции и данные для них).

Да, именно. Инженеры прагматичные люди, и когда академики наморщив лоб предлагают какую-нибудь классификацию процессоров, инженеры следуют ей только тогда, когда это удобно. И подтираются ею, когда прагматичнее сделать иначе. Все классификации академиков чем-то напоминают закон Мура: они работают, пока они работают, а потом они перестают работать. Есть некоторые фундаментальные, скажем периодическая таблица Менделеева: её пришлось немного допилить, когда выяснилось что тупо по массе сортировать нестоит, потому что у атомов одного элемента может быть разная масса. Но таблица пережила перепиливание, и пока выглядит так, что она _фундаментальна_, она описывает фундаментальный закон Вселенной. Но большинство классификаций не фундаментальны, а просто кто-то очень умничал, пытался набить себе публикаций, получить PhD, или профессуру.

> А современные шустрые zerocopy интерфейсы и оптимизации про это в курсе?

Это и на i386 можно было. Создать отмапить память процесса на память ядра, и вот ядро может читать. Но оно не меняет того, что тебе приходится проводить кучу манипуляций для того, чтобы добраться до какого-то куска памяти.

Вот если проц на гарвардской архитектуре будет позволять, совершая определённые ритуалы, писать в программную память или читать оттуда -- будет ли это нарушением гарвардской архитектуры? Реально существуют MCU на гарвардской архитектуре которые могут перепрошивать сами себя, но для этого их распаять надо специальным образом (те о которых я знаю, по-крайней мере требуют специальной распайки). Насколько простыми должны быть эти ритуалы перепрошивки себя, чтобы они делали бы из гарвардской архитектуры фон-неймановскую?

> Более того mmap() в лине даже можно конкретный регион физической памяти отмаппить

И что? Если бы у тебя все адреса были бы равноценны, тебе бы не пришлось сношаться с mmap'ом.

> Обращение к физическому адресу 0x100500 это именно оно, и только так.

Когда ты в последний раз обращался к физическому адресу 0x100500? Ты можешь привести реалистичный пример программки на C, которая будет делать что-то типа *(unsigned char*)0x100500, и при этом обращаться именно к физическому адресу 0x100500?

Никто не обращается к физическим адресам, все давным-давно работают с виртуальными. Только mm в ядре парится о физических адресах, чтобы таблицы страниц правильно заполнять.

> Однако это лишь настройки MMU

И что? Если ты упомянул "умную" аббревиатуру, то "это" перестало существовать?

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

> Вообще это довольно нормальная абстракция, если не лезть в очень сильные дебри.

Все кроме этих позорных прикладников вынуждены думать о стопке всё более медленных слоёв памяти в цепочке регистры-L1-...-LN-RAM-SSD/HDD/TAPE. Им приходится учитывать нюансы работы этих слоёв, хотя бы с точностью до порядка представлять себе объёмы этих слоёв. Им приходится думать о том, как быстро прокидывать данные между процессами, между юзерспейсом и ядром. Они никуда не денутся от всех этих проблем. А раз так, то какой смысл называть эту мешанину фон-Нейманом? Или я могу поставить этот вопрос иначе: насколько надо ещё эту мешанину усложнить, чтобы наконец признать, что это уже не фон-Нейман?

У меня складывается ощущение, что ты считаешь, что ежели ядерный MM отлить в железе, то тогда это будет уже не фон-Нейман. Но ты понимаешь ведь, что никто в здравом уме годов с 70/80 такую сложность не отливает в железе? Такие сложности делаются софтварно. 8086 содержал микрокод, то есть множество программок, на каждую инструкцию по программке. В 8086 микрокод был прошит навсегда, но в более поздних процессорах его можно менять. Почему? Потомучто: а) слишком сложно в железе это делать, б) никаких транзисторов не хватит, и в) софтварное решение проблем гораздо гибче, настраиваемее.

 

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



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

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