Lezione 2. Architetture HW e SW

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lezione 2. Architetture HW e SW"

Transcript

1 Lezione 2 Architetture HW e SW Cristina SILVANO Politecnico di Milano, Dipartimento di Elettronica e Informazione P.za L. Da Vinci 32, I Milano (Italy) Ph.: silvano@elet.polimi.it Web site: Architettura di riferimento dei calcolatori (Architettura di Von Neumann ) CPU Memoria principale Memoria di massa Interfaccia di I/O Periferiche Interfaccia di I/O Bus dati indirizzi controllo Corso Informatica A - Allievi Gestionali - prof. C. Silvano 2 Corso Informatica A Allievi Gestionali prof. C. Silvano 1

2 Architettura di riferimento dei calcolatori (Architettura di Von Neumann ) Elementi principali di un calcolatore: Unità centrale di elaborazione (Central Processing Unit - CPU) o processore Memoria di lavoro o memoria principale (Main Memory - MM) Interfacce per i dispositivi di Input/Output - I/O: memoria di massa (di solito dischi magnetici) periferiche (tastiera, monitor, mouse, modem, stampanti, ecc.) Bus di sistema (Bus dati, bus indirizzi, bus di controllo) Corso Informatica A - Allievi Gestionali - prof. C. Silvano 3 Unità centrale di elaborazione (Central Processing Unit - CPU) La CPU (o processore) provvede ad eseguire le istruzioni che costituiscono i diversi programmi elaborati dal calcolatore. Le istruzioni, insieme ai dati cui fanno riferimento, si trovano nella memoria principale e vengono trasferite alla CPU passando attraverso il bus. La CPU deve quindi prelevare le istruzioni dalla memoria (fase di fetch) per eseguirle. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 4 Corso Informatica A Allievi Gestionali prof. C. Silvano 2

3 Unità centrale di elaborazione (Central Processing Unit - CPU) La CPU non è in grado di elaborare direttamente i dati contenuti nella memoria principale, opera su dati che si trovano all interno di appositi elementi di memorizzazione (registri) contenuti all interno della CPU. Il tempo di accesso ai registri è circa 10 volte più veloce del tempo di accesso alla memoria principale. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 5 Unità centrale di elaborazione (Central Processing Unit - CPU) Per effettuare un operazione su dati contenuti in memoria, è necessario: Trasferire i dati dalla memoria ai registri del processore; Effettuare l operazione utilizzando i registri Trasferire il risultato in memoria. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 6 Corso Informatica A Allievi Gestionali prof. C. Silvano 3

4 Esempio Consideriamo un processore dotato di 2 registri R1 e R2. Vogliamo calcolare la somma dei valori contenuti in 2 locazioni di memoria a e b e mettere il risultato in una locazione c: c = a + b Corso Informatica A - Allievi Gestionali - prof. C. Silvano 7 Esempio Le operazioni da compiere sono: Copia il contenuto della parola di memoria di indirizzo a nel registro R1 Copia il contenuto della parola di memoria di indirizzo b nel registro R2 Somma il contenuto dei registri R1 e R2 e poni il risultato in R1 Copia il contenuto del registro R1 nella parola di memoria di indirizzo c. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 8 Corso Informatica A Allievi Gestionali prof. C. Silvano 4

5 Interfaccia processore-memoria Dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura. I contenuti della memoria sono referenziati in base alla loro posizione (indirizzo) in memoria, indipendentemente dal tipo di dato o istruzione contenuto. Le istruzioni vengono eseguite in modo sequenziale. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 9 Interfaccia processore-memoria CPU MAR BUS indirizzi Memoria PC ALU IR MDR dati R 0 R 1 R n-1 CNTR controllo Corso Informatica A - Allievi Gestionali - prof. C. Silvano 10 Corso Informatica A Allievi Gestionali prof. C. Silvano 5

6 Elementi principali della CPU Registro Program Counter (PC) registro contatore di programma per memorizzare l indirizzo di memoria dell istruzione che si sta eseguendo. Durante l esecuzione di un istruzione, il contenuto del PC viene aggiornato con l indirizzo dell istruzione successiva da eseguire (che deve essere prelevata dalla memoria); Corso Informatica A - Allievi Gestionali - prof. C. Silvano 11 Elementi principali della CPU Banco di registri (Register File) ad accesso rapido, per memorizzare temporaneamente gli operandi adoperati nelle istruzioni. Il banco di registri contiene n registri ad uso generale R 0, R 1,, R n-1 General-Purpose Registers. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 12 Corso Informatica A Allievi Gestionali prof. C. Silvano 6

7 Elementi principali della CPU Unità per l esecuzione delle istruzioni aritmeticologiche (Arithmetic Logic Unit - ALU). I dati forniti all ALU provengono dai registri del Register File. I risultati in uscita dall ALU vengono memorizzati nel Register File. Unità aggiuntive per elaborazioni particolari, ad esempio unità aritmetiche per eseguire le istruzioni in virgola mobile (Floating Point Unit FPU), che sono utilizzate per elaborare numeri reali. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 13 Elementi principali della CPU Unità di controllo (Control Unit) per coordinare le operazioni svolte da tutti gli elementi della CPU. Registro di controllo (Control Register) per memorizzare lo stato relativo alle istruzioni svolte. I trasferimenti di ingresso/uscita e i trasferimenti di dati/istruzioni tra processore e memoria sono coordinati dall unità di controllo tramite segnali di controllo e di temporizzazione. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 14 Corso Informatica A Allievi Gestionali prof. C. Silvano 7

