Проблема с шинами
Потребляемая мощность процессора прямопропорциональна его частоте. Конструкторы процессоров в последние годы перестали увеличивать их частоту, избрав вместо этого возможность повышения производительности за счет увеличения числа ядер.
Многоядерные процессоры, как правило, быстрее одноядерных, поскольку могут разделить вычислительную нагрузку на множество частей и запускать их параллельно, а не последовательно. Но не каждая вычислительная задача может быть легко разделена на равные части и осуществляться независимо. Для того, чтобы эффективно завершить свой кусок вычислений, каждое ядро должно обмениваться данными с другими ядрами. Обычно это происходит через единый пучок проводов под названием "шина".
Проблема в том, что когда два ядра общаются друг с другом через шину, она становится недоступной для других ядер, а это означает, что эта архитектура не будет масштабироваться на массовых многоядерных процессорах.
Существующие процессоры от двух до восьми ядер расположились в границах архитектуры одной шины. Десятиядерные чипы в высокопроизводительных серверах содержат в себя вторую шину, но добавление большего количества шин просто не поможет в будущем, когда процессоры будут включать в себя сотни, возможно даже тысячи ядер, а при использовании долгих путей увеличится расход энергии.
"Интернет-процессор"
Исследовательская группа Массачусетского технологического института во главе с Ли-Шуан Пе предлагает новый путь ядрам для связи друг с другом, преимущество которого в большей масштабируемости. Подход команды похож на тот, что используется для обеспечения маршрутизации пакетов данных, передаваемых по Интернету, и дает возможность данным найти другие пути между ядрами, таким образом, делая связь намного более быстрой.
Вместо того, чтобы полагаться на одну шину, Пе с коллегами представили себе систему, в которой каждое ядро в процессоре может общаться с четырьмя ядрами, расположенными рядом, сразу и способными распределять данные по мере необходимости. Это означает использование более коротких путей, благодаря чему будет более низкое напряжение и значительно более низкое энергопотребление для межъядерной связи.
Как в случае с интернет-маршрутизатором, пути, через которые проходят данные, можно легко сменить, чтобы добраться до места назначения. В этом контексте, это полезно в случаях, когда участок шины уже загружен другими данными.
Исследователи спроектировали и сконструировали свой собственный 36-ядерный процессор с применением этой архитектуры, чтобы проверить её производительность. Они будут использовать этот прототип, если также решат одну из самых больших проблем, с которой сталкиваются при попытках создать сетевой чип, - поддержку когерентности кэша.
Когерентность
Отправка данных от ядра вплоть до конца их пути занимает относительно много времени. Для того, чтобы ускорить вычисления, каждое ядро имеет свой собственный кэш, очень небольшой, но дающий ядру доступ ко всем временным вычислениям.
Поскольку несколько ядер могут обрабатывать одни и те же данные одновременно, то должен быть способ поддержания соответствия между кэш-памятью в различных ядрах. Обычные компьютерные процессоры используют для этого протокол, когда каждое ядро поддерживает связь через шину с другими ядрами, что может привести к очистке кэш-памяти.
Если ядро обновляет данные в своем локальном кэше, оно немедленно сообщает об этом остальным. Так что теперь, если другое ядро хочет получить доступ к обновленным значениям, оно должно транслировать запрос через шину, и при их наличии, они отправляются по запросу. Из-за того, что есть только одна общая шина и только одна межъядерная связь одновременно, синхронизация сохранения данных становится относительно простым действием.
Но если изъять шину и позволить данным распространяться несинхронизированно, как в случае с процессором Пе, поддержание когерентности кэша становится более сложным процессом. Исследователи решили эту проблему, добавив к основной сети дополнительную, которая рассылает уведомления по всему процессору как только одно ядро запрашивает часть данных другого ядра.
Каждый маршрутизатор знает, какие были выпущены запросы, и с помощью какого ядра, потому что каждому из 36 ядер процессора присвоен различный приоритет. Этот иерархический порядок имитирует хронологический, в котором запросы будут передаваться по стандартной шине, а это означает, что прежний протокол по-прежнему работает, но теперь становится легко масштабируемым для процессоров, которые могут иметь сотни и даже тысячи ядер.
Что дальше?
Исследователи планируют проверить свой 36-ядерный процессор и оценить его производительность, используя модифицированную версию операционной системы Linux.
После этого команда раскроет аппаратные описания процессора в виде открытого исходного кода, что повышает вероятность того, что мы сможем увидеть такую коммерческую архитектуру процессора в ближайшем будущем.
----------
Если в семье ожидается пополнение, то вы наверняка уже готовитесь к этому дню. Вы покупаете одежду, кроватку игрушки и, конечно же, коляску. А выбрать ее можно на сайте https://mymal.ru/kolyaski/kolyaski-2-v-1. Большой ассортимент, отличное качество.
Комментарии: