Arquitetura de Multiprocessadores Simétricos (SMP)
Enviado por Elvis Venancio e classificado em Computação
Escrito em em
português com um tamanho de 4,04 KB
Multiprocessadores Simétricos (SMP)
Consiste em múltiplos processadores similares conectados entre si e à memória por um barramento ou outra forma de conexão interna.
Características
- Dois ou mais processadores similares, com capacidade de processamento comparável.
- Os processadores compartilham uma mesma memória e o acesso aos mesmos dispositivos de E/S (Entrada/Saída), através de canais comuns ou não.
Exemplo: SMP Sun Enterprise Server.
Barramento de Tempo Compartilhado
Características
- Estruturas e interfaces são praticamente as mesmas de um uniprocessador.
- Utiliza um mecanismo de tempo compartilhado.
- Limitado a dois ou três processadores, pois o barramento se torna um gargalo.
- O uso de cache melhora o tráfego no barramento e possibilita o uso de mais processadores.
Consequências do Uso de Cache em SMPs
- Mais processadores podem ser utilizados (tipicamente 16 ou 32).
- Surge o problema de coerência de cache.
Problema de Coerência de Cache
Ocorre porque podem existir várias cópias de um mesmo dado nas caches de diferentes processadores. Um processador pode alterar um dado na sua cache, tornando o conteúdo das caches dos outros processadores incoerente ou inválido.
Existem soluções implementadas em software (ex: sistema operacional e/ou compilador) e em hardware (mais comuns). As duas categorias principais são:
- Protocolos de diretório.
- Protocolos de monitoração (snoopy protocols).
Protocolos de Diretório (PD)
Abordagens baseadas em diretórios resolvem o problema de coerência de cache, porém, causam grande sobrecarga no sistema, já que a comunicação entre os processadores e o controlador central precisa ocorrer frequentemente.
Protocolos de Monitoração (PM)
São protocolos onde todos os processadores participam ativamente para resolver o problema da coerência de cache. A coerência pode ser mantida de duas formas:
- Escrita com atualização (write-update): Quando um processador altera um dado, todos os outros processadores são atualizados com o novo valor.
- Escrita com invalidação (write-invalidate): Quando um processador vai alterar um dado, ele invalida as cópias desse dado nas caches dos outros processadores.
Protocolo MESI
Um protocolo de coerência de cache que define quatro estados para cada linha de cache:
- Modificado (M): O dado na cache foi modificado, não é igual ao da memória principal e encontra-se somente nesta cache.
- Exclusivo (E): O dado na cache é igual ao da memória principal e encontra-se somente nesta cache.
- Compartilhado (S): O dado na cache é igual ao da memória, porém encontra-se também em outras caches.
- Inválido (I): O dado na cache não é válido.
Interconexão por Crossbar (Matriz de Comutação)
- As CPUs são ligadas aos módulos de memória por meio de crosspoints (switches que são eletronicamente abertos/fechados para conectar um par processador-memória).
- Permite acessos à memória em paralelo, desde que para módulos de memória distintos.
- Embora seja possível construir SMPs com um número grande de processadores usando esta técnica, na prática isso não acontece devido ao alto custo de construção.
Interconexão por Redes Multiestágio
- São construídas a partir de switches A/B, ou seja, com A entradas e B saídas.
- Diferentes tipos de redes multiestágio podem ser construídas, variando o tipo de switch e o padrão de conexão entre os estágios (ex: padrão perfect shuffle com switches 2x2).
- A desvantagem em relação à crossbar é que nem sempre dois acessos podem ocorrer em paralelo, mesmo que sejam para módulos de memória diferentes.