Sei sulla pagina 1di 3

LEZIONE 9

ARCHITETTURA DEGLI ELABORATORI

Unità di elaborazione: tutta la complessità sta qui dentro

Memoria: (si ricorda cosa va fatto e su che dati)

Tutto è digitale (codifica di zeri e uni) anche le sequenze

Tutto interagisce con dispositivi analogici (mouse, microfono, monitor, stampante, ecc), input e output

COMPONENTI FONDAMENTALI

I/O => interfaccia tra elaboratore e utente

UNITA DI ELABORAZIONE => circuiti per esecuzione delle istruzioni

MEMORIA=> salva dati e programmi, i circuiti devono sapere cosa elaborare

MICROPROCESSORE

Esegue fisicamente tutte le istruzioni (correte che passa o non passa), contiene circuiti per il
coordinamento, deve comunicare con la memoria e dialogare con l’utente. Ha anche una piccola parte di
memoria con dei flag per tenere piccole informazioni.

È organizzato in 3 elementi:

 interfaccia: interagisce con input output


 Cpu (central processing unit)
1. unità di controllo
2. registri=>blocco note, una piccola memoria per unità operativa, tengono conto di piccoli
dati parziali prima di andare sulla memoria, per avere operatori vicini e comodi
registri di flag=> tengono tracce di risultati appena calcolati, servono all’elaboratore per
tenere traccia di informazioni importanti
3. ALU e FPU per fare operazioni ALU più veloce di FPU
4. Unità di controllo=> decide cosa devo fare, chi lo fa. Ci sono dei registri fondamentali,
program counter (in ogni momento sa quale istruzione dobbiamo eseguire in un dato
indirizzo) e instruction register, ogni dato ha un indirizzo lo copio e lo incollo
nell’instruction register (da cui parte la fase decode, data un’istruzione cosa devo fare? ,
codifico gli zeri e uni e conosco cosa fare e su cosa lo fa la logica di controllo, poi mando i
comandi verso l’unità operativa) dopo aver fatto l’istruzione aggiorno il program counter,
così che quando riparto cambio luogo dove lavorare e l’unità di controllo riparte.
Fetch=prelevo istruzione da memoria centrale
Decode=prendo il contenuto, capisco gli ordini da dare
Execute=eseguire le operazioni
5. Unità operativa=> svolge calcoli
6. Clock=> dà il tempo, si dà la frequenza con unità giga hertz, dà la temporizzazione e tutto è
sincronizzato. Operazioni della ALU la fa in un ciclo di clock, mentre con operazione con
FPU ci mette circa 15 cicli di clock (come operazioni su float). Operazioni di memoria 5 cicli
perché devo uscire dalla CPU e comporta più tempo, input output circa 100 cicli
 Memoria
Fornisce i dati per eseguire informazioni, qualsiasi elaboratore ha una gerarchia di memorie per
avere tutto subito, veloci, hanno un insieme di caratteristiche. È organizzata in celle, organizzate in
parole e ognuna parola ha un indirizzo che identifica ogni singola cella
1. Parallelismo=> ogni cella di memoria ha una certa quantità fissa di bit, memoria organizzata
in parole (world) di 32 bit o 64 bit, sempre un multiplo di byte per comodità.
La dimensione della parola è la stessa sia per la memoria che per gli elaboratori
2. Gerarchia di memoria=> si crea una gerarchia e ognuna mi da una caratteristica di memoria
(veloci, capiente), più vicini all’unità di controllo più siamo veloci ma rimane fino a che il
computer è acceso. Più mi allontano più è lento ma ha più capacità
Registri=> sono temporanei ma i più veloci, a ridosso della CPU, li gestisce il compilatore,
dice quale variabile va in quale registro
Memoria cache=>fa da tramite da CPU e memoria principale per velocizzare tutti i processi,
è gestita dal sistema operativo
RAM(random access memory)=>accedo casualmente a qualunque indirizzo con lo stesso
tempo di accesso (senza considerare quelli prima), è una memoria volatile, serve per
eseguire il programma di adesso, il sistema operativo sposta operazioni in RAM che esegue.
Ci sono vari tipi come SRAM (alimentata tiene i dati), DRAM (memorie basate su
condensatori e perdono la carica dopo un po’)
Memoria di massa o secondaria=> grande, poco costosa e lenta, ha tutti i programmi che
posso eseguire sul computer. Memorie flash= memorie veloce come ssd, dischi rigidi=dischi
magnetici letti e scritti da una testina (vinili) è lenta ma non volatile.

FUORI DAL PROCESSORE

 BUS=> fa da interconnessioni, consente ai dati di spostarsi tra controllo, input output, la memoria.
CPU collegata con le memorie e controllori di I/O, le connessioni punto-punto non sono comodi;
quindi, è stato creato un’unica linea bus che si dirama per ogni I/O. i bus così agisce in modo
semplice, non devo mettere circuiti dedicati, è scalabile, aggiungo senza avere impatti significativi,
un elemento si aggancia al bus con regole standard che definiscono come funziona la
comunicazione. Spesso elementi si contengono un unico posto BUS, la decisione è in mano al
processore, decide chi usa il bus per fare l’azione.
Un bus trasferisce un dato alla volta, con un certo numero di bit (ampiezza definisce la quantità di
bit) e la frequenza definisce quanti dati vengono spostati in un secondo.
Ci sono 3 bus
DBUS=> trasferisce dati
ABUS=>Trasferisce indirizzi
CBUS=>Trasferisce un bit se voglio leggere o scrivere
Il BUS che interagisce con la memoria deve essere uguale coma una cella di memoria così che una
parola sta esattamente nel DBUS
2**ABUS= indirizzi in memoria
Dato un ABUS la mia memoria contiene al massimo 2**Abus * Dbus bit

#esercizi su tabelle controllano le caratteristiche, se è sparsa(con tanti zeri)


#scorrere elementi, conto gli zeri e li confronto con il numero di elemeneti
compllessivi

def cecksparse(mat):
zero=0
n = len(mat)
element= n*n
for i in range (n):
for j in range(n):
if mat[i][j]==0:
zero=zero+1
if zero>= element/2:
return True
else:
return False
#matrice identità, tutti 1 sulla diagonale e altri elementi =0
def identità(mat):
n=len(mat)
i=0
j=0
flag=True #appena trovo una non identità diventa false

while i <n and flag:


while j<n and flag:
if i==j and mat[i][j]==1:
flag= False

elif i!=j and mat[i][j]!= 0:


flag=False
return flag

Potrebbero piacerti anche