Documento word

Documento pdf

Documento zippato

 

Architetture MIMD

Un’architettura MIMD si differenzia da una architettura SIMD perché in essa gli elementi di elaborazione (PE: Processing Elements) diventano dei veri e propri processori. I PE di un processore vettoriale, infatti, non hanno la capacità di decodificare le istruzioni. I vari PE agiscono in sincronia fra loro grazie alla supervisione dell’unica Unità di controllo. In un’architettura MIMD gli elementi di elaborazione hanno la capacità di decodificare autonomamente le istruzioni.

Ogni processore è dunque in grado di elaborare autonomamente un singolo processo. In un’architettura MIMD

abbiamo una serie di processori, di porte di IO e moduli di memoria

 

 

 

 

 

 

 

 

In un sistema di tipo MIMD è il sistema operativo che distribuisce i vari processi (programmi in esecuzione) tra i vari microprocessori liberi, stabilisce la distribuzione delle risorse (memoria, unità di IO), e permette ai vari microprocessori di comunicare fra di loro.

Le architetture MIMD si distinguono soprattutto per le modalità con cui avviene il dialogo fra i vari microprocessori e la condivisione di risorse quali memorie e unità di IO.

Da questo punto di vista distinguiamo due tipi di organizzazioni MIMD:

1.    1.     architettura a microprocessori loosely coupled

2.    2.     architettura a microprocessori tightly coupled.

Microprocessori loosely coupled.

In un’architettura loosely coupled non abbiamo una vera e propria condivisione delle risorse fra i vari microprocessori. Ogni microprocessore è dotato di propri moduli di memoria e unità di IO. Spesso tutto è racchiuso in moduli integrati in un singolo chip

 

 

 

 

 

 

I vari moduli possono dialogare fra di loro tramite un sistema di trasferimento di messaggi (STM).

 

 

 

L’STM può essere un semplice bus che mette in comunicazione i vari moduli oppure una memoria condivisa. In quest’ultimo caso abbiamo un modulo di memoria  cui possono accedere tutti i moduli; lo scambio di informazioni avviene attraverso la scrittura di messaggi in un’area di memoria da parte di un processore e di lettura degli stessi da parte dell’altro.

Per interfacciarsi con l’STM, i vari moduli utilizzano una Rete di interfacciamento. Essa si occupa di inviare i messaggi del modulo verso gli altri moduli oppure di gestire le comunicazioni quando più moduli diversi vogliono comunicare contemporaneamente con il modulo cui essa appartiene. In tal caso, la rete di interfacciamento ha il compito di scegliere il messaggio da instradare verso il suo processore e di memorizzare temporaneamente (bufferizzare) gli altri messaggi in un dispositivo di memoria contenuto nella rete stessa.

La definizione di loosely coupled o accoppiamento non ben definito sta ad indicare che i vari microprocessori, in realtà, non condividono le proprie risorse. Ogni microprocessore è dotato di proprie unità di IO e memorie indipendenti da quelle degli altri microprocessori. Si dice anche che il grado di accoppiamento fra i vari microprocessori è basso. In sostanza la comunicazione fra le varie risorse può avvenire esclusivamente attraverso il dialogo fra i microprocessori. Ne deriva un notevole rallentamento di questa architettura con diminuzione del suo throughput se il numero di interazioni fra i vari moduli non è elevato.

Microprocessori tightly coupled.

Qualora la velocità del sistema e quindi il throughput relativo sia fondamentale, non si può accettare il rallentamento introdotto dall’interscambio di informazioni fra i vari microprocessori attraverso l’STM. La soluzione alternativa è l’architettura tightly coupled. Attraverso opportune reti di interconnessione ogni processore può accedere direttamente a tutte le unità di IO e a tutti i moduli di memoria, oltre che, naturalmente, poter dialogare con gli altri microprocessori. La struttura di principio di questa organizzazione è rappresentata dalla figura seguente.