Picojava Processors Mateus Beck Rutzig [email protected].

35
Picojava Processors Mateus Beck Rutzig [email protected] s.br

Transcript of Picojava Processors Mateus Beck Rutzig [email protected].

Page 1: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava Processors

Mateus Beck Rutzig

[email protected]

Page 2: 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

Page 3: 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

Page 4: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Visão do Hardware - Execução

Interpretada Just In Time Execução Nativa- Lenta - Muita Memória -Rápida

-Pouca Memória 1

Page 5: 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

Page 6: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 7: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 8: 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

Page 9: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 10: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I – Diagrama de blocos

ROM Microcódigo 5

Page 11: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I e II– Gerenciamento de Pilha

6

Page 12: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I e II – Gerenciamento de Pilha

• Técnica de Dribbling

7

Page 13: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I e II– Gerenciamento de Pilha

• Técnica de Folding

8

Var

iáve

is L

ocai

s

Page 14: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 15: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I - Pipeline-Fila de 12 Bytes

10

Page 16: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I - Pipeline-Fila de 12 Bytes

-Busca 4 Bytes/ciclo

10

Page 17: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I - Pipeline

- Até 5 Bytes - Folding- Stack Cache (R em picojava II)

10

Page 18: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I - Pipeline- Um ou mais ciclos

- Acesso a Cache de dados (C em picojava II)

10

Page 19: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava I - Pipeline

-Escreve resultado na Stack Cache

10

Page 20: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 21: 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

Page 22: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 23: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Diagrama de Blocos

13

Page 24: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Pipeline

14

Page 25: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Pipeline

-Fila de 16 Bytes

-Busca 8 Bytes/ciclo

-Repassa 7 Bytes/ciclo

14

Page 26: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Pipeline

-Folding

Máximo 4 instruções

-Decodifica14

Page 27: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Pipeline-Busca de operandos (Stack Cache)

-Condições de bypass e misses na Stack Cache

14

Page 28: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 29: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Pipeline

- Acesso à dados na Cache de dados

14

Page 30: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Picojava II – Pipeline

- Resultados são escritos na Stack Cache

14

Page 31: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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.

Page 32: 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

Page 33: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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

Page 34: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

Fujitsu MB86799 – Diagrama de Blocos

17

Page 35: Picojava Processors Mateus Beck Rutzig mbrutzig@inf.ufrgs.br.

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)