La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architettura di un calcolatore

Presentazioni simili


Presentazione sul tema: "Architettura di un calcolatore"— Transcript della presentazione:

1 Architettura di un calcolatore

2 Indice Sistema di Elaborazione La macchina di Von Neumann Esempio
Memoria CPU Bus Interfacce Esempio L’algoritmo Il programma Fasi di esecuzione di un’istruzione

3 Il Sistema di Elaborazione

4 Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche

5 Software Componente del calcolatore costituita dai:
Programmi di base per la gestione del sistema Programmi applicativi per l’uso del sistema (possono usare i programmi di base)

6 Il Sistema di Elaborazione

7 HARDWARE:RAPPRESENTAZIONE SCHEMATICA
INPUT OUTPUT MEMORIA CPU Istruzioni Dati

8 DALLA MACCHINA DI TURING ALLA MACCHINA DI VON NEUMANN
La macchina di Turing aiuta a capire come sia possibile manipolare informazione in base a un programma, leggendo e scrivendo due soli simboli: ‘0’e ‘1’ Da questo punto di vista, pur essendo un dispositivo ideale, la macchina di Turing è strettamente imparentata col computer

9 Dalla macchina di Turing alla CPU
Un passo ulteriore, volendoci avvicinare al funzionamento di un vero computer, è costituito dalla MACCHINA DI VON NEUMANN

10 La macchina di Von Neumann
Unità di Elaborazione (CPU) Memoria Centrale (MM) Interfaccia Periferica P1 Interfaccia Periferica P2 Bus di sistema Collegamento Memoria di massa, stampante, terminale… Esecuzione istruzioni Memoria di lavoro

11 La macchina di Von Neumann
Il processore estrae le istruzioni dalla memoria e le esegue Le istruzioni possono comportare operazioni di manipolazione dei dati Oppure operazioni di trasferimento dei dati I trasferimenti di dati attraverso elementi funzionali diversi avvengono attraverso il bus di sistema Le fasi di elaborazione si susseguono in modo sincrono rispetto ad un orologio di sistema Durante ogni intervallo di tempo l’unità di controllo (parte del processore) stabilisce la funzione da svolgere L’intera macchina opera in maniera sequenziale

12 ARCHITETTURA DI VON NEUMANN: UNITA’ CENTRALE
CPU Preleva istruzione Esegue Memorizza risultato I/O Memoria BUS

13 MACCHINA DI VON NEUMANN: IL PROCESSORE (CPU)

14 COMPONENTI DELLA CPU La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

15 Componenti del processore (CPU)
REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

16 Registri I registri sono delle unità di memoria estremamente veloci
Sono usate per mantenere le informazioni di necessità immediata per il processore Le dimensioni dei registri variano da 16, 32, 64 bit Sono una parte fondamentale del processore

17 Registri Per esempio: Program Counter Per esempio: i Registri Generali
L’indirizzo della “prossima” istruzione da eseguire è memorizzato nel registro Program Counter Per esempio: i Registri Generali I registri che possono essere utilizzati come memorie temporanee per svolgere le operazioni matematiche

18 Componenti del processore (CPU)
REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

19 Unità di controllo L’unità di controllo è la parte più importante del processore Esegue le istruzioni dei programmi Coordina le attività del processore Controlla il flusso delle istruzioni tra il processore e la memoria

20 Unità di controllo Svolge la sua attività in modo ciclico
Preleva dalla memoria principale la “prossima” istruzione da eseguire Preleva gli operandi specificati nell’istruzione Decodifica ed esegue l’istruzione Ricomincia

21 Unità di controllo L’esecuzione comporta l’invio di comandi opportuni all’unità relativa Calcoli  Unità aritmetico logica Lettura/scrittura dati  memoria Acquisizione/stampa  dispositivi di I/O

22 Componenti del processore (CPU)
REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

23 Unità aritmetico logica
L’Unità aritmetico logica si occupa di eseguire le operazioni di tipo aritmetico/logico Somme, sottrazioni, …, confronti, … Preleva gli operandi delle operazioni dai Registri Generali Deposita il risultato delle operazioni nei Registri Generali Insieme all’unità di controllo collabora al completamento di un ciclo della macchina

24 Clock Abbiamo visto che il processore svolga la sua attività in modo ciclico Ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione macchina) Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari La frequenza del clock indica il numero di operazioni elementari che vengono eseguite nell’unità di tempo

25 Clock Consideriamo una ipotesi semplificata in cui ogni battito di clock corrisponde esattamente l’esecuzione di una sola istruzione macchina La frequenza del clock indica il numero di operazioni elementari che vengono eseguite nell’unità di tempo Per esempio: il clock che ha circa 66 milione battiti per secondo  il computer può eseguire circa 66 milione operazioni per secondo

