Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Il Personal Computer
Rev. Digitale 1.0 del 01/09/2016
Introduzione ……………………………………………………..………... 2
Breve storia dei Sistemi di Elaborazione ……………….………………….
2
Breve storia dei principali Sistemi Operativi …………..………………….
4
Compilazione e lancio di un programma …………………………………... 6
Architettura del Sistema Calcolatore ………………………….……………. 6
Sequenza di Avvio del Personal Computer ………………………………... 10
Il microprocessore 8086 …..…………………………….………………...
Registri …………………………………….………………………………
Ciclo da caricamento ed esecuzione delle istruzioni ………………………
La segmentazione della memoria ….………………………………………
Piedinatura del processore 8086 ……….…………………………….……...
Il Ciclo macchina …………………………………………………………...
Processori della famiglia Intel ……………………………………………...
Evoluzione dei processori Intel ……………………………………………...
11
11
12
13
15
18
19
20
Componenti di un Personal Computer …….………….………………...
Main Board ………………..…….………………….…….…………..…….
Memoria Centrale ………………….……………….…….…………..…….
Memorie Persistenti …………………….…………………………………..
I Bus Interni: ISA, PCI, PCI Express …………..………..…………………..
I Bus Esterni: IDE/ATA, SCSI, Serial ATA, USB ………………………….
Memorie di Massa ….…………………..………………………………...…
PenDrive ……………………………….………………………..…………..
CD …………………………………….………………………..…………..
DVD …….…………………………..……….……………………………..
SD …………………………………….………………………..…………..
Schede e Porte di Comunicazione ………………..…………………….…..
Periferiche Esterne: Tastiera, Mouse, Scanner, Monitor e Stampanti .……
28
28
30
33
34
36
40
43
43
46
47
49
52
Gestione delle Periferiche di un Personal Computer …….…….………...
Interfacciamento Hardware delle periferiche ……………..………………..
Tecniche di Comunicazione tra CPU e Periferica ………..………………..
Classificazione delle interruzioni ………..………………………………...
55
55
57
58
pag 1
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Breve Storia dei Sistemi di elaborazione
1640
Blaise Pascal, scienziato e filosofo francese, inventa e produce una macchina di calcolo, interamente
meccanica, detta pascalina, in grado di eseguire addizioni, sottrazioni, parziali moltiplicazioni e divisioni. E‟
basata su una sequenza di ruote dentate che effettuano il riporto delle addizioni ed il prestito delle sottrazioni.
1930 - 1940
Nascono i primi calcolatori elettromeccanici, in grado di eseguire calcoli logaritmici, esponenziali,
trigonometrici, leggendo i dati di input da apposite “schede perforate”. La scelta dell‟operazione avviene
mediante interruttori azionati manualmente. Durante la seconda guerra mondiale viene prodotta la cosiddetta
macchina di Touring mirata a decodificare i messaggi cifrati tedeschi prodotto tramite la macchina
ENIGMA. Primo esempio di sistema di elaborazione dati, però non programmabile.
1937
Nell‟ambito della ricerca per le trasmissioni radio, nascono le valvole termoioniche (triodi), che consentono
di eliminare definitivamente tutte le parti meccaniche, con notevolissimo aumento delle velocità
1943
Su progetto dello scienziato ungherese John Von Neumann, viene realizzato a Philadelphia il primo
esempio di sistema di elaborazione programmabile. Scopo principale del progetto era la realizzazione di
calcoli per armamenti sempre più sofisticati (studio di traiettorie, bomba all‟idrogeno).
Macchina interamente realizzata mediante valvole termoioniche (triodi). Due innovazioni fondamentali:


Primo esempio di macchina programmabile, in grado cioè di eseguire programmi differenti scritti
dall‟utente e codificato su apposite schede perforate. Il programmatore scrive il programma direttamente
in codice binario creando una apposita scheda perforata costituita da una sequenza di istruzioni da 8 bit
ciascuna. Un apposito pulsante consente di leggere la scheda perforata e caricare il programma
all‟interno di una memoria centrale . La cpu provvede ad eseguire il programma “leggendo” una
istruzione alla volta e provvedendo alla sua esecuzione
Per la prima volta si utilizza nella pratica la logica binaria.
- Memoria Centrale e CPU sono interamente realizzate mediante valvole termoioniche.
- Periferiche di input, di output e di memoria di massa sono tutte realizzate tramite schede perforate.
Le istruzioni hanno la possibilità di operare su dati memorizzati su schede perforate differenti rispetto alla
scheda in cui si trova il programma, per cui lo stesso programma può essere eseguito più volte su dati
differenti. Nasce il concetto di macchina programmabile, con piena indipendenza tra programma e dati.
Nasce anche il concetto di diagramma di flusso per la stesura di un programma.
Sulla base della macchina di Von Neumann, nel 1953 l‟IBM realizza il primo elaboratore commerciale.
Nascono così i primi computer della prima generazione, completamente realizzati tramite valvole
termoioniche.
L‟architettura della macchina di Von Neumann, seppur infinitamente potenziata dal punto di vista
tecnologico, è rimasta sostanzialmente la stessa fino ai calcolatori moderni.
1947
Bardeen, Brattain, Shockey, (premi nobel) realizzano il primo transistor allo stato solido, che ha stessa
funzione della valvola termoionica ma occupa uno spazio infinitamente inferiore ed è molto più veloce.
Anni 60 Computer della seconda generazione realizzati a transistor (IBM 1401). Dimensioni molti inferiori
rispetto alla macchina di Von Neumann, ma molto maggiori rispetto alle macchine attuali.
 Nascono i primi supporti magnetici (floppy) di memorizzazione con apposite testine di lettura.
 Nascono i primi linguaggi Assembly che consentono la realizzazione dei primi Sistemi Operativi.
 Oltre all‟assembly nascono anche i primi linguaggi di programmazione avanzati (linguaggi di seconda
generazione) quali Fortran = FORmula TRANstation (1957) per applicazioni scientifiche ed il Cobol =
Common Business Oriented Language (1960) per applicazioni gestionali.
1965
Nascono i circuiti integrati, che raggruppano al loro interno migliaia di transitor.
pag 2
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Anni 70 Computer della terza generazione, sempre meno ingombranti, realizzati mediante circuiti integrati
(micro-chip. Chip = scheggia). Nascono anche i primi Hard Disk. Gli elaboratori sono tipicamente
mainframe ad alta velocità ed elevate capacità di memoria, in grado di fornire servizi interattivi a centinaia di
terminali privi di capacità di elaborazione autonoma. Elaboratori tipici IBM 360 e VAX della Digital. Il loro
costo arriva a centinaia di migliaia di dollari. Utilizzati nei sistemi di archiviazione statali e delle banche.
1968 nasce presso l'Università di Dartmouthil linguaggio BASIC (Beginners‟ All purpose Symbolic Instruction
Code) più semplice e flessibile di Fortran e Cobol. Da questo Basic deriverà il Microsoft Basic (1975)
1969 Ken Thompson e Dennis Ritchie scrivono la pria versione di Unix (che significa semplicemente
unico, ad evidenziare la semplicità del sistema), interamente scritto in Assembler.
1971 DEC (Digital Equipment Corporation), fondata nel 1957 da Kenneth Olsen, realizza il PDP-11,
primo vero esempio di mini-calcolatore basato su circuiti integrati con dimensioni e costi decisamente
inferiori al mainframe. Il computer diventa accessibile anche ad organizzazioni più piccole.
1974 Ken Thompson e Dennis Ritchie creano un nuovo linguaggio detto C Language con lo scopo di
utilizzarlo per una nuova versione del SO Unix. Unix viene installato prima su PDP7 poi su PDP 11.
1977 Steve Jobs (oggi Apple) e Stephan Wozniak realizzano il primo prototipo di Personal Computer,
denominato APPLE 1, basato su tecnologia VLSI (Very Large Scale Integration) e su processore Intel 8080.
Ad APPLE1 fa seguito APPLE 2, dotato di tastiera, video, memoria di massa (costituita da un floppy disk da
5 ¼ pollici) direttamente programmabile in linguaggio Basic. Nasce l‟era dei Personal Computer.
1979 Intel produce i microprocessori 8086 e 8088. 8086 è un processore con struttura a 16 bit (bus e registri interni),
in grado di indirizzare 220 postazioni di memoria. 8088 è una versione a 8 bit con la stessa architettura e lo
stesso set di istruzioni, ma con bus dati a 8 bit.
1981 Il 12 agosto 1981 IBM realizza il primo Personal Computer Desktop (così piccolo da poter stare su una
scrivania), basato su microprocessore Intel 8088 poi 8086,. Computer della Quarta Generazione. Le
specifiche del Personal Computer IBM vengono rese pubbliche. Sistema aperto su cui possono essere
aggiunte svariate schede elettroniche accessorie realizzate da produttori differenti. SO : CP/M (Digital)
Negli stessi anni una piccola software house che nel 1979 contava 3 dipendenti e 16.000 $ di fatturato, fondata da
Bill Gates e Paul Allen e denominata Micrsoft inc. intuisce la bontà del progetto IBM. Grazie al senso degli
affari di Bill Gates e alle abilità tecniche di Paul Allen, Microsoft acquista le licenze di un piccolo SO
denominato QDOS molto più semplice di Unix (e quindi più veloce), lo modifica facendolo diventare MSDOS (MicroSoft - Disk Operating System) e stipula con IBM un contratto secondo il quale IBM dovrà
riconoscere a Microsoft una licenza sulla vendita di ogni PC contenente MS-DOS. Il contratto viene poi esteso
a tutti gli altri venditori di PC.
Il PC IBM utilizza un Hard Disk da 20 MBytes ed un lettore di Floppy Disk da 5° ¼. Nascono molti nuovi
costruttori di parti di PC o di PC completi, con la caduta dei prezzi ed una enorme diffusione del PC IBM
compatibile che diventa strumento di massa, tale da produrre una vera rivoluzione culturale in tutte le
società avanzate. Oggi molte aziende producono PC, ed il temine IBM compatibile è obsoleto.
1983
Nasce TCP / IP destinato a diventare il protocollo base della rete Internet
1984
Apple presenta Macintosh, il primo Personal Computer con interfaccia interamente grafica.
1985
Richard Stallman presenta il progetto GNU con l‟obiettivo di sviluppare un SO Unix-like per PC
completamente libero (open-source) in grado di ospitare applicazioni a loro volta open source.
1991
Linus Torvalds aderisce al progetto GNU e scrive il primo kernel di Linux, versione ridotta di Unix per
Personal Computer con processore 80386 o superiori. Problemi legali con Novell divenuta proprietaria del
marchio Unix.
1991
Nasce HTTP, protocollo per l‟accesso alle pagine web. Data di nascita di Internet.
pag 3
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Evoluzione dei processori Intel (Anno / Processore)
1981
1983
1986
1990
1994
1997
1999
8086
80286
80386
80486
Pentium
Pentium 2
Pentium 3
2001
2003
2005
2006
2007
2009
Pentium 4
Pentium M (Piattaforma Centrino per Notebook)
Pentium D (PC Desktop)
Core Duo (Notebook e Desktop)
Core 2 Duo (Notebook e Desktop)
i3 i5 i7
Breve storia dei principali Sistemi Operativi
Il SO è il software che controlla l’hardware della macchina e gestisce l’utilizzo del software applicativo.
Senza il SO la macchina sarebbe un insieme di rame e silicio inutilizzabili. La prima cosa da installare sul Disco
Fisso di una macchina è il SO. I principali SO, riportati in ordine cronologico di comparsa, sono i seguenti:
Unix
MS DOS
MacOs
Windows
Linux
Sistema operativo dei computer Macintosh, di tipo Unix Like, cioè derivato da Unix
Unix
Nasce agli inizi degli anni 70 nei laboratori AT&T (telecomunicazioni USA) la quale ne consentì la diffusione
gratuita (anche dei sorgenti) fino al 1984 quando, con la scissione di AT&T in sette diverse società, Unix System III
(in realtà alla release 7) divenne a pagamento. Alcune università continuarono a sviluppare loro versioni di Unix.
Fu appunto da questa derivazione che Bill Joy creò SunOS (ora Solaris e OpenSolaris) e fondò Sun Microsystems.
Primo SO modulare, multiutente e multitasking. Oggi utilizzato soprattutto nelle workstation ad elevate prestazioni
msDOS e Windows
MS-DOS è un sistema operativo a linea di comando, nel senso che i comandi devono essere digitati dall‟utente in
corrispondenza di un apposito PROMPT. DOS 1.0 gestisce soltanto Floppy Disk da 5 1/4 , mentre DOS 2.0 (1983
computer IBM XT basato su 8086) per la prima volta gestisce anche un disco fisso.
A metà degli anni 80 un nuovo sistema operativo, MacOs, installato sui computer Macintosh della APPLE,
comincia ad assumere una certa diffusione tanto da diventare reale antagonista di MS-DOS. I sistemi Macintosh
presentano per la prima volta una interessante interfaccia grafica, in cui l‟utente interagisce direttamente con il
mouse senza dover digitare manualmente ogni comando.
Microsoft intuisce la bontà del nuovo sistema e crea una applicazione simile denominata Windows che arriva fino
alla versione 3.11. Queste prime versioni sono a 16 bit,installate su sistema operativo MS-DOS 6.22 (ultima versione
di MS-DOS), utilizzano un formato eseguibile proprio diverso da quello di ms-dos, driver specifici per la gestione
delle periferiche e supportano l‟esecuzione multitask (preemptive solo da Windows 3 su Processore Intel 80386).
Nel 1995 Microsoft decide di mettere insieme ms-dos e windows creando un nuovo sistema operativo visuale a 32
bit denominato Windows 95 (Windows 2) con file system di tipo FAT32 e gestione dei long file names.
La compatibilità con i vecchi programmi DOS risulta abbastanza debole. Con WIN95 2nd edition viene aggiunto un
applicativo denominato PROMPT di MSDOS che consente di lanciare in esecuzione i vecchi eseguibili DOS come
se si stesse utilizzando un computer DOS e al contempo inviare i comandi DOS al Sistema Operativo.
Windows 98 (Windows 3) è molto più stabile di Windows 95, introduce il supporto AGP e USB ed il protocollo ICS
per la condivisione di Internet
Windows ME (Millenium) (Windows 4 – anno 2000) è di nuovo poco affidabile. Viene subito tolto dal mercato.
A fine 2001 nasce Windows XP (Windows 5) con cui viene introdotto NTFS e si ritorna alla stabilità di Wndows 98
pag 4
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Nella primavera del 2007 viene presentato Windows Vista (Windows 6), dotato di una nuova interfaccia grafica
user friendly e mirato ad ottimizzare l‟utilizzo dei nuovi processori Intel DUAL CORE. Versione 64 bit (calcoli a 64)
Nell‟autunno 2009 esce Windows 7, che snellisce l‟interfaccia grafica potenziando la shell.
Nell‟autunno 2012 arriva Windows 8,.
Linux ed il progetto GNU - Gnu is Not Unix
Nel 1985 Richard Stallman presenta il progetto GNU con l‟obiettivo di sviluppare un ambiente Unix-like per PC
open source e completamente libero su cui poter eseguire applicazioni anch‟esse open-source.
Per libero si intende (manifesto GNU) la libertà di :
 eseguire il programma per qualsiasi scopo
 accedere ai sorgenti e poterli studiare
 modificare i sorgenti per migliorne le caratteristiche
Concetto di free software
 ridistribuire le copie modificate
GNU GPL (General Public License) documento che specifica le condizioni a cui può essere ridistribuito il software
I redistributori non possono porre alcuna restrizione nel momento in cui modificano e/o ridistribuiscono il
software. Ogni copia deve essere sempre free software. Il distributore può però farsi pagare l‟installazione e/o la
configurazione delle macchine, la documentazione, il supporto tecnico (call senter), eventuali pacchetti aggiuntivi.
Il nome LINUX deriva dal finlandese Linus Torvalds, colui che, nel 1991, ha maggiormente contribuito alla
scrittura del kernel. La x è un richiamo al genitore Unix. Torvalds si pose come obiettivo la realizzazione di un
sistema operativo simile a Unix che funzionasse su computer Intel 80386, ed iniziò a sviluppare un kernel chiamato
Linux, inizialmente ispirato a Minix di Andrew Tanenbaum, primo tentativo di realizzazione,verso la metà degli anni
80, di un sistema operativo Unix like in grado di funzione sui nascenti Personal Computer IBM 8086.
Il kernel Linux fu poi unito al Sistema GNU creando GNU/Linux. Il logo ufficiale è costituito dal pinguino TUX
(Torvalds UniX). Sistema aperto, in cui ognuno può aggiungere un suo contributo. Linux è oggi supportato anche da
grandi industrie come IBM e Hewlett-Packard che lo hanno reso un degno antagonista di Windows.
Si contano ad oggi più di 40 distribuzioni differenti, fra cui Red Hat (di Alan Cox) e UBUNTU (del giovane
sudafricano Mark Shuttleworth) sono fra le più conosciute. UBUNTU è un'espressione in lingua bantù che indica
"benevolenza verso il prossimo". La distribuzione di Ubuntu è arrivata oggi (settembre 2012) alla release 12.04
Esistono anche Live CD che consentono di avviare il SO direttamente da CD senza doverlo installare sul disco fisso.
Copyright e Licenze d’uso
Anche il software, come i film e i CD musicali, sono considerati Opere dell‟Ingegno e dunque legalmente protetti dal
Diritto d‟Autore (copyright). Il software coperto da diritto d‟autore contiene il simbolo ©, il nome del proprietario
dei diritti e l‟anno di pubblicazione. Questo significa che chi acquista un software (o un CD musicale o video) stipula
formalmente un contratto di Licenza d’uso singola o multipla che consente l‟installazione del sw su un singolo PC
ed una eventuale copia di sicurezza. Ulteriori installazioni o diffusioni sono perseguibili penalmente con pene che
vanno fino a 3 anni di carcere !! (Legge 248 del 2000). L‟installazione del sw richiede in genere una esplicita
accettazione delle condizioni relative alla Licenza d‟uso. Le stesse pene valgono per chi condivide file musicali su
Internet ma anche per chi li scarica (reato di ricettazione).
Licenze particolari
prodotti freeware : software compilati distribuiti con licenza d‟uso gratuito ma senza codice sorgente. Ad
esempio : browser, acrobat reader, etc. (ware significa merce)
prodotti shareware : software dotati di licenza d‟uso gratuita per un certo periodo di prova (es 2 mesi) dopo di
che, se si continua nell‟utilizzo, occorre procedere al pagamento. Si tratta in genere di versioni simili agli originali
ma non identici e che in genere continuano a funzionare anche dopo il periodo di prova, però il loro uso è
comunque NON LECITO. (Paint Shop, Winzip, Nero)
prodotti evaluation software identici agli originali, sempre con durata temporale limitata (cuteFTP, McAfee).
In ambiente Linux con il termine restricter si intende un driver free ma non open source (cioè freeware)
Con il termine Patch (pezza) si indica un aggiornamento gratuito di un Sistema Operativo o di un certo applicativo.
pag 5
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Compilazione e lancio di un programma
Mentre ai tempi di Von Neumann i programmi venivano scritti direttamente in binario e memorizzati su schede
perforate, oggi, grazie ai linguaggi di programmazione evoluti, i programmi vengono scritti in forma testuale e salvati
su Hard Disk all‟interno di appositi file di testo leggibili con semplici editor di testo come Blocco Note.
Compilatore
Il compilatore è un particolare programma che traduce il file testuale in linguaggio macchina, producendo un file
binario con estensione .OBJ che contiene il codice binario corrispondente al programma originale
Assembler e Assemblatore
L‟assembler è un particolare linguaggio di programmazione le cui istruzioni testuali sono in corrispondenza 1 : 1 con
le istruzioni binarie riconosciute dalla CPU. Ad ogni istruzione Assembler corrisponde una unica istruzione binaria.
E‟ una semplice facilitazione per non scrivere direttamente in binario. L’assemblatore è il programma che converte
un file assembly in file binario. E‟ molto più semplice del compilatore, perché deve semplicemente eseguire una
traduzione univoca. Oltre al file OBJ l‟assemblatore produce in genere anche un interessante file LST contenente
l‟informazione binaria espressa in formato esadecimale con a fianco l‟istruzione testuale assembly.
Linker
Molto spesso una applicazione è costituita da più file sorgenti, ognuno dei quali contiene specifiche procedure, scritte
spesso da persone diverse all‟interno di un team di lavoro. Uno di questi file può far riferimento a funzioni o simboli
definiti all‟interno di un altro file. Il compilatore, che traduce ogni singolo file in binario, deve prevedere un
meccanismo che consenta di gestire queste situazioni senza generare errori.
A tal fine i linguaggi di programmazione prevedono l‟utilizzo di pseudoistruzioni che avvisano il compilatore su
simboli e procedure che si trovano in altri file. In corrispondenza di queste pseudoistruzioni, il compilatore crea delle
„note‟ all‟interno del file binario, che dunque non è più un file eseguibile vero e proprio, ma un file detto file oggetto,
sempre binario, ma contenente delle note che verranno interpretato da un programma detto linker, che provvede ad
integrare i vari file oggetto in un unico eseguibile risolvendo tutte le situazioni lasciate in sospeso dal compilatore.
Loader o Launcher
In realtà il codice macchina generato dal linker è un codice rilocabile, cioè che potrà essere caricato in memoria
centrale a partire da un qualunque indirizzo. Ciò è possibile mediante l‟utilizzo dei Segment Register il cui contenuto
viene assegnato dal loader durante il caricamento in memoria dell‟applicazione. Il loader è un componente del
sistema operativo che viene automaticamente richiamato nel momento in cui l‟utente digita sulla riga di comando il
nome di un file eseguibile (o fa doppio click sulla sua icona). Il loader provvede a trasferire il codice dell‟eseguibile
all‟interno della memoria centrale, provvedendo ad assegnare un valore ai vari segmenti definiti dal linker.
Architettura e ciclo di funzionamento della macchina di Von Neumann
La macchina di Von Neumann, come del resto le macchine attuali, è strutturata mediante una Architettura a Bus,
cioè un insieme di piste che collegano tra di loro tutti i principali dispositivi della macchina, vale a dire:
 La Memoria Centrale MC, costituita da una sequenza di bytes, cioè un insieme di otto celle in grado di
memorizzare un bit ciascuna. All‟interno della memoria centrale viene caricato il programma da eseguire più
i dati che il programma stesso deve utilizzare.
 La Unità di Elaborazione detta CPU = Central Processing Unit, che si occupa di scandire una alla volta le
istruzioni presenti all‟interno della memoria centrale, caricarle nei propri registri ed eseguirle.
 Dispositivi di input (schede perforate, oggi tastiera)
 Dispositivi di output (schede perforate, oggi video)
 Dispositivi di memoria di massa (schede perforate, poi Floppy Disk, oggi Hard Disk)
Le periferiche sono controllate mediante apposito Controller che funge da interfaccia tra i bus e la singola periferica.
pag 6
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
CPU Central Processing Unit (Unità Centrale di Processo).
Cuore del sistema di elaborazione. Compito della CPU è quello di “leggere” sequenzialmente dalla memoria
centrale (mediante i bus) le istruzioni che compongono il programma, e “provvedere” alla loro esecuzione.
Caricamento ed esecuzione di un programma
Nelle macchine attuali i programmi sono memorizzati in forma binaria all‟interno dell‟HD, mentre nella macchina di
Von Neumann erano memorizzati direttamente in forma binaria all‟interno di schede perforate. In entrambi i caso
però, per poter essere eseguito, il programma deve prima essere caricato in Memoria Centrale.
Nella macchine attuali per caricare un programma in Memoria Centrale è sufficiente fare doppio click sull‟icona
dell‟applicazione desiderata. Nella macchina di Von Neumann un apposito pulsante forzava la lettura della scheda
perforata ed il suo caricamento in memoria.
Una volta caricato il programma in Memoria Centrale, la CPU, attraverso i Bus, provvede a leggere una alla
volta le istruzioni che costituiscono il programma e ad eseguirle con la seguente sequenza:
1) Legge l’istruzione dalla Memoria Centrale portandola all’interno della CPU stessa
2) Decodifica l’istruzione caricata
3) Esegue l’istruzione
e quindi passa a caricare l’istruzione successiva e così via fino all’ultima istruzione del programma.
Clock
L‟attività della CPU è regolata mediante un clock esterno generato mediante un oscillatore ad elevata precisione. In
corrispondenza di ogni colpo di clock la CPU esegue una certa operazione. I sistemi 8086 utilizzavano un clock pari
a 4,77 MHz, il che significa che erano già in grado di eseguire 4,77 milioni di operazioni al secondo.
Nota: L‟esecuzione di una istruzione è una operazione “complessa” che richiede solitamente più colpi di clock.
La Memoria Centrale
La Mem Centrale è costituita da una Sequenza di Bytes. Enorme cassettiera numerata in cui ogni cassetto rappresenta
un byte (o comunemente cella di memoria). Il primo byte ha indirizzo 0. L‟ultimo byte ha indirizzo pari a tutti 1.
Ogni cassetto contiene un dato, mentre i numeri sui cassetti rappresentano gli indirizzi che permettono alla CPU di
individuarli senza ambiguità. La Memoria Centrale è costituita da tre “zone” differenti: RAM, ROM, CACHE
pag 7
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
RAM Random Access Memory





Random Access Memory significa che la CPU può accedere in modo diretto a qualsiasi cella della memoria,
cioè il tempo di accesso non dipende dalla posizione del dato ed è sempre lo stesso per qualsiasi cella.
Questo per distinguerla dalla memorie come l‟Hard Disk o il Floppy Disk in cui, per poter leggere un dato,
occorre prima eseguire un posizionamento della testina di lettura sulla traccia in cui si trova il dato da leggere.
Volatile (spegnendo il computer tutto il suo contenuto viene perso),
Veloce
Costosa
Riscrivibile (RW). L‟operazione di scrittura sovrascrive il contenuto precedente
ROM
Una piccola porzione della memoria centrale è realizzata con tecnologia ROM (Read Only Memory), che è:
 A sola lettura
 permanente, nel senso che i dati rimangono memorizzati anche in assenza di alimentazione.
 ad accesso casuale ma a blocchi (non posso leggere / scrivere il singolo byte).
All‟interno della ROM è memorizzato il cosiddetto firmware contenente:
 Le istruzioni di boot necessarie all‟avvio della macchina con i test sui principali dispositivi hardware
 Alcune istruzioni del BIOS che servono ad interfacciare il SO con l‟hardware di base della macchina,
