Architettura di un calcolatore e linguaggio macchina.

Slides:



Advertisements
Presentazioni simili
LINGUAGGIO MACCHINA e ASSEMBLER
Advertisements

La struttura fisica e logica di un elaboratore
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Informatica Generale Susanna Pelagatti
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.
Alcuni esercizi e domande per il compitino quali sono le parti principali dellarchitettura di von Neumann? citare le caratteristiche salienti della RAM.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Il Linguaggio Macchina
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.
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 5 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
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.
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 
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
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
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
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
2 bits di mantissa e 3 di esponente = 0 =
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
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.
Esempio scriviamo un programma in linguaggio macchina che: trasferisce il contenuto delle 2 parole della RAM di indirizzi 64 e 68 nei registri R 0 ed R.
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 in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
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.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Architettura di un calcolatore e linguaggio macchina

CPU Central Processing Unit, processore  Unita’ logica/aritmetica: elaborazione dati  Unita’ di controllo: coordina le attivita’  Registri: memoria temporanea, simili a celle di memoria principale Generici: per gli operandi di un’operazione logica/aritmetica, e il risultato Speciali: per operazioni particolari

CPU e memoria principale Trasferimento dati in entrambe le direzioni (lettura e scrittura): bus

Somma di due dati in memoria Prendere primo operando da RAM e metterlo in un registro Prendere l’altro operando da RAM e metterlo in un registro Attivare i circuiti per la somma usando i due registri come ingressi e un altro registro come uscita Trasferire il risultato in RAM Stop

Sia dati che programmi in RAM Non solo operandi o risultati sono memorizzati nella RAM Anche le istruzioni dei programmi La CPU esegue cose diverse (somma, sottrazione, divisione, operazioni logiche,...) a seconda dell’istruzione che legge in RAM Ogni istruzione: sequenza di bit contenuta in una cella di RAM

Linguaggio macchina Insieme di istruzioni molto semplici Approccio RISC (Reduced Instruction Set Computer): poche istruzioni semplici Approccio CISC (Complex...): molte istruzioni complesse Pentium sono CISC, POwerPC (Apple, IBM, Motorola) sono RISC

Istruzioni per trasferimento dati In realta’, non e’ un trasferimento ma una copia Load: da memoria a registro Store: da registro a memoria Anche input/output

Istruzioni logico/aritmetiche Operazioni aritmetiche: somma,... Operazioni logiche: and, or, xor, anche shift e rotate

Istruzioni di controllo Regolano l’esecuzione del programma Es.: stop Anche istruzioni di salto: se l’istruzione da eseguire non e’ la successiva nella lista Salto condizionato o no Es.: salta al passo 5, o salta al pass 5 se il valore ottenuto e’ 0

Divisione di due valori in memoria 1. Carica in un registro un valore in memoria (LOAD) 2. Carica in un altro registro un altro valore in memoria (LOAD) 3. Se questo secondo valore e’ 0, salta al passo 6 (salto condizionato) 4. Dividi il contenuto del primo registro per quello del secondo registro e metti il risultato in un terzo registro (op. aritmetica) 5. Archivia il contenuto del terzo registro in memoria (STORE) 6. STOP

Esempio di architettura 16 registri, 256 celle di memoria Program counter: indirizzo della prossima istruzione da eseguire Instruction register: istruzione da eseguire

Istruzione macchina Due parti (campi): Campo codice operativo: quale operazione eseguire Campo operando: diverso a seconda dell’operazione

Istruzioni di trasferimento: registri  RAM ALU R0R0 R1R1 R2R2 LOAD STORE

Formato: in binario! codice-op n. registro indirizzo parola RAM 8 bit 4 bit 20 bit 1 parola LOAD STORE Codici:

ARITMETICHE eseguono somma, differenza, moltiplicazione e divisione usando i registri come operandi ADD FADD SUB FSUB MULT FMULT DIV FDIV MOD RiRi RjRj C Op

FORMATO: codice-op reg 1 reg 2 8 bit 4 bit 4 bit inutile 1 parola

Istruzioni di input/output: unità I/O  RAM READ WRITE

Formato: in binario! codice-op n. unità indirizzo parola RAM 8 bit 4 bit 20 bit 1 parola READ WRITE Codici: Unità: STINP 0000 (tastiera) STOUT 0001 (video)

Confronto paragona il contenuto di 2 registri R i ed R j e: se R i < R j mette -1 nel registro RC se R i = R j mette 0 in RC se R i > R j mette 1 in RC RiRi RjRj C Cf RC COMP FCOMP Codici:

FORMATO: codice-op reg 1 reg 2 8 bit 4 bit 4 bit inutile 1 parola

Salto istruzioni che permettono di saltare ad un’altra istruzione del programma a seconda del contenuto di RC (cioè a seconda del risultato di un confronto) BRLT BRNE BRLE BRGE BREQ BRGT BRANCH Anche salto incondizionato!

