Il 0% ha trovato utile questo documento (0 voti)
38 visualizzazioni8 pagine

Informatica Teoria

Il documento descrive l'architettura dei dati, evidenziando le unità di I/O, elaborazione e memorie, con particolare attenzione al microprocessore e alla sua struttura interna. Viene spiegato il funzionamento della CPU, delle memorie e dei bus, nonché le rappresentazioni dei dati in vari sistemi numerici, inclusi i metodi per rappresentare numeri relativi. Infine, si discute la codifica in modulo e segno e in complemento a due, sottolineando l'importanza di quest'ultima per le operazioni aritmetiche.

Caricato da

matthew.polito15
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
38 visualizzazioni8 pagine

Informatica Teoria

Il documento descrive l'architettura dei dati, evidenziando le unità di I/O, elaborazione e memorie, con particolare attenzione al microprocessore e alla sua struttura interna. Viene spiegato il funzionamento della CPU, delle memorie e dei bus, nonché le rappresentazioni dei dati in vari sistemi numerici, inclusi i metodi per rappresentare numeri relativi. Infine, si discute la codifica in modulo e segno e in complemento a due, sottolineando l'importanza di quest'ultima per le operazioni aritmetiche.

Caricato da

matthew.polito15
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

ARCHITETTURA DATI

L’elaborato possiede come blocchi fondamentali i seguenti:


●​ Unità di I/O: sono interfacce da/verso l’utente e includono la conversione
analogico-digitale e digitale-analogico.
●​ Unità di elaborazione: formata da circuiti per l’esecuzione di istruzioni e dal
microprocessore.
●​ Memorie: memorizza in modo permanente programmi e dati ed è necessaria per
l’elaborazione.
Nell’unità di elaborazione è contenuto il MICROPROCESSORE.

MICROPROCESSORE:
è un circuito che esegue tutte le istruzioni, esso infatti contiene tutti i circuiti per
eseguire le operazioni di base con numeri interi reali e operazioni logiche e
opportuni circuiti detti di “coordinamento” dell’esecuzione delle istruzioni e infine
contiene interfacce per spostare dati dalla memoria alle unità I/O.
La sua struttura interna è composta da questi 3 elementi:
●​ Cpu: central processing unit.
●​ Interfacce:
●​ Memoria: “Locale” o detta anche cache (le altre memorie non sono interne
al microprocessore.)

CPU:
o central processing unit, è a sua volta formata da:
●​ Unità di controllo: UC
●​ Registri: verso le memorie e le unità I/O, contenuti nella UO (unità
operativa).
●​ Unità Operativa: è a sua volta suddivisa in 2 sistemi di calcoli ovvero:
ALU e FPU.

1)​ UNITA’ DI CONTROLLO:


è il cuore dell'elaboratore che, in base alle istruzioni contenute nel
programma che esegue ed allo stato di tutte le unità, decide l’operazione
da eseguire ed emette gli ordini relativi.
Questa unità viene suddivisa in:
●​ PC = PROGRAM COUNTER, ovvero un registro che indica sempre
l’indirizzo della cella di memoria che contiene la prossima istruzione
da eseguire.
●​ IR = INSTRUCTION REGISTER, registro che memorizza
temporaneamente l’operazione corrente da eseguire.
●​ LOGICA DI CONTROLLO: interpreta il codice macchina del IR per
decidere ed emettere ordine che le varie unità devono eseguire.

Questi tre componenti sono anche utilizzati nell’esecuzione di
un’istruzione, la quale a sua volta si compone in 3 principali fasi:
●​ FETCH: preleva dalla memoria l’istruzione nella posizione indicata
dal PC, e incrementa il valore di PC per la prossima istruzione da
prelevare.
●​ DECODE: interpreta gli ordine del codice macchina contenuti in IR.
●​ EXECUTE: attiva i blocchi interessati dall’istruzione per eseguirla.

2)​ UNITA’ OPERATIVA:


