Microarquitetura de Processador: Uma perspectiva de implementação

Tamanho: px
Começar a partir da página:

Download "Microarquitetura de Processador: Uma perspectiva de implementação"

Transcrição

1 Arquitetura e Organização de Computadores 2 Paralelismo em Nível de Instruções Arquiteturas Pipelining e Superescalar Microarquitetura de Processador: Uma perspectiva de implementação O foco está nos aspectos de implementação, com discussões sobre abordagens alternativas e suas implicações em termos de desempenho, potência e custo. A microarquitetura de processadores sofreu uma evolução contínua. Por exemplo, a Intel tem lançado novos microprocessadores a cada ano. A renovação é alimentada principalmente por dois tipos de fatores: (1) evolução da tecnologia e (2) evolução da carga de trabalho (workload). 2 1

2 Classificação das Microarquiteturas As microarquiteturas de processadores podem ser classificadas em várias dimensões ortogonais. Processadores Pipelined / Nonpipelined Os processadores com pipelines dividem a execução de cada instrução em várias fases e permitem que diferentes instruções sejam processadas em diferentes fases simultaneamente. O pipelining aumenta o paralelismo de nível de instrução (ILP) e, devido à sua relação custo-benefício, é praticamente utilizado por todos os processadores atualmente. Processadores In-Order/Out-Of-Order Um processador in-order processa as instruções na ordem em que aparecem no código binário (de acordo com a semântica sequencial das instruções), enquanto um processador out-of-order processa as instruções em uma ordem que pode ser diferente (e geralmente é ) a partir do binário. O propósito de executar instruções fora de ordem é aumentar a quantidade de ILP, proporcionando mais liberdade ao hardware para escolher quais instruções processar em cada ciclo. Obviamente, os processadores out-of-order exigem hardware mais complexo do que os in-order. Processadores Escalares / Superescalares Um processador escalar é um processador que não pode executar mais de uma instrução em pelo menos um de seus estágios de pipeline. Em outras palavras, um processador escalar não pode atingir um rendimento maior que 1 instrução por ciclo para qualquer código. Um processador que não é escalar é chamado superescalar. Observe que um processador superescalar pode executar mais de uma instrução ao mesmo tempo em todos os estágios do pipeline e, portanto, pode obter uma taxa de transferência maior que 1 instrução por ciclo para alguns códigos. Os processadores de palavra de instrução muito longa (VLIW) são um caso particular de processadores superescalares. 3 Ciclo de Execução de Instruções 4 2

3 Eventos do Ciclo de Execução de Instruções: início fim. busca de instrução; decodificação da instrução; cálculo de endereço de operando; busca de operando; execução da instrução; cálculo de endereço do resultado; verificação de interrupção; se interrupção então tratamento de interrupção; cálculo de endereço da próxima instrução; volta para busca de instrução; 5 Motivação: O tempo de execução (T cpu ) de um programa é dado por: T cpu = IC x CPI x T cc A execução de instruções em cadeia (pipelining) permite reduzir a duração do ciclo de relógio (T cc ) do processador, ou seja, aumentar a sua frequência. Por outro lado, a execução superscalar aumenta o número de instruções realizadas em cada ciclo de clock (IPC), ou seja, diminui o CPI. Note que qualquer uma das alternativas permite reduzir o tempo de execução da aplicação. 6 3

4 Introdução Duas técnicas são frequentemente utilizadas para a execução de instruções em paralelo: Execução encadeada de instruções (Pipelining) cada instrução é executada em várias fases, sendo a execução de várias instruções sobreposta, como numa linha de montagem; as várias instruções executam em paralelo, mas em fases diferentes; Execução superscalar de instruções as instruções são executadas em paralelo, o que envolve a duplicação de unidades funcionais para suportar a combinação de instruções pretendida. Estas duas técnicas são geralmente combinadas, sendo ambas utilizadas na arquitetura dos processadores modernos. 7 Introdução Arquitetura com unidade de controle monociclo Unidade de controlo Load / INC PC Memória de programa Memória de dados Controlo de saltos Descodificador de Endereços Leitura/Escrita Tipo de salto Descodificador de Instruções Palavra de Controlo Datapath Bits de estado (flags) 8 4

5 Introdução Datapath A mesma ideia, apresentada de uma forma diferente... M U X End. salto Tipo salto Controlo de saltos Inc Const P C Memória de instruções Banco de registos M U X Memória de dados M U X 9 Introdução Fetch Decodificação Execução Acesso à memória Write back M U X End. salto Tipo salto Controlo de saltos Inc Const P C Memória de instruções Banco de registos M U X Memória de dados M U X 10 5

6 Introdução Fetch IF Decode ID Execute EX Memory MA Write Back WB Para cada instrução tem-se a sequência Fetch (IF) ler a instrução localizada no endereço dado por PC Decode (ID) obter o opcode e operandos; ler os registradores fonte Execute (EX) operações na e controle dos saltos (desvios) Memory (MA) acesso à memória para escrever ou ler dados Write-Back (WB) escrever o resultado no registrador de destino 11 Funcionamento em pipeline Estrutura de um pipeline IF ID EXE MEM WB IF ID EXE MEM WB Clock Separam-se as várias etapas por registradores (buffers) E sincronizam-se esses registradores com um sinal de relógio comum Obtém-se um pipeline 12 6

7 Funcionamento em pipeline Com mais detalhe... M U X End. salto Tipo salto Controlo de saltos Inc Const P C Memória de instruções Banco de registos M U X Memória de dados M U X 13 Funcionamento em pipeline Ideia semelhante a uma linha de montagem: Para cada pulso de relógio é realizada uma etapa de uma instrução Se o pipeline tem N etapas, então N instruções podem estar simultaneamente dentro do pipeline Uma instrução em cada etapa Inst. i+4 Inst. i+3 Inst. i+2 Inst. i+1 Inst. i IF ID EXE MEM WB Clock 14 7

