Представлен экспериментальный 36-ядерный чип

На этой неделе на Международном симпозиуме по компьютерной архитектуре группа Пэ представила 36-ядерный чип, обладающий именно такой «сетью на кристалле». Помимо реализации многих ранних идей группы, он также решает одну из проблем, которые мешали предыдущим попыткам проектирования сетей на кристалле: поддержание согласованности кеша или обеспечение того, чтобы локально хранимые копии глобально доступных данных в ядрах оставались актуальными. Дата.В современных микросхемах все ядра — обычно от двух до шести — соединены одним проводом, называемым шиной.

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

В сети на кристалле каждое ядро ​​подключено только к тем, которые непосредственно примыкают к нему. «Вы можете очень быстро связаться со своими соседями», — говорит Бхавья Дая, аспирант Массачусетского технологического института в области электротехники и информатики и первый автор новой статьи. «У вас также может быть несколько путей к месту назначения. Так что, если вы идете слишком далеко, вместо одного перегруженного пути у вас может быть несколько».Получите слежкуОднако одним из преимуществ шины является то, что она упрощает поддержание согласованности кеш-памяти.

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

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

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

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

Цепи, подключенные к этой сети, очень просты: все, что они могут сделать, — это объявить, что связанные с ними ядра отправили запросы данных по основной сети. Но именно потому, что эти объявления настолько просты, узлы в теневой сети могут комбинировать их и передавать без задержек.

Группы объявлений достигают маршрутизаторов, связанных с ядрами, через дискретные интервалы — интервалы, соответствующие времени, необходимому для перехода от одного конца теневой сети к другому. Таким образом, каждый маршрутизатор может точно указать, сколько запросов было отправлено в течение определенного интервала и какими другими ядрами.

Доставка самих запросов может занять некоторое время, но получатели знают, что они были отправлены.В течение каждого интервала 36 ядер чипа получают разные иерархические приоритеты. Скажем, например, что в течение одного интервала и ядро ​​1, и ядро ​​10 выдают запросы, но ядро ​​1 имеет более высокий приоритет. Маршрутизатор ядра 32 может получить запрос ядра 10 задолго до того, как он получит запросы ядра 1. Но он будет удерживать его, пока не пройдут единицы.

Это иерархическое упорядочение имитирует хронологическое упорядочение запросов, отправляемых по шине, поэтому протокол отслеживания по-прежнему работает. Однако иерархия перемешивается в течение каждого интервала, чтобы гарантировать, что в конечном итоге все ядра получат одинаковый вес.Пруф, пудингСогласованность кэша в многоядерных микросхемах «является большой проблемой, и она постоянно увеличивается», — говорит Тодд Остин, профессор электротехники и информатики в Мичиганском университете. «Их вклад интересен: они говорят:« Давайте избавимся от многих сложностей, которые существуют в существующих сетях.

Это откроет больше возможностей для общения, а наш умный протокол связи будет разбираться во всех деталях ». Это гораздо более простой и более быстрый подход. Это действительно умная идея ».«Одна из задач академического сообщества — убедить промышленность в том, что наши идеи практичны и полезны», — добавляет Остин. «Они действительно выбрали лучший подход к демонстрации этого, поскольку создали работающий чип. Я был бы удивлен, если бы эти технологии не нашли свое применение в коммерческих продуктах».После тестирования прототипов микросхем, чтобы убедиться, что они работают, Daya намеревается загрузить в них версию операционной системы Linux, модифицированную для работы на 36 ядрах, и оценить производительность реальных приложений, чтобы определить точность теоретических расчетов группы. прогнозы.

На этом этапе она планирует выпустить чертежи чипа, написанные на языке описания оборудования Verilog, в виде открытого исходного кода.