Dersin Amacı: |
Gelişmiş Bilgisayar Mimarisi, performans programlama, derleyiciler ve işletim sistemlerinin yanı sıra bilgisayar mimarisi ve mühendisliği ile ilgilenen öğrenciler için bir temel sağlamayı amaçlamaktadır. Amacımız, yazılımın donanımla nasıl etkileşime girdiğini daha iyi anlamanız ve teknoloji, uygulama ve ekonomideki eğilimlerin bu alanda sürekli değişiklikleri nasıl yönlendirdiğini anlamanızdır. Ders, uygulamalarda bulunan farklı paralellik biçimlerini (komut seviyesi, veri seviyesi, iş parçacığı seviyesi, kapı seviyesi) ve bunların çeşitli mimari özelliklerle nasıl kullanılabileceğini ele alacaktır. Ardışık düzen, süperskalar, spekülatif ve sıra dışı yürütme, vektör makineleri, VLIW makineleri, çoklu iş parçacığı, grafik işleme birimleri ve paralel mikroişlemcileri ele alacağız. Ayrıca önbellekler, sanal bellek ve DRAM dahil olmak üzere bellek sistemlerinin tasarımını da keşfedeceğiz. Dersin önemli bir parçası, Chisel donanım tanımlama dilinde uygulanan gerçek mikroişlemci tasarımlarını kullanan ve Amazon bulutunda (FireSim) barındırılan simülatörler ve FPGA öykünücüleri olarak çalışan bir dizi laboratuvar atamasıdır. Bu simülatörler size çeşitli işlemci mimari tekniklerine derinlemesine bir bakış sağlayacaktır. Amacımız, modern mikroişlemcilerde kullanılan tüm temel kavramları dönem sonuna kadar anlamanızdır. |
Dersin İçeriği: |
Basit makine gerçekleştirimi ve mikro-kodlama, ardışık hesaplama, bellek hiyerarşisi ve adres çevirme, ön yükleme, sanal bellek, karmaşık ardışık hesaplamalar, çalıştırma ünitelerine sıra dışı komut gönderme, yazmaç yeniden adlandırma, sıra dışı çalıştırma, sapma tahmini, VLIW, Sapma tahminleri ve VLIW, Çoklu işlem parçacığı, Vektörler, Çoklu işlem parçacığı ve Vektörler, GPU-lar, Önbellek Tutarlılığı, Bellek Tutarlılık Modelleri, Senkronizasyon, Güç ve Enerji, Depo Ölçekli Hesaplama, Yeniden Yapılandırılabilir Hesaplama. |
Hafta |
Konu |
Ön Hazırlık |
1) |
Giriş, İlk makineler, Basit Makine Gerçekleştirimi, Mikro-kodlama, Lab 1 açıklaması |
https://inst.eecs.berkeley.edu/~cs152/sp22/
Bu sayfadan 1. hafta ders notları ve ders kitabının ilgili ünitesi |
2) |
Ardışık düzen hesaplama |
https://inst.eecs.berkeley.edu/~cs152/sp22/
Bu sayfadan 2. haftanın ders notları ve ders kitabının ilgili ünitesi |
3) |
Bellek hiyerarşisi |
https://inst.eecs.berkeley.edu/~cs152/sp22/
3. haftanın ders notları ve ders kitabı |
4) |
Adres çevirme, Ön yükleme, Lab 2 tanıtımı/ Soru çözme 1 gözden geçirme |
https://inst.eecs.berkeley.edu/~cs152/sp22/
4. haftanın ders notları ve kaynakları, ders kitabı |
5) |
Sanal Bellek, Karmaşık ardışık düzen hesaplamalar, Çalışma ünitesine komutları sıra dışı gönderme, yazmaç yeniden adlandırma, 1. arasınav gözden geçirme |
https://inst.eecs.berkeley.edu/~cs152/sp22/
5. hafta ders notları ve ders kitabı |
6) |
Sıra dışı gelen komutları çalıştırma |
https://inst.eecs.berkeley.edu/~cs152/sp22/
6. haftanın ders notları ve ders kitabı |
7) |
Sapma tahmini, VLIW |
https://inst.eecs.berkeley.edu/~cs152/sp22/
7. haftanın ders notları ve ders kitabı |
8) |
Çoklu işlem parçacığı, Vektörler |
https://inst.eecs.berkeley.edu/~cs152/sp22/
9. haftanın ders notları ve ders kitabı |
9) |
GPU-lar ve Önbellek Tutarlılığı |
https://inst.eecs.berkeley.edu/~cs152/sp22/
11. haftanın ders notları ve ders kitabı |
10) |
Dizinler, Önbellek tutarlılığı |
https://inst.eecs.berkeley.edu/~cs152/sp22/
12. haftanın ders notları ve ders kitabı |
11) |
Bellek tutarlılık modelleri, senkronizasyon, güç ve enerji |
https://inst.eecs.berkeley.edu/~cs152/sp22/
13. haftanın ders notları ve ders kitabı |
12) |
Depo ölçekli hesaplama |
https://inst.eecs.berkeley.edu/~cs152/sp22/
14. hafta ders notları ve ders kitabı |
13) |
Yeniden yapılandırılabilir hesaplama |
https://inst.eecs.berkeley.edu/~cs152/sp22/
15. haftanın ders notları ve ders kitabı |
|
Dersin Program Kazanımlarına Etkisi |
Katkı Payı |
1) |
Bilgisayar Bilimi ve Mühendisliği alanında bilimsel araştırma yaparak geniş ve derin bilgilere ulaşma, değerlendirme, yorumlama ve uygulama becerisi. |
|
2) |
Sınırlı ya da eksik bilgiyi kapatmak ve uygulamak için bilimsel yöntemleri kullanma ve farklı disiplinlerin bilgilerini bütünleştirme kabiliyeti. |
|
3) |
Bilgisayar Bilimi ve Mühendisliği problemlerini kurgulayabilme, problemleri çözmek için yöntemler geliştirebilme ve çözümde yenilikçi yöntemler kullanabilme. |
|
4) |
Yeni ve/veya orijinal fikirler ve algoritmalar geliştirme becerisi; sistem, bileşen veya süreç tasarımında yenilikçi çözümler geliştirmek. |
|
5) |
Bilgisayar Mühendisliğinde uygulanan güncel teknikler ve yöntemler ve bunların kısıtları hakkında geniş bilgi sahibi olma kabiliyeti. |
|
6) |
Analitik modelleme ve deneysel araştırma tasarlama ve uygulama, süreçte karşılaşılan karmaşık durumları çözme ve yorumlama becerisi. |
|
7) |
Bir yabancı dili (İngilizce) en az Avrupa Dil Portföyü seviyesinde sözlü ve yazılı iletişimde kullanabilme kabiliyeti. |
|
8) |
Çok disiplinli ekiplerde liderlik etme, karmaşık durumlara çözüm geliştirme ve sorumluluk alma kabiliyeti. |
|
9) |
Toplumsal, yasal, etik ve ahlaki değerlerin bilincinde olmak ve bu değerler çerçevesinde araştırma ve uygulama çalışmaları yapabilmek. |
|
10) |
Bilgisayar Bilimi ve Mühendisliği alanında yeni ve gelişmekte olan uygulamalar hakkında farkındalık ve bunları inceleme ve gerekirse öğrenme kabiliyeti. |
|