Preview only show first 10 pages with watermark. For full document please download

Ugp01 - Informamica.it

   EMBED


Share

Transcript

UNITÀ DI GOVERNO PROGRAMMABILI (1) G E N E R A L I T À Col termine UNITÀ DI GOVERNO PROGRAMMABILE (UGP) si intende una macchina in grado di elaborare informazioni in modo automatico eseguendo una serie di istruzioni o comandi ed operazioni logiche od aritmetiche anche complesse su dati di ingresso per fornire dati in uscita tramite appositi dispositivi. Per semplicità pratica, una UGP verrà identificata come un Elaboratore Elettronico. In prima istanza, un classico schema generale di elaboratore elettronico, o meglio di un Sistema di Elaborazione Dati (SED), rappresentato a livello di blocchi logico-funzionali principali, è mostrato nelle slides UGP01 e UGP02. Gli elementi basilari costituenti un SED sono i seguenti:  UNITÀ DI CONTROLLO  UNITÀ DI CALCOLO  UNITÀ DI MEMORIA CENTRALE  UNITÀ DI INPUT/OUTPUT - DISPOSITIVI DI I/O - MEMORIE PERIFERICHE O DI O DI GOVERNO ELABORAZIONE O PRINCIPALE CU-CONTROL UNIT ALU-ARITHMETIC-LOGIC UNIT CM-CENTRAL MEMORY I/O UNITS O SECONDARIE (MSS-MASS STORAGE SYSTEM) Diamo ora una prima descrizione delle unità costituenti un SED, rinviando al seguito per approfondimenti. CU (CONTROL UNIT) È l'unità di governo del sistema, la quale soprassiede alla gestione ed al coordinamento delle operazioni di trasferimento, elaborazione, sincronizzazione e tempificazione delle informazioni in generale (codificate in segnali per DATI, INDIRIZZI e CONTROLLI) ed alla esecuzione delle istruzioni di programma. In pratica, la CU gestisce funzioni e flussi riguardanti l'intero sistema, assicurandone un corretto ed efficiente funzionamento, sia delle parti interne che delle unità esterne. ALU (Arithmetic-Logic Unit) È l'unità di calcolo del sistema, preposta allo svolgimento di operazioni sia aritmetiche che logiche. CPU-Central Process Unit I blocchi CU ed ALU si pensano in genere raggruppati nella unità chiamata CPU (Unità Centrale di Elaborazione o Central Processor), ciò perché dal punto di vista prettamente circuitale non sempre è facile separare nettamente le loro funzioni, potendo la CU interagire con la ALU per svolgere taluni compiti (p.es. calcolo e preparazione degli indirizzi). prof. Felice Zampini Unità di Governo Programmabili (1) 1/15 CM (Central Memory) È l'unità di memoria del sistema, cioè la sede in cui vengono mantenute le informazioni (DATI e PROGRAMMI). Nella dispensa Informazioni e Macchine sono stati sviluppati i concetti più importanti inerenti la codifica binaria dell’informazione e la memoria, descriveremo quindi le caratteristiche della CM per punti sintetici, completandone la trattazione. La slide UGP03 fornisce alcune utili illustrazioni.  Le unità elementari di memoria sono costituite da dispositivi di tipo bistabile realizzati in tecnologia microelettronica.  Ogni unità elementare è rappresentata in logica binaria tramite un’entità chiamata BIT, che è assunta quale unità elementare di informazione codificata.  La cella elementare di memoria (utile per codificare i caratteri dell’alfabeto umano) è rappresentata dal BYTE, un insieme contiguo di 8 bit configurabili in 28=256 modi distinti (per altrettante possibili codifiche).  I principali codici binari alfanumerici sono i codici: ASCII (7 o 8 bit), EBCDIC (8 bit), ISO (7 bit).  Le operazioni effettuabili su una memoria sono quelle di READ e WRITE (la Write è un’operazione “distruttiva”, nel senso che il precedente contenuto viene perduto).  Per questioni di efficienza, la memoria è organizzata in unità logiche informative (locazioni) multiple del byte chiamate WORD, tipicamente delle dimensioni di 1, 2, 4 o 8 byte contigui (una Word è l’unità informativa gestibile con una singola operazione elementare di memoria o di trasferimento dati).  Ad ogni locazione di memoria (byte o word) corrisponde un INDIRIZZO ed un CONTENUTO.  La CM è una memoria di tipo VOLATILE: se su un circuito di memoria viene a mancare l’alimentazione elettrica le informazioni memorizzate vanno perdute (memoria RAM).  La CM è una memoria ad ACCESSO CASUALE (RAM): ogni byte (o word) è accessibile in modo selettivo ed indipendente. Siccome tutte le informazioni coinvolte nelle elaborazioni devono in qualche modo risiedere o transitare nella CM, in modo che l’elaboratore possa farsene una rappresentazione interna, per poter utilizzare un programma fatto dall’utente (tramite il quale si sfrutta la programmabilità della macchina per sviluppare le applicazioni) occorre che in CM siano presenti:  Il PROGRAMMA APPLICATIVO (in formato eseguibile)  I DATI necessari alle elaborazioni  Il NUCLEO DEL SISTEMA OPERATIVO  Appositi PROGRAMMI DI SISTEMA necessari per svolgere talune sue funzioni interne. prof. Felice Zampini Unità di Governo Programmabili (1) 2/15 Tali elementi sono allocati in determinate aree di memoria sotto la supervisione del Sistema Operativo (oltre che della CPU e dei programmi di sistema). Presto vedremo come sia possibile una gestione differenziata degli elementi suddetti introducendo diverse Architetture dei sistemi. I/O Units Le unità di Input/Output sono le componenti del sistema che consentono la comunicazione tra mondo esterno e sistema, cioè l’interscambio di informazioni tra l’elaboratore e le attrezzature ad esso connettibili (tastiera, video, modem, convertitori di segnali, ecc.). Le unità di I/O si collegano alle unità esterne, le più tipiche delle quali sono chiamate PERIFERICHE, tramite apposite INTERFACCE hardware e/o software atte a garantirne il regolare funzionamento. In particolare, le memorie esterne del sistema (memorie permanenti ad elevata capacità) sono chiamate Memorie di Massa (MSS-Mass Storage System), le più comuni delle quali sono i dischi e i nastri magnetici e i dischi ottici. Le memorie a nastro sono ad ACCESSO SEQUENZIALE, le memorie a disco sono ad ACCESSO DIRETTO (DASD-DIRECT ACCESS STORAGE DEVICE). Segue una lista dei dispositivi di I/O più comuni. Dispositivi di Input - Tastiera (standard input) - Mouse - Tavoletta grafica - Scanner e lettori ottici - Touch-screen - Joystick e simili - Microfono - Fotocamera digitale Dispositivi di Output - Video (standard output) - Stampante - Plotter - Altoparlante Dispositivi di I/O - Disco magnetico - Nastro magnetico - Disco ottico - Modem La slide UGP04 rappresenta alcuni dispositivi di I/O. Le tradizionali Interfacce di cui sono dotati gli attuali elaboratori (PC) sono le seguenti (tra parentesi i dispositivi comunemente connessi ad esse): - Interfaccia Seriale (mouse, tablet, modem, scanner, fax) - Interfaccia Parallela (printer, plotter) - Scheda Grafica (video) - Scheda Sonora (microfono, altoparlante) - USB (Universal Serial Bus, dispositivi USB) Altre attrezzature elettroniche consentono di collegare l’elaboratore con telecamere e videoregistratori, televisioni, fotounità, macchine soggette al controllo di processo e via dicendo. Per talune interface (seriale, parallela, USB) si usa spesso il termine PORTA. prof. Felice Zampini Unità di Governo Programmabili (1) 3/15 Una periferica è spesso referenziata col termine DRIVE, siccome ogni drive deve essere gestito da un apposito programma allora il software di gestione di una periferica si chiama DRIVER. CLOCK È il segnale rispetto al quale si cadenzano le operazioni del sistema, segnale (generato da un oscillatore, quale un quarzo, ed appositamente gestito) che costituisce la base dei tempi dell'elaboratore (che è una macchina sincrona), determinandone, unitamente ai circuiti di timing, sincronismi e temporizzazioni. Spesso, nei computer di più moderna concezione, le funzioni di clock e di timing sono incorporate nella CPU. Il clock è un segnale digitale di tipo periodico di frequenza opportuna (da mettere in relazione con le caratteristiche temporali dei componenti elettronici della CPU) che varia continuamente dallo stato logico 0 allo stato logico 1 (0->1 fronte di salita, 1->0 fronte di discesa). Tale segnale è disponibile su un pin della CPU (o nell'eventuale circuito di timing esterno) per l'hardware esterno e l'attivazione delle operazioni macchina può avere inizio dall'istante di transizione di stato del clock (fronte di salita e segnale stabile allo stato logico 1) e durare per un numero intero di cicli di clock (cioè di periodi T). La frequenza di clock di un elaboratore è pertanto un indicatore fondamentale circa la “velocità” con cui il sistema è in grado di operare. Le attuali tecnologie dei PC utilizzano frequenze di clock impensabili fino a qualche anno fa (1.5GHz e superiori). Per avere un’idea concreta si consideri che, p.es., un Pentium IV con f=1GHz è teoricamente in grado di eseguire un’istruzione elementare in tempi dell’ordine di qualche T = 1/f = 1*10-9s = 1s (miliardesimi di secondo). La slide UGP05 sintetizza i concetti fondamentali esposti in merito alle Unità di Governo Programmabili. sin qui Concretamente, un elaboratore consiste in un sistema interconnesso di circuiti e sottosistemi elettronici implementato su un’apposita scheda o piastra chiamata Scheda Madre o MOTHERBOARD (o anche System Board). La slide UGP06 illustra 2 motherboard (quella in basso è la recente ASUS A7N266). La motherboard viene alloggiata in un contenitore, chiamato CASE (o pure Chassis, Cabinet), unitamente ad alcuni altri dispositivi periferici (unità disco), montati direttamente sul case per motivi di efficienza e di compattezza. La motherboard è in grado di comunicare con altre schede elettroniche e con l’esterno tramite apposite fessure denominate SLOT DI ESPANSIONE e appositi circuiti di interfaccia (PORTE DI COMUNICAZIONE), inoltre prevede Pins e Jumpers per montare o aggiornare componenti particolari e configurare le funzioni di sistema. Segue una breve descrizione di alcuni elementi di interesse (approfondimenti nel seguito). prof. Felice Zampini Unità di Governo Programmabili (1) 4/15 Case Tipologie base: Desktop (orizzontale), Tower (verticale). Motherboard Il tipo di scheda madre è caratterizzato dal CHIPSET (chip di gestione I/O di ogni singolo componente). Un attuale e diffuso formato si chiama ATX. CPU (Central Process Unit) La CPU (più precisamente il Microprocessore, suo corrispettivo tecnologico) può essere alloggiata in uno Slot (fessura) o in un Socket (alloggiamento) e, a seconda del tipo, è supportata da corrispondenti schede madri. Un componente importante per ottimizzare e velocizzare le operazioni di trasferimento tra processore e memoria è la CACHE MEMORY, una memoria limitata (256K, 512K) di tipo RAM ma veloce che viene interposta tra processore e memoria centrale. Si parla di cache di primo livello se essa è integrata nel processore, eventualmente suddivisa in 2 per gestire dati ed istruzioni, altrimenti la cache viene detta di secondo livello (cache sulla scheda madre o soluzioni particolari). Per svolgere i suoi compiti la CPU si avvale di particolari memorie interne veloci e di piccole dimensioni (adatte per ospitare momentaneamente dati ed istruzioni del programma) chiamate REGISTRI. Le prestazioni di una CPU sono fortemente influenzate dal numero e tipo di registri in essa presenti. Per il microprocessore deve inoltre essere previsto un apposito Dissipatore di Calore onde evitarne l’eccessivo surriscaldamento. FPU (Floating Point Unit) La FPU è un controllore specializzato per operazioni in virgola mobile, particolarmente importante per velocizzare le operazioni negli ambienti grafici interattivi dei moderni sistemi operativi. Slot di Espansione e Connessioni Le principali tecnologie sono (in neretto le più utilizzate): - PCI (Peripheral Component Interconnect) - AGP (Accelerated Graphics Port) - USB (Universal Serial Bus) - ISA (Industry Standard Architecture) - EISA (Extended Industry Standard Architecture) - SCSI (Small Computer System Interface) - MCA (Microchannel Architecture) - VESA (Video Electronics Standards Association) e VL-Bus - Porta seriale - Porta parallela - Porte specifiche (tastiera, eventualmente mouse, tablet) RAM (Random Access Memory) I moduli di memoria RAM attualmente più in uso sono i DIMM (Dual In-Line Memory Modules), versione più evoluta dei SIMM (Single In-Line Memory Modules). BIOS (Basic I/O System) Il BIOS (vedi seguito) è un chip microprogrammato riscrivibile (flash BIOS), quindi aggiornabile, contenente programmi necessari per avviare il sistema e gestire le operazioni di I/O fondamentali. CMOS Chip di memoria che mantiene le informazioni inerenti la configurazione (hardware) del sistema. È riconfigurabile e va alimentato dalla batteria interna per poter conservare le registrazioni in modo permanente. Batteria interna Batteria di lunga durata (qualche anno) per mantenere talune funzioni del sistema che necessitano di (una debole) alimentazione (p.es. orologio, CMOS). Altri Elementi Ventola Alimentatore/Trasformatore ed eventuale Stabilizzatore Clock (integrato o meno nel microprocessore e problematiche di Overclock) prof. Felice Zampini Unità di Governo Programmabili (1) 5/15 A R C H I T E T T U R E D I B A S E Col termine ARCHITETTURA, riferito ad un elaboratore elettronico, si intende le modalità secondo le quali si interconnettono ed operano le sue varie unità ed i flussi informativi tra di esse, o, più semplicemente, il modo di operare dell'Hardware e del Software dell'elaboratore per fornire i servizi e le prestazioni richieste. Al presente livello di dettaglio, in cui l'elaboratore è stato schematizzato secondo macroscopici blocchi logico-funzionali, si introdurranno 2 architetture di base tradizionali, essenzialmente individuabili in base alle relazioni strutturali e funzionali secondo le quali si differenziano e si interconnettono tali blocchi macroscopici (CU, ALU, Memoria, I/O). Altre architetture ed approfondimenti si vedranno nel seguito. La slide UGP07 schematizza le suddette 2 architetture, le quali sono denominate:  ARCHITETTURA VON NEUMANN (DALL’OMONIMO  ARCHITETTURA HARWARD (DALL’OMONIMA SCIENZIATO TEDESCO) UNIVERSITÀ AMERICANA) Diamo alcune semplici delucidazioni (che approfondiremo nel seguito) circa le 2 architetture, sostanzialmente differenti in relazione alle funzioni delle memorie interne, richiamando l’attenzione sul fatto che, come già visto, in memoria devono essere presenti: - il PROGRAMMA UTENTE - i DATI - il NUCLEO DEL SO - i PROGRAMMI DI SISTEMA, necessari per poter espletare certe FUNZIONI INTERNE della macchina, le quali, congiuntamente con la CU, consentono di eseguire le istruzioni del programma ed i comandi di sistema. È proprio in base alle modalità secondo le quali vengono espletate tali funzioni interne che si possono avere talune differenziazioni architetturali dei sistemi. Architettura Von Neumann In un elaboratore secondo la schematizzazione di Von Neumann (che è storicamente quella che ha dato origine agli elaboratori e la maggiormente implementata nelle classi medio-grandi di elaboratori) si ha un'unica memoria, in cui convivono dati ed istruzioni (programmi utente e di sistema); l’espletamento delle funzioni interne dipende dal contenuto di tale memoria e dalla CPU. In tale architettura, avendosi una memoria comune (Common Memory), i programmi possono essere trattati (dalla CPU) come se fossero dati, nel senso che le word per dati ed istruzioni hanno formati compatibili, ciò che semplifica la gestione delle informazioni, anche nei confronti delle unità di I/O, pur comportando eventuali sovradimensionamenti della memoria complessiva del sistema (da notare che i costi delle memorie sono in calo col progredire delle nuove tecnologie). prof. Felice Zampini Unità di Governo Programmabili (1) 6/15 Architettura Harward Nella cosiddetta architettura di Harward (più idonea microcomputers e PC) sono previsti 2 tipi di memorie interne: per  Una memoria di tipo RAM (Random Access Memory), volatile, predisposta per contenere il programma utente ed i dati, cioè una memoria programmabile, per così dire, dall’esterno. Tale memoria è in pratica la Central Memory e viene chiamata Memoria Utente o anche Memoria di Lavoro o Memoria Dati.  Una memoria di tipo ROM (Read Only Memory), permanente, in cui sono MICROPROGRAMMATE le funzioni interne espletabili dalla macchina per eseguire le istruzioni del programma sotto il governo della CPU. Tale memoria viene chiamata Memoria di Sistema o anche Memoria di Programma o Memoria Istruzioni (ove i termini ”programma” ed “istruzioni” non vanno confusi con le istruzioni ed il programma utente, in quanto relativi ai microprogrammi interni codificati nella ROM). Nell'architettura di Harward la separazione, fisica e concettuale, tra memoria utente e memoria di sistema consente di ottimizzare il dimensionamento della memoria complessiva del sistema (programmi utente e microprogrammi possono avere diversi formati, allineabili con le rispettive memorie), complicando però la gestione ed il trasferimento delle informazioni (si noti che in tale architettura la CU interagisce sia con l'ALU che con la memoria di sistema). Quale esempio di memoria di sistema si consideri la ROM di un PC in cui sia registrato il BIOS (Basic I/O System). Un vantaggio dell’architettura Harward consiste nell’avere le funzioni di sistema a bordo dell’elaboratore (e protette in quanto in ROM), il quale può così essere predisposto automaticamente all’uso senza il bisogno di particolari procedure di inizializzazione. Nota: Memorie ROM e RAM Le ROM sono particolari memorie interne del microcomputer che contengono i microprogrammi necessari per far espletare alla macchina quelle funzioni interne che, sotto il controllo della CU, realizzano l’esecuzione delle istruzioni. Le ROM sono memorie non volatili ad accesso diretto ma le relative tecnologie implementative sono diverse da quelle delle RAM. Rimandando per ulteriori approfondimenti alla sezione dedicata alle MEMORIE, per ora giova premettere che le soluzioni FIRMWARE rappresentate dalle ROM (logica programmata) si sono estese a tutta una famiglia di memorie similari, denominate: - PROM Programmable ROM - EPROM Erasable PROM - EEPROM Electrically EPROM - EAROM Electrically Alterable ROM In particolare, le memorie di tipo EAROM (in quanto alterabili elettricamente in modo selettivo) vengono installate nei microcomputer ed impiegate per memorizzare le informazioni concernenti la configurazione del sistema e similari e sono aggiornabili dall’utente semplicemente tramite tastiera. Per le RAM si hanno le seguenti tipologie (oltre alle SIMM e DIMM): - SRAM Static RAM - DRAM Dynamic RAM - SDRAM Synchronous DRAM - EDO RAM Extended Data Out RAM - VRAM Video RAM - ECC Error-Correcting Code prof. Felice Zampini Unità di Governo Programmabili (1) 7/15 CLASSIFICAZIONE DEGLI ELABORATORI ELETTRONICI Gli elaboratori elettronici possono essere ripartiti in diverse categorie, a seconda di diversi fattori quali: potenza, capacità, tecnologia, architettura, versatilità, impieghi, ecc. Per l'attuale generazione di elaboratori (siamo alla quarta e si va verso la quinta, annunciata come quella dell'interazione globale uomo-macchina), una tradizionale quanto generica classificazione è la seguente: - Home Computer - Personal Computer (PC) & Microcomputer (µC) - Minicomputer & Supermini - Small system & Intermediate system - Mainframe & Super Mainframe - Special system Vista la particolare e crescente importanza dei Microcomputer (o di sistemi equivalenti, quali i PC), che tra l’altro costituiscono i sistemi disponibili nei laboratori scolastici, premettiamo alcune definizioni e considerazioni circa tali sistemi, basati sul Microprocessore (µP). MICROPROCESSORE Circuito (tecnologia VLSI) che realizza su uno o più CHIP una completa CPU; in genere col termine microprocessore si intende una CPU realizzata su di un unico chip integrato comprendente sia l'unità di calcolo che di microprogramma, ciò che costituisce la differenza rispetto alle CPU degli elaboratori più complessi (dai minicomputer ai mainframe) nei quali tale accorpamento non sussiste. MICROCOMPUTER Elaboratore di tipo "general purpose", di relativamente modeste capacità, realizzato tipicamente in tecnologia VLSI intorno ad una CPU generalmente costituita da un unico dispositivo integrato microprogrammato (microprocessore su di un unico chip); in genere un microcomputer prevede, oltre ovviamente al microprocessore, memorie a semiconduttore di tipo VLSI (RAM dell'ordine delle centinaia di Mbyte), circuiti di I/O di varia complessità e word per dati ed indirizzi non particolarmente lunghe (32 bit). In un microcomputer, in quanto basato su una CPU a microprocessore single-chip, contrariamente agli elaboratori più complessi (ove la memoria è unica e le risorse possono essere largamente gestite in modo concorrente, parallelo o distribuito) si ha una distinzione tra memoria di sistema (o anche memoria istruzioni o di programma) e memoria utente (o anche memoria dati o di lavoro): la prima è in firmware (microprogramma in ROM) mentre la seconda è di tipo RAM. L'architettura di un microcomputer (quella di base è la Harward) dipende notevolmente dal relativo microprocessore e dal modo in cui questo lavora (sincronizzazione e sequenziazione), oltre che dalle (relativamente limitate) capacità di archiviazione, gestione e interscambio delle informazioni, percui le applicazioni dei microcomputers sono in genere monoutente o con limitate possibilità di parallelismo. prof. Felice Zampini Unità di Governo Programmabili (1) 8/15 PERSONAL COMPUTER La differenza tra un PC ed un microcomputer si è andata via via assottigliando negli ultimi anni a seguito del proliferare delle realizzazioni di PC sempre più complessi e versatili; un PC veniva definito come un microcomputer monoutente, in effetti attualmente i PC hanno superato tali limiti in quanto sono stati notevolmente potenziati e commercializzati su vasta scala a prezzi sempre più competitivi. A scopo orientativo, gli odierni PC sono in grado di lavorare come: - Server di reti LAN - Workstation intelligenti - Sistemi multitasking - Modesti sistemi in multiprogrammazione - Stazioni master per il controllo di processo - Sistemi di simulazione supportando spesso applicazioni di una certa complessità (p.es. CAD-CAM, grafica 3D e multimediale, DBMS, ecc.) ed essendo provvisti di unità periferiche di apprezzabili caratteristiche in quanto a tecnologie, capacità ed efficienza. Tanto per avere un riferimento concreto, un moderno PC della fascia medioalta potrebbe rispondere ai seguenti requisiti generici, fino a pochi anni orsono prerogativa dei sistemi superiori ed oggi disponibili sullo spazio della propria scrivania: - CPU completamente a 32 bit, dotata di varie features ed in grado di lavorare con clock oltre 2 GHz - 512M-RAM espandibili ulteriormente, 256K-ROM o più - 80G-HD o più e varie unità a minifloppy - Features multimediali (CD, DVD, scheda sonora 16 bit) - Grafica oltre 1024x768 pixel 16 milioni di colori, AGP - Interrupt multilivello, DMA, Coprocessori matematici - Diversi slot di espansione (tipicamente 8) - Interfacciamento seriale, parallelo e USB - Controllers ad elevate prestazioni (EIDE, SCSI) per un costo valutabile approssimativamente sui 1000 euro. Nota: Elaboratori e Prestazioni In pratica, come si vedrà, un elaboratore elettronico è un sistema di elaborazione automatica delle informazioni di tipo generalizzato dotato di risorse ad alta capacità e dalle prestazioni complesse. Tali sistemi sono realizzabili secondo diverse Architetture, con riguardo sia alla loro struttura intrinseca che ai dati da gestire (architetture semplici o parallele, accentrate, decentrate o distribuite). Un SED dovrà consentire una gestione delle risorse anche in modo parallelo, concorrente e distribuito, garantendo che siano elevate: - le capacità di memorizzazione permanente delle informazioni (su supporti di registrazione, magnetici od ottici - ordine dei Gbyte e superiore); - le velocità di esecuzione delle diverse operazioni (potenza: ordine delle decine di MIPS-Milioni di Istruzioni Per Secondo); - le dimensioni della memoria interna (ordine dei Mbyte e superiore); - le possibilità gestionali di I/O (ordine delle centinaia o migliaia di terminali, locali e/o remoti); - le dimensioni delle word per codificare dati ed indirizzi (32-64 bit); - le possibilità di controllo, backup, recovery, restart, nonchè gli accorgimenti per la sicurezza e la integrità dei dati; - le capacità di elaborazione concorrente o parallela (time-sharing, multitasking, multiprocessing, multiprogrammazione, virtual machine); - le velocità di interazione con l'esterno (real-time, applicazioni online e transaction oriented); - le possibilità di sviluppo di applicazioni anche complesse e differenziate. prof. Felice Zampini Unità di Governo Programmabili (1) 9/15 A R C H I T E T T U R A A B U S Trasferimento dell’Informazione a Brevi Distanze Il trasferimento dell'informazione in un sistema digitale, quale il microcomputer, consiste nel trasporto di segnali, viaggianti sotto forma di impulsi elettrici, lungo mezzi trasmissivi. L’informazione codificata in tali segnali, rappresentati da bit, corrisponde a DATI, INDIRIZZI e CONTROLLI. Una comunicazione digitale viene considerata a brevi distanze quando è effettuata sulla base di collegamenti locali, cioè collegamenti diretti realizzati tramite cavi, connettori e simili, per distanze dell'ordine di grandezza non superiore a qualche metro. Tali tipi di comunicazioni riguardano i microcomputer ed a maggior ragione i microprocessori, infatti i collegamenti relativi ai componenti interni del microcomputer e del microprocessore sono costituiti da connessioni millimetriche e microconnessioni mentre i collegamenti tra il sistema e le periferiche locali ad esso direttamente collegate si estendono per lunghezze generalmente non superiori ai 5-6m. Diamo ora una semplice descrizione di alcune modalità di trasferimento dell’informazione a brevi distanze. La slide UGP08 fornisce semplici schemi di principio. Trasferimento Punto-Punto È un trasferimento tra un elemento sorgente (S) ed un elemento destinazione (D). STB = segnale di STROBE È inviato da S ed abilita D alla ricezione. Trasferimento a Diffusore È un trasferimento tra un elemento S e più elementi D. Le linee di STB, abilitanti di volta in volta un singolo elemento D, potrebbero pure fare capo ad un controllore separato. Il rispetto delle temporizzazioni per le abilitazioni/disabilitazioni dovrà essere, in generale, tanto più accurato quanto maggiore sarà la frequenza di lavoro (con conseguente riduzione dei margini di tolleranza). Trasferimento a Collettore È un trasferimento tra più elementi S ed un solo elemento D. OE = Out Enable Segnale di abilitazione alla trasmissione. Abilita, di volta in volta, un singolo elemento S a trasmettere. I dispositivi S, onde evitare situazioni di conflittualità, dovranno essere tali da garantire che quando uno trasmette gli altri siano logicamente sconnessi (dispositivi di tipo three-state o open collector). prof. Felice Zampini Unità di Governo Programmabili (1) 10/15 Trasferimento a Bus Un bus consiste in un fascio di linee appositamente realizzate per trasportare segnali (digitali) che codificano informazioni (Dati, Indirizzi, Controlli). Un trasferimento a bus è un trasferimento tra più elementi S e più elementi D, ove le funzioni di sorgente e destinazione, S e D, non sono sempre ben definite, potendo alcuni elementi assolverle entrambe (p.es. mentre una ROM è univocamente elemento S, una RAM potrà essere elemento S o D rispettivamente in relazione ad operazioni di lettura o scrittura). Anche in questo caso, le uscite per gli elementi S dovranno essere tali da evitare contese del bus (cioè di tipo three-state o open collector). L'elemento di controllo del sistema, dovendo gestire diversi segnali OE e STB (bus bidirezionale), sarà in genere esterno (un microprocessore o un controller nei sistemi EDP, definito come elemento "master" del sistema, funzionante sia come S che come D). Il collegamento a bus, come si vedrà meglio nelle prossime sezioni, presenta quelle caratteristiche di interesse percui viene preferito, in linea generale, nella gran parte dei moderni sistemi a microprocessore, in particolare nei SISTEMI MODULARI. Siccome, d'altro canto, in tali sistemi occorre gestire 3 diversi tipi di informazione (Dati, Indirizzi, Controlli) e le strutture Unibus si rivelano insufficienti a garantire un'ottimale gestione dei tempi e delle risorse, negli attuali sistemi a microprocessore il BUS DI COMUNICAZIONE è tipicamente strutturato in 3 bus distinti: - Bus Dati (Data Bus) - Bus Indirizzi (Address Bus) - Bus Controlli (Control Bus) Architettura a Bus La slide UGP09 schematizza la Architettura a Bus di un microcomputer (sistema a microprocessore con i 3 bus tipici). Giova ricordare che il microcomputer è un sistema basato sull’architettura HARWARD, ove si ha una distinzione, sia fisica che logica, tra MEMORIA UTENTE (RAM) e MEMORIA DI SISTEMA (ROM). In genere, in tali sistemi la CM è identificata con la RAM. Segue una descrizione generale dei 3 bus. BUS INDIRIZZI Tale bus, tipicamente unidirezionale (ma non necessariamente), sotto il controllo della CU è utilizzato per trasmettere i segnali corrispondenti agli indirizzi delle locazioni delle memorie interne (RAM-ROM) e dei dispositivi di I/O. Il numero di linee (bit) che definiscono la capacità dell’address bus è generalmente in stretto rapporto col numero max di celle di memoria (RAM) da indirizzare: disponendo di un bus indirizzi ad n bit si potranno individuare direttamente 2n locazioni di memoria. Nei moderni microprocessori, il parallelismo degli address bus è passato dai 16, 20, 24 ai 32 bit (per sistemi di indirizzamento risp. da 64K, 1M, 16M ed oltre). prof. Felice Zampini Unità di Governo Programmabili (1) 11/15 BUS DATI Questo bus, su cui transitano i dati, è bidirezionale (gli elementi che esso connette possono infatti essere sia sorgente che destinazione di informazioni) e le sue dimensioni sono generalmente in rapporto alla "Word" di memoria per i dati (in genere un byte di 8 bit o multipli interi, p.es. di 2, 4 o 8 byte, a seconda del tipo di codifica e dell’organizzazione della memoria). Nei moderni microprocessori, il parallelismo dei data bus è passato dai 20, 24 ai 32 bit, essendo “preistoria” i bus dati ad 8 o 16 bit. Spesso, facendo riferimento ai bus di un microprocessore, si sottintende, piuttosto genericamente, la capacità del data bus. Un bus dati sottodimensionato rispetto al parallelismo del processore (p.es. bus dati a 16 bit e grado di parallelismo pari a 4, cioè lettura/scrittura di 32 bit in una operazione CPU di accesso in memoria - quindi word dati di 4 byte) causa un generale rallentamento del sistema (2 trasferimenti sul bus per una word). BUS CONTROLLI Il bus controlli serve per il trasporto dei segnali di controllo, segnali che avranno versi e funzioni ben definiti a seconda della loro natura (temporizzazioni, abilitazioni/disabilitazioni, lettura/scrittura, ecc.). Strutturalmente, il control bus è diverso dai precedenti bus, in quanto le relative informazioni non presentano, nel tempo, caratteristiche di "omogeneità" nè concorrono a definire, per così dire "viaggiando in parallelo", la medesima informazione (quale un dato o un indirizzo): le linee eterogenee e direzionalmente indipendenti del control bus assolvono allo scopo di gestire i flussi di informazioni relativi agli altri due bus, controllando e coordinando gli scambi tra CPU e mondo esterno. Il dimensionamento del bus controlli (bidirezionale, anche se non necessariamente) sarà rapportato al livello di prestazioni funzionali ed operative richieste ad un microprocessore, potendo superare dimensioni anche dell'ordine della decina di bit. Vista l’importanza dei bus (in particolare del bus di comunicazione) nei sistemi modulari (quindi nei microcomputer), approfondimenti su tale argomento (tipologie, architetture, standard, prestazioni) saranno sviluppati nel seguito nell’apposito paragrafo dedicato ai bus. Per il momento si premettono alcune considerazioni nella nota seguente. prof. Felice Zampini Unità di Governo Programmabili (1) 12/15 Nota: Sistemi Modulari e Bus Una apparecchiatura digitale costituita di sezioni o moduli distinguibili prende il nome di SISTEMA MODULARE. In un sistema modulare di norma i vari moduli sono posti in comunicazione connettendoli fisicamente tramite un insieme di collegamenti chiamato BUS DI COMUNICAZIONE o di Trasferimento (vedasi “Trasferimento a Bus”). Nella slide UGP08 è esemplificata la nozione di sistema modulare. I bus possono differenziarsi notevolmente in quanto a prestazioni, architetture, tipi e modalità di collegamento incidendo con peso notevole sulle caratteristiche elettriche, meccaniche e funzionali dei moduli che interconnettono (ognuno dei quali sarà adibito ad assolvere determinate funzioni nell'ambito del sistema in cui è definito), determinando in modo significativo le prestazioni del sistema modulare. È evidente che in un sistema monolitico, cioè una macchina che non preveda significative variazioni strutturali (quindi neppure prestazioni modificabili), il ricorso ai bus si rivela superfluo, potendosi in tal caso realizzare collegamenti dedicati. Considerazioni circa fattori quali la possibilità di riconfigurare ed espandere (upgrade) il sistema in modo dinamico, consentirne la intercambiabilità dei moduli, richiederne il miglioramento delle prestazioni e la predisposizione ad implementazioni future, semplificarne la manutenzione, in definitiva la necessità di poter disporre di un sistema "open", portano a preferire la struttura modulare, nell'ambito della quale saranno presenti diversi bus di trasmissione, distinguibili sia in relazione ai tipi di segnali che trasportano sia in relazione agli elementi che interconnettono (dai componenti circuitali elementari di un singolo chip ai moduli funzionali più macroscopici di un sistema). Vediamo ora le funzioni dei vari bus e, in particolare, l'importanza che nei sistemi modulari riveste il Bus di Comunicazione. Bus sul Chip È il bus interno al singolo componente (chip o circuito integrato), esso collega le varie parti funzionali del dispositivo (componenti o circuiti elementari). Vista la natura prevalentemente "interna" di tale bus, le esigenze di standardizzazione (per far comunicare dispositivi diversi) sono modeste ed al costruttore resta una relativamente ampia possibilità di scelta nella sua realizzazione. Bus sulla Scheda È il bus collegante i componenti di una stessa piastra o modulo (Local Bus), la connessione è in genere basata sulla CPU utilizzata. Siccome i dispositivi di una stessa famiglia, determinati in pratica dal tipo di CPU, sono facilmente interfacciabili, anche in questo caso il costruttore può spaziare entro una relativamente larga possibilità di scelta nell’implementazione del bus, senza rischiare di compromettere la comunicazione tra il sistema e l'esterno (ciò nonostante, sono stati tentati alcuni standard, quali il Microbus e lo Z-Bus). Bus di Comunicazione È il bus che viene a collegare le diverse piastre o moduli del sistema; per esso si rivela di particolare importanza l'adozione di STANDARD, affinchè piastre dedicate (single board), le quali garantiscono migliori prestazioni e versatilità rispetto a componenti singoli, possano scambiarsi informazioni in modo corretto ed efficiente in ambiente "multivendor" (ambiente in cui si utilizzano piastre diverse di differenti costruttori nelle apparecchiature modulari). Come già osservato (vedasi “Trasferimento a Bus”), il bus di comunicazione è strutturato in 3 bus per il trasferimento selettivo dei segnali per DATI, INDIRIZZI e CONTROLLI. Interfaccia Col termine Interfaccia si intende un dispositivo, di natura hardware e/o software, che consente la (corretta) comunicazione, cioè la connessione fisica e/o procedurale, tra apparecchiature, segnali e programmi (altrimenti incompatibili). In questo contesto, possiamo pensare ad un’interfaccia come ad un bus che consente il collegamento tra il sistema ed i dispositivi esterni. Anche in questo caso l'esigenza di disporre di standard è di primaria importanza, al fine di assicurare l’interscambiabilità delle periferiche e la loro equivalenza funzionale (compatibilità). prof. Felice Zampini Unità di Governo Programmabili (1) 13/15 Per quanto detto, la definizione del Bus di Comunicazione in un sistema digitale modulare (in particolare in un sistema multiprocessor, ove le competenze sono suddivise e svolte in parallelo dai diversi moduli o microprocessori allo scopo di realizzare funzioni complesse) riveste un ruolo fondamentale, incidendo sull'architettura della struttura, sugli schemi e sui criteri di interconnessione elettrica, meccanica e funzionale, determinando le principali prestazioni del sistema. Le proprietà richieste ad un BUS STANDARD per un sistema modulare o multiprocessor dovranno soddisfare requisiti, quali: idoneità delle linee di trasmissione (caratteristiche elettriche e temporali) a conseguire alte velocità nello scambio dei segnali; standardizzazione dei connettori e adatto formato delle schede, onde consentire espansioni modulari (preferibilmente in modo dinamico); separazione delle funzioni svolte da ciascun microprocessore; sincronizzazione delle varie attività delle piastre o dei microprocessori; rapidità nell'accesso alle risorse (tempi d'accesso); standardizzazione dei protocolli di comunicazione; suddivisione dei segnali gestibili dal bus in base alla relativa funzione (arbitrazione, controllo, indirizzamento, trasferimento, distinzione dati e comandi, priorità); capacità e dimensionamento dei collegamenti. Da quanto visto, emerge chiaramente l'importanza del collegamento a bus in un sistema a microprocessore; in particolare, il Bus di Comunicazione (detto semplicemente Bus) gioca un ruolo fondamentale nel caratterizzare l'architettura e le prestazioni del sistema, infatti questo canale per il trasferimento dell'informazione digitale è tale da consentire la connessione e la comunicazione tra i componenti del sistema e tra questi e le unità esterne (dispositivi di I/O). D'altra parte, in un bus il trasferimento dell'informazione sarà possibile, in ogni istante, solo tra un elemento fungente da sorgente ed un altro individuabile come destinazione, percui si renderà necessario che i vari dispositivi connessi al bus siano tali da evitare situazioni di conflitto sul bus (caso di contesa ove solo un trasferimento S/D alla volta può essere attivo). In termini più tecnici, si richiedono dispositivi di tipo THREE-STATE o OPEN COLLECTOR, cioè suscettibili di assumere gli stati logici 0, 1 o il cosiddetto terzo stato (stato di alta impedenza, equivalente logicamente alla sconnessione del dispositivo dal bus). Un modo comunemente adottato per realizzare un collegamento a bus consiste nel definire un elemento MASTER del bus (solitamente una CPU), delegandogliene la gestione e la sincronizzazione, secondo una logica di tipo MASTER/SLAVE. Nelle strutture unibus, oramai obsolete, la sincronizzazione doveva realizzarsi a divisione di tempo; nei sistemi non prevedenti invece i 3 bus tipici ma solo i bus per dati e indirizzi, anch'essi praticamente superati, la gestione dei controlli doveva effettuarsi ricorrendo a soluzioni in multiplexing. In sostanza, i principali vantaggi conseguibili dal collegamento a bus possono riassumersi nei seguenti: modularità del sistema: il bus è l'unico mezzo di collegamento su cui possono "affacciarsi" le varie unità; espandibilità dinamica dei collegamenti: si possono aggiungere (o togliere) diverse unità, senza dover apportare significative modifiche circuitali al sistema (utilizzazione di switch, interfaccie, software, ecc.), purchè si evitino, ovviamente, situazioni conflittuali o indirizzamenti scorretti; versatilità e semplificazione del sistema, unitamente ad una maggiore facilitazione nella definizione di standards. prof. Felice Zampini Unità di Governo Programmabili (1) 14/15 A P P L I C A Z I O N I Le applicazioni basate sui sistemi a microprocessori, in particolare sui microcomputer, sono oramai innumerevoli: in quasi tutti i campi in cui interviene l'automazione, in senso lato, è oggigiorno presente il microprocessore; un elenco (non esaustivo) di possibili e reali impieghi di questo componente-sistema concerne i seguenti settori: - Acquisizione e conversione dati (ADC-DAC) Controlli automatici, governo di processo e robotica Elettronica medica ed ingegneristica Elettronica musicale Elaborazione dati, suoni ed immagini Presentazione, animazione e multimedialità Editoria e posta elettronica Office automation Interfacciamento digitale, comunicazioni e telematica Sistemi di identificazione e di distribuzione automatica Sistemi di sviluppo e supporto alla programmazione Progettazione (CAD-CAM-CAE-CAT-CIM-ES&AI) Sistemi educativi e didattici, ipertesti e ipermedia Applicazioni commerciali e finanziarie Sistemi informativi interni ed applicazioni verticali Modellizzazione e simulazione Decision support & flow control Giochi ed intrattenimento Questa "esplosione" dei sistemi a microprocessori è, in larga parte, dovuta al costante abbattimento dei costi hardware che da diversi anni si viene registrando sul mercato e dalle crescenti scale di integrazione raggiunte dalla tecnologia microelettronica, in accordo con l'affermarsi di progetti e soluzioni in logica programmata. La diffusa e oramai consolidata tendenza alla standardizzazione, ufficiale o di fatto, ha inoltre svincolato l'utenza da soluzioni "monovendor", sia in termini di hardware che di software, a tutto vantaggio di una maggiore flessibilità ed integrazione logica e tecnologica tra settori, servizi, applicazioni e risorse altrimenti incompatibili o difficilmente allineabili. Fatto importante dell’ultimo decennio è l’impiego del computer da strumento di elaborazione a sistema per informare e comunicare, fatto dovuto allo sviluppo esponenziale delle applicazioni e dei servizi telematici, in particolare all’avvento di Internet. Si parla pertanto di ICT (INFORMATION AND COMMUNICATION TECHNOLOGY) e di NEW ECONOMY proprio per mettere in risalto la trasformazione che la tecnologia elettronico-informatica, integrata ed in sinergia coi moderni sistemi di telecomunicazione, sta producendo nelle attività sociali, economiche e culturali (già oggi molte persone hanno, oltre ad un numero telefonico personale, un indirizzo di Email, un proprio sito Web, un account ed una firma digitale per l’home banking o per l’E-commerce…). La slide UGP10 può fornire qualche spunto per discutere in aula gli scenari attuali e prossimi inerenti l’ICT. prof. Felice Zampini Unità di Governo Programmabili (1) 15/15