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: 2012. június 27.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Informatika BSc
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIHIA210   2/2/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Horváth Gábor, Hálózati Rendszerek és Szolgáltatások Tanszék
    A tantárgy tanszéki weboldala http://www.hit.bme.hu/~ghorvath/szgarch/
    4. A tantárgy előadója Dr.. Horváth Gábor
    5. A tantárgy az alábbi témakörök ismeretére épít Digitális technika és Programozás alapjai
    6. Előtanulmányi rend
    Kötelező:
    (TárgyEredmény( "BMEVIMIA111" , "aláírás" , _ ) = -1
    VAGY TárgyEredmény( "BMEVIMM1220" , "aláírás" , _ ) = -1
    VAGY Aláírás( ahol a TárgyKód = "BMEVIIIA108", ahol a Ciklus = tetszőleges)
    VAGY TárgyEredmény( "BMEVIFO2238" , "aláírás" , _ ) = -1
    VAGY
    Szakirány( ahol a SzakirányKód = "KIEGIBSC", ahol a Ciklus = "2007/08/1") )

    ÉS NEM ( TárgyEredmény( "BMEVIHIAA00" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIHIAA00", "FELVETEL", AktualisFelev()) > 0)

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

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:
    Kötelező:

    TárgyEredmény( "BMEVIMIA111" ,  "aláírás" , _ )  >0
    VAGY  TárgyEredmény( "BMEVIMM1220" ,  "aláírás" , _ )  >0
    VAGY   Aláírás( ahol a TárgyKód = "BMEVIIIA108", ahol a Ciklus = tetszőleges)
    VAGY  TárgyEredmény( "BMEVIFO2238" ,  "aláírás" , _ )  >0
     VAGY
     Szakirány( ahol a SzakirányKód = "KIEGIBSC", ahol a Ciklus = "2007/08/1")
    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.
    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:

    Programozás alapjai 1. kredit
    7. A tantárgy célkitűzése A számítógép-architektúrák alapfogalmainak, analízisének, alkalmazási és tervezési módszereinek olyan tárgyalása, mely az előismeretek felhasználásával kellő elvi alapot ad a további speciális ismeretbővítésre és az alapvető hardver és szoftver feladatok formális kezelésére és gyakorlati megvalósítására.
    8. A tantárgy részletes tematikája Előadások
    1. Információfeldolgozási modellek. A vezérlésáramlásos, az adatáramlásos és az igényvezérelt információfeldolgozási modell.
    2. A vezérlésáramlásos modell megvalósítása. 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.
    3. Perifériakezelés. Perifériakezelési módszerek: forgalomszabályozás, perifériák jelzéseinek feldolgozása, a processzor tehermentesítése. Busz alapú összeköttetések jellemzői: időzítés, arbitráció. Egy-, több-buszos, ill. híd alapú rendszerek.
    4. Tár technológiák. Memória technológiák: SRAM és DRAM összevetése. Aszinkron DRAM technológiák: FPM-, EDO-, BEDO-DRAM. Szinkron DRAM technológiák: SDR-, DDR-, DDR2-, DDR3-, GDDR-DRAM. Háttértárak: HDD, SSD.
    5. Memóriakezelés. Tárbővítés: tömbkapcsolás, indexelt leképzés. Virtuális tárkezelés: címfordítás, TLB szerepe, laptábla implementációk: egyszintű, hierarchikus, virtualizált és inverz laptáblák. Tárvédelem. Tárkezelés az x86, az x64, az ARM, a PowerPC és a SPARC architektúrákban.
    6. Cache memória. Lokalitási elvek szerepe. Cache szervezések: direkt leképzés, teljesen asszociatív és több utas asszociatív 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.
    7. Pipeline utasításfeldolgozás. Pipelinle elv. Egymásrahatások szerepe és feloldásuk. Egyszerű 5 fokozatú pipeline implementációja. Kivételek, megszakítások kezelése a pipeline-ban. Eltérő késleltetésű aritmetikai műveletek kezelése.
    8. Szuperskalár processzorok. In-order szuperskalár pipeline: nehézségek és skálázhatósági kérdések. Out-of-order utasításfeldolgozás: scoreboard, Tomasulo algoritmus (regiszer átnevezés, utasítástároló, sorrendvisszaállító buffer). Memória egyértelműsítés. Utasításfeldolgozás valós processzorokban: x86,  ARM, PowerPC pipeline-ok.
    9. VLIW/EPIC architektúrák. A statikus ütemezés elve. VLIW és EPIC architektúrák jellegzetességei. Hatékonyságot javító technikák: cikluskifejtés, szoftver pipeline. Predikátumok. Spekulatív betöltés.
    10. Elágazásbecslés. Ugrási feltétel kimenetelének becslése: egyszerű állapotgép alapú megoldások, korreláció figyelembe SIMD feldolgozás. Vektorprocesszorok: műveleti egységek és a memóriaelérés jellegzetes megoldásai.
    11. SIMD utasításkészlet kiegészítések.. Az SSE, az AVX, a NEON és az AltiVec SIMD utasításkészlet összehasonlítása. Tömbprocesszorok: klasszikus, szisztolikus és hullámfront tömbprocesszorok. Szisztolikus tömbprocesszorok tervezése. Tömbprocesszorok hibatűrése.
    12. Multiprocesszoros rendszerek. Explicit párhuzamosság fogalma. Több szálat kezelő processzorok. Multiprocesszoros rendszerek osztályozása (osztott memóriás, ill. üzenetalapú rendszerek). Összeköttetés hálózatok: topológiák, útvonalválasztás, skálázhatósági kérdések.
    13. Osztott tárkezelés. Cache koherencia protokollok: hallgatózás és könyvtár alapú megoldások. Memória konzisztencia problémák és megoldások. Szinkronizáció: kölcsönös kizárás, barrier fogalma, tranzakcionális memória.
    14. Bevezetés a kvantum számítástechnikába.

    Gyakorlatok
    1. Egyszerű perifériakezelés gyakorlása egy komplett tervezési példán keresztül 1: a hardver megtervezése.
    2. Egyszerű perifériakezelés gyakorlása egy komplett tervezési példán keresztül 2: a szoftver megtervezése.
    3. Fejlett perifériakezelés: a PCI és a PCI Express csatolófelületek
    4. Fejlett perifériakezelés: az USB csatolófelület
    5. Tárkezelés gyakorlat 1: Tárbővítés, virtuális tárkezelés és a cache memória ismeretek elmélyítése és gyakorlása numerikus példákon keresztül.
    6. Tárkezelés gyakorlat 2: Tárbővítés, virtuális tárkezelés és a cache memória ismeretek elmélyítése és gyakorlása numerikus példákon keresztül.
    7. Tárkezelés gyakorlat 3: Tárbővítés, virtuális tárkezelés és a cache memória ismeretek elmélyítése és gyakorlása numerikus példákon keresztül.
    8. Lokalitás-tudatos programozási technikák bemutatása.
    9. Pipeline gyakorlat 1: Egymásrahatások felismerésének, az utasítások ütemezésének, és optimális átrendezésének gyakorlása numerikus példákon keresztül.
    10. Pipeline gyakorlat 2: Sorrenden kívüli végrehajtás és a statikus ütemezés gyakorlása numerikus példákon keresztül.
    11. SIMD feldolgozás gyakorlat: vektorizálás, redukció bemutatása és gyakorlása egyszerű algoritmusokon. Az SSE utasításkészlet kiterjesztés megismerése, egyszerű felhasználása.
    12. Explicit párhuzamosság: néhány egyszerű, közismert algoritmus párhuzamosítása

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Heti 2 óra előadás, heti 2 óra gyakorlat.
    10. Követelmények 2 félévközi nagyzárthelyi "megfelelt" minősítéssel.
    11. Pótlási lehetőségek Szorgalmi időszakban 2 pótzárthelyi (mindegyik ZH-ra 1-1), pótlási időszakban 1 pót-pót ZH.
    12. Konzultációs lehetőségek Szorgalmi időszakban folyamatosan, vizsgaidőszakban vizsga előtti napon.
    13. Jegyzet, tankönyv, felhasználható irodalom Az előadások és gyakorlatok anyagát teljesen lefedő elektronikus anyag, gyakorló szoftverek és irodalmak letölthetők a tantárgy weboldaláról.
    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ákra14
    Felkészülés zárthelyire40
    Házi feladat elkészítése -
    Kijelölt írásos tananyag elsajátítása-
    Vizsgafelkészülés40
    Összesen 150
    15. A tantárgy tematikáját kidolgozta Dr. Horváth Gábor, Hálózati Rendszerek és Szolgáltatások Tanszék