Processadores para computação de alto desempenho

Documentos relacionados
Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Arquitetura e Organização de Computadores

Arquitetura de Computadores. Ciclo de Busca e Execução

Arquitetura e Organização de Computadores

Organização e Arquitetura de Computadores I

Organização de Computadores

CONJUNTO DE INSTRUÇÕES

25/8/2010. Praticamente todas as arquiteturas de computadores fornecem mais de um modo de

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

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

Organização e Arquitetura de Computadores I

Conjunto de Instruções. Alisson Brito

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Arquiteturas RISC e CISC. Adão de Melo Neto

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

2º Estudo Dirigido CAP 3

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

Prof. Leonardo Augusto Casillo

Instruções. Maicon A. Sartin

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

1) Considere a situação atual da memória do sistema computacional abaixo discriminada.

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

2. A influência do tamanho da palavra

III.2 - Princípios de Arquitetura

Arquitetura de Computadores Unidade Central de Processamento CPU

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Organização de Sistemas de Computadores

Primeiro Trabalho de POO Emulador para o Processador Winter

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

Infraestrutura de Hardware. Instruindo um Computador

2. A influência do tamanho da palavra

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

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

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

Disciplina: Arquitetura de Computadores

Arquitetura e Organização de Computadores

Objetivos. Tópico 02: Arquitetura do Conjunto de Instruções. Page 1. Estudar as principais características de arquiteturas de conjunto de instruções.

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

Organização de Computadores

Compiladores. Introdução à Compiladores

SSC0114 Arquitetura de Computadores

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.

Arquitetura de Computadores - Controle Microprogramado. por Helcio Wagner da Silva

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo

CAP. VII GERAÇÃO DE CÓDIGO

Compiladores e Computabilidade

Introdução à Computação: Arquitetura von Neumann

Processador. Processador

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Introdução à Computação: Máquinas Multiníveis

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

ção de Computadores I

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Linguagem de Maquina II. Visão Geral

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

Compiladores II. Fabio Mascarenhas

Arquitetura de Computadores. Conjunto de Instruções

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

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Arquitetura e Organização de Computadores

Arquitetura de Computadores Aula 11 - Multiprocessamento

Conceitos Básicos Processador

4. Modelo de Programação do DLX Introdução

Compiladores. Geração de Código Objeto

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

O Funcionamento do Processador

SSC510 Arquitetura de Computadores 1ª AULA

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

Processadores

Faculdade de Computação

PSI3441 Arquitetura de Sistemas Embarcados

Arquitetura e Organização de Computadores

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

Organização e Arquitetura de Computadores I

Organização de computadores. Aula 05

Sistemas de Computação. Seção Notas. Endereçamento de Memória. Notas. Oitava Aula. Haroldo Gambini Santos. 3 de setembro de 2009.

Neander - características

Solução Lista de Exercícios Processadores

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Compiladores Geração de Código

Prof. Gustavo Oliveira Cavalcanti

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

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

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

Organização e Arquitetura de Computadores I

Sistemas Processadores e Periféricos Aula 2 - Revisão

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

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta:

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

SSC0112 Organização de Computadores Digitais I

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Transcrição:

Processadores para computação de alto desempenho Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Arquitetura do Conjunto de Instruções Tópicos a serem abordados: Métricas das ISAs Classificação de ISAs Diferenciando ISAs Acesso à memória Big-endian x little-endian Modos de endereçamento Tipos de instruções Facilitando a compilação

Métricas das ISAs Densidade de instruções É uma medida de quanto espaço é ocupado pelas instruções necessárias para executar uma tarefa. Importante em ambientes com restrição de espaço de armazenamento. Quantidade de instruções É uma medida do número de instruções para executar uma tarefa. Complexidade de instruções Mede como são as instruções no que diz respeito ao número e tipo de operandos. Tamanho de instruções Instruções de tamanho constante ou variável?

Classificação de ISAs Memória/memória Podem ter até três operandos na memória Costumam ter poucos registradores Registrador/memória Um operando em um registrador e outro na memória Geralmente usa apenas dois operandos Carga/armazenamento Apenas transferências entre memória e registradores ULA opera somente com os registradores Típico arranjo em processadores RISC

