Architettura dei calcolatori



Documenti analoghi
Architettura dei calcolatori

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

Architettura hardware

C. P. U. MEMORIA CENTRALE

Architettura del calcolatore

CPU. Maurizio Palesi

Lezione 3: Architettura del calcolatore

Struttura del calcolatore

Introduzione all'architettura dei Calcolatori

Funzionalità di un calcolatore

Esame di INFORMATICA

Architettura dei computer

Informatica - A.A. 2010/11

Architettura di un calcolatore

ARCHITETTURA DELL ELABORATORE

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Parte II.2 Elaboratore

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

Architettura dei calcolatori I parte Introduzione, CPU

Laboratorio di Informatica

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

L architettura di riferimento

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Il Processore: i registri

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Von Neumann. John Von Neumann ( )

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

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

ARCHITETTURA DEL CALCOLATORE

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Calcolo numerico e programmazione Architettura dei calcolatori

Tecnologia dell Informazione

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Dispensa di Informatica I.1

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Architettura di un calcolatore: introduzione

Architettura di un computer

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

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

Gerarchia delle memorie

Memoria Secondaria o di Massa

Organizzazione della memoria

La memoria centrale (RAM)

introduzione I MICROCONTROLLORI

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Laboratorio di Informatica

Anatomia e fisiologia del computer: l architettura del calcolatore

I componenti di un Sistema di elaborazione. CPU (central process unit)

Vari tipi di computer

L architettura del calcolatore (Prima parte)

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

SOMMARIO. La CPU I dispositivi iti i di memorizzazione Le periferiche di Input/Output. a Montagn Maria

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

Il processore - CPU (CENTRAL PROCESSING UNIT)

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Appunti di Sistemi e Automazione

Componenti di base di un computer

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana:

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

Centro Iniziative Sociali Municipio III

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Informatica. Ing. Pierpaolo Vittorini Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia

Fondamenti di informatica: un po di storia

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Unità Periferiche. Rete Di Controllo

Conoscere i diversi tipi di memoria centrale presenti nel computer, quali: RAM (randomaccess memory), ROM (read-only memory)

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

Elaborazione dei dati

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Concetti fondamentali della Tecnologia Dell informazione Parte prima

Il Software. Il software del PC. Il BIOS

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

Informatica di Base - 6 c.f.u.

Architettura hardware

Ing. Paolo Domenici PREFAZIONE

La Macchina Virtuale

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

Sistemi operativi. Esempi di sistemi operativi

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

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

Lezione n.19 Processori RISC e CISC

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

ARCHITETTURA DI UN PERSONAL COMPUTER

DMA Accesso Diretto alla Memoria

HARDWARE. Relazione di Informatica

Sistemi Elettronici #1. Sistemi Elettronici. Definizioni e concetti generali. Sistemi Elettronici Laurea Triennale in Elettronica A.A.

Il Sistema Operativo (1)

Transcript:

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/

La macchina di Von Neuman

La macchina di Von Neumann L architettura della maggior parte degli elaboratori elettronici è organizzata secondo il modello di Von Neuman, dal nome del ricercatore Americano che durante la 2 Guerra Mondiale dedicò i suoi studi alla progettazione dei primi calcolatori elettronici La macchina di Von Neuman è costituita da quattro elementi funzionali fondamentali: CPU (Central Processin Unit) Memoria centrale Il Bus di sistema Le periferiche

L architettura di Von Neuman CPU Memoria centrale BUS di sistema tastiera mouse memoria di massa monitor Periferiche

La memoria centrale

La memoria centrale La memoria centrale è destinata ad accogliere il materiale di lavoro su cui l elaboratore opera: Dati ed istruzioni Tutte le operazioni che l elaboratore compie ed i dati su cui esse sono effettuate sono lette e scritte nella memoria centrale: Lettura dell istruzione ed eventualmente del dato Esecuzione Salvataggio risultato Paragone con la mente umana: Memoria centrale informazione a breve o medio termine Memoria di massa informazione a lungo termine

