Controle em Processador Segmentado

Documentos relacionados
Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas:

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Pipeline. Prof. Leonardo Barreto Campos 1

Capítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1

Arquitetura de Computadores I

SSC0611 Arquitetura de Computadores

Revisão dependências de dados

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Explorando o paralelismo entre instruções

Arquitetura de Computadores I

AULA DE REVISÃO 3 ILP

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

Organização e Arquitetura de Computadores I

ção de Computadores II

Pipelining - analogia

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Pipelines. João Canas Ferreira. Mar-Abr Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap.

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

Arquitetura de Computadores I

Caminho dos Dados e Atrasos

Arquitetura de Computadores. Ivan Saraiva Silva

Capítulo 6 Pipeline Morgan Kaufmann Publishers

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

SSC0902 Organização e Arquitetura de Computadores

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Microprocessadores. Execução em Paralelo Pipelines

Organização de Computadores

SSC0114 Arquitetura de Computadores

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Esse programa inclui dependências de tipo: escrita-escrita, leitura-escrita e escrita-leitura. Identifique e mostre estas dependências.

Visão Geral de Pipelining

lw, sw add, sub, and, or, slt beq, j

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018

Organização ou MicroArquitectura

O Processador: Via de Dados e Controle

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Parte 7 Pipeline: Conceitos básicos, implementação e ganho de desempenho

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Conflitos. Aula de Março de

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

Capítulo 4. O Processador

Sistemas Processadores e Periféricos Aula 2 - Revisão

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. MSc. Tiago Alves de Oliveira

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. Dr. Daniel Caetano

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

Introdução ao Processamento Paralelo

Arquitetura e Organização de Computadores

Unidade 4* - Aulas 1/2: Pipelines, Hazards e Forwarding

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

UCP: Construindo um Caminho de Dados (Parte I)

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

O Funcionamento do Processador

Arquitetura de Computadores Aula 11 - Multiprocessamento

1. uins.ce <= '1' when i=sw or i=lw else '0'; 2. uins.rw <= '0' when i=sw else '1'; 3. uins.wreg <= '0' when i=sw else '1';

O Funcionamento do Processador

Aula 21: UCP: Instrução Jump, Monociclo vs. Multiciclo, Pipeline

Questionário Arquitetura e Organização de Computadores

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

Sistemas Processadores e Periféricos Aula 5 - Revisão

Melhorando o Desempenho com Pipelining

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios

SSC0611 Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Arquitectura de Computadores II. Pipelining Avançado e Paralelismo ao Nível da Instrução (ILP Instruction Level Paralelism)

ARQUITECTURA DE COMPUTADORES

AULA DE REVISÃO 4 ILP

Prof. Gustavo Oliveira Cavalcanti

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.

Transcrição:

Revisão segmentação Todos os processado modernos usam segmentação segmentação não reduz a latência de uma instrução mas ajuda na vazão/produção do programa inteiro várias tarefas em execução simultânea usando recursos distintos ganho potencial: número de estágios PI: 3-5 vazão do pipeline limitada pelo estágio mais lento estágios desbalanceados reduzem ganho tempo para encher e para drenar segmentos reduz ganho controle deve detectar e olver riscos bloqueios afetam vazão negativamente esta aula: controle dos segmentos (e de riscos) UFPR B I22 26-2 controle dos sgmtos ontrole em Processador Segmentado busca prxp decod exec 4 rwr sll 2 mrd mwr P endler instr Instr a b c regs A B opula ender ledados ULA Dados escdados reg 6 extsinal 32 rdest alub UFPR B I22 26-2 controle dos sgmtos 2 Sinais de controle do processador segmentado exec rdest opula alub prxp mrd mwr rwr reg ALU fun IMM oper lw + sw x + x beq x x registrado dos segmentos são atualizados a cada ciclo busca e decod: sempre busca instrução e incrementa P UFPR B I22 26-2 controle dos sgmtos 3

