assosiative momory - Bilgisayar Mimarisi Bilgisayar...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Bilgisayar Mimarisi Bilgisayar Mimarisi Çağrışımlı Bellek, İçerikle Adreslenen Bellek (Associative Memory, Content Addressable Memory – CAM) Cep bellek konusuna geçmeden önce cep bellek sistemlerinde kullanılan çağrışımlı bellek tanıtılacaktır. • Hızlı arama yapabilmek için kullanılır. • Bellek ve paralel arama için kullanılan sayısal devrelerden oluşur. • Girişine verinin kendisi (Argüman – A) ve bu verinin ne kadarlık kısmının aramada kullanılacağı (Anahtar Key-K) verilir. • Eğer aranan veri bellekte varsa uyuşma saklayıcısının ilgili biti “1” olur, bellekteki veri çıkıştan alınabilir. • İlk elektrik verildiğinde bellekte rasgele değerler olacağından geçerlilik (valid) bitlerine de gerek duyulur. Başlangıçta V=0’dır. i. satıra veri yazılınca Vi=1 yapılır. Argüman Sak. Anahtar Sak. K A Giriş Çağrışımlı Bellek n bit x m sözcük Oku Yaz Çıkış Geçerlilik Saklayıcısı (Validity register) M V Örnek: A: 1011 1111 K: 1111 0000 1100 1111 M=0 1011 1010 M=1 Çıkış: 1011 1010 © 2005-2008 Dr. Feza BUZLUCA x11 ... : i. sözcük x1j c1j ... : ci1 xi1 ... xij ... : m. sözcük cm1 xm1 ... xmj cmj D E Tutucu Q Oku M1 cin Mi= xin ... cmn V1 : Πxij Mi : Vi : xmn Mm Vm Xij= Kj + Aj⊕Fij Giriş Bir hücrenin (cij) yapısı: Yaz x1n : cij : c1n Aj Kj Fij Uyuşma Devresi Xij= Kj + Aj⊙Fij Xij= Kj + Aj⋅Fij + Aj⋅Fij xij n Mi= Vi ⋅ Πxij j=1 www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.2 Bilgisayar Mimarisi Cep (Ön) Bellek Sistemi (Cache Memory) Ana Bellek c11 Çıkış 10.1 Bilgisayar Mimarisi Mİ B 1. sözcük Uyuşma Saklayıcısı Her satır için bir bit(m bit) (Match register) www.buzluca.info/mimari Cep Bellek İç Yapı: Ai ve Ki değerleri tüm hücrelere paralel olarak (aynı anda) gider. A1 K1 Aj Kj An Kn Bellek hiyerarşisindeki cep bellek ve ana bellek MİB’in program ve veriler için doğrudan erişebildiği sistem içi belleklerdir. Ana bellek: DRAM (Dynamic Memory) olarak üretilir. Kapasitesi daha büyük, birim maliyeti daha düşük, ancak daha yavaştır. Cep bellek: SRAM (Static Memory) olarak üretilir. İşlemci ile aynı tümdevrede olabilir. Kapasitesi daha küçük, birim maliyeti daha yüksek, ancak daha hızlıdır. Amaç: Farklı belleklerden uygun miktarlarda kullanarak ve sık erişilen verileri daha hızlı olan belleğe yerleştirerek maliyeti düşük ve ortalama erişim süresi kısa bir bellek sistemi oluşturmaktır. Veriler belleklere yerleştirilirken programlardaki başvuru yöreselliği özelliğinden yararlanılır. Başvuru yöreselliği (Locality of Reference) • Coğrafi (Uzayda) Yöresellik (Spatial): Belleğe bir başvuru yapıldıktan sonra büyük olasılıkla bir sonraki başvuru yakın bir adrese olacaktır. • Zamanda Yöresellik (Temporal): Bir adrese başvurulduktan sonra büyük olasılıkla bir süre sonra aynı adrese tekrar başvurulur. Yöreselliğin nedenleri: Programların sırasallığı, döngüler, diziler, tablolar. www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.3 Bilgisayar Mimarisi MİB Veri 1 0 s Veri Seçici Veri MC68000 gibi asenkron bellek erişimi yapan sistemlerde, vuru olup olmamasına göre MİB’e farklı gecikmelerle DTACK işareti gönderilir. Böylece veri cep bellekten alındığında yol çevriminin daha çabuk tamamlanması sağlanır. www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.4 Bilgisayar Mimarisi Cep Bellek Erişim Yöntemleri (Mapping) b) Blok Yapılı Tam Assosiyatif Erişim Yöntemi (Full Associative) 1. Assosiyatif Erişim Yöntemi a) Blok Yapısı Olmadan: Gerçekte blok yapısı ile birlikte kullanılır. En çok başvurulan adresler ve içerikleri bir çağrışımlı bellekte (Associative memory) tutulur. Cep bellek dolduğunda bir yer değiştirme Adres Veri Geçerlilik algoritması (replacement) kullanılarak cep Bitleri (V) bellekteki bir veri kaldırılır onun yerine yenisi 1 A000 02 Vuru getirilir. A001 3A 1 FIFO (First In First Out): Cep belleğe önce H 00C0 54 1 gelmiş olan veri cep bellekten kaldırılır. 0400 A1 1 LRU (Least Recently Used): En az başvurulmuş olan veri cep bellekten kaldırılır. Veri Bu yöntemde yaşlanma sayaçları kullanılır. LRU 11. bölümde açıklanmıştır. Blok yapısı kullanılmadığında sadece zamanda yöresellikten yararlanılır, coğrafi yöresellikten yararlanılmamış olur. Bu nedenle bu yöntem gerçekte blok yapısı ile birlikte kullanılır. www.buzluca.info/mimari Cep Bellek Sisteminin Çalışma Mantığı Sık başvurulan adreslerdeki verilerin cep bellekte tutulması amaçlanır. Vuru (Hit): Başvurulan adresteki verinin cep bellekte bulunması. Iska (Miss): Başvurulan adresteki verinin cep bellekte bulunmaması. Adres Örnek: Cep bellek erişim süresi: 20 ns. Ana bellek erişim süresi: 100 ns. Vuru/ Vuru oranı: H=0.9. %90 vuru var. Iska Cep Bellek Ortalama bellek erişim süresi: Ana Bellek ta= 0.9*20 + 0.1*100 = 28 ns. 28 ns © 2005-2008 Dr. Feza BUZLUCA 10.5 Coğrafi yöresellikten de yararlanabilmek için veriler cep belleğe bloklar halinde getirilir. Cep bellek yönetim sistemi MİB’ten gelen adresi iki alt alana ayırarak değerlendirir: Cep bellek, boyutuna bağlı olarak belli sayıda blok içerebilecek çerçeveye (frame) sahiptir. V Takı (b bit) Çerçeve 0 2w sözcük Çerçeve 1 : a bit Blok No Blok içi sözcük no b bit w bit Blok 0 Blok 1 : : Bir blok 2w sözcükten oluşur. 2a sözcük Blok 2b -1 Çer. 2f -1 Ana belleğin bir bloğu cep belleğin herhangi bir Ana bellek 2b adet bloktan oluşur. çerçevesinde yer alabilir. Bir çerçevede hangi bloğun olduğu takı (tag) bilgisinden anlaşılır. Bu yöntemde takı bilgisi olarak ana bellek adresinin blok numarası kullanılır. www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.6 1 Bilgisayar Mimarisi Bilgisayar Mimarisi Örnek (Full Associative): Ana Bellek: 256K x sözcük Blok boyu: 16 sözcük Cep Bellek: 2K x sözcük veri taşıyabiliyor. Ana bellek adresi: Adres: a = 18 bit w = 4 bit Ana bellekte 214 adet blok vardır. b = 14 Cep bellekte 27 (128) adet çerçeve vardır. f = 7 Örnek: MİB’ten gelen adres: 00 1001 0010 1111 1000 Blok no 18 bit Blok No 1 4 bit Blok 0 0 Blok 1 Çerçeve 1 Çerçeve 127 Veri belleği (SRAM) Cep Bellek 10.7 Bilgisayar Mimarisi Veri Belleği www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.8 Bilgisayar Mimarisi 2. Doğrudan Dönüşüm (Direct Mapping) Ana bellekteki bir bloğun cep bellekteki hangi çerçeveye yerleşebileceği belli ve sabittir. Bloğun yeri cep içinde aranmadığından çağrışımlı (associative) bellek kullanılmaz. Sadece o blok o anda cep bellekte var mı, yok mu araştırılır. a bit Cep Çerçeve no. Blok içi sözcük no. Takı a-(f+w) bit f bit w bit V Takı: a-(f+w) bit Çerçeve 0 Çerçeve doğrudan belirlenir. Çerçeve 1 a bit Takı a-(f+w) bit Cep Çerçeve no. Blok içi sözcük no. f bit © 2005-2008 Dr. Feza BUZLUCA 10.9 Bilgisayar Mimarisi Ana bellek adresi: Blok 2f : Bir blok 2w sözcük 2a sözcük Bl Blok 2b -1 Ana bellek 2b adet blok Bu adresteki verinin cep bellekte hangi çerçeveye yerleşeceğini belirler. Bu alanları ortak olan veriler cep bellekte aynı çerçevede yer almaya çalışırlar. Belli bir anda sadece biri cep bellekte bulunabilir. www.buzluca.info/mimari Blok 1 : Çer. 2f -1 w bit Aynı çerçeveyi paylaşan bloklardan o anda hangisinin cep bellekte olduğu bu alandaki verinin cep bellekteki takı ile karşılaştırılması sonucu anlaşılır. Örnek (Direct Mapping): Ana Bellek: 256K x sözcük Blok boyu: 16 sözcük Cep Bellek: 2K x sözcük veri taşıyabiliyor. Blok 0 : Cep bellek yönetim sistemi MİB’ten gelen adresi üç alt alana ayırarak değerlendirir: Ana belleğin bir bloğu, sadece kendi adresindeki “cep çerçeve no” alanının belirlediği çerçevede yer alabilir. Doğrudan dönüşüm yönteminde her bloğun cepteki yeri (çerçeve no) belli olduğundan, • Cep bellekte boş çerçeveler olsa bile aynı çerçeveyi kullanan iki blok aynı anda cep bellekte yer alamaz. • Blok değiştirme aşamasında karar verme yöntemlerine gerek yoktur. • Çağrışımlı bellek kullanımına gerek yoktur. www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.10 Bilgisayar Mimarisi Örnek (Direct Mapping): Adres: a = 18 bit w = 4 bit Ana bellekte 214 adet blok vardır. b = 14 Cep bellekte 27 (128) adet çerçeve vardır. f = 7 18 bit Takı 7 bit 7 bit MİB’ten gelen adres: 0010001 0000001 1000 4 bit © 2005-2008 Dr. Feza BUZLUCA Veri belleği doğrudan adreslenir. Takı belleği doğrudan adreslenir. Cep Çerçeve no Blok içi sözcük no 1 Örnek sistemde aşağıdaki iki adresteki veri cep bellekte aynı çerçeveye yerleşemeye çalışacaktır. Her ikisinin de çerçeve numarası alanları 0000000 Takı Çerçeve no Sözcük no olduğundan Çerçeve 0’da aranacaklardır. 0000000 0000000 XXXX O anda hangisinin gerçekte cep bellekte olduğu 0000001 0000000 XXXX adresteki takı alanı ile cep bellekteki takı alanının karşılaştırılmasıyla belirlenir. www.buzluca.info/mimari : Eğer cep bellek dolduğunda blok değiştirme (replacement) yöntemi olarak LRU (Least Recently Used) kullanılıyorsa takı belleğinde her çerçeveye ait yaşlanma sayaçları da (aging counter) bulunur. Bir çerçeveye başvurulmadığı zaman o çerçevenin sayacı arttırılır. Blok değiştirme gerektiğinde “en yaşlı” çerçevedeki blok kaldırılır. Ana Bellek © 2005-2008 Dr. Feza BUZLUCA Çerçeve 1 Çerçeve 127 214 blok Blok 16383 www.buzluca.info/mimari 00000000000000 Takı Belleği : : : Takı belleği (associative) 00100100101111 +1000 V Takı (14 bit) (14 Çerçeve 0 128 adet takı Çerçeve 0 00000000111111 1 Blok içi sözcük no 14 bit Sözcük no Takı belleğinde aranır 10.11 www.buzluca.info/mimari Çerçeve 0 0010001 Çerçeve 1 0 0000000 Çerçeve 127 Takı Belleği Cep bellekteki takı ile MİB’ten çıkan adresteki takı aynı ise başvurulan veri cep bellektedir. 1111111 1 Veri Belleği : © 2005-2008 Dr. Feza BUZLUCA 10.12 2 Bilgisayar Mimarisi Bilgisayar Mimarisi Örnek sistemin blok diyagramı: 3. Kümeli ve Çağrışımlı (Set Assosiyatif) Dönüşüm Doğrudan erişim ile tam assosiyatif erişim arasında bir yöntemdir. Cep belleğin kümlerden (set) oluştuğu ve her kümede belli sayıda çerçeve olduğu düşünülür. 18 bit Takı Cep Çerçeve no Blok içi sözcük no 7 bit 7 bit 4 bit Adres (A17-A0) f A10-A4 A17-A11 Cep Bellek Bellek Takı Takı V Vuru Karşılaştırma a=18 bit a bit Takı a=18 bit A10-A0 Cep Bellek Veri Cep bellek yönetim sistemi MİB’ten gelen adresi üç alt alana ayırarak değerlendirir: Cep Küme no Blok içi sözcük no a-(s+w) bit s bit w bit Ana Bellek Ana Bellek: DRAM Cep Veri: SRAM Cep Takı: SRAM 1 0 s Veri Seçici Bu adresteki verinin cep bellekte hangi kümeye yerleşeceğini belirler. Bu alanları ortak olan veriler cep bellekte aynı kümede yer almaya çalışırlar. Bir kümede birden fazla blok bulunabilir. Takı bilgisi kullanılarak küme içinde çağrışımlı (assosiyatif) arama yapılır. Veri www.buzluca.info/mimari Bilgisayar Mimarisi Takı a-(s+w) bit 10.13 © 2005-2008 Dr. Feza BUZLUCA Cep Küme no Blok içi sözcük no s bit w bit Her kümede iki çerçeve olursa. Ana Bellek 2 1. Önce doğrudan dönüşüm yöntemi ile küme belirlenir. 2. Küme içince takı ile çağrışımlı arama yapılır. Bir kümedeki tüm çerçeveler dolduğunda yer değiştirme gerekli olur. www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.14 Bilgisayar Mimarisi a bit 1 www.buzluca.info/mimari Blok 0 V Takı: a-(s+w) bit Çerçeve 0 Küme 0 Çerçeve 1 Blok 1 : Küme 1 Blok 2s Çerçeve 3 Çerçeve 4 Örnek (Set Assosiyatif) : Ana Bellek: 256K x sözcük Adres: a = 18 bit w = 4 bit Ana bellekte 214 adet blok vardır. b = 14 Blok boyu: 16 sözcük Cep bellekte 27 adet (128) çerçeve vardır. f = 7 Cep Bellek: 2K x sözcük veri taşıyabiliyor. Her kümede 2 blok olsun. Bu durumda cep bellekte 64 küme vardır. 18 bit : Küme 2 -1 s Küme no 6 bit V Takı: 8 bit Blok 2*2s Küme 0 : : Takı 8 bit Ana bellek adresi: Küme 1 Çerçeve 1 Çer. 2 -2 f Çerçeve 3 : Çer. 2f -1 Blok 2b -1 © 2005-2008 Dr. Feza BUZLUCA 10.15 Bilgisayar Mimarisi Çerçeve 0 Küme 63 Çerçeve 4 : Çer. 126 Çer. 127 www.buzluca.info/mimari Blok içi sözcük no 4 bit Ana bellek Blok 0 Blok 1 : Blok 64 : Blok 128 : Blok 16383 © 2005-2008 Dr. Feza BUZLUCA 10.16 Bilgisayar Mimarisi Cep Bellek – Ana Bellek Etkileşimi → Yazma (Iska Durumu): → Okuma (Vuru): Veri cep bellekten okunur. → Okuma (Eğer ıska olursa): • Doğrudan Okuma (Read Through – RT ): Veri ana bellekten MİB’e okunurken aynı anda cebe de getirilir. Cep belleğe ve ana belleğe paralel erişilir. • Dolaylı Okuma (No Read Through - NRT ): Veri ana bellekten önce cep belleğe getirilir, sonra MİB cep belleği okur. • Cebe Yükleyerek Yazma (Write Allocate - WA ): Ana bellekte değiştirilen blok aynı zamanda cep belleğe de getirilir. • Cebe Yüklemeden Yazma (No Write Allocate - NWA ): Veri sadece ana belleğe yazılır. → Yazma (Vuru Durumu): WT • Doğrudan Yazma (Write Through – WT ): Her yazma çevriminde veri hem cep belleğe hem de ana belleğe yazılır. • Sonradan Yazma (Write Back –WB ): Veriler sadece cep belleğe yazılır. Değişikliğe uğrayan blok ancak cep bellekten kaldırılırken ana belleğe yazılır. a. Basit sonradan yazma (Simple Write Back – SWB ): Cep bellekten çıkartılan her blok ana belleğe yazılır. Zaman kaybettirir. b. Bayraklı sonradan yazma (Flagged Write Back – FWB ): Sadece değişikliğe uğramış olan bloklar cep bellekten çıkartılırken ana belleğe yazılır. Değişen blokları belirleyebilmek için takı belleğinde “geçerlilik” bitleri ile birlikte bir de “kirlenme” (dirty) biti bulunur. Doğrudan yazma (WT) yöntemi cebe yükleyerek (WA) ya da yüklemeden yazma yöntemleri (NWA) ile birlikte kullanılabilir. WTWA, WTNWA Sonradan yazma (WB) yönteminde cep belleği sürekli güncel tutmak için cebe yükleyerek (WA) yazma kullanılır. WBWA www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.17 Daha sonra eğer bu veri okunmak istenirse ıska olacağından ilgili blok cep belleğe getirilir. Takı beleğinde bulunabilen bilgiler: Geçerlilik (V) ve takı bilgisine ek olarak, kullanılan yöntemlere bağlı olarak takı belleğinde aşağıdaki bilgiler de bulunabilir: LRU kullanılıyorsa yaşlanma sayaçları, bayraklı sonradan yazma (Flagged Write Back – FWB ) yöntemi kullanılıyorsa “kirlenme” (D) biti. Takı beleğinin bir satırı: www.buzluca.info/mimari V D Sayaç Takı © 2005-2008 Dr. Feza BUZLUCA 10.18 3 Bilgisayar Mimarisi Bilgisayar Mimarisi Erişim Süreleri: MİB - Cep Bellek – Ana Bellek Bağlantısı MİB - cep bellek – ana bellek bağlantıları iki farklı şekilde yapılabilir: a) Paralel bağlantı • Read Through (RT): Blok ana bellekten cep belleğe aktarılırken gerekli veri aynı zamanda MİB Ana tarafından paralel olarak okunabilir. MİB Bellek Cep • Load Through (LT): MİB cep belleğe veri Bellek yazarken veri aynı zamanda paralel olarak ana belleğe de yazılır. Paralel yapı özellikle Doğrudan Yazma (Write Through – WT ) yöntemi için uygundur. Sonradan Yazma (Write Back –WB ) yöntemi ile de kullanılabilir. ta : Ortalama Bellek Erişim süresi (Average memory access time) w: Yazma oranı (Write ratio) (yazma erişimleri sayısı / toplam erişim sayısı) h: Vuru oranı (Hit ratio) tcache : Cep bellek erişim süresi (Cache memory access time) tmain : Ana bellek erişim süresi (Main memory access time) ttrans: Cep belleğe blok aktarım süresi (Time to transfer block to cache) wd: Blok değişme (kirlenme) olasılığı WT, RT/LT Okuma Vuru b) Seri bağlantı • No Read Through (NRT): Blok önce ana bellekten cep belleğe aktarılır ardından gerekli veri MİB Cep tarafından cep bellekten okunur. MİB Bellek • No Load Through (NLT): MİB veriyi cep belleğe yazar, ardından veri cep bellekten ana belleğe aktarılır. Seri yapı Sonradan Yazma (Write Back –WB ) yöntemi için uygundur. Ana Bellek www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.19 (1-w)h Okuma Iska (1-w)(1-h) Yazma Vuru wh WB,WA, NRT/NLT NWA WA SWB FWB tcache tcache tcache ttrans ttrans 2ttrans+tcache tmain tmain tcache tmain tmain+ttrans 2ttrans+tcache Yazma Iska w(1-h) www.buzluca.info/mimari tcache wd (2ttrans+tcache) + (1-wd)(ttrans+tcache) tcache wd (2ttrans+tcache) + (1-wd )(ttrans+tcache) © 2005-2008 Dr. Feza BUZLUCA 10.20 Bilgisayar Mimarisi Bilgisayar Mimarisi Erişim Süreleri Hesabı: Cep bellek içeren örnek işlemciler: • Intel386™ ve öncesi: Cep bellek işlemci tümdevresinin dışında SRAM bellek. • Intel486™ (1989) 8-KByte on-chip (L1) • Intel® Pentium® (1993) L1 on-chip: 8 KB komut, 8 KB veri cebi (Harward mimarisi) • Intel P6 Ailesi: (1995-1999) - Intel Pentium Pro: L1 on-chip: 8 KB komut, 8 KB veri cebi (Harward mimarisi) İlk defa bu yapıda L2 cep bellek işlemci ile aynı yapının içine tümleştirildi. L2 on-chip: 256 KB. L1 ve L2 cep belleklerin işlemci ile bağlantıları farklıdır. - Intel Pentium II: L1 on-chip: 16 KB komut, 16 KB veri cebi (Harward mimarisi) L2 on-chip: 256 KB, 512 KB, 1 MB • Intel® Pentium® 4 Extreme Edition (2000-2006) L1 on-chip: 8 KB komut, 8 KB veri cebi L2 on-chip: 512 KB , L3 on-chip: 2MB • Intel® Pentium® M (2003-) L1 on-chip: 32 KB komut, 32 KB veri cebi L2 on-chip: 2 MByte’a kadar • Write Through with Write Allocate, Read/Load Through (WTWA, RT/LT): Okuma Vuru + Okuma Iska + Yazma Vuru + Yazma Iska ta = (1-w)h tcache + (1 - w)(1-h)ttrans + w⋅h⋅tmain + w(1-h)(tmain + ttrans) ta = (1 - w)h tcache + (1 - h)ttrans + w⋅tmain • Write Through with No Write Allocate, Read/Load Through (WTNWA,RT/LT) ta = (1 - w)h tcache + (1-w)(1-h)ttrans+ w⋅h⋅tmain + w(1-h)tmain ta = (1 - w) tcache + (1 - w)(1 - h)ttrans + w⋅tmain •Simple Write Back with Write Allocate,No Read Through (SWBWA,NRT/NLT) Okuma Vuru + Okuma Iska +Yazma Vuru + Yazma Iska ta = (1 - w)h tcache + (1 - w)(1-h)(2ttrans+ tcache) + w⋅h⋅tcache + w(1 - h)(2ttrans + tcache) ta = tcache + (1 - h)⋅2⋅ttrans ttrans terimlerinden biri cep bellekteki bloğu ana belleğe geri koymak için, diğeri de yeni bloğu ana bellekten cep belleğe getirmek içindir. •Flagged Write Back,Write Allocate, No Read Through (FWBWA,NRT/NLT): ta = tcache + (1 - h)ttrans + wd⋅(1 - h)ttrans ta = tcache + (1 - h)(1+wd)ttrans www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.21 www.buzluca.info/mimari © 2005-2008 Dr. Feza BUZLUCA 10.22 4 ...
View Full Document

This note was uploaded on 03/21/2010 for the course CS 145 taught by Professor Markjan during the Spring '10 term at Abilene Christian University.

Ask a homework question - tutors are online