RISC - Reduced Instruction Set Computers Cap. 12.

Slides:



Advertisements
Apresentações semelhantes
Arquitetura de Computadores
Advertisements

Parte 1: Organização de Computadores
gerador de código intermediário
WebDesign Redes de Computadores Aula 07
Arquitetura e organização de computadores.
Arquitetura de Computadores
ARQUITETURAS RISC E CISC
Arquitetura de Sistemas Operacionais
Processadores risc: sparc – powerpc – arm - mips.
Processador Intel Itanium
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Arquiteturas Superescalares
Paralelismo em nível de instrução: Arquiteturas VLIW Grupo 01: Júlia Martinez Perdigueiro ra Tatiane Baggio Borili ra
Técnicas de Predição de Desvios
CISC e RISC.
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Introdução
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Arquitetura de Sistemas Operacionais
Arquitecturas RISC Arquitectura e Conjunto de Instruções
Processadores – Aula 3 Professor: André Luis Meneses Silva
2- Entendendo o que é Arquitetura e Organização
Sistemas Operacionais I
Prof. Felipe Ferreira de Oliveira
Prof.: Vagner Pinto Borges Prof.: Vagner Pinto Introdução à Arquitetura e Organização.
Representação de Instruções
Pipeline O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline. Todos os estágios devem estar prontos ao mesmo.
Arquitetura de computadores
Complex Instruction Set Computer
Unidade Central de Processamento UCP
Sistemas Operacionais
Sistemas Operacionais I
Arquitetura de computadores
VII Semana de Iniciação Científica do CBPF
Organização e Arquitetura de Computadores
Interface entre as linguagens C e Assembly 8085
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Arquitetura de Computadores
Unidade Central De Processamento: Processador
Geração de Código aula-12-geração-de-código.pdf.
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Capítulo VIII Ambientes de Execução
Sistemas Operacionais
Unidade Central De Processamento: Processador
Arquiteturas RISC x CISC
A Linguagem de Máquina – Desvios e Laços
IMM Instalação e Manutenção de Microcomputadores
Microprocesadores x Microcontroladores
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Reduced Instruction Set Computer 6.
Centro de Informática - UFPE
Nível ISA.
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
Geração de Código Fase final do compilador
Arquitetura de Computadores
Slides before 1st Section Divider
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Processadores.
Funcionamento interno do computador
Arquitetura de computadores
Por: Lucas da Silva Montes, Marcos Ghesla e Vinícius Randon.
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
A linguagem de Máquina – Instruções Básicas
ARQUITETURA DE VON NEUMANN
Introdução ao Processamento Vetorial
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

RISC - Reduced Instruction Set Computers Cap. 12

Maiores Avanços nos Computadores zConceito de Família yIBM System/360 – 1964 yDEC PDP-8 ySepara Arquitetura da Implementação zUnidade de Controle Microprogramada yIdealizada por Wilkes – 1951 yProduzida pela IBM S/360 – 1964 zMemória Cache yIBM S/360 model 85 – 1969

Maiores Avanços nos Computadores zRAM no Estado Sólido zMicroprocessadores yIntel 4004 – 1971 zPipelining yIntroduz Paralelismo no Ciclo de Execução zMúltiplos Processadores

Próximo Passo – RISC zReduced Instruction Set Computer zRecursos Chaves yGrande Número de Registradores de Propósito Geral xOu Uso de Tecnologia de Compilador para Otimizar Uso dos Registradores yConjunto de Instruções Simples e Limitado yÊnfase na Otimização do Pipeline de Instruções

Comparação de Processadores zCISC RISC Superscalar zIBM DEC VAX Intel Motorola MIPS IBM Intel z370/168 11/ R4000 RS/ z zNº de Instruções z zTamanho de Instrução (Bytes) z or 8 zModos de Endereçamento z zRegistradores de Propósito Geral (GP) z zMemória de Controle (KBytes) (Microprogramação) z

