Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens...

25
ADLs Linguagens de Descrição de Arquitetura Aula 04

Transcript of Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens...

Page 1: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

ADLs

Linguagens de Descrição de Arquitetura

Aula 04

Page 2: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

ADL (Architecture Description Language)

� Linguagem de Descrição de Arquitetura� Usadas para especificar arquiteturas programáveis

� Podem ser usadas para:� Especificar novas arquiteturas� Exploração de Arquitetura

� Ajustar a arquitetura visando obter algum aspecto de melhoria para um conjunto de aplicações

� Gerar protótipos de hardware

Page 3: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Características

� Algumas ADLs:� ArchC, Expression, LISA, nML, MIMOLA, ISDL.

� Vantagens� Poder especificar uma arquitetura e então simulá-

la, melhorá-la, validá-la ANTES de construir o hardware.� Economia de tempo� Economia de custos de criação da arquitetura

� Usar módulos já desenvolvidos por outras pessoas e/ou empresas� Tempo gasto na especificação diminui

Page 4: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Classificação das ADLs

� ADLs Contemporâneas

Page 5: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Aplicações

MIPS

Economia de 20% de energia

Análise Energia

Sparcv8

MIPS

Sparc

djpeg

32mJ

40mJ

Simuladores

ADLsModelos

CAD

Page 6: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Aplicações

MIPS

Economia de 40% de energia

Análise Energia

djpeg

32mJ

19mJMIPS 1 nível

2 níveis

Simuladores

ADLsModelos

CAD

Page 7: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Nível de Abstração

Mips.ccache.c

MEM.c

Simulador.c

• Desenvolver sistemas complexos neste nível pode levar muito tempo

board

Abstração

(-)

(+)

• Rapidez nas análises

• Análise prévia da arquitetura

• Maiores reduções de energia

Altos níveis de abstração proporcionam:

– Construção de sistema mais complexos

µPInstr

MEMDado

Page 8: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Comparação entre ADLs

Page 9: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Simuladores de Arquitetura

Page 10: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

ArchC

� Linguagem de descrição de arquitetura� Open-Source� Baseada em SystemC� Desenvolvido pela UNICAMP

� Vários trabalhos de cooperação� Processador� Memória Cache� Modelo de Desempenho, energia, etc...

� www.archc.org

Page 11: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

ArchC

� Objetivo preliminar� Permitir que os usuários explorem uma

arquitetura nova� Gerem novas ferramentas de software tais

como: assemblers, simuladores, etc.

� Dividido� Descrição dos elementos da arquitetura

(AC_ARCH)� Descrição da arquitetura do conjunto de

instruções (AC_ISA)

Page 12: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Estrutura ArchC

� AC_ARCH� Descreve todos os recursos da arquitetura,

elementos ou módulos tais como:� Elementos de memória � Estrutura pipeline� Processador

� AC_ISA� Descreve todos os detalhes referentes às

instruções, como:� Nomes� Formatos Tamanhos� Comportamento de cada instrução� Informações necessárias para decodificar as

instruções

Page 13: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Fluxo Projeto

� Com base nas descrições anteriores, ArchC pode gerar um simulador de comportamento escrito em SystemC para a arquitetura em questão.

Page 14: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Descrição do ARCH

AC_ARCH(sparcv8 ){ac_mem MEM:5M;ac_icache IC ( "2w" , 256 , 4 , "LRU" , "wt" , "w al" );ac_dcache DM ( "2w" , 256 , 4 , "LRU" , "wt" , "w al" );ac_regbank RG:8;ac_regbank RB:256;ac_reg PSR;ac_reg Y;ac_wordsize 32;ARCH_CTOR(sparcv8){

ac_isa("sparcv8_isa.ac");set_endian("big");IC.bindsTo( MEM );DM.bindsTo( MEM );

};};

2w = two way associative (dm, 2w, 4w, ... , fully )256 = quantidade de linhas da cache 4 = quantidade de palavras por linhaLRU = Estratégia de substituição (LRU,random)wt = Política de escrita (wt, wb)wal = esquema de escrita (war, wal)

Sparcv8

IC

DM

MEM

Page 15: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Descrição do ISA

