Architettura del sistema e della memoria
Esistono diversi stili di architettura di sistema e di memoria che devono essere considerati durante la progettazione del programma o del sistema concorrente. È molto necessario perché un sistema e uno stile di memoria possono essere adatti per un'attività ma possono essere soggetti a errori per altre attività.
Architetture di sistemi informatici che supportano la concorrenza
Michael Flynn nel 1972 ha fornito la tassonomia per classificare diversi stili di architettura del sistema informatico. Questa tassonomia definisce quattro diversi stili come segue:
- Singolo flusso di istruzioni, singolo flusso di dati (SISD)
- Flusso di istruzioni singolo, flusso di dati multipli (SIMD)
- Flusso di istruzioni multiple, flusso di dati singolo (MISD)
- Flusso di istruzioni multiple, flusso di dati multipli (MIMD).
Singolo flusso di istruzioni, singolo flusso di dati (SISD)
Come suggerisce il nome, questo tipo di sistemi avrebbe un flusso di dati in entrata sequenziale e una singola unità di elaborazione per eseguire il flusso di dati. Sono proprio come i sistemi monoprocessore con architettura di calcolo parallelo. Di seguito è riportata l'architettura del SISD:
Vantaggi di SISD
I vantaggi dell'architettura SISD sono i seguenti:
- Richiede meno potenza.
- Non vi è alcun problema di protocollo di comunicazione complesso tra più core.
Svantaggi del SISD
Gli svantaggi dell'architettura SISD sono i seguenti:
- La velocità dell'architettura SISD è limitata proprio come i processori single-core.
- Non è adatto per applicazioni più grandi.
Flusso di istruzioni singolo, flusso di dati multipli (SIMD)
Come suggerisce il nome, questo tipo di sistemi avrebbe più flussi di dati in entrata e un numero di unità di elaborazione che possono agire su una singola istruzione in un dato momento. Sono proprio come i sistemi multiprocessore con architettura di calcolo parallelo. Di seguito è riportata l'architettura di SIMD -
Il miglior esempio di SIMD sono le schede grafiche. Queste schede hanno centinaia di singole unità di elaborazione. Se parliamo di differenza computazionale tra SISD e SIMD, allora per l'aggiunta di array[5, 15, 20] e [15, 25, 10],L'architettura SISD dovrebbe eseguire tre diverse operazioni di aggiunta. D'altra parte, con l'architettura SIMD, possiamo aggiungere quindi in un'unica operazione di aggiunta.
Vantaggi di SIMD
I vantaggi dell'architettura SIMD sono i seguenti:
La stessa operazione su più elementi può essere eseguita utilizzando una sola istruzione.
Il throughput del sistema può essere aumentato aumentando il numero di core del processore.
La velocità di elaborazione è superiore all'architettura SISD.
Svantaggi di SIMD
Gli svantaggi dell'architettura SIMD sono i seguenti:
- Esiste una comunicazione complessa tra i numeri di core del processore.
- Il costo è superiore all'architettura SISD.
Flusso MISD (Multiple Instruction Single Data)
I sistemi con flusso MISD hanno un numero di unità di elaborazione che eseguono operazioni diverse eseguendo istruzioni diverse sullo stesso set di dati. Di seguito è riportata l'architettura di MISD -
I rappresentanti dell'architettura MISD non esistono ancora commercialmente.
Stream Multiple Instruction Multiple Data (MIMD)
Nel sistema che utilizza l'architettura MIMD, ciascun processore in un sistema multiprocessore può eseguire diversi set di istruzioni indipendentemente sul diverso set di dati in parallelo. È l'opposto dell'architettura SIMD in cui una singola operazione viene eseguita su più set di dati. Di seguito è riportata l'architettura di MIMD:
Un normale multiprocessore utilizza l'architettura MIMD. Queste architetture sono fondamentalmente utilizzate in una serie di aree applicative come progettazione assistita da computer / produzione assistita da computer, simulazione, modellazione, interruttori di comunicazione, ecc.
Architetture di memoria che supportano la concorrenza
Mentre si lavora con concetti come concorrenza e parallelismo, è sempre necessario accelerare i programmi. Una soluzione trovata dai progettisti di computer è quella di creare multi-computer a memoria condivisa, cioè computer con un unico spazio di indirizzi fisico, a cui accedono tutti i core di cui dispone un processore. In questo scenario, possono esserci diversi stili di architettura, ma di seguito sono riportati i tre stili di architettura importanti:
UMA (Uniform Memory Access)
In questo modello, tutti i processori condividono la memoria fisica in modo uniforme. Tutti i processori hanno lo stesso tempo di accesso a tutte le parole di memoria. Ogni processore può avere una memoria cache privata. I dispositivi periferici seguono una serie di regole.
Quando tutti i processori hanno uguale accesso a tutti i dispositivi periferici, il sistema viene chiamato a symmetric multiprocessor. Quando solo uno o pochi processori possono accedere ai dispositivi periferici, il sistema viene chiamatoasymmetric multiprocessor.
Accesso alla memoria non uniforme (NUMA)
Nel modello multiprocessore NUMA, il tempo di accesso varia con la posizione della parola di memoria. Qui, la memoria condivisa è distribuita fisicamente tra tutti i processori, chiamati memorie locali. La raccolta di tutte le memorie locali forma uno spazio di indirizzi globale a cui possono accedere tutti i processori.
Cache Only Memory Architecture (COMA)
Il modello COMA è una versione specializzata del modello NUMA. Qui, tutte le memorie principali distribuite vengono convertite in memorie cache.