rendendo il SO indipendente dall‟hardware sottostante (un tempo CMOS con batteria oggi FLASH
persistente senza necessità di alimentazione persistente
Per accedere al BIOS occorre premere il tasto F2 o CANC in fase di avvio.
Cache
La RAM cache è una RAM molto più veloce realizzata con tecnologia SRAM (Static RAM). La RAM cache sfrutta
il principio di località dei programmi, nel senso che se un programma utilizza un certo dato, è molto probabile che
negli istanti successi riutilizzi quel dato o i dati vicini. Per cui quando il programma accede ad un dato della memoria,
questo dato ed i suoi dati vicini vengono duplicati all‟interno della cache, in modo che, in caso di accesso successivo,
la CPU possa prelevare i dati direttamente dalla cache (in modo molto più rapido), senza più accedere alla memoria.
Nota: Con il termine cache si indica genericamente una memoria veloce di piccole dimensioni utilizzata come
polmone per trasferire dati fra dispositivi operanti a velocità di lavoro diverse fra loro (uno più veloce e l’altro più
lento). Ad esempio fra HD e RAM (fra cui può esserci anche un fattore 1000. La RAM cache, utilizzata come
polmone fra RAM (più lenta) e CPU (più veloce) è un caso particolare di cache
Dimensioni della Memoria Centrale
La dimensione dell’Address Bus è quella che determina il massimo numero di celle della memoria che possono
essere indirizzate, cioè la dimensione massima della memoria centrale.
Se l’Address Bus ha n bit, può indirizzare 2n celle di memoria centrale (2n possibili combinazioni)
In un sistema 8086 l‟Address Bus ha dimensione 20 bit per cui può indirizzare 220 celle di memoria, cioè 1 MBytes.
Si ricorda che:
1 KByte = 1000 bytes
1 Mbyte = 1 milione di bytes
1 GByte = 1 miliardo di bytes
1 TByte = 1000 miliardi di bytes
103
106
109
1012
(2^10 = 1024 Bytes = 1 kByte)
(2^20 = 1024 kBytes = 1 MByte)
(2^30)
(2^40)
I BUS
Componenti che consentono la comunicazione fra CPU, Memoria Centrale e Periferiche.
Fisicamente consistono in un insieme di piste tracciate su un circuito stampato costituente la motherboard (o main
board), più eventuali componenti elettronici necessari al mantenimento delle forme d‟onda trasmesse.
Il BUS di un sistema di elaborazione, da punto di vista logico, può essere suddiviso in tre parti :
pag 8
Sistemi - Classe Terza
robertomana.it
Il Personal Computer



Address Bus utilizzato dalla CPU per indirizzare la memoria centrale. E‟ unidirezionale, pilotato quasi
sempre dalla CPU. Nei sistemi 8086 è grande 20 bit
Data Bus dove transitano i dati che la CPU scambia con la memoria centrale e con le altre periferiche. Il Bus
Dati è condiviso fra tutti i moduli dell‟elaboratore. Nei sistemi 8086 è grande 16 bit
Control Bus serve sostanzialmente a controllare l’hardware esterno alla CPU, indicando il tipo di
operazione che il sistema deve eseguire. E‟ utilizzato dalla CPU ad esempio per stabilire chi in ogni
momento può leggere / scrivere sul Data Bus. Il dispositivo selezionato viene abilitato mediante apposito
segnale di Chip Select, derivato dagli indirizzi generati sull’Address Bus.
Poiché più dispositivi diversi possono assumere il controllo dei Bus, occorre un dispositivo che funga da arbitro del
bus. Nei sistemi più semplici questo compito è svolto dalla CPU (8086), mentre nei sistemi più complessi il compito è
riservato a dispositivi specifici (Bus Controller)
Le Periferiche nei Sistemi Moderni
CPU, Memoria Centrale e Bus costituiscono il nucleo centrale di un Sistema di Elaborazione.
Le periferiche rappresentano tutte le parti accessorie che non servono direttamente all‟elaborazione dei dati, ma la
cui presenza è tuttavia necessaria all‟utilizzo dell‟ elaboratore, consentendo ad esempio un‟uscita visiva dei risultati
senza doverli ripescare dalla memoria (situazione comune nella 1° generazione di elaboratori, negli anni cinquanta).
Periferiche di input In ordine cronologico si possono ricordare interruttori, schede perforate, tastiere, mouse,
scanner, fotocamere e telecamere,
Periferiche di output. In ordine cronologico si possono ricordare schede perforate, stampanti, video, dispositivi
generatori di suoni (dai buzzer alle più moderne schede sonore).
Periferiche di memoria di massa servono per memorizzare grossi quantitativi di dati (HD) o come supporto mobile
per il trasporto di dati da un elaboratore all‟altro (floppy). Le memorie di massa sono memorie permanenti, più
economiche e più capienti rispetto alla memoria centrale. Cronologicamente come memorie di massa sono state
utilizzate schede perforate, nastri magnetici, dischi magnetici (da 8” poi da 5” ¼ in grado di memorizzare 360
kBytes, poi da 3” ½ in grado di memorizzare 1,44 mBytes), ed infine dischi ottici (CD e DVD).
Scede di Comunicazione porte seriali, parallele e USB, schede di rete, modem.
In genere, mentre CPU e RAM si interfacciano direttamente ai Bus, le periferiche non sono connesse direttamente ai
bus di sistema, ma si appoggia ad una scheda di controllo detta Controller o adapter il cui compito è quello di far
comunicare due mondi differenti: la CPU e la periferica che utilizza un proprio standard diverso da quello della CPU.
Le Schede di Controllo vengono montate in appositi slot ortogonali al senso di percorrenza dei BUS. Questa
struttura consente una facile espansione modulare del sistema con l‟aggiunta di nuove schede all‟interno degli slot.
BUS SCSI
CPU
CONTROLLER
SCSI
MEMORIA
RAM
ROM
BOOT/BIO
S
BUS DATI
BUS INDIRIZZI
Stampante SCSI
Hard disk SCSI
VIDEO
ADAPTER
OUTPUT
INTERFACCIA
TASTIERA
INPUT
BUS CONTROLLI
pag 9
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Avvio del Personal Computer
All‟avvio tutte le applicazioni, compreso il SO, sono memorizzate su HD e la RAM è completamente vuota”.
In realtà una piccola porzione della Memoria Centrale è di tipo persistente (ROM), programmata dal costruttore della
motherboard e contenente il cosiddetto firmware della macchina, cioè:


Un piccolo segmento di codice che serve, all‟avvio, per caricare nella memoria principale il SO e quanto
necessario al funzionamento della macchina (procedura di Bootstrap)
Alcune istruzioni che servono ad interfacciare il SO con l‟hardware della macchina, rendendo di fatto il SO
indipendente dall‟hardware sottostante. Queste istruzioni nel loro insieme rappresentano il BIOS (Basic
Input Output System ) della macchina.
Bootstrap
In corrispondenza della pressione del pulsante di avvio, viene eseguita la cosiddetta procedura di bootstrap, che
consiste nell‟esecuzione del programma scritto all‟interno della ROM di sistema (indirizzo FFFF0 dove c‟è una
istruzione di salto ad un altro indirizzo in cui sono effettivamente scritte le istruzioni di avvio) che provvede a:
1. Riconoscere e testare i principali componenti hardware della macchina (Power On Self Test) ovvero il
funzionamento del processore, presenza della memoria, presenza di un HD o di un lettore CD da cui caricare
il SO, presenza della tastiera e di una scheda video.
2. Caricare il sistema operativo (BOOTSTRAP), ovvero leggere il primo settore dell‟hard disk e caricarne il
contenuto in una apposita zona della memoria centrale (indirizzo 0000). Nel primo settore di una HD si
trovano solitamente le istruzioni per caricare in memoria l‟intero SO memorizzato sull‟HD stesso.
IL BIOS (Basic Input Output System )
Una volta avviato, il SO operativo continuerà a lavorare in stretta collaborazione con il BIOS, che gestisce tutto
l‟interfacciamento con l‟hardware. Quando il SO deve inviare dei dati verso una porta del PC (ad es la porta USB),
mediante una apposita chiamata al BIOS (realizzata di solito tramite un interrupt), “passa” i dati al BIOS che li
trasferisce all‟interfaccia hardware della porta indicata. Allo stesso modo quando una porta deve trasmettere dei dati
al SO, è il BIOS che li riceve e poi li “passa” al SO. In questo modo il SO è completamente svincolato dall‟hardware
sottostante e può operare su piattaforme diverse senza dover essere modificato. Le procedure del BIOS consentono
allo stesso SO di utilizzare hardware profondamente diversi (ad es. un 386 ed un Pentium).
Tutti i Personal Computer, qualunque sia il produttore, dovranno avere nel BIOS lo stesso insieme di funzioni
base (con gli stessi parametri di ingresso e gli stessi di uscita) che verranno poi sfruttate dal sistema operativo.
I Driver
In un PC esistono altre parti di software non direttamente supportate dal BIOS ma strettamente necessarie per il
funzionamento di alcune parti hardware. Si tratta dei device driver relativi a dispositivi non supportati dal BIOS (es
schede video avanzate) che devono essere installati dopo il Sistema Operativo e che vengono salvati in apposite
cartelle di sistema (C:WINDOWS\DRIVER) e caricati in memoria dal SO al momento della necessità.
Spesso occorre installare nuovi driver anche per le periferiche già supportate dal BIOS, in modo da sfruttarne
al meglio le caratteristiche di funzionamento, in particolare per quanto concerne dischi rigidi e schede video.
Flash ROM
Nelle macchine attuali le ROM non sono più strettamente Read Only, ma si parla di Flash ROM, cioè ROM che
possono anche essere modificate dall‟utente mediante una apposita finestra di interfaccia del BIOS. In fase di avvio
della macchina, ad un certo punto compare la scritta Press <F2> <DEL> to enter setup. Premendo il tasto indicato
è possibile interrompere la fase di avvio ed aprire una finestra di configurazione del BIOS, in cui è possibile ad es :
 modificare la sequenza di boot (normalmente prima CD, poi HD infine la rete)
 gestire Hard Disk aggiuntivi,
 inserire una password a livello di BIOS che verrà richiesta all‟accensione prima ancora dell‟avvio di Windows.
E‟ possibile impostare una password BIOS anche soltanto come protezione del BIOS stesso, richiesta ogni
volta che l‟utente tenta di entrare nel BIOS per effettuare delle modifiche.
Un apposito comando consente di ripristinare i valori originali del BIOS, memorizzati in copia sempre nella ROM. Il
ripristino del BIOS più essere eseguito anche via hw spostando per alcuni secondi un apposito JUMPER di Reset.
pag 10
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Il microprocessore 8086

Processore a 16 bit, nel senso che i registri interni sono tutti a 16 bit.
E‟ costituito essenzialmente da tre parti:
EU Execution Unit E‟ l‟unità che si occupa di eseguire le istruzioni. L‟elemento principale della EU è la ALU
Arithmetic Logic Unit . una macchina basata su logica combinatoria che si occupa di svolgere le operazioni
logiche e aritmetiche in modo simile a ciò che avviene nelle calcolatrici tascabili.
BIU Bus Interface Unit E‟ l‟unità che si occupa dell‟interfacciamento ai bus
CU Control Unit. Macchina a stati che rappresenta il vero e proprio cuore della CPU. Ordina alla BIU di caricare la
prossima istruzione, la decodifica e quindi chiede alla EU di eseguirla. Al termine ordina il caricamento
dell‟istruzione successiva. Genera i segnali per coordinare e sincronizzare le attività di tutti i dispositivi esterni.
Registri (14 Registri tutti a 16 bit più un registro di stato)
Registri di Segmento CS, SS, DS, ES Utilizzati per gestire la segmentazione dei programmi. Contengono l‟indirizzo
assoluto di partenza dei vari segmenti che compongono un programma per Personal Comnputer.
IP (Instruction Pointer) detto anche PC (Program Counter). Contiene l‟indirizzo relativo (offset) della prossima
istruzione da eseguire rispetto all‟inizio del Segmento di Codice
IR Instruction Register. Registro in cui viene memorizzato il codice binario dell‟istruzione in esecuzione.
SP Stack Pointer. Puntatore allo Stack. Contiene ‟indirizzo relativo (offset) della cella corrente dello stack rispetto
all‟inizio del Segmento di Stack
Registri Dati Interni alla ALU. Utilizzati per memorizzare operandi e risultati delle operazioni aritmetiche.
AX, BX, CX e DX Utilizzati per i calcoli. AX è il registro più utilizzato ed è chiamato accumulatore.
Ognuno di questi registri è suddiviso in due registri da 8 bit: parte alta (es AH) e parte bassa (es AL).
Registri di Indirizzamento dei Dati Utilizzati per gestire gli offset all‟interno del Segmento Dati
DI (Destination Index), SI (Source Index),
BP Base Pointer registro particolare che gestisce gli indirizzamenti all‟interno del segmento di stack
MDR Memory Data Register Registro non direttamente accessibile a livello di programma utente. E‟ il registro in cui
vengono memorizzati i dati letti dal bus Dati o che devono essere inviati al bus Dati.
MAR Memory Address Register Analogo del precedente riferito però al bus Indirizzi. Contiene l‟ultimo indirizzo di
memoria a cui la CPU ha fatto riferimento (unico registro a 20 bit).
Registro di Stato (PSW Processor Status Word) Contenente alcuni flag di stato settati dalla ALU al termine di una
operazione aritmetiche. Contengono informazioni sul tipo di risultato ottenuto. I bit utilizzati sono in tutto 9:
SF (Sign Flag) Bit di segno, indica il segno del risultato. (0 risultato positivo, 1 negativo). Coincide con MSB
ZF (Zero Flag) Bit di zero. Indica che l‟operazione algebrica corrente ha dato come risultato Zero
PF (Parity Flag) Bit di parità (1 se il risultato contiene un numero pari di 1)
CF (Carry Flag) Bit di Carry . Utilizzato nell’algebra dei numeri Unsigned. Diventa 1 nel momento in cui una
somma tra interi positivi produce un riporto (250 + 10). Nel caso della differenza (somma tra un numero
positivo ed un numero negativo), CF diventa 1 se per eseguire la sottrazione occorre un prestito, cioè se il
risultato della somma è negativo, cioè ancora se la somma tra i due numeri non fornisce riporto.
OF Bit di overflow. L‟operazione ha sforato la massima dimensione consentita. Utilizzato nell‟algebra dei
numeri Signed. La somma di numeri produce overflow quando i due operandi hanno lo stesso segno ed il
risultato presenta un segno discorde rispetto agli operandi (120 + 10). La somma fra due numeri d segno differente
non produce MAI overflow.
- facendo 250 + 10 viene attivato Carry ma non Overflow
- facendo 120 + 10 viene attivato Overflow ma non Carry
AF (Auxiliary Flag) Indica il riporto sul quarto bit (utilizzato nelle operazioni BCD).
I 3 seguenti Flag sono invece Read / Write :
DF (Direction Flag) Imposta la modalità di incr / decr (1) automatico dei reg SI DI nelle istruzioni sulle stringhe
IF (Interrupt Flag)Abilita la gestione degli Interrupt mascherabili
TF (Trap Flag) Abilita la generazione di una interruzione alla fine di ogni istruzione (debugger).
pag 11
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Formato delle istruzioni Assembly
Qualunque sia il linguaggio utilizzato per la scrittura del programma, il programma finale .exe sarà un file binario
costituito da una sequenza di istruzioni Assembler che hanno normalmente una lunghezza compresa tra 1 e 6 byte.
1 byte contenente il codice dell’istruzione (max di 255 istruzioni possibili, con un set di 92 istruzioni base )
1 byte (eventuale) relativo alle modalità di indirizzamento che indica quali registri sono coinvolti nell‟operazione in
modo diretto o indiretto (base relative) e se l‟operazione riguarda anche la memoria o contiene dati immediati
2 byte (eventuali) contenenti l’indirizzo di memoria della cella eventualmente coinvolta nell‟operazione
2 byte (eventuali) contenenti il dato immediato da utilizzare nell‟operazione (che può occupare 1 o 2 bytes).
Assembly 8086 ammette anche dati su 4 bytes, ma poiché i registri sono tutti a 2 bytes, è impossibile spostare 4 bytes
insieme. In tal caso occorre dunque necessariamente scrivere 2 istruzioni ognuna delle quali sposti 2 bytes.
Ciclo delle caricamento ed esecuzione delle istruzioni
Il sistema inizia l‟attività (reset) impostando un valore predefinito all‟interno del Program Counter. Quindi carica
all‟interno del registro IR la prima istruzione del programma, la esegue e, al temine, incrementa il PC per un numero
di Bytes pari alle dimensioni dell‟istruzione appena eseguita e carica la prossima istruzione.
Al temine di ogni istruzione CU incrementa il Program Counter e legge dalla memoria la prossima istruzione da
eseguire la carica nel registro IR, la interpreta, e la esegue, nel senso che genera i segnali elettrici opportuni verso i
dispositivi coinvolti nell‟esecuzione dell‟istruzione. Tre fasi principali (che possono anche diventare 5) indicate come
Fetch (caricamento)
Decode
Execute
Fase di Fetch
- La CU trasferisce nel registro MAR l‟indirizzo della prossima istruzione da caricare (letto dal registro PC)
- Il contenuto di MAR viene caricato sull‟Address Bus e contemporaneamente viene abilitato il segnale Read
- La memoria decodifica l‟indirizzo dell‟istruzione da caricare, e la trasferisce sul Data Bus
- L‟istruzione viene portata dal Data Bus su MDR
- L‟istruzione viene copiata da MDR a IR
- Il registro IP viene incrementato di una quantità pari alle dimensioni dell‟istruzione caricata
Fase di Decode
- La CU decodifica l‟istruzione verificando quali registri sono coinvolti
- La CU legge un eventuale dato aggiuntivo dalla memoria centrale, eseguendo eventualmente un secondo
ciclo di fetch e provvedendo ad incrementare ulteriormente il registro IP.
Fase di Execute
- Carica i dati necessari sui registri di ingresso della ALU.
- CU genera i segnali di controllo verso la ALU per eseguire l‟istruzione
- Preleva il risultato dal registro di output della ALU e lo carica nel registro di destinazione o eventualmente in
MDR se il risultato deve essere salvato in memoria.
- Se il risultato deve essere salvato in memoria, esegue un ultimo ciclo (5°) di scrittura in memoria del risultato
Terminata l‟istruzione in corso, la CU riprende il ciclo caricando la prossima istruzione.
Pipeline
Il termine pipeline significa catena di montaggio, intesa come parallelizzazione delle fasi di Fetch ed Execute.
L‟esecuzione sequenziale delle fasi di Fetch – Decode – Execute spreca tantissimo tempo. Durante la fase di FETCH,
mentre la BIU provvede a caricare l‟istruzione utilizzando i bus di sistema di collegamento fra CPU e memoria, la
EU rimane praticamente inutilizzata. Viceversa, durante la fase di EXECUTE dell‟istruzione da parte della EU
rimangono inutilizzati i BUS.
pag 12
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Proprio per evitare questi tempi di inutilizzo e velocizzare le operazioni, la CPU è stata suddivisa in due parti:
EU Execution Unit che si occupa della decodifica ed esecuzione delle istruzioni (mediante la ALU)
BIU Bus Interface Unit che si occupa del fetch delle istruzioni utilizzando una piccola coda (memoria FIFO) detta
INSTRUCTION QUEUE (o coda di prefetch) in cui provvede a caricare le istruzioni successive. Questa coda
ha dimensioni 6 bytes, tanto quanto la dimensione massima di una istruzione Assembly.
Pipeline significa elaborazione parallela: mentre EU esegue l’istruzione corrente, BIU provvede a scaricare
l’istruzione successiva, con la CU che coordina tutte le operazioni. In questo modo, al termine dell‟esecuzione
dell‟istruzione corrente, la CU trova l‟istruzione successiva già pronta all‟interno della coda di prefetch.. Provvede
quindi a trasferirla alla EU, ad incrementare PC e a segnalare alla BIU di caricare la prossima istruzione. In base al
nuovo valore di PC, la BIU elimina dalla coda i byte relativi all‟istruzione “consumata”, fa avanzare gli altri byte in
testa alla coda di prefetch e provvede ad un nuovo caricamento.
Segmentazione della memoria
Un programma Assembler è suddiviso in segmenti che possono essere di tre tipi:

codice
stack
data
code segment contenente le istruzioni del programma
stack segment contenente informazioni ausiliarie (parametri e variabili locali)
data segment contenente i dati (variabili globali)
Un programma può contenere più segmenti di codice, più segmenti di dati, ma sempre solo un unico segmento
di stack.
Ogni segmento non ha una dimensione fissa (le dimensioni del segmento di codice dipendono dal numero di
istruzioni contenute nel programma, le dimensioni del segmento di dati dipende dal numero di variabili
dichiarate all‟interno del programma), ma ha una dimensione massima pari a 64 kBytes,
In fase di lancio del programma, ogni segmento del programma memorizzato su file viene caricato in Memoria
Centrale da un componente del sistema operativo, il loader, (normalmente nel primo posto libero).
La Memoria Centrale risulta pertanto segmentata, cioè suddivisa in segmenti.
Il numero massimo di segmenti non è fisso, ma dipende dalle dimensioni dei segmenti stessi.



Il processore 8086 ha una architettura a 16 bit, cioè tutti i suoi registri sono a 16 bit. Per poter eseguire un
programma in memoria, la CPU deve necessariamente conoscere l’indirizzo assoluto dell‟istruzione all‟interno della
memoria, il quale però è un indirizzo a 20 (in quanto tutti gli indirizzi di memoria, nell‟8086, sono a 20 bit).
La soluzione a questo problema è stata l‟utilizzo di un apposito registro di segmento a 16 bit, detto CS (Code
Segment Register) all‟interno del quale vengono caricati i 16 bit più significativi dell’indirizzo assoluto di
partenza del segmento all’interno della memoria. In tal caso si da per scontato che i 4 bit inferiori valgano tutti 0,
cioè che l‟indirizzo assoluto di partenza del segmento sia un indirizzo multiplo di 16.
Dopo di che un secondo registro, il program counter PC, gestisce l‟offset (cioè lo spiazzamento rispetto alla testa del
segmento) della prossima istruzione da eseguire. Il registro PC viene inizializzato con tutti zeri (offset della prima
istruzione rispetto alla testa del segmento), dopo di che viene incrementato in corrispondenza dell‟esecuzione di ogni
singola istruzione.
In ogni istante, per calcolare il reale indirizzo assoluto (all‟interno della Memoria Centrale) relativo alla prossima
istruzione da eseguire, occorre


Calcolare l’indirizzo di partenza del segmento, aggiungendo 4 zeri in coda al Code Segment Register
Eseguire la somma fra l’indirizzo assoluto di partenza del code segment e PC
CS
16 bit
xxxx xxxx xxxx xxxx 0000
+
PC
16 bit
0000 0000 0000 yyyy
=
Effective Address
20 bit
xxxx xxxx xxxx xxxx yyyy
pag 13
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Questo calcolo viene di solito indicato con la notazione: Indirizzo Assoluto = CS : PC
Nota: Da un punto di vista strettamente matematico l’indirizzo assoluto può essere calcolato mediante la seguente
formula :
Indirizzo Assoluto = CS * 16 + PC
Moltiplicare un numero binario per 16 significa infatti traslarlo verso sinistra di 4 posizioni
Data e Extra Data Segment
Allo stesso modo del segmento di codice, nella prossima area libera della memoria viene caricato il segmento dati
contenente le variabili globali dell‟applicazione. Il Segmento di Dati viene gestito allo stesso identico modo del
Segmento di Codice. Il registro DS (Data Segment Register) contiene i primi 16 bit dell‟indirizzo assoluto di
partenza del Segmento Dati all‟interno della Memoria Centrale (assumendo a 0 i rimanenti 4 bit).
I registri SI e DI sono utilizzati per gestire gli offset dei vari dati rispetto all‟inizio del segmento.
Per calcolare gli indirizzi effettivi dei dati, si opera come per il Code Segment, cioè si aggiungono 4 zeri in coda al
valore di DS sommando poi gli offset contenuti nei registri di indirizzamento (SI, DI). Cioè :
Indirizzo Assoluto di un dato = DS : SI oppure
Indirizzo Assoluto di un dato = DS : DI
Nota: Poiché si prevedeva che 64 kBytes potessero non bastare per i dati di una applicazione, l’8086 può gestire
contemporaneamente 2 segmenti di dati, detti Data Segment e Extra Data Segment, i cui indirizzi di partenza sono
memorizzati rispettivamente nei registri di segmento DS (Data Segment Register) e ES (Extra Segment Register)
Stack Segment
Il terzo segmento di un programma Assembly è lo Stack Segment in cui vengono salvate le variabili locali ed i
parametri. A differenza dei segmenti precedenti, nello stack il programma non può andare a scrivere direttamente,
ma può scrivere soltanto in modalità LIFO, cioè impilando i dati uno sopra l‟atro. L‟istruzione PUSH consente di
salvare una informazione nello stack, mentre l‟istruzione POP consente di prelevare dallo stack l‟ultima
informazione memorizzata,
L’indirizzo di partenza del Segmento di Stack all’interno della Memoria Centrale (primi 16 bit) è
memorizzato all’interno di apposito registro di segmento detto SS (Stack Segment Register).
Il registro SP (Stack Pointer) gestisce gli offset all’interno dello stack rispetto all’inizio del segmento.
Il segmento di stack viene gestito in modo differente rispetto agli altri segmenti, nel senso che viene creato di una
dimensione fissa (tipicamente 1024 bytes, comunque impostabile via codice dal programma utente), e lo Stack
Pointer, anziché puntare alla cella iniziale (con offset 0000), punta all‟ultima cella in fondo (con indice 1024),
contenente il valore speciale EOS (End Of Stack).
 Ogni volta che si aggiunge una informazione all‟interno della stack mediante PUSH, SP viene decrementato di
una quantità pari alle dimensioni dell‟ informazione salvata.
Ad esempio salvando un dato grande 2 bytes, SP verrà decrementato di 2 diventando 1022
 Quando si preleva una informazione dallo stack mediante POP, SP viene incrementato di una quantità pari alle
dimensioni dell‟informazione. Se si continuano ad inserire dati ed SP viene decrementato fino ad arrivare a 0 si
ottiene un errore di stack overflow che significa che lo stack è arrivato oltre il massimo della capienza
SP punta sempre all’ultima informazione salvata dentro lo stack.
Cenno sulla Interrupt Vector Table
All‟indirizzo 00000 della RAM è contenuto la cosiddetta Interrupt Vector Table grande 1024 Bytes e contenente
256 Interrupt da 4 Bytes ciascuno. Quando alla CPU arriva una richiesta di Interrupt, la CPU esegue un salto
all‟interno della Interrupt Vector Table andando a leggere i 4 bytes relativi all‟interrupt ricevuto. In questi 4 bytes c‟è
l‟indirizzo assoluto (CS e Offset) della procedura da eseguire in risposta all‟interrupt.
pag 14
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
PIEDINATURA 8086
Ciclo Macchina (o Ciclo di Bus)
Si definisce Ciclo Macchina o Ciclo di Bus il ciclo completo utilizzato dalla CPU per accedere alla memoria
centrale in lettura o in scrittura. Esso è costituito tipicamente da 4 fasi distinte ciascuna di durata pari ad un ciclo di
clock. Queste fasi sono indicate normalmente come T1, T2, T3, T4, con il possibile inserimento di un numero
indefinito di stati Tw tra T3 e T4 se il dispositivo a cui si intende accedere è più lento rispetto al tempo di clock.
Piedinatura della CPU 8086
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)
GND
BUS_14
BUS_13
BUS_12
BUS_11
BUS_10
BUS_9
BUS_8
BUS_7
BUS_6
BUS_5
BUS_4
BUS_3
BUS_2
BUS_1
BUS_0
NMI
INTR
CLK
GND
40)
39)
38)
37)
36)
35)
34)
33)
32)
31)
30)
29)
28)
27)
26)
25)
24)
23)
22)
21)
VCC
BUS_15
AddBUS_16
AddBUS_17
AddBUS_18
AddBUS_19
BHE
MIN/MAX
RD
HOLD
HOLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
VCC e GND
VCC = 5 Volt. All‟interno di una architettura 8086 i cavi di tensione sono normalmente disponibili all‟interno di
connettori a 4 pin così strutturati::
Rosso
=>
5V
Nero
=>
riferimento di massa per i 5 V
Nero
=>
riferimento di massa per i 12 V (ponticellato con il precedente)
Grigio
=>
12V
Questi fili, all‟interno della motherboard, diventano parte integrante del Control Bus. Il 12 Volt può servire per
l‟alimentazione di dispositivi quali floppy disk, hard disk, video adapter.
CLK
Clock. Il clock è ottenuto mediante un apposito oscillatore esterno che, a seconda del cristallo di quarzo utilizzato,
può generare frequenza differenti. Nell‟architettura 8086 come oscillatore è utilizzato il Generatore di clock Intel
8284 che produce una onda quadra di frequenza pari a 14,318 MHz, che, divisa per 3, invia al processore, sul pin
19, un clock di 4.77 MHz, con Duty Cycle del 33 %. Ogni colpo di clock ha dunque una durata temporale pari a 1
/ 4.77 = 0,210 usec, cioè 210 nsec. I fronti di discesa e di salita hanno una durata inferiore ai 10 nsec. Il ciclo di
bus ha una durata complessiva pari a 840 nsec. I cicli di I/O impiegano in genere 5 colpi di clock, per una durata
complessiva di 1,05 usec.
ALE [output]
Address Latch Enable. Impulso attivo soltanto durante la Fase T1. Consente di demultiplexare i Bus pilotando
appositi Latch bistabili (tipicamente 8282) da quali hanno origine Address Bus e Data Bus separati.
pag 15
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
AD
Address Bus o Data Bus a seconda del valore del pin ALE. Nei sistemi 8086 Address Bus e Data Bus sono
multiplexati nel senso che, per risparmiare sul numero di piedini, il processore presenta soltanto 20 pin di bus,
che possono fungere sia da Address Bus sia da Data Bus a seconda dello stato del segnale ALE
Durante la fase detta T1 la CPU immette su queste linee i segnali di indirizzamento della cella di memoria a cui
intende accedere. Durante le fasi T2, T3, T4 tutte queste linee fungono da Data Bus.
MIN/MAX [input]
Sono due diverse modalità per collegare elettricamente l‟8086 alla circuiteria circostante. In MINIMUM MODE
(ottenuto collegando il piedino a +5V) il processore 8086 opera da solo, mentre il MAXIMUM MODE è
utilizzato quando l‟8086 lavora in tandem con il coprocessore matematico 8087 o con altri processori. Nel modo
massimo, oltre al 8087, necessita anche di altri chip esterni quale il controllore di bus 8288. I pin indicati di
seguito sono riferiti al modo MINIMO. Nel modo MASSIMO diversi pin cambiano di significato.
RD [output]
Read. Indica che la CPU sta eseguendo un ciclo di lettura (in memoria o in IO). Attivo in T2, T3, Tw
WR [output]
Write. Indica che la CPU sta eseguendo un ciclo di scrittura (in memoria o in IO). Attivo in T2, T3, Tw
M/IO [output]
Indica se il ciclo di bus è riferito alla Memoria (1) oppure ad un dispositivo di IO (0). Deve rimanere impostato
per l‟intero ciclo di bus. La combinazione tra M/IO e RD produce i segnali MEMR e IOR utilizzati per pilotare
rispettivamente la lettura dalla memoria e la lettura da IO. La combinazione tra M/IO e WR produce i segnali
MEMW e IOW utilizzati per pilotare rispettivamente la scrittura verso la memoria e la scrittura verso IO.
BHE [output]
Bus High Enable. Attivo soltanto nella fase T1, quando la CPU sta cercando di accedere ad una cella di memoria.
- Se BHE è attivo (basso) significa che la CPU intende accedere ad una intera word della memoria, cioè al byte
contenuto nell‟indirizzo corrente e al byte successivo.
- Se invece BHE non è attivo (alto) significa che la CPU intende accedere soltanto ad un singolo byte della
memoria. Poiché le variabili sono sempre allineate alla word (A0 = 0), il valore di A0, abbinato a BHE,
consente di accedere al byte alto (A0 = 1) oppure al byte basso (A0 = 0).
INTR [input]
Interrupt Request Segnale di ingresso che viene testato al termine di ogni istruzione prima di passare al caricamento
dell‟istruzione successiva per verificare se vi è una richiesta pendente di interrupt da soddisfare. E‟ attivo alto e può
essere mascherato internamente resettando via software il bit di disabilitazione dell‟interrupt (IF Interrupt Flag).
NMI [input]
Not Maskable Interrupt. Segnale di ingresso che indica la richiesta di un interrupt non mascherabile che dovrà
essere eseguito al termine dell‟istruzione corrente.
INTA [output]
Interrupt Ackowledge. In Risposta all‟interrupt request (mascherabile o non mascherabile), la CPU avvisa il
dispositivo richiedente che è pronta per avviare la procedura di gestione dell‟interrupt. Il segnale rimane attivo per
l‟intero ciclo di esecuzione dell‟interrupt
HOLD [input]
Segnala alla CPU che un altro dispositivo (tipicamente il DMA Controller) ha richiesto il controllo del bus.
Mentre nel caso di Interrupt Request la CPU termina comunque l‟istruzione in corso, nel caso di DMA request la
CPU si limita a terminare il ciclo di bus in corso ponendo le proprie linee di dati, indirizzi e controllo in stato di
alta impedenza (tristate), in pratica disconnettendole dai bus. La CPU, per quanto possibile, continua la propria
esecuzione se questa non richiede l‟accesso ai bus.
pag 16
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
HOLDA [output]
La CPU avvisa il dispositivo richiedente (DMA Controller) di avergli ceduto il controllo dei bus. Quando il
dispositivo ha terminato di usare il bus riporta basso il segnale di HOLD e la CPU ne riprende possesso.
READY [input]
La memoria avvisa la CPU di avere terminato la lettura / scrittura del dato
RESET [input]
Viene utilizzato per reinizializzare il processore. Il segnale di Reset vene generato all‟accensione subito dopo
l‟accensione da un circuito accessorio dell‟alimentatore, quando i livelli di tensione si sono stabilizzati (si sono
caricati tutti i condensatori), oppure mediante un apposito pulsante esterno.
In corrispondenza del segnale di Reset la CPU provvede a caricare FFFF dentro CS e 0000 dentro IP
Per essere intercettato dalla CPU, il Reset deve rimanere attivo per almeno 4 colpi di clock consecutivi. Prima di
arrivare alla CPU viene fatto passare attraverso il generatore di clock 8284 per sincronizzarlo con il clock stesso
TEST [input]
Segnale d‟ingresso esaminato dall‟istruzione WAIT. Se TEST è basso il microprocessore continua normalmente
nell‟esecuzione del programma, altrimenti si arresta in stato di attesa e vi resta fino quando TEST non ritorna
basso. Utilizzato nella comunicazione con il coprocessore matematico 8087 o altri coprocessori.
DT/R e DEN [output]
Data Transmit / Receive. 1 = Transmit 0 = Receive. DEN = Data Enable. Devono rimanere impostati per l‟intero
ciclo di bus (tutte e quattro le fasi). Servono per pilotare eventuali tranceiver.
Indirizzamento della memoria
La memoria ROM è realizzata mediante più banchi di tipo INTEL 2732 (a 24 pin) aventi un indirizzamento a 12 bit
dunque in grado di gestire 4096 bytes di memoria (4 kBytes). Poiché la ROM può soltanto essere letta, viene inviato
alla ROM soltanto il segnale di MEMR, inviato al pin OE (output enable) della memoria. Il pin CS (chip select) è
ottenuto mediante una decodifica esterna dei bit di indirizzo non direttamente collegati al dispositivo.
A13
A19
A0
CS
Data 0 - 7
Address 1-12
MEMR
OE
Gli altri 8 bit della word (byte alto) sono ottenuti mediante un secondo banco di memoria pilotato
parallelamente. Sulla porta AND degli indirizzi, al posto del semplice A0, ci sarà la condizione (A0 = 1 OR BHE)
L‟intera memoria viene vista dalla CPU come suddivisa in due banchi, il banco relativo ai bytes pari (parte bassa di
un numero) ed il banco relativo ai byte dispari (parte alta di un numero). I due banchi possono essere indirizzati
congiuntamente (BHE = 0), oppure separatamente mediante A0 (A0 = 0 byte pari, A0 = 1 byte dispari).
L‟acceso alla RAM avviene in modo analogo, ma sono di solito disponibili sia il pin WE (write enable), sia il pin RE
(Read Enable). Ad esempio l‟integrato 2142 rappresenta un banco di RAM da 1024 Bytes (1 kByte) a 24 pin (10 pin
di Address, 8 pin di Data, due chip select, WE, RE, Vcc, GND). Anche in questo caso la word è ottenuta mediante un
secondo banco di memoria pilotato parallelamente. CS2 è collegato a massa (sempre abilitato) per il banco
contenente la parte bassa del dato, mentre è collegato a BHE per il banco contenente la parte alta.
Nota: Se il dato è ad un solo byte, non ci sono particolari problemi (il dato verrà letto dal banco di memoria indicato
da A0.). Se però il dato occupa due byte può essere allineato ad un indirizzo dispari oppure ad un indirizzo pari Se è
allineato ad un indirizzo pari,significa che byte basso e byte alto hanno lo stesso indirizzo tranne che per A0 (0 per il
byte basso e 1 per il byte alto). Ciò significa che i due byte potranno essere letti parallelamente dalla CPU
all’interno dei due banchi in un unico ciclo macchina.
pag 17
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Se invece il dato è allineato ad un indirizzo dispari, significa che byte basso e byte alto, oltre a A0, hanno anche la
parte rimanente di indirizzo differente. Ciò significa che la CPU non può indirizzarli parallelamente e dovrà per
forza eseguire due cicli macchina differenti (dato non allineato). Per questo motivo, quando si dichiarano grandi
strutture dati, anche nei linguaggi di alto livello come il C, è bene verificare che i dati abbiano sempre un
allineamento pari.
Il Ciclo Macchina o Ciclo di Bus
Ciclo di lettura / scrittura della memoria composto da 4 cicli di clock.
B
U
S
I
N
D
I
R
I
Z
Z
I
R
E
G
.
I
N
D
I
R
I
Z
Z
I
READY
0
D
E
C
O
D
E
R
1
2
3
R
E
G
I
S
T
R
O
B
U
S
D
A
T
I
4
5
6
D
A
T
I
7
ALE
MEMR
MEMW
CONTROL BUS
Ciclo di Lettura (es. MOV AX, VAR)
FASE T1 : La CPU mediante ALE abilita l‟Address Bus e ci scrive sopra l’indirizzo della cella a cui deve accedere.
Contemporaneamente abilita i segnali BHE e M/IO. Al termine della fase T1 la memoria provvede a salvare
l‟indirizzo all‟interno del proprio “Registro Indirizzi”.
FASE T2 : La CPU attiva il segnale RD e si pone in stato di alta impedenza rispetto ai bus (in pratica si “sgancia”
dai bus). La memoria ricerca il dato richiesto.
FASE T3 : Terminata la ricerca del dato e il suo trasferimento sul “Registro Dati”, la memoria prende possesso del
Data Bus e ci scrive sopra il dato. Al termine attiva il segnale READY. Se la memoria non riesce a “scaricare” il
dato nel tempo di clock, la fase T3 può durare più colpi di clock detti Tw al termine dei quali verrà attivato il Ready
FASE T4 : La CPU legge il segnale di Ready e quindi legge il dato dal Data Bus, disattiva i segnali RD, BHE e
M/IO. In corrispondenza della disattivazione del segnale RD la memoria si “sgancia” dal Data Bus.
Ciclo di Scrittura (es. MOV VAR, AX)
FASE T1 : Esattamente come prima.
FASE T2 : La CPU attiva il segnale WR e trasferisce sul Data Bus il dato da scrivere in memoria. Al termine della
fase T2 la memoria provvede a salvare il dato all‟interno del proprio “Registro Dati”.
FASE T3 : La memoria scrive il contenuto del Registro Dati all’interno della cella puntata dal Registro
Indirizzi, attivando al termine il segnale READY. Se la memoria non riesce a “scaricare” il dato nel tempo di
clock, la fase T3 può durare più colpi di clock detti Tw al termine dei quali verrà attivato il segnale di Ready
FASE T4 : La CPU legge il segnale di Ready, disattiva i segnali WR, BHE e M/IO e si “sgancia” dal Data Bus.
pag 18
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Evoluzione dei Processori Intel: Schema Riassuntivo
Anno
Processore
utilizzato
Socket e
PIN
1981
8086
1983
80286
1986
80386
1990
80486DX
1992
1994
1994
80486DX2
80486DX4
Pentium
1997
Pentium 2
1999
Pentium 3
2001
Pentium 4
2003
Pentium M
DIP
40
PLCC
68
PLCC
132
Socket1
168
Socket2
238
Socket4
273
Slot1
242
Socket
370
423
478
775 LGA
479
(Centrino)
gennaio
Core Duo
2006
(Centrino Duo)
fine
Core 2 Duo
Merom/Conroe
2006
479
775 LGA
Clock
CPU
MHz
4.77
6 – 20
typ 12,5
20 - 25 33
25 - 33 50
66
100
75 - 100
266
333
450
1 GHz
1,4 GHz
3,2 GHz
3,8 GHz
1.5 GHz
2.2 GHz
2 GHz
2,4 GHz
2,66 GHz
Clock
Base
FSB
MHz
Cache
Liv 1
Data
Bus
Address
Bus
RAM
max
RAM
typ
no
Cache
Liv 2
in-pack
no
Sistema
Operativo
256 kByte
Hard
Disk
Typ
20 MB
16 bit
20 bit
1 MByte
no
no
16 bit
24 bit
16 MBytes
2 MBytes
60 MB
no
no
32 bit
32 bit
4 GBytes
4 MBytes
100 MB
8 kB
no
32 bit
32 bit
4 GBytes
8 MBytes
200 MB
MS DOS
33
33
8 kB
no
32 bit
32 bit
4 GBytes
16 MBytes
600 MB
50
50
no
64 bit
32 bit
4 GBytes
32 MBytes
2 GB
66
100
100
133
100
133
200
100
133
166
66 100
100 133
400
533
800
400
533
667
8+8
kB
16 + 16
kB
16 + 16
kB
16 + 16
kB
MS DOS 3.2
(Windows 1.0)
MS DOS 4.0
(Windows 2.0)
MS_DOS 6.0
(Windows 3.0)
MS_DOS 6.22
(Windows 3.11)
Windows 95
256 kB
64 bit
36 bit
64 GBytes
4 GB
Windows 95 SE
256 kB
64 bit
36 bit
64 GBytes
512 kB
64 bit
36 bit
64 GBytes
32 + 32
kB
32 + 32
1 MB
2 MB
2 MB
64 bit
36 bit
64 GBytes
64 bit
36 bit
64 GBytes
per ogni core
condivisi
32 + 32
4 MB
64 bit
36 bit
64 GBytes
per ogni core
condivisi
64 MBytes
SDRAM
128 MBytes
SDRAM
256 Mbytes
SDRAM
DDR
512 MBytes
DDR
1 GBytes
DDR2
2 GBytes
DDR2
200
266
800
1066
10 GB
Windows 98
40 GB
Windows 2000
80 GB
Windows XP
160 GB
250 GB
250 GB
Windows XP
Windows Vista
L‟anno si riferisce all‟anno di commercializzazione del PC basato sul processore indicato.
L‟uscita sul mercato del processore può essere antecedente rispetto alla data di commercializzazione del PC.
pag 19
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Evoluzione dei microprocessori INTEL
Caratteristica importantissima di tutti i processori Intel dal 8086 fino ad oggi è che tutti i processori nati dopo l‟8086
mantengono la compatibilità software, cioè consentono l‟esecuzione di programmi scritti per l‟8086 mediante
l‟utilizzo di una modalità detta 8086 virtual mode supportata da tutti i processori fino a quelli attuali.
Nota: Una caratteristica da tenere presente è che tutti i processori Intel discendenti dell‟8086 sono macchine di tipo
CISC (Complex Instruction Set Computer), cioè con un set di istruzioni complesse e a lunghezza variabile.
Questa caratteristica era utile negli anni '70 e '80, perché permetteva di risparmiare costosa memoria. In tempi più
recenti, la lunghezza variabile è diventata un tallone d'achille che complica notevolmente il progetto dei nuovi
processori, i quali dedicano una parte consistente delle loro risorse a "tradurre" il set di istruzioni x86 in uno più
razionale. L‟alternativa alla tecnologia CISC è la tecnologia denominata RISC (Reduced Instruction Set Computer),
che prevede un set ridotto di istruzioni tutte della stessa dimensione. L‟obiezione alla tecnologia RISC è che, con
un set ridotto, le operazioni più complesse devono essere eseguite via software. Poi si perderebbe la compatibilità
Architettura
In informatica, architettura a 64 bit indica che il formato standard di una variabile semplice (intero, puntatore, handle
ecc.) è di 64 bit di larghezza. Generalmente questo riflette la dimensione dei registri interni della CPU usata per
quella architettura. Indica essenzialmente la possibilità di eseguire i calcoli a 64 bit.
Benché una CPU possa essere a 64 bit internamente, il suo bus dati esterno o il bus indirizzi possono avere
dimensioni differenti, maggiori o (raramente) minori, . In un sistema a 64 bit i puntatori sono anch'essi a 64 bit,
indipendentemente dalle dimensioni dell‟Address Bus (che potrà essere anche solo 36 bit con utilizzo di memoria virtuale).
8086
80386
Pentium 2
Pentium 4
Core 2 Duo
i3, i5, i7
Itanium
Architettura 16 bit
Architettura IA 32 a 32 bit (Intel Architecture-32 bit)
Architettura Intel P6
Architettura NetBurst sempre a 32 bit
Architettura EM64T Emulazione 64 bit x86 compatibile (2007)
Architettura Nehalem sempre basata su una Emulazione 64 bit x86 compatibile
Archtettura IA64 non compatibile con x86.
L‟ architettura EM64T (Extended Memory 64 Tecnology) detta anche IA32E, mediante registri aggiuntivi, è in
grado di eseguire SO a 64 bi, cioè a loro volta in grado di eseguire calcoli a 64 bit.
La nuova architettura IA64 (Architettura Intel - 64 bit), basata su registri interni a 64 bit, è al momento implementata
soltanto nei processori Itanium e Itanium 2 per i server e le workstation ad alte prestazioni, e non è compatibile con
la IA-32.
Package
Con l‟aumentare del numero dei piedini anche il package del microprocessore è cambiato negli anni.
 dual in line package (DIP) con i piedini disposti soltanto sui due lati lunghi (integrati classici). Package
