A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aplicação de Reescrita-Lógica na Especificação de Processadores Rinaldi Maya Neto Prof. Orientador: Maurício Ayala – Rincón Banca: Prof. Hermman Haeusler.

Apresentações semelhantes


Apresentação em tema: "Aplicação de Reescrita-Lógica na Especificação de Processadores Rinaldi Maya Neto Prof. Orientador: Maurício Ayala – Rincón Banca: Prof. Hermman Haeusler."— Transcrição da apresentação:

1

2 Aplicação de Reescrita-Lógica na Especificação de Processadores Rinaldi Maya Neto Prof. Orientador: Maurício Ayala – Rincón Banca: Prof. Hermman Haeusler (PUC-RJ) Prof.ª Alba Cristina Melo (UnB) Prof. Ricardo Jacobi (UnB) Universidade de Brasília Departamento de Ciência da Computação

3 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20022 Objetivos assemblerDescrever uma metodologia para simular a execução de programas assembler sobre processadores descritos através de sistemas de reescrita de termos Demonstrar as vantagens da utilização de um ambiente de reescrita-lógica Mostrar como avaliar diferentes implementações de arquiteturas simples

4 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20023 Roteiro Conceitos: –Teoria da Reescrita –Arquiteturas de Computadores Especificação de processadores simples usando Sistemas de Reescrita de Termos (Arvind et al) Demonstração da correção da especificação de processadores (Arvind et al)

5 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20024 Roteiro Utilização de Reescrita-Lógica para simulação de processadores. Avaliação do desempenho de diferentes especificações no ambiente de Reescrita-Lógica Ampliação do horizonte de utilização da Reescrita-Lógica na simulação de processadores

6 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20025 Conceitos Teoria da Reescrita l l => r se C C r t[s ] t[ ] quando Regras dos SRTs Condicionais Forma Normal: Se u * v é irredutível, v é a forma normal

7 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20026 Juntabilidade: u * w * v Terminação: –Não existem cadeias infinitas de redução Confluência Convergência: –Terminância e confluência Conceitos Teoria da Reescrita ** **

8 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20027 Conceitos Arquiteturas de Computadores Processador –Caminho de Dados Memória de Instruções Contador de Programa Unidade Lógica e Aritmética Banco de Registradores

9 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20028 Conceitos Arquiteturas de Computadores Processador –Unidade de Controle Busca Decodificação Execução

10 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/20029 Conceitos Arquiteturas de Computadores Ganho de desempenho – Pipelining –Conceito: aproveitar os componentes ociosos

11 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Conceitos Arquiteturas de Computadores Resolvendo Conflitos –Reordenação/Execução Fora de Ordem Buffer de Reordenação (ITBs)

12 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Conceitos Arquiteturas de Computadores Buffer de Alvo de Desvios (BTB) Execução especulativa : 1- bit

13 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Conceitos Arquiteturas de Computadores Execução especulativa : 2- bit

14 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Aplicando técnicas de reescrita no projeto de hardware [Arvind et al] –Especificação de processadores corretos; –Especificação correta de novas características de processadores Buffers de reordenação Execução especulativa –Outras contribuições : formulação de circuitos digitais lógicos simples; protocolos de cache em sistemas de memórias

15 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Reescrita VHDL/ Verilog Especificação Provar Correção Simulação + Verificação Análise Translação Especificação

16 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Arquitetura AX –Conjunto de Instruções: r:=Loadc(v)r:=Loadpc r:=Op(r 1,r 2 ) Jz(r 1,r 2 ) r:=Load(r 1 ) Store(r 1,r 2 ) Processador Pb –Ciclo único, execução em ordem, sem pipeline

17 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT +1 Register File Int Mem PC ALU Data Mem PROC(ia,rf,prog) SYS(mem,Proc)

18 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT No contexto da especificação de processadores: Termos representam estados e regras de reescrita as transformações entre estados, de acordo com o conjunto de instruções dos processadores. Começando de um estado inicial através da aplicação de regras simula-se o comportamento dos processadores.

19 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Regra para Loadc Proc(ia,rf,prog) Proc(ia+1, rf[r:=v],prog) se prog[ia] = r:=Loadc(v) Regra para Loadpc Proc(ia,rf,prog) Proc(ia+1, rf[r:=ia], prog) se prog[ia] = r:=Loadpc Regra para Op Proc(ia,rf,prog) Proc(ia+1, rf[r:=v], prog) onde v =Op(rf[r1],rf[r2] se prog[ia] = r:=Op(r1,r2) Regra para Jz-Jump Proc(ia,rf,prog) Proc(rf[r2], rf, prog) se prog[ia] = Jz(r1,r2) e rf[r1]=0 Regra para Jz-NoJump Proc(ia,rf,prog) Proc(ia+1, rf, prog) se prog[ia] = Jz(r1,r2) e rf[r1]!=0 Regra para Load Sys(m, Proc(ia,rf,prog)) Sys(m,Proc(ia+1, rf[r:=m[a]], prog)) onde a=rf[r1] se prog[ia] = r:=Load(r1) Regra para Store Sys(m,Proc(ia,rf,prog)) Sys(m',Proc(ia+1, rf, prog)) onde a = rf[r1] se prog[ia] = r:=Store(r1,r2) Regras para o processador Pb : Rb

20 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Termo inicial: Sys(Cell(1,232).Cell(2,4).nil, Proc(1,Reg(1,0).Reg(2,0).Reg(3,0).Reg(4,0).nil,Inst(1,1:=Loadc(1)).nil)) Termo após aplicar Regra para Loadc : Sys(Cell(1,232).Cell(2,4).nil, Proc(2,Reg(1,1).Reg(2,0).Reg(3,0).Reg(4,0).nil,Inst(1,1:=Loadc(1)).nil))

21 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Processador Ps: – Pipelined, execução especulativa e fora de ordem Novos elementos –Buffer de reordenação : ITBs –Buffer para alvo de desvios: BTB

22 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Register File Int Mem PC Data Mem Reorder Buffer ROB ALUs BTB branch pmb mpb Commit Fetch/Decode/Rename Kill Execute Kill/Update BTB PROC(ia,rf,itb,btb,prog) SYS(mem,Proc)

23 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Regras para Operações Aritméticas e Propagação de Valores Ps-Op Ps- PropagaValor Ps-PropagaValorRegistradores Regras para Tratamento de Desvios Ps-Jz-DesvioEspeculacaoCorreta Ps-Jz-DesvioEspeculacaoIncorreta Ps-Jz-SemDesvioEspeculacaoCorreta Ps-Jz-PsSemDesvioEspeculacaoIncorreta Regras de Emissão de Instruções Ps-Loadc-Emite Ps-Loadpc-Emite Ps-Op-Emite Ps-Jz-Emite Ps-Load-Emit Ps-Store-Emite Regras de Acesso à Memória Ps-Load Ps-Store R ITBF Conjunto de Regras - Rs

24 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Ps-Op t:=Op(v 1,v 2 ), Proc(ia,rf, itbs 1 + ITB(ia 1,k,t:=Op(v 1,v 2 ), wf,sf) + itbs 2, btb,prog)) => t:=v) Sys(m,Proc(ia,rf, itbs 1 + ITB(ia1,k,t:=v),wf,sf).+ itbs 2, btb, prog) v 1, v 2 ) Onde v = Op(v 1, v 2 ) Ps-Jz-Emite iaitbs Proc(ia,rf,itbs,btb,prog)) => piaITB(ia,k,Jz(tv 1,tv 2 ) Sys(m, Proc(pia,rf, itbs + ITB(ia,k,Jz(tv 1,tv 2 ), NoWreg,Spec(pia)),itbs), btb,prog) Se prog[ia] = Jz(r1,r2) Onde pia=btb[ia]

25 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Ps-Jz-DesvioEspeculacaoCorreta Jz(0,nia), itbs 1 + itbs 2 Proc(ia,rf,itbs 1 + ITB(ia 1,k, Jz(0,nia), wf,Spec(pia)) + itbs 2, btb,prog)) => Proc(ia,rf,itbs 1 + itbs 2, btb, prog) Se pia = nia Se pia = nia