La memoria centrale La memoria centrale è in genere di dimensioni ridotte a causa del maggiore costo rispetto alla memoria di massa: Più veloce maggiore costo E una memoria volatile, ovvero i dati memorizzati vanno persi in caso di assenza di corrente: è necessario quindi caricare l informazione dalla memoria di massa prima che possa essere utilizzata È necessario poi salvarla nella memoria di massa se essa dovrà essere disponibile in un secondo momento Durante la lettura dei dati dalla memoria di massa a quella centrale, è necessario stabilire in che

La memoria centrale Concettualmente è una sequenza di celle di memoria: ogni cella contiene una word Le parole sono sequenze di bit che hanno significati diversi a seconda dei casi: dati, istruzioni, indirizzi ecc Le celle di memoria di un calcolatore hanno tutte la stessa capacità, viceversa calcolatori diversi possono avere dimensioni differenti per le celle di memoria Le celle hanno comunque lunghezza multipla della potenze del 2 di un byte: 8,16,32, 64 bit (1,2,4,8 bytes)

Indirizzamento della memoria Ciascuna cella di memoria può essere indirizzata: con questo termine si intende la capacità dell elaboratore di accedere a tale cella tramite un indirizzo in memoria L indirizzo di una cella è semplicemente la sua posizione relativa rispetto alla prima cella della memoria centrale, cui viene attribuito indirizzo 0 Ogni indirizzo è una parola binaria di k bit: Quindi solamente 2 k celle di memoria possono essere indirizzate Si dice SPAZIO DEGLI INDIRIZZI, il range di indirizzi che possono essere utilizzati dal calcolatore: Con 10 bit 2 10 (1024) celle di memoria Con 20 bit 2 20 (1048576) celle di memoria Ecc

Lettura e scrittura L indirizzamento avviene tramite un opportuno registro detto registro degli indirizzi che si trova nella CPU: In generale un registro è un chip capace di memorizzare una sequenza di bit Una volta indirizzata la memoria può essere letta e scritta: Entrambe le operazioni utilizzano un altro registro nella CPU dove memorizzare il dato presente nella cella di memoria (registro dati) Lettura dalla memoria: La CPU memorizza nel registro dati il contenuto della cella indirizzata dal registro indirizzi (LOAD) Scrittura in memoria: La CPU memorizza nella cella indirizzata dal registro indirizzi il contenuto del registro dati (STORE)

Lettura e scrittura La cella di memoria ed il registro dati devono avere la stessa dimensione 0 h=16 bit k=10 Cella di memoria indirizzata STORE LOAD h=16 bit Registro indirizzi 1023 Registro dati

ROM e BIOS Come già accennato, normalmente la memoria centrale è una memoria volatile Molte volte però è necessario mantenere in memoria dati che non possono essere letti dalle memorie di massa: Il BIOS è il primo software caricato all avvio del PC, quando ancora il S.O. non è stato caricato; in quel momento è ancora impossibile leggere dati dalla memoria di massa e quindi è necessario che il programma che realizza il BIOS risieda in una memoria centrale ma permanente Solitamente accanto alla normale RAM (Random Acces Memory) vengono utilizzate piccole memorie permanenti (ROM - Read Only Memory) che memorizzano il BIOS L acronimo Read Only Memory ad oggi non è più tanto vero dato che molte ROM sono riprogrammabili, ovvero il programma memorizzato in esse può essere cambiato: Es. aggiornamento del BIOS

Il BUS

Il bus Il bus di sistema è costituito da un insieme di connessioni elementari, o linee, lungo le quali viene trasferita informazione Collega fra loro la CPU, la memoria e le varie periferiche di ingresso/uscita: topologicamente il BUS è un collegamento aperto, cioè non limitato ad un estremo ad esso si collegano le varie unità funzionali In ogni istante di tempo, però, il bus può collegare solamente due unità. Se le altre hanno bisogno di utilizzare il BUS, devono attendere che esso sia liberato dalla comunicazione corrente : Una delle due unità collegate dal BUS è sempre la CPU

