Architettura PC
Laboratorio di Sistemi e Reti
Prof. ENRICO MELE
Layout di una Scheda Madre – Componenti principali
- Socket del Processore
Alloggiamento specifico per l’installazione del componente PROCESSORE. - Chipset
Circuito integrato che collega fra loro tutti i vari componenti connessi alla Scheda Madre. - Slot per Moduli di Memoria RAM
Alloggiamenti per l’installazione di uno o più moduli di Memoria RAM (moduli DIMM). - Connettori per Unità di Memoria (SATA, M.2)
Connettori per collegare unità di memoria permanenti come Hard Disk, unità SSD, ecc. - Bus di Espansione PCI-Express (x1, x16)
Alloggiamenti per l’installazione di schede aggiuntive (es. scheda grafica su PCI-e x16). - Porte di Ingresso/Uscita (USB, Audio, Rete, ecc.)
Connettori esterni per collegare periferiche USB e per altre funzioni come audio, rete, ecc. - Connettori per l’Alimentazione
Connettori per l’alimentazione elettrica (2 connettori: 24 pin e 8 pin). - Batteria Tampone, Control Panel, ecc.
Batteria che mantiene data/ora e i parametri di configurazione specificati nel Setup della scheda.
Il Control Panel connette i led (HD, Power) e i pulsanti (Avvio, Reset) del computer.
Componenti di un PC Moderno
Scheda Madre: connette fra loro i vari componenti del PC. Integra il Chipset che include: controller per unità di memoria, bus di espansione per schede aggiuntive, controller USB, funzionalità audio, interfaccia di rete e altro.
Processore: esegue i programmi (con più CPU) e ha funzioni di calcolo e di governo. Include anche: processore grafico (GPU), controller per moduli RAM, bus di espansione per scheda grafica esterna e/o unità di memoria SSD.
Memoria Centrale o RAM: memoria temporanea veloce ma non permanente. Affinché il processore possa eseguire un programma e/o elaborare dei dati, essi devono essere spostati temporaneamente in RAM (caricamento o apertura). I dati elaborati o modificati in RAM devono essere salvati su una memoria permanente (salvataggio).
Memorie Ausiliarie: unità di memoria permanenti (più lente e capienti della RAM). Memorizzano in modo permanente programmi e dati (dischi, SSD, DVD, PenDrive).
Scheda Grafica o GPU: gestisce l’immagine da visualizzare e la invia al monitor. Ha funzioni di “accelerazione” per il tracciamento rapido di elementi 2D e 3D. È integrata nel processore, ma è possibile installare una scheda grafica alternativa.
Schede Aggiuntive: si installano sul bus di espansione e offrono funzioni aggiuntive.
Memoria e Velocità: unità di misura
Unità di misura della memoria digitale
- BIT (BInary digiT – cifra binaria): cella che può assumere solo due valori (0 e 1).
- BYTE = gruppo di 8 bit: consente di memorizzare 1 carattere della tastiera.
- KiloByte (KB) = 1024 Byte ≃ 1000 Byte
- MegaByte (MB) = 1024 KB ≃ 1 milione di Byte
- GigaByte (GB) = 1024 MB ≃ 1 miliardo di Byte
- TeraByte (TB) = 1024 GB ≃ mille miliardi di Byte
Unità di misura della velocità di trasferimento dei dati
- GB/s = Giga Byte al secondo (anche MB/s, KB/s, Byte/s, ecc.)
- Gb/s = Giga bit al secondo (anche Mb/s, Kb/s, bit/s, ecc.)
Attenzione: 1 GB/s = 8 Gb/s perché 1 BYTE = 8 bit.
GT/s = Giga Transfer al secondo (numero di “trasferimenti” in un secondo).
Il Processore nel Moderno Personal Computer
Identificare un Processore
Il Nome Commerciale (o Processor Number o Model Number) è una sigla (in parte letterale e in parte numerica) che identifica con esattezza un determinato modello di processore. Conoscere il Processor Number è il modo più sicuro per identificare con certezza un determinato modello di processore.
Esempi di Processor Number di processori Intel: Core i7-9700, Core i5-8600K, Core i9-10850K, ecc.
Il Nome dell’Architettura di un processore indica con precisione quale sia il “progetto” sulla base del quale è stato realizzato il processore. Esso consente di conoscere le tecnologie specifiche che caratterizzano il processore e di comprendere le differenze che lo distinguono da altri processori basati su architetture diverse. Spesso si parla anche di generazioni per distinguere fra loro le varie architetture.
Esempi di architetture Intel: Coffee Lake (2017 – 8ª/9ª generazione), Comet Lake (2020 – 10ª generazione), Sky Lake (2015), ecc.
È ricorrente che più modelli di processore siano basati sulla stessa architettura, così come è ricorrente che diversi processori, pur avendo una stessa denominazione generica (i3, i5, i7, i9), siano basati su architetture diverse.
Il Socket
Il Socket (zoccolo) di un processore è il connettore fisico sul quale viene installato il processore sulla scheda madre.
Esempi di socket Intel: LGA 1151 (Coffee Lake), LGA 1200 (Comet Lake), ecc. I socket attuali sono di tipo LGA (Land Grid Array): i “piedini” si trovano sullo zoccolo, anziché sul processore come accadeva per i socket più vecchi.
Il Numero di Core
I moderni processori sono processori multicore e contengono al loro interno più di un core (tipicamente 2, 4, 6 o 8). Ogni core è un nucleo di elaborazione indipendente e ciascun core viene utilizzato dal software come se fosse un processore a sé stante, capace di eseguire codice macchina.
Richiami ai segnali periodici ad onda quadra
Il processore opera in modo sincrono, ossia effettua le operazioni in accordo con un segnale di temporizzazione chiamato Clock, un segnale elettrico periodico ad onda quadra.
Il tempo in cui un segnale periodico si ripete è chiamato Periodo (T) e si misura in secondi o sottomultipli (ms, µs, ns). Il numero di volte in cui il segnale si ripete in un secondo è la Frequenza (f), misurata in Hertz e suoi multipli (kHz, MHz, GHz). Vale la relazione: f = 1/T (oppure T = 1/f).
Quando il segnale passa da basso ad alto si parla di fronte di salita; da alto a basso, di fronte di discesa.
Frequenza di lavoro di un processore
Ogni volta che il clock presenta un fronte di salita, il processore effettua un’operazione: maggiore è la frequenza del clock, più velocemente il processore effettua le operazioni.
La scheda madre genera un clock di base a frequenza relativamente bassa e lo trasmette ai componenti da sincronizzare, fra cui il processore. Quest’ultimo, dovendo funzionare a frequenze più elevate, modifica internamente il clock di base moltiplicandone la frequenza per un numero intero (il moltiplicatore) e creando così il clock interno del processore, cioè la frequenza di lavoro.
Frequenza di lavoro e moltiplicatore sono caratteristiche specifiche di ogni modello. Alcuni processori permettono di modificare il moltiplicatore (overclock).
Canale di connessione con il Chipset
Nei moderni PC il processore è connesso al chipset tramite un canale dedicato che, nelle architetture Intel recenti, è chiamato DMI (Direct Media Interface). Nella versione DMI 3 consente un trasferimento dati di circa 4 GB/s (4 linee × 8 GT/s = 4 GB/s).
Memoria Cache
La memoria cache è una speciale memoria che si interpone fra processore e RAM e velocizza le operazioni di lettura/scrittura. È di bassa capacità ma altissime prestazioni e da anni è integrata nel processore stesso.
Quando il processore richiede un dato, questo viene letto dalla RAM, copiato nella cache e poi trasmesso alla CPU. Se il dato viene richiesto una seconda volta, trovandosi già nella cache (più veloce della RAM), può essere fornito più rapidamente. Il controller della cache carica spesso anche un blocco di dati successivi a quello richiesto, perché è probabile che vengano richiesti a breve.
Nei processori moderni esistono più livelli di cache:
- Cache L1: la più piccola, direttamente connessa al core (una per ogni core).
- Cache L2: un po’ più grande della L1, anch’essa legata a un singolo core.
- Cache L3: comune a tutti i core e di dimensioni maggiori.
Processo produttivo, tensione di alimentazione e consumo massimo
Il processo produttivo indica la tecnologia utilizzata per integrare i transistor di cui il processore è composto. È espresso dalla dimensione del gate di un transistor interno, misurata in nm (nanometri).
Per le architetture Intel Coffee Lake e Comet Lake è tipicamente 14 nm; i processori Ice Lake utilizzeranno invece una tecnologia a 10 nm.
Alla riduzione del processo produttivo si accompagnano un abbassamento della tensione di alimentazione (valori di poco superiori a 1 V), una minore corrente circolante, minore produzione di calore e un minore consumo massimo (potenza assorbita, espressa in Watt).
Tecnologie particolari
Le architetture che si sono susseguite nel tempo hanno introdotto nuove funzionalità e tecnologie, tra cui:
- XD-Bit: impedisce di scrivere codice in aree destinate ai dati, proteggendo contro l’esecuzione di malware.
- Hyper-Threading: consente al sistema operativo di “vedere” un core fisico come 2 core logici.
- SpeedStep: modifica dinamicamente la frequenza in base al carico, utile per il risparmio energetico.
- Turbo Mode: aumenta la frequenza quando vengono utilizzati solo alcuni dei core disponibili.
- Vanderpool Technology: supporto alla virtualizzazione, ossia esecuzione contemporanea di più sistemi operativi.
Set di istruzioni dei processori
Il set di istruzioni è l’insieme delle istruzioni in linguaggio macchina che un processore è in grado di eseguire nativamente. Il set “x86” è diventato uno standard di fatto con l’ingresso di IBM nel settore dei PC ed è sempre stato supportato dalle generazioni successive di processori.
Nel tempo sono state introdotte estensioni del set di istruzioni per migliorare l’elaborazione multimediale: MMX, SSE, SSE2, SSE3, SSE4, AVX, ecc.
Un’evoluzione importante è il passaggio dall’architettura a 32 bit a quella a 64 bit, con il set di istruzioni EM64T nei processori Intel.
Le Memorie in un Moderno Personal Computer
Generalità sulle memorie
Una memoria è un dispositivo capace, una volta ricevuto un dato, di mantenerlo nel tempo rendendolo poi disponibile in un secondo momento. Anche un quaderno può essere considerato una memoria.
Le memorie dei moderni computer sono memorie digitali binarie costituite da numerosissime celle elementari chiamate bit. Ogni bit può assumere due soli stati (0 o 1).
Un gruppo di 8 bit costituisce un byte, in grado di memorizzare un singolo carattere.
La capacità di una memoria si misura in byte e nei suoi multipli (KB, MB, GB, TB) come già visto.
Tempo di accesso (velocità)
Il tempo di accesso (o velocità) di una memoria è il tempo tra la richiesta di un dato e il momento in cui il dato viene reso disponibile. Si misura in s, ma si usano spesso ms, µs, ns.
Memoria centrale e memoria ausiliaria
La memoria RAM (Random Access Memory), o memoria centrale, è il dispositivo collegato direttamente al processore con cui scambia continuamente dati e istruzioni dei programmi. È veloce ma volatile.
Per eseguire un programma o elaborare dati, questi devono essere presenti in RAM. Sia i dati che il programma devono quindi essere caricati in RAM.
Quando la corrente viene meno (spegnimento, blackout), il contenuto della RAM si perde: per questo si esegue il salvataggio, copiando i dati dalla RAM a un dispositivo permanente come l’Hard Disk.
Per lavorare nuovamente con dati salvati, si esegue l’operazione di apertura, che copia i dati dall’Hard Disk alla RAM.
L’Hard Disk è una memoria ausiliaria permanente, di grande capacità ma più lenta della RAM. Memorizza i dati magnetizzandoli su dischi rotanti.
I programmi installati sul PC sono memorizzati sull’Hard Disk. Per eseguirli occorre il caricamento (LOAD) dall’Hard Disk alla RAM.
In un PC odierno:
- La RAM ha capacità tipica tra 4 GB e 32 GB.
- L’Hard Disk ha capacità tipica tra 500 GB e 2 TB.
Memorie esterne e supporti rimovibili
Le memorie esterne sono memorie permanenti esterne al PC (Pen-Drive USB, Hard Disk esterni, DVD, ecc.). Sono usate per liberare spazio, fare backup, spostare dati tra PC diversi. Essendo intercambiabili, la loro capacità complessiva è virtualmente infinita.
Gli Hard Disk esterni sono normali hard disk montati in un cabinet con collegamento USB o simile.
Le memorie flash o a stato solido sono permanenti, robuste, leggere e compatte, ideali per dispositivi come Pen-Drive e Memory Card (SD, micro-SD, ecc.).
I supporti ottici (CD, DVD, Blu-Ray) memorizzano i dati tramite principi ottici e sono letti/scritti con un raggio laser attraverso il masterizzatore. Offrono capacità tipiche di:
- CD-R: 650–700 MB
- DVD-R: 4,7 GB (fino a 8,5 GB per DVD-R DL)
- BD-R: 25 GB (fino a 50 GB per BD-R DL)
Altri dispositivi di memoria in un PC
Nel processore sono presenti più livelli di cache (L1, L2, L3).
Sulla scheda madre è presente una memoria ROM in cui è memorizzato il BIOS (Basic Input/Output System). All’avvio il processore esegue dal BIOS il POST (Power-On Self Test) e il Bootstrap, che carica il sistema operativo dalla memoria ausiliaria alla RAM.
Nei PC attuali il BIOS è memorizzato su EEPROM o memorie flash, consentendo l’aggiornamento del firmware.
Il BIOS include anche il programma di Setup della scheda madre, richiamabile all’avvio tramite un tasto (Canc, Esc o F-key) per impostare data/ora, sequenza di boot, ecc.
I parametri del Setup sono memorizzati in una piccola memoria CMOS, mantenuta da una batteria tampone.
Un nuovo standard, UEFI (Unified Extensible Firmware Interface), sta sostituendo il BIOS classico, offrendo un’interfaccia più amichevole, avvio più rapido e supporto a dischi oltre 2,2 TB.
Dischi a stato solido (SSD)
Gli SSD (Solid State Disk) sono memorie ausiliarie basate su memorie flash: più veloci degli Hard Disk, ma con capacità tipicamente inferiore e costo per GB più elevato (sebbene in diminuzione).
In un PC moderno è spesso conveniente usare un SSD per il sistema operativo, i software e i dati di uso frequente, affiancato da un Hard Disk tradizionale per l’archiviazione di grandi quantità di dati.
Lo schema gerarchico delle memorie comprende quindi: cache (nel processore), RAM (memoria centrale), SSD/Hard Disk (memorie ausiliarie interne) e memorie esterne (Pen-Drive, supporti ottici, ecc.).
Memoria RAM
Definizione e funzionamento
La RAM (Random Access Memory) è una memoria ad accesso diretto o casuale: il tempo di accesso a qualsiasi dato è indipendente dalla sua posizione. È la memoria centrale dei moderni computer ed è una memoria volatile.
La RAM è suddivisa in celle (o locazioni), ciascuna individuabile da un indirizzo numerico (spesso espresso in esadecimale).
- Lettura (Read): il processore acquisisce il dato presente in una cella RAM.
- Scrittura (Write): il processore memorizza un dato in una cella RAM.
Il bus indirizzi trasporta dalla CPU alla RAM l’indirizzo della cella da leggere/scrivere. Il bus dati trasporta il dato tra CPU e RAM.
Tipi di memoria RAM
S-RAM (Static RAM): ogni bit è implementato da un circuito bistabile (flip-flop). È molto veloce ma poco integrabile, quindi usata per le cache.
D-RAM (Dynamic RAM): ogni bit è un piccolo condensatore; la presenza/assenza di carica rappresenta 1/0. È necessaria un’operazione periodica di refresh. È molto integrabile e a basso costo: tutte le RAM dei PC moderni sono basate su D-RAM o sue evoluzioni.
SD-RAM (Synchronous D-RAM): D-RAM sincrone in cui le operazioni sono temporizzate da un segnale di clock (onda quadra periodica). La RAM effettua operazioni sul fronte di salita del clock.
DDR SD-RAM (Double Data Rate SD-RAM): effettuano operazioni sia sul fronte di salita sia sul fronte di discesa, raddoppiando la velocità a parità di frequenza.
DDR2, DDR3, DDR4… sono successive evoluzioni, con clock più elevato, moduli fisici differenti e altre caratteristiche migliorative.
Latenze nelle memorie RAM
Internamente, le celle di un chip di memoria sono organizzate in righe e colonne. L’indirizzo richiesto dalla CPU viene tradotto in indirizzo di riga (RAS) e indirizzo di colonna (CAS).
Per accedere a un dato sono necessari vari passaggi:
- ACTIVE: attivazione della riga indicata dall’indirizzo di riga.
- READ/WRITE: letture/scritture sulle celle della riga attiva, specificando l’indirizzo di colonna.
- PRECHARGE: disattivazione della riga prima di attivarne un’altra.
Queste operazioni richiedono tempi non nulli, chiamati tempi di latenza, espressi in cicli di clock.
Esempio: una RAM a 1000 MHz ha un periodo di 1 ns; una latenza pari a 3 cicli equivale a 3 ns.
I principali tempi di latenza sono:
- tRCD (RAS to CAS delay): cicli da attendere dopo ACTIVE prima di READ/WRITE.
- tCL (CAS latency): cicli fra il comando READ e la disponibilità del dato sul bus (o fra WRITE e memorizzazione effettiva).
- tRP (RAS Precharge): cicli fra PRECHARGE e il successivo ACTIVE.
La latenza più importante è tCL, perché si ripete più spesso durante gli accessi alla RAM.
Le prestazioni di una RAM sono quindi determinate sia dalla frequenza sia dai tempi di latenza, espressi dal costruttore in forma: PCxxxx – tCL – tRCD – tRP – …
Esempio: PC2-6400-5-5-5-9-1T indica una DDR2 a 800 MHz (PC2-6400) con tCL = 5, tRCD = 5, tRP = 5 e altre latenze.