8 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Programa a executar IF ID EXE MEM WB Clock 15 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Programa a correr Inst. 1 IF ID EXE MEM WB Clock 16 8

9 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Programa a correr Inst. 2 Inst. 1 IF ID EXE MEM WB Clock 17 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Programa a correr Inst. 3 Inst. 2 Inst. 1 IF ID EXE MEM WB Clock 18 9

10 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Inst. 4 Programa em execução Inst. 3 Inst. 2 Inst. 1 IF ID EXE MEM WB Clock 19 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Programa em execução Inst. 5 Inst. 4 Inst. 3 Inst. 2 Inst. 1 IF ID EXE MEM WB Clock 20 10

11 Funcionamento em pipeline Ilustração do funcionamento Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Programa em execução Inst. 6 Inst. 5 Inst. 4 Inst. 3 Inst. 2 IF ID EXE MEM WB Clock 21 Funcionamento em pipeline Outra maneira de ver.. Ciclos de relógio 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º inst 1 IF ID EXE MEM WB inst 2 IF ID EXE MEM WB inst 3 IF ID EXE MEM WB inst 4 IF ID EXE MEM WB inst 5 IF ID EXE MEM WB inst 6 IF ID EXE MEM WB Por exemplo, no 5º ciclo de relógio, a instrução 1 está na fase WB, a instrução 2 na fase MEM, a instrução 3 na fase EXE, a inst. 4 está na fase ID e a inst. 5 na fase IF

12 Desempenho ideal Em condições ideais O pipeline está equilibrado todas as etapas demoram o mesmo tempo O pipeline encontra-se sempre cheio tem-se sempre uma instrução em cada etapa Told T new = Tetapa = CPI = 1 N ideal etapas Ganho (ideal) face a uma versão sem pipeline: Ganho ideal = N etapas 23 Objetos de estudo: Pipelining: Pipelining torna-se uma técnica universal em Explora a potencial sobreposição da execução de instruções para melhorar o desempenho. Paralelismo em Nível de Instrução Os hazards inconvenientes, que provocam degradação de desempenho em processadores pipelined e os mecanismos para minimizar seus efeitos. Implicações de hardware e software do pipelining. Processadores superscalares

13 Introdução Duas abordagens para explorar o paralelismo de instruções: Hardware-based dynamic approaches Usadas em processadores de desktops e servidores Não utilizada de forma extensiva em processadores voltados ao Mercado de equipamentos móveis (PMP processors) Compiler-based static approaches Restrito ao mundo das aplicações científicas Paralelismo em Nível de Instrução O objetivo principal do ILP é a maximização do CPI Pipeline CPI = Ideal pipeline CPI + Structural stalls + Data hazard stalls + Control stalls O Paralelismo no bloco básico é limitado Em programas típicos, a frequência média de desvios é de 15-25%. Assim, o tamanho típico do bloco básico = 3-6 instruções executadas entre um par de desvios. Devemos explorar o ILP em diversos blocos básicos, quebrando a fronteira dos desvios... 13

14 Paralelismo em Nível de Instrução Paralelismo em Nível de Loop Desdobramento de laços estaticamente ou dinamicamente Uso de SIMD (processadores vetoriais e GPUs) Desafios: Dependência dos Dados Instrução j é dependente de dados gerados pela instrução i se: Instrução i produz um resultado que pode ser usado pela instrução j Instrução j é dependente dos dados da instrução k e a instrução k é dependente de dados da instrução i Instruções dependentes não podem ser executadas simultaneamente Conflitos (hazards) Mas em um pipeline nem tudo são flores... Existem situações em que Instruções em fases diferentes tentam acessar o mesmo recurso (e.g. à memória) O resultado de uma instrução depende de outra que ainda não terminou a execução Essas situações caracterizam conflitos (ou pipeline hazards) A existência de conflitos reduzem significativamente o ganho de um pipeline

15 Tipos de Conflitos (hazards) Conflitos de dados ocorrem quando existem dependências de dados entre instruções que se encontram dentro do pipeline Conflitos estruturais ocorrem quando duas instruções em fases diferentes tentam acessar o mesmo recurso Conflitos de controle ocorrem em instruções de desvio, quando o desvio depende de um resultado que ainda não foi calculado. 29 Dependência de Dados As dependências são propriedades dos programas A organização Pipeline determina se a dependência é detectada e se ela causa parada (stall) Uma dependência de dados transmite três coisas: Possibilidade de um hazard. A ordem em que os resultados podem ser calculados. O limite máximo de paralelismo a ser explorado As dependências que fluem através da memória são mais difíceis de serem detectadas. 15

16 Dependência de Dados (Hazards).. sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2).. Dependência de dados: Instruções que seguem sub utilizam o registrador $2, cujo valor é produzido pela instrução sub 31 Data hazards Conflito RAW (Read after Write) Para ilustrar a ocorrência destes conflitos vamos considerar que temos duas instruções: instrução 1 e instrução 2 A instrução 2 vai ser executada depois da instrução 1 Vamos supor que a instrução 2 lê dados que são o resultado da instrução 1 existe uma dependência entre as instruções O conflito ocorre se a instrução 2 tentar ler os dados antes da instrução 1 teos escrito. A instrução 2 iria ler um valor desatualizado... Exemplo:... inst. 1: ADD R0, R1, R2 # R0 R1 + R2 inst. 2: SUB R5, R0, R4 # R5 R0 R

