1 / 32

Architettura di un calcolatore

Architettura di un calcolatore. Corso di Informatica A Vito Perrone. Indice. La macchina di Von Neumann Memoria CPU Bus Interfacce Esempio L’algoritmo Il programma Fasi di esecuzione di un’istruzione. Bus di sistema. Unità di Elaborazione (CPU). Memoria Centrale (MM).

hachi
Download Presentation

Architettura di un calcolatore

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architettura di un calcolatore Corso di Informatica A Vito Perrone

  2. Indice • La macchina di Von Neumann • Memoria • CPU • Bus • Interfacce • Esempio • L’algoritmo • Il programma • Fasi di esecuzione di un’istruzione Architettura di un Calcolatore Informatica A – V. Perrone

  3. Bus di sistema Unità diElaborazione (CPU) MemoriaCentrale (MM) InterfacciaPeriferica P1 InterfacciaPeriferica P2 Memoria di massa, stampante, terminale… La macchina di Von Neumann Collegamento Esecuzione istruzioni Memoria di lavoro 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 l’unità di controllo (parte del processore) stabilisce la funzione da svolgere • L’intera macchina opera in maniera sequenziale Architettura di un Calcolatore Informatica A – V. Perrone

  5. h = 16 bit Parola (word) 0 1 Registro indir. (AR) Registro dati (DR) store load k = 10 bit h = 16 bit 1023 Spazio di indirizzamento 210=1024 La memoria centrale (MM) Volatile Dati e istruzioni RAM e ROM Indirizzo cella Dato da leggere/scrivere Architettura di un Calcolatore Informatica A – V. Perrone

  6. 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 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 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 Architettura di un Calcolatore Informatica A – V. Perrone

  8. A Registri operandi B L’unità di elaborazione (CPU) Stato CPU Flag: C, Z, S, V Operazioni aritmetiche e logiche Indirizzo prox istruzione Registro di stato (SR) Registro contatoredi programma (PC) Unitàaritmeticologica(ALU) Registrointerruzioni (INTR) Registri generali Registro istruzionecorrente (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 Architettura di un Calcolatore Informatica A – V. Perrone

  9. 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 Architettura di un Calcolatore Informatica A – V. Perrone

  10. CPU Registro di stato (SR) Registro contatoredi programma (PC) Unitàaritmeticologica(ALU) A Registrointerruzioni (INTR) B Registro istruzionecorrente (CIR) Unità di controllo(CU) Clock Registro indirizzi(AR) Registro dati (DR) Il bus di sistema Bus di sistema Master/slave Bus dati, Bus indirizzi, Bus controlli Architettura di un Calcolatore Informatica A – V. Perrone

  11. Passo 3 0 SR Passo 1 PC A Passo 4 Passo 2 ALU INTR B 123 42 CIR CU Ck AR DR 42 123 1023 OK READ Sequenza di lettura 123 Architettura di un Calcolatore Informatica A – V. Perrone

  12. Passo 2 0 SR Passo 1 PC A Passo 3 Passo 5 ALU INTR B 123 42 CIR CU Ck Passo 4 AR DR 70 123 1023 WRITE OK Sequenza di scrittura 70 123 Architettura di un Calcolatore Informatica A – V. Perrone

  13. 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 Architettura di un Calcolatore Informatica A – V. Perrone

  14. 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 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 Architettura di un Calcolatore Informatica A – V. Perrone

  16. 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. Architettura di un Calcolatore Informatica A – V. Perrone

  17. 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. Architettura di un Calcolatore Informatica A – V. Perrone

  18. 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). Architettura di un Calcolatore Informatica A – V. Perrone

  19. L’algoritmo dettagliato (2) Somma il valore di c al valore di d4.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 B4.3 Somma il contenuto dei registri A e B Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato5.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. Architettura di un Calcolatore Informatica A – V. Perrone

  20. L’algoritmo dettagliato (3) Scrivi sul dispositivo di uscita il risultato della valutazione complessiva6.1 Memorizza il risultato appena calcolato (e disponibile nel registro A) nella cella di memoria riservata a z6.2 Copia il contenuto della cella di memoria riservata a z nel registro dati della periferica di uscita Termina l’esecuzione del programma. 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 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 l’uomo di interpretare numeri binari si usa l’assembler al posto del linguaggio macchina codice operativo operando(i) 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 dell’I/ O Architettura di un Calcolatore Informatica A – V. Perrone

  24. Forma binaria del programma 0100000000010000Leggi un valore dall’input e mettilo nella cella 16 (a)0100000000010001Leggi un valore dall’input e mettilo nella cella 17 (b)0100000000010010Leggi un valore dall’input e mettilo nella cella 18 (c)0100000000010011Leggi un valore dall’input e mettilo nella cella 19 (d) 0000000000010000Carica il contenuto della cella 16 (a) nel registro A0001000000010001Carica il contenuto della cella 17 (b) nel registro B0110000000000000Somma i registri A e B0010000000010100Scarica il contenuto di A nella cella 20 (z) (ris.parziale) 0000000000010010Carica il contenito della cella 18 (c) nel registro A0001000000010011Carica il contenito della cella 19 (d) nel registro B0110000000000000Somma i registri A e B0001000000010011Carica il contenuto della cella 20 (z) (ris. parziale) in B1000000000000000Moltiplica i registri A e B0010000000010100Scarica il contenuto di A nella cella 20 (z) (ris. totale)0101000000010100Scrivi il contenuto della cella 20 (z) (ris. totale) in output1101000000000000Halt Architettura di un Calcolatore Informatica A – V. Perrone

  25. Programma in memoria centrale Cella 0123456789101112131415 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 010000000001000001000000000100010100000000010010010000000001001100000000000100000001000000010001011000000000000000100000000101000000000000010010000100000001001101100000000000000001000000010011100000000000000000100000000101000101000000010100 1101000000000000 Architettura di un Calcolatore Informatica A – V. Perrone

  26. 0000000000 0100000000010000 0100000000010000 Fase di fetch 1a istruzione Memoria centrale (MM) Passo 1 Passo 2 0 0100000000010000 PC 0000000000 0000000001 Passo 4 AR 1023 DR Passo 3 CIR Architettura di un Calcolatore Informatica A – V. Perrone

  27. Fase di interpretazione 1a istruzione CIR 0100000000010000 Codice operativo 0100 = leggi da input Architettura di un Calcolatore Informatica A – V. Perrone

  28. Indirizzo operando00000010000 = cella 16 0001000000011111 0000010000 0001000000011111 Fase di esecuzione 1a istruzione Memoria centrale (MM) 0 Passo 3 16 CIR 0100000000010000 Passo 1 AR 1023 DR Passo 2 Valore di a letto dall’input (es. 4127) PDR 0001000000011111 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 dell’operazione 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 • 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 Architettura di un Calcolatore Informatica A – V. Perrone

  31. Linguaggio Macchina, Assembler e C Linguaggio C Linguaggio Macchina Linguaggio Assembler 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); 01000000000100000100000000010001010000000001001001000000000100110000000000010000000100000001000101100000000000000010000000010100 0000000000010010000100000001001101100000000000000001000000010011100000000000000000100000000101000101000000010100 1101000000000000 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 dell’istruzione mul ma delle sole istruzioni add e dif Architettura di un Calcolatore Informatica A – V. Perrone

More Related