Il processore Nel , l’elaborazione delle informazioni viene eseguita dall’unità centrale di elaborazione (CPU). modello di Von Neumann La (   ) è il “ ” del computer. Viene detta anche , cioè esecutore dei processi. CPU ▶ Central Processing Unit cervello processore All’interno della CPU si trovano: l’ o (   ); unità aritmetico-logica ALU ▶ Arithmetic Logic Unit l’ o (   ); unità di controllo CU ▶ Control Unit i ; registri la . cache memory     central processing unit / unità di elaborazione centrale   arithmetic logic unit / unità aritmetico-logica   control unit / unità di controllo L’unità aritmetico-logica L’ si occupa di le operazioni (somme, sottrazioni ecc.) e (and, or ecc.). unità aritmetico-logica eseguire aritmetiche logiche La ALU può essere considerata l’ del calcolatore proprio perché è l’ . I dati vengono portati al suo interno, vengono elaborati e i risultati vengono restituiti in output. Il funzionamento di questa unità è basato su semplici che sono in grado di memorizzare le cifre binarie, effettuare calcoli aritmetici e operazioni di logica booleana (▶ unità 4). essenza unità che esegue i calcoli dispositivi digitali attenzione   Nei computer moderni   non esiste più un’unica CPU   che gestisce il sistema: il termine “centrale” ha perso significato perché più CPU ( core ) lavorano in parallelo all’interno di un chip (processore). L’unità di controllo L’ è quella che fa . Si occupa per esempio di leggere dalla memoria RAM le istruzioni di un programma e di scomporre ciascuna istruzione in un insieme di attività ( o ) che servono per eseguire l’istruzione stessa. Inoltre fa evolvere i diversi processi nel tempo. unità di controllo funzionare il computer processi task Questa evoluzione non è sequenziale, ma parallela: le diverse attività vengono su più dispositivi. Questo significa che, per esem svolte contemporaneamente pio, mentre un task utilizza la ALU per fare dei conti, un altro comunica al processore dove si trova la successiva istruzione da eseguire, un altro preleva i dati dalla RAM, un altro task ancora utilizza i registri ecc. La CU, a ogni colpo di clock, legge dalla memoria le istruzioni e gli eventuali dati da elaborare, coordina l’esecuzione delle istruzioni e memorizza i risultati nelle memorie o nei registri della CPU ecc. Il clock funziona come un orologio: è un segnale periodico , come quello in figura, che sincronizza il funzionamento dei dispositivi elettronici digitali. A ogni fronte di salita (oppure di discesa) del clock, viene eseguita una serie di istruzioni in parallelo. Più è del clock, più il processore è perché elabora le istruzioni; inoltre, più la frequenza del clock è alta, più il processore consuma corrente producendo ulteriore calore, che deve essere dissipato, per evitare danni. alta la frequenza potente velocemente attenzione   La frequenza di un segnale periodico è rappresentata dal numero di fronti di salita che si presentano nell’unità di tempo (di solito 1 secondo).  >> pagina 45  ApprofondiMENTO   PROCESSORE E CORE La frequenza di clock   non può essere aumentata a piacimento   e in modo illimitato, a causa di restrizioni di natura fisica legate alla dissipazione termica, alla generazione di piccoli disturbi elettromagnetici e alla velocità di propagazione dei segnali elettrici. Essi, infatti, si diffondono all’interno del processore con una velocità massima dettata dalla velocità della luce nel mezzo che, alle alte frequenze, si traduce in pochi centimetri di propagazione per ogni colpo di clock. Poiché il processore ha dimensione di alcuni centimetri, se la frequenza del clock diventa troppo elevata, in un colpo di clock   i dati non riescono a propagarsi nell’intero processore . Nei computer moderni, quindi, l’incremento di potenza del processore non è dovuto all’aumento della frequenza di clock, che negli ultimi anni ha raggiunto il valore limite, ma all’ , ovvero delle singole unità centrali di elaborazione. Gli attuali processori sono tutti multi-core (fino a 32 core), con i quali si ottiene più potenza elaborando più informazioni in parallelo su core diversi. Per trarre il massimo beneficio da questa architettura, è necessario che i sistemi operativi e i software siano sviluppati per far girare più task in parallelo su core diversi. Oggi il concetto di processore non coincide con il concetto di CPU. Per   si intende il singolo chip (installato sul suo alloggiamento, chiamato  ). Il termine CPU coincide con quello di singolo core. incremento del numero dei core processore socket i registri I registri sono speciali locazioni di memoria interne alla CPU a cui è possibile accedere molto velocemente. La loro funzione è quella di fornire al sistema un piccolo di dati e altre informazioni utili alla loro gestione. spazio di archiviazione rapida Esistono spesso identificati con sigle come R1, R2, R3 ecc. che contengono i dati su cui la ALU esegue le operazioni aritmetico-logiche. Sono, inoltre, presenti dei che effettuano funzioni accessorie. registri comuni registri speciali Per esempio, caricano al proprio interno i dati che provengono dalla RAM o da qualche altra periferica per poi trasferirli dentro ad altri registri comuni. Fra i che vengono riservati per usi , vanno ricordati i seguenti: registri speciali (PC): contiene l’indirizzo di memoria RAM della prossima istruzione da eseguire; Program Counter (IR): contiene l’istruzione in fase di elaborazione; Instruction Register (MAR): contiene l’indirizzo della locazione di memoria RAM in cui si andrà a leggere o scrivere un dato; Memory Address Register (MDR): contiene i dati in transito tra la CPU e la RAM e viceversa. In particolare il dato contenuto nell’MDR viene letto o scritto dalla/alla locazione di RAM indicata nel MAR; Memory Data Register (PSW): è il nel quale vengono memorizzati i    , cioè singoli bit che rappresentano, ciascuno, il risultato (vero o falso) di una specifica operazione o condizione. Ci sono flag che indicano se l’ultima operazione matematica ha fornito un risultato 0 o negativo; se l’ultima operazione di confronto tra numeri è risultata vera o falsa; se l’ultimo calcolo matematico è andato in    (errore per numero troppo grande, unità 2) ecc. Process Status Word registro di stato ▶ flag ▶ overflow     flag / bandiera   overflow / straripamento  >> pagina 46  la Cache memory La  ▶ cache memory è una memoria veloce , relativamente piccola, non visibile al software, ma completamente gestita dall’hardware , che memorizza al proprio interno le parti di dati e programmi , contenuti nella memoria RAM, che sono più recentemente o più frequentemente usati dal processore. La cache memory si trova all’ e la sua funzione è quella di ai dati, aumentando le prestazioni del sistema e riducendo il traffico dei dati con la RAM. interno della CPU rendere più veloci gli accessi All’inizio degli anni Settanta, le memorie erano molto più veloci dei processori, quindi il tempo necessario per accedere alla RAM non rallenta le prestazioni della CPU. Con il passare degli anni, però, la frequenza di funzionamento dei processori (clock) è aumentata rapidamente e il tempo di accesso alla memoria è diventato un problema non trascurabile. Per delle CPU, è stato necessario alla RAM. I processori sono stati, quindi, dotati della . mantenere elevate le prestazioni limitare il numero di accessi cache memory L’uso della cache è (non visibile) al programmatore e la sua gestione è completamente affidata alla CPU, quindi a . trasparente livello hardware Le memorie cache migliorano notevolmente le prestazioni del sistema perché sfruttano il , che sostanzialmente afferma: principio di località dei programmi se la CPU sta eseguendo una data istruzione, con molta probabilità le prossime istruzioni da eseguire saranno ubicate nelle vicinanze di quella in corso; 1. gran parte del codice di cui sono costituiti i programmi viene eseguito solo raramente, al verificarsi di errori o di condizioni anomale. 2. Le stesse osservazioni si applicano anche ai dati.   Approfondimento – I livelli di cache     cache / nascondiglio  >> pagina 47 La memoria virtuale I programmi applicativi e i sistemi operativi caricati nella RAM aumentano continuamente in numero e dimensione; di conseguenza la quantità di è sempre . Se la RAM di un elaboratore è troppo piccola, il sistema può utilizzare la (hard disk) per simulare una . Il disco però è più lento della RAM e il suo utilizzo il sistema. RAM richiesta maggiore memoria di massa memoria RAM virtuale rallenta La memoria di massa all’interno della quale viene simulata la RAM si chiama  ▶ swap . Nello swap vengono copiati dati che hanno di essere richiesti (di solito quelli utilizzati meno recentemente, in virtù del principio di località) con lo scopo di liberare RAM per altri programmi. minore probabilità Lo swap in genere viene gestito automaticamente dal sistema operativo, quindi a , in modo trasparente ai programmi applicativi, prima che la venga completamente . livello software RAM esaurita     swap / scambio La scheda grafica Attualmente quasi tutti i sistemi operativi dei computer sono basati su un output a schermo che consente un’interazione facile, veloce ed efficiente (▶ unità 5). La (o ) è il componente hardware che si occupa di prelevare dalla memoria i dati da visualizzare e trasformarli in output su schermo. scheda grafica scheda video La scheda grafica può essere dotata di un (GPU, ) e di una (RAM video) e si frappone tra il monitor e il resto dell’hardware del computer. processore specializzato per elaborazioni grafiche Graphics Processing Unit memoria dedicata  >> pagina 48 I bus I bus sono i “ fili “ che collegano tra loro le memorie, le periferiche e la CPU. Ne esistono di tre tipi: i : trasportano i dalla memoria centrale (o dalle periferiche) alla CPU e viceversa utilizzando un tra i dispositivi. Attraverso il bus dati la CPU legge o scrive i dati sulla RAM o sulle periferiche di I/O; bus dati dati collegamento bidirezionale i : trasportano gli usando un . Attraverso il bus indirizzi la CPU comunica alla RAM o alle periferiche di I/O a quale indirizzo avverrà la o la dei dati. Vengono usati in scrittura dalla CPU e in lettura dagli altri componenti; bus indirizzi indirizzi di memoria collegamento unidirezionale scrittura lettura i : trasportano i che coordinano le attività del sistema. bus controllo segnali SCHEDA CLIL   Blades you can’t cut with We live in a “want-to-optimize-all” era. Computers have to be small, light, powerful, fast. Processor time is a resource not to be wasted. So, several years ago, virtualization was invented. More operating systems run on the same hardware, sharing it and using it in an optimized way. With the beginning of virtual machine era, the need of computational power increased. The “always-on” computers where services run are called servers. Such servers needed to be more powerful, to have more CPUs, more RAM, etc. Without using too much room in data center. Because occupied space costs. So, blade servers was invented. They are a class of computers with a single chassis, in which you can insert a number of blades. Every blade is a thin physical server: a computer with one or more processors, and a lot of RAM. So you can get many servers, managed in a single way, occupying a few space, and able to run tens or hundreds of virtual machines. It’s a quite optimization. And, it’s safe, because they are called blades, but it’s difficult to hurt your fingers with them!  >> pagina 49 La scheda madre Dal punto di vista fisico tutti i componenti che abbiamo elencato (memoria centrale e di massa, periferiche, processore) vengono collegati fra loro su un unico grande supporto che prende il nome di . ▶  scheda madre La scheda madre, oltre a prevedere alloggiamenti per ciascun componente del computer, ospita un grande circuito stampato sul quale sono cablati (collegati) anche numerosi bus. Sulla scheda madre sono presenti inoltre , come led di stato di funzionamento, connettori per l’alimentazione elettrica e una batteria necessaria a mantenere memorizzate le impostazioni elettroniche di base (BIOS) e permettere all’orologio interno di continuare a funzionare anche a computer spento. componenti accessori    /  scheda madre motherboard Collegamento alla scheda madre di un hard disk tramite bus IDE ( Integrated Drive Electronics ).   ApprofondiMENTO   LE PRESTAZIONI DI UN COMPUTER Le prestazioni di un computer dipendono principalmente dalla sua velocità , ma anche dalla dimensione (o capacità) della memoria disponibile . Per si intende sia il alle risorse, sia la , la quale viene espressa in MIPS (Milioni di Istruzioni Per Secondo). Nella scelta di un buon computer è importante anche valutare la e la quantità di che sono presenti all’interno del . velocità tempo di accesso capacità di elaborazione nell’unità di tempo velocità del clock core processore Quando si parla di all’interno di un computer non ci si riferisce esclusivamente alla , ma si intende anche la e la (tipo di hard disk, dimensione e possibilità di collegare altri supporti). memoria disponibile RAM cache memoria di massa Per aumentare efficacemente le performance di tutto il sistema, occorre sempre ricordare che un computer è formato da un diversi e che non è detto che basti migliorare i componenti per ottenere dei miglioramenti complessivi apprezzabili: occorre anche tenere conto delle relazioni di dipendenza che intercorrono fra i diversi componenti. insieme di dispositivi Per esempio, se un computer risulta lento, non è detto che sia colpa di un processore poco potente; il collo di bottiglia (bottleneck) potrebbe essere dovuto all’hard disk. Così come non è detto che aumentando le dimensioni della RAM, tutto il sistema venga necessariamente velocizzato. L’eliminazione dei colli di bottiglia è una delle migliori ottimizzazioni che possano essere effettuate durante la progettazione di un sistema e dei suoi singoli componenti, anche se è un’operazione molto complicata. Lo sapevi che Il   bottleneck   rappresenta un restringimento, ovvero quel punto o componente, in un sistema, che è la fonte di un rallentamento che costringe anche gli altri componenti a funzionare più lentamente. Il bottlenek funziona come un restringimento di carreggiata in un’autostrada a tre corsie: provoca code e costringe gli automobilisti a rallentare.