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

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

Download "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"

Transcrição

1 2.3 Dependências de dados (Data Hazards) Ocorre quando uma instrução depende do resultado de outra instrução que ainda está no pipeline. Este tipo de dependência é originado na natureza seqüencial do código em execução, cuja ordem normal é alterada dentro do pipeline. 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 No exemplo acima, pode-se ver que a instrução SUB precisa ler o conteúdo dos registradores no ciclo 3 mas o valor correto do registrador $s0 somente será atualizado no ciclo 5. A ação desencadeada é a parada (Stall) do estágio IF do pipeline até que o valor de $s0 esteja disponível. Caso contrário, o valor lido em $s0 não corresponderia à seqüência originalmente projetada para o código. Solução em hardware para a dependência de dados O problema de dependência de dados mostrado no exemplo pode ser resolvido com uma técnica de hardware chamada de adiantamento de dados (forwarding ou bypassing). Uma observação mais detalhada da estrutura do pipeline mostra que o valor de $s0 é realmente necessário no ciclo EX da instrução SUB e o novo valor de $s0 é calculado no ciclo EX da instrução ADD. Uma modificação no hardware (adiantamento) permite que o resultado obtido em um estágio do pipeline seja repassado para estágios anteriores (ou o próprio estágio que o produziu) antes de ser definitivamente atualizado. O comportamento do pipeline com dependências de dados e com adiantamento pode ser isto nos arquivos F0636.pdf e F0637.pdf. Exemplo: O diagrama a seguir mostra o resultado do adiantamento dos dados para o exemplo anterior. Os estágios ressaltados mostram o caminho dos dados dentro do pipeline. CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF ID EX MEM WB Apesar de resolver o problema da dependência de dados na maior parte dos casos, a técnica do adiantamento não evita a parada do pipeline em um seqüência de instruções específica. Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 LW $s0, 20($t1) IF ID EX MEM WB SUB $t2, $s0, $t3 IF ID Stall EX MEM WB A parada no pipeline sempre ocorrerá quando uma instrução acessar o conteúdo de um registrador que deve ser lido na memória pela instrução imediatamente anterior. Como mostrado no diagrama anterior, o novo valor do registrador $s0 somente estará disponível

2 Capítulo 2 Arquiteturas SISD de alto desempenho 2 no final do ciclo 4 e a instrução SUB realmente necessita de $s0 no início do ciclo 4. Este tipo de seqüência origina o chamado pipeline interlock. Os arquivos F0644.pdf e F0645.pdf ilustram a ocorrência de um pipeline interlock. Classificação de dependências de dados: RAW (Read After Write) ocorre quando a instrução i+1 tenta ler um dado que a instrução i ainda não atualizou; WAW (Write After Write) ocorre quando a instrução i+1 tenta escrever um dado antes que a instrução i atualize o mesmo; WAR (Write After Read) ocorre quando a instrução i+1 tenta escrever um dado antes que a instrução i possa lê-lo; RAR (Read After Read) não é uma dependência. As dependências do tipo WAW e RAW não ocorrem no tipo de pipeline estudado até agora, em que todas as instruções são executados nos mesmos passos. Solução em software para as dependências de dados Agendamento por compilador: vários tipos de dependências de dados são muito comuns. Um padrão típico de código para a equação A = B + C (variáveis em memória) gera uma dependência de dados. CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 LW $s1, B IF ID EX MEM WB LW $s2, C IF ID EX MEM WB ADD $s3, $s1, $s2 IF ID Stall EX MEM WB SW A, $s3 IF Stall ID EX MEM WB Para evitar a necessidade de parada em estágios do pipeline é possível que o compilador reorganize o código de forma que as instruções LW e ADD não ocorrem na seqüência direta. Esta técnica é chamada de agendamento (pipeline scheduling ou instruction scheduling). Exemplo: Considere o código gerado para execução das equações a = b + c; d = e f; LW $s1, b IF ID EX MEM WB LW $s2, c IF ID EX MEM WB ADD $s3, $s1, $s2 IF ID Stall EX MEM WB SW a, $s3 IF Stall ID EX MEM WB LW $s4, e IF ID EX MEM WB LW $s5, f IF ID EX MEM WB SUB $s6, $s4, $s5 IF ID Stall EX MEM WB SW d, $s6 IF Stall ID EX MEM

3 Capítulo 2 Arquiteturas SISD de alto desempenho 3 Com a reorganização do código é possível eliminar as paradas. A seguir está mostrado o código reorganizado. LW $s1, b IF ID EX MEM WB LW $s2, c IF ID EX MEM WB LW $s4, e IF ID EX MEM WB ADD $s3, $s1, $s2 IF ID EX MEM WB LW $s5, f IF ID EX MEM WB SW a, $s3 IF ID EX MEM WB SUB $s6, $s4, $s5 IF ID EX MEM WB SW d, $s6 IF ID EX MEM WB A reorganização somente é possível através do uso de diferentes registradores, e a aplicação da técnica pode acarretar um aumento na alocação de registradores em relação ao código não reorganizado. 2.4 Dependências de controle (Control Hazards) As dependências de controle ocorrem quando a seqüência normal de execução das instruções é modificada. Tal modificação pode ser originada pelo próprio programa ou pode ser conseqüência de uma interrupção. As instruções de desvio condicional podem ou não alterar a seqüência natural de execução das instruções. Ao se observar a estrutura do pipeline estudado, pode-se verificar que a decisão sobre o desvio ou não somente ocorre no estágio MEM. Exemplo: O primeiro diagrama mostra o comportamento do pipeline devido a um desvio condicional não (untaken). ADD $s3, $s2, $s1 IF ID EX MEM WB BEQ $s4, $s5, 100 IF ID EX MEM WB LW $s4, e IF Stall Stall IF ID EX MEM WB LW $s5, f IF ID EX MEM WB... SUB $s4, $s1, $t5 SW $t4, 500($s0) O segundo diagrama mostra o comportamento do pipeline devido a um desvio condicional (taken), em que a instrução SUB é o início da nova seqüência de instruções. ADD $s3, $s2, $s1 IF ID EX MEM WB BEQ $s4, $s5, 100 IF ID EX MEM WB LW $s4, e IF Stall Stall LW $s5, f... SUB $s4, $s1, $t5 IF ID EX MEM WB SW $t4, 500($s0) IF ID EX MEM WB

