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