Scarica riassunti di informatica, il CPU e più Appunti in PDF di Informatica Industriale solo su Docsity!
INFORMATICA E TECNOLOGIE DELLA COMUNICAZIONE
A.A.2020/
DENTRO LA CPU
Corso di Laurea in Comunicazione,
Tecnologie e Culture Digitali- L
Contenuto della lezione
- Come funziona la CPU?
- quali operazioni può eseguire?
- come le esegue? su che tipo di dati?
- dove vengono memorizzati le istruzioni e i dati?
- Alcuni brevi e noiosi programmi per illustrare i principi
fondamentali
- una macchina giocattolo per provare i programmi
- un programma che simula la macchina giocattolo
- così possiamo eseguire programmi scritti per la macchina giocattolo
- architettura dei computer: macchine reali
- caching: far sembrare le cose più veloci di quanto non
siano
- come vengono prodotti i chip
- macchine di Turing
Unità di controllo C.P.U. Unità aritmetico-logica A.L.U. INPUT OUTPUT Programma Contatore d’istruzioni Accumulatore R R R 2 REGISTRI Modello di calcolo
Il modello astratto della macchina di Von Neumann è detta anche RAM-
Random Access Machine o macchina a registri
Legenda^ Periferiche Memoria Processore
Come funziona la CPU
- Può eseguire calcoli aritmetici (addizioni, sottrazioni,
moltiplicazioni e divisioni).
- Può eseguire operazioni di trasferimento da /a la RAM
(recupero dalla memoria e memorizzazione)
- Può controllare e coordinare l’input/output dalle periferiche.
- Può eseguire operazioni di “ decisione ” ( può operare senza
l’intervento umano)
- Come disse Von Neumann “ L’intento è che la macchina sia
completamente automatica, cioè indipendente
dall’operatore umano una volta avviati i calcoli.”
Un semplice computer giocattolo: struttura
- Ogni cella (registro) della RAM è univocamente
identificata da un indirizzo (numero esadecimale)
- ogni cella della RAM contiene un numero o
un’istruzione
- La CPU ha un registro “speciale ” l’accumulatore” per
l'aritmetica e l’input & output.
- un posto per memorizzare temporaneamente un valore
- esecuzione: la CPU funziona con un semplice ciclo
- FETCH : recupera la prossima istruzione dalla RAM
- DECODE : stabilisci che cosa ti chiede di fare
- EXECUTE : esegui l’operazione
- torna a FETCH
Un semplice computer giocattolo: linguaggio
- Linguaggio di programmazione(“set di istruzioni”): poche
istruzioni, tra cui
- GET prendi un numero inserito da tastiera e mettilo nell’accumulatore
- PRINT stampa il numero che si trova nell’accumulatore (il contenuto dell'accumulatore non cambia)
- STORE M memorizza una copia del contenuto dell’accumulatore nella
locazione M della RAM il numero che si trova nell'accumulatore
( l'accumulatore non cambia )
- LOAD M carica nell’accumulatore il numero che si trova nella
locazione M della RAM (il contenuto originale della RAM non
cambia)
- ADD M somma il numero che si trova nella locazione M della RAM al
valore dell’accumulatore , metti il risultato nell’accumulatore (il
contenuto originale della RAM non cambia)
Programma per stampare un numero
- Per la sperimentazione usarevedere il simulatore:
- https://www.cs.princeton.edu/courses/archive/fall07/cos109/toysim.html
GET prendi un numero dalla tastiera e mettilo
nell’accumulatore
PRINT stampa il numero che si trova nell'accumulatore STOP Il compilatore esegue
1. Converte queste istruzioni in numeri 2. Memorizza il programma nella RAM a partire dalla prima posizione 3. Ordina alla CPU di iniziare l'elaborazione delle istruzioni dalla prima posizione **La CPU
- Elabora GET: la decodifica, la esegue
- Elabora PRINT:, la decodifica, la esegue
- Elabora STOP** , la decodifica, la esegue
Esempio 2
- Programma della macchina giocattolo che somma due numeri e stampa la somma GET immetti il primo numero nell’accumulatore STORE FirstNum memorizzalo in una locazione della RAM chiamata FirstNum GET immetti il secondo numero nell’accumulatore ADD FirstNum somma il primo numero al secondo PRINT stampa la somma risultante STOP ferma l’esecuzione del programma N.B****. FirstNum è la locazione della RAM in cui si trova il primo numero in input
Istruzione GOTO
Top: GET immetti un numero
nell’accumulatore
PRINT stampalo
GOTO Top Ritorna a Top per prendere un
altro numero
Ciclo o loop
Decisione e terminazione
- Come fermiamo la ripetizione?
- aggiungiamo un’altra nuova istruzione
IFZERO se il valore nell’accumulatore è
uguale a zero, vai a una posizione specifica
anziché alla successiva
- L’istruzione GOTO e IFZERO ci permettono di scrivere
programmi che ripetono le istruzioni fino a quando
una condizione specifica diventa vera
- la CPU può cambiare il percorso di un’elaborazione in
base ai risultati di calcoli precedenti
Diagramma di flusso
get
Acc=0?
Si
NO
stampa
STOP
Esempio Programma della macchina giocattolo per sommare una sequenza di numeri LOAD 0 carica 0 nell’accumulatore STORE Sum locazione di memoria in cui è conservata la somma corrente (inizializzata a 0 all’avvio del programma) Top: GET prendi un numero e mettilo nell’accumulatore IFZERO Bot se è zero, vai a Bot ADD Sum aggiungi alla somma corrente il nuovo numero STORE Sum memorizza il risultato come nuova somma corrente GOTO Top ritorna a Top per prendere un altro numero Bot: LOAD Sum carica la somma corrente nell’accumulatore PRINT stampa il valore di Sum STOP
Processori reali
- accumulatori multipli (detti “registri”)
- molte più istruzioni, anche se fondamentalmente degli stessi tipi
- aritmetiche di vario tipo e dimensione (es. su interi a 8 , 16 , 32 , 64 bit): somma, sottrazione ecc., solitamente operando su registri
- di spostamento dei dati di vario tipo e dimensioni caricare in un registro un valore presente in memoria salvare nella memoria il valore del registro
- di confronto, di diramazione : per selezionare l’istruzione successiva in base ai risultati del calcolo - consentono di modificare il normale flusso sequenziale delle istruzioni - normalmente la CPU si limita a seguire le istruzioni nell’ordine in cui sono salvate in memoria
- di controllo del resto del computer
- repertorio tipico delle CPU: da decine a poche centinaia di istruzioni
- le istruzioni e i dati occupano di solito più posizioni di memoria
- i processori moderni hanno “core” multipli, cioè più CPU sullo
stesso chip
Caching
- cache: una piccola memoria molto veloce per informazioni di recente utilizzo - carica un blocco di informazioni vicine alle informazioni richieste
- la CPU guarda prima nella cache, poi nella memoria principale
- cache separate per istruzioni e dati
- il chip della CPU di solito include più livelli di cache
- le cache più veloci sono più piccole
- la cache funziona perché è probabile che le informazioni usate di recente vengano usate di nuovo presto - quindi è più probabile che siano già nella cache
- la cache di solito carica le informazioni vicine insieme
- è più probabile che le informazioni vicine siano usate presto
- quindi è più probabile che siano nella cache quando servono
- questo tipo di cache è invisibile agli utenti
- tranne per il fatto che la macchina funziona più velocemente di quanto farebbe senza la cache