4 Capítulo 2 Arquiteturas SISD de alto desempenho 4 Redução dos atrasos nos desvios Como pode ser observado nos diagramas, a penalidade devido a desvios condicionais é de 3 ciclos. Para minimizar o impacto deste tipo de instrução duas abordagens podem ser tentadas: - descobrir mais cedo se um desvio será ou não ; - calcular o endereço de desvio mais cedo. Estas duas alternativas podem ser contempladas com algumas alterações no hardware, de forma que o circuito para o cálculo do novo valor do PC passe a operar no segundo estágio assim como o circuito de decisão do desvio. O resultado pode ser isto no diagrama a seguir. Exemplo: ADD $s3, $s2, $s1 IF ID EX MEM WB BEQ $s4, $s5, 100 IF ID EX MEM WB LW $s4, e IF LW $s5, f... SUB $s4, $s1, $t5 IF ID EX MEM WB SW $t4, 500($s0) IF ID EX MEM WB Apesar de diminuir a penalidade para 1 ciclo nos casos comuns, a existência de uma instrução de desvio condicionada a um dado, logo após uma operação aritmética que o calcula acrescenta uma dependência de dados ao problema. Um exemplo deste caso pode ser visto no diagrama abaixo: Exemplo: ADD $s3, $s2, $s1 IF ID EX MEM WB BEQ $s3, $s5, 100 IF ID EX MEM WB LW $s4, e IF Stall LW $s5, f... SUB $s4, $s1, $t5 IF ID EX MEM WB SW $t4, 500($s0) IF ID EX MEM WB Previsão de desvios A modificação do hardware para minimizar a penalidade de instruções de salto tem uma bom resultado no pipeline estudado (MIPS) mas muitas arquiteturas com pipelines mais longos podem sofrer uma penalidade muito maior. Isto acabou motivando a utilização de uma outra alternativa nas dependências de controle, chamada de previsão de desvios (branch prediction). A forma mais simples de previsão é assumir que todos os desvios condicionais vão

5 Capítulo 2 Arquiteturas SISD de alto desempenho 5 ser não s e permitir que o pipeline continue a execução normal das instruções seguintes à instrução de desvio. Se a previsão se concretiza, não existe nenhuma penalidade para o desvio, mas se a previsão falha então as instruções após à instrução de desvio devem ser anuladas no pipeline, em uma operação chamada flushing. Exemplo: Considere o diagrama abaixo referente a um pipeline com previsão de desvio não (untaken), no qual a previsão é correta. ADD $s3, $s2, $s1 IF ID EX MEM WB BEQ $s4, $s5, 100 IF ID EX MEM WB LW $s4, e IF ID EX MEM WB LW $s5, f IF ID EX MEM WB... SUB $s4, $s1, $t5 SW $t4, 500($s0) O segundo diagrama mostra o comportamento do mesmo pipeline quando o desvio é (taken), ou seja, a previsão foi incorreta. Considerar a instrução SUB como o destino do desvio. ADD $s3, $s2, $s1 IF ID EX MEM WB BEQ $s4, $s5, 100 IF ID EX MEM WB LW $s4, e IF Flush Flush Flush Flush LW $s5, f... SUB $s4, $s1, $t5 IF ID EX MEM WB SW $t4, 500($s0) IF ID EX MEM WB Desvios atrasados Uma terceira alternativa para reduzir a penalidade nos desvios é chamada de desvio atrasado (delayed branch). Nesta técnica, a instrução seguinte à de desvio é executada sempre, havendo o desvio ou não. Exemplo: BEQ $s4, $s5, 100 IF ID EX MEM WB ADD $s3, $s2, $s1 IF ID EX MEM WB LW $s4, e IF ID EX MEM WB LW $s5, f IF ID EX MEM WB... SUB $s4, $s1, $t5 IF ID EX MEM WB SW $t4, 500($s0) IF ID EX MEM WB Como pode ser visto no diagrama acima, a instrução ADD foi deslocada de forma que ocorrendo ou não o desvio (as duas alternativas são mostradas) não haja penalidade. A responsabilidade de escolha da instrução sucessora do desvio é do compilador, e algumas

