hareket tabanlı bellek

27
Hareket Tabanlı Bellek Ayşe GENÇ 504061504

Upload: jude

Post on 20-Mar-2016

74 views

Category:

Documents


2 download

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

TRANSCRIPT

Page 1: Hareket Tabanlı Bellek

Hareket Tabanlı Bellek

Ayşe GENÇ504061504

Page 2: Hareket Tabanlı Bellek

AJANDA

Neden Hareket Tabalı Bellek? Temel Kavramlar Donanımsal HTB Yazılımsal HTB Bütünleşik HTB

Page 3: Hareket Tabanlı Bellek

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

Page 4: Hareket Tabanlı Bellek

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]++;}

Page 5: Hareket Tabanlı Bellek

Neden HTB?

Programlaması kolay Yüksek paralellik Ölümcül kilitlenme yok!

Page 6: Hareket Tabanlı Bellek

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

Page 7: Hareket Tabanlı Bellek

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

Page 8: Hareket Tabanlı Bellek

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

Page 9: Hareket Tabanlı Bellek

Ç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.

Page 10: Hareket Tabanlı Bellek

Ç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.

Page 11: Hareket Tabanlı Bellek

Çakışma Sezme

Page 12: Hareket Tabanlı Bellek

Ç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?

Page 13: Hareket Tabanlı Bellek

Çakışma Sezme

Page 14: Hareket Tabanlı Bellek

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.

Page 15: Hareket Tabanlı Bellek

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

Page 16: Hareket Tabanlı Bellek

HTM- Veri versiyonlama

Güncelleme tamponu Güncelleme tamponu:

– veri cebinde– donanım tampon

Page 17: Hareket Tabanlı Bellek

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ı

Page 18: Hareket Tabanlı Bellek

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...

Page 19: Hareket Tabanlı Bellek

STM – derleyici rolü

Page 20: Hareket Tabanlı Bellek

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

Page 21: Hareket Tabanlı Bellek

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!

Page 22: Hareket Tabanlı Bellek

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)

Page 23: Hareket Tabanlı Bellek

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.

Page 24: Hareket Tabanlı Bellek

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.

Page 25: Hareket Tabanlı Bellek

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

Page 26: Hareket Tabanlı Bellek

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.

Page 27: Hareket Tabanlı Bellek

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/