utilizzato nell‟8086 (40 piedini complessivi) e in alcune versione del 80286

PLCC (Plastic Leaded Chip Carrier) di forma pressoché quadrata con i piedini disposti sull‟intero perimetro,
con 2 / 3 file di piedini per ogni lato (a partire dal 80286 fino al Pentium)
 La tecnologia PGA (Pin Grid Array), introdotta a partire dal Pentium II, utilizza pin molto più piccoli e
ravvicinati (come piccole “gocce”), disposti sull’intera area del processore con notevole aumento del numero.
 La tecnologia LGA (Land Grid Array) introdotta nelle ultime versioni del Pentium 4 con Socket 775 col fine
dichiarato di migliorare la gestione dei segnali in alta frequenza, prevede che i pin di contatto non siano più sul
processore, ma direttamente sul socket. Molte critiche. Secondo i produttori di motherboard Intel avrebbe
introdotto questo nuovo metodo di connessione per far ricadere i problemi di rottura dei pin sui produttori di
schede madri piuttosto che sulle proprie spalle. Il dissipatore è collegato alla motherboard mediante quattro
punti di ancoraggio. Package tutt‟ora in uso negli ultimi processori Core 2 Duo.
pag 20
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Clock
Una caratteristica costante nell‟evoluzione dei processori è il costante aumento della frequenza di clock. Con
l‟aumento del clock, la memoria centrale ed i vari adapter devono essere in grado di operare alla stessa frequenza di
clock del processore, altrimenti l‟aumento risulta del tutto inutile. In 20 anni di vita del Personal Computer (1981 –
2001) si è passati da 4.77 MHz dell‟8086 a 3.8 GHz del Pentium 4, poi vi è stata una brusca frenata dovuta
all‟eccessiva produzione di calore prodotto dai segnali a frequenza elevata. La frequenza di 4 GHz corrisponde una
lunghezza d‟onda di 7,5 cm, dunque campo delle microonde.
Memoria Cache
Come cache di livello 1 si intende una eventuale memoria cache presente direttamente all‟interno della CPU che
serve per il prefetch di istruzioni e dati che potenzialmente potrebbero essere utilizzati a breve (utilizzata per la
prima volta nel processore 80486 con 8 kBytes). Come cache di livello 2 si intende invece una memoria veloce
mappata insieme alla memoria centrale che contiene i dati utilizzati più recentemente (utilizzata fin dal 80386)
Coprocessore Matematico
Per l‟esecuzione dei calcoli in virgola mobile, i processori Intel x86 prevedevano, fino al 486, la presenza di un
coprocessore matematico costituito da un chip esterno alla CPU , avente sigla rispettivamente 8087, 80287 e 80387.
La presenza del coprocessore matematico non è indispensabile (le varie CPU sono dotate di un emulatore interno
ugualmente funzionante ma molto più lento). La presenza del coprocessore serviva per CAD e applicazioni
matematiche che richiedevano laboriosi calcoli matematici in virgola mobile. Dal Pentium in avanti, cioè dal
momento in cui le applicazioni grafiche hanno notevolmente incrementato la loro diffusione, il coprocessore
matematico è integrato all‟interno della CPU (all‟interno cioè della stessa piastrina di silicio, detta die).
2G – 80286 (i286): Modalità Protetta e Multitasking
Modalità Protetta aspetto più importante del 286, primo passo verso il multitasking.
La CPU 286 può infatti lavorare in due modi:
real mode simile a quello dell‟8086, dove ogni programma può scrivere in qualunque segmento
protected mode che consente 4 livelli di protezione (Kernel Mode, System Services, OS Extension, Application)
e le applicazioni non possono modificare i dati dei processi Kernel.
Queste due modalità saranno disponibili in tutti i processori successivi (fino a quelli attuali), dove il real mode
diventerà 8086 mode e consentirà l‟esecuzione di applicazioni basate su 8086.
La limitazione principale che tarpò le ali a questo prodotto consisteva nel fatto che poteva "entrare" in modalità
protetta, ma non poteva più "uscirne" senza essere resettato.
Bus e Registri: la CPU 80286 è in grado di indirizzare 16 MBytes di memoria reale, con Address Bus a 24 bit.
Bus Dati e Bus Indirizzi sono entrambi disponibili sui pin della CPU, con conseguente semplificazione della struttura
hardware esterna. Data Bus e Registri interni sono sempre a 16 bit. I segmenti sono indirizzati sempre tramite i
registri di segmento ma in modo completamente diverso nelle due modalità di lavoro.
Sistema Operativo nasce DOS 3.2 che, pur presentando nuovi comandi per la gestione di reti locali e la gestione dei
dischi da 3 ½ pollici, non è ancora in grado di supportare il multitasking. Per poter eseguire il cosiddetto protected
mode IBM crea un apposito SO denominato OS/2 alla fine mai decollato.
Su OS/2 nasce la prima versione di Windows (1.0) inteso come semplice programma applicativo che, grazie ad una
semplice interfaccia grafica, peraltro totalmente importata da Macintosh, consente all‟utente di lanciare più
applicazioni parallele dove ad ogni applicazione corrisponde all‟incirca una finestra aperta.
Il 286 fu il primo ad essere "copiato" con profitto da AMD che acquistò da Intel i diritti di produzione di processori
con codice x86 e creò un 286 competitivo per prestazioni e prezzi.
pag 21
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
3G – 80386 (i386): Architettura IA32, Multitasking reale, Memoria Virtuale
Caratteristiche Essenziali:
1)
2)
3)
4)
Nasce l‟architettura IA-32 con registri interni a 32 bit
Primo vero processore multitasking in grado di lavorare con modalità protetta, in cui ogni task dispone di 4
livelli di protezione (gli stessi del 80286).
MMU (memory management unit) integrata sul chip per un supporto hw alla paginazione della memoria
Introduzione della memoria cache di livello 2
1) Architettura IA32 Nella versione DX, oltre ai Registri Interni, anche Address Bus e Data Bus sono entrambi a 32
bit. I registri sono sostanzialmente gli stesi dell‟8086, con l‟aggiunta della lettera iniziale E che indica 32 bit.
Su questi registri si può operare anche a 16 o 8 bit. Ad esempio
EAX
Accumulatore
[32 bit]
AX Parte bassa di EAX
[16 bit]
AH Parte alta di AX
[8 bit]
AL Parte bassa di AX
[8 bit]
Nota: Anche il registro di flag diventa a 32 bit (EFLAG). Il bit 17 VM (Virtual Mode) consente l’attivazione /
disattivazione del Virtual Mode. L’istruzione IRET consente il ritorno al modo protetto.
2) Multitasking e Permessi Ogni processo non può accedere ai dati degli altri processi. I registri si di segmento
diventano sei (CS, SS, DS, ES, FS, GS che possono gestire due ulteriori segmenti di dato) e continuano ad essere a
16 bit. Il loro significato però è diverso rispetto all‟8086.


I primi 14 bit dei registri di segmento contengono l‟indirizzo (offset) del descrittore del segmento all‟interno
della SDT (Segment Descriptor Table). La SDT contiene gli indirizzi fisici dei vari segmenti che
compongono il programma.
I 2 bit più alti dei registri di segmento sono utilizzati per memorizzare il livello di protezione del processo
corrente (fra i 4 possibili valori già introdotti nel caso del 286).
3) Paginazione della memoria L‟introduzione del MMU consente una paginazione della memoria, swappando su
disco fisso i segmenti inutilizzati da più lungo tempo e consentendo l‟esecuzione di programmi di dimensioni
complessivamente maggiori rispetto alle reali dimensioni della memoria (memoria virtuale).
Nota: Essendo IP un registro a 32 bit, ogni segmento può avere una dimensione max di 4 GB. In questo modo, con
14 bit di selettore e 32 bit di offset, il 386 può pilotare fino a 2^46 byes di memoria virtuale (64 teraBytes).
4) Introduzione della L2 cache. Considerando che ad una frequenza di 33 MHz corrisponde un tempo di clock pari
a 1/33 = 30 nsec, la lentezza della RAM SIMM utilizzata, che presentava tempi di risposta di 80 nsec, indusse ad
aggiungere in memoria centrale due banchi da 32 kBytes ciascuno di SRAM con tempi di risposta di 20 nsec.
Quando la CPU accede a un dato, questo, oltre ad essere inviato alla CPU, viene anche salvato nella memoria
cache, in modo che il prossimo accesso sia molto più rapido. Questa cache, inserita a livello di memoria centrale,
sarà detta cache di Livello 2 per distinguerla da quella integrata nella CPU. (nelle macchine attuali supera i
2MBytes).
Sistema Operativo msDOS 4.0, presto seguito da msDOS 5.0, orientati al Multitasking ma che continuano ad
indirizzare la memoria a 16 bit (in pratica non esistono istruzioni per spostare tra CPU e memoria una doppia word in
un unico ciclo macchina. Caratteristica frequente nello sviluppo informatico negli anni a venire: lo sviluppo hardware
è sempre più rapido rispetto allo sviluppo software. Il primo vero SO di Miscrosoft a 32 bit sarà Windows 95.
A msDOS 4.0 è abbinata l‟applicazione ad interfaccia grafica Windows 2.0, seguita da Windows 2.1
AMD con la propria versione di 80386 raggiunse i 40Mhz contro i 33 massimi di Intel e nacquerole prime "guerre
legali" per l'utilizzo del codice x86.
pag 22
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
4G - 80486 (i486) Cache di Livello 1 e FSB
Caratteristiche Essenziali: Il 486 è molto simile al predecessore 386, con alcune interessanti novità hardware :
1.
2.
Cache di Livello 1 integrata nel processore grande 8kBytes complessivi (unificata per il prefech di istruzioni
e dati a cui le istruzioni fanno riferimento), con gestione FIFO.
Grazie ad un nuovo algoritmo (detto Read Ahead cioè Lettura Anticipata), la BIU va a caricare nella cache
integrata le istruzioni successive di codice anticipando gli accessi del processore e importando una certa
quantità di dati dalla memoria di sistema anche quando gli stessi non sono ancora effettivamente
richiesti, rendendo disponibili dati che, con elevata probabilità, saranno presto richiesti dalla CPU
Per la prima volta viene utilizzato per la CPU un clock più veloce rispetto al clock utilizzato dal Bus di
collegamento fra CPU e Memoria Centrale, detto FSB Front Side Bus. Si inizia a differenziare il CPU clock
dall‟FSB clock, caratteristica costante in tutte le future architetture INTEL.
NOTA: Nella versione cosiddetta DX2 il clock interno del processore viene per la prima volta raddoppiato
rispetto al clock esterno utilizzato dal bus (33 MHz). In questo modo si velocizza notevolmente l‟esecuzione
di istruzioni che non richiedono l‟accesso all‟esterno (perché ad esempio utilizzano dati già memorizzati
nella cache di livello 1). Nella versione DX4 il clock interno del processore è triplicato rispetto al clock
esterno, arrivando ad una frequenza max di clock interno pari a 100 MHz con un FSB clock di 33 MHz



Dispone di un dispositivo interno per la gestione della memoria detto SMM (System Management Mode)
evoluzione dell‟MMU del 386.
Incorpora anche il coprocessore matematico detto FPU (Floating Point Unit) affiancato alla ALU.
Per la prima volta si rende necessario un dissipatore di calore per l'alto assorbimento energetico della CPU
Sistema Operativo msDOS 6.0 abbinato a Windows 3.1, seguiti da msDOS 6.22 abbinato a Windows 3.11. msDOS
6.22 rappresenta l‟ultima versione di msDOS, che, nel Pentium, sarà sostituito dal nuovo SO Window 95.
In questi annoi si affaccia sul mercato un nuovo produttore: la Cyrix, che però non utilizza un codice completamente
uguale al 486 intel/amd. Prestazioni inferiori dal 486, ma il costo è molto ridotto.
5G – Pentium (i586): tecnologia superscalare
Nel 1993 Intel introduce un nuovo processore denominato Pentium anziché 80586 per il fatto che le leggi americane
non consentono di riservare un copyright per una sigla numerica. Il nome Pentium nasce dal prefisso greco pent che
significa cinque (serie 586).
Caratteristiche Essenziali:
1)
2)
3)
4)
Architettura superscalare: il Pentium possiede 2 Pipeline indipendenti ciascuna con una propria ALU ed
articolate in 5 stadi : caricamento, decodifica, generazione indirizzi di memoria, esecuzione, completamento
(cioè modifica dello stato della CPU e scrittura in memoria). Le istruzioni vengono caricate alternativamente
nelle 2 pipeline, dopo di che, mentre le prime 2 istruzioni passano allo stadio 2 di “decodifica”, le 2 pipeline
provvedono a caricare altre 2 istruzioni. Quindi le prime 2 passano allo stadio 3 di generazione degli indirizzi
mentre le altre 2 passano allo stadio di decodifica e due nuove istruzioni vengono caricate.
Una pipeline, chiamata "pipeline U", può eseguire qualunque istruzione, mentre l'altra, chiamata "pipeline
V", può eseguire solo quelle più semplici e comuni. Sono presenti due distinte cache da 8 k byte ciascuna
(una per i dati ed una per il codice), utilizzabili da entrambe le pipeline.
Insieme alle due pipeline viene introdotta la cosiddetta Branch Prediction Unit (BPU) unità di predizione
dei salti (basata su uno storico dei degli indirizzi a cui sono stati fatti i salti fino al momento attuale), in modo
da precaricare al più presto le istruzioni successive. Una previsione errata dei salti comporta l‟intero
svuotamento delle pipeline. Un‟apposita analisi ha mostrato una valutazione corretta per il 90 % dei casi.
Data Bus a 64 bit: questa caratteristica raddoppia la quantità di informazioni prelevabili dalla memoria in
ogni singolo ciclo di bus. I Registri interni continuano però ad essere a 32 bit, per cui i Pentium, nel loro
insieme, devono essere considerati come Processori a 32 bit.
L‟ultima versione del Pentium 1, denominata MMX, supporta le nuove istruzioni MMX (Multi Media
Extension) che facilitano l‟esecuzione delle nascenti applicazioni multimediali di grafica 3D, streaming audio
pag 23
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
e video, riconoscimento e sintesi vocale. Le istruzioni MMX sono istruzioni di tipo SIMD (Single Instruction
Multiple Data), in grado di agire parallelamente su dati multipli (sfruttando le unità di elaborazione parallele)
In applicazioni multimediali ottimizzate consentono fino al 40% di incremento di prestazioni.
Sistema Operativo Nasce Windows 95 come SO indipendente. Primo SO a 32 bit.
Clock: CPU a 75 e 100 MHz e FSB a 50 MHz-
6G - Pentium II (i686) superscalarità avanzata
Lanciato il 7 maggio 1997 come evoluzione del Pentium PRO. La prima versione (Klamath) aveva clock a 233 e 266
MHz con FSB pari a 66 MHz, inadeguata rispetto alle potenzialità del processore. Produzione di una enorme quantità
di calore, per cui insieme alla CPU viene fornito un apposito dissipatore. Seconda versione (Deschutes), con CPU
clock di 333 MHz e FSB 100 MHz, grazie all‟avvento delle memorie SDRAM.
Caratteristiche Essenziali:
1)
Nuova architettura INTEL P6 con Address Bus a 36 bit e possibilità di indirizzare 64 GB di RAM
2)
Superscalarità: sono presenti tre pipeline di elaborazione parallela delle istruzioni (contro le 2 del Pentium),
ciascuna realizzata attraverso ben 14 stadi successivi, con più stadi di preparazione intermedia delle operazioni
3)
Viene affinata la tecnica del Branch Prediction: le istruzioni successive al salto non solo vengono caricate,
ma vengono pure eseguite, senza aggiornare la memoria con in risultati (esecuzione speculativa). In caso di
errata previsione del salto il processore “ritorna indietro” azzerando quando già eseguito.
4)
Cache di livello 2 integrata nel package (256 kBytes)in modo da fornire ancora più rapidamente i dati alla
unità di elaborazione. La cache non è integrata nello stesso chip, ma fa parte di un chip separato interno allo
stesso package e collegato al core della CPU mediante apposito bus dedicato.
Nei sistemi basati sul Pentium II vengono introdotti la SDRAM DIMM e il bus AGP
Una versione economica del Pentium II (sostanzialmente un Pentium II con poca o nessuna cache L2) fu chiamata
Celeron, che diventa il capostipite della linea economica di Intel (con minori prestazioni). Venne anche prodotta una
versione di fascia più alta destinata a Server e Workstation denominata Xeon (maggiore velocità, maggiore capacità
di memoria cache, diverso involucro), nome utilizzato di qui in avanti per identificare i processori server.
6G - Pentium III (i686)
Lanciato il 26 febbraio 1999. Stessa identica architettura del precedente con due piccoli miglioramenti

