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