Sei sulla pagina 1di 15

Cenni alle reti logiche

Luigi  Palopoli  
ALU
•  ALU:  la  algebraic  logic  unit  è  una  componente  che  è  in  
grado  di  effe9uare  varie  operazioi  logiche  e  
aritme<che  (secondo  la  selezione  che  viene  fa9a).  
•  Esempio  ALU  a  un  bit  che  effe9ua  (a  comando)  AND  o  
OR    
Sommatore a un bit
•  Fino  a  ora  c’e’  la  parte  logica  ma  non  quella  aritme<ca  
•  Come  fare  una  sommatore  a  un  bit  (full  adder)?  
•  Teniamo  presente  che  oltre  agli  operandi  abbiamo  in  input  il  
riporto  (carry  in),  e  produciamo  in  output  un  altro  riporto  (carry  
out)  
Sommatore a un bit
•  Il  sommatore  a  un  bit  è  una  rete  logica  
combinatoria  per  la  quale  possiamo  scrivere  la  
tabella  di  verità  
Sommatore a un bit
•  Per  il  carry  out  l’espressione  come  SP  è:  
CarryOut = (a · b · CarryIn) + (a · b · CarryIn) + (a · b · CarryIn) + (a · b · CarryIn
= (a · b · CarryIn) + (a · b · CarryIn) + a · b
= (b · CarryIn) + (a · CarryIn) + a · b

•  L’ul<mo  passaggio  si  gius<fica  perchè  


a · b · CarryIn 6= b · CarryIn $ a = 1, b = 1
Ma  in  quel  caso  a•b=1  porta  comunque  a  1  
l’espressione  
Sommatore a un bit
•  Circuito  per  carryout  

•  Per  la  sum  l’espressione  come  SP  è:  


sum = (a · b · CarryIn) + (b · a · CarryIn) + (a · b · CarryIn) + (a · b · CarryIn)
ALU a 1 bit
•  Possiamo  ora  combinare  le  tre  operazioni  
Una ALU a 32 bit
•  I  blocchi  che  abbiamo  
visto  si  possono  
combinare  per  
o9enere  una  ALU  a  32  
bit  
Sottrattore
•  Cosa  succede  se  seYamo  il  carry  in  a  1?  
•  Molto  semplicemente  possiamo  sommare:  
a  +  b  +  1  
Se  neghiamo  b  possiamo  o9enere  un  
comporamento  da  so9razione  (complemento  a  
due):    

a + b + 1 = a + (b + 1) = a + ( b) = a b
Circuito complessivo
•  Circuito  risultante   •  Per  so9rare  basta  
selezionare  la  
somma,  se9are  
Binvert  e  CarryIn  
a  1  
NOR
•  Abbiamo  visto  che  nell’assembly  del  MIPS  c’e’  
anche  l’operazione  di  nor….  
•  La  possiamo  facilmente  implementare  con  le  
leggi  di  De  Morgan  
 
  (a + b) = a · b
Questo  vuol  dire  che  abbiamo  bisogno  anche  
della  possibilità  di  u<lizzare  come  operando  a  
inver<to  
ALU a 1 bit

•  Selezionando  
And,  Ainvert,  
Binvert  o9eniamo  
nor  
Confronti e overflow
•  L’operazione  slt  si  può  effe9ure  con  la  seguente  
considerazione  
  a<b$a b<0
•  Quindi  slt  deve  effe9uare  la  so9razione  ma  
res<tuire  come  risultato  il  bit  di  segno  (il  più  
significa<vo)  del  risultato  della  so9razione  al  bit  
meno  significa<vo  e  lasciare  0  nelle  altre  
posizioni  
•  Anche  il  bit  di  overflow  si  genera  considerando  il  
carry  sul  modulo  più  signifiica<vo  o  i  segni  di  
operandi  e  risultato  
Schema complessivo

SLT:  Si  fa  una  so9razione  e  il  bit  più  


signiifva<vo  viene  trasferito  su  
quello  meno  signiifca<vo  del  
risultato  mentre  gli  altri  devono  
essere  0  
Schema delle singole celle

Cella  rela<va  a  bit  meno  


significa<vo  mi  deve  propagare  less  
(che  viene  se9ato  a  zero  ecce9o  
che  per  il  primo)  per  operazione  slt.  

Cella  rela<va  a  bit  a  bit  meno  


significa<vo  che  deve  generare  il  nit  
di  segno  in  caso  di  operazione  di  slt.