2. Architettura di un calcolatore

Documenti analoghi
Architettura di un calcolatore

La macchina di Von Neumann

L architettura del calcolatore

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Architettura di un elaboratore. Il modello di von Neumann

ARCHITETTURA DI UN ELABORATORE

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Il modello di Von Neumann

ARCHITETTURA DI UN ELABORATORE

Architettura del Calcolatore. Danilo Ardagna Politecnico di Milano

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Lezione 15. L elaboratore Elettronico

Elementi di informatica

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Elementi di informatica

Elementi di base del calcolatore

ARCHITETTURA DI UN ELABORATORE

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

La macchina di Von Neumann

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

ARCHITETTURA DI UN ELABORATORE

Architettura hardware

Esame di INFORMATICA Lezione 4

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Modulo: Elementi di Informatica

Componenti principali

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Architettura dei calcolatori

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

Struttura di un elaboratore

Componenti e connessioni. Capitolo 3

Corso di Informatica

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Il Microprocessore. Modello di Von Neumann

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

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

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura dei calcolatori

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

Lezione 1: L hardware

Corso di Fondamenti di Informatica Elementi di Architettura

Architettura dei Calcolatori Elettronici

Architettura dei computer

Struttura di un sistema di elaborazione. SDE: basi. Descrizione dei componenti (2) Descrizione delle componenti

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Introduzione al funzionamento di un calcolatore elettronico

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Fondamenti di Informatica

Architettura hardware

Macchina di von Neumann/Turing

Architettura dei Calcolatori elettronici

Capitolo 5 Elementi architetturali di base

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

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

INFORMATICA GENERALE

Note sull architettura del calcolatore

Architettura di una CPU

Macchine Astratte. Luca Abeni. February 22, 2017

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

Componenti di un processore

Architettura di un calcolatore

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

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Lezione 3: Architettura del calcolatore

Memorie a semiconduttore

Che cos è l informatica?

Architettura di Von Neumann

Sistemi di Elaborazione delle Informazioni

Architettura di von Neumann

Architettura di von Neumann

Lezione 22 La Memoria Interna (1)

Il Processore: l unità di controllo

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Fondamenti di Informatica

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Struttura hw del computer

Informatica e Bioinformatica anno 2013/2014

Il modello di von Neumann

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Architettura di un calcolatore: Introduzione parte 2

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Struttura dell elaboratore elettronico

Il linguaggio macchina

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Il Processore. Informatica di Base -- R.Gaeta 27

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella

La memoria principale

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

The easiest way to tell the di erence between hardware and software is to kick it. If it hurts your toe, it is hardware.

Architettura dei calcolatori I parte Introduzione, CPU

Struttura del calcolatore

Lez. 5 I dispositivi di I/O. Prof. Pasquale De Michele Gruppo 2

Informatica e Bioinformatica

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

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

Transcript:

Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 2. Ing. Michele Ruta 1di 31

Sommario Architettura di base: il modello della macchina di Von Neumann: Memoria CPU Bus Interfacce Esempio: Dall algoritmo al programma Fasi di esecuzione di un istruzione 2di 31

Macchina di Von Neumann Unità di Elaborazione (CPU - Central Processing Unit): insieme di microchip per acquisire interpretare ed eseguire le istruzioni di un programma. Memoria centrale (RAM- Random Access Memory): contiene informazioni necessarie all esecuzione di un programma (istruzioni e dati). Bus di sistema: opera il collegamento tra gli elementi funzionali Interfacce: forniscono il collegamento verso le periferiche che permettono lo scambio di informazioni tra elaboratore e mondo esterno (I/O) 3di 31

Macchina di Von Neumann Bus di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Interfaccia Periferica P 1 Interfaccia Periferica P 2 Esecuzione istruzioni 4di 31 Memoria di lavoro Memoria di massa, stampante, terminale

Macchina di Von Neumann Componenti e ruoli La CPU estrae, decodifica ed esegue istruzioni (elaborazione o trasferimento di informazione) della memoria. Il bus di sistema effettua il collegamento logico/fisico tra gli elementi funzionali in base al trasferimento da attuare. Le fasi di elaborazione si susseguono in modo sincrono rispetto alla scansione temporale imposta da un clock di sistema. L unità di controllo della CPU coordina durante ogni intervallo di tempo l esecuzione delle funzioni da svolgere all interno della CPU o presso gli altri elementi funzionali. LIMITE: esecuzione in sequenza 5di 31

Codifica di dati e istruzioni Tutti i dati e le istruzioni di programma vengono codificati in forma binaria ossia come sequenze finite di 0 e 1 Si parla di bit (binary digit, b): più piccola unità di informazione memorizzabile o elaborabile corrisponde allo stato di un dispositivo fisico e di byte (B): 8 bit Codifica dati: cfr. Codifica binaria dell informazione Codifica istruzioni (elaborazione o trasferimento): codice operativo: specifica la tipologia di operazione da compiere operandi: specifica la locazione dei dati da elaborare o trasferire. 6di 31