Força Motriz do CISC zCustos de Software >> Custos do Hardware zLinguagens de Alto Nível (HLL) Cada Vez Mais Complexas zGap Semântico zGrandes Conjtos. de Instrução zMais Modos de Endereçamento zImplementações em Hardware de Sentenças HLL ye.g. CASE (switch) no VAX

Intenção de CISC zFacilitar o Desenvolvimento do Compilador zAumentar a Eficiência de Execução yOperações Complexas em Microcódigo zSuportar HLLs Mais Complexas

Características de Execução zEstudos Realizados Baseados em Programas Escritos em HLLs yEstudos Dinâmicos Medidos Durante a Execução do Programa zAnálise yOperações Executadas yOperandos Utilizadas ySeqüenciamento de Execução

Operações zAtribuições yMovimentação de Dados zSentenças Condicionais (IF, LOOP) yControle de Seqüência zChamada/Retorno de Procedimento Consome Muito Tempo zAlgumas Instruções HLL Resultam em Muitas Operações em Código de Máqina

Freqüência Dinâmica Relativa Ocorrência Instrução de Máq.Referência à Mem. Dinâmica(Ponderada)(Ponderada) PascalCPascalCPascalC Atrib Loop Call If GoTo Outra613121

Operandos zPrincipalmente Variáveis Locais Escalares zOtimização Deveria se Concentrar no Acesso a Variáveis Locais PascalCMédia Constante Inteira Variável Escalar Matriz/Estrutura262425

Chamadas de Procedimentos zConsome Muito Tempo zDepende do Nº de Parâmetros Passados zDepende do Nível de Aninhamento zMaioria do Programa Não Realizam Muitas Chamadas Seguidas de Muitos Retornos zMaioria das Variáveis São Locais yLocalidade de Referência

Implicações zMelhor Suporte  Otimizando yRecursos Mais Utilizados yRecursos que Consomem Mais Tempo zGrande Nº de Registradores yReferência a Operandos zProjeto Cuidadoso de Pipelines yPredição de Desvios, etc. zConjunto de Instruções Simplificado (Reduzido)

Implementações RISC Registradores

Grande Arquivo de Registradores zSolução em Software yRequer que o Compilador Aloque Registradores xAlocação Baseada nas Variáveis Mais Utilizadas em um Dado Momento yRequer Análise de Programa Sofisticada zSolução em Hardware yTem Mais Registradores xPortanto Mais Variáveis Estarão nos Registradores

Registradores para Variáveis Locais zArmazena Variáveis Locais Escalares em Registradores yReduz Acesso à Memória zCada Chamada de Procedimento/Função Muda a Localidade yParâmetros são Passados yResultados são Retornados yVariáveis dos Programas que Chamaram são Restauradas

Janelas de Registradores zApenas Poucos Parâmetros zFaixa Limitada de Profundidade de Chamadas zUso de Múltiplos Conjuntos Pequenos de Registradores yChamadas Chaveiam para um Conjunto Diferente de Registradores yRetornos Chaveiam de Volta para Um Conjunto de Reg. Previamente Utilizado

Janelas de Registradores zTrês Áreas Dentro do Conjunto de Registradores yRegistradores de Parâmetro yRegistradores Locais yRegistradores Temporários xRegistradores Temporários de um Conjto. Superpõem-se aos Registradores de Parâmetros do Seguinte Passagem de Parâmetros Sem Movimentação de Dados

Janelas de Registradores Superpostas

Diagrama de Buffer Circular

Exemplo de Janela de Registrador zInt global.a, global.b, global.c; zVoid Main(); z{ zInt main.a, main.b, main.c; z... zProc.b(global.a,main.b,main.c); z... z} zVoid Proc.b(int a,b,c); z{ zInt b.a,b.b,b.c; z... zProc.c(global.b,b.a); z... z} zVoi Proc.c(int c,d); z{ zInt c.a; z... z}

