Architettura di Von Neumann
Nel 1945 John Von Neumann definì l’architettura logica di un elaboratore. L’obiettivo era migliorare le operazioni di input/output e l’esecuzione dei programmi senza interventi manuali di riconfigurazione della macchina: invece di cambiare collegamenti fisici, bastava cambiare il programma.
Analogia cucina ↔ calcolo
Un calcolo può essere paragonato alla preparazione di un piatto: per cucinare servono ingredienti, strumenti, e una ricetta. Allo stesso modo per eseguire un calcolo servono dati, memoria, un’unità di calcolo e un programma.
Per cucinare servono:
- ingredienti da processare;
- strumenti per conservare: frigorifero;
- strumenti per processare: forno;
- istruzioni: la ricetta.
Per calcolare servono:
- dati da elaborare;
- strumenti per conservare i dati: memoria;
- strumenti per processare: unità di calcolo (CPU/ALU);
- istruzioni da seguire: il programma.
Arriviamo al punto chiave.
In cucina:
Una ricetta è una cosa diversa da un ingrediente e quindi viene conservata in un posto diverso e trattata con strumenti diversi.
In un processo di calcolo:
Una istruzione è essa stessa un dato e quindi può essere conservata nello stesso posto di un dato e trattata con gli stessi strumenti.
Il ciclo di esecuzione
Ogni calcolatore, a qualunque livello di complessità, esegue ciclicamente tre fasi:
- Leggi dalla memoria la prossima istruzione.
- Decodifica: individua i dati in memoria e l’operazione richiesta.
- Esegui l’operazione e scrivi il risultato nella destinazione prevista.

Componenti fondamentali
L’architettura di Von Neumann prevede che i dati e il programma siano entrambi memorizzati nella stessa memoria. La Control Unit (CU) preleva e decodifica le istruzioni, l’ALU esegue i calcoli, mentre i dispositivi di input/output permettono lo scambio di informazioni con l’esterno.
- ALU – esegue operazioni aritmetiche e logiche;
- CU – controlla il flusso e il ciclo delle istruzioni;
- Memoria – registra dati e istruzioni (registri + RAM);
- Unità di I/O – scambio con periferiche e memorie di massa.

Hardware e Software
Hardware: componenti fisici interni ed esterni come CPU, RAM, scheda madre, disco, tastiera e monitor.
Software: programmi che rendono operativo l’hardware e consentono l’elaborazione.
L’hardware senza il software si riduce a essere un insieme di apparecchiature che non producono nessun lavoro.
È il software che fa diventare un computer una macchina in grado di svolgere attività molto diverse tra loro quali scrivere una lettera, eseguire operazioni aritmetiche, disegnare, memorizzare dati.

Tipologie di computer
- Personal computer: per uso generico individuale.
- Laptop: versione portatile del PC.
- Mainframe: grandi sistemi per elaborazioni di massa.
- Workstation: macchine potenti per grafica, video, CAD.
- Network computer: ottimizzati per l’uso in rete.
- Palmari e minicomputer: categorie storiche ormai superate.
Possiamo ancora classificare i computer sulla base del loro utilizzo; avremo allora:
– Computer General purpose: adatti a risolvere problemi generici in diversi settori.
– Computer Special purpose: progettati per scopi specifici.
Un terminale è un dispositivo composto essenzialmente da monitor e tastiera.
I terminali che possiedono CPU sono in grado di svolgere almeno qualche operazione di elaborazione in modo autonomo e sono detti terminali intelligenti, quelli che non possiedono CPU non sono in grado di compiere alcuna elaborazione autonomamente e sono detti terminali stupidi.
In genere i terminali vengono collegati a un minicomputer o a un mainframe condiviso da più utenti.
Componenti di un personal computer

