Механизм управления кэшем на основе «путешествий во времени» приспособили к процессорам Intel
Год назад в МТИ предложили механизм когерентности кэшей Tardis для многоядерных процессоров, основанный на концепции "путешествий во времени", - он выполняет операции с памятью в "логическом", а не хронологическом порядке, присваивая каждой отметки времени. Особенность Tardis - в том, что он требует последовательной консистентности, при которой, если ядро выполняет запись, а следующая инструкция - считывание, то перед ее выполнением придется дождаться окончания записи.
Но в современных процессорах последовательная консистентность не соблюдается, объясняют ученые МТИ: чип Intel может назначить последовательность ABC операций записи/считывания ядру, но выполнить оно их может, скажем, в порядке ACB. Более слабая консистентность позволяет процессорам работать быстрее.
Чтобы Tardis мог работать при менее жестких стандартах консистентности, характерных для процессоров Intel, исследователи предложили доработку - каждое ядро получает по два счетчика, один для операций считывания, один для записи. Если ядро решает выполнить считывание до завершения предыдущей записи, оно просто присваивает ему меньшую отметку времени.
В докладе о Tardis 2.0 разъясняется, как координировать работу счетчиков при различных моделях консистентности и количествах ядер. По оценкам исследователей, в чипах с сотнями ядер Tardis высвобождает 15-25% кэш-памяти, значительно ускоряя обработку.