6 Capítulo 2 Arquiteturas SISD de alto desempenho 6 otimizações são possíveis (arquivo F0654.pdf). Os compiladores tipicamente conseguem preencher com instruções úteis apenas 50% dos espaços após os desvios. Conforme comentado anteriormente, pipelines mais longos podem não se beneficiar totalmente desta técnica pois seria necessário mais do que uma instrução sucedendo o desvio. Previsão estática de desvios A previsão estática de desvios é aquela que pode ser feita em tempo de compilação. Muitos métodos de agendamento por compilador necessitam da previsão estática de desvios. Esta previsão é baseada em valores estatísticos, determinados através da análise de comportamento do código ou através da execução prévia do mesmo (profile based prediction). A seguir é apresentado um trecho de código: LW $s1, 0($s2)0 SUB $s1, $s1, $s3 BEQ $s2, $s1, L OR $s4, $s5, $s6 ADD $s10, $s4, $s3 L: ADD $s7, $s8, $s9 Neste trecho existe uma dependência entre LW, SUB e BEQ, a qual causaria um stall após LW. Se existe uma grande probabilidade do desvio ser, então a última instrução do trecho pode ser a sucessora de LW, desde que $s7 não seja utilizado no caminho não. Se existe uma grande probabilidade do desvio ser não então a instrução OR pode ser a sucessora de LW, desde $s4 não seja utilizado no caminho. As duas alternativas são vistas a seguir. Previsto Previsto não LW $s1, 0($s2) LW $s1, 0($s2) ADD $s7, $s8, $s9 OR $s4, $s5, $s6 SUB $s1, $s1, $s3 SUB $s1, $s1, $s3 BEQ $s2, $s1, L BEQ $s2, $s1, L OR $s4, $s5, $s6 ADD $s10, $s4, $s3 ADD $s10, $s4, $s3 L: ADD $s7, $s8, $s9 L: New instruction Previsão dinâmica de desvios Os métodos de previsão dinâmica de desvios procuram lidar com a variação de comportamento das instruções de desvio durante a execução dos programas. Estas previsões são feitas em hardware ao contrário das previsões estáticas. O método mais simples de previsão é chamado de branch history table (BHT) e consiste em uma pequena memória indexada por parte do endereço da instrução de desvio. Tal memória armazena um bit que indica se o desvio foi ou não no último acesso. Um dos problemas com este tipo de previsão é a possibilidade de mais de uma instrução alterar o mesmo bit dentro da BHT.

7 Capítulo 2 Arquiteturas SISD de alto desempenho 7 Uma evolução deste método de previsão é um esquema de BHT com dois bits. Neste caso, é preciso que a previsão seja errada duas vezes seguidas para que seja modificada. A figura a seguir mostra os estados de um esquema BHT de dois bits. Prever não Prever Prever não não não Prever não A memória de previsão de desvio pode ser implementada como uma pequena cache durante o ciclo de busca (IF). Este esquema é bastante útil para uma série de arquiteturas mas não para o pipeline estudado, pois o endereço de desvio somente é definido no final do ciclo ID. Uma forma de reduzir esta penalidade é através da extensão da BHT para uma implementação chamada de branch-target buffer (BTB). Neste tipo de memória, além dos bits de previsão de desvio, também são armazenados os prováveis endereços de destino no caso de um desvio. 2.5 Pipeline com suporte para operações multiciclo não Certas operações de uma arquitetura não podem ser realizadas em apenas um ciclo, como devem ser as operações em um pipeline. As operações realizadas sobre números de ponto flutuante são um exemplo. Para dar suporte a este tipo de operação vamos considerar que várias unidades funcionais (EX) estarão disponíveis e poderão operar em paralelo. A seguir estão caracterizadas estas unidades no pipeline estudado. EX Integer EX FP/integer multiply IF ID MEM WB EX FP adder EX FP/integer divider

8 Capítulo 2 Arquiteturas SISD de alto desempenho 8 Os estágios acrescentados na figura anterior são dedicados a determinadas operações, que utilizam repetidamente os referidos estágios durante alguns ciclos. Assim, por exemplo, se uma multiplicação de números inteiros pode ser dividida em cinco etapas, a respectiva unidade será utilizada por cinco ciclos. Para evitar os possíveis hazards estruturais, as unidades acrescentadas podem ter a sua estrutura implementada com uma arquitetura pipeline. A figura abaixo mostra como ficaria a estrutura do pipeline com suporte a operações multiciclos. Note que a unidade de divisão necessita de 15 ciclos para o cálculo e tal unidade não é pipeline. M1 M2 M3 M4 M5 M6 M7 EX IF ID MEM WB A1 A2 A3 A4 DIV A seguir está mostrado o diagrama de temporização para duas das unidades acrescentadas. Os estágios representados em itálico indicam onde os operandos são necessários e os estágios em negrito indicam onde os resultados são fornecidos: MULTD IF ID M1 M2 M3 M4 M5 M6 M7 MEM WB ADDD IF ID A1 A2 A3 A4 MEM WB LD IF ID EX MEM WB SD IF ID EX MEM WB Uma estrutura pipeline com operações multiciclo como a mostrada acima introduz uma série de aspectos que não estavam presentes no pipeline original: - possibilidade de dependência estrutural devido a unidade de divisão não pipeline; - como existem instruções com tempos de execução diferentes é possível que ocorra a necessidade de escrita em mais de um registrador no mesmo ciclo; - dependências do tipo WAW podem ocorrer, pela mesma razão anterior; - as instruções podem ser finalizadas em uma ordem diferente da ordem pré-definida; - existe uma maior probabilidade de dependências do tipo RAW e a penalidade (número de ciclos de stall) neste caso é maior. Considere os trechos de código a seguir e desenvolva o diagrama de temporização

