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