Picojava Processors Mateus Beck Rutzig [email protected].
Transcript of 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 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
8
Var
iáve
is L
ocai
s
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
-Decodifica14
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ódigo14
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
15
• 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.
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/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)