Buscar

2 Processadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof.ª Daniella Dias
danidias.jp@gmail.com
Processadores
Disciplina: Arquitetura de Computadores
Organização de Computadores
Computador eletrônico digital
Processador
Memória
Dispositivos de entrada/saída
Interconexão entre as essas partes 
(barramento)
Organização de um Computador
Organização de um Computador
Organização de um Computador
Processador
Cérebro do computador
Executa programas armazenados na memória 
principal, buscando as instruções, 
examinando-as, e executando-as em 
seqüência
Barramento
Provê a interligação entre os componentes do 
computador
Conjunto de fios paralelos para a transmissão 
de dados, endereços e sinais de controle
Organização de um Computador
Barramento
Externo ao processador  conexão à memória e 
dispositivos de entrada/saída
Interno ao processador
Composição do Processador
Unidade de controle  busca e decodifica as 
instruções
ULA  realiza as instruções (aritméticas e lógicas)
Registradores  armazena resultados temporários e 
algumas informações de controle. São de acesso 
rápido por estarem dentro do processador.
Organização de um Computador
Registradores mais importantes
Contador de programas (PC – Program Counter)  
aponta para a próxima instrução
Registrador de instruções (IR – Instruction 
Register)  armazena a instrução que está sendo 
executada
Organização do Processador
Caminho de dadosCaminho de dados
Organização do Processador
Composição do caminho de dados
Registradores  1 a 32
ULA
Barramento
Instruções de um processador
Registrador-memória  permite que uma  
palavra de memória seja armazenada no 
registrador, e vice-versa
Registrador-registrador  instrução que opera 
sobre 2 registradores e coloca a saída em outro 
registrador (ciclo de caminho de dados)
Organização do Processador
Ciclo de caminho de dados
Define, sob certos aspectos, o que a máquina 
pode fazer
Conceito muito importante na maioria dos 
processadores
A velocidade do ciclo do caminho de dados 
determina, em última análise, a velocidade do 
processador
Execução de Instruções
 Ciclo de busca-decodificação-execução
