CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi...

15
1 CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE Introduzione Architettura Elementi caratteristici di una CPU Classificazione memorie Gestione dispositivi di I/O: polling, interrupt, DMA Tutto in uno: cenni a microcontrollori e PLC Parole chiave

Transcript of CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi...

Page 1: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

1

CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE Introduzione Architettura Elementi caratteristici di una CPU Classificazione memorie Gestione dispositivi di I/O: polling, interrupt, DMA Tutto in uno: cenni a microcontrollori e PLC Parole chiave

Page 2: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

2

CAPITOLO 1: ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE INTRODUZIONE Agli inizi degli anni '60 comparvero sul mercato i primi circuiti inte-

grati digitali. Servendosi di tali dispositivi divenne più semplice la

progettazione e la realizzazione di sistemi logici. Utilizzando la

tecnica denominata a logica cablata, i sistemi venivano progettati

utilizzando i circuiti integrati digitali offerti dal mercato (porte

logiche, registri, contatori, ecc.) in funzione dell'applicazione

specifica. Inoltre, aumentando sempre più il numero di componenti

integrati su un unico chip di silicio, ovvero le funzioni logiche che il

singolo circuito integrato era in grado di svolgere, divennero sempre più

complesse e sofisticate le funzioni disponibili.

Tuttavia il costo del dispositivo integrato aumentava con la sua

complessità, e solo una sua larga diffusione permetteva l'abbattimento

del costo di produzione, cosa non sempre possibile in quanto esso spesso

era rivolto ad utilizzazioni specifiche.

Nacque pertanto ben presto la necessità di disporre di un unico di-

spositivo che permettesse di essere utilizzato in applicazioni diverse

con poche modifiche. Sulla base di queste motivazioni venne realizzato

agli inizi degli anni '70 un circuito integrato destinato a rivoluzionare

il mondo dell'elettronica e della sistemistica in generale, a cui fu dato

il nome di microprocessore (C.P.U. = Central Process Unit).

Tale dispositivo, con una struttura interna molto complessa per svolgere

correttamente le funzioni per cui era stato realizzato, aveva bisogno di

essere programmato, ovvero che gli venisse fornita una successione or-

dinata di istruzioni sul modo di operare.

Il microprocessore può quindi essere considerato un dispositivo adatto a

svolgere funzioni diverse, modificando solo in modo minimo la parte

circuitale (hardware) ad esso connessa, ma variando di volta in volta, in

base all'applicazione richiesta, il programma di gestione (software).

I sistemi realizzati con l'applicazione di una CPU sono detti a logica

programmabile.

Il microprocessore può essere utilizzato in una vastissima gamma di

applicazioni che vanno dai sistemi di controllo, alla strumentazione di

misura, dalle apparecchiature domestiche quali lavastoviglie e televisori

Page 3: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

3

a quelle elettromedicali, senza dimenticare una delle più diffuse

applicazioni, ovvero il Personal Computer.

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

Un microprocessore in genere, pur contenendo al suo interno tutti i

circuiti di calcolo e di controllo, per poter operare correttamente ha

bisogno di essere collegato con altri dispositivi in base alle

applicazioni per cui il processore è impiegato (da solo non è

utilizzabile).

Si è già detto che l'uso di un microprocessore può essere rivolto

alle più varie applicazioni, che vanno dai sistemi di controllo di tipo

industriale, all'utilizzazione molto diffusa in sistemi di elaborazione

dati.

In ogni caso al microprocessore debbono essere collegati sia dei

moduli di memoria che i dispositivi per l’ingresso e l'uscita dei dati. E

dunque necessario parlare di sistema a microprocessore e non sempli-

cemente di microprocessore. Nella figura è riportato un semplice schema

di sistema con memorie e dispositivi di I/O. In esso è evidenziata la

funzione di collegamento tra i vari componenti svolta dai BUS DATI, BUS

INDIRIZZI e BUS CONTROLLI.

Page 4: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

4

Il sistema è costituito da una CPU da memorie RAM e ROM da uno o più

dispositivi d'ingresso e d'uscita. Lo schema può servire per comprendere

come il microprocessore possa scambiare informazioni con la memoria e con

i dispositivi di I/O (Input / Output).

Mediante il bus indirizzi vengono identificate le locazioni di memoria

dove vengono memorizzati i dati nelle operazioni di scrittura o da cui

la CPU riceve i dati (o i codici delle istruzioni, cioè il programma)

nelle operazioni di lettura.

Inoltre, sempre per mezzo del bus indirizzi il microprocessore identifica

i dispositivi d'ingresso, ad esempio la tastiera di un computer, da cui

riceve i dati nello operazioni di lettura da periferica o quelli

d'uscita, ad esempio il monitor di un computer, a cui invia i dati nelle

operazioni di scrittura su periferica. Il bus dati è utilizzato per il

trasferimento (lettura o scrittura) dei dati dalla CPU con le locazioni

di memoria o con i dispositivi di ingresso / uscita (detti anche

periferici o dispositivi di I/O). Il bus controlli, oltre a funzioni

specifiche che non saranno qui esplicitate, è utilizzato dalla CPU per

segnalare alla memoria e ai dispositivi di I/O la direzione del flusso

dei dati e il tipo di dispositivo coinvolto nel trasferimento (memoria o

I/O).

L’architettura a BUS presenta diversi vantaggi il principale dei quali è

dato dalla modularità del sistema; è infatti particolarmente semplice

ampliare il sistema con l’aggiunta di nuovi componenti collegandoli ai

BUS. Tale vantaggio risulta evidente pensando alle schede madri dei

Personal Computer, dove attraverso gli slot di espansione è possibile

ampliare le prestazioni e le caratteristiche del sistema attraverso nuove

schede (es: modem, acquisizione dati, porte parallela) o nuovi chip di

memoria.

I diversi “oggetti” sono collegati ai bus con una modalità che consenta

di evitare conflitti e/o indecisioni nella comunicazione che avviene

sempre tra due soli componenti del sistema e quasi sempre uno dei due è

il microprocessore.

Page 5: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

5

BUS DATI (bidirezionale)

CS1 CS2 CS3 BUS INDIRIZZI

BUS CONTROLLI

Lo schema di figura (dove per semplicità si sono rappresentate solo 4

linee per bus) mette in evidenza i circuiti di decodifica che, generando

dei segnali di chip select, permettono di selezionare i diversi

dispositivi. I segnali CS permettono di togliere il componente dallo

stato di alta impedenza (che corrisponde al virtuale scollegamento del

componente dal bus dati) garantendo la corretta comunicazione solo tra

due componenti.

Altri segnali particolarmente importanti per la comunicazione provengono

dal BUS CONTROLLI e sono i segnali di READ e WRITE, pilotati dalla CPU, e

specificano la direzione dei dati nel trasferimento.

CPU

READ WRITE

MEMORIA I / O

DECOD 1 DECOD 2 DECOD 3

espansione

Page 6: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

6

Nella figura sotto riportata si mette in evidenza la sostanziale

differenza tra un collegamento a Bus ed un collegamento punto a punto,

dove è evidente la difficoltà di aggiungere un nuovo elemento al sistema.

ELEMENTI CARATTERISTICI DI UNA CPU La CPU costituisce il cuore e l’elemento più importante del sistema; in

esso sono rappresentate le funzioni logiche, di controllo e aritmetiche.

La CPU è in grado di prelevare le istruzioni del programma da svolgere

contenute nella memoria (fase di fetch) e di interpretarle ed eseguirle

(fase di execute).

Tale istruzioni sono evidentemente in forma binaria. Grazie ai programmi

compilatori (ad esempio turbo Pascal, Turbo C, Basic) è possibile

scrivere programmi per Personal Computer utilizzando linguaggi

particolarmente semplici ed intuitivi (linguaggi ad alto livello) che

vengono poi “converititi” automaticamente nell’unico linguaggio

interpretato ed eseguito dalla CPU che viene denominato linguaggio

macchina.

Le principali caratteristiche di una CPU che ne identificano le

peculiarità e la potenza possono essere cosi sintetizzate:

• Set istruzioni, cioè l’insieme delle istruzioni che la CPU è in

grado di svolgere; si tenga presente che alcuni microprocessori

delle prime generazioni non sono in grado di svolgere l’operazione

di moltiplicazione che quindi viene svolta tramite un algoritmo

(programma) costituito da somme ripetute.

• Velocità di funzionamento ed esecuzione delle istruzioni; si

identificano tali caratteristiche attraverso il clock di sistema

(frequenza di funzionamento passata negli anni da qualche MHz a

centina di Mhz) e il MIPS (milioni di istruzioni eseguite in un

secondo).

Page 7: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

7

• Architettura interna, insieme dei registri di lavoro, coprocessore

matematico per svolgere le operazioni logico aritmetiche di una

certa complessità, memoria cache per il reperimento veloce delle

istruzioni da svolgere.

A titolo esemplificativo si riporta l’architettura interna della CPU Z80

Page 8: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

8

CLASSIFICAZIONE MEMORIE

Page 9: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

9

GESTIONE DISPOSITIVI DI I/O: POLLING, INTERRUPT, DMA

Un sistema a microprocessore deve eseguire programmi più o meno

complessi, trasferire dati alle periferiche esterne e ricevere da queste

informazioni. Durante l'esecuzione dei programmi vi è anche un flusso

continuo di dati dalla CPU alle memorie e viceversa.

Il video, la tastiera, la stampante, il plotter, il drive ecc., sono gli

esempi più noti di dispositivi periferici.

In molti casi il trasferimento dei dati dalla CPU alle periferiche e alle

memorie deve rispettare procedure ben precise e codificate. Le tecniche

di scambio dei dati tra il sistema e le periferiche possono essere

classificate in tre distinte categorie:

• Polling

• Interruzione

• DMA

L’utilizzazione di una tecnica piuttosto che un'altra richiede una at-

tenta analisi delle procedure software e dei dispositivi hardware da

adottare al fine di valutare quale sia la tecnica che contribuisca ad

aumentare l’efficienza del sistema a microprocessore e che meglio si

adatti alle specifiche di progetto

Di seguito sono presi in considerazioni gli aspetti principali delle tec-

niche di trasferimento dati tra la CPU e le periferiche.

Polling (interrogazione ciclica)

È la tecnica più semplice per lo scambio di informazioni tra micro-

processore e le periferiche perché è essenzialmente software. Prevede che

la CPU sotto il controllo di un programma ben definito, controlli con-

tinuamente e in modo ciclico lo stato delle periferiche ad essa

collegate.

In pratica la CPU effettua un test sulla condizione della periferica

verificando il livello di un bit di flag secondo il diagramma di flusso

della figura di seguito riportata.

Page 10: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

10

Se il flag è attivo (generalmente a livello logico basso), la CPU esegue

un programma di servizio al termine del quale verifica lo stato del flag

della seconda periferica e così via.

Naturalmente la CPU passa immediatamente a controllare il flag del la

seconda periferica se quella interpellata non ha bisogno dell'attenzione

della CPU. Questa tecnica di gestione delle periferiche risulta onerosa

per la CPU perché essa è continuamente impegnata a verificare lo stato

dei bit di flag ed inoltre, essendo l'interrogazione ciclica, non si ha

la possibilità di stabilire una gerarchia tra le richieste di servizio

avanzate contemporaneamente da più periferiche

La tecnica del polling risulta altresì poco efficiente perché se una

periferica appena interrogata ha bisogno di essere servita dalla CPU deve

aspettare, prima di essere nuovamente interrogata, che la CPU verifichi

io stato di tutte le rimanenti periferiche, e soddisfi le eventuali

richieste di servizio da esse avanzate.

Page 11: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

11

Interruzione (o Interrupt)

Per superare le limitazioni della tecnica del polling, la gestione dello

scambio di informazioni tra CPU e periferiche è spesso affidata alla

tecnica dell'interruzione, la quale prevede che sia la periferica, a

differenza di quanto avviene ne polling, ad avanzare la richiesta di

servizio alla CPU. In tal modo la periferica può interrompere la CPU in

qualsiasi momento (vedi figura), in relazIone alle esigenze specifiche,

senza dover attendere i tempi dell’interrogazione ciclica.

Tutte le CPU sono provviste, a seconda della complessità della loro

architettura di uno o più ingressi predisposti per ricevere il segnale di

richiesta di interruzione da parte della periferica.

Quando la CPU riceve il segnale di richiesta di interruzione interrompe,

se risultano soddisfatto determinate condizioni, l'esecuzione del pro-

gramma principale (MAIN) e manda in esecuzione un sottoprogramma (routine

o subroutine) predisposto per fa gestione di alcune situazioni di

emergenza per le quali la periferica richiede l'attenzione della CPU. Al

termine della routine di servizio la CPU riprende esecuzione de)

programma principale.

L’interruzione è dunque la sospensione temporanea del programma

principale affinché la CPU possa evadere la richiesta di servizio

