Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Hardware e componenti, Dispense di Elementi di Informatica

Funzionamento e composizione dei suoi componenti principali

Tipologia: Dispense

2018/2019

Caricato il 07/09/2019

marta-lotta
marta-lotta 🇮🇹

1 documento

1 / 43

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Hardware
Livio Bioglio
Università degli Studi di Torino
Dipartimento di Informatica
Università degli Studi di Torino
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b

Anteprima parziale del testo

Scarica Hardware e componenti e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Hardware

Livio Bioglio

Università degli Studi di Torino Dipartimento di Informatica [email protected] Università degli Studi di Torino

Cos’è un computer?

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.

Architettura di un computer

Unità di controllo Unità aritmetico- logica Registri

CPU

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).

Architettura di un computer

Programmi ed istruzioni

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.

Istruzioni macchina

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:

  • (^) la lettura del valore contenuto nella cella della memoria principale con indirizzo 3568
  • (^) il suo caricamento nel registro R Esempio: ADD R1 R2 è una operazione aritmetica di somma che prevede la somma del contenuto dei registri R1 e R2 e il caricamento del risultato nel registro R Le istruzioni macchina sono codificate in binario. Una delle due operazioni dell’esempio potrebbe essere codificata come: codice istruzione (^) argomento 1 argomento 2 codice istruzione (^) argomento oppure 01000110 1111000 01010111 00001111

unità di

controllo

unità

aritmetico

logica

program counter

REGISTRI

registro di stato

bus interno

registro istruzioni

… registri generali 8 o 16

registro indirizzi memoria

registro dati memoria

registro di controllo

REGISTRI

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.

Componenti del processore

unità di

controllo

unità

aritmetico

logica

program counter

REGISTRI

registro di stato

bus interno

registro istruzioni

… registri generali 8 o 16

registro indirizzi memoria

registro dati memoria

registro di controllo

Componenti del processore

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

Clock

Il processore svolge la sua attività in modo ciclico : ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione macchina).

  • (^) nella realtà i processori moderni sono in grado di compiere più di una sola operazione in ogni ciclo. Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari: ad ogni “rintocco” di questo orologio interno viene eseguita una nuova operazione. La frequenza di clock indica quanti cicli di esecuzione una CPU è in grado di eseguire in un secondo, e viene misurata in Hertz (1 Hz = 1 ciclo al secondo). La velocità di elaborazione di un processore dipende dalla frequenza del suo clock. ● Tipici valori di frequenza dei processori attuali variano tra 1 GHz e 4 GHz (ossia tra 1000 e 4000 milioni di cicli al secondo), permettendo dunque di eseguire milioni di istruzioni macchina al secondo! ● (^) Alcuni appassionati compiono l’operazione di overclocking , che consiste nell’aumentare la frequenza del clock di un processore per migliorarne le prestazioni. Questa è un’operazione rischiosa, perché alcune operazioni potrebbero non essere terminate prima del nuovo termine del rintocco, ed il processore overclockato potrebbe consumare più corrente e scaldarsi più del previsto.

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.

Dissipatore

Processori multicore

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.

Limiti del multicore

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.

Memoria principale (RAM)

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

  • sec.). La dimensione della RAM si misura in (Mega/Giga) Byte, ed influisce sulle dimensioni e sul numero di programmi e dati che si possono caricare contemporaneamente in memoria: ● (^) un computer con poca RAM è tipicamente lento perché deve continuamente liberare memoria per fare posto a nuove istruzioni/dati, mentre troppa RAM è inutile (resta vuota). I computer odierni hanno una quantità di RAM compresa tra i 2 GB e gli 8 GB, anche se la dimensione tipica attualmente è di 4GB.

Altre Memorie: la cache

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.