SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Arquitetura de Computadores
Unidade Central de Processamento – CPU
• Funções realizadas pelo processador:
– Função controle
Responsável pela busca, interpretação e controle da execução das instruções,
bem como do controle da ação dos demais componentes do sistema de
computação (memória, entrada/saída).
– Função processamento
Responsável por realizar as atividades relacionadas com a efetiva execução
de uma operação, ou seja, processar, realizar um cálculo aritmético ou lógico,
etc.
CPU
• Componentes de uma CPU
– Unidades Funcionais
São os módulos da CPU responsáveis pela busca e o processamento das
instruções.
– Registradores
É a memória interna da CPU que possui conexão direta com as Unidades
Funcionais. São produzidos com a mesma tecnologia da CPU possuindo
assim a mesma velocidade.
– Barramento Interno
Responsável por interconectar os registradores às Unidades Funcionais.
CPU
Os registradores são divididos em dois tipos:
– Uso Geral (dados)
Os registradores de uso geral são usados para armazenar dados da execução do programa,
como os valores que serão operados e o resultado das operações.
• Acc (Acumulador)  Este registrador é especial porque ele é normalmente usado como fonte
e destino de dados e costuma ser um operando implícito nas instruções.
– Uso Específico (informações de uso interno da CPU)
Os registradores de uso específico guardam informações especiais, como por exemplo:
• REM  Guarda o endereço utilizado na comunicação com a memória.
• RDM  Guarda o dado utilizado tanto na leitura como na escrita com a memória.
• PC ou CI  Sigla proveniente de “Program Counter” e “Contador de Instrução” respectivamente.
Este registrador guarda o endereço da próxima instrução a ser executada pela CPU.
• RI  Sigla proveniente de “Registrador de Instruções”. Este registrador guarda a instrução que está
sendo executada pela CPU.
• FLAGS ou STATUS  Registrador especial para guardar informações referente a última execução
realizada e sinais de controle para a CPU realizar controle de fluxo (desvios).
CPU
Componentes da CPU
CPU
ULA Registradores
0 a R – 1
Acumulador
PC ou CI
RDM
REM
RI
Unidade de
Controle (UC)
Decodificador
de Instruções
Clock
Barramento de Dados
Barramento de Endereços
Barramento de Controle
Buscar a próxima instrução
Incrementar o PC ou CI
Decodificar o código da operação
Executar a operação
Escrever o resultado
Tem operando?
Buscar e
Armazenar
operando
Cálculo
do endereço
do operando
Ciclo
de
busca
Ciclo
de
execução
Sim
Não
Fluxograma de um Ciclo de Instrução
Término
Início
Buscar a instrução na memória e atualizar o PC ou CI.
Busca
Decodificar a instrução, interpretar a operação a ser realizada e
buscar operandos (se houver).
Decodificação
Executar a Operação.
Escrever o resultado.
Execução
Resultado
Fluxograma resumido de um Ciclo de Instrução
Busca Resul.
Decod.
Sequência de Execução das Instruções em uma CPU tradicional
Exec.
Busca Resul.
Decod. Exec.
Ciclos de Clock 1 2 3 4 5 6 7 8
Instrução i
Instrução i + 1
Como podemos observar, teremos uma instrução finalizada a cada 4 ciclos de clock.
Isto é, 1 inst/4 ciclos ou 0,25 inst/ciclo.
• Enquanto a instrução encontra-se em um determinado estágio, nota-se
claramente a ociosidade dos demais estágios da CPU.
• Um aprimoramento realizado no projeto da CPU foi de minimizar estas
ociosidades implementando a possibilidade de executar várias instruções
ao mesmo tempo, porém em estágios diferentes.
• A este tipo de funcionalidade da CPU dá-se o nome de Pipeline.
Aprimoramento da CPU
Busca Resul.
Decod. Exec.
Busca Resul.
Decod. Exec.
Busca Resul.
Decod. Exec.
Busca Resul.
Decod. Exec.
Busca Resul.
Decod. Exec.
Ciclos de Clock 1 2 3 4 5 6 7 8
Instrução i
Instrução i + 1
Instrução i + 2
Instrução i + 3
Instrução i + 4
Como podemos observar, após o preenchimento do pipeline, teremos uma instrução finalizada a cada ciclo
de clock, logo temos, 1 inst/ciclo.
O aumento de desempenho foi de 4. Isto é, o aumento de desempenho é equivalente ao número de
estágios do pipeline quando o pipeline estiver cheio.
Sequência de Execução das Instruções em uma CPU com Pipeline
• Um novo aprimoramento realizado foi de implementar mais de um pipeline,
possibilitando a execução de mais de uma instrução simultaneamente no
mesmo estágio.
• A este tipo de CPU dá-se o nome de Superescalar.
Aprimoramento da CPU
Pipeline 0
Pipeline 1
CPU
2 Instruções 2 Resultados
• Como será que é formada a instrução de máquina?
• Devemos ter em mente que a CPU possui um circuito para cada
tarefa definida pelo fabricante.
• Para acessar estes circuitos e então ter tal operação realizada, eles
foram identificados com um código numérico.
• Sempre que se desejar executar uma determinada operação, deve-
se indicar o código do circuito em questão.
• Este código é conhecido como opcode.
Formato das Instruções de Máquina
• Além de indicar a operação, a maioria delas necessita de
parâmetros (operandos). Então, além do opcode, a instrução
possui campos com os operandos da operação em questão.
• Nas arquiteturas mais comuns, as instruções podem ir desde
apenas o opcode, zero operando, até três operandos.
Formato das Instruções de Máquina
Operandos
OP. 1 OP. 2
OPCODE OP. 3
Instrução
• Colocar o dado diretamente na instrução muitas das vezes é insuficiente para
algumas estruturas de dados. Sendo assim, existem outras formas de informar o
local onde os dados ou instruções estão guardados.
• Dentre os diversos modos de endereçamentos desenvolvidos para processadores,
os principais são:
– Imediato;
– Direto;
– Indireto;
– Por registrador;
– Indexado;
– Base mais deslocamento.
• Nem todos estes modos estão incluídos nos conjuntos de instruções dos
processadores contemporâneos, mas devem ser descritos não só por razões
históricas mas para percepção do processo evolutivo da tecnologia.
Modos de Endereçamentos
Modo Imediato
• O método mais simples e rápido de obter um dado é indicar seu próprio valor no campo operando da
instrução, em vez de buscá-lo na memória.
• A vantagem desse método reside no curto tempo de execução da instrução, pois não gasta ciclo de
memória para a busca do dado, exceto o único requerido para a busca da instrução.
• Assim, o dado é transferido da memória juntamente com a instrução (para o RI), visto estar contido
no campo operando da instrução.
• Este modo é útil:
– Para inicialização de contadores (um valor sempre fixo em toda execução do mesmo
programa);
– Na operação com constantes matemáticas;
– Para armazenamento de ponteiros em registradores do processador;
• Duas de suas desvantagens consistem na limitação do tamanho do campo operando das instruções
o que reduz o valor máximo do dado a ser manipulado e o fato dos valores serem constantes, já que
as instruções não podem ser modificadas ao longo da execução.
Modos de Endereçamentos
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
Dado
Dado
Dado
Modo Imediato
O dado é transferido diretamente da
instrução para o Registrador ou ULA.
Modo Direto
• Para contornar as limitações do modo de endereçamento imediato, o modo direto guarda o dado na
Memória Principal.
• Sendo assim, o valor binário contido no campo operando da instrução indica o endereço de memória
onde se localiza o dado.
• O endereço pode ser o de uma célula onde o dado está inteiramente contido ou a célula onde
começa o armazenamento do dado no caso dele ocupar mais de uma célula.
• É também um modo simples de acesso, pois requer apenas uma referência à MP para buscar o
dado, sendo, porém mais lento que o modo imediato devido à referência à memória.
• Quando um dado for variar de valor ao longo da execução do programa, a melhor maneira de utilizá-
lo é, inicialmente, armazená-lo na MP. O programa, então, usa o dado através do modo direto, onde
a instrução indica apenas o endereço onde ele se localiza. Esta é a característica de uma variável
de programa: representar o endereço de uma variável.
• Uma possível desvantagem desse processo está na limitação da memória a ser usada, conforme o
tamanho do campo operando. Isto é, se o campo tiver um tamanho, por exemplo, de 12 bits, com o
emprego do modo direto somente se pode acessar as células de endereço na faixa de 0 a (4.095)10.
Modos de Endereçamentos
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
End
End
Modo Direto
Após a primeira referência à memória, o
dado é transferido da memória para o
Registrador ou ULA.
MP
End Dado
Dado
Modo Indireto
• Para contornar as limitações do modo de endereçamento direto, o modo indireto guarda o endereço
do dado na Memória Principal.
• Nesse método, o valor binário contido no campo operando da instrução representa o endereço onde
está armazenado o endereço do dado.
• Assim, há um duplo endereçamento para o acesso a um dado e, consequentemente, mais ciclos de
memória para buscar o dado, comparativamente com os métodos já apresentados.
• O endereço intermediário (conteúdo da célula endereçado pelo valor do campo operando) é
conhecido como ponteiro, pois indica a localização do dado.
• Com esse processo, elimina-se o problema do modo direto, delimitação do valor do endereço do
dado, pois estando o endereço armazenado na memória (podendo ocupar uma ou mais células),
este se estenderá ao tamanho necessário à representação do maior endereço da MP do sistema de
computação em uso além de poder ser modificado ao longo da execução do programa.
Modos de Endereçamentos
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
End 1
End 1
Modo Indireto
Após a primeira referência à memória, a CPU pega o
endereço do dado e retorna à memória para uma
segunda referência sendo que nesta o dado é
transferido da memória para o Registrador ou ULA.
MP
End 2 Dado
Dado
End 1 End 2
End 2
Endereçamento por Registrador
• Esse método tem características semelhantes aos modos direto e indireto, exceto que a célula de
memória referenciada na instrução é substituída por um dos registradores do processador. Com
isso, o endereço mencionado na instrução passa a ser o de um dos registradores, e não mais de
uma célula da MP.
• A primeira vantagem logo observada, consiste no menor número de bits necessários para endereçar
os registradores, visto que estes existem em muito menor quantidade que as células de memória.
Isso reduz o tamanho geral das instruções.
• Um computador que tenha, por exemplo, um processador com 16 registradores, requer apenas 4 bits
para endereçá-los; no caso de endereçamentos de células da MP, como o espaço de
endereçamento da memória é grande, há necessidade de 20 ou mais bits para indicar o endereço de
cada uma das células.
• Outra vantagem está no próprio emprego do dado, que passa a ser armazenado em um meio
(registrador) cujo acesso é muito mais rápido que o acesso à memória.
Modos de Endereçamentos
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
Registrador
Registrador
Modo Direto por Registrador
Ao colocar o registrador como operando no
modo direto, diminui-se o tempo de acesso,
já que além de não ir a memória o
registrador é capaz de guardar números
maiores que os que cabem em uma célula
de memória.
Registrador Dado
Dado
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
Registrador
Registrador
Modo Indireto por Registrador
Tal como no modo direto, o registrador
como operando diminui em um a
quantidade de acessos à memória e,
devido ao seu tamanho, ele pode
armazenar o endereço completo.
Registrador End
End MP
End Dado
Dado
Modo Indexado
• Frequentemente, durante a execução dos programas, existe a necessidade de se manipular endereços
de acesso a elementos de certos tipos especiais de dados. Esses endereços servem, na realidade, de
ponteiros para os referidos elementos.
• Por exemplo, o acesso aos elementos de um vetor deve considerar que tais elementos são
armazenados sequencialmente na memória e que sua localização pode ser referenciada por um
ponteiro (endereço) que é alterado para indicar o elemento desejado (índice do elemento identifica
univocamente cada um).
• A descrição dessas instruções caracterizam o modo de endereçamento denominado indexado. Esta
denominação advém do fato de que a obtenção do endereço de um dado (elemento de um array)
relaciona-se com o seu índice.
• Nesse tipo de instrução, o endereço do dado é a soma do valor do campo operando (fixo para todos os
elementos de um dado array) e de um valor armazenado em um dos registradores (normalmente
denominado registrador índice). O valor armazenado nesse registrador varia para o acesso a cada
elemento.
• Na verdade, esse modo de endereçamento é uma evolução das técnicas desenvolvidos desde os
primórdios da computação para manipulação dessas estruturas de dados especiais.
Modos de Endereçamentos
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
End 1
End 1
Modo Indexado
MP
End 2 Dado
Dado
Reg. Índice
Reg. Índice
End 2
+ = End 2
A[0]
A[1]
A[2]
A[3]
A[4]
Modo Base mais Deslocamento
• Este modo de endereçamento tem característica semelhante ao modo indexado, visto que o endereço
de acesso a uma célula de memória se obtém através da soma de dois valores, um inserido no campo
apropriado da instrução (normalmente denominado campo deslocamento) e o outro valor inserido é em
um determinado registrador, denominado registrador – base ou registrador de segmento.
• A diferença entre eles está na aplicação do propósito do método e, por conseguinte, na forma de
implementá-lo. Nesse caso, o valor a se manter fixo é o do registrador – base/segmento, variando o
conteúdo do campo deslocamento em cada instrução, diferentemente do modo indexado, onde o
conteúdo do registrador é que se altera.
• Os processadores da família Intel x86 possuem alguns registradores projetados especificamente com a
finalidade de servir como registrador de segmento, como os registradores de 16 bits dos primeiros
processadores Pentium seguidos posteriormente pelos registradores de segmentos de 32 bits.
• Este método de endereçamento acarreta uma redução do tamanho das instruções (e, com isso,
economiza memória), bem como facilita o processo de realocação dinâmica de programas.
Modos de Endereçamentos
Modo Base mais Deslocamento
• A sua escolha decorre de dois fatores:
a) Durante a execução de uma grande quantidade de programas as referências as células de
memória, onde se localizam os operandos, normalmente são sequenciais, ocorrendo poucos
acessos a outras instruções fora de ordem (exceto os desvios);
b) A maioria dos programas ocupam um pequeno espaço da MP disponível.
• Dessa forma, em vez de ser necessário, em cada instrução, que o campo operando tenha um tamanho
correspondente à capacidade total de endereçamento da MP, basta que o endereço desejado seja
obtido pela soma de um valor existente em um dos registradores da CPU com o valor contido na
instrução.
• Por isso o método é chamado de base + deslocamento, consistindo, então, na utilização de dois
campos na instrução (que substituem o campo operando): um, com o endereço de um registrador
(chamado de base ou segmento), e outro, com valor denominado deslocamento (porque contem um
valor relativo – que se desloca em relação à primeira instrução).
Modos de Endereçamentos
Modos de Endereçamentos
Modo Base mais Deslocamento
MP
End. do Dado
End. inicial do seg. 0
End. inicial do seg. 1
End. inicial do seg. 2
Deslocamento
Seg. 0
Seg. 1
Seg. 2
End. Inicial do Seg. Deslocamento
+
=
Registrador Instrução
0
1
2
3
N-1
0
1
2
3
N-1
0
1
2
3
N-1
Modos de Endereçamentos
Operando
OPCODE
Instrução
Registrador
ou ULA
Reg. Base
Reg. Base
Modo Base mais Deslocamento
MP
End Dado
Dado
Deslocamento
Deslocamento
+ = End
End
Endians
• Quando o valor a ser guardado ou lido da memória ocupar mais de uma célula, o valor deve ser dividido
em pedaços e então guardados nas células de forma sequencial.
• A questão envolvida aqui diz respeito ao sentido deste armazenamento. Este sentido é denominado
endian.
• A informação pode ser armazenada a partir do byte mais significativo para o menos significativo, isto
é, o byte mais significativo fica na célula de endereço mais baixo enquanto o byte menos
significativo fica na célula de endereço mais alto. Este método é denominado big endian.
• Se for armazenado no sentido contrário, a partir do byte menos significativo para o mais significativo,
isto é, o byte menos significativo fica na célula de endereço mais baixo enquanto o byte mais
significativo fica na célula de endereço mais alto, este método será denominado little endian.
• A seguir temos um exemplo para cada formato.
Arquitetura da CPU
Modos de Endereçamentos
Endians
MP
1
0
2
3
4
5
Valor: A7 B3 45 C9
( )16
MP
1
0
2
3
4
5
Big endian Little endian
Mais Significativo Menos Significativo
B3 45
A7 C9
A7
B3
45
C9 A7
B3
45
C9
A7 B3 45 C9
CISC X RISC
• CISC  Conjunto Complexo de Instruções.
 Motivadores
 Memória muito cara e consequentemente de baixa capacidade;
 Lentidão no acesso à memória.
 Características
 Instruções que realizam tarefas complexas;
 Uso de micro-instruções;
 Possibilidade de trabalhar com muitos parâmetros;
 Endereçamento de memória variado em instruções aritméticas e lógicas;
 Instruções de tamanho variável.
 Desvantagens
 Circuitos muito complexos;
 Grande geração de dependência de dados;
 Descasamento nos tempos de acesso entre memória e registradores;
 Maior dificuldade em criar arquiteturas mais eficientes.
