Central processing unit

A központi feldolgozó egység (CPU) minden számítógép fontos része. A CPU jeleket küld a számítógép többi részének vezérlésére, majdnem úgy, mint ahogyan az agy vezérli a testet.

A CPU egy elektronikus gép, amely a számítógépen végrehajtandó feladatok listája, az úgynevezett utasítások alapján dolgozik. Az utasítások listáját beolvassa, és az egyes utasításokat sorrendben lefuttatja (végrehajtja). A CPU által futtatható utasítások listája egy számítógépes program.

Az órajelet, vagyis a CPU belső alkatrészeinek sebességét hertzben (Hz) mérik. A modern processzorok gyakran olyan gyorsan futnak, hogy helyette a gigahertz (GHz) mértékegységet használják. Egy GHz 1 000 000 000 ciklus másodpercenként.

Az asztali (otthoni) számítógépekben használt CPU-k többsége az Intel vagy az Advanced Micro Devices (általában AMD) által gyártott mikroprocesszor. Néhány más CPU-t gyártó vállalat az ARM, az IBM és az AMD az ATI Technologies alatt, amely jelenleg vezető szerepet tölt be. A legtöbb CPU-jukat beágyazott rendszerekben használják, speciálisabb dolgokhoz, például mobiltelefonokban, autókban, játékkonzolokban vagy a hadseregben.

Pentium CPU egy számítógépbenZoom
Pentium CPU egy számítógépben

A CPU-k típusai

A 20. században a mérnökök számos különböző számítógép-architektúrát találtak fel. Manapság a legtöbb asztali számítógép 32 bites vagy 64 bites CPU-t használ. A 32 bites CPU utasításai jól kezelik a 32 bites méretű adatokat (a legtöbb utasítás 32 bites CPU-ban 32 bitben "gondolkodik"). Hasonlóképpen, a 64 bites CPU jól kezeli a 64 bites méretű adatokat (és gyakran jól kezeli a 32 bites adatokat is). A CPU által legjobban kezelt adatméretet gyakran a CPU szóméretének nevezik. Sok régi, a 70-es, 80-as évekből és a 90-es évek elejéről származó CPU (és sok modern beágyazott rendszer) 8 vagy 16 bites szómérettel rendelkezik. Amikor a CPU-kat a 20. század közepén feltalálták, sokféle szómérettel rendelkeztek. Egyeseknél az utasítások és az adatok szómérete különböző volt. A kevésbé népszerű szóméreteket később már nem használták.

A legtöbb CPU mikroprocesszor. Ez azt jelenti, hogy a CPU egyetlen chip. Egyes mikroprocesszorral ellátott chipek más alkatrészeket is tartalmaznak, és teljes egychipes "számítógépek". Ezt nevezik mikrokontrollernek.

Regiszterek

Amikor a CPU egy számítógépes programot futtat, valahol tárolnia kell azokat az adatokat, amelyekkel az utasítások dolgoznak (az adatokat, amelyeket olvasnak és írnak). Ezt a tárolóhelyet regiszternek nevezzük. A CPU általában sok regiszterrel rendelkezik. A regiszterekhez nagyon gyorsan kell hozzáférni (olvasni és írni). Ezért magának a CPU-chipnek a részét képezik.

Memória

Az összes adat regiszterekben való tárolása a legtöbb CPU-t túl bonyolulttá (és nagyon drágává) tenné. Ezért a regiszterek általában csak azokat az adatokat tárolják, amelyeken a CPU "éppen most" dolgozik. A program által használt többi adatot a RAM-ban (memóriában) tárolják. A mikrokontrollerek kivételével a RAM-ot általában a CPU-n kívül, külön chipeken tárolják.