avanzata dalla periferica.

MAIN

Richiesta di interrupt Routine di servizio

alla richiesta di interruzione

Page 12: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

12

DMA (Direct Memory Access – accesso diretto in memoria) Nella tecnica DMA la periferica richiede alla CPU il controllo dei BUS

per gestire in modo autonomo, senza cioè l’intervento del

microprocessore, il trasferimento dei dati con le memorie. In pratica

nella tecnica DMA un dispositivo di supporto, detto DMA controller,

regola il flusso dei dati dalla periferica alla memoria e viceversa. La

tecnica DMA è utilizzata quando bisogna gestire i trasferimenti di

blocchi di dati ad alta velocità perché, a differenza di quelli gestiti

da programma, non sono necessarie operazioni di lettura e scrittura.

BUS REQUEST BUS ACK INDIRIZZI DATI Di particolare significato risultano le due linee di bus request e bus

acknoweledge che consentono la gestione del DMA.

MICROCONTROLLORI E PLC Con il termine Microcontrollore (microcontrollor) si intende comunemente

un sistema a microprocessore integrato su un unico chip, che comprende,

oltre alla CPU, una memoria di programma, solitamente di sola lettura

(PROM, EPRCM o EEPROM), una memoria RAM, generalmente di dimensioni

ridotte, per i risultati intermedi dell'elaborazione e per lo stack e

periferici di I/O) vari (porte seriali e/o parallele, contatori, timer

ecc.); per quanto appena esposto questi circuiti integrati vengono anche

detti microcomputer single chip.

Con queste caratteristiche, dovrebbe essere evidente che i

microcontrollori sono stati concepiti soprattutto per applicazioni

industriali di controllo, in cui il programma di gestione, una volta

messo a punto non ha più necessità di essere modificato (o di esserlo

raramente). Sono le applicazioni che gli americani chiamano “embedded”,

cioè incorporate in prodotti e apparati finiti, che possono andare dagli

MEMORIADispositivo DMA

PERIFERICA

I / O

C.P.U.

Page 13: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

13

elettrodomestici intelligenti, ai sistemi di comunicazione o sicurezza,

alla strumentazione, all'automazione in campo automobilistico, ecc

In questo senso si vogliono qui ricordare ad alcuni microcontrollori

particolarmente diffusi quali la famiglia PIC (il 16C84 costituisce

importante elemento delle PlayStation), la famiglia ST o le famiglie

prodotte da Motorola, Siemens e da diversi altri importanti produttori

che hanno progettato e realizzati microcontrollori dedicati a loro

applicazioni.

I microcontroller PIC (acronimo per Programmable. Integrated Controller)

si distaccano dalla struttura di un microprocessore classico, essen-

zialmente perché sono delle CPU RISC (Reduced InsLrucLion Set Computing,

elaborazione con insieme di istruzioni ridotto) basate su una struttura

del tipo Harward (dall'Università dove è stata sviluppata), che si

distingue dalla macchina di Von Neuman classica per avere memoria

programma e memoria dati (e relativi bus) separati. La filosofia RISC

consiste sostanzialmente nel prevedere poche e semplici istruzioni, tutte

della stessa lunghezza e (possibilmente) tutte richiedenti lo stesso

numero di cicli macchina sta per il fetch che per l'esecuzione.

Questa caratteristica unita alla separazione fisica dei canali lungo cui

fluiscono istruzioni e dati, permette di ottenere una sovrapposizione

(Pipelining) delle fasi di Fetch di un'istruzione con quella di esecu-

zione della precedente “senza buchi" e quindi in modo molto più

efficiente di quello che, per esempio, si ha in termini di velocità

complessiva dell'elaborazione nei microprocessori della Famiglia 8086,

dove istruzioni diverso hanno tempi diversi sia di fetch che di

esecuzione.

Da un punto di vista delle applicazioni di potenza in impianti

industriali e civili hanno avuto larga diffusione i PLC, Controllori

Logici Programmabili, che al pari dei microcontrollori hanno la

caratteristica della semplice riprogrammabilità per ottenere le più

svariate funzioni attraverso le linee (in genere a 24 (v) ed in numero

variabile da modello a modello) di segnali I/O.

Page 14: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

14

PAROLE CHIAVE

Page 15: CAPITOLO 1 ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE … · Il microprocessore può quindi essere considerato un dispositivo adatto a svolgere funzioni diverse, modificando solo

15