MALTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSİĞİ BÖLÜMÜ BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı Öğrenci Adı Soyadı : Öğrenci no : Akademik yıl : 2015-2016 Dönem : Güz Tarih : 4.11.2015 Sınav yeri : MZ-4 Sınav süresi : 60 dakika Ders sorumlusu : Yrd.Doç.Dr. Ali AKMAN Soru 1 2 3 4 5 6 7 Toplam Puan 15 15 10 15 10 15 20 100 Not KURALLAR Sınavdan önce adınızı-soyadınızı ve öğrenci numaranızı yazınız. Soruların tamamını cevaplayınız. Cevaplarınızı sadece ekteki sayfalara yazınız. Yazınız mutlaka düzgün ve okunaklı olmalıdır. Okunamayan ve anlaşılmayan karalama vb. kısımlar değerlendirmeye alınmayacaktır. Sonuçlarınızı mutlaka birimleri (m, kg, m/s. vb) ile veriniz. Birimsiz sonuçlar sayısal değer doğru olsa bile eksik puanla (örneğin yarısı gibi) değerlendirilecektir. Sınavda ders notlarınızı, defterlerinizi kullanabilirsiniz. Eski yıllara ait sınav soru çözümleri ve diğer soru çözümleri sınav esnasında kullanılamaz. Sınav sırasında; sınavla ilgili soru sormak, arkadaşınızla konuşmak, malzeme alıp vermek, sözlük, cep telefonu, ders notları ve dersle ilgili diğer kişisel notları kullanmak yasaktır. Kurallara uymayanların davranışları sınavda kopya yapmaya teşebbüs etmek veya kopya yapmak olarak değerlendirilecektir.
SORU-1) [15 puan] Aynı işlemi gerçekleştirmek için tasarlanmış aşağıda verilen iki kod parçasını göz önüne alınız. Kod-1: for (j = 0; j < 4; j++) for(i = 0; i < 4; i++) x[i][j] = 10*y[i][j]; Kod-2: for(i = 0; i < 4; i++) for (j = 0; j < 4; j++) x[i][j] = 10*y[i][j]; Aşağıda verilen özelliklere sahip bir ön bellekğe sahip olduğunuzu düşününüz. Yukarıda verilen kod parçalarının her birinin yürütülmesine başlamadan önce bu ön belleğin boş olduğunu ve bu ön belleğin sadece X ve Y matrisleri için kullanıldığını farz ediniz. Ön Bellek Büyüklüğü (Cache Size) İlişki (Associavity) Yerine Koyma Politikası (Replacement Policy) Yazma Politikası (Write Policy) 16 matris elemanı (mesela y[0][0] bir matris elemanı) Tam ilişkili (Fully Associative) LRU (En erken kullanılan) Write-back (güncellemeler ön bellek üzerinde yapılır ve ön bellekte silme gerektiğinde veriler ana belleğe gönderilir.) Buna göre, a) [5 puan] Ön bellek blok uzunluğu (blok size) 4 matris elemanı ise Kod-1 ve Kod-2 den hangisini çalıştırırsınız? Ön bellek ve ana bellek erişimi açısından düşünerek, seçiminizi yapınız ve kısaca açıklayınız. Sadece Kod-1 veya Kod-2 yazmanız yeterli değildir ve bu durum değerlendirilmeyecektir. Konumda yerellik prensibinden dolayı Kod-2 ile daha yüksek ön bellek performansı elde edilir. b) [5 puan] Ön bellek blok uzunluğu (blok size) 2 matris elemanı ise Kod-1 ve Kod-2 den hangisini çalıştırırsınız? Kısaca açıklayınız. Her iki kod da aynı performansı sağlar. c) [5 puan] Ön bellek ıskalama oranı (cache miss rate) göz önüne alındığında her iki kod parçasının eşit performans sergilemesini sağlayacak minimum ön bellek blok uzunluğunu hesaplayınız. 1 Matris elemanı. Bu durumda her iki kod içinde ön belleğe her erişim ıskalanacaktır.
SORU-2) [15 puan] 1. Seviye önbelleğe sahip bir işlemcide ortalama bellek erişim zamanı 2.4 saat çevrimidir. Veri mevcut ve önbellekte ise 1 saat çevriminde elde edilir. Eğer veri önbellekte yer almıyorsa ana bellekten getirmek için 80 saat çevrimine ihtiyaç duyulmaktadır. Ortalama bellek erişim zamanını iyileştirmek için yeni bir tasarım yapılıyor. Bu tasarımda 2. Seviye bir önbellek sisteme dahil ediliyor. Bu 2. Seviye önbelleğe erişim süresi 6 saat çevrimidir ve bu önbelleğin eklenmesi 1. Seviye önbelleğe erişim düzenini ve isabet oranını değiştirmemektedir. Ana bellek erişimi yine 80 saat çevrimidir. Yapılan bu tasarım ile ortalama bellek erişim süresi %65 iyileştiriliyor. Buna göre 2. Seviye önbelleğin ıskalama oranını hesaplayınız. Ort. Bellek Erişimi = Ön Bellek Erişimi + Ön Bellek Iskalama Oranı*Ana Bellek Erişimi 2.4 = 1 + Ön Bellek Iskalama Oranı*80 Ön Bellek Iskalama Oranı = 1.4/80 = 0.0175 İyileşme = Yeni Ort. Bellek Erişim Zamanı /Ort. Bellek Erişim Zamanı 1.65 = x/2.4 x = 1.4545 saat çevrimi Yeni Ort. Bellek Erişimi = Ön Bellek Erişimi + Ön Bellek Iskalama Oranı*(2. Seviye Ön Bellek Erişimi + 2.Seviye Ön Bellek Iskalama Oranı*Ana Bellek Erişimi) 1.4545 = 1 + 0.0175*(6 + y*80) y = (((1.4545-1) / 0.0175) 6) / 80 = 0.25 2. Seviye Ön Belleğin Iskalama Oranı = %25 SORU-3) [10 puan] 16 yollu küme ilişkili bir önbelleği göz önüne alınız. Bu önbellek için aşağıdaki bilgiler veriliyor. 1 word verinin uzunluğu 64 bittir. 1 Blok 16 word den oluşmaktadır. Adresleme yarım word tabanlı yapılmaktadır. Önbellek uzunluğu 2MByte dır. Adres kelimesi uzunluğu 64 bittir. Buna göre, Bellek adres kelimesinin Tag, Set, Word alanlarının uzunluklarını bulunuz. 1 word = 64 bit = 8 byte 1 Blok = 16 word = 128 byte Bloktaki adres sayısı = 128 / Yarım Word = 128 / 4 = 32 = 2 5 Blok sayısı = 2 MByte / 128 Byte = 2*1024*1024 / 128 = 16384 = 2 14 Küme Sayısı = 16384 / 16 = 1024 = 2 10 Adres Kelimesi = 64 bit olduğundan Word = 5 Set = 10 Tag = 49
SORU-4) [15 puan] Bir yüzeye sahip, yüzeydeki track sayısı 1200, tracktaki sektör sayısı 500 ve sektör uzunluğu 2 KB olan bir manyetik diski göz önüne alalım. a) [5 puan] Bu diskin kapasitesini hesaplayınız. b) [10 puan] Bu diskin dönme hızı 5000 rpm, ortalama arama zamanı (seek time) 8 ms ve tracktan tracka geçiş süresi 1 ms olduğuna göre 5 MB dosyayı transfer edebilmek için gereken süreyi hesaplayınız. a) Disk kapasitesi = Yüz Sayısı * Track Sayısı * Tracktaki sektör sayısı * Sektör Uzunluğu Disk Kapasitesi = 1 * 1200 * 500 * 2 KB = 1200000 KB = 1.144 GB b) Dosya için gerekli track sayısı = 5*1024 KB / (500*2 KB) = 5.12 track Dönme zamanı = 60 / 5000 s = 12 ms Dosya Transfer Zamanı = Ort. Arama Zamanı + Tracktan Tracka geçiş Zamanı*5 + Dönme Zamanı*5.12 Dosya Transfer Zamanı = 8 ms + 5*1 ms + 5.12 * 12 ms = 74.44 ms SORU-5) [10 puan] 16 adet 250 GB lık disk kullanılarak oluşturulmuş bir RAID dizisi göz önüne alınsın. RAID sevileri 0, 1 ve 4 için kullanılabilir toplam veri depolama kapasitesini bulunuz. RAID 0 16*250 GB = 4000 GB RAID 1 8*250 GB = 2000 GB RAID 4 15*250 GB = 3750 GB
SORU-6) [15 puan] 12 bitlik 0x13A verinin bellekte depolandığını farz edelim. Bu veri ile birlikte bellekte depolanacak kontrol bitlerini (check bits) Hamming algoritmasını kullanarak bulunuz. 2 K 1 >= M + K M = 12 K = 3 alırsak 8 1 >= 12 + 3 sağlanmaz K = 4 alırsak 16 1 >= 12 +4 sağlanmaz K = 5 alırsak 32 1 >= 12 + 5 sağlanır. Kontrol bit sayısı 5 dir. Bit Pozisyonu 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Pozisyon Sayısı Veri Biti 10001 10000 01111 01110 01101 01100 01011 01010 01001 01000 00111 00110 00101 00100 00011 00010 00001 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 Kontrol Biti C5 C4 C3 C2 C1 C1 = D1 D4 D5 D7 D9 D11 D12 C2 = D1 D3 D4 D6 D7 D10 D11 C3 = D2 D3 D4 D8 D9 D10 D11 C4 = D5 D6 D7 D8 D9 D10 D11 C5 = D12 Data = 0001 0011 1010 D1 = 0, D2 = 1, D3= 0, D4 = 1, D5 = 1, D6 = 1, D7 = 0, D8 = 0, D9 = 1, D10 = 1, D11 = 1, D12 = 1, C1 = 1, C2 = 0, C3 = 1, C4 = 1, C5 = 1
SORU-7) [20 puan]1 bit depolayabileceğiniz RAM hücrelerinin (cells) bir dizisini (2D veya 3D dizi) oluşturarak bir RAM modülü tasarlamak istiyorsunuz. 16Mx2 şeklindeki 32 MBitlik RAM modülünün tasarımını yapınız ve bu tasarımı aşağıya çiziniz. Tasarımda kullanılan kod çözücü, çoğullayıcı gibi elemanların özelliklerini ve RAM hücrelerinin dizisinin boyutunu belirtiniz. Adres kelimesi uzunluğunu, sütun ve satır adres kelimelerinin uzunluklarını belirtiniz. 16M x 2 RAM tasarlanmak istendiğinden Bellek dizisinden 2 adet olacak ve bir bellek dizisinin eleman sayısı 16M olacaktır. Bu sebeple bellek dizisi 4096 x 4096 = 16 M boyutunda olacaktır. 4096 satırın adreslenmesi 12 bit ile yapılır. 4096 sütunun adreslemesi 12 bit ile yapılır. Satır ve Sütun kod çözücüleri 12 giriş ve 4096 çıkışlı olmalıdır. A0 A11 Satır Adres Satır Kod Çözücü Bellek Dizisi (4096 x 4096 x 2) A12 A23 Sütun Adres Güncelleme Devresi Sütun Kod Çözücü Veri Giriş Veri Çıkış D0 D1