·

Engenharia de Software ·

Arquitetura de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÂO ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Aulas 11 12 e 13 Prof Sergio Spinola Princípio da Localidade Programas compilados possuem suas instruções ordenadas sequencialmente Programas em execução têm suas instruções buscadas na MP pela CPU O s endereços dos programas vão se sucedendo no C I exceto em loops ou desvios Princípio da Localidade Temporal se uma palavra é acessada há grande probabilidade de ela ser acessada novamente em breve Exemplo em um loop Espacial se uma palavra é acessada há grande probabilidade de o acesso seguinte ser a palavra subsequente ou o próximo endereço de memória O tempo de Acesso Efetivo Desejase saber quanto um acesso de memória consome sendo cache DRAM etc effective access time hit time miss rate miss penalty Sendo assim o acesso à memória em média é o tempo que leva para acessar a cache adicionado do tempo de miss e penalidade até acessar o dado efetivo em memória de forma ponderada A ideia é que a maior parte dos acessos à memória ocorra na cache e não na memória principal Quando isto ocorre é chamdo de miss Quando o acesso ocorra na memória principal chamamos de miss Tag sr Line or Slot r Word w 8 14 2 Direct Mapped Cache Supondo m linhas de refill Uma linha j em memória vai ser encontrada na cache na localidade j mod m Desta forma cada linha tem 1 e somente 1 localização na cache Este Sistema simples possui um hit rate pobre mas com boa performance e baixo custo Todos os endereços são quebrados em 3 partes Um número de linha para determiner a linha na cache Um número de palavra O restante é o tag usada para comparação e verificação se estamos com a linha correta Cache Uma definição livre É uma memória temporária que armazena dados que foram e poderão ser reutilizados em breve como no loop ou que se pressupõe que será logo em seguida acessados É sempre uma memória de outra natureza que o armazenador principal muito mais rápida de tal forma que na prática possibilite apresentar os dados na saída muito mais rapidamente do que no acesso padrão Existem caches para praticamente todo tipo de dispositivo como por exemplo discos rígidos e controladoras de ES IO O mesmo se dá com a memória dinâmica capacitiva em relação a memórias estáticas que são muito mais rápidas No text found in the image Princípios A ideia de trazer uma parte da memória de trabalho em um dado instante parte de dois princípios O Princípio da Localidade e O Princípio Temporal Desta forma sabese que estatisticamente apenas um determinado e pequeno trecho de memória será requisitado em um determinado instante Desta forma constroemse mecanismos de hardware que implementem algoritmos de busca descarte substituição e garantia de coerência prevenindo também potenciais inconsistências O tempo de Acesso Efetivo effective access time hit time miss rate miss penalty Sendo assim o acesso à memória em média é o tempo que leva para acessar a cache adicionado do tempo de miss e penalidade até acessar o dado efetivo em memória de forma ponderada O ideal então é que hit rate seja o mais Elevado possível aproximando se o máximo possível de 100 2016 Pearson Education Inc Hoboken NJ All rights reserved Um trecho de memória mapeado na cache 2016 Pearson Education Inc Hoboken NJ All rights reserved Memória Principal Cache 2016 Pearson Education Inc Hoboken NJ All rights reserved Memória Principal Cache 2016 Pearson Education Inc Hoboken NJ All rights reserved Memória Principal Cache 2016 Pearson Education Inc Hoboken NJ All rights reserved Memória Principal Cache Vantagens e Desvantag ens do Mapeamen to direto A principal vantagem é a simplicidade da operação A principal desvantagem é que Existe um local de cache fixo para cada bloco E o que acontece se um programa referenciar alternadamente dois blocos de memória em locais distintos e que são mapeados na mesma linha Esta rigidez forçará a troca do conteúdo da cache de forma alternada com frequência reduzindo o hit rate Ou uma linha não vai poder ser usada por choque ainda que existam linhas livres na cache Este efeito é chamado de thrashing 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Memória Principal Cache LIVRES O Mapeamen to Associativo O mapeamento associativo supera a desvantagem do mapeamento direto Cada bloco da memória principal é carregado em qualquer linha da cache A lógica de controle da cache interpreta o endereço de memória como um campo Tag e Palavra O campo de Tag identifica unicamente um bloco em memória principal Para determinar se um bloco encontrase na cache a lógica de controle precisa examinar e comparar cada linha de tag de forma simultânea A complexidade da lógica necessária para a implementação destes esquema é bem mais complexa Porém É preciso usar uma tag com o todo o complemento do endereço desta forma requerendo mais informação para designar a localidade mapeada 2016 Pearson Education Inc Hoboken NJ All rights reserved Mapeamentos 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Mapeamen to Associativo e Conjuntos Set Associative Compromisso que inclui as potencialidades tanto da abordagem direta como associativa enquanto minimiza suas desvantagens A Cache consiste de um número de sets conjuntos Cada set conjunto contém um número de linhas Um dado bloco é mapeado para qualquer linha em um dado set eg 2 linhas por set 2 way associative mapping Um dado bloco pode estar em uma de 2 linhas e em apenas um set 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved T w o W a y A s s o c i a t i v e Algoritmos de substituição Uma vez preenchida a cache quando um novo bloco é trazido para a cache um dos blocos existentes deve ser substituído No caso do mapeamento direto existe apenas uma linha possível para qualquer bloco em particular e nenhuma escolha é possível Para as técnicas associativa e setassociative é necessário um algoritmo de substituição Para alcançar velocidade elevada este algoritmo tem que ser implementado em hardware 2016 Pearson Education Inc Hoboken NJ All rights reserved Quando um bloco que reside na cache deve ser substituído há dois casos a considerar Se o bloco antigo na cache não foi alterado então este pode ser sobrescrito com um novo bloco sem ter que escrever para fora o bloco antigo Se ao menos uma operação de escrita foi realizada sobre a palavra naquela linha de cache então a memória principal precisa ser atualizada escrevendo aquela linha de cache de volta ao bloco da memória principal antes de trazer o novo bloco Há dois problemas para se considerar Política de Escrita 2016 Pearson Education Inc Hoboken NJ All rights reserved Quando um bloco que reside na cache deve ser substituído há dois casos a considerar Se o bloco antigo na cache não foi alterado então este pode ser sobrescrito com um novo bloco sem ter que escrever para fora o bloco antigo Se ao menos uma operação de escrita foi realizada sobre a palavra naquela linha de cache então a memória principal precisa ser atualizada escrevendo aquela linha de cache de volta ao bloco da memória principal antes de trazer o novo bloco Há dois problemas para se considerar Mais do que um dispositivo pode ter acesso à memória principal Política de Escrita 2016 Pearson Education Inc Hoboken NJ All rights reserved Quando um bloco que reside na cache deve ser substituído há dois casos a considerar Se o bloco antigo na cache não foi alterado então este pode ser sobrescrito com um novo bloco sem ter que escrever para fora o bloco antigo Se ao menos uma operação de escrita foi realizada sobre a palavra naquela linha de cache então a memória principal precisa ser atualizada escrevendo aquela linha de cache de volta ao bloco da memória principal antes de trazer o novo bloco Há dois problemas para se considerar Mais do que um dispositivo pode ter acesso à memória principal Política de Escrita 2016 Pearson Education Inc Hoboken NJ All rights reserved Quando um bloco que reside na cache deve ser substituído há dois casos a considerar Se o bloco antigo na cache não foi alterado então este pode ser sobrescrito com um novo bloco sem ter que escrever para fora o bloco antigo Se ao menos uma operação de escrita foi realizada sobre a palavra naquela linha de cache então a memória principal precisa ser atualizada escrevendo aquela linha de cache de volta ao bloco da memória principal antes de trazer o novo bloco Há dois problemas para se considerar Mais do que um dispositivo pode ter acesso à memória principal Um problema mais complexo ocorre quando múltiplos processadores são acoplados ao mesmo barramento e cada processador possui sua própria cache local se uma palavra word for alterada em uma cache isto irá invalidar a palavra presente em outras caches Política de Escrita 2016 Pearson Education Inc Hoboken NJ All rights reserved Quando um bloco que reside na cache deve ser substituído há dois casos a considerar Se o bloco antigo na cache não foi alterado então este pode ser sobrescrito com um novo bloco sem ter que escrever para fora o bloco antigo Se ao menos uma operação de escrita foi realizada sobre a palavra naquela linha de cache então a memória principal precisa ser atualizada escrevendo aquela linha de cache de volta ao bloco da memória principal antes de trazer o novo bloco Há dois problemas para se considerar Mais do que um dispositivo pode ter acesso à memória principal Um problema mais complexo ocorre quando múltiplos processadores são acoplados ao mesmo barramento e cada processador possui sua própria cache local se uma palavra word for alterada em uma cache isto irá invalidar a palavra presente em outras caches Política de Escrita em Cache 2016 Pearson Education Inc Hoboken NJ All rights reserved Write Through e Write Back Write through Técnica mais simples Todas as operações de escrita são realizadas para a memória principal assim como na cache A principal desvantagem desta técnica é que esta pode gerar um tráfego substancial e desnecessário de memória e criar um gargalo Write back Minimiza as escritas de memória As atualizações são feitas apenas na cache Porções de memória são tornadas inválidas e desta forma acesso por módulos de IO são permitidos apenas através da cache O circuito se torna mais complexo e cria um gargalo em potencial 2016 Pearson Education Inc Hoboken NJ All rights reserved A Evolução das Caches Multinível Com o aumento da densidade lógica tornouse possível possuir uma cache no mesmo chip que o processador Esta cache onchip reduz a atividade externa do processador em relação ao barramento e acelera o tempo de execução aumentando a performance global do sistema Quando a instrução ou dado requisitado encontrase na onchip cache o acesso ao barramento é eliminado Acessos ao Onchip cache serão completados consideravelmente mais rápidos até mesmo do que seriam no caso de ciclos de zerowait no barramento Durante este período o barramento fica livre para suportar outras transferências 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved Table 44 Intel Cache Evolution Table is on page 150 in the textbook 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Por que precisamos de Protocolos para consistência de Cache Podemos imaginar situações onde podem ocorrer inconsistências Os problemas de Coerência Decorrem do fato de a memória principal em sistemas com vários processadores ser compartilhada E o que é compartilhado precisa ser visto da mesma forma por todos ao mesmo tempo Desta forma o Core 1 Core 2 Core 3 utilizam a mesma memória principal Contudo cada Core possui a cópia de uma parte da memória principal em um determinado momento em sua própria cache E se um ou mais Cores também estiverem em suas Caches a mesma cópia da mesma localidade em memória principal Aí teremos duas possibilidades As Duas Possibilidad es No caso mais trivial uma mesma porção de memória pode estar sendo compartilhada entre vários processadores Cores e Todos realizam apenas leituras naquela localidade sem promover alterações escritas Neste caso nada há para se preocupar Contudo e se Um dos Cores resolve escrever um novo dado na sua cache O que acontece com o original na memória principal E aquelas cópias em outros Cores Write Through e Write Back Write through Técnica mais simples Todas as operações de escrita são realizadas para a memória principal assim como na cache A principal desvantagem desta técnica é que esta pode gerar um tráfego substancial de memória e criar um gargalo Write back Minimiza as escritas de memória As atualizações são feitas apenas na cache Porções de memória se tornam momentaneamente inválidos O circuito se torna mais complexo e cria um gargalo em potencial 2016 Pearson Education Inc Hoboken NJ All rights reserved Write Back Como já vimos é o writeback o método comumente empregado para atualizar a cache Desta forma se um Core operar sobre um conteúdo de cache que é compartilhado por outras entidades outros Cores ou outros dispositivos é preciso haver um mecanismo de sinalização como um semáforo para impedir que outras entidades inadvertidamente utilizem um dado que não reflete o estado mais atual daquela posição de memória Esta questão gira em torno da preservação da coerência dos dados em outras palavras da coerência da cache E é em função desta coerência que mecanismos que implementam políticas e regras são implementados Coerência de Cache Tentativas de evitar a necessidade adicional de lógica e circuitos de hardware resolvendo os problemas por intermédio do compilador e Sistema operacional Atraente porque o overhead da deteção de problemas potenciais é transferido do tempo de execução para o tempo de compilação transferindo a complexidade do projeto do hardware para o software Entretanto abordagens compiletime geralmente requerem decisões conservadoras por parte do compilador levando a uma utilização ineficiente da cache Abordagem Primordial Soluções de Software 2016 Pearson Education Inc Hoboken NJ All rights reserved Coerência de Cache HardwareBased Solutions 2016 Pearson Education Inc Hoboken NJ All rights reserved Geralmente referidos como protocolos de coerência de cache cache coherence protocols Estas soluções fornecem reconhecimento dinâmico em tempo de execução de condições potenciais de inconsistências Dado que o problema somente é abordado quando de fato ocorre há um uso mais efetivo das caches levando a uma performance ampliada sobre a abordagem por software Estas abordagens são transparentes para o programador e o compilador reduzindo o impacto do desenvolvimento de software Pode ser dividido em duas categorias O protocol MESI Snoopy protocols MESI Protocol em Resumo Modified A linha na cache foi modificada e está disponível apenas naquela cache Exclusive A linha na cache é a mesma que a memória principal e não está presente em nenhuma outra cache Shared A linha na cache é a mesma que a da memória principal e pode estar presente em outra cache Invalid A linha na cache não contém dados válidos Para fornecer consistência de cache de dados em um SMP as implementações em geral usam o protocolo MESI 2016 Pearson Education Inc Hoboken NJ All rights reserved Modelo MESI Cada linha da cache pode estar VÁLIDA ou INVÁLIDA Se a linha é VÁLIDA Poderá conter dados que são COMPARTILHADOS OU ÚNICOS Uma linha COMPARTILHADA contém dados da memória principal que são potencialmente compartilháveis entre as caches A LINHA ÚNICA contém dados da memória principal e é DEDICADA ao core que possui esta cache A linha também pode estar limpa ou suja CLEAN OU DIRTY CLEAN significa que a memória contém o dado mais atualizado e que a linha de cache é uma cópia atualizada da memória OU DIRTY a linha de cache representa o dado mais atualizado E precisa ser escrita de volta written back para a memória em algum estágio MESI Quando múltiplas caches compartilham uma linha e esta está suja todas as caches precisão conter o dado mais atual quando necessário mas apenas uma pode estar em estado SharedDirty enquanto as demais são mantidas em estado SharedClean O estado SharedDirty é desta forma utilizado para indicar qual cache possui a responsabilidade por reescrever o dado de volta para a memória O estado SharedClean pode ser mais precisamente descrito como o estado em que o dado é compartilhado mas não havendo responsabilidade por parte daquela dada cache de escrevêlo de volta na memória O Controlador Mantém informação sobre que processadores possuem que cópias e de quais linhas Antes de escrever na cópia local da linha é preciso requerer acesso àquela linha ao Controlador Antes de conceder o acesso exclusivo o controlador envia mensagens a todos os processadores que possuem uma cópia em cache daquela linha Caso possuam cada processador é forçado a invalidar sua cópia Após as confirmações o controlador concede o acesso exclusivo ao processador requerente Se um outro processador tentar ler uma linha concedida exclusivamente a outro processador este envia uma notificação de miss ao controlador O controlador então emite um comando ao processador detentor daquela linha para que realize um write back em memória principal Após esta atualização a linha então poderá ser compartilhada para leitura pelo processador original e os requerentes 51 Write Invalidate Múltiplos leitores mas apenas um escritor a cada vez Quando uma escrita é requisitada todas as outras caches da linha são invalidadas O processador escritor então tem um acesso exclusivo até que a linha seja requisitada por um outro processador Mais largamente usada em sistemas de multiprocessamento comercial como a arquitetura x86 O estado de cada linha é marcada como modificada exclusiva invalidada ou compartilhada Por este motivo o protocolo writeinvalidate é chamado de MESI Modified Exclusive Shared Invalid 2016 Pearson Education Inc Hoboken NJ All rights reserved Variante Snoopy Protocols Distribuem a responsabilidade pela manutenção da coerência de cache entre todos os controladores de cache de um multiprocessador Uma cache precisa reconhecer quando uma linha que este mantém é compartilhada com outras caches Quando atualizações são realizadas em uma linha de cache compartilhada esta precisa ser atualizada para as outras caches através de um mecanismo de broadcast Cada controlador de cache é capaz de fazer um snoop na rede para observar as notificações de broadcast e reagir apropriadamente Apropriado para o multiprocessamento baseado em barramento visto que o barramento compartilhado viabiliza um método para o broadcast e snooping Requer atenção quando ao aumento de tráfego neste barramento necessário para o broadcasting e snooping o que pode desafiar e cancelar os potenciais ganhos com o uso de caches locais 2016 Pearson Education Inc Hoboken NJ All rights reserved Write Update Pode ter múltiplos leitores e escritores Quando um processador deseja atualizar uma linha compartilhada a palavra word a ser atualizada é distribuída a todos as demais caches contendo aquela linha para que possam atualizála Alguns sistemas usam uma mistura adaptativa e bastante sofisticada de mecanismos de writeinvalidate e writeupdate 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Invalid Para saber Mais sobre o Protocolo MESI Stallings William Arquitetura e Organização de Computadores Cap17 pag 525 5ª Ed 56 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved C o r t e x A 7 E A 1 5 P I P E L I N E S 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Arquiteturas Orientadas à Peformance Pipelines e seus hazards Cache e Coerência de Cache Multiprocessamento O caminho contínuo da evolução Processadores superescalares Paralelismo levado ao extremo dentro de cada processador Paralelismo ao nível de instrução Subversão da ordem de execução Múltiplos Cores Barramentos cada vez mais rápidos 2016 Pearson Education Inc Hoboken NJ All rights reserved 62 S u p e r s c a l a r Termo inicialmente cunhado em 1987 Referese à máquina projetada para incrementar a performance de instruções escalares Na maior parte das aplicações o grosso das operações são baseadas em quantidades escalares Representa o passo seguinte na evolução de processadores de alta performance e propósito geral A essência da abordagem é a capacidade de executar instruções independentemente e concorrentemente em pipelines diferentes O conceito pôde ser posteriormente desenvolvido permitindo que instruções sejam executadas em ordem diferente daquela disposta inicialmente no programa O v e r v i e w 2016 Pearson Education Inc Hoboken NJ All rights reserved Processado r Superescal ar Um processador superescalar é aquele em que múltiplos e independentes pipelines de instruções são usados Instruções comuns p ex aritmética inteiros leituras escritas etc podem ser iniciadas simultaneamente e executadas independentemente Nível de complexidade é consideravelmente ampliado 64 Processado r Superescal ar Através de hardware criamse dois ou mais pipelines separados A análise da estrutura superescalar pode ser observada por meio de duas óticas distintas Paralelismo de instrução ou Instruction Level Parallelism ILP Paralelismo em hardware 65 Processador Superescalar Paralelismo em nível de instrução instruções em uma sequência são independentes e podem ser executadas em paralelo 66 Instruções Independentes Instruções Dependentes LOAD R1 R2 ADD R3 R3 1 ADD R3 R3 1 ADD R4 R3 R2 ADD R4 R4 2 STORE R4 R0 Processador Superescalar Paralelismo em Hardware Processador possui mais de uma ALU mais de uma unidade de load store e assim por diante Este paralelismo permite concluir mais de uma instrução por ciclo de clock Por exemplo em um único ciclo de relógio duas ou mais somasmultiplicaçõesdivisões podem ser efetivadas simultaneamente A capacidade de realizar operações na ALU pode ser multiplicada 67 Processador Comum A B C D Processador comum 1 AB 2 CD 3 soma do resultado de AB e CD 68 Processador Superescalar A B C D Processador Superescalar 2 unidades funcionais 1 AB e CD estas somas ocorrem em paralelo 2 soma do resultado de AB e CD 69 Processador Superescalar UBI UDI UBO Unid de exec de inteiros 1 Unid de exec de inteiros 2 Unid de exec de ponto flut 1 Unid de exec de ponto flut 2 UER UBI Unidade de busca de instrução instruction fetch unit UDI Unidade de decodificação de instruções decoder UBO Unidade de busca de operando UER Unidade de escrita do resultado Exemplo de uma estrutura superescalar com quatro unidades funcionais de execução Processador Superescalar Unidade comum de busca de instruções UDI UBO UEI UER UDI Unidade de decodificação de instruções decoder UBO Unidade de busca de operando UEI Unidade de execução de operação integer unit por exemplo UER Unidade de escrita do resultado Processador Superescalar Cache de instruções Unidade de previsão de desvio Barramento do sistema Unidade de controle do barramento Buffers de prébusca de instruções UAL para inteiros V UAL para inteiros U Unidade de ponto flutuante Arquivo de registradores para números em ponto flutuante Somador de PF Multiplicador de PF Divisor de PF Arquivo de registradores para inteiros Cache de dados Figura 129 Diagrama em bloco do processador Pentium 1 mostrandose os dois pipelines para operação com inteiros V e U Desafios da estrutura superescal ar 73 Problemas Hazards se tornam mais complexos se comparados àqueles já analisados quanto ao pipeline simples Do ponto de vista do programador a execução continua sendo sequencial Para o processador a execução não precisa ser sequencial se este dispuser de de várias estruturas paralelas O processador pode decidir executar instruções fora de ordem por exemplo Riscos e problemas da estrutura superescal ar 74 São semelhantes àqueles já observados no pipeline simples substancialmente potencializados A diferença é que instruções completas são realizadas de forma realmente paralela Lembram dos hazards Por exemplo dependência de dados Instruções não são independentes A instrução que foi buscada depende do resultado da instrução que está no pipeline Riscos e Desafios da estrutura superescalar Dependência de dados MOV R1 memA ADD R1 R2 ADD R3 R1 75 Riscos e Desafios da estrutura superescal ar Estrutura de desvio IFTHENELSE Só se saberá a próxima instrução após a execução da estrutura de desvio Gera atraso na execução Solução executar ambas instruções e descartar o conjunto de instruções não escolhido 76 Riscos e Desafios da estrutura superescal ar Conflito de recurso requerido Recursos compartilhados memória registradores barramentos etc Uma instrução a ser executada necessita de um recurso em uso por uma instrução no pipeline Solução duplicação de recursos ou dividir uma fase extensa em mais fases de pipeline 77 Relembrando o Pipeline Simples O pipeline funciona como uma linha de produção fabril Cada instrução é executada em fases Cada fase emprega uma lógica de circuito Uma vez que uma instrução passa por uma fase a instrução seguinte pode ser puxada para usar o mecanismo da Fase 1 ou fase anterior Sendo assim imaginando haver 6 fases F1 F2 F3 F4 F5 F6 você pode ter a I1 na fase F6 a I2 na fase F5 a I3 na fase F4 a I4 na fase F3 a I5 na fase F2 e a I6 na fase F1 Esta execução tornada possível em fases prévias permite acelerar significativamente o processamento 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Constraints Restrições Instruction level parallelism Referese ao grau no qual as instruções de um programa podem ser executadas em paralelo Uma combinação de otimização baseada em compilador e técnicas de hardware que podem ser usadas para maximizar o nível de paralelismo das instruções Limitações True data dependency Dependência procedural Conflitos de recurso Dependência de Saída Antidependência 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Um Exemplo Superscalar Instruction Issue Veremos a seguir um diagrama que exemplifica as ordens de execução em três situações diferentes considerando que I1 requer dois ciclos de clock para sua execução I3 e I4 conflitam pela mesma unidade funcional I5 depende do valor produzido por I4 I5 e I6 conflitam pela mesma unidade funcional Instruções são buscadas em pares e repassadas para a unidade de decodificação 83 2016 Pearson Education Inc Hoboken NJ All rights reserved I1 requer dois ciclos de clock para executar I3 e I4 conflitam pela mesma unidade funcional I5 depende do valor produzido por I4 I5 e I6 conflitam pela mesma unidade funcional 2016 Pearson Education Inc Hoboken NJ All rights reserved I1 requer dois ciclos de clock para executar I3 e I4 conflitam pela mesma unidade funcional I5 depende do valor produzido por I4 I5 e I6 conflitam pela mesma unidade funcional 2016 Pearson Education Inc Hoboken NJ All rights reserved I1 requer dois ciclos de clock para executar I3 e I4 conflitam pela mesma unidade funcional I5 depende do valor produzido por I4 I5 e I6 conflitam pela mesma unidade funcional 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction Issue Policy A ordem na qual as instruções são buscadas A ordem na qual as instruções são executadas A ordem na qual as instruções atualizam os conteúdos de localidades em registradores e memória Inorder issue com finalização inorder Inorder issue com finalização outoforder Outoforder issue com outoforder completion Referese ao protocolo usado para emitir instruções Emissão da instrução ocorre quando a instrução é movida do estágio de decodificação do pipeline para o primeiro estágio de execução do pipeline Referese ao processo de iniciação de instrução nas unidades funcionais do processador Instruction issue Instruction issue policy Três tipos de ordenamento são importantes Superscalar instruction issue policies podem ser agrupadas nas seguintes categorias 2016 Pearson Education Inc Hoboken NJ All rights reserved Execução fora de Ordem Renomeação de Registradores Dependências de Output e Antidependências ocorrem porque os conteúdos dos registradores podem não refletir o ordenamento correto do programa Pode resultar em um stall do pipeline Registradores são então alocados dinamicamente 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved 2016 Pearson Education Inc Hoboken NJ All rights reserved Visão conceitual do processamento superscalar 2016 Pearson Education Inc Hoboken NJ All rights reserve d RISC e CISC Inicialmente os ISAs Instruction Set Architectures privilegiavam o uso de processadores capazes de implementar instruções assembly mais complexas No CISC o trabalho da codificação assembly é encurtado requerendo menos memória RAM para sua armazenagem Nos primórdios da computação a RAM era um recurso muito mais escasso e o foco era o desenvolvimento de arquiteturas de instruções mais complexas que economizassem RAM bem como favorecendo o código curto E assim o CISC foi prevalecendo A arquitetura x86 herdou o legado modificado das arquiteturas primordiais e todos os sistemas operacionais do tipo Windows foram amarrados nesta arquitetura assim como variadas versões do Linux desta forma preservando o legado e propiciando uma rota evolutiva sem rupturas 93 A Proposta do RISC A proposta do RISC Reduced Instruction Set Computer era constituída por um conjunto reduzido de instruções simples e de tamanho fixo Cada instrução é executada em um único ciclo ao contrário do CISC Este formato das instruções propicia um hardware de CPU mais simples pois lida com mais uniformidade e consequentemente é mais eficiente quando se considera o processamento de uma instrução O número de registradores é aumentado em relação ao CISC Desempenho na execução da instrução sem necessidade de se preocupar com o legado e compatibilidade do passado 94 Vantagens do RISC Projeto e lógica do processador é bastante simplificada por lidar com instruções simples e objetivas Instruções possuem todas o mesmo tamanho o que facilita a lógica de pipeline predição etc A implementação física de uma lógica mais simples consequentemente emprega menos circuitos transistores O desenho reduzido do processador permite um melhor aproveitamento do espaço de chip O consumo de um processador RISC pelo fato de usar menos transistores tende a ser mais baixo o que o torna mais propício para dispositivos embarcados ou móveis Compromisso otimizado entre tamanho x desempenho x consumo de energia 95 Desvantage ns do RISC A Arquitetura CISC já contava com todo um legado de desenvolvimento anterior sobretudo aquele baseado em Sistema Operacional Windows e outras versões de Linux que as tornam incompatíveis com os processadores RISC mais novos O trabalho do compiladorprogramador é maior e bem mais complexo para converter instruções e operações em alto nível para o assembly O código HLL é convertido em um número bem maior de linhas assembly A inteligibilidade do código assembly é substancialmente perdida Dependendo do tipo de código sua complexidade e natureza das operações realizadas não é necessariamente verdade e imediato que o RISC terá um desempenho superior ao CISC Do ponto de vista do programador assembly muito mais instruções são executadas dadas as limitações e falta de versatilidade Perdese a compatibilidade com o passado tornando necessário construir novos núcleos de SO 96 Comparação em relance 97 MULT 23 52 LOAD A 23 LOAD B 52 PROD A B STORE 23 A ABORDAGEM CISC ABORDAGEM RISC REF httpscsstanfordedupeopleerobertscoursessocoprojectsriscrisccisc RISC versus CISC hoje Com a evolução das tecnologias RISC e CISC o fato é que a maioria das implementações atuais pode ser considerada um híbrido das duas tecnologias Processadores CISC incorporaram algumas características do RISC por exemplo acrescentando um passo adicional para converter instruções CISC em RISC Muitas diferenças de desempenho foram resolvidas com técnicas e arquiteturas aprimoradas A aplicabilidade de cada tecnologia RISC ou CISC atualmente tem relação estrita com custodesempenhoconsumo de energia e principalmente a forma e objetivo de uso Processadores RISC mais simples como o ARM são a base para o desenvolvimento de projetos em Smartphones e Dispositivos computacionais compactos como o Raspberry Pi e variadas placas controladoras 98 RISC versus CISC Na realidade a Intel Core Microarchitecture implementa uma CISC Instruction Set Architecture sobre uma RISC microarchitecture Os microops RISC internos perpassam um pipeline com pelo menos 14 estágios As arquiteturas acabaram convergindo RISC e CISC e hoje este debate referese mais à relação custobenefício em relação a aplicação prática custo do chip e tipo de usoimplementação e o seu uso Podese pensar que processadores CISC mais pesados são mais empregados em Notebooks Servidores e Servidores em Nuvem Os processadores RISC mais leves são utilizados na computação móvel e IoT onde tamanho dissipação de calor e energia são fatores críticos 99 O debate acabou O desenvolvimento das arquiteturas CISC levou à incorporação de elementos da tecnologia RISC sobre o CISC e o desempenho CISC foi aprimorado com a utilização de várias técnicas processadores superescalares A discussão hoje se dá na questão do poder de processamento versus consumo custobenefício O maior uso de processadores atualmente está voltado para computação móvel smartphone que requerem baixo consumo A arquitetura puramente RISC predomina onde o requerimento é baseado em espaço reduzido baixo consumo e alto poder de processamento adequado a um computador de mão móvel Por outro lado em máquinas com alto poder de processamento observamos um maior emprego de processadores que podemos hoje chamar de um híbrido CISCRISC normalmente em Servidores e Workstations com Sistemas Operacionais de alta complexidade 100 Apresentaçõe s N2 Substitutiva As apresentações serão realizadas remotamente 2411 e 0112 Apresentação de Trabalhos Grupos Restantes 0812 Avaliação N2 1512 Substitutiva Encerramento das Atividades nesta Disciplina