PC Hardware #1.
Sistemi Analogici e Digitali
Il termine "computer" indica un complesso sistema di dispositivi digitali ed analogici, composto da diversi sottosistemi specializzati interagenti, tutti coordinati e diretti da un'unità logica di elaborazione detta cpu (central processing unit) o microprocessore principale.
Un sistema digitale elabora le informazioni (di qualunque natura, come immagini, audio ... ) effettuando una conversione dei dati in forma numerica. Al contrario un sistema analogico processa i segnali elettrici direttamente, senza elaborarli numericamente. Un segnale analogico è ad esempio quello trasmesso agli altoparlanti del computer per produrre suoni; in questo caso i segnali elettrici vengono convertiti direttamente in vibrazioni delle membrane degli altoparlanti, producendo spostamenti d'aria percepibili come suoni.
I segnali di tipo digitale offrono un maggiore controllo sulla natura, correttezza e conservazione dei dati. La tecnologia digitale è essenzialmente basata sulla possibilità di particolari sistemi fisici di configurarsi in due distinti stati stabili nel tempo; ad uno stato si associa il simbolo "1", all'altro il simbolo "0". Ciò permette di codificare i dati (cioè trasformare le informazioni nella forma comprensibile alle persone alla forma manipolata dall'hardware) in modo abbastanza semplice, facendo ricorso al sistema di numerazione binario.

 

Bits & Bytes
Per motivi legati alla tecnologia, i sistemi digitali rappresentano i dati utilizzando solo due stati fisici, cui si possono associare due simboli "1" oppure "0", detti anche cifre binarie (due soli possibili valori 0 ed 1). Le persone usano invece per lo più cifre decimali (dieci possibili valori, da 0 a 9), ma i principi computazionali restano invariati, dato che le operazioni si basano sulla notazione posizionale. Ciò significa che un dato numero decimale, ad esempio 255, è da intendere come:

5 * 10^0 + 5 * 10^1 + 2 * 10^2 = 5 * 1 + 5 * 10 + 2 * 100

Allo stesso modo il numero binario 11010011 è da intendere come:

1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 0 * 2^3 + 1 * 2^4 + 0 * 2^5 + 1 * 2^6 + 1 * 2^7 =

= 1 * 1 + 1 * 2 + 0 * 4 + 0 * 8 + 1 * 16 + 0 * 32 + 1 * 64 + 1 * 128 = 211

In sostanza quindi la notazione posizionale implica che l'importanza relativa di una cifra facente parte di un dato numero dipende dalla posizione nel numero stesso; una cifra più a sinistra nel numero ha un "peso" maggiore (concorre maggiormente) nel determinare il valore del numero rispetto alle cifre più a destra.
Inoltre le stesse regole per le operazioni valide con il sistema decimale valgono per il sistema binario. Ad esempio:

27 +

35 =

--------

62

in cui l'ordine delle operazioni elementari è "7 + 5 = 2 con riporto di un'unità di ordine successivo, con valore 10^1=10; 2 + 3 = 5 da sommare al riporto". Analogamente:

101+

011=

---------

1000

perchè "1 + 1 = 0 con riporto di un'unità di ordine successivo, con valore 2^1=2; 0 + 1 = 1 da sommare ad 1, quindi ancora 0 con riporto di 1 (valore 1 * 2^2 = 4); 1 + 0 = 1 da sommare al riporto, quindi si scrive 0 alla terza posizione ed 1 alla quarta, con valore 1 * 2^3 = 8".
In binario si possono eseguire tutte le operazioni aritmetiche elementari, ed in base ad esse costruire un sistema di calcolo ed elaborazione dati completo. In particolare:
un "bit" (BInary digiT) è una cifra con due possibili valori 0 ed 1, ed è l'unità fondamentale per l'immagazzinamento di dati;
con 4 bits (nibble) si possono rappresentare numeri decimali da 0 a 15 (=2^4 - 1) (in tutto 16 valori compreso lo zero);
con 8 bits (byte) si possono rappresentare numeri decimali da 0 a 255 (=2^8 - 1) (in tutto 256 valori compreso lo zero);
con 16 bits (word) da 0 a 65535 (=2^16 - 1) (in tutto 65536 valori);
con 24 bits da 0 a 16777215 (=2^24 -1) (in tutto 16777216 valori);
con 32 bits (longword) si possono rappresentare oltre 4 miliardi di valori.
Inoltre occorre tenere presente che:
1 Kilobyte = 1 KB = 1024 Bytes = 1024*8 bits = 8192 b;
1 Megabyte = 1 MB = 1024 KBytes = 1024 * 1024 Bytes;
1 Gigabyte = 1 GB = 1024 MBytes = 1024 * 1024 * 1024 Bytes.
Il sistema binario si presta particolarmente all'immagazzinamento di dati in forma digitale (cioè numerica) su sistemi digitali.
Ad esempio, i caratteri alfanumerici normalmente usati nei programmi di videoscrittura appartengono ad un sistema standard codificato, detto ASCII (American Standard Code for International Interchange); il sistema ASCII associa ad ogni carattere un codice numerico, nel modo seguente:
carattere "A" - codice 65
carattere "B" - codice 66
carattere "C" - codice 67
. . .
. . .
Pertanto, se si deve immagazzinare il carattere "A" sul disco rigido od in memoria Ram, si trasforma il codice "65" (numerazione decimale) nel corrispondente numero in numerazione binaria, in questo caso "10000001"; si tratta quindi di una sequenza di cifre binarie "1" e "0", traducibili fisicamente in due stati distinti, come "magnetizzato" o "non magnetizzato" nel caso degli HD. In questo modo un'informazione intellegibile dalle persone, come una parola, può essere immagazzinata in "formato numerico" processabile dall'hardware.
Un altro sistema numerico molto usato in ambito informatico è il sistema esadecimale, basato su sedici simboli (0-9, A-F) anzichè dieci; ha il vantaggio di rappresentare i dati in forma molto compatta ed efficace. Ad esempio:
il numero decimale 65535 viene rappresentato con
1111111111111111 in binario,
FFFF in esadecimale.
Per un'analogia esemplificativa si immagini di dover comunicare con altre persone utilizzando un alfabeto di due sole lettere (parole molto lunghe con parti ripetute) invece dell'usuale alfabeto A-Z.

 

