SlideShare uma empresa Scribd logo
Engenharia de Computação
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 1
• Computadores cada vez mais rápidos
• Demandas crescentes
• Os Cientistas, os Engenheiros e a Indústria querem usar os
computadores para projetar e testar todas as suas teorias e
protótipos.
• Exemplo: projetar medicamentos para doenças específicas sem
ter de sacrificar animais
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 2
• A velocidade dos atuais circuitos não podem aumentar
indefinidamente
• A velocidade do clock tem aumentado gradativamente
• Dissipação de calor é um grande problema
• Tamanho dos transistores continua a diminuir: cada TRANSISTOR
terá um número tão pequeno de ÁTOMOS dentro dele que os
efeitos da mecânica quântica podem se tornar um grande
problema
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 3
• Computadores paralelos são uma solução temporária para as
necessidades atuais da sociedade
• Uma máquina + uma CPU + tempo de 0,001ns  impossível
• Várias máquinas + 1000 CPUs + tempo de 1ns cada 
possível
• O paralelismo existe em vários níveis
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 4
• Nível mais baixo: CPU, pipeline, CPUs superescalares, palavras
de instruções muito longas, múltiplos threads de controle ao
mesmo tempo, CPUs reunidas em um mesmo CHIP, etc.
Desempenho 10x maior
• Nível seguinte: placas extras de CPU com funções especificas.
Desempenho de 5 a 10x maior.
• Independente do fato de desempenho aumentar, CPUs devem
ser replicadas INTEIRAS e devem funcionar juntas com eficiência
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 5
• Clusterização, multicomputadores, multiprocessadores, grids,
nuvem
• PROCESSAMENTO FORTEMENTE ACOPLADO: quando duas
CPUs ou dois elementos de processamento estão perto um do
outro, têm alta largura de banda, o atraso é baixo e são
próximos computacionalmente
• PROCESSAMENTO FRACAMENTE ACOPLADO: quando estão
longe um do outro, têm baixa largura de banda, alto atraso,
são remotos computacionalmente
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 6
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 7
• Objetivo: Fazer mais coisas ao mesmo tempo
• Emissão de múltiplas instruções por ciclo de clock
• Dois tipos:
• Processadores superescalares
• Processadores VLIW
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 8
• CPUs Superescalares são capazes de emitir múltiplas
instruções para as unidades de execução em um único ciclo
de clock
• De duas a seis instruções podem ser emitidas de uma única
vez
• O número máximo é determinado pelo hardware
• Se uma instrução precisar de uma unidade funcional ou
resultado que não está disponível, ela não será emitida
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 9
• Very Long Instruction Word – palavra de instrução muito
longa
• Instruções que usavam múltiplas unidades funcionais
• Exemplificando:
• Considere uma máquina que tenha 5 unidades funcionais,
efetua simultaneamente 2 operações com inteiros, 1
operação em ponto flutuante, 1 carregamento e 1
armazenamento.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 10
• Uma instrução VLIW para essa máquina conteria 5 opcodes
e 5 pares de operandos, sendo 1 opcode e 1 par de
operandos por unidade funcional
• Supondo 6 bits por OPCODE, 5 bits por REGISTRADOR, 32
bits por endereço de memória, as instruções teriam 134 bits.
• Isso significa uma palavra longa: tamanho de bits de uma
instrução muito grande
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 11
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 12
• DESVANTAGEM: nem toda instrução podia utilizar todas as
unidades funcionais, o que resultava em muitas NO-OP
• Transfere do tempo de execução para o tempo de
compilação o trabalho de determinar quais instruções podem
ser emitidas em conjunto
• Simplifica o hardware e o torna mais rápido
• Paralelismo no nível da memória: há múltiplas operações de
memória no ar ao mesmo tempo
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 13
• Problema INERENTE no PIPELINE das CPUs modernas:
• Quando uma referência à memória encontra uma ausência das caches
de nível 1 e nível 2, há uma longa espera até que a palavra
requisitada, e sua linha de cache associada, sejam carregadas na
cache, portanto, o pipeline para.
• MULTITHREADING NO CHIP:
• Solução para o problema descrito acima
• Permite que a CPU gerencie múltiplos threads de controle ao mesmo
tempo
• Se o thread 1 estiver bloqueado, a CPU ainda tem chance de
executar o thread 2, de modo a manter a CPU sempre ocupada
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 14
• Multithreading de granulação fina:
• Mascara as protelações executando os threads segundo uma
política de alternância circular, com um thread diferente em
ciclos consecutivos
• Se uma protelação de memória demorasse quatro ciclos,
precisaríamos de quatro threads para garantir a operação
contínua e assim por diante
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 15
• Cada thread precisa do seu próprio conjunto de registradores
• O número máximo de threads que podem ser executados de uma só
vez é fixado no projeto do chip
• RAZÃO PARA PROTELAÇÃO
• Operações de memória.
• Uma instrução pode precisar de um resultado calculado por outra
instrução que ainda não foi concluída.
• Uma instrução não pode iniciar porque ela vem após um desvio
condicional cuja direção ainda não é conhecida
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 16
• Se o pipeline tiver K estágio, mas houver no mínimo K threads para
fazer alternância circular, NUNCA haverá mais de uma instrução por
THREAD no pipeline a qualquer momento, portanto, Não pode
ocorrer nenhum conflito.
• Dessa forma a CPU executa em velocidade total e não fica OCIOSA
• MULTITHREADING DE GRANULAÇÃO GROSSA:
• Nem sempre há tantos threads disponíveis quantos são os estágios
do pipeline
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 17
• Se perde um ciclo sempre que uma instrução protela
• Troca threads quando há protelação ou
• Trocar threads de imediato em qualquer instrução que poderia
acarretar uma protelação, antes mesmo de descobrir se ela de fato
causaria isso.
• É potencialmente menos eficiente do que o de granulação fina
• Vantagem: precisa de um número menor de threads para manter a
CPU ocupada
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 18
• Monitorar qual operação pertence a qual thread
• MULTITHREADING DE GRANULAÇÃO FINA: anexar um identificador
de thread a cada operação, para que sua identidade fique clara ao
percorrer o pipeline
• MULTITHREADING DE GRANULAÇÃO GROSSA: ao trocar de
threads, limpar o pipeline e só então iniciar o próximo thread
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 19
• Considere, a partir de agora, que a CPU pode emitir múltiplas
instruções por ciclo de clock
• Manter a regra: quando uma instrução protela, as subsequentes não
podem ser emitidas
• MULTITHREADING DE GRANULAÇÃO FINA PARA UMA CPU
SUPERESCALAR DUAL:
• Emite duas instruções por ciclo de clock
• Para o Thread A, as duas primeiras instruções podem ser emitidas
no 1.º ciclo
• Para o Thread B, há um problema no próximo ciclo, então somente
uma instrução será emitida
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 20
• MULTITHREADING DE GRANULAÇÃO GROSSA PARA UMA CPU
SUPERESCALAR DUAL:
• Os threads são executados um por vez
• A CPU emite duas instruções por thread até atingir um que protela
• Nesse ponto, troca para o próximo thread no início do ciclo seguinte
• MULTITHREADING SIMULTANEO:
• Refinamento do multithreading de granulação grossa
• Um único thread tem permissão de emitir duas instruções por ciclo
pelo tempo que puder
• Quando protelar, as instruções são tomadas imediatamente do
próximo thread na sequencia
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 21
• MULTITHREADING SIMULTANEO:
• Mantém a CPU ocupada por completo
• Ajuda a manter ocupadas todas as unidades funcionais
• Uma instrução de um thread diferente pode ser escolhida para ser
executada, caso uma instrução de outra thread não possa ser
iniciada porque a unidade funcional de que ela precisa está
ocupada
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 22
• Duas ou mais CPUs em um único CHIP
• Compartilham a mesma cache L2
• Compartilham memória principal
• Área de aplicação típica:
• Servidores web:
• Compartilham memória principal, memória cache,
memória permanente, interfaces de rede, etc.
• Isto dobra o desempenho sem dobrar o custo
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 23
• 1.ª forma de implementação:
• Uma CPU um único chip, mas com dois pipelines
• Dobra a taxa de execução de instruções
• Recursos (unidades funcionais) podem ser compartilhados
entre os processadores. Isso permite que uma CPU use
recursos que outra não esteja usando, entretanto, não
funciona bem para mais de 2 CPUs.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 24
• 2.ª forma de implementação:
• Núcleos separados no mesmo CHIP
• Cada núcleo contém uma CPU completa
• NÚCLEO: é um grande circuito, controlado por E/S ou CACHE,
que pode ser colocado em um CHIP de forma modular.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 25
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 26
• Área de aplicação: sistemas embutidos (televisores, DVDs,
filmadoras, consoles, smartphones, etc.)
• Exemplo: composição de um APARELHO DE TELEVISÃO
• Controle de servomecanismo (cabeçote)
• Correção de erros
• Decriptação e gerenciamento de direitos digitais
• Descompressão de vídeo
• Descompressão de áudio
• Codificação de saída (NTSC, PALM, SECAM)
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 27
• O trabalho realizado pelo aparelho de televisão exige os
seguintes cuidados:
• Restrições de tempo real
• Qualidade de serviço
• Energia
• Dissipação de calor
• Tamanho
• Peso
• Preço
• Etc.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 28
• Multiprocessador heterogêneo:
• Contem múltiplos núcleos
• Cada núcleo especializado em uma tarefa particular
• As funções dos núcleos são todas diferentes
• Cada uma é projetada com cuidado para ser muito boa
no que faz pelo preço mais baixo possível
• Processadores dedicados em hardware: chips
multiprocessadores heterogêneos que contem múltiplos
núcleos projetos para aplicações audiovisuais
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 29
• O processador de controle de um multiprocessador
heterogêneo é uma CPU programável de uso geral
• À medida que os dispositivos (sistemas embutidos) adquirem
cada vez mais funcionalidades e recursos, a necessidade de
multiprocessadores heterogêneos só aumenta
• Chips como esses são grandes demais
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 30
• A maneira mais viável de projetar um multiprocessador como
este é:
• Usar núcleos que contenham subconjuntos grandes
• Colocar os núcleos e interconectá-los no chip conforme
necessidades
• Determinar no projeto:
• Qual núcleo de CPU usar para processador de controle
• Quais Processadores de uso especial acrescentar
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 31
• Atribuir mais carga ao software que executa no processador
de controle faz o sistema ficar mais lento, entretanto, o chip
fica menor e mais barato
• Ter mais processadores de uso especial para áudio e vídeo
ocupa uma área maior do chip, o que aumenta o custo, mas
melhora o desempenho, diminui taxa de clock, consume
menos energia e dissipa menos calor.
• 50% a 75% da área do chip é dedicado à memória, devido
às grandes quantidades de dados que precisam ser
processados
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 32
• Questões relevantes de projeto que tem implicações par ao
desempenho, consumo de energia e dissipação de calor do
chip:
• Quantos níveis de cache devem se usados?
• As caches devem ser unificadas ou divididas?
• Qual deverá ser o tamanho de cada uma?
• Qual deverá ser a rapidez?
• Um pouco da memória também deve ir par ao chip?
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 33
• Como todos os núcleos se comunicam uns com os outros?
• Sistemas pequenos: um único barramento
• Sistemas maiores:
• Múltiplos barramentos
• Anel que vai de um núcleo ao outro
• Etc.
• Exemplo de barramento usado em sistemas embutidos:
CoreConnect, AMBA, VCI, OCP-IP, etc.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 34
• O computador ganha velocidade com a adição de um segundo
processador especializado: o coprocessador. Exemplos:
• Coprocessadores de E/S
• Coprocessadores gráficos
• Coprocessadores de ponto flutuante
• DMA (acesso direto a memória)
• A CPU dá ao coprocessador uma ou mais instruções e ordena que
ele as execute. Em alguns casos, o coprocessador é independente
e funciona por si só
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 35
• Coprocessadores podem ser:
• Gabinete separado (canais de E/S, por exemplo)
• Placa de expansão (processadores de rede, por exemplo)
• Área no chip principal
• O coprocessador ajuda o processador principal
• Três áreas: processamento de rede, multimídia e criptografia
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 36
• Coprocessadores podem ser:
• Gabinete separado (canais de E/S, por exemplo)
• Placa de expansão (processadores de rede, por exemplo)
• Área no chip principal
• O coprocessador ajuda o processador principal
• Três áreas: processamento de rede, multimídia e criptografia
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 37
• Dificuldade em processar os dados que trafegam pela rede em
software
• Computadores de alta tecnologia contém um processador de rede
• Curiosidade:
• Velocidade das LANs atuais: 40 gigabits/segundo com pacotes
de 1 KB
• Computador em rede: processa 5 milhões de pacotes/segundo
• Qual a solução para o processamento dessa enorme quantidade
de pacotes?
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 38
• Primeira opção:
• ASIC:
• Application specific integrated circuit
• Circuito integrado específico da aplicação
• Hardware para processamento rápido de pacotes
• Executa qualquer conjunto de funções de processamento
para o qual foi projetado
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 39
• ASIC:
• Desvantagens:
• Projeto demorado
• Fabricação demorada
• É preciso projetar e fabricar um novo chip se houver
uma nova funcionalidade
• Gerenciamento de bugs é péssimo
• São caros
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 40
• Segunda opção:
• FPGA
• Field programmable gate array
• Arranjo de portas programável em campo
• Um conjunto de portas que pode ser organizado
conforme o circuito desejado modificando sua fiação
em campo
• Projeto e fabricação rápidos
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 41
• Segunda opção:
• FPGA
• Desvantagem:
• Complexos
• Lentos
• Caros
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 42
• Terceira opção:
• Processadores de rede
• Dispositivos programáveis que podem manipular pacotes que chegam
e que saem à velocidade dos fios (em tempo real)
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 43
• Terceira opção:
• Processadores de rede
• Milhões de pacotes por segundo por linha de rede
podem ser processados
• Um roteador pode ter várias linhas de rede
• Processadores de redes devem ter alto grau de
paralelismo
• PPEs:
• protocol-programmable-packet processor engines
• Dispositivos de processamento de protocolo-
programáveis-pacotes
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 44
• Terceira opção:
• PPEs:
• Um processador de rede tem vários PPEs
• É um núcleo RISC com memória interna para o programa e
algumas variáveis
• Todos os processadores de rede contém também um processador
de controle (processador RISC padronizada de uso geral)
• Todos os componentes do processador de rede se comunicam por
um ou mais barramentos paralelos no chip
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 45
• Tratamento de processamento gráfico de alta resolução. Exemplo:
renderização 3D.
• GPUs:
• Graphics processing units
• Unidades de processamento gráfico
• CUDA:
• Compute unified Device Architecture
• Arquitetura de elemento unificado de computação
• Cálculos com inteiros e ponto flutuante com precisão simples
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 46
• SMs
• Streaming multiprocessor
• Multiprocessadores streaming
• Cada SMs tem uma quantidade de CUDA
• GPGPUs
• General purpose graphics processing units
• Unidades de processamento gráfico de uso geral
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 47
• Área de segurança e segurança de redes
• Criptografia faz uso intensivo de computação
• Dois tipos de criptografia:
• Chave simétrica: baseada em mistura completa de bits
(bater tudo em um liquidificador)
• Chave pública: baseada em multiplicação e
exponenciação de grandes números. Consome enorme
quantidade de tempo.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 48
• Coprocessadores criptográficos
• Placas de expansão para barramento PCI
• Tem um hardware especial que habilita a execução da
criptografia necessária muito mais rápido do que uma CPU
comum.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 49
• É um computador paralelo no qual todas as CPUs compartilham
uma memória comum
• Todos os processos que funcinam juntos em um multiprocessador
podem compartilhar um único espaço de endereço virtual
mapeado para a memória comum
• Qualquer processo pode ler ou escrever uma palavra da
memória apenas executando uma instrução LOAD ou STORE
• Vantagem: capacidade de dois ou mais processos se
comunicarem apenas lendo e escrevendo na memória
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 50
• Duas formas de acesso à E/S
• 1.ª: Somente certas CPUs tem acesso ao dispositivos e tem
uma função especial de E/S
• 2.ª: Cada CPU tem igual acesso a todo dispositivo de E/S.
• SMP – symmetric multiprocessor – multiprocessador
simétrico: quando cada CPU tem igual acesso a todos os
módulos de memória e a todos os dispositivos de E/S e é
tratada pelo sistema operacional como intercambiável com
as outras.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 51
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 52
• Uma das distinções entre multiprocessadores e
multicomputadores é o sistema operacional.
• Em multiprocessadores há apenas uma única cópia do S.O.
• Em multicomputadores, cada computador tem sua própria
cópia do S.O.
• Multicomputador: Toda CPU tem sua memória privada,
acessível somente a ela mesma e a nenhuma outra
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 53
• Também pode ser chamado de memória distribuída
• A CPU de um multicomputador tem sua própria memória local
privada, a qual pode acessar apenas executando instruções
LOAD e STORE.
• Nenhuma outra CPU pode acessar instruções LOAD e STORE
• Multicomputadores tem um espaço de endereço físico para cada
CPU
• Multiprocessadores tem um único espaço de endereço físico
compartilhado por todas as CPUs
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 54
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 55
• Multicomputadores não podem se comunicar lendo e
escrevendo na memória comum
• Solução: as CPUS passam mensagens uma para outro usando
a rede de interconexão
• Exemplos: IBM BlueGene/L, Red Storm e Cluster Google
• A comunicação entre processos costuma usar primitiva de
software como SEND e RECEIVE
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 56
• Em um multicomputador as CPUs precisam descobrir qual
CPU tem os dados de que precisa e enviar a essa CPU uma
mensagem requisitando uma cópia dos dados
• Assim, a CPU bloqueia até que a requisição seja atendida.
• Programar multicomputadores é mais difícil do que
programar um multiprocessador (baixo nível)
• Entretanto, é mais barato e simples construir GRANDES
multicomputadores do que multiprocessadores
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 57
• Atualmente são utilizados sistemas híbridos
• Chave do sucesso: construir projetos que continuem a
funcionar bem à medida que mais e mais CPUs sejam
adicionadas
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 58
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 59
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 60
• Categorização em fluxos de instruções e fluxos de dados
• Fluxo de instruções: corresponde a um contador de programa.
Um sistema com N CPUs tem N contadores de programa,
portanto, n fluxos de instruções
• Fluxo de dados: conjunto de operandos.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 61
• SISD: Single instruction stream, single data stream. Fluxo de
instrução único, fluxo de dados único. Um fluxo de instruções, um
fluxo de dados e faz uma coisa por vez
• SIMD: Single Instruction Multiple Data. Uma única instrução
manipula vários dados. Tem uma única UC que emite uma
instrução por vez, mas tem múltiplas ULAs para executar as
instruções em vários conjuntos de dados simultameamente
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 62
• MISD: Multiple Instruction Single Data. Multiplas instruções com
dados únicos. Múltiplas instruções operando no mesmo conjunto
de dado
• MIMD: Multiple Instructions Multiple Data. Multiplas instruções
manipulando múltiplos dados diferentes. Múltiplas CPUs
independentes operando como parte de um sistema maior.
Multiprocessadores e multicomputadores são máquinas MIMD
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 63
• UMA:
• uniform memory aaccess
• acesso uniforme à memória
• CARACTERISTICA: A memória é subdividida em vários
módulos. Cada CPU tem o mesmo tempo de acesso a todos
a todos os módulos de memória.
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 64
• COMA: cache only memory access – acesso somente à memória
cache
• NUMA: nonuniform memory access – acesso não uniforme à
memória
• CARACTERISTICA DE AMBAS: é mais rápido acessar os módulos
de memória que esTão próximos a cada CPU do que os mais
distantes
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 65
• MPPs:
• massively parallel processors
• Processadores de paralelismo maçico
• São supercomputadores caros que consistem em muitas
CPUs fortemente acopladas por uma rede de interconexão
proprietária de alta velocidade
• Exemplo: IBM SP/3
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 66
• COWs
• Cluster of workstations
• Grupo de estações de trabalho
• Consistem em PCs ou estações de trabalhos comuns,
montados em estantes e conectados por tecnologia de
interconexão comercial
13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 67

