Arquitetura de Computadores II

Documentos relacionados
COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Arquiteturas RISC e CISC. Adão de Melo Neto

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Arquitetura de Computadores. Conjunto de Instruções

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Arquitetura de Computadores. Prof. João Bosco Jr.

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

SSC0611 Arquitetura de Computadores

Compiladores e Computabilidade

SSC0902 Organização e Arquitetura de Computadores

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Prova 1 Eng. Elétrica Arquitetura de Computadores Prof. Celso A. Saibel Santos Nome: Data:

Organização e Arquitetura de Computadores I

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Organização de Computadores

1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Explorando o paralelismo entre instruções

Compiladores. Otimização de Código

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

O Funcionamento do Processador

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Organização de Sistemas de Computadores

O Funcionamento do Processador

Processadores. Principal função é executar programas armazenados na memória principal.

SSC0114 Arquitetura de Computadores

SSC510 Arquitetura de Computadores 1ª AULA

Arquitetura de Computadores Aula 11 - Multiprocessamento

Unidade Central de Processamento 2. Registradores

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas SIMD

Organização de computadores. Aula 05

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Arquitetura e Organização de Computadores

ção de Computadores I

SSC0112 Organização de Computadores Digitais I

Nível do Conjunto de Instruções Prof. Edson Pedro Ferlin

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

SSC0112 Organização de Computadores Digitais I

Prof. Gustavo Oliveira Cavalcanti

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Neander - características

Conjunto de Instruções. Alisson Brito

Organização e Arquitetura de Computadores I

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

III.2 - Princípios de Arquitetura

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Compiladores. Introdução à Compiladores

Informática I. Aula 9. Aula 9-17/05/2006 1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. MSc. Tiago Alves de Oliveira

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

SSC0611 Arquitetura de Computadores

Sistemas Operacionais

Predição de Desvios e Processadores Superescalares Especulativos

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios

Nível da Microarquitetura

Unidade de Controle. UC - Introdução

PROGRAMAÇÃO I. Introdução

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Escalonamento de Instruções

ção de Computadores II

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Organização de Computadores

Benchmarks. 1. Introdução

Sistemas de Computação. Instruções de Linguagem de Máquina

Arquitectura de Computadores

Arquitetura e Organização de Computadores

Transcrição:

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