View
75
Download
2
Category
Preview:
DESCRIPTION
Hareket Tabanlı Bellek. Ayşe GENÇ 504061504. AJANDA. Neden Hareket Tabalı Bellek? Temel Kavramlar Donanımsal HTB Yazılımsal HTB Bütünleşik HTB. Neden HTB?. Çok çekirdekli/çok işlemcili ve paylaşılan bellekli sistemler Tutarlılık problemi Geleneksel Karşılıklı-Dışlama yöntemi - PowerPoint PPT Presentation
Citation preview
Hareket Tabanlı Bellek
Ayşe GENÇ504061504
AJANDA
Neden Hareket Tabalı Bellek? Temel Kavramlar Donanımsal HTB Yazılımsal HTB Bütünleşik HTB
Neden HTB?
Çok çekirdekli/çok işlemcili ve paylaşılan bellekli sistemler
Tutarlılık problemi Geleneksel Karşılıklı-Dışlama yöntemi
– Ölümcül kilitlenme– Hata yapma riski yüksek
Neden HTB?
Hareket Tabanlı Bellek– Çakışma olmayacağı iyimserliği üzerine kurulu– Kritik bölümler atomik olarak belirleniyor ve
soyutlanıyor– Eş zamanlı erişime izin var– Senkronizasyon problemi olmadan yürütülmesi
artık HTB sorumluluğundaatomic{
hist[index]++;}
Neden HTB?
Programlaması kolay Yüksek paralellik Ölümcül kilitlenme yok!
Kavramlar - Hareket
Hareket (transaction)– okuma/yazma komutlarını da içeren komutlar
kümesi Tamamlanma(commit)
– Hareketin içerdiği tüm komutlar ve gereken bellek güncellemeleri gerçekleştirilir.
Kesilme (abandon)– O ana kadar yapılan tüm işlemler geri alınır.– Hareket daha sonra tekrar yürütülecektir
Veri-versiyonlama
Veri- versiyonlama ( data-versioning ) – Yazma işlemi ile ilgili şüpheli durumları kotarmak– Tamamlanma durumunda veriyi diğer işçiklere
görünür kılmak– Kesilme durumlarınında değişiklikleri geri
alabilmek
Veri-versiyonlama
İki tip Veri-versiyonlama Geri-al günlüğü (undo log)
– Güncelleme ilgili bellek alanında yapılır– Bellek alanının eski değeri ve adresi günlükte
tutulur Güncelleme tamponu (buffed updates)
– Güncellemeler harekete özel tamponlarda yapılır– Hareketin tamamlaması halinde belleğe yansıtılır
Çakışma Sezme
Hareket Yazma Kümesi ve Okuma kümesi ile ilişkilendirilmiştir.
Load için bellek adresi okuma kümesine alınır.
Store için bellek adresi ve yazılacak veri yazma kümesine alınır.
Çakışma Sezme
Sabırsız Sezme (Eager detection)– Hareketteki tüm okuma yazma kümeleri kontrol
edilir
Uyuşuk Sezme (Lazy detection)– hareket tamamlanacak noktaya gelene kadar
beklenir– Daha sonra okuma yazma kümeleri diğer işçiğin
okuma yazma kümeleri ile karşılaştırılır.
Çakışma Sezme
Çakışma Sezme
Çözüm genellikle çakışmaya neden olan hareketlerden birinin kesilmesi olacaktır.
hangi hareketin kesilmesi hangi hareketin tamamlanması gerektiğine nasıl karar verilecek?
Çakışma Sezme
Hareket Tabanlı Bellekler
Donanımsal Hareket Tabanlı Bellek (HTM) Yazılımsal Hareket Tabanlı Bellek (STM):
donanımsal hiçbir değişikliğe gerek duymayan sistemlerdir
Karma Hareket Tabanlı Bellek: Donanım temelli olup yazılımdan da destek alan (HyTM-Hybrid TM) ya da Yazılım temelli olup donanımdan da destek alan (HaSTM-Hardware assisted TM) çeşitleri vardır.
HTM - Soyutlama
Hareketler için ISA üzerindeki değişikliklerle bir kaç komut eklenmiştir:
– STR (start transaction) : hareket başlangıcı– ETR (end transaction) : hareket sonu– TLD : hareket için load komutunun özel bir versiyonu– TST: hareket için store komutunun özel bir versiyonu– ABR(abort) : hareketin kesilmesi için– VLD (validation): geçerlilik
HTM- Veri versiyonlama
Güncelleme tamponu Güncelleme tamponu:
– veri cebinde– donanım tampon
HTM – Çakışma Sezme
MESI cep tutarlılık protokolü kullanılır. Bu protokol için fazladan iki bit eklenmesi yeterlidir. MESI protokolü, ilgili blokta (cache line) şu bilgileri
tutar:– M (modified) : cepteki veri güncellenmiş ve bellektekinden
farklı. Bellek güncellemesi gerekir. – E (exclusive): cepteki veri güncellenmemiş, bellektekiyle
aynı– S (shared): paylaşılan bellek alanı– I (invalid): cepteki veri geçersiz, belleğe yazılmamalı
STM - Soyutlama
Hareket içindeki veriler için ayrı bir veri yapısı kullanılması
STM tarafından özel metadataların kullanılması.
Diller, derleyiciler ve kütüphaneler ile sağlanır
Haskell, Atomus, Argus,C# dilleri...
STM – derleyici rolü
STM – veri versiyonlama
Güncelleme Tamponu– Her harekete özel gölge kopyası (shadow copy)– okuma başvuruları da bu gölge kopyaya başvurur– Okuma için gölge kopya içinde arama maliyetli
STM – veri versiyonlama
Geri- al günlüğü– Güncelleme doğrudan küme bellek (heap)
üzerinde yapılır ve günlüğe kaydedilir– Okuma işlemlerinde hareket içi tutarlılık sağlanır,
aramaya gerek kalmaz!
STM – Çakışma Sezme
Engelsiz(Non-blocking) Hareket Verisi kilitleme (transactional lock)
– Karşılaşma anında (encounter-time)– Tamamlanma anında (commit time)
Karma (Hybrid)
HTM / STM
HTM hızlı ve tam işlevsel, ancak hareket boyu (transaction size) sınırlı (max. Veri cebi boyu)
STM, esnek, hareket boyu sınırı sanal belleğe kadar uzanıyor, ancak HTMye göre hantal kalıyor.
Bütünleşik HTB
Temelde yazılımsal hareket tabanlı bellek olmakla birlikte daha hızlı çalışması için donanımla desteklenmiş bir sistemdir.
Bütünleşik HTB – HTM eklentileri
Güncelleme Uyarısı (alert-on-update) – Hareket ilgilendiği alanı işaretliyor ve oluşan bir
güncellemede haberdar ediliyor.– Hızlı çakışma denetimi
programlanabilir veri izolasyonu (programmable data isolation)
– MESI protokolü genişletilerek TMESI protokolü oluşturulmuş
– Hareket içindeki değişiklikler T(M,I,E) gibi tutulup daha sonra belleğe yansıtılıyor.
– Hızlı sonuçlanan tamamlama/kesme
Bütünleşik HTB - STM
Bütünleşik hareket tabanlı bellek:– Engelsiz (nonblocking) çalışan– Özel hareket veri nesneleri içeren– Çakışma sezme için sabırsız/uyuşuk arasında geçiş yapma
esnekliğine sahip, aynı zamanda donanımdan gelen uyarıları dinleyen
– Hareket boyu için sınırsız kapasite kullanabilen– Tamamlanma/kesilme durumlarını hızlı kotaran– Güncelleme tamponu olarak CPUya daha yakın ikinci bir
cep ve hareket nesnelerinin kopyasını kullanabilen.
Kaynakça
Harris T., Cristal A., Unsal O.S., Ayguade E., Gagliardi F., Smith B., Valero M., “Transactional Memory: An Overview” , IEEE Computer Society publications, May-June 2007.
Ananian C. S., Asanovic K. , Kuszmaul B. C., Leiserson C. E. , Lie S.,“Unbounded transactional Memory”, Proceedings of the 11th Int’l Symposium on High-Performance Computer Architecture, IEEE,2005.
Dice D., Shavit N.,“Understanding tradeoffs in Software Transactional memory”, International Symposium on Code Generation and Optimization, IEEE,2007
Shriraman A., Spear M. F., Hossain H. , Marathe V. J., Dwarkadas S. , Scott M. L., “An Integrated Hardware-Software Approach to Flexible Transactional Memory”, Department of Computer Science, University of Rochester, 2006
Blundell C., Lewis E. C. , Martin M. M. K., “Subtleties of Transactional Memory Atomicity Semantics”,IEEE Computer Architecture Letters VOL. 5, NO. 2, 2006
“Software Transactional Memory”, http://en.wikipedia.org/wiki/Software_transactional_memory
“MESI protocol”, http://en.wikipedia.org/wiki/MESI_protocol “Rochester Software Transactional Memory”,
http://www.cs.rochester.edu/research/synchronization/rstm/
Recommended