ontrole em Processador Segmentado Todos os sinais de controle são determinados na decodificação e mantidos nos registrado entre os estágios reg de instrução controle ex busca/decod decod/exec exec/ / UFPR B I22 26-2 controle dos sgmtos 4 ontrole do Processador Segmentado 4 prxp BD controle DE EM MR rwr sll 2 mrd mwr P endler instr Instr a b c regs A B alub opula ender ledados ULA Dados escdados reg 6 extsinal 32 rdest UFPR B I22 26-2 controle dos sgmtos 5 Modelo seqüencial de execução onjunto de instruções de processado comuns define um modelo seqüencial de execução: cada instrução é completamente executada e altera o estado do processador antes do início da próxima instrução Este modelo facilita muito a vida do programador! omo programador em pensa que cada comando executa? if(p == q) { x = y + z; t = w * z; }; a = b - c; UFPR B I22 26-2 controle dos sgmtos 6

Riscos em processado segmentados Riscos são condições que levam a comportamento incorreto se as medidas apropriadas não forem tomadas riscos estruturais structural hazards quando duas instruções diferentes necessitam do mesmo recurso no mesmo ciclo riscos com dados data hazards quando 2 instr diferentes usam mesmo local de armazenamento olução do risco deve garantir aparência de que instruções executaram na ordem seqüencial correta riscos de controle control hazards quando uma instrução determina quais instruções serão executadas a seguir (desvios, saltos, funções) UFPR B I22 26-2 controle dos sgmtos 7 Riscos com dados Quando duas instruções diferentes usam mesmo local de armazenamento data hazards Deve parecer que instruções executam na ordem seqüencial correta i: r r4 + r5 j: r2 r - r9 r foi produzido por i k: r r6 r3 valor de r em i é sobre-escrito ultado de i;j;k é o mesmo que i;k;j? onvenção: nome do risco é a ordem do programa que deve ser pervada pela implementação (segmentada, supecalar) UFPR B I22 26-2 controle dos sgmtos 8 Riscos com dados - RAW Read-After-Write (RAW) instr j tenta ler operando r antes que instr i escreva ultado i: r r4 + r3 j: r2 r - r9 Risco decorre de uma dependência de dados, causada pela comunicação entre as duas instruções add e sub através de r r r4+r3 r2 r-r9 busca decod exec r é lido aqui por instr j r será atualizado aqui por instr i UFPR B I22 26-2 controle dos sgmtos 9

Solução (parcial) simples para RAW ircuito de controle detecta risco, e então insere bolha: atrasa instrução j até ocorrer escrita do ultado de i solução simples segura instrução dependente na busca desempenho ruim por causa dos ciclos desperdiçados i: r r2+r3 B D M R j: r2 r-r9 B D Ex M R solução simples psupõe que, em cada ciclo, registrado são atualizados num semiciclo e são lidos no outro Ex stall escreve r instr i: ult leit de r instr j: decod UFPR B I22 26-2 controle dos sgmtos Risco de dados: bloqueio rs rd rd atrase controle de atrasos regs unid exec decod exec ompara com estágios posterio if (rs(decod)==rd(exec) rs(decod)==rd()) { insere bolha } mesmo para rs2 todos conflitos são riscos? st não escreve reg, addi não lê reg UFPR B I22 26-2 controle dos sgmtos Risco de dados: adiantamento (i) Ao invés de bloquear, adianta ultado para entradas da ULA: usa controle de atrasos para decidir se deve adiantar, e usa multiplexado para escolher fonte do ultado i: r r5-r6 j: r2 r2+ r2 r2+ k: r3 r2+r r3 r2+r r r5-r6 r2 busca decod r Adiantamento = forwarding, bypassing, short-circuiting UFPR B I22 26-2 controle dos sgmtos 2

