1 / 62

Escalação Dinâmica Algorítmo de Tomasulo

Escalação Dinâmica Algorítmo de Tomasulo. Revisão: Três Partes do Scoreboard. 1.Status da instrução — em qual dos 4 passos a instrução se encontra 2. Status da unidade funcional — indica o estado da unidade funcional (FU), através dos campos: Busy — indica se a unidade está ocupada ou não

Download Presentation

Escalação Dinâmica Algorítmo de Tomasulo

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. Escalação DinâmicaAlgorítmo de Tomasulo

  2. Revisão: Três Partes do Scoreboard 1.Status da instrução— em qual dos 4 passos a instrução se encontra 2. Status da unidade funcional— indica o estado da unidade funcional (FU), através dos campos: Busy — indica se a unidade está ocupada ou não Op — operação a ser realizada pela unidade (ex., + ou –) Fi — registrador de destino Fj, Fk — número dos registradores fonte Qj, Qk — unidades funcionais produzindo dados para Fj, Fk Rj, Rk — Flags indicando se Fj, Fk estão prontos 3. Status do registrador destino— Indica qual unidade funcional irá escrever em cada registrador.

  3. Exemplo de Scoreboard Ciclo 3 Emite MULT? Não, espera emissão do segundo LD

  4. Exemplo de Scoreboard Ciclo 9 • Lê operandos para MULT & SUBD? Emite ADDD?

  5. Exemplo de Scoreboard Ciclo 17 Escreve resultado de ADDD? Não, perigo WAR

  6. Exemplo de Scoreboard Ciclo 62 • Emissão em ordem; Leitura e execução fora de ordem; escrita fora de ordem, respeitando WAR

  7. Scoreboard - Sumário • Limitações do scoreboard do CDC 6600 • Sem antecipação (primeiro escreve no registrador, depois lê) para RAW • Limitado a instruções num bloco básico (pequena janela) • Número limitado de unidades funcionais (conflito estrutural) • Espera pela dependência WAR para escrita • Previne a dependência WAW na emissão

  8. Um outro Algoritmo para Escalação Dinâmica: Algorítmo de Tomasulo • Usado no IBM 360/91 por volta de 3 anos após CDC 6600 (1966) • Alto Desempenho sem compiladores especiais • Porquê estudar? Devido ao uso no Alpha 21264, HP 8000, MIPS 10000, Pentium II, PowerPC 604, …

  9. Algoritmo Tomasulo • Controle & buffers distribuídos nas unidades funcionais (UFs) • Buffers de UFs chamados estações de reserva (reservation station- RS), contem operandos pendentes

  10. Algoritmo Tomasulo • Operandos após serem processados pelas UFs são difundidos diretamente para todas as RSs que esperam dados, pelo CDB (Common Data Bus) (no scoreboard os resultados eram escritos nos registradores para depois serem lidos) • Loads e Stores tratados como UFs com RSs • Instruções de inteiros podem ser executadas após desvios (branches) UFs para Loads e Stores

  11. Renomeação de Registradores • Registradores são renomeados nas estações de reserva • Evita conflitos WAR, WAW DIV.D F0, F2, F4 ADD.D F6, F0, F8 S.D F6, 0(R1) SUB.D F8, F10, F14 MUL.D F6, F10, F8 RENOMEAÇÃO: DIV.D F0, F2, F4 ADD.D S, F0, F8 S.D S, 0(R1) SUB.D T, F10, F14 MUL.D F6, F10, T

  12. Organização de Tomasulo

  13. Componentes da Estação de Reserva Op—operação na unidade (ex., add ou sub) Vj, Vk—valores dos operandos fonte • Os buffers de armazenamento (store) tem um campo do dado a ser armazenado e um campo de endereço • Os buffers de carga (load) tem apenas um campo de endereço Qj, Qk— unidades funcionais/estação de reserva produzindo os valores dos registradores fonte • Os buffers de armazenamento tem somente Qi para indicar a unidade funcional/estação de reserva produzindo o dado Busy—indica se a estação de reserva está ocupada Status de resultado do registrador— Indica qual unidade funcional irá escrever em cada registrador.

  14. Os Três Estágios do Algoritmo de Tomasulo 1.Emissão — a instrução da fila de instruções é emitida com os nomes dos operandos renomeados, se tiver estação de reserva disponível 2. Execução— realiza a execução da operação (EX) se ambos os operandos estão prontos; senão, aguarda o Bus de Dados Comum pelo resultado 3. Escrita do resultado— conclui a instrução (WB) • escreve no Bus de Dados Comum para que todas as unidades à espera possam ler o resultado: Bus de Dados Normal: dado + destino (“go to” bus) Bus de Dados Comum: dado + fonte (“come from” bus) • 64 bits de dados + 4 bits de endereço fonte da Unidade Funcional • marca a estação de reserva da instrução concluída como disponível

  15. LD – 2 ciclos SUBD – 2 ciclos ADDD – 2 ciclos MULT – 10 ciclos DIVD – 40 ciclos Ex: Tomasulo Ciclo 0

  16. Ex: Tomasulo Ciclo 1 Yes

  17. Ex: Tomasulo Ciclo 2 Nota: pode ter múltiplos loads em operação

  18. Ex: Tomasulo Ciclo 3 • Os nomes dos registradores são removidos (“renomeados”) nas estações de reserva; MULT emitido • Load1 completando:quem está esperando pelo Load1?

  19. Ex: Tomasulo Ciclo 4 • Load2 completando: quem espera por F2?

  20. Ex: Tomasulo Ciclo 5

  21. Ex: Tomasulo Ciclo 6 • Emite ADDD

  22. Ex: Tomasulo Ciclo 7 • Add1 completando: quem espera pelo resultado?

  23. Ex: Tomasulo Ciclo 8

  24. Ex: Tomasulo Ciclo 9

  25. Ex: Tomasulo Ciclo 10 • Add2 completando: quem espera pelo resultado?

  26. Ex: Tomasulo Ciclo 11 • Escreve resultado de ADDD

  27. Ex: Tomasulo Ciclo 12 • Todas as instruções rápidas já completadas

  28. Ex: Tomasulo Ciclo 13

  29. Ex: Tomasulo Ciclo 14

  30. Ex: Tomasulo Ciclo 15 • Mult1 completando: quem espera pelo resultado?

  31. Ex: Tomasulo Ciclo 16 • Falta apenas a divisão

  32. Ex: Tomasulo Ciclo 55

  33. Ex: Tomasulo Ciclo 56 • Mult 2 completando: quem espera pelo resultado?

  34. Ex: Tomasulo Ciclo 57 • Emissão em ordem, execução e finalização fora de ordem

  35. Comparação com Scoreboard Ciclo 62 • Porque scoreboard é mais demorado?

  36. Tomasulo v. Scoreboard(IBM 360/91 v. CDC 6600) (6 load, 3 store, 3 +, 2 x/÷) (1 load/store, 1 + , 2 x, 1 ÷) tamanho da janela: 14 instruções 5 instruções Sem emissão no conflito estrutural idem WAR: por renomeação pára a escrita WAW: por renomeação pára a emissão Difunde resultados de UFs write/read de registradores Controle: estações de reserva scoreboard

  37. Desvantagens do Tomasulo • Complexidade • Muitos armazenamentos associativos (Bus de Dados Comum) a alta velocidade • Desempenho limitado pelo Bus de Dados Comum

  38. Exemplo de Loop em Tomasulo Loop: LD F0 0 R1 MULTD F4 F0 F2 SD F4 0 R1 SUBI R1 R1 #8 BNEZ R1 Loop • Assumir que Multiplicação leva 4 clocks • Assumir que o primeiro load leva 8 clocks (miss no cache), o segundo load leva 4 clocks (hit no cache) e store leva 4 clocks. • Para ser claro, serão mostrados clocks para SUBI e BNEZ

  39. Loop Ciclo 0

  40. Loop Ciclo 1

  41. Loop Ciclo 2

  42. Loop Ciclo 3

  43. Loop Ciclo 4 Execução de SUBI

  44. Loop Ciclo 5 Execução de BNEZ

  45. Loop Ciclo 6 • F0 não vê resultado de Load1

  46. Loop Ciclo 7

  47. Loop Ciclo 8

  48. Loop Ciclo 9 • Load1 completando: quem espera o resultado?

  49. Loop Ciclo 10 • Load2 completando: quem espera o resultado?

  50. Loop Ciclo 11

More Related