• Nenhum resultado encontrado

Software retargeting

N/A
N/A
Protected

Academic year: 2021

Share "Software retargeting"

Copied!
13
0
0

Texto

(1)

Software retargeting

Luigi & Flavio CMP502 2002/II

Binary translation

zArquitetura é uma camada de

software

zé uma tecnologia disruptiva?

zSuporte a novo paradigma: virtual IT

shop

PARA MAIS INFORMAÇÕES...

Altman et alli. Advances and Future Challenges in Binary Translation and Optimization. Proc. IEEE, nov 2001

(2)

Descrição

z Tradução JIT de um código binário a outro

z possibilita otimizações dinâmicas – achar paralelismo, como em superescalar – pelo tamanho do código analisado, custo

energético muito menor

– similaridade com trace memory!

z Otimizações feitas por SW em run-time, e salvas para reuso, para amortizar seu custo

Traduz e otimiza Arquitetura real

Exemplos

z Daisy (IBM)

– mercado de servidores, substitui PowerPC z Crusoe (Transmeta)

– mercado dos ultra-portáteis z Dynamo (HP)

– máquina Java

zLaTTe

(3)

Porque BT é interessante

z Aumento de desempenho

– feita no run-time, pode fazer profiling e

otimizar

z arquitetura = camada de software – máquina substrato complexa e alterável,

máquina de cima fixa e padrão

– novas arquiteturas incompatíveis com

compatibilidade de SW são possíveis

– redução da complexidade do HW

• paralelismo descoberto por profiling ou outros

algoritmos simples

• otimizações feitas somente uma vez por execução de

trecho

Será disruptiva?

zSe BT funcionar, o processador

núcleo será realmente uma commoditie

zaumento de desempenho ou

potência facilitados (HW mais simples!)

zÓtimo global, não atingível em HW

(4)

Virtual IT shop: write once, run

everywhere

zRecursos computacionais

disponíveis via web

zdownload de SW para diferentes

plataformas-> muita armazenagem

zarmazena um único executável

– cada um baixa o seu Sparc, X86,

Power-PC, 8051 ...

zCrash da aplicação não é crash do

sistema

Convergence Virtual Machine

zFigura do quadro

zCVM similar à JVM, mas uma camada

acima

– pode executar SO e C/C++

– roda sobre um RISC não tão seguro

zcomputação independete de

arquitetura não é uma idéia nova...

(5)

Alguns detalhes

zSource architecture- target

architecture

zVirtual Machine Monitor (tradutor)

zTranslation cache

– não necessariamente uma cache

zinterpretação X tradução/otimização

zindependente ou dependente de SO

ztraduzindo para uma mesma

arquitetura ou não

Problemas não banais I:

zCódigo auto-modificável

– programas sendo carregados pelo SO!

zInterrupções precisas

ztradução de endereços

– I/O mapeada em memória – condições de page-fault

zcódigo com check

– checksum ou auto-avaliação de

(6)

Problemas não banais II:

zGerência das traduções

– o que fazer quando Tcache cheia – garbage collector

znecessidades de tempo-real

– garantir previsibilidade da execução – garantir deadlines

zBoot & BIOS

zconfiabilidade: bugs implicam na

troca a camada de SW apenas

Problemas não banais III:

zReuso é mister: 4000 operações para

uma única tradução (Daisy-PowerPC)

zpode fazer otimizações caras,

extraindo ILP

zotimizações especificamente

dinâmicas

zTcaches maiores: mais reuso, mais

(ou menos) potência, menos adaptabilidade a troca de fonte

(7)

Problemas não banais IV:

zCusto em ciclos, memória e potência

retirados da arquitetura alvo

zalta latência (maior quanto mais

otimizações)

zdebug muito difícil, não

determinístico!

Algumas outras vantagens

zExecuta heranças binárias sem fonte

(cobol)

zotimizações sem fronteiras (rotinas,

bibliotecas, chamadas dinâmicas de sistema, etc.)

zcompatibiliade entre VLIWs de

diferentes tamanhos

