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:

  1. Recebe a instrução “somar”.
  2. Pega os dois números (digamos, 5 e 3).
  3. Executa a soma em uma única operação.
  4. 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:

  1. Busca (Fetch): A instrução é buscada da memória.
  2. Decodificação (Decode): A CPU interpreta que é uma soma.
  3. Busca de operandos (Operand Fetch): Os valores de a e b são carregados.
  4. Execução (Execute): A soma é realizada.
  5. 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 e b) 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.

Referências


Aula 06-03-2025