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

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

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

Transcrição

1 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 1/55 Assuntos 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 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 2/55

2 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 3/ 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.) 3

3 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) AAC (FEUP/MIEIC) ILP: Aspectos avançados 4/ 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 F10, F0, F8 SUB.D F12, F8, F14 ; WAR MUL.D F6, F10, F8 ; WAW 4

4 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 5/ 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úlltiplas unidades funcionais A aboradgem 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. 5

5 Algoritmo de Tomasulo Aspectos básicos do algoritmo de Tomasulo 1. Primeira utilização: unidade VF do IBM 360/ 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 6/ 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). 6

6 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) A.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.) 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 7/ Um CPU que implemente RR consegue fazer as alterações equivalentes à do exemplo durante o processamento do fluxo de instruções 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). 7

7 Algoritmo de Tomasulo MIPS adaptado para o algoritmo de Tomasulo 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 8/ 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.) 8.2. 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. 8

8 Algoritmo de Tomasulo Etapas do 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) AAC (FEUP/MIEIC) ILP: Aspectos avançados 9/ 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. 9

9 Algoritmo de Tomasulo Informação distribuída pelo processador Estação de reserva: 1. Op operação a efectuar; 2. Qj, Qk ER que produzirão os operandos (0 operando disponível ou desnecessário); 3. Vj, Vk Valores dos operandos; para leituras de memória Vk contém o deslocamento; 4. A regista informação para acessos a memória: valor imediato/endereço efectivo; 5. Busy indica se ER (ou unidade funcional) está ocupada. Cada registo (do banco de registos) contém indicação da ER que contém a operação cujo resultado deverá ser aí guardado (Qi) AAC (FEUP/MIEIC) ILP: Aspectos avançados 10/ No nosso caso, Qi, Qj e Qk são valores de 4 bits que designam uma das cinco estações de reserva ou um dos cinco buffers de leitura. 10

10 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 11/ 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. 11

11 Algoritmo de Tomasulo ATom: Detalhes de funcionamento 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 12/55 12

12 Algoritmo de Tomasulo ATom: Processamento de ciclos Exemplo: Multiplicar elementos de um vector por um escalar (F2). Loop: L.D F0,0(R1) MUL.D F4,F0, S.D F4,0(R1) DADDUI R1,R1,-8 BNE R1,R2,Loop Se assumirmos que os saltos são previstos como tomados, a utilização de ER permite a execução concorrente de mais que uma iteração (duas, neste caso, conforme indicado na próxima folha). Assumindo que as multiplicações podem ser executadas em 4 ciclos (e os acessos a memória demoram 2), o sistema atinge um CPI próximo de 1. (Nota: A unidade inteira não é mostrada na tabela.) 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 13/55 13

13 Algoritmo de Tomasulo ATom: Processamento de ciclos (cont.) Status da instrução Instrução Iteração Emissão Execução Escrita L.D F0,0(R1) 1 MUL.D F4,F0,F2 1 S.D F0,0(R1) 1 L.D F0,0(R1) 2 MUL.D F4,F0,F2 2 S.D F0,0(R1) 2 Estações de reservas Nome Busy Op Vj Vk Qj Qk A Load1 S Load Regs[R1]+0 Load2 S Load Regs[R1]-8 Add1 N Add2 N Add3 N Mult1 S Mul Regs[F2] Load1 Mult2 S Mul Regs[F2] Load2 Store1 S Store Regs[R1] Mult1 Store2 S Store Regs[R1]-8 Mult2 Status dos registos F0 F2 F4 F6 F8 F10 F12... F30 Qi Load2 Mult2 Div 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 14/55 14

14 Algoritmo de Tomasulo Algoritmo de Tomasulo: Sumário 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 15/55 15

15 Previsão dinâmica de saltos Previsão dinâmica de saltos: o conceito A prediçã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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 16/ 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). 16

16 Previsão dinâmica de saltos Esquema local de predição de 2 bits 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 17/ 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. 17

17 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 18/ 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. 18

18 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 19/ 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. 19

19 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 20/ 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. 20

20 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) 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 21/ 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. 21

21 Previsão dinâmica de saltos Tabela com informação global e local Implementação de um buffer de predição (2,2) AAC (FEUP/MIEIC) ILP: Aspectos avançados 22/ 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. 22

