La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architettura di un calcolatore Corso di Informatica A Vito Perrone.

Presentazioni simili


Presentazione sul tema: "Architettura di un calcolatore Corso di Informatica A Vito Perrone."— Transcript della presentazione:

1 Architettura di un calcolatore Corso di Informatica A Vito Perrone

2 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 2 Indice La macchina di Von Neumann –Memoria –CPU –Bus –Interfacce Esempio –Lalgoritmo –Il programma –Fasi di esecuzione di unistruzione

3 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 3 La macchina di Von Neumann Unità di Elaborazione (CPU) Memoria Centrale (MM) Interfaccia Periferica P 1 Interfaccia Periferica P 2 Bus di sistema Esecuzione istruzioni Memoria di lavoro Memoria di massa, stampante, terminale… Collegamento

4 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 4 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 lunità di controllo (parte del processore) stabilisce la funzione da svolgere Lintera macchina opera in maniera sequenziale

5 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 5 Parola (word) Spazio di indirizzamento 2 10 =1024 La memoria centrale (MM) Dati e istruzioni RAM e ROMVolatile Dato da leggere/scrivere Indirizzo cella

6 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 6 La memoria centrale (MM) Il numero di bit che costituiscono lindirizzo di un word allinterno della memoria è caratteristico del microprocessore e identifica lo spazio di indirizzamento del microprocessore –Esempio: Pentium 32 bit –Avendo a disposizione k bit è possibile indirizzare 2 k byte Si ricorda che: –2 10 byte = 1Kilo Byte –2 20 byte = 1Mega Byte –2 30 byte = 1 Giga Byte –2 40 byte = 1Tera Byte

7 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 7 La memoria centrale (MM) La memoria centrale si chiama usualmente ram o memoria ad accesso casuale –Viene cosi detta una memoria il cui tempo di accesso sia indipendente dallindirizzo 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 dellaccensione dellelaboratore, 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

8 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 8 Lunità di elaborazione (CPU) 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) Controllo: -Prelievo -Decodifica -Esecuzione Sincronizzazione Operazioni aritmetiche e logiche Parola letta/da scrivere in MM Indirizzo cella MM Istruzione in elaborazione Indirizzo prox istruzione Registri generali Stato CPU Flag: C, Z, S, V Registri operandi

9 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 9 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 loperazione 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 Il bus di sistema

10 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 10 Il bus di sistema 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 Bus dati, Bus indirizzi, Bus controlli Master/slave

11 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 11 Sequenza di lettura CIR DR AR PC SR INTR A B CU Ck ALU Passo 1 READ Passo 2 42 Passo 3 OK Passo 4

12 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 12 Sequenza di scrittura CIR DR AR PC SR INTR A B CU Ck ALU Passo 1 WRITE Passo 3 OK Passo 5 70 Passo 2 Passo 4 70

13 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 13 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 Le interfacce delle periferiche

14 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 14 Le interfacce delle periferiche Interfacccia periferica 1 Bus di sistema Peripheral Data Register (PDR) Peripheral Command Register (PCR) Peripheral State Register (PSR) Peripheral Data Register (PDR) Peripheral Command Register (PCR) Peripheral State Register (PSR) Interfacccia periferica 2 Dato da leggere/scrivere Comando da eseguire Stato della periferica

15 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 15 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

16 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 16 Es.: valutazione di espressione Vogliamo calcolare il valore dellespressione: (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.

17 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 17 Un algoritmo generale 1.Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d 2.Somma il valore di a al valore di b 3.Salva il risultato parziale ottenuto 4.Somma il valore di c al valore di d 5.Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato 6.Scrivi sul dispositivo di uscita il risultato della valutazione complessiva 7.Termina lesecuzione del programma.

18 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 18 Lalgoritmo dettagliato (1) 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 2.Somma il valore di a al valore di b 2.1Copia 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.3Somma il contenuto dei registri A e B 3.Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il risultato ( z ).

19 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 19 4.Somma il valore di c al valore di d 4.1Copia il contenuto della cella di memoria riservata a c nel registro A 4.2Copia il contenuto della cella di memoria riservata a b nel registro B 4.3Somma il contenuto dei registri A e B 5.Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato 5.1Copia il contenuto della cella riservata a z nel registro B (z e B contengono ora a+b, mentre A contiene c+d) 5.2Moltiplica il contenuto dei registri A e B. Lalgoritmo dettagliato (2)

20 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 20 6.Scrivi sul dispositivo di uscita il risultato della valutazione complessiva 6.1Memorizza 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 7.Termina lesecuzione del programma. Lalgoritmo dettagliato (3)

21 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 21 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

22 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 22 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 luomo di interpretare numeri binari si usa lassembler al posto del linguaggio macchina codice operativo operando(i)

23 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 23 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 dellI/ O

24 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 24 Forma binaria del programma Leggi un valore dallinput e mettilo nella cella 16 ( a ) Leggi un valore dallinput e mettilo nella cella 17 ( b ) Leggi un valore dallinput e mettilo nella cella 18 ( c ) Leggi un valore dallinput 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

25 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 25 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

26 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 26 Fase di fetch 1 a istruzione PC AR Memoria centrale (MM) 0 DR 1023 CIR Passo 1 Passo 2 Passo 3 Passo 4

27 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 27 Fase di interpretazione 1 a istruzione CIR Codice operativo 0100 = leggi da input

28 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 28 Fase di esecuzione 1 a istruzione AR Memoria centrale (MM) 0 DR PDR CIR 16 Valore di a letto dallinput (es. 4127) Indirizzo operando = cella Passo 1 Passo 2 Passo 3

29 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 29 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 delloperazione

30 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 30 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 Listruzione 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 Listruzione 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 Listruzione di salto incondizionato jump salta allindirizzo specificato come parametro Listruzione di salto condizionato jumpz salta allindirizzo specificato come parametro se lultima 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 Listruzione halt termina lesecuzione del programma

31 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 31 Linguaggio Macchina, Assembler e C READ A READ B READ C READ D LOADA A LOADB B ADD STOREA RIS LOADA C LOADB D ADD LOADB RIS MUL STOREA RIS 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); Linguaggio Macchina Linguaggio Assembler Linguaggio C

32 Copyright © The McGraw- Hill Companies, srl Architettura di un Calcolatore Informatica A – V. Perrone 32 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 dellistruzione mul ma delle sole istruzioni add e dif


Scaricare ppt "Architettura di un calcolatore Corso di Informatica A Vito Perrone."

Presentazioni simili


Annunci Google