8 Elementi principali della CPU IR Instruction Register: registro delle istruzioni per memorizzare l istruzione che il processore sta eseguendo (istruzione corrente). MAR Memory Address Register: registro degli indirizzi della memoria per memorizzare l indirizzo della posizione della memoria principale in cui o da cui i dati o istruzioni devono essere trasferiti. MDR Memory Data Register: registro dei dati della memoria per memorizzare i dati che devono essere scritti in memoria o letti dalla memoria e le istruzioni lette dalla memoria nella locazione indicata dall indirizzo specificato. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 15 Ciclo di esecuzione di un istruzione Prelievo istruzione Decodifica Prelievo operandi Esecuzione Memorizzazione risultati Corso Informatica A - Allievi Gestionali - prof. C. Silvano 16 Corso Informatica A Allievi Gestionali prof. C. Silvano 8

9 Esecuzione delle istruzioni Istruzioni e dati risiedono nella memoria principale, dove sono stati caricati attraverso un unità di ingresso. L esecuzione di un programma inizia quando il registro PC punta alla prima istruzione del programma. Il contenuto del PC viene trasferito nel MAR e un segnale di controllo per la lettura (READ) viene inviato alla memoria. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 17 Esecuzione delle istruzioni Trascorso il tempo necessario all accesso in memoria, la parola indirizzata (in questo caso la prima istruzione del programma) viene letta dalla memoria e trasferita nel registro MDR. Il contenuto del registro MDR (istruzione) viene trasferito nel registro IR. L istruzione contenuta nel registro IR viene decodificata. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 18 Corso Informatica A Allievi Gestionali prof. C. Silvano 9

10 Esecuzione delle istruzioni Se l istruzione deve essere svolta dall unità aritmeticologica è necessario recuperare gli operandi richiesti, che possono risiedere nei registri di uso generale oppure in memoria. Se un operando (o entrambi) risiede in memoria, deve essere prelevato caricando l indirizzo dell operando nel registro MAR e attivando un ciclo di READ della memoria. L operando letto dalla memoria viene posto nel registro MDR per essere trasferito alla ALU, che esegue l operazione. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 19 Esecuzione delle istruzioni Il risultato dell operazione può essere memorizzato nei registri ad uso generale oppure in memoria. Se il risultato dell operazione deve essere posto in memoria, l indirizzo della posizione di memoria in cui scrivere il risultato viene caricato nel registro MAR e si attiva un ciclo di scrittura (WRITE) della memoria. Il risultato da scrivere in memoria viene caricato nel registro MDR. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 20 Corso Informatica A Allievi Gestionali prof. C. Silvano 10

11 Esecuzione delle istruzioni Mentre viene eseguita un istruzione, il contenuto del PC viene incrementato in modo da puntare alla prossima istruzione da eseguire. Non appena è terminata l esecuzione dell istruzione corrente, si preleva l istruzione successiva dalla memoria. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 21 Registri e variabili Il numero dei registri ad uso generale (ad esempio 32 registri da 32 bit ciascuno) non è sufficientemente grande da consentire di memorizzare tutte le variabili di un programma. Ad ogni variabile viene assegnata una locazione di memoria nella quale trasferire il contenuto del registro quando questo deve essere utilizzato per contenere un altra variabile. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 22 Corso Informatica A Allievi Gestionali prof. C. Silvano 11

12 Architetture LOAD/STORE Architetture LOAD/STORE: gli operandi dell ALU possono provenire soltanto dai registri ad uso generale contenuti nella CPU e non possono provenire dalla memoria. Sono necessarie apposite istruzioni di: caricamento (LOAD) dei dati da memoria ai registri; memorizzazione (STORE) dei dati dai registri alla memoria. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 23 Interruzioni Oltre a trasferire dati/istruzioni tra memoria e processore, il calcolatore acquisisce dati dai dispositivi di ingresso e invia dati ai dispositivi di uscita attraverso apposite istruzioni che gestiscono i trasferimenti di I/0. Il normale flusso di esecuzione di un programma può essere interrotto da un segnale di interruzione (INTERRUPT) per una richiesta di intervento che un dispositivo di I/O manda al processore. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 24 Corso Informatica A Allievi Gestionali prof. C. Silvano 12

13 Memoria Principale Compito principale: contenere istruzioni e dati dei programmi in esecuzione. Caratteristiche fondamentali sono la dimensione complessiva (esempio 256 MByte) e la velocità di accesso. Suddivisa in elementi (parole o word) che possono essere letti o scritti con una singola operazione di lettura/scrittura della memoria. Nei calcolatori più recenti la dimensione della parola va da 32 bit a 128 bit (da 4 a 16 Byte). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 25 Memoria Principale In genere, la dimensione della parola di memoria coincide con la dimensione dei registri contenuti nella CPU, in modo da poter caricare una parola di memoria in un registro della CPU. Se anche il bus dati è largo come la parola di memoria, le operazioni di load/store avvengono con una singola operazione. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 26 Corso Informatica A Allievi Gestionali prof. C. Silvano 13

