Please enable JavaScript.
Coggle requires JavaScript to display documents.
Computador Digital (Paralelismo / Pipelining (Paralelismo no nível do…
Computador Digital
Paralelismo / Pipelining
Meio de conseguir mais desempenho para dada velocidade de clock.
Paralelismo no nível de instrução
Divide execução de instrução em muitas partes
Manipuladas por hardwares diferentes
Executadas em paralelo (Simultaneamente)
Compromisso entre latência
Largura de banda de processador
Arquiteturas superescalares
Pipeline multiplo
ULAs próprias
Resultados independentes
Compilador compara resultados
Conflitos detectados e eliminados por hardware extra
Não pode ter conflito c/ ultilização simultânea de recurso
Mais que 2 pipelines
Evolução
Processadores que emitem múltiplas instruções
Pipeline u
Executa instrução Pentium Qualquer
Instruções compatíveis
Executadas em paralelo
Instrução simples/incompatível
Somente uma executada
Pipeline v
instruções com números inteiros
instrução simples de ponto flutuante – FXCH
Paralelismo no nível do processador
Computadores com várias CPUs
SIMD (Single Instruction-stream Multiple Data-stream)
"Computador paralelo"
Poder de computação significativo
Menos transistores
Um meio mais eficiente de "espremer desempenho" do silício
Necessita
Software altamente regular
Muito paralelismo
Conjunto de processadores Idênticos
Mesma sequência de instrução
Diferentes conjuntos de dados
ILLIAC IV
GPUs
Processadores vetoriais
Extensão de um processador único
Semelhante ao SIMD
Eficiente p executar uma sequência de operações em pares de elementos de dados.
Unidade funcional única
Alto grau de paralelismo.
Registrador vetorial
Conjunto de registradores convencionais
Carregados com base na memória
Única instrução
Multiprocessadores
Mais de uma CPU
Uma memória em comum
Coordenados em Software p/ evitar conflito
Fortemente acoplados
Multicomputadores
Fácil Construção
≤ 256 processadores
Memória não compartilhada
Computadores interconectados
Própria memória privada
Fracamente acopladas
RISC (Reduced Instruction Set Computer)
Chips para CPUs VLSI que não usavam interpretação
MIPS
Um pouco diferente
Importante comercialmente
SPARC
Importante comercialmente
Incompatíveis com produtos existentes
Livres para adotar novos conjuntos de instruções de maior desempenho
Enfâse inicial em instrução simples
Enfase final em instruções que podiam ser emitidas rapidamente
Melhor desempenho
Número relativamente pequeno de instruções disponíveis
Cerca de 50
Sun UltraSPARC
Princípios de projeto RISC
Todas instruções executadas diretamente por hardware
Sem microinstruções
Mais veloz
Taxa de execução das instruções maximizada
Tentar iniciar o máximo possível de instruções por segundo.
MIPS (Milhões de Instruções Por Segundo)
Instruções fáceis de decodificar
Somente LOAD e STORE devem referenciar a memória
Todas as outras devem operar apenas em
registradores.
Muitos registradores
Mínimo 32
Processador/CPU (Central Processing Unit)
Unidade de Controle / CU (Control Unit)
Buscar Instrução
Definir tipo de Instrução
Registrador-memória
Busca "palavras" na memória
Armazena para uso em outras instruções
Registrador-registrador (Ciclo do caminho de dados)
Busca 2 operandos
Efetua alguma operação
Armazena nos registradores
Define atividade da máquina até certo ponto
Determina velocidade do pc de acordo com a velocidade do ciclo
Enviar instrução p/ "responsável"
ULA
Registradores
Outro componente externo
Hardware
Unidade de lógica e aritimética (ULA)
Cálculos simples (Adição e Subtração)
AND booleano
Memória do processador de alta velocidade
Registradores
Contador / PC (Program Counter)
Registrador de Instrução / IR (Instruction Register)
Buscar Decodifica Executar
1-Trazer instrução
2-Alterar Contador
4-Se usar palavra na memória: Determinar onde está
3-Determinar tipo de instrução
5-Se necessario: Trazer palavra para registrador
6-Executar
7-Voltar ao passo 1
Organização Estruturada PC
Executando programas em "L" diretamente
Intepretadores
Interpretar com Software
Mais barato por precisar de menos hardware
Instruções mais simples
Pode ser sobreposta :red_cross:
Pode ser executada em paralelo por um hardware diferente :red_cross:
Primeiros microprocessadores de 8 bits
Pode corrigir em campo instruções executadas incorretamente :check:
Pode compensar deficiências de projeto no hardware básico :check:
Acrescentar novas instruções a um custo mínimo :check:
Permite desenvolvimento, teste e documentação eficientes de instruções complexas :check:
Interpretar com Hardware (processadores)
Instruções mais complexas
instrução de ponto flutuante
Da suporte direto para acessar elementos matriciais
Maior compatibilidade de instruções
Alimentam o custo crescente do desenvolvimento de software
Computadores mais caros
Execuções mais rápidas
Interpretar com Hardware e Software
Computadores simples e de menor custo
Executam um grande número de instruções
IBM System/360
Computadores compatíveis
Menor preço
Maior capacidade
Hardware direto (Não interpretado)
Microprocessadores no final de 1970
Difícil lidar com a crescente complexidade, possibilitada por meio de circuitos integrados.
Processadores simples
Memórias de interpretadores complexas
Tornou-se modo convencional de projetar computadores em 1970
Memórias de controle
Usada para conter os interpretadores
Microinstruções
Instrução interpretada
Arquitetura
PCs com mesmo nível de compatibilidade
Composição de hardware diferente
CISC (Complex Instruction Set Computer)
VAX
Intel
Pentium
Arquitetura Híbrida de RISC com CISC
Nucleo RISC p/ instruções simples
Núcleo CISC p/ instruções complexas
Menos veloz que um RISC puro
Ainda possui compatibilidade
IBM