MIMD

Da Wikipedia, l'enciclopedia libera.
Architetture correlate
  Istruzione
Singola
Istruzioni
Multiple
Dato
Singolo
SISD MISD
Dati
Multipli
SIMD MIMD

Multiple Instruction Multiple Data (MIMD) è un'architettura parallela in cui diverse unità effettuano diverse elaborazioni su dati diversi. Esempi di questa architettura sono i sistemi multiprocessore, i transputer o i computer collegati in rete per le elaborazioni distribuite. In configurazione multiprocessor le CPU possono condividere dati allocati in memoria comune accessibile via bus di sistema.

Architettura MIMD[modifica | modifica wikitesto]

Nel modello di calcolo MIMD ci sono più processori che operano in parallelo in modo asincrono. Ciascun processore esegue un programma (o istruzione) diverso su dati diversi. In un singolo (ma grande) problema, ogni processore risolve un sotto-problema. La comunicazione tra i vari processori avviene sia mediante la memoria condivisa ( si parla di processori "tightly coupled" altamente legati), sia per mezzo di una rete di interconnessione (multi computer debolemente legati).

Architettura MIMD multiprocessore[modifica | modifica wikitesto]

Nell'architettura MIMD multiprocessore, i processori condividono le variabili (o strutture di dati) in una memoria comune. La comunicazione avviene mediante la condivisione della memoria. Per questo motivo i processori necessitano di alcuni meccanismi di controllo che risolvano il probabile conflitto di scrittura in memoria da parte di due o più processori contemporaneamente. In questa architettura il calcolo è molto veloce in quanto tutti i processori accedono simultaneamente alla memoria condivisa, però c'è da dire che tale architettura è anche molto complessa in quanto devono essere presenti numerosi circuiti di decodifica tra i processori, ma soprattutto ci vuole una memoria molto grande e quindi molto costosa.

Architettura MIMD multi computer[modifica | modifica wikitesto]

Nell'architettura MIMD multi computer ogni processore ha una memoria propria. I vari processori comunicano tra loro mediante uno scambio di messaggi definito "message passing". La comunicazione tra i vari processori è affidata a una rete di interconnessione che consente a ciascun processore di trasmettere dati a qualunque altro processore presente nella stessa rete. I processori possono anche essere fisicamente lontani, come capita nei sistemi distribuiti. Però siccome le prestazioni calano in funzione della qualità di comunicazione tra i processori, non è consigliato creare una rete che copra enormi distanze, pena la velocità di scambio dei dati. E',comunque, molto complicato progettare una rete per molti processori. La rete viene progettata come una macchina special-purpose dove la sua topologia intrinseca è una caratteristica distintiva di un tipo di multi computer. La complessità della rete è valutata in gradi (numero di connessioni che si dipartono da ogni nodo) e in diametro (distanza minima, espressa in numero di nodi, tra 2 nodi più lontani). Più il grado è elevato e più piccolo è il diametro, implicano rispettivamente un elevato parallelismo nella comunicazione e velocità di comunicazione più elevata.

Sono esempi di reti multi computer le reti a stella, ad albero, a cubo, a griglia, ad anello e la rete completa (tutte le tipologie di rete fuse insieme).

Voci correlate[modifica | modifica wikitesto]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica