Escolar Documentos
Profissional Documentos
Cultura Documentos
Caminho 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
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