AC_ISA(sparcv8){

ac_format Type_F1 = "%op:2 %disp30:30";ac_format Type_F2A = "%op:2 %rd:5 %op2:3 %imm22:22";ac_format Type_F2B = "%op:2 %an:1 %cond:4 %op2:3 %disp22:22:s";ac_format Type_F3A = "%op:2 %rd:5 %op3:6 %rs1:5 %is:1 %asi:8 %rs2:5";ac_format Type_F3B = "%op:2 %rd:5 %op3:6 %rs1:5 %is:1 %simm13:13:s";

ac_instr<Type_F1> call;ac_instr<Type_F2A> sethi;ac_instr<Type_F2B> ba, bn, bne, be, bg, ble, bge, bl, bgu, bleu, bcc, bcs; ac_instr<Type_F3A> ldsb_reg, ldsh_reg, ldub_reg, lduh_reg, ld_reg, ldd_reg;ac_instr<Type_F3B> stb_imm, sth_imm, st_imm, std_imm, ldstub_imm, swap_imm;

ISA_CTOR(sparcv8){ldsb_reg.set_asm("ldsb %rd, %rs1, %rs2");ldsb_reg.set_decoder(op=0x03, op3=0x09, is=0x00);ldsh_reg.set_asm("ldsh %rd, %rs1, %rs2");ldsh_reg.set_decoder(op=0x03, op3=0x0A, is=0x00);ldub_reg.set_asm("ldub %rd, %rs1, %rs2");ldub_reg.set_decoder(op=0x03, op3=0x01, is=0x00);

};

(sparcv8_isa.ac)

void ac_behavior( call ){

dprintf("call 0x%x\n", ac_pc+(disp30<<2));writeReg(15, ac_pc); //saves ac_pc in %o7(or %r15)update_pc(1,1,1,0, ac_pc+(disp30<<2));

};

(sparcv8-isa.cpp)

Page 16: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

ArchC

� Uso do ArchC� Site do ArchC (www.archc.org)

� Linguagem� Benchmarks� Documentação

� Componentes modelados� MIPS, SPARC, 8051� Memória cache, Memória principal

Page 17: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Simulação ArchCAC_ARCH(sparcv8 ){

ac_mem MEM:5M;ac_icache IC ( "2w" , 256 , 4 , "LRU" , "wt" , "wal" );ac_dcache DM ( "2w" , 256 , 4 , "LRU" , "wt" , "wal" );ac_regbank RG:8;ac_regbank RB:256;ac_reg PSR;ac_reg Y;ac_wordsize 32;ARCH_CTOR(sparcv8){

ac_isa("sparcv8_isa.ac");set_endian("big");IC.bindsTo( MEM );DM.bindsTo( MEM );

};};

Page 18: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Platune

� Ferramenta que habilita o projetista analisar uma arquitetura específica (SoC) para uma dada aplicação.

� Através do ajuste dos parâmetros tenta encontrar valores adequados de desempenho e energia.

� É restrita a uma arquitetura específica

Page 19: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Platune

Page 20: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Platune

Page 21: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Resumo

� ArchC� Ajuste de arquitetura à aplicação� Arquitetura configurável� SoC Design

� Platune� Ajuste de arquitetura à aplicação� Arquitetura fixa� SoC Design

EXPLORAÇÃO DE ARQUITETURA

Page 22: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Exploração de Arquitetura

� Uso de ADLs/Simuladores para explorar arquiteturas

Tamanho cache, Tamanho da Linha, Associatividade,....

MIPS, SPARCv8, 8051, ARM,...

Qual a melhor arquitetura ???

Page 23: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Exemplo (Hierarquia memória)

Pareto- Optimal

Page 24: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Exemplo (Hierarquia memória)

� Exploração com hierarquias diferentes� Para 1 nível : # dezenas de configurações� Para 2 níveis: # centenas a milhares de configurações

� Necessidade de Heurísticas eficientes

Benchmark: bitcount_small (Mibench)

Melhor energia para o 1o nível

Pontos não explorados no 1o nível

Pode-se encontrar boas configurações a partir de hierarquia de dois níveis fazendo

uso de boas heurísticas

Page 25: Linguagens de Descrição de Arquitetura Aula 04agsf/disciplinas/tecnicas_otimizacao/...Linguagens de Descrição de Arquitetura Aula 04 ADL (Architecture Description Language) Linguagem

Exemplo (Hierarquia memória)� Métodos de Exploração

� Platune (exaustiva) � Zhang (heurística 1 nível)� Viana (Single-Pass Simulation)� Silva-Filho (heurística TECH-CYCLES – 2 níveis)

µPDM1

MEM

IC1

µPDM1 DM2

MEM

IC1 IC2

• Simulação exaustiva

• Apenas para um nível de cache

• Simulação baseado em heurística

• Apenas para um nível de cache

• Simulação exaustiva

• Apenas uma execução (sim-Cheetah)

• Apenas para um nível de cache

• Simulação baseada em heurística

• Para dois níveis de cache