22 Previsão dinâmica de saltos Predição com correlação: comparação empírica 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 23/ 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. 23

23 Predição de torneio Previsão dinâmica de saltos 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) AAC (FEUP/MIEIC) ILP: Aspectos avançados 24/ 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. 24

24 Previsão dinâmica de saltos Predição de torneio: exemplo com 2 bits 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 25/ 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. 25

25 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 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 26/ 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). 26

26 Previsão dinâmica de saltos Taxa de falhas para diferentes estratégias de predição 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 27/ 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. 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 28/ 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 Distribuição de instruções Tabela de destinos de saltos Apenas regista informação sobre ciclos tomados AAC (FEUP/MIEIC) ILP: Aspectos avançados 29/ 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 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 30/ 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) AAC (FEUP/MIEIC) ILP: Aspectos avançados 31/ 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 34), 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 32/ 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 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 33/ 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 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) AAC (FEUP/MIEIC) ILP: Aspectos avançados 34/55 34

34 Emissão múltipla de instruções Caracterização de processadores com multi-emissão Nome comum Emissão Detecção de conflitos Sequenciamento Característica marcante Exemplo (es- Super-escalar tático) dinâmica hardware estático execução em ordem Sun Ultra SPARC II/III (di- Super-escalar nâmico) dinâmica hardware dinâmico execução fora de ordem IBM Power2 (es- Super-escalar peculação) dinâmica hardware dinâmico com especulação execução fora de ordem com especulação Pentium 4, MIPS R10K, IBM RS64III VLIW/LIW estática software estático sem conflitos entre pacotes de instruções Trimedia, i860 EPIC explíci- dependências tas sobretudo estática soft- sobretudo ware está- geralmente tico Itanium 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 35/55 35

35 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 (tip. 0-8); instruções são emitidas por ordem e todos os conflitos são detectados durante o processo de emissão; a 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) e que potencialmente podem ser emitidas num ciclo; a emissão é uma tarefa complexa: é frequentemente dividida em 2 (às vezes mais) etapas em pipeline AAC (FEUP/MIEIC) ILP: Aspectos avançados 36/55 36

36 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 37/55 37

37 Emissão múltipla de instruções Emissão dinâmica: exemplo 1 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 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 38/55 38

38 Emissão múltipla de instruções Exemplo 1: Sequência de execução 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 39/55 39

39 Emissão múltipla de instruções Exemplo 1: Utilização de recursos 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 40/55 40

40 Emissão múltipla de instruções Emissão dinâmica: exemplo 2 Duas unidades inteiras distintas: uma para operações (ALU) e outra para cálculo do endereço efectivo AAC (FEUP/MIEIC) ILP: Aspectos avançados 41/55 41

41 Emissão múltipla de instruções Exemplo 2: utilização de recursos 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 42/ Neste caso, apenas um CDB é necessário. 42

42 Execução especulativa Especulação por hardware 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 3 conceitos: 1. prediçã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 ) AAC (FEUP/MIEIC) ILP: Aspectos avançados 43/55 43

43 Reorder buffer Especulação por hardware 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 44/55 44

44 Especulação por hardware Hardware para especulação 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 45/55 45

45 Especulação por hardware Etapas do processamento de instruções 1. 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] 2. 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] 3. Escrita Enviar resultado via CDB para ROB e ER. Para stores o valor (o endereço) é guardado no ROB. 4. Commit A acção depende do tipo de instrução: Salto mal predito: 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 46/55 46

46 Especulação por hardware Exemplo: Emissão dupla sem especulação 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 47/55 47

47 Especulação por hardware Exemplo: Emissão dupla com especulação 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 48/55 48

48 Especulação por hardware Mapeamento dinâmico de registos Alternativa a ROB:Register Renaming + conjunto maior de registos. O processador mantém uma tabela que mapeia registos arquitecturais (visíveis) em registos físicos; um registo de destino só passa a arquitectural quando a instrução faz commit. O uso de RR torna a fase de commit mais simples: indicar que o mapeamento não é especulativo e libertar o registo físico que guardava o valor anterior do registo arquitectural. Libertar registo físico é complicado. Alternativas: 1. Verificar que não é mencionado no mapeamento nem é usado como fonte em instruções pendentes na unidade funcional. 2. Esperar até que outra instrução que escreve no mesmo registo arquitectural faça commit (já não existem usos do valor anterior). Os registos arquitecturais não estão fisicamente fixos. Pentium II/III/4, Alpha 21254, MIPS R10K usam RR (20 80 regs.) AAC (FEUP/MIEIC) ILP: Aspectos avançados 49/55 49

49 Limitações de concorrência a nível de instruções Limitações de ILP 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 50/ 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. 50

50 Limitações de concorrência a nível de instruções ILP para um processador perfeito 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 51/ 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. 51

51 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 AAC (FEUP/MIEIC) ILP: Aspectos avançados 52/ 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 2 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. 52

52 Limitações de concorrência a nível de instruções Efeito da predição realista 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 53/ 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. 53

53 Limitações de concorrência a nível de instruções Efeito de um número finito de registos em RR 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 54/ 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. 54

54 Limitações de concorrência a nível de instruções Características de alguns processadores comerciais 2006 AAC (FEUP/MIEIC) ILP: Aspectos avançados 55/ 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). 55

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

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

Execução concorrente de instruções

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

Leia mais

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

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

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

Architectures for Embedded Computing

Architectures for Embedded Computing Architectures for Embedded Computing dinâmico / especulativo Prof. Nuno Roma ACEmb 2009/10 - DEI-IST 1 / 44 Aula anterior Na aula anterior... Pipelining: Problemas de Implementação instruções multi-ciclo

Leia mais

1.0 val. (b) Determine o CPI do processador na execução do código indicado. Num.: Nome: Pág. 1. Arquitecturas Avançadas de Computadores (AAC)

1.0 val. (b) Determine o CPI do processador na execução do código indicado. Num.: Nome: Pág. 1. Arquitecturas Avançadas de Computadores (AAC) 1. Considere um processador in-order com 5 estágios (IF, ID, EX1, EX2, WB) sem qualquer mecanismo de forwarding de dados, e o seguinte troço de código. Memória de instruções Operação MOV R1,R0 ; R1 R0

Leia mais

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

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

Leia mais

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

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

Leia mais

1. Considere um processador super-pipelined com 4 estágios (IF,ID,EX,WB), a operar à frequência de 1GHz, e com as seguintes caracteristicas:

1. Considere um processador super-pipelined com 4 estágios (IF,ID,EX,WB), a operar à frequência de 1GHz, e com as seguintes caracteristicas: 1. Considere um processador super-pipelined com 4 estágios (IF,ID,EX,WB), a operar à frequência de 1GHz, e com as seguintes caracteristicas: unidades funcionais pipelined com as seguintes latências: 1

Leia mais

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

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

Leia mais

Resolva as seguintes alíneas fazendo todas as simplificações que considerar convenientes, anotando-as junto da resposta.

Resolva as seguintes alíneas fazendo todas as simplificações que considerar convenientes, anotando-as junto da resposta. 1. Considere um processador com ISA compatível com o MIPS64 e com funcionamento superpelining (Fetch, Decode, Issue, Execute, Write-back), com mecanismos de forwarding de dados, sendo o estágio de Execute

Leia mais

MO401. Arquitetura de Computadores I

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Memórias cache: uma introdução

Memórias cache: uma introdução Memórias cache: uma introdução João Canas Ferreira Dezembro de 2006 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3ª. ed., MKP 2006 AAC (FEUP/MIEIC) Memórias

Leia mais

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

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

Leia mais

de saltos Aula de Abril de

de saltos Aula de Abril de Predição de saltos Aula 13 21 de Abril de 2005 1 Estrutura desta aula Predição estática e dinâmica Custos da não predição Soluções Predição estática Predição dinâmica Branch History Tables (BHT) com 1

Leia mais

Pipelines. João Canas Ferreira. Mar-Abr Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap.

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Mestrado Integrado em Engenharia Informática e Computação. Arquitecturas Avançadas de Computadores Exame final

Mestrado Integrado em Engenharia Informática e Computação. Arquitecturas Avançadas de Computadores Exame final FEUP Mestrado Integrado em Engenharia Informática e Computação Arquitecturas Avançadas de Computadores Exame final 2011-01-11 Duração: 2H00m Com consulta Atenção: Este exame tem 6 questões em 8 páginas,

Leia mais

Microprocessadores. Execução em Paralelo Pipelines

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

Leia mais

Arquitetura e Organização de Computadores 2. Paralelismo em Nível de Instrução e a sua Exploração

Arquitetura e Organização de Computadores 2. Paralelismo em Nível de Instrução e a sua Exploração Arquitetura e Organização de Computadores 2 Paralelismo em Nível de Instrução e a sua Exploração Introdução Pipelining torna-se uma técnica universal em 1985 Explora a potencial sobreposição da execução

Leia mais

Arquitetura e Organização de Computadores

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

Leia mais

Processadores Superescalares. Melhorando ainda mais o desempenho...

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

Leia mais

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

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018 Problemas: Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018 P1) Qual é o propósito do instruction pipelining?

Leia mais

Infra-estrutura de Hardware

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

Leia mais

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

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

Leia mais

Explorando o paralelismo entre instruções

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

Leia mais

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

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

Leia mais

Execução concorrente de instruções: Pipelines

Execução concorrente de instruções: Pipelines Execução concorrente de instruções: Pipelines João Canas Ferreira Novembro de 2006 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3ª. ed., MKP 2006 AAC (FEUP/MIEIC)

Leia mais

Arquiteturas Superescalares

Arquiteturas Superescalares Univ ersidade Federal do Rio de Janei ro Info rmátic a DCC/IM Arquitetura de Computadores II Arquiteturas Superescalares Gabriel P. Silva Arquiteturas Pipelined com Desempenho Superior ao de uma Instrução

Leia mais

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos

Leia mais

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

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

Leia mais

AULA DE REVISÃO 4 ILP

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

Leia mais

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador. Universidade Estácio de Sá Curso de Informática Disciplina de Organização de Computadores II Prof. Gabriel P. Silva - 1 o Sem. / 2005 2 ª Lista de Exercícios 1) O que é o relógio de um sistema digital?

Leia mais

Microarquiteturas Avançadas

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Arquitetura de Computadores. Processamento Paralelo

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

Leia mais

Arquiteturas Superescalares

Arquiteturas Superescalares Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas Avançadas Arquiteturas Superescalares Gabriel P. Silva Arquiteturas Pipelined com Desempenho Superior ao de uma Instrução

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

ORGANIZAÇÃO DE COMPUTADORES

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

Leia mais

Encadeamento de instruções

Encadeamento de instruções Encadeamento de instruções (Pipelines) Outubro de 2010 (FEUP/DEEC) Pipelines Outubro de 2010 1 / 62 Assuntos 1 Execução concorrente de instruções 2 Dependências entre instruções 3 Fundamentos da operação

Leia mais

SSC0611 Arquitetura de Computadores

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

Leia mais

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção ARQUITECTURA DE COMPUTADORES O estudo da arquitectura de computadores efectua-se com recurso à Abstracção Podemos ver um computador de várias formas. Para um utilizador normalmente o computador é a aplicação

Leia mais

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado Arquitectura de Computadores 2 o Semestre (2013/2014) MEAer 2 o Teste - 19 de Junho de 2014 Duração: 1h30 + 0h15 Regras: Otesteésemconsulta, apenas tem disponível o anexo que lhe deverá ter sido entregue

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

Organização de Sistemas de Computadores

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

Leia mais

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES Prof. Juliana Santiago Teixeira julianasteixeira@hotmail.com INTRODUÇÃO INTRODUÇÃO O processador é o componente vital do sistema de computação, responsável

Leia mais

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

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

Leia mais

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

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

Leia mais

Organização de Unidades de Processamento

Organização de Unidades de Processamento Organização de Unidades de Processamento João Canas Ferreira Março de 2004 Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap. 5) c JCF, 2004 ASPD (FEUP/LEEC)

Leia mais

Infra-estrutura de Hardware

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

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra PROCESSAMENTO 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

Leia mais

SSC0510 Arquitetura de Computadores

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

Leia mais

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

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

Leia mais

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a

Leia mais

SSC0611 Arquitetura de Computadores

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

Leia mais

processadores µprocessador µcontrolador DSP ASIP especialização crescente

processadores µprocessador µcontrolador DSP ASIP especialização crescente processadores programáveis (por software) µprocessador µcontrolador DSP ASIP usos gerais aplicações industriais, controlo, RT aplicações numéricas, RT hw e conjunto de instruções optimizado para a aplicação

