Arquiteturas Reconfiguráveis e GARP Karina Zupo de Oliveira - RA 028520 MO401 – Prof. Rodoldo Novembro 2005 Agenda GARP – Objetivos ISACs, FPGAs Arquiteturas Reconfiguráveis GARP – Arquitetura GARP – Software GARPCC GARP - Objetivos Melhorar desempenho do processador Colorário: 10% do código (kernel) executa por 90% do tempo Uso de FPGAs Arquitetura reconfigurável em computador desktop ISACs Circuitos integráveis com lógica para aplicações específicas Programados e elaborados em fábrica Rápidos e altamente otimizados Caros Computadores desktop: não fazem sentido utilizar FPGAs Circuitos integráveis reprogramáveis depois de fabricados Array de blocos lógicos Implementados em RAM Passado: caros, grandes e lentos Arquiteturas Reconfiguráveis Aplicações específicas Sequenciamento de genoma, tratamento de imagens, etc Splash-2 DECPeRLe Arquiteturas Reconfiguráveis 2 Granularidade Fora do chip do processador: PRISM Dentro do datapath do processador: Chimaera, PRISC Conectado ao processador: Garp, Spyder Somente FPGA: DISC GARP - Arquitetura Processador MIPS-II Acesso a memória Acesso à cache de dados Filas de memória Configurações Instruções especiais: gaconf, mtga, mfta, gasave, garestore... GARP – Arquitetura 2 FPGA 24 Blocos por linhas Blocos de controle Bus de Memória Wires verticais e horizontais Cache de configurações GARP – Arquitetura 4 Definição de ciclo de clock Compatibilidade binária de FPGA Contador de clock: defini quantos passos dura uma execução do FPGA Quando contador = 0 o FPGA para Processador define contador através de instruções específicas GARP –Software Geração de código Configurador Compilador C Montador Modificado GARP – Software 2 Experimentos em simulador Baseado UltraSPARC, adicionado MIPS-II GARP – Software 3 Experimentos Ganhos: Laços longos, entradas grandes, Paralelizáveis Sort: acessos randômicos memória GARPCC Compilador SUIF Técnicas de VLIW e uso de hiperblocos Profiling para achar melhor blocos Loads especulativos Pipelining de iterações de laços Uso extensivo de filas de memória GARPCC - 2 Problemas Falhas de acesso ao cache Bibliotecas C Melhor seleção dos laços Aplicações genéricas: desempenho não muito melhor que computadores comuns Conclusão Estudo: FPGA integrado com MIPS-II Foco: computadores desktop Ganho: programas paralelizáveis Compilador garpcc: ainda não é o suficiente Meta: ganhos reais em aplicações de uso genérico Realidade daqui 10-15 anos? Referências http://brass.cs.berkeley.edu/garp.html Site do GARP na Universidade de Berkeley Garp: A MIPS Processor with a Reconfigurable Coprocessor John R. Hauser and John Wawrzynek, IEEE Symposium on FieldProgrammable Custom Computing Machines (FCCM '97, April 16-18, 1997) The Garp Architecture and C Compiler Timothy J. Callahan, John R. Hauser, and John Wawrzynek, IEEE Computer, April 2000 Augmenting a Microprocessor with Reconfigurable Hardware John Reid Hauser, Ph.D. Thesis, December 2000 Automatic Compilation of C for Hybrid Reconfigurable Architectures Timothy John Callahan, Ph.D. Thesis, Fall 2002 Perguntas e-mail: [email protected]