Arquitetura da CPU
CISC X RISC
• RISC  Conjunto Reduzido de Instruções.
 Motivadores
 Uso da memória cache para diminuir o tempo médio no acesso à memória;
 Barateamento da memória principal permitindo uma alta capacidade de armazenamento;
 Interesse em simplificar a arquitetura da CPU para aumentar o desempenho com estruturas
mais eficientes.
 Características
 As instruções realizam tarefas simples e básicas;
 Uso de decodificação por hardware através de circuitos combinacionais, não são utilizadas
micro instruções;
 Endereçamento de memória variado, porém apenas para as instruções de leitura e escrita;
 As operações aritméticas e lógicas só acessam dados em registradores;
 Pequena variedade de Instruções.
 Desvantagens
 Maior complexidade na geração de programas;
 Programas maiores.
Arquitetura da CPU
• A evolução tecnológica dos processadores iria diminuir drasticamente.
• O caminho para o aumento de desempenho é de unir mais de um processador para
realizar a mesma tarefa em menos tempo através da divisão das tarefas entre os
processadores.
• Os sistemas paralelos foram classificados em 4 categorias em função das instruções e dos
dados. É a Taxonomia de Flynn.
 SISD (Single Instruction stream, Single Data stream) – Uniprocessador.
 SIMD (Single Instruction stream, Multiple Data stream) – A mesma instrução é