Classificação de ISAs Acumulador/memória Um operando está no acumulador e outro na memória Instruções movem dados entre o acumulador e a memória Baseadas em pilhas Todos os operandos ficam no topo de uma pilha Instruções movem dados entre a pilha e a memória JVM é baseada em pilhas Estas classes são menos comuns

Diferenciando ISAs Registradores são mais rápidos que memória Compiladores otimizam o uso de registradores Armazenamento temporário Endereços Variáveis Parâmetros Classificação Segundo o número de operandos da ULA Segundo o número de operandos na memória

Acesso à memória Quanto à forma Big-endian (6800, sparc, Power, Internet headers) Byte MSB LSB X X+1 X+2 X+3 Little-endian (x86, alpha) Byte MSB LSB X+3 X+2 X+1 X Versões recentes de sparc e PowerPC são bi-endian Não há vantagem intrínseca em qualquer alternativa Redes costumam transmitir dados no formato big-endian

Modos de endereçamento Imediato ADD R4, #7 Direto em registrador ADD R4, R5, R6 Direto na memória ADD R4, M[X] Indireto ADD R4, M[R1] Indexado ADDI R4, M[R1]

Modos de endereçamento Relativo Indexado usando o contador de programa como base Implícito Usa o topo da pilha como endereço Auto-incremento Incrementa registrador base Indireções múltiplas

Modos de endereçamento Maior variedade de modos Menos instruções Maior densidade de código Implementação mais complexa Pode aumentar o número de CPI (ciclos/instrução) Pode reduzir tempo de execução Menor variedade de modos Mais instruções ISA menor, mais simples e de decodificação mais fácil Pode reduzir o número de CPI Pode reduzir tempo de execução

Modos de endereçamento Conjunto mínimo Imediato Acesso a constantes (<16bits) Endereços de memória (~32bits) Direto em registrador Acesso a registradores Máquinas baseadas em pilhas são exceção Indireto Acesso a memória

Tipos de instruções Instruções básicas Aritméticas Soma, subtração, multiplicação... Lógicas E, OU, negação, complemento... Movimento de dados Transferências entre registradores e memória. Deslocamentos de dados em registradores Controle Saltos, chamadas a sub-rotinas...

Tipos de instruções Instruções opcionais Suporte ao sistema Chamadas ao sistema operacional Suporte à memória virtual Outras instruções Operações gráficas e vetoriais As instruções básicas devem ser rápidas!

Instruções de controle de fluxo Tipos de instruções de controle de fluxo Saltos condicionais (>80% do total) Saltos incondicionais Chamadas e retornos de procedimentos Endereçamento para o controle de fluxo Relativo código relocável; usado para saltos Indireto usado para retorno de procedimentos e saltos incondicionais Direto na memória usado para acesso à memória

Tamanho das instruções Tamanho variável (CISC) Compõem as instruções em pedaços: tipo e especificadores Empacotam mais instruções num mesmo espaço Decodificação mais difícil Necessário buscar instruções desalinhadas Tamanho fixo (RISC) Operação e modos de endereçamento fixos no opcode Suporta poucos modos de endereçamento Decodificação mais simples Busca muitas instruções antecipadamente Código menos denso

Facilitando a compilação >99% do código é produzido por compiladores (ou interpretadores) Passos de um compilador Analisador léxico Analisador sintático Analisador semântico Otimização de código intermediário Geração de código objeto

Facilitando a compilação O conjunto de instruções deve ser regular Operações, tipos de dados e modos de endereçamento devem ser ortogonais As soluções devem ser primitivas Permita ao compilador construir suas próprias sequências de código. Simplificar escolhas Não obrigue o compilador escolher entre 20 alternativas Mantenha as coisas o mais simples possível!

Facilitando a compilação Não projete uma ISA para uma HLL específica Lembre que o programa típico não existe Não ceda à tentação de incluir aquela instrução manera. Não existe ISA sem falhas ISAs com falhas podem ser bem sucedidas Leva um tempo para que uma ISA fique obsoleta