14 Memoria Principale Le memorie in cui ogni locazione può essere raggiunta in un breve e prefissato intervallo di tempo misurato a partire dall istante in cui si specifica l indirizzo desiderato, vengono chiamate memorie ad accesso casuale (Random Access Memory RAM) Nelle RAM il tempo di accesso alla memoria (tempo necessario per accedere ad una parola di memoria) è fisso e indipendente dalla posizione della parola alla quale si vuole accedere. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 27 Indirizzi nella memoria principale La memoria è organizzata in parole o word composte da n-bit che possono essere caricate e memorizzate con una singola operazione di lettura/scrittura della memoria. (n è chiamata lunghezza di parola, tipicamente da 16 a 64 bit). Ogni parola di memoria è associata ad un indirizzo composto da k-bit. I 2 k indirizzi (corrispondenti a 2 k parole ) costituiscono lo spazio di indirizzamento del calcolatore. Ad esempio un indirizzo composto da 32-bit genera uno spazio di indirizzamento di 2 32 o 4G parole. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 28 Corso Informatica A Allievi Gestionali prof. C. Silvano 14

15 Indirizzi nella memoria principale Indirizzo 0 1 i 2 k -1 n-bit b n-1.. b 1 b 0 Parola Parola 0 Parola 1 Parola i Parola2 k -1 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 29 Bus di sistema Permette la comunicazione tra le diverse unità del calcolatore ed è generalmente composto da tre parti: Bus dati, comprende le linee per trasferire dati e istruzioni da/verso la memoria. In generale, la dimensione del bus dati è tale da garantire il trasferimento contemporaneo di una o più parole di memoria; Corso Informatica A - Allievi Gestionali - prof. C. Silvano 30 Corso Informatica A Allievi Gestionali prof. C. Silvano 15

16 Bus di sistema Bus indirizzi, su cui la CPU provvede a trasmettere l indirizzo della parola di memoria da cui prelevare il dato nel caso di lettura dalla memoria, oppure in cui depositarlo nel caso di scrittura nella memoria; Bus di controllo, dove transitano le informazioni ausiliarie per la corretta definizione delle operazioni da compiere (per esempio l indicazione che si vuole effettuare una lettura piuttosto che una scrittura) e per la sincronizzazione tra CPU e memoria. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 31 Bus di sistema Esempio: Operazione di lettura dalla memoria. La CPU fornisce l indirizzo della parola desiderata sul bus indirizzi, quindi viene richiesta l operazione di lettura attivando il bus di controllo. Quando la memoria ha completato la lettura della parola richiesta, il dato viene trasferito sul bus dati e la CPU può prelevarlo ed utilizzarlo nelle sue elaborazioni. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 32 Corso Informatica A Allievi Gestionali prof. C. Silvano 16

17 Architettura dell insieme delle istruzioni (ISA) Software ISA Hardware Corso Informatica A - Allievi Gestionali - prof. C. Silvano 33 Architettura dell insieme delle istruzioni (ISA) Rappresenta un astrazione molto importante. Costituisce l interfaccia tra hardware e software di basso livello Fornisce uno standard per le istruzioni Esempi di moderne architetture di insiemi di istruzioni: 80x86/Pentium, MIPS Corso Informatica A - Allievi Gestionali - prof. C. Silvano 34 Corso Informatica A Allievi Gestionali prof. C. Silvano 17

18 Architettura dell insieme delle istruzioni (ISA) Ogni architettura di processore ha il suo insieme delle istruzioni. L architettura di un sistema è definita dal suo ISA (Instruction Set Architecture) Due processori con lo stesso ISA hanno la stessa architettura anche se le implementazioni hardware possono essere diverse. ISA consente di accedere direttamente alle risorse hardware di un calcolatore Corso Informatica A - Allievi Gestionali - prof. C. Silvano 35 Insieme delle istruzioni (Instruction Set) Le istruzioni comprese nell Instruction Set di ogni calcolatore possono essere classificate nelle seguenti quattro categorie: Istruzioni di trasferimento da/verso la memoria (load/store); Istruzioni aritmetico-logiche; Istruzioni di salto per il controllo del flusso di programma; Istruzioni di trasferimento in ingresso/uscita (I/O). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 36 Corso Informatica A Allievi Gestionali prof. C. Silvano 18

19 Istruzioni di load/store Per eseguire un istruzione, essa deve essere trasferita dalla memoria alla CPU. Operandi e risultati delle istruzioni devono essere trasferiti tra memoria e CPU. Necessarie due modalità di trasferimento di dati/istruzioni tra memoria e registri della CPU : load (caricamento) store (memorizzazione) Corso Informatica A - Allievi Gestionali - prof. C. Silvano 37 Istruzione di load L istruzione di load trasferisce una copia dei dati contenuti in una specifica locazione di memoria ai registri della CPU, lasciando inalterata la parola di memoria: load R1, a # R1 [a] La CPU invia l indirizzo della locazione desiderata alla memoria e richiede un operazione di lettura del suo contenuto. La memoria effettua la lettura dei dati memorizzati all indirizzo specificato e li invia alla CPU che li carica nel registro specificato nell istruzione. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 38 Corso Informatica A Allievi Gestionali prof. C. Silvano 19

