Picojava Processors Mateus Beck Rutzig [email protected] OUTLINE JVM – Visão do Hardware Plataforma Picojava PicoJava I PicoJava II Fujitsu Picojava II Referências OUTLINE JVM – Visão do Hardware Plataforma Picojava PicoJava I PicoJava II Fujitsu Picojava II Referências Visão do Hardware - Execução Interpretada - Lenta Just In Time Execução Nativa - Muita Memória -Rápida -Pouca Memória 1 OUTLINE JVM – Visão do Hardware Plataforma Picojava PicoJava I PicoJava II Fujitsu Picojava II Referências Plataforma Picojava - Mercado Digital set-top boxes Internet TVs Automotive communication devices GPS (Global Positioning Systems) Network Computers Concorrentes: ARM, MIPS e McCore (Motorola) 2 Plataforma Picojava 226 opcodes de tamanhos variando entre 1 e 3 Bytes. 32 bits de tamanho de palavra. Entrada e Saída mapeada em memória Cache Configurável: – Instruções => Mapeada Diretamente,16 bytes por linha, Tamanho 0,1,2,4,8,16 KB. – Dados => Associativa 2 por conjunto, write back, 16 bytes por linha, Tamanho 0,1,2,4,8,16KB. 3 OUTLINE JVM – Visão do Hardware Plataforma Picojava PicoJava I PicoJava II Fujitsu Picojava II Referências Picojava I – Características Primeiro processador Java para Sistemas Embarcados. Segue os padrões de lógica da JVM: estruturas de pilha. Suporta todo o conjunto de instruções Java. – – – Somente instruções mais comuns são implementadas em hardware (Adição, Subtração...). Instruções com multiciclos (Invocação de métodos...) são executadas através de microcódigo (ROM 284x80 + 8 registradores ). Instruções raramente encontradas no código e ainda mais complexas (Criação de Objetos...) são emuladas, ou seja, S.O. executa uma rotina de software após uma ativação de uma Trap. 4 Picojava I – Diagrama de blocos ROM Microcódigo 5 Picojava I e II– Gerenciamento de Pilha 6 Picojava I e II – Gerenciamento de Pilha • Técnica de Dribbling 7 Picojava I e II– Gerenciamento de Pilha Variáveis Locais • Técnica de Folding 8 Picojava I e II– Gerenciamento de Pilha • Técnica de Folding •Picojava I • Detecta somente load seguido de instrução de uso do mesmo. •Picojava II • Utiliza 6 diferentes grupos de folding de instruções. •Classifica instruções : Produtoras Consumidoras Operadoras 9 Picojava I - Pipeline -Fila de 12 Bytes 10 Picojava I - Pipeline -Fila de 12 Bytes -Busca 4 Bytes/ciclo 10 Picojava I - Pipeline - Até 5 Bytes - Folding - Stack Cache (R em picojava II) 10 Picojava I - Pipeline - Um ou mais ciclos - Acesso a Cache de dados (C em picojava II) 10 Picojava I - Pipeline -Escreve resultado na Stack Cache 10 Picojava I – Curiosidades Não possui Branch Prediction, desvios são considerados FALSOS => Pipeline Curto. Suporte a monitores => objetos compartilhados por threads. Garbage Collector => desalocação automática de objetos da memória. 11 OUTLINE JVM – Visão do Hardware Plataforma Picojava PicoJava I PicoJava II Fujitsu Picojava II Referências Picojava II – Características Herda diversas características do Picojava I. Possui um mecanismo de folding mais avançado. Sun Microsystems classificou-o como IP (Intelectual Property) Descrição RTL (Verilog) e documentação aberta para licenciamento. IBM, Fujitsu e LG licenciaram a tecnologia. 12 Picojava II – Diagrama de Blocos 13 Picojava II – Pipeline 14 Picojava II – Pipeline -Fila de 16 Bytes -Busca 8 Bytes/ciclo -Repassa 7 Bytes/ciclo 14 Picojava II – Pipeline -Folding Máximo 4 instruções -Decodifica 14 Picojava II – Pipeline -Busca de operandos (Stack Cache) -Condições de bypass e misses na Stack Cache 14 Picojava II – Pipeline -Executa instruções lógicas e aritméticas -Calcula endereço de desvios e R/W na cache -Instruções com mais de um ciclo => Microcódigo 14 Picojava II – Pipeline - Acesso à dados na Cache de dados 14 Picojava II – Pipeline - Resultados são escritos na Stack Cache 14 Picojava II – Gerenciamento de energia • Powerdown, Clock and Scan Unit (PCSU) •Modo Normal • Cache de instruções e dados podem gerar sinais de desligamento. •Modo Standby • Instrução priv_powerdown => sinal de desligamento para todas as unidades. • Saída do modo através de interrupção. • Retorno do clock em 4 ciclos. 15 OUTLINE JVM – Visão do Hardware Plataforma Picojava PicoJava I PicoJava II Fujitsu Picojava II Referências Fujitsu MB86799 Cache: – – Instruções : 8 KB Dados : 8 KB Stack Cache: 64 entradas Unidade de Ponto Flutuante Versões: – – 40 MHZ => Consome 90 mW em 1.7 V 66 MHZ => Consome 260 mW em 2.5 V 16 Fujitsu MB86799 – Diagrama de Blocos 17 Referências • Sun Microsystems. picoJava-II Microarchitecture Guide. Palo Alto: Sun Microsystems, 1999. • Sun Microsystems. picoJava-II Microarchitecture. Palo Alto: Sun Microsystems, 1999. • J. M. O'Connor, M. Tremblay, picoJava-I: The Java virtual machine in hardware. IEEE Micro, vol. 17, no. 2: pp. 45-53, 1997 • Sun Microsystems. picoJava-II - Java Processor Core Data Sheet. • Fujitsu: picoJava-II Specification disponível por WWW em http://www.fujitsu.com/global/services/microelectronics/product/micom/java/picospe c/. • Pilla, M.L. A Microarquitetura picoJava-II . Porto Alegre: PPGC/UFRGS, 1999 (Trabalho Individual). • Beck, A.C.S. Uso da Técnica VLIW para Aumento de Performance e Redução do Consumo de Potência em Sistemas Embarcados Baseados em Java. Porto Alegre: PPGC/UFRGS, 2004 (Dissertação de Mestrado)