1. Busca próxima instrução na memória, a partir do 
endereço armazenado no PC, e armazena no IR
2. Atualiza Contador de instrução PC para apontar 
para a próxima instrução
3. Determina tipo de instrução armazenada no IR
4. Determina endereço dos dados na memória, se a 
instrução requer dados adicionais
5. Trazer palavras (dados) da memória, caso a 
instrução precise, e armazena-as em outros 
registradores
6. Executa instrução
7. Retorna ao passo 1
Execução de Instruções
É possível escrever um programa que simule a 
função de um processador
Esse programa não precisa ser executado por 
um processador eletrônico
Um programa pode ser executado por outro 
programa que busque, decodifique e execute 
suas instruções
Esse programa é o interpretador
Execução de Instruções
Ao especificar uma linguagem de máquina 
L0 deve-se decidir entre a construção de um 
processador ou de um interpretador
Interpretador
Divide as instruções em um conjunto de 
pequenos passos
Processador mais simples e mais barato
Os primeiros computadores possuíam 
poucas instruções que evoluíram com o 
desenvolvimento de máquinas mais velozes
Execução de Instruções
IBM (final dos anos 50)
Criou a uma família de computadores com as 
mesmas instruções  surgia a arquitetura de 
computadores
Arquitetura única  múltiplas implementações
Arquitetura  descreve o nível de 
compatibilidade entre as máquinas
Como construir um computador de baixo 
custo que execute instruções complexas 
presentes em máquinas mais caras?
Conceito de interpretação por microprogramação
Execução de Instruções
Vantagens da interpretação de instruções
Capacidade de corrigir no campo eventuais erros 
na implementação das instruções
Oportunidade de incorporar nova instruções às 
máquinas existentes
Projeto estruturado que permitia o 
desenvolvimento, o teste e a documentação de 
instruções complexas de modo muito eficiente
Execução de Instruções
Memória de controle
ROMs de alta velocidade
Armazenavam o interpretador
Reduzia o tempo de processamento
Microinstrução
São os passos necessários para a execução de 
uma instrução pelo interpretador
Principais inovações 
(desde Von Neuman)
Conceito de família - Arquitetura x Organização 
(1968)
Unidade de controle microprogramada (1951)
Memória cache (1968)
Pipeline (paralelismo)
Múltiplos processadores (organizações e 
objetivos diferentes)
Arquitetura de computadores com conjunto 
reduzido de instruções (RISC)
RISC x CISC
Fim da década de 70
Projeto de instruções complexas, com 
implementação simples a partir de interpretador
Busca pela redução da distância entre a 
linguagem de máquina e as necessidades das 
linguagens de programação de alto nível
Anos 80
Surgimento de processadores com um conjunto 
reduzido de instruções e sem interpretação
RISC x CISC
RISC (Reduced Instruction Set Computer)
Processador com pequeno número de instruções 
muito simples
Instruções capazes de serem executadas em um 
único ciclo do caminho de dados
CISC (Complex Instruction Set Computer)
Tecnologia mais antiga e usada para famílias de 
computadores compatíveis a nível de software.
Número maior de instruções
Uso extensivo de interpretação (principalmente 
para modelos mais baratos) Por quê??
RISC x CISC
Argumento RISC
Mesmo que uma máquina RISC precisasse de 4 
ou 5 instruções para fazer o que uma máquina 
CISC faria com apenas 1 instrução, se a instrução 
RISC fosse 10 vezes mais rápida (só hardware) a 
máquina RISC venceria
RISC x CISC
Por que a RISC não suplantou a CISC?
Problemas de compatibilidade com máquinas 
antigas com software já desenvolvido.
Aparecimento de soluções híbridas: Por exemplo, 
a INTEL usa RISC para instruções de uso mais 
frequente (Núcleo RISC) e interpretação para 
instruções mais complexas e de uso menos 
frequente.
Princípios de Projeto RISC para 
Computadores Modernos
Todas as instruções são diretamente executadas 
por hardware
Maximizar a taxa na qual as instruções são 
executadas
As instruções precisam ser facilmente 
decodificadas
Somente as instruções de Load (leitura) e Store 
(escrever) devem referenciar a memória
Projetar uma máquina com muitos registradores
RISC x CISC
Paralelismo
Melhora do desempenho
Processadores mais rápidos (por exemplo, 
aumento da velocidade do clock) existem um 
limite tecnológico
Paralelismo
Paralelismo
Execução de duas ou mais operações ao mesmo 
tempo
Aumenta o desempenho mantendo o mesmo clock
Paralelismo
Tipos de paralelismo
Nível de instruções  um único processador deve 
executar mais instruções por segundo
Nível do processador  vários processadores 
trabalhando juntos para a solução do mesmo 
problema
Paralelismo no Nível de 
Instruções
Execução em Pipeline
O maior gargalo para a velocidade de execução de 
instruções é o acesso à memória
Solução  busca antecipada de instruções na 
memória
Utilização de um buffer de pré-busca  conjunto de 
registradores que armazenam as instruções 
antecipadas
Pré-busca  divide a execução das instruções em 
busca e execução efetiva
Pipeline  Divisão da execução da instrução em 
várias partes, com um hardware dedicada a cada 
uma delas
Paralelismo no Nível de 
Instruções
(a) Pipeline de 5 estágios. (a) Pipeline de 5 estágios. 
(b) Estado dos estágios em função do tempo(b) Estado dos estágios em função do tempo
Paralelismo no Nível de 
Instruções
Execução em Pipeline
Ciclo dessa máquina 2ns
Duração de uma instrução (5 estágios)  10ns
Instruções por segundo  aparentemente 
100MIPS, mas como temos uma nova instrução a 
cada 2ns temos na verdade 500MIPS
MIPS  Milhões de Instruções por Segundo
Paralelismo no Nível de 
Instruções
Arquiteturas Superescalares
Se um pipeline é bom, dois é ainda melhor
Um única unidade de busca de instrução busca 
pares de instruções e põe cada uma em um 
pipeline (execução em paralelo)
Não pode haver conflitos pela utilização de 
recursos
O resultado de uma das instruções não pode 
depender da outra
Esse tratamento pode ser feito pelo compilador ou 
por um hardware extra.
Paralelismo no Nível de 
Instruções
Pipeline duplo de 5 estágiosPipeline duplo de 5 estágios
Paralelismo no Nível de 
Instruções
 Intel começou a utilizar pipelines a partir do 486