Supporto delle istruzioni SSE che sono l‟analogo in virgola mobile delle istruzioni MMX (virgola fissa).
Costituiscono la base dell‟elaborazione 3D, basata appunto su numeri floating point.

Migliore gestione della L2 cache interna , portata a 512 kBytes ed operante alla velocità di CPU. Il
collegamento fra il core e la LL2 cache è realizzato mediante un bus dedicato a 256 bit.
7G - Pentium IV i786 Architettura NetBurst
6
1)
2)
3)
4)
Nuova architettura, denominata NetBurst, caratterizzata da una pipeline organizzata in 20 stadi successivi
Notevole aumento delle frequenze di clock di CPU e di FSB,con un FSB clock pari a 400 MHz ottenuto
tramite quattro “bus paralleli” a 100 MHz, considerati nel loro insieme come un unico bus a 400 MHz. Non
più due, ma tre frequenze: clock base = 100 MHz, FSB = 4x (400 MHz), CPU clock = 14x (1.4 GHz).
Cache di Livello 2 integrata nello stesso die di dimensioni pari a 512 KBytes.
Introduzione del cosiddetto Hyper-Threading, tecnologia Intel che consente al processore di "apparire"
come fosse composto da due processori "logici" separati. In realtà i miglioramenti legati all‟Hyper-Threading
non sono evidenti per l'utente medio e servono solo per le applicazioni di grafica avanzata. L‟HyperThreading è stato abbandonato nei processori dual core ma in seguito riutilizzato nei Core 2 Duo.
pag 24
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Prima versione (Willamette 423 pin), fu lanciata il 20 dicembre 2000 con frequenza di clock di 1,4 GHz ottenuta
mediante un moltiplicatore 14 rispetto alla frequenza base di bus pari a ¼ di FSB (100 MHz).
Seconda versione (Northwood 478 pin) con clock di CPU a 3.2 GHz e FSB a 533 MHz.
Terza versione (Prescott 2 febbraio 2004) con clock di CPU a 3.8 GHz e FSB a 800 MHz.
Quarta versione (Cedar Mill inizio 2006) mirata a ridurre i problemi di temperatura delle versioni precedenti
Ben presto Intel si rese però conto del fatto che, a causa sia dei problemi di eccessiva produzione di calore, sia ai
nascenti problemi di interferenza elettromagnetica, ulteriori aumenti di frequenza di clock erano praticamente
impossibili, e cominciò a spostare l‟attenzione verso il miglioramento dell'architettura e la riduzione dei consumi.
7G - Pentium IV M e la piattaforma Centrino
Introdotto il 12 marzo 2003, il Pentium IV M è un microprocessore molto più efficiente e a minor consumo a
parità di clock ottimizzato per l'utilizzo in computer portatili, per estendere la durata della batteria. Per consumare,
e riscaldare, molto meno di un processore per computer desktop, il Pentium M utilizza un clock inferiore rispetto al
Pentium 4 (ancora in produzione in parallelo al Pentium M fino al 2006), ma con prestazioni molto simili (un
Pentium M a 1,4 GHz tipicamente ha prestazioni confrontabili a quelle di un Pentium 4 Northwood a 2,4 GHz).
Principali accorgimenti per il risparmio energetico:
 La cache secondaria, che in genere consuma molta potenza, utilizza un metodo innovativo di accesso per
evitare attivazioni di sue parti a cui non si farà accesso.
 voltaggio ridotto (LV Low Voltage, da un minimo di 0,84 V ad un massimo di 1,39 V).
 frequenza di funzionamento variabile che permette al Pentium M di "rallentare" quando il sistema è inattivo o
in modalità di risparmio energetico. La velocità minima consentita è 6 x rispetto al clock base di 100 MHz
(FSB/4), cioè 600 MHz.
Supporto per istruzioni MMX2 e SSE2, L2 cache di 2 MBytes
Tecnologia a 90 nm (dimensione del gate del transistor) con 140 milioni di transistor
I nomi in codice dei Pentium M traggono tutti ispirazione da altrettante località israeliane, dove Intel possiede un
importante centro di ricerca e sviluppo (presso Haifa)
Prima versione (Banias 12 marzo 2003) con frequenze tra 1,3 GHz e 1,7 GHz, e cache L2 da 1 MB
Seconda versione (Dothan 10 maggio 2004) L2 cache da 2 MB.
I processori Pentium M Dothan sono i primi ad essere identificati da un processor number piuttosto che dal clock :
Pentium M 715 (1,5 GHz), 725 (1,6 GHz), 735 (1,7 GHz), 745 (1,8 GHz), 755 (2,0 GHz), 765 (2,1 GHz), 770 (2,13 GHz)
Piattaforma Centrino
Pentium M rappresenta il cuore della innovativa piattaforma Centrino (dalla
fusione delle parole "centre" e "neutrino"), tecnologia sviluppata da Intel
specificatamente per l'utilizzo nell'ambito dei computer portatili (detta anche Centrino
Mobile Technology) e basata sui seguenti componenti chiave:






CPU Pentium M a basso consumo (prima Banian poi Dothan)
Possibilità di indirizzare 2GBytes di DDRAM a 2,5 V (tecnologia a basso consumo e costo estremamente
contenuto) controllata da un nuovissimo Chipset Intel i855 indicato comunemente come NorthBridge
Scheda Wi-Fi Intel PRO/Wireless 2100 che permette al PC di connettersi a reti Wireless con standard 802.11
a/b senza installare moduli di terze parti. Anche questo modulo utilizza una gestione oculata del consumo
energetico. È disponibile anche la scheda PRO/Wireless 2200 per gestire il protocollo 802.11 b/g
BUS PCI Express a 533 MHz per il collegamento di schede grafiche avanzate
Scheda Audio Intel High Definition Audio (conosciuta con il nome in codice di Azalia) per l'audio ad alta
definizione (6 canali Dolby Surround)
Interfaccia SATA per la gestione di hard disk da 80 GB.
pag 25
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
7G - Anno 2005 / 2006 : I processori DUAL CORE
7G - Il Pentium IV D: il primo processore Dual Core -Desktop
Terminata la corsa ai GHz (rimasti fermi alla frequenza massima di 3.8 GHz del Pentium IV core Prescott), Intel ha
cambiato rotta puntando sul miglioramento dell'architettura e sulla parallelizzazione delle operazioni.
Logica conseguenza: se non si riesce ad aumentare la velocità con cui si esegue un'operazione, per aumentare le
prestazioni bisogna aumentare il numero di operazioni che si possono compiere nell'unità di tempo, e il continuo
affinamento dei processi costruttivi e la miniaturizzazione hanno consentito di imboccare questa nuova via.
Nel maggio 2005 Intel presenta il Pentium IV D (i786) , primo processore dual core, denominato Smithfield, e
formato essenzialmente da 2 Pentium IV Prescott uniti sullo stesso package.
Nel gennaio 2006 viene presentata la sua evoluzione denominato Presler costituito da due Pentium IV Cedar Mill
uniti sullo stesso package.
Si tratta di processori per computer desktop privi delle ottimizzazioni energetiche che avevano caratterizzato la
piattaforma Centrino.
Sia Smithfield che Presler dispongono di una L2 cache di 1 MB dedicata per ogni singolo core (visibile cioè soltanto
al singolo core), 2 MB totali. Frequenza tra 2,8 e 3,2 GHz. Nel Presler i due core, pur appartenendo allo stesso
package, sono distinti e non integrati in un unico circuito. La frequenza è compresa tra 3,0 e 3,6 GHz.
La produzione dei Pentium IV D è cessata nel corso del 2007.
7G - Il processore Core Duo per Notebook
Il 15 novembre 2005 Intel presenta un nuovo modello di Pentium M denominato Yonah, costituito essenzialmente
da due Pentium IV M - Dothan costruiti affiancati in un unico blocco di silicio.
Avendo già utilizzato la sigla Pentium IV D per la versione Desktop Dual Core, a questo nuovo processore Intel
assegna il nome Core Duo, per sottolineare la caratteristica dual core
Caratteristiche:
 tecnologia a 65 nm integrando circa 151 milioni di transistor. Packege Socket 479
 Clock base = 166,75 MHz. FSB 4x cioè 667 MHz. Clock di CPU 12x, cioè 2 GHz,
 velocità di stand by pari a 6x, cioè 1 GHz.
 Cache di Livello 1 pari a 64 kB (come per il Penitum M) per ciascuno dei due core.
 Cache di Livello 2 pari a 2 MB condivisa fra i due core (qualora un core fosse inattivo, l'altro ha la possibilità
di allocare tutta la cache L2 di 2 MB), condivisione detta SMART CACHE. In questo modo i due core
possono comunicare attraverso la cache senza bisogno di un bus dedicato.
 Il processore è in grado di disattivare uno dei due core in modalità di risparmio energetico.
 Disco rigido SATA da 160 GB o 250 GB.
7G Piattaforma Centrino 2
Il 5 gennaio 2006 Intel presenta l'ultima evoluzione della piattaforma Centrino (sempre indirizzata ai Notebook),
basata sul nuovo processore Core Duo e denominata Centrino Duo con le nuove seguenti caratteristiche:



processore Core Duo,
nuovo NorthBirdge (chipset i945) per la gestione di RAM DDR2 a 1,8 Volt (consumi ulteriormente ridotti)
modulo wireless Intel Pro Wireless 3945 ABG in grado di offrire connettività senza fili attraverso i
protocolli 802.11 a/b/g riducendo contemporaneamente ad un terzo le dimensioni fisiche della scheda e i
consumi rispetto alla versione precedente.
Disponibile anche una analoga piattaforma denominate Centrino Solo basata sul processore Core Solo.
pag 26
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
8G i886 Anno 2007 : I processori CORE 2 Duo
(Desktop, Notebook e Server)
Il 27 luglio 2006 Intel presenta un processore di ottava generazione (8G) denominato
Core 2 Duo. Core 2 perchè presenta una profonda revisione dell'architettura interna
chiamata Intel Core Microarchitecture EM64T (emulaz 64 bit) che sostituisce la
precedente architettura NetBurst, e supporta Sistemi Operativi a 64 bit.
La nuova Intel Core Microarchitecture consente di aumentare l'efficienza del 20%
rispetto al precedente Core Duo (Yonah).





tecnologia a 65 nm (con 291 milioni di transistor), die monolitico, alimentazione 1,21 V Package LGA 775
tecnologia a 64 bit EM64T in grado di eseguire SO a 64 bit (ultime versioni di Vista)
riutilizzo dell‟Hyper-Threading in grado di mostrare al SO il doppio dei core "fisici" presenti nel sistema.)
cache L2 integrata pari a 4 MB complessivi, condivisi fra i due core
clock intorno ai 3 GHz -
Diverse Versioni:
 sistemi desktop con core detto Conroe, serie Exxx consumo max 65 watt, dove succede al Pentium D Presler
(che consumavai 130 watt).
 sistemi notebook con core detto Merom, serie Txxx, consumo max 21 watt, dove succede a Core Duo Yonah
 Allendale è una versione economica di Conroe con una cache L2 dimezzata. Presentato a inizio 2007
 Kentsfield, CPU a 4 core (costituita da 4 Conroe 65 nm) rilasciata a metà 2007 con utilizzo soprattutto nel
campo dei videogiochi (Core 2 Duo Extreme Edition)
 sistemi server denominati sempre Xeon (basati ora su core Woodcrest ) alternativi ai processori Itanium basati
su vera architettura IA64 incompatibile con la IA32
A fine 2007 North Bridge Crestine (gestione RAM DDR3) e piattaforma Centrino Pro con Tecnologia 45 nm
8G – ATOM – Marzo 2008
Aprile 2008 orientato ai dispositivi portatili (smartphone e palmari). Single Core. Due pipeline a 16 stadi. 45 nm.
LGA 441. Bassissimo consumo (10 volte inferiori rispetto ai predecessori). Scheda Wireless integrata.
Nuova piattaforma Centrino ATOM
9G i986 Novembre 2009 : I processori i3, i5, i7
-
i=intel
Novembre 2009 9° Generazione i986 Nuova Achitettura Nehalem sempre di tipo EMT64 con i modelli i3, i5, i7
 Tecnologia iniziale 45 nm -poi 32 nm (fino a 500 milioni di transistor). Clock sempre intorno ai 3 GHz
 3 livelli di cache integrati (di tipo inclusivo. La L3 cache contiene anche le informazioni presenti negli altri 2
livelli di gerarchia della cache). Ogni core ha a disposizione 2 blocchi di L1 cache da 32 KB ciascuno, una L2
cache da 256 KB e una cache L3 da 4 MB condivisa fra tutti i vari core. Sistema Video integrato.
 Controller della memoria RAM integrato nel processore e non più nel Northbridge del chipset
 Core i3 Fascia Bassa (Arrandale) dual core su die monolitico . Socket LGA 1146.
 Core i5 Fascia Media (Clarksfield) quad core nativo, ovvero i 4 core vengono realizzati a Die Monolitico e non
unendo due die dual core in un unico package come nel Core 2 Quad. Socket LGA 1146
 Core i7 quadcore nativo, simile al precedente m con alcuni ulteriori elementi aggiuntivi. Socket LGA 1366 pin
Gennaio 2011.Sandy Bridge è il nome in codice dell'architettura x86 di decima generazione sempre EM64T che va a
succedere alla precedente architettura Nehalem, anzi alla sua evoluzione a 32 nm. Sandy Bridge prevede processori
realizzati mediante processo produttivo prima a 32 e poi 22 nm (Ivy Bridge) disponibili in varie versioni fino a 6 core
con frequenze che raggiungono i 3,6 GHz (3,9 GHz con Intel Turbo Boost Technology). È previsto che la dotazione di
cache per ogni core sia di 80 KB per la L1 (con un tempo di lettura di 3 cicli di clock), 256 KB per la L2 (8 cicli).
http://en.wikipedia.org/wiki/List_of_Intel_Core_i3_microprocessors elenco completo di tutti i processori di 9° e 10° G
my: core Arrendale 32 nm 382 ml di transistor, - Modello i3-M330 a 2.13 GHz, 35 Watt
L1 cache 2 x 256 KB, L2 cache 3 MB
pag 27
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Componenti di un Personal Computer
Motherboard
Scheda principale del PC alla quale sono collegati tutti i vari componenti del sistema computer. Contiene

il socket per l‟inserimento della CPU (attualmente LGA 775)

una flash rom contenente le istruzioni di start up della macchina (bios)

due chipset, il northbridge controller e il southbridge controller, che gestiscono la sincronizzazione della
comunicazione fra i vari dispositivi. Il northbridge, più vicino alla CPU gestisce i dispositivi più veloci, (in
primo luogo la memoria), mentre il southbridge gestisce i dispositivi più lenti.

scheda di rete e scheda video normalmente integrate

slot per l‟inserimento dei banchi di memoria (da 1 a 4, attualmente di tipo DDR2 – DDR3)

slot ATA (3 o 4) per il collegamento di HD, Floppy Disk, CD/DVD, Smart Card

slot PCI (3 o 4) direttamente collegate ai bus per l‟utilizzo di schede PCI (schede video avanzate, schede
audio, scheda wireless)

Connettore tipicamente blu per 4 porte USB

Connettore per il mouse (PS/2 verde)

Connettore per la tastiera (PS/2 violetto)

Alcuni dipswitch (selettori) o jumper (ponticelli metallici), a seconda delle mother board, per
l‟impostazione di alcuni parametri fondamentali (es clock di CPU, tensione di alimentazione della RAM,
reset del bios)

Alcuni connettori per collegare led e pulsanti contenuti sul fronte del case, oppure per montare porte
aggiuntive (USB, seriali, parallele).
Connettori ausiliari
Servono per collegare segnali che provengono dal case raccolti in genere in un unico fascio. I cavi da cablare, che
variano comune da main board a main board, sono generalmente :





Tasto di Accensione
Tasto di Reset
Led
HD Led
Buzzer
I cavetti relativi a “Tasto Accensione” e “Tasto Reset” di solito devono semplicemente chiudere un contatto per cui il
verso d inserimento è indifferente. I cavetti relativi a Led e Buzzer hanno invece una polarità identificata dai segni +
e – che deve essere rispettata.
CPU
Le attuali tecnologie con gate da 45 nm e con oltre 300 milioni di transistor integrati all‟interno di un unico die (die =
piastrina di silicio) hanno consentito di integrare all‟interno della CPU, oltre alla ALU e ai registri, numerose altre
funzioni fra cui:







Il gestore della memoria centrale (MMU) (80386)
Memoria cache di livello 1 per il pipeline delle istruzioni e dei dati a cui le istruzioni fanno riferimento (80486)
Moduli per le architetture pipiline (Pentium 1 superscalare con due pipeline indipendenti)
Il coprocessore matematico per i calcoli in virgola mobile(Pentium 1)
Branch Prediction Unit (Pentium 1)
Memoria cache di livello 2 (Pentium 2, ma soltanto dal Penitum 4 integrata all‟interno dello stesso die ).
Istruzioni avanzate per la gestione della grafica: MMX (Penitum 1) e SSE (Pentium 3) per i calcoli floatingpoint
pag 28
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Case e Alimentatore
Il case più diffuso per PC desktop è il tower (colonna verticale), sul cui lato frontale si trovano i pulsanti di
accensione e reset. Gli attuali alimentatori, con ventola di raffreddamento, erogano circa 350 - 400 W (partendo dai
150 Watt delle piattaforme 8086 fino ai 500 Watt per le piattaforme Pentium 4 che, da solo, assorbiva già 110 Watt).
L‟alimentatore fornisce le tipiche tensioni di +5V e +12V, con in aggiunta diverse altre tensioni che in genere
vengono “portate” soltanto sulla mother board (ad esempio il + 3 V). I connettori in uscita dall‟alimentatore sono :



connettore EATX a 20 poli che serve per alimentare la main board (che spesso richiede una alimentazione
separata a 4 poli per l‟alimentazione separata del processore).
più connettori ATX a 4 fili (Rosso = 5V, Grigio o Giallo = 12V, con i rispettivi riferimenti di massa) con
verso obbligato di inserimento, detti in gergo connettori Molex
Il connettore per il floppy è l‟unico più piccolo rispetto agli ATX (sempre però a 4 fili).
I BUS di un Personal Computer
 I 3 bus logici (Address Bus, Data Bus e Control Bus) che costituiscono lo schema logico di un sistema 8086, a
livello operativo confluiscono all‟interno di un unico bus fisico, (o bus interno) che, correndo su apposite piste
stampate sulla mainboard, raggiunge i vari slot su cui si potevano montare tutte le possibili schede esterne, come
ad esempio la scheda video, la scheda di controllo di HD e Floppy Disk (ora integrate nella mainboard), la
scheda di rete, le schede audio, etc.
 Nelle mainboard recenti, per evitare che un dispositivo lento si impossessi del bus impedendo di fatto l‟accesso
ad altri dispositivi più veloci facendo così crollare le prestazioni del sistema, si tende ad evitare di utilizzare un
unico bus fisico comune a tutti i dispositivi, ma si utilizzano diversi bus, ciascuno dotato di una velocità
adeguata rispetto ai dispositivi che deve collegare. Una main board attuale utilizza in generi i seguenti bus:
-
-
-
FSB Front Side Bus di collegamento fra CPU e Memoria attraverso il North Bridge. Il coefficiente
moltiplicativo di FSB e di CPU clock rispetto al clock base può essere modificato tramite BIOS (overclock)
- Memory Bus Collega il North Bridge alla memoria (continuazione dell‟FSB)
- Bus AGP Nei sistemi più moderni l‟FSB viene utilizzato anche per collegare schede grafiche
particolarmente veloci (AGP, oggi PCI Express 16)
Bus VLink Collega il North Bridge al Suth Bridge
Tutti questi bus operano al massimo ad una velocità pari a FSB. Le velocità di Memory Bus e AGP Bus,
all‟accensione, si adeguano automaticamente alla reale velocità di memoria e scheda AGP (SPD Serial
Presence Detection), con valori in genere inferiori rispetto a FSB. La velocità di lavoro della memoria può
essere in genere modificata tramite BIOS disabilitando il detection automatico (sconsigliato).
Bus di IO (Bus Interno) Collega direttamente il south bridge agli slot di espansione interni.
Bus Esterni Collegano i Controller di IO (integrati nel South Bridge) con i principali dispositivi esterni
(HD, Floppy, Lettore CD, etc.) presenti nel Personal Computer.
CPU
FSB
RAM
Memory
Bus
North Bridge
Bus
PCIx16
Scheda
Grafica
V LINK
Slot PCI
South Bridge
Bus Esterni
Bus interni
PCI
LAN
TASTIERA
MOUSE
USB
VT1211 (FLOPPY
Slot IDE /
SATA
SERIALE
PARALLELA)
pag 29
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Chipset (north bridge e south bridge)
I chipset sono circuiti logici che gestiscono il traffico dati tra i vari sottosistemi della motherboard.
Tra i principali produttori di chipset, oltre a Intel e AMD, sono VIA, ALI, SIS e NVIDIA.
North Bridge più vicino alla CPU. Provvede alla gestione dei bus di interconnessione veloce tra CPU e Memoria
centrale e alla gestione dei dispositivi “veloci” (es eventuali schede AGP). Il North Bridge comunica con la CPU
attraverso l‟FSB, che rappresenta in genere il collo di bottiglia di un PC. Es di North Bridge VIA P4M900 con
processore video integrato (“scheda “IGP Integrated Graphics Processor) dotato di 256 MBytes di memoria.
Svolge anche la “vecchia” funzionalità di DMA Controller per il refresh della memoria dinamica.
South Bridge provvede alla gestione dei bus di interconnessione verso i dispositivi di I/O più “lenti”, includendo le
funzioni di gestore delle interruzioni PIC (vecchio 8259), UART (vecchio 8251), PPI (vecchio 8255). Ad esempio l
south bridge VIA VT8237S genera il bus PCI (o bus ISA nei sistemi più vecchi), implementa i Controller IDE e
SATA per le memorie di massa (hard disk, lettori CD/DVD), il Controller USB, interfaccia con tastiera, mouse,
eventuali schede Ethernet (via cavo e/o WiFi IEEE 811), porta seriale porta parallela e floppy,
MEMORIA CENTRALE
E‟ costituita da più integrati inseriti su apposite schede di memoria dette comunemente banchi di memoria.
Caratteristica importantissima dei banchi di RAM è la velocità di risposta, cioè il tempo che intercorre tra la
richiesta di accesso ad un certo indirizzo e la disponibilità del dato. Dell‟ordine dei nanosecondi.
Questo tempo deve essere minore o uguale rispetto al tempo di bus (FSB).
Gli integrati di memoria si dividono in due grandi categorie:
SRAM Static RAM. Basate essenzialmente su Flip Flop elettronici, con tempi di accesso molto rapidi ma consumi e
costi elevati, e densità di impacchettamento ridotte (cioè occupano più spazio). Utilizzate nelle memorie cache.
DRAM Dynamic RAM. Meno veloci delle precedenti, ma decisamente più economiche. Il bit è memorizzato come
stato di carica di un condensatore più un circuito di rigenerazione della carica. Le DRAM devono infatti essere
rinfrescate periodicamente per ovviare alla scarica del condensatore (lettura e rinfresco del valore). A questo compito
è dedicato un canale del circuito di DMA che, ad intervalli regolari (153 msec nell‟8086) provvede a rinfrescare
l‟intera memoria RAM del sistema. Le RAM dei PC sono sempre realizzate con tecnologia DRAM.
Memorie DRAM
Memorie a Elementi discreti. Nei sistemi 8086 si utilizzavano integrati di memoria DRAM disposti direttamente
sulla main board con il classico Dual InLine Package (DIP).
Memorie SIMM A partire dal 80286 la memoria ha iniziato ad essere realizzata sotto forma di circuito stampato su
scheda SIMM (Single Inline Memory Module) in modo da risparmiare spazio sulla Main Board e facilitare le
espansioni di memoria, aggiungendo singole schede facili da inserire, anziché aggiungere integrati sulla Main Board.
Le SIMM erano alimentate a 5 Volt con circuiti integrati disposti soltanto su un lato del circuito stampato di base.
Le prime versioni avevano 30 piedini disposti dallo stesso lato degli integrati ed erano in grado di pilotare 1, 2, 4, 8
megabyte. Successivamente vennero introdotte delle schede SIMM a 72 pin (disposti sempre su un lato singolo)
dotate di una tacca centrale e disponibili in tagli da 4, 8, 16, 32 e 64 megabyte, in grado di gestire dati a 32 bit ad
una velocità di 33 MHz. Tra le memorie SIMM si possono citare le FPM DRAM seguite dalle EDO DRAM
Memorie SDRAM – DIMM (Syncronous DRAM - Dual Inline Memory Module), introdotte a partire dal Pentium
II (1997), sono moduli di memoria sotto forma di circuito stampato a doppio lato (letteralmente a doppio modulo di
memoria allineata) con alimentazione ridotta a 3,3 V, connettore a 168 PIN, 84 per ciascuna faccia della scheda (36
bit di Address Bus, 64 bit di Data Bus più segnali vari di controllo) con due tacche sulla piedinatura (intese come
intaglio nella scheda, cioè con assenza di pedini). La posizione delle tacche determina rispettivamente il tipo della
memoria (dimensioni) e la tensione di alimentazione.
pag 30
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
La dimensione di una scheda di memoria SDRAM DIMM può essere 64 - 256 – 512 MBytes.
Il fatto di operare sincronizzate al clock di bus consente alle SDRAM di eseguire una pipeline delle richieste di
lettura e scrittura, in modo da poter accettare ed accodare nuovi comandi mentre altri comandi sono in corso di
esecuzione. Nelle memorie precedenti asincrone, i segnali d‟ingresso dovevano invece permanere per tutto il tempo
necessario al completamento dell‟operazione, impedendo di fatto l‟accodamento di nuovi comandi.
In questo modo le SDRAM riescono a raggiungere velocità decisamente superiori rispetto alle precedenti,
raggiungendo per la prima volta frequenze di lavoro pari a 100 MHz, cioè tre volte superiore alla massima frequenza
delle SIMM, Le apposite specifiche PC100 definiscono le caratteristiche delle memorie SDRAM DIMM.
Memorie SDRAM DDR (Dual Data Rate cioè a doppio flusso di dati) fanno la loro comparsa nel 2003, con
l‟introduzione della piattaforma CENTRINO, sostituendo definitivamente le SDRAM DIMM e segnano una nuova
era per le RAM.

La memoria DDR sfrutta entrambi i fronti di commutazione del ciclo di clock, riuscendo ad eseguire un
doppio trasferimento per ogni ciclo di clock. In questo modo si riesce ad ottenere un transfer rate doppio
rispetto alla velocità di clock. Dalle DDR in avanti occorre distinguere tra Clock Base e Transfer Rate.
Memoria
DDR-200
DDR-266
DDR-333
DDR-400