Il bus Il bus è sempre sotto il controllo della CPU che seleziona l interconnessione da attivare ed indica l operazione da compiere: Le varie unità entrano in azione solo se selezionate dalla CPU Comunque ultimamente sono state introdotte periferiche intelligenti che riescono ad utilizzare il BUS senza richiedere l intervento della CPU (maggiore velocità) In tale situazione si dice che la CPU funziona da master mentre le altre unità assumono il ruolo di slave : architettura master-slave Le linee del BUS vengono divise in tre categorie a seconda della loro funzione: bus dati, bus indirizzi, bus controllo

Il bus Il bus dati: Traferisce dati dall unità master all unità slave o viceversa Nell operazione STORE di memorizzazione dati nella memoria centrale, per esempio, il dati transita nel bus dati in direzione CPU Memoria Il bus indirizzi: Su questo bus le informazioni sono gli indirizzi di memoria Per esmepio, trasferisce l indirizzo contenuto nel registro indirizzi alla memoria centrale in una operazione di STORE Il bus controllo: Trasferisce il codice dell operazione da eseguire alle unità slave In una operazione di STORE, la memoria deve essere avvertita di memorizzare il dato nella locazione corretta

Il bus Esempio: il bus è utilizzato per trasferire dati fra le unità funzionali L unità che inizia il trasferimento (in genere la CPU) fornisce l indirizzo, che individua univocamente il dato, sulle linee del bus indirizzi, e configura le linee del bus controllo, inviando un comando al dispositivo che contiene il dato (es. READ) Il dato da trasferire è reso disponibile sul bus dati e viene ricopiato nel dispositivo destinatario Indirizzo a 32 bit (32 fili) 0008AB38 CPU 0008AB38 Memoria principale 0008AB38 CPU 5F66B102 Memoria principale 5F66B102 0008AB38 5F66B102 READ=1 MEM=1 READ=1 MEM=1 5F66B102 Dato a 32 bit (32 fili) trasferito dalla memoria principale alla CPU

La CPU

La CPU La CPU, Central Processing Unit, è l unità di elaborazione centrale Le funzioni della CPU vengono integrate in un componente chiamato microprocessore La CPU lavora a N GHz: segue un ritmo, definito dall orologio del sistema, di N miliardi di impulsi al secondo; questi impulsi determinano la velocità del computer (es., il microprocessore Intel Pentium IV con un clock a 3 GHz è temporizzato da tre miliardi di impulsi al secondo)

La CPU La funzione della CPU è eseguire i programmi contenuti nella memoria centrale: Prelievo dell istruzione Decodifica dell istruzione Esecuzione dell istruzione La CPU è formata da varie unità funzionali: Unità di controllo Orologio di sistema Unità Aritmetico-Logica La CPU contiene inoltre vari registri su cui effettua le operazioni richieste BUS registri ALU CU PC Program Counter IR Instruction Register

Unità funzionali della CPU Unità di controllo (CU): È responsabile del prelievo e della decodifica delle istruzioni Si occupa inoltre di inviare i segnali di controllo sul bus per i trasferimenti o le elaborazioni necessarie per l esecuzione dell istruzione decodificata Orologio di sistema (clock): Sincronizza le operazioni rispetto ad una data frequenza. E un parametro molto famoso per le CPU (Pentium 3GHz) ALU (Aritmetic and Logic Unit): Realizza le operazioni aritmetico/logiche eventualmente richieste per l esecuzione dell istruzione decodificata dalla CU Lavora sui dati presenti nei registri interni

Registri La CPU necessita di oggetti in cui immagazzinare temporaneamente i dati/istruzioni su cui sta lavorando: i registri I registri possono essere immaginati come celle di memoria separate a lettura e scrittura molto rapida Ogni registro ha una sua funzione propria Registro dati (DR, h bit) e registro indirizzi (AR, k bit), contengono il dato e l indirizzo di memoria su cui effettuare l operazione corrente Registro istruzione corrente (CIR, h bit), contiene istante per istante l OPCODE dell istruzione in esecuzione in quel momento Contatore di programma (PC, k bit), contiene l indirizzo in memoria della prossima istruzione del programma in esecuzione Registro interruzioni (INTR), contiene informazioni relative allo stato di funzionamento delle periferiche. Se una periferica deve contattare la CPU, segnala questo fatto nel registro INTR. Es. fine di una stampa

