
Intel, 22nm üretim ölçekli Haswell kod adını verdiği çok çekirdekli yeni nesil işlemcisinin, Transactional Synchronization Extensions: İşlemsel Senkronizasyon Uzantıları (TSX) teknolojisi sayesinde çoklu iş hattı üzerinde yürütülen aplikasyonları kolaylıkla çalıştırabileceğini açıkladı. Bu senkronizasyon uzantıları, kilit (lock) tabanlı senkronizasyon mekanizmaları barındıran ve bellek paylaşımında bulunan çoklu iş parçacıklı uygulamalar için oldukça kullanışlı çünkü TSX desteği ile yazılmış uygulamalar, mimarisi çoklu çekirdek ve çoklu iş hattı temeline dayanan işlemciler üzerinde çok daha hızlı çalışır hale gelecek. Kilit tabanlı senkronizasyon mekanizmalarında, kilitlenen veri diğer mantıksal işlemcilere (çekirdek) ya da iş hatlarının erişimine kapatılıyor. Peki, Intel TSX ile erişime kapatma sürecinde gidilen değişimin detaylarında neler bulunuyor? İsterseniz gelin şimdi bunu anlamaya çalışalım.
Intel TSX paketinde, programcıların işlem senkronizasyonu yapmak için kod bölgeleri belirlemesine yardımcı olan komut seti uzantı dizileri bulunuyor. Kabaca ifade etmek gerekirse; programcılar bu uzantılarla yazılım hazırlarken coarse-grained locking (çok sayıda veri/kaynak az kilitle korunur) mantığına dayalı kodlamalar yapsalar da, kilit tabanlı senkronize biriminde yer alan tüm erişim ortamı yerine, sadece gerekli olan kısmı erişime kapatma prensibine dayalı fine-grain locking mantığıyla elde edilecek işlem performansına erişebilecekler.
İşlemsel senkronizasyon ile CPU, mevcut iş hatlarını kilit korumalı kritik kısımlarla seri hale getirmek gerekip gerekmediğini devingen bir biçimde belirleyip sadece gerekli olduğunda serileştirmeyi gerçekleştirecek. Bu edinim işlemcinin kaynakları eşzamanlı olarak kullanıp, çıktı üretmesini sağlayacak aksi halde gereksiz senkronizasyon yüzünden bu potansiyelden yararlanılamıyor ve atıl işlem kapasitesi ortaya çıkıyor.
Intel TSX ile en düşük kodlama düzeyinde bile programcının belirlediği kod bölgeleri (aynı zamanda işlemsel bölgeler olarak anılır) esnek erişim yeteneğine kavuşuyor. Yürütülen işlem başarıyla tamamlandığında, işlemsel bölgede gerçekleşen tüm bellek işlemlerinin tamamlandığı diğer mantıksal işlemciler tarafından görülebiliyor. Tasarımı gereği bir CPU diğer mantıksal işlemciler tarafından izlenebilen işlemsel bölgelerde (kod bölgeleri) ancak başarılı bir işlem tamamladığında mimari güncellemeler yapabilir buna atomic commit adı veriliyor, atomik commit sayesinde yapılan bir dizi değişikliğin tek bir işlem gibi görülebiliyor.
Çalıştırılan uygulamaya ait birden çok iş hattı, aynı kilit tarafından korunan kritik kod bölgelerini yürütmeye çalışırsa, bir diğer hattın verisi üzerinde çakışmaya sebep olacak herhangi bir işlem yapamıyor, bu durumda iş hatlarının seri hale getirilmeden eşzamanlı olarak yürütülmesi sağlanıyor. Yazılım ortak bir kilit üzerinde, kilit devralma işlemine gitse bile CPU bunu fark ederek ilgili kilidi atlayacak ve iki iş hattı üzerindeki kritik kod kısımlarını ilgili kilitle herhangi bir iletişime gerek kalmaksızın yürütecek.
İşin asıl güzel yanı ise Intel TSX teknolojisi yeni programlama modellerinin verimli uygulanmasına dayalı olsa da yeni bir programlama modeli gerektirmiyor ya da önermiyor, mevcut modellere uzantılar getirerek işi çözüyor. Kısacası Intel TSX, donanım destekli işlemsel yürütme uzantıları sağlayarak mevcut programlama modellerinin performansının geliştirilmesini kolaylaştırıyor. Bellek paylaşımlı çoklu iş hattı kullanan programlara yönelik dizayn edilen Intel TSX, özellikle aktif biçimde veri paylaşan programların işleyişini donanım senkronizasyonu ile hızlandırıyor. Başta da söylediğimiz gibi programcılar eski usulle kod yazmayı sürdürecek ama yazılım teknoloji sayesinde çoklu iş hattı üzerinde daha etkin çalışacak.

