Single Instruction Single Data - SISD
No SISD há apenas uma unidade de processamento (CPU) que executa uma única instrução por vez em um único conjunto de dados.
Note
É o modelo mais básico e tradicional de computação, correspondendo à arquitetura de von Neumann, onde as instruções são executadas sequencialmente.
Principais Características:
- Uma única instrução é buscada, decodificada e executada por ciclo de clock (seguindo as etapas da pipeline.
- Opera sobre um único dado por vez.
- Não há paralelismo no nível de instruções ou dados.
Note
Esse modelo é comum em computadores pessoais antigos ou em sistemas embarcados simples, onde não há necessidade de processar múltiplos fluxos de dados ou instruções simultaneamente.
Exemplo
Imagine que você está calculando a soma de dois números inteiros em uma calculadora básica.
A calculadora:
- Recebe a instrução “somar”.
- Pega os dois números (digamos, 5 e 3).
- Executa a soma em uma única operação.
- Retorna o resultado (8).
Aqui, há uma única instrução (“somar”) e um único conjunto de dados (os números 5 e 3). Não há paralelismo: a operação é feita passo a passo em uma única unidade de processamento.
Aplicação em Código (C++)
O programa executará uma instrução de soma sobre dois dados de entrada de forma sequencial.
#include <iostream>
using namespace std;
int main() {
// Declaração de variáveis (dados únicos)
int a = 5;
int b = 3;
int resultado;
// Instrução única: soma
resultado = a + b;
// Exibição do resultado
cout << "A soma de " << a << " e " << b << " é: " << resultado << endl;
return 0;
}
Declaração de variáveis: Definimos a
e b
como os dados de entrada (5 e 3) e resultado
para armazenar o valor final.
Instrução única: A operação resultado = a + b
é uma instrução de soma executada da seguinte forma na CPU:
- Busca (Fetch): A instrução é buscada da memória.
- Decodificação (Decode): A CPU interpreta que é uma soma.
- Busca de operandos (Operand Fetch): Os valores de a e b são carregados.
- Execução (Execute): A soma é realizada.
- Escrita (Write-back): O resultado é armazenado em resultado.
Note
Cada uma dessas etapas ocorre em um ciclo de clock separado, totalizando, no mínimo, 5 ciclos em uma pipeline típica. No entanto, o modelo SISD garante que apenas uma instrução esteja em processamento por vez na sequência do programa.
Saída: O programa exibe o resultado (8).
Esse código reflete o modelo SISD porque:
- Há uma única sequência de instruções sendo executada (o programa segue uma lógica linear).
- Opera sobre um único conjunto de dados (
a
eb
) por vez. - Mesmo com uma pipeline, a CPU processa as instruções de forma sequencial, sem paralelismo no nível de instruções ou dados. A pipeline apenas otimiza o throughput, permitindo que diferentes etapas de instruções subsequentes sejam processadas simultaneamente, mas ainda respeitando a ordem do programa.