Unitate logică aritmetică

Unitatea logică aritmetică ( ALU ; în engleză  aritmetic logic unit, ALU ) este o unitate de procesor care, sub controlul dispozitivului de control, servește la efectuarea transformărilor aritmetice și logice (începând de la cele elementare ) asupra datelor, numite în acest caz operanzi . Bitness-ul operanzilor se numește de obicei dimensiunea sau lungimea cuvântului mașină .

Conceptul de unitate aritmetică logică a fost propus în 1945 de John von Neumann într-o publicație despre EDVAC ; a devenit una dintre componentele arhitecturii clasice ale computerelor von Neumann .

Organizare și principii de funcționare

ALU binar pe un bit (cu doi operanzi) cu o ieșire binară (din două cifre) poate efectua până la funcții (operații) binare (cu doi operanzi) cu o ieșire binară (din două cifre).

Unitatea aritmetică-logică, în funcție de performanța funcțiilor, poate fi împărțită în două părți:

Structura unității aritmetice-logice include în mod condiționat registrele Rg1 - Rg7, care servesc la procesarea informațiilor provenite din memoria operațională sau pasivă N1, N2, ... NS și circuite logice care sunt utilizate pentru procesarea cuvintelor conform microinstrucțiunilor venite de la control. dispozitiv.

Există două tipuri de microcomenzi: externe - astfel de microcomenzi care intră în ALU din surse externe și provoacă transformarea informațiilor în acesta, și interne - cele care sunt generate în ALU și afectează dispozitivul microprogramului, modificând astfel secvența normală a comenzilor.

Funcții tipice ale registrelor incluse în unitatea logică aritmetică:

O parte din registrele operaționale pot fi adresate în instrucțiunea de a efectua operații asupra conținutului lor și sunt denumite accesibile programelor. Aceste registre includ: registrele de adunare, registrele index și unele registre auxiliare. Registrele rămase nu pot fi adresate în program, adică sunt inaccesibile de program.

Dispozitivele de operare pot fi clasificate în funcție de tipul de informații prelucrate, modul în care sunt prelucrate și structura logică.

O astfel de structură logică complexă a ALU poate fi caracterizată prin numărul de micro-operații care diferă unele de altele, care sunt necesare pentru a finaliza întregul complex de sarcini atribuite unității logice aritmetice. La intrarea fiecărui registru sunt asamblate circuitele logice corespunzătoare, oferind astfel de conexiuni între registre, ceea ce face posibilă implementarea microoperațiilor specificate. Efectuarea de operații asupra cuvintelor se reduce la efectuarea anumitor micro-operații care controlează transferul cuvintelor către ALU și acțiuni de transformare a cuvintelor. Ordinea de execuție a microcomenzilor este determinată de algoritmul pentru efectuarea operațiilor. Adică, conexiunile dintre registrele ALU și funcțiile acestora depind în principal de metodologia acceptată pentru efectuarea operațiilor logice, inclusiv aritmetice sau aritmetice speciale.

Un exemplu de operație ALU pe operațiuni de adăugare

Din punct de vedere funcțional, ALU este format din două registre (Register1, Register 2), un circuit de control și un sumator [1] . Operația aritmetică se realizează în cicluri:

Un exemplu de operație ALU pe o operație de scădere:

Operațiuni

Toate operațiile efectuate în unitatea logică aritmetică sunt operații logice (funcții), care pot fi împărțite în următoarele grupuri:

Calculatoarele moderne de uz general implementează de obicei operații din toate grupurile de mai sus, iar computerele mici și microcalculatoare , microprocesoarele și calculatoarele specializate nu au adesea echipamente pentru aritmetică în virgulă mobilă, aritmetică zecimală și operații pe câmpuri alfanumerice. În acest caz, aceste operații sunt efectuate prin subrutine speciale.

Operațiile aritmetice includ adunarea , scăderea , scăderea modulo ("operații scurte") și înmulțirea și împărțirea ("operații lungi"). Grupul de operații logice este format din operații de disjuncție (SAU logic) și conjuncție (ȘI logic) peste cuvinte binare pe mai mulți biți, compararea codurilor pentru egalitate. Operațiile aritmetice speciale includ normalizarea, deplasarea aritmetică (doar biții digitali sunt deplasați, bitul semn rămâne pe loc), deplasarea logică (bitul semn este deplasat împreună cu biții digitali). Grupul de operațiuni pentru editarea informațiilor alfanumerice este extins. Fiecare operație dintr-o ALU este o funcție logică sau o secvență de funcții logice descrisă de logica binară pentru calculatoarele binare, logica ternară pentru calculatoarele ternare , logica cuaternară pentru calculatoarele cuaternare, logica zecimală pentru calculatoarele zecimale și așa mai departe.

Clasificare

Unitățile logice aritmetice sunt împărțite în seriale și paralele în funcție de modul în care acţionează asupra operanzilor. În dispozitivele seriale, operanzii sunt reprezentați în cod serial, iar operațiile sunt efectuate secvenţial în timp pe biții lor individuali; în paralel - printr-un cod paralel și operațiunile sunt efectuate în paralel în timp peste toți biții operanzilor.

După modul în care sunt reprezentate numerele, se disting dispozitivele aritmetico-logice:

Prin natura utilizării elementelor și nodurilor, ALU-urile sunt împărțite în bloc și multifuncționale. Într-un dispozitiv bloc, operațiunile pe numere fixe și cu virgulă mobilă, numere zecimale și câmpuri alfanumerice sunt efectuate în blocuri separate, crescând în același timp viteza de funcționare, deoarece blocurile pot efectua operațiunile corespunzătoare în paralel, dar costurile echipamentelor cresc semnificativ. În ALU-urile multifuncționale, operațiunile pentru toate formele de reprezentare a numerelor sunt efectuate de aceleași circuite, care sunt comutate în mod corect, în funcție de modul de funcționare necesar.

În ceea ce privește funcțiile sale, o unitate logică aritmetică este o unitate de operare care efectuează microoperații care asigură recepția operanzilor de la alte dispozitive (de exemplu, memorie), transformarea acestora și eliberarea rezultatelor transformării către alte dispozitive. Unitatea aritmetico-logica este controlata de o unitate de control care genereaza semnale de control care initiaza executarea anumitor microoperatii in ALU. Secvența semnalelor generate de blocul de control este determinată de codul de operare al comenzii și semnalele de alertă.

Note

  1. Makarova N. V. Informatică: Manual. - M. : Finanţe şi statistică, 2006. - 768 p. — ISBN 978-5-279-02202-1 .

Literatură