Le elaborazioni che un computer deve saper svolgere sono:
- eseguire problemi di natura diversa (scrivere un testo, stampare una fattura, realizzare un grafico);
- eseguire operazioni di calcolo e operazioni logiche (per esempio, confrontare due numeri, due date);
- elaborare sia dati numerici sia dati non numerici (i dati non numerici sono quelli che non hanno significato numerico, quali nomi, descrizioni, codici);
- eseguire una successione di operazioni codificate mediante un linguaggio di programmazione;
- memorizzare le informazioni.
Per poter eseguire queste operazioni un computer deve essere costituito essenzialmente da:
- unità centrale di elaborazione: si può considerare come il cuore del computer, cioè quell’unità che governa l’elaborazione;
- memoria centrale: è il supporto sul quale l’unità centrale legge e scrive i dati e le istruzioni dei programmi;
- memorie di massa: servono per conservare in modo permanente programmi e dati elementari. Si distinguono in:
– disco fisso (hard disk): supporto magnetico (solitamente non estraibile) di grandi capacità;
– dischetto (floppy disk): disco estraibile di piccole dimensioni;
– zip disk: disco estraibile di medie capacità;
– CD-ROM: disco estraibile di grandi capacità; - dispositivi di input: servono per introdurre dati nel computer, per esempio, dalla tastiera o da un archivio contenuto in una memoria di massa;
- dispositivi di output: servono per comunicare i dati elaborati dal computer. I risultati dell’elaborazione possono essere inviati allo schermo, alla stampante oppure memorizzati in un archivio contenuto in una memoria di massa.
Scheda madre, chipset e bus
La scheda madre serve per collegare elettronicamente i vari componenti di un computer.
Essa contiene un supporto dove va inserita l’unità centrale di elaborazione e i supporti dove vanno inseriti i moduli di memoria RAM.
Gli altri dispositivi sono collegati alla scheda madre tramite connettori, come, per esempio, l’hard disk, il floppy disk, il CD-ROM, oppure delle sedi, chiamate slot, dove vanno inserite altre schede come, per esempio, la scheda grafica, la scheda sonora.
- Chipset: collega CPU, RAM e periferiche.
- Slot: ISA/AGP storici, PCI Express è lo standard attuale.

CPU e memoria
- CPU: esegue le istruzioni; prestazioni influenzate da frequenza, IPC e cache.
- Cache: memoria veloce vicino al processore.
- RAM: memoria principale (oggi GB multipli, DDR4/DDR5).
Microprocessore. È ovviamente il componente più importante presente sulla scheda madre; viene inserito in uno zoccolo ZIF (Zero Insertion Force) per facilitarne la rimozione.
Ogni famiglia di microprocessori è dotata di un certo numero di piedini (fino a 478).
I microprocessori più recenti, oltre alle alette di raffreddamento, hanno una ventola per facilitare la dissipazione del calore.
Al microprocessore (noto anche con il nome di CPU) sono demandate tutte le funzioni di controllo ed esecuzione delle istruzioni che costituiscono i programmi da eseguire. È ovvio quindi che le sue caratteristiche influenzano pesantemente le prestazioni di un PC (anche se in realtà queste ultime dipendono anche dal software utilizzato – Sistema Operativo, BIOS, programmi – e dagli altri componenti hardware presenti).
La maggior parte dei PC utilizza microprocessori in grado di eseguire programmi le cui istruzioni sono compatibili con i microprocessori Intel della serie 80×86; esistono inoltre i microprocessori RISC (Reducted Instruction Set Computer).

