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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

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

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

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

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação 36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas

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

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

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

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

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

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

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

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas: Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; - pesquisa em fusão de energia; - diagnóstico médico; - simulações

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

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

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

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

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

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

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto. Discussão sobre Nivelamento Baseado em Fluxo de Caixa. Item aberto na lista E-Plan Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou um conjunto de informações, que deve ser exclusivamente usado. A impressora é um recurso, pois é um dispositivo dedicado, devido ao fato

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

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul QUESTÃO: 29 Além da alternativa a estar correta a alternativa e também pode ser compreendida como correta. Segundo a definição de diversos autores, a gerência de falhas, detecta, isola, notifica e corrige

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

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

Gerenciamento de Problemas

Gerenciamento de Problemas Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

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

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

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

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.1 Introdução Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Voltados tipicamente para a execução de um único programa.

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de

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

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 3 O QUE É PLANEJAMENTO DE VENDAS E OPERAÇÕES?

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 3 O QUE É PLANEJAMENTO DE VENDAS E OPERAÇÕES? PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 3 O QUE É PLANEJAMENTO DE VENDAS E OPERAÇÕES? Índice 1. O que é planejamento de...3 1.1. Resultados do planejamento de vendas e operações (PVO)...

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

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

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

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

Leia mais

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução; Em 1993, foi lançada a primeira versão do processador Pentium, que operava a 60 MHz Além do uso otimizado da memória cache (tecnologia já amadurecida) e da multiplicação do clock, o Pentium passou a utilizar

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

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

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

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos. Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.

Leia mais

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

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto: Processadores BIP A família de processadores BIP foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) da Universidade do Vale do Itajaí UNIVALI com o objetivo

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação - DCC/IM Arquitetura de Computadores II Multithreading Prof. Gabriel P. Silva Introdução Muitos dos sistemas operacionais modernos

Leia mais

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

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

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