svolge tutte le elaborazioni richieste (aritmetiche, logiche e grafiche).
Essa è suddivisa in:
●​ Registri: sono elementi di memoria locale usati per conservare
temporaneamente dei dati o istruzioni, sono a numero limitato. Ogni
trasferimento da processore a memoria e viceversa, avviene tra
registri.
●​ Registri di Flag: i suoi bit segnalano due cose; determinati stati delle
unità di calcolo e alcune informazioni sul risultato dell’ultima
operazione eseguita.
Tra i più significativi troviamo:
●​ ZERO: indica se il risultato è o meno = 0.
●​ SEGNO: indica il segno dell’operazione precedente.
●​ OVERFLOW: indica se il risultato eccede i limiti di
rappresentazione.
●​ Alu: arithmetic logic unit, svolge tutti i calcoli su numeri interi.
●​ Fpu: floating point unit, svolge i calcoli su numeri reali.

MEMORIE:
le memorie hanno il compito di memorizzare i dati e le istruzioni necessarie
all’elaboratore per operare ed è necessaria per motivi intrinseci di
memorizzazione e di efficienza.
Le principali caratteristiche sono:
●​ Indirizzamento: La memoria è organizzata in celle, ogni cella di memoria,
ovvero la minima unità accessibile è associata a un indirizzo per
identificare univocamente ogni singola cella.
●​ Parallelismo: Ogni cella di norma contiene una quantità fissa di bit (word),
la quale è identica per tutte le celle, accessibile con un’unica istruzione, ed
è multiplo del byte.
●​ Accesso
●​ Struttura gerarchica: formata da diversi tipi di memorie quali: registri,
cache, ram, memorie di massa, flash o dischi rigidi.

IMPORTANTE: le memorie vicine al processore sono le più veloci e costose e volatili, le memorie
lontane dal processore sono le più lente, e non volatili.
DI SEGUITO STUDIEREMO LA STRUTTURA GERARCHICA DELLE MEMORIE.

1)​ REGISTRI:
La memoria più veloce, interna al processore, memorizzano
temporaneamente dati o istruzioni e sono gestiti dall’elaboratore.
2)​ CACHE:
Memoria veloce e piccola, posta tra la CPU e la memoria principale. Il suo
scopo principale è velocizzare l’esecuzione dei programmi recuperando
velocemente i dati o programmi utilizzati nel breve termine.
3)​ RAM:
Memoria principale o random access memory.
●​ Accesso volatile: permette l’accesso diretto a qualunque indirizzo di
memoria con lo stesso tempo di accesso e si può accedere alle celle
sia in lettura che in scrittura, specificandolo nell’indirizzo.
●​ Volatile: nella memoria Ram vengono copiati i programmi che la CPU
deve eseguire, e una volta chiuso il programma, le modifiche
effettuate, se non salvate, verranno cancellate.
4)​ DI MASSA:
Memoria secondaria, più lenta e meno costosa, con capacità di
memorizzazione maggiore ed in grado di memorizzare i dati in modo
permanente.
5)​ FLASH:
Le chiavette USB e le SD card e i più recenti hard disk, stato solido sono
basati su tecnologia elettronica e sono non volatili.
6)​ DISCO RIGIDO:
Gli hard disk sono dei supporti di plastica o vinile, su cui è depositato del
materiale magnetizzante. Nel corso delle operazioni i dischi vengono
mantenuti in rotazione a velocità costante e le informazioni vengono lette e
scritte. Sono le memorie più lente.
—----------------------------------------------------------------------------------------------------------
CLOCK:
Ogni elaboratore contiene un elemento di temporizzazione che genera un
riferimento temporale comune per tutti gli elementi costituenti il sistema di
elaborazione.
Esso possiede:
●​ PERIODO “ T “ → misurato in “ s “. ​ ​ f = 1/T
●​ FREQUENZA “ f “ → misurata in “ s-1 “.

LA TEMPISTICA DELLE ISTRUZIONI:


