Execução concorrente de instruções

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

Download "Execução concorrente de instruções"

Transcrição

1 Execução concorrente de instruções Aspectos avançados João Canas Ferreira Tópicos de Arquitectura de Computadores Assuntos Tópicos 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções Contém figuras de: Computer Organization and Design (apend. A), D. Patterson & J. Hennessey, 3ª ed., Elsevier. João Canas Ferreira (FEUP/DEEC) ILP / 57

2 Sequenciamento dinâmico 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 3

3 Sequenciamento dinâmico O conceito de sequenciamento dinâmico Sequenciamento dinâmico: rearranjo da execução de operações efectuado pelo processador com o objectivo de reduzir os protelamentos, preservando o fluxo de dados. Vantagens: 1 Possibilita o tratamento de casos em que as dependências não são conhecidas em tempo de compilação; Importante para obter bons desempenhos sem comprometer a compatibilidade binária. 2 Simplifica o compilador; 3 Permite que código compilado para uma arquitectura de pipeline execute bem noutra; 4 Serve de base a especulação de hardware, uma técnica com vantagens apreciáveis para o desempenho. João Canas Ferreira (FEUP/DEEC) ILP / O sequenciamento estático é aquele que é efectuado pelo compilador O sequenciamento estático é muito importante para processadores que não emitem instruções fora de ordem (emissão estática): a ordem óptima das instruções deve ser determinada pelo compilador, tendo em conta a organização da pipeline Exemplo de utilidade de sequenciamento dinâmico: DIV.D ADD.D SUB.D F0, F2, F4 F10, F0, F8 F12, F8, F14 A dependência da instrução ADD.D em relação a DIV.D leva o CPU a protelar. Contudo, SUB.D não depende de nenhuma instrução anterior (em execução) e poderia executar imediatamente (sem esperar que as duas instruções precedentes sejam completamente ou parcialmente executadas.) 4

4 Sequenciamento dinâmico Redução do impacto de conflitos Situação: É detectado um conflito entre a instrução descodificada (andar ID) e uma instrução em execução. Solução 1: Esperar que a instrução em execução ultrapasse a fase que está na origem do conflito (protelar). Entretanto, todas as instruções posteriores à instrução em conflito são suspensas e nenhuma instrução adicional é processada. Solução 2: A instrução em conflito é suspensa (até que o conflito desapareça porque a instrução anterior passou um certo estágio) mas instruções posteriores continuam a respectiva execução (caso elas próprias não tenham conflitos) e novas instruções podem ser processadas. A solução 2 (sequenciamento dinâmico) é potencialmente mais vantajosa, mas implica a execução de instruções fora de ordem bem como a terminação fora de ordem. conflitos WAR e WAW; dificuldade na coordenação com excepções (imprecisão). João Canas Ferreira (FEUP/DEEC) ILP / Neste contexto, execução refere-se ao processamento geralmente efectuado no(s) andar(es) EX O objectivo principal do sequenciamento dinâmico é evitar os conflitos causados por dependências (estruturais, de dados ou de controlo) O sequenciamento dinâmico vem facilitado quando as instruções são simples, i.e. para conjuntos de instruções RISC Implementações da arquitectura IA-32, uma arquitectura CISC, convertem internamente as instruções em conjuntos de micro-operações. Estas últimas são sequenciadas dinamicamente e executadas O fragmento seguinte leva a conflitos do tipo WAR e WAW na pipeline de exemplo quando se utiliza execução fora de ordem: DIV.D F0, F2, F4 ADD.D F6, F0, F8 SUB.D F8, F10, F14 ; WAR MUL.D F6, F10, F8 ; WAW 5

5 Sequenciamento dinâmico Extensão de pipeline para sequenciamento dinâmico Dividir o andar ID em dois: 1 Emissão Descodificação da instrução e verificação de conflitos estruturais. 2 Leitura de operandos (RO) Esperar até que não haja conflitos de dados e, então, ler os operandos. IF coloca a instrução num registo ou numa fila de instruções pendentes; as instruções são emitidas a partir daí. Quando uma instrução passa de RO para EX começa a execução propriamente dita. Sequenciamento dinâmico permite ter múltiplas instruções em execução e requer unidades pipelined, múltiplas unidades funcionais, ou ambas. Assumir que as instruções são emitidas em ordem, mas podem entrar em execução fora de ordem. Abordagens: painel de resultados (scoreboard); algoritmo de Tomasulo. João Canas Ferreira (FEUP/DEEC) ILP / Scoreboard foi usado pela primeira vez no CDC As instruções passam do estado de emissão para o de RO em ordem. A passagem do estado RO para EX é que pode ser feita fora de ordem (de acordo com a disponibilidade dos operandos) O tratamento de unidades pipelined é essencialmente idêntico ao de múltiplas unidades funcionais. Nos exemplos usados a seguir assumiremos que o processador tem múltiplas unidades funcionais A abordgem analisada caracteriza-se por ter emissão de instruções por ordem, mas execução fora de ordem : instruções posteriores podem ultrapassar outras instruções na fase RO. 6

6 Algoritmo de Tomasulo 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 7

7 Algoritmo de Tomasulo Aspectos básicos do algoritmo de Tomasulo 1 Primeira utilização: unidade VF do IBM 360/91. 2 Existem muitas variações em uso actualmente. 3 Combina a monitorização da disponibilidade de operandos (evitar conflitos RAW) com register renaming (minimizar conflitos WAW e WAR). 4 Register renaming (RR) modifica o nome dos registos-destino de forma a que as escritas fora de ordem não afectem instruções que dependem de um valor anterior do operando. 5 Esta abordagem usa estações de reserva (ER) para implementar register renaming. Uma estação de reserva obtém e guarda um operando mal este esteja disponível; referências a registos são substituídas por referências a estações (instruções pendentes designam qual a estação que fornece os dados de entrada); quando ocorrem escritas sobrepostas, apenas a última é efectuada. 6 Se existirem mais estações que registos é possível eliminar conflitos que não podem ser eliminados pelo compilador. João Canas Ferreira (FEUP/DEEC) ILP / O IBM 360/91 tinha apenas 4 registos de vírgula flutuante e não tinha memórias cache. As operações de VF eram longas e os acessos a memória também Ao contrário do MIPS, o IBM 360/91 permite acessos a memória nas instruções de vírgula flutuante O acesso a memória é mediado por uma unidade especializada (e não integrado directamente na pipeline de processamento). 8

8 Algoritmo de Tomasulo Eliminação de dependências por registos adicionais DIV.D F0,F2,F4 DIV.D F0,F2,F4 ADD.D F6, F0,F8 ADD.D S,F0,F8 S.D F6,0(R1) S.D S,0(R1) SUB.D F8,F10,F14 SUB.D T,F10,F14 MUL.D F6,F10, F8 MUL.D F6,F10,T (Supondo a existência de dois registos auxiliares S e T.) No código original existem 3 dependências verdadeiras e 2 dependências de nome: Antidependência entre ADD.D e SUB.D via F8 conflito WAR. Dependência de saída entre ADD.D e MUL.D via F6 conflito WAW. A utilização de registos auxiliares elimina as dependências de nomes. No caso actual, os registos são os buffers das estações de reserva. João Canas Ferreira (FEUP/DEEC) ILP / Um CPU que implemente RR consegue fazer as alterações equivalentes à do exemplo durante o processamento do fluxo de instruções Este caso particular também pode ser resolvido por sequenciamento estático (feito por compilador), se existirem registos livres O uso de estações de reserva tem dois outros aspectos importantes: 1. O controlo da execução e a detecção de conflitos são distribuídos. 2. Resultados de uma unidade funcional são passados directamente para buffers de ER que deles necessitem (sem passar pelo banco de registos). 9