Leia mais

Escalonamento de Instruções

Escalonamento de Instruções Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Escalonamento de Instruções Introdução Otimização de código é necessária como forma de diminuir

Leia mais

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

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

Leia mais

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

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

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais

Leia mais

Organização e Arquitetura de Computadores INTRODUÇÃO

Organização e Arquitetura de Computadores INTRODUÇÃO Organização e Arquitetura de Computadores INTRODUÇÃO A Arquitetura de Computadores trata do comportamento funcional de um sistema computacional, do ponto de vista do programador (ex. tamanho de um tipo

Leia mais

Previsão de Desvios Branch Prediction

Previsão de Desvios Branch Prediction Previsão de Desvios Branch Prediction Organização de Computadores 2 Prof. Cláudio C. Rodrigues 1 Branch Prediction 1. Introdução 2. Custo de Desvios 3. Técnicas p/ redução do custo de desvio 4. Técnicas

Leia mais

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

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

Leia mais

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

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

Leia mais

2º Estudo Dirigido CAP 3

2º Estudo Dirigido CAP 3 2º Estudo Dirigido CAP 3 1. Cite três exemplos de aspecto na definição e implementação de uma arquitetura que são influenciados pelas características do conjunto de instruções? R.: Operações lógicas e

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2) Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Univers id ade Federal d o Rio d e Jan eir o DC C/IM Arquitetura de Computadores II Predição de Desvio Gabriel P. Silva Introdução Desvios: Instruções que podem alterar o fluxo de execução das instruções

Leia mais

SSC0902 Organização e Arquitetura de Computadores

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

Leia mais

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES CAPÍTULO III AULA I, II e III Abril 2014 Índice Aritmética para computadores Intro Adição e subtração Multiplicação Divisão Virgula Flutuante Virgula Flutuante - aritmética

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

http://www.ic.uff.br/~debora/fac! 1 Conceito de família IBM System/360 1964 DEC PDP-8 Separa arquitetura de implementação Unidade de controle microprogramada Idéia de Wilkes 1951 Produzida pela IBM S/360

Leia mais

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

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

Leia mais

Aspectos quantitativos elementares

Aspectos quantitativos elementares Aspectos quantitativos elementares João Canas Ferreira Setembro de 2010 João Canas Ferreira (FEUP) Aspectos quantitativos elementares Setembro de 2010 1 / 16 Assuntos 1 Benchmarks O que medir? Tipos de

Leia mais

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

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

Leia mais

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

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

Leia mais

Estrutura e Funcionamento da CPU. Adriano Maranhão

Estrutura e Funcionamento da CPU. Adriano Maranhão Estrutura e Funcionamento da CPU Adriano Maranhão 1 S Relembrando S Compiladores de linguagens ao fazer a conversão da linguagem de alto nível para chegar na fase da linguagem de baixo nível como assembly

Leia mais

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

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

Leia mais

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

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

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Conjunto de Instruções. Alisson Brito

Conjunto de Instruções. Alisson Brito Conjunto de Instruções Alisson Brito 1 1 O que é o Conjunto de Instruções? Instruction Set Architecture (ISA) Interface entre Programas e CPU A coleção completa de instruções reconhecidas pela CPU Programas

Leia mais

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

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

Leia mais

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

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE Especificação do Projeto Simulador MIPS Superescalar Especulativo CES- 25 Arquiteturas para Alto Desempenho Prof. Paulo André Castro Equipe: até quatro alunos 1. Objetivo Exercitar e fixar conhecimentos

Leia mais

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,

Leia mais

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

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

Leia mais

AULA DE REVISÃO 3 ILP

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

Leia mais

Arquiteturas RISC e CISC. Adão de Melo Neto

Arquiteturas RISC e CISC. Adão de Melo Neto Arquiteturas RISC e CISC Adão de Melo Neto 1 Arquitetura RISC Arquitetura RISC. É um das inovações mais importantes e interessantes. RISC significa uma arquitetura com um conjunto reduzido de instruções

Leia mais

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 1 /

Leia mais

Infraestrutura de Hardware. Funcionamento de um Computador

Infraestrutura de Hardware. Funcionamento de um Computador Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é

Leia mais

Organização de computadores. Aula 05

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

Leia mais