Informatica Generale Susanna Pelagatti

Slides:



Advertisements
Presentazioni simili
Informatica Generale Marzia Buscemi
Advertisements

Informatica Generale Susanna Pelagatti
Informatica Generale Marzia Buscemi IMT Lucca
La struttura fisica e logica di un elaboratore
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Informatica Generale Susanna Pelagatti
La struttura hardware.
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.
Il Linguaggio Macchina
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Informatica (Programmazione)
Il livello Microarchitetturale
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Il Linguaggio Macchina
Com’è fatto un elaboratore?
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Informatica Generale Susanna Pelagatti
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
ARCHITETTURA DEL 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.
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
Il Calcolatore Elettronico
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
ARCHITETTURA DI UN ELABORATORE
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:
Architettura di una CPU
Architettura del calcolatore
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Calcolatori Elettronici Il Processore
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Corsi di Laurea in Biotecnologie
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
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.
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
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.
STRUTTURA DELL’ELABORATORE
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
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.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Informatica Generale Susanna Pelagatti email: susanna@di.unipi.it Ricevimento: Mercoledì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 346 DE Tel. 050.2212.772 o per posta elettronica Pagina web del corso: http://www.di.unipi.it/~susanna/IG02/

La struttura hardware

Ritorniamo alla …. struttura generale di un calcolatore Il calcolatore di Von Neumann Processore (CPU) Sottosistema di Interfaccia Memoria (RAM,dischi, etc) Mantiene Dati e Programmi E’ un esecutore capace di interpretare i singoli passi richiesti dai programmi (istruzioni elementari) Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, micr., stampante, schermo, )

Struttura di un calcolatore (2) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

Struttura di un calcolatore (3) indirizzi Sequenza di parole (un array …) 1 2 3 4 RAM (memoria centrale) Processore . bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

Struttura di un calcolatore (4) indirizzi Sequenza di parole (un array …) 1 2 3 4 RAM (memoria centrale) Processore Valore da trasferire Dove trasferirlo . Direzione di trasferimento, unità coinvolte etc. bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

Struttura di un calcolatore (5) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

Operazioni elementari eseguibili da un processore Dati numerici (binari) : operazioni matematiche : +,-,divisione e moltiplicazione per potenze di due confronti con 0 operazioni logiche o booleane: AND, OR, XOR, NOT Dati numerici e non letture/scritture nella memoria, letture e scritture nei registri di controllo dei dispositivi uguaglianza e disuguaglianza di due rappresentazioni

Operazioni elementari eseguibili da un processore (2) Operazioni di ‘controllo di flusso’ : salti condizionati (corrispondono alla combinazione di istruzioni di controllo se ( …) vai al passo X ) salti incondizionati (corrispondono alla istruzioni di controllo vai al passo X ) chiamate di un sottoprogramma (CALL) terminazione del programma (RETURN)

Operazioni elementari eseguibili da un processore (3) Abbiamo elencato le funzionalità tipiche, i loro nomi ed il funzionamento specifico variano da macchina a macchina Esistono sul mercato processori ‘compatibili’ cioè in grado di eseguire lo stesso insieme di istruzioni (facilita la portabilità dei programmi in linguaggio macchina) es : Intel Pentium, IBM-Cyrix, AMD

Operazioni booleane Sono operazioni che lavorano su variabili che assumono valori di verità o boolani (vero, falso) : es : se fuori piove e mi sposto a piedi allora apro l’ombrello La due sotto-condizioni (fuori piove, mi sposto a piedi) avranno un valore vero/falso che dipende dalla situzione in cui mi trovo l’operatore booleano ‘e’ permette di combinare fra loro due valori booleani il risultato dell’operazione ‘e’ è il valore vero se entrambi gli operando sono veri e falso altrimenti

Operazioni booleane (2) Con le operazioni booleane è possibile complicare arbitrariamente le condizioni delle strutture se…allora…altrimenti e finchè...ripeti Anche i valori booleani si possono rappresentare in codifica binaria: generalmente 1 rappresenta VERO 0 rappresenta FALSO La definizione di ciascuna operazione booleana si può dare sotto forma di tabellina (la tabella di verità)

Operazioni booleane (3) Le operazioni boolane più comuni sono : Operazione di and () : A and B : combina i valori di A e B in modo che il risultato sia vero solo se sono veri sia A che B Operazione di or () : A or B : combina i valori di A e B in modo che il risultato sia vero solo almeno uno fra A e B è vero Operazione di not () : not A : restituisce falso se A e vero e viceversa

Tabelle di verità delle operazioni and, or e not

