SlideShare a Scribd company logo
1 of 67
Engenharia de Computação
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 6
23/05/2015 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
23/05/2015 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
23/05/2015 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.
23/05/2015 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
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 11
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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 sequencia23/05/2015 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
23/05/2015 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
23/05/2015 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.
23/05/2015 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.
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 25
23/05/2015 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)
23/05/2015 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.
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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?
23/05/2015 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.
23/05/2015 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ó
23/05/2015 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
23/05/2015 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
23/05/2015 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?23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 41
• Segunda opção:
• FPGA
• Desvantagem:
• Complexos
• Lentos
• Caros
23/05/2015 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)
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 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.
23/05/2015 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.
23/05/2015 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
23/05/2015 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.
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 51
23/05/2015 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
23/05/2015 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
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 54
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 58
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 59
23/05/2015 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.
23/05/2015 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
23/05/2015 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
23/05/2015 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.
23/05/2015 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
23/05/2015 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
23/05/2015 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
23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 67

More Related Content

What's hot

Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
Elaine Cecília Gatto
 
Imei 2010 2011 - ficha formativa nº1 resolvida
Imei 2010 2011 - ficha formativa nº1 resolvidaImei 2010 2011 - ficha formativa nº1 resolvida
Imei 2010 2011 - ficha formativa nº1 resolvida
teacherpereira
 

What's hot (20)

Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticas
 
Licenças de software
Licenças de softwareLicenças de software
Licenças de software
 
Rede de computadores
Rede de computadoresRede de computadores
Rede de computadores
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas Operacionais
 
Imei 10º
Imei 10ºImei 10º
Imei 10º
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
Dns
DnsDns
Dns
 
Aula 02 : hardware.
Aula 02 : hardware.Aula 02 : hardware.
Aula 02 : hardware.
 
Hardware
HardwareHardware
Hardware
 
Imei 2010 2011 - ficha formativa nº1 resolvida
Imei 2010 2011 - ficha formativa nº1 resolvidaImei 2010 2011 - ficha formativa nº1 resolvida
Imei 2010 2011 - ficha formativa nº1 resolvida
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores
 
Relacionamento interpessoal e trabalho em equipe - Aula 4
Relacionamento interpessoal e trabalho em equipe - Aula 4Relacionamento interpessoal e trabalho em equipe - Aula 4
Relacionamento interpessoal e trabalho em equipe - Aula 4
 
Sistemas Operacionais para Servidores
Sistemas Operacionais para ServidoresSistemas Operacionais para Servidores
Sistemas Operacionais para Servidores
 
Sistemas Digitais - Aula 05 - Tabelas verdade e Portas lógicas
Sistemas Digitais - Aula 05 - Tabelas verdade e Portas lógicasSistemas Digitais - Aula 05 - Tabelas verdade e Portas lógicas
Sistemas Digitais - Aula 05 - Tabelas verdade e Portas lógicas
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Treinamento: Autoconhecimento (parte 2)
Treinamento: Autoconhecimento (parte 2)Treinamento: Autoconhecimento (parte 2)
Treinamento: Autoconhecimento (parte 2)
 
Exercicios de computador e computação
Exercicios de computador e computaçãoExercicios de computador e computação
Exercicios de computador e computação
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 

Similar to Arquiteturas de Computadores Paralelos

Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineArquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Cleber Fonseca
 
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdfAula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
MatheusNS1
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
Adriano Teixeira de Souza
 

Similar to Arquiteturas de Computadores Paralelos (20)

Arquiteturas de computadores: Paralelismo
Arquiteturas de computadores: ParalelismoArquiteturas de computadores: Paralelismo
Arquiteturas de computadores: Paralelismo
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineArquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
 
Thread Java
Thread JavaThread Java
Thread Java
 
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - FatreeA SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
 
Pipeline 2
Pipeline 2Pipeline 2
Pipeline 2
 
F oc aula_04
F oc aula_04F oc aula_04
F oc aula_04
 
Superescalaridade
SuperescalaridadeSuperescalaridade
Superescalaridade
 
Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdf
 
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdfAula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Barramentos
BarramentosBarramentos
Barramentos
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
 

More from Elaine Cecília Gatto

More from Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Recently uploaded

Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Recently uploaded (20)

Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 

Arquiteturas de Computadores Paralelos

  • 1. Engenharia de Computação 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 6
  • 7. 23/05/2015 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 23/05/2015 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 23/05/2015 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. 23/05/2015 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 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 11
  • 12. 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 sequencia23/05/2015 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 23/05/2015 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 23/05/2015 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. 23/05/2015 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. 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 25
  • 26. 23/05/2015 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) 23/05/2015 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. 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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? 23/05/2015 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. 23/05/2015 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ó 23/05/2015 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 23/05/2015 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 23/05/2015 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?23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 41
  • 42. • Segunda opção: • FPGA • Desvantagem: • Complexos • Lentos • Caros 23/05/2015 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) 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 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. 23/05/2015 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. 23/05/2015 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 23/05/2015 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. 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 51
  • 52. 23/05/2015 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 23/05/2015 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 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 54
  • 55. 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 58
  • 59. 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 59
  • 60. 23/05/2015 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. 23/05/2015 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 23/05/2015 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 23/05/2015 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. 23/05/2015 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 23/05/2015 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 23/05/2015 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 23/05/2015 Prof.ª M.ª Eng.ª Elaine Cecília Gatto 67