Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquiteturas RISC e CISC Arquitetura de Computadores Leonard B. Moreira UERJ e-mail: leonardbarreto@gmail.com.br julho, 2013 Leonard B. Moreira (-) Arquiteturas RISC e CISC 1 / 41 Suma´rio 1 Introduc¸a˜o 2 CISC 3 RISC 4 Refereˆncias Leonard B. Moreira (-) Arquiteturas RISC e CISC 2 / 41 Introduc¸a˜o Suma´rio 1 Introduc¸a˜o 2 CISC 3 RISC 4 Refereˆncias Leonard B. Moreira (-) Arquiteturas RISC e CISC 3 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Conceito de fam´ılia - IBM System/360 (1964) - DEC(Digital Equipment Corp.) PDP-8 - Separa arquitetura de implementac¸a˜o Unidade de controle microprogramada - Ide´ia de Wilkes 1951: desenvolvimento do conceito da microprogramac¸a˜o baseado no uso das memo´rias ROM para controle da Unidade Central de Processamento; este conceito simplificou o desenvolvimento das CPU - Produzida pela IBM System/360 1964 Leonard B. Moreira (-) Arquiteturas RISC e CISC 4 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Memo´ria cache - IBM System/360 modelo 85 1969 Microprocessadores - Intel 4004 (1971): UCP com 4 bits. Pipelining - Introduz paralelismo no ciclo de busca e execuc¸a˜o. - CDC 6600: possu´ıa 1 CPU e 10 unidades de processamento perife´ricas, este computador tinha a possibilidade de realizar operac¸o˜es em paralelo; Leonard B. Moreira (-) Arquiteturas RISC e CISC 5 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Crescimento em termos de: - Velocidade de operac¸o˜es: de poucos Mhz nos anos 80 para Ghz nos dias atuais - Tecnologia de processamento: pipelining, superescalar, processamento paralelo - Aumento da palavra de 32 para 64bits; - Capacidade de armazenamento (registradores, cache(s)) Leonard B. Moreira (-) Arquiteturas RISC e CISC 6 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Surgimento de novas e cada vez mais poderosas linguagens de programac¸a˜o - estruturac¸a˜o das linguagens, orentac¸a˜o a objetos, orientac¸a˜o a componentes, etc. Comandos e estruturas destas linguagens de alto n´ıvel se afastam cada vez mais da simplicidade e do primitivismo do hardware, ou seja, das instruc¸o˜es de ma´quina. - estes comandos e estruturas sa˜o criados para atender ao mode de raciocinar do ser humano Aconteceu uma separac¸a˜o acentuada entre os comando de linguagem de alto n´ıvel e as instruc¸o˜es de ma´quina decorrentes (Semantic Gap). - Um u´nico comando de uma linguagem de alto n´ıvel poderia gerar muitas instruc¸o˜es de ma´quina no co´digo-objeto Leonard B. Moreira (-) Arquiteturas RISC e CISC 7 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Fabricantes de processadores (IBM, DEC, AMD, Intel,...) reuniram-se com desenvolevdores de compiladores para ”fechar”o espac¸o semaˆntico; - levando aqueles computadores a uma grande quantidade de instruc¸o˜es, modos de enderec¸amento e outras particularidades complexas Em determinada e´poca (anos 80) este tipo de arquitetura foi chamada de CISC; A ideia dos desenvolvedores era facilitar a construc¸a˜o e o servic¸o dos compiladores. Leonard B. Moreira (-) Arquiteturas RISC e CISC 8 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Diversas pesquisas entre 60-80 sobre comportamento de programas ([KNUTH71],[PATT82],[DITZ80] - levando aqueles computadores a uma grande quantidade de instruc¸o˜es, modos de enderec¸amento e outras particularidades complexas Estes trabalhos tentavam encontrar outros modos de reduzir o gap semaˆntico, em vez de somente criar instruc¸o˜es de ma´quinas mais complexas e em maior quantidade - problemas de desempenho(tempo de processamento) e custo(complexidade de hardware) As arquiteturas simples poderia ser uma abordagem para obter maior rapidez, segundo os trabalhos; - ou seja, arquiteturas com pequeno conjunto de instruc¸o˜es e consequentemente com hardware mais simples Leonard B. Moreira (-) Arquiteturas RISC e CISC 9 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores O grande problema: execuc¸a˜o das instruc¸o˜es Problema 1: como construir computadores de baixo custo capazes de executar todas as instruc¸o˜es complexas de ma´quinas de alto desempenho, muito mais caras? 1) Uma implementac¸a˜o em hardware puro (sem interpretac¸a˜o) e´ usada somente nos computadores mais caros. 2) Uma implementac¸a˜o com interpretador de instruc¸a˜o (por software) e´ usada em computadores mais baratos. Leonard B. Moreira (-) Arquiteturas RISC e CISC 10 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores Vantagens do interpretador em relac¸a˜o ao hardware puro 1) Capacidade de corrigir no campo eventuais erros na implementac¸a˜o de instruc¸o˜es 2) Oportunidade de incorporar novas instruc¸o˜es nas ma´quinas ja´ existentes 3) Projeto estruturado que permite o desenvolvimento, teste e documentac¸a˜o de instruc¸o˜es complexas de maneira eficiente. Pode substituir implementac¸o˜es antigas de instruc¸o˜es. 4) Armazenamento das microinstruc¸o˜es do interpretador em memo´rias read-only (ROM), chamadas de memo´ria de controle, muito mais ra´pidas do que as memo´rias convencionais. Leonard B. Moreira (-) Arquiteturas RISC e CISC 11 / 41 Introduc¸a˜o Evoluc¸a˜o nos computadores O grande problema: execuc¸a˜o das instruc¸o˜es Problema 2: O uso da interpretac¸a˜o permitiu a criac¸a˜o de um conjunto grande de instruc¸o˜es de importaˆncia discut´ıvel e que eram dif´ıceis e caras para serem implementadas diretamente por hardware (circuitos muito complexos). Leonard B. Moreira (-) Arquiteturas RISC e CISC 12 / 41 CISC Suma´rio 1 Introduc¸a˜o 2 CISC 3 RISC 4 Refereˆncias Leonard B. Moreira (-) Arquiteturas RISC e CISC 13 / 41 CISC CISC Complex Instruction Set Computer Custos de software excedem os custos de hardware Linguagens de alto n´ıvel cada vez mais complexas Gap semaˆntico: distanciamento semaˆntico entre o co´digo de ma´quina e instruc¸o˜es de alto n´ıvel - Donald Knuth (1971) e David Patterson (1982) mostraram que na˜o era bem assim: 85% dos programas consistiam em atribuic¸o˜es, testes e chamadas a procedimentos Leonard B. Moreira (-) Arquiteturas RISC e CISC 14 / 41 CISC CISC Leva a: - Grande conjunto de instruc¸o˜es - Maior nu´mero de modos de enderec¸amento - Implementac¸o˜es em hardware de instruc¸o˜es de linguagem de alto n´ıvel (e.g., CASE no VAX) O conceito de microprogramac¸a˜o[WILK51] facilitou o trabalho de projetar instruc¸o˜es complexas, implementando-as em microco´digo(na ROM dentro da UC) Outras vantagens: - acelerar a execuc¸a˜o do microco´digo (mais ra´pido por estar na ROM da UC) - sobra de espac¸o nas memo´rias (poteˆncia de 2) para acrescentar nova instruc¸o˜es sem custo e aumento de espac¸o Leonard B. Moreira (-) Arquiteturas RISC e CISC 15 / 41 CISC CISC Pode-se concluir que os projetistas de arquiteturas CISC consideraram treˆs aspectos ba´sicos: - uso de microco´digo; - construc¸a˜o de conjuntos com instruc¸o˜es completas e eficientes; - criac¸a˜o de instruc¸o˜es de ma´quinade ”alto n´ıvel”(complexidade semelhante a` dos comandos de alto n´ıvel) Leonard B. Moreira (-) Arquiteturas RISC e CISC 16 / 41 CISC Objetivos da Arquitetura CISC Facilitar o desenvolvimento de compiladores Melhorar a eficieˆncia de execuc¸a˜o - Operac¸o˜es complexas em microco´digo Suportar linguagens de alto n´ıvel mais complexas Leonard B. Moreira (-) Arquiteturas RISC e CISC 17 / 41 CISC Objetivos da Arquitetura CISC Dica uma arquitetura bastante utilizada nos nossos Desktops e Notebooks, a arquitetura x86 da Intel presente na maioria dos Pc’s e Notebooks e´ um exemplo de arquitetura CIS Leonard B. Moreira (-) Arquiteturas RISC e CISC 18 / 41 CISC Caracter´ısticas de execuc¸a˜o Operac¸o˜es executadas Operandos utilizados Sequ¨eˆncia de execuc¸a˜o Estudosforam realizados baseados em programas escritos em linguagens de alto n´ıvel Estudos dinaˆmicos realizados durante a execuc¸a˜o de programas - Mesmo conjunto de programas foi compilado e executado no VAX, PDP-11 e Motorola 68000 Leonard B. Moreira (-) Arquiteturas RISC e CISC 19 / 41 CISC Operac¸o˜es Atribuic¸o˜es - Movimento de dados Instruc¸o˜es condicionais (IF, LOOP) - Controle da sequeˆncia Chamada e retorno de procedimento consome muito tempo Algumas instruc¸o˜es da linguagem de alto n´ıvel levam a muitas operac¸o˜es de linguagem de ma´quina Leonard B. Moreira (-) Arquiteturas RISC e CISC 20 / 41 CISC Figura 1 : Frequeˆncia dinaˆmica relativa ponderada de operac¸o˜es de linguagens de alto n´ıvel Leonard B. Moreira (-) Arquiteturas RISC e CISC 21 / 41 CISC Operandos Principalmente varia´veis locais escalares Otimizac¸a˜o deve se concentrar no acesso a`s varia´veis locais Leonard B. Moreira (-) Arquiteturas RISC e CISC 22 / 41 CISC Chamada de procedimentos Consome muito tempo Depende do nu´mero de paraˆmetros Depende do n´ıvel de aninhamento Maioria dos programas na˜o executa va´rias chamadas seguidas de va´rios retornos Maioria das varia´veis sa˜o locais Leonard B. Moreira (-) Arquiteturas RISC e CISC 23 / 41 CISC Implicac¸o˜es Suporte mais eficaz para linguagens de alto n´ıvel pode ser obtido pela otimizac¸a˜o do desempenho das caracter´ısticas mais utilizadas e responsa´veis por maior consumo de tempo Nu´mero grande de registradores - Refereˆncia aos operandos Projeto cuidadoso dos pipelines - Predic¸a˜o de desvio etc. Conjunto simplificado (reduzido) de instruc¸o˜es Leonard B. Moreira (-) Arquiteturas RISC e CISC 24 / 41 CISC Otimizac¸a˜o do uso de registradores pelos compiladores Suponha um pequeno nu´mero de registradores (16-32) Otimizac¸a˜o do uso deve ser func¸a˜o do compilador Programas em linguagem de alto n´ıvel na˜o fazem refereˆncias expl´ıcitas a registradores Atribui registrador simbo´lico ou virtual a cada varia´vel candidata Mapeia nu´mero ilimitado de registradores simbo´licos em nu´mero fixo de registradores reais Leonard B. Moreira (-) Arquiteturas RISC e CISC 25 / 41 CISC Otimizac¸a˜o do uso de registradores pelos compiladores Registradores simbo´licos que na˜o se sobrepo˜em podem compartilhar registradores reais Caso se esgotem os registradores reais dispon´ıveis, algumas varia´veis sa˜o alocadas na memo´ria Leonard B. Moreira (-) Arquiteturas RISC e CISC 26 / 41 CISC Problemas da arquitetura CISC Pontos problema´ticos identificados por pesquisadores: - Diferenc¸as de velocidade entre memo´ria e processador : algumas operac¸o˜es (e.g. ponto flutuante) eram realizadas por programas (acessando a MP); logo foi criada instruc¸o˜es de ma´quina para este propo´sito. - Emprego de microco´digo:custo/benef´ıcio do microco´digo em relac¸a˜o a programac¸a˜o diretamente no hardware levou a inclusa˜o de cada vez mais instruc¸o˜es de ma´quinas - Desenvovimento acelerado de linguagens de alto n´ıvel : inclusa˜o de mais instruc¸o˜es de ma´quina para manter suporte adequado na compilac¸a˜o; - Densidade de co´digo a ser executado: para obter um co´digo compacto apo´s a compilac¸a˜o, as instruc¸o˜es ficavam mais pro´ximas a`s instruc¸o˜es de alto n´ıvel, acarretando mais bits nas instruc¸o˜es assim como modos de enderec¸amento. - Necessidade de compatibilidade com processadores anteriores: novos processadores somente adicionam novas instruc¸o˜es; Leonard B. Moreira (-) Arquiteturas RISC e CISC 27 / 41 CISC Resumindo... 1) Instruc¸o˜es complexas 2) Qualquer instruc¸a˜o pode referenciar a` memo´ria 3) Pouco uso de Pipeline (devido a complexidade das instruc¸o˜es) 4) Instruc¸o˜es com formato varia´vel 5) Muitas instruc¸o˜es com muitos modos de enderec¸amento - Estes dois u´ltimos requerem unidades de busca e codificac¸a˜o bastante complexas; 6) A complexidade esta´ no microprograma 7) Poucos registradores Leonard B. Moreira (-) Arquiteturas RISC e CISC 28 / 41 RISC Suma´rio 1 Introduc¸a˜o 2 CISC 3 RISC 4 Refereˆncias Leonard B. Moreira (-) Arquiteturas RISC e CISC 29 / 41 RISC RISC Reduced Instruction Set Computer O surgimento dos processadores RISC se deu pelos problemas indicados pela arquitetura CISC O desenvolvimento de arquitetura RISC teve in´ıcio por treˆs caminhos pro´ximos 1) Nos anos de 70 o IBM 801 por John Cocke 2) Os processadores MIPS pela equipe de John Hennessey na Universidade Stanford nos anos 80 3) Equipe liderada por David Patterson (UCLA - Berkeley), tambe´m nos anos 80, pelos proto´tipos RISC-1 e RISC-2 que tornaram-se base para os processadores SPARC. Leonard B. Moreira (-) Arquiteturas RISC e CISC 30 / 41 RISC RISC Caracter´ısticas importantes - Conjunto limitado e simples de instruc¸o˜es * Instruc¸o˜es simples podem ser executadas em poucos ciclos de relo´gio (execuc¸a˜o ra´pida) * Uma instruc¸a˜o por ciclo de ma´quina (tempo para buscar dois operandos em registradores, executar uma operac¸a˜o de ULA e armazenar resultado em registrador) - Instruc¸o˜es de tamanho(largura) fixo simplificam os mecanismos de busca e decodificac¸a˜o - Operac¸o˜es de registrador para registrador Leonard B. Moreira (-) Arquiteturas RISC e CISC 31 / 41 RISC RISC Caracter´ısticas importantes continuac¸~ao... - Modos simples(menor quantidade) de enderec¸amento * Poucos e simples modos de enderec¸amento * Poucos e simples formatos de enderec¸amento - Otimizac¸a˜o de pipeline * Uma ma´quina pipeline pode ter uma instruc¸a˜o completada a cada ciclo de relo´gio * Busca pre´via de instruc¸o˜es * Execuc¸a˜o pipeline - in´ıcio da execuc¸a˜o de uma instruc¸a˜o antes da conclusa˜o da anterior. Leonard B. Moreira (-) Arquiteturas RISC e CISC 32 / 41 RISC RISC Princ´ıpios do projeto RISC que os arquitetos de processadores de propo´sito geral devem seguir: - Todas as instruc¸o˜es sa˜o diretamente executadas por hardware - Maximizar a Taxa a` qual as instruc¸o˜es sa˜o executadas - As instruc¸o˜es precisam ser facilmente decodificadas - Somente as Instruc¸o˜es de Load e Store devem referenciar a Memo´ria - Projetar uma ma´quina com muitos registradores (≥ 32) Leonard B. Moreira (-) Arquiteturas RISC e CISC 33 / 41 RISC Menor quantidade de instruc¸o˜es, todas com largura fixa A fam´ılia SPARC da SUN, possui certa de 50 instruc¸o˜es enquanto o VAX-11/780 tinham ate´ 300 instruc¸o˜es. Dentre as vantagens de se ter instruc¸o˜es reduzidas, temos: - deve produzir resultados com melhor desempenho - menor quantidade de transistores no chip, e consequentemente menor espac¸o f´ısico no VLSI e menor custo; - reduc¸a˜o da complexidade do decodificador de instruc¸o˜es, reduzindo o tempo de decodificac¸a˜o; - menor quantidade de bits no campo do co´digo de operac¸a˜o da instruc¸a˜o, reduzindo o tamanho dos programas. Leonard B. Moreira (-) Arquiteturas RISC e CISC 34 / 41 RISC Execuc¸a˜o otimizada de chamada de func¸o˜es Chamadas de rotinas e passagem de paraˆmetros usualmente requerem poucos dados, mas consomem na transfereˆncia demorados acessos a` memo´ria em leituras e escritas Nas arquiteturas RISC isto ocorre basicamente no processador - utilizando mais registradores que na ma´quina CISC; A adic¸a˜o de registradors e´ poss´ıvel devido a` reduc¸a˜o de circuitos necessa´rios a` decodificac¸a˜o e a` execuc¸a˜o de instruc¸o˜es; Leonard B. Moreira (-) Arquiteturas RISC e CISC 35 / 41 RISC Menor quantidade de modos de enderec¸amento Estudos conclu´ıram que a maioria dos compiladores na˜o usam a maioria dos modos de enderec¸amento(nem mesmo a maioria das instruc¸o˜es) - tudo isto para ”simplificar”o seu trabalho Por isso, as ma´quinasRISC possui dois tipos de instruc¸a˜o para acesso a` memo´ria: LOAD/STORE - LOAD: transfere o dado da memo´ria para um dos registradores - STORE: transfere o dado de um dos registradores para a memo´ria Instruc¸o˜es so´ utilizam o modo direto Leonard B. Moreira (-) Arquiteturas RISC e CISC 36 / 41 RISC Modo de execuc¸a˜o com pipelining Uso altamente produtivo devido ao formato simples e u´nico das instruc¸o˜es de ma´quina Figura 2 : (a)Pipeline de 5 esta´gios; (b) Estado de cada um dos esta´gios em func¸a˜o do tempo (ilustrados 9 per´ıodos de clock) Fonte: Tanenbaum, 2009. Leonard B. Moreira (-) Arquiteturas RISC e CISC 37 / 41 RISC Execuc¸a˜o de cada instruc¸a˜o em um ciclo de relo´gio Juntamente com o pipelining, a execuc¸a˜o de uma instruc¸a˜o por ciclo de relo´gio e´ um dos requisitos essenciais desta arquitetura Por serem constitu´ıdos de poucas instruc¸o˜es e todas elas (exceto LOAD e STORE) simples, na˜o requerem microco´digos; - que implica na interpretac¸a˜o de cada microoperac¸a˜o, com o decorrente atraso na execuc¸a˜o total da instruc¸a˜o; Leonard B. Moreira (-) Arquiteturas RISC e CISC 38 / 41 RISC RISC Porque enta˜o a tecnologia RISC na˜o suplantou a CISC? Problemas de compatibilidade com ma´quinas antigascom software ja´ desenvolvido. Aparecimento de soluc¸o˜es h´ıbridas: Por exemplo, a INTEL usa RISC para instruc¸o˜es de uso mais frequ¨ente (Nu´cleo RISC) e interpretac¸a˜o para instruc¸o˜es mais complexas e de uso menos frequ¨ente. Leonard B. Moreira (-) Arquiteturas RISC e CISC 39 / 41 Refereˆncias Suma´rio 1 Introduc¸a˜o 2 CISC 3 RISC 4 Refereˆncias Leonard B. Moreira (-) Arquiteturas RISC e CISC 40 / 41 Refereˆncias Refereˆncias TANENBAUM, Andrew .S. Organizac¸a˜o estruturada de computadores. 3a ed. Sa˜o Paulo: Pearson Prentice Hall, 2005. MONTEIRO, M. Introduc¸a˜o a Organizac¸a˜o de Computadores. 5a ed. Rio de Janeiro: LTC, 2007. Leonard B. Moreira (-) Arquiteturas RISC e CISC 41 / 41
Compartilhar