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