Tantárgy neve, kódja: Számítógép-architektúrák II., GRENFKN-SZAMARC2-1
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.
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.
Tudása:
-
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.
-
-
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:
-
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
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
Tanenbaum, Austin: Structured Computer Organization 6th Edition, ISBN-13: 978-0132916523, Pearson, 2013. Hennessy, Patterson: Computer Architecture 6th Edition, ISBN: 9780128119051, Morgan Kaufmann, 2017.