Сабирач (електроника) — разлика између измена

Садржај обрисан Садржај додат
м уклоњена категорија Рачунарска аритметика помоћу геџета HotCat
Autobot (разговор | доприноси)
м ispravke; козметичке измене
Ред 1:
У електроници, '''сабирач''' је дигитално коло које врши сабирање бројева. У многим рачунарским и другим процесорима, сабирачи се не користе само у аритметичко-логичкој јединици већ и у другим деловима где је потребно израчунати адресу, индексе табеле и сличне операције. Иако сабирачи могу бити конструисани за много репрезентација бројева, као што су ''бинарно кодовани децимални бројеви'' или ''код више 3'', најчешће се праве сабирачи који оперишу са бинарним бројевима. У случајевима где се за представљање негативних бројева користе комплемент двојке или комплемент јединице, сабирач се лако може модификовати да врши одузимање, односно да постане одузимач. Другачије представљање означених вројева захтева комплексније сабираче.
 
== Полусабирач (HA - half adder) ==
 
[[FileДатотека:half Adder.svg|right|thumb|Полусабирач реализован помоћу логичких кола]] '''Полусабирач''' сабира две једноцифрене бинарне вредности ''A'' и ''B'' и као резултат враћа, такође, две вредности, суму (''S'') и пренос (''C''). Сигнал за пренос презентује величину преноса која се јавља уколико на улазу имамо обе ''1'' (збир износи ''2'', што у бинарном облику износи ''10''). Укупна вредност суме је ''2C''+''S''. Једноставна конструкција полусабирача, приказана на слици десно, обухвата једно ''ЕХ-ИЛИ'' коло за ''S'' и једно ''И'' коло за ''C'' сигнал. Додавањем једног ''ИЛИ'' кола за комбиновање њихових излаза за пренос , два полусабирача чине један потпун сабирач.<ref>
{{cite book
| title = Excel HSC Software Design and Development'
Ред 15:
Једноставније, полусабирач сабира два улазна бита и генерише пренос и суму коју представља на својим излазима.
 
== Потпуни сабирач (FA - full adder) ==
 
[[FileДатотека:1-bit full-adder.svg|thumb|right|Шематска ознака за 1-битни комплетан сабирч са ''C''<sub>in</sub> и ''C''<sub>out</sub> нацратним на странама блока да нагласи њихову употребу код вишебитног сабирача]]
 
''Потпун сабирач''' сабира бинарне вредности и генерише вредности које шаље на излаз. Једнобитни потпуни сабирач сабира три једнобитна броја, често означена са ''A'', ''B'', и ''C''<sub>in</sub>. ''A'' и ''B'' представљају операнде, а ''C''<sub>in</sub> представља бит преноса претходног сабирача.<ref name=Mano79>M. Morris Mano, ''Digital Logic and Computer Design'', Prentice-Hall 1979, ISBN 0-13-21450-3 pp.119-123</ref> Потпун сабирач је обично само компонента у каскади сабирача који сачињавају сабирач који оперише са 8, 16, 32 - битним бројевима. Коло производи двобитни излаз, пренос и сума се репрезентују као и код полусабирача са ''C''<sub>out</sub> и ''S'' где <math>\mathrm{sum} = 2 \times C_{out} + S</math>. Истинитосна таблица једнобитног сабирача изгледа:
 
[[FileДатотека:Full Adder.svg|thumb|right|Потпун сабирач, логички дијаграм]]
 
{| class="wikitable" style="text-align:center"
Ред 51:
Комплетан сабирач може бити конструисан и помоћу два полусабирача, повезујући ''A'' и ''B'' на улаз једног полусабирача, односно, њихову суму на улаз другог сабирача , такође, потребно је повезати битове преноса у једно ИЛИ коло.
 
== Комплекснији сабирачи ==
 
=== Ripple-carry сабирач (RCA) ===
 
[[FileДатотека:4-bit ripple carry adder.svg|thumb|right|4-битни сабирач]]
 
Могуће је креирати логичко коло за сабирање ''n''-битних бројева коришћењем потпуних сабирача. На ''C<sub>in</sub>'' улаз сваког сабирача доводи се ''C<sub>out</sub>'' претходног. Овакав сабирач назива се ''ripple-carry сабирач'', јер сваки бит преноса "таласа"(преноси се) до следећег сабирача. Можемо закључити да први(али само први) сабирач може бити замењен са полусабирачем.
Ред 68:
}}</ref>
 
=== Carry-lookahead сабирач (CLA) ===
 
[[FileДатотека:4-bit carry lookahead adder.svg|thumb|right|4-битни сабирач са carry lookahead]]
 
Да би смањили време израчунавања, инжењери су осмислили бржи начин сабирања два бинарна броја познатији као '''carry-lookahead''' сабирач. Ови сабирачи раде тако што креирају два сигнала (''P'' и ''G''), за сваку битну позицију, на основу информацији о томе да ли пренос потиче из бита мање тежине(један од улаза износи ''1'') или се генерише на том месту(оба улаза су ''1''), или пренос нестаје на тој позицији(оба улаза су ''0''). У већини случајева ''P'' преставља суму излаза полусабирача,а ''G'' је излазни бит преноса истог сабирача. Касније, ''P'' и ''G'' производе пренос за сваку битну позицију. Неке од напредних carry-lookahead архитектура су Manchester carry систем, Brent–Kung сабирач, и Kogge–Stone сабирач.
 
Неке друге архитектуре вишебитских сабирача су разбијене у блокове. Могуће је мењати дужину блока у циљу побољшања времена извршавања. Ови сабирачи у блоковима укључују carry-skip сабираче, који одређују ''P'' и ''G'' вредности за сваки блок, и carry select сабирач који прегенерише вредност суме и вредност бита преноса за сваки могући улаз (0 или 1) у блокове. Коришћењем мултиплексора бира одређену вредност када сазна бит преноса.
 
=== Lookahead carry јединица (LCU) ===
 
[[FileДатотека:64-bit lookahead carry unit.svg|thumb|right|64-битни сабирач]]
 
Комбиновањем више carry lookahead сабирача може бити креиран и већи сабирач. Тако добијен сабирач може се користити на више нивоа да би се направио још већи сабирач. На пример, следећи 64-битни сабирач користи четири 16-тобитна CLA са два нивоа LCU.
 
=== Carry-save сабирачи (CSA) ===
 
Када се јави потреба за коришћењем двооперандских сабирача ради истовременог сабирања три или више операнада, време које протекне збох распростирања бита за пренос мора да се понови неколико пута. Ако је број операнада ''к'', тада се битови преноса морају пропагирати(''к-1'') пута. Са циљем да се смањи цена која се плаћа због праспростирања битова за пренос,код сабирања већег броја операнада, предлаже се неколико решења (техника). Техника која се најчешће користи је сабирање памћењем преноса (carry save-сабирање). Код овог начина сабирања дозвољава се пропагација преноса само у току задњег корака, док се у свим осталим корацима генерише парцијална сума као и секвенца битова за пренос. На овај начин сабирач са памћењем преноса (CSA) прихвата три n-тобитна операнда и генерише два n-тобитна резулатата, n-тобитну потенцијалну суму и n-тобитни пренос. Други CSA прихвата ове две бит-секвенце, као и други улазни операнд, а генерише нову парцијалну суму и пренос. На овај начин CSA редукује број операнада који се сабирају са три на два без пропагације преноса.
 
== 3:2 компресори ==
Можемо посматрати комплетан сабирач и као компресор ''3:2'': он сажима три једнобитна улазна сигнала и као резултат враћа јединствени двобитни број; то значи да пресликава осам улазних комбинација на четри излазне. Тако, на пример, бинарни улаз ''101'' резултира на излазу ''1+0+1=10'' (децимално '2'). Бит преноса представља први бит резултата, док сума представља нулти бит. Исто тако, полусабирач може бити коришћен као ''2:2 компресор'', компресује четри могуће улазне комбинације на три излазне.
 
Овакви компресори могу бити коришћени за убрзавање проналажења суме три или више сабирка. Уколико има тачно три сабирка, користиће се carry-save сабирач. Уколико има четири или више сабирака, неопходно је више од једног слоја компресора и постоје различите могућности за дизајн кола: најчешћи су ''Dadda tree'' и ''Wallace tree''. Оваква врста кола се пре свега користи у мултипликаторима, због чега се зову и Dadda и Wallace мултипликатори.
 
== Референце ==
{{reflist}}
<references/>
 
== Спољашње везе ==
* [http://www.aoki.ecei.tohoku.ac.jp/arith/mg/algorithm.html -{Hardware algorithms for arithmetic modules], includes description of several adder layouts with figures.}-
* [http://dev.code.ultimater.net/electronics/8-bit-full-adder-and-subtractor/ -{8-bit Full Adder and Subtractor], a demonstration of an interactive Full Adder built in JavaScript solely for learning purposes.}-
* [http://teahlab.com/Full_Adder/ -{Interactive Full Adder Simulation], Interactive Full Adder circuit constructed with Teahlab's online circuit simulator.}-
* [http://teahlab.com/Half_Adder/ -{Interactive Half Adder Simulation], Half Adder circuit built with Teahlab's circuit simulator.}-
 
[[Категорија:Сабирачи| *]]
[[Категорија:Бинарна логика]]