Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Arquitetura de Computadores II Prof. Flávio Rogério Uber
Informações Úteis Professor: Flávio Rogério Uber Bloco C-56 Sala 204 E-mail: flavio.uber@gmail.com Critério de Avaliação: 4 avaliações: 70% Prova 30% Trabalho
Arquitetura de Computadores II Arquiteturas Avançadas Superescalares RISC x CISC Paralelismo Simuladores
Inovações Conceito de Família (1964) Separa a arquitetura de uma máquina de sua implementação. Uma mesma arquitetura pode ter implementações diferentes. Unidade de Controle microprogramada Fornece suporte para o conceito de família Memória cache (1968) Pipeline Melhora do desempenho Introduz o paralelismo
Inovações Múltiplos processadores Arquitetura RISC Importância dos registradores de propósito geral e a otimização do seu uso Conjunto de instruções simples Otimização do pipeline
Comparação RISC x CISC
Características Estudos sobre padrões de execução das instruções Objetivo: tornar a arquitetura mais simples Aspectos: Operações efetuadas Operandos usados Sequência da execução
Execução de Instruções Linguagens de alto nível causaram diferenças semânticas, portanto: Ineficiência da execução Tamanho excessivo no código de máquina Complexidade de compiladores Em contrapartida os projetos das arquiteturas passaram a contemplar: Grande conjunto de instruções Dúzias de modos de endereçamento Instruções implementadas no hardware
Operações Comando Fortran (%) C (%) Pascal (%) Atribuição 51 38 45 if 10 43 29 call 5 12 15 loop 9 3 5 Predominância de atribuição Alto índice de instruções condicionais (if / loop) E o tempo de execução? goto 9 3 0
Operações Ocorrência Dinâmica Instr. Máquina Refer. Memória Comando Pascal (%) C (%) Pascal C Pascal C Atribuição 45 38 13 13 14 15 if 29 43 11 21 7 13 call 15 12 31 33 44 45 loop 5 3 42 34 33 26 Frequência relativa de ocorrência das instruções Chamadas/retornos consome mais tempo goto - 3 - - - -
Operandos Pascal (%) C (%) Média (%) Constante Inteira 16 23 20 Variável Escalar 58 53 55 Maioria de ocorrência de variáveis escalares simples Um dos estudos concluiu que cada instrução referencia em média 0,5 operandos e 1,4 registradores Array/Estrutura 26 24 25
Chamadas de Procedimentos Dois aspectos importantes: número de parâmetros e a profundidade de aninhamento 98% dos procedimentos utilizam menos de 6 argumentos É raro haver uma grande sequência de chamadas de procedimentos consecutivas
Conclusões Uma arquitetura com um conjunto de instruções parecida com as linguagens de programação de alto nível não é eficaz Um grande número de registradores otimiza a referência aos operandos (grande proporção de atribuições) É preciso cuidado no projeto do pipeline de instruções em função da grande quantidade de chamadas e desvios É indicado um conjunto de instruções simplificado (veremos adiante)
Banco de Registradores Grande quantidade de atribuição Registradores tem acesso rápido aos dados Duas abordagens: Software: compiladores alocam registradores para dados mais usados Hardware: usar mais registradores
Banco de Registradores Maioria das referências é para operadores locais O que é local em se tratando de chamadas de procedimentos? Outros resultados dos estudos: Há pouca passagem de parâmetros Não há muita profundidade Janela de registradores Cada procedimento é direcionado a usar um conjunto de registradores
Banco de Registradores
Banco de Registradores
Banco de Registradores Variáveis Globais Incorporação de um conjunto global de registradores Problemas: Hardware precisa acomodar a divisão de registradores O compilador precisa decidir que variáveis globais serão atribuídas aos registradores
Banco de Registradores Para pequenas quantidades de registradores Necessidade de otimizar seu uso Coloração em grafos
Exercícios 1)Explique de forma sucinta o funcionamento da janela de registradores. 2)Explique porque não há necessidade de salvar os registradores temporários. 3)Explique de forma sucinta o funcionamento da coloração de grafos para otimizar o uso de registradores.
Pipeline RISC: maioria de instruções reg-reg I: busca da instrução E: Execução Para carregar e armazenar: I: Busca da instrução E: execução. Calcular endereço de memória D: Memória. Operação reg-mem ou mem-reg
Pipeline
Pipeline RISC Projeto de 3 ou 4 estágios é mais fácil ser alcançado Simplicidade e regularidade das instruções Dependências e desvios reduzem a taxa de execução
Otimização de Pipeline Técnicas de reorganização de código Desvio Atrasado: otimização através da inversão na execução de instruções Endereço Desvio Normal Desvio Atrasado Desvio atrasado otimizado 100 LOAD x, ra LOAD x, ra LOAD x, ra 101 ADD 1, ra ADD 1, ra JUMP 105 102 JUMP 105 JUMP 106 ADD 1, ra 103 ADD ra, rb NOOP ADD ra, rb 104 SUB rc, rb ADD ra, rb SUB rc, rb 105 STORE ra, Z SUB rc, rb STORE ra, Z 106 STORE ra, Z
Otimização de Pipeline
Otimização de Pipeline Leitura Atrasada: técnica semelhante. Instruções LOAD podem ser reposicionadas para evitar a ociosidade até o término da leitura Laço Desenrolado: Replicar o corpo de um laço em um número de vezes chamado de fator de desenrolar (u) e faz a iteração pelo passo u (e não pelo passo 1)
Otimização de Pipeline
Comparação RISC/CISC Unidade de Controle Caminho p/ dados e instruções Unidade de Controle Hardwired Caminho p/ dados Controle Microprogramado Cache Cache de Instruções Cache de Dados Memória Principal Memória Principal Unid. Controle CISC Unid. Controle RISC
Comparação RISC/CISC Memória Principal Memória Principal ULA ULA Co-Processdor Unid. Pto. Flutuante Unid. Controle Unid. Controle CPU CPU CPU CISC CPU RISC
RISC CISC 1 Instruções simples levando 1 ciclo 2 Apenas LOADs/STOREs referenciam a memória Instruções complexas levando múltiplos ciclos Qualquer Instrução pode referenciar a memória 3 Altamente pipelined Não tem pipeline, ou tem pouco 4 Instruções executadas pelo hardware Instruções executadas pelo microprograma 5 Instruções com formato fixo Instruções de vários formatos 6 Poucas instruções e modos Muitas instruções e modos 7 A complexidade está no compilador 8 Múltiplos conjuntos de registradores A complexidade está no microprograma Conjunto único de registradores
Exercícios 1)Descreva a diferença das máquinas RISC e CISC no que se refere a operações de ponto flutuante 2)Fale sobre as diferenças básicas entre máquinas RISC e CISC e como essas diferenças foram minimizadas ao longo do tempo 3)Explique as vantagens e desvantagens da microprogramação existente em máquinas CISC e ausentes nas RISC