9 Capítulo 2 Arquiteturas SISD de alto desempenho 9 para o pipeline multiciclos: Trecho 1 Trecho 2 LD F4, 0(R2) MULTD F0, F4, F6 MULTD F0, F4, F6... ADDD F2, F0, F8... SD F2, 0(R2) ADDD F2, F4, F LD F8, 0(R2) 2.6 Arquiteturas Superescalares Como visto nas seções anteriores, as arquiteturas pipeline implementam uma espécie de paralelismo (parcial) entre instruções, o que, no melhor dos casos, permite um desempenho de execução de 1 instrução por ciclo (1 IPC Instruction Per Cycle). As alternativas para aumentar o desempenho de uma arquitetura são as seguintes: - Superpipelining; - Superescalaridade; - Very Long Instruction Word (VLIW) Superpipelining A filosofia do superpipeline está baseada no fato de que muitos dos estágios de um pipeline podem operar em um tempo menor que a metade de um ciclo de clock. Assim, a estrutura do pipeline pode operar em uma freqüência que é o dobro da freqüência do restante do processador, permitindo a execução de duas instruções durante o período de um ciclo de clock externo. Neste caso o superpipeline é chamado de grau 2, mas superpipelines de maior grau são possíveis. A designação superpipeline está associado a pipelines com muitos estágios (>8), ou seja, pipelines profundos Superescalaridade O termo superescalar diz respeito às arquiteturas projetadas para executar múltiplas instruções escalares simultaneamente. Isto quer dizer que múltiplas unidades funcionais são necessárias e que múltiplos pipelines estarão operando em paralelo. A grande maioria dos processadores atuais está baseada em arquiteturas superescalares. Arquiteturas superescalares de n vias de execução podem atingir um desempenho máximo de n IPC. Assim, uma arquitetura de 4 vias de execução pode executar até 4 instruções por ciclo. Desempenho (IPC) = n instruções executadas / n ciclos decorridos Desempenho (CPI) = n ciclos decorridos / n instruções executadas

10 Capítulo 2 Arquiteturas SISD de alto desempenho 10 Uma estrutura de máquina superescalar pode ser vista a seguir. No exemplo mostrado, uma unidade de busca despacha um par de instruções para os respectivos pipelines. Para que uma máquina seja realmente paralela, todos os recursos de hardware devem ser duplicados, mas isto não é o que acontece com muitas máquinas reais. Nestas, apenas algumas instruções podem executar em paralelo ou certos tipos de instruções podem executar em paralelo. Instruction fetch Instruction decode Instruction decode Operand fetch Operand fetch Instruction execution Instruction execution Write back Write back A figura a seguir mostra um diagrama comparativo do comportamento de três arquiteturas: pipeline normal, superpipeline de grau 2 e superescalar de 2 vias de execução. Pipeline normal Superpipeline Superescalar Assim como as dependências limitam o desempenho de um pipeline, o mesmo ocorre com uma arquitetura superescalar. O resultado de uma abordagem de execução paralela depende do grau no qual as instruções de um programa podem ser executadas em paralelo, o que é conhecido por paralelismo a nível de instruções (ILP instruction-level parallelism). Como visto nas seções anteriores, uma combinação de técnicas de hardware com otimizações baseadas em software (compilador) pode melhorar o ILP. Deve ser feita uma distinção entre ILP e paralelismo de máquina. O ILP ocorre quando as instruções de uma seqüência de código são independentes e podem ser executadas em paralelo. O paralelismo

11 Capítulo 2 Arquiteturas SISD de alto desempenho 11 de máquina é a medida da capacidade do processador de utilizar efetivamente o ILP. Os trechos de código a seguir exemplificam o conceito de ILP: Trecho 1 Trecho 2 Load R1 R2 Add R3 R3, 1 Add R3 R3, 1 Add R4 R3, R2 Add R4 R4, R2 Store [R4] R0 As três instruções do trecho 1 são independentes e teoricamente as três podem ser executadas em paralelo. As três instruções do trecho 2 são dependentes entre si e não podem ser executadas em paralelo. ILP e paralelismo de máquina são fatores importantes para o ganho de desempenho. Isto quer dizer que não basta uma máquina dispor de imensos recursos de hardware para que se atinja um imenso desempenho. Uma das principais tarefas de um processador superescalar é a identificação do ILP de uma aplicação, para o adequado gerenciamento da busca, decodificação e execução paralela das instruções. Política de despacho de instruções O termo despacho de instrução (instruction-issue) refere-se à operação de envio de uma instrução para a respectiva unidade funcional. Na realidade, o processador busca antecipadamente as instruções de forma que possa determinar quais realmente podem ser executadas pelo pipeline. Existem três tipos de ordem nas operações em um processador: - a ordem na qual as instruções são buscadas; - a ordem na qual as instruções são executadas; - a ordem na qual as instruções atualizam os registradores e a memória. Quanto mais sofisticado o processador, menos relacionados estão estes ordenamentos. Para otimizar a utilização dos vários estágios dos pipelines, o processador pode ser forçado a alterar um ou mais destes ordenamentos em relação a uma execução puramente seqüencial. Assim, o processador pode acomodar as várias dependências discutidas anteriormente. A única e óbvia restrição é que os resultados devem ser corretos. As políticas de despacho de instruções para arquiteturas superescalares podem ser classificadas como: - despacho em ordem e término em ordem; - despacho em ordem com término fora de ordem; - despacho fora de ordem com término fora de ordem. A primeira alternativa corresponde a uma execução seqüencial do código, no qual as instruções são executadas e os resultados atualizados na mesma ordem de busca na memória. Nem mesmo os pipelines comuns (não superescalar) utilizam esta abordagem mas a mesma deve considerada para termos de comparação.

