„Aritmetikai-logikai egység” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Luckas-bot (vitalap | szerkesztései)
a Bot: következő hozzáadása: vi:ALU
Nallimbot (vitalap | szerkesztései)
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

Az ALU egy tipikus jelölési módja: A & B az operandusok; R a kimenet; F a Vezérlő egység; bemenete; D a kimeneti státusz

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.

Egy egyszerű 2-bites ALU, ami a XOR, AND, OR, és az összeadás műveleteket tudja (a magyarázathoz kattints a képre)

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

  1. a b Stallings 19. oldal
  2. a b Stallings 290-291. oldal

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

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.

Külső hivatkozások

Egy komplex ALU szimulátor MATLABban