Mais conteúdo relacionado

PPTX
Aula 08 - Placa Mãe
Suzana Viana Mota
 
PDF
Processadores intel 8008 e 8080
Elaine Cecília Gatto
 
PPT
Multi, Inter ou Transdisciplinaridade?
Ranlig
 
PPT
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
Wellington Oliveira
 
PPT
Aula 04 arquitetura de computadores
Daniel Moura
 
PDF
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Cleber Fonseca
 
PPTX
Arquitetura de um computador
Filipe Duarte
 
Aula 08 - Placa Mãe
Suzana Viana Mota
 
Processadores intel 8008 e 8080
Elaine Cecília Gatto
 
Multi, Inter ou Transdisciplinaridade?
Ranlig
 
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
Wellington Oliveira
 
Aula 04 arquitetura de computadores
Daniel Moura
 
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Cleber Fonseca
 
Arquitetura de um computador
Filipe Duarte
 

Mais procurados (20)

PDF
Seminários G5 - 5ª geração
Anderson Andrade
 
PPT
Tipos de Sistemas Operacionais
Luciano Crecente
 
ODP
Aula05 - Arquitetura e manutanção de Computadores
Jorge Ávila Miranda
 
PPT
1ª aula introdução a informática
socrahn
 
PPT
Introdução - Arquitetura e Organização de Computadores
Wellington Oliveira
 
