Aritmeetika-loogikaplokk

Allikas: Vikipeedia
4-bitine ALU 74181 skeem

Aritmeetika-loogikaplokk (inglise arithmetic and logic unit, lühend ALU) – protsessori plokk, mis on mõeldud aritmeetika- ja loogikateheteks kahendarvudega. Kõik aritmeetikatehted sooritatakse arvude või nende täiendkoodide summeerimisega ja nihutamisega. Peamised loogikatehted on NING, VÕI, EI ja Mod2, mille täitmiseks on ALU-s vastavad loogikalülitused.

Erinevate tehete selekteerimiseks on aritmeetika-loogikaplokil kommutaator.

Ajalugu[muuda | redigeeri lähteteksti]

Texas Instruments SN74AS888 8-bitine ALU

ENIAC arvuti looja, John von Neumann, oli esimese ALU valmistaja.[viide?] 1945 avaldati esimesed uue arvutiga (EDVAC) seotud teadustööd. Oma töös nimetas von Neumann seadmeid, mis tema arvates pidid arvutis olema. Nende hulgas oli ka ALU. John von Neumann rõhutas, et ALU on arvutile vajalik, sest see garanteerib, et arvuti on võimeline teostama põhilisi matemaatilisi tehteid (liitmine, lahutamine, korrutamine, jagamine).

Korraldamine ja tööpõhimõte[muuda | redigeeri lähteteksti]

ALU koosneb summaatorist, registritest, mis säilitavad informatsiooni operatsioonide käigus ning moodustavad arvutuste tulemusi, ja loogilistest skeemidest, mis vastutavad vajaliku informatsiooni muutmise eest.

Sõltuvalt ülesannetest võib aritmeetika- ja loogikaseadmed jagada kaheks:

  1. mikroprogramm (juhtimise seade), mis koostab mikrokäskude jada
  2. operatsiooniseade (ALU), kus realiseeritakse antud mikrokäskude jada

Registrite funktsioonid, mis kuuluvad ALU koostisesse

Osa operatsioonide registritest on tarkvaraliselt kättesaadav, st. neid saab kasutada käskudes operandidena. Nende hulka kuuluvad:

  1. summaator
  2. indeksiregistrid
  3. mõned lisaregistrid

Ülejäänud registrid ei ole tarkvaraliselt kättesaadavad, neid ei saa programmis suunata. Operatsiooniseadmeid saab jaotada sõltuvalt töödeldavast informatsioonist, informatsiooni töötlemise viisist ja loogilisest struktuurist.

ALU loogilise struktuuri keerukust iseloomustab teatud määral üksteisest erinevate mikrooperatsioonide hulk, mis on vajalik ülesannete kogumi täitmiseks ALUs. Iga registri alguses on kogutud vastavad loogilised skeemid, mis tagavad seosed registrite vahel ja võimaldavad rakendada etteantud mikrokäske.

Sõnadega teostatava operatsiooni täitmine on teatud mikrokäskude jada, mis vastutavad ALU sõnade edasiandmise ja muutmise eest. Mikrokäskude täitmise järjekord määratakse operatsiooni täitmise algoritmi teel. Järelikult sõltuvad ALU registrite ja funktsioonide (mida peavad täitma registrid) omavahelised seosed peamiselt operatsiooni täitmise metoodikast: aritmeetiline, loogiline või eriaritmeetiline.

ALU operatsioonide loetelu sõltub arvuti eesmärkidest ja funktsioonidest, mis täidab ALU teiste seadmete funktsioneerimisel. Kuna ALU operatsioonid on mikrooperatsioonide kogumid, peab ALU koosnema elementidest, mis realiseerivad neid mikrooperatsioone.

Seega määrab ALU struktuuri mikrooperatsioonide kogum, mis on vajalik aritmeetiliste, loogiliste ja erioperatsioonide täitmiseks. ALU ülesanne on tegelikult määrata selline mikrooperatsioonide kogum, mis võimaldaks koostada mikroprogrammi iga ettenähtud operatsiooni jaoks. Sellist kogumit on lihtne saada. Et sellist skeemi saada tuleb ALU aritmeetilise ja loogilise operatsiooni algoritm valida minimaalse mikrooperatsioonide hulgatingimuse põhimõttel. Sellisel juhul tuleb arvestada antud ALU kiiruse tagamise nõudlustega: liiga piiratud mikrooperatsioonide hulga tõttu võivad mõned operatsioonid tekitada väga pikad mikroprogrammid, mis suurendavad antud operatsioonide täitmise aega.

ALU operatsioonid[muuda | redigeeri lähteteksti]

