Universidade de Braslia Departamento de Cincia da Computao
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
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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 2
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)de Reescrita-Lógica na Especificação de Processadores Aplicação 3 CIC/Un. B – Nov/2002
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/Un. B – Nov/2002 4
Conceitos Teoria da Reescrita • Regras dos SRTs Condicionais l => r se C t[s l ] t[r ] quando C • Forma Normal: Se u *v é irredutível, v é a forma normal Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 5
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/Un. B – Nov/2002 6
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/Un. B – Nov/2002 7
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/Un. B – Nov/2002 8
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/Un. B – Nov/2002 9
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/Un. B – Nov/2002 10
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/Un. B – Nov/2002 11
Conceitos Arquiteturas de Computadores • Execução especulativa : 2 - bit Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 12
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/Un. B – Nov/2002 13
Especificação de Processadores usando SRT Especificação Reescrita Provar Correção VHDL/ Verilog Translação Simulação + Verificação Análise Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 14
Especificação de Processadores usando SRT • Arquitetura AX – Conjunto de Instruções: r: =Loadc(v) r: =Op(r 1, r 2) r: =Load(r 1) r: =Loadpc Jz(r 1, r 2) Store(r 1, r 2) • Processador Pb – Ciclo único, execução em ordem, sem pipeline Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 15
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/Un. B – Nov/2002 16
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. Aplicação Reescrita-Lógica na Especificação dos de Processadores 17 se o decomportamento CIC/Un. B – Nov/2002
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[r 1], rf[r 2] se prog[ia] = r: =Op(r 1, r 2) Regra para Jz-Jump Proc(ia, rf, prog) Proc(rf[r 2], rf, prog) se prog[ia] = Jz(r 1, r 2) e rf[r 1]=0 Regra para Jz-No. Jump Proc(ia, rf, prog) Proc(ia+1, rf, prog) se prog[ia] = Jz(r 1, r 2) e rf[r 1]!=0 Regra para Load Sys(m, Proc(ia, rf, prog)) Sys(m, Proc(ia+1, rf[r: =m[a]], prog)) onde a=rf[r 1] se prog[ia] = r: =Load(r 1) Regra para Store Sys(m, Proc(ia, rf, prog)) Sys(m', Proc(ia+1, rf, prog)) onde a = rf[r 1] se prog[ia] = r: =Store(r 1, r 2) Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 18
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/Un. B – Nov/2002 19
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/Un. B – Nov/2002 20
Especificação de Processadores usando SRT SYS(mem, Proc) Kill/Update BTB Execut e Fetch/Decode/Rename ALUs Kill BTB PC Int Mem branch Commit Reorder Buffer ROB Register File pmb Data Mem mpb PROC(ia, rf, itb, btb, prog) Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 21
Especificação de Processadores usando SRT Conjunto de Regras - Rs Regras para Operações Aritméticas e Propagação de Valores Regras de Emissão de Instruções Ps-Op Ps- Propaga. Valor Ps-Propaga. Valor. Registradores Ps-Loadc-Emite Ps-Loadpc-Emite Ps-Op-Emite Ps-Jz-Emite Ps-Load-Emit RITBF Regras para Tratamento de Desvios Ps-Store-Emite Ps-Jz-Desvio. Especulacao. Correta Ps-Jz-Desvio. Especulacao. Incorreta Ps-Jz-Sem. Desvio. Especulacao. Correta Regras de Acesso à Memória Ps-Load Ps-Jz. Ps-Store Ps. Sem. Desvio. Especulacao. Incorreta Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 22
Especificação de Processadores usando SRT Ps-Op Proc(ia, rf, itbs 1+ ITB(ia 1, k, t: =Op(v 1, v 2), wf, sf) + itbs 2, btb, prog)) => Sys(m, Proc(ia, rf, itbs 1 + ITB(ia 1, k, t: =v), wf, sf). + itbs 2, btb, prog) Onde v = Op(v 1, v 2) Ps-Jz-Emite Proc(ia, rf, => ia itbs, btb, prog)) itbs Sys(m, Proc(pia, rf, pia itbs + ITB(ia, k, Jz(tv 1, tv 2), No. Wreg, Spec(pia)), itbs), btb, prog) Se prog[ia] = Jz(r 1, r 2) Onde pia=btb[ia] Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 23
Especificação de Processadores usando SRT Ps-Jz-Desvio. Especulacao. Correta 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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 24
Especificação de Processadores usando SRT Programa: . . . ro: =Op(r 1, r 2) r 3: =Load(r 4) r 5: =Op(r 3, r 1). . . Ps-Op-Emite: Proc(ia, rf, itbs, btb, [. . . (ia, r 5: =Op(r 3, r 1). . . ]) Regras de Emissão t 0: = v Ps-Propaga. Valor. Registrador: Proc(ia, rf, ITB(t: =v)+itbs, . . . ) Proc(ia, rf[r: =v], itbs, . . . ) Memory Proc(ia+1, rf, itbs+ITB(ia, t 3: =Op(t 2, t 1)), bt , prog) t 1: =Op(v’, v’’) t 2: =Load(t’) . . . t 3: =Op(t 2, t 1) Execução no interior do Buffer Valores Propagados Register File Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 25
Especificação de Processadores usando SRT Programa: . . . r 3: =Load(r 4) r 5: =Op(r 3, r 1). . . Ps-Jz-Desvio. Especulacao. Incorreta: Proc(ia, rf, itbs 1 + ITB(ia, Jz(0, nia), Wreg, Spec(pia))+itbs 2, btb, prog) Regras de Emissão Proc(nia, rf, itbs 1, btb’, prog) t 0: = v Jz(0, nia), Spec(pia) t 2: =Load(t’) . . . t 3: =Op(t 2, t 1) Execução no buffer Memory Valores Propagados Register File Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 26
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/Un. B – Nov/2002 27
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/Un. B – Nov/2002 28
Correção das Especificações RB simula RS: RS Termos do processador especulativo RITBF Termos do processador básico t) s ! * ITBF( s ) t ! ITBF( RB Notação BTB ITBF(s) resultado da eliminação do ITBs vazio e do Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 29
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/Un. B – Nov/2002 30
Simulação Usando Reescrita. Lógica Especificação Reescrita -Lógica Provar Correção VHDL/ Verilog Simulação + Verificação Análise Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 31
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/Un. B – Nov/2002 32
Simulação Usando Reescrita. Lógica Estado Inicial: Código Assembly e Estado corrente da memória Controle dos BUFFERS Lógica e estratégias Super usuário Consulta Instruções, predições Tranformações Motor de Reescrita Sistema Computacional Especificação Baseada em Reescrita Programador Resultado Estado Final: Estado do Processador após execução Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 33
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 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 34
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/Un. B – Nov/2002 35
Simulação Usando Reescrita. Lógica select one( {issue rules} ); select one( {issue rules} {id} ); repeat * select one( {issue rules} {id} ); normalize( select one( {non issue rules} ) n-1 Controle do tamanho do ITBs usando estratégias. RITBF Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 36
Simulação Usando Reescrita. Lógica Regras de Emissão 1 4 3 2 ITB Normalizar ITB ITB Op Aritmética Acesso a Memória Propaga Valores p/ Reg Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 37
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/Un. B – Nov/2002 38
Avaliando Desempenho de Processadores Especificação Provar Correção Simulação + Verificação Análise Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 39
Avaliando Desempenho de Processadores Estatísticas do ELAN aplicadas número de regras Analizando o desempenho de implementações de processadores. Contando o número de aplicações das regras: Ps. Jump. Correct. Spec Ps. No. Jump. Wrong. Spec Exemplo: Número de predições corretas e incorretas quanto executando sobre mesmo processador com diferentes mecanismos de especulação Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 40
Avaliando Desempenho de Processadores • Predição Especulativa de Um Bit Vs Dois Bits 1 -bit 2 -bit Taman ho 10 10 20 20 30 30 40 40 50 50 Prediçã o ale ord ale ord Correto 51 60 128 225 218 490 324 855 398 132 0 Errado 29 34 66 74 106 114 148 154 194 184 Correto 50 73 134 258 216 543 323 928 404 141 3 Errado 30 21 60 41 108 61 149 81 188 101 Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 41
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/Un. B – Nov/2002 42
Detalhamento da Especificação de Processadores Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 43
Detalhamento da Especificação de Processadores • Representando o banco de registradores em detalhe nilr : REG; Reg(@, @) : ( int ) register; @. @ : ( register REG ) REG; Rf(@, @, @, @) : (int int int REG ) RF; Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 44
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, Fetch. Inst(ia, cm), rf, alu, dm) end Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 45
Detalhamento da Especificação de Processadores • Uma única regra realiza a decodificação das instruções [Decode] Proc(ia, Im(a, inst, cm), Rf(oldvalue 1, oldvalue 2, oldvalue 3, oldvalue 4, oldvalue 5, oldvalue 6, reg), alu, dm) => Proc(ia, Im(a, inst, cm), Rf(firstop, secondop, regdest, firstvalue, secondvalue, data, reg), alu, dm) where firstop: =()Decode. Op(1, inst, a) where secondop: =()Decode. Op(2, inst, a) where regdest: =()Decode. Op(3, inst, a) where firstvalue: =()Value. Of. Reg(firstop, reg) where secondvalue: =()Value. Of. Reg(secondop, reg) where data: =()Decode. Op(4, inst, a) end Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 46
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 isinst. Loadc(inst) end Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – 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(oper, op 1, op 2, 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 isinst. Add(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 isinst. Loadpc(inst) end Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 48
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/Un. B – Nov/2002 49
Conclusões Arvind et al Este Trabalho Especificação Reescrita Provar Correção Reescrita-Lógica VHDL/ Verilog Simulação + Verificação Análise Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 50
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/Un. B – Nov/2002 51
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 2 nd Int. Workshop on Reduction Strategies in Rewriting 1 and Programming WRS'02, pages 127 -141, Jul 2002. • M. Ayala-Rincón, R. Hartenstein, R. P. Jacobi and C. Llanos, Designing Arithmetic Digital Circuits via Rewriting-Logic, http: //www. mat. unb. br/~ayala/publications. html • M. Ayala-Rincón, R. Maya Neto, R. P. Jacobi, C. Llanos and R. Hartenstein, Architectural Specification and Simulation Through Rewriting-Logic, http: //www. mat. unb. br/~ayala/publications. html • Protótipos: http: //www. mat. unb. br/~ayala/Tcgroup Aplicação de Reescrita-Lógica na Especificação de Processadores CIC/Un. B – Nov/2002 52
- Slides: 52