17 Data hazards Resolução básica de conflitos Detecta-se o conflito Introduzem-se bolhas no pipeline Uma bolha é basicamente uma palavra de controle que manda não fazer nada (nop) Cada bolha faz com que seja desperdiçado um ciclo de relógio Contudo existem alternativas mais eficientes para resolver cada tipo de conflito Inserir bolhas, só mesmo se não houver uma alternativa Conflitos de dados Resolução mais eficiente de conflitos RAW Utiliza-se uma técnica chamada data forwarding A ideia consiste em disponibilizar resultados nas entradas da unidade funcional (fase EXE) ainda antes de ser feito o write-back Quando são detectados conflitos, utilizam-se esses resultados em vez do que foi lido dos registradores 34 17

18 09/05/2018 Conflitos de dados Utilização de forwarding M U X M U X M U X Memória de dados M U X 35 Data Hazards Time (clock cycles) I n s t r. O r d e r add r1,r2,r3 sub r4,r1,r3 and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 IF ID/RF EX MEM WB The use of the result of the ADD instruction in the next three instructions causes a hazard, since the register is not written until after those instructions read it. 36 Appendix A - Pipelining 18

19 09/05/2018 Data Hazards Forwarding To Avoid Data Hazard Forwarding is the concept of making data available to the input of the for subsequent instructions, even though the generating instruction hasn t gotten to WB in order to write the memory or registers. Time (clock cycles) I n s t r. add r1,r2,r3 sub r4,r1,r3 O r d e r and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 37 Appendix A - Pipelining Data Hazards The data isn t loaded until after the MEM stage. Time (clock cycles) I n s t r. lw r1, 0(r2) sub r4,r1,r6 O r d e r and r6,r1,r7 or r8,r1,r9 There are some instances where hazards occur, even with forwarding. 38 Appendix A - Pipelining 19

20 09/05/2018 Data Hazards Time (clock cycles) The stall is necessary as shown here. I n s t r. lw r1, 0(r2) O r d e r sub r4,r1,r6 and r6,r1,r7 Bubble Bubble or r8,r1,r9 Bubble There are some instances where hazards occur, even with forwarding. 39 Appendix A - Pipelining Data Hazards Instruções 1º 2º 3º 4º 5º 6º 7º 8º 9º LW R1, 0(R2) IF ID EX MEM WB SUB R4, R1, R5 IF ID EX MEM WB AND R6, R1, R7 IF ID EX MEM WB OR R8, R1, R9 IF ID EX MEM WB Instruções 1º 2º 3º 4º 5º 6º 7º 8º 9º LW R1, 0(R2) IF ID EX MEM WB SUB R4, R1, R5 IF ID stall EX MEM WB AND R6, R1, R7 IF stall ID EX MEM WB OR R8, R1, R9 IF ID EX MEM WB 40 20

21 Data Hazards Pipeline Scheduling Instruction scheduled by compiler - move instruction in order to reduce stall. lw Rb, b lw Rc, c Add Ra, Rb, Rc sw a, Ra lw Re, e lw Rf, f sub Rd, Re, Rf sw d, Rd code sequence for a = b+c before scheduling stall code sequence for d = e+f before scheduling stall Arrangement of code after scheduling. 41 lw Rb, b lw Rc, c lw Re, e Add Ra, Rb, Rc lw Rf, f sw a, Ra sub Rd, Re, Rf sw d, Rd Appendix A - Pipelining Data Hazards Pipeline Scheduling scheduled unscheduled gcc spice tex 14% 25% 31% 42% 54% 65% 0% 20% 40% 60% 80% % loads stalling pipeline 42 Appendix A - Pipelining 21

22 Abordagens para resolver conflitos de dados Software Scheduling : Programador ou compilador evita explicitamente instruções de programação que criariam riscos de dados HardwareScheduling : Hardware escalona dinamicamente instruções para evitar conflitos RAW, potencialmente permitindo instruções para executar fora de ordem Hardware Stalling : Hardware inclui a lógica de controle que congela instruções posteriores até que a instrução anterior termine a execução, produzindo valor de dados Hardware Bypassing: Hardware permite que os valores sejam enviados a partir de uma instrução anterior para uma instrução posterior antes que a instrução anteriormente executando saia do pipeline. Hardware Speculation : Hardware adivinha que não há perigo e permite instruções posteriores lerem dados potencialmente inválidos; detecta quando existe um problema e re-executa instruções que operaram em dados inválidos 43 Conflitos de dados Dependências de Nome Ocorre quando duas instruções usam o mesmo registrador ou local de memória, chamado nome, mas não existe fluxo de dados entre as instruções associadas. Não é uma dependência verdadeira, mas é um problema na reordenação de instruções (reordering instructions) Antidependência - WAR Ordem inicial (i antes de j) deve ser preservada Dependência de saída - WAW Ordem deve ser preservada Solução - utilizar técnica de renomeação de registrador. 22

23 Conflitos de dados Conflito WAW (Write after Write) Ambas as instruções são de escrita e o resultado vai ser escrito no mesmo local. O conflito ocorre quando se a instrução 2 tentar escrever antes da instrução 1. Conflito WAR (Write after Read) A instrução 1 lê dados do local onde a instrução 2 escreve O conflito ocorre se a instrução 2 tentar escrever antes da instrução 1 ler. Ocorrem em pipelines mais complexos, com várias fases onde podem ser feitas leituras e escritas nos registradores. 45 Escalonamento de Instruções... ld r2, I add r2, r2, #123 st r2, I ld r3, J sub r3, r3, #567 st r3, J ld r2, I ld r3, J add r2, r2, #123 sub r3, r3, #567 st r2, I st r3, J

24 Conflitos estruturais Duas (ou mais) instruções tentam acessar simultaneamente o mesmo recurso Situação típica: Quando se usa uma única memória para dados e código, não se pode fazer o fetch (IF) ao mesmo tempo que uma instrução acessa à memória para ler/escrever dados. Situações menos típicas Tentar escrever no mesmo registrador simultaneamente (só ocorre em processadores com mais do que uma fase de write-back) Tentar ler ou escrever dados simultaneamente na mesma memória (só ocorre em processadores com mais do que uma fase de acesso à memória) 47 Conflitos estruturais Exemplo de um conflito estrutural k k+1 k+2 k+3 k+4 k+5 k+6 k LOAD R1, a IF ID EXE MEM WB ADD R3,R4,R5 IF ID EXE MEM WB SUB R6,R6,R7 IF ID EXE MEM WB XOR R1,R4,R5 IF ID EXE MEM WB... Não pode ser feito o fetch ao mesmo tempo que acessa à memória para ler dados (o LOAD) CONFLITO! 24

25 Conflitos estruturais Resolução do conflito Introdução de uma bolha antes do fetch... k k+1 k+2 k+3 k+4 k+5 k+6 k+7 k LOAD R1, a IF ID EXE MEM WB ADD R3,R4,R5 IF ID EXE MEM WB SUB R6,R6,R7 IF ID EXE MEM WB XOR R1,R4,R5 B IF ID EXE MEM WB Conflito resolvido 49 Conflitos estruturais Resoluções mais eficientes Memórias de dados e de instruções separadas Tipicamente este esquema é implementado usando uma memória cache para dados e outra para instruções Instruction pre-fetching É feito antecipadamente o fetch de várias instruções, que ficam guardadas numa memória interna (buffer de instruções) Quando o buffer fica vazio busca-se mais instruções à memória

26 Conflitos de Controle Hazards de controle ocorrem quando a execução ou não da próxima instrução depende de um decisão de controle realizada pela instrução anterior. addiu r1, r2, 1 j foo # Jumps are always taken addiu r3, r4, 1 foo: addiu r5, r6, 1 bne r0, r0, bar # This branch is not taken addiu r7, r8, 1 bar: addiu r9, r10, 1 51 Conflitos de controle Ocorrem quando aparecem desvios Desvios incondicionais O processador só saberá que é uma instrução de desvio na fase ID (decodificação) mas nessa altura a instrução na posição que se segue à de salto já se encontra na fase IF (fetch) Desvios condicionais Para além do que acontece com os desvios incondicionais, não se sabe antecipadamente se vai ou não ocorrer o desvio Tipicamente só se sabe a ocorrência (ou não) do desvio após a verificação da condição do desvio (tipicamente associada à fase EXE) 52 26

27 09/05/2018 Conflitos de controle Só aqui se sabe que é um desvio... Nos desvios condicionais, só aqui se sabe se o desvio vai ser realizado ou não... Inc M U X End. salto Tipo salto Const Controlo de saltos P C Memória de instruções Banco de registos M U X Memória de dados M U X 53 Conflitos de controle Exemplo (desvio incondicional)... LBL1: ADD R1, R4, R5... STORE a, R1 JUMP LBL1 LBL2: LOAD R1, a

28 Conflitos de controle Ilustração do problema (salto incondicional): k k+1 k+2 k+3 k+4 k+5 k+6 k+7 k+8 k JUMP LBL1 IF ID EXE MEM WB LOAD R1, a IF B B B B ADD R1, R4, R5 IF ID EXE MEM WB Perde-se 1 ciclo, pois é feito um fetch inútil da instrução que se segue à de salto 55 Conflitos de controle Exemplo (desvio condicional) END:... DEC R1, R1 JZ END ADD R0, R1, R2 STORE a, R0... LOAD R1, a... algumas vezes há desvio, outras não

29 Conflitos de controle supondo que o salto ocorre: k k+1 k+2 k+3 k+4 k+5 k+6 k+7 k+8 k DEC R1, R1 IF ID EXE MEM WB JZER END IF ID EXE MEM WB ADD R0, R1, R2 IF ID B B B STORE a, R4 IF B B B B LOAD R1, a IF ID EXE MEM WB Perdem-se 2 ciclos, pois só se irá atualizar o valor de PC depois do salto concluir a fase EXE (só aí se sabe que o salto será realizado ou não)... Resolução dos conflitos de controle Software Scheduling: Programador ou compilador evita explicitamente escalonar instruções que criariam riscos de controle. Software Predication: Programador ou compilador converte o fluxo de controle em fluxo de dados usando instruções que executam condicionalmente baseadas no valor dos dados. Hardware Stalling: Hardware inclui a lógica de controle que congela instruções posteriores até que a instrução anterior tenha terminado, determinando o fluxo de controle correto. Hardware Speculation: hardware de controle supõe qual o caminho que o controle fluxo seguirá e potencialmente busca instruções incorretas; detecta quando existe um problema e reexecuta as instruções que estão ao longo do fluxo de controle correto. Software Hints: Programador ou compilador fornece dicas sobre se um desvio condicional serão tomadas ou não, e o hardware pode usar essas dicas para especulação mais eficiente

30 Software Scheduling Expose branch delay slots as part of the instruction set. Branch delay slots are instructions that follow a jump or branch and are always executed regardless of whether a jump or branch is taken or not taken. Compiler tries to insert useful instructions, otherwise inserts nops. addiu r1, r2, 1 j foo nop addiu r3, r4, 1 foo: addiu r5, r6, 1 bne r0, r0, bar nop nop addiu r7, r8, 1 bar: addiu r9, r10, 1 59 Conflitos de controle Hardware Speculation: Previsão de desvios (branch prediction) Previsão estática Assume-se que o desvio é sempre tomado (predict-taken) Ou se assume que o desvio nunca é tomado (predict-not-taken) Previsão dinâmica A previsão depende do que se passou em desvios anteriores Muito usada atualmente Nos casos em que a previsão estiver errada perder-se-á ciclos de processamento Para anular o efeito das instruções que foram executadas desnecessariamente

