Компьютерные микросхемы становятся все быстрее, потому что транзисторы становятся все меньше. Но сами чипы по-прежнему велики, поэтому данные, перемещающиеся вокруг чипа, а также между чипами и основной памятью, должны перемещаться так же далеко. По мере того, как транзисторы становятся быстрее, стоимость перемещения данных пропорционально становится более серьезным ограничением.До сих пор разработчики микросхем обходили это ограничение, используя «кеши» — небольшие банки памяти, расположенные рядом с процессорами, в которых хранятся часто используемые данные.
Но количество процессоров — или «ядер» — на чип также увеличивается, что затрудняет управление кешем. Более того, по мере роста числа ядер они должны чаще обмениваться данными, поэтому сеть связи, соединяющая ядра, также становится местом более частых заторов.В двух недавних статьях исследователи из Массачусетского технологического института и Университета Коннектикута разработали набор новых стратегий кэширования для массивно-многоядерных микросхем, которые при моделировании значительно улучшили производительность микросхем при фактическом снижении энергопотребления.В первом документе, представленном на последнем международном симпозиуме ACM / IEEE по компьютерной архитектуре, сообщается о среднем увеличении времени выполнения на 15 процентов и экономии энергии на 25 процентов.
Во втором документе, который описывает дополнительный набор стратегий кэширования и который будет представлен на международном симпозиуме IEEE по архитектуре высокопроизводительных компьютеров, сообщается о приросте в 6% и 13% соответственно.Кеши на многоядерных микросхемах обычно расположены в иерархии.
Каждое ядро имеет свой собственный частный кеш, который сам может иметь несколько уровней, в то время как все ядра совместно используют так называемый кеш последнего уровня или LLC.Протоколы кэширования чипов обычно придерживаются простого, но удивительно эффективного принципа «пространственно-временной локальности».
Временная локальность означает, что если ядро запрашивает определенный фрагмент данных, оно, вероятно, запросит его снова. Пространственная локальность означает, что если ядро запрашивает определенный фрагмент данных, оно, вероятно, будет запрашивать другие данные, хранящиеся рядом с ним в основной памяти.Таким образом, каждый запрошенный элемент данных сохраняется вместе с элементами, непосредственно примыкающими к нему, в частном кэше. Если он простаивает, он в конечном итоге будет вытеснен недавно запрошенными данными, проваливаясь по иерархии — от частного кеша до LLC и основной памяти — до тех пор, пока он не будет запрошен снова.
Различные штрихиОднако есть случаи, когда принцип пространственно-временной локальности нарушается. «Приложение работает с несколькими, скажем, килобайтами или мегабайтами данных в течение длительного периода времени, и это рабочий набор», — говорит Джордж Куриан, аспирант факультета электротехники и информатики Массачусетского технологического института и ведущий автор книги обе бумаги. «Один из сценариев, когда приложение не демонстрирует хорошей пространственно-временной локальности, — это когда рабочий набор превышает емкость частного кэша». В этом случае, объясняет Куриан, чип может тратить много времени на циклическую перестановку одних и тех же данных между разными уровнями иерархии кеша.
В статье, представленной в прошлом году, Куриан; его советник Шрини Девадас, профессор электротехники и компьютерных наук Эдвина Сибли Вебстера в Массачусетском технологическом институте; и Омер Хан, доцент кафедры электротехники и компьютерной инженерии в Университете Коннектикута и бывший постдок лаборатории Девадаса, представил конструкцию оборудования, которая решает эту проблему. Когда рабочий набор приложения превышает емкость частного кэша, микросхема исследователей MIT просто разделяет его между частным кешем и LLC. Данные, хранящиеся в любом месте, останутся на месте, независимо от того, как давно они были запрошены, предотвращая множество бесплодных обменов.И наоборот, если два ядра, работающие с одними и теми же данными, постоянно обмениваются данными, чтобы поддерживать согласованность своих кэшированных копий, чип будет хранить общие данные в одном месте в LLC.
Тогда ядра будут по очереди обращаться к данным, а не забивать сеть обновлениями.В новой статье исследуется случай, когда, наоборот, два ядра работают с одними и теми же данными, но обмениваются данными нечасто. LLC обычно рассматривается как один большой банк памяти: данные, хранящиеся в нем, хранятся только один раз. Но физически он распределяется по чипу дискретными порциями.
Куриан, Девадас и Хан разработали вторую схему, которая может обрабатывать эти фрагменты, по сути, как расширения частного кеша. Если два ядра работают с одними и теми же данными, каждое из них получит свою собственную копию в соседнем блоке LLC, что обеспечит гораздо более быстрый доступ к данным.
караульная будкаСистемы, представленные в обоих документах, требуют активного мониторинга работы микросхем — например, для определения того, когда рабочие наборы превышают некоторый предел или когда несколько ядер обращаются к одним и тем же данным. В каждом случае этот мониторинг требует немного дополнительных схем, что эквивалентно примерно 5 процентам площади LLC.
Но, утверждает Куриан, из-за того, что транзисторы продолжают сжиматься, а связь не поддерживается, пространство на кристалле не так важно, как минимизация передачи данных. Куриан, Девадас и Хан также в настоящее время работают над объединением двух схем мониторинга, чтобы один чип мог использовать стратегии управления кешем, описанные в обоих документах.«Это отличная работа», — говорит Никос Хардавеллас, доцент кафедры электротехники и информатики Северо-Западного университета. «Это определенно продвигает вперед современное состояние». Существующие схемы кэширования, объясняет Хардавеллас, действительно обрабатывают разные типы данных по-разному: они могут, например, использовать разные стратегии кэширования для программных инструкций и данных файлов. «Но если вы углубитесь в эти категории, вы увидите, что данные могут вести себя по-разному.
В прошлом мы не знали, как эффективно контролировать полезность данных. [Новый] дизайн оборудования позволяет нам это делать . Это значительная часть вклада ".Более того, говорит Хардавеллас, «кажется, что два разных дизайна работают синергетически, что указывает на то, что конечный результат их объединения будет лучше, чем сумма отдельных частей».
Что касается коммерциализации технологии, «я не вижу фундаментальной причины, почему бы этого не сделать», — говорит он. «Они кажутся осуществимыми, они кажутся достаточно маленькими и дают нам значительную выгоду».