20 Istruzione di store L istruzione di store trasferisce una parola di informazione dai registri della CPU ad una specifica locazione di memoria, sovrascrivendo il contenuto precedente di quella locazione: store R1, c # [c] R1 La CPU invia l indirizzo della locazione desiderata alla memoria, assieme con i dati che vi devono essere scritti e richiede un operazione di scrittura La memoria effettua la scrittura dei dati all indirizzo specificato Corso Informatica A - Allievi Gestionali - prof. C. Silvano 39 Istruzioni aritmetico-logiche In genere, un istruzione aritmetico-logica possiede tre operandi: i due contenitori dei valori da elaborare (operandi sorgente); il contenitore del risultato (operando destinazione). L istruzione contiene tre campi relativi ai tre operandi: add R1, R1, R2 # R1 R1 + R2 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 40 Corso Informatica A Allievi Gestionali prof. C. Silvano 20

21 Esempio precedente: c = a + b load R1, a load R2, b add R1, R1, R2 store R1, c # R1 [a] # R2 [b] # R1 R1 + R2 # [c] R1 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 41 Istruzioni di salto Le istruzioni di salto permettono di modificare l ordine sequenziale delle istruzioni. E possibile associare ad un istruzione un etichetta (label) da utilizzare nelle istruzioni di salto, ad esempio: L1: load R1, a # R1 [a] Corso Informatica A - Allievi Gestionali - prof. C. Silvano 42 Corso Informatica A Allievi Gestionali prof. C. Silvano 21

22 Istruzioni di salto Esistono due diversi tipi di istruzioni di salto: Salto incondizionato (JUMP): il salto viene sempre eseguito. Salto condizionato (BRANCH): il salto viene eseguito o no a seconda del valore di una condizione specificata. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 43 Istruzioni di salto incondizionato Ad esempio, l istruzione jump L1 fa proseguire l esecuzione dall istruzione corrispondente all etichetta L1. Esempio: jump L1 # go to L1 istruzioni saltate L1: load R1, a # R1 [a] load R2, b # R2 [b] add R1, R1, R2 # R1 R1 + R2 store R1, c # [c] R1 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 44 Corso Informatica A Allievi Gestionali prof. C. Silvano 22

23 Istruzioni di salto condizionato Ad esempio, l istruzione branch on equal: beq R1,zero,L1 permette di decidere quale sia la prossima istruzione da eseguire, in base al valore contenuto nel registro R1: se R1 contiene il valore zero, l esecuzione prosegue dall istruzione corrispondente all etichetta L1; se R1 contiene un valore diverso da zero, l esecuzione prosegue con l istruzione successiva. beq R1, zero, L1 # salta a L1 se R1 == zero Corso Informatica A - Allievi Gestionali - prof. C. Silvano 45 Esempio load R1, a # R1 [a] load R2, b # R2 [b] sub R1, R1, R2 # R1 R1 R2 beq R1, zero, alfa # se R1 == zero salta a alfa load R1, a # R1 [a] add R1, R1, R2 # R1 R1 + R2 alfa: store R1, c # [c] R1 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 46 Corso Informatica A Allievi Gestionali prof. C. Silvano 23

24 Risultato: Esempio pongo nella locazione di memoria di indirizzo c la somma dei valori contenuti agli indirizzi di memoria a e b, nel caso essi siano diversi; pongo nella locazione di memoria di indirizzo c il valore zero, nel caso essi siano uguali. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 47 Linguaggio assembly Il linguaggio assembly è costituito dalle istruzioni elementari viste finora composte da codici mnemonici (es. load, store, add), registri e locazioni di memoria. I codici mnemonici sono associati alle istruzioni macchina (istruzioni che la macchina è in grado di comprendere). Il linguaggio assembly è una rappresentazione simbolica del linguaggio macchina. Linguaggio assembly è più comprensibile del linguaggio macchina in quanto utilizza simboli invece che sequenze di bit Corso Informatica A - Allievi Gestionali - prof. C. Silvano 48 Corso Informatica A Allievi Gestionali prof. C. Silvano 24

25 Linguaggio assembly Rispetto ai linguaggi ad alto livello (es: C, Pascal, Java, ecc.), l'assembly fornisce limitate forme di controllo del flusso e di strutture dati Linguaggio usato come linguaggio target nella fase di compilazione di un programma scritto in un linguaggio ad alto livello. Vero e proprio linguaggio di programmazione che fornisce la visibilità diretta sull hardware. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 49 Fase di compilazione da linguaggio ad alto livello ad assembly Programma in linguaggio ad alto livello (C) c = a + b Compilatore Programma in linguaggio assembly load R1, a load R2, b add R1, R1, R2 store R1, c Corso Informatica A - Allievi Gestionali - prof. C. Silvano 50 Corso Informatica A Allievi Gestionali prof. C. Silvano 25

