Architektura komputerów

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Krystian Bacławski
Liczba godzin 30 (wyk.) 30 (ćw-prac.)
Rodzaj I2.Z - zastosowania inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi SY (systemy sieciowe i komputerowe)

Opis przedmiotu:

> _"Każda wystarczająco zaawansowana technologia jest nieodróżnialna od magii."_ --- Arthur C. Clarke. Celem wykładu jest przedstawienie studentom organizacji współczesnych maszyn obliczeniowych: procesorów wielordzeniowych, kart graficznych GPGPU, akceleratorów obliczeń (sieci neuronowe, przetwarzanie genomu); oraz środków przechowywania danych: pamięci DRAM i nieulotnej pamięci półprzewodnikowej. Zajęcia są skierowane do studentów, którzy czują niedosyt po wykładzie z _Architektur systemów komputerowych_ i _Logiki cyfrowej_, i chcą: * zrozumieć po co w procesorze jest aż kilka miliardów tranzystorów, * nauczyć się organizować wydajne oprogramowanie korzystające z procesorów wielordzeniowych i GPGPU, * dowiedzieć się z czego wynikają algorytmy optymalizacji kodu maszynowego w kompilatorach, * poznać kilka ciekawych algorytmów _online_ implementowanych w sprzęcie, * zaprojektować własny procesor. Wykład będzie prowadzony na podstawie materiałów [Onura Mutlu](http://people.inf.ethz.ch/omutlu/) z [ETH Zurich](https://inf.ethz.ch/department/awards-rankings/rankings.html) do wykładów [Digital Design & Computer Architecture](https://safari.ethz.ch/digitaltechnik/spring2021) i [Computer Architecture](https://safari.ethz.ch/architecture/fall2020). **Uwagi od wykładowcy:** Będę prowadzić te zajęcia po raz pierwszy. Oznacza to, że będę się douczać, listy zadań będą niedopracowane, a organizacja zajęć będzie momentami pozostawiać wiele do życzenia. W związku z tym planuję nieco luźniejsze tempo pracy niż na pozostałych przedmiotach, które prowadzę. Jeśli jesteś zainteresowany tematem, to obejrzyj godzinną prezentację [Indistinguishable From Magic: Manufacturing Modern Computer Chips](https://www.youtube.com/watch?v=NGFhc8R_uO4). ##### Tematy wykładów 1. Potokowe przetwarzanie instrukcji. 2. Przetwarzanie przerwań. 3. Wykonanie poza porządkiem programu (out-of-order) 4. Dataflow, wykonywanie spekulacyjne i atak Spectre. 5. Przewidywanie skoków. 6. Organizacja pamięci i atak RowHammer. 7. Kontrolery pamięci i obliczenia w modułach pamięci. 8. Polityki wymiany dla pamięci podręcznych. 9. Procesory graficzne GPU. 10. Prefetching. 11. Systemy wieloprocesorowe. 12. Synchronizacja pamięci podręcznych w SMP. 13. Organizacja sieci między rdzeniami. 14. Pamięci półprzewodnikowe dla dysków SSD. 15. Architektury do wyspecjalizowanych obliczeń.