Il Linguaggio Macchina

Slides:



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

Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Definizione e tipi di implementazione
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
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
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Architettura di un calcolatore Ing. Simona Colucci.
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.
Com’è fatto un elaboratore?
Codifica di algoritmi linguaggio macchina vs programmazione strutturata Lab Programmazione - turno /2006.
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
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
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
La macchina di von Neumann
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il Modello logico funzionale dell’elaboratore
ELETTRONICA DIGITALE (II Parte)
Appunti di Informatica
L' ARCHITETTURA DI VON NEUMANN
Architettura del calcolatore
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:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
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 
Informatica A.A. 2009/2010 Parte 2 L’Elaboratore Corso A: Prof. Stefano Berardi Corso B: Prof. Ugo de’ Liguoro
Calcolatori Elettronici Il Processore
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corsi di Laurea in Biotecnologie
Laboratorio Informatico
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.
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
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.
Esercizi.
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.
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.
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 …
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.
Il modello di Von Neumann
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Il Linguaggio Macchina

Come funziona l’elaboratore? Un programma (sequenza di istruzioni) 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

Elaboratore Ideale di Von Neumann 0: decoder 1: 2: ACC : ALU PC RIC RAM CPU

Registri Registro istruzione corrente (RIC) contiene l’istruzione correntemente eseguita Contatore di Programma (PC) indirizzo della prossima istruzione da eseguire Accumulatore (ACC) Contiene valori utilizzati durante operazioni Decoder Decodifica codice istruzione

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 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 = 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 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 = …

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

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

Nomi mnemonici Per semplificare la lettura delle istruzioni associamo dei nomi mnemonici ai codici delle istruzioni Il nostro primo esempio si potrebbe scrivere come RAM[0]= LOAD 4 RAM[1]= SUM 5 RAM[2]= MOVE 4 RAM[3]= HALT RAM[4]= 21 RAM[5]= 9 LOAD rappresenta il codice 4 ecc.

Istruzioni come dati Supponiamo che una cella della RAM contenga l’istruzione MOVE 4 MOVE 4 rappresenta in realtà un numero Nella nostra codifica decimale Se codice di MOVE è 2 2*1000 + 4 = 2004 Tale codifica semplifica i nostri calcoli ma non rispecchia i valori realmente memorizzati nella RAM dove si ragiona in binario

Istruzioni come dati Le istruzioni in memoria sono in realtà codificate in binario Ad esempio supponiamo di utilizzare un byte per il codice e uno per l’argomento MOVE 4 viene rappresentato come 00000010 00000100 Cioe’ 2*28+4 = 516 (28 rappresenta il numero di bit che aggiungiamo a destra del codice)

Istruzioni come dati Indipendentemente dalla codifica è importante notare che le istruzioni possono essere trattate come dati MOVE 4 diventa 2004 e i dati come istruzioni Il numero 2004 diventa MOVE 4

Programmi automodificanti 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 Nella macchina di Von Neumann alcuni problemi si possono risolvere solo con programmi automodificanti

Esempio Un tipico problema in cui occorre modificare le istruzioni durante l’esecuzione Allocare K celle di RAM consecutive con valori letti in ingresso dove K è a sua volta un numero in ingresso (input)