31 Interrupções e Exceções Interrupções e exceções alteram o fluxo normal do programa. São causados por evento externo ou interno que precisam ser processados pelo sistema, e estes eventos são frequentemente não esperados ou raros do ponto de vista do programa. Interrupções Assíncronas (Asynchronous Interrupts) Dispositivos de Entrada/Saída precisam ser atendidos Experição do timer Falhas de hardware Exceções Síncronas (Synchronous Exceptions) Opcode desconhecido, instrução privilegiada Arithmetic overflow, floating-point exception Acesso a memória desalinhada na busca de intruções ou acesso a dados Violação da proteção de memória Virtual memory page faults System calls (traps) 61 Semântica para Interrupções e Exceções Interrupções são síncronas em relação ao programa, assim a microarquitetura pode decidir quando tratar a interrupção. Exceções são síncronas em relação ao programa, assim elas devem ser tratadas imediatamente

32 Tratando interrupções ou exceções the hardware/software must: Stop program at current instruction (I), ensure previous insts finished Save cause of interrupt or exception in privileged arch state Save the PC of the instruction I in a special register (EPC) Switch to privileged mode Set the PC to the address of either the interrupt or the exception handler Disable interrupts Save the user architectural state Check the type of interrupt or exception Handle the interrupt or exception Enable interrupts Switch to user mode Set the PC to EPC if I should be restarted Potentially set PC to EPC+4 if we should skip I 63 Interrupções e Exceções no pipeline How should we handle a single instruction which generates multiple exceptions in different stages as it goes down the pipeline? How should we handle multiple instructions generating exceptions in different stages at the same or different times? 64 32

33 Bibliografia David Patterson e John Hennessy, Arquitetura e Organização de Computadores uma abordagem quantitativa, 5ª Edição, ed. Campus

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 8ª Aula Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Estágios para execução da instrução: A instrução LOAD é a mais longa Todas as instruções seguem ao menos os

Leia mais

AULA DE REVISÃO 3 ILP

AULA DE REVISÃO 3 ILP AULA DE REVISÃO 3 ILP Exercício 1: Considere um bloco de código com 15 instruções cada uma com tempo de execução Tex. Elas são executadas numa unidade pipeline de 5 estágios. Os overheads do pipeline são

Leia mais

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

Arquitetura e Organização de Processadores. Aula 4. Pipelines Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de

Leia mais

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

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW Infraestrutura de Hardware Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem

Leia mais

Capítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1

Capítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1 Capítulo 6 Hazards 1998 organ Kaufmann Publishers Ch6c 1 Dependências de Dados Problema: iniciar uma instrução antes da anterior ter finalizado dependências que voltam no tempo são hazards de dados qual

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Baseado nos slides do capítulo

Leia mais

Explorando o paralelismo entre instruções

Explorando o paralelismo entre instruções Explorando o paralelismo entre instruções Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline Pipeline: Uma idéia natural Linhas de montagem

Leia mais

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

Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas: CAPÍTULO 5 PIPELINE Introdução Ciclo único versus pipeline Projetando o conjunto de instruções Pipeline Hazards Caminho de dados usando o pipeline Diagramas de Pipeline Controle do Pipeline Hazard de dados

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Cap. 06 Pipeline Prof. M.Sc. Bruno R. Silva Plano de aula Visão geral de pipelining Um caminho de dados usando pipelie Controle de um pipeline Hazards de dados e forwarding

Leia mais

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

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Datapath do MIPS MIPS Implementação Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Instruções de leitura (load lw) e de escrita (store sw) Instruções aritméticas e lógicas

Leia mais

Pipeline. Prof. Leonardo Barreto Campos 1

Pipeline. Prof. Leonardo Barreto Campos 1 Pipeline Prof. Leonardo Barreto Campos 1 Sumário Introdução; Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Caminho de Dados usando Pipeline; Representação Gráfica do Pipeline;

Leia mais

Sistemas de Microprocessadores DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA.

Sistemas de Microprocessadores DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA. Sistemas de Microprocessadores DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA Pipelining Pipelining é uma técnica que permite a execução de múltiplas

Leia mais

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações Arquitetura de Computadores Introdução ao Pipeline PIPELINE Linha de Montagem A produção é dividida em várias etapas Produtos em etapas distintas podem ser desenvolvidos separadamente Pode ser Aplicado

Leia mais

Resumão de Infra-estrutura de Hardware

Resumão de Infra-estrutura de Hardware Resumão de Infra-estrutura de Hardware Referência: Patterson & Hennessy - Organização e Projeto de Computadores Vanessa Gomes de Lima vgl2@cin.ufpe.br 1 MELHORANDO O DESEMPENHO COM PIPELINING Pipelining

Leia mais

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

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aulas 06 e 07 Superescalaridade 1. Introdução princípios

Leia mais

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 é

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 é 1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro

Leia mais

Pipeline. Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio. Estrutura da CPU. Em cada ciclo, a CPU deve:

Pipeline. Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio. Estrutura da CPU. Em cada ciclo, a CPU deve: Pipeline Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.Osório] Estrutura da CPU Em cada ciclo,

Leia mais

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

Unidade 4* - Aulas 1/2: Pipelines, Hazards e Forwarding Pontifícia Universidade Católica do Rio Grande do Sul Instituto de Informática Organização de Computadores - GAPH Unidade 4* - Aulas 1/2: Pipelines, Hazards e Forwarding Profs. Fernando Gehm Moraes e Ney

Leia mais

Pipelining. Luís Nogueira. Departamento Engenharia Informática Instituto Superior de Engenharia do Porto. Pipelining p.

Pipelining. Luís Nogueira. Departamento Engenharia Informática Instituto Superior de Engenharia do Porto. Pipelining p. Pipelining Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto Pipelining p. Análise de performance Desenho ciclo único de relógio é ineficiente

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 10ª Aula Pipeline Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Dependências ou Conflitos (Hazards) Conflitos Estruturais Pode haver acessos simultâneos à memória