12 Capítulo 2 Arquiteturas SISD de alto desempenho 12 Para exemplificar esta alternativa, vamos considerar uma arquitetura superescalar de 2 vias, com 3 unidades funcionais, executando um trecho de código de 6 instruções que tem as seguintes restrições: I1 precisa de 2 ciclos para execução I3 e I4 utilizam a mesma unidade funcional I5 depende de I4 I5 e I6 utilizam a mesma unidade funcional O diagrama a seguir mostra a utilização dos diferentes estágios do pipeline em questão. Decodificação Execução Atualização Ciclo I1 I2 1 I3 I4 I1 I2 2 I3 I4 I1 3 I4 I3 I1 I2 4 I5 I6 I4 I3 5 I6 I5 I4 6 I6 I5 7 I6 8 A segunda alternativa de despacho prevê o término das instruções em uma ordem diferente da ordem de busca. Isto é comum em arquiteturas RISC, principalmente quando existem instruções do tipo multiciclo. A seguir é mostrado o diagrama do mesmo trecho de programa anterior com a possibilidade de término fora de ordem. Como visto na seção sobre pipelines multiciclo, o término fora de ordem torna possível o aparecimento de dependência do tipo WAW, também chamada de dependência de saída. Decodificação Execução Atualização Ciclo I1 I2 1 I3 I4 I1 I2 2 I4 I1 I3 I2 3 I5 I6 I4 I1 I3 4 I6 I5 I4 5 I6 I5 6 I6 7 A terceira alternativa compreende o despacho e o término fora de ordem. Para tornar esta abordagem possível, é preciso desacoplar os estágios de decodificação e execução e introduzir um novo elemento entre os mesmos, chamado de buffer de instruções (instruction window). Desta forma, tão logo as instruções sejam decodificadas, elas são enviadas para o buffer de instruções e o processador pode continuar a decodificar as instruções seguintes. Assim que a respectiva unidade funcional esteja disponível, a instrução presente no buffer pode ser despachada para execução. Qualquer instrução pode ser despachada considerando que não haja dependência ou conflito com outras. O diagrama

13 Capítulo 2 Arquiteturas SISD de alto desempenho 13 de utilização do pipeline para este caso é visto a seguir. Decodificação Execução Atualização Ciclo I1 I2 1 I3 I4 I1 I2 2 I5 I6 I1 I3 I2 3 I6 I4 I1 I3 4 I5 I4 I6 5 I5 6 O resultado de um despacho fora de ordem é um processador com capacidade de antecipação de instruções. O buffer de instruções não é um estágio adicional do pipeline, significando apenas a capacidade que o processador tem de manter informações para o despacho de instruções. O despacho fora de ordem torna possível o aparecimento de dependências do tipo WAR, também chamadas de antidependências. O trecho de código a seguir é utilizado para exemplificar as dependências WAW e WAR. I1: R3 R3 op R5 I2: R4 R3 + 1 I3: R3 R5 + 1 I4: R7 R3 op R4 I2 depende de I1 (RAW) e não pode ser executada em paralelo. Da mesma forma I4 depende de I3 (RAW). Entre I1 e I3 não existe dependência de dados mas as duas instruções atualizam o mesmo registrador e não podem ser executadas em paralelo (WAW). Assim, a instrução I3 deve obrigatoriamente ser executada após I1. Além disso, apesar de I3 não possuir dependência de dados em relação à I2, I3 não pode atualizar o resultado antes de I2 ler os seus operandos, o que caracteriza uma antidependência (WAR). Renomeação de registradores (register renaming) Ao contrário das dependências do tipo RAW, as dependências do tipo WAW e WAR aparecem pela utilização dos mesmos registradores por instruções diferentes, o que é um conflito por armazenamento. Isto torna-se mais crítico quando técnicas de otimização de registradores são implementadas para maximizar o uso dos registradores. Uma forma de contornar este problema é chamada de renomeação de registradores, e consiste na alocação dinâmica dos registradores pelo hardware do processador para armazenamento temporário dos valores utilizados pelas instruções. Quando um novo valor para um registrador é criado, um registrador de rascunho é alocado para receber o mesmo. Instruções posteriores que utilizam este valor passam por um processo de renomeação de registrador, o qual garante a correção de resultados. No instante adequado, o registrador original é atualizado. A seguir é mostrado como ocorre o processo de renomeação, considerando o trecho de código acima.

14 Capítulo 2 Arquiteturas SISD de alto desempenho 14 I1: R3 b R3 a op R5 a I2: R4 b R3 b + 1 I3: R3 c R5 a + 1 I4: R7 b R3 c op R4 b Com a renomeação dos registradores, a instrução I3 pode ser executada em paralelo com a instrução I Very Long Instruction Word (VLIW) Uma abordagem de execução paralela similar à abordagem superescalar foi sugerida antes desta, e compreende arquiteturas com instruções longas. Esta abordagem prevê que várias instruções sejam empacotadas em uma grande instrução e despachadas simultaneamente. Esta tecnologia está baseada no compilador que tem a responsabilidade de gerenciar as dependências e a utilização dos recursos de hardware. A grande vantagem de arquiteturas superescalares é a possibilidade de executar o código sem modificação, enquanto que arquiteturas VLIW precisam executar código específico.

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

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

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Pipeline Slide 1 Pipeline Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Organização e Arquitetura de Computadores I Caminho de Dados