La frequenza del clock costituisce un’importante indicazione sulle prestazioni della CPU che risulta tanto più efficace quanto più è elevata la frequenza del clock.
Si tenga presente che per ogni CPU esiste un limite di frequenza che non deve essere superata per non incorrere in problemi tecnici dovuti al surriscaldamento o a fenomeni elettromagnetici.
Alcune operazioni vengono eseguite in un ciclo di clock, altre ne richiedono più di uno, ne segue che il numero di operazioni è inferiore al numero di oscillazioni dell’orologio.
La velocità della CPU si misura in MIPS (Millions Instructions Per Second), milioni di istruzioni per secondo.
Controller o chip set. È un insieme di chip (normalmente due, il NorthBridge e il SouthBridge) di supporto al microprocessore che consentono l’interfaccia del microprocessore con gli altri circuiti delle diverse schede, con le memorie, con l’hard disk. Un esempio per tutti: Intel 850.
Memoria ROM. Memoria di sola lettura, normalmente di tipo EEPROM (o Flash Memory), che contiene il BIOS (Basic Input Output System), cioè le istruzioni eseguite all’accensione del PC che precedono il caricamento del sistema operativo e permettono al microprocessore di riconoscere, inizializzare e diagnosticare i dispositivi hardware presenti.
Memoria Cache. Si trova all’interno del microprocessore (cache di primo livello o L1) come banchi di memoria alloggiati in appositi zoccoli (cache di secondo livello o L2).
Attualmente la dimensione della memoria cache arriva a 512 kByte e si tende a integrarla all’interno del microprocessore. Ha tempi di accesso nell’ordine di 10 miliardesimi di secondo.
Memoria principale o di sistema. Costituisce la memoria fisica che il microprocessore è in grado di vedere; è costituita da moduli DIMM, SIMM, DDR o RAMBUS alloggiati in appositi slot (zoccoli di espansione di memoria).
Il sistema riconosce automaticamente all’avvio la quantità di memoria presente.
I moduli DIMM sono costituiti da circuiti stampati con diversi integrati di memoria.
Un modulo SIMM può avere una capacità da 8 a 32 M Byte, mentre i moduli DIMM arrivano a capacità superiori (per esempio 512 MByte).
I moduli DDR e le memorie RAM-BUS, anch’essi di grande capacità, lavorano con prestazioni superiori rispetto alle memorie DIMM.
Ogni scheda madre può essere equipaggiata con diversi moduli di memoria a seconda delle esigenze. Attualmente si richiedono almeno 4 GByte di RAM.
Un particolare circuito del chipset, il controller della memoria, permette di interfacciare il microprocessore ai circuiti di memoria (infatti lavorano a velocità diverse). Un altro circuito, il controller DMA (Direct Memory Access) consente l’accesso diretto alla memoria: quando si rende necessario trasferire pacchetti o blocchi contigui di dati tra diverse zone della memoria o tra dispositivi di I/O e memoria o viceversa, non viene coinvolto il microprocessore, che continua ad eseguire altri compiti, senza occuparsi di questo tipo di operazioni.

Memoria tampone. È un circuito che memorizza anche a PC spento informazioni relative alla configurazione hardware corrente del PC stesso, in modo che alla successiva accensione il microprocessore possa accedere velocemente a queste informazioni per rilevare nuovi componenti.
PIC: controllore programmabile delle interruzioni. Il PIC (Programmable Interrupt Controller) è un circuito che gestisce gli Interrupt: quando un dispositivo (tastiera, timer, ecc.) necessita di un intervento del microprocessore, questo deve interrompere il normale corso delle sue operazioni per gestire appunto queste interruzioni. Il PIC gestisce gli Interrupt, assegnando diversi livelli di priorità: ogni periferica ha un ingresso dedicato e un certo livello di priorità; gli ingressi sono chiamati IRQn: la porta parallela costituisce IRQ7 con priorità 0 (bassa), il timer – IRQ0, ha priorità 15, la più alta.
Orologio di sistema. Circuito che fornisce data e ora; ha una batteria che ne garantisce il funzionamento anche a PC spento.
Slot ISA. Sono connettori (ormai praticamente scomparsi) per schede di espansione conformi allo standard ISA: la comunicazione avviene tramite trasferimento in memoria a 8 o 16 bit, con velocità massima di trasferimento di 8 MHz; lo slot è diviso in due zone, una con 62 contatti per la comunicazione a 8 bit, l’altra con 18 contatti per la comunicazione a 16 bit. I segnali elettrici sono suddivisi in segnali dedicati all’indirizzamento, alla gestione degli Interrupt, al controllo DMA e all’alimentazione.
Slot PCI. Sono connettori più piccoli degli ISA, consentono l’alloggiamento di dispositivi conformi allo standard PCI, lavorano con trasferimento fino a 32 bit e sono sincroni (con un segnale di clock a 33 MHz) e consentono velocità massima di trasferimento di 133 MByte/s.
Slot AGP. Ha un numero maggiore di contatti rispetto al PCI e viene utilizzato per alloggiare singole schede di accelerazione grafica. Lavora con gruppi di 32 bit a 66 MHz, consente un trasferimento massimo fino a 532 MByte/s (necessita di opportuno controller).
Slot PCI Express (Peripheral Component Interconnect Express), ufficialmente abbreviato in PCIe, è uno standard di interfaccia d’espansione a bus seriale per computer, progettato per sostituire i vecchi standard PCI e AGP.
È basato su un trasferimento dei dati seriale, a differenza di quello parallelo del PCI, che semplifica il layout del circuito stampato delle schede madri ed è costituito da una serie di canali. Ciò consente una notevole modularità, in quanto possono essere aggregati più canali per aumentare la banda passante disponibile o per supportare particolari configurazioni, come ad esempio l’utilizzo di due o più schede video; inoltre la larghezza di banda di ciascun canale è indipendente da quella degli altri.
PCI Express è stato progettato per sostenere il sempre maggior fabbisogno energetico delle schede video di ultima generazione. Infatti, a differenza dello slot AGP, in grado di erogare un massimo di 50 Watt, la revisione 1.x di PCI-ex supporta carichi fino a 75 W, permettendo così di eliminare il connettore MOLEX dalle schede di fascia media e medio-bassa anche se è rimasto per tutte le altre.
Queste porte prodotte dalla Intel e che hanno debuttato nel 2004, presentano un’ampiezza di banda del Bus che raggiunge i 15,754 GB/s.

