Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore e la memoria principale costituiscono l’unità centrale
Componenti principali di un computer Processore Memoria (centrale) Bus principale Controller Periferiche di input/output Stampante Video/display (secondarie) Memorie di massa
Organizzazione fisica attuale Unità centrale e memorie Periferiche per l’output Periferiche per l’input Tastiera e mouse CPU + HD, CD, Floppy Scanner
Hard Disk RAM CPU Lettore CD Floppy Disk
Architettura dei computer Le varie componenti comunicano attraverso uno o più insiemi di collegamenti detti bus Nei computer moderni: c’e’ un collegamento dedicato detto bus di sistema per la comunicazione tra cpu e memoria principale ci sono collegamenti per le altre periferiche detti bus locali con i loro adattatori (memorie secondarie, dispositivi di I/O e di rete)
Le idee ed i pionieri Babbage Turing von Neuman Il computer è un calcolatore digitale programmabile dotato di memoria dati e programmi risiedono in memoria
La memoria principale Fornisce la capacità di “memorizzare” le informazioni (i dati e i programmi) Può essere vista come una lunga sequenza di componenti elementari, ognuna delle quali può contenere un’unità di informazione (un bit)
Le componenti elementari della memoria sono aggregate tra di loro e formano strutture complesse dette celle che possono contenere otto bit (un byte) La memoria può essere vista come una sequenza di celle
La memoria principale 1 2 3 4 N Ciascuna cella è caratterizzata da un indirizzo Gli indirizzi corrispondono all’ordinamento delle celle nella sequenza Gli indirizzi sono numeri interi (partono da 0) Gli indirizzi non sono scritti da nessuna parte, sono determinati dall’ordinamento consecutivo 1 2 3 4 N
Un altro nome con cui viene indicata la memoria principale è memoria RAM (Random Access Memory) Questa definizione indica che il tempo di accesso ad una cella è lo stesso indipendentemente dalla posizione della cella Le operazioni che un Processore può effettuare sulla memoria sono le operazioni di lettura e scrittura di informazioni nelle celle
Spazio di indirizzamento L’ indirizzo di una cella è un numero intero e quindi lo si può codificare in binario Il numero di celle di memoria determina il numero di bit necessari a rappresentare l’indirizzo Viceversa il numero di bit destinati all’indirizzo determina il numero di celle indirizzabili questo numero viene chiamato Spazio di indirizzamento
Dimensioni della Memoria Le dimensioni della memoria principale variano a seconda del tipo di computer Nei computer attuali le dimensioni tipiche della memoria principale vanno da 128MB a 2GB (1MB = 220 byte ~ 1.000.000 byte, 1GB = 230 byte ~ 1.000.000.000 byte)
Spazio di indirizzamento Nei computer attuali lo spazio di indirizzamento è di almeno 32 bit, con cui si possono indirizzare 232 byte = 4GB Lo spazio di indirizzamento è maggiore della memoria esistente
Parola di memoria Una parola di memoria è, a seconda del tipo di computer, un aggregato di (due) quattro o otto byte, sul quale si può operare (leggere e scrivere) come su un blocco unico Per eseguire le operazioni di lettura e scrittura sulla memoria, si deve specificare l’indirizzo della parola su cui si vuole operare Gli indirizzi delle parole devono essere multipli del numero di celle (byte) che le compongono
Indirizzamento La cella è l’unità minima di memoria indirizzabile, non sono indirizzabili i singoli bit La parola è l’unità massima di memoria che è possibile leggere e scrivere in un colpo solo (mediante un’unica istruzione)
La memoria è caratterizzata dal tempo di accesso (tempo necessario per leggere o scrivere un’informazione in una parola) Le memorie principali dei computer attuali sono molto veloci e i loro tempi di accesso sono di pochi nanosecondi (1 nanosecondo= 10-9 sec, un miliardesimo di secondo) Le memorie principali sono relativamente costose, (128MB costano qualche decina di euro)
La memoria principale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica. Questa caratteristica viene chiamata volatilità È quindi necessario per conservare le informazioni (programmi e dati) avere altri tipi di memoria (memoria secondaria) che conservano il contenuto anche senza alimentazione elettrica
Memoria RAM-ROM Tutti i computer contengono un chip di memoria elettronica permanente non modificabile (ROM=Read Only Memory) Il più comune è chiamato EPROM Contiene un programma (detto Basic Input Output System) per l’avviamento del computer e per altre operazioni fondamentali
Riassunto caratteristiche Memoria RAM La memoria RAM è: veloce (accesso nell’ordine dei nanosecondi) relativamente costosa ha dimensioni limitate è volatile (non può mantenere dati permanenti è ad accesso diretto (si può accedere a qualsiasi cella senza accedere alle altre)
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo sequenze di istruzioni (istruzioni macchina) Il linguaggio in cui si scrivono queste istruzioni viene chiamato linguaggio macchina Il ruolo del processore è quindi quello di eseguire programmi in linguaggio macchina
Componenti di un processore Unità di Controllo Unità Aritmetico- Logica REGISTRI Program Counter (PC) Registro di Stato (PS) Registro Istruzioni (RI) Registro Indirizzi Memoria (RIM) Registri Generali (16 o 64) Registro Dati Memoria (RDM) Registro di Controllo (RC) Bus Interno
L’unità di controllo L’Unità di Controllo (UC) si occupa di coordinare le diverse attività che vengono svolte all’interno del processore Il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde generalmente l’esecuzione di una istruzione macchina Ad ogni ciclo vengono svolte diverse attività controllate e coordinate dalla UC si legge dalla memoria principale la prossima istruzione da eseguire si decodifica l’istruzione letta si esegue l’istruzione
La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue una istruzione macchina La velocità di elaborazione di un processore dipende dalla frequenza del suo clock I processori attuali hanno frequenze di clock dell’ordine di 1-3 GHerz (1-3 miliardi di impulsi al secondo)
Il Processore: i registri Il processore contiene al suo interno un certo numero di registri: unità di memoria estremamente veloci per memorizzare i dati di uso immediato Le dimensioni di un registro sono tipicamente quelle di una parola di memoria (ad esempio 4 o 8 byte)
Esistono due tipi di registri: i registri speciali utilizzati dalla UC per scopi particolari: controllo dell’esecuzione del programma scambio di dati con la memoria centrale i registri generali utilizzati per contenere dati e risultati di operazioni aritmetiche o logiche
L’Unità Aritmetico-Logica L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico La ALU legge i dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali Esempi di operazioni sono: Aritmetiche Logiche (AND, OR, NOT…) Confronti (=, <, >…)
Esempio di Motherboard (Scheda Madre) 1:ISA slot 2:PCI slot 3:AGP slot 4:ATX power connector 5:Chipset 6:CPU socket 7:RAM slot 8:IDE connector 9:Floppy disk connector 10:Batteria 11:BIOS chip Esempio di Motherboard (Scheda Madre)
La memoria secondaria (memoria di massa) La memoria principale non può essere molto grande per il suo costo elevato. Inoltre non consente la memorizzazione permanente dei dati Per questi motivi nell’architettura di un calcolatore è presente un altro tipo di memoria: Memoria periferica o secondaria, è molto più lenta più economica con capacità di memorizzazione maggiore in grado di memorizzare i dati in forma permanente La memoria secondaria viene utilizzata per mantenere tutti i programmi e tutti i dati che possono essere utilizzati dal computer
Il processore non può utilizzare direttamente la memoria di massa per l'elaborazione dei dati Il programma in esecuzione deve essere in memoria centrale e quindi le informazioni devono essere trasferite dalla memoria periferica a quella centrale ogni volta che servono Quando si vuole eseguire un programma, questo deve essere copiato dalla memoria periferica a quella centrale (caricamento)
Esempio: programma di elaborazione testi lanciare (aprire) il programma vuol dire copiarlo dalla memoria secondaria alla memoria principale aprire un documento vuol dire copiarlo dalla memoria secondaria alla memoria principale salvare un documento vuol dire copiarlo dalla memoria principale alla memoria secondaria
Caratteristiche generali della memoria periferica: I supporti di memoria di massa sono molto più lenti rispetto alla memoria centrale, ciò è dovuto all’uso di dispositivi meccanici Le memorie di massa hanno capacità di memorizzazione (dimensioni) molto maggiori di quelle delle tipiche memorie principali I dispositivi di memoria secondaria sono dotati di un loro controller e comunicano con la memoria principale e il processore mediante il bus
Accesso ai dati in memoria secondaria Nel caso della memoria centrale si ha sempre l'accesso diretto ai dati, nel caso della memoria periferica solo alcuni supporti consentono l'accesso diretto mentre altri supporti permettono solo l'accesso sequenziale La memoria centrale consente di indirizzare il singolo byte di informazione, nelle memorie di massa le informazioni sono organizzate in blocchi di dimensioni più grandi (in genere di dimensione compresa tra 512Byte e 4KB)
Il motivo è: per minimizzare le operazioni di lettura e scrittura, visto che sono operazioni molto piu’ lente che nel caso della memoria principale per minimizzare lo spazio di indirizzamento; con molti blocchi di dimensione ridotta si dovrebbero utilizzare troppi indirizzi e quindi indirizzi troppo lunghi Il blocco è l’unità minima indirizzabile
I supporti fisici della memoria periferica: La memoria periferica deve avere capacità di memorizzazione permanente Per la sua realizzazione si utilizzano principalmente tecnologie: magnetiche (dischi e nastri magnetici) basate sul laser (dischi ottici, cioe’ CD e DVD) Si utilizzano anche marginalmente tecnologie elettroniche (memorie flash, memory cards)
I dischi magnetici Tecnologia basata sulla magnetizzazione: la magnetizzazione è permanente fino a quando non viene modificata per effetto di un agente esterno I due diversi stati di polarizzazione di particelle di una sostanza magnetizzabile corrispondono alle due unità fondamentali di informazione (bit) I dischi magnetici sono i dispositivi di memoria periferica più diffusi
Sono costituiti da uno o più supporti di plastica, vinile o metallo, su cui è depositato del materiale magnetizzabile Nel corso delle operazioni i dischi vengono mantenuti in rotazione a velocità costante e le informazioni vengono lette e scritte da testine (simili a quelle utilizzate nelle cassette audio/video, ma molto piu’ piccole) Entrambi i lati di un disco possono essere sfruttati per memorizzare le informazioni
i dischi magnetici I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una “fetta” di disco. I settori suddividono ogni traccia in porzioni di circonferenza dette blocchi (o record fisici) Traccia Settore Blocco Testina
La suddivisione della superficie di un disco in tracce e settori viene detta formattazione Il blocco è la minima unità indirizzabile in un disco magnetico e il suo indirizzo è dato da una coppia di numeri (t, s) che rappresentano il numero della traccia (t) e il numero del settore (s) I dischi magnetici consentono l'accesso diretto in quanto è possibile posizionare direttamente la testina su un qualunque blocco senza dover leggere quelli precedenti
Per effettuare un'operazione di lettura (scrittura) su un blocco è necessario che la testina raggiunga l'indirizzo desiderato Il tempo di accesso alle informazioni sul disco è dato dalla somma di tre tempi dovuti a: spostamento della testina in senso radiale fino a raggiungere la traccia desiderata (seek time ~5msec); attesa che il settore desiderato passi sotto la testina; tale tempo dipende dalla velocità di rotazione del disco (latency time); tempo di lettura/scrittura vero e proprio dell'informazione Il tempo di accesso ad un disco è dell’ordine dei millisecondi (10-3)
Dischi fissi (hard disk) Gli hard disk (dischi rigidi) sono i dischi magnetici che vengono utilizzati come memoria di massa principale all'interno del computer Sono generalmente racchiusi in contenitori sigillati in modo da evitare qualunque contatto con la polvere (la testina è a distanza minima dal disco e il disco può girare fino a 10000 giri al minuto) I dischi rigidi hanno capacità di memorizzazione elevata, oggi sono comuni hard disk con una capienza di diverse decine di GByte
Sovente gli hard-disk sono formati da una pila di dischi magnetici a due lati.
Cilindri Negli Hard Disk con più dischi l’insieme delle tracce coallineate si chiama cilindro I cilindri sono indirizzati con un altro parametro Il braccio con le testine è in grado di accedere rapidamente a tutte le tracce presenti nello stesso cilindro Un blocco sarà quindi indirizzato con una terna di numeri (c,t,s)
I floppy disk I floppy disk (dischetti flessibili) sono supporti rimovibili Ogni computer è dotato in genere di una unità di lettura-scrittura detta drive, all'interno della quale si inseriscono i dischetti I floppy disk sono fatti di materiale plastico e ricoperti da un piccolo strato di sostanza magnetizzabile I tempi di accesso sono molto più alti di quelli dei dischi rigidi (c.a. 500 giri al minuto)
I floppy disk Oggi sono comuni floppy disk da 3.5" hanno una capacità di memorizzazione dai 500 KByte ai due Mbyte, a seconda della densità (standard è 1,44MB, 80 tracce e 18 settori) A differenza degli hard disk i floppy disk sono mantenuti fermi fino a quando non si deve accedere ad essi
La memoria periferica:i dischi ottici (CD) Le tecnologie dei dischi ottici sono completamente differenti e sono basate sull'uso di raggi laser Il raggio laser è un particolare tipo di raggio luminoso estremamente focalizzato che può essere emesso in fasci di dimensioni molto ridotte Il raggio laser viene riflesso in modo diverso da superfici diverse, e si può pensare di utilizzare delle superfici con dei piccolissimi forellini per immagazzinare informazione
Ogni unità di superficie può essere forata o non forata e questo corrisponde ai due diversi tipi di informazione elementare (bit) L'informazione contenuta su un'unità di superficie può essere letta guardando la riflessione del raggio laser proiettato sulla superficie stessa Aggregazioni di informazioni possono essere ottenute dividendo una superficie di grandi dimensioni in molte unità elementari, ognuna delle quali rappresenta un singolo bit
FONTE LUMINOSA 0 1 1 1 0
La lettura è un’operazione facile e avviene mediante un raggio laser La scrittura è un'operazione complicata, che richiede una modifica fisica del disco Ci sono vari tipi di CD: I CD ROM ovvero Compact Disk Read Only Memory: consentono solamente operazioni di lettura I CD R: possono essere anche scritti, ma una sola volta perché le modifiche fisiche che avvengono durante la fase di scrittura sono irreversibili. Si usa un masterizzatore. I CD RW possono essere riscritti I DVD: piu’ capienti dei CD
Uso e caratteristiche dei CD-DVD I dischi ottici vengono usati solitamente per la distribuzione di programmi e dati archiviazione di informazioni che non devono essere modificate I dischi ottici hanno una capacità di memorizzazione inferiore (anche se di poco) dei dischi magnetici e sono più lenti dei dischi magnetici (velocita’ circa 500 giri al minuto) Le dimensioni tipiche per i dischi ottici utilizzati oggi vanno dai 500 MByte in su, fino a uno o più GByte I dischi ottici hanno costo inferiore, sono molto più affidabili e difficili da rovinare
Modalità di accesso ad un CD Nei CD di uso comune le informazioni sono memorizzate lungo un’unica traccia a spirale che parte dal centro del disco e viene segmentata in blocchi separati da spazi vuoti (gap) quindi consentono solo un accesso sequenziale E` facile pero’ realizzare delle tabelle di accesso con chiave: ad ogni chiave è associato l’indirizzo del blocco in cui si trova la chiave (perche’ l’informazione non cambia) Ad esempio, nei CD musicali è possibile accedere direttamente al brano a cui siamo interessati (senza leggere il contenuto dei blocchi precedenti)
Velocita’ di lettura La velocita’ di lettura dei dati per un lettore di CD si misura in N X (es 48 X) dove: X e’ l’unita’ di misura e indica la velocita’ per riprodurre un secondo di suono in un CD musicale In un masterizzatore si usa la tripla S*R*L dove S = velocita’ di scrittura R = velocita’ di scrittura su CD RW L = velocita’ di lettura
I DVD DVD (Digital Versatile Disk) o (Digital Video Disk) Capacità attuale fino a 9 GB Velocita di trasferimento molto superiore ai CD DVD-R scrivibili solo una volta DVD-RAM leggibili e riscrivibili
Nastri magnetici Simili ai nastri per le video/audiocassette Consentono solo accesso sequenziale estremamente economici molto lenti usati per back-up periodico o archiviazione essendo tenuti off-line hanno una capacità di memorizzazione molto grande
Prestazioni memoria Tipo Dimensioni T. accesso MB/sec Registro < 1KB < 0,5ns < 100 000 RAM < 4GB < 100ns < 5000 HD < 50GB < 10ms < 20 CD (DVD) < 50GB <100ms < 2 Nastri off-line ~ 100ms < 1
Le unità di ingresso/uscita (Input/Output) Le unità di ingresso/uscita (anche dette periferiche), permettono di realizzare l'interazione tra l'uomo e la macchina La loro funzione primaria è quella di consentire l'immissione dei dati all'interno dell'elaboratore (ingresso), o l'uscita dei dati dall'elaboratore (uscita) Solitamente hanno limitata autonomia rispetto al processore centrale (sono completamente gestiti, controllati e coordinati dal processore)
Unità di I/O Unità di ingresso (input) tastiera mouse (dispositivi di puntamento) scanner (OCR riconoscitori di caratteri) altri (fotocamere, sensori, lettori di codice a barre, microfono) Unità di uscita (output) video stampante casse Schede audio (Sound blaster)
Meccanismo di Interrupt (per periferiche di I/O) Le unità che hanno terminato un'operazione inviano al processore un segnale, detto interrupt, per richiedere l'attenzione del processore stesso Ad ogni ciclo di clock il processore controlla se prima di iniziare l’esecuzione della prossima istruzione del programma in corso è arrivato un segnale di interrupt da qualche dispositivo in caso affermativo esegue un programma di risposta al segnale arrivato e poi riprende quello sospeso altrimenti prosegue normalmente con l’esecuzione del programma in corso