La macchina di Von Neumann

Похожие документы
La macchina di Von Neumann

Architettura di un elaboratore. Il modello di von Neumann

Elementi di informatica

Il processore. Istituzionii di Informatica -- Rossano Gaeta

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

Elementi di informatica

Il linguaggio macchina

Architettura dei computer

Il modello di Von Neumann

Componenti e connessioni. Capitolo 3

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

Struttura di un elaboratore

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

Componenti di un processore

Componenti principali

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

Architettura hardware

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

Architettura dei calcolatori

Il Processore: l unità di controllo

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

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

La memoria principale

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Esame di INFORMATICA Lezione 4

Von Neumann. John Von Neumann ( )

Il modello di von Neumann

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

Architettura dei Calcolatori Elettronici

Lezione 1: L hardware

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

Introduzione al funzionamento di un calcolatore elettronico

Architettura di Von Neumann

LEZIONE 2 Il processore e la memoria centrale

Architettura dei Calcolatori elettronici

Architettura dei calcolatori

Architettura di un calcolatore: Introduzione parte 2

Sistemi di Elaborazione delle Informazioni

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

Architettura di una CPU

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

Architettura degli Elaboratori

Modulo: Elementi di Informatica

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

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

Architettura dei calcolatori

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

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Corso di Fondamenti di Informatica Elementi di Architettura

Architettura di un processore basato su registri generali.

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Elementi di base del calcolatore

Caratteristiche di un PC

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

Elaborazione dell informazione

Computer e Programmazione

Architettura dei calcolatori I parte Introduzione, CPU

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

Транскрипт:

Università degli Studi di Palermo Facoltà di Ingegneria La macchina di Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

La macchina di E il modello secondo il quale è organizzata la maggior parte dei moderni elaboratori Componenti della macchina di : Bus di sistema CPU Memoria centrale Interfaccia periferica 1 Interfaccia periferica N L unità centrale di elaborazione o CPU è costituita dai circuiti elettronici capaci di leggere (dalla memoria centrale), decodificare (interpretare) ed eseguire (impartendo gli opportuni comandi alle varie parti del sistema) le istruzioni di un programma, una alla volta. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 2

La macchina di L esecuzione delle istruzioni può comportare operazioni di elaborazione di dati (per esempio, operazioni aritmetiche) ovvero di trasferimento di dati (per esempio, dalla memoria centrale all interfaccia di una periferica). La memoria centrale contiene le istruzioni di un programma e i dati necessari alla sua esecuzione. Le periferiche sono le apparecchiature che consentono all elaboratore di scambiare informazioni con il mondo esterno, mediante operazioni di ingresso (verso l elaboratore) e uscita (verso l esterno). Vengono in realtà considerate appartenenti alla macchina di solo le interfacce di collegamento verso le periferiche, mentre le periferiche sono considerate componenti separati. E da notare come nel modello di anche le memorie di massa siano incluse tra le periferiche, in quanto funzionalmente analoghe a queste ultime, dal punto di vista dell interazione con l elaboratore. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 3

La macchina di Il bus di sistema assicura la interconnessione tra gli elementi della macchina di : tutti i trasferimenti di dati avvengono attraverso il bus. Il bus mette in collegamento logico i due elementi coinvolti nel trasferimento, in funzione dell operazione da eseguire, mentre il collegamento fisico è sempre presente. Le fasi di elaborazione si succedono in modo sincrono rispetto alla cadenza imposta da un orologio di sistema (clock): è l unità di controllo, contenuta dentro la CPU, che durante ogni intervallo di tempo coordina le attività che vengono svolte dentro la stessa CPU o negli altri elementi del sistema. Il limite più evidente del modello di è la rigida sequenzialità del suo funzionamento. Le evoluzioni di questo modello prevedono per lo più l introduzione di forme di parallelismo nella esecuzione delle attività di elaborazione. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 4

Dati e istruzioni di programma sono codificate in forma binaria, cioè mediante sequenze finite di bit. Una istruzione codificata si compone di due parti: il codice operativo e uno o più operandi: CO Op. 1 Op. n Il codice operativo specifica, secondo una convenzione dipendente dalla specifica macchina, l istruzione da eseguire. Per ogni macchina esistono tanti codici operativi differenti quante sono le istruzioni presenti nell insieme (set) delle istruzioni che la macchina è in grado di interpretare ed eseguire. Gli operandi contengono, ancora in una forma codificata dipendente dalla specifica macchina, le informazioni necessarie a reperire i dati sui quali l istruzione deve operare. Il linguaggio macchina è quindi strettamente legato alla architettura della macchina. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 5

