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)
Download

Picojava Processors