Leia mais

Arquitetura e Organização de Computadores 2

Arquitetura e Organização de Computadores 2 Arquitetura e Organização de Computadores 2 Escalonamento Estático e Arquiteturas VLIW Dynamic Scheduling, Multiple Issue, and Speculation Modern microarchitectures: Dynamic scheduling + multiple issue

Leia mais

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva Arquitetura de Computadores - Processadores Superescalares por Helcio Wagner da Silva Introdução O Pipeline é uma técnica desenvolvida para a melhoria do desempenho frente à execução seqüencial de instruções

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

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções Organização e Arquitetura de Computadores Capítulo 13 Paralelismo no nível de instruções O que é Superescalar? As arquiteturas superescalares são aquelas capazes de buscar, decodificar, executar e terminar

Leia mais

Visão Geral de Pipelining

Visão Geral de Pipelining Pipeline Visão Geral de Pipelining Instruções MIPS têm mesmo tamanho Mais fácil buscar instruções no primeiro estágio e decodificar no segundo estágio IA-32 Instruções variam de 1 byte a 17 bytes Instruções

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Organização do MIPS: pipeline Visão geral do pipeline Analogia com uma Lavanderia doméstica 1

Leia mais

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

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ Microarquiteturas de Alto Desempenho Pipeline Gabriel P. Silva Introdução Pipeline é uma técnica de implementação de processadores

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

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores. Ivan Saraiva Silva Arquitetura de Computadores MIPS Pipeline Ivan Saraiva Silva Pipeline 4 pessoas (A, B, C, D) possuem sacolas de roupa para lavar, secar e dobrar A B C D Lavar leva 30 minutos Secar leva 40 minutos Dobrar

Leia mais

Implementação de pipelines

Implementação de pipelines Implementação de pipelines João Canas Ferreira Novembro de 2005 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3ª. ed., MKP JCF, 2005 AAC (FEUP/LEIC) Implementação

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Infraestrutura de Hardware. Revisão Pipeline, Superescalar e Multicores

Infraestrutura de Hardware. Revisão Pipeline, Superescalar e Multicores Infraestrutura de Hardware Revisão Pipeline, Superescalar e Multicores Pipeline Pipeline é uma técnica que visa aumentar o nível de paralelismo de execução de instruções ILP (Instruction-Level Paralellism)

Leia mais

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES CAPÍTULO IV AULA II Maio 2014 Índice Processadores Revisões Pipelining Pipeline hazards Hazard estrutural Hazard de dados Hazard de controlo Pipelining datapath Pipelined control

Leia mais

Sequenciamento dinâmico

Sequenciamento dinâmico Sequenciamento dinâmico João Canas Ferreira Outubro de 2004 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3 a. ed., MKP c JCF, 2004 AAC (FEUP/LEIC) Sequenciamento

Leia mais

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

Sistemas Processadores e Periféricos Aula 5 - Revisão Sistemas Processadores e Periféricos Aula 5 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Revisão dependências de dados

Revisão dependências de dados Revisão dependências de dados Dependências de dados resolvidas com adiantamento (quase sempre) Deve garantir que instruções anteriores escreverão resultado, destino é mesmo que fonte, e instrução anterior

Leia mais

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras Pipelining Professor: Carlos Bazilio Contextualizando Após apresentação da arquitetura interna de processadores Memória de Controle Microprograma Linguagem de Máquina... Motivação Idéia Geral Estágios

Leia mais

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64 Arquitecturas Alternativas Pipelining Super-escalar VLIW IA-64 Pipeline de execução A execução de uma instrução passa por várias fases: Vimos o ciclo: fetch, decode, execute fetch decode execute instrução

Leia mais

Algumas características especiais

Algumas características especiais Algumas características especiais Tópicos o Medidas de desempenho o CISC versus RISC o Arquiteturas Superescalares o Arquiteturas VLIW Medidas de desempenho Desempenho é muito dependente da aplicação MIPS:

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

O Processador: Caminho de Dados e Controle

O Processador: Caminho de Dados e Controle 22 Capítulo 3 O Processador: Caminho de Dados e Controle O desempenho de um computador é determinado por três fatores principais: o número de instruções executadas, o período do clock e o número de ciclos

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Introdução ao Processamento Paralelo

Introdução ao Processamento Paralelo Introdução ao Processamento Paralelo Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Introdução Crescente aumento de desempenho dos PCs (máquinas convencionais). Existem aplicações que requisitam

Leia mais

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir. 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 tempo para prosseguir O tempo requerido para mover uma instrução

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

7-1. Parte 6 Otimizações da Arquitetura

7-1. Parte 6 Otimizações da Arquitetura 7-1 Parte 6 Otimizações da Arquitetura 7-2 Bibliografia [1] Miles J. Murdocca e Vincent P. Heuring, Introdução à Arquitetura de Computadores [2] Andrew S. Tanenbaum, Modern Operating Systems [3] William

Leia mais

RISC simples. Aula 7. 31 de Março de 2005 1

