===== 1. Bevezetés és alapfogalmak ===== === 1.1 Adat és információ === * **Adat:** egy jelenség rögzített leírása, például szám, szöveg, kép vagy mérési érték. * Példa: egy szenzor 22,5 °C hőmérsékletet mér. * **Információ:** az adatok értelmezésével nyert, döntést segítő ismeret. * Példa: a 95 °C-os mérés alapján a gép túlmelegedett. * **Bit:** két állapotot, általában 0-t és 1-et megkülönböztető információegység. Claude Shannon 1948-ban megjelent információelmélete matematikai kapcsolatot teremtett az információ és a bizonytalanság között. === 1.2 Analóg és digitális jelek === * **Analóg jel:** időben és értékben folytonosan változhat, például egy mikrofon feszültségjele. * **Digitális jel:** meghatározott, diszkrét értékeket vesz fel. A számítógépek az adatokat binárisan ábrázolják. A valós mérési jeleket az analóg–digitális átalakító (A/D konverter) teszi feldolgozhatóvá. A digitális ábrázolás előnye a megbízható tárolás, másolás és feldolgozás, de a mintavételezés és a kvantálás miatt közelítést tartalmaz. Méréskor két jellemző különösen fontos: * **mintavételi frekvencia:** másodpercenként hány minta készül. Ideális esetben legalább kétszer nagyobbnak kell lennie a mérendő jel legnagyobb frekvenciájánál; * **felbontás:** hány bit ír le egy mintát. Egy 12 bites átalakító 212 = 4096 különböző szintet tud megkülönböztetni. Ipari példa: egy rezgésdiagnosztikai rendszerben a túl alacsony mintavételi frekvencia elfedheti a csapágyhibára utaló nagyfrekvenciás rezgéseket. A mintavétel előtt ezért analóg aluláteresztő, úgynevezett anti-aliasing szűrőt is alkalmaznak. flowchart LR J[Analóg jel] --> AD[A/D átalakító] AD --> D[Digitális adat] D --> CPU[Feldolgozás] === 1.3 A tárolt program elve === A Neumann-architektúra legfontosabb jellemzői: * a programutasítások és az adatok a memóriában találhatók; * a CPU beolvassa, értelmezi és végrehajtja az utasításokat; * az adatokat és az utasításokat binárisan ábrázolja; * a CPU, a memória és a be-/kiviteli egységek együtt alkotják a rendszert. Az eredeti modell alapvetően egymás után hajtja végre az utasításokat. A modern processzorok ezt többek között futószalagos, többmagos és párhuzamos végrehajtással gyorsítják. === 1.4 Turing-gép === A Turing-gép az algoritmus-végrehajtás elméleti modellje. Fő elemei a cellákra osztott szalag, az olvasó-író fej, az állapotok és az átmeneti szabályok. Nem egy konkrét számítógép felépítését írja le, hanem azt segít meghatározni, hogy egy feladat algoritmikusan kiszámítható-e. https://www.youtube.com/watch?v=gJQTFhkhwPA Mérnöki példa: egy szenzor 0,01 mm eltérést mér. A vezérlő ezt összehasonlítja a 0,005 mm-es tűréssel, majd szükség esetén leállítja a gépet. A mérési érték adat; a határérték túllépésének felismerése már döntést támogató információ. ===== 2. A számítógép fő hardverelemei ===== A hardver a számítógép fizikai részegységeinek összessége. Feladata az adatok bevitele, feldolgozása, tárolása és továbbítása. === 2.1 Központi feldolgozó egység (CPU) === A CPU hajtja végre a program utasításait. Fontos részei: * **vezérlőegység:** irányítja az utasítások végrehajtását; * **aritmetikai-logikai egység (ALU):** számítási és logikai műveleteket végez; * **regiszterek:** a végrehajtás során használt, nagyon gyors és kis tárolók; * **gyorsítótárak (cache):** csökkentik a lassabb memória elérésének gyakoriságát. A teljesítményt nem önmagában az órajel határozza meg. Számít a mikroarchitektúra, a magok száma, a gyorsítótár, a memória-sávszélesség és a futtatott program párhuzamosíthatósága is. * Az **órajel** azt mutatja meg, hogy a processzor másodpercenként hány működési ciklust végez. Azonos órajelű processzorok teljesítménye eltérhet. * A **magok száma** akkor jelent előnyt, ha a feladat több részre bontható. * A **fogyasztási és hőmérsékleti korlátok** tartós terhelésnél csökkenthetik az elérhető órajelet. Mérnöki választásnál nem mindig a legnagyobb számítási teljesítmény a döntő. Egy gépvezérlőnél a kiszámítható válaszidő, egy mobil mérőműszernél az energiafogyasztás, egy CAD-munkaállomásnál pedig az egy- és többmagos teljesítmény egyaránt fontos lehet. === 2.2 Alaplap és összeköttetések === Az alaplap kapcsolja össze a CPU-t, a memóriát, a háttértárakat és a perifériákat. A kommunikációhoz különböző összeköttetések tartoznak: * **adatvonalak:** adatokat továbbítanak; * **címzési információk:** kijelölik az elérni kívánt memória- vagy eszközterületet; * **vezérlőjelek:** például olvasási, írási és megszakítási műveleteket jeleznek. Modern belső összeköttetés például a **PCI Express**. Az **NVMe** a PCIe-alapú SSD-khez használt kommunikációs protokoll. Az összeköttetések két eltérő jellemzője a **sávszélesség** és a **késleltetés**. A sávszélesség az időegység alatt átvihető adatmennyiséget, a késleltetés egy művelet megkezdéséhez vagy válaszához szükséges időt jelenti. Nagy felbontású kameránál a sávszélesség, gyors szabályozási körnél gyakran a kis és kiszámítható késleltetés a fontosabb. === 2.3 System-on-Chip (SoC) === Az SoC több funkciót integrál egyetlen lapkára, például CPU-magokat, GPU-t, memóriavezérlőt és kommunikációs vezérlőket. Mobiltelefonokban, beágyazott eszközökben és egykártyás számítógépekben gyakori. A Raspberry Pi tipikus egykártyás számítógép. SoC-t, RAM-ot, USB-, HDMI- és hálózati csatlakozást, valamint szenzorok és aktuátorok illesztésére használható GPIO-t tartalmaz. flowchart TD CPU[CPU] <--> MEM[Memória] CPU <--> IO[Be- és kiviteli egységek] CPU <--> STORE[Háttértár] ===== 3. Számítógépkategóriák és architektúrák ===== === 3.1 Számítógépkategóriák === * **Mikrokontroller:** vezérlési feladatra készült, kis fogyasztású eszköz, beépített memóriával és perifériákkal. * **Személyi számítógép:** általános célú feladatokra és mérnöki szoftverek futtatására használható. * **Munkaállomás:** nagy teljesítményű számítógép CAD-, képfeldolgozási vagy szimulációs feladatokra. * **Szerver:** hálózati szolgáltatásokat és több felhasználó vagy alkalmazás adatfeldolgozását végzi. * **Szuperszámítógép:** nagyméretű, erősen párhuzamos számításokat futtat, például időjárás-előrejelzést vagy mérnöki szimulációt. Ezek nem egyszerűen teljesítmény szerinti fokozatok: eltérő célra tervezett rendszerek. Egy szerver például nem feltétlenül gyorsabb minden feladatban egy munkaállomásnál. === 3.2 Utasításkészlet-architektúrák === Az utasításkészlet-architektúra (ISA) meghatározza, milyen gépi utasításokat ismer a processzor. * **x86-64:** PC-kben, munkaállomásokban és szerverekben elterjedt. * **ARM:** mobil, beágyazott és egyre több asztali, illetve szerverrendszerben használják; gyakori előnye a kedvező energiahatékonyság. * **RISC-V:** nyílt szabványú ISA, amely oktatási, kutatási és ipari célokra egyaránt használható. Az ISA nem azonos a konkrét processzor belső felépítésével, azaz a mikroarchitektúrával. A **SoC** pedig integrációs megoldás, nem az x86, az ARM vagy a RISC-V melletti negyedik ISA. Ipari példa: egy tervezőirodai munkaállomás lehet x86-64 alapú, miközben egy robotba épített vezérlő ARM processzort, egy egyedi érzékelőegység pedig RISC-V mikrokontrollert használ. A választásnál a szükséges szoftverek, a fogyasztás, a valós idejű igények, az ár és a hosszú távú beszerezhetőség együtt számít. ===== 4. Perifériák és interfészek ===== A perifériák biztosítják a kapcsolatot a számítógép és a környezete között. Az interfész az összekapcsolás fizikai és kommunikációs szabályait jelenti. === 4.1 Perifériák feladat szerint === * **Bemeneti eszközök:** billentyűzet, egér, kamera, mikrofon, vonalkódolvasó és szenzor. * **Kimeneti eszközök:** monitor, projektor, hangszóró, nyomtató, 3D nyomtató és aktuátor. * **Kétirányú eszközök:** érintőképernyő, hálózati adapter és külső adattároló. === 4.2 Interfészek felhasználási terület szerint === * **Általános perifériák:** USB, USB-C. * **Kijelző és hang:** HDMI, DisplayPort. * **Nagy sebességű külső kapcsolat:** USB4, Thunderbolt. * **Hálózat:** Ethernet, Wi-Fi, Bluetooth. * **Beágyazott és ipari kommunikáció:** GPIO, UART, I²C, SPI, CAN, RS-485 és ipari Ethernet. Az USB-C a csatlakozó fizikai kialakítását jelöli; az átvitel sebességét és a támogatott funkciókat a használt USB-verzió és üzemmód határozza meg. Az **interfész** és a **kommunikációs protokoll** nem ugyanaz. Az RS-485 például az elektromos jelátvitelt határozza meg, míg felette Modbus RTU protokoll is használható. Az Ethernet szintén több ipari protokoll, például PROFINET, EtherNet/IP vagy Modbus TCP alapja lehet. ^ Megoldás ^ Jellemző használat ^ Fontos tulajdonság ^ | I²C, SPI | Áramköri lapon belüli szenzorok | Rövid távolság, kis költség | | CAN | Járművek, gépek, elosztott vezérlők | Zavartűrés, prioritásos üzenetek | | RS-485 | Ipari műszerek, több résztvevős hálózat | Hosszabb kábel, differenciális jelátvitel | | Ipari Ethernet | PLC-k, hajtások, robotcellák | Nagyobb sebesség, hálózati integráció | flowchart LR S[Szenzorok és bemenetek] --> C[Számítógép vagy vezérlő] C --> A[Kijelzők és aktuátorok] C <--> N[Hálózat és adattárolók] ===== 5. Memória és adattárolás ===== === 5.1 Memóriahierarchia === A tárolók között sebesség–kapacitás–költség kompromisszum van. A CPU-hoz közelebbi szintek általában gyorsabbak és kisebbek. * **Regiszterek:** a CPU közvetlen munkaterülete. * **Cache (L1, L2, L3):** a gyakran használt adatok gyorsítótára. * **RAM:** a futó programok és adataik átmeneti tárolója; kikapcsoláskor tartalma elvész. * **SSD vagy HDD:** nagy kapacitású, tartós adattárolás. flowchart LR R[Regiszter] --> C[Cache] --> RAM[RAM] --> SSD[SSD] --> HDD[HDD] Balról jobbra általában nő a kapacitás és a hozzáférési idő, miközben csökken az egységnyi tárolás költsége. A következő értékek tájékoztató nagyságrendek; processzorgenerációtól és mérési módszertől jelentősen függhetnek. ^ Szint ^ Tipikus kapacitás ^ Közelítő hozzáférési idő ^ Szerep ^ | Regiszter | néhány száz bájt/mag nagyságrend | közvetlenül az utasítás használja | az éppen feldolgozott értékek | | L1 cache | 32–128 KiB/mag | körülbelül 3–5 CPU-ciklus, gyakran 1–2 ns | a leggyakrabban használt utasítások és adatok | | L2 cache | 256 KiB–2 MiB/mag | körülbelül 10–20 ciklus, néhány ns | nagyobb, de lassabb magközeli gyorsítótár | | L3 cache | néhány MiB–több tíz MiB, gyakran megosztott | körülbelül 30–80 ciklus, 10–30 ns | a magok által közösen használt adatok | | RAM | néhány GiB–több száz GiB | körülbelül 50–100 ns | futó programok | | NVMe SSD | több száz GiB–több TiB | jellemzően több tíz–száz µs | tartós, nagy sebességű tárolás | | HDD | több TiB | jellemzően 5–15 ms | olcsó, nagy kapacitású tárolás | Egy 3 GHz-es processzor egy ciklusa körülbelül 0,33 ns. Így a RAM-ból érkező adatra várás alatt a CPU akár több száz ciklust is elveszíthet. A cache ezt a különbséget próbálja áthidalni. * **Cache-találat (hit):** a keresett adat megtalálható a cache-ben. * **Cache-hiba (miss):** az adatot egy lassabb szintről kell betölteni. * **Időbeli lokalitás:** a nemrég használt adatra valószínűleg hamarosan ismét szükség lesz. * **Térbeli lokalitás:** egy adat használata után gyakran a mellette lévő adatok következnek. Ipari példa: képfeldolgozásnál egy kamera képének sorfolytonos feldolgozása jobban kihasználhatja a cache-t, mint a képpontok véletlenszerű elérése. Nagyméretű FEM-modellnél pedig előfordulhat, hogy nem a CPU számítási képessége, hanem a RAM sávszélessége korlátozza a sebességet. === 5.2 RAM és háttértárak === * **DRAM:** a főmemória leggyakoribb technológiája; rendszeres frissítést igényel. * **SRAM:** gyorsabb és drágább; elsősorban gyorsítótárakban használják. * **DDR4, DDR5:** a DRAM szabványainak különböző generációi. * **HDD:** mágneses, nagy kapacitású és olcsó, de mechanikus működése miatt lassabb. * **SSD:** flashmemóriát használ, nincs mozgó alkatrésze. * **NVMe SSD:** PCIe-kapcsolaton kommunikáló, kis késleltetésű SSD. * **Pendrive és memóriakártya:** hordozható flashalapú tárolók. === 5.3 Virtuális memória === Az operációs rendszer virtuális címtartományt biztosít a folyamatoknak, és szükség esetén a háttértárat is bevonhatja a memóriakezelésbe. Ez nem egyszerűen „RAM-bővítés”: többek között elkülöníti a folyamatokat és lehetővé teszi, hogy a programok a fizikai RAM-nál nagyobb címtartományt használjanak. A háttértárra történő lapozás azonban nagyságrendekkel lassabb a RAM elérésénél. Mérnöki szimulációnál a RAM kapacitása korlátozhatja a modell méretét, míg az SSD sebessége a nagy adathalmazok beolvasását és mentését befolyásolja. Ipari adatgyűjtő rendszernél nemcsak a tároló kapacitását kell méretezni, hanem a folyamatos írási sebességet, az adatmegőrzési időt, a meghibásodás hatását és a mentési eljárást is. ===== 6. Párhuzamos feldolgozás és gyorsítók ===== A teljesítmény növelésének fontos eszköze, hogy több művelet részben vagy teljesen egy időben fusson. === 6.1 Párhuzamosság a CPU-ban === * **Futószalag (pipeline):** az utasítás-végrehajtás lépései átfedésben működnek. * **SIMD:** egy utasítás több adatelemen hajt végre azonos műveletet. * **Többmagos feldolgozás:** több processzormag külön végrehajtási szálakon dolgozhat. * **MIMD:** különböző utasításfolyamok különböző adatokon futnak; többmagos és többprocesszoros rendszerekre jellemző. A gyorsulás mértékét korlátozza, hogy a feladat mekkora része párhuzamosítható, továbbá az adatmozgatás és a szálak összehangolásának költsége. === 6.2 Speciális gyorsítók === * **GPU:** sok hasonló művelet párhuzamos végrehajtására alkalmas; grafika, gépi tanulás, képfeldolgozás, FEM és CFD gyorsítására használható. * **FPGA:** újrakonfigurálható logikai áramkör; kis késleltetésű, testreszabott és valós idejű feldolgozásra alkalmas. * **TPU és NPU:** neurális hálók műveleteire optimalizált gyorsítók. flowchart TD FEL[Számítási feladat] --> CPU[CPU: általános vezérlés] FEL --> GPU[GPU: tömeges párhuzamosság] FEL --> FPGA[FPGA: testreszabott adatút] FEL --> NPU[NPU/TPU: neurális hálók] Nem minden program gyorsul GPU-n vagy más gyorsítón: a megfelelő párhuzamosság mellett az adatátvitel költségét is figyelembe kell venni. Mérnöki példák: * **CPU:** vezérlési logika, operációs rendszer, változatos számítási lépések; * **GPU:** képfeldolgozás, neurális háló, nagyszámú hasonló FEM- vagy CFD-művelet; * **FPGA:** nagy sebességű kameraadatok előfeldolgozása, precíz időzítésű mérés és motorvezérlés; * **NPU:** helyi hibafelismerés intelligens kamerában vagy edge eszközben. Egy hibrid rendszerben ezek együtt is dolgozhatnak: a CPU szervezi a folyamatot, a GPU vagy az FPGA elvégzi a jól párhuzamosítható részt, a CPU pedig feldolgozza az eredményt. ===== 7. Ipari és mérnöki számítógépes rendszerek ===== === 7.1 Beágyazott rendszerek === A beágyazott rendszer egy nagyobb berendezés meghatározott funkcióját végző számítógép. Gyakran korlátozott memóriával és fogyasztással, valamint valós idejű követelményekkel működik. * **Mikrokontrollerek**, például az ESP32: szenzoradatok feldolgozása, kommunikáció és aktuátorvezérlés. * **Egykártyás számítógépek**, például a Raspberry Pi: összetettebb operációs rendszert és alkalmazásokat is futtathatnak. Az Arduino elsősorban fejlesztőplatform és ökoszisztéma; nem egyetlen mikrokontroller-típus. === 7.2 PLC és ipari vezérlés === A **PLC** ipari gépek és folyamatok megbízható vezérlésére készült számítógép. Ipari I/O-modulokhoz kapcsolódik, ciklikusan hajtja végre a vezérlőprogramot, és folyamatos üzemre tervezték. Gyártósorok, robotcellák és szállítórendszerek vezérlésében gyakori. A PLC tipikus működési ciklusa: bemenetek beolvasása → vezérlőprogram végrehajtása → kimenetek frissítése → diagnosztika és kommunikáció. A ciklusidőnek elég rövidnek és kiszámíthatónak kell lennie a vezérelt folyamathoz. Egy gyors hajtásszabályozás és egy tartály lassú szintszabályozása ezért eltérő hardvert és időzítést igényelhet. flowchart LR S[Szenzorok] --> PLC[PLC vagy beágyazott vezérlő] PLC --> A[Aktuátorok] PLC <--> HMI[HMI] PLC <--> NET[Ipari hálózat] === 7.3 IoT és edge computing === Az **IoT** hálózatba kapcsolt fizikai eszközökből áll, amelyek adatot gyűjtenek, továbbítanak vagy beavatkozást végeznek. **Edge computing** esetén az adatok egy részét a szenzor vagy a gép közelében dolgozzák fel. Ez csökkentheti a késleltetést és a hálózati terhelést, valamint internetkapcsolat nélkül is lehetővé tehet bizonyos helyi funkciókat. Ipari példák: állapotfelügyelet, prediktív karbantartás, energiafigyelés és minőség-ellenőrzés. Egy rezgésérzékelő edge eszköze például helyben kiszámíthatja a jellemző frekvenciákat, és a teljes nagysebességű jelfolyam helyett csak a diagnosztikai eredményt küldi tovább. === 7.4 Nagy teljesítményű számítástechnika (HPC) === A HPC sok processzort, gyorsítót és számítási csomópontot kapcsol össze nagy számításigényű feladatokhoz. Tipikus alkalmazás a végeselemes analízis (FEM), az áramlástani szimuláció (CFD), az időjárás-modellezés és a molekuláris dinamika. HPC-rendszernél a processzorok száma mellett a memória mérete és sávszélessége, a csomópontok közötti hálózat, a gyorsítók, valamint az adattárolás sebessége is meghatározó. Egy túl nagy FEM-modell például már nem fér el egy munkaállomás memóriájában, ezért több csomópont között kell felosztani. A megfelelő rendszer kiválasztását mindig a feladat határozza meg: egyszerű vezérléshez mikrokontroller vagy PLC, helyi adatfeldolgozáshoz edge eszköz, CAD-hez munkaállomás, nagyméretű szimulációhoz pedig többmagos, GPU-s vagy HPC-rendszer lehet célszerű.