Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura RISC e CISC Prof. Alexandre Bellezi José Introdução ● Evolução: Hardware X Software ● Custo benefício: hardware supera software. ● Software: desenvolvimento e manutenção → preço elevado → quase sempre possui falhas(bugs). Introdução ● Linguagens de programação de alto nível surgiram como 'solução' para tais 'problemas' do software. ● Programação estruturada ● Orientação por objetos Sugestão de leitura: No silver bullet. (EdModo) Introdução ● Linguagens de alto nível se afastam do primitivismo do hardware. ● Cada vez uma distância maior entre instruções de máquina e comandos da linguagem. Espaço Semântico Semantic Gap Espaço Semântico ● IBM e DEC → Fabricantes de computadores de grande porte. ● Incluem, paulatinamente, em seus processadores um grande número de instruções. Procurando diminuir o Gap Semântico Fechamento do Gap Semântico: Hardware ● Inclusão de várias instruções. ● Vários modos de endereçamento. ● Inicio de 1980 gerou a arquitetura CISC Complex Instruction Set Computers Processadores com conjunto de instruções complexo CISC (1980) ● A ideia dos fabricantes era diminuir o GAP entre linguagens de alto nível e de máquina. ● Ex. VAX utilizava 300 instruções e mais de 15 modos de endereçamento ● Objetivo final era facilitar a construção de compiladores. ● Intel e AMD seguem mesmo caminho da IBM e DEC. ● x86 considerada CISC. Fechamento do Gap Semântico: Software ● 1960; 70 e 80 década das pesquisas em para entender e amenizar o Gap Semântico em nível de software. ● Desenvolvimento de linguagens de alto nível e estudo de seu comportamento estático e dinâmico. ● Primeiro estudo [KNUTH71]. Fechamento do Gap Semântico: Software ● Primeiro estudo [KNUTH71]. ● ASSIGN → Atribuições ● Outras somente 7% Comando Média de Ocorrência % ASSIGN 47 IF 23 CALL 15 LOOP 6 GOTO 3 Outros 7 Como aumentar o desempenho? ● Otimizar o emprego de instruções que consomem mais tempo de CPU. Ex: ASSIGN ● Não se preocupar tanto com instruções complexas → somente 7% são deste tipo!!!!!!! ● OBS: Como funcionam as instruções de atribuição? O que elas acessam? 1980 Mais pesquisas ● Novas pesquisas para reduzir o gap semântico e diminuir a complexidade dos processadores. ● Em 1982 David Patterson publica o primeiro trabalho sobre RISC. ● Onde definia um processador com reduzido conjunto de instruções. Comparativo entre ocorrência de certos comandos de linguagem de alto nível na execução de programas Concluindo... ● Parece lógico pensar em processadores com conjunto de instruções simples, mas rápidasrápidas. Ex: CISC x86 ADD reg1, reg2 B; B armazenado na MP Ex: RISC MOV reg2, B; ADD reg1, reg2; Concluindo... ● Parece lógico pensar em processadores com conjunto de instruções simples, mas rápidasrápidas. Ex: CISC x86 ADD reg1, reg2 B; B armazenado na MP Ex: RISC MOV reg2, B; ADD reg1, reg2; Características das Arquiteturas CISC ● Complex Instruction Set Computer ● Grande quantidade de instruções. ● Instruções com múltiplos modos de endereçamento. ● Código gerado tinha que ser pequeno, pois memória era pequena e cara. ● Projetista deveria aumentar densidade do código de máquina: cada instrução deveria fazer muito, diminuindo o número de instruções no programa como um todo. Características das Arquiteturas CISC ● Em meados de 1951 iniciou-se o uso de microprogramação → instruções complexas escritas em microcódigo. ● Microcódigo: código de muito baixo nível que define como o processador deverá funcionar. ● Microcódigo facilita o surgimento e manutenção do conceito de Família de Processadores. ● Ex: x86 (386 para 486, para Pentium, Pentium MMX, etc). Características das Arquiteturas CISC ● Microcódigo reside em memória tipo ROM dentro da unidade de controle do processador. ● Primeiro sistema que utilizou microcódigo foi o IBM/360 em 1964. ● VAX máquina CISC: mais de 300 instruções de máquina, mais de 15 modos de endereçamento, instruções de 2 a 57 bytes de largura. Características das Arquiteturas CISC ● CISC projeto se baseia em três conceitos: ● Uso de microcódigo ● Construção de conjuntos com instruções completas e eficientes (completeza no conjunto) ● Criação de instruções de máquina de 'alto nível', ou seja, com complexidade semelhante à dos comandos de alto nível. Algumas regras básicas sobre a arquitetura CISC. ● Formato de dois operandos mais comum. ADD CX, mem (adiciona o valor na memória do valor do registrador CX e coloca o resultado no registrador CX) ● Uso de modos registrador para registrador; registrador para memória e memória para registrador. ● Instruções de largura variável, com quantidade de bytes variando de acordo com o modo de endereçamento. Algumas regras básicas sobre a arquitetura CISC. ● Instruções requerem múltiplos ciclos de relógio para sua completa execução, além de que a quantidade desses ciclos varia de acordo com a largura das instruções. Ex: se uma instrução realiza mais de um acesso à memória para buscar dois operandos, então gasta mais ciclos do que outra que só realiza um acesso. ● O hardware possui poucos registradores devido ao fato de possuir muitas instruções com acesso à memória e por causa da limitação do espaço no chip usado para memória de controle (microcódigo), decodificação. Algumas regras básicas sobre a arquitetura CISC. ● Há também registradores especializados, como o registrador de controle (para códigos de condição ou flags), de segmento, para o ponteiro de pilha, para tratamento de interrupções, etc. Problemas na Arquitetura CISC ● Os problemas listados nos próximos slides foram definidos pelo pesquisador David Patterson que também propôs uma nova máquina chamada RISC-1. Problemas na Arquitetura CISC ● Diferenças de velocidade entre memória e processador. – Final de 1970 IBM identifica que isso era um problema em seus sistemas. – Operações aritméticas de ponto flutuante → muitos acessos a memória. – IBM acrescenta novas instruções. – Patterson diz que tal atitude não resolve o problema da velocidade. Problemas na Arquitetura CISC ● Emprego de Microcódigo – Real vantagem do microcódigo custo/benefício de microcódigo em relação a programação diretamente no hardware. – Facilidade leva projetista a criar mais e mais instruções. Problemas na Arquitetura CISC ● Desenvolvimento Acelerado de Linguagens de Alto Nível. – 1980 grande crescimento do uso de linguagens de nível mais alto. – Induz projetista de hardware a criar instruções mais complexas para aproximar os dois modelos. Problemas na Arquitetura CISC ● Densidade de código a ser executado. – CISC tem como um dos requisitos → código mais compacto para usar menos memória. – Um comando de alto nível resultaria em “muito poucas” instruções de máquina. – Patterson → mais bits nas instruções, pois há muitas. E mais modos de Endereçamento. Aumenta gasto de memória. Isso contrabalançariacontrabalançaria a pretensa vantagem da densidade do código. Problemas na Arquitetura CISC ● Necessidade de compatibilidade com processadores anteriores. – Fabricantes sempre garantem a retrocompatibilidade dos programas entre as famílias dos processadores. – Isso limita a especificação de novas arquiteturas. – Assim arquiteturas novas crescem somente em número de instruções. Instruções antigas nunca são retiradas. Arquitetura RISC ● Estudos na áreade arquitetura de computadores na década de 1980 levou a criação do RISC. RISC Reduced Instruction Set Computer Arquitetura RISC ● Arquitetura RISC seguiu três caminhos de desenvolvimento: ● IBM consegue sucesso em meados de 1990 com o PowerPC (Motorola, Apple e IBM). ● Universidade Stanford da Califórnia, John Hennessy, estudos gera a empresa MIPS. ● Universidade de Berkeley, da Califórnia, David Patterson, estudos servem como base para os processadors da Sun. Arquitetura RISC Fonte: Monteiro RISC Características Menor quantidade de instruções e tamanho fixo ● Possui conjunto menor de instruções se comparado ao CISC. ● Família SPARC da Sun possui cerca de 50 instruções; VAX da IBM mais de 300; Intel 486 146 instruções; Pentium mais de 200. ● Mesmo tamanho da instrução facilita a busca e decodificação da mesma. Contador de Instrução não precisa ser incrementado. RISC Características Execução Otimizada de Chamada de Funções ● Em CISC chamada de funções conduz a rotinas de leitura/escrita na MP para passagem de parâmetros e recuperação de dados. ● Em RISC tudo ocorre dentro do próprio processador, pois ele possui mais registradores. ● RISC possui circuitos de decodificação de instrução e execução simplificados 'sobrando' recursos para mais registradores. RISC Características Menor Quantidade de Modos de Endereçamento ● Apenas dois tipos de instruções para acessar a memória LOAD/STORE. ● Utiliza somente o modo direto de acesso a memória. ● Outras operações também são realizadas no processador. ● Simplifica projeto e implementação e reduz o número de ciclos necessário para executar a instrução. RISC Características Modo de Execução com Pipelining ● Como instruções possuem formato simples e único pipeline ocorre de modo eficiente. ● Pipeline tem melhor desempenho em instruções semelhantes em termos de formato e complexidade. RISC Características Resumo Fonte: Monteiro RISC x CISC ● O que é melhor? RISC? CISC? Tarefa ● Fazer a leitura do seguinte texto. ● Apple Said to Be Exploring Switch From Intel for Mac - Bloomberg 06-11-2012.pdf ● Criar um texto com suas conclusões sobre o futuro das arquitetura RISC e CISC baseado na notícia acima e porque o RISC está evoluindo tanto nos dias atuais? ● Entrega da tarefa: ????? Peso(0.2) ● PROVA ?????? – Assunto: CISC e PROVA ?????? – Assunto: CISC e RISC( Peso 1)RISC( Peso 1) Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37
Compartilhar