RISC simples. Aula 7. 31 de Março de 2005 1 RISC simples Aula 7 31 de Março de 2005 1 Estrutura desta aula Principais características dos processadores RISC Estrutura de um processador (MIPS) sem pipeline, de ciclo único O datapath ou circuito de

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Introdução à Organização de Computadores Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Tópicos Processadores Memória Principal Memória Secundária Entrada e

Leia mais

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Introdução à Organização de Computadores Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 CPU (Central Processing Unit) é o coordenador de todas as atividades

Leia mais

3. Arquiteturas SIMD. 3.1 Considerações iniciais

3. Arquiteturas SIMD. 3.1 Considerações iniciais 3. Arquiteturas SIMD Computadores SIMD (Single Instruction Multiple Data) são utilizados para a resolução de problemas computacionalmente intensivos da área científica e de engenharia, em que existem estruturas

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

As características comuns, encontradas na maioria dos processadores RISC são as seguintes:

As características comuns, encontradas na maioria dos processadores RISC são as seguintes: 4 2. COMPARAÇÃO DAS ARQUITETURAS RISC 2.1 - Introdução Os microprocessadores RISC se distinguem por uma série de características comuns, que resultam em uma solução de baixo custo e alto desempenho. Contudo,

Leia mais

Arquiteturas que Exploram Paralismos: VLIW e Superscalar. Ch9 1

Arquiteturas que Exploram Paralismos: VLIW e Superscalar. Ch9 1 Arquiteturas que Exploram Paralismos: VLIW e Superscalar Ch9 1 Introdução VLIW (Very Long Instruction Word): Compilador empacota um número fixo de operações em uma instrução VLIW As operações dentro de

Leia mais

ArchC. Wesley Nunes Gonçalves

ArchC. Wesley Nunes Gonçalves Implementação do Processador ARM7 em ArchC Wesley Nunes Gonçalves 23 de novembro de 2007 ARM7 Instruções Implementadas O ARM possui 37 registradores, sendo 31 registradores de propósito geral e 6 registradores

Leia mais

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Componentes de um Computador (5) Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/01 - INF02597 Com slides de Roberta Lima Gomes

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Univ ersidade Federal do Rio de Janei ro Info rmátic a DCC/IM Arquitetura de Computadores II Microarquiteturas Avançadas Gabrie l P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática

Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática Um Caminho de Dados Pipeline Para a ISA MIPS: Aprendendo na Prática Francisco Carlos Silva Junior 1, Ivan Saraiva Silva 1 1 Departamento de Computação Universidade Federal do Piauí (UFPI) Caixa Postal

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1 ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES Prof. Dr. Daniel Caetano 2012-1 Lembretes Compreender o funcionamento da Arquitetura Superpipeline Compreender

Leia mais

MODOS DE ENDEREÇAMENTO

MODOS DE ENDEREÇAMENTO UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO MODOS DE ENDEREÇAMENTO MARINGÁ 2014 SUMÁRIO 6 MODOS DE ENDEREÇAMENTO...2 6.1 ENDEREÇAMENTO

Leia mais

SSC510 Arquitetura de Computadores. 2ª aula

SSC510 Arquitetura de Computadores. 2ª aula SSC510 Arquitetura de Computadores 2ª aula PROFA. SARITA MAZZINI BRUSCHI CISC E RISC ARQUITETURA MIPS PIPELINE Arquitetura CISC CISC Complex Instruction Set Computer Computadores complexos devido a: Instruções

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva Introdução RISC = Reduced Instruction Set Computer Elementos básicos: Grande número de registradores de propósito geral ou uso

Leia mais

28/9/2010. Unidade de Controle Funcionamento e Implementação

28/9/2010. Unidade de Controle Funcionamento e Implementação Arquitetura de Computadores Unidade de Controle Funcionamento e Implementação Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Operação da Unidade de Controle Unidade de controle: parte do

Leia mais

Paralelismo a Nível de Instrução

Paralelismo a Nível de Instrução Paralelismo a Nível de Instrução É possível obter maior desempenho computacional com: tecnologias mais avançadas, tais como circuitos mais rápidos; melhor organização da CPU, tais como o uso de múltiplos

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 1 Processadores Computador Processador ( CPU ) Memória E/S Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 2 Pastilha 3 Processadores (CPU,, Microcontroladores)

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8 Índice 1. A Organização do Computador - Continuação...3 1.1. Processadores - II... 3 1.1.1. Princípios de projeto para computadores modernos... 3 1.1.2. Paralelismo...

Leia mais

Execução concorrente de instruções

Execução concorrente de instruções Execução concorrente de instruções Aspectos avançados João Canas Ferreira Outubro de 2010 João Canas Ferreira (FEUP) ILP Outubro de 2010 1 / 58 Assuntos 1 Previsão dinâmica de saltos 2 Sequenciamento dinâmico

Leia mais

Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano

Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano Objetivo: Apresentar os conceitos das arquiteturas CISC e RISC, confrontando seus desempenhos. Bibliografia:

Leia mais

Unidade Central de Processamento

Unidade Central de Processamento Unidade Central de Processamento heloar.alves@gmail.com Site: heloina.com.br 1 CPU A Unidade Central de Processamento (UCP) ou CPU (Central Processing Unit), também conhecida como processador, é responsável

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

RISC X CISC - Pipeline

RISC X CISC - Pipeline RISC X CISC - Pipeline IFBA Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores 25 e 26/30 Prof. Msc. Antonio Carlos Souza Referências

Leia mais

Execução concorrente de instruções

