Revisão dependências de dados
|
|
|
- Giovana Fialho César
- 10 Há anos
- Visualizações:
Transcrição
1 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 não tem prioridade Acrescentar circuito de adiantamento onde pode-se adiantar força bloqueio se precisa esperar por resultado estágio EXEC, MEM para store, DECOD para desvio loads necessitam parada porque sobrepõem EXEC com MEM desvios podem necessitar de parada também UFPR Bacharelado em Ciência da Computação Desvios e Saltos desvios beq r,r2,desl desl em 6 bits, compl-2 ( r=r2? +4+(extSinal(desl) 2) : +4 ) saltos j ender (328) & (ender 2) ender em 26 bits jal ender ender em 26 bits r3 +4 ; (328) & (ender 2) jr r3 r3 ender em 32 bits UFPR Bacharelado em Ciência da Computação 2 Dependências de Controle or $4, $5, $6 2 sw $5, ($6) 3 beq $, $2, -3 4 sub $8, $9, $ 5 add $2, $3, $3 6 and $4, $5, $6 Se ($ = $2) volta atrás 3 instruções (or) senão executa sub na linha 4 and r4 add r2 sub r8 beq r,r2 sw r5 beq só escolhe novo no ciclo MEM! O que acontece com instruções em EXEC, DECOD, BUSCA? UFPR Bacharelado em Ciência da Computação 3
2 Saltos causam uma bolha Saltos são decodificados em DECOD necessitam um ciclo de stall felizmente, saltos são infreqüentes: 2% nos programas SPECint ciclo 2 ciclo ciclo 3 ciclo 4 ciclo 5 ciclo 6 ciclo 7 ciclo 8 c 9 R j 2 stall and r6,r7,r8 sub r4,r,r5 UFPR Bacharelado em Ciência da Computação 6 Circuito com Desvios e Saltos alub regc opula mrd mwr rdest rwr jump prx escdados ULA regs extsinal 32 6 memdados A B ender ledados 4 endler P C meminstr instr c b a C sll 2 igual [27-] [3-28] sll 2 UFPR Bacharelado em Ciência da Computação 5 Riscos de Controle Ocorrem quando seqüência de endereços não é linear linear é o normal no processador segmentado riscos causados por instruções de controle de fluxo desvios condicionais beq, bne saltos j, jal, jr Soluções possíveis: (a) bloqueia (stall) (b) mover decisão para segmento próximo de BUSCA (c) atrasar a decisão (necessita ajuda do compilador) (d) prever a direção do desvio riscos de controle são menos freqüentes que riscos de dados; mas não há nada tão efetivo para riscos de controle quanto adiantamento para riscos de dados UFPR Bacharelado em Ciência da Computação 4
3 Questões com adiantamento desvios em DECOD Adiantamento de operandos no registrador E/M adianta resultado da penúltima instr para entradas do comparador if ( Dcntrldesvio and ( E/MregRd!= ) and ( E/MregRd == B/DregRs ) ) { fwdc = } if ( Dcntrldesvio and ( E/MregRd!= ) and ( E/MregRd == B/DregRt ) ) { fwdd = } adiantamento de M/R ocorre através do bloco de registradores se instrução imediatamente anterior ao desvio produz um dos operandos da comparação, então um bloqueio é necessário porque operação de ULA em EXEC ocorre ao mesmo tempo em que a comparação em DECOD UFPR Bacharelado em Ciência da Computação 9 Mover decisão de desvio para 2 o estágio Mover circuito que decide desvio para EXEC reduz número de bolhas para duas acrescenta uma porta AND e um MUX ao circuito de EXEC temporização do estágio piora Adicionar circuito para computar endereço de destino e circuito para avaliar condição de desvio ao estágio DECOD reduz número de bolhas para uma (como nos saltos) computar endereço de destino pode ser feito em paralelo com acesso ao bloco de registradores só usa endereço em desvios e saltos a comparação só pode ocorrer após o acesso aos registradores para então alterar o piora temporização do estágio necessita adiantamento para o estágio DECOD em pipelines longos, decisão é mais tardia e causa mais bolhas é necessário algo melhor UFPR Bacharelado em Ciência da Computação 8 Desvios causam três bolhas ciclo 2 ciclo ciclo 3 ciclo 4 ciclo 5 ciclo 6 ciclo 7 ciclo 8 tempo (ciclos) beq stall instr stall instr 2 stall ciclo 9 diminui a vazão pode resolver o risco ao esperar (stall) UFPR Bacharelado em Ciência da Computação 7
4 Desvios em DECOD prx 4 P C endler instr meminstr B/D opc=beq extsinal 32 rdest A==B & BEQ fwdd fwdc D/E 6 a b c C regs sll 2 A B cmp opula ULA alub E/M mrd mwr memdados ender ledados escdados M/R regc UFPR Bacharelado em Ciência da Computação Tratamento de Riscos de Controle Tratamento de riscos de controle é MUITO importante pelo impacto no desempenho de /3 a /6 de todas instruções são desvios penalidade de um, dois ou três ciclos processadores com mais estágios tem desempenho pior Atrasa instruções até decidir se desvia perde desempenho Previsão de desvios prever direção do desvio reduz/elimina penalidade se previsão correta pode aumentar penalidade quando previsão é errada Técnicas: previsão estática segue sempre mesmo caminho previsão dinâmica depende do comportamento do programa UFPR Bacharelado em Ciência da Computação Previsão Estática de Desvios Resolve risco de controle ao supor qual a direção tomada e seguir executando sem esperar pelo resultado da comparação Prevê não-tomado: sempre prevê que desvios não serão tomados, continua buscando na seqüência das instruções (+4) Somente quando o desvio é tomado ocorrem bolhas Se desvio tomado, anula instruções após o desvio se decisão em MEM três bolhas: BUSCA, DECOD, EXEC se decisão em DECOD uma bolha: BUSCA Implementação deve garantir que instr anuladas não mudam o estado fácil no PS porque mudanças de estado ocorrem nos 2 últimos estágios: MEM (mwr) ou RES (rwr) Busca re-inicia no destino do desvio (penalidade 2 bolhas) UFPR Bacharelado em Ciência da Computação 2
5 Previsão Estática de Desvios (cont) Resolve risco de controle ao supor qual a direção tomada e seguir executando sem esperar pelo resultado da comparação 2 Prevê tomado: prevê que todos os desvios serão tomados, prevê tomado sempre causa uma bolha se circuito de previsão em DECOD Na medida em que a penalidade aumenta (maior número de estágios), previsão estática piora desempenho Com circuito mais complexo é possível tentar prever comportamento do desvio dinamicamente durante execução do programa 3 Previsão Dinâmica de Desvios: prevê desvios em tempo de execução, usa informação coletada na execução adiante UFPR Bacharelado em Ciência da Computação 5 Erro de previsão tomado ( anula instrução) ciclo 2 ciclo ciclo 3 ciclo 4 ciclo 5 ciclo 6 ciclo 7 ciclo 8 4: beq r,r2,4 8: sub r4,r,r5 28: or r8,r,r9 24: and r6,r,r7 Para anular instrução na BUSCA, adicionar sinal BUSCAflush que força s no campo do opcode no registrador B/D, transformando instrução em NOP UFPR Bacharelado em Ciência da Computação 4 Acerto na previsão desvio não-tomado ciclo 2 ciclo ciclo 3 ciclo 4 ciclo 5 ciclo 6 ciclo 7 ciclo 8 4: beq r,r2,2 8: sub r4,r,r5 Não há perda de tempo UFPR Bacharelado em Ciência da Computação 3
6 Atrasar a Decisão Circuito de decisão e cálculo do endereço de destino em DECOD Um desvio atrasado sempre executa a próxima instrução (+4) desvio tem efeito somente após aquela instrução Montador do PS move uma instrução segura para a posição imediatamente após o desvio, assim escondendo a bolha causada pelo desvio instrução segura porque não é afetada pelo desvio Em processadores com mais de 5 estágios e emissão múltipla, o atraso no desvio fica maior e necessita mais de uma instrução desvios atrasados perderam a vantagem/popularidade para outras abordagens dinâmicas mais flexíveis (embora mais caras) crescimento no número de transistores disponíveis tornou abordagens dinâmicas relativamente baratas Desvios atrasados são um característica da arquitetura! CdI PS define desvios atrasados Desvios Atrasados Sempre executa a próxima instrução OK com pipelines simples i: beq r,r, dst i+: sub r2,r8,r9 sempre é executada dst: add r3,r4,r5 É necessário que branch delay slot seja preenchido preenche com instrução de antes do desvio (i-) preenche com instrução de destino SE é seguro executar instrução de destino ajuda somente no caso do desvio tomado preenche com instrução após o desvio (i+2) SE é seguro executar instrução após o desvio ajuda somente no caso do desvio não-tomado Bˆ( UFPR Bacharelado em Ciência da Computação 6 NOP UFPR Bacharelado em Ciência da Computação 7 Desvios Atrasados de antes do destino após desvio add r,r2,r3 sub r4,r5,r6 add r,r2,r3 beq r2,r,dest beq r2,r,dest delay slot delay slot add r,r2,r3 sub r4,r5,r6 beq r2,r,antes delay slot add r,r2,r3 beq r2,r,dest beq r2,r,dest add r,r2,r3 sub r4,r5,r6 add r,r2,r3 beq r2,r,antes sub r4,r5,r6 UFPR Bacharelado em Ciência da Computação 8
7 Escalonamento de instruções Compilador pode re-ordenar instruções para eliminar (algumas) bolhas muda ordem eliminando conflitos com recursos risco estrutural aumenta distância entre produção e uso de valor risco de dados decisão no início ou no final do laço risco de controle original re-escalonado : lw r, (r) lw r, (r) 2: add r4, r, r4 lw r5, (r2) 3: sw r4, (r) add r4, r, r4 4: lw r5, (r2) sub r8, r5, r9 5: sub r8, r5, r9 sw r4, (r) 6: add r6, r8, r8 add r6, r8, r8 * 7: sw r6, 2(r2) sw r6, 2(r2) * * dependência em r6 permanece UFPR Bacharelado em Ciência da Computação 9 Previsão Dinâmica de Desvios Para prever desvios é necessário: coletar e registrar histórico de cada instrução de desvio 2 registro deve ter boa qualidade 3 usar a previsão para antecipar a busca da instrução de destino UFPR Bacharelado em Ciência da Computação 2 Previsão Dinâmica de Desvios hardware destino desvia? n s p? P C 4 t mem de instr tabela de previsão de desvios BUSCA DECOD confirma destino indexa tabela e se previsão é para tomar desvio (t), então carrega destino previsto no UFPR Bacharelado em Ciência da Computação 2
8 Previsão Dinâmica de Desvios cont Uma tabela com histórico de desvios (branch history table, BHT) no estágio de busca contém um bit que indica se o desvio foi tomado na sua última execução BHT é indexada pelos m bits menos-significativos do Bit pode prever incorretamente: pode ser de outro desvio com os mesmos m bits-ms do, ou pode ser a previsão errada para esta passada não pode afetar corretude, só desempenho Se previsão é errada, anula instruções incorretas, re-inicia busca no endereço correto, e inverte bit de previsão UFPR Bacharelado em Ciência da Computação 22 Previsão Dinâmica de Desvios (cont) Tabela com 2 m bits no estágio de busca acessa tabela com m bits do tabela contém se desvio foi tomado na última passada tabela contém se desvio não foi tomado na última passada prevê que nesta execução tomará mesmo caminho que na anterior atualiza o bit quando errar a previsão m bits desvio tomado - desvio não-tomado - 2 m elementos UFPR Bacharelado em Ciência da Computação 23 Previsão Dinâmica de Desvios (cont) Exemplo: executa três voltas do laço e então prossegue: previsão? t t T N t t T N t t T N resultado t t t n t t t n t t t n t certo? E E E E E E Duas previsões erradas, a cada vez que seqüência muda, ou a cada passagem pelo laço neste exemplo x = ; for (i=; i<3; i++) { x = } z = x - 2; UFPR Bacharelado em Ciência da Computação 24
9 Previsão Dinâmica de Desvios (cont) Na previsão com um bit, ocorrem duas previsões erradas a cada mudança com relação à história recente pex: executa três voltas do laço e então prossegue: previsão? t t T N t t T N t t T N resultado t t t n t t t n t t t n t certo? E E E E E E Com este método são duas previsões erradas a cada vez que seqüência muda ou a cada passagem pelo loop UFPR Bacharelado em Ciência da Computação 25 Previsores melhores: contadores de 2 bits Contador de dois bits implementa histerese e melhora previsão: previsão t t t t t t t t t t t t t estado wt st st st wt st st st wt st st st wt resultado t t t n t t t n t t t n t certo? E E E Previsões erradas caem para a metade neste exemplo tomado não-tomado strong taken não-tomado tomado weak taken não-tomado Previsores melhores: correlação de previsões Desvios em instruções distintas podem ser relacionados: tomado weak nottkn não-tomado tomado strong nottkn UFPR Bacharelado em Ciência da Computação 26 if (a%2 == ) { f: for (i=; i<a; i++) { // beq r,r2,f } } else { f2: for (j=n; j>a; j--) { // beq r3,r4,f2 } } π ρ if (a%2==) σ desvios ρ e σ dependem de π UFPR Bacharelado em Ciência da Computação 27
10 Previsores melhores: correlação de previsões (cont) if (a%2 == ) { f: for (i=; i<a; i++) // beq r,r2,f } else { f2: for (j=n; j>a; j--) // beq r3,r4,f2 } Portanto a idéia é: π ρ if (a%2==) σ desvios ρ e σ dependem de π manter história de todos os desvios recentes = história aproxima caminho seguido pelo programa Branch History Register (BHR) é um registrador de deslocamento que mantém resultado dos últimos N desvios e BHR são combinados para acessar tabela de previsão taxas de acerto ficam entre 8% e 9% UFPR Bacharelado em Ciência da Computação 28 Prev Dinâmica de Desvios correlacionamento (i) Correlacionamento de desvios: Branch History Register (BHR) é um reg de deslocamento que recebe resultado da avaliação da condição de desvio m bits do combinados com r bits do BHR indexam BHT BHR registra história dos r desvios mais recentes, porque estes interferem na escolha do previsor do desvio corrente m bits BHR tomado/não-tomado (cond de desvio [de EXEC]) BHT 2 m previsor deve ser treinado durante execução UFPR Bacharelado em Ciência da Computação 29 Prev Dinâmica de Desvios correlacionamento (ii) if (a%2 == ) { π f: for (i=; i<a; i++) // beq r,r2,f π ρ } else { π f2: for (j=n; j>a; j--) // beq r3,r4,f2 π σ } História dos desvios divide BHT em regiões previsor deve ser treinado durante execução BHR ρ π BHT BHR σ π BHT UFPR Bacharelado em Ciência da Computação 3
11 Previsão Dinâmica de Desvios (cont) A Tabela de Histórico de Desvios (THD) prevê quando o desvio é tomado, mas não diz para onde é o desvio Uma Tabela de Previsão de Destino (branch target buffer, BTB) no estágio de busca mantém o endereço de destino, evitando a bolha prevê desvio acesso à mem bolha! computa destino prevê desvio prevê destino acesso à mem computa destino altera altera UFPR Bacharelado em Ciência da Computação 3 Tabela de Previsão de Destino x4 beq r, r2, x68 x56c add r3, r4, r5 x57 slti r8, r, x574 bne r, r8, -x78 desvio destino hist 4 56c habil 2 32 indexa tabela com 2 m elementos com m bits do UFPR Bacharelado em Ciência da Computação 32 Interrupções e Excessões Interrupções geralmente com causa externa ao processador não são relacionadas a uma instrução específica Exemplos: interrupção de dispositivo; falta de energia assíncronas Excessões relacionadas à execução de uma instrução específica síncronas Exemplos: overflow, instrução inválida Traps relacionadas à execução de uma instrução específica rotina (hw+sw) de tratamento de excessões, chamadas de sistema UFPR Bacharelado em Ciência da Computação 33
12 Interrupções e Excessões arquitetura Registrador de Interrupção vetor de bits indicando quais interrupções/excessões ocorreram Registrador de máscara vetor de bits indica quais interr/excessões estão desabilitadas escrever no registrador de máscara é instrução privilegiada alguns bits podem ser atualizados em modo usuário (overflow) algumas interrupções/excessões não são mascaráveis dois modos de execução: usuário e sistema modo usuário tem poucos privilégios execução de instrução privilegiada causa excessão (violação de previlégio) modo sistema pode executar instrução SO tem acesso a todos os recursos do sistema UFPR Bacharelado em Ciência da Computação 34 Interrupções/Excessões Precisas Uma interrupção ou excessão é considerada precisa se existe uma única instrução (ou ponto de interrupção) tal que todas as instruções anteriores àquela tenham alterado o estado, e nenhuma instrução após (e incluindo) aquela tenham modificado o estado Isso significa que a execução pode ser re-iniciada a partir do ponto de interrupção e resultados corretos serão produzidos UFPR Bacharelado em Ciência da Computação 35 Interrupções Precisas Interrupções Precisas facilitam MUITO o trabalho do SO na continuação do programa, ou na depuração Excessão/trap todas instruções antes da causadora completam nenhuma das instruções após a causadora completam instrução causadora ou completou ou não iniciou aponta instrução causadora Interrupção Mesmo que excessão, mas instrução causadora Deve parecer que ocorreu entre instruções aponta para instrução que seria executada UFPR Bacharelado em Ciência da Computação 36
13 Tratamento de interrupções/traps Quando ocorre interrupção/trap: efetua salto para rotina do SO vetor de tratadores, em geral fixado pela arquitetura/cdi CdI mips define 3-6, CdI x86 define 256 (?) computa endereço de retorno salva informação de estado essencial CCs (condition codes) PSW (processor status word) troca modo de execução: usuário sistema UFPR Bacharelado em Ciência da Computação 37 Implementação de interrupções/traps Precisão é importante Interrupções e excessões simultâneas nos vários segmentos interrupções de E/S antes da busca busca falta de página, referência desalinhada, protection fault decod instrução ilegal ou privilegiada exec excessões de aritmética (overflow, divisão por zero) mem falta de página, referência desalinhada, protection fault res nenhuma UFPR Bacharelado em Ciência da Computação 38 Excessão de Aritmética B D Ex M R B D Ex M R B D Ex M R excessão (exec) B D Ex M R anulada B D Ex M R anulada salta para tratador início do tratador B D Ex M R Instruções anteriores podem completar anula todas instruções subseqüentes (mais novas) UFPR Bacharelado em Ciência da Computação 39
14 Resumo Desvios incorrem três bolhas a não ser que: circuito de decisão seja movido para DECOD e cálculo do endereço de destino seja tbém movido para DECOD* Desvios atrasados sempre executa instr após desvio (em +4) se instrução é útil, então desvio completa em um ciclo* nem sempre é possível encontrar instrução útil Previsão estática de desvios prevê não-tomado ou prevê tomado Previsão dinâmica de desvios prevê com comportamento dinâmico tabela de previsão de desvios lembra se desviou nas últimas vezes tabela de destinos para onde desvia (qual instrução no destino) Interrupções e excessões complicam muito projeto de pipelines precisão é útil para SO, mas cara em termos de hardware UFPR Bacharelado em Ciência da Computação 4 Exercícios ) Complemente o desenho da aula passada incluindo todos os circuitos mostrados nos slides 5 e 2) Complemente o diagrama do slide 5 com os circuitos para as para as instruções JAL e JR 3) Como o circuito do slide 5, combinado com um dos métodos de previsão de desvios, resolve seqüências como as abaixo? A B C end: add r,r2,r3 add r,r2,r3 add r,r2,r3 end2: beq r4,r,end beq r4,r,end5 beq r4,r,end end3: sub r5,r6,r7 beq r5,r,end sub r6,r6,r7 end4: j end2 j end beq r8,r,end end5: xor r8,r9,r9 sub r6,r7,r8 xor r9,r2,r3 end6: beq r9,r,end2 4) Projete uma Tabela de Previsão de Destino que armazene o endereço de destino Qual a organização da tabela? Quais cuidados devem ser tomados com a atualização da tabela? UFPR Bacharelado em Ciência da Computação 4
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 [email protected] http://www.inf.pucrs.br/~emoreno
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
Arquitetura de Computadores I
Arquitetura de Computadores I Pipeline Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Organização do MIPS: pipeline Visão geral do pipeline Analogia com uma Lavanderia doméstica 1
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
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
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
Caminho dos Dados e Atrasos
Caminho dos Dados e Atrasos Arquiteturas para Alto Desmpenho Prof. [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline MIPS O MIPS utiliza um pipeline com profundidade 5, porém
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
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
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
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
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
Arquitetura de Computadores I
Arquitetura de Computadores I Pipeline -- Execções -- Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Exceções Exceções (ou interrupções ou falta) Desvio para um endereço que não faz
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
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:
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
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
Computadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 6: 27 de abril de 2010 1 Recaptulando operações já estudadas Operações lógicas 2 3 Exercícios Referências bibliográficas Recaptulando operações já estudadas Operações
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
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
Predição de Desvios e Processadores Superescalares Especulativos
Predição de Desvios e Processadores Superescalares Especulativos Arquiteturas para Alto Desmpenho Prof. [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Tomasulo Especulativo Se os
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
Estruturas do Sistema de Computação
Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de
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
Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas
Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Pae II Transferência de Dados Lógicas Controle Supoe a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores
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
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
2 Formalidades referentes ao trabalho
Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este
Controle em Processador Segmentado
Revisão segmentação Todos os processado modernos usam segmentação segmentação não reduz a latência de uma instrução mas ajuda na vazão/produção do programa inteiro várias tarefas em execução simultânea
Sistemas Operacionais
Sistemas Operacionais Aula 5 Estrutura de Sistemas de Computação Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
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
Sistemas Operacionais. Prof. André Y. Kusumoto [email protected]
Sistemas Operacionais Prof. André Y. Kusumoto [email protected] Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação
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
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
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
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,
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
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
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
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
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:
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
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
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
Sistemas Operacionais
Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário
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:
Organização de Computadores 1
Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).
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
Organização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números
3. O NIVEL DA LINGUAGEM DE MONTAGEM
3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também
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
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
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
Arquitetura de Computadores - Revisão -
Arquitetura de Computadores - Revisão - Principais funções de um Sistema Operacional Componentes básicos da Arquitetura Barramentos Registradores da CPU Ciclo de Instruções Interrupções Técnicas de E/S
SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as
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)
Sistemas Operacionais
Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura
Arquitetura e Organização de Computadores I
Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções
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
SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA
SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis
Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação
Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação INE5406 - Sistemas Digitais semestre 2011/1 Prof. José Luís Güntzel [email protected]
Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley
Organização e Arquitetura de Computadores Aula 10 Ponto Flutuante Parte I 2002 Juliana F. Camapum Wanderley http://www.cic.unb.br/docentes/juliana/cursos/oac OAC Ponto Flutuante Parte I - 1 Panorama Números
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
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
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
Computadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador
PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
- Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto
discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco
AULA 04 - Estruturas Sistemas Computacionais Nosso objetivo é apenas revisar conceitos relacionados a estrutura geral um sistema computacional para pois explicarmos os talhes operação do sistema e como
Conjunto de instruções e modos de. aula 4. Profa. Débora Matos
Conjunto de instruções e modos de endereçamento aula 4 Profa. Débora Matos Conjunto de Instruções A = ((B + C) x D + E F)/(G x H) A H denotam posições da memória endereços As arquiteturas possuem as seguintes
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
Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?
Introdução ULA: Faz os Cálculos UC: Controla a execução do programa (ordem de leitura das instruções) Traz dados da memória e dispositivos para os registradores Comanda a ULA Como isso tudo ocorre? A UNIDADE
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
CAPÍTULO 6 ARITMÉTICA DIGITAL
CAPÍTULO 6 ARITMÉTICA DIGITAL Introdução Números decimais Números binários positivos Adição Binária Números negativos Extensão do bit de sinal Adição e Subtração Overflow Aritmético Circuitos Aritméticos
Processos e Threads (partes I e II)
Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
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 ([email protected]) 2007/01 - INF02597 Com slides de Roberta Lima Gomes
Gerência de Memória. Paginação
Gerência de Memória Paginação Endereçamento Virtual (1) O programa usa endereços virtuais É necessário HW para traduzir cada endereço virtual em endereço físico MMU: Memory Management Unit Normalmente
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
Componentes básicos de um sistema computacional. Cap. 1 (Stallings)
Componentes básicos de um sistema computacional Cap. 1 (Stallings) 1 Sistema de Operação Explora recursos de hardware de um ou mais processadores Provê um conjunto de serviços aos utilizadores Gerencia
O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2
3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata
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
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas
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
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
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
Índice. Tudo! (datapath de um ciclo)
Índice Sumário Instrução com atraso maior no datapath de um ciclo. Datapath multiciclo: introdução. 4. O Processador: Unidades de Caminho de Dados e de o 4.1 Diagrama de Blocos de um Processador 4.2 Unidade
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,
SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola
SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura
CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA
8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente
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
Sistemas Operacionais
Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções
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.
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
Arquitetura de Computadores. Prof. João Bosco Jr.
Arquitetura de Computadores Prof. João Bosco Jr. Unidade II Aula 1 Nível ISA Posicionado entre a microarquitetura e o SO Define a arquitetura (Conjunto de Instruções) É a interface entre o Software e o
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
Estrutura de um Computador
SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 7 Prof. Dr. Marcelo Andrade da Costa Vieira MODELO DE VON NEUMANN PRINCÍPIOS A arquitetura de um computador consiste de
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
Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.
Máquina Multinível Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando para o processador.