Registri Registri per la ALU (normalmente indicati con A e B), contengono gli operandi ed il risultato delle elaborazioni svolte dalla ALU Un numero elevato di registri di lavoro, molto simili ad una memoria in miniatura in cui la CPU memorizza le istruzioni ed i dati utilizzati più di recente per un accesso più rapido in futuro (CACHE) Registro di stato (SR), è un particolare registro in cui ogni bit assume un significato diverso, relativo al risultato delle operazione svolte dalla ALU: Bit di carry, indica il riporto in una operazione aritmetica Bit zero, indica la presenza di un valore nullo nel registro A Bit di segno, riporta il segno del risultato di un operazione aritmetica Bit di overflow, rileva la condizione di overflow che si verifica quando il risultato dell ultima operazione della ALU supera il valore rappresentabile nel registro A (2 h )

Registri Registro di stato (SR) Program Counter (PC) INTR A B ALU Registro istruzione corrente (CIR) Other 1. Other N Clock CU Registro dati (DR) Registro indirizzi (AR)

Instruction Set Il calcolatore utilizza la rappresentazione binaria per le istruzioni ed i dati La CPU ha un set di istruzioni predefinito in fase di progetto: Ogni istruzione è individuata da un codice operazione OP_CODE Alcune operazioni richiedono dati su cui operare e quindi hanno bisogno di operandi Le istruzioni macchina ed i dati sono quindi rappresentati da bytes: Architetture a 8,16,32 o 64 bit NB: con 8 bits (1 byte) si hanno al massimo 2 8 (255) istruzioni diverse con 16 bits (2 byte) si hanno al massimo 2 16 (65536) istruzioni diverse Ecc

Le periferiche

Le periferiche Quando utilizziamo un PC è necessario poter interagire con esso: Digitare testo, visualizzare l output, stampare, ascoltare suoni. Tutte queste operazioni sono svolte da parti separate del calcolatore ed esterne alla CPU: Le periferiche di I/O (input/output) Un periferica può essere di due tipi: un device stupido che si limita ad eseguire un operazione una volta comandato (es. il monitor) un device intelligente, in grado di elaborare a sua volta i dati inviati. Es. le schede video accelerate rielaborano la grafica vettoriale inviata dalla CPU e costruiscono le immagini da inviare al video Delegando molte operazioni a periferiche intelligenti, la CPU può guadagnare tempo per effettuare altre operazioni: Aumento delle prestazioni globali dell elaboratore

Le interfacce I/O Per poter colloquiare con una periferica, la CPU deve conoscere le specifiche della periferica: In questo modo, però, ogni tipo di periferica ed eventualmente ogni modello potrebbero avere modi di comunicazione differenti, e la CPU dovrebbe conoscerli tutti Per evitare questa complicazione si usano le interfacce di I/O, ovvero componenti che gestiscono le periferiche indipendentemente dal modello di quest ultime Le interfacce possono essere molto diverse tra loro: Terminali, stampanti, hard disk, lettori ottici ecc. Le interfacce mostrano alla CPU una interfaccia standard (o quasi), in modo che la CPU non si debba preoccupare del modello di periferica ma solo del tipo di interfaccia a cui essa è attaccata

Interfaccia standard Una interfaccia I/O standard è composta in genere dai seguenti elementi: Un registro dati della periferica (PDR), utilizzato per scambiare dati con la periferica. Se la comunicazione con la periferica è full-duplex, molte volte vengono impiegati due registri dati, uno per la ricezione ed uno per l invio Un esempio di comunicazione half-duplex è il video, in cui i dati vengono inviati alla periferica per essere visualizzati, mentre un esempio di periferica full- duplex è il modem Un registro di comando per la periferica (PCR), in cui è memorizzato il comando che la periferica stessa doverà eseguire Un registro di stato della periferica (PSR), che contiene le informazione sullo stato della periferica (es. stampante pronta a ricevere, occupata o errore)

