1 / 52

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).

hop
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 programasassemblersobre 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 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. ConceitosTeoria da Reescrita l • Regras dos SRTs Condicionais l => r se C  r C   quando t[ ] t[s ] • 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. * * * * ConceitosTeoria 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. ConceitosArquiteturas 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. ConceitosArquiteturas 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. ConceitosArquiteturas 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. ConceitosArquiteturas 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. ConceitosArquiteturas 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. ConceitosArquiteturas 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 Especificação Especificação 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. Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

  18. 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) Especificação de Processadores usando SRT Regras para o processador Pb : Rb 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: 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)) 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. Regras para Operações Aritméticas e Propagação de Valores Ps-Op Ps- PropagaValor Ps-PropagaValorRegistradores Regras para Tratamento de DesviosPs-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óriaPs-Load Ps-Store Especificação de Processadores usando SRT Conjunto de Regras - Rs 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] 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 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çãoITBF(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. Regras de Reescrita Usadas para especificar o conjunto de instruções Usadas para especificar o método de predição de desvio Simulação Usando Reescrita-Lógica 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. 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. Simulação Usando Reescrita-Lógica RITBF Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

  37. Simulação Usando Reescrita-Lógica 1 2 3 4 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 PsNoJumpWrongSpec Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

  41. Tamanho 10 10 20 20 30 30 40 40 50 50 1-bit Predição ale ord ale ord ale ord ale ord 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 Correto 50 73 134 258 216 543 323 928 404 1413 Errado 30 21 60 41 108 61 149 81 188 101 Avaliando Desempenho de Processadores • Predição Especulativa de Um Bit Vs Dois Bits 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 nilr : REG; Reg(@,@) : ( int int ) register; @.@ : ( register REG ) REG; Rf(@,@,@,@,@,@,@) : (int int int int int int REG ) RF; • Representando o banco de registradores em detalhe Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/UnB – Nov/2002

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

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

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

  49. first one(fetch); first one(decode); first one(execute); Detalhamento da Especificação de Processadores • O Controle da aplicação das regras é efetuado através de uma estratégia 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

More Related