26 Assembly come linguaggio di programmazione Principali vantaggi della programmazione in linguaggio assembly: Ottimizzazione delle prestazioni. Massimo sfruttamento delle potenzialità dell'hardware sottostante. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 51 Assembly come linguaggio di programmazione Principali svantaggi della programmazione in linguaggio assembly: Le strutture di controllo hanno forme limitate Necessario conoscere i dettagli dell architettura del processore utilizzato Mancanza di portabilità dei programmi su macchine diverse, poiché ogni processore ha un proprio linguaggio assembly. Maggiore lunghezza, difficoltà di comprensione, facilità d errore rispetto ai programmi scritti in un linguaggio ad alto livello Corso Informatica A - Allievi Gestionali - prof. C. Silvano 52 Corso Informatica A Allievi Gestionali prof. C. Silvano 26

27 Linguaggio macchina Linguaggio di programmazione direttamente comprensibile dalla macchina Per indicare le istruzioni, i registri e le locazioni di memoria utilizza l alfabeto binario (ad esempio una sequenza composta da 16 bit). Il codice operativo identifica il tipo di istruzione (load, add, ecc.) mentre gli operandi indicano gli indirizzi dei registri o delle locazioni di memoria dove recuperare i dati su cui operare (operandi sorgente) o dove copiare i risultati (operandi destinazione). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 53 Esempio Struttura istruzione Linguaggio assembly Linguaggio macchina Codice operativo add Operando destinazione R1 001 Operando sorgente 1 R1 001 Operando sorgente 2 R2 010 Corso Informatica A - Allievi Gestionali - prof. C. Silvano 54 Corso Informatica A Allievi Gestionali prof. C. Silvano 27

28 Fase di compilazione da assembly a linguaggio macchina Programma in linguaggio assembly load R1, a load R2, b add R1, R1, R2 store R1, c Assembler Programma in linguaggio macchina Corso Informatica A - Allievi Gestionali - prof. C. Silvano 55 Linguaggi ad alto livello Per superare gli svantaggi della programmazione in linguaggio assembly e in linguaggio macchina, sono stati introdotti i linguaggi ad alto livello, in modo da facilitare la programmazione e renderla indipendente dalle caratteristiche peculiari della macchina utilizzata. Sono pensati non per essere compresi direttamente da macchine reali, ma da macchine astratte, in grado di effettuare operazioni più ad alto livello, rispetto alle operazioni elementari dei processori reali. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 56 Corso Informatica A Allievi Gestionali prof. C. Silvano 28

29 Linguaggi ad alto livello L attività di programmazione viene svincolata dalla conoscenza dei dettagli architetturali della macchina utilizzata (ad esempio il numero di registri interni alla CPU). Per poter eseguire su una macchina reale un programma scritto in un linguaggio ad alto livello è necessario tradurlo nel linguaggio della macchina utilizzata. Questa operazione di traduzione viene eseguita in modo automatico in due fasi successive. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 57 Compilazione Nella prima fase, il programma scritto in un linguaggio ad alto livello viene tradotto nel linguaggio assembly utilizzando appositi programmi detti compilatori. Dopo la fase di compilazione, il programma scritto in linguaggio assembly viene tradotto in linguaggio macchina utilizzando appositi programmi detti assemblatori (assembler). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 58 Corso Informatica A Allievi Gestionali prof. C. Silvano 29

30 Programma in linguaggio ad alto livello (C) c = a + b Compilatore Programma in linguaggio assembly load R1, a load R2, b add R1, R1, R2 store R1, c Assembler Programma in linguaggio macchina Corso Informatica A - Allievi Gestionali - prof. C. Silvano 59 Compilazione Nel seguito, con il termine compilazione si indica l intero processo di traduzione da linguaggio ad alto livello a linguaggio macchina (essendo l assemblatore spesso integrato con il compilatore). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 60 Corso Informatica A Allievi Gestionali prof. C. Silvano 30

31 Compilazione Un compilatore C per una macchina X, è un programma che riceve in ingresso un programma P scritto in linguaggio C, e genera in uscita un programma P scritto nel linguaggio della macchina X (equivalente a P) cioè tale che le esecuzioni di P e di P sugli stessi dati in ingresso producano gli stessi risultati. Un programmatore che conosca il linguaggio C e che disponga di un compilatore C per la macchina X può scrivere programmi da eseguire su X, senza conoscerne il linguaggio macchina. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 61 Compilazione Disponendo inoltre di un compilatore C per un altra macchina Y, lo stesso programma P scritto in C può essere fatto eseguire da Y, senza doverlo riscrivere da zero, come succedeva invece programmando in linguaggio macchina. In pratica il programmatore scrive il proprio programma in un linguaggio ad alto livello facendo riferimento ad una macchina astratta (la macchina C). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 62 Corso Informatica A Allievi Gestionali prof. C. Silvano 31

32 Compilazione Grazie alla compilazione, un programma per la macchina C può essere tradotto automaticamente in un programma per una macchina reale. La conoscenza del linguaggio macchina è necessaria solo per costruire il compilatore. Una variante dei compilatori sono gli interpreti. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 63 Interpreti Un interprete è un programma che simula direttamente una macchina astratta. Invece di effettuare la traduzione di P, un interprete C legge ogni istruzione contenuta nel programma P, ed effettua immediatamente, utilizzando la macchina X, le operazioni corrispondenti all istruzione letta. In pratica, la traduzione dell intero programma prima dell esecuzione, viene sostituita dalla traduzione simultanea, con esecuzione immediata di ciascuna istruzione. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 64 Corso Informatica A Allievi Gestionali prof. C. Silvano 32