Pentium original utilizava pipeline duplo de 5 estágios 
semelhante ao apresentado
Conjunto de regras simples determinavam se duas 
instruções eram compatíveis e podiam ser executadas 
em paralelo
Pares de instruções não compatíveis eram “retidas” para 
execução em paralelo com a próxima instrução
Construção de compiladores específicos para o Pentium
Programas compilados com esse compilador executavam 
2 vezes mais rápido
– E as camadas de abstração?!
Paralelismo no Nível de 
Instruções
Muitos pipelines implicam em um aumento 
considerável do hardware
Estágio de execução requer um tempo maior → 
todos os estágios precisam ter a mesma duração 
(LIMITAÇÃO)
Instruções diferentes possuem tempo de execução 
diferentes 
Solução → processadores superescalares:
– único pipeline com diversas unidades funcionais 
(estágio 4 do pipeline - E4)
– Essas unidade funcionais executam em uma 
velocidade menor que o processo de busca 
Paralelismo no Nível de 
Instruções
Processador superescalar com 5 unidades funcionaisProcessador superescalar com 5 unidades funcionais
Paralelismo no Nível de 
Instruções
Arquiteturas Superescalares
Intel introduziu essa solução a partir das famílias 
Intel Core
Definição de “superescalar” evoluiu → 
processadores que emitem múltiplas instruções 
(frequentemente, 4 ou 6) em um único ciclo de clock
Mesmo princípio 
• várias unidades funcionais
• Tempo diferente de execução para instruções
• Maior capacidade de fornecer instruções (E3) do 
que executá-las (E4)
Superescalar X Superpipeline
Superescalar
– Evolução do pipeline
– Execução de instruções independentemente e 
concorrentemente em pipelines diferentes
– Permite que as instruções sejam executadas em 
uma ordem diferente do programa (melhor 
aproveitamento das unidades funcionais)
Superpipeline
– Explora o fato de que muitos estágios executam 
suas tarefas em menos da metade de um ciclo de 
clock
Superescalar X 
Superpipeline
Paralelismo em nível de 
instruções
Limitações 
– Dependência de dados
– Dependência procedural
– Conflito de recursos
– Dependência de saída
Paralelismo no nível de instrução aumenta o 
desempenho na ordem de 5 a 10 vezes
Para se ter um aumento de desempenho da 
ordem de 50, 100 ou mais, é necessário 
recorrer a computadores com mais de um 
processador
Taxonomia de Flynn
Single Instruction, Single Data stream (SISD)
Single Instruction, Multiple Data streams (SIMD)
Multiple Instruction, Single Data stream (MISD)
Multiple Instruction, Multiple Data streams (MIMD)
 
