‘CACHE’ Bellek Bellek İkincil Bellek İşlemci ‘CACHE’ BELLEK GÖRÜNTÜ BELLEK
BELLEKLER YAZMAÇ ‘CACHE’ BELLEK ANA BELLEK DİSK ‘CACHE’ BELLEĞİ DİSK HIZ MALİYET KAPASİTE
‘CACHE’ Bellek Ana İşlemci Adres Veriler Bellek Bilgileri Denetim Birimi
‘CACHE’ Bellek Sınıflandırmaları İçeriklerine Göre (Unified / Split) Yazma Yöntemine Göre (WriteThrough / CopyBack) Erişim Yöntemine Göre (Fully Associative / Set Associative / Direct Mapping)
‘Split’ ve ‘Unified’ ‘Cache’ İşlemci Komut ‘cache’ Belleği İşlemci Komut/Veri ‘cache’ Belleği Veri ‘cache’ Belleği Sadece Okuma Komutlar Ardışık Küçük Döngülerin İyileştirilmesi
‘WriteThrough Cache’ ‘Read hit’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘WriteThrough Cache’ ‘Read miss’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘WriteThrough Cache’ ‘Write hit’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘WriteThrough Cache’ ‘ Write miss’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘CopyBack Cache’ ‘Read hit’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘CopyBack Cache’ ‘Write hit’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘CopyBack Cache’ ‘Read miss’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
‘CopyBack Cache’ ‘Write miss’ İşlemci Ana Bellek Adres Bilgileri Veriler Denetim Birimi
Erişim yöntemine göre ‘Fully Associative Cache’ ‘Set Associative Cache’ ‘Direct Mapping Cache’
‘Fully Associative Cache’ Adres Adresler Veriler = = = = = = = hit/miss
‘Set Associative Cache’ Adres Ekleri Veriler 1 Adres 2 = N-1 1 2 = N-1 1 2 = N-1 1 2 = N-1 hit/miss
‘Direct Mapping Cache’ Veriler Adres Ekleri 1 Adres 2 = N hit/miss
‘Fully Associative Cache’ L=4 Adres Adresler Veriler = = = = = = = hit/miss
‘Set Associative Cache’ L=4 Adres Ekleri Veriler 1 Adres 2 = N-1 1 2 = N-1 1 2 = N-1 1 2 = N-1 hit/miss
‘Direct Mapping Cache’ L=4 Veriler Adres Ekleri 1 Adres 2 = N-1 hit/miss
‘Cache’ bellek ve adres bitleri ‘cache’ bellek sığası = KLN Adres log2N log2L Satır içi adresi Set Numarası Adres eki N = 1 ‘Fully Associative Cache’ bellek K = 1 ‘Direct Mapping Cache’ bellek
Ana İşlemci Adres Bellek Bilgileri 128 bit veri 30 28 28 28 128 128 2 32 32 32 128 32 32
‘cache’ belleğe yeni gelen veriye yer açma stratejileri LRU ‘Least Recently Used’ Geliştirilmiş LRU
Least Recently Used (LRU) Most Recently Used Adres Ekleri Veriler 1 2 3 4 5 ... Least Recently Used N-1
Geliştirilmiş LRU Adres Ekleri Veriler Gölge Adres Ekleri Geçici 1 1 2 2 N N Geçici ‘miss’ = Hem ‘cache’ bellekte hem de gölge adres eklerinde yok Gölge ‘miss’ = ‘cache’ bellekte yok, gölge adres eklerinde var Geçici olarak işaretlenmiş veriler çıkarılmaya aday.
Ön belleklerde tutarlılık Adres DMA Denetleyici İşlemci Adres Veriler G/Ç Birimi Veri Adres Bilgileri Ana Bellek Ön bellekteki veriyi geçersiz kılma eklentisi “write through”: çözüm? “copy back”: DMA öncesi güncelle
Ön belleklerde tutarlılık Geçerli (valid) İkili Değişmiş (dirty) İkili Durum X Geçersiz ön bellek satırı 1 Geçerli ön bellek satırı. Ana bellekteki değerle aynı. Geçerli ön bellek satırı. Ön bellekteki değer daha güncel. “Copy back” türü ön bellekteki verilerin durum bilgileri
Ön belleklerde tutarlılık G/Ç Birimi DMA Denetleyici İşlemci Adres Veriler Adres Bilgileri Ana Bellek Veri Ön bellek aracılığıyla DMA gerçekleştirilmesi
Ön belleklerde tutarlılık DMA Denetleyici İşlemci Adres G/Ç Birimi Veriler Adres Bilgileri Adres İzleme Bilgileri Veri Ana Bellek Ön bellekteki verileri dışardan izleyebilmek için kullanılan ek
Ön belleklerde tutarlılık DMA Denetleyici İşlemci Adres G/Ç Birimi Veriler Adres Bilgileri Adres İzleme Bilgileri Veri Ana Bellek Ön bellekteki verilerin dışardan koşut olarak izlenmesi
Ön belleklerde tutarlılık İşlemci 1 Adres Veriler Adres Bilgileri Ana Bellek İşlemci 2 Veri İki işlemci tarafından ortak kullanılan ön bellek
Ön belleklerde tutarlılık İşlemci Adres Bilgileri Veriler İzleme İşlemci Adres Bilgileri Veriler İzleme . . . İşlemci Adres Ana Bellek Çok işlemcili bir sistemde ön belleklerin izlenmesi Adres Bilgileri Veriler Adres İzleme Bilgileri
Görüntü Bellek Bellek İkincil Bellek İşlemci ‘CACHE’ BELLEK
Görüntü Bellek Görüntü Adres Adres Dönüştürücü Sayfa Hatası Fiziksel Adres Ana Bellek
Görüntü Bellek Filozofisi Sık kullanılan kod kesimleri ana bellekte tutulur. Kod kesimleri az kullanılmaya başladıkça daha yavaş belleklere taşınır. Eğer yönetim algoritması başarılıysa maliyeti yavaş belleğin maliyetine, performansı da hızlı belleğin performansına yakın olacaktır.
Görüntü ve ‘Cache’ bellek farklılıkları Aranan verinin veya sayfanın bulunup bulunmaması ‘Cache’ bellekte verinin bulunamaması bulunmasından 4-20 kez daha islemi yavaslatir Sayfanın bellekte bulunamaması bulunmasından 1000-10000 kez islemi yavaslatir .
Görüntü ve ‘Cache’ bellek farklılıkları Teknolojilerdeki ilerleme 20 yılda bellek teknolojisi 1000 kat hızlanmış. Aynı sürede diskler 10 kat hızlanmış. Yer değiştirme sürecinin uzunluğu ‘Cache’ bellekte verinin bulunamaması durumunda işlemciye başka görev atanamaz. Aranan sayfanın bellekte bulunamaması durumunda sayfa diskten kopyalanırken işlemciye başka görevler atanabilir.
Görüntü ve ‘Cache’ bellek farklılıkları Gecikme Bellekte bulunamayan bir verinin belleğe getirilmesi 10000-1000000 komut süre tutabilir. ‘Cache’ bellekte bulunmayan bir verini ana bellekten getirilmesi bir komut işletimi kapsamındadır.
Görüntü adres fiziksel adres dönüşümü Sayfa içi adres Sayfa başlangıç adresi Adres Dönüştürücü Sayfa Numarası Sayfa Bulunamadı Sayfa
Hızlı Adres Dönüştürücü Hızlı adres dönüşümü GörüntüAdres Sayfa içi adres Hızlı Adres Dönüştürücü Sayfa Numarası Sayfa başlangıç adresi Sayfa Bulunamadı Adres Dönüştürücü Sayfa Bulunamadı Sayfa
Hızlı adres dönüşümü GörüntüAdres Sayfa içi adres Sayfa Numarası Segment Numarası Sayfa başlangıç adresi Sayfa
Görüntü Bellekte Yer Değiştirme Sayfa hataları çok uzun süre. Hangi sayfanın çıkarılacağı kararı çok önemli. Sayfa hatası oluştuğunda karar vermek için yeterince zaman var. Sayfa hatası oluştuğunda başka görevler işlemciye anahtarlanabilir.
Görüntü ve Fiziksel Adres Evrenleri Fiziksel Adres Evreni Görüntü Adres Evreni
Adres Dönüştürme Sayfa başlangıç adresleri Sayfa Numarası 1 2 Sayfa Numarası N - 2 N - 1 N : Görüntü Adres Evrenindeki Sayfa Sayısı
Adres Dönüştürme Sayfa Numarası Sayfa başlangıç adresleri Sayfa Numaraları = = Fiziksel bellekteki sayfa sayısı kadar = = = = = Sayfa Bulundu/Bulunamadı
‘Pipeline’ ‘Pipeline’ Aşamaları 1 2 3 4 5 6 7
‘Pipeline’ ‘Pipeline’ Aşamaları 1 2 3 4 5 6 7 A B C Zaman D
‘Pipeline’ Performansı ‘Pipeline’ Aşamaları A B C D Zaman
Program Sayacını Güncelle Bir Komutun Evreleri Komut Getir Komut Yorumla Adres Hesapla İşlenenleri Getir Komut Uygula Sonucu Sakla Program Sayacını Güncelle
Komut uygulama ‘pipeline’ için sorun yaratan durumlar: Koşullu sapmalar. Bir komutun sonraki komutun kullanacağı veriyi üretmesi. Bir komutun önceki komut tarafından kullanılan yazmaca yazması. Ardışık iki komutun aynı yazmaca yazması.
Çok Fonksiyonlu ‘Pipeline’ Toplama Çarpma Subtract Exponents Add Exponents Partial Shift Form Partial Products Add Mantissas Accumulator Find Leading 1 Normalize Partial Shift Round Round Renormalize Renormalize
Çok Fonksiyonlu ‘Pipeline’ Add/Subtract Exponents Partial Shift Form Partial Products Add Mantissas Find Leading 1 Partial Shift Round Renormalize
Çok Fonksiyonlu ‘Pipeline’ Çarpma için rezervasyon tablosu Toplama için rezervasyon tablosu
Çok Fonksiyonlu ‘Pipeline’ Çarpma işleminden sonra çarpma için çakışma vektörünün hesaplanması Adım 1 çakışma vektörü =1 Adım 2 çakışma vektörü =11 Adım 3 çakışma vektörü =110
Çok Fonksiyonlu ‘Pipeline’ Çarpma işleminden sonra çarpma için çakışma vektörünün hesaplanması Adım 4 çakışma vektörü =1100 Adım 5 çakışma vektörü =11000 Adım 6 çakışma vektörü =110000
Çok Fonksiyonlu ‘Pipeline’ Çarpma ve Toplama işlemleri için Çakışma vektörleri Çarpma işleminden sonra Çarpma işlemi gelmesi durumunda çakışma vektörü =110000 Toplama işleminden sonra Çarpma işlemi gelmesi durumunda çakışma vektörü =11010000 Çarpma işleminden sonra Toplama işlemi gelmesi durumunda çakışma vektörü =000000 Toplama işleminden sonra Toplama işlemi gelmesi durumunda çakışma vektörü =10000000
‘Pipeline’ Performansının Analizi 1001011 8 8 2 3 1101111 1011011 8 2 5 3 5 5 1111011 1101011 8 5 3 8 En iyi Performans = 4 / (3+5+3+2) = 0.3077 işlem/birim zaman
Koşullu Sapmalar ve ‘pipeline’ İşlemcilerin komut al-getir ve işletimini gerçekleştiren ‘pipeline’, koşullu sapmalarda boşaltılmak durumunda kalabilir. Verimlilik düşüren bu durumu önlemek için kullanılan yöntemlerden bazıları: Gecikmeli Sapma Çoklu Durum Yazmacı kullanımı Sabit Sapma kestirimi Eski Sapmaların Kayıtları
Koşullu Sapmalar ve ‘pipeline’ Gecikmeli Sapma Sapma gerçekleşsin veya gerçekleşmesin koşullu sapma komutundan sonraki belirli sayıda komutun uygulanması esasına dayanır. Koşullu sapmalarda ‘pipeline’ın boşaltılmasına gerek kalmaz. Koşullu sapma komutundan sonra uygulanabilecek komutlar gereklidir. cmp d,e cmp d,e mov a,b je xxx je xxx mov a,b
Koşullu Sapmalar ve ‘pipeline’ Çoklu Durum Yazmacı kullanımı Birden fazla durum yazmacı kullanılarak durum yazmacını kuran komut ile koşullu sapma komutu arasında belirli bir uzaklık sağlanır. Koşullu sapma komutu ‘pipeline’a girerken koşullu sapmanın sonucu kesin bellidir. cmp 1,d,e cmp 2, f,g mov a,b je 1,xxx je 2,yyy Durum Yazmacı 1 Durum Yazmacı 2
Koşullu Sapmalar ve ‘pipeline’ Sabit Sapma kestirimi Döngülerde kullanılan koşullu sapmaların iyileştirilmesini sağlayan bu yöntemde koşullu sapmanın yönüne göre bir sapma kestirimi yapılır. Örneğin, ‘bulunduğu adresten daha öncesine sapmanın gerçekleşeceği’ varsayımıyla çalışan bir işlemci için döngülerde bu varsayıma uygun kod üretilmişse, döngünün sonu hariç ‘pipeline’ın boşaltımasına gerek kalmayacaktır. mov a, 100 xxx: … decrement a jnz xxx
Koşullu Sapmalar ve ‘pipeline’ Eski Sapmaların Kayıtları Koşullu sapma komutlarının bir önceki uygulanışlarındaki durumun (sapmanın olup olmaması) aynısının şimdiki uygulamada da ortaya çıkacağını varsayan bu yaklaşımla döngülerin iyileştirilmesi mümkündür. Döngünün kontrolunda kullanılan koşullu sapma komutları, döngünün sonu hariç aynı biçimde davranacaklardır. Örneğin, 100 kez sapma gerçekleşecek, döngünün sonunda sapma olmayacaktır. Bu yöntemde, ‘Cache’ bellek benzeri bir yapıda, her koşullu sapma komutunun bir önceki uygulanışındaki durum bilgisi tutulur.
Sırasız komut işletiminde sorun yaratan durumlar: Sırasız Komut İşletme Sırasız komut işletiminde sorun yaratan durumlar: Komutlar arasında OKU/YAZ, YAZ/OKU ve YAZ/YAZ türü bağımlılıklar "Pipeline" çakışmaları Koşullu sapmalar
Sırasız Komut İşletme Gösterge Değer Serbest Sayaç Y[1] DY[1] Y[2] Rezervasyon Durakları DY[8] İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP ÇRP BÖL MNT OKU YAZ
Sırasız Komut İşletme 1 1 1 Gösterge Değer Serbest Sayaç Y[1] DY[1] Y[2] DY[2] 1 Y[3] DY[3] Y[4] DY[4] DY[5] 1 DY[6] DY[7] Rezervasyon Durakları DY[8] 1 İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP Y[1]:=A Y[2]:=Y[1]x500 Y[1]:=5 ÇRP BÖL MNT OKU YAZ
Sırasız Komut İşletme 1 1 1 1 A 2 Gösterge Değer Serbest Sayaç Y[1] DY[1] 1 Y[2] DY[2] 1 Y[3] DY[3] Y[4] DY[4] DY[5] 1 DY[6] DY[7] Rezervasyon Durakları DY[8] 1 İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP Y[1]:=A Y[2]:=Y[1]x500 Y[1]:=5 ÇRP BÖL MNT OKU A 2 YAZ
Sırasız Komut İşletme 1 2 1 1 1 500 2 5 A 2 Gösterge Değer Serbest Sayaç Y[1] DY[1] 1 Y[2] DY[2] 2 Y[3] DY[3] 1 Y[4] DY[4] DY[5] 1 DY[6] DY[7] Rezervasyon Durakları DY[8] 1 İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP Y[1]:=A Y[2]:=Y[1]x500 Y[1]:=5 ÇRP 500 2 5 BÖL MNT OKU A 2 YAZ
Sırasız Komut İşletme 1 1 2 5 1 1 500 2 5 A 2 Gösterge Değer Serbest Sayaç Y[1] DY[1] 1 Y[2] DY[2] 1 2 Y[3] DY[3] 5 Y[4] DY[4] DY[5] 1 DY[6] DY[7] Rezervasyon Durakları DY[8] 1 İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP Y[1]:=A Y[2]:=Y[1]x500 Y[1]:=5 ÇRP 500 2 5 BÖL MNT OKU A 2 YAZ
Sırasız Komut İşletme 1 A 1 1 5 1 1 500 2 5 Gösterge Değer Serbest Sayaç Y[1] DY[1] 1 Y[2] DY[2] A 1 1 Y[3] DY[3] 5 Y[4] DY[4] DY[5] 1 DY[6] DY[7] Rezervasyon Durakları DY[8] 1 İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP Y[1]:=A Y[2]:=Y[1]x500 Y[1]:=5 ÇRP 500 2 5 BÖL MNT OKU YAZ
Sırasız Komut İşletme 1 A 1 5 Ax500 1 Gösterge Değer Serbest Sayaç DY[1] 1 Y[2] DY[2] A 1 Y[3] DY[3] 5 Y[4] DY[4] DY[5] Ax500 DY[6] DY[7] Rezervasyon Durakları DY[8] 1 İşlenen 1 İşlenen 2 S Değer S Değer Sonuç TOP TOP ÇRP Y[1]:=A Y[2]:=Y[1]x500 Y[1]:=5 ÇRP BÖL MNT OKU YAZ
“Pipeline” - Ön bellek - Görüntü Bellek Görüntü Adres Adres bilgileri Veri Adres Dönüştürücü Yastık Yastık Yastık Karşılaştır Karşılaştır
Vektör Bilgisayarlar Vektör birimi yardımcı işlemcidir Vektör işlemleri içeren programların hızlandırılmasını amaçlar ... for(i=0 ; i < N ; i++) c[i]=a[i]+b[i]; ... C=A+B;
Vektör Birimi (Pipeline) Vektör Bilgisayarlar Koşut erişim sağlayan bellek sistemi M Vektör 1 Vektör Birimi (Pipeline) M Vektör 2 M Sonuç Vektörü M
Vektör Bilgisayarlar A7 A15 B7 B15 C7 C15 A6 A14 B6 B14 C6 C14 A5 A13 Modül 7 A7 A15 B7 B15 C7 C15 Modül 6 A6 A14 B6 B14 C6 C14 Modül 5 A5 A13 B5 B13 C5 C13 Modül 4 A4 A12 B4 B12 C4 C12 Modül 3 A3 A11 B3 B11 C3 C11 ... ... ... Modül 2 A2 A10 B2 B10 C2 C10 Modül 1 A1 A9 A17 B1 B9 B17 C1 C9 C17 Modül 0 A0 A8 A16 B0 B8 B16 C0 C8 C16
Vektör Bilgisayarlar P4 1 2 3 4 5 6 P3 1 2 3 4 5 6 7 P2 1 2 3 4 5 6 7 8 P1 1 2 3 4 5 6 7 8 9 M7 A7 B7 M6 A6 B6 M5 A5 B5 C5 M4 A4 B4 C4 M3 A3 B3 C3 A11 M2 A2 B2 C2 A10 B10 M1 A1 B1 C1 A9 B9 M0 A0 B0 C0 A8 B8
Vektör Bilgisayarlar ... M0 M1 M7 Koşut erişim sağlayan bellek sistemi Yastık Bellek A M1 P1 P2 P3 P4 B ... C M7
Koşut Bilgisayarlar Flynn’in Sınıflaması
(System Area Network – SAN) Koşut Bilgisayarlar Dağıtık Bellekli MIMD Bilgisayar Bellek Bellek Bellek Bellek ... İşlemci İşlemci İşlemci İşlemci Sistem Alan Ağı (System Area Network – SAN)
(System Area Network – SAN) Koşut Bilgisayarlar Paylaşımlı Bellekli MIMD Bilgisayar ... İşlemci İşlemci İşlemci İşlemci Ön Bellek Ön Bellek Ön Bellek Ön Bellek Sistem Alan Ağı (System Area Network – SAN) Bellek Bellek Bellek Bellek
Paylaşımlı Bellekli MIMD Bilgisayar Örneği Koşut Bilgisayarlar Paylaşımlı Bellekli MIMD Bilgisayar Örneği İşlemci Adres Bilgileri Denetim Birimi Veriler Ana Bellek İşlemci Adres Bilgileri Denetim Birimi Veriler
(System Area Network – SAN) Koşut Bilgisayarlar Bellek SIMD Bilgisayar İşlemci Bellek Bellek Bellek Bellek Bellek Bellek ... İşlemci İşlemci İşlemci İşlemci İşlemci İşlemci Sistem Alan Ağı (System Area Network – SAN)
(System Area Network – SAN) Koşut Bilgisayarlar Paylaşımlı Bellekli MIMD Bilgisayar ... İşlemci İşlemci İşlemci İşlemci Ön Bellek Ön Bellek Ön Bellek Ön Bellek Sistem Alan Ağı (System Area Network – SAN) Bellek Bellek Bellek Bellek
Koşut Bilgisayarlar a b c t1 t2 t3 while(TRUE) { recv(a, ...); P1 a P2 b P3 c t1 t2 t3 while(TRUE) { recv(a, ...); //işlem 1 send(b, ...); } while(TRUE) { recv(b, ...); //işlem 2 send(c, ...); } while(TRUE) { recv(c, ...); //işlem 3 send(d, ...); }
Koşut Bilgisayarlar t1 t2 t3 while(TRUE) { P(dolu0); oku=veri0; M1 bos0 M2 M3 1 bos1 1 bos2 1 dolu0 dolu1 dolu2 veri0 veri1 veri2 while(TRUE) { P(dolu0); oku=veri0; V(bos0); yaz=islem1(oku); P(bos1); veri1=yaz; V(dolu1) } while(TRUE) { P(dolu1); oku=veri1; V(bos1); yaz=islem2(oku); P(bos2); veri2=yaz; V(dolu2) } while(TRUE) { P(dolu2); oku=veri2; V(bos2); yaz=islem3(oku); P(bos3); veri3=yaz; V(dolu3) } * “oku”, “yaz” yerel değişkenlerdir.
Koşut Bilgisayarlar while(TRUE) { <<if(P kimliği tek sayı) gönder(A,4) else al(B,2) >> <<if(P kimliği çift sayı) gönder(A,4) else al(B,2)>> <<A=B>> <<C=işlem(A,C)>> } P Denetim 1 P1 P2 P3 P4 P5 P6 2 4 3
Koşut Bilgisayar Ağ Topolojileri Ortak Yol (Bus) İki bilgisayar arasındaki uzaklık sabit (1) Bilgisayar sayısı arttıkça yolun trafiği yavaşlar
Koşut Bilgisayar Ağ Topolojileri “Crossbar”
Koşut Bilgisayar Ağ Topolojileri Çok aşamalı ağlar (Multistage) n = log p
Koşut Bilgisayar Ağ Topolojileri Complete omega network P C C Pass-trough Cross-over
Koşut Bilgisayar Ağ Topolojileri Tam ve yıldız bağlantı
Koşut Bilgisayar Ağ Topolojileri Doğrusal ve halka bağlantı
Koşut Bilgisayar Ağ Topolojileri Hasır Dokusu (Mesh)
Koşut Bilgisayar Ağ Topolojileri Simit (2D Torus)
Koşut Bilgisayar Ağ Topolojileri Simit (2D Torus)
Koşut Bilgisayar Ağ Topolojileri Üç boyutlu hasır Üç boyutlu torus
Koşut Bilgisayar Ağ Topolojileri 3D Torus
Koşut Bilgisayar Ağ Topolojileri HyperCube ...
Koşut Bilgisayar Ağ Topolojileri Ağaç (Tree) anahtarlama işlemci
Koşut Bilgisayar Ağ Topolojileri