zmelhoria de arquitetura: troca a

camada de software. Inteligência no SW!

(8)

Daisy (IBM) I:

zMercado de servidores

zfiguras no quadro

zindependete de boas predições de

salto

zILP scheduling com Data e Controle

especulativo

zloop unrolling, alias analisys, load-store telescoping, deadcode

elimination

Daisy (IBM) II:

zExecuta 3-4 instruções

Power-PC/ciclo (benchmark)

z8-16 inst/ciclo VLIW

zgigabytes de memória, 100MB só

(9)

Crusoe (Transmeta)

zFigura do quadro

zEmula x86

z667 MHz crusoe = 500MHz Pentium III

z2-4 instr/ciclo

z64-128MB memória, mas 16 para si

(10)

Dynamo (HP)

zSoftware que executa sobre a

própria arquitetura!

zCamada de otimização

– basicamente gerência de memória – strength reduction, loop invariant code

motion, constant propagation, loop unrolling

zaumenta desempenho de 22%

(alguns specs), 10% na média

LaTTe

zJIT para java

zRoda em SUN (comparação direta)

z2.2 x mais rápida, 3 x mais lenta

zgerência de registradores

(11)

Retargetable binary utilities

zDAC 2002, Univ. Toronto

zobjetivo: gerador de ferramentas

pós-compiler

– baseado no gnu – binutils: 250k linhas!

zLinkers modernos

– dynamic binding, bibliotecas

compartilhadas, otimizações intra-procedural...

– Figura no quadro

Experiência local I:

zassemblador do Risco, 1994!

– Múltiplos bits

– diferentes modos de instrução em fç do

número de bits

– inclusão automática de instruções – manipulação de número variável de

(12)

Experiência local II:

zCompilador do Risco (94-96)

– otimizações do GNU

– otimizações do próprio processador

zMBSG

– classificação do tipo de rotina

• data intensive, control, memory • otimização baseada na classificação

– HW-dedicado, RISCO-WCS, Duplo DP – válido para DLX também

BT e sistemas embarcados I:

zCompatibilidade entre plataformas

zEvolução de plataformas

– no início mono processador,

multi-processador, múltiplas arquiteturas ...

zPor que Dynamo tem tão pouca

eficiência?

zQuão simples devem ser as

arquiteturas? Qual o compromisso entre projeto e reuso?

(13)

BT e sistemas embarcados II:

zQual o overhead aceitável

– memória, potência, área, – latência

zOportunidades para

– uso de lógica reconfigurável

– otimizações de SW-HW para um certo

domínio

zo assembler é o lugar certo para

capturar o modelo de computação?

Plataformas virtuais

Referências

Documentos relacionados

mostravam inequivocamente que fatores ambientais como iluminação e temperatura, tinham efeitos sobre a expressão dos ritmos endógenos, promovendo ajustes através de

A formulação não linear do fluxo de potência ótimo inclui todas as equações de balanço de potência ativa e reativa do sistema elétrico de potência

Procedimento padrão: Retire o ramal do gancho que deseja saber o ramal físico do telefone, disque *9988 e ouça a mensagem de áudio.. 2.0 CAPTURA

Considerando como variáveis de controle somente as tensões em barras de geração e os despachos de potência ativa, e como restrições os limites de carregamento em linhas

A conclusão que se chega é de que os fatores conjunturais externos, altamente positivos para a estrutura exportadora brasileira, estão de certa forma distorcendo ou

Ao observar essa situa¸ c˜ ao, atrav´ es do sistema de estima¸ c˜ ao de estados, o operador do sistema deve intervir adicio- nando as restri¸ c˜ oes de seguran¸ ca ao problema

Modo de uso: aplique em cabelos limpos e húmidos, distribua o produto sobre meios e pontas, massaje e deixe atuar durante 3-5 minutos, depois enxague.. rEstructurE iN trEAtMENt

Contudo, considerando que o indianismo era uma tendência das ideias e do gosto no Brasil do século XIX, as imagens de índios no pedestal da estátua equestre do imperador de