Int global.a, global.b, global.c; Void Main(); { Int main.a, main.b, main.c;... Proc.b(global.a,main.b,main.c);... } Main.a Main.b Main.c Global.a Main.b Main.c Void Proc.b(int a,b,c); { Int b.a,b.b,b.c;... Proc.c(global.b,b.a);... } Voi Proc.c(int c,d); { Int c.a;... } abcabc b.a b.b b.c c.a Global.b b.a cdcd A B C Exemplo de Janela de Registrador

Variáveis Globais zAlocadas pelo Compilador na Memória yIneficiente para Variáveis Freqüentemente Acessadas zSolução Proposta yTer um Conjunto de Registradores para Variáveis Globais

Registradores X Cache zArquivo de RegistradoresCache zTodos Escalares LocaisEsc. Locais Recentemente Usados (RU) zVariáveis IndividuaisBlocos de Mem. zVar. Globais do CompiladorVar. Globais RU zSalvar/Restaurar Baseado emSalv./Rest. baseado em Aninhamento de Proc.Algoritmo de Cache zEndereçamento de Reg.End. de Memória

Referenciando um Escalar - Arquivo de Registrador de Janela

Referenciando um Escalar - Cache

Técnica de Colorização de Grafos

Implementações RISC RISC Pipelining

zMaioria das Instruções são Registrador para Registrador zExecução em Dois Estágios yI: Busca de Instrução yE: Execução xOperação ULA com Entrada e Saída de Registrador zPara Load e Store yI: Busca de Instrução yE: Execução xCalcula Endereço de Memória yD: Memória xOperação de Registrador para Memória e de Memória para Registrador

Efeitos de Pipelining

Otimização de Pipelining zDesvio Atrasado yNão Toma Desvio Até Execução da Instrução Seguinte Slot de Desvio

Desvio Normal e Atrasado EndereçoNormalAtrasadoOtimizado 100LOAD X,ALOAD X,ALOAD X,A 101ADD 1,AADD 1,AJUMP JUMP 105JUMP 105ADD 1,A 103ADD A,BNOOPADD A,B 104SUB C,BADD A,BSUB C,B 105STORE A,ZSUB C,BSTORE A,Z 106STORE A,Z

Uso de Desvio Atrasado

RISC X CISC Considerações

Porquê CISC? zSimplificação de Compilador? yQuestão Controversa xInstruções de Máquina Complexas São Difíceis de Utilizar xOtimização Mais Difícil zProgramas Menores? yOs Programas Ocupam Menos Memória, Mas… xMemória É Barata yPodem Não Ocupar Menos Bits, Apenas Menores na Forma Simbólica xMais Instruções  Opcodes Maiores xReferência a Registrador Requer Menos Bits

Porquê CISC? zProgramas Mais Rápidos? yTendência ao Uso de Instruções Simples yUnidade de Controle Mais Complexa xArmazenamento de Microprogramas de Controle Maior xInstruções Simples Demoram Mais a Executar zConclusão yNão é Claro que CISC é a Solução Apropriada

Características RISC zUma Instruções Por Ciclo zOperações Registrador - Registrador zPoucos e Simples Modos de Endereçamento zPoucos e Simples Formatos de Instrução zProjeto Hardwired (Sem Microcódigo) zFormato de Instrução Fixo zMaior Esforço/Tempo de Compilação

RISC v CISC zNão Há Divisão Clara zMuitos Projetos Utilizam Ambas Filosofias ye.g. PowerPC e Pentium II

Controvérsia zQuantitativa yComparação de Tamanhos de Programas e Velocidade de Execução zQualitativa yQuestões de Suporte a HLLs e Uso de Espaço no CI (VLSI) zProblemas yNão Há Pares de RISC e CISC Comparáveis yNão Há um Conjunto Definitivo de Programas de Teste yDificuldade de Separar os Efeitos do Hardware dos Efeitos do Compilador yMaioria das Comparações Feitas em Laboratório e Não no Mercado yMaioria dos Dispositivos Comerciais São uma Mistura

Por onde estudar ? zArquitetura e Organização de Computadores yWilliam Stallings xCap. 12 zManufacturer Web Sites