executada por múltiplos processadores, porém cada um deles possui diferentes
dados.
 MISD (Multiple Instruction stream, Single Data stream) – Sem uso comercial.
 MIMD (Multiple Instruction stream, Multiple Data stream) – Cada processador busca
sua própria instrução e opera seu próprio dado.
Multiprocessadores
• Desafio do Processamento Paralelo.
• Para o aumento de desempenho com multiprocessadores nos deparamos com dois
grandes desafios.
• O primeiro diz respeito ao limitado paralelismo disponível nos programas
• O segundo se refere ao alto custo nas comunicações.
• A limitação no paralelismo disponível dificulta em adquirirmos um bom ganho (speedup)
nas máquinas paralelas.
Multiprocessadores

Mais conteúdo relacionado

Semelhante a bom-1.pdf

Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSLucasNogueira565696
 
Aula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdfAula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdfEMERSONMUNIZDECARVAL
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxcassamo2
 
Introdução a computação 04
Introdução a computação 04Introdução a computação 04
Introdução a computação 04Felipe Pereira
 
Introdução a computação 04 (1)
Introdução a computação 04 (1)Introdução a computação 04 (1)
Introdução a computação 04 (1)Felipe Pereira
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativosMaria194536
 
A unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadorA unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadormarcelokuhl
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfAriclenesKinkela
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 