9 Algoritmo de Tomasulo MIPS adaptado para o algoritmo de Tomasulo João Canas Ferreira (FEUP/DEEC) ILP / A figura mostra a estrutura da unidade de VF do MIPS adaptada para utilização do algoritmo de Tomasulo. (O tratamento de dados inteiros não está ilustrado.) O sistema inclui uma unidade load/store para tratamento dos acessos a memória (para valores VF) Cada estação de reserva inclui os operandos, a indicação da operação e alguns bits de controlo Funções do load buffer: 1. Armazenar componentes necessários ao cálculo do endereço efectivo até este ser realizado (guardar offset até valor do registo ser conhecido). 2. Registar as operações de load à espera de valores da memória. 3. Guardar valores lidos até puderem ser passados ao CDB Funções do store buffer: 1. Como para load buffer. 2. Armazenar endereço efectivo enquanto espera pelo valor a guardar em memória. 3. Armazenar endereço efectivo e dados enquanto a unidade de memória não estiver livre. 10

10 Etapas do algoritmo de Tomasulo Algoritmo de Tomasulo 1 Emissão Obter a próxima instrução de fila de instruções. Se existir uma ER apropriada vazia, emitir instrução para a ER com os operandos (se existirem). Se não existirem ER vazias, a instrução é suspensa. Se os operandos não estão nos registos, referenciar as unidades que os produzem (register renaming). 2 Execução Se algum dos operandos ainda não está disponível, monitorar o barramento comum até que apareça. Quando todos os operandos estão disponíveis, a operação pode ser efectuada. (Assim evitam-se os conflitos RAW). Múltiplas instruções podem ter a possibilidade de entrar em execução simultaneamente. 3 Escrita Quando o resultado está disponível, é enviado via CDB para o registo e para todas as ER (incluindo o store buffer). João Canas Ferreira (FEUP/DEEC) ILP / Um acesso a memória é feito em dois tempos: 1. Cálculo do endereço efectivo quando o valor do registo base estiver disponível. O resultado é guardado no buffer. 2. O segundo tempo depende do tipo de acesso: a) Loads executam mal a unidade de memória esteja livre. b) Stores podem ter de esperar pelo valor a guardar. Quando este estiver disponível, é armazenado no store buffer e a instrução fica à espera de utilizar a unidade de memória Para evitar conflitos nos acessos a memória, o cálculo do endereço efectivo é sempre feito por ordem e é seguido de uma verificação de conflitos. Caso seja detectado um conflito, a colocação de novos acesso na unidade load/store é suspensa até que o conflito desapareça. 11

11 Algoritmo de Tomasulo Tratamento de acessos a memória Os acessos a memória processam-se em dois passos: 1 Calcular o endereço efectivo quando o registo de base está disponível e colocá-lo no buffer correspondente (load/store). 2 Executar load quando a unidade de memória estiver disponível; Store espera pelo valor a guardar (já no store buffer) antes de aceder a memória. Quando load e store acedem à mesma posição, então se 1 load precede store: trocá-los provoca WAR; 2 store precede load: trocá-los provoca RAW. Trocar duas operações de store provoca WAW. Para detectar estas situações, é necessário conhecer os endereços de qualquer acesso a memória precedente. Condição suficiente: calcular os endereços efectivos por ordem e comparar (em paralelo) com os endereços nos buffers. João Canas Ferreira (FEUP/DEEC) ILP / Acessos a memória podem ser feitos por uma ordem diferente da especificada no programa desde que acedam a posições diferentes de memória Consequências: Para determinar se uma operação de load pode ser executada, o processador deve determinar se existe alguma instrução de store ainda pendente para o mesmo endereço. Para uma operação de store é necessário verificar se não existe nenhum acesso anterior pendente para o mesmo endereço. Este processo é designado por desambiguação dinâmica de memória (dynamic memory disambiguation) Para garantir estas condições, basta calcular o endereço efectivo pela ordem especificada no programa e fazer a respectiva verificação. Caso esta indique um conflito, o tratamento de instruçõe load/store protela. 12

12 Algoritmo de Tomasulo: Sumário Algoritmo de Tomasulo Sequenciamento dinâmico permite obter muito bons desempenhos (desde que os saltos sejam bem previstos). Algoritmo de Tomasulo é particularmente favorável para arquitecturas: para as quais é difícil sequenciar instruções estaticamente; têm poucos registos; em que se pretende obter elevado desempenho sem compilação específica. Desvantagens do algoritmo de Tomasulo: complexidade: cada ER tem uma memória associativa e controlo sofisticado ; CDB limita o desempenho: múltiplos CDBs podem ser usados, mas complicam ainda mais a implementação. João Canas Ferreira (FEUP/DEEC) ILP / Referência original: R. M. Tomasulo, An Efficient Algorithm for Exploiting Multiple Arithmetic Units, IBM Journal of Research and Development, Volume 11, Number 1, pp (1967), 13

13 Previsão dinâmica de saltos 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 14

14 Previsão dinâmica de saltos Previsão dinâmica de saltos: o conceito A predição (ou previsão) de saltos condicionais é vital para processadores de elevado desempenho, porque evita que as dependências de controlo se tornem num factor limitativo. Esquema mais simples: tabela de predição do resultado do teste branch-prediction buffer / branch history table. A tabela é uma memória indexada pelo bits menos significativos do endereço da instrução condicional. Cada posição tem 1 bit que indica se o salto foi recentemente tomado ou não. Problema de desempenho: um ciclo efectuado 10 vezes tem uma taxa de acerto de 80% (duas predições erradas), embora fosse de esperar pelo menos 90% (porquê?). Solução: usar mais bits (2!) um contador com saturação. João Canas Ferreira (FEUP/DEEC) ILP / Este esquema não tem etiquetas (como o esquema do acetato 29), e apenas reduz o tempo de salto, se o tempo necessário para calcular a condição for maior que o tempo de cálculo do endereço de destino No caso da pipeline MIPS que estudámos, este tipo de predição não permitiria elimiar o protelamento associado aos saltos condicionais Notar que a predição pode ser efectuada com base na informação associada a um salto diferente daquele cujo desfecho se pretende calcular (mas que está colocado num endereço de memória que tem os os mesmos bits menos significativos). Tal pode reduzir a efectividade do mecanismo de predição, mas não afecta a correcção do sistema (já que a predição deve ser sempre confirmada posteriormente). 15

15 Previsão dinâmica de saltos Esquema local de predição de 2 bits João Canas Ferreira (FEUP/DEEC) ILP / Os dois bits associados a cada posição servem para codificar quatro estados possíveis. O esquema pode ser generalizado para n bits, mas estudos empíricos indicam que a diminuta melhoria obtida não justifica a sua utilização. Por isso, a grande maioria dos sistemas usa tabelas de 2 bits por posição A utilização de 2 bits tem uma complicação: a tabela é actualizada mais frequentemente que no caso de uma tabela de 1 bit. Para tabelas de 1 bit por posição, a tabela é actualizada apenas quando ocorre uma falha de predição. No caso das tabelas de 2 bits, a tabela deve ser actualizada a todos os acessos, i.e., a tabela é lida e escrita em todos os ciclos. 16

16 Previsão dinâmica de saltos Exactidão da predição: medidas empíricas Benchmark SPEC86, IBM Power, 2 bits por posição, tabela de 4096 posições. João Canas Ferreira (FEUP/DEEC) ILP / A taxa de falhas dos programas de vírgula flutuante é significativamente inferior à dos restantes programas Uma tabela de 4096 posições é considerada grande Para determinar o efeito do tratamento de saltos para o desempenho global não basta conhecer o desempenho do preditor; também é necessário saber a taxa de ocorrência das instruções de salto. No caso dos resultados apresentados na tabela, são precisamente os programas em que a predição mais falha aqueles que têm um maior número de saltos. 17

17 Previsão dinâmica de saltos Exactidão da predição: tabela infinita Benchmark SPEC86, 2 bits por posição, tabela de 4096 posições vs. tabela infinita. João Canas Ferreira (FEUP/DEEC) ILP / Os dados da tabela suportam a conclusão de que uma tabela com 4K posições tem um desempenho muito próximo daquele que seria obtido por uma tabela com um número infinito de posições. Logo, não é interessante aumentar o número de posições Como aumentar o número de bits por posição também não traz benefícios significativos, é necessário recorrer a preditores com uma estrutura mais sofisticada. 18

18 Previsão dinâmica de saltos Predição com correlação Para melhorar a qualidade de predição é necessário considerar o comportamento recente de outros saltos condicionais (predição com correlação ou de dois níveis). if (aa==2) aa=0; if (bb==2) bb=0; if (aa!=bb) { DSUBUI R3,R1,#2 BNEZ R3,L1 ;salto b1 (aa!=2) DADD R1,R0,R0 ;aa=0 L1: DSUBUI R3,R2,#2 BNEZ R3,L2 ;salto b2 (bb!=2) DADD R2,R0,R0 ;bb=0 L2: DSUBU R3,R1,R2 ;R3=aa-bb BEQZ R3,L3 ;salto b3 (aa==bb) Se os saltos b1 e b2 não forem tomados, então b3 é certamente tomado, o que não pode ser predito considerando apenas um único salto. João Canas Ferreira (FEUP/DEEC) ILP / O exemplo mostra que, em geral, o desfecho de um salto condicional pode ser predito melhor, se o desfecho dos saltos imediatamente precedentes for tido em conta Saltos precedentes são os executados imediatamente antes do salto que se pretende escrever, não aqueles ques estão colocados imediatamente antes no texto do programa O código do exemplo é retirado do program eqntott, um dos componentes do benchmark SPEC89. 19

19 Previsão dinâmica de saltos Predição com correlação: um exemplo BNEZ R1,L1 ;salto b1 (d!=0) DADDIU R1,R0,# ; d==0, d=1 L1: DADDIU R3,R1,#-1 BNEZ R3,L2 ;salto b2 (D!=1)... L2: if (d==0) d=1; if (d==1) d=? pred. b1 acção b1 nova pred. b1 pred. b2 acção b2 nova pred. b2 2 NT T T NT T T 0 T NT NT T NT NT 2 NT T T NT T T 0 T NT NT T NT NT d=? pred. b1 acção b1 nova pred. b1 pred. b2 acção b2 nova pred. b2 2 NT/NT T T/NT NT/NT T NT/T 0 T/NT NT T/NT NT/T NT NT/T 2 T/NT T T/NT NT/T T NT/T 0 T/NT NT T/NT NT/T NT NT/T X/Y X: previsão para último salto NT; Y: último salto T. Preditor (1,1) João Canas Ferreira (FEUP/DEEC) ILP / Nestes exemplos, assume-se que todos os bits de predição estão inicializados a NT (not taken) Na tabela inferior, a notação P1/P2 indica que P1 é a predição feita se o salto precedente não foi tomado, enquanto P2 é predição feita se o salto precedente foi tomado Em geral, um preditor (m, n) usa o comportamente dos m saltos precedentes para escolher um de 2 m preditores, cada um dos quais é um preditor de n bits Neste contexto, diz-se que os m saltos precedentes constituem a história global, enquanto cada um dos preditores individuais regista a história local, i.e., o comportamento anterior do salto a predizer. 20

20 Previsão dinâmica de saltos Tabela com informação global e local Implementação de um buffer de predição (2,2). João Canas Ferreira (FEUP/DEEC) ILP / No caso do preditor (2,2) ilustrado na figura, história global é guardada num registo de deslocamento de 2 bits, que permite seleccionar uma de quatro tabelas. O endereço da instrução de salto é usado para escolher a posição da tabela O número de bits de um preditor (m, n) é dado por 2 m n nº de posições da tabela Como a utilização de k bits do endereço permite seleccionar uma de 2 k posições, o número de bits também é dado por 2 m n 2 k. 21

21 Previsão dinâmica de saltos Predição com correlação: comparação empírica João Canas Ferreira (FEUP/DEEC) ILP / Para comparar a efectividade de dois preditores diferentes, devem usar-se preditores com igual número de bits. Neste caso, o preditor (0,2) de 4096 posições é comparado com um preditor (2,2) de 1024 posições por tabela local A tabela mostra que um preditor com informação global permite reduzir significativamente a taxa de falhas, por comparação com um preditor local com o mesmo número de bits. 22

22 Previsão dinâmica de saltos Predição de torneio Os preditores de torneio: constituem um exemplo de predição multi-nível de saltos; usam múltiplas tabelas de predição e um seleccionador para escolher qual usar; geralmente um nível baseia-se em informação global e outro em informação local; implementações actuais: contador saturado de 2 bits para escolher entre dois níveis; obtêm melhores resultados para tamanhos médios (8 KB 32 KB); cada tabela de predição pode ter mais que um nível (p.ex. Alpha 21264). João Canas Ferreira (FEUP/DEEC) ILP / Um preditor de torneio faz uma competição entre preditores, escolhendo em cada situação qual dos resultados deve usar (dos preditores em competição). Tipicamente, dois preditores estão em competição, sendo um deles global (p. ex., do tipo preditor por correlação) e o outro local (p. ex., correlador do tipo (0,2)) Preditores de torneio são o tipo mais frequente de preditores multi-nível. Um preditor multi-nível usa vários níveis de tabelas, em conjunto com um algoritmo para escolher entre os múltiplos preditores. 23

23 Previsão dinâmica de saltos Predição de torneio: exemplo com 2 bits João Canas Ferreira (FEUP/DEEC) ILP / Na prática, um preditor de torneio usa um contador com saturação para escolher entre dois preditores. Com base no endereço da intrução a predizer, o preditor consulta uma tabela com 2 bits, que indicam o preditor a usar. Dependendo do resultado da predição dos dois subpreditores, o contador é actualizado, conforme ilustrado na figura Para cada jogada do torneio existem 4 possibilidades: ambos os preditores acertam, ambos falham, preditor 1 acerta e o 2 falha, ou vice-versa. Quando ambos acertam ou falham simultaneamente, o preditor de torneio não muda de estado Na figura do acetato, a notação X/Y, em que X e Y podem ser 0 (falha) ou 1 (acerto), indica o desfecho de cada subpreditor. 24

24 Previsão dinâmica de saltos Predição de torneio: selecção da tabela local Cada tabela tem 1024 posições, 2 bits cada; global: 2 bits João Canas Ferreira (FEUP/DEEC) ILP / A figura mostra que a capacidade para trocar entre dois preditores é particularmente atraente no caso dos programas que não usam vírgula flutuante, já que neste caso, o recurso ao preditor global é bastante frequente (superior a 50% no caso de eqntott). 25

25 Previsão dinâmica de saltos Taxa de falhas para diferentes estratégias de predição João Canas Ferreira (FEUP/DEEC) ILP / A figura mostra o resultado de uma avaliação empírica de preditores com o mesmo número de bits, mas diferentes estruturas. Comoe seria de esperar, os preditores de torneio são os que apresentam melhor desempenho Como já se tinha observado em caso anteriores, a capacidade de predição não melhora a partir de um certo tamanho Os dados foram obtidos para programas SPEC89. 26

26 Distribuição de instruções 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 27

27 Distribuição de instruções Aumentar o desempenho da distribuição de instruções Para desempenho de pipelines é vital ter a capacidade de distribuir as instruções pelas unidades funcionais em tempo útil. tabelas de destinos de saltos (branch-target buffer); associar instruções a destinos de saltos de maneira a obter o destino do salto ainda em IF; unidades integradas de obtenção de instruções (integrated instruction fetch unit); unidades de predição de endereços de retorno tratamento de saltos indirectos (85% dos saltos indirectos de SPEC86). Máximo actual: emissão de 4 8 instruções por ciclo. João Canas Ferreira (FEUP/DEEC) ILP / Predizer os saltos não é suficiente para garantir elevado desempenho. O que é preciso é assegurar a capacidade de fornecer as instruções atempadamente ao núcleo de processamento. A predição de saltos é o primeiro e imprescindível passo, mas outras medidas são necessárias. As mais elementares são as indicadas no acetato. 28

28 Tabela de destinos de saltos Distribuição de instruções Apenas regista informação sobre ciclos tomados. João Canas Ferreira (FEUP/DEEC) ILP / Para obter melhor desempenho, usa-se uma tabela, que, para cada salto (predito como tomado), regista o endereço de destino. Uma tabela desse tipo funciona como uma memória cache completamente associativa Notar que a existência de uma etiqueta é mesmo necessária. A ambiguidade existente nas tabelas de saltos não pode existir aqui. Isso implicaria que, em caso de acerto (sem confirmação de etiqueta), poderia ser escolhido um endereço de destino referente a outro salto A tabela de destino de saltos é acedida no ciclo IF, simultaneamente com o acesso a memória. Caso haja um acerto, o endereço da próxima instrução fica imediatamente disponível, e pode ser usado no ciclo de relógio seguinte. No caso da pipeline MIPS deixa de haver necessidade de protelar O texto da terceira coluna do figura é enganador: a tabela guarda informação sobre saltos tomados. Por isso, a terceira coluna é optativa A utilização de preditores de 2 bits implica guardar informação sobre saltos não tomados. Por essa razão, muitos sistemas utilizam simultaneamente uma tabela de predição de saltos e uma tabela de destino de saltos. A alternativa seria incluir na tabela de destino de saltos também informação para os saltos não tomados. Nesse caso, a existência de uma terceira coluna seria obrigatória. 29

29 Distribuição de instruções Tratamento de saltos com predição de destino João Canas Ferreira (FEUP/DEEC) ILP / A figura mostra em que ciclos é que as diferentes tarefas associadas à utilização de uma tabela de destino de saltos são efectuadas A penalidade por uma predição mal feita é de 2 ciclos, o que é maior que o protelamento associado a um salto na ausência de tabela de destino de saltos (TDS). Por outras palavras, a utilização de uma TDS diminui o número de vezes que é necessário protelar, mas aumenta a penalidade naquelas situações em que não se consegue evitar o protelamento. 30

30 Distribuição de instruções Unidade integrada de obtenção de instruções Unidade autónoma que alimenta o resto da pipeline. As suas funções são: predição de saltos integrada A predição de saltos é integrada na unidade de obtenção de instruções para alimentar a pipeline de obtenção de instruções com os valores preditos; pre-obtenção de instruções A unidade obtém instruções antes de estas serem referenciadas; acesso a memória de instruções A obtenção de múltiplas instruções por ciclo coloca vários problemas (p.ex. múltiplas leituras de cache), cujo tratamento é encapsulado por esta unidade; também proporciona armazenamento temporário (buffering). João Canas Ferreira (FEUP/DEEC) ILP / Para atingir os níveis de desempenho desejado, a maior parte dos processadores recentes opta por usar uma unidade integrada de obtenção de instruções (integrated instruction fetch unit). Esta unidade é autónoma e a sua tarefa é alimentar a pipeline de execução À media que aumenta o número de instruções que podem ser emitidas por ciclo (ver acetato 35), esta unidade pode transformar-se num gargalo de desempenho Esta unidade é a que faz a interface com a mm 31

31 Distribuição de instruções Predição de endereços de retorno A predição de saltos indirectos (i.e., via registos) não é feita eficientemente pelas estratégias já referidas. Branch-target prediction funciona, mas não é eficaz. (Porquê?) O retorno de subrotinas constitui cerca de 85% dos saltos indirectos. O processador mantém uma pilha de endereços de retorno: coloca aí um endereço quando executa uma chamada e retira um quando faz um retorno. Pilhas suficientemente grandes permitem predizer perfeitamente os endereços de retorno. João Canas Ferreira (FEUP/DEEC) ILP / A predição de destino de saltos não é eficaz, porque o destino do salto (associado ao retorno de uma função) não é sempre o mesmo. 32

32 Distribuição de instruções Predição de endereços de retorno: profundidade da pilha João Canas Ferreira (FEUP/DEEC) ILP / Como o número de invocações pendentes de subrotinas é geralmente reduzido (com algumas excepções), pequenas pilhas de endereços de retorno funcionam bastante bem. Nos resultados apresentados no gráfico, uma pilha de 8 posições é suficiente para predizer correctamente os retornos de função de todos os programas, excepto um. O benchmark li é um interpretador de LISP a executar um programa recursivo Para estes seis programas, o retorno de subrotinas representa 81% de todos os saltos indirectos. 33

33 Emissão múltipla de instruções 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 34

34 Emissão múltipla de instruções Emissão de mais que uma instrução por ciclo Para obter CPI<1 é necessário emitir mais que uma instrução por ciclo. Processadores com emissão múltipla dividem-se em: 1 Processador super-escalar: número variável de instruções por ciclo, sequenciamento dinâmico (ou estático), execução fora de ordem. 2 Processador VLIW (very long instruction word): número fixo de instruções por ciclo ou pacote de instruções com concorrência explicitamente indicada (EPIC explicit parallel instruction computer); sequenciamento estático. Para cada instrução de um pacote de instruções: examinar as instruções por ordem; instruções em conflito com instruções em execução ou com instruções anteriores do pacote não são emitidas. Na prática, as instruções de um pacote são todas examinadas concorrentemente; a complexidade da tarefa obriga a usar uma pipeline no andar de emissão (aumenta a importância da predição). João Canas Ferreira (FEUP/DEEC) ILP / Processadores VLIW estão muito dependentes da qualidade do compilador, que, por sua vez, deve ter um conhecimento detalhado da microarquitectura do processador Processadores superescalares mais antigos e processadores para sistemas embutidos usam sequenciamento estático. Por exemplo, o processador Blackfin (Analog Devices) permite executar 2 instruções de 16 bits em paralelo com uma instrução de 32 bits. 35

35 Emissão múltipla de instruções Caracterização de processadores com multi-emissão Nome comum Super-escalar (estático) Super-escalar (dinâmico) Super-escalar (especulação) Emissão Detecção de conflitos Sequenciamento Característica marcante dinâmica hardware estático execução em ordem dinâmica hardware dinâmico execução fora de ordem dinâmica hardware dinâmico com especulação execução fora de ordem com especulação VLIW/LIW estática software estático sem conflitos entre pacotes de instruções EPIC sobretudo estática sobretudo software geralmente estático dependências explícitas Exemplo Sun Ultra SPARC II/III IBM Power2 Pentium 4, MIPS R10K, IBM RS64III Trimedia, i860 Itanium João Canas Ferreira (FEUP/DEEC) ILP / O tratamento que se segue está focado nos três primeiros tipos de multi-emissão indicados na tabela. 36

36 Emissão múltipla de instruções Emissão estática para processadores superscalares Emissão de um número variável de instruções (típico 0 8). Instruções são emitidas por ordem e todos os conflitos são detectados durante o processo de emissão. Detecção de conflitos envolve as outras instruções em emissão, bem como as já emitidas. Emissão estática: o processador não toma decisões sobre a emissão simultânea de instruções; isso é tarefa do compilador. Pacote de emissão: grupo de instruções produzido pela unidade de obtenção de instruções (fetch unit) que potencialmente podem ser emitidas num ciclo. Emissão de instruções é uma tarefa complexa: é frequentemente dividida em 2 (às vezes mais) etapas em pipeline. João Canas Ferreira (FEUP/DEEC) ILP / São emitidas 0 instruções quando o processador está em protelamento Quando uma instrução exibe uma dependência de dados ou não verifica os outros critérios de emissão (conflito estrutural), apenas as instruções que a precedem serão emitidas A unidade de obtenção de instruções pode ser incapaz de fornecer o número pedido de instruções A verificação dos requisitos para emissão das instruções é feito no primeiro andar da pipeline de emissão e inclui a detecção de conflitos com instruções ainda na pipeline de emissão (e não apenas com as instruções já emitidas) Uma estratégia comum é a seguinte: 1. O primeiro andar determina quantas instruções podem ser emitidas, ignorando dependências de instruções já emitidas. 2. o segundo andar examina as dependências entre as instruções seleccionadas e as instruções em execução Pipelines de emissão de instruções aumentam ainda mais a penalidade por erros de previsão de saltos, implicando assim um aumento da importância da qualidade da previsão A emissão de instruções pode limitar o período de relógio, constituindo assim um obstáculo ao aumento do desempenho por via do aumento da frequência. 37

37 Emissão múltipla de instruções Exemplo: 2-issue MIPS com emissão estática 1 instrução VF + 1 instrução inteira (ALU, load/store); esta organização minimiza os conflitos adicionais em relação à emissão simples; pacote de emissão: possível conflito RAW entre instrução load/store de VF e operação VF. soma VF: 3 ciclos. João Canas Ferreira (FEUP/DEEC) ILP / As duas pipelines são quase independentes. Não esquecer que existem dois bancos de registos diferentes (um para valores inteiros e outro para valores de vírgula flutuante) Neste cenário, acessos a memória são consideradas instruções inteiras As maiores dificuldades na detecção de conflitos envolvem a leitura e a escrita em memória de valores de vírgula flutuante. Também podem surgir problemas com instruções de movimento de dados entre os dois bancos de registos Restrições ao tipo de instruções que podem ser emitidas em simultâneo são comuns em prcessadores multi-emissão. 38

38 Emissão dinâmica: exemplo 1 Emissão múltipla de instruções Características: MIPS, dual-issue, extensão do algoritmo de Tomasulo à unidade inteira, 2 CDBs; Emissão de duas instruções por ciclo (para unidades diferentes); Instruções só executam após o tratamento do salto condicional de que dependem; Andares de escrita dos resultados (1 ciclo); Latências: inteiros, 1 ciclo; loads, 2 ciclos; soma VF: 3 ciclos; Unidade de tratamento de saltos. LOOP: L.D F0, 0(R1) ADD.D F4, F0, F2 S.D F4, 0(R1) DADDIU R1, R1, #-8 BNE R1, R2, LOOP João Canas Ferreira (FEUP/DEEC) ILP / As duas principais estratégias para emitir duas instruções por ciclo são: 1. executar a emissão de cada instrução em meio-ciclo (ncluido a verificação de dependências); 2. emitir mesmo as duas instruções em paralelo (incluido o tratamento de todas as dependências entre instruções em emissão). Muitos processadores modernos usam as duas abordagens simultaneamente para emitir 4 ou mais instruções por segundo. 39

39 Emissão múltipla de instruções Exemplo 1: Sequência de execução João Canas Ferreira (FEUP/DEEC) ILP / Neste exemplo assume-se que instruções podem ser emitidas, mesmo quando existem dependências entre elas, ficando nesse caso a aguardar a resolução do conflito nas respectivas estações de reserva A unidade de vírgula flutuante é pipelined Assumir a existência de dois CDBs e previsão de saltos perfeita A condição de salto é avaliada na etapa de execução Taxa de emissão (no exemplo): 5/3 = 1, Taxa de execução (IPC) : 15/16 = 0, Se não existirem protelamentos por falha da previsão de saltos, as estações de reserva ficarão todas preenchidas e torna-se necessário protelar A vantagem sobre emissão simples é pequena, porque este ciclo apenas tem uma instrução de vírgula flutuante. Neste caso, é a unidade inteira limita o desempenho. 40

40 Emissão múltipla de instruções Exemplo 1: Utilização de recursos João Canas Ferreira (FEUP/DEEC) ILP / Cada entrada da tabela indica quando é que a correspondente unidade está a ser usada: iteração/instrução Para este exemplo, apenas um CDB é necessário. Por isso, o segundo CDB não está representado Notar que a unidade inteira é bastante usada. 41

41 Emissão dinâmica: exemplo 2 Emissão múltipla de instruções Duas unidades inteiras distintas: uma para operações (ALU) e outra para cálculo do endereço efectivo. João Canas Ferreira (FEUP/DEEC) ILP / Neste exemplo existe uma unidade adicional para realizar o cálculo dos endereços de memória As três iterações executam agora em 11 ciclos (entrada em execução da última instrução), 5 ciclos menos que no exemplo anterior: IPC = 15/11 = 1,36; CPI = 0,73. 42

42 Emissão múltipla de instruções Exemplo 2: utilização de recursos João Canas Ferreira (FEUP/DEEC) ILP / Neste caso, já são necessários dois CDBs A taxa de utilização das unidades funcionais é, globalmente, baixa Observação geral sobre os dois exemplos: é a dependência de controlo que impede de obter maior eficiência. 43

43 Especulação por hardware 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 44

44 Especulação por hardware Execução especulativa Processadores de elevado desempenho precisam de executar mais que uma instrução de salto por ciclo. Especular: Predizer os saltos e executá-los (não apenas emiti-los)! Especulação combina três conceitos: 1 previsão dinâmica de saltos; 2 execução especulativa de instruções antes de resolver conflitos de controlo (com capacidade de anulação); 3 sequenciamento dinâmico. Separação entre encaminhamento dos resultados para as operações e terminação da instrução: a instrução só armazena resultados quando for confirmado que os resultados são válidos. Guardar os resultados num reorder buffer (ROB) até ao estágio de instruction commit ( compromisso ). João Canas Ferreira (FEUP/DEEC) ILP / A execução especulativa pressupõe a capacidade de anular os efeitos de instruções executadas especulativamente Especulação permite aplicar o sequenciamento dinâmico simultaneamente a mais que um bloco básico Execução especulativa é usado em PowerPC 603/604/G3/G4, MIPS R10000/R12000, Pentium II/III/4, Alpha 21264, AMD K5/K6/Athlon É necessário separar a realização dos cálculos da finalização da instrução: introduzir uma nova fase de finalização (designada por commit or retirement) A finalização é feita pela ordem das instruções no fio de execução: é essa a função do reorder buffer. (Existem ainda outras alternativas para obter o mesmo efeito.) 45

45 Hardware para especulação Especulação por hardware João Canas Ferreira (FEUP/DEEC) ILP / Exemplo aplicado à unidade de vírgula flutuante usada para ilustrar o sequenciamento dinâmico. A extensão para o CPU completo é conceptualmente simples Por comparação com a versão anterior, acrescentou-se o ROB e removeu-se o store buffer, cujo papel passa a ser desempenhado pela ROB Neste esquema, apenas um instrução pode ser finalizada em cada ciclo de relógio. O mecanismo pode ser aumentado usando mais que um CDB. 46

46 Especulação por hardware Reorder buffer O reorder buffer (ROB) fornece registos temporários adicionais para guardar resultados entre o instante em que a instrução termina a execução e faz commit. ROB também é fonte de operandos. ROB é similar ao store buffer; na prática, o ROB combina a funcionalidade de ambos. O ROB tem a seguinte informação para cada instrução emitida: 1 tipo de instrução (salto sem resultado; store resultado em memória;alu/load resultado em registo). 2 destino (onde guardar o resultado); 3 valor; 4 ready indica se o valor é válido. Cada instrução é referenciada pela sua posição no ROB. João Canas Ferreira (FEUP/DEEC) ILP / O reorder buffer fornece registos extra, de forma similar aos que são fornecidos pelas estações de reserva Os operandos são etiquetados pela sua posição no ROB (e não nas estações de reserva). 47

47 Especulação por hardware Etapas do processamento de instruções Emissão Obter instrução da fila de instruções. Emitir a instrução se existirem uma ER e uma posição no ROB livres. Enviar operandos para ER se estiverem disponíveis nos registos ou no ROB. [dispatch] Execução Se algum dos operandos não estiver disponível, monitorar o CDB. Store só necessita do cálculo do endereço efectivo. Quando os operandos estão disponíveis, executar a instrução, possivelmente em múltiplos ciclos. [issue] Escrita Enviar resultado via CDB para ROB e ER. Para stores o valor (o endereço) é guardado no ROB. Commit A acção depende do tipo de instrução: Salto mal previsto: limpar ROB e recomeçar processamento com instrução a seguir ao salto. Operação normal: a instrução chega ao topo do ROB com o resultado presente; este é enviado para o registo. [completion] No fim, a posição do ROB é libertada. Quando o ROB fica cheio, a emissão de instruções é suspensa. João Canas Ferreira (FEUP/DEEC) ILP / A fase de emissão também é designada por despacho (dispatch) A detecção de conflitos RAW é feita na fase de execução Instruções de escrita em memória (load) ficam neste estado até o valor a escrever estar disponível As instruções do ROB entram em commit por ordem. Deste ponto de vista, o ROB porta-se como uma fila. 48

48 Especulação por hardware Exemplo: Emissão dupla sem especulação João Canas Ferreira (FEUP/DEEC) ILP / O fragmento de código incrementa os elementos de um vector A instrução L.D a seguir ao salto condicional BNE necessita de esperar pelo resulado do salto O exemplo assume a existência de uma unidade de cálculo de endereços e emissão dupla (conforme o exemplo do acetato

49 Especulação por hardware Exemplo: Emissão dupla com especulação João Canas Ferreira (FEUP/DEEC) ILP / 57 50

50 Limitações de concorrência a nível de instruções 1 Sequenciamento dinâmico 2 Algoritmo de Tomasulo 3 Previsão dinâmica de saltos 4 Distribuição de instruções 5 Emissão múltipla de instruções 6 Especulação por hardware 7 Limitações de concorrência a nível de instruções João Canas Ferreira (FEUP/DEEC) ILP / 57 51

51 Limitações de ILP Limitações de concorrência a nível de instruções Os estudos estabelecem um modelo (conjunto de suposições) e determinam a quantidade de paralelismo existente em instruções emitidas por ciclo. Modelo de processador ideal: 1. Register renaming Número infinito de registos. 2. Predição de saltos A predição é perfeita. 3. Predição de saltos incondicionais Todos os saltos incondicionais (incluindo retornos de subrotinas) são preditos perfeitamente. 4. Acesso a memória Todos os endereços são conhecidos em qualquer altura; load pode ser adiantado em relação a store (desde que não acedam à mesma posição de memória). Os pontos 2 e 3 eliminam as dependências de controlo. Os pontos 1 e 4 eliminam todas as dependências excepto as verdadeiras. O processador pode emitir um número infinito de instruções por ciclo; todas as unidades funcionais têm 1 ciclo de latência; caches perfeitas: 1 ciclo de acesso. João Canas Ferreira (FEUP/DEEC) ILP / A principal linha de orientação para o aumento do desempenho de processadores foi, nos anos 80 e 90, o aproveitamento da concorrência a nível de instruções (instruction-level parallelism ILP). Portanto, é importante ter uma noção de quanta concorrência existe realmente nos programas escritos de maneira convencional (i.e., para uma arquitectura puramente sequencial) Estudos empíricos deste tipo só podem ser feitos por simulação. Geralmente, começa-se por examinar os resultados obtidos por um processador ideal, para depois analisar a influência de cada uma das limitações realistas Os resultdos apresentados a seguir provêm do seguinte trabalho: Wall, D. W., Limits of Instruction-Level Parallelism, Research Report Rep. WRL-93-6, Western Research Laboratory, Digital Equipment Corp. ( Em todos os caso analisados, não existem restrições aos tipos de instruções que podem ser emitidas simultaneamente. 52

52 Limitações de concorrência a nível de instruções ILP para um processador perfeito João Canas Ferreira (FEUP/DEEC) ILP / Neste estudo, a concorrência de operações é medida pelo número médio de instruções emitidas por ciclo (1/CPI). Todas as instruções têm latência de 1 ciclo Os programas fpppp, doduc e tomcatv são programas científicos, que fazem uso significativo de dados em vírgula flutuante. Os restantes utilizam apenas aritmética inteira Os programas científicos apresentam maior quantidade de paralelismo, como seria de esperar Nestas simulações, cada instrução é emitida o mais cedo que as dependências de dados permitam. Como todos os saltos são preditos sem erros, tal pode implicar grande movimentação das instruções. 53

53 Limitações de concorrência a nível de instruções Efeito da dimensão da janela Janela: n.º de instruções examinadas simultaneamente. Nos estudos subsequentes assume-se: janela de 2K / 64-issue. João Canas Ferreira (FEUP/DEEC) ILP / Em cada ciclo, um processador perfeito deve: 1. Procurar arbitrariamente longe no futuro todas as instruções que possam ser emitidas neste ciclo (prevendo correctamente todos os saltos); 2. Renomear registos para evitar conflitos WAR e WAW; 3. Determinar se existem dependências de dados (verdadeiras) entre as instruções a emitir neste ciclo e renomear os respectivos operandos; 4. Determinar se existem dependência de dados (verdadeiras) via memória e tratá-las apropriadamente. Para além disso, deve ter suficientes unidades funcionais para permitir a emissão de todas as instruções prontas A tarefa de verificar se existem dependências de dados entre n instruções, cada uma com dois operandos, requer (n n) comparações. Por exemplo, detectar as dependências entre 2000 instruções requer pouco menos de 4 milhões de comparações. Por outras palavras, uma janela de instruções de 2000 requereria um processador capaz de fazer 4 milhões de comparações por ciclo. Processadores do início do século XXI têm janelas cujo tamanho varia entre 64 e 128 instruções O efeito de considerar uma janela de instruções finita é claramente mostrado na figura: o paralelismo disponível desce significativamente. 54

54 Limitações de concorrência a nível de instruções Efeito da predição realista João Canas Ferreira (FEUP/DEEC) ILP / O efeito de usar mecanismos realistas de predição de saltos também é claro: descida significativa do paralelismo (menos de 20 instruções emitidas por ciclo, em média) Predição estática: A predição é baseada no perfil de execução do programa. Depois de analisado um perfil da execução do programa, o preditor (um programa) decide, para cada instrução de salto, se esta deve ser predita como tomada ou não-tomada, e altera o binário por forma a indicar isso ao processador. (Alguns processadores permitem anotar cada instrução de salto com um bit a indicar qual o sentido da predição.) Trata-se de uma predição estática, no sentido em que é feita off-line. 55

55 Limitações de concorrência a nível de instruções Efeito de um número finito de registos em RR João Canas Ferreira (FEUP/DEEC) ILP / A figura mostra o efeito de se dispor de um número finito de registos adicionais, para além dos especificados pela arquitectura do conjunto de instruções Registos de VF e para dados inteiros são aumentados do mesmo número. Por exemplo, os valores para a abcissa 32 correspondem a utilização adicional de 32 registo de VF e de 32 registos para dados inteiros Em 2001, o processador Alpha era aquele que mais registos adicionais tinha: Os resultados mostram que as dependências de nome (que resultam em conflitos WAR e WAW) podem limitar significativamente o paralelismo disponível. De facto,observa-se empiricamente que o impacto relativo destas dependências aumenta com o paralelismo disponível. 56

56 Limitações de concorrência a nível de instruções Características de alguns processadores comerciais João Canas Ferreira (FEUP/DEEC) ILP / Dados representativos de processadores comerciais em Notar os diferentes tipos de restrições à emissão conjunta de instruções (terceira coluna a contar da direita). 57

Execução concorrente de instruções

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

Leia mais

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

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

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

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

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

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

Execução concorrente de instruções: Aspectos avançados

Execução concorrente de instruções: Aspectos avançados Execução concorrente de instruções: Aspectos avançados João Canas Ferreira Novembro de 2006 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3ª. ed., MKP 2006

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

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

Modos de entrada/saída

Modos de entrada/saída Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Modos de entrada/saída Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo

Leia mais

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

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

Leia mais

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

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

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

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

Sistemas Operativos I

Sistemas Operativos I Arquitectura de um Computador Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sumário Arquitectura de um Computador Estrutura de I/O Estrutura de Armazenamento Hierarquia de Armazenamento Protecção

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

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

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

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

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

Organização de Computadores 1

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

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

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.

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

Métodos de Sincronização do Kernel

Métodos de Sincronização do Kernel Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupção.

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

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

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

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

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,

Leia mais

Entradas/Saídas. Programação por espera activa Programação por interrupções

Entradas/Saídas. Programação por espera activa Programação por interrupções Entradas/Saídas Programação por espera activa Programação por interrupções Programação por espera activa 1. O programa lê o estado do periférico: CPU pede ao controlador (IN) o valor no registo ESTADO

Leia mais

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

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

Leia mais

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

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

Leia mais

Facturação Guia do Utilizador

Facturação Guia do Utilizador Facturação Guia do Utilizador Facturação Como se utiliza 2 1 Como se utiliza Todas as opções do sistema estão acessíveis através do menu: ou do menu: O Menu caracteriza-se pelas seguintes funcionalidades:

Leia mais

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Gestão do Risco e da Qualidade no Desenvolvimento de Software Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se

Leia mais

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva.

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva. Universidade Federal do Rio de Janeiro Pós-Gradução em Informática Microarquiteturas de Alto Desempenho Multithreading Introdução Muitos dos sistemas operacionais modernos suportam o conceito de threads,

Leia mais

11- Tornar transparente para o processador os detalhes de operação e controle dos dispositivos periféricos.

11- Tornar transparente para o processador os detalhes de operação e controle dos dispositivos periféricos. 1- O componente principal e chamado de célula de bit. 2- A célula de bit é um circuito eletrônico que armazena um bit de informação. 3- O menor conjunto de células de bits que é acessado pelo processador

Leia mais

Hardware Fundamental

Hardware Fundamental Hardware Fundamental Arquitectura de Computadores 10º Ano 2006/2007 Unidade de Sistema Um computador é um sistema capaz de processar informação de acordo com as instruções contidas em programas. Na década

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

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

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

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Documento SGS. PLANO DE TRANSIÇÃO da SGS ICS ISO 9001:2008. PTD3065 - v010-2008-11 Pág 1 de 6

Documento SGS. PLANO DE TRANSIÇÃO da SGS ICS ISO 9001:2008. PTD3065 - v010-2008-11 Pág 1 de 6 PLANO DE TRANSIÇÃO da SGS ICS ISO 9001:2008 PTD3065 - v010-2008-11 Pág 1 de 6 1 Introdução A ISO 9001:2008 e o Processo de Transição da SGS ICS A International Organization for Standardization (ISO) publicou,

Leia mais

Organização de Computadores Como a informação é processada?

Organização de Computadores Como a informação é processada? Curso de ADS/DTEE/IFBA Organização de Computadores Como a informação é processada? Prof. Antonio Carlos Referências Bibliográficas: 1. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear 2.

Leia mais

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

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

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO DO SEMI-ÁRIDO DEPARTAMENTO DEPARTAMENTO DE DE CIÊNCIAS CIÊNCIAS EXATAS EXATAS E E NATURAIS NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos

Leia mais

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII A ocorrência tamanho ASCII codificação de Huffman é um A Codificação método de compactação de Huffman caracteres (American e a variável codificação dos usado símbolos Standard para por cada muitas no Code

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

MANUAL DE PROCEDIMENTOS PLATAFORMA DE INSCRIÇÕES ONLINE

MANUAL DE PROCEDIMENTOS PLATAFORMA DE INSCRIÇÕES ONLINE A época de 2012/2013 terá um novo recurso para a Filiação e Inscrições em Provas para os Clubes, Equipas e Agentes Desportivos, tendo sido criada para o efeito uma nova Plataforma de Inscrições Online.

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. A multiprogramação tem como objetivo permitir que, a todo instante, haja algum processo

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

Manual do Gestor da Informação do Sistema

Manual do Gestor da Informação do Sistema Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga

Leia mais

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta

Leia mais

Gerenciamento de memória

Gerenciamento de memória Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.

Leia mais

B2S SISTEMAS DE INFORMAÇÃO, LDA. RUA ARTILHARIA UM, Nº 67 3º FRT. 1250-038 LISBOA TEL: 21 385 01 09 - FAX: 21 012 52 25 E-MAIL B2S@B2S.

B2S SISTEMAS DE INFORMAÇÃO, LDA. RUA ARTILHARIA UM, Nº 67 3º FRT. 1250-038 LISBOA TEL: 21 385 01 09 - FAX: 21 012 52 25 E-MAIL B2S@B2S. Procedimentos Abertura/Fecho Ano Primavera V750 B2S SISTEMAS DE INFORMAÇÃO, LDA. RUA ARTILHARIA UM, Nº 67 3º FRT. 1250-038 LISBOA TEL: 21 385 01 09 - FAX: 21 012 52 25 E-MAIL B2S@B2S.PT MCRC LISBOA 11492

Leia mais

NCRF 19 Contratos de construção

NCRF 19 Contratos de construção NCRF 19 Contratos de construção Esta Norma Contabilística e de Relato Financeiro tem por base a Norma Internacional de Contabilidade IAS 11 - Contratos de Construção, adoptada pelo texto original do Regulamento

Leia mais

O Manual do ssc. Peter H. Grasch

O Manual do ssc. Peter H. Grasch Peter H. Grasch 2 Conteúdo 1 Introdução 6 2 Usar o ssc 7 2.1 Gerir os utilizadores.................................... 7 2.1.1 Adicionar um utilizador.............................. 8 2.1.1.1 Associar-se

Leia mais

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos José Rogado jose.rogado@ulusofona.pt Universidade Lusófona Mestrado Eng.ª Informática e Sistemas de Informação 2013/14 Resumo

Leia mais

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto SMP,

Leia mais

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

Leia mais

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL Quando se caminha no sentido da memória secundária encontramos memórias com maior capacidade, maior tempo de acesso e mais baixo custo/bit. Fig

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO 4 CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO CONCEITOS BÁSICOS MS-DOS MICROSOFT DISK OPERATION SYSTEM INSTALAÇÃO E CONFIGURAÇÃO DE UM SISTEMA OPERATIVO LIGAÇÕES À INTERNET O que é um sistema operativo?

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

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Suporte do Sistema Operacional Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Objetivos

Leia mais

Gerência de Memória. Paginação

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

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

Sistema de Memórias de Computadores

Sistema de Memórias de Computadores Sistema de Memórias de Computadores Uma memória é um dispositivo que permite um computador armazenar dados temporariamente ou permanentemente. Sabemos que todos os computadores possuem memória. Mas quando

Leia mais

JURINFOR JURIGEST Facturação e Mapas

JURINFOR JURIGEST Facturação e Mapas JURINFOR JURIGEST Facturação e Mapas Índice Índice 1. Facturação...1 1.1. Gestão de Notas de Honorários...2 1.1.1. Emitir uma Nota de Honorários...3 1.1.2. Consultar Notas de Honorários Emitidas... 18

Leia mais

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos Sistemas Operativos - 2º Ano 2012/2013 O Windows Server 2003 surgiu em 2003 e substituiu o Windows Server 2000. O Windows

Leia mais

28 de Abril de Aula 14

28 de Abril de Aula 14 28 de Abril de 2005 1 Arquitecturas superescalares Aula 14 Estrutura desta aula Arquitecturas VLIW e superescalares Emissão de instruções Emissão de 2 vias Superescalares com agendamento dinâmico Exemplo

Leia mais

Descrição do Produto. Altus S. A. 1

Descrição do Produto. Altus S. A. 1 Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração

Leia mais

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE Questionamento a alta direção: 1. Quais os objetivos e metas da organização? 2. quais os principais Produtos e/ou serviços da organização? 3. Qual o escopo da certificação? 4. qual é a Visão e Missão?

Leia mais

Manual do Utilizador. Manual do Utilizador Modelo10 no sisgep. Data última versão: 16.02.2007 Versão : 1.2. Data criação: 26.02.

Manual do Utilizador. Manual do Utilizador Modelo10 no sisgep. Data última versão: 16.02.2007 Versão : 1.2. Data criação: 26.02. Manual do Utilizador Modelo10 no sisgep Manual do Utilizador Modelo10 no sisgep Data última versão: 16.02.2007 Versão : 1.2 Data criação: 26.02.2004 Faro R. Dr. José Filipe Alvares, 31 8005-220 FARO Telf.

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba Questão 01 Assumindo um registrador de 10 bits e utilizando-se de representação binária, com valores negativos representados em código de 2, os valores em representação decimal 235, -189 possuem, respectivamente,

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

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for FICHA DE TRABALHO Nº 1 MÓDULO: EQUIPAMENTOS ACTIVOS DE REDES DATA: / 03 / 2010 FORMADOR: EDUARDO SEQUEIRA FICHA LABORATORIAL 1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através

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

Miguel Nascimento Nº 2010426 TIM LTM 12 Janeiro 2011

Miguel Nascimento Nº 2010426 TIM LTM 12 Janeiro 2011 Miguel Nascimento Nº 2010426 TIM LTM 12 Janeiro 2011 Introdução Existem actualmente diversos formatos para reprodução de som multi-canal, mas neste trabalho serão abordados os seguintes: Estéreo LCRS 5.1

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

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

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

Cotagem de dimensões básicas

Cotagem de dimensões básicas Cotagem de dimensões básicas Introdução Observe as vistas ortográficas a seguir. Com toda certeza, você já sabe interpretar as formas da peça representada neste desenho. E, você já deve ser capaz de imaginar

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

PAINEL DE ADMINISTRADOR

PAINEL DE ADMINISTRADOR PAINEL DE ADMINISTRADOR IMPORTANTE: O Painel de administrador APENAS deverá ser utilizado pelo responsável do sistema. são: Nesta aplicação, poderá configurar todo o sistema de facturação. As opções do

Leia mais

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006 Redes de Computadores Tratamento de erros Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006 Ligação de dados Conceitos e objectivos Uma ligação física caracteriza-se

Leia mais

Linguagens de Programação Aula 10

Linguagens de Programação Aula 10 Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração

Leia mais

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01 Introdução à Arquitetura de Computadores Renan Manola Introdução ao Computador 2010/01 Introdução Conceitos (1) Computador Digital É uma máquina que pode resolver problemas executando uma série de instruções

Leia mais

Especificação Operacional.

Especificação Operacional. Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite

Leia mais

Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc

Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc DOSPrinter Manual do Utilizador Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc Data última versão: 20.03.2006 Versão : 1.1 Data criação: 01.03.2006 Faro R. Dr. José Filipe Alvares, 31 8005-220

Leia mais

Abordagem simples aos modos de falha com recurso a um software de organização e gestão da manutenção

Abordagem simples aos modos de falha com recurso a um software de organização e gestão da manutenção Abordagem simples aos modos de falha com recurso a um software de organização e gestão da manutenção Marcelo Batista (1), José Fernandes (1) e Alexandre Veríssimo (1) mbatista@manwinwin.com; jcasimiro@navaltik.com;

Leia mais

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado Memória Armazenamento Sistema de Arquivos 1 Hierarquia de Memórias 2 Partes físicas associadas à memória Memória RAM Memória ROM Cache

Leia mais

DOCUMENTO DE APOIO À APLICAÇÃO

DOCUMENTO DE APOIO À APLICAÇÃO DOCUMENTO DE APOIO À APLICAÇÃO CHEQUE PRINT Versão 1.0 de 01-01-2010 Um produto da empresa World Solutions Unip. Lda. Telefone +351 22 9720375 E-Mail: INTRODUÇÃO Este documento tem como finalidade servir

Leia mais