Com’è fatto un elaboratore?

Slides:



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

STRUTTURA DEL PERSONAL COMPUTER
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Elaboratore e Sistemi Operativo
Architettura di un sistema informatico Hardware
CdL Ingegneria Informatica n.o. Anno Accademico 2007/08 Fondamenti di Informatica I – corso A Giacomo Piscitellipag. 1/30 Architettura dei calcolatori.
2. Architettura di un calcolatore
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Il Linguaggio Macchina
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
ARCHITETTURA DEL CALCOLATORE
Architettura di un calcolatore
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,
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
Il Modello logico funzionale dell’elaboratore
Il Calcolatore Elettronico
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
ELETTRONICA DIGITALE (II Parte)
STRUTTURA GENERALE DI UN ELABORATORE
Appunti di Informatica
L' ARCHITETTURA DI VON NEUMANN
Il computer: struttura fisica e struttura logica
Architettura del calcolatore
Dimitri Caruso Classe 2^ Beat ISIS G. Meroni Anno Scolastico 2007/08
ARCHITETTURA DI UN ELABORATORE
LOGICA DI FUNZIONAMENTO
Sistemi di elaborazione e trasmissione delle informazioni
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
STRUTTURA DELL’ELABORATORE
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Architettura del calcolatore
INFORMATICA TECNOLOGIE INFORMATICHE INFORmazione autoMATICA
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
INFORMATICA = INFOrmazione + autoMATICA L’informazione una delle risorse strategiche più importanti della società moderna Capacità di gestire l’informazione.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
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:
Corsi di Laurea in Biotecnologie
Laboratorio Informatico
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 William Fornaciari Architetture di calcolo.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Il calcolatore Stefano Cagnoni e Monica Mordonini
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Dalla macchina di Von Neumann …
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Il modello di Von Neumann
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.
Architettura degli elaboratori
Transcript della presentazione:

Com’è fatto un elaboratore? Elaboratori basati sulla Architettura di Von Neumann che consiste di: Un’unità di Elaborazione (CPU) Memoria Centrale (RAM) per istruzioni e dati memorizzati come sequenze di dati Periferiche Bus di Sistema

Programmi e dati I programmi (seq. istruzioni) e i dati sono memorizzati in memoria di massa (lenta) Per essere eseguito, un programma deve essere caricato in memoria centrale (veloce) Occorre anche allocare spazio per i dati utilizzati dal programma (es. Variabili N,Ris) in memoria centrale

Come funziona l’elaboratore? Un programma viene caricato in memoria centrale Si alloca lo spazio per i dati necessari al programma La CPU estrae le istruzioni e dati dalla memoria centrale, le decodifica e le esegue utilizzando registri interni (accesso veloce) L’esecuzione può comportare il trasferimento di dati in input e output tra memoria centrale e periferiche attraverso il bus di sistema L’esecuzione viene scandita dal clock

Memoria Centrale (RAM) Organizzata come una tabella di celle Cella = parola di memoria Parola = sequenza di byte Es. memoria da 16 bit (2 byte) 32 bit 64 bit

Indirizzo di memoria Indirizzo di memoria = posizione relativa alla prima cella della memoria La CPU utilizza due registri di controllo: Registro di indirizzamento (RI) serve per recuperare le parole di memoria Registro dati (RD) mantiene dati input e output

Funzionamento RAM 1 2 RI RD : REG.INDIRIZZI K bit: REG. DATI. 16 bit m 1 2 RI RD : REG.INDIRIZZI K bit: REG. DATI. 16 bit m MEMORIA: parole da 16 bit

Tipi di Memoria Memoria RAM (Random Access): Memoria ROM (Read only): Volatile, veloce, utilizzata per dalla CPU Memoria ROM (Read only): Si può solo leggere, per operazioni critiche Memoria EROM, EPROM: Cancellabili, cancellabili e programmabili

CPU: Central Processing Unit Rappresenta il cuore dell’elaboratore Unità Aritmetico-Logica (ALU) Circuiti per calcolo vero e proprio Registri Accumulatore, Program Counter, ... Decodificatore di istruzioni Tabella che estrae istruzioni

Registri Registro istruzione corrente (RIC) contiene l’istruzione correntemente eseguita Contatore di Programma (PC) indirizzo della prossima istruzione da eseguire Registro interruzioni (RINT) contiene informazioni riguardo lo status delle periferiche Accumulatore (ACC) Contiene valori utilizzati durante operazioni

Modello Semplificato 0: decoder 1: 2: ACC : ALU PC RIC RAM

Istruzioni della Macchina Le istruzioni della macchina sono codificate in forma numerica ed inserite insieme agli altri dati nella memoria centrale Istruzione = operazione di base sui registri e sulla RAM Codifica delle istruzioni = Elenco ordinato Identificatore di un istruzione ~ Numero d’ordine

Rappresentazione RAM Utilizzeremo la notazione ... Per rappresentare le celle della RAM (RAM[i]=contenuto della cella con indirizzo i)

Operatori e parametri Alcune istruzioni richiedono un parametro che viene passato al momento della esecuzione Per rappresentare codice + operandi possiamo utilizzare una codifica del tipo: In rapp. decimale: CODICE*N+OPERANDO dove N dipende dalla grandezza delle celle di memoria Ad es. 2*1000+5=205 identifica l’istruzione 2 con parametro N=5 In binario: sequenza di bit composta da CODICE OPERANDO (es. 0010 0101)

Esempio di Set Istruzioni Istruzione 1 con parametro N Nuovo valore del reg. ACC = ACC + RAM[N] Istruzione 2 con parametro N Nuovo valore di RAM[N] = ACC Istruzione 3 con parametro N Se ACC=0 allora nuovo PC = RAM[N] Istruzione 4 con parametro N Nuovo valore di ACC = RAM[N] Istruzione 5: termina l’esecuzione