Memoria Centrale Concettualmente, può essere vista come una sequenza di celle: ogni cella di memoria contiene una parola o word. Le parole di un elaboratore hanno tutte la stessa lunghezza, mentre elaboratori differenti possono avere parole di lunghezza differente. Valori tipici della lunghezza di parola: 8/16/32/64 bit. Schematicamente, la memoria può essere rappresentata come una tabella. Per esempio, con parole di 8 bit: 1 a parola 2 a parola 3 a parola 4 a parola bit 1 2 3 8 E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 6

Ciascuna cella può essere indirizzata, ovvero l elaboratore può selezionare ognuna delle celle. L indirizzo di una cella è la sua posizione relativa (numero d ordine) rispetto alla prima cella, che convenzionalmente assume indirizzo pari a 0. L indirizzamento della memoria si effettua mediante il registro indirizzi (AR), che si trova dentro la CPU. Un registro è un dispositivo elettronico capace di memorizzare una sequenza di bit, normalmente utilizzato come elemento di memoria che può essere letto o scritto molto velocemente. Se la capacità (o lunghezza) del registro indirizzi è di K bit, ed il suo contenuto viene interpretato come un numero intero, si possono specificare tutti gli indirizzi tra 0 e 2 K 1: K bit => 2 K indirizzi => 2 K celle Il numero di parole indirizzabili, ovvero la dimensione dello spazio degli indirizzi, è dunque legata alla capacità dell AR. Per esempio, se K=10, si hanno 2 10 = 1024 parole indirizzabili, quindi una dimensione di un kiloparole. Se invece K=20, si hanno 2 20 = 1048576 parole indirizzabili, quindi una dimensione di un mega-parole E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 7

Le capacità di indirizzamento dei processori reali sono quindi esprimibili come multipli di kilo o mega-parole, ma normalmente, per avere caratteristiche paragonabili, si parla di capacità espresse in Kbyte o Mbyte. Si noti che, negli elaboratori reali, la capacità di indirizzamento è un limite superiore alla memoria fisica che può equipaggiare la macchina. Selezionare una specifica cella significa scrivere il suo indirizzo (in bit) nel registro degli indirizzi. In relazione alla memoria centrale, due operazioni sono possibili: la lettura di una cella della memoria e la scrittura in una cella della memoria. Per la lettura e la scrittura si utilizza anche un altro registro della CPU, il registro dati (DR), di lunghezza uguale a quella di una word di memoria E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 8

Durante la lettura, il contenuto della cella di memoria viene copiato nel DR (caricamento del DR). Durante la scrittura, il contenuto del DR viene depositato nella cella di memoria LETTURA => Load del DR con una parola SCRITTURA => Store di una word in una cella Riassumendo, se K è la lunghezza del registro indirizzi e H è la lunghezza del registro dati, si ha per esempio: 0 H=16 AR L S DR K=10 H=16 1023 Memoria E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 9

Bus di sistema Il bus è costituito da un insieme di linee lungo le quali viene trasferita l informazione. Topologicamente, è un collegamento aperto (non limitato ad un estremo), cui si collegano le varie unità funzionali della macchina di In ogni istante di tempo, il bus collega due unità funzionali: una trasmette dati e l altra li riceve. Le possibili interconnessioni sono tra l unità centrale e la memoria centrale, oppure tra l unità centrale e l interfaccia di una periferica Il bus lavora sotto il controllo dell unità centrale di elaborazione, che sceglie il collegamento da attivare e l operazione da compiere. La modalità di funzionamento del bus è master-slave: l unità di elaborazione funge da dispositivo master, mentre le altre unità funzionali assumono, una per volta, il ruolo di slave. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 10

Il bus è assegnato ad uno specifico collegamento per il tempo necessario a svolgere l operazione da compiere: più piccolo è questo tempo, più alta è la velocità del bus. Funzionalmente, le linee del bus possono essere divise in tre categorie, a seconda del tipo di informazione trasportata: dati, indirizzi e segnali di controllo. Si identificano pertanto tre bus: BUS DATI: trasferisce dati dall unità master all unità slave e/o viceversa. Se per esempio lo slave è la memoria centrale, i dati viaggiano da una cella di memoria al DR (lettura), oppure dal DR ad una cella di memoria (scrittura). BUS INDIRIZZI: trasferisce indirizzi dall unità di elaborazione allo slave. Per esempio, se deve essere scelta una locazione di memoria per un operazione di lettura o scrittura, le informazioni vanno dall unità centrale (registro AR) alla memoria. BUS CONTROLLI: trasferisce dal master allo slave il comando (codificato) corrispondente all operazione da eseguire, e dallo slave al master informazioni relative all avvenuto espletamento dell operazione richiesta. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 11

Riepilogando, per una operazione di lettura: -l unità centrale deve: a) caricare l indirizzo della parola di memoria da leggere nel registro AR e trasmetterlo alla memoria attraverso il bus indirizzi; b) inviare alla memoria il comando di lettura attraverso il bus controlli; - la memoria deve:c) eseguire l operazione di lettura, che trasferisce il contenuto della locazione indirizzata nel registro DR attraverso il bus dati; d) segnalare all unità centrale, attraverso il bus controlli, che l operazione è stata effettuata e che il dato è disponibile nel registro DR. Invece, per una operazione di scrittura: -l unità centrale deve: a) caricare l indirizzo della parola di memoria in cui si vuole scrivere nel registro AR e trasmetterlo alla memoria attraverso il bus indirizzi; b) caricare il dato da scrivere nel registro DR; c) inviare alla memoria il comando di scrittura attraverso il bus controlli; -la memoria deve: d) eseguire l operazione di scrittura, che trasferisce il contenuto del registro DR (attraverso il bus dati) nella locazione indirizzata; e) segnalare all unità centrale, attraverso il bus controlli, che l operazione è terminata. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 12

Unità di elaborazione SR PC A B ALU INTR CIR Clock CU DR AR E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 13

I componenti funzionali della CPU sono: UNITA DI CONTROLLO (CU): è responsabile del prelievo delle istruzioni dalla memoria centrale, della loro decodifica e dell invio dei segnali di controllo che danno luogo alle operazioni necessarie per l esecuzione dell istruzione decodificata. OROLOGIO DI SISTEMA (Clock): sincronizza le operazioni rispetto ad una certa frequenza. UNITA ARITMETICO-LOGICA (ALU): effettua le operazioni aritmetiche e logiche (eventualmente) richieste per l esecuzione dell istruzione La CPU contiene inoltre diversi registri. I principali sono: REGISTRO DATI (DR), lungo H bit REGISTRO INDIRIZZI (AR), lungo K bit REGISTRO ISTRUZIONE CORRENTE (CIR), lungo H bit: contiene in ogni istante l istruzione in esecuzione CONTATORE DI PROGRAMMA (PC), lungo K bit: contiene l indirizzo della successiva istruzione da eseguire E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 14

REGISTRO INTERRUZIONI (INTR), contiene informazioni sullo stato di funzionamento delle periferiche Registri contenenti operandi e risultato delle operazioni aritmetico-logiche (per esempio, A e B) Registri di lavoro, contenenti dati ed istruzioni di uso frequente, ovvero risultati intermedi REGISTRO DI STATO (SR), contiene indicazioni indicazioni relative al risultato delle operazioni effettuate dalla ALU. Tra queste: Bit di carry o riporto (indica la presenza di un riporto) Bit di zero (è 1 se c è un valore nullo in A), Bit di segno (è il segno del risultato di un operazione) Bit di overflow (è 1 quando il risultato dell ultima operazione aritmetica supera il massimo valore rappresentabile, cioè 2 H, se H è la lunghezza di A) E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 15

Le moderne ALU sono in grado di eseguire operazioni molto sofisticate, ma per semplicità supponiamo che la nostra sia capace di eseguire le 4 operazioni aritmetiche. E l unità di controllo che, dopo aver disposto il caricamento di A e B con i due operandi, invia alla ALU il codice relativo all operazione da eseguire. Al termine dell esecuzione dell operazione, che impegna un certo numero di periodi del clock, il registro A è caricato con il risultato, mentre il registro B ha un contenuto non definito (tranne che per la divisione intera, per la quale B contiene il resto). E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 16

