SISD

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

Single Instruction, Single Data (SISD) è un'architettura in cui una singola unità esegue un singolo flusso di dati. Corrisponde alla classica architettura di von Neumann utilizzata in quasi tutti i personal computer anche se è ormai obsoleta.

Macchina SISD[modifica | modifica sorgente]

Nell'architettura SISD è possibile eseguire un'unica istruzione per volta su un unico dato, eseguendo le istruzioni una dopo l'altra come previsto dal paradigma imperativo.

Cicli di istruzione[modifica | modifica sorgente]

--Fase di Fetch = Preleva dalla memoria centrale l'istruzione da eseguire utilizzando l'indirizzo contenuto nel PC (Program Counter), incrementa il PC in maniera tale che possa contenere l'indirizzo della prossima istruzione da eseguire,

--Fase di Decode = La CU (control unit) interpreta l'istruzione e determina le operazioni da eseguire.

--Fase di Execute = L'ALU (unità aritmetico logica) esegue le operazioni e la CU controlla l'andamento dell'esecuzione delle operazioni.

Limiti dell'architettura SISD[modifica | modifica sorgente]

Un importante limite della architettura SISD è la singola connessione tra il processore e la memoria. Siccome l'accesso alla memoria è limitato soltanto a un'operazione alla volta, insorge il classico problema definito come collo di bottiglia, generando un rallentamento generalizzato.

Possibili soluzioni[modifica | modifica sorgente]

Alcune soluzioni individuate sono:

-- Allargamento del BUS Dati;

-- Introduzione della cache;

-- Parallelismo temporale per le istruzioni, facendo in modo che la macchina riesca ad elaborare il più alto numero possibile di istruzioni al secondo.

Il Pipelining su SISD[modifica | modifica sorgente]

Il pipelining prevede sia l'esecuzione di una istruzione divisa in più fasi (anche chiamati stadi) che la sovrapposizione temporale degli stadi di più istruzioni, dove ogni stadio è gestito da una unità hardware dedicata.

Il pipelining su SISD premette l'operazione in parallelo di più istruzioni situate a diversi stadi.

Il pipelining non esegue più velocemente le istruzioni, ma fa aumentare la frequenza di completamento delle istruzioni, cioè fa aumentare il numero di istruzioni eseguite al secondo (Throughtput).

Throughtput = Num_operazioni/ciclo

Di solito le pipeline hanno 5 stadi fondamentali. Una pipeline da X stadi elabora N istruzioni in un periodo di tempo pari a X+(N-1) cicli di clock, invece un processore senza pipeline impiega X*N cicli di clock.

Il guadagno massimo (rendimento) è dato dall'indice di Speed_up così definito:

Speed_up = [X+(N-1)]/(X*N)

Problemi del pipelining[modifica | modifica sorgente]

In presenza di stalli il guadagno di una pipeline si riduce sia a causa della dipendenza tra le istruzioni sia a causa della presenza di istruzioni di salto (jump point), in quanto non si conosce a priori la prossima istruzione da eseguire.

Nell'architettura RISC il pipelining consente di raggiungere elevate velocità di calcolo.

Nell'architettura CISC i vantaggi del pipelining non vengono sempre sfruttati a causa della presenza di sitruzioni complesse che utilizzano tutte le fasi del pipelining rallentando quelle semplici.

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