Interfaccia standard Il registro dati è collegato al BUS dati, mentre il registro di comando è collegato al BUS di controllo Il registro PSR, non sempre viene utilizzato, poiché molte volte lo stato è segnalato dalla interfaccia stessa alla CPU tramite gli interrupt ed il registro INTR nella CPU stessa Registro dati Rx Registro dati Tx Periferica Registro Comandi I/O Interface

Esecuzioni di programmi

Esecuzioni di programmi Per iniziare l esecuzione di un programma, l elaboratore deve dapprima caricare in memoria la forma binaria del programma: Una sequenza di parole binarie corrispondenti agli OP_CODE delle istruzioni macchina da effettuare e ai dati su cui operare Supponendo di iniziare dalla cella numero zero, l elaboratore acquisisce le istruzioni di programma dalla memoria e le esegue ripetendo una sequenza di operazioni nella CPU: Il programma è organizzato in due modi in memoria: Una parte contiene la sequenza di istruzioni che formano il programma Una parte contiene i dati su cui le istruzioni eseguono le operazioni

Esecuzioni di programmi L esecuzione di una istruzione si compone di tre fasi distinte: L acquisizione dalla memoria centrale della istruzione (FETCH) L interpretazione (DECODIFICA) L esecuzione 1. FETCH dell istruzione si svolge a sua volta in quattro fasi: a) Il contenuto del registro contatore viene trasferito nel registro indirizzi b) Lettura del contenuto della cella puntata da AR nel registro dati (DR) c) Il contenuto di DR viene trasferito nel registro di istruzione corrente (CIR)

Esecuzioni di programmi 1. FETCH (continua): d) Il valore del registro PC viene incrementato di 1, in modo da puntare alla cella di memoria contenente l istruzione seguente. Esistono tuttavia istruzioni particolari che fanno saltare l esecuzione del programma in modo non sequenziale (JUMP, JUMPE o JUMPNE): in tale situazione in PC può essere memorizzato un indirizzo differente da quello successivo a CIR. Questo genere di istruzioni sono dette branch 2. L interpretazione (o decodifica): Questa fase comporta l analisi della istruzione corrente (CIR) per scoprire quale operazione deve essere eseguita Viene analizzato solamente il contenuto del registro CIR

Esecuzioni di programmi 3. Fase di esecuzione: Questa fase è ovviamente differente per ogni operazione e dipende dall operazione stessa che deve essere effettuata Le operazioni possibili sono molteplici e con il passare del tempo l instruction set è stato molto ampliato inserendo anche operazioni complesse (Es. radici quadrate, istruzioni grafiche). La possibilità di avere istruzioni complesse decodificate nell Instruction Set, ha generato due tipologie di processori: RISC (Reduced Instruction Set Controller) MAC CISC (Completed Instruction Set Controller) Intel

Esecuzioni di programmi 0100000000010000 leggi un valore in ingresso e ponilo nella cella numero 16 (variabile x) 0100000000010001 leggi un valore e ponilo nella cella numero 17 (variabile y) 0100000000010010 leggi un valore e ponilo nella cella numero 18 (variabile z) 0100000000010011 leggi un valore e ponilo nella cella numero 19 (variabile r) 0000000000010000 carica il registro A con il contenuto della cella 16 0001000000010001 carica il registro B con il contenuto della cella 17 0110000000000000 somma i contenuti dei dei registri A e B 0010000000010100 copia il contenuto del registro A nella cella 20 (risultato, variabile s) 0000000000010010 carica il registro A con il contenuto della cella 18 0001000000010011 carica il registro B con il contenuto della cella 19 0110000000000000 somma i contenuti dei registi A e B 0001000000010100 carica il registro B con il contenuto della cella 20 1000000000000000 moltiplica i contenuti dei registri A e B 0010000000010100 copia il contenuto del registro A nella cella numero 20 0101000000010100 scrivi in output il contenuto della cella numero 20 1101000000000000 arresta l esecuzione (HALT) spazio per la variabile x (cella 16) spazio per la variabile y (cella 17) spazio per la variabile z (cella 18) spazio per la variabile r (cella 19) spazio per la variabile s (cella 20)