Risco de dados: adiantamento (ii) Quem fornece r para instrução k? i: r r5-r6 j: r r+ r r+ k: r4 r3+r r4 r3+r r? r r5-r6 busca decod r? Implementação deve satisfazer modelo seqüencial de execução senão, os clientes ficarão muito irritados UFPR B I22 26-2 controle dos sgmtos 3 Risco de dados: adiantamento (iii) Adiantamento para o estágio de ória load seguido de store i: r M(r5+) j: M(r6+2) r r M(r5+) M(r6+2) r r busca decod exec UFPR B I22 26-2 controle dos sgmtos 4 Risco de dados: adiantamento (iv) Adiantamento para o estágio de ória: load seguido por add i: r M(r6+) j: nop k: r3 r2+r r3 r2+r nop r M(r6+) busca decod r Risco deve ser detectado por hardware e bolha inserida desempenho cai por causa da bolha ompilador deve tentar preencher bolha com instrução boa load delay slot introduzido no conj de instr MIPS-I e eliminado do di MIPS-II por que foi eliminado? stall UFPR B I22 26-2 controle dos sgmtos 5

Adiantamento implementação Adiantamento nas linhas de dependência para trás no tempo estágio EXE produz ultado de instr de ULA ou ender efetivo estágio MEM produz ultado de lw Adianta para entradas da ULA valor na saída de qualquer registrador de segmento e não somente do reg DE: adiciona multiplexado nas entradas da ULA para passar rd para as entradas rs e rt da ULA : entrada normal (registrador DE) 2: adianta da instrução anterior (registrador EM) : adianta de duas instruções atrás (registrador MR) circuito adicional de controle permite execução sem bolhas, mesmo com dependências de dados exceto no uso do valor do load UFPR B I22 26-2 controle dos sgmtos 6 Adiantamento - circuito completo DE fwda EM MR A B ext 2 fwdb 2 α β D E L UFPR B I22 26-2 controle dos sgmtos 7 ontrole de Adiantamento (/4) Risco EX/MEM: Lembre que o núm do reg de destino (Rd) viaja junto com a instrução rd é registrador destino rd ou rt rs é o número do registrador rs rt é o número do registrador rt fwda, fwdb controlam os multiplexado if ( EMrd == DErs ) fwda = 2 if ( EMrd == DErt ) fwdb = 2 risco MEM/RES: if ( MRrd == DErs ) fwda = if ( EMrd == DErt ) fwdb = O que está errado no controle? Quando pode adiantar indevidamente? Quais seqüências de instruções revelariam o erro? anterior 2 antes UFPR B I22 26-2 controle dos sgmtos 8

ontrole de Adiantamento (2/4) Risco EX/MEM: if ( EMregWR and ( EMrd == DErs ) ) fwda = 2 o mesmo para fwdb risco MEM/RES: if ( MRregWR and ( MRrd == DErs ) ) fwda = o mesmo para fwdb O que está errado no controle? Quando pode adiantar indevidamente? Quais seqüências de instruções revelariam o erro? se instr escreve anterior se instr escreve 2 antes UFPR B I22 26-2 controle dos sgmtos 9 ontrole de Adiantamento (3/4) Risco EX/MEM: if ( EMregWR se instr escreve and ( EMrd!= ) dest não é $r and ( EMrd == DErs ) ) anterior fwda = 2 o mesmo para fwdb risco MEM/RES: if ( MRregWR se instr escreve and ( MRrd!= ) dest não é $r and ( MRrd == DErs ) ) 2 antes fwda = o mesmo para fwdb O que está errado no controle? UFPR B I22 26-2 controle dos sgmtos 2 Lembre do modelo seqüencial i: r r5-r6 j: r r+ r r+ k: r4 r3+r r4 r3+r r? r r5-r6 busca decod r? Adiantamento deve entregar ultado mais recente, que é o da instrução j UFPR B I22 26-2 controle dos sgmtos 2