Interfacce di I/O Sono gli elementi circuitali che consentono la connessione tra l elaboratore e le periferiche. Esistono molti tipi di interfaccia, in dipendenza del tipo di periferica (dischi, nastri, stampanti, terminali, scanner, plotter, sensori e attuatori per robot, sistemi di acquisizione dati, etc.) e del grado di intelligenza della periferica. Le periferiche possono infatti essere dotate di proprie unità di controllo, capaci di effettuare conversioni o anche elaborazioni di dati. Interfacce intelligenti possono sgravare la CPU da alcuni compiti (evoluzioni della macchina di ). In una interfaccia standard sono normalmente presenti i seguenti registri: REGISTRO DATI della periferica (PDR): in esso vengono depositati i dati da scrivere o da leggere REGISTRO COMANDO della periferica (PCR): in esso l unità di elaborazione scrive il codice corrispondente all operazione da eseguire REGISTRO di STATO della periferica (occupata, pronta, in situazione di errore, ) E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 17

Esecuzione dei programmi Per essere eseguito dalla macchina di, un programma, che è costituito da una sequenza di istruzioni e dai dati, deve essere presente nella memoria centrale, in forma di sequenze di bit allocate in parole successive di memoria. Per esempio, supponendo che il caricamento avvenga a partire dalla locazione di indirizzo 0: 0 010000000010000 1 010000000010001 2 010000000010010 3 010000000010011 4 000000000010000 15 110100000000000 halt 16 000000000010001 17 000000000010010 18 000000000010000 Istruzioni Dati La parte istruzioni e la parte dati sono nell esempio separate dalla istruzione di halt, una istruzione particolare che arresta il funzionamento della macchina. E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 18

Esecuzione dei programmi La macchina esegue il programma una istruzione alla volta, ripetendo per ogni istruzione una sequenza di operazioni svolte nella CPU L esecuzione di una istruzione consiste infatti di tre fasi distinte: Acquisizione dalla memoria centrale (Fetch) Interpretazione o decodifica (Decode) Esecuzione (Execute) La fase di fetch consiste di quattro passi, ognuno dei quali comporta un trasferimento di dati fra registri della CPU e/o locazioni della memoria centrale: 1.Il contenuto del PC viene trasferito in AR. 2.Viene letta la cella di memoria corrispondente all indirizzo presente in AR, e il contenuto viene trasferito in DR attraverso il bus. 3. Il contenuto del DR viene trasferito nel CIR. 4. Il contenuto del PC viene incrementato di 1, predisponendolo per la fase di acquisizione dell istruzione successiva. E tuttavia possibile che durante la fase di esecuzione dell istruzione corrente il contenuto del PC sia ancora modificato (per esempio, ciò avviene per le istruzioni di salto) E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 19

Esecuzione dei programmi Durante la fase di acquisizione della prima istruzione del programma di esempio avvengono pertanto le seguenti cose, tenendo presente che, poiché il programma è caricato a partire dalla locazione di indirizzo 0, il contenuto iniziale di PC è 0: PC AR 00 0000 0000 00 0000 0000 1 2 0 0100 0000 0001 0000 1 0100 0000 0001 0001 DR 0100 0000 0001 0000 2 0100 0000 0001 0010 3 CIR 0100 0000 0001 0000 PC 00 0000 0001 4 E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 20

Esecuzione dei programmi Durante la fase di interpretazione l istruzione, presente adesso nel CIR, viene decodificata: a tal fine, la macchina esamina la parte codice operativo dell istruzione, per determinare le azioni da eseguire. Per la prima istruzione dell esempio, supponendo che il campo CO sia lungo 4 bit: CIR 0100 0000 0001 0000 Supponiamo anche che il codice operativo 0100 corrisponda ad una operazione di lettura dalla periferica standard di ingresso. Mentre le fasi precedenti si ripetono sempre uguali, la fase di esecuzione è diversa per ogni istruzione, anche se consiste comunque di trasferimenti di dati da o verso la memoria o da o verso una delle periferiche, oppure di operazioni eseguite dalla ALU, con il supporto di registri interni alla CPU Per esempio, durante la fase di esecuzione della prima istruzione dell esempio avvengono le seguenti cose, tenendo presente che il valore depositato nel campo operandi dell istruzione è 16 ( 010000): E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 21

Esecuzione dei programmi 16 è l indirizzo dell operando CIR 0100 00 00 0001 0000 AR 00 0001 0000 PDR (standard input) 0001 0000 0001 1111 16 0001 0000 0001 1111 0001 0000 0001 1111 DR E. Ardizzone & I. Infantino - Appunti per il corso di Fondamenti di Informatica 22