26 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT t 1 :=Op(v,v)t 2 :=Load(t)t 3 :=Op(t 2,t 1 ) Programa:... r o :=Op(r 1,r 2 ) r 3 :=Load(r 4 ) r 5 :=Op(r 3,r 1 )... Regras de Emissão Execução no interior do Buffer Memory Register File Valores Propagados t 0 := v... Ps-Op-Emite : Proc(ia,rf,itbs,btb,[...(ia,r 5 :=Op(r 3,r 1 )...]) Proc(ia+1,rf,itbs+ITB(ia,t 3 :=Op(t 2,t 1 )),btb,prog) Ps-PropagaValorRegistrador : Proc(ia,rf,ITB(t:=v)+itbs,...) Proc(ia,rf[r:=v],itbs,...)

27 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Especificação de Processadores usando SRT Jz(0,nia),Spec(pia) t 2 :=Load(t)t 3 :=Op(t 2,t 1 ) Programa:... r 3 :=Load(r 4 ) r 5 :=Op(r 3,r 1 )... Regras de Emissão Execução no buffer Memory Register File Valores Propagados t 0 := v... Ps-Jz-DesvioEspeculacaoIncorreta : Proc(ia,rf,itbs 1 + ITB(ia,Jz(0,nia), Wreg, Spec(pia))+itbs 2, btb, prog) Proc( nia,rf,itbs 1, btb, prog)

28 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Correção das Especificações Especificação Provar Correção Simulação + Verificação Análise

29 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Correção das Especificações R S simula R B R B simula R S : Em algum momento durante a execução do processador especulativo, se nenhuma instrução estiver sendo emitida o ITBs logo será esvaziado, já que apenas regras de emissão de instruções podem acrescentar elementos ao ITBs. Assim, podemos definir um outro sistema de reescrita, R ITBF, que é composto por todas as regras de R S com exceção das regras de emissão de instruções.R ITBF

30 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Correção das Especificações R B simula R S : R S Termos do processador especulativos t R ITBF ! ! Termos do processador básico ITBF( s ) * ITBF( t ) R B Notação ITBF(s) resultado da eliminação do ITBs vazio e do BTB

31 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica Filosofia de Reescrita-Lógica: combinação das possibilidades da reescrita e de estratégias lógicas para controlar a aplicação de regras de reescrita. Ambientes de programação bem conhecidos como: –Maude [J. Meseguer, SRI Int. CSL, Menlo Park CA] –ELAN [C. kirchner, LORIA/INRIA, Nancy France] and –Cafe-OBJ [JAIST, Japan] are available.

32 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação + Verificação Análise Simulação + Verificação Simulação + Verificação Simulação Usando Reescrita-Lógica Reescrita VHDL/ Verilog -Lógica VHDL/ Verilog Especificação Provar Correção

33 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica Simulação e avaliação de desempenho usando um ambiente de reescrita-lógica Lógica + reescrita nos permite: Discriminar componentes arquiteturais Execução de descrições de programas assembly Controlar o comportamento de componentes do processador

34 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica Lógica e estratégias Especificação Baseada em Reescrita Super usuário Programador Sistema Computacional Motor de Reescrita Estado Inicial : Código Assembly e Estado corrente da memória Consulta Resultado Estado Final : Estado do Processador após execução Instruções, predições Controle dos BUFFERS Tranformações

35 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica Regras de Reescrita Usadas para especificar o conjunto de instruções Usadas para especificar o método de predição de desvio

36 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica Reescrita-lógica/estratégias Controle Como aplicar regras. Características como tamanho e forma de trabalhar com o ITBs podem ser determinados através de estratégias.

37 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica select one( {issue rules} ); select one( {issue rules} {id} ); repeat * n-1 select one( {issue rules} {id} ); normalize( select one( {non issue rules} ) Controle do tamanho do ITBs usando estratégias. R ITBF

38 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Usando Reescrita-Lógica Regras de Emissão ITB 1234 Normalizar Op Aritmética Acesso a Memória Propaga Valores Propaga Valores p/ Reg

39 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Simulação Não Determinística Uso do construtor dc ( dont know choose) –retorna todas as reduções possíveis Desempenho da simulação é inferior porém os resultados são mais próximos da situação real.

40 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Análise Simulação + Verificação Avaliando Desempenho de Processadores Especificação Provar Correção

41 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Avaliando Desempenho de Processadores Estatísticas do ELAN número de regras aplicadas Analizando o desempenho de implementações de processadores. Exemplo: Número de predições corretas e incorretas quanto executando sobre mesmo processador com diferentes mecanismos de especulação Contando o número de aplicações das regras: PsJumpCorrectSpec PsNoJumpWrongSpec PsJumpWrongSpec PsNoJumpWrongSpec

42 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Avaliando Desempenho de Processadores Predição Especulativa de Um Bit Vs Dois Bits Tamanho bitPrediçãoaleordaleordaleordaleordaleord Correto Errado bitCorreto Errado

43 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores Alcançar outros níveis de detalhe Simulação das fases de execução de uma instrução: busca-decodificação-execução

44 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores

45 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores nilr : REG; : ( int int ) register; : ( register REG ) REG; : (int int int int int int REG ) RF; Representando o banco de registradores em detalhe

46 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores [Fetch] Proc(ia,Im(a,inst,cm),rf,alu,dm) => Proc(ia+1,Im(ia,FetchInst(ia,cm),cm),rf,alu,dm) end Uma única regra realiza a busca das instruções

47 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores [Decode] Proc(ia,Im(a,inst,cm),Rf(oldvalue1,oldvalue2,oldvalue3,oldvalue4, oldvalue5,oldvalue6,reg),alu,dm) => Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue, secondvalue,data,reg),alu,dm) where firstop:=()DecodeOp(1,inst,a) where secondop:=()DecodeOp(2,inst,a) where regdest:=()DecodeOp(3,inst,a) where firstvalue:=()ValueOfReg(firstop,reg) where secondvalue:=()ValueOfReg(secondop,reg) where data:=()DecodeOp(4,inst,a) end Uma única regra realiza a decodificação das instruções