Operazioni logiche/booleane : perché sono importanti Sono facili da realizzare utilizzando circuiti elementari È possibile dimostrare che tutte le funzioni interessanti possono essere calcolate utilizzando una opportuna combinazione delle funzioni logiche Esiste un procedimento automatico per trovare questa combinazione, che viene utilizzato per realizzare le funzioni disponibili nell’hw

Operazioni logiche : perché sono importanti (2) Quando si scrivono programmi che ‘parlano’ con l’hw spesso dobbiamo manipolare sequenze binarie direttamente Usando le funzioni logiche è sempre possibile costruire la manipolazione che ci interessa es: mettere a 0 il terzo bit di una rappresentazione consideriamo la rappr. 0001001111111 mi costruisco la ‘maschera’ 1111111111011 e poi calcolo AND 0001001111011 ‘bit a bit’ AND

Linguaggio macchina e assembler linguaggio comprensibile direttamente dal processore della macchina (binario) Assembler : versione simbolica del linguaggio macchina in cui i nomi delle operazioni e degli operandi sono indicati con codici simbolici

Linguaggio macchina e assembler (2) Per ‘parlare direttamente con la macchina’ si usa l’assembler Assemblatori : programmi che traducono il codice simbolico in sequenze di 0 e 1 Nei prossimi lucidi vediamo un esempio di un tipico programma assembler e i passi necessari per la sua traduzione in binario

Linguaggio macchina e assembler (3) Esempio: come si realizza in assembler l’operazione x=y+2 : LOAD Y, R1 ADD 2, R1 STORE R1, X memoria Legge il valore in Y e lo scrive in R1 Y 34 X 222 17 R1 Indirizzi di due parole di memoria che rappresentano le variabili intere x e y Registro interno del processore (variabile temporanea su cui lavorare)

Linguaggio macchina e assembler (4) Esempio x=y+2 (assembler) LOAD Y, R1 ADD 2, R1 STORE R1, X memoria Aggiunge 2 a R1 Y 34 X 222 34 R1 Indirizzi di due parole di memoria che rappresentano interi Registro interno del processore (variabile temporanea su cui lavorare)

Linguaggio macchina e assembler (5) Esempio x=y+2 (assembler) LOAD Y, R1 ADD 2, R1 STORE R1, X memoria Y 34 Scrive il contenuto di R1 nella parola di indirizzo X X 222 36 R1 Indirizzi di due parole di memoria che rappresentano interi Registro interno del processore (variabile temporanea su cui lavorare)

Linguaggio macchina e assembler (6) Esempio x=y+2 (assembler) LOAD Y, R1 ADD 2, R1 STORE R1, X memoria Y 34 X 36 36 R1 Situazione finale della memoria

Linguaggio macchina e assembler (7) Traduzione binaria (in linguaggio macchina) di LOAD Y, R1 ADD 2, R1 STORE R1, X Prima di tutto dobbiamo decidere quale è il vero indirizzo di X e Y memoria Y 01101 11100 X

Linguaggio macchina e assembler (8) Codifica binaria di LOAD 01101, R1 ADD 2, R1 STORE R1, 11100 Ogni operazione si codifica secondo un formato stabilito da chi costruisce l’hw un formato semplificato è Codice operativo Modo 1 Op1 Modo 2 Op2

Linguaggio macchina e assembler (9) Vediamo i vari campi del formato : Codice operativo Modo1 Op1 Modo2 Op2 È la codifica dell’operazione da eseguire es: ADD 0001 LOAD 0110 STORE 0111

Linguaggio macchina e assembler (9) Vediamo i vari campi del formato : Codice operativo Modo1 Op1 Modo2 Op2 È la codifica primo operando, MODO1 dice a cosa si riferisce OP1 es: se MODO1 = 00 l’operando è nel registro interno del processore (e OP1 è il numero del registro) se MODO1 = 01 l’operando è in memoria (e OP1 è l’indirizzo) se MODO1 = 10 l’operando è immediato, cioè OP1 è direttamente il valore dell’operando Lo stesso vale per il secondo operando!

Linguaggio macchina e assembler (10) Tipicamente la codifica di una istruzione ‘ lunga come una parola o multipli della parola per poterla leggere dalla memoria in modo più efficiente : es : con parole di 4 byte (32 bit) Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit

Linguaggio macchina e assembler (11) Problema ….. es : con 12 bit posso indirizzare ‘solo’ 212 parole di memoria centrale (RAM) ! Cioè posso avere al massimo una RAM di 4K parole … se ne ho di più (oggi si arriva tranquillamente a 512K e siamo sempre in aumento …) devo inventarmi codifiche diverse…. Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit

Linguaggio macchina e assembler (12) Codifica binaria di LOAD 01101, R1 ADD 2, R1 STORE R1, 11100 MODI 00 registro 01 memoria 10 immediato CODICI OPERATIVI ADD 0001 LOAD 0110 STORE 0111 Codice operativo Modo1 Op1 Modo2 Op2 4bit 2bit 12bit 2bit 12bit 0110 01 01101 00 00001 load 0001 10 00010 01 00001 add 0111 00 00001 01 11100 store

Il processore Come è strutturato il processore per riuscire ad eseguire i programmi in linguaggio macchina che abbiamo appena visto …. Dati e programmi sono codificati in binario e risiedono in Memoria Centrale (RAM) ad opportuni indirizzi

Il processore (2) Esegue il seguente ciclo ininterrottamente : 1. (fetch) legge una nuova istruzione da eseguire dalla memoria centrale 2. (decode) risale alla operazione richiesta decodificando la rappresentazione binaria 3. (execute) porta a termine l’operazione richiesta

Il processore: struttura base M e m o r i a c n t l Operazione Bus controllo PC PSW Esegui M A R IR Parte controllo Bus indirizzo Registro/i coinvolti M D R R0 Esito ALU R1 Bus dati R2 ... Registri generali R16 Processore

Il processore struttura base (2) PC (program counter) indica l’indirizzo di memoria della prossima istruzione da eseguire IR (Instruction register) contiene copia della codifica dell’istruzione da eseguire MAR, MDR (Memory Address Register, Memory Data Register) contengono l’indirizzo della cella di memoria che vogliamo leggere/scrivere (MAR) ed i dati da/per la memoria (MDR)

Il processore struttura base (3) PSW (program status word) contiene informazioni, opportunamente codificate, sull’esito di operazioni aritmetico logiche o sull’esito di operazioni di confronto e informazioni sul funzionamento della macchina (le vedremo qundo parleremo dei sistemi operativi) ALU (Arithmetic-Logic Unit) effettua operazioni di tipo aritmetico e logico-booleano (+,-,and,or …)

Un esempio : ADD 2, R1 (fetch 1) Indirizzo della istruzione memoria Bus controllo Operazione 40 PC PSW Esegui 000..01 M A R IC 40 Parte controllo Bus indirizzo Registro/i coinvolti M D R R0 Esito ALU R1 Bus dati R2 ... Registri generali R16 Processore codifica

Un esempio : ADD 2, R1 (fetch 2) Indirizzo della istruzione memoria Operazione Leggi! 41 PC PSW Esegui 40 000..01 IC Parte controllo 40 Bus indirizzo Registro/i coinvolti MAR M D R R0 Esito ALU R1 Bus dati R2 ... Registri generali R16 Processore codifica

Un esempio : ADD 2, R1 (fetch 3) memoria Operazione 41 PC PSW Esegui 40 000..01 000110000100100001 IC Parte controllo Bus indirizzo Registro/i coinvolti MAR R0 Esito ALU R1 Bus dati R2 MDR ... Registri generali R16 Processore

Un esempio : ADD 2, R1 (dec) 000110000100100001 memoria add 41 PC PSW Esegui 40 000..01 000110000100100001 IC Parte controllo Bus indirizzo Registro/i coinvolti MAR R0 Esito ALU R1 Bus dati R2 MDR ... Registri generali R16 Processore

Un esempio : ADD 2, R1 (exe 1) 000110000100100001 memoria add 41 PC PSW Esegui 40 000..01 000110000100100001 IC Parte controllo Bus indirizzo Registro/i coinvolti MAR 00010 Esito ALU R1 Bus dati R2 MDR ... Registri generali R16 Processore

Un esempio : ADD 2, R1 (exe 2) 000110000100100001 memoria add 41 PC PSW Esegui 40 000..01 000110000100100001 IC Parte controllo Bus indirizzo Registro/i coinvolti MAR 00010 Esito ALU 34 Bus dati R2 MDR ... Registri generali R16 Processore

Un esempio : ADD 2, R1 (exe 3) 000110000100100001 memoria 41 PC PSW 40 000..01 000110000100100001 IC Parte controllo Bus indirizzo Registro/i coinvolti MAR 00010 Esito ALU 36 Bus dati R2 MDR ... Registri generali R16 Processore

Il processore : il clock ed i GHz I vari sotto-passi che compongono l’esecuzione di una istruzione seguono algoritmi cablati nei circuiti della macchina L’esecuzione è sincrona, cioè esiste un segnale di ‘inizio della sottooperazione’ (detto tick, in quanto generato da un clock) riconosciuto da tutti i componenti La frequenza con cui viene inviato il tick è misurata in ‘numero di tick al secondo’ (Hz) nei computer attuali 1Ghz (giga hertz), ovvero uno al nanosecondo, o più