Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
ALU
L'Arithmetical-Logic Unit è un processore digitale preposto all'esecuzione di
operazioni aritmetiche o logiche su numeri interi. Per le operazioni in virgola
mobile, essendo più complesse, esiste un'unità dedicata chiamata Floating Point
Unit (FPU). Infatti la rappresentazione in virgola mobile è molto più complessa
della rappresentazione a complemento a due utilizzata tipicamente dalle ALU,
proprio per questo le FPU tendono ad essere molto più articolati delle ALU
includendo circuiti molto più complessi. 20
Aritmetica Binaria
L'aritmetica binaria utilizza le stesse regole dell'aritmetica decimale, con l'unica
accortezza di ricordare che la base di numerazione è 2.
Somma
Consideriamo il numero 1310 = (1101)2 e il numero 710 = (0111)2; sommandoli
otteniamo:
1101+
0111=
________
10100
in quanto 1+1 = 102, ovvero 0 con riporto di 1, 1+1+1 = 112, ovvero 1 con
riporto di 1, e così via.
Sottrazione
Consideriamo gli stessi valori presi ad esempio per l'addizione:
1101- 13-
0111= 7=
_______ ______
0110 6
Vale lo stesso principio della somma, con l'ovvia differenza che stavolta si tratta
di sottrarre i valori. Quindi otteniamo, ad esempio, che 102 -1 = 1, ovvero che
come nell'aritmetica a base 10 si possa dover ricorrere alla cifra
immediatamente più a sinistra per completare l'operazione. C’è un caso
particolare al quale bisogna fare attenzione, ovvero quando il numero delle cifre
non permette di rappresentare il risultato: in questo caso si verifica il fenomeno
dell’overflow nella propagazione del riporto. Infatti se si considerano due numeri
interi senza segno rappresentati su n bit, si verifica la condizione di overflow ogni
n
volta che il risultato supera 2 -1. Il Calcolatore non è in grado di prevenire un
errore di Overflow, in quanto può venire individuato solo dopo aver effettuato
l’operazione. 21
Supponiamo di voler effettuare la somma 71+60=131 in complemento a 2 su
8bit (=[-128,+127]). Il risultato della somma non è contenuto nel range di valori
ottenibili, quindi verrà generato un errore di Overflow. La condizione di overflow
si ha quando il risultato di un calcolo intero è un numero che in binario occupa
più bit di quelli a disposizione, di conseguenza ne viene troncata la parte più
significativa generando un risultato errato.
Moltiplicazione
La moltiplicazione avviene come quella in decimale, ma sommando i risultati in
forma binaria.
1101*
0111=
________
1101+
11010+
110100+
0000000=
_________
1011011
Divisione
Ancora una volta, la tecnica è identica alla divisione in base 10 e può essere
eseguita contando quante volte un numero può essere sottratto da un altro. Il
risultato è detto quoziente. In realtà questa operazione viene eseguita nei
calcolatori elettronici per sottrazioni ripetute utilizzando il metodo del
complemento a 2.
Celle Addizionatrici
Una cella addizionatrice è un modulo combinatorio con tre ingressi e due uscite
che opera sui bit omologhi di due parole binarie di n bit e su un bit di riporto,
producendo in uscita un bit di somma e uno di riporto. Quindi ogni coppia di
parole viene analizzata bit per bit sommando di volta in volta i bit in posizione i-
22
esima e tenendo conto del riporto dell'operazione precedente.
Le celle addizionatrici sono componenti base per costruire un circuito che realizzi
la somma di due parole binarie che codifichino interi in complemento a 2.
Semplificazione di forme SOP per una cella addizionatrice 23
Espressioni semplificate della cella addizionatrice:
• in serie: si possono ottenere moduli addizionatori sulle parole con
propagazione seriale dei riporti;
• in parallelo: ove vi è un modulo che calcola direttamente i riporti ci, dati
il riporto iniziale c0 ed i bit ai e bi delle parole a e b da somma. Una cella
addizionatrice è alla base della progettazione ALU, facilmente
interagibile con altre operazioni, controllabili attraverso collegamenti di
multiplazione.
Operazioni effettuate dai circuiti ALU
Moltiplicazione: Il circuito moltiplicatore consiste di un registro prodotto
inizializzato nei suoi LSB (Least Significant Bit, bit con peso minore) con il
moltiplicatore, un registro complicando ed un sommatore, comandati dall'unità di
24
controllo.
Divisione: viene eseguita testando se il divisore è contenuto 0/1 volte nei resti
parziali via via che si procede nell'operazione. Il test di contenimento può essere
effettuato sottraendo dal resto parziale il divisore: se il risultato è uno allora il bit
di quoziente è uno, altrimenti zero. Il circuito divisore consiste di un registro
resto/quoziente inizializzato con il dividendo, un registro divisore ed un
sommatore comandati dall'unità di controllo.
INTRODUZIONE ARCHITETTURA DI VON NEUMANN
L'architettura di Von Neumann è formata da 4 elementi base: CPU, Memoria, Bus
di sistema e periferiche di I/O. In questa architettura i bus di sistema hanno il
compito di fornire la capacità di comunicare a tutti gli altri elementi, le
periferiche, come abbiamo già visto, permettono l'interazione con l'utente, la
memoria RAM (Random Access Memory) ospita i dati che devono, stanno
venendo e saranno elaborati e la CPU si occupa dell'elaborazione.
La CPU (Central Processing Unit) si compone di 5 elementi fondamentali:
1. C.U. (Unità diControllo)
2. A.L.U. (UnitàAritmetico-Logica)
3. Registri diMemoria 25
4. F.P.U. (Floating PointUnit)
5. P.C. (ProgramCounter)
L'Unità di Controllo legge le istruzioni del programma in esecuzione dai registri di
memoria, determinandone quale sarà la prossima azione da eseguire e inviando
di conseguenza segnali all'A.L.U. o ai BUS affinché vengano eseguite le
operazioni richieste. Terminate queste operazioni, i dati elaborati vengono scritti
nuovamente nei registri. Gli unici dati su cui la CPU può lavorare sono quelli
contenuti nei registri, che sono proprio per questo la tipologia di memoria più
veloce nel calcolatore, per quanto di dimensioni ridotte, se paragonata alla
memoria RAM o a un dispositivo di archiviazione. La F.P.U. è l'unità dicalcolo per i
valori in virgola mobile e il P.C. contiene l'indirizzo di
memoria della prossima istruzione da eseguire. Il clock di sistema è un orologio
che è in grado di inviare segnali elettrici scandendo la frequenza di lavoro del
sistema. È necessario anche per la corretta sincronizzazione di tutti gli elementi
del sistema stesso.
La memoria si differenzia in due categorie fondamentali: la Memoria ad Accesso
Casuale e la Memoria ad Accesso Sequenziale. La prima categoria include
HardDisk, RAM, CD, DVD, Pen-drivee così via, e si basa sul principio della
disposizione dei dati in maniera casuale nello spazio fisico, di modo da poter
accedere ai dati alla stessa velocità indipendentemente dalla loro collocazione.
Ovviamente il dispositivo tiene traccia in un'apposita struttura dati degli indirizzi
dimemoria dei dati su cui lavora; in questo modo, nota la posizione dei dati,
diventa facile accedervi. La memoria ad accesso sequenziale comprende nastri
magnetici e bobine e dè tanto più veloce tanto più i dati sono scritti vicino al
punto di lettura, ma diventa lenta manmano che ci si allontana da esso.
Una seconda divisione che si può fare per lememorie è in base all'utilizzo che se
ne fa o in base alle caratteristiche fisiche: abbiamo infatti la Memoria Centrale
(RAM e ROM) e la Memoria di Massa (Hard Disk, Floppy, Pen-Drive, CD, DVD)
oppure la divisione in memorie magnetiche (ovvero dispositivi che polarizzano il
materiale ferro-magnetico di cui è composto il supporto, come un hard disk, per
conservare le informazioni) e le memorie ottiche (che vengono lette e scritte
tramite l'utilizzo di un laser).
La Memoria ROM (Read-OnlyMemory) è una memoria in sola lettura contenente il
BIOS (Basic Input Output System) del calcolatore, ovvero il software che cerca il
Sistema Operativo nella memoria di massa del calcolatore e lo carica in RAM,
rendendo così possibile l'avvio del sistema operativo stesso.
La Memoria RAM è una tipologia di memoria volatile ad accesso casuale. I dati
quindi vengono conservati solo fintanto che permane una tensione elettrica
attraverso i moduli di memoria. 26
Le memorie Cache sono dispositivi di memorizzazione ultra-veloci. Hanno
capacità limitate di immagazzinare dati e sono usate nelle fasi relative
all'elaborazione-esecuzione di un dato o gruppo di dati. Sono memorie
temporanee che accolgono i dati prima di essere elaborati velocizzando così il
processo.
Il Registro di indirizzo (MAR) a 12 bit contiene l’indirizzo che indica la locazione di
memoria da leggere o scrivere, mentre il registro buffer di memoria (MBR) di 21
bit contiene i dati, le istruzioni o gli indirizzi da leggere o scrivere in memoria.
I vari moduli funzionali (CPU, RAM, unità di I/O) sono collegati attraverso speciali
linee di comunicazione, i BUS. Un Bus consiste di diverse linee di ingresso e
uscita che possono essere attivate o disattivate dai segnali di controllo inviati
dalla CU, permettendo così la trasmissione dei dati. I Bus possono essere di 3
tipi: di interruzione i-Bus (trasmette un segnare OR dei flags, se il valore è 1
esiste un'unità che richiede un trasferimento dati alla CPU), di stat of-Bus
(segnala lo stato di unità alla CPU quando il selettore riconosce che è stata
selezionata da una richiesta) e di comando c-Bus (trasmette al decodificatore di
comandi i segnali di CU generati in funzione del codice operativo diiscrizione).
Le periferiche I/O sono connesse ai bus tramite apposite interfacce e possono
essere:
• Periferiche di Input: permettono di inserire dati nel calcolatore (mouse,
tastiera).
• Periferiche di Output: permettono di visualizzare i dati in uscita dal
calcolatore (monitor, stampante).
• Periferiche di Input/Output: permettono sia di inserire sia di ricevere dati
(monitor touch screen, stampante multifunzione).
Le componenti di un’unità I/O sono:
• il selettore di unità, che abilita l'esecuzione dell'operazione quando
riconosce che l'istruzione lo richiede; il riconoscimento avviene tramite
un indirizzo specificato nei bit meno significativi dell'istruzione che
richiede ilservizio;
• il decodificatore di comandi, che interpreta l'operazione richiesta dalla
CPU, ovvero riceve i segnali di controllo generati dalla CU;
• il Data Buffer, che è un registro utilizzato dal