26 Clock In realtà, questa ipotesi non è sempre vero Per esempio:
L’esecuzione di una istruzione può richiedere più battiti di clock Oppure nello stesso ciclo di clock si possono eseguire (parti) di istruzioni diverse Dipende dal tipo di processore Per esempio: Il processore Intel richiede 20 battiti del clock per calcolare la moltiplicazione di due numeri Il processore Intel può calcolare la moltiplicazione di due numeri usando solo un battito del clock

27 Clock La frequenza del clock si misura in:
MHz (1 MHz corrisponde circa a un milione di istruzioni elementari/battiti al secondo) GHz (1 GHz corrisponde circa a un miliardo di istruzioni elementari/battiti al secondo) Per esempio: se acquistate un calcolatore e vi dicono che ha un processore a 3 GHz Vuol dire che il processore è in grado di eseguire (circa) 3 miliardi di istruzioni al secondo

28 L’unità di elaborazione (CPU)
Stato CPU Flag: C, Z, S, V Operazioni aritmetiche e logiche Indirizzo prox istruzione Registro di stato (SR) Registro contatore di programma (PC) Registri operandi A Unità aritmetico logica (ALU) Registro interruzioni (INTR) B Registri generali Registro istruzione corrente (CIR) Unità di controllo (CU) Istruzione in elaborazione Clock Sincronizzazione Controllo: -Prelievo -Decodifica -Esecuzione Registro indirizzi (AR) Registro dati (DR) Parola letta/da scrivere in MM Indirizzo cella MM

29 ARCHITETTURA DI VON NEUMANN: MEMORIA CENTRALE

30 Memoria principale (RAM)
Perchè si chiama RAM (Random Access Memory)? Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza Il termine “random” (casuale) indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria

31 Memoria principale (RAM)
Alcune proprietà della memoria principale Veloce: per leggere/scrivere una cella ci vuole un tempo di accesso dell’ordine di poche decine di nanosecondi (millesimi di milionesimi di secondo = 10-9 sec.) Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto (Relativamente) costosa

32 Memoria principale (RAM)
Indirizzi Contenuto Tutte le celle hanno la stessa dimensione: 8, 16, 32, o 64 bit Le operazioni che si eseguono sulla memoria sono operazioni di lettura e scrittura Una cella può contenere un dato o un’istruzione 345 1 2 3.890 LOAD 3568 R1 3 LOAD 56 R1 4 5 ADD R1 R2 N

33 Memoria principale (RAM)
Ogni calcolatore usa un numero di bit costante per rappresentare gli indirizzi Maggiore è il numero di bit usati, maggiore sarà il numero di celle indirizzabili: spazio di indirizzamento Se si usano 16 bit per codificare gli indirizzi, si potranno indirizzare fino a celle (circa 64 KB di memoria, nell’ipotesi di celle di memoria di 1 byte) Con 32 bit si potranno indirizzare fino a celle (circa 4 GB di memoria)

34 Memoria principale (RAM)
All’aumentare delle dimensioni della memoria principale aumenta il numero di programmi che possono essere “contemporaneamente” attivi La RAM, fino ad un certo limite, è espandibile (slot di espansione)

35 Memoria principale (RAM)
bit 1 cifra binaria memorizza 0 oppure 1 byte 8 bit memorizza un carattere parola da 16 a 64 bit numeri e indirizzi di memoria Kilobyte (KB) 1024 byte circa mezza pagina di testo Megabyte (MB) 1024 KB un libro di 200 pagine Gigabyte (GB) 1024 MB alcuni volumi Terabyte (TB) 1024 GB una biblioteca Petabyte (PB) 1024 TB molte biblioteche

36 ALTRI TIPI DI MEMORIA NELL’UNITA CENTRALE
Memoria di sola lettura (ROM) Memoria cache Buffer

37 Memoria di sola lettura (ROM)
Non può essere modificata A differenza della RAM non è volatile Veloce quasi come la RAM Contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap)

38 Memoria cache Livello di memoria intermedio tra i registri e la RAM
Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta) Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer) È molto più costosa della RAM

39 Memoria cache In genere è interna al processore (cache L1)
Esiste anche una cache secondaria (L2) esterna al processore Le sue dimensione tipiche vanno dai 256KB a 1MB

40 La memoria centrale (MM)
Registro indir. (AR) k = 10 bit Registro dati (DR) load store h = 16 bit 1 1023 Parola (word) RAM e ROM Volatile Dati e istruzioni Spazio di indirizzamento 210=1024 Indirizzo cella Dato da leggere/scrivere