Clock
100 MHz
133 MHz
166 MHz
200 MHz
Transfer Rate
200 MHz
266 MHz
333 MHz
400 MHz
La velocità di riferimento per la memoria DDR è il Transfer Rate, che dovrà essere prossima al valore di
FSB (ma che in genere è un po‟ inferiore, con adeguamento automatico della velocità del Memory Bus)
Il fatto di utilizzare un clock più basso rispetto al Transfer Rate raggiungibile (1/2), apporta una serie di
semplificazioni costruttive che consentono un notevole contenimento dei costi.
Il fatto di utilizzare un clock più basso, abbinato al miglioramento tecnologico nella produzione dei chip (con
alimentazione a 2,5V contro i 3,3 delle DIMM), consente alle DDR un notevole risparmio energetico.
Nuovo connettore a 184 pin con una unica tacca centrale
I banchi di memoria DDR hanno una dimensione tipica di 512 MBytes con un parallelismo di 64 bit
Una DDR, attraverso il BIOS, può essere utilizzata a velocità inferiori rispetto a quella per cui è stata
progettata (underclocking) o a velocità superiori (overclocking), a rischio e pericolo dell‟utilizzatore.
Al fine di ottimizzare le prestazioni è raccomandato l‟utilizzo banchi di memoria dello stesso tipo (cioè con
le stesse caratteristiche, stessa velocità, stesso costruttore).
Le SDRAM DDR2 fanno la loro comparsa nel 2005 e rappresentano lo standard attuale. Caratteristiche:
 Mediante un prefetch buffer a 64 bit, le memorie DDR2 riescono ad eseguire un doppio trasferimento per
ogni fronte di clock (salita e discesa), con un ulteriore raddoppio del transfer rate rispetto alla frequenza base
di clock, con un Transfer Rate complessivo pari a 4 volte la frequenza di clock.
Memoria
DDR2-400
DDR2-533
DDR2-667
DDR2-800
DDR2-1066


Clock
100 MHz
133 MHz
166 MHz
200 MHz
266 MHz
Transfer Rate
400 MHz
533 MHz
667 MHz
800 MHz
1066 MHz
Il clock pari a ¼ del Transer Rate consente un definitivo abbattimento dei costi.
Una scheda da 1 GByte a 667 MHz costa 20 € !
I banchi di memoria DDR 2 hanno una dimensione tipica di 1 GBytes con un parallelismo di 64 bit
pag 31
Sistemi - Classe Terza
robertomana.it
Il Personal Computer


Alimentazione può essere indifferentemente a 2,5V o 1,8 V con ulteriore risparmio energetico legato sempre
al miglioramento tecnologico senza innalzamento del clock base.
Connettore a 240 pin dunque di dimensioni leggermente superiori rispetto alle DDR, ma sempre con
un'unica tacca centrale. Non compatibile con lo slot DDR
Le SDRAM DDR3 fanno la loro comparsa nel 2007.
 Le DDR3 raddoppiando il prefetch buffer , riescono a trasferire quattro dati per ogni colpo di clock, con
ulteriore raddoppio del Transfer Rate che risulta ora 8 volte maggiore rispetto alla frequenza base di clock.
Memoria
DDR3-800
DDR3-1066
DDR3-1333
DDR3-1600



Clock
100 MHz
133 MHz
166 MHz
200 MHz
Transfer Rate
800 MHz
1066 MHz
1333 MHz
1600 MHz
Il connettore è sempre a 240 pin come le DDR2 ma utilizza un nuovo slot con tacche differenti.
I banchi di memoria DDR3 hanno una dimensione tipica di 2 GBytes con un parallelismo di 64 bit
I costi al momento (inizio 2008) sono ancora decisamente superiori rispetto alle DDR2
I Sistemi attuali (inizio 2008) dispongono normalmente di 2 (o quattro) slot di memoria su cui possono essere
montate schede DDR2. Alcune main board possono avere contemporaneamente slot DDR e DDR2, oppure DDR2 e
DDR3. L‟utente può scegliere quale montare ma non può montare una DDR ed una DDR2, così come non può
montare una DDR2 ed una DDR3. A parità di versione, è anche consigliato (solo consigliato) utilizzare banchi di
memoria tutti della stessa dimensione.
GDDR
Nelle schede video si utilizzano banchi di memoria detti GDDR con caratteristiche più avanzate, in special modo con
tempi di latenza inferiori (tempo che intercorre tra l'istante in cui il comando di lettura giunge ad una certa cella di
memoria e quello in cui inizia il reale trasferimento dei dati). Un‟altra caratteristica della RAM Video è il dual
porting, cioè il fatto che la CPU locale possa accedere alla memoria anche in corrispondenza dei cicli di refresh della
memoria stessa. Le GDDR2 sono memorie video realizzate con tecnologia DDR2, mentre le GDDR3 sono realizzate
con tecnologia DDR3.
Le memorie Cache
La L1 cache è una SRAM interna al processore (che opera alla stessa velocità del processore) e rappresenta una
pipeline di CPU in cui vengono precaricate le prossime istruzioni da eseguire con i relativi dati. E‟ suddivisa in
cache istruzioni e cache dati di pari dimensioni. Appositi algoritmi consentono di ottimizzare l‟uso della L1 cache,
precaricando istruzioni e dati a maggiore probabilità di utilizzo, con una % di successo stimata intorno al 90%.
La L2 cache opera invece come buffer veloce interposto tra RAM e CPU ad una velocità intermedia fra CPU e RAM
e contiene i dati utilizzati più recentemente. Sfrutta il principio di località degli accessi ai dati sia rispetto al
tempo che rispetto allo spazio. Cioè se un programmai richiede un dato dalla memoria è molto probabile che negli
istanti successivi richieda di nuovo quel dato e/o i dati vicini. Per cui in corrispondenza di ogni richiesta di un dato
dalla RAM, il sistema provvede a salvarne una copia in L2 cache in modo che sia rapidamente disponibili per accessi
successivi. Creando una piccola porzione di memoria L2 CACHE di tipo SRAM (1 %) con la restante memoria di
tipo DRAM, si riesce ad ottenere quasi lo stesso risultato ottenibile con un‟intera memoria SRAM. In pratica la CPU
comunica solo con la cache. Nei processori attuali (a partire dal Pentium 2) la L2- cache è intergrata nella CPU
Dopo ogni modifica ad un dato in L2-cache, la CPU provvede a salvare il dato in RAM tramite una tecnica di
bufferizzazione che quindi incide relativamente poco sui tempi di escuzione.
L1 e L2 cache possono essere di tipo esclusivo, cioè contengono sempre dati DIFFERENTI oppure di tipo inclusivo,
nel senso l‟ultimo dato richiesto viene copiato sia in L1 che in L2 e, ad ogni accesso, si verifica se il dato è in L1 e
poi se il dato è in L2. In taluni sistemi è stata introdotta anche una L3 cache di dimensioni simili alla L2 ma più lenta.
pag 32
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
MEMORIE PERSISTENTI
Memorie ad accesso quasi casuale in grado di mantenere i dati anche in assenza di alimentazione.
ROM
Integrata nelle prime Main Board per contenere il BIOS della macchina. Viene scritta direttamente in fase di
produzione e non può in nessun modo essere programmata / riprogrammata.
Nota: Il BIOS consiste nelle funzioni vitali necessarie al boot della macchina: visibilità di HD, CD e Scheda Video. I
driver di comunicazione vengono invece installati dal SO (oppure manualmente) al termine dell’installazione del SO.
Evoluzioni della ROM:
PROM (Programmable ROM) memorie programmabili in un secondo tempo rispetto alla loro produzione, ma
programmabili una sola volta e solo con strumenti di laboratorio attraverso l'esposizione a radiazioni UV.
EPROM (Erasable Programmable ROM) memoria riscrivibili elettronicamente (anche più volte) ma cancellabile
soltanto con strumenti di laboratorio
EEPROM (Electrically Erasable Programmable ROM) memoria cancellabile e riscrivibile elettronicamente
direttamente dalla CPU (cioè programmabili dall‟utente del PC, seppur in modo più lento rispetto alla RAM). Più
costosa della precedente. Consente un accesso casuale però non a singoli byte, ma soltanto a blocchi. Offre in pratica
un accesso random in lettura ma non nelle operazioni di modifica e cancellazione. Per modificare un singolo byte di
un blocco occorre leggere l‟intero blocco, cancellarlo per intero e riscriverlo con la modifica. Nel momento in cui un
byte viene programmato non può più essere modificato se non dopo la cancellazione dell'intero blocco.
Nota: Nelle EEPROM ciascuna cella di memoria (ciascun bit) è costituita da due transistori MOS, uno "di memoria"
(floating gate) e uno "di accesso" (control gate) isolati da uno strato di ossido. In questo modo ogni elettrone attirato
dal transistor di accesso viene intrappolato permettendo così di conservare il bit di informazione. L'inserimento e
l'estrazione degli elettroni dal transistor di memoria avviene mediante il cosiddetto “effetto tunnel” basato su
concetti di fisica quantistica.
FLASH MEMORY
(memoria flash) rappresenta una evoluzione delle EEPROM. Presentata per la prima volta da Intel nel 1990.
Principali Caratteristiche




memoria permanente con un funzionamento però abbastanza simile a quello della RAM
L‟accesso è sempre di tipo casuale ma a blocchi (typ 2 kBytes) e non per singolo byte.
L‟accesso in lettura / scrittura è molto più lento rispetto alla RAM
Il numero di scritture, seppur molto elevato (100.000), non è illimitato
Confronto con le EEPROM

Si basa su un fenomeno fisico leggermente diverso detto di “iniezione a valanga”. Lo spostamento di un
elettrone sul floating gate è detto “flash”da cui il nome Flash Memory


minimizza il tempo di accesso per letture random
presenta una organizzazione a blocchi come le EEPROM, utilizzando però blocchi decisamente più piccoli
(inizialmente 8 kBytes per arrivare agli attuali blocchi da 2 K) e dunque più flessibili da gestire.
Questo tipo di memoria, leggero e di piccole dimensioni, è particolarmente indicato per la trasportabilità, proprio in
virtù del fatto che non richiede alimentazione elettrica per mantenere i dati e che occupa poco spazio. Molto usata per
-
nei pendrive (chiavette USB)
nelle fotocamere digitali
nei lettori di musica portatili
nei cellulari
pag 33
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
BUS INTERNI
(BUS di Sistema o anche BUS di IO)
Bus stampati all‟interno della main board. Sono costituiti da un insieme di piste (che comprendono Address Bus,
Data Bus, Control Bus) che collegano la CPU con gli slot di I/O in cui possono essere inserite: schede video, schede
di rete, schede di controllo di HD e Floppy Disk, schede audio, etc.
Gli standard relativi ai Bus di IO definiscono quali piste portare allo slot, in quale posizione, la velocità dei
trasferimenti, etc.
Bus Generici
ISA Industry Standard Architecture
Primo standard di bus utilizzato nell‟8086 con clock 4.77 MHz , 8 bit di dati e 62 pin di contatto.
La seconda versione del bus ISA svincola la velocità del Bus di IO dalla velocità di CPU, dotando il Bus ISA di un
apposito controllore (funzione attualmente svolta dal South Bridge). La seconda versione prevede una frequenza di
8.33 MHz e 16 bit di dato, cioè 16 MBytes / sec con uno slot nero a 62 + 32 pin, dotato cioè di uno slot di estensione
rispetto allo slot base. Lo standard ISA non consentiva l‟identificazione automatica dell‟interfaccia, per cui occorreva
impostare manualmente n° di interrupt e indirizzo delle porte nella apposita finestra delle proprietà del dispositivo.
Evoluzioni
EISA (Extended Industry Standard Architecture) rappresenta una evoluzione proposto da IBM nel 1988.
EISA aumenta il Bus ISA da 16 a 32 bit di dato e venne usata principalmente come interfaccia per schede SCSI.
Utilizza lo stesso slot dello standard ISA base, con appositi piedini di identificazione (che, se riferiti a massa,
indicano che si tratta di una scheda EISA invece che ISA).
VESA rappresenta il successore dell'EISA utilizzato nei computer basati su processore Intel 80486 decisamente più
veloce dei predecessori ma in grado di gestire elettricamente al max due o tre schede. Utilizza una apposito slot di
colore marrone chiaro con piedini estremamente ravvicinati rispetto al tipico slot ISA.
PCI Peripheral Component Interconnect (interconnessione per componente periferica),
PCI è un‟interfaccia innovativa sviluppata da Intel agli inizi degli anni Novanta con larghezza di banda pari a
133 MBytes/s, ottenuta mediante una trasmissione a 32bit con frequenza di 33MHz e riconoscimento automatico
delle schede (primo esempio di Plag And Play).
Lo Slot PCI è uno slot di colore bianco a 124 pin più piccoli e più ravvicinati rispetto alle schede ISA. Lo slot PCI si
può presentare in tre modi diversi (con diverse interruzioni sui pin) a seconda del tipo di schede che può accettare:



slot che funzionano a 5 volt con una tacca che interrompe le posizioni 50 e 51
slot che funzionano a 3.3 volt con una tacca che interrompe le posizioni 12 e 13
slot universali che comprendono contemporaneamente le due tipologie precedenti (interruzione sulle posizioni
12 13 50 e 51) per permettere l'innesto di tutte le tipologie di schede riconosciute automaticamente.
Il riconoscimento di frequenza e dimensione del bus è eseguito in automatico sulla base del valore (0/1) di
appositi piedini di setup (che risultano “disconnessi” oppure riferiti a GND). Allo stesso modo il pin9
(PRSNT1) se riferito a massa indica la presenza della scheda all’interno dello slot.
Evoluzioni:
PCI 2.2 raddoppia la frequenza base a 66 MHz con transfer rate di 266 MBytes / sec e tensioni ridotte da 5V a 3,3 V
(versione ancora attualmente in uso).
PCI-X raddoppia l'ampiezza del bus dati a 64 bit, con frequenza base sempre di 66 MHz (transfer rate max = 533
MBytes/sec) sempre con lo stesso slot. Versione poco utilizzata probabilmente perché 64 piste causano una eccessiva
complicazione ed ingombro del layout. Del resto 266 MBytes / sec erano più che sufficienti per i dispositivi collegati
pag 34
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
PCI Express
Il PCI Express (PCIx, da non confondere con PCI-X) rappresenta l‟ultima evoluzione del bus PCI. È basato su un
trasferimento dei dati in modalità seriale, quindi con sole due /quattro linee di trasmissione anziché 32) con
conseguente notevole semplificazione del layout della scheda madre. Nonostante la serializzazione, PCI Express
riesce comunque a raggiungere pressappoco la stessa velocità del PCI tradizionale parallelo (266 MBytes / sec).
Il bus PCI Express dotato di un solo canale è detto PCIx1 e presenta una larghezza di banda effettiva di 250
MBytes/sec ottenuti con una trasmissione seriale a 2.5 Gbit/sec in cui per ogni 8 bit di dato vengono trasmessi 2 bit
di controllo (per cui occorre dividere per 10 anziché per 8). PCIx1 utilizza uno slot tipicamente bianco come il PCI
tradizionale (o giallo) però con dimensioni estremamente più piccole. Inoltre:
-
PCIx1 dovrebbe essere hot swap, cioè consentire la sostituzione della scheda a PC acceso, come SATA e USB
Più canali x1 possono essere aggregati parallelamente per aumentare la banda passante disponibile (ad es 10
canali consentono di inviare 10 bit contemporaneamente con un incremento di un fattore 10 del Transfer Rate).
I vari canali possono essere utilizzati indipendentemente per indirizzare schede differenti, rendendo di fatto il
sistema molto flessibile. La banda a disposizione di ciascun canale è dedicata, cioè non condivisa con gli altri.
Un ulteriore vantaggio della trasmissione seriale è che, utilizzando un canale Tx ed un canale Rx seprati, può
consentire uno scambio contemporaneo bidirezionale dei dati, cosa non fattibile in una trasmissione parallela.
Lo standard PCIx1 non ha ancora completamente sostituito il vecchio standard PCI parallelo per il gran numero di
schede PCI ancora esistenti. Le main board attuali hanno di solito alcuni slot PCI paralleli ed alcuni slot PCIx1 seriali
Bus Specifici per Schede grafiche
Si tratta di bus direttamente collegati al North Bridge in modo da consentire alla scheda grafica un accesso diretto
alla memoria RAM del computer e quindi velocità di trasferimento velocizzate al massimo.
AGP Accelerated Graphics Port
L‟interfaccia AGP è stata sviluppata da Intel nel 1997 come soluzione per aumentare prestazioni e velocità delle
schede grafiche connesse ai PC. Si basa sullo standard PCI 2.2 con trasferimenti a 32 bit alla frequenza base di 66
MHz. Lo slot è di colore marrone scuro. Il bus AGP operava di solito in modalità 2x sfruttando lo stesso principio
delle memorie DDR, effettuando cioè due trasferimenti per ogni ciclo di clock (salita e discesa) raggiungendo così
i 533 MB/s. Successivamente sono comparse la versione 2.0 (4 trasferimenti per ciclo di clock come le DDR2), e
l‟ultima versione 3.0 (8 trasferimenti per ciclo di clock, come le DDR3) raggiungendo rispettivamente 1066 MB/s e
2133 MB/s teorici. Nella pratica le velocità effettivamente raggiunti sono decisamente più basse. Per prevenire
problemi di compatibilità tra le differenti versioni, è sempre previsto il funzionamento in modalità safe 1x, quindi a
266 MB/s, attivata automaticamente dal BIOS in caso di problemi. Quadro riassuntivo:
 AGP 1.0
AGP 1x:
AGP 2x:
 AGP 2.0
AGP 4x:
 AGP 3.0
AGP 8x:
266 x 1 = 266 MB/s
266 x 2 = 533 MB/s
max teorico
266 x 4 = 1066 MB/s max teorico
266 x 8 = 2133 MB/s max teorico
PCI Express 16
PCIx16 o PCI-ex è costituito da 16 canali PCIx1, arrivando così ad un transfer rate max di circa 4 GBtyes/sec
(250 x 16), il doppio di AGP8x. Lo slot è di colore nero (o giallo) di dimensioni similari rispetto al vecchio slot PCI
parallelo. Nelle main board attuali ha completamente sostituito AGP.
Una altra caratteristica di PCI Express è che 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, l'attuale revisione di PCIx16 supporta carichi fino a 75W.
pag 35
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
BUS ESTERNI (Busi di espansione per l‟interfacciamento verso i dispositivi di Memoria di Massa)
Bus Specifici per Dispositivi di Memoria di massa
Interfaccia IDE / ATA
Inizialmente i dispositivi di memoria di massa erano controllati mediante un Controller situato su una apposta
scheda (ISA o PCI) che si interfacciava al dispositivo mediante un apposito cavo flat a piattina detto cavo IDE
(Integrated Drive Electronics ). Successivamente il Controller venne integrato nella main board (oggi all‟interno
del south bridge) e, di conseguenza, anche il connettore IDE venne portato sulla main board. Al nome IDE si affiancò
il nome più tecnico ATA (Advanced Technology Attachment) diventato sinonimo di IDE. Tensione di lavoro 3,8 V
Il cavo IDE / ATA e relativi connettori
Il cavo IDE ATA è un cavo flat (a nastro), a 40 fili / 16 bit, di lunghezza 45 - 90 cm che consente di collegare 2
dispositivi ATA direttamente alla main board dove va ad interfacciarsi ad un Controller interno al south bridge.
Il cavo IDE ATA è dotato di 3 connettori a 40 pin con un uno dei pin centrali otturato in modo da consentire un
montaggio univoco. I tre connettori sono



un connettore terminale blu da utilizzare sulla main board
un connettore terminale nero da utilizzare per il collegamento del dispositivo master
un connettore intermedio grigio da utilizzare per il collegamento del dispositivo slave
Dispositivi Master e Slave
I due dispositivi IDE/ADA collegati su uno stesso cavo devono essere identificati mediante appositi jumper
posizionati sul dispositivo stesso. Nella terminologia comune i due dispositivi vengono classificati come master
(normalmente il dispositivo terminale) e slave (il dispositivo intermedio). I jumper, oltre alle impostazioni master
e slave, consentono in genere una terza impostazione detta CS cable select (selezione automatica in base alle
impostazioni del BIOS). In alternativa ai jumper, infatti, i due dispositivi collegati possono essere configurati
come master o slave attraverso il BIOS.
Viene normalmente impostato come master l‟HD sul quale verrà installato il SO. Se i dispositivi sono 3 è bene
lasciare l‟HD principale da solo e collegare gli altri due su un secondo canale. Per funzionare correttamente ogni
canale deve avere un master. I due dispositivi collegati sullo stesso canale non possono effettuare uno scambio di
dati contemporaneo, ma occorre passare attraverso la memoria centrale.
Nota 1 Inizialmente l'interfaccia ATA funzionava soltanto con i dischi fissi. In un secondo momento lo standard
venne esteso, con il nome ATAPI (ATA Packet Interface ), per permetterne il funzionamento di altri dispositivi quali
i lettori CD-ROM, le unità a nastro magnetico, i floppy ad alta capacità quali lo Zip drive e il SuperDisk drive.
Nota 2: La modifica di gestione da programmed input/output (PIO) a direct memory access (DMA) ha rappresentato
una importante svolta nella storia dell'ATA. Il PIO infatti richiede tempi di processo significativi da parte della CPU..
La gestione Ultra DMA (UDMA) ha ridotto enormemente il tempo di elaborazione della CPU a parità di dati letti o
scritti sui dischi, avvicinando le prestazioni dello standard ATA a quelle dello SCSI ma a costi decisamente inferiori.
Velocità di trasferimento dei vari standard IDE / ATA
La velocità del bus IDE / ATA è aumentata nel corso degli anni. In neretto le velocità più utilizzate.
UDMA0
UDMA1
UDMA2
UDMA3
UDMA4
UDMA5
UDMA6
16.7
25.0
33.3
44.4
66.6
100.0
133.0
MBytes/s
MBytes/s
MBytes/s
MBytes/s
MBytes/s
MBytes/s
MBytes/s
pag 36
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Interfaccia EIDE
Lo standard Enhanced IDE è caratterizzato dallo stesso connettore a 40 pin, ma con un cavo a 80 fili dove ognuno dei
40 precedenti ha il suo riferimento di massa in modo da ridurre gli effetti dell'induzione elettromagnetica tra i
conduttori adiacenti e consentire un transfer rate maggiore (66, 100 e 133MBytes / sec). L‟EIDE gestisce anche tutti
i dispostivi ATAPI (es CD ROM e ZIP Drive). Il cavo EIDE presenta quattro connettori anziché due.
L’interfaccia per floppy disk
utilizza un connettore sempre ATA ma leggermente più piccolo con 34 pin tutti presenti e sempre di colore nero. Il
cavo floppy è riconoscibile dalla tipica “inversione” dei conduttori centrali in prossimità dell‟estremità floppy. Il
collegamento al floppy deve essere eseguito con il bordino rosso vicino al filo rosso di alimentazione. Se al termine
dell‟assemblaggio il led del floppy rimane sempre acceso (errore abbastanza frequente) significa che il cavo ATA è
stato collegato al contrario.
Standard SCSI
Lo SCSI (acronimo di Small Computer System Interface) è un bus esterno molto più veloce di IDE ATA ma anche
molto più costoso. Era molto diffusa in passato soprattutto in workstation e server di fascia alta (cioè ad elevate
prestazioni), mentre i computer desktop e portatili erano invece equipaggiati con l'interfaccia ATA/IDE più lenta ma
ma decisamente più economica. Utilizzato per collegare hard disk, nastri magnetici, lettori e scrittori di CD, lettori
DVD, scanner, plotter, etc. Esistono anche stampanti SCSI.
 La comunicazione con la CPU passa attraverso un controller SCSI che deve essere presente sulla main board
oppure realizzato tramite scheda PCI. Il controller “controlla” il trasferimento dei dati sul bus SCSI.
 Ogni periferica deve disporre di un adapter SCSI, che è solitamente incorporato nelle periferiche, ma che può
anche essere realizzato mediante una apposita scheda ISA o PCI.
 Un apposito bus SCSI collega il controller ai vari dispositivi tramite un cavo flat a 50/68 fili lungo il quale sono
posizionati diversi connettori per il collegamento dei dispositivi, fino ad un max di 16, contro i 2 di IDE ATA.
Inoltre


Ad ogni dispositivo SCSI (compreso il controller), deve essere assegnato, in fase di configurazione, un
identificatore (ID) univoco, impostabile tramite jumper o via software, in modo che possa condividere uno
stesso bus con altri dispositivi.
Entrambi gli estremi del bus devono essere chiusi mediante un apposito terminatore. Se il Controller (o un
qualunque altro dispositivo) si trova alla fine della catena, deve avere la terminazione abilitata. I Dispositivi
intermedi devono avere la terminazione disabilitata.
La seguente tabella riporta le caratteristiche dei vari standard SCSI successivi.. Molto utilizzato lo SCSI 3
Transfer rate
(MByte/s)
Interfaccia
Larghezza del bus
(bits)
Connettore
25 pin
Max numero di
dispositivi
SCSI 1
5
8
8
Ultra Wide SCSI
40
16
SCSI 2
40
8
Ultra Wide SCSI 2
80
16
16
SCSI 3
160
16
16
SCSI 320
320
16
16
SCSI 640
640
16
16
8
50 pin
8
Ad oggi SCSI è stato completamente sostituito dai bus SATA che raggiungono le stesse velocità a costi inferiori.
pag 37
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Interfacce Serial ATA
Nel 2005, insieme alle memorie DDR2, hanno fatto la loro comparsa le interfacce SATA (serial ATA) a 7 pin.
L'interfaccia ATA originale, per evitare confusione, è stata rinominata Parallel-ATA (PATA).
Si tratta di una evoluzione dello standard ATA i cui vantaggi principali sono :