ontrole de Adiantamento (4/4) risco MEM/RES: if ( MRregWR se instr escreve and ( MRrd!= ) dest não é $r and ( MRrd == DErs ) anterior and ( EMrd!= DErs ~EMregWR )) +novo fwda = o mesmo para fwdb adiante SE esta instrução escreve E não escreve em $r E reg destino da anterior é igual ao fonte desta E ( registrador no meio não é o destino ou instrução não escreve registrador ) (+velha) UFPR B I22 26-2 controle dos sgmtos 22 Adiantamento - circuito completo + controle DE EM MR A rs rt B ext 2 2 fwda α β D E L rd BDrd fwdb DErd EMrd MRrd BDrs BDrt adiantamento UFPR B I22 26-2 controle dos sgmtos 23 Risco com uso do ultado do LD i: r M(r6+) j: nop k: r3 r2+r r3 r2+r nop r M(r6+) busca decod r UFPR B I22 26-2 controle dos sgmtos 24

Risco com uso do ultado do LD DEOD deve detectar risco entre LD e usos do seu ultado if ( DERD and ( ( DErt == BDrs ) or ( DErt == BDrt ) ) ) bloqueia_de segura segmentos SE instrução em EXE lê ória E LD em EXE produz operando da instr em DEOD depois deste ciclo parado, lógica de adiantamento olve os demais riscos segura segmentos UFPR B I22 26-2 controle dos sgmtos 25 ircuito de controle de bloqueios Além de detectar os riscos, implementação de bloqueios/stalls deve: impedir que instruções em BUSA e DEOD avançem mantém os conteúdos do P e do registrador BD re-executa a mesma instrução, sem que ela altere estado desativar os sinais de controle (muda para ) nos campos de controle dos estágios EXE, MEM e RES circuito detector de riscos controla MUX que seleciona entre valo de controle e s psupõe que s são valo inócuos nada muda esta instrução não altera o estado da computação instruções nos demais estágios (EX,MEM,RES) completam normalmente UFPR B I22 26-2 controle dos sgmtos 26 ircuito de controle de bloqueios detecção de riscos controle ex DERD P BD DE EM MR UFPR B I22 26-2 controle dos sgmtos 27

Risco com LD seguido de ST Nas cópias ória-ória (LD;ST) pode adiantar saída do registrador MR para a entrada da ória necessita circuito de adiantamento para estágio de ória i: r M(r5+) j: M(r6+2) r r M(r5+) M(r6+2) r r busca decod exec Esta é uma operação comum: copia de um endereço para outro É necessário adiantar os endereços efetivos? uidados especiais com p = *p; *p = *p; *p = p; UFPR B I22 26-2 controle dos sgmtos 28 addu r5, sw r5, addu r5, subu r6, sw r5, Falta alguma coisa? Necessita caminho para adiantamento da saída da ULA para entrada de dados da ória MI REG MD REG UFPR B I22 26-2 controle dos sgmtos 29 Modelo seqüencial de execução Resumo (i) onjunto de instruções de processado comuns define um modelo seqüencial de execução: cada instrução é completamente executada e altera o estado do processador antes do início da próxima instrução programador considera que cada comando executa atomicamente isso não é verdade com segmentação! bolhas reduzem o paralelismo serializam a computação UFPR B I22 26-2 controle dos sgmtos 3

Resumo (ii) Dependências de dados olvidas com adiantamento (quase sempre) Deve garantir que instruções anterio escreverão ultado, destino é mesmo que fonte, e instrução anterior não tem prioridade Accentar circuito de adiantamento onde pode-se adiantar força bloqueio se precisa esperar por ultado estágio EXE, MEM para store, DEOD para desvio loads necessitam parada porque sobrepõem EXE com MEM desvios podem necessitar de parada também Próxima aula: riscos de controle e previsão de desvios Exercício: Desenhe, numa folha A3 quadriculada, o circuito completo do processador segmentado, incluindo todos os circuitos mostrados nos slides 5 e 23 stall=parada UFPR B I22 26-2 controle dos sgmtos 3