„Aritmetikai-logikai egység” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
a Bot: következő hozzáadása: vi:ALU |
a Bot: következő módosítása: ar:وحدة الحساب والمنطق |
||
90. sor: | 90. sor: | ||
[[en:Arithmetic logic unit]] |
[[en:Arithmetic logic unit]] |
||
[[ar:وحدة |
[[ar:وحدة الحساب والمنطق]] |
||
[[bg:ALU]] |
[[bg:ALU]] |
||
[[ca:Unitat aritmeticològica]] |
[[ca:Unitat aritmeticològica]] |
A lap 2010. október 23., 17:54-kori változata
|
Ezt a szócikket tartalmilag és formailag is át kellene dolgozni, hogy megfelelő minőségű legyen. További részleteket a cikk vitalapján találhatsz. Ha nincs indoklás a vitalapon, bátran távolítsd el a sablont! |
A számítástechnikában az aritmetikai-logikai egység (rövidítése ALU az angol Arithmetic Logic Unit alapján) aritmetikai és logikai műveleteket elvégző digitális áramkör. Alapvető eleme a számítógép központi vezérlőegységének. A processzorok, a CPU-k és a GPU-k a számítógép belsejében található, belülről nagyon erős és bonyolult ALU-k; egy egyszerű alkatrész is számos ALU-t tartalmazhat.
Neumann János alkotta meg az ALU fogalmát 1945-ben, amikor cikkében beszámolt új számítógépéről, az EDVAC-ról.
Az ALU szerepe egy tipikus Neumann-féle CPU belső szerkezetében
Egy tipikus Neumann-féle CPU belső szerkezetének részében az ALU saját maga végzi az összeadást, a kivonást és más egyszerű műveleteket az inputjain, így adva át az eredményt az output regiszternek. Ezt az output regisztert egy regiszterbe tudjuk besorolni. Szükség esetén ezt a regisztert később a memóriába át lehet írni.
Korai fejlődés
1946-ban Neumann János a kollégáival a Princeton Institute of Advanced Studies (IAS) számítógépének tervezésén dolgozott. Az IAS computer lett az összes későbbi számítógép prototípusa. Javaslatára áttekintették, hogy szerinte mire van szüksége a gépéhez, beleértve az ALU-t is. Neumann János az ALU-val kezdte, mert ez elengedhetetlen kelléke a számítógépnek, ugyanis ez végzi el az egyszerű matematikai utasításokat, beleértve az összeadást, szorzást, kivonást és osztást.[1] Ő hitt benne, hogy ettől „eredményes lesz a számítógép, ami talán megfékezi a speciális szerveket ezekhez az utasításokhoz”.[1]
Numerikus rendszerek
Az ALU-nak számos eljárást kell használnia ugyanazokra a számításokra, ahogy jó néhány digitális áramkörnek is. A modern processzorok egy számot általában binárisan, kettes komplemensként ábrázolják. A korai számítógépek a számrendszerek széles skáláját használták, beleértve az egyes komplemenst, az előjeles-nagyságot és néha a tízes rendszereket, tíz csővezetékkel számjegyenként.
Az ALU egy ezek közül a numerikus rendszerek közül, ám eltérő tervezete befolyásolta elterjedését és kedvezett a kettes komplemensnek, ezzel könnyebbé téve az ábrázolást az ALU-val történő összeadás és kivonás számolásánál.
Gyakorlati áttekintés
A legtöbb processzor utasításait egy vagy több ALU végzi. Az ALU betölti az adatokat a bemenő regiszterbe, végrehajtja a műveletet, és az eredményt eltárolja a kimenő regiszteren. A vezérlőegység mondja meg a ALU-nak, hogy, melyik utasításon hajtsa végre az adatot. Egy másik eljárás helyezi át az adatot ezek között a regiszterek és a memória között.[2]
Egyszerű utasítások
A legtöbb ALU a következő utasításokból áll:
1. Egész számú aritmetikai utasítások (összeadás, kivonás, és néha a szorzás és osztás, habár ezek sokkal költségesebbek)
2. Egyszerű logikai utasítások (ÉS, NEM, VAGY, KIZÁRÓ VAGY)
3. Bitmozgató utasítások (balra vagy jobbra mozgatnak, vagy elforgatnak szavakat speciális bitszámmal, előjellel, vagy előjel nélkül. Ezek a mozgatások képesek értelmezni a 2-vel való szorzást és osztást is.)
Összetett utasítások
A mérnökök úgy tervezték az ALU-t, hogy képes legyen bármilyen utasítást számolni, akármilyen bonyolult is az; a probléma az, hogy minél bonyolultabb utasítást képes egy ALU végrehajtani, annál drágább. Ezért a mérnökök mindig pontosan kiszámolják, hogy mennyi processzort (vagy más áramköröket) kell beszerezni az ALU-hoz, hogy az elég erőteljes legyen ahhoz, hogy a processzort gyorsabbá tegye, de még nem olyan összetett, hogy megfizethetetlen legyen. Képzeld csak el, mire van szükséged ahhoz, hogy kiszámold egy szám négyzetgyökét; egy elektromérnök az utasításhoz a következő lehetőséges eszközöket adná meg:
1.Egy rendkívül összetett ALU, ami egyetlen lépésben ki tudja számolni bármilyen szám négyzetgyökét. Ezt hívják egy órajeles számításnak
2.Tervezzünk egy nagyon összetett ALU-t, ami néhány lépésben ki tudja számolni bármilyen szám négyzetgyökét. De – és itt a trükk – a közbeeső eredményeket továbbadja a soros áramköröknek, amik sorba rendezik azokat, akár a gyárak futószalagai. Ez teszi az ALU-t alkalmassá arra, hogy elfogadjon új számokat számolásra, még mielőtt végzett volna az előző kiszámolásával. Ez teszi képessé az ALU-t olyan gyors termeléshozamra mint az Egyidejű ALU, habár az eredmények csak a kezdeti késés után jelentkeztek. Ezt nevezzük csővonalas számolásnak.
3.Tervezzünk olyan összetett ALU-t, ami néhány lépésben ki tudja számolni a négyzetgyököt. Ezt nevezzük interaktív számolásnak, és általában az irányítást az összetett vezérlőegység végzi beépített mikrokódokkkal.
4.Tervezzünk egy egyszerű ALU-t a processzorban, és adjuk meg a különálló szakosított és drága processzort, amit a tervező csak emellé tud behelyezni, és végrehajtja a fenti lehetőségek egyikét. Ezt nevezzük segédprocesszornak.
5.Mondjuk meg a programozóknak, hogy ne legyenek segédprocesszorok, és ne legyen versengés, így mindenki meg tudja írni a saját négyzetgyököt számoló algoritmusát. Ezt szoftver könyvtárakkal hajtjuk végre.
6.Versenyeztessük a létező segédprocesszorokat, így, akármikor a program próbálja végrehajtani a négyzetgyök számítást. Ellenőrizzen a processzor, ha az segédprocesszor és használjuk is valamelyiket közülük; ha nem az, szakítsa meg a program folyamatát és hívja segítségül az operációs rendszert, hogy hajtsa végre a négyzetgyökszámítást néhány szoftver-algoritmuson keresztül. Ezt nevezzük szoftver versengésnek.
A fent említettek között van a leggyorsabb és a legdrágább, a leglassúbb és a legolcsóbb. Ennek következtében, esetenként a legegyszerűbb számítógép is képes kiszámolni a legbonyolultabb formulát is, habár általában sokáig dolgozik, mivel lépésenként számolja a formulát. Az erős processzorok, mint az Intel Core és az AMD64, eszköze az első opció, az egyszerű utasításokhoz, a #2-es a nagyon összetett utasításokhoz, és a #3-t a rendkívül összetett utasításokhoz. Ez által lehetővé válik a nagyon összetett ALU-k építésének lehetősége ezekben a processzorokban.
Bemenetek és kimenetek
Az ALU bemenetei szükségesek az adatok működéséhez (amit operandusnak nevezünk) és a kódolásához. A vezérlőegység jelzi, hogy melyik utasítás következik. A kimenet a számolás eredménye. Néhány kialakításában az ALU generálja a bemeneteket vagy kimeneteket, elindítja feltételes kódolásában, vagy a státusz regiszterbe teszi. Ezeket a kódokat hibajelző esetekre használjuk, mint az elutasítás, túlcsordulás, nullával való osztás, stb.[2]
ALU-k vs. FPU-k
A Lebegőpontos Egység végrehajtja az aritmetikai utasításokat két érték között, ezért a számoknak lebegőpontos ábrázolást állítanak elő, ami sokkal bonyolultabb, mint a kettes komplemens ábrázolása egy tipikus ALU-ban. Azért csinálják ezeket a számításokat, mert az FPU-nak számos összetett, beépített áramköre van, beleértve héhány belső ALU-t is. Általában a mérnökök azt mondják, hogy az ALU az az áramkör, ami az egész számú utasításokat számolja (mint a kettes komplemens és a binárisan kódolt decimális), míg az áramkörök sokkal összetettebb alakúakat számolják (pl: lebegőpontos, komplex számok, stb.), s általában átveszik a sokkal jelesebb nevet.
Lásd még
Lábjegyzetek
Forrás
- Andrew S. Tanenbaum: Számítógép-architektúrák. Panem, 2001
- Eredeti címe: "Structured Computer Organisation"
- Fazlollah M. Reza: Bevezetés az információelméletbe, Bp., 1966.
További irodalom
- Martin F. Wolters: kulcs a számítógéphez. Bp., 1972 Fülöp Géza: Ember és információ, 1973 *Racskó Péter: Bevezetés a számítástechnikába. Bp., 1989.
Hivatkozások
- Hwang, Enoch (2006). Digital Logic and Microprocessor Design with VHDL [1] Thomson. ISBN 0-534-46593-5.
- Stallings, William (2006). Computer Organization & Architecture: Designing for Performance 7th ed [2]. Pearson Prentice Hall. ISBN 0-13-185644-8.
Fordítás
Ez a szócikk részben vagy egészben az Arithmetic logic unit című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.