ALU operatsioonide täitmise saab jaotada järgmisteks rühmadeks:

  1. kahendsüsteemi aritmeetikaoperatsioonid täisarvude jaoks;
  2. kahendsüsteemi (või kuueteistkümnendsüsteemi) aritmeetikaoperatsioonid ujukomaarvude jaoks;
  3. kümnendsüsteemi aritmeetikaoperatsioonid;
  4. indeks aritmeetika operatsioonid (käsu aadresside modifitseerimise korral);
  5. eriaritmeetika operatsioonid;
  6. loogilised operatsioonid;
  7. operatsioonid tähtnumbriliste väljadega

Tavalised ALU funktsioonid

R = X + Y Х ja Y liitmine
R = X + Y + Cl Х ja Y ülekandega liitmine
R = X - Y X lahutada Y
R = X - Y - Cl - 1 X lahutada laenuga Y
R = - X Х vastandarv
R = X + 1 X juurdekasv
R = X - 1 X aland
R = PASS Х tulemus võrdub operandiga Х
R = O (PASS 0) tulemuse kustutamine
R = ABS Х tulemus võrdub Х absoluutväärtusega
R = X AND Y loogiline ja (AND) Х ja Y vahel
R = X OR Y loogiline või (OR) Х ja Y vahel
R = X XOR Y välistav loogiline või (XOR) Х ja Y vahel
R = NOT Х loogiline eitus Х-st

Kaasaegsed üldotstarbelised arvutid realiseerivad tavaliselt kõiki ülaltoodud operatsioonitüüpe, aga väiksed ja mikroarvutid, mikroprotsessorid ja spetsiaalsed arvutid tihti ei oma ujukomaplokki, samuti kümnendsüsteemi aritmeetikat ja tähtnumbrilisi operatsioone. Sellisel juhul viiakse need operatsioonid läbi spetsiaalse alamprogrammidega. Aritmeetiliste operatsioonide alla kuuluvad liitmine, lahutamine, moodulite lahutamine („lühikesed operatsioonid“), korrutamine ja jagamine („pikad operatsioonid“). Loogiliste operatsioonide grupi moodustavad disjunktsiooni operatsioonid (loogiline VÕI) ja konjunktsioon (loogiline JA) kahendsüsteemisõnadega. Spetsiaalsete aritmeetiliste operatsioonide hulka kuuluvad normaliseerimine, aritmeetiline nihutamine (nihutatakse ainult numbrilised järgud, märgiline järk jääb kohale), loogiline nihutamine (märgiline järk nihutab koos numbriliste järguga). Ulatuslik on ka tähtnumbrilise informatsiooni töötlemise operatsioonide grupp.

ALU liigitus[muuda | redigeeri lähteteksti]

ALU operandidega toimetamine jaguneb jada- ja paraleelmeetodiks. Jada-ALU operandid esitatakse jadakoodides, jaoperatsioonid sooritatakse järjestikku nende jadamisi eraldi järkude ajal. Paralleelsed ALU operandid esitatakse paralleelkoodidega ja operatsioonid sooritatakse parallelselt kõikide operantide osade ajal.

ALU numbri esitamise meetodid eristatakse:

  1. täisarvu jaoks
  2. ujukomaarvu jaoks
  3. kümnendsüsteemi arvu jaoks

Sõltuvalt elementidest ja sõlmede kasutamisest jagatakse ALUd plokilisteks ja multifunktsionaalseteks.

Plokilises ALUs sooritatakse operatsioonid täisarvude ja ujukomaarvude vahel, kümnendsüsteemi numbrite ja tähtnumbriliste väljadega sooritatakse operatsioonid eriplokkides. Sel viisil suureneb töökiirus, sest plokid võivad teha tööd paralleelselt, aga tunduvalt suurenevad ka seadmekulud. Operatsioonid multifunktsionaalses ALUs kõikide numbrite esitamise vormide jaoks sooritatakse kasutades samu skeeme, mis vajadusel kommuteeritakse seoses nõudud töörežiimiga.

Oma funktsioonide poolest on ALU operatsiooniplokk, mis teostab mikrooperatsioone ja kooskõlastab teiste seadmetega (näiteks mälu) operandide vastuvõtu, nende muutumise ja tulemuste väljastamise. Aritmeetika-loogilist seadet juhitakse juhtplokiga, mis genereerib juhtsignaale, mis omakorda algatavad kindla mikrooperatsioonide sooritamise ALUs. Juhtploki genereeritud signaalide järgnevus määratakse operatsiooni koodiga ja muude signaalidega.

Kirjandus[muuda | redigeeri lähteteksti]