Компании Intel, ARM и AMD раскрыли информацию о двух новых уязвимостях в механизме спекулятивного выполнения инструкций. Для полного устранения проблем требуется установка обновления микрокода и внесение изменений на стороне операционной системы. Бета-версия обновления микрокода Intel пока предоставлена только OEM-производителям. Для ядра Linux уже предложены необходимые патчи (защита действует только при обновлённом микрокоде). Обновления пакетов с ядром сформированы для RHEL и Ubuntu, и ожидаются для Debian и SUSE. По предварительной оценке исправление проблем приведёт к снижению производительности на 2-8%.Нераскрытыми остаются детали о ещё 6 уязвимостях (четыре с высоким уровнем опасности, а две со средним), публикация детальной информации по которым ожидается в августе, после истечения эмбарго. Раскрытым уязвимостям присвоен средний уровень опасности. Первая из раскрытых проблем (Spectre 3a, буква добавлена чтобы избежать путаницы, так как вариант 3 может трактоваться как уязвимость Meltdown) позволяет прочитать содержимое системных регистров, а вторая (Spectre 4) даёт возможность прочитать данные из закрытых областей памяти. Проблемы не специфичны для архитектуры x86 и кроме процессоров Intel и AMD, также проявляются в CPU ARM и IBM (POWER 8, POWER 9, System z).
Определённую опасность представляет Spectre 4 (CVE-2018-3639, SSB - Speculative Store Bypass) - метод атаки напоминает Spectre 1, но базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации.
Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи. Если после вычисления смещения выявлено пересечение областей памяти для записи и чтения, процессор просто отбросит уже спекулятивно полученный результат чтения и повторит эту операцию.
Данная особенность позволяет инструкции чтения получить доступ к старому значению по некоторому адресу во время пока операция сохранения ещё не завершена. После отбрасывания неудачной спекулятивной операции в кэше остаются следы от её выполнения, после чего для его извлечения может применяться один из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным.
Практически атака Spectre 4 осуществима только в рамках привилегий одного уровня, т.е. привилегии атакующего должны допускать доступ к исследуемой памяти. Наиболее опасным применением уязвимости является атака на браузеры и системы совместного изолированного выполнения кода (например, JVM, изоляция кода в sandbox, системы с JIT). В контексте браузера атака позволяет получить доступ к памяти с данными других вкладок при помощи выполнения JavaScript-кода, но возможность проведения атак по восстановлению содержимого кэша уже достаточно эффективно блокируется в актуальных выпусках web-браузераов, благодаря ограничению точности таймера.
Опасность совершения атак в системах массового доступа (серверы хостинга, системы виртуализации и облачные платформы и т.п.) находится под вопросом, так как прототипы совершения атаки подтверждены только в рамках одного уровня привилегий. Чтобы использовать уязвимость для чтения привилегированных областей системной памяти, атакующему необходимо контролировать старое значение по определённому адресу в системной памяти.
Проблема независимо выявлена исследователями Google Project Zero и Microsoft Security Response Center (MSRC). Для защиты на уровне операционной системы для процессоров Intel предложена техника SSBD (Speculative Store Bypass Disable), основывающаяся на применении нового MSR-бита, который будет доступен после обновления микрокода. Так как блокирование проблемы сопряжено с потерей производительности, а тотальная защита от Spectre 4 не всегда целесообразна, в исправлении для ядра Linux предусмотрена опция speculative_store_bypass_disable, позволяющая отключить защиту. В случае активации защиты для приложений предложен новый интерфейс prctl, при помощи которого программы могут определять наличие защиты и выборочно отключать её для отдельных процессов.
Что касается Spectre 3a (CVE-2018-3640, RSRE - Rogue System Register Read), то уязвимость может привести к чтению содержимого системных регистров с информацией о состоянии оборудования, доступ к которым имеется только у ядра, драйверов и гипервизоров. Проблема выявлена исследователями из компании SYSGO AG.
URL: https://www.redhat.com/en/blog/speculative-store-bypass-expl...
Новость: https://www.opennet.dev/opennews/art.shtml?num=48639
Не успевают одну закрыть, как находят другую. Такими темпами глядишь производительность реально упадёт на 30-40% на текущей архитектуре.
Она,не "реально упадет", а просто снизится до ожидаемой, если производитель не обманывает покупателей. Ваш К.О.
Уже давно надо управление отдать AI (в т.ч. и управление страной). Человек доказал что он не может хорошо решать сложные задачи.
А AI делать будут рептилоиды с Нибиру? Задача-то сложная, люди её хорошо решить не смогут (по твоим же словам), а плохой ИИ мало кому интересен/нужен.
> А AI делать будут рептилоиды с Нибиру? Задача-то сложная, люди её хорошо решить не смогут (по твоим же словам), а плохой ИИ мало кому интересен/нужен.Разговоры про рептилоидов и нибиру в 2к10 году? Вижу по стате лайков (8 + 2) что минимум 10 человек к нам сразу из с криокамеры.
Давай поговорим об этом: https://www.segodnya.ua/lifestyle/science/iskusstvennyy-inte...
Хотя стоп! С твоей ориентацией (рептилоиды, нибиру, etc..) максимум что ты можешь выдавить из этой ссылки - это что у ссылки домен из ua-зоны, а тут рядом бандера, гитлер, поцреотизм и т.п. Короче - нет! Я передумал продолжать разговор с тобой.
И окажется выгодно вообще отказаться от спекулятива.
Вполне возможно. Кэш - это костыль. А костыль на костыле - костыль в квадрате). Более того, кэш в процессорах сейчас сильно мешает масштабированию в сторону увеличения количества ядер.
Давно уже пора потихоньку внедрять SRAM память.
>Кэш - это костыльКак и записные книжки. Пора уже начать запоминать всё и всегда
Пора бы! Но в отличие от головного мозга, CPU можно заменить.
Записные книжки - необходимость. Кэш - это оптимальное по совокупности критериев решение проблемы медленного доступа к памяти, но со своим вагоном значимых недостатков. Перестанет быть оптимальным - от него тут же откажутся.
Или менять архитектуру. Современные процессоры тщательно эмулируют архитектуру фон Неймана, которая была актуальна в середине прошлого века, хотя реально, современные процессоры имеют совершенно другую архитектуру. И все эти косяки с кешом возникают как раз на этих сложностях эмуляции. Хотя сегодня эту эмуляцию вполне можно было бы выполнять статически компилятором. А затем двинуться в сторону отражения реальной архитектуры процессоров в языках программирования, чтобы дать программисту возможность вмешиваться в работу "эмулятора" фон Неймана, и указывать какие данные и в какой памяти надо хранить.Но нет ведь, будут тянуть за собой всю эту бэквард совместимость и накручивать эмулятор поверх эмулятора, лишь бы ничего не менять. Вот увидишь, когда сделают квантовый процессор, в него засунут эмулятор процессора с многими кешами, в котором будет эмулятор фон-неймановской архитектуры, и всё ради того, чтобы не переучивать тупых программистов, которые в ответ на любые изменения начинают скандировать "хипстер!", "смузи!" и вообще демонстрировать свои навязчивые вокализации такого рода.
Поставил фильтр бреда и увидел только знаки препинания
Сложно новые для себя идеи воспринимать? Это очень трудно исправить, я знаю. Но возможно, ты не сдавайся.
Идеи всегда можно отнести к разным категориям.
Например, идея "ходить на работу на руках" как и "эмуляция фон-Неймановской архитектуры современными процессорами" - относится к категории "бред"
> Идеи всегда можно отнести к разным категориям.
> Например, идея "ходить на работу на руках" как и "эмуляция фон-Неймановской архитектуры
> современными процессорами" - относится к категории "бред"Мне нравится уровень твоей аргументации, который оставляет за мной право судить о том, что именно тебе непонятно. Раз так, то я возьму на себя смелость сделать вывод, что ты не знаешь, что такое архитектура фон-Неймана, и изложу тебе эти азы информатики.
Архитектура фон-Неймана предполагает, что процессор можно условно промоделировать, выделив в нём внутре ALU и CU, а снаружи i/o-девайсы и память, которая предоставляет единое однородное адресное пространство для всех основных задач. То есть линейную память, в которой хранятся код, данные, и работа с памятью никак не зависит от того, что в этой памяти лежит. Можно изменять код обычными инструкциями для работы с памятью, можно выполнять передачу управления на данные -- процессору без разницы. Работа с памятью всегда единообразна, потому что в системе команд есть идея "адреса", инструкции работы с памятью (вне зависимости от того, работают ли эти инструкции с кодом или данными) позволяют использовать эти адреса для того, чтобы ссылаться на _любую_ ячейку памяти.
Это, конечно, упрощённое описание. Если ты почитаешь фон Неймана, ты увидишь, что он сам выделял ещё один тип памяти, помимо линейной оперативки -- внешний накопитель, который использует свою собственную схему адресации ячеек памяти (или правильнее сказать "единиц хранения"?). Но это если, по-хорошему, мелочи.
Эти мелочи со временем начали плодиться. Например, в x86 есть несколько файлов регистров -- регистры общего назначения, регистры FPU/XMM и регистры SSE (вроде я ничего не забыл, да?). Ещё в процессор напихали много ALU (а ещё FPU, MMX и SSE), конвееры, и кучу других улучшений, которые отчасти скрыли под эмуляцией архитектуры фон Неймана, отчасти просто сделали вид, что эти улучшизмы принципиально ничего не меняют. И, наверное, так оно и было.
Но дальше больше. Со временем однородность адресного пространства совершеннейшим образом пошла лесом: появились кеши, и процессору теперь помимо регистров и собственно ОЗУ доступно ещё несколько типов памяти, которые различаются по характеристикам. Но система команд процессора осталась заточена на линейную память, все эти кеши вроде и есть, но нет инструкций позволяющих оперировать значениями в этих кешах. В процессоре может быть несколько инструкций для управления кешом, а может и не быть. Но в любом случае, это управление сводится к "включить/отключить кеширование", "сбросить кеш", "префетч". Вот файл регистров, который ведь тоже, если по-хорошему, выполняет функции кеша, доступен для непосредственной адресации, и программа может обратиться к поизвольному регистру, кодируя адреса этих регистров в машинном коде. А с L1 программа не может таким образом работать, потому как L1 находится под слоем эмуляции фон-неймана, всё сделано таким образом, чтобы программа не замечала бы разницы.
И таким образом мы теперь имеет существенно не фон-неймановские процессоры, которые прикидываются фон-неймановскими, натягивая поверх своей реальной архитектуры слой эмуляции фон-неймана. Можно было бы и дальше делать вид, что ничего этого нет, и все процессор фон-неймановские, но разве все эти уязвимости не убеждают, что пришла пора открыть глаза, и признать, что а) существует слой эмуляции фон-неймана, б) этот слой эмуляции порождает целый новый класс проблем?
Как обычно, надул щеки, выдал кучу умных слов, но смысл их понять не удосужился. От того, что ты получишь прямой доступ к кешу фон Неймановская архитектура никуда не денется, а сабжевые уязвимости вообще станут тривиальными, ведь отпадет нужда в довольно сложных методах косвенного анализа кеша.Самое смешное, что элемент гарвардской архитектуры есть в некоторых процессорах, но ты про него ничего не сказал, видимо тоже не понял.
> Как обычно, надул щеки, выдал кучу умных слов, но смысл их понять
> не удосужился. От того, что ты получишь прямой доступ к кешу
> фон Неймановская архитектура никуда не денется, а сабжевые уязвимости вообще станут
> тривиальными, ведь отпадет нужда в довольно сложных методах косвенного анализа кеша.Это смотря как организовать этот доступ к кешу, и как распределять кеш-память между процессами. То есть, начать надо с того, что кеш прекратит быть кешом: его никто не будет называть кешом, так же как сегодня никто не называет регистры процессора кеш-памятью. Соответственно данным будет невозможно "оседать в кеше", потому что кеша нет. Есть разные типы памяти, которые может быть отмаплены на единое адресное пространство, может быть нет и живут в раздельных. Может быть это маппинг выполняется ядром, может быть материнской платой, может быть вообще не выполняется, и соответственно для доступа к L1 нужно использовать другие инструкции, чем для доступа к DRAM. Я вижу много вариантов, как можно было бы сделать, и я не знаю какой из них лучше, но если отказаться от симуляции фон Неймана посредством прозрачного кеширования, то проблема либо уйдёт вовсе, либо станет чисто софтварной проблемой, которая будет решаться на уровне ядра, что вообще-то правильно: ядро специально для того и создано, чтобы распределять железные ресурсы, разрешая конфликты между конкурирующими за эти ресурсы процессами. И, кстати, оно неплохо справляется.
> Самое смешное, что элемент гарвардской архитектуры есть в некоторых процессорах, но ты про него ничего не сказал, видимо тоже не понял.
Какие ты умные слова, оказывается, знаешь. "элемент"... никогда бы не подумал.
В целом, я с Вами согласен. Ассемблерному программисту было бы эффективно обращаться напрямую к быстрой памяти, применяемой сейчас как кеш. Можно было бы добиваться огромного прироста скорости. Но относительно малый объем этой памяти ставит под сомнение ее эффективное распределение между процессами. Ведь при переключении контекста, ее не сбросишь в стек, как регистровую память. А выделять крошечными кусочками - ИМХО мало толку.> Какие ты умные слова, оказывается, знаешь. "элемент"... никогда бы не подумал.
Знаете ли, фраза "файл регистров" мне тоже режет слух, набор регистров - привычнее.
> Но относительно малый объем этой памяти ставит под сомнение ее эффективное распределение между процессами. Ведь при переключении контекста, ее не сбросишь в стек, как регистровую память.Да, ставит под сомнение. Именно потому я и говорю о том, что процессор со многими кешами -- это другая архитектура, что она ставит довольно глобальные вопросы о том, как можно сделать эффективно. И это сомнение -- одна из причин, почему сегодня intel эмулирует фон неймана, тупо предполагая, что эмуляция фон Неймана с прозрачным кешированием -- это самый эффективный путь. Но мне так не кажется, что-то мне подсказывает, что альтернативные пути недостаточно исследованы, чтобы утверждать, что там нет способа использовать железо более эффективно.
В качестве случайной сырой идеи для примера: может надо подумать над тем, чтобы большую часть процессов вообще не допускать к L1? Ну, зачем, например, гуёвому приложению L1? Реакция на ивенты в большинстве случаев не требует высокой производительности, там есть ограничения по допустимой latency. Ну так пускай весь gui живёт в L2 и DRAM. А к L1 допускать только тех, кому реально надо. Так, мне кажется, вполне можно резко уменьшить количество перезагрузок кешей, без просадки в производительности, связанной с тем, что какие-то процессы работают без L1. Ядерные обработчики прерываний ведь делают так подчастую, отключая кеширование первой же инструкцией обработчика, чтобы не портить содержимое кеша, только потому, что надо инкрементировать один байт в RAM. Почему бы не попытаться провернуть что-то аналогичное в юзерспейсе для event-driven программ? Но не на уровне отключения кеширования вообще, а на уровне отказа от использования L1, в пользу использования L2.
Или может зайти вообще с другой стороны -- пускай процесс по мере необходимости создаёт виртуальную архитектуру процессора, заточенную под задачу. Надо сделать что-нибудь в стиле arr.sort().uniq().map(|x| println(x)), пускай процесс закажет под эту задачу пяток ядер, к ним L1 памяти столько, сколько будет удобно для sort, декларирует время выполнения, настроит пайпы между ядрами, и отдаст всё это на исполнение ядру, ядро всё это запустит, гарантируя что вся эта штука будет работать заказанное время без прерываний, в результате чего данные между DRAM и L1 будут пересылаться ровно столько раз, сколько это необходимо.
Сейчас, на мой взгляд, создана почва для того, чтобы совершить революцию в архитектуре процессора: есть куча накопленного опыта создания CPU, GPU, всяких там векторых расширений к ним, есть куча накопленного опыта в разработке языков программирования и оптимизирующих компиляторов к ним; налицо сложности с наращиванием мощности через тупое увеличение чего-нибудь (размера кеша, тактовоый частоты, ...). Но вместо революции, мы видим продолжающуюся, хоть и буксующую, эволюцию. Даже ИТМиТВ, со своими претензиями на революцию, на самом деле эволюционен по своей сути, они десятилетия тянут одну и туже идею, ассимилируя туда все новые знания, которые добываются интелами при разработке их процессоров. Это чистой воды эволюционный процесс.
> Знаете ли, фраза "файл регистров" мне тоже режет слух, набор регистров - привычнее.
"Набор регистров" мне звучит слишком математично, в том смысле что это термин с другого уровня абстракции, с того где мы говорим не об архитектуре процессора, не о составных его блоках, а о, например, программировании на ассемблере. "Набор регистров" не отражает в себе идеи того, что эти регистры все в целом являют собой цельный блок процессора, и что я говорю не столько о регистрах, сколько о блоке процессора на схеме. "Файл регистров" -- это дословный перевод фразы register file, может его как-то иначе принято переводить, но я не знаю, в русскоязычных текстах я его не встречал.
Что скажете про архитектуру Mill, из того что про неё опубликовано и известно?
> Что скажете про архитектуру Mill, из того что про неё опубликовано и
> известно?Ничего. Я в первый раз про неё слышу. Мой опыт подсказывает, что для того, чтобы понять архитектуру, надо начать писать под неё на асме. Идеально ещё найти гайд по оптимизации, который будет описывать несколько месяцев жизни гика, которые тот посвятил издевательствам над реальным железом с таймером в руках.
Вы понимаете разницу между кешем и регистром?
> Вы понимаете разницу между кешем и регистром?Да. А вы понимаете общее между кешом и регистом?
Суховато, не находите? Впрочем, не хотите - никто не заставляет.
> Суховато, не находите? Впрочем, не хотите - никто не заставляет.Вы к чему это? К тому, что вы не понимаете разницу между регистрами и кешом, и хотите, чтобы я вам объяснил её? Или что? Выражайтесь яснее, пожалуйста.
Не обращайте внимания - это просто типично "совковое" мышление.. Это из сериии: "А зачем мне еще учиться если у меня уже есть мой "супер-друпер" диплом и все мне должны и я не обязан кому-либо"... ДА, конечно чувак, "ты не обязан" - но тогда пожалуйста не расказывай что все вокруг "Г@#@Ы" а ты один супер и тебя никто тебя не хочет понимать и платить больше...
> Не обращайте внимания - это просто типично "совковое" мышление.. Это из сериии:
> "А зачем мне еще учиться если у меня уже есть мой
> "супер-друпер" диплом и все мне должны и я не обязан кому-либо"...
> ДА, конечно чувак, "ты не обязан" - но тогда пожалуйста не
> расказывай что все вокруг "Г@#@Ы" а ты один супер и тебя
> никто тебя не хочет понимать и платить больше...В другую крайность тоже лезть не стоит, мол "и без ваших консерваторий лучше петь умею". Научился разбирать/собирать движок своей бэхи с закрытыми глазами - это не повышает уровень познаний в ДВС. Отрубил башку курице - уже ветеринар?
В защиту советской системы: диплом всё ж нужно было регулярно продлевать на курсах повышения квалификации. А если не работа по специальности в течение непрерывных 3 лет - диплом под вопросом. Так было в сурьёзных КБ, если что. Может не повезло, и не застали таковых.
Ещё раз: современные процессоры "эмулируют" архитектуру фон-Неймана не более, чем современные экскаваторы эталонную палку-копалку, у которой, между прочим, нет "уязвимостей" ввиде зависимости от бензина либо запчастей.
Вот CISC-RISC трансляция это эмуляция, т.к. это _принципиально_ _отличающиеся_ сущности, а кеш, повторюсь - это не эмуляция, это эволюция архитектуры с _целью улучшения производительности_, в то время как эмуляция почти всегда подразумевает совместимость _в ущерб производительности_
> Ещё раз: современные процессоры "эмулируют" архитектуру фон-Неймана не более, чем современные
> экскаваторы эталонную палку-копалку, у которой, между прочим, нет "уязвимостей" ввиде
> зависимости от бензина либо запчастей.Отличный аргумент. На пять баллов. Ни слова по сути дела, но зато увлекательные разговоры о палках-копалках.
> Вот CISC-RISC трансляция это эмуляция, т.к. это _принципиально_ _отличающиеся_ сущности,
> а кеш, повторюсь - это не эмуляция, это эволюция архитектуры с
> _целью улучшения производительности_, в то время как эмуляция почти всегда подразумевает
> совместимость _в ущерб производительности_Давай разберём по буквам, написанное тобой?
Я навскидку вижу у тебя тут три существенных косяка, которые делают невозможным для меня ответить тебе по существу.
1. ты говоришь о принципиальных отличиях, забывая, что принципиальность отличия -- это субъективная штука. Тут сейчас будет лёгкое погружение в метафизику, но ты не пугайся, я постараюсь аккуратно. [метафизика]Любые две сущности могут быть рассмотрены как одинаковые или как разные. На самом деле это очень важное умение человеческой психики проделывать такие мыслительные операции. Даже два электрона с одинаковым спином различны. Хотя бы тем что они находятся в разных местах пространства. И в то же время, любые две вещи одинаковы хотя бы в том смысле, что они "вещи". Если ты можешь сопоставить две сущности в своей психике и сравнивать их, то ты можешь произвольно придти к выводу, что они различны или что они одинаковы -- попробуй поиграться с этим, и ты увидишь. Более того, это умение необходимо для мышления.[/метафизика] А теперь вопрос к твоим принципиальным отличиям: почему ты считаешь CISC и RISC _принципиально_ различными?
2. ты говоришь так, будто отсутствие снижения производительности -- это аргумент в пользу того, что эмуляции нет. Найди мне определение эмуляции, которое хоть что-нибудь говорит о снижении производительности. Приведи его здесь со ссылкой на хоть сколь-нибудь авторитетный источник, хотя бы на википедию. Истинно говорю тебе, снижение производительности при эмуляции не входит ни в одно определение эмуляции. В лучшем случае оно упоминается как вероятный побочный эффект, но не как какое-то существенное свойство эмуляции, отсутствие которого делает эмуляцию неэмуляцией.
3. Ты говоришь об отсутствии снижения производительности, но что с чем ты сравниваешь? Вот сядь на пять минут в тихом месте, где тебя никто не будет отвлекать, и представь те два процессора, которые ты сравниваешь по производительности, для того, чтобы говорить об отсутствии снижения её.
>Ни слова по сути делаПо сути бреда ничего нельзя сказать, в принципе, кроме его (бреда) констатации как такового
>RISC
>CISC
>принципиальность отличия
>Reduced
>Complex
>субъективная штукаага, главное - что на уме, а не на бумаге, ну и водные простыни на 1к символов катать, продолжай =)
>>Ни слова по сути дела
> По сути бреда ничего нельзя сказать, в принципе, кроме его (бреда) констатации
> как таковогоЕсли нечего сказать по сути, то зачем ты вообще говоришь что-то?
>>RISC
>>CISC
>>принципиальность отличия
>>Reduced
>>Complex
>>субъективная штука
> ага, главное - что на уме, а не на бумаге, ну и
> водные простыни на 1к символов катать, продолжай =)Да я легко. И более того с радостью. Но про палки-копалки мне неинтересно разговаривать. Я могу и на 10k накатать, если ты дашь достойный того повод. Дай повод, и я накатаю. Вот ты выше пытался сравнить reduced и complex, видимо, предлагая мне за тебя придумать рассуждение подкрепляющее твои тезисы, чтобы потом его оспорить. Это очень интересное начинание с твоей стороны, и я даже, как мне кажется, вижу насколько глубоко ты не понял предыдущие 1k моих букоф. Но это "мне кажется": ты слишком мало сказал, чтобы я мог делать сколь-нибудь определённые выводы. Если ты хочешь, чтобы я с тобой спорил, то будь мужиком, изложи здесь свои рассуждения, и вот тогда я разберу их по косточкам.
>Если нечего сказать по сутиБред нужно подчёркивать как таковой и не более, во избежание обострения у его сгенерировавшего
>Я могу и на 10k накататьЗвучит как угроза свободному месту на этом сервере
>ты слишком мало сказал, чтобы я мог делать сколь-нибудь определённые выводыТот самый случай, когда размер важнее содержимого? В таком случае разочарую - и почерк у меня плохой
То есть выложить свою аргументацию кишка тонка? Так и запишем.
Во, смотри, мне попалась ссылочка близкой тематики:
https://queue.acm.org/detail.cfm?id=3212479Почитай её: она не совсем о том, но, на мой взгляд, она должна приблизить тебя к пониманию текущего состояния архитектуры процессоров.
Вас крайне сложно как читать, так и воспринимать вообще. За стеной красивых слов - скрывается пустышка. Ни фактов, ни понимание предмета.
> Вас крайне сложно как читать, так и воспринимать вообще. За стеной красивых
> слов - скрывается пустышка. Ни фактов, ни понимание предмета.У вас просто на лицо не знание предметной области, мне всё, прекрасно понятно.
Тогда ответьте на такой вопрос: что он имел в виду под эмуляцией фон Неймана?
> Тогда ответьте на такой вопрос: что он имел в виду под эмуляцией
> фон Неймана?Даже с моим скромным багажом, комментариями Ordu и сабжем довольно понятно стало, что в схеме фон Неймона был только один тип памяти. А сейчас имеем зоопарк из регистров, кешей L1-L2-L3 и RAM . Причём прямого контроля на кешем нету. Но при работе ПО в угоду обратной совместимости, все эти адресные пространства выглядят скорее как единое простраство памяти. В целом поизучайте асьму или хотя бы почитайте про архитектуру x86 .
З.ы. я профан, ткните палкой, где я мог быть не прав.
К сожалению, вы заблуждаетесь. Дело тут вовсе не в кешах, а архитектуре. Модели адресации памяти - это вообще другая история. Впрочем, как и вы - так же очень далек от всего этого, но какие никакие познания в этом все-таки имеются. И мне хотелось бы получить ответ на вопрос от человека, вопрос которому был задан. Ведь ему все понятно и труда составить не должно.
Такая архитектура есть: VLIW. Никаких гадающих аппаратных блоков. Вся работа с кэшем переложена на компилятор. Фактически даже нет ограничений по увеличению количества ядер: https://www.ixbt.com/cpu/vliw.shtml
VLIW -- это не только отказ от "прозрачного" кеша, это ещё и ряд других вещей. Тоже противоречивых и спорных вещей.
Какая разница, тут реализуется аппаратно, там программно. В VLIW хоть выбор есть, делает это автоматически компилятор, или программист сам, вручную, более оптимально.
> Какая разница, тут реализуется аппаратно, там программно. В VLIW хоть выбор есть,
> делает это автоматически компилятор, или программист сам, вручную, более оптимально.Давайте мы не будем жевать эту жвачку снова? В x86 распределение по конвеерам тоже происходит вручную или компилятором, самая большая разница в том, что конвееры x86 могут за единицу времени прожёвывать разное количество команд: если один конвеер застрял на тормозной инструкции, то другие за время, пока он её жуёт, могут пропустить через себя по нескольку инструкций. Во VLIW это невозможно: если один конвеер застрял, то значит застряли все.
Вот только компилятор уже лет 20 никто такой разработать не может. А в теории - да, звучит.
Впрочем, решение есть - переписать ваще все на чисто функциональном языке программирования. :-)
И запустить на чисто функциональном оборудовании без ввода-вывода
> Поставил фильтр бреда и увидел только знаки препинанияПоздравляю, ты подтвердил отсутствие бреда. Узнай уже что такое "фильтр".
Новая архитектура ‒ это, скорее, что-то, типа, когда на законодательном уровне весь IDLE юзерского процессора будет принадлежать облакам. Шоп имеющиеся, так сказать, водопользовательские ресурсы впустую по ветру и по трубам не гонять :))
посмотрите про скорость света, вас очень удивит, как с памятью за пределами чипа всё печально, и оно ( скорость света - скорость распространения электромагнитного излучения, не подлежит "апгрейду" в связи с прогрессом в технологиях)
> Вполне возможно. Кэш - это костыль. А костыль на костыле - костыль
> в квадрате). Более того, кэш в процессорах сейчас сильно мешает масштабированию
> в сторону увеличения количества ядер.
> Давно уже пора потихоньку внедрять SRAM память.скopee STT-MRAM
Кеш - это необходимость. Без него производительность упадет на несколько порядков и не является выходом. Другое дело - необходимо внести в его работу некоторые правила и исключения. Все вполне поправимо и беспокоиться по этому поводу стоит вряд ли.
Видел модули SRAM? На них еще пиктограмма иногда присутствует - перечеркнутая кисть. Дескать не прикасаться - горячо. А горячо - значит дорого для батареи, если это ноутбук. Каково снизить время работы ноута с нескольких часов до минут сорока? Да и просто дико дорого по деньгам для любого домашнего компа.
уже. Мой хасвель на пару поколений по производительности просел
просто надо использовать старое доброе правило - не пускать то, где нужно сесурити, в интернеты. А для браузера сойдет и калькулятор (в сферическом вакууме, разумеется - хипстеры с нодой сводят эту затею на нет)
То есть, "хипстеры с нодой сводят эту затею на нет"? Это что ж получаеться, - сейчас низзя уже Опеннет с калькулятора почитать, потому что некие "хипстеры" сведут мой калькултор на "нет"?
только опеннет и можно. Всякие тытрубы будут тормозить даже в текстовом виде. Да, гику-шифропанку оно не сдалось. А вот обычному_пользователю - да. А админу потом ломать голову над хардварным зловредом
подтверждаю, 50+ фаерфокс тормозит/подвисает на 4х ядерном проце 1.6ГГц (16Гб RAM), если смотреть развлекательные сайты с анимацией, хром пока ещё работает.
Все эти уязвимости со снижением производительности процессоров выглядит как попытка всколыхнуть рынок (в плюсе все! производители процессоров, МС, производители смартфонов (если те тоже будут закрывать уязвимость)). В плюсе все, кроме естественно пользователей.
И слава Богу что упадет! Возможно это надоумит всех @#@кодеров создавать более качественный и оптимизированный КОД! Дабы не "обо@#@#@ся" пеоред очень НУЖНЫМ(КОШЕЛЬКОМ) в демонстрации и внедрении своего "творения"... )))
Хоть не читай новостей...
Меньше знаешь — крепче спишь.
Предупрежден — значит вооружен.
Параноя - не оружие, а болезнь
Правильно: Паранойя
Синдром спеллчекера - тоже
Вам лучше знать =)
Я не знаю, а записываю
От знаний уйдёшь — в хвосте пойдёшь.
> Меньше знаешь — крепче спишь.Не в этом случае
От сумы да от тюрьмы не зарекайся
Воистину: много будешь знать - быстро состаришься.
Знание человека возвышает, а невежество унижает.
Многие знания -многия печали
Подскажите, как читать Опеннет на калькуляторе, или теплом ламповом советском радиоприемнике? Может хоть там нет этих уязвимостей?
> теплом ламповом советском радиоприемникеНе защиты от MITM
>> теплом ламповом советском радиоприемнике
> Не защиты от MITMMajor In The Middle?
В первом пне нет этих уязвимостей.
Кстати, интересно, подорожали ли на ебее Р1 в свете последних новостей (они там и так недешего стоили).
Ага, как будто в первопне нет предсказания ветвлений.
Не было. В первопне оно работало иначе. Там емнип было упреждающее исполнение в двух конвейерах, на которых вычисления при других условиях могли параллелиться в "две инструкции разом), при этом неактуальный результат дропался. Собсно тогда очень много граблей выгребли, из-за того что команда перехода конвейер не дропала.
> Ага, как будто в первопне нет предсказания ветвлений.спекулятивное выпонение в Р6 появилось
https://en.wikipedia.org/wiki/P6_(microarchitecture) |grep 'Speculative execution'
Pentium(P5) != Pentium Pro(P6)
В первом пне как раз есть — это первый процессор с ooe от Intel.Такой уязвимости нет в 80486. Найди себе AMD am5x86.
еще один аналитег не осиливший википедию
зачем пентиум -- есть нетоповые модели ARM -- Cortex A55, A53 например они вроде неподверженны подобным атакам и этим новым и первоначальным вариантам спектра и мельтдауна. На них сделаны например большинство средних телефонов и микрокомпы типа raspberry pi 3 и odroid c2 и масса других...
Срочно всем в облака. Это так надежно и безопасно, что все маркетологи уже повыпрыгивали из штанишек.
облака работают на Intel, AMD, ARM.
Капитан?
многие arm не подверженны
И конечно скоро выпустят очередной LGA 1151-v3 не совместимый с двумя предыдущими с ещё большим оверпрайсом, надо же кому-то продавать новое сито с хорошо помытыми дырами
Его уже выпустили, год назад
зато блин MIPS почти убили и везде вытесняют....
А что, MIPS совсем-совсем без спекулятива? И даже MIPS64?
мипс правит баллом на сетевых железках!
> зато блин MIPS почти убили и везде вытесняют....А как же байкал? Там штоле арм?
Есть версия MIPS (Baikal-T1), есть версия ARM (Baikal-M).
А в Байкале может внезапно оказаться FSB Management Engine ;)
> А в Байкале может внезапно оказаться FSB Management Engine ;)Да, в СШАшечку такое не попродаёшь.
>Производство: 2016
>Технология производства: 28 нм
>Наборы инструкций: ARMСудя по тому, что делают его на Тайване, проблем быть не должно.
>>Производство: 2016
>>Технология производства: 28 нм
>>Наборы инструкций: ARM
> Судя по тому, что делают его на Тайване, проблем быть не должно.И поэтому samsung на территории США продаёт исключительно телефоны на qaulcomm-овском чипе, а всяких других китайцев так никто в США и не продаёт.
Победит худшее техническое решение, сделавшее ставку на маркетинг.
Господа, переходите на DOS! 1 исполнемая задача - 100% гарантия того, что никакой фоновый процесс не перехватит ваши данные.
> Господа, переходите на DOS! 1 исполнемая задачаСрочно курить устройство ДОСа. Кто-то явно забыл про TSR и прочих.
Программы-резиденты смотрят на тебя с некоторым подозрением.
Лучше на Спектрум.
> Господа, переходите на DOS! 1 исполнемая задача - 100% гарантия того, что
> никакой фоновый процесс не перехватит ваши данные.та же многозадачность, только сделанная через анус и без попыток разграничения прав вообще.
Защищённый режим есть
Ой, уморил. Одна задача и нет фоновых процессов... Там было столько "фоновых процессов", что у досовского DrWeb'а в процессе работы прогресс-бар за 100% уходил, пока какой-нибудь OneHalf найдется :)
...и никто не вспомнил про замечательный DESQView.
[анекдот про дятла, программистов и цивилизацию]
Мне кажется или все эти атаки - это атаки хакеров на солонки?
Если в солонке может храниться учетка вашего интернет-банкинга, то да.
Да легко! Написал на листике логин и пароль от учетки интернет-банкинга -- запихнул в солонку.
Ну прочитает софтина кучу железо специфичной инфы, толку то, кроме фигнерпринтинга юзера по железу другого вреда нет.А касательно хостингов с виртуалками, АМД заранее впилила в райзены шифрование памяти с помощью AES, ключи где то там в PSP лежат и применяются уже после переключения контекста или как то так. Те смысла читать с других виртуалок нет, получишь сплошной рандом.
> А касательно хостингов с виртуалками, АМД заранее впилила в райзены шифрование памяти
> с помощью AES, ключи где то там в PSP лежат и
> применяются уже после переключения контекста или как то так. Те смысла
> читать с других виртуалок нет, получишь сплошной рандом.Засада в том что контексты вручную переключают. В рамках любой современной операционки работающей на интелевых камнях с точки зрения камня выполняется всего одна задача. Переключение задачи через шлюз задачи невероятно дорогая по времени операция, потому-что требует сброса неактуального кэша. Точнее она была не особо дорогая когда кэш весил единицы килобайт. Но сейчас L1 кэша больше чем когда-то у меня было всей оперативы. Windows 3.1 на современных камнях в теории способна работать вообще из кэша.
Так что как обычно, ради тактического профита угробили стратегические возможности. Сперва ради производительности полезли хакерскими методами эмулировать аппаратный таск свитчинг через задний проход, теперь ставят костыли на грабли. С плоской моделью памяти ровно та же история случилась кстати. Сперва было удобно и немозголомно замешать все в одну кучу, теперь не знают какие костыли на это ставить.
>С плоской моделью памяти ровно та же история случилась кстати.Можно подумать что выпуклая (ну да многоуровневая) модель в этом плане чем-то отличается.
При современном количестве реализованных в памяти функций, оперируя только стеком можно выполнить почти любую задачу методом возвратного программирования.
>А касательно хостингов с виртуалками, АМД заранее впилила в райзены шифрование памяти с помощью AES,Так читают то не из памяти, а из кеша. А в нем расшифровано будет. Кроме того, замедление памяти на шифрование/дешифровку - (Та-да-м!) увеличивают точность атаки и сводят на нет защиту - а давайте мы загрубим таймер. :)
Так в кеш то оно откуда попадает?
Ну будут дропать кеш при переключении виртуалок, не сильно страшно для большинства видов нагрузок.Насчёт производительности - не снижается, на райзенах по факту вся память шифруется, как я понял.
Оно же против ровхаммера.
Откуда что-то попадает в кеш? Из памяти вестимо.
И далее Есть у тебя два виртуальных ядра на одном реальном. Оба выполняют команду.
Левое имеет доступ к зашифрованной информации по адресу 0x00..0, угадай что прочтет из кеша правое по этому же адресу? А по другому адресу, но которое для ядра мапируется на тот же адрес нулевого кеша? А если оно выполнит спекулятивное чтение... Это только широко известные на сегодняшний день side channel attack.
VLIW архитектура подвержена данной уязвимости? Или там все выборки жесто предопределены на этапе компиляции?
Архитектура не подвержена, подвержена любая реализация спекулятивного кэша.
Только в VLIW кэш не скрыт от компилятора. Компилятор/программист сам загружает в кэш данные, с которыми будет работать.
Да ладноть. Программист только цепочку несвязанных команд готовит длиной в кешлайн. А далее как везде. Прочитать ссылку, а затем значение по ссылке, как было две команды так и осталось.
Ну и соответсвенно задача не заставлять процессор простаивать после того как он понял какой адрес ссылки, до того момента когда оно в кеш загрузится так и сидит на месте. То что команда стала размером с кешлайн только усугубляет проблему. Можете рассматривать CISC как тот же VLIw. Где в пределах кешлайна производятся несколько действий с разными операндами. Просто более компакно записанными и гибче.
Не обязательно спекулятивного, порой достаточно ассоциативного. Правда об этом давно уже забыли.
Oh, exploitable!
В FreeBSD 11.1 защита от Spectre, неактивированная по умолчанию, уже 40% съедает.
откуда дровишки и кто мерял?
вот этот чувак- мерял, результаты выложены в мелких деталях:
https://github.com/ArshanKhanifar/spectre-meltdown-benchmarks
Чё то не верю что проектировщики не знали об уязвимости кешей, а если знали проектировщики значит знали и АНБ . Развели детский сад
Ну теперь-то понятно, куда потребляются ресурсы моего компьютера. Почему-то WinXP для комфортной работы хватало 512МБ оперативной памяти,а Win10 мало и 4ГБ... Я думал, что это маркетинговая стратегия такая - намеренное увеличение системных требований для продажи нового железа. А это оказывается всё для нашей безопасности. Какие же они все молодцы. А если серьёзно, то нам ещё вчера нужен Free Hardware, чтобы любая китайская шарага могла эти процессоры в подвале клепать.
то у тебя майнер, не кипишуй
Win10 и есть майнер.
Службу "Функциональные возможности для подключенных пользователей и телеметрия" отключить ниасилил?
> Службу "Функциональные возможности для подключенных пользователей и телеметрия" отключить
> ниасилил?facepalm
Там этих служб десятки. И после выключения они опять сами включаются. А если удалять и запрещать на уровне политик и ntfs, то выскакивают ошибки, возникают проблемы с обновлением.
Сколько китайских шараг клепают RISC-V?
> Сколько китайских шараг клепают RISC-V?Сколько раз ты сам держал в руках RISC-V?
За год n уязвимостей, а нет, год не прошел еще. И 40-50 процентов производительности минус. Вопрос - сколько времени еще понадобится чтобы вернулись первые пентиумы
Аниме в формате 640 на 360 хватит всем. Так же как 640 кило (зачеркнуто) мега (зачеркнуто) гига(бабай)т оперативы....
Надо сделать два режима работы компа теперь - без интернет макс производительность и с интернетом - 486
Тетрис запускается? Чего тебе еще надобно, старче?
> кроме процессоров Intel и AMD, также проявляются в CPU ARM и IBM (POWER 8, POWER 9, System z)Чует мой спинной мозг - тут не обошлось без какой-нибудь "R&D"-конторы из силиконовой долины, у которой все перечисленные лицензировали "революционную технологию увеличения производительности".
Идея буфера с "быстрой памятью" она "тривиальна". Рано или позно дело доходит до упреждающего чтения, урезания разрядности адреса и пр.
Ибо на текущий момент старая добрая память работающая быстрее процессора невероятно дорога (в тех объемах, к которым привыкли).
Всё, все подрываемся и бежим покупать Эльбрус!!! :)
AMD Ryzen и EPYC снова всех обыграл.
> AMD Ryzen и EPYC снова всех обыграл.угу, тем что к этому дорогому ненужноненужно поленились подобрать тайминги.
> Всё, все подрываемся и бежим покупать Эльбрус!!! :)Эльбрус конечно хорошо, но он пока не поддерживает виртуализацию.
к 2020(вроде) обещались
>к 2020(вроде) обещалисьЭт да, но всё же пока появится, пока обкатают и т д , т. е. к 20-му году нужно прибавить ещё несколько лет прежде чем дело дойдет до продакшена.
В 2015м будет построена база на Луне.
Вот там и будут производить термоядерные эльбрусы - в документальном мультфильме показывали.
Всё it сделано из го*на, веток, html и javascript. Как оно всё работает решительно не понятно...
Это потому что каждое ядро делают таким жирным, как будто оно единственное.