Celem seminarium jest pogłębienie znajomości tematow omawianych na wykładzie
"Architektury Systemow Komputerowych" oraz zapoznanie się zagadnieniami
pobocznymi.
**
**
Przewiduje się, że student wygłosi prelekcję na jeden z niżej wymienionych
tematow:
* elementy mikroarchitektury wspołczesnych procesorow:
* techniki przewidywania skokow,
* spekulatywne metody wykonywania instrukcji,
* integracja translacji adresow z pamięcią podręczną,
* obsługa przerwań,
* sprzętowe wątki.
* modele pamięci w systemach wieloprocesorowych,
* sprzętowe wsparcie dla wirtualizacji,
* techniki generowania wydajnego kodu maszynowego,
* analiza bieżących i historycznych systemow komputerowych i mikroarchitektur,
* porownanie architektur zestawu instrukcji: CISC, RISC, VLIW,
* architektura [Mill](http://millcomputing.com/docs/),
* wydajne techniki symulacji sprzętu,
* języki opisu sprzętu i architektury.
**
**
Dodatkowo student będzie musiał wykonać pracę programistyczną polegającą na:
* naprawieniu / modyfikacji / rozszerzeniu wybranego symulatora architektury MIPS,
* implementacji procesora MIPS w języku Verilog / VHDL,
* zaprogramowaniu symulatora MIPS na poziomie mikroarchitektury,
* zbieraniu informacji dot. wykonania programu z użyciem narzędzia [Pin](https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool).
**
**
W zależności od stopnia skomplikowania pracy studenci będą mogli organizować
się w zespoły.
## Materiały:
* [Computer Architecture: A Quantitative Approach](http://booksite.elsevier.com/9780123838728/)
* [Memory Systems: Cache, DRAM, Disks](http://booksite.elsevier.com/9780123797513/)
* [Modern Processor Design](http://highered.mcgraw-hill.com/sites/0070570647/)