41 La memoria centrale (MM)
Il numero di bit che costituiscono l’indirizzo di un word all’interno della memoria è caratteristico del microprocessore e identifica lo spazio di indirizzamento del microprocessore Esempio: Pentium 32 bit Avendo a disposizione k bit è possibile indirizzare 2k byte Si ricorda che: 210 byte = 1Kilo Byte 220 byte = 1Mega Byte 230 byte = 1 Giga Byte 240 byte = 1Tera Byte

42 La memoria centrale (MM) quindi...
La memoria centrale si chiama usualmente ram o memoria ad accesso casuale Viene cosi detta una memoria il cui tempo di accesso sia indipendente dall’indirizzo della parola alla quale si vuole accedere Si tratta di una memoria volatile Altri tipi di memoria presenti in un calcolatore sono le rom Hanno caratteristiche generali simili alle ram Un tempo di accesso notevolmente maggiore Si tratta di memorie permanenti Sono tipicamente utilizzate per memorizzare quei dati e programmi che servono al momento dell’accensione dell’elaboratore, prima del caricamento del S.O. Esempio: Il BIOS (Basic Input Output System) che carica in memoria il sistema operativo quando la macchina viene accesa

43 Memoria secondaria La memoria principale non basta (è volatile, costosa) In grado di memorizzare i programmi e i dati in modo permanente È meno costosa che la memoria principale: le dimensioni della memoria secondaria sono di solito molto maggiori di quelle della memoria principale I supporti di memoria secondaria sono più lenti rispetto alla memoria principale (presenza di dispositivi meccanici) Non tutti i supporti di memoria secondaria permettono l’accesso diretto ai dati Alcuni permettono solo un accesso sequenziale (per esempio, nastri magnetici)

44 LA DIVISIONE DEI RUOLI TRA MEMORIA PRINCIPALE E MEMORIA SECONDARIA
I programmi e i dati risiedono nella memoria secondaria Processore Memoria principale Stampante Memoria secondaria

45 LA DIVISIONE DEI RUOLI TRA MEMORIA PRINCIPALE E MEMORIA SECONDARIA
I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principale Processore Memoria principale Stampante Memoria secondaria

46 LA DIVISIONE DEI RUOLI TRA MEMORIA PRINCIPALE E MEMORIA SECONDARIA
I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principale Il processore è in grado di eseguire le istruzioni di cui sono composti i programmi Processore Memoria principale Stampante Memoria secondaria

47 Ricordiamo: caricamento del programma
Quando si “lancia” un programma questo viene copiato dalla memoria secondaria (di solito un hard disk) nella memoria principale Questa operazione si chiama caricamento del programma e viene eseguita dal sistema operativo

48 Memoria secondaria La memoria secondaria deve avere capacità di memorizzazione permanente e quindi per la sua produzione si utilizzano tecnologie basate: sul magnetismo (tecnologia magnetica) dischi magnetici (hard disk e floppy disk) nastri magnetici sull’uso dei raggi laser (tecnologia ottica) dischi ottici (CD-ROM, DVD)

49 MACCHINA DI VON NEUMANN: I BUS

50 Bus Permette la comunicazione tra i vari componenti dell’elaboratore
CPU RAM Interfaccia dati indirizzi controllo

51 Il bus di sistema Il bus di sistema collega tra loro i vari elementi del calcolatore In ogni istante il bus è dedicato a collegare due unità, una trasmette ed una riceve Il processore seleziona la connessione da attivare e indica l’operazione da svolgere (bus mastering) Il bus è suddiviso in tre insiemi di linee: Bus dati Bus indirizzi Linee di controllo: trasportano informazioni relative alla modalità di trasferimento e alla temporizzazione

52 Il bus di sistema CPU Master/slave
Registro istruzione corrente (CIR) Registro dati (DR) Registro indirizzi (AR) Registro contatore di programma (PC) Registro di stato (SR) Registro interruzioni (INTR) A B Unità di controllo (CU) Clock Unità aritmetico logica (ALU) CPU Bus di sistema Master/slave Bus dati, Bus indirizzi, Bus controlli

53 Sequenza di lettura Passo 3 Passo 1 Passo 4 Passo 2 1023 123 42 CU 42
1023 123 42 123 Passo 1 CIR DR AR PC SR INTR A B CU Ck ALU OK Passo 4 READ Passo 2 123

54 Sequenza di scrittura Passo 2 Passo 1 Passo 5 Passo 3 Passo 4 1023 123
70 Passo 2 1023 123 42 123 Passo 1 CIR DR AR PC SR INTR A B CU Ck ALU OK Passo 5 WRITE Passo 3 123 70 Passo 4