PPT
Placa mãe
Douglas Vieira
 
PDF
Evolução da informática
Julian Boldt Pinto
 
PPT
Arquitetura cliente servidor
Marcia Abrahim
 
PDF
Endereçamento de memória
Elaine Cecília Gatto
 
PDF
1.Introdução Banco de Dados
vini_campos
 
PPTX
aula tic na educacao
Eduardo Becker Jr.
 
PPTX
Informática Básica - Aula 03 - Hardware
Joeldson Costa Damasceno
 
PPTX
Evolução dos Computadores
stordehistoria
 
PPTX
Evolução dos processadores
Tiago Garcia
 
PPTX
História e evolução do computadores
UEG
 
PDF
História da informática
Aron Sporkens
 
DOC
Plano de ação 8 ano
Sandra Regina Clemente
 
DOTX
Modelo de prova
Rogério Cardoso
 
PDF
01 gpme - atividade empreendedora
Ricardo Barboza da Silva
 
PDF
Aula 1- Fundamentos da computação móvel
Janynne Gomes
 
Seminários G5 - 5ª geração
Anderson Andrade
 
Tipos de Sistemas Operacionais
Luciano Crecente
 
Aula05 - Arquitetura e manutanção de Computadores
Jorge Ávila Miranda
 
1ª aula introdução a informática
socrahn
 
