Будущее поколение компьютеров сможет стать еще более мощным благодаря процессорам, на чипах которых будут находиться сотни и тысячи вычислительных ядер. В настоящее время создание процессоров с большим количеством ядер тормозится необходимостью наличия большого объема высокоскоростной памяти и специальных диспетчеров, которые отслеживают изменения в памяти, производимые каждым вычислительным ядром, и координируют действия всех ядер, сообщая им о необходимости обновить данные, находящиеся в общем доступе. Но новая технология, разработанная специалистами из Массачусетского технологического института, позволит кардинально уменьшит количество памяти, необходимое для координации действий вычислительных ядер, что, в свою очередь, практически снимет ограничения на количество ядер внутри чипа одного процессора.
Новая технология, получившая название «Tardis», координирует разделение общих данных внутри многоядерных процессоров намного более эффективно, нежели существующие методы прямого доступа. В результате, количество необходимой для координации действий ядер памяти увеличивается в логарифмической зависимости от количества ядер, а не в прямой пропорции, как это обстоит в настоящее время. Так, будущему чипу с 128 ядрами потребуется всего одна треть от объема памяти, требующейся сопоставимому чипу, основанному на существующей системе прямого доступа. А при увеличении количества ядер до 256 экономия количества памяти составит уже 80 процентов и 96 процентов для чипа с тысячей ядер.
В современных многоядерных процессорах используются специальные «справочники», директории в памяти, которые используются ядрами для того, чтобы избежать конфликтов, когда одному из ядер требуется внести изменения в общие данные, доступные всем ядрам. Когда общие данные обновляются, диспетчер данным рассылает всем ядрам сообщения, говорящие о потере актуальности «локальных копий» данных, с которыми напрямую работают вычислительные ядра, после чего все ядра прекращают работу и ждут появления возможности считывания значений из обновленных участков памяти.
Система «Tardis» использует логическо-временную систему диспетчеризации, которая позволяет не только сэкономить объемы памяти, но и существенно повысить эффективность работы системы памяти в целом.
Эта система избавляет от необходимости рассылки сообщений всем ядрам об изменениях в общих данных. Вместо этого система генерирует временные метки для каждой вычислительной операции, затрагивающей общие данные, и гарантирует, что все последующие подобные вычислительные операции будут следовать за этими временными метками.
К примеру, если ядро А обновляет некоторые общие данные, он становится временным «владельцем» этих данных и получает соответствующую временную метку. В это время все остальные ядра могут продолжать работать с локальными копиями этих же данных, имеющими более ранние временные метки. Но каждый раз, когда другое вычислительное ядро, скажем ядро В, считывает общие данные, оно должно получить от ядра А своего рода «договор аренды», который обновляется при каждом последующем считывании общих данных. Таким образом получается, что все ядра будут координировать свои действия с «владельцем» части общих данных, постоянно обновляя временные метки, и так будет происходить до тех пор, пока другое ядро в результате арбитража не перехватит владение данными. Такие виртуальные «прыжки во времени» вдохновили исследователей из Массачусетского технологического института назвать свою технологию «Tardis» в честь космического корабля и одновременно машины времени из фантастического сериала «Доктор Кто».
Достаточно простая система временных меток «Tardis» устраняет ограничения и узкие места существующей директивной системы прямого доступа, которая полагается на физическое время. В отличие от системы, базирующейся на директориях, которая позволяет в любой момент времени работать с общими данными только одному вычислительному ядру, система «Tardis» позволяет каждому ядру «переводить» часы своих временных меток, совершая «прыжки во времени», одновременно работая со своими локальными копиями общих данных, а не проводя время впустую, ожидая высвобождения канала доступа к общим данным.
Несмотря на все преимущества новой системы разделения общих данных, внедрение системы «Tardis», если это вообще произойдет когда-нибудь, займет достаточно большое время. Ведь для этого потребуются кардинальные изменения как в архитектуре многоядерных вычислительных систем, так и в окружающей их инфраструктуре, чипсете.