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

Apresentações semelhantes


Apresentação em tema: "Aplicação de Reescrita-Lógica na Especificação de Processadores"— Transcrição da apresentação:

1 Aplicação de Reescrita-Lógica na Especificação de Processadores
Universidade de Brasília Departamento de Ciência da Computação 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)

2 Objetivos Descrever 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 Descrevemos uma metodologia para simular a execucao de programas as- sembler sobre os processadores descritos atraves de sistemas de reescrita de termos. Exemplos destes programas sao: a geracao da sequencia de Fibonacci, a ordenacao de vetores via Quicksort e a funcao de erros de Knuth-Morris-Pratt. Demonstramos como utilizar as caracteristicas do ambiente de programacao em reescrita-logica para simular o nao determinismo do comportamento de componentes de hardware, exemplificando como obter uma simulacao de um processador com suporte a execucao fora de ordem. Mostramos como avaliar diferentes implementacoes de mecanismos para aumentar o desempenho dos processadores atraves da analise de estatisticas sobre a aplicacao das regras de reescrita Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

3 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) Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

4 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

7 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

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

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

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

13 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

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

17 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. Rewriting theory in the context of processor’s specification is used in the way that: terms represent states and rules the transformations beetween these states according to the instruction set of the simulated processor. From an initial state, the applying of these rules simulate the processo’s behaviour Our intent at this point of our work is just to show the visible states of the processor, we’re not yet specifying the states of all its composing components. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

18 Especificação de Processadores usando SRT
Regras para o processador Pb : Rb 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) Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

19 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: Proc(2,Reg(1,1).Reg(2,0).Reg(3,0).Reg(4,0).nil,Inst(1,1:=Loadc(1)).nil)) Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

20 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

22 Especificação de Processadores usando SRT
Conjunto de Regras - Rs 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 RITBF Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

23 Especificação de Processadores usando SRT
Ps-Op Proc(ia,rf, itbs1+ ITB(ia1,k,t:=Op(v1,v2), wf,sf) + itbs2, btb,prog)) => Sys(m,Proc(ia,rf, itbs1 + ITB(ia1,k,t:=v),wf,sf).+ itbs2, btb, prog) Onde v = Op(v1, v2) Ps-Jz-Emite Proc(ia,rf,itbs,btb,prog)) => Sys(m, Proc(pia,rf, itbs + ITB(ia,k,Jz(tv1,tv2), NoWreg,Spec(pia)),itbs), btb,prog) Se prog[ia] = Jz(r1,r2) Onde pia=btb[ia] Here we detail the behaviour of rules from different groups. PsOp is in the Arithmetic Operation and Value Propagtion rules, these rules operate inside the buffer, completing the execution of instructions, propagating values to other slots which are waiting the results or freeing slots that are not necessary anymore. PsOp operates over the buffer executing Op templates that can be executed because the values needes for its execution are already resolved, v1 and v2 are values already fetched from other templates . PsJzIssue is in the instruction issuing group, the only group that increments the buffer size, they operating assigning tags to registers, wich are important to avoid concurrency in the writing in the registers, and append these instruction templates in the end of the buffer, these Jump instruction has the singular characteristic of consulting the btb, since in this moment we have to take a decision from where to resume the execution, so we consult the btb and assign the prediction value to the program counter Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

24 Especificação de Processadores usando SRT
Ps-Jz-DesvioEspeculacaoCorreta Proc(ia,rf,itbs1 + ITB(ia1,k, Jz(0,nia), wf,Spec(pia)) + itbs2, btb,prog)) => Proc(ia,rf,itbs1 + itbs2, btb’, prog) Se pia = nia Finally, PsJumpCorrectSpec, from the branch completion rules, works to verify and correct the speculative actions after the results they depended are actually resolved. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

25 Especificação de Processadores usando SRT
Programa: ... ro:=Op(r1,r2) r3:=Load(r4) r5:=Op(r3,r1) Ps-Op-Emite: Proc(ia,rf,itbs,btb,[...(ia,r5:=Op(r3,r1)...]) Regras de Emissão Proc(ia+1,rf,itbs+ITB(ia,t3:=Op(t2,t1)),btb ,prog) ... t0:= v t1:=Op(v’,v’’) t2:=Load(t’) t3:=Op(t2,t1) Ps-PropagaValorRegistrador: Proc(ia,rf,ITB(t:=v)+itbs,...) Execução no interior do Buffer Proc(ia,rf[r:=v],itbs,...) Memory Register File Valores Propagados Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

26 Especificação de Processadores usando SRT
Programa: ... r3:=Load(r4) r5:=Op(r3,r1) Ps-Jz-DesvioEspeculacaoIncorreta: Proc(ia,rf,itbs1 + ITB(ia,Jz(0,nia),Wreg, Spec(pia))+itbs2, btb, prog) Regras de Emissão Proc(nia,rf,itbs1, btb’, prog) ... Jz(0,nia),Spec(pia) t0:= v t2:=Load(t’) t3:=Op(t2,t1) Execução no buffer Memory Register File Valores Propagados Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

28 Correção das Especificações
RS simula RB RB simula RS: 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, RITBF, que é composto por todas as regras de RS com exceção das regras de emissão de instruções. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

29 Correção das Especificações
RB simula RS: RS Termos do processador especulativo s  t RITBF ! ! Termos do processador básico ITBF( s ) * ITBF( t ) RB Notação ITBF(s) resultado da eliminação do ITBs vazio e do BTB Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

30 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. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

32 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

34 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 So, we use rewriting rules to specify the instruction set, as also to specify methods of implement branching prediction mechanisms, when describing some additional features of more complex processors, describing what to do with some component wich control this feature when a prediction shows correct or incorrect. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

35 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. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

38 Simulação Não Determinística
Uso do construtor dc (don’t 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. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

40 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

41 Avaliando Desempenho de Processadores
Predição Especulativa de Um Bit Vs Dois Bits Tamanho 10 20 30 40 50 1-bit Predição ale ord Correto 51 60 128 225 218 490 324 855 398 1320 Errado 29 34 66 74 106 114 148 154 194 184 2-bit 73 134 258 216 543 323 928 404 1413 21 41 108 61 149 81 188 101 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

42 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

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

46 Detalhamento da Especificação de Processadores
Uma única regra realiza a decodificação das instruções [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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

47 Detalhamento da Especificação de Processadores
Existe ao menos uma regra por instrução para realizar a execução das instruções [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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

48 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 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

51 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

52 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 2002. 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: Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002


Carregar ppt "Aplicação de Reescrita-Lógica na Especificação de Processadores"

Apresentações semelhantes


Anúncios Google