Memoria centrale MM Accoglie dati e programmi necessari al lavoro di un elaboratore E un passaggio obbligato per l informazione da e verso la periferia (le operazioni comportano I/O) E volatile e non permanente (come invece è la memoria di massa) Concettualmente: sequenza di celle di memoria, ciascuna contenente una parola: sequenza di byte di dimensione variabile a seconda del calcolatore (>=4 byte) Tecnologicamente: dispositivi a semiconduttore; struttura matriciale ove le righe rappresentano le word e le colonne, in numero pari alla lunghezza della parola, ciascun bit di memoria informazione memorizzata come stato di tensione (1 alto 0 basso) nelle posizioni di memoria agli incroci tra righe e colonne 7di 31

Memoria centrale MM Operazioni sulla memoria (controllate dalla CPU con l uso del bus): Indirizzamento della MM (selezione di una particolare cella): Indirizzo: posizione relativa rispetto alla prima cella (posizione 0) Uso di un apposito registro indirizzi (AR) Lettura dalla MM: Carica (load) il registro dati (DR) con la parola di memoria contenuta nella cella indirizzata Scrittura in MM: Deposita (store) il contenuto del registro dati (DR) nella parola di memoria indirizzata REGISTRO = banco di memorizzazione interno al chip della CPU Caratteristiche: Altissima velocità di accesso Bassissima capienza 8di 31

Memoria centrale (MM) h = 16 bit Parola (word) Dati e istruzioni 0 1 Address Register (AR) store Data Register (DR) k = 10 bit Indirizzo cella load h = 16 bit Dato da leggere/scrivere Spazio di indirizzamento 2 10 =1024 1023 9di 31

RAM e ROM RAM (Random Access Memory): memoria ad accesso casuale: indirizzabile alla word per operazioni di lettura e scrittura ROM (Read Only Memory): aree di memoria a sola lettura, inizializzate dal costruttore con dati e programmi che servono al funzionamento del sistema (contenuto protetto) contenuto persistente (usate nei microcontrollori presenti all interno di dispositivi come centraline, autoradio) 10 di 31

ROM Classificazione in base alla modalità di scrittura in fabbrica: EROM (Erasable ROM): cancellabile con fasci di raggi ultravioletti e riutilizzabili PROM (Programmable ROM): non scritte in fase di costruzione, ma successivamente, con i cosiddetti programmatori di ROM EPROM (Erasable Programmable ROM) Il software ospitato nelle ROM prende il nome di FIRMWARE per la sua natura intermedia tra hardware (non modificabilità durante l esecuzione) e software (programmabilità) 11 di 31

Unità di elaborazione (CPU) Esegue i programmi in memoria centrale prelevando, decodificando ed eseguendo una dopo l altra le istruzioni Contiene gli elementi circuitali che regolano il funzionamento dell elaboratore: unità di controllo: prelievo e decodifica di istruzioni invio segnali di controllo che provocano i trasferimenti o le elaborazioni necessari per l esecuzione dell istruzione decodificata orologio di sistema (clock): sincronizza le operazioni rispetto ad una data frequenza unità aritmetico-logica (ALU, Arithmetic Logic Unit): realizza le operazioni aritmetiche e logiche eventualmente richieste per l esecuzione dell istruzione 12 di 31

Registri della CPU Registro: supporto di memoria interno alla CPU, utilizzabile per memorizzare risultati parziali o informazioni di controllo Registro dati (DR): lungo quanto una parola (h bit) Registro Indirizzi (AR) : lungo k bit Registro Istruzione Corrente (IR, Instruction Register): lungo h bit, contiene, istante per istante, l istruzione in esecuzione Contatore di programma (PC, Program Counter): lungo k bit, contiene l indirizzo della successiva istruzione da eseguire Registro interruzioni (IntR, Interrupt Register): contiene informazioni per la gestione di eventuali eventi anomali (interruzioni) Registri per operandi e risultati delle elaborazioni aritmetico-logiche svolte dall ALU (in numero di due tipicamente indicati con A e B) Registri di lavoro: in numero sufficientemente elevato, contengono dati e istruzioni di uso frequente o risultati intermedi, leggibili e scrivibili velocemente, senza operazioni di load e store 13 di 31

ALU Capace anche di operazioni molto complesse (per semplicità negli esempi si citeranno solo le 4 operazioni fondamentali) Attivata dall unità di controllo mediante un apposito codice operativo Adopera i registri operandi (A e B) caricati con i dati prima dell esecuzione dell operazione Il registro A è caricato con il risultato dell operazione dopo un certo intervallo necessario all esecuzione della stessa, misurato dall orologio di sistema nel caso di divisione intera il resto viene messo in B; per altre operazioni il contenuto di B resta indefinito 14 di 31

