Sumator

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 14 februarie 2022; verificarea necesită 1 editare .

Un sumator  în cibernetică este un dispozitiv care convertește semnalele informaționale (analogice sau digitale) într-un semnal echivalent cu suma acestor semnale [1] ; un dispozitiv care efectuează o operație de adăugare .

Istorie

Clasificarea sumatorilor

În funcție de forma de prezentare a informațiilor, se disting sumatori analogici și digitali [1] .

Prin implementare

Conform principiului acțiunii
  • Pe contoare , numărarea numărului de impulsuri ale semnalelor de intrare.
  • Funcțională, scoaterea valorilor funcției logice a sumei modulo și a funcției logice a bitului de transport:
    • logic, calculând de fiecare dată funcția de cifre sumă modulo și funcția de cifre de transport
    • tabelar, cu tabele de valori precalculate ale funcției de cifre modulo sumă și valori ale funcției de cifre de transport înregistrate:
      • în ROM , PROM (hardware) (mai fiabile și mai ieftine decât cele logice, deoarece în loc de semiconductori care efectuează calcule logice, ROM folosește conductori și izolatori ("firmware")) [4] sau
      • în RAM (hardware și software).

Aditoarele tabelare au fost folosite pentru prima dată în calculatoarele releu în SUA înainte de cel de-al Doilea Război Mondial.

Arhitectură

  • Sferturi  de sumători sunt sumatori modulo binari (cu doi operanzi) fără bit de transport, caracterizați prin prezența a două intrări, cărora le sunt furnizate două numere cu o singură cifră și o ieșire, pe care este implementată suma lor aritmetică modulo.
  • Semi  -adunatorii sunt sumatori binari (cu doi operanzi) modulo cu un bit de transport, caracterizați prin prezența a două intrări, care sunt furnizate cu biți cu același nume de două numere și două ieșiri: una implementează suma aritmetică modulo în acest bit, iar celălalt trece la următorul rang (cel mai înalt).
  • Sumatoarele complete sunt sumatoare modulo trinari (cu trei operanzi) cu un bit de transport, caracterizate prin prezența a trei intrări, care sunt furnizate cu biți cu același nume din două numere adăugate și un transfer de la bitul anterior (inferior) și două ieșiri: unul implementează o sumă modulo aritmetică într-o cifră dată, iar pe celălalt - transfer la următoarea (cifra mai mare). Astfel de sumatori sunt inițial concentrați doar pe sistemele de numere poziționale exponențiale. .
  • Aditoare acumulatoare - echipate cu propria memorie internă.

Prin acțiune

  • Secvenţial (single-bit), în care prelucrarea cifrelor numerelor se realizează una câte una, bit cu bit, pe acelaşi echipament single-bit.
  • Paralel-serial, în care mai multe cifre ale unei perechi de numere sunt adăugate în paralel în serie.
  • Paralel (cu mai multe cifre), în care termenii sunt adăugați simultan pentru toate cifrele, iar fiecare cifră are propriul echipament.

Conform modului de organizare a transferului [5] [6]

  • Cu transfer în serie ( Ripple-carry adder , Sequential Transfer Scheme ).
  • Cu transfer accelerat de grup (cu reportare) ( computoare Carry-lookahead , CLA-aderă).
  • Carry- skip adder [7 ] .
  • Adder cu adunare condiționată ( Sumător condițional ).
  • Cu comutare de transport (cu selectare de transport [8] ) ( Adder de selectare de transport ).
  • Adder Carry-save ( Carry-save adder ).

Sistemul numeric

Adder binar

Un sumator binar poate fi descris în trei moduri:

  1. tabular, sub forma unui tabel de adevăr ,
  2. analitic, sub forma unei formule ( SDNF ),
  3. grafic, sub forma unei diagrame logice .

Deoarece formulele și circuitele pot fi transformate identic, un tabel de adevăr al unui sumator binar poate corespunde multor formule logice și circuite logice diferite. Prin urmare, din punctul de vedere al obținerii rezultatului fără a ține cont de timpul petrecut la calculul sumei, metoda tabelară de determinare a sumatorului binar este cea principală. Descrierea tabelară obișnuită și descrierea obișnuită a sumatorului nu iau în considerare timpii de întârziere în elementele logice reale și nu sunt potrivite pentru determinarea performanței sumatorilor reali.

