Aula 08: Execução Multiciclo e MIPS R4000

Slides:



Advertisements
Apresentações semelhantes
Arquitectura de Computadores 2004/05
Advertisements

Organização e Arquitetura de Computadores I Microarquitetura
Estratégias Pipelined
PIPELINE (continuação).
WebDesign Redes de Computadores Aula 07
A Abstração de Programação Concorrente
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
Introdução Arquitectura com unidade de controlo uniciclo.
0. Introdução.
Software Básico Silvio Fernandes
Unidade Lógica e Aritmética Introdução à Ciência da Computação
ARQUITETURAS RISC E CISC
Exemplo de arquitetura registrador-registrador- MIPS
MIPS PIPELINE.
MIPS MULTICICLO Fluxo de Dados e Controle
AULA 06 - MIPS PIPELINE.
Arquitetura de Sistemas Operacionais
Processo de Pipelining (exemplo da lavanderia)
MC542 Organização de Computadores Teoria e Prática
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
MO401 – Arquitetura de Computadores I
Arquiteturas Superescalares
Sistemas Operacionais
Pipeline.
CISC e RISC.
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Introdução
SSC114 Arquitetura de Computadores Pipeline - Desempenho
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Professor: Erivelto Tschoeke – UDESC/CEPLAN
REPRESENTAÇÃO DE INSTRUÇÕES
Multiplicador e Forwarding no MIPS
Melhorando o desempenho com pipeline
Avaliando e Compreendendo o Desempenho - Respostas
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Prof. Felipe Ferreira de Oliveira
Pipeline O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline. Todos os estágios devem estar prontos ao mesmo.
Arquitetura de computadores
Família Intel P5 e P6 P5 P6 NetBurst Incluindo cache L2.
Core War A Batalha do Núcleo.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Davi de Andrade Lima Castro RA:  A plataforma C6000: ◦ Ponto-fixo:  C62x  C64 / C64x+ ◦ Ponto-flutuante:  C67x / C67x+ ◦ Arquitetura VLIW:
Contextualização de Paralelismo em nível de instrução
Unidade Central De Processamento: Processador
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Unidade Central De Processamento: Processador
Unidade Central De Processamento: Processador
IMM Instalação e Manutenção de Microcomputadores
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Reduced Instruction Set Computer 6.
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
Bruno Iran Ferreira Maciel
1  1998 Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
Arquitetura de Computadores
ORGANIZAÇÃO DE COMPUTADORES
Funcionamento interno do computador
Arquitetura de computadores
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Introdução ao Processamento Vetorial
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
TRABALHO AVALIATIVO ALUNO: FRANCISCO HELIÉSUS DE MEDEIROS MATÉRIA: ORGANIZAÇÃO DE COMPUTADORES.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Aula 08: Execução Multiciclo e MIPS R4000 ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG

Pipeline do MIPS com Instruções de Múltiplos Ciclos EX Inteira EX IF ID MEM WB FP/int * EX FP + EX FP/int /

Latências e Taxas de Inserção de Instruções Latência: # de ciclos mínimos entre instrução que produz resultado e instrução que utiliza resultado (sem considerar “o ciclo seguinte”) Taxa de inserção: # de ciclos que devem passar até que próxima instrução possa ser inicializado

MIPS com Unidades de Execução c/ Pipeline Interno IF ID MEM WB EX Inteira A1 A2 A3 DIV M1 M2 M3 M4 M5 M6 M7 A4

Diagrama do Pipeline Problemas com o Pipeline: Hazards estruturais com divisão Número de escritas de registradores pode ser maior que 1 por ciclo WAW e WAR podem ocorrer Instruções podem completar em ordem diferente da ordem de issue (ID -> EX) Stalls serão mais frequentes E o que acontece com forwardings?

Simplificação do Pipeline do MIPS Dois bancos de registradores (Ri e Fi) Instruções inteiras só podem acessar Ri Instruções de ponto flutuante só podem acessar Fi Instruções de load/store e de movimentação de dados fazem a comunicação entre Ri e Fi Simplifica lógica de deteção de hazard e forwarding

Deteção de Hazards em ID Verificação de hazards estruturais: aguarde até unidades funcionais estarem disponíveis Verificação de hazards do tipo RAW: aguarde até que os operandos não estejam mais listados como pendências nas respectivas unidades funcionais Verificação de hazards do tipo WAW: determine se alguma instrução em A1,…,A4,D,M1,…,M7 possui o mesmo registrador que algum operando em ID Só assim podemos iniciar a execução da instr!!!

