Buscar

Arquiteturas Risc e Cisc

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

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes