Рубрика «hyperthreading»

Два потока, одно ядро: как устроена одновременная многопоточность - 1


Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними?

В статье я объясню, как устроена эта функция. Понимание внутреннего устройства SMT поможет вам решить, подходит ли она для ваших продакшен-серверов. Иногда SMT способна резко повысить производительность системы, но в некоторых случаях она приводит к замедлению. Знание подробностей позволит вам сделать правильный выбор.

Примечание: основная часть изложенного в статье относится к реализации SMT компании Intel, также называемой гипертредингом (hyper-threading). Она основана на научной статье компании, опубликованной в 2002 году.

Читать полностью »

Security Week 24: Rowhammer в Android и сложность аппаратных уязвимостей - 1Люблю читать научные работы, исследующие компьютерные уязвимости. В них есть то, чего индустрии инфобезопасности часто не хватает, а именно — осторожности при формулировке определенных допущений. Это достоинство, но есть и недостаток: как правило, практическая польза или вред от свежеобнаруженного факта неочевидны, слишком уж фундаментальные феномены подвергаются исследованию. В этом году мы немало узнали о новых аппаратных уязвимостях, начиная со Spectre и Meltdown, и обычно эти новые знания появляются в виде научной работы. Качества этих аппаратных проблем соответствующие: им подвержены целые классы устройств, их трудно (а то и вовсе невозможно) полностью закрыть софтовой заплаткой, потенциальный ущерб тоже непонятен. Да что там говорить, иногда сложно понять, как они вообще работают.

Примерно так выходит с уязвимостями класса Rowhammer. Четыре года назад была обнаружена принципиальная возможность изменить «соседний» бит в модуле оперативной памяти регулярными операциями чтения/записи. С тех пор появились новые исследования, показывающие, как применить эту особенность плотно упакованных чипов памяти для практических атак. На прошлой неделе сборная команда ученых из разных стран показала практическую атаку на Android-смартфоны RAMpage (новость, исследование). Насколько эта атака реально опасна? Попробуем разобраться (спойлер: пока непонятно).
Читать полностью »

Серьёзная ошибка в многопоточности процессоров Skylake и Kaby Lake - 1

В течение апреля и мая 2017 года компания Intel обновила документацию к процессорам Skylake и Kaby Lake, добавив одно небольшое примечание (errata KBL095, KBW095 для Kaby Lake, errata SKW144, SKL150, SKX150, SKZ7 для Skylake). Оно звучит следующим образом:

«В сложных микроархитектурных условиях краткие циклы менее чем из 64 инструкций с использованием регистров AH, BH, CH или DH, а также соответствующих более широких регистров (например, RAX, EAX или AX для AH) могут вызвать непредсказуемое поведение системы. Такое может произойти только если активны оба логических процессора на одном физическом процессоре».

Что означает это примечание — 25 июня 2017 года подробно объяснили в почтовом списке рассылки разработчиков Debian. Если вкратце, то процессоры Skylake и Kaby Lake с включенным HyperThreading могут вести себя неадекватно. Разработчики рекомендуют немедленно отключить HyperThreading в BIOS/UEFI, а потом обновить микрокод процессора от Intel или дождаться обновления BIOS/UEFI от своего вендора.
Читать полностью »

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

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

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

Однако прогресс не стоит на месте. Архитектура приложений эволюционировала в соответствии с изменившимися требованиями. Приложения, разработанные на основе этой архитектуры, мы называем Реактивными Приложениями. Такая архитектура позволяет программистам создавать событийно-ориентированные, масштабируемые, отказоустойчивые и отзывчивые приложения — приложения, работающие в реальном времени и обеспечивающие хорошее время реакции, основанные на масштабируемом и отказоустойчивом стеке и которые легко развернуть на многоядерных и облачных архитектурах. Эти особенности критически важны для реактивности.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js