Intel Haswell станет первой архитектурой компании, которая будет обладать поддержкой транзакционной памяти. Релиз Haswell запланирован на 2013 год.
Транзакционная память позволяет выполнять сложные операции изолированно одна от одной. В современных многопоточных программах общие ресурсы блокируются. То есть если один поток обращается к некоему файлу, сети или другим ресурсам, другой уже не может воспользоваться этими данными, пока в рамках первого потока не завершится операция. Единственные операции, которые разрешаются с заблокированными ресурсами – чтение.
При транзакционной модели памяти, общие ресурсы не блокируются. Все операции с данными осуществляются из памяти. Перед тем как начать операцию создается транзакция. В рамках нее осуществляются все расчеты. Система проверяет вносились ли в это время какие-то изменения в данные. Если их не было, результаты операции сохраняются. Если другой процесс внес изменения, то транзакция отменяется, равно как и все изменения. Поток может попробовать повторить операцию.
Поддержка транзакционной памяти в Haswell получила название Transactional Synchronization Extensions (TSX). Она состоит из двух решений. Hardware Lock Elision (HLE) позволяет легко преобразовывать обычные программы в транзакционные. Второе — собственно поддержка транзакционной памяти Restricted Transactional Memory (RTM).
HLE «обманывает» программы. Поток действует так, будто он может блокировать ресурсы. Хотя на самом деле они остаются свободными, и к ним могут обращаться другие потоки.