Semelhante a bom-1.pdf (20)

Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OS
 
Aula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdfAula 01b - Conceitos de Hardware e Software.pdf
Aula 01b - Conceitos de Hardware e Software.pdf
 
Processador
ProcessadorProcessador
Processador
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
 
Introdução a computação 04
Introdução a computação 04Introdução a computação 04
Introdução a computação 04
 
Introdução a computação 04 (1)
Introdução a computação 04 (1)Introdução a computação 04 (1)
Introdução a computação 04 (1)
 
cpu.pdf
cpu.pdfcpu.pdf
cpu.pdf
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 
A unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadorA unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computador
 
Hardware
Hardware Hardware
Hardware
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
F oc aula_03a
F oc aula_03aF oc aula_03a
F oc aula_03a
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdf
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Memoria principal
Memoria principalMemoria principal
Memoria principal
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Componentes basicos do pc
Componentes basicos do pcComponentes basicos do pc
Componentes basicos do pc
 

Mais de JoberthSilva

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdfJoberthSilva
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosJoberthSilva
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptJoberthSilva
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxJoberthSilva
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.pptJoberthSilva
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptxJoberthSilva
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
 
Herança e Polimorfismo.ppt
Herança e Polimorfismo.pptHerança e Polimorfismo.ppt
Herança e Polimorfismo.pptJoberthSilva
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais SemicondutoresJoberthSilva
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.pptJoberthSilva
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfJoberthSilva
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.pptJoberthSilva
 

