Architettura del Calcolatore

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

Cos'è una memoria? MEMORIA
STRUTTURA DEL PERSONAL COMPUTER
2. Architettura di un calcolatore
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
INTRODUZIONE Il termine Informatica deriva dalla fusione dei termini INFORmazione autoMATICA si intende indicare la scienza che ha il compito di raccogliere,
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
MEMORIA CENTRALE Spazio di lavoro del calcolatore: contiene i dati da elaborare e i risultati delle elaborazioni durante il funzionamento del calcolatore.
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
PRESENTAZIONE di RICCARDO
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Architettura del calcolatore
ARCHITETTURA DI UN ELABORATORE
Sistemi di elaborazione e trasmissione delle informazioni
Architettura del calcolatore
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
MEMORIA CENTRALE Spazio di lavoro del calcolatore: contiene i dati da elaborare e i risultati delle elaborazioni svolte durante il funzionamento del calcolatore.
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi. Inizi anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Informatica B Allievi Elettrici - AA L’architettura di un calcolatore e il sistema operativo.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Dalla macchina di Von Neumann …
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Fondamenti di Informatica Il Calcolatore Monica Mordonini Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Concetti informatici di base. Concetti informatici di base Il computer o elaboratore è una apparecchiatura costituita da un insieme di dispositivi di.
Componenti base di un computer Gli elementi fondamentali La Cpu La Ram L’ Hard disk.
Architettura degli elaboratori
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
1 Unità didattica 1 – Concetti di base del personal computer Premessa: «L’unità didattica programmata destinata ad una allieva con obiettivi minimi della.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI LINGUAGGIO MACCHINA.
Rappresentazione dell’ Informazione Digitale e Binario
Concetti Di Base Informatica
Sistemi e Applicazioni per l’Amministrazione Digitale
Prof. Giuseppe Chiumeo INTRODUZIONE Prof. Giuseppe Chiumeo
PRESENTAZIONE di RICCARDO
Introduzione all’Informatica
Architettura dei calcolatori
Architettura e funzionalità
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Cammino dei Dati (Datapath)
Architettura di un calcolatore
STRUTTURA GENERALE DI UN ELABORATORE
INTRODUZIONE Il termine Informatica deriva dalla fusione dei termini INFORmazione autoMATICA si intende indicare la scienza che ha il compito di raccogliere,
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Architetture non Von Neumann
Architettura dei calcolatori
Introduzione all’uso del computer
HARDWARE La struttura fisica interna ed esterna, prende il nome di hardware ( hard = duro ware = componente ). Comprende tutti i dispositivi del computer,
Corso propedeutico base di informatica
Architettura del calcolatore
IL MODELLO DI VON NEUMANN
Definizione di linguaggio di programmazione
LOGICA DI FUNZIONAMENTO
Parti interne del computer
LE PARTI INTERNE DEL COMPUTER
Transcript della presentazione:

Architettura del Calcolatore

La macchina di von Neumann canale di comunicazione bus di sistema CPU Mem. RAM Mem. Massa Perif. esecutore programmi e dati I/O dei dati (e dei programmi)

Architettura del calcolatore RAM ROM MEMORIA CENTRALE HD STAMPANTE BUS INDIRIZZI BUS DATI BUS DI CONTROLLO INTERFACCE UNITA’ PERIFERICHE CPU MM OUTPUT INPUT

Elementi funzionali Unità di elaborazione, o CPU Memoria Centrale elabora dati, coordina trasferimento dei dati esegue i programmi, cioè interpreta ed esegue le loro istruzioni Memoria Centrale memorizza dati e programmi capacità limitata p.es. 512 MByte volatile accesso all’informazione molto rapido