Amikor a CPU adatokat akar olvasni vagy írni a RAM-ban, akkor kiad egy címet az adott adathoz. A RAM-ban minden egyes bájtnak van egy memóriacíme. A címek mérete gyakran megegyezik a szómérettel: Egy 32 bites CPU 32 bites címeket használ stb. A kisebb CPU-k, például a 8 bites CPU-k azonban gyakran a szóméretnél nagyobb címeket használnak. Ellenkező esetben a program maximális hossza túl rövid lenne.

Mivel a címek mérete korlátozott, a memória maximális mérete is korlátozott. A 32 bites processzorok általában legfeljebb 4 GB RAM-ot tudnak kezelni. Ennyi különböző bájtot lehet kiválasztani egy 32 bites cím segítségével (minden bitnek két értéke lehet - 0 és 1 -, és 232 bájt 4 GB-ot jelent). Egy 64 bites processzor akár 16 EB RAM-ot is képes lehet kezelni (16 exabájt, kb. 16 milliárd GB, azaz 16 milliárd milliárd milliárd bájt). Az operációs rendszer korlátozhatja ennél kisebb mennyiség használatára.

A RAM-ban tárolt információ általában illékony. Ez azt jelenti, hogy a számítógép kikapcsolásakor eltűnik.

Cache

A modern számítógépeken a RAM sokkal lassabb, mint a regiszterek, így a RAM elérése lassítja a programokat. A memóriaelérések felgyorsítása érdekében a RAM és a CPU fő részei közé gyakran egy gyorsabb memóriatípust, úgynevezett gyorsítótárat helyeznek. A gyorsítótár általában magának a CPU-chipnek a része, és bájtonként sokkal drágább, mint a RAM. A gyorsítótár ugyanazokat az adatokat tárolja, mint a RAM, de általában sokkal kisebb. Ezért előfordulhat, hogy a program által használt összes adat nem fér el a gyorsítótárban. A gyorsítótár igyekszik olyan adatokat tárolni, amelyeket valószínűleg sokat fognak használni. Ilyenek például a nemrég használt adatok és a memóriában a nemrég használt adatokhoz közeli adatok.

Gyakran van értelme a "gyorsítótárnak a gyorsítótárhoz", ahogyan a RAM-nak is van értelme a gyorsítótárhoz. A többszintű gyorsítótárban több gyorsítótár van, amelyeket L1 gyorsítótárnak, L2 gyorsítótárnak és így tovább neveznek. Az L1 gyorsítótár a leggyorsabb (és bájtonként a legdrágább) gyorsítótár, és a CPU-hoz "legközelebb" van. Az L2 gyorsítótár egy lépéssel arrébb van, és lassabb, mint az L1 gyorsítótár, stb. Az L1 gyorsítótár gyakran tekinthető az L2 gyorsítótár gyorsítótárának, stb.

Buszok

A számítógép-buszok a CPU által a RAM-mal és a számítógép más alkatrészeivel való kommunikációra használt vezetékek. Majdnem minden CPU rendelkezik legalább egy adatbusszal - az adatok olvasására és írására - és egy címbusszal - a címek kiadására. A CPU-n belüli egyéb buszok adatokat továbbítanak a CPU különböző részeihez.

Utasításkészletek

Az utasításkészlet (más néven ISA - Instruction Set Architecture) egy olyan nyelv, amelyet egy adott CPU közvetlenül megért. Ezeket a nyelveket gépi kódnak vagy binárisnak is nevezik. Megmondják, hogyan utasítjuk a CPU-t különböző dolgok elvégzésére, például adatok betöltésére a memóriából egy regiszterbe, vagy két regiszter értékeinek összeadására. Az utasításkészletben minden utasításnak van egy kódolása, ami azt jelenti, hogy az utasítás bitek sorozataként van leírva.

Az olyan programozási nyelveken, mint a C és a C++ írt programokat a CPU nem tudja közvetlenül futtatni. Le kell fordítani őket gépi kódra, mielőtt a CPU lefuttatná őket. A fordító egy olyan számítógépes program, amely ezt a fordítást végzi.