Taxonomia de Flynn
Single Instruction, Single Data stream (SISD)
– único fluxo de instruções → único fluxo de 
dados.
– Processador único, única sequência de 
instruções, única memória.
– Característico da máquina de Von Neuman 
(computadores pessoais)
– Podem usar pipeline → única unidade de 
controle (pode possuir mais de uma unidade 
funcional)
Taxonomia de Flynn
Single Instruction, Multiple Data streams (SIMD)
– vários dados sob o comando de apenas uma 
instrução.
– Múltiplos dados → organização de memória em 
diversos módulos. 
– A unidade de controle é única e existem diversas 
unidades funcionais. 
– Nesta classe estão os processadores vetoriais e 
matriciais.
Taxonomia de Flynn
Multiple Instruction, Single Data stream (MISD)
– Múltiplas unidades de controle executando 
instruções distintas sobre o mesmo dado.
– Não é implementada comercialmente
Taxonomia de Flynn
Multiple Instruction, Multiple Data streams (MIMD)
– Processamento de múltiplos dados por múltiplas 
instruções
– Várias unidades de controle comandam suas 
unidades funcionais → vários módulos de memória
– Maioria das arquiteturas paralelas da atualidade. 
– De acordo com o método de comunicação entre os 
processadores, pode ser divida em:
• Memória compartilhada (fortemente acoplada) → 
Multiprocessador simétrico (SMP) e Acesso não 
uniforme à memória (NUMA)
• Memória distribuída (fracamente acoplada) → clusters
Taxonomia de Flynn
Taxonomia de Flynn
Projeto de Organizações 
Paralelas
SMPs (Symmetric Multiprocessor), 
NUMA (Nonuniform memory acess) e Clusters
Questões complexas que envolvem:
– Organização física
– Estruturas de interconexão
– Comunicação entre processadores
– Projeto de sistemas operacionais
– Técnicas de aplicações de software
Paralelismo no Nível do 
Processador
Demanda por desempenho X Custo do hardware
Multiprocessadores Simétricos - SMP (Symmetric 
Multiprocessor)
Refere-se a uma arquitetura de hardware e também 
ao comportamento do SO que a reflete.
Características:
– Dois ou mais processadores semelhantes
– Mesma memória principal e recursos de E/S 
– Interconectados por um barramento ou outro esquema 
de conexão interna
– Controlados pelo SO que fornece interação entre 
processadores e programas
Paralelismo no Nível do 
Processador
Multiprocessadores
Vários processadores x memória única x 
barramento único  conflitos entre os 
processadores
Solução  memória local para cada processador, 
que armazena o programa e os dados que não 
precisam ser compartilhados
Com a redução do uso do barramento 
compartilhado, diminui o tráfego e reduz as 
possibilidades de conflito
Paralelismo no Nível do 
Processador
(a) Multiprocessador com um único barramento e memória (a) Multiprocessador com um único barramento e memória 
únicaúnica
(b)Multiprocessador com memórias locais aos processadores(b)Multiprocessador com memórias locais aos processadores
Clusters
Sistema com poucos multiprocessadores são fáceis de serem 
construídos.
Com aumento no número processadores:
– vários processadores independentes compartilhando a mesma 
memória
– as atividades dos processadores devem ser coordenadas para 
que um não interfira na atividade do outro 
– gerenciar a memória que cada um usa para não haver conflitos
– Compartilham um barramento único (alta concorrência)
Solução:
– Grande número de computadores completos interconectados, 
sem memória compartilhada: multicomputadores (clusters)
– Alternativa aos SMPs para fornecer alto desempenho
Clusters
Sistemas com um grande número de computadores 
interconectados
Não existe nenhum tipo de memória comum sendo 
compartilhada
Comunicação entre computadores é feita por meio de 
troca de mensagens com alta velocidade
Computador não precisa estar ligado diretamente com 
todos os outros (uso de topologias em árvore, anéis, 
etc..)
Mensagens podem ser roteadas do computador fonte 
para o destino (usando computadores intermediários)
Multiprocessador x 
Multicomputador
Sistemas multiprocessadores 
– Mais fáceis de programar
– Mais próximo do modelo original de processador 
único (maioria das aplicações desenvolvidas)
– Menos espaço físico e consumo de energia
– Mais estáveis (mais antigos)
Sistemas multicomputadores– Tendência para servidores de alto desempenho
– Superiores aos SMPs em escalabilidade e 
disponibilidade
Computação Vetorial
Necessidade por computadores para resolução de problemas 
matemáticos intensivos.
Supercomputadores capazes de efetuar bilhões de operações 
em ponto flutuante por segundo.
Diferem de mainframes que são projetados para 
multiprogramação e E/S intensivo.
Mesmos cálculos efetuados em diversos conjuntos de dados 
ao mesmo tempo (SIMD)
Duas soluções de paralelismo para solucionar os problemas 
científicos
– Processador matricial
– Processador vetorial
Processador matricial
Composto por um grande número de processadores 
idênticos
Cada processador executa a mesma sequência de 
instruções em conjuntos de dados (carregados no 
momento da inicialização) diferentes
Possui um única unidade de controle que envia 
instruções em broadcast (difusão) para todos os 
processadores
Processador matricial
Processador matricial do tipo ILLIAC IVProcessador matricial do tipo ILLIAC IV
Processador no núcleo da GPU Fermi da NvidiaProcessador no núcleo da GPU Fermi da Nvidia
Processador Vetorial
Muito parecido com o processador matricial
Operações aritméticas são realizadas em uma 
única ULA operando em pipeline
Trabalha com registradores vetoriais  
Registradores convencionais que podem ser 
carregados por meio da execução de uma única 
instrução, que os carrega de modo serial
Matricial X Vetorial
Processador matricial x vetorial
programação para o matricial voltada ao paralelismo 
(mais difícil)
processador matricial é, em geral, mais rápido 
principalmente para repetição de um mesmo 
processamento em vários "pedaços" dos dados
processador vetorial se adapta a processamentos 
paralelos e não paralelos
hardware do matricial é mais caro (muitas ULAs)
Instruções MMX e SSE do Pentium 4 usam 
processamento matricial para acelerar software de 
multimídia.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58

Outros materiais