Számítógép-architektúrák II. (GINFBAN-SZAMARC2-1)

Alapadatok
Szak és képzési szint
Mérnökinformatikus alapszak, BSc
Tanterv
2021
Óraszám
2 + 0 + 2 (E+Gy+L)
Kreditérték
5 kredit
Elmélet-Gyakorlat arány
Elmélet: 50%, Gyakorlat: 50%
Tantervi félév
5. félév
Oktatók
Tantárgyfelelős
Dr. Drenyovszki Rajmund
Felelős tanszék
Informatika Tanszék
Oktatók
Koszna Ferenc, - nincs
Ellenőrzésért felel
Dr. Drenyovszki Rajmund
Tantárgy 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.

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.

Szakmai kompetenciák
Tudás

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.

Képesség

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.

Attitűd

- 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.

Autonómia és felelősség

- 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.

További szakmai kompetenciák

- digitális technológia hatékony alkalmazása, tanulási célok elérését szolgáló digitális megoldások ismerete

Számonkérés és értékelés
Félévközi 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.

Generatív MI használata

Nincs megadva

Irodalom
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.