Programma in Linguaggio Macchina Sequenza di istruzioni codificate Un programma viene interpretato infatti sequenzialmenteattraverso il registro PC che identifica la prossima istruzione da eseguire L’istruzione 3 (…PC = RAM[N]) permette di saltare in un qualsiasi punto del programma Per capire meglio occore introdurre il ciclo di interpretazione dei programmi

Stato iniziale della macchina Supponiamo di aver caricato le istruzioni nella RAM a partire dalla cella con indirizzo 0 Inoltre supponiamo di avere a disposizione una tabella che ci permette di recuperare l’istruzione e i relativi parameteri a partire dal suo encoding (Codice*N+Parametro)

Esecuzione tramite ciclo di fetch Inizializzazione: memorizza 0 nel registro PC Ciclo di Fetch: 1. Recupera il valore nella cella con indirizzo PC nella RAM e lo memorizza nel registro RIC (registro istruzione corrente) 2. Somma 1 al valore contenuto in PC e lo memorizza in PC 3. Decodifica il valore contenuto in RIC (estrae il codice operazione e il parametro) 4. Esegui l’istruzione 5. Torna al punto 1 a meno che l’istruzione non sia quella di `fine programma’

Osservazioni Il ciclo di fetch permette di eseguire programmi in modo sequenziale: Prima istruzione RIC = RAM[0] Incremento PC Istruzione seguent RIC = RAM[1], ecc. Posso ottenere dei cicli ottengono cambiando il valore del registro PC tramite l’istruzione 3 …PC = RAM[4]

Esempio di programma Considerate la seguente conf. iniziale della RAM: dove Istr. 1: ACC ’ = ACC + RAM[N] Istr. 2: RAM[N] ’ = ACC Istr. 4: ACC ’ = RAM[N] Istr. 5: termina esecuzione (N=parametro) Cosa fa il programma?

Soluzione Il programma precedente esegue i seguenti passi: Copia il valore della cella 4 (=21) nel reg. ACC Somma il val. della cella 5 (=9) al valore in ACC e lo memorizza di nuovo in ACC (=30) Copia il valore del reg. ACC nella cella 4 (=30) Alla fine abbiamo che: ACC e RAM[4] contengono 30 RAM[5] contiene ancora 9

Ciclo Per simulare un ciclo dobbiamo usare Istr. 3: se ACC=0 allora PC ’=RAM[N] Istr. 6: PC ’ = RAM[N] Esempio ciclo che va da 5 a 0: RAM[0] = 4004 (ACC=5 nota: programma come dato!) RAM[1] = 3006 (se ACC=0 go to 4) RAM[2] = 1007 (ACC’=ACC-1) RAM[3] = 6005 (go to 1) RAM[4] = 5 (halt) RAM[5] = 1 RAM[6] = 4 RAM[7] = -1

Moltiplicazione? Supponiamo che i valori di A ed N siano contenuti in due celle fissate della RAM Vogliamo scrivere un programma che calcola A*N Provate a casa cercando di capire quali altri istruzioni vi possono servire!

Istruzioni e dati La CPU applica il ciclo di fetch e decodifica in modo indiscriminato istruzioni o dati Si possono definire programmi automodificanti che utilizzano dati come istruzioni (ad es. memorizzano dei dati in una cella e poi la interpretano come un’istruzione) Nella macchina di Von Neumann alcuni problemi si possono risolvere solo con programmi automodificanti Ad esempio provate a fare un programma che legge dall’esterno e scrive in una sequenza di celle (occorre modificare l’istruzione di scrittura)

Inizializzazione della RAM Finora abbiamo assunto che tutti i programmi risiedono gia in memoria Un set di programmi predefiniti (Sistema Operativo) fornito insieme all’elaboratore si occupa di caricare ed eseguire i nostri programmi Un programma speciale chiamato Bootstrap si incarica a sua volta di caricare il sistema operativo al momento dell’accensione della macchina

Elaboratore Moderno Disk INPUT OUTPUT CPU RAM I/O Controller Disk Controller BUS

Elaboratore Moderno L’attivita della CPU e’ svincolata dagli altri dispositivi La comunicazione avviene tramite il bus di sistema I controllori dei dispositivi quali disco fisso hanno la possibilità di accedere direttamente alla RAM Altre estensioni: Co-processori dedicati a compiti specifici Cache memory (memoria veloce) Multi-processori

Bus di sistema Collegamento tra le varie componenti sempre sotto il controllo della CPU Il bus viene assegnato alle componenti per un certo intervallo di tempo in modo che possano scambiare dati Bus dati Bus indirizzi Bus comandi

Interfacce di ingresso/uscita Circuiti che gestiscono le periferiche Registro dati (da e per la CPU) collegato al bus dati Registro comandi per la periferica collegato al bus comandi Informazioni sullo stato della periferiche (ad es collegato al reg. RINT)

Periferiche: Terminali Terminali consistono di Tastiera per acquisire dati in ingresso (input) Video per mostrare dati immessi ed elaborati; il cursore seleziona una posizione nel video dove vengono immessi i dati Mouse per controllare il cursore Caratteristiche: numero di colori, dimensioni, risoluzione, capacità grafica

Periferiche: Stampanti Producono su carta i risultati dell’elaboraz. Vari tipi: A margherita Ad aghi A getto d’inchiostro Laser Caratteristiche: velocità, risoluzione, set di caratteri, capacità grafica (colori ecc)

Elaboratori PC IBM-compatibile McIntosh (Apple) CPU 386, 486 a 32 bit Sistema Operativi: MS DOS (Microsotf) OS 2 (Sun) McIntosh (Apple) Workstations Sun, HP, Apollo Sistema Operativo: Unix