Mateus Beck Rutzig mbrutzig@inf.ufrgs.br Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br
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 Just In Time Execução Nativa - Lenta - 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 Técnica de Folding Variáveis Locais 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 10 - 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: Stack Cache: 64 entradas 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/picospec/. 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)