Схема сделала бы новые тайники данных высокой производительности на 33 – 50 процентов более эффективными

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

Естественный способ использовать ту память как тайник высокой производительности, быстрый, местный магазин часто используемых данных. Но ГЛОТОК существенно отличается от типа памяти, как правило, используемой для тайников на чипе, и существующие схемы управления тайника не используют его эффективно.На недавнем Международном Симпозиуме IEEE/ACM по Микроархитектуре исследователи из MIT, Intel и Швейцарской высшей технической школы Цюриха представили новую схему управления тайника, которая улучшает скорость передачи данных тайников ГЛОТКА в пакете на 33 – 50 процентов.

«Пропускная способность в этом ГЛОТКЕ в пакете может быть в пять раз выше, чем ГЛОТОК вне пакета», говорят Ксиэнгьяо Ю, postdoc в Информатике MIT и Искусственном интеллекте Лабораторный и первый автор на новой бумаге. «Но оказывается, что предыдущие схемы тратят слишком много транспортных метаданных доступа или движущихся данных между в – и ГЛОТОК вне пакета, не действительно получая доступ к данным, и они тратят впустую много пропускной способности. Работа не является лучшей, Вы можете добраться от этой новой технологии».Мешанина тайника«Метаданными» Ю имеет в виду данные, которые описывают, куда данные в тайнике прибывают из. В современной компьютерной микросхеме, когда процессору нужен конкретный кусок данных, он проверит свои местные тайники, чтобы видеть, ли данные уже там.

Данные в тайниках «помечены» с адресами в главной памяти, из которой они оттянуты; признаки – метаданные.Типичный тайник на чипе мог бы иметь пространство достаточно для 64 000 элементов данных с 64 000 признаков. Очевидно, процессор не хочет искать все 64 000 записей тот, которым он интересуется.

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

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

Поиск двух или трех пунктов для данного признака, однако, намного лучше, чем поиск 64,000.Немая памятьВот то, где различие между ГЛОТКОМ и SRAM, технологией, используемой в стандартных тайниках, входит.

Для каждой части данных это хранит, SRAM использует шесть транзисторов. ГЛОТОК использует один, что означает, что это намного более космически-эффективно. Но у SRAM есть некоторая встроенная мощность переработки, и ГЛОТОК не делает.

Если процессор хочет искать тайник SRAM элемент данных, он посылает признак в тайник. Сама схема SRAM сравнивает признак с теми из пунктов, сохраненных в соответствующем местоположении мешанины и, если это получает матч, возвращает связанные данные.ГЛОТОК, в отличие от этого, не может сделать, почти передают запрошенные данные.

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

У ГЛОТКА в пакете может быть много пропускной способности, но этот процесс тратит его. Ю и его коллеги – Srinivas Devadas, профессор Эдвина Сибли Уэбстера Электротехники и Информатики в MIT; Кристофер Хьюз и Нэдэзур Сатиш из Intel; и Онур Матлу из Швейцарской высшей технической школы Цюриха – избегает всей этой передачи метаданных с небольшой модификацией системы управления памятью, найденной в большинстве современного жареного картофеля.

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

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

Один бит указывает, указывают ли данные, в которых виртуальный адрес может быть найден в тайнике ГЛОТКА и других двух, на его местоположение относительно каких-либо других элементов данных с тем же самым индексом мешанины.«Во входе у Вас должен быть физический адрес, у Вас должен быть виртуальный адрес, и у Вас есть некоторые другие данные», говорит Ю. «Это уже – почти 100 битов. Так три дополнительных бита довольно маленькое верхнее».Есть одна проблема с этим подходом, к которому также должна обратиться Банши.

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

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

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