Leia mais

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

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Pipelining Avançado Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Introdução A técnica de pipelining explora o paralelismo entre as instruções Paralelismo em Nível de Instrução (ILP). Métodos

Leia mais

Pipelining - analogia

Pipelining - analogia PIPELINE Pipelining - analogia Pipelining OBJECTIVO: Aumentar o desempenho pelo aumento do fluxo de instruções Program execution Time order (in instructions) lw $1, 100($0) Instruction fetch ALU Data access

Leia mais

Predição de Desvios e Processadores Superescalares Especulativos

Predição de Desvios e Processadores Superescalares Especulativos Predição de Desvios e Processadores Superescalares Especulativos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Tomasulo Especulativo Se os

Leia mais

shift register demux prefetch control inc ldpc + 1 MAR Pipelining

shift register demux prefetch control inc ldpc + 1 MAR Pipelining Unidade de prefetch (com uma só AM) MB_oe32 shift register 32 MB_oe8_s AM data 32 addr rd 0 1 P7 P6 demux 32 32 P5 shctrl 2 inc P4 load P3 prefetch control ldpc PC + 1 P2 2 P1 P0 8 read8 read32 MB_oe8_u

Leia mais

Microprocessadores. Execução em Paralelo Pipelines

Microprocessadores. Execução em Paralelo Pipelines Execução em Paralelo Pipelines António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Pipelines de Instrucções Instrucções são divididas em diferentes Estágios Pipelines

Leia mais

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

PROCESSADORES SUPERESCALARES FELIPE G. TORRES PROCESSADORES SUPERESCALARES FELIPE G. TORRES PROCESSAMENTO DAS INSTRUÇÕES Como podemos melhorar esse processamento? Arquitetura de computadores 2 PROCESSAMENTO DAS INSTRUÇÕES Como uma abordagem simplificada,

Leia mais

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. Pipeline

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. Pipeline Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação Arquitetura de Computadores I Pipeline Gabriel P. Silva 29.04.2017 Introdução Pipeline é uma técnica de implementação de processadores

Leia mais

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

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 Problemas: 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 P1) Qual é o propósito do instruction pipelining?

Leia mais

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

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM Arquitetura de Computadores II Pipeline Introdução Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal

Leia mais

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

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço

Leia mais

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

Parte 7 Pipeline: Conceitos básicos, implementação e ganho de desempenho Parte 7 Pipeline: Conceitos básicos, implementação e ganho de desempenho 1 Melhorando o Desempenho com Pipelining Baseado nas anotações do Livro do Hennessey & Patterson e no material do Prof. José Luís

Leia mais

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

1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador. Arquitetura de Computadores II Bacharelado em Ciência da Computação DCC - IM/UFRJ Prof.: Gabriel P. Silva Data: 18/04/2005 1 ª Lista de Exercícios de Arquitetura de Computadores II 1) Enumere e dê exemplo

Leia mais

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Assunto: Pipeline Aula #5 28 Mar 06 Revisão Na implementação

Leia mais

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

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. EA869 Pipeline Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Objetivos Conhecer técnicas de como melhorar o desempenho de um processador.

Leia mais

SSC0510 Arquitetura de Computadores

SSC0510 Arquitetura de Computadores SSC0510 Arquitetura de Computadores 9ª Aula Pipeline Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Dependências ou Conflitos (Hazards) Conflitos Estruturais Pode haver acessos simultâneos à memória

Leia mais

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F. Prefetch & Pipeline Otimização de Execução em Processadores Modernos Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio William Stallings - Computer Organization and Architecture, Chapter

Leia mais

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções Processadores Superescalares - Avançando na exploração de paralelismo entre instruções Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Instruction

Leia mais

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.

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. Pipelines João Canas Ferreira Mar-Abr 2004 Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap. 6) c JCF, 2004 ASPD (FEUP/LEEC) Pipelines 1/52 Conceitos básicos

Leia mais

SSC0902 Organização e Arquitetura de Computadores

SSC0902 Organização e Arquitetura de Computadores SSC0902 Organização e Arquitetura de Computadores 13ª Aula Definição de Pipeline e Pipeline da arquitetura MIPS Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquitetura CISC CISC Complex Instruction

Leia mais

Paralelismo ao Nível das Instruções p. 1

Paralelismo ao Nível das Instruções p. 1 Paralelismo ao Nível das Instruções Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto Paralelismo ao Nível das Instruções p. 1 Como melhorar

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES ORGANIZAÇÃO DE COMPUTADORES 2015/2016 1 o Semestre Repescagem 1 o Teste 1 de Fevereiro de 2016 Duração: 1h00 - O teste é sem consulta e sem calculadora. - Resolva o teste no próprio enunciado, o espaço

Leia mais

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

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples Infraestrutura de Hardware Implementação Multiciclo de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e

Leia mais

MO401. Arquitetura de Computadores I

MO401. Arquitetura de Computadores I Arquitetura de Computadores I 2006 Prof. Paulo Cesar Centoducatte ducatte@ic.unicamp.br www.ic.unicamp.br/~ducatte 4.1 Arquitetura de Computadores I Paralelismo em Nível de Instruções Exploração Dinâmica

Leia mais

DTSVLIW. UFES Mestrado em Informática. Arquiteturas Avançadas de Computador. Sotério Ferreira de Souza. Prof. Alberto Ferreira de Souza

DTSVLIW. UFES Mestrado em Informática. Arquiteturas Avançadas de Computador. Sotério Ferreira de Souza. Prof. Alberto Ferreira de Souza UFES Mestrado em Informática Arquiteturas Avançadas de Computador DTSVLIW Sotério Ferreira de Souza Orientador: Prof. Alberto Ferreira de Souza 23 de outubro de 2003 DTSVLIW Dynamically Trace Scheduled

