1 / 27

Hareket Tabanlı Bellek

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

jude
Download Presentation

Hareket Tabanlı Bellek

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hareket Tabanlı Bellek Ayşe GENÇ 504061504

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

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

  4. 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ğunda atomic{ hist[index]++; }

  5. Neden HTB? • Programlaması kolay • Yüksek paralellik • Ölümcül kilitlenme yok!

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

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

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

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

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

  11. Çakışma Sezme

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

  13. Çakışma Sezme

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

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

  16. HTM- Veri versiyonlama • Güncelleme tamponu • Güncelleme tamponu: • veri cebinde • donanım tampon

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

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

  19. STM – derleyici rolü

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

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

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

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

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

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

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

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

More Related