48 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores [Execute] Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue, secondvalue,data,reg),alu,dm) => Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue, secondvalue, data,Ins(reg,regdest,data)),alu,dm) if isinstLoadc(inst) end Existe ao menos uma regra por instrução para realizar a execução das instruções

49 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores [Execute] Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue, secondvalue,data,reg),Alu(oper,op1,op2,opout),dm) => Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue, secondvalue, data,Ins(reg,regdest,opresult)),Alu(1,firstvalue,secondvalue,opresult),dm) where opresult:=()op(1,firstvalue,secondvalue) if isinstAdd(inst) end [Execute] Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue, secondvalue,data,reg),alu,dm) => Proc(ia,Im(a,inst,cm),Rf(firstop,secondop,regdest,firstvalue,secondvalue, data,Ins(reg,regdest,data)),alu,dm) if isinstLoadpc(inst) end

50 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Detalhamento da Especificação de Processadores first one(fetch); first one(decode); first one(execute); O Controle da aplicação das regras é efetuado através de uma estratégia

51 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Análise Simulação + Verificação Conclusões Especificação Provar Correção Simulação + Verificação Análise Reescrita VHDL/ Verilog Reescrita-Lógica Arvind et al Este Trabalho

52 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Conclusões Apontamos como simular um comportamento não determinístico na simulação Mostramos como descrever arquiteturas com um maior grau de precisão usando reescrita- lógica

53 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/ Divulgação M. Ayala-Rincón, R. Maya Neto, R. P. Jacobi, C. Llanos, and R. Hartenstein. Applying ELAN Strategies in Simulating Processors over Simple Architectures. In 2nd Int. Workshop on Reduction Strategies in Rewriting 1and Programming - WRS'02, pages , Jul M. Ayala-Rincón, R. Hartenstein, R. P. Jacobi and C. Llanos, Designing Arithmetic Digital Circuits via Rewriting-Logic, M. Ayala-Rincón, R. Maya Neto, R. P. Jacobi, C. Llanos and R. Hartenstein, Architectural Specification and Simulation Through Rewriting-Logic, Protótipos:


Carregar ppt "Aplicação de Reescrita-Lógica na Especificação de Processadores Rinaldi Maya Neto Prof. Orientador: Maurício Ayala – Rincón Banca: Prof. Hermman Haeusler."

Apresentações semelhantes


Anúncios Google