ALU - Registro di stato SR (State Register): riporta indicazioni relative al risultato delle operazioni svolte dalla ALU in alcuni suoi bit: 1. Bit di carry, indica la presenza di un riporto (carry over) 2. Bit zero, indica la presenza di un valore nullo in A 3. Bit di segno, riporta il segno del risultato dell operazione aritmetica 4. Bit di overflow, rileva la condizione di overflow (se il risultato dell ultima operazione supera il valore 2 h, massimo valore rappresentabile in A, se A è lungo h bit) 15 di 31

Clock di sistema Tempificatore, sincronizza le operazioni della macchina: L esecuzione di una singola istruzione di macchina può prevedere più cicli di clock Il clock è tarato in modo che in un intervallo di sincronizzazione si possa effettuare un operazione ma non quella successiva: Il trasferimento dell informazione avviene mediante il transito continuo di segnali elettrici verso i dispositivi Ogni dispositivo è caratterizzato da una porta indirizzabile (afferente ad un controller) normalmente chiusa (circuito aperto), in modo tale da non consentire l ingresso di dati e la sovrascrittura di quelli già contenuti Un segnale di controllo proveniente dall unità di controllo apre la porta del dispositivo (chiusura del circuito) su cui si deve effettuare un operazione; un altro segnale la richiude dopo che l operazione viene eseguita 16 di 31

Indirizzo istruzione successiva Registro contatore di programma (PC) Registro interruzioni (IntR) Registro istruzione corrente (IR) Istruzione in elaborazione Parola letta/da scrivere in MM Sincronizzazione Registro dati (DR) Unità di elaborazione (CPU) Stato CPU Flag: C, Z, S, V Registro di stato (SR) A B Clock Registro indirizzi (AR) Operazioni aritmetiche e logiche Unità aritmetico Registri logicaoperandi (ALU) Registri generali Unità di controllo (CU) Indirizzo cella MM Controllo: -Prelievo -Decodifica -Esecuzione 17 di 31

Bus di sistema Insieme di connessioni elementari lungo cui viene trasferita l informazione (trasferendo valori di tensione) Collegamento aperto (non limitato ad un estremo) su cui si interfacciano le varie unità funzionali In ogni istante di tempo collega un unità funzionale trasmittente ed una ricevente dati (CPU con memoria o CPU con interfaccia periferica mediante controller) Sotto il controllo della CPU, che seleziona l interfaccia da attivare (porta) e indica l operazione da compiere: la CPU ha il ruolo di master, le altre unità funzionali di slave 18 di 31

Bus di sistema Classificazione delle linee in base al tipo di informazione trasportata: Bus dati: trasferisce dati dall unità master alla slave e viceversa trasferimento in parallelo grazie alla presenza di molte linee trasferisce tutti i bit di una parola contemporaneamente, dedicando una linea a ciascuno di essi (se il numero di linee del bus dati non è inferiore a quello dei bit della parola) Bus indirizzi: trasferisce indirizzi (per esempio l indirizzo contenuto nel registro indirizzi alla memoria centrale per l indirizzamento) Bus controlli: trasferisce dall unità master alla slave un codice corrispondente all istruzione da eseguire e dall unità slave alla master informazioni sull espletamento dell operazione 19 di 31

Bus di sistema Registro contatore di programma (PC) Registro interruzioni (IntR) Registro di stato (SR) A B Unità aritmetico logica CPU Registro istruzione corrente (IR) Clock Unità di controllo (CU) Registro dati (DR) Master/slave Registro indirizzi (AR) Bus dati, Bus indirizzi, Bus controlli Bus di sistema 20 di 31

Sequenza di lettura Passo 3 PC IntR IR SR A B Ck ALU CU Passo 1 0 123 42 123 DR 42 123 AR Passo Passo 24 1023 READ OK indirizzi dati controlli 21 di 31

Sequenza di scrittura Passo 2 PC IntR IR SR A B Ck ALU CU 0 123 42 70 Passo 1 Passo 4 Passo 35 DR 70 123 AR 1023 WRITE OK indirizzi dati controlli 22 di 31

Interfacce delle periferiche Costituiscono gli elementi circuitali per il collegamento dell elaboratore alla periferia Molto diverse a seconda del tipo di periferica (alcune sono intelligenti, ossia dotate di proprie unità di controllo per convertire ed elaborare dati al posto della CPU), si parla di controller Contengono registri e memorie tampone (buffer) per ospitare i comandi da inviare alla periferica, scambiare dati con essa e controllarne il funzionamento Componenti delle interfacce: Registro dati della periferica (PDR, Peripheral Data Register): consente lo scambio bidirezionale di dati con la periferica; collegato al bus dati Registro comandi della periferica (PCR, Peripheral Command Register): contiene il comando che la periferica dovrà eseguire; collegato al bus controlli Registro di stato della periferica (PSR, Peripheral Status Register): contiene informazioni sullo stato della periferica Esse sono trasferite alla CPU tramite il bus oppure se il registro è direttamente collegato alla CPU con circuiti elettrici speciali, l informazione concorre a riempire l IntR 23 di 31