Leia mais

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

lw, sw add, sub, and, or, slt beq, j Datapath and Control Queremos implementar o MIPS Instruções de referência à memória: lw, sw Instruções aritméticas e lógicas: add, sub, and, or, slt Controle de fluxo: beq, j Cinco passos de execução Busca

Leia mais

Capítulo 6 Pipeline Morgan Kaufmann Publishers

Capítulo 6 Pipeline Morgan Kaufmann Publishers Capítulo 6 Pipeline 998 organ Kaufmann Publishers Pipeline: analogia com linha de produção tempo carro Chassi ec Carroc. Pint. Acab. carro2 Chassi ec Carroc. Pint. Acab. carro3 Chassi ec Carroc. Pint.

Leia mais

Melhorando o Desempenho com Pipelining

Melhorando o Desempenho com Pipelining Melhorando o Desempenho com Pipelining Baseado nas anotações do Livro do Hennessey & Patterson e no material do Prof. José Luís Güntzel [www.ufpel.edu.br/~guntzel/aoc2/aoc2.html] 1 Relembrando desempenho...

Leia mais

William Stallings Computer Organization and Architecture

William Stallings Computer Organization and Architecture William Stallings Computer Organization and Architecture Capítulo 3 Como o Processador Funciona Arquitetura von Neumann Como discutido anteriormente, os projetos dos computadores modernos são baseados

Leia mais

SSC0114 Arquitetura de Computadores

SSC0114 Arquitetura de Computadores SSC0114 Arquitetura de Computadores 3ª Aula Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento MIPS Monociclo: Caminho de Dados e Unidade de Controle Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br

Leia mais

Caminho dos Dados e Atrasos

Caminho dos Dados e Atrasos Caminho dos Dados e Atrasos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline MIPS O MIPS utiliza um pipeline com profundidade 5, porém

Leia mais

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE Introdução Uma implementação MIPS básica Sinopse da implementação Sinais de controle Multiplexadores (muxes) Implementação monociclo Metodologia de clocking Construindo

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação

Leia mais

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

Infraestrutura de Hardware. Implementação Pipeline de um Processador Simples Infraestrutura de Hardware Implementação Pipeline de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Computadores vetoriais Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach e site do curso EE 7722, GPU Microarchitecture do Prof. David Koppelman Graphical

Leia mais

Paralelismo ao Nível da Instrução

Paralelismo ao Nível da Instrução Arquitectura de Computadores II 3º Ano Paralelismo ao Nível da Instrução (execução encadeada de instruções e super-escalaridade) João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Leia mais

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

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 08 Arquiteturas VLIW 1. Introdução VLIW é Very

Leia mais

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

Esse programa inclui dependências de tipo: escrita-escrita, leitura-escrita e escrita-leitura. Identifique e mostre estas dependências. Faculdade de Computação Arquitetura e Organização de Computadores 2 2 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 02/06/2016 Problemas: P1) Qual é o propósito do instruction pipelining?

Leia mais

Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores. 2º sem.

Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores. 2º sem. Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores º sem. / // º Teste Duração:, horas Grupo I Superpilining [ valores] Admita que tem um

Leia mais

Organização de computadores. Aula 05

Organização de computadores. Aula 05 Organização de computadores Aula 05 2 Níveis de um computador Computadores possuem uma série de níveis Cada um construído sobre seus antecessores Cada um representa uma abstração distinta com diferentes

Leia mais

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Microprocessadores CPU. Unidade de Controle. Prof. Henrique Microprocessadores CPU Unidade de Controle Prof. Henrique Roteiro Registradores; Unidade de Controle Níveis de Complexidade Introdução Um sistema microprocessado conta com diversos dispositivos para um

Leia mais

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

Leia mais

Arquitetura de Computadores Aula 11 - Multiprocessamento

Arquitetura de Computadores Aula 11 - Multiprocessamento Arquitetura de Computadores Aula 11 - Multiprocessamento Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br fsauer@gmail.com 1/28 PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento.

Leia mais

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio ARQUITETURA DE COMPUTADORES Organização de Sistemas Computacionais Prof.: Agostinho S. Riofrio Agenda 1. Unidade Central de Processamento 2. Organização da CPU 3. Interpretador 4. RISC x CISC 5. Principios

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,

Leia mais

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

CPU Implementação. Multiciclo. Prof. Carlos Bazilio CPU Implementação Multiciclo Prof. Carlos Bazilio bazilio@ic.uff.br Até então, tínhamos t... Problemas com Implementação Monociclo Ciclo de clock tem o mesmo tamanho para todas as instruções implementadas;

Leia mais

Infra-estrutura de Hardware

Infra-estrutura de Hardware CPU: Estrutura e Funcionalidade Roteiro da Aula Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Arquitetura de Computadores II Prof. Flávio Rogério Uber Informações Úteis Professor: Flávio Rogério Uber Bloco C-56 Sala

Leia mais

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. (CPU) Modelo do Computador Von Neumann Processador Memórias E/S Barramentos Simulação Contador http://courses.cs.vt.edu/csonline/machinearchitecture/lessons/cpu/countprogram.html

Leia mais

Organização de Sistemas de Computadores

Organização de Sistemas de Computadores Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Organização de Computadores

Organização de Computadores Organização do Processador - Parte A Capítulo 5 Patterson & Hennessy Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás Conteúdo Caminho de dados Caminho de controle Implementação

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 12 Estrutura e função do processador slide 1 Estrutura da CPU CPU precisa: Buscar instruções. Interpretar instruções. Obter

Leia mais

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

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios Lista de Exercícios PIPELINING 1. Qual a vantagem que a utilização da técnica de pipelining traz em relação a arquitetura MIPS-Multiciclo estudada em aula? Descreva textualmente. 2. Embora o desempenho