Connettore per la tastiera. Consente la comunicazione seriale con la tastiera. Utilizza un apposito controller.
Controller tastiera. È il circuito che esegue un programma per identificare i tasti premuti sulla tastiera.
Connettori IEEE 1394 Firewire. Consentono collegamenti seriali ad alta velocità di dispositivi esterni; è uno standard recente.
Connettori per comandi e segnalazioni. Sono i connettori per i led di indicazione, per l’interruttore di accensione e il pulsante di reset presenti sul pannello frontale del case.
Connettori IDE primario e secondario. Consentono il collegamento con dispositivi di memoria di massa con standard ATA o ATAPI (hard disk o CD Rom IDE). Hanno 40/80 connessioni elettriche; consentono ciascuno il collegamento di 2 dispositivi (uno master e l’altro slave).
Se è presente un controller apposito che rispetta lo standard UltraDMA/33 si può arrivare ad una velocità di trasferimento fino a 66 MByte/s.
Un connettore a parte è riservato alla connessione con il lettore floppy.
Il controllo dei dispositivi connessi a questi connettori è demandato a circuiti interni al chipset piuttosto che a controller dedicati.
Connettori SCSI. Sono connettori a 50 piedini che consentono il collegamento di dispositivi di memoria di massa conformi a questo standard. Si può arrivare a collegare fino a 7 dispositivi grazie ad un apposito controller (più veloce rispetto al controller IDE). 
Porte seriali e loro connettori. Le schede madri di recente costruzione incorporano i connettori per le porte seriali con opportuni controller per le funzioni di comunicazione seriali (standard UART: Universal Asinchronous Receiver Transmitter), che in pratica effettuano conversioni parallelo-seriale e viceversa; i connettori si interfacciano con l’esterno con prese DIN9 o DIN25; è possibile trovare delle schede con porte seriali sugli slot ISA.
Le porte seriali sono identificate con le sigle COM 1, COM2, ecc. e permettono il trasferimento di dati a una velocità massima di 115,2 kbaud; lo standard utilizzato per la comunicazione seriale è il RS232.
Porte parallele e loro connettori. Attraverso questa porta, la trasmissione dati avviene in forma parallela, senza loro conversone in forma seriale; viene utilizzato un circuito interno al chipset per la supervisione del trasferimento dati. Consentono il collegamento con dispositivi quali scanner e stampanti mediante porte DIN25 femmine; le porte parallele sono identificate con le sigle LPT1, LPT2, ecc.
Porta seriale USB. Sui connettori USB sono presenti, oltre ai segnali per la comunicazione seriale USB, segnali per fornire alimentazione alle periferiche collegate (casse, modem, mouse, ecc.). Consente di collegare dispositivi con interfaccia USB; su un unico cavo possono essere collegate più periferiche. Lo standard USB 1.1 consente velocità fino a 12 Mbit/s; lo standard USB 2.0 velocità 40 volte superiori allo standard precedente, cioè fino a 480 Mbit/s; lo standard USB 3.1 consente velocità fino a 10Gbit/s.
Connettore porta giochi. Consente il collegamento con il joystick.
Connettore alimentatore. Consente di collegare l’alimentazione alla scheda madre.
Scheda video – scheda audio integrate. Contengono tutti i chip che costituiscono la scheda video o la scheda audio.
Schede di espansione. Le schede di espansione sono circuiti stampati con un certo numero di circuiti integrati; su un Iato presentano un connettore che dovrà essere inserito in uno degli slot della mother board e su un altro lato possono avere delle prese per la connessione con dispositivi esterni. In generale le schede di espansione svolgono funzioni non implementate dalla scheda madre e permettono di estendere le potenzialità della stessa.
Tra le schede che implementano le funzioni standard abbiamo:
- la scheda video, per l’interfacciamento tra mother board e monitor; può avere integrato un acceleratore grafico; oggi il sistema video più diffuso è il SuperVGA: lo schermo viene diviso in 1024 colonne per 768 righe per un totale di circa 800.000 pixel; inoltre un monitor può essere interlacciato e non interfacciato (nel primo caso per completare un’immagine bisogna fare due passaggi, mentre nel secondo basta una volta sola, evitando fenomeni di sfarfallio). Infine possiamo utilizzare un numero variabile di colori: a seconda dei bit usati per definire il colore di ogni pixel, potremo utilizzare dai 16 colori ai 16,8 milioni di colori;
- le schede per le porte seriali e parallele, che permettono connessioni con dispositivi esterni (stampanti, scanner, modem, ecc.)
Tra le schede non standard abbiamo, ad esempio, schede per l’accelerazione grafica, schede per l’interfacciamento verso dispositivi industriali (motori, PLC…), schede per l’acquisizione video, modem interni.
Abbiamo ancora schede con funzionalità particolari:
– schede per l’elaborazione di segnali;
– schede per l’acquisizione dati;
– schede di rete, per la connessione del PC ad una rete di computer;
– e molte altre.
Le schede si possono classificare quindi a seconda della loro funzionalità, oppure possono essere di input, di output o di input/output; inoltre possiamo avere schede con connettore ISA, PCI.
Le schede PCI permettono trasferimento a velocità maggiori ma in generale hanno costi superiori rispetto alle schede ISA.
Memorie di massa e supporti ottici
Hard disk (HDD)
- Capacità, data rate, tempo di accesso (seek + latenza).
- Struttura: piatti, testine, bracci; superfici divise in tracce e settori.
efdfdf
.jpg)
Struttura di un disco rigido
Uno o più dischi sono connessi fra loro da un perno rotante (mosso da un motore ad alta precisione – passo passo).
Ogni disco è registrabile su entrambe le facce. Per ogni superficie vi è una testina in grado di leggere/scrivere su di essa.
Tutte le testine sono connesse fra loro da un braccio mobile.
Le superfici dei dischi
Ogni superficie registrabile di un disco rigido è suddivisa in tracce, ovvero, in circonferenze concentriche:

Le tracce
Ogni traccia di una superficie registrabile di un disco rigido è ulteriormente suddivisa in porzioni chiamate settori.
Un settore (tipicamente della dimensione in grado di contenere 256-512 byte) è la porzione di superficie più piccola che una testina può leggere/scrivere con un’unica operazione.
La formattazione di un disco segna fisicamente l’inizio e la fine di ogni settore in modo che le testine li possano localizzare.
Cilindri di un disco rigido
Le tracce corrispondenti (ovvero, aventi la stessa distanza dal perno) sulle diverse superfici registrabili di un disco rigido costituiscono un cilindro.
Quindi per la specifica di un particolare settore, abbiamo bisogno di tre parametri:
cilindro su cui è posizionato il settore,
superficie del cilindro su cui è posizionato il settore,
settore all’interno della traccia.
Lettura/ scrittura su disco rigido
Ogni operazione di lettura/scrittura su disco rigido è composta dai seguenti passi:
spostamento delle testine sul cilindro corrispondente (il tempo impiegato è noto come seek time),
attivazione della testina della superficie corretta (quella su cui si trova il settore),
rotazione del disco finché il settore corretto non si trovi sotto la testina (il tempo impiegato è noto come latency time),
trasferimento dei dati dal disco (lettura) oppure verso il disco (scrittura).
Tempo di accesso = seek time + latency time.
CD/DVD
Lettore CD Rom
È un dispositivo presente ormai in tutti i PC; permette la lettura dei CD Rom e dei normali CD audio. I CD hanno una capacità di memorizzazione elevata, molto maggiore di un semplice floppy disk; vista la dimensione dei programmi che vengono oggi comunemente utilizzati, i CD sono diventati il supporto standard per il trasporto delle informazioni.
Masterizzatori
Dispositivi che permettono la scrittura e/o la riscrittura di informazioni su CD. Si dividono in masterizzatori che permettono la semplice scrittura di informazioni e in masterizzatori che permettono anche la riscrittura delle stesse (utilizzando particolari supporti). Permettono di memorizzare fino a 700 MB di informazioni su un singolo disco.
Lettori DVD Rom
Sono i lettori dei recenti dischi DVD, utilizzati per memorizzare grandi quantità di dati come ad esempio interi film.
Masterizzatori DVD
Dispositivi che permettono la scrittura di dischi DVD, che hanno una capacità di memorizzazione che può arrivare ad 8 GB su singolo supporto.
Il CD è un disco dello spessore di 1,2 mm composto dai seguenti strati:
- uno strato di policarbonato trasparente su cui, lungo una spirale che parte dal centro del disco, vi è una successione di zone piatte e di rientranze (bumps) incise con un procedimento di stampatura;
- un foglio sottile di alluminio che riflette la luce, uno strato di materiale acrilico di protezione, l’etichetta
I supporti ottici usano un laser che legge rientranze e zone piatte sulla spirale del disco.