Execução concorrente de instruções Execução concorrente de instruções Aspectos avançados João Canas Ferreira 2007-10-29 Tópicos de Arquitectura de Computadores Assuntos Tópicos 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 6 - ARQUITETURAS AVANÇADAS DE COMPUTADORES 1. INTRODUÇÃO As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com ela o conceito de arquitetura avançada tem se modificado. Nos

Leia mais

Programando o computador IAS

Programando o computador IAS Programando o computador IAS Edson Borin e Rafael Auler 21 de março de 2012 1 Introdução O computador IAS foi um dos primeiros computadores a implementar o conceito do programa armazenado. Neste paradigma,

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Nível da Microarquitetura

Nível da Microarquitetura Nível da Microarquitetura (Aula 10) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES Máquina de Vários Níveis Modernas (ISA)

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Arquitetura de Computadores. Arquitetura de Computadores 1

Arquitetura de Computadores. Arquitetura de Computadores 1 Computadores Computadores 1 Introdução Componentes: Processador; UC; Registradores; ALU s, FPU s, etc. Memória (Sistema de armazenamento de informações; Dispositivo de entrada e saída. Computadores 2 Introdução

Leia mais

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico MICROPROCESSADORES Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico Sumário Introdução Unidade de Controlo Conjunto de Instruções Unidade Central de Processamento (CPU)

Leia mais

FACULDADE PITÁGORAS PRONATEC

FACULDADE PITÁGORAS PRONATEC FACULDADE PITÁGORAS PRONATEC DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br Objetivos Ao final desta apostila,

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

Arquitectura de Computadores II

Arquitectura de Computadores II Departamento de Ciências e Tecnologias da Informação Arquitectura de Computadores II Textos de apoio Pipelines Versão 0.02 Junho de 2010 Tomás Brandão. ISCTE-IUL - DCTI 2 Índice 1. ITRODUÇÃO... 5 2. FUCIOAMETO...

Leia mais

Nível de Micro Arquitetura Melhorando o Desempenho

Nível de Micro Arquitetura Melhorando o Desempenho Nível de Micro Arquitetura Melhorando o Desempenho parte 3 Orlando Loques outubro 2006 Referências: Structured Computer Organization, A.S. Tanenbaum, (c) 2006 Pearson Education Inc Computer Organization

Leia mais

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

Leia mais

Organização e Arquitetura de Computadores. Hugo Barros email@hugobarros.com.br

Organização e Arquitetura de Computadores. Hugo Barros email@hugobarros.com.br Organização e Arquitetura de Computadores Hugo Barros email@hugobarros.com.br RISC X SISC RISC: Reduced Instruction Set Computer Nova Tecnologia para máquinas de alta performance; Máquina com um conjunto

Leia mais

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva Arquitetura Computadores - Princípio Funcionamento da CPU Por Helcio Wagner da Silva Arquitetura Von Neumann Memória Principal CPU ULA UC Dispositivo E/S ULA : Unida Lógica Aritmética UC : Unida Controle

Leia mais

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 3- Memórias 4- Dispositivos

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Unidade 4 Paralelismo em Nível de Instrução. Filipe Moura de Lima Gutenberg Pessoa Botelho Neto Thiago Vinícius Freire de Araújo Ribeiro

Unidade 4 Paralelismo em Nível de Instrução. Filipe Moura de Lima Gutenberg Pessoa Botelho Neto Thiago Vinícius Freire de Araújo Ribeiro Unidade 4 Paralelismo em Nível de Instrução Filipe Moura de Lima Gutenberg Pessoa Botelho Neto Thiago Vinícius Freire de Araújo Ribeiro Sumário Introdução O Pipeline Pipeline em diferentes CPUs ARM Cortex-A9

Leia mais

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar Arquitetura de Computadores RISC x CISC Gustavo Pinto Vilar PPF / DPF Papiloscopista Policial Federal Pós-Graduado em Docência do Ensino Superior UFRJ Graduado em Ciência da Computação e Processamento

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - O NÍVEL DA MICROARQUITETURA 1. INTRODUÇÃO Este é o nível cuja função é implementar a camada ISA (Instruction Set Architeture). O seu projeto depende da arquitetura do conjunto das instruções

Leia mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Execções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Exceções Exceções (ou interrupções ou falta) Desvio para um endereço que não faz

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br ESQUEMA DE UM COMPUTADOR Uma Unidade Central de

Leia mais

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP. A ARQUITETURA DE UM COMPUTADOR A arquitetura básica de um computador moderno segue ainda de forma geral os conceitos estabelecidos pelo Professor da Universidade de Princeton, John Von Neumann (1903-1957),

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Aula 08: UCP Características dos elementos internos da UCP: registradores, unidade de controle, decodificador de instruções, relógio do sistema. Funções do processador: controle

Leia mais

Processador ARM Cortex-A9

Processador ARM Cortex-A9 Erick Nogueira Nascimento (032483) Franz Pietz (076673) Lucas Watanabe (134068) 11 de junho de 2012 Introdução Alto desempenho e economia de energia Arquitetura ARMv7-A Características do processador super-escalável

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Unidade cadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e rquitetura de Computadores I Nível da Microarquitetura (Parte

Leia mais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da

Leia mais

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Unidade cadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e rquitetura de Computadores I Organização e rquitetura Básicas

Leia mais

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Os textos nestas caixas foram adicionados pelo Prof. Joubert William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 4 Memória cache Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Características Localização. Capacidade.

Leia mais