33 Strumenti di supporto Nella fase di stesura di un programma, si utilizza un editor (un programma che permette di scrivere testi) per scrivere in un file il testo (detto programma sorgente) del programma nel linguaggio ad alto livello e memorizzarlo su disco. Il programma sorgente viene fornito in ingresso al compilatore che lo traduce nel codice oggetto, scritto in linguaggio macchina, memorizzato su disco. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 65 Strumenti di supporto Il linker (collegatore) ha il compito di collegare tra loro i vari moduli che costituiscono lo stesso programma: è infatti possibile suddividere il programma sorgente su più file, che vengono compilati separatamente creando diversi file oggetto, ed è anche possibile utilizzare funzioni di libreria. Il linker collega tra loro i file contenenti il codice oggetto dei vari moduli che costituiscono un programma, unendovi anche il codice delle funzioni di libreria utilizzate, producendo un file contenente il codice eseguibile, memorizzato su disco. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 66 Corso Informatica A Allievi Gestionali prof. C. Silvano 33

34 Strumenti di supporto Il codice eseguibile può essere a questo punto caricato in memoria principale dal loader per l esecuzione. La CPU esegue il programma, una istruzione per volta. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 67 Errori Durante la compilazione di un programma si possono riscontrare errori di sintassi. In questo caso, prima di passare alle fasi successive, è necessario correggere il testo del programma sorgente utilizzando l editor. Dopo che il programma sorgente viene compilato senza errori, si può richiamare il linker. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 68 Corso Informatica A Allievi Gestionali prof. C. Silvano 34

35 Errori Durante la fase di linking si possono verificare diversi tipi di errori, ad esempio la mancanza di uno o più moduli del programma o l utilizzo scorretto di funzioni di libreria. Durante la fase di esecuzione del codice possono verificarsi diversi tipi di errore, ad esempio un operazione di divisione darà errore se il divisore vale zero. (Si noti che gli errori di esecuzione possono dipendere dai dati in ingresso). Corso Informatica A - Allievi Gestionali - prof. C. Silvano 69 Errori L assenza di errori in esecuzione non implica che il programma sia corretto: il programma potrebbe produrre risultati diversi da quelli aspettati, cioè svolgere una funzione diversa da quella per cui è stato creato. E necessaria un approfondita fase di verifica (debugging) che ha come obiettivo quello di verificare che il programma sia corretto rispetto alle specifiche di progetto. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 70 Corso Informatica A Allievi Gestionali prof. C. Silvano 35

36 Errori Il debugger è uno strumento utile in questa fase per permettere di osservare passo passo l andamento dell esecuzione di un programma. Sono in genere disponibili ambienti integrati per lo sviluppo di programmi (IDE: Integrated Development Environment) in cui i diversi strumenti di supporto (editor, compilatore, linker, ecc.) sono tra loro integrati. Corso Informatica A - Allievi Gestionali - prof. C. Silvano 71 Corso Informatica A Allievi Gestionali prof. C. Silvano 36

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Fondamenti Teorici Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Agenda Modello di Von Neumann Algoritmo del Processore Linguaggio Macchina e Linguaggio Assembler Hardware e Software Compilatori

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40). RCHITETTUR DI UN ELORTORE Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). MCCHIN DI VON NEUMNN UNITÀ FUNZIONLI fondamentali Processore (CPU) Memoria

Dettagli

Architettura dei Calcolatori Introduzione al corso