Introdução - Arquitetura e Organização de Computadores
Wellington Oliveira
 
Placa mãe
Douglas Vieira
 
Evolução da informática
Julian Boldt Pinto
 
Arquitetura cliente servidor
Marcia Abrahim
 
Endereçamento de memória
Elaine Cecília Gatto
 
1.Introdução Banco de Dados
vini_campos
 
aula tic na educacao
Eduardo Becker Jr.
 
Informática Básica - Aula 03 - Hardware
Joeldson Costa Damasceno
 
Evolução dos Computadores
stordehistoria
 
Evolução dos processadores
Tiago Garcia
 
História e evolução do computadores
UEG
 
História da informática
Aron Sporkens
 
Plano de ação 8 ano
Sandra Regina Clemente
 
Modelo de prova
Rogério Cardoso
 
01 gpme - atividade empreendedora
Ricardo Barboza da Silva
 
Aula 1- Fundamentos da computação móvel
Janynne Gomes
 
Anúncio

Semelhante a Arquiteturas de computadores: Paralelismo (20)

PPTX
Arquiteturas de Computadores Paralelos
Elaine Cecília Gatto
 
PPTX
Pipeline Técnica de processadores.
Cleber Ramos
 
PDF
Processos e threads cap 02 (i unidade)
Faculdade Mater Christi
 
PPTX
Aula 06 - Algoritmo de Escalonamento Interativo.pptx
EnzoAlvesCardoso
 
PPTX
Escalonamento no Windows
Felipe Costa
 
DOCX
Pipeline 2
Raislan oliveira
 
PDF
Sistemas Distribuídos - Computação Paralela - Introdução
Adriano Teixeira de Souza
 
PDF
Sistemas Distribuídos - Computação Paralela
Adriano Teixeira de Souza
 
PPT
O Futuro dos Microprocessadores SO_Custer.ppt
ApebNetherlands
 
PPT
Arquitetura 8 2
Paulo Fonseca
 
PPT
Thread Java
Wellington Oliveira
 
PDF
Superescalaridade
Jerônimo Medina Madruga
 
DOC
Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
Joao Galdino Mello de Souza
 
PDF
Cap-6-Multiplrocessadores.pdf
HurgelNeto
 
PDF
04_Barramentos.pdf
AriclenesDenirio
 
PPTX
Microarquitetura Intel Core Duo
Samuel Bié
 
PDF
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
MatheusNS1
 
PPTX
Sistemas operacionais 04
SandroMatheusPereira
 
PDF
Aula sobre multithreading
Bianca Dantas
 
Arquiteturas de Computadores Paralelos
Elaine Cecília Gatto
 
Pipeline Técnica de processadores.
Cleber Ramos
 
Processos e threads cap 02 (i unidade)
Faculdade Mater Christi
 
Aula 06 - Algoritmo de Escalonamento Interativo.pptx
EnzoAlvesCardoso
 
Escalonamento no Windows
Felipe Costa
 
Pipeline 2
Raislan oliveira
 
Sistemas Distribuídos - Computação Paralela - Introdução
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Paralela
Adriano Teixeira de Souza
 
O Futuro dos Microprocessadores SO_Custer.ppt
ApebNetherlands
 
Arquitetura 8 2
Paulo Fonseca
 
Thread Java
Wellington Oliveira
 
Superescalaridade
Jerônimo Medina Madruga
 
Tendências Tecnológicas em Processadores, por Luiz Carlos Orsoni
Joao Galdino Mello de Souza
 
Cap-6-Multiplrocessadores.pdf
HurgelNeto
 
04_Barramentos.pdf
AriclenesDenirio
 
