Avaa päävalikko

Wikikirjasto β

Digitaalipiirit/Aritmeettis-looginen yksikkö eli ALU

< Digitaalipiirit

Sisällysluettelo

ALUn tehtävätMuokkaa

Aritmeettisloogisen yksikön (ALU) suoritettavaksi annettavia tehtäviä ovat laskenta (yhteen-, vähennys-, kerto- ja jakolaskut) ja loogisten operaatioiden suorittaminen. ALU on prosessorin perusrakenne osa, jopa yksikertaisimmat mikroprosessorit sisältävät ALUn, esimerkiksi ajastimen virkistämiseksi. Prosessori voi sisältää sen monimutkaisuudesta riippuen useita aritmeettisloogisia yksiköitä.

Yksinkerainen ALUMuokkaa

Suurinosa aritemeettisloogisista yksiköistä tekee seuraavia tehtäviä:

  • Yhteen- ja vähennyslaskut kokonaisluvuilla, monimutkaisemmat osaavat kerto- ja jakolaskutkin (vain kalliimmat)
  • Loogisetoperaatiot (JA, TAI, EI ja EHDOTON-TAI)
  • Bittien siirto-ja pyöristysoperaatiot

Esimerkissä käytettään yksiköiksi jaettua 4-bittistä ALUa, joka on esitetty kokonaisuudessaan VHDL- koodilla VHDL-kieli_FPGA-suunnittelussa/4-bittinen_ALU.

LohkokaavioMuokkaa

 

Kukin esimerkin ALU:ssa olevista toimintatavoista on jaettua omaksi yksikökseen.
Eri toimintatapaa vastaava toimintayksikkö valitaan demultiplekserillä. Demultiplekseri toimii päin vastoin kuin multiplekseri, eli sillä voidaan valita useista lähdöistä yksi. Tässä käytetään 3-bittistä demultiplekseri kahdeksan eri toimintatavan valintaan.
Toimintayksiköt ovat VHDL- kielellä luotuja piirikaaviosymboleita, joissa oletus arvoisesti kaikki lähdöt on nollia (0).

Tuloina ALU:ssa toimii :

  • Operation, jolla valitaan toimintatila, ohessa taulukko.
  • Nibble1 ja Nibble2, joille tehdään Operation -tulolla valittu vertailu- tai laskuoperaatio.

ALUn operaatiot (Operation- tulo) ja toimintatapa

Operation Toimintatapa
000 Tulojen aritmeettinen yhteenlasku
001 Tulojen erotus, jos Nibble2- tulo on suurempi kuin Nibble1- tulo, niin ylivuoto (Flag)
010 Tulojen JA (AND)
011 Tulojen TAI (OR)
100 Tulojen eksklusiivinen TAI (XOR)
101 Tulon Nibble1 EI (NOT Nibble1)
110 Tulon Nibble2 EI (NOT Nibble2)
muut Tulojen aritmeettinen erotus


ALU lähdöt:

  • Carry, jota käytetään mm. Summa -funktion tulossa, silloin kun operaation tulos ylittää Result -tulon väyläleveyden
  • Flag, kertoo vähennyslaskussa laskutoimituksen suunnan, Result = Nibble1 - Nibble2 => Flag = 0 vastaavasti Result = Nibble2 - Nibble1 => Flag = 1
  • Result -väylä, johon tulee varsinainen toimintatilan mukainen operaation tulos.

Simulaatio tulosMuokkaa

 

Kuten simulaatiotuloksesta nähdään tulojen Operation ollessa 2 (010) ja Nibble1 on F (1111), Nibble2 on 6 (0110) on lähtö Result 6 (0110).
Operation 0 (000) tarkoittaa SUM -operaatiota ja tällöin lähtö Result = 1010 (A) SUM 1100 (C) = 0110 (6) ja Carry = 1, koska oikea tulos on 10110 (16).
Operation 2 (010) tarkoittaa AND -operaatiota ja tällöin lähtö Result = 1111 (F) AND 0110 (6) = 0110 (6).
Operation 3 (011) tarkoittaa OR -operaatiota ja tällöin lähtö Result = 1000 (8) OR 0011 (3) = 1011 (B).