x 0 =A unu 0 unu 0 unu 0 unu 0
x 1 =B unu unu 0 0 unu unu 0 0
x 2 = unu unu unu unu 0 0 0 0 Nume acțiune (funcție). Numărul funcției
unu 0 0 unu 0 unu unu 0 Suma biților modulo 2 F3.150
unu unu unu 0 unu 0 0 0 Poartă bit F3.232

O unitate de transport apare de 4 ori din 8.

Sumele SDNF modulo 2:

bit de transport SDNF :

Un circuit care furnizează adăugarea a două numere de un bit A și B fără a primi un bit de transport de la bitul anterior se numește semi-adunator . Semi-adunatorul are 4 linii de semnal: două intrări pentru semnale reprezentând numere binare cu o singură cifră A și B și două ieșiri: suma lui A și B modulo 2 (S) și semnalul de transport la următorul bit (P). În acest caz, S este bitul cel mai puțin semnificativ, iar P este bitul cel mai semnificativ.

Combinând două jumătăți de adunare și adăugând un circuit SAU suplimentar, puteți crea un sumator complet în trei trepte cu o intrare suplimentară Pi -1 (în Figura 1) care primește semnalul de transport de la circuitul anterior. Prima etapă a semi-adunatorului efectuează adăugarea a două numere binare și generează primul bit de transport parțial, a doua etapă de pe jumătate adună rezultatul primei etape cu al treilea număr binar și generează al doilea bit de transport parțial , a treia etapă a elementului logic 2OR generează bitul de transport rezultat la bitul cel mai semnificativ.

Un circuit de sumator complet poate fi folosit ca „blocuri de construcție” pentru a construi circuite de adunare cu mai mulți biți prin adăugarea de sumători completi pe un singur bit. Pentru fiecare cifră pe care circuitul trebuie să o poată gestiona, se folosește un sumator complet.

În sumatorul din Fig. 1, timpul pentru calcularea sumei modulo 2 este 2dt, timpul pentru calcularea transportului este 3dt, unde dt este timpul de întârziere într-un element logic tipic. Într-un adunator de m-biți în cel mai rău caz (unități de transport în toți biții), semnalul de transport trece prin m-1 biți până la ultimul bit, iar suma va fi gata în încă 2 dt, deci timpul maxim de adăugare este:

.

Timpii maximi de adunare și de calcul pentru mai mulți biți sunt afișați în Tabelul 1:
Tabelul 1.

numărul de cifre ale sumatorului unu 2 patru opt 16 32 64
timp suplimentar, dt 2 5 unsprezece 23 47 95 191
timp de calcul report, dt 3 6 12 24 48 96 192

Un sumator complet binar de un bit este o funcție logică binară complet trinar (cu trei operanzi) cu o ieșire binară (de doi biți). Toți cei trei operanzi și ambii biți de ieșire sunt de un bit.

Adunator zecimal

Adunatorul zecimal poate fi specificat sub forma a două tabele:
cu zero reportat din cifra anterioară:

+ 0 0 0 0 0 0 0 0 0 0
+ 0 unu 2 3 patru 5 6 7 opt 9
0 0 unu 2 3 patru 5 6 7 opt 9
unu unu 2 3 patru 5 6 7 opt 9 zece
2 2 3 patru 5 6 7 opt 9 zece unsprezece
3 3 patru 5 6 7 opt 9 zece unsprezece 12
patru patru 5 6 7 opt 9 zece unsprezece 12 13
5 5 6 7 opt 9 zece unsprezece 12 13 paisprezece
6 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece
7 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16
opt opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17
9 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece

și cu un report de la cifra anterioară:

+ unu unu unu unu unu unu unu unu unu unu
+ 0 unu 2 3 patru 5 6 7 opt 9
0 unu 2 3 patru 5 6 7 opt 9 zece
unu 2 3 patru 5 6 7 opt 9 zece unsprezece
2 3 patru 5 6 7 opt 9 zece unsprezece 12
3 patru 5 6 7 opt 9 zece unsprezece 12 13
patru 5 6 7 opt 9 zece unsprezece 12 13 paisprezece
5 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece
6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16
7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17
opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece
9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece 19

sau sub forma unui singur tabel, în care unitatea de transport de la bitul anterior se deplasează cu o coloană la dreapta:

+ 0 unu 2 3 patru 5 6 7 opt 9
0 0 unu 2 3 patru 5 6 7 opt 9 zece
unu unu 2 3 patru 5 6 7 opt 9 zece unsprezece
2 2 3 patru 5 6 7 opt 9 zece unsprezece 12
3 3 patru 5 6 7 opt 9 zece unsprezece 12 13
patru patru 5 6 7 opt 9 zece unsprezece 12 13 paisprezece
5 5 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece
6 6 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16
7 7 opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17
opt opt 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece
9 9 zece unsprezece 12 13 paisprezece cincisprezece 16 17 optsprezece 19

Cu firmware-ul adecvat, un adunator hexazecimal și un sumator-scădere cu douăzeci și șapte de pe ROM pot funcționa ca sumator zecimal (zecimal).

Direcții de dezvoltare a aditorilor

Aditoarele paralele sunt suficient de rapide pentru a adăuga rapid un număr mic de numere cu lungime fixă. Deoarece adăugarea pe biți este în mod inerent secvențială, atunci când există foarte multe adăugiri, este mai avantajos să reconfigurați același hardware ( ALU ) pentru a efectua mai multe adăugiri seriale în paralel, sau nu simultan.

De exemplu, un sumator binar paralel pe 64 de biți de 64 de sumători binari cu scheme complexe de transport rapid va adăuga 1 pereche de numere de 64 de biți în cele mai bune scheme în aproximativ 5 dt și 32 de perechi de numere de 64 de biți în aproximativ 32*5 dt = 160 dt.

32 de sumatori binari consecutivi fără circuite de avans rapid bit-cu-bit vor adăuga 32 de perechi de numere pe 64 de biți în aproximativ 64*2dt=128dt.
32 de sumatori cuaternari consecutivi fără circuite de transport rapid vor adăuga 32 de perechi de numere pe 64 de biți în aproximativ (64/lg 2 4)*2dt=64dt.
32 de adaosuri hexazecimale consecutive fără circuite de transport rapid vor adăuga 32 de perechi de numere pe 64 de biți în aproximativ (64/lg 2 16)*2dt=32dt.
32 de adunatori consecutivi de 250-șase fără circuite de transport rapid vor adăuga 32 de perechi de numere pe 64 de biți în aproximativ (64/lg 2 256)*2dt=16dt, adică. de aproximativ zece ori mai rapid decât un adunator paralel pe 64 de biți cu circuite de transport rapid.
32 de sumatori consecutivi de patru mii nouăzeci și șase fără circuite de transport rapid vor adăuga 32 de perechi de numere de 64 de biți în aproximativ (64/lg 2 4096)*2dt=10,67dt.

Vezi și

Note

  1. 1 2 Dicționar de cibernetică / Editat de academicianul V. S. Mikhalevich . - al 2-lea. - Kiev: Ediția principală a Enciclopediei sovietice ucrainene numită după M. P. Bazhan, 1989. - 751 p. - (C48). — 50.000 de exemplare.  - ISBN 5-88500-008-5 .
  2. Ceasul de numărare al lui Wilhelm Schickard
  3. Copie arhivată . Preluat la 7 martie 2011. Arhivat din original la 9 octombrie 2009. Pagini de istorie. 1938
  4. Adder, 4 biți, complet, grup paralel (tabel), pe ROM
  5. Algoritmi hardware pentru modulele aritmetice
  6. Adder Designs
  7. 3 Adunarea și scăderea numerelor binare. Aditoare binare. Pagina 30. Fig. 12. Schema adaugătorului cu adaugăr care sări-sari
  8. Tanenbaum E. - Arhitectura computerului. str.130

Literatură

  • Ugryumov E. P.  Elemente și componente ale computerului digital. M.: Şcoala superioară, 1976. - 232 p.
  • Ugryumov E.P.  Circuite digitale. - Sankt Petersburg: BHV-Petersburg, 2001. - 528 p.
  • Jean M. Rabai, Ananta Chandrakasan, Borivoj Nikolic. 11. Proiectarea blocurilor aritmetice: Adder // Circuite integrate digitale. Metodologie de proiectare = Circuite integrate digitale. - Ed. a II-a. — M .: Williams , 2007. — S.  912 . — ISBN 0-13-090996-3 .

Link -uri