CD: principio di funzionamento
Un raggio laser viene proiettato verso lo strato di policarbonato (dal lato opposto all’etichetta) seguendo la spirale.
Viene misurata la quantità di luce riflessa che varia a seconda se viene colpita una rientranza (interpretata come 0) oppure una zona piatta (interpretata come 1).
Spesso, per ragioni di affidabilità, un 1 viene codificato come il passaggio da una rientranza ad una zona piatta e lo 0 come la mancanza di tale passaggio.

CD-ROM
I Compact Disk realizzati con il procedimento di stampatura descritto vengono detti CD-ROM (Compact Disk – Read Only Memory).
Infatti essi, una volta usciti dalla fabbrica, non sono più modificabili e possono soltanto essere solamente letti.
CD-R
I CD-R (Compact Disk – Recordable) sono dei CD scrivibili tramite i cosiddetti “masterizzatori”, che sfruttano un procedimento chimico.
In un CD-R fra lo strato di alluminio e il policarbonato vi è uno strato composto da un materiale fotosensibile (dye).
Inizialmente lo strato di materiale fotosensibile è trasparente e quindi la luce del laser lo attraversa e viene riflessa dallo strato di alluminio.
Se un laser di una certa intensità e frequenza colpisce lo strato fotosensibile, la porzione colpita si annerisce permanentemente, divenendo opaca (burned) e non lasciando più passare la luce. In questo modo le zone annerite codificano degli 0 e le zone rimaste trasparenti degli 1.
I masterizzatori hanno due laser:
uno di bassa potenza per leggere (senza alterare lo strato fotosensibile),
uno di maggiore potenza per “bruciare” lo strato fotosensibile.
Il procedimento di masterizzazione è irreversibile: una volta annerita una zona non può tornare allo stato trasparente iniziale.
- CD-ROM: sola lettura.
- CD-R: scrivibile una volta.
- CD-RW: riscrivibile più volte.
- DVD-ROM: maggiore densità, più strati, fino a 17 GB.

Porte, connettori e periferiche
Video e audio
- Monitor: dimensione, risoluzione, refresh, dot pitch.
- Scheda audio: acquisizione, campionamento, MIDI.
Stampanti
- Impatto (storiche: aghi, moduli continui).
- Getto di inchiostro (colori, versatili).
- Laser (rapide, testo nitido).
- Plotter (grande formato).
Dispositivi di input
- Tastiera (102 tasti standard), mouse, trackball, touchpad.
- Scanner, penna ottica, joystick.



Porte e connettori
- PS/2, LPT, porta giochi – storiche;
- USB (1.1 → 2.0 → 3.x/USB-C);
- IEEE-1394 FireWire – oggi raro;
- SATA, NVMe su PCIe per SSD.