Memoria secondaria o memoria di massa memorizza grandi quantità di dati e programmi persistente accesso molto meno rapido della RAM Su PC: hard disk (p.es. 120 GByte), floppy disk (1.44 MByte), CD-ROM (p.es. 700 MByte), … Bus di sistema collega e consente scambio di dati Unità periferiche (I/O) comunicazione con l’ambiente esterno terminali, con tastiera, mouse, video, stampanti l’ambiente esterno non è sempre un utente umano (impianti industriali, robot, strumenti di controllo) Sensori e attuatori

Architettura del calcolatore RAM ROM MEMORIA CENTRALE HD STAMPANTE BUS INDIRIZZI BUS DATI BUS DI CONTROLLO INTERFACCE UNITA’ PERIFERICHE CPU MM OUTPUT INPUT

Le memorie di massa Informazione memorizzata su supporto magnetico (o ottico o altro...) di costo contenuto Memoria permanente: le informazioni sono raggruppate in file gestiti dal sistema operativo. Dischi rigidi: tempi di accesso dell’ordine delle decine di millisecondi; floppy disk: dell’ordine delle centinaia di millisecondi DIMENSIONE: centinaia di GB Nastri e Cartucce: per memorizzare informazioni “storiche” (back-up) CD-ROM e DVD-ROM: sola lettura (700 MB e 5 GB)

Struttura dei dischi rigidi (Hard Disk) testine superfici tracce cilindri settori

Architettura del calcolatore RAM ROM MEMORIA CENTRALE HD STAMPANTE BUS INDIRIZZI BUS DATI BUS DI CONTROLLO INTERFACCE UNITA’ PERIFERICHE CPU MM OUTPUT INPUT

La memoria centrale Contiene le istruzioni e i dati su cui la CPU può operare Contiene, cioè, sia i dati che i programmi Tutta l’informazione, per poter essere elaborata, deve passare dalla memoria centrale (e successivamente caricata in uno dei registri della CPU) Rispetto alla memoria di massa è memoria a breve-medio periodo è volatile

La memoria centrale Dimensioni ridotte Tempi di accesso ordine dei MegaByte... ormai GigaByte Tempi di accesso ordine delle decine di nanosecondi circa 1 milione di volte più veloce delle memorie di massa È un insieme ordinato di parole (celle) Una parola = n elementi di memoria binari (8, 16, 32, 64 bit) La posizione di ogni parola è identificata da un indirizzo La capacità di indirizzamento in memoria è definita dalle dimensioni del bus indirizzi e del registro indirizzi

RAM e ROM RAM: Random Access Memory ROM: Read-Only memory Le celle sono indirizzabili in un ordine qualunque (accesso random = diretto) Il tempo di accesso non dipende dalla cella ROM: Read-Only memory Per programmi protetti e definiti dal costruttore Il BIOS (Basic I/O System) che carica in memoria il sistema operativo quando la macchina viene accesa Esistono di diversi tipi “Erasable”, “Programmable”, (EPROM) Una via intermedia tra Hardware e Software (Firmware)

Tecnologie per la memoria centrale La memoria RAM È realizzata mediante circuiti a transistori È modificabile (leggibile e scrivibile) ma deve essere continuamente alimentata per mantenere le informazioni (volatile) All’accensione il suo contenuto è una sequenza casuale di 0 e 1 La memoria ROM È solo leggibile: le informazioni sono di solito scritte in modo permanente dal costruttore È caricata al momento della produzione del calcolatore Vi si accede ogni qualvolta questo viene acceso Contiene il bootstrap, un programma contenente le prime istruzioni che la CPU deve eseguire

Indirizzamento della memoria centrale Celle - hanno un indirizzo - contengono parole Esiste un registro (registro indirizzi - AR) della CPU per indirizzare la memoria Registro di k bit: può indirizzare 2k celle Con 10 bit indirizzo 1.024 celle 1 “kilo-parole” Con 20 bit, 1.048.576 parole 1 “mega” parole 30(giga), 40(tera), 50(peta), 60(exa)

