Unitate aritmetică-logică
Acest articol sau această secțiune are bibliografia incompletă sau inexistentă. Puteți contribui prin adăugarea de referințe în vederea susținerii bibliografice a afirmațiilor pe care le conține. |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/ALU_block.gif/350px-ALU_block.gif)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/MC10181_die.jpg/350px-MC10181_die.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/MC10181L.jpg/350px-MC10181L.jpg)
Unitatea aritmetică logică, UAL sau ALU (engleză arithmetic logic unit) este un circuit electronic digital complex care poate efectua operații aritmetice și logice. În diagramele-bloc de computere, unitatea aritmetică logică este reprezentată ca un modul funcțional, componentă a schemei de principiu a unui calculator electronic. Constructiv, în calculator, UAL este un bloc fundamental al unității centrale de procesare (prelucrare) UCP (engleză CPU). Unitatea logică aritmetică este utilizată pentru a efectua transformări logice și aritmetice pe operanzii necesari, adesea comenzi sau coduri de numere. După finalizarea acțiunii, rezultatul este returnat dispozitivului de stocare pentru a fi utilizat în următoarele calcule.
Clasificare
[modificare | modificare sursă]Din punct de vedere al metodei de operare, unitățile logice aritmetice sunt împărțite în paralel și secvențial, principala diferență dintre acestea este modul în care sunt reprezentați operanzii și operațiile efectuate.
Prin natura utilizării, unităților logice aritmetice sunt împărțite în blocuri multifuncționale și blocuri blocate. În ALU de primul tip, pentru a efectua operațiuni cu diferite forme de reprezentare a numerelor, se folosesc aceleași scheme care se adaptează la modul de operare solicitat cu date. În cazul dispozitivelor bloc, toate operațiile sunt efectuate prin distribuirea tipurilor de date. Pentru operațiile cu numere zecimale, câmpuri numerice și alfabetice, numere cu puncte variabile sau puncte fixe, se folosesc diferite scheme. În acest caz, unitatea logică aritmetică funcționează mult mai rapid datorită executării paralele a sarcinilor specificate.
Structură
[modificare | modificare sursă]Componentele unei unități logice aritmetice sunt cele patru grupuri principale de noduri care corespund proceselor de stocare, transmisie, transformare și control al datelor primite.
Unități de stocare ALU
[modificare | modificare sursă]- declanșatoare care stochează biți auxiliari și semne diferite de rezultate
- registre responsabile pentru integritatea operanzilor, rezultatele intermediare și finale.
Registrele unității logice aritmetice pot fi combinate într-un bloc de memorie specializat, iar declanșatoarele pot forma un singur registru de stare.
Noduri de transmisie ALU
[modificare | modificare sursă]- anvelope de blocare a dispozitivelor de interconectare;
- multiplexoare și porți, responsabile de alegerea direcției corecte a operațiunilor.
Noduri de transformare ALU
[modificare | modificare sursă]- adders care efectuează microoperațiile
- scheme de realizare a acțiunilor logice
- transformatoare
- corectori pentru aritmetica zecimală
- codificatori utilizați pentru a obține date inverse sau suplimentare
- contoare pentru numărarea numărului de cicluri efectuate și pentru implementarea transformărilor auxiliare.
Unități de control ALU
[modificare | modificare sursă]Dispozitivul de control oferă execuția automată a programului. Aceasta implică ramurile coordonate necesare ale lucrărilor celorlalte componente ale mașinii. Funcționarea unității de control este responsabilă pentru principiul de bază al microprogramării, care are un număr clar de caracteristici. Acesta include:
- bloc de control
- decodor de semnal
- metode de conversie a caracteristicilor logice necesare pentru a forma sucursale pentru execuția firmware-ului.
Unitatea de comandă a procesorului
[modificare | modificare sursă]Acest bloc este responsabil pentru generarea secvenței de semnale funcționale necesare pentru executarea corectă a unei comenzi date. De regulă, astfel de transformări sunt implementate în mai multe cicluri[1]
Funcționare
[modificare | modificare sursă]UAL asigură funcții de prelucrare a datelor, respectiv:
- aritmetică zecimală: adunare, scădere, înmulțire, împărțire
- aritmetică binară pentru numere cu un punct clar definit
- aritmetică hexazecimală pentru expresii cu separator plutitor
- modificarea adreselor de comandă
- operații de tip logic: ȘI, SAU, SAU EXCLUSIV, NU și complement. Conjuncția și disjuncția, precum și compararea datelor pentru egalitate sunt atribuite grupului de transformări logice. Astfel de proceduri, ca regulă, sunt efectuate pe cuvinte binare compuse din mai mulți biți.
- conversia câmpurilor alfanumerice
- aritmetică specială.
- efectuarea altor operații specifice, la nivel de bit asupra operanzilor.
Întrucât efectuarea acestor operații se reprezintă considerând operanzii reprezentați în baza 2 (reprezentare binară), granița între tipurile de operații este greu de stabilit.
Într-un sistem de calcul modern, granița fizică a unității aritmetice-logice este greu de precizat, funcțiile respective fiind regăsite în cadrul microprocesorului, care, începând cu calculatoarele de generația a IV-a, este un circuit integrat.
Sarcina principală a ALU este de a procesa datele stocate în memoria RAM a computerului. În plus, o unitate logică aritmetică este capabilă să producă semnale de control care direcționează un calculator să selecteze calea corectă pentru a efectua procesul de calcul necesar, în funcție de tipurile de date rezultate. Toate operațiunile implică circuite electronice, fiecare dintre ele fiind structurate în mii de elemente. Astfel de panouri sunt de obicei rapide și au o densitate mare.
În funcție de semnalele introduse, unitățile ALU execută diferite tipuri de operații cu două numere. Orice unitate logică aritmetică a calculatorului asigură implementarea a patru acțiuni de bază, schimburi, precum și transformări logice. Setul de operațiuni ALU este principala sa caracteristică.
Datele sunt încărcate înaintea operației în registrele UCP. Aceste registre sunt conectate prin căi de date la UAL. În urma decodificării instrucțiunii, se transmite de unitatea de comandă succesiunea semnalelor de comandă necesare pentru execuția operației respective. După efectuarea operației, se transmite un semnal de la UAL către unitatea de comandă, pentru a-l informa asupra terminării execuției. Rezultatele sunt depuse în registre, UAL poziționând indicatorii de condiții ca rezultat al operației. De exemplu, va fi setat la 1 un indicator de depășire dacă rezultatul depășește lungimea registrului în care trebuie memorat rezultatul. Unitatea logică aritmetică este necesară pentru transformările de tip logic și aritmetic, de la expresia elementară la cea complexă. Lățimea de biți a operanzilor utilizați este considerată a fi lungimea cuvântului sau dimensiunea. Fiecare funcție este activată de o instrucțiune corespunzătoare care furnizează și operanzii implicați în operație.
Registre
[modificare | modificare sursă]Pentru realizarea funcțiilor sale, unitatea aritmetică și logică utilizează câteva registre proprii speciale :
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Accumulator.png/220px-Accumulator.png)
- Acumulatorul - registru de uz general care este utilizat de UAL pentru stocarea unuia dintre operanzi și pentru rezultatul operației; are un rol cu totul special în comparație cu celelalte registre de uz general.
- Registrul F - este registrul fanioanelor de condiții (Flags) și conține celule de memorie independente, cu funcții specifice, pentru înregistrarea unor informații ce rezultă din operațiile aritmetice și logice (semnul rezultatului, paritatea, existența bitului de transport sau împrumut, depășirea domeniului și altele). În ansamblu, indicatorii de condiții exprimă starea unității aritmetice și logice.
- Registrul de deplasare - utilizat pentru deplasări spre stânga sau spre dreapta a unui operand. Deplasările se pot face cu unul sau mai mulți biți. Deplasarea spre stânga cu un bit este echivalentă cu înmulțirea cu 2 iar cea spre dreapta, cu împărțirea prin 2. Deplasările spre stânga sau spre dreapta se realizează sub comanda unor instrucțiuni specifice care acționează asupra unui registru de uz general sau unei locații de memorie. Pentru realizarea operației, conținutul registrului sau locației se transferă în registrul de deplasare. [2][3] [4]
Vezi și
[modificare | modificare sursă]Referințe și note
[modificare | modificare sursă]- ^ Unitatea logică aritmetică (ALU) - ce este?[nefuncțională] rum.kagutech.com, Septembrie 2020
- ^ 6. UNITATEA ARITMETICĂ ȘI LOGICĂ, Universitatea Tehnică din Cluj-Napoca
- ^ 02_07_Circuite_logice_ALU.pdf Arhitectura Calculatoarelor[nefuncțională] (curs), Universitatea „Alexandru Ioan Cuza” din Iași [nefuncțională]
- ^ 4.2 Unitatea aritmetică - logică[nefuncțională] andrei.clubcisco.ro