Mais de JoberthSilva (20)

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcados
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.ppt
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptx
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 
Aula_1.pptx
Aula_1.pptxAula_1.pptx
Aula_1.pptx
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.ppt
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptx
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.ppt
 
capacitores1.ppt
capacitores1.pptcapacitores1.ppt
capacitores1.ppt
 
Herança e Polimorfismo.ppt
Herança e Polimorfismo.pptHerança e Polimorfismo.ppt
Herança e Polimorfismo.ppt
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais Semicondutores
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.ppt
 
Fibra Óptica
Fibra ÓpticaFibra Óptica
Fibra Óptica
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdf
 
50524(1).ppt
50524(1).ppt50524(1).ppt
50524(1).ppt
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.ppt
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 

bom-1.pdf

  • 1. Arquitetura de Computadores Unidade Central de Processamento – CPU
  • 2. • Funções realizadas pelo processador: – Função controle Responsável pela busca, interpretação e controle da execução das instruções, bem como do controle da ação dos demais componentes do sistema de computação (memória, entrada/saída). – Função processamento Responsável por realizar as atividades relacionadas com a efetiva execução de uma operação, ou seja, processar, realizar um cálculo aritmético ou lógico, etc. CPU
  • 3. • Componentes de uma CPU – Unidades Funcionais São os módulos da CPU responsáveis pela busca e o processamento das instruções. – Registradores É a memória interna da CPU que possui conexão direta com as Unidades Funcionais. São produzidos com a mesma tecnologia da CPU possuindo assim a mesma velocidade. – Barramento Interno Responsável por interconectar os registradores às Unidades Funcionais. CPU
  • 4. Os registradores são divididos em dois tipos: – Uso Geral (dados) Os registradores de uso geral são usados para armazenar dados da execução do programa, como os valores que serão operados e o resultado das operações. • Acc (Acumulador)  Este registrador é especial porque ele é normalmente usado como fonte e destino de dados e costuma ser um operando implícito nas instruções. – Uso Específico (informações de uso interno da CPU) Os registradores de uso específico guardam informações especiais, como por exemplo: • REM  Guarda o endereço utilizado na comunicação com a memória. • RDM  Guarda o dado utilizado tanto na leitura como na escrita com a memória. • PC ou CI  Sigla proveniente de “Program Counter” e “Contador de Instrução” respectivamente. Este registrador guarda o endereço da próxima instrução a ser executada pela CPU. • RI  Sigla proveniente de “Registrador de Instruções”. Este registrador guarda a instrução que está sendo executada pela CPU. • FLAGS ou STATUS  Registrador especial para guardar informações referente a última execução realizada e sinais de controle para a CPU realizar controle de fluxo (desvios). CPU
  • 5. Componentes da CPU CPU ULA Registradores 0 a R – 1 Acumulador PC ou CI RDM REM RI Unidade de Controle (UC) Decodificador de Instruções Clock Barramento de Dados Barramento de Endereços Barramento de Controle
  • 6. Buscar a próxima instrução Incrementar o PC ou CI Decodificar o código da operação Executar a operação Escrever o resultado Tem operando? Buscar e Armazenar operando Cálculo do endereço do operando Ciclo de busca Ciclo de execução Sim Não Fluxograma de um Ciclo de Instrução
  • 7. Término Início Buscar a instrução na memória e atualizar o PC ou CI. Busca Decodificar a instrução, interpretar a operação a ser realizada e buscar operandos (se houver). Decodificação Executar a Operação. Escrever o resultado. Execução Resultado Fluxograma resumido de um Ciclo de Instrução
  • 8. Busca Resul. Decod. Sequência de Execução das Instruções em uma CPU tradicional Exec. Busca Resul. Decod. Exec. Ciclos de Clock 1 2 3 4 5 6 7 8 Instrução i Instrução i + 1 Como podemos observar, teremos uma instrução finalizada a cada 4 ciclos de clock. Isto é, 1 inst/4 ciclos ou 0,25 inst/ciclo.
  • 9. • Enquanto a instrução encontra-se em um determinado estágio, nota-se claramente a ociosidade dos demais estágios da CPU. • Um aprimoramento realizado no projeto da CPU foi de minimizar estas ociosidades implementando a possibilidade de executar várias instruções ao mesmo tempo, porém em estágios diferentes. • A este tipo de funcionalidade da CPU dá-se o nome de Pipeline. Aprimoramento da CPU
  • 10. Busca Resul. Decod. Exec. Busca Resul. Decod. Exec. Busca Resul. Decod. Exec. Busca Resul. Decod. Exec. Busca Resul. Decod. Exec. Ciclos de Clock 1 2 3 4 5 6 7 8 Instrução i Instrução i + 1 Instrução i + 2 Instrução i + 3 Instrução i + 4 Como podemos observar, após o preenchimento do pipeline, teremos uma instrução finalizada a cada ciclo de clock, logo temos, 1 inst/ciclo. O aumento de desempenho foi de 4. Isto é, o aumento de desempenho é equivalente ao número de estágios do pipeline quando o pipeline estiver cheio. Sequência de Execução das Instruções em uma CPU com Pipeline
  • 11. • Um novo aprimoramento realizado foi de implementar mais de um pipeline, possibilitando a execução de mais de uma instrução simultaneamente no mesmo estágio. • A este tipo de CPU dá-se o nome de Superescalar. Aprimoramento da CPU Pipeline 0 Pipeline 1 CPU 2 Instruções 2 Resultados
  • 12. • Como será que é formada a instrução de máquina? • Devemos ter em mente que a CPU possui um circuito para cada tarefa definida pelo fabricante. • Para acessar estes circuitos e então ter tal operação realizada, eles foram identificados com um código numérico. • Sempre que se desejar executar uma determinada operação, deve- se indicar o código do circuito em questão. • Este código é conhecido como opcode. Formato das Instruções de Máquina
  • 13. • Além de indicar a operação, a maioria delas necessita de parâmetros (operandos). Então, além do opcode, a instrução possui campos com os operandos da operação em questão. • Nas arquiteturas mais comuns, as instruções podem ir desde apenas o opcode, zero operando, até três operandos. Formato das Instruções de Máquina Operandos OP. 1 OP. 2 OPCODE OP. 3 Instrução
  • 14. • Colocar o dado diretamente na instrução muitas das vezes é insuficiente para algumas estruturas de dados. Sendo assim, existem outras formas de informar o local onde os dados ou instruções estão guardados. • Dentre os diversos modos de endereçamentos desenvolvidos para processadores, os principais são: – Imediato; – Direto; – Indireto; – Por registrador; – Indexado; – Base mais deslocamento. • Nem todos estes modos estão incluídos nos conjuntos de instruções dos processadores contemporâneos, mas devem ser descritos não só por razões históricas mas para percepção do processo evolutivo da tecnologia. Modos de Endereçamentos
  • 15. Modo Imediato • O método mais simples e rápido de obter um dado é indicar seu próprio valor no campo operando da instrução, em vez de buscá-lo na memória. • A vantagem desse método reside no curto tempo de execução da instrução, pois não gasta ciclo de memória para a busca do dado, exceto o único requerido para a busca da instrução. • Assim, o dado é transferido da memória juntamente com a instrução (para o RI), visto estar contido no campo operando da instrução. • Este modo é útil: – Para inicialização de contadores (um valor sempre fixo em toda execução do mesmo programa); – Na operação com constantes matemáticas; – Para armazenamento de ponteiros em registradores do processador; • Duas de suas desvantagens consistem na limitação do tamanho do campo operando das instruções o que reduz o valor máximo do dado a ser manipulado e o fato dos valores serem constantes, já que as instruções não podem ser modificadas ao longo da execução. Modos de Endereçamentos
  • 16. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA Dado Dado Dado Modo Imediato O dado é transferido diretamente da instrução para o Registrador ou ULA.
  • 17. Modo Direto • Para contornar as limitações do modo de endereçamento imediato, o modo direto guarda o dado na Memória Principal. • Sendo assim, o valor binário contido no campo operando da instrução indica o endereço de memória onde se localiza o dado. • O endereço pode ser o de uma célula onde o dado está inteiramente contido ou a célula onde começa o armazenamento do dado no caso dele ocupar mais de uma célula. • É também um modo simples de acesso, pois requer apenas uma referência à MP para buscar o dado, sendo, porém mais lento que o modo imediato devido à referência à memória. • Quando um dado for variar de valor ao longo da execução do programa, a melhor maneira de utilizá- lo é, inicialmente, armazená-lo na MP. O programa, então, usa o dado através do modo direto, onde a instrução indica apenas o endereço onde ele se localiza. Esta é a característica de uma variável de programa: representar o endereço de uma variável. • Uma possível desvantagem desse processo está na limitação da memória a ser usada, conforme o tamanho do campo operando. Isto é, se o campo tiver um tamanho, por exemplo, de 12 bits, com o emprego do modo direto somente se pode acessar as células de endereço na faixa de 0 a (4.095)10. Modos de Endereçamentos
  • 18. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA End End Modo Direto Após a primeira referência à memória, o dado é transferido da memória para o Registrador ou ULA. MP End Dado Dado
  • 19. Modo Indireto • Para contornar as limitações do modo de endereçamento direto, o modo indireto guarda o endereço do dado na Memória Principal. • Nesse método, o valor binário contido no campo operando da instrução representa o endereço onde está armazenado o endereço do dado. • Assim, há um duplo endereçamento para o acesso a um dado e, consequentemente, mais ciclos de memória para buscar o dado, comparativamente com os métodos já apresentados. • O endereço intermediário (conteúdo da célula endereçado pelo valor do campo operando) é conhecido como ponteiro, pois indica a localização do dado. • Com esse processo, elimina-se o problema do modo direto, delimitação do valor do endereço do dado, pois estando o endereço armazenado na memória (podendo ocupar uma ou mais células), este se estenderá ao tamanho necessário à representação do maior endereço da MP do sistema de computação em uso além de poder ser modificado ao longo da execução do programa. Modos de Endereçamentos
  • 20. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA End 1 End 1 Modo Indireto Após a primeira referência à memória, a CPU pega o endereço do dado e retorna à memória para uma segunda referência sendo que nesta o dado é transferido da memória para o Registrador ou ULA. MP End 2 Dado Dado End 1 End 2 End 2
  • 21. Endereçamento por Registrador • Esse método tem características semelhantes aos modos direto e indireto, exceto que a célula de memória referenciada na instrução é substituída por um dos registradores do processador. Com isso, o endereço mencionado na instrução passa a ser o de um dos registradores, e não mais de uma célula da MP. • A primeira vantagem logo observada, consiste no menor número de bits necessários para endereçar os registradores, visto que estes existem em muito menor quantidade que as células de memória. Isso reduz o tamanho geral das instruções. • Um computador que tenha, por exemplo, um processador com 16 registradores, requer apenas 4 bits para endereçá-los; no caso de endereçamentos de células da MP, como o espaço de endereçamento da memória é grande, há necessidade de 20 ou mais bits para indicar o endereço de cada uma das células. • Outra vantagem está no próprio emprego do dado, que passa a ser armazenado em um meio (registrador) cujo acesso é muito mais rápido que o acesso à memória. Modos de Endereçamentos
  • 22. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA Registrador Registrador Modo Direto por Registrador Ao colocar o registrador como operando no modo direto, diminui-se o tempo de acesso, já que além de não ir a memória o registrador é capaz de guardar números maiores que os que cabem em uma célula de memória. Registrador Dado Dado
  • 23. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA Registrador Registrador Modo Indireto por Registrador Tal como no modo direto, o registrador como operando diminui em um a quantidade de acessos à memória e, devido ao seu tamanho, ele pode armazenar o endereço completo. Registrador End End MP End Dado Dado
  • 24. Modo Indexado • Frequentemente, durante a execução dos programas, existe a necessidade de se manipular endereços de acesso a elementos de certos tipos especiais de dados. Esses endereços servem, na realidade, de ponteiros para os referidos elementos. • Por exemplo, o acesso aos elementos de um vetor deve considerar que tais elementos são armazenados sequencialmente na memória e que sua localização pode ser referenciada por um ponteiro (endereço) que é alterado para indicar o elemento desejado (índice do elemento identifica univocamente cada um). • A descrição dessas instruções caracterizam o modo de endereçamento denominado indexado. Esta denominação advém do fato de que a obtenção do endereço de um dado (elemento de um array) relaciona-se com o seu índice. • Nesse tipo de instrução, o endereço do dado é a soma do valor do campo operando (fixo para todos os elementos de um dado array) e de um valor armazenado em um dos registradores (normalmente denominado registrador índice). O valor armazenado nesse registrador varia para o acesso a cada elemento. • Na verdade, esse modo de endereçamento é uma evolução das técnicas desenvolvidos desde os primórdios da computação para manipulação dessas estruturas de dados especiais. Modos de Endereçamentos
  • 25. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA End 1 End 1 Modo Indexado MP End 2 Dado Dado Reg. Índice Reg. Índice End 2 + = End 2 A[0] A[1] A[2] A[3] A[4]
  • 26. Modo Base mais Deslocamento • Este modo de endereçamento tem característica semelhante ao modo indexado, visto que o endereço de acesso a uma célula de memória se obtém através da soma de dois valores, um inserido no campo apropriado da instrução (normalmente denominado campo deslocamento) e o outro valor inserido é em um determinado registrador, denominado registrador – base ou registrador de segmento. • A diferença entre eles está na aplicação do propósito do método e, por conseguinte, na forma de implementá-lo. Nesse caso, o valor a se manter fixo é o do registrador – base/segmento, variando o conteúdo do campo deslocamento em cada instrução, diferentemente do modo indexado, onde o conteúdo do registrador é que se altera. • Os processadores da família Intel x86 possuem alguns registradores projetados especificamente com a finalidade de servir como registrador de segmento, como os registradores de 16 bits dos primeiros processadores Pentium seguidos posteriormente pelos registradores de segmentos de 32 bits. • Este método de endereçamento acarreta uma redução do tamanho das instruções (e, com isso, economiza memória), bem como facilita o processo de realocação dinâmica de programas. Modos de Endereçamentos
  • 27. Modo Base mais Deslocamento • A sua escolha decorre de dois fatores: a) Durante a execução de uma grande quantidade de programas as referências as células de memória, onde se localizam os operandos, normalmente são sequenciais, ocorrendo poucos acessos a outras instruções fora de ordem (exceto os desvios); b) A maioria dos programas ocupam um pequeno espaço da MP disponível. • Dessa forma, em vez de ser necessário, em cada instrução, que o campo operando tenha um tamanho correspondente à capacidade total de endereçamento da MP, basta que o endereço desejado seja obtido pela soma de um valor existente em um dos registradores da CPU com o valor contido na instrução. • Por isso o método é chamado de base + deslocamento, consistindo, então, na utilização de dois campos na instrução (que substituem o campo operando): um, com o endereço de um registrador (chamado de base ou segmento), e outro, com valor denominado deslocamento (porque contem um valor relativo – que se desloca em relação à primeira instrução). Modos de Endereçamentos
  • 28. Modos de Endereçamentos Modo Base mais Deslocamento MP End. do Dado End. inicial do seg. 0 End. inicial do seg. 1 End. inicial do seg. 2 Deslocamento Seg. 0 Seg. 1 Seg. 2 End. Inicial do Seg. Deslocamento + = Registrador Instrução 0 1 2 3 N-1 0 1 2 3 N-1 0 1 2 3 N-1
  • 29. Modos de Endereçamentos Operando OPCODE Instrução Registrador ou ULA Reg. Base Reg. Base Modo Base mais Deslocamento MP End Dado Dado Deslocamento Deslocamento + = End End
  • 30. Endians • Quando o valor a ser guardado ou lido da memória ocupar mais de uma célula, o valor deve ser dividido em pedaços e então guardados nas células de forma sequencial. • A questão envolvida aqui diz respeito ao sentido deste armazenamento. Este sentido é denominado endian. • A informação pode ser armazenada a partir do byte mais significativo para o menos significativo, isto é, o byte mais significativo fica na célula de endereço mais baixo enquanto o byte menos significativo fica na célula de endereço mais alto. Este método é denominado big endian. • Se for armazenado no sentido contrário, a partir do byte menos significativo para o mais significativo, isto é, o byte menos significativo fica na célula de endereço mais baixo enquanto o byte mais significativo fica na célula de endereço mais alto, este método será denominado little endian. • A seguir temos um exemplo para cada formato. Arquitetura da CPU
  • 31. Modos de Endereçamentos Endians MP 1 0 2 3 4 5 Valor: A7 B3 45 C9 ( )16 MP 1 0 2 3 4 5 Big endian Little endian Mais Significativo Menos Significativo B3 45 A7 C9 A7 B3 45 C9 A7 B3 45 C9 A7 B3 45 C9
  • 32. CISC X RISC • CISC  Conjunto Complexo de Instruções.  Motivadores  Memória muito cara e consequentemente de baixa capacidade;  Lentidão no acesso à memória.  Características  Instruções que realizam tarefas complexas;  Uso de micro-instruções;  Possibilidade de trabalhar com muitos parâmetros;  Endereçamento de memória variado em instruções aritméticas e lógicas;  Instruções de tamanho variável.  Desvantagens  Circuitos muito complexos;  Grande geração de dependência de dados;  Descasamento nos tempos de acesso entre memória e registradores;  Maior dificuldade em criar arquiteturas mais eficientes. Arquitetura da CPU
  • 33. CISC X RISC • RISC  Conjunto Reduzido de Instruções.  Motivadores  Uso da memória cache para diminuir o tempo médio no acesso à memória;  Barateamento da memória principal permitindo uma alta capacidade de armazenamento;  Interesse em simplificar a arquitetura da CPU para aumentar o desempenho com estruturas mais eficientes.  Características  As instruções realizam tarefas simples e básicas;  Uso de decodificação por hardware através de circuitos combinacionais, não são utilizadas micro instruções;  Endereçamento de memória variado, porém apenas para as instruções de leitura e escrita;  As operações aritméticas e lógicas só acessam dados em registradores;  Pequena variedade de Instruções.  Desvantagens  Maior complexidade na geração de programas;  Programas maiores. Arquitetura da CPU
  • 34. • A evolução tecnológica dos processadores iria diminuir drasticamente. • O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesma tarefa em menos tempo através da divisão das tarefas entre os processadores. • Os sistemas paralelos foram classificados em 4 categorias em função das instruções e dos dados. É a Taxonomia de Flynn.  SISD (Single Instruction stream, Single Data stream) – Uniprocessador.  SIMD (Single Instruction stream, Multiple Data stream) – A mesma instrução é executada por múltiplos processadores, porém cada um deles possui diferentes dados.  MISD (Multiple Instruction stream, Single Data stream) – Sem uso comercial.  MIMD (Multiple Instruction stream, Multiple Data stream) – Cada processador busca sua própria instrução e opera seu próprio dado. Multiprocessadores
  • 35. • Desafio do Processamento Paralelo. • Para o aumento de desempenho com multiprocessadores nos deparamos com dois grandes desafios. • O primeiro diz respeito ao limitado paralelismo disponível nos programas • O segundo se refere ao alto custo nas comunicações. • A limitação no paralelismo disponível dificulta em adquirirmos um bom ganho (speedup) nas máquinas paralelas. Multiprocessadores