Buscar

MPI: Arquiteturas Paralelas e Distribuídas

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 61 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 61 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 61 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

Arquitetura Paralelas
e
Distribuídas
Professor: Leonardo Lima
Email: leonardo.lima1@anhanguera.com
REVISÃO
Introdução
• O MPI é um padrão para desenvolvimento de aplicações
distribuídas
• Disponível na forma de bibliotecas para linguagens C, C++, Fortran
e pode ser estendida em Java e C#.NET
• SPMD – Single Program Multiple Data – todos os processos
executam o MESMO programa
• Síntese de diversos sistemas anteriores
3
Arquiteturas Paralelas e Distribuídas
Objetivos
• Eficiência na comunicação
• Ambientes para desenvolvimento e execução para computadores,
clusters e redes heterogêneas paralelas
• Fácil aprendizado para atuais programadores de aplicações
distribuídas (interface parecida com a do PVM)
4
Arquiteturas Paralelas e Distribuídas
Características
• Supõe que a subcamada de comunicação é confiável
• Garante ordem de entrega das mensagens
• Trabalha com o conceito de COMUNICADORES, que definem o
universo de processos envolvidos em uma operação de
comunicação
• Cada processo ganha uma identificação numérica (rank)
5
Arquiteturas Paralelas e Distribuídas
Comandos de inicialização e finalização
• MPI_Init: Inicializa o ambiente de execução
• MPI_Comm_rank: Determina o rank (identificação) do processo no
comunicador
• MPI_Comm_size: Determina o número de processos no
comunicador
• MPI_Finalize: Termina o ambiente de execução
6
Arquiteturas Paralelas e Distribuídas
MPI_Send
int MPI_Send(void* message, int count, MPI_Datatype datatype, int dest, int tag, 
MPI_Comm comm)
• message: Endereço inicial da informação a ser enviada
• count: Número de elementos do tipo especificado a enviar
• datatype: MPI_CHAR, MPI_INT, MPI_FLOAT, MPI_BYTE, MPI_LONG,
MPI_UNSIGNED_CHAR, etc
• dest: rank do processo destino
• tag: Identificador do tipo da mensagem
• comm: Especifica o contexto da comunicação e os processos participantes do
grupo. O padrão é MPI_COMM_WORLD
7
Arquiteturas Paralelas e Distribuídas
MPI_Recv
int MPI_Recv(void* message, int count, MPI_Datatype datatype, int source, int
tag, MPI_Comm comm , MPI_Status* status)
• message: Endereço inicial do buffer de recepção
• count: Número máximo de elementos a serem recebidos
• datatype: MPI_CHAR, MPI_INT, MPI_FLOAT, MPI_BYTE, MPI_LONG,
MPI_UNSIGNED_CHAR, etc.
• source: rank do processo origem ( * = MPI_ANY_SOURCE)
• tag: identificador do tipo da mensagem a receber (* = MPI_ANY_TAG)
• comm: comunicador
• status: Estrutura com três capôs: MPI_SOURCE_TAG, MPI_TAG, MPI_ERROR
8
Arquiteturas Paralelas e Distribuídas
MPI_Irecv
• Menos utilizada
• Parâmetros iguais ao bloqueante, acrescido de uma estrutura
(request) que armazena informações que possibilitam o bloqueio
posterior do processo usando a função MPI_Wait(&request,
&status)
9
Arquiteturas Paralelas e Distribuídas
Comunicação Coletiva
• mais restritivas que as comunicações ponto a ponto:
– quantidade de dados enviados deve casar exatamente com a
quantidade de dados especificada pelo receptor
– Apenas a versão bloqueante das funções está disponível
– O argumento tag não existe
• Todos os processos participantes da comunicação coletiva chamam
a mesma função com argumentos compatíveis
10
Arquiteturas Paralelas e Distribuídas
Algumas Funções para Comunicação Coletiva
• MPI_Barrier: Bloqueia o processo até que todos os processos
associados ao comunicador chamem essa função
11
Arquiteturas Paralelas e Distribuídas
Algumas Funções para Comunicação Coletiva
• MPI_Bcast: Faz a difusão de uma mensagem do processo raiz para
todos os processos associados ao comunicador
12
Arquiteturas Paralelas e Distribuídas
Algumas Funções para Comunicação Coletiva
• MPI_Reduce: Combina todos os elementos presentes no buffer de cada
processo do grupo usando a operação definida como parâmetro e coloca o valor
resultante no buffer do processo especificado. O exemplo abaixo soma todas as
variáveis “x” armazenando o total na variável “tot” do processo 2.
13
Arquiteturas Paralelas e Distribuídas
Exceto para todos os outros !!!
14
Arquiteturas Paralelas e Distribuídas
MPI é a pior maneira de Programar ???
15
Arquiteturas Paralelas e Distribuídas
Conclusão
• Proporciona aumentos reais de desempenho
• Proposto para inclusão na norma MPI
• Atualmente disponível em LibNBC
- Implementação portátil usando MPI 1
16
Arquiteturas Paralelas e Distribuídas
Conclusão
• Aplica-se otimizações de tempo de execução agressivos
- Mapas de operações de alto nível, mais específicas, para operação MPI
ativa
- Nunca serializes tipos primitivos ou estruturas (tipos de dados ou
construções derivadas quando necessário).
• Desempenho micro referência (NetPipe):
- Insignificante mais cabe (em relação ao C - A memória compartilhada o
TCP pode ser mais lento no C).
17
Arquiteturas Paralelas e Distribuídas
Conclusão
Ainda não esta Morto !!!
TRABALHO P2 – EM GRUPO – ENTREGA 25/05
VALENDO PONTO !!!!
DESENVOLVAM UM EXEMPLO USANDO ALGUMA BIBLIOTECA
COM OS RECURSOS DO MPI, NO VISUAL STUDIO (.NET) OU
EM ECLIPSE/NETBEANS (JAVA)
MPI FOR JAVA
HTTP://WWW.NEW-NPAC.ORG/USERS/FOX/DOCUMENTS/MPIFORJAVAMARCH00/CPEMPI.PDF
HTTPS://BLOGS.CISCO.COM/PERFORMANCE/JAVA-BINDINGS-FOR-OPEN-MPI
MICROSOFT MPI
HTTPS://MSDN.MICROSOFT.COM/EN-US/LIBRARY/BB524831(V=VS.85).ASPX
HTTP://RESEARCH.IHOST.COM/PPOPP08/PRESENTATIONS/GREGOR-MPI-NET.PDF
HTTPS://WWW.CODEPROJECT.COM/ARTICLES/25252/IMPLEMENTING-PARALLEL-PROGRAMMING-USING-MPI-AND-C
Arquiteturas Paralelas e Distribuídas
http://www.new-npac.org/users/fox/documents/mpiforjavamarch00/cpempi.pdf
https://blogs.cisco.com/performance/java-bindings-for-open-mpi
https://msdn.microsoft.com/en-us/library/bb524831(v=vs.85).aspx
http://research.ihost.com/ppopp08/presentations/gregor-mpi-net.pdf
https://www.codeproject.com/Articles/25252/Implementing-parallel-programming-using-MPI-and-C
AULA DE HOJE
Arquiteturas Paralelas e Distribuídas
Arquiteturas Paralelas e Distribuídas
Arquiteturas Paralelas e Distribuídas
Arquiteturas Paralelas e Distribuídas
NA TECNOLOGIA DA INFORMAÇÃO
Arquiteturas Paralelas e Distribuídas
NA TECNOLOGIA DA INFORMAÇÃO
Arquiteturas Paralelas e Distribuídas
25
Arquiteturas Paralelas e Distribuídas
PIPELINE - Introdução
• Pipeline é uma técnica de implementação de processadores que permite a
sobreposição temporal das diversas fases de execução das instruções.
• Aumenta o número de instruções executadas simultaneamente e a taxa de
instruções iniciadas e terminadas por unidade de tempo
• O pipeline não reduz o tempo gasto para completar uma instrução
individualmente.
26
Arquiteturas Paralelas e Distribuídas
PIPELINE – Exemplo
• Vamos supor uma lavanderia, em que cada etapa possa ser realizada em 15
minutos:
1. Colocar a roupa na maquina de lavar
2. Depois de lavada, colocá-la na máquina de secar roupa
3. Depois de seca, passar a ferro
4. Depois de passada, arrumá-la no armário
27
Arquiteturas Paralelas e Distribuídas
PIPELINE – Exemplo Sem Pipeline
28
Arquiteturas Paralelas e Distribuídas
PIPELINE – Exemplo Com Pipeline
29
Arquiteturas Paralelas e Distribuídas
PIPELINE – Exemplo
• Supondo-se que cada uma destas etapas leve 15 minutos para ser realizada, a
lavagem de um cesto de roupas continuará levando 1 horas para ser realizada.
• Entretanto, podemos iniciar a lavagem de um cesto de roupas a cada 15 minutos,
até que tenhamos 4 cestos sendo lavados simultaneamente, um em cada etapa
do “pipeline”.
30
Arquiteturas Paralelas e Distribuídas
PIPELINE 
• Não melhora a latência de cada tarefa individualmente.
• Melhora o throughput (taxa de transferência) de todo o trabalho.
• Várias tarefas executam simultaneamente usando recursos diferentes.
• Speedup (aceleração) potencial = número de estágios do pipeline.
31
Arquiteturas Paralelas e Distribuídas
Exemplo de Pipeline de Instruções
Divisão da execução da instrução em 5 estágios:
• Busca da instrução na memória (B)
• Leitura dos registradores e decodificação da instrução (D)
• Execução da instrução(E)
• Acesso a um operando na memória (M)
• Escrita de um resultado em um registrador (W)
32
Arquiteturas Paralelas e Distribuídas
Exemplo de Instruções
33
Arquiteturas Paralelas e Distribuídas
Exemplo de Instruções com Pipeline
34
Arquiteturas Paralelas e Distribuídas
Sem Pipeline
35
Arquiteturas Paralelas e Distribuídas
Com Pipeline
36
Arquiteturas Paralelas e Distribuídas
Características dos Pipelines de Instruções
• O tempo do ciclo do relógio do processador deve ser igual ou maior que o tempo
de execução do estágio mais lento do pipeline.
• Deve-se procurar dividir a execução da instrução em estágios com o mesmo
tempo.
• O pipeline deve ser mantido sempre “cheio” para que o desempenho máximo
seja alcançado.
• De um modo geral, com o uso do pipeline, cada instrução ainda leva o mesmo
tempo para ser executada.
• Algumas instruções contudo podem ter o seu tempo de execução aumentado,
pois atravessam estágios em que não realizam nenhuma operação útil.
37
Arquiteturas Paralelas e Distribuídas
Características dos Pipelines de Instruções
• O tempo gasto no processamento de M instruções em um pipeline com K
estágios e ciclo de máquina igual a t é dado por:
T = [K + (M – 1)] * t
• Se M >> K (caso comum), T é aproximadamente M * t
38
Arquiteturas Paralelas e Distribuídas
Características dos Pipelines de Instruções
• Se um programa tem 10.001 instruções. Quanto tempo leva para ser executado
em um processador com pipeline de 5 estágios e relógio de 100ns?
T = [K + (M – 1)] * t
T = (5 + (10.000)) * 100x10-9 = ~1ms (com pipeline)
T = M * t
T = 500ns * 10.000 = ~5ms (sem pipeline)
39
Arquiteturas Paralelas e Distribuídas
Problemas no uso de Pipelines
• Estágios pode ter tempos de execução diferentes:
– Solução 1: Implementar esses estágios como um pipeline onde cada sub-
estágio possui tempo de execução semelhante aos demais estágios do
pipeline principal.
– Solução 2: Replicar esse estágio, colocando replicas em paralelo no
estágio principal. O número de replicas é dado pela razão entre o tempo do
estágio mais lento e os demais.
40
Arquiteturas Paralelas e Distribuídas
Problemas no uso de Pipelines
• O sistema de memória é incapaz de manter o fluxo de instruções no pipeline
– O uso de memória cache com alta taxa de acertos e tempo de acesso
compatível com o tempo de ciclo do pipeline.
• Dependências ou conflitos (“Hazards”) (“Perigos”)
– Conflitos estruturais (
Pode haver acessos simultâneos à memória feitos por 2 ou mais
estágios.
– Dependência de dados
As instruções dependem de resultados de instruções anteriores,
ainda não completadas.
– Dependência de controle
A próxima instrução não está no endereço subsequente ao da
instrução anterior
• Tratamento de execuções
41
Arquiteturas Paralelas e Distribuídas
Conflitos Estruturais no uso de Pipelines
• Acesso concorrente à memória
– Uso de memórias multiportas ou com múltiplos bancos com acessos
independentes
• Leitura de instrução de leitura / escrita de dados simultâneos à memória
– Uso de arquitetura “Harvard” com cache de dados e instruções separados
• Acesso simultâneo ao banco de registradores
– Uso de banco de registradores com múltiplas portas.
• Uso simultâneo de uma mesma unidade funcional
– Replicação da unidade funcional ou implementação “pipelined” dessa
unidade.
42
Arquiteturas Paralelas e Distribuídas
Conflitos Estruturais no uso de Pipelines
• Problema: acesso simultâneo à memória por 2 ou mais estágios
• Soluções
– Caches separados de dados e instruções
– Memória com múltiplos bancos com acessos independentes.
43
Arquiteturas Paralelas e Distribuídas
Conflitos Por Dados no uso de Pipelines
• Problema: uma instrução faz uso de um operando que vai ser produzido por uma
outra instrução que ainda está no pipeline.
• A execução da instrução seguinte depende de operando calculado pela instrução
anterior
• Tipos de dependência de dados:
– Dependência verdadeira
– Dependência falsa
 Antidependência
 Dependência de saída
44
Arquiteturas Paralelas e Distribuídas
Dependência de dados no uso de Pipelines
• Dependência verdadeira (direta):
– O pipeline precisa ser parado durante certo número de ciclos (interlock)
– Colocação de instruções de “nop” ou escalonamento adequado das
instruções pelo compilador
– O adiamento dos dados pode resolver em alguns casos
• Dependência falsa
– Não é um problema em pipelines onde a ordem de execução das
instruções é mantida
Arquiteturas Paralelas e Distribuídas
MUITO OBRIGADO !!!
EXERCÍCIOS
Arquiteturas Paralelas e Distribuídas
47
Arquiteturas Paralelas e Distribuídas
Exercícios - Pipelines
1) “Um hazard de pipeline ocorre quando o pipeline, ou alguma parte dele, precisa
parar porque as condições não permitem a execução contínua. A parada
do pipeline é conhecida como bolha de pipeline.” Existem três tipos de hazards;
assinale-os.
A - Recurso; dados; controle.
B - Recurso; endereço; dados.
C - Desvio; Recurso; endereço.
D - Endereço; instrução; recurso.
48
Arquiteturas Paralelas e Distribuídas
Exercícios - Pipelines
2) Numa discussão técnica sobre a utilidade e funcionalidade do pipeline foram
citadas as seguintes afirmativas:
( ) o número de estágios do pipeline é determinado pelo clock do processador.
( ) o pipeline reduz para um único ciclo, a execução das instruções de três ciclos.
( ) embora o pipeline melhore o tempo de latência ele diminui o throughput
global.
Considerando as afirmações acima, dê valores de Verdadeiro (V) ou falso (F) e
assinale a alternativa que apresenta a sequência correta de cima para baixo.
A - V V F
B - V V F
C - V F V
D - F F V
E - F F F
49
Arquiteturas Paralelas e Distribuídas
Exercícios - Pipelines
3) Com base na organização e arquitetura de computadores, analise as afirmativas
abaixo e assinale a alternativa CORRETA.
I. O conceito de pipeline consiste em dividir a execução da instrução em várias
partes, sendo cada uma delas manipulada por unidades dedicadas do hardware que
trabalham em paralelo.
II. Os compiladores são programas que recebem como entrada arquivos-texto
contendo módulos escritos em linguagem de alto nível e geram como saída
arquivos-objeto correspondentes a cada módulo.
III. O clock é um circuito oscilador que tem a função de sincronizar e determinar a
medida de velocidade de transferência de dados no computador.
A - Apenas a afirmativa I está correta.
B - Apenas as afirmativas I e II estão corretas.
C - Apenas as afirmativas II e III estão corretas.
D - Todas as afirmativas estão corretas.
50
Arquiteturas Paralelas e Distribuídas
Exercícios - Pipelines
4) Diversas arquiteturas modernas de computadores, como as do tipo IBM-PC,
apresentam processadores que implementam o conceito de pipeline. Esse conceito
está relacionado com:
A - a apresentação de informações visuais com maior realismo.
B - a percepção, por parte do usuário, de memória da máquina acima da memória
realmente existente.
C - a segurança no acesso a informações em disco
D - o número de portas de Entrada e Saída destinadas à comunicação com
equipamentos periféricos.
E - o paralelismo na execução de instruções de máquina
51
Arquiteturas Paralelas e Distribuídas
Exercícios - Pipelines
5) No que se refere às tecnologias e aos processos envolvidos na construção de
computadores, julgue o próximo item.
O conflito estrutural ocorre quando o hardware não suporta a combinação de
instruções que o pipeline tenta executar no mesmo ciclo de clock.
( ) CERTO ( ) ERRADO
PÓS – AULA
PROCUREM SOBRE ARQUITETURAS:
- RISC
- CISC
RESPONDAM A PERGUNTA:
UM COMPUTADOR BASEADO EM UMA UNIDADE CENTRAL DE
PROCESSAMENTO DO TIPO RISC FAZ USO DO PIPELINE
Arquiteturas Paralelas e Distribuídas
53
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC
O projeto do Conjunto de Instruções inicia com a escolha de uma
entre duas abordagens, a abordagem RISC e a CISC.
O termo RISC é a abreviação de Reduced Instruction Set Computer,
ou Computador de Conjuntode Instruções Reduzido e CISC vem de Complex
Instruction Set Computer, ou Computador de Conjunto de Instruções
Complexo.
Um computador RISC parte do pressuposto de que um conjunto
simples de instruções vai resultar numa Unidade de Controle simples, barata
e rápida.
Já os computadores CISC visam criar arquiteturas complexas o
bastante a ponto de facilitar a construção dos compiladores, assim,
programas complexos são compilados em programas de máquina mais
curtos. Com programas mais curtos, os computadores CISC precisariam
acessar menos a memória para buscar instruções e seriammais rápidos.
https://www.youtube.com/watch?v=m1uKe6GdjOE
https://www.youtube.com/watch?v=m1uKe6GdjOE
54
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC
A Tabela abaixo resume as principais características dos computadores RISC em
comparação com os CISC. Os processadores RISC geralmente adotam arquiteturas
mais simples e que acessam menos a memória, em favor do acesso aos
registradores. A arquitetura Registrador-Registrador é mais adotada, enquanto que
os computadores CISC utilizam arquiteturas Registrador-Memória.
55
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC
Como as arquiteturas RISC visam Unidades de Controle mais
simples, rápidas e baratas, elas geralmente optam por instruções
mais simples possível, com pouca variedade e com poucos
endereços.
A pouca variedade dos tipos de instrução e dos modos de
endereçamento, além de demandar uma Unidade de Controle mais
simples, também traz outro importante benefício, que é
a previsibilidade.
Como as intrusões variam pouco de uma para outra, é mais
fácil para a Unidade de Controle prever quantos ciclos serão
necessários para executa-las.
Esta previsibilidade traz benefícios diretos para o ganho de
desempenho com o Pipeline. Ao saber quantos ciclos serão
necessários para executar um estágio de uma instrução, a Unidade
de Controle saberá exatamente quando será possível iniciar o
estágio de uma próxima instrução.
56
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC
Já as arquiteturas CISC investem em Unidades de Controle
poderosas e capazes de executar tarefas complexas como a
Execução Fora de Ordem e a Execução Superescalar.
Na execução Fora de Ordem, a Unidade de Controle analisa
uma sequência de instruções ao mesmo tempo. Muitas vezes há
dependências entre uma instrução e a seguinte, impossibilitando
que elas sejam executadas em Pipeline.
Assim, a Unidade de Controle busca outras instruções para
serem executadas que não são as próximas da sequência e que não
sejam dependentes das instruções atualmente executadas.
Isso faz com que um programa não seja executado na
mesma ordem em que foi compilado.
A Execução Superescalar é a organização do processador em
diversas unidades de execução, como Unidades de Pontos
Flutuante e Unidades de Inteiros.
57
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC
Essas unidades trabalham simultaneamente.
Enquanto uma instrução é executada por uma das
unidades de inteiros, outra pode ser executada por uma
das unidades de Pontos Flutuantes. Com a execução
Fora de Ordem junto com a Superescalar, instruções que
não estão na sequência definida podem ser executadas
para evitar que as unidades de execução fiquem
ociosas.
É importante ressaltar que a execução fora de ordem 
não afeta o resultado da aplicação pois foram 
projetadas para respeitar as dependências entre os 
resultados das operações.
58
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC
Estas características de complexidade tornam os
estágios de Pipeline dos processadores CISC mais longos, em
torno de 20 a 30 estágios. Isto porque estas abordagens de
aceleração de execução devem ser adicionadas no processo de
execução. Já os processadores RISC trabalham com estágios
mais curtos, em torno de 4 a 10 estágios.
Os processadores CISC também utilizam mais memória
principal e Cache, enquanto que os processadores RISC
utilizam mais registradores. Isso porque os processadores CISC
trabalham com um maior volume de instruções e dados
simultaneamente. Esses dados não poderiam ser armazenados
em registradores, devido à sua elevada quantidade e são,
geralmente, armazenados em memória Cache. Enquanto que
os processadores RISC trabalham com menos instruções e
dados por vez, o que possibilita a utilização predominante de
registradores.
59
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC – Qual a melhor Abordagem
Sempre que este assunto é apresentado aos alunos,
surge a pergunta crucial sobre qual é a melhor abordagem, a
RISC ou a CISC? Esta é uma pergunta difícil e sem resposta
definitiva. A melhor resposta que acho é de que depende do
uso que se quer fazer do processador.
Processadores RISC geralmente resultam em projetos
menores, mais baratos e que consumem menos energia. Isso
torna-os muito interessante para dispositivos móveis e
computadores portáteis mais simples. Já os processadores
CISC trabalham com clock muito elevado, são mais caros e
mais poderosos no que diz respeito a desempenho.
Entretanto, eles são maiores e consomem mais energia, o que
os torna mais indicados para computadores de mesa e
notebooks mais poderosos, além de servidores e
computadores profissionais.
60
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC – Qual a melhor Abordagem
Os processadores CISC iniciaram com processadores
mais simples e depois foram incorporando mais
funcionalidades. Os fabricantes, como a Intel e a AMD,
precisavam sempre criar novos projetos mas mantendo a
compatibilidade com as gerações anteriores. Ou seja, o
Conjunto de Instruções executado pelo 486 precisa também
ser executado pelo Pentium para os programas continuassem
compatíveis. O Pentium IV precisou se manter compatível ao
Pentium e o Duo Core é compatível com o Pentium IV. Isso
tornou o projeto dos processadores da Intel e AMD muito
complexos, mas não pouco eficientes. Os computadores
líderes mundiais em competições de desempenho
computacional utilizam processadores CISC.
61
Arquiteturas Paralelas e Distribuídas
Arquitetura RISC e CISC – Qual a melhor Abordagem
Já o foco dos processadores RISC está na simplicidade e 
previsibilidade. Além do benefício da previsibilidade do tempo 
de execução ao Pipeline, ele também é muito interessante 
para aplicações industriais. Algumas dessas aplicações são 
chamadas de Aplicações de Tempo Real. Essas aplicações 
possuem como seu requisito principal o tempo para realizar as 
tarefas. Assim, o Sistema Operacional precisa saber com 
quantos milissegundos um programa será executado. Isso só é 
possível com processadores RISC, com poucos estágios de 
Pipeline, poucos tipos de instrução, execução em ordem etc. 
Mesmo que os processadores RISC sejam mais lentos do que 
os CISC, eles são mais utilizados nessas aplicações críticas e de 
tempo real, como aplicações industriais, de automação e 
robótica.

Continue navegando