Componenti della Motherboard
I "componenti vitali" del computer risiedono sulla scheda madre o motherboard, una scheda elettronica che permette ai singoli sottosistemi di mettersi in comunicazione per scambiare ed elaborare dati. I collegamenti elettrici (fisicamente linee di rame) che interconnettono i vari componenti vengono chiamati "bus". Lo schema più frequente di una moderna motherboard è il seguente:

Il componente chiave dell'intera scheda è il microprocessore principale. Il processore si occupa di eseguire le istruzioni dei programmi software, coordinando le azioni dei diversi sottosistemi. Il coordinamento delle singole operazioni avviene tramite un segnale di sincronismo, detto clock, che determina la cadenza (misurata in Hertz, cioè numero di cicli al secondo) delle esecuzioni delle funzioni di ciascun componente (come il metronomo in campo musicale). All'interno del contenitore del microprocessore è montata anche una memoria ad alta velocità, detta cache di secondo livello, con la funzione di contenere una coda di istruzioni scelte opportunamente per minimizzare gli accessi del processore verso l'esterno nel caso di richieste di istruzioni da eseguire. Gli accessi verso l'esterno avvengono infatti sempre più lentamente rispetto al ritmo delle operazioni interne al processore. La cpu (la parte logica del microprocessore, ovvero il microprocessore vero e proprio) comunica con la cache L2 mediante un bus ad alta velocità detto backside bus (BSB in fig). Le comunicazioni verso l'esterno avvengono invece a velocità ridotta attraverso il frontside bus (FSB in fig).
Esempio: Intel Pentium II Deschutes microprocessor, 350 MHz, 512KB cache L2 via Backside Bus 175MHz, Frontside bus 64 bits 66 and 100 MHz.
A fare da tramite tra il microprocessore ed il resto del sistema è il chipset, un sistema integrato di controllers che gestisce l'interazione con la memoria di sistema, con i dispositivi di input / output e con i sistemi disco. Il chipset comunica col processore tramite il system bus (SYSB in fig). Tra le molte funzioni del chipset è il caso di sottolineare:
la gestione degli hardware interrupts, cioè delle richieste di "attenzione" (che si traducono appunto in interruzioni arbitrate delle operazioni del processore) da parte dei dispositivi fisici tramite apposite linee fisiche irq (interrupt request);
l'indirizzamento delle periferiche di input / output, che nei PC avviene indirizzando direttamente gli indirizzi fisici riservati alle periferiche (da $0000 ad $FFFF);
la gestione del DMA (Direct Memory Access) che solleva il microprocessore dal controllo di trasferimenti di dati da e verso la memoria di sistema da parte delle periferiche.
Esempio: Intel 440BX chipset, System Bus 64 bits 66 and 100 MHz.
Tramite il memory bus (MEMB in fig) il chipset comunica con la memoria Ram di sistema. La memoria è un componente essenziale che influisce criticamente sulle prestazioni del computer; sua funzione è di contenere istruzioni e dati da sottoporre al processore. Un programma sul disco fisso dev'essere caricato in memoria prima di essere eseguito. Per consentire l'esecuzione efficiente di più applicazioni contemporaneamente, il caricamento di applicazioni e dati avviene solo quando richiesto. Quando viene richiesta dal processore la lettura di ulteriori dati non presenti in memoria, allora avvengono nuovi accessi ai sistemi disco, con un trasferimento di dati molto più lento. Pertanto una maggiore quantità di memoria limita il numero degli accessi ai dischi, ed aumenta le prestazioni globali del computer.
Esempio: Ram sincrona SDRAM, 64 bits - 100 MHz Memory Bus.
Esempio: Ram asincrona EDORAM, 64 bits - 66 MHz Memory Bus.
L' expansion bus (EXPB in fig) interconnette il chipset con dispositivi di espansione come schede audio, video, controllers vari. Il tipo di bus di espansione più diffuso per PC è il bus PCI (Periferal Component Interconnect), che nella versione 2.1 funziona a 32 bits e 33 MHz, e può trasferire sino a 132 MB di dati al secondo. Per le funzioni video è invece più conveniente usare, quando disponibile, la più avanzata porta AGP (Advanced Graphic Port), che utilizza un bus proprietario più veloce. Un altro tipo di bus in passato molto usato (oggi in via d'estinzione) è l'ISA (Industry Standard Architecture), funzionante a 16 bits ed 8 MHz, molto più lento e critico da gestire rispetto al PCI.
Il PCI, l'AGP, l'ISA vengono normalmente considerati tipi di bus "interni" rispetto ai bus di interfaccia "esterni" che collegano le porte parallele e seriali e le unità disco. Segue una descrizione essenziale dei principali tipi di interfacce esterne.
Porta Parallela. Deve il suo nome al fatto che le informazioni vengono comunicate utilizzando più linee dati contemporaneamente, in parallelo appunto. Nei PC è identificata dal nome di dispositivo "LPT1" in quanto tipicamente utilizzata per la stampante (line printer). Il suo funzionamento può essere configurato nel modo standard SPP (il più lento ma assicurante piena compatibilità con le periferiche), bidirezionale EPP oppure ECP (modalità veloce ma richiedente un canale dma).
Porte Seriali. Devono il loro nome al fatto che le informazioni vengono comunicate utilizzando una sola linea dati (privilegiando l'integrità delle comunicazioni più che la velocità), ottenendo appunto una serie di bits in successione. Nei PC le porte seriali standard (RS-232) sono indicate con "COM1" e "COM2", in quanto riservate alle comunicazioni seriali (modem seriale, mouse ...). Le porte seriali sono le uniche progettate per sopportare connessioni e disconnessioni "a caldo", senza cioè spegnere il computer e le periferiche interessate. Di recente introduzione è la porta USB (Universal Serial Bus), un'interfaccia seriale molto più veloce (12 Mbps) delle tradizionali RS-232 (max 115200 bps), che consente connessioni in cascata di più periferiche (127 dispositivi in una catena plug'n'play) come scanners, modems ed altre. Ancora più veloce (fino a 400 Mbps) è la porta seriale IEEE 1394 Firewire, introdotta dall'Apple, ideale per collegare il PC ad apparecchi come videocamere, decodificatori satellitari ed altri dispositivi audio / video.
Disk Controller Interfaces. Sono i dispositivi che controllano il funzionamento delle unità disco (HD, CD-Rom). Gli standard più diffusi sono due: EIDE (Enhanced Integrated Drive Electronics) e SCSI (Small Computer System Interface).
L'interfaccia EIDE è la più diffusa ed economica, ed è praticamente un compromesso tra costo e prestazioni (anche se con la versione Ultra DMA 33 è possibile ottenere una discreta velocità massima di trasferimento di 33 MB al secondo). L'EIDE consente la connessione di 4 dispositivi al massimo, gestiti tramite due porte (Primary IDE e Secondary IDE) che a loro volta gestiscono due periferiche differenti (Master e Slave). Il controller EIDE è normalmente integrato nel chipset, cosa che normalmente non avviene per l'interfaccia SCSI.
L'interfaccia SCSI è nata come un sistema ad alte prestazioni, e solitamente richiede un controller a parte (alcuni produttori invece integrano sulla motherboard controller e connettori). Oltre a prevedere una elevata velocità di trasferimento dati (fino ad 80 MB al secondo nella versione Ultra Wide SCSI III), consente la connessione in cascata ed il controllo di un elevato numero di periferiche (fino a 21 per lo SCSI III). Inoltre integra una serie di caratteristiche avanzate (ad esempio, a titolo puramente indicativo, bus mastering, dma, alti valori MTBF) che la rendono nettamente superiore allo standard EIDE.
La disposizione dei componenti sulla motherboard dovrebbe rispettare uno schema standard raccomandato, frutto dell'esperienza di anni di sperimentazione tecnologica; si tratta del cosiddetto fattore di forma atx. I computers costruiti secondo questo standard abbinano ordine della geometria dei circuiti alla facilità di accesso per le connessioni. A livello elementare inoltre il funzionamento del complesso computer system è supervisionato da un componente detto bios (Basic Input Output System), che fornisce anche un'interfaccia di base per l'interazione con l'utente prescindente dal sistema operativo utilizzato. All'accensione del computer il bios avvia una procedura detta POST (Power On Self Test), che investiga i sottosistemi installati predisponendoli al corretto funzionamento. Le informazioni basilari sull'hardware a bordo della motherboard (compresa la data e l'ora corrente) vengono memorizzate su una memoria di tipo cmos a basso consumo, affiancata da una speciale batteria; le impostazioni della cmos possono essere modificate (si presume con cognizione di causa) accedendo al setup durante la fase di avvio della macchina.
Per ulteriori approfondimenti: note di pc hardware.

[Indice]   [Glossario]   [Top]