un ciclo macchina è : l'intervallo di tempo in cui viene svolta una operazione
elementare ed è un multiplo intero del periodo del clock.
L’esecuzione di un'istruzione richiede un numero intero di cicli macchina,
variabile a seconda dell’istruzione.
Questi due fattori influenzano le prestazioni del programma.
—----------------------------------------------------------------------------------------------------------
I BUS:
sono delle interconnessioni, e sono stati pensati per poter connettere unità in
modo efficace, in quanto le connessioni di tipo punto-punto, non era una
soluzione pratica. Con i bus, utilizzano un’unica linea di connessione per
connettere tutti i componenti.

●​ VANTAGGI:
-​ Costi ridotti di produzione.
-​ Estensibilità o scalabilità.
-​ Standardizzabilità.
●​ SVANTAGGI:
-​ Lentezza e sovraccarico del processore (CPU)

●​ LE PRINCIPALI CARATTERISTICHE DI UN BUS SONO:


-​ Trasporto: di un solo dato per volta.
-​ Frequenza: numero di dati trasporti al secondo.
-​ Ampiezza: numero di bit di cui è costituito un singolo dato.
●​ SUDDIVISIONE DI UN SINGOLO BUS:
-​ Bus dati: DBus.
-​ Bus indirizzi: ABus.
-​ Bus controllo: CBus.

-​ La dimensione dell’ ABus = massimo numero di celle di memoria


indirizzabili.
-​ La dimensione del DBus = dimensione di una cella di memoria.

max MEM = 2|ABus| |DBus| = … byte


—----------------------------------------------------------------------------------------------------------
RAPPRESENTAZIONI DATI
Il nostro sistema di numerazione, indo-arabo è:
-​ Decimale = ovvero che è composto da 10 cifre {0, …, 9}
-​ Posizionale = che ogni cifra ha valore in potenze della base (base = 10).
Esempio: 252 = 2x100 + 5x10 + 2x1 = 2x102 + 5x101 + 2x100 = …
Altri sistemi possono essere suddivisi in:
●​ non posizionali, posizionali e ibridi.

SISTEMA DECIMALE SISTEMA BINARIO


Base = 10. Base = 2.

Cifre = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Cifre = {0, 1}.

Peso della cifra i-esima = Bj BIT = BInary digiT

CONVERSIONE BINARIO - DECIMALE:


effettuo la somma pesata delle cifre binarie.
ES: 11012 = 1x23 + 1x22 + 0x21 + 1x20 = 8 + 4 + 0 + 1 = 1310

CONVERSIONE DECIMALE - BINARIO:


divisioni successive per 2, e lettura dei resti di divisione in ordine inverso:
ES: 13 : 2 = 6 (r=1) : 2 = 3 (r=0) : 2 = 1 (r=1) : 2 = 0 (r=1) → 11012

Il sistema binario però presenta dei limiti che sono:


1 bit = 2 numeri = {0, 1}2
2 bit = 4 numeri = {00, 01, 10, 11}2
Quindi per numero appartenente all'insieme dei numeri naturali e a N bit:
ottengono un totale di 2N (numero di bit) combinazioni di numeri e un intervallo
in base 10 di 0 =< x =< 2N - 1

SOMMA IN BINARIO SOTTRAZIONE IN BINARIO


0+0=0 0-0=0

0+1=1 0 - 1 = 1 (borrow = 1)

1+0=1 1-0=1

1 + 1 = 0 (carry = 1 ) 1-1=0
TERMINOLOGIA:
●​ Bit: rappresenta una singola cifra.
●​ Byte: aggregazione di 8 bit.
●​ Word: aggregazione di 4 byte.

Dato un qualunque numero di bit esempio: 101101 allora: MSB → 1 0 1 1 0 1 ← LSB


(MSB = Most Significant Bit ​ LSB = Least Significant Bit)

OVERFLOW:
tale termine si usa per indicare l’errore che si verifica in un sistema di calcolo
automatico quando il risultato di un'operazione:
non è più rappresentabile con la medesima codifica e numero di bit degli
operandi.
L’overflow è definita come condizione "dinamica", in quanto esiste solo come
risultato di un'operazione.

