Számítógép-architektúrák
VIHIAA03 | Mérnökinformatikus BSc | Kredit: 5
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
Horváth Gábor
címzetes egyetemi tanár
tárgyfelelős
A tárgy oktatói
1 fő
további közreműködő
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
BME-MIT