Microarquitetura Intel Core Duo
Samuel Bié
 
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
MatheusNS1
 
Sistemas operacionais 04
SandroMatheusPereira
 
Aula sobre multithreading
Bianca Dantas
 
Anúncio

Mais de Elaine Cecília Gatto (20)

PDF
Exercícios resolvidos de MIPS Portal Embarcados
Elaine Cecília Gatto
 
PDF
Exercicio Resolvido de Busca Binária com Codigo e Imagens
Elaine Cecília Gatto
 
PDF
A influência da Tecnologia em cada faixa etaria
Elaine Cecília Gatto
 
PPTX
Inteligência Artificial Aplicada à Medicina
Elaine Cecília Gatto
 
PPTX
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Elaine Cecília Gatto
 
PPTX
Apresentação da minha tese de doutorado no EPPC
Elaine Cecília Gatto
 
PDF
entrevista r7.pdf
Elaine Cecília Gatto
 
PPTX
Como a pesquisa científica impacta o mundo real.pptx
Elaine Cecília Gatto
 
PDF
Empoderamento Feminino
Elaine Cecília Gatto
 
PPTX
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Elaine Cecília Gatto
 
PPTX
Community Detection for Multi-Label Classification - Seminários UFSCar
Elaine Cecília Gatto
 
PPTX
Classificação Multirrótulo: Aprendizado de Correlações
Elaine Cecília Gatto
 
PDF
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Elaine Cecília Gatto
 
PPTX
Community Detection Method for Multi-Label Classification
Elaine Cecília Gatto
 
PDF
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Elaine Cecília Gatto
 
PDF
Curtinhas de sábado.pdf
Elaine Cecília Gatto
 
PDF
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Elaine Cecília Gatto
 
PDF
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Elaine Cecília Gatto
 
PDF
Pipeline desdobramento escalonamento
Elaine Cecília Gatto
 
PDF
Cheat sheet Mips 32 bits
Elaine Cecília Gatto
 
Exercícios resolvidos de MIPS Portal Embarcados
Elaine Cecília Gatto
 
Exercicio Resolvido de Busca Binária com Codigo e Imagens
Elaine Cecília Gatto
 
A influência da Tecnologia em cada faixa etaria
Elaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Elaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Elaine Cecília Gatto
 
entrevista r7.pdf
Elaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Elaine Cecília Gatto
 
Empoderamento Feminino
Elaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Elaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Elaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Elaine Cecília Gatto
 
Curtinhas de sábado.pdf
Elaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Elaine Cecília Gatto
 
Cheat sheet Mips 32 bits
Elaine Cecília Gatto
 

Último (20)

PDF
FICHA FINANÇAS: como controlar meu dinheiro
Professor Belinaso
 
PDF
Casa2.pdf, apartamento, vivenda, moradia.moadia
biblioteca123
 
PDF
Antologia Verso e Prosa Departamento Cultural Clube Naval 2019.pdf
elvandroburity
 
PDF
BIOLOGIA CELULAR - Biologia | Primeiro Ano Ens. Médio
islaineeli
 
DOCX
LP - 5º ANO - 2º BIMESTRE - PLANEJAMENTO BIMESTRAL 2025.docx
VivianeAlmeida284960
 
PDF
Inteligência Artificial Generativa - CMMG.pdf
Ana Paula Coelho Barbosa
 
PPT
Ponto_5_-_Valorizacao dos profissionais da educ
mbjustus
 
PPTX
Slides Lição 5, CPAD, Uma Igreja Cheia de Amor, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
PDF
Segurança no Trânsito - Educação para transformar
Jhonata49
 
PDF
Aula redação e leitura ................
VIVIANEMENDESSILVA
 
PPTX
Slides Lição 4, CG, Pedro, A Epístola Da Esperança, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
PDF
🎨 DiálogoGraça Morais.pdfartista plástica
biblioteca123
 
DOCX
Mapa da Oceania - Países e Dependências.docx
Doug Caesar
 
PDF
A Geografia de Portugal.pdfRegiões e relevo.
biblioteca123
 
DOCX
Mapa Histórico da Oceania Impérios e Reinos .docx
Doug Caesar
 
PPTX
Slides Lição 6, CPAD, Uma Igreja Não Conivente Com A Mentira, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
PDF
Material de odontologia, para estudantes da área de radiologia em busca de co...
EltonSantiago7
 
PDF
Visita ao museu.pdf, museu marítimo de Ílhavo
biblioteca123
 
PPTX
Saude_mental_no_trabalho_psicologia organizacional
mbjustus
 
DOCX
Mapa de Nauru - Mapa dos Países do Mundo
Doug Caesar
 
FICHA FINANÇAS: como controlar meu dinheiro
Professor Belinaso
 
Casa2.pdf, apartamento, vivenda, moradia.moadia
biblioteca123
 
Antologia Verso e Prosa Departamento Cultural Clube Naval 2019.pdf
elvandroburity
 
BIOLOGIA CELULAR - Biologia | Primeiro Ano Ens. Médio
islaineeli
 
LP - 5º ANO - 2º BIMESTRE - PLANEJAMENTO BIMESTRAL 2025.docx
VivianeAlmeida284960
 
Inteligência Artificial Generativa - CMMG.pdf
Ana Paula Coelho Barbosa
 
Ponto_5_-_Valorizacao dos profissionais da educ
mbjustus
 
Slides Lição 5, CPAD, Uma Igreja Cheia de Amor, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
Segurança no Trânsito - Educação para transformar
Jhonata49
 
Aula redação e leitura ................
VIVIANEMENDESSILVA
 
Slides Lição 4, CG, Pedro, A Epístola Da Esperança, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
🎨 DiálogoGraça Morais.pdfartista plástica
biblioteca123
 
Mapa da Oceania - Países e Dependências.docx
Doug Caesar
 
A Geografia de Portugal.pdfRegiões e relevo.
biblioteca123
 
Mapa Histórico da Oceania Impérios e Reinos .docx
Doug Caesar
 
Slides Lição 6, CPAD, Uma Igreja Não Conivente Com A Mentira, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
Material de odontologia, para estudantes da área de radiologia em busca de co...
EltonSantiago7
 
Visita ao museu.pdf, museu marítimo de Ílhavo
biblioteca123
 
Saude_mental_no_trabalho_psicologia organizacional
mbjustus
 
Mapa de Nauru - Mapa dos Países do Mundo
Doug Caesar
 

