



































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Funzionamento e composizione dei suoi componenti principali
Tipologia: Dispense
1 / 43
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




































Università degli Studi di Torino Dipartimento di Informatica [email protected] Università degli Studi di Torino
In generale, un computer è una macchina da calcolo , in grado di eseguire operazioni complesse ed elaborare dati in maniera automatica. Alcuni esempi macchine da calcolo precursori dei moderni computer sono: ● (^) Pascalina (1645): macchina meccanica in grado di eseguire solo addizioni. ● (^) Aritmometro (1822): macchina meccanica in grado di eseguire le 4 operazioni. ● (^) Sistema elettrico di tabulazione (1890): macchina elettro-meccanica inventata per gestire le informazioni sul censimento della popolazione americana. Le informazioni di ogni cittadino erano salvate su una scheda perforata.
Unità di controllo Unità aritmetico- logica Registri
Central Processing Unit Memoria principale (RAM) Memoria secondaria (Hard Disk) Tastiera Mouse Gamepad Schermo Stampante Jack audio Periferiche di input Periferiche di output Bus L’organizzazione interna di un generico calcolatore (detta architettura ) è genericamente formata dalle seguenti componenti fisiche, che ne formano l’ hardware : la CPU (Central Processing Unit), detta anche processore ; le memorie (principale e secondaria); il bus; i dispositivi (o periferiche ) di input/ouput. Il bus è formato da una serie di cavi fisici che collegano le varie componenti della macchina. Il suo scopo è di permettere alle componenti di comunicare tra loro, attraverso lo scambio di dati e messaggi.
Qualsiasi dispositivo elettronico è formato almeno da questi elementi, a cui eventualmente se ne possono aggiungere altri in base allo scopo del dispositivo (per esempio due o più telecamere negli smartphone).
I dati sono informazioni codificate come sequenze di bit, contenuti in uno o più file, mentre un programma è una sequenza di istruzioni (anche queste codificate come sequenze di bit) che saranno svolte dalla CPU. Le istruzioni sono scritte in un linguaggio comprensibile dalla CPU, chiamato linguaggio macchina , e pertanto sono dette istruzioni macchina. Ogni istruzione corrisponde ad un’ operazione elementare (somma due numeri, confronta due numeri, leggi/scrivi dalla memoria, ecc.); le operazione più complesse vengono realizzate mediante sequenze di operazioni elementari. Ogni processore è in grado di comprendere ed eseguire un numero limitato di istruzioni macchina, che fanno parte del linguaggio che conosce. Ogni modello di processore è in grado di comprendere un proprio particolare linguaggio macchina, ma ormai tutti i modelli sono compatibili tra loro, ossia comprendono lo stesso linguaggio. ● (^) processori diversi ma compatibili non devono essere uguali anche a livello delle componenti elettroniche: i processori Intel e AMD interpretano lo stesso linguaggio macchina anche se internamente sono molto diversi. Cambia ad esempio la velocità a cui eseguono determinate istruzioni, o contengono istruzioni aggiuntive rispetto al linguaggio condiviso, che possono essere sfruttate da chi le conosce per rendere più veloce la computazione.
cosa fare su cosa operare Le istruzioni possono avere formati diversi, ad esempio: Esempio: LOAD 3568 R2 è una operazione di lettura dalla memoria, e richiede:
I registri sono piccole unità di memoria (max 64 byte) utilizzati per memorizzare le informazioni di necessità immediata per il processore, come i risultati temporanei delle operazioni e le informazioni di controllo. Esistono istruzioni macchina (come la LOAD vista prima) che permettono di copiare dati ed istruzioni dalla memoria principale ai registri, mentre altre istruzioni permettono di spostare i risultati delle operazioni dai registri alla memoria principale.
L’ unità aritmetico-logica (ALU) si occupa delle operazioni di tipo aritmetico (somma, sottrazione, moltiplicazione, ..) e logico (and, or, ..) specificate dalle istruzioni. La ALU preleva gli operandi dai registri, calcola il risultato dell’operazione e deposita il risultato nei registri, a in base alle indicazioni dell’istruzione che sta eseguendo. Esempio: l’istruzione ADD R1 R2 somma il contenuto dei registri R1 e R2 e scrive il risultato nel registro R
Il processore svolge la sua attività in modo ciclico : ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione macchina).
Il processore per eseguire le sue operazioni consuma corrente , e questo produce calore , riscaldando il processore. Per questo motivo sul processore, a diretto contatto, viene montato un dissipatore , un dispositivo che ne disperde il calore, raffreddandolo. Ne esistono principalmente di due tipi: ● (^) A ventola : economico ma rumoroso. Una ventola asporta l’aria calda dal processore. ● (^) A liquido : costoso ma molto efficace e silenzioso. Un liquido (solitamente acqua distillata misto ad antigelo e colorante) viene fatto circolare da una pompa: passa attraverso il waterblock (un blocco di metallo che assorbe il calore dal processore e lo trasferisce al liquido in circolo), fino ad un radiatore, attraversato da un flusso d'aria generato da una o più ventole, che disperde il calore del liquido.
Un processore multicore combina due o più processori indipendenti (chiamati core ) nello stesso circuito integrato: quindi un singolo processore fisico contiene al suo interno due o più core (processori), ognuno composto dalla propria ALU, unità di controllo e registri. I processori multicore attualmente più diffusi sul mercato sono quad-core , ossia contengono 4 core su un singolo processore (ma esistono anche modelli dual-core e octa-core , da 2 e 8 core). Ad esempio, i processori Intel i5 sono generalmente dual-core, mentre gli i7 sono quad o octa-core. Core 1 C.U. ALU registri Core 2 C.U. ALU registri Core 3 C.U. ALU registri Core 4 C.U. ALU registri Processore multicore (quadcore) Negli ultimi anni la miniaturizzazione dei chip si è avvicinata ai propri limiti fisici , e molti pensano che la legge di Moore presto non sarà più valida. Per aumentare le prestazioni a dispetto della dimensione della componentistica, da alcuni anni si sfrutta la tecnologia multicore , ovvero dall'accoppiamento in parallelo di più processori su uno stesso chip.
L’efficacia della tecnologia multicore dipende da quanto i processi attivi sul computer sono indipendenti tra loro, per poter essere eseguiti in parallelo. Secondo la legge di Amdahl , se un algoritmo (o un calcolo) ha una componente non parallelizzabile, allora l'aumento massimo di velocità (speedup) che si può ottenere usando N processori non è lineare (ossia pari ad N) ma minore: tanto minore quanto più grande è la frazione che non può essere parallelizzata. In pratica, raddoppiando la velocità (il clock) del processore si ottiene un miglioramento doppio delle prestazioni, invece raddoppiando il numero di processori sul core il miglioramento delle prestazioni non sarà il doppio, ma qualcosa di meno. La tecnologia multicore è molto efficace per il multitasking , ossia quando ci sono molti programmi diversi eseguiti contemporaneamente sul computer, perché questi possono essere sicuramente eseguiti in parallelo. 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 Speedup Numero di Processori Speedup Parallelo vs. Frazione Parallela Linear P = 0. P = 0. P = 0. P = 0.
La RAM è costituita da un certo numero di celle , ciascuna formata da una sequenza di bit. Tutte le celle di una memoria contengono lo stesso numero di bit: la dimensione tipica di una cella di RAM è 8 bit (1 byte), ma può cambiare in base al modello ed al produttore. Il tempo di accesso della RAM indica il tempo che richiede leggere o scrivere una cella di memoria. L’acronimo RAM significa Random Access Memory (memoria ad accesso casuale ), perché tale tempo non dipende dall’indirizzo della cella: accedere alla cella 2 richiede lo stesso tempo che accedere alla cella 43325. Il tempo di accesso delle RAM attuali è di pochi nanosecondi (millesimi di milionesimi di secondo, 10
La memoria cache è un tipo di memoria volatile , simile alla RAM, che si trova tra i registri e la RAM. È più lenta dei registri ma più veloce della RAM, e serve a memorizzare i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM. Anche se poco nota, è una componente che influisce moltissimo sulle prestazioni della CPU, e anche sul suo costo , visto che è una memoria molto costosa, molto più della RAM. cache L RAM CPU Bus C.U. ALU registri cache L I computer moderni hanno più livelli di cache: solitamente almeno due, una interna al processore (cache L1) ed una secondaria (cache L2) esterna al processore. I processori multicore hanno solitamente 3 livelli di cache: uno interno ad ogni core, uno interno al processore ma condiviso tra i core, ed uno esterno al processore. Le dimensioni di una memoria cache tipiche vanno dai 256KB a 1MB, a dipendenza del livello: cache più interne sono più piccole ma più rapide da accedere.