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ó    

    Számítógép-architektúrák

    A tantárgy angol neve: Computer Architectures

    Adatlap utolsó módosítása: 2022. augusztus 29.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Mérnökinformatikus

    BSc

    kötelező

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIHIAA03 2 3/1/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Horváth Gábor,
    4. A tantárgy előadója

    Dr. Horváth Gábor, egyetemi tanár, HIT

    Belső Zoltán, tudományos segédmunkatárs, HIT

    5. A tantárgy az alábbi témakörök ismeretére épít Boole algebra ismerete; egyszerű processzorok felépítésének, működésének megértése; assembly nyelvű programok olvasási szintű ismerete
    6. Előtanulmányi rend
    Kötelező:
    ((TárgyEredmény( "BMEVIMIAA03" , "aláírás" , _ ) = -1 ÉS

    (EgyenCsoportTagja("INFO - 2022 - MINTATANTERV HALLGATÓI") VAGY
    EgyenCsoportTagja("INFO - 2022ENG - MINTATANTERV HALLGATÓI") ))

    VAGY

    (TárgyTeljesítve("BMEVIMIAA01")
    VAGY TárgyTeljesítve("BMEVIMIAA02")
    VAGY TárgyTeljesítve("BMEVIMIA111") VAGY
    TárgyTeljesítve("BMEVIMIAA03") ))



    ÉS
    NEM ( TárgyTeljesítve("BMEVIHIAA02") )

    ÉS
    (Kepzes("5N-A8") VAGY
    Kepzes("5NAA8") )

    VAGY EgyenCsoportTagja("Kreditpótlás_2023/24/2")

    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:
    -
    7. A tantárgy célkitűzése

    A tárgy célja, hogy a hallgatók megismerjék legfőbb munkaeszközüknek, a számítógépeknek a felépítését, működését, tulajdonságait. A hardver jellegzetességeinek ismerete hozzájárul ahhoz, hogy a hallgatók képesek legyenek hatékony, a számítógép erőforrásait a lehető legjobban kihasználó szoftver fejlesztésére.

    A tantárgy tanulási eredményei
    -    Információfeldolgozási modellek, vezérlésáramlásos architektúrák, utasításkészletek - K2
    -    Perifériakezelési alapelvek, forgalomszabályozás, interrupt, DMA, összeköttetések - K2
    -    PCI, PCI Express és USB csatolófelületek - K2
    -    Háttértárak felépítése, működése, teljesítményelemzése - K3
    -    Memóriatechnológiák, DRAM alapú rendszerek felépítése, működése, teljesítményelemzése - K3
    -    Virtuális tárkezelés alapfogalmai, működése, alapvető adatstruktúrái, teljesítmény következmények  - K4
    -    Cache memória célja, szervezése, menedzsmentje - K4
    -    Lokalitástudatos programozási technikák - K4
    -    Pipeline utasításfeldolgozás, optimalizálás - K4
    -    Soron kívüli utasítás végrehajtás alapvető algoritmusai, regiszterátnevezés – K3
    -    Széles pipeline-ok, szuperskalár processzorok - K3
    -    Elágazásbecslés célja, algoritmusai, elágazásbecslő-tudatos programozási technikák – K3
    -    Párhuzamos feldolgozás formái, Flynn taxonómia - K2
    -    Adatpárhuzamosság, vektorprocesszorok, SIMD utasításkészletek - K3
    -    Multiprocesszoros rendszerek osztályozása, alapfogalmai - K2
    -    Osztott tárkezelés problémái, cache koherencia és memória konzisztencia – K3
     

    8. A tantárgy részletes tematikája

    Az előadások részletes tematikája
    Bevezető jellegű ismeretek (2 ea.). Információfeldolgozási modellek megismerése. Vezérlésáramlásos architektúrák: Neumann architektúra, Harvard architektúra, módosított Harvard architektúra. Utasításkészletek jellemzői, CISC-RISC stratégiák.

    Perifériakezelés (3 ea.). Dedikált I/O utasítások, és memóriára leképzett perifériakezelés. Forgalomszabályozás. Perifériák jelzéseinek feldolgozása: polling, interrupt, interrupt többprocesszoros környezetben, interrupt moderáció. A processzor tehermentesítése: DMA, I/O processzor. Összeköttetések: busz, pont-pont, soros, párhuzamos, időzítés, arbitráció. Egy-, több-buszos, ill. híd alapú rendszerek. PCI, PCI Express és USB csatolófelületek.

    Háttértárolók (1 ea.). Merevlemezek működése: szektor fogalma és részei, zóna rendszerű adattárolás. Az adatátviteli parancsok kiszolgálási idejének főbb összetevői. Parancsok sorbaállítása és soron kívüli ütemezése. SSD háttértárak működése:  Lapok, blokkok fogalma és szerepe. Az írás/olvasás megvalósítása és mellékhatásai. Az öregedés oka és jelentősége. Az SSD vezérlő feladatai.

    Memória (4 ea). Szinkron DRAM alapú memóriarendszerek: memóriavezérlő, modul, rank, bank fogalma és működése. DRAM parancsok és azok időzítése, parancsok sorok kívüli végrehajtása. Virtuális tárkezelés: címfordítás, TLB, laptábla implementációk, egyszintű és hierarchikus laptáblák. Cache memória: lokalitási elvek szerepe, cache szervezés, cache szervezés és a virtuális tárkezelés viszonya. Cache tartalom menedzsment: cache szemetelés megelőzése, idő előtti betöltés, blokk csere algoritmusok. Lokalitástudatos programozási technikák.

    Processzor (6 ea). Pipeline utasításfeldolgozás. Egymásrahatások fogalma és kezelése. Egyszerű 5 fokozatú pipeline implementációja. Kivételek, megszakítások kezelése, pontos kivételkezelés. Eltérő késleltetésű aritmetikai műveletek kezelése. Dinamikus ütemezés (soron kívüli utasítás-végrehajtás). A precedenciagráf fogalma, és az adatfolyam-elvű utasításütemezés. Az utasítástároló, a regiszter-átnevezés és a sorrendvisszaállító buffer szerepe és megvalósítása. A Tomasulo algoritmus. A pipeline szélesítése: szuperskalár, VLIW és EPIC architektúrák. Elágazásbecslés: jelentősége, ugrási feltétel kimenetelének becslése, ugrási cím becslése. Elágazásbecslés-tudatos programozás. Támadások a spekulatív végrehajtás ellen.

    Párhuzamos feldolgozás (4 ea.). Adatpárhuzamosság: vektorprocesszorok, SIMD utasításkészlet kiegészítések. Multiprocesszoros rendszerek: explicit párhuzamosság fogalma, több szálat kezelő processzorok, multiprocesszoros rendszerek osztályozása, összeköttetés hálózatok. Osztott tárkezelés: cache koherencia protokollok, memória konzisztencia problémák és megoldások.

    A gyakorlatok/laborok részletes tematikája
    A gyakorlatok:
    - Digitális technika alapok ismétlése egy egyszerű hardver-szoftver tervezési feladaton keresztül
    - Perifériakezelés: A CPU perifériakezelésre fordított relatív terhelésének kiszámítása polling és interrupt használata esetén
    - Háttértárak: HDD késleltetés és átviteli sebesség számítások, SSD írás menedzsment algoritmusok manuális végig követése
    - Memóriakezelés: DRAM parancsütemezés, parancskésleltetési idő és átviteli sebesség számítások, virtuális memóriakezelés példák TLB-vel és anélkül
    - Cache memória: Cache szervezések gyakorlása, egyszerű C programokra cache hibaarány-számolás és kódoptimalizálás
    - Pipeline ütemezés: Alacsony szintű programok ütemezése különféle utasítás pipeline-okra, optimális utasítássorrend meghatározása
    - Fejlett pipeline technikák: Függőségi analízis, álfüggőségek eliminálása regiszter átnevezéssel, elágazásbecslő működésének végig követése egyszerű C programrészletek segítségével

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Kéthetes ciklusokban heti 1, ill. heti 2 előadás, valamint kéthetente 1 gyakorlat.
    10. Követelmények Szorgalmi időszakban: Az aláírás megszerzésének feltétele a félévközi zárthelyi minimum 40%-os teljesítése, valamint részvétel a gyakorlatok min. 70%-án

    Vizsgaidőszakban: A tárgy teljesítésének feltétele az írásbeli (számítógépes) vizsga sikeres teljesítése. Az elégséges, közepes, jó és jeles érdemjegy ponthatára 40%, 55%, 70% és 85%. Sikeres vizsga esetén a zárthelyi dolgozat pontszámának 60% feletti része a vizsgapontszámhoz hozzáadódik.
    11. Pótlási lehetőségek A zárthelyi egyszer a szorgalmi időszakban, egyszer a pótlási időszakban pótolható.
    12. Konzultációs lehetőségek Egyéni időpontegyeztetés alapján
    13. Jegyzet, tankönyv, felhasználható irodalom Jegyzet: http://www.hit.bme.hu/~ghorvath/szgarch/book/szga.pdf (csak egyetemi hálózatról)
    Videók: publikusan elérhetők a videotóriumban - https://videotorium.hu/hu/channels/4634
    Online interaktív gyakorló felület: http://www.hit.bme.hu/~ghorvath/szgarch/gyakorlo/
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra28
    Felkészülés zárthelyire22
    Házi feladat elkészítése0
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés44
    Összesen150
    15. A tantárgy tematikáját kidolgozta Dr. Horváth Gábor, egyetemi tanár, HIT
    IMSc tematika és módszer Az IMSc többlet ismeretanyagok elsajátítása önállóan, írásos és video alapú segédanyagok segítségével történik, az alábbi témakörökben:
    -    Inverz laptáblák
    -    Címtér szeparáció
    -    Védelem
    -    A Scoreboard algoritmus
    -    Skálázható és hibatűrő rendszerek
    Az IMSc gyakorlatokon több fejtörést igénylő feladatok is szerepelnek.
    IMSc pontozás A számonkérések IMSc feladatsorral egészülnek ki, melyek megoldása legalább 70%-os eredménnyel záruló számonkérés esetén IMSc pontot eredményez. A félévközi zárthelyin 9, a vizsgán 16 IMSc pont szerezhető.