Nella somma in binario puro si ha overflow quando si ha il carry (1) sul MSB.
ESEMPIO:
operandi su 4 bit: 0101 e 1110
operazione da eseguire : somma.

1 1
0101+
1110=
—-------
10011
Quello in rosso è overflow, in quanto il risultato è su 5 bit e non su 4.

SISTEMA OTTALE SISTEMA ESADECIMALE


Base = 8. Base = 16.

Cifre = {0, 1, 2, 3, 4, 5, 6, 7} Cifre = {0, …, 9, A, … F}.

Utile per scrivere in modo compatto i Utile per scrivere in modo compatto i
numeri binari {3:1} (Q = ottale). numeri binari {4:1} (H = esadecimale).

Fino ad ora abbiamo visto come rappresentare numeri interi appartenenti


all’insieme dei numeri naturali.
RAPPRESENTAZIONI NUMERI RELATIVI
ovvero tutti quei numeri positivi (+) e negativi (-). Per rappresentare in binario
questi numeri ci sono 2 modi:
●​ Modulo e Segno
●​ Complemento a Due

CODIFICA IN MODULO E SEGNO:


un bit per il segno ovvero il MSB, dove 0 = positivo e 1 = negativo.
N-1 bit per il valore assoluto o modulo.

Esempi: +310 = 0 011m&s


-310 = 1 011m&s

Tra gli svantaggi e i limiti di questo metodo di codifica troviamo:


-​ Doppio zero : - 0 e + 0, ma noi sappiamo che 0 non ha segno.
-​ Operazioni complesse: A + B

A>0 A<0

B>0 A+B -|A| + B

B<0 A - |B| -(|A| + |B|)

-​ In una rappresentazione M&S su N bit: - 2N-1 - 1 =< x =< + 2N-1 - 1

CODIFICA IN COMPLEMENTO A DUE:


in questa codifica per un numero a N bit
-​ MSB ha sempre peso negativo = -2N-1
-​ Gli altri hanno sempre peso positivo

Esempio: dato un byte = 0 1 1 0 1 0 1 02 → in questo caso MSB = 0 e avrà peso: 0 x -27

è utile per le operazioni e usato da tutti i compilatori.

IL COMPLEMENTO A DUE rende il valore binario posizionale ed è utile per evitare


la netta separazione tra segno e modulo del M&S.

La rappresentazione in complemento a due è oggi la più diffusa perché


semplifica la realizzazione dei circuiti per eseguire le operazioni aritmetiche.

per le operazioni, possono essere applicate le regole binarie a tutti i bit.


Dopo aver visto quindi la codifica in complemento a due, facciamo caso a come
convertire un numero da decimale a complemento a due.

●​ Se positivo → si effettua la solita conversione.


●​ Se negativo → converto il modulo in binario.
​ → si complementa ogni singolo bit ( 0 → 1 e 1 → 0)
→ si somma +1 al complementare del numero.

Esempio: +1510 su 5 bit e -1210 su 5 bit


+1510 = 0 1 1 1 12 = 0 1 1 1 1CA2
-1210 = 0 1 1 0 02
1 0 0 1 1 → Qui ho complementato ovvero ho invertito gli 0 e gli 1
1 0 1 0 0CA2 → Qui invece ho aggiunto un + 1 al numero sopra.

Finita la conversione, argomentiamo e trattiamo l’overflow nella codifica nel


complemento a due.

-​ SI HA OVERFLOW → quando ho operandi a segno discorde.


-​ NON SI HA OVERFLOW → quando ho operandi a segno concorde.

IL CARRY SUL MSB SI TRASCURA IN OGNI CASO !

RAPPRESENTAZIONI NUMERI REALI


PER QUESTI NUMERI VEDI LE SLIDE DEL PROF SUL DRIVE NON
SONO MAI STATE CHIESTE NELLE PROVE ITINERE IN NESSUN TEST
MA NON SI SA MAI DAGLI UN OCCHIATA PRIMA DELL’ESAME.

Potrebbero piacerti anche