Tantárgy neve, kódja: Számítógép-architektúrák II., GINFBAN-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:
képességei
- Tanulmányai során szerzett ismeretanyagát felhasználva képes beágyazott rendszereket specifikálni és megvalósítani.
- Képes a megszerzett alapismeretekre építve egy-egy műszaki informatikai területen mélyebb ismeretek önálló megszerzésére, a szakirodalom feldolgozására, majd a területhez kapcsolódó informatikai problémák megoldására.
- Együttműködik informatikusokkal és villamosmérnökökkel a csoportmunka során, és más szakterületek képviselőivel is az adott probléma követelményelemzésének és megoldásának kimunkálása során.
- Folyamatosan képezi magát és lépést tart az informatikai szakma fejlődésével.
tudása
- Ismeri az informatikai rendszerek hardver és szoftver elemeinek működését, megvalósításuk technológiáját, működtetéséből származó feladatok megoldásának mikéntjét, valamint informatikai és egyéb műszaki rendszerek összekapcsolásának lehetőségeit.
- Ismeri az informatika és a mérnöki szakma szókincsét és kifejezési sajátosságait magyar és angol nyelven, legalább alapszinten.
- Hitelesen képviseli a mérnöki és informatikai szakterületek szakmai alapelveit.
- A saját munkaterületén túl a teljes műszaki rendszer átlátására törekszik.
- Törekszik a hatékony és minőségi munkavégzésre.
- Felelősséget érez az önálló és csoportban végzett informatikai rendszerelemzői, -fejlesztői és -üzemeltetési tevékenységéért.
- Feltárja az alkalmazott technológiák hiányosságait, a folyamatok kockázatait és kezdeményezi az ezeket csökkentő intézkedések megtételét.
- digitális technológia hatékony alkalmazása, tanulási célok elérését szolgáló digitális megoldások ismerete
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:
A gyakorlati jegy megállapítása a TVSz alapján történik.
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 Studió
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.