350 likes | 440 Views
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.
E N D
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 - Muita Memória - Lenta • 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 • 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 -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 – 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
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)