UGP01 - Informamica.it

annuncio pubblicitario
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à).
<segue>
prof. Felice Zampini
Unità di Governo Programmabili (1)
13/15
<segue nota>
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
Scarica