Leia mais

Arquitectura de Computadores MEEC (2014/15 2º Sem.)

Arquitectura de Computadores MEEC (2014/15 2º Sem.) Arquitectura de Computadores MEEC (2014/15 2º Sem.) Unidade de Controlo Prof. Nuno Horta PLANEAMENTO Introdução Unidade de Processamento Unidade de Controlo Arquitectura do Conjunto de Instruções Unidade

Leia mais

Conflitos. Aula 9. 31 de Março de 2005 1

Conflitos. Aula 9. 31 de Março de 2005 1 Conflitos Aula 9 31 de Março de 2005 1 Estrutura desta aula Taxonomia dos conflitos Dependências entre instruções Conflitos num pipeline Conflitos estruturais Conflitos de dados Conflitos de controlo Ref:

Leia mais

Organização ou MicroArquitectura

Organização ou MicroArquitectura Organização ou MicroArquitectura DataPath MIPS32 AC Micro-Arquitectura: DataPath do MIPS Datapath e Controlpath Datapath circuito percorrido pelas instruções, endereços e ados IP Inst. Mem. Register File

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Msc. Tiago Alves de Oliveira Objetivos Conhecer o processador Compreender os registradores

Leia mais

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

Arquitectura de Computadores II. Pipelining Avançado e Paralelismo ao Nível da Instrução (ILP Instruction Level Paralelism) Arquitectura de Computadores II LESI - 3º Ano Pipelining Avançado e Paralelismo ao Nível da Instrução (ILP Instruction Level Paralelism) João Luís Ferreira Sobral Departamento do Informática Universidade

Leia mais

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

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL INTRODUÇÃO À TECNOLOGIA DA ORGANIZAÇÃO COMPUTACIONAL PROFESSOR CARLOS MUNIZ ORGANIZAÇÃO DE UM COMPUTADOR TÍPICO Memória: Armazena dados e programas Processador (CPU - Central Processing Unit): Executa

Leia mais

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

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

Leia mais

Processadores Superescalares. Melhorando ainda mais o desempenho...

Processadores Superescalares. Melhorando ainda mais o desempenho... Processadores Superescalares Melhorando ainda mais o desempenho... Roteiro da Aula Pipeline e filosofia RISC Superpipeline Superscalar Dependências de dados em processadores superscalares Renomeamento

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Arquiteturas de Computadores Turma :A1 Lista 1 Profa.: Simone Martins 1. Tentando projetar o futuro: a) Em

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Microprocessadores. Família x86 - Evolução

Microprocessadores. Família x86 - Evolução Família x86 - Evolução António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt i8086 16 bits de dados 20 bits de endereços 1MByte Clock 2 [4,8] MHz i80286 24 bits de endereço

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico Sumário Introdução Unidade de Processamento Unidade de Controlo Conjunto de Instruções (CPU) Unidade de Entrada/Saída

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Implementação monociclo de IPS Fontes dos slides: Patterson & Hennessy book website (copyright organ Kaufmann) e Dr. Sumanta Guha Implementando IPS Implementação do conjunto

Leia mais

William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU

William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU Encruzilhada na arquitetura de computadores 2004/2005 Antiga opinião Nova visão a energia é de graça, os transistores

Leia mais

Prof. Gustavo Oliveira Cavalcanti https://sites.google.com/a/poli.br/professorgustavooc/

Prof. Gustavo Oliveira Cavalcanti https://sites.google.com/a/poli.br/professorgustavooc/ Sistemas Digitais Prof. Gustavo Oliveira Cavalcanti gustavooc@poli.br https://sites.google.com/a/poli.br/professorgustavooc/ Conteúdo Programático (Organização e Arquitetura) Arquitetura e história dos

Leia mais

AULA DE REVISÃO 4 ILP

AULA DE REVISÃO 4 ILP AULA DE REVISÃO 4 ILP Exercício 1: Qual seria o desempenho de referência (em ciclos, por iteração do loop) da sequência de código, mostrado abaixo, se nenhuma nova execução de instrução pudesse ser iniciada

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com

Leia mais

O Funcionamento do Processador

O Funcionamento do Processador O Funcionamento do Processador Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Os cinco componentes clássicos de um Computador - Controle O

Leia mais

1. Considere a execução do seguinte troço de código num processador com ISA compatível

1. Considere a execução do seguinte troço de código num processador com ISA compatível 1. Considere a execução do seguinte troço de código num processador com ISA compatível com o MIPS64. loop: L.D F0,0(R1) ; F0 M[R1+0] L.D F2,8(R1) ; F2 M[R1+8] L.D F4,0(R2) ; F4 M[R2+0] SUB.D F0,F0,F2 ;

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Implementação de MIPS multiciclo (cont.) Fontes dos slides: Patterson & Hennessy book website (copyright Morgan Kaufmann) e Dr. Sumanta Guha CPI em uma CPU multiciclo Assuma

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Implementação de IPS multiciclo Fontes dos slides: Patterson & Hennessy book website (copyright organ Kaufmann) e Dr. Sumanta Guha Problemas de projeto monociclo Assumindo

Leia mais

Sobre Projeto no Nível RT: Bloco de controle: Bloco operativo:

Sobre Projeto no Nível RT: Bloco de controle: Bloco operativo: Sobre Projeto no Nível RT: 1. No projeto no n.vel RT (register-tranfer) n.s trabalhamos a partir da divis.o cl.ssica "bloco operativo e bloco de controle". Explique: [1,5 pontos] (a) O que., e qual. a

Leia mais

Arquiteturas de Computadores

Arquiteturas de Computadores Arquiteturas de Computadores Computadores vetoriais Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach Introdução Arquiteturas Single Instruction Multiple Data podem explorar paralelismo

Leia mais