COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1
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 2
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 3
ARQUITETURA RISC 4
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). 5
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 6
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 7
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. 8
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: 9
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. 10
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. 11
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. 12
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. 13
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. 14
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. 15
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. 16
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 17
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) 18
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 CISC (VAX) RISC (SPARC) 19
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 20
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 21
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. 22
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 23
CISC x RISC 24