A gépi kód csak 0-k és 1-ek sorozata, ami megnehezíti az emberek számára az olvasást. Az olvashatóság érdekében a gépi kódú programokat általában assembly nyelven írják. Az assembly nyelv 0 és 1 helyett szöveget használ: Például az "LD A,0" parancsot írhatod, hogy a 0 értéket töltsd be az A regiszterbe. Az assembly nyelvet gépi kódra fordító programot asszemblernek nevezzük.

Funkcionalitás

Íme néhány alapvető dolog, amit egy CPU képes elvégezni:

  • Adatok olvasása a memóriából és adatok írása a memóriába.
  • Adj hozzá egy számot egy másik számhoz.
  • Tesztelje, hogy egy szám nagyobb-e egy másik számnál.
  • Egy szám áthelyezése egyik helyről a másikra (például egyik regiszterből a másikba, vagy egy regiszter és a memória között).
  • Ugrás az utasításlista egy másik helyére, de csak akkor, ha valamilyen teszt igaz (például csak akkor, ha az egyik szám nagyobb, mint a másik).

Még nagyon bonyolult programok is készíthetők sok ilyen egyszerű utasítás kombinálásával. Ez azért lehetséges, mert minden egyes utasítás végrehajtása nagyon rövid időt vesz igénybe. Sok CPU ma már több mint 1 milliárd (1 000 000 000 000) utasítást képes végrehajtani egyetlen másodperc alatt. Általánosságban elmondható, hogy minél többet tud egy CPU egy adott idő alatt elvégezni, annál gyorsabb. A processzor sebességének egyik mérési módja a MIPS (Million Instructions Per Second - millió utasítás másodpercenként). A flopok (lebegőpontos műveletek másodpercenként) és a CPU órajele (általában gigahertzben mérve) szintén alkalmasak annak mérésére, hogy egy processzor mennyi munkát képes elvégezni egy bizonyos idő alatt.

A CPU logikai kapukból épül fel; nincsenek mozgó alkatrészei. A számítógép CPU-ja elektronikusan kapcsolódik a számítógép más részeihez, például a videokártyához vagy a BIOS-hoz. Egy számítógépes program úgy tudja vezérelni ezeket a perifériákat, hogy számokat olvas vagy ír a számítógép memóriájának speciális helyeire.

Utasítási csővezetékek

A CPU által végrehajtott minden egyes utasítás általában több lépésben történik. Például az "INC A" utasítás (az A regiszterben tárolt érték eggyel történő növelése) futtatásának lépései egy egyszerű CPU-n a következők lehetnek:

  • Olvassa be az utasítást a memóriából,
  • dekódolja az utasítást (kitalálja, hogy mit csinál az utasítás), és
  • adjon hozzá egyet az A regiszterhez.

A CPU különböző részei különböző dolgokat végeznek. Gyakran lehetséges, hogy egyes lépéseket különböző utasításokból egyszerre futtassunk, ami gyorsabbá teszi a CPU-t. Például beolvashatunk egy utasítást a memóriából, miközben dekódolunk egy másik utasítást, mivel ezek a lépések különböző modulokat használnak. Ezt úgy lehet elképzelni, mintha egyszerre több utasítás lenne "a csővezetéken belül". A legjobb esetben az összes modul egyszerre dolgozik különböző utasításokon, de ez nem mindig lehetséges.

Memóriakezelő egységek (MMU-k) és virtuális memória