la velocità (attualmente 300 MBytes / sec)
la gestione dei cavi (maggiore flessibilità e lunghezza max 1 metro)
la funzione di hot swap (inserimento a caldo, senza togliere l'alimentazione al personal computer. Tuttavia
non tutti i dispositivi implementano questa funzione, spesso a causa di limitazioni presenti nel BIOS.
Caratteristiche:

cavi a 7 fili (A+, A-, B+, B-, 3 linee di GND) per la connessione dati e trasmette i dati in formato seriale
piuttosto che in parallelo. Le estremità del cavo sono larghe 8 millimetri, con i contatti disposti su due file.
Rispetto ai cavi ATA, corti (tra 45 e 90 cm) e larghi (40 o 80 contatti), questi sono sicuramente più pratici.
Essendo molto più stretti, e quindi meno ingombranti, facilitano inoltre il passaggio dell'aria all'interno del
case, migliorando la ventilazione dei componenti. I connettori hanno una sagoma asimmetrica, e non possono
essere inseriti in posizione errata.

Ogni canale SATA gestisce una singola periferica, dunque non si pone il problema del master / slave. Ogni
canale usa completamente la banda a disposizione (a differenza di USB dove viene suddivisa fra tutti).

Tensione di riferimento utilizzata è 1,5 volt (contro i 3,8 volt di ATA). Ciò riduce l'assorbimento di potenza
e le interferenze elettriche e permette ai cavi SATA dimensioni più lunghe ed anche velocità maggiori.

Alimentazione tramite connettore a 15 contatti diverso dal tradizionale connettore ATX (talvolta possono
essere presenti entrambi i connettori, SATA e ATX). Esistono appositi adattatori ATX – SATA da utilizzarsi
se il dispositivo non dispone del connettore ATX o se l‟alimentatore non dispone dei connettori SATA.
Velocità e Standard



Prima versione con velocità di 1.5 Gbit / sec Transfer Rate 150 MBytes/sec, connettore main board grigio
Seconda versione detta SATA/300 con velocità di 3 Gbit/Sec (Transfer Rate di 300 MBytes/sec conn rosso)
E‟ prevista una terza generazione di Controller SATA detta eSata o SATA/600 a 600 MBytes/sec.
I 3 standard SATA successivi hanno velocità simili agli ultimi 3 standard SCSI, ma a costi decisamente inferiori.
Tabella riassuntiva dei Transfer Rate
BUS INTERNI
BUS ESTERNI
ISA
16 MBytes / sec
PCI 1
133 MBytes / sec
PCI 2.2
266 MBytes / sec
PCIx1
250 MBytes / sec
Bus Dedicati Veloci
AGP
2 GBytes / sec
PCIx16
4 GBytes / sec
IDE / ATA
SCSI 320
SATA 300
USB 2.0
100 Mbytes / sec
320 MBytes / sec
300 MBytes / sec
60 MBytes / sec
decisamente più lento.
pag 38
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Bus Esterni per uso genrico : USB
Universal Serial Bus. Bus General Purpose esterno, cioè un bus per uso generico, al quale possono essere
interfacciati dispositivi differenti (mouse, tastiera, microfono, altoparlanti, modem, scanner, stampante, video, Hard
Disk, Floppy Disk, Masterizzatori, lettori di smart card, webcam, Macchine Fotografiche Digitali) comunicanti con la
CPU attraverso apposito driver USB. Le porte USB consentono il collegamento hot swap (hot plug o Plug and Play
PnP) (cioè inserimento e rimozione a caldo senza dover riavviare il computer).
Lo standard USB viene utilizzato laddove si preferisce privilegiare la praticità di un collegamento hot swap rispetto
alla velocità di trasferimento. Come bus esterni di collegamento di HD e DVD si continuano invece ad utilizzare i
bus ATA / SATA perché molto più veloci (3 Gbits / s contro 480 Mbits/s). Le porte USB sono costituite da 4 pin:
Pin Nome segnale Colore filo
1
VBUS
ROSSO
2
D-
BIANCO
3
D+
VERDE
4
GND
NERO
VBUS è un segnale +5V rispetto a GND che consente l‟alimentazione delle periferiche a basso consumo (con una
corrente massima di 500mA). Le periferiche con richieste energetiche elevate (es stampante) vanno alimentate a
parte, pena il probabile danneggiamento del gestore che non prevede la disconnessione in caso di sovraccarico.
I segnali D+ e D- rappresentano la linea bidirezionale di comunicazione dati (segnale e riferimento di massa).
Funzionamento
Il sistema USB consiste in un Controller USB (integrato nel south bridge) e molte periferiche collegate mediante
una struttura ad albero attraverso dei dispositivi chiamati HUB USB (indicato in figura) che possono essere
posizionati all‟interno della main board ma anche all‟esterno su qualsiasi porta. Lo standard USB supporta fino ad un
massimo di 127 periferiche per gestore, compresi gli hub e il Controller stesso. La lunghezza massima che può avere
il cavo senza che il segnale diventi troppo debole è 5 m; oltre questo limite è necessario un hub attivo che amplifichi
il segnale. Le specifiche prevedono il collegamento consecutivo di 5 hub max.
Quando un nuovo dispositivo si collega ad una porta USB, il controller USB chiede al dispositivo di “identificarsi” e,
una volta identificato, individua il driver corretto e assegna all‟unità un numero identificativo. Anche il controller è
identificato da un certo numero. Tutti i messaggi riporteranno numero identificativo di sorgente e destinatario (un po‟
come i MAC delle LAN). L‟accesso al mezzo avviene però attraverso un algoritmo deterministico: il gestore gestisce
un token che scandisce le varie porte. Solo la porta che possiede il token può trasmettere i dati. Ogni messaggio
arriva a tutte le periferiche, ma viene intercettato soltanto da quella avente l‟indirizzo specificato.
Sono previsti tre possibili tipi di trasferimento:
 In tempo reale (il flusso non può essere interrotto). Utilizzato per flussi audio e video (webcam)
 Trasferimento a seguito di interrupt (mouse e tastiera)
 Trasferimento a bassa priorità (comune scambio di dati con Flash Memory).
Velocità di trasferimento
 Lo standard USB 1.0 utilizzava una velocità di 1,5 Mbit/s, adeguata soltanto per mouse e tastiera.
La versione 1.1 innalza la velocità di lettura/scrittura a 12 Mbit/s.
 Lo standard USB 2.0, perfettamente retrocompatibile con le precedenti, (nel senso che sulle porte USB 2.0
possono essere inseriti anche dispositivi più “vecchi”) utilizza una velocità di 480 Mbit/s (60 MBytes /sec).
 Il nuovo USB 3.0. ha una velocità di trasferimento di 4,8 Gbit/s utilizzando due coppie intrecciate ad alta
velocità e il supporto di connessioni ottiche, mantenendo sempre la retrocompatibilità con le versioni
precedenti (600 MBytes / sec). Il connettore ha più contatti ed è più profondo. Ancora poco diffuso.
E‟ già stata standardizzata anche una prima specifica di wireless USB e alcuni dispositivi sono già in commercio,
anche se ancora poco diffusi. Lo stesso standard è comunque ancora in evoluzione e si prevede entro il 202 la
standardizzazione della versione 2.0.
pag 39
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Memorie di Massa ad Accesso Sequenziale
Le memorie di massa sono memorie basate solitamente su supporto magnetico o ottico, solitamente di dimensioni
molto maggiori rispetto alla RAM ma con tempi di accesso molto più lenti.
Il primo esempio di memorie di massa sono stati i Nastri Magnetici che sono dispositivi ad Accesso Sequenziale,
nel senso che i dati devono essere letti in un ordine rigidamente predefinito, facendo eventualmente avanzare il
nastro in modo rapido senza necessariamente dover leggere l‟intera sequenza di dati. I nastri magnetici sono ancora
tutt‟oggi utilizzati come dispostivi di backup per server contenenti grandi quantità di dati. Hanno infatti un costo al
byte inferiore all’HD ma sono più lenti. Il può noto è il DAT Digital Audio Tape, per informazioni digitali.
Memorie di Massa ad Accesso Diretto
Hard Disk
Principale dispositivo di Memoria di Massa. Ad Accesso Diretto significa che, in funzione della posizione corrente
della testina di lettura, le differenze fra i tempi di accesso alle varie celle non sono uguali (Memorie ad Accesso
Casuale) ma sono comunque contenute entro un limite di tollerabilità. Esistono tre tipi di Hard Disk ::



IDE/ATA 100 MByte / sec
SCSI
SCSI 3 = 160 MBytes / sec
SATA
SATA 300 = 300 MBytes / sec
I NAS (Network Attached Storage) sono HD direttamente interfacciabili ad una rete Ethernet. Sono dotati di
processore interno con software (typ Linux) che funge da File Server. Implementano di solito tecnologie RAID
Caratteristiche









Capacità di memorizzazione (tipica attuale 500 GBytes)
Tempo di accesso ai dati (estremamente lento rispetto alla memoria)
Cache interna da 8 o 16 MBytes realizzata mediante appositi circuiti integrati.
L‟Hard Disk è normalmente costituito da una batteria di dischi rotanti, concentrici, disposti uno sopra l‟altro.
Per ogni disco sono normalmente presenti due testine magnetiche di lettura / scrittura, una per ciascun lato.
La dimensione dei dischi è di solito 3 ½ pollici (9 cm) per i PC desktop e 2 ½ pollici nei notebook
I dischi sono realizzati con una superficie di materiale magnetizzabile che può essere magnetizzato /
demagnetizzato mediante apposite testine magnetiche, in teoria per un numero illimitato di volte.
I dischi, prima di essere utilizzati, devono subire un processo di formattazione fisica (creazione delle tracce)
più un processo di formattazione logica (creazione di un file system per l‟organizzazione dei dati sul disco).
Il processo di formattazione fisica suddivide il disco in tracce concentriche numerate dall‟esterno (traccia
zero) verso l‟interno. Ogni traccia viene poi suddivisa in settori contigui. Il settore è l’unità minima di
memorizzazione e vale solitamente 512 bytes (per lo meno in tutti i file system IBM / Microsoft). I settori
sono fra loro suddivisi da uno spazio inutilizzato detto gap e presentano una ben precisa sequenza iniziale di
bit per consentire alla testina di lettura di sincronizzarsi sul settore.
Le tracce parallele equidistanti dall‟asse di rotazione sono dette cilindri. Quando si formatta un disco le varie
testine lavorano tutte simultaneamente sullo stesso cilindro, spostandosi via via su cilindri successivi.
traccia
settore
pag 40
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Tutti i settori hanno la stessa dimensione. In questo modo, mentre i settori relativi alle tracce più interne occupano
completamente lo spazio a loro disposizione, i settori relativi alle tracce più esterne dispongono di uno spazio
maggiore con conseguente inutile spreco di spazio.. In compenso il fatto di utilizzare un numero costante di settori
per traccia consente di leggere il disco tramite bracci multitestina che aumentano la velocità di lettura.
Macintosh implementò un diverso formato aumentando il numero di settori sulle tracce esterne ma, a causa della
grande diffusione del PC IBM e della minor velocità di lettura, il sistema di Macintosh non riuscì mai a decollare.
Lettura dei dati: Il disco viene fatto ruotare rapidamente mediante un dispositivo detto drive, termine spesso
utilizzato come sinonimo dell‟intero disco. Una apposito sistema di testine di lettura si sposta radialmente mediante
un braccio meccanico in modo da accedere alle varie tracce. L‟accesso ai settori avviene tramite rotazione del disco.
L‟accesso a dati appartenenti alla stessa traccia è molto rapido (tempo di latency), mentre è molto più lento lo
spostamento radiale della testina da una traccia all‟altra (tempo di seek). I movimenti della testina e del disco sono
controllati da un apposito processore che gestisce anche l‟interfacciamento con il bus (IDE, SCSI o SATA).
La testina di lettura non è in contatto con il disco (come nei floppy), in modo da non creare usura e al contempo
consentire al disco maggiori velocità di rotazione.
I Floppy Disk (disco flessibile)



I primi Dischi per Personal Computer avevano un diametro di 8 pollici con capacità di 256 kBytes.
Nei sistema 8086 si cominciò ad utilizzare floppy disk da 5 ¼ con doppia faccia (cioè scrivibili su entrambi i
lati) con una capacità di 180 kBytes per lato, cioè 360 KBytes complessivi.
Dal 80386 in avanti si diffuse l‟uso degli attuali floppy disk da 3 ½ con doppia faccia e capacità complessiva
di 1,44 MBytes ottenuti mediante 80 tracce per lato, 18 settori per traccia, 512 byte per settore, da cui:
2 x 80 x 18 x 512 = 1.474.000 Bytes, cioè 1,44 MBytes
Il lettore di floppy non è più presente nei nuovi computer, ma può essere aggiunto esternamente tramite porta USB.
Formattazione Fisica e Formattazione Logica: Il File System
La Formattazione Fisica di un disco consiste nella reale creazione di tracce e settori. Per ogni settore viene creata:

una intestazione contenente indirizzo fisico del settore e dimensione del settore stesso

una coda in cui verrà memorizzato un Controllo di Parità per le rilevazione e correzione degli errori.
La formattazione fisica determina univocamente la capacità del disco.
Formattazione Logica significa definire sul disco un “sistema” in grado di gestire l‟organizzazione logica dei file sul
disco, cioè creare sul disco un File System (letteralmente Sistema di File). Creare un File System significa creare
delle tabelle che conterranno la posizione fisica dei file sul disco, files spezzettati su più settori.
Il File System organizza più settori contigui in un unico blocco
detto cluster (letteralmente grappolo) che rappresenta l‟unità
minima di allocazione logica sul disco. Cioè i file saranno
salvati sempre su uno o più cluster.
Ad esempio NTFS (file system di windows XP) utilizza cluster
di 4 kBytes (8 settori). Questo significa che qualunque piccolo
file occupa sull‟HD almeno 4 kBytes, con notevole spreco di
spazio. La controparte è che, creando cluster di piccole
dimensioni, i file “grandi” verrebbero memorizzati su un
numero elevatissimo di cluster, appesantendo enormemente le
gestione. Con le notevoli dimensioni ormai raggiunte dagli HD,
lo “spreco” di qualche kBytes non è più un gravissimo
problema.
Selezionando un piccolo file e facendo tasto destro / proprietà
si possono vedere lo spazio su disco effettivamente occupato dal
file e la dimensione effettiva di copertura del cluster.
pag 41
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Dischi RAID
RAID significa Redundant Array of Independent Disks ("insieme ridondante di dischi indipendenti"), cioè un
insieme di dischi rigidi combinati in una sola unità logica in modo da replicare più volte le informazioni.
I dischi RAID sono usati nei server, e di solito utilizzano dischi di identica capacità. I benefici del RAID, rispetto
all'uso di un disco singolo, sono di aumentare le prestazioni, l'integrità dei dati e la tolleranza ai guasti.
Un disco RAID è gestito mediante un RAID Controller (presente in main board o su scheda PCI) interfacciato ai
dischi tramite interfaccia ATA, SATA o SCSI (a seconda del tipo di dischi usato.). 7 diverse implementazioni :








RAID 0 non può essere considerato un vero RAID in quanto non realizza la ridondanza dei dati, ma solo il
cosiddetto data striping (strisciamento), cioè numera i cluster logici alternando dischi diversi (es 0=disk0,
1=disk1, 2=disk2, 3=disk0, 4=disk1, 5=disk2, 6=disk0, etc.). Ogni stripe presenta tipicamente una
dimensione pari a più settori (ogni settore 512 bytes). Considerando dieci stripe da salvare su disco, i vari
stripe, a coppie, vengono inviati contemporaneamente su dischi diversi. In questo modo non aumenta la
sicurezza (che anzi diminuisce in quanto aumenta il rischio di guasti) ma aumentano (raddoppiano) sia il
transfer rate in quanto i vari cluster, (appartenendo a dischi diversi) possono essere scritti in parallelo sia la
capacità complessiva del sistema
RAID 1 implementa il solo data mirroring, cioè il secondo disco è una copia esatta del primo (mirror). I dati
possono essere replicati anche su più dischi. Elevata sicurezza. Non c‟è miglioramento delle prestazioni in
scrittura, ma c‟è invece la possibilità di leggere parallelamente informazioni diverse su dischi diversi.
RAID 01 Ogni disco RAID 1 viene realizzato mediante uno o più dischi logico RAID 0 (poco usato)
RAID 10 Combinazione inversa: per ogni disco fisico costituente il sistema RAID 0 viene applicato un mirror
di tipo RAID 1 implementando in questo modo sia la ridondanza dei dati sia il miglioramento delle
prestazioni. Servono almeno 4 dischi : due per il RAID 0 e due per i relativi mirror
RAID 2 E‟ una vecchia configurazione in cui si utilizzano almeno tre dischi. Due sono tra loro in striping
(RAID 0) mentre il terzo contiene informazioni per il controllo degli errori relativo ad entrambi gli stripe.
Per ogni lettura occorre quindi leggere anche il terzo drive. Dato che ormai ogni disco contiene un proprio
codice di correzione degli errori questa implementazione è stata ormai abbandonata.
Corregge errori sui singoli stripe ed in grado di rilevare errori doppi.
RAID 3 E‟ molto simile a RAID 2 in cui viene applicata una semplificazione nell‟algoritmo ECC di controllo
degli errori. Il terzo disco è sostanzialmente una somma modulare degli altri due, per cui è in grado di
correggere gli errori sui singoli stripe (x = ECC – stripe disco sano) ma non è in grado di rilevare gli errori
doppi.
RAID 4 E‟ una velocizzazione di RAID 3 in cui viene sostanzialmente aumentata la dimensione degli stripe
permettendo ad un record “tipico” di risiedere interamente in un unico drive, con conseguente aumento delle
preszioni in termini di velocità d lettura e scrittura.
RAID 5 (Win Server) Versione molto usata. Richiede almeno 3 dischi, in cui primi 2 vengono gestiti con
tecnica RAID 0 (con scrittura parallela degli strip) mentre il terzo esegue una EXOR di parità bit a bit del
contenuto degli altri due dischi. se si rovina uno dei primi due la combinazione degli altri due consente il
ripristino di tutti i dati. E
disco 1
disco 2
parity disk
0101
0111
0010
RAID 6 Rispetto a RAID 5 usa un disco in più come mirror del disco di check sum..
Algoritmi di scheduling di un HD
Al fine di aumentare il Transer Rate, nei Controller SATA è stato implementato a livello nativo un algoritmo di
Scheduling di degli accessi al disco denominato NCQ (Native Command Queuing) che fondamentalmente opera
secondo una strategia c-SCAN (SCAN circolare): in caso di più richieste dati parallele, le richieste vengono accodate
in base alla posizione attuale della testina. La testina scorre continuamente dall‟esterno (cilindro 0) verso l‟interno
fornendo i dati richiesti mana mano che li incontra. Una volta raggiunto il cilindro relativo all‟ultima richiesta, il
sistema delle testine ritorna rapidamente indietro ripartendo dal cilindro 0. Tempi di attesa estremamente uniformi.
pag 42
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Compact Disk
I CD (Compact Disk, Disco Compatto) nascono nel 1982, e sono commercializzati nel 1988. Hanno un diametro
esterno di 12 cm e un foro centrale di 15 mm. Diversamente dai dischi magnetici (hard disk e floppy disk) costituiti
da tracce concentriche, i dati nei CD sono memorizzati lungo un'unica traccia a forma di spirale, che,
contrariamente ai vecchi dischi in vinile, parte dal centro del disco e procede verso l'esterno, permettendo così di
avere CD più piccoli dello standard (per esempio i mini-CD). Questa struttura a spirale del CD-ROM è tale da
massimizzare le prestazioni per l'accesso sequenziale (musicale) a scapito dell'accesso dati.
Tutti i Compact Disk utilizzano sempre uno stesso supporto fisico, organizzato in settori da 2352 bytes complessivi di
informazione (codificati con tecnologia EFM = Eight to Fourteen Modulation x il controllo degli errori)
A seconda di quale file system viene poi utilizzato per la scrittura delle informazioni, si possono ottenere:


CD Audio
CD DATI
in cui sono memorizzati dei flussi audio
in cui sono memorizzati dati binari generici
Dato che nei CD-ROM l'integrità dei dati è più importante che nei CD audio, gli ultimi 288 bytes di ogni settore sono
riservati per un ulteriore livello di correzione di errore (4 byte di EDC = Error Detecting Code che contengono il
CRC dei dati precedenti e 276 byte di ECC = Error Correcting Code) che servono a correggere eventuali errori
sfuggiti ai controlli precedenti. La probabilità che rimangano errori non corretti o non rilevati nei CD DATI diventa
praticamente nulla, ma i bytes per settore si riducono a 2048 (2 kBytes)
CD AUDIO: Il Red Book (Libro Rosso)
Standard che definisce le specifiche del file-system e dell'organizzazione dei dati su CD AUDIO. Il segnale audio
viene campionato con una frequenza di 44,1 KHz con codifica PCM su 16 bit per canale (con una gamma dinamica
complessiva di circa 96 dB). È possibile ripartire i dati in un massimo di 99 tracce.
CD ROM: Il Yellow Book (Libro Giallo)
Standard che definisce le specifiche del file-system e dell'organizzazione dei dati su CD DATI. Il primo file system
utilizzato nei CD ROM era ISO-9660 che utilizzava blocchi da 2 kBytes e prevedeva le seguenti restrizioni:



Le strutture delle directory non potevano includere più di 8 livelli.
I nomi dei file non dovevano superare i 31 caratteri, compresa l'estensione
Solo caratteri maiuscoli. Alcuni caratteri speciali, ad esempio come % o @, non erano consentiti.
Il file system Joliet (proposto da Microsoft) rappresenta una
estensione allo standard ISO 9660 (1988) utilizzabile
soltanto in sistemi Windows. Il file system Joliet prevede:
 sia i nomi dei file sia i nomi delle directory hanno una
lunghezza massima di 64 caratteri in formato Unicode
 il numero totale di caratteri per un nome file più il
percorso completo non può superare il totale di 128
caratteri
Un‟altra estensione è rappresentata dal file system Romeo
con nomi di file lunghi fino a 128 caratteri non Unicode.
Notevole confusione. Quando si intendeva scrivere un CD
Dati occorreva sempre indicare il file system che si intendeva
utilizzare, come ad esempio indicato finestra a fianco (NTI).
Nel 1998 arriva un nuovo file system destinato a diventare lo standard per tutti i CD Dati, cioè UDF (Universal Disk
Format) che è un file system sviluppato per i DVD ma poi utilizzato anche nei CD. Appositamente studiato per
consentire interoperatività di lettura e scrittura fra tutti i Sistemi Operativi. Driver supportati a livello nativo da
Windows Xp in avanti. Supporta nomi di file lunghi fino a 255 caratteri con maiuscole / minuscole.
pag 43
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Velocità di lettura di un CD
Qualunque CD viene letto ad una velocità base costante di 75 settori al secondo.
Quindi la quantità complessiva di informazione letta in un secondo dipende dal formato del settore.
Nel caso di un CD Dati ogni settore contiene 2048 bytes effettivi , dunque la conseguente velocità di lettura sarà pari
a 75 x 2 kBytes / sec = 150 kBytes / sec
Nel caso invece di un CD AUDIO, ogni settore contiene 2352 bytes effettivi, con una conseguente velocità di lettura
di 75 * 2352 bytes /sec cioè 176.4 kBtes / sec
Nota: in perfetta sintonia con il Teorema di Shannon: 44,100 x 2bytes x 2 canali = 176,4 kBytes / sec.
Normalmente quando si parla di velocità di lettura di un CD si fa sempre riferimento al CD DATI, per cui si dice
comunemente che un CD è letto alla velocità base di 150 kBytes / sec.
Lettura veloce di un CD
Mentre la riproduzione di un CD Audio può ovviamente essere eseguita soltanto alla velocità base di 150 KBytes
/sec, detta CDx1, la comune lettura di un CD (Dati o Audio) può essere eseguita più velocemente incrementando la
velocità di rotazione del CD secondo multipli della velocità base CDx1. Un lettore che riporta la dicitura 12X è in
grado di leggere 12 volte più veloce rispetto alla velocità base (1800 kBytes / sec). Samsung ha introdotto un
meccanismo di bilanciamento (ball bearing) per ridurre le vibrazioni del disco ed il rumore che ha consentito di
superare anche la velocità critica di 20X. Attualmente la velocità di lettura massima è 52X, dovuta alla resistenza
strutturale del policabonato usato nella costruzione dei CD. Kenwood ha però dimostrato la possibilità di sfruttare più
laser contemporaneamente per aumentare ulteriormente la velocità di lettura. Il lettore Kenwood TrueX è in grado di
leggere alla velocità di 72X, facendo ruotare il disco alla velocità tipica dei lettori 10X.
Velocità di scrittura
In genere la velocità max di scrittura è più bassa rispetto alla massima velocità di lettura. Questi valori sono i genere
indicati in un formato del tipo 24X/52X che significa che il masterizzatore è in gradi di incidere il supporto ad una
velocità di 24X, mentre in lettura è in grado di utilizzare una velocità 52X.
Nota: Una altra differenza fra CD Audio e CD Dati è data dal fatto che i CD audio utilizzano una velocità di lettura
costante sia sulla parte esterna sia su quella interna del disco. Questo è ottenuto variando la velocità di rotazione
del disco, che passa da 500 giri/min al centro a 200 giri/min all'esterno. I CD dati invece, per ottenere prestazioni
migliori,vengono fatti girare a velocità costanti ed elevate (con un po' di rumore), e vengono letti a velocità variabile
Capienza di un CD
La capienza di un CD è espressa sia in minuti (per registrazioni Audio) sia in MBytes (per CD dati). Valori usuali :
74 minuti/650 MBytes
80 minuti/700 MBytes
100 minuti/870 MBytes
(cioè 333.000 settori x 2 kBytes ciascuno = 666 MBytes)
(cioè 360.000 settori x 2 kBytes ciascuno = 720 MBytes)
(abbastanza raro, sostituito dai DVD).
Tipi di CD e relativa struttura fisica
La struttura di memorizzazione delle informazioni in un CD è simile a quella dei vecchi dischi in vinile. Nei lettori
CD però la testina non tocca la superficie del supporto, ma viene mantenuta allineata e alla giusta distanza attraverso
diversi sistemi di servocontrollo.
Il CD-ROM (CD Authoring,) è costituito da un disco di resina termoplastica trasparente che racchiude al suo interno
un sottile foglio di materiale metallico riflettente (normalmente alluminio) sul quale sono memorizzate le
informazioni come una serie di microscopiche incisioni (pits), dove l‟alluminio viene in pratica bruciato (burst)
mediante un fascio laser a bassa potenza, separate da spazi riflettenti (lands) che vengono lasciati inalterati. In lettura
il fascio di luce emesso da un diodo laser viene riflesso dai lands, mentre in corrispondenza dei pits, si ha una
interferenza distruttiva fra fascio incidente e fascio riflesso
I CD-R (1990 CD-Recordable o CD registrabile) sono CD scrivibili una sola volta tramite masterizzatore, un
dispositivo dotato di un raggio laser più potente di un normale lettore e in grado di incidere il CD-R.
pag 44
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Il funzionamento di questo dispositivo riprende quello dei CD-ROM comuni, ma gli avvallamenti e le zone piatte,
vengono “simulati”. In pratica la superficie riflettente viene ricoperta da una pellicola trasparente: tramite il calore
generato dal laser del masterizzatore, si modifica la sua trasparenza divenendo al caso opaca (avvallamento) o
rimanendo trasparente (parte piana).
Ultimo nato il CD-RW (CD-ReWritable, CD-Riscrivibile) possiede la caratteristica di poter essere scritto più volte.
È composto da un materiale cristallino che diviene amorfo al calore del laser e quindi opaco. Non riflettendo più il
laser di lettura diventa simile ad un avvallamento. Se invece rimane cristallino riflette il raggio, quindi simula la zona
piana. Per poter essere riscritto, tramite un riscaldamento prolungato a temperatura più bassa è possibile riportare il
materiale allo stato cristallino e quindi nuovamente modificabile. Un CD-RW può generalmente sopportare un
migliaio di cicli di scrittura-cancellazione.
Più o meno negli stessi anni vengono standardizzati altri 2 formati per la memorizzazione di informazioni su un CD:
 CD Video (White Book) in grado di memorizzare audio e video in formato MPEG-2 sino a 74 minuti di
video a schermo pieno, e di solito un film completo è memorizzato su due dischi. Sostituito dal DVD
 CD – EXTRA (Blue Book) permette di mescolare tracce audio con tracce di dati generando i cosiddetti CD
multimediali. Utilizza una tecnica di interleaving secondo cui le informazioni vengono fisicamente
memorizzate in modo diverso rispetto all'ordine logico, in modo da minimizzare il movimento della testina.
Quando si apre un qualunque software di masterizzazione, per prima cosa chiede che cosa si intende fare tra:
CD Video
CD Dati
CD Audio
CD Extra
Copia Fisica di un CD
Le tipologie di lettori CD
 Una tipologia meno costosa, dedicata alla riproduzione di musica, in grado di leggere soltanto CD Audio.
Questi lettori sono di solito predisposti per essere connessi a sistemi di amplificazione del suono.
 Una seconda tipologia, più costosa, è destinata ai personal computer, a cui viene collegata tramite
un'interfaccia IDE (ATA, SCSI, SATA, USB). I lettori moderni di questo tipo sono in grado di riprodurre, se
utilizzati con il software adatto, tutti i vari formati : CD audio, CD Video, CD EXTRA, CD-RW
 Nei PC più vecchi un apposito cavetto a 4 fili trasportava direttamente il segnale audio dal lettore CD alla
mother board. Con l‟avvento del SATA, il segnale audio viene fatto transitare normalmente sul bus SATA.
File ISO
Il contenuto di un CD può essere copiato su HD su un file immagine generalmente con estensione .iso (in
riferimento al file system ISO 9660 usato sui CD Dati). L‟estensione ISO è la più comune ed è riconosciuto da quasi
tutti i software di masterizzazione ma esistono diversi altri formati (es .nrg nero burning rom).
Le immagini ISO sono utilizzate per salvare su un singolo file tutti i dati contenuti su un CD esattamente come sono
stati scritti (comprese eventuali informazioni di integrità dei dati presenti sul supporto). In questo modo, si potrà :
 rimasterizzare in seguito l'immagine,
 emularla con particolari software che simulano una periferica (montando il file ISO come disco virtuale) e
che permettono di utilizzarla come un vero e proprio disco (utile ad esempio per le installazioni)
 renderla disponibile sulla rete in modo estremamente semplice.
DVD
Il DVD, acronimo di Digital Versatile Disk (Disco Versatile Digitale), comparso sul mercato nel 1998, è un supporto
di memorizzazione di tipo ottico con le stesse identiche dimensioni del CD (12 cm) con la stessa incisione a spirale
ma con spire molto più ravvicinate (0,74 um contro 1,6 um), in modo da ottenere una capienza decisamente
superiore. Anche i pit sono meno profondi (0,4 um contro 0,83 um). I settori sono sempre 2 k Bytes.
Il File System utilizzato è sempre UDF (Universal Disk Format) nato con i DVD e poi esteso anche ai CD.
La velocità base di lettura di un DVD è 1350 kBytes/s (velocità di riproduzione dei DVD video) contro i 150 kbyte/s
dei CD. I DVD attuali arrivano in genere fino a 8x. Un lettore DVD è in genere in grado di leggere anche i CD.
pag 45
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Capacità dei DVD




DVDDVD-DL
DVD2DVD2-DL
4.7 GB singolo strato
8.5 GB doppio strato
9.4 GB singolo strato
17 GB doppio strato
singolo lato
singolo lato
doppio lato (ancora abbastanza rari)
doppio lato
Nella tecnologia a doppio strato le informazioni vengono salvate su due strati indipendenti di materiale differente
mediante fasci laser a frequenza diversa ognuna delle quali interagisce soltanto con uno dei due strati. In genere c‟è
una sorgente laser unica che può emettere entrambe le frequenze, scrivendo prima uno strato e dopo l‟altro strato.
I DVD a doppio lato richiedono invece due testine di lettura, ogni per ogni lato del DVD.
La capienza in minuti di un DVD-video è solo indicativa e dipende dal tipo di ripresa e dai settaggi scelti. Può
variare dalle 2 ore nel cosiddetto SP mode (ad elevata qualità) alle 4 ore nel cosiddetto EP mode (qualità inferiore).
Tipi di DVD
I principali “formati” di DVD sono :
 DVD-Video, di solito in codifica MPEG2 con risoluzione 720 x 576, sostituto della videocassetta VHS
L‟audio dei DVD Video è memorizzato generalmente in formato MP2 o PCM.
 DVD-ROM, DVD dati, destinato a sostituire il CD-ROM per la memorizzazione dei dati.
 DVD-Audio, in realtà mai decollato. Nel campo Audio Continua a resistere il CD Audio


DVD-R rappresenta lo standard ufficiale per i DVD Registrabili.
DVD-RW ricalca le caratteristiche di DVD-R con max 100.000 scritture
 Successivamente ai DVD-R il consorzio Sony-Philips, commercializza un nuovo formato denominato
DVD+R che, seppur sempre basato su una tecnica di registrazione elicoidale, differisce notevolmente nel
formato di memorizzazione delle informazioni. Un apposito sistema (brevettato) di tracciamento e di controllo
della velocità lo rende meno suscettibile ad interferenze ed errori.
 Il DVD+RW supporta l'accesso casuale in scrittura, cioè i dati possono essere aggiunti e rimossi senza
cancellare l'intero disco. I moderni lettori e masterizzatori supportano entrambi i formati.
 I DVD Blue-Ray utilizzano un laser di colore blu a frequenza maggiore rispetto a quelli standard, dunque più
preciso e con la possibilità di diminuire la distanza fra le tracce le dimensioni di pit e land. consentendo
capacità maggiori fino a 25 GBytes. Costi decisamente più elevati rispetto agli altri DVD
 I DVD RAM utilizzano un sistema di memorizzazione ancora differente Non sempre sono supportati dai player
 I DVD a scadenza hanno nello strato centrale una sostanza citrica che, a contatto col raggio ottico del lettore,
viene lentamente sprigionata andando a deteriore le tracce e rendendo il dvd illeggibile dopo la prima lettura.
Localizzazione dei DVD
Poiché nel mondo un film esce normalmente prima nel paese di produzione (e di conseguenza anche il DVD), le grandi case
cinematografiche americane pretesero fin da subito la suddivisione del globo in sei macro aree principali (Nord America, Sud
America, Europa, Asia, Africa e Oceania), che sarebbero servite ad impedire lo scambio di DVD fra una nazione e l'altra, in
modo che fosse impossibile acquistare all‟estero un DVD-Video prima che il film venisse proiettato in sala nel paese
dell'acquirente. A tal fine il codice regionale viene “impresso” sia all‟interno del lettore sia all‟interno dei DVD Authoring, in
modo che un lettore con codice per la zona 6 non sia in grado di leggere un DVD contrassegnato per la zona 1.
Pendrive USB
Le pendrive USB sono memorie di massa allo stato solido (cioè basate soltanto su componenti elettronici e prive di
qualsiasi parte in movimento) costituite da una Flash Memory che comunica con il PC attraverso l‟interfaccia USB.



Inizialmente le Pendrive erano partizionate mediante un file system di tipo VFAT16 (max 2 GBytes).
Attualmente si utilizza FAT 32 (max 2 TBytes). FAT non gestisce i permessi sui singoli file.
Una chiavetta USB non è scrivibile all‟infinito (come RAM e HD) ma ha un limite di max 100.000 scritture.
Il protocollo per il trasferimento dei dati fra computer e chiavetta è un protocollo standard denominato USB
Mass Storage protocol i cui driver di supporto sono ormai inclusi in tutti i Sistemi Operativi.
pag 46
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Grazie alle dimensioni ridotte, all'assenza di meccanismi mobili (al contrario degli hard disk comuni) che
renderebbero il dispositivo più fragile, alle sempre crescenti dimensioni della memoria, alla sua versatilità (non
richiede l'installazione di driver), la chiavetta USB è ormai divenuta uno standard per il trasporto fisico di dati.
Memory Card Schede di memoria SD (Secure Digital)che usano la stessa tecnologia delle Pendrive ma più veloci
(fino a 45 MBytes / sec)
Smart Card Carta intelligente (ad es SIM dei cellulari o bancomat) che possiede potenzialità di elaborazione e
memorizzazione dati ad alta sicurezza e in quantità molto maggiore rispetto alla banda magnetica dei bancomat
tradizionali o vecchie schede telefoniche. Sotto la contattiera esterna c‟è un vero microchip contenente un
processore, RAM, ROM, EEPROM (flash) typ 4k. Chiave privata interna che garantisce l‟identità. Ci sono
anche smart card a sola memoria flash con una logica di protezione da modifiche fraudolente.
SD
Secure Digital (chiamate più brevemente SD) è il più diffuso formato di schede di memoria utilizzate per
memorizzare in formato digitale grandi quantità di informazioni all'interno di memorie flash.
Le "Secure Digital" hanno capacità molto
elevate, seconde solo alle CompactFlash.
Molti Notebook sono già equipaggiati con
lettori appositi che consentono l'utilizzo
di queste schede di memoria. Esistono
tre formati:



le SD (32 x 24 x 2,1 mm),
le mini-SD (21,5 x 20 x 1,4 mm),
le microSD di dimensioni ancora
più contenute (11 x 15 x 1 mm).
La capacità massima attuale delle SD è
 256 GB (16 GB prima di gennaio
2008);
 64 GB per le miniSD e le microSD
Esiste anche un particolare tipo di
SecureDigital che incorpora un
connettore USB, e permette di collegare
la SD a un computer senza bisogno di
appositi lettori
pag 47
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
SDHC Secure Digital High Capacity (Secure Digital ad alta capacità)
Le SD superiori ai 2 GB e con una velocità minima di lettura/scrittura di 2,2 MB/s vengono nominate col nuovo
termine SDHC , e non sono compatibili con i vecchi lettori di schede SD.
Sono anche chiamate SD 2.0. Le SDHC sono classificate in base alla velocità di scrittura, che le divide in classi. La
capacità massima teorica dello standard SDHC è di 32 GB.
La classe di velocità indica la velocità minima di scrittura continua su una scheda SDHC vuota espressa in MB/s, le
classi definite sono:
Classe
Velocità minima di scrittura MB/sec
Classe 2
2,34
Classe 4
4,69
Classe 6
7,03
Classe 10
14,6
UHS - I
The Ultra-High Speed (UHS) designation is available on some SDHC and SDXC cards. UHS-I cards, specified in
SD Version 3.01 support a clock frequency of 100 MHz (a quadrupling of the original "Default Speed"), which in
four-bit transfer mode could transfer 50 MB/s. UHS-I cards declared as UHS104 also support a clock frequency of
208 MHz, which could transfer 104 MB/s. UHS-I is the only class for which products are currently available.
La ns SD è una SDHC class 10 UHS-I con una velocità di 45 MB / sec
SDXC Secure Digital eXtended Capacity (Secure Digital a capacità estesa)
Le SD con capacità superiori ai 32 GB vengono chiamate con il nuovo termine: SDXC o SD 3.0. La capacità
massima teorica dello standard SDXC è di 2048 GB (2 TB) e una velocità del BUS di 104 MB/s.. Il File System è
ExFAT.
pag 48
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Schede e Porte di Comunicazione
Scheda Video
Il video è suddiviso in una serie di minuscoli pixel. La risoluzione indica quanti pixel possono essere visualizzati
sullo schermo (es 1024 x 768). Il rapporto tra la dimensione x e y è detto Fattore di Forma ed era inizialmente 4:3
oggi 16:10 (widescreen pc) o 16:9 (tv). La scheda video ha il compito di generare i segnali (RGB, sincronismo, etc.)
per pilotare il monitor. Esistono 2 modalità di rappresentazione delle informazioni sul video:
 modalità testuale in cui l‟applicazione si limita ad “inviare” alla scheda video i codici ASCII dei caratteri da
visualizzare e questa provvede a tradurli in pixel video e a visualizzarli.
 modalità grafica la scheda video gestisce il video come una matrice di pixel accesi / spenti. Ogni pixel viene
memorizzato in formato RGB su tre byte (formato True Color).
 Per quanto concerne la risoluzione si sono succedute negli le seguenti schede:
 VGA (Video Graphic Array) con risoluzione 640 x 480 4 bit per pixel (16 colori)
 S VGA super VGA 800 x 600
 X VGA eXtended VGA 1024 x 768
 SX VGA 1280 x 960. UXVGA Ultra eXtended VGA 1600x1200 QXVGA 2560x1600
 modalità 16:10 : WXVGA (Wide eXtended VGA 1280 x 800) e WSXVGA (Wide Super eXtended
VGA 1440 x 900)
 modalità 16:9 : HD 720 (High Definition 1280 x 720) e HD 1080 (Full HD 1920 x 1080).
 Per quanto concerne il connettore per anni si è usato il tipico connettore connettore video a 15 poli detto
VESA-VGA. Oggi si usa invece il connettore DVI Digital Visual Interface che è una porta attraverso la quale
il segnale video viene inviato al monitor in forma digitale, quindi meno soggetta ai disturbi. La DVI apporta un
notevole miglioramento rispetto alle precedenti interfacce analogiche. Le immagini veicolate dalle interfacce
DVI sono molto nitide, ad alta risoluzione e predisposte per l'HDTV. Diversi tipi di connettori VDI:
 DVI-A trasporta esclusivamente segnali analogici in formato compatibile VESA VGA.
 DVI-D trasporta esclusivamente segnali digitali. L'interfaccia DVI-D può essere Single Link o Dual Link.
 DVI-I implementa sullo stesso connettore sia i segnali analogici dell'interfaccia DVI-A che quelli digitali
della DVI-D. La parte digitale può essere a un canale o a due canali esattamente come per la DVI-D.
 Una scheda video utilizza una RAM video GDDR posizionata sulla scheda stessa e che contiene la codifica
binaria dell‟output visibile sullo schermo. Nel caso di immagini 2D, le dimensioni della RAM video necessaria
possono essere calcolate come prodotto della risoluzione verticale x risoluzione orizzontale x 3 x il numero max
di finestre apribili. Una scheda 2D con risoluzione di 1600 x 1200 richiede 5,76 MBytes di RAM, duplicati n
volte per il numero di finestre apribili. Le schede più economiche utilizzano come memoria la RAM di sistema
(con prestazioni inferiori), mentre le schede più avanzate hanno a bordo typ 128 – 256 – 512 MBytes di VRAM.
La notazione 512/128 indica che 128 MBytes sono sulla scheda, mentre i rimanenti li attinge dalla memoria.
 Le schede video attuali sono dotate di un processore locale dedicato all‟elaborazione grafica detto GPU
(processore grafico) che si occupa principalmente del posizionamento e ridimensionamento delle finestre.
- Il processore grafico può essere dotato di accelerazione 2D, cioè può essere in grado di “disegnare”
autonomamente sulla memoria video alcune forme geometriche a 2 dimensioni (dette primitive grafiche, cioè
linee, cerchi, rettangoli, etc) e spostare blocchi di pixel da una parte all‟altra dell‟immagine. In tal modo la
CPU può inviare alla scheda comandi DirectX di alto livello (traduzione delle istruzioni MMX) ed essere
sgravata dall‟onere di dover svolgere l‟intera elaborazione grafica.
Le schede con accelerazione 3D sono schede in grado di gestire le primitive grafiche 3D. La grafica 3D
consiste nel simulare la percezione di un oggetto tridimensionale, a partire da una immagine bidimensionale,
mediante l'uso di tecniche come la prospettiva e l'ombreggiatura (shading). Le immagini 3D sono prodotte
mediante un meccanismo di rendering che, a partire da apposite primitive 3D (modelli matematici
tridimensionali), consente di produrre una immagine 2D. Notevole quantità di memoria video.
Le Main Board attuali hanno generalmente la Scheda Video integrata al loro interno, con memoria da 128 fino a 512
MBytes. Per applicazioni che usano fortemente la grafica (typ 3D) si possono aggiungere schede esterne AGP o
PCIx16 a riconoscimento automatico (a patto di installare il driver, altrimenti il SO utilizza i suoi driver di default).
In presenza della scheda esterna, la scheda interna viene disabilitata e non restituisce all‟esterno nessun segnale.
pag 49
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Schede di acquisizione video Sono schede con connettore di ingresso analogico per l‟antenna, e/o con connettore
cilindrico RCA (giallo) o S-VHS a 6 pin per l‟acquisizione di segnali video analogici. La scheda effettua al volo la
conversione analogico digitale con relativa visualizzazione.
Scheda Audio
La scheda audio, in genere anch‟essa ormai integrata nella main board, consente di elaborare informazioni digitali
memorizzati in appositi formati (cda, wav, mp3, midi) per generare i segnali analogici da inviare agli altoparlanti.
cda è un formato non compresso utilizzato nei cd audio analogo al formato bitmap per le immagini.
wav (Waveform Audio Format) è un formato analogo al cda utilizzato nei sistemi Windows
mp3 è un formato compresso ottenuto a partire da un cda o da un wav
mid è un formato contenente la codifica di una partitura musicale. Non può contenere voce ma solo note
Nel caso dei segnali cda, wav, mp3 la scheda audio utilizza un convertitore Digitale / Analogico per convertire il
segnale in analogico, mentre nel caso dei mid utilizza un sintetizzatore MIDI integrato.
Le prime schede audio presentavano normalmente :
 due uscite stereofoniche amplificate da inviare alle casse
 un ingresso per microfono.
 due ingressi line per segnali stereofonici non amplificati provenienti da lettori esterni
Le schede attuali, inalterate negli ingressi, gestiscono ormai quasi sempre 6 canali di uscita implementando il
cosiddetto sistema Dolby Surround. Parametro caratteristico della scheda audio è la profondità di campionamento
che la scheda è in grado di elaborare. Le attuali schede Realtek High-Definition Audio presentano 6 canali con
profondità di campionamento di 32KHz / 24-bit per ogni canale (768 kbit/sec per canale), dove ogni canale è
sostanzialmente equivalente alla cosiddetta “Qualità CD” (44,100 KHz / 16 bit per canale = 706 kbit/sec per canale).
Porta Parallela LPT
Utilizzata soprattutto come output per pilotare le stampanti o plotter, collegati mediante il cosiddetto Cavo Parallelo
a 8 bit con connettore DB25F lato PC e CENTRONICS lato stampante. Le tensioni sono di tipo TTL (5 V).
La porta parallela è normalmente indicata con la sigla LPT che significa Line Printer Terminal
Esistono tre modalità di utilizzo della porta parallela, impostabili da una apposita finestra del BIOS:



SPP (Standard Parallel Port) monodirezionale in uscita dal PC con velocità max 150 KBytes / sec
EPP (Enhanced Parallel Port) maggiormente flessibile e veloce con velocità max 2 MBytes / sec. Modalità
bidirezionale che consente di collegare sia stampanti sia dispositivi di input quali ad esempio uno scanner.
Sono possibili le configurazioni EPP 1.7 oppure EPP 1.9 di cui la seconda è preferibile.
La terza modalità ECP (Enhanced Capabilities Port) consente di programmare la porta parallela in 8 modi
differenti (fra cui SPP e EPP) agendo sui registri di configurazione.
La porta parallela è pressoché caduta in disuso sostituita dalle porte USB. Volendo è però possibile acquistare schede
PCI che implementano la tipica porta parallela (costo 25 € iva inclusa)
Porta Seriale COM
Molto utilizzata in passato per la programmazione di dispositivi remoti (modem, router, plc, etc). I dati vengono
trasmessi in modo seriale un bit alla volta per ciascun senso, dunque molto più lentamente rispetto alla parallela.
Il connettore della porta seriale è il tipico connettore RS-232 a 9 pin maschio di cui i tre fondamentali sono Tx Rx e
GND (uno per trasmettere, uno per ricevere ed una massa comune). La tensione è ±12 V. Il dispositivo che esegue la
serializzazione dei dati per la trasmissione seriale è l‟UART 8251 (Universal Asyncronous Receiver Transmitter).
Un PC può mappare al suo interno quattro porte seriali indicate rispettivamente con le sigle COM1 – COM4 .
La comunicazione attraverso la porta seriale è stata in parte sostituita dall‟interfaccia USB (mouse, tastiera, modem)
ed in parte dall‟interfaccia LAN (comunicazione tra PC o con dispositivi esterni come i PLC).
Continua comunque ad essere presente sui PC per compatibilità con il gran numero di apparati seriali esistenti.
pag 50
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Scheda di Rete
Consente di interfacciare il Personal Computer ad una rete locale detta LAN (lLocal Area Network). Possono essere
integrate nella main board o inserite come schede aggiuntive sul bus PCI. Lo standard attualmente più utilizzato è il
Fast Ethernet a 100 Mbit/sec su cavo UTP cat 5 e connettori RJ 45 simili al connettore telefonico RJ11 ma a 8 fili.
E‟ ormai diffuso anche il GigaBit Ethernet a 1 Gbit / sec su cavo UTP cat 5e. Il cavo di rete può collegare tra loro
due PC, ma di solito è collegato ad un apparato di rete detto HUB che consente la comunicazione fra più PC.
Sheda WiFi
Tutte le main board attuali, oltre alla normale scheda LAN, hanno integrata al loro interno anche una seconda scheda
di rete di tipo wireless detta WiFi (Wireless Fidelity), che può essere abilitata / disabilitata mediante apposito
interruttore. Queste schede sono dotate di una piccola antennina interna che consente la comunicazione radio a 2.4
GHz con un dispositivo detto Access Point. che si interfaccia con la rete cablata. La massima distanza del PC
dall‟Access Point, all‟interno di un edificio, può essere di 20 / 30 metri, in funzione anche della struttura dell‟edificio.
IEEE 802.11
IEEE 802.11 b (WiFi)
IEEE 802.11 g
IEEE 802.11 n
2 Mbit / sec
11 Mbit /sec
54 Mbit / sec
300 Mbit / sec
1993
2000
2004
2008 (inizialmente doveva essere 540 Mbit/sec)
Modem WAN
Consente di interfacciare il Personal Computer ad una rete geografica detta WAN. Tre tipi principali:
 Modem PSNT per la trasmissione analogica sulla normale rete telefonica PSTN (public switched telephone
network). Detto comunemente modem analogico perché converte i segnali digitali in analogici per le linee
PSTN. Gli ultimi standard emessi sono il V90 e V92 entrambi con velocità massima 56 kbit / sec. La velocità
reale dipende dalle condizioni del collegamento. Il modem PSTN può essere interno al PC (con tipico
connettore telefonico RJ 11 a 4 fili) o esterno collegato al PC attraverso la porta seriale o la porta USB.
 Modem ISDN per la trasmissione in digitale su apposita linea ISDN (Integrated Service Digital Network) a 64
kbit / sec costanti e reali. La linea ISDN utilizza di solito come terminale utente una borchia di tipo NT alla
quale può essere collegato il modem ISDN che a sua volta può essere interno al PC (con connettore RJ45)
oppure più frequentemente esterno in modo da poter pilotare (mediante apposito Terminal Adapter TA) anche
una linea analogica su cui collegare ad esempio il telefono.
 Modem ADSL (Asymmetric Digital Subscriber Line) che ha ormai soppiantato entrambe le tecnologie
precedenti. Ha il vantaggio che può essere collegata alla normale linea telefonica e, mediante apposito filtro,
consente l‟utilizzo di due canali separati, uno telefonico e l‟altro digitale. Lato PC il modem ADSL può essere
collegato alla porta USB oppure alla porta LAN RJ45.
La velocità max di downstream nei vari standard ADSL (con upstream 640 kbit / sec) è:
ADSL1
ADSL2
ADSL2+
9MBps
12 MBps
25 MBps
a 300 metri dalla centrale
a 2,5 km dalla centrale
a 1,5 km dalla centrale
Sono ormai molto diffusi anche i cosiddetti modem router ADSL che consentono di collegare ad Internet più
macchine appartenenti ad una rete locale. Essi contengono al loro interno :
un hub (di solito a 4 canali)
spesso un AP WiFi
un modem ADSL
Porta FireWire detta anche ILINK
Utilizzate per collegare dispositivi di acquisizione audio video. Più veloce della USB ma proprietaria (Apple).
Può collegare tra loro due dispositivi anche senza passare attraverso il PC Velocità di trasferimento di 800 Mbit/sec
pag 51
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Periferiche Esterne di supporto al Personal Computer
Tastiera
Formato standard a 101 tasti (106 nelle tastiere orientate a Windows). Esistono molte versioni localizzate per i singoli
paesi (italiana, americana, francese, inglese, etc.). Il BIOS deve contenere le codifiche ASCII corrispondenti.
La tastiera può essere collegata al personal computer mediante connettore :



DIN a cinque contatti utilizzato nei sistemi 8086 / 286 / 386 ormai obsoleto
PS/2 con connettore a 6 pin di colore violetto economico ed ancora molto utilizzato
USB
La tastiera mediante il connettore PS/2 o USB “preleva” una alimentazione a 5V necessaria per alimentare un
microcontrollore interno (tipicamente Intel 8048) il cui scopo è quello di monitorare continuamente i tasti e vedere
se c‟è qualche tasto premuto. I tasti sono dotati di una molla che, quando rilasciati, li fa automaticamente ritornare
nella posizione di riposo. In caso di tasto premuto provvede a generare un interrupt alla CPU inviando il codice del
tasto premuto.
Mouse
Dispositivo di puntamento introdotto con le interfacce grafiche (prima Macintosh e poi Windows). Si tratta in pratica
di un sensore di spostamento collegato ad un apposito microcontrollore interno (detto DSP Digital Signal
Processing) che comunica con il driver installato a livello di BIOS. Il collegamento al PC può essere eseguito tramite:
 Connettore PS/2 o più frequentemente USB.
 Connessione RF (con ricevitore USB sul PC)
 Connessione Blue Tooth (un po‟ più caro ma non impegna nessuna porta USB)
I mouse wireless, privati dell‟alimentazione USB, sono normalmente dotati di pile stilo e pulsante di spegnimento.
Il sensore di spostamento può essere realizzato mediante:
 Sistema meccanico con una sfera che fa ruotare due dischi di posizione disposti a 90° tra loro che, in
corrispondenza di ogni rotazione, mediante il microcontrollore, consentono di inviare un impulso al driver
che muove la freccina a video nelle direzioni x e y.
 Sistema di puntamento ottico, realizzato mediante un led che illumina una piccola porzione di superficie.
Un sensore ottico “legge” il segnale riflesso dalla superficie (con una sequenza di 1000 immagini al secondo)
e lo trasmette al microprocessore che elabora le immagini ricevute e, grazie alle piccole irregolarità della
superficie, riconosce il movimento e invia gli impulsi al driver. Può essere utilizzato su qualsiasi superficie
tranne che su vetro. Molto più preciso del predecessore.
In corrispondenza di ogni micro spostamento, il microprocessore invia al driver 3 bytes indicanti rispettivamente
lo spostamento sull’asse x, lo spostamento y e lo stato dei pulsanti.
Esistono anche altri sistemi alternativi che svolgono le stesse funzionalità di un mouse:
 Touch pad tipico dei notebook, che è una piccola tavoletta sensibile allo spostamento delle dita.
 Trackball Particolare tipo di mouse che sembra un mouse ribaltato. L‟utente deve muovere la sfera
direttamente con le dita. Utilizzato ad esempio nei notebook più vecchi.
Scanner
Strumento per l‟acquisizione di immagini e relativa conversione in digitale, normalmente collegati tramite USB
senza necessità di alimentazione esterna. Caratteristiche di una acquisizione tramite scanner sono:
 il PPI (Pixel Per Inch) cioè il numero di pixel acquisti per ogni pollice lineare dell‟immagine. Indica quanto
deve essere dettagliata l‟acquisizione. Il PPI utilizzato nelle acquisizioni tramite scanner può assumere valori
compresi tra 72 e 1200. Maggiore è il PPI utilizzato per l‟acquisizione, maggiore sarà il numero di dettagli
acquisiti, maggiore sarà il numero di pixel che andranno a comporre l‟immagine, maggiore sarà l‟occupazione
in bytes dell‟immagine. Molto spesso al posto di PPI si utilizza come sinonimo il termine DPI (Dot Per Inch)
che non è però del tutto corretto in quanto il DPI è un parametro propriamente riferito soltanto alle stampanti.
pag 52
Sistemi - Classe Terza
robertomana.it
Il Personal Computer

La profondità di colore da utilizzare nell‟acquisizione di ciascun punto. Tutti gli scanner restituscono i punti
in formato RGB, cioè a 24 bit per punto.
Anche i testi vengono ovviamente acquisiti come immagini. Per convertire l‟immagine acquisita in testo ASCII
occorre utilizzare un apposito software OCR (Optical Character Recognition)
Penna Ottica
Esistono diversi tipi di penne ottiche : per la lettura dei codici a barre e del testo (tramite software OCR) con
utilizzo delle stesse modalità di connessione del mouse: (USB, RF o BlueTooth).
Oggi sono molto diffuse anche le cosiddette Tablet Pen che, nei tablet e palmari, sostituiscono tastiera e mouse e
consentono di scrivere direttamente sul video. Una apposita retina posizionata sotto ai cristalli liquidi consente di
percepire la presenza della penna che sembra scrivere come una comune penna inchiostro
Monitor
Principali Caratteristiche




Dimensioni intese come lunghezza della diagonale espressa in pollici.
Gli LCD hanno una qualità migliore. 15” pollici LCD hanno un effetto visivo simile a 17” CRT.
Risoluzione max espressa in pixel2 (1024 x 768, 1280 x 960, 1600 x 1200).
Dot pitch (passo) cioè la distanza minima fra due fosfori dello stesso colore. Ovviamente, a parità di
dimensioni del monitor, minore è il dot pich maggiore è la risoluzione max ottenibile.
Per la connessione di un monitor alla mainboard si utilizza il tipico connettore VGA a 15 pin disposti su 3
file (che invia al video segnali analogici). Se invece il video è predisposto per ricevere segnali digitali si
utilizza il nuovo connettore DVI (costituito da 2 connettori quadrati a 9 pin ciascuno). Esistono più versioni:
DVI-D che accetta solo segnali digitali e DVI-I che accetta in ingresso sia segnali digitali che analogici.
I monitor sono principalmente di due tipi:

CRT (Cathod Ray Tube) vecchio monitor con tubo a raggi catodici (cinescopio). Su ogni pixel sono depositati
tre fosfori (R G e B). Tre cannoni elettrici (RGB) generano tre fasci di elettroni ognuno dei quali, leggermente
deflesso, va a “colpire” più o meno intensamente, il corrispondente fosforo che, eccitato, emette luce di quel
colore. Mediante la sintesi additiva di questi tre colori fondamentali (ognuno con una intensità compresa tra 0 e
255) si possono ottenere tutti gli altri colori (255 x 255 x 255 = 16 Ml di Colori).
I pixel eccitati dopo un breve intervallo si spengono, per cui i cannoni devono continuare a “bombardare”
costantemente lo schermo spostandosi per righe successive. La Frequenza di refresh di un monitor CRT
indica ogni quanto tempo lo schermo viene interamente ridisegnato. Inizialmente 50 Hz, poi 60 Hz,
attualmente, con le risoluzioni più fini, 75 - 80 o anche 100 Hz.

LCD (Liquid Crystal Display) I cristalli liquidi sono cristalli trasparenti che a temperature ambiente
presentano uno stato intermedio fra lo stato solido e quello liquido, con la struttura cristallina tipica di una
sostanza solida ma con le molecole in grado di eseguire piccoli spostamenti reciproci.
“Stimolando” una piccola cella di cristallo liquido con un campo elettrico, questa ruota la polarizzazione
della luce che la attraversa con una intensità da 0° a 90° gradi a seconda dell’intensità del campo elettrico.
Inserendo le celle a cristalli liquidi all'interno di due schermi polarizzatori lungo assi perpendicolari tra loro,
agendo sul campo elettrico di controllo della cella si fa in modo che la luce di retroilluminazione dell’LCD
possa passare anche attraverso il 2° polarizzatore.
In pratica una cella LC retroilluminata con luce bianca consente di controllare elettricamente l‟intensità della
luce che la può attraversare, da completamente trasparente (pixel bianco) a completamente assorbente (pixel
nero). Qgni pixel è costituito da tre celle LC identiche, ciascuna, seguita da un apposito COLOR FILTER
che lascia passare rispettivamente solo il rosso, solo il verde e solo il blu. Controllando elettricamente la
trasparenza di ciascuna cella LC con valori compresi fra 0 e 255 si ottengono i soliti 16 Ml di colori. Il
controllo della trasparenza della cella LC può essere realizzato con tecniche differenti. Quella maggiormente in
uso consiste in un transistor a film sottile realizzato con un substrato di materiale semiconduttore trasparente
depositato sulle superfici interne dei vetri che ospitano i cristalli liquidi (tecnologia detta TFT Thin Film
Transistor o semplicemente a matrice attiva.)..
pag 53
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Negli LCD non c‟è il problema del decadimento dei fosfori, in quanto il livello di illuminazione è mantenuto dal
transistor, per cui in teoria non ci sarebbe necessità di refresh se non per cambiare l‟immagine. Dunque il refresh
degli LCD ha il solo scopo di aggiornare le immagini con una frequenza tale da “ingannare” l‟occhio umano e poter
visualizzare i filmati come continui. Per cui i vecchi 50 Hz televisivi sarebbero più che sufficienti. Di solito 60 Hz.
Tra i vantaggi del monitor LCD, il ridotto ingombro, minor consumo, non presenta sfarfallino (persistenza dei
transitor), emissioni elettromagnetiche inferiori, dot pich più fine a parità di dimensioni. Per contro, mentre la luce
irradiata dai fosfori di un CRT si diffonde in tutte le direzioni consentendo un angolo di visione molto ampio, gli
LCD presentano un angolo di visione molto più ridotto, per cui occorre in pratica essere frontali allo schermo.
Stampanti
Possono essere:


A getto di inchiostro (inkjet) con 2 cartucce : CMY K (Cyan, Magenta, Yellow) + BlacK
Laser monocromatiche o a colori
Le stampanti laser utilizzano un raggio laser per produrre una immagine su un tamburo rotante (xerografia),
modificando la distribuzione della carica elettrica sulla sua superficie. Ruotando, le varie zone del tamburo
elettrizzate diversamente, attraggono da un apposito toner una quantità differente di inchiostro che vanno poi ad
imprimere sul foglio di carta.
Il tamburo, continuando la sua rotazione, viene ripulito e riportato nella situazione iniziale di “assenza” di cariche in
modo da poter ricominciare il processo. Le laser a colori usano quattro toner relativi al nero e ai tre colori base ciano,
giallo, magenta, trasferiti da un unico tamburo oppure da quattro tamburi distinti.
Le stampanti inkjet costano molto meno perché sono meccanicamente molto più semplici. In assenza del tamburo,
una testina di stampa, costituita da micro ugelli magnetici, “spruzza” direttamente sul foglio di carta un inchiostro
ionizzato contenuto nelle cartucce e suddiviso nei quattro colori. La quantità di spray è controllata agendo sugli ugelli
magnetici. Un motore muove la testina orizzontalmente. Per ogni passata la testina imprime un certo insieme di pixel.
Le stampanti fotografiche utilizzano 2 cartucce entrambe a tre colori (Ciano Magenta Giallo + Nero Rosa Celeste)
Parametri di una stampante sono:
 La risoluzione espressa in DPI (dot per inch, punti per pollice). Per la stampa delle fotografie occorre una
risoluzione di 300 DPI (90.000 punti / pollice2), massima che l'occhio umano riesce a distinguere. Le attuali
stampanti (sia laser che a getto di inchiostro) sopperiscono alla difficoltà di creare tutti i toni di colore
partendo da soli tre colori base, utilizzando DPI che possono arrivare anche fino 4800 o 9600.
 Velocità di stampa, espressa in PPM (Page Per Minute). Per una stampante laser la velocità di stampa può
essere ad esempio a 20/14 PPM, che significa 20 pagine al minuto in modalità testo bianco e nero e 14 pagine
al minuto in modalità grafica colore. Le stampanti ink jet sono molto più lente.
 Il linguaggio utilizzato per la descrizione della pagina. Dipende dal driver installato. I più comuni sono PCL
(Printer Control Language) di HP, arrivato alla versione 6, e PostScript utilizzato da Apple. Può talvolta
accadere che una stampante accetti entrambi i linguaggi ma con DPI differenti. Ad esempio
PCL5c - PCL6
600x600 DPI
Adobe® PostScript® 3™
1200 x 1200 DPI

Tutte le stampanti (per lo meno le laser) sono in genere dotate di una scheda di rete per la connessione diretta
in rete e sono dotate di una certa quantità di RAM per la gestione di una coda di stampa.
UPS
Uninterroptible Power SUpply, detti comunemente Gruppi di Continuità. Hanno delle batterie in grado di
mantenere la tensione anche in caso di mancanza di energia elettrica, anche fino a 2, 4, 6 ore. I più evoluti sono dotati
di una interfaccia seriale tramite la quale, nel momento in cui il livello di tensione scende al di sotto di una certa
soglia, provvedono all‟automatico spegnimento del computer. Usatissimi sulle macchine Server.
pag 54
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Gestione delle periferiche di un Personal Computer
Periferiche di un PC
Memorie di Massa: HD, Lettore di Floppy Disk, Lettore di CD/DVD
Input: Tastiera, Mouse, Scanner,
Output: Monitor, Stampanti,
Interfacciamento Hardware delle Periferiche
Ogni periferica necessita di una interfaccia più o meno complessa che le consenta di comunicare (cioè scambiare
dati) con il processore centrale. L‟interfaccia, nel suo insieme, è costituita da:



Modulo di interfaccia, contenente un insieme di registri a 8 bit detti I/O Port, posizionato all‟interno della
main board o su apposite schede PCI
Un Controller di periferica, costituito da un circuito stampato posizionato a bordo della periferica, che
comunica con il Modulo di Interfaccia attraverso un apposito bus esterno e che controlla il funzionamento
della periferica
Un programma di gestione della periferica (Device Driver), contenente le istruzioni per la corretta gestione
dello scambio di dati tra CPU e periferica.
Bus Interno di Sistema
CPU
Periferica
Main Board
Modulo di
Interfaccia
Controller
Bus Esterno
Mappatura dell’IO (IO Mapped)
Essendo il bus di sistema unico, la CPU può comunicare con una sola periferica alla volta. La CPU normalmente
funge da Master del Bus, e decide di volta in volta quale dispositivo abilitare alla comunicazione. Come fa ad
indirizzare le varie periferiche? In realtà la CPU non indirizza la periferica, ma indirizza i Moduli di Interfaccia.
Ogni Modulo di Interfaccia è costituito da un insieme di registri di IO detti comunemente IO PORT, grandi 1 byte,
ciascuno dei quali ha un suo preciso indirizzo fisico all‟interno del PC (ad esempio gli IO port relativi alla porta
parallela sono 0x378, 0x379, 0x37A).
I registri di IO sono concettualmente simili alle celle della memoria, con le differenze che :
-
Non sono concentrati su una singola scheda, ma sono sparsi su tutta la main board o addirittura a bordo di
apposite schede PCI
I Registri di IO, oltre ad essere collegati con il Bus di Sistema che funge da interfacciamento verso la CPU,
sono collegati anche con un secondo Bus Esterno che funge da interfacciamento verso la periferica.
Nell‟architettura 8086 gli indirizzi relativi agli IO PORT avevano una dimensione pari a 10 bit (0 – 1023), poi estesa
a 16 bit (0 – 65535). Poiché gli indirizzi di IO viaggiano sull‟Address Bus allo stesso modo degli indirizzi di
memoria, la CPU utilizza un apposito segnale, detto M/IO, che, a seconda che sia 1 o 0, consente di definire se
l‟indirizzo che si trova sull‟Address Bus è un indirizzo di memoria oppure un indirizzo di IO.
pag 55
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
I Registri di IO sono di solito almeno 3 aventi il seguente significato:



Registro di Comando (0x37A nel caso della parallela), a sola scrittura, in cui la CPU scrive i comandi
relativi alle azioni che la periferica deve eseguire. E‟ indispensabile conoscere la struttura di questo registro
in modo da poter inviare i comandi correttamente.
Registro di Stato (0x379 nel caso della parallela), a sola lettura, il cui valore rappresenta lo stato della
periferica (ad esempio stampante accesa / spenta, assenza / presenza carta, stampante pronta a ricevere
dati / non pronta perché occupata a stampare i dati precedenti).
Registro Dati (0x378 nel caso della parallela), di lettura o scrittura a seconda che la periferica associata sia
una periferica di Input oppure di Output. E‟ il registro di appoggio per lo scambio dati con la periferica.
Nei cosiddetti “Block Device”, quali ad esempio gli Hard Disk, a cui la CPU deve inviare un intero blocco di
dati alla volta, il Registro Dati è costituito da una coda FIFO di registri uno sotto l‟altro. Anche la tastiera
utilizza come IO PORT un piccolo buffer FIFO (indirizzo di I/O 041EH lunghezza 32 bytes), in modo che se
l‟utente preme più tasti in rapida sequenza, il successivo non vada a sovrascrivere il precedente prima che
questo non sia stato letto.
IO MAP di un Personal Computer
Sono di seguito riportate le IO PORT dei principali dispositivi di un PC
Da
A
Periferica
0000
0020
0040
0060
00A0
00F0
01F0
0278
02E8
02F8
0320
0378
03F0
041E
000F
0021
0043
0063
00A1
00FF
01FF
027F
02EF
02FF
032F
037F
03F7
043E
DMA Controller 8237
Interrupt Controller PIC 8259
Timer 8253
Tastiera (interfaccia parallela 8255)
Interrupt Controller PIC #2 8259
Coprocessore Matematico 80287
Hard Disk (AT)
LPT2
COM1
COM2
Hard Disk (XT)
LPT1
Floppy Disk
Buffer di Input della Tastiera
Istruzioni di Lettura e Scrittura sulla porta di una periferica
In Assembly, così come in ANSI C, le istruzioni per eseguire l‟input e l‟output si una periferica sono rispettivamente
IN e OUT. Nell‟esempio si testa se la parallela è pronta (0x379) e nel caso si invia un dato.
int stato = inpb(0x379);
if(stato==1)
outb(0x378, dato);
I Device Driver
Il Device Driver di un dispositivo contiene un insieme di funzioni dedicate che consentono la lettura e scrittura
sugli IO PORT del dispositivo stesso, funzioni che i programmi applicativi possono utilizzare per accedere alla
periferica senza doversi preoccupare dei dettagli di funzionamento dell‟interfaccia stessa.
Il Device Driver sono di solito memorizzato in files .SYS all‟interno della cartella Windows / System, caricati
automaticamente in memoria dal SO in fase di bootstrap. Ogni Device Driver contiene una procedura di
inizializzazione eseguita dal SO in fase di bootstrap, ed una procedura specifica eseguita di solito tramite interrupt
ogni volta che deve essere eseguita una operazione di IO verso la periferica.
pag 56
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Tipi di device
Nel caso dei “Character Device” (video a caratteri, stampanti, seriali), il driver solitamente assegna alla periferica
un nome (LPT1, COM1, CONSOLE, etc.), in modo che le applicazioni possano vedere le periferiche semplicemente
come un file su cui leggere o scrivere i bytes.
Nel caso dei “Block Device” (Hard Disk, Floppy Disk, Lettori CD/DVD), il driver solitamente assegna alla periferica
un “nome di volume” costituito da una lettera dell‟alfabeto seguita dai due punti (a: c: d: etc)
Confronto fra i tempi di CPU ed i tempi delle periferiche
Il tempo necessario per eseguire una operazione di IO è molto maggiore rispetto al tempo di esecuzione delle
istruzioni macchina. Ad es un processore con clock di 1 GHz è in grado di eseguire una istruzione in 1 nsec (10-9
sec). Una stampante che stampa 100 caratteri al secondo impiega 10 msec a stampare un carattere (10-2 sec).
Dunque la stampa di un carattere è 10 milioni di volte (107) più lenta rispetto all‟esecuzione di una istruzione.
Dopo aver inviato un byte alla stampante, prima di inviare il prossimo dato, la CPU si dovrebbe fermare per aspettare
che la stampante sia pronta per riceverne un altro. Nel frattempo potrebbe eseguire 10 milioni di istruzioni!
Tecniche di Comunicazione tra CPU e Periferica
 Polling Rappresenta la soluzione più semplice. E’ il programma (CPU) che interpella la periferica per sapere
se la periferica è pronta a ricevere / inviare un nuovo dato. Quando la periferica è pronta, il programma
provvedere a trasferire / leggere i dati nel Registro Dati e quindi riprende la propria esecuzione.
Vantaggi: E‟ il programma (CPU) che decide le tempistiche di gestione della periferica.
Svantaggi Se la CPU interpella la periferica troppo frequentemente si ha un notevole spreco di tempo. Se invece
la interpella troppo lentamente si rischia di perdere dei dati. Tecnica usata con periferiche a velocità medio-alta.
E‟ importante gestire un timeout con relativa segnalazione di errore. Il bit di occupato si chiama in genere :
Per le periferiche di output OBF = Output Buffer Full. Esso viene settato dalla CPU nel momento in cui scrive
un dato nel Registro Dati e resettato dalla periferica nel momento in cui legge il dato dal Registro Dati
Per le periferiche di input IBF = Input Buffer Full. Esso viene settato dalla periferica nel momento in cui scrive
un dato nel Registro Dati e resettato dalla CPU nel momento in cui legge il dato dal Registro Dati
 Interrupt (interruzione) E‟ l‟opposto di prima. In questo caso è la periferica, nel momento in cui ha un dato
pronto (oppure nel momento in cui ha evacuato il dato precedente) che invia una richiesta alla CPU tramite un
segnale di interrupt. Gestione asincrona rispetto alla normale esecuzione del programma. Quando la periferica ha
un dato pronto invia una richiesta alla CPU la quale interrompe la propria esecuzione e provvede a servire la
periferica per poi riprendere la propria elaborazione.
Nel momento in cui riceve una richiesta di interrupt, la CPU termina l‟istruzione in corso, interrompe l‟esecuzione
del programma, salva lo stato del programma (cioè i registri CS e IP e il registro PSW dei flag) e passa ad
eseguire la corrispondente routine di risposta all’interrupt (andando a leggere l‟indirizzo all‟interno della
Interrupt Vector Table). Modalità particolarmente adatta per tutte le periferiche che operano a basse velocità.
L‟arrivo di un segnale sul piedino di interrupt ha lo stesso effetto di una istruzione di salto comandata via
hardware e che in più comporta il salvataggio automatico dei registi CS e IP. Terminata la procedura di risposta
all‟interruzione (con lettura / scrittura dei dati verso la periferica), la CPU riprende la normale esecuzione del
programma corrente. C‟è però il problema che il pin di interrupt è 1, mentre le periferiche sono tante. Occorre un
dispositivo esterno (PIC 8259) che riceva gli interrupt dalle periferiche ed invii un unico segnale alla CPU.
 Direct memory access Accesso Diretto alla Memoria: Nel caso in cui occorra spostare grandi quantità di dati da
periferica a memoria o viceversa, invece di gestire personalmente lo spostamento, la CPU può attivare un apposito
dispositivo esterno, il DMA Controller, che esegue lo spostamento da periferica a memoria centrale senza
l‟intervento della CPU. La CPU deve soltanto inizializzare i registri del DMA con gli indirizzi dei dati da trasferire,
dopo di che i dati vengono trasferiti automaticamente dal DMA senza l‟intervento della CPU, che non può accedere
ai bus ma può continuare a elaborare tutte le istruzioni già precaricate nella L1 cache.
Esistono anche architetture con bus DMA dedicati e accesso dual port alla memoria centrale (CPU e DMA).
pag 57
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
 I/O processor: è un‟evoluzione del DMA, dove veri e propri microprocessori possono simultaneamente accedere
alla memoria centrale con tecnica dual port , in grado di eseguire quindi non solo trasferimenti automatizzati, ma
vere e proprie fasi di input output in memoria. Esempio tipico le attuali schede video. I computer server tendono
ad utilizzare molti componenti di questo tipo.
Classificazione delle Interruzioni
Un Interrupt è una interruzione asincrona del programma per l‟esecuzione di una procedura urgente richiesta da un
dispositivo esterno. Gli Interrupt possono essere :
Software(Interni), cioè generate dall‟interno del programma. Sono sostanzialmente delle chiamate al SO dette
Supervisor Call (verso il BIOS) o System Call (verso il SO). Possono essere generati esplicitamente mediante
un'istruzione INT oppure indirettamente per esempio a seguito di una divisione per zero.
Hardware(Esterni), sono generati dall‟hardware esterno alla CPU tipicamente per segnalare che una periferica ha
terminato di svolgere il lavoro che le era stato assegnato ed è pronta ad eseguire un nuovo lavoro.
Interrupt Vector Table
Le prime 1024 celle della memoria centrale, da 0000h a 03FFh contengono una tabella (Interrupt Vector Table)
contenete 256 record grandi 4 bytes ciascuno numerati da 00 a FF. Ogni record contiene due indirizzi di 16 bit
ciascuno (CS e IP) che forniscono nel loro insieme l‟indirizzo di partenza della corrispondente routine di servizio
dell‟interrupt.
Il primo record sarà relativo all‟interrupt 0, il secondo all‟interrupt 1 e così via. Nel momento in cui l‟interrupt viene
accettato dalla CPU, i due indirizzi vengono caricati rispettivamente all‟‟interno di CS e IP forzando la CPU ad
eseguire un salto all‟indirizzo corrispondente. I primi 64 interrupt sono predefiniti nel modo seguente:
Gli interrupt 00 – 07 sono interrupt predefiniti “speciali”
Gli interrupt 09 – 0F sono interrupt esterni provenienti sul pin INTR della CPU da parte di un dispositivo esterno di
gestione dell‟interrupt (PIC 8259) che può ricevere richieste di interrupt da 8 periferiche differenti
“bufferizzando” le richieste.
Gli interrupt 10 – 1F sono interrupt BIOS, caricate cioè dal BIOS della macchina e messe a dispostone del
programmatore per eseguire le operazioni fondamentali di IO (Basic Input Output System)
Gli interrupt 20 – 3F sono invece interrupt messi a disposizione dal DOS, di livello più alto rispetto agli interrupt
BIOS. Non sono però ovviamente disponibili ad esempio in un sistema Linux.
Gli interrupt 40– 6F sono interrupt BIOS secondari ma sempre standardizzati
Gli interrupt 70– 77 sono interrupt hardware provenienti da un secondo gestore delle interruzioni e comunque
convogliate sempre sul piedino INTR della CPU
Gli interrupt 78– FF sono 136 interrupt a disposizione del programmatore.
Il meccanismo di selezione all‟interno della Interrupt Vector Table della procedura di interrupt da eseguire,
rappresenta il meccanismo principale della portabilità del software. Assicura cioè che un programma scritto su un
PC possa essere eseguito anche su un altro PC con dotazione hardware diversa ma con lo stesso SO.
Eseguire una operazione di IO su una porta di un dispositivo significa accedere direttamente al dispositivo. In
alternativa alle porte, per molti dispostivi sono disponibili degli interrupt (system call) BIOS o DOS che vi accedono
in modo personalizzato rispetto al dispositivo. Un programma ben strutturato, quando deve accedere ad una risorsa
(ad esempio il video), non dovrebbe mai accedere direttamente ai registri di IO della risorsa, ma dovrebbe utilizzare
solo le chiamate di sistema (interrupt software) scritti appositamente per il dispositivo. Si accede invece direttamente
alle porte di un dispositivo quando non esiste un interrupt dedicato o quando si desidera avere maggiore velocità.
Le routine di Interrupt possono variare da un PC all‟altro, a seconda dell‟hardware utilizzato dalla macchina.
All‟avvio il sistema provvede a caricare in memoria in modo residente le varie routine relative ai Device Driver,
andando ad impostare il loro corretto indirizzo all‟interno della Interrupt Vector Table. Anche i Registri di IO, seppur
abbastanza standardizzati, non è detto che siano sempre gestiti allo stesso modo su hardware differenti.
pag 58
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
Ciclo di riconoscimento dell’Interrupt
L‟effetto di un interrupt è quello di trasferire il controllo ad una apposita Routine di Risposta dell'Interrupt (RRI)
collocata in una diversa locazione di memoria rispetto al programma in esecuzione. In corrispondenza della
generazione di un interrupt software o dell‟arrivo di una richiesta di interrupt sul piedino INTR , la CPU va a testare
il bit di Interrupt Flag (IF). Se questo è 1 significa che gli interrupt sono abilitati dunque passa a servire l‟interrupt
eseguendo i seguenti passi:
-
Salva i registri CS e IP facendo un’operazione di PUSH nello stack
Salva il Registro di Stato (PSW Processor StatusWord) all’interno dello stack
Carica i nuovi valori di CS e IP leggendoli nella Interrupt Vector Table alla posizione ottenuta
moltiplicando per 4 il valore di identificazione dell’interrupt
Viene azzerati il Flag IF, in modo da mascherare gli interrupt e non essere di nuovo interrotti mentre sta già
eseguendo una procedura di interrupt
Esegue la Routine di Risposta all‟Interrupt. La RRI solitamente, tra le altre cose, rimuove la richiesta di
Interrupt da parte della periferica esterna.
IF = 1 riabilita gli interrupt
Ripristina i registri IP e CS ed il registro di stato con una operaz di POP dallo stack (istruzione IRET)
L‟interrupt flag IF può anche essere disabilitato da programma, disabilitando di fatto la gestione degli interrupt.
Può servire per bloccare tutte le periferiche nel momento in cui la CPU deve eseguire operazioni lunghe e complesse
e non la si vuole interrompere. Però è se poi non si ripristinano correttamente tutto il sistema rimane bloccato.
Elenco dei principali Interrupt
Le prime 5 interruzioni (INT 0 – INT 4) sono interrupt predefiniti non mascherabili. Le interrupt non mascherabili
possono interrompere in qualsiasi momento l‟esecuzione delle altre interrupt indipendentemente dal valore del flag IF
INT 0 (Divide Error) Non Mascherabile. Segnala un errore durante un operazione di divisione (ad es., divisione per
zero). Forza il ritorno al SO.
INT 1 (Single Step) Non Mascherabile. In corrispondenza del settaggio del flag TF (Trap Flag), la CPU provvederà
a generare un INT 1 dopo ogni singola istruzione, consentendo così l‟utilizzo del debagger. In risposta all‟INTR
1 si può scrivere una RRI che vada a leggere i valori correnti i li mandi a video.
INT 2 (Non-Maskable Interrupt) Unico Interrupt Hardware Non Mascherabile. E‟ un interrupt proveniente via
hardware sul pin NMI della CPU. E‟ l‟interrupt di priorità più alta. Viene generato in seguito ad eventi importanti
e urgenti (ad esempio una caduta di tensione, un errore nella memoria relativo ad esempio all‟indirizzamento di
un blocco inesistente, un errore sul bus di sistema). Grazie alla presenza dei condensatori dell‟alimentatore, in
caso di mancanza dell‟alimentazione rimane un periodo di tempo per salvare eventuali dati critici dalla memoria
al disco prima che il PC si spenga definitivamente. Forza il ritorno al SO
INT 3 (One Byte Interrupt) Non Mascherabile. Utilizzato dal debugger per la gestione dei breakpoint. Inserendo un
codice INT 3 all‟interno del programma alla posizione indicata, l‟esecuzione si interromperà in corrispondenza
del break point richiamando la procedura INT3 che cederà il controllo al debugger.
INT 4 (Interrupt on Overflow) Non Mascherabile. Dopo istruzioni a rischio, il programma può eseguire l‟istruzione
INTO che, in caso di Overflow (OF = 1); forza l‟esecuzione della corrispondente procedura di Interruzione.
INT 5 (Print Screen) – pressione del tasto Print Screen. Salva il contenuto attuale del video
INT 6 Istruzione non valida
INT 7 Accesso a coprocessore matematico non disponibile
INT 08
INT 09
INT 0A
INT 0B
INT 0C
INT 0D
INT 0E
INT 0F
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Timer generato a 18,2 Hz (modificabile da BIOS) ed utilizzato per il refresh della memoria
Tastiera (Tasto Premuto)
2° PIC
COM2
COM1
LPT2
Floppy Disk Controller
LPT1
pag 59
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
INT 74
INT 76
IRQ12 Mouse (Movimento del MOUSE)
IRQ14 Hard Disk
INT 10
INT 13
INT 14
INT 16
INT 17
BIOS Scheda Video Services
BIOS Hard Disk Services
BIOS Serial I/O Services
BIOS Keyboard Services (scrittura del dato nel buffer di input)
BIOS Printer Services
INT 21H
AH = 1
AH = 2
AH = 8
AH = 9
AH = 4C
AH = 31
DOS IO Services. Il servizio fornito dipende dal contenuto del registro AH.
Legge un carattere ASCII da tastiera e lo memorizza in AL
Manda a video il carattere contenuto in DL
Uguale a AH=1 ma senza echo sullo schermo.
Manda a video una stringa terminata dal $
Termina il programma rilasciando il controllo al DOS
Utilizzato come terminatore di programma al posto di 4C rende il programma residente in
memoria (TSR Terminate but Stay Resident). Si può ad es rendere residente una procedura di
risposta all‟interrupt 1Ch richiamata automaticamente 18 volte al secondo ma fondamentalmente
priva di codice, che costituisce la base della programmazione ad eventi. All‟interno di DX deve
essere passato come parametro il numero di paragrafi da mantenere residenti.
Nota: Le procedure di interrupt software, residenti o meno, si prestano benissimo a svolgere il ruolo di backgroud in
una applicazione di automazione industriale. Quando viene eseguita, la routine di interrupt va a settare un apposito
flag all’interno di un’area di memoria comune, abilitando il forground ad eseguire l’elaborazione. Al termine
dell’elaborazione il forground resetta il flag e si pone nuovamente in uno stato di attesa.
Interrupt Controller PIC 8259 (programmable interrupt controller)
Poiché molteplici dispositivi possono richiedere interrupt alla CPU, occorre prevedere un apposito dispositivo che
interfacci le richieste delle periferiche con l‟unica linea INTR della CPU, e che si occupi anche di decidere
- Quale richiesta scegliere fra più richieste contemporanee
- Come identificarla presso il microprocessore
L‟interrupt Controller 8259 è in grado di interfacciare 8 linee di interrupt provenienti da 8 periferiche differenti.
Nei sistemi 8086 sono presenti 2 Interrupt Controller a 8 vie uno in cascata all‟altro. Il segnale IRQ2 del PIC
principale proviene dal PIC secondario (slave). Questo segnale viene attivato quando si verifica un qualunque
interrupt sul PIC slave. In corrispondenza di un qualsiasi interrupt in ingresso, il PIC primario abilita il segnale INTR
di richiesta di interrupt alla CPU.
Procedura di Boot In fase di avvio la CPU carica da BIOS una procedura di Boot che provvede a testare le
procedure di interrupt (contenute sempre nel BIOS) relative ai dispositivi principali, scrivendo il loro indirizzo di
partenza all‟interno della Interrupt Vector Table ed inviando all’8259 il numero d’ordine delle 8 procedure di
interrupt relativi agli otto canali gestiti dall’8259. La Lista inviata all‟8259 avrà pressappoco il seguente formato:
Canale di Interrupt
0
1
2
3
4
5
6
7
N d‟ordine Procedura di Interrupt
8h
9h
Ah
Bh
Ch
Dh
Eh
Fh
Dopo di che quando arriva una richiesta di interrupt su un canale, l‟8259 abilita il segnale INTR verso la CPU.
pag 60
Sistemi - Classe Terza
robertomana.it
Il Personal Computer
In corrispondenza del segnale INTA da parte della CPU, l‟8259 invia alla CPU il numero d‟ordine della Procedura di
Interrupt da eseguire. Andando a configurare un apposito registro di comando, la CPU può abilitare / disabilitare
ciascun singolo canale a rispondere alle interrupt.
Per quanto riguarda le priorità di esecuzione di eventuali richieste contemporanee, il Priority Resolver dell‟8259 può
utilizzare due strategie differenti. A) La prima strategia è la cosiddetta Daisy Chain (Catena di Margherite) secondo
cui il resolver scandisce continuamente i vari canali i quali hanno tutti la stessa priorità. Quando incontra una
richiesta di interrupt la invia alla CPU e, al termine, passa ad analizzare il prossimo canale. Ogni richiesta di
interruzione rimane in attesa fino a quando non arriva il suo turno. B) La strategia alternativa è quella di assegnare
una Priorità a ciascuna linea e, in caso di contemporaneità, viene eseguita l‟interruzione a maggiore priorità mentre
l‟altra rimane in attesa. I dispositivi a priorità inferiore rischiano però di rimanere sempre in attesa.
Trasferimento tramite DMA Controller 8237
Il DMA Controller 8237 è in grado di gestire 4 canali indipendenti di trasferimento dati, in grado di operare in
parallelo, ciascuno con i propri dati ed i proprio segnali.
Se, a livello di progettazione della main board, si decide di gestire un dispositivo tramite DMA controller, le
richieste di interrupt del dispositivo vengono convogliate via hardware verso il DMA Controller anziché verso
il gestore di interrupt PIC 8259. Il trasferimento tramite DMA Controller è sempre avviato dalla CPU.
Per avviare il trasferimento la CPU deve:
- Programmare il registro di controllo del dispositivo indicando quali dati trasferire
- Programmare il corrispondente canale di DMA
- Attivare il DMA ad eseguire il trasferimento
Il DMA, quando è pronto ad iniziare il trasferimento dei dati, invia alla CPU un segnale di HOLD richiedendo il
possesso dei bus e, in corrispondenza dell‟ackowledge della CPU, inizia il trasferimento.
- Nel caso dei dispositivi più lenti il DMA trasferisce un singolo byte (word o double word nei sistemi più
recenti), dopo di che si arresta in attesa della richiesta di interrupt del dispositivo (pronto a ricevere /
trasmettere il prossimo byte), cedendo di nuovo il controllo dei bus alla CPU
- Nel caso di dispositivi più veloci, il DMA provvede a trasferire un blocco dati completo (ad esempio 512
byets costituenti il settore dell‟Hard Disk) prima di rilasciare i bus e fermasi in attesa dell‟interrupt. Questa
modalità di trasferimento è detta burst (cioè a raffica).
Ultimato il trasferimento di tutti i dati, il DMA invia un interrupt alla CPU per avvisarla di aver terminato il
lavoro. Un canale DMA può anche essere impostato in modalità autoload, cioè terminato l‟intero trasferimento, il
canale riparte automaticamente senza neppure avvisare la CPU. Utile per seguire trasferimenti ciclici riferiti sempre
alle stesse zone della memoria, come ad esempio il ciclo di refresh della memoria dinamica.
pag 61