Algoritmos para Escalonamento de Instruções e Alocação de Registradores na Infraestrutura LLVM
|
|
- Raquel Castilhos
- 5 Há anos
- Visualizações:
Transcrição
1 Algoritmos para Escalonamento de Instruções e Alocação de Registradores na Infraestrutura LLVM Lucas da Costa Silva Orientador: Prof. Dr. Ricardo Ribeiro dos Santos Faculdade de Computação Universidade Federal de Mato Grosso do Sul Campo Grande MS Brasil 10 de maio de 2011
2 Sumário Fundamentação teórica Integração entre Escalonamento de Instruções e Alocação de Registradores 2D-VLIW Arquitetura 2D-VLIW Algoritmo de Escalonamento e Alocação de Registradores Baseado em Isomorfismo de Subgrafos LLVM Proposta de Trabalho
3 Fundamentação teórica Escalonamento de Instruções: Atribui operações a recursos físicos Ordenação específica Alocação de Registradores: Mapeia os registradores virtuais para os físicos da arquitetura alvo Live range Bloco Básico Grafo de Interferência G = (V, E)
4 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: renumber build coalescing spill costs simplify spill code select Figura: Fases do algoritmo de Coloração de Vértices
5 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: Algoritmo 1 Algoritmo para exemplo de alocação de registradores live in (a,d) b=5 loop: c=b+a b=b-1 if b 0 goto loop live out (c,d)
6 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: live in(a,d) b=5 c=a+b b=b-1 live out (c,d) Figura: Exemplo de Alocação de Registradores: Blocos básicos
7 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: a b c d Figura: Exemplo de Alocação de Registradores: Live ranges
8 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: c d b a Figura: Exemplo de Alocação de Registradores: Grafo de Interferência
9 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: b c a Figura: Exemplo de Alocação de Registradores: Spill na variável d
10 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: Algoritmo 2 Algoritmo para exemplo de alocação de registradores com spill code live in (a,d1) M[Dloc] = d1 b=5 loop: c=b+a b=b-1 if b 0 goto loop d2=m[dloc] live out (c,d2)
11 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: d2 c d1 b a Figura: Exemplo de Alocação de Registradores: Grafo de Interferência depois do Spill code
12 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: c b d2 a Figura: Exemplo de Alocação de Registradores: Simplify da variável d1
13 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: c (r3) b (r1) d2 (r1) a (r2) Figura: Exemplo de Alocação de Registradores: Select nas variáveis a, b, c e d2
14 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: d2 (r1) c (r3) d1 (r1) b (r1) a (r2) Figura: Exemplo de Alocação de Registradores: Select na variável d1
15 Fundamentação teórica Alocação de Registradores por Coloração de Vértices: Algoritmo 3 Algoritmo para exemplo de alocação de registradores com registradores físicos live in (r2,r1) M[Dloc] = r1 r1=5 loop: r3=r1+r2 r1=r1-1 if r1 0 goto loop r1=m[dloc] live out (r3,r1)
16 Fundamentação teórica - Integração O escalonamento pode ser aplicado a uma linguagem intermediária tanto antes da alocação de registradores (prepass) quanto depois (postpass). Prepass: explora o paralelismo aumenta a possibilidade de spill code Postpass: restringe a exploração do paralelismo não aumenta a ocorrência de spill code
17 Fundamentação teórica - Integração Integrated Prepass Scheduling integrado no prepass Combinação de duas técnicas: CSP: reduz o atraso do paralelismo CSR: minimiza o uso de registradores Ideia: Manter um número de registradores disponíveis durante o escalonamento Quando há registradores suficientes, o escalonador usa CSP para reduzir o atraso do paralelismo Quando o número de registradores disponíveis alcança um limite inferior, o escalonador troca para o CSR para controlar o uso de registradores
18 Fundamentação teórica - Integração DAG-Driven Register Allocation integrado no postpass Ideia: Se o número de registradores é maior que a largura do DAG, a geometria permanece inalterada durante a alocação de registradores Caso contrário, a alocação irá reduzir a largura do DAG para um número menor ou igual ao número de registradores Estratégias para controlar o crescimento da altura são: exploração das dependências livres de Write-After-Read (WAR) e o balanceamento de crescimento do DAG
19 Fundamentação teórica - Integração Pinter apresenta uma abordagem baseada em (parallelizable interference graph) G: Seja G s = (V s, E s ) o grafo de escalonamento. Cada vértice v V s corresponde a uma instrução do código intermediário. Há uma aresta direcionada (u, v) E s, de u para v se u deve ser executado antes de v Seja G r = (V r, E r ) o grafo de interferência. Cada vértice v V r representa um live range de um registrador virtual. Há um aresta não direcionada {u, v} E r se e somente se live ranges u e v se interferem
20 Fundamentação teórica - Integração Pinter apresenta uma abordagem baseada em (parallelizable interference graph) G: Seja G f = (V f, E f ). V f = V s. Definido o conjunto E t contendo exatamente restrições da máquina no escalonamento. O par {u, v} E f é dado por u, v V f, u v e {u, v} / E t Seja G = (V, E) o grafo de interferência paralelo. V = V r. E = E r {{u, v} : {u, v} E f and u, v V }
21 Fundamentação teórica - Integração Simplify: remove v e atualiza G se há um vértice v V com grau menor do que r Spill Cost: se V não estiver vazio escolhe um vértice v V com menor custo e coloca v na lista de spill Select: colore o grafo se não há spill Spill: para cada item na lista de spill refazer o procedimento de coloração
22 2D-VLIW Figura: Visão da 2D-VLIW
23 2D-VLIW Ideia: Obtem um subgrafo do grafo da arquitetura que seja isomorfo ao grafo do programa O grafo da arquitetura é dotado com vértices representando os registradores temporários e globais O subgrafo indica exatamente quais recursos do processador devem ser utilizados por cada operação Possibilita a alocação de registradores simultânea com a fase de escalonamento Algoritmo guloso baseado em list scheduling
24 2D-VLIW Figura: Escalonamento de instruções baseado em isomorfismo de subgrafos
25 2D-VLIW Algoritmo 4 Algoritmo de escalonamento de instruções 2D- VLIW baseado em isomorfismo de subgrafos e alocação de registradores. ENTRADA: Grafo de entrada G 1 e grafo base G 2. SAÍDA: Conjunto de instruções 2D-VLIW. Sched(DAG: G 1, BASE GRAPH: G 2 ) 1) topological order(g 1 ); 2) G 2 =subg iso sched alloc(g 1, G 2, tag); 3) while (G 2 == NULL) 4) switch(tag) 5) case 1 : base graph resize(g 2 ); 6) case 2 : DAG stretch(g 1 ); 7) case 3 : DAG split(g 1 ); 8) G 2 =subg iso sched alloc(g 1, G 2, tag); 9) end while 10) create 2D-VLIW instruction(g 2 );
26 LLVM O compilador Low-Level Virtual Machine (LLVM) é uma infraestrutura modular construída com uma coleção de ferramentas reutilizáveis Font-end Compilador estático LLVM IR LLVM Object Otimizações Back-end Assembly Código Nativo Figura: Diagrama representando o esquema de geração de executáveis no LLVM
27 LLVM Figura: Exemplo de código em C e em LLVM IR
28 LLVM Front-end LLVM Back-end Seleção de Instrução Escalonamento Otimização Alocação de Registradores Inserção de código Prólogo/Epílogo Otimizações tardias Emissão de código Fast ListScheduling Fast Linear Scan PBQP Assembly Código nativo Figura: Fases do LLVM na geração de código
29 LLVM Front-end LLVM Back-end Seleção de Instrução Escalonamento Otimização Alocação de Registradores Inserção de códi Fast ListScheduling Fast Linear Scan PBQP Figura: Fases do LLVM na geração de código
30 LLVM Front-end LLVM Back-end ação de Registradores Inserção de código Prólogo/Epílogo Otimizações tardias Emissão de código Linear Scan PBQP Assembly Código nativo Figura: Fases do LLVM na geração de código
31 LLVM fadd:f32 fmul:f32 z fadd:f32 y w x Figura: SelectionDag (fadd:f32 (fmul:f32 (fadd:f32 W, X), Y), Z)
32 LLVM 1 Criar uma subclasse da classe TargetMachine que descreve as características da arquitetura alvo 2 Descrever o conjunto de: 1 registradores do alvo 2 instruções para a arquitetura 3 seleção e conversão do LLVM IR para uma representação em DAG das instruções para instruções nativas da arquitetura alvo 3 Escrever código para um assembly printer que converte LLVM IR para um formato GAS (GNU Assembler) para arquitetura alvo
33 LLVM Figura: Definição da instrução add em X86
34 Proposta de Trabalho 1 Estender e integrar as fases da geração de código de forma a modificar os DAGs necessários para o algoritmo de isomorfismo de subgrafos 2 Projetar e implementar no LLVM a geração de código para a máquina da arquitetura 2D-VLIW 3 Avaliar experimentalmente e verificar métricas para mensurar o desempenho em diferentes arquiteturas 4 Preparar artigos e documentos para serem submetidos em eventos e periódicos da área
35 Proposta de Trabalho Atividades 1 Projeto e estruturação de algoritmos de escalonamento e alocação de registradores 2 Implementação de algoritmos de escalonamento e alocação de registradores junto à infraestrutura LLVM 3 Experimentação e avaliação de desempenho para efeitos de comparação com trabalhos relacionados 4 Preparar e organizar artigos e documentos científicos para serem submetidos em eventos e periódicos da área 5 Preparação e escrita da Dissertação de Mestrado a ser submetida para o PPGCC/FACOM-UFMS
36 Obrigado
Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 08 Arquiteturas VLIW 1. Introdução VLIW é Very
Leia maisCompiladores. Otimização de código
Compiladores Otimização de código Otimização de código Recebe uma representação intermediária e produz como saída código de máquina eficiente Parser Checagem Estática Geração de código intermediário Otimização
Leia maisCompiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Leia maisCONCURSO PÚBLICO PARA PROVIMENTO DE CARGO EFETIVO PROFESSOR DE ENSINO BÁSICO, TÉCNICO E TECNOLÓGICO Edital 20/2015 Campus Rio Pomba FOLHA DE PROVA
Tema 01: CONCORRÊNCIA ENTRE PROCESSOS Descreva os problemas que podem existir entre os processos concorrentes e os mecanismos para solução desses problemas utilizados por Sistemas Operacionais atuais.
Leia maisProcessadores Superescalares - Avançando na exploração de paralelismo entre instruções
Processadores Superescalares - Avançando na exploração de paralelismo entre instruções Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Instruction
Leia maisUniversidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever
Leia maisMicroarquiteturas Avançadas
Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com
Leia maisArquitetura de Computadores II
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
Leia maisUniversidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Síntese. Prof. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Síntese Prof. geovanegriesang@unisc.br Data 18/11/2013 Análise sintática Parte 01 25/11/2013 Análise sintática Parte 02
Leia maisGeração de Código Cap. 8
Geração de Código Cap. 8 Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para ser executado em uma máquina alvo O programa para
Leia maishttp://www.ic.uff.br/~debora/fac! 1 Conceito de família IBM System/360 1964 DEC PDP-8 Separa arquitetura de implementação Unidade de controle microprogramada Idéia de Wilkes 1951 Produzida pela IBM S/360
Leia maisConstrução de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.
Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1
Leia maisArquitetura e Organização de Processadores. Aula 4. Pipelines
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de
Leia mais1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.
Arquitetura de Computadores II Bacharelado em Ciência da Computação DCC - IM/UFRJ Prof.: Gabriel P. Silva Data: 18/04/2005 1 ª Lista de Exercícios de Arquitetura de Computadores II 1) Enumere e dê exemplo
Leia maisInfraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW
Infraestrutura de Hardware Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem
Leia maisINE5421 LINGUAGENS FORMAIS E COMPILADORES
INE5421 LINGUAGENS FORMAIS E COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer a teoria das linguagens formais visando sua aplicação na especificação de linguagens de programação e na construção de
Leia maisCompiladores II. Fabio Mascarenhas
Compiladores II Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp2 Máquinas Virtuais Uma máquina virtual é uma técnica de implementação de linguagens de programação que é um meio termo entre
Leia maisIntrodução à Computação: Máquinas Multiníveis
Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia maisPrototipação de Sistemas Digitais. Síntese Lógica Cristiano Araújo
Prototipação de Sistemas Digitais Síntese Lógica Cristiano Araújo Mapeamento de Tecnologia Definição: Dada uma estrutura lógica multi-nível independente da tecnologia, uma biblioteca de células, na qual
Leia maisPequena Apresentação Sobre Paralelismo em nível de instrução
Pequena Apresentação Sobre Paralelismo em nível de instrução Primórdios do Paralelismo: Pipeline Múltiplas unidades funcionais (sem pipeline) Paralelismo em Nível de Instrução processadores superescalares
Leia maisUniversidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
Leia maisMAB Compiladores I Introdução
MAB 471 2012.1 MAB 471 - Compiladores I Introdução http://www.dcc.ufrj.br/~fabiom/comp 1 Compiladores O que é um compilador? Um programa que traduz um programa executável em uma linguagem em um programa
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Leia maisGeração de Back-end LLVM Para o Processador r-vex
Geração de Back-end LLVM Para o Processador r-vex Richard Stéffano Martins da Silva Orientação: Prof. Dr. Ricardo Ribeiro dos Santos LSCAD/FACOM/UFMS - Campo Grande - MS - Brasil Julho, 2013 LLVM Roteiro
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia maisNoções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Compilação: por que estudar? (parte 1) Compiladores:
Leia maisCompiladores e Computabilidade
Compiladores e Computabilidade Prof. Leandro C. Fernandes UNIP Universidade Paulista, 2013 GERAÇÃO DE CÓDIGO INTERMEDIÁRIO Geração de Código Intermediário Corresponde a 1ª etapa do processo de Síntese
Leia maisNoções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Exercício em duplas Para esquentar... 2 1 Compilação:
Leia maisConcurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba
Questão 01 No processo de construção de compiladores, é essencial compreender e manipular as expressões regulares e suas equivalências. Dentro desse contexto, seja o alfabeto = {a, b, c, d, e} e a seguinte
Leia maisArquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aulas 06 e 07 Superescalaridade 1. Introdução princípios
Leia maisGRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes
8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus
Leia maisÉ um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.
Universidade Estácio de Sá Curso de Informática Disciplina de Organização de Computadores II Prof. Gabriel P. Silva - 1 o Sem. / 2005 2 ª Lista de Exercícios 1) O que é o relógio de um sistema digital?
Leia maisIntrodução à Geração de Código
MAB 471 2011.2 Introdução à Geração de Código http://www.dcc.ufrj.br/~fabiom/comp Forma do Código Definição Todas as propriedades do código que influenciam no desempenho Código em si, abordagens para diferentes
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 8ª Aula Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Estágios para execução da instrução: A instrução LOAD é a mais longa Todas as instruções seguem ao menos os
Leia maisArquitetura e Organização de Computadores
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes
Leia maisUniversidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva
Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisDesempenho de computação paralela
Desempenho de computação paralela o paralelismo existente na aplicação decomposição do problema em subproblemas menores a alocação destes subproblemas aos processadores o modo de acesso aos dados: a existência
Leia maisAULA DE REVISÃO 3 ILP
AULA DE REVISÃO 3 ILP Exercício 1: Considere um bloco de código com 15 instruções cada uma com tempo de execução Tex. Elas são executadas numa unidade pipeline de 5 estágios. Os overheads do pipeline são
Leia maisTGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher
TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar
Leia maisTécnicas para vetorização de código. Bruno Cardoso Lopes Instituto de Computação - Unicamp
Técnicas para vetorização de código Bruno Cardoso Lopes Instituto de Computação - Unicamp Agenda Introdução Código Vetorial Vetorização Manual Vetorização Automática Superword Level Paralelism (SLP) Introdução
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisQUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto.
COMPILADORES Prof. Marcus Ramos Prova 1 07 de março de 2012 QUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto. Tanto a linguagem-fonte
Leia maisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
Leia maisUniversidade Federal de Mato Grosso do Sul. Implementação de um Sistema Simplificado de Memória Cache
Universidade ederal de Mato Grosso do Sul acom - aculdade de Computação Linguagem de Programação Orientada a Objetos Prof. Me. Liana Duenha Implementação de um Sistema Simplificado de Memória Cache O objetivo
Leia maisNotas da Aula 7 - Fundamentos de Sistemas Operacionais
Notas da Aula 7 - Fundamentos de Sistemas Operacionais 1. Organização de um Processo em Memória Quando um processo é criado, o SO aloca uma porção da memória física da máquina para a criação do espaço
Leia maisTrabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas
Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Material a ser utilizado: Kits de desenvolvimento de sistemas microprocessados para aplicações em DSP Texas DSK-TMS320C67xx. Apresentação
Leia maisMemória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP
Departamento de Ciência da Computação - UFF Memória Cache Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Memória Cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática
Leia maisInformática I. Aula 14. Aula 14-10/10/2007 1
Informática I Aula 14 http://www.ic.uff.br/~bianca/informatica1/ Aula 14-10/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript
Leia maisAnálise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema
Desenvolvimento de programas 1 Análise do problema 2 Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução Teste e depuração Conhecer exatamente o que o problema
Leia maisConceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade
Conteúdo 1 Teoria de Grafos Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade > Teoria de Grafos 0/22 Conceitos Básicos Inicialmente, estudaremos os grafos não direcionados.
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes - UFERSA
Leia maisCompiladores. Introdução
Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios
Leia maisEA876 - Introdução a Software de Sistema
A876 - Introdução a Software de Sistema Software de Sistema: conjunto de programas utilizados para tornar o hardware transparente para o desenvolvedor ou usuário. Preenche um gap de abstração. algoritmos
Leia maisDesenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa
Desenvolvimento de programas 1 Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução Teste e depuração Análise do problema 2 Conhecer exatamente o que o problema
Leia maisExplorando o paralelismo entre instruções
Explorando o paralelismo entre instruções Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline Pipeline: Uma idéia natural Linhas de montagem
Leia mais2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE
Especificação do Projeto Simulador MIPS Superescalar CES- 25 Arquiteturas para Alto Desempenho Prof. Paulo André Castro Equipe: até três alunos Última atualização: 5/junho/2018 1. Objetivo Exercitar e
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisCompiladores. Otimização de Código
Compiladores Otimização de Código Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Leia maisMC-102 Aula 01. Instituto de Computação Unicamp
MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos
Leia maisPredição de Desvios e Processadores Superescalares Especulativos
Predição de Desvios e Processadores Superescalares Especulativos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Tomasulo Especulativo Se os
Leia maisDesenvolvimento de programas
1 Desenvolvimento de programas Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução Teste e depuração 2 Análise do problema Conhecer exatamente o que o problema
Leia maisMicroprocessadores. Execução em Paralelo Pipelines
Execução em Paralelo Pipelines António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Pipelines de Instrucções Instrucções são divididas em diferentes Estágios Pipelines
Leia maisCompiladores Geração de Código
Compiladores Geração de Código Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisAmbiente de tempo de Execução Cap. 7
Ambiente de tempo de Execução Cap. 7 Introdução Subdivisão da memória usada pelo programa em tempo de execução Segmento de Código Segmento Estático (segmento de dados) Pilha Área de memória livre Heap
Leia maisAlgoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3
Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 História da computação ENIAC (1946-1955) 5000 op/seg 30 toneladas; 18 mil válvulas; 140
Leia maisCompiladores. Introdução à Compiladores
Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem
Leia maisGRAFOS Aula 09 Coloração de Grafos Max Pereira
Ciência da Computação GRAFOS Aula 09 Coloração de Grafos Max Pereira O problema da coloração de grafos trata-se de atribuir cores a determinados elementos de um grafo, sob certas restrições. A coloração
Leia maisSEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica
UNIVERSIDADE ESTADUAL DE SANTA CRUZ CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO DOCENTE: ROGÉRIO VARGAS DISCENTE: MARIANNA NOVAES Semântica SEMÂNTICA Semântica é a área
Leia maisCompiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 32. Instituto de C
ompiladores Introdução Bruno Lopes Bruno Lopes ompiladores 1 / 32 Apresentação Em que período estão? O quanto sabem de programação? Quais linguagens? O quanto sabem de unix? O quanto sabem de Linguagens
Leia maisArquitetura de Computadores Aula 11 - Multiprocessamento
Arquitetura de Computadores Aula 11 - Multiprocessamento Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br fsauer@gmail.com 1/28 PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento.
Leia maisDTSVLIW. UFES Mestrado em Informática. Arquiteturas Avançadas de Computador. Sotério Ferreira de Souza. Prof. Alberto Ferreira de Souza
UFES Mestrado em Informática Arquiteturas Avançadas de Computador DTSVLIW Sotério Ferreira de Souza Orientador: Prof. Alberto Ferreira de Souza 23 de outubro de 2003 DTSVLIW Dynamically Trace Scheduled
Leia maisApresentação da plataforma.net. Ambientes Virtuais de Execução. Semestre de Verão, 12/13
Apresentação da plataforma.net Ambientes Virtuais de Execução Semestre de Verão, 12/13 Desenvolvimento baseado em componentes Desenvolvimento modular funcionalidades genéricas implementadas em componentes
Leia maisCPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3
CPU CPU Funções: Processamento; Controle Componentes: UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3 Processador A função de um computador é executar tarefas
Leia maisAlgoritmos Computacionais
UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Existem famílias de problemas cuja solução é alcançada de forma semelhante. O relacionamento entre problemas: caso especial; versão abstração; similar. Exemplos: A inserção de um elemento
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia
Leia maisTeoria dos Grafos Aula 15
Teoria dos Grafos Aula 15 Aula passada Técnicas para constriução de algoritmos Paradigma guloso Escalonamento de tarefas Aula de hoje Coloração Algoritmo guloso Número cromático Teorema das 4 cores Colorindo
Leia maisLinguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Leia maisslide Pearson Prentice Hall. Todos os direitos reservados.
slide 1 Sistema de Arquivos slide 2 Sistemas de arquivos Condições essenciais para armazenamento de informações por um longo prazo: Deve ser possível armazenar uma grande quantidade de informação A informação
Leia maisCapítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1
Capítulo 6 Hazards 1998 organ Kaufmann Publishers Ch6c 1 Dependências de Dados Problema: iniciar uma instrução antes da anterior ter finalizado dependências que voltam no tempo são hazards de dados qual
Leia maisArtigo: Identificação de Códigos Maliciosos Metamórficos pela Medição do Nível de Similaridade de Grafos de Dependência
Universidade Tecnológica Federal do Paraná Departamento Acadêmico de Informática DAINF Curso: Engenharia de Computação Disciplina: Segurança Computacional Artigo: Identificação de Códigos Maliciosos Metamórficos
Leia maisProjeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2)
1 Projeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Baseado no material desenvolvido por Andréa Iabrudi Tavares BCC 241 2012/2 2 Algumas
Leia maisBarramento. Prof. Leonardo Barreto Campos 1
Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;
Leia maisMecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas
Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,
Leia maisUniversidade Católica de Pelotas Bacharelado em Ciência da Computação Linguagens Formais e Autômatos TEXTO 6 Introdução à Compilação
Universidade Católica de Pelotas Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 6 Introdução à Compilação Prof. Luiz A M Palazzo Maio de 2011 Um COMPILADOR é um programa
Leia maisPARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n
Leia maisCircuitos Sequenciais
1 Circuitos Sequenciais Elementos de estado ou elementos de memória Exemplos de circuitos sequenciais: Latches Flip-flops Registradores Conjunto de registradores Memória Conjunto de Registradores Parte
Leia maisVariantes de Máquinas de Turing
Variantes de Máquinas de Turing 1 Máquinas de Turing Input-Output TM s Input/output (ou IO ou transdutoras) diferem de TM s reconhecedoras por terem um estado de parada neutro q halt, ao invés de estados
Leia maisOrganização de Computadores
Organização de Computadores Aula 29 Controle Microprogramado Rodrigo Hausen 24 de novembro de 2011 http://cuco.pro.br/ach2034 1/32 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.6.
Leia maisSlides trabalhados durante a quinta aula
Slides trabalhados durante a quinta aula prática Estruturas de Controle de Fluxo 3. Laços de repetição (continuação) Exercício: Construa um algoritmo, representando-o através de um pseudocódigo e de um
Leia maisConjunto de Instruções e Modelos de Arquiteturas
Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira
Leia maisCapítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache
Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade Funcionamento da memória cache Elementos de projeto de memória cache Mapeamento de dados MP/cache Algoritmos de substituição de dados
Leia maisProjetos Digitais e Microprocessadores 1 o Semestre de 2005 Prof. Luis Allan Künzle Prova Final 05/07/2005 Prova sem consulta.
Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores o Semestre de 5 Prof. Luis Allan Künzle Prova Final 5/7/5 Prova sem consulta. [Questão - Peso,5] Conecte o registrador
Leia maisOtimização do código. Compiladores Cristina C. Vieira. Compiladores 2012/2013
Otimização do código Compiladores Cristina C. Vieira 1 Otimizações Idealmente, o compilador deveria gerar código eficiente Mas o compilador mapeia as AST para a linguagem assembly Geralmente, existe uma
Leia maisUNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA. Felipe dos Santos Silveira
UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Felipe dos Santos Silveira ALOCAÇÃO DE REGISTRADORES UTILIZANDO INTELIGÊNCIA ARTIFICIAL Florianópolis 2013 Felipe dos Santos
Leia maisBCD29008 Banco de dados
BCD29008 Banco de dados Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 31 de julho de 2017 1/24 Apresentação
Leia mais