Esempio di RAM da 8 KByte h =16 bit Registro Dati Registro Indirizzi indirizzi delle celle h =16 bit Registro Indirizzi (AR) Registro Dati (DR) 000100110010 1001011001010010 k = 12 bit h = 16 bit 562 1001011001010010 cella selezionata 4.096 parole 4.095

Architettura del calcolatore RAM ROM MEMORIA CENTRALE HD STAMPANTE BUS INDIRIZZI BUS DATI BUS DI CONTROLLO INTERFACCE UNITA’ PERIFERICHE CPU MM OUTPUT INPUT

La CPU Contiene gli elementi circuitali che regolano il funzionamento del calcolatore: L’unità di controllo è responsabile della decodifica e dell’esecuzione delle istruzioni. È la parte che "dirige" l'esecuzione di tutte le altre parti L’orologio di sistema (clock) permette di sincronizzare le operazioni temporizzando il funzionamento del calcolatore L’unità aritmetico-logica (ALU) realizza le operazioni aritmetiche e logiche eventualmente richieste per l’esecuzione dell’istruzione. È priva di facoltà di scelta I registri sono piccole memorie velocemente accessibili, utilizzate per memorizzare risultati parziali o informazioni necessarie al controllo. L’insieme dei valori contenuti nell'insieme di tutti i registri in un dato istante dell’elaborazione viene chiamato contesto

La CPU  

Formato delle istruzioni in linguaggio macchina Costituite (ovviamente) da sequenze di 0 e 1 campo codice operativo (obbligatorio) specifica l’operazione da eseguire campo operandi (facoltativo) indica i dati da utilizzare (gli operandi possono essere uno o due) Può contenere direttamente il valore o l’indirizzo della cella che contiene il valore (riferimento a una variabile) FORMATO ISTRUZIONE: Cod. operativo Operandi

Il ciclo “preleva-esegui” La memoria RAM contiene le istruzioni Ciclicamente: Estrai la prossima istruzione Decodificala ed eseguila Istruzioni di elaborazione dei dati di trasferimento dei dati Funzionamento scandito dall’orologio di sistema (“clock”)

Fasi del ciclo di CPU Prelievo (o Fetch): PC contiene l’indirizzo della prossima istruzione acquisizione prossima istruzione da memoria (che viene scritta nel Registro Istr. Corrente, CIR) incremento del registro PC Decodifica: interpretazione codice operativo Esecuzione: attivazione esecuzione pertinente all’operazione operazioni ALU su operandi (indirizzi) operazione di salto (modifica PC)

Il ciclo “preleva-esegui” Estrai la prossima istruzione Esegui l’istruzione prelevata Contenuto di PC  AR Lettura da memoria centrale  DR Trasferimento da DR  CIR Incremento di PC Interpretazione ed esecuzione di CIR

Architettura del calcolatore RAM ROM MEMORIA CENTRALE HD STAMPANTE BUS INDIRIZZI BUS DATI BUS DI CONTROLLO INTERFACCE UNITA’ PERIFERICHE CPU MM OUTPUT INPUT

Velocità della CPU La soluzione di molti problemi importanti richiede una grossa potenza di calcolo: I progettisti tentano di rendere le macchine più veloci. Fino ad un certo punto, le macchine possono essere accelerate velocizzando l’hardware. Limiti fisici di vario tipo si profilano all’orizzonte. Niente può andare più veloce della luce, che è di circa trenta centimetri per nanosecondo nel vuoto e di venti centimetri in un filo di rame. Per costruire un computer con un tempo di un nanosecondo per istruzione, la distanza totale su cui il segnale elettrico può viaggiare, all’interno della CPU, verso la memoria e ritorno, non può essere maggiore di venti centimetri. Perciò computer molto veloci devono essere molto piccoli. Sfortunatamente i computer veloci producono più calore di quelli lenti, e comprimere i computer in uno spazio ristretto rende difficile dissipare il calore. I super computer sono immersi nel freon, come liquido di raffreddamento, per trasferire all’esterno il calore il più velocemente possibile.