55 Le interfacce delle periferiche
Si occupa della gestione dello scambio di dati tra processore e periferiche E’ possibile avere una interfaccia diversa per ogni periferica ma è più logico avere delle interfacce standard per periferiche simili Esempi di interfacce standard: Interfaccia seriale RS-232-C (mouse, modem, ...) Interfaccia PS2 (mouse, tastiera, ...) Interfaccia USB (mouse, telecamere, stampanti, scanner, ...) Interfaccia parallela Centronix (stampante, scanner, ...) Interfaccia ISA (modem, schede audio, ...) Interfaccia SCSI (hard-disk, CD-ROM, scanner, ...) Interfaccia EIDE (hard-disk, CD_ROM, ...) Ogni interfaccia contiene registri per: Inviare comandi alla periferica Scambiare dati Controllare il funzionamento della periferica

56 Le interfacce delle periferiche
Interfacccia periferica 1 Interfacccia periferica 2 Peripheral Data Register (PDR) Peripheral Data Register (PDR) Dato da leggere/scrivere Peripheral Command Register (PCR) Peripheral Command Register (PCR) Comando da eseguire Peripheral State Register (PSR) Peripheral State Register (PSR) Stato della periferica Bus di sistema

57 Le interruzioni Al fine di gestire richieste provenienti dalle periferiche può essere necessario interrompere la normale esecuzione di un programma La periferica segnala sue particolari necessità attraverso una interruzione Ad ogni passo di esecuzione la UC verifica lo stato del registro delle interruzioni Se si è verificata una interruzione: Lo stato del processore (registri) viene salvato in memoria Viene attivata una speciale procedura di gestione delle interruzioni (parte del S.O.) Quando la procedura di gestione delle interruzioni termina lo stato del processore viene ripristinato ed il programma viene ripreso

58 Es.: valutazione di espressione
Vogliamo calcolare il valore dell’espressione: (a+b)·(c+d) leggendo i valori delle variabili a, b, c, d dal dispositivo di ingresso e scrivendo il risultato della valutazione sul dispositivo di uscita.

59 Un algoritmo generale Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d Somma il valore di a al valore di b Salva il risultato parziale ottenuto Somma il valore di c al valore di d Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato Scrivi sul dispositivo di uscita il risultato della valutazione complessiva Termina l’esecuzione del programma.

60 L’algoritmo dettagliato (1)
Scrivi nella cella di memoria centrale riservata al valore della variabile a il valore letto dal dispositivo di ingresso (disponibile nel registro dati della periferica). Fai la stessa cosa per b, c, d Somma il valore di a al valore di b 2.1 Copia il contenuto della cella di memoria riservata ad a nel registro A 2.2 Copia il contenuto della cella di memoria riservata a b nel registro B 2.3 Somma il contenuto dei registri A e B Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il risultato (z).

61 L’algoritmo dettagliato (2)
Somma il valore di c al valore di d 4.1 Copia il contenuto della cella di memoria riservata a c nel registro A 4.2 Copia il contenuto della cella di memoria riservata a b nel registro B 4.3 Somma il contenuto dei registri A e B Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato 5.1 Copia il contenuto della cella riservata a z nel registro B (z e B contengono ora a+b, mentre A contiene c+d) 5.2 Moltiplica il contenuto dei registri A e B.

62 L’algoritmo dettagliato (3)
Scrivi sul dispositivo di uscita il risultato della valutazione complessiva 6.1 Memorizza il risultato appena calcolato (e disponibile nel registro A) nella cella di memoria riservata a z 6.2 Copia il contenuto della cella di memoria riservata a z nel registro dati della periferica di uscita Termina l’esecuzione del programma.

63 Tipologia delle operazioni svolte
Operazioni di manipolazione Somma: 2.3, 4.3 Moltiplicazione: 5.2 Operazioni di trasferimento Da periferica-input a MM: 1 Da MM a CPU: 2.1, 2.2, 4.1, 4.2, 5.1 Da CPU a MM: 3, 6.1 Da MM a periferica-output: 6.2

64 Le istruzioni macchina
Un programma scritto in linguaggio macchina è formato da una sequenza di istruzioni appartenenti al set di istruzioni del particolare processore Ogni istruzione è formata da: Un codice operativo Zero o più operandi Tanto il codice operativo quanto gli operandi sono rappresentati nella memoria del calcolatore sotto forma di numeri binari Data la difficoltà per l’uomo di interpretare numeri binari si usa l’assembler al posto del linguaggio macchina codice operativo operando(i)

