Tantárgy neve, kódja: Számítógép-architektúrák II., GRENFKN-SZAMARC2-1

Szak neve, képzési szintje: Mérnökinformatikus - Rendszergazda szakirány, FOSZK
Tanterv: 2021
Heti órászám (előadás + gyakorlat + labor): 2+0+2
Kreditérték: 5
Elmélet: 50 %
Gyakorlat: 50 %
A tantárgy tantervi helye: 1. félév
Munkarend: Nappali
Előtanulmányi feltételek: nincs
Értékelés: gyakorlati jegy
Tantárgy besorolása:
Oktatás nyelve: Magyar
Tantárgyfelelős: Dr. Pintér István
Felelős tanszék: Informatika Tanszék
Tantárgy oktatója(i): Koszna Ferenc
Ellenőrzésért felel: Irházi Zoltán
Tárgy oktatásának célja:
A tantárgy célja a számítási teljesítmény növelése lehetőségeinek és korlátainak ismertetése a számítógép-architektúrák szintjén, az IA32/x86-64 architektúrától eltérő mikroprocesszokrok tulajdonságainak áttekintése, SIMD és a párhuzamosítás lehetőségei.
Elsajátítandó ismeretanyag előadás:

A számítási teljesítmény növelése (ILP (pipeline, váróciklusok, függőségek típusai és kezelése)), gyorsítótárak típusai és működése, statikus és dinamikus elágazás-előrejelezés, sorrendtől eltérő végrehajtás, feltételezett végrehajtás. A disszipáció csökentése. Az operációs rendszerek megvalósításának HW támogatása, operációs-rendszer funkciók és SW megszakítások. ARM, AVR, TMS320C5000 ISA, IA32/x86-64 MMX, SSE. Speciális algoritmusok megvalósításának támogatása ISA-szinten (mátrixműveletek, jelfeldolgozás, adatátvitel).IA32/x86-64 MMX és SSE ISA megismerése, gyakorlása és egyszerűbb algoritmusok megvalósítása ISA szinten megfelelő eszközzel, elsősorban a következő vonatkozásokban: speciális aritmetikai lehetőségek, párhuzamos aritmetikai műveletvégzés, mátrix-műveletek. Tervezett heti bontás: 1. Mikroarchitektúra és ILP (utasításszintű párhuzamosság). 2. Aritmetikai csővezeték és matematikai háttér 3. Utasítás csővezetékek és hazárdok 4. Cache-mechanizmusok és a disszipáció csökkentése 5. Az utasításkészlet-architektúra és az ISA típusai. 6. RPN és az FPU hardveres támogatása. 7. A CRC kiszámítása és használata hardverekben. 8. SIMD: ARM, AVR, TMS320C5000 ISA, IA32/x86-64 MMX, SSE. 9. IA32/x86-64 MMX és SSE ISA egyszerű algoritmusok tanulása, gyakorlása és végrehajtása. 10. HW támogatás az operációs rendszer megvalósításához, operációs rendszer funkciók és SW megszakítások. 11. Modern processzor SIMD implementációk és összehasonlítások. 12. Az AVX ISA részletei 13. Nem szabványos SIMD/MIMD alapú számítógépek és felhasználása modern módon.


Elsajátítandó ismeretanyag laboratórium:

-Ismétlés (A gépi utasítások működésének vizsgálata Visual Studio-val. Adatmozgatás, fixpontos aritmetika.Logikai műveletek, léptetés, forgatás, ciklusszervezés, FPU, IN, OUT, BCD, NOT, NEG, XLAT, sztringkezelő utasítások.) Vegyes feladatok (EBP, állapotregiszter, RDTSC, CPUID stb.). Gyakorló feladatok (Kódelemzés, folyamatábra. Szöveg kódolása. BCD/BIN/HEX konverzió. FP32 bitmezők kiírása, denormalizált szám. Álvéletlenszám-generátor, RDRAND utasítás. Vezérléstechnikai rendszer állapota. Véges állapotgépek szimulációja.) Fixpontos telítéses összeadás, kivonás. Két fixpontos vektor elemenkénti szorzata. Két fixpontos vektor elemei különbsége abszolút-értékének összege.FP32 lebegőpontos számokból álló vektorok skaláris szorzata. A CPUID utasítás, SIMD lehetőségek. MMX és az FPU, példa MMX utasításokra. Példa SSE utasításokra, vektorok elemenkénti szorzása. Két vektor Manhattan-távolsága. Négydimenziós FP32 vektorok skaláris szorzata. Tervezett heti bontás: 1. Áttekintés a Számítógép-architektúrák 1. részéből: Számítási rész 2. Ismétlés a Számítógép-architektúrák 1. részből: programozás assembly nyelven (Visual Studio segítségével) 3. Lebegőpontos utasítások és RPN programozás 4. Az SIMD bevezetése: MMX utasítások 5. Programozás MMX-ben: alapvető utasítások, adatmozgások, vektorizáció 6. Programozás MMX-ben: összetett utasítások, feltételes elágazás 7. Komplex feladatmegoldás MMX utasításokkal 8. Az SIMD bevezetése: az SSE története és alapvető utasítások 9. SSE: egyszeres skalár utasítások és feladatmegoldás. 10. SSE: többszörös utasítások és feladatok megoldása. 11. Komplex feladatmegoldás SSE utasításokkal 12. Az SIMD bevezetése: AVX utasítások és alapvető használatuk. 13. Sebesség-összehasonlítás: nem SIMD, MMX, SSE, AVX utasítások valós idejű kódoláson.

Elsajátítandó szakmai kompetenciák (tudás, képesség, attitűd, autonómia és felelősség, további szakmai kompetenciák):
Tudása:

-

Képességei:

Tisztában van az informatikai szolgáltatások típusaival és azok szerepével. Képes az informatikus szakma fogalmainak és szaknyelvének használatára. Képes együttműködni a felhasználókkal és a szakember-kollégákkal. Minden területen törekszik a hatékony és minőségi munkavégzésre. Felelősséget vállal az általa menedzselt eszközök megfelelő állapotáért, valamint az önállóan és csapatban végzett munkájáért. Az informatikai fejlesztésekben irányítás alatt tevékenykedik.

Attitűdje:

-

Autonómia és felelősség:

-

További szakmai kompetenciák:


A számonkérés és értékelés rendszere:
Félévközi tanulmányi követelmények:
Pontszerző dolgozatok az előadás és a gyakorlat anyagából. A gyakorlati jegy megállapítása a pontszerő dolgozatokra adott pontszámok összege alapján.
Vizsgakövetelmények:

-

Tanulmányi segédanyagok, laborháttér:

Pintér I.: Számítógép-architektúrák II. Assembly segédlet.; 15 fős számítógépterem, MS Visual Studio

Kötelező irodalom:

A. S. Tanenbaum: Structured Computer Organization, Pearson India, ISBN: 9789332586239, 2016 Koszna Ferenc: Assembly nyelvű programozás Visual Studio alatt. Jegyzet. Kecskemét, 2021. ISBN 978-615-5817-67-0

Ajánlott irodalom:

Tanenbaum, Austin: Structured Computer Organization 6th Edition, ISBN-13: 978-0132916523, Pearson, 2013. Hennessy, Patterson: Computer Architecture 6th Edition, ISBN: 9780128119051, Morgan Kaufmann, 2017.