Lógica de Forwarding Só precisamos de checar a mais se registrador usado como resultado é algum entre EX/MEM, A4/MEM, M7/MEM, D/MEM ou MEM/WB e operando é um registrador de ponto flutuante Fi

Como Esse Código é Executado? L.D F4,0(R2) MUL.D F0,F4,F6 ADD.D F2,F0,F8 S.D F2,0(R2)

Interrupções no Pipeline Observe sequência de código ADD.D já vai ter completado, mais DIV.D não (out-of-order completion) O que fazer? Operações de ponto flutuante podem destruir operandos Término fora de ordem DIV.D F0,F2,F4 ADD.D F10,F10,F8 SUB.D F12,F12,F14 Perda de precisão

Solução para Manter Interrupções Precisas Ignorar o problema (interrupções terão que ser imprecisas) – 1960’s e 1970’s [supercomputadores] Memória virtual e IEEE FP fazem esta opção ser difícil de implementar (requerem interrupções precisas) Dois modos de operação para alguns processadores (DEC Alpha e MIPS R8000) lento para interrupções precisas rápido para interrupções imprecisas Guardar resultados até operações iniciadas antes da operação que completou fora de ordem poderem completar (forwarding?) History file - CYBER 180/990 Future file - PPC, MIPS R10k

Solução para Manter Interrupções Precisas Interrupções imprecisas com informações para recuperação por software - SPARC Precisa saber quais os PCs das instruções que estão no pipe e quais instruções terminaram Instrs (1,2,3,…,n) 1 é longa n completou No MIPS, só precisamos nos preocupar com 2,3,…,n-1 sendo de ponto flutuante. Por que? Permite nova instrução ser issued somente se instruções anteriores estão certas de terminarem sem erros Usado no Pentium, MIPS R2000, R3000, R4000

Desempenho do MIPS FP

Stalls Ocorrendo no MIPS

MIPS 4000 ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG

Pipeline do MIPS 4000

MIPS R4000 Pipeline de 8 estágios: IF–1/2 ciclo de busca da instrução; seleção de PC ocorre neste ciclo assim como início do acesso à cache de instrução. IS–2/2 ciclo de busca na cache de instrução. RF–decodificação de instrução e busca de operandos em registradores, verificação de hazards e deteção de hit na cache de instruções. EX–execução, que inclui cálculo do endereço efetivo, ALU e cálculo do endereço do target de um branch e avaliação da condição. DF–busca de dados, 1/2 do acesso à cache de dados. DS–2/2 ciclo de acesso à cache de dados. TC–verificação de tags, deteção de hit na cache de dados. WB–write back para loads e operações de ALU reg-reg. 8 Estágios: Qual o impacto no load delay e branch delay?

Load Delay para MIPS 4000

Branch Delay para MIPS 4000

MIPS R4000 DOIS ciclos para latência de loads IF IS IF RF IS IF EX RF DF EX RF IS IF DS DF EX RF IS IF TC DS DF EX RF IS IF WB TC DS DF EX RF IS IF TRÊS ciclos para latência de branches IF IS IF RF IS IF EX RF IS IF DF EX RF IS IF DS DF EX RF IS IF TC DS DF EX RF IS IF WB TC DS DF EX RF IS IF (condições avaliadas em EX) Um delay slot mais dois stalls Branch pode cancelar stalls se não for tomado (predict not taken)

MIPS R4000 Floating Point FP Adder, FP Multiplier, FP Divider Último estágio de FP Multiplier/Divider usa hardware de FP Adder 8 tipos de estágios nas unidades de FP: Stage Functional unit Description A FP adder Mantissa ADD stage D FP divider Divide pipeline stage E FP multiplier Exception test stage M FP multiplier First stage of multiplier N FP multiplier Second stage of multiplier R FP adder Rounding stage S FP adder Operand shift stage U Unpack FP numbers

Estágios no Pipe de FP do MIPS FP Instr 1 2 3 4 5 6 7 8 … Add, Subtract U S+A A+R R+S Multiply U E+M M M M N N+A R Divide U A R D27 … D+A D+R, D+A, D+R, A, R Square root U E (A+R)108 … A R Negate U S Absolute value U S FP compare U A R Stages: M First stage of multiplier N Second stage of multiplier R Rounding stage S Operand shift stage U Unpack FP numbers A Mantissa ADD stage D Divide pipeline stage E Exception test stage

Desempenho do R4000 Não é CPI Ideal = 1: Load stalls (1 ou 2 ciclos) Branch stalls (2 ciclos + slots não preenchidos) FP result stalls: Hazard de dados do tipo RAW FP structural stalls: Não possui hardware suficiente

Desempenho do MIPS 4000