« Forum anonimo (sperimentale)

Operazioni nella ALU

5 replies
Last
Salve, mi chiedevo come avvenissero le operazioni di And e Or all’interno della ALU.

La ALU eseguirà l’operazione basandosi sul function, però mi chiedevo a livello logico se si trattasse di una sottrazione, di un’addizione o qualcos’altro

5 replies
  1. Re: Operazioni nella ALU
    Ciao, provo a risponderti io poi eventualmente i professori mi correggeranno.


    L'ALU effettua le operazioni di AND e OR tramite l'utilizzo delle porte logiche (AND e OR) presenti al suo interno. In sostanza viene inviato un segnale al multiplexer della ALU per identificare l'operazione da svolgere: nel caso di AND e OR viene effettuata proprio l'AND o l'OR logico tra i valori in ingresso.

    Supponiamo di voler effettuare una AND tra due valori, questi due valori saranno i valori di input della ALU e verrà inviato il segnale 00 al multiplexer della ALU (ignoriamo per un attimo gli altri segnali di selezione) che a questo punto svolgerà l'AND logico tra i due valori in ingresso (confrontando bit a bit i due valori). Se guardi lo schema della ALU a 1 bit nelle slides delle reti combinatorie è più semplice vederne il funzionamento.

    Spero di aver chiarito il tuo dubbio

    1 reply
  2. Re: Operazioni nella ALU

    Si tutto chiaro, grazie mille

  3. Re: Operazioni nella ALU

    Solo un paio di osservazioni secondarie.

    Ciao, provo a risponderti io poi eventualmente i professori
    mi correggeranno.
    L'ALU effettua le operazioni di AND e OR tramite l'utilizzo
    delle porte logiche (AND e OR) presenti al suo interno.
    In sostanza viene inviato un segnale al multiplexer della ALU
    per identificare l'operazione da svolgere: nel caso di AND e
    OR viene effettuata proprio l'AND o l'OR logico tra i valori
    in ingresso.
    

    Più che la "operazione da svolgere" si tratta, in questa ALU semplificata oltre il livello della decenza, di "selezionare il risultato di interesse", tra tutti risultati, che sono comunque calcolati!

    Supponiamo di voler effettuare una AND tra due valori, questi
    due valori saranno i valori di input della ALU e verrà inviato
    il segnale 00 al multiplexer della ALU (ignoriamo per un
    attimo gli altri segnali di selezione) che a questo punto
    svolgerà l'AND logico tra i due valori in ingresso (confrontando
    bit a bit i due valori).
    

    Anche qui, in eventuali risposte a domande aperte, starei molto attento a non dire che c'è una attivazione di quella sotto-parte dell'ALU svolge l'operazione richiesta (che non è il multi-plexer come appare - penso per svista - nella risposta), questo sempre per lo stesso motivo: in questa ALU didattica (irrealistica) i risultati delle diverse operazioni sono calcolati tutti e poi si seleziona solo quello di interesse.

    Se guardi lo schema della ALU a 1 bit nelle slides delle reti
    combinatorie è più semplice vederne il funzionamento.
    

    In generale, io terrei presente anche il libro di testo, si tratta del testo più usato al mondo su questi argomenti e, con l'eccezione della gestione dell'I/O, è fatto bene.

    1 reply
  4. Re: Operazioni nella ALU

    La ringrazio per il chiarimento in merito all'errore su "identificare l'operazione da svolgere"; avevo riportato, a parole mie, quanto detto dalla professoressa Fersini nella lezione "Circuiti combinatori: array di elementi logici e ALU ad 1 bit":

    "Quando il segnale di controllo [...] viene posto uguale a zero [...] viene eseguita la porta in AND [...] mentre quando il nostro selettore è uguale a uno viene eseguita la funzione logica di OR".

    Forse ho frainteso io il senso di quanto detto dalla professoressa.


    Non mi è chiaro invece cosa intende con "che non è il multi-plexer come appare - penso per svista - nella risposta", potrebbe spiegarmi qual è l'errore?

    1 reply
  5. Re: Operazioni nella ALU

    È saltato qualche carattere... La frase sarebbe dovuta essere: che non è il multi-plexer CHE SVOLGE L'OPERAZIONE LOGICA come appare - penso per svista - nella risposta.