Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tópico 10: Representação HDL, exceções e microarquitetura avançada Prof. Jhonattan Cordoba Ramirez Escola de Engenharia Universidade Federal de Minas Gerais (UFMG) ELT123 - Arquitetura e Organização de Computadores Representação HDL • Processador MIPS de ciclo único • Caminho de dados • Controlador • Memórias externas • Código HDL • Caminho de dados • Códigos genéricos como os registros e multiplexores, para qualquer microarquitetura • Testbench e sua interação com memórias externas. Exceções Uma exceção é a forma como uma chamada de função sem marcação, salta para um novo endereço. Exceções podem ser causadas por hardware ou software: • Causadas por: • Hardware, também chamada de interrupção. • Software, também chamadas de traps ou armadilhas. • Quando exceções ocorrem, o processador: • É escrito um código indicando a origem da exceção (registro Cause). Adicionalmente, é armazenado o valor do PC (registro EPC - Exception Program Counter). (Coprocessador 0) • Pula para a função de tratamento de exceção. (No MIPS, a função de tratamento de exceção está sempre localizada em 0x80000180) • Volta ao programa. Exceções Motivo Interrupção de hardware 0x00000000 System call 0x00000020 Breakpoint (Divide por 0) 0x00000024 Instrução indefinida 0x00000028 Overflow aritmético 0x00000030 Exceções Exceções Exceções IorD = 0 AluSrcA = 0 ALUSrcB = 01 ALUOp = 00 PCSrc = 00 IRWrite PCWrite Reset S0: Buscar S1: Decodificar ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00 S2: Endereço de Memória RegDst = 0 MemtoReg = 1 RegWrite S4: Escrita no Registrador IorD = 1 MemtoWrite S5: Escrita na Memória IorD = 1 S3: Leitura na Memoria RegDst = 1 MemtoReg = 0 RegWrite S7: Escrita no Registrador ALUSrcA = 1 ALUSrcB = 00 ALUOp = 10 S6: Executar Op = Tipo R ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCSrc = 01 Branch S8: Branch Op = beq RegDst = 0 MemtoReg = 0 RegWrite S10: Escrita no Registrador ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00 S9: Executar addi Op = addi PCSrc = 10 PCWrite S11: Jump Op = j PCSrc = 11 PCWrite IntCause = 0 CauseWrite EPCWrite S13: Overflow PCSrc = 11 PCWrite IntCause = 1 CauseWrite EPCWrite S12: Undefined Op = Others S14: mfc0 Op = mfc0 RegDst = 0 MemtoReg = 10 RegWrite Overflow Overflow Microarquitetura avançada • Melhor desempenho • Diminuição no tempo de relógio • Reduzir CPI. • Consumo de energia? • Profundidade do Pipeline • Limitado pelo número de hazards, sobrecarga de sequenciamento e aumento no custo. • Quanto mais longo, maior número de dependências. • Solução, encaminhamento e stalls. (Aumento do CPI). • Entre estágios temos sobrecargas de sequenciamento do tempo de setup e atraso de clock. • Adição de mais estágios proporciona retornos decrescentes e aumenta o custo por causa dos registros de pipeline extras e do hardware necessário para lidar com hazards. Exemplo Considere a construção de um processador com pipeline por quebra do processador de ciclo-único em N estágios (N ≥ 5). O processador de ciclo-único tem um atraso de propagação de 875 ps através da lógica combinacional. A sobrecarga de sequenciamento de um registro é de 50 ps. Assume-se que o atraso combinacional pode ser arbitrariamente dividido em quaisquer que sejam os estágios requeridos e que a lógica de harzard do pipeline não aumente o atraso. O pipeline de cinco estágios convencional tem um CPI de 1,15. Suponha que cada estágio adicional aumenta o CPI de 0,1 por causa dos erros de previsão dos branchs e outros hazards dos pipelines. Quantos estágios de pipeline devem ser usados para conseguir que o processador execute programas o mais rapidamente possível? 𝑇𝑇𝑐𝑐 = �875 𝑁𝑁 + 50 𝑝𝑝𝑝𝑝 → 𝑇𝑇𝑐𝑐 = 129.5454 ps N = 11 Tempo de ciclo𝐶𝐶𝐶𝐶𝐶𝐶 = 1,15 + 0,1 𝑁𝑁 − 5 → 𝐶𝐶𝐶𝐶𝐶𝐶 = 1,75 Tempo de instrução 226,70 para N = 11 • Previsão de branch • CPI ideal 1 • Branch misprediction penalty é uma das principais razões para o aumento do CPI. • Alguns branch ocorrem quando o programa chega ao fim (ciclos while ou for). • A forma mais simples de previsão de desvios verifica a direção dos branchs de retorno e prevê que branchs de retorno devem ser realizados. Isto é chamado de previsão de desvio estático, uma vez que não dependem da história do programa. Microarquitetura avançada add $s1, $0, $0 # sum = 0 addi $s0, $0, 0 # i = 0 addi $t0, $0, 10 # $t0 = 10 for: beq $s0, $t0, done # if i == 10, branch to done add $s1, $s1, $s0 # sum = sum + i addi $s0, $s0, 1 # increment i j for done: Microarquitetura avançada 1 Bit 2 BitsRealizado Realizado ________ Realizado Realizado Não Realizado Não Realizado ________ Realizado Realizado ________ Realizado Realizado Fortemente Realizado Fracamente Realizado Fracamente Não Realizado Fortemente Não Realizado ________ RealizadoRealizado Microarquitetura avançada Um processador superescalar contém várias cópias do hardware do caminho de dados para executar múltiplas instruções simultaneamente. Reduzindo de forma significativa o CPI. Microarquitetura avançada Microarquitetura avançada Microarquitetura avançada Para lidar com o problema das dependências, um processador superescalar out-of-order inspeciona à frente através de muitas instruções para obter, ou iniciar a execução, de instruções independentes o mais rapidamente possível. As instruções podem ser obtidas numa ordem diferente do que foi escrito pelo programador, enquanto as dependências são observadas para que o programa produza o resultado pretendido. Ciclo 1: Obtenção de lw e or, evitando dependência do add e possível stall. Ciclo 2: Obtenção de sw, ainda evitando dependência do add e possível stall. Ciclo 3: $t0 está disponível. sub não pode ser executada antes de add. Ciclo 4: and é lida. Microarquitetura avançada Utilização de renomeação de registros Ciclo 1: Obtenção de lw e sub, sub independente devido à renomeação de $t0. Ciclo 2: Obtenção de and e or. sw não pode ser executado antes de or. Ainda evitando dependência do add pelo $t0. Ciclo 3: $t0 está disponível. add e sw são executadas Processadores Processadores MISC – Minimal Instruction Set Computer PCI Express (Peripheral Component Interconnect Express Cache L1, Cache L2 e Cache L3 Tópico 10: Representação HDL, exceções e microarquitetura avançada Slide Number 2 Slide Number 3 Slide Number 4 Slide Number 5 Slide Number 6 Slide Number 7 Slide Number 8 Slide Number 9 Slide Number 10 Slide Number 11 Slide Number 12 Slide Number 13 Slide Number 14 Slide Number 15 Slide Number 16 Slide Number 17
Compartilhar