Architettura dei Calcolatori Introduzione al corso Architettura dei Calcolatori Introduzione al corso Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti g.cecchetti@sssup.it Rappresentazione dell informazione Sommario: Premessa (struttura generale del

Dettagli

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing

Dettagli

COMPILAZIONE. Tarsformazione di linguaggi

COMPILAZIONE. Tarsformazione di linguaggi COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Caratteristiche di un PC

Caratteristiche di un PC Caratteristiche di un PC 1 Principali porte presenti sui personal computer PC Una porta è il tramite con la quale i dispositivi (periferiche o Device ) vengono collegati e interagiscono con il personal

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo numerico e programmazione Architettura dei calcolatori Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:

Dettagli

La macchina programmata Instruction Set Architecture (1)

La macchina programmata Instruction Set Architecture (1) Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

L architettura del calcolatore (Prima parte)

L architettura del calcolatore (Prima parte) L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto

Dettagli

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da

Dettagli

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3

Dettagli

Introduzione. Un calcolatore digitale è costituito da un sistema interconnesso dei seguenti dispositivi:

Introduzione. Un calcolatore digitale è costituito da un sistema interconnesso dei seguenti dispositivi: Appunti di Calcolatori Elettronici Organizzazione dei sistemi di elaborazione Introduzione... 1 La CPU... 2 Ciclo di esecuzione delle istruzioni... 3 Insieme delle istruzioni... 4 Organizzazione della

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore Architettura di un calcolatore Macchina di von Neumann: CPU (Central Processing Unit, CU+ALU) Memoria Centrale BUS di sistema Interfaccia alle periferiche I/O Fondamenti di Informatica 1 Architettura di

Dettagli

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:

Dettagli

La Macchina Virtuale

La Macchina Virtuale Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2008/2009 Docente: ing. Salvatore

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

CALCOLATORI ELETTRONICI

CALCOLATORI ELETTRONICI CALCOLATORI ELETTRONICI Giuseppe Coldani Tel. 0382 985678 e-mail: giuseppe.coldani@unipv.it giuseppe.coldani@tin.it orario delle lezioni: Mercoledì 14.00-18.00 orario di ricevimento: su appuntamento 1

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

Lezione n.9. Introduzione al linguaggio macchina

Lezione n.9. Introduzione al linguaggio macchina Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo

Dettagli

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

Dettagli

Il processore - CPU (CENTRAL PROCESSING UNIT)

Il processore - CPU (CENTRAL PROCESSING UNIT) Il processore - CPU (CENTRAL PROCESSING UNIT) Funzionamento Programmi e dati risiedono in file memorizzati in memoria secondaria. Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella

Dettagli

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.1 Hardware. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.1 Hardware. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s. ECDL CORE 5.0 Modulo 1 Concetti di base dell ICT Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s. 2012/2013 Scopi del Modulo 1 Concetti di base dell ICT, richiede che il candidato comprenda

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Il processore - CPU. PDF created with pdffactory trial version www.pdffactory.com

Il processore - CPU. PDF created with pdffactory trial version www.pdffactory.com Il processore - CPU (CENTRAL PROCESSING UNIT) Funzionamento o Programmi e dati risiedono in file memorizzati in memoria secondaria. o Per essere eseguiti (i programmi) e usati (i dati) vengono copiati

Dettagli

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

Interpreti e compilatori La macchina di Von Neumann

Interpreti e compilatori La macchina di Von Neumann Interpreti e compilatori La macchina di Von Neumann Informatica@Matematica Simone Martini a.a. 2014-2015 1 / 38 Parte I Interpreti e compilatori 2 / 38 Macchine astratte Una macchina astratta è un esecutore

Dettagli

Anatomia e fisiologia del computer: l architettura del calcolatore

Anatomia e fisiologia del computer: l architettura del calcolatore Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 01 Anatomia e fisiologia del computer: l architettura del calcolatore Marzo 2009 L architettura del calcolatore 1 Nota bene Alcune parti

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Funzionalità di un calcolatore

Funzionalità di un calcolatore Funzionalità di un calcolatore Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Architettura di un computer componenti per elaborare

Dettagli

Architettura di un Elaboratore

Architettura di un Elaboratore Architettura di un Elaboratore Fabio Massimo Zanzotto Ricapitoliamo puntate precedenti Cosa abbiamo a disposizione: Concetto di algoritmo (con eventuale parametrizzazione) Rappresentazione dell informazione

Dettagli

Parte II.2 Elaboratore

Parte II.2 Elaboratore Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno. Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere

Dettagli

La gestione dell I/O (Cap. 5, Tanenbaum)

La gestione dell I/O (Cap. 5, Tanenbaum) La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: cristian.delfabbro@uniud.it telefono: 0432 558676

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Macchina di von Neumann

Macchina di von Neumann Il processore PD32 Macchina di von Neumann Unità di Ingresso Memoria di lavoro Unità di Uscita Unità di Calcolo Unità di Controllo Suddivisione SCA-SCO Unità di Ingresso Memoria di lavoro Unità di Uscita

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN ALGORITMI E MACCHINA DI VON NEUMANN 1 COMPUTER= ELABORATORE NON CERVELLO ELETTRONICO CERVELLO: Capacità decisionali ELABORATORE: Incapacità di effettuare scelte autonome di fronte a situazioni impreviste

Dettagli

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

Dettagli

Fondamenti di informatica: un po di storia

Fondamenti di informatica: un po di storia Fondamenti di informatica: un po di storia L idea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal, Leibniz) Nell ottocento vengono realizzati i primi

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza WARNING Questo canale è solo per studenti di Fisica il cui cognome inizia con le lettere A-D Laboratorio

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Microelettronica. Architettura del processore ARM. Stefano Salvatori. Università degli Studi Roma Tre. (salvator@uniroma3.it) Microelettronica

Microelettronica. Architettura del processore ARM. Stefano Salvatori. Università degli Studi Roma Tre. (salvator@uniroma3.it) Microelettronica Microelettronica Architettura del processore ARM Stefano Salvatori (salvator@uniroma3.it) Microelettronica Sommario Architettura ARM Differenze con i RISC Programmer s model Sistemi di sviluppo Microelettronica

Dettagli

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO PROGRAMMA Descrizione funzionale di un calcolatore elementare, COS'E' UN ELETTRONICO HARDWARE SOFTWARE HARDWARE

Dettagli

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014 Corso: Informatica+ Andrea Cremonini Lezione del 20/10/2014 1 Cosa è un computer? Un elaboratore di dati e immagini Uno smartphone Il decoder di Sky Una console di gioco siamo circondati! andrea.cremon

Dettagli

Unità Periferiche. Rete Di Controllo

Unità Periferiche. Rete Di Controllo MODELLO LOGICO-FUNZIONALE DI UN ELABORATORE Centrale di canale Periferiche CPU Memoria centrale ALU CU Memoria Locale ALU = Aritmetic Logic Unit CU = Registri CU ISTRUZIONE Decodificatore Rete Di Controllo