Parallelismo Tuttavia è possibile affrontare il problema da un’altra prospettiva. Invece di un’unica CPU ad alta velocità, è possibile costruire una macchina con molte ALU più lente (ed economiche) o perfino con diverse CPU complete, per ottenere la stessa potenza di calcolo ad un costo minore. Molta ricerca è dedicata alla costruzione di macchine parallele.

Il bus di sistema Insieme di connettori (conduttori elettrici) che trasportano bit di informazioni collegando fra di loro l’unità di elaborazione, la memoria e le varie interfacce di ingresso/uscita I trasferimenti sono gestiti dalla CPU (modalità master/slave) e si chiamano cicli del bus, che con la sua capacità ne determina la velocità

Componenti del bus di sistema Bus Dati trasferisce dati da master a slave e viceversa Bus Indirizzi trasferisce indirizzi, per esempio l’indirizzo di un dato dal registro indirizzi alla memoria, per accedere al dato stesso Bus di Controllo Da master a slave: codice dell’istruzione da eseguire (per es. lettura da disco). Da slave a master: informazioni sul successo dell’operazione

Cicli di bus: esempi Operazione di lettura da memoria centrale (LOAD): la CPU carica l’indirizzo della parola di memoria nel registro indirizzi e lo trasmette alla memoria via bus indirizzi la CPU invia il comando di Read Memory sul bus di controllo la memoria trasmette sul bus dati il contenuto della parola verso il registro dati la memoria segnala al processore sul bus di controllo che l’operazione è stata completata con successo: il dato si trova nel registro dati Operazione di scrittura in memoria centrale (STORE): la CPU carica indirizzo della parola di memoria dove si vuole scrivere nel registro indirizzi e lo trasmette alla memoria via bus indirizzi la CPU carica nel registro dati la parola da scrivere in memoria la CPU invia il comando di Write Memory sul bus di controllo la CPU trasmette sul bus dati il contenuto del registro dati verso l’indirizzo di memoria segnalato la memoria segnala al processore sul bus di controllo che l’operazione è stata completata con successo: il dato si trova nella parola di memoria destinazione

Esempio di istruzioni in linguaggio assemblatore (o “assembler”) Cod. binario Cod. simbolico Significato 0000 LOADA poni in A il valore della cella <op> della RAM 0001 LOADB poni in B il valore della cella <op> della RAM 0010 STOREA poni nella cella <op> della RAM il valore in A 0011 STOREB poni nella cella <op> della RAM il valore in B 0110 ADD poni in A il valore di A+B restituito dalla ALU 0111 DIF poni in A il valore di A-B restituito dalla ALU 1010 JMP la prossima istr. da eseguire è nella cella <op> 1011 JMPZ se A=0, la prossima istr. da eseguire è in <op> 1100 NOP istruzione nulla: nessun effetto [...HA senso] 1101 HALT fine del programma 0100 READ leggi (I/O) un valore e ponilo nella cella <op> 0101 WRITE scrivi (I/O) il valore contenuto nella cella <op> 0110 ...

Piccolo esempio di programma assembler Cella di mem. Cod. Oper. Operando 0 READ 8 1 READ 9 2 LOADA 8 3 LOADB 9 4 ADD 5 STOREA 8 6 WRITE 8 7 HALT 8 (INT) 9 (INT) Che cosa fa ?

Esecuzione dei programmi Esempio: calcolare espressione (x + y) - (z + w) poni in memoria centrale (rispettivamente nelle celle 16, 17, 18 e 19) i valori di x, y, z, e w esegui l’addizione di z e w: copia da cella 18 a registro A copia da cella 19 a registro B somma i due registri (operazione eseguita dalla ALU che lascia il risultato nel registro A) immagazzina risultato (che ora è nel registro A) nella cella 20