A modern CPU-k gyakran használnak memóriakezelő egységet (MMU). Az MMU egy olyan komponens, amely a CPU-tól érkező címeket (általában) különböző RAM-címekre fordítja. MMU használata esetén a programban használt címek (általában) nem a "valódi" címek, ahol az adatokat tárolják. Ezt nevezzük virtuális (a "valós" memória ellentéte) memóriának. Az alábbiakban felsorolunk néhány okot, amiért jó, ha van MMU:

  • Az MMU képes "elrejteni" más programok memóriáját egy program elől. Ez úgy történik, hogy a program futása közben semmilyen címet nem fordít le a "rejtett" címekre. Ez azért jó, mert így a programok nem tudják olvasni és módosítani más programok memóriáját, ami javítja a biztonságot és a stabilitást. (A programok nem "kémkedhetnek" egymás után, vagy nem "léphetnek egymás lábára".)
  • Sok MMU képes a memória egyes részeit nem írhatóvá, nem olvashatóvá vagy nem futtathatóvá tenni (ami azt jelenti, hogy a memória adott részében tárolt kód nem futtatható). Ez stabilitási és biztonsági okokból, valamint egyéb okokból is jó lehet.
  • Az MMU-k lehetővé teszik, hogy a különböző programok különböző "nézetekkel" rendelkezzenek a memóriáról. Ez számos különböző helyzetben hasznos. Például mindig lehetséges, hogy egy program "fő" kódja ugyanazon a (virtuális) címen legyen, anélkül, hogy más programokkal ütközne. Ez akkor is hasznos, ha sok különböző kódrészlet van (könyvtárakból), amelyeket a programok megosztanak egymással.
  • Az MMU-k lehetővé teszik, hogy a könyvtárak kódja minden egyes programfuttatáskor más-más címen jelenjen meg. Ez azért jó, mert ha nem tudjuk, hol vannak a dolgok a memóriában, akkor a hackerek számára gyakran nehezebbé válik, hogy a programokat rossz dolgokra késztessék. Ezt nevezik címtartomány randomizálásnak.
  • A fejlett programok és operációs rendszerek trükköket alkalmazhatnak az MMU-kkal, hogy elkerüljék az adatok másolását a memória különböző helyei között.

Több mag

A többmagos processzorok a 21. század elején váltak általánossá. Ez azt jelenti, hogy több processzort építettek ugyanarra a chipre, így egyszerre több utasítás futtatására is képesek. Egyes processzorok akár harminckét maggal is rendelkezhetnek, mint például az AMD Epyc 7601.

Gyártók

A következő vállalatok gyártanak számítógépes CPU-kat:

  • ARM
  • Intel
  • Advanced Micro Devices
  • MCST
  • SRISA
  • Sun Microsystems

További információk

Kérdések és válaszok

K: Mi az a CPU?


V: A CPU (központi feldolgozó egység) minden számítógép fontos része. Jeleket küld a számítógép többi részének vezérlésére, majdnem úgy, mint ahogyan az agy vezérli a testet. A CPU egy elektronikus gép, amely bizonyos feladatok elvégzésére szolgáló utasítások listája alapján dolgozik.

K: Hogyan működik a CPU?


V: A CPU beolvassa az utasítások listáját, és sorrendben lefuttatja (végrehajtja) az egyes utasításokat. A CPU által lefuttatható utasítások listája egy számítógépes program.

K: Miben mérik a CPU órajelét vagy sebességét?


V: A CPU belső részeinek órajelét vagy sebességét hertzben (Hz) mérik. A modern processzorok gyakran olyan gyorsan futnak, hogy helyette a gigahertz (GHz) mértékegységet használják - egy GHz 1 000 000 000 ciklus másodpercenként.

K: Kik azok a vállalatok, amelyek CPU-kat gyártanak?


V: Néhány vállalat, amely CPU-kat gyárt, az Intel, az Advanced Micro Devices (AMD), az ARM (amelyet nemrég vásárolt fel az Nvidia), az IBM és az AMD az ATI Technologies keretében, amely jelenleg piacvezető.

K: Hol használják a legtöbb CPU-t?


V: Az asztali számítógépekben használt CPU-k többsége az Intel vagy az AMD által gyártott mikroprocesszor, míg a legtöbbet beágyazott rendszerekben használják, amelyek speciálisabb dolgokban, például mobiltelefonokban, autókban, videojáték-konzolokban vagy katonai alkalmazásokban használatosak.

AlegsaOnline.com - 2020 / 2023 - License CC3