65 Le istruzioni macchina
Il set di istruzioni di un qualsiasi linguaggio macchina può essere diviso in quattro classi principali di istruzioni: Istruzioni per il trasferimento dati tra memoria e registri del processore e viceversa Operazioni aritmetiche e logiche sui dati Istruzioni per il controllo del flusso di programma Istruzioni per la gestione dell’I/ O

66 Forma binaria del programma
Leggi un valore dall’input e mettilo nella cella 16 (a) Leggi un valore dall’input e mettilo nella cella 17 (b) Leggi un valore dall’input e mettilo nella cella 18 (c) Leggi un valore dall’input e mettilo nella cella 19 (d) Carica il contenuto della cella 16 (a) nel registro A Carica il contenuto della cella 17 (b) nel registro B Somma i registri A e B Scarica il contenuto di A nella cella 20 (z) (ris.parziale) Carica il contenito della cella 18 (c) nel registro A Carica il contenito della cella 19 (d) nel registro B Somma i registri A e B Carica il contenuto della cella 20 (z) (ris. parziale) in B Moltiplica i registri A e B Scarica il contenuto di A nella cella 20 (z) (ris. totale) Scrivi il contenuto della cella 20 (z) (ris. totale) in output Halt

67 Programma in memoria centrale
Cella Spazio riservato per a 16 Spazio riservato per b 17 Spazio riservato per c 18 Spazio riservato per d 19 Spazio riservato per z 20

68 Fase di fetch 1a istruzione
Memoria centrale (MM) Passo 1 Passo 2 PC Passo 4 AR 1023 DR Passo 3 CIR

69 Fase di interpretazione 1a istruzione
CIR Codice operativo 0100 = leggi da input

70 Fase di esecuzione 1a istruzione
Memoria centrale (MM) Indirizzo operando = cella 16 Passo 3 16 CIR Passo 1 AR 1023 DR Passo 2 Valore di a letto dall’input (es. 4127) PDR

71 Il linguaggio assembler
Un esempio (didattico) di assembler potrebbe contenere le seguenti istruzioni: Le istruzioni loada e loadb servono per spostare il contenuto di una cella di memoria nei registri A e B rispettivamente Esempio: loada ind1 Le istruzioni storea e storeb servono per spostare il contenuto dei registri A e B rispettivamente in una cella di memoria il cui indirizzo è indicato come parametro Esempio: storea ind1 Le istruzioni per lo svolgimento delle operazioni aritmetiche di base Operazioni su interi: add, dif, mul, div Operazioni su reali: addr, difr, mulr, divr Le istruzioni operano sui registri A e B e pongono il risultato nel registro A Nel caso di divisione tra interi il registro B viene usato per contenere il resto dell’operazione

72 Il linguaggio assembler
Le istruzioni per lo svolgimento delle operazioni logiche di base and, or, not Le istruzioni operano sui registri A e B e pongono il risultato nel registro A Nel caso di operazione not viene usato il solo registro A Le istruzioni per leggere/scrivere su periferiche L’istruzione read legge un dato dalla periferica di input e pone il dato letto nella cella di memoria il cui indirizzo viene passato come parametro Esempio: read ind1 L’istruzione write scrive il dato presente nella cella di memoria il cui indirizzo viene passato come parametro sulla periferica di output Esempio: write ind1 Le istruzioni per il controllo di flusso L’istruzione di salto incondizionato jump salta all’indirizzo specificato come parametro L’istruzione di salto condizionato jumpz salta all’indirizzo specificato come parametro se l’ultima operazione matematica ha dato risultato nullo Il processore controlla il valore del registro di stato del processore Il salto viene effettuato solo se il bit di zero vale 1 Altre istruzioni L’istruzione halt termina l’esecuzione del programma

73 Linguaggio Macchina, Assembler e C
Linguaggio Assembler Linguaggio C READ A READ B READ C READ D LOADA A LOADB B ADD STOREA RIS LOADA C LOADB D LOADB RIS MUL WRITE RIS HALT INT A INT B INT C INT D INT RIS int a, b, c, d, ris; scanf("%d%d%d%d", &a, &b, &c, &d); ris = (a+b)*(c+d); printf("ecco il risultato %d", ris);

74 Esercizi 1) Si usi il linguaggio assembler presentato per scrivere un programma che legge due numeri A e B e scrive a video B volte il primo numero A 2) Si usi il linguaggio precedente per scrivere un programma che legge due numeri A e B e scrive a video il prodotto di A per B Non si faccia uso dell’istruzione mul ma delle sole istruzioni add e dif


Scaricare ppt "Architettura di un calcolatore"

Presentazioni simili


Annunci Google