Dettagli

La macchina di Von Neumann. Central Processing Unit (CPU) Elementi base. Architettura computer. Bus di sistema MEMORIA CENTRALE PERIFERICHE A B INTR

La macchina di Von Neumann. Central Processing Unit (CPU) Elementi base. Architettura computer. Bus di sistema MEMORIA CENTRALE PERIFERICHE A B INTR Architettura di un computer La macchina di Von Neumann Architettura organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto ARCHITETTURA DEI CALCOLATORI

Dettagli

ARCHITETTURA DELL ELABORATORE

ARCHITETTURA DELL ELABORATORE 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY ARCHITETTURA DELL ELABORATORE Prof. G. Ciaschetti 1. Tipi di computer Nella vita di tutti giorni, abbiamo a che fare con tanti tipi di computer, da piccoli o piccolissimi

Dettagli

Architettura dei calcolatori I parte Introduzione, CPU

Architettura dei calcolatori I parte Introduzione, CPU Università degli Studi di Palermo Dipartimento di Ingegneria Informatica C.I. 1 Informatica ed Elementi di Statistica 2 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti Elettronica dei Sistemi Programmabili A.A. 2013-2014 Microcontrollori Introduzione allo sviluppo di progetti Premessa Qualunque sistema basato su microcontrollore deve eseguire un codice memorizzato in

Dettagli

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza WARNING Questo canale è solo per studenti di Fisica il cui cognome inizia con le lettere A-C TUTTAVIA

Dettagli

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore Dispensa di Fondamenti di Informatica Architettura di un calcolatore Hardware e software La prima decomposizione di un calcolatore è relativa ai seguenti macro-componenti hardware la struttura fisica del

Dettagli

Architettura del Set di Istruzioni (ISA)

Architettura del Set di Istruzioni (ISA) Architettura del Set di Istruzioni (ISA) Maurizio Palesi Maurizio Palesi 1 Instruction Set Architecture (ISA) Software instruction set Hardware Maurizio Palesi 2 1 Instruction Set Architecture (ISA) Applicazioni

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di Von Neumann Sistemi basati sull architettura Harward Architettura dei calcolatori: definizioni Evoluzione

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Architettura dei calcolatori I parte Introduzione,

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Piccoli Ingegneri Informatici

Piccoli Ingegneri Informatici Piccoli Ingegneri Informatici 1 Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer p Science) ) Scienza dell informazione Definizione i i proposta: Scienza della rappresentazione

Dettagli

ARCHITETTURA FISICA DEL SISTEMA

ARCHITETTURA FISICA DEL SISTEMA PROGETTO EBLA+ L uso dei contenitori EBLAplus ti aiuterà a gestire i tuoi documenti in modo facile e organizzato. Potrai in ogni momento, dal tuo dispositivo mobile, controllare quali documenti compongono

Dettagli

ARCHITETTURA DI UN PERSONAL COMPUTER

ARCHITETTURA DI UN PERSONAL COMPUTER ARCHITETTURA DI UN PERSONAL COMPUTER Processore Tastiera Mouse CD-ROM Bus Memoria FD HD Stampante La struttura logica Fisicamente l unità centrale è costituita da:... la gabbia per le schede (rack)...

Dettagli

Componenti del Sistema di Elaborazione

Componenti del Sistema di Elaborazione Componenti del Sistema di Elaborazione Il Sistema di Elaborazione Monitor Tastiera Processore Memoria Centrale (Programmi + Dati) Memorie di massa Altre periferiche Rete Rete a.a. 2002-03 L. Borrelli 2

Dettagli

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica SPIM Architetture dei Calcolatori (Lettere A-I) SPIM Ing.. Francesco Lo Presti Simulatore che esegue programmi assembler per architetture RISC MIPS R2000/R3000 Legge programmi in assembler MIPS e li traduce

Dettagli

Componenti di base di un computer

Componenti di base di un computer Componenti di base di un computer Architettura Von Neumann, 1952 Unità di INPUT UNITA CENTRALE DI ELABORAZIONE (CPU) MEMORIA CENTRALE Unità di OUTPUT MEMORIE DI MASSA PERIFERICHE DI INPUT/OUTPUT (I/O)

Dettagli

I sistemi di elaborazione

I sistemi di elaborazione 2 I sistemi di elaborazione 2.0 I sistemi di elaborazione c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 2.0 0 2 I sistemi di elaborazione Architettura

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Università degli Studi G. d'annunzio C.L. Economia e Informatica per l'impresa. Sistemi Operativi e Reti A.A. 2014/2015 prof.

Università degli Studi G. d'annunzio C.L. Economia e Informatica per l'impresa. Sistemi Operativi e Reti A.A. 2014/2015 prof. Università degli Studi G. d'annunzio C.L. Economia e Informatica per l'impresa Sistemi Operativi e Reti A.A. 2014/2015 prof. Gianluca Amato Architettura degli elaboratori Architettura Hardware Architettura

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

NozionidiBase di Informatica

NozionidiBase di Informatica Università degli Studi di Parma Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica NozionidiBase di Informatica Roberto Alfieri Giulio Destri Nozioni Base di Informatica - 1 R. Alfieri e G. Destri

Dettagli