Interfacce delle periferiche Interfaccia periferica 1 Interfaccia periferica 2 Peripheral Data Register (PDR) Peripheral Command Register (PCR) Peripheral State Register (PSR) Dato da leggere/scrivere Peripheral Data Register (PDR) Comando da Peripheral eseguire Command Register (PCR) Peripheral State Stato della periferica Register (PSR) Bus di sistema 24 di 31

Esempio Supponiamo di voler calcolare il valore dell espressione: z = (a+b) (c+d) leggendo i valori delle variabili a, b, c, d dal dispositivo di input e scrivendo il risultato sul dispositivo di output 1. Leggi dal dispositivo di input il valore delle variabili a, b, c, d 2. Somma il valore di a al valore di b 3. Salva il risultato parziale ottenuto 4. Somma il valore di c al valore di d 5. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato 6. Scrivi sul dispositivo di output il risultato della valutazione complessiva 7. Termina l esecuzione del programma. 25 di 31

Esempio 1. Scrivi nella cella di memoria centrale riservata al valore della variabile a il valore letto dal dispositivo di input (disponibile nel registro dati della periferica). Ripeti per b, c, d 2. Somma il valore di a al valore di b Copia il contenuto della cella di memoria riservata ad a nel registro A Copia il contenuto della cella di memoria riservata a b nel registro B Somma il contenuto dei registri A e B 3. Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il risultato (z) 4. Somma il valore di c al valore di d Copia il contenuto della cella di memoria riservata a c nel registro A Copia il contenuto della cella di memoria riservata a d nel registro B Somma il contenuto dei registri A e B 5. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato Copia il contenuto della cella riservata a z nel registro B (z e B contengono ora a+b, mentre A contiene c+d) Moltiplica il contenuto dei registri A e B 6. Scrivi sul dispositivo di output il risultato della valutazione complessiva Memorizza il risultato appena calcolato (e disponibile nel registro A) nella cella di memoria riservata a z Copia il contenuto della cella di memoria riservata a z nel registro dati della periferica di uscita 7. Termina l esecuzione del programma. 26 di 31

Forma binaria 0100000000010000 Leggi un valore dall input e mettilo nella cella 16 (a) 0100000000010001 Leggi un valore dall input e mettilo nella cella 17 (b) 0100000000010010 Leggi un valore dall input e mettilo nella cella 18 (c) 0100000000010011 Leggi un valore dall input e mettilo nella cella 19 (d) 0000000000010000 Carica il contenuto della cella 16 (a) nel registro A 0001000000010001 Carica il contenuto della cella 17 (b) nel registro B 0110000000000000 Somma i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris.parziale) 0000000000010010 Carica il contenuto della cella 18 (c) nel registro A 0001000000010011 Carica il contenuto della cella 19 (d) nel registro B 0110000000000000 Somma i registri A e B 0001000000010011 Carica il contenuto della cella 20 (z) (ris. parziale) in B 1000000000000000 Moltiplica i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale) 0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) in output 1101000000000000 Halt 27 di 31

Spazio riservato per a 16 Spazio riservato per b 17 Spazio riservato per c 18 Spazio riservato per d 19 Spazio riservato per z 20 Stato della memoria Cella 0 0100000000010000 1 0100000000010001 2 0100000000010010 3 0100000000010011 4 0000000000010000 5 0001000000010001 6 0110000000000000 7 0010000000010100 8 0000000000010010 9 0001000000010011 10 0110000000000000 11 0001000000010011 12 1000000000000000 13 0010000000010100 14 0101000000010100 15 1101000000000000 28 di 31

Fetch 1 a istruzione Passo 1 Memoria centrale (MM) PC 0000000000 0000000001 0 0100000000010000 Passo 2 Passo 4 AR 0000000000 1023 DR 0100000000010000 Passo 3 IR 0100000000010000 29 di 31

Interpretazione 1 a istruzione IR 0100000000010000 Codice operativo 0100 = leggi da input 30 di 31

Esecuzione 1 a istruzione Indirizzo operando 00000010000 = cella 16 0 Memoria centrale (MM) IR 0100000000010000 16 0001000000011111 Passo 3 Passo 1 AR 0000010000 1023 DR 0001000000011111 Passo 2 Valore di a letto dall input (es. 4127) PDR 0001000000011111 31 di 31