esegui l’addizione di x e y: copia da cella 16 a registro A; copia da cella 17 a registro B; somma i registri (operazione eseguita dalla ALU che lascia il risultato nel registro A); esegui la sottrazione di (x + y) e (z + w): copia da cella 20 a registro B; sottrai il contenuto dei due registri (operazione eseguita dalla ALU che lascia il risultato nel reg. A); scrivi il risultato sul dispositivo di uscita: copia da registro A a cella 20; copia da cella 20 a registro dati della periferica arresta l’esecuzione del programma

Il programma in assembler 0 READ X 1 READ Y 2 READ Z 3 READ W 4 LOADA Z 5 LOADB W 6 ADD 7 STOREA RIS 8 LOADA X 9 LOADB Y 10 ADD 11 LOADB RIS 12 DIF 13 STOREA RIS 14 WRITE RIS 15 HALT 16 ...int....(X)..... 17 ...int....(Y)..... 18 ...int....(Z)..... 19 ...int....(W)..... 20 ...int...(RIS)... 0-3: acquisizione dei dati 16-20: spazio per rappresentare i dati le cinque variabili simboliche X, Y, Z, W, RIS menzionate nel programma. Ognuna identifica una cella di memoria I nomi simbolici sono più comodi degli indirizzi, ma bisogna supporre che qualcuno (il compilatore!) gestisca la corrispondenza con un numero opportuno di celle allocate per rappresentare i dati 4-6 e 8-10: Somme (Z+W e X+Y) 7: salvataggio del risultato intermedio 11: recupero del risultato intermedio 14: Visualizzazione del risultato

Il programma in linguaggio macchina 0. 0100000000010000 1. 0100000000010001 2. 0100000000010010 3. 0100000000010011 4. 0000000000010010 5. 0001000000010011 6. 0110000000000000 7. 0010000000010100 8. 0000000000010000 9. 0001000000010001 10. 0110000000000000 11. 0001000000010100 12. 0111000000000000 13. 0010000000010100 14. 0101000000010100 15. 1101000000000000 16. ................ 17. ................ 18. ................ 19. ................ 20. ................ indirizzi delle celle istruzioni codici operativi operando significativo (indirizzo della cella RIS) operando non significativo dati

Il programma in C int main() { int x, y, z, w, ris; scanf("%d%d%d%d", &x, &y, &z, &w); ris = (x+y)-(z+w); printf(“\n\n Il risultato e’ : %d“, ris); return 0; }

Architettura del calcolatore RAM ROM MEMORIA CENTRALE HD STAMPANTE BUS INDIRIZZI BUS DATI BUS DI CONTROLLO INTERFACCE UNITA’ PERIFERICHE CPU MM OUTPUT INPUT

Interfacce di I/O (verso le periferiche) Consentono il collegamento tra elaboratore e periferiche Possono essere dispositivi elettromeccanici Contengono registri per inviare comandi alla periferica registro comandi periferica (PCR) – collegato al bus di controllo scambiare dati registro dati della periferica (PDR) – collegato al bus dati controllare il funzionamento della periferica registro stato periferica (PSR): pronto, occupato, errore, ...

Il sistema operativo Programma di grandi dimensioni e notevole complessità, che permette all’utente di interagire con il calcolatore Sviluppo di un S.O.: centinaia di anni-uomo Poca teoria, solo in alcune aree: Perché prima sviluppo tecnologico, poi teorizzazione Perché aspetti non di calcolo ma di ottimizzazione, gestione di interazione, gestione di malfunzionamenti etc. Perché il problema del progetto di S.O. è intrinsecamente complesso e interdisciplinare Complessità estrema: studio per livelli di macchine astratte per ragionare a diversi livelli di astrazione Funzioni: Gestione lavori Supporto per la programmazione Meccanismi di Ingresso / Uscita (I/O) Gestione archivi (file)