Arquiteturas de computadores: Paralelismo

  • 1. Engenharia de Computação 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 1
  • 2. • Computadores cada vez mais rápidos • Demandas crescentes • Os Cientistas, os Engenheiros e a Indústria querem usar os computadores para projetar e testar todas as suas teorias e protótipos. • Exemplo: projetar medicamentos para doenças específicas sem ter de sacrificar animais 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 2
  • 3. • A velocidade dos atuais circuitos não podem aumentar indefinidamente • A velocidade do clock tem aumentado gradativamente • Dissipação de calor é um grande problema • Tamanho dos transistores continua a diminuir: cada TRANSISTOR terá um número tão pequeno de ÁTOMOS dentro dele que os efeitos da mecânica quântica podem se tornar um grande problema 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 3
  • 4. • Computadores paralelos são uma solução temporária para as necessidades atuais da sociedade • Uma máquina + uma CPU + tempo de 0,001ns  impossível • Várias máquinas + 1000 CPUs + tempo de 1ns cada  possível • O paralelismo existe em vários níveis 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 4
  • 5. • Nível mais baixo: CPU, pipeline, CPUs superescalares, palavras de instruções muito longas, múltiplos threads de controle ao mesmo tempo, CPUs reunidas em um mesmo CHIP, etc. Desempenho 10x maior • Nível seguinte: placas extras de CPU com funções especificas. Desempenho de 5 a 10x maior. • Independente do fato de desempenho aumentar, CPUs devem ser replicadas INTEIRAS e devem funcionar juntas com eficiência 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 5
  • 6. • Clusterização, multicomputadores, multiprocessadores, grids, nuvem • PROCESSAMENTO FORTEMENTE ACOPLADO: quando duas CPUs ou dois elementos de processamento estão perto um do outro, têm alta largura de banda, o atraso é baixo e são próximos computacionalmente • PROCESSAMENTO FRACAMENTE ACOPLADO: quando estão longe um do outro, têm baixa largura de banda, alto atraso, são remotos computacionalmente 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 6
  • 7. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 7
  • 8. • Objetivo: Fazer mais coisas ao mesmo tempo • Emissão de múltiplas instruções por ciclo de clock • Dois tipos: • Processadores superescalares • Processadores VLIW 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 8
  • 9. • CPUs Superescalares são capazes de emitir múltiplas instruções para as unidades de execução em um único ciclo de clock • De duas a seis instruções podem ser emitidas de uma única vez • O número máximo é determinado pelo hardware • Se uma instrução precisar de uma unidade funcional ou resultado que não está disponível, ela não será emitida 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 9
  • 10. • Very Long Instruction Word – palavra de instrução muito longa • Instruções que usavam múltiplas unidades funcionais • Exemplificando: • Considere uma máquina que tenha 5 unidades funcionais, efetua simultaneamente 2 operações com inteiros, 1 operação em ponto flutuante, 1 carregamento e 1 armazenamento. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 10
  • 11. • Uma instrução VLIW para essa máquina conteria 5 opcodes e 5 pares de operandos, sendo 1 opcode e 1 par de operandos por unidade funcional • Supondo 6 bits por OPCODE, 5 bits por REGISTRADOR, 32 bits por endereço de memória, as instruções teriam 134 bits. • Isso significa uma palavra longa: tamanho de bits de uma instrução muito grande 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 11
  • 12. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 12
  • 13. • DESVANTAGEM: nem toda instrução podia utilizar todas as unidades funcionais, o que resultava em muitas NO-OP • Transfere do tempo de execução para o tempo de compilação o trabalho de determinar quais instruções podem ser emitidas em conjunto • Simplifica o hardware e o torna mais rápido • Paralelismo no nível da memória: há múltiplas operações de memória no ar ao mesmo tempo 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 13
  • 14. • Problema INERENTE no PIPELINE das CPUs modernas: • Quando uma referência à memória encontra uma ausência das caches de nível 1 e nível 2, há uma longa espera até que a palavra requisitada, e sua linha de cache associada, sejam carregadas na cache, portanto, o pipeline para. • MULTITHREADING NO CHIP: • Solução para o problema descrito acima • Permite que a CPU gerencie múltiplos threads de controle ao mesmo tempo • Se o thread 1 estiver bloqueado, a CPU ainda tem chance de executar o thread 2, de modo a manter a CPU sempre ocupada 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 14
  • 15. • Multithreading de granulação fina: • Mascara as protelações executando os threads segundo uma política de alternância circular, com um thread diferente em ciclos consecutivos • Se uma protelação de memória demorasse quatro ciclos, precisaríamos de quatro threads para garantir a operação contínua e assim por diante 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 15
  • 16. • Cada thread precisa do seu próprio conjunto de registradores • O número máximo de threads que podem ser executados de uma só vez é fixado no projeto do chip • RAZÃO PARA PROTELAÇÃO • Operações de memória. • Uma instrução pode precisar de um resultado calculado por outra instrução que ainda não foi concluída. • Uma instrução não pode iniciar porque ela vem após um desvio condicional cuja direção ainda não é conhecida 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 16
  • 17. • Se o pipeline tiver K estágio, mas houver no mínimo K threads para fazer alternância circular, NUNCA haverá mais de uma instrução por THREAD no pipeline a qualquer momento, portanto, Não pode ocorrer nenhum conflito. • Dessa forma a CPU executa em velocidade total e não fica OCIOSA • MULTITHREADING DE GRANULAÇÃO GROSSA: • Nem sempre há tantos threads disponíveis quantos são os estágios do pipeline 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 17
  • 18. • Se perde um ciclo sempre que uma instrução protela • Troca threads quando há protelação ou • Trocar threads de imediato em qualquer instrução que poderia acarretar uma protelação, antes mesmo de descobrir se ela de fato causaria isso. • É potencialmente menos eficiente do que o de granulação fina • Vantagem: precisa de um número menor de threads para manter a CPU ocupada 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 18
  • 19. • Monitorar qual operação pertence a qual thread • MULTITHREADING DE GRANULAÇÃO FINA: anexar um identificador de thread a cada operação, para que sua identidade fique clara ao percorrer o pipeline • MULTITHREADING DE GRANULAÇÃO GROSSA: ao trocar de threads, limpar o pipeline e só então iniciar o próximo thread 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 19
  • 20. • Considere, a partir de agora, que a CPU pode emitir múltiplas instruções por ciclo de clock • Manter a regra: quando uma instrução protela, as subsequentes não podem ser emitidas • MULTITHREADING DE GRANULAÇÃO FINA PARA UMA CPU SUPERESCALAR DUAL: • Emite duas instruções por ciclo de clock • Para o Thread A, as duas primeiras instruções podem ser emitidas no 1.º ciclo • Para o Thread B, há um problema no próximo ciclo, então somente uma instrução será emitida 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 20
  • 21. • MULTITHREADING DE GRANULAÇÃO GROSSA PARA UMA CPU SUPERESCALAR DUAL: • Os threads são executados um por vez • A CPU emite duas instruções por thread até atingir um que protela • Nesse ponto, troca para o próximo thread no início do ciclo seguinte • MULTITHREADING SIMULTANEO: • Refinamento do multithreading de granulação grossa • Um único thread tem permissão de emitir duas instruções por ciclo pelo tempo que puder • Quando protelar, as instruções são tomadas imediatamente do próximo thread na sequencia 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 21
  • 22. • MULTITHREADING SIMULTANEO: • Mantém a CPU ocupada por completo • Ajuda a manter ocupadas todas as unidades funcionais • Uma instrução de um thread diferente pode ser escolhida para ser executada, caso uma instrução de outra thread não possa ser iniciada porque a unidade funcional de que ela precisa está ocupada 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 22
  • 23. • Duas ou mais CPUs em um único CHIP • Compartilham a mesma cache L2 • Compartilham memória principal • Área de aplicação típica: • Servidores web: • Compartilham memória principal, memória cache, memória permanente, interfaces de rede, etc. • Isto dobra o desempenho sem dobrar o custo 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 23
  • 24. • 1.ª forma de implementação: • Uma CPU um único chip, mas com dois pipelines • Dobra a taxa de execução de instruções • Recursos (unidades funcionais) podem ser compartilhados entre os processadores. Isso permite que uma CPU use recursos que outra não esteja usando, entretanto, não funciona bem para mais de 2 CPUs. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 24
  • 25. • 2.ª forma de implementação: • Núcleos separados no mesmo CHIP • Cada núcleo contém uma CPU completa • NÚCLEO: é um grande circuito, controlado por E/S ou CACHE, que pode ser colocado em um CHIP de forma modular. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 25
  • 26. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 26
  • 27. • Área de aplicação: sistemas embutidos (televisores, DVDs, filmadoras, consoles, smartphones, etc.) • Exemplo: composição de um APARELHO DE TELEVISÃO • Controle de servomecanismo (cabeçote) • Correção de erros • Decriptação e gerenciamento de direitos digitais • Descompressão de vídeo • Descompressão de áudio • Codificação de saída (NTSC, PALM, SECAM) 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 27
  • 28. • O trabalho realizado pelo aparelho de televisão exige os seguintes cuidados: • Restrições de tempo real • Qualidade de serviço • Energia • Dissipação de calor • Tamanho • Peso • Preço • Etc. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 28
  • 29. • Multiprocessador heterogêneo: • Contem múltiplos núcleos • Cada núcleo especializado em uma tarefa particular • As funções dos núcleos são todas diferentes • Cada uma é projetada com cuidado para ser muito boa no que faz pelo preço mais baixo possível • Processadores dedicados em hardware: chips multiprocessadores heterogêneos que contem múltiplos núcleos projetos para aplicações audiovisuais 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 29
  • 30. • O processador de controle de um multiprocessador heterogêneo é uma CPU programável de uso geral • À medida que os dispositivos (sistemas embutidos) adquirem cada vez mais funcionalidades e recursos, a necessidade de multiprocessadores heterogêneos só aumenta • Chips como esses são grandes demais 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 30
  • 31. • A maneira mais viável de projetar um multiprocessador como este é: • Usar núcleos que contenham subconjuntos grandes • Colocar os núcleos e interconectá-los no chip conforme necessidades • Determinar no projeto: • Qual núcleo de CPU usar para processador de controle • Quais Processadores de uso especial acrescentar 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 31
  • 32. • Atribuir mais carga ao software que executa no processador de controle faz o sistema ficar mais lento, entretanto, o chip fica menor e mais barato • Ter mais processadores de uso especial para áudio e vídeo ocupa uma área maior do chip, o que aumenta o custo, mas melhora o desempenho, diminui taxa de clock, consume menos energia e dissipa menos calor. • 50% a 75% da área do chip é dedicado à memória, devido às grandes quantidades de dados que precisam ser processados 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 32
  • 33. • Questões relevantes de projeto que tem implicações par ao desempenho, consumo de energia e dissipação de calor do chip: • Quantos níveis de cache devem se usados? • As caches devem ser unificadas ou divididas? • Qual deverá ser o tamanho de cada uma? • Qual deverá ser a rapidez? • Um pouco da memória também deve ir par ao chip? 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 33
  • 34. • Como todos os núcleos se comunicam uns com os outros? • Sistemas pequenos: um único barramento • Sistemas maiores: • Múltiplos barramentos • Anel que vai de um núcleo ao outro • Etc. • Exemplo de barramento usado em sistemas embutidos: CoreConnect, AMBA, VCI, OCP-IP, etc. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 34
  • 35. • O computador ganha velocidade com a adição de um segundo processador especializado: o coprocessador. Exemplos: • Coprocessadores de E/S • Coprocessadores gráficos • Coprocessadores de ponto flutuante • DMA (acesso direto a memória) • A CPU dá ao coprocessador uma ou mais instruções e ordena que ele as execute. Em alguns casos, o coprocessador é independente e funciona por si só 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 35
  • 36. • Coprocessadores podem ser: • Gabinete separado (canais de E/S, por exemplo) • Placa de expansão (processadores de rede, por exemplo) • Área no chip principal • O coprocessador ajuda o processador principal • Três áreas: processamento de rede, multimídia e criptografia 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 36
  • 37. • Coprocessadores podem ser: • Gabinete separado (canais de E/S, por exemplo) • Placa de expansão (processadores de rede, por exemplo) • Área no chip principal • O coprocessador ajuda o processador principal • Três áreas: processamento de rede, multimídia e criptografia 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 37
  • 38. • Dificuldade em processar os dados que trafegam pela rede em software • Computadores de alta tecnologia contém um processador de rede • Curiosidade: • Velocidade das LANs atuais: 40 gigabits/segundo com pacotes de 1 KB • Computador em rede: processa 5 milhões de pacotes/segundo • Qual a solução para o processamento dessa enorme quantidade de pacotes? 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 38
  • 39. • Primeira opção: • ASIC: • Application specific integrated circuit • Circuito integrado específico da aplicação • Hardware para processamento rápido de pacotes • Executa qualquer conjunto de funções de processamento para o qual foi projetado 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 39
  • 40. • ASIC: • Desvantagens: • Projeto demorado • Fabricação demorada • É preciso projetar e fabricar um novo chip se houver uma nova funcionalidade • Gerenciamento de bugs é péssimo • São caros 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 40
  • 41. • Segunda opção: • FPGA • Field programmable gate array • Arranjo de portas programável em campo • Um conjunto de portas que pode ser organizado conforme o circuito desejado modificando sua fiação em campo • Projeto e fabricação rápidos 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 41
  • 42. • Segunda opção: • FPGA • Desvantagem: • Complexos • Lentos • Caros 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 42
  • 43. • Terceira opção: • Processadores de rede • Dispositivos programáveis que podem manipular pacotes que chegam e que saem à velocidade dos fios (em tempo real) 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 43
  • 44. • Terceira opção: • Processadores de rede • Milhões de pacotes por segundo por linha de rede podem ser processados • Um roteador pode ter várias linhas de rede • Processadores de redes devem ter alto grau de paralelismo • PPEs: • protocol-programmable-packet processor engines • Dispositivos de processamento de protocolo- programáveis-pacotes 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 44
  • 45. • Terceira opção: • PPEs: • Um processador de rede tem vários PPEs • É um núcleo RISC com memória interna para o programa e algumas variáveis • Todos os processadores de rede contém também um processador de controle (processador RISC padronizada de uso geral) • Todos os componentes do processador de rede se comunicam por um ou mais barramentos paralelos no chip 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 45
  • 46. • Tratamento de processamento gráfico de alta resolução. Exemplo: renderização 3D. • GPUs: • Graphics processing units • Unidades de processamento gráfico • CUDA: • Compute unified Device Architecture • Arquitetura de elemento unificado de computação • Cálculos com inteiros e ponto flutuante com precisão simples 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 46
  • 47. • SMs • Streaming multiprocessor • Multiprocessadores streaming • Cada SMs tem uma quantidade de CUDA • GPGPUs • General purpose graphics processing units • Unidades de processamento gráfico de uso geral 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 47
  • 48. • Área de segurança e segurança de redes • Criptografia faz uso intensivo de computação • Dois tipos de criptografia: • Chave simétrica: baseada em mistura completa de bits (bater tudo em um liquidificador) • Chave pública: baseada em multiplicação e exponenciação de grandes números. Consome enorme quantidade de tempo. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 48
  • 49. • Coprocessadores criptográficos • Placas de expansão para barramento PCI • Tem um hardware especial que habilita a execução da criptografia necessária muito mais rápido do que uma CPU comum. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 49
  • 50. • É um computador paralelo no qual todas as CPUs compartilham uma memória comum • Todos os processos que funcinam juntos em um multiprocessador podem compartilhar um único espaço de endereço virtual mapeado para a memória comum • Qualquer processo pode ler ou escrever uma palavra da memória apenas executando uma instrução LOAD ou STORE • Vantagem: capacidade de dois ou mais processos se comunicarem apenas lendo e escrevendo na memória 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 50
  • 51. • Duas formas de acesso à E/S • 1.ª: Somente certas CPUs tem acesso ao dispositivos e tem uma função especial de E/S • 2.ª: Cada CPU tem igual acesso a todo dispositivo de E/S. • SMP – symmetric multiprocessor – multiprocessador simétrico: quando cada CPU tem igual acesso a todos os módulos de memória e a todos os dispositivos de E/S e é tratada pelo sistema operacional como intercambiável com as outras. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 51
  • 52. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 52
  • 53. • Uma das distinções entre multiprocessadores e multicomputadores é o sistema operacional. • Em multiprocessadores há apenas uma única cópia do S.O. • Em multicomputadores, cada computador tem sua própria cópia do S.O. • Multicomputador: Toda CPU tem sua memória privada, acessível somente a ela mesma e a nenhuma outra 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 53
  • 54. • Também pode ser chamado de memória distribuída • A CPU de um multicomputador tem sua própria memória local privada, a qual pode acessar apenas executando instruções LOAD e STORE. • Nenhuma outra CPU pode acessar instruções LOAD e STORE • Multicomputadores tem um espaço de endereço físico para cada CPU • Multiprocessadores tem um único espaço de endereço físico compartilhado por todas as CPUs 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 54
  • 55. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 55
  • 56. • Multicomputadores não podem se comunicar lendo e escrevendo na memória comum • Solução: as CPUS passam mensagens uma para outro usando a rede de interconexão • Exemplos: IBM BlueGene/L, Red Storm e Cluster Google • A comunicação entre processos costuma usar primitiva de software como SEND e RECEIVE 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 56
  • 57. • Em um multicomputador as CPUs precisam descobrir qual CPU tem os dados de que precisa e enviar a essa CPU uma mensagem requisitando uma cópia dos dados • Assim, a CPU bloqueia até que a requisição seja atendida. • Programar multicomputadores é mais difícil do que programar um multiprocessador (baixo nível) • Entretanto, é mais barato e simples construir GRANDES multicomputadores do que multiprocessadores 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 57
  • 58. • Atualmente são utilizados sistemas híbridos • Chave do sucesso: construir projetos que continuem a funcionar bem à medida que mais e mais CPUs sejam adicionadas 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 58
  • 59. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 59
  • 60. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 60
  • 61. • Categorização em fluxos de instruções e fluxos de dados • Fluxo de instruções: corresponde a um contador de programa. Um sistema com N CPUs tem N contadores de programa, portanto, n fluxos de instruções • Fluxo de dados: conjunto de operandos. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 61
  • 62. • SISD: Single instruction stream, single data stream. Fluxo de instrução único, fluxo de dados único. Um fluxo de instruções, um fluxo de dados e faz uma coisa por vez • SIMD: Single Instruction Multiple Data. Uma única instrução manipula vários dados. Tem uma única UC que emite uma instrução por vez, mas tem múltiplas ULAs para executar as instruções em vários conjuntos de dados simultameamente 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 62
  • 63. • MISD: Multiple Instruction Single Data. Multiplas instruções com dados únicos. Múltiplas instruções operando no mesmo conjunto de dado • MIMD: Multiple Instructions Multiple Data. Multiplas instruções manipulando múltiplos dados diferentes. Múltiplas CPUs independentes operando como parte de um sistema maior. Multiprocessadores e multicomputadores são máquinas MIMD 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 63
  • 64. • UMA: • uniform memory aaccess • acesso uniforme à memória • CARACTERISTICA: A memória é subdividida em vários módulos. Cada CPU tem o mesmo tempo de acesso a todos a todos os módulos de memória. 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 64
  • 65. • COMA: cache only memory access – acesso somente à memória cache • NUMA: nonuniform memory access – acesso não uniforme à memória • CARACTERISTICA DE AMBAS: é mais rápido acessar os módulos de memória que esTão próximos a cada CPU do que os mais distantes 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 65
  • 66. • MPPs: • massively parallel processors • Processadores de paralelismo maçico • São supercomputadores caros que consistem em muitas CPUs fortemente acopladas por uma rede de interconexão proprietária de alta velocidade • Exemplo: IBM SP/3 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 66
  • 67. • COWs • Cluster of workstations • Grupo de estações de trabalho • Consistem em PCs ou estações de trabalhos comuns, montados em estantes e conectados por tecnologia de interconexão comercial 13/04/2016 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 67