Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Heterogén SoC rendszerek

    A tantárgy angol neve: Heterogeneous SoC Systems

    Adatlap utolsó módosítása: 2023. január 4.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Villamosmérnöki mesterszak (MSc)
    FPGA alapú rendszerek mellékspecializáció (MIT)
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIMIMA25   2/1/0/v 5  
    3. A tantárgyfelelős személy és tanszék Szántó Péter,
    A tantárgy tanszéki weboldala https://www.mit.bme.hu/oktatas/targyak/vimima25
    4. A tantárgy előadója Szántó Péter mesteroktató, MIT

    Raikovich Tamás tanársegéd, MIT

    5. A tantárgy az alábbi témakörök ismeretére épít

    Digitális technika
    FPGA rendszertervezés
    FPGA-ban megvalósított mikroprocesszoros rendszerek

    6. Előtanulmányi rend
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIMIMA15", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIMA15", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    Ajánlott:

    FPGA alapú rendszerek fejlesztése

    7. A tantárgy célkitűzése A tantárgy célja a komplex, nagy teljesítményű, egy áramkörön belül megvalósított heterogén rendszerek tervezési és alkalmazási kérdéseinek bemutatása, különös tekintettel részfunkciók hardveres gyorsítására. A tárgy ismerteti a feladatok hardver megvalósításának előnyeit,
    bemutatja a (részlegesen) újrakonfigurálható FPGA-k és a GPGPU eszközök által kínált nagyfokú párhuzamosításban és pipeline végrehajtásban rejlő gyorsítási lehetőségeket. Ismerteti a hardver-szoftver együttes tervezés és particionálás követelményeit, módszereit. Bemutatja a CPU, GPGPU
    és FPGA alapú feldolgozó egységek egységes használatának szoftveres hátterét (CUDA, OpenCL), valamint az FPGA-k magas szintű nyelven történő fejlesztését. Valós példákon (pl. videófeldolgozás, mesterséges intelligencia alkalmazások) keresztül bemutatja a heterogén eszközök használatával elérhető teljesítmény- és hatékonyság növekedést.
    8. A tantárgy részletes tematikája

    Az előadások részletes tematikája:

    1. Linux operációs rendszer FPGA platformokon. Operációs rendszer rétegei. BSP (Board Support Package) kialakítása, device-tree használata. Linux boot folyamat, first stage bootloader, U-Boot.
    2. Kernel fordítás saját hardver platformon. Kernel modul (driver) fejlesztése.
    3. Heterogén SoC rendszerek áttekintése: Broadcom, NVIDIA, NXP, Rockchip, Microchip. FPGA alapú SoC rendszerek áttekintése: Intel, Microchip, Lattice. Xilinx Zynq és Versal család. Processzor - FPGA kapcsolat: interfészek, nagysebességű adatátvitel.
    4. Nagyteljesítményű processzoros alrendszerek, hard-core processzor magok és jellemző perifériák. Többmagos megoldások, speciális utasításkészletek. Real-time magok.
    5. SoC rendszerek boot folyamata. Biztonság, jogosultságok.
    6. Az FPGA rész konfigurációja. FPGA-k parciális rekonfigurációja.
    7. Vektor utasításkészletek (AVX, NEON, SVE). Többszálú programok fejlesztése OpenMP segítségével.
    8. Grafikus processzorok: bevezetés. NVIDIA GPU-k hardveres felépítése. NVIDIA Jetson SoC-k.
    9. GPU-k programozása: szálkezelés, szál hierarchia. Szinkronizáció. Memória modell.
    10. OpenCL és CUDA: hoszt szoftver és kernel.
    11. Magas szintű szintézis FPGA áramkörökre: Intel C2H, Xilinx HLS (C++ és OpenCL). Xilinx HLS: egyedi adattípusok, teljesítmény növelése.
    12. Xilinx HLS: erőforrás limitek, interfészek szintézise. IP generálás.
    13. Xilinx HLS: hardver gyorsító integrálása.
    14. Tartalék

    A gyakorlatok részletes tematikája:

    1. FSBL, U-Boot és Linux környezet létrehozása egyedi FPGA processzoros rendszerre.
    2. Linux kernel modul fejlesztése egyedi perifériához.
    3. Felhasználói módú alkalmazás fejlesztése és integrációja.
    4. Vektor utasításkészlet és OpenMP használata.
    5. GPU-k általános célú használata OpenCL és CUDA alapokon.
    6. Magasszintű hardver szintézis - Vitis HLS.
    7. OpenCL alapú FPGA gyorsító fejlesztése.
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás és gyakorlat

    10. Követelmények

    Szorgalmi időszakban:
    Aláírást az kaphat, aki a házi feladatot (egy kijelölt tervezési feladatot) elfogadható minőségben - legkésőbb a pótlási hét végéig - elkészíti. Az aláírás megszerzése a vizsgára jelentkezés feltétele.

    Vizsgaidőszakban:
    A tárgyból írásbeli vizsgát tartunk, vizsgaidőszakban, 3 alkalommal. A végleges félévi jegyet a vizsgán elért eredmény (75%) és a félévközi tervezési feladatra kapott értékelés (25%) együttesen határozza meg.

    11. Pótlási lehetőségek

    A házi feladat a szorgalmi időszakban vagy a pótlási hét végéig beadható.

    12. Konzultációs lehetőségek

    Megegyezés szerint.

    13. Jegyzet, tankönyv, felhasználható irodalom A jegyzetek elérhetők a tantárgyhoz kapcsolódó elektronikus felületeken.
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra21
    Felkészülés zárthelyire 
    Házi feladat elkészítése34
    Kijelölt írásos tananyag elsajátítása11
    Vizsgafelkészülés42
    Összesen150
    15. A tantárgy tematikáját kidolgozta Szántó Péter mesteroktató, MIT
    Raikovich Tamás tanársegéd, MIT