2
INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas
áreas de arquitetura e organização de computadores. As
principais foram
– Conceito de Família de Computadores:
• IBM (sistema 360) em 1964 e DEC (1968).
– Unidade de controle microprogramada:
• sugerida por Wilkes, em 1961 e implementada pela IBM na linha S/360,
em 1964.
– Memória Cache
– Pipeline de Instruções
– Múltiplos processadores
3
COMPUTADORES RISC Arquitetura RISC.
– Uma das inovações mais importantes e interessantes.
– RISC significa uma arquitetura com um conjunto reduzido de
instruções (“Reduced Instruction Set Computer”).
– A maioria dos projetos RISC compartilham os seguintes elementos
básicos:
• Grande número de registradores de propósito geral ou uso de tecnologia
de compilação na otimização do uso de registradores.
• Um conjunto de instruções simples e limitado
• Enfoque na otimização da pipeline de instruções
5
Porque CISC ? Características da execução de instrução
– Uma das evoluções mais evidentes em computação foi a invenção
das linguagens de programação.
– Houve um aumento no custo do software (devido ao limitado
número de programadores disponíveis pois uma vez que era difícil
programar nas linguagens alto nível existentes). Portanto, o
software além de caro era pouco confiável (apresentava muitos
erros).
– Resposta dos pesquisadores e da indústria
• Desenvolver linguagens de programação de alto nível cada vez mais
poderosas e complexas.
– Novo problema que surge (o gap semântico)
• A distância semântica entre as operações disponíveis em linguagem de
alto-nível e as operações disponibilizadas pelo hardware dos
computadores ( código em assembly).
6
Porque CISC ? Características da execução de instruções
– Resposta ao problema (do gap semântico)
• Desenvolvimento de arquiteturas que diminuíssem a distância
entre as instruções de linguagens de alto nível e as instruções de
máquina (em assembly), ou seja uma arquitetura com grande
número de instruções em assembly, parecidas com as instruções
em alto nível
– As característica destas arquiteturas incluem:
• Grande conjunto de instruções
• Muitos modos de endereçamento.
• Uso intensivo da microprogramação
7
Microprogramação Microprogramação
– É uma linguagem específica da máquina, capaz de executar um
conjunto específico de instruções em linguagem de máquina.
– O processador tem alguma memória embutida (tipicamente ROM) que
contém grupos de instruções de microcódigo. Quando uma instrução
em linguagem de máquina chega ao processador central, o
processador executa a série correspondente de instruções em
microcódigo.
Linguagem de máquina (linguagem assembly) – É a linguagem binária que pode ser executada diretamente pela unidade de
controle.
UC
8
Porque CISC ? Características da execução de instruções
– Esses complexos conjuntos de instruções tinham o seguinte
objetivo:
• Facilitar o desenvolvimento de compiladores
• Melhorar a eficiência na execução de programas, com a
implementação de sequencia de operações em microcódigo
• Oferecer suporte para linguagens de alto nível cada vez mais
complexas.
– No entanto, enquanto isso ..... eram realizados estudos para
determinar as características e os padrões de execução de
instruções de máquinas geradas por linguagens de alto nível.
9
Porque RISC ?
Para entender a linha de raciocínio adotada pelos
defensores do RISC vamos examinar a características da
execução de instruções em linguagem de alto-nível
(aspectos que devem ser examinados)
– Operações realizadas:
10
Porque RISC ? Operações realizadas (comandos mais frequentes)
– Vários estudos foram realizados para analisar o comportamento de programas de
alto-nível.
• O tipo de comando predominante é o de atribuição:
– Isto sugere que a transferência de dados simples são de grande importância.
• Existe grande predominância de comandos condicionais e laços de repetição
(IF , LOOP):
– São implementados em linguagem de máquina que utilizam algum tipo de
comparação e instruções de desvio.
– Isto sugere que mecanismos de controle e sequenciamento de instruções é
importante.
– Conclusão: sabemos os comandos correspondentes em linguagem de
máquina usados com maior frequência e que portanto devem ser
implementados de maneira ótima.
11
Porque RISC ? Operações realizadas (comandos que consomem mais
tempo) – Os dados obtidos nas colunas 4 a 7 correspondem ao tempo efetivo gasto
na execução dos vários tipos de comandos.
– Isto sugere que as chamadas de procedimento consomem mais tempo na
execução de um programa típico em linguagem de alto-nível.
12
Porque RISC ? Chamadas de procedimentos (frequencia)
– São bastante comuns nas linguagens de alto-nível.
• Isto sugere que estas operações são as que consomem mais tempo de
execução de código obtido pela compilação de programas.
– Em 98% das chamadas de procedimento, o número de argumentos é inferior
a 6.
– Em 92% das chamadas de procedimento são utilizadas menos que seis
variáveis locais.
– É raro ocorrer longa sequencia de chamadas e retorno de procedimentos.
13
Porque RISC ? IMPLICAÇÕES
– A tentativa da construção de uma arquitetura com conjunto de instruções
mais próxima das linguagens de alto-nível não era a estratégia mais efetiva.
– E sim por meio da otimização do desempenho das características
responsáveis pelo maior consumo de tempo de execução de programas
típicos em linguagens de alto nível.
14
Porque RISC ? O argumento de que A CISC contribui para simplificação dos
compiladores tem sido combatido pelo projetistas de arquitetura
RISC.
– Instruções de máquina complexas são difíceis de serem utilizadas. Como
prova disso, a maioria dos códigos gerados por um compilador são simples e
não complexas.
– Fica mais difícil otimizar o código gerado, para reduzir seu tamanho, o
número de instruções executadas e o desempenho do pipeline de instruções.
A suposição de que na arquitetura CISC deve produzir programas
menores e mais baratos tem sido combatido pelo projetistas de
arquitetura RISC..
– Um programa CISC expresso em linguagem de máquina ou simbólica
(assembly) pode ter um menor número de instruções, mas o número de bits
de memória que ocupa pode não ser significativamente menor.
15
Porque RISC ? Outra suposição é a de que na arquitetura CISC a execução de
instruções seria mais rápida.
– Os compiladores para arquiteturas CISC tendem a favorecer instruções mais simples
e portanto isso pode não ser verdade.
16
COMPUTADORES RISC A arquitetura RISC caracteriza-se por 3 elementos:
– O desempenho pode ser melhorado com a redução do
número de referência à memória, a custa de uma grande
número de referência a registradores.
• Por isso o grande número de registradores, ou
técnicas de compilação que otimize o uso de
registradores.
– Cuidadosa atenção ao uso de pipeline de instruções.
• Devido a alta taxa de instrução de desvio condicional e
chamadas de procedimentos.
– Uso de um conjunto reduzido de instruções
• Conclusão ainda não tão óbvia.
17
COMPUTADORES RISC
– As arquiteturas possuem características comuns
• 1) Uma instrução por ciclo
• 2) Operações de registrador para registrador.
• 3) Modos de endereçamento simples
• 4) Formatos de instrução simples
18
COMPUTADORES RISC
– 1) Uma instrução por ciclo de máquina
• Ciclo de máquina é o tempo para buscar dois operandos em registradores,
executar uma operação da ULA e armazenar o resultado em um registrador.
• As instruções podem ser executadas diretamente pelo hardware da máquina
(existe pouco ou nenhuma necessidade de uso de microcódigo)
19
COMPUTADORES RISC
– 2) Operações registrador para registrador
• Há apenas operações simples de CARGA e ARMAZENAMENTO para
acesso à memória.
• Isso encoraja a otimização do uso de registradores.
• Isto simplifica o conjunto de instruções a unidade de controle.
• Exemplos:
– O VAX possui 25 tipos de instruções ADD diferentes
– Em uma arquitetura RISC existe apenas 01 ou 02 instruções ADD
RISC (SPARC) CISC (VAX)
20
COMPUTADORES RISC
– 3) Uso de modos de endereçamento simples
• Quase todas as instruções usam modo de endereçamento simples por
registrador.
• Isso simplifica o conjunto de instruções e a unidade de controle
21
COMPUTADORES RISC
– 4) Formato de instruções simples
• Geralmente é usado apenas um formato de instrução ou um pequeno
número de formatos diferentes.
• Isso simplifica o conjunto de instruções e a unidade de controle
22
COMPUTADORES RISC
– Os principais benefícios de uma arquitetura .
• Compiladores otimizados podem ser desenvolvidos
pelo uso de instruções primitivas
• As maiorias das instruções geradas por um compilador
são simples
• A técnica pipeline pode ser aplicada com mais
• Com o advento de tecnologias LSI e VLSI uma única
pastilha pode conter um processador completo. É
difícil desenvolver um processador VLSI. Com um
conjunto reduzido de instruções isso fica mais fácil.
23
CISC x RISC
– Projetos RISC podem beneficiar-se da inclusão de algumas
características RISC (e vice-versa). Não existe RISC ou CISC puro
atualmente.
• O PENTIUM inclui algumas características RISC
• O Power PC inclui algumas características CISC