Calcolatori Elettronici - Appunti dell`Università di Catania
Transcript
Calcolatori Elettronici - Appunti dell`Università di Catania
Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino Questo testo contiene la trasposizione delle lezioni del corso di Calcolatori Elettronici I svolto dal Prof. G. Messina nell’A.A. 2000/01, integrata con argomenti e precisazioni estrapolate da appunti di anni precedenti. Nonostante la dedizione profusa nella stesura del presente elaborato, che ha comportato un lavoro di raccolta, vaglio e sintesi non indifferente, non ci si propone di fornire un quadro esaustivo della materia ma solo un valido supporto da completare in base al corso del corrente anno. Gli autori ringraziano Gabriele Cristaldi per la fattiva e preziosa collaborazione nella raccolta delle fonti e Livio Di Lorenzo per la puntuale consulenza su diodi, transistor e porte logiche. Infine un ringraziamento particolare a Tino Motta per l’onerosa opera di impaginazione. Arturo Buscarino Davide Lombardo pag. 1 pag. 2 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino Sommario I. ALGEBRA DEI CALCOLATORI ................. 5 II. PORTE E CIRCUITI LOGICI ................... 12 Diodo a giunzione: ........................................................................................ 12 Transistor: ..................................................................................................... 14 Dispositivi MOS: .......................................................................................... 15 Porte Logiche: .............................................................................................. 15 Circuiti Logici: ............................................................................................. 18 III. ARCHITETTURA DI UN CALCOLATORE .................................. 23 Microprocessore: .......................................................................................... 23 Microprocessore Intel 8086: ........................................................................ 24 Segmentazione: ............................................................................................. 26 Registri di Segmento ed Instruction Pointer: ............................................ 26 Codice Rilocabile: ........................................................................................ 27 Implementazione Fisica dello Stack: ........................................................... 27 Memoria Riservata: ...................................................................................... 28 Microprocessore 80286: ............................................................................... 28 Microprocessore 80386: ............................................................................... 28 Microprocessore 80486: ............................................................................... 29 Microprocessore Pentium: ........................................................................... 29 Organizzazione fisica della memoria: .......................................................... 29 Organizzazione della memoria: .................................................................... 30 Architettura interna del Pentium (modello di programmazione) .............. 31 Indirizzamento in Modalità Protetta: ......................................................... 32 Registri invisibili ai programmi: ................................................................. 33 Integer Pipeline: ........................................................................................... 34 Scalarità dei Microprocessori (prerogativa dei RISC): ............................. 35 Tecniche di colloquio tra microprocessore e periferiche: .......................... 35 Interfaccia I/O: ............................................................................................. 36 Memorie: ....................................................................................................... 40 Memorie elettroniche: .................................................................................. 40 Memorie di massa: ....................................................................................... 41 Floppy disk: .................................................................................................. 41 Hard disk: ..................................................................................................... 42 Memorie di massa a nastro magnetico: ....................................................... 43 Memorie ottiche: .......................................................................................... 43 Memorie magneto-ottiche: ........................................................................... 45 pag. 3 pag. 4 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Periferiche:.................................................................................................... 45 Periferiche di uscita: .................................................................................... 45 Monitor e terminale video: .......................................................................... 45 Moduli grafici: .............................................................................................. 47 Stampanti: .................................................................................................... 47 Scanner: ........................................................................................................ 48 Plotter: .......................................................................................................... 49 Vision Systems: ............................................................................................. 50 Penna Ottica: ................................................................................................ 51 Mouse: ........................................................................................................... 51 Tastiera: ........................................................................................................ 51 IV. RETI, PROGETTO DI UN SISTEMA DI ELABORAZIONE, STANDARD ISO E SPECIFICHE TECNICHE ............................... 52 Reti di calcolatori e software di base: ......................................................... 52 Progetto di un sistema di elaborazione: ...................................................... 56 Standardizzazione:........................................................................................ 58 Specifiche del computer:.............................................................................. 61 Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 5 I. ALGEBRA DEI CALCOLATORI Dato un insieme di simboli S e un insieme di elementi astratti o concreti E, se esiste una corrispondenza tra S ed E l’insieme delle regole che definiscono la corrispondenza è detto CODICE. I codici sono metodi matematici che servono a controllare, durante e dopo l’elaborazione. la correttezza dei dati. Ad esempio nelle memorie vengono effettuati controlli sui dati in ingresso e in uscita (Controllo di Parità) mediante codici di controllo. I metodi di compressione e controllo degli errori più comuni sono MNP5 e MNP10 Un codice è efficiente se esiste una corrispondenza univoca tra S ed E. Un sottoinsieme di S tale che i suoi elementi abbiano un significato è detto parola P. Un codice è ridondante se ad almeno un elemento di E corrispondono almeno due parole diverse di S. Un codice è ambiguo se esiste almeno una parola di S a cui corrispondono due elementi di E. I codici usati per sistemi di numerazione binari sono efficienti e ridondanti. In questo caso definiamo la ridondanza R = m dove m è il n° di cifre necessarie per rappresentare tutti gli elementi di E ed n n è il n° di cifre efficienti del codice. Avremo quindi che m = n + k ⇒ R = 1 + k . Il coefficiente k/n è detto n coefficiente di ridondanza. Un codice è ponderato quando ad ogni cifra è associato un peso in decimale in funzione della posizione della cifra stessa. Il peso è il coefficiente associato alla posizione nella formula di espansione. Per il sistema binario è Nb=100110 Nd=1*25 + 0*24 + 0*23 + 1*22 + 1*2 + 0*20. I pesi valgono dunque 2n dove n è la posizione della cifra. Un codice è di Gray quando per qualsiasi configurazione, quelle adiacenti differiscono per la distanza di 1 (ove per distanza si intende il n° di variazioni tra bit corrispondenti). Es: 00 01 11 10 000 001 011 è di Gray 010 110 111 101 100 è di Gray N.B. il secondo codice è stato costruito a partire dal primo per riflessione ovvero ribaltando orizzontalmente i le 4 parole ed aggiungendo in testa uno 0 ai primi 4 e un 1 agli ultimi 4. Un codice è autocomplementare quando il complemento a 1 della cifra binaria, qualunque essa sia, corrisponde in decimale al complemento a 9 del numero stesso. pag. 6 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Es1: Codice di eccesso a 3 C1(0110)=1001 C9(3)=6 è autocomplementare Es2: Codice Heiken: i pesi sono inusuali allo scopo di garantire l’autocomplentarietà 2-4-2-1 C1(1010)=0101 C9(4)=5 è autocomplementare Il Codice 2 su 5 è a peso costante e ridondante e per questo è autorilevatore di errori. I Codici di Hamming si basano sul calcolo della costante H definita come la minima distanza tra tutte le possibili coppie di parole del codice. Dopo l’elaborazione dei dati il valore di H deve essere lo stesso, in caso contrario vi è stato un errore di elaborazione (rilevazione di errore con molteplicità H-1). Se H è molto grande si possono costruire dei metodi matematici di autocorrezione. Il controllo di parità avviene anteponendo un 1 se il n° di 1 all’interno della parola è dispari, viceversa se il n° di 1 è pari si antepone uno 0: in questo modo il numero di 1 è sempre pari. L’algebra dei calcolatori è di tipo booleano. L’algebra booleana deriva da un algebra astratta che consiste in un insieme di elementi astratti in cui sono definite due operazioni (+,·) o (OR,AND) che applicati a due elementi dell’insieme producono un elemento ancora appartenete all’insieme stesso, che viene chiamato di sostegno e si indica con K. Un insieme è un reticolo quando gode delle proprietà commutativa, associativa ed inoltre di idempotenza ed assorbimento (ovvero a + a = a e a + a·b = a ). Nel reticolo sussiste il Principio di Dualità ovvero è possibile variare gli operatori a primo e secondo membro senza variare la validità dell’espressione: a + a = a ⇒ a·a = a a + ab = a ⇒ a·(a + b) = a Un reticolo è distributivo se sussiste la proprietà distributiva. Se è possibile fissare a t.c. a·0 = 0 e a + 1 = 1 esistono un massimo ed un minino. Inoltre, definendo l’operatore complemento NOT, se a·a = 0 e a + a = 1 allora l’algebra è di tipo booleano. Per consentire il passaggio tra l’operatore OR (+) e AND (·), attraverso il metodo delle tavole della verità, è possibile dimostrare i Teoremi di De Morgan: 1. X 1 + X 2 = X 1 ·X 2 2. X 1 · X 2 = X 1 + X 2 Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 7 Dim: 1. X 1 + X 2 = X 1 ·X 2 2. X 1 · X 2 = X 1 + X 2 I Teoremi di De Morgan possono essere estesi ad n variabili. Date n variabili x1,x2,…,xn, si definisce f una Funzione Booleana se esiste un solo valore Y=f(x1,x2,…,xn) binario per qualsiasi configurazione delle variabili. Qulasiasi funzione booleana può essere rappresentata dalla sua forma canonica ovvero in forma di somma di prodotti o di prodotto della somma di tutte le variabili. I prodotti sono detti mintermini se sono costituiti da tutte le variabili della funzione e tali che se almeno uno di essi vale 1 allora la funzione vale 1. Le somme sono dette maxtermini se sono costituite da tutte le variabili della funzione e tali che se almeno uno di essi vale 0 allora la funzione vale 0. Un qualsiasi prodotto di al massimo n-1 variabili della funzione tale che se il suo valore è 1 allora il valore della funzione è 1 è detto implicante. Una funzione logica può essere espressa in forma analitica, descrittiva, binaria, grafica, tabellare e decimale (quest’ultima ricavata mediante i pesi 16-8-4-2-1). Inoltre una funzione logica può essere minimizzata mediante i metodi delle Mappe di Karnough e di Quine - Mc Luskie che verranno studiati in seguito. Un implicante si dice primo se è un implicante non coperto da altri ovvero non può essere ridotto senza variare la logica della funzione. Un implicante primo contenuto in tutte le possibili forme minime è detto implicante essenziale (nella forma minima sono contenuti tutti gli implicanti essenziali). Una forma è irridondante se contiene tutti gli implicanti primi. Una forma è minima se in essa sono contenuti tutti gli implicanti essenziali più un sottoinsieme di implicanti primi tali che coprano tutti i mintermini di partenza. Dal punto di vista circuitale anticipiamo i simboli per i tre operatori definiti: x1 x2 y = x1+x2 x1 y = x1·x2 x y= X x2 [La presenza di un pallino prima dell’uscita di una porta ha l’effetto di negare il valore dell’uscita pag. 8 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo stessa. Un altro operatore logico è l’EXOR ( ⊕ ) detto OR esclusivo che opera secondo la seguente tavola della verità: Torniamo al problema della minimizzazione di una funzione booleana: come detto, una funzione può essere minimizzata mediante il Metodo delle Mappe di Karnaugh o mediante il Metodo di Quine - Mc Luskie. Il Metodo delle Mappe di Karnaugh si basa su una rappresentazione in forma descrittiva della funzione logica in esame: le mappe sono successioni di celle adiacenti, ciascuna delle quali rappresenta un mintermine della funzione ed è disposta in modo tale che differisce per distanza 1 dalle celle adiacenti (il discorso vale anche per le celle di frontiera per cui si parla di mappa “chiusa su stessa”). Poniamo convenzionalmente come valore di partenza X = 0 e X = 1. Per capire il funzionamento del metodo in questione osserviamo tre esempi pratici per il caso di 4 variabili. 1) Y1 = X 1· X 2· X 3· X 4 + X 1· X 2· X 3· X 4 Chiamo i due prodotti rispettivamente A e B; essi differiscono per il solo primo termine (distanza 1) (X 1 )( ) + X 1 X 2· X 3· X 4 = X 2· X 3· X 4 2) Y2 = X 1· X 2· X 3· X 4 + X 1· X 2· X 3· X 4 + X 1· X 2· X 3 · X 4 + X 1· X 2· X 3 · X 4 Chiamo i 4 prodotti rispettivamente A, B, C, D. (X è implicante primo. 1 )( ) + X 1 X 2· X 3· X 4 + X 2· X 3 · X 4 = X 2· X 3· X 4 + X 2· X 3 · X 4 ⇒ X 2· X 4 Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 9 3) Y3 = X 1· X 2 · X 3· X 4 + X 1· X 2· X 3· X 4 + X 1· X 2· X 3 · X 4 + X 1· X 2· X 3 · X 4 Chiamo i 4 prodotti rispettivamente A, B, C e D. (X · X · X 1 2 3 )( ) + X 1· X 2· X 3 X 4 + X 4 = X 1· X 2· X 3 + X 1· X 2· X 3 ⇒ X 1· X 2 è implicante primo. Per illustrare il Metodo di Quine - Mc Luskie, usato per funzioni di almeno 4 o 5 variabili, esaminiamo un esempio; si consideri la funzione di 6 variabili: Y = X 1· X 2· X 3· X 4· X 5· X 6 + X 1· X 2· X 3· X 4· X 5· X 6 + X 1· X 2· X 3· X 4· X 5· X 6 + X 1· X 2· X 3· X 4· X 5· X 6 + + X 1· X 2· X 3· X 4· X 5· X 6 + X 1· X 2· X 3· X 4· X 5· X 6 + X 1· X 2· X 3· X 4· X 5· X 6 + X 1· X 2· X 3· X 4· X 5· X 6 Come al solito, indico gli 8 prodotti con le lettere da A ad H. Il primo passo consiste nel trasformare i mintermini nel corrispondente numerico: Y = 100111 + 101111 + 111011 + 101011 + 100011 + 110001 + 000111 + 000011 Il secondo passo consiste nel raggruppare i mintermini a seconda del loro peso (ovvero il numero di 1) a partire dal peso inferiore. H ..................... 000011 EFG ................. 100011 ........................ 110001 ........................ 000111 AD .................. 100111 ........................ 101011 BC ................... 101111 ........................ 111011 Il terzo passo consiste nell’eseguire una prima semplificazione tra i mintermini di aree adiacenti (procedendo in cascata) tali che abbiano distanza 1. Ad es: H e E hanno distanza 1 => mettiamo un – al posto del bit diverso. Otteniamo un’altra tabella: pag. 10 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo HE ............................. -00011 HG ............................ 000-11 EA ............................. 100-11 ED ............................. 10-011 GA ............................ -00111 AB ............................. 10-111 DB ............................. 101-11 DC ............................. 1-1011 F ................................110001 Al quarto passo procediamo ad una ulteriore semplificazione tenendo conto che abbiamo riscritto F perché non si è semplificato con nessun mintermine. Otteniamo la seguente tabella: HEGA ....................... -00-11 HGEA ....................... -00-11 EADB ....................... 10--11 EDAB ....................... 10--11 DC ............................ 1-1011 F ............................... 110001 A questo punto non sono più possibili ulteriori semplificazioni. Si procede al quinto passo che consiste nel rappresentare in maniera tabulare gli implicanti ottenuti. Possiamo verificare che gli implicanti trovati sono tutti implicanti essenziali infatti F, DC, EADB, HEGA non appaiono negli altri implicanti. Inoltre tutti i mintermini sono coperti dunque abbiamo ottenuto la forma minima. Definita l’algebra sulla quale si basano i calcolatori e, più in generale, i circuiti logici, possiamo passare ad analizzarli e sintetizzarli. Una rete logica è una rete di nodi connessi fra loro tramite rami; i nodi sono costituiti da operatori logici, detti porte logiche, e i rami rappresentano le connessioni fra essi (sono archi orientati). Si rappre- Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 11 senta mediante un grafico. Analizzare una rete logica significa estrarre dal grafico della rete la funzione logica che realizza; sintetizzare una rete logica significa costruire il grafico a partire dalla funzione logica assegnata, dopo averla adeguatamente minimizzata. Il percorso tra un nodo e un altro della rete viene detto itinerario; definiamo livello di un nodo rispetto ad un percorso il numero di nodi che precedono tale nodo. Consideriamo il caso di una rete composta esclusivamente di porte NAND di cui conosciamo il grafico; per analizzare la rete (ovvero per ottenerne l’espressione analitica) si comincia con l’identificare i livelli di appartenenza delle varie porte logiche, crescenti man mano che dall’uscita si procede verso gli ingressi (la porta d’uscita del circuito ha livello 1). Le porte NAND relative a livelli dispari generano somme, mentre le porte NAND relative a livelli pari generano prodotti; gli ingressi delle porte NAND di livello dispari vanno negate se non provengono, a loro volta, dalle uscite delle porte precedenti. Nel caso in cui la rete sia implementata con porte NOR, valgono le regoli duali rispetto a quelle definite nel caso precedente. pag. 12 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo II. PORTE E CIRCUITI LOGICI I circuiti logici sono costituiti principalmente da semiconduttori, elementi che nell’ultima orbita presentano 4 elettroni; questa configurazione permette infatti agli elettroni di muoversi liberamente. I componenti circuitali a semiconduttore usati nei circuiti logici sono diodi, transitori e dispositivi MOS; vediamo brevemente il loro funzionamento. DIODO A GIUNZIONE: La tecnica oggi usata per aumentare la conduttività del cristallo di silicio prende il nome di drogaggio e consiste nell’immettere, nel semiconduttore puro (intrinseco), quantità, controllate con precisione, di elementi trivalenti (accettori) e pentavalenti (donatori). Generalmente il livello dei droganti introdotti è molto basso (tra 1/10-8 e 1/10-18 atomi/cm3), cosicché le proprietà peculiari chimico-fisiche del silicio restano inalterate modificandosi invece, in modo significativo, le caratteristiche elettriche. Supponendo il cristallo intrinseco e gli atomi droganti elettricamente neutri, anche il cristallo drogato risulterà elettricamente neutro. Se in una barretta di semiconduttore puro si introducono da un lato elementi droganti di tipo trivalente e dall’altro elementi di tipo pentavalente, si ottiene una giunzione PN. Infatti gli atomi trivalenti con i propri elettroni di valenza sono in grado di saturare solo tre dei legami covalenti della struttura cristallina, generando così, a causa del quarto legame libero, una lacuna in grado di accettare elettroni (cristallo drogato P). Gli atomi pentavalenti, invece, non solo saturano tutti i legami covalenti del cristallo, ma rendono disponibile nel reticolo un elettrone libero come portatore di corrente (cristallo drogato N). Al termine del processo di drogaggio saranno presenti una concentrazione in eccesso di lacune, da un lato ed un eccesso di elettroni dall’altro le quali determineranno una situazione di instabilità temporanea, che verrà naturalmente rimossa. Attraverso la giunzione si verificherà un passaggio di cariche nei due sensi, tendente a riportare una situazione di stabilità, ed in particolare il flusso di lacune si sposterà verso la zona N, mentre il flusso di elettroni attraverserà la giunzione in senso opposto. Ogni tipo di cariche costituirà un legame con quelle di segno opposto, introducendo però un contributo di carica (fenomeno della ricombinazione). Così, dopo un tempo relativamente breve, si formerà, a cavallo della giunzione, una regione particolarmente stretta, (0.5 mm) detta di svuotamento (o di carica spaziale, o di transizione) con prevalenza di ioni positivi nella zona N e negativi nella zona P. Oltre la regione di carica spaziale, la concentrazione dei portatori sarà: p=NA nella zona P n=ND nella zona N dove NA e ND sono le concentrazioni degli atomi droganti (accettori e donatori). Si osservi che in questa regione la carica totale è nulla. Le cariche presenti nella zona di svuotamento costituiscono la barriera di potenziale. Il campo elettrico associato alla barriera di potenziale risulta diretto dalla zona N verso la zona P e contrasta il processo di diffusione. La barretta di semiconduttore così ottenuta prende il nome di diodo a giunzione PN e rappresenta l’elemento base dell’elettronica. Il comportamento in regime statico della giunzione dipende dalle tensioni applicate ai suoi terminali. Se applichiamo al dispositivo PN una tensione (tensione diretta) che riduca la barriera di potenziale (e quindi la larghezza della zona di carica spaziale) si ottiene una migrazione dei portatori maggioritari attraverso la giunzione che sono in grado di sostenere un flusso di corrente IF, detta corrente diretta, proporzionale alla tensione applicata al circuito in cui il diodo è inserito. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 13 Se invece si applica al diodo una tensione dello stesso segno di quella della barriera di potenziale, (tensione inversa) il dispositivo verrà percorso da una corrente inversa molto piccola I o, trascurabile rispetto alla corrispondente corrente diretta IF e indipendente dalla tensione applicata al circuito. Il comportamento del diodo a giunzione in tutto il campo di funzionamento (figura 1), rappresentato nel piano V - I, è descritto dall’equazione: ηVV I = I 0 e t − 1 dove: I0 è la corrente inversa di saturazione e dipende dalla temperatura della giunzione; η è un coefficiente correttivo ( η = 1 per il germanio e η = 2 per il silicio); Vt è detto potenziale equivalente della temperatura. Vt = KT ; a 30 ° C, Vt = 26 mV. q (T = temperatura assoluta in gradi Kelvin, q = 1.602. 10-19 coul = carica dell’elettrone.) Per tensioni inverse e tali che |V|>|Vt| l’equazione (1) si riduce a I = I0 evidenziando così l’indipendenza della corrente inversa dalla tensione di polarizzazione del diodo. I0 è correlata alle concentrazioni dei portatori minoritari e all’area della giunzione. Se il valore della tensione inversa è elevato la Io subisce un brusco aumento (fenomeno del breakdown). Tale situazione è però instabile e porta la giunzione in breve tempo alla distruzione per sovratemperatura. figura 1: caratteristica del diodo 1N4001 Una particolare famiglia di diodi semiconduttori, detti diodi Zener o a valanga, il cui simbolo è riportato in figura 2, costruiti per lavorare nella regione di breakdown, vengono utilizzati nei circuiti per applicazioni specifiche quali stabilizzatori di tensione, tosatori ecc.. pag. 14 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo figura 2: caratteristica di un diodo zener Generalmente il rapporto IF/I0 è molto grande (104 – 1012), ad esempio dispositivi al silicio, con Id = 1 A , presentano I0 = 10-9 A. Nella zona di polarizzazione diretta è presente una ben definita tensione di soglia Vd al di sopra della quale, ha inizio la conduzione rappresentata da un andamento esponenziale. Il valore di questa soglia dipende solo dal materiale semiconduttore, nei circuiti logici viene prevalentemente utilizzato il silicio la cui tensione di soglia è pari a 0.6 - 0.7 V per il silicio. In polarizzazione inversa la curva risulta parallela all’asse delle tensioni fino al raggiungimento della tensione di breakdown, in corrispondenza della quale, dovrebbe ottenersi un brusco aumento di corrente. Comunque la regione di polarizzazione inversa utilizzabile senza inconvenienti per la integrità del diodo è limitata ad un 70 - 80% della tensione di breakdown. TRANSISTOR: Il transistor viene realizzato con due giunzioni e ne esistono due versioni a seconda della disposizione delle zone di drogaggio diverso: npn e pnp. Come si vede in figura, il transistor ha tre piedini detti collettore, base ed emettitore (nel simbolo circuitale l’emettitore è indicato con una freccia). Le cariche vengono risucchiate verso l’alto e si viene a creare una corrente Ic di collettore. Il flusso degli elettroni viene attivato dalla d.d.p. Vcc positiva o negativa a seconda della giunzione (npn o pnp). Nella figura è rappresentata la curva caratteristica del transistor che è in funzione della corrente di base Ib; quando Ic è alta (d.d.p. tra base ed emettitore tra 0.6 e 0.8 V), il transistor è in piena conduzione e si trova nello stato di saturazione; quando Ic e Ib sono basse (d.d.p. tra base ed emettitore < 0.5V) il transistor è in zona di interdizione ed è spento. I transistor hanno una resistenza di 1012 Ω. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 15 DISPOSITIVI MOS: I Metal Oxide Semiconductor sono dispositivi diversi dai transistor. In essi la fetta di silicio presenta una zona drogata di tipo N e due sacche drogate di tipo P a diversa densità di drogaggio, la sacca a minore densità (P+) viene detta source, la sacca a maggiore densità (P++) viene detta drain. Polarizzando in modo inverso, si crea fra la zona N e le sacche P una depressione (layer) di concentrazione accentuate sotto la zona P più drogata. Sulla faccia superiore della fetta di silicio si viene a creare uno strato di SiO2 che sarà drogata di tipo N. Sopra lo strato di SiO2 mettiamo un elettrodo di comando, detto gate, che carichiamo a potenziale intermedio. Tra drain e source vi è una d.d.p. che non permette il passaggio di corrente. Se si porta il gate a potenziale negativo si ottiene per induzione un addensamento di portatori di carica nel canale grazie ai quali e per effetto delle d.d.p. tra drain e source risulta possibile il passaggio di corrente. Questa famiglia di dispositivi nacque per risolvere i problemi creati dall’elevato assorbimento delle prime porte logiche TTL. Il gate è infatti isolato dallo strato di SiO2 e funge quindi da condensatore ad altissima resistenza d’ingresso (1015 – 1018 Ω). Questo tipo di struttura capacitiva ha lo svantaggio di avere quindi un costante di tempo (tempo di commutazione) RC molto elevata rispetto al transistor con una conseguente riduzione della banda passante ovvero dell’intervallo di frequenza entro cui il dispositivo risponde ed inoltre l’elevato tempo di commutazione rende le porte realizzate con tecnologia MOS più lente. PORTE LOGICHE: I componenti logici sono classificati in base alla loro struttura fisica: DTL (diode-transistor-logic) => porte lente (30ns) e ad alto assorbimento. TTL (transitor-transistor-logic) HLL (high-level-logic) Prima di descrivere le tre tipologie di porte appena nominate, definiamo un importante parametro che caratterizza la resistenza delle porte ad eventuali elettromagnetici disturbi esterni (rumore): il Margine di Immunità al Rumore. Esso viene definito per il livello alto come M rH = VOH − VIH e per il livello basso come M rL = VOL − VIL . pag. 16 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Le porte DTL, quella in figura è una porta NAND, sono porte lente e ad alto assorbimento. Vediamo il funzionamento della porta NAND. Per avere la saturazione di T1 e quindi conduzione, necessitiamo di una tensione maggiore di 3*0.8=2.4V (0.8 tensione di attivazione) per d.d.p. alte, viceversa per d.d.p. basse deve essere minore di 1.8V. Poiché per il diodo la soglia e 0.8V => 2.4-0.8=1.6V è già una tensione alta per la commutazione. Al di sotto di 1.2V non avviene commutazione. Se x1=1 e x2=0 sia T1 che T2 saranno in conduzione e quindi avremo in uscita y=1. Se x1=1 e x2=1, T1 sarà interdetto e in uscita avremo y=0. Il margine di immunità al rumore in una DTL è M rL = VOL − V IL = 0.2 − 1.2 = 1V per il livello basso, mentre per il livello alto è M rH = VOH − VIH = 4.8 − 1.6 = 3.2V . Ovvero fino a 3.2V, la porta funziona correttamente ad alto livello, e fino a 1V funziona a basso livello. Le porte HLL sono largamente utilizzate in circuiti di controllo laddove è presente alto inquinamento elettromagnetico con conseguente generazione di rumore. Nella figura è rappresentata una NAND in HLL, in essa è presente un particolare diodo, detto zener, che a tensioni inferiori a 5.5 – 6 V si comporta da isolante e scarica a 6 V. In M ci vogliono 7.6 V (Tensione di commutazione) affinché si chiudano T1 e T2 e si ottenga scarica in D; fino a 6.9V siamo sicuri che non ci sarà commutazione. I margini di immunità al rumore per porte HLL sono M rH = VOH − VIH = 17.5 − 7.6 = 9.9V e M rL = VOL − VIL = 0.2 − 6.9 = 6.7V rispettivamente per livello alto e basso; come si vede sono margini piuttosto alti. Sono porte piuttosto lente (centinaia di ns) e a discreto assorbimento di energia. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 17 Le porte TTL sono le porte logiche oggi in uso e sono caratterizzate da tempi di risposta rapidissimi (0.5-1 ns) ed è grazie a questo breve tempo di risposta che è stato possibile l’utilizzo di microprocessori ad alta frequenza. Nella figura è rappresentato lo schema di una porta NAND in TTL: in essa è presente un transistor a multiemettitore. La porta è di tipo LS (low/speed ovvero basso assorbimento/ veloce) che viene usata in tutti i computer in quanto a basso assorbimento. Se x1 e x2 sono alti, ci dobbiamo aspettare una uscita bassa ovvero il transitor T2 deve essere in saturazione; perché ciò avvenga T1 deve condurre. La seconda figura è lo schema della porta NAND TTL ad alta velocità. Le porte TTL sono integrate in un chip ricoperto di resina nera che contiene 4 porte logiche. La sigla di questi chip contiene informazioni sulle caratteristiche di esso: i primi due caratteri sono SN che rappresentano lo standard aziendale, le due cifre successive, 73 o 51, indicano l’intervallo termico nel quale sono stati testati (-70 – 125 °C o 0 – 60 °C), quindi seguono i caratteri LS per indicare il tipo (low speed), due cifre (es: 00) indicano in numero d’ordine e si chiude con una lettera (J, K o W) che indica la disposizione dei pin. La dimensione di una porta è di frazioni di millimetri, grande in confronto alle misure tipiche dei componenti interni della macchina; l’elevata dimensione serve per dare stabilità termica: i conduttori all’interno si allargano e dissipano il calore che altrimenti potrebbe rovinare il dispositivo. Gli ingressi devono sempre essere polarizzati in base agli stati logici altrimenti, in presenza di tensioni intermedie, il dispositivo andrebbe in uno stato non-logico. Nei datasheet delle porte logiche sono specificate sigla, tecnologia, la corrente massima che il circuito può ricevere (IIL, IOL, IIH, IOH), i margini di immunità al rumore, il numero di porte che si possono ricevere in ingresso da un punto di vista logico (FAN IN), il numero di porte che si possono connettere in uscita (FAN OUT), la potenza pag. 18 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo assorbita e il tempo di commutazione (high low e low high). Esiste un’altra categoria di porte logiche realizzate mediante dispositivi MOS. Le porte MOS vanno azzerate mediante una tensione opposta a quella che le ha caricate. Un problema dei dispositivi MOS è che lo strato di SiO2 può non essere completamente isolante e quindi c’è il rischio che vi siano, a potenziale sul gate nullo, delle cariche positive con conseguente effetto di induzione elettrica che potrebbe resettare la porta stessa. Per evitare il problema, il gate andrebbe tenuto a potenziale basso anziché nullo, oppure è possibile usare MOS a canale opposto (silicio drogato di tipo P) in modo da contrastare la comparsa di cariche positive sullo strato di SiO2. Per avere compatibilità con i dispositivi TTL, è preferibile usare coppie di MOS di tipo diverso (N e P) dette CMOS (Complementary MOS); i CMOS infatti portano i livelli di tensione su valori positivi come nella logica dei dispositivi TTL. CIRCUITI LOGICI: Passiamo adesso allo studio del circuiti logici. Identifichiamo due categorie di circuiti logici: se le uscite sono, a meno dei tempi di commutazione delle porte, contemporanee agli ingressi ed inoltre dipendono esclusivamente dalla contingente configurazione di ingressi si parla di circuiti combinatori, tra essi troviamo Codificatori, Decodificatori (BCD: conversione binario-digitale), Sommatori (Half o Full Adder) ecc.; se le uscite all’istante t dipendono oltre che dagli ingressi all’istante t anche dagli ingressi in istanti precedenti si parla di circuiti sequenziali, che hanno una parte puramente combinatoria ed un’altra puramente sequenziale; se i ritardi in un circuiti sequenziale sono identici abbiamo circuiti sincroni altrimenti abbiamo circuiti asincroni: i circuiti sequenziali sono a memoria. Tra i circuiti sequenziali, notevole importanza assumo i circuiti Flip-Flop (ff). Essi sono infatti circuiti in grado di memorizzare un bit, rimangono infatti nello stato in cui si trovano finché un comando esterno provoca la commutazione. Tutti i circuiti sequenziali sono formati da un insieme di flip-flop. ]I Flip-Flop di tipo SR sono composti da 4 porte NAND (o NOR) di cui 3 e 4 sono collegate in modo da formare un latch. Esaminiamo le configurazioni possibili con clock attivo: Come si vede dalla tabella la configurazione 1-1 non è ammissibile e la configurazione 0-0 conserva lo stato delle uscite precedentemente all’attivazione del clock. In realtà i flip-flop più usati sono di tipo Master-Slave che si presentano i 4 varianti: SR, JK, D e T. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 19 I Flip-Flop MS di tipo SR sono, come si evince dalla figura, composti da due ff semplici di tipo SR. Quando si attiva il ff Master si viene a creare una configurazione (y, y ) che fungerà da ingresso per il ff Slave. L’attivazione dello slave avviene quando si disattiva il master e in uscita avremo una ben precisa configurazione (Q, Q ). Per questo tipo di ff la configurazione non ammessa è S=R=1. I Flip-Flop MS di tipo JK sono molto simili agli SR con la sostanziale differenza che in ingresso al master abbiamo anche le uscite dello slave (fig ?n?). Questo tipo di ff risolve in problema della configurazione non ammessa: mentre se J=K=0 abbiamo la conservazione delle uscite al clock precedente, per J=K=1 avviene l’inversione delle uscite al clock precedente. I Flip-Flop MS di tipo D sono come i JK ma con J sempre opposto a K. I Flip-Flop MS di tipo T sono come i JK ma con J=K=1. Come detto in precedenza, dalla connessione di più ff possiamo ricavare una serie di circuiti logici fondamentali per il funzionamento di un calcolatore elettronico. Questi circuiti sono i contatori che, con opportune modifiche, implementano i registri interni del calcolatore. pag. 20 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Il contatore asincrono diretto a 4 bit è rappresentato in figura. E’ un circuito sequenziale in grado di contare il numero di ingressi. Come si vede dal grafico, Q0 cambia stato in corrispondenza del fronte di caduta di ogni impulso e tutte le altre uscite hanno una variazione quando e solo quando l’uscita del ff precedente cambia da 1 a 0. Questa transizione negativa si propaga attraverso il contatore dal bit meno significativo al più significativo. Il contatore Up/Down o contatore reale può essere usato sia come contatore diretto che inverso, in base alla linea di controllo Up/Down. Se questa è attiva, l’uscita di ogni ff Q è collegata al clock del ff successivo e si realizza il conteggio verso l’alto. Se viceversa la linea Up/Down è allo stato 0, le uscite Q di ogni ff vengono collegate al ff successivo realizzando il conteggio verso il basso. I registri a scorrimento permettono la lettura del bit dell’ultimo ff e lo scorrimento dei bit degli altri ff verso destra. Possono essere di due tipi. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 21 Il registro misto monodirezionale o shift register diretto permette la lettura dell’ultimo bit e lo scorrimento verso destra degli altri; può funzionare sia con ingressi paralleli sia seriali, così come può avere uscite parallele o seriali. Ad ogni colpo di clock avviene lo scorrimento. Il registro misto bidirezionale permette anche lo scorrimento in senso inverso; viene controllato da una linea dedicata E0 che se attiva permette lo scorrimento verso sinistra. Lo scorrimento a sinistra può avvenire solo se E1=0 ovvero gli ingressi sono seriali. I ff sono di tipo D. Attraverso l’uso dei ff è possibile costruire il convertitore analogico-digitale e digitale-analogico. Lo schema rappresentato è quello di un convertitore sia A/D sia D/A. pag. 22 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Il comparatore è un circuito in grado di confrontare due ingressi analogici e dare un output digitale in base all’esito della comparazione. Nel nostro caso se VR ≥ Vi ⇒ Vout = 1 , se VR < Vi ⇒ Vout = 0 . La Vout va a controllare il multivibratore a-stabile, un circuito la cui uscita oscilla continuamente tra i due livelli logici quando in ingresso riceve un livello alto, altrimenti ha uscita nulla. L’uscita del MA controlla il clock del ff1 che, quando viene attivato, dà il via al contatore. Le uscite dei ff sono indirizzate su resistenze pesate che faranno in modo che il contributo di corrente di ognuna di esse sia diverso a seconda dell’importanza del bit che rappresenta. La somma dei contribuiti alimenta un amplificatore che genera la Vi. Quando Vi>VR il conteggio si arresterà è in corrispondenza della 4 uscite avremo i bit che compongono la conversione in digitale della VR. Nel convertitore è presente una linea di Enable che quando viene posta a 1 dà luogo alla conversione in analogico dei bit presenti su Q0, Q1, Q2, Q3 inibendo i 4 ff. Il convertitore A/D è infatti un circuito sequenziale, mentre il convertitore D/A è combinatorio. Il tempi di conversione A/D possono essere ridotti agendo sul MA, facendo in modo che la frequenza del treno d’onda sia la massima possibile. Oppure si può lavorare con tensioni più basse possibile per far sì che il valore di regime si raggiunga prima (oppure si può aumentare il coefficiente di amplificazione dell’amplificatore operazionale). Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 23 III. ARCHITETTURA DI UN CALCOLATORE MICROPROCESSORE: Per introdurre il metodo di funzionamento di un processore, cominciamo col descrivere il modo di operare su dati e istruzioni del microprocessore Motorola 68000. Ogni istruzione è divisa corredata di un Codice Operativo che la identifica. Descriviamo i componenti presenti nel processore: A.L.U.: (Arithmetic-Logic-Unit) è l’insieme dei sommatori (half e full adder). V.S.R.: (Very-Speed-Register) I.R.: (Index Register) T.R.1 e T.R.2: (Temporary Register) P.C.: (Program Counter) è il registro che contiene l’indirizzo dell’istruzione successiva da processore. G.R.: (General Register) Il P.C. preleva l’istruzione (fase di fetch) e la trasferisce all’ I.R. dove viene decodificata (fase di decode). La Central Unit legge il codice operativo e sposta l’istruzione dove viene eseguita (fase di execute). Se l’istruzione non può venire eseguita, viene messa in attesa nei registri G.R. o, se possibile, nei T.R. per farla pervenire alla A.L.U. quando sarà il suo turno. Le operazioni del processore, essendo questo una macchina sincrona, vengono regolate da un segnale di clock di periodo Dt . Ogni azione di fetch o di decode impiega un Dt. Ad es. la somma di due cifre necessita: ∆t + (fetch) ∆t + (decode) ∆t = 3-5∆ (execute) ∆t ≅ 10∆ ∆t 5-7∆ pag. 24 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo 1 • 10 = 2 µs . 5 • 10 6 Segmentando la memoria è possibile aumentare virtualmente il numero di bus del processore, migliorando le prestazioni. Successivamente si è passati al parallelismo dei microprocessori. Ad una frequenza di 5 MHz, MICROPROCESSORE INTEL 8086: Il processore è costituito da due unità distinte: • Execution Unit (EU) • Bus Interface Unit (BIU) Le due unità sono indipendenti e ciò permette di lavorare in maniera più efficiente con sovrapposizione delle operazioni delle due parti. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 25 Vediamo il vantaggio della sovrapposizione delle operazioni: Come vediamo si ha una ottimizzazione dell’uso del bus e un conseguente risparmio in termini di tempo. Come visto la sequenza delle operazioni eseguite dal processore prevede in primis il fetch (prelievo) dell’istruzione in memoria, quindi avviene la fase di decode (decodifica) infine di execute. Il bus viene occupato dalle operazioni di fetch e write/read. La Execution Unit esegue le istruzioni, fornisce (e riceve) dati e indirizzi alla BIU ed inoltre manipola i registri generali e il registro di flag. La comunicazione tra EU e BIU (che interfaccia EU con l’esterno) avviene tramite bus interni a 16 bit. Dialogo con la ALU tramite bus a 8 bit. La Bus Interface Unit esegue tutte le operazioni verso l’esterno, usa un addizionatore per il calcolo degli indirizzi (20 bit) e ha accesso ai redistri di segmento e al registro IP. Quando la EU è impegnata ad eseguire la prima istruzione, la BIU inizia il fetch della seconda: il microprocessore memorizza le istruzioni adiacenti a quelle in esecuzione (ovvero quelle logicamente successive se il programma è sequenziale) in una coda di 6 byte. Se viene richiesto il comando da un indirizzo pari, la BIU legge un byte altrimenti ne legge due. I registri generali sono 8 registri posti all’interno della EU. Sono aree di memoria a 16 bit che mantengono i dati elaborati dalla EU; si dividono in data register, che vengono indicati con AX, BX, CX, DX, pointer register (SP) e index register (DI, SI). Non ci sono vincoli all’utilizzo dei data register che è implicito in alcune istruzioni; inoltre possono essere considerati come coppie di registi a 8 bit AH/AL, BH/BL, CH/CL, DH/DL. Anche i registri SP, DI, SI sono impliciti in alcune istruzioni. Vediamo l’uso dei registi generali: REGISTER OPERATIONS AX ............................................ Word multiply, divide, I/O AL ..................... Byte multiply, divide, I/O, translate, decimal arithmetic AH ............................................... Byte multiply, divide BX .......................................................... Translate CX .............................................. String operations, loops CL ............................................. Variable shift and rotate DX ................................. Word multiply, word divide, indirect I/O SP ..................................................... Stack operations SI .................................................... String operations DI .................................................... String operations pag. 26 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo SEGMENTAZIONE: Il bus indirizzi dell’8086, a 20 bit, permette l’accesso a 220 locazioni di memoria (1 Mb). Un’istruzione occupa al massimo 6 byte, mentre il nome ne occupa 2. Il bus interno del microprocessore e i registri sono a 16 bit e quindi si pone il problema di come gestire tutti gli indirizzi: per ovviare a ciò un indirizzo fisico è diviso in due segmenti da 16 bit e la memoria viene a sua volta organizzata in segmenti da 64 Kb ciascuno: un segmento è un insieme di locazioni di memoria contigue, indipendente e indirizzabili separatamente e può contenere indirizzi, dati e stack. Quando la BIU vuole accedere alla memoria per leggere un’istruzione oppure per leggere/scrivere un dato genera un indirizzo fisico a partire dai due segmenti di indirizzo detti base segment e offset. L’indirizzo si indica quindi: <base segment> : <offset>, ottenuti dall’EU. Il base segment è l’indirizzo del segmento in cui sta la locazione di memoria da indirizzare. L’offset è la “distanza” tra il primo byte del segmento e la locazione di memoria da indirizzare. Vediamo come dai due segmenti viene costruito l’indirizzo (a 20 bit) della locazione da indirizzare utilizzando un esempio: Base segment: 1234 (esadecimale) Offset: 0022 (esadecimale) 1234H:0022H 1 2 3 4 0 si aggiunge uno zero 0 0 2 2 viene sommato l’offset 1 2 3 6 2 Indirizzo Fisico Per come viene costruito, ogni indirizzo fisico può essere rappresentato da più coppie <base segment> : <offset>. Ogni segmento da 64 Kb è indipendente dagli altri e non ci sono restrizioni sulla sua posizione: due segmenti possono essere adiacenti, disgiunti, parzialmente sovrapposti o completamente sovrapposti con l’unica condizione che due segmenti non sovrapposti siano ad almeno 16 byte di distanza. REGISTRI DI SEGMENTO ED INSTRUCTION POINTER: Tramite registri di segmento si ha l’accesso “contemporaneo” a 4 differenti segmenti: • CS (code segment): è il registro che punta al segmento contenente il codice dal quale vengono lette le istruzioni • SS (stack segment): punta al segmento di stack • DS (data segment): punta al segmento in cui sono immagazzinati i valori delle variabili del programma • ES (extra segment): punta ad un segmento d’appoggio per ulteriori dati. I registri di segmento possono essere manipolati dell’utente tramite istruzione opportune. • IP (instruction pointer): è aggiornato dalla BIU affinché contenga lo scostamento all’interno del segmento di codice dell’istruzione successiva da eseguire (equivalente al Program Counter). I programmi non hanno accesso diretto al registro IP. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 27 CODICE RILOCABILE: Grazie alla memoria a segmenti il codice può essere rilocato dinamicamente in memoria: la segmentazione rende possibile una facile implementazione indipendente dalla posizione consentendo a sistemi multiprogrammabili di fare un uso efficiente della memoria. I programmi inattivi possono essere trasferiti su disco per liberare la memoria che si rende disponibile per altri programmi; successivamente esso potrà essere ricaricato in un altro punto della memoria: questo si può fare perché non è necessario specificare in quale area di memoria è il programma basta specificare base segment e offset. Inoltre grazie alla rilocazione dinamica si può ricavare spazio ricompattando i segmenti. IMPLEMENTAZIONE FISICA DELLO STACK: L’indirizzo fisico dello stack è rappresentato da SS:SP. Un sistema può avere un numero illimitato di stacks di ampiezza fino a 64 Kb. Si può però indirizzare uno stack alla volta (stack corrente) perché c’è un solo SS: • SS: contiene l’indirizzo di base dello stack • SP: punta alla testa dello stack Lo stack è una struttura LIFO: aggiungere un elemento allo stack fa decrementare l’indirizzo SP di due byte; togliere un elemento significa incrementare l’indirizzo SP di due byte. L’8086 è poco ortogonale. L’ortogonalità è la possibilità di usare un registro per diverse operazioni pag. 28 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo MEMORIA RISERVATA: Vi sono alcune zone di memoria riservata per gli interrupt: si tratta di 128 byte nella parte bassa della memoria e 16 byte nella parte alta. Un loro uso potrebbe generare incompatibilità. MICROPROCESSORE 80286: Esso differisce dall’8086/88 per: • • • Address bus a 24 bit (16 Mb di memoria indirizzabile) Set di istruzioni accresciuto per la gestione dei 15 Mb in più Clock incrementato a 8 MHz per eseguire alcune istruzioni in meno di 250 ns corrispondenti a due cicli di clock (4 MIPS) Il data bus è ancora a 16 bit. MICROPROCESSORE 80386: Rappresenta un grande salto di qualità rispetto ai predecessori: • • • Address bus a 32 bit (4 Gb di memoria indirizzabile) Data bus a 32 bit Registri interni a 32 bit Le prime versioni, un po’ inferiori, erano: SX: dotata di un data bus a 16 bit e un address bus a 24 bit (16 Mb di memoria indirizzabile) SL: ha un bus dati a 16 bit e un address bus a 25 bit (32 Mb di memoria indirizzabile) SLC: alle caratteristiche della SL aggiunge una cache interna per una più rapida elaborazione dei dati. La necessità di un processore più efficiente e più veloce nasce dall’evoluzione del software che fa sempre più utilizzo di sofisticate interfacce grafiche (GUI). Anche risoluzioni di 640x480 pixel (VGA) richiedono un notevole sforzo computazionale per una gestione efficiente dei dati video. Il bus dati a 32 bit permette di trasferire numeri a 32 bit in un unico ciclo di clock: 32 bit è la codifica dei numeri reali utilizzati da molte applicazioni (linguaggi ad alto livello, fogli elettronici, database, CAD). Sono inseriti circuiti per la gestione e l’assegnamento della memoria che ne aumentano l’efficienza (precedentemente era delegato il software OS). Nel processore ci sono 6 stadi che operano in parallelo. 1. Bus Interface Unit: controlla gli accessi alla memoria e ai dispositivi I/O. 2. Code Prefetch Unit: riceve il codice oggetto dalla BIU e lo mette in una coda di istruzione di 16 byte 3. Instruction Decode Unit: decodifica il codice di un’istruzione presa dalla coda nel corrispondente microcodice. 4. Execution Unit: esegue il microcodice. 5. Segment Unit: traduce gli indirizzi logici in indirizzi lineari ed effettua il controllo sulla protezione. 6. Paging Unit: traduce gli indirizzi lineari in indirizzi fisici, effettua i controlli di protezione della pagina e contiene una cache con le pagine referenziate fino alle ultime 32. Permette la paginazione con pagine da 4 Kb. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 29 MICROPROCESSORE 80486: Si tratta di un 80386 con coprocessore matematico 80387 con: • • Memoria cache interna di 8 Kb. Struttura interna modificata per eseguire il 50% delle istruzioni in un ciclo di clock invece che in due. Nella versione con clock a 50 MHz (quella base è a 20 MHz) metà delle istruzioni sono eseguite in 25 ns (50 MIPS). Il miglioramento rispetto a 80386 con lo stesso clock è di circa il 50%. Altri clock disponibili sono 66 MHz (80486 DX2) e 100 MHz (80486 DX4). L’80486 aggiunge più parallelismo espandendo l’istruction decode unit con execution unit in 5 stadi che lavorano in parallelo (pipeline). Ogni stadio lavora su un’istruzione per ogni ciclo di clock, in questo modo l’80486 può eseguire un’istruzione per ogni ciclo di clock. Una cache di I livello ampia 8 Kb incrementa la percentuale di istruzioni che possono essere eseguite in un unico ciclo di clock. Permette la paginazione con pagine di 4 Kb. MICROPROCESSORE PENTIUM: Rispetto all’80486 esiste una seconda pipeline che permette di eseguire due istruzioni per ciclo di clock. La cache interna di I livello (L1) è stata duplicata: 8 Kb per le istruzioni e 8 Kb per i dati. La paginazione è fatta su pagine sia di 4 Kb che di 4 Mb. Internamente sono stati ampliati i bus che sono da 128 a 256 bit. Il data bus esterno è di 64 bit. Ogni cache è a 32 byte quindi, visto che il data bus esterno è a 64 bit, la cache dati è organizzata in 8 banchi di 4 byte ognuno. La cache dati può essere referenziata contemporaneamente da entrambe le “pipe” se queste si riferiscono a due banchi diversi. ORGANIZZAZIONE FISICA DELLA MEMORIA: La memoria dell’8086 è caratterizzata da 2 byte, può quindi accedere direttamente a una parola. Il microprocessore può accedere alla memoria sfruttando delle linee del bus di controllo. Una di queste è la BHE: viene usata insieme alla linea più bassa (A0) dell’address bus per riuscire ad individuare a quale banco di memoria accedere pag. 30 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo ORGANIZZAZIONE DELLA MEMORIA: Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 31 ARCHITETTURA INTERNA DEL PENTIUM (MODELLO DI PROGRAMMAZIONE) Registri: • EAX (accumulatore): è usato come registro a 32, 16 o 8 bit. Se usato in istruzioni particolari ha compiti specifici altrimenti è un registro generale. Usato anche per indirizzare la memoria in 80386 e 80486. • EBX (base index): ha un uso analogo al registro EAX. • ECX (count): viene usato per contare in istruzioni di shift, di rotazione, loop. Usato anche per indirizzare la memoria in 80386 e 80486. • EDX (data): registro generale; memorizza i risultati di divisione e moltiplicazione. Usato anche per indirizzare la memoria in 80386 e 80486. • EBP (base pointer): in tutte le versioni è usato per puntare a locazioni di memoria. • EDI (destination index): memorizza i risultati di operazione su stringa. • ESI (source index): memorizza la stringa sorgente in operazione su stringa. • ESP (stack pointer): indirizza l’area di memoria dello stack. • EIP (instruction pointer): indirizza l’istruzione successiva da eseguire: a 16 bit se il processore è in real mode (8086-80486), a 32 bit se il processore opera in protected mode (80286-80486). • EFLAG: gestisce situazioni particolari quali interrupt, divisione per zero, overflow, ognuna delle quali è caratterizzata dal valore di un bit del registro. I registri possono scambiare dati con la cache di I livello (ovvero quella interna), con un bus di 64 bit. pag. 32 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo INDIRIZZAMENTO IN MODALITÀ PROTETTA: Serve ad accedere alla memoria superiore al primo megabyte. L’offset indica la locazione all’interno di un segmento, un registro di segmento contiene un selettore che punta ad un descrittore nella “tabella dei descrittori”. Il descrittore è una struttura che mantiene le informazioni circa la locazione del segmento, la sua lunghezza e i permessi di accesso. Le istruzioni si comportano come nell’indirizzamento in modo reale: CS:EIP. Il selettore è posto in un registro di segmento e seleziona uno tra gli 8192 descrittori di una tabella; ci sono due tabelle di descrittori usati con i registri di segmento: una per i descrittori globali, che indicano segmenti usati da tutti i programmi, ed una per i descrittori locali, che indicano segmenti usati dalle singole applicazioni. Ogni tabella contiene 8192 descrittori per un totale di 16384 segmenti di memoria indirizzabili contemporaneamente. Il descrittore è un insieme di 8 byte negli 80286 e successivi (una tabella di descrittori arriva a 64 Kb). Vediamo come sono composti i descrittori di 80286 e di 80386/80486: 80286 Descriptor 80386/80486 Descriptor Il limit indica l’ampiezza massima del segmento: un limit a 16 bit (80286) indica ampiezza massima pari a 64 Kb; un limit a 20 bit (80386/80486) indica ampiezza massima pari a 1 Mb. Grazie all’uso del bit di granularità l’ampiezza può essere sia normale cioè da 1 byte a 1 Mb oppure da 4 byte a 4 Gb (a passi di 4 Kb). Il limit rappresenta infatti l’ultimo offset possibile per il segmento; ad es. un segmento va da F00000H a F000FFH si avra limit=FF. Il base address è la locazione di partenza del segmento: 24 bit per 80286 (all’interno di 16 Mb), 32 bit per 80386/80486 (all’interno di 4 Gb). Nell’esempio precedente base address=F00000. Se granularity bit (G) è zero il limit indica un valore da 1 byte a 1 Mb, se G è uno il valore del limit viene moltiplicato per 4 Kb. Se AV è uno il segmento è disponibile; viceversa se è zero il segmento non è disponibile (è usato dal sistema operativo). Se D è zero le istruzioni sono a 16 bit (16 bit instruction mode – compatibile 8086/80286); se è uno le istruzioni sono a 32 bit (32 bit instruction mode). Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 33 I Diritti di Accesso sono negli 8 bit (indicati con 5) e sono: Vediamo come è strutturato il registro di segmento (16 bit): RPL (Requested-privilege-level): da 00 a 11, indica il grado di priorità da assegnare al selettore. Se TI è zero, il selettore si riferisce alla tabella dei descrittori globali, altrimenti a quella dei descrittori locali. I bit da 3 a 15 selezionano uno degli 8192 descrittori. REGISTRI INVISIBILI AI PROGRAMMI: Sono i registri che controllano il microprocessore quando opera in modo protetto. La memoria cache memorizza le informazioni di un segmento del registro corrispondente. Quando un nuovo numero è posto nel registro, il microprocessore carica i valori del descrittore nella cache. Questi rimarranno finché non si cambia descrittore. Vediamo i registri: • GDTR (global descriptor table register): contiene l’indirizzo di una delle tabelle dei descrittori globali ed il suo limite. • IDTR (interrupt descriptor table register): è usato per gli interrupts. • LDTR (local descriptor table register): è il selettore della tabella dei descrittori locali all’interno della tabella dei descrittori globali (permette quindi l’accesso alla tabella dei descrittori locali). • TR (task register): indica un descrittore nella tabella dei descrittori globali che definisce un task. pag. 34 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo INTEGER PIPELINE: Abbiamo già visto il parallelismo nell’8086 (EU, BIU). Nell’80486 e nel Pentium il parallelismo è ancora più marcato con la sovrapposizione di funzionalità. Sappiamo che l’esecuzione di un’istruzione si divide in 3 fasi: fetch, decode, execute. Nell’80486 e Pentium si ha una suddivisione più fine dell’istruzione in fasi, in modo tale da aumentare e migliorare il parallelismo: 1. Prefetching (PF) 2. Decode (D1 – decodifica istruzione) 3. Fetching degli operandi (D2 – lettura degli operandi su cui eseguire l’istruzione) 4. Execute (E) 5. Writeback (WB – aggiornamento dello stato della CPU in corrispondenza dell’esecuzione delle istruzioni). Ogni fase può essere considerata autonoma e superata dalle altre e eseguita da una parte del microprocessore: si dice pipeline il parallelismo asincrono (hardware) del microprocessore. Nel Pentium il pipeline viene sdoppiato nelle istruzioni intere per cui si può avere contemporaneamente l’esecuzione di due istruzioni per volta su due flussi. Durante l’esecuzione le due istruzioni vengono lette, controllate e, se possibile, vengono eseguite contemporaneamente: la prima viene mandata alla pipeline U, la seconda, se possibile, alla pipeline V (la restrizione sulla seconda istruzione sta nel fatto che il processore ha un set di istruzioni ridotto per cui esegue istruzioni semplici). N.B.: Il buffer di prefetching comunica con le due ALU tramite i due bus a 32 bit e sopra il prefetching bus c’è la cache istruzioni che comunica col buffer tramite dei bus a 256 bit; la cache di II livello viene collegata alla BIU. Internamente all’Instruction Prefetcher, ci sono 4 buffer da 32 byte. Ad ogni stadio di prefetching due coppie di buffer operano congiuntamente al Branch Target Buffer (BTB). Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 35 In ogni istante solo un buffer richiede un prefetching. Quando viene letta una istruzione che causa una diramazione del flusso del programma, il BTB effettua una predizione sul flusso: se la predizione è negativa il fetching continua linearmente, se invece è positiva, viene abilitato il secondo buffer che immagazzina le istruzioni provenienti dal secondo flusso. Se la predizione è sbagliata le pipelines sono ripulite e le operazioni di prefetching ricominciano. Poiché la cache dei dati e delle istruzioni sono separate, le operazione di prefetching non sono in conflitto con gli accessi ai dati. Il processore Pentium ha due buffer per la scrittura, uno per ogni pipeline. Ogni buffer ha una ampiezza di 64 bit che possono essere riempiti simultaneamente in un clock. Il contenuto di questi buffer viene mandato all’esterno nell’ordine con cui le scritture vengono generate dal processore. Per il pipeline dei floating point (quantità in virgola mobile) ci sono tre fasi in più della pipe dell’unità per il trattamento degli interi dovute alla necessità che le istruzioni siano convertite per poi avere una pipeline come gli interni, poi il risultato viene arrotondato e i registri aggiornati. SCALARITÀ DEI MICROPROCESSORI (PREROGATIVA DEI RISC): Il CISC (complex instruction set computing) ha un set di istruzioni di tipo complesso (usa comandi che incorporano molte piccole istruzioni per eseguire un’unica operazione). Il RISC (reduced instruction set computing) utilizzano un set di istruzioni ridotto: questo modo di procedere dalle microistruzioni è compattata in un’istruzione più completa. Questo processore può essere più veloce del CISC e ha un parallelismo a 64 bit maggiore, quindi, di quello del CISC per cui si dice che il RISC è più scalare. La prima tecnica di parallelismo è il pipeline (scalarità di tipo hardware). Il multipipeline è stato fatto per processori sempre più potenti. Il RISC utilizza anche la scalarità software ecco perché viene detto superscalare. La scalarita software suddivide le istruzioni di 64 bit in istruzioni a 32, 16 e 8 bit da elaborare parallelamente e poi ricongiungere. I multiprocessori SIMD e MIMD utilizzano i processori transputer che lavorano in parallelo. I CISC hanno frequenza di lavoro maggiore quindi parallelismo minore. Esempi di RISC sono ALPHA della DEC, RISC2000 della IBM e POWERPC. TECNICHE DI COLLOQUIO TRA MICROPROCESSORE E PERIFERICHE: Per permettere il dialogo tra microprocessore e periferiche esistono tre tecniche: polling, interrupt e DMA. Nel Polling il trasferimento dati è controllato dal microprocessore che ad intervalli di tempo stabiliti dal programmatore, interroga tutte le periferiche del sistema per sapere se devono inviare dati o se sono pronte a ricevere dati in uscita. L’interrogazione consiste nel test di un bit di stato (FLAG) della periferica; se la periferica è disponibile per lo scambio dati, il microprocessore lo effettua eseguendo l’apposito programma (routine pag. 36 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo di servizio). Questa tecnica viene usata quando il tempo di risposta delle periferiche è molto alto rispetto a quello di elaborazione dei dati. Comporta un hardware minimo e un appesantimento del software (ogni volta che viene eseguita, la routine del polling vengono testate tutte le periferiche, anche quelle inattive). Nella tecnica di interrupt è la periferica a chiedere al microprocessore l’inizio del colloquio mediante un segnale di “interruzione” inviato nel control bus. Quando il microprocessore può accettare la richiesta, risponde con un segnale di accettazione (int acknowledge) sul control bus, che permette alla periferica di collegarsi al data bus e iniziare lo scambio sotto la supervisione della routine di servizio eseguita dal microprocessore. L’interruzione del programma principale all’arrivo dell’interrupt viene comunque fatta alla fine dell’esecuzione dell’istruzione in corso. I microprocessori hanno al massimo due piedini di interrupt utilizzati da tutte le periferiche quindi possono sorgere dei problemi in quanto il microprocessore deve individuare l’unità origine della richiesta, avere una strategia di priorità per risolvere situazioni di richieste simultanee, sapere cosa fare se una periferica manda un interrupt mentre sta eseguendo una routine di servizio relativa ad un’altra periferica. I moduli principali del colloquio sono il modulo pic e il modulo del controllo della qualità degli interrupt. Il modulo PIC è il modulo che gestisce le priorità degli interrupt. Gli indirizzi delle varie periferiche vengono inviati in un registro detto “Maschera delle priorità”. Il microprocessore stabilisce le priorità a seconda delle quali la maschera delle priorità fa uscire fuori gli indirizzi (si crea una coda degli interrupt). Può succedere che arrivi il secondo interrupt prima che arrivi l’ack al primo: in situazioni di questo tipo il secondo interrupt dovrebbe essere trascurato (controllo della qualità degli interrupt). Il circuito di validazione degli interrupt consente o meno che un interrupt segua il suo corso e nel caso in cui il processore non è pronto lo fa aspettare. Quella dell’interrupt è la tecnica più usata nel colloquio tra microprocessore e periferiche. Il DMA (direct memory access) viene usato quando ci sono grosse quantità di dati da trasferire verso le periferiche che rallenterebbero il microprocessore, occupato in continua lettura/scrittura sulla memoria. I dispositivi vengono messi in diretto contatto con la memoria, accedendo ai dati ed evitando di coinvolgere il microprocessore. Una periferica che necessita di uno scambio dati intenso con la memoria è il video ed infatti è connesso tramite DMA. Nelle tecniche di polling e interrupt, lo scambio dati tra periferiche e microprocessore avviene attraverso l’unità dei I/O e sotto il controllo diretto del microprocessore; nella tecnica di DMA si ha una connessione diretta tra dispositivo e memoria attraverso il data bus gestito dal controller DMA. INTERFACCIA I/O: Il collegamento tra il processore e le periferiche avviene tramite i bus, fasci di conduttori di dati realizzati con circuiti stampati su piastra isolante e sono di tre tipi: 1. Address Bus (trasporto indirizzi) 2. Data Bus (trasporto dati) 3. Control Bus (trasporto segnali di controllo che partono dalla CU=control unit del microprocessore) Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 37 Il parallelismo dei bus è il numero di linee del bus. Un address bus a 16 linee (A0 à A15) usa le prime tre linee (A15-A14-A13) per l’indirizzamento dei moduli (periferiche). A12 viene usata per la selezione RAM-ROM. Le rimanenti linee vengono utilizzate per l’indirizzamento della memoria, la quale potrà essere al massimo di 212 byte. Tra i moduli e il bus deve essere implementata una port. Esistono tre tipi di port: 1. Ingresso (uscita dal modulo verso il bus) 2. Uscita 3. Bidirezionale ]Il disaccoppiamento tra bus e modulo avviene attraverso una batteria di buffer three state. Questi sono dispositivi che in base al valore della tensione di gate può avere impedenza nulla (se VG = 1) o infinita (se VG = 0). La batteria di B3S va posta come in figura e funge da controllo del flusso di dati. In uscita dal bus verso il modulo va posta una batteria di latch di tipo D in parallelo con clock comune. Quando il clock è attivo il bus dati scarica i dati sul modulo. Le port bidirezionali vengono realizzate come in figura. Se C è ON e CK è ON si attiveranno B2 e B3 e il verso di percorrenza sarà da dx a sn. Cambiando stato in C si attivano B1 e B4 e il verso è opposto. pag. 38 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo L’interfaccia di I/O è un modulo di connessione locale o remota. Per connessione locale sono di tipo seriale o parallelo; la connessione seriale (i bit escono in modo seriale) è più semplice della parallela e può essere multiplata; la connessione parallela non può essere multiplata (sfrutta il parallelismo della macchina): infatti le porte parallele sono in numero inferiore rispetto alle seriali. Con le porte seriali si possono connettere più periferiche i cui dati scorrono alternativamente (TDM), anche se maggiore è il numero di periferiche connesse maggiore sarà il rallentamento. Per ovviare a questo problema, si usano schede di tipo Special X. Per connessione remota vengono usati moduli di gestione esterna (Rete Telecom) collegati tramite Modem o attraverso moduli di rete locale. Il modem (modulator-demodulator) effettua la modulazione del segnale da trasmettere attraverso la linea telefonica e la demodulazione dei segnali in arrivo. Il modem invia i dati ad alta frequenza a velocità da 28,8 Kbit/s fino a 56 Kbit/s (per la normale rete telefonica); per linea ISDN si viaggia a 128 Kbit/s ma vanno utilizzati modem specifici. Il dialogo viene gestito da protocolli di comunicazione che dovrebbero assicurare la correttezza di ogni dato e che esso sia giunto a destinazione; un modem deve supportare il più ampio numero di protocolli possibile per assicurare la compatibilità. I dati vengono compressi affinché possano essere trasmessi più velocemente ed in maggior numero (MNP5 e MNP10). Inoltre un modem deve essere dotato di metodi di correzione di errore e di moduli di sicurezza. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 39 I moduli di connessione seriale sono di due tipi: UART e USB. Il modulo UART (Universal-Asynchronic-Receiver-Transmitter) è schematizzato in figura. La presenza di registri di conversione P/S e S/P è dovuta al fatto che sulla scheda madre i dati viaggiano in parallelo per cui è necessario adattarli in ingresso e in uscita. Il modulo USB (Universal-Serial-Bus) è una UART dotata di registri di trasmissione e ricezione sdoppiati e connessi in parallelo in modo che se è uno è occupato il dato viene dirottato all’altro. Avendo più registri l’USB è più veloce della UART. Lo SCSI è un protocollo di trasmissione tra macchina e periferiche che utilizza trasmissione a blocchi (molto veloce). Le varie evoluzioni sono SCSI I, SCSI II, Ultra SCSI, Ultra Wide SCSI (SCSI III) ognuna delle quali ha un suo particolare tipo di connettore. pag. 40 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo MEMORIE: Le memorie sono di tipo elettronico e non elettronico. Le prime stanno sulla scheda madre, mentre le seconde hanno dimensioni tali da non poter essere poste sulla scheda madre e vengono chiamate memorie di massa. Le caratteristiche principali delle memorie sono: capacità di memorizzazione, numero massimo di byte che possono essere immagazzinate nella memoria, tempo di accesso, tempo necessario per leggere una informazione immagazzinata in qualunque parte della memoria, affidabilità. Le memorie si dividono in base alla tecnologia: a controllo di parità, EDO (tecn. CMOS), ECC (con cod. Hamming). MEMORIE ELETTRONICHE: Le memorie di tipo elettronico sono la ROM (Read-Only-Memory) e la RAM (Random-AccessMemory). Le memorie RAM sono poste su banchi appositi realizzati sulla scheda madre, organizzate in scheda a 168 pin o più. Ogni dato è accompagnato da un indirizzo: il parallelismo del dato è il numero di bit con il quale il dato viene codificato. La scheda madre indica tramite il numero di address bus il massimo numero di allocazioni di memoria disponibili. Ogni nodo rappresenta una allocazione di memoria costituita da un numero di flip-flop pari al parallelismo del dato. L’indirizzamento avviene mediante una linea che accende una locazione di memoria (ovvero “accende” il primo flip-flop). (DI=data in, DO=data out) La RAM è suddivisa in un certo numero di banchi (ognuno dei quali con una certa capacità, per esempio 16 Mb) collegati ad un decoder. Il ruolo del decoder è quello di assegnare un riconoscimento ai banchi e selezionare il banco dove si trova l’indirizzo richiesto. Se il numero di banchi è 4, il decoder avrà due uscite. Le uscite della memoria sono, come le porte di accesso ai bus, collegate a dei buffer three state, mentre gli ingressi sono dotati di una batteria di latch (per polarizzare gli ingressi su stati logici). Quelle descritte sono memorie di tipo statico, molto costose da un punto di vista energetico perché è necessaria una polarizzazione continua. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 41 Nelle RAM dinamiche, che si usano oggi, il singolo bit della locazione di memoria viene conservato in un condensatore (10-15 F) ad alto livello di integrazione, che sarà carico per lo stato 1 o scarico per lo stato 0. Nel caso in cui il condensatore contenga lo stato 1 è necessario un circuito di refresh per rigenerarne la carica. Il MOS M1 ha un pin che dà la tensione di attivazione al gate qualora si voglia memorizzare un bit. Ormai tutte le memorie sono di tipo dinamico con frequenza di refresh pari a 10 volte il clock della macchina. Le memorie ROM sono di vari tipi. Quella in figura è una memoria ROM non programmabile. Quando esce dalla linea di produzione viene programmata in modo definitivo: la programmazione avviene bruciando il fusibile per implementare l’uno logico. Infatti se c’è il fusibile il livello di tensione va a 0 in M2 e quindi l’uscita è 0. La ROM non programmabile resta in uso solo nei custom. La PROM (programmable-ROM) è una memoria programmabile direttamente dall’operatore ma sempre in maniera definitiva. Le ROM riprogrammabili vengono dette EPROM (erasable-programmable-ROM); le celle di memoria sono costituite da MOS in cui è inserito il cosiddetto gate fluttuante: si tratta di una sacca di semiconduttore all’interno dello strato di SiO2, in grado di polarizzarsi in maniera opposta rispetto al gate. Togliendo il gate, il semiconduttore affogato diventa il nuovo gate. Inizialmente si mette un gate fortemente negativo per far resistere la polarizzazione del gate affogato (12 V) per 10-20 anni (stato logico 1). Fino a qualche anno fa non si riusciva a scaricare il gate affogato elettricamente e si operava mediante raggi UVA all’interno di camere speciali; proprio per questo venivano protette da una placca in modo da evitare l’esposizione accidentale ai raggi UVA. Da 15 anni si usano le memorie EAROM (electrically-alterable-ROM) nelle quali è possibile rimuovere la polarizzazione del gate affogato inserendo una tensione opposta e due volte superiore a quella logica: è così possibile cancellare e riprogrammare la ROM direttamente dal computer. MEMORIE DI MASSA: FLOPPY DISK: I floppy disk sono memorie facili da trasportare, ma anche pericolosi mezzi per trasportare virus con velocità di 160 giri/s Sono memorie di tipo magnetico (i dati vengono conservati sotto forma di campo magnetico permanente): il disco, di materiale plastico, è ricoperto di una sostanza ferromagnetica che conserva il campo magnetico applicato; la cancellazione si opera applicando un campo magnetico più forte. pag. 42 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Il principio fisico per la scrittura è la magnetizzazione realizzata mediante una corrente (onda quadra) che magnetizza la bobina avvolta attorno al magnete; la lettura avviene per induzione magneto-elettrica: è il c.m. del disco che induce corrente nella bobina (legge di Faraday-Lenz-Newmann). Nonostante le perdite, grazie a dispositivi elettronici con ampi guadagni, si riesce a rinvigorire il segnale: i floppy disk durano circa 10 anni, poi perdono l’informazione contenuta; questa è organizzata in tracce e settori per dare un indirizzo specifico ad ogni dato; la definizione (creazione) di tracce è detta formattazione. Un danno particolare che si può venire a creare è il cosiddetto atterramento del disco ovvero l’interposizione di impurità tra testina e disco; per la sua natura magnetica, la memoria potrebbe venire danneggiata dall’alta temperatura o da variazioni elettromagnetiche generate da campi esterni. La capacità della memoria va da 720 Kb a 1,44 Mb fino a 2,88 Mb (IBM). HARD DISK: Il principio è lo stesso del floppy disk, ma con un aumento del numero di lettori e scrittori (avendo l’hard disk più di un disco) che, una volta, venivano disposti a winchester: questa struttura era tuttavia molto fragile. Oggi si utilizzano solo due dischi essendo la densità molto aumentata. Il tempo di attesa è costituito da: - perfezionamento del braccio meccanico di write/read - ricerca informatica - isteresi magnetica La somma di questi tempi è detta tempo di comunicazione tra computer e hard disk: è un dato intrinseco al disco che può essere ridotto fino a 10 microsecondi scegliendo un’opportuna architettura di comunicazione. Oggi il metodo più utilizzato è quello che usa controller SCSI, mentre più diffuso anche se più lento è il metodo IDE. I tempi in ogni caso sono intorno ai 10-12 microsecondi, ma tempi più alti sono ancora accettati: devono comunque essere dichiarati dal costruttore. Altri parametri importanti sono il numero di giri al minuto (rpm), che va da 5600 a 7200, e la capacità di memorizzazione che va da 10 a 30 Gb. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 43 MEMORIE DI MASSA A NASTRO MAGNETICO: Nascono contemporaneamente ai computer (prima degli hard disk) allo scopo di rendere trasferibile la memoria. Originariamente erano a supporto in plastica, su materiale ferromagnetico, di grosse dimensioni (larghezza 1 cm, lunghezza di centinaia di metri). I primi nastri erano costituiti da 8 “piste” per i dati (parallelismo a 8 bit ) e una pista per il controllo (per segnalare l’inizio e la fine del nastro, eventuali stop intermedi,…). Questo sistema consentiva capacità di circa 50 Mb (500 volte superiore a quella dei primi floppy disk). Successivamente le aziende produttrici cominciarono a magnetizzare i nastri a diverse densità (da 800 bit / inch fino agli attuali 12000 bit / inch) causando problemi di compatibilità potendo ogni tipo essere letto solo da uno specifico lettore. I sistemi a nastro si chiamano streaming tape e leggono oggi nastri della dimensione di una cassetta audio ce si differenziano tra loro non più solo per la densità. La capacità arriva oggi fino a 32 Gb, ma solo per l’esclusivo scopo di effettuare backup ovvero di copiare i file in modo seriale per trasferirli in un’altra macchina (non c’è colloquio con la cpu e non si possono eseguire file). Tra i diversi tipi in commercio ricordiamo: - Travan - Dat (Digital-Audio-Tape, brevetto Sony, affidabile e ad alte capacità) - QC (usato da macchine HP e letto da lettori Surestore, arriva fino a 8 Gb, ma sta andando in disuso) - Iomega-Jaz (da 2 a 5 Gb) Tutti questi sistemi utilizzano alto parallelismo (fino a 64 piste) e sono aumentate anche le linee di controllo; i problemi dei nastri magnetici sono gli stessi dei floppy disk (temperature, variazioni elettromagnetiche, …). Il tracciato record è un tracciato nel quale vengono stabiliti (dal programmatore) i codici di interpretazione dei dati usati nel nastro magnetico. Di solito vengono utilizzati i codici ASCII e EBCDIC che costituiscono gli standard internazionali. MEMORIE OTTICHE: Sono molto utilizzate perché soggette a meno problemi rispetto a quelle magnetiche. Prima di descrivere il funzionamento dei supporti ottici è necessario richiamare alcune nozioni di ottica. La luce emessa dal sole è: - policromatica (contiene tutta la gamma di colori dello spettro del visibile) - non polarizzata (è emessa in tutte le direzioni) - non coerente (i fotoni sono emessi casualmente senza relazione di fase tra di loro) La luce usata in informatica è invece monocromatica, polarizzata e coerente. Tramite polarizzatori la luce viene resa parallela ad un piano (polarizzata): le prime apparecchiature furono progettate da un ingegnere italiano per scopi bellici. pag. 44 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Il laser, invece, è lo strumento che consente di produrre monocromatica (rossa, azzurra o verde), polarizzata e coerente concentrata in piccolissimi raggi di intensità variabili (modesta per la medicina oppure notevole per fondere lamiere). La frequenza del campo elettromagnetico regola il moto dei fotoni (in ogni driver CD-ROM c’è un dispositivo di questo tipo). Le memorie ottiche oggi in uso sono: - CD-ROM (600-700 Mb) - DVD (5-6 Gb) - Dischi ottici (70-120 Gb, costo di circa 20-50 milioni) CD-ROM: Sono dischi in plexiglas ricoperti da una sottilissima lega di Al deformabile a 80-90°. La scrittura avviene tramite deformazione (o meno) delle piccolissime “aree” in cui è diviso il disco: tale procedura si esegue grazie al riscaldamento dovuto a microscopici raggi laser che creano “solchi” sulla sostanza metallica; si vengono a creare sulla superficie del disco due tipi di aree di dimensioni pari alla lunghezza d’onda del laser: - LAND (aree deformate) che implementano 0 logico - PEAK (aree non deformate) che implementano 1 logico La lettura può essere realizzata in due modi sfruttando o il fenomeno della diffrazione (1) o quello dello sfasamento (2): 1. viene inviato un debole raggio laser mentre il disco ruota: se colpisce un land non c’è riflessione, viceversa il raggio riflesso viene “letto” da un fotodiodo. 2. la differenza tra peak e land viene ravvisata grazie alla differenza di fase tra le onde riflesse da land e peak evidenziato da un rilevatore di sfasamento. Il secondo sistema è più affidabile e sofisticato perché genera meno errori di lettura. In ogni caso, la lettura viene effettuata a velocità multipla di una data (10x, 40x, 50x) e termina quando per un certo intervallo di tempo vengono letti solo zeri (000000). Un limite era inizialmente l’impossibilità di riscrivere in quanto i primi dischi potevano essere deformati una sola volta, oggi ci sono anche quelli rewritable (riscrivibili, ma non più di poche volte): sono in grado di “ricompattare” la sostanza che ricopre il disco anche se la velocità di riscrittura è ancora bassa. Tra i vantaggi rispetto alle memorie magnetiche ci sono capacità di memorizzazioni maggiori e tempi di lettura rapidissimi. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 45 MEMORIE MAGNETO-OTTICHE: Per ovviare all’iniziale impossibilità di riscrivere le memorie ottiche vennero brevettati sistemi di tipo magneto-ottici (lettura ottica e scrittura magnetica) che prevedevano l’utilizzo di sostanze dicroiche ovvero sensibile a fenomeni ottici, magnetici ed elettrici (ogni asse spaziale è sensibile a un solo tipo fenomeno). Le molecole di questa sostanza sono asintropicamente organizzate, ma la struttura diventa isotropa in presenza di un c.m. potendo così variare l’asse ottico implementando i valori logici di 0 e 1; il problema si avrebbe una volta levato il c.m., ma ci viene in soccorso l’effetto Kerr: la sensibilità al c.m. cessa al di sotto dei 70-80°. Per scrivere, allora, si porta la sostanza sopra i 70°, la si polarizza e poi la si raffredda rapidamente per conservarne la struttura (il cui asse ottico, in base al suo orientamento, rappresenta uno stato logico che può essere letto con il laser) che a temperatura ambiente è ininfluente al c.m. Questo tipo di memorie ebbe un grande impiego fin quando non furono affinate le tecnica di riscrittura delle memorie ottiche. PERIFERICHE: Sono componenti esterni alla mainboard connesse al processore tramite interfaccia I/O e si dividono in periferiche d’ingresso (tastiera, scanner, penna ottica, mouse, tavola grafica, periferiche analogico-digitali) e in periferiche di uscita (monitor, terminale video, stampanti, plotter, uscite D/A) PERIFERICHE DI USCITA: MONITOR E TERMINALE VIDEO: Il monitor è un dispositivo in grado di visualizzare su schermo dati (input) e risultati (output) parziali o definitivi elaborati dai software di base e dai software applicativi (per questo deve essere gestito da un sistemista esperto). Vengono connessi al processore tramite schede grafiche di potenza opportuna. Il terminale video invece rende visibili su schermo dati e risultati solo dei software applicativi (per questo può essere gestito anche da un utente). La connessione è di tipo seriale con pochissime linee di controllo. Esistono tre tipi di monitor. I monitor a raggi catodici hanno come elemento principale il tubo a raggi catodici. Il funzionamento sfrutta il fenomeno della fluorescenza: questo avviene quando gli elettroni di determinate sostanze raggiungono, in seguito ad un aumento di energia (nel nostro caso la causa è l’urto con il raggio elettronico), uno stato quantico superiore e nella successiva decaduta rilasciano energia sotto forma essenzialmente di quanti luminosi. Ciò che si ottiene è un puntino luminoso sullo schermo. Il catodo fa partire un raggio (o più raggi per i monitor a colori) a velocità altissime: la d.d.p. anodo-catodo è di 6 KV per il b/n e fino a 50 KV per i colori. Per deviare il raggio in modo che possa far apparire un puntino in qualsiasi punto dello schermo si utilizzano delle placchette pag. 46 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo (deflessione dovuta a campo elettrico) oppure si avvolge la base del tubo con una bobina (deflessione magnetica). Per formare l’immagine si utilizza il metodo della trama: si manda una tensione alternata e l’informazione visiva sul monitor si ottiene modulando in ampiezza il segnale ad alta frequenza che porta la traccia (segnale sul fondo) per marcare più o meno la traccia nello schermo. La formazione del colore viene fatta con il metodo delle somme dei tre colori fondamentali RGB (red-green-blue) ottenuti con raggi catodici a diversa frequenza. I primi monitor erano interlacciati ovvero la traccia era continua, mentre oggi si usano monitor non interlacciati ovvero la traccia non è continua e si limita ad una singola riga per volta ottenendo un minor sfarfallio dell’immagine. Le immagini si fanno scorrere a velocità opportuna che non sia troppo lenta ma che permetta all’occhio umano di poterla focalizzare (60 – 110 Hz). Un monitor che assicura un certo livello di risoluzione a una determinata frequenza è migliore di uno che assicura la stessa risoluzione ad una frequenza inferiore. Fino ad ora abbiamo parlato di frequenza in senso teorico poiché la frequenza reale è stabilita dal controller della scheda grafica. Il controller deve adeguare la velocità di uscita dei dati del computer a quella di visualizzazione sullo schermo (è l’unico caso in cui la velocità di visualizzazione è maggiore di quella di uscita dei dati). La scheda grafica deve riuscire a inviare tutti i fotogrammi al monitor nel modo più veloce possibile per non rallentare la prestazione complessiva; per far ciò utilizza un acceleratore grafico e deve disporre di una memoria propria (16 – 128 Mb) tale da poter immagazzinare quanti più dati è possibile per stabilizzare le immagini. La risoluzione della scheda è peggiorativa rispetto a quella del monitor infatti mettendo la scheda ad alta risoluzione perdo la stabilità dell’immagine; è possibile scegliere la risoluzione di volta in volta: 640x480, 800x600, 1024x768, 1280x1024, …, 2000x1600. La distanza tra i pixel (ovvero la distanza tra i puntini luminosi sullo schermo) è un parametro fondamentale (dot pitch): la massima consentita è di 0.28 mm (se più alta dà problemi alla vista). Se i monitor hanno geometria dei pixel a delta, bisogna specificare la distanza diagonale. Il dot pitch mask è la distanza tra i fori della maschera inserita all’interno della sostanza fluorescente per evitare che i contorni dei pixel siano mal definiti. I problemi di un monitor sono legati in buona parte alla fluorescenza: le sostanze fluorescenti, oltre ad emettere onde luminose, emettono onde sullo spettro X e g dannose per chi sta vicino al monitor; le norme che limitano queste radiazioni sono le MPR I e MPR II, e le valutazioni sono condotto dai laboratori TCO. Per limitare questo fenomeno, maggiormente presente nei monitor a colori e dovuto anche allo scattering, sono necessari schermi di piombo. Altri problemi sono legati ai danni che fenomeni ottici come la differente intensità con cui la luce colpisce la retina creano sull’occhio. Un’ultima specifica tecnica è l’economia ovvero la norma di risparmio energetico a cui si attiene il monitor. I monitor a stato solido utilizzano come pixel diodi LED che emettono un ampio spettro di frequenze luminose in modo da formare tutti i colori. Nei monitor a plasma invece ogni gruppo di pixel è “un’ampolla” contenente piccole quantità di una miscela di gas ionizzato: ciascun gas emette a una Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 47 determinata temperatura, in modo che variando la temperatura si può stabilire quali gas fare emettere. I monitor a plasma hanno una buona visibilità anche ai limiti del cono visivo a differenza di quelli a stato solido. I monitor a matrice passiva sono quelli che hanno dietro ai pixel un gioco di filtri e specchi che armonizzano le immagini, altrimenti si dicono a matrice attiva. MODULI GRAFICI: Sono dispositivi composti da più schede grafiche e dotati di un proprio sistema a microprocessore (Workstation Grafiche) per gestire le immagini ed al limite critico le immagini in movimento. STAMPANTI: Vengono classificate in base ai principi fisici che stanno alla base del processo di stampa. Le stampanti ad aghi si dividono in seriale, a matrice o di tipo parallelo. Nella stampante ad aghi seriale, come per tutte le stampanti ad aghi, gli aghi agiscono su un nastro d’inchiostro che viene pressato sulla carta; la testina che li contiene è dotata di 9-18-24 aghi posti in fila. Nella stampante a matrice la testina è costituita da più colonne di aghi (matrice) ognuna delle quali è dotata di 9-18-24 aghi. Il formato A4 ha 80 colonne, l’A3 ne ha 183. Le stampanti ad aghi oggi sono utilizzate per stampa di massa su rullo continuo e sono molto rumorose (per legge l’emissione sonora non deve superare i 55 dB). La velocità di una stampante ad aghi seriale o a matrice si misura in caratteri per secondo (cps), attualmente si va da 120 a 1000 cps. La densità di stampa si misura in caratteri per inch (cpi) e può essere oggi 10 (Pica), 12 (Elite), 15 (Draft), 18 (High Draft), 20 (Very High Draft) cpi. I font sono i diversi tipi di carattere che si possono stampare e si dividono in font residenti, conservati nella memoria della stampante (35 o 36), e font non residenti, forniti via software. Ogni stampante è dotata di un driver per il dialogo con il PC che avviene attraverso linguaggi diversi a seconda della macchina per cui le stampanti devono essere dotate di tutti i linguaggi più usati. L’ultima categoria di stampanti ad aghi è quella delle stampanti in parallelo o Line Printer. Sono stampanti che riescono a stampare una linea per volta; oggi la velocità di stampa, che per le line printer si misura in linee al minuto, è da 400 a 2000. Nelle line printer vi sono tante testine quante sono le colonne oppure una testina ogni 2 colonne; in quest’ultimo caso la velocità è più alta e la densità è di 400 cpi. La memoria di una stampante deve contenere almeno una pagina per cui si usano memorie da 2 a 8 Mb oppure si utilizza un nuovo sistema che consente di catturare la pagina direttamente dalla RAM (spooling), riducendo la memoria della stampante a 128 Kb. Il collegamento è in parallelo o seriale. Le specifiche tecniche dinamiche sono: velocità, densità, risoluzione. Le specifiche statiche sono: dimensioni, n° di aghi, font. La Modalità di accesso ai fogli è bottom, rear o top. Il contenitore contiene da 50 a 500 fogli. La potenza va da 50 a 500 KW. Le stampanti ink-jet sono stampanti che sfruttano un meccanismo simile a quello delle stampanti pag. 48 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo ad aghi seriali. La stampa avviene mediante un getto d’inchiostro liquido attraverso degli ugelli collegati ad un serbatoio e posti sulla testina. La testina è costituita da una sostanza semiconduttrice in cui sono immerse altre sostanze: in questo modo alla testina è conferita una struttura porosa sensibile al campo elettrico. Degli elettrodi impongo una d.d.p. ai lati della testina facendo sì che i pori della sostanza si dilatino per effetto termico e l’inchiostro fuoriesce in maniera capillare. Le testine a colori sono costituite da gruppi di 6 ugelli che grazie a campi elettrici diversi permettono la formazione dei vari colori. Tra le ink-jet, le stampanti bubble-jet hanno pori più piccoli, che invece di spruzzi fanno uscire una bolla di inchiostro che permette un miglior mescolamento dei colori (le Epson, grazie a molte centinaia di pori raggiungono qualità fotografica). La velocità si misura in pagine per minuto (ppm), oggi le stampanti vanno da 2 a 15 ppm. La risoluzione si misura in dot per inch (dpi), le stampanti odierne vanno da 600 a 2400 dpi; nelle specifiche tecniche si indica la ris. Orizzontale X la ris. Verticale. Le stampanti ink-jet supportano sia i fogli singoli sia il rullo continuo. Vale lo stesso discorso fatto su caratteri e dialogo col PC descritto per le stampanti ad aghi. La connessione oggi è anche tramite USB oltre che parallela. Le stampanti laser hanno un meccanismo di funzionamento proprio (nella parte finale simile a quello di una fotocopiatrice). Un cilindro (Drum) viene caricato positivamente durante l’inizializzazione sulla superficie del quale viene fatto agire un raggio laser che “toglie” alcune elettriche “disegnando” l’immagine da stampare. Sotto il cilindro è presente una vasca contenente il toner, sostanza costituita da microgranuli di polveri; il foglio si interpone tra drum e toner, il quale si fissa sul foglio in corrispondenza delle zone cariche del drum. Il foglio viene quindi passato attraverso un doppio rullo che imprime per cottura il toner sul foglio. Il tempo di preparazione è specificato nei datasheet ed è il tempo di carica del drum (circa 10 sec). La velocità di stampa è da 6 a 50 ppm. I vantaggi stanno nella migliore risoluzione per la scala di grigi, nell’elevata velocità e nella maggiore durata del toner rispetto alla cartuccia delle ink-jet; tra gli svantaggi abbiamo un peggioramento della risoluzione del colore visto che le polveri dei diversi colori vengono cotte anziché miscelate, inoltre il costo è sostenuto. SCANNER: E’ un dispositivo in grado di digitalizzare un’immagine, ovvero immagazzinarla in un file. Venne creato per riconoscere caratteri alfanumerici ma fallì perché non comprendeva caratteri manoscritti. Il riconoscimento del carattere era svolto da un modulo software detto OCR (optical character recognition). Oggi il compito dell’OCR è affidato ai Vision Systems (più costosi) di cui si parlerà in seguito. La testina di lettura scorre sotto il vetro su cui è posto il foglio ed emette una luce polarizzata non Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 49 coerente (led) che viene riflessa dal foglio e tradotta da fotodiodi in corrente di intensità proporzionale al segnale luminoso (scanner in bianco e nero). Nello scanner a colori la luce inviata è policromatica e i fotodiodi, posti in batterie, hanno soglie di risposta a frequenze diverse ovvero si attiva in presenza di determinati colori. Il sensore è stato brevettato e viene venduto da un’unica casa; le differenze di prezzo sono dovute alla qualità dei controlli ed alla risoluzione del sensore (da 600 a 2400 dpi). La risoluzione ottica può essere migliorata tramite interpolazione software dei punti scannerizzati: tra i punti vicini si inseriscono punti virtuali calcolati mediante algoritmi numerici ed in questo modo possiamo raggiungere risoluzioni fino a 19200 dpi. Esiste anche una risoluzione hardware, peggiorativa, dovuta al passaggio attraverso led e fotodiodi; il produttore dovrebbe quindi specificare risoluzione ottica, software e hardware. La larghezza della finestra ottica può essere 30, 36 o 40 bit. Questo discorso vale per formati A4 o A3. Per formati più grandi cambia il metodo di cattura delle immagini: l’immagine viene prelevata da tre telecamere poste sul foglio fino a coprirne l’intera larghezza. Le coordinate prelevate dalle telecamere con i relativi dati vengono convertite (Vettorializzazione) in tabelle di vettori (matrici) che verranno ritradotte nell’immagine originale in fase di stampa. Il limite di questi scanner è la collimazione delle immagini ottenute dalle diverse telecamere: piccolissimi spostamenti, sbalzi di temperatura o urti generano infatti sfasamenti e quindi errori di vettorializzazione. La risoluzione massima può arrivare a 8000 dpi. Un’altra caratteristica di questi scanner è la rasterizzazione ovvero l’elenco delle caratteristiche principali del disegno (formato, zone con tracce evidenti, dati significativi) che serve per ottimizzare la vettorializzazione. I dati possono essere disposti in modo lineare oppure raggruppati secondo motivi predominanti del disegno così, tramite i software di rasterizzazione che passano i file al plotter, si può ovviare ad eventuali imprecisioni della vettorializzazione e risparmiare tempo nella stampa di alcune parti. I linguaggi tipici dei software di vettorializzazione e rasterizzazione sono RTL I, RTL II, HGL I, HGL II. PLOTTER: Possono essere piani, a rullo e a trasferimento termico in base ai principi ed al meccanismo di funzionamento. Il plotter piano è costituito da un piano atto a facilitare l’adesione del foglio, che può essere di formato A3 o A4. Sul piano c’è una struttura con 4-8 pennini che si può spostare lungo i due assi. La velocità del plotter si misura in centimetri al secondo e va da 5 a 40 (dipende dal peso del pennino e dalla qualità dell’inchiostro usato). La pressione dei pennini è una ulteriore specifica. Il plotter a rullo si usa per fogli di dimensione A1 o A0; la larghezza del foglio è di 91 cm e la lunghezza è la massima consentita dalla memoria disponibile. 5 aspetti caratterizzano il funzionamento del plotter: 1. Aspetto Meccanico: il rullo fa scorrere il foglio in avanti e indietro tramite una corona dentata mobile; dal punto di vista temporale il rullo è il punto debole per cui lo si rende quanto più leggero possibile per limitarne l’inerzia. 2. Aspetto Elettromeccanico: il movimento del rullo è gestito da motori passo-passo che hanno inerzia pag. 50 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo quasi nulla e consentono l’interruzione quasi istantanea del movimento. 3. Aspetto Elettronico: è costituito da convertitori A/D e D/A. 4. Aspetto Informatico: la parte hardware è costituita da memoria ROM in cui è inserito il firmware, che contiene le figure standard richiamabili dal programmatore, e/o un sistema a microprocessore che è in grado di richiamare piccoli programmi di grafica (subroutine) atti a creare nuove figure. La memoria raggiunge i 160-170 Mb. Più linguaggi ha il plotter più larghe sono le possibilità di applicazione. 5. Aspetto Comunicazione: un software gestisce le comunicazione del plotter con l’esterno. La connessione è tramite porta parallela oppure USB o SCSI. Il costo è di 4.5-5 mln. La risoluzione va da 300x300 a 1200x1200 dpi. VISION SYSTEMS: Rappresentano l’evoluzione degli scanner ed hanno l’obiettivo del riconoscimento delle immagini fisse o in movimento. Questi dispositivi sono a struttura logico-funzionale gerarchica organizzata in 5 livelli (o blocchi funzionali): I Livello (Cattura delle immagini) Le immagini vengono catturate (e digitalizzate) mediante telecamere ed altri sensori; per questa fase è necessaria una competenza di tipo elettronico. II Livello (Pre-processing) Vengono eliminate dall’immagine le parti meno significative come le ombre di certi oggetti; per questa fase sono necessarie competenze di software e di metodi empirici di tipo ottico e elettronico. III Livello (Segmentation) Si esegue una sorta di rasterizzazione, ma più dettagliata: si tratta di una raccolta di caratteristiche e dettagli fatta reticolando l’immagine e prelevando da ogni “quadratino” un punto singolare, un colore, un angolo o un altro particolare e raggruppando questi dati per affinità: si ottengono così fasci di informazioni omogenee. IV Livello (Description) Vengono associati dei valori ai segmenti precedentemente ottenuti e si opera la vettorializzazione (le caratteristiche geometriche vengono implementate in matrici: una tabella conterrà tutti i valori relativi ad una particolare porzione di immagine). V Livello (Recognition) Le matrici vengono mappate con modelli predefiniti (organizzati anch’essi in matrici) per percentuali di affinità; è la “macchina intelligente” che opera il “riconoscimento” dopo aver confrontato con le tabelle contenute nel computer: una macchina intelligente è una macchina che contiene un certo numero di dati basilari raccolti dalle sue stesse esperienze mediante programmi di sistemi esperti. Per le immagini in movimento c’è necessità di alto parallelismo e per questo si utilizzano sistemi di transputer (ciascuno dotato di sistema CUSTOM). I sensori spazio-varianti e tempo-varianti, prodotti dalla FIAR, sono utilizzati nel riconoscimento di immagini in movimento; hanno un’alta densità di pixel nella parte centrale e via via minore andando verso la periferia: la zona ad alta densità serve a focalizzare l’oggetto mentre le parti a minor densità si Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 51 occupano della scena. Se l’oggetto si sposta i sensori lo seguono (spazio-varianti) in modo che la parte centrale possa continuare a focalizzare l’oggetto mentre quella periferica osserva un’altra parte della scena; se l’oggetto muta la sua velocità i sensori adeguano la loro a quella dell’oggetto (tempo-varianti). Questi sensori hanno necessità di meno pixel rispetto alle telecamere fisse: i costi sono minori perché c’è minore necessità di risorse elaborative. PENNA OTTICA: Serve per il riconoscimento di codici a barre e ha struttura simile a quella dello scanner. Oggi è dotata di batteria di LED per emettere la luce laser e batterie di fotodiodi per ricevere la luce riflessa; software di riconoscimento si occupano di interpretare i 3-4 tipi di codice a barre oggi in uso. MOUSE: TASTIERA: pag. 52 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo IV. RETI, PROGETTO DI UN SISTEMA DI ELABORAZIONE, STANDARD ISO E SPECIFICHE TECNICHE RETI DI CALCOLATORI E SOFTWARE DI BASE: Una rete di calcolatori è un sistema di connessione di risorse elaborative tra “nodi”, mediante collegamenti fisici o via radio. Una macchina è gestita dal cosiddetto software di base o di sistema. Esso è costituito dal Sistema Operativo, dai Linguaggi di Programmazione, dal Software Grafico di Sistema e dal Software di Rete. Un sistema operativo moderno assorbe tutti gli altri aspetti del software di base. Un sistema operativo è l’insieme di programmi che consentono la gestione di tutti i moduli interni del computer, delle periferiche esterne e del rapporto uomo-macchina da parte del microprocessore. Un sistema operativo è monoutente se a un solo utente è consentito di gestire il rapporto uomomacchina; viceversa è multiutente se più utenti possono accedere al rapporto uomo-macchina. Un sistema operativo è monoprogrammabile se consente la gestione di un solo processo o programma in contemporanea; viceversa è multiprogrammabile se permette la gestione di più processi alla volta. Il primo livello del sistema operativo è composto dall’insieme dei programmi che stanno sulla ROM in firmware (BIOS) che contengono le informazioni per l’avviamento della macchina e l’elenco delle risorse disponibili e utilizzabili dal microprocessore. Il secondo livello è costituito dai software di gestione che vengono caricati dall’hard disk nella RAM (File System). La multiutenza può essere gestita in Time Sharing o mediante distribuzione delle risorse ottimizzata. Il Time Sharing è una tecnica per la quale il sistema operativo distribuisce le risorse per un certo Dt ad ogni utente; la distribuzione delle risorse ottimizzata avviene invece minimizzando il tempo impiegato per l’esecuzione dei programmi e massimizzando l’attività del microprocessore e delle risorse utilizzate contemporaneamente. Un sistema operativo gestisce il rapporto uomo-macchina in realtime (o interattività), quando agisce su input dell’utente, oppure in batch, se esegue azioni anche in assenza dell’utente. Nella multiprogrammazione, un processo può essere iniziato, sospeso, ripreso o terminato. Un processo viene iniziato su ordine del Program Counter e se è atomico non può essere sospeso, altrimenti, soprattutto se è molto lungo, può essere interrotto per dare spazio a processi più urgenti o più brevi: il passaggio tra l’esecuzione di un processo e un altro è detta cambio di contesto. Quando il microprocessore sospende un processo, salva nei registri tutte le informazioni utili affinché possa essere ripreso ed inoltre i dati prodotti da esso fino al momento della sospensione. La tecnica che detta quale processo mandare in esecuzione e quale mettere in attesa è detta sharing; viene applicata dal sistema operativo e tiene in conto la priorità dei singoli processi e dei percorsi (path) da percorre in base alla dipendenza tra i processi in coda. I sistemi operativi moderni contengono anche gli aspetti grafici di sistema ovvero l’interfaccia grafica ad icone. In precedenza gli input partivano da tastiera. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 53 I linguaggi di programmazione comprendono i traduttori e il linguaggio stesso ad alto livello e risiedono sull’hard disk. I sistemi operativi gestiscono la memoria virtuale, estensione virtuale della RAM sull’hard disk che mantiene i dati fino allo svuotamento della RAM vera e propria. La connessione tramite rete si fonda su un’architettura a 7 livelli, standardizzati dal modello OSI, che rappresentano i vari gradi della connessione stessa. In ogni livello vengono svolti compiti e funzioni ben precise ed omogenee. Il modello OSI non specifica l’organizzazione interna o il funzionamento del modello, ma solo il suo comportamento esterno. I 7 livelli sono: 1. 2. 3. 4. 5. 6. 7. PHYSICAL DATA-LINK NETWORK TRANSPORT SESSION PRESENTATION APPLICATION Essi sono posti in ordine gerarchico, dal più basso al più alto. Prima di passare alla descrizione dei 7 livelli, dividiamo le reti in due categorie in base alla dimensione geografica di esse: le reti LAN (Local-Area-Network) sono contenute in spazi relativamente ridotti ed utilizzano hardware specifico; i cavi e le linee di connessione sono di lunghezza ridotta per evitare dispersioni. Le reti WAN (World-Area-Network) sono invece su scala mondiale; la connessione avviene tramite modem connessi alle linee telefoniche. E’ inoltre possibile creare LAN virtuali tra reti remote mediante l’uso di routers, apparecchiature che saranno oggetto di attenzione in seguito. Passiamo alla descrizione dei 7 livelli. Il livello physical governa gli aspetti fisici della connessione quali caratteristiche elettriche e connettori. Si occupa inoltre della conversione A/D e D/A, mediante lo standard RS232C Nel livello data-link, i dati da inviare vengono aggregati per formare dei “pacchetti” detti frames, che vengono corredati delle informazioni necessarie affinché mantengano l’ereditarietà della struttura di provenienza. Infine in questo livello si misura la velocità di trasmissione, ovvero il numero di bit al secondo effettivamente trasmessi. Al livello network vengono specificate le modalità di trasmissione dei pacchetti attraverso la rete e viene stabilito il percorso ottimizzato che dovranno seguire. Il livello transport gestisce la connessione tra applicazioni remote, controlla la dimensione, la sequenza e il flusso dei dati; consente il recupero di eventuali errori introdotti dalla rete mantenendo l’integrità sintattica del messaggio. Il livello session gestisce il dialogo tra gli applicativi (tempo di trasmissione dei dati, ripristino di connessioni interrotte, sicurezza e riservatezza dei dati, riconoscimento del mittente). Nel livello presentation il dato viene adattato al formato richiesto dall’applicazione specifica che lo riceve. pag. 54 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Infine il livello application definisce il sistema operativo della rete e l’applicativo in esecuzione. La connessione viene gestita tramite protocolli di comunicazione che vengono fissati dal software di comunicazione indipendentemente dall’applicazione. Nelle LAN i protocolli di comunicazione sono di tipo Ethernet che garantiscono un elevato grado di sicurezza per i dati. La Novell aveva sviluppato un software di comunicazione che poteva gestire una connessione tra soli due elaboratori. Oggi è stato sostituito da Unix e WinNT. La SCO ha sviluppato una rete Unixware che consente la multiutenza. Nelle LAN con protocolli Ethernet, a livello data-link è molto usato il protocollo CSDMA che si basa sul metodo classico del modulatore-demodulatore di tipo probabilistico (in questi casi vi è probabilità d’errore). Il protocollo CSMA/CD rileva collisioni nell’accesso multiplo di dati. Nelle LAN, a livello data-link, si usano protocolli di tipo token passing che si basa su un metodo deterministico (possibilità d’errore nulla). Nelle reti ad anello con protocollo token ring, il diritto di trasmissione viene passato da una apparecchiatura ad un’altra tramite un “gettone” (token). L’unità che entra in possesso del gettone dispone di un tempo limitato per inviare il suo messaggio, scaduto il quale deve cedere il gettone all’unità successiva. La struttura di una rete di tipo Ethernet è di tipo Client/ Server. Nelle reti di calcolatori entra in gioco il seguente hardware: 1. Scheda di Rete 2. Hub 3. Router 4. Switch 5. Permutatori 6. Cavi Coassiali 7. UTP 8. Plug 9. Prese RJ45 10. Modem Le schede di rete permettono di svolgere funzioni di rete e hanno velocità da 10 a 300 Mbit/sec in base ai cavi usati per la trasmissione (coassiali, fibre ottiche (100), UTP (300)). Sulle schede di rete non c’è RAM (a parte 128 Kb per la gestione della connessione) e quindi esercita solo un controllo di flusso. Per aumentare le prestazioni si possono implementare alcuni Mb di RAM, la Tricom, infatti, produce schede all’avanguardia (300 Mbit/sec) dotate di 4 Mb di RAM. La scheda di rete implementa il livello fisico con la trasmissione dei bit, ha alcune funzioni di controllo tipiche del livello data-link e qualche funzione di indirizzamento. Nel caso di rete client/server sono necessari due tipi di software: il Sistema Operativo del client e quello della rete. Il primo gestisce il flusso di informazioni di ogni stazione verso la rete, elabora le informazioni provenienti dalla rete e alloca le risorse di rete quando è necessario. Per far lavorare una stazione con client è necessario un modulo software, detto driver, che gestisce la scheda di rete all’interno della stazione. Il S.O. client comunica con la rete attraverso questa scheda e il driver agisce da traduttore fra i due. La scheda di rete è inserita all’interno di ogni stazione, sia server sia client, a cui si connette il cavo che collega la stazione alla rete. Oltre ad essere il collegamento fisico con la rete, la scheda prepara i dati per trasmetterli serialmente sul cavo. Ogni scheda di rete è dotata di un indirizzo che viene inviato sul cavo con l’invio di ogni messaggio. Gli hub sono in grado di moltiplicare l’ingresso in più uscite e sono molto utilizzati dagli UTP. L’aumento del numero di linee in uscita dà la possibilità di connettere più nodi della rete locale. Gli hub Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 55 sono bidirezionali e fungono anche da amplificatori di segnale in quanto si affievolisce a causa della distanza. Il numero di linee in uscita può essere 8, 16 o 24; anche se è possibile arrivare a 48 linee in uscita, si preferisce usare più hub in cascata. Il cavo più usato è il cavo coassiale (RG58) con connettore BNC, oppure la fibra ottica ed in tal caso la velocità è di 100 Mbit/sec. Le fibre ottiche trasmettono l’informazione mediante riflessione della luce lungo l’asse per effetto di specchietti che convogliano la luce lungo il cavo mantenendone integre le caratteristiche. La luce viene modulata per portare informazioni di tipo logico; avendo ampia banda di frequenze si usa una modulazione molto ampia per convogliare l’informazione su un unico canale. L’hub compie anche il monitoraggio della rete, che avviene tramite un software, installato sul server, che dà una visione geografica della rete e lo stato di tutti i componenti. Gli standard di monitoraggio usati sono SNMP o R-MON. Il router è un elemento di rete che assicura la distinzione dei canali di comunicazione e il mantenimento degli indirizzi anche in presenza di una linea di comunicazione pubblica. Il router è il nodo della connessione mediante il quale si può connettere due LAN remote in una unica LAN virtuale. Il router inoltre mantiene gli indirizzi fino a che il messaggio è giunto a destinazione. Il protocollo di comunicazione più usato è il TCP/IP che ammette la multisession (possibilità di gestire più canali) a livello session. Ogni nodo della rete ha un indirizzo IP che va richiamato per attivare la comunicazione; ogni risorsa del nodo è a sua volta dotata di un indirizzo. Nelle reti WAN l’indirizzo di una risorsa è più complesso ed è formato da dominio e sottodominio. Lo switch serve per il sezionamento fisico e di software dei rami di una rete su comando del server: praticamente accende alcuni rami al fine di ottimizzare i flussi di dati verso la destinazione ignorando i client posti nella parte disattivata. I cavi UTP (dal nome della norma CEE che li ha standardizzati) sono costituiti da fili di rame intrecciati uno intorno all’altro, per ridurre le interferenze elettromagnetiche, e isolati da una guaina. E’ preferibile non superare il metro di lunghezza. Descriviamo adesso la topografia di una rete Ethernet. Supponiamo di voler servire un edificio con una LAN e collegarla alla LAN di un altro edificio. Ad ogni piano viene posto un transceiver ovvero un trasduttore tra la rete elettrica e la fibra ottica che trasmette i dati tra i piani; su ogni piano vi sono poi un hub per stanza che gestiscono tutti gli elaboratori pag. 56 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo del piano stesso. Un cavo dorsale collega i piani al server, posto a piano terra, prima del quale è posizionato uno switch. Il server è collegato tramite linea telefonica o ISDN al server dell’altro edificio. In ogni rete Ethernet viene posto un armadio permutatore che contiene tutti gli elementi della rete ed un insieme (pitch panel) di prese di uscita e connettori; per i transceiver abbiamo sezione apposita dell’armadio permutatore, in quanto essi sono delicati ed anche lo spostamento del cavo può creare disfunzioni. La velocità di una rete è di 10 Mbit/sec con cavi coassiali, di 100 Mbit/sec con fibre ottiche standard e di 300 Mbit/sec con cavi UTP e dipende anche dalla scheda di rete. Tutte le componenti passive (cavi, prese, connettori) di alta qualità sono standardizzate dalla categoria 5 che assicura la minimizzazione degli assorbimenti nelle connessioni anche ad alte velocità. PROGETTO DI UN SISTEMA DI ELABORAZIONE: Per fare il progetto di un sistema di elaborazione sono necessarie competenze diverse: - ANALISTA - PROGRAMMATORE - SISTEMISTA - INTEGRATORE DI SISTEMA (o DI RETE) Analista Per progettare un sistema di elaborazione bisogna partire da un sistema informativo ovvero da un sistema in cui esistono delle informazioni da elaborare (teoricamente dovrebbe essere conservativo: dovrebbe contenere tutte e sole le informazioni necessarie). L’analista deve individuare tutti i tipi di dati (e se necessario creare dei nuovi tipi) e organizzarli in tabelle; deve individuare tutte le variabili; deve rappresentare tutte le esigenze dell’utente; deve tener conto della descrizione del problema, delle esigenze logistiche: numero e posizione di risorse indispensabili o esplicitamente richieste dall’utente, vincoli spaziali, … La strutturazione logica del problema consiste nella sua rappresentazione logica mediante l’uso di connettivi logici e enunciati; vengono utilizzate le regole referenziali standard (reti di Petri, ..) e altre sono create. Alla fine di questa fase abbiamo conseguito: - tabelle e tipi di dati - elenco di variabili e parametri - elenco delle esigenze logistiche - strutturazione del problema Programmatore La strutturazione logica del problema viene passata al programmatore che si occupa della realizzazione dei software applicativi dopo avere scelto gli opportuni linguaggi. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 57 Sistemista Si occupa di definire l’architettura del sistema: è il primo modo per individuare i nodi elaborativi (quanti e quali) tramite: 1. decomposizione gerarchica del sistema informativo (TOP-DOWN) che è descritta dall’albero delle priorità: alla radice dell’albero c’è l’elenco delle risorse richieste dall’utente e dalle applicazioni (sia hardware che software) 2. rappresentazione grafica: questa struttura viene rappresentata mediante grafi che indicano le varie connessioni. Alberi e grafi danno una prima idea di come individuare i nodi elaborativi (stanno nelle zone dove ci sono forti legami tra applicativi diversi). Si passa poi alla fase hardware con la definizione dei nodi elaborativi: questi devono essere progettati separatamente stabilendo, per prima cosa, la necessità di memoria di massa e la sua dimensione (dipende dalla scelta del sistema operativo, dei linguaggi necessari, del software di base, degli applicativi, il tempo di permanenza dei dati: il numero di byte calcolato va moltiplicato per 3 e ancora per 2 nel caso si ha un RAID), successivamente si definisce numero e il tipo dei processori a seconda che il nodo funga da server, PC, …. Per stabilire il numero di processori si calcola il numero di microistruzioni relative ai programmi eseguiti contemporaneamente e quindi il tempo di elaborazione: se il risultato è inaccettabile si aumenta il numero di processori. La cache, di norma, è vincolata al tipo di processore scelto, ma può essere conveniente usare una cache grande se il volume dei dati è molto elevato e per questo motivo talvolta si sceglie di passare ad una classe di macchine superiore. La scelta della RAM tiene conto dei processi elaborativi contemporaneamente eseguiti nel nodo (l’obiettivo è la copertura del 100%, ma ci si può accontentare del 50-60%). Poi si sceglie l’I/O e, per questo, si considerano le periferiche richieste dall’utente o necessarie; le periferiche che scambiano grandi quantità di dati necessitano di USB o porte parallele, altrimenti si usano porte seriali. Quindi nella fase hardware sono operate: - definizione nodi elaborativi - descrizione macchine e hardware per ciascun nodo Integratore di Sistema Si occupa di collegare i nodi elaborativi in una rete dotata eventualmente di modem per il collegamento esterno. pag. 58 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo STANDARDIZZAZIONE: La standardizzazione è la disciplina che si occupa di regolare tutte le norme di tipo tecnico alle quali tutti i prodotti devono sottostare e si divide in standard de jure (giudizio di esperti globali) e standard de facto (accordi tra le case produttrici). La standardizzazione è suddivisa in 3 livelli gerarchici in ordine di estensione geografica: - organismi internazionali (1) - organismi continentali - organismi nazionali 1. ISO SCIA IEC CCITT IEEE (2) (3) (International Standard Organization) (comitato per l’automazione industriale) (comitato internazionale elettrico) (poste e telecomunicazioni) (International Electrical Elettronic Engineers, protocolli di basso livello) 2. CEN (Comitato Norme Europee, interfacce) CENELEC (ramo elettrico del CEN) EUROPROJECT (progetti da cui è nato ESPRIT: generatore automatico di modelli) ENV 3. UNI CEI (Unione Nazionale Industriali) (Comitato Elettrotecnico Italiano) La standardizzazione si occupa dei prodotti (dalla struttura alle specifiche tecniche) e genera norme in base a determinati principi come : - regole di mercato - leggi politiche - scelte economiche - tutela del consumatore Gli organismi emettono delle resolution (come risultato finale dell’attività di standardizzazione) che vengono scritte su libri detti issue e che possono o meno essere adottate dalle singole nazioni; ad esempio: ISO 9000 ISO 9001 ISO 9002 ISO 9003 ISO 9004 (garantisce la qualità aziendale dei prodotti) (garantisce la qualità dei progetti, costruzione, manutenzione, vendita, dismissione) (stessa finalità dell’ISO 9001, ma non si occupa dei progetti) (si occupa dell’assistenza) (si occupa dello sviluppo dei software) Iso: L’ISO si suddivide in tre livelli gerarchici: - Comitati Tecnici - SottoComitati - Work Groups (TC) : coordinamento amministrativo (SC) : coordinamento attività tecnico-scientifiche (WG): attività tecnico-scientifiche Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 59 I principali comitati tecnici nel campo informatico sono il JTCI e TC-184 che si occupa delle applicazioni informatiche all’industria e di cui esaminiamo la gerarchia: 1. TC-184 2. ADG (Advanced Group) 3. WG5 (sicurezza) 4. SC1, SC2, SC3, SC4, SC5 I vari sottocomitati si dividono a loro volta in working groups dei quali diamo una breve descrizione: 1. SC1: Controllo dei dispositivi fisici (physical device control) - WG1 : macchine a controllo numerico (Vocabolari: generatore di termini) - WG2 : dati per le macchine a controllo numerico - WG3 : sicurezza di rete - WG4 : linguaggi di programmazione - WG5 : controllo dei sistemi di visione - WG6 : interconnessione di tutte le fabbriche in un’unica rete e definizione della macchina virtuale di interfaccia tra prodotto e rete - WG7 : applicazione di STEP alle macchine a controllo numerico 2. SC2: Robot (robot manufactoring) - WG1 : coordinamento e movimento dei bracci di un robot - WG2 : performance evolution (prestazioni) - WG3 : sicurezza dei robot - WG4 : linguaggi di programmazione; ci sono due linee di standardizzazione: a) ICR (Intermediate Code for Robots: scambio dati tra robot e programmatore) b) PLR (Programming Language for Robots: interfaccia utente/controllo del robot) - WG5 : vocabulary - WG6 : CSMMS (ha terminato il suo lavoro) 3. SC3: Aveva il mandato di sviluppare un ambiente di programmazione unico per qualunque sistema all’interno di una fabbrica ed ancora non ha completato il suo mandato (è arrivato al MAPLE). 4. SC4: STandard of Exchange of Product (STEP) 5. SC5: Architectured and Communication problems - WG1 : modelli e loro integrazione (è stato sviluppato SFPM: Short Floor Product Model che è il piano base di una fabbrica ed esistono anche documenti di description come il FAM: modello generale di una fabbrica; si sta lavorando anche sul CIM: Computer Integrated Manufactoring, che si dedica all’integrazione all’interno di una fabbrica con sistemi di automazione) - WG2 : comunicazione nella fabbrica - WG3 : sicurezza (ormai annullato perché le sue funzionalità sono state assorbite da WG5 ad alto livello) - WG4 : linguaggi di programmazione - WG5 : vocabulary Parliamo ora più approfonditamente del SC5-WG1: il primo risultato già standardizzato come description (modello di descrizione), ma non come CD (risultato definitivo di un WG), è stato il FAM pag. 60 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo (Factory Automation Model). Esaminiamo i livelli funzionali di FAM dal più basso al più alto: a) Equipment : include robot e macchine a controllo numerico e a PLC (Programming Logic Control) per il materiale grezzo. b) Station : stazione di controllo di produzione al computer (calcolatori posti in rete LAN e work station per il controllo) c) Cell : definisce le celle di lavoro sul piano base d) Plant : definisce impianti e materiali per la produzione (tiene in considerazione solo tre elementi: materiali, controllo e informazione) e) Facility : si occupa del passaggio tra parte finanziaria-gestionale (definizione del budget) e parte progettuale; da qui nasce la gestione dei progetti al computer come CAD (progetto) e CAM (produzione) tra le quali c’è la fase di STEP f) Enterprise : si occupa del livello finanziario-gestionale I livelli funzionali dall’ Equipment al Cell è descritto dallo standard detto SPFM, oltre non si è potuto andare perché, mentre i primi tre livelli hanno programmi di gestione omogenei per l’automazione delle celle di lavoro, gli ultimi livelli hanno programmi disomogenei: il problema da affrontare è soprattutto la diversità dei tempi di elaborazione: - livelli di produzione: tempi critici - livelli Plant e Facility tempi non molto critici - livello Enterprise cambiano addirittura i programmi Queste differenze non hanno permesso la compilazione di uno standard unico e comprensivo di tutti e sei i livelli. Computer in industry: Software Standardization Integrating Industrial Automation System Il lavoro dell’organizzazione di standardizzazione internazionale ha già dato risultati che presto saranno utilizzati da fabbricanti, rivenditori e utenti di sistemi di automazione industriale. Sulla base del lavoro svolto dal TC-184 si evidenziano i seguenti standard: STEP, MAPLE, ICR e PLR. Negli ultimi anni, le rigide linee di produzione industriale sono state trasformate in sistemi automatizzati più flessibili: questo tipo di produzione è assistito completamente dai computer dalla fase progettuale alla spedizione finale del prodotto finito attraverso tutti gli stadi della produzione; questo sistema si chiama CIM (Computer Integrated Manufactoring). Parliamo ora dello STEP: si tratta di uno standard per la rappresentazione e lo scambio dei dati di un qualunque stadio del processo produttivo durante tutta la vita media del prodotto (gestisce dati attinenti alla descrizione e allo scambio informativo con applicazioni e programmi diversi senza l’intervento umano); si vuole anche implementare database e archivi riguardanti la fabbrica. Il suo intento, non ancora raggiunto, è quello di creare un modello di prodotto standard che opra, oltre a tutte le fasi della produzione, anche tutti gli aspetti esterni al prodotto (marketing, aspetti amministrativi, …). L’obiettivo è, quindi, un software unico e un database che rappresentino l’intera azienda e in cui si inseriscano, in qualunque momento, tutti i programmi di tutte le fasi produttive: linguaggi come il C consentono di dialogare con lo standard STEP. Il linguaggio di programmazione usato nello standard STEP è l’express (di tipo dichiarativo) ed il Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 61 lavoro viene effettuato in tre parti: 1. Definizione delle proprietà dei materiali 2. Rappresentazione delle proprietà dei materiali 3. Misure qualificanti del prodotto (si effettuano test) Un giorno un dischetto accompagnerà ogni prodotto e ne fornirà informazioni in maniera estremamente dettagliata e obiettiva. SPECIFICHE DEI COMPUTER: I computer si suddividono in: • • • • • • • Home Computer Personal Computer Server Mini-Computer Computer Di Media Dimensione Computer Di Grande Dimensione Super-Computer Home computer: Sono i computer come i Commodore, Amiga, …: dotati di frequenza molto alta per gestire la grafica; spesso erano solo a nastro: questo scaricava il programma sulla piccola RAM da dove il programma veniva eseguito. Personal computer (stand alone, client): Numero di microprocessori: 1-2 Tipo di microprocessore: CISC (Pentium, AMD, Motorola, Cyrix) Frequenza del microprocessore: 733 MHz – 1,46 GHz (poco stabile oltre 1 GHz) Parallelismo del microprocessore: 32 bit (coincide con quello della scheda madre) Memoria cache: 128 Kb – 512 Kb (di tipo flash) Memoria RAM: 64 Mb – 512 Mb, 100 – 133 MHz, tipo DIMM Interfaccia di I/O: 2 porte seriali, 1 parallela, 2 USB (tecn. CMOS o TTL) Slot della scheda madre (controller): UDMA che gestisce da 2-4 tra HD, … PCI (4) che gestisce scheda audio, acc. grafici, modem,… VGA che ormai potrebbe non esserci più AGP (1) che si occupa di grafica ISA (1) SCSI (1) Hard disk: 10 – 40 Gb (EIDE), 9 – 18 – 32 Gb (SCSI), 5400, 7200, 10000 rpm Zip: 100 – 250 Mb Memorie ottiche: CD-ROM, DVD, ... Audio: scheda audio a 64 – 128 bit Altoparlanti: 60 – 450 Watt Scheda video: 8 – 64 Mb Scheda di rete: Ethernet, Token Ring pag. 62 Appunti di Calcolatori Elettronici I - © A.Buscarino D. Lombardo Modem: interno o esterno, 56 K – 128 K (ISDN) Server: Si può considerare sia una estensione dei PC sia appartenente alla classe dei mini-computer. Numero di microprocessori: 2-4 Tipo di microprocessore: CISC (pentium, athlon, xeon) – RISC (aix, dec) Frequenza del microprocessore: 1 GHz – 1,5 GHz Parallelismo del microprocessore: 64 bit per i RISC 32 bit per i CISC Memoria cache: 1 Mb – 8 Mb per i dati, 128 Kb – 512 Kb per le istruzioni Memoria RAM: 128 Mb – 2 Gb Interfaccia di I/O: 2 porte seriali, 2 parallele, 2 USB Hard disk: 2-4 unità da 40 Gb Scheda grafica: 32 – 64 Mb Memorie ottiche: DVD con masterizzatore Streaming tape: DAT (16-32 Gb) Scheda di rete: da 10 a 100 Mbit/sec, le ultime raggiungono 300 Mbit/sec con una memoria da 32 a 128 Mb Modem: interno o esterno, 56 K – 128 K (ISDN) Mini-Computer Numero di microprocessori: Tipo di microprocessore: Frequenza del microprocessore: Parallelismo del microprocessore: Memoria cache: Memoria RAM: Interfaccia di I/O: Hard disk: Scheda grafica: Memorie ottiche: Streaming tape: Scheda di rete: 2-16 RISC 1,8 GHz 64 bit per i RISC 16 Mb per i dati, 128 Kb – 512 Kb per le istruzioni 256 Mb – 4 Gb 100 porte seriali, 4 parallele, USB non è ancora in uso da 60 Gb a 160 Tb alto livello usate per editing (digitalizzazione di immagini video) ed editoria. DAT (16-32 Gb) Ethernet e Token Ring Computer di Medie Dimensioni Sono dotati di mainframe che permette di far lavorare in parallelo tante mainboard, tipiche dei mini-computer. I Sistemi a Cluster fanno sì che due mainboard si scambino contemporaneamente dati, RAM e HD con gli stessi permessi e priorità (quindi è una condivisione completa). Per rendere ciò possibile ci si serve di un sistema operativo complesso che è proprietario della casa e molto diverso da Windows o Unix. Il sistema di memorie di massa è gestito in modo distribuito. Queste macchine sono usate da enti territoriali di grandi dimensioni anche nazionali. Appunti di Calcolatori Elettronici I - © D. Lombardo - A.Buscarino pag. 63 Computer di Grandi Dimensioni: Vengono utilizzati da strutture scientifiche di grandi dimensioni (URSS, New Mexico). Sono una estensione dei computer di medie dimensioni ottenuti massimizzando il numero di mainframe fino a crearne delle reti. SuperComputer: Se ne trova una al Pentagono sono utilizzati da enti militari. Si sta sperimentando la trasmissione ottica per velocizzare lo scambio dei dati. Sono sistemi che adottano parallelismi altissimi.