FORMATO: codice-op indirizzo RAM 8 bits inutile 20 bit 1 parola

STOP termina il programma STOP Codice:

FORMATO: codice-op 8 bits inutile 1 parola

Ciclo della CPU La CPU esegue un programma memorizzato in RAM copiando ad una ad una le istruzioni nell’unita’ di controllo Ordine: quello in cui sono memorizzato, a meno di istruzioni di salto Registri speciali:  contatore di programma (program counter)  Istruzione (instruction register)

Ciclo della CPU Reperimento dell’istruzione (fetch):  lettura della cella di RAM il cui indirizzo e’ contenuto nel contatore di programma  caricamento del registro istruzione con l’istruzione  Incremento del contatore programma Decodifica dell’istruzione:  Trova gli operandi a seconda del codice operativo  Modifica contatore programma se istruzione di salto Esecuzione dell’istruzione:  Attiva i circuiti necessari

Ciclo della CPU

Esempio Scriviamo un programma macchina che: trasferisce il contenuto di 2 parole di indirizzo 64 e 68 della RAM nei registri R 0 ed R 1 li somma trasferisce la somma nella parola di indirizzo 60 della RAM

Codici delle operazioni trasferimento RAM  CPU: trasferimento CPU  RAM: somma :

Porta 68 in R1 Somma R0 e R1 Porta 64 in R Porta R0 in

Svantaggi del linguaggio macchina: programmi in binario sono difficili da scrivere, capire e cambiare il programmatore deve occuparsi di gestire la RAM: difficile ed inefficiente primo passo  Assembler

Novità dell’Assembler codici mnemonici per le operazioni nomi mnemonici (identificatori) al posto degli indirizzi RAM per i dati (e indirizzi RAM delle istruzioni usate nei salti) tipi dei dati INT e FLOAT

Codice-op mnemonici: trasferimento: LOAD (RAM  CPU) e STORE (CPU  RAM) aritmetiche: ADD,SUB,DIV,MULT,MOD, FADD,FSUB,FDIV,FMULT input/output: READ (U-INP  CPU), WRITE (CPU  U-OUT) test: COMP, FCOMP salto: BREQ,BRGT,BRLT,BRGE,BRLE, BRANCH terminazione: STOP

Stesso esempio del linguaggio macchina Z : INT ; X : INT 38; Y : INT 8; LOAD R0 X; LOAD R1 Y; ADD R0 R1; STORE R0 Z; dichiarazioni degli identificatori dei dati istruzioni assembler

Esempio carica due valori dalla RAM, li somma e mette il risultato al posto del maggiore dei 2 numeri sommati (nel caso siano uguali, non importa in quale dei due si mette la somma)

X: INT 38; Y: INT 8; LOAD R0 X; LOAD R1 Y; LOAD R2 X; ADD R2 R1; COMP R0 R1; BRGE pippo; STORE R2 Y; STOP; pippo: STORE R2 X; STOP;

Flowchart LOAD R0 X; LOAD R1 Y; LOAD R2 X; ADD R2 R1; R0  R1? STORE R2 X; STOP; STORE R2 Y; STOP; SINO test

Esempio calcolare il resto della divisione di due numeri usando solo la sottrazione

X: int 356; Y: int 23; RESTO: int ; LOAD R0 X; LOAD R1 Y; ciclo: COMP R0 R1; BRLT fine; SUB R0 R1; BRANCH ciclo; fine: STORE R0 RESTO; STOP;

LOAD R0 X; LOAD R1 Y; R0<R1? SUB R0 R1; NO STORE R0 RESTO; STOP; ciclo o iterazione SI

Esempio potenza Leggere un reale x ed un intero positivo n e calcolare la potenza x n Esempio

X: FLOAT ; N: INT ; Ris: FLOAT ; Uno : INT 1; Unofl: FLOAT 1.0; READ STINP X; READ STINP N; LOAD R0 Uno; SUB R0 R0; LOAD R1 Uno; LOAD R2 X; LOAD R3 N; LOAD R4 Unofl; R0 = 0 intero R1 = 1 intero R4 = 1 reale R2 = X reale R3 = N intero

Ciclo: COMP R3 R0; BREQ Esci; FMULT R4 R2; SUB R3 R1; BRANCH Ciclo; Esci: STORE R4 Ris; WRITE STOUT Ris; STOP; R0 = 0 intero R1 = 1 intero R4 = 1 realeR2 = X reale R3 = N intero R4 = X N-R3 R4 = X N

FMULT R4 R2; SUB R3 R1; NO ciclo o iterazione SI R3 = R0?

Domande: quali sono le novità principali dell’Assembler rispetto al linguaggio macchina? in un programma assembler, perchè si attaccano etichette a certe istruzioni?

come si chiama in Assembler l’istruzione che trasferisce una parola dalla RAM ad un registro della CPU? E quella che compie il trasferimento inverso? In assembler a cosa servono gli identificatori o variabili?